50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

比较 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:021715
用户头像

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

关注

评论

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

想要更高的压缩率?一文带你深入了解 TDengine TSZ 压缩算法

TDengine

tdengine 时序数据库

CodeWhisperer——一个十分强大的工具 冲!

亚马逊云科技 (Amazon Web Services)

人工智能 亚马逊云科技 云上探索实验室 Amazon CodeWhisperer

数智融合 开启金融数据治理新时代

酷克数据HashData

大模型时代,“人人可AI”的百度开发者平台长什么样?

百度Geek说

人工智能 百度 大模型 企业号11月PK榜 开发者平台

中国机械总院:大型集团视角下的智能费控与支出管理

用友BIP

智能费控

如何使用 3 种方法实现 Axios 并发请求

Apifox

JavaScript 前端 axios 并发请求 web 开发

双良集团:价值创造本源,设备资产管理向智能化管理实现跨越

用友BIP

资产管理

文心一言 VS 讯飞星火 VS chatgpt (145)-- 算法导论12.1 5题

福大大架构师每日一题

福大大架构师每日一题

Mac OCR文字识别工具:Readiris Corporate for Mac中文激活版

加油,小妞!

Readiris Corporate OCR文字识别工具

Databend 开源周报第 121 期

Databend

强大的轻级思维导图软件 iMap Builder中文最新版

胖墩儿不胖y

Mac软件 思维导图软件

高防服务器可以用来搭建游戏网站吗?

Geek_f19a80

服务器

淘宝详情API接口:一键获取商品信息的实践探索

Noah

模拟建造游戏:异星工厂factorio 中文原生版

加油,小妞!

Factorio 模拟建造游戏

Macos数据库管理工具:Valentina Studio Pro for mac激活版 支持M

加油,小妞!

数据库管理 Valentina Studio Pro

细微之处决定胜败:从云厂商事故报告中学习经验教训

WuKongCoder

云计算 腾讯云 阿里云 华为云 AWS云

把握融合之道 推进价值创造

用友BIP

业财融合

OpenSearch向量检索和大模型方案深度解读

阿里云大数据AI技术

从四个典型场景看如何将数据集成“用到实处”

谷云科技RestCloud

ETL

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