Zdarzenia pośrednie

Transkrypt

Zdarzenia pośrednie
Modelowanie procesów biznesowych
– BPMN cz. II
Plan wykładu
•
•
•
•
Łączenie przepływów
Powtarzanie czynności
Zdarzenia pośrednie
Podprocesy
2
Literatura*
• http://www.omg.org/spec/BPMN/2.0/ – witryna organizacji
odpowiedzialnej m.in. za aktualną wersję BPMN
• Bruce Silver: BPMN Method and Style
• Thomas Allwayer: BPMN 2.0
• Stephen A. White, Derek Miers: BPMN Modeling and Reference Guide
• Szymon Drejewicz: Zrozumieć BPMN
*w prezentacji wykorzystano przykłady z wyżej wymienionych pozycji
3
•
•
•
•
Łączenie przepływów
Powtarzanie czynności
Zdarzenia pośrednie
Podprocesy
4
Koncepcja żetonu – tokena
• Żeton jest abstrakcyjną elementem służącym do opisania
zachowania procesu
• Żeton „krąży” zgodnie z przepływem sekwencji w procesie i
„przechodzi” przez elementy modelu
• Początek procesu biznesowego generuje żeton, koniec
procesu oznacza jego usunięcie
• Żetony mogą być kreowane, usuwane, rozszczepiane oraz
scalane
5
Bramki łączące (1)
•
Każdy żeton docierający do bramki XOR jest
natychmiastowo i bezwarunkowo
przekazywany dalej. Jeśli zdarzy się, że do
bramki dotrze dwa lub więcej żetonów,
wówczas wszystkie są przekazywane dalej,
powodując często wielokrotne uruchomienie
czynności występujących po bramce
•
Bramka równoległa oczekuje aż dotrą do
niej żetony z wszystkich dochodzących
gałęzi. Po dotarciu wszystkich żetonów są
one łączone w jeden i ten żeton jest
przekazywany dalej
6
Bramki łączące (2)
•
Bramka OR po dotarciu pierwszego żetonu
sprawdza, czy w dochodzących gałęziach są
jakieś inne żetony. Jeśli są, wówczas czeka
na kolejny żeton i po jego nadejściu sprawdza
ponownie. Jeśli żetonów w dochodzących
gałęziach już nie ma, wówczas wszystkie
żetony które dotarły są łączone w jeden i ten
nowy żeton jest przekazywany dalej
•
Bramka złożona po dotarciu żetonu sprawdza
warunek. Jeśli warunek nie jest spełniony, nic
się nie dzieje. Jeśli warunek okaże się
prawdziwy, wówczas żeton jest natychmiast
przekazywany dalej, a bramka czeka nadal.
Od tego momentu wszystkie żetony, które
dotrą do bramki są usuwane.
7
Łączenie przepływów
alternatywnych (1)
• Klasyczne połączenie
przebiegów alternatywnych
przy pomocy bramki XOR
(zalecane)
• Połączenie przebiegów
alternatywnych przy pomocy
bramki równoległej
spowoduje zatrzymanie
procesu
8
Łączenie przepływów
alternatywnych (2)
• Połączenie przebiegów
alternatywnych jest
możliwe przy pomocy
bramki OR (niezalecane )
• Połączenie przebiegów
alternatywnych jest
również możliwe przy
pomocy bramki złożonej
po odpowiednim
sformułowaniu warunku
(niezalecane )
9
Łączenie przepływów
równoległych – bramka
równoległa
Oczekiwanie aż
obydwa zadania
zostaną ukończone
Rozwidlenie na
dwa równoległe
przepływy
Zadanie wykona się jeden raz
po ukończeniu wszystkich
poprzednich zadań
10
Łączenie przepływów
równoległych – bramka OR
Oczekiwanie aż wszystkie rozpoczęte
zadania zostaną ukończone (w tym
przypadku bramka OR zachowa się
identycznie jak bramka równoległa)
Rozwidlenie na
dwa równoległe
przepływy
Zadanie wykona się jeden raz
po ukończeniu wszystkich
poprzednich zadań
11
Łączenie przepływów
równoległych – bramka XOR
Po zakończeniu każdego z
zadań wyszukiwania
natychmiast uruchomione
zostanie zadanie weryfikacji
Rozwidlenie na
dwa równoległe
przepływy
Zadanie weryfikacji wykona się
dwa razy: po zakończeniu zadania
wyszukiwania w Internecie oraz po
zakończeniu zadania
wyszukiwania w bibliotece
12
Łączenie przepływów
równoległych – bramka
Złożona
Bramka będzie oczekiwać na zakończenie
jednego z zadań wyszukiwania. Po
zakończeniu jednego z tych zadań
natychmiast uruchomione zostanie
zadanie weryfikacji.
Rozwidlenie na
dwa równoległe
przepływy
Zakończenie drugiego z zadań
wyszukiwania pozostanie bez
wpływu na zachowanie
procesu.
Zadanie wykona się jeden raz
po ukończeniu pierwszego z
zadań wyszukiwania
13
•
•
•
•
Łączenie przepływów
Powtarzanie czynności
Zdarzenia pośrednie
Podprocesy
14
Powtarzanie czynności (1)
• Powtarzanie czynności (pętle)
można zrealizować w oparciu o
bramki XOR i odpowiednie
warunki
• Warunek prawdziwy oznacza
powtarzanie czynności
• Warunek fałszywy oznacza
zaprzestanie powtarzania i
przejście dalej
• Warunek może być sprawdzany
na początku lub na końcu
15
Powtarzanie czynności (2)
• Zadania oraz podprocesy mogą być powtarzane
• Liczba powtórzeń nie jest z góry ustalona
– Do-While – warunek pętli sprawdzany jest po wykonaniu
czynności; pętla przestaje się wykonywać, gdy warunek
stanie się fałszywy
– While-Do – warunek pętli jest sprawdzany przed
wykonaniem czynności; pętla przestaje się wykonywać, gdy
warunek stanie się fałszywy
• Istnieje możliwość zdefiniowania maksymalnej liczby
iteracji. Przekroczenie tej liczby oznacza zakończenie
pętli niezależnie od wartości logicznej warunku pętli
16
Czynności wielo-instancyjne
• Wiele instancji tej samej czynności jest uruchamiane
sekwencyjnie lub równolegle
• Czynności wielo-instancyjne operują na kolekcji (liście)
danych, np. dla każdej pozycji zamówienia dokonaj
sprawdzenia dostępności towaru
• Liczba instancji czynności wielo-instancyjnej jest stała;
ustalana jest przed rozpoczęciem wykonywania
• Realizacji czynności wielo-instancyjnej odpowiada
programistycznej konstrukcji For-Each
17
Szeregowe czynności wieloinstancyjne
•
Szeregowa czynność wielo-instancyjna polega na sekwencyjnym
uruchamianiu kolejnych instancji czynności
•
Szeregowa czynność wielo-instancyjna może być zastąpiona
sekwencją identycznych czynności, pod warunkiem jednak, że
liczba instancji czynności jest znana na etapie projektowania
•
Czynności wielo-instancyjna szeregowa vs. pętla
(w pętli liczba iteracji nie jest ustalona, w czynności wieloinstancyjnej szeregowej liczba iteracji jest ustalona przed
rozpoczęciem)
=
18
Równoległe czynności
wielo-instancyjne
• Równoległa czynność wielo-instancyjna polega na
uruchamianiu jednocześnie wszystkich instancji czynności
• Równoległa czynność wielo-instancyjna może być
zastąpiona bramką równoległą, pod warunkiem jednak, że
liczba instancji czynności jest znana w momencie
projektowania
=
19
Pozostałe elementy wieloinstancyjne
• Pula wieloinstancyjna oznacza, że
może istnieć wiele jednostek
wykonujących identyczny proces, np.
Petent(wielo-instancyjny uczestnik),
Urząd (uczestnik jedno-instancyjny)
• Wielo-instancyjny obiekt danych
oznacza kolekcję / listę obiektów tego
samego rodzaju, np. Zamówienie jest
kolekcją pozycji zamówienia
20
Przykład (1)
• Proces zaopatrywania sieci hurtowni samochodowych w
części od różnych producentów
• Proces składa się z następujących czynności:
– Zebranie zapotrzebowania na części ze wszystkich oddziałów
hurtowni
– Przekazanie zamówień do poszczególnych producentów
– Dostawa części do wszystkich oddziałów hurtowni przy
wykorzystaniu floty samochodów dostawczych
21
Przykład (2)
Dopóki nie zostaną
zebrane zamówienia ze
wszystkich hurtowni
Niezależnie dla każdego
kierowcy zaopatrzeniowego
oddzielnie
Kolejno dla każdego
producenta części
oddzielnie
22
•
•
•
•
Łączenie przepływów
Powtarzanie czynności
Zdarzenia pośrednie
Podprocesy
23
Zdarzenia w BPMN 2.0
24
Zdarzenia pośrednie
• Zdarzenie pośrednie oznacza, że coś wydarzyło się po
starcie procesu i przed jego zakończeniem
• Zdarzenia pośrednie mogą być typu wychwytującego
(catch) oraz wysyłającego (throw)
• Zdarzenia pośrednie mają jeden wejściowy oraz jeden
wyjściowy przepływ sekwencji
25
Wzorzec kamienia milowego
Kiedy koncepcja książki jest
gotowa, wysyłany jest sygnał
Dwa podprocesy
rozpoczynają działanie
(równolegle)
Sygnały pełnią role
kamieni milowych –
informują otoczenie, że
pewien etap właśnie
się zakończył
Oczekuje na sygnał oznaczający, że
koncepcja książki jest gotowa.
Kiedy sygnał dotrze uruchamiane jest
zadanie przygotowania projektu oprawy
26
Kamień milowy – a dlaczego
nie tak?
•
Usunięcie podprocesów wyraźnie upraszcza model (możliwe jest np. użycie
przepływów sekwencji)
•
Usuniecie podprocesów nie zawsze jest jednak możliwe, bo podprocesy mogą być
używane w innych miejscach lub też do podprocesów mogą być przypięte pewne
zdarzenia
•
Zastosowanie sygnałów w tym konkretnym przypadku skutkuje większą złożonością
modelu, ale oznacza też słabsze powiązanie pomiędzy niektórymi czynnościami
(loosely coupling)
27
Zdarzenia pośrednie
krawędziowe (1)
• Zdarzenia krawędziowe są rodzajem
zdarzeń pośrednich
• Nazwę zawdzięczają temu, że są
przypięte (do krawędzi) czynności
• Wszystkie zdarzenia krawędziowe są
typu wychwytującego (catch)
• Po uruchomieniu czynności do której
przypięte jest zdarzenie krawędziowe
następuje oczekiwanie na to zdarzenie
28
Zdarzenia pośrednie
krawędziowe (2)
• Zdarzenia krawędziowe muszą mieć
określony typ, tj. nie można użyć
zdarzenia nieokreślonego
• Zdarzenia krawędziowe służą przede
wszystkim do obsługi sytuacji
wyjątkowych
• Z czynności posiadającej zdarzenie
krawędziowe wychodzą co najmniej dwa
przepływy: przepływ normalny oraz
przepływ wyjątku
29
Zdarzenia krawędziowe
przerywające
• Jeśli do zakończenia czynności nie nadejdzie zdarzenie,
wówczas proces kontynuuje działanie po ścieżce normalnej
• Jeśli przed zakończeniem czynności pojawi się zdarzenie
krawędziowe, wówczas przerywana jest czynność oraz
następuje przejście do ścieżki wyjątku
30
Zdarzenie krawędziowe
nieprzerywające
• Jeśli do zakończenia czynności nie nadejdzie zdarzenie, wówczas
proces kontynuuje działanie po ścieżce normalnej
• Jeśli przed zakończeniem czynności pojawi się zdarzenie, wówczas
tworzona jest równoległa ścieżka wyjątku (czynność jest nadal
wykonywana)
31
Zdarzenia krawędziowe
przerywające – przykład
Jeśli w trakcie przetwarzania
zamówienia nie zostanie odebrany
komunikat anulowania zamówienia,
wówczas proces przejdzie do
dostawy zamówienia
Jeśli w trakcie przetwarzania
zamówienia zostanie odebrany
komunikat anulowania zamówienia,
wówczas przerwana zostanie
czynność przetwarzania
zamówienia i proces przejdzie do
zdarzenia końcowego
32
Zdarzenie krawędziowe
nieprzerywające – przykład
Jeśli w trakcie przetwarzania
zamówienia nie zostanie odebrany
komunikat aktualizacji zamówienia,
wówczas proces przejdzie do
dostawy zamówienia
Jeśli w trakcie przetwarzania zamówienia
zostanie odebrany komunikat aktualizacji
zamówienia, wówczas uruchomiona zostanie
dodatkowa (równoległa) ścieżka procesu
prowadząca do czynności „Aktualizuj
zamówienie”.
Czynność „Przetwarzaj zamówienie” będzie
nadal wykonywana, a po jej zakończeniu proces
przejdzie do czynności „Dostawa zamówienia”
33
Wiele zdarzeń
krawędziowych
Do czynność można przypisać
wiele zdarzeń krawędziowych
Jeśli zdarzenia te są
obsługiwane identycznie,
wówczas można wykorzystać
tzw. wielozdarzenia
34
Nasłuchiwanie vs.
oczekiwanie
•
Czynność zaczyna być wykonywana,
jednocześnie prowadzony jest nasłuch
na określone zdarzenie
•
Proces przejdzie dalej po zakończeniu
czynności (jedną lub obydwiema
ścieżkami)

Proces zatrzymuje się i czeka na
określone zdarzenie

Proces przejdzie dalej tylko wtedy,
gdy określone zdarzenie nadejdzie
35
Zgłaszanie błędu
• BPMN umożliwia zgłaszanie błędu przy pomocy
zdarzenia końcowego Błąd

Zdarzenie końcowe Błąd oznacza sytuację, kiedy dana
ścieżka procesu kończy się błędem

Zdarzenie błąd może być zgłaszane explicite (w definicji
procesu) lub implicite przez systemy informatyczne

Rodzaje błędów:

Techniczne (np. automat nie może odczytać karty, usługa
sieciowa niedostępna)

Biznesowe (np. brak środków na koncie, odrzucenie podania)
36
Zachowanie procesu po
zgłoszeniu błędu

Zdarzenie końcowe Błąd powoduje zakończenie wszystkich
aktywnych ścieżek bieżącego procesu oraz wszystkich jego
podprocesów, nie kończy jednak procesu nadrzędnego

Zdarzenie końcowe błąd przekazuje rezultat błędu do
procesu nadrzędnego (przekazywanie błędów może
odbywać się tylko w ramach tej samej puli)
37
Obsługa błędów
• Możliwości przechwytywania i obsługi błędów:
– zdarzenie krawędziowe
– podprocesy zdarzeniowe
• Przechwytywane są tylko te zgłoszenia błędów, które
mają taką samą nawę jak zdarzenie zgłaszające
• Jeśli zdarzenie przechwytujące nie posiada nazwy,
wówczas przechwytywane są wszystkie zgłoszenia
błędów
• Zgłoszenia błędów mogą przemieszczać się tylko w
górę w hierarchii procesów
38
Mechanizm throw-catch dla
błędów
Proces znajdzie się na ścieżce
normalnej tylko wtedy, gdy w
trakcie wykonywania podprocesu
nie zostanie zgłoszony żaden błąd
Zdarzenie końcowe
błąd służy do
zgłoszenia błędu
Każdy błąd zgłoszony w okresie
aktywności podprocesu „Weryfikacji
zdolności kredytowej” jest
przechwytywany przez zdarzenie
krawędziowe
Proces znajdzie się na ścieżce
wyjątku tylko wtedy, gdy w trakcie
wykonywania podprocesu
zostanie zgłoszony błąd
39
Eskalacja
• Procedurę eskalację można interpretować jako
konieczność wykonania pewnych dodatkowych
działań, najczęściej bez naruszania bieżącej
ścieżki procesu
• BPMN dopuszcza dwa sposoby na zgłoszenie
potrzeby eskalacji: zdarzenie końcowe oraz
zdarzenie pośrednie

Zgłoszenie eskalacji nie oznacza zakończenia procesu

Zdarzenia zgłaszające eskalację przekazują rezultat eskalacji
do procesu nadrzędnego (przekazywanie rezultatu eskalacji
może odbywać się tylko w ramach tej samej puli)
40
Obsługa eskalacji
•
Możliwości przechwytywania i obsługi eskalacji:
– zdarzenie krawędziowe (przerywające i
nieprzerywające)
– podprocesy zdarzeniowe (przerywające i
nieprzerywające)
•
Przechwytywane są tylko te zgłoszenia eskalacji, które
mają taką sama nawę jak zdarzenie zgłaszające
•
Jeśli zdarzenie przechwytujące nie posiada nazwy,
wówczas przechwytywane są wszystkie zgłoszenia
eskalacji
•
Zgłoszenia eskalacji mogą przemieszczać się tylko w
górę w hierarchii procesów
41
Mechanizm throw-catch dla
eskalacji
Zdarzenie końcowe
eskalacji służy do
zgłoszenia potrzeby
eskalacji
Proces znajdzie się na ścieżce
normalnej zawsze po skończeniu
wykonywania podprocesu
„Przyjęcie zamówienia”
Każde zgłoszenie eskalacji w
okresie aktywności podprocesu
„Przyjęcie zamówienia” jest
przechwytywane przez zdarzenie
krawędziowe
Ścieżka prowadząca do aktualizacji
danych zostanie uaktywniona jako
równoległa do ścieżki normalnej
wówczas, gdy odebrane zostanie
zgłoszenie eskalacji
42
Eskalacja vs. Błąd
Eskalacja
Błąd
•
Eskalacja służy do wykonania pewnych
dodatkowych działań, najczęściej bez
naruszania bieżącej ścieżki procesu
•
Błędy służą do poinformowania, że
proces nie zachowuje się zgodnie z
oczekiwaniami
•
Zgłoszenie eskalacji nie kończy
bieżącego procesu
•
Zgłoszenie błędu kończy bieżący proces
•
Istnieją dwa zdarzenia zgłaszające
potrzebę eskalacji: zdarzenia pośrednie
i końcowe
•
Istnieje jedno zdarzenie zgłaszające
błąd: zdarzenie końcowe
•
Procedura obsługi eskalacji może być
wykonywana równolegle do czynności w
której nastąpiło zgłoszenie
•
Procedura obsługi błędu przerywa
wykonywanie czynności, w której
nastąpiło zgłoszenie błędu
43
•
•
•
•
Łączenie przepływów
Powtarzanie czynności
Zdarzenia pośrednie
Podprocesy
44
Rodzaje czynności
• Zadanie
Czynność atomowa
• Podproces
Czynności nie atomowe
• Czynność wywołania
Reprezentuje wywołanie innej
czynności
45
Podprocesy
• Podproces to rodzaj czynności na którą składają się inne
czynności, bramki, zdarzenia oraz przepływy
• Podproces określa zakres / zasięg widoczności atrybutów,
transakcji, obsługi wyjątków kompensacji
• Istnieją 4 rodzaje podprocesów:
46
Podproces osadzony
•
Podproces osadzony to rodzaj czynności, która
została rozłożona na „mniejsze” czynności, bramki,
zdarzenia i przepływy

Podprocesy osadzony funkcjonuje tylko w kontekście procesu
nadrzędnego

Jeśli podproces posiada zdarzenia początkowe, to musi to być
zdarzenie niekreślonego typu

Podproces osadzony jest uruchamiany poprzez przepływ sekwencji

Podproces osadzony posiada bezpośredni dostęp do danych
procesu nadrzędnego (bo jest częścią procesu nadrzędnego)
47
Podprocesy zwinięte i
rozwinięte
Podproces osadzony
w formie zwiniętej
Podproces osadzony
w formie rozwiniętej
48
Podprocesy Ad-Hoc
Grupa czynności realizowanych bez narzuconej kolejności
Czynności mogą być wykonywane
 Sekwencyjnie – w danym momencie może być wykonywana tylko
jedna czynność
(ordering=parallel)
 Równolegle – w danym momencie może być wykonywane kilka
czynności
(ordering=sequential)
Każda czynność może być wykonywana wielokrotnie
49
Rozpoczynanie i kończenie
podprocesu Ad-Hoc
O sposobie rozpoczęcia procesu decydują wykonawcy
poszczególnych zadań
Do zakończenia procesu Ad-Hoc nie jest wymagane zakończenie
wszystkich czynności
Zakończenie procesu jest uzależnione od pewnych warunków
(CompletionCondition)
Parametr cancelRemainingInstances określa, co należy zrobić z
instancjami zadań po spełnieniu warunku zakończenia (wartość
true w trybie parallel anuluje wszystkie czynności w trakcie
wykonywania )
50
Przykład podprocesu AdHoc
51
Szczególne przypadki
podprocesu
Ad-hoc
• W podprocesie Ad-Hoc mogą pojawić się czynności
połączone w sekwencję. W takim przypadku czynności te
muszą być wykonane sekwencyjne
• Może się zdarzyć sytuacja, że nie jest możliwe
zdefiniowanie kolejności wykonania czynności, ale jest
możliwość zdefiniowania przepływu obiektów/dokumentów.
Wówczas na diagramie należy ten przepływ dokumentów
zaznaczyć
52
Podprocesy zdarzeniowe
•
Podproces zdarzeniowy może być utworzony
wewnątrz podprocesu
•
Jego zadanie polega na nasłuchiwaniu określonych
zdarzeń

Nasłuchiwanie rozpoczyna się w momencie rozpoczęcia podprocesu i
kończy się w chwili jego zakończenia

Jest rodzajem wbudowanej (inline) procedury obsługi zdarzeń

Wykonuje się w kontekście podprocesu w ramach którego jest
zdefiniowany

Jest uruchamiany zdarzeniem a nie przepływem sekwencji

Może być uruchomiony wielokrotnie, może też w ogóle nie zostać
uruchomiony
53
Przerywający podproces
zdarzeniowy
Przejście do przygotowywania listy
kandydatów nastąpi, gdy do 7 dni uda się
znaleźć kandydata wewnątrz firmy. Jeśli się nie
uda, wówczas zakończy się dopiero po
ukończeniu poszukiwań przez agencję
(podproces zdarzeniowy)
Po rozpoczęciu podprocesu „Poszukiwanie
kandydata do pracy” uruchamiane jest
poszukiwanie kandydata wewnątrz firmy
oraz mierzony jest czas
Jeśli po upływie 7 dni poszukiwanie wewnętrzne
nie zostało zakończone, wówczas jest
przerywane i rozpoczyna się poszukiwania przez
agencję (podproces zdarzeniowy )
54
Nieprzerywający podproces
zdarzeniowy
Przejście do dostawy zamówienia nastąpi wtedy,
gdy zakończy się kompletowanie zamówienia i
podproces zdarzeniowy aktualizacji zamówienia,
(jeśli został uruchomiony), Jeśli podproces
zdarzeniowy nie został uruchomiony, wówczas
przejście do dostawy zamówienia nastąpi zaraz
po zakończeniu kompletowania
Po rozpoczęciu podprocesu
przetwarzania zamówienie podproces
zdarzeniowy rozpoczyna nasłuch.
Interesuje go zdarzenie „Aktualizuj
zamówienie”, które może przysłać np.
klient
55
W chwili gdy zdarzenie „Aktualizuj
zamówienie” nadejdzie rozpoczyna się
podproces zdarzeniowy aktualizacji
zamówienia. Podproces „Przetwarzaj
zamówienie nadal jest jednak
wykonywany
Podproces Zdarzeniowy vs.
Podproces osadzony
Podproces zdarzeniowy
Podproces osadzony
Jest wykonywany poza normalnym
przepływem
Jest wykonywany w ramach
normalnego przepływu
Rozpoczyna się zdarzeniem
początkowym konkretnego typu
Rozpoczyna się zdarzeniem
początkowym bez ustalonego typu
Nie może posiadać wejściowych i
Posiada wejściowe i wyjściowe
wyjściowych przepływów sekwencji przepływy sekwencji
56
Podproces zdarzeniowy vs.
Zdarzenia krawędziowe
Podproces zdarzeniowy
Zdarzenia krawędziowe
Może być zdefiniowany tylko
wewnątrz podprocesu
Może być zdefiniowane dla
podprocesu i zadań
Jest traktowany jako wbudowana
(inline) procedura obsługi
zdarzenia
Jest traktowany jako zewnętrzna
procedura obsługi zdarzenia
Ma dostęp do danych podprocesu
Wszelkie dane wymagane przez
wewnątrz którego jest zdefiniowany obsługę zdarzenia muszą być
przekazywane
Po zakończenie działania proces
kontynuuje ścieżkę normalną
Po zakończeniu działania proces
może kontynuować ścieżkę
normalną albo ścieżkę wyjątku albo
też
obydwie te ścieżki
57
Procesy i zadania globalne
• W BPMN można definiować procesy i zadania, które mogą być
wielokrotnie używane
• Procesy wielokrotnie używane noszą nazwę procesów globalnych
• Zadanie wielokrotnie używane noszą nazwę zadań globalnych
• Dopuszcza się 4 rodzaje zadań globalnych: manualne, użytkownika,
skryptowe, reguły biznesowej
58
Czynność wywołania
• Do wywoływania procesów i zadań
globalnych służą tzw. czynności
wywołania

Wywoływany proces nie posiada dostępu do danych procesu
wywołującego

Czynność wywołania musi zadbać by do wywołanego procesu
trafiły wszystkie niezbędne dane

Czynność wywołania musi też odebrać wyniki z procesu
wywoływanego
59
Transakcje w systemach IT
• Transakcja – zbiór operacji, które stanowią pewna całość i powinny być
wykonane wszystkie lub żadna z nich
• ACID – własności transakcji gwarantujące poprawne jej przetwarzanie
–
–
–
–
Atomicity – wszystko albo nic
Consistence – po wykonaniu transakcji system będzie spójny
Isolated – transakcje nie wpływają na siebie
Durable – operacje wykonane w trakcie transakcji są trwałe
• Przykład transakcji: Przelew bankowy
60
Transakcje w procesach
biznesowych
• W procesach biznesowych zwykle trudno spełnić
wymagania ACID (problemem jest izolacja transakcji)
• Czynności mogą trwać zbyt długo, by możliwe i sensowne
było blokowanie zasobów realizujących czynności, np.
zakup towaru w sklepie internetowym przy pomocy karty,
gdzie po zakupie okazuje się, że producent towaru nie może
go dostarczyć do sklepu
61
Podproces transakcji
•
Transakcja w procesach biznesowych jest
rodzajem umowy pomiędzy dwoma lub więcej
uczestnikami

Aby transakcja zakończyła się sukcesem wszystkie strony umowy
muszą zrealizować swoje czynności i zgodzić się na zakończenie
transakcji

Jeśli jedna ze stron wycofa się z umowy lub pojawi się nieoczekiwany
błąd, wówczas transakcja jest anulowana i wszystkie strony
podejmują działania zmierzające do cofnięcia / kompensacji
wszystkich ukończonych czynności

Przebieg transakcji jest kontrolowany przez tzw. protokół transakcyjny
(np. WS-Transaction, BTP)
62
Zdarzenia występujące w
transakcji
Zgłoszenie
anulowania
transakcji
Odbiera
zgłoszenie o
kompensacji
Podproces
transakcji
Czynność
wykonywana podczas
obsługi kompensacji
Odbiera
zgłoszenie o
błędzie
Odbiera
zgłoszenie o
błędzie
Odbiera
zgłoszenie
anulowania
63
Anulowanie transakcji –
zgłoszenie
• Anulowanie transakcji ma na celu przerwanie
czynności wykonywanych w ramach podprocesu
transakcyjnego i doprowadzenie do stanu sprzed
wykonania tych czynności (kompensacja)
• Istnieją dwa sposoby anulowania transakcji:
– wewnątrz podprocesu transakcji istnieje ścieżka która prowadzi do
zdarzenia końcowego Anuluj
– protokół transakcyjny w pewnych sytuacjach sam zgłasza Anuluj
• Zdarzenie końcowe Anuluj może być użyte tylko
wewnątrz podprocesu transakcji
64
Anulowanie transakcji –
obsługa
• Anulowanie transakcji odbywa się według
schematu try-catch
• Zgłoszenie anulowania transakcji może być
odebrane tylko przez zdarzenie krawędziowe
anulowania, przypięte do podprocesu
transakcyjnego
• Po zgłoszeniu anulowania podproces
transakcyjny jest przerywany
• Zanim jednak proces podąży ścieżką
anulowania zgłaszane jest zdarzenie
kompensacji
65
Kompensacja – zgłaszanie
• Kompensacja oznacza przywrócenie czynności do stanu
sprzed jej wykonania
• Niektóre czynności takie jak odebranie wiadomości nie mogą
być cofnięte, inne takie jak np. zapis w bazie danych mogą być
kompensowane
• W podprocesie transakcji zgłoszenie konieczności kompensacji
jest robione automatycznie po zgłoszeniu zdarzenia
anulowania
• Istnieje również możliwość zgłoszenia konieczności
kompensacji poprzez zdarzenia kompensacji (pośrednie lub
końcowe)
66
Kompensacja – obsługa
• Zgłoszenie o konieczności kompensacji może być
odebrane przez zdarzenie krawędziowe kompensacji
lub przez podproces zdarzeniowy
• Obsługą kompensacji zajmuje się specjalizowana
czynność
• Protokół transakcyjny pamięta kolejność w jakiej
zostały wykonane czynności wewnątrz podprocesu
transakcyjnego
• Po odebraniu zgłoszenia o konieczności kompensacji
dla każdej ukończonej czynności w kolejności
odwrotnej do ich uruchomienia wykonuje procedurę
kompensacji 67
Zakończenie transakcji
Zakończenie prawidłowe
(OK):
Wszystkie czynności wewnątrz
podprocesu transakcji zakończyły
się poprawnie. Następnie pod
kontrolą protokołu transakcyjnego
wszyscy uczestnicy potwierdzili
zamiar zakończenia transakcji
(gdyby nie potwierdzili, to
wygenerowano by zdarzenie
anulowania transakcji)
Zakończenie nieprawidłowe
(Anulowanie transakcji):
Zakończenie ryzykowne
(Wystąpił nieodwracalny błąd):
Transakcja anulowana przez zdarzenie anulowania z
wewnątrz podprocesu transakcji lub przez protokół
transakcyjny. Pod kontrolą protokołu transakcyjnego
zdarzenie anulowania jest rozsyłane wszystkim
uczestnikom. Następnie przerywane są wszystkie
czynności i podjęta zostaje próba cofnięcia i
kompensacji zakończonych czynności
Wystąpił poważny błąd uniemożliwiający
cofnięcie/ kompensację transakcji. Pod kontrolą
protokołu transakcyjnego błąd jest
przekazywany pozostałym uczestnikom.
Wszystkie czynności są automatycznie
przerywane.
68
KONIEC
69