SlideShare una empresa de Scribd logo
1 de 32
Создание приложений по технологии
Windows Communications Foundation
2
Содержание
1. Архитектура SOA
2. WCF – реализация SOA от Microsoft
3. Контракты WCF
4. Каналы WCF
5. Связывание
6. Сценарии поведения
7. Сериализация и кодировка
8. Хостинг
9. Пример сервиса
Корпоративные системы
Веб-сервисы и распределенные приложения
3
Сервисно-ориентированная архитектура
• Сервисно-ориентированная архитектура (SOA) – это
архитектура, основанная на использовании сервисов,
определяющая протоколы и методы их взаимодействия, а
также методики реализации тех или иных решений на
основе сервисов
• SOA осуществляет взаимодействие сервисов, оставляя их
независимыми друг от друга
• Сервисы в SOA являются строительными блоками бизнес-
процессов
Корпоративные системы
Веб-сервисы и распределенные приложения
4
Цели Windows Communication Foundation (WCF)
– Microsoft-реализации SOA
Корпоративные системы
Веб-сервисы и распределенные приложения
5
Общая архитектурная схема WCF
Контракты
Исполняющая среда сервисов
Сообщения
Хостинг и активация
Корпоративные системы
Веб-сервисы и распределенные приложения
6
Программная модель WCF
Клиент Сервер
Сценарий
поведения
Сценарий
поведения
Связы-
вание
Контракт
Канал Адрес
Фабрика
Адрес Канал
«Слуша-
тель»
Связы-
вание
Контракт
сообщение
Контракт
Связы-
вание
Адрес
Конечная точка
Уровень сообщений
Корпоративные системы
Веб-сервисы и распределенные приложения
Сценарий
поведения
Сценарий
поведения
7
Контракты WCF
Корпоративные системы
Веб-сервисы и распределенные приложения
8
Контракты сервисов (1)
1. При определении используют атрибуты:
– ServiceContract (для классов и/или
интерфейсов)
– OperationContract (для методов)
1. Определяют направление взаимодействия в сервисах:
– однонаправленное;
– дуплексное
Корпоративные системы
Веб-сервисы и распределенные приложения
9
Контракт сервиса (2)
// Пример описания контракта сервиса
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);
[OperationContract]
CompositeType
GetDataUsingDataContract(CompositeType
composite);
// TODO: Вписать описания операций сервиса
}
Корпоративные системы
Веб-сервисы и распределенные приложения
10
Контракт данных (1)
1. использует атрибуты для класса и его членов:
• DataContract;
• DataMember;
• CollectionDataContract
1. обеспечивает сериализацию данных:
– DataContractSerializer
Корпоративные системы
Веб-сервисы и распределенные приложения
11
Контракт данных (2)
// пример описания контракта данных
[DataContract]
public class CompositeType{
bool boolValue = true;
string stringValue = "Hello “;
[DataMember]
public bool BoolValue{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue{
get { return stringValue; }
set { stringValue = value; }
}
}
Корпоративные системы
Веб-сервисы и распределенные приложения
12
Контракт сообщения (1)
• Использует атрибуты:
– MessageContract;
– MessageHeader;
– MessageBodyMember
• Особенности:
– не более одного входного параметра;
– не более одного возвращаемого значения;
– альтернатива контракту данных;
– не используется совместно с контрактом данных
Корпоративные системы
Веб-сервисы и распределенные приложения
13
Контракт сообщения (2)
// пример контракта сообщения
[MessageContract]
public class ItemMesage
{
[MessageHeader]
public SomeProtocol ProtocolHeader;
[MessageBody]
public Item Content;
}
Корпоративные системы
Веб-сервисы и распределенные приложения
14
Каналы WCF
• служат для подготовки и доставки сообщений
• представляются в виде стека
• делятся на:
– транспортные;
– протокольные
• Возможные конфигурации:
– однонаправленный;
– дуплексный;
– запрос-ответ
• Каналы, фабрики каналов и «слушатели» наследуют
единый интерфейс ICommunicationObject
Корпоративные системы
Веб-сервисы и распределенные приложения
15
Связывание
• Связыванием (binding) – называется
сконфигурированный стек каналов WCF
• Связывания образуют стек каналов с помощью
специальных элементов
• В WCF по умолчанию определены 9 типов
связываний
Корпоративные системы
Веб-сервисы и распределенные приложения
16
СвязываниеНачало
Требуется
интеропера
-бельность?
Локальное?
Уровень
интеропер
абельност
и?
Требуются
очереди?
Требуются
унаследова
нные
MSMQ?
Требуется
сеть «точка-
точка»?
Нужен
дуп-
лексный
режим?
Требуется
выделенн
ая
безопасно
сть?
basicHttpBinding
wsDualHttpBinding
wsFederationHttpB
inding или
ws2007Federa-
tionHttpBinding
netNamedPipeBinding
netPeerTcpBinding
netTcpBinding
msmqIntegration
Binding
netMsmqBinding
wsHttpBinding или
ws2007HttpBinding
Корпоративные системы
Веб-сервисы и распределенные приложения
17
Сценарий поведения (behavior) -
класс WCF, влияющий на поведение системы во время выполнения
• Виды:
– сервисный (service) - работает на уровне сервиса, имеет доступ ко всем
его конечным точкам, отвечает за транзакции, авторизацию, создание
объектов, аудит
– конечных точек (endpoints) - работает на уровне конечных точек,
реализует инспекцию и обработку входящих/исходящих сообщений
– oперационный (operational) - используется на уровне отдельных
операций, управляет сериализацией, транзакционным потоком
– обратного вызова (callback) – аналог сценария сервисов,
используется для элементов, функционирующих на клиенте при
дуплексной коммуникации.
Корпоративные системы
Веб-сервисы и распределенные приложения
18
Сценарии поведения для управления
потоком данных
На клиенте: На сервере:
• Инспекция параметров
• Инспекция сообщений
• Форматирование
сообщений
• Инспекция параметров
• Инспекция сообщений
• Форматирование
сообщений
• Выбор операции (метода)
• Вызов операции (метода)
Корпоративные системы
Веб-сервисы и распределенные приложения
19
Сервисные сценарии поведения
Класс WCF Функциональность
InstanceContext
Mode
Определяет , сколько экземпляров
сервиса будут обслуживать запросы
(возможные значения Single, PerCall,
PerSession)
ConcurrencyMode Определяет число потоков на экземпляр
сервиса (возможные значения: Single,
Reentrant, Multiple)
ServiceMetadata
Behavior
Экспорт и публикация данных о сервисе
Корпоративные системы
Веб-сервисы и распределенные приложения
20
Операционные сценарии поведения:
транзакции
• Виды транзакций:
– многошаговые бизнес-процессы;
– короткие транзакции (быстро завершаются, затрагивают
небольшое число объектов и зависимостей)
• Для определения транзакционного поведения в WCF
необходимо использовать атрибут
[OperationBehavior
(TransactionScopeRequired=true)]
Корпоративные системы
Веб-сервисы и распределенные приложения
21
Сериализация и кодировка в WCF
• Сериализация – процесс преобразования графа объектов
в формат XML Information Set (XML Infoset)
• Кодировка – процесс преобразования сообщения WCF в
поток байт
• Виды кодировки:
– двоичный;
– текстовый;
– Message Transmission Optimization Mechanism (MTOM);
– JavaScript Object Notation;
– Plain-Old-XML (POX)
Корпоративные системы
Веб-сервисы и распределенные приложения
22
Сравнение методов сериализации WCF
Сериализатор Характеристики
DataContract
Serializer
Сериализатор по умолчанию WCF. Основан на
схемах XSD. Может использоваться для
взаимодействия с внешними приложениями
NetDataConract
Serializer
Отличается возможностью добавления
информации о типах CLR. Используется только
внутри конкретного .NET приложения
XmlSerializer Стандартный сериализатор .NET. Совместим со
встроенными типами .NET, позволяет
конфигурировать выходной XML, работает с
Web-сервисами ASP.NET
DataContractJs
onSerializer
Поддерживает нотацию объектов JavaScript.
Корпоративные системы
Веб-сервисы и распределенные приложения
23
Хостинг
• Service Host (хост) – процесс, ответственный за работу
и контекст выполнения сервиса
• В качестве хоста WCF может выступать любой процесс;
• IIS (Internet InformationServices) и WAS (Windows
Process Activation Services) имеют встроенную
поддержку хостинга
• Для любого хоста необходимо реализовать:
– создание объекта класса ServiceHost;
– добавление конечной точки;
– запуск прослушивания сообщений
Корпоративные системы
Веб-сервисы и распределенные приложения
24
Среда хостинга WAS
• WAS (Windows Process Activation Services) - среда
хостинга;
• WAS встроена в Windows Vista и Windows Server 2008;
• WAS позволяет размещать сервисы в гибкой среде,
которая не требует обязательного использования
протокола обмена http
Корпоративные системы
Веб-сервисы и распределенные приложения
25
Схема реализации хостинга в среде WAS
Windows
Process
Activation
Services (WAS)
http
net.tc
p
net.pipe msmq
Process Host
Корпоративные системы
Веб-сервисы и распределенные приложения
26
Пример сервиса WCF (1)
• Описание - сервис, реализующий функции калькулятора.
// Контракт сервиса
[ServiceContract(Namespace=
"http://Microsoft.ServiceModel.Samples")]
public interface ICalculator{
[OperationContract]
double Add(double n1, double n2);
[OperationContract]
double Subtract(double n1, double n2);
[OperationContract]
double Multiply(double n1, double n2);
[OperationContract]
double Divide(double n1, double n2);
}
Корпоративные системы
Веб-сервисы и распределенные приложения
27
Пример сервиса WCF (2)
// Класс, реализующий контракт:
public class CalculatorService : ICalculator{
public double Add(double n1, double n2){
return n1 + n2;
}
public double Subtract(double n1, double n2){
return n1 - n2;
}
public double Multiply(double n1, double n2){
return n1 * n2;
}
public double Divide(double n1, double n2){
return n1 / n2;
}
}
Корпоративные системы
Веб-сервисы и распределенные приложения
28
Пример сервиса WCF (3)
//конфигурационный файл сервера (начало):
<system.serviceModel>
<services>
<service
name="Microsoft.ServiceModel.Samples.CalculatorService"
behaviorConfiguration="CalculatorServiceBehavior">
<!-- ICalculator is exposed at the base address
provided by host:
http://localhost/servicemodelsamples/service.svc -->
<endpoint address=""
binding="wsHttpBinding"
contract="Microsoft.ServiceModel.Samples.ICalculator" />
<!-- the mex endpoint is explosed at
http://localhost/servicemodelsamples/service.svc/mex -->
<endpoint address="mex"
binding="mexHttpBinding"
contract="IMetadataExchange" />
</service>
</services>
Корпоративные системы
Веб-сервисы и распределенные приложения
29
Пример сервиса WCF (4)
//конфигурационный файл сервера (окончание):
<!--For debugging purposes set the
includeExceptionDetailInFaults attribute to true--
>
<behaviors>
<serviceBehaviors>
<behavior name="CalculatorServiceBehavior">
<serviceMetadata httpGetEnabled="True"/>
<serviceDebug
includeExceptionDetailInFaults="False" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Корпоративные системы
Веб-сервисы и распределенные приложения
30
Пример сервиса WCF (5)
Код на клиенте (с сокращениями - начало):
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute
("System.ServiceModel", "3.0.0.0")]
public partial class CalculatorClient:
System.ServiceModel.ClientBase<Microsoft.ServiceModel.Samples.
ICalculator>, Microsoft.ServiceModel.Samples.ICalculator{
public CalculatorClient(){}
public CalculatorClient(string endpointConfigurationName):
base(endpointConfigurationName){}
public CalculatorClient(string endpointConfigurationName,
string remoteAddress):
base(endpointConfigurationName, remoteAddress){}
public CalculatorClient(string endpointConfigurationName,
System.ServiceModel.EndpointAddress remoteAddress):
base(endpointConfigurationName, remoteAddress){}
public CalculatorClient(System.ServiceModel.Channels.Binding
binding,System.ServiceModel.EndpointAddress remoteAddress):
base(binding, remoteAddress){}
Корпоративные системы
Веб-сервисы и распределенные приложения
31
Пример сервиса WCF (5) (продолжение)
public double Add(double n1, double n2)
{
return base.Channel.Add(n1, n2);
}
public double Subtract(double n1, double n2)
{
return base.Channel.Subtract(n1, n2);
}
public double Multiply(double n1, double n2)
{
return base.Channel.Multiply(n1, n2);
}
public double Divide(double n1, double n2)
{
return base.Channel.Divide(n1, n2);
}
}
Корпоративные системы
Веб-сервисы и распределенные приложения
32
Пример сервиса WCF (6)
Код на клиенте (с сокращениями - окончание):
public double Add(double n1, double n2){
return base.Channel.Add(n1, n2);
}
public double Subtract(double n1, double n2){
return base.Channel.Subtract(n1, n2);
}
public double Multiply(double n1, double n2){
return base.Channel.Multiply(n1, n2);
}
public double Divide(double n1, double n2){
return base.Channel.Divide(n1, n2);
}
}
Корпоративные системы
Веб-сервисы и распределенные приложения

Más contenido relacionado

La actualidad más candente

Простой и кросс-платформенный WEB-сервер на .NET
Простой и кросс-платформенный WEB-сервер на .NETПростой и кросс-платформенный WEB-сервер на .NET
Простой и кросс-платформенный WEB-сервер на .NETMikhail Shcherbakov
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5Dima Dzuba
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовSQALab
 
Bloch, bodoff руководство. сервлеты
Bloch, bodoff   руководство. сервлетыBloch, bodoff   руководство. сервлеты
Bloch, bodoff руководство. сервлетыalexey1991
 
Технические особенности Docsvision 5
Технические особенности Docsvision 5Технические особенности Docsvision 5
Технические особенности Docsvision 5Docsvision
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа DocsvisionDocsvision
 
CompanyMedia-Next - Architecture (Vladimir Panov, 26.12.2011)
CompanyMedia-Next - Architecture (Vladimir Panov, 26.12.2011)CompanyMedia-Next - Architecture (Vladimir Panov, 26.12.2011)
CompanyMedia-Next - Architecture (Vladimir Panov, 26.12.2011)Vladimir Panov
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложенийJack Chikovany
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Alexander Babich
 
RoadShow Docsvision: Облачный документооборот для предприятий любого масштаба
RoadShow Docsvision: Облачный документооборот для предприятий любого масштабаRoadShow Docsvision: Облачный документооборот для предприятий любого масштаба
RoadShow Docsvision: Облачный документооборот для предприятий любого масштабаDocsvision
 
Cisco Expressway / VCS версий X8.8-X8.9
Cisco Expressway / VCS версий X8.8-X8.9Cisco Expressway / VCS версий X8.8-X8.9
Cisco Expressway / VCS версий X8.8-X8.9Cisco Russia
 
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...КРОК
 
Web deployment
Web deploymentWeb deployment
Web deploymentGetDev.NET
 

La actualidad más candente (14)

Простой и кросс-платформенный WEB-сервер на .NET
Простой и кросс-платформенный WEB-сервер на .NETПростой и кросс-платформенный WEB-сервер на .NET
Простой и кросс-платформенный WEB-сервер на .NET
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Bloch, bodoff руководство. сервлеты
Bloch, bodoff   руководство. сервлетыBloch, bodoff   руководство. сервлеты
Bloch, bodoff руководство. сервлеты
 
Технические особенности Docsvision 5
Технические особенности Docsvision 5Технические особенности Docsvision 5
Технические особенности Docsvision 5
 
Платформа Docsvision
Платформа DocsvisionПлатформа Docsvision
Платформа Docsvision
 
CompanyMedia-Next - Architecture (Vladimir Panov, 26.12.2011)
CompanyMedia-Next - Architecture (Vladimir Panov, 26.12.2011)CompanyMedia-Next - Architecture (Vladimir Panov, 26.12.2011)
CompanyMedia-Next - Architecture (Vladimir Panov, 26.12.2011)
 
Виртуализация критически важных приложений
Виртуализация критически важных приложенийВиртуализация критически важных приложений
Виртуализация критически важных приложений
 
Microsoft Visual Studio 2010
Microsoft Visual Studio 2010Microsoft Visual Studio 2010
Microsoft Visual Studio 2010
 
RoadShow Docsvision: Облачный документооборот для предприятий любого масштаба
RoadShow Docsvision: Облачный документооборот для предприятий любого масштабаRoadShow Docsvision: Облачный документооборот для предприятий любого масштаба
RoadShow Docsvision: Облачный документооборот для предприятий любого масштаба
 
Cisco Expressway / VCS версий X8.8-X8.9
Cisco Expressway / VCS версий X8.8-X8.9Cisco Expressway / VCS версий X8.8-X8.9
Cisco Expressway / VCS версий X8.8-X8.9
 
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
Система автоматизации бизнес-процессов на платформе K2 blackpearl в компании ...
 
Web deployment
Web deploymentWeb deployment
Web deployment
 

Destacado

all-the-things
all-the-thingsall-the-things
all-the-thingsyipweng
 
позитив
позитивпозитив
позитивЛИ
 
13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субдKewpaN
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бдKewpaN
 
MF Long Report final
MF Long Report finalMF Long Report final
MF Long Report finalBuneka Saif
 
Bullies
BulliesBullies
BulliesL3154
 
Juliocolmenarezsaiae
JuliocolmenarezsaiaeJuliocolmenarezsaiae
Juliocolmenarezsaiaejulioccr90
 
building bulletin
building bulletinbuilding bulletin
building bulletinNarendra D
 
Birmingham Supplier Briefing
Birmingham Supplier Briefing Birmingham Supplier Briefing
Birmingham Supplier Briefing Socitm Briefings
 
3 средства автоматизации проектирования корпоративных приложений
3 средства автоматизации проектирования корпоративных приложений3 средства автоматизации проектирования корпоративных приложений
3 средства автоматизации проектирования корпоративных приложенийKewpaN
 
Public Speaking: Do’s and Don’ts
Public Speaking: Do’s and Don’tsPublic Speaking: Do’s and Don’ts
Public Speaking: Do’s and Don’tsPresentationDeck.com
 
управление энергоэффективностью
управление энергоэффективностью управление энергоэффективностью
управление энергоэффективностью lavincifitness2
 

Destacado (18)

all-the-things
all-the-thingsall-the-things
all-the-things
 
Acro Book
Acro BookAcro Book
Acro Book
 
позитив
позитивпозитив
позитив
 
SPEC EXAMPLES
SPEC EXAMPLESSPEC EXAMPLES
SPEC EXAMPLES
 
13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд13 расширенные возможности корпоративных приложений, основы субд
13 расширенные возможности корпоративных приложений, основы субд
 
2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд2 виды и особенности клиент серверных систем с бд
2 виды и особенности клиент серверных систем с бд
 
MF Long Report final
MF Long Report finalMF Long Report final
MF Long Report final
 
Bullies
BulliesBullies
Bullies
 
Juliocolmenarezsaiae
JuliocolmenarezsaiaeJuliocolmenarezsaiae
Juliocolmenarezsaiae
 
Resumen de Trastornos Inmunologicos.
Resumen de Trastornos Inmunologicos.Resumen de Trastornos Inmunologicos.
Resumen de Trastornos Inmunologicos.
 
building bulletin
building bulletinbuilding bulletin
building bulletin
 
Birmingham Supplier Briefing
Birmingham Supplier Briefing Birmingham Supplier Briefing
Birmingham Supplier Briefing
 
Syllabus Assignment
Syllabus AssignmentSyllabus Assignment
Syllabus Assignment
 
Mis valores
Mis valoresMis valores
Mis valores
 
3 средства автоматизации проектирования корпоративных приложений
3 средства автоматизации проектирования корпоративных приложений3 средства автоматизации проектирования корпоративных приложений
3 средства автоматизации проектирования корпоративных приложений
 
Public Speaking: Do’s and Don’ts
Public Speaking: Do’s and Don’tsPublic Speaking: Do’s and Don’ts
Public Speaking: Do’s and Don’ts
 
управление энергоэффективностью
управление энергоэффективностью управление энергоэффективностью
управление энергоэффективностью
 
blending station
blending stationblending station
blending station
 

Similar a 8 создание приложений по технологии windows communications foundation

C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.Igor Shkulipa
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисовKewpaN
 
Автоматизация тестирования WCF сервисов
Автоматизация тестирования WCF сервисовАвтоматизация тестирования WCF сервисов
Автоматизация тестирования WCF сервисовSQALab
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFPavel Tsukanov
 
Windows Server 2008 семинар 15.05
Windows Server 2008   семинар 15.05Windows Server 2008   семинар 15.05
Windows Server 2008 семинар 15.05Alexander Babich
 
Интеграция. Взаимодействие между региональными банками
Интеграция. Взаимодействие между региональными банкамиИнтеграция. Взаимодействие между региональными банками
Интеграция. Взаимодействие между региональными банкамиКРОК
 
Windows communication foundation 4
Windows communication foundation 4Windows communication foundation 4
Windows communication foundation 4GetDev.NET
 
Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...adam93
 
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Cisco Russia
 
Migration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service FabricMigration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service FabricGlobalLogic Ukraine
 
Услуга контактный центр по запросу от CTI
Услуга контактный центр по запросу от CTIУслуга контактный центр по запросу от CTI
Услуга контактный центр по запросу от CTICTI2014
 
Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоARCCN
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureAndrew Mayorov
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"Fwdays
 
Инфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформыИнфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформыCisco Russia
 
Обзор технологии Cisco Unified Presence и Cisco IM and Presence
Обзор технологии Cisco Unified Presence и Cisco IM and PresenceОбзор технологии Cisco Unified Presence и Cisco IM and Presence
Обзор технологии Cisco Unified Presence и Cisco IM and PresenceCisco Russia
 
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWHCodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWHCodeFest
 
Интеграция. Перевыпуск банковских карт
Интеграция. Перевыпуск банковских картИнтеграция. Перевыпуск банковских карт
Интеграция. Перевыпуск банковских картКРОК
 

Similar a 8 создание приложений по технологии windows communications foundation (20)

C# Web. Занятие 03.
C# Web. Занятие 03.C# Web. Занятие 03.
C# Web. Занятие 03.
 
7 создание веб сервисов
7 создание веб сервисов7 создание веб сервисов
7 создание веб сервисов
 
Автоматизация тестирования WCF сервисов
Автоматизация тестирования WCF сервисовАвтоматизация тестирования WCF сервисов
Автоматизация тестирования WCF сервисов
 
Реализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCFРеализация REST и SOAP сервисов с помощью WCF
Реализация REST и SOAP сервисов с помощью WCF
 
Windows Server 2008 семинар 15.05
Windows Server 2008   семинар 15.05Windows Server 2008   семинар 15.05
Windows Server 2008 семинар 15.05
 
Web servers
Web servers Web servers
Web servers
 
Интеграция. Взаимодействие между региональными банками
Интеграция. Взаимодействие между региональными банкамиИнтеграция. Взаимодействие между региональными банками
Интеграция. Взаимодействие между региональными банками
 
Windows communication foundation 4
Windows communication foundation 4Windows communication foundation 4
Windows communication foundation 4
 
Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...Проектирование и особенности проектирования клиент серверных экономических ин...
Проектирование и особенности проектирования клиент серверных экономических ин...
 
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
Сетевая инфраструктура ЦОД, ориентированная на приложения и коммутаторы Nexus...
 
Migration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service FabricMigration of Cloud Services to Microsoft Azure Service Fabric
Migration of Cloud Services to Microsoft Azure Service Fabric
 
Услуга контактный центр по запросу от CTI
Услуга контактный центр по запросу от CTIУслуга контактный центр по запросу от CTI
Услуга контактный центр по запросу от CTI
 
Решения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущегоРешения Brocade для построения IP сетей будущего
Решения Brocade для построения IP сетей будущего
 
Roman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows AzureRoman Zdebskiy - Windows Azure
Roman Zdebskiy - Windows Azure
 
Андрей Завадский "Бессерверная архитектура"
 Андрей Завадский "Бессерверная архитектура" Андрей Завадский "Бессерверная архитектура"
Андрей Завадский "Бессерверная архитектура"
 
Инфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформыИнфраструктура Cisco для построения облачной платформы
Инфраструктура Cisco для построения облачной платформы
 
Обзор технологии Cisco Unified Presence и Cisco IM and Presence
Обзор технологии Cisco Unified Presence и Cisco IM and PresenceОбзор технологии Cisco Unified Presence и Cisco IM and Presence
Обзор технологии Cisco Unified Presence и Cisco IM and Presence
 
Wcf Part 2
Wcf Part 2Wcf Part 2
Wcf Part 2
 
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWHCodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
CodeFest 2011. Ширшаков Д. — Как подружить ежа с ужом или другой взгляд на DWH
 
Интеграция. Перевыпуск банковских карт
Интеграция. Перевыпуск банковских картИнтеграция. Перевыпуск банковских карт
Интеграция. Перевыпуск банковских карт
 

Más de KewpaN

14 расширенные возможности корпоративных субд
14 расширенные возможности корпоративных субд14 расширенные возможности корпоративных субд
14 расширенные возможности корпоративных субдKewpaN
 
12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложений12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложенийKewpaN
 
11 платформа microsoft office расширенные возможности
11 платформа microsoft office   расширенные возможности11 платформа microsoft office   расширенные возможности
11 платформа microsoft office расширенные возможностиKewpaN
 
9 структура компонентных приложений
9 структура компонентных приложений9 структура компонентных приложений
9 структура компонентных приложенийKewpaN
 
5 создание графического интерфейса пользователя
5 создание графического интерфейса пользователя5 создание графического интерфейса пользователя
5 создание графического интерфейса пользователяKewpaN
 
1 открытые системы. клиент и сервер
1 открытые системы. клиент и сервер1 открытые системы. клиент и сервер
1 открытые системы. клиент и серверKewpaN
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологииKewpaN
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологииKewpaN
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологииKewpaN
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологииKewpaN
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологииKewpaN
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологииKewpaN
 

Más de KewpaN (12)

14 расширенные возможности корпоративных субд
14 расширенные возможности корпоративных субд14 расширенные возможности корпоративных субд
14 расширенные возможности корпоративных субд
 
12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложений12 основные возможности корпоративных приложений
12 основные возможности корпоративных приложений
 
11 платформа microsoft office расширенные возможности
11 платформа microsoft office   расширенные возможности11 платформа microsoft office   расширенные возможности
11 платформа microsoft office расширенные возможности
 
9 структура компонентных приложений
9 структура компонентных приложений9 структура компонентных приложений
9 структура компонентных приложений
 
5 создание графического интерфейса пользователя
5 создание графического интерфейса пользователя5 создание графического интерфейса пользователя
5 создание графического интерфейса пользователя
 
1 открытые системы. клиент и сервер
1 открытые системы. клиент и сервер1 открытые системы. клиент и сервер
1 открытые системы. клиент и сервер
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологии
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологии
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологии
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологии
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологии
 
0 wiki технологии
0 wiki технологии0 wiki технологии
0 wiki технологии
 

8 создание приложений по технологии windows communications foundation

  • 1. Создание приложений по технологии Windows Communications Foundation
  • 2. 2 Содержание 1. Архитектура SOA 2. WCF – реализация SOA от Microsoft 3. Контракты WCF 4. Каналы WCF 5. Связывание 6. Сценарии поведения 7. Сериализация и кодировка 8. Хостинг 9. Пример сервиса Корпоративные системы Веб-сервисы и распределенные приложения
  • 3. 3 Сервисно-ориентированная архитектура • Сервисно-ориентированная архитектура (SOA) – это архитектура, основанная на использовании сервисов, определяющая протоколы и методы их взаимодействия, а также методики реализации тех или иных решений на основе сервисов • SOA осуществляет взаимодействие сервисов, оставляя их независимыми друг от друга • Сервисы в SOA являются строительными блоками бизнес- процессов Корпоративные системы Веб-сервисы и распределенные приложения
  • 4. 4 Цели Windows Communication Foundation (WCF) – Microsoft-реализации SOA Корпоративные системы Веб-сервисы и распределенные приложения
  • 5. 5 Общая архитектурная схема WCF Контракты Исполняющая среда сервисов Сообщения Хостинг и активация Корпоративные системы Веб-сервисы и распределенные приложения
  • 6. 6 Программная модель WCF Клиент Сервер Сценарий поведения Сценарий поведения Связы- вание Контракт Канал Адрес Фабрика Адрес Канал «Слуша- тель» Связы- вание Контракт сообщение Контракт Связы- вание Адрес Конечная точка Уровень сообщений Корпоративные системы Веб-сервисы и распределенные приложения Сценарий поведения Сценарий поведения
  • 8. 8 Контракты сервисов (1) 1. При определении используют атрибуты: – ServiceContract (для классов и/или интерфейсов) – OperationContract (для методов) 1. Определяют направление взаимодействия в сервисах: – однонаправленное; – дуплексное Корпоративные системы Веб-сервисы и распределенные приложения
  • 9. 9 Контракт сервиса (2) // Пример описания контракта сервиса [ServiceContract] public interface IService1 { [OperationContract] string GetData(int value); [OperationContract] CompositeType GetDataUsingDataContract(CompositeType composite); // TODO: Вписать описания операций сервиса } Корпоративные системы Веб-сервисы и распределенные приложения
  • 10. 10 Контракт данных (1) 1. использует атрибуты для класса и его членов: • DataContract; • DataMember; • CollectionDataContract 1. обеспечивает сериализацию данных: – DataContractSerializer Корпоративные системы Веб-сервисы и распределенные приложения
  • 11. 11 Контракт данных (2) // пример описания контракта данных [DataContract] public class CompositeType{ bool boolValue = true; string stringValue = "Hello “; [DataMember] public bool BoolValue{ get { return boolValue; } set { boolValue = value; } } [DataMember] public string StringValue{ get { return stringValue; } set { stringValue = value; } } } Корпоративные системы Веб-сервисы и распределенные приложения
  • 12. 12 Контракт сообщения (1) • Использует атрибуты: – MessageContract; – MessageHeader; – MessageBodyMember • Особенности: – не более одного входного параметра; – не более одного возвращаемого значения; – альтернатива контракту данных; – не используется совместно с контрактом данных Корпоративные системы Веб-сервисы и распределенные приложения
  • 13. 13 Контракт сообщения (2) // пример контракта сообщения [MessageContract] public class ItemMesage { [MessageHeader] public SomeProtocol ProtocolHeader; [MessageBody] public Item Content; } Корпоративные системы Веб-сервисы и распределенные приложения
  • 14. 14 Каналы WCF • служат для подготовки и доставки сообщений • представляются в виде стека • делятся на: – транспортные; – протокольные • Возможные конфигурации: – однонаправленный; – дуплексный; – запрос-ответ • Каналы, фабрики каналов и «слушатели» наследуют единый интерфейс ICommunicationObject Корпоративные системы Веб-сервисы и распределенные приложения
  • 15. 15 Связывание • Связыванием (binding) – называется сконфигурированный стек каналов WCF • Связывания образуют стек каналов с помощью специальных элементов • В WCF по умолчанию определены 9 типов связываний Корпоративные системы Веб-сервисы и распределенные приложения
  • 17. 17 Сценарий поведения (behavior) - класс WCF, влияющий на поведение системы во время выполнения • Виды: – сервисный (service) - работает на уровне сервиса, имеет доступ ко всем его конечным точкам, отвечает за транзакции, авторизацию, создание объектов, аудит – конечных точек (endpoints) - работает на уровне конечных точек, реализует инспекцию и обработку входящих/исходящих сообщений – oперационный (operational) - используется на уровне отдельных операций, управляет сериализацией, транзакционным потоком – обратного вызова (callback) – аналог сценария сервисов, используется для элементов, функционирующих на клиенте при дуплексной коммуникации. Корпоративные системы Веб-сервисы и распределенные приложения
  • 18. 18 Сценарии поведения для управления потоком данных На клиенте: На сервере: • Инспекция параметров • Инспекция сообщений • Форматирование сообщений • Инспекция параметров • Инспекция сообщений • Форматирование сообщений • Выбор операции (метода) • Вызов операции (метода) Корпоративные системы Веб-сервисы и распределенные приложения
  • 19. 19 Сервисные сценарии поведения Класс WCF Функциональность InstanceContext Mode Определяет , сколько экземпляров сервиса будут обслуживать запросы (возможные значения Single, PerCall, PerSession) ConcurrencyMode Определяет число потоков на экземпляр сервиса (возможные значения: Single, Reentrant, Multiple) ServiceMetadata Behavior Экспорт и публикация данных о сервисе Корпоративные системы Веб-сервисы и распределенные приложения
  • 20. 20 Операционные сценарии поведения: транзакции • Виды транзакций: – многошаговые бизнес-процессы; – короткие транзакции (быстро завершаются, затрагивают небольшое число объектов и зависимостей) • Для определения транзакционного поведения в WCF необходимо использовать атрибут [OperationBehavior (TransactionScopeRequired=true)] Корпоративные системы Веб-сервисы и распределенные приложения
  • 21. 21 Сериализация и кодировка в WCF • Сериализация – процесс преобразования графа объектов в формат XML Information Set (XML Infoset) • Кодировка – процесс преобразования сообщения WCF в поток байт • Виды кодировки: – двоичный; – текстовый; – Message Transmission Optimization Mechanism (MTOM); – JavaScript Object Notation; – Plain-Old-XML (POX) Корпоративные системы Веб-сервисы и распределенные приложения
  • 22. 22 Сравнение методов сериализации WCF Сериализатор Характеристики DataContract Serializer Сериализатор по умолчанию WCF. Основан на схемах XSD. Может использоваться для взаимодействия с внешними приложениями NetDataConract Serializer Отличается возможностью добавления информации о типах CLR. Используется только внутри конкретного .NET приложения XmlSerializer Стандартный сериализатор .NET. Совместим со встроенными типами .NET, позволяет конфигурировать выходной XML, работает с Web-сервисами ASP.NET DataContractJs onSerializer Поддерживает нотацию объектов JavaScript. Корпоративные системы Веб-сервисы и распределенные приложения
  • 23. 23 Хостинг • Service Host (хост) – процесс, ответственный за работу и контекст выполнения сервиса • В качестве хоста WCF может выступать любой процесс; • IIS (Internet InformationServices) и WAS (Windows Process Activation Services) имеют встроенную поддержку хостинга • Для любого хоста необходимо реализовать: – создание объекта класса ServiceHost; – добавление конечной точки; – запуск прослушивания сообщений Корпоративные системы Веб-сервисы и распределенные приложения
  • 24. 24 Среда хостинга WAS • WAS (Windows Process Activation Services) - среда хостинга; • WAS встроена в Windows Vista и Windows Server 2008; • WAS позволяет размещать сервисы в гибкой среде, которая не требует обязательного использования протокола обмена http Корпоративные системы Веб-сервисы и распределенные приложения
  • 25. 25 Схема реализации хостинга в среде WAS Windows Process Activation Services (WAS) http net.tc p net.pipe msmq Process Host Корпоративные системы Веб-сервисы и распределенные приложения
  • 26. 26 Пример сервиса WCF (1) • Описание - сервис, реализующий функции калькулятора. // Контракт сервиса [ServiceContract(Namespace= "http://Microsoft.ServiceModel.Samples")] public interface ICalculator{ [OperationContract] double Add(double n1, double n2); [OperationContract] double Subtract(double n1, double n2); [OperationContract] double Multiply(double n1, double n2); [OperationContract] double Divide(double n1, double n2); } Корпоративные системы Веб-сервисы и распределенные приложения
  • 27. 27 Пример сервиса WCF (2) // Класс, реализующий контракт: public class CalculatorService : ICalculator{ public double Add(double n1, double n2){ return n1 + n2; } public double Subtract(double n1, double n2){ return n1 - n2; } public double Multiply(double n1, double n2){ return n1 * n2; } public double Divide(double n1, double n2){ return n1 / n2; } } Корпоративные системы Веб-сервисы и распределенные приложения
  • 28. 28 Пример сервиса WCF (3) //конфигурационный файл сервера (начало): <system.serviceModel> <services> <service name="Microsoft.ServiceModel.Samples.CalculatorService" behaviorConfiguration="CalculatorServiceBehavior"> <!-- ICalculator is exposed at the base address provided by host: http://localhost/servicemodelsamples/service.svc --> <endpoint address="" binding="wsHttpBinding" contract="Microsoft.ServiceModel.Samples.ICalculator" /> <!-- the mex endpoint is explosed at http://localhost/servicemodelsamples/service.svc/mex --> <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> </service> </services> Корпоративные системы Веб-сервисы и распределенные приложения
  • 29. 29 Пример сервиса WCF (4) //конфигурационный файл сервера (окончание): <!--For debugging purposes set the includeExceptionDetailInFaults attribute to true-- > <behaviors> <serviceBehaviors> <behavior name="CalculatorServiceBehavior"> <serviceMetadata httpGetEnabled="True"/> <serviceDebug includeExceptionDetailInFaults="False" /> </behavior> </serviceBehaviors> </behaviors> </system.serviceModel> Корпоративные системы Веб-сервисы и распределенные приложения
  • 30. 30 Пример сервиса WCF (5) Код на клиенте (с сокращениями - начало): [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", "3.0.0.0")] public partial class CalculatorClient: System.ServiceModel.ClientBase<Microsoft.ServiceModel.Samples. ICalculator>, Microsoft.ServiceModel.Samples.ICalculator{ public CalculatorClient(){} public CalculatorClient(string endpointConfigurationName): base(endpointConfigurationName){} public CalculatorClient(string endpointConfigurationName, string remoteAddress): base(endpointConfigurationName, remoteAddress){} public CalculatorClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress): base(endpointConfigurationName, remoteAddress){} public CalculatorClient(System.ServiceModel.Channels.Binding binding,System.ServiceModel.EndpointAddress remoteAddress): base(binding, remoteAddress){} Корпоративные системы Веб-сервисы и распределенные приложения
  • 31. 31 Пример сервиса WCF (5) (продолжение) public double Add(double n1, double n2) { return base.Channel.Add(n1, n2); } public double Subtract(double n1, double n2) { return base.Channel.Subtract(n1, n2); } public double Multiply(double n1, double n2) { return base.Channel.Multiply(n1, n2); } public double Divide(double n1, double n2) { return base.Channel.Divide(n1, n2); } } Корпоративные системы Веб-сервисы и распределенные приложения
  • 32. 32 Пример сервиса WCF (6) Код на клиенте (с сокращениями - окончание): public double Add(double n1, double n2){ return base.Channel.Add(n1, n2); } public double Subtract(double n1, double n2){ return base.Channel.Subtract(n1, n2); } public double Multiply(double n1, double n2){ return base.Channel.Multiply(n1, n2); } public double Divide(double n1, double n2){ return base.Channel.Divide(n1, n2); } } Корпоративные системы Веб-сервисы и распределенные приложения