The present invention relates to synchronization of information between clients and servers, more particularly so to a system and a method for bidirectional synchronisation of information between two devices, a first device and a second device where the synchronisation is limited to exchange of modified data and the request for synchronization can be initiated by any of the two devices.
In today's mobile telephone applications different kinds of information may be stored and manipulated. Examples of this are pictures, music, video, calendar information and contact registers. It is also the case that information can be coupled by relating different information entities to each other. A typical example of the latter is by relating contacts from the contact register to a meeting because they are going to participate to that meeting. Further it is known to relate pictures to phone numbers or to relate a particular melody to one or more particular numbers.
Synchronization is the process of keeping information residing in different system consistent that is to update information there between. Synchronization of information on mobile devices, or any other device is performed due to a number of reasons:
Keeps Each System with Information that is up to Date
Reduces Network Data Flow
Faster Response Time
Reliable Data
There exist a number of synchronization protocols today. The most common ones are:
Palm HotSync Protocol
When synchronizing information with references on a mobile device, e.g. meetings that have references to contact items, only calendar information (meeting information) is handled and not the contact registers. In other words if an item within a first category is updated and this item makes reference to further updated other categories, then when synchronizing the first category no synchronization will be carried out with respect to the other categories unless explicitly requested by a user.
This might cause consistency problems on a synchronization server because the meeting will have open references to contacts that are not present on the server. Other cases where this problem might occur are by coupling images and sound, video and text, contacts and pictures, etc.
One may avoid the problems by performing a full synchronization of all categories one at a time where all the data items in one device that is to be synchronized with another device are compared with each other field-by-field (category to category). However this solution is time-consuming as long as all of the databases that have been set up for synchronisation must be synchronised, hence generating a lot of unnecessary data traffic.
Thus there is a need to check whether synchronization must be performed on other information entities than explicitly requested as a result of synchronizing an information entity with references. The decision to synchronize related information entities or not will be taken based on their status (new, updated or deleted).
The advantages of the invention are quite obvious. If there exist references between different item types on a client device prior to synchronization, the references will be maintained on the synchronization server after synchronization has been performed, e.g. both the calendar item and its related participants has been synchronized and are present on the synchronization server.
Further, traffic will be reduced as long as there rarely will be any need to perform a full synchronization, where all the databases that are set up for synchronisation is synchronised, between two or more devices.
Other advantageous effects will be apparent by the accompanying dependent claims and particularly so by a method for bidirectional synchronisation of information between two devices, a first device and a second device where the synchronisation is limited to exchange of modified data and the request for synchronization can be initiated by any of the two devices where the method comprises the steps of:
In the following is a short description of the drawings accompanying the present invention.
In the following a detailed description of the present invention will be disclosed with reference to the accompanying drawings.
The drawings are included herewith so as to ease the understanding of the present invention and they are not intended to define the scope of the protection for the present invention.
Wherever in the following where the wording mobile phone is used it is to be understood that mobile phone can be substituted with any device adapted to synchronize information stored internally with another device having the same capabilities.
Such devices can be any of the following: a mobile telephone, a smartphone, a PDA, a laptop computer, a computer, a MP-3 player, or a multimedia player.
Wherever in the following where the wording server is used it is to be understood that server can be substituted with any device adapted to synchronize information with another device having the same capabilities. The use of server is merely intended to ease the readability of the specification.
A server can be any computer, being handheld, a desktop, a laptop, a traditional network server an application server or even devices considered to be peripherals.
The use of the client server terminology is used so as to ease readability, and the generic principle of the invention disclosed herewith should not be affected by this use.
This invention disclosure will be targeted towards the SyncML protocol as it is the most open and commonly used synchronization protocol on mobile devices. However, the invention has a generic approach and will be applicable for other synchronization protocols as well.
In the following are embodiments of equal value disclosed by way of example.
There are two roles within a SyncML synchronization system, as shown in and further explained in the sections underneath.
A SyncML Client contains a sync client agent that sends first its modifications to a SyncML server. It must be able to receive responses from server. This is typically a mobile phone, PC, PDA or another device adapted to initiate synchronisation. In a grid network with many nodes maintaining consistent data, a node could be a combined client and server responding to nodes as a server and requesting data from nodes as a server. In such setting the client could also typically be a sensor device.
The present invention does not target any specific synchronization protocol but for convenience we bring a short overview of the SyncML protocol in this section.
The SyncML specification [OMA SyncML] defines seven different sync types. These are listed below in Table 1.
Table 1: SyncML sync types
Synchronization Phases
Synchronization runs through two phases [OMA SyncML]:
1. Sync initialization
2. Synchronization
Sync Initialization
Sync initialization has three purposes [OMA SyncML]:
Synchronization
This is the phase when the synchronization procedure is carried out. Two-way sync (fast sync i.e. incremental synchronisation) is a normal synchronization type in which the client and the server are required to exchange information about modified data in these devices. For this type of synchronisation the client is always the device that first sends the modifications. According to the information from the client, the server processes the synchronization request, and the data from the client is compared and unified with the data in the server. Then, the server sends its modified data to the client device, which is then able to update its database with the data from the server. shows the sequence of a client-initiated two-way synchronization, and table 2 explains the packages sent.
Table 2: Description of the Sync Packages
Other sync types described in table 1 are also possible after the initialization phase, but two-way sync is the most common synchronization procedure, and hence used for exemplification herein.
A typical scenario that discloses the advantages achieved by the present invention is given in the following.
In this exemplified embodiment we will look into the process of synchronizing information entities that holds references to other entities.
If we bring the synchronization server into the picture we see in
In this embodiment a use case disclosing synchronisation of related information on both client and server side is shown.
We will examine the situation when an information item has a reference to an element that has been updated on the server.
In this case the synchronization process will take place in two rounds/steps. In the first round/step, the client will take initiative to synchronize the calendar item. The situation will then be as depicted in
A first person is invited to a meeting with another person or with other persons; the first person is carrying with him a mobile telephone adapted for PIM synchronization. At the end of the meeting the participants agrees to have a videoconference as a follow up of the present meeting. Contact information is chaired among the participants. The first person is responsible to initiate the scheduled videoconference, thus he adds the time and date of the upcoming videoconference on his mobile telephone, further he is adding updated contact information regarding the participants going to participate in the scheduled conference. One of the parties invited to the videoconference has changed the phone number to his video conference facilities, thus the first person is particularly taking care to notice the new phone number into his mobile phone.
Back at his office the first person is performing a calendar synchronisation with his personal computer, so as to update the upcoming meeting schedules.
At the time of the scheduled videoconference all the participants are invited by being called by the first person; however it is impossible to get in touch with the participant having changed his phone number.
The present invention is overcoming such problems as the one indicated above by its feature of a smart two-way sync (fast sync, incremental sync). Using the smart two-way sync according to the present invention will result in that all items that makes cross-references to other categories of items not explicitly requested to be synchronized will be synchronised provided the cross-referenced item has been updated since the last time this category of items where updated. In other words in this particular case the new phone number would have been added to the first persons computer thus avoiding the embarrassing situation of not calling all invited participants to the videoconference.
In this example the first person is carrying with him a mobile phone, however any device adapted for synchronisation with another device could have served as an example.
According to the invention there are two possible scenarios when synchronisation of referenced items occur, the first includes updating a synchronisation anchor the second does not. A synchronisation anchor is used as a time stamp for a last update of a database with items/categories such as calendars, contacts etc. The first method is characterised in that when one or more referred items are to be synchronized, one will synchronise a whole database associated with information items with one or more references, hence one can update the synchronization anchor associated with the whole database associated with the one or more referred items.
Alternatively one can update said one or more referred items, and set the present time stamp for the synchronization anchor to a time stamp equal to a time stamp associated with a previous full synchronization of the associated database, or one can in the latter alternative leave the synchronization anchor “untouched”.
Synchronization Decision Algorithm
The SyncML protocol describes the message sequences performed during the synchronization process. The present invention does not deal with the SyncML protocol as such but rather the decisions that must be carried out on the client and server to decide which items that needs to be synchronized.
In order to decide which items that must be synchronized to maintain updated references an algorithm has been developed. A flow diagram for the synchronization process is shown in
| Number | Date | Country | Kind |
|---|---|---|---|
| 20052719 | Jun 2005 | NO | national |
| Filing Document | Filing Date | Country | Kind | 371c Date |
|---|---|---|---|---|
| PCT/NO06/00022 | 1/16/2006 | WO | 00 | 12/6/2007 |