Instytut Informatyki, Automatyki i Robotyki Zastosowanie informatyki w gospodarce Wykład 5 BPMN,BPEL, WS-CDL dr inż. Tomasz Walkowiak
Serwisy sieciowe, WWW Web Services dostępne poprzez sieć komponenty aplikacyjne przeznaczonym do wykorzystania przez inne aplikacje, zwane aplikacjami klienckimi hermetyzowane, luźno skojarzone kontraktowane funkcje, oferowane poprzez standardowe protokoły. Hermetyzowane : implementacja nigdy nie jest widoczna z zewnątrz. Luźno skojarzone : modyfikowanie danej implementacji nie generuje problemu propagacji zmiany. Kontraktowane opisy działania funkcji oraz specyfikacja ich interfejsów jest publicznie dostępna Business Process Software Services A B C D 1 2 3 4 5 6 2
Przykład Wyszukiwanie najtańszej książki 3
Standardy Web Services dla SOA Discovery, Negotiation, Agreement Component Orchestration Protocols State Model Reliable Messaging Composite Interface + Bindings XML Security Transport Atomic Transactions Policy Non-XML Components Quality of Service Description Messaging Transport 4
Standardy Web Services dla SOA Discovery, Negotiation, Agreement UDDI, WS-Addr, Metadata Exch., Component Orchestration WS-BPEL Protocols SCA State Model Reliable WS-RM Messaging Composite Atomic Interface + Bindings WSDL* XML WS-C WS-N* Security WS-Security* Transport Transactions Policy WS-Policy* Non-XML HTTP, TCP/IP, SMTP, FTP, WS-RF WS-AT WS-BA SOAP, WS-Addr* JMS, RMI/IIOP,... Components Quality of Service Description Messaging Transport 5
Standardy Web Services dla SOA Discovery, Negotiation, Agreement UDDI, WS-Addr, Metadata Exch., Component Orchestration WS-BPEL Protocols SCA State Model Reliable WS-RM Messaging Composite Atomic Interface + Bindings WSDL* XML WS-C WS-N* Security WS-Security* Transport Transactions Policy WS-Policy* Non-XML HTTP, TCP/IP, SMTP, FTP, WS-RF WS-AT WS-BA SOAP, WS-Addr* JMS, RMI/IIOP,... Components Quality of Service Description Messaging Transport 6
Business Process Modelling Notation (BPMN) informacje wstępne Business Process Modelling Notation (BPMN) - notacja zarządzania procesami biznesowymi graficzny język wizualizacji, specyfikowania, tworzenia i dokumentowania procesów biznesowych. Stworzony przez Business Process Management Initiative (BPMI, www.bpmi.org). 2005 strategiczna fuzja z Object Management Group (OMG) Slajdy o BPMN (do 26) opracowane przez projekt: http://eatraining.eu/ 7
Cele BPMN Wymiana procesów biznesowych na poziomie ludzi zamiast poziomu technicznego Notacja rozumiana przez wszystkie strony. Wspieranie prostych i złożonych procesów. Wspieranie prostej wymiany komunikacji między użytkownikami Diagramy procesów biznesowych modele procesów jako środek interakcji i komunikacji między projektantami, użytkownikami i osobami zarządzającymi procesami. Stworzenie mostu między notacją pojęciową i techniczną (wsparcie przekształcania pomysłu na kod) Formalne mapowanie pojęć na wykonalne języki Np. na BPEL (Business Process Execution Language), BPEL4WS (BPEL for Web Services), itp. Standardowa notacja i wizualizacja Język modelowania procesów jest zoptymalizowany na rzecz tworzenia wykonalnego kodu. Ze strony: http://eatraining.eu/ 8
Podstawowe pojęcia BPMN Proces zbiór wzajemnie powiązanych lub wzajemnie na siebie oddziałujących działań, które przekształcają elementy wejściowe na wyjściowe. Proces biznesowy zaplanowany proces nastawiony na uzyskiwanie określonych rezultatów. Mapa procesów biznesowych - obraz przedstawiający wszystkie czynności i procesy realizowane wewnątrz organizacji w celu wytworzenia produktu końcowego. Trzy podstawowe rodzaje procesów: Procesy zarządzania Procesy operacyjne Procesy pomocnicze Ze strony: http://eatraining.eu/ 9
Obszary zastosowania BPMN (1) Koncentruje się na sekwencji procesu z trzema rodzajami podprocesów: Wewnętrzne (prywatne) procesy biznesowe Procesy wykonywane wewnątrz jednostki organizacyjnej W ogólnych przepływach pracy procesów BPM Przykład: Ze strony: http://eatraining.eu/ 10
Obszary zastosowania BPMN (2) Koncentruje się na sekwencji procesu z trzema rodzajami podprocesów: Abstrakcyjne (publiczne) procesy Ilustrują interakcję między wewnętrznymi procesami a zewnętrznymi partnerami biznesowymi wskazując sekwencję interakcji / wiadomości wewnętrznego procesu z zewnętrznymi użytkownikami Przedstawiane są tylko czynności obejmujące zewnętrzną komunikację wskazując przepływ sterowania Mapowanie pojedynczego abstrakcyjnego procesu na unikalny abstrakcyjny proces w BPEL4WS Zbiory w obszarach wspólnych abstrakcyjne procesy mogą być modelowane indywidualnie lub wewnątrz bardziej złożonych diagramów BPMN Ze strony: http://eatraining.eu/ 11
Obszary zastosowania BPMN (3) Koncentruje się na sekwencji procesu z trzema rodzajami podprocesów: Abstrakcyjne (publiczne) procesy Przykład: Ze strony: http://eatraining.eu/ 12
Obszary zastosowania BPMN (4) Koncentruje się na sekwencji procesu z trzema rodzajami podprocesów: Procesy współpracy (globalne) Ilustrują interakcję między dwoma lub więcej partnerami biznesowymi Sekwencja czynności pokazująca wymianę wiadomości między jednostkami» Punkty styku aktorów» Rzeczywiste (wykonywalne) procesy zazwyczaj mają więcej czynności i szczegółów niż abstrakcyjne procesy współpracy Dwa lub więcej abstrakcyjnych procesów komunikujących się wzajemnie Możliwe jest mapowanie indywidualnego procesu współpracy na różne języki współpracy ebxml BPSS, RosettaNet, ipt Ze strony: http://eatraining.eu/ 13
Obszary zastosowania BPMN (5) Koncentruje się na sekwencji procesu z trzema rodzajami podprocesów: Procesy współpracy (globalne) Przykład: Ze strony: http://eatraining.eu/ 14
Elementy graficznej notacji: zdarzenia, aktywności Zdarzenie Pojawia się w trakcie przebiegu procesu. Ma wpływ na jego przebieg. Zazwyczaj wyzwala lub jest efektem jakiegoś działania. Aktywność (czynność) Reprezentuje pracę wykonywaną wewnątrz procesu biznesowego. Elementarne (atomowe) i złożone (nieatomowe). Rodzaje aktywności: proces, podproces, zadanie. Proces nie ma symbolu bo jest zbiorem obiektów graficznych. Rodzaje zdarzeń zdarzenie początkowe (startowe) zdarzenie przejściowe (pośrednie) zdarzenie końcowe Rodzaje aktywności Zadanie Ze strony: http://eatraining.eu/ 15
Elementy graficznej notacji: procesy i podprocesy Podproces Nazwa Nazwa Podproces w widoku szczegółowym Jest aktywnością, która zawiera inne aktywności (procesy). Jasno określone granice. Ze strony: http://eatraining.eu/ 16
Elementy graficznej notacji: obiekty decyzyjne / bramy Brama Element modelujący Stosowana w kontrolowaniu zachowania przepływu sekwencji w momencie schodzenia i/lub rozchodzenia Określa różne rodzaje zachowań procesów w przepływie sekwencji: Decyzje / rozgałęzienia Złączanie Rozwidlanie Łączenie Rodzaje bram lub Rozłączna oparta o dane Rozłączna oparta o zdarzenia Łączna Złożona Równoległa Ze strony: http://eatraining.eu/ 17
Elementy graficznej notacji: rozdzielanie, łączenie Rozdzialenie Niekontrolowane (OR) Łączenie Kontrolowane (AND) Ze strony: http://eatraining.eu/ 18
Elementy graficznej notacji: przepływy sekwencji Normalna sekwencja Sekwencja z warunkami sprawdzanymi w trakcie działania Domyślna ścieżka w rozłącznych bramach opartych na danych Przykład niekontrolowany Ze strony: http://eatraining.eu/ 19
Elementy graficznej notacji: przepływy wiadomości, powiązania Przepływ wiadomości Wymiana wiadomości między dwoma stronami Uczestnicy są reprezentowani w obszarach wspólnych Powiązania Reprezentują połączenia między elementami sekwencji oraz spoza niej, takimi jak: teksty, informacje Nieskierowane Skierowane Ze strony: http://eatraining.eu/ 20
Nazwa Nazwa Nazwa Nazwa Elementy graficznej notacji: obszary wspólne, tory Obszary wspólne (Pools) Uczestnicy Zazwyczaj współpraca B2B Tory (Swimlanes) Proste grupowanie obszarów wspólnych Ze strony: http://eatraining.eu/ 21
Rozszerzenie podstawowych elementów notacji: zdarzenia [1/3] Przechwytujące Początkowe Przejściowe Wyrzucające Przejściowe Końcowe Wiadomości Wyzwalacz lub rezultat Zegar Określenie ograniczeń czasowych na wejściowych lub przejściowych rezultatach Błąd Z przejściowymi rezultatami lub na końcu Kasowanie procesu Ze strony: http://eatraining.eu/ 22
Rozszerzenie podstawowych elementów notacji: zdarzenia [3/3] Przechwytujące Początkowe Przejściowe Wyrzucające Przejściowe Końcowe Zakończenie procesu Złożony Istnieje wiele możliwości rozpoczęcia lub wiele konsekwencji zakończenia procesu Ze strony: http://eatraining.eu/ 23
Rozszerzenie podstawowych elementów notacji: zdarzenia [2/3] Przechwytujące Początkowe Przejściowe Wyrzucające Przejściowe Końcowe Kompensacja Alternatywne ścieżki wykonania Warunkowe Rezultatem początku / przejścia są warunki Powiązanie Odniesienie do innego procesu, aktywności, zasobu Sygnał Alarm Ze strony: http://eatraining.eu/ 24
Przykład użycia rozszerzonych elementów Ze strony: http://eatraining.eu/ 25
Przykład użycia rozszerzonych elementów: warunki, ścieżki Ze strony: http://eatraining.eu/ 26
Modele przepływu- Porównanie WorkFlow Patterns BPEL WSCI XLANG WSFL EPC UML 2.0 BPMN Web Bond 1. Sequence + + + + + + + + 2. Parallel split + + + + + + + + 3. Synchronization + + + + + + + + 4. Exclusive choice + + + + + + + + 5. Simple merge + + + + + + + + 6. Multi choice + - - + + + + + 7. Synchronizing merge + - - + + + + + 8. Multi merge - + - - - + + + 9. Discriminator - - - - - + + + 10. Arbitrary cycle - - - - + + + + 11. Implicit termination + + - + + + + + 12. MI without synchronization + + + + - + + + 13. MI with a prior design time knowledge + + + + - + + + 14. MI with a prior runtime knowledge - - - - - + + + 15. MI without a prior runtime knowledge - - - - - + + + 16. Deferred choice + + + - - + + + 17. Interleaved parallel routing + - - - - + + + 18. Milestone - - - - - + + + 19. Cancel activity + + + + - + + + 20. Cancel case + + + + - + + + 27
Przykład aplikacji złożonej Przyjęcie nowego pracownika Ochestration * Interfejs Kadry Płace E-mail Usługa biznesowa *orkiestracja, instrumentacja (pol.) - 1. muz. opis partyturowy użycia poszczególnych instrumentów w utworze orkiestrowym. 28 28
Wykonanie instrumentacji Przekształcenie zapisu graficznego w kod wykonywalny Przekształcenie zapisu graficznego do zapisu w języku zorientowanym na procesy i wykonanie takiego zapisu w specjalizowanym silniku BPEL propozycja IBM i Microsoft Business Process Execution Language 29 29
Wersje BPEL v1.0 - BPEL4WS 08. 2002 v1.1 2003 v2.0 WSBPEL 2007, OASIS 30 30
Struktura procesu w BPEL4WS <process...> <partners>... </partners> <!-- Web services the process interacts with --> <containers>... </containers> <! Data used by the process --> <correlationsets>... </correlationsets> <! Used to support asynchronous interactions --> <faulthandlers>... </faulthandlers> <! Alternate execution path to deal with faulty conditions --> <compensationhandlers>... </compensationhandlers> <! Code to execute when undoing an action --> (process body) <! What the process actually does --> </process> 32 32
BPEL Podstawowe aktywności <invoke partner=... porttype=... operation=... inputcontainer=... outputcontainer=... /> <!-- process invokes an operation on a partner: --> <receive partner=... porttype=... operation=... container=... [createinstance=... ]/> <!-- process receives invocation from a partner: --> <reply partner=... porttype=... operation=... container=... /> <!-- process send reply message in partner invocation: --> <assign> <copy> <from container=... /> <to container=... /> </copy>+ </assign> 33 <! Data assignment between containers: --> 33
BPEL i WSDL Partner B Partner A WSDL Komunikacja synchroniczna Process WSDL A 34 34
BPEL i WSDL Partner B Partner A WSDL A Komunikacja asynchroniczna 35 35
Partner Definitions and Links <partner name=... servicelinktype=... partnerrole=... myrole=... /> <! A partner is accessed over a WS channel, defined by a service link type --> <servicelinktype name=..."> <role name=..."> <porttype name=..."/>* </role> <role name=..."> <porttype name=... />* </role> </servicelinktype> <! A SLT defines two roles and the porttypes that each role needs to support --> 36 36
BPEL - model danych Globally scoped data variables typed as WSDL messages Activities input/ output is kept in global variables. Assignment activities move data around. <container name=... message=... />* 37 37
BPEL kompozycja Web Services Component B Process WSDL Component A B s WSDL A s WSDL Call Back 38 38
Podstawowe aktywności <throw faultname=..." faultcontainer=... /> <!-- process detects processing error and switches into fault processing mode --> <terminate/> <! pull the plug --> <wait for=...? until=...?/> <!-- process execution stops for a specified amount of time--> <empty> <! Do nothing; a convenience element --> 39 39
BPEL kontrola przepływu <sequence> <! execute activities sequentially--> <flow> <! execute activities in parallel--> <while> <! iterate execution of activities until condition is violated--> <pick> <! several event activities (receive message, timer event) scheduled for execution in parallel; first one is selected and corresponding code executed. --> <link...> <! defines a control dependency between a source activity and a target --> 40 40
Zagnieżdżanie struktur <sequence> <receive.../> <flow> <sequence> <invoke.../> <while... > <assign>... </assign> </while> </sequence> <sequence> <receive.../> <invoke... > </sequence> </flow> <reply> </sequence> Seq Flow Seq Whil e Seq 41 41
BPEL - wady Brak notacji dla niezależnych aktywności Wszystko w BPEL-u jest operacją web service a nie aktywnością (np. jednostką pracy) Brak modelowania interakcji z człowiekiem Współpracujące aktywności komunikują się wzajemnie (w efekcie wiele dokumentów BPEL dla pojedynczego procesu) BPEL może reprezentować wielostronną współprace tylko poprzez centralne sterwoanie 42 42
43 43
Executable Process Models Target Values Measures for Improvement Po co to? Organizational Analysis AS IS Process Models Process Analysis & Design TO BE Process Models Abstract Models EPC, BPMN Communication, simulation, activitybased costing Process Evaluation Process Metrics Process Enactment & Monitoring Process Implementation Detailed Models BPEL, State Machines Data types, conditions, data mappings, fault handling Integration, testing, deployment 44
Pojęcia Orchestration describes the automated arrangement, coordination, and management of complex computer systems, middleware, and services. Choreography - collaboration protocols of cooperating Web Service participants, in which services act as peers, and interactions may be long-lived and stateful Instrumentacja wykonywalny proces, opierający się na wymianie komunikatów z innym systemem centralnie sterowny Choreografia (sekwencja) Specyfikuje protokół interakcji serwisu z serwisem, sekwencji wymiany komunikatów Taki protokół może być różnie realizowany Choreografia może być realizowana poprzez napisanie instrumentalizacji 45
WS-CDL Web Services Choreography Description Language W3C XML Mówią że oparty na PI-calulus (nie prawda) 46
WS-CDL 47
WS-CDL Package Package - root Target namespace Zawiera choreografie <package name="ncname" author="xsd:string"? version="xsd:string" targetnamespace="uri" xmlns="http://www.w3.org/2004/04/ ws-chor/cdl"> importdefinitions* informationtype* token* tokenlocator* role* relationship* participant* channeltype* Choreography-Notation* </package> 48 48
Dane Channel For communication with a participant Dynamic, actual endpoint in data Can be passed around Variables Information exchange, state, channel variables Reside in Roles 49
Participants & Roles Roles Enumerate behaviors, optionally linked to WSDL interfaces Participants Play one or more roles Apparently not used in WS-CDL Relationships Associate specific behaviors of two roles for a purpose Complex relationships broken down to pairs 50 50
Choreography <choreography name="consumerretailerchoreo" root="true"> <relationship... /> * <variabledefinitions> <variable... /> * </variabledefinitions>?... <! - local choreographies --> <interaction initiatechoreography="true">... </interaction> <exception>... </exception>? <finalizer>... </finalizer>? </choreography> 51
52
Przyjkład Buyer Seller Buyer Seller getquote quoteresponse getquote quoterejected x < 1000 units >= 1000 units 53
Przykład 54
Przykład 55
Relationships i Participants 56
Channels i Info types 57
Variables 58
Interactions 59
Choice 60
Workunits 61
Struktury - PI4Tech 62
WS-CDL w praktyce PI4SOA Przykłady WS-CDL-a DESEREC 63