WO2001037092A1 - Apparatus and method for increasing the synchronization speed between a first device and a second device - Google Patents

Apparatus and method for increasing the synchronization speed between a first device and a second device Download PDF

Info

Publication number
WO2001037092A1
WO2001037092A1 PCT/EP2000/011160 EP0011160W WO0137092A1 WO 2001037092 A1 WO2001037092 A1 WO 2001037092A1 EP 0011160 W EP0011160 W EP 0011160W WO 0137092 A1 WO0137092 A1 WO 0137092A1
Authority
WO
WIPO (PCT)
Prior art keywords
unique identifier
record
database
information
identifier
Prior art date
Application number
PCT/EP2000/011160
Other languages
French (fr)
Inventor
Jörgen BIRKLER
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to AU26665/01A priority Critical patent/AU2666501A/en
Publication of WO2001037092A1 publication Critical patent/WO2001037092A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Definitions

  • the present invention relates in general to the field of communications, and in particular, to a method and apparatus capable of increasing the synchronization speed between a first device and a second device.
  • Bluetooth technology effectively eliminates the need for wires, cables and connectors for and between cordless or mobile phones, modems, headsets, personal digital assistants
  • PDAs personal computers, printers, projectors, local area networks (LANs) , and so on, and paves the way for new and completely different devices and applications.
  • LANs local area networks
  • the promoters of Bluetooth technology have also formed a Special Interest Group whose main purpose was to establish a Bluetooth standard.
  • Bluetooth technology enables, among other things, a synchronization process which allows the addition, modification or deletion of information in a first device (e.g., PDA) to also be added, modified or deleted within a second device (e.g., mobile phone) so that both devices contain the same information.
  • a first device e.g., PDA
  • a second device e.g., mobile phone
  • This synchronization process has become easier and more convenient in view of Bluetooth technology which allows users to synchronize information between associated devices via a wireless interface .
  • one of the devices to be synchronized includes a database that accesses information using a static index instead of using a unique identifier (UID) .
  • UID unique identifier
  • the use of a static index type database decreases the speed of the synchronization process, because that database must first search for a relevant static index using a given UID and then locate the information using the searched for static index.
  • the UID type database does not decrease the speed of the synchronization process, because that database can directly access the information using UIDs and is not required to search for information using static indices (see below for a more detailed description about the problematic state-of-art) .
  • the present invention is an synchronization apparatus and method that addresses the deficiencies of the prior art by increasing the speed of the synchronization process between a first device and a second device when at least one of the devices includes a static index type database.
  • the synchronization apparatus includes a first device that forwards a request containing a unique identifier (including a static index amended to a "true" unique identifier) to a second device which then directly accesses the information in a desired record by utilizing a static identifier extracted from the forwarded unique identifier. Thereafter, the second device forwards the accessed information to the first device so that the two devices can be synchronized to store the same information.
  • the first device and the second device can be implemented in, for example, a wireless handset, a computer, a personal digital assistant or a pager.
  • FIGURE 1 (PRIOR ART) is a block diagram illustrating a conventional wireless communications system
  • FIGURE 2 is a block diagram of a traditional synchronization apparatus capable of synchronizing parallel processors, such as, for example, two of the conventional devices shown in FIGURE 1;
  • FIGURES 3a-3c are exemplary block diagrams of a traditional problematic synchronization apparatus ;
  • FIGURE 4 (PRIOR ART) is a flowchart illustrating the basic steps of a traditional problematic synchronization method
  • FIGURES 5a-5c are block diagrams illustrating an exemplary synchronization apparatus of the present invention.
  • FIGURE 6 is a flowchart illustrating the basic steps of an exemplary synchronization method of the present invention.
  • FIGS 1-6 there are disclosed an exemplary synchronization apparatus 500 and a preferred synchronization method 600 each of which is capable of increasing the synchronization speed between a first device 510 and a second device 520 in accordance with the present invention.
  • the present invention is described with respect to the synchronization apparatus 500 having a pair of telecommunication devices 510 and 520, it should be understood that the present invention can be used with any type of processor that includes a static index type database. Accordingly, the exemplary synchronization apparatus 500 and the preferred synchronization method 600 described should not be construed in a limited manner.
  • FIGURE 1 a block diagram of a conventional wireless communications system 100 that can be representative of a communications system configured in accordance with the Bluetooth standard.
  • the conventional wireless communications system 100 includes a device, such as a wireless handset 105, which is capable of communicating with one or more associated devices, such as another wireless handset 110, a personal computer (PC) 120, a personal digital assistant (PDA) 125, a pager 130, and a car cradle 150.
  • a wireless handset 105 which is capable of communicating with one or more associated devices, such as another wireless handset 110, a personal computer (PC) 120, a personal digital assistant (PDA) 125, a pager 130, and a car cradle 150.
  • PC personal computer
  • PDA personal digital assistant
  • Each of the associated devices 110, 120, 125, 130, and 150 may also communicate with one or more devices in addition to the wireless handset 105.
  • the personal computer 120 may communicate with the pager 120, and the pager 120 may further communicate with another pager 140.
  • the devices depicted in FIGURE 1 preferably communicate with one another over a wireless interface 160 using, for example, infrared transceivers or short range radio transceivers.
  • Each device 105, 110, 120, 125, 130, 140 and 150 further includes a corresponding database which stores information, such as phone books, calendars, task lists, etc.
  • information stored at each device may be synchronized (e.g., changes made to entries or records in one database are also made to the other databases) so that each device contains the same information.
  • the synchronization procedure can be performed in either direction between the different devices 105, 110, 120, 125, 130, 140 and 150.
  • FIGURE 2 there is illustrated a block diagram of a traditional synchronization apparatus 200 capable of synchronizing parallel processors, such as, for example, the PDA 125 and the wireless handset 105 shown in FIGURE 1.
  • the exemplary synchronization apparatus 200 includes a first device 210 (e.g., PDA 125) having a synchronization (sync) engine 215 connected to and associated with a particular (sync engine) database 220.
  • a "sync engine” is preferably the software that performs the database synchronization function.
  • an apparatus that performs sync engine functions can also be considered as part of the sync engine 215.
  • the synchronization apparatus 200 also includes a second device 230 (e.g., wireless handset 105) having a database 240 that is to be synchronized, using a synchronization protocol 250, with the sync engine database 220.
  • the second device 230 further includes a change log 260 that is associated with the device database 240, and is preferably a log or register in which changes made to the device database 240 are temporarily stored.
  • Each entry in the change log 260 is associated with a certain act (e.g., add, delete, or modify) performed in the device database 240 and includes a Unique Identifier (UID) .
  • a UID is assigned to each entry in a database and is unique in that the UIDs are not reused within the same database .
  • the sync protocol 250 typically performs either a "slow” synchronization process or a "fast” synchronization process when synchronizing information between the sync engine database 220 and the device database 240. If at least one of the two databases 220 or 240 contains information when the first synchronization attempt is made, a "slow” synchronization process is performed.
  • the "slow" synchronization process is a procedure whereby all of the entries in one of the databases are compared with all of the entries in the associated database. Individual entries are then added, modified or deleted to synchronize the two databases 220 and 240.
  • a UID resolution table 270 is created (e.g., by the sync engine software) within the first device 210 when a "slow" synchronization process is performed.
  • Each entry in the UID resolution table 270 maps a one-to-one relationship between the UIDs of the two synchronized databases 220 and 240.
  • the UID resolution table 270 maps the association between a UID of database 220 and a UID of database 240 wherein each of the UIDs points to the same information located in the synchronized databases .
  • the "fast" synchronization process is performed if the change log 260 contains database changes since performing the last synchronization (e.g., the "slow” synchronization process) . As such, only the unsynchronized changes in the affected database have to be compared and transferred between the databases 230 and 240 during the "fast" synchronization process. Thus, the "fast" synchronization process is significantly faster than the "slow” synchronization process.
  • FIGURES 3a-3c and 4 there are illustrated a traditional problematic synchronization apparatus 300 and a traditional problematic synchronization method 400.
  • one significant problem with the traditional synchronization apparatus 300 and method 400 occurs when one of the databases (e.g., database 240) to be synchronized accesses information using a static index instead of a UID.
  • database 240 e.g., database 240
  • a detailed discussion is provided below describing how the use of a static index type database decreases the speed of the synchronization process.
  • the "slow" synchronization process (step 402) operates to synchronize databases 220 and 240 and operates to create the UID resolution table 270 (synchronous log) that maps UIDs to reflect the relationship between the records of the two synchronized databases 220 and 240.
  • the UID resolution table 270 maps the association between a UID (e.g., UID 34758) of database 220 and a UID
  • UID 4689401 UID 4689401 of database 240
  • each of these UIDs are associated with the same information (e.g., phone number 214 555-4707) located in the synchronized databases 220 and 240.
  • FIGURE 3b there is illustrated an exemplary state of the traditional problematic synchronous apparatus 300 prior to completing the "fast” synchronization process.
  • the "fast" synchronization process operates to compare and transfer the unsynchronized changes which occurred since performing the last synchronization procedure (e.g., the "slow” synchronization process) between databases 220 and 240.
  • the first device 210 operates to request (step 404) from the second device 230 a list of UIDs indicative of the changes that have occurred since the last synchronization process.
  • the list includes the UIDs (e.g., added UID 346950, deleted UID 4689401 and modified UID 164321) of the records (e.g., records 232a, 232b and 232c) within database 240 that have had unsynchronized changes to information stored therein since the last synchronization process.
  • the first device 210 using one of the received UIDs operates to request (step 406) that the information (e.g., phone number 214 555-4226) from the corresponding record (e.g., record 332a) be retrieved from the second device 230.
  • the second device 230 Upon receiving the request, the second device 230 operates to read (step 408) a UID (e.g., UID 269540) from any one of the records (e .g. , record 331 containing phone number 214 555-1296) .
  • the second device 230 then operates to compare (step 410) the read UID (e.g., UID 269540) with the requested UID (e.g., added UID 346950) .
  • the second device 230 operates to read (repeat step 408) another UID (e.g., added UID 346950) from one of the records (e.g., record 332a) and then operates to compare (repeat step 410) the read UID (e.g., UID 346950) and the requested UID (e.g., added UID 346950) until a match exists between the two UIDs.
  • another UID e.g., added UID 346950
  • the second device 230 After determining that a match exists, the second device 230 operates to forward (step 412) the information (e.g., phone number 214 555-4226) accessed from the located record (e.g., record 332a) to the first device 210.
  • the first device 210 then operates to store (step 414) the received information (e.g., phone number 214 555- 4226) in a record (e.g., record 322a) having a UID (e.g., UID 694321) .
  • the first device 210 operates to update (at step 416) the UID resolution table 270 to indicate the one-to-one relationship between UIDs (e.g., UID 694321 and UID 346950) .
  • FIGURE 3c where there is illustrated an exemplary state of the traditional problematic synchronization apparatus 300 after completing the "fast" synchronization process.
  • the reading and comparing operations associated with steps 408 and 410 are performed in the second device 230, because it uses a static index type database 240 which must access data using a static index instead of an UID. More specifically, since the first device 210 submits a UID (e.g., added UID 346950) to database 240 and not a static index (e.g., static index 1200), the database 240 must search for the given UID (e.g., UID 346950) using randomly selected static indices until there is a match between the UIDs. Thus, the additional operations of steps 408 and 410 effectively decrease the speed of the synchronization process between the first device 210 and the second device 230.
  • a UID e.g., added UID 346950
  • static index e.g., static index 1200
  • the synchronization apparatus includes a first device having a database and a second device having a static index type database.
  • the first device forwards a request containing a unique identifier (including a static index amended to a "true" unique identifier) to a second device.
  • the second device then directly accesses the information in a desired record by utilizing a static identifier extracted from the forwarded unique identifier. Thereafter, the second device forwards the accessed information to the first device so that the two devices can be synchronized to store the same information.
  • the first device 510 includes a processor 512 (synchronous engine) connected to and associated with a database 515 which, for purposes of this discussion, is configured as a UID type database. Again, the UID type database operates to access information from an entry using a UID.
  • the first device 510 may be configured as, for example, a wireless handset, a computer, a personal digital assistant, or a pager all of which can be used within the wireless communications system 100 shown in FIGURE 1.
  • the second device 520 includes a processor 522 connected to and associated with a static index type database 525 that operates to access information from an entry using a static index 532.
  • a static index type database is a mobile phone having a Subscriber Identity Module (SIM card) configured in accordance with the Global System for Mobile Communication (GSM) specification.
  • SIM card Subscriber Identity Module
  • GSM Global System for Mobile Communication
  • Other devices that may be configured like the second device 520 include, for example, a computer, a personal digital assistant, or a pager all of which can used within the wireless communications system 100 shown in FIGURE 1.
  • the second device 520 further includes a change log 530 that is associated with database 525, and is preferably a log or register in which changes made to database 525 are temporarily stored.
  • Each entry in the change log 530 is associated with a certain act (e.g., add, delete, or modify) performed on the database 525 and includes a Unique Identifier (UID) .
  • the static type index database 525 includes a static index 532 and a "true" UID 524 for each record 536 which can store information including, for example, phone books, calendars and task lists.
  • the preferred synchronization method 600 In synchronizing information between the first device 510 and the second device 520, the preferred synchronization method 600 typically performs a "slow" synchronization process and then a "fast” synchronization process.
  • the slow synchronization process (step 602) operates to synchronize the information in database 515 with the information in database 525 so that both databases 515 and 525 each contain the same information.
  • the "slow" synchronization process (step 602) operates to synchronize the information in databases 515 and 525 and operates to create a UID resolution table 540 (synchronous log located in the first device 510) that maps UIDs to reflect the relationship between the records of the two synchronized databases 515 and 525.
  • the UID resolution table 540 indicates the mapping between a UID (e.g., UID 34758) of database 515 and a UID (e.g., UID 12004689401) of database 525.
  • UIDs e.g., UID 34758 and UID 1200468940
  • UIDs are associated with the same information (e.g., phone number 214 555- 4707) located in the synchronized databases 515 and 525.
  • Each of the UIDs e.g., UID 131346239
  • database 525 includes a "true" UID (e.g., "true” UID 46239) that was amended to a static index (e.g., static index 1313) . This amending process is completed every time information is added, deleted or modified within a record 536 of database 525.
  • FIGURE 5b there is illustrated an exemplary state of the synchronization apparatus 500 prior to completing the "fast” synchronization process.
  • the "fast" synchronization process operates to compare and transfer the unsynchronized changes which occurred since performing the last synchronization procedure (e.g., the "slow” synchronization process) between databases 515 and 525.
  • the exemplary synchronization apparatus 500 shown in FIGURE 5b is used in describing how the "fast" synchronization process can occur between a first device 510 having a UID type database 515 and a second device 520 having a static index type database 525.
  • the first device 510 operates to request (step 604) from the second device 520 a list of UIDs indicative of the changes that have occurred since the last synchronization process.
  • the list includes the UIDs (e.g., added UID 1200346950, deleted UID 1203468940 and modified UID 1202164321) of the records (e.g., records 532a, 532b and 532c) within database 525 that have had unsynchronized changes to information stored therein since the last synchronization process .
  • the first device 510 using one of the received UIDs
  • the second device 520 operates to access (step 608) the desired record (e.g., record 532a) within database 525 by utilizing a static identifier (e.g., static identifier 1200) extracted from the received UID (e.g. , UID 1200346950) .
  • a static identifier e.g., static identifier 1200
  • the accessing operation (step 608) can be completed by directly locating the desired record (e.g., record 532a) within database 525 utilizing the extracted static identifier (e.g., static identifier 1200) .
  • the accessing procedure (step 608) can be completed by locating the "true" unique identifier (e.g., "true” UID 346950) of the desired record (e.g., record 532a) within database 525 utilizing the extracted static identifier (e.g., static identifier 1200).
  • the located "true” UID (e.g., "true” UID 346950) is then compared to a portion (static index removed) of the received UID (e.g., UID 346950) and if a match exists then the desired record (e.g., record 532a) is accessed. If no match exists, then an error has occurred. It should be understood that there is no iteration process as required in the traditional synchronization process 400 (see steps 408 and 410) when one performs the above-mentioned accessing operation (step 608) .
  • the second device 510 operates to forward (step 610) the information (e.g., phone number 214 555-4226) from the accessed record (e.g., record 532a) to the first device 510.
  • the first device 510 then operates to store (step 612) the received information (e.g., phone number 214 555- 4226) in a record (e.g., record 552a) having a UID (e.g., UID 694321) .
  • the first device 510 operates to update (step 614) the UID resolution table 540 to indicate the one-to-one relationship between UIDs (e.g., UID 694321 and UID 1200346950) of the synchronized databases 515 and 525.
  • This synchronization method 600 is continued until each change since the last synchronization process has been accounted for between databases 515 and 525. Reference is made to FIGURE 5c, where there is illustrated an exemplary state of the synchronization apparatus 500 after completing the "fast" synchronization process .
  • the present invention provides a synchronization apparatus and method that increases the speed of the synchronization process between a first device and a second device by directly accessing the information in a desired record.
  • the first device and the second device as disclosed can function within a wireless communications system configured in accordance with Bluetooth technology.

Abstract

A synchronization apparatus and method are provided that operate to increase the synchronization speed between a first processing device and a second processing device when at least one of the devices includes a static index type database. The synchronization apparatus includes a first device that forwards a request containing a unique identifier (including a static index amended to a 'true' unique identifier) to a second device which then directly accesses the information in a desired record by utilizing a static identifier extracted from the forwarded unique identifier. Thereafter, the second device forwards the accessed information to the first device so that the two devices can be synchronized to store the same information. The first device and the second device can be implemented in, for example, a wireless handset, a computer, a personal digital assistant or a pager.

Description

APPARATUS AND METHOD FOR INCREASING THE SYNCHRONIZATION SPEED BETWEEN A FIRST DEVICE AND A SECOND DEVICE
CROSS REFERENCE TO RELATED APPLICATIONS
This application is related to two U.S. Applications one of which was filed on October 27, 1999 under Application No. 09/427,909 and entitled "Protocol for Synchronizing Parallel Processors in a Mobile Communication System" (Attorney's Docket No. 34650-402) and the other was filed on October 27, 1999 under Application No. 09/427,910 and entitled "Optimization of Change Log Handling" (Attorney's Docket No. 34650-400) both of which are incorporated by reference herein.
BACKGROUND OF THE INVENTION
Technical Field of the Invention
The present invention relates in general to the field of communications, and in particular, to a method and apparatus capable of increasing the synchronization speed between a first device and a second device.
Description of Background and Related Art Today one of the most significant design challenges for the communications industry relates to the development of new technology or better ways of making wireless communication between portable devices economically feasible. In response to this need, the communications industry has developed a new technology for wireless connectivity known as Bluetooth technology. Bluetooth technology effectively eliminates the need for wires, cables and connectors for and between cordless or mobile phones, modems, headsets, personal digital assistants
(PDAs) , computers, printers, projectors, local area networks (LANs) , and so on, and paves the way for new and completely different devices and applications. The promoters of Bluetooth technology have also formed a Special Interest Group whose main purpose was to establish a Bluetooth standard.
Bluetooth technology enables, among other things, a synchronization process which allows the addition, modification or deletion of information in a first device (e.g., PDA) to also be added, modified or deleted within a second device (e.g., mobile phone) so that both devices contain the same information. This synchronization process has become easier and more convenient in view of Bluetooth technology which allows users to synchronize information between associated devices via a wireless interface .
However, one significant problem of the present synchronization process occurs in a situation where one of the devices to be synchronized includes a database that accesses information using a static index instead of using a unique identifier (UID) . The use of a static index type database decreases the speed of the synchronization process, because that database must first search for a relevant static index using a given UID and then locate the information using the searched for static index. Whereas, the UID type database does not decrease the speed of the synchronization process, because that database can directly access the information using UIDs and is not required to search for information using static indices (see below for a more detailed description about the problematic state-of-art) .
Of course, the additional search steps associated with using the static index type database effectively decrease the synchronization speed between the first device and the second device. Accordingly, there is a need for a method and apparatus that increases the speed of the synchronization process between a first device and a second device when one of the devices includes a database that accesses information using a static index. BRIEF DESCRIPTION OF THE INVENTION
The present invention is an synchronization apparatus and method that addresses the deficiencies of the prior art by increasing the speed of the synchronization process between a first device and a second device when at least one of the devices includes a static index type database. The synchronization apparatus includes a first device that forwards a request containing a unique identifier (including a static index amended to a "true" unique identifier) to a second device which then directly accesses the information in a desired record by utilizing a static identifier extracted from the forwarded unique identifier. Thereafter, the second device forwards the accessed information to the first device so that the two devices can be synchronized to store the same information. The first device and the second device can be implemented in, for example, a wireless handset, a computer, a personal digital assistant or a pager.
BRIEF DESCRIPTION OF THE DRAWINGS A more complete understanding of the method and apparatus of the present invention may be had by reference to the following detailed description when taken in conjunction with the accompanying drawings wherein:
FIGURE 1 (PRIOR ART) is a block diagram illustrating a conventional wireless communications system;
FIGURE 2 (PRIOR ART) is a block diagram of a traditional synchronization apparatus capable of synchronizing parallel processors, such as, for example, two of the conventional devices shown in FIGURE 1; FIGURES 3a-3c (PRIOR ART) are exemplary block diagrams of a traditional problematic synchronization apparatus ;
FIGURE 4 (PRIOR ART) is a flowchart illustrating the basic steps of a traditional problematic synchronization method; FIGURES 5a-5c are block diagrams illustrating an exemplary synchronization apparatus of the present invention; and
FIGURE 6 is a flowchart illustrating the basic steps of an exemplary synchronization method of the present invention.
DETAILED DESCRIPTION OF THE DRAWINGS
Referring to the Drawings, wherein like numerals represent like parts throughout FIGURES 1-6, there are disclosed an exemplary synchronization apparatus 500 and a preferred synchronization method 600 each of which is capable of increasing the synchronization speed between a first device 510 and a second device 520 in accordance with the present invention. Although the present invention is described with respect to the synchronization apparatus 500 having a pair of telecommunication devices 510 and 520, it should be understood that the present invention can be used with any type of processor that includes a static index type database. Accordingly, the exemplary synchronization apparatus 500 and the preferred synchronization method 600 described should not be construed in a limited manner.
In order to better describe the preferred embodiment of the present invention a brief description of a traditional wireless communications system 100 (FIGURE 1) and a traditional synchronization apparatus 200 (FIGURE 2) is provided first without referring to the specific types of databases that can be incorporated within the various telecommunication devices. Referring to FIGURE 1, there is illustrated a block diagram of a conventional wireless communications system 100 that can be representative of a communications system configured in accordance with the Bluetooth standard. The conventional wireless communications system 100 includes a device, such as a wireless handset 105, which is capable of communicating with one or more associated devices, such as another wireless handset 110, a personal computer (PC) 120, a personal digital assistant (PDA) 125, a pager 130, and a car cradle 150. Each of the associated devices 110, 120, 125, 130, and 150 may also communicate with one or more devices in addition to the wireless handset 105. For example, the personal computer 120 may communicate with the pager 120, and the pager 120 may further communicate with another pager 140. The devices depicted in FIGURE 1 preferably communicate with one another over a wireless interface 160 using, for example, infrared transceivers or short range radio transceivers.
Each device 105, 110, 120, 125, 130, 140 and 150 further includes a corresponding database which stores information, such as phone books, calendars, task lists, etc. By synchronizing the separate databases using an appropriate synchronization protocol, information stored at each device may be synchronized (e.g., changes made to entries or records in one database are also made to the other databases) so that each device contains the same information. It should be understood that the synchronization procedure can be performed in either direction between the different devices 105, 110, 120, 125, 130, 140 and 150. Referring to FIGURE 2, there is illustrated a block diagram of a traditional synchronization apparatus 200 capable of synchronizing parallel processors, such as, for example, the PDA 125 and the wireless handset 105 shown in FIGURE 1. The exemplary synchronization apparatus 200 includes a first device 210 (e.g., PDA 125) having a synchronization (sync) engine 215 connected to and associated with a particular (sync engine) database 220. In this context, a "sync engine" is preferably the software that performs the database synchronization function. However, an apparatus that performs sync engine functions can also be considered as part of the sync engine 215.
The synchronization apparatus 200 also includes a second device 230 (e.g., wireless handset 105) having a database 240 that is to be synchronized, using a synchronization protocol 250, with the sync engine database 220. The second device 230 further includes a change log 260 that is associated with the device database 240, and is preferably a log or register in which changes made to the device database 240 are temporarily stored. Each entry in the change log 260 is associated with a certain act (e.g., add, delete, or modify) performed in the device database 240 and includes a Unique Identifier (UID) . A UID is assigned to each entry in a database and is unique in that the UIDs are not reused within the same database .
The sync protocol 250 typically performs either a "slow" synchronization process or a "fast" synchronization process when synchronizing information between the sync engine database 220 and the device database 240. If at least one of the two databases 220 or 240 contains information when the first synchronization attempt is made, a "slow" synchronization process is performed. The "slow" synchronization process is a procedure whereby all of the entries in one of the databases are compared with all of the entries in the associated database. Individual entries are then added, modified or deleted to synchronize the two databases 220 and 240.
A UID resolution table 270 is created (e.g., by the sync engine software) within the first device 210 when a "slow" synchronization process is performed. Each entry in the UID resolution table 270 maps a one-to-one relationship between the UIDs of the two synchronized databases 220 and 240. In other words, the UID resolution table 270 maps the association between a UID of database 220 and a UID of database 240 wherein each of the UIDs points to the same information located in the synchronized databases .
The "fast" synchronization process is performed if the change log 260 contains database changes since performing the last synchronization (e.g., the "slow" synchronization process) . As such, only the unsynchronized changes in the affected database have to be compared and transferred between the databases 230 and 240 during the "fast" synchronization process. Thus, the "fast" synchronization process is significantly faster than the "slow" synchronization process.
Referring to FIGURES 3a-3c and 4, there are illustrated a traditional problematic synchronization apparatus 300 and a traditional problematic synchronization method 400. As described above, one significant problem with the traditional synchronization apparatus 300 and method 400 occurs when one of the databases (e.g., database 240) to be synchronized accesses information using a static index instead of a UID. A detailed discussion is provided below describing how the use of a static index type database decreases the speed of the synchronization process.
Referring to FIGURE 3a, there is illustrated an exemplary state of the traditional problematic synchronization apparatus 300 after completing the "slow" synchronization process. Again, the "slow" synchronization process (step 402) operates to synchronize databases 220 and 240 and operates to create the UID resolution table 270 (synchronous log) that maps UIDs to reflect the relationship between the records of the two synchronized databases 220 and 240. As an illustrative example, the UID resolution table 270 maps the association between a UID (e.g., UID 34758) of database 220 and a UID
(e.g., UID 4689401) of database 240, and each of these UIDs are associated with the same information (e.g., phone number 214 555-4707) located in the synchronized databases 220 and 240.
Referring to FIGURE 3b, there is illustrated an exemplary state of the traditional problematic synchronous apparatus 300 prior to completing the "fast" synchronization process. Again, the "fast" synchronization process operates to compare and transfer the unsynchronized changes which occurred since performing the last synchronization procedure (e.g., the "slow" synchronization process) between databases 220 and 240.
The "fast" synchronization process described below with respect to the traditional synchronization apparatus
300 takes place between a first device 210 having a UID type database 220 and a second device 230 having a static index type database 240. First, the first device 210 operates to request (step 404) from the second device 230 a list of UIDs indicative of the changes that have occurred since the last synchronization process. The list includes the UIDs (e.g., added UID 346950, deleted UID 4689401 and modified UID 164321) of the records (e.g., records 232a, 232b and 232c) within database 240 that have had unsynchronized changes to information stored therein since the last synchronization process.
The first device 210 using one of the received UIDs (e.g., added UID 346950) operates to request (step 406) that the information (e.g., phone number 214 555-4226) from the corresponding record (e.g., record 332a) be retrieved from the second device 230. Upon receiving the request, the second device 230 operates to read (step 408) a UID (e.g., UID 269540) from any one of the records (e .g. , record 331 containing phone number 214 555-1296) . The second device 230 then operates to compare (step 410) the read UID (e.g., UID 269540) with the requested UID (e.g., added UID 346950) . In the event the compared UIDs (e.g., UID 346590 and UID 269540) do not match, the second device 230 operates to read (repeat step 408) another UID (e.g., added UID 346950) from one of the records (e.g., record 332a) and then operates to compare (repeat step 410) the read UID (e.g., UID 346950) and the requested UID (e.g., added UID 346950) until a match exists between the two UIDs.
After determining that a match exists, the second device 230 operates to forward (step 412) the information (e.g., phone number 214 555-4226) accessed from the located record (e.g., record 332a) to the first device 210. The first device 210 then operates to store (step 414) the received information (e.g., phone number 214 555- 4226) in a record (e.g., record 322a) having a UID (e.g., UID 694321) . In addition, the first device 210 operates to update (at step 416) the UID resolution table 270 to indicate the one-to-one relationship between UIDs (e.g., UID 694321 and UID 346950) . This process is continued until each unsynchronized change since the last synchronization has been accounted for between databases 220 and 240. Reference is made to FIGURE 3c, where there is illustrated an exemplary state of the traditional problematic synchronization apparatus 300 after completing the "fast" synchronization process.
The reading and comparing operations associated with steps 408 and 410 are performed in the second device 230, because it uses a static index type database 240 which must access data using a static index instead of an UID. More specifically, since the first device 210 submits a UID (e.g., added UID 346950) to database 240 and not a static index (e.g., static index 1200), the database 240 must search for the given UID (e.g., UID 346950) using randomly selected static indices until there is a match between the UIDs. Thus, the additional operations of steps 408 and 410 effectively decrease the speed of the synchronization process between the first device 210 and the second device 230. Referring to FIGURES 5a-5c and 6, there are illustrated the exemplary synchronization apparatus 500 and preferred synchronization method 600 of the present invention. Generally, the synchronization apparatus includes a first device having a database and a second device having a static index type database. The first device forwards a request containing a unique identifier (including a static index amended to a "true" unique identifier) to a second device. The second device then directly accesses the information in a desired record by utilizing a static identifier extracted from the forwarded unique identifier. Thereafter, the second device forwards the accessed information to the first device so that the two devices can be synchronized to store the same information.
The first device 510 includes a processor 512 (synchronous engine) connected to and associated with a database 515 which, for purposes of this discussion, is configured as a UID type database. Again, the UID type database operates to access information from an entry using a UID. The first device 510 may be configured as, for example, a wireless handset, a computer, a personal digital assistant, or a pager all of which can be used within the wireless communications system 100 shown in FIGURE 1.
In contrast, the second device 520 includes a processor 522 connected to and associated with a static index type database 525 that operates to access information from an entry using a static index 532. An example of a device that includes a static index type database is a mobile phone having a Subscriber Identity Module (SIM card) configured in accordance with the Global System for Mobile Communication (GSM) specification. Other devices that may be configured like the second device 520 include, for example, a computer, a personal digital assistant, or a pager all of which can used within the wireless communications system 100 shown in FIGURE 1. The second device 520 further includes a change log 530 that is associated with database 525, and is preferably a log or register in which changes made to database 525 are temporarily stored. Each entry in the change log 530 is associated with a certain act (e.g., add, delete, or modify) performed on the database 525 and includes a Unique Identifier (UID) . In addition, the static type index database 525 includes a static index 532 and a "true" UID 524 for each record 536 which can store information including, for example, phone books, calendars and task lists.
In synchronizing information between the first device 510 and the second device 520, the preferred synchronization method 600 typically performs a "slow" synchronization process and then a "fast" synchronization process. The slow synchronization process (step 602) operates to synchronize the information in database 515 with the information in database 525 so that both databases 515 and 525 each contain the same information.
Referring to FIGURE 5a, there is illustrated an exemplary state of the synchronization apparatus 500 after completing the "slow" synchronization process . Again, the "slow" synchronization process (step 602) operates to synchronize the information in databases 515 and 525 and operates to create a UID resolution table 540 (synchronous log located in the first device 510) that maps UIDs to reflect the relationship between the records of the two synchronized databases 515 and 525. As an illustrative example, the UID resolution table 540 indicates the mapping between a UID (e.g., UID 34758) of database 515 and a UID (e.g., UID 12004689401) of database 525. These UIDs (e.g., UID 34758 and UID 1200468940) are associated with the same information (e.g., phone number 214 555- 4707) located in the synchronized databases 515 and 525. Each of the UIDs (e.g., UID 131346239) stored in the UID resolution table 540 and associated with database 525 includes a "true" UID (e.g., "true" UID 46239) that was amended to a static index (e.g., static index 1313) . This amending process is completed every time information is added, deleted or modified within a record 536 of database 525.
Referring to FIGURE 5b, there is illustrated an exemplary state of the synchronization apparatus 500 prior to completing the "fast" synchronization process. Again, the "fast" synchronization process operates to compare and transfer the unsynchronized changes which occurred since performing the last synchronization procedure (e.g., the "slow" synchronization process) between databases 515 and 525.
The exemplary synchronization apparatus 500 shown in FIGURE 5b is used in describing how the "fast" synchronization process can occur between a first device 510 having a UID type database 515 and a second device 520 having a static index type database 525. First, the first device 510 operates to request (step 604) from the second device 520 a list of UIDs indicative of the changes that have occurred since the last synchronization process. The list includes the UIDs (e.g., added UID 1200346950, deleted UID 1203468940 and modified UID 1202164321) of the records (e.g., records 532a, 532b and 532c) within database 525 that have had unsynchronized changes to information stored therein since the last synchronization process . The first device 510 using one of the received UIDs
(e.g., added UID 1200346950) operates to request (step 606) that the information (e.g., phone number 214 555- 4226) from the corresponding record (e.g., record 532a) be retrieved from the second device 520. Upon receiving the request, the second device 520 operates to access (step 608) the desired record (e.g., record 532a) within database 525 by utilizing a static identifier (e.g., static identifier 1200) extracted from the received UID (e.g. , UID 1200346950) .
More specifically, the accessing operation (step 608) can be completed by directly locating the desired record (e.g., record 532a) within database 525 utilizing the extracted static identifier (e.g., static identifier 1200) . Alternatively, the accessing procedure (step 608) can be completed by locating the "true" unique identifier (e.g., "true" UID 346950) of the desired record (e.g., record 532a) within database 525 utilizing the extracted static identifier (e.g., static identifier 1200). The located "true" UID (e.g., "true" UID 346950) is then compared to a portion (static index removed) of the received UID (e.g., UID 346950) and if a match exists then the desired record (e.g., record 532a) is accessed. If no match exists, then an error has occurred. It should be understood that there is no iteration process as required in the traditional synchronization process 400 (see steps 408 and 410) when one performs the above-mentioned accessing operation (step 608) .
The second device 510 operates to forward (step 610) the information (e.g., phone number 214 555-4226) from the accessed record (e.g., record 532a) to the first device 510. The first device 510 then operates to store (step 612) the received information (e.g., phone number 214 555- 4226) in a record (e.g., record 552a) having a UID (e.g., UID 694321) . In addition, the first device 510 operates to update (step 614) the UID resolution table 540 to indicate the one-to-one relationship between UIDs (e.g., UID 694321 and UID 1200346950) of the synchronized databases 515 and 525. This synchronization method 600 is continued until each change since the last synchronization process has been accounted for between databases 515 and 525. Reference is made to FIGURE 5c, where there is illustrated an exemplary state of the synchronization apparatus 500 after completing the "fast" synchronization process .
From the foregoing, it can be readily appreciated by those skilled in the art that the present invention provides a synchronization apparatus and method that increases the speed of the synchronization process between a first device and a second device by directly accessing the information in a desired record. Also, the first device and the second device as disclosed can function within a wireless communications system configured in accordance with Bluetooth technology.
Although one embodiment of the synchronization apparatus and method of the present invention has been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it will be understood that the invention is not limited to the embodiment disclosed, but is capable of numerous rearrangements, modifications and substitutions without departing from the spirit of the invention as set forth and defined by the following.

Claims

WHAT IS CLAIMED IS:
1. A method for increasing the synchronization speed between a first device and a second device, said method comprising the steps of : said second device receiving a request including a unique identifier from said first device; accessing a record within a database of said second device utilizing a static identifier extracted from the received unique identifier; forwarding information from the accessed record to said first device; and updating a database of said first device using the forwarded information.
2. The method of Claim 1, further comprising the step of updating a table of the second device with the unique identifier of the record.
3. The method of Claim 1, wherein said step of accessing further includes the steps of : locating a true unique identifier of the record within the database of said second device utilizing the extracted static identifier; and comparing the located true unique identifier with a portion of the unique identifier and, if a match exists, then retrieving the information from the record.
4. The method of Claim 1, wherein said first device and said second device each include a telecommunications device .
5. A synchronization apparatus comprising: a first device capable of forwarding a request including a unique identifier to a second device; said second device capable of accessing information from a record within a database of said second device utilizing a static identifier extracted from the forwarded unique identifier; and said first device capable of receiving the accessed information from said second device and capable of updating a database of said first device with the received information so as to synchronize the database of said first device with the database of said second device.
6. The synchronization apparatus of Claim 5, wherein said second device further includes a table configured to store the unique identifier of the record.
7. The synchronization apparatus of Claim 5, wherein said second device is capable of locating true unique identifier of the record within the database of said second device utilizing the extracted static identifier, and further capable of comparing the located true unique identifier with a portion of the unique identifier and if a match exists then retrieving the information from the record.
8. The synchronization apparatus of Claim 5, wherein said first device and said second device each include a telecommunications device.
9. A telecommunications device, comprising: a database; and a processor capable of accessing a record within said database utilizing a static identifier extracted from a unique identifier, said processor further capable of forwarding information from the accessed record to a remote telecommunications device so as to synchronize said telecommunications device and said remote telecommunications device.
10. The telecommunications device of Claim 9, wherein said processor is capable of locating a true unique identifier of the record within said database utilizing the extracted static identifier, and further capable of comparing the located true unique identifier with a portion of the unique identifier and if a match exists then retrieving the information from the record.
11. The telecommunications device of Claim 9, is configured as either a wireless handset, a computer, a personal digital assistant or a pager.
12. A telecommunications device, comprising: a database; and a processor capable of forwarding a unique identifier to a remote telecommunications device capable of accessing information within a record utilizing a static identifier extracted from the forwarded unique identifier, said processor further capable of receiving the accessed information from the remote telecommunications device and capable of updating said database with the received information in order to synchronize said telecommunications device and said remote telecommunications device.
13. The telecommunications device of Claim 12, wherein said processor further includes a table configured to store the unique identifier of the record.
14. The telecommunications device of Claim 12, wherein said processor further includes a synchronous engine .
15. The telecommunications device of Claim 12, is configured as either a wireless handset, a computer, a personal digital assistant or a pager.
16. A method of synchronizing a first device and a second device, said method comprising the steps of: assigning a unique identifier to a record within said second device, said step of assigning further including : amending a static identifier to a true unique identifier, said static identifier and said true unique identifier forming the unique identifier; forwarding the assigned unique identifier to said first device; forwarding the forwarded unique identifier to said second device; extracting the static identifier from the unique identifier; locating the true unique identifier of the record within said second device utilizing the extracted static identifier; and comparing the located true unique identifier with a portion of the unique identifier, and if a match exists, then retrieving information from the record.
17. The method of Claim 16, wherein said first device and said second device each include a telecommunications device.
PCT/EP2000/011160 1999-11-12 2000-11-10 Apparatus and method for increasing the synchronization speed between a first device and a second device WO2001037092A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU26665/01A AU2666501A (en) 1999-11-12 2000-11-10 Apparatus and method for increasing the synchronization speed between a first device and a second device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US43972799A 1999-11-12 1999-11-12
US09/439,727 1999-11-12

Publications (1)

Publication Number Publication Date
WO2001037092A1 true WO2001037092A1 (en) 2001-05-25

Family

ID=23745881

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2000/011160 WO2001037092A1 (en) 1999-11-12 2000-11-10 Apparatus and method for increasing the synchronization speed between a first device and a second device

Country Status (2)

Country Link
AU (1) AU2666501A (en)
WO (1) WO2001037092A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1288796A2 (en) * 2001-08-15 2003-03-05 ITI, Inc. Synchronization of plural databases in a database replication system
US7376697B2 (en) 2001-11-12 2008-05-20 Nokia Corporation Arrangement of data synchronization in a telecommunications system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701423A (en) * 1992-04-10 1997-12-23 Puma Technology, Inc. Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
WO1999045451A2 (en) * 1998-03-03 1999-09-10 Puma Technology, Inc. Remote data access and synchronization

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5701423A (en) * 1992-04-10 1997-12-23 Puma Technology, Inc. Method for mapping, translating, and dynamically reconciling data between disparate computer platforms
WO1999045451A2 (en) * 1998-03-03 1999-09-10 Puma Technology, Inc. Remote data access and synchronization

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1288796A2 (en) * 2001-08-15 2003-03-05 ITI, Inc. Synchronization of plural databases in a database replication system
EP1288796A3 (en) * 2001-08-15 2006-06-07 Gravic, Inc. Synchronization of plural databases in a database replication system
US7321904B2 (en) 2001-08-15 2008-01-22 Gravic, Inc. Synchronization of a target database with a source database during database replication
US7853561B2 (en) 2001-08-15 2010-12-14 Gravic, Inc. Synchronization of plural databases in a database replication system with simultaneous synchronization and replication
US7882062B2 (en) 2001-08-15 2011-02-01 Gravic, Inc. Synchronization of plural databases in a database replication system when replication is slower than the synchronization process
US7376697B2 (en) 2001-11-12 2008-05-20 Nokia Corporation Arrangement of data synchronization in a telecommunications system

Also Published As

Publication number Publication date
AU2666501A (en) 2001-05-30

Similar Documents

Publication Publication Date Title
US6968209B1 (en) Method and apparatus for synchronizing databases in portable communication devices
KR100703732B1 (en) Method and apparatus for improving data processing ratio by storing record information of identification module
US20100144272A1 (en) System and method for locating and accessing wireless resources
KR100799674B1 (en) Method for registration and display web page in portable terminal
US20040131173A1 (en) Remote management of an external phonebook
JP2000188785A5 (en)
US6976038B2 (en) Method and apparatus for real time creation and modification of a change log for multi-server synchronization
EP1860863A1 (en) Information processing device having security function
CN105939355A (en) Data access method and system, as well as client and server
US7366840B2 (en) Method for processing data, a data processing system and a portable terminal with data processing capability
JP5209281B2 (en) Communication terminal device, access control method, IC card
KR20130023490A (en) System and method for synchronizing applications
KR102037556B1 (en) Method and device for upgrading telephone number in wireless terminal self-adaptive network upgrade
WO2001037092A1 (en) Apparatus and method for increasing the synchronization speed between a first device and a second device
KR100553652B1 (en) Connection information management system for managing connection information used in communications between ic cards
KR20020014888A (en) Method for synchronizing an address book between mobile phone and personal information management server
JPH06290090A (en) Remote file accessing system
KR20030095353A (en) Connection information management system for managing connection information used in communications between ic cards
CN112188591B (en) Network access method, device, computer equipment and storage medium
JPS63289657A (en) Common file access system
JP2988442B2 (en) Home location register and subscriber data management method for mobile communication system
CN102761656A (en) Method and device for updating address book in communication equipment
KR100434064B1 (en) Synchronization apparatus for personal infomation management system between from information terminals and synchronization method thereof
JP2004078664A (en) Dictionary registration system and its terminal device
CN110012086B (en) Method, terminal and storage medium for improving application downloading and installation speed

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ CZ DE DE DK DK DM DZ EE EE ES FI FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

122 Ep: pct application non-entry in european phase
DPE2 Request for preliminary examination filed before expiration of 19th month from priority date (pct application filed from 20040101)