Знакомство с Windows Communication Foundation

Содержание

Слайд 2

Содержание Проектирование приложений в стиле SOA Обзор архитектуры WCF Использование интерфейсов

Содержание

Проектирование приложений в стиле SOA
Обзор архитектуры WCF
Использование интерфейсов как сервисных

контрактов.
Реализация простого WCF сервиса в Visual Studio 2008
Реализация простого WCF клиента в Visual Studio 2008
Лабораторная работа: Создание простого WCF сервиса.
Слайд 3

Урок 1: Разработка приложений в стиле СОА Преимущества сервис ориентированной архитектуры

Урок 1: Разработка приложений в стиле СОА

Преимущества сервис ориентированной архитектуры
Разработка SOA

приложений
WCF и SOA
WCF в контексте SOA
Слайд 4

История развития методологий Функциональный подход Объектно-ориентированное программирование Компонентно-ориентированное программирование Служебно-ориентированное программирование

История развития методологий

Функциональный подход
Объектно-ориентированное программирование
Компонентно-ориентированное программирование
Служебно-ориентированное программирование

Слайд 5

Служебно-ориентированные приложения Приложение Служба Служба Служба Объекты, компоненты

Служебно-ориентированные приложения

Приложение

Служба

Служба

Служба

Объекты, компоненты

Слайд 6

Преимущества сервис ориентированной архитектуры Взаимодействие базируется на межотраслевых стандартах. Служебно-ориентированные программы

Преимущества сервис ориентированной архитектуры

Взаимодействие базируется на межотраслевых стандартах.

Служебно-ориентированные программы более устойчивы

к ошибкам.

Избавляют разработчика от возни с вторичным кодом и позволяет сосредоточиться на бизнес-логике.

Межтехнологическая совместимость. При написании обычно не нужно думать на какой платформе написан клиент.

Беспроблемный переход через границы( границы безопасности, географические, организационные, временные, транзакционные …) благодаря стандарту, основанному на базе обмена сообщениями

Слайд 7

WCF & SOA WCF поддерживает SOA: Разработчикам нет необходимости изучать WSDL

WCF & SOA

WCF поддерживает SOA:
Разработчикам нет необходимости изучать WSDL
Множества функционала

реализует среда выполнения
Существуют приложения облегчающие создание сервисов и клиентов.
Однако:
То, что вы лишь предоставляете функционал службы через Web сервис не означает, что вы создаете приложение в стиле SOA
SOA помогает проектировать сервисы, а WCF предоставляет возможность реализовывать данные сервисы.
Слайд 8

Каноны и принципы Четкие границы служб. Автономность служб. Службы предоставляют контракты

Каноны и принципы

Четкие границы служб.
Автономность служб.
Службы предоставляют контракты операций и схемы

данных, а не метаданные, специфические для конкретных типов технологий.
Совместимость служб определяется политикой.
Слайд 9

Практические принципы Службы должны быть безопасными. Службы должны оставлять систему в

Практические принципы

Службы должны быть безопасными.
Службы должны оставлять систему в стабильном состоянии.
Службы

должны быть потоково-безопасными.
Службы должны быть надежными.
Службы должны быть устойчивы к ошибкам.
Слайд 10

Необязательные принципы Службы должны быть совместимы Службы должны быть масштабно-инвариантны. Службы

Необязательные принципы

Службы должны быть совместимы
Службы должны быть масштабно-инвариантны.
Службы должны быть доступны.
Службы

должны обладать доступным временем отклика.
Службы должны работать в нормальных временных рамках.
Слайд 11

WCF в контексте SOA Пример: приложение для абстрактного заказчика Уровень языка:

WCF в контексте SOA

Пример: приложение для абстрактного заказчика

Уровень языка:

Объекты заказчика, хранимые

в базе данных
Бизнес правила (например хранимые процедуры)
Workflow
Стандартные типы .NET Framework

Уровень языка:

Объекты заказчика, хранимые в базе данных
Бизнес правила (например хранимые процедуры)
Workflow
Стандартные типы .NET Framework

Уровень службы:

Напоминает бизнес фасад с иными, более дружественными к сервисам типами
Методы службы больше похожи на определенные бизнес функции и скрывают обращение к нескольким функциям уровня языка

Слайд 12

Урок 2: Обзор архитектуры WCF Разработка сервисно-ориентированных приложений с помощью WCF

Урок 2: Обзор архитектуры WCF

Разработка сервисно-ориентированных приложений с помощью WCF
Отправка сообщений

WCF
ABC конечных точек
Структура сервиса
Единая программная модель
Взаимодействие с не WCF приложениями
Слайд 13

Разработка WCF сервис-ориентированных приложений WCF позволяет создавать сервисы единообразно, вне зависимости

Разработка WCF сервис-ориентированных приложений

WCF позволяет создавать сервисы единообразно, вне зависимости от

сетевого протокола взаимодействия
Клиент обращается к сервису для получения определенного функционала
Клиенты и сервисы взаимодействуют посредством обмена сообщениями
Предназначение клиентов и сервисов – не предоставлять друг другу единое адресное пространство
Сервис-ориентированная архитектура – концепция и стиль проектирования сервисов
Слайд 14

Организация взаимодействия в WCF

Организация взаимодействия в WCF

Слайд 15

Архитектура

Архитектура

Слайд 16

Компонентная архитектура Поведение Каналы

Компонентная архитектура

Поведение

Каналы

Слайд 17

Взаимодействия клиента и сервиса Client Service

Взаимодействия клиента и сервиса

Client

Service

Слайд 18

Конечные точки Endpoints Client Service Endpoint Endpoint Endpoint Endpoint

Конечные точки Endpoints

Client

Service

Endpoint

Endpoint

Endpoint

Endpoint

Слайд 19

Адрес, привязка, контракт Service Client Address Где? Contract Что? Binding Как? Endpoint

Адрес, привязка, контракт

Service

Client

Address
Где?

Contract
Что?

Binding
Как?

Endpoint

Слайд 20

ABC конечных точек (Endpoints) A B C По какому адресу искать

ABC конечных точек (Endpoints)

A

B

C

По какому адресу искать сервис

Пример:

Пример:

Пример:

Как взаимодействовать с сервисом

Что

сервис может сделать для меня
Слайд 21

Создание точек взаимодействия Client Service ServiceHost ClientChannel

Создание точек взаимодействия

Client

Service
ServiceHost
ClientChannel

Слайд 22

Структура сервиса

Структура сервиса

Слайд 23

Единая программная модель Множество технологий разработки распределенных приложений Едина программная модель

Единая программная модель

Множество технологий разработки распределенных приложений

Едина программная модель

Слайд 24

Взаимодействие с не WCF приложениями Web сервисы Старые Web сервисы такие

Взаимодействие с не WCF приложениями

Web сервисы
Старые Web сервисы такие как ASP.NET

ASMX сервисы
Другие Web сервисы, поддерживающие протоколы WS-*
POX (plain old xml) сервисы
Слайд 25

Урок 2: Использование интерфейсов как сервисных контрактов Пример простого контракта Атрибут

Урок 2: Использование интерфейсов как сервисных контрактов

Пример простого контракта
Атрибут ServiceContract
Атрибут OperationContract
Данные

и сообщения
Контракты, метаданные и артефакты
Слайд 26

Пример контракта

Пример контракта

Слайд 27

Атрибут ServiceContract

Атрибут ServiceContract

Слайд 28

Атрибут OperationContract

Атрибут OperationContract

Слайд 29

Данные и сообщения CLR типы преобразуются к инфонабору XML при сериализации

Данные и сообщения

CLR типы преобразуются к инфонабору XML при сериализации
WCF позволяет

определить собственный способ сериализации
Состав и структура сообщения должна быть понятна клиенту и серверу
Контракты данных и контракты сообщений предназначены для контроля утверждений
Слайд 30

Контракты, метаданные и артефакты

Контракты, метаданные и артефакты

Слайд 31

Proxy.cs Описываем точки взаимодействия app/web.config Client Service GetMetadata WSDL


Proxy.cs

Описываем точки взаимодействия
app/web.config

Client

Service

GetMetadata

WSDL

Слайд 32

Урок 4: Создание простого WCF сервиса Определение сервисного контракта и его

Урок 4: Создание простого WCF сервиса

Определение сервисного контракта и его реализация

в классе
Хостинг сервиса
Конфигурация сервиса
Демонстрация: создание простого WCF сервиса
Слайд 33

Создание сервиса

Создание сервиса

Слайд 34

Хостинг сервиса

Хостинг сервиса

Слайд 35

Виды хостинг сервиса class HelloHost { static void Main(string[] args) {

Виды хостинг сервиса

class HelloHost
{
static void Main(string[] args)
{
ServiceHost host

=
new ServiceHost(typeof(HelloService));
host.Open();
// Wait until done accepting connections
Console.ReadLine();
host.Close();
}
}
<%@ Service Language=“C#” Class=“HelloService” %>

http://localhost/HelloService/HelloService.svc

Внутри процесса

В IIS

Слайд 36

Конфигурация сервиса

Конфигурация сервиса

Слайд 37

Демонстрация Создание простого WCF сервиса

Демонстрация

Создание простого WCF сервиса

Слайд 38

Занятие 5: Создание простого WCF клиента Импорт метаданных Вызов сервиса используя

Занятие 5: Создание простого WCF клиента

Импорт метаданных
Вызов сервиса используя прокси
Демонстрация: вызов

простого WCF сервиса
Слайд 39

Импорт метаданных

Импорт метаданных

Слайд 40

Вызов сервиса посредством прокси

Вызов сервиса посредством прокси

Слайд 41

Реализация клиента class Client { static void Main() { IHello proxy

Реализация клиента

class Client
{
static void Main()
{
IHello proxy = ChannelFactory.

CreateChannel(“HelloEndpoint”);
string r = proxy.Hello(“Beat”);
Console.WriteLine(r);
}
}



address="http://localhost/HelloService"
binding="basicHttpBinding"
contract="IHello" />


Слайд 42

Демонстрация Вызов WCF сервиса

Демонстрация

Вызов WCF сервиса

Слайд 43

Контракты* Контракты сервисов и операций Дуплексные, С сохранением сессии Однонаправленные, Запрос/Ответ,

Контракты*

Контракты сервисов и операций
Дуплексные, С сохранением сессии
Однонаправленные, Запрос/Ответ, Открытие/Закрытие, Сбои
Версионность протокола
Контракты

сообщений и данных
Схема сообщения
Версионность схемы
Тонкое управление
Действие, Направление, Заголовки, Тело сообщения, Обертки, Кодировка
Слайд 44

Связывание: вид изнутри* Transport IPC MSMQ Custom TCP HTTP Protocol Encoders

Связывание: вид изнутри*

Transport

IPC

MSMQ

Custom

TCP

HTTP

Protocol

Encoders

Binary

Text

Custom

.NET

TX

Custom

Security

RM

Слайд 45

Стандартные наборы T = Transport Security | S = WS-Security | O = One-Way Only

Стандартные наборы

T = Transport Security | S = WS-Security | O

= One-Way Only
Слайд 46

Связывание: взгляд снаружи BasicHttpBinding WsHttpBinding WsDualHttpBinding NetTcpBinding NetNamedPipeBinding NetMsmqBinding NetPeerTcpBinding Интеграция WCF к WCF

Связывание: взгляд снаружи

BasicHttpBinding
WsHttpBinding
WsDualHttpBinding

NetTcpBinding
NetNamedPipeBinding
NetMsmqBinding
NetPeerTcpBinding

Интеграция

WCF к WCF

Слайд 47

Возможности связывания Кодировка Text, Binary, Custom Транспорт TCP, HTTP, Named Pipes,

Возможности связывания

Кодировка
Text, Binary, Custom
Транспорт
TCP, HTTP, Named Pipes, P2P, MSMQ, Свой собственный
Безопасность
Шифрование,

подпись
Аутентификация: X509, User/Pwd, Kerberos, SAML, InfoCard, Свой
Гарантированная доставка
Вне зависимости от выбранного транспорта (по порядку, ровно 1 раз)
Надежная и незаметная проверка доступности
Транзакции
Общие транзакции для “синхронных” операций
Очереди транзакций для “асинхронных” операций
Слайд 48

Подведение итогов В этом модуле рассмотрели: Проектирование приложений в стиле SOA

Подведение итогов

В этом модуле рассмотрели:

Проектирование приложений в стиле SOA
Архитектура WCF
Использование интерфейсов

как сервисных контрактов.
Реализация простого WCF сервиса в Visual Studio 2008
Реализация простого WCF клиента в Visual Studio 2008
Слайд 49

Лабораторная работа Написать простой сервис единственный метод которого возвращает клиенту строку

Лабораторная работа

Написать простой сервис единственный метод которого возвращает клиенту строку HelloWorld
Разместить

сервис в консольном приложении
Предусмотреть возможность получения метаданных сервиса
Реализовать клиента сервиса