【问题标题】:What is the difference between Equinox and Virgo?春分和处女座有什么区别?
【发布时间】:2012-02-24 09:11:23
【问题描述】:

当我开始做更多与 OSGi 相关的事情时,我确信我会理解其中的区别,但我认为这是一个很好的问题,因为我通过几个快速的 Google 搜索并不清楚。如果有人有一个清晰、简洁的答案……

【问题讨论】:

    标签: osgi equinox eclipse-virgo


    【解决方案1】:

    一个不精确的类比:Equinox 是引擎,Virgo 是汽车。

    Equinox 是来自 Eclipse 项目的运行时(替代实现包括 Felix(来自 Apache)和 Knopflerfish)。

    Virgo 使用 Equinox 作为其核心,但提供了许多在生产中使用它所需的东西。 Virgo 基本上是捐赠给 Eclipse 基金会的 SpringSource dm Server 项目,所以它显然对 Spring 的所有东西都有强大的支持。存在许多类似的产品(Karaf (ServiceMix) 以及众多 Java EE 应用服务器)。

    OSGi 运行时通常是一个非常小的(运行时)环境,仅足以启动/提供 OSGi 框架。 Virgo 等产品以一致的、经过测试的方式提供通用的生产/企业功能,并且通常包括远程 shell 访问、Web 应用程序支持、安全性等。

    您可以直接使用运行时,根据需要添加每个功能,但是虽然这对于资源受限的系统可能很有用,但通常需要付出很多努力才能获得很少的回报(当然除了教育之外)。

    【讨论】:

    • 很好的答案,我要补充一点,Virgo 支持“子系统”的概念以及捆绑包的内核区域和用户区域之间的划分。这确保了用户安装的包不会干扰内核,并且还可以部署独立的功能孤岛——也称为应用程序——而不会发生交叉干扰。
    • 很好的答案。更正一点:Virgo 是捐赠给 Eclipse 的 SpringSource dm Server 项目,Gemini Blueprint 是捐赠给 Eclipse 的 Spring DM 项目。
    【解决方案2】:

    从技术上讲,Equinox 是 OSGi 框架,Virgo 是容器。容器位于框架之上并添加功能。与之竞争的技术是 Felix 和 Karaf,它们是 Apache 软件基金会 OSGi 框架 (Felix) 和容器 (Karaf)。 ASF 产品与 Eclipse 基础产品之间的区别主要在于 Eclipse 产品是 OSGI 4.2 规范的参考实现。

    Virgo“子系统”参考实现确实是对捆绑集的协调部署的重大改进。在 Karaf 中,他们使用“功能”部署机制。 “子系统”和“功能”部署机制之间的主要区别在于,在子系统中,您可以隔离特定的库集并防止它们的包在定义的子系统之外使用。借助功能,其他库可以使用的所有包都可以在容器范围内使用。

    【讨论】:

      猜你喜欢
      • 2011-04-17
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 2018-03-06
      • 2017-04-05
      • 2014-06-19
      • 2019-11-13
      • 1970-01-01
      相关资源
      最近更新 更多