AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

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

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

关注

评论

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

聚力创新|首届BIOV生命科技与再生医疗国际峰会在泰国曼谷圆满举行

TechubNews

华为阅读年度榜单揭晓:汇聚精品内容,打造沉浸式阅读盛宴

最新动态

YOLOv5 的量化流程及部署方法

地平线开发者

自动驾驶 算法 地平线征程5 地平线征程6

指标管理+AI大模型深度融合,开启智能数据分析管理新时代

袋鼠云数栈

优化大宽表查询性能,揭秘GaussDB(DWS) 谓词列analyze

华为云开发者联盟

GaussDB #数据库 analyze

出海电商如何解决网络问题

Ogcloud

SD-WAN 跨境电商网络 外贸网络 SD-WAN国际专线 国际网络专线

全新红娘交友系统定制版源码| 相亲交友小程序源码全开源可二开_

DUOKE七七

php 开源 uniapp

剖析——陪玩源码,陪玩平台搭建的各种必备功能与收益来源,游戏陪玩系统源码

DUOKE七七

php 开源 uniapp 陪玩系统源码

2024数据库编程大赛-八强决赛成绩揭晓

NineData

Doris NineData 第二届数据库编程大赛

对话 Project Astra 研究主管:打造通用 AI 助理,主动视频交互和全双工对话是未来重点

声网

如何找到可靠的海外云服务器租用商

Ogcloud

云服务器 香港云服务器 美国云服务器 海外云服务器 云服务器租用

X314协议代币智能合约开发

区块链软件开发推广运营

交易所开发 dapp开发 链游开发 公链开发 代币开发

Elasticsearch filter context 的使用原理

极限实验室

elasticsearch filter querycache

大语言模型的上下文窗口 (Context Windows)

澳鹏Appen

文本生成 LLM 大语言模型

华为ensp--BGP路由黑洞

阿落ovo

阿里大佬翻遍全网Java面试文章,总结出这份1658页文档,GitHub收获25K+点赞

Summer

Java 程序员 面试 架构师 大厂

Gate.io 平台通证 GT:持续赋能与销毁、财富效应显著

股市老人

性能优化!突破性能瓶颈的尖兵CPU Cache

不在线第一只蜗牛

性能优化

ByConity BSP 解锁数据仓库新未来

Swift社区

2024年OpenTiny年度人气贡献者评选正式开始

OpenTiny社区

开源 前端 OpenTiny

三面滴滴失败,总结了Java面试题,有几个题还是一直搞不懂

Summer

Java 程序员 面试 架构师 大厂

阿里发布多模态推理模型 QVQ-72B,视觉、语言能力双提升;OpenAI 正在研发人形机器人丨 RTE 开发者日报

声网

三场与AI有关的死亡

脑极体

AI

探索Flink动态CEP:杭州银行的实战案例

Apache Flink

大数据 flink 数据分析 CEP 实时处理

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