The Real-Time Web with SignalR
and Azure Service Bus
Justin Wendlandt
Senior Consultant – Magenic Technologies
http://jwendl.net/
@jwendl on Twitter
Overview
Real Time Web
Implementations
Examples
Signal R
Horizontal Scaling with Azure
Demo
Questions and Answers
Real-Time Web Overview
• Content on Demand vs. Published
• UX Similar to Desktop
Applications
• More Social and Interactive
Forced Video Feed Switching
• Scott Hanselman for DotNetConf
• Problem – Google Hangouts required users to refresh browser to see next
video
• Solution – Have SignalR and Azure Service bus switch out the videos when
an administrator published them
Real-time Deals on Amazon.com
• Real time deals based on
purchased data
• More social and interactive
experience for users
Real-Time Map API Hooks
• Use Bing Api
• Provide Locations of Users When
Discovered
The Web and HTTP
•Browser asks for document
•Server replies with 200 ok and bodyGET
•Browser uploads a document
•Server replies with 200 okPUT
•Browser takes previous response
•Sends modified data to server
•Server replies with 200 ok
POST
•Browser asks server to remove a document
•Server replies with 200 ok and deletes
document
DELETE
•Browser takes previous response
•Browser sends only merged data to server
•Server replies with 200 ok
MERGE
Publish Subscriber Pattern
Publisher
Subscribers
Service Bus
or Hub
Devices
Publish Subscriber Pattern on the Web
• Implemented using Web Sockets
– RFC 6455
– Google
http://www.rfc-editor.org/rfc/rfc6455.txt
Introduction to SignalR
• https://github.com/SignalR
• Most popular implementations
– Jabbr - https://jabbr.net/
Failover Methods if Web Sockets Fail
Web Sockets
Server Sent Events (EventSource)
Forever Frame
Ajax Long Polling
Why Azure?
• Highly Scalable
• Unlimited Bandwidth (for a cost)
• Easy Deployment and
Configuration models
Continuous Integration and Azure
Write Code
Check In to
cloud
A Build is
Kicked off
Deployment
Sent to
Azure
SignalR Demonstration
• Hosted on Azure with TFS (http://tfs.visualstudio.com/)
• Requirements to run Demo
– Windows Azure SDK
– SignalR NuGet package
– ASP.NET MVC 4
Horizontal Scaling Concepts
• Server hardware is expensive
• Configuring more instances is
complex
Azure Service Bus
• Queues
– Holds Messages
– Pushes to Subscribers
• Topics
– Contract
– Specific Messages / Connections
Demo of Azure Service Bus
• Simple demo of Azure Service Bus
Scale out using Azure Service Bus
• Integrated in 1.1 beta for SignalR
• One line of code that does so much
Performance Configurations for IIS
Increase number of concurrent requests per
application
Increase number of concurrent requests per CPU
Increase the request queue limit
Scale out more instances if on Azure or another Service
Bus like Redis
References
• SignalR
– http://signalr.net/
– http://www.asp.net/signalr/overview
– https://github.com/SignalR/SignalR
– http://weblogs.asp.net/davidfowler/
– http://damianedwards.wordpress.com/
– http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongru
nningConnectionsWithSignalR.aspx
• Azure Service Bus
– http://www.windowsazure.com/en-us/develop/net/tutorials/multi-tier-application/
– http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-queues/
– https://github.com/SignalR/SignalR/wiki/Azure-service-bus
• Web Sockets
– http://www.w3.org/TR/websockets/
– http://www.rfc-editor.org/rfc/rfc6455.txt
Questions?
@jwendl on Twitter
jwendl@hotmail.com
http://www.jwendl.net/

Signal r azurepresentation

  • 1.
    The Real-Time Webwith SignalR and Azure Service Bus Justin Wendlandt Senior Consultant – Magenic Technologies http://jwendl.net/ @jwendl on Twitter
  • 2.
    Overview Real Time Web Implementations Examples SignalR Horizontal Scaling with Azure Demo Questions and Answers
  • 3.
    Real-Time Web Overview •Content on Demand vs. Published • UX Similar to Desktop Applications • More Social and Interactive
  • 4.
    Forced Video FeedSwitching • Scott Hanselman for DotNetConf • Problem – Google Hangouts required users to refresh browser to see next video • Solution – Have SignalR and Azure Service bus switch out the videos when an administrator published them
  • 5.
    Real-time Deals onAmazon.com • Real time deals based on purchased data • More social and interactive experience for users
  • 6.
    Real-Time Map APIHooks • Use Bing Api • Provide Locations of Users When Discovered
  • 7.
    The Web andHTTP •Browser asks for document •Server replies with 200 ok and bodyGET •Browser uploads a document •Server replies with 200 okPUT •Browser takes previous response •Sends modified data to server •Server replies with 200 ok POST •Browser asks server to remove a document •Server replies with 200 ok and deletes document DELETE •Browser takes previous response •Browser sends only merged data to server •Server replies with 200 ok MERGE
  • 8.
  • 9.
    Publish Subscriber Patternon the Web • Implemented using Web Sockets – RFC 6455 – Google http://www.rfc-editor.org/rfc/rfc6455.txt
  • 10.
    Introduction to SignalR •https://github.com/SignalR • Most popular implementations – Jabbr - https://jabbr.net/
  • 11.
    Failover Methods ifWeb Sockets Fail Web Sockets Server Sent Events (EventSource) Forever Frame Ajax Long Polling
  • 12.
    Why Azure? • HighlyScalable • Unlimited Bandwidth (for a cost) • Easy Deployment and Configuration models
  • 13.
    Continuous Integration andAzure Write Code Check In to cloud A Build is Kicked off Deployment Sent to Azure
  • 14.
    SignalR Demonstration • Hostedon Azure with TFS (http://tfs.visualstudio.com/) • Requirements to run Demo – Windows Azure SDK – SignalR NuGet package – ASP.NET MVC 4
  • 15.
    Horizontal Scaling Concepts •Server hardware is expensive • Configuring more instances is complex
  • 16.
    Azure Service Bus •Queues – Holds Messages – Pushes to Subscribers • Topics – Contract – Specific Messages / Connections
  • 17.
    Demo of AzureService Bus • Simple demo of Azure Service Bus
  • 18.
    Scale out usingAzure Service Bus • Integrated in 1.1 beta for SignalR • One line of code that does so much
  • 19.
    Performance Configurations forIIS Increase number of concurrent requests per application Increase number of concurrent requests per CPU Increase the request queue limit Scale out more instances if on Azure or another Service Bus like Redis
  • 20.
    References • SignalR – http://signalr.net/ –http://www.asp.net/signalr/overview – https://github.com/SignalR/SignalR – http://weblogs.asp.net/davidfowler/ – http://damianedwards.wordpress.com/ – http://www.hanselman.com/blog/AsynchronousScalableWebApplicationsWithRealtimePersistentLongru nningConnectionsWithSignalR.aspx • Azure Service Bus – http://www.windowsazure.com/en-us/develop/net/tutorials/multi-tier-application/ – http://www.windowsazure.com/en-us/develop/net/how-to-guides/service-bus-queues/ – https://github.com/SignalR/SignalR/wiki/Azure-service-bus • Web Sockets – http://www.w3.org/TR/websockets/ – http://www.rfc-editor.org/rfc/rfc6455.txt
  • 21.