KR20040010677A - 서로 다른 클라이언트 사이의 데이터 동기화 시스템,클라이언트들간의 업데이트 동기화 방법, 업데이트의 복제방법, 및 컴퓨터 프로그램 제품 - Google Patents

서로 다른 클라이언트 사이의 데이터 동기화 시스템,클라이언트들간의 업데이트 동기화 방법, 업데이트의 복제방법, 및 컴퓨터 프로그램 제품 Download PDF

Info

Publication number
KR20040010677A
KR20040010677A KR10-2003-7015759A KR20037015759A KR20040010677A KR 20040010677 A KR20040010677 A KR 20040010677A KR 20037015759 A KR20037015759 A KR 20037015759A KR 20040010677 A KR20040010677 A KR 20040010677A
Authority
KR
South Korea
Prior art keywords
cache
update
data
synchronization
backend
Prior art date
Application number
KR10-2003-7015759A
Other languages
English (en)
Other versions
KR100592647B1 (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 KR20040010677A publication Critical patent/KR20040010677A/ko
Application granted granted Critical
Publication of KR100592647B1 publication Critical patent/KR100592647B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

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)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은, 고유 캐시 식별자(ID)를 할당하는 것에 의해 입력되는 업데이트를 영구 저장 내에 영구적으로 버퍼링하기 위해 캐시를 추가적으로 제공하는 백엔드 데이터 저장 장치에 링크된 중앙 동기화 서버를 이용하여 서로 다른 클라이언트 사이에서 데이터를 동기화하기 위한 새로운 동기화 아키텍처에 대해서 개시한다. 신규 엔트리를 캐시에 기록하는 동기화 서버와 백엔드로부터 캐시로 복제되는 업데이트 사이의 기록 충돌을, 캐시 ID에 기반한 차단 메커니즘을 이용하여 해결하는 것에 의해서, 동기화 세션 도중에 동일 캐시 ID를 갖는 클라이언트로부터 입력되는 업데이트가 캐시 내에 완전히 기록되지 않는 한, 백엔드 업데이트가 차단되게 된다. 본 발명은, 백엔드 데이터 저장 장치를 차단하면서 중앙 동기화 서버와 접속된 다수의 클라이언트를 갖는 동기화 아키텍처에 특히 적합하고, 백엔드 데이터 저장 장치로의 접속 및 전송을 최소화한다.

Description

서로 다른 클라이언트 사이의 데이터 동기화 시스템, 클라이언트들간의 업데이트 동기화 방법, 업데이트의 복제 방법, 및 컴퓨터 프로그램 제품{SYSTEM AND METHOD FOR A CACHING MECHANISM FOR A CENTRAL SYNCHRONIZATION SERVER}
동기화는, 서로 다른 클라이언트, 예를 들면 노트북 달력(Notebook calendar) 및 개인 휴대 정보 단말기(Personal Digital Assistant : PDA) 달력 등의 사이에서 데이터 일치성을 유지하고, 이 클라이언트 데이터를 서로 다른 식별자를 갖는 서로 다른 데이터 포맷으로 저장하는 것으로서 규정될 수 있다. 또한, 동기화 데이터는 완전한 컴퓨터 프로그램 또는 이 프로그램의 부분으로 이루어질 수 있다.
종종, 중앙 동기화 서버는 서로 다른 클라이언트 사이에서 데이터를 교환하는 데 이용될 수 있다(도 1 참조). 중앙 동기화 서버는, 모든 데이터를 국부적으로 저장하거나(즉, 전용 데이터 포맷을 사용할 때)-일반적으로 높은 로드(load)를 갖는 캐리어(carriers)(예를 들면, Yahoo 등)에 의해 이용됨-, 또는 DB2, Domino, 또는 Exchange 등과 같은 백엔드 데이터 저장 장치에 직접적으로 액세스 할 수 있다(도 3 참조). 백엔드 데이터 저장 장치에 대한 직접적인 액세스는, 동기화 프로세스가 중앙 동기화 서버 및 백엔드 데이터 저장 장치 사이에서의 트래픽(traffic)에 의존하여 매우 시간 소모적일 수 있다는 단점을 갖는다. 이는 사용자가 백엔드 데이터 저장 장치와의 접속 시간을 소모해야 하기 때문에, 이동 전화의 사용자에게 매우 불리할 수 있다.
미국 특허 5,974,238은 휴대용 컴퓨터 및 호스트 컴퓨터 사이의 동적 동기화(dynamic synchronization)를 수행하는 장치를 설명하는 것으로서, 각각 적어도 하나의 공통 데이터 세트(common data set)를 포함하는 복수의 데이터 세트를 갖고, 각 컴퓨터는 공통 데이터 세트의 복사본을 갖는다. 휴대용 컴퓨터는 프로세서, 통신 포트(communication port) 및 데이터 동기화 엔진(data synchronization engine)을 갖는다. 데이터 동기화 엔진은 의사-캐시(pseudo-cache) 및 의사-캐시에 접속된 하나 이상의 태그(tags)를 갖는다. 데이터가 주 메모리(main memory)에 기록될 때마다, 및/또한 연관된 의사-캐시 태그가 무효화될 때, 데이터는 동기화된다. 프로토콜의 세트에 완전히 부착시키는 것에 의해서, 시스템은 누가 데이터를 소유하는지, 누가 데이터의 복사본을 갖는지, 누가 데이터를 수정했는지를 항상 알고있기 때문에, 데이터 일관성(data coherency)이 달성된다. 데이터 동기화 엔진은 복사본 내의 임의의 차이를 분석하고, 호스트 컴퓨터 및 휴대용 컴퓨터 내의 공통 데이터 세트의 동일한 복사본의 저장을 허용한다.
이 종래 기술의 특허는 백엔드 데이터 저장 장치를 이용하는 동기화 아키텍처(synchronization architecture)에 관한 것이 아니다. 그러므로, 백엔드 데이터 저장 장치에 관련되어 앞서 언급된 문제는 이 종래 기술의 특허에 의해서 처리되거나 해결될 수 없다.
그러므로, 본 발명의 목적은, 종래 기술 해결책에서의 단점을 회피하면서, 백엔드 데이터 저장 장치와 링크된 중앙 동기화 서버를 사용하는 동기화 구조 내에서 데이터를 동기화하는 새로운 방법 및 시스템을 제공하는 것이다.
이 목적은 독립 청구항의 특징부에 의해서 해결될 수 있다. 추가적인 바람직한 실시예는 종속 청구항 내에 제시되어 있다.
본 발명은 서로 다른 클라이언트 사이에서 데이터의 동기화(synchronization)를 위한 방법 및 시스템에 관한 것으로, 특히 네트워크를 거쳐서 백엔드 데이터 저장 장치(Back End data store)와 링크(linked)된 중앙 동기화 서버(central synchronization server)를 이용하여 이동 클라이언트(mobile clients) 사이에서 데이터를 동기화하는 것에 관한 것이다.
도 1은 본 발명이 기반으로 할 수 있는 단순화된 동기화 아키텍처를 도시하는 도면,
도 2는 본 발명에 의해서 바람직하게 구현될 수 있는 SyncML 통신 프로토콜을 도시하는 도면,
도 3은 백엔드 데이터 저장 장치에 직접적으로 액세스하는 종래 기술의 동기화 아키텍처를 도시하는 도면,
도 4는 본 발명의 캐싱 메커니즘을 이용하는 동기화 아키텍처를 도시하는 도면,
도 5는 타임 스탬프를 제공하는 캐싱 메커니즘을 이용하여, 도 4에 도시된 본 발명의 동기화 아키텍처에 대한 바람직한 실시예를 도시하는 도면,
도 6은 중앙 동기화 서버를 거쳐 캐시에 대해서 클라이언트 사이의 업데이트를 동기화하는 방법 단계를 도시하는 도면,
도 7은 캐시를 가지고 백엔드 데이터 저장 장치의 업데이트를 복제하는 방법 단계를 도시하는 도면,
도 8은 백엔드 데이터 저장 장치를 가지고 캐시 내에서 발생되는 업데이트의 복제를 위한 방법 단계를 도시하는 도면,
도 9는 본 발명의 확대된 캐싱 메커니즘을 도시하는 도면.
본 발명은, 고유한 캐시 식별자(cache identifier)(ID)를 할당하는 것에 의해서 입력되는 업데이트(incoming update)를 영구 저장 장치 내부에 영구적으로 버퍼링(buffering)하기 위한 캐시를 추가적으로 제공하는 백엔드 데이터 저장 장치에 링크된 중앙 동기화 서버를 이용하여, 서로 다른 클라이언트 사이에서 데이터의 동기화를 위한 새로운 동기화 구조를 개시한다. 캐시에 신규 엔트리(엔트리)를 기록하는 동기화 서버 및 백엔드로부터 캐시로 복제된 업데이트 사이의 기록 충돌을,캐시 ID에 기반한 차단 메커니즘(blocking mechanism)을 이용하여 해결하는 것에 의해서, 동기화 세션 도중에 동일 캐시 ID를 갖는 클라이언트로부터의 입력된 업데이트가 캐시에 완전히 기록되지 않는 한, 백엔드 업데이트는 차단된다. 본 발명의 보다 바람직한 실시예에서, 타임 스탬프가 더 신규일 때에만, 캐시 내의 업데이트의 버퍼링을 가능하게 하는 캐싱 메커니즘에 의해서 타임 스탬프가 각 업데이트에 추가적으로 할당된다. 캐시 내에서 버퍼링되는 업데이트는 백엔드 데이터 저장 장치로부터 클라이언트로, 클라이언트로부터 백엔드 데이터 저장 장치로 캐싱 메커니즘에 의해서, 예를 들면 일괄 모드(batch mode) 또는 연속 모드(continuous mode) 등의 서로 다른 모드로 복제될 수 있다. 본 발명은, 백엔드 데이터 저장 장치의 차단물로서 중앙 동기화 서버와 접속되는 다수의 클라이언트를 갖는 동기화 아키텍처에 보다 적합하며, 백엔드 데이터 저장 장치로의 접속 및 전송은 최소화된다. 백엔드 데이터 저장 장치로부터 중앙 동기화 서버의 분리(decoupling) 및 캐시의 이용은, 캐싱 메커니즘이 업데이트 리퀘스트를 일괄하여 백엔드 데이터 저장 장치로 일괄한 것만을 전송할 수 있어서, 각 업데이트 리퀘스트에 대해서 백엔드 데이터 저장 장치를 접속시키는 것보다 더욱 효율적이기 때문에, 백엔드 저장으로의 직접적인 액세스보다 더 높은 로드를 취급할 수 있게 허용한다.
본 발명은 첨부된 도면을 참조하여 보다 세부적으로 설명될 것이다.
중앙 동기화 서버를 이용하는 서로 다른 클라이언트 사이의 동기화는, 전형적으로 아래의 단계로 이루어지는 동기화 프로토콜에 기반한다.
사전 동기화(pre-synchronization) : 실제 동기화를 준비하기 위해서, 이 단계의 실행 전에 몇몇 동작이 취해져야 한다. 이 동작은 인증(authentication), 허가(authorization) 및 클라이언트 자격의 판정으로 이루어진 그룹 내에 속한다. 인증은, 서버가 요구되는 대상이고, 클라이언트가 요구되는 대상이라는 것을 확인한다. 허가는, 클라이언트가 리퀘스트된 동작(예를 들면, 삭제, 업데이트 또는 오직 신규 엔트리의 생성 등)을 수행하도록 허용되는지 여부를 검사한다. 최종적으로, 서버는 장치 성능(예를 들면, 버퍼 크기 등)을 판정하여 클라이언트에게로 흐르는 데이터를 최적화한다.
동기화 : 이는 동기화 데이터가 상호 교환되는 부분이다. 2개의 동기화 파트너(synchronization partners) 사이에서, 데이터 엔트리의 모든 국부 ID(local ID)는 양쪽 파트너에게 알려진 전역 ID(global ID)로 매핑(mapped)된다. 그러므로 모든 파트너는 매핑 테이블(mapping table)을 가지고, 국부 ID를 전역 ID로 매핑한다. 그러면 오직 업데이트되는 신규이거나 삭제된 엔트리만이 상호 교환된다. 양측 파트너가 동일 데이터 엔트리를 업데이트하면 충돌이 발생된다. 이 업데이트 충돌은 서로 다른 방식, 즉 업데이트를 통합하려 시도하거나, 엔트리를 중복시키거나, 하나의 엔트리를 다른 엔트리에 대해 상위에 두거나, 간단하게 아무것도 수행하지 않고 충돌을 기록하여 사용자가 그것을 해결하게 하는 것 등으로 해결될 수 있다.
후속 동기화(post-synchronization) : 후속 동기화에서, 매핑 테이블의 업데이트, 해결되지 않은 충돌의 기록 등과 같은 모든 클린업 작업(cleanup tasks)을수행한다.
널리 이용되는 동기화 프로토콜은 SyncML이다. SyncML은, 전송 프로토콜과는 독립적인 동기화를 위한 XML 기반의 전송 프로토콜을 제공한다. 각 동기화 메시지는 XML 문서이다. 전형적인 SyUcML 시스템은 도 2에 도시되어 있으며, 여기에서 애플리케이션 B(예를 들면, 개인용 휴대 정보 단말기 등)는 자체의 클라이언트 동기화 엔진(Client Sync Engine)을 거쳐 SyncML 프레임워크(framework)로 동기화 데이터를 전송한다. SyncML 프레임워크는 API 호출(예를 들면, 업데이트, 생성, ...) 및 데이터를 유효 SyncML 문서로 해석하고 그것을 서버에 전송한다. 서버측에서, SyncML 프레임워크는 문서를 수신하고, 그것을 분석한 다음, 커맨드 및 데이터를 서버 동기화 엔진(Server Sync Engine)에 전송하고, 애플리케이션 A(예를 들면, 노트북의 로터스 노트 달력(Lotus Notes Calendar))에 대화한다.
도 3에서, 백엔드 데이터 저장 장치로의 직접적인 액세스를 갖는 종래 기술의 동기화 아키텍처가 도시되어 있다. 클라이언트 A 및 B는, 중앙 동기화 서버(Sync 서버, 특히, Sync 엔진)와 무선 및 유선 접속을 갖는 이동 클라이언트(예를 들면, 이동 전화 또는 개인용 휴대 정보 단말기 등)가 될 수 있다. 이동 클라이언트로부터의 업데이트 또는 신규 엔트리는 SyncML 어댑터를 거쳐 Sync 엔진으로 전달된다. 중앙 동기화 서버는 백엔드 데이터 저장 장치에 대해 직접적으로 업데이트를 판독하고 기록한다. 중앙 동기화 서버 및 백엔드 데이터 저장 장치 사이의 통신은 Java JDBC 호출, ODBC 호출, SOAP 또는 HTTP 리퀘스트이거나 전용 통신 프로토콜 중의 하나일 수 있다. 백엔드 데이터 저장 장치는, 오라클(Oracle) 또는IBM DB2 등의 관계형 데이터베이스(relational database)이거나 마이크로소프트 익스체인지(Microsoft Exchange) 또는 로터스 도미노(Lotus Domino) 등의 비관계형 데이터 저장 장치일 수 있다. 백엔드 데이터 저장 장치는 인트라넷(Intranet) 또는 인터넷에 의해 중앙 동기화 서버와 접속된다. 이는, 백엔드 데이터 저장 장치로의 접속이 느린 경우, 판독/기록이 백엔드 데이터 저장 장치 상에서 느린 동작이 되는 경우, 백엔드 데이터 저장 장치가 용이하게 크기를 조정하지 못하는 경우, 및 백엔드 데이터 저장 장치가 데이터 기록 또는 차단의 미세 결정형 차단물(fine-grained blocking)을 지원하지 않는 경우에 병목 현상(bottleneck)을 초래할 수 있다.
도 4에서, 기본적인 본 발명의 동기화 아키텍처를 도시한다. 종래 기술의 동기화 아키텍처(도 3 참조)와 비교하면, 본 발명은 기본적으로 업데이트를 캐시(24)로 버퍼링하고 버피링된 업데이트를 개별 클라이언트(2, 4)와 동기화하기 위한 영구 캐시(permanent cache)(24) 및 캐싱 메커니즘을 제공한다. 영구 캐시(24)는 오라클이나 IBM DB2와 같은 관계형 데이터베이스일 수 있고, 또한 예를 들면 JDBC 호출을 거쳐서 액세스될 수 있다. 캐싱 메커니즘은 캐시 모니터(cache monitor)(20), 백엔드 모니터(18) 및 캐시 관리 구성 요소(cache management component)(23)로 이루어지는 것이 바람직하다. 캐시 모니터(20)는 캐시로부터 백엔드 데이터 저장 장치(16)로의 클라이언트 업데이트의 복제를 제어한다. 캐시 관리 구성 요소(23)는, 버퍼링된 업데이트를 액세스하기 위해서 중앙 동기화 서버(6)(sync 서버), 캐시 모니터(20) 및 백엔드 모니터(18)로의 인터페이스를 제공한다. 또한, 캐시 관리 구성 요소(23)는 캐시 ID의 생성 및 캐시 ID를 백엔드 ID로, 또한 그 반대로 매핑하는 것을 제공한다. 중앙 동기화 서버(6)가 캐시(24)에 업데이트를 기록할 때, 캐시 모니터(20) 및 백엔드 모니터(18)는 버퍼링되는 업데이트에 할당된 적어도 하나의 캐시 ID를 포함하는 메시지를 수신한다. 백엔드 ID 및 할당된 캐시 ID를 포함하는 매핑 테이블(26)을 이용하여, 백엔드 모니터(18)는, 동일 캐시 ID를 갖는 클라이언트로부터의 업데이트가 캐시(24) 내에서 완전히 버퍼링되지 않는 한, 백엔드 데이터 저장 장치로부터의 각각의 입력 업데이트를 캐시(24)로 버퍼링하는 것을 차단한다. 중앙 동기화 서버에 의해서 개시되는 것이 바람직한 동기화 프로세스는 캐시 모니터(20)로의 동기화 시작 호출(beginSync)에 의해서 개방되고, 캐시 모니터(20)로의 동기화 종료 호출(endSync)에 의해 밀폐된다. 동기화 세션 동안에, 캐시 모니터(20)는 캐시(24) 내에 버퍼링되는 beginSyncall의 캐시 ID를 갖는 업데이트의 복제를 허용하지 않는다.
도 5는 본 발명의 추가적인 바람직한 실시예를 도시한다. 도 4에 도시된 바와 같은 기본 동기화 아키텍처와 비교하면, 이 바람직한 실시예는 영구 저장 장치(22)를 더 포함한다. 영구 저장 장치(22)는 도 4 내의 캐시 관리 구성 요소(23)를 대체하고, 백엔드 ID와 캐시 ID 사이의 매핑(26)을 제공하며, 보다 신규인 타임 스탬프를 갖는 업데이트만이 캐시(24)에 기록되도록 확보한다. 예를 들면, 클라이언트(A2)는 중앙 동기화 서버(6)(sync 서버)를 가지고 동기화 세션을 개방하고 적어도 하나의 LUID(Local Universal Identifier), 버전 번호 및 업데이트되는 데이터를 포함하는 업데이트(1)를 전송한다. LUID는 클라이언트 데이터 저장장치에 기록되는 데이터를 고유하게 식별한다. 중앙 동기화 서버(6)는 캐시(24)에서 업데이트 리퀘스트를 식별하기 위해 클라이언트의 LUID(클라이언트 ID 및 데이터베이스 URI를 포함함)를 캐시 ID에 대해 매핑하는 매핑 테이블(10)을 갖는다. 여러 이동 클라이언트(2, 4)는 자체의 데이터 저장 장치 내에 타임 스탬프를 지원하지 않기 때문에, 클라이언트는 타임 스탬프로서 증분 카운터(incremental counter)를 이용한다. 동기화 서버(6)의 동기화 엔진(12)(SyncEngine) 부분은, 업데이트의 버전 번호를 동기화 세션 타임 스탬프에 매핑(8)하는 것을 알고 있다. 동기화 엔진(12)은, 동기화 세션 타임 스탬프 및 캐시 ID를 갖는 업데이트를 영구 저장 장치(22)에 전송한다. 영구 저장 장치(22)는 업데이트의 타임 스탬프를 캐시 내 업데이트의 타임 스탬프와 비교한다. 업데이트의 타임 스탬프가 보다 신규이면, 업데이트 리퀘스트는 캐시(24) 내에서 버퍼링된다. 업데이트 리퀘스트가 보다 신규이지 않으면, 무시된다. 동시에 백엔드 데이터 저장 장치(16) 내의 업데이트가 생성되고 백엔드 모니터(18)는 타임 스탬프, 백엔드 ID 및 업데이트되는 데이터를 포함하는 업데이트(19)를 갖는 영구 저장 장치(22)를 호출한다. 영구 저장 장치(22)는 백엔드 ID를 할당된 캐시 ID에 대해 매핑하고, 타임 스탬프를 비교하며, 입력되는 업데이트의 시간이 보다 신규이면 캐시를 업데이트한다. 이들 2개의 업데이트의 결과는 도 6에 도시되어 있다.
도 6은 어떻게 클라이언트로부터의 업데이트가 중앙 동기화 서버를 거쳐서 캐시 내의 데이터와 동기화되는지에 대한 본 발명의 방법 단계를 도시한다.
예를 들면, 이동 전화 등의 클라이언트는 동기화 서버(sync 서버)를 가지고동기화 세션을 리퀘스트한다(2). 업데이트가 중앙 동기화 서버로 전송될 수 있기 전에, 클라이언트와 중앙 동기화 서버 사이의 인증이 달성되어야 한다. 인증이 성공적이면(4), 중앙 동기화 서버는 동기화 프로세스를 수용하고 클라이언트는 자체의 업데이트(6)를 전송할 수 있다.
업데이트는 버전 번호, LUID 및 업데이트되는 데이터를 포함하는 것이 바람직하다. 중앙 동기화 서버는 업데이트를 수신하고(8), 매핑 테이블을 이용하여 버전 번호를 할당된 타임 스탬프로 변환한다. 다음 단계에서 업데이트의 LUID는 LUID 및 자신의 할당된 캐시 ID를 포함하는 매핑 테이블로 매핑된다(10). LUID가 캐시 매핑 테이블 내에 포함되지 않으면(12), 영구 저장 장치는 신규 캐시 ID를 생성하고(14) 그것으로 매핑 테이블을 업데이트한다. LUID가 이미 캐시 매핑 테이블 내에 포함되어 있으면, 중앙 동기화 서버는 캐시 내의 업데이트를 버퍼링하기 위해서 영구 저장 장치를 호출한다(16). 다음으로 영구 저장 장치는 동일한 캐시 ID를 갖는 캐시 내의 버퍼링된 업데이트의 타임 스탬프로 입력되는 업데이트의 타임스탬프를 검사한다(18, 20). 입력되는 업데이트의 타임 스탬프가 보다 신규이면, 입력되는 업데이트는 캐시 내에서 보다 이전의 업데이트를 덮어쓰기(overwrite)한다(22). 타임 스탬프가 입력되는 업데이트보다 이전의 것이면 무시한다(21).
도 7은 어떻게 백엔드 데이터 저장 장치로부터의 업데이트가 캐시 내에서 복제되는지에 대한 방법 단계를 도시한다. 백엔드 데이터 저장 장치에 액세스하는 애플리케이션에 의해서 백엔드 데이터 저장 장치 내에서 엔트리가 업데이트된다고가정하면, 예를 들어 보조 장치(secretary)가 백엔드 데이터 저장 장치 내의 자신의 관리자의 달력 데이터에 대한 업데이트를 생성할 수 있다. 엔트리의 각 업데이트는 백엔드 ID, 타임 스탬프 및 업데이트되는 데이터를 포함한다. 업데이트는 이하의 모델에 의해서 백엔드 모니터에 전송될 수 있다.
백엔드 데이터 저장 장치가 각각의 신규 엔트리 또는 업데이트에 대해서 백엔드 모니터에 통지한다. 백엔드 모니터는 업데이트를 수신하기 위한 판독 리퀘스트를 개시한다. 이 모델은 푸시 모델(push model)로 지칭된다.
또는, 백엔드 모니터가 주기적으로 백엔드 데이터 저장 장치에 질의를 개시한다. 백엔드 데이터 저장 장치는 업데이트 또는 신규 엔트리의 백엔드 ID를 되돌려 보낸다. 백엔드 ID를 이용하여 백엔드 모니터는 이들 업데이트에 대한 액세스를 개시한다. 이 모델은 폴링 모델(polling model)로 지칭된다.
백엔드 모니터는 백엔드로부터 업데이트를 검색하고, 백엔드 데이터 포맷을 백엔드 ID 및 타임 스탬프(4, 6)를 포함하는 캐시 데이터 포맷으로 번역한다. 백엔드 모니터는, 매핑 테이블을 이용하여 백엔드 ID를 할당된 캐시 ID로 매핑하는 영구 저장 장치에 업데이트를 전송한다(8). 백엔드 ID가 매핑 테이블 내에 포함되어 있지 않으면, 영구 저장 장치는 신규 캐시 ID(12)를 생성하고, 할당된 백엔드 ID를 갖는 신규 캐시 ID를 매핑 테이블(14)에 삽입한다. 다음에 영구 저장 장치는 입력되는 업데이트의 타임 스탬프를, 가능하다면 캐시 내에 있는 기존 업데이트의 타임 스탬프로 검사한다.
입력되는 타임 스탬프가 캐시 내의 업데이트보다 더 신규이면,덮어쓰기한다(20). 타임 스탬프가 입력되는 업데이트보다 이전의 것이면 무시한다(18).
도 8은 어떻게 캐시 내에서 생성되는 업데이트가 동기화 서버(sync server)를 거쳐서 백엔드 데이터 저장 장치 내에 복제되는지에 대한 방법 단계를 도시한다. 엔트리는 도 6에 도시된 방법 단계에 따라서 캐시 내에서 업데이트된다. 다음에 영구 저장 장치는 캐시 내의 새로운 엔트리에 대해서 캐시 모니터에 통지한다(4). 캐시 모니터는 신규 엔트리의 캐시 ID에 대해 할당된 백엔드 ID를 선택하기 위해서 매핑 테이블을 이용한다(6). 캐시 ID가 매핑 테이블 내에 할당된 백엔드 ID를 갖지 않으면, 캐시 모니터가 개시되어(8) 신규 백엔드 엔트리를 생성한다. 먼저, 캐시 모니터는 타임 스탬프 및 엔트리 데이터를 포함하는 캐시 데이터를 백엔드 시스템의 데이터 포맷으로 번역하여(10), 백엔드 데이터 저장 장치와의 접속을 설정한 다음, 타임 스탬프, 업데이트 데이터 및 백엔드 ID를 포함하는 백엔드 데이터 저장 장치 내에 신규 엔트리를 생성한다(12). 신규 백엔드 ID는 캐시 모니터를 거쳐서, 캐시 ID 및 자신의 할당된 백엔드 ID를 포함하는 매핑 테이블에 신규 백엔드 ID를 삽입하는 영구 저장 장치(16)에 전달된다(14). 캐시 ID가 매핑 테이블 내에 할당된 백엔드 ID를 가지면, 캐시 모니터는 백엔드 내에 업데이트 엔트리를 개시하도록 통지된다(20). 캐시 모니터는 업데이트 엔트리의 캐시 데이터 포맷을 백엔드 데이터 포맷으로 번역하고(22), 타임 스탬프 및 백엔드 ID를 포함하는 업데이트 엔트리는 백엔드 저장 내에서 실행된다(24).
도 9는 확대된 캐싱 메커니즘을 도시한다. 여기에서 외부 애플리케이션(10)은 인터셉터(12)를 거쳐 백엔드 데이터 저장 장치(16)에 액세스한다. 인터셉터(12)는 동기화 서버 캐시(24)에 대해서 알고있고, 먼저 백엔드 데이터 저장 장치(16)로부터 데이터를 검색하기 전에 해당 캐시를 조사한다.
이는 판독-기록 충돌을 해결하지만, 이것이 달성되는 대신에 당연히 외부 애플리케이션의 관점으로부터 성능이 보다 낮아진다.
요약하면, 최근의 종래 기술과 비교한 본 발명의 이점은 아래와 같다.
백엔드 데이터 저장 장치에서의 모든 변동은 캐시에 즉시 복제된다. 동기화 서버는 캐시 복제가 발생될 때 차단되지 않는다. 캐시 또한 백엔드 데이터 저장 장치 업데이트는 동기화 서버가 캐시에 기록될 때 완전히 차단되지 않는다. 캐시 업데이트 방안 및 백엔드 업데이트 방안은, 실제 용도 시나리오에 대해 조정되어 최대 성능, 예를 들면 일괄 모드 또는 소량 모드(trickle mode)를 달성할 수 있다.
필요하다면, 인터셉터를 이용하여 외부 애플리케이션에 대한 판독-기록 충돌을 해결할 수 있다.

Claims (16)

  1. 클라이언트(2, 4)로의 접속 및 백엔드 데이터 저장 장치(Back End data store)(16)로의 접속을 갖는 중앙 동기화 서버(central synchronization server)(6)를 이용하여, 서로 다른 상기 클라이언트(2, 4) 사이에서 데이터를 동기화하기 위한 시스템에 있어서,
    상기 클라이언트는 동기화되는 데이터를 생성하기 위한 프로그램 및 상기 중앙 동기화 서버와의 동기화를 수행하기 위한 동기화 엔진(synchronization engine)을 갖고,
    상기 백엔드 데이터 저장 장치(16)는 외부 애플리케이션(15)과의 데이터 접속을 가져서 상기 백엔드 데이터 저장 장치(16) 내에서 상기 데이터의 업데이트를 가능케하며,
    상기 시스템은, 상기 백엔드 데이터 저장 장치(16) 및 상기 클라이언트(2, 4)의 업데이트를 영구적으로 버퍼링(buffering)하기 위한 캐시(cache)(24)와,
    상기 캐시(24)로의 업데이트의 버퍼링을 제어하고 실행하며, 상기 개별 클라이언트 및 상기 백엔드 데이터 저장 장치(16)에 버퍼링된 업데이트를 복제하기 위한 캐싱 메커니즘 구성 요소(caching mechanism component)(18, 20, 23)를 포함하는 것을 특징으로 하는
    서로 다른 클라이언트 사이의 데이터 동기화 시스템.
  2. 제 1 항에 있어서,
    상기 캐싱 메커니즘은, 고유한 캐시 식별자(identifier)(ID)를 할당하는 것에 의해서 상기 캐시(24) 내에 상기 클라이언트(2, 4)의 업데이트를 버퍼링하는 기능을 제공하며, 상기 캐시(24)로부터 상기 클라이언트(2, 4)로 업데이트를 복제하는 캐시 관리 구성 요소(23), 및 동일 캐시 ID를 갖는 상기 클라이언트로부터의 업데이트가 동기화 세션(synchronization session) 도중에 캐시(24) 내에 완전히 기록되지 않는 한, 상기 백엔드 데이터 저장 장치로부터 상기 캐시로의 업데이트를 버퍼링하는 것을 차단하는 백엔드 모니터(backend monitor)(18)를 갖는
    서로 다른 클라이언트 사이의 데이터 동기화 시스템.
  3. 제 1 항에 있어서,
    상기 캐시 메커니즘은, 타임 스탬프가 동일 캐시 ID를 갖는 상기 캐시(24) 내에서 버퍼링되었거나 버퍼링될 업데이트의 타임 스탬프(time stamp)보다 오직 신규일 때에만, 상기 클라이언트 또는 상기 백엔드 데이터 저장 장치(16)의 업데이트를 상기 캐시(24) 내에 버퍼링하는 기능을 제공하는 영구 저장 장치(persistent store)(22)를 갖는
    서로 다른 클라이언트 사이의 데이터 동기화 시스템.
  4. 제 3 항에 있어서,
    상기 영구 저장 장치(22)는 캐시 ID를 백엔드 ID로 매핑(map)하는 추가적인 기능을 더 제공하는
    서로 다른 클라이언트 사이의 데이터 동기화 시스템.
  5. 제 2 항에 있어서,
    상기 캐싱 메커니즘은, 일괄 모드(batch mode) 또는 연속 소량 모드(continuous trickle mode)에서 상기 캐시(24)로부터 상기 백엔드 데이터 저장 장치(16)로 업데이트를 복제하는 캐시 모니터(cache monitor)(20)를 갖는
    서로 다른 클라이언트 사이의 데이터 동기화 시스템.
  6. 제 2 항에 있어서,
    상기 캐싱 메커니즘은, 일괄 모드 또는 연속 소량 모드에서 상기 캐시(24) 및 상기 백엔드 데이터 저장 장치(16) 사이의 업데이트를 복제하는 백엔드 모니터(18)를 갖는
    서로 다른 클라이언트 사이의 데이터 동기화 시스템.
  7. 제 1 항에 있어서,
    상기 캐시(24) 및 상기 백엔드 데이터 저장 장치(16)는 데이터베이스(databases)인
    서로 다른 클라이언트 사이의 데이터 동기화 시스템.
  8. 제 1 항에 있어서,
    상기 클라이언트(2, 4)는 이동 클라이언트(mobile clients)인
    서로 다른 클라이언트 사이의 데이터 동기화 시스템.
  9. 제 1 항에 있어서,
    상기 동기화 프로토콜은 SyncML인
    서로 다른 클라이언트 사이의 데이터 동기화 시스템.
  10. 청구항 1 내지 청구항 9에 기재된 시스템을 이용하여 클라이언트들 간의 업데이트를 동기화하는 방법에 있어서,
    버전 번호, LUID 및 업데이트 데이터(2)를 포함하는 업데이트를 상기 클라이언트의 동기화 엔진을 거쳐 상기 클라이언트로부터 수신하는 단계와,
    매핑 테이블(8)을 이용하여 상기 업데이트의 버전 번호를 할당된 동기화 타임 스탬프에 대해 매핑(mapping)하는 단계와,
    매핑 테이블(10)을 이용하여 상기 업데이트의 LUID를 할당된 캐시 ID에 대해 매핑하는 단계와,
    상기 업데이트의 상기 타임 스탬프가 동일 캐시 ID(20)을 갖는 상기 캐시 내의 업데이트의 타임 스탬프에 비해서 보다 신규인 경우에만 타임 스탬프 및 캐시 ID를 포함하는 업데이트 데이터를 상기 캐시 내부에 버퍼링하는 단계와,
    매핑 테이블을 이용하여, 상기 업데이트를 할당된 백엔드(6)에 대해 매핑하는 단계와,
    상기 업데이트의 캐시 데이터 포맷을 상기 백엔드 데이터 저장 장치의 데이터 포맷(22)으로 번역하는 단계와,
    업데이트 데이터, 타임 스탬프, 및 백엔드 ID(24)를 포함하는 상기 백엔드 데이터 저장 장치 내의 업데이트를 개시하는 단계
    를 포함하는 클라이언트들간의 업데이트 동기화 방법.
  11. 청구항 1 내지 청구항 9에 기재된 시스템을 이용하여 클라이언트들간의 업데이트를 동기화하는 방법에 있어서,
    버전 번호, LUID 및 업데이트 데이터를 포함하는 업데이트를 상기 클라이언트의 동기화 엔진을 거쳐 상기 클라이언트로부터 수신하는 단계와,
    매핑 테이블을 이용하여 상기 업데이트의 버전 번호를 할당된 동기화 타임 스탬프에 대해 매핑하는 단계와,
    매핑 테이블을 이용하여 상기 업데이트의 LUID를 할당된 캐시 ID에 대해 매핑하는 단계와,
    상기 업데이트의 상기 타임 스탬프가, 동일 캐시 ID(20)을 갖는 상기 캐시 내의 업데이트의 상기 타임 스탬프에 비해서 보다 신규인 경우에만 타임 스탬프 및 캐시 ID를 포함하는 업데이트 데이터를 상기 캐시 내부로 버퍼링하는 단계와,
    캐시 ID를 백엔드 ID로 매핑하는 것이 성공적이지 않으면 신규 백엔드 ID를 생성하는 단계와,
    상기 업데이트의 캐시 데이터 포맷을 상기 백엔드 데이터 저장 장치의 데이터 포맷으로 번역하는 단계와,
    신규 엔트리 데이터(new entry data), 타임 스탬프, 및 백엔드 ID를 포함하는 상기 백엔드 데이터 저장 장치 내의 상기 업데이트의 새로운 엔트리를 개시하는 단계와,
    신규 백엔드 ID를 상기 매핑 테이블에 삽입하는 단계
    를 포함하는 클라이언트들간의 업데이트 동기화 방법.
  12. 제 10 항 또는 제 11 항에 있어서,
    상기 클라이언트 및 상기 중앙 동기화 서버 사이에서 이용되는 동기화 프로토콜은 SyncML이고, 상기 중앙 동기화 서버에 의해서 수신된 상기 업데이트를 XML 문서로 제공하는 클라이언트들간의 업데이트 동기화 방법.
  13. 청구항 1 내지 청구항 9에 기재된 시스템을 이용하여 상기 백엔드 데이터 저장 장치로부터 상기 캐시로 업데이트를 복제하는 방법에 있어서,
    업데이트 데이터, 타임 스탬프, 및 백엔드 ID를 포함하는 업데이트를 상기 중앙 동기화 서버에 의해서 상기 백엔드 데이터 저장 장치로부터 수신하는 단계와,
    상기 백엔드 업데이트의 백엔드 데이터 포맷을 캐시 데이터 포맷으로 번역하는 단계와,
    매핑 테이블을 이용하여 백엔드 ID를 캐시 ID로 매핑하는 단계와,
    상기 타임 스탬프가 동일 캐시 ID를 갖는 상기 캐시 내에서 버퍼링된 업데이트의 타임 스탬프 보다 신규인 경우에만, 상기 백엔드 데이터 저장 장치로부터 상기 캐시로 상기 업데이트를 버퍼링하는 단계
    를 포함하는 업데이트의 복제 방법.
  14. 제 13 항에 있어서,
    동기화 세션 도중에, 상기 동일 캐시 ID를 갖는 상기 클라이언트로부터의 업데이트가 상기 캐시 내로 완전히 기록되지 않는 한, 상기 백엔드 데이터 저장 장치로부터 상기 캐시로 업데이트를 버퍼링하는 것을 차단하는 업데이트의 복제 방법.
  15. 제 13 항에 있어서,
    백엔드 ID를 캐시 ID에 대해 매핑하는 것이 성공적이지 않은 경우, 신규 캐시 ID를 생성하는 단계와,
    상기 신규 캐시 ID를 상기 매핑 테이블에 삽입하는 단계
    를 더 포함하는 업데이트의 복제 방법.
  16. 디지털 컴퓨터의 상기 내부 메모리 내에 저장된 컴퓨터 프로그램 제품에 있어서,
    해당 제품이 컴퓨터 상에서 실행된다면, 청구항 10 내지 청구항 15에 기재된 방법을 실행하도록 소프트웨어 코드(software code)의 부분을 포함하는 컴퓨터 프로그램 제품.
KR1020037015759A 2001-06-30 2002-06-25 서로 다른 클라이언트 사이의 데이터 동기화 시스템, 클라이언트들간의 업데이트 동기화 방법, 업데이트의 복제 방법, 및 컴퓨터 판독 가능 기록 매체 KR100592647B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP01115979.5 2001-06-30
EP01115979 2001-06-30
PCT/EP2002/006996 WO2003005206A2 (en) 2001-06-30 2002-06-25 System and method for a caching mechanism for a central synchronization server

Publications (2)

Publication Number Publication Date
KR20040010677A true KR20040010677A (ko) 2004-01-31
KR100592647B1 KR100592647B1 (ko) 2006-06-23

Family

ID=8177909

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037015759A KR100592647B1 (ko) 2001-06-30 2002-06-25 서로 다른 클라이언트 사이의 데이터 동기화 시스템, 클라이언트들간의 업데이트 동기화 방법, 업데이트의 복제 방법, 및 컴퓨터 판독 가능 기록 매체

Country Status (7)

Country Link
US (1) US7539778B2 (ko)
EP (1) EP1407387A2 (ko)
KR (1) KR100592647B1 (ko)
CN (1) CN1520562A (ko)
AU (1) AU2002313483A1 (ko)
TW (1) TW579463B (ko)
WO (1) WO2003005206A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100597586B1 (ko) * 2004-12-09 2006-07-06 한국전자통신연구원 세션 관리 기능을 이용한 데이터 동기화 방법
KR100625653B1 (ko) * 2004-07-01 2006-09-20 에스케이 텔레콤주식회사 기업용 무선 어플리케이션 서비스를 위한 싱크 시스템 및그 처리방법
KR20210012400A (ko) 2019-07-25 2021-02-03 여승기 프로그래밍 코드 자동생성을 통한 백엔드 구축 방법
KR102350282B1 (ko) * 2020-07-24 2022-01-13 주식회사 엘지유플러스 다중 데이터베이스의 동기화를 위한 장치 및 방법

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003250418A1 (en) * 2002-09-09 2004-03-29 Koninklijke Philips Electronics N.V. A data network, user terminal and method for providing recommendations
US7395258B2 (en) * 2004-07-30 2008-07-01 International Business Machines Corporation System and method for adaptive database caching
CN100384110C (zh) * 2004-08-31 2008-04-23 华为技术有限公司 一种SyncML同步请求消息重定向的方法
US8145908B1 (en) * 2004-10-29 2012-03-27 Akamai Technologies, Inc. Web content defacement protection system
CN100407623C (zh) * 2005-02-23 2008-07-30 腾讯科技(深圳)有限公司 一种通信系统中用户数据更新的方法及系统
US7693888B2 (en) * 2005-05-10 2010-04-06 Siemens Communications, Inc. Data synchronizer with failover facility
WO2006134540A1 (en) 2005-06-13 2006-12-21 Nxp B.V. Electronic device, method for frame synchronization, and mobile device.
US7962585B2 (en) * 2005-08-15 2011-06-14 Microsoft Corporation Partial item change tracking and synchronization
US8024290B2 (en) * 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US7631017B2 (en) * 2005-12-08 2009-12-08 Motorola, Inc. Method and system for maintaining current data for wireless devices
US9367832B2 (en) 2006-01-04 2016-06-14 Yahoo! Inc. Synchronizing image data among applications and devices
CN100531212C (zh) * 2006-01-21 2009-08-19 华为技术有限公司 一种协商设备信息的系统、方法
US7606838B2 (en) * 2006-02-22 2009-10-20 Microsoft Corporation Distributed conflict resolution for replicated databases
US7925624B2 (en) * 2006-03-31 2011-04-12 Amazon Technologies, Inc. System and method for providing high availability data
US7707136B2 (en) 2006-03-31 2010-04-27 Amazon Technologies, Inc. System and method for providing high availability data
US7937361B2 (en) * 2006-04-28 2011-05-03 Research In Motion Limited Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device
KR100844361B1 (ko) * 2006-06-20 2008-07-07 계명대학교 산학협력단 자료 동기화 게이트웨이 시스템 및 방법
US20070297458A1 (en) * 2006-06-27 2007-12-27 Microsoft Corporation Efficient and layered synchronization protocol for database systems
US7523141B2 (en) * 2006-07-31 2009-04-21 Microsoft Corporation Synchronization operations involving entity identifiers
US7653640B2 (en) * 2006-07-31 2010-01-26 Microsoft Corporation Two-way and multi-master synchronization over web syndications
WO2009027138A1 (en) 2007-08-30 2009-03-05 International Business Machines Corporation Accessing data entities
US9401957B2 (en) * 2007-09-14 2016-07-26 International Business Machines Corporation System and method for synchronization between servers
US8959199B2 (en) * 2008-03-18 2015-02-17 Reduxio Systems Ltd. Network storage system for a download intensive environment
US8019863B2 (en) 2008-03-28 2011-09-13 Ianywhere Solutions, Inc. Synchronizing events between mobile devices and servers
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US8176256B2 (en) * 2008-06-12 2012-05-08 Microsoft Corporation Cache regions
US8943271B2 (en) * 2008-06-12 2015-01-27 Microsoft Corporation Distributed cache arrangement
US9747340B2 (en) * 2008-06-19 2017-08-29 Microsoft Technology Licensing, Llc Method and system of using a local hosted cache and cryptographic hash functions to reduce network traffic
US9286293B2 (en) * 2008-07-30 2016-03-15 Microsoft Technology Licensing, Llc Populating and using caches in client-side caching
US8612383B2 (en) * 2008-11-05 2013-12-17 Mastercard International Incorporated Method and systems for caching objects in a computer system
US8626800B2 (en) * 2008-12-09 2014-01-07 International Business Machines Corporation Synchronization of artifacts across different domains
US20110055299A1 (en) * 2008-12-18 2011-03-03 Virtual Computer, Inc. Managing User Data in a Layered Virtual Workspace
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
US8918380B2 (en) * 2009-07-09 2014-12-23 Norsync Technology As Methods, systems and devices for performing incremental updates of partial databases
US20110093619A1 (en) * 2009-10-16 2011-04-21 Ianywhere Solutions, Inc. Synchronizing Tasks between Mobile Devices and Servers
US8484256B2 (en) * 2010-01-13 2013-07-09 International Business Machines Corporation Transformation of logical data objects for storage
US20120150951A1 (en) * 2010-03-17 2012-06-14 Hitachi, Ltd Computer system, recording medium and maintenance support system
US8583643B2 (en) 2010-05-07 2013-11-12 Google Inc. Caching electronic document resources in a client device having an electronic resource database
US8510373B2 (en) * 2010-08-30 2013-08-13 Sap Ag Data synchronization and disablement of dependent data fields
CN102004780A (zh) * 2010-11-23 2011-04-06 中兴通讯股份有限公司 一种数据同步方法及装置
ES2805755T3 (es) 2011-03-10 2021-02-15 Amadeus Sas Sistema y método para sincronización de sesión con sistemas externos independientes
SG190505A1 (en) * 2011-11-24 2013-06-28 Chikka Pte Ltd System and method for detecting broadband service and a charging mechanism for same
US9317344B2 (en) 2012-02-16 2016-04-19 Microsoft Technology Licensing, Llc Power efficient brokered communication supporting notification blocking
US8874682B2 (en) 2012-05-23 2014-10-28 Sybase, Inc. Composite graph cache management
US9110807B2 (en) 2012-05-23 2015-08-18 Sybase, Inc. Cache conflict detection
US10671955B2 (en) 2012-06-05 2020-06-02 Dimensional Insight Incorporated Dynamic generation of guided pages
US10445674B2 (en) 2012-06-05 2019-10-15 Dimensional Insight Incorporated Measure factory
US10755233B2 (en) 2012-06-05 2020-08-25 Dimensional Insight Incorporated Guided page navigation
US9274668B2 (en) * 2012-06-05 2016-03-01 Dimensional Insight Incorporated Guided page navigation
US10095672B2 (en) 2012-06-18 2018-10-09 Novaworks, LLC Method and apparatus for synchronizing financial reporting data
US9288077B1 (en) * 2012-09-28 2016-03-15 Emc Corporation Cluster file system with server block cache
US9507842B2 (en) * 2013-04-13 2016-11-29 Oracle International Corporation System for replication-driven repository cache invalidation across multiple data centers
CN103716370B (zh) * 2013-10-13 2018-01-02 北界创想(北京)软件有限公司 在多个客户端之间进行数据同步的方法和装置
US9112890B1 (en) 2014-08-20 2015-08-18 E8 Storage Systems Ltd. Distributed storage over shared multi-queued storage device
BR112016003763B1 (pt) * 2014-09-15 2019-04-02 Huawei Technologies Co., Ltd. Método de desduplicação de dados e arranjo de armazenamento.
US9274720B1 (en) 2014-09-15 2016-03-01 E8 Storage Systems Ltd. Distributed RAID over shared multi-queued storage devices
KR101996708B1 (ko) * 2014-09-15 2019-07-04 후아웨이 테크놀러지 컴퍼니 리미티드 기입 데이터 요청 처리 방법과 저장소 어레이
US9519666B2 (en) 2014-11-27 2016-12-13 E8 Storage Systems Ltd. Snapshots and thin-provisioning in distributed storage over shared storage devices
US9529542B2 (en) 2015-04-14 2016-12-27 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM caching of compressed data in a highly-distributed shared topology with direct memory access capable interconnect
US9525737B2 (en) * 2015-04-14 2016-12-20 E8 Storage Systems Ltd. Lockless distributed redundant storage and NVRAM cache in a highly-distributed shared topology with direct memory access capable interconnect
US10496626B2 (en) 2015-06-11 2019-12-03 EB Storage Systems Ltd. Deduplication in a highly-distributed shared topology with direct-memory-access capable interconnect
CN105574158B (zh) * 2015-12-15 2019-03-12 广州品唯软件有限公司 数据库缓存数据的刷新方法及其系统
US9842084B2 (en) 2016-04-05 2017-12-12 E8 Storage Systems Ltd. Write cache and write-hole recovery in distributed raid over shared multi-queue storage devices
US10031872B1 (en) 2017-01-23 2018-07-24 E8 Storage Systems Ltd. Storage in multi-queue storage devices using queue multiplexing and access control
US20180239532A1 (en) 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10261843B2 (en) * 2017-03-16 2019-04-16 International Business Machines Corporation Speculative execution management in a coherent accelerator architecture
US10685010B2 (en) 2017-09-11 2020-06-16 Amazon Technologies, Inc. Shared volumes in distributed RAID over shared multi-queue storage devices
CN109213792B (zh) * 2018-07-06 2021-11-09 武汉斗鱼网络科技有限公司 数据处理的方法、服务端、客户端、装置及可读存储介质
CN109788027B (zh) * 2018-12-13 2022-04-15 平安科技(深圳)有限公司 数据同步方法、装置、服务器及计算机存储介质
US11080265B2 (en) 2019-04-24 2021-08-03 Microsoft Technology Licensing, Llc Dynamic hash function composition for change detection in distributed storage systems
US11061936B2 (en) 2019-04-24 2021-07-13 Microsoft Technology Licensing, Llc Property grouping for change detection in distributed storage systems
US11055274B2 (en) 2019-04-24 2021-07-06 Microsoft Technology Licensing, Llc Granular change detection in distributed storage systems
WO2021064472A1 (en) * 2019-10-01 2021-04-08 Lenovo (Singapore) Pte. Ltd. Determining a time to perform an update
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061714A (en) * 1997-05-07 2000-05-09 International Business Machines Corporation Persistent cache synchronization and start up system
US6810405B1 (en) * 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US6862617B1 (en) * 1998-10-12 2005-03-01 Microsoft Corp. System and method for synchronizing objects between two devices
AU4674400A (en) * 1999-09-10 2001-04-10 Avantgo, Inc. System, method, and computer program product for interactive interfacing with mobile devices
US6587921B2 (en) * 2001-05-07 2003-07-01 International Business Machines Corporation Method and apparatus for cache synchronization in a clustered environment
US7149813B2 (en) * 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
US7130882B1 (en) * 2002-06-20 2006-10-31 Microsoft Corporation Caching mechanism using intervening network caching policies

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100625653B1 (ko) * 2004-07-01 2006-09-20 에스케이 텔레콤주식회사 기업용 무선 어플리케이션 서비스를 위한 싱크 시스템 및그 처리방법
KR100597586B1 (ko) * 2004-12-09 2006-07-06 한국전자통신연구원 세션 관리 기능을 이용한 데이터 동기화 방법
KR20210012400A (ko) 2019-07-25 2021-02-03 여승기 프로그래밍 코드 자동생성을 통한 백엔드 구축 방법
KR102350282B1 (ko) * 2020-07-24 2022-01-13 주식회사 엘지유플러스 다중 데이터베이스의 동기화를 위한 장치 및 방법

Also Published As

Publication number Publication date
CN1520562A (zh) 2004-08-11
AU2002313483A1 (en) 2003-01-21
WO2003005206A3 (en) 2004-02-12
EP1407387A2 (en) 2004-04-14
US7539778B2 (en) 2009-05-26
TW579463B (en) 2004-03-11
KR100592647B1 (ko) 2006-06-23
WO2003005206A2 (en) 2003-01-16
US20040153576A1 (en) 2004-08-05

Similar Documents

Publication Publication Date Title
KR100592647B1 (ko) 서로 다른 클라이언트 사이의 데이터 동기화 시스템, 클라이언트들간의 업데이트 동기화 방법, 업데이트의 복제 방법, 및 컴퓨터 판독 가능 기록 매체
US7404011B2 (en) System and method for accessing different types of back end data stores
JP5193056B2 (ja) 無線装置の最新データを維持するための方法及びシステム
US6941310B2 (en) System and method for caching data for a mobile application
EP1229746B1 (en) Deleting objects from a store of a device
KR100462839B1 (ko) 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법
EP1829286B1 (en) Systems and methods for continuous pim synchronization between a host computer and a client handheld device
US7222139B2 (en) Method, system and program for synchronizing data
US7809675B2 (en) Sharing state information among a plurality of file operation servers
US7035879B2 (en) System and method for synchronizing data of wireless devices
EP0926608A2 (en) Distributed persistent storage for intermittently connected clients
US20030028683A1 (en) Method and system for object cache synchronization
JP2011513863A (ja) 同期サーバープロセス
WO2019103950A1 (en) Multi-region, multi-master replication of database tables
US6820114B2 (en) Identifying object suppliers in a network
JP2005063374A (ja) データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。
WO2013177375A1 (en) Composite graph cache management
US7359926B1 (en) System for optimization of database replication/synchronization
Denny et al. Edison: Database-supported synchronization for PDAs
Li et al. The research and application of embedded mobile database
EP1298538B1 (en) Method and computer system for identifying object suppliers in a computer network
JP3374320B2 (ja) ステートレスプロトコルによるデータベースアクセス方法及びシステム
WO2002021332A2 (en) System and method for central user management and authentication, authorization and accounting based on directory services and standard protocols
KR20020031656A (ko) 무선인터넷단말기기를 이용한 데이터베이스의 공유기술
Mehta et al. Mobile AJAX Applications: Going Far Without The Bars

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: 20110502

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee