Уместно ли использовать OSGI framework в небольшом Java-приложении? - PullRequest
4 голосов
/ 05 июня 2011

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

спасибо!

Ответы [ 4 ]

5 голосов
/ 05 июня 2011

Для современных компьютерных систем скорость и объем памяти OSGi не имеют никакого значения: помните, что OSGi был разработан для устройств с ограниченными ресурсами.Объем памяти составляет сотни кБ, и как только разрешение службы выполнено, среда не влияет на скорость вашего приложения (например, нет прокси-серверов).Короче говоря, не беспокойтесь во время выполнения.

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

Вам потребуется подумать об упаковке и доставке приложения: в зависимости от вашей аудитории вы можете просто уйти, отправив кучусвязки, используя сценарий оболочки для запуска системы (например, Pax Runner ), или вам может потребоваться инвестировать в что-то более изощренное, например, в красивую упаковку приложений со значком.

3 голосов
/ 12 июня 2011

Сегодня OSGi практически не имеет накладных расходов, рамки варьируются от 350 тыс. До 1 Мб. Во время выполнения OSGi остается в стороне.

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

Вы можете найти bndtools на торговой площадке Eclipse.

3 голосов
/ 05 июня 2011

Я использую karaf / iPOJO в качестве контейнера OSGi, чтобы разрешить обновление версий библиотек во время работы приложения.

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

2 голосов
/ 05 июня 2011

OSGi по-прежнему "немного" больше загружает, чем обычные Java-проекты.Вместо этого я бы положился на модули Maven, если вы хотите иметь управление версиями.

Если вы выбираете OSGi apporach, взгляните на создание плагина Eclipse.Он основан на Eclipse Equinox и может быть быстро применен к новым проектам благодаря предложениям Eclipse для создания новых проектов.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...