В главе 11 "Web-службы" мы видели, как работают Web-службы, используя ASP NET Здесь не будет повторения теоретических основ их работы, ведь эти основы одни и те же, что бы ни использовалось для реализации Web-службы — ASP NET или ATL Server А вот что касается отличий, то главное из них состоит в том, что если ASP NET реализуется с помощью управляемого кода и допускает использование любого из языков платформы NET, то библиотека шаблонных классов ATL, наоборот, реализована с помощью неуправляемого кода и допускает использование только Visual C++
Вот последовательность действий, с помощью которых можно создать проект пусковой
системы (стартера, или инициирующей программы) Web-службы на основе библиотека
шаблонных классов ATL [Экземпляр решения для этого проекта имеется в каталоге
ATLServerWeb ].
Рис.12.20. Вкладка Overview (Общие сведения) Мастера создания
Web-служб на основе библиотеки шаблонных классов ATL (ATL Web Service Project
Wizard)
Рис. 12.21. Вкладка Project Settings (Параметры проекта) Мастера
создания Web-служб на основе библиотеки шаблонных классов ATL (ATL Web Service
Project Wizard)
Рис. 12.22. Вкладка Server Options (Параметры сервера) Мастера создания Web-служб
на основе библиотеки шаблонных классов ATL (ATL Web Service Project Wizard)
Рис. 12.23. Вкладка Application Options (Параметры приложения) Мастера создания
Web-служб на основе библиотеки шаблонных классов ATL (ATL Web Service Project
Wizard)
Рис. 12.24. Вкладка Developer Support Options (Параметры поддержки
разработчика) Мастера создания Web-служб на основе библиотеки шаблонных классов
ATL (ATL Web Service Project Wizard)
Следующие файлы создаются только в проекте Web-службы на основе библиотеки шаблонных классов ATL. Файл обнаружения (discovery file) содержит информацию, отформатированную по правилам XML. Эта информация используется инструментами создания клиента для обнаружения функционального интерфейса, предоставляемого Web-службой. HTML-файл предоставляет доступ к читабельной (для людей!) информации о возможностях этой Web-службы.
Ну а . srf-файл создается только в проекте на основе ATL Server (ATL Server project), а не в проекте Web-службы на основе библиотеки шаблонных классов ATL (ATL Web Service project), в котором он совсем ни к чему. Дело в том, что доступ к Web-службе выполняется не из Web-броузера, а из пользовательского клиентского приложения.
Единственный файл, который, хотя и имеется в проектах обоих видов, т.е. в проекте на основе ATL Server (ATL Server project) и в проекте Web-службы на основе библиотеки шаблонных классов ATL (ATL Web Service project), но при этом существенно отличается в зависимости от типа проекта, — это .h-файл, реализующий класс обработчика запросов ATL Server. В проектах обоих видов определяется пространство имен. Впрочем, только в проекте Web-службы на основе библиотеки шаблонных классов ATL (ATL Web Service project) пространство имен содержит интерфейс доступа к методам этой службы, а также класс обработчика запросов, имеющий дополнительный атрибут soap_handler. Кроме того, в этом классе есть метод из примера пусковой системы HelloWorld (Здравствуй, мир), к которому применяется атрибут soap_method.