Skip to main content

MDA Webtop

Introduction


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 OpenArchitectureWare (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 Openarchitectureware (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


  1. eyeos: www.eyeos.org
  2. web 2.0 desktop http://extjs.com/forum/showthread.php?t=10950
  3. extjs: http://extjs.com
  4. wcmf: http://wcmf.sourceforge.net/
  5. openarchitectureware www.openarchitectureware.org 
  6. enterpriseArchitect: www.sparxsystems.com.au

Comments

Popular posts from this blog

TOGAF diagram examples

Foreword This article contains consistent examples of all TOGAF diagrams for the four architectural domains. After many years as a TOGAF practitioner, I have to say that it's a lot that can be improved in the framework, that often remains vague and some time is inconsistent. In the TOGAF specs, some of the metamodel elements  are well described while others are left to our best judgment. The DAF metamodel is a tailored version of the TOGAF one, implemented as UML profile and maintained in Sparx Enterprise Architect.  Those examples are the result of real life use of TOGAF in projects: you may or may not use them for the the sake of the TOGAF certification exams.

Can EA save the world?

Nowadays we have developed the most complex society humanity has ever known. And we have maintained it up to this point. But technological innovation evolves like any other aspect of complexity: the investments in research and development grow increasingly complex and reach diminishing returns. That is the point where the level of profits - or benefits - gained is less than the amount of money or energy invested . Therefore, we cannot expect continue forever to spend more and more on technological innovation when we’ve reached the point of diminishing returns. This is why Joseph Tainter, author of the book “The Collapse of Complex Societies ” argues that our system of innovation is going to change very significantly over the next decades. By the end of the century, it will not be anything like what we know today. It will have to change deeply. And it’s likely that innovation is not going to be able to solve our problems as readily as it has done to this point.

Beyond DevOps: Architecture for the XXI century Enterprise

Where DevOps come to play DevOps while over rated is part of the big picture of the Digitral transformation DevOps ( dev elopment and op erations) is an enterprise software developmen t term used to mean a type of agile relationship between software development and IT operations. The goal of DevOps is to create a better collaboration culture between the two functions. However often a DevOps implementation results in the adoption of a collection of tools that are supposed to automate processes in software development and operation rather than a real change in culture. Automation of some processes is laudable, but it represents only a part of the CIOs concerns. DevOps come in play when software is already being developed and maintained, it proposes nothing regarding the business strategic planning, the requirement analysis and architecture that precede it. Moreover,typically a DevOps environment requires a considerable cost to be set up and maintained, so it represen