Форматы подключения XML-веб-служб

Этот раздел посвящен технологии прежних версий. Веб-службы XML и клиенты веб-служб XML должны создаваться с использованием Windows Communication Foundation.

Двоичные протоколы, такие как DCOM, состоят из уровня запроса метода, наложенного поверх фирменного протокола связи. Такие протоколы не способствуют созданию универсально доступных XML-веб-служб. Это не исключает использование таких протоколов в сценарии XML-веб-службы, но недостаток их использования заключается в том, что эти протоколы зависят от конкретной архитектуры систем, на которых они построены, и, следовательно, ограничивают спектр потенциальных клиентов.

Можно также создать XML-веб-службы для работы с одним или несколькими открытыми протоколами, такими как сочетание протоколов HTTP и SOAP. Инфраструктуры, необходимые для поддержки различных протоколов, различаются.

XML-веб-службы не ограничиваются предоставлением доступа к удаленным вызовам процедур (RPC). Они могут быть также созданы для обмена структурированной информацией, такой как заказы на покупку и счета, а также могут использоваться для автоматизации и соединения внутренних и внешних бизнес-процессов.

HTTP-GET и HTTP-POST

HTTP-GET и HTTP-POST — это стандартные протоколы, использующие команды протокола HTTP для кодирования и передачи таких параметров, как пары имя/значение, вместе со связанной семантикой запроса. Каждый состоит из последовательности заголовков запросов HTTP, задающих, среди прочего, что именно запрашивает клиент от сервера, который в ответ передает последовательность заголовков ответа HTTP и, в случае успешного выполнения, запрошенные данные.

Протокол HTTP-GET передает свои параметры в форме текста в кодировке URL с использованием типа MIME application/x-www-form-urlencoded, который добавляется к URL-адресу сервера, обрабатывающего запрос. Кодировка URL — это форма кодирования символов, которая гарантирует, что передаваемые параметры содержат допустимый текст, например пробел кодируется как %20. Добавляемые параметры также называются строкой запроса.

Как и в HTTP-GET, в протоколе HTTP-POST параметры также кодируются в кодировке URL. Однако параметры не передаются в URL-адресе, пары имя/значение передаются в фактическом сообщении запроса HTTP.

SOAP

SOAP — это простой, облегченный, базирующийся на XML протокол для обмена структурированной и типизированной информацией в Интернете. При создании протокола SOAP преследовалась общая цель сделать его как можно более простым и обеспечить минимальную функциональность. Этот протокол определяет платформу обмена сообщениями, не содержащую семантики прикладного или транспортного уровня. В результате протокол имеет модульную структуру и очень легко расширяется.

Передаваемый по стандартным транспортным протоколам, протокол SOAP способен использовать существующую открытую архитектуру Интернета и легко принимается произвольной системой, способной поддерживать наиболее общие стандарты Интернета. Инфраструктуру, необходимую для поддержки SOAP-совместимой XML-веб-службы, можно рассматривать как очень простую, но мощную, так как она добавляет относительно мало нового в существующую инфраструктуру Интернета, но при этом обеспечивает универсальный доступ к службам, построенным с использованием протокола SOAP.

Спецификация протокола SOAP состоит из четырех основных частей. Первая часть определяет обязательный расширяемый конверт для инкапсуляции данных. Конверт протокола SOAP определяет сообщение SOAP и является базовой единицей обмена между процессорами сообщений SOAP. Это единственная обязательная часть спецификации.

Вторая часть спецификации протокола SOAP определяет необязательные правила кодирования данных для представления типов данных, заданных приложением, и направленных графов, а также единообразную модель сериализации моделей несемантических данных.

Третья часть определяет структуру обмена сообщениями стиля RPC (запрос/ответ). Каждое сообщение SOAP передается в одну сторону. Хотя корни протокола SOAP уходят в RPC, он не ограничивается механизмом запрос/ответ. XML-веб-службы часто объединяют сообщения SOAP для реализации такой структуры, но протокол SOAP не задает обязательной структуры обмена сообщениями, и эта третья часть спецификаций также необязательна.

Четвертая часть спецификации определяет привязку между протоколами SOAP и HTTP. Однако эта часть также необязательна. Протокол SOAP можно использовать совместно с любым транспортным протоколом или механизмом, способным передавать конверт SOAP, включая SMTP, FTP или даже дискету.

Спецификацию SOAP см. на веб-сайте W3C (http://www.w3.org/TR/soap).

См. также

Основные понятия

Инфраструктура XML-веб-служб