MBaaS in-depth review: Five clouds for building mobile apps

MBaaS in-depth review: Five clouds for building mobile apps

【51CTO translation】 MBaaS (Mobile Backend as a Service) is a very new product category that has largely replaced MEAP (Mobile Enterprise Application Platform). In the past few months, I have carefully analyzed five MBaaS systems: AnyPresence, Appcelerator, FeedHenry, Kinvey, and Parse. In this article, I will summarize these five systems, introduce their commonalities and main differences, and give the corresponding conclusions.

The basic idea of ​​MBaaS is that mobile applications require common services that can be shared among applications, rather than developing services specifically for each application. Mobile applications using MBaaS follow a loosely coupled distributed architecture, and the MBaaS system itself usually has a more distributed architecture than the MEAP system, which often uses a unified middleware server.

MBaaS systems typically offer features such as push notifications, file storage and sharing, integration with social networks such as Facebook and Twitter, location services, messaging and chat capabilities, user management, the ability to run business logic, and usage analytics tools. MBaaS systems for enterprises also offer the ability to integrate with existing applications and databases.

The backend doesn't exist in isolation, so MBaaS systems offer some level of mobile client support, ranging from exposing a REST API (application programming interface) to all comers to providing app generation capabilities for iOS, Android, some version of JavaScript, and possibly other mobile platforms.

In addition, the backend needs to be customized and programmed, so MBaaS systems provide mechanisms to combine online and desktop development environments. Finally, the purpose of backend services is to ensure continuous operation, so they require a certain degree of application monitoring and error logging mechanisms, as well as usage analysis mechanisms. Monitoring and analysis may be provided directly by the MBaaS vendor or through integration with third-party services.

Another advantage is that MBaaS systems can generate mobile SDKs (software development kits). This is extremely useful when vendors expose their services to partners engaged in mobile application development. In addition, MBaaS systems can support offline operation of mobile applications and offline/online database synchronization. MBaaS systems may provide their own mobile device management or integrate with mobile device management (MDM) vendors. MBaaS systems may also support device-specific services where appropriate, such as iBeacon on iOS devices.

Commonalities and Differences

In reviewing FeedHenry, Kinvey, Appcelerator, Parse, and AnyPresence, some features and implementations seemed very familiar. For example, all five MBaaS products provide a mechanism for storing data using MongoDB, an open source NoSQL document database that stores JSON objects. All of these products provide data design user interfaces (UIs) for their respective MongoDB data stores, and these UIs look and feel similar. I wouldn't be surprised if these UIs are based on the same MongoDB sample code.

All five MBaaS systems are available in a multi-tenant cloud environment. All have online documentation, all offer push notification and user authentication APIs, all support native iOS and Android apps to some degree, and all offer some way for developers to implement custom server logic.

These products vary significantly from one another. For example, they range in the degree to which they support integration with enterprise applications and databases, from basic functionality like calling an external REST interface that returns JSON to deep integration with common applications and databases. The time it takes a developer to implement a particular enterprise mechanism for integrating with MBaaS can range from days to minutes, depending on how much work a particular MBaaS vendor has done for a particular integration.

Some MBaaS systems are available on-premises, others in private clouds. Still others are hosted and compliant with standards such as HIPAA, PCI, FIPS, and EU data security. Some have their own testing capabilities, and some offer cloud-based building capabilities for mobile apps.

Some support HTML5 and hybrid apps. Some compile JavaScript into native device code. Some support PhoneGap, some support Apache Cordova, and some avoid both of these wrappers to write hybrid apps in favor of other solutions, such as generating native apps.

Some run their backend on Node.js, some on Rails, and some on unspecified platforms. Some support clients like Blackberry, Windows Phone 8, Windows 8, or Unity.

Some host applications and backend integrated development environments (IDEs) in the cloud, some offer desktop IDEs that support multiple platforms, and some have desktop command-line interfaces for cloud control. Some support a variety of popular JavaScript frameworks, such as Backbone and Angular; some use their own JavaScript frameworks, which may be modified from specific open source frameworks.

MBaaS Five

As we can see, different MBaaS vendors target slightly different markets and make slightly different technology choices, but there is a lot of overlap and commonality.

AnyPresence

AnyPresence aims to do more than just help enterprises build backends for mobile apps. AnyPresence combines app building capabilities, backend services, and an API gateway.

AnyPresence has an online designer that can generate backend code, mobile application code, and even customized mobile API code. All generated code can be downloaded to a compatible platform and edited and run on it. Taking an example of a customer that AnyPresence often mentions, MasterCard uses AnyPresence to enable partners to easily build mobile applications in accordance with MasterCard's Open API service.

AnyPresence can generate app UIs (or starter kits, if you wish) for jQuery, Android (XML layouts), and iOS (storyboards), and it can also generate app SDKs for Java, Android, HTML5, Windows Phone, Xamarin, and iOS. The design environment refers to the generated JavaScript/HTML5 SDK as "jQuery." In fact, AnyPresence actually generates CoffeeScript that uses the Underscore, Backbone, and jQuery libraries.

AnyPresence can generate backend server software for Ruby on Rails. In the future, it is expected to generate Node.js backends, which will be a good thing. Programs generated by the AnyPresence environment can be deployed to Heroku (usually for Rails backends), Amazon S3 (usually for HTML5 applications), and native iOS and Android applications, which are not as secure as Apperian. However, you are not limited to AnyPresence's deployment choices. The generated code can always be downloaded and deployed elsewhere, assuming you have a compatible deployment environment.

AnyPresence's app building selection screen. Note: It is possible to generate a broad range of SDKs and a smaller range of prototype app UIs.

The AnyPresence design environment is online and runs in most browsers. The design environment has a dashboard, settings screens, screens for creating and monitoring environments, deployment and code builds, screens for generating and deploying applications, backends and SDKs, screens for adding and managing data sources and data objects, screens for authorization, roles and authentication policies, screens for built-in and custom plugins, an interface designer, and a set of customizable themes.

I feel like the variety of data sources is quite broad, and the implementation of the provided MongoDB data store is pretty much the same as other MBaaS systems. What makes AnyPresence stand out is how the data model is integrated into the entire design environment and into all the generated code.

The place where you can add most monitoring integrations (such as Airbrake and New Relic) is hidden deep in the Deployments/Add-ons tab. Naturally, monitoring relies on the runtime environment, and AnyPresence is designed to be environment agnostic. To integrate with Splunk, you have to enable syslog output on the backend so that all logs/events are pushed to the Splunk system for reporting and monitoring.

Appcelerator

Appcelerator Titanium has been in the mobile development space for several years now, with a native development environment that compiles JavaScript into native code for iOS, Android, and other target platforms. The company released Appcelerator Studio 3.3 and Appcelerator Platform 2.0 in July 2014, and later added an MBaaS with about 25 APIs, Node.js support, and online analytics. In addition, Appcelerator released MBaaS interfaces that developers can add to applications built with native SDKs, although it has not yet supported native SDKs in its own Appcelerator Studio IDE.

Developers can get a quick overview of app installations, sessions, API calls, and crashes on the online Appcelerator dashboard's overview page. Other sections of the dashboard facilitate cloud management, testing, performance metrics, and analytics.

The Cloud panel displays usage, exposes data management, displays API request and push notification logs, lists custom services, and allows cloud configuration. The Test panel uses SOASTA's TouchTest as an integrated mobile testing solution. The Performance panel allows you to monitor your app and troubleshoot performance, crashes, and anomalies. It also allows you to view crash trends, integrate with error tracking systems, and configure your monitoring mechanisms.

The Appcelerator platform dashboard shows an overview of the demo Field Service app. The crash was intentionally coded into the app.

Developers can define and view Appcelerator analytics online and, if desired, publish selected analytics to the Appcelerator Insights app for iPad, typically used by managers.

The Appcelerator platform lets you build custom backend services using Studio and Appcelerator's Node.ACS MVC (Model/View/Controller) framework. Node.ACS combines Node.js, Express, and the Appcelerator cloud service interface. Appcelerator also lets you run regular Node.js applications on its cloud platform.

Appcelerator has multiple frameworks on the client side and multiple API types for the cloud. At a basic level on the client side, Appcelerator provides the Titanium SDK, which provides an interface between JavaScript and native services. At a higher level, Appcelerator provides the Alloy framework, which is based on the model/view/controller architecture and includes built-in support for Backbone and Underscore. When you build a new client application through Studio, you usually generate an application that uses Ally.

The Alloy framework can handle some of your offline/online data synchronization needs, but it can't meet all of them. In addition to data connectors for SAP and Salesforce.com, Appcelerator lacks pre-configured, vetted enterprise data connectors. However, since it can run Node modules on its Node.ACS service, developers can take advantage of modules from the Node.js community. Appcelerator's only commercial sync server is currently limited to Microsoft Dynamics connectors.

FeedHenry

FeedHenry is dedicated to supporting enterprise business applications. It is a Node.js-based, enterprise-oriented MBaaS and mobile application platform. It provides a wide range of integrations, with both online and offline development options, collaborative application building, and drag-and-drop form builders. FeedHenry was spun off from the Irish Research Institute in 2010 and acquired by Red Hat in September 2014.

FeedHenry claims to have global infrastructure on all major clouds and supports internal backend deployment. The FeedHenry online environment is directly integrated with GitHub to achieve collaboration and version control functions.

FeedHenry 3 supports native SDKs for iOS, Android, and Windows Phone 8, plus support for hybrid apps using Apache Cordova, HTML5 mobile web apps, Sencha, Xamarin, and Appcelerator Titanium. Given the way the FeedHenry cloud JavaScript interface works, it's hard to find an incompatible JavaScript framework.

When writing an application for FeedHenry in JavaScript, you can add the feedhenry.js script to your HTML, initialize it with $fh.init, and then call cloud functions from the $fh namespace. FeedHenry can import existing applications from a Zip file or a Git repository.

FeedHenry includes an online editor, supports offline tools, and a command line interface. We are looking at the mobile app here, with the code editor in the middle of the screen and a preview on the right. You can configure the backend service in another panel in the online interface.

FeedHenry build service functions in the same way as Adobe PhoneGap Build, turning HTML5 apps into binary code programs for Android, Blackberry, iPhone, iPad, iOS (universal) and Windows Phone. Each binary program can be connected to one of your MBaaS instances, and it can be built for development, distribution or publishing, depending on the platform.

FeedHenry has a drag-and-drop form builder and a wide variety of templates that you can use as a starting point, but there weren’t many fully functional app templates when I reviewed FeedHenry.

FeedHenry lists over 50 Node.js plugins in its curated modules list. The list includes interfaces to most major relational and NoSQL databases. If the curated list doesn't have what you're looking for, the much more comprehensive Node community modules list may have a matching module.

FeedHenry runs on all major public and private clouds, and on a wide range of IaaS and PaaS infrastructures. FeedHenry operates a HIPAA-compliant cloud environment and multiple active clusters in both Europe and North America.

Kinvey

Kinvey describes itself as a complete mobile and web application platform. It offers broad client support, integration with major enterprise databases, backend data storage, file storage, push notifications, mobile analytics, iBeacon support, and the ability to run custom code on the backend.

Kinvey markets itself as IT departments as its primary customer base because it offers an enterprise platform that targets not one or two applications but thousands of applications across the enterprise, but it also actively supports developer communities for many applications.

Kinvey supports native, hybrid, and HTML5 apps. It provides native toolkit support for iOS and Android. In addition, it supports Angular, Backbone, Node.js, Apache Cordova/PhoneGap, and Appcelerator Titanium, and it also provides a set of REST APIs. Kinvey integrates with the application through code libraries and API calls, expecting you to edit the application locally.

Kinvey Cloud Code is written in JavaScript, but not Node.js, and enables online editing. In addition to using standard JavaScript and external services, it can also use the Kinvey API to implement numerous functions, such as logging, accessing combinations, sending push notifications, sending emails, verifying requests, logging and time functions, asynchronous processing, displaying Mustache templates, and obtaining backend context. Cloud code can be in functions and custom endpoints that reside in processing hooks. Cloud code implements internal version control in Kinvey.

Kinvey composites use MongoDB, which provides a schema-less, no-SQL database for applications to use. This screen lets you create and design composites (only the creation step is required), and choose whether to enable or bypass your database business logic.

Kinvey supports deployment on almost any cloud, including private clouds. This includes deployment to HIPAA-compliant facilities and facilities located entirely in the EU. Even Kinvey's multi-tenant cloud is considered secure enough for most applications because the company implements end-to-end encryption, and customers using data links can keep the data in the database behind the company's firewall. If you have a Google App Engine server, you can connect it to your Kinvey backend.

Authentication can be done internally by Kinvey or through LDAP or Active Directory in the Business and Enterprise editions. Kinvey also supports Facebook, Twitter, Google+, and LinkedIn identities through OAuth.

Kinvey Data Link connects to Kinvey's MongoDB data store. In most cases, customers forward CRUD (Create, Read, Update, and Delete) requests directly to the actual backend, but some customers cache data in MongoDB. Kinvey currently provides data links for Microsoft Dynamics CRM, Salesforce CRM, Oracle Database, and Microsoft SQL Server.

Kinvey provides an automated control mechanism to achieve offline data synchronization: if the application is offline, it automatically obtains data from the cache. If the application is online, it obtains data from the network and stores it in the cache. With automated control, as soon as the device is online again, your Kinvey application will try to synchronize any locally stored data, but if the server data has also changed, conflicts will occur. You can set the conflict resolution strategy to clientAlwaysWins, serverAlwaysWins, or a custom conflict resolution function.

Parse

Parse was once the poster child for MBaaS, and despite being acquired by Facebook, it remains a viable, easy-to-use mobile backend for limited-volume consumer applications. On the plus side, it's well documented, with good native client support and a Backbone-based JavaScript client SDK. Parse can also run JavaScript code on the backend, which gives developers the option of an all-JavaScript application stack. On the downside, Parse leaves out important features that are essential for enterprise applications, such as data integration, offline operations, and online/offline sync. At the same time, its pricing seems to be targeted at smaller applications.

Parse supports native mobile applications, JavaScript applications, and desktop applications. On the mobile side, it provides native support for iOS, Android, and Windows Phone 8. On the desktop side, it supports OS X and Windows 8 (.Net), and also supports Unity games.

Parse lets you run JavaScript code in the cloud, using the same Parse JavaScript SDK as on the client. Parse provides a command-line tool for managing code in the Parse cloud, and lets you use the JavaScript editor you usually use on your computer, rather than editing cloud code in a browser like FeedHenry and Kinvey often do. However, you can view your code and logs in the dashboard. The command-line tool combines multiple roles in one: application skeleton generator, application deployment tool, log printer, application rollback tool, and automatic updater.

Parse Cloud Data Explorer lets you import bulk quantities, add classes, columns, and fields, and view filtered data.

Parse can send push notifications to iOS, Android, Windows 8, and Windows Phone 8. In either case, you configure a push server and then provide one or more certificates to your application.

Parse has a fairly comprehensive predefined user system, including the usual registration mechanism for anonymous users, with email verification and terms. An access control list (ACL) system controls what data each user can read and write. For more complex use cases, Parse supports a role hierarchy system, providing a separate ACL for each role.

Parse has nine integrations with other services. Three of them: Mailgun, Mandrill, and SendGrid for sending emails. Stripe for credit card charges. Twilio for sending SMS and voice messages. Third-party modules are also available to integrate Parse with Cloudinary, Instagram, and Paymill.

As far as I know, integrating enterprise data with Parse requires writing REST web service wrappers for the data source and JavaScript modules for Parse. I haven't seen any way to host Parse other than using Parse's own multi-tenant cloud.

A much-improved MBaaS

As you can see from the review scores listed at the end of this article, AnyPresence scored the highest: 9.1 points overall and received the "Editor's Choice" award. I feel that AnyPresence provides more value than other products for businesses that need to integrate existing systems with mobile applications because in addition to the application and backend, it can also generate a customized SDK from your model and design. However, with a "high six-figure" annual fee, it is not suitable for every business's budget.

FeedHenry, with an overall score of 8.6, is also an enterprise-oriented MBaaS. FeedHenry has great integration with Git for collaboration and version control, and I like its hosted app building service, Node.js backend and curated list of Node modules, as well as its drag-and-drop form builder. Like AnyPresence, FeedHenry may not fit every company's budget.

With an overall product score of 8.3, Kinvey appeals to both the developer community and enterprise IT departments. I like the way Kinvey provides enterprise data links through its internal NoSQL database API, and the way it has designed hooks for backend business logic.

My criticism of Appcelerator is that it clearly didn't make an effort to curate its data integration modules, and I think its higher price relative to FeedHenry and Kinvey may have reduced its overall value, resulting in an overall score of 7.8. However, Appcelerator is a company that has only recently entered the MBaaS space. It may need to fill in the missing features of its product and adjust its pricing to be more competitive.

Finally, I think Parse is well suited for building and running backends for consumer-facing mobile apps, rather than enterprise apps, since it lacks any data connectors and only has a basic REST client. My other big reservation about Parse is the pay-per-use pricing, which, while easy for developers to get started with, could be a pain for a cash-strapped startup: especially if the startup suddenly has a hit app but no serious business model. With a score of just 7.6, it ranks last in this group.

This isn’t to say you shouldn’t use Parse. It’s a viable, easy way to get started, with a backend provided as a service. However, if you choose to use it, keep your eyes open and pay close attention to the costs.

As far as enterprise apps go, AnyPresence and FeedHenry lead the way in terms of ease of use and functionality. Kinvey isn't far behind, and its pricing is more affordable for smaller companies.

Scorecard

Backend Services

(20%)

Client Support

(20%)

Ease of use

(20%)

Integration

(20%)

monitor

(10%)

value

(10%)

Total score

Parse

8

8

8

6

8

8

7.6

★★★

Kinvey

9

9

8

7

8

9

8.3

★★★★

FeedHenry 3

9

9

8

9

8

8

8.6

★★★★

Appcelerator Platform

2.0.0

8

8

8

7

9

7

7.8

★★★

AnyPresence

9

9

9

10

8

9

9.1

★★★★★

Original English link: http://www.infoworld.com/article/2842791/application-development/mbaas-shoot-out-5-cloud-platforms-for-building-mobile-apps.html

Bugatti Compilation

<<:  Break the 24-hour unspoken rule and create truly innovative apps

>>:  The Quotes of Steve Jobs You Haven't Heard of - Another Steve Jobs

Recommend

Why is ripping off tape so noisy? Because it's about the same as a rocket launch

When we think of supersonic shock waves, we may s...

2019 Social Media Content Trends Report

Recently, GlobalWebIndex (GWI) released the GWI S...

Why did Apple launch the gold version of the Apple Watch at a sky-high price?

Benedict Evans, an analyst at venture capital fir...

3,000-word guide to Tik Tok operations!

With 400 million daily active users, Douyin has a...

25 Subtle Flat 2.0 Designs

Today, flat design is not as "flat" as ...

Contact list of iOS online mainstream channels for mobile game applications

Table of contents: 1. Contact information of iOS ...

The world's most expensive VR! HTC Vive unboxing

Earlier this month, HTC's virtual reality devi...

Common sense mistakes: the six most failed smartphones

Recently, a media listed and summarized the six m...

In the future, can electric cars replace gasoline cars?

With the development of society and the advanceme...

How to teach your girlfriend programming?

[[146883]] Ever since I started as a software dev...

Event planning process and innovative gameplay

For operations, event planning and operation are ...