[go: up one dir, main page]

KR100728076B1 - Method, apparatus, and system for synchronizing data providing for processing of an interrupted synchronization process - Google Patents

Method, apparatus, and system for synchronizing data providing for processing of an interrupted synchronization process Download PDF

Info

Publication number
KR100728076B1
KR100728076B1 KR1020057003718A KR20057003718A KR100728076B1 KR 100728076 B1 KR100728076 B1 KR 100728076B1 KR 1020057003718 A KR1020057003718 A KR 1020057003718A KR 20057003718 A KR20057003718 A KR 20057003718A KR 100728076 B1 KR100728076 B1 KR 100728076B1
Authority
KR
South Korea
Prior art keywords
synchronization
data
information
session
update identifier
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.)
Expired - Lifetime
Application number
KR1020057003718A
Other languages
Korean (ko)
Other versions
KR20050031466A (en
Inventor
가네쉬 시바라마
리쿠 메트탈라
Original Assignee
노키아 코포레이션
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
Priority claimed from US10/236,010 external-priority patent/US20040044799A1/en
Application filed by 노키아 코포레이션 filed Critical 노키아 코포레이션
Publication of KR20050031466A publication Critical patent/KR20050031466A/en
Application granted granted Critical
Publication of KR100728076B1 publication Critical patent/KR100728076B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 이전의 불완전 동기화 세션 재개를 허용하는 방법, 네트워크 장치 및 시스템을 제공하는 데, 이 경우 상기 이전의 불완전 동기화 세션은 자체 수행 동안 중단된 것이다. 대체로, 상기 이전의 불완전 동기화 세션 재개는 진보된 개념에 따른 이하의 동작들을 기반으로 한다. 제1 및 제2 장치 간의 데이터 동기화를 위한 통신 접속이 확립된다. 상기 제1 및 제2 장치는 각각 사전에 정의된 한세트의 동기화될 데이터 레코드들을 포함한다. 제1 및 제2 업데이트 식별자는 상기 제1 및 제2 장치 사이에서 통신된다. 상기 제1 업데이트 식별자는 상기 제1 및 제2 장치들 사이에서 수행된 이전의 완전 동기화 세션을 규정하고 상기 제2 업데이트 식별자는 상기 제1 및 제2 장치들 사이에서 수행된 이전의 불완전 동기화 세션을 규정한다. 동기화 관련 정보는 상기 제1 및 제2 장치들 간에 교환된다. The present invention provides a method, a network device and a system to allow resumption of a previous incomplete synchronization session, in which case the previous incomplete synchronization session was suspended during its execution. In general, the resumption of the previous incomplete synchronization session is based on the following operations in accordance with an advanced concept. A communication connection for data synchronization between the first and second devices is established. The first and second devices each comprise a predefined set of data records to be synchronized. The first and second update identifiers are communicated between the first and second devices. The first update identifier defines a previous full synchronization session performed between the first and second devices and the second update identifier specifies a previous incomplete synchronization session performed between the first and second devices. Regulate. Synchronization related information is exchanged between the first and second devices.

Description

인터럽트된 동기화 프로세스의 처리를 제공하는 데이터를 동기화하는 방법, 장치 및 시스템{Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process} Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process

1. 본 발명의 기술분야1. Technical Field of the Invention

본 발명은 각각 동기화 클라이언트 장치와 동기화 서버 장치 사이의 데이터를 동기화하고 또한 각각의 동기화 장치로 데이터를 동기화하는 방법 및 장치에 관한 것이다. 더 상세하게 설명하면, 본 발명은 각각 능동 동기화 프로세스의 인터럽트의 개선된 처리를 가능하게 하는 데이터를 동기화하는 방법 및 장치에 관한 것이다. The present invention relates to a method and apparatus for synchronizing data between a synchronization client device and a synchronization server device, and also synchronizing data to each synchronization device. More specifically, the present invention relates to a method and apparatus for synchronizing data, each of which enables improved handling of interrupts in an active synchronization process.

2. 관련 기술분야의 설명2. Description of related technical fields

데이터의 동기화는, 각각 사용중에 있는 적어도 2개의 상이한 전자 장치를 가지며 이러한 전자 장치와 동일한 종류의 데이터를 처리하는, 공지된 개념 또는 사용자용 기술이다. 일반적으로, 동기화는 단말 장치(예를 들어, 이동 전화)와 서버 장치(예를 들어, 로컬 PC 또는 전용 동기화 서버 내의 애플리케이션) 사이에서 발생한다. 휴대용 컴퓨터, PDA 단말(personal digital assistant), 이동 전화, 이동국 또는 페이저와 같은 단말로부터의 데이터는, 네트워크화된 애플리케이션, 데스크탑 컴퓨터의 애플리케이션에 의해서, 또는 다른 무선통신 시스템의 데이터 저 장을 관리하는 애플리케이션으로 나타내지는 동기화 서버들로서 동작하는 네트워크화된 장치로 동기화될 수 있으며, 여기에서 "데이터 저장"이라는 용어는 가능한 한 넓게 이해되어야 하며, 즉 임의의 데이터의 세트를 포함할 것이다. 특히, 달력 데이터, 컨택트 데이터, 장치/애플리케이션 설정에 관한 데이터 뿐만 아니라 이메일 애플리케이션 데이터 및 구성들이 통상적으로 동기화된다. Synchronization of data is a known concept or technique for users, each having at least two different electronic devices in use and processing the same kind of data as such electronic devices. In general, synchronization occurs between a terminal device (eg, a mobile phone) and a server device (eg, an application in a local PC or a dedicated synchronization server). Data from terminals, such as portable computers, personal digital assistants, mobile phones, mobile stations, or pagers may be networked applications, applications on desktop computers, or applications that manage data storage in other wireless communication systems. It may be synchronized to a networked device operating as the synchronization servers represented, where the term “data storage” should be understood as broadly as possible, ie it will include any set of data. In particular, email application data and configurations as well as calendar data, contact data, data regarding device / application settings, are typically synchronized.

동기화는 양립할 수 없는 상이한 제조자-지정 프로토콜들의 이용에 기반하여 왔다. 이것은 단말 또는 데이터 타입의 이용을 제한하고 종종 사용자에게 문제들을 일으킨다. 이동 통신에서는, 특히 이용되는 애플리케이션과 단말에 무관하게 데이터를 검색하고 업데이트할 수 있는 것이 중요하다.Synchronization has been based on the use of different manufacturer-specified protocols that are incompatible. This limits the use of the terminal or data type and often causes problems for the user. In mobile communications, it is particularly important to be able to retrieve and update data regardless of the application and the terminal used.

애플리케이션 데이터의 동기화를 개선하기 위해서, 확장성 생성 언어(extensible markup language; XML)에 기반한 공지의 동기화 생성 언어 SyncML라고 부르는 언어가 개발되었다. SyncML 포맷의 메시지를 채택하는 SyncML 동기화 프로토콜을 이용함으로써, 어떤 애플리케이션의 데이터는 네트워크화된 단말들과 어떤 종류의 네트워크 서버 사이에서 동기화될 수 있다. SyncML 동기화 프로토콜은 무선 네트워크 및 고정 네트워크 양자에서 동작하며 여러 전송 프로토콜들을 지원한다. 상기에 나타난 SyncML 동기화 기술은 각각, 특히 데이터 저장 또는 데이터베이스의 동기화를 처리한다.In order to improve the synchronization of application data, a language called the known synchronization generation language SyncML based on extensible markup language (XML) has been developed. By using a SyncML synchronization protocol that employs messages in SyncML format, data of an application can be synchronized between networked terminals and some kind of network server. The SyncML synchronization protocol works in both wireless and fixed networks and supports several transport protocols. The SyncML synchronization techniques presented above deal with the synchronization of data storage or databases, in particular.

종래에, 상이한 저장 위치 즉 저장 위치를 관리하고 채택하는 상이한 동기화 장치에 저장된 2개의 별개의 선정된 데이터 레코드들의 세트를 조화시키기 위해서, 즉 일치시키기 위하여 별개의 시점에서 데이터 레코드들의 동기화를 수행하여, 그 결과 이러한 별개의 시점에서 양 저장 공간들에 2 개의 동등한 데이터 레코드들의 세트가 생긴다. 또한, 별개의 시점에서 수행되는 데이터 레코드들의 동기화는 동기화 세션으로서 지정된다. 데이터 레코드들의 세트들을 동기화하는 것은, 이러한 동기화 세션 동안에, 참가하는 동기화 장치가 저장된 데이터 레코드들의 세트들을 수정하게 하여 데이터 레코드 세트를 일치시키는, 정보, 명령어 및 커맨드를 교환함으로써 획득될 수 있으며, 여기에서 이러한 수정 동작은 데이터의 부가, 데이터의 제거, 현 데이터에 데이터를 첨부, 데이터의 업데이트 등을 포함한다. 요구된 정보 및 커맨드의 교환은, 각각이 전체적으로 요구되는 정보의 별개의 서브세트, 각각의 동기화 장치들에서 동기화를 수행하는데 필요한 명령어 및 커맨드를 포함하는 1 이상의 메시지를 동기화 장치들 사이에서 통신함으로써 수행되는, 실용적인 목적을 위한 것이다. 또한, 1 이상의 각각의 메시지들은 내부에 포함된 메시지 정보에 따라서 성공적인 동작을 나타내기 위하여 승인된다.Conventionally, by synchronizing data records at separate points in time to match, i.e., match, a set of two separate predetermined data records stored in different synchronization devices that manage and adopt different storage locations, i. The result is two sets of equivalent data records in both storage spaces at these separate points in time. In addition, the synchronization of data records performed at separate points in time is designated as a synchronization session. Synchronizing sets of data records may be obtained during this synchronization session by exchanging information, instructions and commands, causing the participating synchronization device to modify the stored sets of data records to match the data records set. Such modifications include adding data, removing data, appending data to current data, updating data, and the like. The exchange of required information and commands is performed by communicating between the synchronization devices one or more messages, each comprising a separate subset of the required information, the commands and commands necessary to perform the synchronization at the respective synchronization devices. For practical purposes. In addition, each of the one or more messages is acknowledged to indicate successful operation according to the message information contained therein.

기본적으로, 상술된 바와 같은 동기화 프로세스들은 각각 저속의 동기화로서도 지정되는 전체 동기화 프로세스 또는, 통상적이거나 고속의 동기화로서도 지정된 증분 동기화 프로세스로 처리되어 수행될 수 있다. 전체 또는 저속 동기화 프로세스를 수행하는 동기화 세션 동안에는, 양자의 참가하는 동기화 장치들내에 모든 선정된 데이터 레코드들의 세트들이 일치하게 된다. 증분의 또는 고속의 동기화 프로세스를 수행하는 동기화 세션 동안에는, 각각 최종적으로 완성된 동기화 세션의 시점이 양자의 참가하는 동기화 장치에 로깅되고, 양자의 동기화 장치내에 저장된 로깅된 시점이 수정된 데이터 레코드와만 매칭하는 경우에, 이 로깅된 시점이 모든 다른 동기화를 위해 선택되기 때문에, 동기화 프로세스로부터 배제된다. 따라서, 변화 로그는 수정을 로깅하는 동기화 장치에 의해서 데이터 레코드들의 시점을 부가하거나 삭제하면서 유지될 수 있다. 변형적으로는, 그렇게 존재하는 경우에, 레코드들의 타임 스탬프의 수정을 조사하는 것과 같은 다른 방식으로 수정이 결정될 수도 있다. 동기화 프로세스, 즉 소위 저속 동기화 및 소위 고속(통상) 동기화 양자는 SyncML 표준으로 정의되고 이용된다. 다른 타입의 동기화 프로세스들도 유효하며 이용되지만 이들의 다른 동기화 프로세스들은 전술한 기본 동기화 프로세스로 감축될 수 있다.Basically, the synchronization processes as described above may be performed by being processed in an overall synchronization process, which is also designated as slow synchronization, or an incremental synchronization process, which is also designated as normal or fast synchronization. During a synchronization session that performs a full or slow synchronization process, all of the predetermined sets of data records in both participating synchronization devices are matched. During a synchronization session that performs an incremental or fast synchronization process, each time point of the last completed synchronization session is logged to both participating synchronization devices, and the logged time points stored in both synchronization devices are modified only with modified data records. In case of a match, this logged time point is excluded from the synchronization process since it is selected for all other synchronizations. Thus, the change log can be maintained while adding or deleting the time points of the data records by the synchronization device logging the modifications. Alternatively, if so, the modification may be determined in other ways, such as by examining the modification of the time stamp of the records. The synchronization process, both so-called slow synchronization and so-called fast (normal) synchronization, are defined and used in the SyncML standard. Other types of synchronization processes are valid and used but their other synchronization processes can be reduced to the basic synchronization process described above.

레코드 및/또는 레코드들의 그룹이 다른 데이터베이스와 동기화되어온 때에는, 레코드의 전송자에게 다시 승인이 전송된다. 승인을 처리하는 2개의 기본적인 방식은 동기화 애플리케이션으로 구현될 수도 있다. 제1 실시형태에서, 데이터 레코드 또는 데이터 레코드들의 뱃치(batch)의 각각의 성공적인 동기화는, 그러한 1 이상의 변화 로그들로 동기화 장치들에 의해서 승인되고 로깅되는 것이 바람직하다. 제2 실시형태에서, 승인은 동기화 세션의 마지막에, 즉 양자의 동기화 장치들이 동기화 세션의 적절한 폐쇄 및 접속된 대응하여 채택된 통신을 나타내자마자 처리된다. 또한, 동기화 세션의 마지막에 승인의 처리 및 최종적으로 완료된 동기화 세션을 특정하는 시점의 업데이트는 실질적으로 동시에 동작된다. 만일 동기화 세션이 최종적으로 완료된 동기화 세션을 지정하는 시점을 고려하는 저속 동기화 프로세스로 수행되는 경우에는 명백하게 요구되지 않게 된다.When a record and / or group of records have been synchronized with another database, an acknowledgment is sent back to the sender of the record. Two basic ways of handling authorization may be implemented in a synchronization application. In the first embodiment, each successful synchronization of a data record or a batch of data records is preferably approved and logged by the synchronization devices with one or more such change logs. In the second embodiment, the authorization is processed at the end of the synchronization session, i.e. as soon as both synchronization devices indicate the appropriate closure and connected correspondingly adopted communication of the synchronization session. In addition, the update processing at the end of the synchronization session and the point in time of specifying the finally completed synchronization session are operated substantially simultaneously. If the synchronization session is performed with a slow synchronization process that takes into account the point in time of designating the last completed synchronization session, it is not explicitly required.

제1 실시형태는 예를 들면 분포된 데이터베이스를 데이터 순수성을 유지하고 보증하기 위해서 서로 고속의 접속으로 동기화하는데 이용되는 동기화 애플리케이션들을 주로 처리한다. 이러한 실시형태에서, 각각의 데이터 레코드에 대한 변화 로그들을 저장하고 유지할 용량 필요조건, 필요한 승인을 교환하는 네트워크 대역폭의 필요조건 뿐만 아니라 변화 로그들을 처리하는 처리 용량의 필요조건은 중요성이 작다. 이동 전화, 핸드헬드, 개인 휴대용 정보 단말기, 커뮤니케이터 등과 같은 소형 전자 장치에 저장되는 데이터를 동기화하는 관점에서, 저장 용량 및 처리 전력은, 각각의 데이터 레코드에 대한 변화 로그들을 저장하고, 유지하며 처리하는 것이 방해가 되며, 비효율적이고 때때로 가능하지도 않게 되도록 제한된다. 또한, 필요한 승인으로부터 발생되는 네트워크 트래픽도 이동 통신 환경에서 고비용이며 시간 집중적이기 때문에, 허용될 수 없다.The first embodiment mainly deals with synchronization applications used to synchronize distributed databases with high speed connections with one another, for example, to maintain and ensure data purity. In this embodiment, the capacity requirements for processing change logs as well as the capacity requirements for storing and maintaining change logs for each data record, network bandwidth for exchanging the necessary grants are of less importance. In terms of synchronizing data stored in small electronic devices such as mobile phones, handhelds, personal digital assistants, communicators, and the like, storage capacity and processing power are used to store, maintain and process change logs for each data record. This is a hindrance and is limited to being inefficient and sometimes not possible. In addition, network traffic resulting from the necessary authorization is also unacceptable because it is expensive and time intensive in a mobile communication environment.

타임 스탬프들을 업데이트하고 그 아이템들에 대한 승인들을 처리하는 것이 세션의 마지막에 수행되는 제2 실시형태는, 소형 전자 장치에 이용하기에 적합하고 SyncML 표준에 의해서 지원된다. 그럼에도, 이러한 실시형태는 현재 수행되는 동기화 세션의 인터럽트가 제공되지 않는다는 문제를 일으킨다. 부분적으로 동작되는 동기화 세션 동안에 교환되는 동기화 정보를 유지시키는 것은 가능하지 않은데, 그 이유는 동기화 세션의 마지막에서 타임 스탬프(동기화 앵처(anchor))의 업데이트 및 승인의 처리가 인터럽트로 인해 달성될 수 없기 때문이다. 세션 동안 데이터 아이템의 승인이 처리되는 경우에도, 세션의 마지막에서만 타임 스탬프들이 업데이트되기 때문에, 저속 동기화의 인터럽트는 기처리된 동기화 정보의 손실을 가져온다. 상기 양자의 경우에, 동기화 세션은 데이터 순수성을 보증하기 위해서 완벽하게 반 복되어야 한다. 동기화 관련 정보의 양에 따라서, 즉, 동기화될 데이터 레코드의 수에 따라서, 매우 큰 수의 메시지들이 여러 동기화 메시지들을 포함하는 단일의 동기화 세션 동안에 정상적으로 교환된다. 예를 들어 500개의 데이터 레코드 중 400개의 데이터 레코드는 동기화 세션 동안에 동기화될 수 있었으며 인터럽트가 발생한다. 후속적인 500개의 데이터 레코드의 모든 동기화 세션은, 동기화가 고속 또는 저속 동기화 프로세스로서 동작되는지 여부에 독립하여 다시 동기화되어야 한다.The second embodiment, wherein updating the time stamps and processing the approvals for those items is performed at the end of the session, is suitable for use in small electronic devices and is supported by the SyncML standard. Nevertheless, this embodiment raises the problem that no interruption of the currently performed synchronization session is provided. It is not possible to maintain synchronization information exchanged during a partially operated synchronization session, because the processing of updating and acknowledgment of time stamps (synchronization anchors) at the end of the synchronization session cannot be achieved due to interrupts. Because. Even if the approval of the data item is handled during the session, since the time stamps are updated only at the end of the session, the interrupt of slow synchronization results in the loss of preprocessed synchronization information. In both cases, the synchronization session must be completely repeated to ensure data purity. Depending on the amount of synchronization related information, that is, the number of data records to be synchronized, a very large number of messages are normally exchanged during a single synchronization session that includes several synchronization messages. For example, 400 of the 500 data records could be synchronized during the synchronization session and an interrupt occurs. All subsequent synchronization sessions of the 500 data records must be resynchronized independently of whether synchronization is operated as a fast or slow synchronization process.

본 발명의 목적은, 인터럽트된 동기화 세션의 완전한 반복을 피하기 위해서 인터럽트된 동기화 세션을 재개하는 것을 허용하는 방법을 제공하는 것이다. 인터럽트된 동기화 세션을 재개하는 규정은, 고 저장 용량, 고 처리 전력, 높은 수의 교환된 승인과 높은 통신 대역폭이 모두 요구되지 않도록 구성된다. 이 방법은 경제적으로 소형 전자 장치로 구현되기에 적합하다. It is an object of the present invention to provide a method that allows resuming an interrupted synchronization session to avoid complete repetition of the interrupted synchronization session. The provision for resuming an interrupted synchronization session is configured such that high storage capacity, high processing power, high number of exchanged acknowledgments and high communication bandwidth are not all required. This method is suitable to be economically implemented in small electronic devices.

본 발명의 일 실시예에 따르면, 이전의 불완전한 동기화 세션을 재개하는 것을 허용하는 방법이 제공되고, 이전의 불완전한 동기화 세션이 그 동작 동안에 인터럽트되었다. 이전의 불완전한 동기화 세션의 재개는 다음의 동작에 의해서 달성된다.According to one embodiment of the present invention, a method is provided that allows resuming a previous incomplete synchronization session, wherein the previous incomplete synchronization session was interrupted during its operation. Resumption of a previous incomplete synchronization session is accomplished by the following operation.

제1 장치와 제2 장치 사이의 데이터의 동기화를 위한 통신 접속이 확립된다. 제1 장치 및 제2 장치는 각각 동기화될 데이터 레코드들의 세트를 포함한다. 종래에, 데이터 레코드들은 대응하는 애플리케이션에 의해서 유지되는 데이터 기억 또는 데이터베이스로 구성된다.A communication connection for the synchronization of data between the first device and the second device is established. The first device and the second device each comprise a set of data records to be synchronized. Traditionally, data records consist of a data store or database maintained by a corresponding application.

일 실시예에서, 본 발명은 2개의 장치들 간의 데이터의 교환에 관련된 이전의 불완전한 동기화 세션의 인터럽트를 재개하는 방법을 제공한다. 이 방법은 이전의 불완전한 동기화 세션의 재개 요청에 관련된 정보를 포함하는 신호를 재개하는 경보를 제1 장치에서 제2 장치로 전송하는데 특징이 있다. 신호를 재개하기 위한 경보는 서버에 의해 추론될 수 있는 재개 세션 또는 신호를 직접적으로 나타내는 최소한 직접 경보 코드 등이 될 수 있으며, 예를 들면 세션에 이용될 타임 스탬프의 표시(indication) 또는 그 세션의 어떤 다른 식별이 될 수 있다. 또한, 이 방법은 실행될 sync 타입에 관련된 정보를 나타내는 경보 신호에 대한 상태를 제2 장치에서 제1 장치로 전송하는 단계에 특징이 있다. 재개 신호에 대한 경보의 상태에 관련된 정보는 이전의 불완전한 동기화 세션의 이전의 sync 타입을 번복하는 정보를 포함할 수도 있다.In one embodiment, the present invention provides a method for resuming interruption of a previous incomplete synchronization session related to the exchange of data between two devices. The method is characterized by sending an alert from the first device to the second device to resume a signal comprising information relating to a request to resume a previous incomplete synchronization session. An alert for resuming a signal may be a resumption session that can be inferred by the server, or at least a direct alert code directly indicating the signal, for example, an indication of a time stamp to be used for the session or It can be any other identification. The method is also characterized by the step of transmitting from the second device to the first device a status for an alarm signal indicating information relating to the type of sync to be executed. The information related to the state of the alert for the resume signal may include information that overrides the previous sync type of the previous incomplete synchronization session.

본 발명의 변형적인 실시예에서, 제1 업데이트 식별자 및 제2 식별자는 제1 장치에서 제2 장치로 또는 제2 장치에서 제1 장치로 통신된다. 송신의 방향은 어떤 장치가 이전의 불완전한 동기화 세션의 재개 및 동기화의 방향을 나타내는지에 따른다. 표시하는 장치는 양 식별자들을 나머지 하나로 송신한다. 제1 업데이트 식별자는 이전의 완전한 동기화 세션이 제1 장치와 제2 장치 사이에서 수행되었음을 지정한다. 제1 업데이트 식별자는 이전의 완전한 동기화 세션의 초기화 동안에, 제1 장치 및 제2 장치에 저장되었다. 더 상세하게 설명하면, 식별자의 값이 저장되지만, 그 값의 명칭이나 저장 위치는 실시형태에 따라 변할 수 있다. 일반적으로, 제1 업데이트 식별자는 이전의 완전한 동기화 세션의 초기화 시간을 로깅하는데 이용된 타임 스탬프이다. 변형적으로, 식별자는 어떤 수적인 값 예를 들어 규칙적으로 또는 적어도 어느 정도 또는 부분적으로 불규칙하게 생성되는, 단조롭게 증가하는 정수 스트링, 문서 스트링 또는, 이들의 혼합이 될 수 있다. 본 발명에 따르면, 제2 업데이트 식별자는 제1 장치와 제2 장치 사이에서 수행되었던 이전의 불완전한 동기화 세션을 지정한다. 제2 업데이트 식별자는 이전의 불완전한 동기화 세션의 초기화 동안 제1 장치와 제2 장치에 저장되었다. 일반적으로, 제2 업데이트 식별자는 또한 유사하게 타임 스탬프이거나 인터럽트되었던 이전의 동기화 세션의 초기화 시간을 표시하는데 이용된 것들이다. 그러나, 종래 기술에서, 제2 업데이트 식별자의 동작 및 이용은 동기화 세션 동안에서만 정의되고, 인터럽트 후나 세션의 완료 후에는 정의되지 않는다.In an alternative embodiment of the invention, the first update identifier and the second identifier are communicated from the first device to the second device or from the second device to the first device. The direction of transmission depends on which device indicates the direction of resumption and synchronization of the previous incomplete synchronization session. The indicating device transmits both identifiers to the other. The first update identifier specifies that a previous complete synchronization session has been performed between the first device and the second device. The first update identifier was stored in the first device and the second device during the initialization of the previous complete synchronization session. In more detail, the value of the identifier is stored, but the name or storage location of the value may vary depending on the embodiment. In general, the first update identifier is the time stamp used to log the initialization time of the previous complete synchronization session. Alternatively, the identifier may be a monotonically increasing integer string, a document string, or a mixture thereof, which is generated at any numerical value, for example, regularly or at least to some extent or partially irregularly. According to the present invention, the second update identifier specifies a previous incomplete synchronization session that was performed between the first device and the second device. The second update identifier was stored in the first device and the second device during the initialization of the previous incomplete synchronization session. In general, the second update identifiers are similarly those used to indicate the initialization time of the previous synchronization session that was similarly time stamped or interrupted. However, in the prior art, the operation and use of the second update identifier are defined only during the synchronization session, not after the interruption or after the session is completed.

본 발명에 따른 방법은 동기화를 위한 4단계를 가진다. 제1 단계는 각각이 동기화될 데이터의 세트를 포함하는 제1 장치와 제2 장치 사이의 데이터의 동기화를 위한 통신 접속을 확립하는 단계를 포함한다. 제2 단계는 제1 업데이트 식별자 및 제2 업데이트 식별자를 송신하는 단계를 포함하며, 제1 업데이트 식별자는 이전의 완전한 동기화 이벤트가 제1 장치와 제2 장치 사이에서 수행되었음을 나타내며, 제1 업데이트 식별자의 값은 적어도 제1 장치에 저장되었고, 제2 업데이트 식별자는 이전의 불완전한 동기화 이벤트가 제1 장치와 제2 장치 사이에 개시되었음을 나타내며, 제2 업데이트 식별자의 값은 적어도 제1 장치에 저장되었다. 제3 단계는 이전의 불완전한 동기화 이벤트 동안에 성공적으로 동기화되었던 데이터의 표시를 검색하거나 형성하는 단계를 포함한다. 제1 단계는 표시를 이용하여 이전의 불완전한 동기화 이벤트 동안 성공적으로 동기화되지 않았던 데이터를 동기화하는 단계를 포함하며, (4) 적어도 제1 장치에서, 제2 업데이트 식별자의 상기 값으로 제1 업데이트 식별자의 값을 업데이트하는 단계를 포함한다.The method according to the invention has four steps for synchronization. The first step includes establishing a communication connection for synchronization of data between the first device and the second device, each of which includes a set of data to be synchronized. The second step includes transmitting the first update identifier and the second update identifier, wherein the first update identifier indicates that a previous complete synchronization event has been performed between the first device and the second device, The value was stored at least on the first device, the second update identifier indicates that a previous incomplete synchronization event was initiated between the first device and the second device, and the value of the second update identifier was stored on at least the first device. The third step includes retrieving or forming an indication of the data that was successfully synchronized during the previous incomplete synchronization event. The first step includes synchronizing data that was not successfully synchronized during a previous incomplete synchronization event using an indication, wherein (4) at least the first device, with the value of the second update identifier, Updating the value.

또한, 본 방법은 이전의 불완전한 동기화 이벤트에 관련하며 이전의 불완전한 동기화에 관한 정보 및 수신된 동기화 관련 정보에 따라 성공적으로 동기화된 데이터에 관한 정보를 포함하는 그룹 중 적어도 하나의 정보를 포함하는 부가적인 정보를 송신하는 단계를 포함할 수 있다.In addition, the method further comprises at least one of a group of information related to a previous incomplete synchronization event and comprising information about data previously successfully synchronized according to received synchronization related information. Transmitting information.

본 방법은 또한 제1장치 및 제2장치 중 적어도 하나에서 수행되는 비교작업 단계를 포함할 수 있는데, 첫 번째 비교작업에서는 제1장치로부터 전송된 제1 업데이트식별자의 값과 제2장치에 저장되어 있는 제1장치의 제2 업데이트식별자의 값을 비교하며, 다음 옵션들 중 적어도 하나를 실행한다. The method may also include a comparison step performed on at least one of the first device and the second device, wherein the first comparison job is stored in the second device and the value of the first update identifier sent from the first device. Compares the values of the second update identifier of the first device and executes at least one of the following options:

1) 두 번째 비교에서 참이 나온 경우, 제1장치와 제2장치간의 데이터 및 앞서 일어난 불완전 동기화 이벤트동안 교환되지 않은 데이터를 포함하는 데이터에 대한 동기화 단계.1) if true in the second comparison, a synchronization step for the data including data between the first device and the second device and data not exchanged during the previously incomplete synchronization event.

2) 두 번째 비교에서 거짓이 나온 경우, 제1장치와 제2장치간의 데이터 및 적어도 앞서 일어난 불완전 동기화 이벤트동안 동기화된 데이터를 포함하는 데이터에 대한 동기화 단계.2) if false in the second comparison, a synchronization step for the data including data between the first device and the second device and at least data synchronized during the previously incomplete synchronization event.

3) 첫 번째 비교에서 거짓이 나온 경우, 제1장치와 제2장치간의 데이터 및 앞서 일어난 완전 동기화 이벤트동안 동기화된 데이터를 포함하는 데이터에 대한 동기화 단계.3) if false in the first comparison, a synchronization step for the data including data between the first device and the second device and data synchronized during the preceding full synchronization event.

4) 첫 번째 비교에서 참이 나온 경우, 제1장치와 제2장치간의 데이터 및 앞서 일어난 완전 동기화 이벤트동안 동기화되지 않은 데이터를 포함하는 데이터에 대한 동기화 단계.4) If true in the first comparison, a synchronization step for the data including data between the first device and the second device and data not synchronized during the previous full synchronization event.

동기화를 위해 통신접속을 수행하는 단계는, 제1장치와 제2장치 중 적어도 하나에게, 앞서 일어난 불완전한 동기화를 다시 시작할 준비를 하도록 지시하는 초기메시지를 전송하는 것을 포함할 수 있다.Performing the communication connection for synchronization may include transmitting an initial message to at least one of the first device and the second device instructing it to prepare to resume the incomplete synchronization that occurred earlier.

동기화는 SyncML표준에 맞는 동기화 프로토콜에 기초할 수 있으며, 제1업데이트 식별자는 LAST 동기화 앵커(anchor)가 될 수 있다. 제2업데이트 식별자는 최소한 NEXT 동기화 앵커 또는 PAUSE 동기화 앵커 중 하나가 될 것이다. 게다가, 앞서 일어난 불완전 동기화 이벤트에 관련된 추가정보는 동기화 이벤트 세션 식별자(세션 ID), 동기화 메시지 식별자(메시지 ID), 인지된 데이터의 하나 또는 그 이상의 식별자 및 그 각각에 대한 데이터스토어(data store) 중 적어도 하나를 포함할 것이다. 또한, 추가정보는 제1업데이트 식별자 및 제2업데이트 식별자의 전송 전에 최소한 제1장치에는 저장되어 있다.The synchronization may be based on a synchronization protocol conforming to the SyncML standard, and the first update identifier may be a LAST synchronization anchor. The second update identifier will be at least one of a NEXT synchronization anchor or a PAUSE synchronization anchor. In addition, the additional information related to the previously incomplete synchronization event may include a synchronization event session identifier (session ID), a synchronization message identifier (message ID), one or more identifiers of recognized data, and a data store for each of them. Will include at least one. Further, the additional information is stored in at least the first device before the transmission of the first update identifier and the second update identifier.

본 방법에서, 데이터 또는 그 데이터를 포함하는 메시지에 대한 수신확인이 성공적으로 수신되었으면 데이터는 성공적으로 동기화된 것이고, 수신확인은 데이터 또는 메시지의 동기화에 대한 긍정 또는 부정의 상태를 나타낸다.In this method, if an acknowledgment for the data or the message containing the data has been successfully received, the data is successfully synchronized and the acknowledgment indicates a positive or negative condition for the synchronization of the data or message.

본 발명은 또한 전술한 방법의 단계들을 실행하는 프로그램 부분을 포함하는, 동기화를 위한 소프트웨어 툴을 제공하며, 이 소프트웨어 툴은 처리장치, 단말장치, 통신단말장치 또는 네트워크 장치 등에서 실행하기 위한 컴퓨터 프로그램 또는 이들간의 동기화를 위한 컴퓨터프로그램이나 컴퓨터프로그램 제품에 구축된다.The present invention also provides a software tool for synchronization, comprising a program portion for executing the steps of the method described above, which software tool is a computer program for execution on a processing device, a terminal device, a communication terminal device or a network device or the like. It is built in a computer program or a computer program product for synchronization between them.

본 발명은 또한 네트워크에서 사용되며 데이터를 동기화 할 수 있고, 저장매체, 통신 인터페이스, 복원 또는 생성수단 및 업데이트 수단을 가지는 장치를 제공한다. 저장장치는 동기화되기 위한 데이터의 집합을 사전에 정의한다. 통신 인터페이스는 네트워크에서 사용되는 다른 단말과의 데이터 동기화, 제1업데이트 식별자 및 제2업데이트 식별자에 대한 타 네트워크 장치와의 통신, 타 네트워크 장치와의 데이터 교환 등을 위한 통신 접속을 수행한다. 제1업데이트 식별자는 앞서 일어난 타 네트워크 장치와의 완전한 동기화 이벤트를 나타내며, 제1업데이트 식별자는 적어도 네트워크 장치에는 저장되어 있다. 제2업데이트 식별자는 앞서 일어난 불완전한 동기화 이벤트를 나타내며, 제2업데이트 식별자는 적어도 네트워크 장치에는 저장되어 있으며, 데이터는 적어도 앞서 일어난 불완전한 동기화 이벤트중에 동기화되지 않은 데이터를 포함한다. 복원 또는 생성수단은 앞서 일어난 불완전한 동기화 이벤트중에 동기화된 데이터의 표시를 복원하거나 생성하며, 그 표시는 네트워크 장치에 저장되어 있다. 동기화 수단은 그 표시에 따라 데이터를 동기화 한다. 업데이트 수단은 저장되어 있는 제1업데이트 식별자의 내용 및 저장되어 있는 제2업데이트 식별자의 내용을 업데이트한다.The present invention also provides an apparatus for use in a network and capable of synchronizing data and having a storage medium, a communication interface, a means for restoring or creating and updating. The storage device predefines a set of data to be synchronized. The communication interface performs a communication connection for data synchronization with another terminal used in a network, communication with another network device for a first update identifier and a second update identifier, and data exchange with another network device. The first update identifier indicates a complete synchronization event with the other network device that occurred earlier, and the first update identifier is stored at least in the network device. The second update identifier indicates an incomplete synchronization event that occurred earlier, the second update identifier is stored at least on the network device, and the data includes data that was not synchronized during at least the earlier incomplete synchronization event. The restoring or generating means restores or generates an indication of the synchronized data during the previously incomplete synchronization event, the indication being stored in the network device. The synchronization means synchronizes the data according to the indication. The updating means updates the contents of the stored first update identifier and the contents of the stored second update identifier.

통신인터페이스는 앞서 일어난 불완전 동기화 이벤트에 대해 보충적인 추가정보를 전송할 수 있다. 추가정보는 앞서 일어난 불완전 동기화에 관한 정보, 동기화 관련정보에 대한 최근의 성공적 교환에 관한 정보, 수신한 동기화 관련정보에 따라 성공적으로 동기화한 데이터에 관한 정보 중 적어도 하나를 포함할 것이다.The communication interface may send supplementary additional information about the previously incomplete synchronization event. The additional information may include at least one of information on incomplete synchronization, information on recent successful exchange of synchronization related information, and information on data successfully synchronized according to received synchronization related information.

본 장치는 또한 비교작업를 위한 수단을 포함할 수 있으며, 첫 번째 작업에서는 장치로부터 전송된 제1업데이트 식별자의 값과 다른 장치에 저장되어 있는 제2업데이트 식별자의 값을 비교하고, 두 번째 비교에서는 제1장치로부터 전송된 제2업데이트 식별자의 값과 다른 장치에 저장되어 있는 제2업데이트 식별자의 값을 비교한다. 전술한 옵션들 중 적어도 하나를 수행하기 위한 수단은 본 방법과 관련하여 앞서 논의하였다.The apparatus may also comprise means for a comparison operation, in which the first operation compares the value of the first update identifier sent from the device with the value of the second update identifier stored in another device, and in the second comparison The value of the second update identifier transmitted from the one device is compared with the value of the second update identifier stored in the other device. Means for performing at least one of the foregoing options have been discussed above in connection with the present method.

본 발명은 또한 제1네트워크장치 및 제2네트워크장치를 포함하는 동기화를 위한 시스템을 제공하며, 여기서 각 장치는 본 발명의 전체적인 방법 및 장치와 관련하여 앞서 논의한 것과 같은 단계들을 수행하기 위한 구성요소들을 포함한다.The invention also provides a system for synchronization comprising a first network device and a second network device, wherein each device comprises components for performing the steps as discussed above in connection with the overall method and apparatus of the invention. Include.

본 발명은 첨부한 도면을 참조하여 실시예와 함께 더욱 자세히 설명할 것이다.The present invention will be described in more detail with reference to the accompanying drawings.

도 1은 정보의 동기화가 수행될 수 있는 전자장치들의 예시를 보여주는 개략도,1 is a schematic diagram illustrating an example of electronic devices in which information synchronization may be performed;

도 2는 본 발명의 일실시예에 따른 동기화 클라이언트 장치 및 동기화 서버장치간에 교환되는 몇 가지 메시지를 포함하여 동기화 과정을 순차적으로 보여주는 순서도,2 is a flow chart showing a synchronization process sequentially including several messages exchanged between a synchronization client device and a synchronization server device according to an embodiment of the present invention;

도 3a는 도 2와 유사한 것으로, 본 발명의 일실시예에 따라 방해되거나 정지되는 동기화 과정을 순차적으로 보여주는 순서도,FIG. 3A is similar to FIG. 2, and sequentially shows a synchronization process that is interrupted or stopped according to an embodiment of the present invention.

도 3b는 도 3a의 방해되거나 정지된 동기화 과정을 본 발명의 일실시예에 따라 다시 시작하는 동기화과정을 순차적으로 보여주는 순서도,FIG. 3B is a flowchart sequentially showing a synchronization process of restarting the interrupted or stopped synchronization process of FIG. 3A according to an embodiment of the present invention; FIG.

도 4는 본 발명의 일실시예 및 도 3b에 따른 동기화 과정에 부합하는 XML코드화된 동기화 메시지를 발췌한 것을 나타내는 도면,4 is a view showing an extract of an XML-coded synchronization message corresponding to an embodiment of the present invention and a synchronization process according to FIG. 3B;

도 5는 본 발명의 일실시예에 따라 동기화 클라이언트 장치 및 동기화 서버장치를 포함하는 구성요소들을 간략히 나타낸 블록도,5 is a simplified block diagram illustrating components including a synchronization client device and a synchronization server device according to an embodiment of the present invention;

도 6은 본 발명의 일실시예에 따라 방해되거나 정지된 도 3a의 동기화 과정을 다시 시작하는 동기화 과정을 순차적으로 나타낸 순서도,FIG. 6 is a flowchart sequentially illustrating a synchronization process for restarting the synchronization process of FIG. 3A that is interrupted or stopped according to an embodiment of the present invention; FIG.

도 7은 본 발명의 일실시예에 따라 방해되거나 정지된 도 3a의 동기화 과정을 다시 시작하는 동기화 과정을 순차적으로 나타낸 순서도,7 is a flowchart sequentially illustrating a synchronization process of restarting the synchronization process of FIG. 3A that is interrupted or stopped according to an embodiment of the present invention;

도 8은 본 발명의 일실시예에 따라 방해되거나 정지된 도 3a의 동기화 과정을 다시 시작하는 동기화 과정을 순차적으로 나타낸 순서도,8 is a flowchart sequentially illustrating a synchronization process of restarting the synchronization process of FIG. 3A which is interrupted or stopped according to an embodiment of the present invention;

이하에서는, 본 발명의 실시예는 SyncML 동기화 표준을 지원하는 시스템의 관점에서 본 발명을 이에 한정하지 않으면서 그 실시예들을 설명한다. SyncML표준과 관련된 정보는 모든 표준 자료를 공개적으로 제공하는 SyncML이니시에이티브(SyncML Initiative)에서 얻을 수 있다. 도면들중 동일하거나 유사한 부분, 요소 및/또는 동작들은 같은 참조번호를 사용할 것이다.In the following, embodiments of the present invention are described without restricting the present invention to the point of view of a system supporting the SyncML synchronization standard. Information related to the SyncML standard can be obtained from the SyncML Initiative, which provides all the standard materials publicly. The same or similar parts, elements and / or operations in the drawings will use the same reference numerals.

도 1은 정보의 동기화가 수행될 수 있는 전자장치들의 예시를 보여주는 개략도이다. 예를 들면, 이동단말의 특정 데이터스토어 내용은 지정된 장치, 예를 들 면 몇 가지의 다양한 이동식 또는 고정식 단말 장치들이 접근할 수 있는 이 데이터스토어 내용의 중앙 저장소를 제공하는 장치에 의한 데이터스토어 내용과 조화되어야 한다. 통상적으로, 이동단말들은 스스로 실행중인 어떤 소정의 애플리케이션들과 관련된 데이터를 그 애플리케이션과 관련된 데이터를 중앙에서 보관하는 전용 서버장치들의 하나 또는 몇 개의 데이터스토어 내용과 조화시키거나 동기화시키는 동기화 클라이언트의 역할을 수행한다. 도 1은 동기화를 실행할 수 있는 복수의 가능한 클라이언트 장치들 및 서버장치들을 나타낸다. 보통 클라이언트 장치들은 데스크탑 컴퓨터(PC)는 물론, 휴대폰(17) 또는 PDA(Personal Digital Assistant), 노트북(15)과 같은 이동컴퓨터, 디지털카메라 등 디지털 데이터를 저장하는 전자장치들 등이다. 나아가, 전용 동기화 서버장치에는 데스크탑 컴퓨터(10), 동기화기능을 가지고 이를 네트워크 동기화 애플리케이션으로 사용하는 전용 네트워크서버(11)와, 심지어는 동기화 서버 애플리케이션을 실행하는 노트북 등의 이동컴퓨터 등도 있다. 여기에서 제공된 동기화의 개념은 전용 서버장치에 연결된 이동단말의 관점에서 설명되었더라도 클라이언트 장치의 기능은 앞에서 설명한 것처럼 이동단말에 한정되지 않는다.1 is a schematic diagram illustrating an example of electronic devices in which information synchronization may be performed. For example, the specific datastore contents of a mobile terminal may differ from the datastore contents by a device providing a central repository of datastore contents that can be accessed by a designated device, such as several different mobile or fixed terminal devices. It must be harmonized. Typically, mobile terminals act as synchronization clients to synchronize or synchronize data associated with any given application with one or several datastores of dedicated server devices that centrally store data associated with that application. Perform. 1 illustrates a plurality of possible client devices and server devices capable of performing synchronization. Typically, the client devices are not only desktop computers (PCs) but also mobile phones 17 or PDAs (Personal Digital Assistants), mobile computers such as notebooks 15, electronic devices for storing digital data such as digital cameras, and the like. Further, the dedicated synchronization server apparatus may include a desktop computer 10, a dedicated network server 11 having a synchronization function and using it as a network synchronization application, and even a mobile computer such as a laptop running the synchronization server application. Although the concept of synchronization provided herein has been described in terms of a mobile terminal connected to a dedicated server device, the functionality of the client device is not limited to the mobile terminal as described above.

SyncML프로토콜 표준에 부합하는 동기화 과정은 적절한 논리통신접속을 통해 수행된다. 논리통신접속은 동기화 프로토콜이 채택된 전송프로토콜이 수용되는 어떠한 통신네트워크에 의해서도 제공될 수 있다. 적당한 통신네트워크는 인터넷과 회사의 인트라넷을 구성할 수 있는 LAN(Local Area Network) 또는 WAN(Wide Area Network)뿐만 아니라 USB(Universal Serial Bus)와 같은 유선기반 직렬 네트워크나 표준화된 직렬통신(예를 들면, RS-232)도 될 수 있다. 참여하는 동기화장치들은 또한 GSM(Global System for Mobile communication)서비스 및/또는 GPRS(General Packet Radio Services)를 지원하는 이동네트워크, UMTS(Universal Mobile Telecommunication System)와 같은 제3세대 이동통신망, 무선랜(WLAN), 블루투스망,WLL(Wireless Local Loop), 적외선망(IrDA) 등을 통해서도 접속될 수 있다. 참여하는 동기화 장치들간의 논리통신접속은 전술한 종류들 중 하나의 네트워크를 통해 제공될 수도 있지만, 또한 통신네트워크들을 연결할 뿐 아니라 필요한 경우에는 각 통신네트워크들의 데이터 프로토콜간 번역을 수행하는 전용 네트워크 라우팅 장치에 의해 전술한 종류의 여러 네트워크들을 통해서도 제공될 수 있다.The synchronization process conforming to the SyncML protocol standard is performed over the appropriate logical communication connection. The logical communication connection may be provided by any communication network in which a transmission protocol employing a synchronization protocol is accepted. Suitable communication networks include wired-based serial networks such as Universal Serial Bus (USB) as well as local area networks (WLANs) or wide area networks (WANs) that can form the Internet and the company's intranet, or standardized serial communications (e.g., RS-232). Participating synchronization devices are also mobile networks that support Global System for Mobile communication (GSM) services and / or General Packet Radio Services (GPRS), third generation mobile communication networks such as Universal Mobile Telecommunication Systems (UMTS), and WLANs. ), A Bluetooth network, a wireless local loop (WLL), an infrared network (IrDA), and the like. Logical communication connection between participating synchronization devices may be provided through one of the above-described types, but also a dedicated network routing device that not only connects communication networks but also performs translation between data protocols of each communication network, if necessary. It can also be provided through a number of networks of the kind described above.

SyncML프로토콜 표준, SyncML동기화 프로토콜, SyncML 장치관리 프로토콜 표준과 관련하여, SyncML 장치관리 프로토콜은 채택된 통신네트워크 종류에 따른 적절한 프로토콜의 위에 구축된다. 위에 상기 SyncML 동기화 프로토콜이 구축될 수 있는 적절한 프로토콜은 HTTP(Hyper Text Transfer Protocol), WSP(Wireless Session Protocol)표준, USB나 RS-232와 같은 케이블연결, 근거리무선주파수연결(블루투스) 또는 적외선연결(IrDA)에 사용되는 OBEX(OBject EXchange protocol), TCP/IP(Transport Control Protocol/Internet Protocol)스택 및 이메일 프로토콜(예를 들면, SMTP:Simple Mail Transfer Protocol)에 의해 제공되는 전송 레이어 등이다.With regard to the SyncML Protocol Standard, SyncML Synchronization Protocol, and SyncML Device Management Protocol Standard, the SyncML Device Management Protocol is built on the appropriate protocol according to the type of communication network adopted. Appropriate protocols on which the SyncML synchronization protocol can be constructed include HTTP (Hyper Text Transfer Protocol), WSP (Wireless Session Protocol) standard, cable connections such as USB or RS-232, near radio frequency (Bluetooth) or infrared ( OBEX (OBject EXchange protocol), TCP / IP (Transport Control Protocol / Internet Protocol) stack, and transport layer provided by an email protocol (for example, SMTP: Simple Mail Transfer Protocol) used for IrDA.

하부계층에서의 전송은 기저(underlying)네트워크를 통하여 이루어지는데, 예를 들면 SMS 또는 기타 시그널링 타입의 전송방법(예를 들면, USSD:unstructed supplementary service data), 서킷 교환 데이터 전송, 패킷 교환 데이터 전송서비스 및 호출 메시지 서비스(paging message service), 셀 브로드캐스팅으로 전송되는 메시지 등을 사용한다.The transport at the lower layer is via an underlying network, for example SMS or other signaling type of transport (e.g., USSD: unstructed supplementary service data), circuit switched data transmission, packet switched data transmission service. And a paging message service, a message transmitted through cell broadcasting, and the like.

여기서의 데이터스토어라는 용어는 가능한 한 넓게 해석되어져야 하며, 접근할 데이터 저장공간의 임의의 데이터집합도 포괄한다는 점에 유의해야 한다. 특히, 달력 애플리케이션, 디렉토리 애플리케이션, 주소록 애플리케이션(예를 들면, vcard애플리케이션), 이메일 애플리케이션 등의 데이터와 같이 특정 애플리케이션과 관련된 데이터 집합은 애플리케이션의 고유 요구사항에 부합하도록 편성될 것이다. 또한, 임의의 데이터집합은 접근대상인 데이터를 제공하는 데이터기록을 포함하고 있는 하나 또는 그 이상의 데이터베이스 내에 편성될 수도 있다. 나아가, 데이터스토어라는 용어는 네트워크 데이터서비스 또는 네트워크화된 서비스 각각, 예를 들면 접근대상인 네트워크서비스에 의해 제공되는 데이터스토어와 유사한 임의의 데이터집합까지 포괄하는 의미로 해석되어야 한다. 일반적으로, 네트워크 서비스는 특정 서비스와 관련된 컨텐츠를 가지는 데이터스토어를 기반으로 한다. Note that the term datastore here should be interpreted as broadly as possible and encompasses any dataset of data storage to be accessed. In particular, data sets associated with a particular application, such as data such as calendar applications, directory applications, address book applications (eg vcard applications), email applications, etc., will be organized to meet the unique requirements of the application. In addition, any dataset may be organized into one or more databases containing data records providing data for access. Furthermore, the term datastore should be interpreted to encompass any dataset similar to the datastore provided by each of the network data services or networked services, for example, the network service to be accessed. In general, network services are based on datastores having content associated with a particular service.

다음 시퀀스도들은 본 발명의 방법들의 실시예들에 의한 동작 시퀀스들을 도시한 것이다. 도시된 동작들의 시퀀스들은 단순히 예시적인 것이고 그것에 한정되지 않는다. 유사하거나 관련된 동작 시퀀스들에 기반한 추가 구현들이 또한 가능하다. The following sequence diagrams illustrate operation sequences according to embodiments of the methods of the present invention. The sequences of actions depicted are merely exemplary and not limiting. Further implementations based on similar or related operating sequences are also possible.

도 2는 본 발명의 실시예에 따라 동기하는 클라이언트 장치와 동기하는 서버 장치간에 교환된 몇몇 메시지들을 포함하는 동기 프로세스의 시간순 시퀀스도를 도 시한 것이다.2 illustrates a chronological sequence diagram of a synchronization process including several messages exchanged between a synchronous client device and a synchronous server device in accordance with an embodiment of the present invention.

SyncML 동기 세션은 개념적으로 소위 SyncML 패키지들에 한정된다. 상기 SyncML 패키지들은 단순히 상기 동기하는 장치들간에 물리적으로 교환되고 한 세트의 동기 정보 및 명령들을 전달하는데 요구되는 하나 이상의 SyncML 메시지들에 대한 개념적인 골격 구조이다. 모든 SyncML 패키지들이 상기 SyncML 표준에 의해 제공된 어떤 유형의 동기에 포함되는 것은 아니다. 상기 SyncML 메시지들의 정확한 수는 전달되는 정보의 양에 의존한다.SyncML sync sessions are conceptually limited to so-called SyncML packages. The SyncML packages are merely a conceptual framework for one or more SyncML messages that are physically exchanged between the synchronous devices and are required to convey a set of sync information and instructions. Not all SyncML packages are included in any type of synchronization provided by the SyncML standard. The exact number of SyncML messages depends on the amount of information conveyed.

상기 SyncML 패키지들의 개략적인 개요는 다음 목록에서 설명된다. 상세한 설명은 상기 SyncML 표준 도큐먼트들로부터 획득될 수 있다.A schematic overview of the SyncML packages is described in the following list. A detailed description can be obtained from the SyncML standard documents.

패키지 0 - 상기 동기 메시지의 개시. 클라이언트 장치는, 수신하는 장치가 동기 세션을 개시하기 위하여 백(back) 접속을 설정하도록 명령하는, 요구되지 않은 메시지들, 소위 "통지들" 또는 "경고들"을 수신할 수 있다. 통지를 수신하는 것에 대한 동일한 효과가 다른 방법들로 야기될 수 있다는 것을 주목하라.Package 0-start of the sync message. The client device may receive unsolicited messages, so-called “notifications” or “warnings,” instructing the receiving device to establish a back connection to initiate a synchronous session. Note that the same effect on receiving the notification can be caused in different ways.

패키지 1 - 클라이언트 장치로부터 서버 장치로의 초기화. 예를 들어 클라이언트 장치 정보(장치 식별자 등), 클라이언트 장치 특성들, 클라이언트 인증, 동기 유형, 데이터 레코드들이 동기되는 데이터베이스들의 식별 정보들, 저장된 마지막 (LAST)앵커, 새로운 다음(NEXT) 앵커 등을 포함하는 하나 이상의 초기화 메시지들이 전송된다.Package 1-Initialization from client device to server device. For example, client device information (device identifiers, etc.), client device characteristics, client authentication, sync type, identification information of databases to which data records are synchronized, last stored anchor, new next anchor, etc. One or more initialization messages are sent.

패키지 2 - 서버 장치로부터 클라이언트 장치로의 초기화. 예를 들어 서버 장치 정보(장치 식별자 등), 서버 장치 특성들, 서버 인증, 하나 이상의 클라이언 트 초기화 메시지들에 포함된 정보에 대한 응답 및 상태 정보를 포함하는 하나 이상의 초기화 메시지들이 전송된다.Package 2-Initialization from server device to client device. For example, one or more initialization messages are sent that include server device information (such as device identifiers), server device characteristics, server authentication, response to information contained in one or more client initialization messages, and status information.

패키지 1(Pkg #1) 및 패키지 2(Pkg #2)는 상기 초기화 단계의 일부이다. 다음 패키지 3(Pkg #3) 내지 패키지 6(Pkg #6)은 상기 동기 메시지의 동기 단계의 일부이다.Package 1 (Pkg # 1) and Package 2 (Pkg # 2) are part of the initialization step. The next package 3 (Pkg # 3) to package 6 (Pkg # 6) is part of the synchronization phase of the synchronization message.

패키지 3 - 클라이언트에서 서버로의 동기. 예를 들어, 클라이언트 데이터 변경들, 즉 상기 동기 초기화에서 식별된 클라이언트 데이터베이스들의 데이터에 대한 어떤 변경들 등을 포함하는 하나 이상의 클라이언트 동기 메시지들이 전송된다. 고속 동기 프로세스의 경우, 이전의 동기 세션(마지막 앵커) 이래 변경된 데이터 레코드들만이 보고되는데, 저속 동기 프로세스의 경우 모든 데이터 레코드들이 보고된다.Package 3-Synchronization from client to server. For example, one or more client sync messages are sent that include client data changes, i.e. any changes to the data of the client databases identified in the sync initialization. In the case of a fast sync process, only data records that have changed since the previous sync session (last anchor) are reported, while in the slow sync process all data records are reported.

패키지 4 - 서버에서 클라이언트로의 동기. 예를 들어 전송된 클라이언트 데이터 변경들 및 또한 서버 데이터 변경들, 즉 상기 동기 초기화에서 식별된 서버 데이터베이스들의 데이터에 대한 어떤 변경들에 관한 서버의 분석에 대한 정보를 포함하는 하나 이상의 서버 동기 메시지들이 전송된다. 고속 동기 프로세스의 경우, 이전의 동기 세션(마지막 앵커) 이래 변경된 데이터 레코드들만이 보고되고, 저속 동기 프로세스의 경우 모든 데이터 레코드들이 보고된다.Package 4-Synchronization from Server to Client. One or more server sync messages are sent that contain information on the client's analysis of, for example, transmitted client data changes and also server data changes, ie any changes to the data of the server databases identified in the synchronous initialization. do. In the case of a fast sync process, only data records that have changed since the previous sync session (last anchor) are reported, and in the slow sync process all data records are reported.

패키지 5 - 데이터 갱신 상태, 맵 동작. 예를 들어 데이터 갱신의 결과들에 대한 정보(서버 변경들로 인한 동기), 로컬 유일 식별자(LUID: Local Uinque IDentifier) 및 글로벌 유일 식별자(GUID: Global Unique IDentifier)를 매핑하기 위한 맵 동작들(테이블) 등을 포함하는 하나 이상의 데이터 갱신 상태 메시지들이 전송된다. 로컬 유일 식별자는 데이터 레코드에 할당된 식별자이고 클라이언트 측상에서, 즉 장치 및 애플리케이션 당 국부적으로 유일하다. 상기 로컬 유일 식별자는 데이터 레코드를 식별하는 것을 허용한다. 글로벌 유일 식별자는 데이터 레코드에 할당된 식별자이고 상기 서버 측상에서 국부적으로 유일하다.Package 5-Data Update Status, Map Behavior. For example, map operations (tables for mapping information about the results of data updates (synchronization due to server changes), a local unique identifier (LUID) and a global unique identifier (GUID)) One or more data update status messages are sent. The local unique identifier is the identifier assigned to the data record and is locally unique on the client side, ie per device and application. The local unique identifier allows identifying a data record. The global unique identifier is the identifier assigned to the data record and is locally unique on the server side.

패키지 6 - 맵 긍정 응답. 예를 들어 상기 클라이언트 장치에게 상기 서버에 의한 하나 이상의 데이터 갱신 상태 메시지의 수신을 알리는 긍정 응답들을 포함하는 하나 이상의 맵 긍정 응답 메시지들이 전송된다.Package 6-Map Positive Response. One or more map acknowledgment messages are sent, for example, including acknowledgments informing the client device of receipt of one or more data update status messages by the server.

각각 상기 클라이언트 메시지 또는 상기 서버 메시지에 포함된 명령들 및 동기 정보에 의존하여 패키지 3에 의한 클라이언트 메시지는 패키지 4에 의한 서버 응답 메시지를 야기할 수 있고 그 역도 가능하다.Depending on the client message or the instructions and synchronization information contained in the server message, respectively, the client message by package 3 may cause a server response message by package 4 and vice versa.

동기 메시지의 각 메시지는 상기 메시지들이 별개의 동기 세션에 할당될 수 있도록 세션 식별자(세션 ID)를 포함한다. 각 메시지는 상기 클라이언트 장치 및 상기 서버 장치에서 교환된 메시지들의 부정합이 각각 방지되도록 메시지 식별자(메시지 ID)를 포함한다. 더욱이, 각 패키지 유형의 각각의 마지막 메시지는 이것이 마지막이라는 것을 나타내기 위한 최종 표시자를 포함한다.Each message in the sync message includes a session identifier (session ID) so that the messages can be assigned to a separate sync session. Each message includes a message identifier (message ID) such that mismatches of messages exchanged at the client device and the server device are respectively prevented. Moreover, each last message of each package type includes a final indicator to indicate that this is the last.

상기 동기 프로세스는 어떤 유형의 정보(어떤 데이터 레코드들)가 동기되는지(저속 또는 고속 동기, 즉 데이터 레코드들의 총 수 또는 단지 특정 시점 이래의 변경들), 어떤 장치(들)에서 (상기 클라이언트 장치 또는 상기 서버 장치 또는 양 장치들에서) 동기가 수행되는지 그리고 어떤 장치로부터 동기가 개시되는지에 의해 더 구별된다. 상기 동기의 유형은 예를 들어, 양방향 동기, 저속 동기, 단지 클라이언트로부터의 단방향 동기, 단지 클라이언트로부터의 리프레시 동기, 단지 서버로부터의 단방향 동기, 단지 서버로부터의 리프레시 동기 및 서버 경고 동기일 수 있다.The synchronization process involves what type of information (which data records) are synchronized (slow or fast synchronization, i.e. the total number of data records or only changes since a certain point in time), at which device (s) (the client device or The synchronization is further distinguished by whether synchronization is performed at the server device or both devices and from which device synchronization is initiated. The type of synchronization may be, for example, bidirectional synchronization, low speed synchronization, unidirectional synchronization from a client only, refresh synchronization from a client only, unidirectional synchronization from a server only, refresh synchronization from a server only and server alert synchronization.

나열된 유형의 동기의 지정들은 자체적으로 동기 프로세스를 기술하고 용이하게 이해가능하다. 더 상세한 설명은 SyncML 표준 도큐먼트가 참조된다.The designations of the listed types of syncs themselves describe the sync process and are easily understandable. See the SyncML standard document for more details.

예로서, 도 2에 도시된 상기 시대순 시퀀스도 및 상기 동기 프로세스는 본 발명의 범위가 다른 동기 유형들을 포함할지라도 각각 고속 양방향 동기 유형에 기반한다. 클라이언트(100)는 상기 서버(110)와 동기된다. 상기 패키지 시퀀스의 상술된 설명에 의하면, 설명된 동기 세션은 초기화 단계(210)로 구성되고 상기 초기화 단계 다음에 각각 몇몇 동기 메시지들을 포함하는 동기 단계가 온다. 모든 동기 메시지들은 동일한 세션 ID(미도시)를 포함한다.By way of example, the chronological sequence diagram and the synchronization process shown in FIG. 2 are each based on a fast bidirectional synchronization type, although the scope of the present invention includes other synchronization types. The client 100 is synchronized with the server 110. According to the above description of the package sequence, the described synchronous session consists of an initialization phase 210 followed by a synchronization phase, each including several synchronization messages. All sync messages contain the same session ID (not shown).

상기 클라이언트(100)와 상기 서버(110)의 초기화 단계(210)동안, 양 장치들은 장치 정보(장치 식별자들 등), 장치 특성들, 장치 인증 정보를 교환한다. 상기 클라이언트(100)는 동기의 유형(여기에서 고속 양방향 동기 유형)을 추가로 정의하고 저장된 마지막 앵커 및 새로 정의된 다음 앵커를 상기 서버(110)에 보고한다. 상기 서버(110)는 상기 클라이언트(100)에 의해 전송된 상기 마지막 앵커를 상기 서버(110)에 저장된 대응하는 값과 비교하고 상기 저장된 그리고 수신된 마지막 앵커들이 고속 동기를 허용하도록 매칭하는 경우 상기 마지막 앵커 및 상기 다음 앵커를 준수한다. 상기 다음 앵커의 상태(콘텐트)는 상기 클라이언트(100)가 상기 새 로 정의된 앵커를 전송하는 순간까지 ("?" 부호에 의해 표시된) 상기 서버(110)에서 정의되지 않는다(종래 기술에 의해, 즉 상기 종래 기술의 양방향 동기 프로세스는 그것에 대해 어떤 특정 값을 제공하지 않는다). 상기 앵커들이 매칭되지 않는 경우, 저속 동기가 상기 클라이언트(100)로 경고된다. 상기 초기화 단계(210)동안의 정보 교환은 패키지 1에 대응하는 클라이언트 초기화 메시지를 참조하는 제1 동작(200) 및 패키지 2 메시지에 대응하는 서버 초기화 메시지를 참조하는 제2 동작(201)으로 도시된다. 각각 동작들(200 및 201)에 의해 참조되는 양 메시지들은 동일한 메시지 ID 1(Msg #1)을 포함한다.During the initialization step 210 of the client 100 and the server 110, both devices exchange device information (device identifiers, etc.), device characteristics, and device authentication information. The client 100 further defines the type of synchronization (here fast bidirectional synchronization type) and reports to the server 110 the last anchor stored and the newly defined next anchor. The server 110 compares the last anchor sent by the client 100 with a corresponding value stored in the server 110 and the last when the stored and received last anchors match to allow fast synchronization. Observe the anchor and the next anchor above. The state (content) of the next anchor is not defined at the server 110 (indicated by a "?" Sign) until the moment the client 100 sends the newly defined anchor (by conventional technology, I.e. the bidirectional synchronous process of the prior art does not provide any particular value for it). If the anchors do not match, a slow sync is alerted to the client 100. The exchange of information during the initialization step 210 is illustrated by a first operation 200 referencing a client initialization message corresponding to package 1 and a second operation 201 referring to a server initialization message corresponding to package 2 message. . Both messages referenced by operations 200 and 201, respectively, contain the same message ID 1 (Msg # 1).

상기 초기화 단계(210)의 완료후, 상기 클라이언트(100)는 상기 동기(210)를 준비하는데, 즉 수신된 마지막 앵커에 따라 변경된 데이터 레코드들을 식별한다. 동작(203)에 의해 참조된 클라이언트 동기 메시지(패키지 3 메시지 유형)은 제1 배치의 클라이언트 변경들, 여기에서 총 10 식별된 변경들 중 5 변경들을 포함한다. 클라이언트 변경들이 명령들 및/또는 데이터 콘텐트를 포함한다는 것은 주목될 수 있다. 각각의 데이터 레코드를 동기시키기 위한 데이터 콘텐트로 완료되는, 상기 명령들은 상기한 모든 부가, 갱신, 삭제 등을 포함한다. 부가적으로 상기 메시지는 이전의 서버 초기화 메시지에 따른 상태 정보를 더 포함한다. 상기 서버(110)는 상기 제1 클라이언트 동기 메시지를 수신하고, 상기 수신된 클라이언트 변경들을 분석하며, 상기 클라이언트 변경들로부터 나타나는 가능한 충돌들을 해결하고 상기 클라이언트 변경들을 처리한다(동작 212). 상기 분석 및 동기 프로세스의 상태 정보 및 클라이언트 변경 긍정 응답들을 포함하는, 동작 204에 의해 참조되는 대응하 는 서버 동기 메시지(패키지 4 메시지 유형)가 상기 클라이언트로 전송된다. 동작(203)에 의해 참조된 상기 클라이언트 동기 메시지 및 동작(204)에 의해 참조된 서버 동기 메시지 양자는 공통 메시지 ID, 여기에서 메시지 ID 2(Msg #2)에 의해 식별가능하다. 하지만, 상기 메시지 넘버링은 상기에 제공된 것을 벗어날 수 있다는 것이 주목되어야 한다. 진정으로, 상기 메시지 넘버링에 의해 소용될 유일한 목적은 각 장치가 상기 메시지 번호들의 일관된 뷰를 가지는 것, 즉 상기 클라이언트 및 상기 서버를 향한 넘버링은 심지어 매칭될 필요가 없다는 것이다.After completion of the initialization step 210, the client 100 prepares for the synchronization 210, i.e., identifies the changed data records according to the last anchor received. The client sync message (package 3 message type) referenced by operation 203 includes client changes in the first batch, here 5 of the 10 identified changes in total. It may be noted that client changes include instructions and / or data content. The instructions, complete with data content for synchronizing each data record, include all of the above additions, updates, deletions, and the like. In addition, the message further includes status information according to a previous server initialization message. The server 110 receives the first client sync message, analyzes the received client changes, resolves possible conflicts arising from the client changes and processes the client changes (operation 212). A corresponding server synchronization message (package 4 message type) referenced by operation 204 is sent to the client, including the status information of the analysis and synchronization process and client change acknowledgments. Both the client sync message referenced by operation 203 and the server sync message referenced by operation 204 are identifiable by a common message ID, where message ID 2 (Msg # 2). However, it should be noted that the message numbering may deviate from that provided above. Indeed, the only purpose to be exploited by the message numbering is that each device has a consistent view of the message numbers, ie the numbering towards the client and the server need not even match.

동작(206)에 의해 참조된 다음 클라이언트 동기 메시지(패키지 3 메시지 유형)은 제2 배치의 클라이언트 변경들, 여기에서 총 10 식별된 변경들 중 나머지 5 변경들을 포함한다. 상기 클라이언트 동기 메시지는 이것이 클라이언트 변경들을 포함하는 마지막 클라이언트 동기 메시지라는 것을 나타내는 최종 표시자를 부가적으로 포함한다. 상기 서버(110)는 상기 마지막 클라이언트 동기 메시지를 수신하고, 상기 수신된 클라이언트 변경들을 분석하며, 상기 클라이언트 변경들로부터 나타나는 가능한 충돌들을 해결하고, 상기 클라이언트 변경들을 처리하며 상기 최종 식별자로 인하여 상기 클라이언트(100)로 전송될 서버 변경들을 준비한다(상기 서버의 마지막 앵커를 고려하여 식별된다)(동작 212). 서버 변경들, 클라이언트 변경 긍정 응답들 및 상기 분석 및 동기 프로세스의 상태 정보를 포함하는 동작(207)에 의해 참조된 대응하는 서버 동기 메시지(패키지 4 메시지 유형)가 상기 클라이언트로 전송된다. 도 2에 도시된 동기 세션에 의하면, 단일 서버 동기 메시지는 상기 메시지가 부가적으로 최종 표시자를 포함하도록 상기 클라이언트로 모든 식별된 서 버 변경들을 전송하기에 충분하다. 동작 214에서 상기 클라이언트(100)는 수신된 서버 변경들을 처리한다. 각각 동작 206 및 동작 207에 의해 참조된 양 메시지들은 동일한 메시지 ID 3(Msg #3)을 포함한다.The next client sync message (package 3 message type) referenced by operation 206 includes client changes in the second batch, the remaining 5 of the total 10 identified changes here. The client sync message additionally includes a final indicator indicating that this is the last client sync message containing client changes. The server 110 receives the last client sync message, analyzes the received client changes, resolves possible conflicts arising from the client changes, processes the client changes and causes the client (because of the final identifier) Prepare server changes to be sent to 100 (identified in consideration of the last anchor of the server) (operation 212). A corresponding server sync message (package 4 message type) referenced by operation 207 that includes server changes, client change acknowledgments, and status information of the analysis and sync process is sent to the client. According to the sync session shown in FIG. 2, a single server sync message is sufficient to send all identified server changes to the client such that the message additionally contains a final indicator. In operation 214 the client 100 processes the received server changes. Both messages referenced by operations 206 and 207, respectively, contain the same message ID 3 (Msg # 3).

상기 서버 변경들로 인한 동기 상태 정보 및 긍정 응답 정보를 포함하는 동작 208에 의해 참조된 클라이언트 갱신 상태 메시지(패키지 5 메시지 유형)은 후속적으로 상기 서버(110)로 전달되고 필요한 경우 상기 서버(110)에 대한 맵 동작들은 로컬 유일 식별자들 및 글로벌 유일 식별자들을 할당하는 상기 데이터 레코드 맵 테이블을 처리한다. 마지막으로 그리고 도시되지 않았지만 상기 클라이언트 갱신 상태 메시지는 하나 이상의 맵 긍정 응답 메시지들(패키지 6 메시지 유형)을 가지고 상기 서버(110)에 의해 응답될 수 있다.The client update status message (package 5 message type) referenced by operation 208 that includes synchronization status information and acknowledgment response information due to the server changes is subsequently forwarded to the server 110 and, if necessary, the server 110. Map operations to the data record map table that assigns local unique identifiers and global unique identifiers. Finally and not shown, the client update status message may be responded by the server 110 with one or more map acknowledgment messages (package 6 message type).

결론적으로, 상기 동기 세션 및 상기 세션의 동기 메시지들이 전달되는 상기 통신 접속은 폐쇄된다. 상기 동기 세션 및 상기 통신 접속의 완료에 관하여 아무런 에러도 탐지되지 않는 경우, 상기 동기 세션의 시작시 정의된 다음 앵커의 콘텐트가 저장된다. 상기 할당은 동작 215에서 상기 클라이언트(100)에서 수행되고 동작 216에서 상기 서버에서 수행된다(사실상, 상기 서버는 상기 앵커를 마지막이라고 부를 수 없지만, 그럼에도 불구하고 상기 앵커에 저장된 값은 상기 클라이언트에 의해 송신된 다음 앵커의 값이다). 따라서, 다음 고속 동기 프로세스가 가능하다.In conclusion, the synchronous session and the communication connection through which the synchronous messages of the session are delivered are closed. If no error is detected regarding the completion of the synchronization session and the communication connection, the content of the next anchor defined at the start of the synchronization session is stored. The assignment is performed at the client 100 in operation 215 and performed at the server in operation 216 (in fact, the server may not call the anchor last, but nevertheless the value stored in the anchor is stored by the client. Value of the next anchor sent). Thus, the next high speed synchronous process is possible.

동기 세션의 시작시 다음 앵커를 정의하는 것과 상기 동기 세션의 적합한 완료 이후 상기 마지막 앵커에 다음 앵커 콘텐트를 할당하는 것은 상기 동기 프로세스동안 상기 클라이언트 측 또는 서버 측상에서 데이터 레코드들의 변경으로 인한 충돌들을 방지한다는 것이 주목된다. 도시된 마지막 앵커들 및 다음 앵커들의 콘텐트는 단지 그들의 사용을 가르치기 위한 것임은 부가적으로 주목될 수 있다. 실제 목적을 위하여 상기 마지막 앵커들 및 다음 앵커들은 보통 날짜 값 및 시간 값을 포함하거나 획득되거나, 그들은 다른 유형의 수치 값들이다. 이러한 유형의 구성은 모호한 마지막 및 다음 앵커들 각각을 생성하는 것을 보장할 수 있다.Defining the next anchor at the start of a synchronous session and assigning the next anchor content to the last anchor after proper completion of the synchronous session avoid collisions due to changes in data records on the client side or server side during the synchronous process. It is noted that. It can additionally be noted that the contents of the last anchors and the next anchors shown are merely for teaching their use. For practical purposes the last anchors and the next anchors usually contain or are obtained with date values and time values, or they are other types of numerical values. This type of configuration can ensure to create each of the ambiguous last and next anchors.

도 3a는 도 2와 유사한 동기 프로세스의 시대순 시퀀스도를 도시한 것으로 본 발명의 실시예에 따라 중단되거나 중지된다. 도 3a에 도시된 동기 세션은 도 2를 참조하여 제시된 것과 동일할 것인데, 즉 초기 상태들, 동작들 200-204 및 동작들 210 - 212는 동일한 방식으로 수행된다. 유사하게, 도 3a에 도시된 동작들 및 도 2에 도시되고 도 3a에 공통된 각각의 동작들은 동일한 참조 번호들로 지칭된다.FIG. 3A illustrates an chronological sequence diagram of a synchronous process similar to FIG. 2 and is suspended or stopped in accordance with an embodiment of the present invention. The sync session shown in FIG. 3A will be the same as that presented with reference to FIG. 2, ie the initial states, operations 200-204 and operations 210-212, are performed in the same manner. Similarly, the operations shown in FIG. 3A and each of the operations shown in FIG. 2 and common to FIG. 3A are referred to by the same reference numerals.

도 3a에서 상기 초기화 단계 및 상기 클라이언트(100)와 상기 서버(110)의 대응하는 초기화 메시지들은 생략된다. 10 클라이언트 변경들 중 처음의 5를 포함하는 제1 클라이언트 동기 메시지(패키지 3 유형)를 참조하는 동작(203) 및 상기 제1 서버 동기 메시지(패키지 4 메시지 유형)를 참조하는 동작(204)은 상기 클라이언트 변경들에 대응하는 상태 정보를 포함하는 것으로 도시된다.In FIG. 3A, the initialization step and corresponding initialization messages of the client 100 and the server 110 are omitted. The operation 203 of referring to a first client synchronization message (package 3 type) that includes the first 5 of 10 client changes and the operation 204 of referencing the first server synchronization message (package 4 message type) of the It is shown to contain state information corresponding to client changes.

동작 205에서 상기 동기는 중단되거나 중지된다. 중단 또는 중지는 몇몇 이유들로 인하여 야기될 수 있는데, 예를 들어 상기 동기 세션은 사용자 상호작용, 사용자 발단, 예를 들어 배터리 또는 축전지 용량의 결여로 인한 클라이언트(100) 또는 서버(110)의 전력 손실, 예를 들어 무선 통신 네트워크에서의 커버리지의 손실로 인한 통신 접속의 손실, 단지 가능한 이유들의 선택을 제공하기 위한 통신 접 속에서의 간섭으로 인하여 중지된다.In operation 205 the synchronization is stopped or stopped. Interruption or interruption can be caused for several reasons, for example the synchronous session may result in user interaction, user origination, for example, the power of client 100 or server 110 due to lack of battery or battery capacity. Loss, for example, loss of communication connection due to loss of coverage in a wireless communication network, interrupted due to interference in the communication interface to provide only a choice of possible reasons.

본 창의적인 방법의 실시예에 의한 동기 세션 재개를 허용하기 위하여, 상기 클라이언트(100) 및 상기 서버(110)는 완료되지 않은 동기 세션에 관한 정보를 기록한다. 상기 완료되지 않은 동기 세션의 재개를 허용하기 위한 정보는 상기 클라이언트(100) 및 상기 서버(110) 양자에 기록된, 상기 클라이언트(100)에서의 적어도 다음 앵커 및 적어도 마지막 앵커를 포함한다.In order to allow for resumption of a synchronous session according to an embodiment of the inventive method, the client 100 and the server 110 record information about an incomplete synchronous session. The information for allowing resumption of the incomplete sync session includes at least the next anchor and at least the last anchor at the client 100, recorded at both the client 100 and the server 110.

이 정보는 또한 불완전한 동기 세션의 세션 ID, 적합하게 전송되고 클라이언트(100)가 승인(acknowledgement)을 수신한 최종 메시지의 메시지 ID, 및 하나 이상의 고유 데이터 레코드 식별자들, 즉 로컬 고유 식별자들 또는 전송되고 그 전송이 불완전한 동기 세션 동안 확인된 변경(modification)에 따른 데이터 레코드들의 글로벌 고유 식별자들을 포함할 수 있다. This information may also be the session ID of the incomplete synchronous session, the message ID of the last message suitably sent and the client 100 received the acknowledgment, and one or more unique data record identifiers, i.e., local unique identifiers or sent. The transmission may include globally unique identifiers of data records according to modifications identified during an incomplete synchronization session.

대안으로, 불완전한 동기 세션이 시작된 시점을 로그(log)하기 위해 다음 앵커를 채용하는 대신에, 신규 앵커, 예를 들어 포즈(PAUSE) 앵커가 정의되고 불완전한 동기 세션을 재개(resuming)하는데 사용되도록 특별히 채용된다. 이하 본 발명은 다음 앵커를 참조하여 기술되지만 본 발명의 개념은 이에 제한되지 않는다. 이하 설명을 상기 신규 PAUSE 앵커에 적합화하기 위하여, 용어 다음 앵커는 단순히 용어 PAUSE 앵커로 대체되어진다.Alternatively, instead of employing the next anchor to log when the incomplete sync session started, a new anchor, for example a PAUSE anchor, is defined and specifically used to resume an incomplete sync session. Are employed. Hereinafter, the present invention is described with reference to the following anchors, but the concept of the present invention is not limited thereto. In order to adapt the following description to the new PAUSE anchor, the term following anchor is simply replaced by the term PAUSE anchor.

도 3b는 본 발명의 실시예에 따라 도 3a가 인터럽트되거나 중단된 불완전한 동기 세션에서 수행하는 동기 세션의 시간에 따른 시퀀스 도를 도시한다.FIG. 3B illustrates a sequence diagram over time of a sync session performed in an incomplete sync session where FIG. 3A is interrupted or interrupted in accordance with an embodiment of the present invention.

도 3a를 참조하여 상술된 이전 불완전한 동기 세션을 재개하기 위하여 클라 이언트(100)의 의도를 서버(110)에 나타내는 경고 명령(alert command)을 포함하는 신규 초기화 메시지(패키지 1 유형)를 참조하는 단계(250)에 의해 재개 동기화 세션이 개시된다. 이러한 신규 초기화 메시지는 이전 불완전한 동기 세션(도 3a의 단계(205))의 인터럽트에 따라 로그된 적어도 다음 앵커 및 마지막 앵커를 포함한다. 서버는 상기 마지막 앵커 및 다음 앵커를 클라이언트로부터 수신하여 자신이 로그한 마지막 앵커 및 다음 앵커와 비교한다. 도 2에 도시된 동기 세션 및 도 3a에 도시된 유사한 동기 세션에 비해 상기 다음 앵커는 각각 서버측에 잘 정의된 상태(state) 및 컨텐트(content)를 갖는다는 것을 유념한다.Referencing a new initialization message (package 1 type) containing an alert command indicating to the server 110 the intention of the client 100 to resume the previous incomplete sync session described above with reference to FIG. 3A. Resume synchronization session is initiated by 250. This new initialization message includes at least the next anchor and the last anchor logged according to the interruption of the previous incomplete synchronization session (step 205 of FIG. 3A). The server receives the last anchor and the next anchor from the client and compares them with the last and next anchors logged by them. Note that, compared to the synchronous session shown in FIG. 2 and the similar synchronous session shown in FIG. 3A, the next anchor has a well-defined state and content on the server side, respectively.

클라이언트(100) 및/또는 서버(110) 중 적어도 하나는 마지막 앵커가 매치(match)하는지 및/또는 다음 앵커가 매치하는지에 따라 다음의 4가지 상이한 옵션 중 어느 것을 명령, 개시 또는 수행할 수 있다.At least one of the client 100 and / or server 110 may command, initiate or perform any of the following four different options depending on whether the last anchor matches and / or the next anchor matches. .

1) 수신되고 로그된 마지막 앵커 및 수신되고 로그된 다음 앵커가 매치하는 경우, 응답을 위해 적어도 마지막 앵커 및 다음 앵커를 포함하고 단계(251)를 참조하여 서버 초기화 메시지(패키지 2 유형)를 전송함으로써 불완전한 동기 세션(재개 고속 동기(resuming fast synchronization))의 재개를 확인한다. 재개 허용 확인은 재개되는 불완전한 동기 세션에 관한 추가 정보에 추가로 근거할 수 있다(도 3a의 단계(205) 참조). 예를 들어, 상술된 불완전한 동기 세션의 로그된 세션 ID 및/또는 적합하게 전송된 최종 메시지의 로그된 메시지 ID가 로그된 앵커들의 검사 단계 동안 고려된다.1) if the last anchor received and logged and the next anchor received and logged match, include at least the last anchor and the next anchor for a response and refer to step 251 to send a server initialization message (package 2 type) Confirm resumption of incomplete synchronization sessions (resuming fast synchronization). Resumption grant confirmation may be further based on additional information regarding the incomplete sync session being resumed (see step 205 of FIG. 3A). For example, the logged session ID of the incomplete synchronous session described above and / or the logged message ID of the last message sent suitably are taken into account during the checking phase of the logged anchors.

2) 수신되고 로그된 마지막 앵커는 매치하지만 수신되고 로그된 다음 앵커는 매치하지 않는 경우, 도 2를 참조하여 표시된 종류의 (일반) 고속 동기 세션이 서버에 의해 명령된다. 매치하지 않는 다음 앵커는 도 3a를 참조하여 기술된 불완전한 동기 세션의 재개를 나타낸다.2) If the last anchor received and logged matches but the next anchor received and logged does not match, a (general) fast sync session of the kind indicated with reference to FIG. 2 is commanded by the server. The next anchor that does not match indicates the resumption of the incomplete sync session described with reference to FIG. 3A.

3) 수신되고 로그된 마지막 앵커는 매치하지 않지만 수신되고 로그된 다음 앵커는 매치하는 경우, 재개 저속 동기 세션이 서버에 의해 명령된다. 이러한 재개 저속 동기 세션은 도 3b에는 도시되지 않는다. 간단히, 재개 저속 동기 세션은 동기화되기 위해 미리 정의된 모든 데이터 레코드들을 동기화하도록 허용하는 동기 관련 정보를 교환한다. 하지만, 이러한 동기 관련 정보는 도 3a에 도시된 불완전한 동기 세션 동안 성공적으로 교환되고 동기화된 재개 저속 동기 세션에서 제외된다.3) If the last anchor received and logged does not match but the next anchor received and logged matches, a resume slow sync session is commanded by the server. This resume slow sync session is not shown in FIG. 3B. Briefly, a resume slow sync session exchanges sync related information that allows to synchronize all predefined data records to be synchronized. However, this sync related information is excluded from the resume slow sync session successfully exchanged and synchronized during the incomplete sync session shown in FIG. 3A.

4) 수신되고 로그된 마지막 앵커 및 수신되고 로그된 다음 앵커 모두가 매치하지 않는 경우, 재개 고속 동기 세션 또는 재개 저속 동기 세션 어느 것도 개시될 수 없다. 또한, 고속 동기화는 불가능하다. 동기화되기 위해 미리 정의된 모든 데이터 레코드들의 교환을 포함하는 완전 저속 동기 세션(상술된 바와 같이; 도 3b에는 도시되지 않은)이 참여하는 장치들 간에 적합한 동기 상태를 설정하기 위하여 수행되어야 한다.4) If neither the last anchor received and logged and the next anchor received and logged do not match, neither a resume fast sync session nor a resume slow sync session can be initiated. In addition, high speed synchronization is not possible. In order to be synchronized, a full slow synchronization session (as described above; not shown in FIG. 3B), including the exchange of all predefined data records, must be performed to establish a suitable synchronization state between the participating devices.

다음 설명은 제1 경우(수신되고 로그된 마지막 앵커 및 수신되고 로그된 다음 앵커가 매치하는 경우)가 올바르다는 가정에 근거한다. 이 경우는 또한 클라이언트(100) 및 서버(110) 모두의 로그된 마지막 및 다음 앵커들의 상태(값)를 나타내는 도 3b에 도시된다. 서버(110)는 응답을 위해 적어도 마지막 앵커 및 다음 앵커를 포함하고 단계(251)를 참조하는 서버 초기화 메시지(패키지 2 유형)를 전송한 다.The following description is based on the assumption that the first case (when the last anchor received and logged and the next anchor received and logged match) is correct. This case is also shown in FIG. 3B, which shows the status (value) of the last and next logged anchors of both client 100 and server 110. The server 110 sends a server initialization message (package 2 type) that includes at least the last anchor and the next anchor for the response and refers to step 251.

도 3a에 도시된 단계(205)와 관련하여 설명된 바와 같이, 불완전한 동기 세션에 관한 추가 로그 정보가 인터럽트시에 로그된다. 상술된 바와 같이 이 정보는 불완전한 동기 세션의 세션 ID, 적합하게 전송되고 클라이언트(100)가 승인을 수신한 최종 메시지의 메시지 ID, 및 하나 이상의 고유 데이터 레코드 식별자들, 즉 로컬 고유 식별자들 또는 전송되고 그 전송이 불완전한 동기 세션 동안 확인된 변경에 따른 데이터 레코드들의 글로벌 고유 식별자들 중 적어도 하나를 포함할 수 있다. 로컬 고유 식별자들에 의해 제공되는 정보는 충분하지 않을 수 있고 데이터베이스 식별자들은 로컬 고유 식별자들에 추가로 로그될 수 있다는 것을 유념한다. 로컬 고유 식별자 및 연관된 데이터베이스 식별자의 조합은 로컬 고유 식별자에 의해 참조되는 대응하는 데이터 레코드를 (명백하게) 결정할 수 있게 한다. 상기 데이터베이스 식별자들은 해당 기술에 공지된 균일 자원 로케이터(URI; uniform resource locator)일 수 있다.As described in connection with step 205 shown in FIG. 3A, additional log information regarding incomplete sync sessions is logged at the time of interruption. As described above, this information may include the session ID of an incomplete synchronous session, the message ID of the last message suitably transmitted and the client 100 has received an acknowledgment, and one or more unique data record identifiers, ie local unique identifiers or transmitted. The transmission may include at least one of the globally unique identifiers of the data records according to the change identified during the incomplete synchronization session. Note that the information provided by the local unique identifiers may not be sufficient and the database identifiers may be logged in addition to the local unique identifiers. The combination of the local unique identifier and the associated database identifier allows (obviously) to determine the corresponding data record referenced by the local unique identifier. The database identifiers may be a uniform resource locator (URI) known in the art.

저장된 마지막 앵커, 저장된 다음 앵커 및 불완전한 동기 세션에 관한 저장된 정보는 인터럽트시에 이전의 불완전한 동기 세션의 상태를 다시 저장(재설정)하도록 허용한다. 이러한 종류의 재구성은 완전한 동기 세션을 나타내는 도 2에 도시된 단계들(206-208)에 의해 참조되고, 동일한 동기 세션을 나타내지만 단계(204)(도 2 및 도 3a)에 의해 참조되는 동기 메시지의 전송 이후에 인터럽트로 인하여 불완전한 도 3a에는 없는 메시지들을 생성하도록 허용한다.Stored information about the last stored anchor, the next stored anchor, and the incomplete sync session allows to save (reset) the state of the previous incomplete sync session upon interruption. This kind of reconfiguration is referred to by steps 206-208 shown in FIG. 2 representing a complete synchronous session, and is a synchronous message that represents the same synchronous session but is referenced by step 204 (FIGS. 2 and 3A). Allows to generate messages that are not incomplete in FIG. 3A due to an interrupt after the transmission of.

단계들(250 및 251)에 의해 참조되는 신규 클라이언트 메시지 및 서버 초기 화 메시지 모두는 또한 도 2에 도시된 단계들(200 및 201)을 참조하여 설명된 바와 같은 동기 세션을 설정하는데 필요한 정보를 포함한다.Both the new client message and the server initialization message referenced by steps 250 and 251 also include the information needed to establish a synchronous session as described with reference to steps 200 and 201 shown in FIG. do.

여기서, 불완전한 동기 세션을 재개하기 위한 조건들이 충족되고 불완전한 동기 세션이 클라이언트(100)가 본 발명의 방법의 실시예에 따라 수행될 수 있도록 재구성되었다는 것으로 가정한다. 단계(252)에 의해 참조되는 클라이언트 동기 메시지(패키지 3 유형)는 도 2에 도시된 단계(206)에 의해 참조되는 제2 클라이언트 동기 메시지에 대응한다. 따라서 클라이언트 동기 메시지는 이 메시지가 현재 동기 세션의 최종 클라이언트 동기 메시지라는 것을 나타내기 위하여 10개의 변경 중 최종 5개 및 최종 표시자(instructor)를 포함한다. 또한, 메시지 넘버링(numbering), 즉 메시지 ID는 현재의 재개 동기 세션에 적합하게 되고 따라서 도 3b의 클라이언트 동기 메시지는 (단계(250) 및 단계(251)에 의해 지칭되는) 초기화 메시지들의 이전 메시지 ID(1) 다음의 메시지 ID(2)를 갖는다. (본 발명의 범위는 다른 유형의 메시지 넘버링 세션을 포함하도록 의도된다는 것을 유념하는 것이 중요하다.)Here, assume that the conditions for resuming an incomplete synchronous session have been met and that the incomplete synchronous session has been reconfigured so that the client 100 can be performed in accordance with an embodiment of the method of the present invention. The client sync message (package 3 type) referenced by step 252 corresponds to the second client sync message referenced by step 206 shown in FIG. Thus, the client sync message includes the last five of the ten changes and the final instructor to indicate that this message is the last client sync message of the current sync session. In addition, message numbering, i.e., the message ID, is adapted to the current resume synchronization session, so that the client synchronization message of FIG. 3B is the previous message ID of the initialization messages (referred to by steps 250 and 251). (1) It has the following message ID (2). (It is important to note that the scope of the present invention is intended to include other types of message numbering sessions.)

서버(110)는 도 2에 도시된 단계(206)에 의해 참조되는 제2 클라이언트 동기 메시지에 대응하는 단계(253)에 의해 참조되는 서버 동기 메시지(패키지 3 유형)를 전송함으로써 클라이언트 동기화 장치에 응답한다. 상기 서버 동기 메시지는 서버 변경, 클라이언트 변경 응답 및 동기화 프로세싱 및 분석의 상태 정보를 포함한다. 도 2에 도시된 동기 세션에 따라, 단일 서버 동기 메시지는 상기 메시지가 추가로 최종 표시자를 포함하도록 클라이언트에 모든 식별된 서버 변경을 전송하기에 충분하다. 단계(252 및 253)에 의해 참조되는 메시지들 모두는 각각 동일한 메시지 ID(2)를 포함한다.The server 110 responds to the client synchronization device by sending a server synchronization message (package 3 type) referred to by step 253 corresponding to the second client synchronization message referred to by step 206 shown in FIG. do. The server synchronization message includes server change, client change response and status information of synchronization processing and analysis. In accordance with the sync session shown in FIG. 2, a single server sync message is sufficient to send all identified server changes to the client such that the message additionally contains a final indicator. All of the messages referenced by steps 252 and 253 each contain the same message ID 2.

필요한 경우 로컬 고유 식별자들 및 글로벌 고유 식별자들을 할당하는 데이터 레코드 맵 테이블을 프로세스하는 서버(110)에 맵 동작 및 서버 변경으로 인하여 동기 상태 정보 및 응답 정보를 포함하는 단계(254)에 의해 참조되는 클라이언트 갱신 상태 메시지(패키지 5 메시지 유형)가 서버(110)에 전달된다. 이러한 클라이언트 갱신 상태 메시지는 또한 도 2를 참조하여 설명된 단계(208)에 의해 참조되는 클라이언트 갱신 상태 메시지에 대응한다. 마지막으로, 비록 도시되지는 않지만, 클라이언트 갱신 상태 메시지는 하나 이상의 맵 승인 메시지(map acknowledgement message)(패키지 6 메시지 유형)를 가지고 서버(110)에 의해 응답될 수 있다.Client referenced by step 254 including synchronization status information and response information to the server 110 processing the data record map table that assigns local unique identifiers and global unique identifiers, if necessary, due to map behavior and server changes. An update status message (package 5 message type) is communicated to the server 110. This client update status message also corresponds to the client update status message referenced by step 208 described with reference to FIG. 2. Finally, although not shown, the client update status message may be responded by the server 110 with one or more map acknowledgment messages (package 6 message type).

최종적으로, 동기 세션 및 이 세션의 동기 메시지가 전송되는 통신 접속이 종료된다. 동기 세션 및 통신 접속의 종료에 관하여 에러가 검출되지 않은 경우, 동기 세션의 시작시에 정의된 컨텐트 다음 앵커가 마지막 앵커에 할당된다. 이러한 할당은 단계(260)에서 클라이언트(100) 및 단계(261)에서 서버(110)에서 수행된다. 따라서 다음 고속 동기 프로세스가 동작가능하다. 동기 세션의 시작시에 다음 앵커의 정의 및 동기 세션의 적합한 종료 이후에 다음 앵커 컨텐트의 마지막 앵커로의 할당은 동기화 프로세스 동안 클라이언트측 또는 서버측에 데이터 레코드의 변경으로 인한 충돌을 방지한다는 것을 유념한다. 추가로 도시된 마지막 앵커 및 다음 앵커의 컨텐트가 그 사용을 나타낸다는 것을 유념할 수 있다. 실제적인 목적을 위해 마지막 앵커 및 다음 앵커는 일반적으로 날짜 값 및 시간 값으로부터 유도되거나 구성될 수 있다. 이러한 종류의 구성은 각각 명확한 마지막 및 다음 앵커들을 생성하도록 보장할 수 있다.Finally, the synchronous session and the communication connection to which the synchronous message of this session is sent are terminated. If no error is detected regarding the end of the synchronous session and the communication connection, the anchor next to the content defined at the start of the synchronous session is assigned to the last anchor. This assignment is performed at the client 100 at step 260 and at server 110 at step 261. Thus, the next fast synchronous process is operable. Note that the definition of the next anchor at the start of a synchronous session and the assignment of the next anchor content to the last anchor after the proper end of the synchronous session prevents conflicts due to changes in data records on the client side or server side during the synchronization process. . It may further be noted that the content of the last anchor and the next anchor shown indicates its use. For practical purposes, the last anchor and the next anchor may generally be derived from or constructed from date values and time values. This kind of configuration can ensure to produce explicit last and next anchors, respectively.

또한, 불완전한 동기 세션 이후에 그리고 재개 동기 세션 이전에 데이터 레코드에 대한 변경은 불완전한 동기 세션의 재개 동안 고려되지 않는다는 것을 유념한다. 재개 동기 세션은 불완전한 동기 세션이 성공적으로 완료된 것처럼 데이터 레코드 또는 데이터 레코드를 포함하는 데이터 저장부의 상태를 설정한다. 이러한 이유로, 동기 세션의 타임 스탬프를 나타내는 다음 앵커는 재개 동기 세션의 초기화 동안 갱신되지 않는다. 불완전한 동기 세션 이후에 발생하는 변경은 성공적인 재개 동기 세션 이후에 동기 세션을 초기화함으로써 동기화될 수 있고, 특히 클라이언트(100) 및 서버(110)에 저장된 마지막 앵커가 갱신되고 유효하기 때문에 고속 동기 세션이 개시될 수 있다.It is also noted that changes to data records after an incomplete sync session and before a resume sync session are not considered during the resumption of an incomplete sync session. The resume sync session sets the state of the data store containing the data record or data record as if an incomplete sync session was successfully completed. For this reason, the next anchor that represents the time stamp of the sync session is not updated during the initialization of the resume sync session. Changes that occur after an incomplete synchronous session can be synchronized by initiating a synchronous session after a successful resume synchronous session, particularly since the last anchor stored in client 100 and server 110 is updated and valid. Can be.

본 발명의 실시예의 문맥에서 설명된 승인(acknowledgement)은 데이터 또는 메시지의 동기의 긍정 또는 부정 상태를 포함하는 다른 목적으로부터 수신된 데이터에 어떤 종류의 응답으로 번역된다. 전형적으로, 승인은 레코드의 갱신을 확인하지만, 또한 예를 들어 발견되지 못한 레코드로 인한 성공하지 못한 동작의 정보를 운반할 수 있다. 그럼에도 불구하고, 이러한 에러의 처리는 본 발명의 관심 대상이 아니고 아무튼 에러를 처리하는 구현에 남겨진다. 하지만, 에러의 발생은 세션의 재개를 방해하지 않아야 한다. 즉 세션은 이전의 데이터 항목에서 에러가 있는지 여부에 무관하게 제1 승인되지 않은 데이터 항목에서 재개되어야 한다.Acknowledgments described in the context of embodiments of the present invention are translated into some sort of response to data received from other purposes, including the positive or negative status of the data or message's motivation. Typically, the acknowledgment confirms the update of the record, but can also carry information of unsuccessful actions due to, for example, a record not found. Nevertheless, the handling of such errors is not of interest to the present invention and it is left to the implementation to handle the errors anyway. However, the occurrence of the error should not prevent the resumption of the session. That is, the session must be resumed at the first unauthorized data item regardless of whether there was an error in the previous data item.

도 4는 본 발명의 실시예에 따라 도 3b에 도시된 동기화 프로세스에 따라 XML-부호화된 동기 메시지의 발췌를 도시한다.4 illustrates an excerpt of an XML-encoded sync message according to the synchronization process shown in FIG. 3B in accordance with an embodiment of the present invention.

용이하고 공동으로 이용가능한 구현을 보장하기 위하여 산업-표준 확장성 생성 언어(XML)가 장치 및 애플리케이션을 동기화하는 동기 메시지를 명시하도록 선택되었다(플레인 텍스트 또는 무선 이진 XML, 무선 애플리케이션 프로토콜에 의해 채용되는 이진 기술을 이용하여). SyncML은 정적 코드 및 런타임(run-time) 실행 공간에서 모든 공통 이동 장치의 메모리 용량내에서 설계되었다. 특히 이진 부호화된 확장성 생성 언어(WBXML; binary coded extensible markup language)는 일반적으로 메시지를 저장하는데 필요한 메모리를 줄이고 데이터를 처리하고 전달하는데 필요한 자원을 줄이기 위하여 데이터를 부호화하는데 사용된다.In order to ensure an easy and jointly available implementation, an industry-standard extensibility generation language (XML) was chosen to specify a synchronous message that synchronizes the device and application (plain text or wireless binary XML, adopted by the wireless application protocol). Using binary technology). SyncML is designed within the memory capacity of all common mobile devices in static code and run-time execution space. In particular, binary coded extensible markup language (WBXML) is commonly used to encode data in order to reduce the memory required to store messages and the resources required to process and deliver the data.

SyncML은 XML 문서로서 또는 다목적 인터넷 메일 확장(MIME; multipurpose internet mail extension) 엔티티로서 표현되는 (상기 도시된 바와 같은) 잘 정의된 메시지들의 세트를 포함한다. 대표적인 사양은 데이터, 메타데이터 및 명령을 포함하는 동기화를 수행하는데 필요한 모든 정보의 표현을 허용하는 XML 문서 유형 기술(DTD; document type description)을 명시한다. 동기화 사양은 SyncML 클라이언트 및 SyncML 서버로 하여금 부가, 삭제, 갱신 및 다른 상태 정보를 교환하도록 허용하기 위하여 DTD에 따르는 SyncML 메시지를 명시한다.SyncML includes a well-defined set of messages (as shown above) expressed as an XML document or as a multipurpose internet mail extension (MIME) entity. An exemplary specification specifies an XML document type description (DTD) that allows for the presentation of all the information needed to perform synchronization, including data, metadata and commands. The synchronization specification specifies SyncML messages that conform to the DTD to allow SyncML clients and SyncML servers to exchange additions, deletions, updates, and other status information.

다른 DTD들은 (메모리 용량과 같은) 장치에 대한 정보의 표시 및 (보안 증명과 같은) 다양한 유형의 메타-정보의 표시를 정의한다. SyncML 메시지는 개념적으로 표현 프로토콜에 의해 정의되는 바와 같은 컨테이너 개념에 근거한다. 각 SyncML 메시지는 SyncML 헤더 섹션 및 SyncML 본문 섹션을 포함한다. SyncML 헤더 는 라우팅, 세션, 인증 및 메시지 정보를 포함하고, SyncML 본문 섹션은 각각이 서브-컨테이너를 형성하는 동기화 명령 및 상태 정보를 포함하는 잘 정의된 동기화 데이터를 포함한다.Other DTDs define the display of information about the device (such as memory capacity) and the display of various types of meta-information (such as security credentials). SyncML messages are conceptually based on the container concept as defined by the presentation protocol. Each SyncML message includes a SyncML header section and a SyncML body section. The SyncML header contains routing, session, authentication, and message information, and the SyncML body section contains well-defined synchronization data that includes synchronization instructions and status information, each of which forms a sub-container.

도 4에 도시된 XML-기반 부호화는 도 3b를 참조하여 기술된 단계(252)에 의해 참조되는 클라이언트 동기 메시지에 따른 SyncML 메시지의 예시적인 플레인 텍스트 부호화의 발췌이다. 도시된 XML-기반 부호화는 라인 3부터 라인 9까지의 SyncML 헤더 및 라인 10부터 라인 57까지의 SyncML 본문을 포함한다.The XML-based encoding shown in FIG. 4 is an excerpt of an exemplary plain text encoding of a SyncML message according to the client sync message referenced by step 252 described with reference to FIG. 3B. The illustrated XML-based encoding includes a SyncML header from line 3 to line 9 and a SyncML body from line 10 to line 57.

라인 1 및 라인 2는 SyncML 버전 정보 및 텍스트 표현에 사용되는 문자 부호화 및 채용된 XML-부호화에 대한 공통 정보를 포함한다.Lines 1 and 2 contain SyncML version information and common information about the character encoding and XML-encoding employed for the text representation.

각 SyncML 헤더는 문서 유형 정의 버전 정보(VerDTD, 라인 4), SyncML 프로토콜 버전 정보(VerProto, 라인 5), 명확한 모든 소속된 동기 메시지를 할당하기 위하여 하나의 동기 세션 동안 유효한 세션 식별자(SessionID, 라인 6), 및 각 수신 동기화 장치가 증가하는 메시지 식별자 번호를 갖는 동기 메시지를 이어서 수신하도록 증가되는 메시지 식별자(MsgID, 라인 7)를 포함한다. 예로서 상술된 SyncML 헤더의 구성요소, 추가 옵션 및 필수 구성요소들이 SyncML 헤더에 포함된다.Each SyncML header contains a document type definition version information (VerDTD, line 4), SyncML protocol version information (VerProto, line 5), and a session identifier (SessionID, line 6) valid for one sync session to assign all explicit sync messages belonging to it. ), And a message identifier (MsgID, line 7) that is incremented so that each receive synchronization device subsequently receives a sync message with an increasing message identifier number. By way of example, the components, additional options, and required components of the SyncML header described above are included in the SyncML header.

SyncML 본문은 몇몇 논리적이고 독립한 서브섹션을 포함한다. 제1 상태 정보 서브섹션은 라인 11부터 라인 19까지 연장된다. 제1 상태 정보 서브섹션은 동기화되는 데이터 레코드의 참조 어드레싱에 관련된다. 특히, 타깃 레퍼런스(TargetRet, 라인 16)는 클라이언트, 이 경우 셀룰러 통신 장치를 어드레싱하는 국제 이동 장치 식별자(IMEI; international mobile equipment identifier)를 정의하고, 소스 레퍼 런스(SourceRef, 라인 17)는 서버, 이 경우 하이퍼텍스트 전송 프로토콜(HTTP; hypertext transfer protocol)를 통해 액세스 가능한 네트워크된 서버 장치를 어드레싱하는 균일 자원 식별자(URI; uniform resource identifier)를 정의한다. 또한 개별적인 데이터 레코드 및 데이터 저장부의 어드레싱이 상기 레퍼런스 어드레스 정보에 근거한다. 라인 20부터 라인 22까지 연장하는 제2 상태 정보 서브섹션에 의해 표시되는 임의 수의 추가 상태 정보 서브섹션이 또한 포함될 수 있다. 예를 들어 승인이 상태 정보로서 부호화된다.The SyncML body contains several logical and independent subsections. The first state information subsection extends from line 11 to line 19. The first state information subsection relates to the reference addressing of the data records to be synchronized. In particular, the target reference (TargetRet, line 16) defines an international mobile equipment identifier (IMEI) that addresses the client, in this case the cellular communication device, and the source reference (line 17) is the server, In this case, a uniform resource identifier (URI) for defining a networked server device accessible through a hypertext transfer protocol (HTTP) is defined. In addition, addressing of individual data records and data stores is based on the reference address information. Any number of additional state information subsections may also be included, indicated by the second state information subsections extending from line 20 to line 22. For example, the acknowledgment is encoded as status information.

SyncML 본문 세션은 동기화 서브세션을 더 포함하고, 상기 동기화 서브섹션은 더 세분된다. 예를 들면, 연락처(contact)의 추가에 관한 클라이언트 표시 변경이 포함된다. 라인 26은 클라이언트의 연락처 데이터베이스의 상대 주소지정 경로를 포함하지만 라인 29는 서버의 연락처 데이터베이스의 상대 주소지정 경로를 포함한다. 상기 상대 주소지정 경로들이 위에서 언급된 참조 주소지정과는 상대적이다. 라인 31에서 라인 36에 이르는 메타 서브섹션은 서버의 연락처 데이터베이스에 추가될 데이터 레코드(연락처)에 관한 추가적인 메타-정보를 포함한다. 라인 37에서 라인 51에 이르는 서브섹션은 추가 명령 및 대응하는 연락처 데이터 컨텐트를 포함한다. 라인 40에서, 라인 46 내지 라인 48에서의 컨텐트 데이터의 데이터 포맷은 x-vcard 메타-형식으로서 정의되지만, 대응하는 데이터 컨텐츠는 라인 46 내지 라인 48에 내포되어 있다. 클라이언트측에서 이러한 연락처를 유일하게 참조하기 위해 사용되는 로컬 단일 식별자(LUID: local unique identifier)는 라인 44에 포함된다. 임의 개수의 부가적인 동기화 정보 서브섹션이 또한 포함될 수 있는 데, 이는 라인 52에서 라인 54에 이르는 부가적인 동기화 정보 서브섹션으로 나타나 있다. The SyncML body session further includes a synchronization subsession, wherein the synchronization subsection is further subdivided. For example, client display changes regarding the addition of contacts. Line 26 contains the relative addressing path of the client's contact database, but line 29 contains the relative addressing path of the server's contact database. The relative addressing paths are relative to the reference addressing mentioned above. The meta subsections from line 31 to line 36 contain additional meta-information about the data record (contact) to be added to the server's contact database. The subsections from line 37 to line 51 contain additional instructions and corresponding contact data content. In line 40, the data format of the content data in lines 46 through 48 is defined as an x-vcard meta-format, but the corresponding data content is contained in lines 46 through 48. The local unique identifier (LUID) used to uniquely refer to this contact on the client side is contained in line 44. Any number of additional synchronization information subsections may also be included, indicated by additional synchronization information subsections from line 52 to line 54.

라인 56에 포함된 최종 명령은 본 예의 클라이언트 동기화 메시지가 동기화를 위해 서버에 보고될 클라이언트 변경들을 포함하는 최종 메시지임을 서버에 통지한다.The final command contained in line 56 notifies the server that the client synchronization message of this example is the final message that includes client changes to be reported to the server for synchronization.

본 발명의 일 실시예에 따라 이전의 불완전 동기화 세션을 재개하기 위한 앞서 언급된 방법은 여러 방식으로 클라이언트 및 서버 장치에서 구현될 수 있다. 이하의 구현예는 본 발명의 일 실시예에 따라 동작하는 데 추가적으로 적합하도록 요소들이 향상된 기능 및 능력을 지닌 SyncML 표준 구현을 기반으로 하는 구현예이다.The aforementioned method for resuming a previous incomplete synchronization session according to an embodiment of the present invention may be implemented in client and server devices in a number of ways. The following implementations are implementations based on the SyncML standard implementation with elements having enhanced functionality and capabilities to be further suitable for operating in accordance with one embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따라 동기용 클라이언트 장치 및 동기용 서버 장치에 의해 포함되는 요소들을 개략적으로 예시하는 블록도이다. 도 5는 네트워크 동기화 서비스를 제공하는 네트워크 장치를 나타내는 서버(110)를 보여주는 도면이다. 네트워크 동기화 서비스는 하나 이상의 서버 어플리케이션들(112) 및 대응하는 관련된 하나 이상의 데이터 저장 요소들(111)로 표현된다. 하나 이상의 서버 어플리케이션들(112)은 데이터 동기화 기능을 제공하고 기타의 어플리케이션들은 네트워크 장치인 클라이언트(100)의 하나 이상의 클라이언트 어플리케이션들(102)로 표현된다. 상기 하나 이상의 데이터 저장 요소들(111)은 상기 하나 이상의 서버 어플리케이션들(112)에 의한 조작, 결과적으로는 클라이언트와의 동기화를 위한 데이터 레코드들을 호스팅하는 데, 이 경우에는 상기 하나 이상의 데이터 저장 요소들 (111)이 예를 들면 하나 또는 여러개의 데이터베이스들이다. 상기 서버(110) 및 상기 클라이언트(100)는 통신 네트워크 전송을 통해 접속된다. 클라이언트(100) 및 서버(110)에 대한 적합한 통신 네트워크들의 선택은 도 1을 참조하여 제공 및 언급되었다.5 is a block diagram schematically illustrating elements included by a synchronous client device and a synchronous server device according to an embodiment of the present invention. 5 is a diagram illustrating a server 110 representing a network device providing a network synchronization service. The network synchronization service is represented by one or more server applications 112 and corresponding one or more data storage elements 111. One or more server applications 112 provide data synchronization functionality and other applications are represented by one or more client applications 102 of client 100 that is a network device. The one or more data storage elements 111 host data records for manipulation by the one or more server applications 112 and consequently for synchronization with a client, in this case the one or more data storage elements. 111 is for example one or several databases. The server 110 and the client 100 are connected via a communication network transmission. Selection of suitable communication networks for client 100 and server 110 has been provided and mentioned with reference to FIG. 1.

상기 하나 이상의 서버 어플리케이션들(112)은 상기 서버(110)의 한 요소 또는 상기 서버(110) 상에서 이루어지는 한 프로세스인 동기화 서버 엔진(113)으로서 구현되는 데이터 동기화 프로토콜을 사용한다. 상기 데이터 동기화 프로토콜은 제공된 동기화 서버 네트워크 서비스 및 자원들에 각각 액세스하는 클라이언트 어플리케이션들에 의해 상기 통신 네트워크를 통해 명시된다. 동기화 서버 에이전트(115)는 상기 네트워크에 대한 동기화 서버 엔진(113)의 액세스 및 통신을 인터페이스 및 관리하고 상기 클라이언트(100) 및 상기 하나 이상의 클라이언트 어플리케이션들(102) 각각과의 데이터 동기화 동작들의 통신을 가능하게 한다. 상기 동기화 에이전트(115)는 동기화 인터페이스(116) 및 동기화 어댑터(117)를 포함함으로써 인터페이싱 및 통신을 수행하는 데, 이 경우에는 동기화 인터페이스(116)가 예를 들면 상기 동기화 어댑터(117)에 대한 어플리케이션 프로그램 인터페이스(API: applicatioin program interface)이다. 상기 동기화 어댑터(117)는, 각각 상기 서버(110)의 한 요소이거나 상기 서버(110) 상에서 이루어지는 한 프로세스이며, 클라이언트측 상의 대응하는 동기화 어댑터(107)와 개념적으로 통신한다. 상기 동기화 어댑터(117)는 무엇보다도 서버(110) 및 클라이언트(100) 간, 즉, 데이터 동기화 서비스를 제공하는 하나 이상의 서버 어플리케이션들(112) 및 이러한 동기화 서 비스에 액세스하여 이를 이용하는 하나 이상의 클라이언트 어플리케이션들(102) 간의 네트워크 통신 접속들의 확립 및 유지할 의무를 이행할 능력을 지닌다.The one or more server applications 112 use a data synchronization protocol implemented as a synchronization server engine 113, which is an element of the server 110 or a process that takes place on the server 110. The data synchronization protocol is specified through the communication network by client applications that each access the provided synchronization server network service and resources. The synchronization server agent 115 interfaces and manages the access and communication of the synchronization server engine 113 to the network and communicates data synchronization operations with the client 100 and each of the one or more client applications 102. Make it possible. The synchronization agent 115 performs the interfacing and communication by including a synchronization interface 116 and a synchronization adapter 117, in which case the synchronization interface 116 is an application for the synchronization adapter 117, for example. It is a program interface (API). The synchronization adapter 117 is each an element of the server 110 or a process performed on the server 110 and conceptually communicates with a corresponding synchronization adapter 107 on the client side. The synchronization adapter 117 is, among other things, one or more server applications 112 that provide data synchronization services between the server 110 and the client 100 and one or more client applications that access and use these synchronization services. Have the ability to fulfill the obligation to establish and maintain network communication connections between the servers 102.

클라이언트측 상에서, 상기 하나 이상의 클라이언트 어플리케이션들(102)이 액세스가능하도록 데이터 레코드들을 저장하는 하나 이상의 관련된 데이터 저장 요소들(101)과 함께 하나 이상의 클라이언트 어플리케이션들(102)은 제공된 서버 동기화 서비스에 액세스하는 데 동기화 클라이언트 에이전트(105), 동기화 인터페이스(106) 및 동기화 어댑터(107)를 사용한다. 상기 동기화 클라이언트 에이전트(105)는 상기 서버(110) 및 상기 하나 이상의 서버 어플리케이션들(112) 각각과의 데이터 동기화 동작들의 통신을 가능하게 한다. 상기 동기화 인터페이스(106)는 예를 들면 상기 동기화 어댑터(107)에 대한 어플리케이션 프로그램 인터페이스(API)를 유사하게 나타낸다.On the client side, one or more client applications 102, along with one or more related data storage elements 101, store data records such that the one or more client applications 102 are accessible. The synchronization client agent 105, the synchronization interface 106, and the synchronization adapter 107. The synchronization client agent 105 enables communication of data synchronization operations with the server 110 and each of the one or more server applications 112. The synchronization interface 106 similarly represents an application program interface (API) for the synchronization adapter 107, for example.

위에서 언급된 본 발명의 한 실시예에 따른 방법은 예를 들면 상기 동기화 서버 에이전트(105) 및 동기화 클라이언트 에이전트(115)에서 하나 또는 여러개의 코드 섹션들을 구현함으로써 위에서 제공된 상기 서버(110) 및 상기 클라이언트(100)의 개념적 요소 프레임워크 내에 포함되는 데, 이 경우에는 상기 하나 또는 여러개의 코드 섹션들은 실행시 불완전 동기화 세션을 재개하는 방법의 한 실시예를 수행하는 명령어들을 포함한다. 이러한 구현 방식은 동기화 세션이 중단된 경우에 이같이 중단된 동기화 세션을 재개하기 위한 필요한 정보가 상기 클라이언트(100) 및 상기 서버(110)에 로깅(logging) 또는 저장되는 것을 보장한다.The method according to an embodiment of the present invention mentioned above is implemented in the server 110 and the client provided above, for example by implementing one or several code sections in the synchronization server agent 105 and the synchronization client agent 115. Included within the conceptual element framework of 100, wherein the one or more sections of code include instructions for performing one embodiment of a method of resuming an incomplete synchronization session at runtime. This implementation ensures that when the synchronization session is interrupted, the necessary information for resuming this interrupted synchronization session is logged or stored in the client 100 and the server 110.

도 6 내지 도 8은 본 발명에 따른 2개의 장치들 간의 데이터 교환에 관한 이 전의 불완전 동기화 세션의 중단을 재개하기 위한 방법의 변형 실시예를 보여주는 도면들이다. 상기 방법은 상기 이전의 불완전 동기화 세션의 재개를 위한 요구에 관한 정보를 포함하는 재개 신호 경보를 제1 장치로부터 제2 장치로 전송하는 단계를 특징으로 한다. 예를 들면, 도시된 바와 같이, 상기 제1 장치는 클라이언트이고 상기 제2 장치는 서버이다. 상기 방법은 또한 수행될 동기화 유형에 관한 정보를 나타내는 경보 신호에 대한 상태를 상기 제2 장치로부터 상기 제1 장치로 전송하는 단계를 특징으로 한다. 상기 재개 신호 경보 상태에 관한 정보는 재개 세션을 승인하거나 상기 이전의 불완전 동기화 세션의 이전 동기화 유형을 오버라이드(override)하기 위한 정보를 포함할 수 있다. 상기 이전 동기화 유형이 오버라이드될 경우, 상기 서버는 상이한 동기화 유형을 사용하라는 명령을 상기 클라이언트에 내린다. '다음(Next)' 앵커 또는 제2 업데이트 식별자는 동기화가 중단될 경우 업데이트될 수도 있고 업데이트되지 않을 수도 있다. 'Next' 앵커가 중단 이후 또는 멈춤(pause) 동안 업데이트될 경우, 이는 중단 동안 아마도 변경된 데이터 항목들의 동기화를 허용함으로써 보다 양호한 사용자 경험을 허용한다.6 through 8 are diagrams showing a variant embodiment of the method for resuming a previous incomplete synchronization session relating to data exchange between two devices according to the present invention. The method is characterized by sending a resume signal alert from the first device to the second device, the resume signal alert comprising information regarding the request for resuming the previous incomplete synchronization session. For example, as shown, the first device is a client and the second device is a server. The method also features transmitting a status from the second device to the first device for an alert signal indicative of information regarding the type of synchronization to be performed. The information about the resume signal alert condition may include information for approving a resume session or overriding a previous synchronization type of the previous incomplete synchronization session. If the previous synchronization type is overridden, the server instructs the client to use a different synchronization type. The 'Next' anchor or the second update identifier may or may not be updated if synchronization is interrupted. If the 'Next' anchor is updated after a break or during a pause, this allows for a better user experience, perhaps by allowing synchronization of changed data items during the break.

도 6의 단계(302)에서, 상기 클라이언트는 상기 서버에 재개 신호 경보를 전송한다. 단계(304)에서, 상기 서버는 세션의 재개가 승인된 것을 나타내는 표시자를 포함하는 경보 신호 상태로 상기 클라이언트에 다시 응답한다. 단계(306)에서, 상기 클라이언트는 이전의 중단된 동기화 세션의 동기화 유형(예컨대, 패스트(fast ) 또는 슬로우(slow) 동기화)를 사용하고 나머지 클라이언트 데이터를 교환한다. 상기 동기화 세션은 단계들(308,310)을 통해 완료되는 데, 이러한 단계들은 도 3b 와 관련하여 위에서 언급된 단계들(253,254)과 유사하다. 위에서 언급된 단계들에서, 동기화 세션의 재개 및 이전의 중단된 동기화 세션의 동기화 유형 결정 모두가 포함된다. 일단 상기 클라이언트가 재개 경보 코드(Resume Alert Code)를 전송한 경우, 상기 서버는 상기 세션을 재개하는 데 동의하며 대응하는 서버측 데이터저장소에 대한 경보(Alert) 요소에 적합한 경보 코드를 전송한다. 상기 클라이언트는 이러한 경보 코드를 이용하여 동기화 세션을 재개하여야 한다. 이는 상기 세션이 중단될 경우 클라이언트측 상에의 동기화 유형의 저장을 회피한다.In step 302 of Figure 6, the client sends a resume signal alert to the server. In step 304, the server responds back to the client with an alert signal state that includes an indicator indicating that the resumption of the session has been approved. In step 306, the client uses the synchronization type of the previous interrupted synchronization session (e.g., fast or slow synchronization) and exchanges the remaining client data. The synchronization session is completed through steps 308 and 310, which are similar to the steps 253 and 254 mentioned above in connection with FIG. 3B. In the above mentioned steps, both the resumption of the synchronization session and the determination of the synchronization type of the previously interrupted synchronization session are included. Once the client has sent a Resume Alert Code, the server agrees to resume the session and sends an alert code appropriate for the Alert element for the corresponding server-side datastore. The client must use this alert code to resume the synchronization session. This avoids storing the synchronization type on the client side if the session is interrupted.

더욱이, 본 발명의 범위는 중단이 생길 때마다 상기 클라이언트가 재개 경보를 전송해야 하는 실시예들을 포함하도록 의도된 것이다. 이는 비록 클라이언트가 모든 항목들에 대한 상태들을 수신한 다음에 재개 세션에서 전송할 새롭거나 변경된 항목들을 더 이상 갖고 있지 않더라도 적용될 수 있다. 다시 말하면, 전송이 효과적이거나 적합하게 단속되지 않았을 경우, 상기 클라이언트는 새로운 동기화 세션의 개시 대신에 재개를 요구하여야 한다. 그렇게 함으로써, 이는 상기 서버로 하여금 상태들을 획득하지 않았던 항목들만을 전송할 수 있게 한다.Moreover, the scope of the present invention is intended to include embodiments in which the client should send a resume alert whenever an outage occurs. This may apply even if the client no longer has new or changed items to send in the resume session after receiving the status for all items. In other words, if the transmission was not effective or properly intercepted, the client should request resumption instead of initiation of a new synchronization session. By doing so, this allows the server to send only those items that did not obtain states.

도 7은 상기 서버에 의한 재개 세션의 오버라이딩을 보여주는 도면이다. 이러한 경우에, 단계(302)에서의 클라이언트의 재개 요구는 상기 서버에 의해 승인되지 않음으로써 상기 서버는 예를 들면 단계(320)에서 상태(508)(동기화 재생(Refresh Sync)) 또는 상태(509)(다른 동기화 유형)를 전송하거나 또는 동일 목적을 위한 기타 적합한 코드를 전송한 다음에 경보 코드(201)(슬로우-동기화)의 적합한 동기화 유형 또는 (다른 동기화 유형을 위한) 2XX를 각각 전송함으로써 이전 동 기화 유형을 오버라이드할 수 있다. 단계(322)에서, 상기 클라이언트는 상기 서버에 의해 규정된 동기화 유형을 사용하고 단지 나머지 5개의 데이터 항목들만이 아니라 모든 항목들을 전송한다. 본 발명의 범위는 임의의 특정 상태 코드 번호들에 국한되지 않도록 의도된 것이다. 실시예들은 다른 상태 코드 번호들을 사용할 것이라고 생각된다.7 illustrates overriding of a resume session by the server. In such a case, the client's resume request in step 302 is not approved by the server so that the server can either enter state 508 (Refresh Sync) or state 509 in step 320, for example. (By sending a different sync type) or by sending another suitable code for the same purpose, then by sending the appropriate sync type of alert code 201 (slow-sync) or 2XX (for another sync type) respectively. You can override the synchronization type. In step 322, the client uses the synchronization type defined by the server and sends all items, not just the remaining five data items. It is intended that the scope of the invention be not limited to any particular status code numbers. It is contemplated that embodiments will use other status code numbers.

도 8은 슬로우 동기화 세션의 재개를 보여주는 도면이다. 상기 클라이언트들은 상기 서버에 경보를 제공함으로써 재개를 요구하고 상기 재개가 상기 서버에 의해 승인될 경우, 200 상태(승인)가 단계(330)에서 '재개 경보(Alert for Resume)'를 통해 전송된다. 상기 서버는 추가로 대응하는 서버측 데이터저장소들에 대한 경보 요소에 경보(201)를 전송한다. 이는 동기화 유형의 결정에 관하여, 도 6과 관련하여 위에서 언급된 것과 유사하다. 그러나, 경보(201)가 현재 슬로우 동기화를 의미하고 있으며 상기 클라이언트가 완전한 슬로우 동기화를 개시할 것이기 때문에 슬로우 동기화와 강력한 완전 슬로우 동기화의 재개를 어떻게 구별해야 하는 지에 유념하는 것이 중요하다. 슬로우 동기화 및 완전 슬로우 동기화의 재개를 구별하기 위해, 상기 클라이언트는 단계(330)에서 '재개 경보(Alert for Resume)'로 전송되는 상태 코드를 조사함으로써 결정할 수 있다. 200 코드는 슬로우 동기화의 재개를 의미하고(변형적인 예가 재개 세션의 개시가 승인된 것을 확인하도록 예컨대 200 대신에 220을 전송하는 다른 모든 동기화 유형들에 대한 상태 코드들을 지니는 것임), 508 코드는 완전 슬로우 동기화를 의미할 것이다. 완전 슬로우 동기화는 경보(201)가 이어지는 재개 경보를 통해 508 상태(요구되는 재생)를 전송함으로써 달성 될 수 있다 - 위에서 언급된 것 참조 바람. 이를 통해, 상기 클라이언트는 이전에 중단된 슬로우 동기화가 재개될 수 없고, 그 대신 완전 슬로우 동기화가 개시때부터 사용되어야 한다는 것을 알게 될 것이다. 이러한 것이 새로운 동기화 세션의 개시를 의미하지는 않지만, 필요한 경우 그러한 수행을 초래시킬 수 있다.8 is a diagram illustrating resumption of a slow synchronization session. The clients request resumption by providing an alert to the server and if the resumption is approved by the server, a 200 status (approval) is sent via an 'Alert for Resume' in step 330. The server further sends an alert 201 to an alert element for corresponding server-side datastores. This is similar to that mentioned above in connection with FIG. 6 with respect to the determination of the synchronization type. However, it is important to note how to distinguish between slow synchronization and the resumption of powerful full slow synchronization since alert 201 currently stands for slow synchronization and the client will initiate a full slow synchronization. To distinguish between slow synchronization and resumption of full slow synchronization, the client may determine by examining the status code sent to the 'Alert for Resume' in step 330. 200 code means resumption of slow synchronization (variant example has status codes for all other synchronization types sending 220 instead of 200 to confirm that the initiation of the resumption session has been approved), and 508 code is fully It will mean slow synchronization. Full slow synchronization can be achieved by sending a 508 state (regeneration required) via a resume alert followed by alert 201-see above. This will allow the client to know that a previously interrupted slow sync cannot be resumed, but instead a full slow sync should be used from the start. This does not mean initiation of a new synchronization session, but may result in such performance if necessary.

다른 실시예에 의하면, '멈춤 경보(Alert for Pause)'를 나타내도록 추가의 경보 코드를 지니는 것이 가능하다. 즉, 이는 동기화 세션을 중단하기 위한 효과적인 방식을 제공할 것이다. 본 명세서에서 앞서 언급된 단계들에 따라 재개가 이루어질 것이다. 이러한 경보 코드는 단지 사용자에 의해 대개 개시되는 동기화 세션을 중단하기 위한 효과적인 수단을 달성하는 데 도움을 줄 것이다. 그러한 경보가 상기 제2 장치에 의해 수신될 경우, 이는 상태 코드에 의한 경보에 응답할 수 있음으로써, 상기 제1 장치는 또한 '멈춤 모드'로 될 수 있는 지를 추론할 수 있다. 물론, '마지막(LAST)' 업데이트 식별자가 업데이트되지 않는다. 상기 제1 장치 또는 상기 제2 장치는 차후에 멈춰진 동기화 세션을 재개할 것을 나타내는 표시자를 다른 장치에 전송할 수 있다. 예를 들면, 상기 제1 장치는 재개 신호 경보를 포함하는 메시지를 상기 제2 장치에 전송할 수 있음으로써, 상기 장치들이 멈춰진 동기화를 속행할 수 있다.According to another embodiment, it is possible to have additional alert codes to indicate 'Alert for Pause'. In other words, this will provide an effective way to abort the synchronization session. Resumption will be made in accordance with the steps previously mentioned herein. This alert code will only help to achieve an effective means for stopping a synchronization session that is usually initiated by the user. When such an alert is received by the second device, it can respond to the alert by a status code, thereby deducing whether the first device can also go into a 'pause mode'. Of course, the 'last' update identifier is not updated. The first device or the second device may send an indicator to the other device indicating that it will resume the later stopped synchronization session. For example, the first device may send a message to the second device that includes a resume signal alert, thereby continuing the stopped synchronization of the devices.

당업자에게 자명한 점은 기술이 향상됨에 따라 진보된 개념이 서로 다르고 보다 폭이 넓은 여러 방식으로 구현될 수 있다는 점이다. 따라서, 본 발명 및 그의 실시예들은 위에서 언급된 예들에 국한되는 것이 아니라 청구항들의 범위 내에서 변경될 수 있다.It will be apparent to those skilled in the art that as the technology improves, advanced concepts may be implemented in different and broader ways. Accordingly, the invention and its embodiments are not limited to the examples mentioned above but may vary within the scope of the claims.

Claims (31)

두 장치들간 데이터 교환과 관련하여 이전의 불완전 동기화 세션 중단을 재개하는 방법에 있어서,In a method of resuming a previous incomplete synchronization session interruption with respect to data exchange between two devices, 제1장치에서 제2장치로, 이전의 불완전 동기화 세션의 재개 요청과 관련된 정보를 포함하는 신호 재개 신호 경보(alert)를 전송하는 단계를 포함함을 특징으로 하는 방법.Sending from the first device to the second device a signal resume signal alert comprising information related to the request to resume the previous incomplete synchronization session. 제1항에 있어서, 제2장치에서 제1장치로, 수행될 동기화 유형 관련 정보를 나타내는 경보 신호의 상태를 전송하는 단계를 더 포함함을 특징으로 하는 방법.The method of claim 1, further comprising transmitting a status of an alert signal indicative of synchronization type related information to be performed from the second device to the first device. 제2항에 있어서, 상기 경보 신호의 상태는 이전의 불완전 동기화 세션의 이전 동기 유형을 오버라이드 하는 정보를 포함함을 특징으로 하는 방법.3. The method of claim 2, wherein the state of the alert signal includes information that overrides a previous sync type of a previous incomplete sync session. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 요청과 관련된 정보는, 이전의 불완전 동기화 세션 재개를 가능하게 하는, 이전의 불완전 동기화 세션의 중단에 따라 로깅된 정보를 포함함을 특징으로 하는 방법.4. The method of any one of claims 1 to 3, wherein the information associated with the request includes information logged according to the suspension of the previous incomplete synchronization session, which enables resumption of the previous incomplete synchronization session. How to. 제4항에 있어서, 이전의 불완전 동기화 세션 중단에 따라 로깅된 정보를 각 장치에 저장하는 단계를 더 포함함을 특징으로 하는 방법.5. The method of claim 4, further comprising storing the logged information on each device in response to a previous incomplete synchronization session abort. 제4항에 있어서, 상기 이전의 불완전 동기화 세션 중단에 따라 로깅된 정보는, 두 장치들간 수행된 이전의 완전 동기화 세션에 대한 정보를 포함하는 제1업데이트 식별자를 포함하고, 또한 두 장치들간 시작된 이전의 불완전 동기화 세션에 대한 정보를 포함하는 제2업데이트 식별자를 포함함을 특징으로 하는 방법.5. The method of claim 4, wherein the information logged according to the previous incomplete synchronization session abort includes a first update identifier that includes information about a previous full synchronization session performed between the two devices, And a second update identifier comprising information about an incomplete synchronization session of the < RTI ID = 0.0 >. 제4항에 있어서, The method of claim 4, wherein 한 장치 안에 로깅된 업데이트 식별자 정보와 다른 장치 안에 로깅된 업데이트 식별자 정보를 비교하는 단계; 및Comparing update identifier information logged in one device with update identifier information logged in another device; And 상기 비교 결과에 기반해 이전의 불완전 동기화 세션 중단을 재개하는 단계를 더 포함함을 특징으로 하는 방법.And resuming a previous incomplete synchronization session suspension based on the comparison result. 제7항에 있어서,The method of claim 7, wherein 상기 비교 결과에 따라 이전의 불완전 동기화 세션의 중단을 재개하는 서로 다른 동기 방법들을 이용하는 단계를 더 포함함을 특징으로 하는 방법.Using different synchronization methods for resuming the suspension of a previous incomplete synchronization session according to the comparison result. 제6항에 있어서, 상기 제1업데이트 식별자는 마지막(LAST) 앵커(anchor)이고, 제2업데이트 식별자는 다음(NEXT) 또는 멈춤(PAUSE) 앵커임을 특징으로 하는 방법.7. The method of claim 6, wherein the first update identifier is a LAST anchor and the second update identifier is a next or pause anchor. 제9항에 있어서, 상기 서로 다른 동기 방법들은, 이전의 불완전 동기화 세션 중단에 따라 수신 및 로깅된 LAST 및 NEXT 앵커 정보가 매치할 때, 패스트 재개 동기화(fast resumption synchronization)를 포함함을 특징으로 하는 방법.10. The method of claim 9, wherein the different synchronization methods include fast resumption synchronization when the received and logged LAST and NEXT anchor information matches according to a previous incomplete synchronization session abort. Way. 제9항에 있어서, 상기 서로 다른 동기 방법들은, 이전의 불완전 동기화 세션 중단에 따라 수신 및 로깅된 LAST 앵커 정보는 매치하지만, 수신 및 로깅된 NEXT 앵커 정보는 매치하지 않을 때 재시작 일반 동기화(re-starting normal synchronization)를 포함함을 특징으로 하는 방법.10. The method of claim 9, wherein the different synchronization methods match restart and general synchronization when the LAST anchor information received and logged according to a previous incomplete synchronization session abort, but does not match the received and logged NEXT anchor information. starting normal synchronization). 제9항에 있어서, 상기 서로 다른 동기 방법들은, 이전의 불완전 동기화 세션 중단에 따라 수신 및 로깅된 LAST 앵커 정보는 매치하지 않고, 수신 및 로깅된 NEXT 앵커 정보는 매치할 때, 슬로우 재개 동기화(slow resumption synchronization)를 포함함을 특징으로 하는 방법.10. The method of claim 9, wherein the different synchronization methods do not match received and logged LAST anchor information according to a previous incomplete synchronization session abort, and when the received and logged NEXT anchor information matches, slow resume synchronization (slow). resumption synchronization). 제9항에 있어서, 상기 서로 다른 동기 방법들은, 이전의 불완전 동기화 세션 중단에 따라 수신 및 로그된 LAST 및 LAST 앵커 정보가 매치하지 않을 때 완전(complete) 슬로우 재개 동기화를 포함함을 특징으로 하는 방법.10. The method of claim 9, wherein the different synchronization methods include complete slow resume synchronization when the received and logged LAST and LAST anchor information do not match according to a previous incomplete synchronization session abort. . 제7항에 있어서, 상기 로깅된 정보는, 이전의 불완전 동기화 세션의 세션 ID, 정확히 전송된 마지막 메시지의 메시지 ID, 및 하나 이상의 고유 레코드 식별 자들 역시 포함함을 특징으로 하는 방법.8. The method of claim 7, wherein the logged information also includes the session ID of a previous incomplete synchronization session, the message ID of the last message sent correctly, and one or more unique record identifiers. 제7항에 있어서, 제2장치가 제1장치에게, 상기 로깅된 정보에 기반하여 이전의 불완전 동기화 세션을 재개하라고 명령하는 단계를 포함함을 특징으로 하는 방법.8. The method of claim 7, including the step of the second device instructing the first device to resume a previous incomplete synchronization session based on the logged information. 동기화 방법에 있어서,In the synchronization method, 각각이 동기될 데이터 집합을 구비한 제1장치 및 제2장치 사이에, 데이터 동기를 위한 통신 접속을 설정하는 단계;Establishing a communication connection for data synchronization between a first device and a second device each having a data set to be synchronized; 상기 제1장치 및 제2장치 사이에 수행되었던 이전의 완전 동기화 이벤트를 나타내고 그 값이 적어도 상기 제1장치 안에 저장되어 있는 제1업데이트 식별자와, 상기 제1장치 및 제2장치 사이에 시작되었던 이전의 불완전 동기화 이벤트를 나타내고 그 값이 적어도 상기 제1장치 안에 저장되어 있는 제2업데이트 식별자를 전송하는 단계;A first update identifier that indicates a previous full synchronization event that was performed between the first device and the second device, the value of which is stored at least in the first device, and the previous start between the first device and the second device; Transmitting a second update identifier indicative of an incomplete synchronization event of and whose value is stored at least in the first device; 상기 이전의 불완전 동기화 이벤트 중에 성공적으로 동기되었던 데이터의 표시자를 복구 또는 생성하는 단계;Restoring or creating an indicator of data that was successfully synchronized during the previous incomplete synchronization event; 상기 표시자를 이용하여, 상기 이전의 불완전 동기화 이벤트 중 성공적으로 동기되지 않았던 데이터를 동기시키는 단계; 및Synchronizing, using the indicator, data that was not successfully synchronized during the previous incomplete synchronization event; And 적어도 상기 제1장치에서, 상기 제1업데이트 식별자의 값 과 제2업데이트 식별자의 값을 업데이트하는 단계를 포함함을 특징으로 하는 방법.Updating at least the value of the first update identifier and the value of the second update identifier at the first device. 제16항에 있어서,The method of claim 16, 상기 이전의 불완전 동기화 이벤트와 관련되고 상기 이전의 불완전 동기에 대한 정보를 구비하는 그룹으로부터의 적어도 한 정보를 포함하는 부가 정보 및, 수신된 동기 관련 정보에 따라 성공적으로 동기된 데이터에 대한 정보를 전송하는 단계를 더 포함함을 특징으로 하는 방법.Transmit additional information including at least one information from a group associated with the previous incomplete synchronization event and having information on the previous incomplete synchronization, and information on data successfully synchronized according to the received synchronization related information. And further comprising the step of: 제16항에 있어서, 상기 제1장치 및 제2장치 중 적어도 하나에서,The method of claim 16, wherein in at least one of the first device and the second device, 제1비교로서, 상기 제1장치로부터 전송된 상기 제1업데이트 식별자의 값을, 상기 제2장치에 저장된 제1장치의 제2업데이트 식별자의 값과 비교하는 단계;As a first comparison, comparing a value of the first update identifier sent from the first device with a value of a second update identifier of the first device stored in the second device; 제2비교로서, 상기 제1장치로부터 전송된 상기 제2업데이트 식별자의 값을, 제2장치에 저장된 제1장치의 제2업데이트 식별자의 값과 비교하는 단계;As a second comparison, comparing the value of the second update identifier sent from the first device with the value of the second update identifier of the first device stored in the second device; 이하의 옵션들 가운데 적어도 하나를 수행하는 단계:Performing at least one of the following options: 상기 제2비교 결과 일치한 값이 나온 경우, 상기 이전의 불완전 동기화 이벤트 중에 교환되지 않았던 데이터를 포함하는 데이터를 상기 제1장치와 상기 제2장치 사이에서 동기시키는 단계;If the second comparison results in a match, synchronizing data between the first device and the second device, the data including data that was not exchanged during the previous incomplete synchronization event; 상기 제2비교 결과 일치하지 않은 값이 나온 경우, 적어도 상기 이전의 불완전 동기화 이벤트 중에 동기되었던 데이터를 포함하는 데이터를 상기 제1장치와 제2장치 사이에서 동기시키는 단계;If the second comparison results in an inconsistent value, synchronizing data between the first device and the second device, the data including at least data that was synchronized during the previous incomplete synchronization event; 상기 제1비교 결과 일치하지 않은 값이 나온 경우, 상기 이전의 완전 동기화 이벤트 중에 동기되었던 데이터를 포함하는 데이터를 상기 제1장치와 제2장치 사이에서 동기시키는 단계; 및If the first comparison results in an inconsistent value, synchronizing data between the first device and the second device, the data including data that was synchronized during the previous full synchronization event; And 상기 제1비교 결과 일치한 값이 나온 경우, 상기 이전의 완전 동기화 이벤트 중에 동기되지 않았던 데이터를 상기 제1장치와 제2장치 사이에서 동기시키는 단계를 포함함을 특징으로 하는 방법.If the first comparison results in a match, synchronizing data that was not synchronized during the previous full synchronization event between the first device and the second device. 제16항에 있어서, 상기 동기화를 위한 통신 접속을 설정하는 단계는,The method of claim 16, wherein establishing a communication connection for synchronization comprises: 상기 제1장치 및 제2장치 중 적어도 한 장치에, 상기 이전의 불완전 동기화를 재개 준비하라고 명령하는 초기 메시지를 전송하는 단계를 더 포함함을 특징으로 하는 방법.Sending an initial message to at least one of the first device and the second device, the initial message instructing the user to prepare to resume the previous incomplete synchronization. 제16항에 있어서, 상기 동기화는 SyncML 표준에 따른 동기 프로토콜에 기반하고, 상기 제1업데이트 식별자는 LAST 동기 앵커임을 특징으로 하는 방법.17. The method of claim 16, wherein the synchronization is based on a synchronization protocol according to the SyncML standard, and wherein the first update identifier is a LAST synchronization anchor. 제20항에 있어서, 상기 제2업데이트 식별자는 NEXT 동기화 앵커 및 PAUSE 동기화 앵커 중 적어도 하나임을 특징으로 하는 방법.21. The method of claim 20, wherein the second update identifier is at least one of a NEXT synchronization anchor and a PAUSE synchronization anchor. 제20항에 있어서, 상기 이전의 불완전 동기 이벤트와 관련한 부가 정보는, 동기 이벤트 세션 식별자(세션 ID), 동기 메시지 식별자(메시지 ID), 및 하나 이상의 승인 데이터 식별자들 및 이들 각자의 데이터스토어(datastore)로 된 그룹 중 적어도 한 정보를 포함함을 특징으로 하는 방법.21. The method of claim 20, wherein the additional information related to the previous incomplete synchronization event comprises: a synchronization event session identifier (session ID), a synchronization message identifier (message ID), and one or more grant data identifiers and their respective datastores. And at least one piece of information in groups). 제22항에 있어서, 상기 부가 정보는, 상기 제1 및 제2업데이트 식별자들을 전송하기 전에 적어도 상기 제1장치 안에 저장된 것임을 특징으로 하는 방법.23. The method of claim 22, wherein the additional information is stored in at least the first device prior to transmitting the first and second update identifiers. 제16항에 있어서, 상기 데이터는, 그 데이터에 대한 승인 또는 그 데이터를 포함하는 메시지에 대한 승인이 성공적으로 수신되었을 때 성공적으로 동기된 것이고, 상기 승인은 상기 데이터 또는 상기 메시지의 동기에 대한 긍정적이거나 부정적인 상태를 나타냄을 특징으로 하는 방법.17. The method of claim 16, wherein the data is successfully synchronized when an acknowledgment for the data or an acknowledgment for the message containing the data is successfully received, wherein the acknowledgment is positive for the motivation of the data or the message. Or to indicate a negative condition. 삭제delete 삭제delete 프로세싱 장치, 단말 장치, 통신 단말 장치 또는 네트웍 장치에서 실행되어 상기 청구항 16의 방법을 수행하는 프로그램 코드 섹션을 구비하는 컴퓨터 프로그램 생성물을 저장한 컴퓨터에 의해 판독가능한 저장 매체. A computer-readable storage medium storing a computer program product comprising a program code section executed in a processing device, a terminal device, a communication terminal device or a network device for carrying out the method of claim 16. 네트웍에서 사용되고 데이터 동기가 가능한 장치에 있어서,In a device used in a network and capable of data synchronization, 동기될 소정 데이터 집합들을 구비하는 저장 매체;A storage medium having predetermined data sets to be synchronized; 데이터가 적어도 이전의 불완전(incomplete) 동기화 이벤트 도중 동기되지 않았던 데이터를 포함할 때, 데이터의 동기를 위해 네트웍에서 사용되는 다른 장치로의 통신 접속을 설정하고, 상기 다른 네트웍 장치와 수행했던 이전의 완전(complete) 동기 이벤트를 나타내고 적어도 상기 네트웍 장치 안에 저장되어 있던 제1업데이트 식별자 및 이전의 불완전 동기 이벤트를 나타내고 적어도 상기 네트웍 장치 안에 저장되어 있던 제2업데이트 식별자를 상기 다른 네트웍 장치와 통신하고, 상기 다른 네트웍 장치와 데이터를 교환하기 위한 통신 인터페이스;When the data contains data that was not synchronized at least during a previous incomplete synchronization event, establish a communication connection to another device used in the network for synchronization of the data, and perform a previous complete operation with the other network device. (complete) communicate with the other network device a first update identifier indicating a synchronization event and at least a second update identifier stored in the network device and at least a second update identifier stored in the network device and at least another A communication interface for exchanging data with a network device; 상기 이전의 불완전 동기 이벤트 도중 동기되었던 데이터의 표시자로서 상기 네트웍 장치 안에 저장되어 있는 표시자를 복구 또는 생성하는 복구 또는 생성 요소;A recovery or generation element for recovering or generating an indicator stored in the network device as an indicator of data that was synchronized during the previous incomplete synchronization event; 상기 표시자에 따라, 데이터를 동기시키는 동기 요소; 및A synchronization element for synchronizing data, according to the indicator; And 저장된 상기 제1업데이트 식별자의 컨텐츠와 저장된 상기 제2업데이트 식별자의 컨텐츠를 업데이트하는 업데이트 요소를 포함함을 특징으로 하는 장치.And an update element for updating the stored contents of the first update identifier and the stored contents of the second update identifier. 제28항에 있어서,The method of claim 28, 상기 통신 인터페이스는 상기 이전의 불완전 동기 이벤트와 관련하여 보충적인 부가 정보를 전송하도록 구성되고,The communication interface is configured to transmit supplemental side information in association with the previous incomplete synchronization event, 상기 부가 정보는 상기 이전의 불완전 동기에 대한 정보를 포함하는 그룹 중 동기 관련 정보의 성공적인 마지막 교환에 대한 정보, 및 수신된 동기 관련 정보 중 적어도 한 정보에 따라 성공적으로 동기된 데이터에 대한 정보를 포함함을 특징으로 하는 장치.The additional information includes information on a successful last exchange of synchronization related information among groups including information about the previous incomplete synchronization, and information on data successfully synchronized according to at least one of received synchronization related information. Device characterized in that. 제28항 및 제29항 중 어느 한 항에 있어서,The method according to any one of claims 28 and 29, 제1비교로서, 상기 장치에서 전송된 상기 제1업데이트 식별자의 값을, 다른 장치에 저장된 상기 장치의 제2업데이트 식별자의 값과 비교하고, 제2비교로서, 상기 제1장치로부터 전송된 상기 제2업데이트 식별자의 값을, 상기 다른 장치에 저장된 상기 장치의 제2업데이트 식별자의 값과 비교하여, 이하의 옵션들 In a first comparison, the value of the first update identifier sent from the device is compared with the value of the second update identifier of the device stored in another device, and as a second comparison, the first update sent from the first device. 2 The following options are compared by comparing the value of the update identifier with the value of the second update identifier of the device stored in the other device. 상기 제2비교 결과 일치한 값이 나온 경우, 상기 이전의 불완전 동기 이벤트 중에 교환되지 않았던 데이터를 포함하는 데이터를 상기 장치와 상기 다른 장치 사이에서 동기시키는 옵션;If the second comparison results in a matched value, synchronizing data between the device and the other device, the data including data that was not exchanged during the previous incomplete synchronization event; 상기 제2비교 결과 일치하지 않은 값이 나온 경우, 상기 이전의 불완 전 동기 이벤트 중에 적어도 동기되었던 데이터를 포함하는 데이터를 상기 장치와 상기 다른 장치 사이에서 동기시키는 옵션;If the second comparison results in an inconsistent value, synchronizing data between the device and the other device, the data including data that was at least synchronized during the previous incomplete synchronization event; 상기 제1비교 결과 일치하지 않은 값이 나온 경우, 상기 이전의 완전 동기 이벤트 중에 동기되었던 데이터를 적어도 포함하는 데이터를 상기 장치와 상기 다른 장치 사이에서 동기시키는 옵션; 및If the first comparison results in an inconsistent value, synchronizing data between the device and the other device, the data including at least data that was synchronized during the previous full synchronization event; And 상기 제1비교 결과 일치한 값이 나온 경우, 상기 이전의 완전 동기 이벤트 중에 동기 되지 않았던 데이터를 상기 장치와 상기 다른 장치 사이에서 동기시키는 옵션 가운데 적어도 하나를 수행하는 요소를 더 포함함을 특징으로 하는 장치.And if the first comparison results in a matched value, further comprising at least one of an option to synchronize data that was not synchronized during the previous full synchronization event between the device and the other device. Device. 제1네트웍 장치와 제2네트웍 장치를 포함하는 동기화 시스템에 있어서,In a synchronization system comprising a first network device and a second network device, 상기 제1네트웍 장치는, 동기될 소정 데이터 집합들을 구비하는 저장 매체; 데이터의 동기를 위해 네트웍에서 사용되는 상기 제2네트웍 장치로의 통신 접속을 설정하고, 제1업데이트 식별자 및 제2업데이트 식별자를 상기 제2네트웍 장치로 통신하고, 상기 제2네트웍 장치와 데이터를 교환하기 위한 통신 인터페이스; 상기 이전의 불완전 동기 이벤트 도중 동기되었던 데이터의 표시자로서 상기 네트웍 장치 안에 저장되어 있는 표시자를 복구 또는 생성하는 복구 또는 생성 요소; 상기 표시자에 따라, 데이터를 동기시키는 동기 요소; 및 저장된 상기 제1업데이트 식별자의 컨텐츠와 저장된 상기 제2업데이트 식별자의 컨텐츠를 업데이트하는 업데이트 요소를 포함하고,The first network device comprises: a storage medium having predetermined data sets to be synchronized; Establish a communication connection to the second network device used in the network for synchronization of data, communicate a first update identifier and a second update identifier to the second network device, and exchange data with the second network device. A communication interface for; A recovery or generation element for recovering or generating an indicator stored in the network device as an indicator of data that was synchronized during the previous incomplete synchronization event; A synchronization element for synchronizing data, according to the indicator; And an update element for updating contents of the stored first update identifier and contents of the stored second update identifier. 상기 제2네트웍 장치는, 동기될 소정 데이터 집합들을 구비하는 저장 매체; 데이터의 동기를 위해 네트웍에서 사용되는 상기 제1네트웍 장치로의 통신 접속을 설정하고, 저장된 제1업데이트 식별자 및 제2업데이트 식별자를 상기 제1네트웍 장치로 통신하고, 상기 제1네트웍 장치와 데이터를 교환하기 위한 통신 인터페이스; 상기 표시자에 따라 데이터를 동기시키는 동기 요소; 저장된 상기 제1업데이트 식별자의 컨텐츠와 저장된 상기 제2업데이트 식별자의 컨텐츠를 업데이트하는 업데이트 요소; 및 제1비교로서, 상기 제1네트웍 장치로부터 전송된 상기 제1업데이트 식별자의 값을, 상기 제2네트웍 장치에 저장된 상기 제1업데이트 식별자의 값과 비교하고, 제2비교로서, 상기 제1네트웍 장치로부터 전송된 상기 제2업데이트 식별자의 값을, 상기 제2네트웍 장치에 저장된 상기 장치의 제2업데이트 식별자의 값과 비교하는 요소를 포함하고,The second network device comprises: a storage medium having predetermined data sets to be synchronized; Establish a communication connection to the first network device used in the network for synchronization of data, communicate the stored first update identifier and the second update identifier to the first network device, and communicate data with the first network device. A communication interface for exchanging; A synchronization element for synchronizing data according to the indicator; An update element for updating content of the stored first update identifier and content of the stored second update identifier; And comparing, as a first comparison, a value of the first update identifier transmitted from the first network device with a value of the first update identifier stored in the second network device, and as a second comparison, the first network. An element for comparing a value of the second update identifier sent from the device with a value of the second update identifier of the device stored in the second network device, 상기 제1업데이트 식별자는 상기 제2네트웍 장치와 함께 수행했던 이전의 완전 동기 이벤트를 나타내고 적어도 한 네트웍 장치 안에 저장되어 있으며, 상기 제2업데이트 식별자는 상기 제2네트웍 장치와 수행했던 이전의 불완전 동기 이벤트를 나타내고 적어도 한 네트웍 장치 안에 저장되어 있으며,The first update identifier indicates a previous full synchronization event performed with the second network device and is stored in at least one network device, and the second update identifier indicates a previous incomplete synchronization event performed with the second network device. Is stored in at least one network device, 상기 데이터는 상기 비교 결과가 동일한 식별자들이라고 나온 경우 적어도 상기 이전의 불완전 동기 이벤트 중에 동기되지 않았던 데이터를 포함하고, 상기 교환된 정보는 상기 표시자에 기반함을 특징으로 하는 시스템.The data comprises data that was not synchronized during at least the previous incomplete synchronization event if the comparison resulted in identical identifiers, and wherein the exchanged information is based on the indicator.
KR1020057003718A 2002-09-03 2003-09-03 Method, apparatus, and system for synchronizing data providing for processing of an interrupted synchronization process Expired - Lifetime KR100728076B1 (en)

Applications Claiming Priority (4)

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/236,010 2002-09-03
US10/291,192 2002-11-08
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

Publications (2)

Publication Number Publication Date
KR20050031466A KR20050031466A (en) 2005-04-06
KR100728076B1 true KR100728076B1 (en) 2007-06-13

Family

ID=31980974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057003718A Expired - Lifetime KR100728076B1 (en) 2002-09-03 2003-09-03 Method, apparatus, and system for synchronizing data providing for processing of an interrupted synchronization process

Country Status (9)

Country Link
EP (1) EP1540503A4 (en)
JP (1) JP4494970B2 (en)
KR (1) KR100728076B1 (en)
AU (1) AU2003255972A1 (en)
CA (1) CA2497525A1 (en)
EG (1) EG23768A (en)
MX (1) MXPA05002408A (en)
TW (1) TWI231426B (en)
WO (1) WO2004023233A2 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7933965B2 (en) 2004-06-30 2011-04-26 Jumpstart Wireless Corporation Computer program code device for extending business systems to a mobile workforce
US8065359B2 (en) 2004-09-16 2011-11-22 Nokia Corporation Integrated method and apparatus to manage mobile devices and services
CN1852309A (en) * 2005-11-16 2006-10-25 华为技术有限公司 Data synchronizing processing method and its client end
US7581148B2 (en) * 2006-01-31 2009-08-25 Verigy (Singapore) Pte. Ltd. System, method and apparatus for completing the generation of test records after an abort event
US8769033B2 (en) * 2006-03-03 2014-07-01 Microsoft Corporation Identifying changes to media-device contents
CN101047707A (en) * 2006-03-30 2007-10-03 华为技术有限公司 Method and system for initiating equipment ability information consultation
KR100782858B1 (en) * 2006-04-11 2007-12-06 삼성전자주식회사 Method and apparatus for synchronizing contents of home network devices
KR100755715B1 (en) * 2006-04-21 2007-09-05 삼성전자주식회사 A synchronization support method for a plurality of content directory service devices, a content directory service device used in the synchronization support method, and a system including the same
US7706368B2 (en) * 2007-04-06 2010-04-27 Research In Motion Limited System and method for correlating messages within a wireless transaction
US7747784B2 (en) * 2008-03-04 2010-06-29 Apple Inc. Data synchronization protocol
JP5180013B2 (en) * 2008-09-11 2013-04-10 キヤノンマーケティングジャパン株式会社 Authentication processing system, control method thereof, and program
JP5061166B2 (en) 2009-09-04 2012-10-31 Kii株式会社 Data synchronization system and data synchronization method
CN101674326B (en) * 2009-09-21 2012-09-05 中兴通讯股份有限公司 Method for realizing interprocess synchronization communication and agent unit
US10089323B2 (en) * 2012-04-05 2018-10-02 Microsoft Technology Licensing, Llc Telemetry system for a cloud synchronization system
US9173095B2 (en) * 2013-03-11 2015-10-27 Intel Corporation Techniques for authenticating a device for wireless docking
JP6442230B2 (en) 2014-10-31 2018-12-19 キヤノン株式会社 Information processing apparatus, synchronization control method, and program
CN107846476B (en) * 2017-12-18 2020-06-16 东软集团股份有限公司 Information synchronization method, equipment and storage medium
CN111737204B (en) 2020-06-12 2024-03-19 北京百度网讯科技有限公司 File directory traversal methods, devices, equipment and media

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477545B1 (en) * 1998-10-28 2002-11-05 Starfish Software, Inc. System and methods for robust synchronization of datasets
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
US20030159136A1 (en) * 2001-09-28 2003-08-21 Huang Xiao Fei Method and system for server synchronization with a computing device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6477545B1 (en) * 1998-10-28 2002-11-05 Starfish Software, Inc. System and methods for robust synchronization of datasets
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
US20030159136A1 (en) * 2001-09-28 2003-08-21 Huang Xiao Fei Method and system for server synchronization with a computing device

Also Published As

Publication number Publication date
AU2003255972A1 (en) 2004-03-29
TWI231426B (en) 2005-04-21
EP1540503A2 (en) 2005-06-15
CA2497525A1 (en) 2004-03-18
MXPA05002408A (en) 2005-05-27
EG23768A (en) 2007-08-08
EP1540503A4 (en) 2006-07-19
JP4494970B2 (en) 2010-06-30
WO2004023233A3 (en) 2004-07-15
AU2003255972A8 (en) 2004-03-29
KR20050031466A (en) 2005-04-06
JP2005537579A (en) 2005-12-08
TW200405966A (en) 2004-04-16
WO2004023233A2 (en) 2004-03-18

Similar Documents

Publication Publication Date Title
CN1708755B (en) Method, device and system for synchronizing data provided for handling interrupted synchronization process
KR100728076B1 (en) Method, apparatus, and system for synchronizing data providing for processing of an interrupted synchronization process
KR100937163B1 (en) Synchronization of Database Data
CN100401289C (en) Configuring a sync session
WO2021121370A1 (en) Message loss detection method and apparatus for message queue
US8024290B2 (en) Data synchronization and device handling
KR100945221B1 (en) Arrangement of data synchronization in a telecommunications system
US9594821B2 (en) Method and apparatus for synchronizing how data is stored in different data stores
KR100873711B1 (en) Method and device for handling synchronization-related information
US8171171B2 (en) Data synchronization method and system between devices
KR101011216B1 (en) Data synchronization
KR20080068110A (en) Data synchronization processing method and client terminal, server and its data synchronization system
CN100472523C (en) Synchronize server and device data using device data mode
US7840528B2 (en) System and method for integrating continuous synchronization on a host handheld device
US20040088372A1 (en) Method and device for retrieving data store access information
EP1650674B1 (en) System and method for integrating continuous synchronization on a host handheld device
EP1835424A1 (en) Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
CN117955991A (en) Service processing method, device, equipment and storage medium
KR20070071599A (en) Data Synchronization Method Using Short Message Between Multiple Client Terminals

Legal Events

Date Code Title Description
A201 Request for examination
PA0105 International application

Patent event date: 20050303

Patent event code: PA01051R01D

Comment text: International Patent Application

PA0201 Request for examination
PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20060831

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20070309

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20070607

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20070608

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20100525

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20110519

Start annual number: 5

End annual number: 5

PR1001 Payment of annual fee

Payment date: 20120518

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20130522

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20130522

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20140521

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20140521

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20150518

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20150518

Start annual number: 9

End annual number: 9

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 10

PR1001 Payment of annual fee

Payment date: 20160517

Start annual number: 10

End annual number: 10

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 11

PR1001 Payment of annual fee

Payment date: 20170522

Start annual number: 11

End annual number: 11

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 12

PR1001 Payment of annual fee

Payment date: 20180516

Start annual number: 12

End annual number: 12

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 13

PR1001 Payment of annual fee

Payment date: 20190515

Start annual number: 13

End annual number: 13

PR1001 Payment of annual fee

Payment date: 20210517

Start annual number: 15

End annual number: 15

PR1001 Payment of annual fee

Payment date: 20220517

Start annual number: 16

End annual number: 16

PC1801 Expiration of term

Termination date: 20240303

Termination category: Expiration of duration