La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Les processus métiers : concepts, modèles et systèmes

Présentations similaires


Présentation au sujet: "Les processus métiers : concepts, modèles et systèmes"— Transcription de la présentation:

1 Les processus métiers : concepts, modèles et systèmes
Claude Godart Université de lorraine. Esstin

2 Organisation du cours Introduction Concepts et notations
Modélisation des processus Analyse qualitative des processus Analyse quantitative des processus Systèmes de gestion de processus Processus transactionnels Découverte de processus Conclusion

3 Chapitre 5 : Les processus transactionnels
Claude Godart Université de lorraine. Esstin

4 Contenu Processus transactionnel : définition
La cohérence transactionnelle, les transactions ACID Relâcher les propriétés ACID : les modèles de transactions avancés Modèle de processus transactionnels Patron transactionnel de processus Infrastructures pour la mise en oeuvre des processus transactionnels

5 Processus transactionnel
Définiton

6 La cohérence transactionnelle
Objectifs : Décharger les programmeurs des problèmes liés aux pannes matérielles, aux erreurs logicielles, à la concurrence d’accès aux données Moyens Encapsuler les programmes dans des transactions pour : Contrôler les accès concurrents aux données Respecter les contraintes d’intégrité Récupérer un état cohérent en cas de problème logiciel ou matériel Préserver les données en cas de panne matérielle Mise en œuvre : le modèle des transactions ACID

7 Le modèle des transactions ACID
Une Transaction ACID est un ensemble d’opérations de lecture/écriture dans une BD qui respectent les propriétés suivantes : soit toutes les opérations s’exécutent, soit aucune (Atomicité) une transaction seule, qui prend la BD dans état cohérent, la rend dans un état cohérent (Cohérence) dans le cas d’une exécution concurrente, toute transaction a le même effet que si elle s’exécutait seule (Isolation) les données sauvegardées ne peuvent pas être modifiées qu’en exécutant de nouvelles transactions (Durabilité)

8 Mise en oeuvre du modèle ACID (contexte centralisé)
Une transaction est dite centralisée si elle agit sur une seule base de donnée Difficultés de la mise en oeuvre: assurer les propriétés d’atomicité et d’isolation Assurer l’atomicité : « Défaire » les modifications qui ont été faites en cas de problème en cours d’exécution Assurer l’isolation : Préserver la transaction des mises à jour des autres transactions Cacher les mises à jour de la transaction aux autre transactions

9 Mise en oeuvre du modèle ACID Le protocole de verrouillage à deux phases
Toute transaction qui veut modifier une donnée doit poser un verrou de type « exclusif (X) » Toute transaction qui veut lire une donnée doit poser un verrou de type « partagé (P) » Si la donnée possède un verrou incompatible, alors la transaction demandeuse est mise en attente jusqu’à ce que la donnée soit libérée (voir table de compatibilité) Une transaction qui a acquis un verrou ne peut plus en acquérir d’autres

10 Mise en oeuvre du modèle ACID Compatibilité entre verrous
OK NO P X Rien

11 Garanties du 2PL Toutes les exceptions acceptées sont sérialisables
Toutes les exécutions sérialisables ne sont pas acceptées Exécution sérialisables Exécution acceptées par le 2PL

12 Mise en oeuvre du modèle ACID (Contexte décentralisé)
Une transactions est dite distribuée si elle modifie plusieurs base de données Composée de sous transaction, chaque sous transaction est semblable à une transaction centralisée ACIDité dans un contexte distribué: Isolation/durabilité si chaque sous transaction est isolée/durable, la transaction globale est isolée/durable Cohérence: chaque sous transaction peut ne pas être cohérente mais la transaction globale doit l’être Nécessiter de coordonner l’exécution des sous-transactions pour assurer la cohérence Atomicité : l’atomicité doit être assurée au niveau local et global Le protocole de terminaison à deux phases assure une terminaison atomique

13 Mise en oeuvre du modèle ACID
Le protocole de terminaison à deux phases (ou plus)

14 Les limites du modèle ACID
Les propriétés ACID restreignent l’application du modèle ACID aux applications base de données (classiques) de courte durée où le principe de tout ou rien est acceptable avec contraintes d’intégrité numériques et déterministes de nature non collaborative

15 Les limites du modèle ACID
De nouvelles applications avancées (comme les processus métiers) avec de nouveaux besoins veulent bénéficier de la simplicité des transactions pour assurer des exécutions fiables Mais sont : De longue durée D’un développement incertain : pas de programme a priori (pas possible de vérifier la cohérence a priori) Collaborative par nature : le principe d’isolation est antagoniste Question : comment dépasser les limites du modèle ACID tout en préservant leur généralité et leur simplicité pour résoudre les problèmes de défaillance logicielle et physique ?

16 Modèles de transaction avancés
But : étendre le modèle ACID pour supporter des applications avancées Approche : relâcher les propriétés ACID Structure plus complexe Compensation Semi-atomicité états intermédiaires alternatives d’exécution Correction définie par les concepteurs

17 Le modèle des SAGA (Notion de compensation)
Une SAGA est une transaction ACD composée de sous transactions AID S = T1; T2; ... ; Tn; Tn+1 Le mécanisme de recouvrement d’un état cohérent est basé sur la notion de compensation à chaque sous transaction Ti, le concepteur associe une activité de compensation (Ci) qui « défait » les modifications faites par Ti « défaire » signifie ramener la transaction à un état acceptable qui n’est pas forcément un état antérieur « défaire » ne signifie pas que Ti n’a pas eu d’effets Exécution d’une SAGA en cas d’échec d’une sous transaction Ti S = T1; T2; ... ; Ti;Ci;Ci−1; ;C2;C1

18 Le modèle des SAGA: exemple
S = Spécification des besoins du client; Réservation d’hôtel; Réservation de vol; Paiement en ligne; Envoi de document via Expéditeur 1 avec : compensation(Spécification des besoins du client) = envoyer message (« Voyage annulé »); compensation(Réservation d’hôtel) = Annulation de réservation d’hôtel compensation(Réservation de vol) = Annulation de réservation de vol compensation(Paiement en ligne) = Rembourser Paiement Compensation(Envoi de document via Expéditeur 1) = rien Plusieurs « Sagas » peuvent être définies pour le même exemple, mais aucune ne correspond exactement au processus « Réservation de voyage en ligne » : en particulier, Il n’y a pas de parallélisme possible

19 Le modèle des transactions flexibles (Transactions typées et alternatives)
Objectif : dépasser les limites des SAGA Structure de contrôle pauvre Principe de tout ou rien maintenu Transaction flexible Tolérer la défaillance de certaines sous-transactions en revenant à un état amont cohérent par compensation, Puis en exécutant un chemin alternatif Repose sur : le typage des sous-transactions (compensable, pivot et rejouable) et des règles de bonne structuration : Après une activité pivot plusieurs chemin alternatifs sont possibles: ces chemins sont ordonnés, la dernière alternative doit être sûre de terminer (constituée uniquement de transactions rejouables) Les transactions entre deux activités pivots doivent être compensables

20 Types d’activités (Par la suite on assimilera sous-transaction et activité dans les processus transactionnels)

21 Transaction flexible (Exemple)
EDD1 AR SBC RH RV EDD2 AR OA EDD3 AR EDD1 EDD2 EDD3 , et sont des alternatives préférées dans cet ordre Rejouable Pivot Compensable

22 Le modèle des transactions flexibles
Est mieux adapté aux transactions de longue durée en tolérant la défaillance de « sous-transactions » Permet aux concepteurs de spécifier une certaine forme de correction Cependant nécessite un effort additionnel pour structurer les transactions en respectant les règles de bonne structuration Introduit une structure plus développée que celle des SAGA mais moins expressive que celle des processus métiers (mais aussi moins expressive)

23 Correction définie par les concepteurs
Dans les modèles classiques, la correction est « syntaxique » (indépendante de l’application) Dans les modèles avancés, les concepteurs utilisant la connaissance de l’application pour structurer des transactions correctes (Sagas, transactions flexibles) La notion de correction dépend de l’application (Correction « sémantique ») (Voir les Etat de Terminaison Acceptés des processus transactionnels)

24 Notion de processus transactionnels
Modèles transactionnels et processus métiers ont des objectifs assez proches La gestion d’un ensemble d’activités à la fois en concurrence (s’exécutant en parallèles) et en interaction (explicite ou implicite) On distingue entre deux approches : La mise en œuvre des modèles transactionnels avancés comme des workflows Considérer un processus comme une transaction distribuée où les activités sont les sous transactions

25 Un processus comme une transaction distribuée
Un processus transactionnel est un processus dont les activités exposent des propriétés transactionnelles: compensable, pivot, rejouable des états transactionnels: terminé, avorté, compensé des flots transactionnels de compensation, d’exécution alternative, d’annulation Exemple : en cas d’échec de l’activité A, annuler l’exécution de l’activité B On assimile un processus à une transaction distribuée et les activités à des sous-transactions

26 Exemple de processus transactionnel

27 Correction définie par le concepteur (Etats de Terminaison Acceptés)
La correction est définie par les états acceptables dans lesquelles les sous-transactions de la transaction distribuée peuvent terminer Plusieurs combinaisons d’états peuvent être acceptables Il y les états de terminaison avec « succès » et ceux en « échec »; dans un état acceptable avec succès, une ou plusieurs sous-transaction peuvent avoir échoué

28 Correction définie par le concepteur (Exemple)

29 Validation de processus transactionnel
But: garantir la fiabilité d’un processus transactionnel en assurant que toute instance se termine dans un état accepté Permettre aux concepteurs de spécifier le flot de contrôle des processus et l’ensemble des états de terminaison acceptés ({ETA}) À partir du flot de contrôle et de l’{ETA} générer les propriétés de validation que tout processus valide doit respecter La génération des propriétés se fait en deux étapes: calcul du flot transactionnel induit par l’{ETA} génération des propriétés de validation

30 Calcul du flot transactionnel induit par ETA
Un flot de contrôle peut engendrer plusieurs processus transactionnels qui partagent le même flot de contrôle ({ET} sans échecs) se distinguent par leurs flots transactionnels respectifs ({ET} avec échecs) Ainsi l’{ET} avec échecs (y compris celui défini dans {ETA}) induit le flot transactionnel du processus Principe du calcul du flot transactionnel induit par {ETA} : un état de terminaison avec échec garde la trace de l’échec produit et l’ensemble des mécanismes de recouvrement appliqué à la suite

31 Génération des propriétés de validation
Les propriétés de validation visent à assurer que tout processus valide respecte deux principes: Il accepte, au plus, les échecs acceptés par le flot transactionnel induit par ETA Il définit pour chaque échec accepté les même mécanismes de recouvrement que ceux définis dans le flot transactionnel induit par ETA

32 Exemple de processus transactionnel non valide
Processus non valide car il permet d’atteindre l’état : {SBC.terminé, RH.terminé, RV.échoué, PL.abandonné, ED1.abandonné, ED2.abandonné, ED3.abandonné} qui n’appartient pas à l’ETA

33 Exemple de processus transactionnel valide

34 Les patrons transactionnels
Un patron de workflow est une abstraction d’une classe d’interactions récurrente caractérisée par les dépendances d’activation entre les activités composantes La notion de patron de processus en général considère d’autres dépendances que les dépendances d’activation comme les dépendances transactionnelles => Idée de patron transactionnel

35 Les patrons transactionnels
Les dépendances transactionnelles : dépendances de compensation dépendances d’annulation dépendances d’alternative Chaque patron de workflow (pat) possède un flot transactionnel potentiel qui inclut tous les dépendances transactionnelles qui peuvent être définies selon pat

36 Les patrons transactionnels

37 Les patrons transactionnels
Un patron transactionnel dérivé d’un patron pat est une instance de pat qui est enrichie par des dépendances transactionnels incluses dans son flot transactionnel potentiel

38 Modéliser avec des patrons transactionnels.
Composition de patrons transactionnels Utiliser les patrons transactionnels comme briques de base pour spécifier des processus transactionnels Plusieurs modèles de processus peuvent être dérivés à partie du même flot de contrôle en fonction des flots transactionnels sélectionnés dans le flot transactionnel potentiel

39

40 Infrastructure pour la mise en oeuvre des processus transactionnels

41 L’interface X/Open XA L’interface XA est un standard pour interfacer un gestionnaire de ressource et un gestionnaire de transactions Un gestionnaire de transaction gère une ou plusieurs transactions pour le compte d’une application Une transaction peut exploiter des ressources gérées par plusieurs gestionnaires de ressources L’interface XA définit comment le gestionnaire de transactions et les gestionnaires des ressources interagissent ensemble pour exécuter le protocole 2PC qui permet une terminaison atomique des transactions

42 L’interface X/Open XA

43 Interopérabilité dans un contexte intra-entreprise : l’approche «CORBA»
Le module OTS (Object Transaction Service) de Corba met en œuvre le protocole 2PC Il est compatible avec l’interface XA

44 OTS Corba (1)

45 OTS Corba (2)

46 Le protocole de terminaison à deux phases

47 Interopérabilité dans un contexte métier inter-entreprise
Interopérabilité dans un contexte métier inter-entreprise. L’approche «Services Web » On ne peut plus utiliser simplement l’interface XA : besoin d’une interface Web XA est très spécifique au protocole 2PC ce qui est insuffisant dans le contexte des processus métiers (besoin des idées de compensation, alternative …) Généralisation de l’interface XA Gestion décentralisée (plusieurs gestionnaires transactionnels) Considérer des protocoles transactionnels plus sophistiqués que 2PC

48 Coordination « transactionnelle » des services Web
Deux niveaux : Les interactions d’activation et d’enregistrement, qui sont indépendantes du protocole de coordination (protocole transactionnel) Les interactions transactionnelles qui sont indépendantes des protocoles transactionnels mis en œuvre Distinction d’un niveau « Coordination » et d’un niveau « transaction » Deux approches concurrentes : WS-Coordination et WS-CF Qui présentent globalement les mêmes concepts : les entités de base sont les coordinateurs et les participants Tous les deux se basent sur la notion de contexte pour la corrélation des messages d’activation et d’enregistrement (proche du concept de contexte dans CORBA) Tous les messages SOAP échangés entre les participants incluent dans leurs entêtes les contextes de coordination appropriés

49 Coordination « transactionnelle » de services Web : le niveau coordinateur et le niveau protocole transactionnel

50 Coordination « transactionnelle » des services Web
WS-Coordination et WS-CF distinguent trois formes d’interactions entre un coordinateur et ses participants Activation: un participant demande à un coordinateur de créer un nouveau contexte de coordination Ceci se produit quand un participant initie une instance d’un type de coordination (transaction atomique par exemple)

51 Coordination « transactionnelle » des services Web
Enregistrement: un participant s’enregistre à un protocole de coordination : rôle qu’il va jouer au sein du protocole port sur lequel il va recevoir les messages de coordination Interaction: ceci correspond aux messages de coordination spécifique à un protocole transactionnel particulier

52 Scénario d’interaction avec WS-Coordination

53 Coordination « transactionnelle » des services Web
Dans le contexte des services Web, WS-Transaction et WS-TXM deux propositions bâties respectivement sur WS-Coordination et WS-CF définissent des protocoles transactionnels Ils définissent des variantes des modèles transactionnels avancés

54 Coordination « transactionnelle » des services Web
WS-Transaction hérite de WS-Coordination la distinction entre << Protocole de Coordination >> et << Type de Coordination >> Un protocole de coordination est un ensemble de règles génériques contrôlant les conversations entre un coordinateur et ses participants 2PC est un exemple de protocole de coordination

55 Coordination « transactionnelle » des services Web
Un type de coordination comprend un ensemble de protocoles de coordination logiquement liés les uns aux autres Par exemple une transaction atomique est un type de protocole qui regroupe le protocole 2PC et le protocole de notification du résultat Une instance d’un type de coordination peut impliquer l’exécution de plusieurs instances d’un même protocole ou de plusieurs protocoles

56 Coordination « transactionnelle » des services Web
WS-Transaction distingue deux types de protocoles: Les transactions atomiques: WS-Atomic Transaction Les activités métiers: WS-Business Activity

57 Exemple de protocole Web ad-hoc : le protocole «Tentative Hold»
Principes de base : La réservation (du coté demandeur et du côté fournisseur) est non contraignante et sans blocage des ressources (« j’envisage d’utiliser la ressource … mais je ne me décide pas maintenant ») Permet une forme de conscience de groupe entre les fournisseurs et les demandeurs sur le niveau de concurrence d’accès aux ressources Mais n’est pas vraiment un protocole pour maintenir la cohérence : doit être combiné à un protocole transactionnel (de WS-Transaction par exemple) pour réserver effectivement des ressources

58 Scénario d’utilisation du protocole « Tentative hold »
Exemple de l’organisation d’un voyage en ligne : Plusieurs demandes de réservation de vol et d’hôtels pourraient être autorisées (l’agence pourrait évaluer les différentes alternatives) Mais c’est le premier qui valide sa demande ferme (par exemple en payant) qui gagne Lorsque l’agence modifie un choix non validé, elle en informe l’hôtel ou la compagnie aérienne, qui en informe elle-même les concurrents qui peuvent réagir …

59 Conclusion Les idées de « processus » et de « transaction » sont intimement liées Par rapport aux transactions classiques, il est nécessaire de « programmer » la logique transactionnelle des processus Il existe des propositions dans le cadre des services Web, mais peu mises en pratique Certainement un des facteurs les plus bloquant pour la mises en œuvre des processus interentreprises

60 Références [ALO 96] ALONSO G., AGRAWAL D., ABBADI A. E., KAMATH M., GÜNTHÖR R., MOHAN C., « Advanced Transaction Models in Workflow Contexts », Proceedings of the Twelfth International Conference on Data Engineering, Nouvelle Orléans, Etats-Unis, IEEE Computer Society, p , 1996 [ALO 05] ALONSO G., « Transactional Business Processes », Process-Aware Information Systems book, Springer-Verlag, Heidelberg, 2005. [ARJ 06] ARJUNA, FUJITSU, IONA, ORACLE, SUN, Web Services Composite Application Framework (WS-CAF), [BHI 05a] BHIRI S., Approche transactionnelle pour assurer des compositions fiables de services Web, thèse, Université Henri Poincaré - Nancy 1, LORIA, 16 mai 2005. [BHI 05b] BHIRI S., PERRIN O., GODART C., « Ensuring required failure atomicity of composite Web services », Proceedings of the 14th international conference on World Wide Web, WWW 2005, Chiba, Japon, ACM, mai 2005. [ELM 90] ELMAGARMID A., LEU Y., LITWIN W., RUSINKIEWICZ M., « A multidatabase transaction model for InterBase », Proceedings of the sixteenth international conference on Very large databases, Morgan Kaufmann Publishers, San Francisco, 1990. [GAR 87] GARCIA-MOLINA H., SALEM K., « Sagas », Proceedings of the ACM Special Interest Group on Management of Data 1987 Annual Conference, San Francisco, Californie, ACM Press, mai 1987. [GAR 91] GARCIA-MOLINA H., GAWLICK D., KLEIN J., KLEISSNER K., SALEM K., « Modeling Long-Running Activities as Nested Sagas », IEEE Data Eng. Bull., vol. 14, n° 1, p , 1991.

61 Références [GRA 78] GRAY J., « Notes on Data Base Operating Systems », Advanced Course : Operating Systems, Springer-Verlag, Londres, p , 1978. [GRA 93] GRAY J., REUTER A., Transaction Processing : Concepts and Techniques, Morgan Kaufmann, San Francisco, 1993. [LEY 95] LEYMANN F., « Supporting Business Transactions Via Partial Backward Recovery In Workflow Management Systems », btw, p , 1995. [OAS 07a] OASIS, Web Services Atomic Transaction (WS-AT) Version 1.1, docs.oasis-open- org/ws-tx/wstx-wsat-1.1-spec/wstx-wsat-1.1-spec.html, 2007. [OAS 07b] OASIS, Web Services Business Activity (WS-BA) Version 1.1, docs.oasis-open- org/ws-tx/wstx-wsba-1.1-spec/wstx-wsba-1.1-spec.html, 2007. [OAS 07c] OASIS, Web Services Coordination (WS-Coordination) Version 1.1, docs.oasisopen. org/ws-tx/wstx-wscoor-1.1-spec-os/wstx-wscoor-1.1-spec-os.html, 2007. [OAS 07d] OASIS, Web Services Transaction (WS-TX) Version 1.1, committees/tc_home.php ?wg_abbrev=ws-tx, 2007. [OG 94] OG, OPEN GROUP, Distributed Transaction Specifications : the XA interface, rapport, [OMG 07] OMG, OBJECT MANAGEMENT GROUP, CORBA Transaction Service, [SHE 93] SHETH A. P., RUSINKIEWICZ M., « On Transactional Workflows », Data Engineering Bulletin, vol. 16, n° 2, p , 1993. [W3C 01] W3C, Tentative Hold Protocol,


Télécharger ppt "Les processus métiers : concepts, modèles et systèmes"

Présentations similaires


Annonces Google