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

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

Спасибо

Ответ 1

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

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

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

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