SOA高级技术培训.ppt
- 文档编号:1410560
- 上传时间:2022-10-22
- 格式:PPT
- 页数:64
- 大小:4.88MB
SOA高级技术培训.ppt
《SOA高级技术培训.ppt》由会员分享,可在线阅读,更多相关《SOA高级技术培训.ppt(64页珍藏版)》请在冰豆网上搜索。
1,声明,本课件仅用于教学;本课件修改采用了一些网络资源(论文、研究报告、技术报告等),在采用的时候并没有准确标注引用信息。
1,2,服务计算高级技术介绍,中国科学院软件研究所2007年8月31日,2,3,内容提要,服务组合服务安全管理服务事务管理,3,4,服务组合简介,单个服务所能够提供的能力有限,通过组合可用的基本服务解决复杂问题服务组合可以加快应用开发速度,实现服务重用服务计算的最终目标是实现服务协同,4,5,服务组合需求,连接性保证服务组件之间的正确交互正确性保证组合服务特性的正确非功能属性考虑单个服务组件的安全、可靠性及性能特性可扩展性服务组合需要满足动态的需求,5,6,在Web服务协议栈的位置,BPEL,WS-CDL,UDDI,WSDL,SOAP,XML,XMLSchema,HTTP,HTTPS,SMTP,TCP/IP,6,7,服务组合,服务编制(Orchestration)单一的控制点,服务编排(Choreography)定义多个端点之间的消息交换,7,8,编制(Orchestration),2.invoke,3.invoke,4.invoke,5.reply,1.receive,WebService1,Orchestration(Coordinator),从一个单控制端点的角度出发,描述了Web服务如何在消息层次执行交互,包括业务逻辑以及交互的执行顺序代表了可执行的业务流程,可以建立长周期运行、事务的和多步骤的流程模型业务流程交互总是由参与流程的其中一个业务伙伴的角度出发进行控制,8,9,编排(Choreography),与多个业务端点之间的公共消息(全局可视性)交换、交互规则以及协议相关联比服务编制更加具有协作特征多个参与者的消息交换序列,包括客户、供应商和业务伙伴协议中的每个实体描述了交互中所承担的部分,但并不存在控制整个交互流程的单个实体,9,10,服务组合描述语言发展历史,BPMLv0.4,WSFL,XLANG,BPMLv1.0,WSCIv1.0,WSCIv1.0,WS-CDL1stPublicWorkingDraft,BPEL4WSv1.0,BPEL4WSv1.1,WS-BPEL1.1,Jan2000,Jan2003,Jan2002,Jan2004,Jan2001,BPMI.org,BPMI.org,BEA,Intalio,SAP,Sun,W3Cnotes,W3CChoreographyWG,W3CWGformed,IBM,Microsoft,IBM,Microsoft,BEA,OASISBPELTC,OASISBPELTC,11,服务组合描述语言(WS-BPEL),综合了WSFL和XLANG的特点,结构化编程模型与传统流程模型的结合支持可执行业务流程与抽象业务流程主要活动和元素包括:
消息流(,)控制流(,)数据流(,)协作关系(,),11,12,(activities)*activities=,WS-BPEL结构,12,13,示例:
ATM之用例图,13,14,ATM之WS-BPEL流程示意,BankServer,Customer,ATMServicePT,ATMSupportPT,Authenticate,yes,No,Logon:
=true,Logon:
=false,Logon=true,Deposit,Error,OK,Withdraw,Transfer,Query,14,15,流程定义:
process使用name属性来给一个名称赋值,并用于建立流程定义相关的命名空间,15,16,协作关系:
和,partnerLink元素建立了端口类型的服务(伙伴),将参与业务流程的执行过程,对于包含在流程中的每个伙伴服务,partnerLinkType元素在流程定义中确定了被partnerLink元素引用的WSDLportType元素,16,17,数据处理
(1):
variables结构保存与即时工作流逻辑关联的状态信息messageType属性允许变量包含整个WSDL定义的消息,而element属性完全引用了XSD元素结构。
type属性能够用于仅代表XSDsimpleType,如string或integer,17,18,数据处理
(2):
assign提供变量之间复制值的能力copy结构可以处理各种数据传输函数。
from与to元素同样也可以包含可选的part与query属性,允许引用变量的特定的部分或特定的值,18,19,相关性:
correlationSets实现相关性,主要和进程实例的消息关联。
消息可以属于多个correlationSets,property定义一个全局唯一的名称,并将其关联到一个XMLSchema的简单类型,用以定义服务事理与消息之间的关联关系,19,20,进程交互活动
(1):
receive元素允许流程服务从外部客户端伙伴服务中接收请求的信息。
在这个案例中,流程服务被视作是等待调用的服务提供者partnerLink:
对应伙伴服务partnerLinks的定义portType:
流程服务提供的portTypeoperation:
会接收请求的流程服务操作variable:
请求消息将会被存储在流程定义的variable结构中createInstance:
当这个属性被设置成“yes”的时候,将创建新的进程实例,20,21,进程交互活动
(2):
识别伙伴服务的操作,这是流程定义在其执行过程中所要调用的操作partnerLink:
提供操作的伙伴服务portType:
定义伙伴服务的portType元素operation:
流程服务需要发送请求到的伙伴服务操作inputVariable:
输入参数所对应的variable定义outputVariable:
返回值存储的variable定义,21,22,进程交互活动(3):
当制订了同步交换的时候,receive元素需要有对应的reply元素。
reply元素负责返回响应消息到所要求的客户端伙伴服务。
partnerLink:
对应中的partnerLink元素portType:
对应中的portType元素operation:
对应中的operation操作variable:
返回值存储的variable定义,22,23,结构化活动,:
定义了一组顺序执行的活动:
增加了的条件化逻辑switch元素建立了条件逻辑的工作范围,当case结构中condition属性解析为“true”的时候,定义在相应case结构中的活动就被执行当所有前述的case条件失败时,otherwise结构中的活动就被执行:
定义了循环执行的结构化活动:
定义了需要并发执行的结构化活动:
针对异步事件的定义和处理而设计OnMessage:
类似receive,定义一个活动来处理消息到达onAlarm:
指定一个持续时间段,在其结束时触发警报,执行相关联的活动,23,24,作用域:
:
作用域为嵌套在其中的活动提供上下文,并且也为其中的活动定义故障处理和补偿处理功能。
作用域可以看作是一个可补偿的、可恢复的工作单元的封装CompensationHandler:
作用域需要被补偿时运行的活动,包括显式补偿或隐式补偿FaultHandler:
BPEL提供了机制以显式地捕获流程执行过程中的错误,通过执行FaultHandler元素中指定的子程序来处理这些错误EventHandler:
处理和响应异步事件,类似于pick活动,也包括OnMessage和OnAlarm,24,25,ATM的BPEL(片断1),25,26,ATM实例的BPEL(片断2),.,26,27,服务组合描述语言(WS-CDL),2004年4月由W3C发布与BPEL从一个参与者的角度考虑交互模型不同,WS-CDL从全局视点出发考虑消息的交换交互(interactions)阐明了角色之间的信息交换单元。
一个交互对应于在一个角色上进行的Web服务操作的调用,27,28,服务组合描述语言(WS-CDL),数据概念Variables:
数据以variables进行建模,包括通道变量(channelvariable)和角色状态变量(statevariables)Tokens:
用来表示组成变量的部分的别名,28,29,服务组合描述语言(WS-CDL),参与者和角色角色(Roles),定义了行为参与者(Participants)扮演一个或多个角色关系(Relationships)两个角色之间的关联,relationships,ParticipantI,ParticipantII,Playrole(s),29,30,组合服务构造方法
(1),静态和动态的服务组合静态服务组合发生在设计阶段,要组合的组件经过选择,连接在一起,最后编译并部署;对于服务组件不再变化或很少变化的服务环境很有效如果提供了新的服务,或者原来的服务需要被替换,就可能产生不一致。
这种情况下,不可避免的要改变软件的结构,绑定到其他服务,甚至改变整个流程的定义。
这时,静态的组合由于过于严格,不适应这种无法预料的变化。
因此,需要在运行时能够对服务进行组合,30,31,组合服务构造方法
(2),基于流程的服务组合方法模型驱动的组合服务构造:
使用统一建模语言例如UML进行高层次建模,然后映射到WS-BPEL基于规则的服务组合:
使用OCL(ObjectConstraintLanguage)来表达业务规则和流程。
业务规则可以构造服务组合。
结构化规则能指导流程的结构,数据规则能控制数据和消息的使用,行为规则能控制事件,资源规则能利用资源,异常规则能决定异常处理的行为,31,32,组合服务运行支撑-BPEL引擎,BPEL引擎主要提供服务组合的执行与管理功能。
其主要功能是建立基于WS-BPEL标准的组合服务的解释与执行环境。
BPEL引擎正是通过对WS-BPEL流程的部署与执行的支持,来实现服务编排以提供组成复杂、多步骤的组合服务的功能,从而支持企业内部和企业之间的动态业务流程集成,32,33,BPEL引擎基本原理,WS-BPEL可以看作是面向服务的编程语言,因此,BPEL引擎是BPEL程序的编译器和解释器。
Java源代码-JavaByteCodeBPEL&WSDL文档-BPEL对象JVM-装载class文件(Java字节码)解释执行BPEL引擎-从持久存储中反序列化BPEL对象,进行解释执行,javac,deploy,33,34,BPEL引擎的基本功能单元,BPELCompiler将BPEL源文件(包括bpel、wsdl)编译成执行环境可以理解的内存对象形式BPELRuntime执行BPEL流程,包括定义的异常处理与补偿操作,并提供相应的流程管理接口Integration负责将BPEL引擎与外部的WebService容器进行集成,并负责BPEL引擎与外界通信和消息处理DataAccess提供持久化支持,包括流程定义与流程实例的持久化Managementconsole为用户提供可视化管理和监控平台。
在此平台上,用户可以部署、管理和控制BPEL流程,34,35,BPEL引擎结构,SOAPEngine,BpelProvider,Dispatcher,ProcessController,DAO,Manager,35,36,编译Java程序v.s.部署BPEL,36,37,BPEL结构,37,38,In-memoryobjectmodel,38,39,BPEL加载:
Dispatcher,ProcessInstance=BPELProcess+ProcessContext类似JVM使用ClassLoader加载类,BPEL引擎使用Dispatcher来加载ProcessInstanceDispatcher查找在部署阶段已存储的BPELProcess,在BPELProcess和ProcessContext找到后,这些数据被发送给Process
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SOA 高级 技术培训
![提示](https://static.bdocx.com/images/bang_tan.gif)