Silnik do przeglądu

Zawiłości definicyjne i semantyczne związane z modelowaniem procesów przy użyciu różnych narzędzi nie wyczerpują jednak katalogu przeszkód i trudności na drodze do automatyzacji procesów. Utrudnieniami w przypadku automatyzacji są: naturalna dla współczesnych procesów mnogość sytuacji wyjątkowych i konieczność oprogramowania możliwości wycofania się do poprzedniego etapu procesu, np. jako skutek błędnie podjętych decyzji. Z punktu widzenia użytkownika kluczowe znaczenie ma nie tylko poprawność działania zautomatyzowanych rozwiązań, ale także ich wydajność.

Rzeczywiste wymagania biznesowe przyprawiają o ból głowy zarówno twórców silników workflow, jak i projektantów rozwiązań na nich opartych. Nic zatem dziwnego, że w praktyce projektanci starają się umieścić sterowanie zawiłym procesem w ramach pojedynczej aplikacji, np. w formie specjalizowanego modułu. Taka strategia nie daje zazwyczaj ani elastyczności, ani tym bardziej możliwości sterowania procesem za pomocą narzędzi graficznych. Być może jednak wizualizacja jest tylko ułudą? O ile bowiem rzeczywiście łatwo jest zmienić model procesu biznesowego za pomocą narzędzi graficznych dostarczanych wraz z silnikiem, o tyle sam model do automatyzacji procesu nie wystarczy. Obok niego jest wywoływanych wiele usług, serwisów i aplikacji, które najczęściej przy zmianie procesu będą wymagały zmian ingerujących gdzieniegdzie bardzo głęboko w strukturę warstwy usług systemu informatycznego.

Nowe spojrzenie

Jeżeli biorąc pod uwagę wszystkie wspomniane wcześniej czynniki dojdziemy do wniosku, że silnik workflow jest jednak najlepszym narzędziem do automatyzacji procesów w naszym projekcie, stajemy przed trudnym zadaniem wyboru jednego z setek narzędzi dostępnych na rynku. Najważniejszym kierunkowskazem przy wyborze silnika workflow powinna być możliwość jego ścisłej integracji z istniejącym już w firmie środowiskiem informatycznym. Workflow Management Coalition wychodzi naprzeciw tej oczywistej potrzebie, publikując standardowy zestaw interfejsów API pozwalających w założeniu na dostęp z poziomu aplikacji klienta do funkcjonalności silnika workflow - tzw. Interface 2 WfMC (patrz rysunek). Innym, jak się wydaje bardzo potrzebnym, rodzajem integracji jest współdziałanie różnych silników workflow (workflow engine interoperability). Ten obszar jest opisany przez specyfikację Interface 4 WfMC.

Na nieszczęście dla klienta zgodność ze standardami WfMC jest często najmniej istotnym czynnikiem warunkującym wybór silnika workflow. W praktyce ważniejsze okazują się inne aspekty integracji, np. możliwość transakcyjnego wywołania pewnej usługi środowiska informatycznego w ramach danego kroku zautomatyzowanego procesu biznesowego. Brak takiej możliwości rodzi niebezpieczeństwo zaistnienia sytuacji, w której zewnętrzne w stosunku do silnika workflow systemy zostały zaktualizowane, a nie udało się zaktualizować stanu samego procesu.

Silniki workflow definiują zwykle własne struktury do przechowywania informacji organizacyjnej lub współpracują tylko z wybranymi rozwiązaniami zewnętrznymi. Najlepszym rozwiązaniem jest taki silnik workflow, który umożliwia łatwą integrację z już istniejącym systemem opisującym struktury organizacyjne firmy, np. serwerem LDAP.

Opisywane problemy powodują niejednokrotnie konieczność zrezygnowania z "opornego" na potrzeby firmy silnika workflow. W takim przypadku pozostaje zwykle spróbować swoich sił w "ręcznym" automatyzowaniu wybranych procesów biznesowych poprzez opisanie reguł sterujących procesem wewnątrz aplikacji - o ile taka możliwość istnieje. Można się posiłkować zewnętrznym silnikiem reguł biznesowych. Można do tego podejść jeszcze inaczej, wykorzystując silnik workflow dostępny jako rozwiązanie otwartego kodu (open source). W przypadku problemów integracyjnych istnieje możliwość modyfikacji kodu silnika. Do najpopularniejszych rozwiązań należy OSWorkflow - jeden z wielu komponentów pakietów Open Symphony (http://www.opensymphony.com ), a także jBpm (http://www.jbpm.org ). Oba pakiety są stosunkowo nowe i wychodzą naprzeciw wielu problemom pojawiającym się podczas wdrożeń tradycyjnych silników workflow.

Mądrość przed szkodą

Co z tego wszystkiego wynika? Strategia postępowania wydaje się dość prosta: do obietnic dostawców silników workflow należy podchodzić ostrożnie. Przede wszystkim trzeba się zastanowić, które procesy biznesowe warto automatyzować i w jakim zakresie, oraz jakie są zarówno korzyści, jak i koszty automatyzacji kolejnych etapów. Aby uniknąć straty czasu i pieniędzy, wszystko to trzeba wiedzieć jeszcze zanim w firmie pojawią się pierwsi handlowcy oferujący konkretne rozwiązanie. Na koniec trzeba zdawać sobie sprawę, że silnik workflow jest tylko jednym z wielu narzędzi dostępnych projektantom systemów, a nie magicznym przepisem na ich łatwą integrację.

Autor jest dyrektorem rozwoju ds. aplikacji internetowych w firmie Infovide SA.


TOP 200