When we think of software or of Web and mobile app development, two things that come to mind are the server side and the client side. To put it in simple terms, the client side is the front end or interface screen(s) that the end user or client will see and interact with, whereas the server side is broadly a combination of application business logic and data management. With the availability of cloud computing, many of the server side complexities are handled by cloud service providers, as shown in Figure 1.
Software development is now moving towards app development, where the client side development requires more focus due to the variety of devices and platforms in use. This has led to reducing the interaction with servers and a whole new cloud service model has come into being, i.e., the Backend as a Service (BaaS) or Mobile Backend as a Service (MBaaS). This is a unique model, which enables mobile and Web developers to use cloud infrastructure as the back-end, hence freeing them from the headache of back-end designing and integration. It is like infrastructure that can be turned on just for mobile app development. As shown in Figure 2, mobile app development primarily comprises four activities. The major challenges for developers are with back-end integration and most of the effort is focused on this aspect, due to which application design and development suffer. The same applies for Web development also.
Creating a mobile application that works well is a complex and time-consuming task and needs a lot of planning to ensure proper execution. Some studies show that up to 80 per cent of the implementation effort is dedicated to back-end development.
MBaaS comes to the rescue as a server side technology for mobile apps, as it provides custom SDKs and APIs, as shown in Figure 3.
MBaaS is gaining popularity not only in the developer community but also in enterprises. According to Gartner, by 2016, 40 per cent of the mobile app development projects will leverage mobile back-end services. TechNavios analysts also forecast that the global BaaS market, which was valued at US$ 0.87 million in 2014 is expected to reach US$ 29.16 billion by 2019, growing at a CAGR of 101.88 per cent.
Why use it?
Mobile Backend as a Service (MBaaS) reduces the time and complexity involved in building mobile applications by providing pre-built, efficient, cloud-hosted components for mobile back-ends. It allows developers to focus on core features.
MBaaS can be grouped in different ways according to business requirements or based on licensing and support models.
Some major MBaaS players are shown in Figure 6.
Apart from the few companies shown in Figure 6, there are many other MBaaS or BaaS providers in the market and their numbers are growing. It should be understood that no single service provider fits all sizes. An MBaaS provider is selected as per the specific and unique needs of individual organisations.
Some common features that are desirable in MBaaS are:
- User management APIs, which save time when developing sign-ups, logins, email verification, etc
- Support for different authentication mechanisms, which provides the social sites login using OAuth, etc
- Mobile app performance data, which provide analytics and the dashboard for performance tuning
- Data storage considerations, which refers to NoSQL or Relational or any kind of data storage
- Data analysis capabilities for evaluating user activity to check push campaigns, user responses by different categories, etc
The major factors for MBaaS pricing are:
- The number of API calls
- The type and size of storage
- Active user pricing
- The number of application builds
- Premium fees for analytics
- Feature based pricing for push mail, chat, sync, email, etc
- Support and maintenance costs
Case study: Parse.com
Parse is a start-up company that was acquired by Facebook and provides MBaaS. According to a case study by Amazon, Parse provides server management for over 180,000 Android, iOS and Windows mobile applications, which run on more than 200 million mobile devices. One can see the hundreds of Parse customers at https://parse.com/customers.
Using Parse is relatively easy. Open parse.com and click on Sign up for free, which is shown in Figure 7. Fill in the necessary details and create an application name of your choice. This demo will show a very simple and primitive application to demonstrate how easily data can be stored on the cloud using Parse.
Fill in the necessary details and click on Signup. Once registered, log in to parse.com, which will show what Parse is capable of in terms of a BaaS (Figure 8).
Select the data icon so that we can store some data. Parse will ask for environments (Figure 9).
Parse supports a variety of environments for which it can provide back-end as a service. Select Mobile as an environment, which will display the available platforms in the mobile environment as shown in Figure 10.
Select Android as the platform. It will display language options as shown in Figure 11.
Select Native (Java), and you will be asked whether to start with a new or existing project as shown in Figure 12.
Select New Project which will show some options for the SDK as shown in Figure 13.
Download the blank project, and import the same in Android Studio.
At the bottom of the page, there is dummy code to store the data as shown in Figure 14.
Open Android Studio, find the StarterApplication.java file and paste the highlighted code of the onCreate method (Figure 15).
Run the application in the emulator which will store the code in the parse.com site. On the same page of parse.com there is a Test button and clicking on it will show the data creation (Figure 16).
To view the data later, click on the dashboard option as shown in Figure 17.
The dashboard will open in Analytics view. Click on Core as shown in Figure 18.
Core click on TestObject and the data that is saved from the Android app is visible (Figure 19).
Ashish loves Open Source and enjoys programming — especially object-oriented languages like Java and MVC Patterns. He works as lecturer in Chaudhari Technical Institute [MCA Department] Gandhinagar, Gujarat.