Рекомендация: Модуль J2EE
В этом руководстве обсуждается Модуль J2EE, самый маленький независимый модуль в разработке приложения J2EE.
Взаимосвязи
Связанные элементы
Основное описание

Введение

Модуль J2EE - это самый маленький независимый модуль в разработке приложения J2EE. Существуют разные виды модулей J2EE, описанные в Концепция: Обзор J2EE.

Количество и размер модулей J2EE влияет на то, насколько легко будет развернуть и протестировать приложение J2EE.  Это также влияет на   простоту повторного использования компонентов в других приложениях и простоту адаптации системы к другим конфигурациям.

Информация о компоновке модулей J2EE, см. раздел Рекомендация: Компоновка модулей J2EE.

Подробная информация о развертывании модулей J2EE находится в разделе Руководство: Развертывание модулей и приложений J2EE.

Идентификация модулей J2EE

Модули J2EE создаются в процессе интеграции, но они отражают решения, принятые при реализации (и фактического проектирования). Модули J2EE обычно используются в пакете Реализация подсистем, который обычно соответствует Рабочий продукт: Проектирование подсистем.

Модули J2EE должны содержать тесно связанные объекты EJB и вспомогательные классы, используемые ими. В общем случае, такие взаимосвязи определяются в проекте, и эти классы группируются в Подсистему проекта. Идентификация Подсистем проекта должна учитывать проблемы повторного использования, замещения и поддержки множественных конфигураций развертывания. Однако, когда выделяются модули для развертывания на определенных узлах, могут проявиться недостатки проекта и потребоваться изменения в Подсистемах проекта (и/или Подсистемах реализации).

Определите, какие модули J2EE должны содержать компоненты, предназначенные для отдельного контейнера. Web-компоненты запакованы в Web-модулях, компоненты EJB запакованы в модулях EJB, а компоненты клиентского приложения запакованы в модулях клиентского приложения.

Регулярные классы Java, которые используются во многих модулях, должны быть запакованы в отдельных модулях J2EE. Полученные в результате файлы JAR должны быть указаны в class-path тех модулей, которым они требуются (или в кратковременном замыкании таких ссылок class-path).

В общем случае, при идентификации модулей J2EE, начинайте с идентификации одного модуля для каждой Подсистемы реализации, если только подсистема не содержит компонентов для развертывания в различных контейнерах, а затем определите различные модули для каждого контейнера.

Моделирование модулей J2EE

Модули J2EE представлены в Модель реализации как артефакты UML со стереотипом, идентифицирующим их тип: <<EJB-JAR>>, <<JAR>> или <<WAR>>.

Композиция компонентов (таких как EJB или сервлеты) в модуле J2EE может быть показана графически с помощью обозначения зависимости <<реализует>> от содержимого компонента к модулю, в котором он упакован, как это показано на следующей диаграмме. Могут быть также нарисованы зависимости <<JARInclude>>, чтобы показать включение всего пакета Java в архив.

Диаграмма, описанная в сопроводительном тексте.

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

Диаграмма, описанная в сопроводительном тексте.

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

Ниже приведен пример модели некоторых свойств компонента EJB.

Диаграмма, описанная в сопроводительном тексте.

На верхней диаграмме показана сборка объектов EJB, BankEJB, LoanEJB, CustomerEJB и LoanManagerEJB, в одном модуле, EJBJARArchive1. Обратите внимание на способ моделирования свойств метода EJB, ролей защиты и транзакций. В этом примере CustomerEJB выполняется под типом транзакции, указанном с помощью CustomerTrans (например, "Required"). В исходном коде используется роль "пользователь", которая соответствует пользовательской роли "Клиент" в файле описания. Кроме того, все методы в LoanEJB и CustomerEJB выполняются с идентификационными данными "Клиента", даже если вызов пользователя принадлежит другой роли. Подобным образом, методы LoanManagerEJB выполняются как "Администратор". Наконец, ни к одному методу не могут получить доступ пользователи в BankEJB.

Ниже приведен пример модели некоторых свойств Web-компонента.

Диаграмма, описанная в сопроводительном тексте.

На верхней диаграмме показана сборка сервлета в Web-модуле. Обратите внимание на моделирование ролей защиты и ограничений, где пользователи типа "Клиент" сами выполняют методы сервлета вывода результатов, а предмет ограничений защиты определяется свойствами WebSecurityContraint1.

Развертывание модуля J2EE на узле может быть показано в Модели развертывания. Более подробная информация о моделировании преобразования из модулей в узлы развертывания находится в разделе Руководство: Описание распределения для приложений J2EE.

Файлы описания

Каждый модуль J2EE содержит файл описания стандарта J2EE, а также ноль или более файлов описания поставщика. Разные виды файлов описания описаны в Концепция: Обзор J2EE. В общем случае, файлы описания стандарта J2EE содержат преимущественно проект и решения реализации. Решения, на которые RUP ссылается как на "решения развертывания", например, решение о том, на каких узлах выполняется компонент, и как компонент настроен для определенного узла, содержаться в файлах описания поставщика.

Файлы описания преследуют две различные цели:

  • Средства связи решений проекта и контейнера. Например, файл описания для EJB сеанса содержит параметр "session-type", который определяет, сохраняет ли состояния EJB сеанса или нет. Это должно быть совместимо с проектом и кодом - нельзя просто изменить этот параметр в файле описания.
  • Средства настройки поведения без повторной компиляции кода. Например, можно с помощью файла описания определить, какие роли имеют права доступа для вызова определенных методов. Это можно изменить без изменения кода EJB.

Содержимое файла описания устанавливается при создании Модуля J2EE и при сборке в Приложение J2EE. Информация о компоновке модулей J2EE, см. раздел Рекомендация: Компоновка модулей J2EE. Более подробная информация о сборке приложений J2EE находится в разделе Руководство: Сборка приложений J2EE.