Upload
mmchaal
View
677
Download
2
Embed Size (px)
DESCRIPTION
Approche dirigée par les modèles pour la génération d’une chorégraphie distribuée à partir d’un processus d’orchestration BPMN
Citation preview
1
Contexte
• Busines Process (BP) – Ensemble de séquences de taches produisant une valeur ajoutée
• Workflow – Séquence possible de taches (A→B→C)
• Tâche – Elaboration d’un cahier des charges, réalisation des tests,
annulation d’une commande
2 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Business Process Management
• Modélisation, exécution, optimisation des Business Process
• Comment exécuter ces Business Process (BP) ?
3 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution existante
• Approche centralisée avec moteur d’exécution
4 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution existante
• Approche centralisée avec moteur d’exécution
• Architecture orientée service (SOA)
• Orchestration synchrone
5 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution existante
• Approche centralisée avec moteur d’exécution
• Architecture orientée service (SOA)
• Orchestration synchrone
6
1 fois
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution existante
• Approche centralisée avec moteur d’exécution
• Architecture orientée service (SOA)
• Orchestration synchrone
7
2 fois
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution existante
• Approche centralisée avec moteur d’exécution
• Architecture orientée service (SOA)
• Orchestration synchrone
8
3 fois
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution existante
• Approche centralisée avec moteur d’exécution
• Architecture orientée service (SOA)
• Orchestration synchrone
9
4 fois
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Orchestration SOA - Faiblesses
Trafic inutile:
Information transitant inutilement par le moteur d’exécution
Single point of failure: Moteur d’exécution en panne =
Aspect central du moteur d’exécution et échanges synchrones
Scalabilty: limitation des performances globales
(goulot d’étranglement)
10 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Problème
Comment est-il possible d’exécuter un Business Process dans une architecture
distribuée asynchrone ?
11 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Démarche
• Concevoir une architecture distribuée avec échange de messages asynchrone
• Imaginer l’exécution d’un Business Process dans une telle architecture
• Trouver une méthode de transformation d’un Business Process en code qui s’exécute tel qu’imaginé précédemment
12 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution: ED-BPM
• Approche décentralisée
• Architecture Orientée Evénement (EDA)
– Evènement
– Complex Event Processor
• Chorégraphie asynchrone
13 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution: ED-BPM
• Approche décentralisée
• Architecture Orientée Evénement (EDA)
– Evènement
– Complex Event Processor
• Chorégraphie asynchrone
14
Pub
1 fois
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution: ED-BPM
• Approche décentralisée
• Architecture Orientée Evénement (EDA)
– Evènement
– Complex Event Processor
• Chorégraphie asynchrone
15
PubSub
1 fois
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution: ED-BPM
• Approche décentralisée
• Architecture Orientée Evénement (EDA)
– Evènement
– Complex Event Processor
• Chorégraphie asynchrone
16
PubSub
1 fois
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution: ED-BPM
• Approche décentralisée
• Architecture Orientée Evénement (EDA)
– Evènement
– Complex Event Processor
• Chorégraphie asynchrone
17
PubSub
1 fois
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Solution: ED-BPM
• Approche décentralisée
• Architecture Orientée Evénement (EDA)
– Evènement
– Complex Event Processor
• Chorégraphie asynchrone
18
BPM + SOA + EDA
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Approche dirigée par les modèles
Découpage du modèle en paires
Classification : types de relation Tâche ↔ Évènement Tâche ↔ Tâche Tâche ↔ Gateway
19
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
BPMN
Approche dirigée par les modèles
Découpage du modèle en paires
Classification : types de relation Tâche ↔ Évènement Tâche ↔ Tâche Tâche ↔ Gateway
20 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
ED-BPM: Avantages et Inconvénients
• Avantages :
– Solutions aux problèmes de l’orchestration SOA
– Découplage entre producteur et consommateur d’évènement
• Inconvénients:
– Nécessité d’identifier de façon unique une instance d’évènement
– Vue globale, monitoring et diagnostic de l’exécution
21 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Implémentation: Architecture ED-BPM
22 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Implémentation: Prototype d’exécution de BP
Phase d’implémentation
• Implémentation des évènements
• Implémentation des taches et de leurs agents
• Décomposition du Gateway en règles métiers
Phase de configuration
• HornetQ Server en mode Standalone
• Déploiements des Web Services (Serveur Tomcat)
• Lancer les process de chaque tâche
23 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Pour la génération d’une chorégraphie distribuée
MDA: Model Driven Architecture
• Méta-model BPMN 2.0
• Modèle de Business Process
Acceleo : Model to Text
• Configuration du projet Acceleo
• Etude du Méta-modèle EMF
• Phases de génération de code
24 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Génération de code
• 1ière phase de génération : « generateStartEvent.mt » – Génération des fichiers d’initialisation de l’exécution
• 2ième phase de génération : « generateTask.mt » – Génération des tâches distribuées dans l’ED-BPM
• 3ième phase de génération de code : « generateGateway.mt » – Génération des règles métiers dans le CEP
• 4ième phase de génération de code : « generateEndEvent.mt» – Génération des fichiers de terminaison d’exécution
• 5ième phase de génération de code : « generateSequenceFlow.mt » – Générations du code des agents
25 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Conclusion
• Orchestration centralisée Vs Chorégraphie distribuée
• Transformation du Business Process
• Prototype implémenté et exécuté avec succès
• Automatisation de la transformation (M2T)
26
Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
Perspectives
• Ajouts d’autres types d’éléments du standard BPMN
• Ajouts d’autres types d’évènements (complexes)
• Évolution du M2T
• Analyse des performances à grande échelle
27 Contexte - Solution existante - Problème - Solution - Implémentation - Génération - Conclusion
28
Annexes
Test du prototype
30
Formalisation du problème de transformation • Soit notre modèle de Business Process 𝑃1 = 𝑃 𝐸1, 𝑇1, 𝐿1 , 𝑃1 ∈ ℘ :
𝑃 𝐸1, 𝑇1, 𝐿1 = 𝑃 𝑒1, 𝑒2, 𝑒3 , 𝑡1, 𝑡2, 𝑡3, 𝑡4 , {𝑙1, 𝑙2, 𝑙3, 𝑙4, 𝑙5, 𝑙6} Où 𝑙1= 𝑒1 ≺ 𝑡1, 𝑙2 = 𝑡1 ≺ 𝑡2 ,𝑙3 = 𝑡2 ≺ 𝑡3, 𝑙4 = 𝑡3 ≺ 𝑒2, 𝑙5 = 𝑡2 ≺ 𝑡4, 𝑙6 = 𝑡4 ≺ 𝑒3
• Soit 𝜔𝑃𝑘 = {𝑊1𝑃𝑘 , 𝑊2
𝑃𝑘 , … , 𝑊𝑚𝑃𝑘} l’ensemble de Workflows d’un Business Process 𝑃𝑘 ∈ ℘ ∶
𝑊1𝑃1 = ( 𝑒𝑠𝑡𝑎𝑟𝑡 , 𝑒𝑒𝑛𝑑 , 𝑡1, 𝑡2, 𝑡3 , 𝑙1, 𝑙2, 𝑙3, 𝑙4 ) et 𝑊2
𝑃1 = ( 𝑒𝑠𝑡𝑎𝑟𝑡 , 𝑒𝑒𝑛𝑑 , 𝑡1, 𝑡2, 𝑡4 , 𝑙1, 𝑙2, 𝑙5, 𝑙6 )
• Soit 𝑃𝑥𝑜𝑟 ∈ 𝑃 : 𝑊1𝑃𝑥𝑜𝑟 = 𝑃( 𝑡1, 𝑡2 , 𝑙𝑎), 𝑊2
𝑃𝑥𝑜𝑟 = 𝑃( 𝑡1, 𝑡3 , 𝑙𝑏) (Gateway)
Tâche ↔ Tâche Tâche ↔ Évènement Tâche ↔ Gateway
𝑙𝑖𝑝𝑢𝑏(𝑗)
= 𝑡𝑖 ⋯ 𝑒𝑖𝑝𝑢𝑏 𝑗 et
𝑙𝑖𝑠𝑢𝑏(𝑗)= 𝑡𝑗 ⋯ 𝑒𝑖𝑠𝑢𝑏(𝑗)
(∀ 𝑗 > 𝑖 𝑒𝑡 ∀𝑙 𝑖 ∈ 𝑃𝑘)
𝑙1𝑝𝑢𝑏= [𝐶𝐸𝑃] ⋯ 𝑒𝑠𝑡𝑎𝑟𝑡 et
𝑙1𝑠𝑢𝑏= 𝑡1 ⋯ 𝑒𝑠𝑡𝑎𝑟𝑡
𝑙𝑁𝑝𝑢𝑏
= 𝑡𝑁 ⋯ 𝑒𝑒𝑛𝑑 et
𝑙𝑁𝑠𝑢𝑏= [𝐶𝐸𝑃] ⋯ 𝑒𝑒𝑛𝑑
𝑙1𝑝𝑢𝑏= 𝑡1 ⋯ 𝑒𝑥𝑜𝑟 et
𝑙1𝑠𝑢𝑏= 𝐶𝐸𝑃 ⋯ 𝑒𝑥𝑜𝑟
𝑙𝑎𝑝𝑢𝑏= [𝐶𝐸𝑃] ⋯ 𝑒𝑎 et
𝑙𝑎𝑠𝑢𝑏= 𝑡2 ⋯ 𝑒𝑎
𝑙𝑏𝑝𝑢𝑏= [𝐶𝐸𝑃] ⋯ 𝑒𝑏 et
𝑙𝑏𝑠𝑢𝑏= 𝑡3 ⋯ 𝑒𝑏
31