已阅读5页,还剩94页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
服务计算基础 主讲 李伟刚liweigang 西北工业大学软件与微电子学院 第六章服务组合 主要内容 服务组合业务流程BPEL概述BPEL结构BPEL表示法及其处理BPEL相关产品和资源 第一节服务组合 Web服务组合是通过组合基本Web服务提供增值服务的能力 这些基本Web服务可能由别的组织提供 要点服务组合需要使用其它服务组合后形成的是一个具有新功能的服务服务组合使用的基本功能可以是组织外部的 服务组合的概念 服务组合 挑战 服务组合 实例 CheckFlightSchedules B2BApplications TravelAgency DecisionMaking CompareOptions CheckFlightSchedules CheckFlightSchedules IBMWebSphere SunJava Microsoft Net Wearehere 业务面临的一个关键问题仍然是集成企业内部集成 EnterpriseApplicationIntegration EAI 与合作伙伴的集成 Business to BusinessIntegration B2Bi 企业联盟Webservices 走向面向服务计算应用程序被视为 服务 松散耦合 动态交互异构平台没有哪一方取得完全的控制权服务组合如何组合服务 服务组合 目的 第二节业务流程 Programminginthelarge非程序员实现流程流程逻辑处理如何将功能点组合起来以解决更复杂的问题 如 处理一个订单 Programminginthesmall程序员实现功能功能逻辑处理具体的细粒度的任务 如 获取订单文件或更新客户记录 两种编程模型 移植性和互操作性灵活的集成能力表达能力强 易于适应底层服务的变更可细分 基于类型的组合 使得 第三方能对已有服务进行组合为不同部门提供不同的的组合视图提高可伸缩性和复用性有状态会话和生命期管理支持多个有状态长周期会话可恢复长周期的业务流程需要错误处理和恢复机制 以便管理错误和恢复错误 对过程模型的需求 业务流程交互模式 使用Orchestration 需要一个总控过程来控制涉及到的Web服务 并协调Web服务不同操作的执行 所涉及到的Web服务并不知道 也不必知道 它们是组合过程的一部分 只有中央的总控过程知道它们如何组合和协调Choreography并不依赖中央的总控协调过程 相反 每个涉及其中的Web服务都知道何时执行自己的操作 和谁交互 所有的Choreography参与者都需要知道业务流程 要执行的操作 要交互的消息 和交换消息的时机 Orchestration 编曲 vsChoreography 编舞 从组合Web服务来执行业务流程的角度来看 Orchestration比Choreography更灵活 1 我们知道谁负责执行整个业务流程 2 即使Web服务并不知道它们是业务流程的一部分 仍然可以把它们组合起来 3 当错误发生时 我们可以提供一个备选的ScenarioBPEL遵循Orchestration范式 Orchestration 编曲 vsChoreography 编舞 SamplePurchaseOrder PurchaseOrderRequest PurchaseOrderAcknowledgement PurchaseOrderResponse Business A Business B SampleBusinessProcess PurchaseOrder PORequest POAcknowledgement POResponse Choreography Theobservablepublicexchangeofmessages PublicProcess BusinessA BusinessB FromaChoreographyPerspective SendPO ReceivePOAck ReceivePOResponse Transform Transform FromERP ToERP PORequest POAcknowledgement POResponse Orchestration Aprivateexecutablebusinessprocess PrivateProcess BusinessABPELWorkflow FromanOrchestrationPerspective SendPO ReceivePOAck ReceivePOResponse Transform Transform BusinessABPELWorkflow PORequest POAcknowledgement POResponse GenerateBPELTemplate GenerateBPELTemplate ReceivePO SendPOAck ReceivePOResponse Transform Transform BusinessBBPELWorkflow TwoBPELworkflowtemplatesreflectingabusinessagreement OrchestrationandChoreographyTogether 第三节BPEL概述 业务流程可执行语言BPEL BusinessProcessExecutionLanguage 是专为整合WebServices而制定的一项规范标准 描述商业活动的抽象高级语言IBM的WSFL 支持图形化的流程Microsoft的XLANG 结构化构造方法BPEL描述流程可执行工作流 描述业务交互中参与者的实际行为 抽象流程 描述各方参与者对外可见的消息交换 BPEL的作用是将一组现有的服务组合起来 从而定义一个新的Web服务 因此 BPEL基本上是一种实现此种组合的语言 组合服务的接口也被描述为WSDLportType的集合 BPEL简介 BPEL 组合Web服务 BPEListheWebServicesOrchestrationstandardfromOASISbee pel beep uhl bip uhlAnXML basedgrammarfordescribingthelogictoorchestratetheinteractionbetweenWebservicesinabusinessprocess BPELHistoricalTimelineDec2000MicrosoftpublishesXLANGMarch2001IBMpublishesWSFLJuly2002IBM MicrosoftandBEAconvergeWSFL XLANGintoBPEL4WS1 0March2003BPEL4WSissubmittedtoOASISMay2003OASISpublishesBPEL4WS1 11stH2007WS BPEL2 0released WS BPEL历史 BPEL1 1 BPEL1 1authors May2003 WS BPEL2 0 GettingthePlayersTogether BPEL流程可以实现Web服务之间简单交互或复杂交互的自动化支持长周期业务事务关联消息交换实现活动的并发处理在合作方交互时映射数据提供一致的异常和恢复处理机制 BPEL关注的问题 WSDL定义了Webservices具有无状态的交互模型消息交换同步调用无关联的异步调用大多数 现实世界的 业务流程需要一个更强大的交互模型可以双向交换消息 也可以点到点 peer to peer 的交换 并能持续特定时间 分 时 天 BPEL提供了描述有状态的 长运行周期的交互的能力 为什么需要BPEL 使用XML语言定义业务流程用流程分解和装配的方式建立Webservices模型在业务流程的外部 抽象 视图和内部 可执行 视图使用相同的编排方法使用层次化和图形化的控制方式 减小过程建模的难度在应用消息的级别上为流程实例提供一种识别机制在创建和停止流程实例时隐含基本的生命周期机制定义了一种长周期事务处理模型 支持长周期业务流程全部或其中某些部分的失败恢复用模块化和可组合的方式提供了兼容Web服务标准的语言 BEPL设计目标 描述业务流程的业界标准使用通用的语言和技术在设计上很自然地与Webservices相适应用XML描述使用并扩展了WSDL1 1使用XMLSchema1 0作为数据模型在平台和开发商间可移植理论上可以在任何BPEL兼容的引擎上运行在交互的过程间实现互操作在Webservicesstack的顶层 BEPL的优点 WS BPEL XML Encoding Otherprotocols Otherservices TransportandEncoding BusinessProcesses WSDL Policy UDDI Inspection Description Security ReliableMessaging Transactions Coordination SOAP LogicalMessaging QualityOfService Wearehere WS BPELintheWS Stack 第四节BPEL结构 WS BPEL ProcessPartnerlinksDatahandlingPropertiesandcorrelationBasicandstructuredactivitiesScopes WS BPEL语言结构 process WS BPEL过程定义 BPEL建立在WSDL服务模型之上 并对其进行了扩展WSDL定义了允许的特定操作BPEL定义了WSDLoperations如何被编排在一起满足特定业务流程BPEL还定义了WSDL的扩展 以支持长周期异步业务流程 WSDL1 1 BPEL2 0 BPEL definedWSDLextensions WS BPEL与WSDL的关系 BPEL流程与业务伙伴暴露的WSDL服务交互 WebService LoanApprovalProcess WebService WSDLLoanApprovalPortType FinancialInstitution sWebService LoanApprover invoke InterfacesexposedbytheBPELprocess InterfacesconsumedbytheBPELprocess receive reply RecursiveComposition PartnerLinkType PartnerLinkType ServiceP ServiceA ServiceB A sWSDL P sWSDL B sWSDL F invoke receive receive invoke invoke Web服务组合 PartnerLinks PurchaseProcessWSDL BPEL PurchaseProcessPortType PartnerLinkinBPEL partnerLinkType 为了描述两个服务之间的会话关系 伙伴链接类型定义了会话中每个服务所扮演的 角色 并且指定了每个服务所提供的portType 以便接收会话的上下文中的消息 每个角色的portType可以产生于不同的名称空间 也可产生相同的名称空间 根据相同名称空间中的portType来定义合作伙伴链接类型的两个角色 伙伴链接类型定义文档可以是独立于任一个服务的WSDL文档的单独构件 也可以被放在定义portType的WSDL文档中 这些portType也被用来定义不同的角色 有些情况下 定义仅包含一个角色的伙伴链接类型是有意义的 在这种伙伴链接情形中 一个服务可以链接任何其他服务 伙伴链接类型 业务流程交互的服务被描述成伙伴链 partnerLinks 每个伙伴链由partnerLinkType来描述 每个伙伴链都被命名 通过该伙伴链的所有服务交互 属性myRole指出了业务流程本身的角色 而属性partnerRole指出了伙伴的角色 如果partnerLinkType仅有一个角色 那么将根据需要省略其中一个属性 partnerLinks WSDL的PortType使用抽象消息来定义抽象功能 port提供实际访问信息 包括通信端点和其他与部署有关的信息 绑定使两者连结在一起 服务的用户必须静态地依赖于由portType定义的抽象接口 但是在通常情况下可以动态地发现和使用port定义的信息 端点引用的基本用途是为服务提供一种特定于端口 port 的数据的动态通信机制 端点引用使得WS BPEL可以为特定类型的服务动态选择一个提供者 并调用其上的操作 BPEL使用了WS Addressing中定义的端点引用的概念 流程实例的partnerlink的每个伙伴角色被分配一个具有惟一性的端点引用 这可以在流程的部署过程中完成 也可以由流程中的某个活动动态地执行 端点引用 EndpointReference EPR process assign xsl transform 变量Variables 业务流程指定了涉及伙伴之间消息交换的有状态交互 业务流程的状态不仅包括被交换的消息 而且还包括用于业务逻辑和构造发送给伙伴的消息的中间数据 每个变量的类型可以是WSDL消息类型 XMLSchema简单类型或XMLSchema元素 属于全局流程作用域的变量称为全局变量 属于流程作用域的变量称为局部变量 每个变量只有在定义它的作用域和嵌套在它所属于的作用域内的全部作用域中才是可见的 变量Variables PurchaseProcessWSDL BPEL VariablesinBPEL process 消息属性 MessageProperties propertyAlias property 消息属性 MessageProperties processinstance3 process processinstance1 processinstance2 processinstance4 如何通过无状态的Webservice接口识别有状态的流程实例 initiate processinstance3 属性和相关集 CorrelationSets 在面向对象领域通过对象引用进行有状态的交互 对象引用本身提供了访问具有合适的交互状态和历史的某个对象 实例 的能力 这种方式适用于紧密耦合的实现 Web服务领域引用方式将造成实现之间脆弱的依赖关系 需要松散耦合机制实现 避免在实例路由中使用特定于实现的标记 在业务流程实例的生存期中 它通常与涉及它的伙伴进行多次会话 相关联的会话涉及的参与者不止两个 常常有必要提供应用程序级的机制 以使消息和会话被匹配到预定的业务流程实例 相关集 BPEL提供了声明性机制 以指定服务实例中相关联的操作组 一组相关标记可定义为相关联的组中所有消息共享的一组特性 这样的一组特性称为相关集 每个关联集都在一个作用域中进行声明并属于该作用域 属于全局流程作用域的关联集称为全局关联集 属于局部作用域 这样的关联集称为局部关联集 在流程开始时 全局关联集处于未初始化的状态 在其所属的作用域的执行开始时 本地关联集处于未初始化的状态 相关集在其语义上类似于延迟绑定的常数 相关集的绑定由特别标记的消息发送或接收操作来触发 相关集在其所属的作用域的生存期中只能初始化一次 在初始化之后 它的值就可被认为是业务流程实例的标识的别名 相关集 在多方业务协议中 三种情况发起者流程发送启动会话的第一个消息 从而定义了标记该对话的相关集中的特性值 所有其他参与者通过接收提供相关集中的特性值的传入消息来绑定会话中的相关集 发起者和其他参与者都必须发送启动会话的第一个消息 从而定义标记会话的相关集中的特性值 相关集的名称用在invoke receive和reply活动中 也用在pick活动的onMessage分支中 flow活动的link中 同时还用在事件处理程序的onMessage形式中 相关集 process scope scope scope scope scope scope scope 范围提供了一个上下文环境 它影响其中包含的活动的执行行为 独立范围为并发访问共享资源提供了控制机制 primaryactivity scope Scopes 故障处理是因发生故障而切换到撤销发生故障的作用域中的部分或不成功的工作 故障处理程序提供了定义一组自定义的故障处理活动的方法 句法上定义为catch活动 定义的每个catch活动能拦截某种特定的故障 由全局惟一的故障QName和有与该故障相关联的数据的变量来定义 如果没有故障名 那么catch将拦截全部有适合类型的故障数据的故障 使用catch处理程序中的faultVariable属性来指定故障变量 activityactivity 故障处理程序 Try catch throw机制原理 活动A try 活动2 活动1 try 活动2 1 活动2 2 throw 活动 异常 异常处理 catch throw 异常处理 catch 对invoke活动的故障响应是故障的来源之一 故障由显式给出的名称和数据部分组成 程序化地抛出throw活动是故障的另一个来源 它也有显式给出的名称和数据 故障处理程序 通过补偿处理程序 作用域可以描述通过应用程序定义的方式可撤销的行为 有补偿处理程序的作用域可不受约束任意深地嵌套补偿处理程序仅仅是用于补偿的活动的包装 在许多情况下 补偿处理程序需要接收当前状态的数据并返回关于补偿结果的数据补偿处理程序的调用方法是使用compensate活动 activity 补偿处理程序 整个流程以及每个作用域可以与一组在相应的事件发生时并发的调用的事件处理程序相关联 在事件处理程序中进行任何类型的活动 但是不允许使用调用补偿处理程序 有两种类型的事件 与WSDL中请求 响应或单向操作对应的传入消息 用户设置的时间过后发出的警报 事件处理程序 activity activity 事件处理程序 onMessage标志表示指定的事件是一个等待消息到达的事件 这个标记及其属性的解释类似于receive活动 partnerLink属性定义请求将到达的合作伙伴链接 portType和operation属性是合作伙伴为引发事件而调用的适当端口类型和操作 变量属性标识包含从合作伙伴接收到的消息的变量 onAlarm标志标记超时事件 for属性指定该事件发生之前的持续时间 计算持续时间的计时在相关的作用域的执行开始的时刻响起 until属性指定发出警报的特定时刻 这两个属性中仅有一个必须出现在任何onAlarm事件中 事件处理程序 process BasicActivities 我们重点讲解广泛使用的1 1规范 构造业务流程阻塞等待匹配消息的到达实例化业务流程的惟一方法是receive活动 把createInstance属性设置为 yes 该属性的缺省值是 no standard elements receive 构造业务流程发送消息以应答通过接收到的消息 receive和reply的组合为流程构成了在WSDLportType上的请求 响应操作 standard elements reply 允许业务流程调用由合作伙伴在portType上提供的单向或请求 响应操作 异步调用仅需要操作的输入变量 同步调用既需要输入变量 又需要输出变量 invoke standard elements activity invoke Invoke Invoke Reply Receive 例子 例子 的作用是用新的数据来更新变量的值 assign可以包括任意数量的基本赋值 assign还可把端点引用复制到合作伙伴链接 或把合作伙伴链接复制到端点引用 服务的动态绑定 standard elements from specto spec assign from spec必须是以下形式中的一种 literalvalue to spec必须是以下形式中的一种 assign 从业务流程中生成故障 使用throw发出内部故障 每个故障需要有一个全局惟一的QName 还可选提供数据的变量 故障处理程序可以使用这种数据 来分析和处理该故障并植入需被发送到其他服务的所有故障消息 standard elements throw 可以用于立即终止当前正在运行的业务流程实例 所有当前正在运行的活动必须尽可能快地终止 而且没有任何故障处理或补偿行为 standard elements terminate 构造允许等待一段给定的时间或等到某一时刻 必须确切地指定wait中一个到期条件 standard elements wait 允许在业务流程中插入 no op 指令 empty可用于并行活动的同步 standard elements empty与语义 将使已正常执行完的内层作用域上调用补偿处理程序 compensate定义了执行补偿所在的作用域 仅当作用域正常完成执行之后该作用域的补偿处理程序才可被调用 显式地执行compensate活动的能力是BPEL应用程序错误处理框架的基础所在 该活动只能用于业务流程的以下部分中 在作用域的fault处理程序中 该作用域包括补偿将被执行的作用域 在作用域的补偿处理程序中 该作用域包括补偿将被执行的作用域 standard elements compensate compensate Scope 1 Scope 1 1 Scope 1 1 1 faultHandlers Scope 1 Scope 1 1 Scope 1 1 1 faultHandlers process A M2 M1 StructuredActivities 我们重点讲解广泛使用的1 1规范 定义一组按顺序先后执行的活动 执行顺序是sequence元素中被列出活动的先后顺序 当sequence中的最后一个活动完成后 该sequence活动也就完成了 standard elementsactivity sequence 允许从一组分支中只选择一个活动分支 switch由case元素定义的一个或多个条件分支的有序列表组成 后面可跟也可以不跟一个otherwise分支 以case分支的出现顺序检查 第一个条件是true的分支被选择并被作为被执行的活动 如果有条件的分支都未被选择 那么otherwise分支将被选择 standard elements activity activity switch 当预定的条件满足时 包含的活动重复执行 standard elementsactivity while 阻塞并等待某一个合适的消息的到达或超时警报响起 当其中一个触发器触发后 相关的活动就被执行 pick也随即完成了 pick活动等待一组相互排斥事件中的一个事件的发生 然后执行与发生的事件相关联的活动 如果多个事件发生 那么按照时间发生先后或选择原则确定发生事件 当业务流程的实例的创建是由于接收到一组可能的消息中的一个消息而发生的时 可以使用pick形式 每个pick活动必须至少包括一个onMessage事件 onMessage事件的语义等同于有关变量属性的可选类型的receive活动 pick standard elements activity activity pick 结构指定一个或多个并行地执行的活动 为了定义任意的控制结构 可以在并行的活动中使用链接 flow能进一步表达直接或间接嵌套在其中的活动之间的同步相关性 link构造用来表达这种同步相关性 一个link有一个名称 flow活动的所有链必须在flow活动中分别定义 活动的source和target元素用来链接两个活动 在flow活动中声明的每个link必须在该flow中恰好有一个活动作为它的源 恰好有一个活动作为它的目标 standard elements activity flow Links ControlFlow 结构允许定义嵌套活动 这个嵌套活动有和自己关联的变量 故障处理程序和补偿处理程序 每个scope有一个定义它的正常行为的主要活动 该主要活动可以是一个复杂的结构化的活动 其中有任意深度的许多嵌套的活动 所有的嵌套的活动都共享该scope standard elements activity scope receive reply receive invoke invoke assign sequence sequence sequence flow while NestingStructuredActivities 第五节BPEL表示法及其处理 1 用户请求贷款 提供名字和账户信息2 有两个web服务 a 风险评估 如果风险小则批准b 贷款审批 检查名字批准或不批准贷款3 回复用户 invoke receive invoke reply assign loanApprovalPT loanapprover riskAssessmentPT loanassessor amount 10000 amount 10000 risk high risk low approved true approved false flow BPEL的表示 基于图的描述方法 ifbuyer seller else reply buyer reply seller receive buyer receive seller assign success assign failure sequence flow if else BPEL的表示 结构块描述方法 Process BPEL中定义的业务流程表示有状态的Webservices当流程启动 将通过流程定义创建一个新实例BPEL流程实例的创建和销毁隐含在设计中 receive reply invoke invoke invoke 流程实例的生命周期 scope eventhandler parallelforEach flow eventhandler eventhandler eventhandler eventhandler eventhandler eventhandler eventhandler eventhandler eventhandler eventhandler BPEL中的并发处理 compensationhandler chargecreditcard refundcustomer shipgoods faulthandler notifymanager compensate faulthandler rethrow Process sequence scope scope 故障处理和补偿 可执行过程将业务伙伴的业务逻辑隐藏于外部协议之后建立业务交互时一个参与方的实际行为模型包含完全描述执行所需的足够细节 抽象的和可执行的过程 抽象过程部分定义的过程 不打算执行可能隐藏一些所需的具体操作细节用于描述之目的用于指导可执行过程可以有多个用例 抽象的和可执行的过程 旅行订
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025 年大学勘查技术与工程(地球物理勘探)下学期期中测试卷
- 业务运作诚信自律承诺书5篇范文
- 2024-2025学年度一级建造师模拟试题及答案详解(名师系列)
- 2024-2025学年度医师定期考核考试彩蛋押题含完整答案详解(夺冠系列)
- 2024-2025学年度环卫垃圾处理工模拟试题带答案详解(达标题)
- 2024-2025学年度临床执业医师考前冲刺试卷带答案详解(满分必刷)
- 2024-2025学年度园林绿化作业人员考前冲刺测试卷及参考答案详解(预热题)
- 营销策略调整讨论会议邀请函(7篇)范文
- 2024-2025学年常州信息职业技术学院单招数学考前冲刺练习试题新版附答案详解
- 2024-2025学年度计算机四级考前冲刺练习附答案详解(完整版)
- 2026智慧水利一体化建设方案
- 施工现场节后复工安全教育培训
- 2026年包头轻工职业技术学院单招职业技能测试题库附参考答案详解(考试直接用)
- 2026年及未来5年中国膜材料行业发展前景预测及投资方向研究报告
- 2026年春季学期开学工作检查总结:教学准备+安全排查+后勤保障+学生返校情况报告
- 医保村卫生室管理制度
- 陕西从优 秀村干部中考录乡镇公务员考试真题
- 儿科学营养性vitD缺乏
- “党的二十届四中全会精神”专题题库及答案
- 《城市管理综合行政执法标准化指南(试行)》
- 涂料油漆工程施工技术方案
评论
0/150
提交评论