欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    SOA服务计算高级技术介绍.ppt

    • 资源ID:2933772       资源大小:8.15MB        全文页数:64页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    SOA服务计算高级技术介绍.ppt

    1,声明,本课件仅用于教学;本课件修改采用了一些网络资源(论文、研究报告、技术报告等),在采用的时候并没有准确标注引用信息。,2,服务计算高级技术介绍,中国科学院软件研究所2007年 8 月 31 日,3,内容提要,服务组合服务安全管理服务事务管理,4,服务组合简介,单个服务所能够提供的能力有限,通过组合可用的基本服务解决复杂问题服务组合可以加快应用开发速度,实现服务重用服务计算的最终目标是实现服务协同,5,服务组合需求,连接性保证服务组件之间的正确交互正确性保证组合服务特性的正确非功能属性考虑单个服务组件的安全、可靠性及性能特性可扩展性服务组合需要满足动态的需求,6,在Web服务协议栈的位置,BPEL,WS-CDL,UDDI,WSDL,SOAP,XML,XML Schema,HTTP,HTTPS,SMTP,TCP/IP,7,服务组合,服务编制(Orchestration)单一的控制点,服务编排(Choreography)定义多个端点之间的消息交换,8,编制(Orchestration),2.invoke,3.invoke,4.invoke,5.reply,1.receive,Web Service 1,Orchestration(Coordinator),从一个单控制端点的角度出发,描述了Web服务如何在消息层次执行交互,包括业务逻辑以及交互的执行顺序 代表了可执行的业务流程,可以建立长周期运行、事务的和多步骤的流程模型业务流程交互总是由参与流程的其中一个业务伙伴的角度出发进行控制,9,编排(Choreography),与多个业务端点之间的公共消息(全局可视性)交换、交互规则以及协议相关联 比服务编制更加具有协作特征 多个参与者的消息交换序列,包括客户、供应商和业务伙伴协议中的每个实体描述了交互中所承担的部分,但并不存在控制整个交互流程的单个实体,10,服务组合描述语言发展历史,BPML v0.4,WSFL,XLANG,BPML v1.0,WSCI v1.0,WSCI v1.0,WS-CDL 1st Public Working Draft,BPEL4WS v1.0,BPEL4WS v1.1,WS-BPEL 1.1,Jan 2000,Jan 2003,Jan 2002,Jan 2004,Jan 2001,BPMI.org,BPMI.org,BEA,Intalio,SAP,Sun,W3C notes,W3C Choreography WG,W3C WG formed,IBM,Microsoft,IBM,Microsoft,BEA,OASIS BPEL TC,OASIS BPEL TC,11,服务组合描述语言(WS-BPEL),综合了WSFL和XLANG的特点,结构化编程模型与传统流程模型的结合支持可执行业务流程与抽象业务流程主要活动和元素包括:消息流(,)控制流(,)数据流(,)协作关系(,),12,(activities)*activities=,WS-BPEL结构,13,示例:ATM之用例图,14,ATM之WS-BPEL流程示意,BankServer,Customer,ATMServicePT,ATMSupportPT,Authenticate,yes,No,Logon:=true,Logon:=false,Logon=true,Deposit,Error,OK,Withdraw,Transfer,Query,15,流程定义:,process使用name属性来给一个名称赋值,并用于建立流程定义相关的命名空间,16,协作关系:和,partnerLink元素建立了端口类型的服务(伙伴),将参与业务流程的执行过程,对于包含在流程中的每个伙伴服务,partnerLinkType元素在流程定义中确定了被partnerLink元素引用的WSDL portType元素,17,数据处理(1):,variables结构保存与即时工作流逻辑关联的状态信息messageType属性允许变量包含整个WSDL定义的消息,而 element属性完全引用了XSD元素结构。type属性能够用于仅代表XSD simpleType,如string或 integer,18,数据处理(2):,assign提供变量之间复制值的能力copy 结构可以处理各种数据传输函数。from 与 to 元素同样也可以包含可选的 part 与 query 属性,允许引用变量的特定的部分或特定的值,19,相关性:,correlationSets实现相关性,主要和进程实例的消息关联。消息可以属于多个correlationSets,property定义一个全局唯一的名称,并将其关联到一个XML Schema的简单类型,用以定义服务事理与消息之间的关联关系,20,进程交互活动(1):,receive 元素允许流程服务从外部客户端伙伴服务中接收请求的信息。在这个案例中,流程服务被视作是等待调用的服务提供者partnerLink:对应伙伴服务partnerLinks的定义portType:流程服务提供的portTypeoperation:会接收请求的流程服务操作variable:请求消息将会被存储在流程定义的variable 结构中createInstance:当这个属性被设置成“yes”的时候,将创建新的进程实例,21,进程交互活动(2):,识别伙伴服务的操作,这是流程定义在其执行过程中所要调用的操作partnerLink:提供操作的伙伴服务portType:定义伙伴服务的 portType 元素operation:流程服务需要发送请求到的伙伴服务操作inputVariable:输入参数所对应的variable定义outputVariable:返回值存储的variable定义,22,进程交互活动(3):,当制订了同步交换的时候,receive 元素需要有对应的 reply 元素。reply 元素负责返回响应消息到所要求的客户端伙伴服务。partnerLink:对应中的partnerLink元素portType:对应中的portType元素operation:对应中的operation操作variable:返回值存储的variable定义,23,结构化活动,:定义了一组顺序执行的活动:增加了的条件化逻辑switch 元素建立了条件逻辑的工作范围,当case结构中condition 属性解析为“true”的时候,定义在相应case 结构中的活动就被执行当所有前述的case 条件失败时,otherwise 结构中的活动就被执行:定义了循环执行的结构化活动:定义了需要并发执行的结构化活动:针对异步事件的定义和处理而设计OnMessage:类似 receive,定义一个活动来处理消息到达onAlarm:指定一个持续时间段,在其结束时触发警报,执行相关联的活动,24,作用域:,:作用域为嵌套在其中的活动提供上下文,并且也为其中的活动定义故障处理和补偿处理功能。作用域可以看作是一个可补偿的、可恢复的工作单元的封装CompensationHandler:作用域需要被补偿时运行的活动,包括显式补偿或隐式补偿FaultHandler:BPEL提供了机制以显式地捕获流程执行过程中的错误,通过执行FaultHandler元素中指定的子程序来处理这些错误 EventHandler:处理和响应异步事件,类似于pick活动,也包括OnMessage和OnAlarm,25,ATM的BPEL(片断1),26,ATM实例的BPEL(片断2),.,27,服务组合描述语言(WS-CDL),2004年4月由W3C发布 与BPEL从一个参与者的角度考虑交互模型不同,WS-CDL从全局视点出发考虑消息的交换交互(interactions)阐明了角色之间的信息交换单元。一个交互对应于在一个角色上进行的Web服务操作的调用,28,服务组合描述语言(WS-CDL),数据概念Variables:数据以variables进行建模,包括通道变量(channel variable)和角色状态变量(state variables)Tokens:用来表示组成变量的部分的别名,29,服务组合描述语言(WS-CDL),参与者和角色角色(Roles),定义了行为参与者(Participants)扮演一个或多个角色关系(Relationships)两个角色之间的关联,relationships,ParticipantI,ParticipantII,Play role(s),30,组合服务构造方法(1),静态和动态的服务组合 静态服务组合发生在设计阶段,要组合的组件经过选择,连接在一起,最后编译并部署;对于服务组件不再变化或很少变化的服务环境很有效 如果提供了新的服务,或者原来的服务需要被替换,就可能产生不一致。这种情况下,不可避免的要改变软件的结构,绑定到其他服务,甚至改变整个流程的定义。这时,静态的组合由于过于严格,不适应这种无法预料的变化。因此,需要在运行时能够对服务进行组合,31,组合服务构造方法(2),基于流程的服务组合方法模型驱动的组合服务构造:使用统一建模语言例如UML进行高层次建模,然后映射到WS-BPEL基于规则的服务组合:使用OCL(Object Constraint Language)来表达业务规则和流程。业务规则可以构造服务组合。结构化规则能指导流程的结构,数据规则能控制数据和消息的使用,行为规则能控制事件,资源规则能利用资源,异常规则能决定异常处理的行为,32,组合服务运行支撑-BPEL引擎,BPEL引擎主要提供服务组合的执行与管理功能。其主要功能是建立基于WS-BPEL标准的组合服务的解释与执行环境。BPEL引擎正是通过对WS-BPEL流程的部署与执行的支持,来实现服务编排以提供组成复杂、多步骤的组合服务的功能,从而支持企业内部和企业之间的动态业务流程集成,33,BPEL引擎基本原理,WS-BPEL可以看作是面向服务的编程语言,因此,BPEL引擎是BPEL程序的编译器和解释器。Java 源代码-Java Byte Code BPEL&WSDL文档-BPEL 对象JVM-装载class文件(Java字节码)解释执行BPEL引擎-从持久存储中反序列化BPEL 对象,进行解释执行,javac,deploy,34,BPEL引擎的基本功能单元,BPEL Compiler 将BPEL源文件(包括bpel、wsdl)编译成执行环境可以理解的内存对象形式 BPEL Runtime 执行BPEL流程,包括定义的异常处理与补偿操作,并提供相应的流程管理接口Integration负责将BPEL引擎与外部的Web Service容器进行集成,并负责BPEL引擎与外界通信和消息处理 Data Access 提供持久化支持,包括流程定义与流程实例的持久化 Management console 为用户提供可视化管理和监控平台。在此平台上,用户可以部署、管理和控制BPEL流程,35,BPEL 引擎结构,SOAP Engine,BpelProvider,Dispatcher,ProcessController,DAO,Manager,36,编译Java程序 v.s.部署 BPEL,37,BPEL结构,38,In-memory object model,39,BPEL加载:Dispatcher,ProcessInstance=BPELProcess+ProcessContext类似JVM使用ClassLoader加载类,BPEL引擎使用 Dispatcher来加载ProcessInstanceDispatcher查找在部署阶段已存储的 BPELProcess,在BPELProcess和 ProcessContext找到后,这些数据被发送给ProcessController,由其控制执行。,processContext,BPELProcess,processInstance,Dispatcher,ProcessController,40,ProcessContext,41,DAO,Data Access Object(DAO)是管理与数据源联系,获取和存储数据的接口DAO封装所有对BPELProcess 和 ProcessContext的访问.支持内存和持久化数据的存储和访问,MemoryDAO,File system,RDBMS,JMS,Dispatcher,42,解释执行控制器:ProcessController,43,如何使用,将BPEL引擎部署到Web容器中,例如Apache Tomcat将BPEL流程部署到BPEL引擎中,通过Web服务客户端调用即可激活一个BPEL流程实例,44,服务的安全管理,服务的安全管理简介服务的安全要求服务的安全问题服务的安全技术,45,服务的安全管理简介,Web服务体系结构是基于XML技术,应用程序通过消息交换进行集成,因此总是存在着消息被窃听、丢失或修改的风险。由于被交换信息的关键性,必须确保底层消息传递体系结构的安全可靠,46,服务的安全要求,信息的保密性:通过对主要信息进行加密处理,防止对信息的非法操作,以避免非法用户获取和解读原始数据身份认证:通过检查用户的凭据并根据权限验证这些凭据,找到与验证用户标志的过程数据的完整性:保证数据在传输的过程中不被意外或恶意地修改数据原发者的不可抵赖性:消息发送者在发送完数据后,对其所发送的数据不能抵赖授权:它是验证通过了身份认证的用户是否具有访问特定资源权限的过程,47,服务的安全问题(1),传输层安全问题非授权访问,即没有预先经过同意,就使用网络或计算机资源。它主要有以下几种形式:身份假冒、身份攻击、非法用户违法操作、合法用户以未授权方式进行操作等。信息遗漏丢失,敏感数据在有意或无意中被泄漏或丢失。破坏数据完整性,以非法手段窃得对数据的使用权,删除、修改、插入或重发某些重要信息,以取得有益于攻击者的响应;恶意添加、修改数据,以干扰用户的正常使用。拒绝服务攻击,通过发送大量的信息流量,使Web服务器、主机、路由器和其它网络设备负担过重。,48,服务的安全问题(2),SOAP安全问题SSLTLS不能保证端到端传输的安全性,SSI_TLS能保证点到点传输的安全性。但是,SOAP 消息在传输过程中可能经过中介体,如果中介体对传输信息进行任意修改,就破坏了信息完整性。即使在传输层中保证了端对端的安全要求,但如果传输的消息是原文,也极易受到黑客攻击。如果在应用程序中进行安全加密处理,又需要用户对加密算法有详细的了解,造成用户的额外负担。因此,需要在SOAP 中进行适当的安全扩展,使应用程序不用考虑过多的加密算法细节,以保证中间件独立性。即使传输层可以保证安全传输,但是不能保证信息驻留时也是安全的。如果消息保存后继续向前传输,驻留信息的安全十分重要。因此,也可以采用在SOAP 中加入扩展信息,以保证驻留信息的安全性,49,传输层的安全技术,基本身份验证:用户登录以明文将用户名和密码传给Web服务器,Web服务器在用户数据库中鉴别登录请求。由于用户名和密码以不加密的Base64编码形式传输,所以这种方法极不安全。SSL身份验证:与基本身份验证类似,但用户名和密码以安全套接字层SSL(Security Socket Layer)加密后再传递。摘要身份验:使用散列技术,将客户凭证安全地传给服务器。客户证书验证:客户证书验证要求每个用户都用与用户账号对应的证书。,50,SOAP安全技术(1),三个W3C的XML规范:XML数字签名(XML Digital Signature)描述了数字签名的XML表示以及计算、验证XML表示的数字签名的过程XML 加密(XML Encryption)描述了对数据的加密过程以及加密结果的XML表示XML密钥管理服务(XML Key Management Services)对密钥、证书进行管理,包括注册、分发、撤销等等,允许客户通过Web服务取得密钥信息,包括:XML密钥信息服务规范(X-KISS)XML密钥注册服务规范(X-KRSS),51,SOAP安全技术(2),WS-Security规范IBM、Microsoft、VeriSign于2002年4月联合发布。规范提供了一个SOAP扩展的标准集合,用于构造安全的Web服务时对一致性和机密性的实现WS-Security本身并不保证安全,也不提供一个完整的安全解决方案。只是一个灵活的构件块,用于和其他Web服务和特定应用的协议协作以适应于广泛的安全模型和加密技术WS-SecureConversation规范在WS-Security的基础上提供了安全会话上下文的建立和共享以及派生会话密钥的机制WS-Trust规范在WS-Security的基础上提供了安全令牌的请求和处理以及信任关系的管理,描述了Web服务的信任模型和处理流程,安全令牌颁发、验证和交换的消息语法,信任关系的评估方法。,52,SOAP安全技术(3),其他相关规范描述私隐保护的WS-Privacy描述异构联盟的WS-Federation描述授权的WS-Authorization,53,SOAP引擎中支持SOAP安全,将遵照SOAP安全相关技术规范实现的服务以handler的形式插入到执行控制器中,54,服务的事务管理,服务事务的基本概念服务的事务管理的主要问题服务的扩展事务模型服务事务规范,55,服务事务的基本概念,在Internet环境下,Web服务的出现对分布式事务提出了新的需求,并引发了一系列待解决的问题。Internet应用被包装为Web服务,Web服务在Web环境中不仅可被直接调用,而且可被组合链接成为企业流程。为了保证多个Web服务交互获得正确的、一致性的执行结果,有必要为Web服务提供事务支持,即Web服务事务机制。,56,服务的事务管理的主要问题,平面型事务模型实现的在支持Web服务事务时会面临很多困难,主要表现在以下几点:Web服务之间的松散藕合性Web服务事务不一定要遵守传统事务的ACID特性,尤其是原子性和隔离性Web服务事务参与者分布在Internet上,彼此的交互通过广域网进行,数据和管理都相对独立,在设计Web服务的流程和协议时,必须注意考虑管理和安全问题相比传统分布式事务,Web服务事务有着更高的可靠性和可用性要求,57,Web服务事务和传统事务的比较,58,服务的扩展事务规范,为了解决平面事务模型的不足,提出了各种扩展事务模型(Extended Transaction Model,在平面事务的基础上加入特定的应用语义,基于固定的控制和数据依赖,在不同方面放宽了对ACID特性的要求,以解决特定领域的问题。常见的扩展事务模型包括:嵌套事务模型(Nested Transactions)多层事务模型(Multi-Level Transactions)分支汇合事务模型(Split and Join Transactions)柔性事务模型(Flexible Transactions),59,服务事务规范(1),BTP是OASIS组织在2002年提出的一个面向Web应用、协调多个自主参与者的事务支持协议基于事务的两阶段提交,提出用两阶段终止协议(two-phase completion protocol)来解决web服务的事务问题定义了两种类型的扩展事务:原子(Atom):具有原子性,即事务中的操作要么全部执行,要么全部不执行。内聚(Cohesion):放宽了原子性的要求,60,服务事务规范(2),WS-C/WS-TIBM、Microsoft于2002年8月发布建立在SOAP、WSDL等Web服务的标准之上。在满足传统事务ACID性质的基础上引入协调器(Coordinator),扩展了现有的事务处理技术,提出了适用于Web服务的协同工作框架及协议定义了两种协调类型:原子事务(Atomic Transaction)和业务活动(Business Activity)优点在于协调框架和事务类型的分开,具有良好的可扩展性,61,服务协调规范(WS-Coordination),为了在Web服务环境中复制上下文信息,将活动传播给其它服务或者注册协调协议时需要该上下文 主要包括:激活:为特定协议和相关应用创建协调者 注册:一旦协调者被初始化,而且激活服务创建了相应的上下文,一个注册服务就会被创建 完成:客户端应用通常扮演结束者的角色,驱动协议的完成并接收返回结果上下文:协调的关键,包含了参与到协议中的服务的必要信息,62,Sun公司提出了coordination,transaction和context的规范,并把它们合成Web服务组合应用程序框架WS-CAF Web Service Context(WS-Context):一个用于简单上下文管理的轻量级框架Web Service Coordination Framework(WS-CF):定义了协调程序的行为,借助这个协调程序,Web services可以注册上下文扩大和结果传播,以此为基础可以插入各种事务协议Web Services Transaction Management(WS-TXM):定义三种类型的事务:ACID事务:即传统的ACID事务长时间活动LRA(Long Running Action),不具有ACID属性,但是仍然具有原子性。和WS-T的BA非常相似,也使用补偿事务业务流程BP(Business Process):复杂的业务处理相比前面两种规范,WS-CAF有优势。WS-CAF能够处理Heuristics。WS-TXM 定义的三种事务类型,使得它可以兼容传统的ACID事务;业务流程(BP)提供了良好的扩展性,服务事务规范(3),63,组合服务的事务特性保障,事务支持:基于Web服务事务规范,扩展的WS-BPEL的事务支持特性,支持Web服务组合流程的实时在线事务与长事务,提供服务组合流程执行的事务特性保障,64,Q&A,

    注意事项

    本文(SOA服务计算高级技术介绍.ppt)为本站会员(文库蛋蛋多)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开