Business Process Model and Notation
Business Process Model and Notation, BPMN (Notacja i Model Procesu biznesowego) – graficzna notacja służąca do opisywania procesów biznesowych. Jest zgodna z koncepcją architektury SOA. Powstała w ramach Business Process Management Initiative, obecnie jest utrzymywana przez konsorcjum Object Management Group. Aktualna wersja standardu to 2.0. We wcześniejszych wersjach nazwa BPMN była rozwijana jako Business Process Modeling Notation.
Dużą zaletą tej notacji jest jej jednoznaczność, przydatność zarówno do opisów procesów na potrzeby oprogramowania klasy ERP, jak i Workflow oraz to, że wspiera ją ponad 70 narzędzi. Notację tę obsługują m.in. narzędzia iGrafx, ADONIS, Borland, DYSANT i IBM. iGrafx oferuje również możliwość przejścia z modelu BPMN na model BPEL. Narzędzia DYSANT umożliwają z kolei zarówno modelowanie procesów przy wykorzystaniu standardu BPMN i wymianę definicji procesów z innymi narzędziami i środowiskami wykonawczymi przy wykorzystaniu standardów XPDL i BPMN 2.0.
Metodą wymiany danych pomiędzy narzędziami BPMN są XPDL i BPMN XML. Istnieje też jednoznaczna metoda tłumaczenia z BPMN do BPEL jednakże BPEL nie obsługuje wszystkich dozwolonych konstrukcji BPMN.
BPMN opisuje dwa typy relacji procesów:
- Orkiestrację – sposób realizacji procesu opisywaną modelem Procesu wewnętrznego – prywatnego private (internal) business process,
- Choreografię – sposób współdziałania procesów, którą można zapisać diagramami:
- Procesu publicznego – skróconego abstract – public
- Procesu kooperacji – współpracy B2B Collaboration – global process
- Choreografii – Choreography diagram
Złożone struktury choreografii można zapisać diagramem:
- Konwersacji – „Conversation”
Podstawowe kategorie elementów graficznych BPMN:
- elementy aktywne przepływu – flow objects
- czynności
- zdarzenia
- bramki
- połączenia – connecting objects
- miejsca realizacji procesu – pools, swimlanes
- obiekty danych – data objects
- artefakty – artifacts, elementy graficzne nie będące elementami przepływu; służą umieszczaniu informacji uzupełniających. Trzy artefakty są zdefiniowane w BPMN: komunikaty, adnotacje i grupy. Można dodawać własne artefakty.
Notacja BPMN zakłada operowanie trzema podstawowymi typami obiektów aktywnych (przepływu):
- Zdarzenie Event – symbolizowane przez okrąg. Zdarzenia mogą być początkowe (pojedyncza cienka linia ciągła), pośrednie (podwójna cienka linia ciągła) i końcowe (pojedyncza gruba linia ciągła). Występują następujące typy zdarzeń:
- nieokreślone,
- komunikat,
- sygnał,
- zasada,
- czas,
- anulowanie,
- zerwanie (terminacja),
- usterka,
- eskalacja
- kompensacja,
- łącze
- wielokrotne.
- Czynność – symbolizowane przez prostokąt z zaokrąglonymi rogami. Czynność to „praca” wykonywana w procesie lub w przypadku diagramów choreografii „współpraca” wykonywana pomiędzy procesami. Czynnościami mogą być:
- Zadanie Task – czynność niezdekomponowana,
- Podproces Sub-Process – czynność zdekomponowana posiadająca opisana innymi zadaniami lub podprocesami logikę wykonania.
- Bramka logiczna Gateway – symbolizowaną przez romb. Bramki mogą rozdzielać lub łączyć przepływy.
Swoistym elementem aktywnym jest Konwersacja – czyli uporządkowana wymiana komunikatów pomiędzy uczestnikami obrazowana za pomocą sześciokąta na powiązaniu konwersacyjnym.
Połączenia:
- Linia ciągła – przebieg procesu – sequence flow
- Linia przerywana – przebieg wiadomości (komunikatów) – message flow
- Linia kropkowana – powiązanie – association
- Linia podwójna – powiązanie konwersacyjne – Conversation Link
Miejsca realizacji procesu:
- Uczestnicy, pule pools, reprezentujące uczestników procesu (np. firmy / systemy informatyczne) i opisujące zwykle sytuacje B2B;
- Tory lanes, będące elementami struktury organizacyjnej na jakie dzielimy w razie potrzeby uczestników (najczęściej role biznesowe występujące u danego uczestnika); specyfikacja nie definiuje sposobu wykorzystywania torów.
Proponowana terminologia BPMN
- Events – Zdarzenia:
- Message – Wiadomość (komunikat)
- Timer – Czas (przedział czasu)
- Error – Usterka (Wyjątek)
- Escalation – Eskalacja
- Signal – Sygnał
- Cancel – Anulowanie
- Compensation – Kompensacja
- Rule – Zasada
- Link – Łącze
- Terminate – Zerwanie
- Multiple – Wielokrotne
- i pochodne od tego: np. Cancel Event – zdarzenie Anuluj, Send Message Event – Zdarzenie Wyślij wiadomość lub Terminate Event – Zdarzenie Zerwanie (procesu).
- Tasks – Zadania:
- Send Task – Zadanie wyślij (komunikat)
- Receive Task – Zadanie odbierz (komunikat)
- Service Task- Usługa
- User Task – Zadanie użytkownika
- Manual Task – Zadanie ręczne
- Business Rule Task – Zadanie reguła biznesowa
- Script Task – Skrypt
- Global Task – Zadanie globalne
- Kompensation Task – Zadanie kompensacji
- Sub-Process – Podprocesy:
- Colapsed Subprocess – Podproces zwinięty
- Expanded Subprocess – Podproces osadzony
- Transaction – Transakcja biznesowa
- Event Sub-Processes – Podproces zdarzeniowy (Podproces wyzwalany zdarzeniem)
- i pochodne od tego: np. Podproces zwinięty transakcji biznesowej, Osadzony nieprzerywający podproces zdarzeniowy komunikatu lub Osadzony nieprzerywający podproces wyzwalany zdarzeniem komunikat.
- Gateways – Bramki (logiczne):
- Decision – Decyzyjna
- Merge/Join – Łącząca
- Fork – Rozdzielająca
- XOR – ALBO
- OR – LUB
- AND – I
- Event Based XOR – ALBO sterowana zdarzeniami
- Data Based XOR – ALBO sterowana danymi