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 规范关键组件。
查看英文原文: IBM, BEA and JBoss adopting OSGi
评论