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

Введение

Это руководство посвящено идентификации объектов EJB. Дополнительное руководство об объектах EJB предоставлено в разделе Руководство: Объект EJB

Идентификация объектов EJB

Обычно объекты EJB используются для реализации бизнес-объектов на стороне сервера, которые требуют поддержки транзакций, защиты и удаленного доступа или работают с общими данными (например, изменяют информацию о счете).

Объекты EJB часто идентифицируются во время идентификации классов проекта из Рабочий продукт: Класс анализа. Классы управления являются подходящими кандидатами для bean-объектов сеанса, потому что bean-объекты сеанса приспособлены для предоставления управляющей логики. Сущностные классы являются подходящими кандидатами для bean-объектов сущностей, потому что они приспособлены для хранения данных.

Обратитесь также к следующим более специальным руководствам:

Сравнение bean-объектов сеанса, сущности и управляемых сообщениями

Обобщая некоторые из названных руководств, эта таблица определяет роли, которые играют различные объекты EJB, способ доступа к ним и природу их состояния.

  Сеанс Управление событиями Сущность

Роль

Реализует бизнес-логику, характерную для клиента

Реализует бизнес-логику, характерную для обработки сообщений

Реализует бизнес-логику, характерную для бизнес-сущности

Метод доступа

Единственный клиент для локального и удаленного интерфейсов

Контейнер реализован с помощью интерфейса JMS MessageListener; нет прямого доступа для клиентов

Одновременно существует много клиентов для локального и удаленного интерфейсов

Состояние

Может быть установлено кратковременное диалоговое состояние между клиентом и контейнером

Состояния не сохраняются, но может поддерживаться управление ресурсами в экземпляре

Постоянное состояние сохраняется в базе данных


Моделирование объектов EJB

Объекты EJB моделируются как набор классов стандартных типов. В частности, применяются класс bean-объекта и любые классы интерфейса EJB. Интерфейсы EJB моделируются как классы стереотипов, а не интерфейсы UML, по причинам, обсуждаемым в Руководство: Интерфейсы для приложений J2EE.

Взаимосвязи между классами bean-объектов и интерфейсами EJB моделируются как зависимости интерфейсов от класса bean-объекта, а не как взаимосвязи реализации. Обычно, Java реализовывает конструктор, представленный как реализация между интерфейсом и классом. Однако, классы EJB не реализовывают своих классов интерфейсов, и поэтому более подходит зависимость. На следующей диаграмме показан пример. Более подробная информацию об этом примере находится в Руководство: Проектирование подсистем для приложений J2EE.

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

Пример EJB и класса помощника

Ниже приведены стереотипы UML, применимые для моделирования объектов EJB.

Стереотип Применяется в Определение

<<EJBSessionHomeInterface>>
<<EJBEntityHomeInterface>>

Класс Обозначает сеанс или домашний интерфейс сущности соответственно.
<<EJBRemoteInterface>> Класс Обозначает удаленный интерфейс EJB.
<<EJBLocalInterface>> Класс Обозначает локальный интерфейс EJB.
     
<<EJBSession>> Класс Обозначает класс bean-объекта сеанса EJB.
<<EJBEntity>> Класс Обозначает класс bean-объекта сущности EJB.
<<EJBMessageDriven>> Класс Указывает, что класс является bean-объектом управляемым сообщениями.

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

Полный список стереотипов для представления EJB находится в Спецификации преобразования UML/EJB (RSC01).

Моделирование bean-объектов, управляемых сообщениями

Смоделируйте зависимости разделов и очередей, к которым подписан bean-объект, управляемой сообщениями. Руководство о моделировании параллельных элементов в приложении J2EE находится в разделе Руководство: Описание динамической архитектуры приложений J2EE.

Моделирование свойств EJB

Такие механизмы, как управляемое контейнером хранилище, транзакции, проверка прав доступа и так далее, могут быть смоделированы как дополнительные свойства класса bean-объекта, или они могут быть просто включены в текстовое описание, связанное с классом bean-объекта.

Используйте диаграммы схем связей для рассмотрения сценариев, используемых этими механизмами.

Моделирование взаимодействий объектов EJB

Диаграммы взаимодействий (диаграммы схем связей и совместной работы) могут быть использованы для представления динамического поведения объектов EJB и взаимодействия объектов, отличных от EJB (включая Web-компоненты и внешние клиентские приложения), с объектами EJB.

Эти диаграммы взаимодействий по существу описаны в разделе Задача: Проектирование прецедентов. Взаимодействия могут быть показаны в bean-объекте как черный ящик, взаимодействующий только с интерфейсами EJB. Взаимодействия могут также показывать реализацию bean-объекта с помощью взаимодействий между интерфейсами EJB и классом реализации bean-объекта. Заметьте, что промежуточное взаимодействие с контейнером обычно не показывается.

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

Пример диаграммы схемы связей, иллюстрирующей взаимодействие класса клиента с интерфейсом EJB, показан на Рисунке 2.

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

Рисунок 2: Взаимодействие класса клиента с интерфейсами EJB

На Рисунке 3 показана диаграмма схемы связей, которая подобна приведенной на Рисунке 2, но она показывает взаимодействия с реализацией bean-объекта.

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

Рисунок 3: Пример взаимодействия с реализацией EJB

Моделирование альтернатив

EJB как группировка класса реализации bean-объекта с интерфейсами EJB может быть смоделирован в качестве подсистемы или компонента.

Разработчики могут также моделировать EJB как класс, и создавать стереотипы операций для обозначения, принадлежат ли они "локальным", "удаленным" или "домашним" интерфейсам. Это предоставляет более компактную нотацию по сравнению с другими.