modelbus eclipse ecesis project - 1 - modelbus an open and distributed platform for mdd tool...

42
ModelBus Eclipse ECESIS Project - 1 - ModelBus ModelBus An Open and Distributed Platform An Open and Distributed Platform for MDD Tool Interoperability for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris 6 8, rue du Capitaine Scott 75015 Paris, France http://www.lip6.fr

Post on 20-Dec-2015

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 1 -

ModelBusModelBusAn Open and Distributed Platform An Open and Distributed Platform

for MDD Tool Interoperabilityfor MDD Tool InteroperabilityLIP6, Laboratoire d'Informatique de Paris 6

8, rue du Capitaine Scott75015 Paris, France

http://www.lip6.fr

Page 2: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 2 -

• Software development and MDD

Page 3: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 3 -

Software development isn’t easyRepeated attempts to get it right 373 programming languages (at least!)

A+, ABAP, ABC, Ada( Ada83, Ada95, Ada9X(95) ), Aleph, Algae, ALGOL ( ALGOL 60 ), Amos, APL, ASP (Active Server Pages) ( JavaScript, VBScript ), Assembler ( 6502, Apple II (II+, IIe, IIC), IBM Assembler/370 (VM/CMS), Intel 80x86 (DOS, MASM), Intel 80x86 (DOS, TASM), Intel 80x86 (gas/NetBSD), Intel 80x86 (nasm/NetBSD(aout)), Intel 80x86 (nasm), MIDAS PDP-10 (MIT Incompatible Timesharing System), MIPS R2000, Motorola 68000 (ATARI), VAX ), awk, BASIC, BCPL, Befunge, BETA, Blue, Brain, BrainF*ck, C, C#, C++ ( DOS/Windows, DOS/Windows (obsolete C++) ), Cilk, CLAIRE, Clipper, COBOL, Concurrent Clean, Cook, COSY INFINITY,C-Talk, Curl, Cyclone, D, dBASE, DOS Batch, Dylan, E, Eiffel ( SmallEiffel), Emerald, Erlang, Euphoria, FISh, FOP, Forth ( ANS Forth, ANS Forth, pForth), Fortran (Fortran 77, Fortran 90 ), FOX, Gofer, Haskell ( Glasgow Haskell Compiler (GHC) ), HB (Hyper Builder), Hope, HPGL, HTML, IBM EXEC ( IBM EXEC (VM/CMS), IBM EXEC2 (VM/CMS) ), Icon, J, Java, JavaScript, Jovial, K, Labview, LaTeX, Leda, LIRL, Lisp ( Common Lisp, EmacsLisp ), Logo, Lout, Lua, Make, Mercury, merd, Miranda, Moby, Modula ( Modula-2, Modula-3 ), mpC, MUMPS, NESL, Oberon, Objective-C, Objective Caml, Obliq, Octave, Ook, Oz/Mozart, Parrot, Pascal ( ISO-7185 ), Perl, Phantom, PHP ( PHP3 ), Pico, Pike, PL/0, PL/0E, PL/1, PL/SQL, Pliant, Postscript, Profan, Prolog, Python, R, Ratfor, Rebol, REXX, Ruby, Sather, Scheme, Shell-Sprachen( csh, es(Extensible Shell), sh,ksh,zsh,bash, sh,ksh,zsh,bash,csh,es, WSH (Windows Scripting Host), zsh), Simula( Simula67 ), Sina, Sirius, Sisal, Smalltalk, SML (SML/NJ ), SNOBOL ( SNOBOL4 ), SQL ( Oracle SQL ), Superbase, Tcl( Tcl/Tk), TI-83 Graphing Calculator, TOM, Turing, TXL, UFO, UML (Unified Modeling Language), VHDL, Vim, WebL, WML (Wireless Markup Language), XPL0, Yacas, YAFL, Yoix, Yorick,4DOS, 4TH, ABCL/1, ABE, Acore, Act/1, Act/2, Act/3, Actor, Actors, Actra, AeonicScript, Agora, Alfonzo, Algae, ANTLR, Argus, ART, ASP, B, BEAST, Befunge, Berkeley Smalltalk, BISON, Bistro, Blaze, Brouhaha, C mitKlassen, C+-, C-Linda, CachéObjectScript, Caml, Cantor, Cause, Cayenne, Cecil, CH, Chakotay, Charm, Cid, Clarity, Clascal, Classic Ada, Clay, Clean, Clipper, CLOS, Clu, Cluster 86, ColdC, Common Loops, Common Objects, Common ORBIT, Concurrent Prolog,Concurrent Smalltalk, Coral66, CP, CSSA, CST, cT, Curl, Curry, Delphi, Demeter, Director, Distributed Smalltalk, Dynace, EB, EBL, Eclipse, EcmaScript, Elan, Elegant, Elf, Eli, Elisp(Emacs-Lisp), Escher, Esterel, Expect, ExperCommonLisp, Extended Smalltalk, Felix Pascal, Ficl, FIJI, Flavors, FOOPlog, FOOPS, Forte', Freemarker, FRL, Galileo, Garp, Gentle, GJ (Generic Java), GLISP, Goedel, Guile, Gypsy, HP VEE, HPGL2, Hybrid, ICI, IDL, Inferno, Inheritance, InnovAda, INTERCAL, Intermission, IPL, Jade, Jasmine, Joule, Jovial (Jules' own version of IAL (international algorithmic language)), KL-One, KL1, KRL, KRS, Lagoona, Laure, Lens, LEX, LIFE, Limbo, Linda, Little Smalltalk, LL, LOOPS, Lore, LPC (Lars PensjöC), Lua, Lucid, Lyric, Mace, MACSYMA, MALAGA, Maple, Mathematica, Mawl, MELD, Mercury, MetaHTML, Mjolner, ModPascal, MOM, Morphe, mpC, Mutt, Napier88, Neon, New Flavors, NIL, O-CPU, OakLisp, Object Assembler, Object Cobol, Object Lisp, Object Logo, Object Oberon, Object Pascal, ObjVLisp, Occam, Omega, OmniMark, OOPC, OOPS+, OPAL, OPL, Orbit, Orca, Orient84/K, OTM, PaL, Parsec, pC++ Sage++, PCOL, PF, PIE, Pilot, Pizza, PL/LL, PLAN, Plankalkül, Plasma II, POOL-T, Pop-11, PROCOL, Prometheus, PROMOTER, Quick Pascal, Quicktalk, Rebus, RIGAL, ROIS NPL, ROSS, S3L, SAL, SAST, SCOOP, SCOOPS, Scotty, sed, Self, SGML, Simscript, Smalltalk AT, Smalltalk V, Smallworld, SOUL (Smalltalk Open Unification Language), Spanner, SPOOL, SR, SRL, STROBE, T, T-Cham, Tempo, Tex, Theta, Tipi, Transframe, Trellis/Owl, Turing, TXL, Tycoon, µLPC, Uniform, UNITS, V, VBScript, VHDL, VIRT, Vulcan, WebMacro, WML (Website Meta Language), XLISP, XML, XSL, YACC, Yodl, Z, Zoom/VM

Page 4: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 4 -

3 axes

Know-how

Productivity

Platform

XMI2.1

JMI

UML2.0

EJB Profile

QVT

UML->Java

MOF2.0

EMFUML1.4

MOF1.4

Corba Profile

QoS Profile GenDoc

UML/EJB->J2EE

Applying MDE needs to fix priorities:

• UML2.0 is not yet productive.

• EMF should not be use to capitalize know-how.

• Platform cannot be yet totally modeled.

Page 5: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 5 -

• Environment for MDD

Page 6: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 6 -

Model Driven Development

• Model-Centric– Models represents software artefacts in various aspects

(Business aspect, Implementation aspect, QoS aspect)Different kind of models: Both PIMs and PSMs.

PIM (UML models, User Interface models, …)PSM (EJB models, CORBA models, .NET models, …)

• Model Automation– Software development is assisted by automated

operations for reducing development cost and human errors.

– E.g. model visualization, model edition, model transformation, model verification, code generation, …

– Provided by MDD tools (CASE tools for MDD)

Page 7: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 7 -

MDD tool chain -> Need for Tool integration

• No Universal Tool -> Need to plug additional functionalities• Need to support Distributed Tool Chains• Need to replace Tool Chain tokens for more flexibility• Need to share models between several Tools (Modelling,

etc…)

Requirements•DOORS•Mantis DB

Design•Objecteering•IBM RSA

Implementation/

Code Generation•MOF2Text

•UML2EJB

Validation•Test Generators

Page 8: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 8 -

MDD Tool Interoperability Problem

• MDD software development is complex– Involve several kinds of models (PIMs/PSMs)– Involve several software development activities

(analysis, design, implementation, deployment, test)

• One MDD tool can not handle ALL models and activities need to use several tools conjointly.

• Ex. A model transformation engine may not support the visualization of the input/output models. Therefore it needs to be used conjointly with a model editor tool.

• Integration/Interoperability problems

• How can tools share models ?• How can tools share functionalities ?

Page 9: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 9 -

Aspects of tool interoperability

Tool Integration =• Data Integration ("data sharing")

• Ex. How can tools share data (models) ?

• Control Integration ("service sharing")• Ex. How can a tool use a service of another tool? Enable functionalities sharing

• Presentation Integration• Ex. How to unify the user interfaces of different tools in the same

environment (workbench) ?

• Process Integration• Ex. How to support software engineering processes that involve

several tools ?

Our focus: Data sharing/Service sharing

Page 10: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 10 -

Data sharing

• Goal: enable tools to read/modify models located in other tools.

• Ex: A UML model editor shares a UML model with the transformation engine: The transformation engine can access and modify the model located in the modeler.

• Problem of model heterogeneity– Different kinds of models

• CIM, PIM, PSM • UML models, Domain Specific models

– Different model formats / representations• Various versions of JMI, EMF, XMI, MDL

• Problem of model location– Model discovery (local / remote )– Efficient sharing mechanism

Page 11: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 11 -

Service sharing

• Goal: enable a tool to invoke a service of another tool.– A tool can have two roles: Service Provider/ Service

Consumer– Service invocation = request + reply

• Problems – Need for explicit service description

• Parameters = Models -> Define Model Type

– Tool location and service discovery– Invocation mechanism heterogeneity

• Both local/remote service invocation is required

Page 12: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 12 -

Research goals

=> Need transparency w.r.t. – local/remote model sharing– model/service discovery– local/remote service invocation

Page 13: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 13 -

• Existing Solutions for Tool Interoperability

Page 14: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 14 -

Outline

•Eclipse-EMF platform•MOF-CORBA Repository•Exchange of XMI files•Web Services integration

•Summary

Page 15: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 15 -

Eclipse-EMF platform

• Eclipse– Eclipse is local environment for tool

integration– Tool = "Eclipse plugin".– All plugins are registered within Platform

• A plugin can be discovered via Platform.

• EMF (Eclipse Modeling Framework)– Model = Java objects– Model can be imported/exported to XMI.

• Reference: http://eclipse.org/emf/

Page 16: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 16 -

MOF-CORBA Repository

• MOF-to-IDL– An OMG standard for generating a set of IDL

interfaces for representing models as CORBA objects.

• MOF/CORBA Repository– Models = CORBA objects.– Tools access = CORBA RPC.

• Reference– Kath, O. et al., An Open Modeling Infrastructure

integrating EDOC and CCM, Proc. of the 7th Int'l Conf. on Enterprise Distributed Object Computing, IEEE CS, 2003.

Page 17: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 17 -

Exchange of XMI files

• Model format = OMG XMI• Exchange of XMI files

– Tool access = XMI file export/import

• Reference– Christian, H. D. et al., Tool Integration: Experiences and Issues in

Using XMI and Component Technology, Proc. of the Technology of Object-Oriented Languages and Systems (TOOLS 33), IEEE CS, 2000.

Page 18: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 18 -

Web Services integration

• Tools functionalities = Web Services. • Tool access = SOAP/HTTP call.• Models = XMI entries within SOAP messages.

• References– Togni, J.D. et al., Tool integration using the web-services

approach, Proc. of the 15th ACM Great Lakes symposium on VLSI, 2005.

– Mueller, W. et al., Dynamic Tool Integration in Heterogeneous Computer Networks, Design, Automation and Test in Europe Conference and Exhibition (DATE'03), 2003.

Page 19: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 19 -

SummaryEclipse/EMF

MOF-CORBA : the mostly used version (1.4)

XMI file exchange

Web Services

Data sharing:

Model representation

Java objects IDL-compliant representations

conversion to XMI is needed

XMI only

Local/remote model sharing

Only local sharing

Remote sharing Manual No support for local sharing.

Service sharing:

Model Parameter Definition

No N/A, data sharing only

N/A, data sharing only

No

Tool location & service discovery

Yes(only locally)

N/A, data sharing only

N/A, data sharing only

Transparent

Invocation mechanism

Only local API call

N/A, data sharing only

N/A, data sharing only

Remote Only

Page 20: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 20 -

•ModelBus: Concepts & Design

Page 21: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 21 -

Outline

• ModelBus Principles• Close look to ModelBus concepts

– Abstract Modelling Service Description– Components: Adapter, Registry and Notification

Broker– Component Interactions for service invocation

and notification

• Current Implementation– Features Available– Tools plugged

Page 22: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 22 -

ModelBus Principles

• Model Driven Development is “orchestration” of modelling services

• Goal of ModelBus = Infrastructure for modelling service integration and interoperability

getUMLModel()

checkUMLModel()

transformUML2EJB()

Repository tool:

Provides version control for software artifacts

OCL checker tool:

check the well-formed-ness of models against OCL constraints

QVT tool:

Transform models between different formalisms

Developer (Tool user)

UML Workbench:

Enable the visualization of UML models

= uses functionalities of/ shares models with

Page 23: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 23 -

ModelBus Principles (2) – Infrastructure

• Based on Service Oriented Architecture• Reuse conventional middleware – Web

Services

• Add new features

– Conceptual level: Tool description language

– Execution level: Transparent Model/Service Sharing

Page 24: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 24 -

Close look to ModelBus: New Features

• Conceptual level: Tool description language– Specify the services a tool shares – Provide an abstraction from tool implementation /

transport implementation

• Execution level: Adapted Run-time Infrastructure– Transparent model sharing

• Automated model format conversion• Support several model transmission granularities

– Model fragment/Complete model transmission

– Transparent Service sharing• Automated modelling service discovery• Automated transport selection (local/remote)

Page 25: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 25 -

Conceptual level: Tool description language (1)

• Abstract tool description – Concept of modeling services

– Service parameters (input/output): content of the request/reply messages

– Services parameters are defined by ModelTypes• Define the models inputs/outputs of services

– Concept of ModelType : Based on metamodels• Ex. "UML Model Type" define models that conform to the

UML metamodel

– A tool description : a document defining the services of a tool.

Page 26: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 26 -

Conceptual level: Tool description language (2)• ModelingServiceInterface define the services provided by a tool.• A ModelingService contains parameters that define the input/output

models for this service.• Model sharing role is specified by the direction of the parameter.

– in: The service consumer tool shares a model for read-only.– inout: The service consumer tool shares a model for mutable access.– out: The service provider tool shares a model for read-only.

• ModelType defines the models that can be passed as the parameter.– The model to be passed is an instance of the specified metaclass (and all the

objects associated with this instance)

DirectionKindinoutinout

<<enumeration>>PrimitiveTypename : string

ModelingServiceInterface

name : string

ModelingServicename : string

*

Parametername : stringdirection : DirectionKindupper : intlower : int

*

Type1

ModelTypename : string

Class(from MOF)

<<metaclass>>1

1

1

*

*

Page 27: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 27 -

Execution Level: Infrastructure• Service discovery mechanism• Model format conversion mechanism• Transport mechanism:

– Local/Remote invocations, – Notification: event propagation

• Service execution transparency

OCL toolUML Workbench

OCL tool description

Local/ remote invocation

Consumer Tool

AdapterProvider Tool

Adapter

consult

Invoke service /share modelsdeliver service invocation

Page 28: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 28 -

Execution Level: ModelBus Components

– Adapter – built-in component, makes a Tool to be ModelBus enabled

• Invocation: (1) Service selection; (2)Model format adaptation;

– Registry – service discovery component

• Register Modelling Service description• Lookup service

– Notification Broker – mechanism for instant asynchronous messaging

• Manages subscriptions• Broadcast events

Registry

Adapter

NotificationBroker

Page 29: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 29 -

Service Invocation Interactions

1. Tool B deploys adapter 2. Tool A consumes a serviceBehind:1. Adapter B registers Tool B description2. Adapter A looks up for a service3. Adapter A invokes Adapter B, which executes

corresponding service4. Adapter A returns a result to the tool

Consumer Tool A

Adapter B

Registry

Adapter AProvider Tool B

registerlookup

invokeconsume

execute

Remote invocation

Local invocation

Page 30: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 30 -

Notification Interactions

1. Tools B and C subscribes to a topic of interest 2. Tool A publishes a notification to one of topics of interestBehind:1. Adapters provide a simplified façade for Notification Broker

and manage remote communication2. Notification Broker manages subscriptions /event

propagation

Tool A AdapterAdapter Tool B

Notification

Consumer

publish

notify

Remote invocation

Local invocation

NotificationBroker

notify

notify

Adapter Tool C

Notification

Consumer

notify

Page 31: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 31 -

More Information

• ModelBus Architecture– Functional Architecture

http://www.eclipse.org/mddi/D3.1%20ModelBus%20Architecture%20Specification%20-%20Volume%20I.pdf

– Design Viewshttp://www.eclipse.org/mddi/D3.1%20ModelBus%20Architecture

%20Specification%20-%20Volume%20II.pdf

Page 32: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 32 -

• ModelBus Implementation

Page 33: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 33 -

What is available in ModelBus

• Adapter for Java tools– Adaptable transport

• Remote calls using Web Service interface• Local calls via Java run-time

– Model Format Adaptation• Pluggable Serializers

– Flexible deployment• Stand-alone version• Servlet• Eclipse

• Registry– Service Discovery– Web Interface

• Notification Broker– fully WS-Notification compliant

• ModelBus Integration Toolkit– Tool Description Editor– Consumer-side stub generator (see Integration Tutorial)

• Distributed within Eclipse MDDI: http://eclipse.org/mddi/

Page 34: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 34 -

Tools plugged = Services Available

• IBM - http://www.ibm.com/– RSA Modeller and Repository– Model Simulator, Test Generator

• Softeam Objecteering - http://www.softeam.com/– Repository– MDA Modeller– Orchestration

• Adaptive Repository - http://www.adaptive.com/• INRIA ATL Engine - http://www.eclipse.org/gmt/atl/• France Telecom QVT Engine -

http://www.francetelecom.com/• FHG OSLO - OCL Checker - http://oslo-project.berlios.de/• SINTEF MOFScript - http://www.eclipse.org/gmt/mofscript/• Maven adapted by ZEG - http://www.zuehlke.com/• Together adapted by SINTEF - http://www.sintef.no/

Page 35: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 35 -

•Integration Tutorial

Page 36: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 36 -

Outline

• Scenario:– You have a UML Modeller tool– Make use of “OCL check” services exposed via ModelBus

• Steps to follow1. Browse Registry and get Tool Description2. Generate a consumer Stub3. Use it in your tool

• Usage of ModelBus is as simple as calling a single java method is. consume_ServiceIlike(required_parameters);

Page 37: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 37 -

Browse Web Registry

• Get tool description from the Web Registry• http://monarch.fokus.fraunhofer.de:8080/WebRegistryClie

nt/

Page 38: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 38 -

Generate Consumer Stub

• Run Toolkit Generator => OCLToolServiceInterface, OCLToolServiceInterfaceStub

• It contains:

consume_checkUML2(Collection UML2Model, String[] Constraints)

throws ModelBusCommunicationException,

ServiceUnknownException, NoToolAvailableException,

ModelTypeMismatchException;

Page 39: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 39 -

Use it in your tool

• Adapter Setup: specify registry locationOCLToolServiceInterface ocltool = new

OCLToolServiceInterfaceStub(properties);

• Stub Usage: prepare parameters and call stubresult =

ocltool.consume_checkUML2(testmodel,constraints);

Page 40: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 40 -

More Information

• ModelBus Tool Integration using Generic Adapter– in the docs of– http://www.eclipse.org/downloads/download.php?file=/

technology/mddi/mb-adapter-1.zip

• See Tutorial for ModelBus Integration using Toolkit– http://www.eclipse.org/mddi/ModelBusToolkitTutorial_0.7.p

df

Page 41: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 41 -

•Conclusions

Page 42: ModelBus Eclipse ECESIS Project - 1 - ModelBus An Open and Distributed Platform for MDD Tool Interoperability LIP6, Laboratoire d'Informatique de Paris

ModelBus

Eclipse ECESIS Project- 42 -

Conclusions

• MDD needs modelling tool integration • The current approaches have certain drawbacks

– Local environments => need infrastructure for distribution– Conventional middleware => need adaptation for the

modelling domain• ModelBus proposes Service Oriented Architecture for

modelling tools– Tool Description in an abstract manner– Flexible Transport Infrastructure based on Web Services– Tool Integration Toolkit

• ModelBus implementation is available– More than 10 leader tools have been already integrated

• Integrate your tools and use available modelling services !