Сборка и развертывание. Компонентное моделирование. Компонентное моделирование технологий J2EE. Представление Web-компонентов, страница 3

В спецификации J2EE обязанности по сборке и развертыванию возлагаются на роли сборщика приложения (application assembler) и развертывателя (deployer). При этом проводится различие между теми, кто непосредственно разрабатывает компонент Java, такой как EJB, и теми, кто собирает и развертывает этот компонент. Хотя все эти задачи может выполнить один человек, они с таким же успехом могут быть распределены между тремя работниками.

Сборщик приложения отвечает за выявление отдельных компонентов и соединение их в приложение уровня предприятия. Такая сборка обычно включает создание или модификацию описателя развертывания приложения.

Развертыватель занимается конфигурированием и инсталлированием собранного приложения на сервере приложений. Эта задача обычно включает разрешение внешних зависимостей, конфигурирование необходимых для приложения ресурсов, таких как базы данных и почтовые службы, конфигурирование функций приложения, отвечающих за транзакции и безопасность и т.д. и развертывание приложения на сервере приложений.

Сборка может производиться вручную или с помощью специальных инструментальных средств. При развертывании также применяются специализированные средства, которые генерируют классы для контейнера. Эти классы нужны контейнеру, чтобы он смог обслуживать приложение на этапе выполнения.

На рис. 15.10 показана диаграмма деятельности, изображающая распределение обязанностей между ролями J2EE.

Описатели развертывания

Для связи между разработчиком компонента, сборщиком приложения и развертывателем в компонентах J2EE используются дескрипторы развертывания, написанные на языке XML.

Каждый описатель развертывания базируется на описании типа документа XML (Document Type Description — DTD), которое определяет грамматику описателя данного типа.

Ниже приведен фрагмент описания DTD из спецификации EJB 2.0. Первая строка, выделенная полужирным шрифтом, указывает, что описатель сборки (assembly-descriptor) состоит из нуля или большего количества ролей безопасности (security-role), нуля или большего количества разрешений на метод (method-permission) и нуля или большего количества транзакций контейнера (container-transaction). Во второй выделенной строке можно видеть, что каждая транзакция контейнера может содержать не более одного описания, одного метода, одного атрибута транзакции и т.д.

В J2ЕЕ допускаются описатели развертывания нескольких различных типов.

·  Описатель развертывания Web-компонентов. Применяется для сервлетов и JSP. Файлы XML таких описателей носят название web. jar. Описатель развертывания Web-компонентов может содержать один или более количество сервлетов и JSP.Описатель развертывания EJR Содержит данные об одном или нескольких компонентах EJB. Документы XML описателей развертывания EJB носят название еjb-jar. xml.

·  Описатель развертывания приложения. Содержит сведения о приложении уровня предприятия на J2EE. Описатели развертывания приложений хранятся в файлах application, xml.

·  Специализированный описатель развертывания. Производители серверов J2EE часто требуют использования одного или нескольких специализированных описателей развертывания, в которых передаются необходимые для сервера специальные параметры. Эти описатели дополняют описатели приведенных выше типов. Например, для сервера ВЕА Weblogic используется описатель weblogic-ejb-jar.xml, в котором развертывателю сообщается информация, необходимая для кэширования, кластеризации и т.д.

По своей форме документ XML очень напоминает HTML. Главное отличие состоит в том, что фиксированный набор тегов в HTML служит для передачи параметров форматирования, а теги XML служат для придания смысла различным данным. Теги XML могут вкладываться друг в друга, что позволяет формировать сложные структуры.

Ниже приводится фрагмент описателя развертывания web.xml. В этом примере теги XML указывают сведения о сервлете и компоненте JSP, содержащихся в Web-приложении. Например, тег <web-app> определяет, что остальные данные описывают Web-приложение, отображаемое имя которого — HomeDirect и т.д.

Резюме

С ростом размеров и сложности разрабатываемого приложения увеличивается значение компонентного моделирования и моделирования развертывания. Компонентное моделирование позволяет показать, как составные части приложения собираются воедино. Моделирование развертывания полезно для изучения аспектов инсталляции и конфигурирования и образования развернутого приложения из экземпляров компонентов на этапе выполнения.

В спецификации J2EE обязанности по разработке, сборке и развертыванию распределяются между ролями разработчика, сборщика и развертывателя. Описатели развертывания служат главным средством сообщения между этими ролями.