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

Обновлен: Ноябрь 2007

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

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

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

При работе с веб-службами существуют две фундаментальные роли:

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

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

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

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

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

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

См. также

Другие ресурсы

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

Веб-программирование с использованием веб-служб

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

Доступ к веб-службам в управляемом коде