Equinox和处女座有什么区别?

Jun*_*awa 14 osgi equinox eclipse-virgo

我确信我会理解差异,因为我开始做更多与OSGi相关的事情,但我认为这是一个很好的问题,因为我不清楚几次快速谷歌搜索.如果有人有一个清晰,简洁的答案......

ear*_*cam 25

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

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

处女座的核心使用Equinox,但提供了许多在生产中使用它时所需要的东西.Virgo基本上是捐赠给Eclipse Foundation的SpringSource dm Server项目,所以它显然对Spring的所有东西都有很强的支持.存在许多类似的产品(Karaf(ServiceMix)以及许多Java EE应用服务器).

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

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

  • 很好的答案,我想补充一点,处女座支持"子系统"的概念,以及内核区域和用户区域之间的分区.这可以确保用户安装的捆绑包不会干扰内核,并且还可以部署独立的功能岛 - 也称为应用程序 - 而不会产生交叉干扰. (3认同)
  • 很好的答案.只有一个更正:Virgo是SpringSource dm Server项目贡献给Eclipse而Gemini Blueprint是向Eclipse捐赠的Spring DM项目. (2认同)

Mik*_*Van 8

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

处女座"子系统"参考实现确实是协调部署捆绑包的主要改进.在Karaf,他们使用"功能"部署机制."子系统"和"功能"部署机制之间的主要区别在于,在子系统中,您可以隔离特定的库集,并使其不会在已定义的子系统之外使用.通过功能,可以在容器范围内使用其他库提供的所有包.