Once your model is built with BLU AGE® Build Module, you have to transform it into business application according to your enterprise technical frameworks standards. The 'Deliver' module ensures this transformation. It's available in server mode and designed for architects, developers and project manager's use.
This module offers tools for the elaboration of the generated application's technical architecture, according to your own architecture frameworks. So, it offers an integrated environment built in Eclipse to create plug-ins that will interpret and transform UML model, as well as generate applications' source code. This environment is called BSF: BLU AGE® Software Factory.
Code generation plug-ins called BLU AGE® Shared Plug-ins or BSP, are available and maintained on this environment for the most common JAVA and .NET frameworks such as Struts, JSF, EJB, Hibernate, WebService, Spring, NHibernate, ASPX... These BSP can be customized according to your applications' specific needs. You can also create your own code generation BSP according to specific frameworks using the tools and wizards available in this module.
Each BSP is created and configured using BLU AGE® tools, views and editor built in Eclipse. A BSP is created from a DSL (Domain Specific Language) specification, or meta-model that describes the kind of UML modeling and the elements to be used in the models transformation process.
These plug-ins have access interfaces, that describe the UML modeling of the functional specifications and the business logic, and which principal function is to transform them according to meta-model carried in each plug-in by executing the transformation rules written in the Atlas Transformation Language.
These ATL rules, are executed in a virtual machine specific to this language in order to generate a technological platform specific UML model, called Platform Specific Model according to the MDA specification. This PSM will be used then for the automatic transformation into application source code based on JET templates.
Thus created and configured BSP can be tested, validated and adjusted in the same environment, before being published and deployed in the plug-in repository, in order to make it accessible to different projects from the BLU AGE® server's Deliver module.
From a technical point of view, these plug-ins execution principle is based on the Equinox server - the Eclipse foundation OSGI implementation - allowing the creation of a server configuration to execute models transformation and source code generation. This configuration allows creating a multiple generation environment on the Deliver server.
Each generation is configured within a generation workflow, allowing the technical environment description for the generated application's deployment, such as the packaging format, the target application server, the used database server, the Java runtime version used for compiling or running the application...
This workflow allows also the BSP execution order configuration, according to the Tree Walker principle with the possibility to define the execution and execution chaining order according to the code generation dependencies description. For your information, a whole application's generation that would require 300 man/month development takes 2 minutes.
With this module, a project management administration web interface, called BLU AGE® Config-Runner, is used to run the application generation workflows and yield the validated final package, to deploy on the production server. This interface allows configuring and organizing the projects resources with project managers, architects, consultants, integrators or software testers... users' profiles.
The project manager can use this interface to create generation projects accessible by the business consultants in charge of UML modeling and by the architects in charge of BSP configuration, and offers thus a collaborative space in iterative mode, allowing the application generation test on the target technical environment.
This administration interface integrates also a tool of project management and each iteration detailed follow up, with a configuration and versioning management by project in order to ensure the inputs and the various application's generations traceability.
