discover the capabilities of windows azure service bus to power agile business models
DESCRIPTION
This presentation provides an overview of how the Windows Azure Service Bus cloud computing platform can power an agile business model. The enterprise full lifecyle from marketing and demand generation to order fulfillment is illustrated taking into account real-world systems integration concerns such as interoperability, availability, scalability, and mobility.TRANSCRIPT
Discover the Capabilities of Windows Azure Service Bus to Power Agile Business Models
Sergio Compean – Director, Application Platforms
About Me – Sergio Compean• Entrepreneur, Passionate Innovator, Culture Builder, Design
Thinker• Professional Experience
• Application Platforms and Integration Solutions, Strategy, GTM, Process Capability, Research and Development
• Enterprise Architecture, Business Transformation and Innovation• Interoperability Industry Standards (Basic Profile, OASIS)• Worked with Windows Azure since Beta
• Personal Interests• Advancing Developing World with Cloud Technology• Leveraging Cloud Systems for Disaster Response and Recovery• Enhancing Social Interactions with Cloud-Driven Mobile, Contextual
Software• Making the World a Better Place through Technology
Agenda• Windows Azure Service Bus Fundamentals• Compes, Inc.• AMQP 1.0• Notification Hubs• Cloud Development
Overview
Cloud Opportunity
Elastic Scale Managed Infrastructure
High Availability
Time-to-Market Best-in-Class Opex vs Capex Insight Delivery
Global Reach
Windows Azure Service Bus
Line of Business
Application
Event Aggregator
Collaboration
Site …
Household Appliance
Phone, Tablet, PC
Point of Sale Kiosk
SaaS Cloud Service Solution
Queues Topics Relays Notification Hubs
Access Control
NamespacesMulti-tenant Cloud Services
Brokered MessageBroker Message
Body
Properties
Key Value
Key Value
Key Value
Key Value
Body
• Message Metadata• Criteria for Filters• Exposed to Broker• Key/Value Payloads• Opaque Payload in Body• Encrypted Payload in Body
Brokered Messaging - Queues
S R
R
Orders
• Asynchronous One-Way Queuing • Message Processed by One Receiver• ReceiveAndDelete, PeekLock, Peek • Load Leveling/Balancing with Multiple Receivers
Brokered Messaging - Topics
S Price > 10 & Price < 20
Expedited = true
ShipDestination = ‘CA’
R1
R3
R
RR2
OrdersTopic
Subscriptions
• Asynchronous Publish/Subscribe• Message Processed by Multiple Subscribers• ReceiveAndDelete, PeekLock, Peek • Partition Message Stream for Specialized Processing
Relays
WCF NET.TCP
WCF Plain HTTPSOAP/HTTP
HTTP, SOAP/HTTP, or NET.TCP Clients
REST/HTTP
NAT/Firewalls
Relays
• Synchronous Connection• Two-Way Communication• Firewall/NAT
Transparency• WCF Bindings• Not a Broker
Access Control Service
/ foo bar baz
abc
pqr
def
ghi
beeboo
owner: Sendowner: Listen
owner: Manage
Fred: SendAlice: Send
Peter: Listen
John: Manage
• Federated Claims-Based User Authorization• Claims Map to Permissions on Service Bus Entities
Shared Access Signature
/ foo bar baz
abc
pqr
def
ghi
beebooFull: Manage, Listen, SendListen: Listen
Shared Access Keys
• Access Key Authentication• Security Policies for Service Bus Entities (Queues, Topics, Hubs)
Full: Manage, Listen, Send
Shared Access Key
Connected 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)
Python/PHP
Apache Proton
Windows (.NET) Others (incl. non .NET Windows)
HTTP(S)
PHPclient
Node.js
client
Python
client
Java/JMS
Apache Qpid JMS AMQP 1.0
Any HTTPclient
Scenario
WNS
MarketingNotification Hub
Marketing Promotions
Windows Phone/ Google Android
Windows 8
GCM MPNS
ERP
CRM
Fulfillment
Orders
Service Bus Queue
BOM Cloud Service
BOM
Compes, Inc.
Windows Azure Management Portal
Topics for AMQP 1.0 Order Processing
Line-of-Business Subscriptions
Marketing Notification Hub
AMQP 1.0
Advanced Message Queuing Protocol 1.0• OASIS Open Standard Protocol Specificationhttp://docs.oasis-open.org/amqp/core/v1.0/amqp-core-complete-v1.0.pdf
• Consortium of Technology/Financial Services• Enables Cross-Platform Queuing Applications• Portable Data Representation• Broker Independent Model• Supported By Third-Party Libraries, Frameworks
Azure Service Bus AMQP 1.0 SupportClients / Applications
NetMessagingBinding
.NET Service Bus Messaging 2.1 API
.NET WCF Service Model
SB Messaging Protocol(net.tcp, proprietary)
AMQP 1.0
Service Bus
Windows (.NET) Others (incl. non .NET Windows)
HTTP(S)
PHPclient
Node.js
client
Python
client
Any HTTPclient
Java/JMS
Apache Qpid JMS AMQP 1.0
C/C++(incl
Embedded)
Python/PHP
Apache Proton
ServiceBus.Messaging 2.1
Installed Package
Apache Qpid JMS AMQP 1.0 Client • Download from http://people.apache.org/~rgodfrey/qpid-java-amqp-1-0-client-jms.html.
• qpid-amqp-1-0-common-0.22.jar• qpid-amqp-1-0-client-0.22.jar• qpid-amqp-1-0-client-jms-0.22.jar• geronimo-jms_1.1_spec-1.1.jar• Include in CLASSPATH• Built Using Eclipse
Apache Proton with AMQP 1.0• Download from http://qpid.apache.org/proton/download.html
• Python• PHP• Deployed on Linux VM in Windows Azure IaaS• Built Using Make
AMQP Messaging Demo• Visual Studio .NET Sender Walk-thru• .NET Sender and Java Receiver over AMQP• .NET Sender and Python Receiver over AMQP running on Linux
VM• .NET Sender and PHP Receiver over AMPQ running on Linux VM• Receiver Walk-thru
Notification Hubs
Using Notification Hubs• 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 all PNS
APNsWNS
Service Bus Notification Hub
App back-end
Windows Phone/ iOS/Android
Windows Storeapp
GCM
Windows 8 Notifications
Windows Phone Notifications
Google Android Notifications
Notification Hub Demo• Notification Hub Setup on Azure Management Portal• Azure Service Bus Notification to Windows 8 • Azure Service Bus Notification to Windows Phone• Azure Service Bus Notification to Google Android Phone• Server-Side Push Application Walk-thru
Cloud Development
Cloud Development• Browsing and Management• Paired Namespaces• Retry Policies• Event-Based Model• Diagnostics
Message Browsing
QueueClient queueClient = QueueClient.Create("myQ");
var message = queueClient.Peek(); // does not lock the message
var message = queueClient.Peek(fromSequenceNumber: 4); // specific starting point
var messages = queueClient.PeekBatch(messageCount: 10); // supports batching
Queue Management
QueueDescription qd = namespaceManager.GetQueue("myQ");
qd.Status = EntityStatus.Disabled; //all operations blocked
qd.Status = EntityStatus.SendDisabled; //can continue to de-queue
qd.Status = EntityStatus.ReceiveDisabled; //can continue to en-queue
qd.Status = EntityStatus.Active; //all operations allowed
namespaceManager.UpdateQueue(qd);
Paired Namespaces for High Availability
Service BusNamespace
Web / FrontendRoles
Service Bus Paired Namespace
Syphon enabled
Worker / Backend Roles
App back-end
Development Demo• Visual Studio Service Bus Explorer• Visual Studio Service Bus Subscription Management• Cloud Service Walk-thru• Paired Namespaces Failover Walk-thru• Cloud Diagnostics
More Resources• Relayed and Brokered Messaging• Queues, Topics, and Subscriptions• Service Bus Authentication and Authorization with the
Access Control Service
• Shared Access Signature Authentication with Service Bus
• Windows Azure Notification Hubs Overview• AMQP 1.0 Support in Windows Azure Service Bus• Service Bus Class Library
Thank You