KR20080066737A - 대표 정보를 비교하는 것에 의한 효과적인 데이터베이스동기화 - Google Patents

대표 정보를 비교하는 것에 의한 효과적인 데이터베이스동기화 Download PDF

Info

Publication number
KR20080066737A
KR20080066737A KR1020087010320A KR20087010320A KR20080066737A KR 20080066737 A KR20080066737 A KR 20080066737A KR 1020087010320 A KR1020087010320 A KR 1020087010320A KR 20087010320 A KR20087010320 A KR 20087010320A KR 20080066737 A KR20080066737 A KR 20080066737A
Authority
KR
South Korea
Prior art keywords
database
data
data records
portable electronic
record
Prior art date
Application number
KR1020087010320A
Other languages
English (en)
Other versions
KR100986108B1 (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 리서치 인 모션 리미티드
Publication of KR20080066737A publication Critical patent/KR20080066737A/ko
Application granted granted Critical
Publication of KR100986108B1 publication Critical patent/KR100986108B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation

Abstract

제1 데이터 기록들을 포함하는 제1 데이터베이스와 제2 데이터 기록들을 포함하는 제2 데이터베이스를 동기시키기 위한 방법은 제2 데이터 기록들을 나타내는 정보를 수신하는 단계와, 제2 데이터베이스의 제2 데이터 기록들과 단방향으로 동기시켜 제1 데이터베이스의 제1 데이터 기록들을 수정하는 단계를 포함하며, 상기 수정하는 단계는, 제1 데이터베이스에 존재하지만 대응하는 제2 데이터 기록이 제2 데이터베이스에 존재하지 않는 제1 데이터 기록들 중 일부 데이터 기록들을 삭제하는 것을 포함한다.

Description

대표 정보를 비교하는 것에 의한 효과적인 데이터베이스 동기화{EFFICIENT DATABASE SYNCHRONIZATION BY COMPARING REPRESENTATIVE INFORMATION}
본 발명은 일반적으로 포터블 전자 장치에 관한 것으로, 보다 자세하게는, 통신 네트워크에 포함되어 있는 데이터와, 포터블 전자 장치에서의 데이터를 동기시키는 것에 관한 것이다.
무선 개인 정보 단말기(PDA), 스마트 전화기 및 무선 능력을 갖는 랩톱 컴퓨터와 같은 포터블 전자 장치는 여러 기능들을 위해 폭넓게 사용되어 왔다. 이러한 장치는 데이터의 송신을 포함한 통신 목적에 일반적으로 이용되며 Mobitex 및 DataTAC와 같은 데이터 전용 네트워크로부터 GSM/GPRS, CDMA, EDGE, UMTS 및 W-CDMA 네트워크와 같은 복잡한 음성 및 데이터 네트워크까지 폭넓은 네트워크 상에서 동작한다.
이들 포터블 전자 장치는 장치의 유저에 의해 선택적으로 검색가능한 데이터를 저장하기 위한 데이터베이스를 일반적으로 포함한다. 이 데이터는 일련의 데이터 기록들을 형성하며, 각각의 데이터 기록은 하나 이상의 필드를 포함한다. 장치의 동작 동안에, 데이터는 검색되어 표시되거나 또는 그 외에 유저에 대하여 이용가능하게 만들어진다. 데이터는 장치의 유저에 의해 수정되거나 또는 추가되거나 또는 삭제될 수 있다.
데이터 저장에서의 향상은 포터블 전자 장치에 저장된 데이터의 백업을 제공하도록 포터블 전자 장치들에서의 향상을 수반하여 왔다. 장치를 백업함으로써, 전자 장치에서 데이터 손실이 발생하는 경우에 데이터를 복구할 수 있다. 여러 전자 장치들이 전자 장치와 예를 들어 데스크톱 컴퓨터와 같은 컴퓨팅 스테이션 간의 고정된(유선) 접속을 통한 통신에 의해 백업된다. 일단 데이터가 컴퓨팅 스테이션에서의 데이터베이스에 저장되면, 저장된 데이터는 컴퓨팅 스테이션에서 유저에 의해 수정되거나 또는 추가되거나 또는 삭제될 수 있다.
다른 포터블 전자 장치는 그 위에 저장된 데이터의 백업을, 예를 들어, 위에 열거된 네트워크들을 이용하여 무선 인터페이스에 의해 컴퓨팅 스테이션에 제공한다. 따라서, 데이터는 무선 통신 시스템의 무선 통신 채널을 통하여 송신되어, 그에 의해, 포터블 전자 장치와 원격 스테이션(유선 통신에 의해 링크되지 않은 스테이션) 간에 통신 링크를 형성한다. 또한, 일단 데이터가 컴퓨팅 스테이션에서의 데이터베이스에 저장되면, 저장된 데이터는 컴퓨팅 스테이션에서 수정되거나 또는 추가되거나 또는 삭제될 수 있다. 따라서, 포터블 전자 장치의 데이터베이스에 저장된 데이터는 컴퓨팅 스테이션에 백업되는 동안, 데이터가 또한 컴퓨팅 스테이션으로부터 포터블 전자 장치에 송신되어, 포터블 전자 장치의 데이터베이스와 컴퓨팅 스테이션의 데이터베이스가 동기된다. 컴퓨팅 스테이션 상의 데이터 기록이 포터블 전자 장치 상에 존재하지 않는 경우 또는 컴퓨팅 스테이션의 데이터 기록의 컨텐츠(데이터 기록의 필드들)가 포터블 전자 장치의 데이터 기록의 컨텐츠와 다른 경 우에는, 추가적인 데이터 기록 또는 상이한 데이터 기록이 포터블 전자 장치에 송신된다. 유사하게, 포터블 전자 장치 상의 데이터 기록이 컴퓨팅 스테이션 상에 존재하지 않는 경우, 또는 포터블 전자 장치의 데이터 기록의 컨텐츠가 컴퓨팅 스테이션의 데이터 기록의 컨텐츠와 다른 경우에는, 추가적인 데이터 기록 또는 상이한 데이터 기록이 컴퓨팅 스테이션에 송신된다.
무선 통신 채널을 통한 데이터 동기화는 데이터가 원거리 상에서 원격으로 통신될 수 있다는 점에서 명확하게 이점이 된다. 그러나, 무선 통신 채널들을 통한 종래 방식의 데이터 동기화는 단점도 겪는다. 이러한 데이터 동기화는 과중하게 대역폭을 소모할 수 있다. 많은 기록들이 송신되는 경우, 전송 시간은 통신 채널이 데이터 기록을 송신하는데 장기간 동안에 개방되고 이것은 비용이 많이 들을 수 있다는 확장된 의미일 수 있다.
데이터 기록이 포터블 전자 장치로부터 삭제되는 경우, 컴퓨팅 스테이션에서의 대응하는 데이터 기록을 삭제하기 위하여 삭제 데이터 기록 표시가 포터블 전자 장치로부터 컴퓨팅 스테이션에 송신된다. 많은 기록들이 포터블 전자 장치의 동작 동안에 삭제되는 경우, 포터블 전자 장치는 수개의 삭제 데이터 기록 표시들(포터블 전자 장치에서 삭제된 각각의 데이터 기록 마다 하나의 데이터 기록 삭제 표시)을 송신하는데 이것은 추가의 전송 시간 및 대역폭을 필요로 한다. 따라서, 데이터 기록의 삭제가 전체 데이터 기록의 송신을 필요로 하지 않지만, 삭제 데이터 기록 표시가 각각의 삭제된 기록마다 송신되어야 한다.
따라서, 무선 인터페이스에 의해 접속되는 데이터베이스를 동기시키는 개선 된 방법이 요구된다.
본 발명의 일 양태에 따르면, 제1 데이터 기록들을 포함하는 제1 데이터베이스와 제2 데이터 기록들을 포함하는 제2 데이터베이스를 동기시키는 방법이 제공되며, 이 방법은, 제2 데이터 기록들을 나타내는 정보를 수신하는 단계와, 제1 데이터베이스의 제1 데이터 기록들을 제2 데이터베이스의 제2 데이터 기록들과 단방향으로 동기시켜 수정하는 단계를 포함하며, 이 수정하는 단계는, 제1 데이터베이스에 존재하지만 대응하는 제2 데이터 기록이 제2 데이터베이스에 존재하지 않는 제1 데이터 기록들 중 일부 데이터 기록들을 삭제하는 것을 포함한다.
본 발명의 다른 양태에 따르면, 제1 데이터 기록들을 포함하는 제1 데이터베이스와 제2 데이터 기록들을 포함하는 제2 데이터베이스를 동기시키는 장치가 제공된다. 이 장치는 제1 데이터베이스에서의 제1 데이터 기록들을 저장하는 메모리 장치와; 메모리 장치 및 송신 및 수신 장치에 동작가능하게 연결되어, 제2 데이터 기록들을 나타내는 정보를 수신하고, 제1 데이터베이스에서의 제1 데이터 기록들을 제2 데이터베이스에서의 제2 데이터 기록들과 단방향으로 동기시켜 수정시키는 프로세서를 포함하며, 이 수정시키는 것은, 제1 데이터베이스에 존재하지만 대응하는 제2 데이터 기록이 제2 데이터베이스에 존재하지 않는 제1 데이터 기록들 중 일부 데이터 기록들을 삭제하는 것을 포함한다.
본 발명의 또 다른 양태에 따르면, 프로세서에 의한 실행을 위한 컴퓨터 판독가능 코드가 내장되어 있는 컴퓨터 판독가능 기록 매체가 제공되며, 상기 프로세서는 제2 데이터 기록들을 나타내는 정보를 수신하고 제1 데이터베이스에서의 제1 데이터 기록들을 제2 데이터베이스에서의 제2 데이터 기록들과 단방향으로 동기시켜 수정시키며 - 이 수정시키는 것은, 제1 데이터베이스에 존재하지만 대응하는 제2 데이터 기록이 제2 데이터베이스에 존재하지 않는 제1 데이터 기록들 중 일부 데이터 기록들을 삭제하는 것을 포함한다.
무선 인터페이스에 의해 접속되는 데이터베이스를 동기시키는 방법 및 장치는 다음의 상세한 설명 및 도면을 참조로 보다 잘 이해될 것이다.
도 1은 무선 통신 시스템과 포터블 전자 장치의 기능 블록도를 나타낸다.
도 2는 포터블 전자 장치 내에서 특정 내부 구성요소들의 블록도를 나타낸다.
도 3은 동기화 서버 내에서의 특정 내부 구성요소들의 블록도를 나타낸다.
도 4는 무선 인터페이스에 의해 접속되는 데이터베이스의 동기화 동안에 포터블 전자 장치와 통신 시스템 양쪽 모두에서 수행되는 기능들을 설명하는 순서도를 나타낸다.
도 5a 및 도 5b는 데이터베이스의 업데이트 동안에 포터블 전자 장치와 통신 시스템 양쪽 모두에서 수행되는 기능들을 설명하는 순서도를 나타낸다.
도 6은 데이터 기록이 포터블 전자 장치로부터 삭제되는 경우에 포터블 전자 장치와 통신 시스템 양쪽 모두에서 수행되는 기능들을 설명하는 순서도를 나타낸다.
도 7은 무선 인터페이스에 의해 접속되는 데이터베이스들의 특수 동기화 동안에 포터블 전자 장치와 통신 시스템 양쪽 모두에서 수행되는 기능들의 순서도를 나타낸다.
도 8은 데이터 기록이 통신 시스템으로부터 삭제되는 경우에 통신 시스템과 포터블 전자 장치 양쪽 모두에서 수행되는 기능들을 설명하는 순서도를 나타낸다.
도 9는 무선 인터페이스에 의해 접속되는 데이터베이스들의 제2 특수 동기화 동안에 통신 시스템과 포터블 전자 장치 양쪽 모두에서 수행되는 기능들의 순서도를 나타낸다.
도면 부호 20으로 일반적으로 표시된 무선 통신 시스템과 포터블 전자 장치(22)의 기능 블록도를 나타낸 도 1을 먼저 참조하여 본다. 무선 통신 시스템(20)은 도시된 바와 같이, 예시적인 포터블 전자 장치(22)를 포함한 포터블 전자 장치들과의 통신을 제공한다. 포터블 전자 장치(22)와 무선 통신 시스템(20)은 이들 사이에 무선 통신 채널을 통하여 통신들이 실시되도록 동작가능하다. 포터블 전자 장치(22)에서 발송한 데이터는 무선 통신 채널에 의해 무선 통신 시스템(20)에 전달된다. 이와 유사하게, 무선 통신 시스템(20)에서 발송한 데이터는 무선 통신 채널에 의해 무선 통신 시스템(20)으로부터 포터블 전자 장치(22)에 전달되며, 이로써, 포터블 전자 장치(22)에 데이터를 제공한다.
설명을 위하여, 통신 시스템이 도 1에 기능적으로 도시되어 있으며, 하나의 기지국(24)이 도시되어 있다. 기지국(24)은 기지국(24)과 포터블 전자 장치(22) 사 이에 통신이 실시될 수 있는 통신가능 구역(coverage area) 또는 셀(26)을 정의한다. 포터블 전자 장치(22)는 셀(26) 내에서 이동가능하며, 이 예에서는 설명되어 있지 않은 다른 셀들에 의해 정의되는 통신가능 구역으로 이동될 수 있는 것으로 이해할 것이다. 통신 시스템(20)은 기지국(24)과 동기화 서버(30)에 접속되는 중계 장치(28)를 포함한다. 중계 장치(28)와 동기화 서버(30)에 의해 제공되는 기능들은 동일한 장치에서 구현될 수 있음을 이해할 것이다. 동기화 서버(30)는 도시된 바와 같이, 관리 서버(32)에 접속되어 있다. 관리 서버(32)는 통신 시스템(20)에 관리 서비스를 제공하며, 예를 들어, 동기화 서버(30)를 거쳐 관리 제어를 제공한다.
동기화 서버(30)는 데이터베이스들(이들 중, 제1 데이터베이스(34), 제2 데이터베이스(36) 및 제3 데이터베이스(38)를 포함한 3개의 예시적인 데이터베이스 유형들이 도시되어 있음)에 기능적으로 연결되어 있다. 본 예의 데이터베이스는 확장성 생성 언어(XML; Extensible Mark-up Language) 포맷과 같은 텍스트 포맷으로 되어 있다. 제1, 제2 및 제3 데이터베이스(34, 36, 38)에 유지되어 있는 데이터는 복수의 데이터 기록을 포함하며, 각각의 데이터 기록은 데이터로 채워진 복수의 필드들을 포함한다. 채워져 있는 각각의 데이터 기록의 필드들 중 특정 필드들은 그 필드들이 포함되는 데이터 기록을 고유하게 식별하기에 충분한 주요 필드들이다.
포터블 전자 장치(22)(본 발명의 설명을 위하여 도 1에는 단지 특정한 기능 부분들만이 도시됨)는 통신 시스템(20)의 제1, 제2 및 제3 데이터베이스(34, 36, 38) 각각에 대응하는 복수의 데이터베이스(40, 42, 44)를 포함한다. 데이터베이스들(34, 36, 38) 및 데이터베이스들(40, 42, 44)은 통신 시스템(20)의 데이터베이 스(34, 36, 38)가 포터블 전자 장치(22)의 데이터베이스(40, 42, 44)와 일치하지 않도록 비대칭 방식으로 선택적으로 변경될 수 있다. 즉, 데이터베이스들(34, 36, 38, 40, 42, 44) 중 어느 것 또는 모든 것은 이들 필드를 채우는 데이터를 추가하거나 또는 삭제하거나 또는 변경함으로써 기록들을 추가하고 기록들을 삭제하며 기록들의 필드를 변경함에 의해 변경될 수 있다.
이하, 포터블 전자 장치(22) 내의 특정 내부 구성요소들의 블록도를 나타낸 도 2를 참조하여 본다. 포터블 전자 장치(22)는 포터블 전자 장치(22)로 하여금 통신 시스템(20)과의 동기화를 포함한 특정 기능들을 수행하도록 하는, 프로세서(46)에 의해 실행가능한 복수의 애플리케이션들을 포함하는 판독 전용 메모리(ROM; 48)에 접속된 프로세서(46)를 포함하는 마이크로컴퓨터에 기반을 둔다. 또한, 프로세서(46)는 포터블 전자 장치(22)의 여러 비휘발성 저장 기능에 책임이 있고 데이터베이스(40, 42, 44)가 유지되어 있는 랜덤 액세스 메모리 유닛(RAM; 50) 및 영구 저장 장치(52)에 접속된다. 프로세서(46)는 키보드와 같은 입력 장치(54)로부터의 입력을 수신한다. 프로세서(46)는 LCD 디스플레이와 같은 출력 장치(56)에 출력한다. 또한, 프로세서(46)는 내부 클록(58) 및 무선 장치(60)에 접속되고, 무선 장치는 뒤이어 안테나(61)에 접속된다. 무선 장치(60) 및 안테나(61)는 함께 무선 통신 채널을 통하여 무선 통신 시스템(20)에 접속하는데 이용된다. 따라서, 포터블 전자 장치(22)는 무선 장치(60) 및 안테나(61)를 통하여 통신 시스템(20)으로부터 그리고 통신 시스템(20)에 전달되는 데이터를 포함한 통신 신호들을 수신하고 송신하도록 동작가능하다.
여기에 설명된 기능들은 어떠한 적절한 방식으로 수행될 수 있는 것임을 이해할 것이다. 본 예에서, 기능들은 동기화 애플리케이션에서 프로세서(46)에 의해 실행가능한 알고리즘에 의해 수행된다. 예를 들어, 포터블 전자 장치(22)의 프로세서(46)는 영구 저장 장치(52)의 데이터베이스들(40, 42, 44) 중 하나 이상의 데이터베이스로부터 데이터를 검색하여 해시를 발생시켜 해시 함수를 수행하도록 동작하여, 이에 의해 액세스된 데이터를 쇼트 다이제스트 (short-digest)형태로 둔다. 프로세서(46)에 의해 수행되는 해시 함수들은 그 외 해시 함수 계산들 뿐만 아니라 예를 들어, 체크섬(check sum)의 계산을 포함한다. 프로세서(46)는 포터블 전자 장치(22)로부터 무선 통신 채널을 통하여 무선 통신 시스템(20)으로의 송신을 위하여 발생된 해시를 무선 장치(60)에 제공하도록 추가로 동작가능하다. 특히, 프로세서(46)는 데이터베이스들(40, 42, 44)을 나타내는 정보를 포함하는 데이터베이스 해시를 발생시키도록 동작가능하다. 데이터베이스 해시 발생은 포터블 전자 장치(22)에서 이벤트의 검출에 의해 또는 입력 장치(54)로부터의 입력에 의해 또는 통신 시스템(20)으로부터 수신된 신호에 의해 트리거링된다.
포터블 전자 장치(22)의 마이크로컴퓨터는 통신 시스템(20)으로부터의 통신을 수신하도록 동작가능하다. 예를 들어, 마이크로컴퓨터는 기록 해시 정보에 대한 요청을 수신하고, 이에 응답하여 데이터베이스들(40, 42, 44)들 중 하나 이상의 데이터베이스로부터 데이터를 검색하고 그 데이터 상에 해시 함수를 수행하여 이에 의해 기록 해시를 발생시키고 그 기록 해시를 통신 시스템(20)에 송신함으로써 기록 해시 정보를 제공하도록 동작가능하다. 마이크로컴퓨터는 데이터 기록에 대한 요청을 수신하도록 추가로 동작가능하며, 이러한 요청에 응답하여, 데이터베이스들(40, 42, 44) 중 하나 이상의 데이터베이스로부터 데이터 기록이 검색되어 통신 시스템(20)에 송신된다. 또한, 마이크로컴퓨터는 통신 시스템(20)으로부터 송신되는 데이터를 수신하도록, 그리고, 데이터베이스들(40, 42, 44) 중 하나 이상의 데이터베이스에 데이터를 추가하거나 영구 저장 장치(52)에 유지되어 있는 데이터베이스들(40, 42, 44) 중 하나 이상의 데이터베이스에 데이터를 오버라이트함으로써 데이터를 기록하도록 동작가능하다. 마이크로컴퓨터는 또한 예를 들어, 유저 입력 또는 통신 시스템(20)으로부터의 지시의 수신에 응답하여 데이터베이스들(40, 42, 44) 중 하나 이상의 데이터베이스로부터 데이터를 삭제하도록 동작가능하다. 마이크로컴퓨터는 예를 들어, 유저 입력으로부터 수신된 삭제 데이터 기록 커맨드에 따라 삭제하기 위한 데이터 기록들의 갯수를 판정하고 이 갯수와 임계 갯수(threshold number)를 비교하도록 추가로 동작가능하다. 이러한 비교의 결과에 기초하여, 마이크로컴퓨터는 각각의 삭제된 데이터 기록마다 통신 시스템(20)에 개개의 삭제 데이터 기록 커맨드를 송신하거나 또는 후술할 바와 같이 특수한 동기화를 트리거링하도록 동작가능하다.
이하, 동기화 서버(30) 내에서의 특정 내부 구성요소의 블록도를 나타내는 도 3을 참조하여 본다. 포터블 전자 장치(22)와 유사하게, 동기화 서버(30)는 프로세서(62)에 의해 실행가능한 애플리케이션들을 포함하며 동기화 서버(30)로 하여금 포터블 전자 장치(22)와의 동기화를 포함한 특정 기능들을 수행하도록 하는 판독 전용 메모리(ROM; 64)에 접속된 프로세서(62)를 포함한다. 프로세서(62)는 또한 동 기화 서버(30)의 여러 비휘발성 저장 기능들에 책임이 있는 랜덤 액세스 메모리 유닛(RAM; 66) 및 영구 저장 장치(68)에 접속된다. 프로세서(62)는 데이터베이스(34, 36, 38) 및 중계 장치(28)에 접속되며, 중계 장치는 무선 통신 채널을 통한 포터블 전자 장치(22)에의 접속을 위하여 뒤이어 기지국(24)에 접속된다. 따라서, 동기화 서버(30)는 중계 장치(28) 및 기지국(24)을 통하여 포터블 전자 장치(22)로부터 그리고 포터블 전자 장치(22)에 전달되는 데이터를 포함한 통신 신호들을 수신하고 송신하도록 동작가능하다.
또한, 여기에 설명된 기능들은 어떠한 적절한 방식으로 수행될 수 있는 것임을 이해할 것이다. 본 예에서는, 기능들이 프로세서(62)에 의해 실행가능한 알고리즘에 의해 수행된다. 예를 들어, 동기화 서버(30)의 프로세서(62)는 데이터베이스(34, 36, 38) 중 하나 이상의 데이터베이스로부터 데이터를 검색하고 해시를 발생시켜 해시 함수를 수행하도록 동작가능하고, 이에 의해 액세스된 데이터를 쇼트 다이제스트(short-digest) 형태로 둔다. 특히, 프로세서(62)는 데이터베이스(34, 36, 38)를 나타내는 정보를 포함한 데이터베이스 해시를 발생시키도록 동작가능하다.
동기화 서버(30)는 동기화와 관련된 포터블 전자 장치(22)에 의해 발생된 통신을 수신하도록 동작가능하다. 예를 들어, 동기화 서버(30)는 포터블 전자 장치(22)에 의해 발생된 데이터베이스 해시를 수신하고, 이에 응답하여 이 데이터베이스 해시로부터의 데이터베이스 해시 정보와, 동기화 서버(30)에 의해 발생된 국부적으로 발생된 데이터베이스 해시로부터의 데이터베이스 해시 정보를 비교하도록 동작가능하다. 동기화 서버(30)는 또한 포터블 전자 장치(22)에 의해 발생된 데이터베이스 해시로부터의 데이터베이스 해시 정보와, 국부적으로 발생된 데이터베이스 해시로부터의 데이터베이스 해시 정보와의 비교의 결과에 응답하여 그리고 그 결과에 기초하여 포터블 전자 장치(22)로부터의 기록 해시 정보를 요청하도록 동작가능하다. 기록 해시 정보에 대한 요청은 중계기(28)에 제공되며, 기지국(24)을 통하여 포터블 전자 장치(22)에 송신된다. 동기화 서버(30)는 포터블 전자 장치(22)에 의해 발생된 기록 해시 정보를 수신하고, 이에 응답하여 이러한 기록 해시 정보와, 동기화 서버(30)에 의해 발생된 국부적으로 발생된 기록 해시로부터의 기록 해시 정보를 비교하도록 동작가능하다.
동기화 서버(30)는 포터블 전자 장치(22)에 의해 발생된 기록 해시로부터의 기록 해시 정보와, 국부적으로 발생된 기록 해시로부터의 기록 해시 정보와의 비교의 결과에 응답하여 그리고 그 결과에 기초하여 포터블 전자 장치(22)로부터 데이터 기록을 요청하도록 추가로 동작가능하다. 데이터 기록에 대한 요청은 중계기(28)에 제공되며, 기지국(24)을 통하여 포터블 전자 장치(22)에 송신된다. 또한, 동기화 서버(30)는 포터블 전자 장치(22)로부터 (기지국(24) 및 중계 장치(28)를 통하여) 송신되는 데이터를 수신하도록 동작가능하며, 데이터베이스(34, 36, 38) 중 하나 이상의 데이터베이스에 데이터를 추가하거나 또는 데이터베이스(34, 36, 38) 중 하나 이상의 데이터베이스에 데이터를 오버라이트함으로써 데이터를 기록하도록 동작가능하다. 동기화 서버(30)는 또한 예를 들어, 포터블 전자 장치(22)로부터의 지시 또는 입력의 수신에 응답하여 데이터베이스(34, 36, 38) 중 하나 이상의 데이터베이스으로부터 데이터를 삭제하도록 동작가능하다. 동기화 서버(30)는 예를 들어, 입력 장치로부터 수신된 삭제 데이터 기록 커맨드에 따라 삭제하기 위한 데이터 기록들의 갯수를 판정하고, 그 갯수를 임계 갯수와 비교하도록 추가로 동작가능하다. 이러한 비교 결과에 기초하여, 동기화 서버(30)는 각각의 삭제된 데이터 기록 마다 포터블 전자 장치(22)에 개개의 삭제 데이터 기록 커맨드를 송신하거나 또는 후술할 바와 같이 제2 특수 동기화를 트리거링하도록 동작가능하다.
또한, 동기화 서버(30)는 영구 저장 장치(68)에 동기화 이력 데이터를 저장하며, 이에 의해 동기화 서버(30)에 접속된 데이터베이스(34, 36, 38)와 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)에 이루어진 변경 목록을 유지한다. 동기화 서버(30)는 동기화 동작 동안에 동기화 이력 데이터를 액세스하여, 이전에 동기화된 데이터를 결정함으로써 후속하는 동기화에서 통신 시스템(20)과 포터블 전자 장치(22) 사이에 전달되는 데이터를 감소시킨다.
이하, 본 발명의 일 실시예에 따라, 무선 인터페이스에 의해 접속된 데이터베이스의 동기화 동안에 포터블 전자 장치(22)와 통신 시스템(20) 양쪽 모두에서 수행되는 기능들을 설명하는 순서도를 나타내는 도 4를 참조하여 본다. 이러한 단계들을 수행하기 위한 소프트웨어 코딩은 당해 기술 분야의 당업자의 범위 내에 있다. 먼저, 포터블 전자 장치(22)는 단계 100에서, 예를 들어, 입력 장치(54) 상의 유저 입력으로부터 동기화 트리거를 수신한다. 다른 방법으로, 포터블 전자 장치(22)는 통신 시스템(20)로부터 동기화 트리거를 수신한다. 동기화 트리거의 수신에 응답하여, 단계 102에서 데이터베이스들(40, 42, 44)로부터 데이터를 검색하고 단계 104에서 프로세서(46)는 각각의 데이터베이스(40, 42, 44)에 대한 데이터베이스 해시를 발생시킨다. 각각의 데이터베이스 해시의 발생 후에, 단계 106에서 각각의 데이터베이스 해시가 무선 통신 채널을 통하여 통신 시스템(20)에 초기화 커맨드와 함께 송신된다. 초기화 커맨드는 동기화 서버(30)에서의 동기화 프로세스를 트리거링한다.
단계 108에서, 통신 시스템(20)은 기지국(24)에서의 수신에 의해 각각의 데이터베이스 해시와 함께 초기화 커맨드를 수신하고 데이터베이스 해시들을 동기화 서버(30) 상에 전달한다. 포터블 전자 장치(22)로부터의 각각의 데이터베이스 해시의 수신에 응답하여, 단계 110에서, 데이터베이스(34, 36, 38)로부터 데이터를 검색하고, 단계 112에서, 동기화 서버(30)의 프로세서(62)는 각각의 개개 데이터베이스(여기서는, 국부적으로 발생된 데이터베이스 해시라 함)에 대한 데이터베이스 해시를 발생시킨다. 각각의 국부적으로 발생된 데이터베이스 해시의 발생 후에, 단계 114에서, 포터블 전자 장치(22)로부터 수신된 각각의 데이터베이스 해시의 해시 정보가 대응하는 국부적으로 발생된 데이터베이스 해시의 해시 정보와 비교된다. 해시 정보의 비교가, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)이 통신 시스템(20)의 각각의 데이터베이스(34, 36, 38)와 불일치하지 않다고 나타내면, 단계 116에서 동기화 프로세스가 종료한다. 그러나, 해시 정보의 비교가, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44) 중 어느 것이 통신 시스템(20)의 각각의 데이터베이스(34, 36, 38)와 불일치한다고 나타내면, 단계 118에서, 데이터베이스들 중 적어도 하나가 업데이트되고 기록 해시 정보에 대한 요청이 동기화 서버(30) 에 의해 발생된다. 기록 해시 정보에 대한 요청은 데이터 기록과 관련된 기록 해시 정보에 대한 요청이다. 기록 해시 정보는 통신 시스템(20)의 대응하는 데이터베이스와 불일치한다고 판정되는, 포터블 전자 장치(22)의 특정 데이터베이스의 각각의 데이터 기록마다 요청된다. 기록 해시 정보에 대한 요청의 발생 후, 단계 120에서, 이 요청이 포터블 전자 장치(22)에 송신된다.
단계 122에서, 기록 해시 정보에 대한 요청을 포터블 전자 장치(22)에서 수신하면, 단계 124에서, 기록 해시 정보에 대한 요청에 따라 데이터베이스들(40, 42, 44) 중 하나 이상의 데이터베이스로부터 데이터를 검색한다. 그 후, 단계 126에서, 기록 해시가 각각의 데이터베이스의 각각의 데이터 기록마다 발생하고, 단계 128에서, 각각의 기록 해시가 무선 통신 채널을 통하여 통신 시스템(20)에 송신된다.
단계 130에서, 기록 해시 정보는 통신 시스템(20)에서 수신되어 동기화 서버(30)로 전달된다. 요청된 기록 해시 정보의 수신에 응답하여, 단계 132에서, 대응하는 데이터베이스(34, 36, 38) 중 하나 이상의 데이터베이스로부터 데이터를 검색하고, 단계 134에서, 기록 해시(국부적으로 발생된 기록 해시라 함)를 각각의 데이터베이스의 각각의 대응하는 데이터 기록마다 발생시킨다. 각각의 국부적으로 발생된 기록 해시의 발생 후, 단계 136에서, 포터블 전자 장치(22)로부터 수신되는 기록 해시 정보는 각각의 국부적으로 발생된 기록 해시로부터의 기록 해시 정보와 비교되며, 기록 해시 정보가 나타내는 데이터가 변경되었는지에 대한 판정이 이루어진다. 이 데이터가 변경되지 않았다고 판정되면, 단계 138에서, 데이터가 변경되 지 않은 특정 데이터 기록에 대하여 동기화 프로세스는 종료한다. 그러나, 이 데이터가 변경되었다고 판정되면, 단계 136에서의 비교는 또한, 만약 있다면, 통신 시스템(20)에서의 어떤 추가적인 또는 변경된 데이터 기록이 포터블 전자 장치(22)에 반영되지 않았는지, 그리고, 만약 있다면, 포터블 전자 장치(22)의 어떤 추가적인 또는 변경된 데이터 기록이 통신 시스템(20)에 반영되지 않았는지를 판정한다. 따라서, 단계 136에서 데이터가 변경되었다고 판정되면, 불일치한 것으로 판정된, 통신 시스템(20)에서의 데이터베이스 또는 포터블 전자 장치(22)에서의 데이터베이스 또는 통신 시스템(20)과 포터블 전자 장치(22) 양쪽 모두의 데이터베이스를 업데이트함으로써 데이터베이스를 동기시킨다. 불일치의 판정에서, 모순 해결 정책(conflict resolution policy)이 실행되어, 이에 의해 불일치된 기록들이 어떻게 업데이트되어야 하는지를(즉, 포터블 전자 장치(22) 상의 데이터베이스 기록을 동기화 서버(30)의 데이터베이스 기록으로 업데이트해야 하는지, 또는 동기화 서버(30)의 데이터베이스 기록을 포터블 전자 장치(22) 상의 데이터베이스 기록으로 업데이터해야 하는지 또는 동기화 서버(30)의 데이터베이스 기록과 포터블 전자 장치(22) 상의 데이터베이스 기록 양쪽 모두를 업데이트해야 하는지) 결정한다.
이하, 도 5a를 참조하여 보면, 통신 시스템(20)의 데이터베이스(34, 36, 38)의 업데이트 동안에 포터블 전자 장치(22)와 통신 시스템(20) 양쪽 모두에서 수행되는 기능들을 설명하는 순서도가 도시되어 있다. 또한, 이러한 단계들을 수행하기 위한 소프트웨어 코딩은 당해 기술 분야의 당업자의 범위 내에 있다. 단계 136에서, 포터블 전자 장치(22)에서 추가적인 데이터 기록이나 또는 데이터 기록에 대한 변경들이 통신 시스템(20)에 아직 반영되지 않은 것으로 판정되면, 도시된 바와 같이 단계 140A에서, 페치 요청이 동기화 서버(30)에 의해 발생된다. 페치 요청의 발생 후, 단계 142에서, 이 페치 요청은 포터블 전자 장치(22)에 송신되어, 이에 의해, 포터블 전자 장치(22) 상에서 추가되고 변경되었지만 동기화 서버(30) 상에서 업데이트되지 않았던 데이터 기록들을 요청한다.
그 후, 단계 144에서, 페치 요청이 포터블 전자 장치(22)에서 수신되고, 단계 146에서, 이에 응답하여, 요청된 데이터 기록이 데이터베이스들(40, 42, 44)로부터 검색된다. 데이터 기록들을 검색한 후, 단계 148에서, 검색된 데이터 기록들은 통신 시스템(20)에 송신된다.
그 후, 단계 150에서, 요청된 데이터 기록들은 통신 시스템(20)에서 수신되어 동기화 서버(30)에 전달된다. 요청된 데이터 기록의 수신에 응답하여, 통신 시스템(20)의 데이터베이스(34, 36, 38)의 각각의 것들이, 신규 데이터 기록들을 기록하거나 또는 각각의 데이터베이스(34, 36, 38)에서 이전에 저장된 데이터 기록들을 업데이트하도록 오버라이트함으로써 업데이트된다. 포터블 전자 장치(22)의 한 데이터베이스로부터 검색되고 통신 장치(20)에 송신된 데이터 기록들은 통신 시스템(20)의 대응하는 데이터베이스 상에 기록되거나 또는 오버라이트됨을 이해할 것이다.
이하, 도 5b를 참조하여 보면, 포터블 전자 장치(22)에서의 데이터베이스들(40, 42, 44)의 업데이트 동안에 포터블 전자 장치(22)와 통신 시스템(20) 양쪽 모두에 수행되는 기능들을 설명하는 순서도가 도시되어 있다. 또한, 이러한 단계들 을 수행하는 소프트웨어 코딩은 당해 기술 분야의 당업자의 범위 내에 있다.
단계 136에서, 통신 시스템(20)에서 추가적인 데이터 기록들 또는 데이터 기록들에 대한 변경들이 포터블 전자 장치(22)에 반영되지 않은 것으로 판정되면, 단계 140B에서, 동기화 서버(30) 상에서 추가되거나 변경되었지만 포터블 전자 장치(22) 상에 업데이트되지 않았던 데이터 기록들이 검색된다. 그 후, 단계 154에서, 이들 데이터 기록이 포터블 전자 장치(22)에 송신된다.
단계 156에서, 포터블 전자 장치(22)가 데이터 기록들을 수신하면, 단계 158에서, 신규 데이터 기록을 기록하거나 또는 각각의 데이터베이스(40, 42, 44)에서의 이전에 저장된 데이터 기록을 업데이트하도록 오버라이트함으로써 데이터 기록들을 업데이트한다. 또한, 통신 시스템(20)의 한 데이터베이스로부터 검색되어, 포터블 전자 장치(22)에 송신되는 데이터 기록들은 포터블 전자 장치(22)의 대응하는 데이터베이스 상에 기록되거나 오버라이트됨을 이해할 것이다.
상술한 설명으로부터, 단계 154에서, 통신 시스템(20)의 데이터베이스(34, 36, 38)에 존재하지만 포터블 전자 장치(22)에서의 데이터베이스들(40, 42, 44)에 존재하지 않는 것으로 판정된 데이터 기록들은 포터블 전자 장치(22)에 송신되고, 포터블 전자 장치(22)의 각각의 데이터베이스에 저장됨을 이해할 것이다. 유사하게, 단계 148에서, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)에 존재하지만 통신 시스템(20)의 데이터베이스(34, 36, 38)에 존재하지 않는 것으로 판정된 데이터 기록들은 통신 시스템(20)에 송신되고, 단계 152에서, 통신 시스템(20)의 각각의 데이터베이스(34, 36, 38)에 저장된다.
이하, 데이터 기록들이 포터블 전자 장치(22)로부터 삭제되는 경우에 포터블 전자 장치(22)와 통신 시스템(20) 양쪽 모두에서 수행되는 기능들을 설명하는 순서도를 나타내는 도 6을 참조하여 본다. 이러한 단계들을 수행하기 위한 소프트웨어 코딩은 당해 기술 분야의 당업자의 범위 내에 있는 것이다. 먼저, 단계 160에서, 포터블 전자 장치(22)가 입력 장치(54) 상의 유저 입력으로부터 삭제 데이터 기록 커맨드를 수신한다. 삭제 데이터 기록 커맨드의 수신 후, 단계 162에서, 프로세서(46)는 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록의 갯수를 판정한다. 즉, 프로세서(46)는 삭제되어야 할 데이터 기록의 갯수를 판정한다. 다음, 단계 164에서, 프로세서(46)는 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록의 갯수와 미리 정해진 임계값을 비교한다. 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록의 갯수가 임계값보다 작은 경우, 단계 166에서, 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록이, 그 데이터 기록들이 속해있는 데이터베이스(또는 데이터베이스들)(40, 42, 44)로부터 삭제되고, 단계 168에서, 각각의 삭제된 데이터 기록마다 삭제 데이터 기록 표시가 통신 시스템(20)에 송신된다. 따라서, 데이터베이스들(40, 42, 44)로부터 삭제된 각각의 데이터 기록마다, 대응하는 삭제 데이터 기록 표시가 통신 시스템(20)에 송신된다.
단계 170에서, 통신 시스템(20)은 삭제 데이터 기록 표시를 수신하고, 단계 172에서, 각각의 데이터베이스(34, 36, 38)로부터 각각의 데이터 기록을 삭제한다.
한편, 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록의 갯수가 임계값보다 큰 경우에, 단계 174에서, 삭제 데이터 기록 커맨드가 관련되어 있는 데이 터 기록이 그 데이터 기록이 속해있는 데이터베이스(데이터베이스들)(40, 42, 44)로부터 삭제되고, 단계 176에서, 포터블 전자 장치(22)는 통신 시스템(20)의 데이터베이스(34, 36, 38)가 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)를 미러링하도록 업데이트되는 특수 동기화 프로세스를 트리거링한다.
이하, 무선 인터페이스에 의해 접속되는 데이터베이스의 특수 동기화 동안에, 포터블 전자 장치(22)와 통신 시스템(20) 양쪽 모두에서 수행되는 기능들을 설명하기 위해 도 7을 참조하여 본다. 도 7의 특수 동기화와 관련되어 설명되어 있는 많은 단계들은 도 4의 동기화와 관련되어 설명되어 있는 단계들과 유사함을 이해할 것이다. 따라서, 가능한 경우, 도 7의 특수 동기화 단계들에서 수행되는 유사한 단계들을 언급함에 있어서 도 4의 단계들을 설명하는데 이용되는 도면부호에 100만큼 더한다. 또한, 도 7에 도시되고 여기서 설명되는 단계들을 수행하는 소프트웨어 코딩은 당해 기술 분야의 당업자의 범위 내에 있는 것이다.
먼저, 단계 200에서, 포터블 전자 장치(22)는 특수 동기화 트리거를 수신한다. 특수 동기화 트리거의 수신에 응답하여, 단계 202에서, 데이터베이스들(40, 42, 44)로부터 데이터를 검색하고, 단계 204에서, 프로세서(46)는 각각의 데이터베이스(40, 42, 44)에 대한 데이터베이스 해시를 발생시킨다. 각각의 데이터베이스 해시의 발생 후, 단계 206에서, 각각의 데이터베이스 해시는 무선 통신 채널을 통하여, 초기화 커맨드와 함께 통신 시스템(20)에 송신된다. 초기화 커맨드는 동기화 서버(30)에서 특수 동기화 프로세스를 개시한다.
단계 208에서, 통신 시스템(20)은 기지국(24)에서의 수신에 의해 각각의 데 이터베이스 해시와 함께 초기화 커맨드를 수신하고 데이터베이스 해시들을 동기화 서버(30) 상에 전달한다. 포터블 전자 장치(22)로부터의 각각의 데이터베이스 해시의 수신에 응답하여, 단계 210에서, 데이터베이스(34, 36, 38)로부터 데이터를 검색하고, 단계 212에서, 동기화 서버(30)의 프로세서(62)가 각각의 데이터베이스에 대한 데이터베이스 해시(여기서는 국부적으로 발생된 데이터베이스 해시라 함)를 발생시킨다. 각각의 국부적으로 발생된 데이터베이스 해시의 발생 후, 단계 214에서, 포터블 전자 장치(22)로부터 수신된 각각의 데이터베이스 해시의 해시 정보가 대응하는 국부적으로 발생된 데이터베이스 해시의 해시 정보와 비교된다. 해시 정보의 비교가, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)가 통신 시스템(20)의 각각의 데이터베이스(34, 36, 38)와 불일치하지 않는다고 나타내면, 단계 216에서, 동기화 프로세스는 종료한다. 그러나, 위에 나타낸 바와 같이, 특수 동기화가 포터블 전자 장치(22)에서의 데이터베이스들(40, 42, 44)에 대한 큰 변경의 결과로서 트리거링되었다. 보다 자세하게는, 특수 동기화가 포터블 전자 장치(22)에서의 많은 수의 데이터 기록들의 삭제의 결과로서 트리거링되었다. 따라서, 이러한 경우에는, 단계 214에서의 해시 정보의 비교는 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44) 중 적어도 하나와 통신 시스템(20)의 데이터베이스(34, 36, 38) 간에 불일치라는 판정을 가져온다. 다음, 단계 218에서, 기록 해시 정보에 대한 요청이 동기화 서버(30)에 의해 발생된다. 기록 해시 정보에 대한 요청은 데이터 기록과 관련되어 있는 해시 정보에 대한 요청이다. 기록 해시 정보는 통신 시스템(20)의 대응하는 데이터베이스와 불일치하는 것으로 판정되는, 포터블 전자 장 치(22)의 특정 데이터베이스의 각각의 데이터 기록마다 요청된다. 기록 해시 정보에 대한 요청의 발생 후, 단계 220에서, 이 요청은 포터블 전자 장치(22)에 송신된다.
단계 222에서, 포터블 전자 장치(22)에서 기록 해시 정보에 대한 요청의 수신시, 단계 224에서, 기록 해시 정보에 대한 요청에 따라 데이터베이스들(40, 42, 44) 중 하나 이상의 데이터베이스로부터 데이터를 검색한다. 그 후, 단계 226에서, 각각의 데이터베이스의 각각의 데이터 기록마다 기록 해시를 발생시키고 단계 228에서, 각각의 기록 해시를 무선 통신 채널을 통하여 통신 시스템(20)에 송신한다.
단계 230에서, 기록 해시 정보가 통신 시스템(20)에서 수신되어, 동기화 서버(30)로 전달된다. 요청된 기록 해시 정보의 수신에 응답하여, 단계 232에서, 대응하는 데이터베이스(34, 36, 38) 중 하나 이상의 데이터베이스로부터 데이터를 검색하고 단계 234에서, 각각의 데이터베이스의 각각의 데이터 기록마다 기록 해시(국부적으로 발생된 기록 해시라 함)를 발생시킨다. 각각의 국부적으로 발생된 기록 해시의 발생 후, 단계 236에서, 포터블 전자 장치(22)로부터 수신되는 기록 해시 정보는 각각의 국부적으로 발생된 기록 해시로부터의 기록 해시 정보와 비교되고, 기록 해시 정보가 나타내는 데이터가 변경되었는지에 대한 판정이 이루어진다. 따라서, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44) 중 한 데이터베이스로부터의 데이터 기록들로부터 발생되는 기록 해시 정보는 통신 시스템(20)의 대응하는 데이터베이스(34, 36, 38)로부터의 데이터 기록들로부터 발생되는 대응하는 기록 해시 정보와 비교된다. 최종 동기화 이래 특정 데이터 기록에 대하여 어떠한 변경도 이루어지지 않았다고 판정되면, 단계 238에서, 데이터가 변경되지 않았던 특정 데이터 기록에 대하여 동기화 프로세스가 종료한다.
따라서, 단계 236에서, 프로세서(62)는 어떤 데이터 기록이 변경되었는지, 그리고, 만약 있다면, 통신 시스템(20)에서의 어떤 데이터 기록이 포터블 전자 장치(22)에 존재하지 않는지를 판정한다. 단계 236에서의 비교는 통신 시스템(20)에 여전히 존재하고 있는, 포터블 전자 장치(22)에서 삭제된 데이터 기록들의 판정을 가져온다. 또한, 프로세서(62)는 단계 236에서의 비교로부터, 만약 있다면, 포터블 전자 장치(22)에서의 어떤 추가적인 또는 변경된 데이터 기록들이 통신 시스템(20)에 반영되지 않았는지를 판정한다. 데이터가 단계 236에서 변경되었다고 판정되면, 데이터베이스가, 불일치되는 것으로 판정된 통신 시스템(20)에서의 데이터베이스(34, 36, 38)만을 업데이트함으로써 동기된다. 따라서, 통신 시스템(20)에서의 데이터베이스(34, 36, 38)는 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)를 일치하도록 업데이트시킨다.
데이터베이스(34, 36, 38)를 업데이트하기 위하여, 단계 239에서, 데이터베이스(34, 36, 38) 중 어느 것에 존재하지만 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)에 존재하지 않는 것으로 판정된 데이터 기록들을 삭제한다. 따라서, 특수 동기화가 트리거링되도록 하는 포터블 전자 장치(22)로부터 삭제된 모든 데이터 기록들은 데이터베이스(34, 36, 38)로부터 삭제된다. 이러한 특수 동기화는, 통신 시스템(20) 측상의 데이터베이스(34, 36, 38)에 존재하지만 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)에 존재하지 않은 데이터 기록들이 포터블 전자 장치(22)에 송신되지 않는다는 점에서, 도 4, 도 5a 및 도 5b를 참조하여 위에서 설명된 정규의 동기화와 다르다는 것을 이해할 것이다. 그 대신에, 이들 데이터 기록들은 통신 시스템의 각각의 데이터베이스로부터 삭제된다.
단계 236에서, 포터블 전자 장치(22)에서의 추가적인 데이터 기록이나 또는 데이터 기록에 대한 변경들이 통신 시스템(20) 상에 아직 반영되지 않은 것으로 판정되면, 도시된 바와 같이, 단계 240에서, 페치 요청이 동기화 서버(30)에 의해 발생된다. 페치 요청의 발생 후에, 단계 242에서 페치 요청은 포터블 전자 장치(22)에 송신되고, 이에 의해 포터블 전자 장치(22) 상의 추가되고 변경되었지만 동기화 서버(30) 상에서 업데이트되지 않았던 데이터 기록들이 요청된다.
그 후, 단계 244에서, 페치 요청이 포터블 전자 장치(22)에서 수신되고, 이에 응답하여, 단계 246에서, 요청된 데이터 기록들이 데이터베이스들(40, 42, 44)로부터 검색된다. 데이터 기록들을 검색한 후에, 단계 248에서, 그 검색된 데이터 기록들이 통신 시스템(20)에 송신된다.
그 후, 단계 250에서, 요청된 데이터 기록들은 통신 시스템(20)에서 수신되어, 동기화 서버(30)에 전달된다. 요청된 데이터 기록의 수신에 응답하여, 단계 252에서, 통신 시스템(20)의 데이터베이스(34, 36, 38)의 각각의 것들은 신규 데이터 기록들을 기록하거나 또는 각각의 데이터베이스(34, 36, 38)에서의 이전에 저장된 데이터 기록들을 업데이트하도록 오버라이트함으로써 업데이트된다. 포터블 전자 장치(22)의 한 데이터베이스로부터 검색되고 통신 장치(20)에 송신되는 데이터 기록들은 통신 시스템(20)의 대응하는 데이터베이스 상에 기록되거나 또는 오버라 이트됨을 이해할 것이다. 또한, 이 특수 동기화는, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)에서의 데이터 기록들을 반영하도록 통신 시스템(20) 상의 데이터베이스(34, 36, 38)에서 데이터 기록들을 업데이트한다는 점에서 도 4, 도 5a 및 도 5b를 참조하여 위에서 설명된 정규의 동기화와 다르다는 것을 이해할 것이다. 그러나, 포터블 전자 장치(22)의 데이터 기록들은 변경되지 않는다. 불일치한 것으로 판정되는 각각의 데이터베이스의 각각의 데이터 기록의 전체 비교 후에, 특수 동기화가 종료한다.
이하, 데이터 기록들이 통신 시스템으로부터 삭제되는 경우에 통신 시스템(20)과 포터블 전자 장치(22) 양쪽 모두에서 수행되는 기능들을 설명하는 순서도를 나타내는 도 8을 참조하여 본다. 이러한 단계들을 수행하기 위한 소프트웨어 코딩은 당해 기술 분야의 당업자의 범위 내에 있는 것이다. 먼저, 단계 280에서, 통신 시스템(20)은 삭제 데이터 기록 커맨드를 수신한다. 삭제 데이터 기록 커맨드를 수신한 후, 단계 282에서, 프로세서(62)는 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록들의 갯수를 판정한다. 즉, 프로세서(62)는 삭제될 데이터 기록의 갯수를 판정한다. 다음, 단계 284에서, 프로세서(62)는 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록의 갯수와 미리 정해진 임계값을 비교한다. 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록의 갯수가 임계값보다 작은 경우, 단계 286에서, 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록을 그 데이터 기록들이 속해있는 데이터베이스(또는 데이터베이스들)(34, 36, 38)로부터 삭제하고, 단계 288에서, 각각의 삭제된 데이터 기록마다 삭제 데이터 기록 표시를 포터블 전 자 장치(22)에 송신한다. 따라서, 데이터베이스(34, 36, 38)로부터 삭제된 각각의 데이터 기록 마다, 대응하는 삭제 데이터 기록 표시가 포터블 전자 장치(22)에 송신된다.
단계 290에서, 포터블 전자 장치는 삭제 데이터 기록 표시를 수신하고 단계 292에서, 각각의 데이터베이스(40, 42, 44)로부터 각각의 데이터 기록들을 삭제한다.
한편, 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록의 갯수가 임계값보다 큰 경우에, 단계 294에서, 삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록들을 그 데이터 기록들이 속해있는 데이터베이스(또는 데이터베이스들)(34, 36, 38)로부터 삭제하고, 단계 296에서, 통신 시스템(20)은 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)이 통신 시스템(20)의 데이터베이스(34, 36, 38)를 미러링하도록 업데이트되는 제2 특수 동기화 프로세스를 트리거링한다. 단계 298에서, 통신 시스템(20)은 포터블 전자 장치(22)에 제2 특수 동기화 트리거를 송신한다.
이하, 무선 인터페이스에 의해 접속되는 데이터베이스의 제2 특수 동기화 동안에 통신 시스템(20)과 포터블 전자 장치(22) 양쪽 모두에서 수행되는 기능들을 설명하기 위하여 도 9를 참조하여 본다. 도 9의 특수 동기화와 관련되어 설명되어 있는 많은 단계들은 도 7의 특수 동기화와 관련되어 설명되어 있는 단계들과 유사함을 이해할 것이다. 따라서, 가능한 경우, 도 9의 특수 동기화 단계들에서 수행되는 유사한 단계들을 언급함에 있어서 도 7의 단계들을 설명하는데 이용되는 도면부 호에 100만큼 더한다. 또한, 도 9에 도시되고 여기서 설명되는 단계들을 수행하는 소프트웨어 코딩은 당해 기술 분야의 당업자의 범위 내에 있는 것이다.
먼저, 단계 300에서, 포터블 전자 장치(22)는 제2 특수 동기화 트리거를 수신한다. 제2 특수 동기화 트리거의 수신에 응답하여, 단계 302에서, 데이터베이스들(40, 42, 44)로부터 데이터를 검색하고, 단계 304에서, 프로세서(46)는 각각의 데이터베이스(40, 42, 44)에 대한 데이터베이스 해시를 발생시킨다. 각각의 데이터베이스 해시의 발생 후에, 단계 306에서, 각각의 데이터베이스 해시는 무선 통신 채널을 통하여 통신 시스템(20)에 송신된다.
단계 308에서, 통신 시스템(20)은 기지국(24)에서의 수신에 의해 각각의 데이터베이스 해시를 수신하여 그 데이터베이스 해시를 동기화 서버(30) 상에 전달한다. 포터블 전자 장치(22)로부터의 각각의 데이터베이스 해시의 수신에 응답하여, 단계 310에서, 데이터베이스(34, 36, 38)로부터 데이터를 검색하고, 단계 312에서, 동기화 서버(30)의 프로세서(62)는 각각의 개개 데이터베이스에 대한 데이터베이스 해시(여기서는 국부적으로 발생된 데이터베이스 해시라 함)를 발생시킨다. 각각의 국부적으로 발생된 데이터베이스 해시의 발생 후에, 단계 314에서, 포터블 전자 장치(22)로부터 수신된 각각의 데이터베이스 해시의 해시 정보는 대응하는 국부적으로 발생된 데이터베이스 해시의 해시 정보와 비교된다. 해시 정보의 비교가, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)이 통신 시스템(20)의 각각의 데이터베이스(34, 36, 38)와 불일치하지 않다고 나타내면, 단계 316에서, 동기화 프로세스가 종료한다. 그러나, 위에서 설명한 바와 같이, 제2 특수 동기화가 통신 시스 템(20)의 데이터베이스(34, 36, 38) 중 하나 이상의 데이터베이스에 대한 큰 변경의 결과로서 트리거링되었다. 보다 자세하게는, 데이터베이스(34, 36, 38) 중 적어도 하나로부터의 많은 수의 데이터 기록의 삭제의 결과로서 특수 동기화가 트리거링되었다. 따라서, 이러한 경우에, 단계 314에서의 해시 정보의 비교는 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44) 중 적어도 하나와, 통신 시스템(20)의 데이터베이스(34, 36, 38) 간의 불일치의 판정을 가져온다. 다음, 단계 318에서, 기록 해시 정보에 대한 요청이 동기화 서버(30)에 의해 발생된다. 기록 해시 정보에 대한 요청은 데이터 기록들과 관련된 해시 정보에 대한 요청이다. 기록 해시 정보는 통신 시스템(20)의 대응하는 데이터베이스와 불일치하는 것으로 판정되는 포터블 전자 장치(22)의 특정 데이터베이스의 각각의 데이터 기록마다 요청된다. 기록 해시 정보에 대한 요청의 발생 후에, 단계 320에서, 이 요청이 포터블 전자 장치(22)에 송신된다.
단계 322에서, 포터블 전자 장치(22)에서 기록 해시 정보에 대한 요청의 수신시, 단계 224에서, 기록 해시 정보에 대한 요청에 따라 데이터베이스들(40, 42, 44) 중 하나 이상의 데이터베이스로부터 데이터를 검색한다. 그 후, 단계 326에서, 각각의 데이터베이스의 각각의 데이터 기록마다 기록 해시가 발생되며, 단계 328에서, 각각의 기록 해시는 무선 통신 채널을 통하여 통신 시스템(20)에 송신된다.
단계 330에서, 기록 해시 정보가 통신 시스템(20)에서 수신되어 동기화 서버(30)에 전달된다. 요청된 기록 해시 정보의 수신에 응답하여, 단계 332에서, 대응하는 데이터베이스(34, 36, 38) 중 하나 이상의 데이터베이스로부터 데이터를 검 색하고, 단계 334에서, 각각의 데이터베이스의 각각의 데이터 기록마다 기록 해시(국부적으로 발생된 기록 해시라 함)를 발생시킨다. 각각의 국부적으로 발생된 기록 해시의 발생 후에, 단계 336에서, 포터블 전자 장치(22)로부터 수신된 기록 해시 정보가 각각의 국부적으로 발생된 기록 해시로부터의 기록 해시 정보와 비교되며, 기록 해시 정보가 나타내는 데이터가 변경되었는지에 대한 판정이 이루어진다. 따라서, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44) 중 한 데이터베이스로부터의 데이터 기록으로부터 발생된 기록 해시 정보는 통신 시스템(20)의 대응하는 데이터베이스(34, 36, 38)로부터의 데이터 기록으로부터 발생된 대응하는 기록 해시 정보와 비교된다. 최종 동기화 이래, 특정 데이터 기록에 대하여 변경이 이루어지지 않았다고 판정되면, 단계 338에서, 데이터가 변경되지 않은 그 특정 데이터 기록에 대하여 동기화 프로세스가 종료한다.
따라서, 단계 236에서, 프로세서(62)는 어떤 데이터 기록이 변경되었는지, 그리고 만약 있다면, 포터블 전자 장치(22)에서의 어떤 데이터 기록이 통신 시스템(20)에서 존재하지 않는 것인지를 판정한다. 단계 336에서의 비교는 통신 시스템(20)에 여전히 존재하는, 포터블 전자 장치(22)에서 삭제된 데이터 기록들의 판정을 가져온다. 프로세서(62)는 또한, 만약 있다면, 통신 시스템(20)에서의 어떤 추가적인 또는 변경된 데이터 기록들이 포터블 전자 장치(22)에 반영되지 않는지를 단계 336에서의 비교로부터 판정한다. 단계 336에서 데이터가 변경된 것으로 판정되면, 데이터베이스는 포터블 전자 장치(22)에서의 데이터베이스들(40, 42, 44)만을 업데이트함으로써 동기된다. 따라서, 포터블 전자 장치(22)에서의 데이터베이스 들(40, 42, 44)는 통신 시스템(20)의 데이터베이스(34, 36, 38)와 일치하도록 업데이트된다.
데이터베이스들(40, 42, 44)를 업데이트하기 위하여, 단계 337A에서, 데이터베이스들(40, 42, 44)의 어느 것에 존재하지만 통신 시스템(20)의 데이터베이스(34, 36, 38)에 존재하지 않는 것으로 판정된 각각의 데이터 기록마다, 기록 식별자가 포터블 전자 장치(22)에 송신된다. 기록 식별자는 제2 특수 동기화 동안에, 관련된 데이터 기록을 삭제하도록 포터블 전자 장치(22)에 대한 신호로서 작용한다.
단계 337B에서, 포터블 전자 장치(22)가 기록 식별자를 수신하고, 단계 339에서, 기록 식별자가 수신되는 대응하는 데이터 기록을 삭제한다. 따라서, 특수 동기화가 트리거링되도록 하는, 통신 시스템(20)의 데이터베이스(34, 36, 38)로부터 삭제된 모든 기록들은 포터블 전자 장치(22)의 각각의 데이터베이스들(40, 42, 44)로부터 삭제된다. 이러한 제2 특수 동기화는 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)에 존재하지만 통신 시스템(20)의 데이터베이스(34, 36, 38)에 존재하지 않는 기록들이 포터블 전자 장치(22)로부터 통신 시스템(20)에 송신되지 않는다는 점에서 도 4, 도 5a 및 도 5b를 참조하여 위에서 설명된 정규의 동기화와 다르다는 것을 이해할 것이다. 그 대신에, 이들 데이터 기록은 포터블 전자 장치(22)의 각각의 데이터베이스로부터 삭제된다.
단계 336에서, 통신 시스템(20)에서 추가적인 데이터 기록 또는 데이터 기록들에 대한 변경이 포터블 전자 장치(22)에 반영되지 않은 것으로 판정되면, 통신 시스템(20)에서 추가되거나 또는 변경되었지만 포터블 전자 장치(22) 상에서 업데이트되지 않았던 데이터 기록들이 단계 340에서 검색된다. 단계 354에서, 이들 데이터 기록은 포터블 전자 장치(22)에 송신된다.
포터블 전자 장치(22)는 단계 356에서 데이터 기록을 수신하며, 단계 358에서, 신규 데이터 기록을 업데이트하거나, 또는 각각의 데이터베이스(40, 42, 44)에서 이전에 저장된 데이터 기록을 업데이트하도록 오버라이트함으로써 그 데이터 기록을 업데이트한다. 또한, 통신 시스템(20)의 한 데이터베이스로부터 검색되어 포터블 전자 장치(22)에 송신되는 데이터 기록들은 포터블 전자 장치(22)의 대응하는 데이터베이스 상에 기록되거나 또는 오버라이트됨을 이해할 것이다. 불일치한 것으로 판정되는 각각의 데이터베이스의 각각의 데이터 기록의 전체 비교와 업데이트 후에 특수 동기화가 종료한다.
바람직하게는, 많은 수의 데이터 기록들이 포터블 전자 장치로부터 삭제되는 경우에, 포터블 전자 장치로부터 통신 시스템에 많은 수의 삭제 데이터 기록 표시들을 송신하는 것 보다는, 통신 시스템에서의 데이터베이스만이 포터블 전자 장치의 데이터베이스를 미러링영하도록 변경되는 단방향 동기화 프로세스가 트리거링된다. 단방향 동기화 동안에, 통신 시스템의 데이터베이스에 존재하지만 포터블 전자 장치의 데이터베이스에 존재하지 않는 데이터 기록들은 삭제된다. 따라서, 많은 수의 삭제 데이터 기록 표시들을 송신할 필요가 없다. 대신에, 해시 값들이 비교 목적을 위하여 포터블 전자 장치로부터 송신되고, 이에 의해, 전송 시간 및 대역폭이 절약된다.
이와 유사하게, 많은 수의 데이터 기록들이 통신 시스템으로부터 삭제되는 경우에, 많은 수의 삭제 데이터 기록 표시들이 통신 시스템으로부터 포터블 전자 장치에 송신되기 보다는, 포터블 전자 장치에서만의 데이터베이스가 통신 시스템의 데이터베이스를 미러링하도록 변경되는 제2 단방향 동기화가 트리거링된다. 제2 단방향 동기화 동안에, 포터블 전자 장치의 데이터베이스에 존재하지만 통신 시스템의 데이터베이스에 존재하지 않는 데이터 기록들은 삭제된다. 따라서, 많은 수의 삭제 데이터 기록 표시들을 송신할 필요가 없다. 그 대신에, 해시 값들이 비교 목적을 위하여 통신 시스템으로부터 송신되고, 비교에 응답하여, 삭제될 기록의 식별자만이 포터블 전자 장치에 송신되어, 이에 의해 전송 시간 및 대역폭이 절감된다.
삭제 데이터 기록 커맨드가 관련되어 있는 데이터 기록의 임계 갯수가 초과되는 경우, 특수 동기화가 트리거링되는 것으로 설명되어 있지만, 특수 동기화는 삭제 데이터 기록 이벤트들에 의한 트리거링으로 한정되는 것은 아니다. 오히려, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44) 중 하나 이상의 데이터베이스의 데이터 기록이 변경되는 다른 이벤트들이 도 7을 참조로 설명된 바와 같은 특수 동기화를 트리거링할 수 있다. 예를 들어, 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)의 데이터 기록들은 당해 기술 분야의 당업자에게 이해될 바와 같이, 예를 들어, 컴퓨팅 장치의 대응하는 데이터베이스와의 직렬 동기화를 위해 데스크톱 컴퓨터와 같은 컴퓨팅 장치에 대한 포터블 전자 장치(22)의 직렬 접속에 의해 수정될 수 있다. 따라서, 포터블 전자 장치(22) 상에서 데이터 기록들을 추가하고, 데이터 기록들을 수정하고 데이터 기록들을 복구함으로써 데이터베이스들(40, 42, 44)의 데이터 기록들에 대한 변경들이 이루어진다. 포터블 전자 장치(22) 상의 데이터 기록들에 대하여 이루어진 변경들은 직렬 동기화 프로세스 동안에 통신 시스템(20)에 송신되지 않는다. 따라서, 직렬 동기화 프로세스의 완료시에, 포터블 전자 장치(22)의 데이터 기록들에 대하여 이루어진 변경들이 통신 시스템(20)의 데이터 기록들에 반영되지 않는다. 포터블 전자 장치(22)와 컴퓨팅 장치 간에 직렬 접속이 만료된 경우(접속 해제된 경우), 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)와 통신 시스템(20)의 데이터베이스(34, 36, 38)를 동기시키기 위하여, 도 7을 참조로 설명된 바와 같은 특수한 느린 동기화(slow synchronization)가 트리거링된다. 이에 의해, 데이터 기록들은 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)에 데이터 기록들을 반영하도록, 통신 시스템(20)의 데이터베이스(34, 36, 38)에서 업데이트된다. 그러나, 포터블 전자 장치(22)에서의 데이터 기록들은 특수 동기화 동안에 변경되지 않는다.
여기에 설명된 실시예들은 무선 인터페이스에 의해 접속된 데이터베이스들을 동기시키기 위한 방법 및 장치의 특정 구현들에 대하여 교시하고 있지만, 이 실시예에 대한 변형 및 수정이 본 발명의 범위 및 범주 내에 있음을 이해할 것이다. 예를 들어, 다른 이벤트들이 특수 동기화를 트리거링할 수 있다. 포터블 전자 장치(22)의 데이터베이스를 미러링하도록 통신 시스템(20) 상에서만의 데이터베이스를 변경함으로써 통신 시스템(20)의 데이터베이스(34, 36, 38)와 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)을 동기시키는 것이 바람직하게 되는 포터블 전자 장치(22) 상의 데이터 기록들에서의 어떤 변경이 특수 동기화를 트리거링할 수 있다. 이와 유사하게, 통신 시스템(22)의 데이터베이스를 미러링하도록 포터블 전자 장치(22) 상에서만의 데이터베이스를 변경함으로써 통신 시스템(20)의 데이터베이스(34, 36, 38)와 포터블 전자 장치(22)의 데이터베이스들(40, 42, 44)을 동기시키는 것이 바람직하게 되는 통신 시스템에서의 데이터 기록들에서의 어떠한 변경이 제2 특수 동기화를 트리거링할 수 있다.
그 외 변형 및 수정이 또한 가능하다. 포터블 전자 장치는 어떠한 적절한 갯수의 데이터베이스들도 가능하기 때문에 3개의 데이터베이스들로만 한정되지 않는것으로 이해될 것이다. 유사하게, 통신 시스템은 어떠한 적절한 갯수의 데이터베이스도 포함할 수 있다. 상술한 특수 동기화는 포터블 전자 장치의 데이터베이스에서의 추가되거나 또는 변경된 기록들을 반영하도록 통신 시스템의 데이터베이스들에서의 추가되거나 또는 변경된 기록들의 업데이트를 포함하고 있지만, 특수 동기화는 포터블 전자 장치의 데이터베이스에 존재하지 않는, 통신 시스템의 데이터베이스에서의 기록들을 삭제하는 것만을 포함할 수 있는 것으로 이해될 것이다. 유사하게, 제2 특수 동기화는 통신 시스템의 데이터베이스에 존재하지 않는 포터블 전자 장치의 데이터베이스에서의 기록들을 삭제하는 것만을 포함할 수 있는 것으로 이해할 것이다.
많은 다른 변형 및 수정이 당업자에게 발생될 수 있다. 이러한 모든 변형 및 수정도 본 발명의 범위 및 범주 내에 있는 것으로 믿어진다.

Claims (17)

  1. 제1 데이터 기록들을 포함하는 제1 데이터베이스와 제2 데이터 기록들을 포함하는 제2 데이터베이스를 동기시키기 위한 방법으로서,
    제2 데이터 기록들을 나타내는 정보를 수신하는 단계와;
    제2 데이터베이스의 제2 데이터 기록들과 단방향으로 동기시켜 제1 데이터베이스의 제1 데이터 기록들을 수정하는 단계를 포함하며,
    상기 제1 데이터베이스의 제1 데이터 기록들을 수정하는 단계는, 제1 데이터베이스에 존재하지만 대응하는 제2 데이터 기록이 제2 데이터베이스에 존재하지 않는 제1 데이터 기록들 중 일부 데이터 기록들을 삭제하는 것을 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  2. 제1항에 있어서, 상기 제2 데이터 기록을 나타내는 상기 정보와 함께 동기화 트리거를 수신하는 단계를 포함하는 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  3. 제1항에 있어서, 상기 제1 데이터베이스의 제1 데이터 기록들을 수정하는 단계는, 상기 제2 데이터베이스에 존재하지만, 대응하는 제1 데이터 기록이 상기 제1 데이터베이스에 존재하지 않는 제2 데이터 기록에 대응하는 추가의 데이터 기록들을 제1 데이터베이스에 기록하는 단계를 더 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  4. 제3항에 있어서, 상기 제1 데이터베이스의 제1 데이터 기록들을 수정하는 단계는, 제2 데이터 기록들 중 대응하는 데이터 기록들과 다른 제1 데이터 기록들에 대하여, 제2 데이터 기록들 중 대응하는 데이터 기록들을 반영하도록, 제1 데이터베이스의 상기 다른 제1 데이터 기록들을 오버라이트하는 단계를 더 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  5. 제1항에 있어서,
    상기 제1 데이터베이스의 제1 데이터 기록들을 나타내는 정보와, 상기 제2 데이터 기록을 나타내는 정보를 비교하는 단계와;
    상기 제1 데이터 기록을 수정하기 전에, 상기 제2 데이터 기록과 상기 제1 데이터 기록 간에 차이를 판정하는 단계
    를 포함하는 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  6. 제5항에 있어서, 상기 차이를 판정하는 단계는, 제1 데이터 기록들 중 일부 데이터 기록들을 삭제하기 전에, 제1 데이터베이스에서의 각각의 제1 데이터 기록마다, 대응하는 제2 데이터 기록이 상기 제2 데이터베이스에 존재하는지를 판정하는 단계를 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  7. 제5항 또는 제6항에 있어서, 상기 차이를 판정하는 단계는,
    제2 데이터베이스의 제2 데이터 기록들 중 일부 데이터 기록들에 대응하는 제1 데이터 기록들이 상기 제1 데이터베이스에 존재하지 않는지를 판정하는 단계와;
    만약 존재하지 않는다면, 제2 데이터 기록들 중 일부 데이터 기록들의 송신을 요청하는 단계
    를 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  8. 제5항 내지 제7항 중 어느 한 항에 있어서, 상기 차이를 판정하는 단계는,
    다른 제1 데이터 기록들이 제2 데이터 기록들 중 대응하는 다른 일부 데이터 기록들과 다른지를 판정하는 단계와;
    만약 다르다면, 제2 데이터 기록들 중 다른 일부 데이터 기록들의 송신을 요청하는 단계
    를 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  9. 제7항에 있어서, 상기 제2 데이터 기록들 중 일부 데이터 기록들을 수신하고 제1 데이터베이스에 기록하는 단계를 포함하는 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  10. 제8항에 있어서, 제2 데이터 기록들 중 다른 일부 데이터 기록들을 수신하고 다른 제1 데이터 기록들 중 각각의 일부 데이터 기록들 상에 오버라이트하는 단계를 포함하는 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  11. 제6항에 있어서, 상기 제2 데이터 기록들을 나타내는 정보를 수신하는 단계는, 상기 제2 데이터 기록을 나타내는 해시 정보를 수신하는 단계를 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  12. 제11항에 있어서, 상기 제1 데이터베이스의 제1 데이터 기록들을 나타내는 정보와, 상기 제2 데이터 기록을 나타내는 정보를 비교하는 단계는, 제2 데이터 기록을 나타내는 상기 해시 정보와 상기 제1 데이터 기록을 나타내는 대응하는 해시 정보를 비교하는 단계를 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  13. 제2항에 있어서, 상기 동기화 트리거는 제2 데이터 기록들 중 일부 데이터 기록들을 삭제하기 위하여 삭제 데이터 기록 커맨드를 수신하는 단계를 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  14. 제2항에 있어서, 상기 동기화 트리거는,
    제2 데이터 기록들 중 일부 데이터 기록들을 삭제하기 위하여 삭제 데이터 기록 커맨드를 수신하는 단계와;
    제2 데이터 기록들 중 일부 데이터 기록들의 갯수와 임계 갯수를 비교하는 단계와;
    상기 제2 데이터 기록들 중 일부 데이터 기록들의 갯수가 상기 임계 갯수를 초과하는지를 판정하는 단계
    를 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  15. 제2항에 있어서, 상기 동기화 트리거는 상기 제2 데이터 기록을 나타내는 정보와 함께 초기화 커맨드를 수신하는 단계를 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 방법.
  16. 제1 데이터 기록을 포함하는 제1 데이터베이스와 제2 데이터 기록을 갖는 제2 데이터베이스를 동기시키기 위한 장치로서,
    상기 제1 데이터베이스에서의 상기 제1 데이터 기록을 저장하는 메모리 장치와;
    상기 메모리 장치 및 송신 및 수신 장치에 동작가능하게 연결되어 있는 프로세서
    를 포함하며, 상기 프로세서는,
    상기 제2 데이터 기록을 나타내는 정보를 수신하고,
    제2 데이터베이스의 제2 데이터 기록과 단방향으로 동기시켜 제1 데이터베이스의 제1 데이터 기록을 수정시키며,
    상기 수정시키는 것은, 상기 제1 데이터베이스에 존재하지만 대응하는 제2 데이터 기록이 상기 제2 데이터베이스에 존재하지 않는 상기 제1 데이터 기록들 중 일부 데이터 기록들을 삭제하는 것을 포함하는 것인 제1 데이터베이스와 제2 데이터베이스의 동기화 장치.
  17. 프로세서에 의한 실행을 위한 컴퓨터 판독가능 코드가 내장되어 있는 컴퓨터 판독가능 기록 매체로서,
    상기 프로세서는,
    제2 데이터 기록을 나타내는 정보를 수신하고,
    제2 데이터베이스의 제2 데이터 기록과 단방향으로 동기시켜 제1 데이터베이스의 제1 데이터 기록을 수정시키며,
    상기 수정시키는 것은 상기 제1 데이터베이스에 존재하지만 대응하는 제2 데이터 기록이 상기 제2 데이터베이스에 존재하지 않는 상기 제1 데이터 기록들 중 일부 데이터 기록들을 삭제하는 것을 포함하는 것인 컴퓨터 판독가능 기록 매체.
KR1020087010320A 2005-09-29 2006-06-15 대표 정보를 비교하는 것에 의한 효과적인 데이터베이스동기화 KR100986108B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US72153405P 2005-09-29 2005-09-29
US60/721,534 2005-09-29

Publications (2)

Publication Number Publication Date
KR20080066737A true KR20080066737A (ko) 2008-07-16
KR100986108B1 KR100986108B1 (ko) 2010-10-08

Family

ID=37899300

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087010320A KR100986108B1 (ko) 2005-09-29 2006-06-15 대표 정보를 비교하는 것에 의한 효과적인 데이터베이스동기화

Country Status (8)

Country Link
US (1) US20070073787A1 (ko)
EP (1) EP1938198A4 (ko)
JP (2) JP4778061B2 (ko)
KR (1) KR100986108B1 (ko)
CN (1) CN101317164B (ko)
AU (1) AU2006297023B2 (ko)
CA (1) CA2623837A1 (ko)
WO (1) WO2007036015A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792792B2 (en) * 2006-05-22 2010-09-07 Microsoft Corporation Synchronizing structured web site contents
US8103272B2 (en) * 2007-01-07 2012-01-24 Apple Inc. Techniques for database updates
WO2008101777A1 (en) * 2007-02-21 2008-08-28 Bang & Olufsen A/S A system and a method for providing information to a user
US8019721B2 (en) * 2007-12-07 2011-09-13 Roche Diagnostics Operations, Inc. Method and system for enhanced data transfer
CN101697169A (zh) * 2009-10-23 2010-04-21 中兴通讯股份有限公司 源数据库和目的数据库之间数据同步的方法、装置及系统
CN102263798B (zh) * 2010-05-25 2013-11-20 中国移动通信集团甘肃有限公司 通信系统的数据同步方法、装置及系统
US8640212B2 (en) * 2010-05-27 2014-01-28 Red Hat, Inc. Securing passwords with CAPTCHA based hash when used over the web
US8886766B2 (en) 2010-10-25 2014-11-11 Salesforce.Com, Inc. Systems and methods for tracking responses on an online social network
US9411855B2 (en) * 2010-10-25 2016-08-09 Salesforce.Com, Inc. Triggering actions in an information feed system
WO2012101689A1 (en) 2011-01-28 2012-08-02 Nec Corporation Communication system, forwarding node, control device, communication control method, and program
WO2012101690A1 (en) 2011-01-28 2012-08-02 Nec Corporation Communication system, control device, forwarding node, communication control method, and program
WO2012164958A1 (en) 2011-06-02 2012-12-06 Nec Corporation Communication system, control device, forwarding node, and control method and program for communication system
WO2015076715A1 (en) * 2013-11-22 2015-05-28 Telefonaktiebolaget L M Ericsson (Publ) Method and system for synchronization of two databases in a lawful interception network by comparing checksum values
CA2985719C (en) * 2015-06-25 2024-03-26 Gambro Lundia Ab Medical device system and method having a distributed database
CN110795507A (zh) * 2019-10-30 2020-02-14 北京永亚普信科技有限责任公司 基于单向传输协议的数据库同步系统和方法
CN114416703A (zh) * 2020-10-28 2022-04-29 北京中祥英科技有限公司 数据完整性自动监控方法、装置、设备及介质
CN112487007A (zh) * 2020-12-01 2021-03-12 银清科技有限公司 一种多网间流程同步管理方法、装置及系统
KR102604266B1 (ko) 2021-03-19 2023-11-21 주식회사 토닥 데이터 동기화 장치 및 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5666530A (en) * 1992-12-02 1997-09-09 Compaq Computer Corporation System for automatic synchronization of common file between portable computer and host computer via communication channel selected from a plurality of usable channels there between
US5970502A (en) * 1996-04-23 1999-10-19 Nortel Networks Corporation Method and apparatus for synchronizing multiple copies of a database
US5870759A (en) * 1996-10-09 1999-02-09 Oracle Corporation System for synchronizing data between computers using a before-image of data
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
US6141664A (en) * 1996-11-13 2000-10-31 Puma Technology, Inc. Synchronization of databases with date range
US7051277B2 (en) * 1998-04-17 2006-05-23 International Business Machines Corporation Automated assistant for organizing electronic documents
US6167408A (en) * 1998-08-31 2000-12-26 International Business Machines Corporation Comparative updates tracking to synchronize local operating parameters with centrally maintained reference parameters in a multiprocessing system
US6131096A (en) * 1998-10-05 2000-10-10 Visto Corporation System and method for updating a remote database in a network
CN1262481A (zh) * 1999-01-27 2000-08-09 电话通有限公司 多个数据库的同步方法及装置
US6266677B1 (en) * 1999-02-08 2001-07-24 Hewlett Packard Company System and method for ensuring the integrity of stored data
JP2004500633A (ja) * 1999-12-13 2004-01-08 コネクテッド コーポレイション ネットワークバックアップシステム用の多重コピー能力
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
US6470329B1 (en) * 2000-07-11 2002-10-22 Sun Microsystems, Inc. One-way hash functions for distributed data synchronization
US7363325B2 (en) * 2000-08-10 2008-04-22 Nec Laboratories America, Inc. Synchronizable transactional database method and system
US6529917B1 (en) * 2000-08-14 2003-03-04 Divine Technology Ventures System and method of synchronizing replicated data
CN1764915B (zh) * 2003-02-06 2012-01-25 捷讯研究有限公司 通过比较散列值同步数据库的设备及方法
EP1564658A1 (en) * 2004-02-10 2005-08-17 Research In Motion Limited Apparatus and associated method for synchronizing databases by comparing hash values.
US7330997B1 (en) * 2004-06-03 2008-02-12 Gary Odom Selective reciprocal backup

Also Published As

Publication number Publication date
WO2007036015A1 (en) 2007-04-05
EP1938198A1 (en) 2008-07-02
CA2623837A1 (en) 2007-04-05
CN101317164A (zh) 2008-12-03
CN101317164B (zh) 2011-09-07
JP2009510566A (ja) 2009-03-12
KR100986108B1 (ko) 2010-10-08
EP1938198A4 (en) 2009-07-29
AU2006297023A1 (en) 2007-04-05
JP5130386B2 (ja) 2013-01-30
US20070073787A1 (en) 2007-03-29
AU2006297023B2 (en) 2010-09-09
JP2011198385A (ja) 2011-10-06
JP4778061B2 (ja) 2011-09-21

Similar Documents

Publication Publication Date Title
KR100986108B1 (ko) 대표 정보를 비교하는 것에 의한 효과적인 데이터베이스동기화
US8099386B2 (en) Method and apparatus for synchronizing databases connected by wireless interface
US7730028B2 (en) Schema updating for synchronizing databases connected by wireless interface
US7613739B2 (en) Method and apparatus for synchronizing databases connected by wireless interface
US9292387B2 (en) Medium, control method, and information processing apparatus
US20080208928A1 (en) Device Management System and Method for Managing Device Management Object
US8275741B2 (en) Method and apparatus for memory management in an electronic device
US7747566B2 (en) Method and apparatus for synchronizing databases connected by wireless interface
US7334085B2 (en) Method and apparatus for full and partial storage of data records in an electronic device
CN108280215B (zh) 一种基于Solr的电商索引文件的混合式更新方法
EP1903459B1 (en) Method and apparatus for memory management in an electronic device
US7478118B2 (en) Method and apparatus for synchronizing of databases connected by wireless interface
CN106484691B (zh) 移动终端的数据存储方法和装置
CN114928620A (zh) 用户信息同步方法、装置、设备、存储介质和程序产品
CA2568285C (en) Method and apparatus for synchronizing databases connected by wireless interface
US8126842B2 (en) Apparatus, and associated method, for synchronizing databases connected by way of a radio air interface
CA2568284C (en) Method and apparatus for synchronizing databases connected by wireless interface
EP1887480A1 (en) Method and apparatus for synchronizing of databases connected by wireless interface
CA2615376C (en) Method and apparatus for memory management in an electronic device
TWI709041B (zh) 移動終端的資料儲存方法和裝置
CN113296699A (zh) 数据处理方法及装置
CA2603468C (en) Schema updating for synchronizing databases connected by wireless interface

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130926

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140923

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150923

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160922

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170926

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180919

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190924

Year of fee payment: 10