Sun GlassFish Mobility Platform 1.1 Architectural Overview

Chapter 1 Overview of Sun GlassFish Mobility Platform

This document describes the architecture of the Sun GlassFish Mobility Platform product offering. It also describes how the product's components communicate with each other to provide a seamless data synchronization experience.

Introduction

Sun GlassFish Mobility Platform is an open standards-based platform that enables access between enterprise applications and mobile devices. Sun GlassFish Mobility Platform provides reliable two-way data synchronization with security, device management, and offline access. Sun GlassFish Mobility Platform helps companies maximize return on investment on their existing IT infrastructure by reducing the cost of developing and provisioning client applications. It also empowers corporate mobile workers to be more productive by providing them with access to mission-critical data, from anywhere, at any time.

Sun GlassFish Mobility Platform includes the following features:

Sun GlassFish Mobility Platform overcomes the following challenges:

New Features in the Sun GlassFish Mobility Platform 1.1 Release

The following product features have been introduced in the Sun GlassFish Mobility Platform 1.1 release:

Sun GlassFish Mobility Platform Deployment Scenarios

The Sun GlassFish Mobility Platform software can be deployed in three different scenarios:

Service Provider Managed Deployment Scenario

In a service provider managed deployment scenario, such as the one shown in Figure 1–1, the Gateway engine and its associated sync database form the Gateway tier in the service provider's network. The corporate network includes the Sun GlassFish Mobility Platform Enterprise tier components and the EIS/EAI system.

Figure 1–1 Service Provider Managed Deployment

Diagram of a typical service provider managed deployment
scenario

Service Provider Hosted Deployment Scenario

In a service provider hosted deployment scenario, all of the Sun GlassFish Mobility Platform components and the database or EIS/EAI system are in the service provider's network.

Enterprise Deployment Scenario

In an enterprise deployment scenario, such as the one shown in Figure 1–2, all of the Sun GlassFish Mobility Platform components and the database or EIS/EAI system are in the corporate network.

Figure 1–2 Enterprise Deployment Scenario

Diagram of a typical enterprise deployment scenario

The service provider's network includes no Sun GlassFish Mobility Platform components. The corporate network, in essence, controls all of the Sun GlassFish Mobility Platform components as well as the database or EIS/EAI system. In the corporate network, the Sun GlassFish Mobility Platform components can be configured in a single-tier or two-tier configuration. These configurations are described in Sun GlassFish Mobility Platform Architecture.

Sun GlassFish Mobility Platform Architecture

Sun GlassFish Mobility Platform supports synchronization of enterprise data between Open Mobile Alliance Data Synchronization (OMA DS) enabled mobile phones and a database or EIS/EAI system.

The Sun GlassFish Mobility Platform architecture is based on open industry standards and is designed to operate a highly scalable, fault-tolerant environment tightly integrated with the existing infrastructure. Sun GlassFish Mobility Platform includes support for automatic failover and load-balancing, providing near-linear scalability. This architecture has been proven in carrier-grade deployments.

The major highlights of the Sun GlassFish Mobility Platform architecture are as follows.

Mobile Client Business Object API

The Mobile Client Business Object (MCBO) API provides an easy-to-use programming interface. It is provided as a Java ME library that the client application developer can use to develop a Sun GlassFish Mobility Platform Client application.

See Sun Glassfish Mobility Platform 1.1 Developer’s Guide for Client Applications for information about using the MCBO API.

Sun GlassFish Mobility Platform Gateway

The Sun GlassFish Mobility Platform Gateway is the server component that interprets the incoming OMA DS messages and translates them into commands and data for Enterprise Connectors. The interface between the Gateway and the Enterprise Connectors is the Java Content Repository API.

Sync Database

The sync database contains the tables required by the Sun GlassFish Mobility Platform Gateway to store synchronization timestamps for client devices, mappings between client and server items, user information, configuration information, and synchronization message digest data.

Enterprise Connector Business Object API

The Enterprise Connector Business Object (ECBO) API provides an easy-to-use programming interface that makes it easy to build Enterprise Connectors.

See Sun GlassFish Mobility Platform 1.1 Developer's Guide for Enterprise Connectors for information about using the ECBO API.

Sun JCA Adapters

Sun JCA Adapters are Java EE Connector Architecture-based resource adapters that read and write data in the native format of specific databases or EIS/EAI systems. Sun GlassFish Mobility Platform includes adapters for SAP ERP, Siebel EAI, JDBC, and Oracle.

Figure 1–3 illustrates a single-tier Sun GlassFish Mobility Platform architecture. The client Sync App uses the APIs in the client library to communicate with the Gateway Engine, Enterprise Connector, and the Sun JCA Adapter. The adapter communicates with the EIS/EAI system.

Figure 1–3 Single-Tier Sun GlassFish Mobility Platform Architecture

Diagram of a single-tier Sun GlassFish Mobility Platform architecture

Figure 1–4 shows a two-tier architecture, consisting of a Gateway tier and an Enterprise tier. The Gateway tier includes the Gateway Engine and Web Service connector. The Enterprise tier includes the Web Service endpoint and Enterprise Connector, as well as the Sun JCA Adapter that communicates with the EIS/EAI system. The Web Service connector in the Gateway tier uses SOAP over HTTPS (or HTTP) to communicate with the Web Service endpoint in the Enterprise tier. The Enterprise Connector uses the ECBO APIs to communicate with the Connector Library and the JCA APIs to communicate with the Sun JCA adapter which, in turn, communicates with the EIS/EAI system.

Figure 1–4 Two-Tier Sun GlassFish Mobility Platform Architecture

Diagram of a two-tier Sun GlassFish Mobility Platform architecture

Synchronization Types

Sun GlassFish Mobility Platform supports the following types of client-initiated synchronizations:

There are two ways to initiate the synchronization process: the user can trigger it manually by selecting the appropriate menu item in the client device's Java ME client, or the server can initiate the process (Push). As defined by the Open Mobile Alliance (OMA), for OMA DS Push, the server sends an SMS notification message to the device. If the client has been programmed to act on this message, it can synchronize with the server to retrieve any changes.

Both the client and the server store information about changes to their respective data stores since the last successful synchronization. When the next synchronization is performed, the client and server negotiate how the changes are resolved and propagated according to the type of synchronization being performed.

The following sections describe the synchronization types.

Two-way Sync (Fast Sync)

Two-way sync, also called fast sync, is the normal synchronization mode, in which the client and the server exchange modifications to the data that they have stored. An initial slow sync is used to populate the data on the client.

The client always initiates this exchange by sending client data modifications to the server. This is called a synchronization request.

The server processes the synchronization request, comparing and unifying the data from the client with the data in the server database by means of an Enterprise Connector.

Afterwards, the server sends the modified data to the client, which updates the local data store with the information from the server. Figure 1–5 illustrates this process.

Figure 1–5 Two-way Sync

Diagram showing two-way sync

Slow Sync

Typically, the very first sync that a client performs is a slow sync. After that, the client performs fast syncs. If the data on the server or client is lost or corrupted, the next sync must be a slow sync.

In practice, a slow sync means that the client sends all its data to the server and the server compares its own data with that sent by the client. After the analysis, the server returns all the modification information to the client. In turn, the client returns the mapping information for all data items added by the server.

If the same record differs between the client and the server, the conflict will be resolved in favor of the server. If a record exists on the client but does not exist on the server, a slow sync will propagate the record to the server. If a record exists on the server but does not exist on the client, a slow sync will propagate the record to the client. If the client and the server were in sync before the slow sync, updates and deletions to records on the client are not propagated to the server. The client records will be overwritten by the corresponding record on the server, in this case.

Figure 1–6 illustrates this process.

Figure 1–6 Slow Sync

Diagram showing slow sync

One-way Sync from Client

This is one half of a two-way sync. In this mode, the client sends modifications of its data store to the server. The server updates its data store appropriately but does not send modifications of its data store to the client. After a one-way sync from client, the client and server data stores may not be in sync.

Refresh Sync from Client

In this mode, the client exports all its data to the server. The server is expected to replace all its data with the data sent by the client.


Note –

Use this synchronization type with caution.


One-way Sync from Server

This is the other half of a two-way sync. In this mode, the server sends modifications of its data store to the client. The client updates its data store appropriately but does not send modifications of its data store to the server. After a one-way sync from server, the client and server data stores may not be in sync.

Refresh Sync from Server

In this mode, the server exports all its data from a database to the client. The client is expected to replace all its data with the data sent by the server.

Transport Layer

The transport layer for data synchronization between server and client can be HTTP or HTTPS.

Sun GlassFish Mobility Platform Security and Authentication

Sun makes every effort to ensure secure operation of Sun GlassFish Mobility Platform, which was designed with security in mind. Sun GlassFish Mobility Platform uses MD5 to generate a hash used as the symmetric key for 3DES to encrypt client data stored locally. When that data is sent over the wire from the client device, it is decrypted and sent using SSL/HTTPS. User data is at no time exposed to prying eyes. For security reasons, Sun GlassFish Mobility Platform does not duplicate the user's data to a local database, but only metadata required during the synchronization process.

Sun GlassFish Mobility Platform supports both client-side and server-side security:

Sun GlassFish Mobility Platform Client Security

Sun GlassFish Mobility Platform client security includes the following features:

For details, see Chapter 3, “Client Security Architecture,” in Sun GlassFish Mobility Platform 1.1 Developer's Guide for Client Applications.

Sun GlassFish Mobility Platform Server Security

Sun GlassFish Mobility Platform server security features include the following:

Client Provisioning

JSR 124, the Java EE Client Provisioning Specification, provides a framework and APIs for making client applications available on a Java EE server. Sun GlassFish Mobility Platform supports provisioning for client applications through its Administration Console. It provides a provisioning portal that offers the following features:

Sun GlassFish Mobility Platform Administration Console

Sun GlassFish Mobility Platform provides a web-based Administration Console that supports the following tasks:

The Administration Console provides different capabilities on each tier of a two-tier installation.

For details, see the Sun GlassFish Mobility Platform 1.1 Administration Guide.

NetBeans IDE Tooling

NetBeans IDE plugin modules simplify the development of applications for Sun GlassFish Mobility Platform as follows: