Abbreviations like IaaS (Infrastructure-as-a-Service), PaaS (Platform-as-a-Service) and SaaS (Software-as-a-Service) come to the fore in discussions of cloud service models. These abbreviations are familiar to those who know of cloud technology models. Briefly, in the case of IaaS, the service provider gives just the infrastructure. With PaaS, the service provider gives a platform configured over the infrastructure. Finally, in the case of SaaS, the service provider gives the entire software over a configured platform on the infrastructure. This whole concept has been illustrated in Figure 1, made by the CIO Research Centre.
The role played by the service provider increases from IaaS to PaaS to SaaS, while for users, it decreases. It is also apparent from this diagram that the customisation of the model and the technical knowhow of the developer are directly proportional to the ‘You Manage’ part in the figure. The larger the ‘You Manage’ part is, the higher the level of customisation that can be achieved and the greater the amount of technical knowhow that developers must have.
The evolution of mobile technology, and the decrease in time-to-market for Web and mobile applications led to a new cloud service model in the form of the Backend-as-a-Service (BaaS), more commonly called Mobile Backend-as-a-Service (MBaaS). Wikipedia defines MBaaS as, ‘Backend as a service (BaaS), also known as ‘mobile backend as a service’ (MBaaS), is a model for providing Web and mobile app developers with a way to link their applications to backend cloud storage while also providing features such as user management, push notifications, and integration with social networking services. The need to accelerate mobile and Web app development is the reason for the birth and evolution of MBaaS providers. Also, coping with the success and boom of an app puts an extra strain on developers to manage the server side infrastructure as well. But with the advent of MBaaS providers, even this hindrance has been tackled.
Services offered by MBaaS
Like any other service, if there are ‘n’ vendors in the market, then there ought to be many variations in the services offered. But there is a common subset of services that MBaaS providers generally offer.
The two most important and essential services include a cloud-based storage facility for the data, and automatic RESTful API (Application Programming Interface) generation or custom SDK (Software Development Kit) for performing CRUD (Create, Read, Update and Delete) operations on the data. In fact, the most distinctive feature that differentiates MBaaS from other cloud services is the ability to provide a unified way to connect the Web or mobile app to the cloud services. The time and effort that a developer would have otherwise devoted to creating a backend database and middleware for Web services to access data is now almost nullified with the usage of MBaaS.
With social integration playing a significant role in almost all apps today, it is important for MBaaS providers to take care of this aspect. It would be cumbersome for a developer to maintain ‘n’different sets of APIs/SDKs to perform different tasks in the app. Hence, MBaaS providers also offer OAuth integration with existing social networks, mainly Twitter and Facebook. The developer is now at ease having to use only a single API/SDK for all the operations on the data, and for OAuth integration with social networks as well.
Push notifications is another important area that influences the success of a mobile application. Since most applications today are developed and distributed across multiple platforms, having a central library or engine to send push notifications to multiple platforms is an added advantage for the developer. What would otherwise be obtained through separate segregated blocks of code for different platforms, can now be achieved with a single unified mechanism using the push notification services offered by MBaaS providers.
Usage analytics is another important feature that is offered by MBaaS providers. It is very important while tracking the application, to know how many hits were made to the API, from which region, and what the frequency was. Accurate and quick access to this information often helps in optimising the developers efforts to ensure success and helps them to keep track of the app’s progress.
Importing and exporting data is another key factor. At times, generating usage reports or feeding data into the system becomes a tedious and lengthy task, resulting in the downtime of certain applications. But with the help of MBaaS providers, developers can easily import or export data from the data sources with almost no effect on a production application.
Beyond this common set of features, MBaaS providers differ a lot in terms of their service offerings. A mind map from QuickBlox (one of the major MBaaS players) at the beginning of this year mentions certain sets of offerings by different MBaaS providers. It can be inferred from it that the offerings vary from chat functionality, shopping carts, interface designers, integration email and messaging servers, to server side custom logic,etc.
The MBaaS ecosystem has grown quite large. Kinvey (one of the major MBaaS players) had released a BaaS ecosystem map (Figure 2) earlier this year (January 2013). It is a concise, detailed, yet very apt representation of the MBaaS ecosystem. Forrester Research analyst Michael Facemire says, “There are at least 40 players in this market that I’m aware of. There’s a lot of overlap. There just can’t be that much uniqueness to an offering.” This statement is quite true because when the ecosystem is this large, it gets tougher and tougher to be unique, and more often than not, these MBaaS providers differ from each other only marginally-in terms of two or three services. A developer’s basic set of expectations from these MBaaS providers is usually storage capability for data and automatic RESTful API generation and/or a custom SDK for multiple platforms. And every other MBaaS provider offers these.
Beyond this, it is for developers and organisations to check and test other services before finalising on any MBaaS provider. Sohil Shah, the CEO of OpenMobster, in a Q&A with SearchSOA (TechTarget’s site) said: “This is a growing trend; if you are not on this train, you need to be on it. I am talking about MBaaS, in general, as an industry standard. The trend started in the consumer space back in 2011, when StackMob and Parse came out with offerings, and it has been growing from there.” Hence, it is quite clear that though the ecosystem is a bit old now, it is still growing and maturing with time. It will take a while for a clear winner to emerge.
Which one to use?
This question is generally answered by the offerings of any service provider. A feature by feature comparison is always required whenever a choice has to be made between a set of providers. But as already mentioned, in such a large ecosystem, it is quite difficult to come to a conclusion without having done an in-depth analysis of the service offerings. Hence, a different approach might help narrow down the choices.
Most times, the organisation needs to make the choice. MBaaS providers are of many different types, and range from open source to cloud-based. If your enterprise has sensitive data and you already have servers for the purpose, you could look for a provider who would help you with an on-premise setup. But if yours is a start-up firm and you have no servers at your disposal, going for a cloud-based offering would be a better option. In case of enterprises, many MBaaS providers also offer connectors to major database management systems like Oracle, MySQL, MongoDB, etc. But more often than not, enterprises are reluctant to go for MBaaS providers, and it is the start-ups or independent developers who are their major clients.
Joe Chernov, vice president of marketing at Kinvey, says that the ultimate selection criteria should be which MBaaS vendor allows developers to free up their time for creativity.” The MBaaS you use should help you reduce the effort and load that would have otherwise gone into managing things on the server side, and help you focus on other factors to make your app successful. If you end up choosing a MBaaS provider that increases your work load with a very complex API/SDK, then the very purpose of using MBaaS is defeated.