In our series of reviews of MBaaS (mobile back end as a service) solutions we have examined Parse, Appcelerator, Kinvey, and FeedHenry. Given our classification of Parse as best for consumer-facing applications, it seems clear that AnyPresence, very definitely an enterprise-oriented MBaaS, competes with Appcelerator, Kinvey, and FeedHenry. However, in some ways AnyPresence stretches into a category of its own, as we’ll see.
AnyPresence is designed “to meet the evolving needs of mobile-enabling a developer ecosystem with fully portable run-time source code and zero platform lock-in.” OK, that’s a mouthful of marketing-speak. What it means, however, is that the goal of AnyPresence is not only to help enterprises build back ends for their mobile apps; AnyPresence combines app building, back-end services, and an API gateway.
AnyPresence has an online designer that not only generates back-end and mobile app code, but also customized mobile API code. All the generated code can be downloaded, edited, and run on compatible platforms. To go with one of AnyPresence’s favorite customer examples, MasterCard has used AnyPresence to enable partners to easily build mobile apps against MasterCard's Open API services.
Now, it isn’t necessary for you to have partners developing against your APIs for AnyPresence to make sense for your business. If you think about the generated app code as “app UI starter kits” (the term AnyPresence likes) or test apps for your back end, then the generated mobile API classes would be building blocks for your developers’ “real” apps.
_.extend @, Backbone.Events
# if server ever responds with 401, assume the session expired
complete: _.debounce ((xhr, result) => @destroySession() if xhr.status == 401 and result == 'error'), 150
AnyPresence generates back-end servers for Ruby on Rails, and in the future will also generate Node.js back ends, which will be a good development. If the developer folklore and publicly reported cases (such as LinkedIn) are to be believed, Node tends to scale better than Rails for many applications.
The AnyPresence environment can generate deployments to Heroku (usually for a Rails back end) to Amazon S3 (usually for HTML5 apps) to native iOS and Android apps with or without Apperian security. You aren’t limited by AnyPresence’s deployment choices, however. The generated code can always be downloaded and deployed elsewhere, assuming you have compatible deployment environments.
Deployment options in AnyPresence include Heroku (usually for Rails apps), Amazon S3 (usually for HTML5 apps), and native iOS and Android apps with or without Apperian security.
Design and deployment environment
The AnyPresence design environment exists online and runs in most browsers. According to the company, the environment supports older browsers that are still in use at enterprise customers, but I didn’t break out Windows XP to test IE6. I tested in the most current version of Chrome running on OS X. For the one day when Chrome “broke” the site (and many similar sites), I used Safari 7.1.
The design environment has a dashboard; a settings screen; screens to create and monitor environments, deployments, and builds; screens to generate and deploy apps, back ends, and SDKs; screens to add and manage data sources and data objects; screens for authorization, roles, and authentication strategy; screens for stock and custom extensions; the interface designer; and a customizable set of themes.
The data sources screen is where you add integrations with enterprise applications (such as Salesforce.com) and databases (such as Oracle). I found the selection of data sources to be good, and the implementation of the provided MongoDB data store to be on par with other MBaaS systems. What sets AnyPresence apart is the way the data model integrates throughout the design environment and into all the generated code.
The place you add most monitoring integrations, such as Airbrake and New Relic, is hidden deep in the Deployments/Addons tab, since it’s dependent on the runtime environment, and AnyPresence is designed to be environment-agnostic. For Splunk integration, you have to enable syslog output on the back end to push all the logs/events into Splunk systems for reporting and monitoring.