Connected clients & continuous services Line of Business Application Event Aggregator Team Sharepoint Site … Household Appliance Phone, Tablet, PC Point of Sale Kiosk SaaS Cloud Service Solution Queues TopicsRelays Notification Hubs
ROLE 1 ROLE 2 Q/T Durable 1:1 – 1:n – Filtered Sessions w/State De-duplication Transactions Batching Scheduling & TTL Auto-forwarding Dead-lettering Features: And Many More…
Cloud-Hosted Service Service DB On-Premises Resources Relay
Modern and engaging applications
Cloud-Hosted Service Notification Hub
Registration at app launch Client app contacts Platform Notification Service, to retrieve current device/channel handle (e.g. ChannelURIs, device tokens) App updates handle in back-end Sending Notification App back-end send notification to the PNS PNS pushes the notification to the app on the device Maintenance Delete expired handles when PNS rejects them Platform Notification Service App back-end Client app
One-time set up Create a Notification Hub in Service Bus It contains the credentials required by the Platform Notification Service (PNS) Register The client app retrieves its current handle from the PNS Client app creates (or updates) a registration on the Notification Hub with the current handle Send Notification The app back-end sends a message to the Notification Hub Notification Hub pushes it to the PNS’ APNsWNS Service Bus Notification Hub App back-end iOS app Windows Store app
Service Bus Notification Hub App back-end Tag:”Beatles” Tag:”Wailers” Tag:”Beatles”
Service Bus Notification Hub App back-end $(message) { aps: { alert: “$(message)” } { message: “Hello!” } Hello!
Location transparency
Heterogeneous clients
Clients / Applications NetMessagingBinding.NET Service Bus Messaging API.NET WCF Service Model SB Messaging Protocol (net.tcp, proprietary) AMQP 1.0 Service Bus C/C++ (incl Embedded) Apache Proton-C Windows (.NET) Others (incl. non.NET Windows) HTTP(S) PHP client Node.j s client Python client Java/JMS Apache Qpid JMS AMQP 1.0 Any HTTP client
Addressability
Connectivity
Devices PC Browsers Basic Devices IIS (Node.js) Server Service Bus Topic
Security
Resilience
MessagingFactory mf = MessagingFactory.Create(); mf.RetryPolicy = RetryExponential.Default; // retry on transient errors until the OperationTimeout is reached mf.RetryPolicy = RetryPolicy.NoRetry; // disables retry for transient errors
Service Bus Namespace Web / Frontend Roles Worker / Backend Roles
Service Bus Namespace Web / Frontend Roles Service Bus Paired Namespace
Service Bus Namespace Web / Frontend Roles Service Bus Paired Namespace Syphon enabled Worker / Backend Roles
Service Bus Namespace Web / Gateway Roles Worker / Backend Roles Service Bus Paired Namespace
factory = MessagingFactory.Create(SB_Primary_NS_Address); factory.PairNamespace(new SendAvailabilityPairedNamespaceOptions { EnableSyphon = true, TransferQueueCount = 10, MessagingFactory = paired-NS_factory, NamespaceManager = paired-NS_manager }); factory.Open();
Connected clients & continuous services Line of Business Application Event Aggregator Team Sharepoint Site … Household Appliance Phone, Tablet, PC Point of Sale Kiosk SaaS Cloud Service Solution Queues TopicsRelays Notification Hubs
Windows Enterprise: windows.com/enterprisewindows.com/enterprise
Drop by the Windows Azure booth to participate in the Windows Azure Challenge for even more prizes! MSDN Subscribers: you’ve got it, now use it Activate your MSDN Benefit & try it by 9/30 You could win* an Aston Martin V8 Vantage! Go to: