Архитектура EJB

В данном разделе содержится обзор высокого уровня архитектуры распределенных компонентов в архитектуре Sun Microsystems Enterprise JavaBeans™ (EJB).

Полные спецификации Enterprise JavaBeans и описания технологии доступны на Web-сайте java.sun.com.

Объекты EJB предоставляют разработчикам приложений несколько преимуществ:

Объекты EJB
Объект EJB - это невизуальный компонент распределенного, ориентированного на транзакцию приложения J2EE. Объекты EJB обычно развертываются в контейнерах EJB и выполняются на серверах EJB. Их можно настроить, изменив дескрипторы развертывания и собрать их с другими объектами для создания новых приложений. Существует три типа объектов EJB: сеансовые объекты, сущностные объекты и управляемые сообщениями объекты.
  • Сеансовые объекты: Сеансовые объекты являются временными объектами EJB. Они могут быть с сохранением состояния и без сохранения состояния. Сеансовые объекты с сохранением состояния действуют от лица одиночного клиента и хранят информацию о сеансе или состояние коммуникации и используют ее в вызовах методов и транзакциях. Такие объекты существуют на протяжении одного сеанса клиента/сервера. Сеансовый объект без сохранения состояния напротив, не поддерживает состояние коммуникации. Сеансовые объекты без сохранения состояния хранятся в контейнере для обработки множественных запросов от нескольких клиентов.
  • Сущностные объекты: Сущностные объекты являются объектами EJB, содержащими постоянные данные, которые могут быть сохранены в нескольких постоянных хранилищах данных. Каждый сущностный объект обладает собственным субъектом. Сущностные объекты, управляющие собственными хранилищами, называются сущностными объектами с управляющими объектами хранилищами (BMP). Сущностные объекты, передающие хранилища своим контейнерам EJB, называются сущностными объектами с управляемыми контейнерами хранилищами (CMP).
  • Управляемые сообщениями объекты: Управляемые сообщениями объекты - это объекты EJB, получающие и обрабатывающие сообщения JMS. В отличие от сеансовых или сущностных объектов, управляемые сообщениями объекты не обладают интерфейсами. Обратиться к ним можно только через сообщения, они не поддерживают состояние коммуникации. Управляемые сообщениями объекты поддерживают асинхронную связь между очередями и получателями запросов и предоставляют возможность разделения обработки сообщений и бизнес-логики.
Представление удаленного клиента
Спецификация представления удаленного клиента стала доступной с EJB 1.1. Представление удаленного клиента объекта EJB не зависит от расположения. Клиент, выполняемый в той же JVM, что и экземпляр объекта, использует тот же API для доступа к к объекту, что и клиент, выполняемый в другой JVM в той же или иной системе.
  • Удаленный интерфейс: Удаленный интерфейс указывает удаленные бизнес-методы, доступные для вызову клиенту в объекте EJB.
  • Удаленный домашний интерфейс: Удаленный домашний интерфейс указывает методы, используемые удаленными клиентами для обнаружения, создания и удаления экземпляров классов объекта EJB.
Представление локального клиента
Спецификация представление локального клиента доступно с EJB 2.0 и более поздних версий. В отличие от представления удаленного клиента, представление локального клиента объекта зависит от расположения. Для доступа представления локального клиента к объекту EJB требуется локальный клиент и объект EJB, предоставляющий представление локального клиента в той же JVM. Таким образом представление локального клиента не предоставляет прозрачность расположения, обеспечиваемую представлением удаленного клиента. Локальные интерфейсы и локальные домашние интерфейсы обеспечивают поддержку облегченного доступа от объектов EJB, являющихся локальными клиентами. Сеансы и сущностные объекты могут быть тесно связаны с их клиентами, что обеспечивает доступ без дополнительной нагрузки, обычно связанной с удаленными вызовами метода.
  • Локальный интерфейс: Локальный интерфейс - это облегченная версия удаленного интерфейса, применяемая для локальных клиентов. Она включает в себя методы бизнес-логики, которые могут быть вызваны локальным клиентом.
  • Локальный домашний интерфейс: Локальный домашний интерфейс указывает методы, используемые локальными клиентами для обнаружения, создания и удаления экземпляров классов объекта EJB.
Представление клиента Web-службы
В спецификации EJB 2.1 архитектура EJB поддерживает Web-службы. Клиентом для сеансового объекта может быть клиент Web-службы. Клиент Web-службы может использовать представление клиента Web-службы сеансового объекта без сохранения состояния, обладающего соответствующим интерфейсом конечной точки службы.
  • Интерфейс конечной точки службы: Интерфейс конечной точки службы для сеансовых объектов без сохранения состояния обладает функциональностью сеансового объекта как конечной точки Web-службы. Документ языка описания Web-служб (WSDL) для Web-службы описывает Web-службу как набор конечных точек, управляющих сообщениями. Документ WSDL может содержать интерфейс конечных точек службы сеансовых объектов без сохранения состояния в качестве одной из своих конечных точек. Существующий сеансовый объект без сохранения состояния можно изменить, добавив представление клиента Web-службы или интерфейс конечной точки службы, преобразованный из существующего WSDL для обеспечения корректного интерфейса.

    Представление клиента Web-службы не зависит от расположения и может быть доступным через удаленные вызовы.

Файл JAR клиента EJB
Файл JAR клиента EJB является необязательным файлом JAR, содержащим клиентские интерфейсы, необходимые для клиентской программы для применения представлений клиентов объектов EJB, содержащихся в файле JAR EJB. Если вы решите не создавать файл JAR клиента EJB для модуля EJB, все классы клиентского интерфейса будут находиться в файле JAR EJB. По умолчанию рабочая среда создает проекты JAR клиента EJB для каждого соответствующего проекта EJB.
Контейнер EJB
Контейнер EJB является средой выполнения, управляющей одним или несколькими объектами EJB. Контейнер EJB управляет жизненными циклами объектов EJB, координирует распределенные транзакции и реализует защиту объектов. Обычно каждому контейнеру EJB предоставляется сервер EJB и все они содержат набор объектов EJB, выполняемых на сервере.
Файл описания
Файл описания - это файл XML, упакованный в объекты EJB в файле EJB JAR или EAR. Он содержит мета-данные, описывающие содержимое и структуру объектов EJB, а также транзакции выполнения и сведения о защите для контейнера EJB.
Сервер EJB
Сервер EJB является процессом или приложением высокого уровня, обеспечивающим среду выполнения для поддержки выполнения серверных приложений, использующих объекты EJB. Сервер EJB предоставляет доступную для JNDI службу присвоения имен, управляет и координирует выделением ресурсов клиентским приложениям, предоставляет доступ к системным ресурсам и предоставляет службу транзакций. Сервер EJB может предоставляться базой данных или сервером приложений.

(C) Copyright IBM Corporation 2000, 2005. Все права защищены.