Presentation is loading. Please wait.

Presentation is loading. Please wait.

Building Mobile Phone Applications With Windows Azure Nick HarrisWindows Azure Technical Evangelist Microsoft Blog:

Similar presentations


Presentation on theme: "Building Mobile Phone Applications With Windows Azure Nick HarrisWindows Azure Technical Evangelist Microsoft Blog:"— Presentation transcript:

1 Building Mobile Phone Applications With Windows Azure Nick HarrisWindows Azure Technical Evangelist Microsoft Twitter: @cloudnick Blog: http://www.nickharris.nethttp://www.nickharris.net

2 This session is focused on building device applications with Windows Azure We’ll talk about storage, identity, communications, platform services, and tools Several demos Agenda

3 Features in Action

4 Three Reasons for Device + Cloud Allows new application scenarios The cloud levels the playing field The cloud provides a way to reach across device platforms and a larger pool of resources from which to pull 1 2 3

5 Why Windows Azure? PaaS: you built it, Windows Azure runs it Automatic O/S patching Elasticity and scale Utility billing Higher-level services ACS, Caching, CDN, Traffic Manager

6 Storage

7 Storage: What are our options? Benefits: Non-relational structured storage Massive scale-out Windows Azure Tables Benefits: Big files Windows Azure Blobs Benefits: Persistent Async Messaging Enqueue, Dequeue Windows Azure Queues Benefits: Relational database Highly available Managed for you as a service Windows Azure SQL Database

8 Storage: Secrets Windows Azure Storage name Storage key Windows Azure SQL Database Username Password Once you share your secret, it’s no longer secret

9 Storage: How do we keep secrets secret? Proxy the requests Client sends data to web role Web role sends data to storage (1) (2) Web Role

10 Storage: Windows Azure SQL Database Client sends request to proxy Proxy makes SQL call against SQL Database SQL Database returns a response Proxy returns response to device (1) (3) Web Role (2) (4)

11 Storage: Using Shared Access Signatures Client makes request of Web Role for SAS Web Role sends client SAS Client makes request Client gets response (1) (3) Web Role (2) (4)

12 Storage: Offloading work through queues Client writes a message to a queue Worker role is polling the queue Worker role finds the message (1) (2) (3) Worker Role

13 Demo

14 Identity

15 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 IdP protocol Outsource identity management Access Control Service

16 Security challenge Authentication Authorization User store Management UI Forget password? Customer support Data protection Integration with AD LDAP User mapping Synchronization Integration With Facebook More User mapping Facebook Auth API More Synchronization

17 Solution: Claim-based architecture

18 Demo

19 Communications

20

21 Communications: Device-initiated Device-initiated options HTTP-based, request/response Framework choices (WCF, Web API, OData, WebRequest, etc.) Wire format choices (SOAP, JSON, POX, etc.) - Drivers http://localhost:33779/WcfDataService1.svc/Drivers 2010-05-24T22:12:38Z - http://localhost:33779/WcfDataService1.svc/Drivers(1) 2010-05-24T22:12:38Z - - - 1 1 Rob Tiffany - http://localhost:33779/WcfDataService1.svc/Drivers(2) 2010-05-24T22:12:38Z - - - 2 1 Loke Uei Tan - http://localhost:33779/WcfDataService1.svc/Drivers(3) 2010-05-24T22:12:38Z - - - 3 1 Dan Bouie - http://localhost:33779/WcfDataService1.svc/Drivers(4) 2010-05-24T22:12:38Z - - - 4 1 John Dietz - http://localhost:33779/WcfDataService1.svc/Drivers(5) 2010-05-24T22:12:38Z - - - 5 2 Derek Snyder - http://localhost:33779/WcfDataService1.svc/Drivers(6) 2010-05-24T22:12:38Z - - - 6 2 Steve Hegenderfer - http://localhost:33779/WcfDataService1.svc/Drivers(7) 2010-05-24T22:12:38Z - - - 7 2 Chip Vollers - http://localhost:33779/WcfDataService1.svc/Drivers(8) 2010-05-24T22:12:38Z - - - 8 2 James Pratt http://localhost:33779/WcfDataService1.svc/"http://schemas.microsoft.com/ado/2007/08/dataservices"http://schemas.microsoft.com/ado/2007/08/dataservices/metadata"http://www.w3.org/2005/Atom"http://localhost:33779/WcfDataService1.svc/Drivershttp://localhost:33779/WcfDataService1.svc/Drivers(1)http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter"http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays"http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"http://localhost:33779/WcfDataService1.svc/Drivers(2)http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter"http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays"http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"http://localhost:33779/WcfDataService1.svc/Drivers(3)http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter"http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays"http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"http://localhost:33779/WcfDataService1.svc/Drivers(4)http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter"http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays"http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"http://localhost:33779/WcfDataService1.svc/Drivers(5)http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter"http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays"http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"http://localhost:33779/WcfDataService1.svc/Drivers(6)http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter"http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays"http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"http://localhost:33779/WcfDataService1.svc/Drivers(7)http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter"http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays"http://schemas.microsoft.com/ado/2007/08/dataservices/scheme"http://localhost:33779/WcfDataService1.svc/Drivers(8)http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter"http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays"http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" The same list of 8 Customers using SOAP and a DataSet dropped us down to 3 kb but still too big for my taste. 1 1 Rob Tiffany 2 1 Loke Uei Tan 3 1 Dan Bouie 4 1 John Dietz 5 2 Derek Snyder 6 2 Steve Hegenderfer 7 2 Chip Vollers 8 2 James Pratt http://tempuri.org/"http://www.w3.org/2001/XMLSchema" <ArrayOfDriver xmlns=http://schemas.datacontract.org/2004/07/ContosoWcfService.Modelshttp://schemas.datacontract.org/2004/07/ContosoWcfService.Models xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> 1 1 Rob Tiffany 1 2 Loke Uei Tan 1 3 Dan Bouie 1 4 John Dietz 2 5 Derek Snyder 2 6 Steve Hegenderfer 2 7 Chip Vollers 2 8 James Pratt http://www.w3.org/2001/XMLSchema-instance" [{"DistributionCenterId":1,"DriverId":1,"FirstName":"Rob","LastName":"Tiffany"}, {"DistributionCenterId":1,"DriverId":2,"FirstName":"Loke Uei","LastName":"Tan"}, {"DistributionCenterId":1,"DriverId":3,"FirstName":"Dan","LastName":"Bouie"}, {"DistributionCenterId":1,"DriverId":4,"FirstName":"John","LastName":"Dietz"}, {"DistributionCenterId":2,"DriverId":5,"FirstName":"Derek","LastName":"Snyder"}, {"DistributionCenterId":2,"DriverId":6,"FirstName":"Steve","LastName":“Harris"}, {"DistributionCenterId":2,"DriverId":7,"FirstName":"Chip","LastName":"Vollers"}, {"DistributionCenterId":2,"DriverId":8,"FirstName":"James","LastName":"Pratt"}] OData – XML 8.5kb REST-XML 1.2kb JSON 639 bytes

22 Communications: Cloud-initiated Push Notifications !Raaawww

23 Communications: Subscribing to Push Device requests a channel *NS returns channel Device sends URL to cloud Channel URL is stored in cloud Cloud sends notification *NS pushes to device Web Role *NS (1)(2) (3) (4) (5)

24 Communications: Cloud-initiated to device? Common pattern Use cloud-initiated push to tell the device to call to a service Cloud sends notification Notification services pushes to device Device receives message and calls to a service Web Role sends a response Web Role *NS (3) (2) (4) (1)

25 Notifications: Different services Windows 8: Windows Phone: iOS: Android:

26 Demo

27 Platform Services

28 Application Building Blocks

29 Tools & Resources

30 Windows Azure Toolkits for Devices Easier for device developers to use Windows Azure AndroidiOSWindows Phone http://bit.ly/watandroidhttp://bit.ly/watioshttp://bit.ly/watwp7

31 Devices + Cloud Summary Toolkits Storage Identity Communications Platform Services

32 Summary

33


Download ppt "Building Mobile Phone Applications With Windows Azure Nick HarrisWindows Azure Technical Evangelist Microsoft Blog:"

Similar presentations


Ads by Google