Компоненты-сущности. Введение в компоненты-сущности. Крупные деловые объекты. Рост популярности компонентов-сущностей, страница 2

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

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

Представления компонентов-сущностей  и UML

Со структурной точки зрения компоненты-сущности состоят из главного класса Java, часто называемого классам реализации или классом компонента, и двух интерфейсов: местного (Ноте) и удаленного (Remote). Также они содержат класс первичного ключа, в который входят методы для работы с основным ключом отдельной таблицы базы данных или набора таблиц, в зависимости от того, какие данные должен изображать компонент. Отношения между этими элементами, а также базовые объекты J2EE, которые ими расширяются и реализуются, и определяют конкретные функциональные возможности сеансового компонента и его пригодность как компонента EJB.

В компонентах-сущностях, как и во всех компонентах EJB, используются описатели развертывания, которые хранят дополнительную информацию о компоненте. Сюда относятся параметры настройки транзакций для деловых методов, отношения с другими компонентами-сущностями, настройки персистентных полей и т.д.

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

Клиентское представление

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

Как было показано в предыдущей главе, на диаграмме классов UML клиентское представление компонента-сущности предпочтительно изображать подсистемой UML. Пример такого изображения показан на рис. 13.2.

Моделирование посредством подсистемы позволяет выявить аспекты, которые имеют спе цифическое значение в данной ситуации, или скрыть несущественные детали. На рис. 13.2 приведен пример клиентского представления, в котором показаны внутренние элементы подсистемы. Обратите внимание на стереотипы, которыми помечены элементы. Эти стереотипы показывают, что смысл конструкций UML был расширен для поддержки специфических особенностей архитектуры J2EE. Кроме того, стереотипы представляют собой простое и ко м-пактное средство обозначения определенной роли, которую играет конкретный модельный элемент в составе EJB. Компактная форма клиентского представления показана на рис. 13.3.

Внутреннее представление

Внутреннее представление компонента-сущности включает все компоненты клиентского представления, класс реализации и его отношения и все остальные классы, которые пользователь мог добавить в структуру компонента-сущности. На диаграмме классов UML эти элементы изображаются обычными классами и интерфейсами.

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

Далее мы уделим некоторое время аспектам технологии компонентов-сущностей.

Персистентность

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

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