Your SlideShare is downloading. ×
Scott densmore-sic-2011
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Scott densmore-sic-2011


Published on

Scott Densmore's presentation at Seattle Interactive Conference 2011

Scott Densmore's presentation at Seattle Interactive Conference 2011

Published in: Technology

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. BUILDING CLOUD APPSWITH IOSScott Densmore – Senior SDE patterns &practices
  • 2. Agenda This talk is focused on building iOS applications with Windows Azure We’ll talk about storage, identity, communications, platform services, and tools I’ll show a few demos for the concepts
  • 3. Expectations An understanding of how storage, identity, and communications work with iOS when using Windows Azure
  • 4. Why Device + Cloud? The cloud levels the playing field The cloud provides a larger pool of resources from which to pull The cloud provides a way to reach across device platforms
  • 5. Why Windows Azure? Platform as a Service (PaaS): you build it, Windows Azure runs it Automatic O/S patching Elasticity and scale Utility billing Higher-level services  ACS, Traffic Manager, Caching, CDN
  • 6. What will we see today? Storage Identity Communications Platform Services
  • 7. Storage
  • 8. Storage: What are our options? Windows Azure Tables  Non-relational structured storage  Massive scale-out  OData Windows Azure Blobs  Big files  REST Windows Azure Queues  Persistent Async Messaging  Enqueue, Dequeue
  • 9. Storage: What are our options? SQL Azure  Relationaldatabase  Highly available  Managed for you as a service
  • 10. Storage: Secrets Windows Azure  Storage name  Storage key SQL Azure  Username  PasswordOnce your share your secret, it’s no longer secret
  • 11. Storage: How to keep secretssecret?Proxy the requests (2)1. Client sends data to web role Web Role2. Web role sends data to storage (1)
  • 12. Storage: Shared AccessSignatures1. Client makes request of Web Role for SAS (4) Web2. Web Role sends client Role SAS (2) (3)3. Client makes request (1)4. Client gets response
  • 13. Storage: SQL Azure1. Client sends request to proxy (2) Web2. Proxy makes SQL call Role (3) against SQL Azure (4)3. SQL Azure returns a response4. Proxy returns response to (1) device
  • 14. Storage: Offloading work withqueues1. Client writes a message to a queue Worker (2 Role2. Worker role is polling ) the queue (3)3. Worker role finds the message (1)
  • 15. Storage: What are the options?Choices Direct Proxy OtherBlob (private) x x x (SAS)Blob (public) x x (write) x (read- only)Table x xQueue x xDatabase x
  • 16. demoiOS and Storage
  • 17. Identity
  • 18. Identity: What are the options? Create your own  Username + password, token, etc.  ASP.NET Membership Providers Use a single existing identity system  Live Id, Facebook, etc.  Develop directly against Identity Provider protocol Outsource identity management  Access Control Service
  • 19. Identity: Authenticating Users withACS Web Role Access Control Service
  • 20. demoiOS and Identity
  • 21. Communications
  • 22. Communications Two forms of communication with devices Device-initiated Cloud-initiated
  • 23. Communications: Device-initiated Device-initiated options HTTP-based, request/response Framework choices (WCF, OData, WebRequest, etc.) Wire format choices (SOAP, JSON, POX, etc.)
  • 24. Communications: Cloud-initiated Push Notifications  Single connecting between the device and the notification service  Bandwidth- and battery-friendly  No guarantee of delivery
  • 25. Communications: Subscribing toPush Device requests a channel Web *NS returns channel Role *NS Device sends URL to cloud  Channel URL is stored in cloud Cloud sends notification *NS pushes to device
  • 26. Communications: Cloud to Device Common pattern  Use cloud-initiated push to tell the device to call to a service Web *NS Role Cloud sends notification Notification services pushes to device Device receives message and calls to a service Web Role sends a response
  • 27. Communications: Differentnotifications Windows 8: Windows Push Notification Service (WNS) Windows Phone: Microsoft Push Notification Service (MPNS) iOS: Apple Push Notification Service (APNS) Android: Cloud To Device Messaging (C2DM)
  • 28. demoiOS and Communications
  • 29. Platform Services
  • 30. Platform Services Traffic Manager Content Delivery Network (CDN) SQL Azure Data Sync  SQL Azure  Windows Azure Storage Caching
  • 31. Putting it all together
  • 32. Any pictures? WAZ SAS Storage Process Image Store Image in Windows Azure UserAuthenticate Shared Token Access Access Send Notification WindowsImage Process Signature Azure Authentication Blob Storage Translated Translated Text Send ImageTranslated Text Apple Push Text Notification Service Hawaii OCR & Bing Translator
  • 33. Tools and Resources
  • 34. Toolkits Easier for device developers to use Windows Azure  Windows Phone:  iOS:  Android:  OData: Toolkits include:  Native libraries (e.g. .NET, Objective-C)  Samples  Project templates  Documentation
  • 35. Questions
  • 36. Windows Azure Office Hours Talk to an expert Download the SDK and toolkits Get a free trial Enter to WIN a Samsung Focus Windows phone
  • 37. Vote your evaluationThis session was . . . A little lite Just right More than I hoped for!
  • 38. Coming soon to a tent near you!