42
Modelovanje poslovnih procesa Fakultet organizacionih nauka Katedra za informacione sisteme Business Process Execution Language BPEL

Modelovanje poslovnih procesa

  • Upload
    lorna

  • View
    96

  • Download
    1

Embed Size (px)

DESCRIPTION

Fakultet organizacionih nauka Katedra za informacione sisteme. Modelovanje poslovnih procesa. Business Process Execution Language BPEL. Karkaterisitke i zahtevi poslovnih sistema. Danas poslovni sistemi zahtevaju brzu prilagodljivost potrebama korisinika i uslova tržista - PowerPoint PPT Presentation

Citation preview

Page 1: Modelovanje poslovnih procesa

Modelovanje poslovnih procesa

Fakultet organizacionih naukaKatedra za informacione sisteme

Business Process Execution Language

BPEL

Page 2: Modelovanje poslovnih procesa

Karkaterisitke i zahtevi poslovnih sistema

Danas poslovni sistemi zahtevaju brzu prilagodljivost potrebama korisinika i uslova tržista EAI i B2B interkacije (pomoću web servisa)

Potrebe za internom and externom fleksibilnošću

Bez zajedničkog skupa standarda, svaka organizacija svoje specifične poslovne protokole Mala fleksibilnost za pravu web servis kolaboraciju

Page 3: Modelovanje poslovnih procesa

Komozicija Web servisaDefinicija:

Obezbedjuje otvoren, baziran na strandardu pristup povezivanju web servisa da bi se kreirali poslovni procesi višeg nivoa.

Standardi su definisani da bi smanjili složenost pri kompoziciji web servisa, kako bi smanjili vreme i troškove, i povećali ukupnu efikasnost u psolovanju

Page 4: Modelovanje poslovnih procesa

Kompozicija web servisa

orderFromSupplier wsdl

orderReceived wsdl

replyCustomer wsdl

checkInventory wsdl

shipOrder wsdl

UDDI

XY Z CORP

wsdl

wsdl

wsdl

wsdl

wsdl Supplier 1

Supplier 2

Supplier 3

XY Z CORP

Supplier 1 Supplier 2 Supplier 3

replyCustomer wsdlwsdlorderReceived wsdlwsdl

orderFromSupplier wsdlwsdl

checkInventory wsdlwsdl shipOrder wsdlwsdl

wsdl

wsdl wsdl wsdl

Page 5: Modelovanje poslovnih procesa

Standardi BPEL4WS (a.k.a. BPEL) – Business Process

Execution Language for Web Services IBM and Microsoft

WSCI – Web Services Choreography Interface Sun, SAP, BEA, and Intalio

BPML – Business Process Management Language BPMI.org (chartered by Intarlio, Sterling Commerce,

Sun, CSC, and others)

Page 6: Modelovanje poslovnih procesa

Standardi za kompoziciju servisa uodnosu na dva modela procesa (apstraktni i izvršni)

Page 7: Modelovanje poslovnih procesa

Istrorija razvoja standarda

Source: http://www.radikalfx.com/bpel/usage.html

Page 8: Modelovanje poslovnih procesa

BPEL procesi i interkcije su stogo tipizirani

BPEL se gradi pomocu WSDL opisa servisa

Strogo tipiziranInterkacija BPEL procesa preko skupa tipiziranih kanala:

Partner link = par WSDL port types BPEL tokovi su usko povezani sa

specifičnim interfjesima i tipovima poruka

BPEL podržava tradicionalne WfMS osobine:

Statically analyzable Transakcije, pouzdanost,

monitoring izvršavanja, itd. Odgovara (SOA) modelu aplikacija

za itnegraciju aplikacija preko dobro definisanih intefejsa servisa

BPEL je proširen za podršku interkacije sa ljudima kao akterima

BPEL4People: servisi koje izvršavaju ljudi

Service B

Partner Link

B’s WSDL

Process WSDL

Page 9: Modelovanje poslovnih procesa

BPEL4WSBaziran na XML

Opisuje kontrolnu logiku za koordinaciju web servisa u okviru nekog poslovnog procesa

Interpretira se i izvršava od strane BPEL engine-a

Page 10: Modelovanje poslovnih procesa

BPELKao osnovnu koristi Web servis standard1. Svaki BPEL se predstavlja kao web

servis korišenjem WSDL. WSDL opisuje javne ulazne i izlaze tačke procesa

2. Interakcija preko WSDL interfejsa sa eksternim web servisima

3. WSDL tipovi podataka se koriste za opis tokova informacija u okviru BPEL procesa

Page 11: Modelovanje poslovnih procesa

BPEL Kompozicija Web servisa

Partner Link Type Partner Link Type

Servis PServis A Servis B

A WSDL P WSDL B WSDL

invoke

receive

receive

invoke

invoke

Page 12: Modelovanje poslovnih procesa

BPEL proces kao web servis

Page 13: Modelovanje poslovnih procesa

Koncepti u BPEL4WS Partner Links:

Bilateralna konverzacija (my Role, Partner Role) Interfjes zahtevi partnera

Podaci i poruke: Variable Osobine Skup korelisanih podatka

Aktivnosti: Osnovne aktivnosti Struktuirane aktivnosti (control flow)

Page 14: Modelovanje poslovnih procesa

Partner LinksPartner link: tipizirane instance konektora Partner link type definiše zahtevane

tipove portova Kanal preko kojeg se vrši peer-to-peer

konverzacijaPartner

Link TypePort Type 1 Port Type 2

Proces 1 Process 2

Page 15: Modelovanje poslovnih procesa

0

1

BPEL model: Variable

Pridružene aktivnosti

razmenjuju medjusobno podatke

Mehanizam za čuvanje ulaznih i izlaznih

vrednosti aktivnosti

Variable definisanje prekoWSDL poruka iliXML Schema elemenata/tipova

. . . invoke

assign

reply

. . .

receive

42

Page 16: Modelovanje poslovnih procesa

Varijable (primeri)Korišenje XML code

Dodela konstante <variable name=“x” type=“xsd:int”/>

<assign> <copy> <from>1</from> <to variable=“x”/> </copy></assign>

Kopiranje varijable

<variable name=“x” type = “xsd:int”/><variable name=“y” type= “xsd:int”/>

<assign> <copy> <from variable=“y”/> <to variable=“x”/> </copy></assign>

Ugradjena BPEL funkcija bpws:getVariableData se korisit za uzimanje vrednosti iz varijable.

Page 17: Modelovanje poslovnih procesa

Proces 4Proces 3

Osobine i korelisani skup podataka

Poruke u vremenski dugoj konverzaciji su povezane sa odgovarajućom instancom procesa Tipizirane osobine definisane u WSDL su

imenovane i mapirane sa delovima WSDL poruka koje se koriste u procesu

WSDL poruka 0815 42

sifraDobavljaca

brojNarduzbe

Proces 2Proces 1

Page 18: Modelovanje poslovnih procesa

Osnovne aktivnostiPrihvatanje poruka koje stižu (čekanje na odgovora)

Slanje poruke kao odgovor na primljenu poruku

Pokretanje jednostrane ili dvostrane request-response operacije

Izmena vrednosti varijabli ili partner linkova sa novim podacima

Validacija XML podataka u variablama

“prazna” instrukcija za poslovni proces

Generisanje greske unutar poslovnog procesa

Prosledjivanje greške kad obradjivaču grešake

Trenutni prekid izvršavanja instance poslovnog procesa

Čekanje neki definisani vremenskom period ili dok taj period ne istekne

Pokretanje alternative u unutrašnjem opsegu koji se već izvršio

receive

reply

invoke

throw

exit

wait

empty

compensatevalidate

assign

rethrow

Page 19: Modelovanje poslovnih procesa

Struktuirane aktivnostiSadrži aktivnosti koje se paralelno izvršavaju

Selekcija jedne grupe aktivnosti iz skupa

Sadrži aktivnosti čije se izvršavanje ponavlja sve dok je zadovoljen dati uslov

Iteracija aktivnosti dok nije zadovoljen dati uslov

Blokiranje i čekanje na odgovarajuću poruku

Sadrži aktivnoste koje se izvršavaju sekvencijalno ili paralelno kontrolisano preko brojača

Sadrži aktivnosti koje se izvršavaju sekvencijalno

Povezivanje aktivnosti sa lokalnim varijablama, obvradjivačima grešaka i obradjivačima dogadjaja

if then else

while

scope

pick

sequence

flow

repeatUntil

forEach

Page 20: Modelovanje poslovnih procesa

Ugnježdavanje strukturianih aktivnosti<sequence> <receive .../> <flow> <sequence> <invoke .../> <while ... > <assign>...</assign> </while> </sequence> <sequence> <receive .../> <invoke ... > </sequence> </flow> <reply></sequence>

receive

reply

receive

invoke

invoke

assign

sequence

sequencesequence

flow

while

Page 21: Modelovanje poslovnih procesa

. . .

faulthandler

Opseg i ObradjivačiOpseg (Scope)

Lokalne varijable Lokalne partnerske linkove Lokalne skup korelisanih osobina

(correlation sets) Skup aktivnosti (osnovne i

strukturiane)

Obradjivači (Handlers) Obradjivači dogadjaja

Poruke dogadjaji ili vremnski dogadjaji Obradjivači grešaka

Obrada različitih internih izuzetaka (internih grešaka)

Kompenzacioni obradjivač Poništavanje treutnih efekata

kompletiranih aktivnosti Obradjivač prekida

Obrada forsiranog prekida (eksterne greške)

faulthandlers

compensationhandler

terminationhandler

eventhandlers

. . .

. . .

. . .

. . .

correlationsets

partnerlinks

scope

variables

Page 22: Modelovanje poslovnih procesa

Životni ciklus instance procesa

Poslovni procesi u BPEL prestavljaju Web servise koji čuvaju stanje (statefull) Kada se proces pokrene, kreira se nova

instanca procesa Kreiranje i unistavanje instance procesa

je implicitnoreceive replyinvokeinvoke invoke

Page 23: Modelovanje poslovnih procesa

BEPL - primer

1. Klijent podnosi zahtev za kredit koji sadrži podatke o klijentu i zahtevanom iznosu kredita

2. Dva servisa su uključena: a) Risk analiza koja definiše stepen rizika b) Odobravanje kredita proverava ime i odobrava’neodobrava zahtev

za kredit3. Odgovor se vraća klijentu

invoke

receive

invoke

reply

assign

odobrenjeKreditaPT

loanapprover

riskAnalizaPT

Analiza

iznos < 10000 iznos >= 10000

rizik = “visok"

rizik= “nizak" odobren = “da"

odobren = “ne"

flow

Page 24: Modelovanje poslovnih procesa

ifbuyer$$ < seller$$

then

else

Ugnježdavanje struktuiranih aktivnosti

reply(buyer)

reply(seller)

receive(buyer)

receive(seller)

assign"success"

assign"failure"

sequence

flow if-then-else

Page 25: Modelovanje poslovnih procesa

Obrada grešakaKada se generiše greška, bilo implicitno od strane BPEL engine ili eksplicitno preko throw aktivnosti, kontrola toka se prebacuje na obradjivač greške za dati tip greške.

Obradjivač grešaka je catch struktura<scope name=“s1”> <faultHandlers> <catch faultName=“x:invalidAccount”> ….. </catch> <catch faultName=“x:closedAccount”> ……. </catch> <catchAll”> …….. </catchAll”> </faultHandlers></scope>

Page 26: Modelovanje poslovnih procesa

Obrada grešaka i kompenzacija

compensationhandler

chargecredit card

refundcustomer

shipgoods

faulthandler

notifymanager

compensate

faulthandler

rethrow

Process

flow

scopescope

Page 27: Modelovanje poslovnih procesa

Process BProcess A

BPEL Partner Links

receiverequest

invokecallback

PortType-B

PortType-A

invokeservice

6. Prihvata odgovor od drugih procesa

5. Pokreće A izvršavanje

korišćenjem primljenog EPR

receiveresponse

PartnerLink Type

A-role

B-role

partnerlink

partnerlink

3. Prihvata varijablu od procesa Aassign

EPR

1. Pridružuje varijabli vrednost EPR iz

partnerLink (myRole)

2. Prenosi varijablu do procesa B

assignEPR

4. Pridružuje EPR iz varijable u partnerLink

(partnerRole)

Page 28: Modelovanje poslovnih procesa

Rezervacija putovanjaPogled na izvršavanje procesa

getitinerary

getorder

ordertickets

receiveconfirmation

confirmflight

sendtickets

sendconfirmation

submitto agent

receivetickets

receiveconfirmation

selectairline

reserveseats

chargecredit card

plantrip

Agent Process Airline ProcessTraveler Process

Page 29: Modelovanje poslovnih procesa

WS-BPELInteroprebilan i prenosiv model poslovnih procesaFleksibilna integracija Web servisa WSDL apstraktni interfjesi se kombinuju da bi

definisali kompoziciju Apstraktni partneri mogu biti povezani sa aktuelnim

servisima u vreme izvšavanja Proces može izabrati protokol za komunikaicju sa servisom

u vreme izvršavanja Servisi čija definicija podataka nije odgovarajuća

mogu biti korišćeni u kompoziciji Transformacija podataka može biti data zajedno sa

definicijom procesa

Page 30: Modelovanje poslovnih procesa

WS-BPEL alati (engine)Active Endpoints ActiveWebflow Server ActiveBPEL Engine (open source)bexee BPEL Execution Engine (open source) Cape Clear Orchestrator FiveSight PXE IBM WebSphere Business Integration – Server Foundation 5.1IBM WebSphere Process Server 6.0OpenLink Virtuoso Universal Server OpenStorm ChoreoServer Oracle BPEL Process Manager Parasoft BPEL Maestro SeeBeyond eInsight BPM Twister (open source)

Page 31: Modelovanje poslovnih procesa

BPEL – Procesni modeliObezbedjuje podršku za dva procesna modela Izvršne

Modeli ponašanja učesnika u specifičnoj poslovnoj interkaciji, privatni workflow

Apstarktne Poslovni protokoli u BPEL, specificiraju

javne razmene poruka izmedju aktera (organizacija)

Page 32: Modelovanje poslovnih procesa

BPEL – Objektni model

Page 33: Modelovanje poslovnih procesa

BPEL primer (Osigruavajuće društvo)

1 <process name="InsuranceClaim"2 targetNamespace="http://acm.org/samples"3 suppressJoinFailure="yes"4 xmlns:tns=http://acm.org/samples5 xmlns=http://schemas.xmlsoap.org/ws/2003/03/business-process/6 xmlns:xsd=http://www.w3.org/2001/XMLSchema7 xmlns:addressing=http://schemas.xmlsoap.org/ws/2003/03/addressing8 xmlns:bpws="http://schemas.xmlsoap.org/ws/2003/03/business-process/">910 <!--11 Partners in the process:12 client - app that can initiate and kill13 worklist - service that manages manual activities14 -->15 <partnerLinks>16 <!--17 <partnerLink name="client" partnerLinkType="tns:InsuranceClaim"18 myRole="InsuranceClaimProvider"/>19 <partnerLink name="worklist" partnerLinkType="task:TaskManager"20 partnerRole="TaskManager" myRole="TaskManagerRequester"/>21 </partnerLinks>2223 <!-- Process-level variables -->24 <variables>25 <variable name="status" type="xsd:string"/>26 <variable name="initiateMsg" messageType="tns:InsuranceClaimMsg"/>27 <variable name="killEv" messageType="tns:InsuranceClaimMsg"/>28 <variable name="taskResponse" messageType="task:taskMessage"/>29 </variables>3031 <!-- Message correlation to be performed on the ClaimID field -->32 <correlationSets>33 <correlationSet name="claim" properties="tns:claimID"/>34 </correlationSets>35

Page 34: Modelovanje poslovnih procesa

36 <!-- Catch any errors and fix manually -->37 <faultHandlers>38 <catchAll>39 <empty name="PlaceholderForManualFix"/>40 </catchAll>41 </faultHandlers>4243 <!-- Globally receive a kill event (correlated with the claim ID from the44 original initate) and terminate the process. -->45 <eventHandlers>46 <onMessage partnerLink="client" portType="tns:InsuranceClaim"47 operation="kill" variable="killEv">48 <correlations>49 <correlation set="claim" initiate="no"/>50 </correlations>51 <sequence>52 <empty/><!-- Do something, like notify internal systems of kill -->53 <terminate name="killClaim"/>54 </sequence>55 </onMessage>56 </eventHandlers>5758 <sequence>5960 <!-- We start with a receive activity: get the initiate message. Will61 correlate on claim set defined earlier62 -->63 <receive partnerLink="client" portType="tns:InsuranceClaim"64 operation="initiate" variable="initiateMsg" createInstance="yes"65 name="initiateEvent">66 <correlations>67 <correlation set="claim" initiate="yes"/>68 </correlations>69 </receive>

BPEL primer (Osigruavajuće društvo)

Page 35: Modelovanje poslovnih procesa

71 <!-- Let an agent evaluate it. Call worklist partner to do this -->72 <invoke name="evalClaim" partnerLink="worklist" portType="task:TaskManager"73 operation="evalClaim" inputVariable="initiateMsg"/>7475 <!-- Get either the response or a timeout -->76 <pick name="analyzePick">77 <onMessage partnerLink="worklist" portType="task:TaskManagerCallback"78 operation="onTaskResult" variable="taskResponse">79 <!-- From response extract status and set to variable 'status' -->80 <assign name="setStatus">81 <copy>82 <from variable="taskResponse" part="payload"83 query="/tns:taskMessage/tns:result="/>84 <to variable="status"/>85 </copy>86 </assign>87 </onMessage>88 <!-- Timeout! 10 days have passed. Escalate -->89 <onAlarm for="PT10D">90 <sequence>91 <!-- Call partner service to escalate -->92 <invoke name="evalClaim" partnerLink="worklist"93 portType="task:TaskManager" operation="escalateClaim"94 inputVariable="initiateMsg"/>95 <!-- Get the escalation response -->96 <receive name="receiveTaskResult" partnerLink="worklist"97 portType="task:TaskManagerCallback"98 operation="onTaskResult" variable="taskResponse"/>

BPEL primer (Osigruavajuće društvo)

Page 36: Modelovanje poslovnih procesa

101 <copy>102 <from variable="taskResponse" part="payload"103 query="/tns:taskMessage/tns:result="/>104 <to variable="status"/>105 </copy>106 </assign>107 </sequence>108 </onAlarm>109 </pick>110111 <!-- Look at result of claim process and act accordingly:112 'rejected' and 'accepted' are good. Anything else, throw a fault -->113 <switch name-"resultEval">114 <case condition="bpws:getVariableData('status')='rejected'">115 <empty> <!-- perform rejection actions -->116 </case>117 <case condition="bpws:getVariableData('status')='accepted'">118 <empty> <!-- perform acceptance actions -->119 </case>120 <otherwise>121 <throw name="illegalStatus" faultName="illegalStatus"/>122 </otherwise>123 </switch>124 </sequence>125 </process>

BPEL primer (Osigruavajuće društvo)

Page 37: Modelovanje poslovnih procesa

Proširenja BPEL-a

Page 38: Modelovanje poslovnih procesa

BPEL-SPE (Sub-Process Extension)

Proširenje BPEL sa podprocesima Pokretanje nekog poslovnog procesa kao podprocesa unutar

durgog tako da životni ciklus zavisi od nadredjenog procesa Definisanje poslovnog procesa u kontekstu drugog tako da se

omogućava pristup podacima iz nadredjnog procesa Mogućnost pokretanje podprocesa koji se izvšrava unutar

drugog BPEL engine-a.

Page 39: Modelovanje poslovnih procesa

BPEL4People

Proširenje BPEL koje uključuje u poslovne procese specijalne implementacije aktivnosti koje možemo nazvati ljudske aktivnostima (aktivnosti koji se izvršavaju od stane ljudi). Ljudske aktivnosti nazivaju se poslovi (tasks)Definisanje korisnika kao inicijatora procesa

Page 40: Modelovanje poslovnih procesa

BPEL4PeopleModeli interakcije poslova i aktivnosti

Page 41: Modelovanje poslovnih procesa

Poslovni proces

Integracija aplikacija preko BPEL4WS

WAS

.net

CICS

SOAP, Transakcije RMI IIOP

MQSeries

MQSeries

Proces posrednik

Opis procesa

Pristupni kanali

Opis servisa

Tradicionalna integracija

Page 42: Modelovanje poslovnih procesa

ZaključakBPEL se fokusira na kreiranje poslovnih procesa

Opisuje kontrolnu logiku za koordinaciju web servisa u okviru nekog poslovnog procesa

Baziran na XML

Interpretira se i izvršava od strane BPEL engine-a