KR20010006590A - 다중 데이터베이스의 동기장치 및 방법 - Google Patents

다중 데이터베이스의 동기장치 및 방법 Download PDF

Info

Publication number
KR20010006590A
KR20010006590A KR1020000003735A KR20000003735A KR20010006590A KR 20010006590 A KR20010006590 A KR 20010006590A KR 1020000003735 A KR1020000003735 A KR 1020000003735A KR 20000003735 A KR20000003735 A KR 20000003735A KR 20010006590 A KR20010006590 A KR 20010006590A
Authority
KR
South Korea
Prior art keywords
database
record
value
time
last
Prior art date
Application number
KR1020000003735A
Other languages
English (en)
Inventor
브라세이데이비드이
Original Assignee
스테븐 디.피터스
폰.컴,인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 스테븐 디.피터스, 폰.컴,인코포레이티드 filed Critical 스테븐 디.피터스
Publication of KR20010006590A publication Critical patent/KR20010006590A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터베이스 동기화 시스템이 설명되어 있다. 데이터베이스 동기화 시스템에서 동기화 데이터베이스가 생성된다. 동기화 데이터베이스는 각각의 데이터베이스가 상호간의 데이터베이스로 레코드를 전송하기 위해 마지막으로 시도될 때에 열거되는 상대 전송시간, 각각의 데이터베이스가 상호간의 데이터베이스로부터 레코드를 수신하기 위해 마지막으로 시도될 때에 열거되는 상대 수신시간 및 각각의 데이터베이스의 각각의 레코드가 마지막으로 생성되거나 수정될 때에 열거되는 상대 레코드 수정시간을 저장한다. 동기화 시스템은 각각의 레코드 수정시간과 상대 전송시간 및 상대 수신시간을 비교함으로써 동작한다. 상대 레코드 수정시간이 제 1 데이터베이스가 제 2 데이터베이스로 레코드를 마지막으로 전송할 때 열거되는 상대 전송시간보다 나중 시간에 레코드를 나타내고 상대 레코드 수정시간이 제 2 데이터베이스로부터 레코드를 마지막으로 수신될 때 열거하는 상대 수신시간보다 이른 시간에 열거되면 레코드는 제 1 데이터베이스에서 제 2 데이터베이스로 바로 전송된다. 가능한 루프를 제거하기 위해 동일한 카드는 폐기된다.

Description

다중 데이터베이스의 동기장치 및 방법{METHOD AND APPARATUS FOR SYNCHRONIZING MULTIPLE DATABASES}
본 발명은 컴퓨터 시스템의 데이터베이스 가간섭성(database coherency) 분야에 관한 것이다. 특히, 본 발명은 동기화된 복수의 다른 데이터베이스를 보유하는 동기화 시스템에 관한 것이다.
보다 많은 사람들은 그들의 삶을 계획하기 위해 컴퓨터 장치에 의지하고 있다. 예를 들면, 많은 사람들은 전화번호 & 주소 리스트, 그것을 실행하기 위한 리스트 및 개인 일일 계획과 같은 개인정보를 보존하기 위해 컴퓨터 시스템을 사용한다. 많은 사람들은 데스크탑 개인용 컴퓨터의 개인정보 관리 응용 프로그램에 이 개인정보를 저장한다. 그렇지만, 그러한 사람이 그들 개인용 컴퓨터로부터 사라질 경우 이 유용한 개인정보는 데스트탑 개인용 컴퓨터 시스템에 저장되어 있으므로 이용할 수 없다.
다른 위치에서 이용할 수 있는 이 개인정보를 기록하기 위한 하나의 방법은 인터넷에 연결된 서버에 개인정보를 등록시키는 것이다. 개인정보를 보호하기 위해 서버는 개인정보로의 접근을 제공하기 전에 사용자 자신을 증명할 것을 요구할 수 있다. 하나의 인터넷 웹 사이트는 무료 서비스(http://www.planetall.com/)와 같이 인터넷에 개인정보 저장장치를 일반적으로 제공하고 있다. 그렇지만, 인터넷 서버에 저장된 개인정보에 접근하기 위해 사람은 여전히 인터넷에 접근하여야 한다.
이용할 수 있는 개인정보를 기록하기 위한 다른 방법은 휴대용 컴퓨터 시스템에 개인정보를 배치하는 것이다. 이 기능을 제공하기 위해 들고 다닐 수 있는 휴대용 컴퓨터 시스템의 새로운 종류가 나타난다. 예를 들면, 3컴 팜파일럿(3Com PalmPilot), 3 컴 팜 Ⅲ(3Com Palm Ⅲ) 및 윈도우 CE 기준 파지형 개인용 컴퓨터 모두는 개인정보를 저장하기 위한 응용을 제공한다.
사람이 보다 많은 개인정보 저장 시스템(개인용 컴퓨터 응용, 인터넷 서버, 휴대용 컴퓨터 시스템 등)을 사용할 경우, 사람은 동일한 데이터가 다른 모든 저장 시스템에 이용할 수 있도록 동기된 개인정보 저장 시스템을 보유할 필요가 있다. 어떤 시스템은 동기된 두 개의 개인정보 시스템을 가지고 어드레스를 지정하여 전송된다. 예를 들면, 3컴 팜파일럿은 팜파일럿 휴대용 컴퓨터 시스템을 가진 개인정보 관리 프로그램을 기초로 개인용 컴퓨터를 동기시킨다. 그렇지만, 사람이 일반적으로 복수의 개인정보 시스템을 사용하기 위하여 동기된 두 개의 개인정보 저장시스템을 가지는 것이 보다 바람직할 것이다.
데이터베이스 동기화 시스템이 설명되어 있다. 데이터베이스 동기화 시스템에서 동기화 데이터베이스가 생성된다. 동기화 데이터베이스는 각각의 데이터베이스가 상호간의 데이터베이스로 레코드를 전송하기 위해 마지막으로 시도될 때에 열거되는 상대 전송시간, 각각의 데이터베이스가 상호간의 데이터베이스로부터 레코드를 수신하기 위해 마지막으로 시도될 때에 열거되는 상대 수신시간 및 각각의 데이터베이스의 각각의 레코드가 마지막으로 생성되거나 수정될 때에 열거되는 상대 레코드 수정시간을 저장한다.
동기화 시스템은 각각의 레코드 수정시간과 상대 전송시간 및 상대 수신시간을 비교함으로써 동작한다. 상대 레코드 수정시간이 제 1 데이터베이스가 제 2 데이터베이스로 레코드를 마지막으로 전송할 때 열거되는 상대 전송시간보다 나중 시간에 레코드를 나타내고 상대 레코드 수정시간이 제 2 데이터베이스로부터 레코드를 마지막으로 수신될 때 열거하는 상대 수신시간보다 이른 시간에 열거되면 레코드는 제 1 데이터베이스에서 제 2 데이터베이스로 바로 전송된다.
본 발명의 다른 목적, 특징 및 장점은 첨부 도면 및 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 본 발명이 실행될 수 있는 시스템 구성도.
도 2a는 각각의 개인정보를 저장하는 세 개의 응용을 포함하는 전역 동기화 시스템의 개념도.
도 2b는 각각의 개인정보를 저장하는 세 개의 응용을 포함하는 분산 동기화 시스템의 개념도.
도 3은 동기될 필요가 있는 두 개의 데이터베이스를 가진 시스템의 개념도.
도 4a는 전역 동기화 시스템을 이용하여 동기화 되는 세 개의 데이터베이스를 가진 시스템의 개념도.
도 4b는 분산 동기화 시스템을 이용하여 동기화 되는 세 개의 데이터베이스를 가진 시스템의 개념도.
♣ 도면의 주요 부분에 대한 부호의 설명 ♣
110: 휴대용 컴퓨터 시스템 130: 인터넷/인트라넷 서버
200: 개인용 컴퓨터 220: 휴대용 컴퓨터 통신프로그램
250,350: 동기화 모듈 450: 전역 동기화 모듈
455: 동기화 데이터베이스
다중 데이터베이스에 있어서의 정보를 동기화하기 위한 시스템이 설명되어 있다. 다음의 상세한 설명을 설명하기 위한 구체적인 명칭이 본 발명의 완전한 이해를 제공하기 위해 설명된다. 그렇지만, 본 발명을 실시하기 위하여 이들 구체적인 세부설명이 요구되지 않는다는 것은 본 기술분야의 당업자에게 명백할 것이다. 예를 들면, 본 발명은 이름, 주소 및 전화번호와 같은 개인정보를 참조하여 설명된다. 그렇지만, 동일 기술들은 데이터베이스에 저장된 다른 유형의 정보로 쉽게 응용될 수 있다.
다중 개인정보 관리 프로그램
도 1은 근거리 통신망(local area network)(140)에 연결된 개인용 컴퓨터 시스템(144)을 도시한다. 개인용 컴퓨터 시스템(144)의 사용자는 그의 정보 서비스(IS) 부문에서 제공되는 특별한 개인정보 관리(PIM) 프로그램을 사용할 수 있다. 개인정보 관리(PIM) 프로그램은 전화번호 & 주소 리스트, 그것을 실행하기 위한 리스트 및 개인 일일 계획과 같은 정보를 저장한다. 그렇지만, 개인정보의 더 많은 접근을 제공하기 위해 사용자는 또한 다른 개인정보 관리 시스템을 사용할 수도 있다.
일반적으로 사용되는 개인정보 관리 시스템의 하나는 개인정보를 저장 및 디스플레이를 위한 응용 프로그램을 포함하는 휴대용 컴퓨터 시스템(110)이다. 휴대용 컴퓨터 시스템(110)의 예에는 이동장치, 개인용 정보 단말기(PDA) 또는 휴대용 일반 목적 컴퓨터를 포함할 수 있지만, 이것에 제한되지는 않는다. 사용자는 키패드(118)를 사용하여 휴대용 컴퓨터 시스템(110)으로 개인정보를 입력할 수 있다. 휴대용 컴퓨터 시스템(110)은 평면판 표시장치(116)에 개인정보를 디스플레이 한다. 일 실시예에 있어서, 휴대용 컴퓨터 시스템(110)은 안테나(116)를 포함하는 셀룰러 전화기이고 사용자에게 무선 네트워크를 가로질러 음성 또는 데이터를 통신하도록 허용하는 통신 전자공학이다.
휴대용 컴퓨터 시스템에 개인정보를 보존하기 위해, 휴대용 컴퓨터 시스템(110)은 개인용 컴퓨터 시스템(114)에 개인정보 관리 프로그램을 사용하여 동기될 수 있다. 개인용 컴퓨터 시스템(144) 상의 개인정보 관리 프로그램은 사용자의 정보 서비스(IS) 부문에 의해 사용자에게 제공되는 개인정보 관리 프로그램일 수도 있고 아닐 수도 있다.
사용자의 개인정보에 대한 접근을 제공하는 다른 방법은 인터넷 또는 인트라넷 서버(130) 상의 개인 재고(inventory) 관리 프로그램으로 사용자의 개인정보를 제공하는 것이다. 도 1의 예의 인터넷/인트라넷 서버(130)는 내부 LAN(140) 및 전역 인터넷(global internet)(100)에 연결된다. 그러므로, 내부 LAN(140) 또는 전역 인터넷(100)에 연결된 임의의 클라이언트 시스템은 예컨대, 스테이션(106,102 및 142)과 같은 사용자의 개인정보에 접근할 수 있다. 사용자의 개인정보를 보호하기 위해, 인터넷/인트라넷 서버(130) 상의 개인 재고 관리 프로그램은 인증(authenti- cation)을 요구할 것이다. 인터넷/인트라넷 서버(130) 상의 개인 재고 관리 프로그램은 사용자에게 내부 LAN 또는 전역 인터넷(100) 상의 다른 사람과 사용자의 개인정보를 선택적으로 공유할 수 있도록 허용하는 이익을 제공한다.
의욕적인 사용자는 이미 설명된 세 가지 개인 관리 시스템 모두를 사용하기를 원할 수도 있다. 도 2a는 각각의 개인 정보: 개인 컴퓨터 정보 관리 프로그램(230), 인터넷/인트라넷 서버 통신 프로그램(210) 및 휴대용 컴퓨터 통신 프로그램(220)을 저장하는 개인용 컴퓨터(200)의 세 가지 응용에 대한 개념도를 도시한다.
개인용 컴퓨터 정보 관리 프로그램(230)은 콸컴(Qualcomm)사에서 제작된 유도라 프래너(Eudora Planner), 로터스(Lotus)사에서 제작된 오거나이저(Organizer) 또는 마이크로소프트(Microsoft)사에서 제작된 아웃룩 익스프레스(Outlook Express)와 같은 몇몇의 개인정보 관리 프로그램의 하나일 수 있다. 개인용 컴퓨터 정보 관리 프로그램(230)은 개인용 컴퓨터(200)를 위한 자신의 개인정보 데이터베이스를 유지한다.
인터넷/인트라넷 서버 통신 프로그램(210)은 인터넷/인트라넷 서버(130)에 정보를 저장하는 몇몇의 프로그램중의 하나일 수 있다. 예를 들면 로터스 로츠(lotus notes)은 로터스 도미노 서버(lotus domino server)에 정보를 저장한다. 유사하게, 동기화 프로그램은 프래니트올 호스티드 인터넷 서버(planetall hosted internet server)에 개인정보를 저장하는 프래니트올(PlanetAll)에 의해 제공된다(http://www.PlanetAll.com 참조). 인터넷/인트라넷 서버 통신 프로그램(210)은 인터넷/인트라넷 서버(130)를 위한 자신의 개인정보 데이터베이스를 유지할 수 있다. 선택적으로, 인터넷/인트라넷 서버 통신 프로그램(210)은 특수 입력 포맷(special input format)의 데이터를 요구하거나 개인용 컴퓨터 정보 관리 프로그램(230)과 동일하지 않은 기존의 개인용 컴퓨터 PIM 프로그램을 사용할 수 있다.
휴대용 컴퓨터 통신 프로그램(220)은 외부 휴대용 컴퓨터 시스템(110)과 통신하는 몇몇의 프로그램중의 하나일 것이다. 휴대용 컴퓨터 시스템을 위한 통신 프로그램의 예로는 3Com에서 제작된 파일러트 데스크탑(pilot desktop)과 퓨마 테크놀리지(puma technologies)에서 제작된 인텔리싱크(intellisync)가 있다. 휴대용 컴퓨터 통신 프로그램(220)은 외부 휴대용 컴퓨터 시스템(110)을 위한 자신의 개인정보 데이터베이스(225)를 유지할 수 있다.
그러므로, 도 2a의 예에 도시된 바와 같이, 사용자는 사용할 수 있는 두 개 또는 그 이상의 개인정보 데이터베이스를 구비할 수 있다. 동기된 모든 개인정보 데이터베이스의 내용을 보존하는 것이 바람직할 것이다.
다중 데이터베이스 동기화 시스템
본 발명은 동기된 몇몇의 다른 개인정보 데이터베이스를 보존하기 위한 시스템을 제공한다. 비록 다른 변동이 존재하지만 두 개의 다른 실시예가 설명된다.
전역 동기화 시스템
도 2a를 참조하면, 본 발명은 다른 개인정보 데이터베이스(210,220,230)에 주기적으로 접근하고 그들을 동기시키는 전역 동기화 모듈(250)을 소개한다.
전역 동기화 모듈(250)은 자신의 동기화 데이터베이스(255)를 유지한다. 동기화 데이터베이스(255)는 각각의 데이터베이스 내에 저장된 여러 가지 레코드에 관한 정보를 포함한다. 명확하게, 동기화 데이터베이스(255)는 여러 가지 레코드가 복사되거나 하나의 데이터베이스에서 다른 데이터베이스로 이동될 때를 인지한다. 다른 컴퓨터 시스템 상의 부적당한 클럭(clock)에 의해 야기되는 문제점을 보호하기 위해, 전역 동기화 모듈(250)은 오직 호스트 시스템의 클럭으로부터의 클럭 신호만을 사용한다.
동기화 데이터베이스(255)는 각각의 개인정보 데이터베이스의 각 레코드에 대한 엔트리(entry)를 저장한다. 명확하게, 각각의 엔트리는 레코드가 특정 데이터베이tm에서 수정될 때의 시간에 대한 타임스템프(timestamp)를 포함한다. 더 나아가서, 동기화 데이터베이스(255)는 (1) 각각의 데이터베이스가 상호간의 데이터베이스로부터 레코드를 마지막으로 전송할 때의 시간; (2) 각각의 데이터베이스가 상호간의 데이터베이스로부터 레코드를 마지막으로 수신될 때의 시간을 포함한다.
동기화 데이터베이스(255)는 각각의 고유 데이터베이스 레코드에 대한 고유 레코드 식별자를 지정할 수 있다. 일 실시예에 있어서, 다른 데이터베이스에서 일치하는 레코드는 레코드가 각각의 데이터베이스에서 동일(또는 동일하여야)하므로 동일한 고유 레코드 식별자를 지정할 수 있다.
분산 동기화 시스템
도 2b는 다른 데이터베이스 쌍을 동기시키기 위해 사용되는 다른 동기화 모듈에서의 대체 실시예를 도시한다. 명확하게, 세 가지 다른 동기화 모듈이 도시된다. 제 1 동기화 모듈(251)은 인터넷/인트라넷 서버 통신 프로그램(210)을 위한 데이터베이스(215)와 휴대용 컴퓨터 통신 프로그램(220)을 위한 데이터베이스(225) 사이의 데이터 동기화를 관리한다. 제 2 동기화 모듈(252)은 인터넷/인트라넷 서버 통신 프로그램(210)을 위한 데이터베이스(215)와 개인용 컴퓨터 개인정보 관리 프로그램(230)을 위한 데이터베이스(235) 사이의 데이터 동기화를 관리한다. 제 3 동기화 모듈(253)은 휴대용 컴퓨터 통신 프로그램(220)을 위한 데이터베이스(225)와 개인용 컴퓨터 개인정보 관리 프로그램(230)을 위한 데이터베이스(235) 사이의 데이터 동기화를 관리한다. 그러한 실시예에 있어서, 각각의 동기화 모듈(251,252, 253)은 자신의 동기화 데이터(256,257,259)를 유지한다.
간단한 예
도 2a에 도시된 바와 같은 전역 동기화 시스템을 이용하여 다중 데이터베이스 시스템의 동작에 대한 간단한 예를 설명하기 위해, 2가지 데이터베이스의 예는 다음의 테이블 및 도 3을 참조하여 제공된다.
테이블 1
데이터베이스 A 데이터베이스 B
수정된레코드X1 수정된레코드Y1 B로부터수신 B로 전송 수정된레코드X2 수정된레코드Y2 A로부터수신 A로 전송
1:00 PM
1:00 PM 1:01 PM
1:00 PM 1:01 PM 1:02 PM
1:00 PM 1:03 PM 1:01 PM 1:02 PM
1:00 PM 1:04 PM 1:03 PM 1:01 PM 1:02 PM
1:00 PM 1:05 PM 1:04 PM 1:03 PM 1:01 PM 1:02 PM
1:00 PM 1:06 PM 1:05 PM 1:04 PM 1:03 PM 1:01 PM 1:02 PM
1:00 PM 1:06 PM 1:05 PM 1:04 PM 1:03 PM 1:01 PM 1:02 PM 1:07 PM
테이블 1의 수평축은 도 3에 도시된 PIM 프로그램 A(310) 내의 PIM A 데이터베이스(315)와 PIM 프로그램 A(320) 내의 PIM B 데이터베이스(325)의 동기화를 제어하기 위해 사용되는 동기화 데이터베이스(355)의 내용을 설명한다. 수직축(예를 들면, n번째 줄)은 레코드가 변화되고 데이터베이스가 동기될 때의 동기화 데이터베이스(355)의 변화를 설명하기 위해 사용된다.
테이블 1의 첫 번째 열은 제 1 레코드, 레코드 X1이 데이터베이스 A에서 수정될 때의 시간을 저장한다. 테이블 1의 두 번째 열은 제 2 레코드, 레코드 Y1이 데이터베이스 A에서 수정될 때의 시간을 저장한다. 테이블 1의 다음 두 개의 열은 데이터베이스 A(315)가 데이터베이스 B(325)로부터 레코드를 수신하고 데이터 베이스 B(325)로 레코드를 전송할 때의 각각의 경우를 설명한다. 명확하게, 세 번째 열은 데이터베이스 A(315)가 데이터베이스 B(325)로부터 레코드를 마지막으로 수신될 때를 열거하고 네 번째 열은 데이터베이스 A(315)가 데이터베이스 B(325)로 레코드를 마지막으로 전송할 때를 열거한다.
테이블 1의 다섯 번째 열은 일치하는 제 1 레코드, 레코드 X2가 데이터베이스 B에서 수정될 때의 시간을 저장한다. 테이블 1의 여섯 번째 열은 일치하는 제 2 레코드, 레코드 Y2가 데이터베이스 B(325)에서 수정될 때의 시간을 저장한다. 이들 값은 테이블 1에 도시된 바와 같이 데이터베이스가 아직 동기되지 않으면 공백이거나 심지어 존재하지 않을 것이다. 일곱 번째 열은 데이터베이스 B(325)가 데이터베이스 A(315)로부터 레코드를 마지막으로 수신될 때를 열거하고 여덟 번째 열은 데이터베이스 B(325)가 데이터베이스 A(325)로 레코드를 마지막으로 전송할 때를 열거한다.
테이블 1의 두 번째 줄을 참조하면, 동기화 데이터베이스(355)는 비어있고 즉, 데이터가 없거나 레코드가 입력된다. 그리고 나서, 1:00 p.m.에서, 사용자는 테이블 1의 세 번째 줄에 기록된 바와 같이 데이터베이스 A(315)에 레코드 X1을 추가한다. 다음, 테이블 1의 네 번째 줄에 열거된 바와 같이 사용자는 1:01 p.m.에서 데이터베이스 B(325)에 레코드 Y2를 추가한다. 이 시점에서 각각의 데이터베이스는 하나의 레코드를 포함한다. 생성된 두 개의 레코드는 동기되지 않으므로 테이터베이스의 어느 하나로부터 완전히 엑세스되지 않는다.
동기화는 데이터베이스 A(315)가 데이터베이스 B(325)로 레코드를 전송함으로서 개시 및 시작된다(나중에, 데이터베이스 B(325)는 데이터베이스 A(315)로 레코드를 전송할 것이다). 동기화 데이터베이스(355)는 테이블 1의 다섯 번째 줄에 반영된 바와 같이, 1:02 p.m.에서 데이터베이스 B(325)가 데이터베이스 A(315)로부터 레코드를 수신하기 시작한다는 것을 인지한다. 두 개의 조건: (1) 데이터베이스 A의 레코드 수정시간은 레코드가 데이터베이스 B로 전송되는 마지막 시간보다 많을 것; (2) 데이터베이스 A의 레코드 수정시간은 이 데이터베이스가 데이터베이스 B로부터 레코드를 수신하는 마지막 시간보다 적을 것을 만족하면 데이터베이스 A(315)의 각각의 레코드는 검사되고 데이터베이스 B(325)로 전송될 것이다. 데이터베이스 A의 레코드 수정시간은 오직 수정된 레코드만을 전송할 수 있도록 레코드가 데이터베이스 B로 전송되는 마지막 시간보다 많아야 한다. 데이터베이스 A의 레코드 수정시간은 데이터베이스 B에서 데이터베이스 A로 재전송 되어 수신된 레코드를 보호하기 위하여 이 데이터베이스가 데이터베이스 B로부터 레코드를 수신하는 마지막 시간보다 적어야 한다. X1이 데이터베이스 B(325)로 전송되지 않으므로, 수정시간은 마지막 전송시간보다 많다. 실행을 간단하게 하기 위해, 최근에 생성된 레코드는 가능한 가장 늦게 필드에 제공될 수 있는 시간이 주어진다. 그러므로 레코드 X1은 데이터베이스 B(325)의 레코드 X2와 같이 생성되고 마지막 수정시간은 테이블 1의 여섯 번째 줄의 1:03 p.m.으로 설정된다.
X1은 단지 데이터베이스 A(315)의 레코드이므로, 데이터베이스 A(315)는 레코드를 전송한다. 동기화 모듈(350)은 동기화 데이터베이스(355) 내에서 데이터베이스 A(315)에서 데이터베이스 B(325)로의 마지막 전송을 인지한다. 명확하게, 테이블 1의 일곱 번째 줄에는 데이터베이스 B(325)로 레코드를 전송하는 종료시간으로서 1:04 p.m.을 기록한다.
그리고 나서, 데이터베이스 B(325)는 데이터베이스 A(315)로 레코드를 전송하기 시작한다. 동기화 모듈(350)은 동기화 데이터베이스(355) 내에서 데이터베이스 B(325)로부터 데이터베이스 A(315)로의 레코드 수신의 시작을 인지한다. 명확하게, 테이블 1의 여덟 번째 줄에는 데이터베이스 A(315)가 데이터베이스 B(325)로부터 레코드를 수신하기 시작하는 시간으로서 1:05 p.m.을 기록한다.
그리고 나서, 동기화 모듈(350)은 데이터베이스 B(325)에서 데이터베이스 A(315)로 레코드를 전송하도록 진행한다. 이전과 마찬가지로, 데이터베이스 B의 레코드 수정시간이 레코드가 데이터베이스 A로 전송되는 마지막 시간보다 많고 데이터베이스 B의 레코드 수정시간이 이 데이터베이스가 데이터베이스 A로부터 레코드를 수신하는 마지막 시간보다 적을 때 레코드가 바로 전송된다.
동기화 모듈(350)이 데이터베이스 B(325)의 레코드 Y2를 검사하면, 레코드 Y2는 레코드가 데이터베이스 A(315)(1:01 p.m.은 마지막 전송시간보다는 많다)로 마지막 전송된 후에 수정되고 레코드 Y2는 레코드가 데이터베이스 A(1:01 p.m.은 1:02 p.m.보다 적다)로부터 수신되는 마지막 시간 전에 수정되므로 동기화 모듈(350)은 데이터베이스 A로 레코드 Y2를 전송할 것이다. 그러므로, 일치하는 신규 레코드 Y1은 데이터베이스 A(315)에서 생성된다. 신규 Y1 레코드는 수정시간과 같은 현재시간이 주어진다. 이 예에 있어서, 1:06 p.m.은 테이블 1의 아홉 번째 열의 수정시간과 같이 지정된다.
동기화 모듈(350)이 데이터베이스 B(325)의 레코드 X2를 검사하면, 동기화 모듈(350)은 데이터베이스 A(315)로 레코드 X2를 전송하지 않을 것이다. 레코드가 테스트의 두 번째 부분을 작동하지 않으므로 레코드 X2는 데이터베이스 A(315)로 전송되지 않는다. 명확하게, 레코드 X2는 레코드가 데이터베이스 A(315)로부터 수신되는 마지막 시간 전에 수정되지 않는다(1:03 p.m.은 1:02 p.m.보다 적지 않다). 그러므로, 레코드 X2는 데이터베이스 A(315)로 전송되지 않는다. 이것은 데이터베이스 B(325)가 데이터베이스 A(315)로부터 레코드를 수신한 후에 수정되지 않았다는 것을 의미한다.
결국, X2 및 Y2는 단지 데이터베이스 B(325) 내의 레코드이므로 데이터베이스 B(325)는 데이터베이스 A(315)로 레코드를 전송한다. 동기화 모듈(350)은 동기화 데이터베이스(355) 내에서 데이터베이스 A(315)로부터 데이터베이스 B(325)로 레코드로의 마지막 전송을 인지한다. 명확하게, 테이블 1의 열 번째 줄에는 데이터베이스 B(325)로의 전송의 완료시간으로서 1:07 p.m.을 기록한다.
부적당한 클럭
여러 가지의 다른 컴퓨터 시스템에서의 클럭(clock)은 보통 정확히 동기되지 않는다. 예를 들면, 아래의 테이블 2를 참조하면, 클럭은 완전히 위상이 다를 것이다.
테이블 2
데이터베이스 A 데이터베이스 B
수정된레코드X1 수정된레코드Y1 B로부터수신 B로 전송 수정된레코드X2 수정된레코드Y2 A로부터수신 A로 전송
1:00 PM
1:00 PM 2:01 PM
1:00 PM 2:01 PM 2:02 PM
1:00 PM 2:03 PM 2:01 PM 2:02 PM
1:00 PM 1:04 PM 2:03 PM 2:01 PM 2:02 PM
1:00 PM 1:05 PM 1:04 PM 2:03 PM 2:01 PM 2:02 PM
1:00 PM 1:06 PM 1:05 PM 1:04 PM 2:03 PM 2:01 PM 2:02 PM
1:00 PM 1:06 PM 1:05 PM 1:04 PM 2:03 PM 2:01 PM 2:02 PM 2:07 PM
로컬 클럭 도메인(local clock domain)으로부터 기록된 클럭 값은 단지 비교를 위해 사용되므로 테이블 2의 예는 더욱 알맞게 작성될 수 있을 것이다.
이전의 예에서 진술한 바와 같이, 동작시간은 데이터베이스 레코드가 수정, 전송 및 수신될 때 사용될 것이다. 그렇지만, 절대시간은 중요하지 않다. 그러므로, 본 발명의 시스템은 각각의 단계가 실행된 후에 변화하는 버전 카운터(version counter)로 대신 실행될 수 있다. 예를 들면, 이전의 예를 참조하면, 시간은 증가하는 카운트 값(100,101,102,103 등)으로 대체할 수 있다.
그러므로, 레코드가 변화할 때의 정확한 시간은 요구되지 않는다. 염두해야 할 중요한 사실은 레코드가 특정 동기화 전에 변화되는지 후에 변화되는지에 관한 것이다. 도 3을 참조하면, 동기화 모듈(350)은 특정 레코드가 데이터베이스로부터 변화될 때의 정확한 시간을 얻을 수 없을 것이다. 사실상, 동기화 모듈(350)은 언제 레코드가 변화하는지를 알려 주지 못할 것이다. 대신에, 동기화 모듈(350)은 동기화 후에 각각의 데이터베이스의 사본을 저장할 수 있다. 그리고 나서, 동기화가 개시되면, 동기화 모듈(350)은 먼저 레코드가 수정되었는지를 판단하기 위해 저장된 데이터베이스와 변화된 데이터베이스를 비교한다. 현재시간 또는 증가된 카운터는 동기화 데이터베이스(355)에서 수정된 레코드의 수정시간 필드로 저장될 것이다.
세 가지 데이터베이스의 예
본 발명의 동기화 시스템은 다중 데이터베이스로 확장할 수 있다. 다음의 테이블 3은 다중 데이터베이스 동기화의 예를 도시한다. 예를 간단하게 하기 위해, 오로지 단일 데이터베이스 레코드를 고찰할 것이다.
테이블 3
데이터베이스 A 데이터베이스 B 데이터베이스 C
수정레코드Xa B로부터수신 B로 전송 C로부터 수신 C로전송 수정레코드Xb A로부터수신 A로 전송 C로부터 수신 C로전송 수정레코드Xc A로부터수신 A로 전송 B로부터 수신 B로전송
1:00
1:00 1:01
1:00 1:02 1:01
1:00 1:03 1:02 1:01
1:00 1:04 1:03 1:02 1:01
1:00 1:04 1:03 1:02 1:01 1:05
1:00 1:04 1:03 1:02 1:01 1:05 1:06
1:00 1:04 1:03 1:02 1:01 1:05 1:07 1:06
1:00 1:04 1:03 1:02 1:01 1:05 1:08 1:07 1:06
1:00 1:04 1:03 1:02 1:01 1:05 1:09 1:08 1:07 1:06
1:00 1:04 1:03 1:02 1:01 1:05 1:09 1:08 1:07 1:06 1:10
1:00 1:04 1:03 1:11 1:02 1:01 1:05 1:09 1:08 1:07 1:06 1:10
1:00 1:04 1:03 1:11 1:02 1:01 1:05 1:09 1:08 1:07 1:12 1:06 1:10
1:00 1:04 1:03 1:11 1:02 1:01 1:05 1:09 1:08 1:07 1:13 1:12 1:06 1:10
1:00 1:04 1:03 1:11 1:14 1:02 1:01 1:05 1:09 1:08 1:07 1:13 1:12 1:06 1:10
테이블 3의 수평축은 도 4a에 도시된 PIM 프로그램 A(410)의 PIM A 데이터베이스(415) 및 PIM 프로그램 B(420)의 PIM A 데이터베이스(425)의 동기화를 제어하기 위해 사용되는 동기화 데이터베이스(455)의 내용을 설명한다. 수직축은 하나의 레코드가 입력되고 그리고 나서 데이터베이스가 동기될 때의 동기화 데이터베이스(455) 내의 변화를 설명하기 위해 사용된다.
분산 동기화 모듈 환경에 있어서, 도 4b에 도시된 바와 같이, 테이블 3의 동기화 데이터베이스는 각각의 동기화 모듈에 대해 세 가지 다른 데이터베이스로 분리된다. 명확하게, 동기화 데이터(456)는 A에서 B 및 B에서 A로의 데이터 트랜잭션(data transaction)을 포함하고, 동기화 데이터(457)는 A에서 C 및 C에서 A로의 데이터 트랜잭션을 포함하고, 동기화 데이터(459)는 C에서 B 및 B에서 C로의 데이터 트랜잭션을 포함한다.
도 4a의 전역 동기화 실시예에 대해 참조하면, 테이블 3(동기화 데이터(455))의 처음 다섯 열은 데이터베이스 A의 레코드 Xa, 데이터베이스 A(415)가 데이터베이스 B(425)로부터 레코드를 마지막으로 수신할 때의 시간, 데이터베이스 A(415)가 데이터베이스 B(425)로 레코드를 마지막으로 전송할 때의 마지막 시간, 데이터베이스 A(415)가 데이터베이스 C(435)로부터 레코드를 마지막으로 수신할 때의 시간 및 데이터베이스 A(415)가 데이터베이스 C(435)로 레코드를 마지막으로 전송할 때의 마지막 시간을 저장한다.
테이블 3의 중간 다섯 열은 데이터베이스 B(425)의 레코드 Xb, 데이터베이스 B(425)가 데이터베이스 A(415)로부터 레코드를 마지막으로 수신할 때의 시간, 데이터베이스 B(425)가 데이터베이스 A(415)로 레코드를 마지막으로 전송할 때의 마지막 시간, 데이터베이스 B(425)가 데이터베이스 C(435)로부터 레코드를 마지막으로 수신할 때의 시간 및 데이터베이스 B(425)가 데이터베이스 C(435)로 레코드를 마지막으로 전송할 때의 마지막 시간을 저장한다.
테이블 3의 마지막 다섯 열은 데이터베이스 C(435)의 레코드 Xc, 데이터베이스 C(435)가 데이터베이스 A(415)로부터 레코드를 마지막으로 수신할 때의 시간, 데이터베이스 C(435)가 데이터베이스 A(415)로 레코드를 마지막으로 전송할 때의 마지막 시간, 데이터베이스 C(435)가 데이터베이스 B(425)로부터 레코드를 마지막으로 수신할 때의 시간 및 데이터베이스 C(435)가 데이터베이스 B(425)로 레코드를 마지막으로 전송할 때의 마지막 시간을 저장한다.
테이블 3의 수직축은 세 가지 데이터베이스 동기화의 예를 진술한다. 테이블 3의 두 번째 줄을 참조하면, 동기화 데이터베이스(355)는 비어있고 즉, 데이터가 없거나 레코드가 입력된다. 그리고 나서, 1:00 p.m.에서, 사용자는 테이블 3의 세 번째 줄에 기록된 바와 같이 데이터베이스 A(315)에 레코드 Xa를 추가한다.
다음, 동기화는 데이터베이스 A와 B 사이에서 개시된다. 동기화는 사용자가 개시하거나 자동적으로 개시될 수 있다. 동기화는 데이터베이스 A(415)가 데이터베이스 B(425)로 레코드를 전송함으로서 시작된다. 동기화 데이터베이스(455)는 테이블 3의 네 번째 줄에 반영된 바와 같이, 1:01 p.m.에서 데이터베이스 B(425)가 데이터베이스 A(415)로부터 레코드를 수신하기 시작한다는 것을 인지한다. 두 개의 조건: (1) 데이터베이스 A의 레코드 수정시간은 레코드가 데이터베이스 B로 전송되는 마지막 시간보다 많을 것; (2) 데이터베이스 A의 레코드 수정시간은 이 데이터베이스가 데이터베이스 B로부터 레코드를 수신하는 마지막 시간보다 적을 것을 만족하면 데이터베이스 A(415)의 각각의 레코드는 검사되고 데이터베이스 B(425)로 전송될 것이다. Xa는 데이터베이스 B(425)로 전송되지 않으므로, 수정시간은 마지막 전송시간보다 많다. 그러므로 레코드 Xa는 레코드 Xb와 같이 데이터베이스 B(425)에서 생성되고 마지막 수정시간은 테이블 3의 다섯 번째 줄의 1:02 p.m.으로 설정된다.
Xa는 단지 데이터베이스 A(415)의 레코드이므로, 데이터베이스 A(415)는 레코드를 전송한다. 동기화 모듈(450)은 동기화 데이터베이스(455) 내에서 데이터베이스 A(415)로부터 데이터베이스 B(425)로의 마지막 전송을 인지한다. 명확하게, 테이블 3의 여섯 번째 줄에는 데이터베이스 B(425)로 레코드를 전송하는 종료시간으로서 1:03 p.m.을 기록한다.
그리고 나서 데이터베이스 B(425)는 데이터베이스 A(415)로 레코드를 전송하기 시작한다. 동기화 모듈(450)은 동기화 데이터베이스(455) 내에서 데이터베이스 B(425)로부터 데이터베이스 A(415)로의 레코드 수신의 시작을 인지한다. 명확하게, 테이블 3의 일곱 번째 줄에는 데이터베이스 A(415)가 데이터베이스 B(425)로부터 레코드를 수신하기 시작하는 시간으로서 1:04 p.m.을 기록한다. 그리고 나서, 동기화 모듈(450)은 데이터베이스 B(425)에서 데이터베이스 A(415)로 레코드를 전송하도록 진행한다. 이전과 마찬가지로, 데이터베이스 B의 레코드 수정시간이 레코드가 데이터베이스 A로 전송되는 마지막 시간보다 많고 데이터베이스 B의 레코드 수정시간이 이 데이터베이스가 데이터베이스 A(415)로부터 레코드를 수신하는 마지막 시간보다 적을 때 레코드가 오직 전송된다. 그렇지만, 데이터베이스 B(425)의 레코드는 단지 레코드가 데이터베이스 A(415)로부터 수신된 후에 생성된 레코드 Xb이므로, 레코드가 아닌 것은 데이터베이스 B(425)로부터 전송될 것이다. 그러므로, 동기화 모듈(450)은 테이블 3의 여덟 번째 줄에 나타낸 것과 같이 1:05 p.m.에서 데이터베이스 B에서 데이터베이스 A로의 레코드 전송의 마지막을 인지한다.
다음, 동기화는 데이터베이스 B와 C 사이에서 개시된다. 다시, 동기화는 사용자가 개시하거나 자동적으로 개시될 수 있다. 동기화는 데이터베이스 B(425)가 데이터베이스 C(435)로 레코드를 전송함으로서 시작된다. 동기화 모듈(450)은 테이블 3의 아홉 번째 줄에 반영된 바와 같이, 1:06 p.m.에서 데이터베이스 C(435)가 데이터베이스 B(425)로부터 레코드를 수신하기 시작한다는 것을 인지한다. 두 개의 조건: (1) 데이터베이스 B의 레코드 수정시간은 레코드가 데이터베이스 C로 전송되는 마지막 시간보다 많을 것; (2) 데이터베이스 B의 레코드 수정시간은 이 데이터베이스가 데이터베이스 C로부터 레코드를 수신하는 마지막 시간보다 적을 것을 만족하면 데이터베이스 B(425)의 각각의 레코드는 검사되고 데이터베이스 C(435)로 전송될 것이다. 데이터베이스 B(425)의 Xb는 데이터베이스 C(435)로 전송되지 않으므로, 수정시간은 마지막 전송시간보다 많다. 그러므로 레코드 Xb는 레코드 Xc와 같이 데이터베이스 C(435)에서 생성되고 마지막 수정시간은 테이블 3의 열 번째 줄의 1:07 p.m.으로 설정된다. Xb는 단지 데이터베이스 B(425)의 레코드이므로, 동기화 모듈(450)은 테이블 3의 열 한 번째 줄의 1:08 p.m.에서 데이터베이스 B(425)로부터 데이터베이스 C(435)로의 마지막 전송시간을 인지한다.
동기화 모듈(450)이 데이터베이스 B에서 데이터베이스 C로의 레코드 전송이 종료된 후에, 동기화 모듈(450)은 데이터베이스 C에서 데이터베이스 B로 레코드를 전송하기 시작한다. 테이블 3의 열두 번째 줄에 있어서, 동기화 모듈(450)은 1:09 p.m.에서 데이터베이스 B가 데이터베이스 C로부터 레코드를 수신하기 시작하는 것을 인지한다. 전송할 레코드가 없으므로(레코드 Xc는 데이터베이스 B로부터 수신된 후에 생성된다) 동기화 모듈(450)은 테이블 3의 열세 번째 줄에서 데이터베이스 C에서 데이터베이스 B로 레코드를 전송할 때의 시간으로서 1:10 p.m.을 인지한다.
다음, 동기화는 데이터베이스 A와 C 사이에서 개시된다. 동기화는 데이터베이스 C(435)가 데이터베이스 A(415)로 레코드를 전송함으로서 시작된다. 동기화 모듈(450)은 테이블 3의 열 네 번째 줄에 반영된 바와 같이, 1:11 p.m.에서 데이터베이스 A(415)가 데이터베이스 C(435)로부터 레코드를 수신하기 시작한다는 것을 인지한다. 두 개의 조건: (1) 데이터베이스 C의 레코드 수정시간은 레코드가 데이터베이스 A로 전송되는 마지막 시간보다 많을 것; (2) 데이터베이스 C의 레코드 수정시간은 이 데이터베이스가 데이터베이스 A로부터 레코드를 수신하는 마지막 시간보다 적을 것을 만족하면 데이터베이스 C(435)의 각각의 레코드는 검사되고 데이터베이스 A(415)로 전송될 것이다. 그러므로, 레코드 Xc는 데이터베이스 A(415)로 전송된다. 그렇지만, 데이터베이스 A(415)는 수신된 레코드가 복사된 레코드인가를 판단하기 위해 수신된 레코드와 기존의 레코드를 비교한다. 데이터베이스 A(415)가 새로이 수신된 레코드(레코드 Xc)와 기존의 레코드 Xa를 비교할 때, 데이터베이스 A(415)는 레코드가 정확하게 복사되었는지를 판단할 것이다. 그러므로, 데이터베이스 A(415)는 그 레코드를 이미 가지고 있으므로 새로이 수신된 레코드를 폐기할 것이다.
Xc는 단지 데이터베이스 C(435)의 레코드이므로, 동기화 모듈(450)은 테이블 3의 열 다섯 번째 줄의 1:12 p.m.에서 데이터베이스 C로부터 데이터베이스 A로의 레코드 전송 완료시간을 인지한다. 그리고 나서, 동기화 모듈(450)은 데이터베이스 A에서 데이터베이스 C로 레코드를 전송하기 시작한다. 테이블 3의 열 여섯 번째 줄에 있어서, 동기화 모듈(450)은 1:13 p.m.에서 데이터베이스 C가 데이터베이스 A로부터 레코드를 수신하기 시작하는 것을 인지한다. 동기화 모듈(450)이 레코드 Xc를 검사할 때, 동기화 모듈(450)은 데이터베이스 A가 데이터베이스 C로 레코드를 마지막으로 전송하고(마지막 전송시간) Xa는 데이터베이스 C로부터 레코드를 수신하기 전에 수정되므로 수정된 레코드를 전송하도록 시도할 것이다. 그렇지만, 데이터베이스 C가 레코드를 수신하면, 데이터베이스 C는 레코드 Xa가 기존의 Xc 메시지와 정확하게 일치하므로 레코드를 폐기할 것이다. 결국, 동기화 모듈(450)은 테이블 3의 열 일곱 번째 줄의 1:14 p.m.에서 데이터베이스 C로부터 데이터베이스 A로의 메시지 전송 완료를 인지한다.
이중 수정 분해
이중 수정 상태는 동기화 모듈이 데이터베이스에서 추가되거나 수정되는 레코드를 검출할 때 발생한다. 예를 들면, 다음의 경우를 살펴본다.
1. 사용자가 데이터베이스 A로 레코드 Xa를 추가
2. 데이터베이스 A가 데이터베이스 B와 동기
3. 데이터베이스 A가 데이터베이스 C와 동기
4. 데이터베이스 B가 데이터베이스 C와 동기
이 예의 두 번째 및 세 번째 단계에 있어서, 레코드 Xa는 데이터베이스 B 및 데이터베이스 C에 추가된다. 비록 각각의 레코드가 추가되거나 수정되는 정확한 시간이 알려지더라도 그것은 유지할 레코드인지 폐기할 레코드인지를 결정하기 위해 사용하는 올바른 정보가 아닐 수도 있다. 그러한 상태를 조종하기 위한 종래 기술의 절차는 당신이 같은 수의 레코드를 두 번 끝낼 수 있도록 양 데이터베이스에 레코드를 추가한다. 상기 약술된 상태에 있어서 모든 레코드는 복사될 것이기 때문에 종래 기술의 절차는 본 발명의 동기화 시스템에 바람직하지 못할 것이다. 보다 간단히 설명하면, 두 개의 데이터베이스가 첫 번째 시간에 동기될 때, 두 개의 데이터베이스가 지금까지 세 번째 데이터베이스와 각각 동기되면, 많은 레코드가 복사될 것이다. 그러한 경우를 조종하기 위해 정확한 중복 레코드는 삭제되고 사용자 입력은 그러한 경우의 나머지를 분석하기 위해 사용될 수 있다. 다음의 단계는 이중 수정 또는 추가가 검출될 때의 상태를 조종하기 위한 하나의 가능한 방법을 설명한다.
1. 레코드의 내용을 비교하라. 레코드가 정확하게 복사되면, 레코드를 폐기한다. 그렇지 않으면:
2. 임의의 규정이 사용자에 의해 선택되면 그 후 그 규정들을 사용하라. 그렇지 않으면:
3. 사용자에게 다음 옵션이 주어지는지를 사용자에게 질문하라:
a) 현 레코드를 위한 데이터베이스 "wins"를 열거
b) 현 동기화에 있어서 모든 레코드를 위한 데이터베이스 "wins"를 열거
c) 현 레코드를 동기하지 않음
d) 상반되는 임의의 레코드를 동기하지 않음
e) 이들 레코드를 복사
f) 상반되는 모든 레코드를 복사
다중 데이터베이스의 동기 시스템이 위에 설명되었다. 본 발명의 사상을 벗어남이 없이 본 발명의 구성요소의 재료 및 배열에 대한 변화 및 수정이 본 기술분야의 통상의 당업자의 하나에 의해 구성할 수 있다고 생각한다.
본 발명에 따른 다중 데이터베이스의 동기장치 및 방법에 의하면, 상대 레코드 수정시간이 제 1 데이터베이스가 제 2 데이터베이스로 레코드를 마지막으로 전송할 때 열거되는 상대 전송시간보다 나중 시간에 레코드를 나타내고 상대 레코드 수정시간이 제 2 데이터베이스로부터 레코드를 마지막으로 수신될 때 열거하는 상대 수신시간보다 이른 시간에 열거되면 레코드는 제 1 데이터베이스에서 제 2 데이터베이스로 바로 전송될 수 있는 효과가 있다.

Claims (20)

  1. 다중 데이터베이스의 동기방법에 있어서,
    제 1 데이터베이스의 제 1 레코드를 저장하고;
    상기 제 1 데이터베이스와 제 2 데이터베이스간의 동기화를 시작하고;
    상기 제 1 데이터베이스에서 상기 제 2 데이터베이스로 레코드를 마지막으로 전송한 후에 상기 제 1 레코드가 생성되거나 수정되고 상기 제 2 데이터베이스에서 상기 제 1 데이터베이스로 레코드를 마지막으로 수신하기 전에 상기 제 1 레코드가 생성되거나 수정되면 상기 제 2 데이터베이스로 상기 제 1 레코드를 전송하는 단계를 포함하는 방법.
  2. 제 1 항에 있어서,
    동일한 매칭 레코드가 상기 제 1 데이터베이스에 이미 존재하고 있으면 상기 제 2 데이터베이스로부터 상기 제 1 레코드를 폐기하는 단계를 더 포함하는 방법.
  3. 제 1 항에 있어서,
    상기 제 2 데이터베이스에서 상기 제 1 데이터베이스로 레코드를 마지막으로 전송한 후에 상기 제 2 레코드가 생성되거나 수정되고 상기 제 1 데이터베이스에서 상기 제 2 데이터베이스로 레코드를 마지막으로 수신하기 전에 상기 제 2 레코드가 생성되거나 수정되면 상기 제 1 데이터베이스로 상기 제 2 데이터베이스의 제 2 레코드를 전송하는 단계를 더 포함하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 데이터베이스와 제 3 데이터베이스간의 동기화를 시작하고;
    상기 제 1 데이터베이스에서 상기 제 3 데이터베이스로 레코드를 마지막으로 전송한 후에 상기 제 1 레코드가 생성되거나 수정되고 상기 제 3 데이터베이스에서 상기 제 1 데이터베이스로 레코드를 마지막으로 수신하기 전에 상기 제 1 레코드가 생성되거나 수정되면 상기 제 3 데이터베이스로 상기 제 1 레코드를 전송하는 단계를 더 포함하는 방법.
  5. 제 1 항에 있어서,
    동기화 데이터베이스의 상대 생성 또는 수정시간의 세트를 저장하는 단계를 더 포함하고, 상기 상대 생성 또는 수정시간은 상기 제 1 데이터베이스 및 상기 제 2 데이터베이스의 레코드가 생성되거나 수정될 때의 상대 시간의 세트를 열거하는 방법.
  6. 제 5 항에 있어서, 각각의 상기 상대 생성 또는 수정시간은 시스템 클럭으로부터의 상대 시간을 포함하는 방법.
  7. 제 5 항에 있어서, 각각의 상기 상대 생성 또는 수정시간은 증가하는 카운터로부터의 상대 시간을 포함하는 방법.
  8. 제 1 항에 있어서,
    상기 제 2 데이터베이스와 제 3 데이터베이스간의 동기화를 시작하고;
    상기 제 2 데이터베이스에서 상기 제 3 데이터베이스로 레코드를 마지막으로 전송한 후에 상기 제 1 레코드가 생성되거나 수정되고 상기 제 3 데이터베이스에서 상기 제 2 데이터베이스로 레코드를 마지막으로 수신하기 전에 상기 제 1 레코드가 생성되거나 수정되면 상기 제 2 데이터베이스에서 상기 제 3 데이터베이스로 상기 제 1 레코드를 전송하는 단계를 더 포함하는 방법.
  9. 제 1 데이터베이스와 제 2 데이터베이스의 레코드를 동기시키기 위한 동기화 시스템에 있어서,
    제 2 데이터베이스 값으로의 상대 제 1 데이터베이스, 제 2 데이터베이스 값으로부터의 상대 제 1 데이터베이스 및 적어도 하나의 레코드 수정 값을 포함하는 동기화 데이터베이스; 및
    동기화 모듈;을 포함하고,
    상기 제 2 데이터베이스 값으로의 상대 제 1 데이터베이스는 제 1 데이터베이스가 제 2 데이터베이스로 레코드를 전송하기 위해 마지막으로 시도될 때 열거되는 제 1 상대 시간 값을 저장하고;
    상기 제 2 데이터베이스 값으로부터의 상대 제 1 데이터베이스는 상기 제 1 데이터베이스가 상기 제 2 데이터베이스로부터 레코드를 수신하기 위해 마지막으로 시도될 때 열거되는 제 2 상대 시간 값을 저장하고;
    각각의 레코드 수정 값은 각각의 데이터베이스의 각각의 레코드에 일치하고, 상기 레코드 수정 값은 상기 일치하는 레코드가 생성되거나 수정될 때 열거되는 제 3 상대 시간 값을 저장하고;
    상기 동기화 모듈은 상기 제 1 레코드와 일치하는 제 1 레코드 수정 값이 상기 제 2 데이터베이스 값으로의 상대 제 1 데이터베이스보다 나중 시간을 나타내고 상기 제 1 레코드 수정 값이 상기 제 2 데이터베이스 값으로부터의 상대 제 1 데이터베이스보다 이른 시간을 나타내면 상기 제 1 데이터베이스에서 상기 제 2 데이터베이스로 제 1 레코드를 전송하는 시스템.
  10. 제 9 항에 있어서, 상기 동기화 데이터베이스는
    제 1 데이터베이스 값으로의 상대 제 2 데이터베이스; 및
    제 1 데이터베이스 값으로부터의 상대 제 2 데이터베이스;를 더 포함하고,
    상기 제 1 데이터베이스 값으로의 상대 제 2 데이터베이스는 제 2 데이터베이스가 제 1 데이터베이스로 레코드를 전송하기 위해 마지막으로 시도될 때 열거되는 제 4 상대 시간 값을 저장하고,
    상기 제 1 데이터베이스 값으로부터의 상대 제 2 데이터베이스는 상기 제 2 데이터베이스가 상기 제 1 데이터베이스로부터 레코드를 수신하기 위해 마지막으로 시도될 때 열거되는 제 5 상대 시간 값을 저장하고;
    상기 동기화 모듈은 상기 제 2 레코드와 일치하는 제 2 레코드 수정 값이 상기 제 1 데이터베이스 값으로의 상대 제 2 데이터베이스보다 나중 시간을 나타내고 상기 제 2 레코드 수정 값이 상기 제 1 데이터베이스 값으로부터의 상대 제 2 데이터베이스보다 이른 시간을 나타내면 상기 제 2 데이터베이스에서 상기 제 1 데이터베이스로 제 2 레코드를 전송하는 동기화 시스템.
  11. 제 9 항에 있어서, 상기 상대 시간 값은 시스템 클럭으로부터의 시간을 포함하는 동기화 시스템.
  12. 제 9 항에 있어서, 상기 상대 시간 값은 증가하는 카운터를 포함하는 동기화 시스템.
  13. 다중 데이터베이스의 동기방법에 있어서,
    적어도 두 개의 데이터베이스, 제 1 데이터베이스 및 제 2 데이터베이스를 포함하는 상기 다중 데이터베이스 사이에서 동기화를 시작하고;
    상기 제 1 데이터베이스가 상기 제 2 데이터베이스로 레코드를 전송하는 마지막 시간 후와 상기 제 1 데이터베이스가 상기 제 2 데이터베이스로부터 레코드를 수신하는 마지막 시간 전에 상기 제 1 레코드가 생성되거나 수정되는지를 판단하기 위해 상기 제 1 데이터베이스의 제 1 레코드를 검사하고;
    상기 제 1 데이터베이스가 상기 제 2 데이터베이스로 레코드를 전송하는 마지막 시간 후와 상기 제 1 데이터베이스가 상기 제 2 데이터베이스로부터 레코드를 수신하는 마지막 시간 전에 상기 제 1 레코드가 생성되거나 수정될 때 상기 제 2 데이터베이스로 상기 제 1 레코드의 사본을 전송하는 단계를 포함하는 방법.
  14. 제 13 항에 있어서,
    상기 제 2 데이터베이스로 전송된 상기 제 1 레코드의 상기 사본을 확인하기 위해 상기 제 1 데이터베이스의 제 1 값을 기록하는 단계를 더 포함하는 방법.
  15. 제 14 항에 있어서,
    상기 제 1 데이터베이스로부터 수신된 상기 제 1 레코드의 상기 사본을 확인하기 위해 상기 제 2 데이터베이스의 제 2 값을 기록하는 단계를 더 포함하는 방법.
  16. 제 15 항에 있어서, 상기 제 1 값 및 상기 제 2 값은 (ⅰ) 시간 클럭, (ⅱ) 카운터 및 (ⅲ) 불일치 일련 번호 중의 하나의 형태인 방법.
  17. 제 13 항에 있어서,
    상기 제 2 데이터베이스가 상기 제 1 데이터베이스로 레코드를 전송하는 마지막 시간 후와 상기 제 2 데이터베이스가 상기 제 1 데이터베이스로부터 레코드를 수신하는 마지막 시간 전에 상기 제 2 레코드가 생성되거나 수정되는지를 판단하기 위해 상기 제 2 데이터베이스의 제 2 레코드를 검사하고;
    상기 제 2 데이터베이스가 상기 제 1 데이터베이스로 레코드를 전송하는 마지막 시간 후와 상기 제 2 데이터베이스가 상기 제 1 데이터베이스로부터 레코드를 수신하는 마지막 시간 전에 상기 제 2 레코드가 생성되거나 수정될 때 상기 제 1 데이터베이스로 상기 제 2 레코드의 사본을 전송하고;
    상기 제 1 데이터베이스로 전송된 상기 제 2 레코드의 상기 사본을 확인하기 위해 상기 제 2 데이터베이스의 제 3 값을 기록하고;
    상기 제 2 데이터베이스로부터 수신된 상기 제 2 레코드의 상기 사본을 확인하기 위해 상기 제 1 데이터베이스의 제 4 값을 기록하는 단계를 더 포함하는 방법.
  18. 제 17 항에 있어서, 상기 제 3 값 및 상기 제 4 값은 (ⅰ) 시간 클럭, (ⅱ) 카운터 및 (ⅲ) 불일치 일련 번호 중의 하나의 형태인 방법.
  19. 다중 데이터베이스를 동기시키기 위한 동기화 시스템에 있어서,
    제 1 데이터베이스 및 제 2 데이터베이스를 위한 데이터 저장장치;
    동기화 모듈을 위한 메모리; 및
    상기 데이터 저장장치 및 상기 메모리에 연결된 프로세서를 포함하고,
    상기 프로세서는 상기 동기화 모듈로 하여금
    상기 제 1 데이터베이스가 상기 제 2 데이터베이스로 레코드를 전송하는 마지막 시간 후와 상기 제 1 데이터베이스가 상기 제 2 데이터베이스로부터 레코드를 수신하는 마지막 시간 전에 상기 제 1 레코드가 생성되거나 수정되는지를 판단하기 위해 상기 제 1 데이터베이스의 제 1 레코드를 검사하고;
    상기 제 1 데이터베이스가 상기 제 2 데이터베이스로 레코드를 전송하는 마지막 시간 후와 상기 제 1 데이터베이스가 상기 제 2 데이터베이스로부터 레코드를 수신하는 마지막 시간 전에 상기 제 1 레코드가 생성되거나 수정될 때 상기 제 2 데이터베이스로 상기 제 1 레코드의 사본을 전송하고;
    상기 제 2 데이터베이스가 상기 제 1 데이터베이스로 레코드를 전송하는 마지막 시간 후와 상기 제 2 데이터베이스가 상기 제 1 데이터베이스로부터 레코드를 수신하는 마지막 시간 전에 상기 제 2 레코드가 생성되거나 수정되는지를 판단하기 위해 상기 제 2 데이터베이스의 제 2 레코드를 검사하고;
    상기 제 2 데이터베이스가 상기 제 1 데이터베이스로 레코드를 전송하는 마지막 시간 후와 상기 제 2 데이터베이스가 상기 제 1 데이터베이스로부터 레코드를 수신하는 마지막 시간 전에 상기 제 2 레코드가 생성되거나 수정될 때 상기 제 1 데이터베이스로 상기 제 2 레코드의 사본을 전송하게 하는 시스템.
  20. 제 19 항에 있어서, 상기 제 1 데이터베이스는 상기 제 2 데이터베이스로 전송된 상기 제 1 레코드의 상기 사본을 확인하기 위해 제 1 값을 기록하고; 상기 제 2 데이터베이스는 상기 제 1 데이터베이스로부터 수신된 상기 제 1 레코드의 상기 사본을 확인하기 위해 제 2 값을 기록하는 동기화 시스템.
KR1020000003735A 1999-01-27 2000-01-26 다중 데이터베이스의 동기장치 및 방법 KR20010006590A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US23903999A 1999-01-27 1999-01-27
US09/239,039 1999-01-27

Publications (1)

Publication Number Publication Date
KR20010006590A true KR20010006590A (ko) 2001-01-26

Family

ID=22900350

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000003735A KR20010006590A (ko) 1999-01-27 2000-01-26 다중 데이터베이스의 동기장치 및 방법

Country Status (4)

Country Link
EP (1) EP1024441A3 (ko)
JP (1) JP2000235513A (ko)
KR (1) KR20010006590A (ko)
CN (1) CN1262481A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020048832A (ko) * 2000-12-18 2002-06-24 (주)소프트컴퍼니 웹과 로컬 시스템 데이터의 동기화 프로그램
KR20040039863A (ko) * 2002-11-05 2004-05-12 한국신용평가정보주식회사 개인정보와 기업정보의 동기화 시스템
KR20130119104A (ko) * 2012-04-23 2013-10-31 삼성에스디에스 주식회사 이기종 공간 데이터베이스간 지리 정보 데이터 동기화 시스템 및 방법

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8620286B2 (en) 2004-02-27 2013-12-31 Synchronoss Technologies, Inc. Method and system for promoting and transferring licensed content and applications
US8156074B1 (en) 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US8073954B1 (en) 2000-07-19 2011-12-06 Synchronoss Technologies, Inc. Method and apparatus for a secure remote access system
US7895334B1 (en) 2000-07-19 2011-02-22 Fusionone, Inc. Remote access communication architecture apparatus and method
US6611849B1 (en) 2000-09-29 2003-08-26 Palm Source, Inc. System for synchronizing databases on multiple devices utilizing a home base
US7818435B1 (en) 2000-12-14 2010-10-19 Fusionone, Inc. Reverse proxy mechanism for retrieving electronic content associated with a local network
US6847983B2 (en) 2001-02-28 2005-01-25 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of open files
US6985915B2 (en) 2001-02-28 2006-01-10 Kiran Somalwar Application independent write monitoring method for fast backup and synchronization of files
US8615566B1 (en) 2001-03-23 2013-12-24 Synchronoss Technologies, Inc. Apparatus and method for operational support of remote network systems
US6839564B2 (en) 2001-04-25 2005-01-04 Nokia Corporation Synchronization of database data
US6993522B2 (en) * 2001-06-27 2006-01-31 Microsoft Corporation System and method for resolving conflicts detected during a synchronization session
EP1383054A1 (en) * 2002-07-19 2004-01-21 SCHLUMBERGER Systèmes Data synchronization procedures for smartcards
CN100361439C (zh) * 2002-07-30 2008-01-09 上海阿尔卡特网络支援系统有限公司 程控交换机数据库对比系统
JP3860098B2 (ja) * 2002-08-30 2006-12-20 株式会社東芝 情報端末装置
CN100568228C (zh) * 2002-09-03 2009-12-09 Sap股份公司 对数据的动态访问
FR2850814A1 (fr) * 2003-02-03 2004-08-06 France Telecom Systeme et procede de synchronisation de donnees entre des portails de services et plate-forme d'acces a des services utilisant un tel systeme de synchronisation
WO2005010715A2 (en) 2003-07-21 2005-02-03 Fusionone, Inc. Device message management system
CN100343846C (zh) * 2003-09-28 2007-10-17 华为技术有限公司 一种数据间差异性的分析比较方法
CN1677355B (zh) * 2004-03-31 2010-05-26 深圳市朗科科技股份有限公司 文件同步更新的方法、系统及装置
KR20070038462A (ko) 2004-05-12 2007-04-10 퓨전원 인코포레이티드 향상된 접속 인식 시스템
US9542076B1 (en) 2004-05-12 2017-01-10 Synchronoss Technologies, Inc. System for and method of updating a personal profile
CN100353325C (zh) * 2004-08-23 2007-12-05 华为技术有限公司 实现共享内存数据库的方法及内存数据库系统
CN100373347C (zh) * 2005-07-13 2008-03-05 华硕电脑股份有限公司 一种具自动备份功能的电子装置
JP4778061B2 (ja) * 2005-09-29 2011-09-21 リサーチ イン モーション リミテッド 代表的な情報を比較することによる効率的なデータベースの同期化
US8181111B1 (en) 2007-12-31 2012-05-15 Synchronoss Technologies, Inc. System and method for providing social context to digital activity
CN101697169A (zh) * 2009-10-23 2010-04-21 中兴通讯股份有限公司 源数据库和目的数据库之间数据同步的方法、装置及系统
US8255006B1 (en) 2009-11-10 2012-08-28 Fusionone, Inc. Event dependent notification system and method
US8943428B2 (en) 2010-11-01 2015-01-27 Synchronoss Technologies, Inc. System for and method of field mapping
CN102843395B (zh) * 2011-06-22 2015-08-19 阿里巴巴集团控股有限公司 一种数据同步方法及装置
EP2780834B1 (en) * 2011-11-14 2020-07-08 Google LLC Processing changes to distributed replicated databases
US20130179186A1 (en) * 2012-01-11 2013-07-11 Roche Diagnostics Operations, Inc. System and method for database synchronization for medical records
US8700569B1 (en) 2012-05-09 2014-04-15 Bertec Corporation System and method for the merging of databases
US8543540B1 (en) 2012-05-09 2013-09-24 Bertec Corporation System and method for the merging of databases
US9043278B1 (en) 2012-05-09 2015-05-26 Bertec Corporation System and method for the merging of databases
US9361433B2 (en) 2012-08-03 2016-06-07 Synchronoss Technologies, Inc Enterprise leasing license algorithm
EP2843879A1 (fr) * 2013-09-03 2015-03-04 HAGER CONTROLS (Société par Actions Simplifiée) Configuration d'un réseau domotique
US20160012116A1 (en) * 2014-07-10 2016-01-14 Siemens Product Lifecycle Management Software Inc. Data re-transfer with site based three point merges using import records
CN104537046B (zh) * 2014-12-24 2018-09-11 北京奇虎科技有限公司 数据补全方法和装置
CN107357920B (zh) * 2017-07-21 2020-05-22 北京奇艺世纪科技有限公司 一种增量式的多副本数据同步方法及系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5710922A (en) * 1993-06-02 1998-01-20 Apple Computer, Inc. Method for synchronizing and archiving information between computer systems
US5684990A (en) * 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US5870765A (en) * 1996-10-09 1999-02-09 Oracle Corporation Database synchronizer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020048832A (ko) * 2000-12-18 2002-06-24 (주)소프트컴퍼니 웹과 로컬 시스템 데이터의 동기화 프로그램
KR20040039863A (ko) * 2002-11-05 2004-05-12 한국신용평가정보주식회사 개인정보와 기업정보의 동기화 시스템
KR20130119104A (ko) * 2012-04-23 2013-10-31 삼성에스디에스 주식회사 이기종 공간 데이터베이스간 지리 정보 데이터 동기화 시스템 및 방법

Also Published As

Publication number Publication date
EP1024441A3 (en) 2001-03-21
CN1262481A (zh) 2000-08-09
EP1024441A2 (en) 2000-08-02
JP2000235513A (ja) 2000-08-29

Similar Documents

Publication Publication Date Title
KR20010006590A (ko) 다중 데이터베이스의 동기장치 및 방법
US7346616B2 (en) Synchronizing data shared between two devices independent of any other devices that may also share the data
US7809682B2 (en) Data synchronization between multiple devices
US8095504B2 (en) N-way synchronization of computer databases
US6343299B1 (en) Method and apparatus for random update synchronization among multiple computing devices
US8069144B2 (en) System and methods for asynchronous synchronization
US7472135B2 (en) Method and system for recalling details regarding past events
US6636873B1 (en) Methods and systems for synchronization of mobile devices with a remote database
EP1829286B1 (en) Systems and methods for continuous pim synchronization between a host computer and a client handheld device
US7017105B2 (en) Deleting objects from a store of a device
US6915312B2 (en) Data processing environment with methods providing contemporaneous synchronization of two or more clients
US7222139B2 (en) Method, system and program for synchronizing data
JP2001142766A (ja) データベース交換システム
US7092944B2 (en) Personal information management apparatus, personal information managing method, and storage medium and program therefor
US20050177617A1 (en) Conflict resolution during data synchronization
CN100472523C (zh) 使用设备数据模式同步服务器和设备数据
US8082223B2 (en) Synchronization of computer databases using caching agents
US20060288347A1 (en) Exploiting entity relationships in proximity-based scheduling applications
JP2004046302A (ja) 複数の情報機器間におけるデータ同期方法、当該方法を実行する情報処理装置、および当該方法を実行するためのプログラム
US8843531B2 (en) Bookkeeping of download timestamps
JPH113368A (ja) 分散環境におけるスケジュールデータ管理方法及びシステム及びスケジュールデータ管理プログラムを格納した記憶媒体
WO2021139319A1 (zh) 多平台权限统一管理方法、装置、终端及存储介质
US20050050114A1 (en) Method and apparatus for synchronizing data organized by category
JP2000148691A (ja) 情報同期システムおよび記録媒体
KR100379457B1 (ko) 개인 정보 관리 방법

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid