Культура организации
<<  Как делать на компьютере 2003 Учебный курс Технологии и средства разработки корпоративных систем  >>
Учебный курс Технологии и средства разработки корпоративных систем
Учебный курс Технологии и средства разработки корпоративных систем
Содержание
Содержание
Сервисно-ориентированная архитектура
Сервисно-ориентированная архитектура
Цели Windows Communication Foundation (WCF) – Microsoft-реализации SOA
Цели Windows Communication Foundation (WCF) – Microsoft-реализации SOA
Общая архитектурная схема WCF
Общая архитектурная схема WCF
Программная модель WCF
Программная модель WCF
Контракты WCF
Контракты WCF
Контракты сервисов (1)
Контракты сервисов (1)
Контракт сервиса (2)
Контракт сервиса (2)
Контракт данных (1)
Контракт данных (1)
Контракт данных (2)
Контракт данных (2)
Контракт сообщения (1)
Контракт сообщения (1)
Контракт сообщения (2)
Контракт сообщения (2)
Каналы WCF
Каналы WCF
Связывание
Связывание
Связывание
Связывание
Сценарий поведения (behavior) -
Сценарий поведения (behavior) -
Сценарии поведения для управления потоком данных
Сценарии поведения для управления потоком данных
Сервисные сценарии поведения
Сервисные сценарии поведения
Операционные сценарии поведения: транзакции
Операционные сценарии поведения: транзакции
Сериализация и кодировка в WCF
Сериализация и кодировка в WCF
Сравнение методов сериализации WCF
Сравнение методов сериализации WCF
Хостинг
Хостинг
Среда хостинга WAS
Среда хостинга WAS
Схема реализации хостинга в среде WAS
Схема реализации хостинга в среде WAS
Пример сервиса WCF (1)
Пример сервиса WCF (1)
Пример сервиса WCF (2)
Пример сервиса WCF (2)
Пример сервиса WCF (3)
Пример сервиса WCF (3)
Пример сервиса WCF (4)
Пример сервиса WCF (4)
Пример сервиса WCF (5)
Пример сервиса WCF (5)
Пример сервиса WCF (5) (продолжение)
Пример сервиса WCF (5) (продолжение)
Пример сервиса WCF (6)
Пример сервиса WCF (6)
Библиография (1)
Библиография (1)
Библиография (2) Дополнительная литература: Соммервилл И. Инженерия
Библиография (2) Дополнительная литература: Соммервилл И. Инженерия
Библиография (3) Дополнительная литература: Жизненный цикл
Библиография (3) Дополнительная литература: Жизненный цикл
Задания для самостоятельной работы Реализовать Web-сервис, который… 1
Задания для самостоятельной работы Реализовать Web-сервис, который… 1
Благодарю за внимание
Благодарю за внимание

Презентация на тему: «Создание приложений по технологии Windows Communications Foundation». Автор: Zykov. Файл: «Создание приложений по технологии Windows Communications Foundation.ppt». Размер zip-архива: 548 КБ.

Создание приложений по технологии Windows Communications Foundation

содержание презентации «Создание приложений по технологии Windows Communications Foundation.ppt»
СлайдТекст
1 Учебный курс Технологии и средства разработки корпоративных систем

Учебный курс Технологии и средства разработки корпоративных систем

Лекция 8 Создание приложений по технологии Windows Communications Foundation Лекции читает кандидат технических наук, доцент Зыков Сергей Викторович

2 Содержание

Содержание

Архитектура SOA WCF – реализация SOA от Microsoft Контракты WCF Каналы WCF Связывание Сценарии поведения Сериализация и кодировка Хостинг Пример сервиса

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

2

3 Сервисно-ориентированная архитектура

Сервисно-ориентированная архитектура

Сервисно-ориентированная архитектура (SOA) – это архитектура, основанная на использовании сервисов, определяющая протоколы и методы их взаимодействия, а также методики реализации тех или иных решений на основе сервисов SOA осуществляет взаимодействие сервисов, оставляя их независимыми друг от друга Сервисы в SOA являются строительными блоками бизнес- процессов

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

3

4 Цели Windows Communication Foundation (WCF) – Microsoft-реализации SOA

Цели Windows Communication Foundation (WCF) – Microsoft-реализации SOA

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

4

5 Общая архитектурная схема WCF

Общая архитектурная схема WCF

Контракты

Исполняющая среда сервисов

Сообщения

Хостинг и активация

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

5

6 Программная модель WCF

Программная модель WCF

Сервер

Клиент

Уровень сообщений

Конечная точка

Корпоративные системы Веб-сервисы и распределенные приложения

Адрес

Связы-вание

Контракт

Сценарий поведения

Сценарий поведения

Сценарий поведения

Сценарий поведения

Контракт

Связы-вание

Связы-вание

Контракт

Фабрика

«Слуша-тель»

Канал

Адрес

Адрес

Канал

Интуит, 2009

6

Сообщение

7 Контракты WCF

Контракты WCF

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

7

8 Контракты сервисов (1)

Контракты сервисов (1)

При определении используют атрибуты: ServiceContract (для классов и/или интерфейсов) OperationContract (для методов) Определяют направление взаимодействия в сервисах: однонаправленное; дуплексное

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

8

9 Контракт сервиса (2)

Контракт сервиса (2)

// Пример описания контракта сервиса [ServiceContract] public interface IService1 { [OperationContract] string GetData(int value); [OperationContract] CompositeType GetDataUsingDataContract(CompositeType composite); // TODO: Вписать описания операций сервиса }

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

9

10 Контракт данных (1)

Контракт данных (1)

Использует атрибуты для класса и его членов: datacontract; datamember; collectiondatacontract обеспечивает сериализацию данных: datacontractserializer

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

10

11 Контракт данных (2)

Контракт данных (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; } } }

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

11

12 Контракт сообщения (1)

Контракт сообщения (1)

Использует атрибуты: MessageContract; MessageHeader; MessageBodyMember Особенности: не более одного входного параметра; не более одного возвращаемого значения; альтернатива контракту данных; не используется совместно с контрактом данных

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

12

13 Контракт сообщения (2)

Контракт сообщения (2)

// Пример контракта сообщения [messagecontract] public class itemmesage { [messageheader] public someprotocol protocolheader; [messagebody] public item content; }

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

13

14 Каналы WCF

Каналы WCF

служат для подготовки и доставки сообщений представляются в виде стека делятся на: транспортные; протокольные Возможные конфигурации: однонаправленный; дуплексный; запрос-ответ Каналы, фабрики каналов и «слушатели» наследуют единый интерфейс ICommunicationObject

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

14

15 Связывание

Связывание

Связыванием (binding) – называется сконфигурированный стек каналов WCF Связывания образуют стек каналов с помощью специальных элементов В WCF по умолчанию определены 9 типов связываний

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

15

16 Связывание

Связывание

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

16

Начало

Локальное?

Требуется интеропера-бельность?

netNamedPipeBinding

Требуются очереди?

Требуются унаследованные MSMQ?

Уровень интероперабельности?

basicHttpBinding

msmqIntegrationBinding

Нужен дуп-лексный режим?

netMsmqBinding

wsDualHttpBinding

Требуется сеть «точка- точка»?

netPeerTcpBinding

Wsfederationhttpbinding или ws2007federa-tionhttpbinding

Требуется выделенная безопасность?

netTcpBinding

Wshttpbinding или ws2007httpbinding

17 Сценарий поведения (behavior) -

Сценарий поведения (behavior) -

класс WCF, влияющий на поведение системы во время выполнения Виды: сервисный (service) - работает на уровне сервиса, имеет доступ ко всем его конечным точкам, отвечает за транзакции, авторизацию, создание объектов, аудит конечных точек (endpoints) - работает на уровне конечных точек, реализует инспекцию и обработку входящих/исходящих сообщений oперационный (operational) - используется на уровне отдельных операций, управляет сериализацией, транзакционным потоком обратного вызова (callback) – аналог сценария сервисов, используется для элементов, функционирующих на клиенте при дуплексной коммуникации.

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

17

18 Сценарии поведения для управления потоком данных

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

На сервере:

На клиенте:

Инспекция параметров Инспекция сообщений Форматирование сообщений

Инспекция параметров Инспекция сообщений Форматирование сообщений Выбор операции (метода) Вызов операции (метода)

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

18

19 Сервисные сценарии поведения

Сервисные сценарии поведения

Класс WCF

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

Определяет , сколько экземпляров сервиса будут обслуживать запросы (возможные значения Single, PerCall, PerSession)

Определяет число потоков на экземпляр сервиса (возможные значения: Single, Reentrant, Multiple)

Экспорт и публикация данных о сервисе

InstanceContextMode

ConcurrencyMode

ServiceMetadataBehavior

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

19

20 Операционные сценарии поведения: транзакции

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

Виды транзакций: многошаговые бизнес-процессы; короткие транзакции (быстро завершаются, затрагивают небольшое число объектов и зависимостей) Для определения транзакционного поведения в WCF необходимо использовать атрибут [OperationBehavior (TransactionScopeRequired=true)]

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

20

21 Сериализация и кодировка в WCF

Сериализация и кодировка в WCF

Сериализация – процесс преобразования графа объектов в формат XML Information Set (XML Infoset) Кодировка – процесс преобразования сообщения WCF в поток байт Виды кодировки: двоичный; текстовый; Message Transmission Optimization Mechanism (MTOM); JavaScript Object Notation; Plain-Old-XML (POX)

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

21

22 Сравнение методов сериализации WCF

Сравнение методов сериализации WCF

Сериализатор

Характеристики

Сериализатор по умолчанию WCF. Основан на схемах XSD. Может использоваться для взаимодействия с внешними приложениями

Отличается возможностью добавления информации о типах CLR. Используется только внутри конкретного .NET приложения

Стандартный сериализатор .NET. Совместим со встроенными типами .NET, позволяет конфигурировать выходной XML, работает с Web-сервисами ASP.NET

Поддерживает нотацию объектов JavaScript.

DataContract Serializer

NetDataConractSerializer

XmlSerializer

DataContractJsonSerializer

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

22

23 Хостинг

Хостинг

Service Host (хост) – процесс, ответственный за работу и контекст выполнения сервиса В качестве хоста WCF может выступать любой процесс; IIS (Internet InformationServices) и WAS (Windows Process Activation Services) имеют встроенную поддержку хостинга Для любого хоста необходимо реализовать: создание объекта класса ServiceHost; добавление конечной точки; запуск прослушивания сообщений

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

23

24 Среда хостинга WAS

Среда хостинга WAS

WAS (windows process activation services) - среда хостинга; WAS встроена в windows vista и windows server 2008; WAS позволяет размещать сервисы в гибкой среде, которая не требует обязательного использования протокола обмена http

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

24

25 Схема реализации хостинга в среде WAS

Схема реализации хостинга в среде WAS

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

25

26 Пример сервиса WCF (1)

Пример сервиса 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); }

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

26

27 Пример сервиса WCF (2)

Пример сервиса 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; } }

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

27

28 Пример сервиса WCF (3)

Пример сервиса 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>

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

28

29 Пример сервиса WCF (4)

Пример сервиса 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>

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

29

30 Пример сервиса WCF (5)

Пример сервиса 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){}

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

30

31 Пример сервиса WCF (5) (продолжение)

Пример сервиса 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); } }

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

31

32 Пример сервиса WCF (6)

Пример сервиса 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); } }

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

32

33 Библиография (1)

Библиография (1)

Основная литература: http://msdn.microsoft.com/en-us/netframework/aa663324.aspx S. Resnick, R. Crane, C. Bowen. Essential Windows Communication Foundation. Pearson Education, Inc., 2008 C.Peiris, D. Mulder Pro WCF: Practical Microsoft SOA Implementation. A-Press, 2007

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

33

34 Библиография (2) Дополнительная литература: Соммервилл И. Инженерия

Библиография (2) Дополнительная литература: Соммервилл И. Инженерия

программного обеспечения (6-е изд.), м.: Вильямс, 2002.- 624 с., ил. Schach S.R.: Object-Oriented and Classical Software Engineering (5 ed.) McGraw-Hill, 2001, 744 pp. Зыков С.В. Проектирование корпоративных порталов.– М.: МФТИ, 2005.– 258 с. Буч Г., Рамбо Дж., Джекобсон А. Язык UML. Руководство пользователя: Пер. с англ.- изд. 2-е, М.:ДМК Пресс, С.-Пб.: Питер, 2004.- 432 с.

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

34

35 Библиография (3) Дополнительная литература: Жизненный цикл

Библиография (3) Дополнительная литература: Жизненный цикл

программного обеспечения ИC. http://www.tver.mesi.ru/e-lib/res/661/2/devis_2.html Martin Fowler, The New Methodology http://www.martinfowler.com/articles/newMethodology.html

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

35

36 Задания для самостоятельной работы Реализовать Web-сервис, который… 1

Задания для самостоятельной работы Реализовать Web-сервис, который… 1

… реализует функции простого калькулятора: сложение, вычитание, умножение, деление … конвертирует валюты (рубли в доллары и т.п.). Курс – случайная величина с периодом обновления 3 минуты. … принимает как параметр имя пользователя и определяет, сколько раз его вызывал пользователь с этим именем … вычисляет квадратный корень в форме консольного приложения-клтиента. … определяет знак зодиака, по введенной дате

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

36

37 Благодарю за внимание

Благодарю за внимание

Вопросы? http://zykov.altweb.ru szykov@hotmail.com sergey.zykov@tekama.com

Корпоративные системы Веб-сервисы и распределенные приложения

Интуит, 2009

37

«Создание приложений по технологии Windows Communications Foundation»
http://900igr.net/prezentacija/ekonomika/sozdanie-prilozhenij-po-tekhnologii-windows-communications-foundation-227341.html
cсылка на страницу
Урок

Экономика

125 тем
Слайды
900igr.net > Презентации по экономике > Культура организации > Создание приложений по технологии Windows Communications Foundation