首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

为 WebSphere Application Server 开发企业 OSGi 应用程序(2)

为 WebSphere Application Server 开发企业 OSGi 应用程序(2)

OSGi 应用程序特性包WebSphere Application Server V7 Feature Pack for OSGi Applications                and JPA 2.0 在 WebSphere Application Server 中引入了 OSGi 应用程序支持。与其他 WebSphere Application Server 特性包一样,这是一个 ,可以以附加方式在一个现有 WebSphere Application Server V7.0.0.9 或更高版本上安装和卸载。这个特性包实际上包含两个可安装特性:OSGi 应用程序特性JPA 2.0 特性。这两个特性可以单独安装,也可以同时安装;同时使用时,它们提供一个简化的、基于 POJO 的组件模型、高性能持久性框架、以及简化 Web 应用程序开发和单元测试的模块化开发系统。本文只关注 OSGi 应用程序特性。
WebSphere Application Server OSGi 应用程序特性支持以模块化方式开发和部署企业应用程序,将可配置的 OSGi bundle 知识库引入 WebSphere Application Server 管理流程。这允许将公共 bundle 从单独的企业应用程序存档中分离出来,并在一个 bundle 知识库中集中管理。一个 bundle 知识库可以管理多个 bundle 版本,与单独的企业应用程序关联的适当版本可以在那些应用程序的元数据中指定。
我们来看看成为 WebSphere Application Server 中的一个 OSGi 应用程序意味着什么?
在最基本的层面上,一个 OSGi 应用程序可能是部署在一个 Java EE 存档(EAR)中的相同的模块集合,但带有支持将这些模块加载为 OSGi bundle 的额外的 OSGi 元数据。尽管使用 Java EE 类加载器按照一个标准 Java EE 应用程序运行这个应用程序和使用 OSGi 类加载器按照一个 OSGi 应用程序运行该应用程序产生的最终结果没有什么区别,但由于以下几个原因,您可能会选择开发和部署一个 OSGi 应用程序:
  • 应用程序可以部署在只包含应用程序特有内容(理想情况)的存档中,并使用元数据引用任何共享库(bundle)。应用程序存档变得更小,且只有单个公共库副本被加载到内存中。
  • 使用标准 OSGi 机制,可以同时在同一个应用程序中加载多个类版本。
  • 已部署的应用程序可以以模块化方式、在 bundle 层面上更新。
  • 在开发时,IBM Rational® Application Developer 中的 OSGi 项目实施 OSGi 可见性规则,以便这些项目只能访问来自其他一些项目的包,那些项目将这些包显式声明为项目外部包的一部分,从而为开发最佳实践提供环境支持。
  • 应用程序可以设计为通过使用 OSGi 服务提高可扩展能力并实现动态更新。
  • 在运行时,应用程序仅当它的所有依赖项能够被解算时才能成功启动,从而减少应用程序在处理一个工作负载时出现 ClassNotFoundExceptions 的几率。
  • 应用程序可以使用与服务器运行时不同的、自己的公共实用程序类版本,而不必配置 PARENT_LAST 模式这样的 Java EE 类加载器策略。
当您的应用程序复杂性增加,或者已部署的应用程序套件的规模增大时,管理对应用程序的模块和它们使用的实用工具库的更新就会变得更困难。这时,使用 OSGi 的好处就会变得甚至更加明显。
返回列表