simon guest director, mobility solutions neudesic, llc...

Post on 08-Jul-2020

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Simon Guest

Director, Mobility Solutions

Neudesic, LLC

simon.guest@neudesic.com

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

Google

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

Google

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

Thank You!

Simon Guest

Director, Mobility Solutions

Neudesic, LLC

simon.guest@neudesic.com

top related