Un guide de jBPM avec Java

1. Introduction

Dans ce didacticiel, nous aborderons le système BPM (Business Process Management) et son implémentation en Java en tant que système jBPM.

2. Système de gestion des processus métier

Nous pouvons définir la gestion des processus métier comme l'un de ces domaines dont la portée s'étend au-delà du développement à tous les aspects d'une entreprise.

Le BPM offre une visibilité sur les processus fonctionnels de l'entreprise. Cela nous permet de trouver un flux optimal, représenté par un organigramme, en utilisant l'amélioration itérative. L'amélioration du débit augmente les profits et réduit les coûts.

Le BPM définit ses propres objectifs, son cycle de vie, ses pratiques et un langage commun à tous ses participants, c'est-à-dire les processus métier.

3. Le système jBPM

jBPM est l'implémentation d'un système BPM en Java. Cela nous permet de créer un flux de processus métier, de l'exécuter et de surveiller son cycle de vie. Le cœur de jBPM est un moteur de flux de travail, écrit en Java, qui nous fournit un outil pour créer et exécuter un flux de processus en utilisant les dernières spécifications BPMN (Business Process Modeling Notation) 2.0.

jBPM se concentre principalement sur le processus métier exécutable. Ces processus ont suffisamment de détails pour pouvoir être exécutés sur le moteur de workflow.

Voici un exemple d'organigramme graphique de l'ordre d'exécution de notre modèle de processus BPMN pour nous aider à comprendre:

  1. Nous commençons à exécuter le flux en utilisant le contexte initial, indiqué par le nœud de départ vert
  2. Tout d'abord, la tâche 1 s'exécutera
  3. À la fin de la tâche 1, nous passerons à la tâche 2
  4. L'exécution s'arrête à la rencontre du nœud d'extrémité rouge

4. Plugins IDE pour le projet jBPM

Voyons comment installer des plugins pour créer un projet jBPM et un processus BPMN 2.0 dans Eclipse et IntelliJ IDEA.

4.1. Plugin Eclipse

Nous devrons installer un plugin pour créer des projets jBPM. Suivons les étapes ci-dessous:

  1. Dans la section Aide , cliquez sur Installer un nouveau logiciel
  2. Ajouter le site de mise à jour Drools et jBPM
  3. Acceptez les termes du contrat de licence et terminez l'installation du plugin
  4. Redémarrez Eclipse

Une fois Eclipse redémarré, nous devrons aller dans Windows -> Préférences -> Drools -> Drools Flow Nodes :

Après avoir sélectionné toutes les options, nous pouvons cliquer sur «Appliquer et fermer». Maintenant, nous sommes prêts à créer notre premier projet jBPM .

4.2. Plugin IntelliJ IDEA

IntelliJ IDEA a le plugin jBPM installé par défaut, mais il n'est présent que dans l'option Ultimate et non dans l'option Community.

Il suffit de l'activer en cliquant sur Configurer -> Paramètres -> Plugins -> Installés -> JBoss jBPM :

Actuellement, il n'y a pas de concepteur de processus BPMN 2.0 pour cet IDE, bien que nous puissions importer les fichiers * .bpmn de n'importe quel autre concepteur et les exécuter.

5. Exemple Hello World

Mettons la main à la pâte en créant un simple projet Hello World.

5.1. Créer un projet jBPM

Pour créer un nouveau projet jBPM dans Eclipse, nous allons aller dans Fichier -> Nouveau -> Autre -> Projet jBPM (Maven) . Après avoir fourni le nom de notre projet, nous pouvons frapper la fin. Eclipse fera tout le travail pour nous et téléchargera les dépendances Maven requises pour créer un exemple de projet jBPM pour nous.

Pour créer la même chose dans IntelliJ IDEA, nous pouvons aller dans Fichier -> Nouveau -> Projet -> JBoss Drools . L'EDI téléchargera toutes les dépendances requises et les placera dans le dossier lib du projet.

5.2. Créer le modèle de processus Hello World

Créons un petit modèle de processus BPM qui imprime «Hello World» dans la console.

Pour cela, nous devons créer un nouveau fichier BPMN sous src / main / resources :

L'extension de fichier est .bpmn et s'ouvre dans le concepteur BPMN:

Le panneau de gauche du concepteur répertorie les nœuds que nous avons sélectionnés précédemment lors de la configuration du plugin Eclipse. Nous allons utiliser ces nœuds pour créer notre modèle de processus. Le panneau du milieu est l'espace de travail dans lequel nous créerons les modèles de processus. Le côté droit est l'onglet des propriétés, où nous pouvons définir les propriétés d'un processus ou d'un nœud.

Dans ce modèle HelloWorld , nous utiliserons:

  • Start Event - requis pour démarrer l'instance de processus
  • Tâche de script - active les extraits de code Java
  • End Event - requis pour mettre fin à l'instance de processus

Comme mentionné précédemment, IntelliJ IDEA n'a pas de concepteur BPMN, mais nous pouvons importer les fichiers .bpmn conçus dans Eclipse ou un concepteur Web.

5.3. Declare and Create the Knowledge Base (kbase)

All the BPMN files are loaded in kbase as processes. We need to pass the respective process ids to the jBPM engine in order to execute them.

We'll create the kmodule.xml under the resources/META-INF with our kbase and BPMN file package declaration:

Once the declaration is done, we can use the KieContainer to load the kbase:

KieServices kService = KieServices.Factory.get(); KieContainer kContainer = kService.getKieClasspathContainer(); KieBase kbase = kContainer.getKieBase(kbaseId);

5.4. Create the jBPM Runtime Manager

We'll use the JBPMHelper present in the org.jbpm.test package to build a sample runtime environment.

We require two things to create the environment: first, a data source to create the EntityManagerFactory, and second, our kbase.

JBPMHelper has methods to start an in-memory H2 server and set the data source. Using the same, we can create the EntityManagerFactory:

JBPMHelper.startH2Server(); JBPMHelper.setupDataSource(); EntityManagerFactory emf = Persistence.createEntityManagerFactory(persistenceUnit);

Once we've got everything ready, we can create our RuntimeEnvironment:

RuntimeEnvironmentBuilder runtimeEnvironmentBuilder = RuntimeEnvironmentBuilder.Factory.get().newDefaultBuilder(); RuntimeEnvironment runtimeEnvironment = runtimeEnvironmentBuilder. entityManagerFactory(emf).knowledgeBase(kbase).get();

Using the RuntimeEnvironment, we can create our jBPM runtime manager:

RuntimeManager runtimeManager = RuntimeManagerFactory.Factory.get() .newSingletonRuntimeManager(runtimeEnvironment);

5.5. Execute Process Instance

Finally, we'll use the RuntimeManager to get the RuntimeEngine:

RuntimeEngine engine = manager.getRuntimeEngine(initialContext);

Using RuntimeEngine, we'll create a knowledge session and start the process:

KieSession ksession = engine.getKieSession(); ksession.startProcess(processId);

Le processus démarre et imprime Hello World sur la console IDE.

6. Conclusion

Dans cet article, nous avons présenté le système BPM, en utilisant son implémentation Java - jBPM.

C'était un guide rapide pour démarrer un projet jBPM. L'exemple présenté ici utilise le processus minimal afin de donner une brève compréhension de l'exécution d'un processus et peut être trouvé sur GitHub.

Pour exécuter le processus, nous devons simplement exécuter la méthode main dans la classe WorkflowProcessMain .