Jeton
Le marqueur conceptuel qui se déplace dans un diagramme BPMN et représente le point d'exécution courant d'une instance.
Ce qu'est un jeton
Un jeton est le marqueur conceptuel que BPMN utilise pour expliquer comment un processus s'exécute. On ne voit jamais de jeton dans un diagramme — ce n'est pas une forme — mais toute la sémantique d'exécution BPMN est définie en termes de jetons : « le jeton arrive à l'activité », « le jeton se scinde en deux à la passerelle parallèle », « le jeton est consommé par l'événement de fin ».
Une instance de processus démarre avec un jeton à un événement de début. Le jeton traverse les flux de séquence, déclenchant les activités à son arrivée et passant à travers les passerelles qui le routent. Les passerelles parallèles multiplient les jetons ; les exclusives en choisissent un chemin sortant ; les inclusives activent chaque chemin correspondant. Une instance se termine quand tous les jetons qu'elle a émis sont consommés — soit en atteignant un événement de fin, soit par une terminaison explicite.
Pourquoi la métaphore du jeton est importante
Le modèle de jeton est la façon dont BPMN rend l'exécution non ambiguë. « Cette activité se déclenche après celle-là » est vague ; « le jeton de cette activité arrive à celle-ci » est précis. Quand deux diagrammes produisent des comportements différents pour la même entrée, la réponse est presque toujours dans la façon dont les jetons sont créés, divisés ou fusionnés. La plupart des bugs BPMN — joins inclusifs qui bloquent, joins parallèles attendant des jetons inexistants, boucles qui ne terminent jamais — sont des bugs de flux de jetons.
- Les jetons permettent à deux personnes différentes de raisonner sur le même diagramme et d'arriver à la même conclusion sur ce qu'il fait.
- Les jetons permettent aux moteurs d'exécuter les diagrammes de façon cohérente — « placer un jeton ici, suivre ces règles » est déterministe.
- Les jetons permettent de déboguer. Quand un processus se bloque, la question « où sont les jetons ? » a une réponse concrète.
Les jetons dans LucidFlow
Le tableau de bord des coûts de LucidFlow est construit sur la sémantique des jetons : le coût attendu pondéré par instance part d'un jeton par événement de début et le propage à travers tous les chemins possibles du diagramme, pondéré par les probabilités de branche. La heatmap colore les nœuds selon les visites de jetons attendues — un chemin à haute fréquence est là où les jetons passent la plupart de leur temps — de sorte que l'optimisation du diagramme suit les jetons, pas seulement les formes.
Questions fréquentes
Les jetons sont-ils visibles sur le canvas ?
Pas dans le diagramme lui-même — BPMN définit les jetons comme conceptuels, pas visuels. Les moteurs d'exécution montrent souvent des jetons lors du débogage (un marqueur se déplaçant sur le diagramme), et certains pédagogues en affichent des instantanés pour la formation, mais la notation canonique n'a pas de forme de jeton.
Un jeton peut-il être à deux endroits en même temps ?
Jamais au même nœud — chaque jeton est à une position. Mais une instance peut avoir plusieurs jetons simultanément, un par branche parallèle active. Donc l'*instance* peut être à plusieurs endroits à la fois ; chaque *jeton* individuel est à un seul.
Que se passe-t-il quand un jeton atteint un join parallèle ?
Il attend. Le join parallèle consomme les jetons de chaque flux entrant et émet un seul jeton sur son flux sortant. Si un seul jeton entrant tarde à arriver, le join se bloque indéfiniment — le pattern classique du « processus figé ».