Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СИТ - 18 вопросов.docx
Скачиваний:
8
Добавлен:
08.11.2019
Размер:
103.77 Кб
Скачать

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>

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