How to Access Data
In this article, we’ll take a look at the different mobile data access options available to you.
As you already know, mobile tool vendors offer varied solutions — from cloud hosting to mobile back-end as a service that integrates mobile apps with your current enterprise infrastructure. The best option is entirely driven by your business needs and as such, this article strives to summarize the pros and cons inherent to each approach so you can make an informed purchase decision.
Let’s first look at database hosting and the options available to you.
Dedicated server. A physical server used exclusively for hosting your data. Companies that require high level of data security and seek full control over their data often prefer on-premise servers for their business. Dedicated servers are also believed to provide better performance (avoid unexpected bottlenecks as resources are not shared with others). Of course, a dedicated server requires maintenance and management — costs that are often too high for small business. In addition, dedicated servers may be less resilient to their cloud counterparts and have limited room for scaling (which can lead to temporary outage). Finally, since workload can vary significantly, the financial cost of a dedicated server is always flat as you always “pay for maximum load.”
Cloud. A virtual cloud node is hosted on the hardware of your provider and shared among other users. This makes cloud solutions popular among small business because it reduces maintenance and management costs. Many providers offer mobile app management tools to simplify database administration. Cloud environments usually offer automatic scaling and charge you for actual consumption. This makes them a good choice for projects that experience uneven workloads. The cloud is not without its drawbacks. By choosing it for your data storage needs, you are at the mercy of the cloud provider and your data is no longer under strict internal control (data must be handed over to a third party).
Let’s now look at the ways in which you can supply data to your mobile app.
Mobile back-end as a service (MBaaS). An intermediate layer between data and a mobile application. Often features user management, data storage, push notifications and social network integration. In addition, back-ends provide various compatibility features for major mobile platforms — designed to facilitate cross-platform development. Automatic scaling can also be important if you expect your application to gain a broad audience. These back-ends offer a good way for small businesses to save money when building and maintaining custom solutions.
The primary drawback of this approach is much like that of cloud databases — security . You have to pump your data through the cloud server, which may pose unwanted risk for sensitive data. In addition to security issues, MBaaS is often hampered by limited flexibility. You’ll face this problem when your data model changes substantially and the cloud back-end does not offer a path to consume the changes without a rebuild/redeployment. Despite the fact that many back-ends allow you to customize server code, you will also be better off with a custom solution if the main business logic in your system belongs on the server.
Custom back-end. The most flexible data binding approach for your mobile app. Even the most advanced commercial back-ends that allow you to execute custom server code can fail when your application is beyond ordinary. Moreover, any app that relies heavily on server-side logic requires that you have maximum control over the server (one cannot expect this from a non-custom back-end). If you require the highest level of security, a custom solution may be your best choice as it does not expose your data to a third party.
The primary disadvantage of a custom back-end is its development and maintenance costs. It takes significant resources to build all necessary services (such as user management, identity and push notifications) from the ground up.
Direct access. No mediator between the data source and the mobile app. This approach is rarely used in consumer applications, but can be found in small-scale enterprise apps. In this scenario, developers refrain from introducing a special mobile service because their data source already exposes a proper Web API (REST or SOAP). Needless to say, it’s crucial that the data source provides decent security, user management and authentication capabilities. It’s major drawback is significant — any change to the data model requires an immediate need to rebuild and redeploy mobile apps across the entire user base.
If a data source does not provide a Web API, this approach is difficult to apply in the real world. First, most application constructors do not support direct access to a database. This means you must stick to manually writing native applications. Second, the database engine must provide a security policy that allows you to avoid hard-coded database credentials. And finally, you’ll need to find a reliable and native database client/driver for each target platform.
Spreadsheet. Spreadsheets appear to be the most convenient way to prepare data for ad hoc data analysis. They are also very easy to manage for non-developers. These strengths allow spreadsheets to fill a niche within the enterprise. Unfortunately, spreadsheets have little adoption beyond the data analysis field.
The Xenarius approach
Xenarius allows you to connect to any kind of REST service. You can use a custom Web service, REST API exposed by a cloud back-end, or work with the Salesforce platform or SAP application. Xenarius also supports the OData protocol for sorting and filtering data on the server.