Cloud services for mobile developers: Google vs. Amazon vs. Azure vs. Parse

Cloud-based back ends for mobile applications combine key services with varying degrees of complexity

1 2 3 4 5 6 Page 2
Page 2 of 6

Microsoft Windows Azure Mobile Services
Windows Azure is the brand name that Microsoft wrapped around its cloud of raw compute power and data storage. In one corner of a growing collection of tools sits the mobile services, a collection of routines that funnel JSON packets of information in and out of Microsoft's cloud databases.

The name illustrates what happens when MBAs sit around the table and talk about brand names. Not everything in this cloud has much to do with the operating system known as Windows. All of the traffic in and out travels as open standards and much of the infrastructure is open source. The selection menu for the operating system on the virtual machines for rent starts with Windows Server, but it also includes Ubuntu and Oracle Linux. The identity manager supports log-ins using a Microsoft account, as well as accounts from Facebook, Twitter, and Google. The Azure team clearly wants to be open to anything the customers desire, but the brand manager probably thought that tossing in the word "Windows" would act as leverage or a brand extension.

This split between the Microsoft gated community and the open Web became more apparent as I dug deeper. Much of the documentation encourages the programmer to use Visual Studio to create everything. I clicked on the download button and settled in to wait for more than 3GB of files to arrive.

While waiting, I poked around with my Linux box and discovered that I didn't need Windows or Visual Studio to enjoy the marvels of Windows Azure Mobile Services. Following a few clicks in a browser window, I configured and tested a fat database table sitting in Microsoft's cloud absorbing the data I sent its way. My download meter on the Visual Studio was only up to a few hundred megabytes of data, but I had a running back end for my mobile apps. I canceled the download.

The secret is that Windows Azure Mobile Services is a beautiful front end on Node.js. The logo on the top is from Microsoft central branding, but it takes only a few minutes to realize that almost everything underneath is Node.js acting as a gatekeeper to a Microsoft SQL database.

This becomes obvious once you start customizing the mobile services by adding logic. If you click on Insert, you're given a field in your browser with a starter function written in JavaScript. You can manipulate the data in any way you want before passing it on to the code that will write it to the database. You can filter the data, check for errors, and add custom fields like time stamps in a few lines of JavaScript. When you hit Save, Windows Azure Mobile Services turns this into Node.js code.

This is a clean way to build simple Web services. You edit the JavaScript functions, and the Web back end packages them for Node. I had a great time until I started making mistakes -- there's not a great deal of debugging support. The code either works or it fails. When I left off a curly bracket, everything stopped functioning until I figured it out. The Web interface is fine for basic tools and quick front ends, but you can't build long, complicated filters on the data.

Windows Azure Mobile Services
The Windows Azure dashboard graphs usage and tracks data flows for all of the services.

It's worth noting that you don't need to handle many of the details. When I added extra fields to the packet of JSON data I sent to the server, new columns to store them magically appeared. The back end does much of the work and makes the process much like using one of the unstructured document stores like CouchDB. It's possible to go a long way with little code.

Azure simplifies the process by giving you a template for all of the code needed for six platforms that range from Windows to iOS to Windows Phone 8 to Xamarin. In each of them, it takes only a few lines to add the right libraries and a few more to store data. You don't need Visual Studio for any of this.

1 2 3 4 5 6 Page 2
Page 2 of 6
How to choose a low-code development platform