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

Published on

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

No Downloads
Views
Total Views
2,374
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
17
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

    ×