Правила разработки XML-веб-служб, созданных с помощью ASP.NET
Этот раздел посвящен технологии прежних версий. Веб-службы XML и клиенты веб-служб XML должны создаваться с использованием Windows Communication Foundation.
Веб-службы — мощная технология для предоставления служб с возможностью программного доступа через Интернет. В создании качественных веб-служб помогут следующие рекомендации:
Веб-службы поддерживают как синхронную, так и асинхронную передачу данных между клиентом и сервером, на котором размещена веб-служба. При синхронной передаче данных клиент отправляет запрос на обслуживание серверу службы и ожидает ответ. Это не позволяет клиенту выполнять другие действия во время ожидания результатов. В свою очередь, асинхронная передача данных вынуждает клиента продолжать обработку других задач во время ожидания ответа. Клиент отвечает на результат запроса службы сразу после его появления.
При создании прокси-класса с помощью инструмента языка описания веб-служб (Wsdl.exe) генерируются стандартные синхронные и асинхронные версии методов класса. Асинхронные версии состоят из двух методов: Begin и End. Метод Begin используется для запуска веб-службы, а метод End — для получения результатов.
Использование асинхронной передачи данных улучшает использование системы и устраняет задержки при ожидании результатов работы веб-службы клиентом.
Пример кода см. в разделе "Практическое руководство. Асинхронный вызов из клиента веб-службы". Дополнительные сведения об асинхронной передаче данных см. в разделе Асинхронное взаимодействие с XML-веб-службами.
Многочисленные запросы веб-службы, поступающие через Интернет, могут ухудшить производительность клиентского приложения. При разработке веб-службы следует эффективно использовать запросы службы, создавая методы, группирующие взаимосвязанную информацию. Предположим, к примеру, что веб-служба извлекает информацию о книге. Вместо отдельных методов, извлекающих название, автора и издателя, можно создать метод, возвращающий всю эту информацию за один запрос службы. Информацию эффективнее передавать одним крупным блоком, чем множеством малых.
Пример кода см. в разделе "Практическое руководство. Группирование связанных сведений в один метод веб-службы". При разработке веб-службы используйте стандартные приемы объектно-ориентированного программирования. Используйте инкапсуляцию для скрытия сведений о реализации. При создании сложных веб-служб можно использовать наследование и полиморфизм для упрощения кода и его повторного использования.
Пример кода см. в разделе "Практическое руководство. Использование наследования в веб-службе". Используйте кэширование вывода для повышения производительности веб-службы. Если кэширование вывода включено, результаты запроса службы сохраняются в кэше вывода в течение указанного срока. При поступлении идентичного запроса веб-службы можно извлечь результат из кэша, что избавляет от необходимости его повторного вычисления. Это повышает время отклика веб-службы за счет уменьшения необходимой обработки на сервере веб-службы. Кэширование можно выполнять как на клиенте, так и на сервере. Свойство Duration позволяет задать время хранения выходных данных веб-службы в кэше.
Включить кэширование вывода на клиенте можно с помощью следующей директивы:
<%@ OutputCache Duration="60" %> For a code example, see How to: Enable Output Caching on a Web Service Client.You can also use the CacheDuration property of the WebMethod attribute class to enable caching on the server. For a code example, see How to: Enable Server-Side Output Caching for a Web Service.
При разработке веб-службы рекомендуется принять форматирование схемы за образец, которому нужно следовать.
Веб-службы используют протокол SOAP как основной протокол транспорта и сериализации. Сообщение SOAP состоит из набора необязательных заголовков и тела сообщения. Раздел заголовка содержит информацию, обработать которую может инфраструктура веб-сервера. В протоколе SOAP заголовки не определены. Раздел тела сообщения содержит информацию, обрабатываемую приложением, например параметры или возвращаемое значение веб-службы.
Дополнительные сведения об использовании заголовков SOAP см. в разделе Использование заголовков SOAP.
Создайте документацию для веб-службы, например в виде статичного HTML-файла, с описанием принципов ее работы и структур данных. Добавьте также примеры ее использования. Не полагайтесь на описание службы и ее справочную страницу как на единственный источник информации.
См. также
Задачи
Как выполнить асинхронный вызов из клиента веб-службы
Как группировать связанные сведения в один метод веб-службы
Как использовать наследование в веб-службе
Как включить кэширование вывода на клиенте веб-службы
Как включить для веб-службы кэширования вывод на сервере
Основные понятия
Асинхронное взаимодействие с XML-веб-службами
Другие ресурсы
XML-веб-службы с использованием ASP.NET
Использование заголовков SOAP