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

时间:2018-11-22 12:28:33

标签: osgi jira apache-felix equinox declarative-services

我正在努力适应庞大的企业OSGi编程生态系统,但是我发现很难大致了解此技术堆栈是如何组合在一起的,哪些技术可以相互依赖,哪些技术可以解决什么任务,以及它们如何适合我到目前为止所能理解的有限术语。

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

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

总的来说,我很困惑,我真的需要简单地概述一下通用OSGi技术之间的关系。

有人知道OSGi生态系统的概述吗?也许是图形的?

最诚挚的问候。

1 个答案:

答案 0 :(得分:11)

我不知道图形表示。我可以分解您在帖子中提到的一些具体内容:

  1. “ OSGi框架”是核心OSGi规范的实现。它必须实现捆绑软件​​的概念,安装和解决捆绑软件,生命周期,服务等。
  2. Apache Felix是OSGi框架的实现。
  3. Equinox也是OSGi框架的实现。它不是“基于” Apache Felix,但确实从中借用了少量代码。 Equinox是Eclipse等中使用的OSGi的实现。
  4. Karaf本质上是一种应用服务器产品。它使用Felix作为其核心OSGi Framework实现,然后在顶部添加了很多额外的功能。
  5. Jira OSGi:不知道。我相信Jira是OSGi内部实现的,但我不知道任何细节。
  6. Spring DM是一个过时/已死的项目。这是一种使用OSGi将Spring bean图拆分为模块化应用程序的方法。
  7. 蓝图是OSGi联盟发布的规范。它是《简编》规范之一,即Core不需要的附加组件。蓝图的灵感来自Spring-DM,它标准化了将束内和束之间的bean接线在一起的想法。
  8. Gemini蓝图是蓝图规范的实现。 Gemini从Spring-DM代码开始,并对其进行了改进,使其符合(当时)新的规范。
  9. 白羊座蓝图也是蓝图的实现。它是“无尘室”,即从头开始按照规范进行实现,而不是从较早的Spring代码演变而来。
  10. 声明式服务是Compendium中的OSGi规范。这是定义组件并使用跨包服务将它们连接在一起的另一种方法。包括我在内的许多经验丰富的OSGi开发人员都认为声明性服务要比Blueprint更好。如果您愿意,我可以详细说明原因。
  11. iPOJO是定义组件并将它们连接在一起的另一种不同方式。它不符合任何OSGi规范。
  12. Camel是一个集成库,主要用于消息传递应用程序。除了可以在OSGi下运行外,它与OSGi无关。

我希望这会有所帮助。