Document 213676

•
•
•
•
•
•
•
Integrated w/ WCF
programming model
Using Outbound
Connections Only
Frontend
Nodes
No open inbound
firewall/NAT ports
Outbound connections
default to TCP
Fall back to HTTP when
needed
Guarded by Datacenter
Firewall
Secured with Access
Control
Service Bus
Ctrl
NLB
Ctrl
Forwarder
Sender
Receiver
Subs
?
Retail Points
of Sale
Real Time
Retail Analytics
Inventory and
Fulfillment
Centers
Business
Operations
Service Bus
Store
Queue
Inventory
Service Bus
Store
Queue
Load Leveling
Inventory
Store
Service Bus
Store
Queue
Inventory
Store
Store
Load Balancing
Inventory
Audit
Service Bus
Store
Data Collection
Topic
Audit Taps
Sub
Sub
Inventory
Audit
Service Bus
Store
Data Collection
Topic
Sub
Sub
Inventory
Sub
Dashboard
Real-Time Observation
Audit
Service Bus
Data Collection
Topic
Store
Sub
MartVue
Analyzer
Analysis Topic
Real-Time Analysis
Sub
Sub
Inventory
Sub
Sub
Dashboard
Audit
Service Bus
Data Collection
Topic
Store
Sub
Scale-Out
Eventing
MartVue
Analyzer
Analysis Topic
Sub
Sub
Sub
Inventory
Sub
Sub
Catalog Topic
Dashboard
QueueDescription destinationQ = new QueueDescription("myQ2");
QueueDescription sourceQ = new QueueDescription("myQ1");
sourceQ.ForwardTo = “myQ2";
QueueClient queueClient = QueueClient.Create("myQ");
BrokeredMessage message = queueClient.Receive();
message.RenewLock();
message.LockedUntilUtc; // check to see when you need to renew
QueueDescription qd = namespaceManager.GetQueue("myQ");
qd.Status = EntityStatus.Disabled;
namespaceManager.UpdateQueue(qd);
qd.Status = EntityStatus.Active;
namespaceManager.UpdateQueue(qd);
TopicDescription td = new TopicDescription("Topic");
td.EnableFilteringMessagesBeforePublishing = true;
// throws NoMatchingSubscriptionException on send
NamespaceManager nm = NamespaceManager.Create();
QueueDescription myQ = nm.GetQueue("myQ");
var active = myQ.MessageCountDetails.ActiveMessageCount;
var deadLettered = myQ.MessageCountDetails.DeadLetterMessageCount;
var scheduled = myQ.MessageCountDetails.ScheduledMessageCount;
var transfer = myQ.MessageCountDetails.TransferMessageCount;
Onpremise
Cloud
On-Premises pub-sub
Develop&
Deploy
Develop On-premise
Develop
Deploy
Flexible Deployment
Deploy
Deploy
Tiered Deployment
Data
App
Why & What
•Enterprise applications developed and deployed on-premise.
•Scale ; HA ; Manageability ; Rich messaging feature set
•High fidelity develop, test, debug experience
•DevBox deployment (HW&SF pre-reqs) ; Tools (VS); debug mode ; symmetry
•Driven by enterprise desire for deployment choice
•Full symmetry ; Ease of migration
•Maintain control of mission critical data / systems
•Unable/unwilling to migrate legacy systems
•Gradual migration to cloud
•Message Federation
PS C:\Program Files\Service Bus\1.0> Get-SBClientConfiguration
Endpoint=sb://hostName/ServiceBusDefaultNamespace; StsEndpoint=https://hostName:9355/ServiceBusDefaultNamespace;
RuntimePort=9354;ManagementPort=9355
<appSettings>
<add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://hostName/ServiceBusDefaultNamespace;
StsEndpoint=https://hostName:9355/ServiceBusDefaultNamespace; RuntimePort=9354;ManagementPort=9355"/>
</appSettings>
string connectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"];
MessagingFactory factory = MessagingFactory.CreateFromConnectionString(connectionString);
NamespaceManager namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
Language
C#
Java
C
PHP
Python
Library
Service Bus .NET Client Library
Apache Qpid Java Message Service (JMS) client
IIT SwiftMQ Java client
Apache Qpid Proton-C
Apache Qpid Proton-PHP
Apache Qpid Proton-Python
Ruby
Apache Qpid Proton-Ruby (coming soon)
Perl
Apache Qpid Proton-Perl (coming soon)
JavaScript
Apache Qpid Proton-JavaScript (coming soon)
Linux (Azure)
SwiftMQ
Broker
Monitor
Service Bus
Windows (on-prem)
Transformer
Archiver
Twitter