Service Bus
Pavlo Revenkov
EPAM Cloud Computing Competency Center
Email: pavlo_revenkov@epam.com
Skype: rp_risingstar
Windows Azure Queue

2
Worker-role

Web-role

Worker-role
Web-role

Worker-role
Windows Azure Services Bus
Worker-role

Web-role

Queue #1

Worker-role
Web-role

Topic

Queue #N

Worker-role

3
4
Windows Azure
Queues

Windows Azure
Service Bus Queues

- No ordering guarantee

- First-In-First-Out

- At-Least-Once delivery

- At-Least-Once, At-Most-Once

- Message size up to 64 KB

- Message size up to 256 KB

- Queue size up to 100 TB

- Queue size up to 5 GB

- One-to-one message delivery

- Publish/Subscriber

- Time-to-live up to 7 days

- Time-to-live unlimited

- In-place update

- No in-place update
Management

5

URI: sb://<namespace>.servicebus.windows.net/
Namespace Manager
Management
Queues

Topics

Subscriptions

QueueClient

TopicClient

SubscriptionClient

Send

Receive
Workflow

6

var namespaceManager =
NamespaceManager.CreateFromConnectionString(
CloudConfigurationManager.GetSetting(connectionString));
if (!namespaceManager.SubscriptionExists(path))
namespaceManager.CreateSubscription(new SubscriptionDescription(path));
var subscriptionClient = Microsoft.ServiceBus.Messaging.SubscriptionClient
.CreateFromConnectionString(...);
var message = subscriptionClient.Receive();
try
{
...
message.Complete();
}
catch (Exception)
{
message.Abandon();
}
Service Bus Relay

7

Worker-role
Web-role

WCF-service

Client
Configuration
Everything you need is to change “*.config” file!
<extensions>
<bindingExtensions>
<add name=“netTcpRelayBinding”
type=“Microsoft...NetTcpRelayBindingCollectionElement” />
...
<behaviorExtensions>
<add name=“transportClientEndpointBehavior”
type=“Microsoft...TransportClientEndpointBehaviorElement” />
...

<behavior name=“sbTokenProvider”>
<transportClientEndpointBehavior>
<tokenProvider>
<sharedSecret issuerName=“[NAME]” issuerSecret=“[KEY]” />
...
<endpoint contract=“<contractname>”
binding=“netTcpRelayBinding”
address=“sb://<namespace>.servicebus.windows.net/<servicename>”
behaviorConfiguration=“sbTokenProvider” />

8
Demo

9
References

10

How to use the Service Bus



windowsazure.com/en-us/develop/net/how-to-guides/service-bus-queues/
windowsazure.com/en-us/develop/net/how-to-guides/service-bus-topics/

Hybrid application using Service Bus Relay


windowsazure.com/en-us/develop/net/tutorials/hybrid-solution/

Windows Azure Queues vs. Windows Azure Service Bus


msdn.microsoft.com/en-us/library/windowsazure/hh767287.aspx
Questions?

11

Windows Azure Service Bus