|
|
End points have 3 parts: Address, Binding, and Контракт. Address, URI Binding: transport, encoding, protocols used Контракт: What endpoint does, what actions it understands what schemas are expected
WCF применяет компонентую архитектуру. У нас имеются транспортный слой, слой кодирования (binary/text), слой безопасности и дополнительные слои. Фактически, binding – это набор компонентов. Например, мы могли бы выбрать http транспорт , добавить туда безопасность (https/ssl), или взять tcp транспорт или даже произвольный канал. Я видел даже протоколы взаимодействия по pop3/smtp! После чего мы выбираем необходимое нам поведение сервиса – например. Необходимость подключения распределенных транзакций, режим создания обьектов сервиса (instancecontextmode - session mode – percall, single, persession)
Байндинг – ключевой в понимании взаимодействия.
А что будет с существующими технологиями? Что интересует TDM и разработчиков? Стоимость и сроки разработки внедрения – универсальность.
MSMQ Transport Channel Поддержка очередей между приложениями WCF SOAP сообщение внутри сообщения MSMQ Поддерживает новую схему адресации MSMQ Integration Channel Взаимодействие между приложениями MSMQ и WCF Классическое сообщение MSMQ Поддерживает все схемы адресации MSMQ
WCF Клиентs can communicate with existing MSMQ applications without receiver modification SOAP messages are converted to MSMQ messages by the channel Places classic MSMQ message on the wire
Инструкции для докладчика Должны быть заполнены свойства файла pptx (автор, название, тема, поле комментарии должно содержать аннотацию В презентации нужно избегать излишней анимации, т.к. это помешает успешной трансляции через LiveMeeting Файл презентации должен называться, как код доклада (например IS-D206.pptx
Использование Windows Communication Foundation на предприятии Марат Бакиров Майкрософт
Содержание Введение Обзор текущих технологий Обзор WCF Взаимодействие Управление и трассировка
Введение
Свои плюсы и минусы Заказчики хотят универсальную технологию Reliable Services Interoperable Transactions Services Interoperable ASP.NET Integration Objects Extensible CLR Integration Components Transactions COM+ Integration Queuing Reliable Msg MSMQ Integration Современные технологии
WCF это дальнейшая эволюция
Обзор WCF – ABC (Address, Binding, Contract) Сервис C B A C B A Клиент A B C Address Где? Контракт Что умеет? Binding Как? Endpoint C B A
Receiver Channels Архитектура: Слои,слои, слои Sender Proxy Sender Application Dispatcher Receiver Application Channel Layer ServiceModel Layer Channels
Модель сервиса Модель сообщений Поведение Каналы Компонентная архитектура слоя каналов
Стандартные привязки (Bindings) T = Transport Security | S = WS-Security
Web сервисами Взаимодействие с
Слои совместимости Протоколы приложений Определен в WCF контрактах Взаимодействие определяется с помощью WSDL Протоколы инфраструктуры Определяется с помощью bindings Элементы привязки – Security, Reliability, Transactions, Encoding WS-*, WS-Policy
Протоколы приложений Используйте контракты ServiceContract,OperationContract, DataContract, MessageContract, Для соответствия WS-I Basic Profile 1 Style = document, use = literal, wrap messages Избегайте несовместимых вещей Duplex Сессии можно (WS-*) Явно прописывать namespace, в том числе и в реализации сервиса
Примеры [ServiceContract(Namespace="http://platforma2008.ru/D-DT205")] [DataContractFormat(Style=OperationFormatStyle.Document)] public interface IService1 { [OperationContract] int Calc(int a, int b, Person p); } [DataContract(Namespace = "http://platforma2008.ru/D-DT205")] public class Person { [DataMember] public string Name { get; set; } [DataMember] public string LastName { get; set; } }
Примеры <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> … </s:Header> <s:Body> <Calc xmlns="http://platforma2008.ru/D-DT205"> <a>11</a> <b>12</b> <p xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <LastName>Pupkin</LastName> <Name>vasya</Name> </p> </Calc> </s:Body> </s:Envelope>
[DataContractFormat(Style=Rpc)] <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> … </s:Header> <s:Body> <Calc xmlns="http://platforma2008.ru/D-DT205"> <a xmlns="">11</a> <b xmlns="">12</b> <p xmlns="" xmlns:a="http://platforma2008.ru/D-DT205" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <a:LastName>Pupkin</a:LastName> <a:Name>vasya</a:Name> </p> </Calc> </s:Body> </s:Envelope>
[[XmlSerializerFormat(Style =Rpc, Use =Encoded)])] <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Header> … </s:Header> <s:Body s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <q1:Calc xmlns:q1="http://platforma2008.ru/D-DT205"> <a xsi:type="xsd:int">11</a> <b xsi:type="xsd:int">12</b> <p href="#id1" /> </q1:Calc> <q2:Person id="id1" xsi:type="q2:Person" xmlns:q2="http://platforma2008.ru/D-DT205/encoded"> <Name xsi:type="xsd:string">vasya</Name> <LastName xsi:type="xsd:string">Pupkin</LastName> </q2:Person> </s:Body> </s:Envelope>
Протоколы и нфраструктуры basicHttpBinding wsHttpBinding WSE 2.0 – не совместимо WSE 3.0 – совместимо Использует WS-* стандарты
Демонстрация Взаимодействие с J2EE
Взаимодействие с COM+
Взаимодействие с COM+/ES Приложения COM+ превращаются в WCF сервисы Можно обеспечить доступ новых клиентов Только конфигурация! Без кодирования! COM proxy & Service moniker for WCF Services Старые клиентs могут добраться до старых сервисов
Приложение COM+ App в качестве сервиса WCF IIS Три модели хостинга Com+ hosted Web hosted (сервис – в IIS, компоненты – в выделенном COM+ ) WCF умеет генерировать Сервис для приложений COM+ ComSvcConfig COM+ Integration Wizard ComSvcConfig.exe /install /application:BookSample /Контракт:BookLogic.Finance,IFinance /hosting:was /mex
Использование сервисов в COM Типизированный клиент: Генерируем с помошью SvcUtil сборку, видимую в COM+ Используем COM “service” moniker для указания адреса и привязки(binding) Динамический клиент: Все через “service” moniker , вкоторм указываем WSDL или используем Metadata Exchange
Использование сервисов в COM Типизированный клиент Генерируем cs клиент: SvcUtil.exe http://myServer/RetailService/ Предоставляем COM видимость: [assembly: ComVisible(true)] Регистрируем типы в COM: regasm.exe /tlb:RetailClient.tlb RetailClient.dll Dim monikerClient As IRetailProxy set monikerClient = GetObject( "service:address=http://myServer/RetailService/, binding=wsHttpBinding") currStock = monikerClient.GetStockLevel("ID:223")
Использование сервисов в COM динамический клиент Без специальной регистрации Client assembly built on the fly Suitable for document and script scenarios Dim monikerClient As Object wsdlStr = "<?xml ... " Set monikerClient = GetObject( "service:address=http://myServer/RetailService/, wsdl='" & wsdlStr & "', binding=wsHttpBinding, contract=IWarehouse") currStock = monikerClient.GetStockLevel("ID:223")
Демонстрация Взаимодействие с COM+
MSMQ Взаимодействие с
Поддержка очередей в WCF MSMQ Transport Channel Поддержка очередей между приложениями WCF SOAP сообщение внутри сообщения MSMQ MSMQ Integration Channel Взаимодействие между приложениями MSMQ и WCF Классическое сообщение MSMQ Использует MsmqMessage<T>
WCF Клиент MSMQ Сервис Store WCF Клиент Store Queue Manager MSMQ Сервис Queue Manager Integration Channel QM to QM transfer App .config
MSMQ Клиент WCF Сервис Store WCF Сервис Store Queue Manager MSMQ Клиент Queue Manager Integration Channel QM to QM transfer App .config
Демонстрация Взаимодействие с MSMQ
УПРАВЛЕНИЕ Конфигурируемость Трассировка WMI Счетчики производительности
Демонстрация Управление
Демонстрация Name of the demo
ВИДЕО Name of the video
Итог Введение Обзор текущих технологий Обзор WCF Взаимодействие WebServices COM+ MSMQ Управление и трассировка WCF можно пробовать на работе, плавно мигрируя на новую технологию
Дополнительная информация http://Wcf.netfx3.com http://www.thatindigogirl.com http://blogs.msdn.com/motleyqueue/ http://blogs.msdn.com/justinjsmith/
Вопросы? Марат Бакиров ООО Майкрософт Рус i-maratb@microsoft.com http://blogs.gotdotnet.ru/personal/mbakirov 14-15, стенд «спроси Эксперта», зона «Средства Разработки»
© 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Summary: Марат Бакиров, Платформа 2008, https://platforma2008.ru
| URL: |
No comments posted yet
Comments