版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
服务科学与工程第八章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山东大学齐鲁软件学院StandardsBuildingBlocksofBPELDescriptionHTTP,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”><operation
name="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山东大学齐鲁软件学院CorrelationCustomer
SendPurchase
ProcessPurchaseResponsePO
Correlation:
<PO_CustId=10>
<PO_OrdId=100>POResponse
Correlations:<PO_CustId=10>
<PO_OrdId=100>
<Inv_VendId=20>
<Inv_InvId=200>Seller
AsynchPurchase
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>
ReserveInventoryCancelReserveInvInventoryService
CheckCredit
ChargeHoldFeeCancelHoldFeeCreditServiceUndoChargeHoldFeeV2.076山东大学齐鲁软件学院ExceptionHandlinginBPEL<faultHandlers>catchexceptionBasedonWSDLportdefiningfault<faultHandlers>canperformactivitiesuponinvocation<faultHandlers>
<catchfaultName="lns:cannotCompleteOrder"faultVariable="POFault"><replypartnerLink="customer"portType="lns:purchaseOrderPT"operation="sendPurchaseO
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Tripetroselinin-1-2-3-Tri-6-Z-octadecenoyl-glycerol-生命科学试剂-MCE-1244
- Diethylene-glycol-d8-2-2-Oxybis-ethan-1-ol-d-sub-8-sub-生命科学试剂-MCE-5883
- 2025年度挂车司机运输合同违约责任与赔偿合同
- 2025年度网络安全行业竞业限制协议生效细则及数据隐私
- 二零二五年度创业公司股权分配及股权激励协议
- 2025年度消防电梯采购与应急救援系统配套合同
- 2025年度水果种植基地农业保险合同
- 2025年度绿色能源股权合作开发合同
- 施工现场施工防传染病制度
- 施工进度管理及控制制度
- 医院消防安全培训课件
- 质保管理制度
- 《00541语言学概论》自考复习题库(含答案)
- 2025年机关工会个人工作计划
- 2024年全国卷新课标1高考英语试题及答案
- 华为经营管理-华为激励机制(6版)
- 江苏省南京市、盐城市2023-2024学年高三上学期期末调研测试+英语+ 含答案
- 2024护理不良事件分析
- 光伏项目的投资估算设计概算以及财务评价介绍
- 2024新版《药品管理法》培训课件
- 干燥综合征诊断及治疗指南
评论
0/150
提交评论