MBaaS Platforms

MBaaS Platforms
COMMENTS (0)
Tweet

Mobile Backend as a Service – MBaaS Platforms

With the rapid rise in smartphone and tablet adoption both by consumers and businesses, the demand for high quality mobile apps has increased exponentially, as has the need for rapid app development and deployment. There are also the added factors of security (especially in the case of enterprise development) and app performance to consider, when developing any kind of app.

It is these factors that have fuelled the rise of “Mobile Backend as a Service” or MBaaS platforms. These are solutions that provide developers with pre-built, cloud hosted components for developing mobile application back-ends. By doing so, they help reduce the time and complexity required to build mobile apps, enabling developers to focus on developing the core features of their apps while relegating low level tasks to the MBaas platform. Thus in essence MBaas platforms provide “Turn-on” back-end infrastructure for mobile applications.

With the booming demand for rapid mobile app development, the demand for MBaaS platforms and tools is also growing rapidy. Research shows that that the global BaaS/MBaaS market is expected to grow to $7.7 billion by 2017. Given this rising demand, it is believed that over time the MBaaS marketplace will further evolve and eventually result in four types of MBaaS stacks: Open source, cloud based, closed source and homegrown.

At present however, MBaaS platforms typically offer the following features/services. These services are provided via the use of custom software development kits (SDKs) and application programming interfaces (APIs).

  • A DataStore API for storage on the cloud
  • Binary Storage
  • Device Syncing and caching features
  • Push notifications
  • Online/offline workflow
  • Integration with social networking sites (Facebook, twitter, etc.)
  • Secure connectivity
  • Ability to automatically generate REST based interfaces for reading & writing data

Types of MBaaS Platforms

The following graphic depicts the various MBaaS providers that are currently operating in the market. Some of the more popular ones include Urban Airship, StackMob and Kinvey (to name few). Typically however, there are two types of MBaaS platforms:

  • Hosted Cloud based MBaaS solutions – which are essentially cloud hosted solutions and
  • Opensource MBaaS solutions – which are on-premise MBaaS solutions that are typically free to use and open source in nature
MBaaS Platforms

The difference between these two types of MBaaS platforms lies in three key areas:

  • Ease of Use
  • Enterprise Integration Support
  • Price

Cloud based MBaaS platforms are very easy to use, both from a getting started standpoint as well as from a deployment standpoint. After a simple registration process you can typically get up and running following the instructions. From a deployment standpoint, you do not have to wait for IT staff to provision the infrastructure needed to run the MBaaS system in house. The system is provisioned and scaled automatically by the Cloud.

Open source MBaaS platforms are also relatively easy to use. Depending on the quality of documentation provided with the project, you can get up and running fairly quickly. Most open source MBaaS platforms come with a quick guide that you can read to get up and running within a few minutes. As far as deployment goes, the open source software can be run locally on any developer machine without having to wait on infrastructure provisioning. As the development progresses you can setup multiple MBaaS instances, for example, one for testing and another for production, etc.

The other aspect is enterprise integration. Cloud based MBaaS platforms are typically oriented towards B2C apps and as such the majority of Cloud based MBaaS platforms do not offer Enterprise integration. OpenSource MBaaS platforms on the other hand are geared towards B2E (Business to Enterprise) use and as such provide a natural fit for enterprise integration, as they usually come with out-of-the-box integration frameworks that are technology agnostic. You can write your connectors based on your enterprise integration platform and drop the components into the MBaaS runtime. The MBaaS platform adapts to your Enterprise system as opposed to the other way round. Also, the Enterprise data never leaves the system onto a third-party cloud so the integration is much more secure.

The third factor is price. Cloud based MBaaS platforms have a cost factor associated with them and usually have pay monthly pricing model. OpenSource MBaaS platforms on the other hand are free to use and as such have no cost limitations associated with them.

So if you’re looking for an MBaaS platform for enterprise mobile application development, the logical choice would be an OpenSource MBaaS platform.

In the following paragraphs we’re going to do a comparison of how one of the most important features of MBaaS platforms – data caching and syncing are handled by some of the most popular MBaaS platforms out there today. The first example is StackMob and how it handles data caching and syncing.

MBaaS platforms StackMob

The StackMob data sync process

In StackMob, the data syncing process starts with the list of modified object IDs that have been populated since the device was offline. These IDs are then read from both the server and the cache and the resulting objects checked for conflict. If there is a conflict, a merge policy is applied to determine which representation of the object should be synced across the server and cache. Each ID thus results in a write operation – be it an update to the server or insertion into the cache, etc. When the requests are all ready they are executed as one batch. If everything goes well, the sync completion callback is executed. The diagram below depicts this data sync process for StackMob.

MBaaS platforms stackmob1

StackMob – Data Syncing Typical Approach

Depicted below is the sample code showing the typical approach used by StackMob for data syncing. The approach entails that if there is network coverage available, then data is fetched from the server otherwise the data is fetched from the device’s cache only, as shown below.

__block SMCoreDataStore *blockCoreDataStore = self.appDelegate.coreDataStore;

[client.session.networkMonitor setNetworkStatusChangeBlockWithFetchPolicyReturn:^SMFetchPolicy(SMNetworkStatus status) {        

        if (status == SMNetworkStatusReachable) {

          // Initiate sync

          [blockCoreDataStore syncWithServer];

            return SMFetchPolicyTryNetworkElseCache;

        } else {

            return SMFetchPolicyCacheOnly;

        }

}];

Although this is the typical data sync approach, StackMob also offers several other options for data synching, via it various data fetching policies, which are described below.

  • SMFetchPolicyNetworkOnly – This policy dictates that data always be fetched from the server only
  • SMFetchPolicyTryNetworkElseCache – This policy dictates that if network coverage is available, then data is fetched from the server otherwise data is to be fetched from the local cache on the device
  • SMFetchPolicyCacheOnly – This policy dictates that data is only fetched from the local cache on the device, regardless of whether network coverage is available or not
  • SMFetchPolicyTryCacheElseNetwork – This policy dictates that data is to be fetched from the local cache on the device first and if in case the data is not found in the device’s cache, then it is to be fetched from the server

StackMob also offers a number of options when it comes to the saving of data, via its various data saving policies. These are as follows:

  • SMSavePolicyNetworkThenCache – When this policy is in force, the app will first try to save data on the cloud server and if that is not available, then it will save the data in device’s local cache
  • SMSavePolicyNetworkOnly – When this policy active, the app will always try to save data on the cloud server
  • SMSavePolicyCacheOnly – When this policy is in force, the app will always save data in device’s local cache

Kinvey

Next we’ll look at the Kinvey MBaaS platform. The diagram below depicts the MBaaS architecture that Kinvey provides.

MBaaS platforms Kinvey

The below code snippet illustrates how the Kinvey platform handles data synching both when the app is connected to a network (online), and when the app is offline (not connected to a network).

Kinvey(Syncing) PhoneGap Sample Code

Kinvey.init({

appKey : ‘App Key’,

appSecret : ‘App Secret’,

sync : { enable: true }

});

// The app is in online mode.

Kinvey.Sync.online();

// The app is in offline mode.

Kinvey.Sync.offline();

// Switch application state when the on- and offline$(window).on({

offline : Kinvey.Sync.offline,

online : Kinvey.Sync.online

});

Kinvey Data Parsing (Saving offline)

// Create the object.

PFObject *gameScore = [PFObject objectWithClassName:@”GameScore”];

gameScore[@”score”] = @1337;

gameScore[@”playerName”] = @”Sean Plott”;

gameScore[@”cheatMode”] = @NO;

[gameScore saveEventually];

Although we’ve explained the different approaches each of the above two platforms takes when it comes to data syncing and saving/storing, to give you a more clear idea of the differences between some of the most popular MBaaS platforms out there, including the ones discussed above, we’ve put together the chart below, that highlights the key differences (in terms of features) between these platforms.

MBaaS Platforms Compared

So Which MBaaS Solution Should You Choose?

The answer to this question depends entirely on your project requirements (what features/APIs you need most, etc.) as well as your budget. For example, if you’re looking for an MBaaS platform for enterprise mobile app development then an open source MBaaS platform is the right fit for you. You should also look at the quality of documentation the MBaaS platform comes with, whether its detailed enough and offers enough instruction and support to help you get up and running with the platform. Another factor you should keep in mind when evaluating potential MBaaS platforms for your project is ease of use. For example, Parse is relatively easy to get started with but Stackmob offers a much richer set of APIs.

As a premier mobile app development company, Folio3 specializes in developing enterprise mobility solutions and consumer mobile apps and has extensive expertise using MBaaS platforms including StackMob, Parse and Kinvey (amongst others). If you have a mobile app idea that you’d like to discuss, or would like to know more about our mobile app development services, please Contact Us.

CALL

USA408 365 4638

VISIT

1301 Shoreway Road, Suite 160,

Belmont, CA 94002

Contact us

Whether you are a large enterprise looking to augment your teams with experts resources or an SME looking to scale your business or a startup looking to build something.
We are your digital growth partner.

Tel: +1 408 365 4638
Support: +1 (408) 512 1812