BPMN: la chorégraphie et la conversation
À côté du processus et de la collaboration, BPMN 2.0 définit deux autres types de diagramme. La chorégraphie ordonne les interactions entre participants sans montrer le travail interne d'aucun d'eux. La conversation regroupe des flux de message qui partagent une corrélation. Ce chapitre les documente et dit franchement pourquoi un modélisateur les rencontre rarement.
Le chapitre sur les pools a laissé deux diagrammes de côté. Le standard les définit à part entière, les sous-classes de conformité que les outils revendiquent d’ordinaire n’en contiennent aucun élément et la littérature de référence les écarte.
Les figures de ce chapitre sont des collaborations, et chacune se lit seule. Le moteur de rendu de cette référence, la bibliothèque libre bpmn-js, dessine les processus et les collaborations, et ignore silencieusement les tâches de chorégraphie comme les nœuds de conversation. Chaque symbole propre à ces deux diagrammes est donc décrit en toutes lettres, et les figures montrent la collaboration équivalente, celle que le standard place à côté de nombre de ses propres exemples. Qui veut voir les formes les trouvera dans la spécification publique, aux figures 11.2, 11.8, 11.10, 11.15, 11.17 et 11.21 pour la chorégraphie, aux figures 9.16, 9.18 et 9.27 pour la conversation.
La chorégraphie
Une chorégraphie est un type de processus qui diffère du processus BPMN ordinaire par son objet. Un processus d’orchestration définit l’enchaînement des activités d’une organisation. Une chorégraphie formalise la façon dont des participants coordonnent leurs interactions, en portant l’attention sur les messages échangés entre eux plutôt que sur le travail accompli à l’intérieur de chacun1. Le standard propose une autre lecture: un contrat commercial entre deux organisations ou davantage, une définition du comportement attendu de chacune d’elles1.
La chorégraphie emprunte au diagramme de processus ses activités ordonnées par des flux de séquence. L’unité atomique y est une interaction, un échange de messages entre participants, ce que la littérature des services web appelle un message exchange pattern (MEP). Le plus simple porte un message unique, un autre une requête et sa réponse, et le standard en admet de plus complexes, portant par exemple des messages d’erreur1.
Un processus vit dans un pool et relève d’un participant unique. Une chorégraphie n’a pas de pool: chacune de ses étapes engage deux participants ou davantage, donc elle se dessine en dehors des pools, entre eux2.
La question que pose une chorégraphie
Le standard formule la question à se poser à chaque étape de la conception: de quelle information les participants disposent-ils? Chacun ne connaît l’état de la chorégraphie que par le comportement observable des autres, c’est-à-dire par les messages envoyés et reçus. À deux participants la réponse est immédiate, chacun sachant à qui revient le message suivant. Au-delà, le modélisateur ordonne les activités de façon que chacun sache quand vient son tour2.
Une collaboration ne le dit pas. Le standard relève que les modèles interconnectés de collaboration sont vulnérables aux erreurs de séquencement, la logique des échanges étant considérée un partenaire à la fois, ce qui conduit à des interblocages difficiles à reconnaître sur le diagramme2. La chorégraphie met la séquence complète des échanges sur un seul diagramme.
La tâche de chorégraphie (choreography task)
Une tâche de chorégraphie est l’activité atomique d’une chorégraphie. Elle représente une interaction, soit un ou deux échanges de message entre deux participants3.
Elle se dessine en rectangle à coins arrondis d’un trait unique, la même forme qu’une activité BPMN. Elle s’en distingue par son découpage en bandes: deux bandes de participant au moins et une bande centrale portant le nom de la tâche3. Les noms des participants s’inscrivent dans leurs bandes.
La tâche hérite de l’activité de chorégraphie (choreography activity), la classe abstraite
dont relèvent aussi les deux éléments suivants: participantRefs avec deux participants au minimum,
initiatingParticipantRef qui désigne celui qui déclenche, loopType pour la répétition et
correlationKeys pour la corrélation des flux de message4. La tâche référence
enfin un messageFlowRef au moins, les flux de message qui portent l’interaction sans être dessinés
sur la forme3.
La bande du participant initiateur (participant band)
La bande du participant qui n’initie pas l’interaction doit être ombrée d’un remplissage clair3. La bande restée blanche désigne donc celui qui envoie le premier message.
Les messages attachés
Le message envoyé par l’un des participants, ou par les deux, peut s’afficher. L’icône d’enveloppe se relie par un trait au participant qui l’émet. L’icône du message initiateur reste vide, celle du message de retour porte un remplissage clair, la même convention que les bandes3.
Ces messages se rattachent à une tâche de chorégraphie et à une chorégraphie d’appel qui référence une tâche de chorégraphie globale. Une sous-chorégraphie et une chorégraphie d’appel qui référence une autre chorégraphie ne les admettent pas3.
Les marqueurs de répétition
La tâche de chorégraphie reprend les marqueurs de l’activité d’orchestration, un seul à la fois3:
- la boucle standard, un trait fléché qui s’enroule sur lui-même, avec
loopTypeà Standard; - les instances multiples parallèles, trois traits verticaux, avec
loopTypeà MultiInstanceParallel; - les instances multiples séquentielles, trois traits horizontaux, avec
loopTypeà MultiInstanceSequential.
Le marqueur se centre au bas de la bande du nom3.
Le participant à instances multiples
Un participant peut lui-même compter plusieurs instances, plusieurs transporteurs possibles selon la destination par exemple. Sa bande reçoit alors le marqueur d’instances multiples, trois traits verticaux centrés au bas de la bande de ce participant, et s’élargit pour contenir le nom et le marqueur3. Deux marqueurs identiques disent donc deux choses différentes selon la bande qui les porte.
La sous-chorégraphie (sub-choreography)
Une sous-chorégraphie est une activité composée: son détail est lui-même une chorégraphie. Elle engage deux participants ou davantage et se dessine comme la tâche, en bandes de participant plus une bande de nom5.
Réduite, elle cache son contenu et porte le marqueur en petit carré frappé d’un signe plus, centré au bas de la bande du nom. Développée, elle montre la chorégraphie qu’elle contient5. Elle admet les mêmes trois marqueurs de répétition que la tâche, et le marqueur d’instances multiples sur une bande de participant5.
Au-delà de deux participants, une bande s’ajoute pour chacun. Toute bande au-delà des deux premières est facultative à l’affichage, et chaque bande ajoutée se place alternativement en haut et en bas de la forme. L’ordre et la position des bandes reviennent au modélisateur ou à son outil5.
La chorégraphie d’appel (call choreography)
Une chorégraphie d’appel marque l’endroit où une chorégraphie globale ou une tâche de chorégraphie globale est employée. L’élément appelé devient partie de la définition de la chorégraphie parente6.
Sa forme suit sa cible, et la bordure porte toujours un trait épais6:
- appelant une tâche de chorégraphie globale, elle prend la forme d’une tâche de chorégraphie;
- appelant une chorégraphie dont le détail reste caché, elle prend la forme d’une sous-chorégraphie réduite;
- appelant une chorégraphie dont le détail est montré, elle prend celle d’une sous-chorégraphie développée.
C’est le procédé de l’activité d’appel du diagramme de processus, transposé aux interactions.
La tâche de chorégraphie globale (global choreography task)
Une tâche de chorégraphie globale est une définition d’interaction réutilisable et atomique, appelable depuis n’importe quelle chorégraphie. Le standard la décrit comme une chorégraphie vide: elle ne contient aucun élément de flux et se réduit à un jeu de participants et de flux de message dont l’un est désigné comme initiateur7.
Le séquencement des activités
Les flux de séquence s’emploient dans une chorégraphie comme dans un processus. Ils relient les événements, les passerelles et les activités de chorégraphie8.
L’ordre, en revanche, obéit à une contrainte propre. L’initiateur d’une activité de chorégraphie doit avoir participé à l’activité précédente, comme initiateur ou comme destinataire. La première activité de la chorégraphie échappe à la contrainte9.
Une séquence qui viole la règle reste dessinable, sans être exécutoire: un participant devrait envoyer un message après un échange auquel il n’a pas pris part, sans moyen d’en connaître le moment9.
Une tâche de chorégraphie à deux messages se reflète d’ordinaire en trois tâches dans les processus
des participants, l’initiateur employant une activité unique pour l’envoi et la réception, souvent
une tâche de
service9. La
première figure de ce chapitre la montre déjà. L’attribut isImmediate d’un flux de séquence
interdit ou autorise, entre les deux éléments qu’il relie, des messages absents du modèle, et
l’attribut isClosed de la chorégraphie l’emporte sur lui8.
Les données et les conditions
Une chorégraphie n’a ni mécanisme de contrôle central, ni donnée centrale. Les objets de données et les magasins de données s’emploient exclusivement dans les processus, qui disposent d’un tel centre. Une donnée ne peut servir dans une expression que si elle a circulé dans un message de la chorégraphie10.
Cette contrainte unique explique la plupart des restrictions qui suivent.
Les événements de chorégraphie
Les événements s’emploient largement comme dans un processus, avec une exclusion: un déclencheur visible d’un seul participant n’a pas sa place dans une chorégraphie.
En début, l’événement neutre sert de repère graphique, l’arrivée du premier message étant le déclencheur réel. La minuterie est admise si les participants s’accordent sur l’heure approximative, la condition parce que les autres participants l’apprennent par l’interaction qui suit, le signal parce que tous doivent pouvoir le voir, le multiple à condition de ne combiner que des signaux ou des minuteries. Le message, l’escalade, l’erreur et la compensation sont refusés11.
En intermédiaire, l’événement de message au bord d’une tâche de chorégraphie est admis et s’attache à la bande du participant qui reçoit le message, l’autre participant de la tâche en étant l’émetteur12. Dans le flux normal, le même événement est refusé, faute de pouvoir dire qui envoie et qui reçoit. La minuterie est admise dans le flux normal, au bord et dans une passerelle événementielle, avec la réserve que le temps n’y est jamais exact: il se règle sur la dernière activité visible. L’annulation et la compensation sont admises au bord, en capture, sur la bande du participant concerné. La condition, le lien et le multiple en capture sont admis. Le signal en capture l’est aussi, au bord comme dans le flux normal, avec une réserve: un signal au bord ne doit jamais s’attacher à une bande de participant, ce qui laisserait croire que ce participant en est le destinataire désigné alors qu’un signal n’en a aucun. L’escalade est refusée dans le flux normal comme au bord, l’erreur au bord, le tableau ne prévoyant pas d’erreur dans le flux normal. L’événement neutre y est enfin admis dans le flux normal, où il documente qu’un point est atteint, et refusé au bord, faute pour les participants de savoir quand l’activité doit être interrompue.
En fin, seuls l’événement neutre et la terminaison sont admis. Le standard note que la terminaison ne termine rien, faute de système de contrôle: les participants comprennent qu’aucun message ne suivra, et le procédé ne fonctionne vraiment qu’à deux participants, un troisième absent de la dernière tâche n’ayant aucun moyen de savoir que la fin est atteinte13.
Les passerelles de chorégraphie
Les passerelles créent des chemins alternatifs et parallèles, dans une chorégraphie comme dans un processus. L’absence de donnée centrale et d’évaluation centrale y ajoute des contraintes portant sur les participants placés avant et après la passerelle14.
La passerelle exclusive s’emploie, mais une chorégraphie qui décrit ses conditions en langage naturel est sous-spécifiée et non exécutoire. Une chorégraphie exécutoire demande des expressions de condition formelles, dont la donnée a circulé dans un message antérieur à la passerelle, que tous les participants affectés ont envoyé ou reçu, et dont tous ont la même compréhension. Les initiateurs des activités qui suivent la passerelle sont ceux qui décident, puisque la décision se manifeste par le message qui suit15. La passerelle inclusive obéit aux mêmes règles, son comportement de synchronisation ne pouvant être imposé que par un seul participant16.
La passerelle événementielle sert quand la donnée de la décision n’est visible que du processus interne d’un participant: les autres n’apprennent le résultat que par le message qui arrive. À droite de la passerelle, ou bien les émetteurs sont les mêmes, ou bien les destinataires le sont. Les événements intermédiaires de message y sont interdits, la minuterie et le signal admis, et aucun autre type17.
La passerelle parallèle ne porte aucune condition, donc elle s’emploie telle quelle. Les émetteurs des activités qui suivent doivent avoir participé à toutes celles qui précèdent immédiatement18.
La passerelle complexe trouve ici un emploi que le standard illustre en détail: l’appel d’offres, où une demande part vers plusieurs prestataires qui répondent à des moments différents et où l’évaluation démarre à un quorum de réponses19. Enchaîner des passerelles sans activité intermédiaire reste possible, sous réserve des contraintes sur les participants placés de part et d’autre de la chaîne20.
La chorégraphie dans une collaboration
Une chorégraphie peut s’insérer dans un diagramme de collaboration, entre les pools. La collaboration précise alors comment les participants et les flux de message de la chorégraphie correspondent aux siens, par des associations de participant et des associations de flux de message21.
La correspondance rattache les bandes de participant aux pools, donc les noms inscrits dans les bandes deviennent facultatifs, les pools les portant déjà21. Le standard donne aussi le mécanisme de déduction: deux participants partageant la même entité partenaire peuvent être présumés se correspondre21.
Les pools et les couloirs, eux, ne s’emploient pas dans une chorégraphie. Le pool appartient à la collaboration, et le couloir est une sous-partition du pool, alors qu’une chorégraphie se place entre les pools. Les participants, en revanche, servent des deux côtés, dans les pools d’une collaboration comme dans les bandes d’une chorégraphie22.
La conversation
Le diagramme de conversation est un usage particulier du diagramme de collaboration, dont il garde toutes les caractéristiques. Un processus peut apparaître dans les pools d’un diagramme de conversation, pour montrer comment les conversations et les activités se rejoignent. Deux éléments graphiques lui sont propres: les nœuds de conversation et le lien de conversation23.
Une conversation est un regroupement logique d’échanges de messages qui peuvent partager une corrélation. Le lien logique porte le plus souvent sur un objet métier, une commande, une expédition ou une facture, si bien que la conversation s’associe à un jeu de paires nom-valeur, une clé de corrélation telle que l’identifiant de commande, inscrite dans les messages. Un message peut ainsi être acheminé vers l’instance de processus qui doit le traiter23.
Le standard le dit: développer un nœud de conversation en ses flux de message donne un diagramme qui ressemble à une simple collaboration23. L’intérêt du diagramme est l’inverse: son exemple de logistique montre treize conversations distinctes entre des participants d’un même domaine, ce qu’il appelle une perspective à vol d’oiseau23.
Une conversation peut engager plus de deux participants. La multiplicité y signifie un ou plusieurs, jamais zéro ou plusieurs. Et le comportement des conversations se modélise par des chorégraphies séparées, qui détaillent les séquences d’échange23.
Le standard nomme enfin trois dépendances entre conversations: le recouvrement (overlap), quand deux conversations partagent certains échanges sans partager les autres, la division (split), quand un échange engendre une conversation nouvelle et distincte, et la fusion (join), quand plusieurs conversations se réunissent en une seule et cessent23.
Le nœud de conversation (conversation node)
Le nœud de conversation est la classe abstraite dont dérivent les trois éléments qui peuvent composer la partie conversation d’un diagramme de collaboration: la conversation, la sous-conversation et la conversation d’appel24.
Ses attributs sont peu nombreux: name, participantRefs avec deux participants au minimum,
messageFlowRefs qui référence tous les flux de message regroupés et correlationKeys qui porte
les clés servant à ce regroupement24.
La conversation (conversation)
Une conversation est l’élément atomique du diagramme. Elle représente un ensemble de flux de message regroupés sur un concept ou sur une clé de corrélation, et elle engage deux participants ou davantage. Elle se dessine en hexagone d’un trait fin unique25.
La sous-conversation (sub-conversation)
Une sous-conversation est un nœud qui divise hiérarchiquement la collaboration parente. Elle se dessine en hexagone du même trait fin, avec le marqueur en petit carré frappé d’un signe plus, centré au bas de la forme, et peut s’ouvrir pour montrer son détail: des flux de message, des conversations et d’autres sous-conversations. Elle partage les participants de sa parente26. L’imbrication descend à un nombre quelconque de niveaux, et le signe plus signale aussi bien une sous-conversation qu’une conversation d’appel23.
La conversation d’appel (call conversation)
Une conversation d’appel marque l’endroit où une conversation globale ou une collaboration est employée. Sa forme suit sa cible et sa bordure porte un trait épais: la forme d’une conversation quand elle appelle une conversation globale, celle d’une sous-conversation quand elle appelle une collaboration. L’élément appelé ne peut être ni une chorégraphie ni une tâche de chorégraphie globale. Un jeu d’associations de participant relie les participants de l’élément appelé à ceux de la conversation parente27.
Une conversation globale (global conversation) est une collaboration restreinte, que le standard qualifie de collaboration vide: elle ne contient aucun nœud de conversation et se réduit à un jeu de participants, de flux de message et de clés de corrélation destinés à la réutilisation28.
Le lien de conversation (conversation link)
Le lien de conversation relie un nœud de conversation à un participant, donc à un pool. Il se dessine en double trait fin29.
Ses deux extrémités obéissent à une règle unique: un lien de conversation se raccorde à exactement un nœud de conversation, si bien que la source doit en être un dès que la cible n’en est pas un, et réciproquement29.
Le lien descend aussi vers l’intérieur d’un pool. Il peut atteindre les activités et les événements d’un processus, et le standard précise le sens d’un tel raccordement: un lien vers une activité qui n’est ni une tâche d’envoi ni une tâche de réception indique que cette activité enverra ou recevra les messages de la conversation à un certain niveau d’imbrication29. La contrainte symétrique vaut du côté des couloirs: quand un couloir représente une conversation, les éléments de flux qu’il contient et qui échangent des messages doivent le faire dans le cadre de cette conversation30.
L’association de conversation (conversation association)
L’association de conversation applique une conversation réutilisable aux flux de message d’une
collaboration ou d’une chorégraphie. Le cas visé est l’inclusion d’une chorégraphie entre les pools
d’une collaboration: les nœuds de conversation du diagramme intérieur doivent alors correspondre à
ceux du diagramme extérieur, ce que portent les attributs innerConversationNodeRef et
outerConversationNodeRef31.
La corrélation
La corrélation est le mécanisme qui affecte les messages à la bonne instance de processus. Elle se définit pour les flux de message qui appartiennent à la conversation32.
Le standard en donne les conditions d’emploi. Les données conceptuelles de la conversation sont connues et définies par les processus participants, sans que les systèmes de types soient identiques de part et d’autre: il suffit qu’elle soit connue conceptuellement, au besoin à un niveau métier très élevé. L’échange se fait par messages simples, sans convention supplémentaire. Il existe des tâches d’envoi et de réception qui acceptent ces données. Et la corrélation se définit par des champs de corrélation (correlation fields), un sous-ensemble de ces données conceptuelles: si la donnée conceptuelle est une commande, le champ de corrélation peut être son identifiant32.
La même clause porte le sens de l’attribut isClosed d’une collaboration, qui décide si des messages
absents du modèle peuvent circuler, et ajoute qu’une collaboration contenant une chorégraphie doit
lui donner la même valeur qu’à elle-même32.
Les classes de conformité
Le chapitre sur les niveaux de modélisation a posé les quatre types de conformité. Deux d’entre eux décident du sort de ces diagrammes.
La conformité de modélisation de chorégraphie est un type distinct, que le standard déclare mutuellement indépendant de la conformité de modélisation de processus: une implémentation qui revendique l’une n’a pas à prendre en charge l’autre33. La clause 11 du standard n’est exigée que pour cette conformité et pour la conformité complète1. Ses éléments sont énumérés à part: le message, la tâche de chorégraphie, la tâche de chorégraphie globale, la sous-chorégraphie dans ses deux vues, une sélection d’événements de début, intermédiaires et de fin, les passerelles, plus les pools et les flux de message pour la chorégraphie insérée dans une collaboration34. Une note de la clause sur les éléments de processus dit l’autre versant: les implémentations ne sont pas censées prendre en charge les éléments de chorégraphie tels que la tâche de chorégraphie et la sous-chorégraphie35.
La conversation suit l’autre chemin. Les diagrammes de conversation figurent parmi les quatre familles de paquets exigées par la classe pleine de la conformité de modélisation de processus, celle dont les trois sous-classes sont des alternatives, avec les pools, les conversations et les liens de conversation36. Le vocabulaire y est toutefois restreint: l’inventaire retient les conversations limitées au regroupement de flux de message et à l’association des corrélations35.
Reste la question pratique. Ni la sous-classe descriptive ni la sous-classe analytique ne contient un seul élément de chorégraphie ou de conversation37. Un outil qui revendique l’un ou l’autre de ces deux niveaux, ceux que la quasi-totalité des modélisateurs métier emploient, n’en offre donc aucun.
Deux diagrammes rarement rencontrés
Les classes de conformité les excluent du périmètre courant.
La littérature de référence les écarte explicitement. Silver ouvre son livre en prévenant que le lecteur n’y trouvera rien sur la chorégraphie ni sur la conversation, ayant vu jusque-là peu d’intérêt pour ces ajouts au standard, tournés vers les échanges interentreprises38. Dumas et ses coauteurs les mentionnent dans leurs lectures complémentaires, en trois phrases qui disent d’où ils viennent, la notation Let’s Dance de modélisation des interactions de services web39. Sinur, Misiak et Biernatowski les qualifient de deux types de diagramme supplémentaires peu répandus40.
La prise en charge par les outils suit. Nous n’avons aucune mesure de cette couverture. Notre seule observation porte sur un outil, bpmn-js: il importe un fichier de chorégraphie ou de conversation sans avertissement, puis n’en dessine que les pools.
Un modèle destiné à être lu, validé et échangé gagne à rester dans le vocabulaire du processus et de la collaboration. La chorégraphie garde sa valeur là où le standard la place, la négociation d’un contrat d’échange entre partenaires.
Au-delà des quatre diagrammes
Le chapitre suivant quitte l’OMG pour la Suisse et lit BPMN à travers le standard eCH, qui fixe les conventions de modélisation de l’administration publique.
Le chapitre suivant
BPMN: le standard eCH de l'administration publique suisse. Les trois standards eCH qui règlent la modélisation BPMN dans l'administration publique suisse: eCH-0140, eCH-0074 et eCH-0158, ses deux annexes et sa palette.
Notes et références
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.1 « General »: la chorégraphie comme type de processus distinct par son objet, l’attention portée à l’échange de messages entre participants plutôt qu’à l’orchestration du travail accompli en leur sein, la lecture en contrat commercial entre deux organisations ou davantage, la définition du comportement attendu entre participants interagissants, les activités ordonnées par des flux de séquence, l’interaction comme unité atomique et son autre nom de message exchange pattern (MEP), le MEP à message unique, celui à requête et réponse et les MEP plus complexes portant par exemple des messages d’erreur, la tâche de chorégraphie comme définition d’un MEP unique et la sous-chorégraphie pour la composition. La note d’ouverture de clause exige ce contenu pour la conformité de modélisation de chorégraphie et pour la conformité complète, sans l’exiger pour la conformité de modélisation de processus, la conformité d’exécution de processus ni la conformité d’exécution BPEL. ↩︎ ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.2 « Basic Choreography Concepts »: la chorégraphie placée en dehors des pools ou entre eux, chaque étape engageant deux participants ou davantage, la question de l’information dont disposent les participants, la connaissance limitée au comportement observable des autres, la simplicité du cas à deux participants et le soin demandé au-delà, ainsi que la vulnérabilité des collaborations interconnectées aux erreurs de séquencement et aux interblocages difficiles à reconnaître, illustrée par l’exemple logistique où deux messages inversés bloquent deux partenaires. ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.5.1 « Choreography Task »: la tâche comme activité atomique représentant une interaction d’un ou deux échanges de message entre deux participants, le rectangle à coins arrondis d’un trait unique, les deux bandes de participant au moins et la bande du nom, l’ombrage clair obligatoire sur la bande du participant qui n’initie pas, l’icône de message reliée à son émetteur avec le remplissage vide pour le message initiateur et clair pour le message de retour, la restriction des messages attachés à la tâche et à la chorégraphie d’appel référençant une tâche de chorégraphie globale, les trois marqueurs de répétition avec leurs valeurs de
loopTypeet leur centrage au bas de la bande du nom, le marqueur d’instances multiples du participant centré au bas de sa propre bande avec l’élargissement de celle-ci, ainsi que lemessageFlowRefde multiplicité [1..*] du tableau 11.2, non représenté graphiquement. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.5 « Choreography Activities », tableau 11.1: l’activité de chorégraphie comme point du flux où survient une interaction entre deux participants ou davantage, sa classe abstraite contenue dans une chorégraphie ou une sous-chorégraphie, ainsi que ses associations
participantRefs[2..*],initiatingParticipantRef,loopTypeetcorrelationKeys. ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.5.2 « Sub-Choreography »: l’activité composée dont le détail est une chorégraphie, les deux bandes de participant au moins et la bande du nom, la vue réduite et la vue développée, le marqueur en petit carré frappé d’un signe plus centré au bas de la bande du nom, l’ombrage clair de la bande du participant qui n’initie pas, le rectangle à coins arrondis d’un trait fin unique, l’ajout d’une bande par participant supplémentaire avec le caractère facultatif de toute bande au-delà des deux premières, l’ordre et la position laissés au modélisateur ou à l’outil, l’alternance haut et bas des bandes ajoutées, ainsi que les trois marqueurs de répétition et le marqueur d’instances multiples du participant. ↩︎ ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.5.3 « Call Choreography »: l’élément qui marque l’endroit où une chorégraphie globale ou une tâche de chorégraphie globale est employée et devient partie de la définition de la chorégraphie parente, la bordure à trait épais dans les trois cas, la forme de tâche de chorégraphie pour l’appel d’une tâche globale, la forme de sous-chorégraphie réduite ou développée pour l’appel d’une chorégraphie, ainsi que les associations
calledChoreographyRefetparticipantAssociationsdu tableau 11.4. ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.5.4 « Global Choreography Task »: la définition de tâche réutilisable et atomique appelable depuis n’importe quelle chorégraphie, l’attribut
initiatingParticipantRefdu tableau 11.5, la qualification de chorégraphie vide, l’interdiction de contenir des éléments de flux et la réduction à un jeu de participants et de flux de message destinés à la réutilisation. ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.4.1 « Sequence Flow »: les flux de séquence employés comme dans un processus pour ordonner les activités de chorégraphie, les seuls raccordements admis aux événements, aux passerelles et aux activités de chorégraphie, les flux conditionnels dont les données doivent être visibles de deux participants ou davantage pour avoir circulé dans un message antérieur, le flux par défaut, ainsi que les attributs
isClosedde la chorégraphie etisImmediatedu flux de séquence, avec la primauté du premier sur le second. ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.5.6 « The Sequencing of Activities »: les contraintes tenant à la visibilité limitée des participants, la règle voulant que l’initiateur d’une activité de chorégraphie ait participé à la précédente comme initiateur ou comme destinataire, la dispense accordée à la première activité, l’exemple de séquence valide et celui de séquence invalide où un participant ne saurait pas quand envoyer son message, ainsi que la tâche à deux messages reflétée par trois tâches de processus, l’initiateur employant une activité unique souvent appelée tâche de requête-réponse et pour laquelle une tâche de service convient. ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.3 « Data »: l’absence de mécanisme de contrôle central et de donnée centrale dans une chorégraphie, les objets de données et les référentiels employés exclusivement dans les processus parce qu’ils supposent un centre de contrôle, ainsi que la donnée admise dans les expressions à la seule condition d’avoir circulé dans un message de la chorégraphie. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.6.1 « Start Events », tableau 11.6: l’événement neutre admis comme repère graphique, la minuterie admise sous réserve d’un accord des participants sur l’heure approximative, la condition admise parce que les autres participants l’apprennent par l’interaction suivante, le signal admis parce que tous les participants doivent pouvoir le voir, le multiple admis pour les seuls signaux et minuteries, enfin le message, l’escalade, l’erreur et la compensation refusés. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.6.2 « Intermediate Events », tableau 11.7: l’événement neutre admis dans le flux normal comme simple documentation d’un point atteint, sans échange de message ni délai, et refusé au bord faute pour les participants de savoir quand l’activité devrait être interrompue; le message refusé dans le flux normal et dans une passerelle événementielle, admis au bord d’une tâche de chorégraphie et attaché à la bande du participant destinataire, l’émetteur étant l’autre participant de la tâche; la minuterie admise dans le flux normal, au bord et dans une passerelle événementielle, avec le temps établi par la dernière activité visible et connu des participants par approximation; l’annulation et la compensation admises au bord en capture sur la bande du participant concerné; la condition, le lien et le multiple en capture admis; le signal admis en capture dans le flux normal, au bord et dans une passerelle événementielle, avec l’interdiction expresse (MUST NOT) de l’attacher à une bande de participant, ce qui suggérerait que ce participant est un destinataire désigné du signal; l’escalade refusée dans le flux normal comme au bord; l’erreur refusée au bord, le tableau ne comportant pas de ligne pour l’erreur dans le flux normal. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.6.3 « End Events », tableau 11.8: l’événement neutre admis comme repère graphique de la fin d’un chemin, le message, l’erreur, l’escalade, l’annulation, la compensation, le signal et le multiple refusés faute de pouvoir désigner le participant qui les émet, ainsi que la terminaison admise avec la réserve qu’aucun système ne contrôle la chorégraphie, que les participants comprennent seulement qu’aucun message ne suivra et que le procédé ne fonctionne réellement qu’à deux participants. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.7 « Gateways »: les chemins alternatifs et parallèles requis dans une chorégraphie comme dans un processus d’orchestration, ainsi que les contraintes ajoutées par l’absence de mécanisme central de visibilité des données et d’évaluation centrale, présentées comme une extension des contraintes de séquencement. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.7.1 « Exclusive Gateway »: la description des conditions en langage naturel produisant une chorégraphie sous-spécifiée et non applicable, l’exigence d’expressions de condition formelles pour une chorégraphie applicable, l’obligation faite à la donnée d’avoir circulé dans un message antérieur à la passerelle, envoyé ou reçu par tous les participants directement affectés et compris de la même façon par tous, ainsi que le contrôle de la décision par les seuls initiateurs des activités qui suivent la passerelle, la décision se manifestant par le message initiateur de l’activité suivante et le message porteur de la donnée pouvant se trouver dans n’importe quelle activité antérieure. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.7.3 « Inclusive Gateway »: la synchronisation de branches dont toutes ne sont pas actives, les mêmes exigences de visibilité des données que pour la passerelle exclusive, et le comportement de synchronisation ne pouvant être imposé que par un seul participant. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.7.2 « Event-Based Gateway »: l’emploi quand la donnée de la décision n’est visible que des processus internes d’un participant, l’obligation faite aux émetteurs ou aux destinataires d’être les mêmes à droite de la passerelle, l’exclusion des autres activités une fois la première survenue, l’interdiction des événements intermédiaires de message, l’admission des minuteries avec les restrictions de participation qu’elles imposent, l’admission des signaux, et le refus de tout autre type d’événement intermédiaire. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.7.4 « Parallel Gateway »: l’absence de conditionnalité rendant la passerelle disponible telle quelle, les chemins parallèles connus de tous les participants, l’obligation faite aux émetteurs des activités qui suivent d’avoir participé à toutes celles qui précèdent immédiatement, et la chaîne de passerelles sans activité intermédiaire satisfaite par l’activité qui la précède. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.7.5 « Complex Gateway »: la fusion partielle déclenchée quand certaines branches sont achevées sans l’être toutes, rapportée au motif de discriminateur et de jointure n parmi m, et l’exemple d’appel d’offres électronique où trois prestataires répondent à des moments différents et où l’évaluation démarre à deux réponses sur trois. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.7.6 « Chaining Gateways »: la mise en séquence de deux passerelles ou davantage sans activité de chorégraphie intermédiaire, sous réserve des contraintes portant sur les participants placés avant et après la chaîne. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.7 « Choreography within Collaboration »: l’inclusion d’une chorégraphie dans un diagramme de collaboration, la correspondance des participants par
innerParticipantetouterParticipantd’une association de participant, celle des flux de message parinnerMessageFlowetouterMessageFlowd’une association de flux de message, les flux de message de la chorégraphie n’étant pas visibles là où ceux de la collaboration le sont, le caractère facultatif des noms inscrits dans les bandes de participant du fait de cette correspondance, ainsi que la déduction possible des associations à partir des entités partenaires ou des rôles partenaires. ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §11.8.2 « Swimlanes »: les pools et les couloirs non employés dans les chorégraphies, les pools réservés aux collaborations, les participants employés dans les bandes des tâches de chorégraphie et des sous-chorégraphies, les pools admis avec un diagramme de chorégraphie dans le contexte d’une collaboration, et le couloir écarté parce qu’il est une sous-partition du pool alors que la chorégraphie se place entre les pools. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.5 « Conversations »: le diagramme de conversation comme usage particulier et description informelle du diagramme de collaboration, dont il garde toutes les caractéristiques, avec des processus pouvant apparaître dans ses pools; les deux éléments graphiques propres, nœuds de conversation et lien de conversation; la conversation comme regroupement logique d’échanges de messages pouvant partager une corrélation, portant souvent sur un objet métier et associée à une clé de corrélation inscrite dans les messages, permettant l’acheminement d’un message vers l’instance de processus qui doit le traiter; le nœud développé en flux de message donnant un diagramme semblable à une simple collaboration; l’exemple logistique de treize conversations distinctes présenté comme une perspective à vol d’oiseau; la participation possible de plus de deux participants; la multiplicité entendue comme un ou plusieurs et jamais zéro ou plusieurs; le comportement des conversations modélisé par des chorégraphies séparées; le signe plus signalant une sous-conversation ou une conversation d’appel avec une imbrication à un nombre quelconque de niveaux; enfin le recouvrement, la division et la jonction comme dépendances entre conversations. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.5.1 « Conversation Node », tableau 9.10: la classe abstraite dont dérivent la conversation, la sous-conversation et la conversation d’appel, les nœuds reliés aux participants par des liens de conversation, ainsi que les associations
name,participantRefs[2..*],messageFlowRefsetcorrelationKeys. ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.5.2 « Conversation »: l’élément atomique du diagramme, représentant un ensemble de flux de message regroupés sur un concept ou une clé de corrélation, engageant deux participants ou davantage, dessiné en hexagone d’un trait fin unique, et n’ajoutant aucun attribut à ceux du nœud de conversation. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.5.3 « Sub-Conversation »: le nœud constituant une division hiérarchique de la collaboration parente, l’hexagone d’un trait fin unique, le marqueur en petit carré frappé d’un signe plus centré au bas de la forme, l’ouverture montrant des flux de message, des conversations et d’autres sous-conversations, le partage des participants de la conversation parente, ainsi que l’association
conversationNodesdu tableau 9.11. ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.5.4 « Call Conversation »: l’élément qui marque l’endroit où une conversation globale ou une collaboration est employée, la forme de conversation à bordure épaisse pour l’appel d’une conversation globale et la forme de sous-conversation à bordure épaisse pour l’appel d’une collaboration, l’association
calledCollaborationRefdu tableau 9.12 avec l’interdiction d’appeler une chorégraphie ou une tâche de chorégraphie globale, lesparticipantAssociationsqui relient les participants de l’élément appelé à ceux de la conversation parente, ainsi que la note écartantmessageFlowRefpour cet élément. ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.5.5 « Global Conversation »: la définition de conversation réutilisable et atomique appelable depuis n’importe quelle collaboration, la qualification de collaboration restreinte et vide, l’interdiction de contenir des nœuds de conversation, et la réduction à un jeu de participants, de flux de message et de clés de corrélation destinés à la réutilisation. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.5.6 « Conversation Link »: le lien reliant les nœuds de conversation aux participants et à leurs pools, le double trait fin obligatoire, les attributs
sourceRefettargetRefdu tableau 9.13 avec la règle du nœud de conversation unique à l’une des deux extrémités, les liens atteignant les activités et les événements d’un processus placé dans un pool, le sens d’un lien vers une activité qui n’est ni une tâche d’envoi ni une tâche de réception, ainsi que les liens d’une conversation d’appel montrant les noms des participants d’une collaboration imbriquée ou globale par les associations de participant. ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.6 « Process within Collaboration »: le processus facultatif dans un pool de collaboration, et l’obligation faite aux éléments de flux d’un couloir représentant une conversation d’échanger leurs messages dans le cadre de cette conversation. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.5.7 « Conversation Association »: l’application d’une conversation réutilisable aux flux de message d’une collaboration ou d’une chorégraphie, le cas de la collaboration référençant une chorégraphie à inclure entre ses pools, la correspondance à établir entre les nœuds de conversation du diagramme intérieur et ceux du diagramme extérieur, ainsi que les associations
innerConversationNodeRefetouterConversationNodeRefdu tableau 9.14. ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §9.5.8 « Correlations »: le mécanisme affectant les messages à l’instance de processus voulue, défini pour les flux de message de la conversation, avec ses quatre conditions d’emploi (données conceptuelles connues et définies par les processus participants sans identité des systèmes de types, échange par messages simples sans convention supplémentaire, existence de tâches d’envoi et de réception acceptant ces données, corrélation définie par des champs de corrélation qui en forment un sous-ensemble, l’identifiant de commande servant d’exemple), ainsi que l’attribut
isClosedd’une collaboration décidant de la circulation de messages absents du modèle et l’obligation faite à une collaboration contenant une chorégraphie de lui donner la même valeur. ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §2.1 « General »: les quatre types de conformité, dont la conformité de modélisation de chorégraphie, l’indépendance mutuelle de celle-ci et de la conformité de modélisation de processus, et la conformité complète définie par la satisfaction des quatre. Les renvois numériques de cette clause désignent les quatre types par les numéros 2.1 à 2.4, alors que leurs clauses sont §2.2 à §2.5; les numéros imprimés ici sont ceux des clauses elles-mêmes. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §2.5 « Choreography Modeling Conformance », §2.5.1 « BPMN Choreography Types » et §2.5.2 « BPMN Choreography Elements »: les paquets exigés, éléments centraux, diagrammes de chorégraphie de la clause 11 et diagrammes de collaboration avec les pools et le flux de message; l’ensemble d’éléments comprenant le message, la tâche de chorégraphie, la tâche de chorégraphie globale, la sous-chorégraphie développée et réduite, certains types d’événements de début, intermédiaires et de fin, les passerelles, ainsi que les pools et les flux de message pour la chorégraphie dans une collaboration. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §2.2.2 « BPMN Process Elements »: l’inventaire de la conformité de modélisation de processus, où les conversations figurent limitées au regroupement de flux de message et à l’association des corrélations, ainsi que la note précisant que les implémentations ne sont pas censées prendre en charge les éléments de modélisation de chorégraphie tels que la tâche de chorégraphie et la sous-chorégraphie. ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §2.2.1 « BPMN Process Types »: les quatre familles de paquets exigées par la conformité de modélisation de processus, dont les diagrammes de conversation avec les pools, les conversations et les liens de conversation. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §2.2.2 « BPMN Process Elements », tableau 2.1 « Descriptive Conformance Sub-Class Elements and Attributes » et tableau 2.2 « Analytic Conformance Sub-Class Elements and Attributes »: aucune ligne de l’un ni de l’autre ne porte un élément de chorégraphie ou de conversation. ↩︎
Bruce Silver, BPMN Method and Style, 2e édition, Cody-Cassidy Press, 2011: l’avertissement de l’introduction, où l’auteur annonce que le lecteur cherchant des informations sur les modèles de chorégraphie et de conversation de BPMN 2.0 n’en trouvera pas dans le livre, n’ayant jusque-là vu que peu d’intérêt pour ces ajouts au standard, tournés vers les interactions interentreprises; ainsi que le rappel du chapitre sur le métamodèle, où il précise ne traiter que les modèles de processus et de collaboration parmi les trois types que BPMN définit, et la note sur la collaboration qui contient techniquement des éléments liés à la chorégraphie et à la conversation, hors du champ du livre. ↩︎
Marlon Dumas, Marcello La Rosa, Jan Mendling et Hajo A. Reijers, Fundamentals of Business Process Management, 2e édition, Springer, 2018, §4.8 « Further Readings »: les diagrammes de chorégraphie et de conversation présentés comme les deux autres types de diagramme de BPMN, le premier capturant les interactions entre parties et leur ordre, le second les interactions seules sans ordre, tous deux issus d’un langage de modélisation des interactions de services web nommé Let’s Dance. ↩︎
Jim Sinur, Zbigniew Misiak et BJ Biernatowski, Practical Business Process Modeling and Analysis, Packt Publishing, 2025, section « Extending BPMN »: les diagrammes de chorégraphie et de conversation qualifiés de deux types de diagramme supplémentaires peu populaires, dans un passage constatant qu’une spécification de plus de 500 pages ne peut couvrir tous les scénarios de modélisation métier. ↩︎

