Spring学习札记之一spring的OSGi

Spring学习笔记之一spring的OSGi

1、OSGi 是什么

微内核,为系统动态化提供实现的基础,模块化设计、开发的标准,Dynamic Module  System For Java  ——  JSR 291

 

2、OSGi能带来什么

模块化:意味着更规范的设计,意味着更好的重用,意味着人才培养体系的更为标准

动态化:动态的管理系统的模块,动态的改变系统的行为

提升设计:更为仔细的考虑模块耦合的问题,模块化的设计思想

 

3、OSGi的工具箱

OSGi R4 RI----Equinox
Eclipse IDE (3.1 以上版本的插件内核使用了OSGi的规范)

 

4、OSGi下的B/S应用

嵌入Web容器(Bridge方式)
直接使用Equinox基于Jetty的HttpService的实现
如何移植现有的B/S结构的应用
典型的:
struts+spring+hibernate的应用,Spring-OSGi目前仍然比较的困难..........

 

5、OSGi的优势

模块化:
a、系统由一堆的Bundle组成
b、每个Bundle由一堆的Component组成
c、Component通过对外提供服务接口来提供功能
d、Component通过引用服务接口来获取功能
动态化:
a、模块动态的部署、卸载、停止、启动
b、模块行为、配置动态的改变
Component Model的支持:
a、Component生命周期由框架自动管理 —— Component自动的激活、自动的注销
b、所引用的服务在运行期才能确定 —— 所引用的服务自动的注入、自动的注销
c、Component通过对外暴露服务接口来提供功能,通过引用服务接口来获取功能

 

6、OSGi的劣势

对于企业应用支撑的不足:
a、分布式应用
b、跨模块(Bundle)的事务的支持
c、企业级B/S应用程序的支持
d、与本地应用集成的支持
以往应用移植到OSGi需要付出较大的代价  (但是,OSGi还是值得学习的,毕竟它还需要时间来成长)

 

7、OSGi的前景
OSGi为企业应用的开发提供良好的支持:
a、Spring-OSGi
b、OSGi EEG提供的规范Bundle
c、IBM、BEA提供的支撑企业应用开发的Bundle
d、成为多种语言的模块化的标准——目前已可支撑PHP版本
成为SCA的实现规范:
a、IBM、BEA的大力推动