Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
сит.docx
Скачиваний:
10
Добавлен:
26.09.2019
Размер:
353.03 Кб
Скачать
  1. Организация и особенности Entity компонент с сохранением (персистентностью) управляемым контейнером (cmp).

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

Есть два типа Сущностных Компонент: существующие с Управлением Контейнера (Container Managed persistence) и существующие с Управлением Компонентами (Bean-Managed persistence).

Container Managed Persistence (CMP). CMP Сущностные Компоненты реализованы с выгодой для EJB Контейнера. Через указанные в описании развертывания спецификации, EJB Контейнер связывает атрибуты Сущностных Компонент с некоторым постоянным хранилищем (обычно — но не всегда — это база данных). CMP снижает время разработки для EJB, так же, как и значительно снижает число требуемого кода.

СМР имеет много преимуществ по сравнению с BMP.

Ее проще использовать - разработчик Компонента сам не обращается к методам упр-ния БД.

Управление сохранением состояния м. б. изменено без изменения и перекомпиляции исх. кода Компонента.

Entity c CMP не содержит реализации методов поиска, эти реализации обеспечивает контейнер.

Поля, сохранение состояния которых обеспечивает контейнер, д.б. объявлены как public.

Класс такого компонента соержит реализации методов ejbActivate(), ejbPassivate(), ejbLoad(), ejbStore(), ejbRemove(), ejbEntityContext(), unsetEntityContext().

Реальная выгода от CMP состоит в том, что компонент может портироваться под любую систему постоянного хранения. Если вы думали об этом, CMP работает потому, что Контейнер генерирует весь код, необходимый для переноса состояния между EJB объектом и постоянным хранилищем. Это означает, что Контейнер знает, как взаимодействовать с таким специальным хранилищем. Реализация EJB Контейнера поддерживает различные хранилища, обычно все основные RDBMS, такие как Oracle, DB2, MySQL и т.п. Так как логика сохранения не закодирована жестко в CMP entity bean, а она предоставляется Контейнером, вы можете использовать тот же самый бинарный компонент в разных рабочих средах и все еще пользоваться поддержкой хранения объекта, предоставляемой Контейнером

  1. Организация и особенности Entity компонент с сохранением (персистентностью) управляемым компонентом (bmp).

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

Есть два типа Сущностных Компонент: существующие с Управлением Контейнера (Container Managed persistence) и существующие с Управлением Компонентами (Bean-Managed persistence).

Bean Managed Persistence (BMP). BMP Сущностные Компоненты реализовываются Поставщиком Enterprise Bean. Поставщик Enterprise Bean отвечает за реализацию логики, требуемой для создания новых EJB, изменения некоторых атрибутов EJB, удаление EJB и нахождение EJB в постоянном хранилище. Обычно для этого требуется написание JDBC кода для взаимодействия с базой данных или другим постоянным хранилищем. С помощью BMP разработчик имеет полный контроль над управлением существования Сущностного Объекта.

BMP также дает гибкость в тех местах, где реализация CMP не может быть использована. Например, если вы хотите создать EJB, который включает в себя некий код существующей главной системы, вы должны написать вашу устойчивость, используя CORBA.

Если вы используете BMP, логика хранения (например SQL выражения, если вы программируете для специфической RDBMS) будет встроена в ваш компонент, что затруднит использование другого хранилища. Вы исп-те BMP, если ваш entity bean связан с нек-й системой, не поддерживаемой платформой J2EE (например, это CICS приложение в IBM майнфрейме) или по другим особым причинам.

Особенности BMP:

Обычно поля объявлены, как private, а не public.

Необходимо написать реализации методов ejbLoad() и ejbStore().

Должна присутствовать реализация всех методов поиска.

Entity с BMP должен реализовывать метод ejbRemove().

Каждый метод, имеющий отношение к БД должен содержать соответствующий код.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]