- Client-side developers do need to embrace the cloud. The increasing popularity of connected devices like tablet computers and smartphones is having a direct effect on the adoption rate of personal cloud services. You can expect both connected devices and cloud services to grow together.
- This trend has been accelerating over the past couple of years. Mobile and portable devices have limited internal storage and rely heavily on cloud services.
- Mobile Computing Applications are generally Connected apps.
- You can pull data to them or you can receive push notifications
- Mobile Apps are about connecting to the services you need, like Hotmail, Messenger, Facebook, Twitter, LinkedIn, Messaging, and People app
- SkyDrive is one cloud option available to solve this problem especially within academia as all Live@edu and Office365 students get a free skydrive account.
How the cloud can help
- There are some basic features that all Mobile computing developers will need to master.
- This is where cloud computing can really make a difference and accelerate your time to market.
- Although most applications support their own local storage, you will probably want to leverage the cloud to store important data. Most users will have multiple devices. They will expect that the data is accessible from anywhere. That’s why it is important for developers to know how to leverage Storage Services in the cloud.
- All mobile computing devices comes with a rich communications stack. Most developers will leverage http for most of their communications. There are also push notifications that allow applications to retrieve information in the background and without requesting data specifically.
There are 2 ways your Application can get data
- The cloud provides a way to reach across device platforms and a larger pool of resources from which to get data.
- Mobile applications can get data in two ways. The first ways is to simply ask for it by making a web request. This is using a pull approach. The second way applications can get data is to leverage push notifications.
- When a device uses a pull approach, it is basically a HTTP-based, request/response. Developers can choose from various frameworks, which include WCF, OData, WebAPI, WebRequest, etc.
- Data can be sent in a variety of formats, such as SOAP, JSON, XML, POX, etc.
- Push notifications are initiated by the cloud. Before Applications can receive push notifications, applications must register themselves with the push notification service.
- Your custom cloud service can communicate with the Windows Notification Service to tell it to send push notifications
- The windows notification service is designed to be bandwidth and battery friendly.
- It is the push notification mechanism that is used to update live tiles on the Windows 8 desktop and Windows Phone.
- The downside to push notifications is that there is no guaranteed delivery of content.
- If guarantees are needed for data delivery, then some of the pull techniques previously discussed may be appropriate.
- Oftentimes push notifications result in a pull request from a Windows 8 application. This means that once the Windows 8 application gets a push notification, it knows it needs to then request data from the cloud using a pull approach. Of course, it may choose to ignore this, given a user preference.
Push and Pull – Maybe Both
- The Push Notification Service is provided by Microsoft. However, Windows 8 applications must register for this service. Once registered, applications are ready to receive data that is sent by the Windows Push Notification Service.
- The Push Notification Service may receive data itself from a Windows Azure cloud application that you create. This cloud based application can aggregate data from other sources if necessary. You can see from the diagram above it may request data from Flickr or Facebook or just about from anywhere.
Downloads and Setup - Windows Azure Toolkits for Devices
Windows Phone - http://bit.ly/watwp7
Windows 8 - http://bit.ly/Lcthn1
The Windows Azure Toolkit for Social Games is a set of guidance, samples, and tools that helps developers quickly get started building a casual or social game on Windows Azure. https://github.com/WindowsAzure-Toolkits/wa-toolkit-games
Keeping data off the local device and in the cloud
- Some powerful capabilities are available here.
- To start with, there is the ability to store huge amounts of data.
- Tables allow you to stores huge lists of things or huge collections of objects. Tables can partition themselves across many machines, supporting extremely fast query results even if there are billions of rows.
- Blobs allow you to store large binary objects like videos, documents, even web pages.
- Queues allow you to support asynchronous messaging. That means your applications can send information to a cloud application and not be affected by how busy the cloud application is.
- Because Azure supports Infrastructure as a Service Technologies (IaaS), developers have almost an unlimited amount of options for their Data Storage needs
- Microsoft supports Linux in the cloud. This means you can install almost any data store that is supported on Linux, meaning that you can use MongoDB, Cassandra, MySQL, or almost any other data platform.
- Download the Identity Training kit
- Leveraging the Windows Identity Foundation SDK and training kit is probably the best starting point for anyone serious about implementing secure systems.
- Security is a big topic.
- Applications can leverage claims-based authentication techniques. Typically, this involves a security token service, which creates SAML tokens. Inside these tokens are claims.
- Claims-based identity can greatly simplify the authentication process for the user because he or she doesn't have to sign in multiple times to multiple applications.
- Single sign in is ideal for some situations, such as to authenticate against multiple applications or websites.
- Claims-based identity is a way to achieve single sign in. It can make the authentication less complex for your apps because those apps don't have to provide ways to create an account or password, etc.
- Another great feature of claims-based identity is that it allows your applications to obtain specific user information, without having to ask the user for that information.
- SAML tokens make it possible for single sign on scenarios, where your security credentials need to travel through different security gateways.
- The Access Control Service allows you to leverage third party identity providers, such as Facebook, Yahoo, Google, and Live.
- This frees the developer from having to worry about identity in their application. Identity management is complex and time consuming and takes away from a developer's focus on the application itself.
Resources for Mobile Application development
Project Templates, Samples and Libraries Source Code
Creating a New Windows 8 Cloud Application
Running the Windows 8 Cloud Application
Using the Windows 8 Cloud Application Services Application
Sample Metro App using Windows Azure Service Bus
Push Notification Worker Sample
How to Deploy Your Services to Windows Azure
How to Obtain Namespace and Management Keys
More information and details on Windows 8 Tile Notification Types
More information and details on Windows 8 Badge Notification Types
More information and details on Windows 8Geolocation
Try these NuGet Packages
Try Windows Azure in Education 150 day Academic Pass and 90 day Student Pass