QCon 演讲火热征集中,快来分享你的技术实践与洞见! 了解详情
写点什么

比较 Eclipse 扩展和 OSGi 服务

  • 2008-01-29
  • 本文字数:1213 字

    阅读完需:约 4 分钟

Eclipse 扩展和 OSGi 服务的本质及意图都非常相像。尽管它们很类似,但是由于它们背景不同,因此还是有很多不同点。Neil Bartlett 曾经写了一篇文章,对 Eclipse 扩展及多种用途的 OSGi 服务进行了比较分析,最近,他又在其博客上以 PDF 的形式重新发布了这篇文章。这篇文章是特别为那些熟悉 Eclipse 注册库但不熟悉 OSGi 的 Java 开发者编写的。

比较开始于对常见混淆概念的解释,Eclipse 扩展注册和 OSGi 服务层的共存导致了这些概念的混淆:

因为 Eclipse 在版本 3.0 中采用了 OSGi 运行时,在扩展注册(从一开始就是 Eclipse 的特性)和服务层(来自 OSGi 且先于 Eclipse 相关特性存在)之间就有了一些牵连。导致这种牵连的原因是这两种模型有些重叠,而且它们意图解决的问题都非常相似。然而常言道“the Devil is in the details(细节决定成败)”,这两种模型的差别还是非常大的,想将它们合并是不切实际的。因此,Eclipse plugin 和 RCP 应用的开发者需要从这两者中做出选择。

Eclipse 扩展注册基于的是定义在针对每个 Eclipse plug-in 的 XML 文件中的一系列条目。Bartlett 描述了 XML 标记优于严格地使用可执行 Java 的各种好处。与 Eclipse 扩展相比,基础 OSGi 服务用规矩的 Java 代码来定义和注册,代码提供了多个行为实现。在描述到 OSGi 服务的时候,Bartlett 解释了与 Eclipse 扩展相比其实现的内在区别以及相关的优缺点,并得出这一观点:

因此我们真正想要的是结合扩展和服务两者优点的某些东西。某些像服务一样是隐式动态的、但是像扩展一样是“按需”装载的东西。理想情况下,是可以简化应用程序开发者必须要编写的代码的某些东西。

那种认为 Declarative Services 可以满足各种情况的观点是不对的。因为 Eclipse 扩展和 OSGi 服务在不同的方面各有优缺点,创建 Declarative OSGi Services 是为了试图提供一种兼顾两种技术优点的方法。Declarative Services 仍是相对较新的技术,适用于 Eclipse3.3 版(最新稳定版本),Declarative Services 的初始版本已经可用了,可从 Equinox 下载站点单独下载。这篇文章的关键要素被总结成了一个用于比较的表格,该表格回答了 Eclipse 扩展以及所有以前描述过的各种 OSGi 服务(Services、Declarative Services、以及 Spring-OSGi)的如下问题。

  • 什么是已注册的?
  • 它们是如何注册的?
  • 它们是如何消费的?
  • 什么是基数(cardinality)?
  • 它们何时被装载?
  • 怎样处理动态安装 / 卸载?
  • 缓存扩展 / 服务的引用会导致问题出现吗?

Neil Bartlett 以如下看法作为文章的结论:

在这篇文章中,我已经概括地描述了 Eclipse 风格的扩展和 OSGi 风格的服务的优缺点。然而,我不希望我的读者不要单纯地认为“扩展不是动态的”或者“服务不能用于 RCP 应用”。恐怕这个问题太过敏感,根据你的需求的上下文自己做出评估是不可替代的。

想了解更多关于 Eclipse Equinox 和 OSGi 的关系,请访问 Eclipse Equinox 站点查看英文原文: Comparing Eclipse Extensions and OSGi Services

2008-01-29 00:021374
用户头像

发布了 150 篇内容, 共 46.5 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

数字转型得力伙伴:华为云Flexus X实例打造云计算应用新标杆

轶天下事

手把手教你如何参与开源,详细实用~

XIAOJUSURVEY

GitHub 开源 PR 贡献者 Issue

华为云Flexus X实例,以创新技术打造中小企业高质量发展新引擎

轶天下事

生成式 AI 时代数据库与大模型的融合探索

编程猫

直击中小企业痛点!Flexus X实例让中小企业也可以上好云、用好云

YG科技

华为云Flexus X实例全方位为中小企业护航,加速迈进“专精特新”

YG科技

激发云服务效能,华为云Flexus X实例助力破除中小企上云痛点

YG科技

SpringBoot项目中HTTP请求体只能读一次?试试这方案

小明同学的学长

springboot java

华为云Flexus X实例创新柔性算力!直击中小企业数字化转型痛点

轶天下事

华为云Flexus X实例依托生态优势,破解中小企业数字化转型困局

YG科技

无缝升级云服务,华为云Flexus X实例带来零门槛极致体验

YG科技

充分发挥数字经济赋能效应,Flexus X实例协助企业高效转型

轶天下事

华为云Flexus X实例:最高6倍算力提升,满足中小企业多元需求

轶天下事

性能易用二合一!华为云Flexus X实例加快中小企数字转型

YG科技

聚焦中小企业实际需求,华为云Flexus X实例推动中小企业数字化转型愿转敢转

轶天下事

双倍性能、跃级体验!华为云Flexus X实例助力企业轻松上云

轶天下事

顺应数字化趋势!Flexus X实例助力中小企业开启数字转型“必修课”

轶天下事

华为云Flexus X实例性能出众,降本显著,促进中小企业高质量发展

YG科技

华为云Flexus X实例全方位创新,开拓企业数字化发展新边界

YG科技

数字化转型正当时!华为云Flexus X实例助力中小企业高效便捷上云

轶天下事

低代码实践:题型物料化设计(四)

XIAOJUSURVEY

低代码 schema 源码解读 配置化 设置器

顺应数字化浪潮,华为云Flexus X实例助力中小企业破局崛起

轶天下事

数字化转型正当时!华为云Flexus X实例助力中小企业高效便捷上云

轶天下事

GitHub星标4000!清华大牛的CTF竞赛入门指南,真的太香了!

我再BUG界嘎嘎乱杀

黑客 网络安全 信息安全 PWN CTF竞赛

中小企业数字化转型难点凸显,华为云Flexus X实例革新上云体验

YG科技

掀起性能巨浪:华为云Flexus X实例定义业务负载多面手

YG科技

重塑云服务,华为云Flexus X实例破解云服务传统难题

YG科技

聚焦中小企业上云用云需求,华为云Flexus X实例带来双倍性能、跃级体验

YG科技

自动化业务状态码设计

三七互娱后端技术团队

效率 自动化 状态码

华为云Flexus X实例创新柔性算力技术,助力企业提质、增效、降本

轶天下事

比较Eclipse扩展和OSGi服务_Java_R.J. Lorimer_InfoQ精选文章