Software Development

Open Source BPM – jBPM6 vs Camunda7

Styczeń 27, 2016 0
Podziel się:

Kilka tygodni temu miałem przyjemność pracować z platformą BPM (ang. Business Process Management), pochodzącą ze stajni Red Hat’a tj.: jBPM6. Z racji tego, że już wcześniej pracowałem z mniej znanym, konkurencyjnym rozwiązaniem, tj.: Camunda7, postanowiłem zbliżyć te technologie do siebie, ponieważ jestem zdania, że Camunda może sporo „namieszać” na rynku systemów BPM typu „Open Source”?

Porównanie jest moją subiektywną opinią wynikającą z pracy z powyższymi technologiami.

Przegląd jBPM6

Pracę z jBPM-em zacząłem od uruchomienia obrazu Docker-a. Takie podejście daje duże ułatwienie osobom usiłującym szybko poznać platformę bez wnikania w kwestię bazy danych i serwera aplikacyjnego. Po uruchomieniu środowiska mamy możliwość zalogowania się do aplikacji „Workbench”. Aplikacja ta stanowi element pracy zarówno osób technicznych, jak również użytkowników biznesowych. Nie wiem do końca czy takie połączenie było dobrym pomysłem, ponieważ osobom nietechnicznym, interfejs użytkownika może wydawać się mało intuicyjny i trudny do poruszania. Platforma kompleksowo zawiera funkcjonalności związane z modelowaniem, administrowaniem i zarządzaniem procesami.

Aplikacja umożliwia nam utworzenie projektu Git lub SVN (niestety nie udało mi się ;]). Za pomocą edytora BPMN możemy zamodelować proces, dodatkowo jesteśmy w stanie utworzyć model danych lub zaimportować go z istniejących klas Java. Edytor BPMN posiada wsparcie dla podstawowych komponentów HTML oraz umożliwia wygenerowanie domyślnych formularzy dla zadań typu „User Task”. Niestety brak jest możliwości podpięcia zewnętrznych formularzy np. JSF.

Dobrym rozwiązaniem jest możliwość definiowania, dynamicznego menu w „Workbench”. W tym celu możemy użyć JavaScript, a nawet AngularJS. Dużym minusem jest brak wsparcia dla „Responsive Web Design”.

Użytkownik biznesowy ma możliwość podglądu zadań oraz wykonywania akcji typu: claim, accept. Z dodatkowych opcji to: widok podglądu logu zmian, priorytetyzacja lub delegowanie zadań.

Użytkownik administracyjny może zobaczyć podgląd stanu procesu.

Do ciekawych funkcjonalności należy zaliczyć narzędzie do przeprowadzania symulacji procesów, zgodne ze standardem BPSim. Nie jest on może tak rozbudowany jak np. w IBM BPM, natomiast daje podstawowe możliwości przeprowadzenia symulacji procesu.

Warto wspomnieć również o podstawowym narzędziu BAM (ang. Business Activity Monitoring). Dodatkowo istnieje możliwość łatwej integracji z innym produktem Red Hat-a tj. Dashbuilder, który daje już bardziej zaawansowane opcje związane ze statystykami, monitoringiem, itp.

W trakcie pracy natrafiłem na sporo problemów z aplikacją, niektóre rozwiązując za pomocą zmiany przeglądarki (Chrome -> IE11). Z mojego punktu widzenia aplikacja sprawia wrażenie mocno niedopracowanej.

Przegląd Camunda7

Podobnie jak dla jBPM dostawca opisał platformę obrazem Docker, dzięki czemu miałem możliwość szybkiego postawienia środowiska.

Camunda dostarcza nam trzy oddzielne aplikacje web-owe, tj.: Camunda Tasklist, Camunda Cockpit oraz Camunda Admin. Do tego dochodzi jeszcze odrębne narzędzie służące do modelowania, tj.: Camunda Modeler, dostępne jako aplikacja typu standalone lub web.

Aplikacje są intuicyjne, wyglądają dobrze i nie sprawiają problemów technicznych. Wyjątek stanowi modeler, który sprawia wrażenie niedopracowanego, zawierającego błędy, np. podczas edycji pól typu properties. Dużym plusem jest wsparcie dla „Responsive Web Design”.

Camunda Tasklist jest przeznaczona dla użytkowników biznesowych. Podobnie jak w jBPM, udostępnia opcje związane z przeglądem zadań oraz startem procesów. Fajną opcją jest możliwość tworzenia filtrów, za pomocą których użytkownik dokonuje personalizacji aplikacji. Camunda Tasklist wspiera cztery rodzaje formularzy dla zadań, tj.: embedded – wbudowane w aplikację TaskList formularze oparte o HTML, generated – wygenerowane z XML na podstawie metadanych BPMN 2.0, external – skierowane do formularzy innej aplikacji np. napisanej w JSF oraz generic –  wygenerowane na podstawie zmiennych procesowych.

Camunda Cockpit skierowana jest do użytkowników technicznych. Istnieje możliwość podglądu definicji, instancji oraz stanu procesów. Dodatkowo użytkownik ma możliwość podglądu logu w przypadku błędu i ewentualnego ponowienia akcji. Za pomocą plugin extension jesteśmy w stanie rozbudować tab menu, np. dokładając zakładkę z linkiem do innej aplikacji lub z raportami.

Camunda Admin udostępnia funkcjonalności administratorom platformy, związane z zarządzaniem użytkownikami, grupami oraz autoryzacją do poszczególnych aplikacji. Dodatkowo istnieje możliwość zarządzania definicjami, instancjami procesów oraz zadań w kontekście dostępu.

Platforma Camunda BPM na chwilę obecną nie dostarcza narzędzia typu BAM. Oczywiście istnieje możliwość integracji np. z Elasticsearch/Kibana, ale jest to dodatkowy narzut na technologię i development.

Porównanie

jBPM Camunda
Narzędzie do modelowania (Web, Eclipse) tak tak
Wsparcie BPMN 2.0 tak tak
Wsparcie CMMN 1.1 nie tak
Wsparcie DMN 1.1 nie tak
Integracja z Spring Framework tak tak
Integracja z Java EE, CDI tak tak
Wsparcia dla OSGi tak tak
Obraz dla Docker tak tak
Symulacje procesów tak nie
BAM tak nie
Integracja z Java API tak tak
Integracja z Rest API tak tak

Podsumowanie

Zaprezentowane powyższe dwie platformy różnią się w znacznym stopniu swoją wizją rozwoju.

Zgodnie z wizją „Zero-Code”, Red Hat stworzył kompleksową, zintegrowaną platformę, która ma być dostępna dla użytkownika nietechnicznego. Dzięki temu w jednym środowisku może być wykonany pełny cykl związany z analizą, modelowaniem, zarządzaniem, wdrażaniem i monitorowaniem procesów biznesowych. Niesie to ze sobą pewne konsekwencje, jak np. uzależnienie się do sprzedawcy (Red Hat) oraz słaba elastyczność na dostosowanie rozwiązania do wymagań korporacyjnych.

Z drugiej strony Camunda kierując się wizją „Developer-Friendliness”, utworzyła profesjonalną, wydajną platformę, której zadaniem jest, jak najlepsza integracja ze środowiskiem klienta. Co prawda wymaga od zespołu deweloperskiego zintegrowania jej z innymi komponentami, w celu wypełnienia luk funkcjonalnych, takich jak np. symulacje oraz BAM, ale tym samym potwierdza elastyczność rozwiązania i niezależność od dostawcy.

Oceń ten post
Tagi: ,
inżynier Kwiecień
Autor: Piotr Marzec
Senior Java Developer

Imię i nazwisko (wymagane)

Adres email (wymagane)

Temat

Treść wiadomości

Zostaw komentarz