1 A Framework for Automatic Web Application Generation Marc Battyani - Fractal Concept
2 Evolution of Web Applications Static documents Simple applications Search engines eCommerce General applications
3 First Gen Web Apps Tools HTML/DHTML WYSIWYG editors Powerful general purpose editors CGI interface Perl
4 Second Gen Web Apps Tools Server side script languages ASP PHP Perl Python Etc.
5 Current Gen Web Apps Tools.NET J2EE
6 Next Gen Web Apps Tools Common Lisp
7 Restricting The Problem Domain Corporate acceptability Data centric Partitionable concurrency model
8 Engineering Constraints Data Integrity UI Views Generation View Coherence Application Navigation Flexibility Portability Performance and Scalability
9 Why Common Lisp? Performance Stability Excellent macro system Most powerful object system Lexical closures Dynamic code generation and compilation Debugging and dynamic modification of a running system Resilience to changes
10 General Architecture HTTP Front-End Application Server Database Sexpr SQL
11 Object Class Descriptions: Slots added to Meta Class GUID Instanciable user-name sql-name Description Version direct-views direct-functions direct-rules And a few more..
12 Object Class Descriptions: Slots added to slot definitions user-name sql-name Description value-type list-of-values Unique Stored Indexed null-allowed Unit read-only-groups hidden-groups disable-predicate void-link-text view-type And a few more….
13 Session and State Management URI = encoded property lists Session objects SSL session id Robot session id
14 UI Management Navigation Pull mode Push mode HTML Generation LHTML representation Views Using remote scripting Automatically generated Semi-automatically generated
15 Documents Generation cl-pdf cl-typesetting cl-typegraph
16 The Meta Application The first application written with the framework has been the framework application itself.
17 Web Services Basic XML-RPC support SOAP support in the future if needed
18 Current state Full production use since 2002 Real complex applications are being done with it. 100% increase of the user base
19 Applications A network infrastructure management workflow and repository for a bank. A network stats and maps generation software for a bank. Traceability software for the blood and biological supply chain. Benefits management software.
20 Conclusion One order of magnitude in productivity over alternatives Still unmatched functionalities Much better result quality and usability than the existing alternatives. (99.98% uptime last week) The choice of Common Lisp has been comforted by the result. The full framework has less than 20K lines of code and it already has functionalities without equivalent in other frameworks. This compares rather well to the 0.6 to several millions of lines of code of the J2EE and.NET frameworks.