Язык WSDL. Структура WSDL-документа. Способы создания. Режимы операции WSDL.
WSDL (Web Services Description Language) версии 1.1 был опубликован 15 марта 2001 года. WSDL - это формат, базирующийся на XML и использующийся для описания сетевых cервисов, при помощи сообщений, содержащих информация о том как осуществлять доступ к конкретному веб-сервису. WSDL расширяем, что позволяет описывать услуги (сервисы) и их сообщения независимо от того, какие форматы сообщений или сетевые протоколы используются для транспорта, однако, чаще всего используется WSDL 1.1 вместе с SOAP 1.1, HTTP GET/POST и MIME. Поскольку WSDL был разработан совместно с SOAP, в его разработке участвовали все те же фирмы Microsoft, Ariba и IBM. Если рассматривать документ WSDL интуитивно, то можно сказать, что он позволяет ответить на 4 вопроса:
1) что вы делаете? Ответ на этот вопрос дается в форме пригодной как для восприятия человеком так и форме воспринимаемой машиной. Ответ для чел-ка в тегах: <name/>, <documentation/>, для машины - <message/>, <pointType>
2) на каком языке вы разговариваете? (какие типы вы используете?)Ответ в теге: <types/>
3) как я буду с вами общаться? (как клиент будет обращаться к веб-службе?):HTTP или SMTP. Ответ находится в <binding/>
4) где мне вас найти? (где я могу найти эту веб-службу или какой у нее URL?). Ответ находится: <service/>
Структура:
Каждый документ WSDL можно разбить на три логические части:
1. определение типов данных — определение вида отправляемых и получаемых сервисом XML сообщений
2. абстрактные операции — список операций, которые могут быть выполнены с сообщениями
3. связывание сервисов — способ, которым сообщение будет доставлено
Документы WSDL можно создавать вручную, однако строгая формализация языка WSDL позволяет автоматизировать процесс написания WSDL-документов. Многие интсрументальные средства создания Web-служб содержат утилиты, которые автоматичеки создают WSDL-файлы, описывающие готовые Web-службы. Например средство создания Web-служб Apache Axis содержит в своем составе класс Java2WSDL, создающий WSDL-файл по классу или интерфейсу Java, описывающему Web-службу. Пакет IBM WSTK, в состав которого входит Axis, содержит утилиту java2wsdl, создающую и запускающую объект из этого класса. Она работает из командной строки.
Элементы WSDL-документа
Опишем наиболее часто употребляемые теги WSDL:
Тег <definitions> – это корневой тег всех WSDL-документов. Он определяет несколько пространств имен:
1)target Name space – это пространство имен нашей веб-службы
2)xmlns – стандартное пространство имен документа WSDL
3)xmlns: SOAP_ENC – пространство имен используемое для описания кодировки SOAP
4)xmlns: impl и intf – пространство имен реализации и определения нашей веб-службы
Идейно содержание тега <definitions> можно разделить на 2 WSDL документа:
· Документ для определения веб-службы
· Документ для реализации веб-службы
Для простоты, как правило, используют 1 файл, который содержит всю информацию
Элемент <message> - предоставляет информацию о данных, которые передаются от одной конечной точки к другой.
Для описания вызова RPC необходимо создать входной сообщение и выходное сообщение.
В рамках этого элемента можно указать параметры метода с помощью элемента <part/>/
Элемент <portType> описывает и определяет операции или методы поддерживаемые веб-службой
Операции могут иметь входные сообщения, а также сообщения об ошибках.
Элемент <binding>- описывает, как операции определенные в типе порта будут передаваться по сети. Т.к. элемент использует тип порта, то он должен указывать тип определенный где-то ранее в документе.
Элемент <service> - указывает где найти веб службу
Элемент import . Очень часто элемент service выделяется в свой wsdl документ из соображений практичности.
Для того, чтобы позволить собрать из нескольких wsdl документов один используется элемент import. Он позволяет включать один wsdl документ в другой.
Элемент types позволяет указать типы передаваемых данных если они не являются стандартными.
WSDL поддерживает 4 режима операций:
· операции типа one-way или односторонние операции. Сообщение посылается конечной точке службы. В этом случае операция описывается только одним входным сообщением.
· Request-Response – режим запрос-ответ. Этот режим операции является наиболее общим. В этом режиме описание операции содержит входное и выходное сообщение и необязательное сообщение об ошибке.
· Операция типа требование-ответ. В этом режиме конечной точкой является клиент другой конечной точки. Формат операции похож на режим запрос-ответ, но выходные данные перечисляются перед входными данными.
· Операция уведомление. Этот режим – еще одна версия примитива односторонней передачи, в которой конечная точка посылает сообщение а не получает его. Операция содержит только выходное сообщение.
Дата добавления: 2016-11-02; просмотров: 2417;