如何在 WebSphere Application Server V8 中实现 OSGi 动态服务功能.pdfVIP

如何在 WebSphere Application Server V8 中实现 OSGi 动态服务功能.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
页码,1/ 13 何在 WebSphere Application Server V8 中实现 OSGi 动态服务功能 修磊, 软件工程师, IBM 陈 志娴, 软件工程师, IBM 简介:模块化软件开发思想越来越受到软件从业人员的欢迎,无论是开发人员还是软件管理人员都越来越感受到模块化所 带来的好处,这种好处尤其体现在大型的软件系统中。做为 OSGi 技术的主要推动力量,IBM WebSphere Application Server(WAS) 自身早在 V6.1 版本中就逐步采用了 OSGi 技术做为其底层实现,接着,在 WAS V7 Feature Pack 中提供 了对 OSGi 应用的初步支持,并在最新的 WAS V8 版本中全面提供了对企业 OSGi 应用的支持。OSGi 服务,做为 OSGi 中最 要的部分,具有举足轻 的地位,所谓的服务 (Service) 就是标准的 Java 对象向服务注册表 (Service Registry) 注 册的一个或者多个接口 (interface) 。 Bundle 可以向服务注册表注册服务,查询服务并使用它们。在 OSGi 的发展过程 中,服务的发布和获取方式也在不断的变化,用好 OSGi 服务可以使你在 OSGi 的领域中更能轻车熟路。本文将介绍几种 OSGi 服务的发布和获取方式,并通过实例重点介绍 WAS 所推荐的 OSGi 服务发布和获取方式。以此来引导开发人员和 管理人员更好的在 WAS 中使用 OSGi 技术,并真正体会到 OSGi 所带来的动态服务功效—— “即插即用”。 发布日期:2011 年 9 月 29 日 级别: 中 OSGi 服务简介 OSGi 服务模型 一个 OSGi 服务就是注册到 OSGi 框架中的一个 Java 对象,向服务注册表注册自身的一个或多个接口。OSGi 服务层定 义了 Bundle 动态协作的服务发布、查找和绑定模型,服务层基于模块层和生命周期层,使得 OSGi 形成了完整的动态模 型。 那么 “动态”究竟指的是什么,举例来说就是:当一个 Bundle 被 OSGi 框架发现并做为一个服务启动后,该服务可以在 任何时候变的可用或不可用。造成服务不可用的情况有很多,或许是 Bundle 被停止或者被拆卸,或许是系统的某一部分 硬件出现问题,或许是 ... 不管是什么原因,我们必须能够恰当的处理这种突发的情况,以此来维持应用程序的正常运转。 值得欣慰的是,OSGi 提供了这样的技术和一些实用的类库,可以帮我们实现动态服务。OSGi 框架包含一个中央服务注册 表 (Centralized Service Registry) ,遵循 “发布 - 查找 - 绑定”的模型,该模型是实现动态服务的基础。如下图: l 一个提供服务的 Bundle 可以将 POJOs 发布成服务 l 一个消费者 Bundle 可以查找并绑定和消费相应的服务 图 1. OSGi Service Registry 页码,2/ 13 OSGi 动态服务用例 开发企业级 OSGI 应用的最佳实践,是将每一个 Bundle 发布成服务。OSGI 的服务平台,提供了 全动态的发布,查 找,绑定服务的功能 ( 如图 2) 。服务提供者所在的 Bundle 可以被启动和停止,同时就伴随着服务的注册和注销,这种生 命周期的过程是和消费者 Bundle 的生命周期相互独立的。 图 2. OSGi Services 下面我们来看一个 OSGi 动态服务用例,通过详解用例的每一步操作,可以帮我们更清晰的理解以下两个问题: l 动态服务的生命周期 l 当某一服务变的不可用时,OSGi 是如何保证应用程序的其他部分可以被正常访问。 图 3. OSGi 动态服务用例(1/6 ) 初始阶段,一个消费者 Bundle 想要使用某一服务,该 Bundle 监 OSGi 服务注册表,等待目标服务变的可用,此时, 服务注册表里没有注册合适的服务。 图 4. OSGi 动态服务用例(2/6 ) 页码,3/ 13 当一个服务提供者 Bundle 被启动并且在 OSGi 服务注册表里注册为服务后,OSGi 服务框架会通知消费者 Bundle,其等 待的目标服务此时是可用的。 图 5. O

文档评论(0)

sjatkmvor + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档