Scott densmore-sic-2011


Published on

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

No notes for slide

Scott densmore-sic-2011

  1. 1. BUILDING CLOUD APPSWITH IOSScott Densmore – Senior SDE patterns &practices
  2. 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. 3. Expectations An understanding of how storage, identity, and communications work with iOS when using Windows Azure
  4. 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. 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. 6. What will we see today? Storage Identity Communications Platform Services
  7. 7. Storage
  8. 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. 9. Storage: What are our options? SQL Azure  Relationaldatabase  Highly available  Managed for you as a service
  10. 10. Storage: Secrets Windows Azure  Storage name  Storage key SQL Azure  Username  PasswordOnce your share your secret, it’s no longer secret
  11. 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. 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. 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. 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. 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. 16. demoiOS and Storage
  17. 17. Identity
  18. 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. 19. Identity: Authenticating Users withACS Web Role Access Control Service
  20. 20. demoiOS and Identity
  21. 21. Communications
  22. 22. Communications Two forms of communication with devices Device-initiated Cloud-initiated
  23. 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. 24. Communications: Cloud-initiated Push Notifications  Single connecting between the device and the notification service  Bandwidth- and battery-friendly  No guarantee of delivery
  25. 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. 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. 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. 28. demoiOS and Communications
  29. 29. Platform Services
  30. 30. Platform Services Traffic Manager Content Delivery Network (CDN) SQL Azure Data Sync  SQL Azure  Windows Azure Storage Caching
  31. 31. Putting it all together
  32. 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. 33. Tools and Resources
  34. 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. 35. Questions
  36. 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. 37. Vote your evaluationThis session was . . . A little lite Just right More than I hoped for!
  38. 38. Coming soon to a tent near you!