• Geeks' Blog

Tworzenie pierwszego procesu biznesowego w jBPM

jBPM wykorzystuje język BPMN (Business Process Model and Notation) do tworzenia i modelowania procesów biznesowych. Dzięki BPMN można w prosty sposób wizualizować, definiować i wdrażać procesy, które odwzorowują rzeczywiste przepływy pracy.

Modelowanie procesów w jBPM polega na graficznym przedstawieniu kroków oraz zależności pomiędzy nimi, co umożliwia tworzenie przejrzystych schematów przepływów. Można w jBPM definiować różnorodne elementy procesów, takie jak punkty decyzyjne, zadania użytkownika, bramki logiczne czy komunikaty, tworząc w ten sposób kompletny proces, który może być zautomatyzowany i monitorowany.

jBPM wspiera także zarządzanie regułami biznesowymi i integrację z zewnętrznymi systemami, co pozwala na budowę zaawansowanych procesów, odpowiadających na potrzeby konkretnych scenariuszy biznesowych.

Menu jBPM

Po zalogowaniu się jako administrator do jBPM na stronie startowej zobaczysz stronę startową z czterema kategoriami:

Design - projektowanie i wdrażanie modeli biznesowych, tworzenie stron [raporty]

Deploy - zarządzanie wdrożonymi procesami. Umożliwia przegląd i zarządzanie kontenerami procesów, wdrażanie nowych jednostek, pracę z różnymi wersjami oraz ustawianie strategii wykonywania procesów.

Manage - umożliwia zarządzanie uruchomionymi procesami i zadaniami użytkowników. Można tu monitorować aktywne instancje procesów, zarządzać zadaniami (np. przypisywać je, zatwierdzać) oraz przeglądać historię wykonanych procesów i audytów.

Track - służy do monitorowania i śledzenia aktywności procesów biznesowych. Umożliwia przeglądanie aktualnych instancji procesów, ich statusów, historii wykonania oraz szczegółów poszczególnych kroków. Jest to pomocne przy analizie przepływów, diagnozowaniu problemów i optymalizacji procesów.

By utworzyć pierwszy projekt w jBPM i wdrożyć go, przejdziesz kolejno przez kroki:

Space => Project => Assets => Deploy

Space

W jBPM "Spaces" pełnią rolę organizacyjną, podobnie jak przestrzenie nazw (ang. namespaces) w Java, takie jak com.jakisProjekt. W Java przestrzenie nazw są tworzone przy użyciu pakietów (np. com.jakisProjekt), co pozwala grupować powiązane klasy i zasoby, unikając konfliktów nazw między różnymi projektami.

Podobnie w jBPM, spaces pomagają strukturyzować projekty w odrębne, logiczne obszary. W każdym z nich użytkownicy mogą tworzyć procesy, reguły i inne zasoby, które są niezależne od zasobów w innych przestrzeniach, co ułatwia pracę zespołów nad różnymi projektami w jednej instancji jBPM. Taka organizacja przypomina strukturę pakietów w programowaniu, umożliwiając lepsze zarządzanie zależnościami oraz wersjonowanie.

W jBPM nazwy przestrzeni (ang. spaces) powinny być jasne, opisowe i odzwierciedlać cel lub obszar działalności, do którego są przypisane. Pomaga to w zarządzaniu i organizowaniu procesów w większych środowiskach, zwłaszcza gdy wiele zespołów pracuje równolegle nad różnymi projektami.

Zalecenia dotyczące nazw przestrzeni w jBPM:

  1. Opisowe i związane z obszarem działania:

    • Przykłady: sales-processes, hr-approvals, inventory-management. Takie nazwy jasno wskazują, do jakiego obszaru lub działu organizacji należy przestrzeń.
  2. Konsystencja z konwencjami nazw:

    • Stosowanie struktury nazw podobnej do konwencji w Java, np. com.companyname.projectname, pozwala na zachowanie porządku i jednoznaczności, zwłaszcza w większych organizacjach.
  3. Uwzględnienie wersji lub środowisk:

    • Jeśli przestrzenie są używane w różnych etapach projektu lub środowiskach, warto dodać informacje o wersji lub środowisku, np. dev-sales-processes (środowisko deweloperskie) czy prod-inventory-management (środowisko produkcyjne).
  4. Unikanie ogólnych nazw:

    • Nazwy takie jak "jakaś przestrzeń" są niepraktyczne i mogą prowadzić do zamieszania. Zamiast tego, przestrzenie powinny mieć konkretne, łatwe do zrozumienia i przypisania nazwy.

Przykłady dobrych nazw:

  • finance-processes – procesy związane z finansami.
  • customer-service – przestrzeń dla procesów obsługi klienta.
  • order-fulfillment – przestrzeń związana z realizacją zamówień.
  • production-workflows – przestrzeń dla procesów produkcyjnych.
  • support-ticketing-system – przestrzeń dla procesów systemu zgłoszeń.

Dzięki takim nazwom łatwiej jest zarządzać i segregować procesy, co jest szczególnie ważne w dużych organizacjach. Klarowne nazewnictwo pomaga uniknąć nieporozumień i ułatwia odnalezienie potrzebnych zasobów.

Utwórz zatem przestrzeń klikając na przycisk "Add space".

Projekt

W jBPM projekt to zbiór zasobów, które umożliwiają definiowanie i zarządzanie procesami biznesowymi. Kluczowe elementy w menu 'Projekt' to:

  • Procesy – Zawiera definicje przepływów pracy w formacie BPMN.
  • Reguły – Określenie zasad biznesowych wykorzystywanych w procesach.
  • Deployment – Wdrożenie projektu na środowisku jBPM.
  • Zasoby – Elementy wspierające procesy, takie jak usługi, dane, formularze.

Projekt w jBPM służy do organizowania i zarządzania tymi zasobami, a także do ich wdrażania i monitorowania w systemie.

Wybierz zatem z menu "Add Project". Do nazewnictwa projektów (nie używaj spacji) możesz użyć trzech popularnych konwencji:

  • CamelCase – Każdy wyraz zaczyna się wielką literą, np. SalesProcess.
  • Podkreślenia (snake_case) – Wyrazy oddzielone są podkreśleniami, np. sales_process.
  • Kebab-case – Wyrazy oddzielone są myślnikami, np. sales-process.

Każda z tych metod poprawia czytelność nazw i zapobiega problemom z kompatybilnością, które mogą wynikać z użycia spacji lub innych znaków specjalnych.

Assets

W jBPM assets to zasoby projektu, które wspierają tworzenie i zarządzanie procesami biznesowymi. Główne typy assets w jBPM to:

  • Procesy – Modele BPMN definiujące sekwencje działań w procesie.
  • Reguły biznesowe – Logika decyzyjna sterująca przebiegiem procesów.
  • Formularze – Interfejsy użytkownika do wprowadzania i przetwarzania danych w procesach.
  • Obiekty danych (Data Objects) – Przechowują i przekazują dane między elementami procesów.

Kliknij na "Add Asset" i wybierz "Business process"

Więcej…

Instalacja JBPM

jBPM to elastyczny pakiet Business Process Management (BPM). Jest lekki, w pełni open-source (dystrybuowany na licencji Apache License 2.0) i napisany w Javie. Umożliwia modelowanie, wykonywanie i monitorowanie procesów biznesowych i przypadków przez cały cykl ich życia.

jBPM korzysta z następujących komponentów:

  • Serwera aplikacji WildFly (wersja community Jboss Entreprise Application Server) rozwijanej przez Red Hat 
  • Drools jako silnik reguł biznesowych, Artemis JMS do obsługi komunikacji między komponentami,
  • KIE Server - lekki serwer wykonawczy, który służy do uruchamiania procesów biznesowych BPMN, reguł Drools oraz optymalizacji OptaPlanner. Jego główną rolą jest wykonywanie tych elementów w oparciu o zadania przekazywane przez API (REST lub JMS). Sam KIE Server nie oferuje interfejsu graficznego do modelowania – jest jedynie serwerem uruchamiającym procesy i reguły. Kiedy finalnie uruchomisz http://localhost:8080/business-central połączysz sie właśnie z KIE Server
  • KIE Workbench - aplikacja webowa działająca na serwerze aplikacyjnym (np. WildFly), która udostępnia graficzny interfejs do modelowania procesów BPMN, zarządzania regułami Drools i tworzenia formularzy.

Pobranie JBPM i przygotwanie systemu operacyjnego

jBPM wymaga Maven. jBPM jest zbiorem bibliotek i zależności zewnętrznych (np. Hibernate, Drools, itp.), które muszą być zainstalowane i dostępne podczas kompilacji i uruchamiania aplikacji. Maven pozwala na łatwe zarządzanie tymi zależnościami jBPM jest podzielone na różne moduły (np. jBPM core, jBPM console, jBPM human task, itp.), z których każdy może mieć swoje własne zależności. Maven pozwala na zarządzanie tymi zależnościami i modułami w sposób spójny, co ułatwia zarówno rozwój, jak i utrzymanie projektu.

Maven

Pobierz Maven ze strony https://maven.apache.org/download.cgi a następnie dodaj do zmiennych Windows 'MAVEN_HOME' oraz  do zmiennej 'PATH' scieżkę '%MAVEN_HOME%\bin'.

Repozytorium projektów JBPM będzie domyślnie przechowywane w:

C:\Users\user\.m2\repository

Możesz to zmienić ustawiając zmienna M2_HOME z odpowiednią ścieżką.

Java

JBPM nie uruchamia się w środowisku Java wyższym niż versja 8. Pobierz JDK np w wersji 'jdk8u432-b06'. Nie musisz ustawiać JAVA_HOME ze wskazaniem na tę wersję, wystarczy że ustawisz ją w pliku który uruchamia JBPM, standalone.bat:

set "JAVA_HOME=C:\Program Files\Java\jdk8u432-b06"

Pobranie JBPM

Ze strony https://www.jbpm.org/download/community.html pobierz zip oznaczony 'Download jBPM 7.74.1.Final server (single zip) distribution'. Po rozpakowaniu na dysku, upenij się że system będzie miał prawo zapisu w katalogach JBPM - pisanie do pliku konfiguracyjnego, tworzenie XML z ustawieniami serwera, pobieranie konektorów bazy danych i tworzenie konfiguracji połączenia.

Przygotowanie bazy danych

Domyślna instalacja JBPM zawiera baze danych H2. Do celów produkcyjnych potrzebujesz innej. Jeśli zdecydujesz sie na skorzytanie z MySQL lub Postgresql, JBPM ma skrypt ktory wykona konfigurajcę za Ciebie. Najlepszym pomysłem będzie użycie Postgresql (MySQL czesto faktycznie jest bazą MariaDB, domyslny konektor ktory przychodzi z instalacja JBPM nie wspolpracuje z MySQL w Windows a po instalacji mysql-connector-java-5.1.49-bin.jar JBPM mimo ze uzywa bazy, zglasza w logu bledy o niekompatybilnosci). Użyjemy zatem Postgresql.

Instalacja Postgresql

Nie musisz instalować bazy Postgres trwale w systemie. Do celów testu wystarczy pobranie np postgresql-17.0-1-windows-x64-binaries ze strony https://www.postgresql.org/download/. Po rozpakowaniu zip uruchom polecenia:

# Inicjacja bazy (wcześniej ustaw użytkownika w config, katalogu share). Katalog 'data' przechowuje dane.
initdb -D Z:\Postgresql\data -U postgres -A scram-sha-256 --pwprompt
# Uruchamianie 
pg_ctl -D "Z:/Postgresql/data" -l "plik_dziennika.log" start
# Sprawdzanie statusu
pg_ctl -D "Z:/Postgresql/data" status
# Zatrzymanie:
pg_ctl -D "Z:/Postgresql/data" stop

Utworz baze, użytkownika dla JBPM i nadaj uprawnienia

Dobrym pomysłem będzie użycie DBeaver - jest lżejszy niż PGAdmin. Korzystając z tego GUI (zaznacz opcje 'show all databases' we właściwościach połączenia) utwórz baze 'jbpm', użytkownika 'jbpm' z hasłem 'jbpm' (to test) a następnie wykonaj szereg poleceń SQL by nadać temu użytkownikowi odpowiednie uprawnienia:

GRANT CONNECT ON DATABASE jbpms TO jbpm;
GRANT USAGE ON SCHEMA public TO jbpm;
GRANT CREATE ON SCHEMA public TO jbpm;
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO jbpm;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO jbpm;

Więcej…

Instalacja Camunda w klastrze Kubernetes za pomocą Rancher

Zestaw aplikacji możemy zainstalować w klastrach Kubernetes na dwa sposoby:

  • Instalacja Helm Chart przez CLI (użycie konsoli)
  • Instalacja Helm Chart przez GUI Ranchera

W tym tutorialu wykorzystamy ten pierwszy sposób.

Wybranie właściwego klastra

Repozytorium i instalację aplikacji przeprowadzamy w wybranym przez nas klastrze w Rancher. Pamiętaj by nie tworzyć klastra dla aplikacji na tej samej maszynie na której działa już klaster Rancher - dwa klastry na tym samym hoscie to konflikty ip, portów, ram, cpu (taka instalacja wymaga specjalnej konfiguracji). Upewnij się że działasz na właściwym klastrze. Wybierz 'Home" a następnie kliknij na właściwy klaster (tutaj jest to 'camunda-cluster'):

Dodanie repozytorium Helm

Camunda posiada reposytorium Helm. Możesz dodać to repozytorium Helm z chartami Camunda, aby móc z nich korzystać. Po wykonaniu tego kroku Helm będzie mógł pobierać i instalować chart'y dostępne pod adresem https://helm.camunda.io.

Krok wyżej wybrał(a)ś właściwy klaster. Teraz rozwiń 'Apps' i kliknij na 'Repositories'. Następnie klinij przycisk 'Create':

Na ekranie który pojawi się po wciśnięciu przycisku "Create" wpisz dane repozytorium plus dodatkowy opis:

Instalowanie aplikacji

Helm charts to gotowe pakiety do zarządzania aplikacjami na Kubernetes, które zawierają definicje zasobów potrzebnych do instalacji oraz konfiguracji aplikacji w klastrze. We wcześniejszym kroku dodaliśmy ich repozytorium dla aplikacji Camunda. W tym kroku przechodzimy do ich wyboru. Rozwiń menu "Apps" i kliknij na "Charts". W filtrze wpisz pierwsze litery nazwy naszej aplikacji ('cam'): 

Więcej…

Instalacja Rancher do obslugi klastrow Kubernetes

Co potrzebujemy by uruchomić Kubernetes

Poniższy tutorial jest o tym jak stworzyć testowe środowisko Kubernetes. Nie jest to materiał szkoleniowy o samym Kubernetes ani też o pozostałych komponentach które są wymagane dla uzyskania tego środowiska. Kubernetes jest systemem zlożonym i jego poznanie wymaga zaangażowania. 

Kubernetes to system do zarządzania kontenerami, który automatyzuje wdrażanie, skalowanie i zarządzanie aplikacjami kontenerowymi w klastrze. Umożliwia łatwe zarządzanie grupą kontenerów jako jedną jednostką. Dlaczego wymaga środowiska Docker?

  • Platforma Kontenerowa:  Kubernetes wykorzystuje Docker do tworzenia i zarządzania kontenerami.
  • Standardizacja: Kubernetes opiera się na standardach kontenerów, a Docker jest de facto standardem dla tworzenia tych kontenerów.

Kubernetes najczęściej uruchamiany jest z kontenerami Docker, jest systemem orkiestracji kontenerów, ale może wykorzystywać także inne środowiska niż Docker do tworzenia kontenerów. 

Dlaczego uruchamianie Dockera w Windows to bardzo zły pomył?

Choć docker.com udostępnia swoje oprogramowanie także dla systemu operacyjnego Windows, w praktyce nie nadaje się ono nawet do testów nie mówiąc już  produkcyjnej instalacji Dockera. Instalacja Docker'a potrafi się zaorać sama z siebie w Windows w każdym momencie bez właściwie żadnej przyczyny. Oto kilka punktów 'formalnych' dlaczego Docker w Windows to niezbyt wspaniały pomysł:

  1. Wydajność: Docker na Windows wymaga maszyny wirtualnej, co wprowadza dodatkowy narzut i opóźnienia w uruchamianiu kontenerów.

  2. Kompatybilność: Niektóre obrazy są zoptymalizowane dla Linuxa i mogą nie działać poprawnie na Windowsie.

  3. Ograniczone Narzędzia: Mniej narzędzi do zarządzania kontenerami, co utrudnia automatyzację i monitorowanie.

  4. Problemy z Systemem Plików: Różnice w systemach plików mogą prowadzić do problemów z wydajnością i interoperacyjnością.

Dla środowisk produkcyjnych zaleca się korzystanie z systemów Linux.

Więcej…

Strona 2 z 27

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
© 2025
Powered by DataGeeks & Human Intelligence