Mobile app developers no longer have to go it alone. Early mobile app developers had limited options for development...
tools and frameworks. Today, Backend as a Service (BaaS) platforms can streamline the development of common features such as user management, storage and security.
In many ways, BaaS is a specialized form of PaaS for mobile devices.
Do-it-yourself custom app development has its advantages, but the increasing functionality of BaaS offerings and expanding range of providers is making backend services an appealing alternative.
Developers can choose from a growing number of Backend as a Service specialists -- such as AnyPresence, Appcelerator, Appery, Parse, Kinvey and StackMob -- or established Infrastructure as a Service and Platform as a Service providers such as Google or Microsoft.
Backend as a Service providers differentiate themselves based on application types; some target enterprise app developers, and others consumer apps. Some BaaS providers only offer backend services, while others include interface tools. Even with these well-defined differences, BaaS providers share a common set of services.
Backend as a Service for enterprise developers
BaaS vendors that target enterprise developers have expanded the range of features and services included in mobile backend platforms. These include support for user interface testing, enterprise app store integration and custom server-side scripting. Appery's development tools include a visual drag-and-drop tool for building interfaces with jQuery Mobile and HTML5.
Application integration is particularly important for enterprise mobile apps. The Kinvey BaaS, for example, includes Data Links, a REST-based wrapper for database application programming interfaces that allows developers to query and update on-premises or cloud-based data stores.
Some providers are streamlining integration with PaaS services. AnyPresence, for example, lets developers select backend applications from the Heroku add-ons. StackMob offers fully dedicated clusters and support for public and private clouds in its enterprise-level service plan.
A PaaS for mobile devices?
In many ways, BaaS is a specialized form of PaaS for mobile devices. Some common concerns about PaaS apply to BaaS: For example, mobile developers may be justifiably concerned about vendor lock-in. Some BaaS vendors address this by generating code that developers can run either on the BaaS platform, in an IaaS cloud or on enterprise-managed infrastructure.
Running code generated by BaaS on your own servers can provide some mitigation if the vendor goes out of business, but it leaves the developer to deploy all the backend services the mobile app requires. It also requires developers to consider the architecture of backend services. Developers may have a good idea of the number of employees that deploy an enterprise app, but predicting server load for consumer apps is more difficult and likely to vary. If you are concerned about vendor lock-in and will deploy BaaS-generated code on your own servers, consider scalability issues.
A BaaS that supports only the two dominant platform, Apple's iOS and Google's Android, may be sufficient for app developers targeting consumers, but insufficient for enterprise app developers that need to support Windows or BlackBerry platforms as well.
Application integration remains crucial
Mobile apps are not islands unto themselves. They exist in an application ecosystem, created and maintained by developers and application administrators. Software developers already have tool sets that include integrated development environments and version controls systems. Integration with these and related tools can further help streamline mobile app development. Appcelerator leverages this principle with Titanium Studio, an Eclipse-based integrated drive electronoics (IDE).
Once an application is deployed, you must monitor and collect usage statistics. Analytics dashboards are common among BaaS providers. Parse's analytics component, for example, includes support for measuring app usage, analyzing push campaigns and measuring custom metrics.
Storage and management features in BaaS
Storage services are an essential part of BaaS because mobile devices depend on the ability to access data and documents in the cloud. Schema-less NoSQL data stores are common among BaaS providers, but many providers also support file storage services. If your applications support file management, look for a BaaS with text search services. Object storage services should provide search services for metadata about stored objects.
User management is another core service provided by BaaS vendors. Features generally include support for profiling, personalization and access controls. The latter is particularly important for enterprise apps that require fine-grained access controls, support for group privileges and advanced authentication features, such as Active Directory integration.
Other common features among BaaS providers include support for push notifications, geolocation, media streaming and integration with social media services.
About the author:
Dan Sullivan holds a master's of science degree and is an author, systems architect and consultant with more than 20 years of IT experience. He has had engagements in advanced analytics, systems architecture, database design, enterprise security and business intelligence, and worked in a broad range of industries, including financial services, manufacturing, pharmaceuticals, software development, government, retail and education. Dan has written extensively about topics that range from data warehousing, cloud computing and advanced analytics to security management, collaboration and text mining.