Automatyzacja procesów biznesowych mgr inż. Krystyna Dziubich krystyna.dziubich@eti.pg.gda.pl K.Dziubich, WETI slajd: 2
Języki opisu procesów Definicje procesów Wymiana definicji procesów Geneza języków opisu Dostępne notacje workflow Przykład dla BPEL Przykład dla Windows WF K.Dziubich, WETI slajd: 3
Definicje procesów Definicja procesu obejmuje całościowe i wyczerpujące opisanie przebiegu procesu w postaci powiązanego zbioru czynności, relacji między tymi czynnościami, warunku rozpoczęcia i zakończenia procesu, szczegółowego opisu czynności składowych, uczestników procesu, wymienianych bądź modyfikowanych danych za pomocą wybranego języka i/lub przyjętej konwencji reprezentacji graficznej K.Dziubich, WETI slajd: 4
Przykładowe definicje procesów w notacjach graficznych K.Dziubich, WETI slajd: 5
Wymiana definicji procesów będzie prawidłowa dzięki: przyjęciu, przez wszystkich dostawców narzędzi do definiowania procesów, wspólnego meta-modelu definiowania procesów, określającego semantykę i użycie wspólnych obiektów i atrybutów, jako podstawy do implementacji własnych notacji zapisu definicji procesów przetłumaczenie definicji procesów zapisanych w notacji dostawcy na język XPDL zrozumiały przez pozostałe komponenty modelu odniesienia i odwrotnie. K.Dziubich, WETI slajd: 6
Geneza języków opisu WPDL (Workflow Process Definition Language) prekursor języka XPDL opublikowany w 1998; był pierwszą próbą zmiany języków wyrażania definicji procesów XPDL (XML Process Definition Language ) PDL dostosowany do wymogów XML. Jest językiem umożliwiającym zapis procesów biznesowych w postaci wspierającej automatyczną manipulację rozumianą jako modelowanie bądź interpretowanie definicji przez systemy wspierania pracy oraz procesów biznesowych. Dostarcza on plik w formacie XML pozwalający na przenoszenie i wymianę modeli procesów między różnymi narzędziami niezależnie od przyjętej notacji pierwotnego sposobu modelowania procesu. W wersji 2.0 format pliku dla BPMN K.Dziubich, WETI slajd: 7
Geneza języków opisu cd. Możliwe jest tłumaczenie graficznych definicji procesów z BPMN na języki BPML (Business Process Modeling Language) oraz BPEL4WS (Business Process Execution Language for Web Services). zawiera 38 symboli obrazujących typowe zdarzenia biznesowe odwzorowywalne na BPEL4WS już 6 podstawowych symboli pozwala na zbudowanie pełnego modelu procesów biznesowych pozostałe służą do dodatkowego definiowania zdarzeń koniecznych z punktu widzenia inżynierii oprogramowania K.Dziubich, WETI slajd: 8
Geneza języków opisu cd. Model wykonany za pomocą podstawowego zestawu symboli BPMN przez analityka można uzupełnić o dodatkowe elementy w celu wygenerowania kodu dla BPEL (Business Process Execution Language); K.Dziubich, WETI slajd: 9 BPMN2BPEL (opensource): trudno wygenerować kod w BPEL łatwo czytelny dla człowieka; trudno zapewnić odwzorowywalność w obie strony BPMN BPEL
A BPD with Annotations to Show the Mapping to BPEL4WS K.Dziubich, WETI slajd: 10 http://www.omg.org/bpmn/documents/mapping_bpmn_to_bpel_example.pdf
Dostępne notacje Nazwa notacji Twórca BPSS ebxml (Business Process Specification Schema) UN/CEFACT and OASIS BPML (Business Process Modeling Language) BPMI WS-CDL (Web Service Choreography Description Language) W3C Web Services Choreography Working Group WSCL: WS Choreography Language Hewlett-Packard WSFL (Web Services Flow Language) IBM XLANG Microsoft BPEL4WS (Business Process Execution Language for Web Services) WS-BPEL 2.0 BEA, IBM, Microsoft zgłoszone do OASIS XPDL: XML Precess Definition Language WfMC OWL-S (Semantic Markup for Web Services) W3C / akademicki EPML: EPC Markup Language K.Dziubich, WETI slajd: 11 PNML: Petri Net Markup Language Akademicki Akademicki
K.Dziubich, WETI slajd: 12 zależności notacje
BPEL Business Process Execution Language (BPEL), short for Web Services Business Process Execution Language (WS-BPEL) is an OASIS standard executable language for specifying interactions with Web Services. BPEL is intended to do orchestrations (specifying the executable process that involves message exchanges with other systems) rather than choreographies (specifying specific details for interactions among systems which is a trend within ESB patterns, and a topic of BPMN diagraming). BPEL is intended to do programming in the large (management of high-level state transitions of a process), rather than programming in the small (short-lived programmatic behavior). K.Dziubich, WETI slajd: 13
BPEL W jakim celu stosować BPEL? Tworzenie aplikacji Komponowanie z użyciem WS Produkt końcowy program będący WS Przykład: WS zbierający informacje pogodowe dla podanego kodu pocztowego WS wysyłający sms: jeśli ciepło idź na plaże, jeśli zimno idź do sklepu Kompozycja z użyciem BPEL Możliwość pobrania i wykonywania WS złożonego leniwy i niezdecydowany K.Dziubich, WETI slajd: 14
BPEL BPEL is an XML programming language. As a programming language it has three basic components: Programming logic - BPEL Data types - XSD (XML Schema Definition) Input/Output (I/O) - WSDL (Web Services Description Language) K.Dziubich, WETI slajd: 15
BPEL Różnica BPEL / inne języki programowania klasycznego Elementy biblioteczne to usługi sieciowe Obsługa wejścia/wyjścia zależne od używanych WS BPEL jest managerem usług nie bibliotek kodu BPEL działa ponad serwerem aplikacyjnym Oracle BPEL Process Manager Microsoft BizTalk IBM Websphere Business Integration Server Foundation IBM ActiveBPEL Engine OpenStorm Service Orchestrator K.Dziubich, WETI slajd: 16
K.Dziubich, WETI slajd: 17 BPEL - składnia
K.Dziubich, WETI slajd: 18 Przykład BPEL4WS <process name="proces_zatwierdzania_wniosku targetnamespace="http://przyklad.pl/zatwierdzanie-wniosku/" xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable" xmlns:lns="http://przyklad.pl/zatwierdzanie-wniosku/wsdl/" > <import importtype="http://schemas.xmlsoap.org/wsdl/ location="zatwierdzanie_wnioskupt.wsdl" namespace="http://przyklad.pl/zatwierdzanie-wniosku/" /> <partnerlinks> <partnerlink name="customer" partnerlinktype="lns:zatw_wn_lt" myrole="usl_zatw_wn /> <partnerlink name="aktualizuj_urlop" partnerlinktype="lns:wn_aktualizujlt myrole="aktualizuj_urlop" /> </partnerlinks> <variables> <variable name="request" messagetype="lns:wniosekinfmessage" /> <variable name="odpowiedz" messagetype="lns:potw_zwrotne" /> </variables> <faulthandlers>... </faulthandlers> <flow> <links> <link name="receive-to-akutalizuj" /> <link name="aktualizuj-to-generuj" /> </links>
Przykład BPEL4WS cd. <receive partnerlink="customer" porttype="zatw_wn_pt" operation="request" variable="request" createinstance="yes"> <sources> <source linkname="receive-to-akutalizuj" /> </sources> </receive> <invoke partnerlink="aktualizuj_urlop" porttype="wn_akt_urloppt" operation="aktualizuj" inputvariable="request" outputvariable="odpowiedz" > <targets> <target linkname="receive-to-akutalizuj" /> </targets> <sources> <source linkname="aktualizuj-to-generuj" /> </sources> </invoke> <invoke partnerlink="generuj_skierowanie" porttype="wn_gen_skierowaniept" operation="generuj" inputvariable="request" outputvariable="wniosek" > <targets> <target linkname="aktualizuj-to-generuj" /> </targets> <sources> <source linkname="generuj-to-wyslij" /> </sources> </invoke> K.Dziubich, WETI slajd: 19
Przykład BPEL4WS cd. <assign> <targets> <target linkname="generuj-to-wyslij" /> </targets> <sources> <source linkname="wyslij-to-klient" /> </sources> <copy> <from variable="wniosek" /> <to variable="do_co" part="tresc_maila" /> </copy> <copy> <from variable="request" part="e-mail_przelozonego" /> <to variable="do_co" part="do" /> </copy> <copy> <from variable="request" part="e-mail_pracownika" /> <to variable="do_co" part="cc" /> </copy> </assign> K.Dziubich, WETI slajd: 20
K.Dziubich, WETI slajd: 21 Przykład BPEL4WS cd. <invoke partnerlink="wyslij_maila" porttype="wyslij_mailapt" operation="wyslij" inputvariable="kto_co" outputvariable="odpowiedz" > <targets> <target linkname="generuj-to-wyslij" /> </targets> <sources> <source linkname="wyslij-to-klient" /> </sources> </invoke> <replay partnerlink="customer" porttype="zatw_wn_pt" operation="request" variable="odp_na_request" > <targets> <target linkname="wyslij-to-klient" /> </targets> </replay> </flow> </process>
Narzędzia i platformy Eclipse (wersja inkubacyjna) BPEL Manager Tomcat + ODE (Orchestration Director Engine) Oracle Jdeveloper Oracle SOA Suite Oracle WebLogic Server 11g + Domena ADF K.Dziubich, WETI slajd: 22
BPEL Designer for Eclipse http://www.eclipse.org/bpel/ K.Dziubich, WETI slajd: 23
BPEL in eclipse (incubation phase) Designer. A GEF-based editor that provides a graphical means to author BPEL processes. Model. An EMF model that represents the WS-BPEL 2.0 specification. Validation. A validator which operates on the EMF model and produces errors and warnings based on the specification. Runtime Framework. An extensible framework which will allow for deployment and execution of BPEL processes from the tools into a BPEL engine. Debug. A framework which will allow the user to step through the execution of a process, including support for breakpoints. K.Dziubich, WETI slajd: 24
comparison of BPEL and BPMN engines K.Dziubich, WETI slajd: 25
linki Developing, Deploying and Running a Hello World BPEL Process with the Eclipse BPEL Designer and Apache ODE http://www.eclipse.org/resources/resource.php?id=429 - Developing a simple Bpel project with eclipse Bpel Designer Plugin and WSO2 BPS Bpel Exporter Plugin http://wso2.org/library/tutorials/developing-simple-bpel-project-eclipse-bpeldesigner-plugin-wso2-bps-bpel-exporter-plugin WS-BPEL 2.0 Tutorial - http://www.eclipse.org/stp/b2j/docs/tutorials/wsbpel/wsbpel_tut.php Web Services Business Process Execution Language Version 2.0 (OASIS Standard): http://docs.oasis-open.org/wsbpel/2.0/wsbpel-v2.0.html BPEL Designer Project http://www.eclipse.org/bpel/ Oracle BPEL Process Manager Developer's Guide - http://docs.oracle.com/cd/b14099_17/integrate.1012/b14448/introbpel.htm K.Dziubich, WETI slajd: 26
Przykładowy Windows WF K.Dziubich, WETI slajd: 27 choreografia
XOML-owy zapis notacji graficznej Windows WF <SequentialWorkflowActivity x:class="workflowconsoleapp2_del.workflow2" x:name="workflow2 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/workflow"> <InvokeWebServiceActivity x:name="weryfikacja_uprawnień" /> <IfElseActivity x:name="czy_osoba_uprawniona_do_sali"> <IfElseBranchActivity x:name="uprawniona"> <IfElseBranchActivity.Condition> <CodeCondition Condition="czy_uprawniona" /> </IfElseBranchActivity.Condition> <InvokeWebServiceActivity ProxyClass="{x:Type WorkflowConsoleApplication2 del.zamek.bera_service}" MethodName="Unlock" x:name="odblokowanie_zamka_sali" /> </IfElseBranchActivity> <IfElseBranchActivity x:name="brak_uprawnień" /> </IfElseActivity> </SequentialWorkflowActivity> K.Dziubich, WETI slajd: 28
Porównanie elementów składowych języka BPEL i Windows WF K.Dziubich, WETI slajd: 29
Bizagi BPM Suite for Workflow Automation Demo: http://www.bizagi.com/index.php?option=com_content&view=article& 245&Itemid=231 K.Dziubich, WETI slajd: 30
Praca.? www.payscale.com/research/us/industry=science_and_engineering_services/job-listings K.Dziubich, WETI slajd: 31 http://www.odinjobs.com/odin/jobs.jspx?s=bpmn&l=
K.Dziubich, WETI slajd: 32 Literatura D.M. Bridgeland, R. Zahavi: Business Modeling A Practical Guide to Realizing Business Value 2009 isbn: 978-0-12-374151-6 Andreas Realini, G2G E-government: The big challange for Europe, 2004 Martin Ader, Workflow Comparative Study, 2004, http://www.waria.com/books/study-2004.htm Alan Jordan, Business Process Management, http://www.alanjordan.com/bpm.htm Workflow Magement Coalition, http://www.wfmc.org Wofkflow Patterns, http://www.workflowpatterns.com/ Norbert Ritter, Business Porcess Magement and Workflow Mangement, http://vsis-www.informatik.uni-hamburg.de/teaching/ss-05/wfws/k2.pdf Alec Sharp, Patrick McDermott : Workflow Modeling - Tools for Process Improvement and Application Development, Artech House 2001 http://modelowanie.wordpress.com [1] van der Aalst, W.M.P., ter Hofstede, A.H.M. and Weske, M.: "Business Process Management: A Survey", in Business Process Management, Proceedings of the First International Conference. Springer Verlag, 2003. http://www.wfmc.org/standards/framework.htm