Een gids voor jBPM met Java

1. Inleiding

In deze tutorial bespreken we het Business Process Management (BPM) -systeem en de implementatie ervan in Java als jBPM-systeem.

2. Bedrijfsprocesbeheersysteem

We kunnen Business Process Management definiëren als een van die domeinen waarvan de reikwijdte verder gaat dan ontwikkeling tot alle aspecten van een bedrijf.

BPM geeft inzicht in de functionele processen van het bedrijf. Dit stelt ons in staat om een ​​optimale stroom te vinden, weergegeven door een stroomschema, door middel van iteratieve verbetering. De verbeterde doorstroming verhoogt de winst en verlaagt de kosten.

BPM definieert zijn eigen doelstellingen, levenscyclus, praktijken en een gemeenschappelijke taal tussen al zijn deelnemers, d.w.z. bedrijfsprocessen.

3. Het jBPM Systeem

jBPM is de implementatie van een BPM-systeem in Java. Het stelt ons in staat om een ​​bedrijfsprocesstroom te creëren, deze uit te voeren en de levenscyclus ervan te bewaken. De kern van jBPM is een workflow-engine, geschreven in Java, die ons een tool biedt om een ​​processtroom te creëren en uit te voeren met behulp van de nieuwste Business Process Modeling Notation (BPMN) 2.0-specificaties.

jBPM richt zich voornamelijk op het uitvoerbare bedrijfsproces. Deze processen hebben voldoende details zodat ze kunnen worden uitgevoerd op de workflow-engine.

Hier is een grafisch stroomschema van de uitvoeringsvolgorde van ons BPMN-procesmodel om ons te helpen begrijpen:

  1. We beginnen met het uitvoeren van de stroom met behulp van de initiële context, aangegeven door het groene startknooppunt
  2. Eerst wordt taak 1 uitgevoerd
  3. Na voltooiing van taak 1 gaan we verder met taak 2
  4. De uitvoering stopt bij het tegenkomen van het rode eindknooppunt

4. IDE Plug-ins voor jBPM Project

Laten we eens kijken hoe we plug-ins kunnen installeren om een ​​jBPM-project en een BPMN 2.0-proces te maken in Eclipse en IntelliJ IDEA.

4.1. Eclipse-plug-in

We zullen een plug-in moeten installeren om jBPM-projecten te maken. Laten we de onderstaande stappen volgen:

  1. In de Helpen sectie, klik op Installeer nieuwe software
  2. Voeg de Drools en jBPM-updatesite toe
  3. Accepteer de voorwaarden van de licentieovereenkomst en voltooi de installatie van de plug-in
  4. Start Eclipse opnieuw

Zodra Eclipse opnieuw is opgestart, moeten we naar Windows -> Voorkeuren -> Drools -> Drools Flow Nodes:

Nadat we alle opties hebben geselecteerd, kunnen we klikken op “Toepassen en sluiten”. Nu zijn we klaar om onze eerste te maken jBPM-project.

4.2. IntelliJ IDEA-plug-in

IntelliJ IDEA heeft standaard de jBPM-plug-in geïnstalleerd, maar die is alleen aanwezig in de Ultimate en niet in de Community-optie.

We hoeven het alleen maar in te schakelen door te klikken Configureer -> Instellingen -> Plug-ins -> Geïnstalleerd -> JBoss jBPM:

Momenteel is er geen BPMN 2.0-procesontwerper voor deze IDE, hoewel we het * .bpmn bestanden van een andere ontwerper en voer ze uit.

5. Hallo wereld voorbeeld

Laten we onze handen vuil maken bij het maken van een eenvoudig Hello World-project.

5.1. Maak een jBPM Project

Om een ​​nieuw jBPM-project in Eclipse te maken, gaan we naar Bestand -> Nieuw -> Andere -> jBPM Project (Maven). Nadat we de naam van ons project hebben opgegeven, kunnen we op Voltooien klikken. Eclipse zal al het harde werk voor ons doen en de vereiste Maven-afhankelijkheden downloaden om een ​​voorbeeld van een jBPM-project voor ons te maken.

Om hetzelfde te maken in IntelliJ IDEA, kunnen we naar Bestand -> Nieuw -> Project -> JBoss Drools. De IDE downloadt alle vereiste afhankelijkheden en plaatst ze in het lib map van het project.

5.2. Creëer het Hello World Process Model

Laten we een klein BPM-procesmodel maken dat "Hallo wereld" in de console afdrukt.

Hiervoor moeten we een nieuw BPMN-bestand maken onder src / main / resources:

De bestandsextensie is .bpmn en het wordt geopend in de BPMN-ontwerper:

In het linkerpaneel van de ontwerper staan ​​de knooppunten die we eerder hebben geselecteerd tijdens het instellen van de Eclipse-plug-in. We gaan deze knooppunten gebruiken om ons procesmodel te maken. Het middelste paneel is de werkruimte, waar we de procesmodellen gaan maken. De rechterkant is het eigenschappen-tabblad, waar we de eigenschappen van een proces of knooppunt kunnen instellen.

In deze Hallo Wereld model gebruiken we:

  • Gebeurtenis starten - vereist om de procesinstantie te starten
  • Scripttaak - schakelt Java-fragmenten in
  • End Event - vereist om de procesinstantie te beëindigen

Zoals eerder vermeld, heeft IntelliJ IDEA geen BPMN-ontwerper, maar we kunnen het .bpmn bestanden die zijn ontworpen in Eclipse of een webdesigner.

5.3. Declareer en creëer de Knowledge Base (kbase)

Alle BPMN-bestanden worden geladen in kbase als processen. We moeten het respectieve proces doorlopen id's naar de jBPM-engine om ze uit te voeren.

We maken het kmodule.xml onder de middelen / META-INF met onze kbase en BPMN-bestandspakketverklaring:

Zodra de aangifte is gedaan, kunnen we de KieContainer om het kbase:

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

5.4. Maak het jBPM Runtime Manager

We gebruiken de JBPMHelper aanwezig in de org.jbpm.test pakket om een ​​voorbeeld van een runtime-omgeving te bouwen.

We hebben twee dingen nodig om de omgeving te creëren: ten eerste, een gegevensbron om het EntityManagerFactory, en ten tweede onze kbase.

JBPMHelper heeft methoden om een ​​H2-server in het geheugen te starten en de gegevensbron in te stellen. Met hetzelfde kunnen we het EntityManagerFactory:

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

Zodra we alles klaar hebben, kunnen we onze Runtime-omgeving:

RuntimeEnvironmentBuilder runtimeEnvironmentBuilder = RuntimeEnvironmentBuilder.Factory.get (). NewDefaultBuilder (); RuntimeEnvironment runtimeEnvironment = runtimeEnvironmentBuilder. entiteitManagerFactory (emf) .knowledgeBase (kbase) .get ();

De ... gebruiken Runtime-omgeving, kunnen we onze jBPM runtime manager maken:

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

5.5. Voer Procesinstantie uit

Ten slotte gebruiken we de RuntimeManager om het RuntimeEngine:

RuntimeEngine-engine = manager.getRuntimeEngine (initialContext);

Gebruik makend van Runtime Engine, we maken een kennissessie en starten het proces:

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

Het proces begint en wordt afgedrukt Hallo Wereldop de IDE-console.

6. Conclusie

In dit artikel hebben we het BPM-systeem geïntroduceerd met behulp van de Java-implementatie ervan - jBPM.

Dit was een korte handleiding om een ​​jBPM-project een kickstart te geven. Het hier gedemonstreerde voorbeeld gebruikt het minimale proces om een ​​kort begrip te geven van het uitvoeren van een proces en is te vinden op GitHub.

Om het proces uit te voeren, hoeven we alleen maar de hoofdmethode in het WorkflowProcessMain klasse.