【毕业学位论文】(Word原稿)事件驱动的BPEL引擎架构的设计与实现-计算机软件与理论_第1页
【毕业学位论文】(Word原稿)事件驱动的BPEL引擎架构的设计与实现-计算机软件与理论_第2页
【毕业学位论文】(Word原稿)事件驱动的BPEL引擎架构的设计与实现-计算机软件与理论_第3页
【毕业学位论文】(Word原稿)事件驱动的BPEL引擎架构的设计与实现-计算机软件与理论_第4页
【毕业学位论文】(Word原稿)事件驱动的BPEL引擎架构的设计与实现-计算机软件与理论_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

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

文档简介

分类号 密级 U D C 编号 中国科学院研究生院 硕士学位论文 事件驱动的 擎架构的设计与实现 指导教师 魏峻 研究员 中国科学院软件研究所 申请学位级别 硕士 学科专业名称 计算机软件与理论 论文提交日期 论文答辩日期 培养单位 中国科学院软件研究所 学位授予单位 中国科学院研究生院 答辩委员会主席 中国科学院软件研究所 硕士学位论文 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明。 签名: _ 日期: _ 关于论文使用授权的说明 本人完全了解中国科学院软件研究所有关保留、使用学位论文的规定,即:中国科学院软件研究所有权保留送交论文的复印件,允许论文被查阅和借阅;中国科学院软件研究所可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存论文。 (保密的论文在解密后应遵守此规定) 签名: _ 导师签名: _ 日期: _ 中国科学院软件研究所 摘要 i 事件驱动的 摘 要 称 务规范族中服务复合层的重要标准。 持 通过 对 务的编制( 构建 业务流程, 从而 使编程人员能够集中关注业务逻辑。 言描述的业务流程运行的服务器中间件系统 , 使用擎可以执行 言编写的业务流程 。 作为一个 网络 服务器系统,擎将不可避免的处理 大量 的 并发请求。如何设计实现 擎使之能高效的处理并发将是 高性能 擎设计的关键问题。 并发服务器系统通常采用多线程和事件驱动两种 并发 模型 。传统上大多数服务器软件都建立在多 线程 (或 多 进程 )模型 的 基础上。但在高负载条件下, 过 多 的线程 和 线程 间的 上下文切换 会 造成 系统 较大的 开销, 这些开销是导致 系统 性能 下降 的主要原因 。 事件驱动模型是一种 只 采用 少量 固定 数量 线程 的并发模型 , 一般说来,它的 伸缩性 更好, 并且有 更高 的处理效率。 本文对高并发 服务器 系统 中 所 使用 的事件驱动 模型进行了分析和研究 ,并且结合 言规范的特点, 提出了事件驱动的 擎实现技术方案。论文重点研究了 件结构和 有限状态机 (称 画程和活动行为的原理,针对 言语法特点,构造了完整的 型,包括了状态空间和基于 式的状态转移规则。 在基于事件驱动模型的 擎 架构 原理的指导下,我们设计并实现了基于事件驱动 模型 的 擎 系统。 并且,我们对采用多线程模型 实现的 统和采用事件驱动模型 实现 的 统进行了性能测试和分析比较。从我们 的测试 数据和 分析结果可以看出,统比采用多线程模型的 了较大的性能提升。 关键词 : 务, 事件驱动 并发 ,中间件中国科学院软件研究所 英文摘要 is an on an by A is a As an is a a In of is or in of a of On an on of a of is a of an on of On we on of in SM of a is we of on on of 目录 录 第一章 绪论 . 1 究背景 . 1 向服务的体系结构 . 1 务组合技术 . 2 发服务器系统 . 4 究内容 . 4 文组织 . 5 第二章 擎系统技术研究综述 . 6 务 . 6 言 . 8 言的历史 . 8 言的结构 . 9 言的特点 . 10 擎技术 . 12 擎 . 12 务器系统的并发模型 . 13 于多线程模型的 擎 . 15 第三章 基于事件驱动模型的 擎架构的系统原理 . 18 理概述 . 18 件 . 19 限状态机 (. 20 . 22 . 24 . 25 . 28 . 29 . 30 . 31 . 32 . 33 . 35 . 36 . 38 . 40 . 42 . 45 . 46 件调度算法 . 49 第四章 基于事件驱动的 擎系统设计与实现 . 51 中国科学院软件研究所 目录 述 . 51 统总体架 构 . 51 统实现的相关技术与设计模式 . 52 务器组件模型 . 52 象池技术 . 53 程池技术 . 54 关技术 . 54 . 54 关设计模式 . 55 统实现与模块说明 . 56 . 58 . 59 . 60 . 61 . 62 . 63 第五章 系统测试与性能分析 . 64 统测试方案 . 64 能分析与结论 . 65 第六章 结束语 . 70 文的主要贡献 . 70 一步的工作 . 70 参考文献 . 72 发表文章目录 . 76 致 谢 . 77 中国科学院软件研究所 第一章 绪论 1 第一章 绪论 本章介绍研究背景、 研究内容 和论文组织。 究背景 向服务的体系结构 面向服务的体系结构( 一种 系结构风格,支持将业务转换为一组相互链 接的服务或可重复业务任务,可在需要时通过网络访问这些服务和任务。这个网络可以是本地网络、 可以分散于各地且采用不同的技术,通过对来自 不同地区 的服务进行组合,可让最终用户感觉似乎这些服务就安装在本地桌面上一样。可以对这些服务进行结合,以完成特定的业务任务,从而让业务快速适应不断变化的客观条件和需求。 二十世纪九十年代末,随着分布式对象技术和 术的发展,出现了务 (术 。 务是指那些由 标识的应用组件,其接口和绑定信息可以通过 义、描述和 查找;同时, 务通过基于议的 息,可与其它软件 、 应用直接交互 1。 换言之, 务就是可以通过标准的 议访问的应用组件,它不依赖于特定的硬件、操作系统和编程环境 。 务 提供 了 一种一致化编程模型,从而在企业内外都可以利用通用的 信息 基础设施 和 以一种通用的方法进行 业务 集成 。 务 的出现 使 得业务 集成比以前更快、更容易而且更便宜 ,并且 实现了业务功能的松散集成 。充分 利用现有的语言 、 平台以及 遗留 应用,可以以一种增量的方式来集成和应用 务 。 企业业务集成也 因此逐步过渡到以 务为基础的面向服务的体系结构之上,但是,如何在面向服务的体系结构上实现灵活多变的企业业务集成,成为目前迫切需要解决的一个主要问题 2,3,4。在面向服务的体系结构中,需要将企业内部的整个价值链 划 分为较小的服务单元,不仅可以将应用之间的交互标准化,而且可以为业务流程提供更多的灵活性。因此,面向服务的体系结构首先解决了如何描述和组织服务的问题,以便服务可以被动态地、自动地发现和使用。而务复合则将作为 务发布的服务模块组合起来,使之成为衔接以 业业务应用集成之间的桥梁。 随着企业业务集成对灵活性和多样性要求的提高,以及各种新技术的出现和成熟致使目前的 分布式对象技术 发生了深刻的变化。“软件成为服务”带来了 一种新的 软件架构的出现 一般而言, 有三种类型的角色:服务提供者、服务请求者和服务代理者 。 图 述了相关的角色和角色之间的交互行为 。 服务提供者托管可通过网络访问应用组件 (服务的一个实现 ),定义服务描述并 通过 服务代理者 进行 发布,响应对所提供服务的请求;中国科学院软件研究所 事件驱动的 擎架构的设计与实现 2 服务 请求者通过服务代理者查找所需的业务服务并调用该服务来实现业务解决方案;服务代理者管理已经发布的服务,产生由服务提供者发布的软件接口并根据注册分类提供业务服务的查询服务 。 在这些角色之间使用三种基本操作:发布(作,使服务提供者可以向服务代理者注册自己的功能和访问接口;发现 (作使服务请求者可以通过服务代理者查找所需的服务;绑定 (作将服务绑定于服务提供者之上 。 服务代理者面向服务的体系结构 目前,基于 务的 成为 企业 计算新的发展方向,即企业用 种客户可以撇开实现服务的具体技术,查找和绑定这些服务 。 这种企业计算模式 和其它企业 计算模式 的不同之处在于 前者能 提供业务敏捷性 ,即企业能快速、有效地响应变化并且利用各种变化获得竞争优势5,但是 能否真正获得 这种业务敏捷性还取决于该计算模式的实现 。 在 企业信息基础设施之上集成涵盖整个业务流程的企业业务应用, 一方面 , 提供服务 的信息基础设施必须满足业务需求的动态变化 ,另一方面, 业务模型也要能适应信 息基础设施 的 变迁和多样性 。 因此,在业务模型和信息基础设施之间,需要有新的中间模型作为中介,使得企业业务需求的任何变化,都可以反映到中间模型中;同样,该中间模型需要适应 底层 的信息基础设施变化,屏蔽信息基础设施的变化对业务模型的影响 。 具体来说,在基于 务的 实现业务集成,需要 一种能够以平台无关的方式充分反映 企业 业务 流程的 服务 模型及相关工具;而且该模型及相关工具应该支持对组成企业业务系统的 务的描述,支持 务之间的交互关系、复合模式以及应该满足的约束关系的定义和支持 从 服务 模型自动生成 运行 代 码 。 通过 创建位于 企业业务 和底层 信息基础设施 之间的抽象 的中间模型,进而保证底层技术的实现与企业业务需求的一致性 。 务组合技术 上文中我们提到 在企业业务 和底层 信息基础设施 之间的 中间模型,可以保证底层技术的实现与企业业务需求的一致性 。 而 务复合 (可以反映企业业务模型的变化,又可以适应 以 务为基础的信息基础设施的变迁 。近年来,随着 务复合研究的展开,不同的研究人员对 务复合的概念有着不同的认识 . 以下我们列举几个具有代表性的定中国科学院软件研究所 第一章 绪论 3 义,它们 从不同的角度对 务复合进行了描述: 司的定义 6: 务复合是支持业务流程逻辑的一组 务,其本身既可以是最终的应用,也可以是新的 务,复合是通过确定不同务的执行顺序和 务之间的复杂交互来实现 。 斯坦福大学 组的定义 7: 务复合就是研究如何通过复合自治的 务而获得新的功能的问题,通过复合有助于减少新应用的开发时间和费用 。 验室的定义 8: 务复合实际上是服务提供者将已有的 务作为新的服务的构筑模块重用,并且在总体上实现 对各个模块的增值 。 这种增值体现在新的服务满足特定需求的能力,以及可以提供更高的可用性和障 。 佐治亚大学 计算机系的定义 9: 务复合主要研究用于服务复合的方法论和用于建模的服务和功能的抽象方式 。 从上述定义可以看出, 务复合的本质是协调若干 务共同工作,它在面向服务的企业计算模式中扮演着 中间 模型的角色,即通过 务的复合,最终能灵活实现上层的业务模型,屏蔽底层 信息基础设施 的变迁 。 从 理论上讲 ,新的 业务应用 可以 由 一系列 务方便地 复合 ,而且这个过程不需要任何编程工作 。 可视化工具 能够把多个服务按照合适的次序连接在一起,并生成实施复合操作所必需的消息代码 . 因此,如何复合这些已有的、自治的 务构筑企业新的业务应用的问题也成为软件工程领域一个新的热点问题 10. 依据应用领域的不同,我们将 务复合技术分为面向流程、面向数据和面向语义三类: 面向流程的 务复合,主要通过协调分散的局部业务功能,解决企业业务应用的问题 6,11。 多数采用工作流或者与之相类似的流程引擎来透明地调度和管理 务;并且提供诸如事务、可靠消息传递等功能保证 务复合的可用性和可靠性 . 面向数据的 务复合,主要处理数据密集型企业应用中的两类问题:一类是异构数据源的数据处理 12;另一类是对物理上分布的,而且无法实现集中处理的数据 (例如在全球各地的天文观测数据 13,14)的处理 。 不同数据源产生的数据本身仅能提供 务复合所需数据的部分数据 。 如何组织相关的务并从中获取所需数据,并在此基础上提供数据的汇总和分析等功能,便成为该类型 务复合的基本任务 。 面向语义的 务复合,已有的 务描述标准都不能描述 务的语义,通过构造 务复合的语义模型,使 得可以利用高层的抽象模型而不需要底层具体的程序实现来描述 务复合 。 主要难点集中在 务 . 5(简称 范是目前支持面向流程的 务复合的主流规范,它使编程人员专注于业务逻辑,通过对 编制 (实现业务流程 。 同时 用 中国科学院软件研究所 事件驱动的 擎架构的设计与实现 4 述 的业务流程是完全可执行 和 可移植的 ,因此 一步分离 了业务逻辑与实现细节,提高了业务流程构建的敏捷性。 发服务器系统 本文研究的 擎系统是一个支持 言描述的业务流程运行的服务器中间件系统。 作用为一个互联网中间件服务系统, 擎将不可避免的大量处理并发请求。如何设计实现 擎使之能高效的处理并发将是 并发服务器通常采用多线程 ( 事件驱动 (种 模型 16。传统上大多数服务器软件都建立在 多 线程 /多 进程 模型基础上,如7 、 8。 但 在高负载条件下,多 线程 /多 进程 模型的主要问题是其自身及其上下文切换 造成 系统 较大 开销 , 这些开销是导致性能降低 的主要原因。 事件驱动模型是一种采用固定线程,并且有更高效的并发处理效率的模型。在高性能服务器设计领域采用事件驱动模型的研究和实现 越来越多,如 几种 9, 0, 1, 2, 存: 23。 在 统中有一组事件 处理不同类型的事件。主 程序进程开启一个循环,不停的收集到达的事件,并调用事件对应的 行处理。 用了一个辅助进程池,处理 I/O 操作,路径转换,列出目录内容,动态页面产生等。 此外,存在一些多线程 /多进程和事件驱动两种 模型 结合的混合 模型 的系统和研究, 文献 24中分析了多线程和事件驱动的特点,结合两种模型优点,提出一种混合的并发架构: 国内文章 25也提出一种类似的高并发的事件驱动架构: 究内容 基于上述的研究背景, 本 文 以事件驱动的并发 模型 的设计思想为主,并且结合多线程 模型 一些特点,提出一个高效的 擎架构的设计方案。解决 多 线程 模型 难以解决的一些问题,同时提高 擎 的 性能、伸缩性 、灵活性 和可扩展性。 具体 研究内容如下: 1. 首先分析研究基于事件驱动的并发 模型 的 擎的特点,确定采用有限状态机( 称 来表示执行期的 程实例,分析研究基于事件驱动的 擎 的总体结构和工作原理。 2. 深入 言内部,分析研究 义,确定事件的结构和功能,分析研究 限状态机 (型并制订 状态 转移规则。其中,重点分析的各种活动( 素的语义特点和它们的之间的组成关系,为 每 类 活 动 建 立 基 本 状 态 机 (模型并且制定完善的移规则。 3. 在以上分析和研究的基础上,给出完整的事件驱动 擎架构 的设计和实现 以及在系统实现中采用的重要的技术和设计 模型 。 中国科学院软件研究所 第一章 绪论 5 4. 最后分别基于 多 线程和事件驱 动两种 模型 的 擎做出性能分析和比较 ,验证采用事件驱动的并发 模型 带来的性能提升 。 文组织 论文的后续章节按以下方式组织: 第二章 对 擎系统技术 的 综述和分析 。 我们首先介绍 务技术和 言规范的 概况, 然后介绍 擎的工作方式接着分析比较多线程与事件驱动两种并发模型和它们在 擎设计上的应用特点 , 最后简单介绍基于多线程 模型 的 统的设计特点 ; 第三章介绍 基于事件驱动模型的 擎架构的系统原理。 首先介绍采用事件驱动模型的 ; 然后 分析 们根据 法规则,为每个 动元素定义了活动节点状态机的数据结构模型;最后分析了事件调度可采用的调度算法策略。 第四章 介绍 基于事件驱动 模型 的 擎 设计与实现 。首先介绍 统的设计目标和总体架构;接着,介绍在 型 ;最后依次对主要模块的设计实现、主体功能以及重点过程进行详细介绍。 第五章介绍 系统测试与性能分析工作 。 统和 统在各种压力下的测试数据,并且进行比较,得到最后的测试结论。 最后,第六章对全文工作进行总结。我们列举了论文工作的主要贡献,并且对进一步研究提出展望。中国科学院软件研究所 事件驱动的 擎架构的设计与实现 6 第二章 本章对 擎系统相关 的重要 技术进行综述和分析。 务是一种自描述的、模块化的 分布式计算模型。它采用可扩展标记语言 (义了 务协议栈,通过 供面向互联网应用的统一服务注册、 发现、绑定、及集成调用机制。开放标准的采用使得 务具有很好的互操作性,自描述、模块化的特性允许采用任何编程语言在任何平台上开发松耦合的应用部件,并通过适当的服务组合支持面向服务应用的集成和开发。 从发展的观点来看, 务技术是分布式对象技术发展的必然结果 。 布式计算所作的改进是 提供了 跨平台以及跨编程语言的互操作性 。 自从分布式计算成为 企业计算的 主流 计算范型 以来, 务的出现使得 我们首次拥有了一个建立在真正支持互操作性的开放标准基础上的 应用解决方案,主要表现在以下几个方面: 应用组件 之间 的松 散耦合 替代了 紧密耦合 。 传统的基于分布式对象技术的商业 系统和应用程序 都是 紧 耦合 的 , 它的缺点是对任何子系统的改变可能导致各种相关应用程序被破坏 。和 传统的应用设计依赖于组件之间的紧密耦合不同的是, 务只需要较简单的协同,便于在集成的服务发生问题时可以重新配置。正是这种 松散耦合将分布计算中的参与者隔离开来, 使得 交互 双方 某一方的 变 动并不会影响到另一方 。 动态的服务替代了静态的组件 。 传统的基于分布式对象技术中,组件是事先部署,其消息交互被固定在程序中, 它的缺点是对任何子系统的改变可能导致各种相关应用程序被 破坏 。 务的交互不是固化在服务的实现代码中,而是依赖服务复合的具体描述,所以 务可以在运行时动态地集成,容易满足新的业务需求。 平台 无 关 性 取代了 平台依赖性 。 传统 分布式对象技术中,组件的功能和接口也是分离的,但是 由于没有基于开放的标准,原有分布式对象技术受到 厂商和平台 的约束 。 务的 优势 在于它是 开放的和基于标准的 ,采用广泛 接受的标准 使 不同厂商 和平台 之间交互 成为可能 。 同时,由于 务是自描述的、自包含的和语言独立的,因此实现了真正意义上的 厂商 独立和平台 无关 。 务 是 建立在 一系列 开放 的 准 之上,由处于 不同层次的 规范构成的技术体系, 图 务协议栈的示意图。 中国科学院软件研究所 第二章 擎系统技术研究综述 7 图 我们首先简单地介绍 务的技术基础; 然后 在此基础上介绍与

温馨提示

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

评论

0/150

提交评论