Показать сообщение отдельно
Старый 22.10.2009, 00:37
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
WSDL - это такой файл, который описывает какие сервисы доступны на сервере, который этот файл хостит. Сервис, это функция в серверном скрипте, которая как правило чего-то делает и чего-то в ответ возвращает. Как правило, она возвращает ответ в виде XML сформированого используя шаблон SOAP (но это не обязательно именно так, есть и другие варианты - REST / RESTfull - это когда вы вместо передачи имени функции в теле запроса используете имена виртуальных директорий).
Все это звучит очень заумно, но, на практике происходит примерно следующее:
Вы отправляете запрос на www.example.com?method=GetStockPrice&arguments=IBM
либо отправляете тот же запрос оформленный в XML:
www.example.com
Код:
POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">
  <m:GetStockPrice>
    <m:StockName>IBM</m:StockName>
  </m:GetStockPrice>
</soap:Body>

</soap:Envelope>
(SOAP)

либо www.example.com/GetStockPrice/IBM (RESTfull).
И, если используется SOAP, то получаете в ответ XML примерно следующего содержания:
Код:
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Body xmlns:m="http://www.example.org/stock">
  <m:GetStockPriceResponse>
    <m:Price>34.5</m:Price>
  </m:GetStockPriceResponse>
</soap:Body>

</soap:Envelope>
Как вы видите, куча избыточной информации, в данном примере, только в ответе, ее будет как раз 10425% по отношению к, например, передаче того же количества информации через TCP (сокет).
Конечно, при передаче большего количества информации КПД растет, но, в любом случае жервы огромные.
Зато есть одно преимущество - думать не надо Парсеры, сериализаторы / десериализаторы уже дaвно написаны, отлажены и более-менее работают. Процесс автоматизирован - нужно только нажать на кнопку - а все остальное програма сделает за вас.

Кроме этого написано много заумных статей и рекламных буклетов популярно объясняющих достоинства этой технологии.

Фишка в том, что это ж на сколько нужно быть ленивым, чтобы не просто не знать, как все это происходит, а даже за многие годы работы с VS Web Edition просто не удосужится взглянуть на то, что же она там генерит.
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 22.10.2009 в 00:41.