Mobile app adoption is accelerating at a dizzying pace. The demand is certainly there - how will we supply it?
This is a brief survey of the current state of affairs - and a big opportunity.
MBaaS). Beyond the mobile interface, more is expected from a mobile app than a web app, including:
The recent acquisition of Parse by Facebook is a clear indication of the strategic value of a mobile backend.
REST is a language-independent approach for data access, designed to operate in the context of web by using HTTP as the transport layer. REST can thus be used by any language, since it basically HTTP with some additional conventions. If your language can access the Web, it can access REST.
A common approach is for Mobile Back Ends to provide a REST/JSON interface to a NoSql server such as Mongo.
ACID support for concurrency and transactions. While there are many situations where NoSql is sufficient, many applications rely heavily on SQL databases. Richardson argues that Polyglot DB (using both) is a very reasonable approach.
Building a REST/JSON server to front-end SQL data is not a trivial task. You may need to address Enterprise concerns for accessing multiple servers. In addition to defining an API, you have to address scalability (caching for multiple Backend Servers, pagination for large result sets), and Data Integrity.
Server-enforced has always been an Enterprise requirement. Not that it’s been well-followed. In days gone by, the complexity of logic partitioning has lead to failures (“fat client”) that are most certainly being repeated today.
For a large class of SQL-dependent apps, this can represent as much as half the effort. This has a strategic impact on the business, reducing agility, raising costs, and lack of transparency to Business Users. And that’s a problem - a big one.
Automation technology begins by leveraging the concept of Convention over Configuration. Here, it means that if you specify the location (url) of your database, by convention the system will create default REST resources for each table. Such resources can be used to build Admin applications with simple 1-table displays.
You can also create Custom Multi-Table Resources that combine data from multiple tables and servers. This enables you to begin mobile client application development, literally within minutes.
So, a server without code. And, these are Enterprise-class resources, with support for pagination, optimistic locking, discovery, single-trip refresh, etc.
And, they automatically enforce the Logic and Security provisions described below.
Instead of writing code, you define your Business Logic as a set of unordered spreadsheet like expressions for computations and validations. The example shown at left is executable logic.
These are very powerful, providing support for multi-table transactions. As in a relational database, optimizations to eliminate / minimize SQLs are the systems' responsibility. As in a spreadsheet, dependency management is automated, so you maintenance simply entails adding new logic. The system automatically recomputes a valid order of operations based on the new dependencies.
This logic is encapsulated into the Resources, and automatically re-used over all access. So the logic shown here, perhaps conceived for Place Order, is automatically applied to all related transactions, such as delete order, pay order, move order to different customer, change line item products or quantities, and so forth.
This declarative automation of re-use and dependency management eliminates pages and pages of conventional code. These 7 rules replace 500 lines of code. Beyond simple examples shown here, this logic can automate complex business logic like a budget rollup, a bill of materials explosion, a order cloning / auditing, or the application of a payment to outstanding orders.
The system automatically injects these filters into every request, whether from default or Custom Resources. Update privileges (e.g., what columns can be changed) are similarly enforced.
Here, we ensure a SalesRep can read only their own orders. We also ensure that only the paid column can be read.
This article has illustrated a new technology now being brought to market. If you'd like to give it a try, join our Beta at espressologic.com.
Title? Making Mobile Fast
MicroZones: Cloud, Agile, Mobile, HTML5, .Net
Zones: JavaLobby, Web Builder, Architects, Server
“10X reduction in time/cost for Mobile SQL Backend Services”