Eine Anleitung zu jBPM mit Java

1. Einleitung

In diesem Tutorial werden wir das BPM-System (Business Process Management) und seine Implementierung in Java als jBPM-System erläutern.

2. Geschäftsprozessmanagementsystem

Wir können Business Process Management als eines der Felder definieren, deren Umfang über die Entwicklung hinaus alle Aspekte eines Unternehmens umfasst.

BPM bietet Einblick in die Funktionsprozesse des Unternehmens. Dies ermöglicht es uns, durch iterative Verbesserung einen optimalen Fluss zu finden, der durch ein Flussdiagramm dargestellt wird. Der verbesserte Fluss erhöht den Gewinn und senkt die Kosten.

BPM definiert seine eigenen Ziele, seinen Lebenszyklus, seine Praktiken und eine gemeinsame Sprache aller Teilnehmer, dh Geschäftsprozesse.

3. Das jBPM- System

jBPM ist die Implementierung eines BPM-Systems in Java. Es ermöglicht uns, einen Geschäftsprozessfluss zu erstellen, auszuführen und seinen Lebenszyklus zu überwachen. Der Kern von jBPM ist eine in Java geschriebene Workflow-Engine, die uns ein Tool zum Erstellen und Ausführen eines Prozessflusses unter Verwendung der neuesten BPMN 2.0-Spezifikationen (Business Process Modeling Notation) bietet.

jBPM konzentriert sich hauptsächlich auf den ausführbaren Geschäftsprozess. Diese Prozesse verfügen über genügend Details, damit sie in der Workflow-Engine ausgeführt werden können.

Hier ist ein grafisches Flussdiagrammbeispiel für die Ausführungsreihenfolge unseres BPMN-Prozessmodells, um unser Verständnis zu erleichtern:

  1. Wir beginnen mit der Ausführung des Flusses unter Verwendung des Anfangskontexts, der durch den grünen Startknoten gekennzeichnet ist
  2. Zunächst wird Task 1 ausgeführt
  3. Nach Abschluss von Aufgabe 1 fahren wir mit Aufgabe 2 fort
  4. Die Ausführung wird beendet, wenn der rote Endknoten angetroffen wird

4. IDE- Plugins für jBPM Project

Lassen Sie uns sehen, wie Plugins installiert werden, um ein jBPM-Projekt und einen BPMN 2.0-Prozess in Eclipse und IntelliJ IDEA zu erstellen.

4.1. Eclipse Plugin

Wir müssen ein Plugin installieren, um jBPM-Projekte zu erstellen. Führen Sie die folgenden Schritte aus:

  1. Klicken Sie im Abschnitt Hilfe auf Neue Software installieren
  2. Fügen Sie die Drools- und jBPM-Update-Site hinzu
  3. Akzeptieren Sie die Bedingungen der Lizenzvereinbarung und schließen Sie die Plugin-Installation ab
  4. Starten Sie Eclipse neu

Nach dem Neustart von Eclipse müssen wir zu Windows -> Einstellungen -> Drools -> Drools Flow Nodes gehen :

Nachdem Sie alle Optionen ausgewählt haben, können Sie auf "Übernehmen und schließen" klicken. Jetzt können wir unser erstes jBPM-Projekt erstellen .

4.2. IntelliJ IDEA Plugin

In IntelliJ IDEA ist standardmäßig das jBPM-Plugin installiert, das jedoch nur in der Ultimate-Option und nicht in der Community-Option vorhanden ist.

Sie müssen es nur aktivieren, indem Sie auf Konfigurieren -> Einstellungen -> Plugins -> Installiert -> JBoss jBPM klicken :

Derzeit gibt es keinen BPMN 2.0-Prozessdesigner für diese IDE, obwohl wir die * .bpmn- Dateien von jedem anderen Designer importieren und ausführen können.

5. Hallo Welt Beispiel

Lassen Sie uns die Hände schmutzig machen, wenn wir ein einfaches Hello World-Projekt erstellen.

5.1. Erstellen Sie ein jBPM- Projekt

Um ein neues jBPM-Projekt in Eclipse zu erstellen, gehen wir zu Datei -> Neu -> Andere -> jBPM-Projekt (Maven) . Nachdem wir den Namen unseres Projekts angegeben haben, können wir das Ziel erreichen. Eclipse erledigt die ganze harte Arbeit für uns und lädt die erforderlichen Maven-Abhängigkeiten herunter, um ein Beispiel-jBPM-Projekt für uns zu erstellen.

Um dasselbe in IntelliJ IDEA zu erstellen, gehen Sie zu Datei -> Neu -> Projekt -> JBoss Drools . Die IDE lädt alle erforderlichen Abhängigkeiten herunter und legt sie im lib- Ordner des Projekts ab.

5.2. Erstellen Sie das Hello World-Prozessmodell

Erstellen wir ein kleines BPM-Prozessmodell, das "Hello World" in der Konsole druckt.

Dazu müssen wir unter src / main / resources eine neue BPMN-Datei erstellen :

Die Dateierweiterung lautet .bpmn und wird im BPMN-Designer geöffnet:

Im linken Bereich des Designers werden die Knoten aufgelistet, die wir zuvor beim Einrichten des Eclipse-Plugins ausgewählt haben. Wir werden diese Knoten verwenden, um unser Prozessmodell zu erstellen. Das mittlere Feld ist der Arbeitsbereich, in dem wir die Prozessmodelle erstellen. Auf der rechten Seite befindet sich die Registerkarte Eigenschaften, auf der Sie die Eigenschaften eines Prozesses oder Knotens festlegen können.

In diesem HelloWorld- Modell verwenden wir Folgendes:

  • Startereignis - erforderlich, um die Prozessinstanz zu starten
  • Skriptaufgabe - Aktiviert Java-Snippets
  • End Event - erforderlich, um die Prozessinstanz zu beenden

Wie bereits erwähnt, verfügt IntelliJ IDEA nicht über einen BPMN-Designer, wir können jedoch die in Eclipse oder einem Webdesigner erstellten .bpmn- Dateien importieren .

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);

Der Prozess wird gestartet und Hello World auf der IDE-Konsole gedruckt .

6. Fazit

In diesem Artikel haben wir das BPM-System mit seiner Java-Implementierung - jBPM - vorgestellt.

Dies war eine Kurzanleitung für den Start eines jBPM-Projekts. Das hier gezeigte Beispiel verwendet den Minimalprozess, um ein kurzes Verständnis der Ausführung eines Prozesses zu vermitteln, und ist auf GitHub zu finden.

Um den Prozess auszuführen, müssen Sie lediglich die Hauptmethode in der WorkflowProcessMain- Klasse ausführen .