SlideShare a Scribd company logo
Windows Azure Toolkit for iOSSimon GuestDirector, Mobility SolutionsNeudesic, LLCsimon.guest@neudesic.com
Windows Azure Toolkit for iOS
26% of the US Smartphone Market95% of the WW Tablet Market
Over 80% of the F500 testing and/or deploying iPad applications in the Enterprise
Over 350,000 iPhone AppsOver 100,000 iPad Apps
Apple will have sold another 54 iPhones and 11 iPads
Windows Azure Toolkit for iOS
Many mobile-cloud scenarios
iPhone/iPad device on the front endWindows Azure on the back end
Using Windows Azure services from iOS is complex
Windows Azure Toolkit for iOS
Mobile Scenarios enabled by Windows AzureWindows Azure Toolkit for iOSFuture Direction and Thoughts
Windows Azure Toolkit for iOS
1. Storing and Accessing Photos, Videos, Music
2. Storing and Accessing Structured DataTitle:  Frog on a twigAuthor: Simon GuestDate:  7/26/2011Time:  12.45pmNotes:  <…>
3.  Sharing with OthersTitle:  Frog on a twigAuthor: Simon GuestDate:  7/26/2011Time:  12.45pmNotes:  <…>Message:  “Check out my new photo!”
Most suitable for binary data (images, video, audio)
Container-based approach
Streaming and multi-partBlob StorageMost suitable for structured data
Dynamic schema
Partitioning to enable scaleTable StorageMost suitable for short messages
First in, First out mechanism
Limited durabilityQueue Storage
Most suitable for binary data (images, video, audio)
Container-based approach
Streaming and multi-partBlob StorageMost suitable for structured data
Dynamic schema
Partitioning to enable scaleTable StorageMost suitable for short messages
First in, First out mechanism
Limited durabilityQueue Storage
Then, why so complex?
Blob Storage
Blob Storage
REST Endpoint:http://[account].blob.core.windows.netList, Create, and Delete ContainersList, Put, Get, Delete BlobsBlob Storage
REST Endpoint:http://[account].blob.core.windows.netList, Create, and Delete ContainersList, Put, Get, Delete BlobsGET http://iostest.blob.core.windows.net/?comp=list&include=metadatax-ms-date: Thu, 14 Apr 2011 20:30:00 GMTx-ms-version: 2009-09-19x-ms-blob-type: BlockBlobAuthorization: SharedKeyiostest:[ComputedHash]Blob Storage
How do I get that computed hash?
REST Endpoint:http://[account].blob.core.windows.netList, Create, and Delete ContainersList, Put, Get, Delete BlobsAccountKey: /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:metadataHash = HMACSHA256(UTF8Encode(Request), Base64Decode(AccountKey))Blob StorageAccount Key:  /9seXadQ9HwOpXUO1jKxFN8q…
GET http://iostest.blob.core.windows.net/?comp=list&include=metadatax-ms-date: Thu, 14 Apr 2011 20:30:00 GMTx-ms-version: 2009-09-19x-ms-blob-type: BlockBlobAuthorization: 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.netList, Create, and Delete ContainersList, Put, Get, Delete BlobsBlob StorageAccount Key:  /9seXadQ9HwOpXUO1jKxFN8q…
REST Endpoint:http://[account].blob.core.windows.netList, Create, and Delete ContainersList, Put, Get, Delete BlobsPUT http://iostest.blob.core.windows.net/photos/party.jpg x-ms-date: Thu, 14 Apr 2011 20:30:00 GMTx-ms-version: 2009-09-19x-ms-blob-type: BlockBlobAuthorization: SharedKeyiostest:[ComputedHash]{...binary representation of photo...}Blob StorageAccount Key:  /9seXadQ9HwOpXUO1jKxFN8q…
Repeat process for every service call
Windows Azure Toolkit for iOS
Different authentication signatures between table, blob, and queue storage
XML Parsing in Objective C hurts
Memory allocation/disposal of objects
Windows Azure Toolkit for iOS
Windows Azure Toolkit for iOS
Windows Azure Toolkit for iOS
Toolkit should be as simple as possibleEverything works on the MacEnable others to contribute
Title:  Frog on a twigAuthor: Simon GuestDate:  7/26/2011Time:  12.45pmNotes:  <…>Message:  “Check out my new photo!”
Demo
Do I really have to store the Azure account name and key on the device?
Windows Azure Toolkit for iOS
Azure account name and key give access to everything!Could store in keychain, but also open to compromiseDistributed reset mechanism would be very difficult
Windows Azure Toolkit for iOS
Blob StorageRequest signed with Account KeyResponseTable StorageAccount KeyQueue Storage
Authentication using Username/PasswordBlob StorageSession tokenRequest with session tokenTable StorageResponseWeb RoleQueue Storage
Authentication using Username/PasswordBlob StorageSession tokenRequest with Session tokenTable StorageResponseWeb RoleQueue Storage
Authentication using Username/PasswordBlob StorageSession tokenRequest with Session tokenTable StorageResponseWeb RoleQueue Storage
Demo
Authentication using Username/PasswordBlob StorageSession tokenRequest with Session tokenTable StorageResponseWeb RoleQueue Storage
Toolkit should be as simple as possibleEverything works on the MacEnable others to contribute
Authentication using Username/PasswordBlob StorageSession tokenRequest with Session tokenTable StorageResponseWeb RoleQueue Storage
Authentication using Username/PasswordBlob StorageSession tokenRequest with Session tokenTable StorageResponseWeb RoleQueue Storage
Demo
Membership works, but still have to maintain usernames and passwords
v1.2 (released yesterday!) supports ACS
GoogleYahoo!Windows LiveAppFabricWS-Fed MEXAuthentication against AppFabric ACSSession tokenBlob StorageRequest with OAuthResponseTable StorageWeb RoleQueue Storage
GoogleYahoo!Windows LiveAppFabricWS-Fed MEXAuthentication against AppFabric ACSSession tokenBlob StorageRequest with OAuthResponseTable StorageWeb RoleQueue Storage
Demo
One more thing…
Windows Azure Queues good for pull, but what about push?
Windows Azure Toolkit for iOS
AppRegistrationApple Push Notification Servicegateway.sandbox.push.apple.comNative ApplicationiPad/iPhone OS 4.3.1User Acceptance
Token LengthPayload LengthJSON formattedAppRegistrationSend Message Payload0032deviceToken034messageApple Push Notification Servicegateway.sandbox.push.apple.comNative ApplicationWorker RoleiPad/iPhone OS 4.3.1User Acceptance
AppRegistrationSend Message PayloadApple Push Notification Servicegateway.sandbox.push.apple.comNative ApplicationWorker RoleRequestResponseiPad/iPhone OS 4.3.1Web RoleUser AcceptanceWindows Azure QueueReceive Message, LaunchApp
Demo
Toolkit should be as simple as possibleEverything works on the MacEnable others to contribute
Windows Azure Toolkit for iOS
Windows Azure Toolkit for iOS
Windows Azure Toolkit for iOS
Many other iOS libraries are available on GitHub
GitHub integrated into XCode 4
Strong fork/collaboration model
Community Reaction
#1 on TechMeme8000+ views in 24 hours40+ placements in online/technical publications

More Related Content

What's hot (20)

PDF
Sg conference multiplatform_apps_adam_stanley
n_adam_stanley
 
PDF
HTML5 and the dawn of rich mobile web applications
James Pearce
 
PDF
RIM Casual Meetup - Bandung #DevIDBdg
Ziyad Bazed
 
PDF
Web Apps and more
Yan Shi
 
PDF
Building a Next Generation Mobile Browser using Web technologies
n_adam_stanley
 
KEY
iPhone/iPad开发讲座 第一讲 Ios开发简介
Hao Peiqiang
 
PPTX
BlackBerry WebWorks
Bhasker Thapan
 
PPTX
JavaScript on HP webOS: Enyo and Node.js
Ben Combee
 
PPTX
Sharepoint mobile
Chakrapani ramachandran
 
PDF
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dee Sadler
 
PPTX
Javascript frameworks
RajkumarJangid7
 
PPT
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
Christian Heindel
 
PDF
Mobile Web Development with HTML5
Roy Clarkson
 
PDF
Dojo mobile web5-2013
cjolif
 
PPT
Enabling the mobile Web for a Dojo component
cjolif
 
PDF
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
Software Park Thailand
 
PDF
What's new in ios 7.0
CocoaHeads France
 
PDF
Ionic으로 모바일앱 만들기 #3
성일 한
 
PPT
Mobile Accessibility
Ted Drake
 
PDF
Fixing the mobile web - Internet World Romania
Christian Heilmann
 
Sg conference multiplatform_apps_adam_stanley
n_adam_stanley
 
HTML5 and the dawn of rich mobile web applications
James Pearce
 
RIM Casual Meetup - Bandung #DevIDBdg
Ziyad Bazed
 
Web Apps and more
Yan Shi
 
Building a Next Generation Mobile Browser using Web technologies
n_adam_stanley
 
iPhone/iPad开发讲座 第一讲 Ios开发简介
Hao Peiqiang
 
BlackBerry WebWorks
Bhasker Thapan
 
JavaScript on HP webOS: Enyo and Node.js
Ben Combee
 
Sharepoint mobile
Chakrapani ramachandran
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dee Sadler
 
Javascript frameworks
RajkumarJangid7
 
European SharePoint Conference: Mobile Applications for SharePoint using HTML5
Christian Heindel
 
Mobile Web Development with HTML5
Roy Clarkson
 
Dojo mobile web5-2013
cjolif
 
Enabling the mobile Web for a Dojo component
cjolif
 
"BlackBerry Webworks : Apps for The Smartphone and Tablet"
Software Park Thailand
 
What's new in ios 7.0
CocoaHeads France
 
Ionic으로 모바일앱 만들기 #3
성일 한
 
Mobile Accessibility
Ted Drake
 
Fixing the mobile web - Internet World Romania
Christian Heilmann
 

Viewers also liked (20)

PPT
Demystifying The Cloud
Simon Guest
 
PPTX
Objective View of MEAPs
Simon Guest
 
PPTX
Developing iPhone and iPad apps that leverage Windows Azure
Simon Guest
 
PPTX
Developing Enterprise-Grade Mobile Applications
Simon Guest
 
PDF
TechEd Preconference
Simon Guest
 
PPTX
My customers are using iPhone/Android, but I'm a Microsoft Guy.
Simon Guest
 
PPT
Patterns For Moving To The Cloud
Simon Guest
 
PDF
Patterns for Cloud Computing
Simon Guest
 
PPTX
iPhone and iPad Security
Simon Guest
 
PPT
Architectural Principles for Software + Services
Simon Guest
 
PPT
Impact Of The Cloud For IT Managers
Simon Guest
 
PDF
ReMix Keynote (Vienna, Austria)
Simon Guest
 
PDF
Interviewing Techniques
Simon Guest
 
PDF
Next Generation LOB (Line of Business) Applications
Simon Guest
 
PDF
Indoor location in mobile applications using iBeacons
Simon Guest
 
PPTX
Future of Mobility
Simon Guest
 
PPTX
Creating Context-Aware Applications
Simon Guest
 
PPTX
Automated Testing using JavaScript
Simon Guest
 
PDF
Building a Great Engineering Culture
Simon Guest
 
PPT
User Driven Software Architecture
Simon Guest
 
Demystifying The Cloud
Simon Guest
 
Objective View of MEAPs
Simon Guest
 
Developing iPhone and iPad apps that leverage Windows Azure
Simon Guest
 
Developing Enterprise-Grade Mobile Applications
Simon Guest
 
TechEd Preconference
Simon Guest
 
My customers are using iPhone/Android, but I'm a Microsoft Guy.
Simon Guest
 
Patterns For Moving To The Cloud
Simon Guest
 
Patterns for Cloud Computing
Simon Guest
 
iPhone and iPad Security
Simon Guest
 
Architectural Principles for Software + Services
Simon Guest
 
Impact Of The Cloud For IT Managers
Simon Guest
 
ReMix Keynote (Vienna, Austria)
Simon Guest
 
Interviewing Techniques
Simon Guest
 
Next Generation LOB (Line of Business) Applications
Simon Guest
 
Indoor location in mobile applications using iBeacons
Simon Guest
 
Future of Mobility
Simon Guest
 
Creating Context-Aware Applications
Simon Guest
 
Automated Testing using JavaScript
Simon Guest
 
Building a Great Engineering Culture
Simon Guest
 
User Driven Software Architecture
Simon Guest
 
Ad

Similar to Windows Azure Toolkit for iOS (20)

PDF
Work with Windows Azure from Mobile Apps
Andri Yadi
 
PPT
ArcReady - Architecting For The Cloud
Microsoft ArcReady
 
PPT
Fanug - Pragmatic Windows Phone Developer
Sam Basu
 
PPTX
Azure, Cloud Computing & Services
Alan Dean
 
PPT
Arc Ready Cloud Computing
Philip Wheat
 
PPTX
BizSpark Startup Night Windows Azure March 29, 2011
Spiffy
 
PPTX
Cnam azure 2014 mobile services
Aymeric Weinbach
 
PPT
WP7 & Azure
Sam Basu
 
PDF
C# Client to Cloud
Stuart Lodge
 
PPTX
Windows Azure Mobile Services - The Perfect Partner
Michael Collier
 
PPTX
Building services using windows azure
Suliman AlBattat
 
PPTX
Windows Azure: Lessons From The Field
Rob Gillen
 
PPTX
Windows azure mobile services and windows phone 8
Karthikeyan Anbarasan (AK)
 
PPTX
Windows Azure platform
GetDev.NET
 
PPTX
Starting Azure mobile services
Amr Abulnaga
 
PPTX
Cloud and azure and rock and roll
David Giard
 
PPTX
Azure: Lessons From The Field
Rob Gillen
 
PPTX
Azure Mobile Services : Service Enablement at its best
Ruhani Arora
 
PDF
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
Stuart Lodge
 
PPTX
MS Cloud Day - Building web applications with Azure storage
Spiffy
 
Work with Windows Azure from Mobile Apps
Andri Yadi
 
ArcReady - Architecting For The Cloud
Microsoft ArcReady
 
Fanug - Pragmatic Windows Phone Developer
Sam Basu
 
Azure, Cloud Computing & Services
Alan Dean
 
Arc Ready Cloud Computing
Philip Wheat
 
BizSpark Startup Night Windows Azure March 29, 2011
Spiffy
 
Cnam azure 2014 mobile services
Aymeric Weinbach
 
WP7 & Azure
Sam Basu
 
C# Client to Cloud
Stuart Lodge
 
Windows Azure Mobile Services - The Perfect Partner
Michael Collier
 
Building services using windows azure
Suliman AlBattat
 
Windows Azure: Lessons From The Field
Rob Gillen
 
Windows azure mobile services and windows phone 8
Karthikeyan Anbarasan (AK)
 
Windows Azure platform
GetDev.NET
 
Starting Azure mobile services
Amr Abulnaga
 
Cloud and azure and rock and roll
David Giard
 
Azure: Lessons From The Field
Rob Gillen
 
Azure Mobile Services : Service Enablement at its best
Ruhani Arora
 
C# - Azure, WP7, MonoTouch and Mono for Android (MonoDroid)
Stuart Lodge
 
MS Cloud Day - Building web applications with Azure storage
Spiffy
 
Ad

More from Simon Guest (7)

PDF
10 Life Hacks for Better Productivity
Simon Guest
 
PDF
Presentation Anti-Patterns
Simon Guest
 
PDF
10 Life Hacks for Better Productivity
Simon Guest
 
PDF
Automated Web Testing using JavaScript
Simon Guest
 
PDF
Advanced Tips & Tricks for using Angular JS
Simon Guest
 
PDF
Enterprise Social Networking - Myth or Magic?
Simon Guest
 
PDF
Patterns For Cloud Computing
Simon Guest
 
10 Life Hacks for Better Productivity
Simon Guest
 
Presentation Anti-Patterns
Simon Guest
 
10 Life Hacks for Better Productivity
Simon Guest
 
Automated Web Testing using JavaScript
Simon Guest
 
Advanced Tips & Tricks for using Angular JS
Simon Guest
 
Enterprise Social Networking - Myth or Magic?
Simon Guest
 
Patterns For Cloud Computing
Simon Guest
 

Recently uploaded (20)

PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PDF
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
PPTX
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
PDF
July Patch Tuesday
Ivanti
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
PDF
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
PDF
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
PPTX
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PDF
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
PDF
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
PDF
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
PPTX
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
PDF
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Reverse Engineering of Security Products: Developing an Advanced Microsoft De...
nwbxhhcyjv
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
Achieving Consistent and Reliable AI Code Generation - Medusa AI
medusaaico
 
COMPARISON OF RASTER ANALYSIS TOOLS OF QGIS AND ARCGIS
Sharanya Sarkar
 
July Patch Tuesday
Ivanti
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
Mastering Financial Management in Direct Selling
Epixel MLM Software
 
[Newgen] NewgenONE Marvin Brochure 1.pdf
darshakparmar
 
CIFDAQ Market Insights for July 7th 2025
CIFDAQ
 
"Autonomy of LLM Agents: Current State and Future Prospects", Oles` Petriv
Fwdays
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Jak MŚP w Europie Środkowo-Wschodniej odnajdują się w świecie AI
dominikamizerska1
 
"Beyond English: Navigating the Challenges of Building a Ukrainian-language R...
Fwdays
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
What Makes Contify’s News API Stand Out: Key Features at a Glance
Contify
 
New from BookNet Canada for 2025: BNC BiblioShare - Tech Forum 2025
BookNet Canada
 
Webinar: Introduction to LF Energy EVerest
DanBrown980551
 
Fl Studio 24.2.2 Build 4597 Crack for Windows Free Download 2025
faizk77g
 

Windows Azure Toolkit for iOS

Editor's Notes