Иллюстрированный самоучитель по Architecture .NET

Язык описания Web-служб WSDL. Архитектура Web-службы. Пример Web-службы Add (Сложение).

Объекты содержат описание своего состояния и поведения. Схемы описывают данные. Язык описания Web-служб WSDL (Web Services Description Language) описывает Выходящие в состав Web-службы методы и данные. Вскоре мы рассмотрим простой пример, с помощью которого проиллюстрируем, как создать Web-службу, не используя язык PVSDL. Но если вы хотите, чтобы автоматически создавались классы, вызывающие Web-службу или Web-службы выполняли действия, которые могут потребовать автоматического вмешательства машины, тогда без языка WSDL не обойтись [Это напоминает библиотеку типов среды Visual Basic 6, которая упрощает программирование в модели Компонентных объектов Microsoft COM. В отличие от библиотеки типов, которая описывает не все COM-объекты и интерфейсы, язык WSDL обеспечивает исчерпывающее описание Web-служб.]. Ибо в противном случае составлять и отсылать SOAP-сообщения вам придется вручную.

Как вы узнаете из следующего примера, протокол SOAP, который описывает формат пересылаемых Web-службами данных, определен в языке WSDL. В данный момент документ Консорциума W3C, описывающий язык WSDL, имеет статус записки (note).

Архитектура Web-службы

Информационный сервер Internet компании Microsoft (Internet Information ServerHIS) взаимодействует как со страницами ASP.NET так и с Web-службами, которые отсыпают ему запросы по протоколу передачи гипертекстовых файлов HTTP. Запросы кодируются как часть унифицированного указателя информационного ресурса (URL) или представляются в виде XML-текста. В ответ на запрос Web-службы информационный сервер Internet (US) создает запрошенный объект. Затем информационный сервер Internet (US) вызывает метод объекта, который обрабатывает соответствующий запрос. Любые возвращаемые данные преобразуются в XML-формат и возвращаются клиенту как ответ по протоколу передачи гипертекстовых файлов HTTP.

Пример Web-службы Add (Сложение)

Чтобы ознакомиться с архитектурой Web-служб, построенных на базе платформы Microsoft .NET, и протоколами, которые они используют, мы рассмотрим простую Web-службу. Она расположена в каталоге SimpleWebService. Web-служба Add (Сложение) складывает два числа. С целью облегчить восприятие материала, мы создадим Web-службу наиболее простым способом и не будем использовать шаблон проекта Web-службы на управляемом C++ (Managed C++ Web Service project template).

Максимально упрощая реализацию данной службы, мы воспользуемся шаблоном приложения на основе библиотеки классов управляемого C++ (Managed C++ Class Library). Чтобы запустить пример SimpleWebService на выполнение, следуйте пошаговым инструкциям.

Откройте проект SimpleWebService\WebService\WebService.sin в среде Visual Studio .NET. Постройте решение.

Скопируйте полученный в результате этого файл WebService.dll в каталог Simple-WebService\WebService\bin. Несмотря на то, что все эти действия уже сделаны за вас, желательно, чтобы вы проделали их самостоятельно.

В окне проводника Windows (Windows Explorer) щелкните правой кнопкой мыши на каталоге SimpleWebService\WebService и выберите из контекстного меню команду Properties (Свойства). В окне Properties (Свойства) перейдите на вкладку Web Sharing (Совместное использование в Web). Откройте папку для совместного доступа, указав в качестве псевдоимени SimpleWebService. Чтобы закрыть окно Properties (Свойства), щелкните на ОК.

Просмотрите пример, для чего введите следующий унифицированный указатель информационного ресурса (URL) Http://localhost/Simple\VebService/Add.asmx в адресной строке вашего браузера. Его также можно открыть в среде Visual Studio .NET стандартным способом. Данный проект сконфигурирован так, что при этом запустится Internet Explorer (IE).

Дальше необходимо написать код и сохранить его в файле с расширением asmx в подкаталоге или виртуальном подкаталоге корневого каталога информационного сервера Internet (US). Таким образом мы создали простую Web-службу [По умолчанию корневым каталогом является каталог \metpub\wwwroot.]. Информационный сервер Internet (US) использует понятие виртуального каталога. Это означает, что каталог, в котором фактически расположены файлы, необходимые информационному серверу Internet (IIS), не обязательно должен на самом деле находиться в корневом каталоге информационного сервера Internet (IIS). Проще всего создать виртуальный каталог следующим образом.

Выделите нужный каталог в окне Проводника NT (NT Explorer). Щелкните правой кнопкой мыши на каталоге и выберите из контекстного меню команду Sharing (Совместное использование). Перейдите на вкладку WebSharing (Совместное использование в Web) и создайте на базе данного каталога виртуальный каталог информационного сервера Internet (US).

Файл Add.asmx содержит ссылку на класс Test (Тест), с помощью которого реализована Web-служба. Этот файл нужно разместить в каталоге SimpleWebService.

<%@ WebService Class=Test %>

Файл WebService.h содержит класс Test (Тест), который является производным от класса WebService, принадлежащего пространству имен System::Web::Services (Система::Сеть::Службы). Метод, содержащийся в этом классе, может использоваться в качестве метода Web-службы, если он имеет атрибут WebMethod, как показано на примере метода Add (Сложение), реализованного в файле WebService .h.

// WebService.h
fusing <mscorlib.dll>
fusing <System.dll>
fusing <System.Web.dll>
fusing <Systern.EnterpriseServices.dll>
fusing <System.Web.Services.dll>
using namespace System;
// использование пространства имен Система;
using namespace System::Web;
// использование пространства имен Система::Сеть;
using namespace System::Web::Services;
// использование пространства имен Система::Сеть::Службы;
public _gc class Test: public WebService
{
public:
[WebMethod]
long Add(long x, long y) {
return x + y; }
};

Этот файл находится в подкаталоге WebService каталога SimpleWebService данной главы. Создайте на базе каталога WebService виртуальный каталог с псевдоименем (псевдонимом) SimpleWebService [Как указывается в главе 10 "ASP NET и Web-формы", проще всего создать виртуальный каталог с помощью Проводника Windows (Windows Explorer). Щелкните правой кнопкой мыши на нужном каталоге и из контекстного меню выберите команду Properties (Свойства). На вкладке Web Sharing (Совместный доступ в Web), вы можете открыть папку для совместного доступа и присвоить ей псевдоимя (псевдоним).]. После построения службы Add (Сложение) в виртуальном каталоге WebService создайте каталог bin и скопируйте в него сборку WebService.dll. Информационный сервер Internet (US) автоматически ищет требуемые файлы в этом каталоге.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.