Orchestration de processus métier

Application lifecycle management (designing application with UML, Merise, BPMN, etc).
Agile project management (Scrum, Kanban, XP, etc).
Discussions sur les méthodologies et langages de conception (UML, Merise, BPMN, etc).
Discussions sur le management de projets agiles (Scrum, Kanban, XP, etc).
Forum rules
Languages allowed on this forum : English, French, Arabic.
See the general rules here : http://uprodit.com/about

Langues autorisées sur ce forum : Anglais, Français, Arabe.
Voir la règlementation générale ici : http://uprodit.com/about
Anas Neumann, Idriss Neumann like(s) that.
User avatar
Idriss Neumann
Site Admin
Posts: 21
Joined: Fri Sep 30, 2016 11:08 pm
Reputation:

Orchestration de processus métier

Postby Idriss Neumann » Sun Oct 16, 2016 9:45 am

Voici quelques pistes de réflexions sur l'orchestration (ou l'automatisation) de processus métiers.

Rappel, définition d'un processus métier (ou business process) :

Un processus métier est un enchaînement d’activités ou d’ensembles d’activités, qui est alimenté par des entrées, qui dispose de ressources et qui transforme ces entrées en sorties.

Un webservice, un controller, un batch peut être vu comme un processus métier dès lors qu'il applique des règles de gestions pour transformer des entrées en sorties. Exemple : application de la TVA sur un objet facture.

Conception / modélisation d'un processus métier

On peux ce contenter d'utiliser le diagramme état / transition d'UML.

On peux aller plus loin avec la méthode BPMN (Business Process Model and Notation) qui est devenu le standard aujourd'hui : http://www.bpmn.org/ (dans le quick guide, tutoriel complet sur les éléments de modélisation d'un processus avec BPMN).

Orchestration des processus métiers

On parle parfois de "workflow".

2 façon de faire :

1) Le "custom" : on développe nous même des batchs ou des webservices qui vont orchestrer d'autres appels de webservices comme enchainement d'actions.

Il faut bien penser à la robustesse de son orchestration (reprise sur panne, affectation des actions en erreurs pour relance à des utilisateurs, relances automatique, rollback ou compensation en cas d'erreurs, etc).

2) Les BPM (business process manager) : Activity (gratuit), Bizagi (utilisé pas mal dans l'enseignement), IBM BPM (payant) et bien d'autres : solutions complètes de workflow (avec gestion des utilisateurs, tableaux de bords, etc) où l'on design son workflow à partir de BPMN et ou on a ensuite plus qu'à remplir les actions (appel d'un webservice, affectation d'une action à un utilisateur).

=> http://activiti.org/ (Java JEE, tourne sur un tomcat)
=> https://www.bizagi.com/
=> http://www-03.ibm.com/software/products ... ger-family

Avis personnel : il s'avère très souvent que l'utilisation d'un BPM n'est jamais complètement adaptée au besoin du client (notamment les écrans de relance des actions en anomalies, la gestion des users, etc).

J'avais donc développé une solution open source plus bas niveau, intermédiaire entre le BPM et le développement de batchs ou webservices orchestrateurs : http://vo-lifecycle.github.io/vo-lifecycle-core/

Cette solution est faite pour fonctionner avec Spring (avec des webservices ou des batchs Spring Batch) basées sur des états, transitions composées d'actions (qui sont des classes à implémenter en Java). Cette solution, bien que demandant plus de développement qu'un BPM, rend l'utilisateur maitre de son schéma de base de données par exemple (table pour les anomalies, table pour les états du workflow, les utilisateurs, gestion des rollbacks, scheduler, etc).

Return to “Application lifecycle management / Conception, gestion”

Who is online

Users browsing this forum: No registered users and 1 guest