是否存在 OSGi 术语、框架及其关系的概述?

Does there exist an overview of OSGi terminology, frameworks and their relations?

我正试图适应庞大的企业 OSGi 编程生态系统,但我发现很难大致了解该技术栈是如何组合在一起的,哪些技术相互构建,哪些技术解决了这些问题什么任务,以及它们如何适合我迄今为止设法理解的有限术语。

例如:Apache Felix、Equinox、Karaf、Jira OSGi、Spring DM、Aries Blueprint、Gemini Blueprint、iPOJO、Camel 等之间的关系是什么...

我知道 Equinox 是基于 Felix 的,Blueprint 变体和 iPOJO 在某种程度上与组件管理有关,但是 Declarative Services 呢? DS 是 Blueprint 的替代品,还是 Blueprint 是声明式服务的实现?

总的来说,我很困惑,我真的需要一个简单的概述,了解一般 OSGi 技术之间的关系。

有谁知道存在这样的 OSGi 生态系统概览(也许是图形化的)?

此致。

我不知道图形表示。我可以分解您在 post:

中提到的一些具体内容
  1. "OSGi Framework" 是核心 OSGi 规范的实现。它必须实现捆绑包、安装和解析捆绑包、生命周期、服务等概念。
  2. Apache Felix 是一个 OSGi 框架实现。
  3. Equinox 也是一个 OSGi 框架实现。它不是 "based on" Apache Felix,但确实从中借用了少量代码。 Equinox 是 Eclipse 等中使用的 OSGi 的实现
  4. Karaf 本质上是一个应用服务器产品。它使用 Felix 作为它的核心 OSGi Framework 实现,然后在上面添加了很多额外的特性。
  5. Jira OSGi:不知道。我相信 Jira 是在内部使用 OSGi 实现的,但我不知道任何细节。
  6. Spring DM 是一个 obsolete/dead 项目。这是一种使用 OSGi 将 Spring bean 图拆分为模块化应用程序的方法。
  7. Blueprint 是 OSGi 联盟发布的规范。它是 Compendium 规范之一,即核心中不需要的附加组件。 Blueprint 的灵感来自 Spring-DM,它标准化了在 bundle 内和 bundle 之间将 bean 连接在一起的想法。
  8. Gemini 蓝图是蓝图规范的一种实现。 Gemini 从 Spring-DM 代码开始,并对其进行改进以符合(当时的)新规范。
  9. Aries Blueprint 也是 Blueprint 的一个实现。它是 "clean-room",即根据规范从头开始实施,而不是从旧的 Spring 代码演变而来。
  10. 声明式服务是来自纲要的 OSGi 规范。这是定义组件并使用跨包服务将它们连接在一起的另一种方法。许多经验丰富的 OSGi 开发人员——包括我在内——认为声明式服务远远优于蓝图。如果你愿意,我可以详细说明原因。
  11. iPOJO 是定义组件并将它们连接在一起的另一种不同方式。它不符合任何 OSGi 规范。
  12. Camel 是一个集成库,主要用于消息传递应用程序。和OSGi没什么关系,只是在OSGi下可以运行

希望对您有所帮助。