Top Banner
Microsoft .NET Service Bus Connectivity, Messaging, Events, and Discovery Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38
42

Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Dec 21, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Microsoft .NET Service BusConnectivity, Messaging, Events, and Discovery

Clemens VastersService Bus Technical LeadMicrosoft Corporation

BB38

Page 2: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Azure™ Services Platform

Page 3: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

What is a Service Bus? Connectivity Challenges Naming Service Registry and Discovery Messaging, Connectivity and Events

Agenda

Page 4: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Enterprise Service Bus

Service Orchestration

Service Registry

NamingFederated Identity and

Access Control Messaging Fabric

CRM

Customers Leads

TrendsCampaigns

Supply Chain

Inventory Order Entry

PlanningPurchasing

Point Of Sale

POS Integration

Product Catalog

ReturnsWeb Store

Page 5: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Internet Service Bus

Service Orchestration

Service Registry

NamingFederated Identity and

Access Control Messaging Fabric

Clients MS/3rd Party ServicesOn-Premise ESB

ESBDesktop, RIA, Web

Desktop, RIA, & Web

Your Services

Page 6: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

IPv4 Address Shortage Dynamic IP address allocation Network Address Translation (NAT)

Internet is pwn3d by the bad guys Firewalls layered over firewalls over firewalls

Connectivity Challenges

Sender Receiver?Machine Firewall

Network FirewallNetwork Address Translation

Dynamic IP

Page 7: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Dynamic DNS NAT Port Mappings / UPnP Open Inbound Firewall Ports

How Do People Deal With It?

Sender Receiver?Machine Firewall

Network FirewallNetwork Address Translation

Dynamic IP

Brittle, Difficult, Insecure – and sometimes – Impractical Consequence: We see recurring patterns of workarounds

Page 8: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Any Instant Messaging/Communication App Access Control, Relay, Direct Connect

Any Multiplayer Game Access Control, Relay, Direct Connect

Any Home Media Integration System Access Control, Relay, Direct Connect

Any Enterprise Integration System Access Control, VPN/VAN

Who needs it?

Page 9: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Service Bus – Naming

Service Registry

NamingFederated

Identity and Access Control

Messaging Fabric

Page 10: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Service Bus Naming

Federated, hierarchical, DNS-integrated, transport-neutral naming system

Root

Solution

Solution

Solution

NameB

NameC

Name1

Name2

Name3

NameA

Page 11: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Anything wrong with DNS?

DNS has some practical constraints: High update propagation latency Increasing pollution by ISPs (“DNS assistance”) Names hosts, not services Limited write-access model (often out-of-band)

Service Bus Naming System R/W access with access control via Registry Updates reflected instantaneously Names name endpoints, not machines

Page 12: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Canonical Form of URI Projections

scheme://naming-scope/name/name

Root

X

Y

Z

B

C

1

2

3

A

URI ‘Host’: Naming AuthorityURI ‘Path’: Federated Name Structure

Page 13: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Global Naming Structure (PDC)

scheme://servicebus.windows.net/services/solution/name/…

Root SBWN services

solution

2

3

name

Required Prefix

Page 14: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Global Naming Structure (Post-PDC)

Root

Solution

Solution

Solution

NameB

NameC

Name1

Name2

Name3

NameA

scheme://solution.servicebus.windows.net/name/…

Page 15: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Service Bus – Service Registry

Service Registry

NamingFederated

Identity and Access Control

Messaging Fabric

Page 16: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Service Registry

The service registry is registry for service endpoints, not a general purpose directory

Registry is layered over the naming system Provides programmatic access to naming

Discover: Atom 1.0 feed hierarchy Publish: Atom Publishing Protocol, WS-Transfer

Naming

Service RegistryClient

AtomPub

WS-Transfer

Page 17: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Registry Feed Structure

Accessing the root registry feed for solutions http://servicebus.windows.net/services/solution/ Root of a hierarchy of feeds

Naming Root SBWN services

svc

solution svc

solution

Client

AtomPub

WS-Transfer

Page 18: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Service Registry

Clemens VastersService Bus Technical Lead.NET Services

demo

Page 19: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Services in Registry Feeds

<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:wsa="http://www.w3.org/2005/08/addressing"> <title>Title</title> <link href="http://servicebus.windows.net/services/my/svc" rel="self"/> <id>urn:uuid:82a76c80-d498-12d5-b91C-0103839e0ef6</id> … <entry> <title>MyEndpoint</title> <link href="http://swn/services/my/svc/ep1"/> <id>urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a</id> <wsa:EndpointReference> <wsa:Address> http://servicebus.windows.net/services/my/svc/ep1 </wsa:Address> </wsa:EndpointReference> </entry> </feed>

Page 20: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Service Bus – Messaging

Service Registry

NamingFederated

Identity and Access Control

Messaging Fabric

Page 21: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Primary Programming Model: WCF Family of Bindings for the Service Bus

Service Bus - Messaging

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

Page 22: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Works just like WCF: Envelopes: SOAP 1.1, SOAP 1.2, None All WS-* end-to-end security scenarios Transport-level message path protection (SSL) Reliable Messaging, Streaming Full Extensibility Model Web programming model (WebGet/-Invoke) Metadata Exchange

Not supported: (By Design) Atomic Transaction Flow (By Design) Protocol-level transport authentication (PDC Issue) WebScriptingBehavior JavaScript proxy (PDC Issue) Direct Tcp Modes with RM or WS-* Sec.

WCF Relay Bindings For WCF Pros

Page 23: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

NetOnewayRelayBinding

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/

outb

ound

conn

ect o

ne-w

ay n

et.tc

p TCP/SSL 828

BackendNamingRoutingFabric

Frontend Nodes

TCP/SSL 808/828

outbound connect bidi socket

Msg Msg

NATFirewallDynamic IP

SubscribeRoute

NLB

Page 24: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

NetOnewayRelayBinding

Clemens VastersService Bus Technical Lead.NET Services

demo

Page 25: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

NetEventRelayBinding

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/

outbound connect bidi socketoutb

ound

conn

ect o

ne-w

ay n

et.tc

p TCP/SSL 828

BackendNamingRoutingFabric

Frontend Nodes

TCP/SSL 808/828

Msg Msg

SubscribeRoute

Receiver

outbound connect bidi socketTCP/SSL

828

Msg

Page 26: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

NetEventRelayBinding

Clemens VastersService Bus Technical Lead.NET Services

demo

Page 27: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

NetTcpRelayBinding / Relayed

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/BackendNamingRoutingFabric

Frontend Nodes

Ctrl

1

2

3

4

Socket-SocketForwarderoutbound

socke

t

connect

outbound socket

rendezvous

Ctrl

TCP/SSL 818

OnewayRendezvous

Ctrl Msg

NLB

Page 28: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

NetTcpRelayBinding / Relayed

Clemens VastersService Bus Technical Lead.NET Services

demo

Page 29: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

NetTcpRelayBinding / Hybrid

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/BackendNamingRoutingFabric

Frontend Nodes

Ctrl

rela

yed

conn

ect

OnewayRendezvous

Ctrl Msg

relayed

rendezvous

TCP/SSL 818, 819

NAT

Prob

ing NAT

Probing

NAT Traversal Connection

upgr

ade

upgrade

Page 30: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

NetTcpRelayBinding / Hybrid

Clemens VastersService Bus Technical Lead.NET Services

demo

Page 31: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

[WS|Basic|Web]HttpRelayBinding

Service Bus

Sender Receiver

sb://servicebus.windows.net/services/solution/a/b/BackendNamingRoutingFabric

Frontend Nodes

Ctrl

1

2

3

4

HTTP-SocketForwarder

HTTP

HTTPS

request

outbound socket

rendezvous

Ctrl

HTTP/S80/443

OnewayRendezvous

Ctrl Msg

NLB

Page 32: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

WSHttpRelayBinding (WS-*)WebHttpRelayBinding

(REST) Clemens Vasters

Service Bus Technical Lead.NET Services

demo

Page 33: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Service Bus – Access Control Integration

Service Registry

NamingFederated

Identity and Access Control

Messaging Fabric

Page 34: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Receiver

Access Control

STS

Service BusRelay

RST/RSTR

AcTk

Token Header

AcTk

#Listen

Relay Access Control Model - Listener

Acquire Access Token

#Listen

Pass Access Token with

Subscription

1

2

Token Evaluated

3

Page 35: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

ReceiverSender

Access Control

STS

RST/RSTR

Service BusRelay

AcTk

Token Header

AcTk

#Send

Relay Access Control Model - Sender

Acquire Access Token

#Send

Pass Access Token with Message

Token Evaluated and

Removed

Message Passed on to

Receiver

1

23

4

Page 36: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Integrated Access Control

Access Control Governed by Rules Managed in the Access Control Service Services must be authorized to listen in namespace Evaluation of all claims in the cloud No notion of “identity” in the relayed service

Service can turn off client access control Local evaluation of end-to-end claims Full control over authN/Z model (but less protection)

Clean composition w/ standard SOAP/HTTP model WS-Security Header reserved for E2E Message Security Transparent to HTTP-Header AuthN/AuthZ schemes

Page 37: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Notes on Security

We encourage you to hide your payloads Use WS-Security to protect end-to-end path You own all keys used to protect payloads

Transport security SSL channels terminate in the Service Bus Socket connections relayed on-machine Oneway/Event relayed on backend fabric

What do we look at in the Service Bus? SOAP: Action/wsa:Action, wsa:To, wsa:Action HTTP: Method, URI Access Tokens

Page 38: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Summary

Pervasive, Secure Connectivity for Services Secure NAT Traversal, “DMZ in the sky”

WCF-Integrated Programming Model Attend Session BB12: Thu 10:15am / 408A

Messaging Services: Protocols, Protection, and How We Scale

Protocol Details, Drilldown into all Modes Cross-Platform Support More Security Details A Look Under The Hood

Page 39: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Evals & Recordings

Please fill

out your

evaluation for

this session at:

This session will be available as a recording at:

www.microsoftpdc.com

Page 40: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

Please use the microphones provided

Q&A

Page 41: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.

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

Page 42: Clemens Vasters Service Bus Technical Lead Microsoft Corporation BB38.