BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
A new development in the application programming interface (API) market, Backend as a Service (BaaS), offers developers...
a whole new dimension of opportunity: cloud services to build the mobile applications of the future.
Mobility, mobile broadband and mobile apps are transforming the Internet and the way people communicate and use information. For developers, the mobile app represents an enormous, lucrative new market. From a business perspective, each of the mobile platforms has its own benefits and limitations. Each also has its technical framework -- its own APIs. Mobile development platform APIs generally fall into two categories: platform APIs related to the mobile device's own operating system and middleware, and service APIs related to the access of Web-hosted material.
Technically, the key issue for BaaS is preserving the dominant RESTful Web service model of interface.
The new opportunity in APIs is Backend as a Service, an extension of the service API model. The goal of BaaS is to convert common and useful elements of mobile application logic -- storage, identity management, social network integration, photo enhancing -- into representational state transfer (REST) Web services that the application invokes as needed, making these services "back ends" to mobile apps.
As a concept, BaaS is similar to Software as a Service (SaaS) and Platform as a Service (PaaS): It offers functionality as a Web service. With SaaS, what's offered is an application or application component. Salesforce.com's CRM is a good example. PaaS offers a collection of services designed to present a complete virtual operating system; Microsoft's Windows Azure is the best-known PaaS example. BaaS is somewhere in between; it offers PaaS-like features, but not as a complete programming platform. Like SaaS, those features might perform business functions oriented to vertical markets or functionalities that can be used across industries. In all cases, though, BaaS aims to enhance mobile development.
Success with BaaS requires a targeted business case and careful implementation to support mobile development practices. Most BaaS deployments today are horizontal -- they cover a variety of markets -- and deal with well-known issues such as social network integration. The problem with these types of BaaS implementations is that they are so obvious that competition is inevitable, and so basic that differentiation is difficult. For example, it's likely that major cloud providers will move into BaaS services related to storage and identity, and social network companies will offer social network BaaS integration. Vertical markets, where a developer already has skills, contacts and software products, are useful places to look into for BaaS opportunity. In horizontal markets, data analysis and reduction tools, or forecasting and projection tools, are good candidates for BaaS.
Technically, the key issue for BaaS is preserving the dominant RESTful Web service model of interface. These interfaces appear as a simple PUT/GET transactional model that doesn't remain in a processing state between calls. Most of the major PUT/GET giants have exposed their own service APIs as RESTful interfaces that receive and respond using XML data structures. XML handling can be a chore, however, and it's helpful to either accept a simpler data structure or provide programming logic to use the interface as a reusable function in each of the target mobile devices.
Creating a BaaS service with the correct level of functional granularity is also important. Mobile users typically expect a quick response to a request, and there are interface timing issues that make it unadvisable to turn a complex function with a long execution time into a single service. Since RESTful interfaces are expected to be stateless, care is required in turning a complex function into a series of elements that can be used independently, but can function together when needed. Each request must stand on its own, and data from the response to a given request, if needed later, must be stored in the device and returned or maintained and updated by the service.
Passing as PaaS
Perhaps the most significant aspect of BaaS, from the developer's perspective, is the relationship with PaaS. Any developer who has reviewed the APIs for search or social network giants, or for cloud management, knows that multiple APIs typically form an ecosystem that, if it grows large enough, can approach the functionality of a platform, as in PaaS. A few disconnected BaaS APIs are less compelling than, for example, an entire BaaS ecosystem aimed at supporting mobile-social network collaboration for enterprises. Popular open source blogging or chat room tools, for instance, could be built on unified communications and collaboration, augmented with APIs to create voice and video calls.
BaaS will lead to a systematized view of background services for mobile development, which is for all practical purposes a mobile-driven PaaS platform. Developers, operators and enterprises need to think about this evolution -- because a cooperative and symbiotic collection of BaaS tools are more valuable to developers and consumers than individual APIs could ever be. The BaaS movement could be a catalyst for moving developer focus from devices to the cloud -- and that means faster service and increased competition among handset vendors. But BaaS, like any cloud trend, is in the early stages, and there's a whole mobile world out there.
About the author
Tom Nolle is president of CIMI Corp., a strategic consulting firm specializing in telecommunications and data communications since 1982.
Follow us on Twitter at @SearchSOA.