METHOD AND APPARATUS FOR SYNCHRONIZING A DATABASE IN PORTABLE COMMUNICATION DEVICES

Abstract: A method for tracking changes to a database stored in a SIM card of a mobile station, the method comprising the steps of: providing, in a memory of said mobile station and on said SIM card, a checksum storage area for checksums associated with said database; making a change to said database; comparing checksums stored in said memory and on said SIM card; calculating, after said change, a modified checksum based on said database; and storing said modified checksum in said memory and on said SIM card.

Description: METHOD AND APPARATUS FOR SYNCHRONIZING A DATABASE IN PORTABLE COMMUNICATION DEVICES BACKGROUND The present invention relates generally to communications systems and, in particular, to techniques which provide for synchronizing a database, e.g., a database containing a phonebook stored in a subscriber identity module (SIM) of a mobile station used in a cellular radiocommunication system. The cellular telephone industry has made phenomenal strides in commercial operations in the United States as well as the rest of the world. Growth in major metropolitan areas has far exceeded expectations and is rapidly outstripping system capacity. If this trend continues, the effects of this industry's growth will soon reach even the smallest markets. Innovative solutions are required to meet these increasing capacity needs as well as maintain high quality service and avoid rising prices. One recognized trend is the convergence of the so-called information industry , as symbolized by the evolution of the personal computer (PC), and the so-called communications industry, as symbolized by the evolution of the mobile phone. Both types of devices are characterized by rapidly increasing performance (hardware) and by increased application (software) capabilities. In the near future, it is likely that mobile phones will communicate more directly with other information devices, such as the PC, to exchange information. Many subscribers of wireless services also own personal computers and, as each type of device gets more sophisticated in its data handling capability, may wish to exchange data therebetween, e.g., to synchronize databases (such as phonebooks), stored in each device. Consider the example illustrated in Figure 1. Therein, a PC 10 and a mobile phone 20 are linked together via communication link 30. It will be appreciated by those skilled in the art that while a PC and mobile phone are used as examples of two devices between which database synchronization may be performed that the present invention is not limited to these two types of devices and may, in fact be applied to database synchronization between any two types of devices e.g., electronic organizers, pagers, etc. The PC 10 includes a database 40, e.g., containing phone records, while the mobile phone 20 includes a corresponding database stored on its subscriber identity module (SEM) card 50. As will be appreciated by those skilled in the radiocommunication arts, the SIM card is a removable smart card that was created for the GSM radiocommunication standard as a mechanism to conveniently group and store information elements related to the mobile subscriber in a removable manner, which card is insertably removable from mobile phones. Conventionally, to synchronize the database 40 and the database stored on SIM card 50, it was necessary to individually compare each record in each database. For example, the database of phonebook records stored in SIM card 50 could be transmitted to PC 10 via link 30. Then, the records in each database could be compared and updated such that the two databases mirrored one another. Changes to the database stored in the SIM card 50, e.g., associated with records found in the database 40 but not found in the version of the database transmitted from the mobile phone 20 to the PC 10, could then be relayed back to the mobile phone 20 to update the SLM card's phonebook. This synchronization process is complicated and time coiisurning. To address this problem, a change log can be added to the devices as shown in Figure 2. The change log contains information regarding records which have been modified in either database subsequent to synchronization therebetween. For example, if a phone record is added to database 40 in PC 10 subsequent to it being synchronized with mobile phone 20, then an indication of such will be found in change log 200. Likewise, if the subscriber associated with mobile phone 20 (and SIM card 50) deletes a record in his or her phonebook, then this change will be reflected in change log 205. Using change logs 200 and 205 is advantageous during synchronization since only those records which have been modified, added or deleted (as recorded in the change log) since the last synchronization update need to be transmitted between the devices. Thus, the synchronization process may be performed more rapidly. Unfortunately, although this improves the synchronization process, adding the change logs introduces another problem. Since memory on the SLM card 50 is limited, it is likely that the change log will be stored in another memory device in the mobile phone 20, e.g., local RAM (not shown), rather than on the SIM card 50 itself, as is the database. This may be problematic when the SIM card 50 is transferred to another mobile phone as depicted in Figure 3. In this example, consider that SIM card 50 has been transferred from mobile phone 20 to mobile phone 300, e.g., the subscriber of mobile phone 20 has borrowed mobile phone 300. Then, the subscriber makes a change to his or her phonebook while using mobile phone 300. This change is reflected in change log 305, but not in change log 210. After re-installing SIM card 50 into mobile phone 20, the subscriber initiates the synchronization process, however since change log 210 does not include the change or changes made to the database in the SEM card 50, the PC cannot be updated with those changes. Accordingly, it would be desirable to provide techniques and apparatuses which enable the usage of change logs for synchronizing databases, but also accommodate the portability of SEM cards and the like, SUMMARY These and other drawbacks of conventional techniques are overcome according to exemplary embodiments of the present invention, wherein a checksum is calculated on a database stored in a SIM card. This checksum can be stored in the mobile phone, e.g., with the change log. When synchronization between devices is to be performed, another checksum can be calculated on the database stored in the SIM card. If the stored checksum does not match the calculated checksum, then a change has occurred in the contents of the database that is not reflected in the change log. Accordingly, a full synchronization process can be performed wherein the database records in each device can be compared. If, on the other hand, the checksums match, then the change log accurately reflects any changes made to the database stored in the SIM card and the synchronization process can proceed more expediently using the change log. In this way changes made to the database stored in the SIM card can be accommodated during synchronization regardless of whether the SLM card has been moved to another device and updated while used in the other device. According to another exemplary embodiment of the present invention, phonebook records stored in a SIM database can be enhanced to provide for efficient synchronization. For example, a phonebook identifier (PID) can be stored in a predefined field in the SEM card. The PLD can be used to determine whether the phonebook is the same or different than the phonebook which was previously synchronized with another device, e.g., a PC. A user identifier (UID) field can also be added for each record in the phonebook. The UID is used to detect record changes and also to identify a latest version of each record. BRIEF DESCRIPTION OF THE DRAWINGS The above objects and features of the present invention will be more apparent from the following description of the exemplary embodiments with reference to the accompanying drawings, wherein: Figure 1 illustrates a conventional technique for synchronizing databases between devices; Figure 2 illustrates a modification of the technique and system of Figure 1 , wherein change logs are introduced into each device for synchronizing the database; Figure 3 depicts the problem associated with using change logs when a SIM card is moved between devices; and Figure 4 depicts a flowchart depicting an exemplary method according to the present invention. DETAILED DESCRIPTION The following description is written in terms of a cellular radiotelephone system, but it will be understood that Applicants' invention is not limited to that environment. More specifically, the following description is written using terms which may be associated with GSM compliant systems, e.g., "SIM card", but it will be understood by those skilled in the art that the present invention may be implemented in other communication/information handling applications including those which are designed in accordance with other standards, e.g., IS-95 or PDC, as well as those which use other access methodologies, e.g., CDMA. As mentioned above, the present invention finds particular application to the synchronization of a database between devices wherein at least one of the devices has a removable SIM card, e.g., a mobile phone. Those skilled in the art will be familiar with details regarding SIM cards per se, which details are, therefore, not repeated here. However, the interested reader is referred to the document entitled "Specification of the Subscriber Identity Module-Mobile Equipment (SIM-ME) Interface" , GSM 11.11 , Version 4.10.0, dated January 21, 1994, the disclosure of which is incorporated here by reference, for a discussion of SIM card specifications. According to one exemplary embodiment of the present invention, a checksum is calculated using the values of the records of the database stored in the SIM card. The calculation of checksums per se is well known in the art and any known type of checksum calculation can be employed, for example a cyclic redundancy check known as CRC-16 can be used over the entire database. When the database is modified, e.g., a record is added deleted or modified, a new checksum is calculated. The checksum (e.g., 2 bytes/phonebook) will, therefore, change whenever the database is modified. This mechanism can be used to aid in tracking changes to the database stored in the SLM card even when the SLM card is moved between different mobile phones. Consider once again the situation illustrated in Figure 3. When the SIM card 50 initially resides in mobile phone 20, the database stored thereon will have a first checksum associated therewith. This first checksum can be stored in another memory location in the mobile phone, e.g. , with the change log 210. If the SIM card 50 is then inserted into the mobile phone 300, and the database is modified, a second checksum will be calculated and stored on the SEM card 50. The second checksum will be different than the first checksum due to the change(s) in the database. When the SEM card 50 is subsequently re-inserted into the mobile phone 20, the mobile phone 20 will detect the mismatch between the first checksum stored in its memory and the second checksum stored in the SEM card 50. The mobile phone 20 will then know that the database stored on the SIM card 50 has been changed and can use this information in any desired manner to aid in synchronizing the databases, e.g., setting a flag indicating that a full synchronization process is needed. As one example of the manner in which checksums can be used to enhance database synchronization according to the present invention, consider the flowchart of Figure 4. This process may be initiated whenever a change is made to the database in the SIM card 50. Therein, at step 400, the checksums stored in the mobile phone 20 and the SEM card 50 are compared to deteπnine whether the database stored in the SEM card 50 has been changed since the change log 210 was last updated. As discussed above, this can occur if the SIM card 50 is used in another device and the database, e.g., phonebook , is modified. If the checksums don't match, then the process moves on to block 410 wherein the change log is flagged as invalid. This means that, for example, when synchronization is performed between the devices a full synchronization will need to be done since the change log does not reflect all of the changes which have been made to the database. Alternatively, the mobile phone 20 may rebuild the change log 210 by determining what changes have been made that are not reflected by the change log 210, If, on the other hand, the comparison in step 400 indicates a match, then the mobile phone knows that its change log is valid. Thus, at step 420, a new checksum is calculated using the modified database. The new checksum is then stored at block 430 in both the SIM card 50 and the memory of the mobile phone 20. This process can be repeated whenever changes are made to the database. According to another exemplary embodiment of the present invention, phonebook records stored in a SEM database can be enhanced to provide for efficient synchronization. For example, a phonebook identifier (PID) can be stored in a predefined field in the SEM card. The PID (e.g. , 4 bytes per phonebook) can be used to determine whether the phonebook is the same or different than the phonebook which was previously synchronized with another device, e.g., a PC. A user identifier (UID) field can also be added for each record in the phonebook. The UID (e.g., 2 bytes/record) is used to detect record changes and also to identify a latest version of each record. In order to avoid iumiing out of available UED values, the PLD can be used as (effectively) higher order UID bits. When needed additional PID values can be added for the SIM card to provide additional UED values. While the present invention has been described with respect to certain exemplary embodiments, one skilled in the art will appreciate that the invention would equally apply to other such var systems. For example, those skilled in the art will appreciate that there are many ways in which checksums can be used to address the problem associated with change logs and database synchronization described above and that the present invention is intended to encompass embodiments in addition to those illustrative embodiments described herein. Many variants and combinations of the techniques taught above may be devised by a person skilled in the art without departing from the spirit or scope of the invention as described by the following claims.

Claims: WHAT IS CLAIMED IS: 1. A method for tracking changes to a database stored in a SIM card of a mobile station, the method comprising the steps of: providing, in a memory of said mobile station and on said SLM card, a checksum storage area for checksums associated with said database; making a change to said database; comparing checksums stored in said memory and on said SIM card; calculating, after said change, a modified checksum based on said database; and storing said modified checksum in said memory and on said SIM card. 2. A method for tracking changes to a phonebook stored in a mobile station comprising the steps of: calculating a checksum associated with said phonebook; storing said checksum in said mobile station in at least two different memory locations. 3. The method of claim 2, wherein one of said at least two memory locations is on a SLM card. 4. A mobile station comprising: a memory; a SIM card including a database; and a processor for calculating checksums associated with said database and storing said checksum in at least one of said memory and said SIM card. 5. The mobile station of claim 4, wherein said database has records including a PID field and UID field.

Inventors: AHLGREN KRISTINA, BIRKLER JOERGEN, GUSTAVSSON CARL, NOVAK LARS, AHLGREN, KRISTINA, BIRKLER, JOERGEN, GUSTAVSSON, CARL, NOVAK, LARS
Applicants: ERICSSON TELEFON AB L M, TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Application year: 2000
Main classification: H04M1
IPC codes: G06F21, G06K19, H04L29, H04M1