Backup Engine Overview

The Backup Engine contains the logic related to backing up and restoring data, including base and incremental backup. It also contains the data transfer mechanism.


The following diagram shows the Backup Engine and its associated components. The components provided by the Symbian platform are in green. The components that a device creator must implement are in blue. The architecture supports two methods of connecting to the host PC: Media Transfer Protocol (MTP) and OBEX.

Figure 1. Backup and Restore Architecture

Backup and restore using the MTP Backup and Restore Data Provider

The Symbian platform includes a Backup and Restore Data Provider plug-in for data backup and restore over MTP. The plug-in is loaded by the MTP Framework when a host PC requests a backup or restore. The plug-in is a client of the Backup Engine, which interacts with backup-aware client applications.

For more information on the MTP Backup and Restore Data Provider, refer to Implementing Backup and Restore over MTP.

Backup and restore using OBEX

The Symbian platform includes a basic backup server which uses OBEX. Device creators may replace this component with their own. The backup server is a client of the Backup Engine and must handle PC requests for backup and restore.


The Backup Engine exports conn::CSBEClient and its utility APIs for writing a backup server.

API Description


Provides data to a host PC for backup and receives data from a host PC for restore. It also encapsulates state information for backup and restore operations. Device creators can call this interface class to write a backup server with their transport protocols.


Is a generic parent class to be passed through a common interface. It represents any type of data structure used by conn::CSBEClient. For example, the derived class conn::CSBSecureId represents the Security ID of a data owning process. Derived classes are defined in the epoc32/include/connect/sbtypes.h header file.


Encapsulates the data owner information.




Are derived from conn::RExternalisableArray to store different backup and restore data.

Note: conn::CActiveBackupClient and conn::MActiveBackupDataClient are also Backup Engine APIs . They are used to write data owner applications for active backup and restore. For further information see Active Backup Client under the OS layer.

Typical uses

The Backup Engine can be used to write a backup server to communicate with a host PC for data backup and restore.