- •19. Особенности модели распределенных объектов. Модель rpc.
- •20. Архитектура механизмов rmi.
- •21. Разработка rmi-приложений. Примеры. Соглашения о передаче данных.
- •22. Corba, назначение, терминология. Oma. Модель cobra
- •Основные сервисы Corba, модель организация приложений corba, примеры.
- •25 Объектный адаптеры boa и роа. Назначение и основные функции. Статические и динамические вызовы в corba.
- •Язык idl, основные характеристики языка, создание распределенных объектов на idl Связь rmi и corba.
- •Понятие прозрачность, серванта, использование посредников proxies в corba. Name сервис
- •28. Платформа j2ee. Когда следует применять ejb. Типы ejb. Общая структура Beans.
- •29 Понятие, определение и использование удаленного (Remote) и локального интерфейсов. Их применение и программная реализация (примеры).
- •Понятие, определение и использование собственного (home) интерфейса. Их программная реализация (примеры).
- •Сеансовые (Session) компоненты ejb без состояния и с состоянием, их особенности и применение.
- •Общие принципы развертывания сеансовых компонентов ejb. Пример текста дескриптора поставки.
- •Сущностные (entity) компоненты, жизненный цикл, pool соединений. Общие принципы реализации. Особенности, методы entity компонент их назначение и использование.
- •34. Организация и особенности entity компонент с сохранением (персистентностью) управляемым контейнером (cmp).
- •35. Организация и особенности entity компонент с сохранением (персистентностью) управляемым компонентом (bmp).
- •36. Особенности реализации (home) и (remote) интерфейсов для entity компонентов. Home-интерфейс Entity-Компонента.
- •37. Контейнер ejb, понятие, назначение, основные функции.
- •38. Дескриптор поставки, структура и общие принципы организации кода. Пример описания на xml.
38. Дескриптор поставки, структура и общие принципы организации кода. Пример описания на xml.
Дескриптор развертывания (иногда используются термины «установки» или «поставки» - в настоящий момент еще нет устоявшегося термина на русском языке)- необходим для настройки созданного компонента на работу в конкретной операционной среде. Необходимость в нем возникает из-за того, что спецификация EJB четко определяет несколько этапов, который проходит компонент от своего создания до доставки конечному пользователю с окончательной настройкой. Об этих этапах уже говорилось ранее. Наличие подобного «конвейера» требует передачи информации от одного этапа к другому. С каждым компонентом сопоставлен свой дескриптор.
Описатель развертываия является XML файлом, который содержит информацию относительно вашего EJB. Исползование XML позволяет установщику легко менять атрибуты вашего EJB. Конфигурационные атрибуты, определеные в описателе развертывания, включают:
Имена Домашнего и Удаленного интерфейса, которые требуются для вашего EJB
Имя для публикации в JNDI для вашего Домашнего интерфейса EJB
Транзакционные атрибуты для каждого метода вашего EJB
Контрольный Список Доступа для авторизации
Спецификация EJB 1.1 требует, чтобы Дескриптор Развертывания имел XML-формат. Поскольку XML является метаязыком, то для описания каждого конкретного класса документов нужно создать свой язык - в частности, определить набор используемых тегов и правила взаимоотношений между ними. Такой язык называется Document Type Definition (DTD).
Дескриптор Развертывания соответствует DTD, разработанному фирмой Sun Microsystems. Он содержит набор свойств, который описывает, как Контейнер будет выполнять процесс развертывания Компонента или приложения, и включает набор тегов и атрибутов, чьи значения определяют состояние свойств Компонента. В качестве примера приведем несколько тегов:
<session> - говорит о том, что Компонент является session-Компонентом (тег <entity> используется для обозначения Entity-Компонентов).
Внутри области тега <session> могут использоваться другие теги:
<ejb-class> - имя класса реализации.
<home> - имя home-интерфейса.
<remote> - имя remote-интерфейса.
<session-type> - показывает, является ли session-Компонент stateful- или stateless-Компонентом.
<transaction-type> - показывает, используется ли для Компонента CMT или BMT.
<trans-attribute> - задает значение атрибутов транзакции для каждого метода.
<timeout> - значение тайм-аута для session-Компонента.
В качестве примера приведем фрагмент Дескриптора Развертывания для компонента Cart, поставляемого в качестве примера с Inprise Application Server 4.0:
<ejb jar>
<enterprise beans>
<session>
<description>
XML deployment descriptor created from file:
D:\Kodiak\kodiak04\ejb_ea_0_4\examples\cart\cart.ser
</description>
<ejb-name>cart</ejb-name>
<home>CartHome</home>
<remote>Cart</remote>
<ejb-class>CartBean</ejb-class>
<session-type>Stateful</session-type>
<transaction-type>Container</transaction-type>
</session>
</enterprise-beans>
<assembly-descriptor>
<container-transaction>
<method>
<ejb-name>cart</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>NotSupported</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>cart</ejb-name>
<method-name>purchase</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>