最近一段时间,OSGi这个词在业界出现的频率已经越来越高,其受关注的程度也已经在大幅度的增长,当然,这其中不可否认OSGi联盟、Eclipse、IBM等的推广,但这主要当然还是得益于OSGi在规范的模块化以及动态化的管理的领先优势,但也会发现,很多厂商以及很多人对于OSGi仍然处于观望阶段,这主要还是因为OSGi在企业应用上目前尚无太多案例的原因,但OSGi就真的不适合企业应用了吗,还是别的原因让这么多的厂商、这么多的人对OSGi只是处于观望的阶段呢,应该说,主要原因应该是OSGi目前对于企业应用缺少足够的基础设施,OSGi联盟显然认识到了OSGi在企业应用上的不足,9月11日OSGi联盟对外正式宣布了EEG(EEG的成员包含了IBM、BEA等各大厂商)的成立;而Spring与OSGi的结合更是很好的推动OSGi进入企业应用。那么,就现在的OSGi规范来看,它离企业应用到底还有多远呢:
1、分布式
OSGi之初制定的目标是为了解决同一JVM下的系统,并没有考虑在分布式的情况下的交互等的问题,而这也是EEG需要解决的最为关键的问题。
如果目前需要基于OSGi做这种分布式的应用的话,采用Webservice也是个不错的方案。
2、事务
事务是企业应用中的重要问题,OSGi目前尚无此方面的支持。
3、持久
持久在OSGi中虽然也有几个服务提供了支持,但对于企业应用而言这些都弱了些,当然,这个完全可以自己提供持久的Bundle来实现。
4、B/S应用
B/S是目前最为流行的体系结构,OSGi仅提供的Servlet方式无法满足复杂的B/S企业应用,不过在这块OSGi已经有了长足的进步,相信不久的将来在这块不会有什么大问题,而其实基于目前的OSGi规范实现B/S应用并不会出现什么大的问题。
5、其他的基础设施
象AOP、通用的一些操作类等基础设施都是对于企业应用而言较为关键的,这些在将来的OBR中也都是应该提供的。
上面这些问题确实阻碍了OSGi应用到企业领域,但各大厂商以及OSGi联盟对于促进OSGi进入企业应用而做出的努力是众所皆知的,而Spring和OSGi的结合更是为OSGi进入企业应用领域扫平了很多的障碍,相信在不久的将来OSGi必将出现在企业应用的领域中,而到时以OSGi为基础开发企业应用必将比现在容易很多很多。
By the way:
在9月11日OSGi联盟举行的关于OSGi应用到企业应用中的讨论会议上,锁定了EEG在目前阶段需要解决的OSGi进入企业应用领域的三个焦点问题:分布式、基于OSGi的应用级别的声明周期管理以及更加复杂的动态依赖的管理(JVM外的)。