SlideShare une entreprise Scribd logo
1  sur  28
Télécharger pour lire hors ligne
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 WebRatio
What is WebRatio


An enhanced Model-Driven Development environment
for 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 WebRatio


A specific modeling language
for 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
How WebRatio works
A fertile environment ...


... for designing, building and maintaining your custom
enterprise applications
WebRatio – Step 1


Capture business requirements in abstract, technology
independent models




                                           WebRatio
          Business
                                           Modeler
           User
Step 1 – Design the model


Application 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                  Components

Content        DB       SOA   BPM   Legacy       E-      Social   Saas
                                              commerce




  …            …        …     …       …          …        …        …        …
WebRatio – Step 2


Customize the environment by defining your own
generation rules




         Designer                       Java
                                     Programmer
Step 2 – Customize the generation rules


Layout 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 3


Get a tailored, yet standard, Java Web application
with 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
Demo
The Standardization Effort:
      towards IFML
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 - Focus


With a particular focus on the View part of a software
application
  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 concrete syntax by example
IFML concrete syntax by example
IFML concrete syntax by example
A real example.. The complete Gmail UI

                                          GMAIL top [X]
                                               Messages [L D]                      <<XOR>> Message search
                                                                                      <<D>> Search                         <<P>> FullSearch

                                                               OUT: Keyword              Message
                                                                                         keyword      Show search               Message                                                                   Message
                                                               IN: SearchKey                            options                full search
                                                                                          search
                                                                                                                                                                 OUT: Keyword, From,                     notification
                                                                                                                                                                 To., ...
                                                                                                                                                                 IN: SearchKey,
                                                                                                Search mail                                                      FromKey, ToKey, ..
                                                  Mbox
                                                   List
                                                                       <<XOR>> Message Management                                                                                                 <<L>> Settings
                                                                        MailBox                                                              {Self.MessageRecipients >1}
                                            OUT: AllMessages              <<XOR>>                             Message Reader
                                             IN: MessageSet

                         MarkAll                                                                                    Message      ReplyToAll
                         AsRead
                                                                          MarkAll    *    Message
                                                                                           Index                     details    Forward

                                                                                                                                 Reply
          Delete                                                                    <<D>>
                                                                                                                                                       OUT: MessageID
                                                                                                                                                        IN: MessageID
               Archive                                                               Message toolbar
                                                                                                                                                                                                                         State =”Reply” OR
                                                                          Delete                                                                                                                                             ”Forward”
                                                                         Archive         <<parameter>>
                   Report                                                                 MessageSet
                                                                          Report                                                              <<L>> Message writer
                                   OUT: SelectedMessages                                         MoveTo                                                Discard
                                      IN: MessageSet                                                                                                                                                     Reply                 OUT: Subject, From,
                                                                                                                                                                    <<form>> Message Writer                                    Cc, Body, “ReplyAll”
                                                                                                                                                                                                         ToAll
                                                                                                                               State =                 Add Cc                                                                  IN: “Re:”+ Subject, To, Cc,
                                                                                                                               ”NewMessage” OR                                 <<field>> To
                                                                                                                                                                                                                               Body, State
                                                                                                                               “Forward”
                                                                               <<P>> Tag chooser                                                                              <<field>> Cc
                                                                                                                                                                                                                                State =”Forward”
                   Associate                                                                                                                     Add Bcc                                                 Reply                  OR ”ReplyToAll”
                                                                                              Tag/                                                                            <<field>> Bcc
                    to tag /
                                                                                             Folder
                    Move to                                                    Select        Index                                State =”Reply”                            <<field>> Subject
                     folder                                                     Tag                                               OR ”ReplyToAll”                                                                               OUT: Subject, From,
                                                                                                                                                                             <<field>> Body                                     “”, Body, “Reply”
                                               OUT: SelectedTag                                                                                   Edit subject
                                                   IN: ATag                                                                                                                                              Forward                IN: “Re:”+ Subject, To, Cc,
                                                                                    Create                                                                                 <<field>> Attachment                                 Body, State
 OUT: NewTag
   IN: ATag                                                                          New
                                                                                                                                                                           <<parameter>> State
                                                                               <<M>> Tag creator                                                Add attachment
                    Create                                                                                                                                                                                                   OUT: Subject, “”, “”, Body,
                     Tag/                                                                New Tag/                                                                             Send        Save                               “Forward”
                    Folder                                                     Create     Folder                                                                                                                             IN: “Fw:”+ Subject, To, Cc,
                                                                                                                                                                                                                             Body, State


                     OUT: NewTagName
                       IN: TagName


                                                                                                                                                                                                                        State =”Reply” OR
                                                                                                                                                                                                                           ”ReplyToAll”
                                                                                                                                                                   Send                       Save
                                                                                                                                                                   Action                     Action
The IFML metamodel - 1




                         25
The IFML metamodel - 2
IFML – Open-source editor


WebRatio will provide a first open-source
implementation 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

  Code
generator
                                           fUML + Alf
     Front-end
                       Alf + fUML interpreter
       code




  You are welcome to comment on IFML at OMG and to
  contribute!
Thank you!
emanuele.molteni@webratio.com   marco.brambilla@polimi.it
emanuelemolteni                 marcobrambi
emanuelemolteni                 marcobrambi

Contenu connexe

Tendances

Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Marco Brambilla
 
Model driven development and code generation of software systems
Model driven development and code generation of software systemsModel driven development and code generation of software systems
Model driven development and code generation of software systemsMarco Brambilla
 
EMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsEMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsHamza ED-DOUIBI
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Futureelliando dias
 
Rhapsody Leveraging Software For Reuse
Rhapsody Leveraging Software For ReuseRhapsody Leveraging Software For Reuse
Rhapsody Leveraging Software For ReuseBill Duncan
 
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.Marco Brambilla
 
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Jordi Cabot
 
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Jordi Cabot
 
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesModel-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesMarco Brambilla
 
Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsModel-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsJordi Cabot
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Marco Brambilla
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architectureBiruk Mamo
 
Funambol Java Clients Development: The Blackberry Case
Funambol Java Clients Development: The Blackberry CaseFunambol Java Clients Development: The Blackberry Case
Funambol Java Clients Development: The Blackberry CaseFunambol
 
TM Forum Frameworx 17.5 togehter with Sparx Systems ProCloud Server
TM Forum Frameworx 17.5 togehter with Sparx Systems ProCloud ServerTM Forum Frameworx 17.5 togehter with Sparx Systems ProCloud Server
TM Forum Frameworx 17.5 togehter with Sparx Systems ProCloud ServerTransWare AG
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010fmadiot
 
Design documentation
Design documentationDesign documentation
Design documentationnicky_walters
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagrammingmeghantaylor
 

Tendances (20)

Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...Automatic code generation for cross platform, multi-device mobile apps. An in...
Automatic code generation for cross platform, multi-device mobile apps. An in...
 
Model driven development and code generation of software systems
Model driven development and code generation of software systemsModel driven development and code generation of software systems
Model driven development and code generation of software systems
 
EMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from ModelsEMF-REST: Generation of RESTful APIs from Models
EMF-REST: Generation of RESTful APIs from Models
 
Model Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & FutureModel Driven Architecture (MDA): Motivations, Status & Future
Model Driven Architecture (MDA): Motivations, Status & Future
 
Rhapsody Leveraging Software For Reuse
Rhapsody Leveraging Software For ReuseRhapsody Leveraging Software For Reuse
Rhapsody Leveraging Software For Reuse
 
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
Model-Driven Design of Audiovisual Indexing Processes for Search Apps.
 
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
Model-Driven Software Engineering in Practice - Chapter 4 - Model-Driven Arch...
 
MDA
MDAMDA
MDA
 
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
 
Introduction to MDA
Introduction to MDAIntroduction to MDA
Introduction to MDA
 
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesModel-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
 
Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing modelsModel-Driven Software Engineering in Practice - Chapter 10 - Managing models
Model-Driven Software Engineering in Practice - Chapter 10 - Managing models
 
Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...Industrial and Academic Experiences with a User Interaction Modeling Language...
Industrial and Academic Experiences with a User Interaction Modeling Language...
 
Model driven architecture
Model driven architectureModel driven architecture
Model driven architecture
 
Funambol Java Clients Development: The Blackberry Case
Funambol Java Clients Development: The Blackberry CaseFunambol Java Clients Development: The Blackberry Case
Funambol Java Clients Development: The Blackberry Case
 
TM Forum Frameworx 17.5 togehter with Sparx Systems ProCloud Server
TM Forum Frameworx 17.5 togehter with Sparx Systems ProCloud ServerTM Forum Frameworx 17.5 togehter with Sparx Systems ProCloud Server
TM Forum Frameworx 17.5 togehter with Sparx Systems ProCloud Server
 
Lms Selection Templates
Lms Selection TemplatesLms Selection Templates
Lms Selection Templates
 
MoDisco EclipseCon2010
MoDisco EclipseCon2010MoDisco EclipseCon2010
MoDisco EclipseCon2010
 
Design documentation
Design documentationDesign documentation
Design documentation
 
A Software Architect's View On Diagramming
A Software Architect's View On DiagrammingA Software Architect's View On Diagramming
A Software Architect's View On Diagramming
 

Similaire à End-to-end Model-driven Development of Applications with Eclipse using the MDD Toolsuite WebRatio

M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case StudyADC Austin Tech
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpromanojdhir
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpromanojdhir
 
Dot Net Frame Work
Dot Net Frame WorkDot Net Frame Work
Dot Net Frame WorkLiquidHub
 
Internship Report
Internship ReportInternship Report
Internship ReportJiali Chen
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009Stefane Fermigier
 
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3SAP Portal
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloudumityalcinalp
 
SharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformSharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformAyman El-Hattab
 
Presenter manual J2EE (specially for summer interns)
Presenter manual  J2EE (specially for summer interns)Presenter manual  J2EE (specially for summer interns)
Presenter manual J2EE (specially for summer interns)XPERT INFOTECH
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"GlobalLogic Ukraine
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstEnea Gabriel
 
Accessing Your Existing SAP NetWeaver Portal on Mobile Device
Accessing Your Existing SAP NetWeaver Portal on Mobile DeviceAccessing Your Existing SAP NetWeaver Portal on Mobile Device
Accessing Your Existing SAP NetWeaver Portal on Mobile DeviceSAP Portal
 
DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013Sanjeev Sharma
 
Keyword Services Platform (KSP) from Microsoft adCenter
Keyword Services Platform (KSP) from Microsoft adCenterKeyword Services Platform (KSP) from Microsoft adCenter
Keyword Services Platform (KSP) from Microsoft adCentergoodfriday
 

Similaire à End-to-end Model-driven Development of Applications with Eclipse using the MDD Toolsuite WebRatio (20)

M3 Modernization Case Study
M3 Modernization Case StudyM3 Modernization Case Study
M3 Modernization Case Study
 
CV
CVCV
CV
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpro
 
Abap web dynpro
Abap   web dynproAbap   web dynpro
Abap web dynpro
 
.net
.net.net
.net
 
Dot Net Frame Work
Dot Net Frame WorkDot Net Frame Work
Dot Net Frame Work
 
Internship Report
Internship ReportInternship Report
Internship Report
 
What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009What's new in Nuxeo 5.2? - Solutions Linux 2009
What's new in Nuxeo 5.2? - Solutions Linux 2009
 
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
Best Practices for Upgrading Your Portal to SAP NetWeaver 7.3
 
Development Model for The Cloud
Development Model for The CloudDevelopment Model for The Cloud
Development Model for The Cloud
 
Introduction to Force.com
Introduction to Force.comIntroduction to Force.com
Introduction to Force.com
 
SharePoint 2010 as a Development Platform
SharePoint 2010 as a Development PlatformSharePoint 2010 as a Development Platform
SharePoint 2010 as a Development Platform
 
Presenter manual J2EE (specially for summer interns)
Presenter manual  J2EE (specially for summer interns)Presenter manual  J2EE (specially for summer interns)
Presenter manual J2EE (specially for summer interns)
 
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
Java TechTalk "Spring boot made life easier with Kubernetes and Microservices"
 
Nuno Godinho
Nuno GodinhoNuno Godinho
Nuno Godinho
 
Elements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code FirstElements of DDD with ASP.NET MVC & Entity Framework Code First
Elements of DDD with ASP.NET MVC & Entity Framework Code First
 
soa1.ppt
soa1.pptsoa1.ppt
soa1.ppt
 
Accessing Your Existing SAP NetWeaver Portal on Mobile Device
Accessing Your Existing SAP NetWeaver Portal on Mobile DeviceAccessing Your Existing SAP NetWeaver Portal on Mobile Device
Accessing Your Existing SAP NetWeaver Portal on Mobile Device
 
DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013DevOps for Mobile - DevOpsDays, NY, 2013
DevOps for Mobile - DevOpsDays, NY, 2013
 
Keyword Services Platform (KSP) from Microsoft adCenter
Keyword Services Platform (KSP) from Microsoft adCenterKeyword Services Platform (KSP) from Microsoft adCenter
Keyword Services Platform (KSP) from Microsoft adCenter
 

Dernier

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 

Dernier (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 

End-to-end Model-driven Development of Applications with Eclipse using the MDD Toolsuite WebRatio

  • 1. 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
  • 3. What is WebRatio An enhanced Model-Driven Development environment for 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
  • 4. WebML, at the core of WebRatio A specific modeling language for 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
  • 6. A fertile environment ... ... for designing, building and maintaining your custom enterprise applications
  • 7. WebRatio – Step 1 Capture business requirements in abstract, technology independent models WebRatio Business Modeler User
  • 8. Step 1 – Design the model Application 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
  • 9. Model components WebRatio Built-in WebRatio Store Custom Components Components Components Content DB SOA BPM Legacy E- Social Saas commerce … … … … … … … … …
  • 10. WebRatio – Step 2 Customize the environment by defining your own generation rules Designer Java Programmer
  • 11. Step 2 – Customize the generation rules Layout 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
  • 12. WebRatio – Step 3 Get a tailored, yet standard, Java Web application with no proprietary runtime WebRatio Business Modeler User
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. Demo
  • 18. 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
  • 19. IFML - Focus With a particular focus on the View part of a software application 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
  • 20. IFML concrete syntax by example
  • 21. IFML concrete syntax by example
  • 22. IFML concrete syntax by example
  • 23. A real example.. The complete Gmail UI GMAIL top [X] Messages [L D] <<XOR>> Message search <<D>> Search <<P>> FullSearch OUT: Keyword Message keyword Show search Message Message IN: SearchKey options full search search OUT: Keyword, From, notification To., ... IN: SearchKey, Search mail FromKey, ToKey, .. Mbox List <<XOR>> Message Management <<L>> Settings MailBox {Self.MessageRecipients >1} OUT: AllMessages <<XOR>> Message Reader IN: MessageSet MarkAll Message ReplyToAll AsRead MarkAll * Message Index details Forward Reply Delete <<D>> OUT: MessageID IN: MessageID Archive Message toolbar State =”Reply” OR Delete ”Forward” Archive <<parameter>> Report MessageSet Report <<L>> Message writer OUT: SelectedMessages MoveTo Discard IN: MessageSet Reply OUT: Subject, From, <<form>> Message Writer Cc, Body, “ReplyAll” ToAll State = Add Cc IN: “Re:”+ Subject, To, Cc, ”NewMessage” OR <<field>> To Body, State “Forward” <<P>> Tag chooser <<field>> Cc State =”Forward” Associate Add Bcc Reply OR ”ReplyToAll” Tag/ <<field>> Bcc to tag / Folder Move to Select Index State =”Reply” <<field>> Subject folder Tag OR ”ReplyToAll” OUT: Subject, From, <<field>> Body “”, Body, “Reply” OUT: SelectedTag Edit subject IN: ATag Forward IN: “Re:”+ Subject, To, Cc, Create <<field>> Attachment Body, State OUT: NewTag IN: ATag New <<parameter>> State <<M>> Tag creator Add attachment Create OUT: Subject, “”, “”, Body, Tag/ New Tag/ Send Save “Forward” Folder Create Folder IN: “Fw:”+ Subject, To, Cc, Body, State OUT: NewTagName IN: TagName State =”Reply” OR ”ReplyToAll” Send Save Action Action
  • 26. IFML – Open-source editor WebRatio will provide a first open-source implementation 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
  • 27. IFML – Open-source editor (2) Architecture overview UML Editor Alf IFML Editor (class, activity, … from Papyrus) Editor Code generator fUML + Alf Front-end Alf + fUML interpreter code You are welcome to comment on IFML at OMG and to contribute!
  • 28. Thank you! emanuele.molteni@webratio.com marco.brambilla@polimi.it emanuelemolteni marcobrambi emanuelemolteni marcobrambi