Кто-нибудь нашел OSGi полезным в корпоративных приложениях?

Кто-нибудь развернул корпоративное приложение в OSGi и нашел его полезным?

Я вижу преимущества, принудительную модульность, хорошие определения зависимостей и т.д. Но они, похоже, в основном связаны с улучшением сборки.

Кто-нибудь нашел полезным динамически заменять существующий модуль? Мы стремимся разделить наше приложение на процесс и, честно говоря, не так сложно запустить новый экземпляр приложения с обновленными библиотеками. Будет ли OSGi полезен для этого?

Насколько надежна замена модуля? Мне кажется, что если у вас очень напряженный процесс, когда происходит много, замена работающего модуля чревата опасностью.

Ответы

Ответ 1

Я только что писал о том, почему мы не пошли с OSGi

В двух словах, я считаю, что основы OSGi прочны, но не были созданы для массового применения. Он вводит трения в процесс разработки/развертывания, который уже чреват проблемами. Я бы хотел, чтобы спецификация OSGi больше ориентировалась на личность разработчика/пользователя OSGi, чтобы сделать ее невидимой для процесса разработки. Также я потрясен тем, что JVM до сих пор не имеет прозрачного стандарта модуля.

Ответ 2

Большинство наших приложений - это веб-приложения.

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

Преимущество OSGi в том, что мы можем обновлять плагины с центрального веб-сайта, а не использовать процесс удаления/установки. Наш толстый клиент будет в более чем 100 местах по всей территории Соединенных Штатов, поэтому это было важно для нас.

Ответ 3

Я работаю в телекоммуникационной среде. Что-то вроде OSGi будет очень полезно для нас. Мы развертываем приложения для клиентов, которые не могут выйти в автономный режим, не получая прибыль. Они обрабатывают тысячи вызовов в секунду. Прямо сейчас, они должны делать обновления в своем окне обслуживания, чтобы принимать новые исправления или обновления.

Если мы сможем доставлять исправления и улучшения как горячее развертывание, это будет иметь большое преимущество. Но, конечно, перед тем, как мы это сделаем, есть фактор риска и дополнительные усилия по тестированию с помощью имитированного теста трафика.

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

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


Ответ 4

Мы используем его в большой телекоммуникационной компании. Мы имеем его в производстве в течение 2 лет, и мы продолжаем добавлять пакеты теперь у нас около 110 пакетов.

Ребята из команды в восторге от тонкого контроля, который им дают: они могут начать останавливать отдельные функции и контролировать их. Теоретически мы могли бы также hotdeploy новую версию в производстве, но в реальности мы используем эту функцию только при выполнении теста и preprod.

Наша широкая архитектура кисти основана на следующем: http://servicemix.apache.org/home.html

Наша основная проблема - всегда пытаться использовать стандартную java-инфраструктуру в osgi. Вторая проблема - это управление импортом/экспортом пакетов. Мы используем плагин maven.

В целом мы довольны этим выбором, но вам нужно рассмотреть 2 вещи: 1. Вы готовы сражаться с любой рамкой java, которую хотите добавить? 2. Вы достаточно дисциплинированы, чтобы не испортить свою зависимость?