eclipse软件体系结构论文

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于OSGi的Eclipse插件体系结构的研究

马晟,张渊,刘德钢

(清华大学,软件学院,北京 100084)

摘要:

Eclipse是一个开放源代码的是基于插件机制开发的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。Eclipse 3.0选择OSGi服务平台规范为运行时架构。本文以研究Eclipse体系结构为目的背景,介绍了插件技术原理,阐述了OSGi规范,分析了Eclipse的插件体系结构,并对基于OSGi和Eclipse RCP对Eclipse的插件扩展开发进行了研究。最后我们对比介绍了Firefox的插件机制。研究表明Eclipse平台的体系结构是一个成熟的、精心设计的并且可以很容易扩展的体系结构。

关键词:OSGi,Eclipse,插件,体系结构

Abstract:

Eclipse is an open source software development project based on the plug in developing mechanism. It concentrates on supporting a full featured commercial industry platform to build highly integrated tools. Eclipse 3.0 uses OSGi Service Platform Standard as the run time architecture. After learning the architecture of Eclipse, this paper instructs the plug in technology theory, shows the OSGi standard, analysis the architecture of Eclipse based on plug-in mechanism and makes a study on the development of Eclipse plug-ins based on OSGi or RCP. Finally, we introduce the plug-in mechanism of Firefox according to the comparison. The Study presents that the architecture of Eclipse platform is a mature, well designed architecture that is easily extended.

Key words:OSGi,Eclipse,Plug in,Architecture

目录

1. Eclipse体系结构 (3)

1.1. 插件技术原理 (3)

1.1.1. 插件概念说明 (3)

1.1.2. 插件接口的认识 (4)

1.1.3. 程序结构及其运行机制 (4)

1.2. OSGi体系结构 (4)

1.2.1. OSGi概述 (4)

1.2.2. OSGi框架 (5)

1.2.3. OSGi小结 (9)

1.3. Eclipse的插件机制体系结构 (9)

1.3.1. Eclipse发展历程 (9)

1.3.2. Eclipse体系结构 (9)

1.3.3. Eclipse平台运行时与OSGi容器 (10)

1.3.4. 插件扩展机制 (11)

1.3.5. 插件的生命周期 (13)

1.3.6. 插件的依赖性 (14)

1.3.7. 插件间通信 (14)

2. Eclipse插件机制应用 (18)

2.1. 常用的Eclipse插件 (18)

2.2. 基于OSGi的插件体系结构设计与实现 (19)

演示的功能 (19)

体系结构设计 (20)

实现原理 (21)

运行示意 (21)

2.3. Eclipse插件机制扩展——RCP应用 (22)

3. Eclipse体系结构与其他插件结构比较 (23)

3.1. Mozilla Firefox体系结构 (23)

3.2. Mozilla Firefox 扩展分析 (24)

install.rdf (25)

chrome目录 (25)

chrome.manifest文件 (25)

4. 结束语 (25)

5. 附录 (26)

1.Eclipse体系结构

1.1.插件技术原理

1.1.1.插件概念说明

插件是一种遵循统一的预定义接口规范编写出来的程序,应用程序在运行时通过接口规范对插件进行调用,以扩展应用程序的功能。在英文中插件通常称为plug-in、plugin或者plug in。插件最典型的例子是Eclipse开发平台,Microsoft的ActiveX控件和COM(Component Object Model,部件对象模型)实际上ActiveX控件不过是一个更高继承层次的COM而已。此外还有Photoshop的滤镜(Filter)也是一种比较常见的插件,还有就是Mozilla Firefox,Foobar等等也遵循着插件机制。

插件最吸引人的地方当然就是其所实现“运行时(Run-time)”功能扩展。这意味着软件开发者可以通过公布插件的预定义接口规范,从而允许第三方的软件开发者通过开发插件对软件的功能进行扩展,而无需对整个程序代码进行重新编译。运行时是相对于编译时(Assembly-time)而言的。一般来说,软件开发者对软件功能更新时,是在源代码级别进行更新,然后对整个程序进行重新编译,进而发布应用程序的新版本,这就是编译时的软件更新。

插件的本质在于不修改程序主体(或者程序运行平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“即插即用”软件开发。从这种意义上讲,USB接口可以很形象地描述插件的应用模式。对于任何计算机外部配件,移动光驱,鼠标硬盘等等,都可以实现即插即用,虽然部分也需要安装驱动程序,但是在应用上,它们都是即插即用的。“平台+插件软件结构”是将一个待开发的目标软件分为两部分,一部分为程序的主体或主框架,可定义为平台,另一部分为功能扩展或补充模块,可定义为插件。

在进行软件开发之前,是否采用“平台+插件软件结构”进行软件开发,还要依据具体的软件需求情况进行确定,但一般来讲,使用“平台+插件软件结构”进行软件设计会给所开发软件增加新的生命力。当确定“平台+插件的软件结构”之后,就要分析哪些部分功能由主体完成(即平台的基本功能),哪些部分功能由插件完成(即需要扩展的插件功能)。平台所完成的功能应为一个软件系统的核心和基础,这些基本功能即可为用户使用,也可为插件使用,就是又可以把平台基本功能分为两个部分,内核功能和插件处理功能。平台的内核功能是整个软件的重要功能,一个软件的大部分功能因由内核功能完成。平台的插件处理功能用于扩展平台和管理插件,为插件操纵平台和与插件通信提供标准平台扩展接口。插件所完成的功能是对平台功能的扩展与补充,一般插件完成系列化功能,例如:Eclipse IDE是Eclipse的运行主体平台。你要编辑c/c++程序,你可以应用CDT插件;使用SVN,你可以安装SVN Repository Exploring。在后续章节中,我们将会列出Eclipse的常用插件。

为了实现平台+插件结构的软件设计需要定义两个标准接口,一个为由平台所实现的平台扩展接口,一个为插件所实现的插件接口。这里需要说明的是:平台扩展接口完全由平台实现,插件只是调用和使用,插件接口完全由插件实现,平台也只是调用和使用。平台扩展接口实现插件向平台方向的单向通信,插件通过平台扩展接口可获取主框架的各种资源和数据,可包括各种系统句柄,程序内部数据以及内存分配等。插件接口为平台向插件方向的单向通信,平台通过插件接口调用插件所实现的功能,读取插件处理数据等。

相关文档
最新文档