KR100547896B1 - 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 - Google Patents

데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 Download PDF

Info

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
Application number
KR1020040015035A
Other languages
English (en)
Other versions
KR20050089551A (ko
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
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040015035A priority Critical patent/KR100547896B1/ko
Priority to US10/926,911 priority patent/US7792790B2/en
Publication of KR20050089551A publication Critical patent/KR20050089551A/ko
Application granted granted Critical
Publication of KR100547896B1 publication Critical patent/KR100547896B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid 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

데이터 동기화 시스템 및 서버와 클라이언트의 데이터 동기화 방법{SYSTEM FOR SYNCRONIZING DATA AND METHOD FOR SYNCRONIZING DATA BETWEEN SERVER AND CLIENT USING THE SAME}
도 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. 서버와 클라이언트 각각이 각 아이템별 동기화 시간 정보 필드를 포함하는 데이터베이스를 공유하고 그 데이터베이스를 이용하여 동기화 이후의 변경 내용을 관리하는 제1 과정과,
    상기 클라이언트의 요청으로 동기화 세션이 시작되면 클라이언트에 저장된 상기 데이터베이스로부터 클라이언트의 최근 동기화 시간정보를 검출하고 서버에 저장된 상기 데이터베이스로부터 서버의 최근 동기화 시간정보를 검출하는 제2 과정과,
    상기 클라이언트의 최근 동기화 시간정보 및 서버의 최근 동기화 시간정보를 비교하는 제3 과정과,
    상기 비교결과에 의거하여 상기 클라이언트와 서버의 최근 동기화 시간정보가 일치하는 시점 이후의 데이터베이스 변경내용을 이용한 클라이언트 변경정보 및 서버 변경정보를 생성하는 제4 과정과,
    상기 클라이언트 변경정보 및 서버 변경정보를 이용하여 클라이언트 및 서버 각각이 데이터베이스를 갱신하는 제5 과정을 포함함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
  2. 제1항에 있어서, 상기 데이터베이스는
    각 아이템 식별번호 필드와,
    대응된 아이템의 데이터 정보를 저장하는 데이터 필드와,
    해당 데이터 정보가 가장 최근에 동기화된 시간정보를 저장하는 동기화 시간정보 필드를 포함함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
  3. 제1항에 있어서, 상기 제1 과정은
    서버와 클라이언트 각각이 서버와 클라이언트 간의 데이터 동기화가 수행된 이후의 변경내용을 관리하기 위해 상기 동기화가 수행된 이후에 변경된 아이템에 대응된 동기화 시간 정보 필드의 데이터를 삭제함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
  4. 제1항에 있어서, 상기 제2 과정은
    상기 서버 및 클라이언트에 각각 저장된 데이터베이스들 각각으로부터 동기화 시간정보 필드의 값이 가장 큰 값을 서버 및 클라이언트 각각의 최근 동기화 시간정보로 검출함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
  5. 제3항에 있어서, 상기 제4 과정은
    상기 서버 및 클라이언트 각각에 저장된 데이터베이스의 최근 동기화 시간정보가 삭제된 아이템정보를 이용하여 서버 및 클라이언트의 변경정보를 생성함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
  6. 제4항 또는 제5항에 있어서, 상기 제4 과정은
    상기 클라이언트의 최근 동기화 시간정보가 서버의 최근 동기화 시간정보 보다 더 큰 값을 가지는 경우 상기 클라이언트의 최근 동기화 시간정보를 서버의 최근 동기화 시간정보로 변경하는 단계와,
    클라이언트의 데이터베이스에서 상기 변경된 클라이언트의 최근 동기화 시간정보 보다 큰 최근 동기화 시간정보를 삭제하는 단계를 더 포함함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
  7. 제4항 또는 제5항에 있어서, 상기 제4 과정은
    상기 서버의 최근 동기화 시간정보가 클라이언트의 최근 동기화 시간정보 보다 더 큰 값을 가지는 경우 상기 서버의 최근 동기화 시간정보를 클라이언트의 최근 동기화 시간정보로 변경하는 단계와,
    서버의 데이터베이스에서 상기 변경된 서버의 최근 동기화 시간 정보 보다 큰 최근 동기화 시간정보를 삭제하는 단계를 더 포함함을 특징으로 하는 서버와 클 라이언트의 데이터 동기화 방법.
  8. 제1항에 있어서, 상기 제5 과정은
    상기 동기화 세션이 시작된 시간정보를 이용하여 서버 및 클라이언트 각각의 데이터 베이스에서 변경된 아이템들의 동기화 시간정보를 변경하는 과정을 더 포함함을 특징으로 하는 서버와 클라이언트의 데이터 동기화 방법.
  9. 서버와 클라이언트를 구비하는 데이터 동기화 시스템에 있어서,
    상기 서버와 클라이언트 각각은 각 아이템별 동기화 시간 정보 필드를 포함하는 데이터베이스를 공유한 후 그 데이터베이스를 이용하여 동기화 이후의 변경 내용을 관리함을 특징으로 하는 데이터 동기화 시스템.
  10. 제9항에 있어서, 상기 데이터베이스는
    각 아이템 식별번호 필드와,
    대응된 아이템의 데이터 정보를 저장하는 데이터 필드와,
    해당 데이터 정보가 가장 최근에 동기화된 시간정보를 저장하는 동기화 시간 정보 필드를 포함함을 특징으로 하는 데이터 동기화 시스템.
  11. 제9항에 있어서,
    상기 서버와 클라이언트 각각은 데이터 동기화가 수행된 이후에 변경된 아이템에 대응된 동기화 시간 정보 필드의 데이터를 삭제함을 특징으로 하는 데이터 동기화 시스템.
  12. 제9항에 있어서,
    상기 클라이언트의 요청으로 동기화 세션이 시작되면 상기 클라이언트와 서버 각각은 상기 클라이언트와 서버 각각에 구비된 데이터베이스로부터 상기 클라이언트와 서버 각각의 최근 동기화 시간 정보를 검출한 후 그 최근 동기화 시간 정보가 일치하는 시점 이후의 상기 클라이언트 또는 서버의 데이터베이스 변경 내용을 이용하여 상기 서버 또는 클라이언트의 데이터 베이스를 갱신함을 특징으로 하는 데이터 동기화 시스템.
  13. 제12항에 있어서,
    상기 클라이언트와 서버 각각은 상기 최근 동기화 시간 정보가 일치하지 않는 경우 동기화 시간 정보가 일치하는 시점을 검출한 후 그 시점 이후의 시간 정보를 저장하는 동기화 시간 정보 필드의 데이터를 삭제하고 그 시점을 최근 동기화 시간으로 가정하여 데이터 동기화를 수행함을 특징으로 하는 데이터 동기화 시스템.
KR1020040015035A 2004-03-05 2004-03-05 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법 KR100547896B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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