|
| ||||||||||||
| ||||||||||||
|
2004 г.
Что нового в WSDL 2.0Автор: Арулази Десиасилан (Arulazi Dhesiaseelan)
Как известно, одним из направлений деятельности международного консорциума 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 2.0Описание Web-сервиса можно разделить на две части. В абстрактной части описания Web-сервис описывается в языке WSDL с помощью системы типов, обычно W3C XML-схемы, в терминах сообщений, которые этот сервис отправляет и получает. Шаблоны обмена сообщениями определяют последовательность и количество сообщений. Элемент operation связывает шаблоны обмена сообщениями с одним или несколькими сообщениями. Элемент interface группирует операции (элементы operation) независимо от транспорта и способа доставки. В конкретной части описания элементы binding задают транспорт и формат доставки для интерфейсов (элементов interface). Элемент сервиса (элемента service) endpoint связывает сетевой адрес в соответствие со связыванием (элементом binding). Наконец, элемент service группирует конечные точки (элементы endpoint), которые реализуют общий интерфейс (элемент interface). На рисунке 1 изображена концептуальная модель компонентов WSDL.
Компоненты WSDLЯзык WSDL содержит ряд компонентов и их ассоциированных свойств, предназначенных для описания Web-сервисов. В следующих разделах статьи кратко рассматривается каждый из этих компонентов. Листинг 1. Скелет WSDL 2.0
definitionsЭлемент definitions является корневым элементов любого документа WSDL. Он используется в качестве контейнера, в котором содержится вся необходимая информация о данной услуге и ее атрибутах. На рисунке 2 приведена схема элемента definitions. Атрибут targetNamespace этого элемента является обязательным атрибутом типа anyURI. Это пространство имен может напрямую или косвенно определять семантику WSDL. Кроме того у элемента definitions могут быть другие необязательные атрибуты, соответствующие различным пространствам имен, которые могут использоваться в документе WSDL.
includeЭлемент include предназначен для разделения описаний Web-сервиса на модули - различные компоненты описаний сервисов из одного и того же пространства имен могут находиться в другом документе WSDL, которой можно использовать в описаниях Web-сервисов. Атрибут location является обязательным, он задает нахождение этих документов WSDL. Фактическое значение пространства имен добавляемого документа WSDL должно соответствовать целевому пространству имен элемента definitions в документе WSDL, в который добавляется первый документ. На рисунке 3 приведена схема элемента include.
importПо своему назначению элемент import очень похож на элемент include, с тем исключением, что импортированный документ WSDL может относиться к другому целевому пространству имен. Атрибут namespace этого элемента является обязательным, а атрибут location - необязательным. На рисунке 4 приведена схема элемента import.
typesЭлемент types определяет типы данных, которые используются при обмене сообщениями. Язык WSDL использует W3C XML-схему в качестве предпочтительного языка схемы. WSDL может использовать и другие системы, например, DTD и RELAX NG. Чтобы воспользоваться схемами, их необходимо импортировать или внедрять в элементе types документа WSDL. Для импортирования используется конструкция xs:import, а для внедрения - xs:schema. Импортированные или внедренные компоненты схемы в документе WSDL указываются по QName. На рисунке 5 приведена схема элемента types.
interfaceЭлемент interface содержит поименованный набор абстрактных операций и сообщений. При необходимости он может расширять один или несколько других элементов interface. Элементы interface в других компонентах, как, например, binding, указываются по QName. Элемент interface содержит элемент operation, атрибуты name и pattern которого является обязательными, а style - необязательным. На рисунке 5 приведена схема элемента interface. Элементы feature определяют функциональные возможности, связанные с обменом сообщениями между общающимися сторонами, что включает сведения о надежности, безопасности, зависимостях и маршрутизации. Элемент property используется для управления поведением элемента feature. Ряд возможных и допустимых значений этого элемента задается указаниями на описание схемы. Эти значения могут использоваться в нескольких элементах feature.
bindingЭлемент binding определяет базовый транспорт и формат передачи для сообщений. Каждый элемент binding в документе WSDL указывает на элемент interface. Все элементы operation, определенные в элементе interface, должны быть связаны с этим binding. Элемент endpoint в компоненте service указывает элемент binding. И элементы endpoint, и элементы binding созданы для обеспечения гибкости и прозрачности местоположения. Многочисленные элементы endpoint с различным сетевым адресом могут использовать одну и ту же протокол, определенный в binding. В спецификации "WSDL 2.0, Связывания" определяются расширения элемента binding для таких протоколов и форматов сообщений, как SOAP, HTTP и MIME. На рисунке 7 приведена схема элемента binding.
serviceЭлемент service описывает набор элементов endpoint, которые указывают на одиночный сетевой адрес для элемента binding. Вся другая информация о протоколе сдержится в элементе binding. К элементу service можно обратиться по Qname. У этого элемента есть обязательные атрибуты name и interface. На рисунке 8 приведена схема элемента service.
Шаблоны обмена сообщениями WSDLШаблоны обмена сообщениями определяют последовательность и число сообщений в одной операции (элементе operation). В спецификации Web Services Description Language (WSDL) Version 2.0 Part 2: Message Patterns ("Язык описания Web-сервисов (язык WSDL), версия 2.0, часть 2: Шаблоны сообщений") описывается несколько типов шаблонов сообщений. Шаблоны обмена сообщениями используют правила генерации неисправностей, предназначенные для оповещения о возникновении неисправностей. Обмен сообщениями может быть прерван, если генерация неисправностей происходит независимо от набора стандартных правил. Следующий набор стандартных правил кратко описывает поведение при возникновении ошибок.
На рисунке 9 показаны эти различные шаблоны обмена сообщениями со схемами обработки ошибок.
Описание сервиса, предназначенного для передачи информации о котировках акций, на 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 |
|
CITForum © 1997–2025