В.В. Кулямин - Технологии программирования. Компонентный подход (1133554), страница 63
Текст из файла (страница 63)
International Standard Book Number или ISBN, плюс годиздания, наличие твердой обложки, число страниц и язык). Тег <publisher>, в свою очередь,имеет атрибуты title и address (название и юридический адрес издательской организации).Элементы XML-документа, называемые также сущностями, являются в некотором смыслеаналогами значений структурных типов в .NET, а значения их атрибутов — аналогамисоответствующих значений полей. При этом теги играют роль самих типов, а атрибуты ивложенные теги — роль их полей, имеющих, соответственно, примитивные и структурные типы.Расширяемым XML назван потому, что можно задать специальную структуру тегов и ихатрибутов для некоторого вида документов. Эта структура описывается в отдельном документе,называемом схемой, который сам написан на специальном подмножестве XML, DTD (DocumentType Declaration, декларация типа документа) [3-5] или XMLSchema [6].XML-документ всегда начинается заголовком, описывающим версию XML, которойсоответствует документ, и используемую кодировку.
По умолчанию используется кодировка UTF8.Затем чаще всего идет описание типа документа, указывающее схему, которой онсоответствует, и тег корневого элемента, содержащего все остальные элементы данногодокумента. Схема может задаваться в формате DTD или XMLSchema. Второй, хотя и являетсяболее новым, пока еще используется реже, потому что достаточно много документов определяетсяс помощью DTD и очень многие инструменты для обработки XML могут пользоваться этимформатом. Используемая схема определяется сразу двумя способами — при помощи строки,которая может служить ключом для поиска схемы на данной машине, и при помощиунифицированного идентификатора документа (Unified Resource Identifier, URI), содержащего ееописание и используемого в том случае, если ее не удалось найти локально.227Ниже приводится пример заголовка и описания типа документа для дескриптораразвертывания EJB компонентов (см.
подробности далее).<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1EJB 2.1//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_2_1-1.dtd"><sun-ejb-jar>…</sun-ejb-jar>Другой пример показывает заголовок документа DocBook — основанного на XML формата длятехнической документации, которая может быть автоматически преобразована в HTML, PDF идругие документы с определенными для них правилами верстки.<?xml version="1.0" encoding="windows-1251"?><!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN""http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd"><article>…</article>Помимо элементов данных и заголовка с описанием типа документа, XML-документ можетсодержать комментарии, помещаемые в теги <!-- … -->, инструкции обработки вида <?processor-name … ?> (здесь processor-name — идентификатор обработчика, которомупредназначена инструкция) и секции символьных данных CDATA, которые начинаются наборомсимволов <![CDATA[, а заканчиваются с помощью ]]>.
Внутри секций символьных данных могутбыть любые символы, за исключением закрывающей комбинации. В остальных местах некоторыеспециальные символы должны быть представлены комбинациями символов в соответствии сТаблицей 11.СимволПредставление в XML<>&"'<>&"'Таблица 11. Представления специальных символов в XML.XML содержит много других конструкций, помимо уже перечисленных, но их рассмотрениевыходит за рамки данного курса. Читатель, желающий узнать больше об этом языке и связанных сним технологиях, может обратиться к [1-7].Платформа Java 2 Enterprise EditionПлатформа J2EE предназначена в первую очередь для разработки распределенных Webприложений и поддерживает следующие 4 вида компонентов [8].• Enterprise JavaBeans (EJB).Компоненты EJB предназначены для реализации на их основе бизнес-логики приложения иопераций над данными.
Любые компоненты, разработанные на Java, принято называтьбинами (bean, боб или фасолина, в разговорном языке имеет также значения головы имонеты). Компоненты Enterprise JavaBean отличаются от «обычных» тем, что работают врамках EJB-контейнера, который является для них компонентной средой. Онподдерживает следующие базовые службы при работе с компонентами EJB.o Автоматическую поддержку обращений к компонентам, размещенным на разныхмашинах.o Автоматическую поддержку транзакций.o Автоматическую синхронизацию состояния баз данных и соответствующихкомпонентов EJB в обе стороны.228o Автоматическую поддержку защищенности за счет аутентификации пользователей,проверки прав пользователей или компонентов на выполнение выполняемых имиопераций и авторизации производимых действий.o Автоматическое управление жизненным циклом компонента (последовательностьюпереходов между состояниями типа «отсутствует»-«инициализирован»-«активен») инабором компонентов как ресурсами: удаление компонентов, ставших ненужными;загрузку новых компонентов; балансировку нагрузки между имеющимисякомпонентами; использование пула готовых к работе, но не инициализированныхкомпонентов, чтобы не тратить время на их удаление и создание, и пр.В целом EJB-контейнер представляет собой пример объектного монитора транзакций(object transaction monitor) — ПО промежуточного уровня, поддерживающего в рамкахобъектно-ориентированной парадигмы удаленные вызовы методов и распределенныетранзакции.• Web-компоненты (Web components).Эти компоненты служат для предоставления интерфейса к корпоративным программнымсистемам поверх широко используемых протоколов Интернет, а именно, HTTP.Предоставляемые интерфейсы могут быть как интерфейсами для людей (WebUI), так испециализированными программными интерфейсами, работающими подобно удаленномувызову методов, но поверх HTTP.В группу Web-компонентов входят фильтры (filters), обработчики Web-событий (web eventlisteners), сервлеты (servlets) и серверные страницы Java (JavaServer Pages, JSP).Компонентной средой для работы Web-компонентов служит Web-контейнер,поставляемый в рамках любой реализации платформы J2EE.
Web-контейнер реализуеттакие службы, как управление жизненным циклом компонентов и набором компонентовкак ресурсом, распараллеливание независимых работ, выполнение удаленных обращений ккомпонентам, поддержка защищенности с помощью проверки прав компонентов ипользователей на выполнение различных операций.• Обычные приложения на Java.J2EE является расширением J2SE и поэтому все Java приложения могут работать и в этойсреде. Однако, в дополнение к обычным возможностям J2SE, эти приложения могутиспользовать в своей работе Web-компоненты и EJB, как напрямую, так и удаленно,связываясь с ними по HTTP.• Аплеты (applets).Это небольшие компоненты, имеющие графический интерфейс пользователя ипредназначенные для работы внутри стандартного Web-браузера.
Они используются в техслучаях, когда не хватает выразительных возможностей пользовательского интерфейса набазе HTML, и могут связываться с удаленными Web-компонентами, работающими насервере, по HTTP.Компонент любого из этих видов оформляется как небольшой набор классов и интерфейсов наJava, а также имеет дескриптор развертывания (deployment descriptor) — описание вопределенном формате на основе XML конфигурации компонента в рамках контейнера, в которыйон помещается. Приложение в целом также имеет дескриптор развертывания. Дескрипторыразвертывания играют важную роль, позволяя менять некоторые параметры функционированиякомпонента и привязывать их к параметрам среды, в рамках которой компонент работает, незатрагивая его код.Платформа J2EE приспособлена для разработки многоуровневых Web-приложений. Приработе с такими приложениями пользователь формирует свои запросы, заполняя HTML-формы вбраузере, который упаковывает их в HTTP-сообщения и пересылает Web-серверу.
Web-серверпередает эти сообщения Web-компонентам, выделяющим из них исходные запросы пользователяи передающим их для обработки компонентам EJB. Результаты работы EJB компонентовпревращаются Web-компонентами в динамически генерируемые HTML-страницы, и отправляются229обратно пользователю, представая перед ним в окне браузера. Аплеты используются там, гденужен более функциональный интерфейс, чем стандартные формы и страницы HTML.Клиент —Web-браузерHTMLстраницыWeb-серверHTTPWeb-контейнерсервлетыJSPJavaапплетыEJB-контейнерEJBкомпонентыХранилищеданных(СУБД)Схема БДРисунок 72.
Типовая архитектура J2EE приложения.Выделены компоненты, разрабатываемые вручную.Таким образом, приложения на базе J2EE строятся с использованием трех основныхархитектурных стилей.• Многоуровневая система.Самые крупные подсистемы организованы как уровни, решающие различные задачи.o Интерфейс взаимодействия с внешней средой, включая пользователей, реализуется припомощи Web-компонентов.o Уровень бизнес-логики и модели данных реализуется при помощи EJB компонентов.o Уровень управления ресурсами строится на основе коммерческих систем управлениябазами данных (СУБД).