1 / 61

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

Les processus métiers : concepts, modèles et systèmes. Claude Godart Université de lorraine. Esstin Claude.godart@univ-lorraine.loria.fr. Organisation du cours. Introduction Concepts et notations Modélisation des processus Analyse qualitative des processus

trish
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Les processus métiers :concepts, modèles et systèmes Claude Godart Université de lorraine. Esstin Claude.godart@univ-lorraine.loria.fr

  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 Claude.godart@univ-lorraine.loria.fr

  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 ACIDLe 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. P X Rien P OK NO NO NO OK OK X Mise en oeuvre du modèle ACID Compatibilité entre verrous

  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 EDD3 OA AR EDD2 EDD1 EDD3 , et sont des alternatives préférées dans cet ordre Compensable Pivot Rejouable

  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. Infrastructure pour la mise en oeuvre des processus transactionnels

  40. 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

  41. L’interface X/Open XA

  42. 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

  43. OTS Corba (1)

  44. OTS Corba (2)

  45. Le protocole de terminaison à deux phases

  46. 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

  47. 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

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

  49. 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)

More Related