




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
效力科學與工程第八章BPEL1Wearehere!ServicesatomicandcompositeOperationalSystemsServiceComponentsConsumersBusinessProcessComposition;choreography;businessstatemachinesPackagedApplicationCustomApplicationOOApplicationChannelB2BV2.02山東大學齊魯軟件學院主要內容BPEL簡介BPEL的根本構造和主要元素BPEL根本活動BPEL構造化活動BPEL實例V2.03山東大學齊魯軟件學院BPEL簡介4BPEL:BusinessProcessExecutionLanguage
業務流程執行言語BuildingStandards-BasedBusinessProcesseswithWebServices5業務流程按業務流程之間的協作方式可以分為單任務流方式和多任務流方式;單任務流方式把一組相關的效力按一定順序和條件組合執行,完成某項業務,流程執行過程中涉及的效力不屬于其他業務流程;多任務流方式是兩個或兩個以上的任務流程并行執行并進展交互的業務流程方式,多任務流方式偏重于業務流程之間的交互。單任務流方式嵌套子流程方式鏈型流程方式V2.06山東大學齊魯軟件學院BusinessProcessesFlowBusinessprocessesareasetofactivities,supportedbyservices,thatsupportaparticularbusinessactivity.Businessprocessesarebusinessservicesbuiltusingotherbusinessservices.V2.07山東大學齊魯軟件學院BPELBPEL4WS是專為整合WebServices而制定的一項規范規范。BPEL描畫流程可執行任務流—描畫業務交互中參與者的實踐行為;籠統流程—描畫各方參與者對外可見的音訊交換。BPEL的作用是將一組現有的效力組合起來,從而定義一個新的Web效力。因此,BPEL根本上是一種實現此種組合的言語。組合效力的接口也被描畫為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效力,并協調Web效力不同操作的執行。所涉及到的Web效力并不知道〔也不用知道〕它們是組合過程的一部分。只需中央的總控過程知道它們如何組合和協調Choreography并不依賴中央的總控協調過程。相反,每個涉及其中的Web效力都知道何時執行本人的操作,和誰交互。一切的Choreography參與者都需求知道業務流程,要執行的操作,要交互的音訊,和交換音訊的時機V2.014山東大學齊魯軟件學院Orchestration(管弦樂編曲)vsChoreography(舞蹈編排)從組合Web效力來執行業務流程的角度來看,Orchestration比Choreography更靈敏:
1、我們知道誰擔任執行整個業務流程。
2、即使Web效力并不知道它們是業務流程的一部分,依然可以把它們組合起來。
3、當錯誤發生時,我們可以提供一個備選的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:協作同伴鏈接partners:協作同伴variables:變量定義correlationSets:相關集定義faultHandlers:缺點處置程序compensationHandlers:補償處置程序eventHandlers:事件處置程序V2.025山東大學齊魯軟件學院PartnersDeclaretheWebservicesandrolesusedbytheprocessTiedtoWSDLoftheprocessitselfandtheparticipatingWebservicesbyservicelinktypesCredit
ServicePartner2Inventory
ServicePartner3Partner1
(theprocess)Purchase
ServiceV2.026山東大學齊魯軟件學院PartnersinBPEL<partnerLinks><partnerLinkname=“customer"serviceLinkType=“lns:purchasePLT〞
myRole=“purchaseService〞/><partnerLinkname=“inventoryChecker〞serviceLinkType=“lns:inventoryPLT〞
myRole=“inventoryRequestor〞partnerRole=“inventoryService〞/><partnerLinkname=“creditChecker〞serviceLinkType=“lns: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山東大學齊魯軟件學院協作同伴鏈接類型<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可以產生于不同的稱號空間,也在產生于一樣的稱號空間。根據一樣稱號空間中的portType來定義協作同伴鏈接類型的兩個角色。同伴鏈接類型定義文檔可以是獨立于任一個效力的WSDL文檔的單獨構件,也可以被放在定義portType的WSDL文檔中,這些portType也被用來定義不同的角色。有些情況下,定義僅包含一個角色的同伴鏈接類型是有意義的。在這種同伴鏈接情形中,一個效力可以鏈接任何其他效力。V2.029山東大學齊魯軟件學院同伴鏈接業務流程交互的效力被描畫成同伴鏈。每個同伴鏈由partnerLinkType來描畫。每個同伴鏈都被命名。經過該同伴鏈的一切效力交互。屬性myRole指出了業務流程本身的角色,而屬性partnerRole指出了同伴的角色。假設partnerLinkType僅有一個角色,那么將根據需求省略其中一個屬性。<partnerLinks><partnerLinkname="ncname"partnerLinkType="qname"myRole="ncname"?partnerRole="ncname"?>+</partnerLink></partnerLinks>V2.030山東大學齊魯軟件學院業務同伴同伴鏈表示兩個協作同伴流程之間會話關系。同伴partner元素被定義為流程的同伴鏈一部分。同伴定義是可選的,并且不需求包含流程中定義的一切同伴鏈。同伴鏈絕不可以出如今多個同伴定義中。<partners><partnername="ncname">+<partnerLinkname="ncname"/>+</partner></partners>V2.031山東大學齊魯軟件學院端點援用WSDL的PortType運用籠統音訊來定義籠統功能。端口提供實踐訪問信息,包括通訊端點和其他與部署有關的信息。綁定使兩者連結在一同。效力的用戶必需靜態地依賴于由portType定義的籠統接口,但是在通常情況下可以動態地發現和運用端口定義的信息。端點援用的根本用途是作為一種機制,用于效力的特定于端口的數據的動態通訊。BPEL運用了WS-Addressing中定義的端點援用的概念。流程實例的同伴鏈接的每個同伴角色被分配一個具有獨一性的端點援用,這可以在流程的部署過程中完成,也可以由流程中的某個活動動態地執行。V2.032山東大學齊魯軟件學院變量業務流程指定了涉及同伴之間音訊交換的有形狀交互。業務流程的形狀不僅包括被交換的音訊,而且還包括用于業務邏輯和構造發送給同伴的音訊的中間數據。每個變量的類型可以是WSDL音訊類型、XMLSchema簡單類型或XMLSchema元素。屬于全局流程作用域的變量稱為全局變量;屬于流程作用域的變量稱為部分變量;每個變量只需在定義它的作用域和嵌套在它所屬于的作用域內的全部作用域中才是可見的<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=“lns:POMessage〞/><variablename=“Invoice〞messageType=“lns:InvMessage〞/><variablename=“POFault〞messageType=“lns: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山東大學齊魯軟件學院相關集在面向對象領域經過對象援用進展有形狀的交互。對象援用本身提供了訪問具有適宜的交互形狀和歷史的某個對象〔實例〕的才干。這種方式適用于嚴密耦合的實現。Web效力領域援用方式將呵斥實現之間脆弱的依賴關系;需求松散耦合機制實現;防止在實例路由中運用特定于實現的標志。在業務流程實例的生存期中,它通常與涉及它的同伴進展多次會話,相關聯的會話涉及的參與者不止兩個,經常有必要提供應用程序級的機制,以使音訊和會話被匹配到預定的業務流程實例。V2.037山東大學齊魯軟件學院相關集BPEL提供了聲明性機制,以指定效力實例中相關聯的操作組。一組相關標志可定義為相關聯的組中一切音訊共享的一組特性。這樣的一組特性稱為相關集。每個關聯集都在一個作用域中進展聲明并屬于該作用域。屬于全局流程作用域的關聯集稱為全局關聯集;屬于部分作用域,這樣的關聯集稱為部分關聯集。在流程開場時,全局關聯集處于未初始化的形狀。在其所屬的作用域的執行開場時,本地關聯集處于未初始化的形狀。相關集在其語義上類似于延遲綁定的常數。相關集的綁定由特別標志的音訊發送或接納操作來觸發。相關集在其所屬的作用域的生存期中只能初始化一次。在初始化之后,它的值就可被以為是業務流程實例的標識的別名。V2.038山東大學齊魯軟件學院相關集在多方業務協議中初始者流程發送啟動會話的第一個音訊,從而定義了標志該對話的相關集中的特性值。一切其他參與者經過接納提供相關集中的特性值的傳入音訊來綁定會話中的相關集。初始者和其他參與者都必需發送啟動會話的第一個音訊,從而定義標志會話的相關集中的特性值。相關集的稱號用在invoke、receive和reply活動中,也用在pick活動的onMessage分支中,同時還用在事件處置程序的onMessage方式中。<correlationSets>?<correlationSetname="ncname"properties="qname-list"/>+</correlationSets>V2.039山東大學齊魯軟件學院缺點處置程序缺點處置是因發生缺點而切換到撤銷發生缺點的作用域中的部分或不勝利的任務。缺點處置程序提供了定義一組自定義的缺點處置活動的方法,句法上定義為catch活動。定義的每個catch活動能攔截某種特定的缺點〔由全局獨一的缺點QName和有與該缺點相關聯的數據的變量來定義〕。假設沒有缺點名,那么catch將攔截全部有適宜類型的缺點數據的缺點。運用catch處置程序中的faultVariable屬性來指定缺點變量。<faultHandlers><catchfaultName="qname“aultVariable="ncname">activity</catch><catchAll>activity</catchAll></faultHandlers>V2.040山東大學齊魯軟件學院缺點處置程序對invoke活動的缺點呼應是缺點的來源之一,根據WSDL操作中的缺點定義,該缺點有顯式給出的稱號和數據部分。程序化地拋出throw活動是缺點的另一個來源,它也有顯式給出的稱號和數據。V2.041山東大學齊魯軟件學院補償處置程序經過補償處置程序,作用域可以描畫一部分經過運用程序定義的方式可撤銷的行為。有補償處置程序的作用域可不受約束恣意深地被嵌套。補償處置程序僅僅是補償活動的包裝。在許多情況下,補償處置程序需求接納當前形狀的數據并前往關于補償結果的數據。補償處置程序的調用方法是運用compensate活動。<compensationHandler>?activity</compensationHandler>V2.042山東大學齊魯軟件學院事件處置程序整個流程以及每個作用域可以與一組在相應的事件發生時并發調用事件處置程序相關聯。在事件處置程序中進展任何類型的活動,但是不允許運用<compensate/>調用補償處置程序。有兩種類型的事件:與WSDL中懇求/呼應或單向操作對應的傳入音訊;用戶設置的時間過后發出的警報。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屬性定義懇求將到達的協作同伴鏈接。portType和operation屬性是協作同伴為引發事件而調用的適當端口類型和操作。變量屬性標識包含從協作同伴接納到的音訊的變量。onAlarm標志標志超時事件。for屬性指定該事件發生之前的繼續時間。計算繼續時間的計時在相關的作用域的執行開場的時辰響起。until屬性指定發出警報的特定時辰。這兩個屬性中僅有一個必需出如今任何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=“lns:purchaseOrderPT"operation=“sendPurchaseOrder〞variable=“PO〞createInstance="yes"/><flow><invokepartnerLink=“inventoryChecker〞portType=“lns:inventoryPT〞operation="checkINV"inputVariable="inventoryRequest"outputVariable="inventoryResponse"/><invokepartnerLink="creditChecker"portType=“lns:creditPT"operation="checkCRED"inputVariable="creditRequest"outputVariable="creditResponse"/></flow>...<replypartnerLink=“customer〞portType=“lns:purchaseOrderPT〞operation=“sendPurchaseOrder〞variable=“invoice"/></sequence>V2.050山東大學齊魯軟件學院receive<receive>構造業務流程阻塞等待匹配音訊的到達實例化業務流程的獨一方法是注解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>構造業務流程發送音訊以應對經過<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>構造允許業務流程調用由協作同伴在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>構造的作用是用新的數據來更新變量的值。assign可以包括恣意數量的根本賦值,還可把端點援用復制到協作同伴鏈接,或把協作同伴鏈接復制到端點援用〔效力的動態綁定〕。<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>構造從業務流程中生成缺點。運用throw發出內部缺點。每個缺點需求有一個全局獨一的QName,還可選提供數據的變量。缺點處置程序可以運用這種數據,來分析和處置該缺點并植入需被發送到其他效力的一切缺點音訊。<throwfaultName="qname"faultVariable="ncname"?standard-attributes>standard-elements</throw>V2.057山東大學齊魯軟件學院terminate<terminate>可以用于立刻終止該terminate活動中運轉的業務流程實例。一切當前正在運轉的活動必需盡能夠快地終止,而沒有任何缺點處置或補償行為。<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>構造允許在業務流程中插入“no-op〞指令。empty可用于并行活動的同步。<emptystandard-attributes>standard-elements</empty>V2.060山東大學齊魯軟件學院BPEL構造化活動61構造化活動構造化的活動規定了一組活動發生的順序,描畫了創建業務流程的根本活動組成的構造,這些構造表達了涉及業務協議的流程實例間的控制方式、數據流程、缺點和外部事件的處置以及音訊交換的協調。BPEL的構造化活動包括:順序控制由sequence、switch和while組成;活動之間的并發和同步由flow組成;基于外部事件的不確定的選擇由pick組成。遞歸地運用構造化的活動。V2.062山東大學齊魯軟件學院sequence<sequence>構造定義一組按順序先后執行的活動。執行順序是sequence元素中被列出活動的先后順序。當sequence中的最后一個活動完成后,該sequence活動也就完成了。<sequencestandard-attributes>standard-elementsactivity+</sequence>V2.063山東大學齊魯軟件學院switch<switch>構造允許從一組分支中只選擇一個活動分支。switch由case元素定義的一個或多個條件分支的有序列表組成,后面可跟也可以不跟一個otherwise分支。以case分支的出現順序檢查,第一個條件是true的分支被選擇并被作為被執行的活動。假設有條件的分支都未被選擇,那么otherwise分支將被選擇。<switchstandard-attributes>standard-elements<casecondition="bool-expr">+activity</case><otherwise>?activity</otherwise></switch>V2.064山東大學齊魯軟件學院while<while>構造允許指定反復執行一個活動,直到某個勝利條件被滿足為止。<whilecondition="bool-expr"standard-attributes>standard-elementsactivity</while>V2.065山東大學齊魯軟件學院pick<pick>構造允許阻塞并等待某一個適宜的音訊的到達或超時警報響起。當其中一個觸發器觸發后,相關的活動就被執行,pick也隨即完成了。pick活動等待一組相互排斥事件中的一個事件的發生,然后執行與發生的事件相關聯的活動。假設多個事件發生,那么按照時間發生先后或選擇原那么確定發惹事件。當業務流程的實例的創建是由于接納到一組能夠的音訊中的一個音訊而發生的時,可以運用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>構造指定一個或多個并行地執行的活動。為了定義恣意的控制構造,可以在并行的活動中運用鏈接。flow能進一步表達直接或間接嵌套在其中的活動之間的同步相關性,link構造用來表達這種同步相關性。一個link有一個稱號,flow活動的一切鏈必需在flow活動中分開定義。活動的規范的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>構造允許定義嵌套活動,這個嵌套活動有和本人關聯的變量、缺點處置程序和補償處置程序。每個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>構造已正常完成執行的內層作用域上調用補償。compensate命名了執行補償所在的作用域。僅當作用域正常完成執行之后該作用域的補償處置程序才可被調用。顯式地執行compensate活動的才干是BPEL的運用程序控制的錯誤處置框架的根底所在。該活動只能用于業務流程的以下部分中:在作用域的fault處置程序中,該作用域直接包括補償將被執行的作用域。在作用域的補償處置程序中,該作用域直接包括補償將被執行的作用域。假設按稱號顯式地補償的作用域在循環中被執行,那么在后續的迭代中補償處置程序的實例將按相反的順序執行。<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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業互聯網平臺網絡安全態勢感知技術安全態勢感知與安全防護技術創新報告2025
- 2025年六盤水市重點中學八年級英語第二學期期中復習檢測模擬試題含答案
- 制造業數字化轉型數據治理策略與能源管理的優化報告
- 2025年元宇宙社交平臺隱私保護與用戶體驗研究報告
- 社交媒體輿情監測與2025年危機公關技術應用研究指南與實踐案例分析指南報告001
- 2025年單身經濟下小型家電市場消費者購買偏好研究報告
- 2025年醫藥行業市場準入政策與監管趨勢報告
- 2025年醫藥企業研發外包(CRO)與臨床試驗結果轉化報告
- 2025年短視頻平臺內容監管與網絡素養提升策略報告
- 2025年醫藥流通行業供應鏈優化與成本控制中的供應鏈協同效應提升策略報告
- 2025年中國國際技術智力合作集團有限公司招聘筆試參考題庫含答案解析
- 2025時政試題及答案(100題)
- 食品安全自查、從業人員健康管理、進貨查驗記錄、食品安全事故處置等保證食品安全的規章制度
- 國家保密知識培訓課件
- 臨床科主任考核管理辦法
- 社交媒體表情符號分析
- 農村文化產業發展與市場開拓策略
- 2025年河南省豫地科技集團有限公司招聘筆試參考題庫含答案解析
- 申請變壓器增容申請書
- 《用于生態修復的粉煤灰》
- 2023年度內蒙古自治區政府采購評審專家資格考試題庫
評論
0/150
提交評論