Eclipse RCP技术
阅读数:85 评论数:0
跳转到新版页面分类
应用软件
正文
Eclipse是一个提供了完善的插件机制RCP(Rich Client Platform)平台,它以SWT/JFace作为界面元素组件,提供给用户一个名为Workbench的UI平台。
RCP提供了丰富界面控件,这使得基于Java开发桌面应用变得容易很多。对于开发者而言,尽管使用RCP也是为了开发桌面应用,但RCP给开发者带来的更多的感觉是它充分发挥了插件化系统的优势。
Eclipse RCP项目用SWT图形库和工具包取代了Java标准中的AWT和Swing。SWT直接调用了操作系统的图形库,从而使得Java应用程序的LOOK&Feel与操作系统的习惯完全一致;SWT的缺点:(1)不是Java语言标准。(2)支持的平台太少。
(1)Workbench工作台为Eclipse提供用户界面。它使用SWT(Standard Widget Toolkit)和一个更高级的API(JFace)来构建,SWT是Java的Swing/AWT GUI API的非标准替代者,JFace则建立在SWT基础上,提供用户界面组件。
(2)Workspace工作区负责管理用户资源的插件,它包括用户创建的项目、项目中的文件,以及文件变更和其它资源。工作区还负责通知其它插件关于资源变更的信息,比如文件创建、删除或者变更。
(3)Team团队支持系统,负责提供版本控制和配置管理支持。它根据需要添加视图,以允许用户与的有使用的任何版本控制系统交互。大多数插件都不需要与团队支持组件交互,除非它们提供版本控制服务。
(4)Platform Runtime,是整个Eclipse的内核,它在启动时检查已安装了哪些插件,并创建关于它们的注册表信息。为降低启动时间和资源使用,它在实际需要某个插件的时候才加载该插件。除了内核外,其它每样东西都是作为插件来实现的。
OSGI规范
OSGI(Open Service Gateway Initiative)最初的目的就是为各嵌入式设备提供通用的软件运行平台。
1、OSGI是什么?
OSGI是一种松散耦合的组件管理和服务运行平台规范,简单的说,用户只需要修改通用的Java类库,打包JAR文件,修改META-INF下的元数据文件MANIFEST.MF,添加必要的标签信息,放置到OSGI框架的Bundle Repository中,用户的的类库就成了OSGI环境的一部分。
OSGI组件提供的服务具有两个层面的含义:系统层面,即一个组件为其他组件提供服务;业务层面,即一个组为外部系统或用户提供某种业务服务实现。
2、OSGI的实现机制
OSGI充分使用了Java的类加载机制,对模块和应用进行了更细粒度的控制,OSGI为每一个Bundle组件定义了一些元数据信息,通过这些元数据,OSGI在运行时为每一个Bundle构建一个独立的类域。
3、OSGI的组成
(1)OSGI的安全层,对OSGI环境中应用的部署和管理提供更好的安全控制。
(2)OSGI的模块层,基于Java的应用,组件的打包、部署和校验提供了一个通用的标准化的解决方案。
(3)生命周期层,为Bundle组件的安全和生命周期操作提供了API定义。
(4)服务层,Bundle组件可以发布自己的服务,查找使用服务,注册监听处理服务的状态变更等。
(5)实际的服务,是OSGI定义的一些标准的服务接口如日志服务、包管理服务、启动级别服务、HTTP服务、配置服务、用户管理服务等。
4、Bundle
OSGI的重要元素就是Bundle和Service,Bundle提供了一种静态资源边界,类似于Web容器中的Web应用的概念。
每一个Bundle通过一个元数据文件(MANIFEST.MF)描述,OSGI框架(即SystemBundle)通过解析这个元数据文件对Bundle进行加载和管理。Bundle通过元数据中"Export-Package"属性将内部的类包发布给OSGI系统中其他Bundle使用,通过"Import-Package",“Require-Bundle”属性引用OSGI系统中其他Bundle发布的类包。
每一个Bundle有自己独立的类加载器,每个Bundle在OSGI框架中具有自己的生命周期。
SWT JFace
1、术语
(1)Widget
基本的SWT GUI组件。
(2)Control
拥有操作系统的对等物的窗口小部件。
(3)Composite
包含其他控件的控件。
(4)Item
其他控件包含的容器小部件。