OSGI

OSGI规范的核心组件是OSGI框架。这个框架为应用程序(被叫做组件(bundle))提供了一个标准环境。整个框架可以划分为一些层次:

OSGI_第1张图片OSGI

L0:运行环境

L1:模块

L2:生命周期管理

L3:服务注册[1] 

还有一个无处不在的安全系统渗透到所有层。

OSGI_第2张图片

L0层执行环境是Java环境的规范。Java2配置和子规范,像J2SE,CDC,CLDC,MIDP等等,都是有效的执行环境。OSGi平台已经标准化了一个执行环境,它是基于基础轮廓和在一个执行环境上确定了最小需求的一个小一些的变种,该执行环境对OSGi组件是有用的。

L1模块层定义类的装载策略。OSGi框架是一个强大的具有严格定义的类装载模型。它基于Java之上,但是增加了 模块化。在Java中,正常情况下有一个包含所有类和资源的类路径。OSGi模块层为一个模块增加了私有类同时有可控模块间链接。模块层同安全架构完全集 成,可以选择部署到部署封闭系统,防御系统,或者由厂商决定的完全由用户管理的系统。

L2生命周期层增加了能够被动态安装、开启、关闭、更新和卸载的bundles。这些bundles依赖于于具有类装载功能的模块层,但是增加了在运行时管理这些模块的API。生命周期层引入了正常情况下不属于一个应用程序的动态性。扩展依赖机制用于确保环境的操作正确。生命周期操作在安全架构保护之下,使其不受到病毒的攻击。

L3层增加了服务注册。服务注册提供了一个面向bundles的考虑到动态性的协作模型。bundles能通过传统的类共享进行协作,但是类共享同动态安装和卸载代码不 兼容。服务注册提供了一个在bundles间分享对象的完整模型。定义了大量的事件来处理服务的注册和删除。这些服务仅仅是能代表任何事物的Java对 象。很多服务类似服务器对象,例如HTTP服务器,而另一些服务表示的是一个真实世界的对象,例如附近的一个蓝牙手机。这个服务模块提供了完整安全保障。 该服务安全模块使用了一个很聪明的方式来保障bundles之间通信安全。


你可能感兴趣的:(OSGI)