Last summer I worked on an Android prototype as part of a proposal to a major healthcare organization. In addition to myself, there was a corresponding group that building the same application within iOS. The objective was to demonstrate our capabilities in building native mobile applications on the two leading mobile platforms. The core functionality we were prototyping was prescription renewal, a common function that fits well on a mobile application. In one of our first phone conferences (the team was spread over the country), the subject of where the prototype data such as past prescriptions, drug information, etc. would be coming from. Fortunately, we had our SOA group on the call and one person stood up some web services with canned data on a DataPower appliance.
But what if you don’t have a SOA resource sitting around willing to build out your backend services for you?
As a mobile developer, you may not have the time or the skillset to build out the necessary backend services needed by your mobile app. Into the breach steps the latest ‘as a Service’ offering by various startup vendors, Backend as a Service or BaaS. This capability is relatively unknown compared to other ‘*aaS’ categories but is gaining visibility as an alternative to developers having to build out their own back-end service set. With tight deadlines, the idea of a ready-made, customizable back-end sitting on a cloud somewhere is extremely attractive. For example, one BaaS vendor CloudMine allows you to store two types of data, binary (with associated MIME type) and JSON which would have been ideal when we were building out our prototypes. On a personal level, I support a mobile app that Boy Scout troops use for event scheduling. Quite often, these troops don’t have a way to maintain ever-changing event data used by the mobile app. To that end, I am using the REST APIs of DropBox to allow troops to maintain their event data in a JSON file hosted by a DropBox account. While BaaS will probably not replace corporate back-end services that sites on a physical, on-premises server, BaaS is one more tool in a mobile application developer’s toolbox, especially when tasked with quickly building a mobile prototype.
This is a very interesting and exciting area and increasingly there are more players in this space. Kinvey, StackMob and Parse are few other providers. Interestingly, this will give rise to another related area – NOSQL databases. Since JSON is becoming the defacto protocol to transfer data via REST/RESTful web services, datastores that support not only offline datastores but ability to sync these to online JSON based datastore with the BaaS infrastructure will play a prominent role. Of course, like other things in mobile, consumer apps are spearheading this and enterprise will follow.
But the days of building everything with a RDMBS backend as the only option are increasingly nearing the end. What do you think?
Of course that will give rise to a new need – ability to translate JSON based and other NOSQL data into RDBMS type structures for data-warehousing and big-data initiatives.
Yes, very much so. Kumulos (http://www.kumulos.com/features) does MySQL now and there is a good blog post on Apigee from last year on the BaaS/NoSQL combination: http://blog.apigee.com/detail/from_mysql_to_nosql_a_foray_into_building_apps_with_app_services