Сегодня пришлось столкнуться с веб сервисами и WSDL файлами. Так зачем же нужны эти веб сервисы?
Сделать из веб сервера сервер приложений, который с клиентом будет обмениваться XML подобными сообщениями.
Как пользоваться, берем любой веб сервис пример
Получаем список методов для запросов, берем подходящий например курс валюты на дату
Вводим дату и жмем кнопку ПУСК (точнее Invoke)
Получаем результат в виде XML и радуемся что все работает)
Ниже описание самой технологии веб сервисов
SOAP протокол обмена сообщениями между клиентом и сервером, в качестве транспорта используется протокол HTTP
WSDL язык описания веб сервисов и доступа к ним, основанный на языке XML.
UDDI (Universal Discovery, Description and Integration) — универсальный интерфейс распознавания, описания и интеграции, используемый для формирования каталога веб-сервисов и доступа к нему.
Элемент WSDL 2.0
|
Краткое описание
|
Interface
|
Представляет описание интерфейса веб-сервиса (список операций и их параметров).
|
Service
|
Список системных функций
|
Binding
|
Специфицирует интерфейсы и задает параметры связывания с протоколом SOAP: стиль связывания (RPC/Document) и транспорт (SOAP). Эта секция доступна и для каждой из операций
|
Operation
|
Определяет операцию, представляемую веб-сервером. WSDL-операция — это аналог традиционным функциям и процедурам.
|
не использ.
|
Сообщение, связанное с определенной операцией. Содержит информацию, необходимую для выполнения данной операции. Каждое сообщение может состоять из нескольких логических частей, описывающих типы данных и имена атрибутов. В версии 2.0 было исключено, т.к. была внедрена поддержка XML Schema для всех элементов.
|
Types
|
Описание данных в соответствии с XML Schema.
|
SOAP
Все сообщения SOAP оформляются в виде структуры, называемой конвертом (envelop), включающей следующие элементы:
- Идентификатор сообщения (локальное имя).
- Опциональный элемент Header (заголовок):
- Ноль или более ссылок на используемые пространства имен;
- Ноль или более свойств, доступных в этом пространстве имен.
- Обязательный элемент Body (тело сообщения)
- Ноль или более ссылок на используемые пространства имен;
- Дочерние элементы тела сообщения
Пример сообщения SOAP:
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<env:Header>
<n:alertcontrol xmlns:n="http://example.org/alertcontrol">
<n:priority>1</n:priority>
<n:expires>2001-06-22T14:00:00-05:00</n:expires>
</n:alertcontrol>
</env:Header>
<env:Body>
<m:alert xmlns:m="http://example.org/alert">
<m:msg>Get up at 6:30 AM</m:msg>
</m:alert>
</env:Body>
</env:Envelope>
В итоге что имеем
Достоинства
- Обеспечивают взаимодействие программных систем независимо от платформы.
- Основаны на базе открытых стандартов и протоколов.
- Использование HTTP позволяет приложениям взаимодействовать через межсетевой экран.
Недостатки
- Меньшая производительность и больший объем сетевого трафика по сравнению с такими технологиями как CORBA или DCOM.