SpringSource(以及其他顶级供应商)引领 OSGi 潮流

工程 | Adrian Colyer | 2008 年 9 月 17 日 | ...

在 OSGi 联盟昨天发布的一份新闻稿中,包括 SpringSource、IBM、Oracle、RedHat、Sun、SAP、ProSyst 和 Paremus 在内的几家领先供应商联合起来,支持 OSGi 作为下一代服务器平台的基础。

强调一些关键点

IBM WebSphere 副总裁 Craig Hayman 说

[IBM] 自 2006 年以来一直在发布基于 OSGi 构建的 WebSphere Application Server。因此,IBM 客户可以受益于一个由经过验证的组件构建的模块化平台,并且能够自动使用其应用程序所需的组件。
Oracle 开发高级副总裁 Steven G. Harris 说
Oracle WebLogic Server 是模块化带来的客户利益的一个很好的例子,它减少了占用空间,提高了启动时间,并提供了灵活的配置选项。OSGi 技术提供了基于标准的......
RedHat 中间件业务工程副总裁 Sacha Labourey 说
在 JBoss Enterprise Middleware Solutions 中运行 OSGi 技术使我们的客户能够在更动态的运行时环境中交付更安全的服务和应用程序。
Sun Microsystems 应用平台执行董事 Tom Kincaid 说
Sun 已经看到 GlassFish 社区对 OSGi 技术的强烈需求。GlassFish 社区将能够利用通过即将发布的 GlassFish v3 Prelude 版本中基于 OSGi 技术的微内核实现的模块化和动态可扩展性。
发布中引用的所有供应商,包括 SpringSource,都有一个共同点,那就是它们基于 OSGi 构建其服务器平台。这有可能为这些平台的用户带来一系列好处,包括更模块化的服务器结构,能够以更小的占用空间运行,并动态地改变服务器特性和功能。

您需要更仔细地查看各种供应商的产品,以确定他们在多大程度上为您(作为用户)实现了这些好处。在 SpringSource,你可以说我们在这方面很“幸运”。我们很幸运能够从头开始在 OSGi 上设计 SpringSource dm Server(SpringSource Application Platform 的一部分),而无需担心任何遗留问题。这使我们能够充分利用 OSGi。其他供应商不得不将 OSGi 改装到大型现有代码库中。我从第一手的经验知道,追溯性地尝试将大型现有代码库模块化有多么困难。即使您设法将其模块化,使其在动态环境中表现良好也更加困难(即使 Eclipse 也难以实现后一个要求,通常需要在更新后重新启动)。您倾向于在 OSGi 已被改装到产品中看到的一个特点是少量的大型包(非常粗粒度的模块化)和有限的动态支持来管理运行时模块。

SpringSource、Paremus 和 ProSyst 等供应商更进一步。在 OSGi 上构建服务器平台只能让您走这么远。如果您真的想利用 OSGi 来构建自己的应用程序怎么办?为此,您需要一个基于 OSGi 技术的编程和部署模型。这才是下一代服务器平台的真正前沿 - 不是让服务器供应商更容易构建他们的平台,而是让应用程序开发人员更容易构建他们的应用程序并将其部署到该平台。

SpringSource dm Server 支持传统的 war 文件、OSGi 包和由多个协同工作的包(模块)组成的应用程序,以及从 war 文件到逐渐利用 OSGi 的渐进迁移路径。

以下是在考虑 OSGi 时要向您的供应商询问的一些关键问题

  • 您说您的服务器是基于 OSGi 构建的,但实际上它在底层有多模块化?它是一些非常大的包,还是您能够完全架构您的平台以利用 OSGi?
  • OSGi 的在运行时添加、删除和更新模块的动态功能在您的服务器平台中得到了多大程度的体现?我可以轻松地添加和删除服务器功能或子系统吗?
  • 我可以将我自己的应用程序部署为 OSGi 包吗?您是否提供与此配套的管理工具?
  • 您是否提供基于标准的 OSGi 编程模型?(这是一个难题,SpringSource 使用 Spring Dynamic Modules 作为编程模型,并且正在努力通过 RFC 124 在 OSGi Service Platform 的 4.2 版本中对其进行标准化。这将构成 SpringSource dm Server 基于标准的 OSGi 编程模型的基石。)
  • 我需要在我的应用程序中使用现有的企业库 - 在您的平台上,它们在 OSGi 下如何支持?(如果没有特殊支持,ORM 供应商所需的加载时编织等功能可能无法正常工作)。
  • 您是否将您自己的所有产品打包为我可以轻松部署的 OSGi 包?(例如,Spring Framework 开箱即可用于 OSGi)。
  • 我在哪里可以获得常用的第三方库的 OSGi-ready 版本以部署到您的平台?(SpringSource 为此目的提供了 SpringSource Enterprise Bundle Repository)。
我认为可以非常安全地说,OSGi 将会继续存在。欢迎来到未来,享受旅程吧!

获取 Spring 新闻简报

通过 Spring 新闻简报保持联系

订阅

领先一步

VMware 提供培训和认证,以加速您的进步。

了解更多

获得支持

Tanzu Spring 在一个简单的订阅中提供对 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

查看 Spring 社区中所有即将举行的活动。

查看全部