swanrnd
@swanrnd
Издатель HTML5 игр

Jboss и TomCat. Как это работает?

Нам с коллегами по работе достался сервер с JBoss'ом, к сожалению без инструкции.

С Java работаем впервые, поэтому возник вопрос: как все это взаимодействует?

Я понимаю так:
Клиентское приложение выполняет запрос к серверу.
Tomcat (что-то вроде Apache и IIS) обрабатывает запрос.
Java машина (что-то вроде среды ASP.NET) обрабатывает сервлеты, которые скомпилированы JDK.
Далее эти сервелеты взаимодействую с БД и файлами.

Скорее всего эта схема в корне неверная. В ней я не могу понять зачем нужен JBoss, когда есть TomCat.

Насколько понимаю JBoss это что-то вроде библиотеки?

И последний вопрос, где можно узнать принцип обработки запроса JBoss'ом?

А так же что почитать? Есть ли хорошая литература?
  • Вопрос задан
  • 31681 просмотр
Решения вопроса 1
iZENfire
@iZENfire
JBoss — это реализация спецификации JavaEE (контейнер для EAR- и WAR-приложений).
Tomcat — это частичная реализация JavaEE в той её части, которая включает Web-приложения (контейнер для WAR).

Один другого дополняет. Для работы всего этого нужен JavaSE JDK — Oracle JDK или OpenJDK6 или 7 — в зависимости от требований развёртывания.

В WAR-приложениях сервлеты компилируются заранее Java-компилятором в байткод *.class-файлов и созданием архива с *.class-файлами и ресурсами (*.war). JSP-страницы из *.war компилируются «на лету» в сервлеты при первом запросе. Во время первого запроса со стороны пользователей контейнер сервлетов (Tomcat) преобразует JSP-страницы (если они присутствуют) в сервлеты, компилируя с помощью Java-компилятора из JDK в байткод. JVM контейнера осуществляет JIT-компиляцию байткода сервлетов в нативный код и кэширование нативного кода в оперативной памяти для обработки последующих запросов пользователей.

В EAR-приложениях контейнер (JBoss) производит похожую работу совестно с JVM по JIT-компиляции бинов (файлы *.class в *.ear) и кэшировании нативного кода в оперативной памяти для последующего многократного выполнения.

Метаинформация, записанная в файлах *.war и *.ear, нужна для правильного развёртывания, «параметризации» значений свойств сервлетов и бинов, частичным управлением жизненным циклом приложений.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@mayorovp
Аналогия неверна тем, что Java-машина является аналогом CLR.NET, а не ASP.NET
Аналог ASP.NET в данной связке — это как раз-таки Tomcat.

JBoss в базовом случае совершенно не нужен. JBoss — это реализация JavaEE (да, что-то вроде библиотеки). Ближайший аналог из мира .NET — Castle (общих у них две вещи: они оба обожают xml-файлы настроек и включают в себя столько функционала, что никто в мире никогда не использовал весь одновременно).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы