Программирование >>  Программирование с использованием ajax 

1 ... 222 223 224 [ 225 ] 226 227 228 ... 396


ля в нужном городе. Если повезет, вы найдете карту с указанием маршрута до отеля. Найдя домашнюю страницу отеля, нужно перейти на страницу формы заказа и забронировать номер. Затем можно поискать фирму по прокату автомобилей и т.д.

На сегодня поиск подходящих Web-сайтов с помощью поисковых механизмов и последующий переход к этим сайтам сопряжен с огромным объемом работы. Вместо того чтобы проделывать все это, можно было бы создать приложение Домашнее бюро путешествий , использующее Web-службы со сведениями о гостиницах, авиалиниях, фирмах проката автомобилей и т.п. Затем клиенту можно было бы предоставить простой интерфейс, учитывающий все аспекты отпуска, включая заблаговременный заказ билетов на конкретный музыкальный концерт. С помощью своего карманного ПК во время отпуска эти же Web-службы можно применять для получения карты расположения определенных мест отдыха и точной информации о культурных событиях, киносеансах и т.п.

Сценарий использования приложения распространения книг

Web-службы могут также быть полезными для двух компаний, поддерживающих партнерские отношения. Предположим, что распространитель книг хочет развернуть книжные магазины с информацией об имеющихся в наличии книгах. Эту задачу можно выполнить с помощью Web-службы. Можно создать приложение ASP.NET, использующее Web-службу, которое будет предоставлять эту услугу непосредственно пользователям. Второе клиентское приложение этой службы - Windows-приложение книжного магазина, которое вначале проверяет наличие указанных книг на локальном складе, а затем на складе дистрибьютора. Продавец может немедленно отвечать на вопросы о сроках доставки, не обращаясь к другим источникам складской информации в других приложениях.

Типы клиентских приложений

Клиентом Web-службы может быть мощное Windows-приложение, созданное с помощью Windows Forms, или приложение ASP.NET, использующее Web Forms. Использование Web-службы может осуществляться посредством ПК под управлением Windows, системы UNIX или карманного ПК. Каркас .NET Framework позволяет применять Web-службы в любом типе приложений - Windows, Web или консольных.

Интеллектуальный клиент - термин, обозначающий мощное клиентское приложение, которое использует Web-службы. Интеллектуальный клиент может действовать, не будучи подключенным к Web-службе, поскольку он кэширует данные локально. Microsoft Outlook служит примером интеллектуального клиента, поскольку все почтовые данные хранятся на клиентской системе, а при подключении к серверу Exchange они синхронизируются.

Архитектура приложения

Как же в действительности выглядит приложение, использующее Web-службы? Независимо от того, идет речь о разработке приложений ASP .NET или Windows либо приложений для небольших устройств (описанных в представленных в этом разделе сценариях), Web-службы являются важной технологией.

Сценарий возможного использования Web-служб показан на рис. 21.1. Устройства и браузеры подключаются к приложению ASP.NET, разработанному с помощью Web Forms, через Internet. Это приложение ASP.NET использует локальные и удаленные, доступные по сети, Web-службы: Web-службы портала, Web-службы, специфичные для приложения и унифицированные элементарные Web-службы.



Следующий перечень должен помочь в понимании смысла этих типов служб.

□ Web-службы портала. Предоставляют службы различных компаний по одной тематике. Обеспечивают простую в использовании точку доступа к нескольким службам.

□ Web-службы, специфичные для приложения. Созданы для использования отдельным приложением.

□ Унифицированные элементарные Web-службы. Службы, которые легко могут использоваться внутри нескольких приложений.

Представленные на рис. 21.1 Windows-приложения могут использовать Web-службы непосредственно, не обращаясь к приложению ASP.NET.

Устройства

Браузеры

Приложение ASRNET


Локальные Web-службы

Windows-приложения

Службы портала

Web-службы, специфичные для приложения

Унифицированные элементарные Web-службы

Граница Internet

Рис. 21.1. Сценарий возможного использования Web-служб

Архитектура Web-служб

Web-службы используют протокол SOAP, являющийся стандартом, который определен многими компаниями. Огромное преимущество Web-служб - их независимость от платформы. Однако Web-службы - полезная технология не только при необходимости обеспечения взаимодействия нескольких платформ. Они могут быть также очень полезны при разработке приложений .NET как для клиентской, так и для серверной стороны. Преимущество этой технологии в том, что клиент и сервер могут выступать на сцене независимо. Описание службы создается документом WSDL (Web Service Description Language - язык описания Web-служб), который может быть разработан независимо от новых версий Web-службы и, следовательно, клиент не будет нуждаться в изменении.

Подробнее рассмотрим необходимые шаги.

Методы, которые можно вызывать

Документ WSDL содержит информацию о методах, поддерживаемых Web-службой, и способах их вызова, типах параметров, переданных службе и возвращенных службой. Документ WSDL, генерируемый исполняющей средой ASP.NET, приведен на рис. 21.2. Добавление строки ?wsdl в файл .asmx ведет к возврату документа WSDL.



# rmpU oceirw>st:49813/S fv1ce1.i*mx7WSDL - Windows Internet Explorer

10 rmpJIOC lho t48ei3/S 4lce1. r

.l/Scrv4ccl.aaiutmsdl

9 T4K>h

vsrschfma elempntFormD*fault - quaHfted tdrrg >tNdm*>spic >=http: www.wrox.com/webservices*> j element n.jmeReverseStnng <s comiJH.Typ. . <s:sequ nce

<s:element minO<curs=*0 mdxOccurs:i*l name message* type-s:slring </*rsequence> s/s4 omplexType> n/s pj-mf-nt

vb.element n.im> =*ReverseStringResponse > <5сот}ЯехТуре> <s sequence>

<v:e<ement minOtciirs=0* ma*Occurs= l name-RevttrseStringResult type -*s:string* />

<ys sequence> <ys cc>mpk?>lype> </s element > </s schema > <ywsdl types

<v.sdl mbssag*- nam ReverseStringSoapIn

.wsdip.irt nait\*? parameters demerit tnsrRewerseSlrlnq > 7wsdl nussaq.

casdl m*: .s tqe nim*> ReverseStrtngSoapOut> .vvsdl part nam i parameters ement tns:ReverseStringResponse />

</wsdl; message..

o sdl:portType name = ServlcelSoap ovsdl opeiation nanve ReverseString

<wsdl*rtpot message-*tns:RpverseStrmgSodpIn Don* * Local IntrMet Protected Mod : On

Puc. 21.2. Документ WSDL

Обработку этой информации не обязательно выполнять непосредственно. Атрибут WebMethod (мы рассмотрим его позднее) будет приводить к динамической генерации документа WSDL. Добавление Web-ссылки в клиентское приложение средствами Visual Studio вызывает запрос документа WSDL. Этот документ WSDL, в свою очередь, применяется для создания прокеи-клиента с теми же методами и аргументами. Использование этого прокси-клиента обеспечивает приложению то преимущество, что ему приходится только вызывать методы, как они реализованы на сервере, поскольку для выполнения вызова по сети прокси-клиент преобразует их в вызовы SOAP.

Спецификация WSDL поддерживается консорциумом World Wide Web Consortium (W3C). С ней можно ознакомиться на Web-сайте W3C (www.w3 .org/TR/wsdl).

Вызов метода

Чтобы метод можно было вызвать применительно к Web-службе, вызов должен быть преобразован в сообщение SOAP, как это определено в документе WSDL.

Сообщение SOAP - основной элемент обмена данными между клиентом и сервером. Части сообщения SOAP показаны на рис. 21.8. Сообщение SOAP включает в себя конверт SOAP, который, как легко догадаться, заключает всю информацию SOAP в единый блок. Сам конверт SOAP состоит из двух частей: заголовка SOAP и тела SOAP. Необязательный заголовок определяет то, как клиент и сервер должны обрабатывать тело сообщения. Обязательное тело SOAP содержит пересылаемые данные. Обычно информацией внутри тела является вызываемый метод и упорядоченные значения параметров. Сервер SOAP отсылает обратно возвращаемые значения в теле SOAP сообщения SOAP.



1 ... 222 223 224 [ 225 ] 226 227 228 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика