Abstract:
A method and mobile device are presented for centrally controlling backup functionality, so that parties such as backup devices will efficiently be informed how data content should be backed up from or restored to the mobile device. The mobile device exposes to a party rules for backing up or restoring data content, and those rules are not just for the party, but also are for other parties including the mobile device itself. The rules are contained in a list formatted in extensible markup language (XML). If the party is an external party, the mobile device provides an object exchange protocol (OBEX) capability object in response to the party fetching that object. The OBEX capability object describes capabilities of the mobile device, and is for use by the external party in order to access the list of rules via the mobile device exposing those rules to the external party.

Description:
FIELD OF THE INVENTION  
       [0001]     The invention relates to backing up data, and more particularly to backing up data from a mobile communication device.  
       BACKGROUND OF THE INVENTION  
       [0002]     The importance of users&#39; data in mobile telephone devices is becoming a great concern of the telecommunications industry, because wireless phones are increasingly being used not just for communication but also for managing personal data. Therefore, backing up this data is an important issue, in order to protect against data loss. Some of this data can be backed up in synchronization with a local personal-computer (PC), or remotely backed up with a synchronisation server located in a network. In case the device is lost or broken, or in case of a hardware (HW) crash, one-way synchronization from the server (or PC) to the phone can be established in order to restore the data. However, data such as documents, or photos taken by a phone&#39;s built-in camera, may not be part of a typical synchronization procedure, and they may require traditional backup to be done manually, instead of in a regular and synchronized way. Different types of data need to be backed up at different intervals, and also may require different storage capacities, and therefore a need exists for an efficient system of backing up different types of data to different locations.  
         [0003]     Recently, PC “suites” have been developed, in order to provide a package of applications that allow a user to synchronize, edit, and back up many of a phone&#39;s files on a compatible PC through a wireless or cable connection. See, for example, Nokia PC Suite: Description, at http://www.nokia.com/nokia/0,,54691,00.html. Since PC suite development has moved application development from a “separate release for each phone” towards a “unified” operation mode, it is now increasingly important to minimize phone-dependent differences. This need for unified functionality includes backup and restore functionality, because there are many variations of locations, amounts, and types of data to be backed up. There also are a number of variations of phone devices having different sets of applications and features (e.g. camera included or not included, differing multimedia capabilities, et cetera), and therefore data content needs to be copied to and from different locations and by following different rules.  
         [0004]     Additionally, it is also important to consider a device&#39;s ability to be backed up by a removable medium such as a multi media card (MMC). The same backup rules are needed in this MMC case in order to ensure a good user experience. It is not acceptable or efficient for backup instructions to have a different meaning if the device&#39;s removable backup/restore application is used instead of a corresponding application on the PC side performing the same backup function.  
         [0005]     Traditional device side backups, and also backups taken from the PC side, have not had any coordination with each other, and no coordinated rules about which content to respectively manage, and how to manage content jointly. Instead, each side has had its own “exclude” lists used for blocking out unnecessary content from backup, and this has unfortunately led to the present difficult situation where backups are not necessarily consistent with each other.  
         [0006]     It is known in the art to use an Object Exchange Protocol in order to provide a server with synchronization and backup services. See  Infrared Data Association  ( IrDA )  Object Exchange Protocol,  OBEX, Version 1.3 dated Jan. 3, 2003, Section 8.3. However, no way has heretofore been found to use OBEX so as to allow consistent backups to a plurality of backup repositories which respectively back up different categories of data.  
       SUMMARY OF THE INVENTION  
       [0007]     The present invention enables a device to expose rules regarding how the device should be backed up and restored, and these exposed rules are for use by all parties including the device itself. These rules are valid not only for the device&#39;s own (e.g. MMC) backup application, but additionally for the PC side backup used via local communication media such as a universal serial bus (USB), Bluetooth (BT), wireless local area network (WLAN), or infrared link (in accordance with the Infrared Data Association IrDA). These rules can additionally be valid for a backup application employing a synchronisation server located in a network.  
         [0008]     The device of the present invention contains a structured list in extensible markup language (XML), including strict rules about how a particular main category of data content should be handled. An external party such as a PC can obtain access to the structured list by fetching a first object that describes capabilities of the device.  
         [0009]     This first object is part of the Object Exchange Protocol (OBEX) standard developed by the IrDA, and this first object is called an “OBEX capability object.” Various extensions to the OBEX capability object can be defined, including an extension that links to a location of a backup description XML object (backup.xml). This backup description XML object then provides the structured list explaining how data should be backed up from the device. It should be noted that the structure of the backup description XML object is given by a Document Type Definition (DTD). The purpose of a Document Type Definition is to define the allowed building blocks of an XML document; it defines the document structure with a list of allowed elements. Inside of this DTD there are possibilities for making additions for additional content or types of content. The structured list is thus accessible via normal file transfer.  
         [0010]     The method and mobile device of the present invention thus make it feasible to centrally control backup functionality, so that backup devices will efficiently be informed how data content should be backed up from (and restored to) the mobile device. The device is equipped to provide an object exchange protocol (OBEX) capability object from the mobile device to the backup device. The device then exposes to the backup device a backup description extensible markup language (XML) object in response to a link from an extension of the OBEX capability object.  
         [0011]     The present invention is for centrally controlling backup functionality, so that parties such as backup devices will efficiently learn how data content should be backed up from the mobile device, or restored to the mobile device. The mobile device exposes (i.e. shows) to a party various rules for backing up or restoring data content, and those rules are not only for the party, but also are for other parties including the mobile device itself, including all backup devices that interact with the mobile device. The rules are contained in a list formatted in extensible markup language (XML). If the party is an external party, the mobile device provides an object exchange protocol (OBEX) capability object in response to the party fetching that object. The OBEX capability object describes capabilities of the mobile device, and is also for use by the external party in order to access the list of rules via the mobile device exposing those rules to the external party, as discussed previously. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0012]      FIG. 1  shows subsystems and components needed for centralized backup handling.  
         [0013]      FIG. 2  shows a method according to an embodiment of the present invention.  
         [0014]      FIG. 3  shows a block diagram of an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0015]     A backup description XML object (backup.xml) containing a list of rules is available by linking from an OBEX capability object that is fetched from a mobile device by a PC, MMC, or network server. The syntax for the capability object is based on XML, and XML has been chosen because of its flexibility and ease with which elements can be categorized and their attributes collected. The capability object is flexible enough that individual manufacturers can selectively include objects, services and attributes that are of interest to them. It also permits the addition of user-defined elements for specific application or manufacturer needs.  
         [0016]     The backup description XML object contains categories to be backed up, such as user documents, calendar, contacts, bookmarks, and the like. Categories can be added to the backup description by defining a new version of DTD that describes backup.xml. These categories contain rules to be followed in the respective backup case. These rules are, for example, tags such as “include” or “exclude” or “includeatomic.” 
         [0017]     Each of these tags indicates folders and/or files belonging to the respective rule. Tags are of “file” type or “folder” type, meaning that the tag takes into account a single file or an entire folder structure, so that a single file or an entire folder is “included” in or “excluded” from the backup. The tag “includeatomic” has a specific purpose: it is used in cases where a folder contains linked files requiring that some of the folder must be handled as whole. In case of restore (as opposed to backup), this “includeatomic” tag means that the whole folder must be emptied before content can be replaced by the old version of the files (e.g. some of the emptied files will not be replaced).  
         [0018]     Following is an example of information provided by the backup description XML object that is used for controlling backups.  
                                                                                                                                                                                                                                                                                                                                       &lt;?xml version=“1.0” standalone=“yes”?&gt;       &lt;!DOCTYPE BACKUP&gt;       &lt;!ELEMENT BACKUP (CALENDAR?, CONTACTS?, MESSAGES?,       BOOKMARKS?, USER_DATA?,SETTINGS?, FULL?)&gt;       &lt;!ATTLIST BACKUP Version CDATA “1.0”&gt;       &lt;!ELEMENT CALENDAR (INCLUDE | INCLUDEATOMIC |       EXCLUDE)+&gt;       &lt;!ELEMENT CONTACTS (INCLUDE | INCLUDEATOMIC |       EXCLUDE)+&gt;       &lt;!ELEMENT MESSAGES (INCLUDE | INCLUDEATOMIC |       EXCLUDE)+&gt;       &lt;!ELEMENT BOOKMARKS (INCLUDE | INCLUDEATOMIC |       EXCLUDE)+&gt;       &lt;!ELEMENT USER_DATA (INCLUDE | INCLUDEATOMIC |       EXCLUDE)+&gt;       &lt;!ELEMENT SETTINGS (INCLUDE | INCLUDEATOMIC |       EXCLUDE)+&gt;       &lt;!ELEMENT FULL (INCLUDE | INCLUDEATOMIC | EXCLUDE)+&gt;       &lt;!ELEMENT INCLUDE (FOLDER | FILE)+&gt;       &lt;!ELEMENT INCLUDEATOMIC (FOLDER | FILE)+&gt;       &lt;!ELEMENT EXCLUDE (FOLDER | FILE)+&gt;       &lt;!ELEMENT FOLDER (#PCDATA)&gt;       &lt;!ELEMENT FILE (#PCDATA)&gt;       ]&gt;       &lt;BACKUP Version=“1.0”&gt;       &lt;CALENDAR&gt;                &lt;INCLUDE&gt;                &lt;FILE&gt;C:\System\Data\Calendar&lt;/FILE&gt;                &lt;/INCLUDE&gt;            &lt;/CALENDAR&gt;       &lt;CONTACTS&gt;                &lt;INCLUDE&gt;                &lt;FILE&gt;C:\System\Data\Contacts.cdb&lt;/FILE&gt;                &lt;/INCLUDE&gt;            &lt;/CONTACTS&gt;       &lt;MESSAGES&gt;                &lt;INCLUDEATOMIC&gt;                &lt;FOLDER&gt;C:\System\Mail\&lt;/FOLDER&gt;                &lt;/INCLUDEATOMIC&gt;            &lt;/MESSAGES&gt;       &lt;BOOKMARKS&gt;                &lt;INCLUDE&gt;                &lt;FILE&gt;C:\System\Data\Bookmarks1.db&lt;/FILE&gt;                &lt;/INCLUDE&gt;            &lt;/BOOKMARKS&gt;       &lt;USER_DATA&gt;                &lt;INCLUDE&gt;                &lt;FOLDER&gt;C:\Nokia\&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\&lt;/FOLDER&gt;                &lt;/INCLUDE&gt;           &lt;EXCLUDE&gt;                &lt;FOLDER&gt;E:\System\&lt;/FOLDER&gt;                &lt;/EXCLUDE&gt;            &lt;/USER_DATA&gt;       &lt;SETTINGS&gt;                &lt;INCLUDE&gt;                &lt;FOLDER&gt;C:\System\Data\Profiles\&lt;/FOLDER&gt;           &lt;FILE&gt;C:\System\Data\Cdbv3.dat&lt;/FILE&gt;                &lt;/INCLUDE&gt;            &lt;/SETTINGS&gt;       &lt;FULL&gt;                &lt;INCLUDE&gt;                &lt;FOLDER&gt;C:\&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\&lt;/FOLDER&gt;                &lt;/INCLUDE&gt;           &lt;EXCLUDE&gt;                &lt;FOLDER&gt;D:\&lt;/FOLDER&gt;           &lt;FOLDER&gt;C:\System\temp\&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\System\temp\&lt;/FOLDER&gt;           &lt;FOLDER&gt;C:\System\midp\&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\System\midp\&lt;/FOLDER&gt;           &lt;FOLDER&gt;C:\System\sounds\digital\&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\System\sounds\digital\&lt;/FOLDER&gt;           &lt;FOLDER&gt;C:\System\sounds\simple\&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\System\sounds\simple\&lt;/FOLDER&gt;           &lt;FOLDER&gt;C:\System\apps\phone\oplogo\&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\System\apps\phone\oplogo\&lt;/FOLDER&gt;           &lt;FILE&gt;C:\System\shareddata\reserve.bin&lt;/FILE&gt;           &lt;FOLDER&gt;C:\System\data\voucherdb&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\System\data\voucherdb&lt;/FOLDER&gt;           &lt;FOLDER&gt;C:\System\data\backupvdb&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\System\data\backupvdb&lt;/FOLDER&gt;           &lt;FOLDER&gt;E:\Images_temp&lt;/FOLDER&gt;                &lt;/EXCLUDE&gt;            &lt;/FULL&gt;       &lt;/BACKUP&gt;                  
 
         [0019]     This approach to backing up mobile device data has the big advantage of having consistent functionality. This XML object can either be preprogrammed, or it can modified by a user. In either case, the user experience will be enhanced by ensuring reliable backups of user data, with the user data being backed up to a plurality of external backup areas in a coordinated fashion.  
         [0020]     Implementation of this embodiment of the invention can be better appreciated by referring to  FIG. 1 , which shows subsystems and components of a centralized backup  100 . A user  109  has access to an external device  105  such as a personal computer (PC), and also has access to a phone device  107 .  
         [0021]     The external device  105  includes a subsystem application  110  which contains applications running in the external device  105 . A backup application receives static information regarding a connected phone  107  that is unavailable in the backup.xml list of rules  180  or in the OBEX capability object. The subsystem platform  120  implements connectivity and protocol-specific parts. A subsystem data handling layer  130  is an abstraction layer of the application data; it communicates to the phone  107  via the subsystem platform  120  using protocols that the platform  120  implements. A file system  140  provides mass memory that is used for file storage. The external backup application  150  contains logic for decoding backup rules that are exposed by the phone device  107 . This external backup application  150  has a human interface enabling the user  109  to control backup/restore functionality, and the external backup application  150  uses the file storage provided by the file system  140 .  
         [0022]     Turning now to the phone device  107 , this entity includes a connectivity subsystem  160  that is substantially similar to the subsystem platform  120  on the external side. Likewise, a device file system  170  in the phone device is substantially similar to the file system  140  on the external (e.g. PC) side. The backup.xml  180  is an object containing rules in XML form. The MMC  190  is a multi media card that provides removable mass memory, and extends the device file system  140 . Finally, the device backup application  195  corresponds to the external backup application  150  on the external side, and it stores backup on the MMC  190 .  
         [0023]      FIG. 2  is a flow chart showing a method  200  according to the present invention. First, it is determined  210  if the backup device is external to the mobile terminal (i.e. outside the mobile device). If not, then the mobile device directly exposes  250  the list of backup rules to the backup device within the mobile terminal. This single list is also to be exposed to external backup devices. Of course, although this is a single list, the different backup devices can utilize different parts of the list, given the different requirements and capabilities of each backup device. If the question  210  is answered positively, then the backup device will go fetch  220  the OBEX capability object from the mobile device. Then, the mobile device will provide  230  the OBEX capability object. The backup device will then, in this embodiment, activate  240  a link in an extension of the OBEX capability object, and this will cause the mobile device to expose  250  the list of backup and/or restore rules to the backup device.  
         [0024]      FIG. 3  shows system  300  corresponding to part of the method just described. The external backup device  310  will send a fetch signal  330  to the mobile device  320 , and in particular this signal will be received by a means  340  for providing an OBEX capability object. This means  340  will respond by providing on a line  350  the OBEX capability object  360 . The external backup device  310  will then activate a link located in an extension  370  of the OBEX capability object  360 , and the extension  370  will consequently send an expose request signal  380  to the mobile device  320 , and in particular to a means  390  for exposing to any backup device a list of backup rules. In response, the means  390  will then send an expose signal  395  to the external backup device in order to provide the uniform centralized backup rules to the backup device  310 .  
         [0025]     It is to be understood that the present figures, and the accompanying narrative discussions of best mode embodiments, are illustrative of the present invention, and are not purported to be completely rigorous treatments of the invention under consideration. A person skilled in the art will understand that the steps and signals of the present application represent general cause-and-effect relationships that do not exclude intermediate interactions of various types, and will further understand that the various steps and structures described in this application can be implemented by a variety of different combinations of hardware and software, in various configurations and sequences, consistent with the spirit and scope of the present invention, and need not be further detailed herein.