La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Présentée et soutenue par Denivaldo LOPES

Présentations similaires


Présentation au sujet: "Présentée et soutenue par Denivaldo LOPES"— Transcription de la présentation:

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

2 Sommaire Introduction État de l’art
É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

3 Introduction Contexte : Internet et Services Web
Étude et applications de l’approche MDA pour des plates-formes de Services Web Introduction Contexte : Internet et Services Web - un intergiciel unificateur ? - interopérabilité sur l’Internet ? ? XML-RPC DCOM/COM+ CORBA-IIOP EDI-standards HTTP/HTML CGI RPC Java RMI Travel Agency Airlines Internet/ Intranet RentCar Client Client Les services Web ! (XML, SOAP, WSDL et UDDI) Hotel Client

4 pour l’interopérabilité.
Étude et applications de l’approche MDA pour des plates-formes de Services Web Internet et Services Web 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). WSDL Services Web SOAP est accédé en utilisant UDDI supporte la découverte de attaché à supporte la communication entre décrit XML comme la clé pour l’interopérabilité.

5 Internet et Services Web
Contexte - Introduction Internet et Services Web 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. 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.

6 Contexte : Architecture dirigée par les modèles (MDA)*
Contexte - Introduction Contexte : Architecture dirigée par les modèles (MDA)* MOF Ecore Other metamodeling language Metamodel Infrastructure PIM Mapping Techniques PIM PSM PSM Mapping 1..* <<conformsTo>> << conformsTo >> <<depends on>> <<are described with>> Mapping from PSM to PSM from PIM to PIM <<independant of>> <<expressed with>> Refactoring from PSM to PIM from PIM to PSM PIM – Platform Independent Model PSM – Platform Specific Model * OMG, Model Driven Architecture (MDA) – ormsc/ ,

7 Motivations Problématique Les services Web :
Introduction 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.

8 Démarche * SW – Services Web
Introduction Démarche transformation modè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. modèle-vers-modèle Modèle Cible (SW*) Code source (XML) « document WSDL » « document BPEL » PSM PIM Code transformation modè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. modè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)

9 Sommaire Introduction État de l’art : Correspondance entre métamodèles
É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

10 Étude et applications de l’approche MDA pour des plates-formes de Services Web
É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.

11 Correspondance entre métamodèles
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 AB B A 1 * domain range relation element AReIB * J. HAUSMANN et S. KENT. Visualizing Model Mappings in UML. SOFTVIS’03.

12 La transformation de modèles
État de l’art La transformation de modèles En 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é.

13 Une correspondance entre un modèle métier en UML et WSDL*
État de l’art Application de MDA pour la plate-forme des Services Web : Aspects statiques UML WSDL Une correspondance entre un modèle métier en UML et WSDL* * David FRANKEL et John PARODI. Using Model-Driven ArchitectureTM to DevelopWeb Services. Rapport technique, IONA Technologies PLC, April 2002.

14 Sommaire Introduction État de l’art
É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

15 Approche MDA pour la plate-forme Services Web : modélisation
Étude et applications de l’approche MDA pour des plates-formes de Services Web 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

16 Une architecture type pour la transformation de modèles
Méthodologie - Approche MDA pour la plate-forme Services Web MMM conformsTo source MM target MM +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 Mapping Me source target Mapping Element composition +left mapping MM mapping M conformsTo +right generatedFrom transformation M conformsTo transformation MM source M target M source target Spécification de correspondances Définition de Transformations transformation program exec transformation engine MMM : metametamodel MM : metamodel M : model Une architecture type pour la transformation de modèles

17 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 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) [PSM est complet] [non] Compléter le PSM [oui] Générer le code source, scripts, fichiers de déploiement, etc (PSM vers code) Méthodologie pour l’application de la démarche MDA

18 Étude de cas : UML AirLines Travel Agency AirLinesService CarHire
Étude de cas : UML - Approche MDA pour la plate-forme Services Web Étude de cas : UML HotelService Hotel CarHire Bank AirLines Travel Agency TravelService AirLinesService RentingCarService BankService Customer travelagency +findTravel(travelReq:TravelReq):TravelList +reserveTravel(travelSel:TravelInf):Reserv +payTravel(payInf:PayInf):AckPay +cancelTravel(reservInf:Reserv):AckCancel ServiceTravelAg

19 Le Community Process de l’agence de voyages (Notation CCA)
Étude de cas : EDOC - Approche MDA pour la plate-forme Services Web Étude de cas : EDOC MakePayment Bank BuyTravel Customer AirLines SellFlightTicket CarHire RentCar Hotel BookHotel BuyFlightTicket TravelAg SellTravel Le Community Process de l’agence de voyages (Notation CCA)

20 WSDL et J2EE (Java + JWSDP)
É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) Méthodologie pour l’application de la démarche MDA

21 Un métamodèle de WSDL (fragment)
Les SW comme plate-forme cible - Approche MDA pour la plate-forme Services Web WSDLElement Documentation Definition +_targetNameSpace +name Fault FaultType OneWayOperation Import Types Part Message Port Binding PortType Service Operation BindingOperation StartWithExtensionType RequestResponseOperation ParamType SolicitResponseOperation 0..* +import 0..1 +types +message +portType +binding +service +port +type +part +operation +solicitResponse +requestResponse +fault +output +input +boperation Un métamodèle de WSDL (fragment)

22 Un métamodèle de Java (fragment)
La plate-forme J2EE - Approche MDA pour la plate-forme Services Web La plate-forme J2EE 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 +super +sub +type +owner +contents +implementedby +implements +parameters +has +value +members +throws Un métamodèle de Java (fragment)

23 Un template et un métamodèle pour JWSDP (fragment)
La plate-forme J2EE - Approche MDA pour la plate-forme Services Web <<JInterface>> Remote WSInterface <<JMethod>> WSOperation <<JClass>> WSClass RemoteException Throws +jmethods 1..* Template Métamodèle JWSDP WebApp DisplayName Description SessionConfig SessionTimeOut +displayName +description +sessionConfig +sessionTimeOut 0..1 web Un template et un métamodèle pour JWSDP (fragment)

24 Sommaire Introduction État de l’art
Étude et applications de l’approche MDA pour des plates-formes de Service 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] UML et EDOC WSDL et J2EE (Java + JWSDP) 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

25 Spécification de correspondances et définition de transformations
Étude et applications de l’approche MDA pour des plates-formes de Services Web Spécification de correspondances et définition de transformations transformation modè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-vers-modèle Modèle Cible (SW) Code source (XML) « document WSDL » « document BPEL » PSM PIM Code UML metamodel WSDL Mapping WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service ModelElement Namespace Package AssociationEnd Class Interface Attribute Method Parameter DataType +specification +method C2S P2Part M2Bo Dt2T P2D A2T module UML2WSDL; create OUT : WSDL from IN : UML; rule C2S{ from c : UML!Class to s : WSDL!Service( name <- 'Service' + c.name, owner <- c.namespace, port <- pt ),*** } *** Générée à partir de O2O WSDL SW – Services Web

26 UML vers Services Web UML metamodel WSDL metamodel Mapping C2S n2n n2o
UML vers Services Web - Spécification de correspondances … UML vers Services Web UML metamodel WSDL metamodel Mapping WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service ModelElement Namespace Package AssociationEnd Class Interface Attribute Method Parameter DataType +specification +method C2S P2Part O2O M2Bo Dt2T P2D A2T Class Service name:String Definition +owner Classifier ModelElement Namespace +namespace 0..1 C2S n2n name n2o namespace owner Me source target mapping element composition

27 create OUT : WSDL from IN : UML; rule C2S{ from c : UML!Class
UML vers Services Web - Spécification de correspondances … module UML2WSDL; create OUT : WSDL from IN : UML; rule C2S{ from c : UML!Class to 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', type <- pType, boperations <- c.feature ->select (e|e.oclIsTypeOf(UML!Method)), soapBinding <- soapB pType: WSDL!PortType( name <- c.name,***) } *** UML metamodel WSDL metamodel Mapping WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service ModelElement Namespace Package AssociationEnd Class Interface Attribute Method Parameter DataType +specification +method C2S P2Part O2O M2Bo Dt2T P2D A2T

28 SW – Services Web Générée à partir de transformation modèle-vers-code
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">***</portType> <service name="ServiceTravelAg"> *** </service> </definitions> Générée à partir de modèle WSDL WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service document WSDL transformation modè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-vers-modèle Modèle Cible (SW) Code source (XML) « document WSDL » « document BPEL » PSM PIM Code SW – Services Web

29 ServiceTravelAg travelagency
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

30 UML vers J2EE (Java + JWSDP) de manière progressive.
UML vers J2EE - Spécification de correspondances … 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 Mapping 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 +nested +super 0..* 0..1 Ae2F C2Jc OM2M Pr2Pr Dt2Jpt I2I A2F Modèle Source (UML ou EDOC) PIM transformation modèle-vers-modèle PSM Modèle Cible (SW) Modèle Cible (J2EE) Modèle Cible (dotNET) transformation modèle-vers-code Code source (XML) « document WSDL » « document BPEL » Code source (Java), fichiers de déploiement et configuration Code source (C#), fichiers de déploiement et configuration Code UML vers J2EE (Java + JWSDP) de manière progressive.

31 GeneralizableElement
UML vers J2EE - Spécification de correspondances … UML vers J2EE UML metamodel Java metamodel Mapping 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 +nested +super 0..* 0..1 Ae2F C2Jc OM2M Pr2Pr Dt2Jpt I2I A2F

32 create OUT : JAVAM from IN : UML; rule C2Jc{ from c : UML!Class
UML vers J2EE - Spécification de correspondances … 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 #public else if c.visibility = #vk_private then #private else #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), *** ) } ***

33 Java metamodel Mapping
UML vers J2EE - Spécification de correspondances … Java metamodel Mapping JElement JPackage JClassifier JClass JInterface JPrimitiveType JMember JMethod +implemetedby +implements +nested +super 0..* 0..1 +throws P2P C2Cserv C2C I2I M2M M2Mt <<JInterface>> Remote WSInterface <<JMethod>> WSOperation <<JClass>> WSClass RemoteException Throws +jmethods 1..* Template

34 create OUT : JAVAMR from IN : JAVAM; uses strings; rule C2Cserv{
UML vers J2EE - Spécification de correspondances … 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() ), ***} <<JInterface>> Remote WSInterface <<JMethod>> WSOperation <<JClass>> WSClass RemoteException Throws +jmethods 1..* Template

35 Modèle Source (UML ou EDOC) PIM transformation modèle-vers-modèle
UML vers J2EE - Spécification de correspondances … // CLASS package travelagency; public class ServiceTravelAg implements travelagency.ITF_ServiceTravelAg { public Reserv reserveTravel(TravelInf travelSel) throws java.rmi.RemoteException { //Type your code here } *** // INTERFACE 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 Modèle Source (UML ou EDOC) PIM transformation modèle-vers-modèle PSM Modèle Cible (SW) Modèle Cible (J2EE) Modèle Cible (dotNET) transformation modèle-vers-code Code source (XML) « document WSDL » « document BPEL » Code source (Java), fichiers de déploiement et configuration Code source (C#), fichiers de déploiement et configuration Code

36 ServiceTravelAg travelagency // CLASS package travelagency;
UML vers J2EE - Spécification de correspondances … // CLASS package 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 {***} **** } // INTERFACE 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; } <<JInterface>> Remote WSInterface <<JMethod>> WSOperation <<JClass>> WSClass RemoteException Throws +jmethods 1..* Template travelagency +findTravel(travelReq:TravelReq):TravelList +reserveTravel(travelSel:TravelInf):Reserv +payTravel(payInf:PayInf):AckPay +cancelTravel(reservInf:Reserv):AckCancel ServiceTravelAg

37 SW – Services Web - profil UML pour EDOC - métamodèle EDOC
EDOC vers Services Web - Spécification de correspondances … - profil UML pour EDOC - métamodèle EDOC 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 WSDL metamodel Mapping WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service Package <<DataElement>> Class De2T <<ExternalDocument>> DataType <<Attribute>> Attribute <<FlowPort>> <<Port>> <<ProtocolPort>> <<PortOwner>> <<ProcessComponent>> Classifier <<CompositeData>> +owner +feature 1..* <<OperationPort>> +ports P2D A2P Pc2S F2M O2O P2PB transformation modè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-vers-modèle Modèle Cible (SW) Code source (XML) « document WSDL » « document BPEL » PSM PIM Code SW – Services Web

38 EDOC vers Services Web UML profile for ECA WSDL metamodel Mapping P2D
EDOC vers Services Web - Spécification de correspondances … EDOC vers Services Web UML profile for ECA WSDL metamodel Mapping WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service Package <<DataElement>> Class De2T <<ExternalDocument>> DataType <<Attribute>> Attribute <<FlowPort>> <<Port>> <<ProtocolPort>> <<PortOwner>> <<ProcessComponent>> Classifier <<CompositeData>> +owner +feature 1..* <<OperationPort>> +ports P2D A2P Pc2S F2M O2O P2PB

39 create OUT : WSDL from IN : UML; -- helpers
EDOC vers Services Web - Spécification de correspondances … 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() *** ) }

40 SW – Services Web Générée à partir de transformation modèle-vers-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-CCA metamodel WSDL Mapping WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service Package DataElement De2T DataType Attribute <<boundary>> FlowPort ProtocolPort PortOwner ProcessComponent CompositeData +owner +feature 1..* OperationPort +ports P2D A2P F2M O2O P2PB Pc2S transformation modè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-vers-modèle Modèle Cible (SW) Code source (XML) « document WSDL » « document BPEL » PSM PIM Code SW – Services Web

41 EDOC-CCA metamodel Mapping WSDL metamodel
EDOC vers Services Web - Spécification de correspondances … EDOC-CCA metamodel Mapping WSDL metamodel WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service Package DataElement De2T ExternalDocument Attribute <<boundary>> FlowPort <<boundary> ProtocolPort PortOwner ProcessComponent CompositeData +owner +feature 1..* OperationPort +ports P2D A2P Pc2S F2M O2O P2PB

42 <<boundary>>
EDOC vers Services Web - Spécification de correspondances … 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 = 1 select = 3 collect = 2 first =1 Total = 7 Métamodèle EDOC-CCA vers WSDL select = 1 oclIsKindOf = 1 Total = 2 EDOC-CCA metamodel WSDL Mapping UML metamodel WSDL metamodel WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service Package DataElement De2T DataType Attribute <<boundary>> FlowPort ProtocolPort PortOwner ProcessComponent CompositeData +owner +feature 1..* OperationPort +ports P2D A2P F2M O2O P2PB Pc2S 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)) ) }

43 SW – Services Web - profil UML pour EDOC - métamodèle EDOC
UML vers Services Web - Spécification de correspondances … - profil UML pour EDOC - métamodèle EDOC Générée à partir de modèle WSDL WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service 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> transformation modè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-vers-modèle Modèle Cible (SW) Code source (XML) « document WSDL » « document BPEL » PSM PIM Code SW – Services Web

44 <?xml version="1.0" encoding="UTF-8"?>
EDOC 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="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> <<Protocol>> BuySellTravel <<ProtocolPort>> SellTravel <<ProcessComponent>> TravelAg <<responds>> <<OperationPort>> FindTravel +findTravel <<FlowPort>> FindTravelCall FindTravelResponse <<initiates>> <<CompositeData>>

45 Spécification de correspondances et définition de transformations
Comparaisons EDOC (métamodèle) est plus adapté pour modéliser un métier et puis le transformer en services Web Spécification de correspondances et définition de transformation : PIM vers PSM PIM PSM UML (version 1.4) EDOC (profil UML) EDOC (métamodèle) WSDL normal complexe** simple BPEL complexe* - J2EE (Java + JWSDP) dotNET (C# + API) Un intergiciel de plus Les deux plates-formes sont similaires pour le processus de transformation * 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.

46 Sommaire Introduction État de l’art
É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

47 Un outil pour la spécification de correspondances
Étude et applications de l’approche MDA pour des plates-formes de Services Web Un outil pour la spécification de correspondances UML metamodel WSDL Mapping WSDLElement Documentation Type Part Message Operation PortType Binding BindingOperation Port Service Definition +_targetNameSpace +name +types 0..1 +part 0..* +message +operation +portType +type +binding +boperations +port +service ModelElement Namespace Package AssociationEnd Class Interface Attribute 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!Class to s : WSDL!Service( name <- 'Service' + c.name, owner <- c.namespace, port <- pt ),*** } *** ? Spécification de Correspondances Définition de Transformations 0..* 1 +spec Générée à partir de

48 ? M Fondements pour la spécification de correspondances
Un outil pour la spécification de correspondances Fondements pour la spécification de correspondances MMM source MM target MM mapping MM mapping M transformation MM transformation M conformsTo +left +right generatedFrom 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 : M ? C

49 <<EDataType>>
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 +type:EString ElementHandler <<EDataType>> oclExpression +bidirectional:EBooleanObject Correspondence +left +right 1..* +handler 0..* +nested +enclosing +correspondence +handlers 0..1 +typeconverterRL +typeconverterLR +definition

50 MMT (Mapping Modeling Tool)
Un outil pour la spécification de correspondances MMT (Mapping Modeling Tool) 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)

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

52 Généré automatiquement
Un outil pour la spécification de correspondances 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 #public else if c.visibility = #vk_private then #private else #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é manuellement Généré automatiquement

53 MMT(Mapping Modeling Tool)
Un outil pour la spécification de correspondances MMT(Mapping Modeling Tool) Applications aux Services Web : UML2WSDL Génère une représentation textuelle simplifiée du modèle de correspondances. Vérifie la conformité de ce modèle de correspondance avec son métamodèle. Génère la définition de transformation à partir d’un modèle de correspondance Crée un modèle de correspondance

54 Généré automatiquement
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!Class to 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', 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

55 Apports de notre outil La séparation de préoccupations:
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.

56 Sommaire Introduction État de l’art
É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

57 Étude et applications de l’approche MDA pour des plates-formes de Services Web
Conclusion 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).

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.

59 Étude et applications de l’approche MDA pour des plates-formes de Services Web
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, , 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 , 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.

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, Applying MDA Approach to B2B Applications: A Road Map, Workshop on Model Driven Development (WMDD’04) - at ECOOP 2004, Oslo, Norway, June 15, An Experiment in Mapping Web Services to Implementation Platforms, Research Report, RR-IRIN , France, March Web Services in the Context of MDA, The 2003 International Conference on Web Services (ICWS’03), Las Vegas, USA, June 23-26, 2003.

61 Merci de votre attention! Denivaldo Lopes e-mail: dlopes@eseo.fr
Étude et applications de l’approche MDA pour des plates-formes de Service Web Merci de votre attention! Denivaldo Lopes home-page:


Télécharger ppt "Présentée et soutenue par Denivaldo LOPES"

Présentations similaires


Annonces Google