The ubiquity of mobile devices and how mobile devices have become an integral component of our lives is often intriguing and yes, it is testimony to the fact that we are living in a Cloud First and Mobile First world. At Microsoft, we understand this trend and we are here to provide you with all the tools that you need to contribute to the Cloud First and Mobile First World.

What is Azure Mobile Services?

Azure Mobile Services (AMS) provides an end to end support for Mobile App Development. It is also known as Mobile Backend-as-a-Service (B-a-a-S). AMS has the capability to build scalable mobile applications across the following platforms:

Windows Store Apps

Windows Phone 8/8.1

iOS

Android

Xamarin

PhoneGap

HTML5/JavaScript

The SDKs and Development Tools for the listed platforms can be found here.

How does AMS enable B-a-a-S ?

The above diagram describes some of the functionality that AMS provides. A brief description of each functionality is as follows:

Structured Storage

AMS easily connects to a SQL Database which offers rich querying and indexing capabilities. Using dynamic schematization, one does not have to be a DBA to manage schemas. The data can be managed through the Azure Portal, SQL Portal (Silverlight), SQL Management Studio, REST APIs(which are used by the SDKs), Azure CLI tools and SQL CLI. AMS can also be integrated with Azure Table, Blob Storage and MongoDB.

Authentication and Authorization

Authentication is provided by an identity provider (Microsoft, Facebook, Twitter, Google and Azure Active Directory). AMS uses OAUTH in the backend to simplify the authentication process. Basically the idea is to register the app with the identity provider (get the generated secret token), restrict permissions to the authenticated users (on the Azure management portal using the token) and finally adding the authentication (the token) to the app to ensure preferential access. Alternatively, a more efficient approach may be to cache the token on the client itself before using the provider based sign-in. Get Started with authentication in Mobile Services explains how authentication can be accomplished across platforms.

Backend Logic

AMS allows you to define custom business logic that is run on the server. The logic is provided as a JavaScript function that is either registered to an insert, read, update, or delete operation on a given table or is assigned to a scheduled job. Since AMS uses Node.js, scripts on the server side, access to the modules of Node already exists. This also ensures better source control, shared code and the use of helper functions available in Node. In short, AMS provides a fully customizable platform to design and architect the backend logic of your application. Work with server scripts for backend mobile service explains this utility in detail.

Push Notification

Notification is a key feature in any mobile app. AMS accomplishes this through the Push Notification Service (PNS) that works across all the platforms. PNS abstracts the details of each platform and gives a unified interface to send notification to Apple, Google or Windows devices. The basic idea here is that the client (your mobile device) registers with PNS and gets a token. This token is passed on to the Mobile Service by the client. Once a notification needs to be pushed, the Mobile Service pushes the message along with the token to the client. Getting started with notification hubs explains this process in detail.

Scheduler

AMS also has the functionality to register a business logic that is either executed on a schedule or on-demand from the management portal. This is often a useful functionality that allows for push notifications, cleanup tasks, archiving, nightly jobs or gathering data. Schedule recurring jobs in a Mobile Service explains this utility in detail.

To summarize, every mobile app uses data. AMS provides a holistic cloud offering to store and manage data. Designing and architecting backend server logic and authenticating users while giving them preferential access is key. Pushing notifications, archiving and cleanup through scheduled jobs are integral to any app. The point to note is that AMS is a one-stop shop for Mobile App development.

When and Where to start?

What I have tried to accomplish here is to give a high level overview of the key functionalities that are available on AMS which can be leveraged for any mobile app development. The time and opportunity to develop mobile apps is now. We, at Microsoft, are here to help and provide you with all the necessary tools and information for you to be successful. Whether you are an entrepreneur, a developer or a student or a hobbyist, feel free to explore Azure Mobile Services to express your creativity and skills. After all, we are here to help you contribute to the Cloud First and Mobile First World.

In the next few posts, I will take you through each of the features described in greater depth. So stay tuned!

If you want to explore AMS in greater depths, you can refer the following: