1服务科学与工程第八章BPELV2.0山东大学齐鲁软件学院2Wearehere!ServicesatomicandcompositeOperationalSystemsServiceComponentsConsumersBusinessProcessComposition;choreography;businessstatemachinesPackagedApplicationCustomApplicationOOApplicationChannelB2BV2.0山东大学齐鲁软件学院3主要内容•BPEL简介•BPEL的基本结构和主要元素•BPEL基本活动•BPEL结构化活动•BPEL实例4BPEL简介5BPEL:BusinessProcessExecutionLanguage业务流程执行语言BuildingStandards-BasedBusinessProcesseswithWebServicesV2.0山东大学齐鲁软件学院6业务流程•按业务流程之间的协作方式可以分为单工作流模式和多工作流模式;•单工作流模式把一组相关的服务按一定顺序和条件组合执行,完成某项业务,流程执行过程中涉及的服务不属于其他业务流程;•多工作流模式是两个或两个以上的工作流程并行执行并进行交互的业务流程模式,多工作流模式侧重于业务流程之间的交互。单工作流模式嵌套子流程模式链型流程模式ProcessAA2A1A4A3V2.0山东大学齐鲁软件学院7BusinessProcessesFlow•Businessprocessesareasetofactivities,supportedbyservices,thatsupportaparticularbusinessactivity.•Businessprocessesarebusinessservicesbuiltusingotherbusinessservices.V2.0山东大学齐鲁软件学院8BPEL•BPEL4WS是专为整合WebServices而制定的一项规范标准。•BPEL描述流程–可执行工作流—描述业务交互中参与者的实际行为;–抽象流程—描述各方参与者对外可见的消息交换。•BPEL的作用是将一组现有的服务组合起来,从而定义一个新的Web服务。因此,BPEL基本上是一种实现此种组合的语言。组合服务的接口也被描述为WSDLportType的集合。V2.0山东大学齐鲁软件学院9BPELBPELProcessInJavaInOutEJBInOutMessageInOutOtherInOutOutV2.0山东大学齐鲁软件学院10WhatBPELdoes…•BPELbindsservicestogethertoformlargercomplexbusinessservices•ControlFlow(branch,loop,parallel)•Asynchronouscorrelation•Transactionsupport,UnitsofWork•CompensationV2.0山东大学齐鲁软件学院11WebServicesMeetBusinessProcessesWebService1WebService2WebService3WebService4WebService5WebServicenV2.0山东大学齐鲁软件学院12ExampleProblemSpaceClientPOServiceCreditServiceInventoryServicePurchaseOrderInvoiceConsolidateResultsV2.0山东大学齐鲁软件学院13BusinessProcessChallenges•Coordinateasynchronouscommunicationbetweenservices•Correlatemessageexchangesbetweenparties•Implementparallelprocessingofactivities•...•Manipulate/transformdatabetweenpartnerinteractions•Supportforlongrunningbusinesstransactionsandactivities•Provideconsistentexceptionhandling•...V2.0山东大学齐鲁软件学院14Orchestration(管弦乐编曲)vsChoreography(舞蹈编排)•使用Orchestration,需要一个总控过程来控制涉及到的Web服务,并协调Web服务不同操作的执行。所涉及到的Web服务并不知道(也不必知道)它们是组合过程的一部分。只有中央的总控过程知道它们如何组合和协调•Choreography并不依赖中央的总控协调过程。相反,每个涉及其中的Web服务都知道何时执行自己的操作,和谁交互。所有的Choreography参与者都需要知道业务流程,要执行的操作,要交互的消息,和交换消息的时机V2.0山东大学齐鲁软件学院15Orchestration(管弦乐编曲)vsChoreography(舞蹈编排)•从组合Web服务来执行业务流程的角度来看,Orchestration比Choreography更灵活:1、我们知道谁负责执行整个业务流程。2、即使Web服务并不知道它们是业务流程的一部分,仍然可以把它们组合起来。3、当错误发生时,我们可以提供一个备选的Scenario•BPEL遵循Orchestration范式V2.0山东大学齐鲁软件学院16SampleBusinessProcess:PurchaseOrderSamplePurchaseOrderPurchaseOrderRequestPurchaseOrderAcknowledgementPurchaseOrderResponseBusiness“A”Business“B”V2.0山东大学齐鲁软件学院17FromaChoreographyPerspectivePORequestSendPOReceivePOAckReceivePOResponseReceivePOSendPOAckSendPOResponsePOAcknowledgementPOResponseChoreography–TheobservablepublicexchangeofmessagesPublicProcessBusinessABusinessBV2.0山东大学齐鲁软件学院18FromanOrchestrationPerspectiveSendPOReceivePOAckReceivePOResponseTransformTransformFromERPToERPPORequestPOAcknowledgementPOResponseOrchestration–AprivateexecutablebusinessprocessPrivateProcessBusinessABPELWorkflowV2.0山东大学齐鲁软件学院19OrchestrationandChoreographyTogetherBusinessBBusinessAnalystToolBusinessASendPOReceivePOAckReceivePOResponseTransformTransformBusinessABPELWorkflowPORequestPOAcknowledgementPOResponseGenerateBPELTemplateGenerateBPELTemplateReceivePOSendPOAckReceivePOResponseTransformTransformBusinessBBPELWorkflowTwoBPELworkflowtemplatesreflectingabusinessagreementV2.0山东大学齐鲁软件学院20RecentHistoryofBusinessProcessStandards2000/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.0山东大学齐鲁软件学院21StandardsBuildingBlocksofBPELDescriptionHTTP,IIOP,JMS,SMTPTransportXMLMessageSOAPWSDLUDDIDiscoveryTransactionsCoordinationWS-SecurityWS-ReliabilityQualityofServiceOrchestration-BPEL4WSBusinessProcessesContextDescriptionManagementChoreography-CDL4WSV2.0山东大学齐鲁软件学院22BPELDependsonWSDLandWSDLExtensionsServiceImplementationDefinitionServiceInterfaceDefinitionServicePortBindingPorttypesdefineOperationsMessageType23BPEL的基本结构V2.0山东大学齐鲁软件学院24BPEL的基本结构processname=ncnametargetNamespace=uriqueryLanguage=anyURI?expressionLanguage=anyURI?suppressJoinFailure=yes|no?enableInstanceCompensation=yes|no?abstractProcess=yes|no?partnerLinks?.../partnerLinkspartners?.../partnersvariables?.../variablescorrelationSets?.../correlationSetsfaultHandlers?.../faultHandlerscompensationHandlers?.../compensationHandlerseventHandlers?.../eventHandlersactivity/processV2.0山东大学齐鲁软件学院25BPEL的主要元素•partnerLinks:合作伙伴链接•partners:合作伙伴•variables:变量定义•correlationSets:相关集定义•faultHandlers:故障处理程序•compensationHandlers:补偿处理程序•eventHandlers:事件处理程序V2.0山东大学齐鲁软件学院26Partners•DeclaretheWebservicesandrolesusedbytheprocess•TiedtoWSDLoftheprocessitselfandtheparticipatingWebservicesbyservicelinktypesCreditServicePartner2InventoryServicePartner3Partner1(theprocess)PurchaseServiceV2.0山东大学齐鲁软件学院27PartnersinBPELpartnerLinkspartnerLinkname=“customerserviceLinkType=“lns:purchasePLT”myRole=“purchaseService”/partnerLinkname=“inventoryChecker”service