Mobile Backend As A Service (MBaaS)

A Backend-as-a-Service (Baas), also known as a Mobile Backend-As-A-Service (MBaas), is a service that provides to web and mobile application 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, to name a few. Described by tech analysts as a “turn-on infrastructure” for mobile and web apps, a BaaS is basically a cloud computing category that is comprised of companies that make it easier for developers to setup, use and operate a cloud backend for their mobile, tablet and web applications by connecting their applications to remote and/or local backend cloud storage via services provided through Software Development Kit (SDK) and a set of routines, protocols, and tools for building software and applications, also known as application programming interface (API). Mobile Backend as a Service, sometimes referred to as mBaaS in the abbreviation happy tech world, refers to the practice of using a service provider to power the backend services – such as business logic and data management – of an app. The purpose of using an mBasS provider is to take care of all the technical infrastructure necessities needed behind the scenes for an app to work properly. 

It is a platform that handles service infrastructure and backend development tasks. Backend as a Service allows developers to focus on frontend development while the service provider handles server-related tasks. Besides, the backend as a service provider also adds value to developers by providing tools that expedite backend code creation. 

MBaaS deals with the back end of things. It can handle app logic, as well as app data management. The most important thing to understand is that MBaaS saves a great deal of time for developers. It ensures that there is no need to set up a custom backend. It’s already there and waiting. Developers can then focus on the front end, where the user’s focus will be in the first place.

So, MBaaS is nothing more than a cloud provider creating a basic backend that handles logic and data management, which can then be added to the back of any mobile application. This ensures that things like push notifications, user management, geolocation and login, analytics and all the rest are handled for you. It might not seem like that much, but for developers pressed for time, MBaaS can be a true lifesaver.

Some of the features Backend as a service provides are data management, APIs, push notifications, authentication, social media integrations, file storage, and many others.

Most Apps consist of two main parts –

  • Client Side (front end)
  • Server side (back end).

The Client Side consists of the App UI – basically the part of the App that the user interacts with.

mBaaS sits on the Server Side, where it does a couple of different jobs

  • App Logic
  • App Data Management

Keeping these two services separate makes a lot of sense when it comes to building apps. For example, functions such as logins, geolocation services, file uploads and push notifications can be coded the same and reused by any app

In order to connect to these backend services, client side applications connect using an Application Prototype Interface, also known as an API (warned you about the abbreviations). These APIs are then, in turn, bundled up in libraries known as Software Development Kits or SDKs (yep, another).

Are mBaaS and BaaS the same thing?

The abbreviations BaaS and mBaaS – mobile BaaS stand for the same thing since you can use Backend as a Service to power both web and mobile projects. When it is used for a mobile app project, it will serve as a mobile backend as a service (MBaaS).

An Overview of BaaS Architecture

There are three layers in the architecture of a mobile backend as a service.  The first layer can be referred to as the foundation, which includes the database server. The database would usually use a cluster setting that makes room for data backup and restoration when the need arises. 

The application cluster is the second layer, which is made up of a bunch of servers that process requests from client apps. The number of servers does vary throughout the day, and the BaaS provider usually implements an autoscaling feature. Autoscaling allows the service provider to supply the right amount of server resources required per time. 

The third layer is responsible for connecting the applications servers to the internet and consists of load balancers and CDNs.

The anatomy of a mobile app in an MBaaS environment consists of two layers — one for the mobile thin client, and the other for the MBaaS platform.

1.) Thin mobile client layer:

The thinness of the mobile client is focused mainly on user interactions, built with lightweight architecture based on the model view controller (MVC). The MVC architecture contains the preferred user experiences, tied to the associated service actions, using controller logic. As a best practice, the controller logic is kept light by having the business-related logic stored in the MBaaS platform.

2.)  MBaaS platform:

The platform contains the necessary modules to optimally connect with existing enterprise applications and data. They can be further classified as follows:

  • Cloud-based server app: The Node.js-based app provides a single scalable interaction point for managing client requests to backend micro services. Since it resides on the cloud and is distributed, this app server becomes a central mechanism for managing data across multiple client-side apps requesting services via multiple channels and regions.
  • Micro services: These components are adaptors that service each mobile function request and that respond with the appropriate (and granular) enterprise service data. As part of service fulfillment, the user information, context and location are stored for later channel analysis. Once the layers are built,various touch points are integrated and configured to complete the app assembly. The layered approach provides the flexibility to enable the micro services layer to function as a plug-in that can serve many mobile apps based on their functional requirements.
  • Mobile data objects: In the typical desktop computing paradigm, data in databases requires time to be converted into and represented as objects in a middle tier, and again converted to UI classes for viewing. This two-staged conversion process can impede performance, which creates delays and delivers a suboptimal user experience. Hence, the MBaaS platform implements mobile information as mobile data objects from the micro services to mobile devices and does not perform conversion during the exchange of data between the layers. Another performance attribute involves the management of non-volatile client data. MBaaS provides a cache facility, with refresh limits, to satisfy client-side requests directly from MBaaS rather than fetching it every time from the enterprise data layer. Such rules should be established in MBaaS to ensure high performance

HOW?

While there are two types of MBaaS providers out there, both work in a similar manner. Think of them as being able to create a reusable skeleton for your apps, over which unique skins can be placed. The basic functionality that all apps need is there for you, from API calls to the ability to scale up bandwidth for high user loads, which saves an immense amount of time during the development phase. This frees you, the developer, to focus on the GUI (graphical user interface), and the user-specific functionality that is necessary for the app.

To build a mobile application with a MBaaS, mobile developers need only programming API connections. SDKs have been provided to facilitate access to programming libraries, including data from the smartphone to connect to the database server. Developers can focus on logic programming while all of the infrastructure has been set by a MBaaS provider. This way, developers can easily integrate with the platform data and other service that will be reducing the performance of manual integration. Furthermore, developers receive additional burden when the scalability of their infrastructure needs modifications and additions. An MBaaS provider can manage the additional services needed by the developer, helping to manage traffic from each user who accesses the application. Applications, particularly mobile apps, are typically built on two interconnected layers, where each layer plays an important role.

These two roles include:

1. Client Side Commonly called the front end, consisting of UI/UX elements, and where all of the user to the machine interfacing is done.

2. Server Side Commonly called the back end, consisting of display database, user management, and data processing. This layer includes the cloud infrastructure such as server load balancer, database table, push notification, master and slave data storage, retrieval, and security measures such as OAuth.

By using a BaaS/MBaaS, developers can focus on the client side layer, while the server side/backend will be managed by the provider, making it the ideal platform for both developers and enterprise usage.

Benefits from Designing API First : 

The general practice amongst industries now is to design a website or application and then to build an API to connect it to others. However, this process is beginning to change by first describing the interface. This means everything that goes through a system goes through the API, enabling websites, mobile apps, and desktop service to be standardized through a single interface. There can be multiple advantages from offering an API, highlighted by a few examples below:

1. API as an added revenue source

A restaurant releases its daily menu and reservation availability via API. A thirdparty developer like Yelp or TheFork would like to access that information. The restaurant could choose to simply leave it free for branding purposes, charge each time information is retrieved, or simply charge monthly.

2. API increases brand awareness

Companies such as TripAdvisor use tools such as Mulesoft, an integration software for connecting applications, data and services, to make available photos, reviews and ratings data, as well as a separate hotel Availability Check API. This means that hundreds of thousands of brand impressions are seen daily outside of the TripAdvisor’s main website.

3. API fosters open innovation

Fitbit fitness tracker opened up its API in 2011 to allow third-party developers to create fitness apps based on its health data. Through this technique, over twenty apps were created in the first two years, saving Fitness roughly $1 million in R&D alone.

4. APIs greatly help to increase efficiency

The “API-first design approach” helps to internally structure IT systems and architecture, and also helps to better maintain this architecture. Also known as “eating your own dog food” – companies maximize efficiency and continue to improve their API internally.

WHY?

In short? Because it saves time. A LOT.  There’s no setting up a customized backend – because your provider has already done it for you! This lets you focus your development efforts on the things that matter, like giving your users an awesome app experience. Also, because you don’t have to worry about what’s going on behind the scenes on the server side, using mBaaS gives you easier scalability. Your latest kitten app getting too many users? No problems. Your mBaaS provider can ramp up things behind the curtain to give your app the power and flexibility it needs. And, lastly, let’s not forget analytics. Because your Mobile Backend as a Service provider is serving up APIs at their end, they’ll have access to all the traffic analytics. Taking a look at your API usage is a fantastic way to optimize and improve your app. 

Backend as a service solves lots of problems. Here are two of the most pressing issues that BaaS addresses.

  • It helps manage and scale cloud infrastructure.
  • Expedite backend development.

WHO?

Backend as a service is more of a technical service that supports developers. An everyday computer user without professional knowledge could not comfortable using such a service. Below are common usage scenarios.

  • Frontend engineers who do not have expertise in handling backend jobs
  • Backend engineers that want to expedite the development process.
  • Engineers who prefer to outsource low-value or repetitive tasks.

WHEN?

Here are some scenarios where backend as a service proves useful.

  • Creating a Minimum Viable Product -MVP.
  • Standalone apps that need minimal integrations.
  • Mission-critical enterprise apps.

In the case scenarios above, you can save lots of time and money when you use a backend as a service.

What Can You Build with a BaaS?

Though a BaaS is primarily focused on mobile application development, the model has characteristics that can easily be used and implemented across multiple areas of development. The section below highlights a few areas that a BaaS can be used.

  1. Web Development : While a BaaS is often used for mobile application development, it provides a very flexible approach to development of web applications. It provides all the opportunity of a PaaS (Platform-as-a-Service), with less interface restrictions, and a large stack of resources to build a variety of web applications and appropriate widget integrations.
  2. Mobile Applications :  A BaaS is designed with mobile application development as a focus. Most BaaS providers focus on optimizing data for mobile, bringing together essential resources like geo-location, social platforms, and many other critical elements comprising of mobile apps.
  3. Electronic Readers : Publishing to platforms such as Kindle and other devices that are intended to support the world of e-books and e-magazines. In particular, devices such as Kindle, Nook, and numerous healthcare and education specific devices are quickly emerging and being driven by a BaaS.
  4. Launch APIs  : A BaaS platform provides easy to deploy API frameworks as part of their data and object stores. This means a BaaS provides a quick way to launch APIs and other infrastructure around data and resources, potentially making it readily and easily accessible to other mobile or web application developers.

The possibilities that come with a BaaS varies with the different platform providers, but many of them share the same common build blocks that have emerged from the numerous a BaaS providers on the current industry. A BaaS is a natural response to software development being moved into the cloud, and the decoupling of common resources into individual APIs. Present-day development trends require platforms to perform and scale in the cloud, while bringing the proper resources into meaningful sets that can efficiently build applications without having to source them separately around the web and other information repositories.

How MBaaS Can Power Enterprise

Digital Transformation at a Large Insurer One of our large U.S. insurance clients sought a digital strategy to deliver a more engaged customer experience via its Web and mobile channels. As a key partner in this carrier’s digital transformation initiative, we created a roadmap by assessing API services, responsive Web and mobile app adoption. We first showed this client that the company’s enterprise information services were designed to share large information chunks on customer policies and products and were not granular within a customer context. These large information chunks will throttle the mobile bandwidth and provide a suboptimal user experience.

In fact, we demonstrated that its enterprise service bus was primarily focused on an internal exchange of information between systems of record and Web portals, and hence was heavyweight in nature. Analytics was not baked into the service platform and thus did not track the nature of the service usage. There were no mechanisms to provide alerts to customers about upcoming due dates of policy expiry, even though the insurance company generated business events covering these developments. Addressing the above issues, a digital reference architecture based on an MBaaS solution was developed and contextualized for the enterprise. As part of our recommendation, an MBaaS platform was chosen by evaluating the leading vendors in the market. Key business use cases such as policy administration for customer selfservice were chosen as a pilot to prove the value proposition.

The MBaaS platform will be integrated as part of the company’s larger cloud-based ecosystem for consumer-facing solutions. MBaaS provided an obvious choice as the platform to provide service integration, security and analytics in a single solution. As part of its digital architecture roadmap, the insurer has begun to implement MBaaS for its consumer self-service app, a project that is planned to go live by summer 2015.

Features of a Mobile Backend as a Service

The features of backend as a service can be deployed across all kinds of applications. Here are a few of the highlights:

  • Database Graphical User Interface (GUI)
  • APIs (REST and GraphQL)
  • User authentication
  • Notifications
  • Storage
  • Logs
  • Social Integration (Facebook, LinkedIn, Twitter, etc.)
  • Infrastructure, Security settings, auto-scaling, data Email Verification
  • Push Notifications
  • CDN and Cache
  • User authentication
  • API Integration (Rest and GraphQL)
  • Cloud Code Functions
  • Geolocation
  • Backup, DB optimization

Key Benefits

There are many benefits to using an MBaaS platform for your backend development. Virtually all of the benefits boil down to this: saving you money and time. With MBaaS, your mobile development team spends less time developing APIs, managing databases, and (potentially) managing servers, and can therefore spend more time developing new functionality and focusing on the user experience.

  • It is Flexible: The platform allows for managing a unique version of your opensource code to adapt it for your individual requirements. 
  • Easy to Use:  The platform is user-friendly. You can code a simple app in just five minutes.
  • Provides Hosting:  This service provides options for reliable hosting. Developers have the option of selecting serverless and dedicated instances hosting options. 
  • CDN: Back4app automatically distributed its content globally through its Content Delivery Network. The CDN covers all locations apart from China.  CDN delivery to China would commence very soon.
  • GraphQL: This latest addition provides support for this powerful query language for your API. It allows developers to retrieve data predictably.
  • Technical Support:  Support is available for Back4App users around the clock.  The user can choose a support level that aligns with their needs and budget.

For lean teams with limited resources, MBaaS can drastically reduce the time spent on building the backend. For enterprises looking for rapid, agile mobile development, MBaaS provides benefits such as API sharing among teams and centralized database management. In either case, MBaaS frees up developers to focus on the user experience rather than the inner workings of the app.

MBaaS capabilities classified into four key areas as follows:

1.) Mobile security:

Since mobile devices are treated as an untrusted channel, it would be unsafe to store enterprise security tokens for session management. The best practice is for MBaaS to manage the enterprise security tokens for each user and have a separate token management mechanism, with tokens generated from MBaaS. This, in our experience, makes the enterprise security model more secure. MBaaS should have the ability to integrate with any enterprise identity management solution supporting various security protocols such as SAML, OpenID, oAuth, etc. The MBaaS should also be able to manage encryption with data at rest and transmit it to mobile devices.

2.) Mobile business logic:

In enterprise platforms, the best practice is to develop solutions by using a three-tier architecture that comprises engagement, business and services tiers. In mobile solutions, the business tier usually is stored in the device, which prevents the code from being managed in concert with changing business logic requirements. Since business logic is common across mobile devices, MBaaS provides the capability to house business logic in the MBaaS layer, limiting device code to user engagement.

3.)  Mobile analytics:

MBaaS provides the capability to obtain analytics in two channels. The first channel — client interaction — can help fine-tune the app to enhance user experience. Feedback about the number of page views, usual functions leveraged and abnormal user exits can provide the enterprise clues on where it should focus attention on increasing feature coverage. The second channel — service analysis — can provide insights about the user device and location from which the service is being called, as well as the performance of the service. This can help the organization proactively address its channel challenges and focus on certain regions based on location intelligence. Additionally, it provides plug-ins to connect with third-party analytic tools.

4.) Mobile support services:

Additional mobile user interactions can be supported by integrating enterprise communication channels with push notifications, triggers for action, cross-channel connects, etc. based on business events applicable to targeted consumers.

Advantages of a mBaaS

Web and mobile applications have similar features behind the screen, such as instant messaging, social media integration and cloud storage. Each of these services have a programming interface (API) that must be connected one by one in an application. The process can be extremely time-consuming and complicated for developers. A BaaS service provider provides a bridge between cloud front-end with the backend via API or SDK. Over the coming years, the API-based Baas approach will provide third-party services as a backend function, with users building platform-specific applications on top of a reusable base. This API base will house repeatable functions, such as push notifications, integration with social networks, file storage and sharing, location services, messaging and chat, user management, business logic, and usage analysis. These functions will be available to all applications built on top of the backend, regardless of what application platform the end-user will consume, such as iOS or Android. The reusable services provided by BaaS will contribute several advantages over traditional front-end development, which will not only provide an additional layer of security during information exchange, but allow quick application development without having to re-invent the wheel. 

1.)  Allowing for more accessibility

If each application being developed has the same underlying base, then a BaaS has the potential to easily link apps across platforms. This can contribute to many benefits, ranging from easier data sharing to better accessibility for cloud storage, a faster spin-up time, and an overall better user experience.

2.)  Provides diverse outcomes from one model

Thinking of a BaaS as a “starter home”, each user starts off with the same basic elements and continues to add to those elements to create their own customized “home”. However, because the base components of the house are all the same (foundation, wood, water pipes, etc) other users have the ability to more easily understand and even interact with or fix the “house”, creating a unified backend that has a better and stronger user base.

3.)  Stops unnecessary stack development

Instead of many developers being forced to recreate a stack for each mobile application they develop, a BaaS service can provide for much of their underlying processing requirements. The main issue would then be connecting to an API, instead of spending hours developing customized stacks that then have to be recreated, changed, and reassembled to fit the needs of each different application platform. Developer can focus on building what they need on top of existing structures, instead of starting from scratch each time.

Disadvantages of a mBaaS

BaaS Drawbacks and Developer Considerations Although the advantages of using a BaaS service can be incredibly helpful, particularly toward developers, there are a few key issues that need to be considered before implementing or using a BaaS system.

1.)  APIs and SDKs builds must be uniform

For developers helping to create a BaaS product, the primary focus should be continuity in the consumable APIs and SDKs. This means each one should be able to be utilized repeatedly in the same way, across the backend. This creates less confusion to consumers, as they can learn the patterns and code once for consumption of any API you provide, instead of having to learn different rules for each product.

2.) Front-end web applications should fit “the mold”

Unlike a mobile-first development (Platform-as-a-Service or PaaS), a BaaS is focused more toward the underlying systems of a backend. It requires that web applications be developed around the functionality of that system, rather than building a customized stack for each app. Mobile developers should take this into consideration in their design and use of the APIs and SDKs in a BaaS solution.

3.) Data is the most important thing

In a BaaS model, an API backend is data first, code later. The API that provides this data should be the center of the application development. Many decisions will need to be made around the data, such as who can access it and how the app will handle the data. This can put a strain on the security of an app, so precautions should be taken to make sure that the data is not only accessible, but properly encrypted and secure as well. Issue

4.) Logic and security is more client-focused

Following up to issue #3, using a BaaS service typically involves pushing a larger responsibility to the client. This is usually adapted by having a very thin server and delegating as much of the logic as possible to the clients. More so than with a regular API, users need to be hyper-vigilant about the fact that clients are sometimes operating in an untrusted environment, and that end-user credentials on top of the usual SSL and OAuth should be used.