end-to-end model-driven development of applications with eclipse using the mdd toolsuite webratio

28
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

Upload: emanuelemolteni

Post on 10-May-2015

1.579 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 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

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

What is WebRatio

Page 3: End-to-end Model-driven Development of Applications with Eclipse using  the MDD Toolsuite 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

What is WebRatio

Page 4: End-to-end Model-driven Development of Applications with Eclipse using  the MDD Toolsuite 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

WebML, at the core of WebRatio

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

How WebRatio works

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

... for designing, building and maintaining your custom enterprise applications

A fertile environment ...

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

Capture business requirements in abstract, technology independent models

WebRatio – Step 1

Business User

WebRatio Modeler

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

Application Model

Define data, services, logic, presentation details and user interaction

WebML Notation > IFML(*)

Process Model

Define business processes managed by the application

BPMN notation

Step 1 – Design the model

(*) the standardization process of the language is in progress within

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

WebRatio Built-in Components

WebRatio Store Components

DB Social Legacy SOA Content E-

commerce

BPM

Saas

… … … … … … … …

Custom Components

Model components

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

Customize the environment by defining your own generation rules

WebRatio – Step 2

Designer Java Programmer

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

Layout templates

for a perfectly fine-tuned layout, tailored to your visual identity

Custom components

for implementing any kind of business logic, integration or complex task

Step 2 – Customize the generation rules

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

Get a tailored, yet standard, Java Web application with no proprietary runtime

WebRatio – Step 3

WebRatio Modeler

Business User

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

Standard Web App

Step 3 – Get the application

Mobile Desktop

User Interface

DBM System MySQL, PostgreSQL, SQL Server, Oracle,

DB2, etc.

Legacy System

SAP, IBM Host, AS400

BPM Engine

TIBCO (*), JBPM (*)

Middleware

TIBCO ESB, Mule ESB

Integration Layer

On-premises In the cloud

… …

Standard Java Application

Server

Deploy

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

Standard Java Application

Step 3 – Application architecture

Code generators (Groovy and Java)

Struts actions mapping and form

beans

Hibernate configuration files and Java classes

JSP Pages

Web application and logs configuration files

WebRatio IDE

WebML and BPM Customized rules

Commons libraries

WebRatio Runtime Java

Services

Custom components Java Services

WebRatio BPM Java

Engine

WebRatio components descriptors

Struts Java actions

AJAX Runtime framework

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

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

WebRatio IDE Architecture

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

Demo

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

The Standardization Effort: towards IFML

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

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 - Objectives

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

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 - Focus

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

IFML concrete syntax by example

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

IFML concrete syntax by example

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

IFML concrete syntax by example

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

A real example.. The complete Gmail UI

Messages [L D]

GMAIL top [X]

Mbox List

<<XOR>> Message Management

MailBox

Message notification

<<XOR>> Message Reader

<<D>>

Message Index

Message details

<<L>> Settings

<<P>> Tag chooser

Report

Archive

Delete

Tag/Folder Index

Associate to tag / Move to folder

<<M>> Tag creator

New Tag/Folder

Create Tag/

Folder

Message toolbar

OUT: NewTagIN: ATag

OUT: NewTagNameIN: TagName

OUT: SelectedTagIN: ATag

OUT: SelectedMessagesIN: MessageSet

Delete

Archive

Report

MoveTo

Create New

Select Tag

Create

MarkAll

MarkAllAsRead

OUT: AllMessagesIN: MessageSet

<<parameter>>MessageSet

<<XOR>> Message search

<<D>> Search

Message keyword search

<<P>> FullSearch

Message full search

Show search options

Search mail

OUT: KeywordIN: SearchKey

<<L>> Message writer

<<form>> Message Writer

Send Action

{Self.MessageRecipients >1}

OUT: MessageIDIN: MessageID

<<field>> To

<<field>> Cc

<<field>> Bcc

<<field>> Subject

<<field>> Body

<<field>> Attachment

OUT: Subject, From, Cc, Body, “ReplyAll”IN: “Re:”+ Subject, To, Cc, Body, State

OUT: Subject, From, “”, Body, “Reply”IN: “Re:”+ Subject, To, Cc, Body, State

OUT: Subject, “”, “”, Body, “Forward”IN: “Fw:”+ Subject, To, Cc, Body, State

State =”Reply” OR ”Forward”

SaveAction

State =”Forward” OR ”ReplyToAll”

<<parameter>> State

State = ”NewMessage” OR“Forward”

Forward

Reply

ReplyToAll

Add Bcc

Add Cc

Edit subject

Add attachment

Send Save

DiscardReplyToAll

Reply

Forward

State =”Reply” OR ”ReplyToAll”

State =”Reply” OR ”ReplyToAll”

OUT: Keyword, From, To., ...IN: SearchKey, FromKey, ToKey, ..

*

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

The IFML metamodel - 1

25

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

The IFML metamodel - 2

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

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

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

Architecture overview

You are welcome to comment on IFML at OMG and to contribute!

IFML – Open-source editor (2)

IFML Editor UML Editor

(class, activity, … from Papyrus)

Front-end code

Alf + fUML interpreter

fUML + Alf

Alf Editor

Code generator

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

Thank you! [email protected] emanuelemolteni emanuelemolteni

[email protected] marcobrambi marcobrambi