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

StackOverflow https://stackoverflow.com/questions/420222

Вопрос

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

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

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

Это было полезно?

Решение

Дисковое пространство стоит дешево, но если вы поместите все в один EAR, ваш сервер приложений будет вынужден запускать их все, даже если вам нужен только Сервис A.Лучше всего разбирать часто используемые EJB и развертывать их отдельно, а компоненты каждого отдельного сервиса — в своих собственных EAR.

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

OrderManagement.Ear InventoryManagement.Ear Storefront.ear

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top