Język BPEL. Bussiness Process Execution Language

Podobne dokumenty
Zaawansowane aplikacje internetowe. Wykład 7. Implementacja procesów biznesowych w języku BPEL. wykład prowadzi: Maciej Zakrzewicz BPEL.

Implementacja aplikacji biznesowych w technologii WS-BPEL

Problemy niezawodnego przetwarzania w systemach zorientowanych na usługi

1.KOMPOZYCJA I INTEGRACJA USŁUG W ARCHITEKTURZE SOA

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

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

CENTRUM PROJEKTÓW INFORMATYCZNYCH MINISTERSTWA SPRAW WEWNĘTRZNYCH I ADMINISTRACJI

Automatyzacja procesów biznesowych mgr inż. Krystyna Dziubich

Analiza procesów biznesowych (BPEL4WS) za pomocą CWB. Grzegorz Statuch

Mechanizmy pracy równoległej. Jarosław Kuchta

JBPM [JUG] Tomasz Gratkowski [GRATKOWSKI SOFTWARE]

Bazy danych 2. Wykład 1

Usługi sieciowe (Web Services)

Wymiana opisu procesów biznesowych pomiędzy środowiskiem Eclipse i EMC Documentum

Spis treúci. 1. Wstęp... 11

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

Korporacyjna Magistrala Usług na przykładzie Oracle Service Bus

Hurtownie danych - przegląd technologii

Komunikacja i wymiana danych

Korporacyjna Magistrala Usług na przykładzie Mule ESB

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Język UML w modelowaniu systemów informatycznych

w PL/SQL bloki nazwane to: funkcje, procedury, pakiety, wyzwalacze

TECHNOLOGIE OBIEKTOWE WYKŁAD 2. Anna Mroczek

1. Wymagania dla lokalnej szyny ESB

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

Zagadnienia projektowania aplikacji J2EE

Plan wykładu PROJEKTOWANIE SYSTEMÓW PROCESÓW PRACY. Organizacje standaryzujace i stowarzyszenia. Definicje podstawowe.

Modelowanie procesów biznesowych

Wprowadzenie. Dariusz Wawrzyniak 1

Projekt z AZNU tutorial

Automatyzacja procesów biznesowych w środowisku Oracle BPM 11g: zagadnienia wdrożeniowe

Diagramy czynności Na podstawie UML 2.0 Tutorial

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Kompozycja usług. Tomasz Pawlak. Biznesowe Systemy Rozproszone

Przykład połączenie z bazą danych

Język UML w modelowaniu systemów informatycznych

Programowanie MorphX Ax

EJB 3.0 (Enterprise JavaBeans 3.0)

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Zagadnienia (1/3) Data-flow diagramy przepływów danych ERD diagramy związków encji Diagramy obiektowe w UML (ang. Unified Modeling Language)

Architektura Systemu. Architektura systemu umożliwia kontrolowanie iteracyjnego i przyrostowego procesu tworzenia systemu.

Język UML w modelowaniu systemów informatycznych

PHP: bloki kodu, tablice, obiekty i formularze

C# 6.0 : kompletny przewodnik dla praktyków / Mark Michaelis, Eric Lippert. Gliwice, cop Spis treści

Wybrane działy Informatyki Stosowanej

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

MODELOWANIE PROCESÓW BIZNESOWYCH Z UŻYCIEM NOTACJI BPMN

Programowanie Komponentowe WebAPI

SOA Web Services in Java

Programowanie usług działających w tle

Projektowanie oprogramowania

Wstęp do programowania 2

Tworzenie komponentów logiki biznesowej i warstwy dostępu do danych w oparciu o EJB3.0/JPA lub EJB 3.1/JPA2

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Wybrane działy Informatyki Stosowanej

Słowem wstępu. Część rodziny języków XSL. Standard: W3C XSLT razem XPath 1.0 XSLT Trwają prace nad XSLT 3.0

Systemy przepływu pracy (workflow)

Zalety projektowania obiektowego

1 Wprowadzenie do J2EE

Projektowanie oprogramowania cd. Projektowanie oprogramowania cd. 1/34

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

problem w określonym kontekście siły istotę jego rozwiązania

Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 4 Ćwiczenia w narzędziu CASE diagram czynności. Materiały dla studenta

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

UML. dr inż. Marcin Pietroo

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

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

Modelowanie procesów biznesowych BPMN cz. I

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

Procesy biznesowe w praktyce. Przykłady użycia z wykorzystaniem jbpm 4.4

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

Wykład I. Wprowadzenie do baz danych

Modelowanie i Programowanie Obiektowe

Szkolenie wycofane z oferty. Program szkolenia: Enterprise Java Beans 3.0/3.1

Spis treści. Przedmowa


I.Wojnicki, Tech.Inter.

Klasy cd. Struktury Interfejsy Wyjątki

Projekt: Współpraca i Rozwój wzrost potencjału firm klastra INTERIZON

Spis treúci. 1. Wprowadzenie... 13

JBoss: MetaMatrix, Mobicents, Seam, Rools, ESB

Programowanie obiektowe - 1.

Analiza i projektowanie obiektowe 2016/2017. Wykład 10: Tworzenie projektowego diagramu klas

Klasy Obiekty Dziedziczenie i zaawansowane cechy Objective-C

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Modelowanie procesów biznesowych, przepływu pracy oraz reguł biznesowych na przykładzie Drools i jbpm lub Activiti

Warstwa integracji. wg. D.Alur, J.Crupi, D. Malks, Core J2EE. Wzorce projektowe.

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Inżynieria oprogramowania Jarosław Kuchta. Modelowanie interakcji

Szkolenie: Budowa aplikacji SOA/BPM na platformie Oracle SOA Suite 11g

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

UML w Visual Studio. Michał Ciećwierz

Technologie obiektowe

Współbieżność i równoległość w środowiskach obiektowych. Krzysztof Banaś Obliczenia równoległe 1

Transkrypt:

Język BPEL Bussiness Process Execution Language

Język BPEL BPEL jest (Web Services) Business Process Execution Language, standaryzowany przez OASIS BPEL jest językiem bazującym na XML służącym do definiowania interakcji usług sieciowych BPEL opisuje interakcje między usługami sieciowymi tworzącymi razem przepływ pracy przekazywanie pracy przekazywanie danych obsługa błędów

Historia IBM 2001 WSFL Microsoft 2001 XLANG W roku 2002 połączenie dwóch języków w jeden: BPEL4WS W 2003 kilka firm (w tym IBM i Microsoft) przesyłają BPEL4WS 1.1 do standaryzacji (OASIS) W 2007 nowa wersja standardu BPEL4WS 2.0

Cechy języka BPEL Służy do opisu interakcji między usługami sieciowymi Web Services, poprzez opis: przepływu pracy przepływu danych obsługi błędów Zbudowany na bazie języka XML Wspiera architekturę SOA za pomocą aranżacji lub choreografii usług sieciowych Procesy zaimplementowane za pomocą języka BPEL są koordynowany przez serwer BPEL

Architektury przepływów pracy Aranżacja (orkiestracja) logika procesów jest scentralizowana; elementarne aplikacje nie muszą być świadome uczestnictwa w przepływie pracy Choreografia logika procesów jest rozproszona między aplikacje realizujące przepływ pracy

Aranżacja usług Aranżacji usług polega na zastosowaniu centralnego komponentu odpowiedzialnego za koordynację wywołania usług składowych Usługi składowe nie mają świadomości uczestnictwa w złożonym procesie biznesowym Aranżacja jest uważana za rozwiązanie bardziej elastyczne: usługi składowe mogą uczestniczyć w złożonym procesie biznesowym bez konieczności modyfikowania ich kodu źródłowego możliwa jest realizacja scenariuszy alternatywnych na wypadek awarii usługi składowej Aranżacja Koordynator WebService WebService WebService

Choreografia usług Nie korzysta z koncepcji centralnego koordynatora usług Każda z usług składowych posiada fragment wiedzy na temat realizowanego procesu biznesowego Komunikuje się samodzielnie z usługami zależnymi Konieczność dostosowywania kodu źródłowego istniejących usług do struktury procesu biznesowego Awaria którejkolwiek usługi składowej pociąga za sobą odłączenie usług zależnych Przepływ sterowania odbywa się poprzez wzajemnie wywołanie usług składowych WebService Choreografia WebService WebService

Własności BPEL BPEL modeluje i implementuje podstawowe elementy procesów biznesowych kształt przepływów pracy: rozgałęzienia, iteracje, współbieżność asynchroniczną komunikację i korelację długotrwałych, zagnieżdżonych elementarnych jednostek pracy obsługę błędów i kompensację przekazywanie danych

Podstawowe konstrukcje Główny zbiornik znacznik <process> <process name="primerprocess" targetnamespace="http://oasis open.org/wsbpel/primer/" xmlns="http://docs.oasis open.org/wsbpel/2.0/process/executable" /> Przewidziano istnienie dwóch typów procesów: Proces wykonywalny (Executable process) definiuje strukturę procesu i zewnętrzne interfejsy jego składowych usług. Zawiera kompletny opis procesu umożliwiający jego wykonanie: xmlns=http://docs.oasis open.org/wsbpel/2.0/process/executable Proces abstrakcyjny (Abstract process) nie jest kompletnie zdefiniowany. Definicja procesów abstrakcyjnych nie służy ich wykonaniu. Procesy abstrakcyjne mogą być analizowane i służyć za podstawę do implementacji różnych procesów wykonywalnych. xmlns=http://docs.oasis open.org/wsbpel/2.0/process/abstract

Podstawowe konstrukcje Atrybuty znacznika <process>: targetnamepsace docelowa przestrzeń nazw, do której należeć będzie definiowany proces atrybut obligatoryjny name nazwa procesu atrybut obligatoryjny; querylanguage język który jest wykorzystywany do wykonywania zapytań, domyślnym językiem jest Xpath; expressionlanguage język wykorzystywany do wartościowania wyrażeń, domyślnym językiem jest Xpath; supressjoinfailure flaga określająca sposób obsługi oczekiwania na przychodzące połączenia, wartość yes oznacza oczekiwanie do momentu pojawienia się ostatniego połączenia; exitonstandardfault flaga określająca sposób obsługi wyjątku, wartość yes oznacza przerwania wykonywania procesu w momencie pojawienia się wyjątku.

Podstawowe konstrukcje Usługi sieciowe będące składowymi procesu, są nazywane partnerami. Do ich definiowania służy znacznik <partnerlinks>. <partnerlinks> <partnerlink name="ncname" partnerlinktype="qname" myrole="ncname"? partnerrole="ncname"? initializepartnerrole="yes no"?/>+ </partnerlinks>

Komunikacja między partnerami W BPEL istnieją trzy podstawowe znaczniki odpowiedzialne za komunikacje między partnerami procesu: <receive>, <replay> i <invoke>. znacznik <invoke> służy do wywołania usługi sieciowej partnera w celu przeprowadzenia operacji, umożliwia przekazywanie parametrów wywołania: <invoke name="requestresponseinvoke" partnerlink="businesspartnerservicelink" operation="requestresponseoperation" inputvariable="input" outputvariable="output" />

Komunikacja między partnerami W BPEL istnieją trzy podstawowe znaczniki odpowiedzialne za komunikacje między partnerami procesu: <receive>, <replay> i <invoke>. znacznik <receive> reprezentuje port wejściowy danej usługi sieciowej, nasłuchujący na otrzymanie żądania <receive name="receiverequestfrompartner" createinstance="yes" partnerlink="clientstartupplt" operation="startprocess"... /> znacznik <reply> wykorzystywany w połączeniu z <receive>, służy zwróceniu komunikatu do partnera wywołującego żądanie <reply name="replyresponsetopartner" partnerlink="clientstartupplt" operation="startprocess"... />

Zmienne BPEL pozwala definiować zmienne które mogą być wykorzystywane do kontrolowania przebiegu procesu, lub gromadzenia informacji o jego stanie. Zmienne definiowane są za pomocą znacznika <variable> umieszczanego na poziomie znacznika <process> <variables> <variable name="myvar1" type="xsd:string" /> <variable name="myvar2" type="xsd:string" /> <variable name="myvar3" type="myns:mycomplextype" /> </variables> Przypisywanie zmiennych odbywa się poprzez znacznik <assign> <assign> <copy> <from variable="myvar1" /> <to variable="myvar2" /> </copy> </assign> 14

Zmienne BPEL pozwala definiować zmienne które mogą być wykorzystywane do kontrolowania przebiegu procesu, lub gromadzenia informacji o procesie. Zmienne definiowane są w znaczniku <variable> umieszczanym na poziomie znacznika <process>. Można wykorzystywać XPath do przeliczania wartości lub przeglądania typów złożonych: <from>count($zamówienia/zamówienie)</from> <from variable="input" part="operation1parameter"> <query> creditcardinformation </query> </from> 15

Podstawowe konstrukcje sterujące BPEL udostępnia podstawowe konstrukcje sterujące Znacznik <sequence> modeluje sekwencyjne wykonanie zbioru akcji Znacznik <switch> modeluje wybór dokładnie jednej z wielu alternatywnych akcji, na podstawie wartości wyrażeń przypisanych poszczególnym akcjom za pomocą znacznika <case> uzupełnionych opcjonalnym znacznikiem <otherwise> Znacznik <while> modeluje wielokrotne wykonanie aktywności tak długo jak skojarzone z nim wyrażenie logiczne jest spełnione Znacznik <flow> modeluje zrównoleglenie aktywności Podstawowa synchronizacja współbieżnych działań jest realizowana za pomocą powiązań <link> w równoległych wątkach

Sekwencja znacznik <sequence> modeluje sekwencyjne wykonanie zbioru akcji. Operacje są wykonywane jedna po drugiej, w kolejności występowania na liście <sequence name="invertmessageorder"> <receive name="receiveorder"... /> <invoke name="checkpayment"... /> <invoke name="shippingservice"... /> <reply name="sendconfirmation"... /> </sequence>

Alternatywa bramka XOR Znacznik <if else> modeluje rozgałęzienie w przebiegu wykonywania procesu bazując na warunkach definiowanych przy użyciu Xpath. <if name="isorderbiggerthan5000dollars"> <condition> $order > 5000 </condition> <invoke name="calculatetenpercentdiscount"... /> <elseif> <condition> $order > 2500 </condition> <invoke name="calculatefivepercentdiscount"... /> </elseif> <else> <reply name="sendnodiscountinformation"... /> </else> </if>

Współbieżność bramka AND Znacznik <flow> służy do zrównoleglenia wątków w procesie. Do synchronizacji połączenia równoległych wątków służy znacznik <link>. <flow> <links> <link name="checkflight To BookFlight" /> </links> <invoke name="checkflight"...> <sources> <source linkname="checkflight To BookFlight" /> </sources> <invoke name="checkhotel"... /> <invoke name="checkrentalcar"... /> <invoke name="bookflight"...> <targets> <target linkname="checkflight To BookFlight" /> </targets> </invoke> </flow>

Bramka OR

Obsługa zdarzenia Dotychczas omówiono jedynie znaczniki powodujące zablokowanie wykonania procesu do czasu obsługi pewnego bloku operacji. Nie zawsze pożądane jest wstrzymywanie bądź ingerowanie w główny tor wykonywania procesu. Czasami warto przenieść obsługę pewnych opertacji poza tor główny. Takie zachowanie może zostać zdefiniowane przez blok obsługi zdarzeń definiowany przez znacznik <eventhandlers>. <process name="purchaseorderprocess"...>... <eventhandlers> <onevent partnerlink="purchasing" operation="queryorderstatus"...> <scope>...</scope> </onevent> <onevent partnerlink="purchasing" operation="cancelorder"...> <scope>...</scope> </onevent> </eventhandlers>... </process> Znacznik <eventhandlers> musi być potomkiem znacznika <process>.

Obsługa wyjątków BPEL dostarcza mechanizmu do obsługi sytuacji wyjątkowych. Mechanizm ten jest modelowany poprzez znacznik <faulthandlers>. Znacznik ten musi być zdefiniowany jako dziecko znacznika <scope>. Wewnątrz definiowane są bloki obsługi wyjątków. Operacje wykonywane wewnątrz bloku <scope> mogą również podlegać kompensacji w razie wyjątku dzięki znacznikowi <compensationhandler>. <scope name="s1"> <faulthandlers> <catch xmlns:flt="http://example/faults" faultname="flt:outofstock" >...</catch> <catchall> <compensatescope target="s2" /> </catchall> </faulthandlers> <sequence> <scope name="s2"> <compensationhandler> <! undo work > </compensationhandler> <! do some work > </scope> <! do more work > <throw xmlns:flt="http://example/faults" faultname="flt:outofstock" /> </sequence> </scope>

Środowisko wykonywania BPEL Oracle Środowisko do zarządzania przepływami pracy w Oracle BPEL składa się z czterech podstawowych komponentów: BPEL Designer BPEL Server BPEL Console Baza danych

Oracle BPEL Server Oracle BPEL Server działa w środowisku serwera aplikacji i składa się z trzech podstawowych części: Core BPEL Engine środowisko wykonywania modelu procesów zapisanych w języku BPEL; do składowania informacji o stanie wystąpień procesów wykorzystywana jest baza danych Wiązania WSDL umożliwiają integrację usług WebServices implementujących składowe zadania procesów Usługi integracyjne transformacja dokumnetów XML i integracja z językiem Java