Java应用架构设计
OSGI的优点: 1:热插拔的插件体系结构 基于OSGI的应用程序可动态更改运行状态和行为。在OSGI框架中,每一个组件都是可热插拔的,因此,对某一特定的组件的修改并不会 影响到容器中的所有组件,运行中的大部分组件依旧能正常工作,部署一个新的Bundle时也不需要重新启动服务器。 2:可复用性 OSGI框架本身可复用性极强,易于构建真正面向接口的程序架构,每一个组件Bundle都是一个独立可复用的单元,基于OSGI独特的特性 ,进行企业开发的时候,对于新的开发,可以从企业的组件库中精简出可复用的模块,量身定做新的组件,最大限度的利用了已有的资源 ,降低开发成本,增强企业的竞争力。 3:高效性,稳定性 OSGI是一个稳定而高效的系统,OSGI作为一个微核的系统,其核心只有为数不多的几个JAR包,基于OSGI框架的系统的低耦合性,其结构 的优势性保证具体的某一个组件不至于影响到全局,更不会因为局部的错误导致全局系统的崩溃。
OSGI的缺点: 1:每个组件Bundle都由单独的类加载器加载,与一些JAVA EE项目中使用比较多的框架整合比较困难。如SpringMVC,Struts等。 2:目前OSGI框架提供的管理端不够强大,现在的管理端中仅提供了基本的组件状态管理,日志查看等功能,向动态修改系统级别 的配置(config.ini),动态修改组件的配置(Manifest.mf),启动级别等功能都尚未提供。 3:采用OSGI作为规范的模块开发,部署方式自然给现有开发人员提供了新的需求,需要学习新的基于OSGI的开发方式。