Scott densmore-sic-2011

Post on 17-Dec-2014

4.031 views 1 download

description

Scott Densmore's presentation at Seattle Interactive Conference 2011

Transcript of Scott densmore-sic-2011

BUILDING CLOUD APPS WITH IOSScott Densmore – Senior SDE patterns & practices

Agenda This talk is focused on building iOS

applications with Windows Azure We’ll talk about storage, identity,

communications, platform services, and tools

I’ll show a few demos for the concepts

Expectations An understanding of how storage,

identity, and communications work with iOS when using Windows Azure

Why Device + Cloud? The cloud levels the

playing field The cloud provides a

larger pool of resources from which to pull

The cloud provides a way to reach across device platforms

Why Windows Azure? Platform as a Service (PaaS): you build it,

Windows Azure runs it Automatic O/S patching Elasticity and scale Utility billing Higher-level services

ACS, Traffic Manager, Caching, CDN

What will we see today? Storage Identity Communications Platform Services

Storage

Storage: What are our options? Windows Azure Tables

Non-relational structured storage Massive scale-out OData

Windows Azure Blobs Big files REST

Windows Azure Queues Persistent Async Messaging Enqueue, Dequeue

Storage: What are our options?

SQL Azure Relational database Highly available Managed for you as a

service

Storage: Secrets Windows Azure

Storage name Storage key

SQL Azure Username Password

Once your share your secret, it’s no longer secret

Storage: How to keep secrets secret?

Proxy the requests1. Client sends

data to web role2. Web role sends

data to storage

WebRole

(1)

(2)

Storage: Shared Access Signatures

1. Client makes request of Web Role for SAS

2. Web Role sends client SAS

3. Client makes request4. Client gets response

WebRole

(1)

(2)(3)

(4)

Storage: SQL Azure1. Client sends request to

proxy2. Proxy makes SQL call

against SQL Azure3. SQL Azure returns a

response4. Proxy returns response

to device

WebRole

(1)

(2)

(3)

(4)

Storage: Offloading work with queues

1. Client writes a message to a queue

2. Worker role is polling the queue

3. Worker role finds the message

Worker Role

(1)

(2)

(3)

Storage: What are the options?

Choices Direct Proxy Other

Blob (private) x x x (SAS)

Blob (public) x x (write)

x (read-only)

Table x x

Queue x x

Database x

iOS and Storage

demo

Identity

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 Identity Provider protocol

Outsource identity management Access Control Service

Identity: Authenticating Users with ACS

Access Control Service

WebRole

iOS and Identity

demo

Communications

Communications

Two forms of communication with devices Device-initiated Cloud-initiated

Communications: Device-initiated

Device-initiated options HTTP-based, request/response Framework choices (WCF, OData, WebRequest, etc.)

Wire format choices (SOAP, JSON, POX, etc.)

Communications: Cloud-initiated

Push Notifications Single connecting between the device and

the notification service Bandwidth- and battery-friendly No guarantee of delivery

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

WebRole

*NS

Communications: Cloud 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

WebRole

*NS

Communications: Different notifications

Windows 8: Windows Push Notification Service (WNS)

Windows Phone: Microsoft Push Notification Service (MPNS)

iOS: Apple Push Notification Service (APNS)

Android: Cloud To Device Messaging (C2DM)

iOS and Communications

demo

Platform Services

Platform Services Traffic Manager Content Delivery Network (CDN) SQL Azure Data Sync

SQL Azure Windows Azure Storage

Caching

Putting it all together

WAZ Storage

Windows Azure

Apple Push Notification

ServiceHawaii OCR &

Bing Translator

AuthenticateAccess TokenAccess TokenShared Access Signature

Any pictures?

Send ImageTranslated TextTranslated TextTranslated

Text

User Authentication

Store Image in Windows

Azure Blob Storage

SAS

Process ImageSend

Notification

Process Image

Tools and Resources

Toolkits Easier for device developers to use

Windows Azure Windows Phone: http://bit.ly/watwp7 iOS: http://bit.ly/watios Android: http://bit.ly/watandroid OData: http://bit.ly/odataobjc

Toolkits include: Native libraries (e.g. .NET, Objective-C) Samples Project templates Documentation

Questions

Windows Azure Office Hours

Talk to an expert Download the SDK and toolkits Get a free trial Enter to WIN a

Samsung Focus Windows phone

Vote your evaluation

This session was . . . A little lite Just right More than I hoped for!

www.devcamps.ms

Coming soon to a tent near you!