Microsoft TechDays Сергей Звездин sergey.zwezdin@gmail.com

Preview:

Citation preview

Microsoft TechDays

BizTalk Services – реализация идеи Internet Serivce BusСергей Звездинsergey.zwezdin@gmail.comhttp://blogs.gotdotnet.ru/personal/sergun/

Microsoft TechDays

Что такое сервис?

Microsoft TechDays

Архитектурные проблемы

Именование в распределенных системахШирокомасштабное распространение событийПрохождение через границы NAT/FirewallИнтегрированные аутентификация и авторизация

Microsoft TechDays

Internet Service Bus

Архитектурный подход, при котором существует центральный сервер, который обеспечивает:

Firewall-friendly обмен сообщениямиМасштабируемый pub/sub механизмБезопасность, ориентированную на стандартыОбнаружение сервисовWorkflow

Microsoft TechDays

Internet Service Bus

ISB

………

sb://.../foo

sb://.../foo

Microsoft TechDays

BizTalk Services

BizTalk Services – реализация идеи Internet Service BusРасширения для .NET Framework

Расширения для Window Communication FoundationРасширения для Windows Workflow FoundationИнтеграция с CardSpace и ADFS

Доступно в виде CTP (BizTalk Services) http://labs.biztalk.net

Microsoft TechDays

BizTalk Services != BizTalk Server

BizTalk Services – реализация идеи Internet Service Bus

Microsoft TechDays

BizTalk ServicesB

izTa

lkS

erv

ices

Кл

иент

ы

… ……

Enterprise Services

ESB …

Hosted Services

Web-services, …

Desktop applications Web applications…

Microsoft TechDays

BizTalk ServicesB

izTa

lkS

erv

ices

Кл

иент

ы

………

Enterprise Services

ESB …

Hosted Services

Web-services, …

Desktop applications Web applications…

Identity Federation and Authorization

Naming

Service Registry

Messaging Fabric

Microsoft TechDays

Quick start

http://labs.biztalk.net“Create an Account”

Указываем username / password для BizTalk ServicesАссоциируем карты CardSpace с учетной записью BizTalk Service

Загружаем и устанавливаем BizTalk Services SDK

WCF binding, helper classes, samples.NET Fx 3.0 and 3.5 compatible

Contract Setup

[ServiceContract(CallbackContract=typeof(ICallbackContract))]interface ISomeContract { [OperationContract(IsOneWay=true)] void SomeOperation(String input);}

interface ICallbackContract { [OperationContract(IsOneWay=true)] void CallbackOperation(String input);}

Host Service

RelayBinding rb = new RelayBinding();

TransportClientEndpointBehavior behavior = new TransportClientEndpointBehavior();behavior.CredentialType = TransportClientCredentialType.CardSpace;string userName = behavior.Credentials.CardSpace.GetUserName();

Uri address = new Uri(“sb://connect.biztalk.net/services/sergun/service1”);

ServiceHost sh = new ServiceHost(typeof(SomeContract));ServiceEndpoint ep = sh.AddServiceEndpoint(typeof(ISomeContract), rb, address);

ep.Behaviors.Add(behavior);sh.Open();

Connect a Client

SomeCallbackContract cbo = new SomeCallbackContract();

DuplexChannelFactory<ISomeContract> factory = new DuplexChannelFactory<ISomeContract>(cbo);

ISomeContract proxy = factory.CreateChannel();

proxy.SomeOperation(“Hello BizTalk Services");

Console.WriteLine("Sent message to bus");

Microsoft TechDays

BizTalk Services 101

Демонстрация

Microsoft TechDays

BizTalk Services messaging

Pub/Sub через URIs

ISB

………

sb://.../foo

sb://.../foo

sb://.../foo

Microsoft TechDays

BizTalk Services messaging

Направленная передача сообщений через URIs

ISB

………

sb://.../foo/bar

sb://.../foo/bar

sb://.../foo

Microsoft TechDays

BizTalk Services messaging

Прямое подключение

ISB

………

Microsoft TechDays

Direct mode messaging

Демонстрация

Microsoft TechDays

BizTalk Services messaging

Обнаружение

BizTalk Services(Cloud)

………

sb://.../foo

sb://.../bar/baz

http://.../services

Microsoft TechDays

Naming

Root

Domain

Domain

Domain

Name

Name

Name

Name

Name

Name

Microsoft TechDays

Naming

Root

Domain

Scope

Domain

B

C

P

Q

R

A

sb://{scope} /B/Psb://{scope}/B/Qsb://{scope}/A

Microsoft TechDays

WS-Addressing

BizTalk Services поддерживает WS-Addressing

From, To, RelatesTo, FaultTo, ReplyTo, ...Адреса содержаться в сообщениях

В «классическом» WCF поле «To» обычно эквивалентно транспортному адресуВ BizTalk Services, To != транспортный адрес

Транспортный адрес == net.tcp://<cloud address>…To == sb://connect.biztalk.net/services/…

Microsoft TechDays

REST & BizTalk Services

В .NET 3.5 в WCF появилась мощная поддержка RESTRelayBinding не может работать с REST непосредственно и использует SOAPBizTalk Services могут «тунеллировать» HTTP GET внутри SOAP сообщений

Microsoft TechDays

Технологии

ISB REST – Picture Sharing

ISB

………

ClientPicture Store

Microsoft TechDays

BizTalk Services & RESTFile Sharing

Демонстрация

Microsoft TechDays

Identity & Access Control

Identity & access controlInteroperable (WS-Trust)Интегрированная HTTP аутентификацияУправление через web-страницу или API

Гибкий провайдер проверки подлинности:

CardSpace, LiveID, Username/PasswordОпции проверки подлинности устанавливаются через IEndpointBehavior

CardSpaceTokenProviderUsernameTokenProvider

Microsoft TechDays

Ресурсы

http://labs.biztalk.net/http://labs.biztalk.net/DownloadSDK.aspxhttp://www.identityblog.com/

Microsoft TechDays

© 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.

Recommended