Лекция 23. Windows Communication Foundation. API распределенных систем DCOM – Distributed COM. Вызов COM объектов на удаленной машине. Используется реестр.

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



Advertisements
Похожие презентации
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Advertisements

WEB- ТЕХНОЛОГИИ Лекция 6. Понятие Web- сервисов 1 Интерфейс в глобальную сеть для некоторого абстрактного программного обеспечения, этот интерфейс позволяет.
Web-службы SOAP, WSDL, UDDI, GXA среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря 2013 г.среда, 11 декабря.
1 Современные системы программирования. Часть 2. Системное и прикладное программное обеспечение Малышенко Владислав Викторович.
ДонНУ, кафедра КТ, проф.В.К.Толстых Web-службы (Web-сервисы) введение введение Разработка в среде Delphi Из цикла лекций «Internet-технологии разработки.
Учебный курс Технологии и средства разработки корпоративных систем Лекция 7 Создание веб-сервисов Лекции читает кандидат технических наук, доцент Зыков.
Web - сервисы. Веб-служба, веб-сервис (англ. web service) идентифицируемая веб-адресом программная система со стандартизированными интерфейсами.англ.веб-адресоминтерфейсами.
Реализация концепции построения и формирования отраслевой системы государственного учета, регистрации и мониторинга (ОСГУРМ) информационных ресурсов сферы.
К построению и контролю соблюдения политик безопасности распределенных компьютерных систем на основе механизмов доверия А. А. Иткес В. Б. Савкин Институт.
Использование технологий WMS и WFS при разработке океанологических ГИС Олейников И. С. ДВГУ.
Windows Workflow Foundation 4.0 Андрей Воронович.
Администрирование информационных систем Создание и управление веб-узлом.
Проф. В.К.Толстых, Технологии разработки Internet- приложений Администрирование IIS 5, 6 сайт, виртуальный каталог, приложение, пул, рабочий.
Проф. В.К.Толстых, WCF-службы Понятие безопасности Из цикла лекций «Internet-технологии разработки приложений» для студентов 4-го курса.
Архитектура, возможности и методы использования платформы облачных вычислений Microsoft Windows Azure Лекция 3 Основные концепции и архитектура Microsoft.
Инструментальная система разработки распределенных приложений «SiTex»
Microsoft ® Visual Basic ®.NET 2003 Быстрые решения для Microsoft ® Windows ® и веб-разработки.
Распределённая интеграционная система РМ-3. РМ-3 РМ-3 – распределённая интеграционная программная среда, предназначенная для построения единого верхнего.
Архитектура Часть 3 Стратегии интеграции и взаимодействия.
Ресурсы WPF Два типа ресурсов WPF: объектные ресурсы (object resource) – определенный.NET-объект, который можно использовать многократно; ресурсы сборки.
Транксрипт:

Лекция 23. Windows Communication Foundation

API распределенных систем DCOM – Distributed COM. Вызов COM объектов на удаленной машине. Используется реестр Window. Windows-зависимая архитектура. COM+ – добавлен способ управления транзакциями. Windows-зависимая архитектура. В.NET можно взаимодействовать с COM+ с помощью библиотеки System.EnterpriseServices MSMQ – Microsoft Message Queuing – очередь сообщения Microsoft. Отказоустойчивый механизм взаимодействия В.NET можно взаимодействовать с MSMQ с помощью библиотеки System.EnterpriseServices.NET Remoting Взаимодействие.NET приложений на разных компьютерах Возможность передавать данные в двоичном виде Единая система типов – CTS Частично кроссплатформенная (Mono – на Unix) Использование конфигурационных файлов для настройки сервиса В.NET это пространство имен - System.Runtime.Remoting

API распределенных систем Web-службы XML Не зависит от платформы. Позволяет взаимодействовать программах на абсолютно разных языках и разных ОС Используются только открытые технологии Используется протокол HTTP Данные передаются посредством XML (SOAP) World Wide Web Consortium (W3C) и Web Services Interoperability Organization (WS-I) – разработка единых спецификаций WS-* Недостаток – плохая производительность. Пространство имен в.NET - System.Web.Services RESTfull Web-службы Не зависит от платформы. Позволяет взаимодействовать программах на абсолютно разных языках и разных ОС Используют возможности URI, и протокола HTTP Данные передаются посредством персонализированного (custom) XML Пространство имен в.NET - System.Web.Services Именованные каналы (pipe) Взаимодействие между процессами Очень быстрое взаимодействие В.NET пространство имен System.IO.Pipe Одноранговые Pear-to-Pear (P2P) Пространство имен в.NET – System.Net.PearToPear

Windows Communication Foundation (WCF) До WCF Разные технологии – трудный выбор нужной Функциональность многих пересекается, что еще затрудняет выбор Для каждой технологии свой API, свои инструменты для работы с ними Очень тяжелый переход от одной технологии к другой. Фактически необходимо переписать огромные куски кода. WCF Интегрирует все ранее разработанные технологии распределенного взаимодействия в единый стройный API-интерфейс. Единый стиль построения сервиса для всех технологий Для использования другого нижележащего API не нужно переписывать код и даже не нужно перекомпилировать приложение. Достаточно изменить несколько строк в конфигурационном файле. Один и тот же сервис (контракт) может вещаться одновременно используя несколько нижележащих API.

Обзор средств WCF Взаимодействие и интеграция различных API-интерфейсов Поддержка как строго типизированных, так и не типизированных сообщений Поддержка нескольких привязок (HTTP, TCP, MSMQ, Pipe) Поддержка спецификаций веб-служб WS-* Полностью интегрированная модель безопасности. Поддерживаются как встроенные Windows/.NET, так и нейтральные технологии защиты, построенные на стандартах веб-служб. Поддержка технологий хранения состояния сеансов, а также поддержка однонаправленных сообщений без состояния Базируется на принципах дизайна архитектуры, ориентированной на службы (Service-oriented architecture - SOA)

Принципы SOA Сервисы и клиенты разрабатываются и развертываются полностью независимо. Сервисыавтономны Детали реализации службы не касаются вызывающей стороны. Взаимодействие исключительно через контракт Используют контракты, а не реализацию Возможности и требования определяются схемой; она используется для установления совместимости сервисов. Совместимость основана на политиках Функциональность службы определяется через четко определенный интерфейс. Взаимодействие со службой только через интерфейс Явныеграницы

Основы WCF Служба WCF. Обычно это dll сборка. Содержит контракты и их реализацию Хост службы WCF. Публикует службу WCF, организует взаимодействие. В роли хоста может выступать любой тип приложения (консольное, WinForms, WPF, Служба Windows), IIS Клиент WCF. Клиентское приложение Клиент Хост WCF Прокси Служба WCF

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

СервисКлиент ABC в WCF AddressBindingContract (Где) (Как) (Что) ABCABC ABC

Контракт Интерфейсы – контракты служб WCF Интерфейсы для работы с WCF помечаются атрибутом [ServiceContract] Каждый метод в интерфейсе помечается атрибутом [OperationContract] Классы, реализующий контракты служб – типы служб [ServiceContract] public interface ICalculator { [OperationContract] Result SolveProblem (ComplexProblem p); } C

Привязка Описывает Транспортный уровень. Протокол передачи данных (HTTP, MSMQ, именованный каналы, TCP/IP) Тип канала (однонаправленный, запрос-ответ, дуплексный) Механизм кодирования (двоичный, XML, SOAP) Поддерживаемые протоколы Web-служб, если разрешены (WS-Security, WS-Transaction, и т.д.) B

Привязка B Транспортные протоколы IPCMSMQ ? TCPHTTP Дополнительные Протоколы Кодировки Binary Text ?.NETTX ? SecurityRM Привязка HTTP Text TXSecurityRM

Основные привязки Привязки на основе HTTP. Веб службы XML BasicHttpBinding – соответствует спецификациям WS-I Basic Profile 1.1 WSHttpBinding – поддержка множества стандартов WS-* (безопасность, транзакции и др.) WSDualHttpBinding – двухсторонний обмен сообщениями WSFederationBinding – главное безопасность. Поддержка WS-Trust, WS-Security, WS-Federation Привязки на основе именованных каналов. Передача данных в двоичном виде NetNamedPipeBinding – взаимодействие между приложениями на одном компьютере B

Основные привязки Привязки на основе TCP. Передача данных в двоичном виде NetTcpBinding – оптимизированная передача параметров между.NET приложениями на разных компьютерах NetPeerTcpBinding – безопасная привязка на основе P2P Привязки на основе MSMQ. Передача данных используя очереди сообщений Microsoft. NetMsmqBinding – передача сообщений между.NET приложениями на разных компьютерах MsmqIntegrationTcpBinding – передача сообщений между приложениями использующих разные технологии (COM, C++ и т.д.) на разных компьютерах B

Стандартные привязки B T = Защита на транспорте | S = WS-Security | O = One-Way Only ИнтеропЗащитаСессияТранзакцииДуплексПоток BasicHttpBinding WsHttpBinding WsDualHttpBinding NetTcpBinding NetNamedPipesBinding NetMsmqBinding BP WS WS T TS TS TS TS TS O O NetPeerTcpBinding TS

Адрес Задается типом System.Uri или в *.config файле Зависит от выбранной привязки В общем случае должны быть заданы scheme://MachineName[:port]/Path Схема. Транспортный протокол. HPPP, TCP и т.д. Имя машины.DNS имя или IP адрес или др. в зависимость от схемы Порт. Номер порта. Некоторый протоколы имеют порт по умолчанию и он может быть опущен Путь. Путь к службе WCF Примеры net.tcp://localhost:8080/MyWCFService net.pipe://localhost/MyWCFService net.msmq://localhost/private$/MyPrivateQuery A

Хостинг службы WCF Публикует службу WCF, организует взаимодействие. В роли хоста может выступать: любой тип приложения (консольное, WinForms, WPF) Служба Windows IIS (Internet Information Service)

Хост службы WCF – приложение Необходимы сборка System.ServiceModel и такое же пространство имен. Хост службы WCF – всегда класс ServiceHost ServiceHost host = new ServiceHost(typeof(MyWCFService)); host.Open(); ….. host.Close();

Конфигурация конечных точек

Конфигурация конечных точек Можно задать базовый адрес

Конфигурация привязок

Пользовательские привязки

Класс ServiceHost Конструктор принимает набор адресов Свойства и методы BaseAddresses – зарегистрированные адреса для службы AddServiceEndpoint() – программное добавление конечной точки AddDefaultEndpoints() – программное управление конечными точками по умолчанию Open(), BeginOpen(), EndOpen() – синхронное, асинхронное открытие сервиса Close(), BeginClose(), EndClose() – синхронное, асинхронное закрытие сервиса State – состояние сервиса (открыт, закрыт, создан)

Построение клиента Необходимы общий контракт привязка адрес Статический импорт метаданных Add Service Reference в Visual Studio Утилита SvcUtil Настроить руками. Сложно, но возможно Динамический импорт метаданных Add Service Reference в Visual Studio для запущенного сервиса

Автоматическая генерация контракта Сборка веб-сервиса (DLL/EXE + конфигурация) SvcUtil.exe WSDL XSD Прокси Конфигурация Во время разработки: Запущенный веб-сервис SvcUtil.exe

Автоматическая генерация контракта Клиент Сервис GetMetadata МЕХ WSDL+XSD Во время выполнения: WS-MetaDataExchange (MEX)

Обнаружение WCF-сервисов Должно быть настроено в конфигурации …

Использование на клиенте Создан класс прокси MyServiceClient Класс прокси можно использовать как обычный класс. Но выполняться будет на сервисе MyServiceClient service = new MyServiceClient(); int x = service.MyMethod(4, 5); … service.Close();