業(yè)務流程建模語言BPEL_第1頁
業(yè)務流程建模語言BPEL_第2頁
業(yè)務流程建模語言BPEL_第3頁
業(yè)務流程建模語言BPEL_第4頁
業(yè)務流程建模語言BPEL_第5頁
已閱讀5頁,還剩91頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

效力科學與工程第八章BPEL1Wearehere!ServicesatomicandcompositeOperationalSystemsServiceComponentsConsumersBusinessProcessComposition;choreography;businessstatemachinesPackagedApplicationCustomApplicationOOApplicationChannelB2BV2.02山東大學齊魯軟件學院主要內(nèi)容BPEL簡介BPEL的根本構造和主要元素BPEL根本活動BPEL構造化活動BPEL實例V2.03山東大學齊魯軟件學院BPEL簡介4BPEL:BusinessProcessExecutionLanguage

業(yè)務流程執(zhí)行言語BuildingStandards-BasedBusinessProcesseswithWebServices5業(yè)務流程按業(yè)務流程之間的協(xié)作方式可以分為單任務流方式和多任務流方式;單任務流方式把一組相關的效力按一定順序和條件組合執(zhí)行,完成某項業(yè)務,流程執(zhí)行過程中涉及的效力不屬于其他業(yè)務流程;多任務流方式是兩個或兩個以上的任務流程并行執(zhí)行并進展交互的業(yè)務流程方式,多任務流方式偏重于業(yè)務流程之間的交互。單任務流方式嵌套子流程方式鏈型流程方式V2.06山東大學齊魯軟件學院BusinessProcessesFlowBusinessprocessesareasetofactivities,supportedbyservices,thatsupportaparticularbusinessactivity.Businessprocessesarebusinessservicesbuiltusingotherbusinessservices.V2.07山東大學齊魯軟件學院BPELBPEL4WS是專為整合WebServices而制定的一項規(guī)范規(guī)范。BPEL描畫流程可執(zhí)行任務流—描畫業(yè)務交互中參與者的實踐行為;籠統(tǒng)流程—描畫各方參與者對外可見的音訊交換。BPEL的作用是將一組現(xiàn)有的效力組合起來,從而定義一個新的Web效力。因此,BPEL根本上是一種實現(xiàn)此種組合的言語。組合效力的接口也被描畫為WSDLportType的集合。V2.08山東大學齊魯軟件學院BPELV2.09山東大學齊魯軟件學院WhatBPELdoes…BPELbindsservicestogethertoformlargercomplexbusinessservicesControlFlow(branch,loop,parallel)AsynchronouscorrelationTransactionsupport,UnitsofWorkCompensationV2.010山東大學齊魯軟件學院WebServicesMeetBusinessProcessesWebService1WebService2WebService3WebService4WebService5WebServicenV2.011山東大學齊魯軟件學院ExampleProblemSpaceClientPOServiceCreditServiceInventoryServicePurchase

OrderCredit

CheckReserve

InventoryCredit

ResponseInventory

ResponseInvoiceConsolidateResultsV2.012山東大學齊魯軟件學院BusinessProcessChallengesCoordinateasynchronouscommunicationbetweenservicesCorrelatemessageexchangesbetweenpartiesImplementparallelprocessingofactivities...Manipulate/transformdatabetweenpartnerinteractionsSupportforlongrunningbusinesstransactionsandactivitiesProvideconsistentexceptionhandling...V2.013山東大學齊魯軟件學院Orchestration(管弦樂編曲)vsChoreography(舞蹈編排)運用Orchestration,需求一個總控過程來控制涉及到的Web效力,并協(xié)調(diào)Web效力不同操作的執(zhí)行。所涉及到的Web效力并不知道〔也不用知道〕它們是組合過程的一部分。只需中央的總控過程知道它們?nèi)绾谓M合和協(xié)調(diào)Choreography并不依賴中央的總控協(xié)調(diào)過程。相反,每個涉及其中的Web效力都知道何時執(zhí)行本人的操作,和誰交互。一切的Choreography參與者都需求知道業(yè)務流程,要執(zhí)行的操作,要交互的音訊,和交換音訊的時機V2.014山東大學齊魯軟件學院Orchestration(管弦樂編曲)vsChoreography(舞蹈編排)從組合Web效力來執(zhí)行業(yè)務流程的角度來看,Orchestration比Choreography更靈敏:

1、我們知道誰擔任執(zhí)行整個業(yè)務流程。

2、即使Web效力并不知道它們是業(yè)務流程的一部分,依然可以把它們組合起來。

3、當錯誤發(fā)生時,我們可以提供一個備選的ScenarioBPEL遵照Orchestration范式V2.015山東大學齊魯軟件學院SampleBusinessProcess:PurchaseOrderSamplePurchaseOrderPurchaseOrderRequestPurchaseOrderAcknowledgementPurchaseOrderResponseBusiness

“A〞Business“B〞V2.016山東大學齊魯軟件學院FromaChoreographyPerspectivePORequestSend

POReceivePOAckReceivePOResponseReceive

POSend

POAckSendPOResponsePOAcknowledgementPOResponseChoreography–TheobservablepublicexchangeofmessagesPublicProcessBusinessABusinessBV2.017山東大學齊魯軟件學院FromanOrchestrationPerspectiveSend

POReceivePOAckReceivePOResponseTransformTransformFromERPToERPPORequestPOAcknowledgementPOResponseOrchestration–AprivateexecutablebusinessprocessPrivateProcessBusinessABPELWorkflowV2.018山東大學齊魯軟件學院OrchestrationandChoreographyTogetherBusiness

BBusinessAnalystToolBusiness

ASend

POReceivePOAckReceivePOResponseTransformTransformBusinessABPELWorkflowPORequestPOAcknowledgementPOResponseGenerateBPEL

TemplateGenerateBPEL

TemplateReceive

POSendPOAckReceivePOResponseTransformTransformBusinessBBPELWorkflowTwoBPELworkflowtemplatesreflectingabusinessagreementV2.019山東大學齊魯軟件學院RecentHistoryof

BusinessProcessStandards2000/05XLang(Microsoft)2001/03BPML(Intallioetal)2001/05WSFL(IBM)2001/06BPSS(ebXML)2002/03BPEL4WS1.0

(IBM,Microsoft)BPEL4WS1.1

(OASIS)2002/062003/01WS-Choreography(W3C)2003/04WSCI(Sunetal)WSCL(HP)2002/08V2.020山東大學齊魯軟件學院StandardsBuildingBlocksofBPELDescription,IIOP,JMS,SMTPTransportXMLMessageSOAPWSDLUDDIDiscoveryTransactionsCoordinationWS-SecurityWS-ReliabilityQualityof

ServiceOrchestration-BPEL4WSBusiness

ProcessesContextDescriptionManagementChoreography-CDL4WSV2.021山東大學齊魯軟件學院BPELDependsonWSDLandWSDLExtensionsServiceImplementationDefinitionServiceInterfaceDefinitionServicePortBindingPorttypesdefineOperationsMessageTypeV2.022山東大學齊魯軟件學院BPEL的根本構造23BPEL的根本構造<processname="ncname"targetNamespace="uri"queryLanguage="anyURI"?expressionLanguage="anyURI"?suppressJoinFailure="yes|no"?enableInstanceCompensation="yes|no"?abstractProcess="yes|no"?><partnerLinks>?...</partnerLinks><partners>?...</partners><variables>?...</variables><correlationSets>?...</correlationSets><faultHandlers>?...</faultHandlers><compensationHandlers>?...</compensationHandlers><eventHandlers>?...</eventHandlers>activity</process>V2.024山東大學齊魯軟件學院BPEL的主要元素partnerLinks:協(xié)作同伴鏈接partners:協(xié)作同伴variables:變量定義correlationSets:相關集定義faultHandlers:缺點處置程序compensationHandlers:補償處置程序eventHandlers:事件處置程序V2.025山東大學齊魯軟件學院PartnersDeclaretheWebservicesandrolesusedbytheprocessTiedtoWSDLoftheprocessitselfandtheparticipatingWebservicesbyservicelinktypesCredit

ServicePartner2Inventory

ServicePartner3Partner1

(theprocess)Purchase

ServiceV2.026山東大學齊魯軟件學院PartnersinBPEL<partnerLinks><partnerLinkname=“customer"serviceLinkType=“l(fā)ns:purchasePLT〞

myRole=“purchaseService〞/><partnerLinkname=“inventoryChecker〞serviceLinkType=“l(fā)ns:inventoryPLT〞

myRole=“inventoryRequestor〞partnerRole=“inventoryService〞/><partnerLinkname=“creditChecker〞serviceLinkType=“l(fā)ns:creditPLT〞myRole=“creditRequestor〞partnerRole=“creditService〞/></partnerLinks><plt:partnerLinkTypename=“purchasePLT〞><plt:rolename=“purchaseService〞><plt:portTypename=“tns:purchasePT〞/></plt:role></plt:partnerLinkType>PurchaseProcessWSDL:BPEL:<portTypename=“purchasePT〞><operationname="sendPurchase"></operation></portType>PurchaseProcessPortType:V2.027山東大學齊魯軟件學院協(xié)作同伴鏈接類型<definitionsname="ncname"targetNamespace="uri"xmlns="/wsdl/"xmlns:plnk="/ws/2003/05/partner-link/">...<plnk:partnerLinkTypename="ncname"><plnk:rolename="ncname"><plnk:portTypename="qname"/></plnk:role><plnk:rolename="ncname">?<plnk:portTypename="qname"/></plnk:role></plnk:partnerLinkType>...</definitions>V2.028山東大學齊魯軟件學院同伴鏈接類型為了描畫兩個效力之間的會話關系,同伴鏈接類型定義了會話中每個效力所扮演的“角色〞,并且指定了每個效力所提供的portType,以便接納會話的上下文中的音訊。每個角色的portType可以產(chǎn)生于不同的稱號空間,也在產(chǎn)生于一樣的稱號空間。根據(jù)一樣稱號空間中的portType來定義協(xié)作同伴鏈接類型的兩個角色。同伴鏈接類型定義文檔可以是獨立于任一個效力的WSDL文檔的單獨構件,也可以被放在定義portType的WSDL文檔中,這些portType也被用來定義不同的角色。有些情況下,定義僅包含一個角色的同伴鏈接類型是有意義的。在這種同伴鏈接情形中,一個效力可以鏈接任何其他效力。V2.029山東大學齊魯軟件學院同伴鏈接業(yè)務流程交互的效力被描畫成同伴鏈。每個同伴鏈由partnerLinkType來描畫。每個同伴鏈都被命名。經(jīng)過該同伴鏈的一切效力交互。屬性myRole指出了業(yè)務流程本身的角色,而屬性partnerRole指出了同伴的角色。假設partnerLinkType僅有一個角色,那么將根據(jù)需求省略其中一個屬性。<partnerLinks><partnerLinkname="ncname"partnerLinkType="qname"myRole="ncname"?partnerRole="ncname"?>+</partnerLink></partnerLinks>V2.030山東大學齊魯軟件學院業(yè)務同伴同伴鏈表示兩個協(xié)作同伴流程之間會話關系。同伴partner元素被定義為流程的同伴鏈一部分。同伴定義是可選的,并且不需求包含流程中定義的一切同伴鏈。同伴鏈絕不可以出如今多個同伴定義中。<partners><partnername="ncname">+<partnerLinkname="ncname"/>+</partner></partners>V2.031山東大學齊魯軟件學院端點援用WSDL的PortType運用籠統(tǒng)音訊來定義籠統(tǒng)功能。端口提供實踐訪問信息,包括通訊端點和其他與部署有關的信息。綁定使兩者連結在一同。效力的用戶必需靜態(tài)地依賴于由portType定義的籠統(tǒng)接口,但是在通常情況下可以動態(tài)地發(fā)現(xiàn)和運用端口定義的信息。端點援用的根本用途是作為一種機制,用于效力的特定于端口的數(shù)據(jù)的動態(tài)通訊。BPEL運用了WS-Addressing中定義的端點援用的概念。流程實例的同伴鏈接的每個同伴角色被分配一個具有獨一性的端點援用,這可以在流程的部署過程中完成,也可以由流程中的某個活動動態(tài)地執(zhí)行。V2.032山東大學齊魯軟件學院變量業(yè)務流程指定了涉及同伴之間音訊交換的有形狀交互。業(yè)務流程的形狀不僅包括被交換的音訊,而且還包括用于業(yè)務邏輯和構造發(fā)送給同伴的音訊的中間數(shù)據(jù)。每個變量的類型可以是WSDL音訊類型、XMLSchema簡單類型或XMLSchema元素。屬于全局流程作用域的變量稱為全局變量;屬于流程作用域的變量稱為部分變量;每個變量只需在定義它的作用域和嵌套在它所屬于的作用域內(nèi)的全部作用域中才是可見的<variables><variablename="ncname"messageType="qname"?type="qname"?element="qname"?/>+</variables>V2.033山東大學齊魯軟件學院VariablesMessagessentandreceivedfrompartnersPersistedforlongrunninginteractionsDefinedinWSDLtypesandmessagesCustomer

ServiceProcess<A><variable><activity><B><activity>PersistPersist/

RetrieveCustomer

ServicePersist/

RetrievePersist/

Retrieve<variable>V2.034山東大學齊魯軟件學院VariablesinBPEL<variables><variablename=“PO〞messageType=“l(fā)ns:POMessage〞/><variablename=“Invoice〞messageType=“l(fā)ns:InvMessage〞/><variablename=“POFault〞messageType=“l(fā)ns:orderFaultType〞/></variables><messagename=“POMessage〞><partname=“customerInfo〞type=“sns:customerInfo〞/><partname=“purchaseOrder〞type=“sns:purchaseOrder〞/></message><messagename="InvMessage"><partname=“IVC〞type=“sns:Invoice〞/></message><messagename=“orderFaultType〞><partname=“problemInfo〞type=“xsd:string〞/></message>PurchaseProcessWSDL:BPEL:V2.035山東大學齊魯軟件學院HowisDataManipulation

Done?Using<assign>and<copy>,datacanbecopiedandmanipulatedbetweenvariables<copy>supportsXPathqueriestosub-selectdata<assign><copy><fromvariable="PO"part="customerInfo"/><tovariable=“creditRequest〞part="customerInfo"/></copy></assign>V2.036山東大學齊魯軟件學院相關集在面向對象領域經(jīng)過對象援用進展有形狀的交互。對象援用本身提供了訪問具有適宜的交互形狀和歷史的某個對象〔實例〕的才干。這種方式適用于嚴密耦合的實現(xiàn)。Web效力領域援用方式將呵斥實現(xiàn)之間脆弱的依賴關系;需求松散耦合機制實現(xiàn);防止在實例路由中運用特定于實現(xiàn)的標志。在業(yè)務流程實例的生存期中,它通常與涉及它的同伴進展多次會話,相關聯(lián)的會話涉及的參與者不止兩個,經(jīng)常有必要提供應用程序級的機制,以使音訊和會話被匹配到預定的業(yè)務流程實例。V2.037山東大學齊魯軟件學院相關集BPEL提供了聲明性機制,以指定效力實例中相關聯(lián)的操作組。一組相關標志可定義為相關聯(lián)的組中一切音訊共享的一組特性。這樣的一組特性稱為相關集。每個關聯(lián)集都在一個作用域中進展聲明并屬于該作用域。屬于全局流程作用域的關聯(lián)集稱為全局關聯(lián)集;屬于部分作用域,這樣的關聯(lián)集稱為部分關聯(lián)集。在流程開場時,全局關聯(lián)集處于未初始化的形狀。在其所屬的作用域的執(zhí)行開場時,本地關聯(lián)集處于未初始化的形狀。相關集在其語義上類似于延遲綁定的常數(shù)。相關集的綁定由特別標志的音訊發(fā)送或接納操作來觸發(fā)。相關集在其所屬的作用域的生存期中只能初始化一次。在初始化之后,它的值就可被以為是業(yè)務流程實例的標識的別名。V2.038山東大學齊魯軟件學院相關集在多方業(yè)務協(xié)議中初始者流程發(fā)送啟動會話的第一個音訊,從而定義了標志該對話的相關集中的特性值。一切其他參與者經(jīng)過接納提供相關集中的特性值的傳入音訊來綁定會話中的相關集。初始者和其他參與者都必需發(fā)送啟動會話的第一個音訊,從而定義標志會話的相關集中的特性值。相關集的稱號用在invoke、receive和reply活動中,也用在pick活動的onMessage分支中,同時還用在事件處置程序的onMessage方式中。<correlationSets>?<correlationSetname="ncname"properties="qname-list"/>+</correlationSets>V2.039山東大學齊魯軟件學院缺點處置程序缺點處置是因發(fā)生缺點而切換到撤銷發(fā)生缺點的作用域中的部分或不勝利的任務。缺點處置程序提供了定義一組自定義的缺點處置活動的方法,句法上定義為catch活動。定義的每個catch活動能攔截某種特定的缺點〔由全局獨一的缺點QName和有與該缺點相關聯(lián)的數(shù)據(jù)的變量來定義〕。假設沒有缺點名,那么catch將攔截全部有適宜類型的缺點數(shù)據(jù)的缺點。運用catch處置程序中的faultVariable屬性來指定缺點變量。<faultHandlers><catchfaultName="qname“aultVariable="ncname">activity</catch><catchAll>activity</catchAll></faultHandlers>V2.040山東大學齊魯軟件學院缺點處置程序對invoke活動的缺點呼應是缺點的來源之一,根據(jù)WSDL操作中的缺點定義,該缺點有顯式給出的稱號和數(shù)據(jù)部分。程序化地拋出throw活動是缺點的另一個來源,它也有顯式給出的稱號和數(shù)據(jù)。V2.041山東大學齊魯軟件學院補償處置程序經(jīng)過補償處置程序,作用域可以描畫一部分經(jīng)過運用程序定義的方式可撤銷的行為。有補償處置程序的作用域可不受約束恣意深地被嵌套。補償處置程序僅僅是補償活動的包裝。在許多情況下,補償處置程序需求接納當前形狀的數(shù)據(jù)并前往關于補償結果的數(shù)據(jù)。補償處置程序的調(diào)用方法是運用compensate活動。<compensationHandler>?activity</compensationHandler>V2.042山東大學齊魯軟件學院事件處置程序整個流程以及每個作用域可以與一組在相應的事件發(fā)生時并發(fā)調(diào)用事件處置程序相關聯(lián)。在事件處置程序中進展任何類型的活動,但是不允許運用<compensate/>調(diào)用補償處置程序。有兩種類型的事件:與WSDL中懇求/呼應或單向操作對應的傳入音訊;用戶設置的時間過后發(fā)出的警報。V2.043山東大學齊魯軟件學院事件處置程序<eventHandlers>?<onMessagepartnerLink="ncname"portType="qname"operation="ncname"variable="ncname"?>*<correlations>?<correlationset="ncname"initiate="yes|no">+</correlations>activity</onMessage><onAlarmfor="duration-expr"?until="deadline-expr"?>*activity</onAlarm></eventHandlers>V2.044山東大學齊魯軟件學院事件處置程序onMessage標志表示指定的事件是一個等待音訊到達的事件。這個標志及其屬性的解釋類似于receive活動。partnerLink屬性定義懇求將到達的協(xié)作同伴鏈接。portType和operation屬性是協(xié)作同伴為引發(fā)事件而調(diào)用的適當端口類型和操作。變量屬性標識包含從協(xié)作同伴接納到的音訊的變量。onAlarm標志標志超時事件。for屬性指定該事件發(fā)生之前的繼續(xù)時間。計算繼續(xù)時間的計時在相關的作用域的執(zhí)行開場的時辰響起。until屬性指定發(fā)出警報的特定時辰。這兩個屬性中僅有一個必需出如今任何onAlarm事件中。V2.045山東大學齊魯軟件學院BPEL根本活動46BPEL的活動根本活動<receive><reply><invoke><assign><throw><terminate><wait><empty>構造化活動<sequence><switch><while><pick><flow><scope><compensate>V2.047山東大學齊魯軟件學院SimpleActivitiesReceiveWaitforapartnerinboundmessageCanbetheinstantiatorofthebusinessprocessReplySynchronousresponsetoareceiveactivityResponsetotheinboundreceivefromapartnerInvokeIssuearequestsynchronously*or*asynchronouslyPickSpecifyaninboundsetofmessagesCanbetheinstantiatorofthebusinessprocessActivitycompleteswhenoneofthemessagesarrivesV2.048山東大學齊魯軟件學院SimpleActivitiesCombinedwithStructuredActivitiesInvoke<InventoryService>Invoke<CreditService>Reply<Invoice>Receive<PO><sequence><flow></sequence>V2.049山東大學齊魯軟件學院SampleActivitiesinBPEL<sequence><receivepartnerLink=“customer〞portType=“l(fā)ns:purchaseOrderPT"operation=“sendPurchaseOrder〞variable=“PO〞createInstance="yes"/><flow><invokepartnerLink=“inventoryChecker〞portType=“l(fā)ns:inventoryPT〞operation="checkINV"inputVariable="inventoryRequest"outputVariable="inventoryResponse"/><invokepartnerLink="creditChecker"portType=“l(fā)ns:creditPT"operation="checkCRED"inputVariable="creditRequest"outputVariable="creditResponse"/></flow>...<replypartnerLink=“customer〞portType=“l(fā)ns:purchaseOrderPT〞operation=“sendPurchaseOrder〞variable=“invoice"/></sequence>V2.050山東大學齊魯軟件學院receive<receive>構造業(yè)務流程阻塞等待匹配音訊的到達實例化業(yè)務流程的獨一方法是注解receive活動,把createInstance屬性設置為“yes〞。該屬性的缺省值是“no〞。<receivepartnerLink="ncname"portType="qname"operation="ncname"variable="ncname"?createInstance="yes|no"?standard-attributes>standard-elements<correlations>?<correlationset="ncname"initiate="yes|no"?>+</correlations></receive>V2.051山東大學齊魯軟件學院reply<reply>構造業(yè)務流程發(fā)送音訊以應對經(jīng)過<receive>接納到的音訊。receive和reply的組合為流程構成了在WSDLportType上的懇求-呼應操作。<replypartnerLink="ncname"portType="qname"operation="ncname"variable="ncname"?faultName="qname"?standard-attributes>standard-elements<correlations>?<correlationset="ncname"initiate="yes|no"?>+</correlations></reply>V2.052山東大學齊魯軟件學院invoke<invoke>構造允許業(yè)務流程調(diào)用由協(xié)作同伴在portType上提供的單向或懇求-呼應操作。異步伐用僅需求操作的輸入變量;同步伐用既需求輸入變量,又需求輸出變量。V2.053山東大學齊魯軟件學院invoke<invokepartnerLink="ncname"portType="qname"operation="ncname"inputVariable="ncname"?outputVariable="ncname"?standard-attributes>standard-elements<correlations>?<correlationset="ncname"initiate="yes|no"?pattern="in|out|out-in"/>+</correlations><compensationHandler>?activity</compensationHandler></invoke>V2.054山東大學齊魯軟件學院assign<assign>構造的作用是用新的數(shù)據(jù)來更新變量的值。assign可以包括恣意數(shù)量的根本賦值,還可把端點援用復制到協(xié)作同伴鏈接,或把協(xié)作同伴鏈接復制到端點援用〔效力的動態(tài)綁定〕。<assignstandard-attributes>standard-elements<copy>+from-specto-spec</copy></assign>V2.055山東大學齊魯軟件學院assignfrom-spec必需是以下方式中的一種:<fromvariable="ncname"part="ncname"?/><frompartnerLink="ncname"endpointReference="myRole|partnerRole"/><fromvariable="ncname"property="qname"/><fromexpression="general-expr"/><from>...literalvalue...</from>to-spec必需是以下方式中的一種:<tovariable="ncname"part="ncname"?/><topartnerLink="ncname"/><tovariable="ncname"property="qname"/>V2.056山東大學齊魯軟件學院throw<throw>構造從業(yè)務流程中生成缺點。運用throw發(fā)出內(nèi)部缺點。每個缺點需求有一個全局獨一的QName,還可選提供數(shù)據(jù)的變量。缺點處置程序可以運用這種數(shù)據(jù),來分析和處置該缺點并植入需被發(fā)送到其他效力的一切缺點音訊。<throwfaultName="qname"faultVariable="ncname"?standard-attributes>standard-elements</throw>V2.057山東大學齊魯軟件學院terminate<terminate>可以用于立刻終止該terminate活動中運轉的業(yè)務流程實例。一切當前正在運轉的活動必需盡能夠快地終止,而沒有任何缺點處置或補償行為。<terminatestandard-attributes>standard-elements</terminate>V2.058山東大學齊魯軟件學院wait<wait>構造允許等待一段給定的時間或等到某一時辰。必需確切地指定wait中一個到期條件。<wait(for="duration-expr"|until="deadline-expr")standard-attributes>standard-elements</wait>V2.059山東大學齊魯軟件學院empty與語義<empty>構造允許在業(yè)務流程中插入“no-op〞指令。empty可用于并行活動的同步。<emptystandard-attributes>standard-elements</empty>V2.060山東大學齊魯軟件學院BPEL構造化活動61構造化活動構造化的活動規(guī)定了一組活動發(fā)生的順序,描畫了創(chuàng)建業(yè)務流程的根本活動組成的構造,這些構造表達了涉及業(yè)務協(xié)議的流程實例間的控制方式、數(shù)據(jù)流程、缺點和外部事件的處置以及音訊交換的協(xié)調(diào)。BPEL的構造化活動包括:順序控制由sequence、switch和while組成;活動之間的并發(fā)和同步由flow組成;基于外部事件的不確定的選擇由pick組成。遞歸地運用構造化的活動。V2.062山東大學齊魯軟件學院sequence<sequence>構造定義一組按順序先后執(zhí)行的活動。執(zhí)行順序是sequence元素中被列出活動的先后順序。當sequence中的最后一個活動完成后,該sequence活動也就完成了。<sequencestandard-attributes>standard-elementsactivity+</sequence>V2.063山東大學齊魯軟件學院switch<switch>構造允許從一組分支中只選擇一個活動分支。switch由case元素定義的一個或多個條件分支的有序列表組成,后面可跟也可以不跟一個otherwise分支。以case分支的出現(xiàn)順序檢查,第一個條件是true的分支被選擇并被作為被執(zhí)行的活動。假設有條件的分支都未被選擇,那么otherwise分支將被選擇。<switchstandard-attributes>standard-elements<casecondition="bool-expr">+activity</case><otherwise>?activity</otherwise></switch>V2.064山東大學齊魯軟件學院while<while>構造允許指定反復執(zhí)行一個活動,直到某個勝利條件被滿足為止。<whilecondition="bool-expr"standard-attributes>standard-elementsactivity</while>V2.065山東大學齊魯軟件學院pick<pick>構造允許阻塞并等待某一個適宜的音訊的到達或超時警報響起。當其中一個觸發(fā)器觸發(fā)后,相關的活動就被執(zhí)行,pick也隨即完成了。pick活動等待一組相互排斥事件中的一個事件的發(fā)生,然后執(zhí)行與發(fā)生的事件相關聯(lián)的活動。假設多個事件發(fā)生,那么按照時間發(fā)生先后或選擇原那么確定發(fā)惹事件。當業(yè)務流程的實例的創(chuàng)建是由于接納到一組能夠的音訊中的一個音訊而發(fā)生的時,可以運用pick的特殊方式。每個pick活動必需至少包括一個onMessage事件。onMessage事件的語義等同于有關變量屬性的可選類型的receive活動。V2.066山東大學齊魯軟件學院pick<pickcreateInstance="yes|no"?standard-attributes>standard-elements<onMessagepartnerLink="ncname"portType="qname"operation="ncname"variable="ncname"?>+<correlations>?<correlationset="ncname"initiate="yes|no"?>+</correlations>activity</onMessage><onAlarm(for="duration-expr"|until="deadline-expr")>*activity</onAlarm></pick>V2.067山東大學齊魯軟件學院flow<flow>構造指定一個或多個并行地執(zhí)行的活動。為了定義恣意的控制構造,可以在并行的活動中運用鏈接。flow能進一步表達直接或間接嵌套在其中的活動之間的同步相關性,link構造用來表達這種同步相關性。一個link有一個稱號,flow活動的一切鏈必需在flow活動中分開定義?;顒拥囊?guī)范的source和target元素用來鏈接兩個活動。在flow活動中聲明的每個link必需在該flow中恰好有一個活動作為它的源,恰好有一個活動作為它的目的。<flowstandard-attributes>standard-elements<links>?<linkname="ncname">+</links>activity+</flow>V2.068山東大學齊魯軟件學院<flow><links><linkname="XtoY"/><linkname="CtoD"/></links><sequencename="X"><sourcelinkName="XtoY"/><invokename="A".../><invokename="B".../></sequence><sequencename"Y"><targetlinkName="XtoY"/><receivename="C"/><sourcelinkName="CtoD"/></receive><invokename="E".../></sequence><invokepartnerLink="D"><targetlinkName="CtoD"/></invoke></flow><flow></flow><Y><C><E><X><A><B><D><linkCtoD>Links–ControlFlow<linkXtoY>V2.069山東大學齊魯軟件學院CorrelationCustomerSendPurchase

ProcessPurchaseResponsePO

Correlation:

<PO_CustId=10>

<PO_OrdId=100>POResponse

Correlations:<PO_CustId=10>

<PO_OrdId=100>

<Inv_VendId=20>

<Inv_InvId=200>SellerAsynchPurchase

AsynchPurchaseResponseinitiate=yesinitiate=yespattern=outinitiate=nopattern=outinitiate=yesinitiate=yesinitiate=noV2.070山東大學齊魯軟件學院CorrelationsinBPEL<correlationSets><correlationSetname="POCorr"properties="cor:custIdcor:ordId"/><correlationSetname="InvoiceCorr"properties="cor:vendIdcor:invId"/></correlationSets>...<receivepartnerLink=“Customer〞portType="SP:PurchaseOrderPT"operation="AsynchPurchase"variable="PO"><correlations><correlationset="POCorr"initiate="yes"></correlations></receive>...<invokepartnerLink=“Customer〞portType="SP:CustomerPT"operation=“ProcessPurchaseResponse"inputVariable="POResponse"><correlations><correlationset="POCorr"initiate="no"pattern="out"><correlationset="InvoiceCorr"initiate="yes"pattern="out"></correlations></invoke>...V2.071山東大學齊魯軟件學院scope<scope>構造允許定義嵌套活動,這個嵌套活動有和本人關聯(lián)的變量、缺點處置程序和補償處置程序。每個scope有一個定義它的正常行為的主要活動。該主要活動可以是一個復雜的構造化的活動,其中有恣意深度的許多嵌套的活動。一切的嵌套的活動都共享該scope。<scopevariableAccessSerializable="yes|no"standard-attributes>standard-elements<variables>...</variables><correlationSets>...</correlationSets><faultHandlers>...</faultHandlers><compensationHandler>...</compensationHandler><eventHandlers>...</eventHandlers>activity</scope>V2.072山東大學齊魯軟件學院ScopesinBPELProvideasharedcontextforsubsetofactivitiesCancontainfaulthandlerseventhandlers,compensationhandlervariablescorrelationsetsCanserializeconcurrent

accesstovariables<scope

variableAccessSerializable="yes|no“

...>

<variables>

</variables>

<correlationSets>?...</correlationSets>

<faultHandlers>

</faultHandlers>

<compensationHandler>?...</compensationHandler>

<eventHandlers>

</eventHandlers>

(activities)*

</scope>V2.073山東大學齊魯軟件學院compensate<compensate>構造已正常完成執(zhí)行的內(nèi)層作用域上調(diào)用補償。compensate命名了執(zhí)行補償所在的作用域。僅當作用域正常完成執(zhí)行之后該作用域的補償處置程序才可被調(diào)用。顯式地執(zhí)行compensate活動的才干是BPEL的運用程序控制的錯誤處置框架的根底所在。該活動只能用于業(yè)務流程的以下部分中:在作用域的fault處置程序中,該作用域直接包括補償將被執(zhí)行的作用域。在作用域的補償處置程序中,該作用域直接包括補償將被執(zhí)行的作用域。假設按稱號顯式地補償?shù)淖饔糜蛟谘h(huán)中被執(zhí)行,那么在后續(xù)的迭代中補償處置程序的實例將按相反的順序執(zhí)行。<compensatescope="ncname"?standard-attributes>standard-elements</compensate>V2.074山東大學齊魯軟件學院CompensationHandlers

inBPEL<scope><compensationHandler><invokepartnerLink="Seller"portType="SP:Purchasing"operation="CancelPurchase"inputVariable="getResponse"outputVariable="getConfirmation"><correlations><correlationset="PurchaseOrder"pattern="out"/></correlations></invoke></compensationHandler><invokepartnerLink="Seller"portType="SP:Purchasing"operation="SyncPurchase"inputVariable="sendPO"outputVariable="getResponse"><correlations><correlationset="PurchaseOrder"initiate=“yes〞pattern="out"/></correlations></invoke></scope>V2.075山東大學齊魯軟件學院LongRunningTransactionsandCompensationUndoReserveInventory<scope></scope>ReserveInventoryCancelReserveInvInventoryServiceCheckCreditChargeHoldFeeCancelHoldFeeCreditServiceUndoChargeHoldFeeV2.076山東大學齊魯軟件學院ExceptionHandlinginBPEL<faultHandlers>catchexceptionBasedonWSDLportdefiningfault<faultHandlers>canperformactivitiesuponinvocation<faultHandlers>

<catchfaultName="lns:cannotCompleteOrder"faultVariable="POFault"><replypartnerLink="customer"portType="lns:purchaseOrderPT"operation="sendPurchaseOrder"variable="POFault"

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論