




已阅读5页,还剩53页未读, 继续免费阅读
(计算机应用技术专业论文)设计模式在eclipse插件开发中复合应用的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖北工业大学硕士学位论文 摘要 随着计算机技术的不断发展,软件产品已深入到社会的各个领域协助人们完 成各种各样的任务。软件产品的质量在应用中扮演着重要的角色,如何保障高效 高质的开发软件产品成为软件产品开发的重要议题。软件能力成熟度模式,统一 过程,u m l 语言的问世也标志了人类在软件工程领域内的努力。不可忽视的是, 设计模式也扮演着重要的角色,促进了软件业的发展。设计模式为某些经常反复 出现的问题给出了成熟的解决方案,采用设计模式可以避免在同类问题上反复的 纠缠,同时也有助于提升软件产品的健壮性。 数据库产品广泛的应用在各个领域,尤以关系型数据库最为突出,在实际应 用中居于主导地位。根据实际情况的需要,可能需要同时使用多个不同厂商提供 的数据库产品,而与之相匹配的数据库管理工具却互不兼容,需要使用者在多个 管理工具阃切换,操作极为繁琐。 基于j a v a 的可扩展开发平台e c l i p s e 提供了一个开发平台,允许软件以插件的 形式在其上运行,由e c l i p s e 来提供统一的、美观的图形界面。并且由于插件基于 同一种架构,因此任何第三方插件都可以和e c l i p s e 无缝的集成在一起扩展其功能。 同时,m v c 设计模式和g o f 设计模式的广泛应用也对软件产品的开发起着积极 的作用。随着e c l i p s e 插件技术的不断发展,通过插件扩展e c l i p s e 平台功能的应用 会越来越广泛。 本文的目标是通过开发一个基于e c l i p s e 平台的多种关系型数据库管理工具来 说明设计模式在软件开发过程中的应用。本文首先阐述了e c l i p s e 的体系结构以及 插件开发相关的知识,其次对部分设计模式进行详细的说明,由于设计模式是人 类在过去经验总结的基础上得来的,较为抽象,因此文中还给出了相应的示例加 以说明。在充分理解e c l i p s e 插件开发原理和设计模式的基础上,结合实际情况, 设计并实现了用于不同数据库产品管理员的插件。设计模式的应用不仅快速的解 决了实际开发中的问题,同时也缩短了软件开发周期。 关键词l 设计模式,f 圮l i p s e ,插件 湖北工业大学硕士学位论文 a b s t r a c t w i t l lt h ed e v e l o p m e n to fc o m p u t e rt e c h n o l o g y , s o f t w a r ei su s e dw i d e l yi ne v e r y d o m a i nt o h e l pp e o p l e h i e v ev a r i o u st a s k s i na p p l i c a t i o nd o m a i n , t h es o f t w a r e s q u a l i t yp l a y sa l li m p o r t a n tr o l e h o wt oe u s u r et h eq u a l i t yw i t hr a p i dd e v e l o p m e n ti sn l l i m p o r t a n ti s s l l e mi n v e n t i o no fc 删r u pa n du m li n d i c a t e sp e o p l eh a v ed o n e s o m e t h i n gi ns o t h c a r ee n g i n e e rd o m a i n a n dd e s i g np a t t e r na l s op l a ya l li m p o r t a n tr o l e a n di m p r o v et h ed e v e l o p m e n to fs o f t w a r ei n d u s t r y e a c hd e s i g np a t t e r np r o v i d e st h e g o r eo f t h es o l u t i o nt oap r o b l e mw h i c ho c c a r so v e ra n d0 v e l a g a i ni no u re n v i r o n m e n t d e s i g np a t t g l l l sc a nh e l pu st os o l v ep r o b l e m sq u i c k l y , a n de n h a n c et h es o f t w a r e s h a l e n e s s d a t a b a s ea l s oi su s e dw i d e l yi 1 1e a c hd o m a i n a n dr e l a t i o n a ld a t a b a s ei st h em o s t i m p o r t a n tp r o d u c t ;i nf a c t , m o s te n t e r p r i s ea p p l i c a t i o n sa d o p tr e l a t i o n a ld a t a b a s e st o s t o r ed a t a b u tw em a yu s ev a r i o u sd a t a b a s e a c c o r d i n g t oe n v i r o n m e n t e a c h m a n u f a c t u r eo fd a t a b a s e sp r o v i d e sap a r f c u l a rt o o lt om a n a g et h er e l a t i o n a ld a t a b a s e b u tt h e s et o o l s i r ei n c o m p a r a b l e ;w en e e de h a u g eo u rc h o i c e st of i tt h ec o n c r e t e d a t a b a s ep r o d u c ta c c o r d i n gt ot h ee n v i r o n m e n t e c l i p s ei sa ne x t e m i b l ed e v e l o p m e n tp l a t f o r mf o rb u i l d i n gi n t e g r a t e ds o f t w a r e , w h i c hb a s e do nj a v a a l ls o f i w a r e ,w h i c hb ei n s e r t c di n t oe c l i p s e a r ec a l l e dp l u g i n e c l i p s ep r o v i d e su n i f o r m , m c eg r a p h i cu s e ri n t e r f a c e b e c a a s ea l lp l u g i nh a st h es r m e a r c h i t o c t u r e s oe a c hp l u g - me a r lb ei n s e r t e di r i t ee c l i p s e u s e rd o e s n tn e e dc o n s i d e rt h e c o m p a r a b l eo f p i n g - i n a tt h es a m et i m e ,t h eg e n e t i ca p p l i c a t i o no f m v cd e s i g np a r e m a n dg o fd e s i g np a t t e r nh a sp o s i t i v ee f f e c t w i t ht h ed e v e l o p m e n to f p l u g - i nb a s e do n e c l i p s e t h ea p p l i c a t i o nw i l lb em o r ea n dm o r ep o p u l a r 1 1 1 cg o a lo ft h i st h e s i si st od e s i g na n dr e a l i z eag e n e r a lr e l a t i o n a ld a t a b a s e s m a n a g e m e n tt o o lt oc e n t r e lv a r i o u st e l a t i o n a id a t a b a s ep r o d u c t s f i r s t l y , i td e s c r i b e st h e a r c h i t e c t u r eo fe c l i p s ea n dr e l a t e dt e c h n e l e g y s e c o n d l y , s o m ed e t a i l e di n s t r n c t i o n sa r e d e s c r i b e da b o u td e s i g np a t t e r n b e c a u s eo ft h ea b s t r a c t i o no fd e s i g np a u e r n ,s o m e e x a m p l e sa r eg i v e i lt o a s s i s tt h ed e s e d p t i o n s e v e n t u a l l y , f u l l y u n d e r s t a n d i n gt h e t h e o r e t i co fp l u g - m d e v e l o p m e n t a c c o r d i n g t oa c t u a ls i t u a t i o n d e s i g n e d a n d i m p l e m e n t e dap l u g i nu s e do nc o n t r o lv a r i o u sr e l a t i o n a ld a t a b a s e 1 1 a p p l i c a t i o no f d e s i g np a u e r n sn o to n l ys o l v ep r o b l e m sr a p i d l y , b u ta l s od c c t c a s c st h ep e r i o do ft h e d e v e l o p m e n to f s o f t w a r e k e y w o r d a :d e s i g np a t t e r , e c f i p s o ,p l u g - i n 诹嘉1 1 工繁失法 学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,独立进行研究工作所取 得的研究成果。除文中已经标明引用的内容外,本论文不包含任何其他个人或集体己经 发表或撰写过的研究成果。对本文的研究做出贡献的个人和集体,均已在文中以明确方 式标明。本声明的法律结果由本人承担。 学位论文作者签名:嘶袋 日期:0 7 年月j 日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定。即:学校有权保留 并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授 权湖北工业大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采 用影印、缩印或扫描等复制手段保存和汇编本学位论文。 学位论文作者签名:唠 孳 日期:c 1 1 年月r 日 指导教师签名 日期: 习私 自皇日 湖北工业大学硕士学位论文 1 1 研究背景 第1 章引言 随着插件技术的不断发展与完善,无论是在应用领域还是在开发领域插件技 术都得到了广泛的应用。与w e b 领域中的应用相比,通过插件来扩展桌面应用相 对滞后,一方面是近年来w e b 应用的迅猛发展;另一方面虽然部分桌面软件采用 插件方式来扩展功能,但却没有一个统一完善的平台为插件提供公共的运行环境。 而开源平台e c l i p s e ”的出现改变了这种现状,将插件技术的应用发挥到了极致。 e c l i p s e 是一个开源软件项目,目的是提供一个健壮的、全面的集成开发环境 ( e ) ,由于采用了业界普遍使用的开放系统架构为插件开发提供支持,任何符 合该架构的第三方产品都可以与e c l i p s e 平台无缝的结合,使用户不必再为软件产 品的兼容性而苦恼。e c l i p s e 为各种应用软件提供了一个统一的平台,在e c l i p s e 中 所有的应用软件被统称为“插件”,e c l i p s e 为它们提供了统一、美观的操作界面。 随着e c l i p s e 插件技术及其应用的发展,插件开发中的问题也逐渐浮出水面。 如何实现插件与e c l i p s e 平台的无缝集成,如何设计插件的体系结构以及如何通过 降低插件内各模块白j 的耦合性,提升扩展性、复用性和降低维护成本成为插件开 发亟待解决的问题。设计模式的发展与应用为解决这些问题提供了解决方案。 1 2 国内外对设计模式的研究现状 设计模式为软件开发中经常反复出现的问题提供了解决方案1 2 】。因此,结合软 件开发的实际情况,应用合适的设计模式成为解决上述问题的一种有效的途径。 1 2 1g o f 设计模式 国外关于设计模式的研究起步较早。g o f 设计模式1 2 l 是第一次将设计模式提 升到理论的高度并将之规范化一共提出了2 3 种设计模式。g o f 设计模式是一 种抽象的概念,并没有具体代码或产品给予直观的印象,它侧重于提供解决软件 开发问题的一种成熟的方案,重点描述了耍让代码尽可能的重用这个宗旨。在可 复用面向对象软件的发展过程中,它推动了新的大量的设计模式在计算机应用各 个领域中不断出现,成为了某些设计模式( 如j 2 e e 设计模式l ,j ) 的重要理论基础。 设计模式的应用不仅有利于缩短软件开发周期,提高相似模块的复用性,同时也 湖北工业大学硕士学位论文 提升了软件产品的健壮性,即产品质量。 1 2 2m v c 设计模式 m v c 设计模式i m 是x e r o xp a r c 在2 0 世纪8 0 年代为编程语言s m a l l t a l k 8 0 发 明的一种软件设计模式至今已被广泛使用,最近几年被推荐为s u n 公司j 2 e e 平台的设计模式。m v c 设计模式强制性的把应用程序的输入、输出和处理分开, 将应用程序分为三个核心模块:模型、视图和控制器,分别完成业务逻辑、交互 界面和控制模型与视图的调度。m v c 设计模式的内部比较复杂,并不适合小型应 用程序。但是它实现了模型共享,降低了各模块问的耦合性,提高了应用程序的 灵活性和配置性,虽然最初构建框架时比较复杂,但提高了应用程序后期的开发 效率,并且也使更新与维护变得相对容易。 1 3 论文研究内容 本文所描述的数据库插件用于实现为多个不同类型的关系型数据库提供管理 功能,避免由于在多个特定的数据库管理器间频繁的切换而导致工作效率的降低, 同时降低了操作的复杂度这点对熟习e c l i p s e 操作的人来说最为突出。 本文首先讨论了e c l i p s e 的体系结构,然后对它的插件开发环境和开发原理做 了技术分析。在此基础之上,分析了基于e c l i p s e 开发平台的数据库插件结构并 提出了一种充分利用现有技术,采用m v c 设计模式将插件分为视图、模型和控制 器三部分,并结合g o f 设计模式和扩展点设计模式完成相应的设计与实现。其中 通过e c l i p s e 提供的扩展点设计模式和s w t j f a g e 技术来实现视图部分;在模型中 应用合适的g o f 设计模式完成相应的业务逻辑以满足插件的应用需求;事件监听 器则作为控制器用于协调视图和模型。 本文的研究工作包括以下几个方面: ( 1 ) e c l i p s e 平台体系结构及其插件开发技术的研究与分析。 ( 2 ) g o f 设计模式的研究与分析。 ( 3 ) m v c 设讣模式及其实现方案的研究与分析。 ( 4 ) 结合上述三点实现了一个基于e c l i p s e 平台,工作在w i n d o w s 操作系统上 的数据库管理插件。 1 4 论文的组织结构 本文内容的组织结构如下: 湖北工业大学硕士学位论文 第l 章阐述了本文的研究背景,国内外关于设计模式的研究现状以及研究的 内容和目标。 第2 章描述了e c l i p s e 的体系结构、插件的开发原理,并对开发中应用到的g - o f 设计模式和m v c 设计模式进行了细致的阐述。 第3 章给出插件需求,设计原则,实现环境和应用环境,并作了需求分析和 模块设计。 第4 章在第3 章中需求分析和模块设计的基础上,详细的阐述了设计模式在 插件开发中的复合应用。 第5 章是全文内容的总结,并阐明了下一步的研究方向。 湖北工业大学硕士学位论文 第2 章e c ii p s e 与插件开发概述 2 1e c l i p s e 概述 2 1 1e c l i p s e 简介 开源软件( o p e ns o u r c es o f t w a r e ,o s s ) 是公开源代码的软件。开源软件的重要 特征包括公布源代码以及免费使用软件。 e c l i p s e 就是一个开源的软件产品,最初由i b m 公司投资4 千万美金开发研制。 2 0 0 1 年发布时由于设计缺陷饱受业界批评。直到2 0 0 3 年,e c l i p s e 发布2l 版时才 引起业界的重视,而后,i b m 公司把e c l i p s e 作为一个开源项目捐赠给了开源组织 e c l i p s e o r g 。从此e c l i p s e 凭借着其独创的平台特性和对插件技术的灵活应用吸 引了众多知名公司加入到该平台,促进了e c l i p s e 平台的迅速发展。至2 0 0 6 年, e c l i p s e 占有j a v ai d e 市场份额的4 5 ,居于首位。 2 1 2e c l i p s e 体系结构 e c l i p s e 是一个开放源代码的、基于j a v a 的可扩展开发平台,即普遍适用的 开放式扩展i d e i l j 。e c l i p s e 提供了功能丰富的开发环境,允许开发者高效地创建能 与e c l i p s e 平台无缝集成的软件( 插件) 。 e c l i p s e 的体系结构由平台加插件组成。e c l i p s e 平台运行时( r u n t i m e ) 是整 个系统的核心,专门为插件提供运行时容器,其本身并不具备任何面向用户的业 务功能,如果没有插件的支持,e c l i p s e 平台的运行时就是一个纯粹的容器,什么 也作不了。除了运行时核心外,e c l i r 还包括工作平台,工作空同,帮助和团队 组件。在此基础上大量的插件为e c l i p s e 平台提供可用的应用程序。e c l i p s e 的体系 结构如图2 i 所示。 4 湖北工业大学硕士学位论文 e c l i p s e 平台 l 亲具卜 lj f “c 圃 :o - i 第三方 l 开发工具i 。泖 _ 1 插件 玉 l 粤坠l :o - l 第三方 一眄习 _ 1 插件 工作空问 :o - l $ - _ - :7 y 1 插件 最小运行时核心 ! ,。,: 图2 1e c l i l 镕e 体系结构图 ( 1 ) 运行时核心 e c l i p s e 运行时核心l i l 主要负责在指定的目录中查找可用的e c l i p s e 插件。每个 插件的m a n i f e s t 文件列举了该插件所需的连接,这些连接包含了提供给其它插件 的扩展点以及所需韵扩展点。运行时核心并不是在启动时加载全部插件,而是根 据需要动态加载插件以减少启动时间和资源需求。 ( 2 ) 工作平台 工作平台就是e c l i p s e 呈现给用户的图形用户界面,除了用于显示菜单和工具 外,最重要的一个功能就是组织包含各种视图和编辑器的透视图。 工作平台一个最显著的特征是它是一个原生的应用程序这点与普通的j a v a 应用程序不尽相同。这是因为使用了e c l i p s e 用户界面开发包s t a n d a r dw i d g e t t o o l k i t ( s w t ) 和j f a c e 来实现与通过模拟来实现界面的标准j a v aa p i sa w t 和s w i n g 实现机制不同,s w t 直接映射操作系统的原生窗口。 s w t 是e c l i p s e 中一个非常有争议的方面,因为s w t 必须与承载e c l i p s e 平台 的操作系统相匹配,但是与s w t 的实用性相比,这点显得并不是那么重要,因为 目前主流操作系统( 如w i n d o w s ,l i n u x ,s o l a r i s ,m a co sx ) 都支持s w t 的各 种特性。虽然e c l i p s e 采用s w t j f a c e 来支持它的图形用户界面,但这并不意味着 在编写j a v a 代码时必须使用这种工具包,a w t s w i n g 同样也可以,只是在开发基 于e c l i p s e 的插件时必须使用s w t j f a c e t 6 1 t s l 。 ( 3 ) 工作空间 湖北工业大学硕士学位论文 工作空问用于管理用户资源。工作空日j 的每个子目录与一个或多个e c l i p s e 项 日相对应,每个工程可以包含文件夹和各种格式的文件。一般而言,文件夹即为 工程目录的子目录,但是可以处于文件系统中的任何位置,并不要求一定是项目 文件夹的子项目。 工作空间同时维护用户对资源操作的历史记录,减少丢失资料的风险。这使 得用户可以即时取消当前操作或者回复到以前的版本。当然,这取决于用户对历 史记录的设置。工作空间也负责通知用户与工程相关工具的更改。这些工具负责 标记与工程相关的属性。 ( 4 ) 帮助与团队支持 与e c l i p s e 平台相似,帮助组件本身也是个可扩展的文档系统。插件开者提供 采用x m l 文件格式定义导航结构的m m l 文档。通过映射方式,插件文档可以 与e c l i p s e 自身的帮助文档系统无缝的集成在一起。团队支持插件运用版本控制系 统( c v s ) 口l 管理用户项目资源并通过定义所需的工作流从“仓库”存储和还原 项目资源。 e c l i p s e 的设计思想是一切皆为插件。e l i p s e 的运行时核心是非常小的,其它 所有的功能都以插件的形式附加到此核心之上。这样的功能插件包括它的图形a p i ( s w l 讦a c e ) 、j a v a 开发环境插件( j d 一1 l f ,】) 、插件开发环境( p d e l l 心) 等。e c l i p s e 还对这些插件的协同工作提供了良好的支持,不仅安装简单而且无缝集成。 e c l i p s e 对这些插件是动态载入动态调用的。所谓动态调用就是指只有当 e c l i p s e 启动后要真正用到这个插件时,它才会被调入内存,当插件不再被使用时, 就会在适当的时候将插件清理出内存。因此即使安装了多个插件。也不必担心那 些不常用的插件占据内存,消耗有限的系统资源。 利用这些插件,可以重复的构建新插件( 工具) 来满足应用的需求,实际上 e c l i p s e 也是通过其自身来完成开发任务的。 2 1 3s w t ,l f a c e s w t ,陌c 本质上是软件库,由包含j a v a 类和接口的包组成。通过s w t j - f a c e 提供的组件可以构建形式丰富的图形用户界面。采用这种方式开发的图形用户界 面不仅运行速度快,而且能有效的使用内存,同时能根据基于的操作系统显示与 该操作系统提供的默认样式相同的用户界面。并且不需要重新编写代码。而其它 的j a v a 图形库并没有提供上述的特性。 虽然s w t i j f a c e 都实现了上述目标,但是它们实现的机制却有所不同。s w r 采用手动方式提供对操作系统内部的访问与控制,但是使用时极其复杂。与s w r 6 湖北工业大学硕士学位论文 相比,j f a c e 提供了创建图形用户界面的捷径,简化了图形用户界面的开发,自动 地完成了许多功能,节省了用s w t 创建所需的时间。在事件处理方面,s w t 需 要分别对每个事件进行单独的处理,因此编写的代码不仅冗长而且复杂。f a c e 则 将事件的处理组合在一个单一的对象里,使得开发人员只需要关心对事件响应的 处理,而不必关心事件是如何触发的。因此,使用j f a c c 添加上下文菜单、工具栏 等g u l 组件相对容易。同时,j f a c e 在对系统内部的控制和访问以及事件处理也相 对容易,但这并不意味着j f a c e 是用来取代s w t 的,因为它失去了对图形用户界 面操作的弹性。因此,在开发插件的图形用户界面时需要综合考虑这两种库应用。 2 1 4e c l i p s e 的未来 e c l i p s e 支持富客户端平台( r i c hc l i e n tp l a t f o r m , r c p ) u ”应用开发模式,用 户试图除了将e c l i p s e 作为开发工具的基础平台外,还可作为更普遍的商业应用基 础。也就是说,除了将e c l i p s e 作为最基本的开发平台使用外,更多的是将其作为 一个通用的承载其它应用软件的应用平台,提供统一的界面样式和运行内核,通 过加载各种实用的插件为用户提供应用体验。美国国家航空航天管理局( n a s a ) 火星探测计划的管理用户界面就是一个e c l i p s e r c p 应用。通过这个应用,工作人 员可以控制在火星上运行的火星车,这也是一个比较著名的e c l i p s e r c p 应用 2 2o s g i 技术概述 2 2 10 s g i 简介 o s o i ( o p e n s e r v i c e g a t e w a y i n i t i a t i v e ) 【“】技术提出了面向可复用组件的标准 化规范。o s g i 技术提供了面向服务的框架,可以在运行期安装、升级或者移除软 件组件而且不需要中断操作,同时软件组件可以动态的发现和使用其它库或应用 程序以利于相互问更好地协作。因为o s g i 技术提供了预构建和预测试的组件子系 统,所以采用o s g i 技术在缩短开发时间的同时也降低开发成本。o s o i 技术致力 于解决与软件重用性、健壮性和成本相关的问题。 o s o i 联盟已经开发出了多个满足通用功能的标准组件接口,比如h 1 _ 阻服务 器、配置、日志、安全、用户管理和x m l 等。兼容性插件机制使得用户可以根据 性能和成本的需求从不同的厂商手中获得所需要的软件。 2 2 2 0 s g j 架构 从e c l i p s e3 0 起采用o s c r i l l 2 j 作为它的插件架构【“,o s c d 架构主要由三种元件 湖北工业大学硕士学位论文 组成:框架、服务包和服务,其核心组件是o s g i 框架。框架架构在j v m ( j a v a v i r t u a l m a c h i n e ) 基础上,服务包就是执行在框架上的应用程序,而服务就是服务包所提 供或需求的界面服务。 o s g i 框架是集成的服务平台,主要功能是提供服务包的执行环境咀及动态地 管理服务包的生命周期。同时o s g - i 框架也提供相应的管理机制允许在其上运行的 服务包可以提供或使用服务。o s g i 框架的层次如图2 2 所示: 图2 2 0 s g i 框架层次图 ( 1 ) 执行环境 o s g i 的执行环境也即j a v a 环境规范,比如j 2 s e ,c d c ,m i d p 等都是有效的 执行环境。o s g i 平台标准化执行环境并作了些改动指定了在执行环境中使用o s g i 的最小需求。 ( 2 ) 模块 模块层定义了类的加载策略。o s g i 框架是基于j a v a 技术并添加了模块化,不 仅功能强大而且能快速地指定类加载模块。在j a v a 中,单一的类路径包含了所有 的类和资源,而o s ( i 技术则为每个模块添加相应的私有类和模块间的控制连接, 使厂商能够部署封闭系统或完整的用户管理系统。 ( 3 ) 生命周期 生命周期层负责添加可被动态安装、启动、停止、更新和卸载的b u n d l e s 。除 了添加用于在运行时管理模块的a p i 外,b u n d l e s 依赖于模块层对类的加载。一般 而言生命周期实现的动态性并不属于应用程序的一部分。依赖机制用于确保对 运行环境的正确操作。生命周期严格受到安全框架的保护避免受到病毒的攻击。 0 湖北工业大学硕士学位论文 ( 4 ) 注册服务 注册服务层与模块层协作完成服务包的动态性。传统的类共享并不支持动态 的调用和移除代码,而注册服务提供丰富的模块来实现服务包间的共享,提供了 动态性支持。服务包通过事件来操纵服务,服务可以是抽象的也可以是具体的, 比如m 1 甲服务和蓝牙手机模块,而服务安全模块用于确保服务包间的通信。 2 2 3o s g i 提供的服务 o s g i 提供的服务( 如图2 3 ) 包括标准服务和自定义服务。标准服务是由o s g i 框架自身提供的,而白定义服务由第三方厂商提供,与标准服务相比,弹性大。 图2 3o s g i 标准服务结构图 o s g i 框架服务 j 3 l 包含权限管理服务、包管理服务、启动优先级服务和对u r l 的操作,这些服务要么是框架服务的一部分,要么直接作用于操作框架。系统服 务提供了一些必须在服务包运行前就在实体系统上具有的服务,包括同志服务、 配置管理服务、设备访问服务、用户管理服务、i o 连接器服务和参数化服务。通 过这些服务可以完成日志的记录,用户管理以及对数据库的访问等工作。协议服 务用于实现o s g i 服务与外部协议的映射。而其它服务则包括x m l 解析服务,初 始化规则和外部应用程序访问服务等。 无论是标准服务还是自定义服务都是通过j a v a 接口来指定的。服务包可以实 现这些接口井通过注册服务模块来完成服务的注册。客户端可以在注册表中查找 湖北工业大学硕士学位论文 这些服务并加以运用。 2 3e c l i p s e 插件开发概述 插件是为系统提供功能的代码或数据的结构化包。可以以代码库、平台扩展 或文档的形式来提供功能。插件可以定义扩展点、定义良好的位置,其它插件可 以在这些位置添加功能。 从上面的定义可以看出,对插件管理系统解决方案的基本要求包括动态地添 加新插件和停止现有插件,而o s g i 框架规范符合上述的要求,因此e c l i p s e 采用 o s g - i 框架规范实现自身的插件框架。 2 3 1e c l i p s e 与o s g i 的关系 从本质上讲e c l i p s e 是通过o s g i 来驱动的。e c l i p s e d e 使用包含模块化和服 务包生命周期的一个o s g i 子集,并最低限度的使用了o s g i 提供的服务支持。但 e c l i p s e 并没有采用o s g i 规范中定义的方式来实现服务问的交互,而是通过自身 的扩展点设计模式实现。这样,服务包将自身的功能暴露给其它扩展的同时也提 供了基于自身的扩展,允许向其它服务包提供功能。 e c l i p 平台中的参数选项窗r 就是一个基于扩展点的示例,核心e c l i p s e 插件 提供主窗口,井定义扩展点以允许扩展其它服务包的参数定义。因此,当插件添 加到e c l i p s e i d e 时,它们可以提供自身的参数定义页面。e c l i p s e 模型与o s g i 的 基本服务不同,服务包扩展点由定义的服务包拥有,其它服务包只针对这些扩展 点提供服务。相反,任何服务包可以实现和使用o s c r i 服务。 2 3 2 插件开发环境 插件开发环境i l z l ( p d e - p l u gd e v e l o p m e n te n v i r o n m e n t ) 是一个辅助e c l i p s e 平 台插件开发的工具。在e c l i p s e 工作台中开发时,插件开发环境可以用来帮助用户 开发平台插件。但由于其本身也是一个基于e c l i p s e 平台的插件,因此不能作为一 个独立的工具运行。p d e 提供了一组平台扩展添加项,如透视图、视图和编辑器, 这些添加项简化了在e c l i p s e 平台下开发插件的丁作。e c l i p s e 为开发人员提供了统 一的工作平台,可以通过透视图管理相应的向导、编辑器和视图,从而有针对性 的提供相应的功能。 e c l i p s e 平台以树形结构组织项目,根结点即项目的名称,由开发人员自定义。 当使用p d e 透视卧”j 时,在树形结构中显示与项目相匹配的文件夹和文件。p d e 湖北工业大学硕士学位论文 查询工作区中的项目并特别注意那些将插件或者清单文件作为项目的直接子代码 的项目。如果某个项目拥有插件清单,那么p d e 就认为它是个插件项目。e c l i p s e 平台是基于插件这一概念的,而插件具有明确定义的结构和规范。p d e 的目标就 是确保开发人员在创建新插件时遵循相应的规则,以便平台与插件可以实现无缝 连接。p d e 在管理项目中的插件时每个项目都代表一个插件,并包含定义该插 件的文件平和文档,以及该插件与平台交互作用的方式。这些插件项目存储用户 的工作空间中,并显示在资源导航器视图或与其相关的其它视图中。 p d e 中最重要的概念是主机和运行时工作台实例的工作原理。 在启动e c l i p s e 时,工作台将使用它来处理用户正在构建的插件项目。在使用 p d e 或其它工具开发插件时,用户正在运行的工作台实例就是主机实例。在工作 台实例中可用的功能部件就是已安装在e c l i p s e 平台中的插件。当用户想测试或运 行插件时,e c l i p s e 会启动另一个工作台实例,即运行时核心,该实例包含与主机 实例相同的插件,还具有用户在主机实例中开发的插件。p d e 启动器将用户插件 与主机插件相结合,并创建运行时实例。 由于运行时工作台实例显示的内容来源于两个不同的插件( 当前工作空间和 原始工作空间) 所提供的功能部件的集合,因此p d e 将这些插件识别为两类: ( 1 ) 外部插件:可以把外部插件理解成己安装的插件。对这类插件,用户只能 执行浏览、调试或查看源代码动作,而不能进行修改,因为它们是只读的。 ( 2 1 工作区插件:工作区插件是那些还处于构建状态中的插件。它们受开发人 员的控制,可以以任何形式添加、删除和修改来完善插件的功能。 由于外部插件和工作区插件的来源和功能不同,因此p d e 以不同的方式处理 它们。例如,打开工作区插件的插件清单将在工作区中该清单文件上启动编辑器。 外部插件的相同操作将在引用主机安装位置中的插件清单文件的外部u r l 上启动 编辑器。 2 3 3e e l i p s e 插件开发原理 e c l i p s e 插件概念为包含一系列服务的模块。e c l i p s e 将插件间的关系分为两种; 依赖与扩展0 6 1 。通过o s g i 中元描述信息里添加需要引用的插件实现依赖关系;采 用了扩展点的方式来实现插件功能的扩展。 扩展是添加处理部件的一种方法,其结构图如图2 4 所示。任何定义自身扩 展点的插件允许其它的插件通过扩展处理部件来扩展自身的功能。扩展行为由扩 展插件定义并通过主插件来修改它的行为,这种行为包含两个部分:添加处理元 素到主插件和通过添加服务来自定义处理部件实现扩展插件。主插件与扩展插件 湖北工业大学硕士学位论文 之间的通信是通过“叫调”对象来实现的7 j 。回调对象本质上是一个基本的j a v a 对象,由e c l i p s e 平台负责初始化和管理。 e c l i p s e 插件体系结构中最重要的是扩展点( e x t e n s i o n p o i n t s ) 【l “,它提供了插 件扩展的接口,任何第三方插件都是在现有扩展点上开发完成的,并且还可以定 义自身的扩展点,以便其它插件可以在此基础上进一步扩展。 主插件 平台插件 e c l i p j e 平台插件 插件i d 扩展点扩展点扩展点 扩展插件 待扩展的e e l i p s e 平自插件 扩展插件 i 插件类i 1 “ 插件i d 图2 4 插件结构图 了解e c l i p s e 平台的启动流程( 如图2 5 ) 对开发插件是很有必要的。将插件 拷贝至。p l u g i n s 目录或将插件存储到系统任一目录并通过l i n k 文件实现连接, e c l i p s e 系统的核心部分在启动的时候要完成的工作十分简单:根据校验配置文件 是否发生变化决定是否注册插件。需要使用时动态的加载相应插件就可以使用了。 湖北工业大学硕士学位论文 图2 5e c l i p s e 启动流程图 在e c l i p s e 中实现的绝大部分功能是由相应的插件完成的。工作台界面插件完 成平台的外观显示,资源管理插件完成资源管理工作,而c v s l 8 1 插件用来负责 完成程序版本控制功能。虽然与e c l i p s e 相比多数i d e 已具备上述的部分或全部功 能,但是e c l i p s e 是通过插件模式实现这些功能,而其它的i d e 仅少数使用插件模 式,并且插件不易于开发。e c l i p s e 中用来开发j a v a 程序的j a v a 开发环境( j a v a d e v e l o p m e n t t o o l i n g ,j d t ) 也只不过是一个普通的e c l i p s e 插件而已,甚至可以使用 c ,c + + 开发环境( c ,c + + d e v e l o p m e n tt o o l i n g , c d t ) 实现在e c f i p s e 平台下完成 c ,c 什程序的开发。 插件是一种结构化的组件,它将代码添加至系统并以结构化的方式描述。插 件可以定义自身的扩展点,即经过严格定义可以扩展的功能点。当插件向扩展点 舔加实现时,就认为向平台添加了扩展。这些扩展和扩展点是在插件的清单文件 p l u g i n x m l 中声明的。定义扩展点与定义其它任何a p i 很相似,唯一的区别就是扩 展点是使用x m l 而不是使用代码特征符来表示的。而第三方插件也是使用x m l 湖北工业大学硕士学位论文 文件向e c l i p s e 平台描述它的特定扩展的。 插件开发环境p d e 不仅用于帮助开发人员创建、开发、测试、调试和部署插 件,同时p d e 的授权还包括开发片段、功能部件和更新站点的工具。一般而言, 一个p d e 项目包括以下几项内容: ( 1 ) p l u g i n x m l i l7 i :描述正在提供的扩展以及代码的打包,描述了插件的基本 信息和启动该插件所依赖的其它插件信息,以及扩展点的相关信息。 ( 2 ) 插件依赖项:用于添加启动此插件前需要启动的其它插件。 ( 3 ) b u i l d p r o p e r t i e s ”j :提供了构建配置定义库指定构建库应采用的顺序并且列 出应该编译到所选择的每个库的文件夹。 e c l i p s e 插件的开发可以分为两类,一类是基于e c l i p s e 已提供的各种资源的扩 展点进行开发,另一类是依赖于e c l i p s e 平台的独立开发,即在最小运行核心上的 开发,并没有使用e c l i p s e 提供的其它资源。如果插件的开发是基于第一类,那么 在插件运行期间必须保证所依赖的插件项已经存在并且启动,否则e c l i p s e 会报 依赖插件不能运行的异常,而第二类开发并不存在这种问题。 2 3 4 优势与不足 采用e c l i p s e 插件的形式来编写软件时,e c l i p s e 的使用环境比较友好,比如 e c l i p s e 中的视图、编辑窗、停泊窗这些界面及其功能实现如果用应用程序的方式 会很麻烦,但用e c l i p s e 插件实现起来,则相当容易。因此,e c l i p s e 插件最大的优 势就是界面友好、风格统一特别是对熟悉f l i p s e 操作的用户,这种优势就更加 明显。 当然以这种形式实现的软件也有一定的缺陷。首先,插件的运行必须依附于 e c l i p s e 平台。如果要使用插件就必须安装e c l i p s e ;其次,因为插件和e c l i p s e 平台 集成在一起,所以无法完全屏蔽e c l i p s e 本身具有的一些菜单和工具栏。 2 4 小结 本章主要介绍了e c l i p s e 的体系结构、设计思想、s w t j f a c e 和o s g i 技术, 同时也介绍了插件开发与o s o i 之间的关系,阐述了插件开发的原理与p d e 为它 提供的支持。最后描述了采用e c l i p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暖气并联施工方案(3篇)
- 防诈骗红色活动策划方案(3篇)
- cad大样施工方案(3篇)
- 文职厨师考试题库及答案
- 北京市昌平区2024-2025学年八年级下学期期末考试语文题目及答案
- 安徽省六安市裕安区2022-2023学年高三下学期高考第一模拟考试(一模)物理考试题目及答案
- 阅读滋润我成长作文800字8篇
- 冬天小学生作文范文11篇
- 给蒙古小朋友的一封信900字14篇
- 项目管理 课件 第十三章-项目融资管理T
- 2025至2030年中国应急产业市场供需现状及投资战略研究报告
- 中医院临床路径培训课件
- 2025年甘肃普通高中学业水平选择性考试化学真题及答案
- 湖南省岳阳市岳阳楼区2024-2025学年八年级下学期期末考试英语试题(含笔试答案无听力音频及原文)
- 基于SERVQUAL模型的物业公司服务质量提升研究
- 2025年N1叉车司机模拟考试1000题及答案
- 精索静脉曲张治疗-洞察及研究
- 2025年秋期部编人教版六年级上册语文全册核心素养教案(教学反思无内容+二次备课版)
- 养老护理员培训班课件
- 肾挫裂伤护理
- 不买社保的劳动协议书
评论
0/150
提交评论