BPMN: les passerelles
Une passerelle (gateway) contrôle la façon dont les flux de séquence divergent et convergent. Le losange est commun aux cinq types; un marqueur interne dit lequel des comportements s'applique. Le symbole achemine des jetons et ne représente aucun travail.
Le premier chapitre a posé le flux de séquence comme une ligne unique. Un processus réel se divise puis se rassemble; le losange porte ces deux opérations.
Le losange
Quand le flux se passe de contrôle, la passerelle est inutile. Le jeton est la marque théorique par laquelle le standard décrit l’avancement d’une instance. Les jetons qui arrivent sur une passerelle peuvent être fusionnés en entrée, séparés en sortie ou les deux1.
Le standard impose de tracer le losange d’un seul trait fin. Un indicateur interne signale le type1.
Comme une activité, une passerelle consomme et produit des jetons. Elle ne représente aucun travail, et le standard tient son effet sur le coût et la durée pour nul1.
Les flux de séquence se raccordent à n’importe quel point de la bordure2.
Le sens de la passerelle
Une passerelle doit avoir plusieurs flux entrants ou plusieurs flux sortants: elle fusionne ou
divise2. L’attribut gatewayDirection déclare laquelle des deux fonctions elle
assure2.
divergingimpose plusieurs flux sortants et au plus un entrant.convergingimpose plusieurs flux entrants et au plus un sortant.mixedimpose plusieurs entrants et plusieurs sortants.unspecifiedles autorise sans les imposer.
Une même passerelle peut donc porter les deux fonctions. Les modélisateurs et les outils peuvent vouloir imposer la bonne pratique inverse, une fonction par passerelle, ce qui demande deux passerelles successives pour fusionner puis diviser1.
Une passerelle admet zéro, un ou plusieurs flux entrants2. Quand elle n’a pas de flux entrant et que le processus n’a pas d’événement de début, son comportement de divergence s’exécute à l’instanciation2.
La passerelle exclusive (exclusive gateway)
Une passerelle exclusive divergente crée des chemins alternatifs: pour une instance donnée du processus, un seul est emprunté3. Le standard la présente comme une question posée à un point du processus, dont les réponses possibles forment un ensemble défini; chaque réponse porte une expression de condition attachée à l’un des flux sortants3.
Silver appelle gate chacun des flux de séquence sortant d’une passerelle; ce chapitre les nomme portes. Quand une passerelle a deux portes, il recommande de la libeller sous forme de question et ses portes oui et non4.
Il souligne la différence avec la boîte de décision du logigramme: une passerelle teste une condition sur les données, la décision revenant à une activité placée avant elle4.
La sémantique d’exécution fixe l’ordre: les conditions sont évaluées l’une après l’autre, la première vraie désigne le flux emprunté et l’évaluation s’arrête là5. Si aucune n’est vraie, le jeton part sur le flux par défaut; en son absence, une exception est levée5.
La fusion exclusive
Une passerelle exclusive convergente fusionne des chemins alternatifs: chaque jeton entrant est acheminé vers le flux sortant sans synchronisation3.
Dumas en donne l’usage typique, le retour d’un bloc de répétition: la fusion exclusive convient parce qu’elle déplace vers son flux sortant tout jeton qu’elle reçoit. Une fusion parallèle, décrite plus bas, provoquerait un interblocage, puisqu’une seule des deux branches est active à la fois, et une fusion inclusive serait excessive ici6.
Silver précise ce que le symbole apporte: en fusion, la passerelle exclusive équivaut à l’absence de passerelle, ce qui la rend superflue devant une activité. Elle garde son intérêt devant une autre passerelle, où elle lève l’ambiguïté d’un losange à plusieurs entrées et plusieurs sorties7.
Le marqueur en croix
Le marqueur en X est facultatif: le standard écrit que la passerelle exclusive peut le placer dans le losange pour la distinguer des autres3. Il pose en revanche une exigence: un diagramme devrait être cohérent dans son usage de l’indicateur interne, plutôt que de mêler des passerelles qui le portent à d’autres qui s’en passent3. Le standard indique enfin sa préférence de modélisation, ses exemples montrant la passerelle exclusive sans indicateur interne3.
Silver dit la même chose et tranche pour son compte: les deux écritures ont un sens identique et il préfère le losange nu4. Les figures de cette référence portent la croix.
Le flux par défaut
Un chemin par défaut peut être identifié, emprunté lorsqu’aucune des expressions conditionnelles ne s’évalue à vrai3. Son marqueur est une barre oblique au début du connecteur8. Le standard réserve le flux par défaut à quatre sources: la passerelle exclusive, l’inclusive, la complexe et l’activité. Un flux de séquence conditionnel n’a jamais pour source une passerelle parallèle ni une événementielle8.
L’attribut default de la passerelle désigne lequel de ses flux sortants joue ce rôle. Ce flux ne
devrait porter aucune expression de condition, et une telle expression sera ignorée3.
Pour Silver, par défaut se lit sinon; une passerelle en admet au plus un9.
La passerelle parallèle (parallel gateway)
Une passerelle parallèle synchronise des flux parallèles et en crée10. Elle doit porter un marqueur en forme de signe plus10.
En division, elle ne vérifie aucune condition: chaque flux sortant reçoit un jeton. En fusion, elle attend tous les flux entrants avant de déclencher ses sortants10.
La sémantique d’exécution donne le compte exact: la passerelle est activée dès qu’il y a au moins un jeton sur chaque flux entrant, elle consomme exactement un jeton par flux entrant et en produit exactement un par flux sortant, les jetons excédentaires restant sur leur flux d’origine11.
Plusieurs flux sortants d’une activité valent déjà une division parallèle, ce qui rend la passerelle de division techniquement redondante4. Dumas énonce la même abréviation et une seconde: la fusion exclusive peut s’omettre devant une activité ou un événement6.
Une étiquette de flux de séquence signifie une condition, et la passerelle parallèle est inconditionnelle: Silver en conclut qu’elle et ses portes restent sans étiquette7.
La passerelle inclusive (inclusive gateway)
Une passerelle inclusive divergente crée des chemins alternatifs qui peuvent aussi être parallèles12. Toutes les expressions de condition sont évaluées, chacune indépendamment des autres, et tout flux dont la condition s’évalue à vrai est parcouru par un jeton12. Toutes les combinaisons de chemins peuvent donc être empruntées, de zéro à la totalité, le modèle devant être conçu pour qu’au moins un chemin soit emprunté12.
Elle doit porter un marqueur en forme de cercle12. Le flux par défaut y obéit à la même règle que sur l’exclusive12.
En fusion, elle rassemble une combinaison de chemins alternatifs et parallèles: un jeton qui y arrive peut être synchronisé avec d’autres jetons qui arriveront plus tard12. La sémantique d’exécution en donne le critère: la passerelle attend les branches entrantes qu’un jeton en circulation peut encore atteindre13.
Dumas appelle ce comportement la fusion synchronisante, distincte de la fusion simple de l’exclusive et de la synchronisation de la parallèle6. Il recommande d’employer la fusion inclusive là où elle est strictement nécessaire, sa sémantique élaborée pouvant dérouter le lecteur d’un modèle6.
La passerelle événementielle (event-based gateway)
Une passerelle événementielle est un point où le flux se divise selon des événements, là où l’exclusive et l’inclusive évaluent des expressions sur les données du processus14. Un événement, le plus souvent la réception d’un message, détermine le chemin emprunté: la décision revient à un autre participant, sur des données que le processus ne voit pas14.
Son marqueur doit ressembler à un événement intermédiaire multiple de capture14.
Le comportement de cette passerelle tient à une configuration d’éléments dont le standard fixe les règles14.
- Deux flux sortants au moins, sans expression de condition.
- Les cibles sont des événements intermédiaires ou des tâches de réception (receive task), dans n’importe quelle combinaison, à ceci près qu’une configuration bâtie sur des événements intermédiaires de message exclut les tâches de réception, et réciproquement.
- Une tâche de réception employée dans une configuration ne porte aucun événement intermédiaire attaché.
- Les cibles n’ont pas d’autre flux de séquence entrant que celui venu de la passerelle.
Cinq déclencheurs d’événement intermédiaire sont valides: message, signal, minuterie, condition et multiple, ce dernier ne pouvant réunir que les précédents14. Les quatre autres, erreur, annulation, compensation et lien, sont invalides dans cette configuration14. Le chapitre sur les événements donne la grammaire de chacun.
Le premier événement déclenché envoie un jeton sur son flux sortant et les autres chemins cessent d’être valides: le standard décrit là une condition de course14. Le choix reste ainsi différé jusqu’à l’achèvement de la tâche ou de l’événement qui suit la porte15.
Les deux variantes d’instanciation
Placée au début d’un processus, la passerelle change de comportement et de marqueur14.
Quand son attribut instantiate vaut vrai, le processus est instancié au déclenchement du premier
événement de la configuration et le marqueur prend l’aspect d’un événement de début
multiple14. La passerelle ne doit alors porter aucun flux entrant14.
Quand eventGatewayType vaut Parallel, ce qui exige instantiate à vrai, le marqueur prend
l’aspect d’un événement de début multiple parallèle14. La course subsiste pour
l’instanciation, et les autres événements restent attendus avant l’achèvement normal du processus,
leurs messages partageant la même information de corrélation14. Cette variante n’admet que
des déclencheurs de message15.
Silver déconseille l’attribut instantiate: la sémantique est celle de plusieurs événements de
début déclenchés et peu d’outils affichent la forme instanciante16.
La passerelle complexe (complex gateway)
La passerelle complexe sert à modéliser un comportement de synchronisation complexe17.
Une expression activationCondition en décrit le comportement précis, par exemple des jetons sur
trois des cinq flux entrants17. Ce qu’elle produit dépend des conditions portées par ses
flux sortants, comme pour la division inclusive17. Des jetons arrivés plus tard sur les
flux restants provoquent une réinitialisation, après laquelle de nouveaux jetons peuvent être
produits17.
Elle doit porter un marqueur en forme d’astérisque17.
Elle est la seule passerelle à posséder un état interne. L’attribut d’instance waitingForStart
vaut vrai au départ et passe à faux après activation, et il peut servir dans les conditions des flux
sortants pour dire lesquels reçoivent un jeton à l’activation et lesquels en reçoivent à la
réinitialisation17. L’attribut activationCount compte les jetons présents sur un flux
entrant17.
Silver ramène l’usage à un motif unique, le discriminateur (discriminator), qui laisse passer
le premier flux entrant arrivé et bloque les suivants. C’est le seul comportement complexe qu’il
rencontre souvent, et il demande une annotation textuelle pour expliciter le comportement
voulu18. Le motif s’obtient en écrivant les conditions des flux sortants sur
waitingForStart: le standard recommande qu’un flux sortant reçoive son jeton à l’activation ou à
la réinitialisation, jamais aux deux, et il veut qu’au moins un flux sortant en reçoive un à
l’activation sans en recevoir à la réinitialisation17. Faute de flux par défaut, la
réinitialisation consomme le jeton tardif sans rien produire, ce que la sémantique d’exécution
autorise19.
Cette même sémantique avertit: si la condition d’activation ne devient jamais vraie, les jetons restent bloqués indéfiniment sur la passerelle, ce qui peut verrouiller le processus entier19.
Apparier la division et la fusion
Une division produit des jetons, une fusion en consomme. Dumas décrit les deux anomalies6. L’interblocage (deadlock): une fusion parallèle placée après une division exclusive attend un jeton sur chacune de ses branches entrantes alors qu’une seule en a reçu un, et l’instance s’arrête là. Le défaut de synchronisation (lack of synchronization): une fusion exclusive placée après une division parallèle laisse passer chaque jeton dès son arrivée, si bien que la suite du processus s’exécute autant de fois qu’il y a de branches et que l’événement de fin est atteint plusieurs fois6.
La sémantique d’exécution range ce second comportement parmi les patrons pris en charge par la passerelle exclusive, sous le nom de multi-merge5. Silver le juge presque toujours involontaire, d’où sa règle: la division parallèle peut s’omettre, la fusion parallèle demande son symbole7.
Le repère de Dumas est l’appariement: une fusion exclusive après une division exclusive, une fusion parallèle après une division parallèle6. Quand le modèle échappe à cette structure de blocs emboîtés, il conseille de dérouler le parcours des jetons en essayant d’abord la fusion exclusive, puis la parallèle, l’inclusive fonctionnant dans tous les cas6.
Les classes de conformité
Les cinq passerelles se répartissent entre les sous-classes de conformité, qui fixent ce qu’un outil doit prendre en charge pour revendiquer un niveau20.
La sous-classe descriptive admet la passerelle exclusive et la parallèle, avec leurs seuls
attributs id et name20. La sous-classe analytique y ajoute l’inclusive et
l’événementielle, l’attribut default de l’exclusive, ainsi que le flux de séquence conditionnel et
le flux de séquence par défaut20. La passerelle complexe figure hors des deux, ce
que Silver relève18.
Un modèle destiné à des interlocuteurs métier se contente donc du choix exclusif et de la mise en parallèle.
Au-delà du losange
Trois éléments croisés ici appartiennent au chapitre sur les flux et les artefacts: l’expression de condition attachée à une porte, le flux par défaut pris comme connecteur et le flux de séquence conditionnel issu d’une activité. Les déclencheurs nommés par la passerelle événementielle appartiennent au chapitre sur les événements.
Le chapitre suivant
BPMN: les flux et les artefacts. Flux de séquence et sa condition, flux par défaut, flux de message, association, annotation textuelle et groupe: les connecteurs et les artefacts de BPMN 2.0.
Notes et références
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.6 « Gateways ». Cette clause porte la définition de la passerelle comme contrôle de la convergence et de la divergence des flux de séquence, l’inutilité du symbole quand le flux se passe de contrôle, la fusion et la séparation des jetons, le losange à trait fin unique, l’indicateur interne de type, l’absence d’effet sur les mesures opérationnelles ainsi que la remarque sur la bonne pratique d’une fonction par passerelle. ↩︎ ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.6.1 « Sequence Flow Considerations »: le raccordement des flux en tout point de la bordure, l’obligation faite à une passerelle d’avoir plusieurs flux entrants ou plusieurs flux sortants, les quatre valeurs de
gatewayDirectionavec leurs contraintes, ainsi que le comportement de divergence exécuté à l’instanciation quand la passerelle n’a pas de flux entrant et que le processus n’a pas d’événement de début. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.6.2 « Exclusive Gateway »: les chemins alternatifs dont un seul est emprunté par instance, la décision présentée comme une question à réponses définies, le marqueur en X déclaré facultatif avec l’exigence de cohérence du diagramme et la préférence de modélisation du document, le chemin par défaut avec l’exception levée en son absence, la fusion sans synchronisation, ainsi que l’attribut
defaultdu tableau 10.123 et l’expression de condition ignorée sur le flux par défaut. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎Bruce Silver, BPMN Method and Style, 2e édition, Cody-Cassidy Press, 2011: le terme gate pour un flux de séquence sortant d’une passerelle, l’étiquetage de la passerelle à deux portes par une question et des portes par oui et non, la passerelle qui teste une condition sur les données là où la décision revient à une activité, l’équivalence de sens entre le losange nu et le losange à croix avec la préférence de Silver pour le premier, ainsi que la redondance technique de la division parallèle après une activité. ↩︎ ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §13.4.2 « Exclusive Gateway », tableau 13.2: l’évaluation ordonnée des conditions, la première vraie qui fixe le flux, le passage au flux par défaut sinon et l’exception levée quand aucune condition n’est vraie sans flux par défaut. Le même tableau range le multi-merge (WCP-8) parmi les patrons pris en charge. ↩︎ ↩︎ ↩︎
Marlon Dumas, Marcello La Rosa, Jan Mendling et Hajo A. Reijers, Fundamentals of Business Process Management, 2e édition, Springer, 2018, §3.2 « Branching and Merging »: l’interblocage et le défaut de synchronisation, l’appariement du type de fusion à celui de la division avec le parcours des jetons pour les modèles non structurés en blocs, la fusion exclusive comme passe-plat et son emploi au retour d’un bloc de répétition, les deux abréviations admises pour la division parallèle et la fusion exclusive, ainsi que la fusion synchronisante de l’inclusive et la recommandation de la réserver aux cas où elle est strictement nécessaire. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎
Bruce Silver, BPMN Method and Style, 2e édition: le multi-merge jugé presque toujours involontaire, la fusion parallèle qui garde son symbole quand la division peut s’en passer, la fusion exclusive équivalente à l’absence de passerelle devant une activité et utile devant une autre passerelle, ainsi que l’absence d’étiquette sur la passerelle parallèle et ses portes. ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §8.4.13 « Sequence Flow »: la barre oblique tracée au début du connecteur d’un flux par défaut, et la liste des sources autorisées, passerelle exclusive, inclusive ou complexe et activité. La même clause pose, pour le flux de séquence conditionnel, qu’une passerelle source ne doit être ni de type parallèle ni de type événementiel. ↩︎ ↩︎
Bruce Silver, BPMN Method and Style, 2e édition: le flux par défaut qui se lit sinon, emprunté quand aucune autre porte ne l’est, à raison d’un au plus par passerelle. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.6.4 « Parallel Gateway »: la synchronisation et la création de flux parallèles, le marqueur en signe plus obligatoire, le jeton envoyé sur chaque flux sortant sans vérification de condition et l’attente de tous les flux entrants en fusion. ↩︎ ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §13.4.1 « Parallel Gateway (Fork and Join) », tableau 13.1: l’activation dès un jeton sur chaque flux entrant, la consommation et la production d’exactement un jeton par flux, et les jetons excédentaires laissés en place. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.6.3 « Inclusive Gateway »: l’évaluation de toutes les conditions, l’indépendance des chemins et les combinaisons de zéro à la totalité, le marqueur en cercle obligatoire, le chemin par défaut, la fusion d’une combinaison de chemins alternatifs et parallèles avec la synchronisation possible de jetons arrivant plus tard, ainsi que l’attribut
defaultdu tableau 10.124. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §13.4.3 « Inclusive Gateway », tableau 13.3: la condition d’activation exprimée sur les chemins dirigés, qui revient à attendre les branches entrantes qu’un jeton en circulation peut encore atteindre. ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.6.6 « Event-Based Gateway »: le branchement fondé sur des événements plutôt que sur des expressions de données, la décision revenant à un autre participant, le marqueur en événement intermédiaire multiple de capture, les deux flux sortants au minimum sans expression de condition, la configuration par événements intermédiaires ou tâches de réception avec l’exclusion mutuelle du message et de la tâche de réception, l’absence d’événement attaché sur ces tâches, l’absence d’autre flux entrant sur les cibles, la liste des cinq déclencheurs valides et des quatre invalides, la condition de course, ainsi que
instantiateeteventGatewayTypedu tableau 10.127 avec les marqueurs correspondants. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §13.4.4 « Event-based Gateway (Exclusive Decision (event-based)) »: le choix différé jusqu’à l’achèvement de la tâche ou de l’événement qui suit, le premier achevé retirant les autres branches, ainsi que la restriction aux déclencheurs de message pour la passerelle événementielle parallèle placée au début d’un processus. Le tableau 13.4 range le comportement sous le nom de deferred choice (WCP-16). ↩︎ ↩︎
Bruce Silver, BPMN Method and Style, 2e édition, guide d’implémentation: l’attribut
instantiatede la passerelle événementielle, dont la sémantique est celle de plusieurs événements de début déclenchés et dont peu d’outils affichent la forme, écarté par la méthode au profit de ces événements de début. ↩︎OMG, Business Process Model and Notation (BPMN), version 2.0.2, §10.6.5 « Complex Gateway »: l’expression
activationConditionavec l’exemple de trois flux sur cinq, les conditions de sortie reprises de la division inclusive, la réinitialisation provoquée par les jetons tardifs, le marqueur en astérisque obligatoire, ainsi queactivationCountetwaitingForStartaux tableaux 10.125 et 10.126. La même clause recommande qu’un flux sortant reçoive un jeton à l’activation ou à la réinitialisation sans recevoir aux deux, et demande qu’au moins un flux sortant en reçoive un à l’activation, sans production de jeton à la réinitialisation. ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎ ↩︎Bruce Silver, BPMN Method and Style, 2e édition: la passerelle complexe ramenée au motif du discriminator, qui laisse passer le premier flux entrant et bloque les suivants, l’annotation textuelle exigée pour expliciter le comportement, et l’absence de la passerelle complexe de la sous-classe analytique. ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §13.4.5 « Complex Gateway », tableau 13.5: la réinitialisation qui peut ne produire aucun jeton sans lever d’exception, ainsi que les jetons bloqués indéfiniment et le verrouillage possible du processus quand la condition d’activation ne devient jamais vraie. ↩︎ ↩︎
OMG, Business Process Model and Notation (BPMN), version 2.0.2, §2.2.2 « BPMN Process Elements ». Le tableau 2.1 « Descriptive Conformance Sub-Class Elements and Attributes » porte
exclusiveGatewayetparallelGatewayavecidetname. Le tableau 2.2, qui ajoute les éléments de la classe analytique, porteinclusiveGateway,eventBasedGateway, l’attributdefaultajouté àexclusiveGateway, ainsi quesequenceFlow (conditional)etsequenceFlow (default). La passerelle complexe n’apparaît dans aucun des deux. La clause précise que les critères d’une sous-classe s’appliquent à l’outil qui en revendique la prise en charge. ↩︎ ↩︎ ↩︎

