Automatyzacja procesów biznesowych w środowisku Oracle BPM 11g
Transkrypt
Automatyzacja procesów biznesowych w środowisku Oracle BPM 11g
XVII Konferencja PLOUG Kościelisko Październik 2011 Automatyzacja procesów biznesowych w środowisku Oracle BPM 11g: zagadnienia wdrożeniowe Maciej Zakrzewicz Politechnika Poznańska Streszczenie: Oracle BPM 11g jest jedną z najpopularniejszych korporacyjnych platform automatyzacji i obsługi procesów biznesowych, opartą o koncepcję architektury zorientowanej na usługi (SOA). W skład platformy wchodzą m.in.: repozytorium BPM - baza danych przechowująca definicje procesów biznesowych oraz stany bieżących i historycznych instancji procesów biznesowych, serwer BPM nieprzerwanie pracująca aplikacja serwerowa, która koordynuje wykonanie instancji procesów biznesowych, BPM Workspace - aplikacja dostępna za pośrednictwem przeglądarki WWW, umożliwiająca kontakt użytkowników końcowych z instancjami procesów biznesowych oraz realizację działań manualnych będących krokami składowymi procesów biznesowych, narzędzia Process Composer i JDeveloper służące analitykom i programistom do modelowania i implementacji nowych procesów biznesowych, narzędzie Enterprise Manager wspomagające pracę administratora systemu zarządzania procesami biznesowymi, umożliwiające obserwację stanu każdej bieżącej lub historycznej instancji procesu biznesowego, a także diagnozowanie przyczyn ewentualnych awarii. W referacie przedstawiono architektury i funkcjonalność składników Oracle BPM 11g oraz omówiono wybrane doświadczenia z wdrażania systemów zarządzania procesami biznesowymi opartych o Oracle BPM 11g. Automatyzacja procesów biznesowych w środowisku Oracle BPM 11g: zagadnienia wdrożeniowe 131 1. Wprowadzenie Pod pojęciem procesu biznesowego rozumie się ustrukturyzowany zestaw czynności, manualnych lub automatycznych, które służą dostarczeniu klientowi lub klientom konkretnego produktu lub usługi. Krokami procesów biznesowych mogą być wywołania funkcji/procedur, wywołania usług programowych, transakcje w bazach danych, wywołania podprocesów biznesowych, czynności manualne realizowane przez pracowników, itd. Procesy biznesowe są zwykle modelowane i opisywane przy użyciu formalnych notacji graficznych, takich jak BPMN, EPC, UML, itp. Wiele firm i instytucji dąży obecnie do automatyzacji zarządzania procesami biznesowymi, sprawiającej, że wszystkie czynności wykonywane są we właściwej kolejności, we właściwym czasie i przez właściwe osoby. Dążenia te stały się motywacją dla rozwoju specjalizowanego rodzaju oprogramowania, nazywanego systemem zarządzania procesami biznesowymi, traktowanego jako spadkobiercę systemów przepływu dokumentów i systemów zarządzania przepływem pracy. System zarządzania procesami biznesowymi posługuje się dostarczonymi modelami formalnymi procesów w celu koordynacji i synchronizacji ich realizacji. Ogólna architektura systemów zarządzania procesami biznesowymi zwykle naśladuje model referencyjny opracowany przez organizację Workflow Management Coalition (rys. 1). Zgodnie z tym modelem, składnikami systemu zarządzania procesami biznesowymi są: (1) Process Definition Tools – narzędzia służące do formalnego modelowania procesów biznesowych z pomocą wybranej notacji, (2) Workflow Enactment Service – platforma koordynacji i synchronizacji realizacji procesów biznesowych zgodnie z ich formalnymi modelami, (3) Invoked Applications – usługi/aplikacje zewnętrzne, wywoływane przez Workflow Enactment Service w celu automatycznej realizacji pojedynczych kroków procesu biznesowego, (4) Client Applications – aplikacje zewnętrzne służące do interakcji z użytkownikiem, odgrywającym rolę zarówno zleceniodawcy procesu biznesowego, jak i realizatora pojedynczych kroków manualnych procesu biznesowego, (5) Administration & Monitoring Tools – narzędzia administracyjne umożliwiające obserwację postępu realizacji procesów biznesowych. Opcjonalnie, komponent Workflow Enactment Service może wchodzić w interakcję z innymi, równorzędnymi, podrzędnymi lub nadrzędnymi, obcymi systemami zarządzania procesami biznesowymi. Rys. 1. Architektura referencyjna systemu zarządzania przepływami pracy [WFMC] Innym istotnym nurtem technologicznym stanowiącym wyróżnik nowoczesnych korporacyjnych systemów informatycznych jest architektura aplikacyjna zgodna z założeniami tzw. architektury 132 Maciej Zakrzewicz zorientowanej na usługi. Zakłada ona modularność systemów, polegającą na implementacji logiki biznesowej w formie zbioru odrębnych, autonomicznych, rozproszonych i reużywalnych usług, które na żądanie użytkowników są uruchamiane w skoordynowany sposób. Popularne wzorce projektowe dla architektury zorientowanej na usługi dzielą usługi na dwie główne grupy: usługi podstawowe i usługi procesowe. Usługi podstawowe odpowiadają za implementację elementarnych czynności biznesowych, jak np. przelew bankowy, obciążenie konta, aktualizacja stanu magazynowego, weryfikacja danych karty płatniczej. Są one zwykle implementowane z użyciem takich języków programowania jak Java, C#, PL/SQL. Z kolei działanie usług procesowych polega na koordynowaniu wywołań usług podstawowych tak, aby uzyskać przetwarzanie zgodne z założeniami realizowanego procesu biznesowego, np. obsługa zamówień klientów, obsługa wniosków kredytowych, obsługa sprzedaży internetowej. Implementacja usług procesowych zwykle opiera się o specjalizowane języki programowania, wywodzące się z tych samych notacji formalnych, które wykorzystywane są do modelowania procesów biznesowych – np. BPMN, BPEL. Niezwykle interesującym wyzwaniem technicznym jest próba połączenia założeń architektury zorientowanej na usługi z koncepcjami systemów zarządzania procesami biznesowymi. Rozwiązaniem, które wychodzi naprzeciw takiemu wyzwaniu jest Oracle BPM 11g – wieloskładnikowa platforma operacyjno-narzędziowa umożliwiająca formalne modelowanie procesów biznesowych, a następnie ich implementację i wykonywanie zgodnie z wymogami architektury zorientowanej na usługi [OBPM] [OFM]. W skład platformy Oracle BPM 11g wchodzą m.in.: (1) repozytorium BPM - baza danych przechowująca formalne definicje procesów biznesowych oraz stany bieżących i historycznych instancji procesów biznesowych, (2) serwer BPM - nieprzerwanie pracująca aplikacja serwerowa, która koordynuje wykonanie instancji procesów biznesowych, (3) BPM Workspace aplikacja dostępna za pośrednictwem przeglądarki WWW, umożliwiająca kontakt użytkowników końcowych z instancjami procesów biznesowych oraz realizację działań manualnych będących krokami składowymi procesów biznesowych, (4) narzędzia Process Composer i JDeveloper - służące analitykom i programistom do modelowania i implementacji nowych procesów biznesowych, (5) narzędzie Enterprise Manager - wspomagające pracę administratora systemu zarządzania procesami biznesowymi, umożliwiające obserwację stanu każdej bieżącej lub historycznej instancji procesu biznesowego, a także diagnozowanie przyczyn ewentualnych awarii. Warto zauważyć, że każdy ze składników Oracle BPM 11g może zostać łatwo odwzorowany na jeden z komponentów architektury referencyjnej Workflow Management Coalition: serwer BPM i repozytorium BPM to Workflow Enactment Service, narzędzia Process Composer i JDeveloper to Process Definition Tools, BPM Workspace to Client Application, a Enterprise Manager to Administration & Monitoring Tool. 2. Główne składniki Oracle BPM 11g 2.1. Serwer BPM i repozytorium BPM Serwer BPM został zaimplementowany w formie aplikacji Java EE posadowionej na serwerze aplikacji Oracle WebLogic Server. Jego głównym zadaniem jest wykonywanie kolejnych kroków instancji procesów BPMN oraz utrwalanie stanów instancji, umożliwiające wznowienie pracy po restarcie lub awarii serwera. Procesy BPMN zainstalowane na serwerze BPM są udostępniane aplikacjom zewnętrznym jako usługi Web Service, opisane dokumentami WSDL. W przypadku procesów BPMN opartych o mechanizmy interakcji z użytkownikami końcowymi, aplikacje zewnętrzne korzystają też z interfejsu Oracle Workflow. Definicje procesów BPMN oraz stany ich instancji są zapisywane w bazie danych – repozytorium BPM (kilkaset tabel). Repozytorium BPM może mieścić się w dedykowanej bazie danych Oracle, bądź też w istniejącej bazie danych Oracle któregoś z systemów produkcyjnych. Automatyzacja procesów biznesowych w środowisku Oracle BPM 11g: zagadnienia wdrożeniowe 133 2.2. BPM Workspace BPM Workspace jest aplikacją Java EE, która służy użytkownikom końcowym do interakcji z serwerem BPM i instancjami wykonywanych procesów BPMN (rys. 2). Interakcja ta obejmuje zarówno inicjowanie nowych instancji procesów, jak i obsługę kroków manualnych wchodzących w skład wykonywanych instancji. Prezentacja graficznego interfejsu użytkownika jest w obu przypadkach realizowana przez uprzednio przygotowane strony/regiony ADF Faces. Pozostałe funkcje narzędzia BPM Workspace obejmują m.in. podgląd kroków manualnych wykonanych w przeszłości, podgląd struktury procesów BPMN, w ramach których wykonywane są kroki manualne, konfigurację preferencji użytkownika w zakresie automatycznego powiadamiania. Inicjalizacja h i t Kroki manualne oczekujące na wykonanie przez użytkow- Interfejs użytkownika dla kroku manualnego Rys. 2. Struktura narzędzia BPM Workspace 2.3. Process Composer i JDeveloper Process Composer i JDeveloper to narzędzia umożliwiające definiowanie modeli procesów biznesowych w notacji BPMN oraz ich instalowanie na platformie serwera BPM. Process Composer jest adresowany przede wszystkim do analityków procesowych, których odpowiedzialność skupia się głównie na opracowaniu modeli procesów biznesowych, ich dokumentacji i weryfikacji (rys. 3). JDeveloper to z kolei narzędzie o orientacji programistycznej, przeznaczone dla deweloperów dokonujących implementacji usług procesowych i ich integracji z usługami podstawowymi i/lub czynnościami manualnymi. Efektem pracy każdego z wymienionych narzędzi może być opublikowana na serwerze BPM i gotowa do użytku usługa procesowa. 134 Maciej Zakrzewicz Rys. 3. Process Composer 2.4. Enterprise Manager Fusion Middleware Enterprise Manager jest narzędziem administracyjnym umożliwiającym m.in. konfigurację serwera BPM, instalowanie, monitorowanie i testowanie procesów biznesowych, instalowanie aplikacji Java EE, konfigurację mechanizmów bezpieczeństwa (rys. 4). Wraz ze standardową konsolą administracyjną dostarczaną z serwerem Oracle WebLogic, Fusion Middleware Enterprise Manager stanowi podstawowe narzędzie do administrowania platformą Oracle BPM 11g. Rys. 4. Fusion Middleware Enterprise Manager Automatyzacja procesów biznesowych w środowisku Oracle BPM 11g: zagadnienia wdrożeniowe 135 3. Automatyzacja procesów biznesowych na platformie Oracle BPM W tym rozdziale przedstawimy i skomentujemy wybrane problemy implementacyjne dotyczące wdrożeń systemów zarządzania procesami biznesowymi na platformie Oracle BPM 11g. 3.1. Ingerencja w model wykonywanej instancji procesu BPMN Z chwilą zainicjowania instancji procesu BPMN, dalsze wykonanie instancji odbywa się zgodnie z modelem procesu dostępnym w chwili inicjacji. Ewentualne późniejsze zmiany modelu nie mają wpływu na te instancje, których wykonywanie jest w toku. Podejście takie, naturalnie uzasadnione kwestiami zachowania spójności przetwarzania, może stanowić istotne ograniczenie w przypadku elastycznej realizacji procesów długotrwałych (np. kilkumiesięcznych). Podejmowane w takiej sytuacji rozwiązania mieszczą się w dwóch kategoriach: • model procesu przewiduje ewentualne modyfikacje sposobu przetwarzania, zawierając liczne rozgałęzienia warunkowe umożliwiające zmianę ścieżki wykonania poprzez manipulowanie zewnętrznymi obiektami (parametryzacja modelu) • model procesu cechuje się modułowością – właściwe przetwarzanie jest rozbite na łańcuch podprocesów, które są wykonywane w odpowiedniej kolejności; możliwa jest zmiana definicji podprocesu zanim zostanie on wywołany (dekompozycja modelu) 3.2. Reużywalność zadań manualnych Czynności manualne będące krokami procesów biznesowych są implementowane w formie modułów ADF Task Flow. ADF to obszerny zestaw technologii implementacji biznesowych aplikacji Java EE opartych o systemy baz danych. Moduły ADF Task Flow to fragmenty aplikacyjne, które nadają się do łatwego zagnieżdżania wewnątrz innych modułów lub aplikacji ADF/BPM. Funkcjonalność modułów ADF Task Flow obejmuje interakcję z użytkownikiem, interakcję z bazami danych, złożone przetwarzanie zdarzeń, walidację danych, komunikację ze środowiskiem zewnętrznym za pomocą parametrów wejścia-wyjścia, itp. Z punktu widzenia efektywności implementacji/automatyzacji procesów biznesowych, należy dążyć do jak największej reużywalności modułów ADF Task Flow. Środowisko Oracle BPM daje możliwości wykorzystywania tego samego modułu ADF Task Flow dla implementacji różnych czynności manualnych będących krokami procesów biznesowych. Dużym wyzwaniem projektowym jest opracowanie takiego zestawu (portfolio) modułów ADF Task Flow, które będą mogły być integrowane z różnorodnymi modelami procesów BPMN definiowanych w przedsiębiorstwie lub instytucji. 3.3. Stan przetwarzania = stan instancji procesu BPMN? Realizowane procesy biznesowe BPMN charakteryzują się zwykle zestawem zmiennych, które służą do tymczasowej reprezentacji stanu przetwarzania i do przekazywania rezultatów działania kroków wcześniejszych do wejścia kroków późniejszych. Zmienne te mogą stanowić tzw. obiekty procesowe, zarządzane przez serwer BPM, lub zmienne lokalne wykorzystywane wewnątrz zewnętrznych usług Web Services i modułów ADF Task Flow, nieczytelne dla serwera BPM. Decyzja o sposobie implementacji zmiennych stanu przetwarzania jest istotna z punktu widzenia czytelności modelu BPMN, reużywalności usług/modułów składowych i mechanizmów monitorowania przebiegu realizacji instancji procesu BPMN. Przykład powyższego dylematu projektowego przedstawiono na rys. 5. Oba diagramy reprezentują fragment procesu biznesowego, w ramach którego dane wprowadzone przez użytkownika są zapisywane w bazie danych. Pierwszy model zakłada, że w wyniku realizacji czynności manualnej "Pobierz stawki od użytkownika" dane wprowadzane przez użytkownika do formularza modułu ADF Task Flow są zapisywane w obiektach procesowych, które są przekazywane do wejścia usługi 136 Maciej Zakrzewicz „Zapisz stawki w bazie danych”. Usługa ta dokonuje zapisu wartości pobranych z obiektów procesowych do stosownej tabeli bazy danych. Drugi z przedstawionych modeli obejmuje tylko jeden krok – czynność manualną "Pobierz stawki od użytkownika i zapisz w bazie danych". Zakładamy, że skojarzony z tą czynnością moduł ADF Task Flow pobiera dane od użytkownika, a następnie samodzielnie zapisuje je w tabeli bazy danych. Niewątpliwie w tym przypadku model procesu BPMN cechuje się lepszą czytelnością, jednakże jej konsekwencją jest redukcja stopnia reużywalności modułu ADF Task Flow, np. w przypadku gdyby w ramach innego procesu wprowadzone przez użytkownika dane miały przed zapisem do bazy danych podlegać transformacji lub gdyby zapis miał się odbyć do pliku, a nie do bazy danych. Rys. 5. Implementacja stanu przetwarzania 3.4. Harmonogramowanie procesów Istnieje wiele zastosowań systemów zarządzania procesami biznesowymi, w których inicjacja instancji procesów BPMN następuje nie w wyniku aktywności użytkownika, a w rezultacie wystąpienia zdarzenia czasowego, np. nastąpienia końca dnia roboczego. Realizacja tego typu wymagań polega na zastosowaniu jednego z poniższych alternatywnych rozwiązań: • zastosowanie w modelu procesu elementu zdarzenia typu Timer, z którym skojarzony może zostać albo punkt czasowy inicjacji instancji (może być określony w formie wyrażenia), albo interwał czasowy dla periodycznego inicjowania instancji (również może być określony w formie wyrażenia) • implementacja zewnętrznego mechanizmu harmonogramowania, który według dowolnie zdefiniowanego wzorca (np. różne godziny wyzwolenia w różnych dniach tygodnia) dokonuje inicjalizacji instancji procesów BPM wykorzystując interfejs Web Service udostępniany przez serwer BPM Decyzja projektowa o wyborze jednego z powyższych rozwiązań podyktowana może być przede wszystkim regularnością lub nieregularnością harmonogramu wywoływania instancji procesów. W przypadku harmonogramów nieregularnych, zastosowanie elementu zdarzenia typu Timer wymaga drobnoziarnistego generowania sygnałów wyzwalających, a następnie ich filtrowania za pomocą konstrukcji warunkowych, co w konsekwencji przekłada się na pogorszenie czytelności modelu. Natomiast implementacja zewnętrznych mechanizmów harmonogramowania może przyczynić się do obniżenia "czystości" architektury systemowej oraz spowodować skomplikowanie procedur testowania środowiska. 3.5. Dynamiczny przydział czynności manualnych Czynności manualne stanowiące kroki procesów BPMN są definiowane w obrębie tzw. pasów pływackich, skojarzonych z konkretnym użytkownikiem, grupą użytkowników lub rolą. Istnieje Automatyzacja procesów biznesowych w środowisku Oracle BPM 11g: zagadnienia wdrożeniowe 137 jednak szereg sytuacji, w których przydział wykonawcy do czynności manualnej powinien odbywać się w sposób dynamiczny. Definicja czynności manualnej pozwala na wykorzystanie wyrażenia (np. zapisanego w języku XPath), które wskaże wykonawcę czynności w chwili, gdy czynność ta będzie inicjowana. Ponadto, dostępne mechanizmy czasu ważności i eskalacji czynności manualnych umożliwiają dynamiczną zmianę wykonawcy w przypadku, gdy pierwotnie przydzielony wykonawca nie ukończy powierzonej czynności w zadanym przedziale czasowym. 3.6. Eksternalizacja reguł decyzyjnych Realizacja sterowania przepływem pracy w modelu procesu biznesowego nierzadko wymaga formułowania złożonych warunków logicznych dla elementów typu bramka. Zanurzenie tych warunków logicznych wewnątrz definicji procesu BPMN stanowi istotne ograniczenie dla ich późniejszych modyfikacji i adaptacji. W szczególności, po reformułowaniu warunków logicznych zapisanych wewnątrz definicji procesu, konieczna jest reinstalacja modelu procesu na serwerze BPM, a tym samym następuje zakłócenie obsługi użytkowników i ich instancji procesów BPMN. Bardzo pożądanym wzorcem projektowym jest eksternalizacja reguł decyzyjnych, polegająca na przeniesieniu logiki warunkowej poza granice modelu procesu BPMN, do usługi zewnętrznej. Wówczas zmiana zapisów logiki zewnętrznej nie powoduje konieczności reinstalacji modelu procesu na serwerze BPM. Interesującym rozwiązaniem technicznym umożliwiającym eksternalizację reguł decyzyjnych jest Oracle Rules – logika warunkowa jest zapisywana w plikach repozytoriów mieszczących reguły decyzyjne lub tablice decyzyjne. Oracle BPM oferuje ścisłą integrację z Oracle Rules. 4. Podsumowanie W artykule dokonano przeglądu architektury i funkcjonalności platformy Oracle BPM 11g, omówiono zadania poszczególnych składników platformy oraz przedstawiono wybrane problemy wdrożeniowe. Artykuł stanowi zapis referatu wygłoszonego podczas XVII Konferencji Użytkowników i Deweloperów Oracle. Referencje [WFMC] "Workflow Reference Model Diagram", http://www.wfmc.org/reference-model.html [OBPM] "Oracle Business Process Management Suite 11g Handbook", Major Das, Manas Deb, Mark Wilkins, Oracle Press, 2011 [OFM] "Oracle Fusion Middleware Modeling and Implementation Guide for Oracle Business Process Management 11g"