Not that long ago, an application designed for mobile devices -- smartphone, tablet or wearable -- was considered an autonomous experience, an adjunct distinct from the web or desktop application onto which it was often loosely bolted. That philosophy of isolation was driven in part by the technical limitations of the day, and gave rise to the practice of developing stand-alone mobile applications in a vacuum, using tools -- and developers -- that focused solely on the mobile experience.
Times have changed. Mobile apps no longer exist in a vacuum. Today, in something of paradox, while the mobile experience has soared in prominence, it has simultaneously condensed into one facet of an overall cloud-based system. Though this mobile aspect now stands at center stage as the pre-eminent channel for user interaction, developing for it is no longer the discrete endeavor it once was.
As a consequence of this blending of mobile development into the overall application creation experience, the long-held term MBaaS (mobile backend as a service) is falling out of favor, superseded by the BaaS platform, which is the more broadly encompassing backend as a service. Whatever you call it, choosing a suitable development platform for mobile applications is more crucial than ever. Providers are increasingly portraying their products using the BaaS moniker, de-emphasizing the term MBaaS, but keeping it alive in their marketing materials. We'll focus on BaaS.
To better match technical capability with business need, it's essential to understand the technology, gain insight into how it works, survey key features and put it all together in making an informed choice.
MBaaS technology explained
A BaaS platform is a cloud computing development architecture with two components. The first might be thought of as a front end for developing digital mobile experiences. It provides developers with the tools and architecture they need for creating applications designed for the myriad screen sizes, form factors and operating systems of devices. The second component is a back end for management and operations services. It provides mobile computing and communications devices with a centralized means -- usually through an API -- to access the servers, storage, databases, processing logic and other resources that applications need to interoperate in a secure manner and integrate with other aspects of a larger cloud-based computing environment.
"BaaS is essentially middleware that developers use to connect an assortment of mobile device types with services and storage that run on back-end servers in a cloud infrastructure or on premises," said Judith Hurwitz, president and CEO of cloud consultancy Hurwitz & Associates LLC. "Today, you want to build these connections with the power of APIs."
An obvious challenge in mobile app development is in dealing with a seemingly endless assortment of target devices and operating systems. A BaaS platform development environment needs to support multiple operating systems -- Android, iOS and Windows 10 Mobile -- and that's just the start. In the fragmented Android world, where device manufacturers release operating system updates on their own schedule, the single most widely installed version remains KitKat (v 4.4, released in October 2013), even though Lollipop (v 5.x; November 2014), Marshmallow (v 6.x; October 2015) and Nougat (v 7.x; August 2016) are newer. That's not so in the tightly controlled iOS world where 79% of devices are running iOS 10.x, the current generation, according to Apple's own data. Apple also adds WatchOS to the mix as do devices from BlackBerry running the BlackBerry 10 operating system.
Beyond the hodgepodge of operating systems, a BaaS platform needs to empower developers with the ability to build user experiences for a veritable cornucopia of screen pixel resolutions and physical dimensions. In the Apple world, iPhone screen pixel resolutions encompass a wide range, including 640 x 960 (iPhone 4), 640 x 1136 (iPhone 5), 750 x 1334 (iPhone 6 and 7) and 1080 x 1920 (iPhone 6 Plus and 7 Plus). The different iPad resolutions also require support: 760 x 1024, 1536 x 2048 and 2048 x 2732. Android phones and tablets offer a similarly bewildering array of resolutions.
How BaaS technology works
BaaS is implemented as a set of tools that connects mobile apps with databases, servers and other applications and services through the combined use of software development kits (SDKs), APIs and libraries of reusable code. By sitting between mobile devices and these other applications and services, BaaS acts as an intermediary capable of managing all back-end connections of mobiles so developers can deliver the best user experience. Integrations are likely to be achieved through the use of REST APIs and interfaces in conjunction with JSON for data interchange and application integration.
Features to look for
Architectural options are not features, but looking at the design of the BaaS platform itself, two very different methods of implementation exist.
In the first, the BaaS platform and all of its constituent features are integrated into the larger universe of cloud services offered by the major cloud platform providers. The comprehensive BaaS environments offered by Amazon Web Services, Google Cloud Platform, IBM Bluemix and Microsoft Azure aim to incorporate mobile application development tools into their cloud operating platforms. The idea is that development and testing easily leads to automated continuous deployment and ongoing operations.
Alternatively, a number of BaaS platform providers offer their tools as a self-contained entity, separate from the cloud platform or on-premises data center on which it runs. The argument is that the independence of these development suites makes them highly configurable and better suited for the unique needs of individual businesses. A self-contained BaaS platform is the only option for enterprises that choose not to embrace the public cloud, instead installing on their own internal infrastructure. Michael Facemire, a principal analyst serving application development and delivery professionals at Forrester, stressed that the all-in-one and do-it-yourself approaches are equally valid. It's a matter of which is a better fit for the business's IT philosophy.
Here are some features to consider when choosing a BaaS platform:
- Security and compliance are king when it comes to mobile computing. With the rise in use of mobile technology for financial services and healthcare applications, it's essential that encryption is built into the mobile device and throughout the networks over which transactions travel. The healthcare industry's compliance with the Health Insurance Portability and Accountability Act (HIPAA) requires that data always be encrypted.
- Authentication, along with user registration, is closely allied with security. A comprehensive BaaS platform should include services for new user registration, along with OAuth-compliant secured access to server resources. It must also support alternative authentication methods, including fingerprint two-factor identification -- in which a token code is sent via text to the mobile device and typed into a laptop or desktop computer -- as well as the coming wave of biometrics such as facial and retinal scanning.
- Push notifications are the ability for a back-end service to notify the mobile device owner about an important event. Examples include an airline sending an alert about a change to an upcoming flight, a bank notifying a customer that an account balance has dipped below a predetermined amount or a factory floor that alerts a group of users to an assembly-line anomaly.
- Data management is the broad ability to read, write, search and query server-based data of any type, including formatted, unformatted and binary objects like videos.
- Data streaming, a key aspect of social networking, is the ability to handle live streams of comments and activities. One example is a sports-related application where many users simultaneously post new comments and replies to comments already posted.
- Geolocation, which makes mobile apps location-aware, is routinely used to tag photos but can also be used to personalize user experiences. Uses include a retailer displaying push messages about items on sale when a user nears one of its own -- or even a competitor's -- locations, displaying weather data for the current location or proximity-based search results.
- Analytics captures performance metrics and provides insight about device and application performance, API efficiency and policy compliance.
- API management provides developers with a consistent and secured means for creating and deploying APIs and controlling access.
The bottom line
In the cloud age, with few exceptions, every application is a mobile application. For a mobile experience to satisfy its users, the app must be attractive in appearance, be engaging in use, be easy to navigate, and perform without lag time. Transactions and interactions with databases that are resident on cloud-based or on-premises servers must be secure and synchronize with desktop and web-app nonmobile experiences.
Achieving these necessities requires building a mobile app and interface that provides native support for different device types, multiple operating systems and a wide variety of screen resolutions. Another requirement is building integrations with private and third-party data as well as with applications and workloads developed by IT or accessed via a software-as-a-service subscription. Finally, tools to manage these processes, assist with deployment and provide performance monitoring are needed.
An MBaaS or BaaS platform is the umbrella technology providing the wide range of tools that empowers developers to create mobile experiences.
Multiple screen sizes create challenges in mobile app development
Are APIs a better choice than middleware?
You need to know this about back-end app development