OSGi и серверы приложений

У меня проблемы с пониманием разницы в обеих платформах? Кажется, что оба предлагают среду для развертывания и управления приложениями. Сначала я подумал, что серверы приложений используют OSGi под капотом, сейчас я так не думаю, но вижу, что большие AS (jboss, glassfish, websphere и т. Д.) Используют OSGi. Что за картина?

Спасибо

1 ответ

Решение

Существует (в некоторой степени) перегрузка термина "приложение".

OSGi - это среда выполнения (и модель разработки) для модульных приложений Java. Термин "приложение" в этом случае может быть действительно, очень низким уровнем. Например, сервер приложений можно считать таким "приложением".

Серверы приложений также являются средой исполнения (и моделью разработки) для приложений Java. Однако термин "приложение" в этом случае обычно относится к типу приложения более высокого уровня (например, веб-приложения). Серверы приложений обычно включают в себя богатый набор более высоких функциональных возможностей и API-интерфейсов программирования для создания веб-приложений (сервлетов), сохранения данных в базах данных (JPA) и возможностей кластеризации. В наши дни большинство серверов приложений состоят из модулей (например, ядра, механизма сервлетов, контейнера EJB и т. Д.). Некоторые серверы приложений используют OSGi под крышками. Другие имеют собственную модульную среду выполнения, которая также предлагает возможности OSGi.

Но также возможно разрабатывать приложения более высокого уровня (например, веб-приложения) напрямую, используя только среду выполнения OSGi. Однако сама структура OSGi не включает в себя никаких дополнительных функций. Это должно быть собрано самостоятельно. Есть несколько "дистрибутивов", которые включают в себя фреймворк и несколько модулей.

Другие вопросы по тегам