Modelowanie procesów biznesowych BPMN cz. II



Podobne dokumenty
Modelowanie procesów biznesowych BPMN cz. I

Terminologia BPMN 2.0 Wersja 2.0 opracowana w AION

Odwzorowanie BPMN w sieć Petriego

Modelowanie procesów biznesowych BPMN cz. I

Inżynieria oprogramowania

Pętla for. Wynik działania programu:

Język UML w modelowaniu systemów informatycznych

koniec punkt zatrzymania przepływów sterowania na diagramie czynności

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

Diagramy czynności Na podstawie UML 2.0 Tutorial

Modelowanie biznesowe. Na podstawie materiałów: Mirosława Ochodeka

ALGORYTMY. 1. Podstawowe definicje Schemat blokowy


ALGORYTMY. 1. Podstawowe definicje Schemat blokowy

Modelowanie procesów biznesowych, przepływu pracy i wdrażanie aplikacji w oparciu o Jboss jbpm lub Activiti

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

miejsca przejścia, łuki i żetony

Język UML w modelowaniu systemów informatycznych

Sieci Petriego. Sieć Petriego

Mapowanie procesów - AS IS (jak jest)

Układy VLSI Bramki 1.0

XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

MODELOWANIE PRZEPŁYWU DANYCH

Diagramy stanów tworzenie modeli analizy i projektowania Na podstawie UML 2.0 Tutorial

Przesyłania danych przez protokół TCP/IP

Procesy biznesowe w praktyce. Projektowanie, testowanie i optymalizacja

Pętle. Dodał Administrator niedziela, 14 marzec :27

MiASI. Modelowanie systemów biznesowych. Piotr Fulmański. 7 stycznia Wydział Matematyki i Informatyki, Uniwersytet Łódzki, Polska

Źródło: S. Wrycza, B. Marcinkowski, K. Wyrzykowski Język UML 2.0 w modelowaniu systemów informatycznych Helion DIAGRAMY INTERAKCJI

Komputerowe Systemy Przemysłowe: Modelowanie - UML. Arkadiusz Banasik arkadiusz.banasik@polsl.pl

System IVR. Opis elementów systemu

Diagramy czynności. Widok logiczny. Widok fizyczny

Robert Barański, AGH, KMIW For Loops While Loops v1.0

Diagram przypadków użycia

Graficzna notacja procesów biznesowych BPMN. Porównanie z notacja UML. Jakub Morkis, Piotr Chmielewski

Definicje. Algorytm to:

1 Moduł Konfigurowanie Modułu

PROCEDURA OBSŁUGI INCYDENTÓW I WNIOSKÓW NA REALIZACJĘ USŁUG W SYSTEMACH INFORMATYCZNYCH. załącznik do ZR 154/2014 z dnia 22 grudnia 2014 roku

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Automatyczne anulowanie zleceń w wyniku odłączenia od CCG

Stan/zdarzenie Nexo. Zmienne wirtualne. Zdarzenia wirtualne

Dokumentacja Użytkownika Systemu

S Instrukcje programowania instrukcje obsługi Ethernetu

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Bazy danych. Andrzej Łachwa, UJ, /15

Spis treści. 1 Moduł Modbus TCP 4

Robert Barański, AGH, KMIW State Machine v1.0. Maszyna stanów (State Machine)

Narysować diagram sekwencji pokazujący rejestrację wypożyczenia przez Jana Kowalskiego książki Potop

Wyjątki Monika Wrzosek (IM UG) Programowanie obiektowe 180 / 196

Integrator ze sklepem internetowym (dodatek do Sage Symfonia ERP Handel)

ZARZĄDZANIU. Wykład VI. dr Jan Kazimirski

Aktualizacja modemu LTE Speed 1000

Stan globalny. Krzysztof Banaś Systemy rozproszone 1

Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

Rozdział ten zawiera informacje na temat zarządzania Modułem Modbus TCP oraz jego konfiguracji.

APIO. W4 ZDARZENIA BIZNESOWE. ZALEŻNOŚCI MIĘDZY FUNKCJAMI. ELEMENTY DEFINICJI PROCESU. DIAGRAM ZALEŻNOŚCI FUNKCJI.

Testowanie i walidacja oprogramowania

Instrukcje cykliczne (pętle) WHILE...END WHILE

Bazy danych TERMINOLOGIA

Podstawy programowania III WYKŁAD 4

Algorytm. Krótka historia algorytmów

Inżynieria oprogramowania. Wykład 7 Inżynieria wymagań: punkty widzenia, scenariusze, przypadki użycia

Dokument: Zmiana stawek VAT Informacja dla dealerów

Bazy danych w sterowaniu

Podstawy programowania skrót z wykładów:

Język JAVA podstawy. Wykład 3, część 3. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

1 Moduł Modbus ASCII/RTU 3

Najkrótsza droga Maksymalny przepływ Najtańszy przepływ Analiza czynności (zdarzeń)

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 3. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,

Modelowanie i symulacja procesu Egzaminowanie studento w z wykorzystaniem programu igrafx

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

Informatyka wprowadzenie do algorytmów (II) dr hab. inż. Mikołaj Morzy

Oracle PL/SQL. Paweł Rajba.

Programowanie w języku Java - Wyjątki, obsługa wyjątków, generowanie wyjątków

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Modelowanie diagramów klas w języku UML. Łukasz Gorzel @stud.umk.pl 7 marca 2014

W jakim celu to robimy? Tablica Karnaugh. Minimalizacja

LABARATORIUM 9 TESTY JEDNOSTKOWE JUNIT 3.8

Przewodnik użytkownika systemu AgentWorks podwójna kontrola wydanie 11 wersja polska

PHP: bloki kodu, tablice, obiekty i formularze

Podstawy Programowania C++

7. Pętle for. Przykłady

Każde wykonanie bloku instrukcji nazywamy pojedynczym przebiegiem lub iteracją pętli.

NIFIED M L ODELLING ANGUAGE. Diagramy czynności

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

Diagramy przypadków użycia

Spis treści. 1 Moduł RFID (APA) 3

Diagramy czynności tworzenie modelu przypadków użycia Wykład 2

Dokumentacja Użytkownika Systemu. Integracja z Okazje.info, Skąpiec, Sklepy24

Zalety projektowania obiektowego

Baza danych sql. 1. Wprowadzenie

Modelowanie KONCEPCJA. przedstawiana przez INDYWIDUALNOŚĆ GHJ 6

Materiały do laboratorium MS ACCESS BASIC

Wykład z Technologii Informacyjnych. Piotr Mika

Sztuczna Inteligencja Projekt

LEKCJA TEMAT: Zasada działania komputera.

Pojęcie bazy danych. Funkcje i możliwości.

Przepływy danych. Oracle Designer: Modelowanie przepływów danych. Diagramy przepływów danych (1) Diagramy przepływów danych (2)

Wymiar poziomy: oś na której umieszczono instancje klasyfikatorów biorące udział w interakcji.

Transkrypt:

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 Rozwidlenie na dwa równoległe przepływy Oczekiwanie aż obydwa zadania zostaną ukończone Zadanie wykona się jeden raz po ukończeniu wszystkich poprzednich zadań 10

Łączenie przepływów równoległych bramka OR Rozwidlenie na dwa równoległe przepływy Oczekiwanie aż wszystkie rozpoczęte zadania zostaną ukończone (w tym przypadku bramka OR zachowa się identycznie jak bramka równoległa) Zadanie wykona się jeden raz po ukończeniu wszystkich poprzednich zadań 11

Łączenie przepływów równoległych bramka XOR Rozwidlenie na dwa równoległe przepływy Po zakończeniu każdego z zadań wyszukiwania natychmiast uruchomione zostanie zadanie weryfikacji 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 Rozwidlenie na dwa równoległe przepływy Bramka będzie oczekiwać na zakończenie jednego z zadań wyszukiwania. Po zakończeniu jednego z tych zadań natychmiast uruchomione zostanie zadanie weryfikacji. 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 Dwa podprocesy rozpoczynają działanie (równolegle) Kiedy koncepcja książki jest gotowa, wysyłany jest sygnał 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 Zdarzenie końcowe błąd służy do zgłoszenia błędu Proces znajdzie się na ścieżce normalnej tylko wtedy, gdy w trakcie wykonywania podprocesu nie zostanie zgłoszony żaden błąd Proces znajdzie się na ścieżce wyjątku tylko wtedy, gdy w trakcie wykonywania podprocesu zostanie zgłoszony błąd 39 Każdy błąd zgłoszony w okresie aktywności podprocesu Weryfikacji zdolności kredytowej jest przechwytywany przez zdarzenie krawędziowe

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 Ś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 Każde zgłoszenie eskalacji w okresie aktywności podprocesu Przyjęcie zamówienia jest przechwytywane przez zdarzenie krawędziowe 42

Eskalacja vs. Błąd Eskalacja Eskalacja służy do wykonania pewnych dodatkowych działań, najczęściej bez naruszania bieżącej ścieżki procesu Błąd Błędy służą do poinformowania, że proces nie zachowuje się zgodnie z oczekiwaniami Zgłoszenie eskalacji nie kończy bieżącego procesu Istnieją dwa zdarzenia zgłaszające potrzebę eskalacji: zdarzenia pośrednie i końcowe Procedura obsługi eskalacji może być wykonywana równolegle do czynności w której nastąpiło zgłoszenie Zgłoszenie błędu kończy bieżący proces Istnieje jedno zdarzenie zgłaszające błąd: zdarzenie końcowe 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 Ad- Hoc 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 54 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 )

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 wyjściowych przepływów sekwencji Posiada wejściowe i wyjściowe przepływy sekwencji 56

Podproces zdarzeniowy vs. Zdarzenia krawędziowe Podproces zdarzeniowy Może być zdefiniowany tylko wewnątrz podprocesu Jest traktowany jako wbudowana (inline) procedura obsługi zdarzenia Zdarzenia krawędziowe Może być zdefiniowane dla podprocesu i zadań Jest traktowany jako zewnętrzna procedura obsługi zdarzenia Ma dostęp do danych podprocesu wewnątrz którego jest zdefiniowany Po zakończenie działania proces kontynuuje ścieżkę normalną Wszelkie dane wymagane przez obsługę zdarzenia muszą być przekazywane 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 Odbiera zgłoszenie o kompensacji Zgłoszenie anulowania transakcji Podproces transakcji Odbiera zgłoszenie o błędzie Czynność wykonywana podczas obsługi kompensacji 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): 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 Zakończenie ryzykowne (Wystąpił nieodwracalny błąd): 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