- •Архитектуры и модели программ и знаний
- •Web-программирование для .NET
- •Содержание
- •Часть 1: Обзор
- •История
- •Недостатки традиционных
- •Web-сервисы –
- •Web-сервисы –
- •Распределенные Web- приложения
- •Часть 2: Архитектура
- •Архитектура .NET
- •модель
- •Конфигурация 1/2
- •Конфигурация 2/2
- •Часть 3: Разработка Web- сервисов
- •Основы разработки Web-
- •Инфраструктура Web-сервисов
- •Код и синтаксис
- •Пример .asmx - файла
- •Пространство имен System.Web.Services 1/2
- •Пространство имен System.Web.Services 2/2
- •Публикация Web-сервиса
- •Поиск Web-сервиса (“открытие” – discovering)
- •Утилита Disco.exe
- •Утилита WSDL.exe
- •Часть 4: Использование Web- сервисов
- •Модель приложения
- •Использование Web-
- •Вызов: HTTP-GET и HTTP-
- •Вызов: HTTP-SOAP
- •Использование Web- сервисов
- •WSDL 1/2
- •WSDL 2/2
- •Пример WSDL-файла
- •Часть 5: Более развитые Web- сервисы
- •Управление состояниями
- •Модель безопасности
- •Транзакции 1/2
- •Транзакции 2/2
- •Модель исполнения
- •Использование Web-сервисов через пользовательский интерфейс
- •Пример (.aspx)
- •Пример
- •Технология Silverlight
- •Вопросы и домашнее задание к лекции 20
Использование 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 |
