Modèle des processus métiers (bp)
Le modèle de processus métier
Vue simplifiée du modèle
Les différentes entités du modèle de processus
Les serveurs
Les serveurs sont des entités qui hébergent les machines. La fonction des serveurs est de fournir des informations stables d’adressage (serveur, services…) aux machines.
Les machines
Les machines sont les entités qui exécutent les processus métiers.
Une machine maintient :
- une liste de points d’écoute des évènements initiaux des processus,
- une liste d’instances de processus en cours d’exécution,
- une liste d’évènements métiers susceptibles d’être traités.
Les processus métiers
Les entités Processus Métiers contiennent la description du processus métier. Un processus métier est identifié par son nom et sa version. Il est constitué d’un ensemble d’activités et d’évènements reliés par des séquances.
Un processus métier doit contenir un et un seul évènement initial et peut contenir un ou plusieurs évènements finaux.
Les catégories de processus métiers
Les catégories de processus métiers servent à classer les processus métiers. Elles sont arborescentes et un processus métier peut être rattaché à zéro ou à une catégorie.
L’exécution d’un processus métier
Un processus métier est exécuté en étant placé dans une machine.
Une copie du processus métier est alors créée et maintenue dans la machine. Cette copie est conservée tant que des instances sont en cours d’exécution ou que de nouvelles instances sont susceptibles d’être créées.
Comme l’exécution utilise une copie du processus métier, les modifications apportées ultérieurement au processus métier ne sont pas prises en compte dans la version en cours d’exécution.
Pour prendre en compte les modifications d’un processus métier en cours d’exécution, il faut :
- soit attendre que toutes les instances en cours soient terminées pour arrêter le processus métier et le recharger,
- soit changer la version du PM et exécuter la nouvelle version. Dans ce cas, plusieurs versions du processus métier s’exécuteront simultanément.
Les instances de processus métiers
L’exécution d’un processus métier crée des instances de ce processus. A un instant donné, il peut exister aucune, une ou plusieurs instances de ce processus.
Une instance de processus métier a un état qui évolue entre l’état initial du processus métier et un des états finaux.
Les activités
Les activités sont les tâches élémentaires réalisées par un processus métier.
Une activité peut avoir deux types de résultat :
- OK
- La ou les séquences Succès seont exécutées.
- NOK
- La ou les séquence Echec seront exécutées.
Les évènements
Les évènements sont des activités particulières qui permettent à un processus métier d’attendre qu’une condition soit remplie.
Trois types d’évènements sont disponibles :
- les évènements initiaux :
- Un processus métier doit contenir un seul évènement initial. L’évènement initial attend qu’une condition soit remplie pour créer une instance de processus métier.
- les évènements finaux :
- Un processus métier doit contenir au moins un évènement final. Lorsque l’état d’une instance atteint un évènement final, l’instance est terminée.
- les évènements intermédiaires :
- Ils sont utilisés à l’intérieur d’un processus métier pour attendre qu’une condition soit remplie.
Les gestionnaires d’exception
Les gestionnaires sont des activités particulières permettant de réagir de façon globale à des situations inattendues.
Les séquences entre évènements et activités
Les activités et les évènements sont en relation par des séquences, des liens, qui indiquent l’enchainement entre ces éléments, c'est-à-dire la façon dont l’état d’une instance peut changer.
Trois types de séquences sont disponibles:
- Séquence Succès
- enchainement si l’exécution de l’activité est un succès,
- Séquence Echec
- enchainement si l’exécution de l’activité est un échec,
- Séquence TimeOut
- enchainement si l’exécution de l’activité ne s’est pas réalisée.
Les automates à états finis
Les automates à états finis ne sont pas visibles de l’utilisateur ou du concepteur de processus métiers mais il est utile de comprendre leur fonctionnement pour la compréhension du système.
Un processus métier est traduit en description d’automates à états finis:
- chaque élément du processus métier, c’est-à-dire activité ou évènement, correspond à un état de l’automate,
- chaque séquence entre deux éléments correspond à une transition entre les deux états.
Lorsqu’une instance de processus métier est créée, un automate correspondant est créé dans l’état initial du processus métier. L’automate évolue ensuite suivant l’apparition d’évènement internes élémentaires générés par les activités.
Ces évènements élémentaires sont générés par l’exécution des activités et sont définis ainsi :
- EVN_OK
- Une activité génère un évènement OK lorsque l’exécution de l’activité est un succès. La machine passe dans l’état défini par la transition Etat courant / Séquence OK.
- EVN_NOK
- Une activité génère un évènement NOK lorsque l’exécution de l’activité est un échec. La machine passe dans l’état défini par la transition Etat courant / Séquence NOK.
- EVN_WAIT
- Une activité génère un évènement WAIT lorsque l’exécution n’a pas eut lieu. La machine reste dans l’état courant.
- EVN_TOUT
- Cet évènement est utilisé de façon interne pour indiquer un Time out.
- EVN_HALT
- Cet évènement est utilisé de façon interne pour interrompre une instance.
Les branches
Généralement l’état suivant l’exécution d’une activité est unique. Mais si l’activité dispose de plusieurs séquences sortantes vers plusieurs éléments différents, il est possible d’avoir plusieurs états suivant le nombre d’éléments.
Dans ce cas la machine crée une ou plusieurs branches. Une branche est une restriction du processus métier qui est exécutée en parallèle avec la branche principale. La branche principale est la branche correspondant à la première séquence sortante.
Une instance de processus métier ne peut se terminer que si toutes ses branches sont terminées.
Les branches peuvent être synchronisées, c’est-à-dire attendre que toutes les branches rejoignent un état particulier.
Les attributs et paramètres des processus
Les instances des processus métiers maintiennent une liste d’attributs au cours de la vie de l’instance. Ces attributs peuvent être manipulés par les activités du processus métier et sont finalement archivés dans le journal.
- Un attribut est défini dans les propriétés du processus. Il peut être manipulé lors de la conception du processus.
- Un paramètre est ajouté lors de l’exécution d’une instance. Il n’est pas défini lors de la conception du processus.
Un paramètre est défini par deux identifiants, un préfixe et un nom ; le préfixe n’est pas obligatoire, il sert généralement à indiqué la source du paramètre.
Valeurs des paramètres et attributs
Pour accéder aux attributs et paramètres dans le code d’une activité :
nom_attribut nom_paramètre_sans_préfix Get(nom) Get(prefix'''.'''nom) GetParameter(prefix, nom_paramètre)
Pour définir un attribut ou un paramètre dans le code d’une activité :
nom_paramètre_sans_préfix := valeur Set(nom, valeur) Set(prefix'''.'''nom, valeur) SetParameter(prefix, nom, valeur)
Les valeurs des attributs ou des paramètres peuvent aussi être substituées dans le paramétrage des activités. Utilisez pour cela une notation entre crochets [ ]. Le contenu entre crochets est une expression qui sera évaluée lors de l’exécution de l’activité.
Exemple :
Pour référencer la valeur d'un attribut de l'instance :
Pour référencer la valeur d'un paramètre de l'instance :
Voir aussi :
L’instance métier d’une instance de processus
Une instance de processus métier peut être rattachée à une instance d’un objet métier. Dans ce cas cet objet métier peut directement être manipulé dans le code des activités de l’instance.
Lorsque l’évènement initial du processus métier est un évènement métier déclenché par un objet métier, alors ce rattachement est automatique et implicite.
Les messages émis par les instances de processus
Les activités peuvent émettre des messages. Ceux ci sont collectés par la machine et sauvegardés dans le journal.
La fonction principale de ces messages est la mise au point et le suivi du cheminement des instances.
Le journal d’exécution
Le journal d’exécution garde trace de l’exécution des instances des processus métiers.
L’enregistrement dans le journal est réalisé lorsque l’instance est terminée.
Les évènements métiers
Les évènements métiers sont des objets d’une classe de la base de données Master. Ils permettent au processus métier de réagir à des changements d’états d’objets des applications métiers.