SOA高级技术培训 PPT课件_第1页
SOA高级技术培训 PPT课件_第2页
SOA高级技术培训 PPT课件_第3页
SOA高级技术培训 PPT课件_第4页
SOA高级技术培训 PPT课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

1 声明 本课件仅用于教学 本课件修改采用了一些网络资源 论文 研究报告 技术报告等 在采用的时候并没有准确标注引用信息 2 服务计算高级技术介绍 中国科学院软件研究所2007年8月31日 3 内容提要 服务组合服务安全管理服务事务管理 4 服务组合简介 单个服务所能够提供的能力有限 通过组合可用的基本服务解决复杂问题服务组合可以加快应用开发速度 实现服务重用服务计算的最终目标是实现服务协同 5 服务组合需求 连接性保证服务组件之间的正确交互正确性保证组合服务特性的正确非功能属性考虑单个服务组件的安全 可靠性及性能特性可扩展性服务组合需要满足动态的需求 6 在Web服务协议栈的位置 BPEL WS CDL UDDI WSDL SOAP XML XMLSchema HTTP HTTPS SMTP TCP IP 7 服务组合 服务编制 Orchestration 单一的控制点 服务编排 Choreography 定义多个端点之间的消息交换 8 编制 Orchestration 2 invoke 3 invoke 4 invoke 5 reply 1 receive WebService1 Orchestration Coordinator 从一个单控制端点的角度出发 描述了Web服务如何在消息层次执行交互 包括业务逻辑以及交互的执行顺序代表了可执行的业务流程 可以建立长周期运行 事务的和多步骤的流程模型业务流程交互总是由参与流程的其中一个业务伙伴的角度出发进行控制 9 编排 Choreography 与多个业务端点之间的公共消息 全局可视性 交换 交互规则以及协议相关联比服务编制更加具有协作特征多个参与者的消息交换序列 包括客户 供应商和业务伙伴协议中的每个实体描述了交互中所承担的部分 但并不存在控制整个交互流程的单个实体 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的特点 结构化编程模型与传统流程模型的结合支持可执行业务流程与抽象业务流程主要活动和元素包括 消息流 控制流 数据流 协作关系 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元素引用的WSDLportType元素 17 数据处理 1 variables结构保存与即时工作流逻辑关联的状态信息messageType属性允许变量包含整个WSDL定义的消息 而element属性完全引用了XSD元素结构 type属性能够用于仅代表XSDsimpleType 如string或integer 18 数据处理 2 assign提供变量之间复制值的能力copy结构可以处理各种数据传输函数 from与to元素同样也可以包含可选的part与query属性 允许引用变量的特定的部分或特定的值 19 相关性 correlationSets实现相关性 主要和进程实例的消息关联 消息可以属于多个correlationSets property定义一个全局唯一的名称 并将其关联到一个XMLSchema的简单类型 用以定义服务事理与消息之间的关联关系 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进行建模 包括通道变量 channelvariable 和角色状态变量 statevariables Tokens 用来表示组成变量的部分的别名 29 服务组合描述语言 WS CDL 参与者和角色角色 Roles 定义了行为参与者 Participants 扮演一个或多个角色关系 Relationships 两个角色之间的关联 relationships ParticipantI ParticipantII Playrole s 30 组合服务构造方法 1 静态和动态的服务组合静态服务组合发生在设计阶段 要组合的组件经过选择 连接在一起 最后编译并部署 对于服务组件不再变化或很少变化的服务环境很有效如果提供了新的服务 或者原来的服务需要被替换 就可能产生不一致 这种情况下 不可避免的要改变软件的结构 绑定到其他服务 甚至改变整个流程的定义 这时 静态的组合由于过于严格 不适应这种无法预料的变化 因此 需要在运行时能够对服务进行组合 31 组合服务构造方法 2 基于流程的服务组合方法模型驱动的组合服务构造 使用统一建模语言例如UML进行高层次建模 然后映射到WS BPEL基于规则的服务组合 使用OCL ObjectConstraintLanguage 来表达业务规则和流程 业务规则可以构造服务组合 结构化规则能指导流程的结构 数据规则能控制数据和消息的使用 行为规则能控制事件 资源规则能利用资源 异常规则能决定异常处理的行为 32 组合服务运行支撑 BPEL引擎 BPEL引擎主要提供服务组合的执行与管理功能 其主要功能是建立基于WS BPEL标准的组合服务的解释与执行环境 BPEL引擎正是通过对WS BPEL流程的部署与执行的支持 来实现服务编排以提供组成复杂 多步骤的组合服务的功能 从而支持企业内部和企业之间的动态业务流程集成 33 BPEL引擎基本原理 WS BPEL可以看作是面向服务的编程语言 因此 BPEL引擎是BPEL程序的编译器和解释器 Java源代码 JavaByteCodeBPEL WSDL文档 BPEL对象JVM 装载class文件 Java字节码 解释执行BPEL引擎 从持久存储中反序列化BPEL对象 进行解释执行 javac deploy 34 BPEL引擎的基本功能单元 BPELCompiler将BPEL源文件 包括bpel wsdl 编译成执行环境可以理解的内存对象形式BPELRuntime执行BPEL流程 包括定义的异常处理与补偿操作 并提供相应的流程管理接口Integration负责将BPEL引擎与外部的WebService容器进行集成 并负责BPEL引擎与外界通信和消息处理DataAccess提供持久化支持 包括流程定义与流程实例的持久化Managementconsole为用户提供可视化管理和监控平台 在此平台上 用户可以部署 管理和控制BPEL流程 35 BPEL引擎结构 SOAPEngine BpelProvider Dispatcher ProcessController DAO Manager 36 编译Java程序v s 部署BPEL 37 BPEL结构 38 In memoryobjectmodel 39 BPEL加载 Dispatcher ProcessInstance BPELProcess ProcessContext类似JVM使用ClassLoader加载类 BPEL引擎使用Dispatcher来加载ProcessInstanceDispatcher查找在部署阶段已存储的BPELProcess 在BPELProcess和ProcessContext找到后 这些数据被发送给ProcessController 由其控制执行 processContext BPELProcess processInstance Dispatcher ProcessController 40 ProcessContext 41 DAO DataAccessObject DAO 是管理与数据源联系 获取和存储数据的接口DAO封装所有对BPELProcess和ProcessContext的访问 支持内存和持久化数据的存储和访问 MemoryDAO Filesystem RDBMS JMS Dispatcher 42 解释执行控制器 ProcessController 43 如何使用 将BPEL引擎部署到Web容器中 例如ApacheTomcat将BPEL流程部署到BPEL引擎中 通过Web服务客户端调用即可激活一个BPEL流程实例 44 服务的安全管理 服务的安全管理简介服务的安全要求服务的安全问题服务的安全技术 45 服务的安全管理简介 Web服务体系结构是基于XML技术 应用程序通过消息交换进行集成 因此总是存在着消息被窃听 丢失或修改的风险 由于被交换信息的关键性 必须确保底层消息传递体系结构的安全可靠 46 服务的安全要求 信息的保密性 通过对主要信息进行加密处理 防止对信息的非法操作 以避免非法用户获取和解读原始数据身份认证 通过检查用户的凭据并根据权限验证这些凭据 找到与验证用户标志的过程数据的完整性 保证数据在传输的过程中不被意外或恶意地修改数据原发者的不可抵赖性 消息发送者在发送完数据后 对其所发送的数据不能抵赖授权 它是验证通过了身份认证的用户是否具有访问特定资源权限的过程 47 服务的安全问题 1 传输层安全问题非授权访问 即没有预先经过同意 就使用网络或计算机资源 它主要有以下几种形式 身份假冒 身份攻击 非法用户违法操作 合法用户以未授权方式进行操作等 信息遗漏丢失 敏感数据在有意或无意中被泄漏或丢失 破坏数据完整性 以非法手段窃得对数据的使用权 删除 修改 插入或重发某些重要信息 以取得有益于攻击者的响应 恶意添加 修改数据 以干扰用户的正常使用 拒绝服务攻击 通过发送大量的信息流量 使Web服务器 主机 路由器和其它网络设备负担过重 48 服务的安全问题 2 SOAP安全问题SSL TLS不能保证端到端传输的安全性 SSI TLS能保证点到点传输的安全性 但是 SOAP消息在传输过程中可能经过中介体 如果中介体对传输信息进行任意修改 就破坏了信息完整性 即使在传输层中保证了端对端的安全要求 但如果传输的消息是原文 也极易受到黑客攻击 如果在应用程序中进行安全加密处理 又需要用户对加密算法有详细的了解 造成用户的额外负担 因此 需要在SOAP中进行适当的安全扩展 使应用程序不用考虑过多的加密算法细节 以保证中间件独立性 即使传输层可以保证安全传输 但是不能保证信息驻留时也是安全的 如果消息保存后继续向前传输 驻留信息的安全十分重要 因此 也可以采用在SOAP中加入扩展信息 以保证驻留信息的安全性 49 传输层的安全技术 基本身份验证 用户登录以明文将用户名和密码传给Web服务器 Web服务器在用户数据库中鉴别登录请求 由于用户名和密码以不加密的Base64编码形式传输 所以这种方法极不安全 SSL身份验证 与基本身份验证类似 但用户名和密码以安全套接字层SSL SecuritySocketLayer 加密后再传递 摘要身份验 使用散列技术 将客户凭证安全地传给服务器 客户证书验证 客户证书验证要求每个用户都用与用户账号对应的证书 50 SOAP安全技术 1 三个W3C的XML规范 XML数字签名 XMLDigitalSignature 描述了数字签名的XML表示以及计算 验证XML表示的数字签名的过程XML加密 XMLEncryption 描述了对数据的加密过程以及加密结果的XML表示XML密钥管理服务 XMLKeyManagementServices 对密钥 证书进行管理 包括注册 分发 撤销等等 允许客户通过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 服务的扩展事务规范 为了解决平面事务模型的不足 提出了各种扩展事务模型 ExtendedTransactionModel 在平面事务的基础上加入特定的应用语义 基于固定的控制和数据依赖 在不同方面放宽了对ACID特性的要求 以解决特定领域的问题 常见的扩展事务模型包括 嵌套事务模型 NestedTransactions 多层事务模型 Multi LevelTransactions 分支汇合事务模型 SplitandJoinTransactions 柔性事务模型 FlexibleTransactions 59 服务事务规范 1 BTP是OASIS组织在2002年提出的一个面向Web应用 协调多个自主参与者的事务支持协议基于事务的两阶段提交 提出用两阶段终止协议 two phasecompletionprotocol 来解决web服务的事务问题定义了两种类型的扩展事务 原子 Atom 具有原子性 即事务中的操作要么全部执行 要么全部不执行 内聚 Cohesion 放宽了原子性的要求 60 服务事务规范 2 WS C WS TIBM Microsoft于2002年8月发布建立在SOAP WSDL等Web服务的标准之上 在满足传统事务ACID性质的基础上引入协调器 Coordinator 扩

温馨提示

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

评论

0/150

提交评论