KR20060045897A - 전자 장치들 간의 데이터 동기화를 위한 방법 및 시스템 - Google Patents

전자 장치들 간의 데이터 동기화를 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20060045897A
KR20060045897A KR1020050037494A KR20050037494A KR20060045897A KR 20060045897 A KR20060045897 A KR 20060045897A KR 1020050037494 A KR1020050037494 A KR 1020050037494A KR 20050037494 A KR20050037494 A KR 20050037494A KR 20060045897 A KR20060045897 A KR 20060045897A
Authority
KR
South Korea
Prior art keywords
electronic device
metadata
database
information
updated
Prior art date
Application number
KR1020050037494A
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 KR20060045897A publication Critical patent/KR20060045897A/ko

Links

Images

Classifications

    • 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/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
    • G06F13/38Information transfer, e.g. on bus

Landscapes

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

Abstract

전자 장치는 데이터와 동기화될 필요가 흔히 있다. 동기화 엔진은 변경된 데이터의 추적, 필터링, 및 복구 동기화를 지원하는 데이터베이스를 포함한다. 전자 장치에서 발생하는 데이터 변경은 데이터 동기용으로 추적된다. 데이터는, 데이터 범위, 장치 상태, 및 새롭게 추가된 아이템, 수정된 아이템 또는 삭제된 아이템 등의 아이템 분류와 같은 소정의 기준에 따라 데이터베이스에 의해 필터링될 수 있다. 복구 동기화에 의해 동기화 프로세스동안 통신 인터럽션으로 인해 손실된 데이터 복구가 가능해진다.
동기화 엔진, 복구 동기화, 전자 장치,

Description

전자 장치들 간의 데이터 동기화를 위한 방법 및 시스템{METHOD AND SYSTEM FOR SYNCHRONIZING DATA BETWEEN ELECTRONIC DEVICES}
도 1은 본 발명의 양호한 실시예에 따라서 사용되는 계산 장치를 도시하는 도면.
도 2는 본 발명에 따라서, 전자 장치들 간의 데이터 동기화를 위한 시스템을 도시하는 기능 블록도.
도 3은 본 발명에 따라서, 전자 장치들 간의 데이터 동기화를 위한 처리를 도시하는 동작 흐름도.
<도면의 주요 부분에 대한 부호 설명>
100 계산 장치
102 처리 유닛
106 애플리케이션
109 탈착가능 저장 장치
110 탈착불가 저장 장치
116 통신 접속부
200, 210 전자 장치
240 필터
250 동기화 엔진
데이터 동기화는, 또 다른 전자 장치에서 구현될 전자 장치에서의 데이터 변경을 가능하게 함으로써 계산 장치의 유동성을 증가시킨다. 예를 들어, 달력 애플리케이션은 이동 장치에서 변경될 수 있다. 이렇게 변경된 달력 애플리케이션은, 데이터 동기화를 사용하여 휴대용 컴퓨터에 저장된 동일한 달력 애플리케이션에 복사되어, 사용자가 날짜를 수동으로 갱신할 필요가 없게 된다.
애플리케이션에 결합된 동기화 파일은 이 파일에 결합된 데이터의 상태를 관리한다. 예를 들어, 계산 장치는 다수의 아이템을 갖는 박스내에 이메일 애플리케이션을 포함할 수 있다. 이 아이템들은, 모든 아이템들 또는 아이템의 서브셋과 결합된 정보를 추적함으로써 동기화될 수 있다. 동기화 파일은 아이템들의 서브셋에 관련된 정보를 저장할 수 있지만, 장치는 남아있는 아이템들의 상태를 알지 못한다. 따라서, 남아있는 아이템들에 대한 변경은 장치에서 갱신되지 않는다.
사용자는 소정의 기준을 따라서 데이터를 필터링하기를 원할 수도 있다. 예를 들어, 사용자는 일정한 기간동안 수신된 모든 이메일 메시지를 요구할 수 있다. 그러면, 동기화 파일은, 이메일 애플리케이션에서 모든 아이템을 조사하여, 그 아이템이 주어진 기간동안 수신되었는지 여부를 결정할 것이다. 필터링 처리는, 모 든 아이템에 있어서, 아이템이 필터 파라미터내에 포함되는지 여부를 결정하도록 필터링된 특성들에 대한 인덱스없이 검사되기 때문에, 느리고, 비효율적이다.
본 발명은 전자 장치들 간의 데이터를 동기화하기 위한 방법 및 시스템에 관한 것이다. 동기화 엔진은 변경된 데이터의 추적, 필터링, 및 복구 동기화를 지원하는 데이터베이스를 포함한다. 전자 장치에서 발생하는 데이터의 변경은 데이터 동기화를 위해 추적된다. 데이터는, 새롭게 추가된 아이템, 수정된 아이템, 또는 삭제된 아이템과 같은 아이템의 분류, 장치의 상태, 및 데이터 범위와 같은 소정의 기준에 따라서 데이터베이스에 의해 필터링된다. 복구 동기화는, 동기화 처리 동안에 통신 인터럽션으로 인해 발생하는 데이터의 손실을 복구하도록 한다.
본 발명의 일 양태에 따르면, 컴퓨터로 구현되는 방법은 제1 전자 장치와 제2 전자 장치 간의 데이터를 동기화시킨다. 제1 전자 장치와 제2 전자 장치 사이에서 갱신될 메타데이터를 포함하는 데이터베이스가 선택된다. 문의가 제1 전자 장치로부터 제2 전자 장치로 전송되어, 갱신될 메타데이터의 아이템들의 리스트가 제2 전자 장치에 의해 생성된다. 이 아이템들의 리스트는, 제2 전자 장치에 존재하는 메타데이터와 결합된 정보를 반영하지만, 제1 전자 장치에 대해서는 아니다. 갱신될 정보는 제1 전자 장치로부터 제2 전자 장치로 전송된다.
본 발명의 또 다른 양태에 따르면, 시스템은 제1 전자 장치와 제2 전자 장치 간의 데이터를 동기화시킨다. 시스템은, 제1 및 제2 전자 장치에 연결된 데이터베이스, 및 이 데이터베이스에 연결된 동기화 엔진을 포함한다. 제1 및 제2 전자 장 치의 메타데이터의 변경은 데이터베이스에서 구현된다. 동기화 엔진은 제2 전자 장치로 문의를 전송하도록 구성되어, 갱신될 메타데이터의 아이템들의 리스트가 제2 전자 장치에 의해 생성된다. 이 리스트는 제2 전자 장치에 존재하는 메타데이터와 결합된 정보를 반영하지만, 제1 전자 장치에 대해서는 아니다. 또한, 동기화 엔진은 제2 전자 장치로 갱신될 정보를 전송하도록 구성된다.
실시예
간략하게 말하자면, 전자 장치들 간의 데이터를 동기화하기 위한 방법 및 시스템이 설명된다. 동기화 엔진은 변경된 데이터의 추적, 데이터 필터링, 및 복구 동기화를 지원하는 데이터베이스를 포함한다. 전자 장치에서 발생하는 데이터의 변경은 데이터 동기화를 위해 추적된다. 데이터는, 새롭게 추가된 아이템, 수정된 아이템, 또는 삭제된 아이템과 같은 아이템의 분류, 장치의 상태, 및 데이터 범위와 같은 소정의 기준에 따라서 데이터베이스에 의해 필터링된다. 복구 동기화는, 동기화 처리 동안에 통신 인터럽션으로 인해 발생하는 데이터의 손실을 복구하도록 한다.
양호한 동작 환경
도 1을 참조하면, 본 발명을 구현하기 위한 하나의 양호한 시스템은 계산 장치(100)와 같은 계산 장치를 포함한다. 계산 장치(100)는, 고객, 서버, 이동 장치, 또는 공동 시스템에 기초한 네트워크에서 데이터와 상호작용하는 소정의 다른 계산 장치로서 구성될 수 있다. 매우 기본적인 구성에서, 계산 장치(100)는 일반적으로 적어도 하나의 처리부(102) 및 시스템 메모리(104)를 포함한다. 계산 장치 의 정확한 구성 및 유형에 따라서, 시스템 메모리(104)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리, 등과 같은) 비휘발성 메모리, 또는 이 둘의 어떤 조합이 될 수 있다. 시스템 메모리(104)는 일반적으로 오퍼레이팅 시스템(105), 하나 이상의 애플리케이션(106)을 포함하고, 프로그램 데이터(107)를 포함할 수도 있다. 아래에서 상세하게 설명될 본 발명은 애플리케이션(106)내에서 구현된다.
계산 장치(100)는 추가 피쳐 또는 기능성을 가질 수 있다. 예를 들어, 계산 장치(100)는, 예를 들어, 자기 디스크, 광 디스크 또는 테이프 등과 같은 추가 데이터 저장 장치(탈착가능 및/또는 탈착불가)를 포함할 수도 있다. 이러한 추가 저장 장치는 탈착가능 저장 장치(109) 및 탈착불가 저장 장치(110)로 도 1에 도시되어 있다. 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 탈착가능 및 탈착불가 매체를 포함할 수 있다. 시스템 메모리(104), 탈착가능 저장 장치(109) 및 탈착불가 저장 장치(110) 모두는 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 계산 장치(100)에 의해 액세스될 수 있으며 원하는 정보를 저장하는데 사용될 수 있는 다른 임의의 매체를 포함하지만, 이에 한정되지 않는다. 이러한 임의의 컴퓨터 저장 매체는 장치(100)의 일부이어도 된다. 또한, 계산 장치(100)는 키보드, 마우스, 펜, 음성 입력 장치, 터치식 입력 장치를 비롯한 입력 장치(들)(112)를 구비할 수 있다. 디 스플레이, 스피커, 프린터 등과 같은 출력 장치(들)(114)도 포함될 수 있다.
또한, 계산 장치(100)는 장치가 예를 들어 네트워크를 통해 다른 계산 장치(118)와 통신할 수 있게 하는 통신 접속부(116)를 포함한다. 네트워크는 인트라넷 및 익스트라넷을 포함하는 다른 대형 네트워크 뿐만 아니라 로컬 에리어 네트워크 및 와이드 에리어 네트워크를 포함하지만, 이에 한정되지 않는다. 통신 접속부(116)는 통신 매체의 일예이다. 통신 매체는, 전형적으로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전달 메카니즘과 같은 변조된 데이터 신호에서의 다른 데이터에 의해 구현될 수 있으며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는, 신호에서 정보를 그러한 방식으로 인코딩하도록 설정되거나 변경된 특징들중 하나 이상을 갖는 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 유선 접속부와 같은 유선 매체, 및 어쿠스틱, RF, 적외선, 다른 무선 매체와 같은 무선 매체를 포함하지만, 이에 한정되지 않는다. 본 명세서에서 사용하는 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체 모두를 포함한다.
전자 장치들 간의 데이터 동기화
도 2는 본 발명에 따라 전자 장치들 간에 데이터를 동기화하는 시스템을 나타내는 기능 블록도이다. 이 시스템은, 전자 장치(200, 210), 데이터베이스(220), 필터(240), 동기화 엔진(250), 및 애플리케이션 프로그램 인터페이스(API; 260)를 포함한다. 전자 장치들(200, 210)은 정보를 전자 통신하는 임의의 장치일 수 있다. 예를 들어, 전자 장치들(200, 210)은 도 1을 참조하여 상기한 바와 같은 계산 장치일 수 있다.
데이터베이스(220)는 파일과 결합된 정보를 포함한다. 일실시예에서, 데이터베이스(220)는 전자 장치(200 및/또는 210)의 메모리 컴포넌트에서 이용가능하다. 다른 실시예에서, 데이터베이스(220)는 전자 장치(200, 210)의 외부에 존재하는 서버 상에 저장된다. 또다른 실시예에서, 데이터베이스(220)는 회사 인트라넷과 같은 내부 도메인과 관련된다.
데이터베이스(220)는 애플리케이션과 결합된 데이터 오브젝트를 설명하는 테이블(230)을 포함한다. 테이블 개요는 데이터베이스(220)에 저장되어 있는 메타데이터에서 규정된다. 또한, 데이터베이스(220)는 폴더 리스트를 포함할 수 있다. 예를 들어, 이메일 애플리케이션과 관련된 폴더는 인박스, 전송된 아이템, 및 삭제된 아이템을 포함할 수 있다. 테이블(230)은 각 폴더와 관련된 정보 및 폴더 내의 각 아이템과 관련된 정보를 포함할 수 있다. 일실시예에서, 하나의 테이블은 부(parent) 폴더와 관련된 다른 테이블을 가리킬 수 있다.
데이터베이스(220)는 아이템에 발생하는 임의의 변경을 포함하여 장치 애플리케이션과 결합된 아이템을 추적한다. 데이터베이스(220)는, 아이템이 이러한 데이터베이스(220)와 관련되는 전자 장치중 어느 것이 동기화 프로세스를 구동하는지에 대한 정보를 포함하는 아이템 상태를 유지한다. 전자 장치(200 또는 210)와 결합된 데이터가 변경되면, 이 변경도 데이터베이스(220)에서 구현된다. 이후, 데이터베이스(220)는, 전자 장치(210 또는 200)가 데이터베이스(220)로부터 데이터를 검색하도록 그리고 데이터가 전자 장치(210 또는 200) 상에서 갱신되도록 저장된 데이터에 대한 변경을 전자 장치(210 또는 200))에게 통지한다. 데이터와 결합된 애플리케이션은 데이터에 발생하는 변경을 전자 장치(200, 210)에게 연속하여 통지한다.
예를 들어, 데이터 변경은 인박스에 도착하는 새로운 이메일 메시지, 입력되는 새로운 달력 아이템, 또는 수신되는 새로운 회의 요구를 포함할 수 있다. 다른 예에서, 데이터 변경은 전자 장치(200 또는 210)에서 새로운 아이템의 생성을 포함할 수 있다. 또다른 실시예에서, 데이터 변경은 데이터베이스(220)내의 폴더 이름 변경을 포함할 수 있다.
전자 장치(200, 210)는 필터(240)를 이용하여 데이터베이스(220)로부터 특정 아이템의 검색을 요구할 수 있다. 이 아이템은 자신에게 어떤 변경이 행해졌는지에 따라 분류될 수 있다. 예를 들어, 수정된 아이템의 분류는 새롭게 추가된 아이템, 수정된 아이템, 소프트 삭제된 아이템, 및 삭제된 아이템을 포함한다. 소프트 삭제된 아이템은 전자 장치(200 또는 210)와 예전에 결합된 필터링한 아이템을 가리키지만 이 아이템은 더 이상 특정한 필터 범위 내에 존재하지 않는다. 일예로, 필터(240)는 2일 기간 내에 이메일 애플리케이션과 결합된 인박스 폴더에서 수신한 모든 아이템을 제공하도록 설정될 수 있다. 아이템이 2일을 지나게 되면, 이 아이템은 소프트 삭제된 것이라 고려할 수 있다.
전자 장치(200, 210)는 필터(240)에 의해 테이블(230)로부터 요구한 정보를 검색할 수 있다. 전자 장치(200, 210)가 요구한 아이템과 결합된 폴더와 동기화하면, 전자 장치(200, 210)와 결합된 설정은, 이전의 동기화 후 변경된 요구 아이템 만이 전자 장치(200, 210)로 전송되도록 결정된다. 일실시예에서, 데이터 변경을 요구하는 장치로부터 데이터베이스(220)로 전송되는 추가된 아이템, 수정된 아이템, 소프트 삭제된 아이템, 및 삭제된 아이템에 따른 데이터 변경은, 후속 동기화동안 요구 장치로 리턴되지 않는다.
필터(240)는 데이터베이스(220)의 테이블(230)에 액세스하는 문의로서 구현된다. 필터(240)는 수정된 아이템용 탐색을 신속 처리하도록 요구 아이템을 위한 인덱스를 제공한다. 따라서, 아이템이 필터(240)에 의해 설정되는 파라미터 내에 속하는지 여부를 결정하기 위해 데이터베이스(220)의 모든 아이템을 탐색할 필요는 없다. 예를 들어, 사용자는 소정의 회의 요구를 전송한 동일인에 의해 전송되는 모든 달력 아이템을 요구할 수 있다. 필터(240)는 개인과 결합된 캘린더 아이템에 대하여 데이터베이스(220)에 있는 테이블(230)에 대해서만 탐색한다. 요구된 아이템은 요구 전자 장치에 리턴된다.
API(260)는 애플리케이션과 결합된 인터페이스를 노출한다. 일 실시예에서, API(260)는 이메일 애플리케이션과 결합된 인터페이스를 노출하는 메시징 애플리케이션이다.
동기화 엔진(250)은 데이터베이스(220)를 제어한다. 동기화 엔진(250)은 API(260)를 구비한 데이터베이스(250)와 교섭하여 동기화 엔진(250)이 활성화될 때마다 API(260)와 통신하여 모든 아이템을 열거하게 된다. 아이템 열거는 API(260)에 있는 모든 아이템이 데이터베이스(220)에 있어서 데이터베이스(220)와 API(260) 간에 일대일 대응하게 되는 것을 보장한다. 일 실시예에서, API(260)와 데이터베 이스(220) 간의 관계는 모든 아이템이 API(260)에 있는 모든 폴더에 저장되지 않도록 제한될 수 있다. 이 장치가 한번에 하나의 애플리케이션과 결합된 데이터를 동기화하기 때문에 아이템은 동기화되는 애플리케이션과 결합된 폴더에만 저장될 수 있다.
일 예에서, 동기화 엔진(250)은 주어진 폴더에 있는 아이템이 변경되었거나 전자 장치(200)에 있는 다른 폴더로 이동하였다는 통지를 수신한다. 동기화 엔진(250)은, 전자 장치(210)가 데이터베이스(220)로부터 변경된 데이터를 검색하도록 전자 장치(210)로의 호출을 트리거한다. 전자 장치(210)가 데이터베이스(220)로부터 변경된 데이터를 요구할 때, 대응하는 폴더와 결합된 프로파일 정보 또한 데이터베이스(220)로부터 검색될 수 있다. 프로파일 정보는 요구를 반복할지에 대한 여부를 결정할 수 있는 이전 동기화 시도에 관한 정보를 포함한다. 프로파일 정보를 사용하여 복구가 필요한지 여부에 대해 결정할 수 있다.
동기화 엔진(220)은 이전 필터링 프로세스의 결과를 검사하여 전자 장치(200) 상에 저장된 데이터를 결정한다. 새로운 필터링 프로세스는 추가, 수정, 소프트 삭제, 또는 삭제된 전자 장치(200) 상의 아이템 리스트를 계산한다. 이들 전자 장치(200, 210) 모두에서 동일한 동일한 아이템을 변경하여 서로 다른 버전의 아이템이 각각의 전자 장치에 존재하도록 할 수 있다. 예를 들면, 회의 아이템과 결합된 시작 또는 종료 시간이 전자 장치(200)에서 변경되고 또한 전자 장치(210)에서 서로 다른 시간으로 변경된다. 따라서, 전자 장치(200)에 저장된 데이터와 전자 장치(210)에 저장된 데이터 간에 충돌이 발생한다. 그러한 임의의 충돌은 동 기화 프로세스동안 해결된다.
도 3은 수정된 전자 장치와 요구 전자 장치 간에 데이터를 동기화하는 프로세스를 도시하는 본 발명에 따른 동작 흐름도이다. 수정된 전자 장치는 변경된 메타데이터를 포함한다. 요구 전자 장치는 상기 장치와 관계된 데이터베이스로부터 변경된 메타데이터를 요구하여 메타데이터가 요구 장치 상에서 갱신되도록 한다. 메타데이터는 데이터 및 데이터의 설명 모두를 포함할 수 있다.
상기 프로세스는, 메타데이터가 수정된 전자 장치 상에서 변경되고 결합된 데이터베이스 상에 저장될 때 동기화 프로세스가 초기화되는 시작 블록에서 시작한다. 블록(300)에서, 요구 전자 장치는 상기 변경된 메타데이터를 포함하는 데이터베이스를 선택한다. 요구 전자 장치는 동기화 엔진에 의해 데이터베이스에 대한 변경을 통지받을 수 있다. 데이터베이스는 요구 전자 장치 내부 또는 외부에 있을 수 있다.
블록(305)에서, 문의는 데이터베이스로부터 변경된 메타데이터를 검색하도록 설계된다. 각각의 문의는 변경된 메타데이터의 유형을 위해 특히 설계되어 마지막 동기화 이후 변경된 요구 메타데이터만이 검색되도록 한다. 블록(310)에서, 요구 전자 장치는 갱신된 메타데이터를 위해 데이터베이스에 문의한다.
블록(315)에서, 데이터베이스는 수정된 전자 장치로부터 변경된 메타데이터의 리스트를 검색한다. 변경된 데이터와 관계된 고유 식별자는 또한 데이터베이스로 전송될 수 있다. 일 실시예에서, 고유 식별자는 데이터가 변경될 때마다 갱신되는 변경 횟수이다(즉, 고유 식별자에 대한 레퍼런스가 삭제된다).
블록(320)에서, 갱신될 메타데이터의 리스트 상에 메타데이터와 관계된 생성 번호가 변경된 메타데이터와 관계된 생성 번호와 동일한지 여부를 결정한다. 메타데이터는, 메타데이터가 초기에 생성, 전송, 수정 또는 그렇지 않다면 동기화 엔진에 의해 처음 만날때 생성 번호가 할당된다. 생성 번호를 사용하여 마지막 동기화 이래로 메타데이터가 변경되었는지 여부를 결정한다. 생성 번호가 마지막 동기화가 수행된 이래로 동일하다면, 일부 메타데이터는 갱신을 요구한다. 일 실시예에서, 변경된 메타데이터의 각 유형은 개별 생성 번호와 결합된다. 생성 번호가 동일하다면, 처리는 블록(355)으로 진행한다. 생성 번호가 동일하지 않다면, 처리는 결정 블록(325)으로 진행한다.
결정 블록(325)에서, 생성 번호가 예상보다 작은지 여부가 결정된다. 생성 번호가 예상보다 작다면, 처리는 블록(335)을 진행한다. 생성 번호가 예상보다 작지 않다면, 처리는 블록(330)으로 진행하여 동기화 에러가 클라이언트에게 전송된다. 다음에, 처리는 종료 블록(395)에서 종료한다.
블록(335)에서, 요구 전자 장치는 데이터베이스로부터 갱신될 메타데이터를 요구하여 요구 장치가 문의를 처리할 수 있도록 한다. 블록(340)에서, 요구는 갱신된 메타데이터와 결합된 프로파일 정보를 얻음으로써 충족된다. 프로파일 정보는 이전 동기화 시도에 관한 정보를 포함하여 갱신 요구가 반복되고 있는지 여부를 결정할 수 있도록 한다. 블록(345)에서, 프로파일 정보와 정합하는 메타데이터가 결정된다. 블록(350)에서, 마지막 갱신 요구를 지속하는 커맨드는 현재 갱신 요구로부터의 커맨드로서 해결된다. 처리는 블록(370)으로 진행한다.
블록(355)에서, 요구 전자 장치는 데이터베이스로부터 갱신될 메타데이터를 요구하여 요구 장치가 문의를 처리할 수 있도록 한다. 블록(360)에서, 요구는 갱신된 메타데이터와 결합된 프로파일 정보를 얻음으로써 충족된다. 블록(365)에서, 프로파일 정보와 정합하는 메타데이터가 결정된다.
블록(370)에서, 이전 탐색 필터는 프로파일 정보와 정합하는 메타데이터를 위해 현재 탐색 필터에 비교된다. 블록(375)로 진행하여, 메타데이터를 분류한다. 일실시예에서, 메타데이터는 다음에 따르는 분류로 분리된다: 즉, 새롭게 추가된 아이템, 수정된 아이템, 소프트 삭제된 아이템, 및 삭제된 아이템의 분류이다.
블록(380)으로 이동하여, 충돌 해결을 수행하여 상이한 전자 장치 상에 저장된 동일한 메타데이터 아이템의 상이한 버전간의 임의의 충돌을 해결한다. 요구하는 전자 장치로 전송할 각 메타데이터는, 메타데이터 아이템 간에 임의의 충돌을 해결하기 위해 그 요구하는 전자 장치로 이전에 전송된 메타데이터 리스트와 비교된다.
블록(385)로 이동하여, 변경된 메타데이터의 최종 리스트가 생성되며, 변경된 메타데이터가 요구하는 전자 장치 상에서 갱신되도록 그 요구하는 전자 장치에게 전달된다. 메타데이터를 갱신하는 것은, 새로운 메타데이터 생성, 메타데이터 삭제, 또는 메타데이터를 상이한 폴더로 이동시키는 것과 같은 메타데이터 수정을 포함할 수 있다. 블록(390)으로 계속 진행하여, 메타데이터와 결합된 생성 번호가 변경된다. 이후, 종료 블록(395)에서 처리를 종료한다.
일실시예에서, 가장 최근의 갱신 요구와 관련된 데이터의 백업은, 전자 장치 간의 통신이 동기화동안 인터럽트되면 데이터가 복구될 수 있도록 저장된다. 데이터는, 네트워크로부터 접속 해제되는 전자 장치로 인해, 또는 시스템 고장으로 인해 손실될 수 있다.
상기한 상세, 예, 및 데이터는 본 발명의 구성의 제조 및 이용을 완전하게 설명해준다. 본 발명의 많은 실시예는 본 발명의 사상 및 범위로부터 벗어나지 않고 실시할 수 있으며, 본 발명은 첨부한 청구범위에 속한다.
본 발명에 따라, 복구 동기화는 동기화 처리 동안에 통신 장애로 인해 발생하는 데이터의 손실을 복구한다.

Claims (21)

  1. 제1 전자 장치와 제2 전자 장치 간의 데이터를 동기화하는 컴퓨터로 구현되는 방법으로서,
    상기 제1 전자 장치와 상기 제2 전자 장치 간에 갱신할 메타데이터를 포함하는 데이터베이스를 선택하는 단계와,
    선택한 상기 데이터베이스의 유형에 응답하여, 상기 제1 전자 장치로부터 상기 제2 전자 장치로, 상기 갱신할 메타데이터의 아이템 리스트가 상기 제2 전자 장치에 의해 생성되는지와 같은 문의를 전송하는 단계 - 상기 리스트는 상기 제1 전자 장치 상에 존재하지 않고 상기 제2 전자 장치 상에 존재하는 상기 메타데이터와 결합된 정보를 반영함 - 와,
    상기 제1 전자 장치로부터 상기 제2 전자 장치로 갱신할 상기 정보를 전송하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    특히 상기 갱신할 메타데이터의 유형을 위한 상기 문의를 설계하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서,
    상기 제2 전자 장치는 갱신한 메타데이터를 위해 상기 데이터베이스를 문의하는 방법.
  4. 제1항에 있어서,
    상기 데이터베이스로부터 상기 갱신할 메타데이터의 아이템 리스트를 검색하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 제1 전자 장치 상에서의 변경된 메타데이터와 결합된 생성 번호를 상기 제2 전자 장치 상에서의 상기 갱신할 메타데이터와 비교하여 상기 제1 전자 장치 상에 존재하지 않고 상기 제2 전자 장치 상에 존재하는 메타데이터와 결합된 정보를 결정하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    메타데이터 갱신의 반복 요구를 결정하도록 상기 갱신할 메타데이터와 결합된 프로파일을 획득하는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 메타데이터를 유형별로 분류하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서,
    상기 메타데이터의 동일한 버전이 상기 제1 전자 장치와 상기 제2 전자 장치 상에 존재하도록 상기 제1 전자 장치와 상기 제2 전자 장치 상에 저장된 메타데이터 간의 충돌을 해결하는 단계를 더 포함하는 방법.
  9. 제1 전자 장치와 제2 전자 장치 간의 데이터를 동기화하는 시스템으로서,
    상기 제1 전자 장치와 상기 제2 전자 장치에 연결되며, 상기 제1 전자 장치와 상기 제2 전자 장치 상에서 메타데이터로의 변경이 구현되는 데이터베이스와,
    상기 데이터베이스에 연결되며, 갱실한 메타데이터의 아이템 리스트 - 상기 리스트는 상기 제1 전자 장치 상에 존재하지 않고 상기 제2 전자 장치 상에 존재하는 상기 메타데이터와 결합된 정보를 반영함 - 가 상기 제2 전자 장치에 의해 생성되도록 상기 제2 전자 장치에 문의를 전송하며, 상기 제1 전자 장치로부터 상기 제2 전자 장치로 갱신할 상기 정보를 전송하는 동기화 엔진
    을 포함하는 시스템.
  10. 제9항에 있어서,
    상기 데이터베이스는 상기 제1 전자 장치와 상기 제2 전자 장치로 이루어지는 그룹중 적어도 하나의 메모리 컴포넌트에서 이용가능한 시스템.
  11. 제9항에 있어서,
    갱신할 상기 정보는 상기 데이터베이스로부터 검색되는 시스템.
  12. 제9항에 있어서,
    특정 정보가 상기 데이터베이스로부터 검색가능하도록 상기 데이터베이스에 연결된 필터를 더 포함하고,
    상기 특정 정보는 상기 정보에 어떤 변경이 행해졌는지에 기초하는 정보 분류를 포함하는 시스템.
  13. 제12항에 있어서,
    상기 정보 분류는 새롭게 추가된 정보, 수정된 정보, 소프트 삭제 정보, 및 삭제된 정보를 포함하는 시스템.
  14. 제9항에 있어서,
    상기 동기화 엔진은, 상기 동기화 엔진이 활성화될 때마다 애플리케이션 프로그램 인터페이스와 통신하고 상기 정보를 나열하도록 상기 데이터베이스를 상기 애플리케이션 프로그램 인터페이스로 조정하는 시스템.
  15. 제14항에 있어서,
    상기 정보의 나열은, 상기 애플리케이션 프로그램 인터페이스의 각 아이템이 상기 데이터베이스에도 포함되는 것을 보장하는 시스템.
  16. 제9항에 있어서,
    상기 데이터베이스는 데이터 갱신 요구가 필요한지 여부를 결정하는데 사용되는 프로파일 정보를 포함하는 시스템.
  17. 제9항에 있어서,
    상기 데이터베이스는 복구 동기화가 필요한지 여부를 결정하는데 사용되는 프로파일 정보를 포함하는 시스템.
  18. 제17항에 있어서,
    복구 동기화는, 동기화가 중단될 때 상기 메타데이터가 복구가능하도록 가장 최근의 정보 갱신 요구와 결합된 상기 메타데이터의 백업을 저장하는 것을 포함하는 시스템.
  19. 제1 전자 장치와 제2 전자 장치 간의 데이터를 동기화하는 컴퓨터 실행가능 명령을 구비하는 컴퓨터 판독가능 매체로서,
    상기 제1 전자 장치와 상기 제2 전자 장치 간에 갱신할 메타데이터를 포함하는 데이터베이스를 선택하는 단계와,
    선택한 상기 데이터베이스의 유형에 응답하여, 상기 제1 전자 장치로부터 상기 제2 전자 장치로, 상기 갱신할 메타데이터의 아이템 리스트가 상기 제2 전자 장 치에 의해 생성되도록 특히 상기 갱신할 메타데이터의 유형을 위해 설계한 문의를 전송하는 단계 - 상기 리스트는 상기 제1 전자 장치 상에 존재하지 않고 상기 제2 전자 장치 상에 존재하는 정보를 반영함 - 와,
    상기 제1 전자 장치로부터 상기 제2 전자 장치로 상기 갱신할 메타데이터와 결합된 정보를 전송하는 단계
    를 포함하는 컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    상기 제1 전자 장치 상에서의 변경된 메타데이터와 결합된 생성 번호를 상기 제2 전자 장치 상에서의 상기 갱신할 메타데이터와 비교하여 상기 제1 전자 장치 상에 존재하지 않고 상기 제2 전자 장치 상에 존재하는 메타데이터와 결합된 정보를 결정하는 단계를 더 포함하는 컴퓨터 판독가능 매체.
  21. 제1 전자 장치와 제2 전자 장치 간의 데이터를 동기화하는 시스템으로서,
    상기 제1 전자 장치와 상기 제2 전자 장치 간에 갱신할 메타데이터를 포함하는 데이터베이스를 선택하는 수단과,
    상기 제1 전자 장치로부터 상기 제2 전자 장치로, 상기 갱신할 메타데이터의 아이템 리스트가 상기 제2 전자 장치에 의해 생성되도록 문의를 전송하는 수단 - 상기 리스트는 상기 제1 전자 장치 상에 존재하지 않고 상기 제2 전자 장치 상에 존재하는 상기 메타데이터와 결합된 정보를 반영함 - 과,
    상기 제1 전자 장치로부터 상기 제2 전자 장치로 갱신할 상기 정보를 전송하는 수단
    을 포함하는 시스템.
KR1020050037494A 2004-05-05 2005-05-04 전자 장치들 간의 데이터 동기화를 위한 방법 및 시스템 KR20060045897A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/839,299 US20050262166A1 (en) 2004-05-05 2004-05-05 Method and system for synchronizing data between electronic devices
US10/839,299 2004-05-05

Publications (1)

Publication Number Publication Date
KR20060045897A true KR20060045897A (ko) 2006-05-17

Family

ID=34939690

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050037494A KR20060045897A (ko) 2004-05-05 2005-05-04 전자 장치들 간의 데이터 동기화를 위한 방법 및 시스템

Country Status (5)

Country Link
US (1) US20050262166A1 (ko)
EP (1) EP1594071A3 (ko)
JP (1) JP2005322250A (ko)
KR (1) KR20060045897A (ko)
CN (1) CN1694073A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120034892A (ko) * 2010-10-04 2012-04-13 엘지전자 주식회사 이동 단말기 및 미디어 파일 송수신 방법
WO2014169142A1 (en) * 2013-04-11 2014-10-16 Pivotal Software, Inc. Partition level backup and restore of a massively parallel processing database

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7933868B2 (en) * 2004-11-04 2011-04-26 Microsoft Corporation Method and system for partition level cleanup of replication conflict metadata
US20060101064A1 (en) 2004-11-08 2006-05-11 Sharpcast, Inc. Method and apparatus for a file sharing and synchronization system
US9053164B2 (en) * 2005-05-05 2015-06-09 International Business Machines Corporation Method, system, and program product for using analysis views to identify data synchronization problems between databases
EP1938579A2 (en) * 2005-10-05 2008-07-02 Koninklijke Philips Electronics N.V. A device for handling data items that can be rendered to a user
US8001077B2 (en) * 2005-12-14 2011-08-16 International Business Machines Corporation Distributed method for synchronizing and updating bookmarks on multiple computer devices
CN100445997C (zh) * 2005-12-30 2008-12-24 英业达股份有限公司 数据同步方法与系统
US7447854B1 (en) * 2005-12-30 2008-11-04 Vmware, Inc. Tracking and replicating changes to a virtual disk
WO2007084958A1 (en) * 2006-01-18 2007-07-26 Telefonaktiebolaget L M Ericsson (Publ) Dependency notification
US7617219B2 (en) * 2006-06-22 2009-11-10 International Business Machines Corporation Enhanced handling of repeated information in a web form
US8140785B2 (en) * 2006-06-29 2012-03-20 International Business Machines Corporation Updating metadata in a logical volume associated with a storage controller for data units indicated in a data structure
KR101112736B1 (ko) * 2006-11-03 2012-03-13 삼성전자주식회사 휴대용 콘텐츠 재생 장치와 콘텐츠 저장 장치 간 콘텐츠상태 목록의 동기화 방법, 휴대용 콘텐츠 재생 장치,콘텐츠 저장 장치
US9317179B2 (en) * 2007-01-08 2016-04-19 Samsung Electronics Co., Ltd. Method and apparatus for providing recommendations to a user of a cloud computing service
US7779299B2 (en) * 2007-04-24 2010-08-17 Ianywhere Solutions, Inc. Efficiently re-starting and recovering synchronization operations between a client and server
US20090083566A1 (en) * 2007-09-26 2009-03-26 Momenee Karen N Method and System for Using Meta-Information to Manage Data Object Synchronization
CN101610276A (zh) * 2008-06-16 2009-12-23 华为技术有限公司 数据软删除、恢复和同步方法及终端和系统
JP5345998B2 (ja) * 2010-11-16 2013-11-20 レノボ・シンガポール・プライベート・リミテッド コンピュータ・システムの制御方法およびコンピュータ
CN102801693B (zh) * 2011-05-26 2017-03-15 腾讯科技(北京)有限公司 一种外网信息的处理方法和系统
US20130086437A1 (en) * 2011-09-30 2013-04-04 Microsoft Corporation Communicating unexpected collaboration server responses on reconnection
US9330106B2 (en) 2012-02-15 2016-05-03 Citrix Systems, Inc. Selective synchronization of remotely stored content
US10057318B1 (en) 2012-08-10 2018-08-21 Dropbox, Inc. System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
CN103077165A (zh) * 2012-12-31 2013-05-01 威盛电子股份有限公司 自然语言对话方法及其系统
JP6028658B2 (ja) 2013-03-28 2016-11-16 富士通株式会社 端末装置、変換文字候補同期方法及び変換文字候補同期プログラム
CN105593839B (zh) * 2013-12-17 2018-08-28 日立数据管理有限公司 分布式灾难恢复文件同步服务器系统
US9886443B1 (en) * 2014-12-15 2018-02-06 Nutanix, Inc. Distributed NFS metadata server
US9798793B1 (en) * 2014-12-30 2017-10-24 EMC IP Holding Company LLC Method for recovering an index on a deduplicated storage system
US11334596B2 (en) 2018-04-27 2022-05-17 Dropbox, Inc. Selectively identifying and recommending digital content items for synchronization
WO2020177732A1 (en) * 2019-03-06 2020-09-10 Huawei Technologies Co., Ltd. Data synchronization in a p2p network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901327A (en) * 1996-05-28 1999-05-04 Emc Corporation Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring
US6212529B1 (en) * 1996-11-13 2001-04-03 Puma Technology, Inc. Synchronization of databases using filters
US6272545B1 (en) * 1997-10-24 2001-08-07 Microsoft Corporation System and method for interaction between one or more desktop computers and one or more mobile devices
US20050055382A1 (en) * 2000-06-28 2005-03-10 Lounas Ferrat Universal synchronization
AU2001277074A1 (en) * 2000-07-24 2002-02-05 Saint-Gobain Ceramics And Plastics, Inc. Process for cleaning ceramic articles
US6611849B1 (en) * 2000-09-29 2003-08-26 Palm Source, Inc. System for synchronizing databases on multiple devices utilizing a home base
WO2002075539A2 (en) * 2001-03-16 2002-09-26 Novell, Inc. Client-server model for synchronization of files
US7149813B2 (en) * 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
US7761535B2 (en) * 2001-09-28 2010-07-20 Siebel Systems, Inc. Method and system for server synchronization with a computing device
KR100718613B1 (ko) * 2001-10-22 2007-05-16 애플 인크. 호스트 컴퓨터와 미디어 플레이어의 미디어 내용 동기화 방법
GB0128243D0 (en) * 2001-11-26 2002-01-16 Cognima Ltd Cognima patent
AU2003219896A1 (en) * 2002-02-25 2003-09-09 Siebel Systems, Inc. (A Corporation Of Delaware) Method and system for server-based operations in server synchronization with a computing device
US6721871B2 (en) * 2002-04-02 2004-04-13 Nokia Corporation Method and apparatus for synchronizing data stores with respect to changes in folders
US7076567B1 (en) * 2002-04-25 2006-07-11 Oracle International Corporation Simplified application object data synchronization for optimized data storage
US7334218B2 (en) * 2002-09-02 2008-02-19 International Business Machines Corporation Method for adaptively assigning of data management applications to data objects

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120034892A (ko) * 2010-10-04 2012-04-13 엘지전자 주식회사 이동 단말기 및 미디어 파일 송수신 방법
WO2014169142A1 (en) * 2013-04-11 2014-10-16 Pivotal Software, Inc. Partition level backup and restore of a massively parallel processing database

Also Published As

Publication number Publication date
JP2005322250A (ja) 2005-11-17
EP1594071A2 (en) 2005-11-09
CN1694073A (zh) 2005-11-09
US20050262166A1 (en) 2005-11-24
EP1594071A3 (en) 2005-11-16

Similar Documents

Publication Publication Date Title
KR20060045897A (ko) 전자 장치들 간의 데이터 동기화를 위한 방법 및 시스템
EP1845688B1 (en) Method, system, client terminal and server for realizing data synchronization
KR100994139B1 (ko) 데이터가 여러 데이터 저장부들에 저장되는 방식을동기화하기 위한 방법 및 장치
US8015319B2 (en) Method, system, client and server for implementing data sync
US7440985B2 (en) Filtered replication of data stores
CN101093497B (zh) 文档管理服务器、文档管理方法及管理文档使用的系统
EP1829286B1 (en) Systems and methods for continuous pim synchronization between a host computer and a client handheld device
US7930270B2 (en) Managing files on multiple computing devices
US20120179683A1 (en) Method and System for Attribute Management in a Namespace
JP5193034B2 (ja) クエリベースの同期化
KR20070084302A (ko) 범용 데이터 동기화를 위한 시스템 및 방법
CN101459503A (zh) 一种实现数据同步的方法和装置
JP2000057032A (ja) 複数のサ―バでオブジェクトを同期させる汎用システム、2つのサ―バでオブジェクトを同期させるシステム、2つのサ―バでオブジェクトを同期させる方法、2つのサ―バに存在するオブジェクトがオブジェクトのタイプに関係なく同期される汎用同期システム、2つのサ―バでのオブジェクトの同期における競合を検出して解消する方法
EP2378437A1 (en) Data synchronization methods in communication systems
CN109376121B (zh) 一种基于ElasticSearch全文检索的文件索引系统及方法
US7900004B2 (en) Converting backup copies of objects created using a first backup program to backup copies created using a second backup program
JP2011527799A (ja) 個人情報ファイル管理ツール
US11210212B2 (en) Conflict resolution and garbage collection in distributed databases
EP1645978A1 (en) Organization of static and dynamic data sets
US20060080288A1 (en) Interaction of static and dynamic data sets
US8150802B2 (en) Accumulating star knowledge in replicated data protocol
CN105574192A (zh) 一种计算机文件检索方法
US20080059538A1 (en) Method and system for synchronizing offline records
US8615491B2 (en) Archiving tool for managing electronic data
JPH11327989A (ja) データベース管理装置、および、そのプログラムが記録された記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application