Web-службы
Web-службы
Распределение функций приложений и возможность использования данных за пределами предприятия, на котором они хранятся, – следующий шаг в развитии компонентной технологии. Количество служб, которые разработчики могут интегрировать в свои приложения, настолько велико, что не приходится даже мечтать о том, чтобы создать их все самостоятельно.Протоколы. Язык XML.
В основе Web-служб используется несколько протоколов: язык XML (extensible Markup Language), пространства имен XML (XML Namespaces), Схема XML (XML Schema), SOAP (Simple Object Access Protocol, простой протокол доступа к объектам) и WSDL (Web Services Description Language, язык описания Web-служб).Пространства имен XML (XML Namespeces)
Множество элементов и атрибутов, которые содержатся в ХМL-документе, называется словарем. Словарь может оказаться очень полезным, если он моделирует многократно используемую информацию. Например, можно создать финансовый или химический словарь.Схема XML (XML schema). Протокол SOAP.
Пространства имен языка XML не приписывают никакой семантики используемым данным. В спецификации XSD (XML Schema Definition – Определение схемы XML) определяется набор базовых типов данных и их смысл, на основе чего можно определять новые типы данных.Язык описания Web-служб WSDL. Архитектура Web-службы. Пример Web-службы Add (Сложение).
Объекты содержат описание своего состояния и поведения. Схемы описывают данные. Язык описания Web-служб WSDL (Web Services Description Language) описывает Выходящие в состав Web-службы методы и данные.Просмотр Web-службы Add (Сложение) при помощи браузера. Отладка Web-службы Add (Сложение).
Internet Explorer можно применять в качестве простой клиентской программы, которая использует возможность кодирования запросов к Web-службе в унифицированном указателе информационного ресурса (URL) для метода GET (Получить) протокола передачи гипертекстовых файлов HTTP.Клиент для Web-службы Add (Сложение)
Безусловно, у вас возникнет желание написать клиентские программы, которые входят в состав распределенного приложения и используют Web-службу. Вскоре мы это сделаем. Пока же в качестве клиента мы будем использовать Internet Explorer.Язык описания Web-служб (Web Services Description Language – WSDL)
Протокол SOAP описывает передаваемые данные. Интерфейс Web-служб он не описывает. Данные, передаваемые по протоколу SOAP, можно закодировать и самостоятельно. Но лучше для этой цели создать вспомогательные классы (классы-заместители), которые будет использовать программа-клиент.Классы-заместители
Сервисная программа Wsdl .exe считывает описание Web-службы на языке WSDL и генерирует класс-заместитель, который формирует SOAP-запрос Web-службы.Клиент web-службы, использующий необработанные данные SOAP и протокол передачи гипертекстовых файлов HTTP
Чтобы проиллюстрировать возможности класса SoapHttpClientProtocol, окончательный вариант клиентской программы использует сокеты. Сокеты позволяют отсылать как заголовки протокола передачи гипертекстовых файлов HTTP, так и сами данные в формате SOAP, а также получать ответ от Web-служб.Особенности форматирования данных согласно спецификации SOAP
Прежде чем завершить предварительное знакомство с протоколом SOAP и языком WSDL, мы более пристально рассмотрим взаимосвязь между протоколом SOAP, языком WSDL и спецификацией XML Schema.Класс WebService. Использование шаблона Managed C++ web Service (Web-службы на управляемом C++).
Как мы показали раньше, Web-служба представляет собой не что иное, как обработчик запросов, поступающих по протоколу передачи гипертекстовых файлов HTTP. В качестве такового Web-служба имеет доступ к внутренним объектам, которые содержатся в этих запросах.Код, генерируемый шаблоном Managed C++ Web Service (Web-служба на управляемом C++)
Шаблон Managed C++ Web Service (Web-служба на управляемом C++) создает код стартовой системы для проекта Web-службы. На рис. 11.6 приведено окно Solution Explorer (Поиск решения), в котором открыт проект ManagedWebService. | Рис. 11.6.Арифметическая Служба Сети, или Web-служба Arithmetic (Арифметика). Использование внутренних объектов.
В данном разделе главы будет рассмотрена Web-служба Arithmetic (Арифметика), созданная на основе шаблона Managed C++ Web Service (Web-служба на управляемом C++). Мы научимся работать с внутренними объектами Web-службы.Web-служба Hotel Broker (Брокер гостиницы)
Пришло время сделать следующий шаг на пути изучения конкретного примера. Теперь на основе компонентов Customer (Клиент) и Hotel (Гостиница) Web-службы Hotel Broker (Брокер гостиницы) мы создадим самостоятельные Web-службы.Web-служба Customer (Клиент)
Чтобы создать Web-службу Customer (Клиент), мы создадим с помощью шаблона Managed C++ Web Service (Web-служба на управляемом C++) проект Web-службы и назовем его CustomerWebService. Этот проект будет использован компонентом Customer (Клиент) для реализации деталей Web-службы.Web-служба Hotel Broker (Брокер гостиницы). Соображения по поводу проектирования. Резюме.
В случае Web-службы Hotel Broker (Брокер гостиницы), сборка Hotel (Гостиница) была модифицирована таким образом, что теперь она сама играет роль Web-службы. В файле HotelWebService.asmx должна присутствовать ссылка только на класс Hotel-Broker, который реализован в сборке Hotel (Гостиница).