Orchestrations de Service Web : vers une évolution par composition Esquisses Sébastien Mosser, Mireille Blay-Fornarino, Michel Riveill Équipe Rainbow, Laboratoire I3S (CNRS - UNSA) Bâtiment Polytech Sophia SI, 930 route des Colles B.P. 145, F-06903 Sophia Antipolis Cedex {mosser,blay,riveill}@polytech.unice.fr RÉSUMÉ. Les nouvelles architectures logicielles à base de services permettent d envisager une évolution constante des applications en fonction des services disponibles et du contexte d usage. Cette évolution nécessite une programmation par incréments et raffinement du réseau de services existant et également d autoriser des approches collaboratives basées sur la séparation des préoccupations : plusieurs experts adaptent simultanément la même application en fonction de points de vue différents. Ce constat est la base de l étude qui sera menée pendant la thèse dont le sujet est présenté ici. ABSTRACT.. MOTS-CLÉS : Adaptation, Services, Composition KEYWORDS: Adaptation, Services, Composition 1 re soumission à RIMEL 07, le 2 novembre 2010
2 1 re soumission à RIMEL 07 1. Problématique Les architectures orientés Services (SOA,(MacKenzie et al., 2006)) facilitent l exposition, l interconnexion, la gestion et l évolution d applications à base de services. L approche par services permet aux sociétés d exposer leurs compétences métiers au travers de langages et protocoles basés sur XML. Les orchestrations sont au cœur de ces architectures en supportant la construction d applications à partir de fonctionnalités de base. Créer des compositions de services signifie ordonner les invocations aux opérations, router les messages, modifier les paramètres et gérer les exceptions. Plusieurs langages de composition sont définis (WSCI (Arkin et al., 2002),WSBPEL (Jordan et al., 2007),SCUFL (Oinn et al., 2004)). Dans le cadre des Services Web, nous nous intéressons aux langages d orchestrations (BPEL4WS (Andrews et al., 2003), WSBPEL). Les orchestrations sont définies par le consortium W3C (W3C Glossary) comme «le modèle des interactions que doit respecter un agent Service Web pour atteindre son but». Cependant, même si les orchestrations sont un support à une programmation incrémentielle pour réagir à l introduction d une nouvelle levée d événement ou la coordination avec un nouveau service (Chandran et al., 2005, Bartoli et al., 2005), elles n offrent pas de support à leur propre composition. Ce point est d autant plus critique que les applications supportées évoluent très rapidement et que le développement collaboratif est reconnu comme indispensable à l élaboration des gros projets. La composition par assemblage (approche boites noires) répond mal au partage de contexte entre des sous-processus, à l optimisation des workflows, à la gestion des exceptions, à la répartition des contrôles d accès, au contrôle de la qualité de services, aux calculs de coûts, etc. L adaptation des architectures orientées services est au cœur de la construction de nouvelles applications à partir d une offre mouvante de services en fonction du contexte d exécution, tout en prenant en compte des propriétés non fonctionnelles telles que la sécurité, la réaction à un défaut de service, la gestion de la déconnexion, etc. Les adaptations concernent alors des services hétérogènes et peuvent nécessiter un contrôle des infrastructures (Marvie et al., 2006) L évolution des architectures orientées services est ainsi cruciale à la réussite de nombreux projets dont ceux qui visent à intensifier l usage des services via la mise en place de nouveaux protocoles. En développant l usage de ces architectures, la composition des services va devenir une tâche critique. Elle suppose de connaître l ensemble des services mis en jeux et d être capable de contrôler le flot de données et d exécution. Cette tâche, faîte manuellement, est cause d erreurs et chronophage. 2. Vers une évolution dynamique, collaborative et sûre Pour gérer l évolution dans la composition des services, nous nous basons sur le formalisme des orchestrations en tant que description d assemblages de services. Nous proposons de définir des mécanismes de compositions qui permettent d optimiser l évolution de ces assemblages. Nous distinguons deux formes d assemblages : les
Orchestration & Évolutions 3 assemblages définis pour construire de nouveaux services et les assemblages visant à introduire du contrôle dans des assemblages existants. Lors de la composition de ces assemblages, les défis à relever (i) sont la détection des conflits d assemblage (par exemple la levée de plusieurs exceptions en cas de conjonction de conditions, les accès concurrents en lecture et écriture à une variable ou la multiplicité des instructions de retours), (ii) l optimisation des assemblages résultants (par exemple en reconnaissant les appels multiples à un même service ou en partageant des données) et (iii) le calcul des orchestrations résultantes comprenant la composition des contrôles, la coordination entre des flots de données circulant dans ces workflows, l introduction d adaptateurs, etc. Pour gérer la complexité des compositions de services, nous proposons de nous appuyer sur des résultats issus de différents domaines collatéraux de l ingénierie du logiciel. De l ingénierie des modèles (IDM), nous reprenons les travaux relatifs aux transformations et aux algèbres sur les modèles pour exprimer les compositions et les calculer (Bernstein, 2003). La formalisation des transformations(omg, 2005) devra nous permettre de garantir l incrémentalité dans l évolution des assemblages et la confluence lors de la fusion d assemblages. L ordre des transformations s appuiera sur les dernières avancées en matière de calcul des ordres d application des transformations (Mens et al., 2006, Kniesel, 2006). Nous utilisons les travaux relatifs à la logique pour gérer l unification, la reconnaissance de patterns et les retours sur erreurs (Klein et al., 2007). Nous appuyons l intégration des propriétés non fonctionnelles dépendantes des plateformes sur la métamodélisation du comportement et les projections et rétro-projections(nano, 2004, Favre et al., 2006a). Des travaux sur le développement par séparation des préoccupations et la programmation par aspects (Douence, 2004), nous retenons les progrès en matière de tissage de code et de détection des conflits (Charfi et al., 2006, Courbis et al., 2005, Liu et al., 2006). Nous portons tout particulièrement notre attention sur des mécanismes de composition indépendants de l ordre des adaptations (Blay-Fornarino et al., 2004) et la mise en place d une base de connaissance des solutions à certains conflits récurrents (Filman et al., 2005, Douence et al., 2004, Szyperski, 1996). Dans un contexte dynamique d adaptation des architectures à base de services, il est particulièrement pénalisant d introduire des incohérences qui peuvent conduire à l arrêt, même partiel, de l application. Il apparaît donc essentiel de corréler aux mécanismes d adaptations et de compositions des moyens pour garantir la sûreté de fonctionnement des applications (Barais et al., 2006, Fleurquin et al., 2006, Occello, 2006). La composition de service implique de composer les données. Du calcul sur grilles, nous retenons en particulier les travaux relatifs à la composition des données (Glatard et al., 2007).
4 1 re soumission à RIMEL 07 L accroissement du nombre des services et la connaissance partielle du réseau des services suppose de définir des mécanismes d adaptation et d évolution qui prennent en charge l optimisation des assemblages résultants (Glatard et al., 2006, Nemo et al., 2007, Chafle et al., 2004). Dans notre équipe, nous travaillons sur deux applications qui mettent en jeux des assemblages de services. L une, dite SEDUITE, est un système de diffusion d informations au sein de l école polytechnique (Blay-Fornarino et al., 2007). En exploitation, elle exige une forte adaptabilité pour répondre aux modifications de services et à l extension de l école avec l ouverture de différents départements et sites. L autre application porte sur analyse d images médicales. Cette application utilise, MOTEUR, un moteur de workflow manager et est interfacée avec l infrastructure de production du projet EGEE. Dans les deux cas, le projet proposé ici devra permettre d adapter plus rapidement et efficacement les assemblages. Ces démonstrateurs nous permettront de valoriser nos travaux auprès des industriels ultérieurement. 3. Conclusion L évolution des applications repose sur une capitalisation des connaissances et la confiance de l utilisateur dans l application résultante. L adaptation des architectures à base de services ne déroge pas à ces règles. Nous proposons de l aborder en nous appuyant sur les approches par modèles qui donnent la liberté d expression et l interopérabilité, des outils de compositions qui reposent sur des théories bien fondées issues à la fois de la programmation par aspects et par sujets, et les méthodes formelles pour assurer la validité des adaptations à l exécution. La problématique et les esquisses de solution proposées ici sont issues de nos collaborations dans le cadre de différents projets industriels (Thèse avec DCN Toulon, Projet RNTL FAROS, Projet New generation Multimédia Service (SMNG) dans le pôle de compétitivité SCS qui implique PHILIPS, FRANCE TÉLÉCOM, HEWLETT PA- CKARD, ATOS,... ). Une plateforme est en cours de développement pour étayer ces différents points (Joffroy et al., 2007a, Joffroy et al., 2007b). 4. Bibliographie Andrews T., Curbera F., Dholakia H., Goland Y., Johannes K., Leymann F., Liu K., Roller D., Smith D., Thatte S., Trickovic I., Weerawarana S., «Business Process Execution Language for Web Services», 2003. Arkin A., Askary S., Fordin S., Jekeli W., Kawaguchi K., Orchard D., Pogliani S., Riemer K., Struble S., Takacsi-Nagy P., Trickovic I., Zimek S., «Web Service Choreography Interface 1.0», 2002. Barais O., Lawall J., Le Meur A.-F., Duchien L., «Safe Integration of New Concerns in a Software Architecture», 13th Annual IEEE International Conference on Engineering of Computer Based Systems (ECBS 06), IEEE, Potsdam, Germany, March, 2006.
Orchestration & Évolutions 5 Bartoli A., Jiménez-Perir R., Kemme B., Pautasso C., Patarin S., Wheater S., Woodman S., «The Adapt Framework for Adaptable and Composable», IEEE Distributed Systems Online, September, 2005. Bernstein P., «Applying model management to classical meta data problems», Conf. on Innovative Database Research (CIDR), Asilomar, CA, USA, January, 2003. Blay-Fornarino M., Charfi A., Emsellem D., Pinna-Déry A.-M., Riveill M., «Software interaction», Journal of Object Technology (ETH Zurich), vol. 3, n 10, p. 161-180, 2004. Blay-Fornarino M., Collet P., Lahire P., Lavirotte S., Pinna-Déry A.-M., Riveill M., Tigli J.-Y., Contrats et compositions de services de l, Technical Report n F.4.1, RNTL Faros, January, 2007. Chafle G. B., Chandra S., Mann V., Nanda M. G., «Decentralized orchestration of composite web services», WWW Alt. 04 : Proceedings of the 13th international World Wide Web conference on Alternate track papers & posters, ACM Press, New York, NY, USA, p. 134-143, 2004. Chandran P., Poduval A., Adding BPEL to the Enterprise Integration Mix, Technical report, ORACLE, November, 2005. Charfi A., Mezini M., «AO4BPEL : An Aspect-Oriented Extension to BPEL», World Wide Web Journal : Recent Advances on Web Services (special issue), to appear, 2006. Courbis C., Finkelstein A., «Weaving Aspects into Web Service Orchestrations.», ICWS, IEEE Computer Society, p. 219-226, 2005. Douence R., «A Restricted Definition of AOP», in, K. Gybels,, S. Hanenberg,, S. Herrmann,, J. Wloka (eds), European Interactive Workshop on Aspects in Software (EIWAS), September, 2004. Douence R., Fradet P., Südholt M., «Composition, reuse and interaction analysis of stateful aspects», 3rd international conference on Aspect-oriented software development (AOSD 04), ACM Press, Lancaster, UK, p. 141-150, 2004. Favre J.-M., Bézivin J., Bull I., Évolution, rétro-ingénierie et IDM : du code aux modèles, in, chapter 8, February, 2006a. Favre J.-M., Establier J., Blay-Fornarino M., L ingénierie dirigée par les modèles : au-delà du MDA, Hermes-Lavoisier, Cachan, France, February, 2006b. Filman R., Friedman D., «Aspect-Oriented Programming Is Quantification and Obliviousness», in, R. Filman,, T. Erald,, S. Clarke,, M. Aksit (eds), Aspect-Oriented Software Development (AOSD 05), Addison-Wesley, Boston, p. 21-35, 2005. Fleurquin R., Tibermacine C., «Une assistance pour l évolution des logiciels à base de composants», RTSI, série l Objet, 2006. Glatard T., Montagnat J., Lingrand D., Pennec X., «Flexible and efficient workflow deployement of data-intensive applications on grids with MOTEUR», International Journal of High Performance Computing and Applications (IJHPCA), 2007. Glatard T., Montagnat J., Pennec X., «Medical image registration algorithms assesment : Bronze Standard application enactment on grids using the MOTEUR workflow engine.», HealthGrid conference (HealthGrid 06), IOS Press, Valencia, Spain, p. 93-103, June, 2006. Joffroy C., Mosser S., Blay-Fornarino M., Plateforme ADORE : Aspect and Distributed ORchEstrations, Technical report, I3S, Sophia-Antipolis (France), March, 2007a.
6 1 re soumission à RIMEL 07 Joffroy C., Mosser S., Blay-Fornarino M., Nemo C., «Des Orchestrations de Services Web aux Aspects», 3ème Journée Francophone sur le Développement de Logiciels Par Aspects (JFLDPA 2007), Toulouse (France), March, 2007b. Jordan D., Evedmon J., Alves A., Arkin A., Askary S., Barreto C., Bloch B., Curbera F., Ford M., Goland Y., Guízar A., Kartha N., Liu K., Khalaf R., Konig D., Marin M., Mehta V., Thatte S., Van der Rijn D., Yendluri P., Yiu A., «Web Services Business Process Execution Language Version 2.0», 2007. Klein J., Baudry B., Barais O., Jackson A., «Introduction du test dans la modélisation par aspects», IDM, 2007. Kniesel G., «Analysing the Correctness and Completeness of Aspect Weaving», IEEE Working Conference on Reverse Engineering (WCRE 2006), Benevento (Italy), October, 2006. Liu J., Batory D., Lengauer C., «Feature Oriented Refactoring of Legacy Applications», International Conference on Software Engineering (ICSE), Shanghai, China, May, 2006. MacKenzie M., Laskey K., McCabe F., Brown P., Metz R., Reference Model for Service Oriented Architecture 1.0, Technical Report n wd-soa-rm-cd1, OASIS, February, 2006. Marvie R., Duchien L., Blay-Fornarino M., Les plates-formes d exécution et l IDM, in, chapter 4, February, 2006. Mens T., Kniesel G., Runge O., «Transformation dependency analysis. A comparison of two approaches», Langages et Modèles à Objets (LMO), Hermes, Nimes, p. 167-182, March, 2006. Nano O., Un modèle de réécriture pour l intégration de services, PhD thesis, Université de Nice - Sophia Antipolis, Sophia Antipolis, France, 2004. Nemo C., Blay-Fornarino M., Kniesel G., Riveill M., «SEMANTIC ORCHESTRATIONS MERGING - Towards Composition of Overlapping Orchestrations», in, J. Filipe (ed.), 9th International Conference on Enterprise Information Systems (ICEIS 2007), Funchal, Madeira, June, 2007. Occello A., Capitalisation de la sûreté de fonctionnement des applications soumises aux adaptations dynamiques : le modèle exécutable Satin, PhD thesis, Universite de Nice - Sophia Antipolis, Sophia Antipolis, France, June, 2006. Oinn T., Addis M., Ferris J., Marvin D., Senger M., Greenwood M., Carver T., Glover K., Pocock M. R., Wipat A., Li P., «Taverna : A tool for the composition and enactment of bioinformatics workflows», Bioinformatics journal, vol. 17, n 20, p. 3045-3054, 2004. OMG., MOF QVT Final Adopted Specification, OMG Document ptc/2005-11-01, Object Modeling Group. June, 2005. Szyperski C., «Independently Extensible Systems Software Engineering Potential and Challenges», Proceedings of the 19th Australian Computer Science Conference, Melbourne, Australia, 1996.