KR100547896B1 - 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 - Google Patents
데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 Download PDFInfo
- Publication number
- KR100547896B1 KR100547896B1 KR1020040015035A KR20040015035A KR100547896B1 KR 100547896 B1 KR100547896 B1 KR 100547896B1 KR 1020040015035 A KR1020040015035 A KR 1020040015035A KR 20040015035 A KR20040015035 A KR 20040015035A KR 100547896 B1 KR100547896 B1 KR 100547896B1
- Authority
- KR
- South Korea
- Prior art keywords
- client
- server
- time information
- synchronization
- synchronization time
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 서버와 클라이언트의 데이터 동기화 방법에 관한 것으로서, 서버와 클라이언트 각각이 각 아이템별 동기화 시간 정보 필드를 포함하는 데이터베이스를 공유하고 그 데이터베이스를 이용하여 동기화 이후의 변경 내용을 관리하는 과정과, 상기 클라이언트의 요청으로 동기화 세션이 시작되면 클라이언트에 저장된 상기 데이터베이스로부터 클라이언트의 최근 동기화 시간정보를 검출하고 서버에 저장된 상기 데이터베이스로부터 서버의 최근 동기화 시간정보를 검출하는 과정과, 상기 클라이언트의 최근 동기화 시간정보 및 서버의 최근 동기화 시간정보를 비교하는 과정과, 상기 비교결과에 의거하여 상기 클라이언트와 서버의 최근 동기화 시간정보가 일치하는 시점 이후의 데이터베이스 변경내용을 이용한 클라이언트 변경정보 및 서버 변경정보를 생성하는 과정과, 상기 클라이언트 변경정보 및 서버 변경정보를 이용하여 클라이언트 및 서버 각각이 데이터베이스를 갱신하는 과정을 포함한다.
데이터 동기화, 서버, 클라이언트
Description
도 1은 종래의 실시 예에 따른 서버와 클라이언트의 데이터 동기화 방법에 대한 처리 흐름도,
도 2는 본 발명의 일 실시 예에 따른 데이터 동기화 방법을 구현하기 위한 데이터베이스의 필드 구조에 대한 예시도,
도 3은 본 발명의 일 실시 예에 따른 데이터 동기화 시스템에서 서버와 클라이언트의 데이터를 동기화하는 방법에 대한 처리 흐름도,
도 4a 내지 도 4d는 본 발명의 일 실시 예에 따른 서버와 클라이언트의 데이터 동기화 수행 시 데이터베이스의 구조를 예시한 도면들.
본 발명은 데이터 동기화 시스템 및 서버와 클라이언트의 데이터 동기화 방 법에 관한 것으로서, 특히, 이동단말기 및 이동단말기의 데이터 저장 서버와의 데이터 동기화 방법에 관한 것이다.
통상적으로 이동단말기 사용자들은 주소록, 스케줄 정보 등과 같이 개인적으로 필요한 정보들을 이동단말기 내에 저장하여 사용한다. 또한 이동단말기의 교체 및 분실 등의 이유로 새로운 이동단말기를 사용하게 된 경우 이전 이동단말기에 저장된 각종 정보들을 새로운 이동단말기에 그대로 저장하여 사용할 수 있도록 하기 위해 이동단말기에 저장된 정보들을 별도의 데이터 저장 서버에 저장하여 관리한다. 이 때 이동단말기에 저장된 정보와 상기 데이터 저장 서버에 저장된 데이터를 동일하게 유지하기 위해 이동단말기 또는 상기 데이터 저장 서버에 저장된 데이터가 변경된 경우 이들 간에 데이터 동기화를 수행하여야 한다.
통상적으로 상기와 같은 이동단말기와 데이터 저장 서버간의 데이터 동기화 작업은 이동단말기 사용자의 동기화 요구에 의해 수행된다.
도 1은 종래의 실시 예에 따른 서버(10)와 클라이언트(10)의 데이터 동기화 방법에 대한 처리 흐름도이다. 도 1의 예에서 서버(10)는 상기 설명된 데이터 저장 서버이고 클라이언트(10)는 이동단말기이다.
도 1을 참조하면 종래의 데이터 동기화 방법은 다음과 같다. 먼저 클라이언트(10)가 서버(20)에게 동기화를 요구함으로써 동기화 세션(sync session)이 시작되면 클라이언트(10)는 기 저장된 동기화 정보로부터 최근 동기화 시간 정보(last anchor)를 검출한다(S13). 그리고 그 최근 동기화 시간 정보(last anchor)와 현재 동기화 세션이 시작된 시간정보(next anchor)를 서버(20)에게 전달한다(S15). 그러 면 서버(20)는 서버(20)에 기 저장된 최근 동기화 시간 정보(last anchor of server)와 상기 과정(S15)에서 전달된 최근 동기화 시간정보(last anchor of client)를 비교한 후(S17) 그 비교 결과를 클라이언트(10)에게 통보한다(S19).
상기 비교 결과를 통보 받은 클라이언트(10)는 그 비교 결과를 확인하여(S21) 상기 비교 결과가 동일하면 클라이언트(10)와 서버(20)간에 동기화가 이루어진 후에 클라이언트(10)에서 변경된 내용만을 서버(20)에게 전달하기 위한 작업을 수행한다.
즉 클라이언트(10)와 서버(20)의 최근 동기화 시간정보가 동일하면(last anchor of server = last anchor of client) 클라이언트(10)는 클라이언트(10)에 저장된 변경 내역(change log) 관리 DB가 정상인지의 여부를 확인하여(S23) 변경내용(change log) 전달 준비를 한다(S25).
한편 클라이언트(10)와 서버(20)의 최근 동기화 시간정보가 동일하지 않거나(last anchor of server ≠ last anchor of client) 클라이언트(10)에 저장된 변경 내역 관리 DB가 정상이 아니면 클라이언트(10)는 클라이언트(10)에 저장된 전체내용에 대한 전달 준비를 한다(S27).
상기 과정(S25 또는 S27)에서 서버(20)측으로 전달할 내용이 준비되었으면 클라이언트(10)는 그 준비된 내용(전체 내용 또는 변경 내용)을 서버(20)에게 전달한다(S29).
그러면 서버(20)는 상기 전달된 내용(전체 내용 또는 변경 내용)을 이용하여 DB(data base)의 내용을 갱신한다(S31).
이와 같은 일련의 동기화 과정들(S11 내지 S31)이 정상적으로 수행되면 서버(20)와 클라이언트(10)는 최근 동기화 시간 정보(last anchor)를 갱신한다(S33 및 S35). 즉 현재 동기화 세션이 시작된 시간정보(next anchor)를 최근 동기화 시간 정보(last anchor)로 변경한다.
이 때 데이터베이스의 전체 내용을 전달함으로써 클라이언트(10)와 서버(20)의 동기화를 수행하는 방법을 슬로우 싱크(slow sync)라 한다. 슬로우 싱크(slow sync)는 상기 예에서와 같이 서버 또는 클라이언트가 자신의 변경 내역(change log)을 잃었을 경우 또는 최근 동기화 시간 정보(last anchor)가 맞지 않을 때 수행된다. 슬로우 싱크(slow sync)는 클라이언트가 자신의 데이터를 서버에게 모두 보내면 서버가 자신의 데이터와 클라이언트로부터 전달된 데이터를 필드 대 필드(field by field)로 비교하여 수정된 내용을 다시 클라이언트로 전송하고 클라이언트는 이 전송된 내용을 바탕으로 데이터의 동기를 맞추게 된다.
종래의 동기화 방법의 경우 서버 및 클라이언트가 데이터(data), 동기화 시간 정보(sync anchor) 및 변경 내용 정보(change log)를 각각 관리하며 이를 이용하여 동기화를 수행함으로써 각각의 동기화 시간 정보가 맞지 않거나 변경 내용 정보가 분실된 경우 전체 데이터를 교환하는 슬로우 싱크(slow sync)를 수행하여야 한다.
그런데 이러한 슬로우 싱크(slow sync)는 전체 데이터를 전송하여야 하므로 변경된 내용(change log)만을 전달하는 방법과 비교할 때 처리 속도가 느리다. 따라서 이러한 슬로우 싱크(slow sync)가 자주 발생할 경우 서버와 클라이언트 간에 동기화 지연이 발생되는 요인이 된다.
따라서 상기와 같은 문제점을 해결하기 위한 본 발명의 제1 목적은 서버와 클라이언트 간에 슬로우 싱크(slow sync)가 발생되는 원인을 최소화하여 데이터 동기화 지연 요소를 줄이는 시스템 및 그 방법을 제공함에 있다.
또한 본 발명의 제2 목적은 서버와 클라이언트의 동기화 시간 정보 및 변경 내용 정보를 간편하게 관리함으로써 동기화 속도를 빠르게 하는 시스템 및 그 방법을 제공함에 있다.
상기 목적을 달성하기 위해 본 발명에서 제공하는 데이터 동기화 시스템은 상기 서버와 클라이언트 각각은 각 아이템별 동기화 시간 정보 필드를 포함하는 데이터베이스를 공유한 후 그 데이터베이스를 이용하여 동기화 이후의 변경 내용을 관리함을 특징으로 한다.
또한, 상기 목적을 달성하기 위해 본 발명에서 제공하는 서버와 클라이언트의 데이터 동기화 방법은 서버와 클라이언트 각각이 각 아이템별 동기화 시간 정보 필드를 포함하는 데이터베이스를 공유하고 그 데이터베이스를 이용하여 동기화 이후의 변경 내용을 관리하는 제1 과정과, 상기 클라이언트의 요청으로 동기화 세션이 시작되면 클라이언트에 저장된 상기 데이터베이스로부터 클라이언트의 최근 동 기화 시간정보를 검출하고 서버에 저장된 상기 데이터베이스로부터 서버의 최근 동기화 시간정보를 검출하는 제2 과정과, 상기 클라이언트의 최근 동기화 시간정보 및 서버의 최근 동기화 시간정보를 비교하는 제3 과정과, 상기 비교결과에 의거하여 상기 클라이언트와 서버의 최근 동기화 시간정보가 일치하는 시점 이후의 데이터베이스 변경내용을 이용한 클라이언트 변경정보 및 서버 변경정보를 생성하는 제4 과정과, 상기 클라이언트 변경정보 및 서버 변경정보를 이용하여 클라이언트 및 서버 각각이 데이터베이스를 갱신하는 제5 과정을 포함하는 것을 특징으로 한다.
이하 본 발명의 바람직한 실시 예들을 첨부한 도면을 참조하여 상세히 설명한다. 이 때, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략한다.
도 2는 본 발명의 일 실시 예에 따른 데이터 동기화 방법을 구현하기 위한 데이터베이스의 필드 구조에 대한 예시도이다. 도 2를 참조하면 본 발명의 일 실시 예에 따른 데이터 동기화 방법을 구현하기 위한 데이터베이스의 필드 구조는 '아이템 ID/데이터 필드/동기화 시간 정보'를 포함한다.
즉 하나의 데이터 베이스에서 각 아이템 별로 대응된 데이터들과 그 데이터의 동기화 시간 정보를 각각 관리한다.
예를 들어 상기 도 2에 예시된 데이터 베이스가 전화번호부를 관리하기 위한 데이터베이스인 경우 '아이템 ID'에는 각 전화번호부에 포함된 사람들의 식별 번호들이 저장되고, '데이터 필드'에는 해당 전화번호(예컨대, 집 전화번호, 회사전화 번호, 이동전화번호 등)가 저장되고, '동기화 시간 정보'가 저장된다. 이 때, '동기화 시간 정보'필드에는 서버와 클라이언트간에 마지막으로 동기화가 수행된 시간 정보, 즉 최근 동기화 시간 정보(last anchor)가 저장된다. 그리고 최근 동기화 수행 후 해당 아이템에 대응된 데이터가 변경되거나 삭제된 경우 또는 아이템 자체가 추가된 경우에는 '동기화 시간 정보'필드의 내용을 삭제함으로써 해당 아이템 내용이 동기화 되지 않은 변경 내용(change log)임을 알 수 있도록 한다.
도 3은 본 발명의 일 실시 예에 따른 데이터 동기화 시스템에서 서버(200)와 클라이언트(100)의 데이터를 동기화하는 방법에 대한 처리 흐름도이다. 도 3을 참조하면 본 발명의 일 실시 예에 따른 서버(200)와 클라이언트(100)의 데이터 동기화 방법은 다음과 같다.
먼저 서버(200)와 클라이언트(100)는 도 2에 예시된 바와 같은 필드 구조를 갖는 데이터베이스에 의해 소정 데이터들(예컨대, 주소록, 전화번호부, 스케줄 관리 정보 등)을 저장/관리하므로, 서버(200)와 클라이언트(100) 각각은 최근 동기화 이후에 변경된 아이템의 동기화 시간 정보를 삭제하여 관리한다(S105, S110).
그리고 클라이언트(100)가 서버(200)에게 동기화를 요구함으로써 동기화 세션(sync session)이 시작되면 클라이언트(100)는 상기 데이터 베이스로부터 최근 동기화 시간 정보를 검출한다(S120). 즉 데이터 베이스의 아이템 별로 저장된 동기화 시간 정보(sync anchor) 중 가장 최근 값(last anchor of client)을 검출한다. 통상적으로 시간 정보는 가장 큰 값을 가지는 것이 최근 시간을 나타내므로 상기 데이터베이스의 아이템 별로 저장된 동기화 시간 정보(sync anchor) 중 가장 큰 값 을 검출한다.
그리고 그 최근 동기화 시간 정보(last anchor of client)와 현재 동기화 세션이 시작된 시간정보(next anchor)를 서버(200)에게 전달한다(S125).
그러면 서버(200)는 서버(200)에 기 저장된 최근 동기화 시간 정보(last anchor of server)와 상기 과정(S125)에서 전달된 최근 동기화 시간정보(last anchor of client)를 비교한 후(S130) 그 비교 결과를 클라이언트(100)에게 통보한다(S135).
이 때 서버(200)는 상기 과정(S120)에서 클라이언트(100)가 최근 동기화 시간정보를 검출하는 방법과 동일한 방법을 이용하여 최근 동기화 시간을 검출하는 것이 바람직하다. 즉 데이터 베이스의 아이템 별로 저장된 동기화 시간 정보(sync anchor) 중 가장 큰 값을 최근 동기화 시간정보(last anchor of server)로서 검출한다.
그리고 상기 비교 결과 클라이언트(100)와 서버(200)의 최근 동기화 시간정보가 동일하면(last anchor of server = last anchor of client) 클라이언트(100) 측으로 이를 알리기 위한 메시지(예컨대, 'OK')를 전달한다.
한편 클라이언트(100)와 서버(200)의 최근 동기화 시간정보가 동일하지 않으면(last anchor of server ≠ last anchor of client) 클라이언트(100)의 최근 동기화 시간 정보(last anchor of client)와 서버(200)의 최근 동기화 시간 정보(last anchor of server) 중 어느 값이 더 큰지를 비교한다. 만일 서버(200)의 최근 동기화 시간 정보(last anchor of server)가 더 크면 클라이언트(100)의 최근 동기화 시간정보(last anchor of client) 보다 큰 동기화 시간정보(sync anchor)를 모두 삭제한다. 이는 클라이언트(100)의 최근 동기화 시점으로 서버(200)의 최근 동기화 시점을 변경하기 위함이다. 그리고 클라이언트(100)와 서버(200)의 최근 동기화 시간 정보가 동일함을 알리기 위한 메시지(예컨대, 'OK')를 클라이언트(100) 측으로 전송한다. 만일 클라이언트(100)의 최근 동기화 시간정보(last anchor of client)가 더 크면 서버(200)는 클라이언트(100)와 서버(200)의 최근 동기화 시간 정보가 서로 다름을 알리기 위한 메시지(예컨대, 'NOK')와 서버(200)의 최근 동기화 시간정보(last anchor of server)를 클라이언트(100) 측으로 전송한다.
상기 과정(S135)에서 서버(200)측으로부터 비교 결과를 전달 받은 클라이언트(100)는 그 비교 결과를 확인하여(S140) 상기 비교 결과가 동일하면(예컨대, 'OK'이면) 클라이언트(100)는 데이터 베이스의 동기화 시간 정보 필드에 동기화 시간 정보가 삭제된 아이템들만을 검출하여 클라이언트(100)의 변경정보(client change log)를 생성한다(S150). 즉 클라이언트(100)와 서버(200)의 최근 동기화 시간정보가 동일하면(last anchor of server = last anchor of client) 클라이언트(100)는 클라이언트(100)에 저장된 도 2와 같은 구조의 데이터 베이스로부터 클라이언트(100)의 변경정보(client change log)를 생성한다.
한편 상기 확인결과(S140) 비교 결과가 동일하지 않으면, 즉 클라이언트(100)와 서버(200)의 최근 동기화 시간정보가 동일하지 않으면(last anchor of server ≠ last anchor of client)(예컨대, 'NOK'이면), 클라이언트(100)는 데이터 베이스에서 서버(200)로부터 전달된 서버의 동기화 시간(last anchor of server) 이후의 동기화 시간 정보를 갖는 아이템의 동기화 시간 정보를 삭제하는 과정(S145)을 더 수행한다. 즉 상기 과정(S145) 수행 후에 클라이언트 변경 정보(client change log)를 생성하는 과정(S150)을 수행한다. 그리고 상기 생성된 클라이언트 변경정보(client change log)를 서버(200)에게 전달한다(S160).
한편 서버(200)는 상기 비교결과 전달(S135) 후에 서버 변경 정보(server change log)를 생성한다(S155). 즉 서버(200)는 도 2와 같은 구조의 데이터 베이스로부터 동기화 시간 정보 필드에 동기화 시간 정보가 삭제된 아이템들 만을 검출하여 서버(200)의 변경정보(client change log)를 생성한다.
그리고 상기 과정(S160)에서 전달된 클라이언트 변경정보(client change log)를 이용하여 서버(200)의 DB를 갱신한 후(S165) 클라이언트 변경정보(client change log)를 이용한 동기화가 정상적으로 수행되었음을 알리는 동기화 상태정보와 함께 상기 과정(S155)에서 생성된 서버 변경 정보(server change log)를 클라이언트(100)에게 전달한다(S170).
클라이언트(100)는 상기 과정(S170)에서 전달된 서버 변경정보(server change log)를 이용하여 클라이언트(100)의 DB를 갱신한 후(S175) 서버 변경정보(server change log)를 이용한 동기화가 정상적으로 수행되었음을 알리는 동기화 상태정보를 서버(200)에게 전달한다(S180).
이 때 서버(200) 및 클라이언트(100) 의 DB 갱신 과정(S165 및 S175)은 아이템의 변경 정보(예컨대, 변경, 삭제 및 추가 등)와 함께 해당 아이템의 동기화 시 간 정보를 갱신하는 과정을 포함한다. 즉 현재 동기화 세션이 시작된 시간 정보(next anchor)를 해당 아이템의 동기화 시간 정보(sync anchor)로 변경한다.
도 4a 내지 도 4d는 본 발명의 일 실시 예에 따른 서버와 클라이언트의 데이터 동기화 수행 시 데이터베이스의 구조를 예시한 도면들이다.
도 4a는 새로운 동기화 세션이 시작되기 이전의 서버와 클라이언트의 데이터 베이스의 상태를 예시한 도면이다. 도 4a를 참조하면 본 발명의 일 실시 예에 따른 데이터 베이스는 각 아이템 별로 최근 동기화 시간 정보를 관리하며 도 4a의 예에서 해당 데이터 베이스의 최근 동기화 시간 정보는 '20031101T103210Z'이다.
도 4b는 도 4a에 예시된 데이터 베이스의 동기화 이후에 해당 데이터 베이스에 변화가 발생된 경우에 대한 예를 도시하고 있다. 도 4b를 참조하면 도 4a에 예시된 데이터 베이스가 최근 동기화 시점(20031101T103210Z) 이후에 변경되었으며, 그 변경 내역은 아이템 '2'의 삭제, 아이템 '4'의 변경(예컨대, 'a-4, b-4, c-4'에서 'd-4, e-4, f-4'로 변경) 및 아이템 '6 내지 8'의 추가이다.
도 4c는 도 4b에 예시된 데이터 베이스를 근거로 한 변경 정보(change log)의 예를 도시하고 있다. 도 4c를 참조하면 도 4a에 예시된 데이터 베이스가 최근 동기화 시점(20031101T103210Z) 이후에 변경된 내역(예컨대, 아이템 '2'의 삭제(delete), 아이템 '4'의 변경(replace) 및 아이템 '6 내지 8'의 추가(add))이 변경 정보(change log)에 나타나 있음을 알 수 있다.
도 4d는 새로운 동기화 시점(20031105T093022Z)에 동기화가 완료된 경우에 대한 예를 도시하고 있다. 도 4a에 예시된 데이터 베이스가 최근 동기화 시점(20031101T103210Z) 이후에 클라이언트 및 서버에 저장된 데이터 베이스를 나타내고 도 4b 및 도 4c가 클라이언트의 데이터 베이스가 변경된 예를 나타내고 서버에서 's-9, i-9, j-9'인 아이템과 's-10, i-10, j-10'인 아이템이 추가된 경우, 도 4c에 예시된 변경정보(change log)와 서버의 아이템 추가에 의해 동기화 시점(20031105T093022Z)에 서버와 클라이언트 간에 동기화가 완료된 데이터 베이스의 예를 도시하고 있다.
상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해 져야 한다.
상기와 같은 본 발명은 서버 및 클라이언트의 데이터 베이스에 각 아이템 별 동기화 시간 정보 필드를 추가하고 아이템 별로 동기화 시간 정보를 관리함으로써 서버와 클라이언트 간에 슬로우 싱크(slow sync) 가 발생되는 원인을 최소화하며, 이로 인해 데이터 동기화 지연 요소를 줄일 수 있다. 또한 본 발명은 서버와 클라이언트의 동기화 시간 정보 및 변경 내용 정보를 간편하게 관리함으로써 서버와 클라이언트 간의 동기화를 간편하게 수행할 수 있으며 동기화 속도를 빠르게 하는 효과가 있다.
Claims (13)
- 서버와 클라이언트 각각이 각 아이템별 동기화 시간 정보 필드를 포함하는 데이터베이스를 공유하고 그 데이터베이스를 이용하여 동기화 이후의 변경 내용을 관리하는 제1 과정과,상기 클라이언트의 요청으로 동기화 세션이 시작되면 클라이언트에 저장된 상기 데이터베이스로부터 클라이언트의 최근 동기화 시간정보를 검출하고 서버에 저장된 상기 데이터베이스로부터 서버의 최근 동기화 시간정보를 검출하는 제2 과정과,상기 클라이언트의 최근 동기화 시간정보 및 서버의 최근 동기화 시간정보를 비교하는 제3 과정과,상기 비교결과에 의거하여 상기 클라이언트와 서버의 최근 동기화 시간정보가 일치하는 시점 이후의 데이터베이스 변경내용을 이용한 클라이언트 변경정보 및 서버 변경정보를 생성하는 제4 과정과,상기 클라이언트 변경정보 및 서버 변경정보를 이용하여 클라이언트 및 서버 각각이 데이터베이스를 갱신하는 제5 과정을 포함함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
- 제1항에 있어서, 상기 데이터베이스는각 아이템 식별번호 필드와,대응된 아이템의 데이터 정보를 저장하는 데이터 필드와,해당 데이터 정보가 가장 최근에 동기화된 시간정보를 저장하는 동기화 시간정보 필드를 포함함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
- 제1항에 있어서, 상기 제1 과정은서버와 클라이언트 각각이 서버와 클라이언트 간의 데이터 동기화가 수행된 이후의 변경내용을 관리하기 위해 상기 동기화가 수행된 이후에 변경된 아이템에 대응된 동기화 시간 정보 필드의 데이터를 삭제함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
- 제1항에 있어서, 상기 제2 과정은상기 서버 및 클라이언트에 각각 저장된 데이터베이스들 각각으로부터 동기화 시간정보 필드의 값이 가장 큰 값을 서버 및 클라이언트 각각의 최근 동기화 시간정보로 검출함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
- 제3항에 있어서, 상기 제4 과정은상기 서버 및 클라이언트 각각에 저장된 데이터베이스의 최근 동기화 시간정보가 삭제된 아이템정보를 이용하여 서버 및 클라이언트의 변경정보를 생성함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
- 제4항 또는 제5항에 있어서, 상기 제4 과정은상기 클라이언트의 최근 동기화 시간정보가 서버의 최근 동기화 시간정보 보다 더 큰 값을 가지는 경우 상기 클라이언트의 최근 동기화 시간정보를 서버의 최근 동기화 시간정보로 변경하는 단계와,클라이언트의 데이터베이스에서 상기 변경된 클라이언트의 최근 동기화 시간정보 보다 큰 최근 동기화 시간정보를 삭제하는 단계를 더 포함함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
- 제4항 또는 제5항에 있어서, 상기 제4 과정은상기 서버의 최근 동기화 시간정보가 클라이언트의 최근 동기화 시간정보 보다 더 큰 값을 가지는 경우 상기 서버의 최근 동기화 시간정보를 클라이언트의 최근 동기화 시간정보로 변경하는 단계와,서버의 데이터베이스에서 상기 변경된 서버의 최근 동기화 시간 정보 보다 큰 최근 동기화 시간정보를 삭제하는 단계를 더 포함함을 특징으로 하는 서버와 클 라이언트의 데이터 동기화 방법.
- 제1항에 있어서, 상기 제5 과정은상기 동기화 세션이 시작된 시간정보를 이용하여 서버 및 클라이언트 각각의 데이터 베이스에서 변경된 아이템들의 동기화 시간정보를 변경하는 과정을 더 포함함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
- 서버와 클라이언트를 구비하는 데이터 동기화 시스템에 있어서,상기 서버와 클라이언트 각각은 각 아이템별 동기화 시간 정보 필드를 포함하는 데이터베이스를 공유한 후 그 데이터베이스를 이용하여 동기화 이후의 변경 내용을 관리함을 특징으로 하는 데이터 동기화 시스템.
- 제9항에 있어서, 상기 데이터베이스는각 아이템 식별번호 필드와,대응된 아이템의 데이터 정보를 저장하는 데이터 필드와,해당 데이터 정보가 가장 최근에 동기화된 시간정보를 저장하는 동기화 시간 정보 필드를 포함함을 특징으로 하는 데이터 동기화 시스템.
- 제9항에 있어서,상기 서버와 클라이언트 각각은 데이터 동기화가 수행된 이후에 변경된 아이템에 대응된 동기화 시간 정보 필드의 데이터를 삭제함을 특징으로 하는 데이터 동기화 시스템.
- 제9항에 있어서,상기 클라이언트의 요청으로 동기화 세션이 시작되면 상기 클라이언트와 서버 각각은 상기 클라이언트와 서버 각각에 구비된 데이터베이스로부터 상기 클라이언트와 서버 각각의 최근 동기화 시간 정보를 검출한 후 그 최근 동기화 시간 정보가 일치하는 시점 이후의 상기 클라이언트 또는 서버의 데이터베이스 변경 내용을 이용하여 상기 서버 또는 클라이언트의 데이터 베이스를 갱신함을 특징으로 하는 데이터 동기화 시스템.
- 제12항에 있어서,상기 클라이언트와 서버 각각은 상기 최근 동기화 시간 정보가 일치하지 않는 경우 동기화 시간 정보가 일치하는 시점을 검출한 후 그 시점 이후의 시간 정보를 저장하는 동기화 시간 정보 필드의 데이터를 삭제하고 그 시점을 최근 동기화 시간으로 가정하여 데이터 동기화를 수행함을 특징으로 하는 데이터 동기화 시스템.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040015035A KR100547896B1 (ko) | 2004-03-05 | 2004-03-05 | 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 |
US10/926,911 US7792790B2 (en) | 2004-03-05 | 2004-08-26 | System and method of synchronizing data between a server and a client |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040015035A KR100547896B1 (ko) | 2004-03-05 | 2004-03-05 | 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20050089551A KR20050089551A (ko) | 2005-09-08 |
KR100547896B1 true KR100547896B1 (ko) | 2006-01-31 |
Family
ID=34910035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040015035A KR100547896B1 (ko) | 2004-03-05 | 2004-03-05 | 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7792790B2 (ko) |
KR (1) | KR100547896B1 (ko) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100597586B1 (ko) * | 2004-12-09 | 2006-07-06 | 한국전자통신연구원 | 세션 관리 기능을 이용한 데이터 동기화 방법 |
US20060173928A1 (en) * | 2004-12-23 | 2006-08-03 | Ecpg.Net Inc. | Method for controlling data review and synchronization |
US8001076B2 (en) * | 2005-07-12 | 2011-08-16 | International Business Machines Corporation | Ranging scalable time stamp data synchronization |
US7613739B2 (en) * | 2005-11-17 | 2009-11-03 | Research In Motion Limited | Method and apparatus for synchronizing databases connected by wireless interface |
US8000683B2 (en) * | 2005-11-17 | 2011-08-16 | Research In Motion Limited | System and method for communication record logging |
US7778959B2 (en) | 2005-12-09 | 2010-08-17 | Microsoft Corporation | Protecting storages volumes with mock replication |
US8769033B2 (en) * | 2006-03-03 | 2014-07-01 | Microsoft Corporation | Identifying changes to media-device contents |
US7890646B2 (en) * | 2006-04-27 | 2011-02-15 | Microsoft Corporation | Synchronization orchestration |
DE102006024882A1 (de) * | 2006-05-24 | 2007-11-29 | Sagem Orga Gmbh | Chipkarte |
US20070297458A1 (en) * | 2006-06-27 | 2007-12-27 | Microsoft Corporation | Efficient and layered synchronization protocol for database systems |
US7827138B2 (en) | 2006-10-02 | 2010-11-02 | Salesforce.Com, Inc. | Method and system for synchronizing a server and an on-demand database service |
US8238882B2 (en) | 2006-10-19 | 2012-08-07 | Research In Motion Limited | System and method for storage of electronic mail |
US7653664B2 (en) * | 2006-11-03 | 2010-01-26 | Microsoft Corporation | Anchor for database synchronization excluding uncommitted transaction modifications |
US10019501B2 (en) * | 2006-12-18 | 2018-07-10 | International Business Machines Corporation | Data store synchronization utilizing synchronization logs |
US7899917B2 (en) * | 2007-02-01 | 2011-03-01 | Microsoft Corporation | Synchronization framework for occasionally connected applications |
US7721003B2 (en) * | 2007-02-02 | 2010-05-18 | International Business Machines Corporation | System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client |
US20090043867A1 (en) * | 2007-08-06 | 2009-02-12 | Apple Inc. | Synching data |
US8458727B2 (en) * | 2007-11-05 | 2013-06-04 | Microsoft Corporation | Asynchronous client to server updates |
US7747784B2 (en) | 2008-03-04 | 2010-06-29 | Apple Inc. | Data synchronization protocol |
US7991740B2 (en) | 2008-03-04 | 2011-08-02 | Apple Inc. | Synchronization server process |
AU2011253726B2 (en) * | 2008-03-04 | 2012-07-26 | Apple Inc. | Synchronization server process |
US8023934B2 (en) * | 2008-03-28 | 2011-09-20 | Ianywhere Solutions, Inc. | Synchronizing communications and data between mobile devices and servers |
US8019863B2 (en) * | 2008-03-28 | 2011-09-13 | Ianywhere Solutions, Inc. | Synchronizing events between mobile devices and servers |
US11231289B2 (en) * | 2008-09-10 | 2022-01-25 | Dominic M. Kotab | Systems, methods and computer program products for sharing geographical data |
US9264856B1 (en) | 2008-09-10 | 2016-02-16 | Dominic M. Kotab | Geographical applications for mobile devices and backend systems |
US8112537B2 (en) * | 2008-09-29 | 2012-02-07 | Apple Inc. | Trickle sync protocol |
KR20100046078A (ko) * | 2008-10-10 | 2010-05-06 | 삼성전자주식회사 | 휴대 단말기와 서버로 구성된 시스템 및 그 시스템에서 데이터 동기화 방법 |
JP5061166B2 (ja) * | 2009-09-04 | 2012-10-31 | Kii株式会社 | データ同期システムおよびデータ同期方法 |
EP2302509B1 (en) * | 2009-09-29 | 2012-09-26 | Citrix Systems, Inc. | Synchronization of server-side cookies with client-side cookies |
US20110093619A1 (en) * | 2009-10-16 | 2011-04-21 | Ianywhere Solutions, Inc. | Synchronizing Tasks between Mobile Devices and Servers |
JP5585062B2 (ja) * | 2009-12-04 | 2014-09-10 | ソニー株式会社 | 情報処理装置、情報処理方法、データ管理サーバおよびデータ同期システム |
US8392365B2 (en) * | 2009-12-28 | 2013-03-05 | Microsoft Corporation | Identifying corrupted data on calendars with client intent |
US8375081B2 (en) | 2009-12-28 | 2013-02-12 | Microsoft Corporation | Calendar repair assistant |
US8612535B2 (en) * | 2009-12-28 | 2013-12-17 | Microsoft Corporation | Repairing calendars with standard meeting messages |
US8434097B2 (en) * | 2009-12-30 | 2013-04-30 | Sybase, Inc. | Dynamic data binding for MBOs for container based application |
KR101298852B1 (ko) * | 2011-08-31 | 2013-08-23 | 웹싱크 주식회사 | 파일 복원 방법 및 이를 위한 시스템 |
US9116971B2 (en) | 2012-05-08 | 2015-08-25 | Softframe, Inc. | Data synchronization using a composite change clock |
JP5832376B2 (ja) * | 2012-05-30 | 2015-12-16 | 株式会社沖データ | 情報処理装置及び情報処理方法 |
CN102710665A (zh) * | 2012-06-27 | 2012-10-03 | 深圳中兴网信科技有限公司 | 移动终端、服务器和移动终端的数据同步方法 |
US9170886B2 (en) | 2012-10-09 | 2015-10-27 | International Business Machines Corporation | Relaxed anchor validation in a distributed synchronization environment |
US9614932B2 (en) | 2013-03-14 | 2017-04-04 | Microsoft Technology Licensing, Llc | Managing and implementing web application data snapshots |
KR101645163B1 (ko) * | 2014-11-14 | 2016-08-03 | 주식회사 인프라웨어 | 분산 시스템에서의 데이터베이스 동기화 방법 |
KR101716583B1 (ko) * | 2015-10-27 | 2017-03-15 | 현대오토에버 주식회사 | 시간 동기화 서버, 시스템 및 방법 |
KR101757249B1 (ko) * | 2016-12-12 | 2017-07-13 | 한국과학기술정보연구원 | 질의를 처리하기 위한 장치 및 그 방법 |
CN106709043A (zh) * | 2016-12-30 | 2017-05-24 | 江苏瑞中数据股份有限公司 | 一种基于数据库日志的数据同步加载方法 |
CN113641764B (zh) * | 2021-08-31 | 2024-03-19 | 江苏中科云墨数字科技有限公司 | 一种基于数字孪生的数据同步实现方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5926816A (en) * | 1996-10-09 | 1999-07-20 | Oracle Corporation | Database Synchronizer |
US6330568B1 (en) * | 1996-11-13 | 2001-12-11 | Pumatech, Inc. | Synchronization of databases |
US6141664A (en) * | 1996-11-13 | 2000-10-31 | Puma Technology, Inc. | Synchronization of databases with date range |
US6317754B1 (en) * | 1998-07-03 | 2001-11-13 | Mitsubishi Electric Research Laboratories, Inc | System for user control of version /Synchronization in mobile computing |
US6343299B1 (en) * | 1998-11-16 | 2002-01-29 | International Business Machines Corporation | Method and apparatus for random update synchronization among multiple computing devices |
US6516314B1 (en) * | 1998-11-17 | 2003-02-04 | Telefonaktiebolaget L M Ericsson (Publ) | Optimization of change log handling |
US7024430B1 (en) * | 1998-12-08 | 2006-04-04 | Starfish Software, Inc. | Method and system for implementing a filter in a data synchronization system |
SE515459C2 (sv) * | 1999-02-10 | 2001-08-06 | Ericsson Telefon Ab L M | Metod för att synkronisera en värddatabas och en fjärrdatabas |
US6879989B2 (en) * | 1999-08-16 | 2005-04-12 | International Business Machines Corporation | Modification system for supporting localized data changes in a mobile device |
US6393434B1 (en) * | 1999-09-14 | 2002-05-21 | International Business Machines Corporation | Method and system for synchronizing data using fine-grained synchronization plans |
US6643669B1 (en) * | 2000-03-14 | 2003-11-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for optimization of synchronization between a client's database and a server database |
US6718348B1 (en) * | 2000-08-25 | 2004-04-06 | Telefonaktiebolaget Lm Ericsson (Publ) | Non-time dependent synchronization of databases |
US7113963B1 (en) * | 2000-11-10 | 2006-09-26 | Palmsource, Inc. | Optimized database technique to enable faster data synchronization |
US6976038B2 (en) * | 2002-10-17 | 2005-12-13 | International Business Machines Corporation | Method and apparatus for real time creation and modification of a change log for multi-server synchronization |
-
2004
- 2004-03-05 KR KR1020040015035A patent/KR100547896B1/ko not_active IP Right Cessation
- 2004-08-26 US US10/926,911 patent/US7792790B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US7792790B2 (en) | 2010-09-07 |
US20050198084A1 (en) | 2005-09-08 |
KR20050089551A (ko) | 2005-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100547896B1 (ko) | 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 | |
JP5065482B2 (ja) | 無線環境においてデータセットを同期するための方法および機器 | |
US8239452B2 (en) | System and method for discovering and publishing of presence information on a network | |
AU2004279203B2 (en) | System and method for a user interface directed to discovering and publishing presence information on a network | |
US7698307B2 (en) | System and method for synchronizing between a file system and presence of contacts on a network | |
US20200142908A1 (en) | Database synchronization | |
CA2472988A1 (en) | Unified contact list | |
EP2873204A1 (en) | Method and system for delivering reminder information | |
CN103188130A (zh) | 社交网络用户信息关联方法及装置 | |
US20050246544A1 (en) | System and method for identity confirmation of a contact published on a network | |
CN104901983B (zh) | 一种信息同步方法、装置及系统 | |
US20180198740A1 (en) | System and method for sharing and updating contact information | |
KR20120082980A (ko) | 이기종 단말 간의 개인정보 동기화 방법 및 그 시스템 | |
CN101610225B (zh) | 一种同步处理方法、系统和装置 | |
KR20020014888A (ko) | 이동통신 단말기와 개인정보 서버와의 주소록 동기화 방법 | |
CN102932513B (zh) | 一种名片维护方法、装置及设备 | |
CN104735643A (zh) | 一种信息处理的方法及数据服务器 | |
CN105933352B (zh) | 基于客户端的服务器之间数据同步方法、客户端及系统 | |
CN101883125A (zh) | 一种通过手机客户端精准统计软件下载次数的方法 | |
JP3501968B2 (ja) | データベース管理装置、および、そのプログラムが記録された記録媒体 | |
KR101247767B1 (ko) | 그룹자료 동기화 방법 및 그에 따른 시스템 | |
CN103369062A (zh) | 基于地址簿间关系的联系人信息管理算法、方法和系统 | |
CN111953722A (zh) | 一种终端通讯录的同步方法及装置 | |
KR101662715B1 (ko) | 블루투스를 이용한 휴대 단말 간의 정보 교환 방법 | |
KR101696308B1 (ko) | 개인정보 보안을 위한 시스템 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20121228 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20131230 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20141223 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20151229 Year of fee payment: 11 |
|
LAPS | Lapse due to unpaid annual fee |