Cédric Joffroy Sébastien Mosser Mireille Blay-Fornarino Clémentine Nemo JFDLPA 07 26/03/2007 CNRS Laboratoire I3S Équipe Rainbow
Plan 1 Contexte : Services Web & Orchestrations 2 Des Aspects sur Service Web 3 Composition d Aspects sur Service Web 4 Conflits de composition 5 Conclusion : Bilan & Perspectives 2
Plan 1 Contexte : Services Web & Orchestrations 2 Des Aspects sur Service Web 3 Composition d Aspects sur Service Web 4 Conflits de composition 5 Conclusion : Bilan & Perspectives 3
Contexte technologique : Services Web & Entreprises
Contexte technologique : Orchestrations de Services Web
Contexte technologique : Évolution des WSOA
Orchestration de Service Web : Récapitulatif Une Orchestration...... Est un support à l ajout de nouveaux services Mais manipulation directe du code de l orchestration!... Centralise la coordination des services Réécriture de toutes les orchestrations à chaque introduction d un service commun!... Est une solution a un problème donné Réutilisation des codes existant difficile!... Se comporte comme une boite noire Composition difficilement optimisable, tissage impossible! 7
Une orchestration par l exemple Contexte : Système d Information Bancaire Scénario Trois Services Web disponibles : AccountManager : Transfert de fond Historic : Journalisation d actions effectuées sur le SI Policy : Vérificateur de la politique interne du SI Journaliser le début et la fin du transfert de fond Informer le gestionnaire de politique d un transfert Publication d une orchestration 8
Transfert de fond journalisé & politiquement correct
Problématique Et si...... on souhaitait journaliser d autres opérations?... on souhaitait au contraire désactiver la journalisation?... on travaillait de manière colaborative sur le système?... tout simplement, on voulait faire évoluer le système? 10
Plan 1 Contexte : Services Web & Orchestrations 2 Des Aspects sur Service Web 3 Composition d Aspects sur Service Web 4 Conflits de composition 5 Conclusion : Bilan & Perspectives 11
Et si... on utilisait des aspects? A restricted definition of AOP [Douence,2004] 1 AOP supports incremental (unanticipated) programming 2 AOP supports code scattering 3 AOP structures (un)scattered code 4 AOP supports pointcut to bind aspects 5 AOP supports aspects composition 12
Et si... on utilisait des aspects? A restricted definition of AOP [Douence,2004] 1 AOP supports incremental (unanticipated) programming Évolution non anticipée des WSOA 2 AOP supports code scattering Modularisation des modifications (ajout/retrait) 3 AOP structures (un)scattered code Structuration des codes ajoutés 4 AOP supports pointcut to bind aspects Réutilisation de codes orthogonaux 5 AOP supports aspects composition Composition automatique des codes ajoutés 12
Un formalisme à deux niveaux Approches actuelles : des aspects sur orchestrations Trois formalismes différents : Implémentation, Orchestration, Aspect Intégration des aspects au sein des moteurs d exécution Notre approche : des aspects sur Service Web Utiliser les langages d orchestrations pour définir les aspects : Implémentation, Orchestration Indépendance du moteur d exécution 13
Des aspects sur Service Web Définition des aspects sur Services Web : Aspect = (Sélecteur, Greffon) Sélecteur = (Service Web, Operation) Greffon = (Activités, Pivots, Ordre, Conditions) Activité = (Type, Entrées, Sorties) Démarche Extension du langage d orchestration BPEL Existant : sequence, flow, invoke, assign,... Ajout : Pivots de compositions : proceed, deleguate Notion de sélecteur : target, operation 14
Expression de l aspect de journalisation
Formalisation de l aspect de journalisation
Vers une évolution non anticipée incrémentale...
Plan 1 Contexte : Services Web & Orchestrations 2 Des Aspects sur Service Web 3 Composition d Aspects sur Service Web 4 Conflits de composition 5 Conclusion : Bilan & Perspectives 18
Composition d aspects sur Services Web Le problème : Les aspects A 1 et A 2 sont déployés sur le SI A 1 et A 2 agissent sur des entités communes Calcul de A 12 merge(a 1, A 2 ) Composition des aspects : 1 Composition des aspects existants. 2 Analyse de l aspect résultant : Aucun conflit détecté : Aller en 3 Détection d un conflit : Résolution du conflit (connaissance), aller en 1 3 Déployer l aspect résultant sur le système 19
Composition d aspect : Processus de composition Processus de composition Unification autour des pivots de composition Conjonctions des conditions Propagation des modifications sur la relation d ordre Vérification des conflits engendrés par la composition Base de connaissances Connaissances sur la sémantique de l application Alimentée par les développeurs Utilisée pour résoudre les conflits 20
Formalisation des aspects Historic & Policy
Unification des pivots et de la relation d ordre
Résultat de la composition automatique
Plan 1 Contexte : Services Web & Orchestrations 2 Des Aspects sur Service Web 3 Composition d Aspects sur Service Web 4 Conflits de composition 5 Conclusion : Bilan & Perspectives 24
Conflits de composition Un travail collaboratif... 2 aspects de Service Web peuvent interagir (conflit) Nécessité d un mécanisme de résolution des conflits Conflits identifiés dans notre implémentation 1 Délégations différentes 2 Accès concurrents en lecture / écriture à une variable 3 Deux retours différents 4 Deux levées d exception différentes 25
Un conflit par l exemple Contexte : Système d Information bancaire Trois services métiers disponibles : AccountManager : Gestion des comptes clients AccoutChecker : Certification électronique des comptes BankingFraud : Gestion des interdits bancaires Scénario : Respecter la Loi 1 Compte source interdit bancaire Toute Opération interdite! 2 Compte destinataire non certifié Transfert interdit! 26
Définition d un aspect par préocupation
La composition conduit à un conflit
Capitalisation des connaissances Composition OK!
Plan 1 Contexte : Services Web & Orchestrations 2 Des Aspects sur Service Web 3 Composition d Aspects sur Service Web 4 Conflits de composition 5 Conclusion : Bilan & Perspectives 30
Récapitulatif Points forts de l approche Évolution non anticipée des WSOA Ajout incrémental de nouvelles fonctionnalités Mécanismes de composition automatique Mécanismes de résolution de conflits 31
A l heure actuelle,...... nous disposons... D un moteur de composition implémenté en PROLOG D une base de connaissances (résolution de conflits) D une architecture WSOA supportant les aspects : ajout/retrait dynamique,... D outils de traitement des documents ODML... nous devons encore... Intégrer le moteur de composition à l architecture Étendre le processus de composition pour l enrichir Enrichir l expressivité de la base de connaissances 32
Merci de votre attention! Avez vous des questions?