Simon Guest Director, Mobility Solutions Neudesic, LLC...
Transcript of Simon Guest Director, Mobility Solutions Neudesic, LLC...
Mobility Momentum
Mobility Momentum
107 unique Android smartphones and
43 Android tablets in market (US)
Mobility Momentum
Microsoft spending $1bn on marketing
& R&D for Windows Phone 7
Mobility Momentum
Over 80% of the F500 testing and/or deploying
iPad applications in the Enterprise
Mobility Momentum
Apple will have sold 54 iPhones and 11 iPads
Opportunity
Opportunity
Many mobile-cloud scenarios
Opportunity
Android/iOS/WP7 device on the front end
Windows Azure on the back end
Opportunity
Using Windows Azure services from mobile devices
can be complex
Objectives
Objectives
Mobile Scenarios enabled by Windows Azure
Windows Azure Toolkit for iOS
Future Direction and Thoughts
Mobile – Cloud Scenarios
Mobile – Cloud Scenarios
Mobile – Cloud Scenarios
Mobile – Cloud Scenarios
Mobile – Cloud Scenarios
DatabaseBlob Storage
DatabaseTable Storage
Queue Storage Database
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Mobile – Cloud Scenarios
Then, why so complex?
Mobile – Cloud Scenarios
DatabaseBlob Storage
Mobile – Cloud Scenarios
DatabaseBlob Storage
Mobile – Cloud Scenarios
DatabaseBlob Storage
REST Endpoint:
http://[account].blob.core.windows.net
List, Create, and Delete Containers
List, Put, Get, Delete Blobs
Mobile – Cloud Scenarios
DatabaseBlob Storage
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: SharedKey iostest:[ComputedHash]
Mobile – Cloud Scenarios
How do I get that computed hash?
Mobile – Cloud Scenarios
DatabaseBlob Storage
REST Endpoint:
http://[account].blob.core.windows.net
List, Create, and Delete Containers
List, Put, Get, Delete Blobs AccountKey: /9seXadQ9HwOpXUO1jKxFN8q… Request: GET¥n¥n¥n¥n¥n¥n¥n¥n¥n¥n¥n¥nx-ms-blob-type:BlockBlob¥nx-ms-date:Thu, 14 Apr 2011 20:30:00 GMT¥nx-ms-version:2009-09-19¥n/iostest/¥ncomp:list¥ninclude:metadata Hash = HMACSHA256(UTF8Encode(Request), Base64Decode(AccountKey))
Account Key: /9seXadQ9HwOpXUO1jKxFN8q…
Mobile – Cloud Scenarios
DatabaseBlob Storage
REST Endpoint:
http://[account].blob.core.windows.net
List, Create, and Delete Containers
List, Put, Get, Delete Blobs
Account Key: /9seXadQ9HwOpXUO1jKxFN8q…
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: SharedKey iostest:[ComputedHash] <?xml version="1.0" encoding="utf-8"?> <EnumerationResults AccountName="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>
Mobile – Cloud Scenarios
DatabaseBlob Storage
REST Endpoint:
http://[account].blob.core.windows.net
List, Create, and Delete Containers
List, Put, Get, Delete Blobs
Account Key: /9seXadQ9HwOpXUO1jKxFN8q…
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: SharedKey iostest:[ComputedHash] {...binary representation of photo...}
Mobile – Cloud Scenarios
Repeat process for every service call
Developer Headache
Developer Headache
Different authentication signatures between
table, blob, and queue storage
Developer Headache
Memory allocation/disposal of objects
Developer Headache
Developer Headache
Windows Azure Toolkit for iOS
Windows Azure Toolkit for iOS
Mobile – Cloud Scenarios
Mobile – Cloud Scenarios
Demo
Mobile – Cloud Scenarios
Do I really have to store the
Azure account name and key on the device?
Identity Storage
Identity Storage
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
Identity Storage
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Request signed with Account Key
Response
Account Key
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Authentication using Username/Password
Session token
Web Role
Request with session token
Response
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Authentication using Username/Password
Session token
Web Role
Request with Session token
Response
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Authentication using Username/Password
Session token
Web Role
Request with Session token
Response
Mobile – Cloud Scenarios
Demo
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Authentication using Username/Password
Session token
Web Role
Request with Session token
Response
Windows Azure Toolkit for iOS
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Authentication using Username/Password
Session token
Web Role
Request with Session token
Response
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Authentication using Username/Password
Session token
Web Role
Request with Session token
Response
Mobile – Cloud Scenarios
Demo
Mobile – Cloud Scenarios
Membership works, but still have to maintain usernames
and passwords
Mobile – Cloud Scenarios
v1.2 (released last week!) supports ACS
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Web Role
Request with OAuth
Response
AppFabric
Yahoo!
Windows Live
WS-Fed MEX
Mobile – Cloud Scenarios
Database
Database
Blob Storage
Table Storage
Queue Storage Database
Web Role
Request with OAuth
Response
AppFabric
Yahoo!
Windows Live
WS-Fed MEX
Mobile – Cloud Scenarios
Demo
Mobile – Cloud Scenarios
One more thing…
Mobile – Cloud Scenarios
Windows Azure Queues good for pull,
but what about push?
Mobile – Cloud Scenarios
Mobile – Cloud Scenarios
iPad/iPhone OS 4.3.1
Native Application
User Acceptance
Apple Push Notification Service gateway.sandbox.push.apple.com
App Registration
Mobile – Cloud Scenarios
iPad/iPhone OS 4.3.1
Native Application Apple Push Notification Service
gateway.sandbox.push.apple.com
User Acceptance
App Registration
Worker Role
Send Message Payload
0 0 32 deviceToken 0 34 message
Token Length Payload Length JSON formatted
Mobile – Cloud Scenarios
iPad/iPhone OS 4.3.1
Native Application Apple Push Notification Service
gateway.sandbox.push.apple.com
User Acceptance
App Registration
Worker Role
Send Message Payload
DatabaseWindows Azure
Queue
Web Role
Receive Message, Launch App
Request
Response
Mobile – Cloud Scenarios
Demo
Windows Azure Toolkit for iOS
Toolkit Release
Toolkit Release
Toolkit Release
Toolkit Release
Many other iOS libraries are available on GitHub
Toolkit Release
GitHub integrated into XCode 4
Toolkit Release
Strong fork/collaboration model
Toolkit Release
Community Reaction
Toolkit Release
#1 on TechMeme
8000+ views in 24 hours
40+ placements in online/technical publications
Toolkit Release
@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: @WadeWegner finally me and my wife
could work out some code together :) she is an iOS Dev.
Cc: @kPrajakta #azure #awesomesauce
Conclusion
Conclusion
http://github.com/microsoft-dpe
Conclusion
Jul May Jun
Conclusion
Future Directions
Conclusion
Other Windows Azure functionality
ServiceBus? Management API? Cache?
Conclusion
Android Version
Conclusion
Case studies and samples
Windows Phone 7 iPhone iPad Android Blackberry
Kelley Blue Book
Realtor.com
Neudesic Pulse
Whole Foods
Symetra Financial
Jeep TripCast
Azure Toolkit for iOS
SimonMed
VHA Inc
Kelley Blue Book
Symetra Financial
Kelley Blue Book
Neudesic Pulse
Azure Toolkit for Android
Neudesic Pulse
Gold Certified Microsoft Partner