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

Презентация:



Advertisements
Похожие презентации
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
Advertisements

ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Учебный курс Объектно-ориентированный анализ и программирование Лекция 7 Методы как средство реализации операций Лекции читает кандидат технических наук.
Лекция 23. Windows Communication Foundation. API распределенных систем DCOM – Distributed COM. Вызов COM объектов на удаленной машине. Используется реестр.
Кандидат технических наук, доцент Грекул Владимир Иванович Учебный курс Проектирование информационных систем Лекция 9.
1 Современные системы программирования. Часть 2. Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
Учебный курс Модели жизненного цикла и методологии разработки корпоративных систем Лекция 1 Введение в корпоративные системы Лекции читает кандидат технических.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 7 Создание веб-сервисов Лекции читает кандидат технических наук, доцент Зыков.
Теория Курс пользователя типового реестра государственных и муниципальных услуг 1.

Учебный курс Разработка корпоративных систем Лекция 4 Программная платформа Microsoft Dynamics CRM Лекции читает кандидат технических наук, доцент Зыков.
WEB- ТЕХНОЛОГИИ Лекция 6. Понятие Web- сервисов 1 Интерфейс в глобальную сеть для некоторого абстрактного программного обеспечения, этот интерфейс позволяет.
UML МИЭМ, План лабораторной UML Краткий обзор средств моделирования Паттерны проектирования Практическая часть 2.
WEB- ТЕХНОЛОГИИ Лекция 1. WEB- ПРИЛОЖЕНИЯ 1 Особый тип программ, построенных по архитектуре « клиент - сервер » Основа получение запросов от пользователя.
Типовые расчёты Растворы
Проектирование архитектуры ИСО 1. UML 2 Структура определения языка 4.
Е-МАСТЕР ® Документооборот Программно-методический комплекс (Система управления организационной информацией) +7 (812)
Лекция 2 Раздел 2.1 Windows Phone Темы раздела 3.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 5 Создание графического интерфейса пользователя Лекции читает кандидат технических.
Web-службы SOAP, WSDL, UDDI, GXA среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря.
Транксрипт:

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

2 Содержание 1.Архитектура SOA 2.WCF – реализация SOA от Microsoft 3.Контракты WCF 4.Каналы WCF 5.Связывание 6.Сценарии поведения 7.Сериализация и кодировка 8.Хостинг 9.Пример сервиса Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

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

4 Цели Windows Communication Foundation (WCF) – Microsoft-реализации SOA Кросссплатфор менное взаимодействи е Унификация существующих технологий удаленного взаимодействия Сервис- ориентированн ая разработка Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

5 Общая архитектурная схема WCF Контракты Исполняющая среда сервисов Сообщения Хостинг и активация Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

6 Программная модель WCF Клиент Сервер Сценарий поведения Связы- вание Контракт Канал Адрес Фабрика Адрес Канал «Слуша- тель» Связы- вание Контракт сообщение Контракт Связы- вание Адрес Конечная точка Уровень сообщений Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009 Сценарий поведения

7 Контракты WCF Функциональные операции реализуемые данным сервисом Используется WSDL Контракты Сервисов Описывают структуры данных используемые при взаимодействии с сервисом Используется XSD Контракты Данных Определяют то, каким образом типы CLR будут отображаться на формат SOAP Контракты Сообщений Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

8 Контракты сервисов (1) 1.При определении используют атрибуты: –ServiceContract (для классов и/или интерфейсов) –OperationContract (для методов) 2.Определяют направление взаимодействия в сервисах: –однонаправленное; –дуплексное Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

9 Контракт сервиса (2) // Пример описания контракта сервиса [ServiceContract] public interface IService1 { [OperationContract] string GetData(int value); [OperationContract] CompositeType GetDataUsingDataContract(CompositeType composite); // TODO: Вписать описания операций сервиса } Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

10 Контракт данных (1) 1.использует атрибуты для класса и его членов: DataContract; DataMember; CollectionDataContract 2.обеспечивает сериализацию данных: – DataContractSerializer Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

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; } } Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

12 Контракт сообщения (1) Использует атрибуты: –MessageContract ; –MessageHeader ; –MessageBodyMember Особенности: –не более одного входного параметра; –не более одного возвращаемого значения; –альтернатива контракту данных; –не используется совместно с контрактом данных Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

13 Контракт сообщения (2) // пример контракта сообщения [MessageContract] public class ItemMesage { [MessageHeader] public SomeProtocol ProtocolHeader; [MessageBody] public Item Content; } Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

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

15 Связывание Связыванием (binding) – называется сконфигурированный стек каналов WCF Связывания образуют стек каналов с помощью специальных элементов В WCF по умолчанию определены 9 типов связываний Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

16 Связывание Начало Требуется интеропера - бельность? Локальное ? Уровень интеропер абельност и ? Требуются очереди? Требуются унаследова нные MSMQ? Требуется сеть «точка- точка»? Нужен дуп- лексный режим? Требуется выделенн ая безопасно сть? basicHttpBinding wsDualHttpBinding wsFederationHttpB inding или ws2007Federa- tionHttpBinding netNamedPipeBinding netPeerTcpBinding netTcpBinding msmqIntegration Binding netMsmqBinding wsHttpBinding или ws2007HttpBinding Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

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

18 Сценарии поведения для управления потоком данных На клиенте: На сервере: Инспекция параметров Инспекция сообщений Форматирование сообщений Инспекция параметров Инспекция сообщений Форматирование сообщений Выбор операции (метода) Вызов операции (метода) Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

19 Сервисные сценарии поведения Класс WCFФункциональность InstanceContext Mode Определяет, сколько экземпляров сервиса будут обслуживать запросы (возможные значения Single, PerCall, PerSession ) ConcurrencyMode Определяет число потоков на экземпляр сервиса (возможные значения: Single, Reentrant, Multiple ) ServiceMetadata Behavior Экспорт и публикация данных о сервисе Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

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

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

22 Сравнение методов сериализации WCF СериализаторХарактеристики DataContract Serializer Сериализатор по умолчанию WCF. Основан на схемах XSD. Может использоваться для взаимодействия с внешними приложениями NetDataConract Serializer Отличается возможностью добавления информации о типах CLR. Используется только внутри конкретного.NET приложения XmlSerializer Стандартный сериализатор.NET. Совместим со встроенными типами.NET, позволяет конфигурировать выходной XML, работает с Web-сервисами ASP.NET DataContractJs onSerializer Поддерживает нотацию объектов JavaScript. Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

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

24 Среда хостинга WAS WAS (Windows Process Activation Services) - среда хостинга; WAS встроена в Windows Vista и Windows Server 2008; WAS позволяет размещать сервисы в гибкой среде, которая не требует обязательного использования протокола обмена http Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

25 Схема реализации хостинга в среде WAS Windows Process Activation Services (WAS) http net.tc p net.pipe msmq Process Host Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

26 Пример сервиса WCF (1) Описание - сервис, реализующий функции калькулятора. // Контракт сервиса [ServiceContract(Namespace= " 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

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; } Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

28 Пример сервиса WCF (3) //конфигурационный файл сервера (начало): Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

29 Пример сервиса WCF (4) //конфигурационный файл сервера (окончание): Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

30 Пример сервиса WCF (5) Код на клиенте (с сокращениями - начало): [System.Diagnostics.DebuggerStepThroughAttribute()] [System.CodeDom.Compiler.GeneratedCodeAttribute ("System.ServiceModel", " ")] public partial class CalculatorClient: System.ServiceModel.ClientBase, 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

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); } Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

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); } Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009

33 Библиография (1) Основная литература: 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

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

35 Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009 Библиография (3) Дополнительная литература: Жизненный цикл программного обеспечения ИC. Martin Fowler, The New Methodology

36 Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009 Задания для самостоятельной работы Реализовать Web-сервис, который… 1. … реализует функции простого калькулятора: сложение, вычитание, умножение, деление 2. … конвертирует валюты (рубли в доллары и т.п.). Курс – случайная величина с периодом обновления 3 минуты. 3. … принимает как параметр имя пользователя и определяет, сколько раз его вызывал пользователь с этим именем 4. … вычисляет квадратный корень в форме консольного приложения-клтиента. 5. … определяет знак зодиака, по введенной дате

37 Корпоративные системы Веб-сервисы и распределенные приложения ИНТУИТ, 2009 Благодарю за внимание! Вопросы?