Building Mobile Phone Applications in the Cloud

Slides:



Advertisements
Similar presentations
Cross Platform Push with Azure
Advertisements

Mobile Application Development with Windows Azure Technical Nick Harris.
Staying in Sync with Cloud 2 Device Messaging. About Me Chris Risner Twitter: chrisrisner.
Attie Naude 14 May 2013 Windows Azure Mobile Services.
Page 1 Ricardo Villalobos Windows Azure Architect Evangelist Microsoft Corporation Designing, Building, and Deploying Windows Azure applications.
Push to ALL the iPhones with Azure Chris Risner Senior Technical Microsoft Azure.
Azure Services Platform Piotr Zierhoffer. Agenda Cloud? What is Azure? Environment Basic glossary Architecture Element description Deployment.
Innovation Group Event: Cocktails & Clouds 10 th November 2011.
Web Services Rob S. Miles | Microsoft MVP | University of Hull, UK Andy Wigley | Microsoft MVP | Appa Mundi Session 11.0.
Switching on the cloud for Silverlight MSDN Live Meeting Gill Cleeren Microsoft Regional Director – Silverlight MVP Ordina Belgium.
| Basel Discovering Windows Azure Mobile Services and Media Services Ken Casada
App development in SharePoint 2013 LIVE Introducing Cloud App Model Cloud-hosted Apps Experiences from the Field.
A Tutorial on Windows Phone 7 and Windows Azure COSC7388 Spring 2011 Huy Nguyen.
Building Mobile Phone Applications in the Cloud NAME TITLE Microsoft Corporation.
Application Scenarios Name Title Microsoft Corporation.
Microsoft Azure Introduction ISYS 512. Microsoft Azure Microsoft Azure is a cloud.
Migrating Business Apps to Windows Azure Marc Müller Principal Consultant, 4tecture GmbH
Getting Started with Windows Azure Name Title Microsoft Corporation.
Building Connected Windows 8 Apps with Windows Azure Web Sites Name Title Organization.
Introduction to Windows Azure BUGAEV ROMAN. Azure Windows Azure Platform is thus classified as platform as a service and forms part of Microsoft's cloud.
Windows Azure Conference 2014 Deploy your Java workloads on Windows Azure.
WEB PUSH Johannes Brodwall. Outline The low down Is it time? Implementation notes Firefox Chrome Safari Implementation bits.
Eric Nelson Application Architect, Microsoft ISV Team Windows.
IOS and Android with Windows Azure Websites Name Title Address Website.
Innovation Day. Вы стартап? Узнайте, как быстро разрабатывать и зарабатывать на приложениях под Windows Phone: На конференции Microsoft BizSpark Camp.
CONNECTING PHONE APPLICATIONS TO THE CLOUD Nick Randolph (Built to Roam) SESSION CODE: COS-WPH208 (c) 2011 Microsoft. All rights reserved.
I am familiar with Mobile Services Node.js Express ASP.NET Web API SQL Table Storage Blob Storage WNS APNS GCM Mongo DB Notification Hubs Source.
Building Mobile Phone Applications With Windows Azure Nick HarrisWindows Azure Technical Evangelist Microsoft Blog:
Building Connected Windows 8 Apps with Windows Azure Web Sites Name Title Organization.
Mobile + Cloud: Building Mobile Applications with Windows Azure Wade Wegner Blog:
(re)-Architecting cloud applications on the windows Azure platform CLAEYS Kurt Technology Solution Professional Microsoft EMEA.
WINDOWS PHONE 7 DEVELOPER GUIDE A guide to 3 screens and the cloud Scott Densmore Sr. Software Development Engineer Microsoft patterns & practices.
To the cloud… Brian Hitney Developer Evangelist, Microsoft
Building web applications with the Windows Azure Platform Ido Flatow | Senior Architect | Sela | This session.
Windows Azure and iOS Chris Risner Windows Azure Technical Evangelist Microsoft
START Application Spencer Johnson Jonathan Barella Cohner Marker.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
DreamFactory for Microsoft Azure Is an Open Source REST API Platform That Enables Mobilization of Data in Minutes across Frameworks and Storage Methods.
Developers Introduction to the Power BI Platform.
Building Azure Mobile Apps
Mobile Application Solution
Deploying Web Application
Introduction to Windows Azure AppFabric
EBSCO eBooks.
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Mobile Application Solution
IBM Data Server Gateway for OData
PaaS - Development Stefan Geiger Gerry
Azure AD Application Proxy
Built on the Powerful Microsoft Azure Platform, iSwarm Helps Businesses Analyze Social Media Conversations, then Connect with Individuals MICROSOFT AZURE.
Using cloud storage from Windows apps
Building Windows Phone 7 Applications with the Windows Azure Platform
Partner Logo Azure Provides a Secure, Scalable Platform for ScheduleMe, an App That Enables Easy Meeting Scheduling with People Outside of Your Company.
Outline Virtualization Cloud Computing Microsoft Azure Platform
11/30/2018 4:57 AM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Mobile + Cloud: Building Mobile Applications with Windows Azure
Building Windows 8 and Windows Azure apps
12/7/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Your Devices + OData + Azure = 
ACS Deployment Scenarios
TechEd /15/2019 8:08 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
1/16/2019 8:14 PM SAC-863T Delivering notifications with the Windows Push Notification Service and Windows Azure Darren Louie, Nick Harris Program Manager,
TechEd /22/2019 9:22 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Developing for Windows Azure
Building device & cloud apps
Multi-Factor Authentication
Building global and highly-available services using Windows Azure
Erik Porter Program Manager ASP.NET Microsoft Corporation
Building Windows Store Apps with Windows Azure Mobile Services
HydroTel/iLink/WebServices Overview
Presentation transcript:

Building Mobile Phone Applications in the Cloud Name Title Organization

Agenda This session is focused on building device applications with Windows Azure We’ll talk about storage, identity, communications, platform services, and tools Several demos How many phone devs? How many used Windows Azure?

Windows Phone application leveraging Windows Azure BabelCam demo Start 10:02 End 10:06 Install Certificate Reset Storage Windows Phone application leveraging Windows Azure

Store Image in Windows Azure Blob Storage User Authentication Process Image Send Notification Store Image in Windows Azure Blob Storage User Authentication WAZ Storage Any pictures? Process Image SAS Windows Azure Access Token Access Token Authenticate Shared Access Signature Send Image Translated Text Translated Text Microsoft Push Notification Service Hawaii OCR & Bing Translator Translated Text

Features in Action Storage Identity Communications Platform Services

Three Reasons for Device + Cloud 1 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 2 3

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

Storage

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

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

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

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

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 (2) (3) Web Role (4) (1)

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

Windows Azure Toolkits for Devices demo Start 10:23 End 10:30

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 IdP protocol Outsource identity management Access Control Service Think about the user Contrast Babelcam login verse Registration

Using ACS from Windows Phone using NuGet demo Optional iOS + Android using the Windows Azure Toolkit from iOS and Windows Azure Toolkit for Android

Communications

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

Communications: Device-initiated OData 8.5kb REST-XML 1.2kb Device-initiated options HTTP-based, request/response Framework choices (WCF, OData, WebRequest, etc.) Wire format choices (SOAP, JSON, POX, etc.) <?xml version="1.0" encoding="utf-8" standalone="yes" ?> - <feed xml:base="http://localhost:33779/WcfDataService1.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> <title type="text">Drivers</title> <id>http://localhost:33779/WcfDataService1.svc/Drivers</id> <updated>2010-05-24T22:12:38Z</updated> <link rel="self" title="Drivers" href="Drivers" /> - <entry> <id>http://localhost:33779/WcfDataService1.svc/Drivers(1)</id> <title type="text" /> <updated>2010-05-24T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(1)" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(1)/DistributionCenter" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays" type="application/atom+xml;type=feed" title="Todays" href="Drivers(1)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">1</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">1</d:DistributionCenterId> <d:FirstName>Rob</d:FirstName> <d:LastName>Tiffany</d:LastName> </m:properties> </content> </entry> - <entry> <id>http://localhost:33779/WcfDataService1.svc/Drivers(2)</id> <title type="text" /> <updated>2010-05-24T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(2)" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(2)/DistributionCenter" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays" type="application/atom+xml;type=feed" title="Todays" href="Drivers(2)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">2</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">1</d:DistributionCenterId> <d:FirstName>Loke Uei</d:FirstName> <d:LastName>Tan</d:LastName> </m:properties> </content> </entry> - <entry> <id>http://localhost:33779/WcfDataService1.svc/Drivers(3)</id> <title type="text" /> <updated>2010-05-24T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(3)" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(3)/DistributionCenter" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays" type="application/atom+xml;type=feed" title="Todays" href="Drivers(3)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">3</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">1</d:DistributionCenterId> <d:FirstName>Dan</d:FirstName> <d:LastName>Bouie</d:LastName> </m:properties> </content> </entry> - <entry> <id>http://localhost:33779/WcfDataService1.svc/Drivers(4)</id> <title type="text" /> <updated>2010-05-24T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(4)" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(4)/DistributionCenter" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays" type="application/atom+xml;type=feed" title="Todays" href="Drivers(4)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">4</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">1</d:DistributionCenterId> <d:FirstName>John</d:FirstName> <d:LastName>Dietz</d:LastName> </m:properties> </content> </entry> - <entry> <id>http://localhost:33779/WcfDataService1.svc/Drivers(5)</id> <title type="text" /> <updated>2010-05-24T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(5)" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(5)/DistributionCenter" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays" type="application/atom+xml;type=feed" title="Todays" href="Drivers(5)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">5</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">2</d:DistributionCenterId> <d:FirstName>Derek</d:FirstName> <d:LastName>Snyder</d:LastName> </m:properties> </content> </entry> - <entry> <id>http://localhost:33779/WcfDataService1.svc/Drivers(6)</id> <title type="text" /> <updated>2010-05-24T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(6)" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(6)/DistributionCenter" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays" type="application/atom+xml;type=feed" title="Todays" href="Drivers(6)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">6</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">2</d:DistributionCenterId> <d:FirstName>Steve</d:FirstName> <d:LastName>Hegenderfer</d:LastName> </m:properties> </content> </entry> - <entry> <id>http://localhost:33779/WcfDataService1.svc/Drivers(7)</id> <title type="text" /> <updated>2010-05-24T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(7)" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(7)/DistributionCenter" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays" type="application/atom+xml;type=feed" title="Todays" href="Drivers(7)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">7</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">2</d:DistributionCenterId> <d:FirstName>Chip</d:FirstName> <d:LastName>Vollers</d:LastName> </m:properties> </content> </entry> - <entry> <id>http://localhost:33779/WcfDataService1.svc/Drivers(8)</id> <title type="text" /> <updated>2010-05-24T22:12:38Z</updated> - <author> <name /> </author> <link rel="edit" title="Driver" href="Drivers(8)" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/DistributionCenter" type="application/atom+xml;type=entry" title="DistributionCenter" href="Drivers(8)/DistributionCenter" /> <link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Todays" type="application/atom+xml;type=feed" title="Todays" href="Drivers(8)/Todays" /> <category term="ContosoBottlingModel.Driver" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" /> - <content type="application/xml"> - <m:properties> <d:DriverId m:type="Edm.Int32">8</d:DriverId> <d:DistributionCenterId m:type="Edm.Int32">2</d:DistributionCenterId> <d:FirstName>James</d:FirstName> <d:LastName>Pratt</d:LastName> </m:properties> </content> </entry> </feed> <?xml version="1.0" encoding="utf-8"?> <DataSet xmlns="http://tempuri.org/"> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true"> <xs:complexType> <xs:choice minOccurs="0" maxOccurs="unbounded"> <xs:element name="Driver"> <xs:complexType> <xs:sequence> <xs:element name="DriverId" type="xs:int" minOccurs="0" /> <xs:element name="DistributionCenterId" type="xs:int" minOccurs="0" /> <xs:element name="FirstName" type="xs:string" minOccurs="0" /> <xs:element name="LastName" type="xs:string" minOccurs="0" /> </xs:sequence> </xs:complexType> </xs:element> </xs:choice> </xs:complexType> </xs:element> </xs:schema> <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"> <NewDataSet xmlns=""> <Driver diffgr:id="Driver1" msdata:rowOrder="0"> <DriverId>1</DriverId> <DistributionCenterId>1</DistributionCenterId> <FirstName>Rob</FirstName> <LastName>Tiffany</LastName> </Driver> <Driver diffgr:id="Driver2" msdata:rowOrder="1"> <DriverId>2</DriverId> <DistributionCenterId>1</DistributionCenterId> <FirstName>Loke Uei</FirstName> <LastName>Tan</LastName> </Driver> <Driver diffgr:id="Driver3" msdata:rowOrder="2"> <DriverId>3</DriverId> <DistributionCenterId>1</DistributionCenterId> <FirstName>Dan</FirstName> <LastName>Bouie</LastName> </Driver> <Driver diffgr:id="Driver4" msdata:rowOrder="3"> <DriverId>4</DriverId> <DistributionCenterId>1</DistributionCenterId> <FirstName>John</FirstName> <LastName>Dietz</LastName> </Driver> <Driver diffgr:id="Driver5" msdata:rowOrder="4"> <DriverId>5</DriverId> <DistributionCenterId>2</DistributionCenterId> <FirstName>Derek</FirstName> <LastName>Snyder</LastName> </Driver> <Driver diffgr:id="Driver6" msdata:rowOrder="5"> <DriverId>6</DriverId> <DistributionCenterId>2</DistributionCenterId> <FirstName>Steve</FirstName> <LastName>Hegenderfer</LastName> </Driver> <Driver diffgr:id="Driver7" msdata:rowOrder="6"> <DriverId>7</DriverId> <DistributionCenterId>2</DistributionCenterId> <FirstName>Chip</FirstName> <LastName>Vollers</LastName> </Driver> <Driver diffgr:id="Driver8" msdata:rowOrder="7"> <DriverId>8</DriverId> <DistributionCenterId>2</DistributionCenterId> <FirstName>James</FirstName> <LastName>Pratt</LastName> </Driver> </NewDataSet> </diffgr:diffgram> </DataSet> The same list of 8 Customers using SOAP and a DataSet dropped us down to 3 kb but still too big for my taste. <ArrayOfDriver xmlns=http://schemas.datacontract.org/2004/07/ContosoWcfService.Models xmlns:i="http://www.w3.org/2001/XMLSchema-instance"> <Driver> <DistributionCenterId>1</DistributionCenterId> <DriverId>1</DriverId> <FirstName>Rob</FirstName> <LastName>Tiffany</LastName> </Driver> <Driver> <DistributionCenterId>1</DistributionCenterId> <DriverId>2</DriverId> <FirstName>Loke Uei</FirstName> <LastName>Tan</LastName> </Driver> <Driver> <DistributionCenterId>1</DistributionCenterId> <DriverId>3</DriverId> <FirstName>Dan</FirstName> <LastName>Bouie</LastName> </Driver> <Driver> <DistributionCenterId>1</DistributionCenterId> <DriverId>4</DriverId> <FirstName>John</FirstName> <LastName>Dietz</LastName> </Driver> <Driver> <DistributionCenterId>2</DistributionCenterId> <DriverId>5</DriverId> <FirstName>Derek</FirstName> <LastName>Snyder</LastName> </Driver> <Driver> <DistributionCenterId>2</DistributionCenterId> <DriverId>6</DriverId> <FirstName>Steve</FirstName> <LastName>Hegenderfer</LastName> </Driver> <Driver> <DistributionCenterId>2</DistributionCenterId> <DriverId>7</DriverId> <FirstName>Chip</FirstName> <LastName>Vollers</LastName> </Driver> <Driver> <DistributionCenterId>2</DistributionCenterId> <DriverId>8</DriverId> <FirstName>James</FirstName> <LastName>Pratt</LastName> </Driver> </ArrayOfDriver> JSON 639 bytes [{"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"}] Serialization format data thanks to Rob Tiffinay. 8.5kb verse 639bytes – difference 13 times meaning: - up to 13 times the data throughput on a single instance. - 13 times the users/requests served. - up to 13 times the savings as you wont need to scale out as early because wont hit the bandwidth threshold of your instance as fast.

Communications: Cloud-initiated Push Notifications !Raaawww Raw notifications payload size http://msdn.microsoft.com/en-us/library/ff402558(v=vs.92).aspx Push data to your application If app is not currently running MPNS discards the message. Watch out for max payload size. If exceeds use to drive app to pull content from service Single connecting between the device and the notification service Bandwidth- and battery-friendly Note: 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 (4) *NS Web Role (1) (5) (2) (3)

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 (1) *NS Web Role (2) (3) (4)

Notifications: Different services Windows 8: Windows Push Notification Service (WNS) Windows Phone: Microsoft Push Notification Service (MPNS) iOS: Apple Push Notification Service (APNS) Android: Google Cloud Messaging (GCM)

Demonstrate Push Notifications on Windows Phone using NuGets Start 10:40 End 10:45 Phone:   Install-Package Phone.Notifications.BasePage Properties/WMAppManifest --> Default Task /Pages/NotificationsPage.xaml Cloud: add project cloud mvc 3 In nuget package console change the dropdown from Phone project to MVC project install-package CloudServices.Notifications install-package WindowsPhone.Notifications.ManagementUI.Sample optional – if 80 is already used by iis 81 will be selected auto - Endpoints to 81

Platform Services

Platform Services Access Control Service Caching Content Delivery Network (CDN) SQL Database Data Sync Traffic Manager

Tools & Resources

Windows Azure Toolkits for Devices Easier for device developers to use Windows Azure Windows Phone iOS Android http://bit.ly/watwp7 http://bit.ly/watios http://bit.ly/watandroid

Summary Toolkits Devices + Cloud Storage Identity Communications Platform Services Toolkits

Summary