Procesy biznesowe w praktyce Przykłady użycia z wykorzystaniem jbpm 4.4 1
Agenda Definicja i zastosowanie procesu biznesowego Języki dziedzinowe (DSL) a rozwiązania BPM JBPM: jbpm 4.4 krótka charakterystyka biblioteki jbpm 4.4 podstawowe elementy i serwisy jbpm 4.4 planowanie, projektowanie, kodowanie jbpm 4.4 wdrożenie, aktualizacja, utrzymanie 2
3 Definicja i zastosowanie procesu biznesowego
Czym jest proces? Proces to uporządkowana sekwencja następujących po sobie zdarzeń prowadząca do osiągnięcia określonego celu 4
Czym jest cel biznesowy? Stan (w kontekście biznesowym) którego osiągnięcie prowadzi do uzyskania określonej korzyści 5
Czym jest proces biznesowy? Sekwencja akcji wykonana przez system oraz ludzi w celu osiągnięcia założonego celu biznesowego 6
Gdzie można wykorzystać BPM? Bankowość, leasing, ubezpieczenia Telekomunikacja Wymiana handlowa Procesy biznesowe znajdują realne zastosowanie wszędzie tam, gdzie osiągnięcie celu biznesowego jest zadaniem złożonym, czasochłonnym, wymagającym niejednokrotnie uczestnictwa wielu grup ludzi. 7
8 Języki dziedzinowe (DSL) a rozwiązania BPM
BPMN2.0 BPMN = Business Process Model and Notation Notacja graficzna służąca do opisu procesów biznesowych. BPMN rozwijany jest jako standard przez grupę OMG. Jedną z głównych zalet notacji jest jej jednoznaczność, pozwalająca na zrozumienie idei procesu przez wszystkich biorących w nim udział uczestników (analityk, developer) 9
10 BPMN2.0 reprezentacja graficzna
JPDL JPDL = jbpm Process Definition Language Charakterystyczna dla biblioteki jbpm notacja pozwalająca na tworzenie, opis i archiwizację procesów biznesowych. JPDL definiuje odpowiedni schemat XML (ang. XML schema) dzięki któremu można nie tylko uruchomić proces, ale również przedstawić go w formie graficznej. 11
JPDL przykład podprocesu <?xml version="1.0" encoding="utf-8"?> <process key="verify" name="verify" xmlns="http://jbpm.org/4.4/jpdl"> <start name="start" g="13,62,49,49"><transition to="esb verification"/></start> <java name="esb verification" g="96,60,109,49"><transition to="fork executions"/></java> <fork name="fork executions" g="240,60,48,48"> <transition to="send email"/> <transition to="persist"/> </fork> <task name="send email" g="324,12,92,49"><transition to="join executions"/></task> <java name="persist" g="324,108,92,49"><transition to="join executions"/></java> <join name="join executions" g="444,60,48,48"><transition to="end"/></join> <end name="end" g="528,61,48,48"/> </process> 12
13 JPDL reprezentacja graficzna
jbpm 4.4 krótka charakterystyka biblioteki 14
jbpm 4.4 autoprezentacja jbpm is a flexible Business Process Management (BPM) Suite. It's light-weight, fully open-source (distributed under Apache license) and written in Java. It allows you to model, execute and monitor business processes, throughout their life cycle. http://docs.jboss.org/jbpm 15
jbpm 4.4 charakterystyka [+] Język implementacji = 100% Java [+] Łatwość integracji z dowolnym środowiskiem [+/-] Rozwiązanie typu do-it-yourself [-] Własny język opisu dziedziny (JPDL) [-] Mocne powiązanie z warstwą danych 16
17 jbpm 4.4 integracja z Eclipse
18 jbpm 4.4 konsola administracyjna
jbpm 4.4 podstawowe elementy i serwisy 19
20 jbpm 4.4 definicja procesu
21 jbpm 4.4 instancja procesu
22 jbpm 4.4 wykonanie (execution)
jbpm 4.4 - ProcessEngine ProcessEngine processengine = new Configuration().setResource("my-own-configuration-file.xml").buildProcessEngine(); Punkt startowy całego silnika jbpm Odpowiednik SessionFactory z biblioteki Hibernate Źródło wszystkich serwisów silnika 23
jbpm 4.4 RepositoryService RepositoryService repositoryservice =processengine.getrepositoryservice(); return repositoryservice.createdeployment(); Pozwala na zarządzanie definicjami procesów Umożliwia instalowanie i usuwanie procesów Udostępnia zasoby na poziomie InputStream 24
jbpm 4.4 ExecutionService ExecutionService executionservice = processengine.getexecutionservice(); executionservice.startprocessinstancebykey( VERIFY ); Najważniejszy serwis z punktu widzenia wykonania Pozwala odnaleźć i uruchomić proces Umożliwia manipulację zmiennymi i przebiegiem procesu 25
jbpm 4.4 TaskService TaskService tservice = processengine.gettaskservice(); Set<String> names = tservice.getvariablenames(taskid); Zapewnia dostęp do zadań (ang. Task) Pozwala na kontrolowanie zmiennych zadania Umożliwia zmianę stanu/zakończenie zadania 26
jbpm 4.4 HistoryService HistoryService historyservice = processengine.gethistoryservice(); return historyservice.createhistoryactivityinstancequery(); Udostępnia informacje na temat zakończonych procesów Pozwala pobrać historyczne wartości zmiennych 27
jbpm 4.4 planowanie, projektowanie, kodowanie 28
jbpm 4.4 planowanie Dzięki zastosowaniu bazującemu na idei BPM etap planowania zbieżny jest w dużym stopniu z analizą biznesową modelowanego zagadnienia. W nowej wersji biblioteki (5.x) etapy planowania i projektowania zostały jeszcze bardziej uproszczone poprzez zastosowanie BPMN 2.0 29
jbpm 4.4 projektowanie W wersji 4.4 biblioteki projektowanie sprowadza się do przygotowania diagramów w notacji JPDL. Graficzna reprezentacja przepływu informacji jest mniej czuła na zmiany wymagań których szczególnie dużo pojawia się na etapie projektu biznesowo-systemowego. 30
jbpm 4.4 kodowanie Kodowanie w jbpm polega na oprogramowaniu klas odpowiedzialnych za przetwarzanie zarówno zadań automatycznych jak i użytkownika (UI). Podejście oparte o BPM zmniejsza ciężar zarządzania przepływem danych i stanowością systemu. 31
jbpm 4.4 wdrożenie i utrzymanie Wdrożenie składa się z instalacji oprogramowania (jbpm jest najczęściej stałą składową systemu) oraz umieszczenia definicji procesów w bazie danych. Utrzymanie polega na aktualizacji definicji procesów (kod utrzymywany jest niezależnie od procesów) oraz manipulacji stanem uruchomionych instancji. 32
Dziękuję za uwagę! raczka.lukasz.dev@gmail.com 33