Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Safonov / AMPN_course_20.pptx
Скачиваний:
143
Добавлен:
16.04.2015
Размер:
240.05 Кб
Скачать

Использование Web- сервисов

Запрос без имени метода и параметров

HTML-описание Web-сервиса

Полномочия, методы и протоколы Web- сервиса

Web-сервис возвращает WSDL

HTTP-GET, HTTP-POST, HTTP-SOAP

Запрос с параметром “?WSDL”

Формальное WSDL-описание Web-сервиса

Грамматика на основе XML

Может быть использовано как входные данные для WebServiceUtil.exe

(C) Сафонов В.О. 2012

31

(C) Сафонов В.О. 2009

WSDL 1/2

XML-грамматика, определяющая:

Сервисы и порты, обменивающиеся сообщениями

Связывание

Спецификация протокола и формата данных для сообщения и порта

Расширения SOAP 1.1, HTTP GET/POST, MIME

Публично доступное описание Web- сервиса и его содержания

WSDL-контракт

Ключевые элементы WSDL

Сервис, порт, тип портаОперации и сообщения

(C) Сафонов В.О. 2012

32

(C) Сафонов В.О. 2009

WSDL 2/2

Абстрактная структура WSDL-элементов

service_1

port_B

port_C

service_2

 

 

 

 

 

message

port_A

port_D

message

 

 

 

port

 

 

type

 

(C) Сафонов В.О. 2012

33

(C) Сафонов В.О. 2009

Пример WSDL-файла

<definitions name=“serviceName“>

<import namespace=“http://namespacePath“ location=“http://path/fileName.wsdl“>

<portType name=“serviceNamePortType“> <operation name=“opName“>

<input message=“msgNameInput“ /> <output message=“msgNameOutput“ />

</operation>

</portType>

<binding name=“serviceNameSoapBinding“> <soap:operation soapAction=“http://...“ />

</binding>

<service name=“serviceName“>

<port name=“serviceNamePort“ binding=“bindingName“> <soap:address location="http://..." />

</port>

</service>

</definitions>

(C) Сафонов В.О. 2012

34

(C) Сафонов В.О. 2009

Часть 5: Более развитые Web- сервисы

Управление состояниямиБезопасностьТранзакцииМодель исполнения

Распределенные Web-приложения

(C) Сафонов В.О. 2012

35

(C) Сафонов В.О. 2009

Управление состояниями

Web-сервисы не имеют состояния

Например, может использоваться состояние ASP.NET-сессии

Что такое сессия:

Ограничена логическими границами приложения

Контекст для коммуникации пользователя с сервисом

Функциональность

Идентификация и классификация запроса

Хранение данных в интервалах между запросами

События в ходе сессииОсвобождение данных сессии

Сервер состояния .NET

(C) Сафонов В.О. 2012

36

(C) Сафонов В.О. 2007

Модель безопасности

Меры безопасности необходимыДля предотвращения несанкционированного

доступа к частям Web-сервиса

Запись и хранение конфиденциальных данных пользователя

Конфигурация безопасностиАутентификация, авторизация, имперсонирование, (impersonation)

Web

IIS

ASP.NET

.NET

OS

App

Client

 

 

 

 

 

Безопасность доступа к коду

Прогулка по стеку для проверки полномочий

(C) Сафонов В.О. 2012

37

(C) Сафонов В.О. 2007

Транзакции 1/2

Похожи на ASP.NET Web FormsCOM+ сервисы

COM+ : автоматические транзакции

Atomic, consistent, isolated, durable (ACID)

 

 

SQL Server

Applicatio

Web Service

Message

 

COM+

 

Queuing

 

transaction context

Server

(C) Сафонов В.О. 2012

38

(C) Сафонов В.О. 2007

Транзакции 2/2

TransactionOption – свойство атрибута WebMethod:

[WebMethod(TransactionOption=

TransactionOption.Required)]

Модели транзакций:

Запрещена (Disabled)

Поддержана (Supported)

Не поддержана (NotSupported)

Требуется (Required)

Требуется новая (RequiresNew)

(C) Сафонов В.О. 2012

39

(C) Сафонов В.О. 2007

Модель исполнения

Синхронная

Как любой вызов метода класса

Асинхронная

Шаблоны проектирования для .NET Framework

Метод разбивается на два блока кода:

BeginMethodName

EndMethodName

Клиент должен вызвать Begin и End

Чтобы передать callback-функцию, илиЧтобы использовать класс WaitHandle

(C) Сафонов В.О. 2012

40

(C) Сафонов В.О. 2007

Соседние файлы в папке Safonov