KR20040056639A - 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법 - Google Patents

모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법 Download PDF

Info

Publication number
KR20040056639A
KR20040056639A KR1020020083160A KR20020083160A KR20040056639A KR 20040056639 A KR20040056639 A KR 20040056639A KR 1020020083160 A KR1020020083160 A KR 1020020083160A KR 20020083160 A KR20020083160 A KR 20020083160A KR 20040056639 A KR20040056639 A KR 20040056639A
Authority
KR
South Korea
Prior art keywords
server
mobile client
synchronization
mobile
checkout
Prior art date
Application number
KR1020020083160A
Other languages
English (en)
Other versions
KR100462839B1 (ko
Inventor
박중기
김중배
손덕주
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR10-2002-0083160A priority Critical patent/KR100462839B1/ko
Priority to US10/422,843 priority patent/US7543047B2/en
Publication of KR20040056639A publication Critical patent/KR20040056639A/ko
Application granted granted Critical
Publication of KR100462839B1 publication Critical patent/KR100462839B1/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users

Abstract

본 발명은 객체의 구조와 응용의 의미를 이용하여 특정 객체의 단편 및 관련 객체에 대해 이동 클라이언트에서 독립적으로 갱신 연산을 수행한 후 재 연결 시 클라이언트와 서버간의 데이터 동기화 및 충돌 해결을 수행함으로써 클라이언트들과 서버간의 데이터 일관성을 유지하고 접속 단절 상태에서도 서버의 객체들에 대한 갱신 연산이 효과적으로 이뤄지도록 하는 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화와 갱신 충돌 탐지 및 해결 방법에 관한 것이다.
본 발명은 서버측 DB의 데이터를 이동 클라이언트측 내장 DB로 복제하고, 서버는 그 내용 및 복제 시간을 관리하는 관리단계와, 이동 클라이언트가 접속 단절된 동안에 발생한 데이터 변경에 대하여, 재 접속된 후 이동 클라이언트의 요청에 따라 클라이언트와 서버간에 그 변경 데이터를 일치시키는 데이터 동기화단계와, 데이터 동기화 과정에서 데이터의 일관성을 해치는 오류를 탐지하고 탐지된 오류를 해결하는 충돌 탐지 및 해결 단계로 이루어진다.

Description

모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법{Method for database synchronization and conflict resolution between clients and server of mobile system}
본 발명은 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법에 관한 것이며, 보다 상세히는 객체의 구조와 응용의 의미를 이용하여 특정 객체에 대한 단편 및 관련 객체를 클라이언트의 DB에 복사하여 독립적 갱신 연산을 수행하고 재 연결 시에 변경사항에 대해 데이터 동기화 및 충돌 해결을 통해 데이터의 일관성을 유지함으로써, 클라이언트들이 접속 단절 상태에서도 서버의 객체에 대한 갱신 연산을 계속 수행할 수 있도록 하는 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법에 관한 것이다.
일반적으로 이동 전자상거래는 통신 수단의 대역폭이 유선 네트워크에 비하여 낮은 불안정한 무선 네트워크이며, 휴대형 정보 기기 역시 PC에 비해 컴퓨팅 파워, 메모리, 저장공간 등의 자원에 있어 한계를 갖고 있기 때문에, 기존의 PC 기반 전자상거래에 비해 많은 제약사항을 가진다.
따라서, 이러한 이동 전자상거래 환경의 특징을 고려할 때, 이동 기기들과 서버 데이터베이스 시스템간에 필요에 따라 무선 통신을 통해 필요한 자료를 복제하여 지역적으로 관리하며 오퍼레이션을 하고, 주기적 혹은 비주기적으로 무선 기기와 서버 시스템간의 데이터를 동기화 시키는 기술이 요구된다.
즉, 이동중인 사용자에게 효과적인 정보서비스를 제공하기 위해서는 이동 네트워크에 접근이 가능한 이동 통신 기기, 예를 들어, PDA, 노트북, 핸드폰 등의 정보 기기에 탑재되어 운영되는 소규모 데이터베이스로서 이동 데이터베이스를 이용하여 정보의 원천이 되는 유선 환경의 서버측 데이터베이스에 있는 정보를 무선기기에 복제하여 사용할 수 있는 능력을 갖추고 있어야 한다.
또한, 이동 전자상거래 및 기타 응용 분야를 고려하여 모바일 기기상의 제약사항을 극복할 수 있는 효과적인 클라이언트-서버간 데이터 동기화 방법과 그 동기화 과정에서 발생할 수 있는 갱신 데이터 충돌 탐지 및 해결 방법이 요구된다.
따라서, 본 발명은 상술한 종래의 문제점 및 필요성을 해결하기 위한 것으로서, 본 발명의 목적은 객체의 구조와 응용의 의미를 이용하여 특정 객체의 단편 및 관련 객체에 대해 이동 클라이언트에서 독립적으로 갱신 연산을 수행한 후 재 연결 시 클라이언트와 서버간의 데이터 동기화 및 충돌 해결을 수행함으로써, 클라이언트들과 서버간의 데이터 일관성을 유지하고 접속 단절 상태에서도 서버의 객체들에 대한 갱신 연산이 효과적으로 이뤄지도록 하는 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화와 갱신 충돌 탐지 및 해결 방법을 제공하는데 있다.
상기 본 발명의 목적을 달성하기 위한 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법은, 다수의 이동 클라이언트들과 데이터베이스 서버간의 데이터 동기화 방법에 있어서, 서버측 DB의 데이터를 이동 클라이언트측 내장 DB로 복제하고, 서버는 그 내용 및 복제 시간을 관리하는 관리단계; 이동 클라이언트가 접속 단절된 동안에 발생한 데이터 변경에 대하여, 재 접속된 후 이동 클라이언트의 요청에 따라 클라이언트와 서버간에 그 변경 데이터를 일치시키는 데이터 동기화단계; 및 상기 데이터 동기화 과정에서 데이터의 일관성을 해치는 오류를 탐지하고 탐지된 오류를 해결하는 충돌 탐지 및 해결 단계;로 이루어진다.
도 1은 본 발명에 따른 RC 리스트의 자료구조를 보여주는 도면.
도 2는 본 발명에 따른 RC 프로토콜 처리 과정을 보여주는 흐름도.
이하, 본 발명에 따른 실시예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.
먼저, 본 발명의 이동 클라이언트와 서버간의 데이터 동기화 방법은, 크게복제 관리단계와, 데이터 동기화단계와, 충돌 탐지 및 해결 단계로 이루어진다.
상기 복제 관리단계는 적절한 메커니즘을 사용하여 서버측 데이터베이스로부터 클라이언트측 내장 데이터베이스에 자료를 복제하고 그 내용 및 복제 시간 등을 관리하는 단계이다.
이러한 복제 과정은 한 개 또는 그 이상의 테이블 결합을 통한 데이터를 서버측에서 발행(Publish)하고, 다수의 클라이언트들은 이러한 복사본인 발행본(Publication)에 대해 가입(Subscribe)하는 방법으로 이뤄진다.
이와 같은 복제 방법을 Publish/Subscribe 모델이라 한다.
상기 데이터 동기화 단계는 서버측 데이터가 클라이언트측 데이터베이스로 복제되고 클라이언트의 이동형 DBMS에 의해 관리되기 때문에 트랜잭션의 유효성을 보장하기 위해 서로간의 자료 일치성을 유지하는 작업이다.
즉, 이동형 DBMS와 서버측 DBMS의 양방향에서 발생할 수 있는 변경 및 그에 따르는 요청을 통해 데이터를 동일하게 유지시키는 작업이다.
상기 충돌 탐지 및 해결 단계는 클라이언트와 서버간에 접속(connection)이 단절된 상태에서 이동형 DBMS에서 삽입, 삭제, 갱신 연산에 의한 서버측 데이터베이스와의 데이터 일관성을 해치는 오류를 탐지하고 이것을 적절히 해결하는 과정이다.
이하에서는 본 발명에 적용되는 주요 용어에 대한 정의와 함께 상기 각 단계에 대해 보다 상세하게 설명하도록 한다.
먼저, 본 발명에 있어, 체크아웃 연산은 접속 단절시의 연산을 위해 이동 클라이언트가 서버로부터 필요한 데이터를 가져가는 것을 말하고, 체크인 연산은 이동 클라이언트의 체크아웃 주 객체 단편을 서버 데이터베이스에 통합하는 과정이다.
또한, 체크아웃 객체는 주 객체(main object)와 주 객체와 종속 관계를 가지는 부 객체(subsidiary object)로 구분되며 각각에 대한 정의는 다음과 같다.
체크아웃 주 객체(checkout main object)란, 다수의 클라이언트들에게 분산되어 연산되는 겹쳐지지 않는 단편(disjoint fragment)으로서, 각각의 클라이언트에서 독립적으로 연산되고 의미적으로 일관성 있게 재결합될 수 있는 객체이다.
따라서, 임의의 클라이언트에 분할된 체크아웃 주 객체의 단편을 체크아웃 하여 연산을 수행하는 동안 다른 클라이언트들과 직접적인 쓰기 충돌(write conflicts)은 발생하지 않는다. 그러나 체크아웃 부 객체와의 종속 관계에 의해 유발되는 간접적인 충돌은 발생할 수 있다.
체크아웃 부 객체(checkout subsidiary object)란, 체크아웃 주 객체의 단편에 대한 트랜잭션 수행 시 읽기 참조되는 객체로서, 주 객체와 함께 캐쉬되고, 동시에 여러 클라이언트에 부 객체로 캐쉬 가능하며, 클라이언트에서는 읽기 전용으로만 사용하고 서버에서만 갱신이 가능하다.
이 체크아웃 부 객체는 각 클라이언트 사이트에 체크아웃 주 객체와 함께 캐쉬 되어 주 객체의 단편에 갱신 연산이 수행될 때 읽기 참조된다.
또한, 체크아웃 부 객체는 클라이언트와 서버간에 발생할 수 있는 충돌 문제를 해결하기 위해 재연결 시, 데이터 일관성 유지를 위한 조정 작업에 참조된다.
상기 체크아웃 주 객체의 정의와 같이 서버에 존재하는 체크아웃 주 객체는 임의의 클라이언트들이 객체 X를 분할하여 체크아웃 해간 경우, X는 "체크아웃된 단편" CX(Checkouted X)와 "체크아웃 되지 않고 서버에 존재하는 단편" NCX(Not Checkouted X)의 두 가지 쌍으로 구성된다.
즉, 어느 시점의 체크아웃 주 객체 X = < CX, NCX > 이고, CX ∩NCX = ○이다. 체크아웃된 단편 CX는 n개의 각 클라이언트들에게 분할되어진 CXi (1 ≤ i ≤ n)들의 합집합으로 구성된다.( CX = CX1 ∪ CX2 ... ∪ CXn 이고, 1 ≤i, j ≤n, i ≠j 인 모든 i, j 에 대하여 CXi ∩CXj = ○)
임의의 이동 클라이언트에 체크아웃된 체크아웃 주 객체 X의 단편 CXi 가 독립적인 연산을 수행할 때 읽기 참조함으로써 읽기 종속 관계에 있는 체크아웃 부 객체 SX는 체크아웃 시 클라이언트에게 복사됨으로써 서버와 여러 클라이언트들에 SX의 중복 사본들이 존재할 수 있다.
임의의 이동 클라이언트는 장시간 접속단절이 예상될 때 접속 단절 후에도 트랜잭션 처리를 계속하기 위해 서버로부터 접속 단절 동안 사용할 객체의 단편 CXi을 체크아웃 하여 자신의 데이터베이스에 복사해 놓는다.
한편, 이동 클라이언트에서 CXi 에 대하여 트랜잭션을 수행 시, 참조하는 데이터의 종류에 따라 다음과 같이 독립 트랜잭션과 참조 트랜잭션으로 분류할 수 있다.
독립 트랜잭션(Independent Transaction: IT)은, 체크아웃 주 객체의 단편 CXi 에 대한 트랜잭션 T를 수행 시, CXi 의 데이터만이 참조되는 경우의 트랜잭션이 된다. 즉, CXi가 서버에 존재하는 어떠한 객체와도 읽기 종속 관계가 존재하지 않는 경우에 해당한다.
참조 트랜잭션(Referential Transaction: RT)은, 체크아웃 주 객체의 단편 CXi에 대한 트랜잭션 T를 수행시, CXi 이외의 다른 객체의 데이터가 참조되는 경우, 그 트랜잭션 T를 참조 트랜잭션이라 한다. 즉, CXi가 서버에 존재하는 임의의 객체 SX와 읽기 종속 관계가 존재하는 경우이며, 이 객체 SX는 체크아웃 부 객체에 해당하고 CXi를 체크아웃 시 SX도 함께 체크아웃 되어야 한다.
체크아웃 주 객체의 단편에 대해서 독립 트랜잭션을 수행할 경우에는 체크아웃 주 객체와 독립 트랜잭션의 정의에 의해 갱신 연산을 포함하는 경우에도 충돌이 생기지 않는다.
그러나, 참조 트랜잭션을 수행할 경우에는 체크아웃 부 객체는 다른 클라이언트들이 이 객체가 체크아웃 되어 있는 동안 그 객체의 데이터를 참조 및 변경할 수 있으므로 이동 클라이언트에 캐쉬하여 접속 단절 상태에서 사용할 경우 일관성 유지 문제가 발생할 수 있다.
체크아웃 주 객체의 단편은 이동 클라이언트로 체크아웃 된 동안 이동 클라이언트가 이 단편의 마스터(master)가 되어, 다시 체크인이 될 때까지 서버 데이터베이스에서는 다른 클라이언트들은 볼 수 없는 논리적 삭제(logically remove) 상태가 된다. 따라서 체크아웃 기간 동안 다른 클라이언트들은 이 단편을 다시 체크아웃 할 수도, 이 단편에 대한 쓰기 연산도 할 수 없는 상태가 된다.
이동 클라이언트가 이 단편을 서버에 체크인을 하면, 이 단편에 대한 마스터는 다시 서버가 되어 모든 클라이언트들이 이 객체를 접근하도록 허용된다.
체크아웃 부 객체는 이동 클라이언트에 체크아웃 되더라도 여전히 이 객체의 마스터는 서버인 상태로 남아있게 된다. 즉, 이미 이동 클라이언트에 체크아웃 되었어도, 다른 이동 클라이언트가 부 객체로서 체크아웃을 요청할 경우, 이를 허용한다.
체크아웃 부 객체를 체크아웃 해간 이동 클라이언트는 이 객체를 읽기 전용으로만 사용해야 하며, 이 객체에 대한 쓰기 연산을 수행하고자 할 경우 클라이언트는 서버에게 쓰기 잠금(write lock)을 요청하고, 이 객체를 체크아웃 목적으로 복사해간 이동 클라이언트들을 제외한 나머지 분산되어 있는 클라이언트들에 저장되어 있는 중복 사본들과의 일관성을 유지하기 위해 서버는 분산 데이터베이스에서 동시성 제어 방법으로 사용되는 잠금 프로토콜인 중앙 집중식 2 Phase Locking (centralized 2PL)을 사용한다.
한편, 이동 클라이언트와 서버간의 체크인 또는 체크아웃 연산 과정에 대해 설명하면 다음과 같다.
이동 클라이언트는 데이터베이스 서버로부터 접속 단절시의 연산에 필요한 객체의 단편을 체크아웃 하고자 할 때, (체크아웃 주 객체 이름, 체크아웃 주 객체의 단편화 선정 기준, 체크아웃 부 객체 리스트) 에 대한 정보를 함께 데이터베이스 서버에 제출한다.
이에 따라 서버는 그 데이터베이스에서 주 객체로서 체크아웃 할 해당 객체를 체크아웃 주 객체 단편화 선정 기준에 따라 분할하여, 이 단편과 읽기 종속 관계에 있는 체크아웃 부 객체들의 사본과 함께 이동 클라이언트로 전송한다.
이러한 주 객체의 단편화는 관계형 데이터베이스의 경우에는 릴레이션(relation)의 수평 분할(horizontal fragmentation)에 해당하며 WHERE 조건절에 단편화 선정 기준이 포함된 SELECT문을 사용하여 단편화 기준을 명시할 수 있다.
또한, 체크인 연산 과정에 있어서, 단순히 서버에 저장되어 있는 주 객체 단편의 값을 이동 클라이언트로부터 전송된 주 객체 단편의 값으로 대치함으로써 데이터 일관성을 끝낼 수 있으나, 이 주 객체와 읽기 종속 관계에 있는 서버의 부 객체 와 이동 클라이언트의 부 객체 중복 사본에 대한 동기화 요청이 있을 경우 그에 따른 일관성 조정 작업이 필요하게 된다.
이동 클라이언트가 체크아웃 기간 동안 서버와의 한번의 접속도 없었다면, 지역적으로 수행되었던 이동 클라이언트에서의 연산의 결과들은 서버와의 동기화 작업이 수행되야 하고, 이 과정에서 충돌이 발생한 경우 그에 알맞은 충돌 해결 모듈이 수반되어야 한다.
한편, 본 발명에 따른 체크아웃된 객체에 대한 동기화 매커니즘은 동기화 조정 리스트(reconciliation list : 이하, RC 리스트라 한다)와 동기화 조정 프로토콜(reconciliation protocol : 이하, RC 프로토콜이라 한다)로 구성된다.
상기 RC 리스트는 이동 클라이언트로 체크아웃 된 체크아웃 부 객체에 대해 쓰기 연산이 수행되었을 때, 접속단절 상태에 있는 이동 클라이언트가 서버와 접속 후 동기화 조정 작업을 위해 필요한 정보들을 저장하고 있는 리스트이다.
이동 클라이언트가 서버에게 동기화를 요청하면, RC 리스트에 있는 정보를 토대로 동기화 조정 작업을 진행하게 된다.
도 1은 상기 RC 리스트의 자료구조를 보여주는 도면이다.
RC 리스트의 주요 구성 요소인 rnode는 이동 클라이언트에게 미전송된 체크아웃 부 객체에 대한 쓰기 연산 정보를 포함하고 있다.
상기 rnode는 LSN(Log Sequence Number)과 TS(Time Stamp)의 두 부분으로 구성되어 있는데, LSN은 서버 데이터베이스에서 유지하고 있는 로그 파일에서 체크아웃 부 객체에 대한 특정 쓰기 연산에 대한 로그 레코드 번호이며, TS는 LSN에 해당하는 로그 레코드에 기록된 쓰기 연산이 수행된 시간에 대한 정보이다.
ClientIP는 체크아웃 부 객체를 체크아웃 해간 이동 클라이언트의 IP 주소를 나타낸다.
도 2는 상기 RC 프로토콜 처리 과정을 보여주는 흐름도이다.
도 2에 도시된 바와 같이, 서버와 이동 클라이언트간의 동기화 조정 작업은 RC 프로토콜에 따라 진행된다.
이러한 RC 프로토콜의 각 단계에 대한 세부 사항은 다음과 같다.
먼저, 이동 클라이언트는 서버와의 접속 단절된 후 서버와 재 접속 상태로 들어가면서, 그 접속 단절 동안에 대한 동기화 조정 작업을 요청한다.(S201)
이에 따라 서버는 RC 리스트를 검사하여, 동기화 조정을 요청한 이동 클라이언트에게 각 체크아웃 부 객체 별로 미 전송된 rnode들 중, 첫번째로 발생한 rnode의 TS 값을 전송한다.(S202)
그리고, 이동 클라이언트는 자신의 로그 파일에서 서버로부터 받은 타임스탬프 이후에 발생한 참조 트랜잭션이 존재하는지를 검색하여, 존재하는 경우에는 서버에게 동기화 조정 정보를 요청하고, 존재하지 않는 경우에는 동기화 조정이 불필요함을 알린다.(S203)
이때, 이동 클라이언트가 동기화 조정 정보를 요청한 경우, 서버는 클라이언트를 위한 미 전송 rnode들에 대한 정보를 전송한다. 또한, 동기화 조정 정보가 불필요한 경우에는 체크아웃 부 객체의 최신 값을 전송한다.(S204)
이동 클라이언트는 서버로부터 전송 받은 rnode 정보들을 자신의 로그와 병합하여 동기화 조정 작업의 수행에 따른 충돌을 탐지하고 충돌이 탐지되면 그 충돌을 해결한 후, 서버에게 동기화 조정 완료를 통보한다.(S205)
서버는 이동 클라이언트로부터 동기화 조정 작업이 성공적으로 종료했음을 전송 받으면, RC 리스트에서 이동 클라이언트에게 전송되어졌던 rnode 정보들을 삭제한다.
이하에서는 충돌 탐지 및 해결 방법에 대해 보다 자세하게 설명하기로 한다.
발생 가능한 충돌의 예를 보면 체크아웃된 부 객체에 대해서 서버에서 변경을 할 경우, 클라이언트에서 변경 이전의 부 객체를 읽기 참조해 갔을 경우이다.
이러한 데이터의 충돌 탐지는 상기 RC 리스트의 rnode를 통해 이뤄진다. 즉, 이동 클라이언트는 서버로부터 전송 받은 rnode 정보들을 자신의 로그와 병합하여, 특정 부 객체를 사용한 참조 트랜잭션에서의 충돌을 탐지한다.
이동 클라이언트가 접속단절 동안 수행했던 참조 트랜잭션과 rnode의 로그정보 사이에 충돌이 발생할 경우, 체크아웃 부 객체에 대해서는 서버가 주 사본(master copy)이므로 이동 클라이언트에서 수행된 참조 트랜잭션을 철회(UNDO)한 후, 명시된 규칙을 통해 충돌을 해결한다.
명시된 규칙은 보상 트랜잭션이라고 하며, 본 발명을 적용하여 이루어진 응용에서의 개발자에 의해 작성된다.
상술한 바와 같이 본 발명에 따른 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법은, 이동 데이터베이스의 응용에 사용되는 데이터들이 쓰기 및 읽기 연산에 있어 사용자 및 응용의 특징에 의해 지역적으로 처리되는 성격을 가지고 있고, 데이터 처리에 대한 일관성 및 신뢰성 보장 수준이 비교적 엄격하지 않은 응용을 위해 클라이언트 별, 응용 별 특성에 해당하는 데이터만을 복제함으로써 동기화의 충돌 탐지 및 해결의 오버헤드를 감소시킨다.
이상에서 설명한 것은 본 발명에 따른 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법을 실시하기 위한 하나의 실시예에 불과한 것으로서, 본 발명은 상기한 실시예에 한정되지 않고, 이하의 특허청구의 범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변경 실시가 가능한 범위까지 본 발명의 기술적 정신이 있다고 할 것이다.

Claims (7)

  1. 다수의 이동 클라이언트들과 데이터베이스 서버간의 데이터 동기화 방법에 있어서,
    서버측 DB의 데이터를 이동 클라이언트측 내장 DB로 복제하고, 서버는 그 내용 및 복제 시간을 관리하는 관리단계;
    이동 클라이언트가 접속 단절된 동안에 발생한 데이터 변경에 대하여, 재 접속된 후 이동 클라이언트의 요청에 따라 클라이언트와 서버간에 그 변경 데이터를 일치시키는 데이터 동기화단계; 및
    상기 데이터 동기화 과정에서 데이터의 일관성을 해치는 오류를 탐지하고 탐지된 오류를 해결하는 충돌 탐지 및 해결 단계;로 이루어지는 것을 특징으로 하는 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법.
  2. 제 1항에 있어서, 상기 복제 관리단계는 이동 클라이언트가 접속 단절동안에 사용한 특정 객체에 대한 주 객체 단편과 그 부 객체를 서버로부터 체크 아웃하여 자신의 DB에 복사하며, 서버는 체크 아웃된 부 객체에 대해서는 다수의 클라이언트가 중복 복제할 수 있도록 하고 체크 아웃된 주 객체 단편에 대해서는 논리적으로 삭제하여 타 클라이언트에 중복 복제되지 않도록 하는 것을 특징으로 하는 모바일환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법.
  3. 제 1항에 있어서, 상기 복제 관리단계는 이동 클라이언트가 체크아웃 주 객체 이름, 체크아웃 주 객체의 단편화 선정 기준, 체크아웃 부 객체 리스트 정보를 제출하여 필요한 객체의 단편을 요구함에 따라, 서버는 그 DB에서 주 객체로서 체크아웃할 해당 객체를 주 객체 단편화 선정 기준에 따라 분할하여, 이 단편과 읽기 종속 관계에 있는 체크아웃 부 객체들의 사본을 함께 이동 클라이언트로 전송하는 것을 특징으로 하는 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법.
  4. 제 1항에 있어서, 상기 복제 관리단계는, 체크아웃 부 객체에 대해 이동 클라이언트들이 쓰기 연산을 수행함에 따라, 서버는 각 체크아웃 부 객체 및 이를 체크아웃한 클라이언트에 대한 RC 리스트를 작성하여 관리하고, 이 RC 리스트는 체크아웃 부 객체에 대해 쓰기 연산을 수행한 이동 클라이언트에 대한 rnode로 이뤄지는 것을 특징으로 하는 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법.
  5. 제 4항에 있어서, 상기 rnode는 서버 DB에서 유지하고 있는 로그 파일에서 체크아웃 부 객체에 대한 특정 쓰기 연산에 대한 로그 레코드 번호인 로그 시권스 번호와 그 쓰기 연산이 수행된 시간 정보인 타임 스탬프로 이뤄지는 것을 특징으로 하는 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법.
  6. 제 1항에 있어서, 상기 데이터 동기화단계는, 소정의 RC 프로토콜에 따라 진행되며,
    이동 클라이언트가 서버와 재 접속되면서 그 접속 단절 동안에 대한 동기화 조정 작업을 요청하는 단계와,
    서버가 RC 리스트를 검사하여 상기 동기화 조정을 요청한 이동 클라이언트에게 각 체크아웃 부 객체 별로 미 전송된 rnode들 중 첫 번째로 발생한 rnode의 타임 스탬프 값을 전송하는 단계와,
    이동 클라이언트가 상기 타임스탬프 이후의 참조 트랜잭션이 존재하는지를 검색하여, 존재할 경우는 서버에게 동기화 조정 정보를 요청하고, 존재하지 않는 경우는 동기화 조정이 불필요함을 알리는 단계와,
    동기화 조정정보을 요청할 경우는 서버가 클라이언트를 위한 미 전송 rnode들에 대한 정보를 전송하고, 동기화 조정 정보가 불필요한 경우에는 체크아웃 부 객체의 최신 값을 전송하는 단계와,
    이동 클라이언트는 서버로부터 전송 받은 rnode 정보들을 자신의 로그와 병합하여 동기화 조정 작업의 수행하는 단계와,
    이동 클라이언트의 동기화 조정 작업이 완료되면, 서버는 RC 리스트에서 이동 클라이언트에게 전송된 rnode 정보들을 삭제하는 단계로 이루어지는 것을 특징으로 하는 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법.
  7. 제 1항에 있어서, 상기 충돌 탐지 및 해결 단계는, 이동 클라이언트가 동기화 조정 작업을 수행함에 있어, 서버로부터 rnode 정보들을 자신의 로그와 병합하여 그 체크아웃 부 객체를 사용한 참조 트랜잭션에서의 충돌을 탐지하고, 참조 트랜잭션과 rnode의 로그 정보사이에 충돌이 탐지되면 그 참조 트랜잭션을 철회한 후 보상 트랜잭션의 명시 규칙에 따라 그 충돌을 해결하는 것을 특징으로 하는 모바일 환경에서의 이동 클라이언트와 서버간의 데이터 동기화 및 갱신 충돌 해결 방법.
KR10-2002-0083160A 2002-12-24 2002-12-24 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법 KR100462839B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0083160A KR100462839B1 (ko) 2002-12-24 2002-12-24 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법
US10/422,843 US7543047B2 (en) 2002-12-24 2003-04-25 Method for data synchronization and update conflict resolution between mobile clients and server in mobile system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0083160A KR100462839B1 (ko) 2002-12-24 2002-12-24 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법

Publications (2)

Publication Number Publication Date
KR20040056639A true KR20040056639A (ko) 2004-07-01
KR100462839B1 KR100462839B1 (ko) 2004-12-23

Family

ID=32588899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0083160A KR100462839B1 (ko) 2002-12-24 2002-12-24 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법

Country Status (2)

Country Link
US (1) US7543047B2 (ko)
KR (1) KR100462839B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090077508A (ko) * 2008-01-11 2009-07-15 주식회사 와우디앤씨 서버와 클라이언트간에 데이터 처리 방법 및 시스템
KR101402115B1 (ko) * 2011-11-11 2014-06-02 (주)나무소프트 복수 유저 및 복수 단말 환경에서의 파일 동기화 방법

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050177617A1 (en) * 2003-12-23 2005-08-11 Intel Corporation Conflict resolution during data synchronization
FI20040697A (fi) 2004-05-19 2005-11-20 Nokia Corp Menetelmä, laite ja ohjelmisto kannettavien laitteiden tietojen päivittämiseksi
US7395280B2 (en) * 2004-11-10 2008-07-01 International Business Machines Corporation Incrementally sychronizing occasionally-connected mobile databases, preserving horizontal filter scope consistency by using client pre-image
US20060106879A1 (en) * 2004-11-16 2006-05-18 International Business Machines Corporation Conflict resolution in a synchronization framework
US8290910B2 (en) * 2005-09-21 2012-10-16 Infoblox Inc. Semantic replication
US8533169B1 (en) 2005-09-21 2013-09-10 Infoblox Inc. Transactional replication
US8250030B2 (en) * 2005-09-21 2012-08-21 Infoblox Inc. Provisional authority in a distributed database
US7529780B1 (en) * 2005-12-30 2009-05-05 Google Inc. Conflict management during data object synchronization between client and server
CN100401299C (zh) * 2006-01-10 2008-07-09 英业达股份有限公司 数据处理系统及方法
US7606838B2 (en) * 2006-02-22 2009-10-20 Microsoft Corporation Distributed conflict resolution for replicated databases
US8751532B2 (en) 2006-05-11 2014-06-10 International Business Machines Corporation Nomadic data collection and management method including pessimistic locking of data
US20080104206A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Efficient knowledge representation in data synchronization systems
US20080103977A1 (en) * 2006-10-31 2008-05-01 Microsoft Corporation Digital rights management for distributed devices
US7778282B2 (en) * 2006-12-18 2010-08-17 Microsoft Corporation Propagation of conflict knowledge
US7620659B2 (en) * 2007-02-09 2009-11-17 Microsoft Corporation Efficient knowledge representation in data synchronization systems
GB0710920D0 (en) * 2007-06-06 2007-07-18 Icom Ltd Mobile application
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8028229B2 (en) * 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US8825758B2 (en) * 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8301588B2 (en) * 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8352870B2 (en) * 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US20090315766A1 (en) 2008-06-19 2009-12-24 Microsoft Corporation Source switching for devices supporting dynamic direction information
US8700301B2 (en) 2008-06-19 2014-04-15 Microsoft Corporation Mobile computing devices, architecture and user interfaces based on dynamic direction information
US8467991B2 (en) * 2008-06-20 2013-06-18 Microsoft Corporation Data services based on gesture and location information of device
US20090319166A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US20090315775A1 (en) * 2008-06-20 2009-12-24 Microsoft Corporation Mobile computing services based on devices with dynamic direction information
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US9934240B2 (en) 2008-09-30 2018-04-03 Google Llc On demand access to client cached files
US8620861B1 (en) 2008-09-30 2013-12-31 Google Inc. Preserving file metadata during atomic save operations
US20100131836A1 (en) * 2008-11-24 2010-05-27 Microsoft Corporation User-authored notes on shared documents
TWI384378B (zh) * 2008-12-29 2013-02-01 Ind Tech Res Inst 網頁應用程式執行方法
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US8872767B2 (en) 2009-07-07 2014-10-28 Microsoft Corporation System and method for converting gestures into digital graffiti
US20110258160A1 (en) * 2010-04-15 2011-10-20 Po-Yen Lee Data synchronization methods for synchronizing data in communication system and communication systems
US8805924B2 (en) 2010-05-26 2014-08-12 Microsoft Corporation Optimistic concurrency utilizing distributed constraint enforcement
US8489974B2 (en) * 2010-06-07 2013-07-16 Salesforce.Com, Inc. System, method and computer program product for resolving a data conflict
DE102011107508B4 (de) * 2011-07-15 2014-07-31 Deutsches Zentrum für Luft- und Raumfahrt e.V. Verfahren zum Synchronisieren der Datenbestände von Datenbanken
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
US9053079B2 (en) * 2011-12-12 2015-06-09 Microsoft Technology Licensing, Llc Techniques to manage collaborative documents
US8924799B2 (en) * 2012-04-16 2014-12-30 Yahoo! Inc. Method and system for providing a predefined content to a user
US9239846B2 (en) 2012-04-23 2016-01-19 Google Inc. Sharing and synchronizing electronically stored files
US9529818B2 (en) 2012-04-23 2016-12-27 Google Inc. Sharing and synchronizing electronically stored files
US8949179B2 (en) 2012-04-23 2015-02-03 Google, Inc. Sharing and synchronizing electronically stored files
US9244934B2 (en) 2012-04-23 2016-01-26 Google Inc. Sharing and synchronizing electronically stored files
US9286315B2 (en) * 2012-10-17 2016-03-15 Apollo Education Group, Inc. Resolving synchronization conflicts based on state information
US9626176B2 (en) 2013-09-13 2017-04-18 Microsoft Technology Licensing, Llc Update installer with technical impact analysis
US9665359B2 (en) * 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US10026064B2 (en) 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9830142B2 (en) 2013-09-13 2017-11-28 Microsoft Technology Licensing, Llc Automatic installation of selected updates in multiple environments
CN103970834A (zh) * 2014-04-02 2014-08-06 浙江大学 一种异构数据库同步系统中增量数据同步故障的恢复方法
US10824974B2 (en) 2015-09-11 2020-11-03 International Business Machines Corporation Automatic subject matter expert profile generator and scorer
US10657117B2 (en) 2015-09-11 2020-05-19 International Business Machines Corporation Critical situation contribution and effectiveness tracker
US10521770B2 (en) 2015-09-11 2019-12-31 International Business Machines Corporation Dynamic problem statement with conflict resolution
US10002181B2 (en) 2015-09-11 2018-06-19 International Business Machines Corporation Real-time tagger
CN105701159B (zh) * 2015-12-30 2019-05-03 华为技术有限公司 一种数据同步装置和方法
US11204940B2 (en) * 2018-11-16 2021-12-21 International Business Machines Corporation Data replication conflict processing after structural changes to a database
CN110222042B (zh) * 2019-05-30 2020-06-16 口碑(上海)信息技术有限公司 用于确定已核对业务数据的方法、装置、设备及系统架构
US11132352B1 (en) 2020-05-13 2021-09-28 International Business Machines Corporation Utilizing local IoT devices to reconcile data mismatches
US11429637B2 (en) * 2020-10-13 2022-08-30 Microsoft Technology Licensing, Llc Offline support for a database cluster

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6219675B1 (en) * 1997-06-05 2001-04-17 Microsoft Corporation Distribution of a centralized database
US6289357B1 (en) * 1998-04-24 2001-09-11 Platinum Technology Ip, Inc. Method of automatically synchronizing mirrored database objects
US6810405B1 (en) * 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US6393434B1 (en) * 1999-09-14 2002-05-21 International Business Machines Corporation Method and system for synchronizing data using fine-grained synchronization plans
US6636873B1 (en) * 2000-04-17 2003-10-21 Oracle International Corporation Methods and systems for synchronization of mobile devices with a remote database
US6789103B1 (en) * 2000-05-05 2004-09-07 Interland, Inc. Synchronized server parameter database
US6993522B2 (en) * 2001-06-27 2006-01-31 Microsoft Corporation System and method for resolving conflicts detected during a synchronization session
US7024429B2 (en) * 2002-01-31 2006-04-04 Nextpage,Inc. Data replication based upon a non-destructive data model
GB0202600D0 (en) * 2002-02-05 2002-03-20 Ibm Consolidation of replicated data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090077508A (ko) * 2008-01-11 2009-07-15 주식회사 와우디앤씨 서버와 클라이언트간에 데이터 처리 방법 및 시스템
KR101402115B1 (ko) * 2011-11-11 2014-06-02 (주)나무소프트 복수 유저 및 복수 단말 환경에서의 파일 동기화 방법

Also Published As

Publication number Publication date
US20040122870A1 (en) 2004-06-24
US7543047B2 (en) 2009-06-02
KR100462839B1 (ko) 2004-12-23

Similar Documents

Publication Publication Date Title
KR100462839B1 (ko) 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법
US7076567B1 (en) Simplified application object data synchronization for optimized data storage
US7606881B2 (en) System and method for synchronization of version annotated objects
US7440985B2 (en) Filtered replication of data stores
US6317754B1 (en) System for user control of version /Synchronization in mobile computing
US7860825B2 (en) Method for synchronizing software application and user data for asynchronous client-server and peer to peer computer networks
RU2404450C2 (ru) Способ и система для синхронизации множественных пользовательских ревизий совместно используемого объекта
CN111448559A (zh) 客户端同步更新的有效管理
US20150347250A1 (en) Database management system for providing partial re-synchronization and partial re-synchronization method of using the same
US8751442B2 (en) Synchronization associated duplicate data resolution
US20050246389A1 (en) Client store synchronization through intermediary store change packets
US20100161657A1 (en) Metadata server and metadata management method
US20070143344A1 (en) Cache maintenance in a distributed environment with functional mismatches between the cache and cache maintenance
WO2010073110A1 (en) Selective database replication
WO1998038586A1 (en) Method of determining the visibility to a remote databaseclient of a plurality of database transactions using simplified visibility rules
CN107077491B (zh) 联机模式和数据变换
US20020174200A1 (en) Method and system for object replication in a content management system
WO2004070625A1 (en) Apparatus and method for synchronizing databases by comparing hash values
KR100521742B1 (ko) 엑스엠엘 문서의 구조 및 속성 정보의 손실 없이 엑스엠엘문서를 원격 서버로 복제하는 엑스엠엘 데이터베이스이중화 장치 및 그 방법
Ekenstam et al. The Bengal database replication system
CN113641686B (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
Tomter et al. Augmenting sqlite for local-first software
Sharma et al. Replication management and optimistic replication challenges in mobile environment
Sapate et al. Survey on comparative analysis of database replication techniques
EP0963576A2 (en) Method of determining the visibility to a remote database client of a plurality of database transactions

Legal Events

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

Payment date: 20101201

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee