Разница между серверами приложений и контейнерами сервлетов с дополнительно подключёнными библиотеками

Для конкретности будем рассматривать контейнер сервлетов Tomcat и сервера приложений JBoss и GlassFish, хотя вопрос скорее общий для разных контейнеров и серверов.

В качестве ответа на базовый вопрос о различии между тремя вышеприведёнными названиями можно взять вот такие строки с английского стека:

Tomcat is just a servlet container, i.e. it implements only the servlets and JSP specification. Glassfish and JBoss are full Java EE servers (including stuff like EJB, JMS, ...), with Glassfish being the reference implementation of the latest Java EE 6 stack, but JBoss in 2010 was not fully supporting it yet.

Но ведь что собой представляет "реализация спецификации Java EE"? В сущности, некоторые библиотеки (просто jar-файлы), решающие поставленные задачи.

Да, в качестве собственных библиотек Tomcat содержит только те, которые предназначены для работы с сервлетами/JSP, что является лишь небольшой частью спецификации. Но ведь при использовании Tomcat-а нам никто не мешает подключать туда дополнительные библиотеки для нашего приложения.

В том числе мы можем добавить и всё то, что будет необходимо для использования EJB, JMS и других страшных слов. То есть, мы вполне можем "прокачать" Tomcat до полной или почти полной реализации спецификации Java EE, в зависимости от того, что нам требуется.

Вот что говорится в одном из ответов под тем же вопросом:

It seems a bit discouraging to use Tomcat when you read these answers. However what most fail to mention is that you can get to identical or almost identical use cases with tomcat but that requires you to add the libraries needed (through Maven or whatever include system you use)

Итак, вопрос: есть ли в итоге какая-то разница между полностью "прокачанным" контейнером сервлетов и настоящими серверами приложений? Если да, то в чём она состоит?

Или всё-таки можно совершенно точно сказать, что сервер приложений - это просто контейнер сервлетов с горой дополнительных библиотек для полной реализации Java EE?


Ответы (0 шт):