Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 302

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 296 297 298 299 300 301 < 302 > 303 304 305 306 307 308 .. 320 >> Следующая

Еще один важный момент, связанный с web-службами, который обязательно необходимо осознать, состоит в том, что для них вовсе не обязательно использовать клиентов, работающих через браузер. К web-службе вполне могут обращаться и обычные консольные или Windows-клиенты (локальные, клиенты терминальных служб и т. п.). Для этого в .N HT предусмотрены специальные средства, которые позволяют генерировать так называемые прокси-сборки. Мы обращаемся к типам этой прокси-сборки, как к обычному типу .NE Г, а она уже перенаправляет запрос в web-службу (при помощи HTTP или сообщений SOAP) и возвращает клиенту полученные результаты.
Инфраструктура web-службы
Web-службе (как и обычному приложению ASP.NET) обычно соответствует виртуальный каталог на сервере IIS. Однако для web-службы вам потребуется также реализовать дополнительную поддерживающую инфраструктуру. К ней относятся:
_ • протокол подключения (HTTP-GET, HTTP-POST или SOAP);
• служба описания — description service (чтобы клиент мог получить информацию о том, что делает эта web-служба);
Обзор пространств имен web-служб 751
• служба обнаружения — discovery service (чтобы клиент мог получить формацию о том, что web-служба существует).
В этой главе нам предстоит реализовать каждую часть инфраструктуры в ваших примерах. А пока — краткое описание.
Протокол подключения
Б web-службах ASP.NET (как и в ADO.NET) стандартный формат передачи информации между службой и клиентом - это формат XML. Сама передача происходит при помощи протокола HTTP. Мы можем использовать различные методы передачи информации - метод HTTP GET, HTTP POST и SOAP. Ориентироваться следует на SQAP, поскольку при помощи этого протокола мы можем обеспечить передачу очень сложныхтипов (пользовательскихклассов, объектовADo.NET DataSet, массивов объектов и т. п.).
Служба описания
При обращении к удаленной web-службе клиент должен обладать полной информацией о членах типом web-службы, которые предоставлены в его распоряжение. Например, клиент должен иметь информацию о том, что он может вызвать метод foot ;>, а также все необходимые параметры этого метода: какие параметры этот метод принимает и что он возвращает. За предоставление клиенту этой информац] ¦ ¦ г и ответственна служба описания (description service) web-службы. Как обычно, сама информация oweb-службе предоставляется в форматеХМЕХМЕзсЬета, которая используется для описания чуеЬ-службы, называется WSDL (Web Service Description Language, WSDL).
Служба обнаружения
Служба обнаружения (discovery service) позволяют клиенту обнаруживать web-службы по адресу URL. Для этой службы используются файлы '.disco (от discovery), опять-таки в формате XML Мы познакомимся с синтаксисом этих файлов
в последней части этой главы.
Обзор пространств имен web-служб
Как вы уже, наверное, догадываетесь, разработчики T заготовили для нас множество типов, которые могут быть использованы как для построения самих web-служб, так и для создания необходимой инфраструктуры. Эти типы определены в пространствах имен, представленных в табл. 15.1,
Таблица 15.1. Пространства имен для web-служб Пространство имен Описание
System.Web.Services В этом пространстве имен определен минимально достаточный
набор типов для построения web-службы
Systerri.Web.Servites,Description Набор типов дпя программного взаимодействуя с WDSL
продолжение
752 Глава 15 * Web-службы Таблица 15.1 {продолжение)
Пространство имен Описание ~~_~
System.Web,Services.Discovery Эти типы обеспечивают клиенту web-служб возможность
программно обнаруживать web-службы, установленные на конкретном компьютере. Используются вместе с файлами *,disco
System.Web.Services.Protocols Между web-службой и клиентом данные могут передаваться
по протоколам HTTP GET, HTTP POST и SOAP. В этом пространстве имен определены типы, которые предназначены для работы с этими протоколами
Пространство имен System.Web.Services
В большинстве проектов по созданию web-служб единственные типы, с которыми нам придется взаимодействовать напрямую — это типы пространства имен System . УеЬ. Servi ces. Этот набор типов не так уж велик: типы Sysim.fceb. Serv' ces представлены в табл. 15.2.
Таблица 15.2. Типы пространства имен System.Web.Services
Тип_Описание_
WebMethodAttribute Добавление атрибута [WebMethod] в определение метода
web-службы означает, что этот метод может быть вызван удаленным клиентом по HTTP
WebService Определяет необязательный базовый класс для web-службы
WebServiceAttribute Этот атрибут может быть использован для размещения информации
о web-службе (например, для строки, описывающей ее возможности). Атрибут является необязательным
WebServiceBindingAttribute Объявляет связывающий протокол, который реализован методом web-службы
Пример элементарной web-службы
Перед тем как приступать к подробностям, давайте сформируем мысленный образ
того, о чем идет речь, и создадим очень простую web-службу. Для этого запустим Visual Studio.NET и создадим новый проект С# на основе шаблона Web Service (рис. 15.1). Мы назовем этот проект CalcWebService.
Предыдущая << 1 .. 296 297 298 299 300 301 < 302 > 303 304 305 306 307 308 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100