Использование технологии JAXB (Java Architecture for Xml

advertisement
УДК 001(06) Телекоммуникации и новые информационные технологии…
А. АФОНИН, Д. МАТИЕСОН
Европейская организация ядерных исследований (CERN), Женева, Швейцария
ИСПОЛЬЗОВАНИЕ ТЕХНОЛОГИИ JAXB
(JAVA ARCHITECTURE FOR XML BINDING)
ПРИ РАЗРАБОТКЕ XML ПРИЛОЖЕНИЙ
В докладе рассмотрены основные аспекты использования технологии JAXB
(Java Architecture for Xml Binding). Материал доклада основан на опыте использования технологии JAXB в ЦЕРН при разработке системы электронного документооборота (EDH).
В настоящее время система EDH автоматизирует большое количество
бизнес процессов и процедур, связанных с хозяйственной деятельностью
ЦЕРН, среди которых закупка материалов и оборудования, платежи,
предоставление транспортных услуг, кадровые вопросы и т.д. Для наиболее полной автоматизации процессов система EDH должна взаимодействовать с другими системами и приложениями, работающими как в
ЦЕРН, так и во внешних организациях. Поэтому актуальным является
вопрос выбора таких средств интеграции, которые были бы просты во
внедрении и сопровождении и не имели бы зависимости от программноаппаратных платформ, на которых работают приложения.
Сегодня одним из общепризнанных средств интеграции и обмена данными является язык XML, использование которого предоставляет следующие преимущества:

высокий уровень стандартизации языка XML и связанных с ним
технологий;

наглядность (читаемость) языка, что облегчает тестирование и
отладку XML приложений;

наличие языков метаописания (DTD, XML Schema), которые позволяют формально описать структуру документа, наложить ограничения на его содержимое и впоследствии выполнять автоматическую
верификацию документа (метаописание может играть роль «контракта» между приложениями, обменивающимися XML документами);

наличия языков преобразования и форматирования (XSLT, XSLFO), с помощью которых можно, например, преобразовывать XML
документ из одного формата в другой, или использовать
XML документ для генерации представления (HTML Web страница,
PDF документ и т.п.);

наличие стандартных программных интерфейсов приложений
(API) и их реализаций для работы с XML в высокоуровневых языках
программирования.
________________________________________________________________________
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 10
21
УДК 001(06) Телекоммуникации и новые информационные технологии…
В системе EDH язык XML был применен как средство интеграции при
разработке приложения электронной коммерции на базе документа
“Заявка на приобретение материалов/оборудования” (Material Request).
Суть новой функциональности – дать пользователям в ЦЕРН возможность
использовать Web каталог внешнего поставщика для приобретения
материалов/оборудования. Язык XML (в данном случае - стандарт cXML)
применяется для обмена содержимым «корзины» покупателя и для
отправки заказа на покупку. Структуру используемых документов
(которая определяется стандартом cXML) отличает большое количество и
глубокая вложенность элементов.
До недавнего времени основными программными средствами работы с
XML были SAX и DOM анализаторы. Достоинством SAX является
высокая производительность, но при сложной структуре данных
обработка этой сложности ложится на плечи программиста. DOM
анализатор автоматически строит объектную модель документа
(Document Object Model), но за счет снижения производительности, а так
же получаемая модель является абстрактной, что не очень удобно для
дальнейшего использования.
Технология JAXB объединяет достоинства SAX и DOM анализаторов,
исключает их недостатки и дает дополнительные преимущества. На основе метаописания документа представленного в виде XML схемы, JAXB
позволяет сгенерировать следующие Java классы:

объектную модель (набор Java классов и связей между ними), в
точности соответствующую структуре XML документа;

код, позволяющий отображать текстовое представление XML
документа в объектную модель и обратно;

код для верификации XML документа представленного как объектная модель или как текст.
JAXB позволяет при необходимости гибко настраивать генерируемый
код. Например, можно определить правила отображения XML схемы на
генерируемые классы объектной модели, задать специфические преобразования типов данных.
Опыт использования JAXB в EDH показал, что данная технология
позволяет значительно сократить сроки и снизить затраты при разработке
XML приложений. Разработчик имеет возможность сосредоточиться на
реализации бизнес логики приложения. Задачи синтаксического анализа,
генерации и верификации XML документов решает JAXB. При необходимости работать со сложными структурами данных, выигрыш от использования данной технологии особенно ощутим.
________________________________________________________________________
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 10
22
Download