Verwalten Sie Ihre Geschäftsprozesse mit JBoss jBPM

Unternehmen haben sorgfältig nach einem strukturierten Ansatz gesucht, um Geschäftsaktionen / -transaktionen zu entwerfen und vorzugsweise mithilfe automatisierter Prozesse auszuführen. Business Process Management (BPM) und Workflow Management bieten eine Lösung für dieses Problem mithilfe von Konzepten wie Aktionen, Aufgaben und Abläufen.

In diesem Artikel wird BPM vorgestellt und es werden Techniken und Tools erläutert, mit denen Unternehmenssysteme mit BPM und Workflow-Management mithilfe von JBoss jBPM ausgestattet werden können.

Der Begriff Geschäftsprozessmanagement bezieht sich normalerweise auf eine Reihe von Aktivitäten, mit denen Unternehmen Geschäftsprozesse auf eine Weise automatisieren und optimieren können, die an sich dynamisch ändernde Umgebungen angepasst werden kann. Diese Aktivitäten suchen normalerweise Hilfe beim Software-Engineering und bei den Tools. Daher wird der Begriff BPM häufig direkt verwendet, um sich auf die technischen Techniken und Werkzeuge zu beziehen.

BPM ist in drei verschiedenen Praktiken enthalten:

  1. Prozessdesign: Die Aufgabe, bestehende und neue Prozesse zu entwerfen
  2. Prozessausführung: Die Ausführung einer automatisierten Abfolge verwandter Ereignisse, die Softwareprozesse und / oder menschliche Aktivitäten betreffen
  3. Prozessüberwachung: Beobachtung und Prüfung des Status einzelner Prozesse, damit die Statistiken und die Leistung dieser Prozesse aufgezeichnet, gemeldet und optimiert werden können

BPM möchte Softwareentwicklern ermöglichen, dieselben Konzepte und Frameworks wie Geschäftsanalysten zu verwenden. Infolgedessen haben Softwareanbieter versucht, Tools zu erstellen, mit denen Unternehmen Geschäftsprozesse mithilfe grafischer Modellierungstools, domänenspezifischer Sprachen und proprietärer Anwendungen erfassen, entwerfen und optimieren können.

JBoss jBPM 3.0 bietet die Möglichkeit, neue automatisierte Geschäftsprozesse und Workflows mit branchenüblicher Orchestrierung mithilfe der Business Process Execution Language (BPEL), einer flexiblen und steckbaren API, einer nativen Prozessdefinitionssprache und einem grafischen Modellierungswerkzeug zu entwickeln.

JBoss jBPM ist ein Open Source-Framework (LGPL-Lizenz) mit Java-APIs, -Tools und einer Definitionssprache, die als Webanwendung oder als eigenständige Java-Anwendung ausgeführt werden kann. JBoss jBPM fungiert als Vermittler zwischen Geschäftsanalysten und Entwicklern, indem es ihnen eine gemeinsame Prozessdefinitionssprache gibt, die als jPDL bezeichnet wird .

Übersicht über die JBoss jBPM-Architektur

JBoss jBPM definiert Prozessdefinitionen in Dateien, die mit der Prozessdefinitionssprache JBoss geschrieben wurden. jPDL ist eine grafisch orientierte Programmiersprache (GOP), die auf einem Modell von Knoten, Übergängen und Aktionen basiert. In diesem Modell sind Knoten Befehle, die ausgeführt werden, wenn sie während des Ablaufs einer Prozessdefinition auftreten. Übergänge steuern den Ablauf der Ausführung einer Prozessdefinition, und Aktionen führen eine bestimmte Logik aus, wenn ein Knoten oder ein Übergangsereignis auftritt.

In jBPM werden Prozessdefinitionen als Prozessarchive gepackt. Ein Prozessarchiv wird zur Ausführung an die jPDL-Prozess-Engine übergeben. Die jPDL-Prozess-Engine durchläuft ein Prozessdiagramm, führt definierte Aktionen aus, behält den Prozessstatus bei und protokolliert alle Prozessereignisse.

JBoss jBPM ist in die folgenden Komponenten eingekapselt:

  • Prozessmodul: Diese Komponente führt definierte Prozessaktionen aus, verwaltet den Prozessstatus und protokolliert alle Prozessereignisse über die folgenden delegierten Komponenten:
    • Ein Anforderungshandler
    • Ein Staatsmanager
    • Ein Protokollmanager
    • Ein Definitionslader
    • Ein Ausführungsdienst
  • Prozessmonitor: Dieses Modul verfolgt, überwacht und meldet den Status von Prozessen während ihrer Ausführung
  • Prozesssprache: Die Prozessdefinitionssprache (jPDL) basiert auf GOP
  • Interaktionsdienste: Diese Dienste stellen ältere Anwendungen als Funktionen oder Daten zur Verfügung, die bei Prozessausführungen verwendet werden sollen

Die Beziehungen zwischen diesen Komponenten sind in Abbildung 1 dargestellt.

Wie in Abbildung 1 dargestellt, werden jBPM-Prozessdefinitionen, die Aktionshandler enthalten, von der jBPM-Prozess-Engine geladen und ausgeführt. Wenn die Prozess-Engine auf einen Knoten in der Prozessdefinition stößt, dem eine Aktion zugeordnet ist, werden alle zugehörigen Aktionshandler aufgerufen. Aktionshandler sind Instanzen von Java-Code, die bei der Ausführung mit externen Systemen interagieren.

Das folgende Beispiel zeigt einen einfachen Aktionshandler:

import org.jbpm.graph.def.*; import org.jbpm.graph.exe.*;

public class MyActionHandler implements ActionHandler { public void execute(ExecutionContext executionContext) { System.out.println("MyActionHandler has executed: " + executionContext); } }

Die PDL-Datei in einem Prozessarchiv heißt process-definition.xml. Diese Datei enthält die formale Beschreibung der Prozesse. Ein Beispiel für eine Datei process-definition.xml ist im folgenden Beispiel dargestellt:

Eine Prozessdefinition basiert auf einem gerichteten Graphen. Der Graph besteht aus Knoten, Übergängen, einem Startzustand und einem Endzustand. Der Typ jedes Knotens definiert das Laufzeitverhalten für den Knoten. Während eine Prozessdefinition ausgeführt wird, kommen die folgenden Entitäten ins Spiel:

  • Prozessinstanz: Eine Prozessinstanz ist eine Ausführung einer Prozessdefinition.
  • Token: Ein Token ist ein Ausführungspfad. Ein Token ist das Laufzeitkonzept, das einen Zeiger auf einen Knoten im Diagramm verwaltet. Wenn eine Prozessinstanz erstellt wird, wird ein Token für den Hauptausführungspfad erstellt. Dieses Token wird als Root-Token der Prozessinstanz bezeichnet und befindet sich im Startstatus der Prozessdefinition.
  • Signal: Ein Signal weist ein Token an, die Grafikausführung durch Übergang von einem Knoten fortzusetzen.
  • Knoten: Knoten sind für die Fortsetzung einer Diagrammausführung verantwortlich. Wenn ein Token einen Knoten betritt, wird der Knoten ausgeführt. Ein Knoten, der die Ausführung nicht weitergibt, wird als Status betrachtet.
  • Aktion: Aktionen sind Instanzen von Java-Code, die ausgeführt werden, wenn Ereignisse in einer Prozessausführung auftreten. Die primären Ereignistypen sind "Betreten eines Knotens", "Verlassen eines Knotens" und "Übergang".

Prozessdefinitionen können mit dem grafischen Modellierungsdesigner von jBPM einfach erstellt werden. Der Designer ist derzeit als Eclipse-Plug-In installiert. Abbildung 2 zeigt einen Beispielbildschirm des Grafikmodellierungsdesigners.

Der grafische Designer kann verwendet werden, um Prozessdefinitionen zu erstellen, Aktionshandler an Ereignisse anzuhängen, die Definitionsquelle zu bearbeiten, Prozessarchive zu erstellen, Prozessdefinitionen zu testen usw.

Bereitstellen von JBoss jBPM

JBoss jBPM speichert Prozessdefinitionen in einer Datenbank. Um einen Prozess in JBoss jBPM bereitzustellen, müssen Sie daher die Datei process-definition.xml analysieren und in der JBoss jBPM-Datenbank speichern. Dies kann erfolgen durch:

  • Verwenden der parmit JBoss jBPM gelieferten Ant-Task zum Erstellen eines Prozessarchivs.
  • Verwenden des Dienstprogramms deploypar. Dieses Dienstprogramm erstellt auch ein Prozessarchiv und stellt das Prozessarchiv in der jBPM-Datenbank bereit. Das Dienstprogramm deploypar verwendet eine Datei jBPM.properties als Attribut. Diese Datei gibt Konfigurationsoptionen an, einschließlich der Datenbank, in der das Prozessarchiv bereitgestellt werden soll.
  • Programmgesteuertes Parsen und Speichern der Datei process-definition.xml in einem Datenspeicher.

Ausführen von JBoss jBPM durch einige einfache Schritte

JBoss jBPM acts as an orchestration engine that sits in the middle of enterprise applications, enabling integration and coordination between different applications.

For this article, I use the sample deployment shipped with jBPM to discuss how jBPM and jPDL are used to create and modify a simple Web-enabled order processing system.

Downloading JBoss jBPM

The JBoss jBPM starter kit contains everything needed to execute JBoss jBPM, with the exception of a JDK. The JBoss Application Server in the JBoss jBPM starter kit requires J2SE 1.4 or a more recent version.

After you have downloaded the starter kit, unzip it to a directory of your choosing. Once you have unzipped the starter kit, you will have a directory structure similar to the following:

  • Jbpm-starters-kit-3.1
    • jbpm: Contains the source code for the JBoss jBPM product
    • jbpm-bpel: Contains information about the BPEL extension for JBoss jBPM
    • jbpm-db: Contains sample configurations for connecting JBoss jBPM to other databases
    • jbpm-designer: Contains the Eclipse plug-in for the JBoss jBPM Visual Process Designer
    • jbpm-server: Contains the JBoss Application Server along with the JBoss jBPM engine and the sample process

Execute the JBoss jBPM engine

To start the JBoss application server with jBPM deployed, go to the jbpm-server directory and execute the startup script found there. A command window should pop up with the jBPM console window, similar to Figure 3.

Now, bring up a browser window and go to //localhost:8080/jbpm. You will be presented with the login page for the sample Web application for JBoss jBPM, shown in Figure 4.

Melden Sie sich als Cookie-Monster an und wählen Sie den Link Neuen Webverkaufsauftrag erstellen. Dadurch wird eine neue Instanz des vorgefertigten "Web Sale" -Prozesses erstellt (siehe Abbildung 5).

Die eigentliche Definitionsdatei processdefinition.xml befindet sich in websale.par und ist in der folgenden Liste dargestellt: