春分点和处女座有什么区别?
我确信当我开始做更多与 OSGi 相关的事情时我会理解其中的区别,但我认为这是一个很好的问题,因为通过几次快速的 Google 搜索我并不清楚。如果有人有一个清晰、简洁的答案......
I'm sure I'll understand the difference as I start doing more stuff related to OSGi, but I thought it was a good question to ask since it's unclear to me from a couple quick Google searches. If anyone has a clear, concise answer…
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一个不精确的比喻:Equinox 是引擎,Virgo 是汽车。
Equinox 是 Eclipse 项目的运行时(替代实现包括 Felix(来自 Apache)和 Knopflerfish)。
Virgo 以 Equinox 为核心,但提供了在生产中使用它时需要的许多功能。 Virgo 基本上是捐赠给 Eclipse 基金会的 SpringSource dm Server 项目,因此它显然对 Spring 的所有事物都有强大的支持。存在许多类似的产品(Karaf (ServiceMix) 以及众多 Java EE 应用服务器)。
OSGi 运行时通常是一个非常小的(运行时)环境,仅足以启动/提供 OSGi 框架。像 Virgo 这样的产品以一致的、经过测试的方式提供常见的生产/企业功能,并且通常包括远程 shell 访问、Web 应用程序支持、安全性等。
您可以直接使用运行时,根据需要添加每个功能,但是虽然这可能对资源受限的系统很有用,但通常需要付出大量努力却收效甚微(当然除了教育之外)。
An imprecise analogy: Equinox is the engine, Virgo is the car.
Equinox is the runtime from the Eclipse project (alternatives implementations include Felix (from Apache) and Knopflerfish).
Virgo uses Equinox at its core but provides many of the things one would require if using it in production. Virgo is basically the SpringSource dm Server project donated to the Eclipse Foundation, so it obviously has strong support for all things Spring. Many similar products exist (Karaf (ServiceMix) as well as numerous Java EE app servers).
An OSGi runtime is typically a very small (runtime) environment, just enough to launch/provide the OSGi framework. Products like Virgo offer the common production/enterprise functionality in a consistent, tested manner, and often include remote shell access, web-app support, security, etc.
You can work with a runtime directly, adding each feature as required, but while this may be useful for resource constrained systems, it's typically a lot of effort for little reward (apart from educational of course).
从技术上讲,Equinox 是 OSGi 框架,Virgo 是容器。容器位于框架之上并添加功能。与之竞争的技术是 Felix 和 Karaf,它们是 Apache 软件基金会 OSGi 框架 (Felix) 和容器 (Karaf)。 ASF 产品和 Eclipse 基础产品之间的区别主要在于 Eclipse 产品是 OSGI 4.2 规范的参考实现。
Virgo“子系统”参考实现确实是对捆绑包的协调部署的重大改进。在 Karaf 中,他们使用“功能”部署机制。 “子系统”和“功能”部署机制之间的主要区别在于,在子系统中,您可以隔离特定的库集并防止其包在定义的子系统之外使用。通过功能,所有可供其他库使用的包都可以在容器范围内使用。
Technically, Equinox is the OSGi Framework and Virgo is the container. A container rides on top of a framework and adds functionality. The competing technologies to this are Felix and Karaf which are the Apache Software Foundation OSGi framework (Felix) and container (Karaf). The difference between the ASF offering and the Eclipse foundation offering principally that the Eclipse offerings are the reference implementation of the OSGI 4.2 specification.
The Virgo "subsystems" reference implementation is indeed a major improvement for the coordinated deployment of sets of bundles. In Karaf, they use a "features" deployment mechanism. The major difference between a "subsystems" and "features" deployment mechanism is that in subsystems you can segregate specific sets of libraries and keep thier packages from being used outside of a defined subsystem. With features all packages made available to other libraries are made available container-wide.