It’s no secret that demand for mobile applications is skyrocketing in both the consumer and enterprise space. To meet that demand, application development shops are continually looking for new ways to accelerate development of apps that meet their consumers’ needs. In response, many new ISVs are beginning to offer a set of cloud-based, server-side mobile services to make app development quicker and easier to deploy. ISVs are referring to those services as “mobile backend-as-a-service” (not a particularly good name, but we’ll use it for now). MBaaS offerings sit squarely between the existing platform-as-a-service vendors and the full end-to-end solution space occupied by mobile enterprise/consumer application platforms (see Figure). I’ll go into more detail on the other layers of this mobile service triangle in the future, but for now let’s take a look at the MBaaS space.
Why should I use an MBaaS solution?
You’ve been given the challenge of developing a mobile app for your enterprise, and the funding’s there just waiting to be spent. You’ve gone through the current research. You’ve defined your target audience, the set of necessary functionality, and the overall experience you wish to deliver to that audience. Now comes the exciting part – building the application. One of the key areas that you’ll need to address is data storage and retrieval. Does the data that your app will access currently reside in a place that will be network-accessible by the mobile devices that will use it? If so, is it accessible through a set of RESTful interfaces for all the CRUD operations that may be required by your app? Finally, will users who access this data from your mobile app be able to authenticate through existing security infrastructure? If the answer to any of these questions is no, you should take a look at the MBaaS services offered by ISVs. Typically, the services include the following:
- A cloud-based storage facility for your data.
- Automatic RESTful API generation providing read/write access to that data.
- Over-the-wire-optimized ways to access this data (generally JSON today).
- User management facilities for authenticating access to your data.
- A set of analytics that allow you to determine how your users are using your mobile app.
Key features found in MBaaS solutions
In addition to the base set of services listed above, vendors differentiate themselves in the marketplace by providing additional functionality designed to appeal to advanced business needs. Let’s take a look at a few of these features:
- OAuth integration into existing social services – If social collaboration is a key aspect of the app you are delivering or if the analytics behind social graph connections between your users that are valuable to you (or your sales/marketing teams), this additional set of functionality will provide an easy way to link users to their Facebook/Twitter/LinkedIn profiles, enabling all of the above. In addition, upon successful authentication against these services, additional native integration with the social platforms is possible as well (e.g., inclusion into the social activity list in the Android ICS Contact app).
- Native notification – If your mobile app needs to interact with the user when it isn’t in the forefront, or if the ability to recapture the user’s attention through any of the native notification methods is useful to you, the addition of notification functionality is important. Notifications can be as simple as notifying the current user that information has changed in the back-end data store or as complex as providing contextually significant information about the current activity of the user, inviting him to use the advanced capabilities of your app.
- Search functionality across stored data – While the browser-based desktop environment was highly search-driven, the mobile space tends toward a content-discovery design that, given the knowledge of user context, is able to guide users to contextually appropriate content. This is a change from the user’s perspective, but from a technology point of view, search is still necessary. MBaaS vendors that provide higher-order search functionality will enable this capability within your app.
- Mobile application management – Most apps enable access to many data sets, not all of which should have full access by all users. Vendors that provide mobile application management functionality will allow you to disable individual areas of functionality based on user/device/profile/etc.
- Visual development – While this capability is most commonly offered further up the mobile service triangle in the mobile middleware space, the line is beginning to blur between these two levels as commoditization of the app development market takes its course. We are starting to see MBaaS vendors offer command-line access to their back-end data/services and, more importantly, visual access to the same. This may be through a web-based application provided by the ISV or a plug-in to one of the popular desktop development environments. Visual access to the data and services enables development teams to quickly prototype their apps and accelerate delivery of early versions.
Active research in the MBaaS space
While this is a quick overview of the current MBaaS space, my research is evolving. In the coming months we’ll be spending more time with MBaaS vendors such as StackMob (http://www.stackmob.com/), Usergrid (http://apigee.com/about/products/usergrid), Appcelerator (http://www.appcelerator.com/), FeedHenry (https://mobilecf.feedhenry.com/), Sencha.io (http://www.sencha.com/products/io/), Applicasa (http://www.applicasa.com/), Kinvey (http://www.kinvey.com/), Parse (https://parse.com/), CloudMine (https://cloudmine.me/), CloudyRec (http://cloudyrec.com/), iKnode (http://iknode.com/), yorAPI (http://www.yorapi.com/), Buddy (http://buddy.com/), and ScottyApp (http://scottyapp.com/). If you’re using MBaaS services today or are interested in what they can do, drop me a note and let me know you’re interested in the topic.