IBM、BEA和JBoss应用服务器采用OSGi
IBM、BEA和JBoss应用服务器采用OSGi
作者 Charles Humble译者 王军 发布于 2008年2月26日 上午1时4分
OSGi联盟是 由包括爱立信、IBM、Oracle和Sun Microsystems在内的多个厂商于1999年成立的,OSGi联盟负责管理和开发OSGi规范。OSGi规范是一个Java环境的组件模型,它定 义了组件封装、生命周期管理和服务注册。应用程序或组件(以bundle的方式进行部署)不需要重启就可以远程安装、启动、停止、更新和卸载。生命周期管 理通过API来完成,API允许远程下载管理策略。OSGi最初侧重于移动及嵌入领域,现已运用在大型桌面应用程序上,其中最引人注目的是Eclipse IDE。近来成立的OSGi企业专家小组正在寻求扩展OSGi规范,以支持企业级Java厂商和开发者的需求。
OSGi已经看到在Java EE领域的采用机会:厂商在寻找使他们应用服务器产品更模块化和更灵活的途径。举例来说,IBM的WebSphere 6.1现在已经完全重新组装为一套OSGi bundle。因为每个OSGi bundle分别由各自的类加载器来加载,现在WebSphere应用程序的运行时类可由几个类加载器组成的网络来加载。这些类加载器都通过一个OSGi 网关类加载器连接到扩展的类加载器(以及连接到类层次结构其他部分)。
开源Java EE应用服务器JOnAS在版本5的发布上,经历了类似WebSphere一样基于OSGi的重构。现在JOnAS本身就是一套OSGi bundle的实现,其服务(如EJB、Mail等)在技术上按照OSGi服务方式来实现。新的服务器架构允许新的服务加入,而且JOnAS提供的服务也 能被可选服务实现所替换。服务可以在运行时启动、停止和重新配置。
BEA和JBoss都期望跟寻一条相似的路径。早在2006年BEA就宣布计划围绕一个新的microService架构(mSA)重 组其中间件产品。该计划包括使用OSGi标准重建WebLogic Server的各种产品和BEA其他门户及中间件产品。两大BEA关键产品——WebLogic Event服务器和WebLogic实时服务器已经在使用mSA,而即将推出WebLogic 10.3发布版本也将使用这一体系结构。Ales Justin在接受Mark Newton采访时提到,JBoss最初研发的基于OSGi的类加载器是用于JBoss运行时(服务)。JBoss也再造了其现有的Microcontainer来整合OSGi,并且有三名员工成为OSGi企业专家小组成员。
模块化已明确成为许多JEE应用服务器厂商的一个中心主题,即使是那些还没有使用OSGi的厂商——例如Sun支持的GlassFish服务器。对 开发者这些变化主要是无形之中发生的,这同时意味着厂商思考他们Java EE产品方式的一个明显转变。Justin指出,在不久的将来,企业级Java开发者及架构师很可能会看到来自OSGi的影响, OSGi企业小组正在寻求OSGi支持包括EJB,JSP和JSF在内的Java EE规范关键组件。