Продолжается подписка на наши издания! Вы не забыли подписаться?

Использование Web Services Enhancements для отправки SOAP-сообщений с вложениями

Для пересылки вложений в SOAP-сообщениях Microsoft предлагает использовать WS-Attachments – новый стандарт Web-сервисов, позволяющий использовать протокол инкапсуляции сообщений DIME. В этой статье будет показано, как Web Services Enhancements (WSE) 1.0 for Microsoft .NET поддерживает отправку вложений с использованием спецификаций DIME и WS-Attachments.

Введение

В WS-Attachments предлагается использовать Direct Internet Message Encapsulation (DIME) для отправки и получения SOAP-сообщений с вложениями. Такими вложениями могут быть бинарные файлы, фрагменты XML и даже другие SOAP-сообщениями. Сейчас спецификация DIME, предложенная Microsoft и IBM, находится на рассмотрении в Internet Engineering Task Force (IETF). DIME инкапсулирует SOAP-сообщение и связанные с ним вложения примерно так же, как это делается в MIME. Как и в случае SOAP, DIME-сообщения могут передаваться с помощью стандартных транспортных протоколов – HTTP, TCP и UDP. DIME поддерживает потоковые данные. DIME может даже быть использован без SOAP, хотя возможности описания содержимого сообщения при этом довольно ограничены.

В первой версии Web Services Enhancements (WSE), средства, служащего для разработки Web-сервисов под .NET, Microsoft реализовал поддержку DIME и WS-Attachments. Ниже речь пойдет именно о реализации DIME в WSE, а не протоколе как таковом. Подробнее о DIME можно прочитать, например, в 12 номере MSDN Magazine за 2002 год.

Хотя использование DIME и не сводится исключительно к SOAP, главное его предназначение все же именно в эффективной передаче вложений в SOAP-сообщениях. Это особенно пригодится в Web-сервисах, нуждающихся передаче больших бинарных файлов, например, медиа-файлов или упакованных данных. Конечно, можно передавать данные через SOAP и без DIME. Например, если приспичит передать клиенту в SOAP-сообщении большой медиа-файл, можно закодировать вложение в Base64 и включить его в тело SOAP-сообщения. Но обработка такого сообщения неминуемо разрастается, особенно в случае больших вложений, и становится особенно заковыристой в случае использования цифровой подписи. Кроме того, все становится еще сложнее, если кодировка вложенных SOAP- или XML-документов отличается от кодировки содержащего их сообщения. Есть всего несколько сценариев, в которых вложение бинарных данных в SOAP-сообщение действительно имеет смысл.

DIME оптимизирован для использования с SOAP-сообщениями. Благодаря использованию метаданных, содержащихся в SOAP-сообщении, DIME-парсер не нуждается в чтении большого количества метаданных из самого DIME-сообщения.

Что такое Web Services Enhancements?

Чтобы обеспечить взаимодействие Web-сервисов в масштабах предприятия, основные игроки XML Web-сервисов (включая Microsoft, IBM и Verisign) предложили новые спецификации, которые улучшат такое взаимодействие в таких критичных для Web-сервисов областях, как безопасность, надежность и возможность отправки вложений. Microsoft для этого выпустила Web Services Enhancements (WSE) 1.0, состоящие из набора классов, реализующих новые протоколы, и набора фильтров, работающих под ASP.NET. ASP.NET перехватывает входящие и исходящие SOAP-сообщения, и интерпретирует (или генерирует) SOAP-заголовки. WSE 1.0 поддерживает следующие спецификации...

Прочитать статью полностью вы можете в печатной версии журнала

Copyright © 1994-2016 ООО "К-Пресс"