В чем разница между Равноденствием и Девой?

Я уверен, что пойму разницу, когда начну делать больше вещей, связанных с OSGi, но я подумал, что это хороший вопрос, поскольку я не понял его из пары быстрых поисков в Google. Если у кого есть четкий и лаконичный ответ...


person Jun-Dai Bates-Kobashigawa    schedule 01.02.2012    source источник


Ответы (2)


Неточная аналогия: Равноденствие — двигатель, Дева — автомобиль.

Equinox — это среда выполнения из проекта Eclipse (альтернативные реализации включают Felix (от Apache) и Knopflerfish).

Virgo использует Equinox по своей сути, но предоставляет многие вещи, которые потребуются при использовании его в производственной среде. Virgo — это, по сути, проект SpringSource dm Server, переданный в дар Eclipse Foundation, поэтому он явно поддерживает все, что связано с Spring. Существует множество подобных продуктов (Karaf (ServiceMix), а также многочисленные серверы приложений Java EE).

Среда выполнения OSGi обычно представляет собой очень маленькую среду (среду выполнения), которой достаточно для запуска/предоставления среды OSGi. Такие продукты, как Virgo, предлагают общие производственные/предпринимательские функции согласованным и проверенным образом и часто включают в себя удаленный доступ к оболочке, поддержку веб-приложений, безопасность и т. д.

Вы можете работать со средой выполнения напрямую, добавляя каждую функцию по мере необходимости, но, хотя это может быть полезно для систем с ограниченными ресурсами, обычно это требует больших усилий за небольшое вознаграждение (кроме обучения, конечно).

person earcam    schedule 01.02.2012
comment
Отличный ответ, я бы добавил к этому, что Virgo поддерживает концепцию подсистем и разделение между областью ядра и пользовательской областью для пакетов. Это гарантирует, что пакеты, установленные пользователем, не будут мешать работе ядра, а также позволяет развертывать независимые островки функциональности, также называемые приложениями, без взаимного вмешательства. - person Neil Bartlett; 02.02.2012
comment
Отличный ответ. Только одно исправление: Virgo — это проект SpringSource dm Server, внесенный в Eclipse, а Gemini Blueprint — проект Spring DM, пожертвованный Eclipse. - person Glyn Normington; 06.02.2012

Технически Equinox — это OSGi Framework, а Virgo — контейнер. Контейнер работает поверх фреймворка и добавляет функциональность. Конкурирующими технологиями для этого являются Felix и Karaf, которые представляют собой OSGi-фреймворк Apache Software Foundation (Felix) и контейнер (Karaf). Разница между предложением ASF и базовым предложением Eclipse заключается главным образом в том, что предложения Eclipse являются эталонной реализацией спецификации OSGI 4.2.

Эталонная реализация «подсистем» Virgo действительно является значительным улучшением для скоординированного развертывания наборов пакетов. В Karaf они используют механизм развертывания «функций». Основное различие между механизмом развертывания «подсистем» и «функций» заключается в том, что в подсистемах вы можете разделить определенные наборы библиотек и предотвратить использование их пакетов за пределами определенной подсистемы. Благодаря функциям все пакеты, доступные для других библиотек, становятся доступными для всего контейнера.

person Mike Van    schedule 03.02.2012