O SlideShare utiliza cookies para otimizar a funcionalidade e o desempenho do site, assim como para apresentar publicidade mais relevante aos nossos usuários. Se você continuar a navegar o site, você aceita o uso de cookies. Leia nosso Contrato do Usuário e nossa Política de Privacidade.
O SlideShare utiliza cookies para otimizar a funcionalidade e o desempenho do site, assim como para apresentar publicidade mais relevante aos nossos usuários. Se você continuar a utilizar o site, você aceita o uso de cookies. Leia nossa Política de Privacidade e nosso Contrato do Usuário para obter mais detalhes.
End-to-end Model-driven Development of Applications with Eclipse using the MDD Toolsuite WebRatio
End-to-end Model-driven Development of Applications with Eclipse using the MDD Toolsuite WebRatio Emanuele Molteni, WebRatio Chief Product Officer Marco Brambilla, WebRatio Scientific Advisor Ludwigsburg- EclipseCon 2012– October, 24 2012
What is WebRatioAn enhanced Model-Driven Development environmentfor building enterprise Web/SOA applications based on MDD techniques and code generation with a special focus to User Interaction offering the highest possible level of layout customization supporting the BPMN standard for Process Modeling
WebML, at the core of WebRatioA specific modeling languagefor defining applications Based on a set of components (Units) “Content Units” for content publishing “Operations Units” for business logic Connection to a content model for data retrieval and management Smart use of links for user interactions management, data flow between units and business logic workflow definition Page computation algorithms for execution semantics Users can add their own components: Write complex business logic or integration directly in Java and “encapsulate” it in an abstract component
A fertile environment ...... for designing, building and maintaining your customenterprise applications
WebRatio – Step 1Capture business requirements in abstract, technologyindependent models WebRatio Business Modeler User
Step 1 – Design the modelApplication Model Process Model Define data, services, logic, Define business processes presentation details and user managed by the application interaction BPMN notation WebML Notation > IFML(*)(*) the standardization process of the language is in progress within
Model components WebRatio Built-in WebRatio Store Custom Components Components ComponentsContent DB SOA BPM Legacy E- Social Saas commerce … … … … … … … … …
WebRatio – Step 2Customize the environment by defining your owngeneration rules Designer Java Programmer
Step 2 – Customize the generation rulesLayout templates Custom components for a perfectly fine-tuned for implementing any kind of layout, tailored to your visual business logic, integration or identity complex task
WebRatio – Step 3Get a tailored, yet standard, Java Web applicationwith no proprietary runtime WebRatio Business Modeler User
Step 3 – Get the application Standard Web App User Interface Desktop Mobile Deploy On-premises In the cloud Standard Java Application Server … … Integration Layer DBM System BPM Engine Legacy System Middleware MySQL, PostgreSQL, SQL Server, Oracle, TIBCO (*), JBPM (*) SAP, IBM Host, TIBCO ESB, Mule ESB DB2, etc. AS400
Step 3 – Application architecture WebRatio IDE WebML and BPM Customized rules Code generators (Groovy and Java) Standard Java Application Struts Java actions Commons libraries JSP Pages Struts actions WebRatio WebRatio Custom AJAX Runtime mapping and form Runtime Java BPM Java components framework beans Services Engine Java Services WebRatio components descriptors Hibernate configuration files and Java classes Web application and logs configuration files
WebRatio IDE Architecture ported from an AWT/Swing to Eclipse 3.2 in 2007 (currently under Eclipse 3.6.2) based on GEF in 2007 EMF/GMF was not mature enough for our purposes (in particular in terms of performances) based on an architecture similar to EMF/GMF a meta-model (WebML ) automatic generation of domain models, palettes and tools tree based model-driven compare (a-la EMFCompare) code generation based on a template based generation through Java and Groovy a set of built-in generators to generate application logic, parameters propagation, AJAX features and so on A set of user defined templates in particular to define custom visual identities and custom components
IFML - Objectives Create a language able to define for the front-end of applications belonging to diverse domains these aspects Content of interfaces User events and interaction Binding to business logic
IFML - FocusWith a particular focus on the View part of a softwareapplication view components view modules events interaction between components interaction between the user and the components (events) the distribution of view components and referenced data and business logic at the different tiers of the architecture
IFML – Open-source editorWebRatio will provide a first open-sourceimplementation of the IFML editor published first on Eclipse Labs later on, after gathering interest and partecipation from the community, transformed to a project of the Eclipse Foundation a full solution based on EMF/GMF The initial Ecore model for the core part of IFML The EMF-based IFML editor Integration with open source UML editors (Papyrus) The Alf and fUML execution engines
IFML – Open-source editor (2) Architecture overview UML Editor Alf IFML Editor (class, activity, … from Papyrus) Editor Codegenerator fUML + Alf Front-end Alf + fUML interpreter code You are welcome to comment on IFML at OMG and to contribute!