Download - Signal r azurepresentation
The Real-Time Web with SignalRand Azure Service BusJustin 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 ok PUT
•Browser takes previous response
•Sends modified data to server
•Server replies with 200 okPOST
•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 okMERGE
Publish Subscriber Pattern
Publisher
Subscribers
Service Bus
or Hub
Devices
Publish Subscriber Pattern on the Web• Implemented using Web Sockets
– RFC 6455
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
http://www.jwendl.net/