Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Обучение от Mail.Ru Group.
Онлайн-университет
для программистов с
гарантией трудоустройства.
Набор открыт!
2004 г.

Что нового в WSDL 2.0

Автор: Арулази Десиасилан (Arulazi Dhesiaseelan)
Перевод: Intersoft Lab

Как известно, одним из направлений деятельности международного консорциума W3C является программа по разработке и продвижению технологий Web-сервисов (Web Services Activity), в рамках которой рабочая группа Web Services Description занимается определением языка описания Web-сервисов и возможных способов взаимодействия с сервисами. 26 марта 2004г. рабочая группа обнародовала черновой вариант спецификации WSDL 2.0. Это событие можно расценить как переломный момент в истории развития языка WSDL. В этой статье рассказывается о изменениях, которые были внесены в спецификацию WSDL 1.1, и о том, что было улучшено в новой версии языка WSDL.

Рабочие варианты спецификаций W3C WSDL 2.0

В соответствии поставленными задачами, рабочая группа опубликовала на сайте W3C рабочие варианты следующих основных спецификаций языка WSDL:

Кроме того рабочая группа выпустила документы, в которых описываются требования, предъявляемые к описанию Web-сервисов, и сценарии использования языка WSDL:

W3C XML-схему языка WSDL 2.0 можно найти на сайте консорциума: http://www.w3.org/2003/11/wsdl/.

В редакторской версии приведенных выше документов содержится информация о ходе работ над этими спецификациями.

Отличия WSDL 2.0 от языка версии 1.1

В связи со значительностью изменений, внесенные в версию языка 1.1, WSDL 1.1 был переименован в WSDL 2.0. Ниже перечислены основные изменения:

  • В язык WSDL добавлена дополнительная семантика, что явилось одной из причин, почему атрибут targetNamespace элемента definitions стал обязательным.
  • Удалены конструкции сообщений. Теперь они задаются в элементе types при помощи системы типов XML-схемы.
  • Отсутствует поддержка перегрузки операторов.
  • Элемент portType переименован как interface. Поддержка наследования элемента interface достигается благодаря использованию атрибута extends в элементе interface.
  • Элемент port переименован в endpoint.

Концептуальная модель WSDL 2.0

Описание Web-сервиса можно разделить на две части. В абстрактной части описания Web-сервис описывается в языке WSDL с помощью системы типов, обычно W3C XML-схемы, в терминах сообщений, которые этот сервис отправляет и получает. Шаблоны обмена сообщениями определяют последовательность и количество сообщений. Элемент operation связывает шаблоны обмена сообщениями с одним или несколькими сообщениями. Элемент interface группирует операции (элементы operation) независимо от транспорта и способа доставки.

В конкретной части описания элементы binding задают транспорт и формат доставки для интерфейсов (элементов interface). Элемент сервиса (элемента service) endpoint связывает сетевой адрес в соответствие со связыванием (элементом binding). Наконец, элемент service группирует конечные точки (элементы endpoint), которые реализуют общий интерфейс (элемент interface). На рисунке 1 изображена концептуальная модель компонентов WSDL.

Концептуальная модель WSDL
Рис. 1. Концептуальная модель WSDL

Компоненты WSDL

Язык WSDL содержит ряд компонентов и их ассоциированных свойств, предназначенных для описания Web-сервисов. В следующих разделах статьи кратко рассматривается каждый из этих компонентов. Листинг 1. Скелет WSDL 2.0


<definitions targetNamespace=â€xs:anyURIâ€>
<documentation /> ?
[<import /> | <include /> ] *
<types /> ?
[<interface /> | <binding /> | <service /> ] *
</definitions>
definitions

Элемент definitions является корневым элементов любого документа WSDL. Он используется в качестве контейнера, в котором содержится вся необходимая информация о данной услуге и ее атрибутах. На рисунке 2 приведена схема элемента definitions. Атрибут targetNamespace этого элемента является обязательным атрибутом типа anyURI. Это пространство имен может напрямую или косвенно определять семантику WSDL. Кроме того у элемента definitions могут быть другие необязательные атрибуты, соответствующие различным пространствам имен, которые могут использоваться в документе WSDL.

Рис. 2. Схема элемента definitions
Рис. 2. Схема элемента definitions

include

Элемент include предназначен для разделения описаний Web-сервиса на модули - различные компоненты описаний сервисов из одного и того же пространства имен могут находиться в другом документе WSDL, которой можно использовать в описаниях Web-сервисов. Атрибут location является обязательным, он задает нахождение этих документов WSDL. Фактическое значение пространства имен добавляемого документа WSDL должно соответствовать целевому пространству имен элемента definitions в документе WSDL, в который добавляется первый документ. На рисунке 3 приведена схема элемента include.

Рис. 3. Схема элемента include
Рис. 3. Схема элемента include

import

По своему назначению элемент import очень похож на элемент include, с тем исключением, что импортированный документ WSDL может относиться к другому целевому пространству имен. Атрибут namespace этого элемента является обязательным, а атрибут location - необязательным. На рисунке 4 приведена схема элемента import.

Рис. 4. Схема элемента import
Рис. 4. Схема элемента import

types

Элемент types определяет типы данных, которые используются при обмене сообщениями. Язык WSDL использует W3C XML-схему в качестве предпочтительного языка схемы. WSDL может использовать и другие системы, например, DTD и RELAX NG. Чтобы воспользоваться схемами, их необходимо импортировать или внедрять в элементе types документа WSDL. Для импортирования используется конструкция xs:import, а для внедрения - xs:schema. Импортированные или внедренные компоненты схемы в документе WSDL указываются по QName. На рисунке 5 приведена схема элемента types.

Рис. 5. Схема элемента types
Рис. 5. Схема элемента types

interface

Элемент interface содержит поименованный набор абстрактных операций и сообщений. При необходимости он может расширять один или несколько других элементов interface. Элементы interface в других компонентах, как, например, binding, указываются по QName. Элемент interface содержит элемент operation, атрибуты name и pattern которого является обязательными, а style - необязательным. На рисунке 5 приведена схема элемента interface. Элементы feature определяют функциональные возможности, связанные с обменом сообщениями между общающимися сторонами, что включает сведения о надежности, безопасности, зависимостях и маршрутизации. Элемент property используется для управления поведением элемента feature. Ряд возможных и допустимых значений этого элемента задается указаниями на описание схемы. Эти значения могут использоваться в нескольких элементах feature.

Рис. 6. Схема элемента interface
Рис. 6. Схема элемента interface

binding

Элемент binding определяет базовый транспорт и формат передачи для сообщений. Каждый элемент binding в документе WSDL указывает на элемент interface. Все элементы operation, определенные в элементе interface, должны быть связаны с этим binding. Элемент endpoint в компоненте service указывает элемент binding. И элементы endpoint, и элементы binding созданы для обеспечения гибкости и прозрачности местоположения. Многочисленные элементы endpoint с различным сетевым адресом могут использовать одну и ту же протокол, определенный в binding. В спецификации "WSDL 2.0, Связывания" определяются расширения элемента binding для таких протоколов и форматов сообщений, как SOAP, HTTP и MIME. На рисунке 7 приведена схема элемента binding.

Рис. 7. Схема элемента binding
Рис. 7. Схема элемента binding

service

Элемент service описывает набор элементов endpoint, которые указывают на одиночный сетевой адрес для элемента binding. Вся другая информация о протоколе сдержится в элементе binding. К элементу service можно обратиться по Qname. У этого элемента есть обязательные атрибуты name и interface. На рисунке 8 приведена схема элемента service.

Рис. 8. Схема элемента service
Рис. 8. Схема элемента service

Шаблоны обмена сообщениями WSDL

Шаблоны обмена сообщениями определяют последовательность и число сообщений в одной операции (элементе operation). В спецификации Web Services Description Language (WSDL) Version 2.0 Part 2: Message Patterns ("Язык описания Web-сервисов (язык WSDL), версия 2.0, часть 2: Шаблоны сообщений") описывается несколько типов шаблонов сообщений. Шаблоны обмена сообщениями используют правила генерации неисправностей, предназначенные для оповещения о возникновении неисправностей. Обмен сообщениями может быть прерван, если генерация неисправностей происходит независимо от набора стандартных правил. Следующий набор стандартных правил кратко описывает поведение при возникновении ошибок.

  • ошибка замещает сообщение (Fault Replaces Messages);
  • сообщение вызывает ошибку (Message Triggers Fault);
  • ошибок нет (No Faults).

На рисунке 9 показаны эти различные шаблоны обмена сообщениями со схемами обработки ошибок.

Рис. 9. Шаблоны обмена сообщениями WSDL
Рис. 9. Шаблоны обмена сообщениями WSDL

Описание сервиса, предназначенного для передачи информации о котировках акций, на WSDL 1.1 и WSDL 2.0

В этом разделе кратко рассмотрен простой сервис, предназначенный для передачи информации о котировках акций. В Листинге 2 представлены типы XML-схемы, которые используются в описании этого сервиса. Листинги 3 и 4 - описание интерфейса сервиса на WSDL 1.1 и WSDL 2.0, соответственно, листинги 5 и 6 - описание реализации сервиса на WSDL 1.1 и WSDL 2.0.

Заключение

В этой статье были рассмотрены некоторые положения рабочих вариантов спецификаций языка WSDL 2.0. Необходимо отметить, что члены рабочей группы в настоящий момент заняты обсуждением дополнительных функциональных возможностей, которые могут быть добавлены в нынешние спецификации с целью создания гибкого и надежного языка описания Web-сервисов. Некоторые из этих функциональностей включают ссылки на Web-сервис, управление версиями, атрибуты и компоновщики. Кроме того, предусмотрено дальнейшее усовершенствование существующих спецификаций. Сообщество разработчиков надеется увидеть в ближайшем будущем более стабильную версию спецификации языка WSDL 2.0.

Ресурсы

Оригинальный текст статьи можно посмотреть здесь:
What's New in WSDL 2.0

Новости мира IT:

Архив новостей

Последние комментарии:

Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...