Проектирование Интернет приложений. Тузовский А.Ф. - 73 стр.

UptoLike

Составители: 

73
щих сообщения, которые они могут принимать и создавать. Такие опи-
сания метаданных составляются с помощью специального языка описа-
ния web-сервисов WSDL (Web Services Definition Language), исполь-
зующий XML формат.
Каждый web-сервис по специальному HTTP запросу предоставляет
WSDL документ, в котором описывается все, что клиенту необходимо
для организации работы с этим сервисом. WSDL-документ позволяет
разработчикам описывать синтаксис вызова любого web-метода. Более
того, этот документ позволяет использовать инструменты автоматиче-
ского генерирования специальных программных средств (прокси-
классов), которые делают вызов методов web-сервиса такими же про-
стыми, как и применение объектов локальных классов.
Пример описания web-сервиса Math показан на рис. 2.7.
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
targetNamespace="http://tempuri.org/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://tempuri.org/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<wsdl:types>
<s:schema targetNamespace="http://tempuri.org/" elementFormDefault="qualified">
<s:element name="Add"> <s:complexType> <s:sequence>
<s:element name="x" type="s:int" maxOccurs="1" minOccurs="1"/>
<s:element name="y" type="s:int" maxOccurs="1" minOccurs="1"/>
</s:sequence> </s:complexType> </s:element>
<s:element name="AddResponse"> <s:complexType> <s:sequence>
<s:element name="AddResult" type="s:int" maxOccurs="1" minOccurs="1"/>
</s:sequence> </s:complexType> </s:element>
<s:element name="Subtract"> <s:complexType> <s:sequence>
<s:element name="x" type="s:int" maxOccurs="1" minOccurs="1"/>
<s:element name="y" type="s:int" maxOccurs="1" minOccurs="1"/>
</s:sequence> </s:complexType> </s:element>
<s:element name="SubtractResponse"> <s:complexType> <s:sequence>
<s:element name="z" type="s:int" maxOccurs="1" minOccurs="1"/>
</s:sequence> </s:complexType> </s:element> </s:schema>
</wsdl:types>
<wsdl:message name="AddSoapIn">
<wsdl:part name="parameters" element="tns:Add"/>
</wsdl:message>
<wsdl:message name="AddSoapOut">
<wsdl:part name="parameters" element="tns:AddResponse"/>
</wsdl:message>
<wsdl:message name="SubtractSoapIn">
<wsdl:part name="parameters" element="tns:Subtract"/>