61
1 Étude et applications de l’approche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur de Thèse : Pr. Jean BÉZIVIN Co-encadrant : Slimane HAMMOUDI Université de Nantes – LINA École Supérieure d’Électronique de l’Ouest – ESEO

1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

Embed Size (px)

Citation preview

Page 1: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

1

Étude et applications de l’approche MDA pour des

plates-formes de Services WebPrésentée et soutenue par

Denivaldo LOPES

le 11 juillet 2005

Directeur de Thèse : Pr. Jean BÉZIVIN

Co-encadrant : Slimane HAMMOUDI

Université de Nantes – LINA École Supérieure d’Électronique de l’Ouest – ESEO

Page 2: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

2

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Sommaire•Introduction

•État de l’art

•Approche MDA pour la plate-forme Services Web : modélisation

•Spécification de correspondances et définition de transformations

•Un outil pour la spécification de correspondances

•Conclusion

Page 3: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

3

IntroductionContexte : Internet et Services Web

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Internet/Intranet

Les services Web !(XML, SOAP, WSDL et UDDI)

XML-RPCDCOM/COM+

CORBA-IIOP

EDI-standards

CORBA-IIOP

DCOM/COM+

HTTP/HTMLCGI

RPCJava RMI

EDI-standards

CORBA-IIOPDCOM/COM+

Travel Agency Airlines

RentCar

Hotel

Client

Client

Client

- un intergiciel unificateur ? - interopérabilité sur l’Internet ?

?

?

?

?

?

?

?

Page 4: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

4

• Internet et Services Web

Étude et applications de l’approche MDA pour des plates-formes de Services Web

WSDL

Services Web

SOAPest accédé en utilisantUDDI

supporte la découverte de attaché à

supporte la communication entre

décrit

Un service Web est « une manière standardisée d’intégrer des applications basées sur le Web en utilisant les standards ouverts XML, SOAP, WSDL, UDDI et les protocoles de transport de l’Internet.» (cf. Webopedia).

XML comme la clé pour l’interopérabilité.

Page 5: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

5

Contexte - Introduction

Un service Web est un Intergiciel de plus !

Je veux des solutions pour :- La complexité de développement, de

maintenance et d’évolution des systèmes.

• Internet et Services Web

La solution est d’utiliser des modèles dans tous

les cycles de vie de développement des

systèmes.

J’ai déjà entendu parler de cet

histoire de modèles :

OMT, Booch, UML, outils CASE

Maintenant, c’est différent. MDA (Model Driven Architecture)

propose d’utiliser des modèles pour implémenter des

systèmes logiciels de A à Z.

Page 6: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

6

Contexte : Architecture dirigée par les modèles (MDA)*

Contexte - Introduction

MOF

Ecore

Other metamodeling

language

Metamodel

Infrastructure

PIM Mapping Techniques

PIM

PSM

PSM Mapping Techniques

1..*

1..*

1..*

1..*

1..*

1..*

<<conformsTo>>

<< conformsTo >>

<<depends on>><<are described with>>

<<are described with>>

Mappingfrom PSM to PSM

Mappingfrom PIM to PIM

<<independant of>>

<<expressed with>>

<<expressed with>>

<<expressed with>>

Refactoringfrom PSM to PIM

Mappingfrom PIM to PSM

PIM – Platform Independent ModelPSM – Platform Specific Model

* OMG, Model Driven Architecture (MDA) – ormsc/2001-07-01, 2001.

Page 7: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

7

Motivations• Les services Web :

- Avantage : intergiciel adapté à l’Internet.

- Inconvénient : faible niveau d’abstraction.

• MDA :

- Maîtrise de la complexité.

- Guide le développement logiciel.

- Assure l’interopérabilité à un niveau d’abstraction élevé.

Problématique• Comment valider MDA ?

- Les services Web dans le contexte de MDA : modélisation.

- La transformation de modèles métier en services Web.

- L’impact du choix des langages de modélisation et des plates-formes cibles dans une approche MDA.

Introduction

Page 8: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

8

Introduction

Démarche

transformationmodèle-vers-code

Modèle Source (UML ou EDOC)

Modèle Cible (J2EE)

Code source (Java), fichiers de déploiement,

etc.

Modèle Cible (dotNET)

Code source (C#), fichiers de déploiement,

etc.

transformationmodèle-vers-modèle

Modèle Cible (SW)

Code source (XML)« document WSDL »« document BPEL »

PSM

PIM

Code

transformationmodèle-vers-code

Modèle Source (UML ou EDOC)

Modèle Cible (J2EE**)

Code source (Java), fichiers de déploiement,

etc.

Modèle Cible (dotNET)

Code source (C#), fichiers de déploiement,

etc.

transformationmodèle-vers-modèle

Modèle Cible (SW*)

Code source (XML)« document WSDL »« document BPEL »

PSM

PIM

Code

* SW – Services Web** J2EE – Java + JWSDP (Java Web Service Developer Pack)

Page 9: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

9

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Sommaire•Introduction

•État de l’art :

- Correspondance entre métamodèles

- La transformation de modèles

- Application de MDA pour la plate-forme des Services Web

•Approche MDA pour la plate-forme Services Web : modélisation

•Spécification de correspondances et définition de transformations

•Un outil pour la spécification de correspondances

•Conclusion

Page 10: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

10

État de l’art

• MDA et les différents sens du terme Mapping dans la littérature :

- correspondance et transformation.- correspondance.- transformation.

• L’application de MDA à l’élaboration de la plate-forme de services Web.

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Page 11: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

11

AB BA1 1

* domain range

relation

element

1

AReIB

**

* J. HAUSMANN et S. KENT. Visualizing Model Mappings in UML. SOFTVIS’03.

Correspondance entre métamodèles - État de l’art

Correspondance entre métamodèles« ... we use the term mapping to address the general understanding of connection between models and refer to relation and pair whenever the distinction between definition and instance is suitable » *.

J. H. Hausmann et S. Kent

Page 12: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

12

État de l’art

La transformation de modèlesEn 2002, l’OMG a présenté son RFP MOF 2.0 QVT pour stimuler la création d’un langage de transformation normalisé.

Langages de transformation :

•YATL (Yet Another Transformation Language)

• Université de Kent

• basé sur OCL (Object Constraint Language), hybride et modularité.

• BOTL (Basic Object-oriented Transformation Language) • Université Technique de Munich

• bidirectionnel, purement déclaratif, sans modularité.

• ATL (Atlas Transformation Language)• Université de Nantes.

• basé sur OCL, hybride et modularité.

Page 13: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

13

WSDL

État de l’art

Application de MDA pour la plate-forme des Services Web : Aspects statiques

* David FRANKEL et John PARODI. Using Model-Driven ArchitectureTM to DevelopWeb Services. Rapport technique, IONA Technologies PLC, April 2002.

Une correspondance entre un modèle métier en UML et WSDL*

UML

Page 14: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

14

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Sommaire•Introduction

•État de l’art

•Approche MDA pour la plate-forme Services Web : modélisation

- Méthodologie

- Architecture Type pour la transformation de modèles

- Étude de cas modélisé en UML et EDOC

- Métamodèles: Services Web et J2EE

•Spécification de correspondances et définition de transformations

•Un outil pour la spécification de correspondances

•Conclusion

Page 15: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

15

Approche MDA pour la plate-forme Services Web : modélisation

Le choix ou la création des métamodèles pour le PIM

Le choix ou la création des métamodèles pour le PSM

La spécification des correspondances entre les métamodèles du PIM et du PSM

La génération de la définition de transformations

L’application de la définition de transformations (PIM vers PSM)

Compléter le PSM

Générer le code source, scripts, fichiers de déploiement, etc (PSM vers code)

[PSM est complet]

[oui]

[non]

Méthodologie pour l’application de la démarche MDA

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Page 16: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

16

Méthodologie - Approche MDA pour la plate-forme Services Web

Une architecture type pour la transformation de modèles

transformation engine

target Msource M

source target

MMM : metametamodel MM : metamodel M : model

transformation program

exec

MMM

conformsTo

source MM target MM

conformsToconformsTo

conformsTo

+left

mapping MM

mapping M

conformsTo

+right

generatedFrom

conformsTo

transformation M

conformsTo

conformsTo

conformsTo

transformation MM

Spécification de correspondancesDéfinition de

Transformations

+attrA11:Type1+attrA12:Type2

A1

+attrA21:Type3+attrA22:Type4

A2

+attrB11:Type5+attrB12:Type6

B1

+attrB21:Type7+attrB22:Type8

B2

A2B

Aa2Bb

Source metamodel

Target metamodel

Mapping

Me

source

target Mapping Element

composition

Page 17: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

17

Le choix ou la création des métamodèles pour le PIM

Le choix ou la création des métamodèles pour le PSM

La spécification des correspondances entre les métamodèles du PIM et du PSM

La génération de la définition de transformations

L’application de la définition de transformations (PIM vers PSM)

Compléter le PSM

Générer le code source, scripts, fichiers de déploiement, etc (PSM vers code)

[PSM est complet]

[oui]

[non]

Méthodologie pour l’application de la démarche MDA

Étude et applications de l’approche MDA pour des plates-formes de Service Web

UML et EDOC

Page 18: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

18

Étude de cas : UML

HotelService

Hotel

CarHire

Bank

AirLinesTravel Agency

TravelService

AirLinesService

RentingCarService

BankService

Customer

Étude de cas : UML - Approche MDA pour la plate-forme Services Web

travelagency

+findTravel(travelReq:TravelReq):TravelList+reserveTravel(travelSel:TravelInf):Reserv+payTravel(payInf:PayInf):AckPay+cancelTravel(reservInf:Reserv):AckCancel

ServiceTravelAg

Page 19: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

19

Étude de cas : EDOC

MakePayment

Bank

BuyTravel

Customer

MakePayment

AirLines

SellFlightTicket

MakePayment

CarHire

RentCar

MakePayment

Hotel

BookHotel

BuyFlightTicket

TravelAg

RentCar

BookHotel

SellTravel

MakePayment

Le Community Process de l’agence de voyages (Notation CCA)

Étude de cas : EDOC - Approche MDA pour la plate-forme Services Web

Page 20: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

20Méthodologie pour l’application de la démarche MDA

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Le choix ou la création des métamodèles pour le PIM

Le choix ou la création des métamodèles pour le PSM

La spécification des correspondances entre les métamodèles du PIM et du PSM

La génération de la définition de transformations

L’application de la définition de transformations (PIM vers PSM)

Compléter le PSM

Générer le code source, scripts, fichiers de déploiement, etc (PSM vers code)

[PSM est complet]

[oui]

[non]

WSDL et J2EE (Java + JWSDP)

Page 21: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

21

Les SW comme plate-forme cible - Approche MDA pour la plate-forme Services Web

Un métamodèle de WSDL (fragment)

WSDLElement

Documentation

Definition

+_targetNameSpace+name

Fault

+name

FaultType

+name

OneWayOperation

Import

Types

Part

Message

Port

Binding

PortType

Service

Operation

BindingOperation

StartWithExtensionType

RequestResponseOperation

ParamType

+name

SolicitResponseOperation

0..*

+import

0..1

+types

0..*

+message0..*

+portType

0..*+binding

0..*

+service

+port 0..*

+binding

+type

+part 0..*

+operation

0..*

0..1+solicitResponse

0..1

+requestResponse0..*

0..*+fault

+output

+output

+input

+output

+boperation0..*

+output0..1

+input0..1

+fault

0..*

+input

+message

+message

Page 22: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

22

La plate-forme J2EE

Un métamodèle de Java (fragment)

JElement

+name:String+visibility:Visibility+modifier:Modifier

JPrimitiveType

+type:TypeName

JValue

+value:String

JParameter

+result:Boolean

JMember

JavaPackage

JField

+isTransient:Boolean+isVolatile:Boolean+isFinal:Boolean

JClass

+isActive:Boolean

JInterface

JMethod

+isNative:Boolean+isSinchronized:Boolean+body:String

JClassifier

0..1

0..*+nested

0..1 +super+sub0..*

+type+type

+type

+owner0..*

0..* 0..*

0..*

0..*0..1

+contents

+implementedby+implements

0..*0..*

0..1 +owner

0..*+parameters+has+value0..1

+members

+throws

La plate-forme J2EE - Approche MDA pour la plate-forme Services Web

Page 23: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

23

La plate-forme J2EE - Approche MDA pour la plate-forme Services Web

Un template et un métamodèle pour JWSDP (fragment)

<<JInterface>>Remote

<<JInterface>>WSInterface

<<JMethod>>WSOperation

<<JClass>>WSClass

<<JMethod>>WSOperation

<<JClass>>RemoteException

Throws Throws

+jmethods 1..* +jmethods 1..*

Template

Métamodèle JWSDP

WebApp

DisplayName

Description

SessionConfig

SessionTimeOut

+displayName

+description

+sessionConfig+sessionTimeOut

0..1

0..1

0..1

web

0..1

Page 24: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

24

Étude et applications de l’approche MDA pour des plates-formes de Service Web

Sommaire•Introduction

•État de l’art

•Approche MDA pour la plate-forme Services Web : modélisation

•Spécification de correspondances et définition de transformations

- UML vers Services Web

- UML vers J2EE

- EDOC vers Services Web

- Comparaisons

•Un outil pour la spécification de correspondances

•Conclusion

Le choix ou la création des métamodèles pour le PIM

Le choix ou la création des métamodèles pour le PSM

La spécification des correspondances entre les métamodèles du PIM et du PSM

La génération de la définition de transformations

L’application de la définition de transformations (PIM vers PSM)

Compléter le PSM

Générer le code source, scripts, fichiers de déploiement, etc (PSM vers code)

[PSM est complet]

[oui]

[non]

UML et EDOC WSDL et J2EE (Java + JWSDP)

Page 25: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

25

transformationmodèle-vers-code

Modèle Source (UML ou EDOC)

Modèle Cible (J2EE)

Code source (Java), fichiers de déploiement

et configuration

Modèle Cible (dotNET)

Code source (C#), fichiers de déploiement

et configuration

transformationmodèle-vers-modèle

Modèle Cible (SW)

Code source (XML)« document WSDL »« document BPEL »

PSM

PIM

Code

WSDL

Spécification de correspondances et définition de transformations

UMLmetamodel

WSDLmetamodelMapping

WSDLElement Documentation

Type

Part

Message

Operation

PortType

Binding

BindingOperationPort

Service

Definition+_targetNameSpace+name

+types0..1

+types

+part0..*+message

0..*

+operation0..*

+portType0..*+type

+binding0..*

+boperations0..*

+port0..*+service

0..*

ModelElement

Namespace

Package

AssociationEnd

Class

Interface

Attribute

Operation

Method

Parameter

DataType

+specification+method

C2S

P2Part

M2Bo

Dt2T

P2D

A2T

module UML2WSDL;create OUT : WSDL from IN : UML;rule C2S{

from c : UML!Classto s : WSDL!Service(

name <- 'Service' + c.name,owner <- c.namespace,port <- pt

),*** } ***

Générée à partir de

O2O

Étude et applications de l’approche MDA pour des plates-formes de Services Web

SW – Services Web

Page 26: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

26

UML vers Services WebUML metamodel WSDL metamodelMapping

WSDLElement Documentation

Type

Part

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition

+_targetNameSpace+name

+types0..1

+types

+part0..*+message0..*

+operation 0..*

+portType0..*+type

+binding0..*

+boperations0..*

+port0..*+service0..*

ModelElement

Namespace

Package

AssociationEnd

Class

Interface

Attribute

Operation

Method

Parameter

DataType

+specification

+method

ModelElement

Namespace

Package

AssociationEnd

Class

Interface

Attribute

Operation

Method

Parameter

DataType

+specification

+method

C2S

P2Part

O2O

M2Bo

Dt2T

P2D

A2T

UML vers Services Web - Spécification de correspondances …

Me

sourcetarget mapping element

composition

ClassService

name:String

Definition

+ownerClassifier

ModelElementname:String

Namespace

+namespace

0..1

C2S

n2nname name

n2onamespace owner

‘Service’+@

Page 27: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

27

UML vers Services Web - Spécification de correspondances …

module UML2WSDL;create OUT : WSDL from IN : UML;rule C2S{

from c : UML!Classto s : WSDL!Service(

name <- 'Service' + c.name,owner <- c.namespace,port <- pt

),pt : WSDL!Port(

name <- c.name + 'Port',binding <- bd,documentation <-'\t\t<soap:address location="'+ ***

),bd : WSDL!Binding(

name <- c.name + 'Binding',owner <- c.namespace,type <- pType,boperations <- c.feature ->select (e|e.oclIsTypeOf(UML!Method)),soapBinding <- soapB

),pType: WSDL!PortType( name <- c.name,***)

} ***

UML metamodel WSDL metamodelMapping

WSDLElement Documentation

Type

Part

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition+_targetNameSpace+name

+types0..1

+types

+part0..*+message0..*

+operation0..*

+portType0..*+type

+binding0..*

+boperations0..*

+port0..*+service

0..*

ModelElement

Namespace

Package

AssociationEnd

Class

Interface

Attribute

Operation

Method

Parameter

DataType

+specification

+method

ModelElement

Namespace

Package

AssociationEnd

Class

Interface

Attribute

Operation

Method

Parameter

DataType

+specification

+method

C2S

P2Part

O2O

M2Bo

Dt2T

P2D

A2T

Page 28: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

28

transformationmodèle-vers-code

Modèle Source (UML ou EDOC)

Modèle Cible (J2EE)

Code source (Java), fichiers de déploiement

et configuration

Modèle Cible (dotNET)

Code source (C#), fichiers de déploiement

et configuration

transformationmodèle-vers-modèle

Modèle Cible (SW)

Code source (XML)« document WSDL »« document BPEL »

PSM

PIM

Code <?xml version="1.0" encoding="UTF-8"?><definitions name="Service_travelagency" targetNamespace="urn://travelagency.wsdl"><types> *** </types><message name="findTravel"> <part name="travelReq" type="ns:TravelReq"/></message>***<portType name="ServiceTravelAg">***</portType><service name="ServiceTravelAg"> *** </service></definitions>

Générée à partir de

modèle WSDLWSDLElementDocumentation

Type

Part

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition

+_targetNameSpace+name

+types0..1

+types

+part 0..*

+message

0..*

+operation0..*

+portType 0..* +type

+binding 0..*

+boperations 0..*

+port 0..*

+service

0..*

document WSDL

UML vers Services Web - Spécification de correspondances …

SW – Services Web

Page 29: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

29

UML vers Services Web - Spécification de correspondances …

<?xml version="1.0" encoding="UTF-8"?><definitions name="Service_travelagency"  targetNamespace="urn://travelagency.wsdl"> <types> *** </types> <message name="findTravel"> <part name="travelReq" type="ns:TravelReq"/> </message> *** <portType name="ServiceTravelAg">

<operation name="findTravel" parameterOrder=""><input message="findTravel"/><output message="findTravelResponse"/>

</operation>***

</portType> <binding name="ServiceTravelAgBinding" type="ServiceTravelAg">

<operation name="findTravel"> *** </operation>***

</binding> <service name="ServiceTravelAg">

<port name="ServiceTravelAgPort" binding="ServiceTravelAgBinding"><soap:address location="REPLACE_WITH_ACTUAL_URL"/>

</port> </service></definitions>

travelagency

+findTravel(travelReq:TravelReq):TravelList+reserveTravel(travelSel:TravelInf):Reserv+payTravel(payInf:PayInf):AckPay+cancelTravel(reservInf:Reserv):AckCancel

ServiceTravelAg

Page 30: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

30

transformationmodèle-vers-code

Modèle Source (UML ou EDOC)

Modèle Cible (J2EE)

Code source (Java), fichiers de déploiement

et configuration

Modèle Cible (dotNET)

Code source (C#), fichiers de déploiement

et configuration

Modèle Cible (SW)

Code source (XML)« document WSDL »« document BPEL »

PSM

PIM

Code

transformationmodèle-vers-modèle

UML vers J2EE - Spécification de correspondances …

UML vers J2EE (Java + JWSDP) de manière progressive.

module UML2JAVAM;create OUT : JAVAM from IN : UML;rule C2Jc{from c : UML!Class to jc : JAVAM!JClass( name <- c.name, visibility <- if c.visibility = #vk_public then

***) } ***

Générée à partir de

UML metamodel

Java metamodelMapping

JElement

JPackage

JClassifier

ModelElement

Namespace

Package

AssociationEnd

Interface

Attribute

Operation

Method

Parameter

DataType

+specification

+method

P2P

GeneralizableElement

Generaliation

Class

JClass

JInterface

JPrimitiveType

JMember

JField

JValue

JMethod

JParameter

+implemetedby+implements

+owner+jparameters

+type+type+nested

+super

0..*

0..1

0..*0..*

0..*

0..*

Ae2F

C2Jc

OM2M

Pr2Pr

Dt2Jpt

I2I

A2F

Page 31: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

31

UML vers J2EEUML metamodel Java metamodelMapping

JElement

JPackage

JClassifier

ModelElement

Namespace

Package

AssociationEnd

Interface

Attribute

Operation

Method

Parameter

DataType

+specification

+method

P2P

GeneralizableElement

Generaliation

Class

JClass

JInterface

JPrimitiveType

JMember

JField

JValue

JMethod

JParameter

+implemetedby+implements

+owner+jparameters

+type+type+nested

+super

0..*

0..1

0..*

0..*

0..*

0..*

Ae2F

C2Jc

OM2M

Pr2Pr

Dt2Jpt

I2I

A2F

UML vers J2EE - Spécification de correspondances …

Page 32: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

32

module UML2JAVAM;create OUT : JAVAM from IN : UML;rule C2Jc{

from c : UML!Class to jc : JAVAM!JClass(name <- c.name,visibility <- if c.visibility = #vk_public then

#publicelse if c.visibility = #vk_private then

#privateelse

#protected endif endif,

isActive <- c.isActive,jpackage <- c.namespace,super <- if c.generalization -> select(e|e.parent <> c)->size() > 0 then

c.generalization -> select(e|e.parent <> c)-> first().parentelse JAVAM!JClassendif,

implements <- c.clientDependency -> select(e|e.stereotype->exists(e|e.name='realize'))->collect(e|e.supplier),

***) } ***

UML vers J2EE - Spécification de correspondances …

Page 33: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

33

UML vers J2EE - Spécification de correspondances …

Java metamodel Java metamodelMapping

JElement

JPackage

JClassifier

JClass

JInterface

JPrimitiveType

JMember

JMethod

+implemetedby+implements

+nested

+super

0..*

0..1

0..*

0..*

+throws

JElement

JPackage

JClassifier

JClass

JInterface

JPrimitiveType

JMember

JMethod

+implemetedby+implements

+nested

+super

0..*

0..1

0..*

0..*

+throws

P2P

C2Cserv

C2C

I2I

M2M

M2Mt

<<JInterface>>Remote

<<JInterface>>WSInterface

<<JMethod>>WSOperation

<<JClass>>WSClass

<<JMethod>>WSOperation

<<JClass>>RemoteException

Throws Throws

+jmethods 1..* +jmethods 1..*

Template

Page 34: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

34

module Java2Java;create OUT : JAVAMR from IN : JAVAM;uses strings;rule C2Cserv{

from c : JAVAM!JClass( c.name.startsWith('Service'))

to jc : JAVAMR!JClass(name <- c.name,***implements <- c.implements->asSequence()->including(ITF) ),ITF : JAVAMR!JInterface(name <- 'ITF_'+c.name,super <- JAVAMR!JInterface.allInstances()->select(e|e.name='Remote')->first(),)

}rule M2Mt{

from m : JAVAM!JMethod (m.owner.name.startsWith('Service'))to jm : JAVAMR!JMethod(

name <- m.name,throws <- JAVAMR!JClass.allInstances()->

select(e|e.name='RemoteException')->first()), ***}

***

UML vers J2EE - Spécification de correspondances …

<<JInterface>>Remote

<<JInterface>>WSInterface

<<JMethod>>WSOperation

<<JClass>>WSClass

<<JMethod>>WSOperation

<<JClass>>RemoteException

Throws Throws+jmethods 1..* +jmethods 1..*

Template

Page 35: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

35

transformationmodèle-vers-code

Modèle Source (UML ou EDOC)

Modèle Cible (J2EE)

Code source (Java), fichiers de déploiement

et configuration

Modèle Cible (dotNET)

Code source (C#), fichiers de déploiement

et configuration

transformationmodèle-vers-modèle

Modèle Cible (SW)

Code source (XML)« document WSDL »« document BPEL »

PSM

PIM

Code // CLASSpackage travelagency;public class ServiceTravelAg implements travelagency.ITF_ServiceTravelAg {public Reserv reserveTravel(TravelInf travelSel) throws java.rmi.RemoteException {

//Type your code here}***}// INTERFACEpackage travelagency;public interface ITF_ServiceTravelAg extends java.rmi.Remote {public Reserv reserveTravel(TravelInf travelSel) throws java.rmi.RemoteException;***}

Générée à partir de

Java model+JWSDP API

JElement

JPackage

JClassifier

JClass

JInterface

JPrimitiveType

JMember

JField

JValue

JMethod

+implemetedby+implements

+type+nested

+super

0..*

0..1

0..*0..*

0..*

UML vers J2EE - Spécification de correspondances …

Page 36: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

36

// CLASSpackage travelagency;

public class ServiceTravelAg implements travelagency.ITF_ServiceTravelAg {

public Reserv reserveTravel(TravelInf travelSel) throws java.rmi.RemoteException { ***}

public TravelList findTravel(TravelReq travelReq) throws java.rmi.RemoteException { ***}

public AckCancel cancelTravel(Reserv reservInf) throws java.rmi.RemoteException { ***}

public AckPay payTravel(PayInf payInf) throws java.rmi.RemoteException {***}****}

// INTERFACEpackage travelagency;

public interface ITF_ServiceTravelAg extends java.rmi.Remote {public Reserv reserveTravel(TravelInf travelSel) throws java.rmi.RemoteException;public TravelList findTravel(TravelReq travelReq) throws java.rmi.RemoteException;public AckCancel cancelTravel(Reserv reservInf) throws java.rmi.RemoteException;public AckPay payTravel(PayInf payInf) throws java.rmi.RemoteException; }

UML vers J2EE - Spécification de correspondances …

travelagency

+findTravel(travelReq:TravelReq):TravelList+reserveTravel(travelSel:TravelInf):Reserv+payTravel(payInf:PayInf):AckPay+cancelTravel(reservInf:Reserv):AckCancel

ServiceTravelAg

<<JInterface>>Remote

<<JInterface>>WSInterface

<<JMethod>>WSOperation

<<JClass>>WSClass

<<JMethod>>WSOperation

<<JClass>>RemoteException

Throws Throws+jmethods 1..* +jmethods 1..*

Template

Page 37: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

37

transformationmodèle-vers-code

Modèle Source (UML ou EDOC)

Modèle Cible (J2EE)

Code source (Java), fichiers de déploiement

et configuration

Modèle Cible (dotNET)

Code source (C#), fichiers de déploiement

et configuration

transformationmodèle-vers-modèle

Modèle Cible (SW)

Code source (XML)« document WSDL »« document BPEL »

PSM

PIM

Code

- profil UML pour EDOC- métamodèle EDOC

EDOC vers Services Web - Spécification de correspondances …

module EDOCprof2WSDL;create OUT : WSDL from IN : UML;

helper context UML!Class def: getEDOCProtocolPort(): ***

rule Pc2S{ ***}***

Générée à partir de

UML profile for ECA

WSDLmetamodelMapping

WSDLElement Documentation

Type

Part

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition

+_targetNameSpace+name

+types0..1

+types

+part0..*+message

0..*

+operation 0..*

+portType0..*+type

+binding0..*

+boperations0..*

+port0..*+service

0..*

Package

<<DataElement>>Class De2T

<<ExternalDocument>>DataType

<<Attribute>>Attribute

<<FlowPort>>Class

<<Port>>Class

<<ProtocolPort>>Class

<<PortOwner>>Class

<<ProcessComponent>>Classifier

<<CompositeData>>Class+owner+feature1..*

<<OperationPort>>Class

+type

+ports1..*

P2D

A2P

Pc2S

F2M

O2O

P2PB

SW – Services Web

Page 38: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

38

EDOC vers Services WebEDOC vers Services Web - Spécification de correspondances …

UML profile for ECA WSDL metamodelMappingWSDLElement Documentation

Type

Part

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition

+_targetNameSpace+name

+types0..1

+types

+part0..*+message0..*

+operation 0..*

+portType0..*+type

+binding0..*

+boperations0..*

+port0..*+service0..*

Package

<<DataElement>>Class De2T

<<ExternalDocument>>DataType

<<Attribute>>Attribute

<<FlowPort>>Class

<<Port>>Class

<<ProtocolPort>>Class

<<PortOwner>>Class

<<ProcessComponent>>Classifier

<<CompositeData>>Class

+owner+feature1..*

<<OperationPort>>Class

+type

+ports1..*

P2D

A2P

Pc2S

F2M

O2O

P2PB

Page 39: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

39

module EDOCprof2WSDL;create OUT : WSDL from IN : UML;

-- helpershelper context UML!Class def: getEDOCProtocolPort(): Sequence(UML!Class) = UML!AssociationEnd.allInstances()->select(e|e.participant=self)-> collect(x|x.association)->first().connection-> select(y|y.participant <> self)-> select(z | z.participant.hasStereotype('ProtocolPort') and z.participant.inheritInterface())-> collect(e|e.participant);

rule Pc2S{ from c : UML!Class (c.hasStereotype('ProcessComponent') and c.hasAssocResponds()) to s : WSDL!Service( name <- c.name, owner <- c.namespace, port <- c.getEDOCProtocolPort() *** )}

***

EDOC vers Services Web - Spécification de correspondances …

Page 40: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

40

transformationmodèle-vers-code

Modèle Source (UML ou EDOC)

Modèle Cible (J2EE)

Code source (Java), fichiers de déploiement

et configuration

Modèle Cible (dotNET)

Code source (C#), fichiers de déploiement

et configuration

transformationmodèle-vers-modèle

Modèle Cible (SW)

Code source (XML)« document WSDL »« document BPEL »

PSM

PIM

Code

EDOC vers Services Web - Spécification de correspondances …

module EDOC2WSDL;create OUT : WSDL from IN : EDOC;

rule Pc2S{from pc: EDOC!ProcessComponent

to sv: WSDL!Service(***)

}***

Générée à partir de

EDOC-CCAmetamodel

WSDLmetamodelMapping

WSDLElement Documentation

Type

Part

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition+_targetNameSpace+name

+types0..1

+types

+part0..*+message

0..*

+operation0..*

+portType0..*+type

+binding0..*

+boperations0..*

+port0..*+service

0..*

Package

DataElementDe2T

DataType

Attribute

<<boundary>>FlowPort

<<boundary>>Port

<<boundary>>ProtocolPort

PortOwner

ProcessComponent

CompositeData+owner+feature1..*

<<boundary>>OperationPort

+type

+ports1..*

P2D

A2P

F2M

O2O

P2PB

Pc2S

SW – Services Web

Page 41: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

41

EDOC vers Services Web - Spécification de correspondances …

EDOC-CCAmetamodel WSDL metamodelMapping

WSDLElement Documentation

Type

Part

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition

+_targetNameSpace+name

+types0..1

+types

+part0..*+message0..*

+operation 0..*

+portType0..*+type

+binding0..*

+boperations0..*

+port0..*+service0..*

Package

DataElementDe2T

ExternalDocument

Attribute

<<boundary>>FlowPort

<<boundary>>Port

<<boundary>ProtocolPort

PortOwner

ProcessComponent

CompositeData+owner+feature1..*

<<boundary>>OperationPort

+type

+ports1..*

P2D

A2P

Pc2S

F2M

O2O

P2PB

Page 42: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

42

EDOC-CCAmetamodel

WSDLmetamodelMapping

UML metamodel WSDL metamodelMapping

WSDLElement Documentation

Type

Part

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition+_targetNameSpace+name

+types0..1

+types

+part0..*+message

0..*

+operation0..*

+portType0..*+type

+binding0..*

+boperations0..*

+port0..*+service

0..*

Package

DataElementDe2T

DataType

Attribute

<<boundary>>FlowPort

<<boundary>>Port

<<boundary>>ProtocolPort

PortOwner

ProcessComponent

CompositeData+owner+feature1..*

<<boundary>>OperationPort

+type

+ports1..*

P2D

A2P

F2M

O2O

P2PB

Pc2S

EDOC vers Services Web - Spécification de correspondances …

module EDOC2WSDL;create OUT : WSDL from IN : EDOC;rule Pc2S{ from pc : EDOC!ProcessComponent to sv: WSDL!Service( name <- pc.name, owner <- pc.namespace, port <- pc.ports->select(e|e.oclIsKindOf(EDOC!ProtocolPort)) )}

module EDOCprof2WSDL;create OUT : WSDL from IN : UML-- helpers helper context UML!Class def: getEDOCProtocolPort(): Sequence(UML!Class) = UML!AssociationEnd.allInstances()->select(e|e.participant=self)-> collect(x|x.association)->first().connection-> select(y|y.participant <> self)-> select(z | z.participant.hasStereotype('ProtocolPort') and z.participant.inheritInterface())-> collect(e|e.participant);rule Pc2S{ from c : UML!Class (c.hasStereotype('ProcessComponent') and c.hasAssocResponds()) to s : WSDL!Service( name <- c.name, owner <- c.namespace, port <- c.getEDOCProtocolPort() *** ) }***

profil UML pour EDOC vers WSDL

Instructions:allInstances = 1select = 3collect = 2first =1Total = 7

Métamodèle EDOC-CCA vers WSDL

Instructions:select = 1oclIsKindOf = 1

Total = 2

Page 43: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

43

transformationmodèle-vers-code

Modèle Source (UML ou EDOC)

Modèle Cible (J2EE)

Code source (Java), fichiers de déploiement

et configuration

Modèle Cible (dotNET)

Code source (C#), fichiers de déploiement

et configuration

transformationmodèle-vers-modèle

Modèle Cible (SW)

Code source (XML)« document WSDL »« document BPEL »

PSM

PIM

Code

UML vers Services Web - Spécification de correspondances …

Générée à partir de

modèle WSDLWSDLElementDocumentation

Type

Part

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition

+_targetNameSpace+name

+types0..1

+types

+part 0..*

+message

0..*

+operation0..*

+portType 0..* +type

+binding 0..*

+boperations 0..*

+port 0..*

+service

0..*

document WSDL<?xml version="1.0" encoding="UTF-8"?><definitions name="Service_travelagency" targetNamespace="urn://travelagency.wsdl">*** </binding> <service name="TravelAg">

<port name="SellTravelPort" binding="SellTravelBinding"><soap:address

location="REPLACE_WITH_ACTUAL_URL"/></port>

</service></definitions>

- profil UML pour EDOC- métamodèle EDOC

SW – Services Web

Page 44: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

44

<?xml version="1.0" encoding="UTF-8"?><definitions name="Service_travelagency" targetNamespace="urn://travelagency.wsdl"> <types>*** </types> <message name="findTravelCall">

<part name="travelReq" type="ns:TravelReq"/> </message> *** <portType name="SellTravel"> <operation name="findTravel" parameterOrder=""> <input message="findTravelCall"/>

<output message="findTravelResponse"/> </operation>

*** </portType> <binding name="SellTravelBinding" type="SellTravel"> **** </binding> <service name="TravelAg">

<port name="SellTravelPort" binding="SellTravelBinding"><soap:address location="REPLACE_WITH_ACTUAL_URL"/>

</port> </service></definitions>

EDOC vers Services Web - Spécification de correspondances …

<<Protocol>>BuySellTravel

<<ProtocolPort>>SellTravel

<<ProcessComponent>>TravelAg

<<responds>>

<<OperationPort>>FindTravel

+findTravel

<<FlowPort>>FindTravelCall

<<FlowPort>>FindTravelResponse

<<initiates>> <<responds>>

<<CompositeData>>FindTravelCall

<<CompositeData>>FindTravelResponse

Page 45: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

45

Spécification de correspondances et définition de transformations

Comparaisons

UML(version 1.4)

EDOC(profil UML)

EDOC (métamodèle)

WSDL normal complexe** simple

BPEL complexe* - -

J2EE(Java + JWSDP)

normal complexe** simple

dotNET(C# + API)

normal - -

PIMPSM

* L’utilisation de profils (valeurs marquées) → utilisation de filtres et requêtes plus complexes.

** L’utilisation de profils (stéréotypes) → utilisation de filtres et requêtes plus complexes.

Spécification de correspondances et définition de transformation :PIM vers PSM

Les deux plates-formes sont similaires pour le processus de transformation

Un intergiciel de plus

EDOC (métamodèle) est plus adapté pour modéliser un métier et puis le transformer en

services Web

Page 46: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

46

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Sommaire•Introduction

•État de l’art

•Approche MDA pour la plate-forme Services Web : modélisation

•Spécification de correspondances et définition de transformations

•Un outil pour la spécification de correspondances

- Fondements pour la spécification de correspondances

- Métamodèle de correspondance

- MMT (Mapping Modeling Tool)

- Applications aux services Web : UML2WSDL

- Apports de notre outil

•Conclusion

Page 47: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

47

Spécification de Correspondances

Définition de Transformations

0..*

1+spec

Un outil pour la spécification de correspondances

Générée à partir de

UMLmetamodel

WSDLmetamodelMapping

WSDLElement Documentation

TypePart

Message

Operation

PortType

Binding

BindingOperation

Port

Service

Definition+_targetNameSpace+name

+types0..1

+types

+part0..*+message

0..*

+operation0..*

+portType0..*+type

+binding0..*

+boperations0..*

+port0..*+service

0..*

ModelElement

Namespace

Package

AssociationEnd

Class

Interface

Attribute

Operation

Method

Parameter

DataType

+specification+method

ModelElement

Namespace

Package

AssociationEnd

Class

Interface

Attribute

Operation

Method

Parameter

DataType

+specification+method

C2S

P2Part

O2O

M2Bo

Dt2T

P2D

A2T

module UML2WSDL;create OUT : WSDL from IN : UML;rule C2S{

from c : UML!Classto s : WSDL!Service(

name <- 'Service' + c.name,owner <- c.namespace,port <- pt

),*** } ***

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Page 48: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

48

Soit M1(s)/Ma,M2(s)/Mb, et CMa→Mb/Mc où: M1 est un modèle du système s créé en utilisant le métamodèle Ma.M2 est un modèle du même système s créé en utilisant le métamodèle Mb .CMa→Mb/Mc est un modèle de correspondances entre Ma et Mb créé en utilisant le métamodèle Mc .Alors la transformation peut être définie comme la fonction suivante :

Un outil pour la spécification de correspondances

Fondements pour la spécification de correspondances

bCMbMaa (s)/MM)/M,C(s)/MTransf(M 21 MC

MMM

source MM target MMmapping MM

mapping M

transformation MM

transformation M

conformsTo

conformsToconformsTo

conformsTo

+left +right

generatedFrom

conformsTo

conformsTo

Page 49: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

49

Un outil pour la spécification de correspondances

Métamodèle de correspondance

+name:EString

Element

+version:EString+note:EString

Definition

+filter:oclExpression

Left

+lastupdate:EString+lastnote:EString+lastversion:EString

Historic

+path:EString

MetaModelHandler

Right

+converter:oclExpression

TypeConverter

+path:EString+type:EString

ElementHandler <<EDataType>>oclExpression

+bidirectional:EBooleanObject+note:EString+filter:oclExpression

Correspondence

+left +right1..*

+handler +handler0..*+nested

+enclosing

+correspondence +nested

+left +right

+handlers1..*

0..1 +typeconverterRL

+typeconverterLR

+definition

0..*

0..*1..*

Page 50: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

50

Génère la définition de transformation à partir d’un modèle de correspondance

Génère une représentation textuelle simplifiée du modèle de correspondances.

Crée un modèle de correspondance

Vérifie la conformité de ce modèle de correspondance avec son métamodèle.

L’outil est basé sur EMF (Eclipse Modeling Framework)

MMT (Mapping Modeling Tool)

Un outil pour la spécification de correspondances

Page 51: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

51

MMT (Mapping Modeling Tool) - Un outil pour la spécification de correspondances

Page 52: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

52

module UML2JAVAM;create OUT : JAVAM from IN : UML;rule C2Jc{

from c : UML!Class (c.namespace <> 'service')to jc : JAVAM!JClass(name <- c.name,visibility <- if c.visibility = #vk_public then

#publicelse if c.visibility = #vk_private then

#privateelse

#protected endif endif,

isActive <- c.isActive,jpackage <- c.namespace,super <- if c.generalization ->

select(e|e.parent <> c)->size() > 0 then c.generalization -> select(e|e.parent <> c)->

first().parent else JAVAM!JClass

endif,implements <- c.clientDependency ->

select(e|e.stereotype->exists(e|e.name='realize'))->collect(e|e.supplier),

***) } ***

Généré manuellementGénéré

automatiquement

Un outil pour la spécification de correspondances

Page 53: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

53

Un outil pour la spécification de correspondances

MMT(Mapping Modeling Tool)Applications aux Services Web : UML2WSDL

Vérifie la conformité de ce modèle de correspondance avec son métamodèle.

Génère une représentation textuelle simplifiée du modèle de correspondances.

Crée un modèle de correspondance

Génère la définition de transformation à partir d’un modèle de correspondance

Page 54: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

54

Un outil pour la spécification de correspondances

Applications aux Services Web : UML2WSDL

module UML2WSDL;create OUT : WSDL from IN : UML;rule C2S{

from c : UML!Classto s : WSDL!Service(

name <- 'Service' + c.name,owner <- c.namespace,port <- pt

),pt : WSDL!Port(

name <- c.name + 'Port',binding <- bd,documentation <-'\t\t<soap:address location="'+ ***

),bd : WSDL!Binding(

name <- c.name + 'Binding',owner <- c.namespace,type <- pType,boperations <- c.feature ->

select (e|e.oclIsTypeOf(UML!Method)),soapBinding <- soapB

),pType: WSDL!PortType(name <- c.name,***)

} ***

Généré manuellement

Généré automatiquement

Page 55: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

55

Un outil pour la spécification de correspondances

Apports de notre outil

• La séparation de préoccupations:

- La spécification de correspondances est un PIM.

- La définition de transformations est un PSM.

• « L’indépendance » d’un langage de transformation.

• Un atout pour l’évolution et la préservation de la logique métier (i.e. modèle de correspondances) :

- Un modèle de correspondance peut évoluer si les métamodèles changent.

• Une approche plus intuitive et plus simple que le codage direct de définition de transformations.

Page 56: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

56

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Sommaire•Introduction

•État de l’art

•Approche MDA pour la plate-forme Services Web : modélisation

•Spécification de correspondances et définition de transformations

•Un outil pour la spécification de correspondances

•Conclusion

- Contribution

- Perspectives

Page 57: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

57

• Approche conceptuelle et expérimentale de MDA pour les services Web :

- Méthodologie et architecture type.

- Métamodèles : services Web (WSDL, BPEL), J2EE et dotNET.

- Des spécifications de correspondances et des définitions de transformations.

- Une étude de l’impact d’un langage de modélisation (UML x EDOC) ou d’une plate-forme (J2EE x dotNET).

- MMT (outil pour la création de correspondances et la génération de définition de transformations).

ConclusionÉtude et applications de l’approche MDA pour des plates-formes de Services Web

Page 58: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

58

Conclusion

Perspectives

• L’étude d’autres langages tel que UEML, et d’autres plates-formes JXTA.

• L’utilisation d’action semantics.

• La distance sémantique entre métamodèles doit être plus étudiée.

• L’intégration des algorithmes de schema matching dans notre outil MMT.

• L’introduction d’un mécanisme d’extension dans notre métamodèle de correspondance.

• Une étude plus détaillée entre les différents types de relations entre les éléments de correspondances.

Page 59: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

59

Publications

Approche MDA pour le développement d’applications internet sur des plates-formes services web : Modélisation, transformation et prototypage, Revue d’Ingénierie des Systèmes d’Information, Hermes science publications, juillet, 2005.

Generating Transformation Definition from Mapping Specification: Application to Web Service Platform, The 17th Conference on Advanced Information Systems Engineering (CAiSE’05), LNCS 3520, 309-325, Porto, Portugal, June 13-17, 2005.

Mapping Specification in MDA: From Theory to Practice, First International Conference Interoperability of Enterprise Software and Applications (INTEROP-ESA’05), Publisher Springer, Switzerland, February 21 - 25, 2005.

B2B Applications, BPEL4WS, Web Services and dotNET in the context of MDA, International Conference on Enterprise Integration and Modelling Technology (ICEIMT’04), Canada, Toronto, October 9-11, 2004.

Étude et applications de l’approche MDA pour des plates-formes de Services Web

Page 60: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

60

Publications

Applying MDA Approach for Web Service Platform, The 8th International IEEE Enterprise Distributed Object Computing Conference (EDOC’04), Monterey, USA, September 20-24, 2004.

Applying MDA Approach to B2B Applications: A Road Map, Workshop on Model Driven Development (WMDD’04) - at ECOOP 2004, Oslo, Norway, June 15, 2004.

An Experiment in Mapping Web Services to Implementation Platforms, Research Report, RR-IRIN2004-01, France, March 2004.

Web Services in the Context of MDA, The 2003 International Conference on Web Services (ICWS’03), Las Vegas, USA, June 23-26, 2003.

Page 61: 1 Étude et applications de lapproche MDA pour des plates-formes de Services Web Présentée et soutenue par Denivaldo LOPES le 11 juillet 2005 Directeur

61

Étude et applications de l’approche MDA pour des

plates-formes de Service Web

Merci de votre attention!

Denivaldo Lopese-mail: [email protected] home-page: http://www.eseo.fr/~dlopes