Top Banner
Master II Informatique Parcours : Génie logiciel [email protected] Maître de conférences en informatique http://www.lirmm.fr/~tibermacin/ens/hmin306/ Évolution dirigée par la qualité des architectures à base de services
48

Évolution dirigée par la qualité des architectures à base ...

Dec 06, 2021

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Évolution dirigée par la qualité des architectures à base ...

Master II InformatiqueParcours : Génie logiciel

[email protected]ître de conférences en informatique

http://www.lirmm.fr/~tibermacin/ens/hmin306/

Évolution dirigée par la qualitédes architectures à base de services

Page 2: Évolution dirigée par la qualité des architectures à base ...

Plan du cours

Chouki TIBERMACINE

2/48

Partie 1 : Évolution des architectures à composants

Partie 2 : Évolution des architectures à services

Page 3: Évolution dirigée par la qualité des architectures à base ...

Contenu de cette partie

Chouki TIBERMACINE

3/48

Introduction aux services et problématique

Approche proposée

Approche proposée par l'exemple

Expérimentation de l'approche

Conclusion

Page 4: Évolution dirigée par la qualité des architectures à base ...

Contenu de cette partie

Chouki TIBERMACINE

Introduction aux services et problématique

Approche proposée

Approche proposée par l'exemple

Expérimentation de l'approche

Conclusion

4/48

Page 5: Évolution dirigée par la qualité des architectures à base ...

Introduction aux services

Chouki TIBERMACINE

Un service = ensemble d'opérations (fonctions) :1. enregistré par son fournisseur auprès d'un annuaire2. pouvant être appelé à distance par des programmes clients

Dans un même service, pas de conservation d'état entreles appels des opérations avec un même client(stateless components) → stateful services existent mais rares(pour des raisons de performances)

Une interface de service : indépendante d'un langage de prog.ou d'une plate-forme particulière (peut-être utilisée par n'importequel programme client : écrit en Java, C, PHP, ... sous Linux, Mac OS, Windows, ...)

Peut être publié sur le Web : on parle alors de service Web

5/48

Page 6: Évolution dirigée par la qualité des architectures à base ...

Parties prenantes dans une architecture à services

Chouki TIBERMACINE

Fournisseur de services

Client de services

Annuaire de services

1. publie l'interface d'un service

2. recherche un service et obtient une référence

3. invoque les opérations du service

6/48

Page 7: Évolution dirigée par la qualité des architectures à base ...

Interfaces et protocoles standards

Chouki TIBERMACINE

Les interfaces des services, publiées dans les annuaires, sontdéfinies avec des langages standards : WSDL pour les servicesWeb, par exemple

Les protocoles de communication (format d'échangede messages/paramètres, par exemple) entre les clients etces services sont aussi standardisés : SOAP et HTTP, par exemple

L'implémentation de ces services peut être faite avec n'importequel langage supporté par les serveurs d'applicationsdes fournisseurs de services : des classes Java, des EJB, des programmes C, PHP, Python, ...

7/48

Page 8: Évolution dirigée par la qualité des architectures à base ...

Exemple de service Web

Chouki TIBERMACINE

Service Web pour l'obtention du nom d'une ville à partird'un code postal et inversement (+ fuseau horaire, ...) :http://www.ripedev.com/webservices/ZipCode.asmx?WSDL

8/48

Page 9: Évolution dirigée par la qualité des architectures à base ...

Compositions de services

Chouki TIBERMACINE

Les compositions de services sont des applicationsqui incluent des appels vers les opérations de différents services

Deux sortes de modèles de compositions de services :Orchestrations de services : applications qui invoquentles opérations de différents services et centralisent les données et les traitements sur ceux-ci au seind'un même processus métierChorégraphies de services : collaborations entre services qui s'appellent mutuellement

9/48

Page 10: Évolution dirigée par la qualité des architectures à base ...

Orchestrations de services Web : processus BPEL

Chouki TIBERMACINE

Un langage concret permettant de définir des orchestrationsde services est BPEL (Business Process Execution Language)

BPEL : un langage pour la modélisation et l'exécution de processus métier composé d'activités (affectations, structuresconditionnelles et itératives définies de façon simple pour les non-spécialistes, des invocations, des réceptions de résultats, …)BPEL = langage de workflow

Ces mêmes processus BPEL peuvent être publiés en tantque services

10/48

Page 11: Évolution dirigée par la qualité des architectures à base ...

Exemple simple de processus BPEL

Chouki TIBERMACINE

11/48

Page 12: Évolution dirigée par la qualité des architectures à base ...

Extrait des méta-modèles de WSDL et BPEL

Chouki TIBERMACINE

12/48

Page 13: Évolution dirigée par la qualité des architectures à base ...

Problématique

Chouki TIBERMACINE

Comme toute architecture logicielle, une orchestration de services(implémentation possible d'une architecture à services : SOA)doit nécessairement évoluer

Comme toute architecture logicielle, la conception d'une orchestration implique la prise de décisions architecturales(patrons SOA, par exemple) garantissant des attributs qualité

Mettre en place ces décisions est une tâche difficile et coûteuseen temps

13/48

Page 14: Évolution dirigée par la qualité des architectures à base ...

Exemple de processus BPEL intégrant des patrons

Chouki TIBERMACINE

14/48

Page 15: Évolution dirigée par la qualité des architectures à base ...

Contenu de cette partie

Chouki TIBERMACINE

Introduction aux services et problématique

Approche proposée

Approche proposée par l'exemple

Expérimentation de l'approche

Conclusion

15/48

Page 16: Évolution dirigée par la qualité des architectures à base ...

Approche proposée

Chouki TIBERMACINE

16/48

Page 17: Évolution dirigée par la qualité des architectures à base ...

Template pour documenter une intention d'intégrationd'un attribut qualité

Chouki TIBERMACINE

17/48

Page 18: Évolution dirigée par la qualité des architectures à base ...

Exemple de template

Chouki TIBERMACINE

18/48

Page 19: Évolution dirigée par la qualité des architectures à base ...

Documentation des décisions architecturales dirigée pardes patrons SOA

Chouki TIBERMACINE

19/48

Page 20: Évolution dirigée par la qualité des architectures à base ...

Un langage de script pour processus BPEL : WS-BScript

Chouki TIBERMACINE

20/48

(01) add (BpelElement element, BpelElement AttachedParentelement, int elementPosition)(02) add (PartnerLinkElement element, String wsdlFileName)(03) getPosition (String BpelElementName)(04) create (BpelElement.Kind)(05) remove (BpelElement element)(06) wire (BpelElement element,PartnerLinkElement element,

String PartnerLinkOperationName)(07) unwire (BpelElement element,String PartnerLinkElement,

String PartnerLinkOperationName)(08) ask (String message)(09) let variableName(10) variableName = <expression>(11) for(variableName : OrderedListVar) <actions>(12) if (<condition>) <action1 or blocOfActions1>[else <action2 or blocOfActions2>](13) query (String OCLExpression)(14) scriptCall (String scriptName([parameters])(15) return (BpelElement element)

Page 21: Évolution dirigée par la qualité des architectures à base ...

Exemple de script WS-BScript : Trusted Subsystem Pattern

Chouki TIBERMACINE

21/48

Page 22: Évolution dirigée par la qualité des architectures à base ...

Algorithme d'assistance

Chouki TIBERMACINE

22/48

Page 23: Évolution dirigée par la qualité des architectures à base ...

Algorithme d'assistance -suite-

Chouki TIBERMACINE

23/48

Page 24: Évolution dirigée par la qualité des architectures à base ...

Relations entre attributs qualité et patrons

Chouki TIBERMACINE

24/48

Page 25: Évolution dirigée par la qualité des architectures à base ...

Exemple de contrainte d'architecture :Patron Service Façade

Chouki TIBERMACINE

La première activité dans le processus est un Receivelié à un partner link représentant le client du processus

Le processus a comme comme dernière activité une activité de type Reply ayant le même partner link, le même port typeet la même opération que l'activité Receive que ci-dessus

Les seules activités de type Receive admises au milieu du processus doivent être précédées d'activités de type Invoke correspondantes. Ces dernières sont utilisées pour invoquer les opérations de services partenaires. Les activités Receive autorisées serviront à la réception des messages retournéespar les opérations des services invoquées

25/48

Page 26: Évolution dirigée par la qualité des architectures à base ...

Le patron Service Façade en ACL

Chouki TIBERMACINE

Sous-contrainte 1 : 1ère activité est un Receivecontext MonApplication : Process inv :let fst : Activity = if self.activity->first().activity = null -- n'est pas une activité compositethen self.activity->first()else if self.activity->first().oclIsTypeOf(Sequence) then self.activity->first().oclAsType(Sequence).activity->first() else null endifendifin if fst <> nullthen fst.oclIsTypeOf(Receive)else falseendif

26/48

Page 27: Évolution dirigée par la qualité des architectures à base ...

Le patron Service Façade en ACL

Chouki TIBERMACINE

Sous-contrainte 2 : dernière activité est un Reply correspondant...if lst <> null -- En supposant que lst contient la dernière activitéthen lst.oclIsTypeOf(Reply) and lst.oclAsType(Reply).partnerLink.name = fst.oclAsType(Receive).partnerLink.name and lst.oclAsType(Reply).portType.name = fst.oclAsType(Receive).portType.name and lst.oclAsType(Reply).operation.name = fst.oclAsType(Receive).operation.nameelse falseendif

27/48

Page 28: Évolution dirigée par la qualité des architectures à base ...

Le patron Service Façade en ACL

Chouki TIBERMACINE

Sous-contrainte 3 : ...andlet activities : OrderedSet(Activity) =self.activity->excluding(fst)->excluding(lst)->closure(activity)in activities->forAll(a : Activity |if a.oclIsTypeOf(Receive)then activities->exists(aa : Activity | activities->indexOf(aa) < activities->indexOf(a) and aa.oclIsTypeOf(Invoke) and aa.oclAsType(Invoke).partnerLink.name = a.oclAsType(Receive).partnerLink.name -- and ... (même chose pour le portType et operation))else trueendif)

28/48

Page 29: Évolution dirigée par la qualité des architectures à base ...

Contenu de cette partie

Chouki TIBERMACINE

Introduction aux services et problématique

Approche proposée

Approche proposée par l'exemple

Expérimentation de l'approche

Conclusion

29/48

Page 30: Évolution dirigée par la qualité des architectures à base ...

Processus BPEL : Appealed Assessments System

Chouki TIBERMACINE

Un processus qui représente le workflow d'un systèmede traitement des plaintes des clients

AD 1 : Un service Data Relayer qui gère les accèsà différents entrepôts de données (Service Façade -> Portabilité)

AD 2 : Un service pour sécuriser les accès aux données :Trusted Subsystem Pattern -> Sécurité

AD 3 : Faire des copies des données :Partial State Deferral Pattern -> Performance

30/48

Page 31: Évolution dirigée par la qualité des architectures à base ...

Documentation d'une orchestration

Chouki TIBERMACINE

Architecture-Documentation : 1. Architecture-Tactic : This tactic guarantees the Portability quality requirement by using a Service facade pattern - Quality-Attribute name="Portability" degreeOfCriticality="high" - Related-Quality name="Performance" relationship="CollidesWith" relationType="tight" - Architecture-Decision name="Service facade pattern" degreeOfSatisficing="90" - Architecture-Constraint profile="BPEL" degreeOfFormalizing="80"

31/48

Page 32: Évolution dirigée par la qualité des architectures à base ...

Documentation d'une orchestration

Chouki TIBERMACINE

2. Architecture-Tactic : This tactic ensures the Security quality requirement by using a Trusted subsystem pattern - Quality-Attribute name="Security" degreeOfCriticality="very high" - Related-Quality name="Availability" relationship="Enhances" relationType="weak" influence="negative" - Architecture-Decision name="Trusted subsystem pattern" degreeOfSatisficing="70" - Architecture-Constraint profile="BPEL" degreeOfFormalizing="90"

32/48

Page 33: Évolution dirigée par la qualité des architectures à base ...

Documentation d'une orchestration

Chouki TIBERMACINE

3. Architecture-Tactic : This tactic ensures the Performance quality requirement by using a Partial state deferral pattern - Quality-Attribute name="Performance" degreeOfCriticality="high" - Related-Quality name="Security" relationship="CollidesWith" relationType="tight" - Architecture-Decision name="Trusted subsystem pattern" degreeOfSatisficing="60" - Architecture-Constraint profile="BPEL" degreeOfFormalizing="70"

33/48

Page 34: Évolution dirigée par la qualité des architectures à base ...

Scénarios d'évolution

Chouki TIBERMACINE

Scénario 1 : Court-circuiter le service d'authentificationNotification :

Affecte la décision 2 : Trusted Subsystem PatternContrainte formalise jusqu'à 90% la décisionGarantit la sécurité jusqu'à 70 %Attribut très hautement critiqueCouplé faiblement à l'attribut disponibilité :enhancement-negative

Scénario 2 : Ajout d'un service d'archivage, supprimerle service Data Relayer pour améliorer les performanceset la disponibilité

Notification : ...

34/48

Page 35: Évolution dirigée par la qualité des architectures à base ...

Contenu de cette partie

Chouki TIBERMACINE

Introduction aux services et problématique

Approche proposée

Approche proposée par l'exemple

Expérimentation de l'approche

Conclusion

35/48

Page 36: Évolution dirigée par la qualité des architectures à base ...

Préparation de l'expérimentation

Chouki TIBERMACINE

Question de recherche :Comparée à une évolution manuelle de la qualité, est-ce quele support automatique, fourni par l'approche, donne une aidesubstantielle aux architectes ?

Mesurer le surcoût de l'approche et à partir de quand l'approchedevient rentable

Dataset : 11 patrons réels + 5 patrons fictifs (variation aléatoiredu nombre : 1) d'éléments BPEL pour mesurer le temps de specdes scripts, et 2) de tokens pour le temps de spec des contraintes)

36/48

Page 37: Évolution dirigée par la qualité des architectures à base ...

Mesures du temps de spécification des contraintes

Chouki TIBERMACINE

37/48

Page 38: Évolution dirigée par la qualité des architectures à base ...

Extrapolation des mesures pour les patrons simulés

Chouki TIBERMACINE

38/48

Page 39: Évolution dirigée par la qualité des architectures à base ...

Mesures du temps de spécification des scripts

Chouki TIBERMACINE

39/48

Page 40: Évolution dirigée par la qualité des architectures à base ...

Extrapolation des mesures de temps de spec des scripts

Chouki TIBERMACINE

40/48

Page 41: Évolution dirigée par la qualité des architectures à base ...

Mesures de temps sur les patrons réels

Chouki TIBERMACINE

41/48

Colonne (a) : temps d'application automatiqueColonne (b) : temps de configuration des contraintesColonne (c) : temps de documentation des patrons

Page 42: Évolution dirigée par la qualité des architectures à base ...

Simulation de l'application des patrons

Chouki TIBERMACINE

42/48

50 applications fictives de ces patrons sur un processus BPEL réel

Étude de 3 cas :Pire des cas : appliquer d'abord une fois tous les patronsdans un ordre aléatoire, puis ré-appliquer les mêmes patrons

Meilleur des cas : appliquer en parallèle les patrons

Cas aléatoire

Page 43: Évolution dirigée par la qualité des architectures à base ...

Le pire des cas

Chouki TIBERMACINE

43/48

Page 44: Évolution dirigée par la qualité des architectures à base ...

Le meilleur des cas

Chouki TIBERMACINE

44/48

Page 45: Évolution dirigée par la qualité des architectures à base ...

Le cas aléatoire

Chouki TIBERMACINE

45/48

Page 46: Évolution dirigée par la qualité des architectures à base ...

Contenu de cette partie

Chouki TIBERMACINE

Introduction aux services et problématique

Approche proposée

Approche proposée par l'exemple

Expérimentation de l'approche

Conclusion

46/48

Page 47: Évolution dirigée par la qualité des architectures à base ...

Synthèse et perspectives

Chouki TIBERMACINE

Approche raffinée d'assistance à l'évolution

Application aux processus BPEL comme implémentationsd'orchestrations de services

Thèse de Tarek Zernadji (qui va être soutenue en février 2016)

Travaux futurs : Définir un système décisionnel qui étudie l'effet de l'applicationde toutes les combinaisons possibles de patrons sélectionnésExpérimenter pour évaluer les étapes du processus individuellement

47/48

Page 48: Évolution dirigée par la qualité des architectures à base ...

Questions

Chouki TIBERMACINE

48/48