Глава 13.Компоненты-сущности
Соответствие процессу: мы продолжаем работу над проектированием в рамках дисциплины анализа и проектирования рационального унифицированного процесса (RUP). Также рассматриваются некоторые особенности реализации в контексте технологии EnterpriseJavaBeans (EJB).
В главе 12 мы изучили моделирование и проектирование сеансовых компонентов с помощью языка UML, а затем рассмотрели технологию этих компонентов. В конце главы было показано применение сеансовых компонентов в проекте электронной банковской системы HomeDirect.
Текущая глава посвящена исключительно компонентам-сущностям. Мы рассмотрим их, используя такой же подход, изучим моделирование в UML и аспекты технологии.
Введение в компоненты-сущности
Компоненты-сущности (entity beans) — это компоненты платформы J2EE, специально предназначенные для представления данных в долговременном хранилище — как правило, базе данных. В обязанности этих объектов входят манипуляции с данными для наилучшего выполнения требований клиентов; следовательно, типичный компонент-сущность не ограничивается лишь предоставлением доступа к базе данных.
Вообще говоря, необходимые для клиента данные должны поступать из компонентов-сущностей, а не из специально создаваемых отдельных объектов доступа к данным. Эти компоненты уже содержат встроенные функции доступа и синхронизации с базой данных. Кроме того, они позволяют автоматически распространять как данные, так и динамическое поведение базы данных на много клиентов одновременно. Компоненты-сущности имеют и другие встроенные возможности, например механизмы для восстановления после отказа системы.
Крупные деловые объекты
Компоненты-сущности могут вносить в приложения уровня предприятия много ценных свойств, особенно в системах, в которых производятся сложные манипуляции с данными. Но, как и для других компонентов EJB, применение компонентов-сущностей связано с некоторыми дополнительными затратами. Поэтому наиболее эффективно они применяются в форме так называемых крупных деловых объектов.
Крупными часто называются объекты, которые представляют одну логическую запись в базе данных. Логическая запись содержит данные, которые, как правило, могут существовать сами по себе, сохраняя свой смысл. Например, заказ клиента образует такую совокупность данных, которая подходит для представления в компоненте-сущности. Отдельный пункт заказа (товар) можно представить как более мелкий объект, так как его информация имеет мало смысла вне контекста этого заказа.
На рис. 13.1 приведен пример, в котором отдельные пункты целесообразно представлять в составе полного заказа клиента, и поэтому они изображены как его часть.
Надо ли считать конкретный объект крупным или мелким, зависит от рода данных, с которыми мы работаем, и от приложения, которое мы намерены создать. Возможны ситуации, в которых и целый заказ клиента будет слишком мелким. Интерес будет представлять лишь совокупность заказов, сделанных определенным клиентом за определенный период. Возможно, значение будут иметь лишь некоторые пункты большого и сложного заказа, и тогда компонент-сущность должен будет представлять их отдельно.
Рост популярности компонентов-сущностей
Исторически сложилось, что компоненты-сущности были распространены слабее, чем сеансовые компоненты. Это вызвано несколькими причинами.
· Написать методы доступа к данным, как правило, проще, чем создать хороший код управления транзакцией, поэтому иногда применение компонентов-сущностей кажется менее важным по сравнению с сеансовыми компонентами.
· Как и в любой другой новой технологии, получаемые преимущества должны сильно перевешивать затраты на изучение способов эффективного применения. Можно доказать, что компоненты-сущности труднее поддаются правильной реализации, чем другие типы EJB, и дают меньше непосредственных преимуществ.
· Поддержка компонентов-сущностей некоторыми серверами приложений в прошлом была плохо реализована или недостаточно документирована.
· Компоненты-сущности могут оказывать существенное влияние на производительность, особенно когда они используются в приложении неправильно (например, слишком мелки).
· Мелкие особенности базы данных, которую нужно использовать в приложении, часто становятся известны лишь на поздней стадии разработки.
Большая часть этих проблем постепенно разрешается благодаря накоплению опыта использования компонентов-сущностей, улучшению общей поддержки на серверах приложений, совместимых с J2EE, и некоторым усовершенствованиям технологии, появившимся в версии J2EE 1.3. С разрешением этих проблем объем использования компонентов-сущностей постепенно увеличивается.
Версии J2EE
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.