未来10 年:OSGi、Gemini、Virgo

激动,激动,还是激动。因为OSGi 迎来了其在企业应用领域发展的春天。多年以来,Java EE 本身的模块化能力和动态性支持一直没有得到改善,开发者和企业
用户一直在饱受这方面的痛苦。

与此同时,在桌面及嵌入式领域,非常成功的OSGi 一直想进入到Java EE 阵营中。OSGi的模块化和动态性能力堪称一流。由于多方面原因,OSGi 迈进Java EE 的步伐也是停停走走的。技术上,OSGi 不能够优雅地解决“如何继承及延续Java EE 容器及其提供的服务”这一问题,比如基于OSGi 开发的WAR 应用是否能够直接部署到OSGi 容器或Java EE 容器中、Java EE 容器内置的JTA 等服务如何被OSGi 应用采纳、MyFaces 和Struts 等前端视图技术是否仍然能够在OSGi 应用中使用、如何加快OSGi 应用的研发速度以赶上敏捷Java EE的发展步伐。确实是如此,我们不能够因为Java EE 存在缺点,而把它的优点全部丢掉。再说了,为保护自身投资,企业也不可能轻易将购买的Java EE 资产抛弃掉。

稍微夸张地说,Spring DM 的出现使得这一僵局得以化解。类似于Spring 框架抽象JavaEE 一样,Spring DM 对OSGi 进行了抽象、扩展,比如基于OSGi(Spring DM)开发的WAR应用能直接部署到OSGi 容器或Java EE 容器中。Spring DM 降低了OSGi 的采纳门槛,而且它还能够大幅度提升OSGi 应用的研发速度。总之,Spring DM 巧妙地将OSGi、Java EE、Spring 等的优点融入在一起,并尽量避免了它们各自的缺陷。