US20040044799A1 - Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process - Google Patents

Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process Download PDF

Info

Publication number
US20040044799A1
US20040044799A1 US10/236,010 US23601002A US2004044799A1 US 20040044799 A1 US20040044799 A1 US 20040044799A1 US 23601002 A US23601002 A US 23601002A US 2004044799 A1 US2004044799 A1 US 2004044799A1
Authority
US
United States
Prior art keywords
data
synchronization
update identifier
synchronizing
value
Prior art date
Legal status (The legal status 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 status listed.)
Abandoned
Application number
US10/236,010
Inventor
Ganesh Sivaraman
Riku Mettala
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nokia Oyj
Original Assignee
Nokia Oyj
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 Nokia Oyj filed Critical Nokia Oyj
Priority to US10/236,010 priority Critical patent/US20040044799A1/en
Priority to US10/291,192 priority patent/US9792343B2/en
Assigned to NOKIA CORPORATION reassignment NOKIA CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: METTALA, RIKU, SIVARAMAN, GANESH
Priority to MYPI20033311 priority patent/MY146705A/en
Priority to CA002497525A priority patent/CA2497525A1/en
Priority to EP03793961A priority patent/EP1540503A4/en
Priority to PCT/IB2003/003737 priority patent/WO2004023233A2/en
Priority to AU2003255972A priority patent/AU2003255972A1/en
Priority to JP2004533728A priority patent/JP4494970B2/en
Priority to EP20080104710 priority patent/EP1980954A1/en
Priority to KR1020057003718A priority patent/KR100728076B1/en
Priority to MXPA05002408A priority patent/MXPA05002408A/en
Priority to CN038249065A priority patent/CN1708755B/en
Priority to TW092124270A priority patent/TWI231426B/en
Publication of US20040044799A1 publication Critical patent/US20040044799A1/en
Priority to EGNA2005000037 priority patent/EG23768A/en
Priority to JP2009014610A priority patent/JP4829316B2/en
Abandoned legal-status Critical Current

Links

Images

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
    • G06F16/273Asynchronous replication or reconciliation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/12Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/50Service provisioning or reconfiguring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/06Authentication
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y04INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
    • Y04SSYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
    • Y04S40/00Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
    • Y04S40/20Information technology specific aspects, e.g. CAD, simulation, modelling, system security

Definitions

  • the present invention relates to a method and a device, respectively, for synchronizing of data between a synchronizing client device and a synchronizing server device and further to the respective synchronizing devices. More particular, the present invention relates to a method and a device for synchronizing of data, respectively, allowing for improved handling of an interruption of an active synchronization process.
  • the synchronization of data is a well known concept or technique for users, respectively, having at least two different electronic devices in use and processing the same kind of data with these electronic devices.
  • synchronization takes place between a terminal device (e.g., a mobile phone) and a server device (e.g., an application in a local PC or a dedicated synchronization server).
  • Terminals such as portable computers, PDA terminals (personal digital assistant), mobile phones, mobile stations or pagers
  • networked devices acting as synchronization servers being represented by networked applications, applications of desktop computers or with other managing applications of data stores of telecommunications systems, wherein the term “data store” should be understood as broad as possible, i.e. shall cover arbitrary sets of data.
  • data of a calendar data of contacts, data of e-mail applications as well as data relating to device/application settings and configurations are typically synchronized.
  • synchronization markup language SyncML To improve synchronization of application data, a language known and referred to as synchronization markup language SyncML has been designed, which is based on the extensible markup language (XML).
  • XML extensible markup language
  • SyncML synchronization protocol which employs messages in the SyncML format, data of any application can be synchronized between networked terminals and a network server of any kind.
  • the SyncML synchronization protocol works both in wireless and in fixed networks and supports several transmission protocols.
  • the above presented SyncML synchronization technology addresses in particular the synchronization of data stores or databases, respectively.
  • a synchronization of data records is performed at a distinct point in time in order to harmonize, i.e. to bring into correspondence, two distinct predefined sets of data records stored at different storage places, i.e. at different synchronizing devices managing and employing the storage places, resulting in two equivalent sets of data records at both storage places at this distinct point in time.
  • the synchronization of data records performed at a distinct point in time is further designated as a synchronization session.
  • the synchronization of the sets of data records is obtained during such a synchronization session by exchanging information, instructions and commands allowing both participating synchronizing devices for modifying their stored sets of data records resulting in a harmonization of them, wherein such modification operations comprises adding of data, removing of data, appending data to current data, updating of data and the like.
  • the exchange of required information and commands is for practical purposes carried out by communicating between the synchronizing devices one or more messages each containing a distinct subset of the total required information, instructions and commands necessary to perform the harmonizing at each synchronizing devices.
  • each of the one or more messages is acknowledged in order to indicate successful operation in accordance with its message information contained therein.
  • synchronization processes as described above can be handled and performed in either a full synchronization process also designated as slow synchronization or an incremental synchronization process also designated as normal or fast synchronization, respectively.
  • a full or slow synchronization process respectively, all predefined sets of data records in both participating synchronizing devices are harmonized.
  • a point in time of the last completed synchronization session is logged in both participating synchronizing devices and in case the logged point in time stored in both synchronizing devices matches only data records being modified since this logged point in time are selected for synchronization all other are excluded from the synchronization process.
  • a change log may be maintained by the synchronizing devices logging the modification, adding or deleting point of time of data records.
  • the modifications may be determined in another manner such as investigating the modification time stamps of the records, if such exist.
  • Both synchronization processes i.e. the so-called slow and the so-called fast (normal) synchronization are defined and used in the SyncML standard. Further types of synchronization processes are available and used but these further synchronization processes can be reduced to the aforementioned basic synchronization processes.
  • each successful synchronization of a data record or a batch of data records is acknowledged and logged by the synchronizing devices preferably in such one or more change logs.
  • the acknowledgements are handled at the end of a synchronization session, i.e. as soon as both synchronizing devices indicate a proper closing of the synchronization session and the corresponding employed communication connected.
  • the handling of the acknowledgements at the end of a synchronization session and the updating of a point in time specifying the last completed synchronization session is operated substantially at the same time.
  • the synchronization session is carried out in the way of a slow synchronization process taking into account the point in time specifying the last completed synchronization session is obviously not required.
  • the first implementation primarily addresses synchronization applications used for synchronizing for example distributed databases with high-speed connection to each other in order to maintain and ensure data integrity.
  • the capacity requirements of storing and maintaining change logs for each data record, the requirement of processing capability for processing the change logs as well as the requirement of network bandwidth for exchanging necessary acknowledgements are of minor importance.
  • the storage capacity and processing power are limited such that storing, maintaining and processing of change logs for each data record is cumbersome, inefficient and sometimes not even possible.
  • the network traffic resulting from the required acknowledgements is not acceptable as it is also expensive and time-intensive in mobile communication environments.
  • the second implementation wherein the updating of time stamps and handling the acknowledgements for the item is carried out at the end of the session, is suitable for use in small electronic devices and supported by the SyncML standard. Nevertheless, this implementation raises the problem that an interruption of a currently performed synchronization session is not provided for.
  • the maintaining of the synchronization information exchanged during a partially operated synchronization session is not possible since, the updating of the time stamps (synchronization anchors) and the handling of the acknowledgements at the end of the synchronization session is not achieved due to the interruption.
  • the synchronization session has to be repeated completely in order to ensure data integrity.
  • an even huge number of messages are exchanged during a single synchronization session normally comprising several synchronization messages.
  • 400 data records of 500 data records may have been synchronized during a synchronization session and an interruption occurs.
  • all of the 500 data records have to synchronized again independent of whether the synchronization is operated as either a fast or a slow synchronization process.
  • the object of the invention is to provide a method allowing for resuming an interrupted synchronization session in order to avoid a complete repetition of the interrupted synchronization session.
  • the provision for resuming an interrupted synchronization session is constructed such that neither high storage capacities, high processing power, high number of interchanged acknowledgements nor high communication bandwidth are required.
  • the method is suitable to be implemented in a small electronic device in an economic way.
  • a method allowing for resuming a preceding incomplete synchronization session is provided, wherein the preceding incomplete synchronization session has been interrupted during its operation.
  • the resuming of the preceding incomplete synchronization session is achieved by the following operations.
  • a communication connection for synchronization of data between a first device and a second device is established.
  • the first device and a second device comprise each a set of data records to be synchronized.
  • data records are organized in a data storage or a database maintained by a corresponding application.
  • a first update identifier and a second identifier are communicated either from the first device to the second device or from the second device to the first device.
  • the direction of transmission depends on what device indicates the resuming of the preceding incomplete synchronization session and the direction of the synchronization.
  • the indicating device transmits both identifiers to the other one.
  • the first update identifier specifies a preceding complete synchronization session having been performed between the first device and the second device.
  • the first update identifier has been stored in the first device and the second device during an initialization of the preceding complete synchronization session. More specifically, the value of the identifier is stored, but the name or storage place of the value may vary according to the implementation.
  • the first update identifier is a time stamp used for logging the initiation time of the preceding complete synchronization session.
  • the identifier can be any numerical value, for example a monotonically increasing numeric integer string, a text string, or a mixture of these, created in an orderly fashion or at least to some degree or part randomly.
  • the second update identifier specifies a preceding incomplete synchronization session having been performed between the first device and the second device.
  • the second update identifier has been stored in the first device and the second device during an initialization of the preceding incomplete synchronization session.
  • the second update identifier is analogously also a time stamp or such used for indicating the initiation time of the preceding synchronization session that was interrupted.
  • the behavior and use of the second update identifier is defined only during a synchronization session, but not after an interruption or a completion of a session.
  • the method according to the present method has four steps for synchronizing.
  • a first step includes establishing a communication connection for synchronization of data between a first device and a second device each comprising a set of data to be synchronized.
  • a second step includes transmitting a first update identifier and a second update identifier, the first update identifier denoting a preceding complete synchronization event having been performed between the first device and the second device, a value of the first update identifier having been stored at least in the first device, the second update identifier denoting a preceding incomplete synchronization event having been started between the first device and the second device, a value of the second update identifier having been stored at least in the first device.
  • a third step includes retrieving or forming an indication of data that has been successfully synchronized during the preceding incomplete synchronization event.
  • the first step includes using the indication, synchronizing data that has not been successfully synchronized during the preceding incomplete synchronization event; and (4) at least in the first device, updating the value of the first update identifier with said value of the second update identifier.
  • the method may also include a step of transmitting additional information relating to the preceding incomplete synchronization event and comprising at least one information out of a group comprising information about the preceding incomplete synchronization, and information about data successfully synchronized in accordance with received synchronization related information.
  • the method may also include a step that is performed in at least one of the first device and the second device of comparing, in a first comparison, a value of the first update identifier transmitted from the first device with a value of the second update identifier of the first device stored in the second device; and of comparing, in a second comparison, a value of the second update identifier transmitted from the first device with a value of the second update identifier of the first device stored in the second device, as well as carrying out at least one of the following options:
  • the step of establishing a communication connection for synchronization may include transmitting an initial message instructing at least one of the first device and the second device to prepare for resuming the preceding incomplete synchronization.
  • the synchronization may be based on a synchronization protocol in accordance with the SyncML standard, the first update identifier being a LAST synchronization anchor.
  • the second update identifier may be at least one of a NEXT synchronization anchor and a PAUSE synchronization anchor.
  • the additional information relating to the preceding incomplete synchronization event may include at least one information out of a group of a synchronization event session identifier (session ID), a synchronization message identifier (message ID), and one or more identifiers of acknowledged data and their respective data store.
  • the additional information has been stored at least in the first device before transmitting the first and second update identifiers.
  • data has been successfully synchronized if the acknowledgement for the data or the message containing the data has been successfully received, and the acknowledgement indicates either a positive or a negative status of the synchronization of the data or the message.
  • the invention also provides a software tool for synchronizing, comprising program portions for carrying out the steps of the aforementioned method, wherein the software tool is for being implemented in a computer program for being executed on a processing device, a terminal device, a communication terminal device or a network device, as well as a computer program or computer program product for synchronizing the same.
  • the invention also provides a device for use in a network and capable of synchronizing data having a storage medium, a communication interface, a retrieving or a forming component and an updating component.
  • the storage medium has predefined sets of data to be synchronized.
  • the communication interface establishes a communication connection for synchronization of data to another device for use in a network, for communicating a first update identifier and a second update identifier with the other network device and for exchanging data with the other network device.
  • the first update identifier denotes a preceding complete synchronization event having been performed with the other network device, the first update identifier having been stored at least in the network device.
  • the second update identifier denotes a preceding incomplete synchronization event, the second update identifier having been stored at least in the network device, wherein the data comprises at least data that has not been synchronized during the preceding incomplete synchronization event.
  • the retrieving or a forming component retrieves or forms an indication of data that has been synchronized during the preceding incomplete synchronization event, the indication having been stored in the network device.
  • the synchronizing component synchronizes data in accordance with the indication.
  • the updating component updates contents of the first update identifier stored with contents of the second update identifier stored.
  • the communication interface may be adapted for transmitting supplementary additional information relating to the preceding incomplete synchronization event.
  • the additional information may include at least one information out of a group comprising information about the preceding incomplete synchronization, information about a last successful exchange of synchronization related information and information about data successfully synchronized in accordance with received synchronization related information.
  • the device may also include a component for comparing, such that, in a first comparison a value of the first update identifier transmitted from the device with a value of the second update identifier of the device stored in the other device, and, in a second comparison, a value of the second update identifier transmitted from the first device with a value of the second update identifier of the device stored in the other device.
  • the component for carrying out at least one of the aforementioned options discussed above in relation to the method.
  • the invention also provides a system for synchronizing, comprising a first network device and a second network device, wherein each device includes elements for performing steps similar to that discussed above in relation to the overall method and device of the invention.
  • FIG. 1 shows a schematic diagram illustrating a set of exemplary electronic devices between which synchronization of information is operable
  • FIG. 2 shows a chronological sequence diagram of a synchronization process comprising several messages exchanged between a synchronizing client device and a synchronizing server device according to an embodiment of the invention
  • FIG. 3 a shows a chronological sequence diagram of a synchronization process analogously to FIG. 2 and being interrupted or stopped according to an embodiment of the invention
  • FIG. 3 b shows a chronological sequence diagram of a synchronization process resuming the interrupted or stopped synchronization process of FIG. 3 a according to an embodiment of the invention
  • FIG. 4 shows an excerpt of a XML-coded synchronization message in accordance with the synchronization process illustrated in FIG. 3 b and according to an embodiment of the invention.
  • FIG. 5 shows a schematic block diagram illustrating components comprised by a synchronizing client device and a synchronizing server device according to an embodiment of the invention.
  • FIG. 1 shows a schematic diagram illustrating a set of exemplary electronic devices between which synchronization of information is operable.
  • a certain data store content of for example a mobile terminal shall be harmonized with data store content provided by designated devices for example offering a central storage of this data store content to be accessible by means of several different mobile and/or stationary terminals.
  • mobile terminals act as synchronization clients harmonizing or synchronizing data relating to certain predefined applications running on these synchronization clients with the contents of a data store or several data stores provided by dedicated server devices centrally storing the application related data.
  • FIG. 1 illustrates a plurality of possible client devices and server devices operable with the synchronization operation.
  • client devices are mobile stations like mobile phones 17 or personal digital assistants (PDA), mobile computers like notebooks 15 , electronic devices storing digital data like digital cameras 16 as well as stationary terminals like desktop computers (PC).
  • dedicated synchronization server devices may be stationary terminals like desktop computers 10 , dedicated network servers 11 e.g. operating their synchronization capability as networked synchronization applications or even mobile computers like notebooks 12 e.g. running synchronization server applications. It shall be noted that the client device functionality is not limited to mobile terminals as described above although the presented concept of synchronization is described in view of mobile terminals connected to dedicated serving devices.
  • a corresponding synchronization process in accordance with the SyncML protocol standard is established via an appropriate logical communication connection.
  • the logical communication connection is provided by any communication networks in combination with transport protocols to which the synchronization protocol is adapted.
  • a suitable communication network may be a local area network (LAN) or a wide area network (WAN) which may comprise the internet and an intranet of a company but also wire-based serial networks such as universal serial bus (USB) or standardized serial communication (e.g. RS-232).
  • LAN local area network
  • WAN wide area network
  • USB universal serial bus
  • RS-232 standardized serial communication
  • the participating synchronization devices may be also connected via a wireless communication network such as a mobile network supporting global system for mobile communication (GSM) services and/or supporting general packet radio services (GPRS), a third generation mobile communication network such as a universal mobile telecommunication system (UMTS) network, a wireless local area network (WLAN), short range radio communication network, such as a Bluetooth network, wireless local loop (WLL) or an infrared network (IrDA).
  • GSM global system for mobile communication
  • GPRS general packet radio services
  • UMTS universal mobile telecommunication system
  • WLAN wireless local area network
  • short range radio communication network such as a Bluetooth network
  • WLL wireless local loop
  • IrDA infrared network
  • the logical communication connection between the participating synchronization devices may be provided by a single communication network of the aforementioned type but also may be provided by several communication networks of the aforementioned types interconnected by dedicated network routing devices interconnecting communication networks connections and, if necessary, translating between data protocols of the respective employed communication networks.
  • the SyncML device management protocol is implemented on the top of appropriate protocols in accordance with the type of employed communication network.
  • SyncML synchronization protocol Appropriate protocols on which top the SyncML synchronization protocol can be implemented are the hyper text transfer protocol (HTTP), the wireless session protocol (WSP) of the wireless application protocol (WAP) standard, the object exchange protocol (OBEX) used for cable connections, such as universal serial bus (USB) or RS-232, for short-range radio frequency connections (Bluetooth) or for infrared connections (IrDA), the transport control protocol/internet protocol (TCP/IP) stack and on top of the transport layer service which is offered by the e-mail protocol (e.g. simple mail transfer protocol, SMTP).
  • HTTP hyper text transfer protocol
  • WSP wireless session protocol
  • WAP wireless application protocol
  • OBEX object exchange protocol
  • USB universal serial bus
  • RS-232 for short-range radio frequency connections
  • IrDA infrared connections
  • TCP/IP transport control protocol/internet protocol
  • TCP/IP transport control protocol/internet protocol
  • Transfer at the lower layer can be performed according to the underlying network using e.g. short messages SMS (short message service) or other signaling type transmission methods (e.g. USSD; unstructured supplementary service data), circuit-switched data calls, packet-switched data transfer services as well as paging message service, messages provided via cell broadcast and the like.
  • SMS short message service
  • USSD unstructured supplementary service data
  • circuit-switched data calls e.g. USSD; unstructured supplementary service data
  • packet-switched data transfer services as well as paging message service, messages provided via cell broadcast and the like.
  • data store shall be understood as broad as possible, i.e. shall cover arbitrary set(s) of data provided by data storage(s) to be accessed.
  • the sets of data relate to specific applications and may be organized to meet application specific requirements such as data of calendar applications, directory applications, contact applications (e.g. vcard applications), e-mail applications and the like.
  • the arbitrary set(s) of data can be organized in one or more databases including data records providing data to be accessed.
  • data store shall be understood as covering network data services or networked service(s), respectively, i.e. as covering arbitrary set(s) of data provided by networked service(s) to be accessed similar to data store(s).
  • networks services are based on data stores having a specific service related data store content.
  • FIG. 2 shows a chronological sequence diagram of a synchronization process comprising several messages exchanged between a synchronizing client device and a synchronizing server device according to an embodiment of the invention.
  • SyncML synchronization session are conceptually bounded into so called SyncML packages.
  • the SyncML packages is simply a conceptual framework for one or more SyncML messages that are physically exchanged between the synchronizing devices and that are required to convey a set of synchronization information and commands. Not all SyncML packages are involved in any of the types of synchronization provided by the SyncML standard. The exact number of the SyncML messages depends on the amount of information to be conveyed.
  • Package 0 initiation of the synchronization message.
  • a client device can receive unsolicited messages, so-called “notifications” or “alerts”, instructing to cause the receiving device to establish a back connecting for initiating a synchronization session. Note that an identical effect to receiving a notification can be caused in other ways.
  • Package 1 initialization from client device to server device.
  • One or more initialization messages are transmitted for example comprising: client device information (device identifier etc.), client device properties, client authentication, type of synchronization, identifications of databases of which data records are to be synchronized, stored LAST anchor, new NEXT anchor, etc.
  • Package 2 initialization from server device to client device.
  • One or more initialization messages are transmitted for example comprising: server device information (device identifier etc.), server device properties, server authentication, response and status information about information comprised in one or more client initialization messages.
  • Packages 1 and 2 are part of the initialization phase.
  • the following packages 3 to 6 are part of the synchronization phase of the synchronization message.
  • Package 3 Client to server synchronization.
  • client synchronization messages are transmitted for example comprising: client data modifications, i.e. any changes to the data of the client databases identified in the synchronization initialization, etc.
  • client data modifications i.e. any changes to the data of the client databases identified in the synchronization initialization, etc.
  • LAST anchor data records that have been modified since the previous synchronization session
  • all data records are reported.
  • Package 4 Server to client synchronization.
  • One or more server synchronization messages are transmitted for example comprising: information about the server's analysis of transmitted client data modifications, and also server data modifications, i.e. any changes to the data of the server databases identified in the synchronization initialization, etc.
  • server data modifications i.e. any changes to the data of the server databases identified in the synchronization initialization, etc.
  • LAST anchor data records that have been modified since the previous synchronization session
  • all data records are reported.
  • Package 5 Data update status, map operation.
  • One or more data update status messages are transmitted for example comprising information about the results of data update (synchronization due to server modifications), map operations (table) for mapping local unique identifier (LUID) and global unique identifier (GUID), etc.
  • a local unique identifier is an identifier assigned to a data record and being locally unique on the client side, i.e. per device and application. The local unique identifier allows for identifying a data record.
  • a global unique identifier is an identifier assigned to a data record and being locally unique on the server side.
  • Package 6 Map acknowledgement.
  • One or more map acknowledgement messages are transmitted for example comprising acknowledgements informing the client device of receiving one or more data update status messages by the server, etc.
  • a client message in accordance with package 3 may cause a server response message in accordance with package 4 and vice verse depending on the synchronization information and commands contained in the client message or the server message, respectively.
  • Each message of a synchronization message contains a session identifier (session ID) such that the messages can be associated to a distinct synchronization session.
  • Each message contains a message identifier (message ID) such that misalignments of exchanged messages at the client device and at the server device is prevented, respectively.
  • each last message of each package type contains a final indicator to indicate that this is the last one.
  • the synchronization process is further distinguished by what kind of information (which data records) is to be synchronized (a slow or a fast synchronization, i.e. total number of data records or only modifications since a distinct point in time), in which device(s) (in either the client device or the server device or in both devices) synchronization is performed and from which device synchronization is initiated.
  • the type of synchronization can be e.g. two-way sync, slow sync, one-way sync from client only, refresh sync from client only, one-way sync from server only, refresh sync from server only and server alerted sync.
  • the chronological sequence diagram and the synchronization process shown in Fig. 2 are based on a fast two-way synchronization type, respectively, although the scope of the invention is intended to include other synchronization types.
  • a client 100 synchronizes with the server 110 .
  • the depicted synchronization session consists of an initialization phase 210 followed by the synchronization phase each comprising several synchronization messages. All synchronization messages contain a same session ID (not depicted).
  • both devices exchange device information (device identifiers etc.), device properties, device authentication information.
  • the client 100 further defines the type of synchronization (herein fast two-way synchronization type) and reports the LAST anchor stored and a NEXT anchor newly defined to the server 110 .
  • the server 110 compares the LAST anchor transmitted by the client 100 with a corresponding value stored in the server 110 stored and conforms the LAST anchor and the NEXT anchor if the stored and received LAST anchors match to allow for fast synchronizing.
  • the state (content) of the NEXT anchor is undefined (by the prior art, i.e.
  • the information exchange during the initialization phase 210 is illustrated by a first operation 200 referring to an client initialization message corresponding to a package 1 message and a second operation 201 referring to an server initialization message corresponding to a package 2 message. Both messages referred to by operations 200 and 201 , respectively, contain the same message ID 1 .
  • a client synchronization message (package 3 message type) referred to by operation 203 contains a first batch of client modifications, herein five modifications of a total of ten identified modifications. It may be noted that client modifications include commands and/or data content. The commands comprise above all an add, update, delete, etc. which are completed with data content to synchronize a respective data record. Additionally, this message further contains status information in accordance with the previous server initialization message.
  • the server 110 receives this first client synchronization message, analyzes the received client modifications, solves possible conflicts emerging from the client modifications and processes the client modifications (operation 212 ).
  • a corresponding server synchronization message (package 4 message type) referred to by operation 204 is transmitted to the client containing client modification acknowledgements and status information of the analyze and synchronization processing.
  • Both the client synchronization message referred to by operation 203 and the server synchronization message referred to by operation 204 are identifiable by a common message ID, herein message ID 2 . It should be noted, however, that the message numbering may deviate from what has been presented above. Indeed, the only purpose to be served by the message numbering is that each device has a consistent view of the message numbers, i.e., the numbering towards the client and the server do not even have to match.
  • a following client synchronization message (package 3 message type) referred to by an operation 206 contains a second batch of client modifications, herein remaining five modifications of ten total identified modifications.
  • This client synchronization message contains additionally a final indicator indicating that this is the last client synchronization message containing client modifications.
  • the server 110 receives this last client synchronization message, analyzes the received client modifications, solves possible conflicts emerging from the client modifications, processes the client modifications and due to the final indicator prepares (identified under consideration of the server's LAST anchor) server modifications to be transmitted to the client 100 (operation 212 ).
  • a corresponding server synchronization message (package 4 message type) referred to by an operation 207 is transmitted to the client containing server modifications, client modification acknowledgements and status information of the analyze and synchronization processing.
  • a single server synchronization message is sufficient for transmitting all identified server modifications to the client such that this message additionally contains a final indicator.
  • the client 100 processes the received server modifications.
  • Both messages referred to by operations 206 and 207 contain the same message ID 3 .
  • a client update status message (package 5 message type) referred to by operation 208 is subsequently conveyed to the server 110 containing acknowledge information and synchronization status information due to the server modifications and if necessary map operations to the server 110 processing the data record map table assigning local unique identifiers and global unique identifiers. Finally and not depicted the client update status message may be responded by the server 110 with one or more map acknowledgement messages (package 6 message type).
  • the synchronization session and the communication connection through which the synchronization messages of this session are communicated are closed.
  • the content of the NEXT anchor defined at the beginning of the synchronization session stored. This assignment is performed at the client 100 in an operation 215 and at the server in an operation 216 (in fact, the server may not call the anchor LAST, but nevertheless, the value stored to the anchor is the value of the NEXT anchor sent by the client).
  • the server may not call the anchor LAST, but nevertheless, the value stored to the anchor is the value of the NEXT anchor sent by the client).
  • the defining of the NEXT anchor at the beginning of a synchronization session and the assigning of the NEXT anchor content to the LAST anchor after a proper finalization of the synchronization session prevent conflicts due to modification of data records on the client side or server side during the synchronization process. It may be additionally remarked that the content of the depicted LAST anchors and NEXT anchors are just to enlighten their usage. For practical purposes the LAST anchors and the NEXT anchors are normally composed of or derived from a date value and a time value, or they are numerical values of other kind. This kind of composing may ensure to generate an unambiguous LAST and NEXT anchors, respectively.
  • FIG. 3 a shows a chronological sequence diagram of a synchronization process analogously to FIG. 2 and being interrupted or stopped according to an embodiment of the invention.
  • the synchronization session depicted in FIG. 3 a shall be identical to this one presented with reference to FIG. 2, i.e. the initial conditions, the operations 200 - 204 and the operations 210 - 212 are performed in the same way.
  • the operations depicted in FIG. 3 a and the respective operations depicted in FIG. 2 and common with FIG. 3 a are referenced by the same reference numerals.
  • FIG. 3 a the initialization phase and the corresponding initialization messages of the client 100 and the server 110 are omitted.
  • an operation 205 the synchronization is interrupted or stopped.
  • An interruption or stop can be caused due to several reasons, for example the synchronization session is stopped on user interaction, on user initiative, on power loss of the client 100 or server 110 e.g. due to lack of battery or accumulator capacity, on loss of the communication connection e.g. due to loss of coverage in radio communication networks, due to interference in the communication connections only to present a selection of possible reasons.
  • the client 100 and the server 110 log information relating to the incomplete synchronization session.
  • This information allowing for resuming the incomplete synchronization session comprises at least the LAST anchor and NEXT anchor at least in the client 100 which are logged in both the client 100 and the server 110 .
  • this information can also comprise a session ID of the incomplete synchronization session, a message ID of the last message properly transmitted and for which the client 100 has received an acknowledgement, and one or more unique data record identifiers, i.e. local unique identifiers or global unique identifiers of data records according to those modifications have being transmitted and transmissions of those have being acknowledged during the incomplete synchronization session.
  • a new anchor e.g. a PAUSE anchor
  • a PAUSE anchor is defined and employed especially to be used for resuming an incomplete synchronization session.
  • inventive concept is described with reference to the NEXT anchor but not limiting the inventive concept thereto.
  • PAUSE anchor is simply to be replaced by the term PAUSE anchor.
  • FIG. 3 b shows a chronological sequence diagram of a synchronization session carrying on the interrupted or stopped incomplete synchronization session of FIG. 3 a according to an embodiment of the invention.
  • the resuming synchronization session is initiated by an operation 250 referring to a new initialization message (package 1 type) comprising an alert command indicating the intend of the client 100 to the server 110 so as to resume the previous incomplete synchronization session described above with reference to FIG. 3 a .
  • This new initialization message contains at least the LAST anchor and the NEXT anchor which have been logged in accordance with the interruption of the previous incomplete synchronization session (operation 205 in FIG. 3 a ).
  • the server receives these LAST anchor and the NEXT anchor from the client and compares them with those LAST anchor and the NEXT anchor logged by itself. It shall be noted that in comparison to the synchronization session presented in FIG. 2 and its analogy presented in FIG. 3 a the NEXT anchor has a well defined state and content on the server side, respectively.
  • At least one of the client 100 and/or the server 110 may either command, initiate or carry out any one of the following four different options depending on whether either the LAST anchors match and/or whether the NEXT anchors match, as follows:
  • the server 110 confirms the resuming of the incomplete synchronization session (resuming fast synchronization) by transmitting a server initialization message (package 2 type) referring to operation 251 and containing at least the LAST anchor and NEXT anchor for acknowledgement.
  • the confirmation for allowing for resuming may be based additionally on further information relating to the incomplete synchronization session to be resumed (refer to operation 205 in FIG. 3 a ). For example, the aforementioned logged session ID of the incomplete synchronization session and/or logged a message ID of the last message properly transmitted are consulted during the examination operation of the logged anchors.
  • the following description is based on the assumption that first case (the received and the logged LAST anchors as well as the received and the logged NEXT anchors match) is correct. This case is also indicated in the FIG. 3 b having an illustrating of the state (value) of the logged LAST and NEXT anchors of both the client 100 and the server 110 .
  • the server 110 transmits a server initialization message (package 2 type) referring to operation 251 and containing at least the LAST anchor and NEXT anchor for acknowledgement.
  • a further log information relating to the incomplete synchronization session are logged at their interruption.
  • this information may comprise at least one of a session ID of the incomplete synchronization session, a message ID of the last message properly transmitted and one or more unique data record identifiers, i.e. local unique identifiers or global unique identifiers of data records according to those modifications have being transmitted and transmissions of those have being acknowledged during the incomplete synchronization session.
  • unique data record identifiers i.e. local unique identifiers or global unique identifiers of data records according to those modifications have being transmitted and transmissions of those have being acknowledged during the incomplete synchronization session.
  • the information provided by local unique identifiers may not be sufficient and data base identifiers may have to be logged supplementary to the local unique identifiers.
  • the combination of a local unique identifier and the associated data base identifier enables to determine (unambiguously) a corresponding data record referenced by the local unique identifier.
  • the data base identifiers may be uniform resource locators (URI) as known in the art.
  • the stored LAST anchor, the stored NEXT anchor and the stored information relating to the incomplete synchronization session allow for restoring (re-establishing) the state of the previous incomplete synchronization session at the moment of interruption.
  • This kind of reconstruction allows now for generating the messages referred to by the operations 206 - 208 shown in FIG. 2, illustrating a complete synchronization session, and missing in FIG. 3 a , illustrating the same synchronization session but incomplete due to the interruption after the transmission of the synchronization message referred to by operation 204 (FIG. 2 and FIG. 3 a ).
  • Both the new client initialization message and the server initialization message referred to by operations 250 and 251 comprise also information necessary for establishing a synchronization session such as described with reference to operations 200 and 201 shown in FIG. 2.
  • the client synchronization message (package 3 type) referred to by operation 252 corresponds to the second client synchronization message referred to by operation 206 illustrated in FIG. 2.
  • the client synchronization message comprises accordingly the last 5 of 10 modifications and the final instructor to indicate that this message is the last client synchronization message of the current synchronization session.
  • the message numbering i.e. the message ID, is adapted to the current resuming synchronization session and therefore the client synchronization message in FIG.
  • the server 110 response to the client synchronization device by transmitting a server synchronization message (package 3 type) referred to by operation 253 , corresponding to the second client synchronization message referred to by operation 206 illustrated in FIG. 2.
  • This server synchronization message contains server modifications, client modification acknowledgements and status information of the analyze and synchronization processing.
  • a single server synchronization message is sufficient for transmitting all identified the server modifications to the client such that this message additionally contains a final indicator.
  • Both messages referred to by operations 252 and 253 contain the same message ID 2 .
  • a client update status message (package 5 message type) referred to by an operation 254 is subsequently conveyed to the server 110 containing acknowledge information and synchronization status information due to the server modifications and if necessary map operations to the server 110 processing the data record map table assigning local unique identifiers and global unique identifiers.
  • This client update status message corresponds also and accordingly to the client update status message referred to by the operation 208 described with reference to FIG. 2.
  • the client update status message may be responded to by the server 110 with one or more map acknowledgement messages (package 6 message type).
  • the synchronization session and the communication connection through which the synchronization messages of this session are communicated are ended.
  • the content NEXT anchor defined at the beginning of the synchronization session is assigned to the LAST anchor. This assignment is performed at the client 100 in an operation 260 and at the server 110 in an operation 261 .
  • a following fast synchronization process is operable. It is noted that the defining of the NEXT anchor at the beginning of a synchronization session and the assigning of the NEXT anchor content to the LAST anchor after a proper finalization of the synchronization session prevent conflicts due to modification of data records on the client side or server side during the synchronization process.
  • LAST anchors and NEXT anchors are just to enlighten their usage.
  • the LAST anchors and the NEXT anchors are normally composed of or derived from a date value and a time value. This kind of composing may ensure to generate an unambiguous LAST and NEXT anchors, respectively.
  • the modifications occurred after an incomplete synchronization session can be synchronized by initiating a synchronization session after a successful resuming synchronization session, especially, a fast synchronization session can be initiated since the LAST anchor stored in the client 100 and the server 110 are updated and valid.
  • acknowledgements that have been described in the context of the embodiments of the invention are to be interpreted to be any kind of responses to data received from the other end, including either a positive or a negative status of the synchronization of the data or the message.
  • an acknowledgement would confirm the updating of a record, but an acknowledgement may also carry information of an unsuccessful operation, e.g., caused by a non-found record.
  • the handling of such errors is not an issue of the invention, but it is left up to the implementation to take care of the errors somehow.
  • the occurrence of errors should not interfere with the resumption of the session, that is, the session should resume at the first unacknowledged data item irrespective of whether there have been errors in the data items before it.
  • FIG. 4 shows an excerpt of a XML-coded synchronization message in accordance with the synchronization process illustrated in FIG. 3 b and according to an embodiment of the invention.
  • XML industry-standard extensible markup language
  • SyncML has been designed within the memory capacity of all common mobile devices both in static code and run-time execution space.
  • WBXML binary coded extensible markup language
  • WBXML binary coded extensible markup language
  • the SyncML contains a set of well-defined messages (as shown above) being represented as XML documents or as multipurpose internet mail extension (MIME) entities.
  • the representation specification specifies an XML document type description (DTD) which allow the representation of all information requires to perform synchronization including data, metadata and commands.
  • the synchronization specification specifies the SyncML messages that conform to the DTD in order to allow a SyncML client and SyncML server to exchange additions, deletion, updates and other status information.
  • DTDs define the representation of information on the device (such as memory capacity) and of various types of meta-information (such as security credentials).
  • the SyncML messages are conceptually based on a container concept as defined by the representation protocol.
  • the each SyncML messages contains a SyncML header section and a SyncML body section.
  • the SyncML header contains routing, session, authentication and message information, whereas the SyncML body section contains various well-defined synchronization data comprising status information and synchronization commands, each forming a sub-container.
  • the XML-based coding presented in FIG. 4 is an excerpt of an example plain text coding of a SyncML message in accordance with the client synchronization message referred to by operation 252 described with reference to FIG. 3 b .
  • the depicted XML-based coding contains the SyncML header section extending from line 3 to line 9 and the SyncML body section extending from line 10 to line 57 .
  • Line 1 and line 2 contain common information on the XML-coding employed and the character encoding used for textual representation and the SyncML versioning information.
  • Each SyncML header contains a document type definition versioning information (VerDTD, line 4 ), a SyncML protocol versioning information (VerProto, line 5 ), a session identifier (SessionID, line 6 ) valid during one synchronization session to assign unambiguous all belonging synchronization messages thereto and a message identifier (MsgID, line 7 ) being increased such that each receiving synchronizing device receives subsequently synchronization messages having increasing message identifier numerals.
  • the aforementioned elements of the SyncML header described as example, further optional and obligator elements are contained in the SyncML header.
  • the SyncML body contains several logical and independent subsection.
  • a first status information subsection extends from line 11 to line 19 .
  • This first status information subsection relates to the reference addressing of the data records to be synchronized.
  • the target reference (TargetRef, line 16 ) defines an international mobile equipment identifier (IMEI) for addressing the client, in this case a cellular communication device
  • the source reference (SourceRef, line 17 ) defines a uniform resource identifier (URI) for addressing the server, in this case a networked server device accessible via HTTP (hypertext transfer protocol).
  • URI uniform resource identifier
  • Further addressing of individual data records and data storage is based on this reference address information.
  • An arbitrary number of further status information subsection can also be comprised which is indicated by the second status information subsection extending from line 20 to line 22 . For example acknowledgments are coded as status information.
  • the SyncML body section contains further a synchronization subsection which is further subdivided.
  • a client indicated modification concerning an addition of an contact is comprised.
  • Line 26 contains the relative addressing path of the contacts database of the client whereas line 29 contains the relative addressing path of the contacts database of the server.
  • the relative addressing paths are relative to the reference addressing described above.
  • the Meta subsection extending from line 31 to line 36 contains additional meta-information about the data record (the contact) to be added to the contact database in the server.
  • the subsection extending form line 37 to line 51 contains the adding instruction and the corresponding contact data content.
  • the data format of the content data in line 46 to line 48 is defined as x-vcard meta-type, whereas the corresponding data contents is contented in line 46 to line 48 .
  • a local unique identifier (LUID) used for uniquely referencing this contact in the client is comprised in line 44 .
  • An arbitrary number of further synchronization information subsection can further be comprised which is indicated by an further synchronization information subsection extending from line 52 to line 54 .
  • the comprised Final instruction in line 56 indicates to the server that this example client synchronization message is the last message containing client modifications to be reported to the server for synchronizing.
  • the aforementioned method for resuming an preceding incomplete synchronization session can be implemented in a client device and a server device in various ways.
  • the following implementation is an example implementation being based on a SyncML standard implementation in which components have an enhanced functionality and capability in order to be additionally adapted to operate in accordance with an embodiment of the invention.
  • FIG. 5 shows a schematic block diagram illustrating components comprised by a synchronizing client device and a synchronizing server device according to an embodiment of the invention.
  • FIG. 5 depicts a server 110 representing a network device offering a networked synchronization service.
  • the networked synchronization service is represented by one or more server applications 112 and corresponding associated one or more data storage components 111 .
  • One or more server applications 112 provide the data synchronization with other applications being represented by one or more client applications 102 of the client 100 being a networked device.
  • the one or more data storage components 111 host data records for handling by the one or more server applications 112 and hence for synchronization with the client, wherein the one or more data storage components 111 are for example one or several databases.
  • the server 110 and the client 100 are connected over a communication network transport. A selection of suitable communication networks for connecting client 100 and server 110 has been presented and discussed with reference to FIG. 1.
  • the one or more server applications 112 uses a data synchronization protocol implemented as a synchronization server engine 113 being a component of or a process on the server 110 .
  • the data synchronization protocol is manifested on the communication network by client applications accessing the provided synchronization server network service and resources, respectively.
  • a synchronization server agent 115 interfaces and manages the access and the communication of the synchronization server engine 113 to the network and enables communication of data synchronization operations with the client 100 and the one or more client applications 102 , respectively.
  • the synchronization agent 115 performs the interfacing and communicating by involving a synchronization interface 116 and a synchronization adapter 117 , wherein the synchronization interface 116 is for example an application program interface (API) to the synchronization adapter 117 .
  • the synchronization adapter 117 is a component of or a process on the server 110 , respectively, which communicates conceptually with a counterpart synchronization adapter 107 on the client side.
  • the synchronization adapter 117 is above all responsible for establishing and maintaining network communication connections between server 110 and client 100 , i.e. between the one or more server applications 112 providing data synchronization service and the one or more client applications 102 accessing and employing this data synchronization service.
  • the one or more client applications 102 with one or more associated data storage components 101 storing data records to be accessible by the one or more client applications 102 use a synchronization client agent 105 , the synchronization interface 106 and the synchronization adapter 107 to access the provided server synchronization service.
  • the synchronization client agent 105 enables communication of data synchronization operations with the server 110 and the one or more server applications 112 , respectively.
  • the synchronization interface 106 represents for example analogously an application program interface (API) to the synchronization adapter 107 .
  • API application program interface
  • the aforementioned method according to an embodiment of the invention is included in the above presented conceptual component framework of the server 110 and the client 100 for example by implementing one or several code sections in the synchronization client agent 115 and the synchronization server agent 105 , wherein the one or several code sections comprise instructions which at execution of them perform an embodiment of the method for resuming an incomplete synchronization session.
  • This way of implementation ensures that in case of an interruption of a synchronization session required information for resuming this interrupted synchronization session are logged or stored in the client 100 and the server 110 .

Abstract

The present invention provides a method, a network device and a system for allowing for resuming a preceding incomplete synchronization session is provided, wherein the preceding incomplete synchronization session has been interrupted during its performing. In principle the resuming of the preceding incomplete synchronization session is based on the following operations according to the inventive concept. A communication connection for synchronization of data between a first and a second device is establishing. The first and the second device comprise each a predefined set of data records to be synchronized. A first and a second update identifier are communicated between the first and the second device. The first update identifier specifies a preceding complete synchronization session having been performed between them and the second update identifier specifies a preceding incomplete synchronization session having been performed between them. Synchronization related information is exchanged between the first and the second device. The herein exchanged synchronization related information comprises that part of synchronization related information which has not been exchanged during the preceding incomplete synchronization session. Data in the first device and the second device is synchronized in accordance with the exchanged synchronization related information. The contents of the first update identifier is updated with the contents of the second update identifier.

Description

    BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0001]
  • The present invention relates to a method and a device, respectively, for synchronizing of data between a synchronizing client device and a synchronizing server device and further to the respective synchronizing devices. More particular, the present invention relates to a method and a device for synchronizing of data, respectively, allowing for improved handling of an interruption of an active synchronization process. [0002]
  • 2. Description of Related Art [0003]
  • The synchronization of data is a well known concept or technique for users, respectively, having at least two different electronic devices in use and processing the same kind of data with these electronic devices. In general, synchronization takes place between a terminal device (e.g., a mobile phone) and a server device (e.g., an application in a local PC or a dedicated synchronization server). Data from terminals, such as portable computers, PDA terminals (personal digital assistant), mobile phones, mobile stations or pagers, can be synchronized with networked devices acting as synchronization servers being represented by networked applications, applications of desktop computers or with other managing applications of data stores of telecommunications systems, wherein the term “data store” should be understood as broad as possible, i.e. shall cover arbitrary sets of data. In particular data of a calendar, data of contacts, data of e-mail applications as well as data relating to device/application settings and configurations are typically synchronized. [0004]
  • Synchronization has been based on the use of different manufacturer-specific protocols which are incompatible. This restricts the use of terminal or data types and often causes troubles to the user. In mobile communication, in particular, it is important that data can be retrieved and updated regardless of the terminal and application used. [0005]
  • To improve synchronization of application data, a language known and referred to as synchronization markup language SyncML has been designed, which is based on the extensible markup language (XML). By using a SyncML synchronization protocol, which employs messages in the SyncML format, data of any application can be synchronized between networked terminals and a network server of any kind. The SyncML synchronization protocol works both in wireless and in fixed networks and supports several transmission protocols. The above presented SyncML synchronization technology addresses in particular the synchronization of data stores or databases, respectively. [0006]
  • Conventionally, a synchronization of data records is performed at a distinct point in time in order to harmonize, i.e. to bring into correspondence, two distinct predefined sets of data records stored at different storage places, i.e. at different synchronizing devices managing and employing the storage places, resulting in two equivalent sets of data records at both storage places at this distinct point in time. The synchronization of data records performed at a distinct point in time is further designated as a synchronization session. The synchronization of the sets of data records is obtained during such a synchronization session by exchanging information, instructions and commands allowing both participating synchronizing devices for modifying their stored sets of data records resulting in a harmonization of them, wherein such modification operations comprises adding of data, removing of data, appending data to current data, updating of data and the like. The exchange of required information and commands is for practical purposes carried out by communicating between the synchronizing devices one or more messages each containing a distinct subset of the total required information, instructions and commands necessary to perform the harmonizing at each synchronizing devices. Moreover, each of the one or more messages is acknowledged in order to indicate successful operation in accordance with its message information contained therein. [0007]
  • Basically, synchronization processes as described above can be handled and performed in either a full synchronization process also designated as slow synchronization or an incremental synchronization process also designated as normal or fast synchronization, respectively. During a synchronization session performing a full or slow synchronization process, respectively, all predefined sets of data records in both participating synchronizing devices are harmonized. During a synchronization session performing an incremental or fast synchronization process, respectively, a point in time of the last completed synchronization session is logged in both participating synchronizing devices and in case the logged point in time stored in both synchronizing devices matches only data records being modified since this logged point in time are selected for synchronization all other are excluded from the synchronization process. Therefore, a change log may be maintained by the synchronizing devices logging the modification, adding or deleting point of time of data records. Alternatively, the modifications may be determined in another manner such as investigating the modification time stamps of the records, if such exist. Both synchronization processes, i.e. the so-called slow and the so-called fast (normal) synchronization are defined and used in the SyncML standard. Further types of synchronization processes are available and used but these further synchronization processes can be reduced to the aforementioned basic synchronization processes. [0008]
  • When a record and/or a group of records has been synchronized with the other database, an acknowledgement is sent back to the sender of the record. Two fundamental ways for handling the acknowledgements can be implemented in synchronization applications. In the first implementation each successful synchronization of a data record or a batch of data records is acknowledged and logged by the synchronizing devices preferably in such one or more change logs. In the second implementation the acknowledgements are handled at the end of a synchronization session, i.e. as soon as both synchronizing devices indicate a proper closing of the synchronization session and the corresponding employed communication connected. Further, the handling of the acknowledgements at the end of a synchronization session and the updating of a point in time specifying the last completed synchronization session is operated substantially at the same time. In case the synchronization session is carried out in the way of a slow synchronization process taking into account the point in time specifying the last completed synchronization session is obviously not required. [0009]
  • The first implementation primarily addresses synchronization applications used for synchronizing for example distributed databases with high-speed connection to each other in order to maintain and ensure data integrity. In such implementations, the capacity requirements of storing and maintaining change logs for each data record, the requirement of processing capability for processing the change logs as well as the requirement of network bandwidth for exchanging necessary acknowledgements are of minor importance. In view of synchronizing data stored in small electronic device such as mobile phones, handhelds, personal digital assistants, communicators and the like the storage capacity and processing power are limited such that storing, maintaining and processing of change logs for each data record is cumbersome, inefficient and sometimes not even possible. Moreover, the network traffic resulting from the required acknowledgements is not acceptable as it is also expensive and time-intensive in mobile communication environments. [0010]
  • The second implementation, wherein the updating of time stamps and handling the acknowledgements for the item is carried out at the end of the session, is suitable for use in small electronic devices and supported by the SyncML standard. Nevertheless, this implementation raises the problem that an interruption of a currently performed synchronization session is not provided for. The maintaining of the synchronization information exchanged during a partially operated synchronization session is not possible since, the updating of the time stamps (synchronization anchors) and the handling of the acknowledgements at the end of the synchronization session is not achieved due to the interruption. Even if the acknowledgements of data items are handled during the session, since the time stamps are updated only at the end of the session, interruption of a slow synchronization leads to loss of the already processed synchronization information. In both the above cases the synchronization session has to be repeated completely in order to ensure data integrity. Depending on the amount of synchronization related information, i.e. depending on the number of data records to be synchronized, an even huge number of messages are exchanged during a single synchronization session normally comprising several synchronization messages. For example 400 data records of 500 data records may have been synchronized during a synchronization session and an interruption occurs. In the following synchronization session all of the 500 data records have to synchronized again independent of whether the synchronization is operated as either a fast or a slow synchronization process. [0011]
  • SUMMARY OF THE INVENTION
  • The object of the invention is to provide a method allowing for resuming an interrupted synchronization session in order to avoid a complete repetition of the interrupted synchronization session. The provision for resuming an interrupted synchronization session is constructed such that neither high storage capacities, high processing power, high number of interchanged acknowledgements nor high communication bandwidth are required. The method is suitable to be implemented in a small electronic device in an economic way. [0012]
  • According to an embodiment of the invention, a method allowing for resuming a preceding incomplete synchronization session is provided, wherein the preceding incomplete synchronization session has been interrupted during its operation. The resuming of the preceding incomplete synchronization session is achieved by the following operations. [0013]
  • A communication connection for synchronization of data between a first device and a second device is established. The first device and a second device comprise each a set of data records to be synchronized. Conventionally, data records are organized in a data storage or a database maintained by a corresponding application. [0014]
  • A first update identifier and a second identifier are communicated either from the first device to the second device or from the second device to the first device. The direction of transmission depends on what device indicates the resuming of the preceding incomplete synchronization session and the direction of the synchronization. The indicating device transmits both identifiers to the other one. The first update identifier specifies a preceding complete synchronization session having been performed between the first device and the second device. The first update identifier has been stored in the first device and the second device during an initialization of the preceding complete synchronization session. More specifically, the value of the identifier is stored, but the name or storage place of the value may vary according to the implementation. Commonly, the first update identifier is a time stamp used for logging the initiation time of the preceding complete synchronization session. Alternatively, the identifier can be any numerical value, for example a monotonically increasing numeric integer string, a text string, or a mixture of these, created in an orderly fashion or at least to some degree or part randomly. According to the invention, the second update identifier specifies a preceding incomplete synchronization session having been performed between the first device and the second device. The second update identifier has been stored in the first device and the second device during an initialization of the preceding incomplete synchronization session. Commonly, the second update identifier is analogously also a time stamp or such used for indicating the initiation time of the preceding synchronization session that was interrupted. However, in the prior art, the behavior and use of the second update identifier is defined only during a synchronization session, but not after an interruption or a completion of a session. [0015]
  • The method according to the present method has four steps for synchronizing. A first step includes establishing a communication connection for synchronization of data between a first device and a second device each comprising a set of data to be synchronized. A second step includes transmitting a first update identifier and a second update identifier, the first update identifier denoting a preceding complete synchronization event having been performed between the first device and the second device, a value of the first update identifier having been stored at least in the first device, the second update identifier denoting a preceding incomplete synchronization event having been started between the first device and the second device, a value of the second update identifier having been stored at least in the first device. A third step includes retrieving or forming an indication of data that has been successfully synchronized during the preceding incomplete synchronization event. The first step includes using the indication, synchronizing data that has not been successfully synchronized during the preceding incomplete synchronization event; and (4) at least in the first device, updating the value of the first update identifier with said value of the second update identifier. [0016]
  • The method may also include a step of transmitting additional information relating to the preceding incomplete synchronization event and comprising at least one information out of a group comprising information about the preceding incomplete synchronization, and information about data successfully synchronized in accordance with received synchronization related information. [0017]
  • The method may also include a step that is performed in at least one of the first device and the second device of comparing, in a first comparison, a value of the first update identifier transmitted from the first device with a value of the second update identifier of the first device stored in the second device; and of comparing, in a second comparison, a value of the second update identifier transmitted from the first device with a value of the second update identifier of the first device stored in the second device, as well as carrying out at least one of the following options: [0018]
  • 1) In case the second comparison yields a value of true, a further step of synchronizing data between the first device and the second device, the data comprising data that has not been exchanged during the preceding incomplete synchronization event. [0019]
  • 2) In case the second comparison yields a value of false, synchronizing data between the first device and the second device, the data comprising at least data that has been synchronized during the preceding incomplete synchronization event. [0020]
  • 3) In case the first comparison yields a value of false, a further step of synchronizing data between the first device and the second device, the data comprising data that has been synchronized during the preceding complete synchronization event. [0021]
  • 4) In case the first comparison yields a value of true, a further step of synchronizing data between the first device and the second device, the data that has not been synchronized during the preceding complete synchronization event. [0022]
  • The step of establishing a communication connection for synchronization may include transmitting an initial message instructing at least one of the first device and the second device to prepare for resuming the preceding incomplete synchronization. [0023]
  • The synchronization may be based on a synchronization protocol in accordance with the SyncML standard, the first update identifier being a LAST synchronization anchor. The second update identifier may be at least one of a NEXT synchronization anchor and a PAUSE synchronization anchor. Moreover, the additional information relating to the preceding incomplete synchronization event may include at least one information out of a group of a synchronization event session identifier (session ID), a synchronization message identifier (message ID), and one or more identifiers of acknowledged data and their respective data store. Moreover still, the additional information has been stored at least in the first device before transmitting the first and second update identifiers. [0024]
  • In the method, data has been successfully synchronized if the acknowledgement for the data or the message containing the data has been successfully received, and the acknowledgement indicates either a positive or a negative status of the synchronization of the data or the message. [0025]
  • The invention also provides a software tool for synchronizing, comprising program portions for carrying out the steps of the aforementioned method, wherein the software tool is for being implemented in a computer program for being executed on a processing device, a terminal device, a communication terminal device or a network device, as well as a computer program or computer program product for synchronizing the same. [0026]
  • The invention also provides a device for use in a network and capable of synchronizing data having a storage medium, a communication interface, a retrieving or a forming component and an updating component. The storage medium has predefined sets of data to be synchronized. The communication interface establishes a communication connection for synchronization of data to another device for use in a network, for communicating a first update identifier and a second update identifier with the other network device and for exchanging data with the other network device. The first update identifier denotes a preceding complete synchronization event having been performed with the other network device, the first update identifier having been stored at least in the network device. The second update identifier denotes a preceding incomplete synchronization event, the second update identifier having been stored at least in the network device, wherein the data comprises at least data that has not been synchronized during the preceding incomplete synchronization event. The retrieving or a forming component retrieves or forms an indication of data that has been synchronized during the preceding incomplete synchronization event, the indication having been stored in the network device. The synchronizing component synchronizes data in accordance with the indication. The updating component updates contents of the first update identifier stored with contents of the second update identifier stored. [0027]
  • The communication interface may be adapted for transmitting supplementary additional information relating to the preceding incomplete synchronization event. The additional information may include at least one information out of a group comprising information about the preceding incomplete synchronization, information about a last successful exchange of synchronization related information and information about data successfully synchronized in accordance with received synchronization related information. [0028]
  • The device may also include a component for comparing, such that, in a first comparison a value of the first update identifier transmitted from the device with a value of the second update identifier of the device stored in the other device, and, in a second comparison, a value of the second update identifier transmitted from the first device with a value of the second update identifier of the device stored in the other device. The component for carrying out at least one of the aforementioned options discussed above in relation to the method. [0029]
  • The invention also provides a system for synchronizing, comprising a first network device and a second network device, wherein each device includes elements for performing steps similar to that discussed above in relation to the overall method and device of the invention.[0030]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • It invention will be described in greater detail by means of embodiments with reference to the accompanying drawings, in which [0031]
  • FIG. 1 shows a schematic diagram illustrating a set of exemplary electronic devices between which synchronization of information is operable; [0032]
  • FIG. 2 shows a chronological sequence diagram of a synchronization process comprising several messages exchanged between a synchronizing client device and a synchronizing server device according to an embodiment of the invention; [0033]
  • FIG. 3[0034] a shows a chronological sequence diagram of a synchronization process analogously to FIG. 2 and being interrupted or stopped according to an embodiment of the invention;
  • FIG. 3[0035] b shows a chronological sequence diagram of a synchronization process resuming the interrupted or stopped synchronization process of FIG. 3a according to an embodiment of the invention;
  • FIG. 4 shows an excerpt of a XML-coded synchronization message in accordance with the synchronization process illustrated in FIG. 3[0036] b and according to an embodiment of the invention; and
  • FIG. 5 shows a schematic block diagram illustrating components comprised by a synchronizing client device and a synchronizing server device according to an embodiment of the invention.[0037]
  • DETAILED DESCRIPTION OF THE INVENTION
  • In the following, the embodiments of the invention will be described in the view of a system supporting the SyncML synchronization standard without limiting the invention thereto. Information relating to the SyncML standard can be obtained from the SyncML Initiative providing publicly the full standard documentation. Same or equal parts, components and/or operations shown in the figures will be referred to using the same reference numerals. [0038]
  • FIG. 1 shows a schematic diagram illustrating a set of exemplary electronic devices between which synchronization of information is operable. A certain data store content of for example a mobile terminal shall be harmonized with data store content provided by designated devices for example offering a central storage of this data store content to be accessible by means of several different mobile and/or stationary terminals. Conventionally, mobile terminals act as synchronization clients harmonizing or synchronizing data relating to certain predefined applications running on these synchronization clients with the contents of a data store or several data stores provided by dedicated server devices centrally storing the application related data. FIG. 1 illustrates a plurality of possible client devices and server devices operable with the synchronization operation. Typically, client devices are mobile stations like [0039] mobile phones 17 or personal digital assistants (PDA), mobile computers like notebooks 15, electronic devices storing digital data like digital cameras 16 as well as stationary terminals like desktop computers (PC). Further, dedicated synchronization server devices may be stationary terminals like desktop computers 10, dedicated network servers 11 e.g. operating their synchronization capability as networked synchronization applications or even mobile computers like notebooks 12 e.g. running synchronization server applications. It shall be noted that the client device functionality is not limited to mobile terminals as described above although the presented concept of synchronization is described in view of mobile terminals connected to dedicated serving devices.
  • A corresponding synchronization process in accordance with the SyncML protocol standard is established via an appropriate logical communication connection. The logical communication connection is provided by any communication networks in combination with transport protocols to which the synchronization protocol is adapted. A suitable communication network may be a local area network (LAN) or a wide area network (WAN) which may comprise the internet and an intranet of a company but also wire-based serial networks such as universal serial bus (USB) or standardized serial communication (e.g. RS-232). The participating synchronization devices may be also connected via a wireless communication network such as a mobile network supporting global system for mobile communication (GSM) services and/or supporting general packet radio services (GPRS), a third generation mobile communication network such as a universal mobile telecommunication system (UMTS) network, a wireless local area network (WLAN), short range radio communication network, such as a Bluetooth network, wireless local loop (WLL) or an infrared network (IrDA). The logical communication connection between the participating synchronization devices may be provided by a single communication network of the aforementioned type but also may be provided by several communication networks of the aforementioned types interconnected by dedicated network routing devices interconnecting communication networks connections and, if necessary, translating between data protocols of the respective employed communication networks. [0040]
  • With respect to the SyncML protocol, standard the SyncML synchronization protocol, and hence also with respect to the SyncML device management protocol standard, the SyncML device management protocol is implemented on the top of appropriate protocols in accordance with the type of employed communication network. Appropriate protocols on which top the SyncML synchronization protocol can be implemented are the hyper text transfer protocol (HTTP), the wireless session protocol (WSP) of the wireless application protocol (WAP) standard, the object exchange protocol (OBEX) used for cable connections, such as universal serial bus (USB) or RS-232, for short-range radio frequency connections (Bluetooth) or for infrared connections (IrDA), the transport control protocol/internet protocol (TCP/IP) stack and on top of the transport layer service which is offered by the e-mail protocol (e.g. simple mail transfer protocol, SMTP). [0041]
  • Transfer at the lower layer can be performed according to the underlying network using e.g. short messages SMS (short message service) or other signaling type transmission methods (e.g. USSD; unstructured supplementary service data), circuit-switched data calls, packet-switched data transfer services as well as paging message service, messages provided via cell broadcast and the like. [0042]
  • In the following the term data store shall be understood as broad as possible, i.e. shall cover arbitrary set(s) of data provided by data storage(s) to be accessed. In particular, the sets of data relate to specific applications and may be organized to meet application specific requirements such as data of calendar applications, directory applications, contact applications (e.g. vcard applications), e-mail applications and the like. Further, the arbitrary set(s) of data can be organized in one or more databases including data records providing data to be accessed. Further the term data store shall be understood as covering network data services or networked service(s), respectively, i.e. as covering arbitrary set(s) of data provided by networked service(s) to be accessed similar to data store(s). Conventionally, networks services are based on data stores having a specific service related data store content. [0043]
  • The following sequence diagrams depict operational sequences according to embodiments of the methods of the present invention. The depicted sequences of operations are just illustrative and not limiting thereto. Further realizations based on similar or related operational sequences are also possible. [0044]
  • FIG. 2 shows a chronological sequence diagram of a synchronization process comprising several messages exchanged between a synchronizing client device and a synchronizing server device according to an embodiment of the invention. [0045]
  • SyncML synchronization session are conceptually bounded into so called SyncML packages. The SyncML packages is simply a conceptual framework for one or more SyncML messages that are physically exchanged between the synchronizing devices and that are required to convey a set of synchronization information and commands. Not all SyncML packages are involved in any of the types of synchronization provided by the SyncML standard. The exact number of the SyncML messages depends on the amount of information to be conveyed. [0046]
  • A coarse overview of the SyncML packages is described in the following list. A detailed description can be obtained from the SyncML standard documents. [0047]
  • [0048] Package 0—initiation of the synchronization message. A client device can receive unsolicited messages, so-called “notifications” or “alerts”, instructing to cause the receiving device to establish a back connecting for initiating a synchronization session. Note that an identical effect to receiving a notification can be caused in other ways.
  • [0049] Package 1—initialization from client device to server device. One or more initialization messages are transmitted for example comprising: client device information (device identifier etc.), client device properties, client authentication, type of synchronization, identifications of databases of which data records are to be synchronized, stored LAST anchor, new NEXT anchor, etc.
  • [0050] Package 2—initialization from server device to client device. One or more initialization messages are transmitted for example comprising: server device information (device identifier etc.), server device properties, server authentication, response and status information about information comprised in one or more client initialization messages.
  • Packages 1 and 2 are part of the initialization phase. The following [0051] packages 3 to 6 are part of the synchronization phase of the synchronization message.
  • [0052] Package 3—Client to server synchronization. One or more client synchronization messages are transmitted for example comprising: client data modifications, i.e. any changes to the data of the client databases identified in the synchronization initialization, etc. In the case of a fast synchronization process, only data records that have been modified since the previous synchronization session (LAST anchor) are reported, in the case of a slow synchronization process all data records are reported.
  • [0053] Package 4—Server to client synchronization. One or more server synchronization messages are transmitted for example comprising: information about the server's analysis of transmitted client data modifications, and also server data modifications, i.e. any changes to the data of the server databases identified in the synchronization initialization, etc. In the case of a fast synchronization process, only data records that have been modified since the previous synchronization session (LAST anchor) are reported, in the case of a slow synchronization process all data records are reported.
  • [0054] Package 5—Data update status, map operation. One or more data update status messages are transmitted for example comprising information about the results of data update (synchronization due to server modifications), map operations (table) for mapping local unique identifier (LUID) and global unique identifier (GUID), etc. A local unique identifier is an identifier assigned to a data record and being locally unique on the client side, i.e. per device and application. The local unique identifier allows for identifying a data record. A global unique identifier is an identifier assigned to a data record and being locally unique on the server side.
  • [0055] Package 6—Map acknowledgement. One or more map acknowledgement messages are transmitted for example comprising acknowledgements informing the client device of receiving one or more data update status messages by the server, etc.
  • A client message in accordance with [0056] package 3 may cause a server response message in accordance with package 4 and vice verse depending on the synchronization information and commands contained in the client message or the server message, respectively.
  • Each message of a synchronization message contains a session identifier (session ID) such that the messages can be associated to a distinct synchronization session. Each message contains a message identifier (message ID) such that misalignments of exchanged messages at the client device and at the server device is prevented, respectively. Further, each last message of each package type contains a final indicator to indicate that this is the last one. [0057]
  • The synchronization process is further distinguished by what kind of information (which data records) is to be synchronized (a slow or a fast synchronization, i.e. total number of data records or only modifications since a distinct point in time), in which device(s) (in either the client device or the server device or in both devices) synchronization is performed and from which device synchronization is initiated. The type of synchronization can be e.g. two-way sync, slow sync, one-way sync from client only, refresh sync from client only, one-way sync from server only, refresh sync from server only and server alerted sync. [0058]
  • The designations of the enumerated types of synchronization itself describe the synchronization process and are easily understandable. A more detailed description reference is made to the SyncML standard documentation. [0059]
  • By way of example, the chronological sequence diagram and the synchronization process shown in Fig.[0060] 2 are based on a fast two-way synchronization type, respectively, although the scope of the invention is intended to include other synchronization types. A client 100 synchronizes with the server 110. In accordance with the above description of the package sequence, the depicted synchronization session consists of an initialization phase 210 followed by the synchronization phase each comprising several synchronization messages. All synchronization messages contain a same session ID (not depicted).
  • During the [0061] initialization phase 210 of the client 100 and server 110, both devices exchange device information (device identifiers etc.), device properties, device authentication information. The client 100 further defines the type of synchronization (herein fast two-way synchronization type) and reports the LAST anchor stored and a NEXT anchor newly defined to the server 110. The server 110 compares the LAST anchor transmitted by the client 100 with a corresponding value stored in the server 110 stored and conforms the LAST anchor and the NEXT anchor if the stored and received LAST anchors match to allow for fast synchronizing. The state (content) of the NEXT anchor is undefined (by the prior art, i.e. the prior art two-way synchronization process does not provide any particular value for it) in the server 110 (indicated by the “?” sign) up to the moment the client 100 transmits this newly defined one. If the anchors do not match, slow synchronization is alerted to the client 100. The information exchange during the initialization phase 210 is illustrated by a first operation 200 referring to an client initialization message corresponding to a package 1 message and a second operation 201 referring to an server initialization message corresponding to a package 2 message. Both messages referred to by operations 200 and 201, respectively, contain the same message ID 1.
  • After completion of the [0062] initialization phase 210, the client 100 prepares the synchronization 211, i.e. identifies the data records modified in accordance with the received LAST anchor. A client synchronization message (package 3 message type) referred to by operation 203 contains a first batch of client modifications, herein five modifications of a total of ten identified modifications. It may be noted that client modifications include commands and/or data content. The commands comprise above all an add, update, delete, etc. which are completed with data content to synchronize a respective data record. Additionally, this message further contains status information in accordance with the previous server initialization message. The server 110 receives this first client synchronization message, analyzes the received client modifications, solves possible conflicts emerging from the client modifications and processes the client modifications (operation 212). A corresponding server synchronization message (package 4 message type) referred to by operation 204 is transmitted to the client containing client modification acknowledgements and status information of the analyze and synchronization processing. Both the client synchronization message referred to by operation 203 and the server synchronization message referred to by operation 204 are identifiable by a common message ID, herein message ID 2. It should be noted, however, that the message numbering may deviate from what has been presented above. Indeed, the only purpose to be served by the message numbering is that each device has a consistent view of the message numbers, i.e., the numbering towards the client and the server do not even have to match.
  • A following client synchronization message ([0063] package 3 message type) referred to by an operation 206 contains a second batch of client modifications, herein remaining five modifications of ten total identified modifications. This client synchronization message contains additionally a final indicator indicating that this is the last client synchronization message containing client modifications. The server 110 receives this last client synchronization message, analyzes the received client modifications, solves possible conflicts emerging from the client modifications, processes the client modifications and due to the final indicator prepares (identified under consideration of the server's LAST anchor) server modifications to be transmitted to the client 100 (operation 212). A corresponding server synchronization message (package 4 message type) referred to by an operation 207 is transmitted to the client containing server modifications, client modification acknowledgements and status information of the analyze and synchronization processing. In accordance with the synchronization session depicted in FIG. 2, a single server synchronization message is sufficient for transmitting all identified server modifications to the client such that this message additionally contains a final indicator. In an operation 214 the client 100 processes the received server modifications. Both messages referred to by operations 206 and 207, respectively, contain the same message ID 3.
  • A client update status message ([0064] package 5 message type) referred to by operation 208 is subsequently conveyed to the server 110 containing acknowledge information and synchronization status information due to the server modifications and if necessary map operations to the server 110 processing the data record map table assigning local unique identifiers and global unique identifiers. Finally and not depicted the client update status message may be responded by the server 110 with one or more map acknowledgement messages (package 6 message type).
  • Conclusively, the synchronization session and the communication connection through which the synchronization messages of this session are communicated are closed. In the case where no error is detected regarding the finalizing of the synchronization session and the communication connection, the content of the NEXT anchor defined at the beginning of the synchronization session stored. This assignment is performed at the [0065] client 100 in an operation 215 and at the server in an operation 216 (in fact, the server may not call the anchor LAST, but nevertheless, the value stored to the anchor is the value of the NEXT anchor sent by the client). Thus a following fast synchronization process is possible.
  • It is noted that the defining of the NEXT anchor at the beginning of a synchronization session and the assigning of the NEXT anchor content to the LAST anchor after a proper finalization of the synchronization session prevent conflicts due to modification of data records on the client side or server side during the synchronization process. It may be additionally remarked that the content of the depicted LAST anchors and NEXT anchors are just to enlighten their usage. For practical purposes the LAST anchors and the NEXT anchors are normally composed of or derived from a date value and a time value, or they are numerical values of other kind. This kind of composing may ensure to generate an unambiguous LAST and NEXT anchors, respectively. [0066]
  • FIG. 3[0067] a shows a chronological sequence diagram of a synchronization process analogously to FIG. 2 and being interrupted or stopped according to an embodiment of the invention. The synchronization session depicted in FIG. 3a shall be identical to this one presented with reference to FIG. 2, i.e. the initial conditions, the operations 200-204 and the operations 210-212 are performed in the same way. Correspondingly, the operations depicted in FIG. 3a and the respective operations depicted in FIG. 2 and common with FIG. 3a are referenced by the same reference numerals.
  • In FIG. 3[0068] a the initialization phase and the corresponding initialization messages of the client 100 and the server 110 are omitted. The operation 203 referring to the first client synchronization message (package 3 type) containing the first 5 of 10 client modifications and the operation 204 referring to the first server synchronization message (package 4 message type) is shown containing status information corresponding to the client modifications.
  • In an [0069] operation 205 the synchronization is interrupted or stopped. An interruption or stop can be caused due to several reasons, for example the synchronization session is stopped on user interaction, on user initiative, on power loss of the client 100 or server 110 e.g. due to lack of battery or accumulator capacity, on loss of the communication connection e.g. due to loss of coverage in radio communication networks, due to interference in the communication connections only to present a selection of possible reasons.
  • In order to allow for resuming the synchronization session according to an embodiment of the inventive method the [0070] client 100 and the server 110 log information relating to the incomplete synchronization session. This information allowing for resuming the incomplete synchronization session comprises at least the LAST anchor and NEXT anchor at least in the client 100 which are logged in both the client 100 and the server 110. Further, this information can also comprise a session ID of the incomplete synchronization session, a message ID of the last message properly transmitted and for which the client 100 has received an acknowledgement, and one or more unique data record identifiers, i.e. local unique identifiers or global unique identifiers of data records according to those modifications have being transmitted and transmissions of those have being acknowledged during the incomplete synchronization session.
  • Alternatively instead of employing the NEXT anchor for logging the point in time at which the incomplete synchronization session has been started a new anchor, e.g. a PAUSE anchor, is defined and employed especially to be used for resuming an incomplete synchronization session. In the following the inventive concept is described with reference to the NEXT anchor but not limiting the inventive concept thereto. To adapt the description following below to such a new PAUSE anchor the term NEXT anchor is simply to be replaced by the term PAUSE anchor. [0071]
  • FIG. 3[0072] b shows a chronological sequence diagram of a synchronization session carrying on the interrupted or stopped incomplete synchronization session of FIG. 3a according to an embodiment of the invention.
  • The resuming synchronization session is initiated by an [0073] operation 250 referring to a new initialization message (package 1 type) comprising an alert command indicating the intend of the client 100 to the server 110 so as to resume the previous incomplete synchronization session described above with reference to FIG. 3a. This new initialization message contains at least the LAST anchor and the NEXT anchor which have been logged in accordance with the interruption of the previous incomplete synchronization session (operation 205 in FIG. 3a). The server receives these LAST anchor and the NEXT anchor from the client and compares them with those LAST anchor and the NEXT anchor logged by itself. It shall be noted that in comparison to the synchronization session presented in FIG. 2 and its analogy presented in FIG. 3a the NEXT anchor has a well defined state and content on the server side, respectively.
  • At least one of the [0074] client 100 and/or the server 110 may either command, initiate or carry out any one of the following four different options depending on whether either the LAST anchors match and/or whether the NEXT anchors match, as follows:
  • 1) In case the received and the logged LAST anchors and the received and the logged NEXT anchors match, the [0075] server 110 confirms the resuming of the incomplete synchronization session (resuming fast synchronization) by transmitting a server initialization message (package 2 type) referring to operation 251 and containing at least the LAST anchor and NEXT anchor for acknowledgement. The confirmation for allowing for resuming may be based additionally on further information relating to the incomplete synchronization session to be resumed (refer to operation 205 in FIG. 3a). For example, the aforementioned logged session ID of the incomplete synchronization session and/or logged a message ID of the last message properly transmitted are consulted during the examination operation of the logged anchors.
  • 2) In case the received and the logged LAST anchors match but the received and the logged NEXT anchors do not match, a (normal) fast synchronization session in the kind of that presented with reference to FIG. 2 is commanded by the server. The mismatching NEXT anchors prevent the resuming of the incomplete synchronization session described with reference to FIG. 3[0076] a.
  • 3) In case the received and the logged LAST anchors do not match but the received and the logged NEXT anchors match, a resuming slow synchronization session is commanded by the server. This resuming slow synchronization session is not depicted in Fig. [0077] 3 b. In short, the resuming slow synchronization session exchanges synchronization related information which allow to synchronize all data records predefined for being synchronized. But this synchronization related information is excluded from the resuming slow synchronization session which has been successfully exchanged and synchronized during the incomplete synchronization session shown in FIG. 3a.
  • 4) In case both the received and the logged LAST anchors and the received and the logged NEXT anchors do not match, neither a resuming fast synchronization session nor a resuming slow synchronization session can be initiated. Also a fast synchronization is not possible. A complete slow synchronization session (as aforementioned; not shown in FIG. 3[0078] b) comprising the exchange of all data records predefined for being synchronized has to be performed in order to establish a proper synchronization state between both participating devices.
  • The following description is based on the assumption that first case (the received and the logged LAST anchors as well as the received and the logged NEXT anchors match) is correct. This case is also indicated in the FIG. 3[0079] b having an illustrating of the state (value) of the logged LAST and NEXT anchors of both the client 100 and the server 110. The server 110 transmits a server initialization message (package 2 type) referring to operation 251 and containing at least the LAST anchor and NEXT anchor for acknowledgement.
  • As described with respect to [0080] operation 205 shown in FIG. 3a further log information relating to the incomplete synchronization session are logged at their interruption. As aforementioned this information may comprise at least one of a session ID of the incomplete synchronization session, a message ID of the last message properly transmitted and one or more unique data record identifiers, i.e. local unique identifiers or global unique identifiers of data records according to those modifications have being transmitted and transmissions of those have being acknowledged during the incomplete synchronization session. It shall be noted that the information provided by local unique identifiers may not be sufficient and data base identifiers may have to be logged supplementary to the local unique identifiers. The combination of a local unique identifier and the associated data base identifier enables to determine (unambiguously) a corresponding data record referenced by the local unique identifier. The data base identifiers may be uniform resource locators (URI) as known in the art.
  • The stored LAST anchor, the stored NEXT anchor and the stored information relating to the incomplete synchronization session allow for restoring (re-establishing) the state of the previous incomplete synchronization session at the moment of interruption. This kind of reconstruction allows now for generating the messages referred to by the operations [0081] 206-208 shown in FIG. 2, illustrating a complete synchronization session, and missing in FIG. 3a, illustrating the same synchronization session but incomplete due to the interruption after the transmission of the synchronization message referred to by operation 204 (FIG. 2 and FIG. 3a).
  • Both the new client initialization message and the server initialization message referred to by [0082] operations 250 and 251 comprise also information necessary for establishing a synchronization session such as described with reference to operations 200 and 201 shown in FIG. 2.
  • Herein, it is assumed that the conditions for resuming the incomplete synchronization session are satisfied and the incomplete synchronization session has been reconstructed which enables the [0083] client 100 to carry on according to an embodiment of the method of the invention. The client synchronization message (package 3 type) referred to by operation 252 corresponds to the second client synchronization message referred to by operation 206 illustrated in FIG. 2. The client synchronization message comprises accordingly the last 5 of 10 modifications and the final instructor to indicate that this message is the last client synchronization message of the current synchronization session. Moreover, the message numbering, i.e. the message ID, is adapted to the current resuming synchronization session and therefore the client synchronization message in FIG. 3b has a message ID 2 subsequent to the previous message ID 1 of the initialization messages (referred to by operating 250 and operation 251). (It is important to note that the scope of the invention is intended to include other types of message numbering sessions.) The server 110 response to the client synchronization device by transmitting a server synchronization message (package 3 type) referred to by operation 253, corresponding to the second client synchronization message referred to by operation 206 illustrated in FIG. 2. This server synchronization message contains server modifications, client modification acknowledgements and status information of the analyze and synchronization processing. In accordance with the synchronization session depicted in FIG. 2, a single server synchronization message is sufficient for transmitting all identified the server modifications to the client such that this message additionally contains a final indicator. Both messages referred to by operations 252 and 253, respectively, contain the same message ID 2.
  • A client update status message ([0084] package 5 message type) referred to by an operation 254 is subsequently conveyed to the server 110 containing acknowledge information and synchronization status information due to the server modifications and if necessary map operations to the server 110 processing the data record map table assigning local unique identifiers and global unique identifiers. This client update status message corresponds also and accordingly to the client update status message referred to by the operation 208 described with reference to FIG. 2. Finally, although not depicted, the client update status message may be responded to by the server 110 with one or more map acknowledgement messages (package 6 message type).
  • Conclusively, the synchronization session and the communication connection through which the synchronization messages of this session are communicated are ended. In case no error is detected regarding the finalizing of the synchronization session and the communication connection the content NEXT anchor defined at the beginning of the synchronization session is assigned to the LAST anchor. This assignment is performed at the [0085] client 100 in an operation 260 and at the server 110 in an operation 261. Thus a following fast synchronization process is operable. It is noted that the defining of the NEXT anchor at the beginning of a synchronization session and the assigning of the NEXT anchor content to the LAST anchor after a proper finalization of the synchronization session prevent conflicts due to modification of data records on the client side or server side during the synchronization process. It may be additionally remarked that the content the depicted LAST anchors and NEXT anchors are just to enlighten their usage. For practical purposes the LAST anchors and the NEXT anchors are normally composed of or derived from a date value and a time value. This kind of composing may ensure to generate an unambiguous LAST and NEXT anchors, respectively.
  • It shall be further noted that modifications on data records after an incomplete synchronization session and before a resuming synchronization session are not taken into account during the resuming of the incomplete synchronization session. The resuming synchronization session establishes a state of the data records or data stores comprising them as if the incomplete synchronization session had been completed successfully. For that reason, the NEXT anchor representing a time stamp of a synchronization session is not updated during an initialization of a resuming synchronization session. The modifications occurred after an incomplete synchronization session can be synchronized by initiating a synchronization session after a successful resuming synchronization session, especially, a fast synchronization session can be initiated since the LAST anchor stored in the [0086] client 100 and the server 110 are updated and valid.
  • The acknowledgements that have been described in the context of the embodiments of the invention are to be interpreted to be any kind of responses to data received from the other end, including either a positive or a negative status of the synchronization of the data or the message. Typically, an acknowledgement would confirm the updating of a record, but an acknowledgement may also carry information of an unsuccessful operation, e.g., caused by a non-found record. Nevertheless, the handling of such errors is not an issue of the invention, but it is left up to the implementation to take care of the errors somehow. However, the occurrence of errors should not interfere with the resumption of the session, that is, the session should resume at the first unacknowledged data item irrespective of whether there have been errors in the data items before it. [0087]
  • FIG. 4 shows an excerpt of a XML-coded synchronization message in accordance with the synchronization process illustrated in FIG. 3[0088] b and according to an embodiment of the invention.
  • To insure an easy and interoperable implementation the industry-standard extensible markup language (XML) has been selected for specifying the synchronization messages that synchronize deices and applications (using either plain text or the wireless binary XML, binary technique employed by wireless application protocol). SyncML has been designed within the memory capacity of all common mobile devices both in static code and run-time execution space. Especially the binary coded extensible markup language (WBXML) is generally used for coding data to reduce the memory required to store messages and to reduce the resources needed to process and to convey this data. [0089]
  • The SyncML contains a set of well-defined messages (as shown above) being represented as XML documents or as multipurpose internet mail extension (MIME) entities. The representation specification specifies an XML document type description (DTD) which allow the representation of all information requires to perform synchronization including data, metadata and commands. The synchronization specification specifies the SyncML messages that conform to the DTD in order to allow a SyncML client and SyncML server to exchange additions, deletion, updates and other status information. [0090]
  • Other DTDs define the representation of information on the device (such as memory capacity) and of various types of meta-information (such as security credentials). The SyncML messages are conceptually based on a container concept as defined by the representation protocol. The each SyncML messages contains a SyncML header section and a SyncML body section. The SyncML header contains routing, session, authentication and message information, whereas the SyncML body section contains various well-defined synchronization data comprising status information and synchronization commands, each forming a sub-container. [0091]
  • The XML-based coding presented in FIG. 4 is an excerpt of an example plain text coding of a SyncML message in accordance with the client synchronization message referred to by [0092] operation 252 described with reference to FIG. 3b. The depicted XML-based coding contains the SyncML header section extending from line 3 to line 9 and the SyncML body section extending from line 10 to line 57.
  • [0093] Line 1 and line 2 contain common information on the XML-coding employed and the character encoding used for textual representation and the SyncML versioning information.
  • Each SyncML header contains a document type definition versioning information (VerDTD, line [0094] 4), a SyncML protocol versioning information (VerProto, line 5), a session identifier (SessionID, line 6) valid during one synchronization session to assign unambiguous all belonging synchronization messages thereto and a message identifier (MsgID, line 7) being increased such that each receiving synchronizing device receives subsequently synchronization messages having increasing message identifier numerals. The aforementioned elements of the SyncML header described as example, further optional and obligator elements are contained in the SyncML header.
  • The SyncML body contains several logical and independent subsection. A first status information subsection extends from [0095] line 11 to line 19. This first status information subsection relates to the reference addressing of the data records to be synchronized. In particular, the target reference (TargetRef, line 16) defines an international mobile equipment identifier (IMEI) for addressing the client, in this case a cellular communication device, whereas the source reference (SourceRef, line 17) defines a uniform resource identifier (URI) for addressing the server, in this case a networked server device accessible via HTTP (hypertext transfer protocol). Further addressing of individual data records and data storage is based on this reference address information. An arbitrary number of further status information subsection can also be comprised which is indicated by the second status information subsection extending from line 20 to line 22. For example acknowledgments are coded as status information.
  • The SyncML body section contains further a synchronization subsection which is further subdivided. As example, a client indicated modification concerning an addition of an contact is comprised. [0096] Line 26 contains the relative addressing path of the contacts database of the client whereas line 29 contains the relative addressing path of the contacts database of the server. The relative addressing paths are relative to the reference addressing described above. The Meta subsection extending from line 31 to line 36 contains additional meta-information about the data record (the contact) to be added to the contact database in the server. The subsection extending form line 37 to line 51 contains the adding instruction and the corresponding contact data content. In line 40 the data format of the content data in line 46 to line 48 is defined as x-vcard meta-type, whereas the corresponding data contents is contented in line 46 to line 48. A local unique identifier (LUID) used for uniquely referencing this contact in the client is comprised in line 44. An arbitrary number of further synchronization information subsection can further be comprised which is indicated by an further synchronization information subsection extending from line 52 to line 54.
  • The comprised Final instruction in [0097] line 56 indicates to the server that this example client synchronization message is the last message containing client modifications to be reported to the server for synchronizing.
  • The aforementioned method for resuming an preceding incomplete synchronization session according to an embodiment of the invention can be implemented in a client device and a server device in various ways. The following implementation is an example implementation being based on a SyncML standard implementation in which components have an enhanced functionality and capability in order to be additionally adapted to operate in accordance with an embodiment of the invention. [0098]
  • FIG. 5 shows a schematic block diagram illustrating components comprised by a synchronizing client device and a synchronizing server device according to an embodiment of the invention. FIG. 5 depicts a [0099] server 110 representing a network device offering a networked synchronization service. The networked synchronization service is represented by one or more server applications 112 and corresponding associated one or more data storage components 111. One or more server applications 112 provide the data synchronization with other applications being represented by one or more client applications 102 of the client 100 being a networked device. The one or more data storage components 111 host data records for handling by the one or more server applications 112 and hence for synchronization with the client, wherein the one or more data storage components 111 are for example one or several databases. The server 110 and the client 100 are connected over a communication network transport. A selection of suitable communication networks for connecting client 100 and server 110 has been presented and discussed with reference to FIG. 1.
  • The one or [0100] more server applications 112 uses a data synchronization protocol implemented as a synchronization server engine 113 being a component of or a process on the server 110. The data synchronization protocol is manifested on the communication network by client applications accessing the provided synchronization server network service and resources, respectively. A synchronization server agent 115 interfaces and manages the access and the communication of the synchronization server engine 113 to the network and enables communication of data synchronization operations with the client 100 and the one or more client applications 102, respectively. The synchronization agent 115 performs the interfacing and communicating by involving a synchronization interface 116 and a synchronization adapter 117, wherein the synchronization interface 116 is for example an application program interface (API) to the synchronization adapter 117. The synchronization adapter 117 is a component of or a process on the server 110, respectively, which communicates conceptually with a counterpart synchronization adapter 107 on the client side. The synchronization adapter 117 is above all responsible for establishing and maintaining network communication connections between server 110 and client 100, i.e. between the one or more server applications 112 providing data synchronization service and the one or more client applications 102 accessing and employing this data synchronization service.
  • On the client side, the one or [0101] more client applications 102 with one or more associated data storage components 101 storing data records to be accessible by the one or more client applications 102 use a synchronization client agent 105, the synchronization interface 106 and the synchronization adapter 107 to access the provided server synchronization service. The synchronization client agent 105 enables communication of data synchronization operations with the server 110 and the one or more server applications 112, respectively. The synchronization interface 106 represents for example analogously an application program interface (API) to the synchronization adapter 107.
  • The aforementioned method according to an embodiment of the invention is included in the above presented conceptual component framework of the [0102] server 110 and the client 100 for example by implementing one or several code sections in the synchronization client agent 115 and the synchronization server agent 105, wherein the one or several code sections comprise instructions which at execution of them perform an embodiment of the method for resuming an incomplete synchronization session. This way of implementation ensures that in case of an interruption of a synchronization session required information for resuming this interrupted synchronization session are logged or stored in the client 100 and the server 110.
  • It will be obvious for those skilled in the art that as the technology advances, the inventive concept can be implemented in a different and broader number of ways. The invention and its embodiments are thus not limited to the examples described above but may vary within the scope of the claims. [0103]

Claims (16)

What is claimed is:
1. Method for synchronizing, comprising:
establishing a communication connection for synchronization of data between a first device and a second device each comprising a set of data to be synchronized;
transmitting a first update identifier and a second update identifier, said first update identifier denoting a preceding complete synchronization event having been performed between said first device and said second device, a value of said first update identifier having been stored at least in said first device, said second update identifier denoting a preceding incomplete synchronization event having been started between said first device and said second device, a value of said second update identifier having been stored at least in said first device;
retrieving or forming an indication of data that has been successfully synchronized during said preceding incomplete synchronization event;
using said indication, synchronizing data that has not been successfully synchronized during said preceding incomplete synchronization event; and
at least in said first device, updating said value of said first update identifier with said value of said second update identifier.
2. Method according to claim 1, wherein the method further comprises:
transmitting additional information relating to said preceding incomplete synchronization event and comprising at least one information out of a group comprising information about said preceding incomplete synchronization, and information about data successfully synchronized in accordance with received synchronization related information.
3. Method according to claim 1, further comprising:
in at least one of said first device and said second device:
in a first comparison, comparing a value of said first update identifier transmitted from the first device with a value of the second update identifier of the first device stored in the second device;
in a second comparison, comparing a value of said second update identifier transmitted from the first device with a value of the second update identifier of the first device stored in the second device;
carrying out at least one of the following options:
in case said second comparison yields a value of true, synchronizing data between said first device and said second device, said data comprising data that has not been exchanged during said preceding incomplete synchronization event;
in case said second comparison yields a value of false, synchronizing data between said first device and said second device, said data comprising at least data that has been synchronized during said preceding incomplete synchronization event;
in case said first comparison yields a value of false, synchronizing data between said first device and said second device, said data comprising data that has been synchronized during said preceding complete synchronization event; and
in case said first comparison yields a value of true:
synchronizing data between said first device and said second device, said data that has not been synchronized during said preceding complete synchronization event.
4. Method according to claim 1, wherein establishing a communication connection for synchronization further comprises:
transmitting an initial message instructing at least one of said first device and said second device to prepare for resuming said preceding incomplete synchronization.
5. Method according to claim 1, wherein said synchronization is based on a synchronization protocol in accordance with the SyncML standard, said first update identifier being a LAST synchronization anchor.
6. Method according to claim 5, wherein said second update identifier is at least one of a NEXT synchronization anchor and a PAUSE synchronization anchor.
7. Method according to claim 5, wherein said additional information relating to said preceding incomplete synchronization event comprises at least one information out of a group of a synchronization event session identifier (session ID), a synchronization message identifier (message ID), and one or more identifiers of acknowledged data and their respective data store.
8. Method according to claim 7, wherein said additional information has been stored at least in said first device before transmitting said first and second update identifiers.
9. Method according to claim 1, wherein data has been successfully synchronized if the acknowledgement for the data or the message containing the data has been successfully received, wherein the acknowledgement indicates either a positive or a negative status of the synchronization of the data or the message.
10. Software tool for synchronizing, comprising program portions for carrying out the operations of the method of claim 1, wherein said software tool is for being implemented in a computer program for being executed on a processing device, a terminal device, a communication terminal device or a network device.
11. Computer program for synchronizing, comprising program code sections for carrying out the operations of the method of claim 1, wherein said computer program is for being executed on a processing device, a terminal device, a communication terminal device or a network device.
12. Computer program product for synchronizing, said computer program product comprising program code sections stored on a computer readable medium for carrying out the method of the method of claim 1, wherein said computer program product is for being executed on a processing device, a terminal device, a communication terminal device or a network device.
13. A device for use in a network and capable of synchronizing data, comprising:
a storage medium comprising predefined sets of data to be synchronized;
a communication interface for establishing a communication connection for synchronization of data to another device for use in a network, for communicating a first update identifier and a second update identifier with said other network device and for exchanging data with said other network device,
wherein said first update identifier denotes a preceding complete synchronization event having been performed with said other network device, said first update identifier having been stored at least in said network device, said second update identifier denoting a preceding incomplete synchronization event, said second update identifier having been stored at least in said network device,
wherein said data comprises at least data that has not been synchronized during said preceding incomplete synchronization event;
a retrieving or a forming component for retrieving or forming an indication of data that has been synchronized during said preceding incomplete synchronization event, said indication having been stored in said network device;
a synchronizing component for synchronizing of data in accordance with said indication; and
an updating component for updating contents of said first update identifier stored with contents of said second update identifier stored.
14. A device according to claim 12, wherein
said communication interface is adapted for transmitting supplementary additional information relating to said preceding incomplete synchronization event,
wherein said additional information comprises at least one information out of a group comprising information about said preceding incomplete synchronization, information about a last successful exchange of synchronization related information and information about data successfully synchronized in accordance with received synchronization related information.
15. A device according to claim 13, further comprising:
a component for comparing, in a first comparison, a value of said first update identifier transmitted from the device with a value of the second update identifier of the device stored in the other device, and for comparing, in a second comparison, a value of said second update identifier transmitted from the first device with a value of the second update identifier of the device stored in the other device, said component for carrying out at least one of the following options:
in case said second comparison yields a value of true, synchronizing data between said device and said other device, said data comprising data that has not been exchanged during said preceding incomplete synchronization event;
in case said second comparison yields a value of false, synchronizing data between said device and said other device, said data comprising at least data that has been synchronized during said preceding incomplete synchronization event;
in case said first comparison yields a value of false, synchronizing data between said device and said other device, said data comprising data that has been synchronized during said preceding complete synchronization event; and
in case said first comparison yields a value of true:
synchronizing data between said device and said other device, said data that has not been synchronized during said preceding complete synchronization event.
16. System for synchronizing, comprising a first network device and a second network device, wherein said first network device comprises:
a storage medium comprising predefined set of data to be synchronized;
a communication interface for establishing a communication connection for synchronization of data to said second network device for use in a network, for communicating a first update identifier and a second update identifier to said second network device and for exchanging data with said second network device;
a retrieving or a forming component for retrieving or forming an indication of data that has been synchronized during said preceding incomplete synchronization event, said indication having been stored in said first network device;
a synchronizing component for synchronizing of data in accordance with said indication; and
an updating component for updating contents of said first update identifier stored with contents of said second update identifier stored;
wherein said second network device comprises:
a storage medium comprising predefined set of data to be synchronized;
a communication interface for establishing a communication connection for synchronization of data to said first network device for use in a network, for communicating a first update identifier and a second update identifier to said first network device and for exchanging data with said first network device, said second update identifier and said second update identifier being stored,
a synchronizing component for synchronizing of data in accordance with said indication;
an updating component for updating contents of said first update identifier stored with contents of said second update identifier stored; and
a component for comparing, in a first comparison, a value of said first update identifier transmitted from said first network device with a value of said first update identifier stored in said second network device, and for comparing, in a second comparison, a value of said second update identifier transmitted from said first network device with a value of said second update identifier stored in the second network device;
wherein said first update identifier denotes a preceding complete synchronization event having been performed with said second network device, said first update identifier having been stored at least in one network device, said second update identifier denoting a preceding incomplete synchronization event having been performed with said second network device, said second update identifier having been stored at least in one network device; and
wherein said data comprises at least data that has not been synchronized during said preceding incomplete synchronization event in case that said comparing yields the same identifiers, said exchanged information being based on said indication.
US10/236,010 2002-09-03 2002-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process Abandoned US20040044799A1 (en)

Priority Applications (15)

Application Number Priority Date Filing Date Title
US10/236,010 US20040044799A1 (en) 2002-09-03 2002-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US10/291,192 US9792343B2 (en) 2002-09-03 2002-11-08 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
MYPI20033311 MY146705A (en) 2002-09-03 2003-09-02 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
TW092124270A TWI231426B (en) 2002-09-03 2003-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
AU2003255972A AU2003255972A1 (en) 2002-09-03 2003-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
MXPA05002408A MXPA05002408A (en) 2002-09-03 2003-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process.
PCT/IB2003/003737 WO2004023233A2 (en) 2002-09-03 2003-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
CA002497525A CA2497525A1 (en) 2002-09-03 2003-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
JP2004533728A JP4494970B2 (en) 2002-09-03 2003-09-03 Method, apparatus, and system for synchronizing data in response to an interrupted synchronization process
EP20080104710 EP1980954A1 (en) 2002-09-03 2003-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
KR1020057003718A KR100728076B1 (en) 2002-09-03 2003-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
EP03793961A EP1540503A4 (en) 2002-09-03 2003-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
CN038249065A CN1708755B (en) 2002-09-03 2003-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
EGNA2005000037 EG23768A (en) 2002-09-03 2005-03-02 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
JP2009014610A JP4829316B2 (en) 2002-09-03 2009-01-26 Method, apparatus, and system for synchronizing data in response to an interrupted synchronization process

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/236,010 US20040044799A1 (en) 2002-09-03 2002-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US10/291,192 Continuation-In-Part US9792343B2 (en) 2002-09-03 2002-11-08 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process

Publications (1)

Publication Number Publication Date
US20040044799A1 true US20040044799A1 (en) 2004-03-04

Family

ID=31977595

Family Applications (2)

Application Number Title Priority Date Filing Date
US10/236,010 Abandoned US20040044799A1 (en) 2002-09-03 2002-09-03 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US10/291,192 Expired - Lifetime US9792343B2 (en) 2002-09-03 2002-11-08 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process

Family Applications After (1)

Application Number Title Priority Date Filing Date
US10/291,192 Expired - Lifetime US9792343B2 (en) 2002-09-03 2002-11-08 Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process

Country Status (5)

Country Link
US (2) US20040044799A1 (en)
EP (1) EP1980954A1 (en)
JP (1) JP4829316B2 (en)
CN (1) CN1708755B (en)
MY (1) MY146705A (en)

Cited By (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205263A1 (en) * 2002-09-03 2004-10-14 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US20050094716A1 (en) * 2002-09-12 2005-05-05 Nokia Corporation Code phase synchronization
US20050235019A1 (en) * 2004-04-06 2005-10-20 Samsung Electronics Co., Ltd. Method and system for transmitting data for data synchronization between server and client when data synchronization session was abnormally terminated
US20060074841A1 (en) * 2004-09-27 2006-04-06 Harikrishnan Sugumaran Method, system, and program for translating and interfacing between data pools and product information management (PIM) systems
US20070014277A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router repository
US20070014303A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router
US20070014307A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router forwarding
US20070016636A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Methods and systems for data transfer and notification mechanisms
US20070014300A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router notification
US20070028293A1 (en) * 2005-07-14 2007-02-01 Yahoo! Inc. Content router asynchronous exchange
US20070038703A1 (en) * 2005-07-14 2007-02-15 Yahoo! Inc. Content router gateway
US20070109592A1 (en) * 2005-11-15 2007-05-17 Parvathaneni Bhaskar A Data gateway
US20070150620A1 (en) * 2005-06-30 2007-06-28 Infinera Corporation Efficient Synchronization of Element Management Systems to Network Element Attributes
US20070156434A1 (en) * 2006-01-04 2007-07-05 Martin Joseph J Synchronizing image data among applications and devices
US20070276911A1 (en) * 2003-07-11 2007-11-29 Soujanya Bhumkar Method and System for Transferring Contact Information and Calendar Events to a Wireless Device Via E-Mail
US20080034008A1 (en) * 2006-08-03 2008-02-07 Yahoo! Inc. User side database
US20080098004A1 (en) * 2006-10-18 2008-04-24 Funai Electric Co., Ltd. Client server system
US20080130812A1 (en) * 2006-11-30 2008-06-05 Seoul National University Industry Foundation Data synchronization system
US20080270629A1 (en) * 2007-04-27 2008-10-30 Yahoo! Inc. Data snychronization and device handling using sequence numbers
WO2009024083A1 (en) 2007-08-21 2009-02-26 Huawei Technologies Co., Ltd. Method, device and system for data synchronization of a control session
US20090106245A1 (en) * 2007-10-18 2009-04-23 Jonathan Salcedo Method and apparatus for identifying and resolving conflicting data records
US20090196311A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Initiation and expiration of objects in a knowledge based framework for a multi-master synchronization environment
US20090198772A1 (en) * 2008-01-31 2009-08-06 Samsung Electronics Co. Ltd. Data synchronization method and system between devices
CN101542435A (en) * 2006-08-17 2009-09-23 捷讯研究有限公司 Enhanced user interface manager and method for managing non-contemporaneous user interface modules
US20090271845A1 (en) * 2007-05-30 2009-10-29 Qin Zhao Method and device for initiating session
US20100268784A1 (en) * 2009-04-17 2010-10-21 Marc Henness Data synchronization system and method
CN102013123A (en) * 2010-11-22 2011-04-13 北京长城高腾信息产品有限公司 Lottery ticket machine for preventing from being operated by external input equipment
US8024290B2 (en) 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US20110295947A1 (en) * 2010-06-01 2011-12-01 Htc Corporation Communication apparatus and method thereof
US8095599B2 (en) 2005-10-20 2012-01-10 International Business Machines Corporation Mail-based web application and document delivery
US20120176941A1 (en) * 2006-11-14 2012-07-12 Raytheon Company Wireless mesh network with dynamic back off and method of operation
US20120215896A1 (en) * 2010-11-05 2012-08-23 Johannsen Eric A Incremental browser-based device fingerprinting
CN102651683A (en) * 2011-02-24 2012-08-29 中国电信股份有限公司 User group information synchronization method, system and server
US8392617B1 (en) * 2011-12-06 2013-03-05 Google Inc. Browsing context continuation across multiple devices
US8713197B1 (en) * 2003-05-12 2014-04-29 F5 Networks, Inc. Method and apparatus for managing network traffic
US8775374B2 (en) 2009-09-04 2014-07-08 Kii Corporation Data synchronization system and data synchronization method
US20140249852A1 (en) * 2013-03-04 2014-09-04 Hello Inc. Methods using patient monitoring devices with unique patient IDs and a telemetry system
US20140250181A1 (en) * 2013-03-04 2014-09-04 Hello Inc. Method using wearable device with unique user ID and telemetry system in communication with one or more social networks
US20140258229A1 (en) * 2013-03-05 2014-09-11 Microsoft Corporation Reconciliation of geo-replicated database clusters
US20150205463A1 (en) * 2012-06-26 2015-07-23 Google Inc. Method for storing form data
US20150269217A1 (en) * 2008-07-22 2015-09-24 International Business Machines Corporation Embedded change logging for data synchronization
US9159223B2 (en) 2013-03-04 2015-10-13 Hello, Inc. User monitoring device configured to be in communication with an emergency response system or team
GB2527798A (en) * 2014-07-02 2016-01-06 Ibm Synchronizing operations between regions when a network connection fails
US9320434B2 (en) 2013-03-04 2016-04-26 Hello Inc. Patient monitoring systems and messages that send alerts to patients only when the patient is awake
US9330561B2 (en) 2013-03-04 2016-05-03 Hello Inc. Remote communication systems and methods for communicating with a building gateway control to control building systems and elements
US9339188B2 (en) 2013-03-04 2016-05-17 James Proud Methods from monitoring health, wellness and fitness with feedback
US9345403B2 (en) 2013-03-04 2016-05-24 Hello Inc. Wireless monitoring system with activity manager for monitoring user activity
US9345404B2 (en) 2013-03-04 2016-05-24 Hello Inc. Mobile device that monitors an individuals activities, behaviors, habits or health parameters
US9357922B2 (en) 2013-03-04 2016-06-07 Hello Inc. User or patient monitoring systems with one or more analysis tools
US9392939B2 (en) 2013-03-04 2016-07-19 Hello Inc. Methods using a monitoring device to monitor individual activities, behaviors or habit information and communicate with a database with corresponding individual base information for comparison
US9398854B2 (en) 2013-03-04 2016-07-26 Hello Inc. System with a monitoring device that monitors individual activities, behaviors or habit information and communicates with a database with corresponding individual base information for comparison
US9406220B2 (en) 2013-03-04 2016-08-02 Hello Inc. Telemetry system with tracking receiver devices
US9432091B2 (en) 2013-03-04 2016-08-30 Hello Inc. Telemetry system with wireless power receiver and monitoring devices
US9430938B2 (en) 2013-03-04 2016-08-30 Hello Inc. Monitoring device with selectable wireless communication
US9526422B2 (en) 2013-03-04 2016-12-27 Hello Inc. System for monitoring individuals with a monitoring device, telemetry system, activity manager and a feedback system
US9532716B2 (en) 2013-03-04 2017-01-03 Hello Inc. Systems using lifestyle database analysis to provide feedback
US9634921B2 (en) 2013-03-04 2017-04-25 Hello Inc. Wearable device coupled by magnets positioned in a frame in an interior of the wearable device with at least one electronic circuit
US9681472B2 (en) * 2014-01-31 2017-06-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for mapping identities to device-to-device synchronization sequences
US9737214B2 (en) 2013-03-04 2017-08-22 Hello Inc. Wireless monitoring of patient exercise and lifestyle
US9848776B2 (en) 2013-03-04 2017-12-26 Hello Inc. Methods using activity manager for monitoring user activity
US10162951B2 (en) 2006-02-23 2018-12-25 Microsoft Technology Licensing, Llc Non-intrusive background synchronization when authentication is required
CN109391656A (en) * 2017-08-09 2019-02-26 中兴通讯股份有限公司 A kind of restoration methods of device management session, device, client and server
CN110781373A (en) * 2019-10-29 2020-02-11 北京字节跳动网络技术有限公司 List updating method and device, readable medium and electronic equipment
US11010347B2 (en) 2014-10-31 2021-05-18 Canon Kabushiki Kaisha Information processing apparatus with server-location dependent timing, control method thereof, and program
US11233851B2 (en) 2012-08-10 2022-01-25 Dropbox, Inc. System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
US11269852B2 (en) * 2004-11-08 2022-03-08 Dropbox, Inc. Method and apparatus for a file sharing and synchronization system
US11334596B2 (en) 2018-04-27 2022-05-17 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689721B2 (en) * 1998-05-29 2010-03-30 Research In Motion Limited System and method for pushing information from a host system to a mobile data communication device
US20040230670A1 (en) * 2002-11-25 2004-11-18 Markus Schmidt-Karaca Method and system for representing, configuring and deploying distributed applications
US7533158B2 (en) * 2003-01-17 2009-05-12 At&T Intellectual Property I, L.P. System and method for handling digital content delivery to portable devices
US20050060578A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Method of and system for authentication downloading
US20050060370A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Version based content distribution and synchronization system and method
US7925790B2 (en) * 2003-09-17 2011-04-12 Sony Corporation Middleware filter agent between server and PDA
US7735000B2 (en) * 2003-09-25 2010-06-08 Sony Corporation Information and content exchange document type definitions to support content distribution
KR100584316B1 (en) * 2003-10-17 2006-05-26 삼성전자주식회사 System and method for synchronizing the presence attributes between the terminal and data server
US7437484B2 (en) * 2003-12-29 2008-10-14 International Business Machines Corporation Method for optimizing synchronization
US20060041893A1 (en) * 2004-08-20 2006-02-23 Microsoft Corporation Extensible device synchronization architecture and user interface
US7672978B2 (en) * 2004-08-20 2010-03-02 Nokia Corporation Handling of content in a data processing device
US8682844B2 (en) * 2005-01-28 2014-03-25 Sap Ag Method and apparatus for collision resolution in an asynchronous database system
US8001076B2 (en) * 2005-07-12 2011-08-16 International Business Machines Corporation Ranging scalable time stamp data synchronization
US20070079260A1 (en) * 2005-10-04 2007-04-05 Bhogal Kulvir S Method and apparatus to transmit a calendar event in target calendaring system format
KR100724879B1 (en) * 2006-03-06 2007-06-04 삼성전자주식회사 Method for updating daylight saving time in wireless terminal
CN100450108C (en) * 2006-03-23 2009-01-07 华为技术有限公司 System, device and method for synchronously processing e-mail using data
KR100772879B1 (en) * 2006-04-19 2007-11-02 삼성전자주식회사 Apparatus, system and method for executing discovery in network
US7509350B2 (en) * 2006-06-01 2009-03-24 Research In Motion Limited Method and apparatus for synchronizing of databases
DE602006002597D1 (en) * 2006-06-01 2008-10-16 Research In Motion Ltd Method and device for synchronizing databases
US8572182B2 (en) 2006-07-21 2013-10-29 Blackberry Limited Handling notifications in instant messaging systems
CA2660366C (en) * 2006-08-17 2016-08-09 Research In Motion Limited Enhanced user interface manager and method for managing non-contemporaneous user interface modules
US7653664B2 (en) * 2006-11-03 2010-01-26 Microsoft Corporation Anchor for database synchronization excluding uncommitted transaction modifications
US7805403B2 (en) * 2007-01-07 2010-09-28 Apple Inc. Synchronization methods and systems
US7715444B2 (en) * 2007-02-02 2010-05-11 Palm, Inc Resuming a previously interrupted peer-to-peer synchronization operation
CN101387972B (en) * 2007-09-14 2010-06-09 英业达股份有限公司 Network synchronizing system and method thereof for application software
US20090234872A1 (en) * 2008-03-11 2009-09-17 Microsoft Corporation Synchronization of disconnected/offline data processing/entry
US20100131398A1 (en) * 2008-03-20 2010-05-27 Theresa Molloy System and method for providing market insight regarding securities trading
US8135769B2 (en) * 2008-06-06 2012-03-13 Apple Inc. Synchronization improvements
US20090307280A1 (en) * 2008-06-06 2009-12-10 Mccarthy Brendan A Synchronization improvements
US8429123B2 (en) * 2008-06-06 2013-04-23 Apple Inc. Synchronization improvements
US20090319593A1 (en) * 2008-06-18 2009-12-24 International Business Machines Corporation Optimized Message Format for Synchronization Flows Between Transaction Processing Systems
US8209437B2 (en) * 2008-09-25 2012-06-26 Rockliffe Systems, Inc. Personal information management data synchronization
US8924592B2 (en) * 2009-09-29 2014-12-30 Citrix Systems, Inc. Synchronization of server-side cookies with client-side cookies
US8516062B2 (en) 2010-10-01 2013-08-20 @Pay Ip Holdings Llc Storage, communication, and display of task-related data
US8918467B2 (en) 2010-10-01 2014-12-23 Clover Leaf Environmental Solutions, Inc. Generation and retrieval of report information
US9060239B1 (en) * 2011-08-09 2015-06-16 Zscaler, Inc. Cloud based mobile device management systems and methods
US9369433B1 (en) 2011-03-18 2016-06-14 Zscaler, Inc. Cloud based social networking policy and compliance systems and methods
US20130086437A1 (en) 2011-09-30 2013-04-04 Microsoft Corporation Communicating unexpected collaboration server responses on reconnection
KR102020358B1 (en) * 2013-03-14 2019-11-05 삼성전자 주식회사 Terminal and method for synchronizing application thereof
US9606856B2 (en) 2014-12-03 2017-03-28 International Business Machines Corporation Event logging and error recovery
US20170091253A1 (en) * 2015-09-29 2017-03-30 Dropbox, Inc. Interrupted synchronization detection and recovery
US10452635B2 (en) 2016-03-23 2019-10-22 Microsoft Technology Licensing, Llc Synchronizing files on different computing devices using file anchors
US11297058B2 (en) 2016-03-28 2022-04-05 Zscaler, Inc. Systems and methods using a cloud proxy for mobile device management and policy
US20180054480A1 (en) * 2016-08-17 2018-02-22 Microsoft Technology Licensing, Llc Interrupt synchronization of content between client device and cloud-based storage service
US11341100B2 (en) * 2016-12-12 2022-05-24 Egnyte, Inc. System and method for eliminating full rescan synchronizations on service restarts
CN109587065B (en) 2017-09-28 2021-02-23 北京金山云网络技术有限公司 Method, device, switch, equipment and storage medium for forwarding message
CN108377265B (en) * 2018-02-07 2020-10-16 南京南瑞继保电气有限公司 Real-time synchronization method for control protection distributed system in power system
US10795747B2 (en) * 2018-05-17 2020-10-06 Microsoft Technology Licensing, Llc File synchronizing service status monitoring and error handling
CN110765204B (en) * 2019-09-30 2022-02-01 武汉达梦数据库股份有限公司 Method and device for processing incremental synchronous abnormal interrupt condition
CN111737204B (en) * 2020-06-12 2024-03-19 北京百度网讯科技有限公司 File directory traversal method, device, equipment and medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549917B1 (en) * 1999-04-29 2003-04-15 Waveware Communications, Inc. Synchronization of host computers and handheld remote computers
US20040205263A1 (en) * 2002-09-03 2004-10-14 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US6810405B1 (en) * 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US6820204B1 (en) * 1999-03-31 2004-11-16 Nimesh Desai System and method for selective information exchange
US6829655B1 (en) * 2001-03-28 2004-12-07 Siebel Systems, Inc. Method and system for server synchronization with a computing device via a companion device

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684990A (en) 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
DE19836347C2 (en) * 1998-08-11 2001-11-15 Ericsson Telefon Ab L M Fault-tolerant computer system
US6477545B1 (en) 1998-10-28 2002-11-05 Starfish Software, Inc. System and methods for robust synchronization of datasets
US6516314B1 (en) 1998-11-17 2003-02-04 Telefonaktiebolaget L M Ericsson (Publ) Optimization of change log handling
US7007003B1 (en) * 1998-12-04 2006-02-28 Intellisync Corporation Notification protocol for establishing synchronization mode for use in synchronizing databases
US6247135B1 (en) * 1999-03-03 2001-06-12 Starfish Software, Inc. Synchronization process negotiation for computing devices
US6535892B1 (en) 1999-03-08 2003-03-18 Starfish Software, Inc. System and methods for exchanging messages between a client and a server for synchronizing datasets
US6941326B2 (en) 2001-01-24 2005-09-06 Microsoft Corporation Accounting for update notifications in synchronizing data that may be represented by different data structures
US7072911B1 (en) * 2001-07-27 2006-07-04 Novell, Inc. System and method for incremental replication of changes in a state based distributed database
US7761535B2 (en) 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
US20030194999A1 (en) * 2002-04-16 2003-10-16 Quick Roy Franklin Method and apparatus for reestablishing crypto-sync synchronization in a communication system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6810405B1 (en) * 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US6820204B1 (en) * 1999-03-31 2004-11-16 Nimesh Desai System and method for selective information exchange
US6549917B1 (en) * 1999-04-29 2003-04-15 Waveware Communications, Inc. Synchronization of host computers and handheld remote computers
US6829655B1 (en) * 2001-03-28 2004-12-07 Siebel Systems, Inc. Method and system for server synchronization with a computing device via a companion device
US20040205263A1 (en) * 2002-09-03 2004-10-14 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process

Cited By (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040205263A1 (en) * 2002-09-03 2004-10-14 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US9792343B2 (en) 2002-09-03 2017-10-17 Nokia Technologies Oy Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US20050094716A1 (en) * 2002-09-12 2005-05-05 Nokia Corporation Code phase synchronization
US7352834B2 (en) * 2002-09-12 2008-04-01 Nokia Corporation Code phase synchronization
US8713197B1 (en) * 2003-05-12 2014-04-29 F5 Networks, Inc. Method and apparatus for managing network traffic
US20070276911A1 (en) * 2003-07-11 2007-11-29 Soujanya Bhumkar Method and System for Transferring Contact Information and Calendar Events to a Wireless Device Via E-Mail
US20050235019A1 (en) * 2004-04-06 2005-10-20 Samsung Electronics Co., Ltd. Method and system for transmitting data for data synchronization between server and client when data synchronization session was abnormally terminated
US20060074841A1 (en) * 2004-09-27 2006-04-06 Harikrishnan Sugumaran Method, system, and program for translating and interfacing between data pools and product information management (PIM) systems
US20080091648A1 (en) * 2004-09-27 2008-04-17 International Business Machines Corporation Method, system, and program for translating and interfacing between data pools and product information management (pim) systems
US7865403B2 (en) 2004-09-27 2011-01-04 International Business Machines Corporation Method, system, and program for translating and interfacing between data pools and product information management (PIM) systems
US8140410B2 (en) 2004-09-27 2012-03-20 International Business Machines Corporation Method, system, and program for translating and interfacing between data pools and product information management (PIM) systems
US20080091640A1 (en) * 2004-09-27 2008-04-17 International Business Machines Corporation Method, system, and program for translating and interfacing between data pools and product information management (pim) systems
US11789930B2 (en) * 2004-11-08 2023-10-17 Dropbox, Inc. Method and apparatus for a file sharing and synchronization system
US11269852B2 (en) * 2004-11-08 2022-03-08 Dropbox, Inc. Method and apparatus for a file sharing and synchronization system
US11334555B2 (en) 2004-11-08 2022-05-17 Dropbox, Inc. Method and apparatus for a file sharing and synchronization system
US11341114B2 (en) 2004-11-08 2022-05-24 Dropbox, Inc. Method and apparatus for a file sharing and synchronization system
US20220179842A1 (en) * 2004-11-08 2022-06-09 Dropbox, Inc. Method and apparatus for a file sharing and synchronization system
US20070150620A1 (en) * 2005-06-30 2007-06-28 Infinera Corporation Efficient Synchronization of Element Management Systems to Network Element Attributes
US7783746B2 (en) * 2005-06-30 2010-08-24 Infinera Corporation Efficient synchronization of element management systems to network element attributes
US20070028000A1 (en) * 2005-07-14 2007-02-01 Yahoo! Inc. Content router processing
US20090307370A1 (en) * 2005-07-14 2009-12-10 Yahoo! Inc Methods and systems for data transfer and notification mechanisms
US20070014277A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router repository
US20070014303A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router
US7849199B2 (en) 2005-07-14 2010-12-07 Yahoo ! Inc. Content router
US20070014307A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router forwarding
US20070038703A1 (en) * 2005-07-14 2007-02-15 Yahoo! Inc. Content router gateway
US20070016636A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Methods and systems for data transfer and notification mechanisms
US20070028293A1 (en) * 2005-07-14 2007-02-01 Yahoo! Inc. Content router asynchronous exchange
US20070014300A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router notification
US20070014278A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Counter router core variants
US8095599B2 (en) 2005-10-20 2012-01-10 International Business Machines Corporation Mail-based web application and document delivery
US8024290B2 (en) 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US20070109592A1 (en) * 2005-11-15 2007-05-17 Parvathaneni Bhaskar A Data gateway
US8065680B2 (en) 2005-11-15 2011-11-22 Yahoo! Inc. Data gateway for jobs management based on a persistent job table and a server table
US20070156434A1 (en) * 2006-01-04 2007-07-05 Martin Joseph J Synchronizing image data among applications and devices
US9367832B2 (en) 2006-01-04 2016-06-14 Yahoo! Inc. Synchronizing image data among applications and devices
US10162951B2 (en) 2006-02-23 2018-12-25 Microsoft Technology Licensing, Llc Non-intrusive background synchronization when authentication is required
US20080034008A1 (en) * 2006-08-03 2008-02-07 Yahoo! Inc. User side database
CN101542435A (en) * 2006-08-17 2009-09-23 捷讯研究有限公司 Enhanced user interface manager and method for managing non-contemporaneous user interface modules
US20080098004A1 (en) * 2006-10-18 2008-04-24 Funai Electric Co., Ltd. Client server system
US20120176941A1 (en) * 2006-11-14 2012-07-12 Raytheon Company Wireless mesh network with dynamic back off and method of operation
US8670374B2 (en) * 2006-11-14 2014-03-11 Raytheon Company Wireless mesh network with dynamic back off and method of operation
US8874795B2 (en) * 2006-11-30 2014-10-28 Seoul National University Industry Foundation Data synchronization system
US20080130812A1 (en) * 2006-11-30 2008-06-05 Seoul National University Industry Foundation Data synchronization system
KR101221672B1 (en) * 2006-11-30 2013-01-14 재단법인서울대학교산학협력재단 Data synchronization system
US20080270629A1 (en) * 2007-04-27 2008-10-30 Yahoo! Inc. Data snychronization and device handling using sequence numbers
US20090271845A1 (en) * 2007-05-30 2009-10-29 Qin Zhao Method and device for initiating session
EP2169896A4 (en) * 2007-08-21 2010-11-10 Huawei Tech Co Ltd Method, device and system for data synchronization of a control session
EP2169896A1 (en) * 2007-08-21 2010-03-31 Huawei Technologies Co., Ltd. Method, device and system for data synchronization of a control session
WO2009024083A1 (en) 2007-08-21 2009-02-26 Huawei Technologies Co., Ltd. Method, device and system for data synchronization of a control session
US8131759B2 (en) * 2007-10-18 2012-03-06 Asurion Corporation Method and apparatus for identifying and resolving conflicting data records
US8965923B1 (en) * 2007-10-18 2015-02-24 Asurion, Llc Method and apparatus for identifying and resolving conflicting data records
US20090106245A1 (en) * 2007-10-18 2009-04-23 Jonathan Salcedo Method and apparatus for identifying and resolving conflicting data records
US20090196311A1 (en) * 2008-01-31 2009-08-06 Microsoft Corporation Initiation and expiration of objects in a knowledge based framework for a multi-master synchronization environment
US20090198772A1 (en) * 2008-01-31 2009-08-06 Samsung Electronics Co. Ltd. Data synchronization method and system between devices
US8171171B2 (en) * 2008-01-31 2012-05-01 Samsug Electronics Co., Ltd Data synchronization method and system between devices
US9495407B2 (en) * 2008-07-22 2016-11-15 International Business Machines Corporation Embedded change logging for data synchronization
US20150269217A1 (en) * 2008-07-22 2015-09-24 International Business Machines Corporation Embedded change logging for data synchronization
US20100268784A1 (en) * 2009-04-17 2010-10-21 Marc Henness Data synchronization system and method
US8775374B2 (en) 2009-09-04 2014-07-08 Kii Corporation Data synchronization system and data synchronization method
US20110295947A1 (en) * 2010-06-01 2011-12-01 Htc Corporation Communication apparatus and method thereof
US8601109B2 (en) * 2010-11-05 2013-12-03 Bluecava, Inc. Incremental browser-based device fingerprinting
US20120215896A1 (en) * 2010-11-05 2012-08-23 Johannsen Eric A Incremental browser-based device fingerprinting
US9942349B2 (en) 2010-11-05 2018-04-10 Bluecava, Inc. Incremental browser-based device fingerprinting
CN102013123A (en) * 2010-11-22 2011-04-13 北京长城高腾信息产品有限公司 Lottery ticket machine for preventing from being operated by external input equipment
CN102651683A (en) * 2011-02-24 2012-08-29 中国电信股份有限公司 User group information synchronization method, system and server
US8392617B1 (en) * 2011-12-06 2013-03-05 Google Inc. Browsing context continuation across multiple devices
JP2013120603A (en) * 2011-12-06 2013-06-17 Google Inc Browsing context continuation across multiple devices
KR101277462B1 (en) 2011-12-06 2013-06-21 구글 인코포레이티드 Browsing context continuation across multiple devices
US20150205463A1 (en) * 2012-06-26 2015-07-23 Google Inc. Method for storing form data
US11233851B2 (en) 2012-08-10 2022-01-25 Dropbox, Inc. System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
US9357922B2 (en) 2013-03-04 2016-06-07 Hello Inc. User or patient monitoring systems with one or more analysis tools
US9737214B2 (en) 2013-03-04 2017-08-22 Hello Inc. Wireless monitoring of patient exercise and lifestyle
US9159223B2 (en) 2013-03-04 2015-10-13 Hello, Inc. User monitoring device configured to be in communication with an emergency response system or team
US9380941B2 (en) 2013-03-04 2016-07-05 Hello Inc. Patient monitoring systems and messages that send alerts to patients
US9392939B2 (en) 2013-03-04 2016-07-19 Hello Inc. Methods using a monitoring device to monitor individual activities, behaviors or habit information and communicate with a database with corresponding individual base information for comparison
US9398854B2 (en) 2013-03-04 2016-07-26 Hello Inc. System with a monitoring device that monitors individual activities, behaviors or habit information and communicates with a database with corresponding individual base information for comparison
US9298882B2 (en) * 2013-03-04 2016-03-29 Hello Inc. Methods using patient monitoring devices with unique patient IDs and a telemetry system
US9406220B2 (en) 2013-03-04 2016-08-02 Hello Inc. Telemetry system with tracking receiver devices
US9425627B2 (en) 2013-03-04 2016-08-23 Hello Inc. Telemetry system with remote firmware updates
US9432091B2 (en) 2013-03-04 2016-08-30 Hello Inc. Telemetry system with wireless power receiver and monitoring devices
US9430938B2 (en) 2013-03-04 2016-08-30 Hello Inc. Monitoring device with selectable wireless communication
US9438044B2 (en) * 2013-03-04 2016-09-06 Hello Inc. Method using wearable device with unique user ID and telemetry system in communication with one or more social networks
US20140250181A1 (en) * 2013-03-04 2014-09-04 Hello Inc. Method using wearable device with unique user ID and telemetry system in communication with one or more social networks
US9526422B2 (en) 2013-03-04 2016-12-27 Hello Inc. System for monitoring individuals with a monitoring device, telemetry system, activity manager and a feedback system
US9532716B2 (en) 2013-03-04 2017-01-03 Hello Inc. Systems using lifestyle database analysis to provide feedback
US9634921B2 (en) 2013-03-04 2017-04-25 Hello Inc. Wearable device coupled by magnets positioned in a frame in an interior of the wearable device with at least one electronic circuit
US9320434B2 (en) 2013-03-04 2016-04-26 Hello Inc. Patient monitoring systems and messages that send alerts to patients only when the patient is awake
US9345404B2 (en) 2013-03-04 2016-05-24 Hello Inc. Mobile device that monitors an individuals activities, behaviors, habits or health parameters
US20140249852A1 (en) * 2013-03-04 2014-09-04 Hello Inc. Methods using patient monitoring devices with unique patient IDs and a telemetry system
US9848776B2 (en) 2013-03-04 2017-12-26 Hello Inc. Methods using activity manager for monitoring user activity
US9320435B2 (en) 2013-03-04 2016-04-26 Hello Inc. Patient monitoring systems and messages that send alerts to patients
US9345403B2 (en) 2013-03-04 2016-05-24 Hello Inc. Wireless monitoring system with activity manager for monitoring user activity
US9339188B2 (en) 2013-03-04 2016-05-17 James Proud Methods from monitoring health, wellness and fitness with feedback
US9330561B2 (en) 2013-03-04 2016-05-03 Hello Inc. Remote communication systems and methods for communicating with a building gateway control to control building systems and elements
US9405816B2 (en) * 2013-03-05 2016-08-02 Microsoft Technology Licensing, Llc Reconciliation of geo-replicated database clusters
US20140258229A1 (en) * 2013-03-05 2014-09-11 Microsoft Corporation Reconciliation of geo-replicated database clusters
US9681472B2 (en) * 2014-01-31 2017-06-13 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for mapping identities to device-to-device synchronization sequences
US9860112B2 (en) 2014-07-02 2018-01-02 International Business Machines Corporation Techniques for synchronizing operations between regions when a network connection fails
GB2527798A (en) * 2014-07-02 2016-01-06 Ibm Synchronizing operations between regions when a network connection fails
US11010347B2 (en) 2014-10-31 2021-05-18 Canon Kabushiki Kaisha Information processing apparatus with server-location dependent timing, control method thereof, and program
CN109391656A (en) * 2017-08-09 2019-02-26 中兴通讯股份有限公司 A kind of restoration methods of device management session, device, client and server
US11334596B2 (en) 2018-04-27 2022-05-17 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization
US11809450B2 (en) 2018-04-27 2023-11-07 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization
CN110781373A (en) * 2019-10-29 2020-02-11 北京字节跳动网络技术有限公司 List updating method and device, readable medium and electronic equipment

Also Published As

Publication number Publication date
CN1708755B (en) 2010-09-08
EP1980954A1 (en) 2008-10-15
JP4829316B2 (en) 2011-12-07
CN1708755A (en) 2005-12-14
US20040205263A1 (en) 2004-10-14
MY146705A (en) 2012-09-14
US9792343B2 (en) 2017-10-17
JP2009140515A (en) 2009-06-25

Similar Documents

Publication Publication Date Title
US9792343B2 (en) Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US9594821B2 (en) Method and apparatus for synchronizing how data is stored in different data stores
US8024290B2 (en) Data synchronization and device handling
WO2004023233A2 (en) Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US6920486B2 (en) Method and apparatus for enabling synchronizing data in different devices having different capabilities and unmatched data fields
EP1444606B1 (en) Arrangement of data synchronization in a telecommunications system
KR100873711B1 (en) Method and device for handling synchronization related information
KR100937163B1 (en) Synchronization of database data
AU2002351015C1 (en) Method and device for defining objects allowing to establish a device management tree for mobile communication devices
KR101011216B1 (en) Data synchronization
EP2200222A1 (en) A data synchronization method, system and device
CN1714350A (en) Priorization of management objects
EP1518381B1 (en) Method and device for retrieving data store access information
EP1835424A1 (en) Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
KR100731272B1 (en) Method and device for defining objects allowing to establish a device management tree for mobile communication devices
ZA200503954B (en) Method and device for defining objects allowing to establish a device management for mobile communication devices

Legal Events

Date Code Title Description
AS Assignment

Owner name: NOKIA CORPORATION, FINLAND

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SIVARAMAN, GANESH;METTALA, RIKU;REEL/FRAME:013582/0039;SIGNING DATES FROM 20021202 TO 20021204

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION