Zarządzaj procesami biznesowymi z JBoss jBPM

Przedsiębiorstwa pilnie poszukiwały ustrukturyzowanego podejścia do projektowania działań / transakcji biznesowych i ich wykonywania, najlepiej przy użyciu zautomatyzowanych procesów. Zarządzanie procesami biznesowymi (BPM) i zarządzanie przepływem pracy oferują rozwiązanie tego problemu za pomocą pojęć takich jak akcje, zadania i przepływy.

W tym artykule przedstawiono BPM oraz omówiono techniki i narzędzia, które pozwalają usprawnić systemy przedsiębiorstwa za pomocą BPM i zarządzania przepływem pracy przy użyciu JBoss jBPM.

Termin zarządzanie procesami biznesowymi zwykle odnosi się do zestawu działań, które przedsiębiorstwa mogą zastosować w celu automatyzacji i optymalizacji procesów biznesowych w sposób umożliwiający dostosowanie się do dynamicznie zmieniających się środowisk. Działania te zwykle wymagają pomocy inżynierów oprogramowania i narzędzi; dlatego też termin BPM jest często używany bezpośrednio w odniesieniu do technik i narzędzi inżynierskich.

BPM jest zawarte w trzech różnych praktykach:

  1. Projektowanie procesów: zadanie projektowania istniejących i nowych procesów
  2. Wykonanie procesu: wykonanie zautomatyzowanej sekwencji powiązanych zdarzeń obejmujących procesy oprogramowania i / lub działania człowieka
  3. Monitorowanie procesów: obserwacja i audyt stanu poszczególnych procesów, aby statystyki i wydajność tych procesów mogły być rejestrowane, raportowane i optymalizowane

BPM stara się umożliwić inżynierom oprogramowania korzystanie z tych samych koncepcji i struktur, co analitycy biznesowi; w konsekwencji dostawcy oprogramowania próbowali stworzyć narzędzia, które umożliwią przedsiębiorstwom przechwytywanie, projektowanie i optymalizację procesów biznesowych poprzez wykorzystanie narzędzi do modelowania graficznego, języków specyficznych dla domeny i zastrzeżonych aplikacji.

JBoss jBPM 3.0 zapewnia możliwość opracowywania nowych zautomatyzowanych procesów biznesowych i przepływów pracy z orkiestracją zgodną ze standardami branżowymi przy użyciu języka BPEL (Business Process Execution Language), elastycznego i podłączanego interfejsu API, natywnego języka definicji procesów oraz graficznego narzędzia do modelowania.

JBoss jBPM to platforma open source (licencja LGPL) obejmująca API, narzędzia i język definicji języka Java, która może działać jako aplikacja internetowa lub samodzielna aplikacja Java. JBoss jBPM działa jako pośrednik między analitykami biznesowymi a programistami, udostępniając im wspólny język definicji procesów zwany jPDL .

Omówienie architektury JBoss jBPM

JBoss jBPM definiuje definicje procesów w plikach zapisanych przy użyciu języka definicji procesów JBoss. jPDL to graficzny język programowania (GOP) oparty na modelu węzłów, przejść i akcji. W tym modelu węzły są poleceniami wykonywanymi w miarę ich napotykania podczas przepływu definicji procesu. Przejścia kierują przebiegiem wykonywania definicji procesu, a akcje wykonują określoną logikę w momencie wystąpienia węzła lub zdarzenia przejścia.

W jBPM definicje procesów są spakowane jako archiwa procesów. Archiwum procesów jest przekazywane do silnika procesów jPDL w celu wykonania. Silnik procesu jPDL przechodzi przez wykres procesu, wykonuje określone działania, utrzymuje stan procesu i rejestruje wszystkie zdarzenia procesu.

JBoss jBPM jest zamknięty w następujących komponentach:

  • Silnik procesu: ten komponent wykonuje określone działania procesu, utrzymuje stan procesu i rejestruje wszystkie zdarzenia procesu za pośrednictwem następujących komponentów delegatów:
    • Osoba obsługująca żądania
    • Kierownik stanu
    • Menedżer dziennika
    • Ładowarka definicji
    • Usługa wykonania
  • Monitor procesów: ten moduł śledzi, kontroluje i raportuje stan procesów w trakcie ich wykonywania
  • Język procesu: język definicji procesu (jPDL) jest oparty na GOP
  • Usługi interakcji: te usługi udostępniają starsze aplikacje jako funkcje lub dane do wykorzystania podczas wykonywania procesów

Zależności między tymi komponentami przedstawiono na rysunku 1.

Jak pokazano na rysunku 1, definicje procesów jBPM zawierające procedury obsługi akcji są ładowane i wykonywane przez silnik procesów jBPM. Gdy silnik procesu napotka węzeł w definicji procesu, z którym jest skojarzona akcja, wywoływane są wszystkie powiązane procedury obsługi akcji. Programy obsługi akcji to instancje kodu Java, które podczas wykonywania wchodzą w interakcję z systemami zewnętrznymi.

Poniżej znajduje się przykład prostego programu obsługi akcji:

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

Plik PDL w archiwum procesu nosi nazwę process-definition.xml. Ten plik zawiera formalny opis procesów. Przykład pliku process-definition.xml ilustruje poniższy przykład:

Definicja procesu jest oparta na ukierunkowanym grafie. Wykres składa się z węzłów, przejść, jednego stanu początkowego i jednego stanu końcowego. Typ każdego węzła definiuje zachowanie węzła w czasie wykonywania. Podczas wykonywania definicji procesu w grę wchodzą następujące elementy:

  • Instancja procesu: instancja procesu to jedno wykonanie definicji procesu.
  • Token: token to jedna ścieżka wykonania. Token to koncepcja środowiska wykonawczego, która utrzymuje wskaźnik do węzła na wykresie. Podczas tworzenia instancji procesu tworzony jest token dla głównej ścieżki wykonania. Ten token jest nazywany tokenem głównym instancji procesu i znajduje się w stanie początkowym definicji procesu.
  • Sygnał: sygnał instruuje token, aby kontynuował wykonywanie wykresu poprzez wyjście z węzła.
  • Węzeł: Węzły są odpowiedzialne za kontynuację wykonywania wykresu. Gdy token wchodzi do węzła, węzeł jest wykonywany. Węzeł, który nie propaguje wykonania, jest traktowany jako stan.
  • Akcja: Akcje to instancje kodu Java wykonywane, gdy wystąpią zdarzenia podczas wykonywania procesu. Podstawowe typy zdarzeń to „wejście do węzła”, „opuszczenie węzła” i „przejście”.

Definicje procesów można łatwo tworzyć za pomocą graficznego projektanta modelowania jBPM. Projektant jest obecnie zainstalowany jako wtyczka Eclipse. Rysunek 2 przedstawia przykładowy ekran z graficznego projektanta modelowania.

Graficzny projektant może służyć do tworzenia definicji procesów, dołączania programów obsługi akcji do zdarzeń, edytowania źródła definicji, tworzenia archiwów procesów, testowania definicji procesów i tak dalej.

Wdrażanie JBoss jBPM

JBoss jBPM przechowuje definicje procesów w bazie danych. Dlatego wdrożenie procesu w JBoss jBPM wymaga przeanalizowania procesu process-definition.xml i zapisania go w bazie danych JBoss jBPM. Można to zrobić poprzez:

  • Użycie parzadania Ant dostarczonego z JBoss jBPM do utworzenia archiwum procesów.
  • Korzystanie z narzędzia deploypar. To narzędzie tworzy również archiwum procesów i wdraża je w bazie danych jBPM. Narzędzie deploypar przyjmuje jako atrybut plik jBPM.properties. Ten plik określa opcje konfiguracyjne, w tym bazę danych, w której ma zostać wdrożone archiwum procesu.
  • Programowe analizowanie i przechowywanie pliku process-definition.xml w magazynie danych.

Uruchomienie JBoss jBPM w kilku prostych krokach

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.

Zaloguj się jako potwór cookie i wybierz łącze Utwórz nowe zamówienie sprzedaży internetowej. Spowoduje to utworzenie nowej instancji wstępnie utworzonego procesu „sprzedaży internetowej”, zilustrowanego na rysunku 5.

Rzeczywisty plik definicji, processdefinition.xml, znajduje się w websale.par i jest zilustrowany na poniższej liście: