Jboss для 3-уровневой клиент-серверной архитектуры - PullRequest
2 голосов
/ 19 августа 2009

Я проектирую систему, в которой у меня есть 2 узла: 1 узел с веб-сервером, который обслуживает страницы JSP и перенаправляет запросы веб-службам на другой узел. В этом другом узле эти веб-сервисы направляют запросы на уровень бизнес-логики, который затем взаимодействует с уровнем DBAcccess.

Подходит ли JBoss для этого макета? Нужно ли будет развертывать 2 копии JBossAS, по одной в каждом узле?

Спасибо

Ответы [ 3 ]

1 голос
/ 20 августа 2009

У вас есть два узла, то есть две отдельные машины? [Есть другое значение слова «узел», обычного в WebSphere-land, просто проверяя, что мы используем ту же терминологию.]

Первый узел должен делать сервлеты и JSP. Серверы Java EE делают это, JBoss делает Java EE, так что это разумное использование JBoss. Вы можете использовать другие серверы Java EE, но сказанное вами не дает повода избегать JBoss. Так что это одна копия.

Второй узел, веб-сервисы и некоторая бизнес-логика и немного доступа к БД. Снова Java EE делает такие вещи. Есть альтернативы, но если вы уже знаете JBoss, то почему бы и нет? Если вы используете JBoss на узле 1, я бы не выбрал другой сервер Java EE на узле 2. [У меня нет опыта использования решений не-Java EE на этом уровне - без сомнения Spring afficionados может прокомментировать.] Так что если здесь используется Java EE, затем JBoss, другой экземпляр.

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

Сильный совет: с самого начала создавайте дизайн, исходя из предположения, что вы, возможно, захотите так масштабировать. Слишком легко (например) создавать огромные сессии Http, которые плохо работают в кластерах.

0 голосов
/ 21 августа 2009

Спасибо за ваши ответы! Позвольте мне объяснить немного больше о проекте.

Мы разрабатываем географическую информационную систему для клиента, который спросил, что основной функциональностью является группа веб-сервисов, которые предоставляют обработку файлов CSV в соответствии с некоторой бизнес-логикой. Клиент также попросил, чтобы мы создали веб-интерфейс для использования этого сервиса (хотя они (веб-сервисы) могут использоваться другим приложением). Они также сказали нам, что эти 2 сервера могут находиться в отдельных узлах / машинах. В области доступа к БД возникло еще одно ограничение: 2 сервера работают с 2 базами данных, и эти 2 также могут находиться на отдельных физических машинах, что дает в общей сложности 4 узла!

Таким образом, мой вопрос состоял в том, было ли разумно использовать 2 экземпляра JBoss или Spring AS на 2 серверах, и какая из этих двух технологий была бы наиболее подходящей для этого.

0 голосов
/ 19 августа 2009

Это старый вопрос о том, где реализовать «слой бизнес-логики»

Следуйте контрольному списку, и если у вас есть большинство ответов «да», используйте EJB (он же JBoss), в противном случае подумайте о простых bean-компонентах над DataAccessLayer в java-коде.

  • В вашем бизнесе смутные или динамически измененные правила.
  • Вы не уверены, что БД или продукт могут изменить двигатель БД в течение жизненного цикла.
  • Масштабируемость что-то значит для вас.
  • Вашему продукту необходимо предоставлять функциональность через интерфейс (не через Интернет) сторонним компонентам.
  • В вашей БД нет функциональных возможностей для реализации сложной бизнес-логики (например, дерби - это быстро, но ограничено).
...