• Aucun résultat trouvé

Chapitre IV : Utilisation de BPEL pour les concepts

IV.6. Transformation au BPEL

IV.6.4. Implémentation du processus de comportement

IV.6.4.2. Génération du BPEL et WSDL

Nous avons utilisé WebSphere Application Developer pour créer un projet Java et importer le fichier XMI déjà crée dans la section précédente. Ensuite, nous avons choisi l’option "Générer BPEL d’UML" pour sélectionner le fichier XMI comme montré sur la Figure 34.

Figure 34 : Transformation du fichier XMI

Après avoir cliqué sur «Terminer», un certain nombre de fichiers apparaît dans le projet, y compris les principaux BPEL et des fichiers WSDL, en l’occurrence les fichiers WSDL concernant les services du client et du serveur et les définitions de données. À ce stade, les fichiers générés devraient être prêts à se déployer en utilisant le serveur d’Applications Web Sphère.

Le panneau de déploiement BPEL4WS nous permet d’entrer le fichier WSDL qui correspond aux principaux services (server.wsdl) et le fichier BPEL, (Ev_behavior.bpel) dans les champs respectifs, comme le montre la Figure 35 :

Figure 35 : Déploiement du processus

Après avoir cliqué sur «Continuer le déploiement», on insère les fichiers requis par les différents rôles dans le processus. Dans cet exemple il y a deux rôles : serveur et client (figure 36).

Figure 36 : Déploiement des services

IV.7. Conclusion

Nous avons vu qu’en langage d'entreprise, le comportement peut être exprimé en termes de rôles, de processus, de règles, de politiques ou de relations entre ces éléments. Afin de spécifier le comportement d'un système et de le rendre exécutable, le modèle de référence ODP RM-ODP peut être employé comme méta-modèle pour l’aspect comportemental.

Dans ce chapitre, nous avons présenté dans un premier lieu le langage BPEL puis décrit la modélisation du comportement du système ODP par un profil UML spécifique. Ce profil permet aux développeurs d’utiliser la notation UML et les outils appropriés pour modéliser les processus de comportement en utilisant le langage BPEL.

Nous avons ensuite fait un mapping entre les méta-modèles des deux langages d’entreprise et BPEL tout en présentant la structure et la syntaxe d'un processus du comportement BPEL. Ce mapping nous a permis de transformer les modèles UML du comportement vers les BPEL correspondants. Cette transformation est de type transformation de méta-modèle décrit par l’approche MDA.

Le mapping d'UML à BPEL est une approche conduite par le modèle dans laquelle les processus exécutables BPEL peuvent être générés automatiquement à partir des modèles UML. Ceci montre que l’approche MDA peut être appliquée dans plusieurs domaines et à différents niveaux d’abstraction.

CONCLUSION GENERALE ET PERSPECTIVES

Etant donné l’intérêt d’ODP en tant que cadre de spécification des systèmes répartis ouverts, il devient impératif qu’il ait une sémantique précise. Ceci aura l’effet de faciliter l’utilisation et la compréhension d’ODP aussi bien par les concepteurs que par les développeurs. Dans ce cadre, nous avons montré comment rendre précise la sémantique des concepts de base du système ODP. En adoptant l’approche de méta-modélisation et celle de la sémantique dénotationnelle, nous avons défini des méta-modèles de la syntaxe abstraite et de la sémantique basés sur UML/OCL pour les concepts de base des langages de point de vue. La relation entre ces deux modèles est exprimée par des contraintes OCL. Ces contraintes peuvent être vérifiées afin qu’elles soient toutes satisfaites et qu’elles évitent l’introduction d'incohérence dans les données. Nous visons à tenir compte de ces contraintes lors de la génération du code d’une spécification ODP. Ce qui rendra possible leur intégration dans un outil de modélisation et de génération de code (outil CASE).

Une stratégie de formalisation a ainsi été développée dans l’espoir d’agir en tant que base pour le développement des sémantiques des autres aspects ODP et d’intégrer de nouveaux systèmes de preuves pour ce standard.

Ensuite, nous avons défini avec précision les concepts de comportement de base des systèmes ODP, en l’occurrence le temps et l’action, par l’ajout des contraintes de séquencement, de non-déterminisme et de la concurrence. Nous avons aussi défini des politiques qui peuvent être utilisées pour identifier la spécification des contraintes sur le comportement du système ODP en se basant sur UML /OCL.

Nous envisageons, pour assurer la vérification formelle, l’utilisation de la théorie des automates d’états comme les réseaux de Petri Objets/Hiérarchiques ou de Promela. Ces techniques ont prouvé qu’il était possible d’assembler de manière cohérente l’information répartie dans les différents diagrammes de comportement d’UML à des fins de vérification formelle, notamment par model checking, résultat qu’on voit possible d’étendre aux aspects comportementaux dans les différents langages de point de vue ODP.

En dernier lieu, nous avons décrit la modélisation du comportement du système ODP par un profil UML spécifique. Nous avons ensuite fait un mapping entre les méta-modèles des deux langages d’entreprise et BPEL. Ce mapping nous a permis de transformer les modèles UML du comportement vers les BPEL correspondants. Cette transformation est de type transformation de méta-modèle décrite par l’approche MDA.

Ce travail permet de modéliser le comportement du système de la spécification jusqu’à l’exécution proposant ainsi une démarche de modélisation qui ouvre le chantier pour de nouveaux travaux d’extension aux autres langages de point de vue ODP.

BIBLIOGRAPHIE

[1]. ISO/IEC, ‘’Basic Reference Model of Open Distributed Processing-Part1: Overview and Guide

to Use, ‘’ISO/IEC CD 10746-1, 1994.

[2]. ISO/IEC, ‘’RM-ODP-Part2: Descriptive Model, ‘’ ISO/IEC DIS 10746-2, 1994.

[3]. ISO/IEC, ‘’RM-ODP-Part3: Prescriptive Model, ‘’ ISO/IEC DIS 10746-3, 1994.

[4]. ISO/IEC, ‘’RM-ODP-Part4: Architectural Semantics, ‘’ ISO/IEC DIS 10746-4, July 1994. [5]. ISO/IEC, “Use of UML for ODP system specifications”, ISO/IEC 19793, may 2006. [6]. J-R. Putman, Architecting with RM-ODP, Prentice-Hal, 2001.

[7]. M.-P. Gervais, Méthodologie ODAC: Le guide de spécification comportemental, Rapport de recherche LIP6 2001.

[8]. ISO/IEC, ‘’ODP Type Repository Function, ‘’ ISO/IEC JTC1/SC7 N2057, 1999. [9]. ISO/IEC, The ODP Trading Function, ISO/IEC JTC1/SC21 1995.

[10]. D.A. Schmidt. Denotational Semantics : a methodology for language development. Wm.C.

Brown Publishers, 1986.

[11]. K.Slonneger. Formal Syntax and Semantics of Programming Languages. Addison-Wesley Publishers, 1995

[12]. J.Malenfant. Modélisation de la sémantique formelle des langages de programmation en UML

et OCL . Rapport technique, IRISA, 2002.

[13]. J. Malenfant. Une étude sémantique du langage QML. Rapport technique, IRISA,2002.

[14]. R. D. Tennent, Semantics of Programming Languages, Prentice Hall International, Hemel Hempstead, UK, 1991.

[15]. P.D. Mosses. Denotational Semantics. In Handbook of Theoretical Computer Science, chap. 11,

pages 575_631. Elsevier Science Publishers & MIT Press, 1990.

[16]. Dana S. Scott. Domains for denotational semantics. In Proceedings International Colloquium on

Automata, Languages, and Programming '82, 1982

[17]. B.Mayer, Introduction à la théorie des langages de programmation,InterEditions Publishers,1992

[18]. Hervé PANETTO, Meta-modèles et modèles pour l’intégration et l’interopérabilité des

applications d’entreprises de production, rapport de thèse ,2006.

[19]. LEMESLE Richard, Techniques de Modélisation et de Méta-modélisation , rapport de Thèse ,

oct 2000.

[20]. Henri Tudor , Rapport de veille sur MDA et UML, dec 2004.

[21]. BEZIVIN J. et BLANC X, MDA vers un nouveau paradigme(1), Développeur Référence,juillet

2002, v2.16, pp. 7-11.

[22]. BEZIVIN J. et BLANC X, Standards et travaux (3), Développeur Référence.

[24]. OMG, MDA Guide Versions 1.0.1, [en ligne], juin 2003, Disponible sur :

http://www.omg.org/docs/omg/03-06-01.pdf

[25]. BLANC X., Ingénierie des modèles, juillet 2004.

[26]. JOAQUIN M., What's a Platform - An Overview of Model Driven Architecture, 2003.

[27]. OMG, Magnet Communications, Inc., MDA Success Story.

[28]. J.M. Spivey, The Z Reference manual, Prentice Hall, 1992.

[29]. IUT, SDL: Specification and Description Language, IUT-T-Rec. Z.100, 1992.

[30]. ISO/IUT, ‘’LOTOS: A Formal Description Technique Based on the Temporal Ordering of

Observational Behavior, ‘’ ISO/IEC 8807, 1998.

[31]. H. Bowman et al. ‘’FDTs for ODP, ”Computer Standards & Interfaces Journal”, Vol. 17, No.5- 6, Elsevier, (1995) 457-479.

[32]. J. Rumbaugh et al., The Unified Modeling Language, Addison Wesley, 1999.

[33]. B. Rumpe, ‘’A Note on Semantics with an Emphasis on UML, ‘’ Second ECOOP Workshop on

Precise Behavioral Semantics, LNCS 1543, Springer, (1998) 167-188.

[34]. A. Evans et al., ‘’Making UML precise, ‘’ Object Oriented Programming, Systems languages and Applications, (OOPSLA'98), Vancouver, Canada, ACM Press (1998)

[35]. A. Evans et al. The UML as a Formal Modeling Notation, ‘’ UML, LNCS 1618, Springer,

(1999) 349-364

[36]. S. Kent, et al. ‘’A meta-model semantics for structural constraints in UML,, In H. Kilov, B.

Rumpe, and I. Simmonds, editors, Behavioral specifications for businesses and systems, Kluwer , (1999). chapter 9

[37]. E. Evans et al., Meta-Modeling Semantics of UML, In H. Kilov, B. Rumpe, and I. Simmonds, editors, Behavioral specifications for businesses and systems, Kluwer , (1999). chapter 4.

[38]. J. Warmer and A. Kleppe, The Object Constraint Language: Precise Modeling with UML,

Addison Wesley, (1998).

[39]. D.A. Schmidt, ‘’Denotational semantics: A Methodology for Language Development, ‘’ Allyn and Bacon, Massachusetts, (1986)

[40]. G. Myers, ‘’The art of Software Testing, ‘’, John Wiley &Sons, (1979)

[41]. Binder, R. ‘’ Testing Object Oriented Systems. Models. Patterns, and Tools, ‘’ Addison-

Wesley, (1999)

[42]. A. Cockburn, ‘’Agile Software Development. ‘’Addison-Wesley, (2002).

[43]. B. Rumpe, ‘’ Agile Modeling with UML, ‘’ LNCS vol. 2941, Springer, (2004) 297-309.

[44]. Beck K. Column on Test-First Approach. IEEE Software, Vol. 18, No. 5, (2001) 87-89

[45]. L. Briand , ‘’A UML-based Approach to System testing, ‘’ LNCS Vol. 2185. Springer, (2001)

194-208,

[46]. B. Rumpe, ‘’ Model-Based Testing of Object-Oriented Systems; ‘’ LNCS Vol.. 2852, Springer;

[47]. B. Rumpe, Executable Modeling UML. A Vision or a Nightmare?, In: Issues and Trends of

Information technology management in Contemporary Associations, Seattle, Idea Group, London, (2002) pp. 697-701.

[48]. Bruel and R.B.France. Transforming UML models to formal specifications.In UML’98 Beyond the notation, LNCS 1618. SpringerVerlag,1998.

[49]. Jean-Michel Bruel. Une sémantique formelle pour UML : pourquoi? comment?. SEE Systèmes

Informatiques de Confiance Cercle "Objectif Zero-Defaut" sur le thème "UML et techniques formelles", 2 February 2004. Pp 11

[50]. R. France, S. Kent, A. Evans, R. France, ‘’ What Does the Term Semantics Mean in the

Context of UML,‘’ In Ana M. D. Moreira and S. Demeyer Editors, ECOOP Workshops 1999, ECOOP’99 Workshop Reader, LNCS vol. 1743, Springer, (1999), pp. 34-36.

[51]. Mohamed Bouhdadi, Youssef Balouki and al “ A UML/OCL Meta-model Syntax for Structural

Constraints in ODP Enterprise Language” Journal WSEAS Transactions on Computers, Vol 6, Issue 1, WSEAS Press, pp:31-36, 2007.

[52]. M. Bouhdadi, Y. Balouki, E. Chabbar ‘’Meta-modelling Syntax and Semantics for Structural Concepts for Open Networked Enterprises, ICCSA 2OO7, Kuala Lumpur Malaysia, 45-54 August 2007, LNCS.

[53]. M. Bouhdadi et Youssef Balouki, A Semantics of Community related Concepts in ODP

Enterprise Language. Series: Lecture Notes in Electrical Engineering, Vol. 27. Mastorakis, Nikos; Mladenov, Valeri (Eds.) Springer, 2009. p. 287-293 .

[54]. Youssef Balouki et M. Bouhdadi. A Semantics of Core Computational Model for ODP Specifications. Series: Lecture Notes in Electrical Engineering, Vol. 28 Mastorakis, Nikos; Mladenov, Valeri (Eds.) Springer, 2009. pp. 979-990.

[55]. Mohamed Bouhdadi, Youssef Balouki . Semantics of Behavioral Concepts for Open Virtual

Enterprises. Series: Lecture Notes in Electrical Engineering, Vol. 27 Mastorakis, Nikos; Mladenov, Valeri (Eds.) Springer, 2009. P.275-286.

[56]. Youssef Balouki et M. Bouhdadi. Using BPEL for Behavioural Concepts in ODP Enterprise Language. Virtual Enterprises and Collaborative Networks 2008 Poznan Poland. IFIP TC 5 WG 5.5 Publications Ninth Working Conference on Virtual Enterprises, September 8-10, 2008 Poznan Poland.Series : IFIP main Series in Computer Science, Pervasive Collaborative Networks Vol. 283 Springer Boston, 2008 pp. 221-232.

[57]. M. Bouhdadi et al., An UML-based Meta-language for the QoS-aware Enterprise Specification of Open Distributed Systems, ‘’, Collaborative Business Ecosystems and Virtual Enterprises, FIP Series, vol. 85, Springer , ( 2002) pp. 255-264

[58]. A. S. Evans and A.N.Clark. Foundations of the unified modeling language ,In: 2nd Northern

Formal Methods Workshop, Ilkley, electronic Workshops in Computing. Springer-Verlag, 2001.

[59]. Wing, J.M., A Specifier's Introduction to Formal Methods. IEEE Computer, 1990. 23(9): p. 8- 24.

[60]. Broy, M., “Formal treatment of concurrency and time,‘’ in Software Engineer's Reference

[61]. Naumenko, A., et al. A Viewpoint on Formal Foundation of RM-ODP Conceptual Framework,

Technical report No. DSC/2001/040, July 2001, EPFL-DSC ICA.

[62]. Wegmann, A. et al. ‘’ Conceptual Modeling of Complex Systems Using RMODP Based

Ontology‘’ . in 5th IEEE International Enterprise Distributed Object Computing Conference - EDOC ( 2001). September 4-7 USA. IEEE Computer Society pp. 200-211

[63]. Henri Poincaré, The value of science, Moscow «Science», 1983

[64]. Harel, D. and E. Gery, “Executable object modeling with statecharts“, IEEE Computer.30(7)

pp. 31-42 (1997)

[65]. P. Balabko, A. Wegmann, “From RM-ODP to the formal behavior representation” Proceedings

of Tenth OOPSLA Workshop on Behavioral Semantics ¨Back to Basics¨, Tampa, Florida, USA, pp. 11-23 (2001).

[66]. Lamport, L. and N.A. Lynch, Distributed Computing: Models and Methods, in Handbook of

Theoretical Computer Science, Volume B: Formal Models and Semantics. 2000, Elsevier and MIT Press.

[67]. Tanguy Crusson,Business Process Management,”De la modélisation à l’exécution Positionnement par rapport aux Architectures Orientées Services”, Intalio, livre blanc, 2003.

[68]. Jörg Nitzsche and al.Defining the Behaviour of BPELlight Interaction Activities Using

Message Exchange Patterns, ServiceWave,PP 275-286, 2008.

[69]. Duhang Zhong et al.”Reliability Prediction for BPEL-Based Composite Web Service”,

Proceedings of the first international conference On Research challenges in Information science, pages 265,270. Ouarzazate, Morocco, 2007.

[70]. M. Bouhdadi et al., ‘’An Informational Object Model for ODP Applications, ‘Malaysian Journal of Computer Science, Vol. 13, N 2, (2000) 21-32.

[71]. keith_mantell, ”From UML to BPEL Model Driven Architecture in a Web services world”,

Report IT Architect, IBM 2003 .

[72]. Wolfgang Schreiner, ”Structure of Programming Languages : Denotational Semantics” , Rapport technique, 2001.

ANNEXES

Annexes A : Grammaire du langage OCL

Cette annexe décrit la grammaire du langage OCL. La description de cette grammaire utilise la syntaxe EBNF. La description de cette grammaire utilise la syntaxe EBNF, où " |" signifie un choix, "? " Option et "*" zéro ou plusieurs fois.

oclFile := ( "package" packageNameoclExpression "endpackage")+ packageName := pathName

oclExpression := (constraint)*

constraint := contextDeclaration (("def" name ? ":" letExpression* ) | ( stereaotype name ? ":" oclExpression))+ contextDeclaration := "context" (operationContext | classifierContext )

classifierContext := ( name ":" name ) | name

operationContext := name "::" operationName "(" formalParameterList ")" (":" returnType) ? stereotype := ( "pre" |"post"| "inv" )

operationName := name | "=" | "+" | "-" | "<" | "<=" | "=>"| ">" | "/" | "*"| "<>"| "implies"|

"not"| "or"| "xor"| "and"

formalParameterList := ( name ":" typeSpecifier ( "," name ":" typeSpecifier)*) ? typeSpecifier := simpleTypeSpecifier | collectionType

collectionType := collectionKind "(" simpleTypeSpecifier ")" oclExpression := (letExpression* "in") ? expression

returnType := typeSpecifier expression := logicalExpression ifExpression := "if" expression "then" expression

"else" expression "endif"

logicalExpression := relationalExpression( logicalOperator relationalExpression )* relationalExpression := additiveExpression( relationalOperator additiveExpression )? additiveExpression := multiplicativeExpression( addOperator multiplicativeExpression )* multiplicativeExpression := unaryExpression( multiplyOperator unaryExpression )* unaryExpression := ( unaryOperator postfixExpression )| postfixExpression postfixExpression := primaryExpression ( ("." | "->") featureCall )*

primaryExpression := literalCollection| literal| pathName timeExpression? qualifier? featureCallParameters?| "(" expression ")"| ifExpression

featureCallParameters := "(" ( declarator )? ( actualParameterList )? ")" literal := <STRING> | <number> | "#" <name>

enumerationType := "enum" "{" "#" <name> ( "," "#" <name> )* "}" simpleTypeSpecifier := pathTypeName| enumerationType

expressionListOrRange := expression ( ( "," expression )+ | ( ".." expression ))? featureCall := pathName timeExpression? qualifiers?featureCallParameters? qualifiers := "[" actualParameterList "]"

declarator := <name> ( "," <name> )*( ":" simpleTypeSpecifier )? "|" pathTypeName := <typeName> ( "::" <typeName> )*

pathName := ( <typeName> | <name> ) ( "::" ( <typeName> | <name> ) )* timeExpression := "@" <name>

actualParameterList := expression ( "," expression )* logicalOperator := "and" | "or" | "xor" | "implies"

collectionKind := "Set" | "Bag" | "Sequence" | "Collection" relationalOperator := "=" | ">" | "<" | ">=" | "<=" | "<>" addOperator := "+" | "-"

multiplyOperator := "*" | "/" unaryOperator := "-" | "not"

typeName := "A"-"Z" ( "a"-"z" | "0"-"9" | "A"-"Z" | "_")* name := "a"-"z" ( "a"-"z" | "0"-"9" | "A"-"Z" | "_")* number := "0"-"9" ("0"-"9")*

string := "’" ( (~["’","\\","\n","\r"])| ("\\"( ["n","t","b","r","f","\\","’","\""]| ["0"-"7"] ( ["0"-"7"] )?| ["0"-"3"] ["0"-"7"] ["0"-"7"])))*"’"

Documents relatifs