Я намагаюся зрозуміти різницю між повноцінним сервером додатків (наприклад, Weblogic, JBoss тощо) і контейнером сервлетів (Tomcat, Jetty тощо).
Як вони відрізняються і коли використовувати?
Дякую,
Я намагаюся зрозуміти різницю між повноцінним сервером додатків (наприклад, Weblogic, JBoss тощо) і контейнером сервлетів (Tomcat, Jetty тощо).
Як вони відрізняються і коли використовувати?
Дякую,
Відповіді:
Контейнер сервлетів підтримує тільки сервлет API (включаючи JSP, JSTL).
Сервер додатків підтримує весь JavaEE - EJB, JMS, CDI, JTA, сервлет API (включаючи JSP, JSTL) тощо.
Можна запустити більшість технологій JavaEE на сервлет-контейнері, але вам доведеться встановити окрему реалізацію конкретної технології.
В цілому, контейнер сервлетів обмежує себе більш-менш реалізацією специфікації сервілетів J2EE. Крім того, увага зосереджена на середовищі виконання, а не на наданні додаткових інструментів.
На відміну від цього, повноцінний сервер додатків реалізує весь стек J2EE; плюс він поставляється з усіма інструментами підприємства та можливостями інтеграції. Сервер додатків, як правило, має розширені інтерфейси адміністрування, він підтримує кластеризацію та інші функції, що використовуються здебільшого при розробці високого класу систем.
Початківцю, мабуть, краще зупинитися на простому контейнері з сервлетами, оскільки крива навчання там набагато менш крута.
Редагувати
@Apache Fan: Це залежить від специфіки вашої ситуації, наприклад, існуючих систем та планів на майбутнє. Я не думаю, що тут застосовується загальний підхід до діаграми.
Вибір платформи зазвичай проводиться шляхом зважування конкретних вимог проти знань з перших рук розглянутих систем.
Однак питання не дає підказки щодо того, якими є критерії оцінювання. Чи має це бути з відкритим кодом? Чи потрібна цілодобова підтримка постачальника? З яким корпоративним середовищем має інтегруватися система? Чи є проблемою ліцензійних платежів? Будь-які обов'язкові технології чи інструменти? І т.д.
Не знаючи сказаного, це дуже багато зйомок у темряві.
В основному сервер додатків у контексті Java EE - це програмне забезпечення, встановлене на сервері, яке реалізує одну специфікацію Java EE (наприклад, Java EE 7). Це означає, що таке програмне забезпечення (сервер додатків) повинно мати можливість запускати програму Java EE.
Java EE визначає 4 домени, так звані контейнери :
Два контейнери є частиною сервера додатків (EJB та Web контейнер), а два інших є частиною клієнт-комп'ютера.
JBoss і Weblogic - сервери додатків, Tomcat і Jetty - веб-контейнер. Ось чому JBoss та Weblogic можуть мати справу з більшою кількістю технологій, ніж веб-контейнер. Сервер додатків може керувати EJB.
Контейнер сервлетів не є відповідним виразом для кваліфікованих Tomcat та Jetty, оскільки він є більш обмежуючим. Tomcat також може виконувати JSP і JSF, не тільки сервлети.
afaik, websphere та jboss є повністю сумісним j2ee-сервером, який може працювати за межами сервлетів, як EJB, тоді як Tomcat - це лише контейнер сервлетів, і ви не можете запускати EJB на ньому.
Словомовно: Веб-сервер означає: Обробка HTTP-запитів (як правило, із браузерів).
Контейнер сервлетів (наприклад, Tomcat) означає: Він може працювати з сервлетами та JSP.
Сервер додатків (наприклад, GlassFish) означає: * Він може керувати програмами Java EE (як правило, як сервлетами / JSP та EJB).
Початківцю, напевно, краще зупинитися на простому контейнері з серветками.