Вы находитесь на странице: 1из 20

A Framework for Automatic

Web Application Generation


Marc Battyani - Fractal Concept

1
Evolution of Web Applications
Static documents
Simple applications
 Search engines
 eCommerce
General applications

2
First Gen Web Apps Tools
HTML/DHTML
 WYSIWYG editors
 Powerful general purpose editors
CGI interface
 Perl

3
Second Gen Web Apps Tools
Server side script languages
 ASP
 PHP
 Perl
 Python
 Etc.

4
Current Gen Web Apps Tools
.NET
J2EE

5
Next Gen Web Apps Tools
Common Lisp

6
Restricting The Problem
Domain
Corporate acceptability
Data centric
Partitionable concurrency model

7
Engineering Constraints
Data Integrity
UI Views Generation
View Coherence
Application Navigation
Flexibility
Portability
Performance and Scalability
8
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
9
General Architecture
HTTP Front-End
Application Server
Database
 Sexpr
 SQL

10
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..

11
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….
12
Session and State Management
URI = encoded property lists
Session objects
SSL session id
Robot session id

13
UI Management
Navigation
 Pull mode
 Push mode
HTML Generation
 LHTML representation
Views
 Using remote scripting
 Automatically generated
 Semi-automatically generated

14
Documents Generation
cl-pdf
cl-typesetting
cl-typegraph

15
The Meta Application
The first application written with the
framework has been the framework
application itself.

16
Web Services
Basic XML-RPC support
SOAP support in the future if needed

17
Current state
Full production use since 2002
Real complex applications are being
done with it.
100% increase of the user base

18
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.

19
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.

20

Вам также может понравиться