I have spent my entire last year reviewing six types of mobile back end as a service (MBaaS) platforms, which consisted of Appery.io, Appcelerator, Parse, FeedHenry and AnyPresence. Hespend one year toreview some of the MBaas platforms that are associated with IBM Bluemix and Pivotal CF. These present PaaS services. My research has determined that almost all of the MBaaS platforms need to rely on specific kind of public cloud and almost all of them can be easily installed on hybrid cloud or on-premise configurations. Three of the most popular public cloud services have either bought or developed their own MBaaS platforms. Amazon has been able to develop the Mobile SDK having multiple mobile-specific services apart from the different methods of linking their mobile apps to their mainstream services like S3 and DynamoDB. In October 2014, Google was able to acquire Firebase, that has been also known as to offer real-time, secure, NoSQL database, cloud-hosted, apart from being with a REST API apart from the regular login service. On the other hand, Microsoft Azure Mobile Services comprises of non-Microsoft service components like MongoDB storage, Web API,the Node.js apart from Active Directory, SQL Server cloud services and .Net, which is expected by most of the customers and users.
Amazon Mobile SDK:
The AWS Mobile SDK consists of Mobile Analytics, Cognito, and SNS push notifications. Apps that have been built on Cognito will also work offline just by synchronizing the local storage with Cognito. Cognito users can set up data profile for nearly 1 MB and this can be done in the form of key-value pairs. The local storage will be influenced by the reading and writing operations carried out on any of this data. It helps the user to not only manage, store and sync data and identities over multiple devices, applications, and platforms securely. The users also have the option of using DynamoDB, S3, as well as other services from Amazon through their mobile application. Cognito can be used for the credentials management as well. If the user is anticipating to either store or retrieve any of the non-user-related data, they can choose from MySQL, DynamoDB, or PostgreSQL, S3, or even MongoDB. Cognito on the other hand can be used for per-user credentials storage. Currently the Mobile SDKs from Amazon is under production and meant for iOS and Android and another version is available for Xamarin on AWS Labs.
So, what is Mobile Analytics? It is service from Amazon that allows the users to collect as well as analyze the application usage data. They also have the choice of setting automatic export of their usage data to platform like S3 and use other data analysis tools like Amazon Redshift for further analysis. Amazon Mobile Analytics has been designed for processing as well as exporting the application data within an hour of use. Notifications can be pushed by means of Amazon SNS to devices from Google, Apple, Windows and Fire OS and not to forget the Android devices built in China as well.
Now moving on to Google Firebase, it is a cloud-hosted, real time, and NoSQL database, which comes with REST API, and it has been developed for lower latency. Google Firebase also offers a login service with different kinds of built-in authentication. Even though it provides required support for location query based on the GeoFire library but it still lacks some of the important features, which is expected in enterprise-grade MBaaS like back-end integration with the system as well as push notifications. It depends on SSL encryption for security purposes that comes with 2,048-bit certificates meant for all kind of data transfers; it also offers granular access control and support for the customer made authentication plans. All the data stored by the users on the Firebase will be duplicated and again stored in multiple secure locations. It not only handles billions of operations but it also deals with millions of simultaneous connections.
On the downside, currently Firebase runs only on its own public cloud and it does not give any option of choosing the storage locations. It will be quite difficult for users to rely on Firebase for certain applications that need to abide by PCI-DSS, HIPAA, or the FIPS standards. On the positive side, Firebase has been built with libraries that connect with all the biggest mobile and web client platforms and has bindings for all the major frameworks. It offers quick start guides for android and iOS platform and has the ability to integrate with Ember.js, AngularJS, Backbone.js and React all through the supported libraries.It can also combine with java, Clojure, Node.js, Perl, Python, Ruby and PHP servers via same method. For these combinations, users will have to rely on their server, as it does not provide any database or applications for the integrations. It gives a limited hosting of around 1GB to 10GB and it all depends on the plan chosen by the users. This can be controlled by means of command-line site management tools that come along with the installation of npm. Since the local storage also behaves as cache, all the Firebase apps have the feature of working offline. The users need to use Firebase APIs for offline usage. The users do not require any customer code if they reach an area of connectivity, the system will automatically catch up with the server state.
From what I have seen, Firebase is good for the implementation of low-latency NoSQL storage as well as for simple login services. Contrary to all the positives, Firebase still lacks lots of services and features that are expected from an enterprise MBaaS platform.
Microsoft’s Azure Mobile Services:
At the time of introduction Windows Azure cloud was nothing but all about Microsoft. It not only made the usage of APIs quite daunting, the tools were being run on the visual studios and services were being developed and served from Windows servers. Even though initially it took lot of time for users to get a hand of the service, now it can be done in few seconds. Microsoft Azure might still have many of the Microsoft services but it is no longer limited only to the Windows oriented system.Now the every user can have both MongoDB as well as CoreOS without any problem. Since all the integration is being done through Visual Studio tooling, it can be considered even better from what it was before.
The Microsoft Azure Mobile Services is not only hosted on the Azure public cloud it also provides full-featured MBaaS in around 19 different centers around the world. It can also allow hybrid connections through your data as well as the Azure cloud. It also supports for the multifactor authentication process and it has already been used in many applications in some of the most regulated industries and geographies. This supports Android, iOS, Windows Phone, Xamarin Android, Windows Store, Appcelerator clients, Sencha, PhoneGap clients and HTML clients. The users can also host Node.js Web API and .Net with all day management as well as monitoring. Users will have to use a single sign-on irrespective of the server or client technologies they are using. Both web console or a command line can be used for managing these mobile services. The service creates an Azure SQL Server database as well as a mobile hub to reduce the interservice latency incase of use of the server in an existing database. It will ask for permission from the user for accessing certain IP addresses before they can start using it.
Users have the option of monitoring their SQL server, mobile service, as well as the endpoints and depending on the results; they can configure the services of their mobile according to the plan. Azure Mobile Services team has been able to meet all the requirements of the app developers without forcing them to use any of their solutions.
Looking at all the comparison, I feel that Microsoft Azure Mobile Services is much better than Firebase or Amazon Cognito.