Your SlideShare is downloading. ×
Windows Azure Toolkit for iOS
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

Windows Azure Toolkit for iOS

2,349

Published on

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,349
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
16
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Segoe UI
  • Transcript

    • 1. Windows Azure Toolkit for iOS
      Simon Guest
      Director, Mobility Solutions
      Neudesic, LLC
      simon.guest@neudesic.com
    • 2.
    • 3. 26% of the US Smartphone Market
      95% of the WW Tablet Market
    • 4. Over 80% of the F500 testing and/or deploying
      iPad applications in the Enterprise
    • 5. Over 350,000 iPhone Apps
      Over 100,000 iPad Apps
    • 6. Apple will have sold another 54 iPhones and 11 iPads
    • 7.
    • 8. Many mobile-cloud scenarios
    • 9. iPhone/iPad device on the front end
      Windows Azure on the back end
    • 10. Using Windows Azure services from iOS is complex
    • 11.
    • 12. Mobile Scenarios enabled by Windows Azure
      Windows Azure Toolkit for iOS
      Future Direction and Thoughts
    • 13.
    • 14. 1. Storing and Accessing Photos, Videos, Music
    • 15. 2. Storing and Accessing Structured Data
      Title: Frog on a twig
      Author: Simon Guest
      Date: 7/26/2011
      Time: 12.45pm
      Notes: <…>
    • 16. 3. Sharing with Others
      Title: Frog on a twig
      Author: Simon Guest
      Date: 7/26/2011
      Time: 12.45pm
      Notes: <…>
      Message: “Check out my new photo!”
    • 17.
      • Most suitable for binary data (images, video, audio)
      • 18. Container-based approach
      • 19. Streaming and multi-part
      Blob Storage
      • Most suitable for structured data
      • 20. Dynamic schema
      • 21. Partitioning to enable scale
      Table Storage
      • Most suitable for short messages
      • 22. First in, First out mechanism
      • 23. Limited durability
      Queue Storage
    • 24.
      • Most suitable for binary data (images, video, audio)
      • 25. Container-based approach
      • 26. Streaming and multi-part
      Blob Storage
      • Most suitable for structured data
      • 27. Dynamic schema
      • 28. Partitioning to enable scale
      Table Storage
      • Most suitable for short messages
      • 29. First in, First out mechanism
      • 30. Limited durability
      Queue Storage
    • 31. Then, why so complex?
    • 32. Blob Storage
    • 33. Blob Storage
    • 34. REST Endpoint:
      http://[account].blob.core.windows.net
      List, Create, and Delete Containers
      List, Put, Get, Delete Blobs
      Blob Storage
    • 35. REST Endpoint:
      http://[account].blob.core.windows.net
      List, Create, and Delete Containers
      List, Put, Get, Delete Blobs
      GET http://iostest.blob.core.windows.net/?comp=list&include=metadata
      x-ms-date: Thu, 14 Apr 2011 20:30:00 GMT
      x-ms-version: 2009-09-19
      x-ms-blob-type: BlockBlob
      Authorization: SharedKeyiostest:[ComputedHash]
      Blob Storage
    • 36. How do I get that computed hash?
    • 37. REST Endpoint:
      http://[account].blob.core.windows.net
      List, Create, and Delete Containers
      List, Put, Get, Delete Blobs
      AccountKey: /9seXadQ9HwOpXUO1jKxFN8q…
      Request: GETnnnnnnnnnnnnx-ms-blob-type:BlockBlobnx-ms-date:Thu, 14 Apr 2011 20:30:00 GMTnx-ms-version:2009-09-19n/iostest/ncomp:listninclude:metadata
      Hash = HMACSHA256(UTF8Encode(Request), Base64Decode(AccountKey))
      Blob Storage
      Account Key:
      /9seXadQ9HwOpXUO1jKxFN8q…
    • 38. GET http://iostest.blob.core.windows.net/?comp=list&include=metadata
      x-ms-date: Thu, 14 Apr 2011 20:30:00 GMT
      x-ms-version: 2009-09-19
      x-ms-blob-type: BlockBlob
      Authorization: SharedKeyiostest:[ComputedHash]
      <?xml version="1.0" encoding="utf-8"?>
      <EnumerationResultsAccountName="http://myaccount.blob.core.windows.net/">
      <Prefix>c</Prefix>
      <MaxResults>3</MaxResults>
      <Containers>
      <Container>
      <Name>container1</Name>
      <Url>http://iostest.blob.core.windows.net/photos</Url>
      <Properties>
      <Last-Modified>Sun, 14 Apr 2011 20:09:03 GMT</Last-Modified>
      </Properties>
      </Container>
      </Containers>
      REST Endpoint:
      http://[account].blob.core.windows.net
      List, Create, and Delete Containers
      List, Put, Get, Delete Blobs
      Blob Storage
      Account Key:
      /9seXadQ9HwOpXUO1jKxFN8q…
    • 39. REST Endpoint:
      http://[account].blob.core.windows.net
      List, Create, and Delete Containers
      List, Put, Get, Delete Blobs
      PUT http://iostest.blob.core.windows.net/photos/party.jpg
      x-ms-date: Thu, 14 Apr 2011 20:30:00 GMT
      x-ms-version: 2009-09-19
      x-ms-blob-type: BlockBlob
      Authorization: SharedKeyiostest:[ComputedHash]
      {...binary representation of photo...}
      Blob Storage
      Account Key:
      /9seXadQ9HwOpXUO1jKxFN8q…
    • 40. Repeat process for every service call
    • 41.
    • 42. Different authentication signatures between
      table, blob, and queue storage
    • 43. XML Parsing in Objective C hurts
    • 44. Memory allocation/disposal of objects
    • 45.
    • 46.
    • 47.
    • 48. Toolkit should be as simple as possible
      Everything works on the Mac
      Enable others to contribute
    • 49. Title: Frog on a twig
      Author: Simon Guest
      Date: 7/26/2011
      Time: 12.45pm
      Notes: <…>
      Message: “Check out my new photo!”
    • 50. Demo
    • 51. Do I really have to store the
      Azure account name and key on the device?
    • 52.
    • 53. Azure account name and key give access to everything!
      Could store in keychain, but also open to compromise
      Distributed reset mechanism would be very difficult
    • 54.
    • 55. Blob Storage
      Request signed with Account Key
      Response
      Table Storage
      Account Key
      Queue Storage
    • 56. Authentication using Username/Password
      Blob Storage
      Session token
      Request with session token
      Table Storage
      Response
      Web Role
      Queue Storage
    • 57. Authentication using Username/Password
      Blob Storage
      Session token
      Request with Session token
      Table Storage
      Response
      Web Role
      Queue Storage
    • 58. Authentication using Username/Password
      Blob Storage
      Session token
      Request with Session token
      Table Storage
      Response
      Web Role
      Queue Storage
    • 59. Demo
    • 60. Authentication using Username/Password
      Blob Storage
      Session token
      Request with Session token
      Table Storage
      Response
      Web Role
      Queue Storage
    • 61. Toolkit should be as simple as possible
      Everything works on the Mac
      Enable others to contribute
    • 62. Authentication using Username/Password
      Blob Storage
      Session token
      Request with Session token
      Table Storage
      Response
      Web Role
      Queue Storage
    • 63. Authentication using Username/Password
      Blob Storage
      Session token
      Request with Session token
      Table Storage
      Response
      Web Role
      Queue Storage
    • 64. Demo
    • 65. Membership works, but still have to maintain usernames and passwords
    • 66. v1.2 (released yesterday!) supports ACS
    • 67. Google
      Yahoo!
      Windows Live
      AppFabric
      WS-Fed MEX
      Authentication against AppFabric ACS
      Session token
      Blob Storage
      Request with OAuth
      Response
      Table Storage
      Web Role
      Queue Storage
    • 68. Google
      Yahoo!
      Windows Live
      AppFabric
      WS-Fed MEX
      Authentication against AppFabric ACS
      Session token
      Blob Storage
      Request with OAuth
      Response
      Table Storage
      Web Role
      Queue Storage
    • 69. Demo
    • 70. One more thing…
    • 71. Windows Azure Queues good for pull,
      but what about push?
    • 72.
    • 73. AppRegistration
      Apple Push Notification Service
      gateway.sandbox.push.apple.com
      Native Application
      iPad/iPhone OS 4.3.1
      User Acceptance
    • 74. Token Length
      Payload Length
      JSON formatted
      AppRegistration
      Send Message Payload
      0
      0
      32
      deviceToken
      0
      34
      message
      Apple Push Notification Service
      gateway.sandbox.push.apple.com
      Native Application
      Worker Role
      iPad/iPhone OS 4.3.1
      User Acceptance
    • 75. AppRegistration
      Send Message Payload
      Apple Push Notification Service
      gateway.sandbox.push.apple.com
      Native Application
      Worker Role
      Request
      Response
      iPad/iPhone OS 4.3.1
      Web Role
      User Acceptance
      Windows Azure Queue
      Receive Message, LaunchApp
    • 76. Demo
    • 77. Toolkit should be as simple as possible
      Everything works on the Mac
      Enable others to contribute
    • 78.
    • 79.
    • 80.
    • 81. Many other iOS libraries are available on GitHub
    • 82. GitHub integrated into XCode 4
    • 83. Strong fork/collaboration model
    • 84. Community Reaction
    • 85. #1 on TechMeme
      8000+ views in 24 hours
      40+ placements in online/technical publications
    • 86. @aallan: MS has announced #Azure toolkits for iOS, Android and Windows Phone, bit.ly/jgROPK. The sky might be falling, let me look outside...
      @kevatron: Windows azure back end. Android, iOS or Windows Phone front end. Nice work Microsoft. t.co/k0tpId5
      @sarangbk: @WadeWegnerfinally me and my wife could work out some code together :) she is an iOS Dev. Cc: @kPrajakta #azure #awesomesauce
    • 87.
    • 88. http://github.com/microsoft-dpe
    • 89. Version 1.0.1 (Refactor)
      Version 1.1 (APN)
      Version 1.2 (ACS)
      Version 1.0
      Jul
      May
      Jun
    • 90. Future Directions
    • 91. Other Windows Azure functionality
      ServiceBus? Management API? Cache?
    • 92. Android Version
    • 93. Case studies and samples
    • 94.
    • 95. Municipality
      Pinpointed photo using Bing Maps
      Situational
      Analysis
      http://www.j-resq.com
    • 96. Gold Certified Microsoft Partner
    • 97. Thank You!
      Simon Guest
      Director, Mobility Solutions
      Neudesic, LLC
      simon.guest@neudesic.com

    ×