Leonardi Framework

Overview
Leonardi includes a graphical, wizard-based designer called Application Composer (distributed as free software) and an execution engine called Application Engine (distributed under the open source GPL license). Application Composer allows to create LEONARDI business models whereas Application Engine executes it to render appropriate GUIs and services.
Leonardi is a framework based on a model-based approach, describing the logical view of the information system. This business model is enriched with both presentation specific information (for producing the GUI on the fly, when the screen is requested by the end-user) and data connectors (software components that specify how to access particular persistent data such as RDBMS, Java, Web Services, files, proprietary data layers etc.). Then, business specific rules and behaviors can be added using the Java language. Eventually, the application is deployed, either as a DHTML/Ajax GUI, an plug-in, an RCP, an SWT or a desktop application.
The originality of Leonardi is twofold. First, the framework applies the concepts of Model-driven engineering to the specific field of GUIs and BPM. Second, unlike MDA solutions, Leonardi does not generate code. Instead, the execution engine it relies on allows dynamically generating, at run time, the screens requested by the end-user, based on the current status of the data that is dealt with, and taking into account the current execution context (modality, user profile, language...).
The Leonardi business model also contains connector specific configuration, which indicates where data persists, how to access it and how to cache it in memory. Standard connectors include flat files, various DBMS, Corba, EJB, LDAP and web services. The business model also includes the concept of viewer (or renderer), that allows deploying the software in different types of graphical environments (Web Ajax, Swing, Eclipse…).
For specific needs, other data connectors and other renderers can be implemented.
On the one hand, Leonardi differs from 4GLs by offering richer functional features for user interface purposes, which allows it to be used in management systems as well as in technical applications. On the second hand, Leonardi is different from the traditional software environments that implement the MDA approach because it does not generate code. Instead, the engine executes the model on the fly, addressing the three MVC layers (Model, View and Control) classically dealt with in GUI applications.
Leonardi is often used as a RAD tool, but it also addresses the needs of application migration and modernization by providing a technology independent approach. It can also be used in more complex projects. It is fully based on underlying Java and XML technologies and consists of an extensible environment. Starting in release V4.0, Leonardi is licensed under the terms of the GNU General Public License (GPL).
Use
Leonardi fits various computer based information systems related contexts: RAD, application migration, workflow or complex projects. It is used in different sectors, including defense and security, transportation, energy, industry, telecommunications.
Leonardi is provided with an IDE tool called Application Engine, also available as an Eclipse plugin, that can be used to create the business model, or discover it from an existing structure. It can also generate specific DBMS schemas and includes a graphical builder for forms.
Not only does Leonardi automatically produce forms from the model, but it is also able to build GUIs with more complex components such as trees, complex tables, geographical maps (associated with miscellaneous layouts), treemaps, reporting dashboard (built on top of JFreeChart and BIRT.
Leonardi is licensed under the terms of the GNU General Public License. W4 also sells value added packages of Leonardi that include workflow and BPM features.
Pros
* Time to market : Very rapid operational results
* Flexibility
* Applications are easy to extend and maintain: when the model changes, the GUI is automatically updated
* Usable by functional people who are not technical experts
Cons
* Not suited for applications where every screen needs graphical customization
* Although based on standard technologies (Java/XML) the grammar used to express the model is proprietary and the associated specific behaviors (Java code) can reveal hard to reuse by external applications.
* No collaborative features in Application Composer.
* No mobile based viewer is available
 
< Prev   Next >