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

下載本文檔

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

文檔簡介

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

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

OrderCredit

CheckReserve

InventoryCredit

ResponseInventory

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

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

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

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

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

POReceivePOAckReceivePOResponseReceive

POSend

POAckSendPOResponsePOAcknowledgementPOResponseChoreography–TheobservablepublicexchangeofmessagesPublicProcessBusinessABusinessBV2.017山東大學(xué)齊魯軟件學(xué)院FromanOrchestrationPerspectiveSend

POReceivePOAckReceivePOResponseTransformTransformFromERPToERPPORequestPOAcknowledgementPOResponseOrchestration–AprivateexecutablebusinessprocessPrivateProcessBusinessABPELWorkflowV2.018山東大學(xué)齊魯軟件學(xué)院OrchestrationandChoreographyTogetherBusiness

BBusinessAnalystToolBusiness

ASend

POReceivePOAckReceivePOResponseTransformTransformBusinessABPELWorkflowPORequestPOAcknowledgementPOResponseGenerateBPEL

TemplateGenerateBPEL

TemplateReceive

POSendPOAckReceivePOResponseTransformTransformBusinessBBPELWorkflowTwoBPELworkflowtemplatesreflectingabusinessagreementV2.019山東大學(xué)齊魯軟件學(xué)院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山東大學(xué)齊魯軟件學(xué)院StandardsBuildingBlocksofBPELDescription,IIOP,JMS,SMTPTransportXMLMessageSOAPWSDLUDDIDiscoveryTransactionsCoordinationWS-SecurityWS-ReliabilityQualityof

ServiceOrchestration-BPEL4WSBusiness

ProcessesContextDescriptionManagementChoreography-CDL4WSV2.021山東大學(xué)齊魯軟件學(xué)院BPELDependsonWSDLandWSDLExtensionsServiceImplementationDefinitionServiceInterfaceDefinitionServicePortBindingPorttypesdefineOperationsMessageTypeV2.022山東大學(xué)齊魯軟件學(xué)院BPEL的根本構(gòu)造23BPEL的根本構(gòu)造<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山東大學(xué)齊魯軟件學(xué)院BPEL的主要元素partnerLinks:協(xié)作同伴鏈接partners:協(xié)作同伴variables:變量定義correlationSets:相關(guān)集定義faultHandlers:缺點(diǎn)處置程序compensationHandlers:補(bǔ)償處置程序eventHandlers:事件處置程序V2.025山東大學(xué)齊魯軟件學(xué)院PartnersDeclaretheWebservicesandrolesusedbytheprocessTiedtoWSDLoftheprocessitselfandtheparticipatingWebservicesbyservicelinktypesCredit

ServicePartner2Inventory

ServicePartner3Partner1

(theprocess)Purchase

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

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

RetrieveCustomer

ServicePersist/

RetrievePersist/

Retrieve<variable>V2.034山東大學(xué)齊魯軟件學(xué)院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山東大學(xué)齊魯軟件學(xué)院HowisDataManipulation

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

accesstovariables<scope

variableAccessSerializable="yes|no“

...>

<variables>

</variables>

<correlationSets>?...</correlationSets>

<faultHandlers>

</faultHandlers>

<compensationHandler>?...</compensationHandler>

<eventHandlers>

</eventHandlers>

(activities)*

</scope>V2.073山東大學(xué)齊魯軟件學(xué)院compensate<compensate>構(gòu)造已正常完成執(zhí)行的內(nèi)層作用域上調(diào)用補(bǔ)償。compensate命名了執(zhí)行補(bǔ)償所在的作用域。僅當(dāng)作用域正常完成執(zhí)行之后該作用域的補(bǔ)償處置程序才可被調(diào)用。顯式地執(zhí)行compensate活動的才干是BPEL的運(yùn)用程序控制的錯誤處置框架的根底所在。該活動只能用于業(yè)務(wù)流程的以下部分中:在作用域的fault處置程序中,該作用域直接包括補(bǔ)償將被執(zhí)行的作用域。在作用域的補(bǔ)償處置程序中,該作用域直接包括補(bǔ)償將被執(zhí)行的作用域。假設(shè)按稱號顯式地補(bǔ)償?shù)淖饔糜蛟谘h(huán)中被執(zhí)行,那么在后續(xù)的迭代中補(bǔ)償處置程序的實(shí)例將按相反的順序執(zhí)行。<compensatescope="ncname"?standard-attributes>standard-elements</compensate>V2.074山東大學(xué)齊魯軟件學(xué)院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山東大學(xué)齊魯軟件學(xué)院LongRunningTransactionsandCompensationUndoReserveInventory<scope></scope>ReserveInventoryCancelReserveInvInventoryServiceCheckCreditChargeHoldFeeCancelHoldFeeCreditServiceUndoChargeHoldFeeV2.076山東大學(xué)齊魯軟件學(xué)院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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論