Введение в программирование веб-служб в управляемом коде

С помощью веб-служб возможен обмен слабо связанными данными в форме сообщений XML между гетерогенными системами. Несмотря на то, что концепция удаленного доступа к данным и прикладной логике не нова, осуществлять подобный доступ в формате слабого связывания раньше было невозможно. Такие предыдущие попытки, как DCOM, IIOP и Java/RMI, требовали тесной интеграции между клиентом и сервером. Вместо использования основанного на XML контракта, лежащего в основе веб-служб, в них использовались двоичные форматы данных, зависящие как от операционной системы, так и от реализации.

В отличие от DCOM, IIOP и Java/RMI, веб-службы не требуют использования специальной компонентной технологии или соглашений о методах вызова объектов. Единственное соглашение между клиентом и сервером состоит в том, что получатели должны понимать сообщения, которые к ним приходят. Другими словами, клиент и сервер заключают контракт, в данном случае описываемый на языках WSDL и XSD. Далее клиент и сервер обмениваются данными посредством оговоренного транспортного протокола, например HTTP, используя при этом сообщения, удовлетворяющие условиям контракта. В результате веб-службы могут использоваться программами, написанными на любом языке, использующими любую компонентную модель и работающими в любой операционной системе. Кроме того, гибкость использования текстового формата наподобие XML со временем способствует развитию слабо связного обмена сообщениями. Подобное слабое связывание необходимо в средах, в которых невозможно единовременное обновление всех участников обмена сообщениями.

Эта технология сохраняется для обеспечения обратной совместимости с существующими приложениями; не рекомендуется ее использовать для разработки новых приложений. Дополнительные сведения о рекомендуемых альтернативных технологиях см. в следующих разделах:
 Службы Windows Communication Foundation и службы данных WCF в Visual Studio

Веб-службы и платформа .NET Framework

Если веб-служба создается с помощью управляемого кода, основанного на платформах ASP.NET и .NET Framework, разработчику не требуется писать код инфраструктуры для обработки таких сведений, как протокол связи или транспорт сообщений. Более того, если создаются веб-службы, использующие платформу веб-страниц ASP.NET, эти службы могут использовать разнообразную функциональность платформы .NET Framework: например, проверку подлинности, кэширование и управление состоянием.

В модели приложений ASP.NET веб-страницы используют расширение ASPX. Чтобы отличаться от обычных страниц ASP.NET, веб-службы используют расширение ASMX.

Для обеспечения двунаправленного обмена данными с помощью веб-служб разработчик должен выполнить следующие действия.

  • Создание веб-службы. При создании XML-веб-службы создается приложение, которое предоставляет некую функциональность клиентам этой XML-веб-службы.

  • Обращение к веб-службе. При обращении к веб-службе клиентское приложение находит веб-службу, создает ссылку на нее и использует ее функциональные возможности. Клиентом XML-веб-службы обычно является приложение. Это приложение может посылать, принимать и обрабатывать сообщения, отправляемые веб-службе и получаемые от нее.

  • Создание веб-службы и обращение к ней не обязательно выполняется одним и тем же разработчиком. Некоторые веб-службы, например, служба информации о дорожном движении, может быть создана одной организацией (например, государственным департаментом транспорта). Однако к этой службе могут обращаться различные веб-сайты, например, веб-сайты компаний-грузоперевозчиков.

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

  • Создание веб-службы. Приложение предоставляет логику обработки заказов в виде веб-службы. Веб-сайты партнеров обращаются к этой службе из веб-приложений, предназначенных для продажи книг через Интернет.

  • Обращение к веб-службе. Приложение обращается к веб-службе, разработанной другой сетевой компанией, специализирующейся на рецензировании и предоставлении рецензий книжным интернет-магазинам. Когда посетители интернет-магазина просматривают цену определенной книги, они также видят рецензию на эту книгу на той же странице.

Помните, что к веб-службам можно обращаться из приложений различных типов, в том числе из других веб-служб, веб-приложений, приложений Windows и консольных приложений. Однако клиент должен быть способен отправлять сообщения веб-службам.