Thursday Jan 31, 2013

Connecting Mobile Apps to an Oracle Backend

As smartphone and table usages continues to proliferate in business, more and more traditionally PC-focused apps are migrating to these new platforms. One topic that often comes up is how to interface mobile applications, such as Android smartphone or tablet apps, to an Oracle Database backend.
The standard way would be to stand up some type of app server. You could choose to actually host the application on the web, and simply connect to it from the mobile device using the browser or some type of container app. Or set up a web interface for data access from a native app, typically through a RESTful interface. These approaches have advantages; development cycles are short, and it’s easier to scale when your data is all server-side. However, there are drawbacks as well. Most of these center around performance. Because of the extra layers of abstraction, web apps are slower than native apps in general. When you add in the latency of accessing all your data over the network the problem worsens. Data driven apps are the most susceptible to this.
Because of these drawbacks, there is a large and growing market for high performance native applications. These apps store their data in a local database to maximize throughput and minimize latency. Of course, this method creates a problem. These mobile devices are now islands of data, where valuable information is effectively trapped in local storage, not resident on the backend where its value can be maximized. The good news is Oracle already has the solution. Database Mobile Server was created specifically to solve this problem.
Oracle Database Mobile Server is designed to keep whole networks of mobile and embedded/M2M devices in sync with an enterprise backend. It has a compelling feature set:
  • Designed to synchronize any generic data set
    • On any combination of supported platforms
    • Sync can be 1-way or bidirectional
  • Initiated on the client or server side
    • Triggered by database or external events
  • Includes device/application management features (MDM/MAM) for centralized control over your device network, including remote provisioning of apps, databases
  • End-to-end encryption of data, both at-rest and in-flight, means you don’t have to sacrifice security for performance

To summarize, Database Mobile Server enables native applications utilizing local data to enjoy the best of both worlds: high performance, low latency UI as well as the numerous advantages of having all your data organized and available in a centralized location.
Before I wrap up, a quick sidebar: from time to time we run across folks who are tempted to solve this problem by simply connecting their mobile app directly to an Oracle Database, often using JDBC. This practice might seem appealing, especially given that Android already runs a JVM, however it should be avoided. The various forums are full of explanations why this is a bad idea, so I won’t go into it. Suffice to say, the approach outlined here offers the same advantage, simply developing a mobile app without standing up any web backend for data access. It also has the added advantages of not creating any of the security, performance, and reliability issues associated with direct mobile devices connections to backend Databases.
In a future blog post, I’ll cover the development steps necessary to use this approach in the most straight forward way possible. I think you’ll be surprised at how easy it is to have the best of both worlds.
I will also discuss how you can leverage popular mobile app frameworks such as Appcelerator Titanium to create native apps using technologies derived from the web, for dramatically shorter development timelines.

Until then,

- Eric

Thursday Jun 21, 2012

Enabling M2M and Mobility in Healthcare

Jim Connors has created a video showcase of a comprehensive healthcare solution, connecting a mobile application directly to an embedded patient monitoring system. In the demo, Jim illustrates how you can easily build solutions on top of the Java embedded platform, using Oracle products like Berkeley DB and Database Mobile Server.

Jim is running Apache Tomcat on an embedded device, using Berkeley DB as the data store. BDB is transparently linked to an Oracle Database backend using  Database Mobile Server. Information protection is important in healthcare, so it is worth pointing out that these products offer strong data encryption, for storage as well as transit.

In his video, Jim does a great job of demystifying M2M. What's compelling about this demo is that uses a solution architecture that enterprise developers are already comfortable and familiar with: a Java apps server with a database backend. The additional pieces used to embed this solution are Oracle Berkeley DB and Database Mobile Server. It functions transparently, from the perspective of Java apps developers. This means that organizations who understand Java apps (basically everyone) can use this technology to develop embedded M2M products. The potential uses for this technology in healthcare alone are immense; any device that measures and records some aspect of the patient could be linked, securely and directly, to the medical records database. Breathing, circulation, other vitals, sensory perception, blood tests, x-rats or CAT scans. The list goes on and on. In this demo case, it's a testament to the power of the Java embedded platform that they are able to easily interface the device, called a Pulse Oximeter, with the web application.

If Jim had stopped there, it would've been a cool demo. But he didn't; he actually saved the most awesome part for the end! At 9:52 Jim drops a bombshell:

He's also created an Android app, something a doctor would use to view patient health data from his mobile device.

The mobile app is seamlessly integrated into the rest of the system, using the device agent from Oracle's Database Mobile Server. In doing so, Jim has really showcased the full power of this solution: the ability to build M2M solutions that integrate seamlessly with mobile applications.

In closing, I want to point out that this is not a hypothetical demo using beta or even v1.0 products. Everything in Jim's demo is available today. What's more, every product shown is mature, and already in production at many customer sites, albeit not in the innovative combination Jim has come up with. If your customers are in the market for these type of solutions (and they almost certainly are) I encourage you to download the components and try it out yourself! All the Oracle products showcased in this video are available for evaluation download via Oracle Technology Network.


Eric Jensen


« June 2016