BB12 Clemens Vasters Technical Lead, Service Bus .NET Services Service Orchestration Naming Federated Identity and Access Control Your Services Service Registry Messaging Fabric Clients On-Premise ESB ESB Desktop, Desktop, RIA, RIA, Web & Web MS/3rd Party Services.
Download ReportTranscript BB12 Clemens Vasters Technical Lead, Service Bus .NET Services Service Orchestration Naming Federated Identity and Access Control Your Services Service Registry Messaging Fabric Clients On-Premise ESB ESB Desktop, Desktop, RIA, RIA, Web & Web MS/3rd Party Services.
BB12 Clemens Vasters Technical Lead, Service Bus .NET Services Service Orchestration Naming Federated Identity and Access Control Your Services Service Registry Messaging Fabric Clients On-Premise ESB ESB Desktop, Desktop, RIA, RIA, Web & Web MS/3rd Party Services Network Address Translation Sender Dynamic IP Network Firewall Machine Firewall ? Receiver Naming Federated Identity and Access Control Service Registry Messaging Fabric Corresponding WCF Binding Service Bus Relay Binding BasicHttpBinding BasicHttpRelayBinding WebHttpBinding WebHttpRelayBinding WSHttpBinding WSHttpRelayBinding WS2007HttpBinding WS2007HttpRelayBinding WSHttpContextBinding WSHttpRelayContextBinding WS2007HttpFederationBinding WS2007HttpRelayFederationBinding NetTcpBinding NetTcpRelayBinding NetTcpContextBinding NetTcpRelayContextBinding n/a [loosely related to NetMsmqBinding] NetOnewayRelayBinding n/a [loosely related to NetTcpPeerBinding] NetEventRelayBinding Service Bus Relay Binding Transport Binding Element BasicHttpRelayBinding Http(s)RelayTransportBindingElement WebHttpRelayBinding Http(s)RelayTransportBindingElement WSHttpRelayBinding Http(s)RelayTransportBindingElement WS2007HttpRelayBinding Http(s)RelayTransportBindingElement WSHttpRelayContextBinding Http(s)RelayTransportBindingElement WS2007HttpRelayFederationBinding Http(s)RelayTransportBindingElement NetTcpRelayBinding TcpRelayTransportBindingElement NetTcpRelayContextBinding TcpRelayTransportBindingElement NetOnewayRelayBinding OnewayRelayTransportBindingElement NetEventRelayBinding OnewayRelayTransportBindingElement ReliableSessionBindingElement ReliableSessionBindingElement SymmetricSecurityBindingElement SymmetricSecurityBindingElement TextMessageEncodingBindingElement TextMessageEncodingBindingElement HttpTransportBindingElement HttpRelayTransportBindingElement Client Channel: Listener: Client Channel: System.Net. WebRequest System.Net. HttpListener HttpTransportBindingElement Listener: SB Internal Socket Binding Same binding elements WSHttpRelayBinding Different Transport WSHttpBinding Backend Naming Routing Fabric sb://servicebus.windows.net/services/solution/a/b/ Route Subscribe Service Bus Frontend Nodes NLB TCP/SSL 808/828 Msg Sender TCP/SSL 828 Msg NAT Firewall Dynamic IP Receiver Backend Naming Routing Fabric sb://servicebus.windows.net/services/solution/a/b/ Route Listener Socket Connection Similar to WCF NetTcpBinding Frontend Full-duplex communication path Nodes .NET Framing message delineation TCP/SSL NLB 808/828 .NET Binary encoding SSL channel overlaid on socket Always connects to port 828 on SB Port # will change before V1 OnewayRelayTransportBindingElement Msg tries to reconnect as needed when connection drops Subscribe Service Bus Sender TCP/SSL 828 Msg NAT Firewall Dynamic IP Receiver Backend Naming Routing Fabric sb://servicebus.windows.net/services/solution/a/b/ Route Sender Socket Connection Service Bus Uses NetTcpBinding underneath Full-duplex communication path .NET Framing messageTCP/SSL Frontend Nodes TCP/SSL 808/828 Msg Sender Subscribe NLB delineation 828 .NET Binary encoding SSL channel overlaid on socket Connects to port 808 on SB: Open Connects to port 828 on SB: SSL Msgbefore V1 Port #s will change Oneway transport tries to reconnect as needed when NAT connection drops Firewall Dynamic IP Receiver Backend Naming Routing Fabric http://servicebus.windows.net/services/solution/a/b/ Route Subscribe Service Bus Sender create buffer Msg Msg Message Buffer HTTPS 443 subscribe NLB TCP/SSL 808/828 subscribe Frontend Nodes Receiver Backend Naming Routing Fabric http://servicebus.windows.net/services/solution/buf/ Subscribe Frontend Nodes HTTP Socket Forwarder MB Factory Extender Create <sb:ProcessAt> Relay HTTP Listener Message Buffer SOAP <sb:ProcessAt> <sb:RelayAccessToken> CreateMessageBuffer Operation Plain HTTP POST X-Process-At X-MS-Identity-Token X-Http-Method-Equiv: X-CREATEMB Check Token Create Receiver Backend Naming Routing Fabric sb://servicebus.windows.net/services/solution/a/b/ 3 Service Bus Frontend Nodes NLB 2 Ctrl 4 HTTPS 443 5 1 HTTP-Socket Forwarder Receiver 6 Message Buffer Message Buffer resides on the Service Bus node that received the ‘Create’ request. sb://servicebus.windows.net/services/solution/buf/ Backend Naming Routing Fabric Subscribe Service Bus Frontend Nodes NLB HTTPS 443 SOAP Subscribe <sb:ProcessAt> <sb:RelayAccessToken> Plain HTTP POST Receiver X-Process-At X-MS-Identity-Token X-Http-Method-Equiv: X-SUBSCRIBE Message Buffer sb|http://servicebus.windows.net/services/solution/*/ Backend Naming Routing Fabric Route Service Bus Frontend Nodes TCP/SSL 808/828 HTTPS 80/443 4 Msg Sender SOAP Relayed Oneway <sb:RelayAccessToken> Any Operation HTTP Relayed Oneway X-MS-Identity-Token Any method (except GET) Message Buffer Backend Naming Routing Fabric http://servicebus.windows.net/services/solution/buf/ SOAP RetrieveMessages <sb:ProcessAt> <sb:RelayAccessToken> Plain HTTP POST X-Process-At X-MS-Identity-Token X-Http-Method-Equiv: X-RETRIEVE Options Timeout Encoding MaxMessages Service Bus Frontend Nodes NLB HTTPS 443 Message Buffer Receiver Request is “parked” until (a) Timeout expires (30s max) or (b) At least one message available sb://servicebus.windows.net/services/solution/buf/ Available Response Encodings HTTP Backend SOAP MimeMultipart Naming multipart/mixed with Routing BareEnvelopeSequence application/http (complete Bare envelopes inside Fabric incoming requests) response body MimeApplicationHttp WrappedEnvelopeSequence application/http (complete Frontend Envelopes wrapped in inside incoming requests) body Nodes RequestAsResponse NLB Incoming request mapped onto retrieval response. Service Bus HTTPS 443 Response Message Buffer Receiver Renew GetStatus Delete sb://servicebus.windows.net/services/solution/buf/ Backend Naming Routing Fabric <sb:ProcessAt> <sb:ProcessAt> <sb:ProcessAt> <sb:RelayAccessToken> <sb:RelayAccessToken> <sb:RelayAccessToken> Renew Operation GetStatus Operation Delete Operation Plain HTTP POST Frontend Nodes Plain HTTP GET X-Process-At X-Process-At X-MS-Identity-Token X-MS-Identity-Token Options Returns Timeout Plain HTTP DELETE Service Bus X-Process-At X-MS-Identity-Token Expiration NLB HTTPS 443 Message Buffer Renewal follows WS-* patterns Receiver MB expires after <30 minutes Requires explicit renewal Clemens Vasters Service Bus Technical Lead .NET Services Custom Binding … CompositeDuplexBindingElement BinaryMessageEncodingBindingElement OnewayRelayTransportBindingElement Client Channel: TcpTransportBindingElement Listener: SB Internal Socket Binding Clemens Vasters Service Bus Technical Lead .NET Services Backend Naming Routing Fabric sb://servicebus.windows.net/services/solution/a/b/ Oneway Rendezvous Ctrl Msg Frontend Nodes Service Bus Ctrl NLB 2 3 TCP/SSL 818 1 Sender Ctrl Socket-Socket Forwarder 4 Receiver Preferred Backend Naming Routing Fabric sb://servicebus.windows.net/services/solution/a/b/ Oneway Rendezvous Ctrl Msg Service Bus Frontend Nodes TCP/SSL 818, 819 Ctrl Sender Receiver NAT Traversal Connection Backend Naming Routing Fabric sb://servicebus.windows.net/services/solution/a/b/ Oneway Rendezvous Ctrl Msg Frontend Nodes Service Bus Ctrl 2 NLB 3 HTTP/S 80/443 1 Sender Ctrl HTTP-Socket Forwarder 4 Receiver Naming Federated Identity and Access Control Service Registry Messaging Fabric Clemens Vasters Service Bus Technical Lead .NET Services Backend Naming Routing Fabric sb://servicebus.windows.net/services/solution/a/b/ Service Bus Frontend Nodes How does this part work? Management & Deployment Fabric SB SB SB SB SB SB SB SB Unicast: Point to point SB SB SB Multicast: Routed along ring SB Distributed Hash Table Names hash to nodes SB SB Replication Neighborhood SB SB SB SB SB SB SB www.microsoftpdc.com © 2008 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.