Projet ANR JCJC PERSO Pervasive Servie Composition Appel «Jeunes Cherheurs» Projet JC07_186508 Déision ANR-07-JCJC-0155-01 2007-2010 http://anr-perso.ibis.fr/ Pasal Poizat niversité d Evry Val d Essonne; LRI - CNRS et niversité Paris Sud Grand olloque STIC, Lyon, 6 janvier 2012
Contexte Internet & informatique diffuse aès aru aux données et aux moyens de alul ingénierie logiielle à base de servies évolution modules lasses servies enapsulation (données/aluls), faible ouplage logiiel pour (et par) l utilisateur final «end-user programming» néessité d automatisation et de transparene omposition automatique de servies réutilisation + réation de servies à valeur ajoutée adéquation aux besoins utilisateurs + transparene «software-as-a-servie» 01
peer models (interfae) orhestration model orhestration implementation servie models (interfae) servie implementations orhestration speifiation implement uses test orhestration implementations horeography speifiation ompose 1 2 3 implement 3 hek realizability A1 generate peers A2 hek onformane B test 4 Proessus de développement 02 peer models (interfae) orhestration model orhestration implementation servie models (interfae) servie implementations orhestration speifiation implement uses test orhestration implementations horeography speifiation ompose 1 2 3 implement 3 hek realizability A1 generate peers A2 hek onformane B test 4 «bottom-up» entralisé «top-down» distribué
Proessus de développement orhestration speifiation 1 ompose orhestration model A1 hek realizability horeography speifiation 3 test Adaptation servie models (interfae) 2 implement A2 generate peers B hek onformane 4 test servie implementations uses orhestration implementation Composition peer models (interfae) 3 implement? orhestration implementations Evaluation 3 grandes ativités : - adaptation - omposition - évaluation 02
ANR PERSO orhestration speifiation 1 ompose orhestration model A1 hek realizability horeography speifiation 3 test Adaptation servie models (interfae) 2 implement A2 generate peers B hek onformane 4 test servie implementations uses orhestration implementation Composition peer models (interfae) 3 implement? orhestration implementations Evaluation problématiques : - support de différents types d interfaes respet de ontraintes et satisfation de besoins omportementaux, non fontionnels et sémantiques - omposition adaptative (résolution des inompatibilités) - omposition distribuée 03
ANR PERSO orhestration speifiation 1 ompose orhestration model A1 hek realizability horeography speifiation 3 test Adaptation servie models (interfae) 2 implement A2 generate peers B hek onformane 4 test servie implementations uses orhestration implementation Composition peer models (interfae) 3 implement? orhestration implementations partiularités : - ombinaison MDE + méthodes formelles Evaluation génériité rigueur et outillage des solutions proposées - utilisation de tehniques «exotiques» en génie logiiel (optimisation ombinatoire et analyse de performane) 04
Adaptation
Problème fait : les omposants sont développés séparément limitation de la réutilisation par différents tiers onséquene : inompatibilités limitation de la omposition entre interfaes requises/fournies limitation de la réparation 06
Inompatibilités print imprimer 1-1 0-1/1-0 login ; request* ; logout (login ; request ; logout)* n-m res := query(x,y) id := q1(x); res := q2(id,y) ordre set(file); res := do(ation) set(ation); res := do(file) 07
Adaptation réation d adaptateurs non intrusif évolution dynamique paramétrage modèles + ode intergiiels adaptatifs données + buffering synthèse de ontrôleur approhes ad-ho non générales / manuelles [Shmidt and Reussner, 2002], [Benatallah et al, 2005], [Dumas et al, 2006] approhes restritives suppression d interations n-aires, pratiques (outils) [Inverardi and Tivoli, 2003] approhes génératives renommage, réordonnanement binaires, théoriques [Yellin and Strom, 1997], [Braiali et al, 2005], [Brogi et al, 2006] 08
Adaptation omportementale Adaptor [reordering] restritif + génératif n-aire gestion de propriétés appliation à WWF adaptation ontrat omponent interfaes (LTS) mismath detetion yes no No adaptor required Petri net enoding Petri net enoding [no reordering] ontrat enoding (PN) omponent enodings (PN) vetor produt Petri net fusion global enoding (PN) TINA (external) marking graph semantis raw adaptor model (LTS) path deadlok pruning pruned adaptor model (LTS) CADP (external) behavioural redution interfaes omportementales des servies (LTS) adaptor model (LTS) ontrat d adaptation (LTS étiqueté par veteurs) <si:[mi *]> ex: <s1:m,s2:*>, <s1:m1; s2:m2> étape générative : enodage réseaux de Petri + fusion des réseaux étape restritive : alul graphe des marquages + suppression hemins bloquants 09
emuseum 10
emuseum 10
Adaptation omportementale restritif + génératif n-aire gestion de propriétés appliation à WWF extension symbolique des interfaes (LTS STS) et des veteurs enodage impliite (réseau de STS) approhe à la volée (+ effiae) support diret des données vérifiation de systèmes adaptés appliation aux WS «de base» absene de bloage enodée en BES restrition ave Caesar.Solve extration de modèle (BPEL STS) implantation automatique (STS BPEL) extension sémantique des interfaes (LTS SIOLTS) alul de lients «parfaits» approhe distribuée totalement automatique (pas de ontrat) appliation aux WS sémantiques produit sémantique et projetion/pairs extension des lients parfaits par ajout de messages 11
Composition séletion - omposition - réparation
Séletion sur ritères non-fontionnels déouverte : base de la omposition - reherhe de tous les servies présentant une aratéristique fontionnelle souhaitée séletion : omplète la déouverte - hoix du(des) meilleur(s) servie - selon des ritères non-fontionnels ii, aspets transationnels et qualité de servie aspets transationnels mais non QoS [Zeng et al, 2005], [Jaeger et al, 2004], [Zhang et al, 2007] aspets QoS mais non transationnels [Bhiri et al, 2005], [Montagut et al, 2006], [Li et al, 2007] 13
servies apaité + propriété transationnelle [pa]r? + valeurs de QoS Séletion sur ritères non-fontionnels besoin workflow abstrait (apaités) + propriété transationnelle [a] + poids sur ritères de QoS instaniation du workflow - propriété transationnelle par agrégation struturelle de elles des sous-servies - max. de la satisfation utilisateur (loal puis global) par utilisation de tehniques d optimisation ombinatoire 14
servies apaité + propriété transationnelle [pa]r? tilisateur qos prie :: 0.8 + valeurs de QoS besoin Séletion sur ritères non-fontionnels workflow abstrait (apaités) WS 13 ) ar WS 31 ) r + propriété transationnelle [a] WS 21 4 ) r WS 41 ) p WS 32 ) ar WS 11 ) pr WS 33 ) pr WS 42 ) r WS 22 ) p + poids sur ritères WS 23 de ) QoS a WS 12 ) p WS 43 ) ar Préférenes transationnel :: atomique qos duration :: 0.2 instaniation du workflow Registre de WS - propriété transationnelle T1: WS 11 ) pr WS 12 ) p WS 13 ) ar T2: WS 21 ) r WS 22 ) p WS 23 ) a T3: WS 31 ) r WS 32 ) ar WS 33 ) pr T4: WS 41 ) p WS 42 3 ) r WS 43 ) ar par agrégation struturelle de elles des sous-servies - max. de la satisfation utilisateur (loal puis global) par utilisation de tehniques d optimisation ombinatoire 14 WF Phase de déouverte Moteur de séletion Phase de séletion SWC transationnel à exéuter
Composition aller au-delà de la résolution de bloages omposer automatiquement des servies à partir de besoins les deux ayant des onversations << servie >> pear_store order(...) anel(...) ship(...) bill(...) harge(...) gift(...) ak(...) << servie >> ebay order(...) ship(...) harge_(...) harge_pp(...) bill(...) finalize(...) << servie >> paypal login(...) logout(...) get_redit(...) ask_bill(...) I want to buy something I agree to give the produt and personal info Find me servie(s) so that I an all selet, purhase, ship,... I need a traking number 15
Composition aller au-delà de la résolution de bloages omposer automatiquement des servies à partir de besoins les deux ayant des onversations << servie >> pear_store order(...) anel(...) ship(...) bill(...) harge(...) gift(...) ak(...) inomp. horizontale << servie >> ebay order(...) ship(...) harge_(...) harge_pp(...) bill(...) finalize(...) << servie >> paypal login(...) logout(...) get_redit(...) ask_bill(...) I want to buy something I agree to give the produt and personal info Find me servie(s) so that I an all selet, purhase, ship,... I need a traking number 15
Composition aller au-delà de la résolution de bloages omposer automatiquement des servies à partir de besoins les deux ayant des onversations inomp. vertiale << servie >> pear_store order(...) anel(...) ship(...) bill(...) harge(...) gift(...) ak(...) inomp. horizontale << servie >> ebay order(...) ship(...) harge_(...) harge_pp(...) bill(...) finalize(...) << servie >> paypal login(...) logout(...) get_redit(...) ask_bill(...) workflow I want to buy de something apaités données d entrée I agree to give the produt and personal info opérations Find me servie(s) so that I an all selet, purhase, ship,... données de sortie I need a traking number 15
Composition aller au-delà de la résolution de bloages omposer automatiquement des servies à partir de besoins les deux ayant des onversations inomp. vertiale << servie >> pear_store order(...) anel(...) ship(...) bill(...) harge(...) gift(...) ak(...) inomp. horizontale << servie >> ebay order(...) ship(...) harge_(...) harge_pp(...) bill(...) finalize(...) << servie >> paypal login(...) logout(...) get_redit(...) ask_bill(...) nombreuses approhes [Maroni and Pistore, 2009] workflow I want to buy de something apaités données d entrée I agree to give the produt and personal info opérations Find me servie(s) so that I an all selet, purhase, ship,... onversations : servies et besoins + support données entrée/sortie + support apaités [Ben Mokhtar et al, 2007], [Bertoli et al, 2010] données de sortie I need a traking number inompatibilités partiellement supportées et hypothèse d intégration de servies simple [Ben Mokhtar et al, 2007] 15
Composition Pyompose typage sémantique des opérations (entrées/sorties/apaité) enodage en ations propositionnelles (graphe de planifiation) omposition requirement (apability WF) servie interfaes (operation WF) data semanti struture model extration model extration model extration planning problem omposition requirement model (apability WF) servie models (operation WF) data semanti struture model onstrution enoding enoding enoding graphplan (external) omposition requirement planning problem servie planning problems (operation WF) data semanti struture planning problem PDDLGraphPlan (external) planning graph (GP) Blakbox (external) extration planner interfae problem fusion plan global planning problem graph planning plan model enoding omposition model (operation WF) model implement. deployment omposition implementation (BPEL) - de l adaptation de données asting / omposition / déomposition - des onversations adaptation d une transformation workflow Petri net [Kiepuszewski, 2003] - des opérations apaité autorisée + entrées apaité faite + sorties 16
eshopping 17
semanti data desription eshopping shipping addr billing addr address CC holder user addr CC info user info user name CC number paypal pwd paypal info paypal login order amount PIM wallet amazon info amazon login produt prie pear produt info produt amazon pwd produt spes pear produt ephone epad 17
semanti data desription eshopping shipping addr billing addr address servie operations CC holder order amount produt prie produt spes user addr user info pear produt info order pear produt pear produt info, sid PS PS produt seletion CC info anel user name PIM wallet CC number sid PS paypal info amazon info paypal pwd ship shipping addr, sid PS SS shipping setup paypal login bill billing addr, sid PS BS billing setup harge CC info, sid PS $ payment amazon login gift wrapper giftode, sid PS $ payment akprodut sid PS amazon pwd traking number OF order finalization pear produt ephone epad 17
semanti data desription eshopping shipping addr billing addr address servie operations CC holder user addr order pear produt pear produt info, sid PS PS produt seletion CC info order amount pear_store user info user name pear produt CC number amazon info order PS produt prie ship SS BS bill harge $ produt spes ebay pear produt info anel anel PIM wallet sid PS paypal pwd ship shipping addr, sid PS SS shipping setup paypal info servie paypal onversations login bill billing addr, sid PS BS billing setup harge CC info, sid PS $ payment amazon login gift wrapper giftode, sid PS OF $ payment akprodut sid PS amazon pwd traking number OF order finalization gift_wrapper PS ephone epad SS $ BS OF order ship harge_ $ bill ak finalize paypal harge_pp login get_redit $ ask_bill BS logout logout 17
semanti data desription eshopping shipping addr billing addr address servie operations CC holder user addr order pear produt pear produt info, sid PS PS produt seletion CC info order amount pear_store user info user name pear produt CC number amazon info order PS produt prie ship SS BS bill harge $ produt spes ebay paypal pear produt info anel anel PIM wallet sid PS paypal pwd ship shipping addr, sid PS SS shipping setup paypal info servie paypal onversations login bill billing addr, sid PS BS billing setup harge CC info, sid PS $ payment amazon login gift wrapper giftode, sid PS OF $ payment akprodut sid PS amazon pwd traking number OF order finalization gift_wrapper PS ephone epad SS $ BS OF order login ship harge_ harge_pp get_redit $ ask_bill BS $ bill logout ak I want to buy something finalize I agree to give the produt and personal info BT FOR CC I need a traking number requirements produt_seletion shipping_setup billing_setup payment logout order_finalization 17
semanti data desription eshopping shipping addr order amount pear_store billing addr user addr user info address CC info user name pear produt CC holder CC number amazon info order PS produt prie ship SS BS bill harge $ produt spes ebay paypal pear produt info anel ast w2.order order pear produt pear produt info, sid PS PS produt seletion ast anel PIM wallet sid PS paypal pwd ship shipping addr, sid PS SS de de shipping setup paypal info paypal login bill billing servie addr, sid onversations PS payment w3.get_redit BS billing setup harge CC info, sid PS $ payment amazon login gift wrapper w2.finalize giftode, sid PS w3.logout OF w3.ask_bill w2.harge_pp $ payment akprodutorder_finalization sid PS amazon pwd traking number billing_setup OF order finalization gift_wrapper PS ephone epad SS $ BS OF order login ast de ship harge_ harge_pp get_redit $ ask_bill BS $ bill logout produt_seletion ak I want to buy something finalize I agree to give the produt and personal info BT FOR CC I need a traking number w3.login shipping_setup servie operations requirements produt_seletion shipping_setup billing_setup payment w2.ship logout order_finalization 17
semanti data desription eshopping shipping addr order amount pear_store billing addr address CC holder ast reeive(user,op,{epad,user_info}) addr CC info ; CC number [pear_produt := anel ast(epad)], sid PS paypal pwd info name [user_name := user_info.user_name; user_address := user_info.user_address; SS de de pim_wallet := user_info.pim_wallet] paypal info servie paypal onversations login payment BS amazon info order PS produt prie ship SS BS bill harge $ produt spes ebay paypal w2.order order pear produt pear produt info, sid PS PS produt seletion ship shipping addr, sid PS shipping setup bill billing addr, sid PS w3.get_redit billing setup PIM wallet harge CC info, sid PS $ payment gift wrapper w2.finalize giftode, sid PS w3.logout OF w3.ask_bill w2.harge_pp $ payment akprodutorder_finalization sid PS amazon pwd traking number billing_setup OF order finalization anel [{e_sessionid} := invoke(w2,order,{produt})], pear PS ephone epad SS $ BS OF order login ast de flow { } ; flow { ast I agree to give the produt and } ; personal info I want to buy BT FOR CC {p_sessionid} ship := invoke(w3,login,{paypal_login,paypal_pwd}) harge_ bill something finalize ; {paypal_trans_id} := invoke(w3,get_redit,{order_amount,p_sessionid}) harge_pp ; invoke(w2,harge_pp,{paypal_trans_id,e_sessionid}) ; I need a invoke(w3,ask_bill,{user_address,p_sessionid}) ; traking number {traking_num} get_redit $ := invoke(w2,finalize,{e_sessionid}) ask_bill BS logout ; logout produt_seletion w3.login shipping_setup servie operations produt_seletion shipping_setup billing_setup payment w2.ship [produt := ast(pear_produt)], amazon login [shipping_addr := ast(user_address)], ak pear [paypal_info produt := pim_wallet.paypal_info; amazon_info := PIM_wallet.amazon_info] info } ; gift_wrapper $ flow { requirements [paypal_login := paypal_info.paypal_login; paypal_pwd := paypal_info.paypal_pwd] {order_amount} := invoke(w2,ship,{shipping_addr,e_sessionid}) ; invoke(w3,logout,{p_sessionid}) ; reply(user,op,{traking_num}); order_finalization 17
Réparation les ompositions de servies sont soumises à un monde hangeant : - servies indisponibles (pannes, fautes, mobilité) - nouveaux servies (mobilité) - besoins de l utilisateur modifiés remplaement limité (1-1 uniquement), problème des nouveaux besoins re-omposition / adaptation potentiellement oûteux, perte de la solution initiale alternative : réparation? 18
Réparation a Z: pre={a}, effet - ={a}, a proposition a effet + ={b,d} ation : pre={a}, effet - ={a}, X invalid ation a Z b effet + ={b,} preondition Y: pre={b}, Z b Y d effet - ={}, effet + ={e} negative effet S: pre={,d}, positive effet d S X e effet - ={}, effet + ={e} baktrak to solution P 0 A 1 P 1 A 2 P 2 layers 19
Réparation a Z: pre={a}, effet - ={a}, a proposition a effet + ={b,d} solution: ation ; Y : pre={a}, effet - ={a}, X invalid ation a Z b effet + ={b,} preondition Y: pre={b}, Z b Y d effet - ={}, effet + ={e} negative effet S: pre={,d}, positive effet d S X e effet - ={}, effet + ={e} baktrak to solution P 0 A 1 P 1 A 2 P 2 layers 19
Réparation a Z: pre={a}, effet - ={a}, a proposition a effet + ={b,d} solution: ation ; Y a Z b : pre={a}, effet - ={a}, effet + ={b,} Y: pre={b}, X invalid ation et si est indisponible? autre solution: preondition Z; Y Z b Y d effet - ={}, effet + ={e} negative effet S: pre={,d}, positive effet d S X e effet - ={}, effet + ={e} baktrak to solution P 0 A 1 P 1 A 2 P 2 layers 19
Réparation a Z: pre={a}, effet - ={a}, a proposition a effet + ={b,d} solution: ation ; Y a Z b : pre={a}, effet - ={a}, effet + ={b,} Y: pre={b}, et si est indisponible? autre solution: X invalid ation preondition Z; Y Z b d Y S X d e effet - ={}, negative effet effet + et si Y est indisponible? ={e} plus de solution mais une partie S: pre={,d}, effet - ={}, effet + ={e} positive effet du graphe est toujours valide baktrak to solution P 0 A 1 P 1 A 2 P 2 layers 19
Réparation alul des pré-onditions insatisfaites (Broken Preonditions) insertion (heuristique) de nouveaux servies dans le graphe de planifiation - éventuel ajout de niveaux - éventuelle suppression de servies P m =P m out(a) P m-1 - BP m-1 P m - BP m P m-1 - BP m-1 P m - BP m A m A m+1 A m BP m A m+1 BP m-1 BP m if m<n else BP m D out BP m-1 A + BP' m BP m = (a) (b) added layers P m+1 =P m out(a) P m-1 - BP m-1 P m - BP m P m - BP m BP m-1 A m BP' m BP m = in(a)\(p m \BP m ) () A + BP m BP m+1 BP m+1 = A m+2 A m+2 =A m+1 20
Réparation alul des pré-onditions insatisfaites (Broken Preonditions) insertion (heuristique) 100 de nouveaux reomposition standard servies dans le graphe de planifiation 80 - éventuel ajout de niveaux - éventuelle suppression de 60 servies P m-1 - BP m-1 P m - BP m A m Time(ms) 40 A m+1 P m-1 - BP m-1 réparation P m =P m out(a) P m - BP m A m BP m A m+1 BP m-1 (a) BP m if m<n 20 else BP m D out BP m-1 A + (b) BP' m BP m = P m-1 - BP m-1 added P m+1 =P m out(a) 0 10 layers 15 20 25 30 P m - BP P m m - BP %Removed m BP m-1 A m BP' m BP m = in(a)\(p m \BP m ) () A + BP m BP m+1 BP m+1 = A m+2 A m+2 =A m+1 20
Résultats tehniques d adaptation omportementale - semi-automatique (ontrats) - automatique et distribuée tehniques de omposition - séletion sur ritères non font. - omposition omportementale et adaptative - réparation automatique implémentation - transformations de modèle - langage d orhestration léger évaluation de performane prototypes publiations - 2 HdR - 1 hapitre de livre - 6 artiles de revues internat. IEEE Trans. Software Engineering (2), IEEE Trans. Servie Computing, Int. J. of Web Servie Researh, Int. J. of Web and Grid Servies, J. of Conur. and Comp.: Prat. and Exp. - 18 artiles de onf. internat. dont 3 @ ICSOC et 3 @ ICWS («A») 21
ANR PERSO - appel JCJC 2007-2010 http://anr-perso.ibis.fr/ Colloque STIC 2010 ANR PIMI - appel VERSO 2010-2013