Перед тем как начать, разработчику важно понять ключевые концепции и стандартные термины Web-сервисов. Эти знания обеспечат понимание вами того, что происходит в вашем приложении. Они также помогут вам при чтении документации .NET и статей о создании приложений Web-сервисов. Поэтому мы составили следующий глоссарий ключевых терминов, имеющих отношение к Web-сервисам.
□ Web-cepeuc представляет собой цельный набор.логики приложения, которая выполняет действия и предоставляет данные. Web-сервис группирует эту логику в виде методов, которые можно вызвать по HTTP. Не все сервисы являются Web-сервисами; таковыми считаются только те, которые работают через Интернет.
□ Метод Web-cepeuca (или Web-метод) представляет собой метод, предоставляемый Web-сервисом. Web-метод может принимать параметры и возвращать ответ.
□ XML (Extensible Markup Language, расширяемый язык разметки) используется для представления и описания данных независимым от платформы образом. XML может применяться для представления как простых, так и сложных элементов данных и связей. Именно стандарт XML делает Web-сервисы возможными.
П WSDL (Web Service Description Language, язык описания Web-сервиса) служит для описания содержимого Web-сервиса и его Web-методов. WDSL обеспечивает контракты сообщений данных, которые позволяют клиентам работать с сервисом.
□ XSD (XML Schema Document, документ схемы XML) содержит набор предопределенных типов (строковых, десятичных и т. д.) и стандартный язык для описания ваших собственных сложных типов. Документ схемы XML (называемый также XSD) использует эти типы для описания (и ограничения) содержимого XML-сообщения.
□ SOAP (Simple Object Access Protocol) — это основанный на XML протокол для обмена между клиентом и Web-сервисом. Можно считать, что SOAP представляет формат сообщений при их передаче по проводам. SOAP обертывает XML-сообщения для передачи через Интернет. Большая часть сообщений SOAP посылается по HTTP. Однако они могут также посылаться по транспортным протоколам (таким как SMTP или FTP).
□ HTTP (Hypertext Transfer Protocol) представляет собой протокол обмена, используемый Web-сервисами для передачи отформатированных (или закодированных) протоколом SOAP сообщений. HTTP также является способом реализации стандартных запросов (get и post) для Web-страниц.
□ UDDI (Universal Description, Discovery and Integration) используется для определения реестра Web-сервисов. Эта возможность полезна для публикации сервисов (чтобы разработчики могли их найти и воспользоваться ими).
□ URI (Uniform Resource Identifier) обеспечивает средство локализации в Интернете. В большинстве случаев URJ — это URL, которые указывают на сервис.
□ DISCO (Discovery Document)— файл DISCO предоставляет информацию, которая связывает с ключевыми элементами Web-сервиса (это ссылки на XSD, привязки SOAP, а также пространства имен). Программы могут использовать файл DISCO для определения того, как надо работать с данным Web-сервисом.
□ fVS-* представляет общие стандарты Web-сервисов.
□ WSE (Web Service Enhancements) — это реализация стандартов WS-* фирмой Microsoft. Последняя версия — это WSE 3.0. Она реализует транзакции Web-сервисов и улучшенную систему безопасности. WSE можно скачать, она работает как надстройка для Visual Studio.
Visual Studio делает создание Web-сервисов похожим на разработку других классов и компонентов. Таким образом, сложные аспекты SOAP, WSDL, XSD (и прочего) абстрагируются (и автоматически генерируются данным инструментом). Вы по-прежнему имеете доступ к этим элементам и управление ими (если они вам нужны). Однако по большей части вы определяете Web-сервис точно так же, как создаете класс. Затем вы определяете Web- методы (аналогично тому, как вы определяли бы методы класса). Visual Studio создает соответствующий контракт схемы для сигнатур ваших методов и описывает ваши Web-сервисы в терминах WSDL. Затем .NET Framework позаботится о надлежащей упаковке ваших данных в сообщение SOAP и передаче их по HTTP.
Web-сервисы в .NET создаются и предоставляются в той же самой инфраструктуре, которая предоставляет Web-сайты ASP.NET. Это означает, что Web-сервисы используют ту же самую серверную технологию (Internet Information Services, или IIS) и те же самые объекты (такие как Application, Session и Context). Таким образом, те разработчики, которые знакомы с изготовлением приложений ASP.NET, могут использовать этот опыт для Web-сервисов. Вы можете использовать встроенное управление состоянием, сервисы аутентификации и производительность ASP.NET.
Web-сервис в .NET — это просто Web-адрес файла Web-сервиса, имеющего расширение asmx. Сервис имеет стандартный адрес http://.... Этот файл используется как UR1 для Web- сервиса (аналогично Web-странице). Вы пишете ваш выделенный код для этого файла, а Visual Studio и .NET делают все остальное (прикрепляют соответствующий WSDL и активируют вызовы SOAP по HTTP). Давайте более подробно рассмотрим использование Visual Studio и ASP.NET для предоставления Web-сервисов.
Шаблон проекта ASP.NET Web Service Project
Web-сервис можно добавить в любой Web-npoeKT ASP.NET. Visual Studio предоставляет также и специфичный для Web-сервиса шаблон проекта. Этот шаблон полезен тогда, когда вы хотите создать целый слой сервисов или отделить ваши сервисы от любых элементов пользовательского интерфейса. Проект из этого шаблона вы создаете точно так же, как и другие Web-проекты: выбор File | New | Website приведет к открытию диалогового окна Add New Project (рис. 19.3). Здесь вы можете выбрать шаблон ASP.NET Web Service Application для того, чтобы описать специфичный для Web-сервиса проект.
Как и при описании нового Web-сайта, вы можете указать местоположение Web-сервиса. Вы можете выбрать местоположение в файловой системе или указать Web-cepeep (работающий по протоколу HTTP), либо использовать FTP для указания места хранения Web- сервиса. Кроме того, вы можете задать язык по умолчанию, на котором должен программироваться Web-сервис.
Рис. 19.3. Создаем новый проект Web-сервиса