SOA服务计算高级技术介绍.ppt_第1页
SOA服务计算高级技术介绍.ppt_第2页
SOA服务计算高级技术介绍.ppt_第3页
SOA服务计算高级技术介绍.ppt_第4页
SOA服务计算高级技术介绍.ppt_第5页
免费预览已结束,剩余59页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中国科学院软件研究所 institute of software,chinese academy of sciences 声明 本课件仅用于教学; 本课件修改采用了一些网络资源(论文、研究 报告、技术报告等),在采用的时候并没有准 确标注引用信息。 1 中国科学院软件研究所 institute of software,chinese academy of sciences 服务计算高级技术介绍 中国科学院软件研究所 2007年 8 月 31 日 2 中国科学院软件研究所 institute of software,chinese academy of sciences 内容提要 服务组合 服务安全管理 服务事务管理 3 中国科学院软件研究所 institute of software,chinese academy of sciences 服务组合简介 单个服务所能够提供的能力有限,通过组合可 用的基本服务解决复杂问题 服务组合可以加快应用开发速度,实现服务重 用 服务计算的最终目标是实现服务协同 4 中国科学院软件研究所 institute of software,chinese academy of sciences 服务组合需求 连接性 保证服务组件之间的正确交互 正确性 保证组合服务特性的正确 非功能属性 考虑单个服务组件的安全、可靠性及性能特性 可扩展性 服务组合需要满足动态的需求 5 中国科学院软件研究所 institute of software,chinese academy of sciences 在web服务协议栈的位置 service composition service publication discovery service description xml-based messaging data encoding transport internet/intranet security qos management bpel,ws-cdl uddi wsdl soap xml,xml schema http,https,smtp tcp/ip 6 中国科学院软件研究所 institute of software,chinese academy of sciences 服务组合 服务编制 (orchestration) 单一的控制点 服务编排( choreography) 定义多个端点之间 的消息交换 7 中国科学院软件研究所 institute of software,chinese academy of sciences 编制(orchestration) 2.invoke 3.invoke 4.invoke 5.reply 1.receive web service 1 web service 2 orchestration (coordinator) web service 4 web service 3 从一个单控制端点的角度出发,描述了web服务如何在消息 层次执行交互,包括业务逻辑以及交互的执行顺序 代表了可执行的业务流程,可以建立长周期运行、事务的和 多步骤的流程模型 业务流程交互总是由参与流程的其中一个业务伙伴的角度出 发进行控制 8 中国科学院软件研究所 institute of software,chinese academy of sciences 编排(choreography) 2.invoke 5.invoke 4.invoke 3.reply 1.receive choreography webservice1 webservice2 webservice3 webservice4 与多个业务端点之间的公共消息(全局可视性)交换、交互 规则以及协议相关联 比服务编制更加具有协作特征 多个参与者的消息交换序列,包括客户、供应商和业务伙伴 协议中的每个实体描述了交互中所承担的部分,但并不存在 控制整个交互流程的单个实体 9 中国科学院软件研究所 institute of software,chinese academy of sciences 服务组合描述语言发展历史 bpml v0.4bpml v0.4 wsflwsfl xlangxlang bpml v1.0bpml v1.0 wsci v1.0wsci v1.0wsci v1.0wsci v1.0 ws-cdl 1st public ws-cdl 1st public working draftworking draft bpel4ws bpel4ws v1.0v1.0 bpel4ws bpel4ws v1.1v1.1 ws-bpel 1.1ws-bpel 1.1 jan 2000jan 2003jan 2002jan 2004jan 2001 bpmi.orgbpmi.org bea, intalio, sap, sunw3c notesw3c choreography wg w3c wg formed ibm microsoft ibm, microsoft, beaoasis bpel tc oasis bpel tc 10 中国科学院软件研究所 institute of software,chinese academy of sciences 服务组合描述语言(ws-bpel) 综合了wsfl和xlang的特点,结构化编程模型与传统 流程模型的结合 支持可执行业务流程与抽象业务流程 主要活动和元素包括: 消息流(,) 控制流(,) 数据流(,) 协作关系(, ) 11 中国科学院软件研究所 institute of software,chinese academy of sciences (activities)* activities = , , , , , , , , , , , , , , process state exception handling events partner/role definitions instance matching process flow transaction management ws-bpel结构 12 中国科学院软件研究所 institute of software,chinese academy of sciences 示例:atm之用例图 13 中国科学院软件研究所 institute of software,chinese academy of sciences atm之ws-bpel流程示意 bank server customer atm servicept atm supportpt authenticate yesno logon:=truelogon:=false logon=true deposit error okwithdraw transfer query 14 中国科学院软件研究所 institute of software,chinese academy of sciences 流程定义: process使用name属性来给一个名称赋值,并用于建立流 程定义相关的命名空间 15 中国科学院软件研究所 institute of software,chinese academy of sciences 协作关系:和 partnerlink元素建立了端口类型的服务(伙伴),将参与业务流程 的执行过程 对于包含在流程中的每个伙伴服务,partnerlinktype元素在流程定 义中确定了被partnerlink元素引用的wsdl porttype元素 16 中国科学院软件研究所 institute of software,chinese academy of sciences 数据处理(1): variables结构保存与即时工作流逻辑关联的状态信息 messagetype属性允许变量包含整个wsdl定义的消息,而 element属性完全引用了xsd元素结构。type属性能够用于 仅代表xsd simpletype,如string或 integer 17 中国科学院软件研究所 institute of software,chinese academy of sciences 数据处理(2): assign提供变量之间复制值的能力 copy 结构可以处理各种数据传输函数。 from 与 to 元素 同样也可以包含可选的 part 与 query 属性,允许引用变 量的特定的部分或特定的值 18 中国科学院软件研究所 institute of software,chinese academy of sciences 相关性: correlationsets实现相关性,主要和进程实例的消息关 联。消息可以属于多个correlationsets property定义一个全局唯一的名称,并将其关联到一个 xml schema的简单类型,用以定义服务事理与消息之间的 关联关系 19 中国科学院软件研究所 institute of software,chinese academy of sciences 进程交互活动(1): receive 元素允许流程服务从外部客户端伙伴服务中接收 请求的信息。在这个案例中,流程服务被视作是等待调用 的服务提供者 partnerlink:对应伙伴服务partnerlinks的定义 porttype:流程服务提供的porttype operation:会接收请求的流程服务操作 variable:请求消息将会被存储在流程定义的variable 结构中 createinstance:当这个属性被设置成“yes”的时候,将创建新的 进程实例 20 中国科学院软件研究所 institute of software,chinese academy of sciences 进程交互活动(2): 识别伙伴服务的操作,这是流程定义在其执行过程中所要 调用的操作 partnerlink:提供操作的伙伴服务 porttype:定义伙伴服务的 porttype 元素 operation:流程服务需要发送请求到的伙伴服务操作 inputvariable:输入参数所对应的variable定义 outputvariable:返回值存储的variable定义 21 中国科学院软件研究所 institute of software,chinese academy of sciences 进程交互活动(3): 当制订了同步交换的时候,receive 元素需要有对应的 reply 元素。reply 元素负责返回响应消息到所要求的客户 端伙伴服务。 partnerlink:对应中的partnerlink元素 porttype:对应中的porttype元素 operation:对应中的operation操作 variable:返回值存储的variable定义 22 中国科学院软件研究所 institute of software,chinese academy of sciences 结构化活动 :定义了一组顺序执行的活动 :增加了的条件化逻辑 switch 元素建立了条件逻辑的工作范围,当case结构中 condition 属性解析为“true”的时候,定义在相应case 结构中 的活动就被执行 当所有前述的case 条件失败时,otherwise 结构中的活动就被执 行 :定义了循环执行的结构化活动 :定义了需要并发执行的结构化活动 :针对异步事件的定义和处理而设计 onmessage:类似 receive, 定义一个活动来处理消息到达 onalarm:指定一个持续时间段,在其结束时触发警报,执行相关 联的活动 23 中国科学院软件研究所 institute of software,chinese academy of sciences 作用域: :作用域为嵌套在其中的活动提供上下文 ,并且也为其中的活动定义故障处理和补偿处理 功能。作用域可以看作是一个可补偿的、可恢复 的工作单元的封装 compensationhandler:作用域需要被补偿时运行的活 动,包括显式补偿或隐式补偿 faulthandler:bpel提供了机制以显式地捕获流程执行 过程中的错误,通过执行faulthandler元素中指定的 子程序来处理这些错误 eventhandler:处理和响应异步事件,类似于pick活 动,也包括onmessage和onalarm 24 中国科学院软件研究所 institute of software,chinese academy of sciences atm的bpel(片断1) 25 中国科学院软件研究所 institute of software,chinese academy of sciencesatm实例的bpel(片断2) . 26 中国科学院软件研究所 institute of software,chinese academy of sciences 服务组合描述语言(ws-cdl) 2004年4月由w3c发布 与bpel从一个参与者的角度考虑交互模型不同 ,ws-cdl从全局视点出发考虑消息的交换 交互(interactions)阐明了角色之间的信息 交换单元。一个交互对应于在一个角色上进行 的web服务操作的调用 27 中国科学院软件研究所 institute of software,chinese academy of sciences 服务组合描述语言(ws-cdl) 数据概念 variables:数据以 variables进行建模 ,包括 通道变量(channel variable) 和角色状态变 量(state variables) tokens:用来表示组成变量 的部分的别名 informationtype tokensvariables type xml schema other type system ref token orderid messageslocators 28 中国科学院软件研究所 institute of software,chinese academy of sciences 服务组合描述语言(ws-cdl) 参与者和角色 角色(roles),定义了行为 参与者(participants)扮 演一个或多个角色 关系(relationships)两个 角色之间的关联 role 1 behavior a role 2 behavior x relationships participant i participant ii play role (s) 29 中国科学院软件研究所 institute of software,chinese academy of sciences 组合服务构造方法(1) 静态和动态的服务组合 静态服务组合发生在设计阶段,要组合的组件经过选 择,连接在一起,最后编译并部署;对于服务组件不 再变化或很少变化的服务环境很有效 如果提供了新的服务,或者原来的服务需要被替换, 就可能产生不一致。这种情况下,不可避免的要改变 软件的结构,绑定到其他服务,甚至改变整个流程的 定义。这时,静态的组合由于过于严格,不适应这种 无法预料的变化。因此,需要在运行时能够对服务进 行组合 30 中国科学院软件研究所 institute of software,chinese academy of sciences 组合服务构造方法(2) 基于流程的服务组合方法 模型驱动的组合服务构造:使用统一建模语言例如uml进 行高层次建模,然后映射到ws-bpel 基于规则的服务组合:使用ocl(object constraint language)来表达业务规则和流程。业务规则可以构造 服务组合。结构化规则能指导流程的结构,数据规则能 控制数据和消息的使用,行为规则能控制事件,资源规 则能利用资源,异常规则能决定异常处理的行为 31 中国科学院软件研究所 institute of software,chinese academy of sciences 组合服务运行支撑-bpel引擎 bpel引擎主要提供服务组合的执行与管理功能。其主要 功能是建立基于ws-bpel标准的组合服务的解释与执行 环境。 bpel引擎正是通过对ws-bpel流程的部署与执行的支持 ,来实现服务编排以提供组成复杂、多步骤的组合服务的 功能,从而支持企业内部和企业之间的动态业务流程集成 32 中国科学院软件研究所 institute of software,chinese academy of sciences bpel引擎基本原理 ws-bpel可以看作是面向服务的编程语言,因此, bpel引擎是bpel程序的编译器和解释器。 java 源代码 - java byte code bpel&wsdl文档 - bpel 对象 jvm-装载class文件(java字节码)解释执行 bpel引擎- 从持久存储中反序列化bpel 对象,进行解释 执行 javac deploy 33 中国科学院软件研究所 institute of software,chinese academy of sciences bpel引擎的基本功能单元 bpel compiler 将bpel源文件(包括bpel、wsdl)编译成执行环境可以 理解的内存对象形式 bpel runtime 执行bpel流程,包括定义的异常处理与补偿操作,并提供相 应的流程管理接口 integration 负责将bpel引擎与外部的web service容器进行集成,并负 责bpel引擎与外界通信和消息处理 data access 提供持久化支持,包括流程定义与流程实例的持久化 management console 为用户提供可视化管理和监控平台。在此平台上,用户可 以部署、管理和控制bpel流程 34 中国科学院软件研究所 institute of software,chinese academy of sciences bpel 引擎结构 soap enginesoap engine bpelproviderbpelprovider dispatcherdispatcher processprocess controllercontroller daodao managermanager 35 中国科学院软件研究所 institute of software,chinese academy of sciences 编译java程序 v.s. 部署 bpel lexical and lexical and syntactical syntactical analysisanalysis static static semantic semantic checkingchecking generating byte generating byte codecode xml parsing , data binding static binding and checking in memory object model 36 中国科学院软件研究所 institute of software,chinese academy of sciences bpel结构 37 中国科学院软件研究所 institute of software,chinese academy of sciences in-memory object model process partnerlinks variables reply flow sequence receive receiveinvoke correlati onsets xxxhandler 38 中国科学院软件研究所 institute of software,chinese academy of sciences bpel加载: dispatcher processinstance=bpelprocess + processcontext 类似jvm使用classloader加载类, bpel引擎使用 dispatcher来加载 processinstance dispatcher查找在部署阶段已存储的 bpelprocess,在bpelprocess和 processcontext找到后,这些数据被 发送给processcontroller,由其控制 执行。 process context bpelprocess processinstance dispatcher processcontroller 39 中国科学院软件研究所 institute of software,chinese academy of sciences processcontext statestate related resourcerelated resource activitycontextactivitycontext processcontextprocesscontext variable valuevariable value correlation valuecorrelation value threadsthreads current messagecurrent message statestate ac mapac map otherother statestate related resourcerelated resource activitycontextactivitycontext statestate related resourcerelated resource activitycontextactivitycontext statestate related resourcerelated resource activitycontextactivitycontext 40 中国科学院软件研究所 institute of software,chinese academy of sciences dao data access object (dao) 是管理 与数据源联系,获取和存储数据的 接口 dao封装所有对bpelprocess 和 processcontext的访问. 支持内存和持久化数据的存储和访 问 memorydaomemorydao ? ? ? ? ? ? ? ? ? persistent persistent daodao file system rdbms jms dispatcherdispatcher 41 中国科学院软件研究所 institute of software,chinese academy of sciences 解释执行控制器: processcontroller processcontext activitycontext activitycontext activitycontext activitycontext activitycontext processcontroller acceptprocess acceptprocess acceptprocess 42 中国科学院软件研究所 institute of software,chinese academy of sciences 如何使用 将bpel引擎部署到web容器中,例如apache tomcat 将bpel流程部署到bpel引擎中,通过web服 务客户端调用即可激活一个bpel流程实例 43 中国科学院软件研究所 institute of software,chinese academy of sciences 服务的安全管理 服务的安全管理简介 服务的安全要求 服务的安全问题 服务的安全技术 44 中国科学院软件研究所 institute of software,chinese academy of sciences 服务的安全管理简介 web服务体系结构是基于xml技术,应用程序通 过消息交换进行集成,因此总是存在着消息被 窃听、丢失或修改的风险。由于被交换信息的 关键性,必须确保底层消息传递体系结构的安 全可靠 45 中国科学院软件研究所 institute of software,chinese academy of sciences 服务的安全要求 信息的保密性:通过对主要信息进行加密处理,防止 对信息的非法操作,以避免非法用户获取和解读原始 数据 身份认证:通过检查用户的凭据并根据权限验证这些 凭据,找到与验证用户标志的过程 数据的完整性:保证数据在传输的过程中不被意外或 恶意地修改 数据原发者的不可抵赖性:消息发送者在发送完数据 后,对其所发送的数据不能抵赖 授权:它是验证通过了身份认证的用户是否具有访问 特定资源权限的过程 46 中国科学院软件研究所 institute of software,chinese academy of sciences 服务的安全问题(1) 传输层安全问题 非授权访问,即没有预先经过同意,就使用网络或计算机资 源。它主要有以下几种形式:身份假冒、身份攻击、非法用 户违法操作、合法用户以未授权方式进行操作等。 信息遗漏丢失,敏感数据在有意或无意中被泄漏或丢失。 破坏数据完整性,以非法手段窃得对数据的使用权,删除、 修改、插入或重发某些重要信息,以取得有益于攻击者的响 应;恶意添加、修改数据,以干扰用户的正常使用。 拒绝服务攻击,通过发送大量的信息流量,使web服务器、主 机、路由器和其它网络设备负担过重。 47 中国科学院软件研究所 institute of software,chinese academy of sciences 服务的安全问题(2) soap安全问题 ssltls不能保证端到端传输的安全性,ssi_tls能保证点到点 传输的安全性。但是,soap 消息在传输过程中可能经过中介体, 如果中介体对传输信息进行任意修改,就破坏了信息完整性。 即使在传输层中保证了端对端的安全要求,但如果传输的消息是 原文,也极易受到黑客攻击。如果在应用程序中进行安全加密处 理,又需要用户对加密算法有详细的了解,造成用户的额外负担 。因此,需要在soap 中进行适当的安全扩展,使应用程序不用考 虑过多的加密算法细节,以保证中间件独立性。 即使传输层可以保证安全传输,但是不能保证信息驻留时也是安 全的。如果消息保存后继续向前传输,驻留信息的安全十分重要 。因此,也可以采用在soap 中加入扩展信息,以保证驻留信息的 安全性 48 中国科学院软件研究所 institute of software,chinese academy of sciences 传输层的安全技术 基本身份验证:用户登录以明文将用户名和密码传给web 服务器,web服务器在用户数据库中鉴别登录请求。由于 用户名和密码以不加密的base64编码形式传输,所以这种 方法极不安全。 ssl身份验证:与基本身份验证类似,但用户名和密码以 安全套接字层ssl(security socket layer)加密后再传递 。 摘要身份验:使用散列技术,将客户凭证安全地传给服务 器。 客户证书验证:客户证书验证要求每个用户都用与用户账 号对应的证书。 49 中国科学院软件研究所 institute of software,chinese academy of sciences soap安全技术(1) 三个w3c的xml规范: xml数字签名(xml digital signature) 描述了数字签名的xml表示以及计算、验证xml表示的 数字签名的过程 xml 加密(xml encryption) 描述了对数据的加密过程以及加密结果的xml表示 xml密钥管理服务(xml key management services) 对密钥、证书进行管理,包括注册、分发、撤销等等 ,允许客户通过web服务取得密钥信息,包括: nxml密钥信息服务规范(x-kiss) nxml密钥注册服务规范(x-krss) 50 中国科学院软件研究所 institute of software,chinese academy of sciences soap安全技术(2) ws-security规范 ibm、microsoft、verisign于2002年4月联合发布。规 范提供了一个soap扩展的标准集合,用于构造安全的 web服务时对一致性和机密性的实现 ws-security本身并不保证安全,也不提供一个完整的 安全解决方案。只是一个灵活的构件块,用于和其他 web服务和特定应用的协议协作以适应于广泛的安全模 型和加密技术 ws-secureconversation规范 在ws-security的基础上提供了安全会话上下文的建立 和共享以及派生会话密钥的机制 ws-trust规范 在ws-security的基础上提供了安全令牌的请求和处理 以及信任关系的管理,描述了web服务的信任模型和处 理流程,安全令牌颁发、验证和交换的消息语法,信 任关系的评估方法。 51 中国科学院软件研究所 institute of software,chinese academy of sciences soap安全技术(3) 其他相关规范 描述私隐保护的ws-privacy 描述异构联盟的ws-federation 描述授权的ws-authorization 52 中国科学院软件研究所 institute of software,chinese academy of sciences soap引擎中支持soap安全 将遵照soap安全相关技术规范实现的服务以 handler的形式插入到执行控制器中 53 中国科学院软件研究所 institute of software,chinese academy of sciences 服务的事务管理 服务事务的基本概念 服务的事务管理的主要问题 服务的扩展事务模型 服务事务规范 54 中国科学院软件研究所 institute of software,chinese academy of sciences 服务事务的基本概念 在internet环境下,web服务的出现对分布式事务提出 了新的需求,并引发了一系列待解决的问题。 internet应用被包装为web服务,web服务在web环境中 不仅可被直接调用,而且可被组合链接成为企业流程 。为了保证多个web服务交互获得正确的、一致性的执 行结果,有必要为web服务提供事务支持,即web服务 事务机制。 55 中国科学院软件研究所 institute of software,chinese academy of sciences 服务的事务管理的主要问题 平面型事务模型实现的在支持web服务事务时 会面临很多困难,主要表现在以下几点: web服务之间的松散藕合性 web服务事务不一定要遵守传统事务的acid特性, 尤其是原子性和隔离性 web服务事务参与者分布在internet上,彼此的交 互通过广域网进行,数据和管理都相对独立,在设 计web服务的流程和协议时,必须注意考虑管理和 安全问题 相比传统分布式事务,web服务事务有着更高的可 靠性和可用性要求 56 中国科学院软件研究所 institute of software,chinese academy of sciences web服务事务和传统事务的比较 传统事务web服务事务 原子性 (atomicity) 必需,事务的操作要么全 部生效,要么全部不生效 放宽,情况允许的话尽 量满足原子性的要求 一致性 (consistency) 必需必需 独立性 (isolation) 必需,事务产生的效果, 只有在事务完成后,其他 事务才可见 放宽 持久性 (durability) 必需,事务效果永久保持必需,由原子性决定永 久保存的集合 57 中国科学院软件研究所 institute of software,chinese academy of sciences 服务的扩展事务规范 为了解决平面事务模型的不足,提出了各种扩 展事务模型(extended transaction model, 在平面事务的基础上加入特定的应用语义,基 于固定的控制和数据依赖,在不同方面放宽了 对acid特性的要求,以解决特定领域的问题。 常见的扩展事务模型包括: 嵌套事务模型(nested transactions) 多层事务模型(multi-level transactions) 分支汇合事务模型(split and join transactions) 柔性事务模型(flexible transactions) 58 中国科学院软件研究所 institute of software,chinese academy of sciences 服务事务规范(1) btp 是oasis组织在2002年提出的一个面向web应用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论