(1)OSGi bundle:一个模块化的Jar文件。
用一组小的导出包来描述公共规则,大部分代码都隐藏在内部包中,对于其他Jar不可见。
(2)已有多家开源实现:Knoflerfish、Equinox、Apache的Felix。
通过这些容器,可以将应用程序划分为多个模块单元,就可以容易的管理这些模块之间的交叉依赖关系。
(3)OSGi规范定义了两种对象:A、容器对外提供的服务对象(服务对象时容器要实现的);B、容器和应用程序之间必须遵守的契约。
(4)OSGi优点:A、在不重启容器的情况下,动态安装、卸载、启动和停止应用程序中的不同模块;B、对于应用程序中的某一特定模块,容器可以同时运行该模块的多个版本;C、为开发嵌入式应用、移动应用、富互联网应用(RIA)提供非常优秀的基础架构。
[tips]富互联网应用(Rich Internet Application):
是下一代的将桌面应用程序的交互的用户体验与传统的WEB应用的部署灵活性和成本分析结合起来的网络应用程序。
解决了传统网络程序基于页面、服务器端数据传递的模式带来的html适合文本的系统。
富因特网应用程序中的富客户技术通过提供可承载已编译客户端应用程序(以文件形式用HTTP传递)的运行环境,客户端应用程序使用异步客户/服务器架构连接现有的后端应用服务器。
这是一种安全、可升级、具有良好适应性的新的面向服务模型,由采用的Web服务所驱动。
富包含数据模型的丰富和用户界面的丰富。
(5)现在流行的开源OSGi容器:
Equinox项目包括OSGi R4版本规范核心框架的实现,一系列OSGi标准服务Bundle及运行基于OSGi的系统的一些基础构件。
B、Knopflerish:是Eclipse注明的PDE开发环境的底层,实现了OSGi规范规定的必须实现的功能和部分可选功能。
C、Apache的Felix
文章地址:http://developer.51cto.com/art/200909/152190.htm