week 10 bug fix submission: Bug 1892, Bug 1897, Bug 1319. Also 3 or 4 documents were found to contain code blocks with SFL, which has been fixed. Partial fix for broken links, links to Forum Nokia, and the 'Symbian platform' terminology issues.
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License
"Eclipse Public License v1.0" which accompanies this distribution,
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
Nokia Corporation - initial contribution.
Contributors:
-->
<!DOCTYPE concept
PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept xml:lang="en" id="GUID-937C3D70-2DCC-5084-AC87-3B1E5865A827"><title>Active Backup Client Overview</title><prolog><metadata><keywords/></metadata></prolog><conbody><p>The Active Backup Client enables Symbian Developers to write backup and restore software with complete control of which data is backed up and restored. </p> <p>The backup client application is often referred to as the data owner as it owns the data. The data owner is automatically invoked to prepare and supply the data to the Backup Engine at backup time. Similarly, the data is automatically supplied back to the data owner on restore. </p> <section><title>Required Background</title> <p>Before you start, you must understand the following architecture and concepts: </p> <ul><li id="GUID-D8AE221E-2356-5A98-B338-39847C69A845"><p><xref href="GUID-5CA933B9-7987-5DDE-AE12-B0D5AFD31451.dita">Symbian backup and restore architecture</xref> </p> </li> <li id="GUID-1BC9B7B5-9DE9-5E7A-8E66-F1752111134B"><p><xref href="GUID-7FDD9FEC-5017-5E5D-A50A-5F343A3C7F6C.dita"> Backup and restore modes</xref> (active, passive and proxy). </p> </li> </ul> </section> <section><title>Key concepts and terms</title> <p> <b>Data owner </b> </p> <p>A Symbian process that owns the data to be backed up or restored is a data owner. It can be an application or a server. </p> <p> <b>Initiator/Responder</b> </p> <p>There are two roles in MTP exchanges, an initiator and a responder. An initiator is the device which initiates requests and operations to the connected responder. A responder is the device which passively responds the requests and operations. Symbian MTP is implemented as a responder role only. A host PC or a portable device on a Symbian device is usually an initiator. </p> </section> <section><title>Architecture</title> <p>The following flowchart shows how the Active Backup Client (data owner application) works with other components for data backup and restore. The components provided by Symbian are in green. The components that a device vendor must implement are in blue. </p> <fig id="GUID-A32E2101-8CF4-5DCB-B200-B4219A21733A"><title>
Active Backup Client
</title> <image href="GUID-54401E25-31F5-58E8-AE8A-276DE5E9C072_d0e146660_href.jpg" placement="inline"/></fig> <ul><li id="GUID-EA86CFF4-6504-5C52-9B48-961EE80D8C4F"><p>The <b>Backup Server</b> communicates directly with the backup and restore initiator, for example a host PC. </p> <p>The Backup Server receives a request from a host PC for a backup or restore operation. It then calls the Backup Engine using the Backup Engine Client API (<xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-FB671D02-0F15-396F-9FB7-EE3E9372093C"><apiname>conn::CSBEClient</apiname></xref>) for lists of data sets. It also transfers data during a backup or a restore. </p> <p> <b>Note</b>: The Symbian platform includes a backup server which a device vendor may replace. </p> </li> <li id="GUID-D533320B-B8E6-5660-A423-BDD4B36227FC"><p>The<b> Backup Engine</b> component contains the logic related to the data backup and restore. It signals the start or completion of a backup or restore to all data owners. </p> <p> <b>Note</b>: This component runs in a separate process which allows the Backup Server to operate synchronously and asynchronously. </p> </li> <li id="GUID-121E55AE-5E5A-5533-AB57-3521DDCB6894"><p>An active <b>Data Owner Application</b> responds to signals from the Backup Engine. It releases resources in case of file lock or data confliction. It must define a <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-17E48B80-2421-3256-B8B4-A0FED424D54A"><apiname>conn::CActiveBackupClient</apiname></xref> instance to connect to the Backup Engine and must provide a pointer to an <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-DB245BC3-2ADA-311D-8024-B40335D22822"><apiname>conn::MActiveBackupDataClient</apiname></xref> implementation. The <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-DB245BC3-2ADA-311D-8024-B40335D22822"><apiname>conn::MActiveBackupDataClient</apiname></xref> implementation prepares and transfers data to the Backup Engine for a backup and restore. </p> </li> </ul> </section> <section><title>APIs</title> <p>The Active Backup Client includes the following APIs: </p> <table id="GUID-78B19C43-C9D9-56F0-823F-7CF3F26238B8"><tgroup cols="2"><colspec colname="col0"/><colspec colname="col1"/><thead><row><entry>API</entry> <entry>Description</entry> </row> </thead> <tbody><row><entry><p> <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-17E48B80-2421-3256-B8B4-A0FED424D54A"><apiname>conn::CActiveBackupClient</apiname></xref> </p> </entry> <entry><p>Establishes a connection to the Backup Engine for the data owing process. </p> </entry> </row> <row><entry><p> <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-DB245BC3-2ADA-311D-8024-B40335D22822"><apiname>conn::MActiveBackupDataClient</apiname></xref> </p> </entry> <entry><p>The data owner application must implement this interface to provide the data to the Backup Engine. It is passed to the <xref href="GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2.dita#GUID-169BB4E2-5B0E-3719-A7B8-A3C0AAA602E2/GUID-17E48B80-2421-3256-B8B4-A0FED424D54A"><apiname>conn::CActiveBackupClient</apiname></xref> constructor. </p> </entry> </row> </tbody> </tgroup> </table> </section> <section><title>Typical uses</title> <p>The Active Backup Client can be used to prepare and transfer data for the Backup Engine to do a backup and restore. </p> </section> </conbody><related-links><link href="GUID-DFF9DFC5-1BE0-5CA2-A2B9-27FA2DECFF59.dita"><linktext>Writing an Active Backup Client Tutorial</linktext> </link> </related-links></concept>