1 Mobile Client Overview

Oracle Database Mobile Server delivers critical bi-directional data synchronization capability to mobile or fixed location distribution devices, while providing a centralized backend interface for managing mobile deployments. On the client device, the mobile client facilitates the transfer of data to and from the client database, which can be Berkeley DB, SQLite or Java DB. Install the desired database and the mobile client for Berkeley DB, SQLite or Java DB on your client device.

The following sections describe both databases and the mobile client for these databases:

1.1 Mobile Client Architecture

As shown in Figure 1-1, when both the client database and the mobile client are installed, the mobile device has the following components:

  • Client database—The client database can be Berkeley DB with the SQL interface (commonly referred to as just Berkeley DB in this document), SQLite or Java DB.

  • Mobile client—When you install the mobile client, the following components are provided:

    • Sync Engine—Automatic synchronization can be enabled on the Android, iOS, Win32, Windows Mobile, and Linux platforms. However, you can initiate manual synchronization within a mobile application on all platforms.

      The Sync Engine interacts with Berkeley DB, SQLite or Java DB databases to upload and download data in conjunction with the mobile server to synchronize the data with the Oracle database.

    • Device Manager Agent (DM Agent)—The mobile server uses the DM Agent to send commands to the mobile device for remote management. The DM Agent is installed on Android, iOS, Win32, Windows Mobile, and Linux platforms. The Blackberry, OJEC mobile client and pure Java client installed on standard Java SE platforms cannot be remotely managed.

  • Mobile application—Interacts with the client database to manage the data and with the Sync Engine to initiate a manual synchronization.

    The mobile client synchronizes the data in client database with the mobile server. The mobile server applies the client uploaded changes to back-end Oracle Database, and compose the server side changes and notify the client to download. This book describes how to configure, manage and implement synchronization using the mobile client. It does not discuss how to build, install, configure, manage or use the client databases.

Figure 1-1 Architecture for Device with a Mobile Client and Client Database

Description of Figure 1-1 follows
Description of "Figure 1-1 Architecture for Device with a Mobile Client and Client Database"

The following sections describe each mobile client:

1.2 Mobile Client for the Berkeley DB Database

Berkeley DB is a general-purpose, high-performance, embedded database that is designed for high-throughput applications. The primary goal of Berkeley DB is to deliver fast, scalable and flexible data management services to your application while remaining transparent to the end-user. Berkeley DB executes in the same process as your application.

Berkeley DB provides the following features that are expected of client/server enterprise-scale SQL databases: high throughput, high availability, high concurrency, replication, low-latency reads, non-blocking writes, failure recovery, data scalability, in-memory caching, ACID transactions, automatic and catastrophic recovery. Berkeley DB offers advanced features in a self-contained, small footprint software library.

The mobile client was built to use the Berkeley DB, which adds a SQL API to the Berkeley DB storage engine. The mobile client uses this interface to facilitate synchronization between the client and the back-end database.

1.3 Mobile Client for SQLite Database

SQLite is a small, compact, and self-contained database available on multiple platforms and available to the public. It has a small footprint and is easy to install and administer. In addition, many devices have SQLite already installed, including Android and Blackberry devices.

You can synchronize the data in one or more SQLite databases to a back-end Oracle database with the mobile client. This mobile client provides the ability to synchronize the data in SQLite databases with the Sync Engine contained within the mobile client.

SQLite is installed independently from the mobile client. SQLite does not provide the same SQL functionality as an Oracle database. This book describes how to configure, manage and implement synchronization using the mobile client. It does not discuss how to configure, manage or use SQLite. For information on SQLite and a full list of what functionality is supported, see http://www.sqlite.org/.

The SQLite Mobile Client can be installed on the following platforms: Linux, Windows (Win32), Windows Mobile, Android, iOS, and Blackberry platforms. Device management is supported on Android, iOS, Win32, Windows Mobile and Linux platforms. The Sync Engine supports both automatic and manual synchronization for SQLite. However, without device management support, remote device management and automatic synchronization is not supported on the Blackberry platform.

1.4 Mobile Client for Java DB Database

Java DB is a full--featured, small footprint SQL database, which comes bundled with Oracle JDKs. Java DB is pure Java and it runs everywhere that Java does, including the resource-constrained Java 8 compact profile 2 platform. It is easy to install Java DB, start using it, and even plug in custom, application-specific code. Java DB provides many enterprise database features, although it does not provide exactly the same functionality as Oracle databases. Java DB runs in a classic client-server configuration. It also runs embedded on the same JVM as the application. Java DB is a good fit for compile-once-deploy-everywhere applications which need multiple concurrent readers and writers.

Using the mobile client, which is installed independently, you can synchronize multiple Java DB databases with a back-end Oracle database. This guide describes how to configure, manage, and implement synchronization using the mobile client. The Java DB Mobile Client can be installed on Linux and Windows, its pure Java and can run on any Java SE platform. For more information on configuring, managing, and using Java DB, see http://db.apache.org/derby/.

1.5 Selecting Mobile Client

We have native mobile client, Android mobile client, iOS mobile client, Blackberry mobile client, pure Java SE mobile client, and pure Java ME mobile client.

  • The native mobile client runs on Windows, Linux and Windows Mobile platforms, and it includes both Sync Engine and DM Agent components. The native mobile client can run with Berkeley DB and SQLite databases.

  • The Android mobile client runs on Android platforms, and it includes the Sync Engine, the DMAgent application and the Update application. The Android mobile client can run with Berkeley DB and SQLite databases.

  • The iOS mobile client runs on iOS platforms, and it includes both Sync Engine and DM Agent components. The iOS mobile client can run with Berkeley DB and SQLite databases.

  • The Blackberry mobile client runs on Blackberry platforms, and it includes only Sync Engine component. The Blackberry mobile client can run with only SQLite database.

  • The pure Java SE mobile client runs on Java SE platforms. A Java SE platform is a platform where Oracle Java SE can run. The pure Java SE mobile client includes only Sync Engine component. This mobile client can run with Berkeley DB, SQLite and Java DB databases.

  • The pure Java ME mobile client runs on Java ME platforms. A Java ME platform is a platform where Oracle Java ME can run. The pure Java ME mobile client includes only Sync Engine component. This mobile client can run with both Berkeley DB and SQLite. With the OJEC client, the pure Java ME client is used with Berkeley DB database only, because the OJEC client embeds only Berkeley DB database.

Different mobile clients have different capability. The client is selected based on platform and client database being used.