Web desktops are a big Hype on the web 2.0 world.
Using a familiar interface on the web means the final independence from a particular PC and Operating system.
On the other side most of those systems are proprietary and not available for download.
As far I know an example of web desktop is available for download and is eyeOS (1).
eyeOS is a complete system that while is based on PHP use proprietary extensions and no database for the backend.
Extjs is a powerfull UI framework, based on javascript that let free the developer to choice the backend.
Based on this framework a desktop project (2) has been started. This offer a login but not the possibility to manage the application.
the project
I decided to use a Model Driven Development approach to create a better backend code (php) that can administrate the web desktop.
I'm using wCMF (4) a MDD framework based on Open
Arch
itec
ture
Ware
(5).
The version 2.6
of the Wcmf framework supports extjs 2.1.
You can download it from the subversion source:
http://wcmf.svn.sourceforge.net/viewvc/wcmf/trunk/wCMF/generator/bin/
Main features of wCMF
are:
- code generator for model driven development
- Model View Controller
- View: Server side presentation layer based on a template mechanism (Smarty)
- View : Client side presentation layer in web 2.0 style realized with extjs
- Model: persistence layer with adapters to RDBMs (ADOdb)
- configuration of the application flow through config files, user specific if desired
- locking mechanism for concurrent usage
- Controller: comfortable search using object query templates
- role based rights management (for actions, types, instances)
- i18n support
- default application template
- Auto deployment of application and framework
- SOAP interface supporting CRUD operations on all objects
the Model
The basics starts from the actual database definition given by the
author of the desktop.
After importing the database definition using EntepriseArchitect I added to the classes to the special wcmf
stereotypes.
as you can see the model demonstrated generalization and composition UML links.
Member get the fields and methods of
EntityBase.
If you delete a
Group all the
Member and
Configuration types inside the it are also deleted.
Additionally the multiplicity at the end of links is also implemented in the end application.
For example you when you create a new
member he get
automagically a
configuration (1 to 1).
A complete UML documentation is available for the desktop Administration project.
Additionally I added some interesting features like:
- browsing the server / uploading images
- dynamic loading of a pull down menu based on the items.
- initial value of a property.
the Generator
After modelling the system as class diagram you can export it as
XMI.
The model is parsed in Java and
loaded in the memory as internal representation you can see below.
The generator is based on Open
arch
itec
ture
ware
(5).
Actually it supports PHP only.
Future versions will support the generation of complete applications in Java (Jboss Seams) and C#.
Result
Below you can see the resulting running in a desktop window application.
Root types are defined in the configuration and transformed in tabs.
the result of the comfortable search using
object query templates:
you can test the resulting application on this server.
Parallel to JSON interface you can also use the SOAP web services to access the backend.
Conclusion
MDD make possible to abstract a common User interface that is indipendent from the technology backend.
the deleloper rather that programming can concentrate on the business logic.
ExtJS and his desktop offer a perfect platform for develop modern UI.
Together with the wCMF they couple usability
with efficiency.
References
- eyeos: www.eyeos.org
- web 2.0 desktop http://extjs.com/forum/showthread.php?t=10950
- extjs: http://extjs.com
- wcmf: http://wcmf.sourceforge.net/
- openarchitectureware www.openarchitectureware.org
- enterpriseArchitect: www.sparxsystems.com.au
Comments