Почему osgi используется?

Я хочу знать, почему инфраструктура OSGI используется для создания Java-приложений. Я ищу в Интернете для этого, но ответы выглядят сложными для меня. Может кто-нибудь объяснить несколько пунктов о том, почему нам нужно принять osgi.

Извините, если вопрос не подходит для stackoverflow Я ценю терпение читателей. Спасибо.

Ответы

Ответ 1

OSGi предоставляет модульную систему с версиями модулей и, кроме того, немного управления жизненным циклом. Это управляет зависимостями между модулями, динамическим/ленивым запуском/удалением модулей, поиском/обнаружением и т.д.

Часть этого станет частью java-языка. Он обеспечивает меньшую сложность, чем проводка спагетти классов.

Ответ 2

ИМХО OSGI сам по себе требует большого количества кодовых табличек кодов для того, что он делает. Однако, если вы используете библиотеку, такую ​​как Karaf и iPOJO, большая часть накладных расходов скрыта, и вы получаете большую часть преимуществ.

Основным преимуществом является возможность управления версиями и надлежащей изоляцией модулей. Например, вы можете

  • загрузите правильные версии из репозитория maven, например, nexus.
  • использовать несколько версий одной и той же библиотеки и иметь нужные им модули, которые используют правильные.
  • останавливать, обновлять и запускать модули во время работы приложения.
  • веб-консоль, чтобы увидеть состояние всех ваших модулей и управлять ими коллективно или индивидуально.

Ответ 3

Пройдите с помощью tutorial. Вы можете получить ответ.

Ответ 4

Для меня лучшая часть OSGi заключается в том, что она способствует сервис-ориентированному представлению вашей системы, что помогает развязывать, тестировать и работать в команде.

Я не думаю, что это должно быть сложно, поскольку я попытался продемонстрировать пример приложения "OSGi для простых смертных" [1] и слайдов [2] (оба бесстыдных пробки; -)

[1] https://github.com/bdelacretaz/OSGi-for-mere-mortals

[2] http://www.slideshare.net/bdelacretaz/osgi-for-mere-mortals