Когда подходящее время использовать сервер приложений? - PullRequest
1 голос
/ 19 октября 2011

В ходе разработки я разделил свой код на отдельные проекты, большинство из которых получают фид JMS, выполняют некоторую обработку каждого сообщения, сохраняют объект домена, а затем сервисы открываются для вызова некоторых других проектов с использованием RMI. Все они, кроме запуска веб-приложения (которое запускается на tomcat), которых сейчас насчитывается 6, выполняются как отдельные jar-файлы. Я предполагаю, что это может быть выведено из вышесказанного, но я не использую EJB; все проекты используют Spring.

У меня очень ограниченный опыт использования tomcat и почти нет опыта использования серверов приложений, но сегодня мне пришло в голову, что эти приложения могут быть размещены на сервере tomcat / app, и я чувствую, что это, вероятно, делают другие люди. Я слышал, что его можно использовать для управления транзакциями, поисками jndi и т. Д., И они звучат полезно.

Имея это в виду, я подумал, что это может начать решать мою проблему отложенной загрузки при получении объектов домена через RMI.

Мне было интересно, может ли кто-нибудь дать мне руководство относительно того, правильно ли я считаю, что это путь?

Ответы [ 2 ]

0 голосов
/ 19 октября 2011

Это может быть немного слепых, ведущих слепых, но я думаю, что вы правы.Сервер приложений - это пакет, который содержит все ваши маленькие проекты и связывает их - он контролирует их жизненный цикл и другие вещи, с которыми вы, возможно, не захотите иметь дело, например, развертывание, кэширование и резервирование.

Хотя я и закодировалВ течение многих лет они работали на различных предприятиях. Мне потребовалось некоторое время, чтобы понять, что они имеют в виду под «Контейнером», чем-то, что содержит небольшие произвольные независимые фрагменты кода.

Лучшие ответы, вероятно, уже опубликованычтобы вы знали, что вы не одиноки:)

0 голосов
/ 19 октября 2011

Решение об использовании Tomcat (который, на мой взгляд, является более легким контейнером) по сравнению с тяжелым (JBoss AS, Glassfish, ...) зависит главным образом от того, что вам нужно сделать.

Все контейнеры разделяют некоторые базовые вещи (например, пул баз данных, jmx, ...), но в определенный момент (например, вам нужно мощное кластерное решение со всем автоматическим переключением при сбое), чем более сложные контейнеры предоставляют больше готовых решений для таких требований.Конечно, вы могли бы также создать такие решения с помощью облегченного решения, но, вероятно, это проще с контейнером J2EE.

С другой стороны, POJO проще обрабатывать, чем EJB, и до тех пор, пока вы этого не сделаетеесть какие-то большие и тяжелые требования, которые я бы придерживался Spring.Использование лишь небольшого процента контейнера J2EE и создание приложения в нем делает его не очень удобным для использования.

Обработка транзакций в Spring и в J2EE в основном одинакова (оба способа могут быть выполнены с помощью, например,декларативный подход (аннотации)).

Если вы никогда не запускаете свое приложение в контейнере, я бы начал с более простого (Tomcat), а затем приблизился бы к более крупным, если это необходимо, поскольку это, вероятно, облегчает вашу жизнь.И до тех пор, пока у вас не было особых требований, которые вы не смогли бы выполнить, я не вижу смысла немедленно начинать с JBoss или Glassfish и переписывать ваше приложение, чтобы оно соответствовало J2EE.

...