KR20050044311A - 통신 시스템의 데이터 동기화 장치 - Google Patents

통신 시스템의 데이터 동기화 장치 Download PDF

Info

Publication number
KR20050044311A
KR20050044311A KR1020047003479A KR20047003479A KR20050044311A KR 20050044311 A KR20050044311 A KR 20050044311A KR 1020047003479 A KR1020047003479 A KR 1020047003479A KR 20047003479 A KR20047003479 A KR 20047003479A KR 20050044311 A KR20050044311 A KR 20050044311A
Authority
KR
South Korea
Prior art keywords
identifier
synchronization
mapping table
data unit
coordinator
Prior art date
Application number
KR1020047003479A
Other languages
English (en)
Other versions
KR100945221B1 (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 KR20050044311A publication Critical patent/KR20050044311A/ko
Application granted granted Critical
Publication of KR100945221B1 publication Critical patent/KR100945221B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L7/00Arrangements for synchronising receiver with transmitter
    • H04L7/04Speed or phase control by synchronisation signals
    • H04L7/10Arrangements for initial synchronisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/58Message adaptation for wireless communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/28Timers or timing mechanisms used in protocols
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 적어도 하나의 클라이언트 장치 및 적어도 2개의 동기화 서버를 포함하는 동기화 시스템에서 중복 부분을 검출하는 방법에 관한 것이다. 상기 방법은 동기화가 이루어질 데이터 단위에 대하여 상기 클라이언트 장치에서 사용하기 위한 제1 식별자 및 상기 동기화 서버에서 사용하기 위한 제2 식별자를 할당하는 단계; 및 상기 동기화 서버를 통해 동기화가 이루어질 데이터 단위에 할당된 제1 식별자 및 제2 식별자를 상기 매핑 테이블에 부가함으로써 상기 동기화 서버에 대하여 매핑 테이블을 유지하는 단계를 포함한다. 상기 방법은 서로 다른 동기화 서버의 매핑 테이블에 부가된 제1 및 제2 식별자에 의해 형성된 식별자 쌍을 비교하는 단계; 및 상기 매핑 테이블의 식별자 쌍 중 적어도 일부가 서로에 대응하게 하는 단계를 더 포함한다.

Description

통신 시스템의 데이터 동기화 장치{Arrangement of data synchronization in a telecommunications system}
본 발명은 데이터 동기화 장치에 관한 것이며, 구체적으로 기술하면 여러 동기화 서버를 포함하는 통신 시스템에서 데이터 단위의 중복 부분을 검출하는 것에 관한 것이다. 데이터 동기화는, 동기화 이후에 데이터 수집의 데이터 단위가 실질적으로 서로에 대응하는 방식으로 2부분의 데이터 수집 간에 대응이 이루어지는 기능이다.
컴퓨터, PDA(Personal Digital Assistant; 개인 휴대 정보 단말기) 장치, 이동국 또는 페이지와 같은 휴대용 단말기의 데이터는 네트워크 어플리케이션, 데스크탑 어플리케이션의 데이터베이스 또는 통신 시스템의 다른 데이터베이스와 동기화가 이루어질 수 있다. 전형적으로는, 동기화가 이루어지는 것이 특히 캘린더 및 전자 우편 어플리케이션의 데이터이다. 동기화가 이전에는 서로 호환가능하지 않은 서로 다른 제조업자 전용 프로토콜의 사용을 기초로 한 것이었다. 이러한 것이 서로 다른 단말기 및 데이터 유형의 사용을 제한하고 사용자에게는 종종 난해하다. 특히, 이동 통신에 있어서는 사용되고 있는 단말기 또는 어플리케이션과는 무관하게 데이터가 수집 및 갱신되게 하는 것이 중요하다. SyncML(Synchronization Markup Language; 동기화 생성 언어)는 보다 실제적인 동기화를 위해 XML(Extensible Markup Language; 확장성 생성 언어)을 기초로 하여 개발되어 왔다. SyncML 포맷으로 이루어진 메시지를 사용하는 SyncML 동기화 프로토콜로 임의의 어플리케이션의 데이터는 임의의 네트워크 단말기 간에 동기화가 이루어질 수 있다.
도 1은 이동국(mobile station; MS)이 클라이언트 장치로서의 기능을 하며 네트워크 서버(S)가 동기화 서버로서의 기능을 하는 동기화 시스템을 예시한 것이다. 상기 클라이언트 장치(MS)는, 이전의 동기화 과정 이후에 동기화 상태로 설정된 데이터에서 이루어진 변화들을 상기 서버(S)에 전달하고, 상기 서버(S)는 데이터의 동기화를 이룬다. 즉, 상기 서버(S)는 동기화 동안 클라이언트 장치(MS) 및 데이터베이스의 데이터에서 이루어진 변화들을 분석하고, 데이터를 균일화시킨다(필요한 수정, 교체 및 삭제를 수행한다). 이후로는, 상기 서버(S)가 상기 변화들을 상기 클라이언트 장치(MS)에 복귀시키고, 상기 클라이언트 장치(MS)는 상기 변화들에 따라 설정된 데이터를 변경시킨다. 종래에는, 클라이언트-서버 동기화에 있어서는, 상기 클라이언트 장치 및 상기 서버가 데이터 단위에 대하여 자기 자신의 식별자를 갖는다. 예를 들면, SyncML 사양서 'SyncML Sync Protocol, version 1.0.1', June 2001, Chapter 2.3(pages 12-13)에 기재되어 있는 바와 같이, 상기 서버에서 사용된 식별자들은 항상 가능한 한 모호하지 않은 GUID(global unique identifier; 글로벌 단일 식별자)라고 언급된다. 다시 말하면, 상기 식별자들은 서로에 대하여 혼동되지 않아야 한다. 클라이언트 장치의 식별자는 LUID(local unique identifier; 로컬 유일 식별자)라고 언급된다. LUID 식별자는 메모리를 절약하기 위하여 보다 짧게 구성하며, 동기화 서버는 GUID 및 LUID 식별자들 간에 매핑 테이블을 유지한다. 상기 클라이언트 장치는 여러 서버(S)에 대하여 데이터의 동기화를 이룰 수 있으며, 또한 상기 서버(S)는 서로에 대하여 데이터의 동기화를 이룰 수 있다. 이에 대한 한가지 간단한 예로는 데이터 단위(A)가 데스크탑에 부가되고 식별자(GUID1)로 할당되는 것이 있다. 상기 데스크탑은 이동국과 동기화를 이루고, 그럼으로써 이러한 동기화가 식별자(LUID1)로 또한 할당된다. 상기 데스크탑 및 전자 우편 서버가 동기화를 이룬 경우, 상기 데이터 단위(A)는, 전자 우편 서버에서도 식별자( GUID1)로 기록된다. 이러한 이동 서버가 상기 전자 우편 서버와 동기화를 이룰 경우, 상기 전자 우편 서버는 식별자(LUID1)를 인식하지 못한다. 상기 전자 우편 서버는 상기 데이터 단위를 기록하고 이를 새로운 식별자 (GUID2)로 할당한다. 이후로는, 상기 데이터 단위(A)가 상기 전자 우편 서버(즉, 전자 우편 서버의 데이터베이스)에 2번 기록되어 버린다. 이는 동기화의 루프 문제로 언급되는 데, 이는, 불필요한 중복 부분이 기록될 경우 메모리 용량의 소비 및 중복 데이터 전송을 야기시킨다.
도 1은 제1의 동기화 시스템을 보여주는 도면이다.
도 2a는 제2의 동기화 시스템을 보여주는 도면이다.
도 2b는 SyncML 서버 장치를 보여주는 도면이다.
도 3은 본 발명의 한 바람직한 실시예에 따른 기능 블럭을 보여주는 도면이다.
도 4는 본 발명의 한 바람직한 실시예에 따른 방법의 플로챠트를 보여주는 도면이다.
도 5는 몇가지 동기화 이벤트를 예시하는 도면이다.
따라서, 본 발명의 목적은 중복 부분들에 의해 야기되는 위에서 언급된 문제가 회피될 수 있는 방법 및 이 방법을 구현하는 수단을 제공하는 것이다. 본 발명의 목적들은 첨부된 청구의 범위 중 독립항들에 기재된 것을 특징으로 하는 방법, 동기화 시스템, 동기화 장치 및 컴퓨터 프로그램 생성물로 달성된다. 본 발명의 바람직한 실시예는 그의 종속항들에 개시되어 있다.
본 발명은 클라이언트 장치에서 사용된 제1 식별자를 서버에서 사용된 제2 식별자에 매핑시키는, 서버용으로 유지되는 매핑 테이블의 비교를 기초로 한 것이다. 본 발명의 제1 실시예에 의하면, 상기 매핑 테이블의 식별자 쌍 중 적어도 일부가 서로에 대응되게 한다. 따라서, 상기 매핑 테이블로부터 누락된 적어도 식별자 쌍이 부가될 수 있다. 본 발명의 제2 실시예에 의하면, 동기화가 이루어질 데이터 단위를 저장하는 것은 상기 매핑 테이블의 비교를 기초로 하여 그리고 검출된 데이터 단위에 할당된 제1 식별자에 따른 데이터 단위의 저장에 대한 응답으로서 방지된다. 매핑 테이블을 유지한다는 것은, 예를 들면 새로운 데이터 단위의 수신에 대한 응답으로서, 식별자의 할당 이후에 임의의 포맷의 매핑 테이블에 제1 및 제2 식별자를 저장하는 것을 말한다. 유념해야 할 점은 서버라는 용어가 클라이언트-서버 구조의 서비스 기능을 제공하는 블럭을 말하며, 이에 대응하여, 클라이언트 장치라는 용어가 특정의 물리적 서버 장치로 반드시 제한될 필요 없이, 동기화의 클라이언트 장치 기능을 제공하는 블럭을 말한다는 점이다. 동일한 컴퓨터에서는, 상기 서버 및 상기 클라이언트 장치 모두의 기능을 수행하는 소프트웨어 구성요소가 존재할 수 있다.
상기 해결 방안의 이점은 특정의 매핑 테이블에 부가되는 데이터 단위 식별자가 또한 다른 매핑 테이블들로 갱신될 수 있다는 점이다. 이같은 매핑 테이블의 갱신 때문에, 만약 시스템 내의 모든 장치가 본 발명의 방법을 사용한다면 (중복 부분의 생성 방지 및/또는 이미 형성된 중복 부분의 검출 및 삭제로) 상기 루프 문제가 회피될 수 있다. 비록 시스템 내의 몇몇 장치가 본 발명에 따른 방법을 사용하지 않더라도, 본 발명을 적용하면 상기 루프 문제가 대부분 완화되는 데, 그 이유는 본 발명에 따른 장치가 여전히 중복 부분의 형성을 방지하고 이미 초래된 중복 부분을 인식하고, 그럼으로써 상기 중복 부분이 삭제될 수 있기 때문이다.
본 발명의 한 바람직한 실시예에 의하면, 적어도 하나의 조정자(mediator)가, 서버에 대하여 매핑 테이블을 유지하고, 서로 다른 매핑 테이블의 식별자 쌍을 비교하며 상기 비교를 기초로 하여 상기 매핑 테이블의 식별자 쌍을 갱신하는 데 사용된다. 조정자의 사용으로 달성되는 이점들은 다음과 같다. 즉, 그 첫번째 이점은 이미 사용중에 있는 서버에 대하여 어떠한 변경도 요구되지 않는다는 점이고, 그 두번째 이점은 서버가 매핑 테이블을 유지해야 할 필요 없이, 다수개의 서버의 동일 매핑 테이블의 유지가 개별 조정자에 집중될 수 있다는 점이다. 동일한 조정자에 서로 다른 서버의 서비스를 집중시키는 경우에는 조정자들의 동작 및 제어가 보다 효율적으로 이루어진다.
본 발명의 한 바람직한 실시예에 의하면, 다음의 동기화 세션 동안, 만약 적어도 2개의 데이터 단위에 대하여 동일한 제1 식별자 및/또는 동일한 제2 식별자가 존재한다면, 적어도 하나의 데이터 단위 중복 부분이 삭제되는 방식으로 형성된 중복 부분은 비교를 기초로 하여 삭제된다. 이러한 방식으로, 예를 들면, 상기 루프 문제에 기인하여 형성된 중복 부분이 삭제될 수 있다.
이하 첨부 도면에 도시된 바람직한 실시예들로 본 발명이 보다 상세하게 설명될 것이다.
이하에서는 SyncML 표준을 지원하는 시스템에서 본 발명의 한 바람직한 실시예를 설명할 것이다. 그러나, 본 발명이 어떠한 동기화 시스템에도 적용될 수 있다는 점에 유념하여야 한다.
도 2a는 데이터베이스의 데이터가 동기화 서버(S) 및 단말기(TE) 간에, 단말기(TE)들 간에 또는 서버(S)들 간에 동기화될 수 있는 네트워크 시스템을 예시한 것이다. 단말기(TE)는 동기화에 대하여 클라이언트 장치로서의 기능을 하며 결과적으로는 동기화가 이루어질 데이터베이스를 포함할 수 있다. 서버(S)는 여러 클라이언트 장치(TE)에 서비스를 제공할 수 있다. 도 2a는 2가지의 예를 포함하는 데, 이들 예 중 첫번째 예에서는, 클라이언트 장치(TE) 및 동기화 서버(S)가 구내 정보 통신 네트워크(local area network; LAN)에 접속된다. 상기 네트워크(LAN)에 접속된 클라이언트 장치(TE)는 상기 네트워크(LAN)를 이루는 장치들과의 통신을 위하여 예를 들면, 네트워크 인터페이스 카드 및 소프트웨어 제어 데이터 통신과 같은 기능을 포함한다. 상기 구내 정보 통신 네트워크(LAN)는 어떤 유형이라도 가능한 네트워크일 수 있으며, 상기 TE가 또한, 전형적으로는 방화벽(firewall; FW)을 사용하여 인터넷을 통해 서버(S)와 통신할 수 있다. 두번째 예에서는, 클라이언트 장치 (TE)가 이동 통신 네트워크(mobile network; MNW)를 거쳐 서버(S)와 통신한다. 상기 네트워크(MNW)에 접속된 클라이언트 장치(TE)는 무선 방식으로 상기 네트워크 (MNW)와의 통신을 위한 이동국 기능을 포함한다. 또한, 이동 통신 네트워크(MNW) 및 서버(S) 간의, 구내 정보 통신 네트워크(LAN)와 같은 다른 네트워크가 존재할 수 있다. 이동 통신 네트워크(MNW)는 GSM 서비스를 지원하는 네트워크, GPRS 서비스(general packet radio service; GPRS; 유럽 전기 통신 표준 협회(ETSI)가 표준화한 유럽 디지털 이동 전화 방식 GSM(global system for communication) 네트워크를 기초로 한 패킷 통신 서비스)를 지원하는 네트워크, 범용 이동 통신 시스템( Universal Mobile Telecommunications System; UMTS) 네트워크와 같은 제3세대 이동 통신 네트워크, 무선 구내 정보 통신 네트워크(wireless local area network; WLAN) 또는 사설 통신 네트워크(private network)와 같은 공지된 무선 네트워크일 수 있다. 서버(S)는 그 자체로서 동기화를 이루는 데이터베이스를 포함할 수도 있고, 또한 동기화를 이루는 데이터베이스가 다른 장치에 배치될 수도 있는 데, 도 2a에서는 서버(S)와 데이터베이스(DB)가 예시를 위해 분리되어 있다는 점에 유념하여야 한다.
도 2b에 예시되어 있는 바와 같이, 서버(S)는 메모리(SMEM), 사용자 인터페이스(SUI), 데이터 전송을 이루기 위한 I/O 수단(SI/O) 및 하나 또는 그 이상의 프로세서를 포함하는 중앙 처리 유닛(SCPU)을 포함한다. 상기 메모리(SMEM)는 상기 중앙 처리 유닛(SCPU)을 제어하는 어플리케이션 및 저장될 다른 데이터를 저장하는 비-휘발성 부품, 및 일시적인 데이터 처리용으로 사용될 휘발성 부품을 포함한다. 동기화 서버(S)는, 바람직하게는 상기 메모리(SMEM)에 저장된 컴퓨터 프로그램 코드를 상기 SCPU에서 실행시킴으로써, 동기화 에이전트(SA) 및 동기화 엔진 블럭(SE )을 구현한다. 상기 중앙 처리 유닛(SCPU)에서 실행되는 컴퓨터 프로그램 코드는 상기 서버(S)의 동작에 본 발명의 특징이 부가될 수 있게 하는 데, 상기 본 발명의 특징 중 몇가지 바람직한 실시예가 도 3 및 도 4에 예시되어 있다. 상기 컴퓨터 프로그램은 네트워크를 통해 획득될 수도 있고 메모리 수단에, 예컨대 디스크, CD-ROM 디스크 또는 다른 외부 메모리 수단에 기록될 수도 있고, 네트워크를 통해 획득되어 메모리 수단, 예컨대 디스크, CD-ROM 디스크 또는 다른 외부 메모리 수단에 기록될 수 있는 데, 이로부터 상기 컴퓨터 프로그램이 상기 메모리(SMEM)에 로드될 수 있다. 또한, 하드웨어 해법 또는 하드웨어 및 소프트웨어 해법의 조합이 사용될 수 있다.
종래의 SyncML 동기화 서비스에 있어서, 동기화 세션이 먼저 초기화되는 데, 상기 동기화 세션은 예컨대 동기화가 이루어질 데이터베이스의 선택을 포함한다. SyncML 클라이언트 장치(TE)는 상기 클라이언트 장치의 동기화 세션과 관련한 기능을 수행하는 동기화 클라이언트 에이전트(Sync 클라이언트 에이전트)를 포함한다. Sync 클라이언트 에이전트는 서버 동기화 에이전트(SA)에 SyncML 메시지(클라이언트 수정)를 전송하는 데, 상기 SyncML 메시지는 적어도 클라이언트 장치(TE)의 동기화 대상이며 이전의 동기화 이후에 변경된 데이터를 포함한다. 서버(S)의 동기화 블럭(SE)은 그 차이점을 분석하고 데이터 세트들을 균일화시킨다. 이후로는, 상기 SA가 서버(S)에서 이루어진 수정(서버 수정)을 상기 클라이언트 에이전트로 복귀시키고, 상기 클라이언트 에이전트는 상기 TE에 대한 필요한 수정을 수행한다. SyncML 동기화 프로토콜은, 예를 들면, HTTP 프로토콜(여기서 HTTP는 Hyper Text Transfer Protocol의 약어이며, 하이퍼텍스트 전송 프로토콜로 풀이됨), WAP( Wireless Application Protocol; 무선 응용 통신 프로토콜) 표준의 WSP 프로토콜(여기서 WSP는 Wireless Session Protocol의 약어이며, 무선 세션 프로토콜로 풀이됨), USB(Universal Serial Bus; 유니버설 시리얼 버스) 또는 RS-232와 같은 케이블 링크용으로, 또는 단거리 무선 주파수(블루투스(Bluetooth)) 링크 또는 적외선( IrDA) 링크용으로 사용되는 OBEX 프로토콜의 상부에서, TCP/IP(Transport Control Protocol/Internet Protocol; 전송 제어 프로토콜/인터넷 프로토콜) 스택의 상부에서, 그리고 또한 전자 우편 프로토콜(SMTP; Simple Mail Transfer Protocol; 단순 전자 우편 전송 프로토콜)의 상부에서 구현될 수 있다.
도 3은 SyncML 클라이어트 장치의 기능을 제공하는 블럭 및 SyncML 동기화 서버(S; 동기화 에이전트 블럭(SA) 및 동기화 엔진 블럭(SE))의 기능을 제공하는 블럭에 부가해서 조정자(mediator) 블럭(이하 조정자로 언급됨; MED)이 제공되어 있는 기능적인 배치를 예시한 것이다. TE 및 S 간의 SyncML 메시지는 그같은 조정자(MED)를 통해 이동한다. 바람직하게는, 서버(S) 간의 데이터 전송이 상기 조정자를 통해 이루어진다. 상기 조정자(MED)의 주된 태스크는 적어도 하나의 서버에 대하여 GUID-LUID 매핑 테이블을 유지하고, 서버에 대하여 데이터 단위가 상기 서버에 할당된 GUID 식별자로 식별되고, 그리고 클라이언트 장치(TE)에 대하여는 데이터 단위가 상기 클라이언트 장치에 할당된 LUID 식별자로 식별되는 방식으로 상기 매핑 테이블을 사용하여 상기 서버(S) 및 상기 클라이언트 장치(TE) 간에 동기화 메시지를 전송하며, 서로 다른 테이블에서 식별자 쌍을 비교하고, 매핑 테이블을 갱신하는 것을 포함한다. 상기 MED는 여러 방식으로 구현될 수 있는 데, 바람직하게는, 상기 MED가 서버(S)의 SCPU(도 2b에서는 개별 블럭(MED) 또는 동기화 블럭( SE)에 대한 부가 부분)에서 실행되는 소프트웨어에 의해 구현된다. 개별 장치는 또한 조정자로서의 기능을 하도록 사용될 수 있다. 본 발명의 바람직한 실시예에 의하면, 데이터 시스템에 대한 접속, 예를 들면 특정 회사의 인트라넷에서의 서버(S)에 대한 접속은 단지 신뢰성있는 조정자(MED)를 통해서만 허용된다. 이같은 조정자 (MED)는 또한 서버(S)들 간의 통신에 있어서의 제3 신뢰 기관으로서의 기능을 할 수 있는 데, 이 경우에는 상기 조정자(MED)가 서버 신뢰도를 인증할 수 있다.
하나의 조정자(MED)는 여러 서버(S)에 서비스를 제공할 수도 있고, 각각의 서버에 대하여 개별 조정자(MED)가 존재할 수도 있다. 이같은 조정자는 클라이언트 장치(TE)에 인접 배치될 수 있으며, 캐싱(caching) 기능과 같은 서로 다른 부가적인 기능이 상기 조정자에 제공될 수 있다. 이같은 경우에, 정체없는 전송이 상기 클라이언트 및 상기 조정자 사이에서 보장될 수 있는 방식으로 상기 조정자가 배치될 수 있다. 단일의 조정자에 여러 서버의 매핑 테이블을 집중시키는 경우에는 상기 조정자의 동작 및 제어가 보다 효율적으로 이루어진다. 조정자(MED)를 사용하는 시스템은 SyncML 표준과 호환될 수 있는 데, 그 이유는 상기 클라이언트 장치의 관점에서 볼때 상기 조정자가 서버와 같은 기능을 하기 때문이다.
표 1에 기재되어 있는 바와 같이, 서버에서 데이터 단위를 식별하는 GUID 식별자는 매핑 테이블에서 클라이언트 장치(TE)에서 사용된 LUID 식별자에 매핑된다. 물론, 매핑 테이블은 다수의 방식으로 구현될 수 있는 데, 바람직하게는, 적어도, 각각의 서버에 대하여, 개별 매핑 테이블이 존재하고, 그럼으로써 매핑 테이블에서, 식별자가 서버에 추가되거나 서버를 통해 동기화가 이루어지는 데이터 단위에 부가된다. 또한, 각각의 클라이언트 장치가 서버와 동기화를 이루는 개별 매핑 테이블이 존재할 수 있다.
만약 어떠한 GUID 식별자도 없다면(즉, 만약 데이터 단위가 다른 한 서버로부터 도달하지 않는다면), 서버(S)는 자체적으로 GUID 식별자를 할당한다. 만약 데이터 단위가 아직도 클라이언트 장치(TE)에 상주하지 않는다면, 매핑 테이블에는 어떠한 LUID 식별자도 존재하지 않는다. 따라서, LUID 식별자는 클라이언트 장치와의 동기화 동안 식별자 쌍에 추가될 수 있다.
표 2에 기재되어 있는 바와 같이, 데이터 단위는 데이터 단위들에 할당된 GUID 식별자에 따라 서버(S)에 의해 유지되는 데이터베이스에 저장되는 데, 예컨대, 데이터 단위(Email1)는 식별자(10203040)로 식별된다. 표 1 및 표 2에 기재된 데이터는 또한 조합될 수 있고, 그럼으로써 매핑 테이블이 또한 각각의 특정 GUID 식별자가 언급하는 데이터 단위를 나타낸다.
한 바람직한 실시예에 의하면, 조정자(MED)는, 자체적으로 GUID 식별자를 할당하는 클라이언트 장치(TE) 대신에 클라이언트 장치(TE)에서 사용될 데이터 단위에 대한 GUID 식별자보다 상당히 짧은(4 내지 5바이트) 클라이언트 지정 식별자( LUID)를 할당한다. 상기 LUID 식별자가 그다지 모호하지 않도록 특정의 식별자 범위가 각각의 클라이언트 장치(TE)에 대하여 정의될 수 있다. LUID 식별자는 서버 지정 부분, 예컨대 3개의 비트, 그리고 연속적인 방식으로 결정되는 29-비트 식별자를 포함할 수 있다. 클라이언트 단말기(TE) 자체는 또한 LUID 식별자를 완전히 자동적으로 할당할 수 있다. 그러나, 이같은 경우에는, 서로 다른 클라이언트 장치가 동기화 서버에 대하여 동일한 데이터 단위를 동기화할 때 중복 부분이 형성될 수 있고, 만약 서버들이 서로 동기하지 않는다면 매핑 테이블의 비교에도 불구하고 상기 중복 부분을 삭제하는 것이 가능하지 않을 수 있다.
조정자(MED)는, 예를 들면, 다음과 같은 방식으로 동작될 수 있다.
- 상기 조정자는 LUID 식별자 없이 서버(S)와 통신하는 데, 다시 말하면, 상기 조정자가 데이터 단위에 대하여 클라이언트 장치의 LUID 식별자를 유지하는 매핑 테이블을 기초로 하여 대응하는 GUID 식별자로 교체한다. 반대 방향에서는, MED가 서버의 GUID 식별자를 대응하는 LUID 식별자로 교체하고 필요한 경우 새로운 LUID 식별자를 할당한다. 클라이언트 장치(TE)가 LUID 식별자를 할당하지는 않지만 자신이 조정자(MED)로부터 직접 수신한 식별자(LUID)를 사용한다. 서버(S)에 대하여는, 상기 조정자(MED)가 다른 한 서버이며, 이 때문에, 어떠한 LUID 식별자도 필요로 하지 않는다. 만약 서버(S)가 LUID 식별자의 사용을 필요로 한다면, LUID 식별자는 모든 데이터 단위(x)에 대해 LUID(x)=GUID(x)인 관계가 성립되는 방식으로 정의될 수도 있고, 만약 서버(S)가 LUID 식별자의 사용을 필요로 하지 않는다면, LUID 식별자는 GUID 식별자로부터 직접 획득될 수 있는 방식으로 정의될 수 있다.
- 조정자(MED)는 서버로부터 도달되는 메시지의 GUID 식별자(데이터 단위가 클라이언트 장치에 대하여 새로운 것일 경우)를 상기 클라이언트 장치가 할당하는 새로운 LUID 식별자를 나타내는 GUID 식별자로 교체하는 데, 이로부터 조정자들을 인식하고 있는 클라이언트 장치(TE)는 LUID 식별자가 할당되어야 할 지를 결정할 수 있다. 클라이언트 장치(TE)는 이같은 LUID 식별자를 할당하고 SyncML 표준에 따라 매핑 동작을 계속 수행한다. 예를 들면, 상기 MED는 클라이언트 장치(TE)에 GUID 식별자(UUID/1234)를 전송하고, 이로부터 조정자의 사용을 인식하고 있는 클라이언트 장치(TE)는 이같은 데이터 단위에 대하여 LUID 식별자(1234)를 할당하여야 한다고 결정한다. 이같은 구현은 SyncML 표준을 지원한다. 다시 말하면, 상기 클라이언트 장치(TE)는 LUID 식별자를 할당하는 데, 그 이유는 상기 식별자의 선택이 단지 조정자(MED)의 명령에 의해서만 결정되기 때문이다. 만약, 예를 들면, 결정된 LUID 식별자가 이미 클라이언트 장치(TE)에 의해 사용되었기 때문에, 클라이언트 장치(TE)가 이같은 LUID 식별자를 할당할 수 없다면, 상기 클라이언트 장치는 또한 상기 식별자를 할당하기를 거부할 수 있다. 이같은 경우에는, 서버(S)가 클라이언트 장치(TE)에 새로운 LUID 식별자를 제공한다. 상기 조정자는 자체적으로 서버(S)의 매핑 테이블을 유지할 수 있다. 또한, 매핑 테이블이 서버(S)에 유지되는 것이 가능하고, 그럼으로써, 상기 조정자가 틀림없이 매핑 테이블을 이용할 것이다. 이같은 경우에는, 조정자(MED)가 또한 식별자를 변경시키지 않고서 클라이언트 장치(TE)의 동기화 메시지를 서버에 직접 전송한다. 상기 조정자를 인식하고 있는 클라이언트 장치(TE)가 SyncML 프로토콜에 따른 세션의 초기화 단계에서 이를 통지하기 때문에, 클라이언트 장치가 조정자(MED)에 의해 표시된 LUID 식별자의 사용을 지원하지 않을 때를 조정자가 식별하는 것이 가능하다. 이같은 경우에는, 상기 조정자는 단지 매핑 테이블의 비교로만 자신의 기능을 제한할 수 있지만, 이때에는 몇몇개의 중복 부분이 검출되는 것이 가능하지 않다. 이는 서버(S)가 서로 동기화를 이루지 않을 경우에, 그리고 동일한 데이터 단위가 서로 다른 클라이언트 장치에 의해 수행되는 동기화를 통해 한 서버로부터 다른 한 서버로 이동하는 경우에 생길 수 있다. 이에 대응하여, 조정자(MED)는 초기화 단계에서 자신에 대하여 클라이언트 장치(TE)에 통지할 수 있으며, 그럼으로써 조정자를 인식하는 클라이언트 장치는 상기 조정자로부터의 LUID 제안을 처리할 수 있다.
도 4는 본 발명의 한 바람직한 실시예에 따른 방법을 도시한 것이다. 단계( 401)에서, 매핑 테이블은 서버(S)에 유지된다. 상기 매핑 테이블 내의 식별자 쌍은 (중복 부분에 대한 형성 방지 및/또는 이미 형성된 중복 부분의 삭제를 위해) 서로 다른 매핑 테이블로 하여금 동일한 식별자 쌍을 포함하게 하는 방식으로 비교되어야 한다. 상기 비교는, 예를 들면 서버(S) 들간의 동기화 세션 동안이나 또는 미리 결정된 시간 간격에서 자동적으로 수행될 수 있다. 따라서, 비교되어야 할 매핑 테이블 내의 식별자 쌍은 검색되며(402) 그리고 서로 비교된다(403). 이같은 비교를 기초로 하여, 서로 다른 서버(S) 내의 매핑 테이블은 매핑 테이블 내의 식별자 쌍 중 적어도 일부가 서로 대응되게 하는 방식으로 갱신된다. 이것이 의미하는 것은, 만약 이전의 갱신 시간 이후에 한쌍의 식별자(적어도 하나의 GUID 식별자)로 할당된 데이터 단위가 서버에 부가되었다면, 이같은 식별자 쌍이 또한 다른 매핑 테이블에 부가된다는 것이다.
본 발명의 한 바람직한 실시예에 의하면, 단계(401 내지 405)에 따른 방법은 이미 형성된 중복 부분을 검출하는 데 사용된다. 중복 부분들은, LUID 식별자에 관한 정보가 전송되지 않는 방식으로(조정자(MED)가 사용되지 않는 방식으로) 서버(S )가 서로 직접적으로 동기화를 이루는 경우에 형성될 수 있다. 중복 부분을 검출하기 위한 전제 조건은 상기 서버(S)가 서버(S) 들간의 동기화에서 데이터 단위의 GUID 식별자를 유지하는 것이다. 하나의 데이터 단위에 대하여 여러 개의 중복 부분이 존재할 수 있기 때문에, 각각의 식별자 쌍은 다른 모든 식별자 쌍과 비교되어야 한다. 여기서, 그러한 것으로 공지된 색인(indexing) 기법이 이용될 수 있는 데, 다시 말하면, 매핑 테이블의 식별자 쌍은 LUID 식별자 및 GUID 식별자 모두에 따라 정렬된다. 만약 비교 단계(403)에서 (적어도) 2개의 데이터 단위가 동일한 LUID 식별자 및/또는 동일한 GUID 식별자를 지닌다면 그리고 만약 2개의 데이터 단위가 서로 다른 데이터 단위를 언급한다면, 동일한 데이터 단위는, 내용에 대하여, (적어도) 2번 저장되는 데, 다시 말하면, 상기 데이터 단위가 중복 부분이다. 이같은 경우에는, 하나의 데이터 단위가 저장되도록 선택되고, 그리고 이같은 중복 부분이 다음의 동기화 과정에서 삭제되도록 표시된다. 서버는 변경 기록부(change log)를 유지하는 것이 바람직하며, 이를 기초로 하여, 다음의 동기화 과정에서, 동기화 메시지가 전송될 수 있는 데, 이 경우에는 상기 변경 기록부에 기록된 GUID 및 LUID 식별자에 의해 표시된 중복 부분이 교체 동작에 의해 강제로 삭제되게 된다. 일단 검출되면, 중복 부분은, 이러한 중복 부분이 저장되어 있는 데이터베이스 (TE,DB)로부터 삭제될 수 있다(405). 다음과 같은 동기화 과정에 있어서는, 중복 부분이, 매핑 테이블의 비교를 기초로 하여 서버에 의해 동기화가 이루어지는 데이터베이스에서 수행되는 삭제 과정에 따라 다른 장치로부터 또한 삭제된다(405).
그러나, 선택된 데이터 단위의 중복 부분을 언급한 식별자 쌍은 비록 중복 부분이 삭제된 이후에도 조차 매핑 테이블에 바람직하게 유지되기 때문에, 새로운 중복 부분에 대한 정보가 방지될 수 있다. 따라서, 여러 GUID 식별자는 동일한 데이터 단위를 언급할 수 있다. 즉, 표 2는, 예를 들면, 2개의 GUID 식별자가 데이터 단위(Email1)를 언급하는 방식으로 갱신된다. 그러나, 단지 하나의 식별자 쌍만이 활성 상태로 되고, 그 나머지는 차후에 삭제될 수 있는 에일리어스(alias) 식별자 쌍이다. 이같은 에일리어스 식별자 쌍은, 발견될 경우, 활성 식별자로 교체될 수 있다. 예컨대, 만약 클라이언트 장치(TE)가 차후에 에일리어스 LUID를 갖는 데이터 단위의 동기화를 이룬다면, 이같은 에일리어스 LUID는 활성 LUID로 교체되어야 한다. 이는 데이터 단위가 먼저 삭제된 다음에 새로운 LUID 식별자로 식별되는 방식으로 부가될 필요가 있을 수 있다. 에일리어스 식별자 쌍을 무제한으로 저장하는 것이 가능하지만, 이는 추가의 메모리 용량을 필요로 한다. 바람직하게는, 에일리어스 식별자 쌍이 미리 결정된 시간 주기(t) 동안 저장되고, 그럼으로써 t 값의 변화로 필요한 메모리 공간 및 이에 반해서는 신뢰도가 조절될 수 있다. 조정자(MED)가 사용될 경우, 단지 서버(S) 또는 상기 서버(S)가 알고 있는 클라이언트 장치 중 어느 하나에서 동일한 데이터 단위에 대하여 어떤 중복 부분도 방치되어 있지 않은 것으로 단정할 수 있어야만, 조정자(MED)가 중복 부분을 언급하는 에일리어스 식별자 쌍을 삭제하는 것이 또한 가능하다. 이러한 정보는 조정자에서 가능한 모든 클라이언트 장치 및 서버의 목록을 유지함으로써 획득될 수 있다. 하나의 서버가 어떠한 조정자 없이 조정자(MED)에 의해 서비스를 제공받는 서버(S)와 동기화를 이룰 수 있는 그러한 모든 조정자가 갖고 있는 식별자 쌍을, 중복 부분의 검출 이후에, 조정자(MED)가 갱신한 경우에(그리고, 부가해서, 모든 클라이언트 장치(TE )가 조정자(MED)와 동기화를 이룬 경우에), 어떤 곳에서도 중복 부분이 존재하지 않는 것으로 알려져 있다. 유념해야 할 점은 비록 조정자(MED)에 의해 유지되는 서버 및 클라이언트 목록이 불충분한 경우라도, 본 발명의 방법을 사용하면, 루프 문제가 여전히 경감된다는 점이다.
본 발명의 한 바람직한 실시예에 의하면, 조정자가 사용된다. 비교 단계(403 ) 및 갱신 단계(404)는 예를 들면, 하나 또는 그 이상의 조정자가 자신의 매핑 테이블 내의 식별자 쌍을 비교 조정자로 전송하고(402), 상기 비교 조정자가 자기 자신의 매핑 테이블의 식별자 쌍과 수신된 식별자 쌍을 비교하여 자기 자신의 테이블을 갱신하는 방식으로 구현될 수 있다. 상기 비교 조정자는, 차이점을 검출한 경우, 자기 자신의 매핑 테이블에 누락된 식별자 쌍을 부가하고 부가될 식별자 쌍에 관한 정보를 다른 조정자로 전송하고, 상기 다른 조정자는 매핑 테이블의 갱신(404 )을 수행한다. 이같은 비교가 동기화 세션과는 다르게 수행되고, 그럼으로써, 매핑 테이블의 비교로 인한 동기화의 지연이 존재하지 않게 되는 것이 바람직하다. 조정자의 갱신은 종래의 서버의 동기화 동안이나 또는 이러한 동기화와는 다른 기능으로서 수행될 수 있다.
상기 조정자(MED)는 위에서 언급된 방식으로 매핑 테이블 내의 식별자 쌍의 비교(403) 동안 형성된 중복 부분을 검출할 수 있다. 중복 부분에 대한 검색은 각각의 조정자에서 독립적으로 수행될 수 있다. 이같은 경우에, 균일한 관행이 존재하여야 하며, 이같은 관행에 따라, 남아 있는 데이터 단위가 중복 부분에서 선택되기 때문에, 모든 조정자에서는 '알파벳 순서' 중 맨처음의 것을 선택하는 것과 같은 결정이 내려진다. 중복 부분들의 검출은 또한 집중 방식으로 수행될 수 있다. 다시 말하면, 비교 조정자는, 중복 부분을 검출했을 때, 검출될 중복 부분에 관한 정보를 다른 조정자에게 전송하며, 상기 다른 조정자는 중복 부분들의 검출을 수행하고(404) 자신의 매핑 테이블을 갱신한다(405).
하나의 조정자(MED)는, 서로 다른 서버들에 대한 매핑 테이블들을 유지할 경우에, 상기 매핑 테이블의 식별자 쌍을 신속하게 비교하여(403) 중복 부분을 검출할 수 있다. 상기 조정자(MED)는 (자신의 GUID 식별자를 기초로 하여) 삭제될 하나 또는 그 이상의 중복 부분에 관한 정보를 비교 단계(405)를 기초로 하여 서버의 동기화 에이전트(SA)로 전송한다. 따라서, 상기 서버(S)는 데이터베이스(DB)로부터나 또는 자체적인 메모리로부터 중복 부분을 삭제할 수 있다. 예를 들면,서버(S)가 다음번에 클라이언트 장치(TE)와 동기화를 이룰 경우, 또한 아마도 상기 서버(S)에 존재하는 동일한 중복 부분이 삭제된다. 따라서, 조정자(MED)가 서버로부터 데이터 단위(GUID = 10203040)의 삭제에 관한 정보를 수신할 경우, 상기 데이터 단위(LUID = 12)의 삭제에 관한 정보가 클라이언트 장치(TE)에 전송된다. SyncML 프로토콜에 의하면, 이는 커맨드 '삭제(Delete)'를 사용하여 수행된다.
본 발명의 한 바람직한 실시예에 의하면, 서버(S)는 조정자(MED)를 통해 서로 동기화를 이룬다. 따라서, 동기화 동안, 또한 LUID 식별자는 동기화가 이루어질 데이터 단위에 전달된다. 만약 어떠한 LUID 식별자도 데이터 단위에 할당되지 않았다면, LUID 식별자는 동기화 동안 할당되어야 한다. 다시 말하면, 데이터 단위는 서버에 할당된 LUID 식별자 없이 서버에 방치하도록 허용해선 안된다. 이는 만약 LUID가 어딘가에서 특정의 데이터 단위에 할당된다면, LUID 또한 마찬가지로 다른 어떤 곳에서 사용된다. 만약 GUID 식별자가 서로 다른 서버 간의 동기화를 이루고 있다면, GUID 식별자는 또한 조정자 없이 동기화를 이룰 수 있다. 따라서, 중복 부분이 형성될 수 있지만, 이같은 중복 부분은 위에서 언급된 방식으로 검출된다.
서버(S)들 간의 동기화에 있어서, 제1의 조정자는 이리하여 동기화될 데이터 단위의 식별 정보에 GUID 식별자 뿐만 아니라 매핑 테이블 내의 GUID 식별자에 대한 쌍인 LUID 식별자를 부가한다. 동기화 메시지를 수신하는 제2의 조정자는 수신된 식별자 쌍을 자기 자신의 매핑 테이블의 식별자 쌍과 비교한다(403). 매핑 테이블 내의 식별자 쌍 중 어느 하나의 식별자 쌍이 수신된 데이터 단위의 GUID 및/또는 LUID 식별자와 동일한 GUID 및/또는 LUID 식별자를 지닌다면, 이를 기초로 하여, 수신된 데이터 단위의 기록(부가 동작)을 방지하고(406) 상기 수신된 데이터 단위를 정확한 데이터 단위로 할당(교체 동작)하는 것이 가능하다. 따라서, 동기화가 이루어질 서버(S)의 매핑 테이블은 적어도 동기화가 이루어질 데이터 단위의 식별자 쌍이 서로에 대응되게 하는 방식으로 갱신된다. 이러한 실시예는 중복 부분의 생성이 미연에 방지될 수 있는 상당한 이점을 제공한다. 단지 당해 데이터 단위의 부가가 요구될 경우에만 기록이 방지될 수 있다(406). 이러한 방식으로, 수정된 데이터 단위의 기록이 보장될 수 있다. SyncML 프로토콜에서, 커맨드 '부가(Add)'에 의해 결정되는 데이터 단위의 기록은 이리하여 방지될 수 있다.
만약 서버(S)가 서로 다른(호환가능하지 않은) GUID 식별자를 사용한다면, 동기화는 중복 부분의 생성을 방지하고 생성된 중복 부분을 검출하도록 항상 조정자(MED)를 통해 수행되어야 한다. 만약 서버의 동기화가 항상 조정자를 통해 이루어진다면, GUID 식별자는 원한다면, 동기화로부터 제외될 수 있는 데, 그 이유는 GUID 식별자가 서로 다른 서버에서 상이할 수 있고, 데이터 단위가 사용자 식별자 및 조정자에 의해 할당된 LUID 식별자를 기초로 하여 모호하지 않게 식별될 수 있기 때문이다. 사용자 단위가 속해 있는 사용자 식별자는 또한 동기화와 관련하여 전송되어야 한다. 만약 서버들 간의 동기화가 조정자들을 통해 이루어진다면, 서로에 대응하도록 매핑 테이블을 갱신할 필요가 전혀 없는 데(즉, 단계(404)가 수행될 필요가 없는 데,) 그 이유는 GUID 식별자가 서로 다른 서버에서 서로 다를 수 있기 때문이다(즉, 단일의 데이터 단위가 서로 다른 서버에서 서로 다른 GUID 식별자를 지닐 수 있기 때문이다). 따라서, 수신된 데이터 단위의 저장은, 만약 상기 데이터 단위에 할당된 LUID 식별자에 따른 데이터 단위가 매핑 테이블의 비교를 기초로 하여 이미 저장되었던 것으로 검출된다면, 비교 단계(403)를 기초로 하여 직접 방지될 수 있다. 유념해야 할 점은 만약 서버가 그같은 동기화에서 GUID 식별자들을 유지하지 못한다면 그리고 조정자(MED)가 사용되지 않는다면, 중복 부분이 방지되지도 검출되지도 않는다는 점이다. 따라서, 상기 서버는, 상기 동기화에서 GUID 식별자를 유지하지 못하는 서버와 (조정자 없이) 직접 동기화를 이루지 못하게 하는 방식으로 구성되어야 한다.
도 5는 결과적으로 중복 부분이 형성되는 몇가지 동기화 이벤트를 예시한 것이다. 서버(S2)에서는, GUID(GUID1) 및 LUID(LUID1)가 할당되어 있는 데이터 단위( DU)가 존재한다. 동기화는 서버(S1,S2)들 사이에서 수행되고, 그럼으로써 데이터 단위(DU)가 S2로부터 S1으로 전달된다(LUID는 상기 서버들 간의 동기화에서 전달되지 않는다). 상기 S1가 클라이언트 장치(TE)와 동기화를 이루고(502), 그럼으로써 클라이언트 장치가 식별자 없이 새로운 식별자(LUID2)를 수신된 데이터 단위(DU)에 할당한다(503). 상기 TE는 이를 서버(S1)에 대하여 갱신(매핑 동작)시키고(504), 이후로는 상기 S1의 매핑 테이블에 식별자 쌍(GUID1,LUID2)이 존재한다. 클라이언트 장치(TE)는 서버(S2)와 동기화를 이루고, 그럼으로써 상기 클라이언트 장치(TE)가 상기 식별자(LUID2)를 갖는 데이터 단위(DU)를 서버(S2)에 전달한다(505). 상기 S2는 새로운 식별자(GUID2)를 데이터 단위에 할당하는 데(506), 그 이유는 식별자( LUID2)에 대하여 대응하는 GUID 식별자가 전혀 존재하지 않기 때문이다. 이후에는, 서버(S2)에는 동일 데이터가 두번 중복되며, 매핑 테이블에는 식별자 쌍((GUID1, LUID1),(GUID2,LUID2))이 존재한다. 따라서, 중복 부분의 체인((GUID1,LUID1),( GUID1,LUID2),(GUID2,LUID2))이 형성되는 데, 이는 위에서 언급된 본 발명의 한 바람직한 실시예에 따른 매핑 테이블의 비교(507)로 검출될 수 있고, 상기 중복 부분은 삭제될 수 있다(508).
만약 도 5의 예에서, 동기화가 조정자(MED)를 통해 수행된다면(501), 중복 부분의 형성은 방지되는 데, 그 이유는 LUID1에 관한 정보가 S2의 조정자로 전달되고, 상기 조정자가 클라이언트 장치에서 동기화가 이루어질 데이터 단위에 LUID1을 부가할 수 있기 때문이다.
당업자에게 자명한 점은 기술의 발전으로, 본 발명의 기본적인 원리가 여러 방식으로 구현될 수 있다는 점이다. 따라서, 본 발명 및 그의 실시예는 위에서 언급된 예들로 국한되는 것이 아니라 첨부된 청구의 범위 내에서 변경이 가능하다.

Claims (12)

  1. 적어도 하나의 클라이언트 장치 및 적어도 2개의 동기화 서버를 포함하는 동기화 시스템에서 중복 부분을 검출하는 방법으로서,
    상기 클라이언트 장치에서 사용하기 위한 제1 식별자 및 상기 동기화 서버에서 사용하기 위한 제2 식별자를 동기화가 이루어질 데이터 단위에 할당하는 단계; 및
    상기 동기화 서버를 거쳐 동기화가 이루어질 데이터 단위에 할당된 제1 식별자 및 제2 식별자를 매핑 테이블에 부가함으로써 상기 동기화 서버에 대하여 매핑 테이블을 유지하는 단계를 포함하는 검출 방법에 있어서,
    서로 다른 동기화 서버의 매핑 테이블에 부가된 제1 및 제2 식별자에 의해 형성된 식별자 쌍을 비교하는 단계; 및
    상기 매핑 테이블의 식별자 쌍 중 적어도 일부가 서로에 대응하게 하는 단계를 더 포함하는 것을 특징으로 하는 검출 방법.
  2. 제1항에 있어서, 상기 동기화 시스템은 적어도 하나 또는 그 이상의 매핑 테이블을 유지하고, 식별자 쌍을 비교하며 그리고 상기 비교를 기초로 하여 상기 매핑 테이블 내의 식별자 쌍을 갱신하는 적어도 하나의 조정자를 더 포함하는 것을 특징으로 하는 검출 방법.
  3. 제2항에 있어서, 상기 조정자 내에 상기 제1 식별자를 정의하는 단계를 포함하는 것을 특징으로 하는 검출 방법.
  4. 제2항 또는 제3항에 있어서, 상기 동기화 시스템은 제1 조정자 및 제2 조정자를 포함하며, 상기 제1 조정자는 자신의 매핑 테이블의 식별자 쌍을 상기 제2 조정자로 전송하도록 이루어지고, 상기 제2 조정자는 상기 제1 조정자의 식별자 쌍을 자신의 매핑 테이블의 식별자 쌍과 비교하고 자신이 검출한 중복 부분에 관해 상기 제1 조정자에게 통지하도록 이루어지는 것을 특징으로 하는 검출 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 매핑 테이블에 동일한 제1 식별자 및/또는 동일한 제2 식별자를 지니는 적어도 2개의 데이터 단위에 대한 응답으로서 다음 동기화 세션 동안 적어도 하나의 중복 부분을 삭제하는 단계를 포함하는 것을 특징으로 하는 검출 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 매핑 테이블의 비교를 기초로 하여 검출된 하나의 데이터 단위 및 이를 언급하는 한쌍의 식별자를 저장용으로 정의하는 단계;
    상기 데이터 단위를 언급하도록 상기 데이터 단위의 중복 부분을 언급하는 식별자 쌍을 이루는 단계; 및
    미리 결정된 시간 이후에 상기 데이터 단위의 중복 부분을 언급하는 식별자 쌍을 삭제하는 단계를 포함하는 것을 특징으로 하는 검출 방법.
  7. 제1항 내지 제4항 중 어느 한 항에 있어서,
    동기화를 이루는 적어도 데이터 단위의 식별자 쌍이 서로에 대응하게 하는 단계; 및
    상기 매핑 테이블에서 이미 정의된 데이터 단위에 할당된 제1 및/또는 제2 식별자에 대한 응답으로서 상기 데이터 단위의 기록을 방지하는 단계를 포함하는 것을 특징으로 하는 검출 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, SyncML 표준에 따라 상기 데이터 단위의 동기화를 이루는 단계를 포함하는 것을 특징으로 하는 검출 방법.
  9. 적어도 하나의 클라이언트 장치 및 적어도 2개의 동기화 서버를 포함하는 동기화 시스템에서 중복 부분을 검출하는 방법으로서,
    상기 클라이언트 장치에서 사용하기 위한 제1 식별자 및 상기 동기화 서버에서 사용하기 위한 제2 식별자를 동기화가 이루어질 데이터 단위에 할당하는 단계; 및
    상기 동기화 서버를 통해 동기화가 이루어질 데이터 단위에 할당되는 제1 식별자 및 제2 식별자를 상기 매핑 테이블에 부가함으로써 상기 동기화 서버에 대하여 매핑 테이블을 유지하는 단계를 포함하는 검출 방법에 있어서,
    서로 다른 동기화 서버의 매핑 테이블에 부가된 제1 및 제2 식별자에 의해 형성된 식별자 쌍을 비교하는 단계; 및
    상기 매핑 테이블을 기초로 하여 이미 기록된 데이터 단위에 할당된 제1 식별자에 따른 데이터 단위에 대한 응답으로서 동기화를 이루는 데이터 단위의 기록을 방지하는 단계를 더 포함하는 것을 특징으로 하는 검출 방법.
  10. 적어도 하나의 클라이언트 장치 및 적어도 2개의 동기화 서버를 포함하는 동기화 시스템에 있어서, 상기 동기화 시스템은 적어도,
    동기화가 이루어질 데이터 단위에 대하여, 상기 클라이언트 장치에서 사용하기 위한 제1 식별자 및 상기 동기화 서버에서 사용하기 위한 제2 식별자를 포함하는 매핑 테이블을 적어도 하나의 동기화 서버에 대하여 유지하고;
    서로 다른 매핑 테이블의 제1 및 제2 식별자에 의해 형성된 식별자 쌍을 비교하며;
    상기 비교를 기초로 하여 중복 부분을 검출하고; 그리고
    상기 매핑 테이블 내의 식별자 쌍 중 적어도 일부가 서로에 대응하게 하도록 이루어진 적어도 하나의 조정자를 포함하는 것을 특징으로 하는 동기화 시스템.
  11. 클라이언트 장치 및 동기화 서버를 포함하는 동기화 시스템용의 동기화 장치에 있어서, 상기 동기화 서버는,
    동기화가 이루어질 데이터 단위에 대하여, 상기 클라이언트 장치에서 사용하기 위한 제1 식별자 및 상기 동기화 서버에서 사용하기 위한 제2 식별자를 포함하는 적어도 하나의 매핑 테이블을 적어도 하나의 동기화 서버에 대하여 유지하는 수단;
    상기 제1 및 제2 식별자에 의해 형성된 식별자 쌍을 비교하는 수단; 그리고
    상기 매핑 테이블의 식별자 쌍 중 적어도 일부가 서로에 대응하게 하는 수단을 포함하는 것을 특징으로 하는 동기화 시스템용의 동기화 장치.
  12. 컴퓨터의 메모리에 로드가능한 컴퓨터 프로그램 생성물에 있어서, 상기 컴퓨터 프로그램 생성물은, 컴퓨터의 프로세서에서 실행될 경우, 컴퓨터로 하여금,
    동기화가 이루어질 데이터 단위에 대하여, 상기 클라이언트 장치에서 사용하기 위한 제1 식별자 및 상기 동기화 서버에서 사용하기 위한 제2 식별자를 포함하는 적어도 하나의 매핑 테이블을 적어도 하나의 동기화 서버에 대하여 유지하고;
    서로 다른 매핑 테이블의 제1 및 제2 식별자에 의해 형성된 식별자 쌍을 비교하며;
    상기 비교를 기초로 하여 중복 부분을 검출하고; 그리고
    상기 매핑 테이블 내의 식별자 쌍 중 적어도 일부가 서로에 대응하게 하는 프로그램 코드를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 생성물.
KR1020047003479A 2001-11-12 2002-11-11 통신 시스템의 데이터 동기화 장치 KR100945221B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20012185A FI112015B (fi) 2001-11-12 2001-11-12 Datan synkronoinnin järjestäminen tietoliikennejärjestelmässä
FI20012185 2001-11-12

Publications (2)

Publication Number Publication Date
KR20050044311A true KR20050044311A (ko) 2005-05-12
KR100945221B1 KR100945221B1 (ko) 2010-03-03

Family

ID=8562230

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047003479A KR100945221B1 (ko) 2001-11-12 2002-11-11 통신 시스템의 데이터 동기화 장치

Country Status (6)

Country Link
US (1) US7376697B2 (ko)
EP (1) EP1444606B1 (ko)
KR (1) KR100945221B1 (ko)
CN (1) CN1280759C (ko)
FI (1) FI112015B (ko)
WO (1) WO2003042863A1 (ko)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7024457B1 (en) * 2000-02-17 2006-04-04 J2 Global Communications, Inc. E-mail synchronization between heterogeneous mail servers
FI114245B (fi) * 2002-11-13 2004-09-15 Nokia Corp Synkronointi-istunnon järjestäminen
US20040127242A1 (en) * 2002-12-31 2004-07-01 Dashevsky Jane Y. Apparatus and associated methods for the synchronization of shared content
US8694620B2 (en) * 2003-09-08 2014-04-08 Microsoft Corporation System and method for an OMA DM extension to manage mobile device configuration settings
US20070180127A1 (en) * 2003-11-11 2007-08-02 Nokia Corporation Preconfigured syncml profile categories
GB2409545A (en) * 2003-12-24 2005-06-29 Nokia Corp File synchronisation
US7526768B2 (en) * 2004-02-04 2009-04-28 Microsoft Corporation Cross-pollination of multiple sync sources
US7797386B2 (en) * 2004-02-27 2010-09-14 Research In Motion Limited System and method for remotely configuring a desktop mailbox
JP4415789B2 (ja) * 2004-08-20 2010-02-17 株式会社日立製作所 無線通信システム
KR20060054840A (ko) * 2004-11-16 2006-05-23 엘지전자 주식회사 실외기 소프트웨어 업그레이드 시스템 및 그 방법
US7962448B2 (en) 2004-12-17 2011-06-14 International Business Machines Corporation Optimizing a three tiered synchronization system by pre-fetching and pre-formatting synchronization data
JP2006262311A (ja) * 2005-03-18 2006-09-28 Toshiba Corp 情報記録装置及び情報記録方法
US7587410B2 (en) * 2005-03-22 2009-09-08 Microsoft Corporation Dynamic cube services
US7844044B2 (en) * 2005-06-30 2010-11-30 Alcatel-Lucent Usa Inc. Control server employment of offer message from resource server to determine whether to add indication of the resource server to resource server mapping table
KR100705238B1 (ko) * 2005-11-15 2007-04-06 엘지전자 주식회사 에러 체크 코드를 이용한 데이터 동기화 방법과 이를 위한이동 통신 단말기 및 서버
CN101009516B (zh) 2006-01-26 2011-05-04 华为技术有限公司 一种进行数据同步的方法、系统及装置
CN100450108C (zh) * 2006-03-23 2009-01-07 华为技术有限公司 一种采用数据同步处理电子邮件的系统、装置及方法
US7797273B2 (en) * 2006-03-27 2010-09-14 Emoze Ltd. System and a method for reliable symmetric data synchronization
US7783723B2 (en) * 2006-03-31 2010-08-24 Sap Ag Systems and methods for submitting data from a WML-based browser
US8370423B2 (en) 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
EP1883257A1 (fr) * 2006-07-28 2008-01-30 Gemplus Procédé de synchronisation entre un equipement mobile et une carte a puce
JP4341656B2 (ja) 2006-09-26 2009-10-07 ソニー株式会社 コンテンツ管理装置、ウェブサーバ、ネットワークシステム、コンテンツ管理方法、コンテンツ情報管理方法およびプログラム
US8453066B2 (en) 2006-11-06 2013-05-28 Microsoft Corporation Clipboard augmentation with references
US8020112B2 (en) * 2006-11-06 2011-09-13 Microsoft Corporation Clipboard augmentation
US8751442B2 (en) * 2007-02-12 2014-06-10 Microsoft Corporation Synchronization associated duplicate data resolution
US8799595B1 (en) * 2007-08-30 2014-08-05 American Megatrends, Inc. Eliminating duplicate data in storage systems with boot consolidation
US7716203B2 (en) * 2007-08-31 2010-05-11 International Business Machines Corporation Method and system for tracking, evaluating and ranking results of multiple matching engines
US7991740B2 (en) * 2008-03-04 2011-08-02 Apple Inc. Synchronization server process
US8296671B2 (en) 2008-05-01 2012-10-23 Microsoft Corporation Enabling access to rich data by intercepting paste operations
US8799429B1 (en) 2008-05-06 2014-08-05 American Megatrends, Inc. Boot acceleration by consolidating client-specific boot data in a data storage system
CN101677314B (zh) * 2008-09-18 2013-01-09 华为终端有限公司 一种同步数据操作的标识方法、装置及系统
CN101753618B (zh) * 2009-12-30 2012-12-19 中兴通讯股份有限公司 数据快同步方法及终端
CN101923571B (zh) * 2010-07-29 2013-05-01 中兴通讯股份有限公司 管理终端数据记录的方法及装置
US9104765B2 (en) * 2011-06-17 2015-08-11 Robert Osann, Jr. Automatic webpage characterization and search results annotation
US9613104B2 (en) 2012-02-17 2017-04-04 Netflix, Inc. System and method for building a point-in-time snapshot of an eventually-consistent data store
TW201408885A (zh) * 2012-08-17 2014-03-01 Hon Hai Prec Ind Co Ltd 風扇共用控制系統及方法
CN103629132B (zh) * 2012-08-20 2016-09-14 国网浙江桐庐县供电公司 风扇共享控制系统及方法
US9049169B1 (en) * 2013-05-30 2015-06-02 Trend Micro Incorporated Mobile email protection for private computer networks
US9826359B2 (en) 2015-05-01 2017-11-21 The Nielsen Company (Us), Llc Methods and apparatus to associate geographic locations with user devices
US11310314B1 (en) * 2017-07-28 2022-04-19 Zero Cognitive Systems, Inc. Automatic data synchronization across applications installed on multiple devices via mail server
US10362105B1 (en) * 2017-07-31 2019-07-23 Amazon Technologies, Inc. Generating probalistic data structures in gossip protocols
CN108171527B (zh) * 2018-03-09 2020-12-04 北京阿尔山金融科技有限公司 客户信息管理系统及方法
CN109618406B (zh) * 2019-03-01 2019-07-05 展讯通信(上海)有限公司 无线连接方法、设备组、系统
CN110417887B (zh) * 2019-07-29 2022-05-20 中国电子科技集团公司第二十八研究所 一种基于代理的信息资源目录同步方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5684990A (en) * 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US5974238A (en) * 1996-08-07 1999-10-26 Compaq Computer Corporation Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements
US6044381A (en) * 1997-09-11 2000-03-28 Puma Technology, Inc. Using distributed history files in synchronizing databases
US6810405B1 (en) * 1998-08-18 2004-10-26 Starfish Software, Inc. System and methods for synchronizing data between multiple datasets
US6477543B1 (en) 1998-10-23 2002-11-05 International Business Machines Corporation Method, apparatus and program storage device for a client and adaptive synchronization and transformation server
US6457062B1 (en) * 1999-04-08 2002-09-24 Palm, Inc. System and method for synchronizing multiple calendars over wide area network
US6401104B1 (en) * 1999-07-03 2002-06-04 Starfish Software, Inc. System and methods for synchronizing datasets using cooperation among multiple synchronization engines
AU2666501A (en) 1999-11-12 2001-05-30 Telefonaktiebolaget Lm Ericsson (Publ) Apparatus and method for increasing the synchronization speed between a first device and a second device
EP1130511A3 (en) * 2000-01-25 2004-04-07 FusionOne, Inc. Data transfer and synchronization system
US7743119B2 (en) * 2001-08-07 2010-06-22 Motorola, Inc. System and method for mapping identification codes

Also Published As

Publication number Publication date
CN1280759C (zh) 2006-10-18
FI20012185A0 (fi) 2001-11-12
WO2003042863A1 (en) 2003-05-22
CN1585944A (zh) 2005-02-23
US20030115301A1 (en) 2003-06-19
EP1444606B1 (en) 2018-08-15
FI20012185A (fi) 2003-05-13
US7376697B2 (en) 2008-05-20
EP1444606A1 (en) 2004-08-11
FI112015B (fi) 2003-10-15
KR100945221B1 (ko) 2010-03-03

Similar Documents

Publication Publication Date Title
KR100945221B1 (ko) 통신 시스템의 데이터 동기화 장치
US6694335B1 (en) Method, computer readable medium, and system for monitoring the state of a collection of resources
JP4255373B2 (ja) ネットワークファイルシステムのための管理および同期化アプリケーション
US7496606B2 (en) System and method for synchronizing data records between multiple databases
US8972348B2 (en) Method and system for supporting off-line mode of operation and synchronization
US8190671B2 (en) Arranging synchronization session
US7822711B1 (en) Conflict resolution for a distributed file sharing system
US7836015B1 (en) Fast synchronization of computer databases using coverage status
CN1988535B (zh) 文件存储同步方法、系统及客户端
JPH09244936A (ja) 共用データ・ファイルを管理するための方法及びシステム
WO2004040470A1 (en) Data synchronization
US20030037097A1 (en) Accessing information content
US7251670B1 (en) Methods and apparatus for replicating a catalog in a content distribution network
KR100728076B1 (ko) 인터럽트된 동기화 프로세스의 처리를 제공하는 데이터를동기화하는 방법, 장치 및 시스템
EP2078385B1 (en) Method and apparatus for preventing duplicate saving of resource between universal plug and play devices providing content directory service
JPH113368A (ja) 分散環境におけるスケジュールデータ管理方法及びシステム及びスケジュールデータ管理プログラムを格納した記憶媒体
US20050021867A1 (en) Synchronization arrangement
JP2002318716A (ja) 配信システム、配信方法、サーバコンピュータ、クライアントコンピュータ
JP2003140956A (ja) ファイル共有プロキシシステム及びファイル共有制御方法

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140213

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150213

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160205

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170221

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180208

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190212

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20200214

Year of fee payment: 11