itcamp 2011 - florin cardasim - duplex communications with wcf and azure
TRANSCRIPT
![Page 1: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/1.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
IT Camp 2011
• Thanks for coming!
• ITCamp is made possible by our sponsors:
![Page 2: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/2.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Duplex Communications with WCF and Azure
Florin Cardașim, software developer
RomSoft Iași, www.rms.ro
[email protected] | twitter.com/cardasim
![Page 3: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/3.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Session agenda
• Enterprise duplex. Non-browser clients
– WCF duplex bindings, router service
– Windows Azure Service Bus
• Web duplex. Browser clients
– Simple polling, comet/long polling
– WebSockets
• Q&A
![Page 4: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/4.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
ENTERPRISE DUPLEX
Non-browser clients
- WCF duplex bindings, router service
- Windows Azure Service Bus
![Page 5: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/5.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Full duplex using WCF NetTcpBinding
Event consumer
Event publisher
Publisher requires public IP Custom ports open in firewall
Full duplex TCP
![Page 6: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/6.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
“Full duplex” using WCF WSDualHttpBinding
Event consumer
Event publisher
Network address translation makes connection back
impossible
Duplex HTTP
NAT
![Page 7: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/7.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
“Full duplex” using WCF WSHttpBinding
Event consumer
Event publisher
Publisher and consumers require public IP That’s fine, BUT we want the servers INSIDE the enterprise
Dual HTTP
![Page 8: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/8.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
WCF Router Service
Event consumer
Event publisher
Firewall and NAT friendly Routers have protocol bridging, failover etc Not bad, but quite crowded. Can you do better?
Dual HTTP TCP TCP
Router Service Router Service
![Page 9: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/9.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Windows Azure Service Bus
Event consumer
Event publisher
Relay Service
sb://itcampnamespace.servicebus.windows.net/publisher
![Page 10: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/10.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
DEMO
Connecting the enterprises via:
-NetTcpBinding, WsDualHttpBinding
-RouterService, NetTcpBinding, WsDualHttpBinding
-Service Bus, NetEventRelayBinding
![Page 11: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/11.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Enterprise duplex: conclusions
• Direct TCP is best IF available • public endpoint , open ports in firewall
• Duplex HTTP is an alternative • public IP both publisher and consumer, port 80
• Router Service bridges the enterprises • flexible, but quite complicated deployment
• Azure Service Bus • very flexible & powerful; requires careful planning
because each connection costs money
![Page 12: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/12.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
WEB DUPLEX
Browser clients
- Simple polling, comet/long polling
- WebSockets
![Page 13: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/13.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Http polling
• Wasted resources, many requests return no data
• Frequent polling means higher load on the server
![Page 14: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/14.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Comet/long polling
• Bandwidth: small payload, large http headers overhead
• Scalability: pressure on memory, bandwidth, threads/processes
![Page 15: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/15.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
DEMO
An open source, WCF based, long polling server implementation:
http://laharsub.codeplex.com/
![Page 16: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/16.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Html5 WebSockets
• Full duplex, bidirectional
• Single TCP socket
• Standard ports: http/80, https/443
• Bandwidth savings
• More scalable than Comet
• Nice programming model
• In&outside of browser
Server
Client
Drafts: -IETF WebSockets Protocol
-W3C WebSockets API
![Page 17: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/17.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Html5/websockets: server
• Socket.IO (Java, node.js)
• Jetty (Java)
• Ruby/EventMachine
• Python/Twisted
• WCF websocket prototype
• … others
• Socket.IO Fallbacks – Adobe Flash Socket
– AJAX Long Polling
– AJAX Multipart Streaming
– Forever iFrame
– JSONP Polling
• http://socket.io/
![Page 18: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/18.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Html5/websockets: server
• Test browser support: http://websocket.org/echo.html
• Microsoft is still experimenting
• http://html5labs.com
![Page 19: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/19.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
DEMO
Some WebSockets in action:
http://kaazing.me
http://retrospectiveapp.heroku.com
![Page 20: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/20.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
DEMO
Using the WCF WebSockets prototype from http://html5labs.com
![Page 21: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/21.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
References
• channel9.msdn.com/Learn/Courses/Azure/ServiceBus
• en.wikipedia.org/wiki/Comet_%28programming%29
• html5rocks.com/tutorials/websockets/basics
• websocket.org
• pusher.com
• kaazing.com
• live.visitmix.com/MIX11?q=web+sockets
• paulbatum.com
![Page 22: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/22.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Q&A
![Page 23: ITCamp 2011 - Florin Cardasim - Duplex Communications with WCF and Azure](https://reader034.vdocument.in/reader034/viewer/2022052307/55526748b4c9052e1f8b4fb2/html5/thumbnails/23.jpg)
@itcampro / #itcampro Premium conference on Microsoft’s Dev and ITPro technologies
Don’t forget!
Get your free Azure pass!
• 30+15 days, no CC req’d
– http://bit.ly/ITCAMP11
– Promo code: ITCAMP11
We want your feedback!
• Win a WP7 smartphone
– Fill in your feedback forms
– Raffle: end of the day