【毕业学位论文】(Word原稿)一个基于Eclipse的OnceIDE集成框架设计与实现-计算机软件与理论_第1页
【毕业学位论文】(Word原稿)一个基于Eclipse的OnceIDE集成框架设计与实现-计算机软件与理论_第2页
【毕业学位论文】(Word原稿)一个基于Eclipse的OnceIDE集成框架设计与实现-计算机软件与理论_第3页
【毕业学位论文】(Word原稿)一个基于Eclipse的OnceIDE集成框架设计与实现-计算机软件与理论_第4页
【毕业学位论文】(Word原稿)一个基于Eclipse的OnceIDE集成框架设计与实现-计算机软件与理论_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

分类号 密级 编号 中国科学院研究生院 硕士学位论文 一个基于 成框架设计与实现 指导教师 黄涛 研究员 申请学位级别 硕士 学科专业名称 计算机软件与理论 论文提交日期 2008 年 5 月 论文答辩日期 2008 年 6 月 培养单位 中国科学院软件研究所 学位授予单位 中国科学院研究生院 答辩委员会主席 谢 冰 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明。 签名: _ 日期: _ 关于论文使用授权的说明 本人完全了解中国科学院软件研究所有关保留、使用学位论文的规定,即:中国科学院软件研究所有权保留送交论文的复印件,允许论文被查阅和借阅;中国科学院软件研究所可以公布论文的全部或部分内容,可以采用影印、缩印或其它复制手段保存论文。 (保密的论文在解密后应遵守此规定) 签名: _ 导师签名: _ 日期: _ I 摘 要 软件开发环境是开发人员进行软件开发活动的重要平台。传统的开 发环境对于开放性及可扩展性支持明显不足,而基于插件体系结构的软件开发环境如,由于其自身结构的特点,提供了较好的开放性和可扩展性,是目前软件开发环境的发展重要方向。 由于 软件开发工具 的 种类繁多 且彼此间的 关联多样化 ,基于插件体系结构的开放式平台不能有效地 满足 工具之间数据一致性约束以及跨平台调用 的 集成 需求。 针对上述需求的研究成果及解决方法仍存在不足。 论文针对以上问题,尝试提出了一个集成框架,以解决目前已有 开发环境在工具集成上的不足。该框架 分别提供基于模型同步和远程交互两种集成机制 ,分别致力于解决 插件工具在数据一致性上的同步需求 和 跨平台调用上 的 交互需求 。首先,论文抽取了开发人员实现具体模型同步过程的需求,形成模型 同步 模块 ,力求刻画模型 同步 的本质特征 并 以模型同步的方式满足一致性约束 。 由于插件大多采用 种模型 建模, 论文基于模型同步 模块 , 提供了对 的同步 支持 。 然后, 论文 对 远程交互 模块 进行了设计,归并了 跨平台调用引入 的通讯需求,构建了一个通信管理模块,该模块管理多种 议并且支持 异步 通 信方式 。 同时, 在该模块之上, 定义了插件远程交互的开发过程及 编程接口, 为分布式协作开发环境提供 支撑。 论文将集成框架应用到 中国科学院软件研究所开发的基于台的软件开发环境 )中, 通过 完成 基于 建的 件模型 与型 的 同步和基于 远程交互 模块 的共享日历事件管理工具 的导出 , 验证 了成框架在解决 数据一致性约束及跨平台调用两方面 集成 需求 的有效性。 关键字 : 集成框架,模型交互,分布式协作 I n i, is an of is of on is an of of of to a of of of on of At on to of is a of to an to of in of to on of on of of a of on a MF in of a by a PC At we a of to be of By eb OM of Weve of to of 一个基于 成框架设计与实现 1 目录 第一章 引言 . 1 究背景 . 1 文工作 . 2 文组织 . 3 第二章 相关技术综述 . 5 件开发环境结构的发展 . 5 成开发环境 . 5 扩展开发环境与插件体系结构 . 5 其插件体系结构 . 6 于 插件工具集成综述 . 7 于 插件集成需求 . 7 业界插件集成方法 . 9 插件集成机制 . 9 于模型转换的插件集成 . 9 集成工具 . 10 成框架需求分析 . 11 成框架在数据一致性方面的需求分析 . 11 成框架在跨平台调用方面的需求分析 . 12 章小结 . 12 第三章 成框架设计与实现 . 13 成框架 . 13 于模型同步的集成机制的设计与实现 . 14 型同步模块设计 . 14 型同步模块的业务流程 . 17 型同步模块实现 . 17 型同步过程的设计与实现 . 20 结 . 30 于远程交互的集成机制的设计与实现 . 30 述 . 30 系结构描述 . 30 信模块的设计与实现 . 33 程模型 . 38 结 . 41 章小结 . 41 第四章 成框架在 发环境中的应用 . 42 析 . 42 于模型同步的集成机制在 的应用 . 44 用场景 . 44 件模型与 型的同步 . 45 署描述符编辑器 . 47 第一章 引 言 2 结 . 48 于远程交互的集成机制在 的应用 . 48 用背景 . 48 计与实现 . 49 用过程 . 50 结 . 51 章小结 . 51 第五章 结束语 . 53 文的贡献 . 53 一步的工作 . 53 中国科学院软件研究所硕士毕业论 文 一个基于 成框架设计与实现 1 第一章 引言 究背景 软件工具是一类 辅助计算机软件开发、运行、维护、管理、支持等过程中的活动或任务的软件。使用软件工具能节省软件生产开销,提高软件生产率和产品质量。 随着软件 自身 结构的日益复杂,为细化软件开发的分工,开发过程被划分为需求分析,设计建模,代码编写,部署监控等 多个阶段 。 软件工具 也 被进一步分类, 出现了针对各个阶段不同粒度的工具,如 模工具,调试工具等。众多纷繁的 软件 工具给用户在选 择和集成上都带来了许多问题,软件开发环境应运而生。 软件 开发 环境是按某种方式关联的软件工具集合 。 纵观软件 开发 环境的发展,可以把它们总结为五个发展阶段: 1945期,直接运行在裸机上的专用开发工具、 1960期,基于命令行的开发环境 ( 1980期,集成开发环境 ( 2000期,扩展开发环境 (及 2005 年开始兴起的协同开发环境 ( 早期 的软件开发环境 是一种集代码编写,调试运行等工具于一体的集成开发环境 。集成开发环境提供的特性主要聚焦于以语法为导向的编辑器扩展,用于增强用户的开发过程体验。 但是, 集成环境无法满足不断出现的新开发工具的集成需求。于是,软件开发环境发展到一个可扩展的环境的阶段 。 可 扩展开发环境基于一定的集成和扩展体系结构,由一系列互相依赖的工具组成。 仅支持时间上的松耦合开发,也支持空间上的分布开发,并且开始考虑对非软件依赖因素的管理。 供的特性包括重构支持、需求变更管理、配置管理、建模等。典型的代表 有 : 、 。其中, 台,它确定了一整套工具接口和模型规范,可以 将 众多工具集成为一个整体。 目前,可扩展开发环境仍然是软件开发环境的主流。 在 可 扩展 开发 环境 下, 人们 集成多种软件工具以满足开发需求 。 以台 为例,它 提供近百种 工具,覆盖范围包括多种编程语言的 支 持 (+、 ), 具 ( 建模 ( 图形系统 (。 软件开发不仅仅是单纯的编码,它是团队开发者相互合作设计解决方案,构建高质量代码的协同过程。 以协同开发思想为基础的协同开发环境成为 软件开发环境的 发展趋势。 第一章 引 言 2 在 可 扩展软件开发环境 中 , 不同的工具 以插件 (见第二章插件体系结构介绍)的形式 被包含在同一个开发平台之上 。 插件 之间存在不同类型的 关联 ,这些 关联可以被分为直接关联与间接关联两种 : 1) 直接关联 表现 为一个插件声明对另一个插件的引用,并在 代码中调用该插件的方法。 更进一步地,当两个插件处于同一开发环境中时,称它们之间的调用是本地调用,否则,称其为远程调用。 2)间接关联是两个插件由于数据或功能上的相关而产生 的关联 ,这种关联可能是某种约束,也可能是某种依赖关系 。 根据上述分析, 可以 认为这两种关联是插件集成需求的主要来源, 即 插件集成是将一组插件以某种机制连接起来的过程, 该机制 需要负责插件间的通信、维护插件间的关联。 在 插件集成过程中,存在以下两个典型的场景: 1)插件往往包含一个或多个模型,两个插件之 间可能存在数据一致性的要求, 模型同步是这种要求的一种具体体现。 例如,在 用开发中, 以 件模型为输入, 编辑 件 的视图,与 以 型为输入 编辑部署描述符文件 的视图,两个视图的集成,需要一种机制负责它们的信息同步, 这种信息同步 表现为 件模型与 型的同步。 2) 在 分布式协作 开发环境 下,各个开发人员可以通过服务器端管理工具 实现 协作,这种协 作 往往通过跨平台插件 间的远程 调用完成。 例如,服务器端有一个任务管理插件,开发人员 在客户端, 通过查询 该插件希望 获得任务描述, 这个查询动作就是一 个跨平台 远程 调用过程。 目前, 工业界虽然存在多种集成方法( 见 第二章的 工业界插件集成方法介绍 ),然而,对于 上述两个场景,并没有一种有效的集成 手段。 已有 的 解决 方案都是 通过 为具体的两个插件 定制 一种模型同步的过程或者是远程通信方式 来实现插件集成 , 缺乏可移植性和复用性。 为 此,需要一种更为 普适的 集成 方法, 可以完成符合一个场景的一类插件的集成。这种需 求 正是本论文的起点和目标。 文工作 论文工作主要围绕上 述 需求 展开研究。 (1) 成框架的设计与实现 中国科学院软件研究所硕士毕业论 文 一个基于 成框架设计与实现 3 针对插件集成在数据一致性及跨平台调用两方面的需求 ,论文 构建 包含一个模型同步 模块以及一个远程交互模块 。 论文 以保持模型同步的方式满足数据一致性约束,设计实现模型同步 模块 。该 模块 不仅实现结构化模型的同步过程, 并通过 监听 机制捕获和追溯 模型 的更新过程,实现 同步过程 的细粒度 自动触发。 基于模型同步 模块 ,论文还实现了 14与 型 29的同步,为实现基于 建的模型与 型的同步提供支持。 另一方面, 论文 通过 远程交互 模块 支持跨平台调用 。 模块 包含 一个通信管理模块, 针对跨平台调用引入的 通讯需求 , 管理多种 议 1923并且支持通讯交互的异步机制。在该模块之上, 定义 提供一组编程接口, 以及 一个开发过程,遵循该过程可以将远程插件导出以被远程调用。 (2) 成框架 在 的 应用 论文 分析 集成方面的具体需求, 给出 集成框架在 的应用。基于 型同步 过程,论文实现 件模型与 型的同步过程 ,用于 发环境 下 程 的 开发,同步 程管理 过程 与 置文件 编辑 过程,使得 发环境更加统一。 用远程交互 模块 支持跨平台调用, 为 分布式协 同 平台 提供基础支持 。论文以 的 日历 事件管理工具为例,扩展远程交互 模块 的编程接口,导出该工具,使其能够被跨平台访问 。按照同样的方式,可以向 文组织 论文的后续章节按以下方式总结: 第二章给出 相关技术 综述 。首先介绍 软件开发环境结构的发展,给出插件开发体系结构与 的概述;接着 分析 件 的发展趋势以及插件间的关联方式,并给出工业界已有的插件集成方法介绍 ; 最后,基于上述研究, 分析集成框架的需求。 第三章介绍 成框架的设计实现。 论文 首先 针对上一章提及的集成需求,引出 成框架 及其 体系结构 介绍。接着 , 依次从设计 方案 、业务流程以及 各 模块的具体实现 三个方面详细介绍了 成框架的 基于模型同步的集成机制的设计与实现 。 在分析 型同步的 需求和 意义后,论文按照模型同步 模块 定义的开发过程,依次给出 型同步过程的实现。 然 后,论文详细描述了 远程交互 模块 的体系结构,从多种协议的支持、异步通信方式两个方面介绍了通信模块的设计实现,并给出编程模型 介绍 及相关接口设计。 第一章 引 言 4 第四章介绍 成框架 在 的应用 。 论文 首先 简要 介绍存在的集成需求。随后,论文 详细 分析了 模型同步 模块 的应用场景,给出了 件模型与 型的同步 实现,并介绍 基于该同步构建的部署描述编辑器 。 最后,论文详细分析了远程交互 模块 的应用场景, 给出 日历事件管理 工具 导出过程的设计与实现。 第五章对全文的工作进行了总结,并对进一步的研究提出了展望。中国科学院软件研究所硕士毕业论 文 一个基于 成框架设计与实现 5 第二章 相关技术综述 可扩展开发环境为构建各种功能的软件开发环境提供一个基础平台,各种产品都在其上扩展出面向不同领域的解决方 案,并由此发展出一系列与关的技术 与需求 。 本章 首先介绍软件开发环境的结构发展,引出 其插件体系结构 ;随后分析了 在 台上 进行插件开发的 趋势 , 以及由插件关联引起的集成需求, 并介绍了工业界 已有的一些集成方法;最后从两个集成场景的需求分析中引出论文工作。 件开发环境结构 的 发展 成开发环境 软件开发 早期,人们为了使开发过程更加简单化, 将软件开发、调试和运行相关的工具以紧耦合的方式整合在一起, 形成 统一的 集成开发环境。 由于有专业的软件开发商负责集成开 发环境的 整合、更新、升级以及维护, 软件开发人员 可以专注于软件的开发,而无须考虑软件生产工具的组合 及 软件环境的搭建。这样大大提高了软件 的 生产效率。 但是,不同的软件开发商 提供的 集成开发环境 架构 设计 及实现各不相同 ,工具间的接口 多样且 互 不兼容 。随着软件开发 日益规模化,开发人员对 软件工具的需求 日益 多样 化 。 缺乏可扩展性 、更新缓慢、难以维护 使得集成开发环境无法适应 软件开发人员对于开发环境可扩展、可灵活配置,开发工具可协作的需求。 扩展开发环境与插件体系结构 为了解决集成环境的可扩展性差 的缺陷 , 工业界 引 入 一种“微内核 +扩展 体 ”的插件体系结构 。 插件 是 一种结构化组件, 封装 代码(和或文档) , 并对自身结构进行描述。 插件独立地实现 一 个或 一组 功能,在不对原系统作修改的情况下将该功能添加至系统 。 在 插件 体系结构 中, 微内核组织、管理、运行扩展 体 , 而扩展 体 作为外围设备按照一定的规范编写并运行在微内核之上 。 插件体系结构 目前 被很多开发环境所使用,如 等。 插件体系结构的一个典型代表是 架 1。 简称,包括 两方面的含义,一方面第二章 相关技术综述 6 是指 织本身,另一方面指由该组织制定的基于 言的一系列服务规范以及基于这些规范的实现 体系架构是基于插件式的软件结构,包括一个 架和一系列插件 。 架负责 向框架之上的应用(称为 供一种标准化的环境。如图 2架 可 以 被划分为 如下 层次: 运行时环境( : 运行时环境为整个 架提供一 个 境的支持, 都是有效的运行时环境 模块( : 模块层则定义一种加载策略,允许模块间类的共享并将这种共享控制在安全策略中 生命周期管理( : 生命周期管理层则为应用提供如启动、结束、安装、卸载等动态特性,使得整个框架可以动态扩展 服务注册( : 服务注册层为模块提供一种运行时的共享功能,并定义大量的事件来捕捉服务的添加、删除等动作 其插件体系结构 目前 业界比较成功的基于插件体系结构的软件开发平台,其架构如图 2示。 为整个系统的基础,是一个专门为插件提供运行时 支撑的 容器,其本身不具备任何面向用户的业务功能。所有的业务功能,都封装在 插件中。 的 发工具包)和 件开发环境) 等工具都基于 插件 方式 实现 4。 图 2台体系结构 版本 始采用 为其底层运行时组件模型 ,实现图 2架结构 中国科学院软件研究所硕士毕业论 文 一个基于 成框架设计与实现 7 中的 块 。 体系结构如图 2示: 图 2 于 间,为 供了一个发现插件( 的 更新插件和卸载插件的平台,其中 管理插件包括管理插件的生命周期 和加载过程 。 供的推迟加载( 机制 1降低了启动时间和资源消耗(主要是内存资源)。 在 上, 包括 所有 中, 供 境下的 运行环境。 责管理插件的更新; 件负责 向后兼容,使得旧的 以应用在新的平台下。 在 上,所有的应用都实现为一组 间相互协作实现应用 的功能。任何一个 是一个 于 插件工具 集成 综述 于 插件 集成需求 基于插件体系结构的 台提供了一个开放式的环境,并鼓励在 其 上开发各种辅助工具。 随着开发领域的逐渐广阔,各种辅助工具层出不穷, 从代码编辑工具、建模工具、调试工具到过程管理工具, 无一不 成为 台 关注的焦点 。 对 台的扩展,即插件开发, 可以 分为以下几个方 向 : 第二章 相关技术综述 8 (1) 开发工具的功能完善 软件开发环境最直接的需求就是辅助开发人员 进行软件的设计、开发。因此 ,适应不同领域的软件开发的需求,提供各种功能 的开发工具 实现是 台插件开发的一个大的部分 。这些功能一般地分为模型设计、代码编辑、调试分析、部署监控这四个方面 , 具体 涵盖对 多种编程语言 的支持、对 用开发的支持、建模工具以及图形编辑工具等等。 (2) 开发过程的管理 随着软件开发的规范化,各种软件开发 框架 层出不穷 , 它们 在开发流程、开发文档保存、开发协作上各不相同。 作为软件开发的平台 ,保持对开发框架的支持是当前的开发热点之一。 (3) 分布式协同的支持 软件开发过程首先是一个协作的 过程,软件开发环境往往需要为开发人员创建一个协同工作的环境,支持开发人员在环境内部进行通信、文件共享、项目管理等行为 ,具体产品有 源代码控制系统、即时通信系统等 。 这些纷繁复杂的插件工具都遵循 插件编写要求,将自身添加到平台之上。 然而,这些插件彼此并不是孤立的,它们之间往往存在各种直接或间接的关联。 在描述这些关联时, 我们 首先 从调用者的角度,将插件(被调用者)分为两类: 本地插件(调用者通过本地方法调用获取插件的功能,简单地可以认为调用者和插件处于同一个 拟机中) 远程插件(需要在调用者 和该插件之间建立远程通信, 通过某种协议 获取插件的功能) 在上述分类的基础上,我们将插件之间的关联分为两种: 一种是 直接关联 ,即一个插件需要调用另一个插件的某个方法,根据插件的分类,这个调用的被调用者既可能是本地插件,也可能是远程插件。本地插件调用本地插件 的过程, 是一个 直接调用 编程级 接口 的过程。 而本地插件调用远程插件的过程, 则是一个本地插件获得远程插件的接口 ,通过远程通信协议,调用远程插件的相应方法的过程。 另一种是 间接关联 ,只要两个插件之间有某种关系需要满足,我们都可以称其为具有间接关联。这种间接关联可能 是 一个 插件 从 功能上 扩展另一个插件, 也可能是插件 间数据一致性的需求 。 插件集成是由插件之间的关联引起的, 在组合这些插件时,开发环境需要 有多种集成机制,支持、维护这些 关联,使得各种插件可以正常地运行在同一开发平台之上。 中国科学院软件研究所硕士毕业论 文 一个基于 成框架设计与实现 9 业界 插件集成方法 插件集成机制 围绕在运行时模块四周的插件 根据 系结构提供的交互方式按照不同的开发层次组织起来 。 这种交互方式主要是通过一种叫扩展( 机制实现的,此外还有其他一些方式组织各种插件 4。 (1) 扩展机制 扩展( 一个关键机制,插件利用扩展向 台添加新功能 。 但是扩展不能随意地创建,必须按照扩展点( 义的规范进行明确的声明, 能识别出这些扩展 。 所谓扩展点,就是 义出来可以让用户扩展的地方,可以认为是一些扩展的契约;而扩展,就是用户对这些扩展点的实现 。 用户不仅可以使用 且可以定义新的扩展点,并 对 该扩展点进行扩展 。 扩展机制实际是一种互操作的通用设计原则,即规 范化的接口和配置 。 插件通过实现其他插件的扩展并被其他插件实现自己的扩展,从而形成一种围绕在台运行时的互相关联、向外辐射的层次结构 。 (2) 其他方式 插件除了利用配置扩展点的方式关联其他插件,还可以利用直接调用其他插件提供的编程一级的接口,如类、方法等 。 通过这样一种调用方式,插件之间建立起互相依存的关系 。 考虑到安全问题,有些插件并不愿暴露所有的接口,因此 定义了一种机制,通过配置文件中 将 包分为可导出的以及不可导出的两种,从一定程度上限制了其他插件对它的访问 。 于 模型转换的插件 集成 议将开发过程划分为平台无关的设计阶段,如 模,以及平台相关的实现阶段,如代码编写。开发环境为支持这种模型驱动的开发方式,需要将面向不同开发阶段的插件整合起来 15。 这些插件之间存在一种间接关联,即前一个插件的输出 在 逻辑 上 是后一个插件的输入,但在格式上 不 完全 相同。 模型转换工具通过完成两者的转换以达到集成的目的。 是处理 通过编写转换规则对 相关技术综述 10 文件信息进行筛选、修改,从而完成两者之间的转换。但是,这种方式存在一些不足,首 先,使用该转换方法,用户需要了解目标模型的语法表示细节,而不是仅仅需要关注抽象结构;其次,这种转换方法并不支持调试,所有的转换过程都通过值传递来实现,引入了大量的结构拷贝动作,使得效率十分低下,并且对源模型的每一次修改都会导致整个源模型文件的重新转换。 3提供一种语言,可以描述 型之间的关系,定义它们之间的转换规则。 拟机解析并执行这些规则,完成相应的转换。 言定义的规则仅仅支持单向转换,有一些研究工作扩展 拟机,为源模型元素与生成的目标模型元素建立一种可回朔的关系,从 而支持双向转换及同步。同样的,利用 转换也无法支持细粒度的修改,对源模型或目标模型的修改,总是会触发整个模型的转换过程。 集成工具 是基于 集成开发环境,它在 1基础上进行进一步的开发 。 该开发环境包括了 产品 ,集成了大量的插件工具 。 各个 发阶段的制品通过集成工具关

温馨提示

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

评论

0/150

提交评论