В данном разделе содержится обзор высокого уровня архитектуры распределенных компонентов в архитектуре Sun Microsystems Enterprise JavaBeans™ (EJB).
Полные спецификации Enterprise JavaBeans и описания технологии доступны на Web-сайте java.sun.com.
Объекты EJB предоставляют разработчикам приложений несколько преимуществ:
- Они позволяют компоновать распределенные приложения, сочетая компоненты, разработанные с помощью инструментов различных поставщиков.
- Они облегчают создание приложений. При этом нет необходимости работать с низкоуровневыми моментами транзакций и управления состоянием, многопоточностью, пулами ресурсов и прочими сложными API низкого уровня. Однако, при необходимости, опытные программисты могут получить непосредственный доступ к API низкого уровня.
- Однажды создав их, можно развернуть их в различных платформах без повторной компиляции или изменения исходного кода.
- Спецификация EJB, описывающая применение объектов EJB, совместима с прочими API Java™ и CORBA. Она также предлагает поддержку возможности взаимодействия между объектами EJB и приложениями не-Java.
- Объекты 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-службы сеансового объекта без сохранения состояния, обладающего соответствующим интерфейсом конечной точки службы.
- Файл 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. Все права защищены.