На главную страницу
Форум txt.version   




Статья :: Язык описания Web-служб (Web Services Description Language — WSDL)

Язык описания Web-служб (Web Services Description Language — WSDL)

Протокол SOAP описывает передаваемые данные Интерфейс Web-служб он не описывает Данные, передаваемые по протоколу SOAP, можно закодировать и самостоятельно Но лучше для этой цели создать вспомогательные классы (классы-заместители), которые будет использовать программа-клиент Ведь чтобы самостоятельно закодировать данные, необхсцшо знать спецификацию SOAP до мельчайших подробностей и провести синтаксичесий разбор возвращаемого XML-пакета.
Язык WSDl(Web Services Description Language — язык описания Web-служб) предназначен для опиания интерфейса Web-служб. В качестве примера мы опишем с помощью языка WSDL нтерфейс Web-службы SimpleWebService, имеющей один метод Add (Сложение). Ипользовать язык WSDL для описания интерфейса Web-служб, которые для передачи днных используют другие протоколы, а не протокол SOAP, мы не будем. Чтобы увидетюписание на языке WSDL Web-службы SimpleWebService, введите в адресной строе броузера следующий унифицированный указатель информационного ресурса (URL)http: //localhost/SimpleWebService/Add.asmx?WSDL. Описание Web-службы в языке WSDL состоит из нескольких разделов. В разделе <types> (<типы>) опредлены следующие типы:

  • Add (Сложение). Описывает данные, передаваемые Web-службе по протоколу SOAP;
  • Addresponse. Описывает результаты, возвращаемые Web-службой клиенту по протжолу SOAP.

Тип Add (Сложение) имеет два элемента, каждый из которых встречается лишь один раз. Элементьимеют имена х и у и принадлежат типу long, определенному спецификацией XSD (XMLSchema Definition — Определение схемы XML). Возвращаемый параметр AddResponsecoдepжит один элемент AddResult, который встречается один раз и также принадлеэмт типу long, определенному, как мы уже знаем, в спецификации XSD (XML SchemaDefinition — Определение схемы XML). Обратите внимание, как рассмотренные типы >ке использовались ранее, при описании протокола SOAP.

<types>
<s:elemerz name="Add"> <s: comjl.exType> <s: sequence>
<salement minOccurs="1" maxOccurs="1"
name="x" type="s:int" />
<s:element minOccurs="1" maxOccurs="1"
name="y" type="s:int" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="AddResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="1" maxOccurs="1"
name="AddResult" type="s:int" />
</s:sequence>
</s:complexType>
</s :elment>
</types>

В разделе :message> (<сообщение>) описывается использование этих типов в качестве параметре.

<message name="AddSoapIn"> <!-- сообщение -->
<part name="parameters" element="s0:Add" /> <!-- параметры -->
</message> <!-- сообщение -->
<message name="AddSoapOut"> <!-- сообщение -->
<part name="parameters" element="s0:AddResponse" />
<!-- параметры -->
</message> <!-- сообщение -->

В разделе <portType> (тип порта) с Web-службой сопоставляются отдельные Web-методы, которые описаны в элементах <operation> (<действие>). Если бы данная Web-служба использовала большее количество методов, тогда в разделе <portType> (тип порта) было бы больше элементов operation (действие) [Читатели, склонные проводить параллели, увидят здесь аналогию с интерфейсом модели компонентных объектов Microsoft (COM). ]. Операции ввода и вывода каждого метода связаны с соответствующими сообщениями, которые были определены раньше.

<portType name="TestSoap">
<operation name="Add"> <!-- операция -->
<input message="s0:AddSoap!n" />
<output message="s0:AddSoapOut" />
</operation> <!-- операция -->
</portType>

В разделе <binding> (<связывание>) каждому действию ставится в соответствие способ кодирования и протокол передачи данных.

<binding name="TestSoap" type="s0:TestSoap">
<soap:binding
transport="http://sohemas.xmlsoap.org/soap/http"
style="dooument" /> <!-- стиль = "документ" -->
<operation name="Add"> <!-- название операции -->
<soap:operation soapAction="http://tempuri.org/Add" style="document" />
<!-- стиль = "документ -->
<input> <!-- ввод -->
<soap:body use="literal" />
</input> <!-- ввод -->
<output> <!-- вывод -->
<soap:body use="literal" />
</output> <!-- вывод -->
</operation> <!-- операция -->
</binding>

В разделе <service> (<служба>) указывается порт, используемый Web-службой, и адрес, по которому можно активизировать Web-службу.

<service name="Test"> <!-- имя = "Испытание -->
<
port name="ТезtSoap" binding="s0:TestSoap">
<!-- порт -->
<soap:address location=
"http://localhost/SimpleWebService/Add.asmx" />
</port> <!-- порт -->
</service>


Язык описания Web-служб (Web Services Description Language — WSDL)

страницы в данном разделе 
 Глава 11. Web-службы  Web-службы
 Протоколы  Язык XML
 Пространства имен XML (XML Namespeces)  Схема XML (XML schema)
 Протокол SOAP  Язык описания Web-служб WSDL
 Архитектура Web-службы  Пример Web-службы Add (Сложение)
 Просмотр Web-службы Add (Сложение) при помощи броузера  Отладка Web-службы Add (Сложение)
 Клиент для Web-службы Add (Сложение)  Язык описания Web-служб (Web Services Description Language — WSDL)
 Классы-заместители  Клиент web-службы, использующий необработанные данные SOAP и протокол передачи гипертекстовых файлов HTTP
 Особенности форматирования данных согласно спецификации SOAP  Класс WebService
 Использование шаблона Managed C++ web Service  Код, генерируемый шаблоном Managed C++ Web Service
 Арифметическая Служба Сети, или Web-служба Arithmetic  Использование внутренних объектов
 Web-служба Hotel Broker  Web-служба Customer (Клиент)
 Web-служба Hotel Broker (Брокер гостиницы)  Соображения по поводу проектирования
 Резюме   


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста