Newsletter sign-up
View all newsletters

Sign up for our technology specific newsletters.

Enterprise Java
Email Address:

High-availability mobile applications

Mobile databases and J2ME tools

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone

Page 2 of 7

  • Connection pools
  • The ParameterMetaData interface
  • Setting parameters for stored procedures by name in the CallableStatement interface
  • SQL 99 types (the Struct, Array, Ref, SQLData, SQLInput, and SQLOutput interfaces)
  • Custom type mapping (the setTypeMap() and getTypeMap() methods)


Data synchronization

Another important aspect of the occasionally connected application paradigm is data synchronization. Standalone mobile databases are isolated pockets of data. Mobile applications are much more useful when we connect those islands with powerful backend servers. Connected mobile databases have the following advantages:

  • A mobile client often needs to access enterprise IT infrastructure. For example, a mobile sales application requires updated inventory data.
  • A backend application needs up-to-date and aggregated data to make intelligent business decisions or generate accurate reports. For example, a supply chain application needs to aggregate data from mobile sales people before deciding how much it should order from suppliers.
  • The back end enables information sharing among mobile peers.


As a result, smart clients should support not only offline management of on-device data, but also data synchronization with backend databases when the network is available. The added bonus of a synchronized solution is that the backend database can act as a content provisioning repository for simplifying mobile device management.

In theory, the application developer can handle the entire synchronization logic. However, developing an optimized, secure, and scalable synchronization solution requires much expertise. Mobile database products normally come with proprietary synchronization tools and APIs to take away the pain from developers.

What about SyncML?

A popular application-level synchronization protocol is SyncML. Besides generic client application platforms such as J2ME, mobile devices often come preinstalled with different sets of native smart applications. Examples include calendars, address books, and contact lists (personal information management, or PIM, applications) on smart phone or PDA devices. Those applications often synchronize data with desktop PCs or other central data repositories through proprietary protocols supported by vendor-supplied driver software. The incompatible protocols have created many problems for users. For example, synchronizing a Pocket PC device with a Mac or Linux desktop is difficult; if a person owns multiple mobile devices, he must install multiple drivers that could potentially conflict. Users demand a standard synchronization protocol that allows any device to synchronize with any backend application without proprietary driver applications.

SyncML is a standard XML data format that defines the syntax to describe simple PIM data such as vCard and vCalendar. SyncML can access database-powered enterprise backend information systems. For example, IBM WebSphere Everyplace Access provides SyncML clients access to Lotus Notes and Microsoft Exchange servers. Important enterprise databases such as IBM DB2 and Oracle9i Database have built-in SyncML support. Although SyncML is great for PIM-type applications, it is not powerful enough to synchronize generic relational databases; thus, this article does not focus on SyncML.

  • Digg
  • Reddit
  • SlashDot
  • Stumble
  • del.icio.us
  • Technorati
  • dzone
Comment
Login
Forgot your account info?
Add comment
Anonymous comments subject to approval. Register here for member benefits.
Have a JavaWorld account? Log in here. Register now for a free account.
Resources