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