Rich Client Platform 的核心运行时是Eclipse平台的微内核
主要负责管理Eclipse的所有插件和Fragements。Eclipse3.0以后,Eclipse基于OSGi规范的轻量级实现Equinox 来构件核心运行时。核心架构图如下。
Applications/Bundles(Plug-ins)
Eclipse Job Management Extension Registry
Service
Service Registry Extensibility Framework(Adaptor) securtiy
Life Cycle
Modules
Execution Eviroment
Execution Environment
Bundle/Plug-in 应用所倚赖运行的java执行环境。如J2SE-1.5CDC-1.0等都是可用的执行环境。
Modules
模块层定义了 Bundle 应用的加载策略。OSGI框架是一个健壮并且严格定义的类加载模型。 OSGI基于Java技术。对于每个实现了 BundleActivator接口的Bunlde应用,为它生成一个单独的ClassLoader。使用Bundle应用的组织更加模块化。
Life Cycle
生命周期层可以动态地对Bundle、Plug-in 进行安装、启动、停止。升级和卸载等操作。该层基于模块层,提供了一组API来控制Bundle应用的运行时操作
Service Registry 和Service
OSGI 服务层定义了一个集成在生命周期层中的动态协议模型,是一个发布、动态寻找、绑定的服务模型。一个服务通常是一个Java对象实现了特定的服务接口,并且通过服务注册,被绑定到OSGi的运行环境中。Bundle、Plug-in应用可以注册发布服务。动态绑定服务,并且在服务注册状态改变时。可以接收到事件消息等
Extension Registry
Eclipse 认为Bundle、Plug-in之间存在两种关系:一种为依赖 一种为扩展(Extension)对于依赖。通过OSGI中元数据信息里添加需要引用插件即可实现。但是扩展OSGI中是没有定义。Eclipse采用了一个Extension Point 的方式来实现插件的扩展功能。ExtensionRegistry 作为一个注册的服务用于管理Eclipse插件的Extensions。 插件的更新组件在Eclipse 3.4 中已经基于Equinox P2重写了。Equinox P2 是一个新的、非常高级的配置系统。用于安装、搜素和管理Eclipse安装。并且比以前更新管理器更加容易使用
EclipseJob management
Eclipse对java 多线程机制的良好封装。Core Runtime 也是提供并发服务。
Extensibility Framework(Adaptor)
由于Eclipse3.0以前的版本的插件是没有采用OSGI的。所有equinox需要通过适配器的方式来实现与以往版本的兼容。同时适配器的使用使使Equinox osgi 的框架耦合性更低。更灵活,更有利于扩展。
Security
OSGi的安全管理是基于java2 安全体系的,贯穿在OSGi平台的所有层中,他能够对部署在OSGI运行环境中的bundle、plugin 应用进行详细的管理控制
EclipseRegistry 和EclipsejobManagement 的相关代码在 org.eclipse.core.runtime.osgi 项目中
而其他部分的则来自 org.eclipse.osgi项目中。