Architecture Net

Web-служба Hotel Broker (Брокер гостиницы)


Пришло время сделать следующий шаг на пути изучения конкретного примера Теперь на основе компонентов Customer (Клиент) и Hotel (Гостиница) Web-службы Hotel Broker (Брокер гостиницы) мы создадим самостоятельные Web-службы Основная Web-служба находится в подкаталоге HotelBroker-WebService данной главы Клиенты Acme будут ее использовать для того, чтобы забронировать место в гостинице Она также будет использоваться в административных целях, связанных с Hotel Broker (Брокер гостиницы) Обсуждаемые Web-службы расположены по следующим адресам

  • http //localhost/CustomerWebService/CustomerWebService asmx
  • http //localhost/HotelWebService/HotelWebService asmx
  • На рис 11.9 и 11.10 показаны окна броузера, в которых содержится информация о Web-службах CustomerWebService и HotelWebService соответственно
    Сами классы-заместители содержатся в сборке proxy.dll Два командных файла, с помощью которых можно создать классы-заместители и построить данную сборку, находятся в подкаталоге WebServiceProxies, который относится к этому примеру


    Рис 11.9 Информация о Web-службе CustomerWebService


    Рис 11.10 Информация о Web-службе HotelWebService



    Рис 11.11 AcmeGui обращается к Web-службе

    В подкаталоге AcmeWeb2, относящемся к рассматриваемому конкретному примеру, находится версия программы AcmeLib, которая вместо сборок Customer (Клиент) и Hotel (Гостиница) использует сборку proxies (заместители). Все ссылки на компоненты Customer (Клиент) и Hotel (Гостиница), содержавшиеся на Web-странице системы бронирования Acme, а также программы, расположенные в подкаталоге HotelBro-kerAdministration, были удалены. На рис. 11.12 показано как выглядит Web-служба в окне Internet Explorer.

    CompEbook.ru Железо, дизайн, обучение и другие


    В случае Web-службы Hotel Broker (Брокер гостиницы), сборка Hotel (Гостиница) была модифицирована таким образом, что теперь она сама играет роль Web-службы. В файле HotelWebService . asmx должна присутствовать ссылка только на класс Hotel-Broker, который реализован в сборке Hotel (Гостиница).

    <%@ WebService class = "01.NetCpp.Acme.HotelBrokerWebService, Hotel" %>

    В данном примере код ничем не отличается от кода предыдущей версии компонента, за одним исключением. В коде дополнительно присутствуют атрибуты, которые указывают, что его нужно преобразовать в Web-службу. Имена Web-служб должны быть уникальными. Поэтому, чтобы присвоить уникальное имя одному из перегружаемых методов GetHotels, следует использовать свойство MessageName атрибута WebMethod. Ниже приведен код, который содержится в файле Hotel.h, расположенном в каталоге CaseStudy\HotelBrokerWebServiсе.

    [WebMethod(MessageName="GetAllHotels")]
    [Xmllnclude(_typeof(HotelListltem))]
    ArrayList *GetHotels()
    {
    ...
    }

    CompEbook.ru Железо, дизайн, обучение и другие



    Содержание раздела