Архитектура / организация проекта в приложении Java EE с EJB 3.0, JPA, динамические веб-проекты на JBoss - PullRequest
7 голосов
/ 07 января 2009

У меня есть веб-приложение с различными динамическими веб-проектами, каждый из которых, как правило, содержит проект EJB. Мы хотим, чтобы они взаимодействовали друг с другом, как при использовании bean-компонентов и классов друг от друга EJB-компонентов через JNDI, совместно использующих одну и ту же базу данных, так и использующих их собственные. Но мы также хотим иметь возможность хранить разные проекты на разных серверах.

Что будет правильным направлением для такого проекта с точки зрения архитектуры и организации?

Как мы должны использовать EAR? Один EAR, чтобы управлять ими всеми и в темноте связать их? (извините, нужно было сделать эту ссылку LOTR) или EAR на сервер / веб-проект и т. д .?

Ответы [ 3 ]

2 голосов
/ 09 января 2009

Дисковое пространство дешево, но если вы выбросите все в один EAR, ваш сервер приложений может запустить их все, даже если все, что вам нужно, это Service A. Вы лучше разбиваете часто используемые EJB и развертываете их с помощью сами по себе, и компоненты каждого отдельного сервиса в своих собственных EAR.

Затем, используя в качестве примера JBoss, вы можете просто скопировать артефакты прямо в каталог развертывания любого сервера, на котором вы хотите их запустить.

OrderManagement.ear InventoryManagement.ear StoreFront.ear

Вы можете иметь все, некоторые или ничего на любом конкретном сервере.

1 голос
/ 12 января 2009

Имейте в виду, исправление / обновление и сценарии регрессионного тестирования. Чем больше модулей EJB у вас в одном EAR, тем больше функциональных точек потребуется регрессионное тестирование, даже если вы исправили или добавили новую функцию только к одному из модулей.

1 голос
/ 09 января 2009

EJB должны быть модульными, поэтому в зависимости от сервиса, который вы хотите предоставить, вы должны предоставить надлежащий EAR для развертывания. Также попробуйте использовать MBeans и разверните их как независимые сервисы. Интерфейсы управления очень помогают при отладке и тестировании.

...