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 Report

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