wakanda model-driven @ icssea12
DESCRIPTION
Wakanda: A model-driven Web application platform for normal developers. ICSSEA'12 sessionTRANSCRIPT
A model-driven Web application platformfor normal developers
wakanda
1
Christophe Keromen
Blog: http://www.ckti.com Viadeo : http://www.viadeo.com/fr/profile/christophe.keromen LinkedIn : http://fr.linkedin.com/in/christophekeromen Twitter : @ckeromen
2
2007
How do you innovate in Web development?
http://www.photo-libre.fr
3
4
5
No OO
No central
Business Logic
6
http://www.flickr.com/photos/chebbs/4039748946/sizes/l/in/photostream/
Dissemination of business rules in the code.It becomes complicated to evolve the system,
to train new collaborators, and thus to maintain applications
7
Need for explicit modeling in the domain in order to:
• abstract business rules from the code
• centralize them in a unique and clearly identified space
8
http://www.photo-libre.fr
How do you innovate in Web development?
• Keep the good ideas from 4D • Improve business modeling• Integrate the state of the art in Web development• Simplify the implementation of a new Web project
9
How do you increase efficiency of business models ?How do you get developers to adopt modeling?Reconcile abstraction with simplicity and intuitive use?
10
Target
http://www.photo-libre.fr
no UML
no UML
Normal developer
11
multi-platform system for developing and deploying model-driven Web applications
wakanda
12
13
14
Working software is the primary measure
of progress
Agile
15
Agile
In two weeks (the rhythm of one iteration), what do you get:
A model or "working software"?
http://www.fotopedia.com/items/flickr-2824489394
16
facilitate an incremental enrichment share emergent creation among team members
http://s.camptocamp.org/uploads/images/1303503816_1623982648.jpg
17
Graphical
Model Designer
18
Data Classes
19
Data Classes
20
http://www.flickr.com/photos/limagiraphe/6392031713/sizes/l/in/photostream/
Encourage modeling
21
22
JavaScriptOne Language
Client-SideServer-Side
23
http://www.flickr.com/photos/nnsanews/7017089843/sizes/h/in/photostream/
Enrich the
Model
24
Storage attributes
25
Relation attributes
26
Alias attributes
27
Calculated Attribute
28
Validation
29
Pattern
30
DataClass Methods
31
Extends
32
• Business Layer
• Services Layer
• Presentation Layer
• Data Layer
• Security Layer
33
Business
no SQL
SSJS
34
SSJS
var john = ds.Employee.find('firstName eq John');var conferences = john.conferences;var JohnJSConferences = conferences.filter ("title eq '*JavaScript*'");var JSAttendeesJohnMet = JohnJSConferences.attendees;
35
Data Services
36
37
lazy-loading
38
DataBrowser39
40
Presentation
41
42
43
•sources.employee.fullName
• sources. employee.query('firstName="John"'), {onSuccess:function(){}});;
• sources.employee.query('ID<100',{autoExpand: 'company'});
WAF
44
Security
45
46
47
WYMIWYG
48
wakanda.org
@wakandasoft
JSeverywhere.org
@JSeverywhere
49