




已阅读5页,还剩76页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
分类号 密级 U D C 编号 中国科学院研究生院 硕士学位论文 擎事务处理框架的设计与实现 指导教师 钟华 研究员 中国科学院软件研究所 申请学位级别 硕士 学科专业名称 计算机软件与理论 论文提交日期 论文答辩日期 培养单位 中国科学院软件研究所 学位授予单位 中国科学院研究生院 答辩委员会主席 金芝 研究员中国科学院软件研究所 硕士学位论文 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明。 签名: _ 日期: _ 关于论文使用授权的说明 本人完全了解中国科学院软件研究所有关保留、使用学位论文的规定,即:中国科学院软件研究所有权保留送交论文的复印件,允许论文被查阅和借阅;中国科学院软件研究所可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存论文。 (保密的论文在解密后应遵守此规定) 签名: _ 导师签名: _ 日期: _ 中 国科学院软件研究所 摘要 i 摘 要 务规范族中服务复合层的重要标准。 持 通过 对 务的编制(建模业务流程, 从而 使编程人员能够集中关注业务逻辑。但是,目前的 言缺乏事务创建,提交,上下文传播等原语,使得其与 一方面,在面向服务的计算环境下,许多应用场景需要松弛事务模型来保证事务性复合服务的原子性。 针对这些问题,论文提出了 擎事务服务的概念模型。它在 务协调框 架的基础上,刻画了 擎事务服务的处理需求,划分了相关角色,并描述了有关组件的功能。并且,从 程充当事务发起者与事务参与者两种 典型 场景,分别描述了不同角色及组件之间的交互关系和处理流程。同时,模型中还引入基于应用语义的松弛事务模型来保证事务性复合服务的松弛原子性,应用 面向方面编程 (术 作为 擎与事务服务的集成技术。 在 擎事务服务概念模型指导下, 论文为 擎 计并实现了一个事务处理框架 持 务事务规范 定义的两种事务类型,并具备用户自定义的松弛原子性保障能力,从而提高了 程运行的可靠性,增强 了 为企业级流程运行平台的竞争力。 最后, 论文 设计并实现了一个应用案例,展示了 擎事务服务 的 实用性 ,并对 行了功能和非功能方面的测试 ,说明了其可用性 。 关键词 : 务事务,松弛原子性, 英文摘要 i is an on an by it is to is no to as On in is to a We of on We of We to of as of a is It to of it a we a on it to 目录 i 目 录 第一章 绪论 . 1 究背景 . 1 向服务的体系结构 . 1 务复合的提出 . 2 务复合的异常处理和事务支持 . 3 文的研究问题 . 4 文工作 . 4 文组织 . 5 第二章 事务处理与 务技术 . 6 务处理技术 . 6 布事务 . 6 务并发控制 . 8 务恢复 . 9 务技术 . 10 务的技术基础 . 11 范 . 12 务事务规范 . 15 于应用语义的松弛事务模型 . 19 第三章 擎的事务服务 . 23 擎事务服务的概念模型 . 23 务协调框架 . 23 . 25 弛原子性执行保障 . 29 事务服务的集成技术 . 32 OP . 32 用 成 事务服务 . 33 第四章 务处理框架的设计与实现 . 35 介 . 35 计目标 . 36 体架构与模块介绍 . 36 . 37 . 39 . 39 . 41 . 44 . 45 设计与实现 . 46 署描述符 . 47 署和运行时 支持 . 48 擎扩展 . 49 第五章 务处理框架应用案例及系统测试 . 51 中国科学院软件研究所 擎事务处理框架的设计与实现 例背景 . 51 部服务 . 51 程 . 53 户端 . 53 试方案 . 54 试结果分析及结论 . 56 能测试结果 . 56 能测试结果 . 56 第六章 结束语 . 60 文的主要贡献 . 60 一步的工作 . 60 附录 署描述符 . 62 参考文献 . 66 发表文章目录 . 70 致 谢 . 71 中国科学院软件研究所 第一章 绪论 1 第一章 绪论 本章介绍研究背景、论文工作和论文组织。 究背景 二十世纪九十年代末,随着分布式对象技术和 术的发展,出现了务 (术 。 务是指那些由 标 识的应用组件,其接口和绑定信息可以通过 义、描述和查找;同时, 务通过基于议的 息,可与其它软件 、 应用直接交互 1。 换言之, 务就是可以通过标准的 议访问的应用组件,它不依赖于特定的硬件、操作系统和编程环境 。 通过上述定义可知, 务 提供 了 一种一致化编程模型,从而在企业内外都可以利用通用的 信息 基础设施 和 以一种通用的方法进行 业务 集成 。 务的出现 使 得业务 集成比以前更快、更容易而且更便宜 ,并且 实现了业务功能的松散集成 。充分 利用现有的语言 、 平台 以及 遗留 应用,可以以一种增量的方式来集成和应用 务 。 企业业务集成也因此逐步过渡到以 务为基础的面向服务的体系结构之上,但是,如何在面向服务的体系结构上实现灵活多变的企业业务集成,成为目前迫切需要解决的一个主要问题 2,3,4。在面向服务的体系结构中,需要将企业内部的整个价值链分为较小的服务单元,不仅可以将应用之间的交互标准化,而且可以为业务流程提供更多的灵活性。因此,面向服务的体系结构首先解决了如何描述和组织服务的问题,以便服务可以被动态地、自动地发现和使用。而 务发布的服务模块组合起来,使之成为衔接以 务为基础的信息基础设施和企业业务应用集成之间的桥梁。 向服务的体系结构 随着企业业务集成对灵活性和多样性要求的提高,以及各种新技术的出现和成熟致使目前的 分布式对象技术 发生了深刻的变化 。 “软件成为服务”带来了 一种新的 软件架构的出现 一般而言, 有三种类型的角色:服务提供者、服务请求者和服务代理者 。 图 述了相关的角色和角色之间的交互行为 。 服务提供者托管 可通过网络访问应用组件 (服务的一个实现 ),定义服务描述并把它发布到服务代理者,同时,响应对所提供服务的请求;服务请求者通过服务代理者查找所需的业务服务并调用该服务来实现业务解决方案;服务代理者管理已经发布的服务,产生由服务提供者发布的软件接口并根据注册分类提供业务服务的查询服务 。 在这些角色之间使用三种基本操作:发服 务 代 理 者S e r v i c eB r o k e 请 求 者S e r v i c eR e q u e s t o F i n B i n P u b l i s 提 供 者S e r v i c eP r o v i d e 向服务的体系结构 中国科学院软件研究所 擎事务处理框架的设计与实现 2 布 (作,使服务提供者可以向服务代理者注册自己的功能和访问接口;发现 (作使服务请求者可以通过服务代理者查找所需的服务;绑定 (作将服务绑定于服务提供者之上 。 目 前,基于 务的 成为 企业 计算新的发展方向,即,企业用务方式提供自己的业务功能,各种客户可以撇开实现服务的具体技术,查找和绑定这些服务,这种企业计算模式 和其它企业 计算模式 的不同之处在于 前者能 提供业务敏捷性 ,即企业能快速、有效地响应变化并且利用各种变化获得竞争优势 5。 这种业务敏捷性能否真正获得还取决于该计算模式的实现 。 在 企业信息基础设施之上集成涵盖整个业务流程的企业业务应用, 一方面 , 提供服务 的信息基础设施必须满足业务需求的动态变化 ,另一方面, 业务模型也要能适应信息基础设施 的 变迁和多样性 。 因此,在业务模型和信息基础设施之间,需要有新的中间模型作为中介,使得企业业务需求的任何变化,都可以反映到中间模型中;同样,该中间模型需要适应 底层 的信息基础设施变化,屏蔽信息基础设施的变化对业务模型的影响 。 具体来说,在基于 务的 实现业务集成,需要 一种能够以平台无关的方式充分反映 企业 业务 流程的 服务 模型及相关工具;而且该模型及相关工具应该支持对组成企业业务系统的 务的描述,支持 务之间的交互关系、复合模式以及应该满足的约束关系的定义和支持 从 服务 模型自动生成 运行 代码 。 通过 创建位于 企业业务 和 底层 信息基础设施 之间的抽象 的中间模型,进而保证底层技术的实现与企业业务需求的一致性 。 务复合的提出 上文中我们提到 在企业业务 和底层 信息基础设施 之间的 中间模型,可以保证底层技术的实现与企业业务需求的一致性 。 而 务复合 (可以反映企业业务模型的变化,又可以适应 以 务为基础的信息基础设施的变迁 。 近年来,随着 务复合研究的展开,不同的研究人员对 务复合的概念有着不同的认识 . 以下我们列举几个具有代表性的定义,它们从不同的角度对 务 复合进行了描述: 司的定义 6: 务复合是支持业务流程逻辑的一组 务,其本身既可以是最终的应用,也可以是新的 务,复合是通过确定不同务的执行顺序和 务之间的复杂交互来实现 。 斯坦福大学 组的定义 7: 务复合就是研究如何通过复合自治的 务而获得新的功能的问题,通过复合有助于减少新应用的开发时间和费用 。 验室的定义 8: 务复合实际上是服务提供者将已有的 务作为新的服务的构筑模块重用,并且在总体上实现对各个模块的增值 。 这种增 值体现在新的服务满足特定需求的能力,以及可以提供更高的可用性和障 。 佐治亚大学 计算机系的定义 9: 务复合主要研究用于服务复合的方法论和用于建模的服务和功能的抽象方式 。 从上述定义可以看出, 务复合的本质是协调若干 务共同工作,它在面向服务的企业计算模式中扮演着 中间 模型的角色,即通过 务的复合,最终能灵活实现上层的业务模型,屏蔽底层 信息基础设施 的变迁 。 从 理论上中国科学院软件研究所 第一章 绪论 3 讲 ,新的 业务应用 可以 由 一系列 务方便地 复合 ,而且这个过程不需要任何编程工作 。 可视化工具能够把多个服务按照合适的 次序连接在一起,并生成实施复合操作所必需的消息代码 . 因此,如何复合这些已有的、自治的 务构筑企业新的业务应用的问题也成为软件工程领域一个新的热点问题 10. 依据应用领域的不同,我们将 务复合技术分为面向流程、面向数据和面向语义三类: 面向流程的 务复合,主要通过协调分散的局部业务功能,解决企业业务应用的问题 6,11。 多数采用工作流或者与之相类似的流程引擎来透明地调度和管理 务;并且提供诸如事务、可靠消息传递等功能保证 务复合的可用性和可靠性 . 面向数据的 务复 合,主要处理数据密集型企业应用中的两类问题:一类是异构数据源的数据处理 12;另一类是对物理上分布的,而且无法实现集中处理的数据 (例如在全球各地的天文观测数据 13,14)的处理 。 不同数据源产生的数据本身仅能提供 务复合所需数据的部分数据 。 如何组织相关的务并从中获取所需数据,并在此基础上提供数据的汇总和分析等功能,便成为该类型 务复合的基本任务 。 面向语义的 务复合,已有的 务描述标准都不能描述 务的语义,通过构造 务复合的语义模型,使得可以利用高层的抽象模型而不需要底层具体的程序实现来描述 务复合 。 主要难点集中在 务 . 5(称 范是目前支持 面向流程的 务复合的主流规范,它使编程人员专注于业务逻辑,通过对 务 的编制 (实现业务流程 。 同时 用 述 的业务流程是完全可执行 和 可移植的 ,因此 一步分离了业务逻辑与实现细节,提 高了业务流程构建的敏捷性。 务复合的异常处理和事务支持 事务处理技术是保证信息可靠性和一致性的重要技术。事务的概念最早来源于数据库管理系统,被用来确保应用程序对数据库访问的一致性和可靠性。随着网络技术的发展以及应用需求的变化,以往的集中式应用演化为网络分布应用,事务处理技术也发展为分布式事务处理。 当包含在 务复合中的 务发生异常时,需要有一套相应的异常处理机制 16,而事务是提高系统可靠性和容错能力的一项关键技术 。 和传统的分布式事务不同,在复合 务环境中,因为不同的 务 实现可能采用不同的实现技术,以及执行时间的长短不一,所以支持 务的事务 处理 必须能够支持这种自治 。 另一方面,由于事务的参与者之间没有统一的事务语义、事务 上下文 表示和协调协议,而 上下文表示 、服务的协调和管理又需要以一种松散的和非集中的方式进行 17,所以, 务 事务是一种建立在不同事务 性 服务和非事务性服务实现之上的全局事务 。 务复合需要提供新型的事务 处理 机制,能够描述和实现 务进行事务交互的模式 。 新型的事务机制应能和 务交互的松散耦合特性相适应 。 以 8,19(简称 )为代表的 务事务规中国科学院软件研究所 擎事务处理框架的设计与实现 4 范 给出了 支持异构事务处 理平台及协议之间互操作 的技术解决方案 。不同的事务参与者通过对自身处理机制的包装 实现相互协作来完成分布式事务的处理过程。其中, 范提供了支持现有的各种标准事务机制的协调框架,这个框架提供了活动的激活、注册和协调方面的服务,以实现利用预定义的协调上下文 (制活动的创建、协调协议的选择和活动的提交处理 。 范则定义了可以在协调框架内使用的原子事务 类型和业务活动事务类型。 文的 研究问题 擎 是 程的 执行和管理 环境 , 为了保障 以 程 形成的复合 务执行 的 可靠性 和一致性 ,需要为 擎引入事务 处理功能 。这需要解决以下几方面的问题: (1) 关注点分离使 得 不同层次 的 务 规范依赖比较松散, 同时 也造成各个规范之间难以实现无缝集成。 程 开发 人员关心 业务逻辑 的编写 , 规范 关注的是协调协议, 业务 层次 逻辑与 系统 协调行为 是 分开 的 。但是在 言中缺乏事务创建, 提交,上下文传播等原语而使两个规范之间存在沟壑。 这就需要考虑 如何 引入事务 处理功能 对二者进行集成 。 (2) 在面向服务的计算环境下,很多应用场景使得原子事务模型的 语义 因过于严格而无法适用。目前的方法是通过松弛事务模型保证事务性复合服务的松弛原子性。 这需要考虑 如何在 程的事务域中既实现松弛原子性又可以使得 程的编程人员定义其中包含的应用语义 。 本文针对这些 问题进行 了 研究,并给出 了 相应的解决方案。 文工作 论文工作主要围绕 如何在 擎 中引入 事务 处理功能并实现 展开研究: (1) 擎事务服务的概念模型 论文 分析 擎 事务 服务的 处理需求 ,划分相关角色,并描述相关职责和功能, 以 义的 务协调框架为基础 , 提出 擎事务服务的概念模型。从 程充当事务发起者与事务参与者两个场景 ,分别讨论概念模型中不同角色及组件之间的交互关系和处理流程。 再 在中科院软件所软件工程 技术 中心提出的基于应用语义的松弛事务模型 20的基础上讨论如何解决在 程中支持用户自定义松弛原子性的问题。 (2) 擎与事务服务的集成技术 在引入事务服务 模型 之后, 擎 需要一种 支持其 与事务服务交互 的 机制。要达到这个目的可以有多种选择,如说通过扩展 范增加支持事务处理的语言要素来实现 21, 但这将影响 程的可移植性。我们将研究如何在保持 现有规范的基础上 对 擎 与事务服务进行集成 。 在部署时为 动配置有关的事务属性 , 在运行时对事务边界进行 界定与控制 。 (3) 务处理框架的设计与实现: 中国科学院软件研究所 第一章 绪论 5 由中科院软件所软件工程中心开发的 擎,我们在基础上设计并 实现 了 事务 处理框架 使 得 持 由 范 所定义的两种事务类型,同时 具备 支持用户自定义松弛原子性的 特色,从而提高 了 程 执行 的可靠性,增强 为企业级流程运行平台的竞争力 。此外,我们还 通过 一个 应用案例 展示 了 系统的 使用 , 并进行了系统的功能和非功能测试,说明 了 其 可用 性 。 文组织 论文的后续章节按以下方式组织: 第二章 介绍事务处理技术和 务 技术 。 我们介绍了事务处理的关键技术和 务技术的 概况。其中特别详细介绍了 务中的两个规范:一个是 支持 务复合的 范; 另 一个是 用于 务事务的 规范 。 此外,我们还简单介绍了基于应用语义的松弛事务模型的基本概念。 第三章介绍 擎的事务服务。我们首先介绍了 务协调框架的体系结构 。在此基础上, 提出了 擎事务服务的概念模型, 从 程作为事务发起者和事务参与者两个角度刻画 了其处理流程 。同时,描述了松弛原子性执行保障算法 。最后,我们介绍了一种将 擎 与事务服务进行集成的技术: 22,它是在 范的 基础上 , 擎与事务服务的 一种 交互支持机制。同时它还可用于支持为 动配置其他的基础服务,以实现 擎处理的灵活性和可扩展性。 第四章主要介绍 务处理框架 (设计与实现。我们 以 基础对 擎事务服务概念模型中事务处理框架组件的一个具体实现。论文分析了 设计 目标 ,体系结构,主要模块的设计与实现。作为 事务服务的集成技术,论文还简单讨论了 设计与 实现 。 第五章介绍 务处理框架应用案例。本章 将 介绍一个与真实应用背景比较接近的应用案例 。我们 设计和实现了 案例中的 程,外部服务,测试客户端等,从而 展示了 务 服务 的实用性 。在此基础上,我们还对了简单的功能和性能方面的测试。 最后,第六章对全文工作进行总结。我们列举了论文工作的主要贡献,并且对进一步研究提出展望。 中国科学院软件研究所 擎事务处理框架的设计与实现 6 第二章 事务处理与 本章将介绍与论文研究内容相关的背景知识。首先介绍事务处理的关键技术,然后介绍 务技术, 包括 务的 核心 基础,以及 务 的两个重要规范:用于 务复合的 范和用于 务事务的范。 最后,介绍 由 中科院 软件所 软件工程中心提出 的 关于复合 务事务 处理 的“ 基于应用语义的松弛事务模型 ”。 务处理技术 事务处理技术是保证信息可靠性和一致性的重要技术。在引入网络分布计算环境后,事务处理需要解决分布 性带来的问题。事务作用域不再集中在单一站点,而是分布在不同的多个网络站点上。涉及网络上多个服务器上对象的事务称为分布式事务。 布事务 事务是具有 性的原子操作序列。在网络应用中的数据和处理分布在不同的站点机上,要求分布事务处理。分布式事务在结构上可以分为平面事务和嵌套事务。为了保证事务的原子性,分布事务处理采用两阶段提交协议。 (1) 概念: 事务处理技术是保证信息可靠性和一致性的重要技术。事务是具有性的原子操作序列。事务概念最早来源于数据库管理系统,用于保证应用程序对数据库访问的一致性和可靠性。在早期应用中,数据库系统内部集成的事务管理模块提供应用所需的事务处理功能。随着网络技术的发展以及应用需求的变化,应用的数据和处理分布在不同的站点机上,事务处理技术发展为分布式事务处理,并由专门的事务处理中间件提供事务服务 23。 从客户端的角度看,事务是由一组操作组成的原子步骤,这组操作在执行中不受其它并发客户端操作的影响;它们或者全部正确完成,或者在服务器故障时,消除其执行的所有影响。这样,事务的执 行总是使服务器的数据从一个一致性状态迁移到另一个一致性状态。 事务常常被称作“原子事务”,它总是针对可恢复对象而言具有原子性。一个事务或者完整的执行,使它的所有效果都记录到相关对象中;或者由于故障等原因而取消所有的效果。 为了支持故障原子性和持久性,对象必须做到可恢复性。当服务进程由于硬件故障或软件错误而崩溃时,所有已完成事务的更新必须保留在持久存贮中,这样,当新服务进程启动后,它可以利用这些更新信息来恢复对象状态。 在引入网络分布计算环境后,事务处理需要解决分布性带来的问题。首先,中国科学院软件研究所 第二 章 事务处理与 务技术 7 事务作用域不再集中在单一 站点,而是分布在多个网络站点上,需要访问在不同站点机上的对象。涉及多个服务器上对象的事务称为分布式事务。分布式事务处理涉及到更多的不同类型的共享资源,分布式事务的并发控制保证在每个服务器上事务是局部可串行化的,还要保证整体是全局可串行化的 23。 分布式事务处理系统结构如图 示。每个节点上都有自己的调度和数据管理,保证局部数据的一致性和可靠性。与此同时,各站点上的调度要与协调站点上的事务管理进行远程通信,实现全局的分布式事务控制 23。 事务管理调度数据管理调度数据管理调度数据管理站点机A 站点机B 站点机C(2) 事务模型: 分布式事务在结构上可以分为平面事务和嵌套事务。 在平面事务中,客户端调用多个服务器的操作。平面事务完成一个操作之后才发起下一个操作。因此,这些事务顺序访问服务器上的对象。当服务器被锁住时,事务只能等待。 在嵌套事务中,顶层事务可以创建子事务,子事务又可以任意程度地进行嵌套。就事务的并发访问和故障处理而言,子事务对它的父事务是原子的。在同一个层次运行的子事务,它们可以并发运行,并且它们对数据的访问是串行化的。每一个子事务都可独立进行故障处理,而不受父事务和其它子事务的影响。如果某个子事务 执行失败,其父事务可以启动并运行另一个事务来完成同样的工作。只有当所有的子事务都完成以后,父事务才能提交或放弃。父事务放弃时,所有的子事务都被放弃。如果某个子事务放弃,父事务可以决定是否放弃。即使子事务被放弃,父事务仍
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园智慧化办公平台合作协议
- 电商物流配送服务合同条款确认书
- 农业用地开发管理合同书
- 农业资源循环利用与环境保护协议
- 办公楼租赁物业管理协议
- 二零二五年度建筑材料租赁合同范本
- 二零二五年度FXBIB金融经纪商风险管理培训协议
- 二零二五年车辆挂靠驾驶员培训服务合同十
- 二零二五年度办公家具销售与市场拓展协议
- 二零二五年度保健食品行业峰会赞助及广告投放合同
- DL-T1474-2021交、直流系统用高压聚合物绝缘子憎水性测量及评估方法
- 水利安全生产风险防控“六项机制”右江模式经验分享
- 天然气泄漏事故演练方案及评估
- 《养老机构认知障碍照护专区设置与服务规范》
- 妇科炎症健康教育课件
- 儿科护理学(高职)全套教学课件
- 干眼门诊建设计划书
- 地下结构工程课件
- MBR膜系统清洗方案
- 实用美容技术高职PPT完整全套教学课件
- 中国石油天然气集团公司管理人员违纪违规行为处分规定
评论
0/150
提交评论