KR20080076835A - 서버와 클라이언트 간의 미전송완료 데이터의 전송 방법 - Google Patents

서버와 클라이언트 간의 미전송완료 데이터의 전송 방법 Download PDF

Info

Publication number
KR20080076835A
KR20080076835A KR1020080013943A KR20080013943A KR20080076835A KR 20080076835 A KR20080076835 A KR 20080076835A KR 1020080013943 A KR1020080013943 A KR 1020080013943A KR 20080013943 A KR20080013943 A KR 20080013943A KR 20080076835 A KR20080076835 A KR 20080076835A
Authority
KR
South Korea
Prior art keywords
data
terminal
syncml
transmission
session
Prior art date
Application number
KR1020080013943A
Other languages
English (en)
Inventor
윤석태
Original Assignee
(주)에이록스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)에이록스 filed Critical (주)에이록스
Publication of KR20080076835A publication Critical patent/KR20080076835A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 서버와 클라이언트 간의 미전송완료 데이터의 전송 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로, SyncML을 이용한 서버와 클라이언트의 데이터 동기화 과정에 있어서, 혹은 서버에서 클라이언트로의 데이터 다운로드(또는 단말 관리) 과정에 있어서, 서버와 클라이언트 간의 대용량 파일에 대한 전송 중에 데이터 전송이 비정상적으로 종료된 경우, 다음 세션을 수행하는 시점에서 '이전에 비정상적인(혹은 전송이 완료되지 않은) 상태로 데이터 교환이 진행된 데이터'(미전송완료 데이터)를 탐지하고 중단된 시점부터 데이터 전송을 보장하기 위한, 서버와 클라이언트 간의 미전송완료 데이터의 전송 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하고자 한다.
이를 위하여, 본 발명은 통신시스템에서의 데이터 전송 방법에 있어서, 일 단말에서 타 단말로 전송될 데이터를 최대 전송 허용 용량에 맞춰 부분 전송하는 단계; 상기 데이터의 전송이 중간에 종료되면, 상기 타 단말이 마지막으로 유효하게 전송된 부분 데이터의 용량 및 세션에 관한 정보를 저장하는 단계; 현재 세션 종료 후 다음 세션이 시작될 때, 상기 타 단말이 상기 정보를 상기 일 단말로 전송하여, 재개시 세션임을 인지시키는 단계; 및 상기 일 단말이 전송이 중단된 데이터를 찾아 중단된 시점의 부분 데이터부터 이어서 상기 타 단말로 전송하는 단계를 포함한다.
동기화, 단말 관리, SyncML, 이어받기, OMA DS, OMA DM

Description

서버와 클라이언트 간의 미전송완료 데이터의 전송 방법{Transmission method of data where the transmission is not completed between server and client}
본 발명은 SyncML(Synchronization Markup Language)을 이용한 서버와 클라이언트 간의 미전송완료 데이터의 전송 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
특히, 본 발명은 SyncML을 이용한 서버와 클라이언트의 데이터 동기화(DS : Data Synchronization), 서버에서 클라이언트로의 데이터 다운로드 또는 단말 관리(DM : Device Management) 과정에 있어서, 서버와 클라이언트 간의 대용량 파일에 대한 전송 중에 좁은 밴드영역(Bandwidth) 및 시스템 내/외부 환경에 영향을 받아 세션이 비정상적으로 종료된 경우, 다음 세션을 수행하는 시점에서 '이전에 비정상적인(혹은 전송이 완료되지 않은) 상태로 데이터 교환이 진행된 데이터'(미전송완료 데이터)를 탐지하고 중단된 시점부터 데이터 전송을 보장하는 것이다.
이동통신 단말기와 휴대용 기기(카메라, PDA 등)의 사용자들은 주소록, 스케줄 정보 등과 같이 개인에게 필요한 정보들과 사진 및 음악파일과 같은 개인이 생성한 혹은 다운로드받은 멀티미디어 파일이나 문서 등을 개인 단말기에 저장하여 사용한다. 또한, 장비의 교체나 분실과 같은 이유로 인하여 새로운 단말기를 사용하게 된 경우 자신의 이전의 단말기에 저장된 정보를 새로운 단말기로 이동시켜 사용할 수 있기를 원한다. 또한, 다양한 휴대 단말기(휴대용 PC, PDA, 이동통신 단말기 등)를 소유한 사용자들은 서로 다른 단말기 사이에 자신의 데이터를 공유하여 사용하기를 원한다.
이때, 서로 다른 여러 종류의 단말에 상관없이 동일한 데이터를 공유하고 이동하기를 원하는 사용자들을 위한 기술이 데이터 동기화 기술이다.
데이터 동기화는 사용자의 단말들의 데이터를 데이터 동기 서버를 이용하여 하나의 단말의 데이터 변경이 다른 단말에도 동일하게 적용되도록 단말과 단말 혹은 단말과 서버 사이의 데이터를 동기화하는 기술이다.
그러나, 상호 호환되지 않는 동기화 기술은 사용자의 작업, 디바이스 생산자, 서비스 제공업자, 응용 개발자들을 복잡하게 하며, 공통된 데이터 동기화 기술의 부재는 이동 디바이스 사용의 성장을 저해하고 사용자의 데이터 접근과 이동 데이터 서비스의 전달을 제한한다.
이에, 무선통신에 관련된 회사들의 연합체인 OMA(Open Mobile Alliance)는 무선통신 기술에 대한 표준을 제정하고 있는데, 이 단체에서 SyncML 기반의 무선 이동통신 단말기 관리 표준 SyncML DS(Data Synchronization)를 제정하였다.
SyncML은 임의의 네트워크 상에서 서로 다른 디바이스 및 응용 서비스 간에 데이터를 일치시켜 주기 위한 국제 표준 언어이다. SyncML은 XML(Extensible Markup Language) 형태로 표현된 데이터를 포함한 메시지를 서버와 디바이스 간에 주고 받음으로써 서버와 디바이스 간에 데이터 동기화를 수행한다. 즉, 분산되어 있는 여러 단말기 내의 공통된 데이터들을 서로 일치시킨다.
한편, 현재와 같은 유비쿼터스 환경에서 개인이 다양한 이동통신 단말기의 소유와 다양한 정보와의 접근은 현대생활에서 필수적인 부분이 되고 있다. 따라서, 이동통신 단말기의 사용이 보편화되고 서비스 영역이 확대됨에 따라 이들의 하드웨어 및 소프트웨어 기능이 점점 복잡하고 다양해지고 있다.
이에, 이동통신 단말기의 관리 문제가 부각되고 있다. 이동통신 단말기를 조작하고 관리하는 방법이 개별 기기마다 공급업체에서 제공하는 고유 방식에 의존함에 따라 일관된 방법으로 무선 환경에서 사용자를 대신하여 이동통신 단말기의 하드웨어 및 소프트웨어 상태를 점검하거나 응용 소프트웨어를 설치하는 서비스를 현재의 환경 하에서는 제공할 수 없다. 따라서, 일반 사용자 뿐만 아니라 제조업체와 서비스업체에서도 이동통신 단말기 관리를 위해 많은 비용을 지출해야 한다. 이러한 관리의 문제점은 이동통신 단말기 뿐만 아니라, 자동차 정보 시스템, 홈게이트웨이, 키오스크, 셋탑박스 등에서도 일어나고 있다.
따라서, OMA는 무선통신 기술에 대한 표준을 제정하고 있는데, 이 단체에서 SyncML 기반의 무선 이동통신 단말기 관리 표준 SyncML DM(Device Management)을 제정하였다. 이 표준은 이동통신 환경에서의 데이터 동기화 기술인 SyncML DS를 관 리 용도로 확장한 것으로 관리 서버(SyncML 서버)와 관리 에이전트(SyncML 클라이언트) 간의 관리 정보 교환을 통하여 관리가 이루어진다.
단말 관리 기술은 개인의 휴대전화, PDA, 컴퓨터 등과 같은 제품에 대해 펌웨어의 업그레이드, 어플리케이션의 설치 및 업그레이드, 단말에 대한 진단과 관리 등의 작업을 원격으로 수행하는 기술이다.
도 1은 일반적인 SyncML 클라이언트와 SyncML 서버 간의 데이터 동기화 과정이 적용되는 환경을 도시한 설명도이다. 물론, 이러한 환경에서 서버에서 클라이언트로의 데이터 다운로드 또는 단말 관리(DM) 기술이 동일하게 적용될 수 있음에 유의하여야 한다. 이하에서는 데이터 동기화 과정을 위주로 설명하기로 한다.
SyncML 클라이언트(10)가 먼저 SyncML 서버(20)에게 갱신된 데이터를 포함한 메시지를 전송하면, SyncML 서버(20)는 SyncML 클라이언트(10)가 요청한 동기화 타입에 의해 서버측 데이터와 동기화 작업을 수행한 후 다시 SyncML 클라이언트(10)에게 작업 결과를 송신한다.
데이터 동기화 과정은 이러한 몇 번의 메시지 교환을 거치며, 정상적인 수행 후에는 SyncML 클라이언트(10)와 SyncML 서버(20) 간 해당 응용 프로그램 데이터에 대하여 동일한 상태를 유지하게 된다.
SyncML 클라이언트(10)는 PDA, 이동통신 단말기, 노트북 등의 이동형 디바이스에 탑재되며, 이를 사용하여 한 사용자의 여러 디바이스 간이나 SyncML 서버(20)와 데이터 동기화 또는 데이터 다운로드 또는 단말 관리를 수행할 수 있다.
통상적으로, 이동통신 단말기와 데이터 동기 서버(혹은 이기종 단말) 간의 데이터 동기화 작업은 사용자의 동기화 요구 혹은 주기적인 자동 동기화 과정에 의해 수행된다. 이러한 단말기와 데이터 동기 서버 간의 데이터 동기화 과정을 도 2를 참조하여 설명한다.
도 2는 종래기술에 따른 SyncML 클라이언트와 SyncML 서버 간의 대용량 데이터 동기화 과정에 대한 흐름도이다.
도 2에서, 서버(20)는 SyncML 프로토콜을 사용한 서버이며, 클라이언트(10) 또한 SyncML 프로토콜을 사용한 클라이언트이다.
도 2에 의한 종래의 데이터 동기화 방법은 SyncML 클라이언트(10)가 SyncML 서버(20)에 동기화를 요구하는 과정으로부터 시작된다(201). 즉, SyncML 클라이언트(10)는 SyncML 서버(20)에 대한 인증정보와 동기화가 수행되어야 할 데이터의 개수를 SyncML 서버(20)로 요청한다(202). 이에 대해, SyncML 서버(20)는 인증이 성공할 경우 인증결과와 SyncML 서버(20)로부터 SyncML 클라이언트(10)로 동기화가 수행되어야 할 데이터의 개수를 SyncML 클라이언트(10)로 전송한다(202). 이 과정이 데이터 동기화의 인증 및 초기화 과정이다.
이후, SyncML 클라이언트(10)의 변경 사항이 먼저 SyncML 서버(20)로 업데이트되며(203), SyncML 클라이언트(10)의 변경사항 적용이 완료되면 SyncML 서버(20)의 변경사항이 SyncML 클라이언트(10)로 업데이트된다(204). 즉, SyncML 클라이언트(10)의 변경사항과 SyncML 서버(20)의 변경사항이 상대방의 데이터에 대해 동기화 과정을 수행하는 것이다.
동기화 과정은 필요한 데이터의 수정, 갱신 및 삭제 작업을 행하는 것이다. SyncML 서버(20)와 SyncML 클라이언트(10)는 변경사항의 업데이트에 대한 신뢰성을 보장하기 위하여 변경 적용 요청과 이에 대한 응답으로 이루어진다. 요청과 응답이 모두 완료되지 않은 경우는 데이터 동기화가 실패한 경우이다.
이상에서는 데이터 동기화 과정이 정상적으로 수행되는 경우에 대하여 설명하였다. 하지만, SyncML 클라이언트(10)와 SyncML 서버(20) 간의 데이터 동기화는 네트워크의 트래픽이나 다른 내부 혹은 외부적인 요인에 의하여 동기화 과정이 비정상적으로 종료되는 경우가 빈번하게 발생한다.
이와 같이 동기화 과정이 실패한 경우에 대한 종래기술의 일반적인 동기화 처리 방법을 도 3을 참조하여 설명한다.
도 3은 종래기술에 따른 SyncML 클라이언트와 SyncML 서버 간의 대용량 데이터 동기화 과정 중, SyncML 클라이언트로부터 SyncML 서버로의 데이터 전송 비정상 종료시 동기화 재개 과정에 대한 흐름도이다.
도 3에서는 SyncML 클라이언트(10)가 사용자의 데이터 변경에 의하여 2개의 데이터를 동기화하는 것을 가정한다.
먼저, SyncML 클라이언트(10)는 변경사항이 발생할 경우 SyncML 서버(20)로 전송할 데이터의 변경사항 리스트를 작성한다(301). 그리고, SyncML 서버(20)에 접속하여 2개의 변경사항에 대한 동기화 요청을 수행하며[즉, SyncML 클라이언트(10)는 SyncML 서버(20)에 대한 인증정보와 동기화가 수행되어야 할 데이터의 개수("2")를 SyncML 서버(20)로 요청함], SyncML 서버(20)는 인증절차 수행 후 동기 화 요청을 받아들인다(302).
이후, SyncML 클라이언트(10)는 SyncML 서버(20)로 첫 번째 변경사항(데이터1)을 전송하며(303), SyncML 서버(20)는 SyncML 클라이언트(10)의 데이터가 정상적으로 전송 완료되었다는 것을 확인한 후 데이터를 저장한다(304).
이후에, SyncML 클라이언트(10)는 두 번째 변경사항(데이터2)에 대한 전송을 시도한다(305). 이때, 만약 두 번째 데이터(데이터2)가 대용량 파일일 경우 SyncML 클라이언트(10)는 데이터2를 여러 개의 메시지로 나누어 전송하는데(305), 데이터 전송이 완료되기 전에 비정상적인 방법으로 종료된다면(306), SyncML 서버(20)는 일부분이 전송된 두 번째 데이터(미전송완료 데이터2)를 삭제하며(307), 동기화가 이루어지지 않은 것으로 처리한다. 그리고, SyncML 클라이언트(10)도 동일하게 두 번째 데이터(미전송완료 데이터2)의 동기화가 이루어지지 않은 것으로 처리한다.
이후, 새로운 동기화 시점에 도달하여 동기화를 수행하게 되면(308), SyncML 클라이언트(10)는 두 번째 데이터(미전송완료 데이터2)에 대한 변경사항 리스트를 작성한 후(309), SyncML 서버(20)에 접속하여 1개의 변경사항에 대한 동기화 요청을 수행하며[즉, SyncML 클라이언트(10)는 SyncML 서버(20)에 대한 인증정보와 동기화가 수행되어야 할 데이터의 개수("1")를 SyncML 서버(20)로 요청함], 이에 대해 SyncML 서버(20)는 인증절차 수행 후 동기화 요청을 받아들인다(310).
다음으로, SyncML 클라이언트(10)는 미전송완료 데이터2에 대한 전체 정보를(여러 개의 메시지로 나누어) SyncML 서버(20)로 전송한다(311). 이후에, SyncML 서버(20)는 SyncML 클라이언트(10)의 데이터가 정상적으로 전송 완료되었다는 것을 확인한 후 데이터를 저장함으로써(312), SyncML 클라이언트(10)와 SyncML 서버(20) 간에 데이터1,2의 동기화가 이루어진다(313,314).
그러나, 이와 같이 대용량 파일에 대한 데이터 동기화 과정에서, SyncML 서버(20) 및 SyncML 클라이언트(10)가 자신의 변경 내역을 전송할 때 데이터 전송이 비정상 종료되면, 다음 동기화 세션에서 해당 미전송완료 데이터의 전체 데이터를 다시 처음부터 전송해야 하는 자원 낭비가 발생하게 된다. 이는 결국, 동기화 시간 증가 및 불필요한 트랜잭션의 낭비를 초래하게 된다.
도 4는 종래기술에 따른 SyncML 클라이언트와 SyncML 서버 간의 단말 관리 과정 중, SyncML 서버로부터 SyncML 클라이언트로의 데이터 전송 비정상 종료시 단말 관리 재개 과정에 대한 흐름도이다.
먼저, SyncML 서버(20)는 SyncML 클라이언트(10)에 접속하여 인증 및 초기화 절차를 수행한다(401).
이후, SyncML 서버(20)는 SyncML 클라이언트(10)로 대용량 데이터를 전송한다(402,403). 이때, 만약 대용량 데이터가 전송 완료되기 전에 비정상적인 방법으로 종료된다면(404), SyncML 서버(20)는 일부분만이 전송된 대용량 데이터(미전송완료 데이터)에 대한 전송 정보를 삭제하며(405), SyncML 클라이언트(10) 역시 SyncML 서버(20)로부터 일부분이 전송된 대용량 데이터(미전송완료 데이터)에 대한 전송 정보를 제거한다(406).
다음으로, 새로운 단말 관리 세션이 시작되면(407), SyncML 서버(20)는 재개된 단말 관리 세션에서 이전의 데이터 전송에 관계없이 처음부터 다시 대용량 데이 터(미전송완료 데이터)를 전송하게 된다. 즉, 인증 및 초기화 과정을 수행한 후(408), 대용량 데이터(미전송완료 데이터)를 처음부터 다시 전송하게 된다(409~411). 이후, 대용량 데이터(미전송완료 데이터)에 대한 전송이 완료되면(412), SyncML 서버(20)가 SyncML 클라이언트(10)로 단말 관리 명령을 전송함으로써(413), SyncML 클라이언트(10)와 SyncML 서버(20) 간에 단말 관리 세션이 완료된다(414,415).
그러나, 이와 같이 대용량 파일에 대한 단말 관리 과정에서, SyncML 서버(20)가 SyncML 클라이언트(10)로 데이터를 전송할 때 데이터 전송이 비정상 종료되면, 다음 단말 관리 세션에서 해당 데이터(미전송완료 데이터)의 전체 데이터를 다시 처음부터 전송해야 하는 자원 낭비가 발생하게 된다. 이는 결국, 단말 관리 시간 증가 및 불필요한 트랜잭션의 낭비를 초래하게 된다.
따라서 상기와 같은 종래 기술은 대용량 데이터의 동기화 및 단말 관리 과정에서 의도하지 않은 상태로 세션이 종료되어 특정 데이터의 일부분만이 전송된 상태일 경우, 다음 세션이 수행되는 시점에서 일부분만 전송된 상태로 종료된 미전송완료 데이터에 대해서 다시 처음부터 전송함으로써 동기화(/단말 관리) 시간 증가 및 불필요한 트랜잭션의 낭비 등의 문제점이 있으며, 이러한 문제점을 해결하고자 하는 것이 본 발명의 과제이다.
따라서, 본 발명은 SyncML을 이용한 서버와 클라이언트의 데이터 동기화 과정에 있어서, 혹은 서버에서 클라이언트로의 데이터 다운로드(또는 단말 관리) 과정에 있어서, 서버와 클라이언트 간의 대용량 파일에 대한 전송 중에 데이터 전송이 비정상적으로 종료된 경우, 다음 세션을 수행하는 시점에서 '이전에 비정상적인(혹은 전송이 완료되지 않은) 상태로 데이터 교환이 진행된 데이터'(미전송완료 데이터)를 탐지하고 중단된 시점부터 데이터 전송을 보장하기 위한, 서버와 클라이언트 간의 미전송완료 데이터의 전송 방법 및 상기 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.
본 발명의 목적은 이상에서 언급한 목적으로 제한되지 않으며, 언급되지 않은 본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장 점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명은, 통신시스템에서의 데이터 전송 방법에 있어서, 일 단말에서 타 단말로 전송될 데이터를 최대 전송 허용 용량에 맞춰 부분 전송하는 단계; 상기 데이터의 전송이 중간에 종료되면, 상기 타 단말이 마지막으로 유효하게 전송된 부분 데이터의 용량 및 세션에 관한 정보를 저장하는 단계; 현재 세션 종료 후 다음 세션이 시작될 때, 상기 타 단말이 상기 정보를 상기 일 단말로 전송하여, 재개시 세션임을 인지시키는 단계; 및 상기 일 단말이 전송이 중단된 데이터를 찾아 중단된 시점의 부분 데이터부터 이어서 상기 타 단말로 전송하는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명은, 통신시스템에서의 데이터 전송 방법에 있어서, 일 단말에서 타 단말로 전송될 데이터를 최대 전송 허용 용량에 맞춰 부분 전송하는 단계; 상기 데이터의 전송이 중간에 종료되면, 상기 일 단말이 마지막으로 유효하게 전송된 부분 데이터의 용량 및 세션에 관한 정보를 저장하는 단계; 현재 세션 종료 후 다음 세션이 시작될 때, 상기 일 단말이 상기 정보를 상기 타 단말로 전송하여, 재개시 세션임을 인지시키는 단계; 및 상기 일 단말이 전송이 중단된 데이터를 찾아 중단된 시점의 부분 데이터부터 이어서 상기 타 단말로 전송하는 단계를 포함하는 것을 특징으로 한다.
한편, 본 발명은, 미전송완료 데이터의 전송을 위하여, 프로세서를 구비한 통신 시스템에, 일 단말에서 타 단말로 전송될 데이터를 최대 전송 허용 용량에 맞춰 부분 전송하는 기능; 상기 데이터의 전송이 중간에 종료되면, 상기 타 단말이 마지막으로 유효하게 전송된 부분 데이터의 용량 및 세션에 관한 정보를 저장하는 기능; 현재 세션 종료 후 다음 세션이 시작될 때, 상기 타 단말이 상기 정보를 상기 일 단말로 전송하여, 재개시 세션임을 인지시키는 기능; 및 상기 일 단말이 전송이 중단된 데이터를 찾아 중단된 시점의 부분 데이터부터 이어서 상기 타 단말로 전송하는 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
또한, 본 발명은, 미전송완료 데이터의 전송을 위하여, 프로세서를 구비한 통신 시스템에, 일 단말에서 타 단말로 전송될 데이터를 최대 전송 허용 용량에 맞춰 부분 전송하는 기능; 상기 데이터의 전송이 중간에 종료되면, 상기 일 단말이 마지막으로 유효하게 전송된 부분 데이터의 용량 및 세션에 관한 정보를 저장하는 기능; 현재 세션 종료 후 다음 세션이 시작될 때, 상기 일 단말이 상기 정보를 상기 타 단말로 전송하여, 재개시 세션임을 인지시키는 기능; 및 상기 일 단말이 전송이 중단된 데이터를 찾아 중단된 시점의 부분 데이터부터 이어서 상기 타 단말로 전송하는 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
상기와 같은 본 발명은, 서버 혹은 클라이언트 간의 대용량 데이터 동기화 또는 단말 관리 과정에 있어, 내/외부 환경에 의하여 의도하지 않은 상태로 데이터 동기화 또는 단말 관리 세션이 종료된 경우, 일부의 데이터만 전송된 상태로 전송이 중단된 대용량 데이터에 대하여 중단된 시점에 대한 데이터만 전송을 시작할 수 있도록 함으로써, 서버와 클라이언트 간의 데이터 전송 효율성과 편의성을 증진시킬 수 있는 효과가 있다.
아울러, 본 발명에 따르면, 클라이언트와 서버는 데이터 동기화가 실패한 데이터에 대하여 모든 데이터를 재전송하는 것이 아니라, 중단된 시점 이후만 전송함으로써 데이터 동기화 또는 단말 관리 시간의 단축 뿐만 아니라, 대용량 데이터의 동기화 또는 단말 관리시 불필요한 트랜잭션의 낭비를 줄일 수 있는 장점이 있다.
또한, 본 발명에 따르면(도 5 참조 및 도 6의 다른 실시예 참조), 전송이 중단된 경우에 대한 세션 정보를 데이터 전송측이 아니라 수신측에서 저장하고, 전송측에 해당 정보를 넘겨주게 되므로 데이터 전송 중 배터리 탈착과 같이 전송측이 데이터 손실 정보를 기록할 수 없는 경우에도 데이터 이어받기 기능을 수행할 수 있다는 이점이 있다.
상술한 목적, 특징 및 장점은 첨부된 도면을 참조하여 상세하게 후술되어 있는 상세한 설명을 통하여 보다 명확해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시예를 상세히 설명하기로 한다.
도 5는 본 발명에 따른 SyncML 클라이언트와 SyncML 서버 간의 미전송완료 데이터 전송 방법 중, SyncML 클라이언트로부터 SyncML 서버로의 데이터 전송 비정상 종료시 동기화 재개 과정에 대한 일실시예 흐름도로서, SyncML 클라이언트(10)로부터 SyncML 서버(20)로 데이터 전송 중, 실패시 다음 세션에 해당 정보를 탐지하여 데이터 이어받기를 수행하는 과정을 보여준다.
도 5에 따르면, 본 발명은 비정상 종료된(혹은 전송이 완료되지 않은) 시점의 데이터 동기화 과정에 대한 현재 전송 상태 정보를 SyncML 서버(20)가 저장해두고, 이후 다음 세션이 개시될 때 미전송완료 데이터에 대한 정보를 SyncML 클라이언트(10)와 교환함으로써, SyncML 클라이언트(10)에서 일부만 전송된 데이터를 탐지하고 데이터의 나머지 부분만 SyncML 서버(20)로 전송토록 하여, 대용량 데이터 교환시 동기화 과정에 대한 데이터 전송량의 감소, 동기화 시간 감소 및 불필요한 트랜잭션의 낭비 등을 줄일 수 있다.
즉, 본 발명은 데이터 동기화 과정에 있어서, 비정상적인 종료(혹은 전송이 완료되지 않은)에 의해 대용량 데이터가 전송 중간에 종료될 경우, SyncML 서버(20)가 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 기록해둔다. 그리고, 다음 동기화 세션이 시작될 때, SyncML 서버(20)는 기록된 정보[비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보]를 SyncML 클라이언트(10)의 요청에 의하여 또는 인증 및 초기화 과정에서 SyncML 클라이언트(10)로 전송함으로써, 현재의 세션 시작 이전에 대용량 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 클라이언트(10)로 알려 재개시(Resume) 세션임을 알린다. 이후, SyncML 클라이언트(10)는 상기 정보를 이용하여 전송이 중단된 시점의 데이터를 찾아 중단된 시점의 데이터부터 이어서 전송을 시작하고, 데이터를 이어받은 SyncML 서버(20)는 해당 데이터에 대하여 기 저장된 데이터 이후에 순차적으로 업데이트하여 동기화를 수행한다.
여기서, SyncML 클라이언트(10) 및 SyncML 서버(20) 간의 데이터 교환시, 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 SyncML 서버(20)가 관리하여 SyncML 클라이언트(10)와 교환함으로써 데이터 이어받기를 수행할 수 있다. 이때, SyncML 서버(20)가 SyncML 클라이언트(10)와 세션 정보를 교환하는 방법은 세션 정보를 특정한 노드(Node)에 저장하여 관리하며, 데이터 동기화 세션을 시작할 때 SyncML 클라이언트(10)가 해당 노드(Node)에 대한 정보를 SyncML 서버(20)로 요청하거나, 또는 인증 및 초기화 과정에 SyncML 서버(20)가 SyncML 클라이언트(10)로 해당 정보를 전송한다. 이처럼, 이전 세션에서 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 서버(20)가 SyncML 클라이언트(10)로 알려[재개시(Resume) 세션임을 탐지토록 함], SyncML 클라이언트(10)로부터 데이터 이어받기를 수행하게 된다.
그럼, 도 5를 참조하여 SyncML 클라이언트(10)로부터 SyncML 서버(20)로의 데이터 전송 및 데이터 이어받기 과정을 살펴보면 다음과 같다. 도 5에서는 SyncML 클라이언트(10)가 사용자의 데이터 변경에 의하여 2개의 데이터를 동기화하는 것을 가정한다.
먼저, SyncML 클라이언트(10)의 변경사항이 발생할 경우, SyncML 클라이언트(10)는 SyncML 서버(20)로 전송할 데이터의 변경사항 목록을 구성한다(501). 그리고, SyncML 클라이언트(10)는 SyncML 서버(20)와의 데이터 교환을 위하여 인증 및 초기화 과정을 수행한다(502). 즉, SyncML 클라이언트(10)는 SyncML 서버(20)에 접속하여 2개의 변경사항에 대한 동기화 요청을 수행하며[즉, SyncML 클라이언트(10)는 SyncML 서버(20)에 대한 인증정보와 동기화가 수행되어야 할 데이터의 개수("2")를 SyncML 서버(20)로 요청함], SyncML 서버(20)는 인증절차 수행 후 동기화 요청을 받아들인다.
이후, 인증이 완료된 후 SyncML 클라이언트(10)는 SyncML 서버(20)로 데이터1(첫 번째 변경사항)의 전송을 시작한다(503). 이때, 데이터 전송이 성공적으로 완료된 데이터1은 SyncML 서버(20)에 정상적으로 업데이트되며(504), 다음 데이터2(두 번째 변경사항)의 전송이 이어진다(505). 만약, 현재 전송중인 데이터2가 대 용량 데이터일 경우, SyncML 클라이언트(10)는 데이터2를 일정 크기로 나누어 부분 전송을 실시한다.
그런데, 데이터2의 전송이 이루어지는 중에, 네트워크 손실 또는 단말의 배터리 잔량 부족 등에 의해 데이터 전송이 완료되지 않은 상태에서 해당 세션이 비정상적으로 종료되는 상황이 발생할 수 있다(506). 이때, SyncML 서버(20)는 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 기록해둔다(507).
이후, 새로운 데이터 동기화 세션이 수행될 때(508), SyncML 클라이언트(10)는 이전 세션에서 데이터2(미전송완료 데이터)가 완료되지 않았으므로 변경사항에 데이터2가 포함된 변경 이력을 생성하여(509), SyncML 서버(20)와 동기화를 위한 인증 및 초기화 과정을 거친다(510). 즉, SyncML 클라이언트(10)는 데이터2에 대한 동기화 요청을 수행하는데, 즉 SyncML 서버(20)에 대한 인증정보와 동기화가 수행되어야 할 데이터의 개수("1")를 SyncML 서버(20)로 요청한다. 이때, SyncML 클라이언트(10)는 이전 세션에 대한 정보를 SyncML 서버(20)로 요청할 수 있다. 이에 대해, SyncML 서버(20)는 기록된 정보[비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보]를 SyncML 클라이언트(10)의 요청에 의하여 또는 인증 및 초기화 과정에서 SyncML 클라이언트(10)로 전송함으로써, 현재의 세션 시작 이전에 대용량 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 클라이언트(10)로 알려 재개시(Resume) 세션임을 알린다(511). 이로써, SyncML 클라이언트(10)는 이전 세션에 데이터 전송의 비정상 종료(혹은 전송이 완료되지 않은)가 발생하였음을 탐지하게 된다.
이 과정에서 이전 세션의 비정상적인 종료가 발생하였음을 탐지하면, SyncML 클라이언트(10)는 해당 데이터2의 전송 사이즈 및 데이터 오프셋(Offset)을 조정하여(512) SyncML 서버(20)로 해당 데이터2에 대한 이어 보내기를 수행한다(513). 이후에, 해당 데이터2의 전송이 성공적으로 완료되면, SyncML 서버(20)는 해당 데이터2를 업데이트함으로써(514), 데이터1,2의 동기화가 이루어진다(515,516).
이상에서는 "비정상 종료된(혹은 전송이 완료되지 않은) 시점의 데이터 동기화 과정에 대한 현재 전송 상태 정보를 SyncML 서버(20)가 저장해두고, 이후 다음 세션이 개시될 때 미전송완료 데이터에 대한 정보를 SyncML 클라이언트(10)와 교환하는 과정"을 예로 들었으나, 다른 예로 비정상 종료된(혹은 전송이 완료되지 않은) 시점의 데이터 동기화 과정에 대한 현재 전송 상태 정보를 SyncML 클라이언트(10)가 저장해두고, 이후 다음 세션이 개시될 때 미전송완료 데이터에 대한 정보를 SyncML 서버(20)와 교환한 후, 일부만 전송된 데이터의 나머지 부분만 SyncML 서버(20)로 전송하여, 대용량 데이터 교환시 동기화 과정에 대한 데이터 전송량의 감소, 동기화 시간 감소 및 불필요한 트랜잭션의 낭비 등을 줄일 수 있다. 다만, 이때 SyncML 클라이언트(10)에 저장되는 정보는 SyncML 서버(20)로부터 전송 요청한 데이터가 정상적으로 수신되었다는 결과를 받은 시점까지의 데이터에 대한 정보만이 저장된다.
즉, 데이터 동기화 과정에 있어서, 비정상적인 종료(혹은 전송이 완료되지 않은)에 의해 대용량 데이터가 전송 중간에 종료될 경우, SyncML 클라이언트(10)가 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 기록해둔다. 그리고, 다음 동기화 세션이 시작될 때, SyncML 클라이언트(10)는 기록된 정보[비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보]를 SyncML 서버(20)의 요청에 의하여 또는 인증 및 초기화 과정에서 SyncML 서버(20)로 전송함으로써, 현재의 세션 시작 이전에 대용량 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 서버(20)로 알려 재개시(Resume) 세션임을 알린다. 이후, SyncML 클라이언트(10)는 상기 정보를 이용하여 전송이 중단된 시점의 데이터를 찾아 중단된 시점의 데이터부터 이어서 전송을 시작하고, 데이터를 이어받은 SyncML 서버(20)는 해당 데이터에 대하여 기 저장된 데이터 이후에 순차적으로 업데이트하여 동기화를 수행한다.
여기서, SyncML 클라이언트(10) 및 SyncML 서버(20) 간의 데이터 교환시, 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 SyncML 클라이언트(10)가 관리하여 SyncML 서버(20)와 교환함으로써 데이터 이어받기를 수행할 수 있다. 이때, SyncML 클라이언트(10)가 SyncML 서버(20)와 세션 정보를 교환하는 방법은 세션 정 보를 특정한 노드(Node)에 저장하여 관리하며, 동기화 세션을 시작할 때 SyncML 서버(20)가 해당 노드(Node)에 대한 정보를 SyncML 클라이언트(10)로 요청하거나, 또는 인증 및 초기화 과정에 SyncML 클라이언트(10)가 SyncML 서버(20)로 해당 정보를 전송한다. 이처럼, 이전 세션에서 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 클라이언트(10)가 SyncML 서버(20)로 알려[재개시(Resume) 세션임을 탐지토록 함], SyncML 서버(20)는 SyncML 클라이언트(10)로부터 데이터 이어받기를 수행하게 된다.
도 6은 본 발명에 따른 SyncML 클라이언트와 SyncML 서버 간의 미전송완료 데이터 전송 방법 중, SyncML 서버로부터 SyncML 클라이언트로의 데이터 전송 비정상 종료시 단말 관리 재개 과정에 대한 일실시예 흐름도로서, SyncML 서버(20)로부터 SyncML 클라이언트(10)로 데이터 전송 중, 실패시 데이터 이어받기를 수행하는 과정을 보여준다.
도 6에 따르면, 본 발명은 비정상 종료된(혹은 전송이 완료되지 않은) 시점의 단말 관리 과정에 대한 현재 전송 상태 정보를 SyncML 서버(20)가 저장해두고, 이후 다음 세션이 개시될 때 미전송완료 데이터에 대한 정보를 SyncML 클라이언트(10)와 교환한 후, 일부만 전송된 데이터의 나머지 부분만 SyncML 클라이언트(10)로 전송하여, 대용량 데이터 교환시 단말 관리 과정에 대한 데이터 전송량의 감소, 단말 관리 시간 감소 및 불필요한 트랜잭션의 낭비 등을 줄일 수 있다. 다만, 이때 SyncML 서버(20)에 저장되는 정보는 SyncML 클라이언트(10)로부터 전송 요청한 데이터가 정상적으로 수신되었다는 결과를 받은 시점까지의 데이터에 대한 정보만이 저장된다.
즉, 본 발명은 단말 관리 과정에 있어서, 비정상적인 종료(혹은 전송이 완료되지 않은)에 의해 대용량 데이터가 전송 중간에 종료될 경우, SyncML 서버(20)가 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 기록해둔다. 그리고, 다음 단말 관리 세션이 시작될 때, SyncML 서버(20)는 기록된 정보[비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보]를 SyncML 클라이언트(10)의 요청에 의하여 또는 인증 및 초기화 과정에서 SyncML 클라이언트(10)로 전송함으로써, 현재의 세션 시작 이전에 대용량 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 클라이언트(10)로 알려 재개시(Resume) 세션임을 알린다. 이후, SyncML 서버(20)는 상기 정보를 이용하여 전송이 중단된 시점의 데이터를 찾아 중단된 시점의 데이터부터 이어서 전송을 시작하고, 데이터를 이어받은 SyncML 클라이언트(10)는 해당 데이터에 대하여 기 저장된 데이터 이후에 순차적으로 업데이트하여 단말 관리를 수행한다.
여기서, SyncML 서버(20) 및 SyncML 클라이언트(10) 간의 데이터 교환시, 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 SyncML 서버(20)가 관리하여 SyncML 클라이언트(10)와 교환함으로써 데이터 이어받기를 수행할 수 있다. 이때, SyncML 서버(20)가 SyncML 클라이언트(10)와 세션 정보를 교환하는 방법은 세션 정보를 특정한 노드(Node)에 저장하여 관리하며, 단말 관리 세션을 시작할 때 SyncML 클라이언트(10)가 해당 노드(Node)에 대한 정보를 SyncML 서버(20)로 요청하거나, 또는 인증 및 초기화 과정에 SyncML 서버(20)가 SyncML 클라이언트(10)로 해당 정보를 전송한다. 이처럼, 이전 세션에서 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 서버(20)가 SyncML 클라이언트(10)로 알려[재개시(Resume) 세션임을 탐지토록 함], SyncML 클라이언트(10)는 SyncML 서버(20)로부터 데이터 이어받기를 수행하게 된다.
그럼, 도 6을 참조하여 SyncML 서버(20)로부터 SyncML 클라이언트(10)로의 데이터 전송 및 데이터 이어받기 과정을 살펴보면 다음과 같다. 도 6에서는 상기 도 5의 경우와 반대로 SyncML 서버(20)로부터 SyncML 클라이언트(10)로 데이터가 전송 중 비정상 종료되어(혹은 전송이 완료되지 않아) 다음 세션에 해당 데이터(미전송완료 데이터)에 대한 이어받기 과정을 보여주고 있다.
먼저, SyncML 서버(20)는 SyncML 클라이언트(10)에 접속하여 인증 및 초기화 절차를 수행한다(601).
이후, SyncML 서버(20)는 SyncML 클라이언트(10)로 대용량 데이터를 일정 크기로 나누어 부분 전송한다(602,603). 이때, 만약 대용량 데이터 전체가 전송 완료되기 전에(일부분만이 전송되었음) 해당 세션이 비정상적인 방법(예로서, 네트워크 손실 또는 단말의 배터리 잔량 부족 등)으로 종료되면(604), SyncML 서버(20)는 비 정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료된) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 기록해둔다(605).
다음으로, 새로운 단말 관리 세션이 시작되면(606), SyncML 서버(20)는 SyncML 클라이언트(10)와 단말 관리를 위한 인증 및 초기화 과정을 거친다(607). 이때, SyncML 클라이언트(10)는 이전 세션에 대한 정보를 SyncML 서버(20)로 요청할 수 있다. 이에 대해, SyncML 서버(20)는 기록된 정보[비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보]를 SyncML 클라이언트(10)의 요청에 의하여 또는 인증 및 초기화 과정에서 SyncML 클라이언트(10)로 전송함으로써, 현재의 세션 시작 이전에 대용량 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 클라이언트(10)로 알려 재개시(Resume) 세션임을 알린다(608). 이처럼, SyncML 서버(20)와 SyncML 클라이언트(10)는 이전 세션에 대한 정보를 교환함으로써, SyncML 서버(20)로부터 SyncML 클라이언트(10)로 전송되던 데이터가 이어받기 가능하다는 정보를 탐지한 후(608), 대용량 데이터에 대한 이어받기/보내기를 진행하게 된다(609,610).
이후, 대용량 데이터(미전송완료 데이터)에 대한 전송이 완료되면(611), SyncML 서버(20)가 SyncML 클라이언트(10)로 단말 관리 명령을 전송함으로써(612), SyncML 클라이언트(10)와 SyncML 서버(20) 간에 단말 관리 세션이 완료된다(613,614).
이상에서는 "비정상 종료된(혹은 전송이 완료되지 않은) 시점의 단말 관리 과정에 대한 현재 전송 상태 정보를 SyncML 서버(20)가 저장해두고, 이후 다음 세션이 개시될 때 미전송완료 데이터에 대한 정보를 SyncML 클라이언트(10)와 교환하는 과정"을 예로 들었으나, 다른 예로 비정상 종료된(혹은 전송이 완료되지 않은) 시점의 단말 관리 과정에 대한 현재 전송 상태 정보를 SyncML 클라이언트(10)가 저장해두고, 이후 다음 세션이 개시될 때 미전송완료 데이터에 대한 정보를 SyncML 서버(20)와 교환함으로써, SyncML 서버(20)에서 일부만 전송된 데이터를 탐지하고 데이터의 나머지 부분만 SyncML 클라이언트(10)로 전송토록 하여, 대용량 데이터 교환시 단말 관리 과정에 대한 데이터 전송량의 감소, 단말 관리 시간 감소 및 불필요한 트랜잭션의 낭비 등을 줄일 수 있다.
즉, 단말 관리 과정에 있어서, 비정상적인 종료(혹은 전송이 완료되지 않은)에 의해 대용량 데이터가 전송 중간에 종료될 경우, SyncML 클라이언트(10)가 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 기록해둔다. 그리고, 다음 단말 관리 세션이 시작될 때, SyncML 클라이언트(10)는 기록된 정보[비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보]를 SyncML 서버(20)의 요청에 의하여 또는 인증 및 초기화 과정에서 SyncML 서버(20)로 전송함으로써, 현재의 세션 시작 이전에 대용량 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 서버(20)로 알려 재개 시(Resume) 세션임을 알린다. 이후, SyncML 서버(20)는 상기 정보를 이용하여 전송이 중단된 시점의 데이터를 찾아 중단된 시점의 데이터부터 이어서 전송을 시작하고, 데이터를 이어받은 SyncML 클라이언트(10)는 해당 데이터에 대하여 기 저장된 데이터 이후에 순차적으로 업데이트하여 단말 관리를 수행한다.
여기서, SyncML 서버(20) 및 SyncML 클라이언트(10) 간의 데이터 교환시, 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보[중단된(미전송완료) 데이터 관리 정보, 데이터 사이즈, 데이터의 진행 내역(전송된 데이터 사이즈) 등]를 SyncML 클라이언트(10)가 관리하여 SyncML 서버(20)와 교환함으로써 데이터 이어받기를 수행할 수 있다. 이때, SyncML 클라이언트(10)가 SyncML 서버(20)와 세션 정보를 교환하는 방법은 세션 정보를 특정한 노드(Node)에 저장하여 관리하며, 단말 관리 세션을 시작할 때 SyncML 서버(20)가 해당 노드(Node)에 대한 정보를 SyncML 클라이언트(10)로 요청하거나, 또는 인증 및 초기화 과정에 SyncML 클라이언트(10)가 SyncML 서버(20)로 해당 정보를 전송한다. 이처럼, 이전 세션에서 데이터의 부분 전송(데이터 전송 실패)이 있었음을 SyncML 클라이언트(10)가 SyncML 서버(20)로 알려[재개시(Resume) 세션임을 탐지토록 함], SyncML 서버(20)로부터 데이터 이어받기를 수행하게 된다.
그럼, 도 7 및 도 8을 참조하여, 상기 도 5에서 SyncML 클라이언트(10)로부터 SyncML 서버(20)로 데이터 전송 중 전송이 완료되지 않은 상태에서 비정상 종료된 경우, SyncML 서버(20)가 SyncML 클라이언트(10)로부터 데이터를 이어받기 하는 과정을 살펴보기로 한다.
도 7에서는 SyncML 클라이언트(10)가 SyncML 서버(20)로 3개의 데이터(데이터1~데이터3)를 전송하려고 시도하는 도중 데이터 전송이 비정상적으로 종료되는 과정이 도시되었다. 편의상, 데이터 동기화 작업을 수행하기 위해 SyncML 클라이언트(10)에 변경된 3개의 데이터가 있다고 가정하자(701). 여기서, 각각의 데이터의 이름과 크기는 "데이터1(3Mb)", "데이터2(4Mb)", "데이터3(1Mb)"이다. 이때, SyncML 클라이언트(10)와 SyncML 서버(20)가 하나의 메시지에 전송할 수 있는 데이터의 양은 최대 2Mb(최대 전송 허용 용량)라고 가정할 경우, 데이터1(3Mb), 데이터2(4Mb)는 데이터의 크기로 인하여 대용량 데이터 전송 과정을 거치게 된다.
따라서, SyncML 클라이언트(10)는 SyncML 서버(20)로 먼저 데이터1에 대해 최대 메시지 크기에 따라 데이터1의 3Mb 중 2Mb를 전송하고[이때, SyncML 클라이언트(10)의 변경리스트는 "변경리스트: 데이터1~데이터3, 진행중 상태정보: 데이터1(3Mb), 완료목록: 0"이 됨](701,702), SyncML 서버(20)는 변경사항을 기록한 후[변경사항정보: 3, 진행중 상태: 데이터1(2Mb)](703), 데이터1의 2Mb에 대한 전송 결과를 SyncML 클라이언트(10)로 전송한다(704).
이후, SyncML 클라이언트(10)는 SyncML 서버(20)로부터 데이터1의 2Mb에 대한 전송 결과를 받으면 변경리스트를 수정하고[변경리스트: 데이터1~데이터3, 진행중 상태정보: 데이터1(1Mb), 완료목록: 0](705), 데이터1의 나머지 1Mb를 SyncML 서버(20)로 전송한다(706). 이에 대해, SyncML 서버(20)는 완료된 데이터1(3Mb)을 저장소에 업데이트한 후(707), 변경사항을 기록한 후[변경사항정보: 2, 진행중 상 태: 0](708), 데이터1(3Mb)의 업데이트에 대한 결과를 SyncML 클라이언트(10)로 전송한다(709).
다음으로, SyncML 클라이언트(10)는 SyncML 서버(20)로부터 데이터1의 업데이트 결과를 받아 데이터1(3Mb)이 전송 완료되었음을 변경리스트에 업데이트한 후[변경리스트: 데이터2~데이터3, 진행중 상태정보: 0, 완료목록: 1](710), 데이터2에 대한 전송을 준비한다.
이어서, SyncML 클라이언트(10)는 SyncML 서버(20)로 데이터2의 4Mb 중 2Mb를 먼저 전송하고[이때, SyncML 클라이언트(10)의 변경리스트는 "변경리스트: 데이터2~데이터3, 진행중 상태정보: 데이터2(4Mb), 완료목록: 1"이 됨](711,712), SyncML 서버(20)는 변경사항을 기록한 후[변경사항정보: 2, 진행중 상태: 데이터2(2Mb)](713), 데이터2의 2Mb에 대한 전송 결과를 SyncML 클라이언트(10)로 전송한다(714).
이후, SyncML 클라이언트(10)는 SyncML 서버(20)로부터 데이터2의 2Mb에 대한 전송 결과를 받으면 변경리스트를 수정하고[변경리스트: 데이터2~데이터3, 진행중 상태정보: 데이터2(2Mb), 완료목록: 1](715), 데이터2의 나머지 2Mb를 SyncML 서버(20)로 전송하려고 시도한다(716). 그러나, 네트워크의 손실 또는 단말의 배터리 잔량 부족 등으로 인하여 SyncML 서버(20)가 데이터2의 나머지 2Mb를 수신받지 못한 상태에서 해당 세션이 비정상적으로 종료된다(717).
이후, 다음 세션이 시작되어 이전의 데이터2에 대한 이어받기가 진행되는 과정을 도 8을 참조하여 살펴보면 다음과 같다.
먼저, 이전 세션에서 비정상적으로 종료되었기 때문에 SyncML 클라이언트(10)는 현재 변경리스트를 데이터2, 데이터3의 2개의 데이터가 존재하는 것으로 구성한다[변경리스트: 데이터2~데이터3, 진행중 상태정보: 데이터2(4Mb), 완료목록: 0](801). 그리고, SyncML 서버(20)와의 인증 및 초기화 과정에서 SyncML 클라이언트(10)는 2개의 변경사항이 존재한다고 SyncML 서버(20)로 알리고(802), SyncML 서버(20)는 이전 세션에 대해 기록된 정보(즉, 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보)[변경사항정보: 2, 진행중 상태: 데이터2(2Mb)](803)를 바탕으로 이전 세션에서 비정상적으로 데이터 동기화가 종료되었다는 정보(즉, 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보)를 SyncML 클라이언트(10)로 전송한다(804).
이후, SyncML 클라이언트(10)는 해당 데이터2에 대한 전송상태를 탐지하여 변경리스트를 수정한 후[변경리스트: 데이터2~데이터3, 진행중 상태정보: 데이터2(2Mb), 완료목록: 0](805), SyncML 서버(20)로 데이터2의 남은 2Mb의 데이터를 전송한다(806). 이에 대해, SyncML 서버(20)는 해당 데이터2를 업데이트한 후(807), 변경사항을 기록한 후[변경사항정보: 1, 진행중 상태: 0](808), 데이터2(4Mb)의 업데이트에 대한 결과를 SyncML 클라이언트(10)로 전송한다(809).
다음으로, SyncML 클라이언트(10)는 SyncML 서버(20)로부터 데이터2의 업데이트 결과를 받아 데이터2(전체 4Mb)가 전송 완료되었음을 변경리스트에 업데이트한 후[변경리스트: 데이터3, 진행중 상태정보: 0, 완료목록: 1](810), 데이터3에 대한 전송을 준비한다.
위와 같은 방식으로 데이터2의 이어받기가 가능하다.
이후, SyncML 클라이언트(10)는 SyncML 서버(20)로 나머지 데이터3의 전송을 완료한다(811~816). 이를 살펴보면, SyncML 클라이언트(10)는 SyncML 서버(20)로 데이터3의 1Mb를 전송하고[이때, SyncML 클라이언트(10)의 변경리스트는 "변경리스트: 데이터3, 진행중 상태정보: 데이터3(1Mb), 완료목록: 1"이 됨](811,812), SyncML 서버(20)는 완료된 데이터3(1Mb)을 저장소에 업데이트한 후(813), 변경사항을 기록한 후[변경사항정보: 0, 진행중 상태: 0](814), 데이터3(1Mb)의 업데이트에 대한 결과를 SyncML 클라이언트(10)로 전송한다(815). 이에 대해, SyncML 클라이언트(10)는 SyncML 서버(20)로부터 데이터3의 업데이트에 대한 전송 결과를 받으면 변경리스트를 수정한다[변경리스트: 데이터3, 진행중 상태정보: 0, 완료목록: 2](816).
이제, 도 9 및 도 10을 참조하여, 상기 도 6에서 SyncML 서버(20)로부터 클라이언트로의 데이터 전송 중 전송이 완료되지 않은 상태에서 비정상 종료된 경우, SyncML 클라이언트(10)가 SyncML 서버(20)로부터 데이터를 이어받기 하는 과정을 살펴보기로 한다.
도 9에서는 SyncML 서버(20)가 SyncML 클라이언트(10)로 3개의 데이터(데이터1~데이터3)를 전송하려고 시도하는 도중 데이터 전송이 비정상적으로 종료되는 과정이 도시되었다. 편의상, 단말 관리 작업을 수행하기 위해 SyncML 서버(20)에 변경된 3개의 데이터가 있다고 가정하자(901). 여기서, 각각의 데이터의 이름과 크기는 "데이터1(3Mb)", "데이터2(4Mb)", "데이터3(1Mb)"이다. 이때, SyncML 클라이언트(10)와 SyncML 서버(20)가 하나의 메시지에 전송할 수 있는 데이터의 양은 최대 2Mb(최대 전송 허용 용량)라고 가정할 경우, 데이터1(3Mb), 데이터2(4Mb)는 데이터의 크기로 인하여 대용량 데이터 전송 과정을 거치게 된다.
따라서, SyncML 서버(20)는 SyncML 클라이언트(10)로 먼저 데이터1에 대해 최대 메시지 크기에 따라 데이터1의 3Mb 중 2Mb를 전송하고[이때, SyncML 서버(20)의 변경리스트는 "변경리스트: 데이터1~데이터3, 진행중 상태정보: 데이터1(3Mb), 완료목록: 0"이 됨](901,902), SyncML 클라이언트(10)는 변경사항을 기록한 후[변경사항정보: 3, 진행중 상태: 데이터1(2Mb)](903), 데이터1의 2Mb에 대한 전송 결과를 SyncML 서버(20)로 전송한다(904).
이후, SyncML 서버(20)는 SyncML 클라이언트(10)로부터 데이터1의 2Mb에 대한 전송 결과를 받으면 변경리스트를 수정하고[변경리스트: 데이터1~데이터3, 진행중 상태정보: 데이터1(1Mb), 완료목록: 0](905), 데이터1의 나머지 1Mb를 SyncML 클라이언트(10)로 전송한다(906). 이에 대해, SyncML 클라이언트(10)는 완료된 데이터1(3Mb)을 저장소에 업데이트한 후(907), 변경사항을 기록한 후[변경사항정보: 2, 진행중 상태: 0](908), 데이터1(3Mb)의 업데이트에 대한 결과를 SyncML 서버(20)로 전송한다(909).
다음으로, SyncML 서버(20)는 SyncML 클라이언트(10)로부터 데이터1의 업데이트 결과를 받아 데이터1(3Mb)이 전송 완료되었음을 변경리스트에 업데이트한 후 [변경리스트: 데이터2~데이터3, 진행중 상태정보: 0, 완료목록: 1](910), 데이터2에 대한 전송을 준비한다.
이어서, SyncML 서버(20)는 SyncML 클라이언트(10)로 데이터2의 4Mb 중 2Mb를 먼저 전송하고[이때, SyncML 서버(20)의 변경리스트는 "변경리스트: 데이터2~데이터3, 진행중 상태정보: 데이터2(4Mb), 완료목록: 1"이 됨](911,912), SyncML 클라이언트(10)는 변경사항을 기록한 후[변경사항정보: 2, 진행중 상태: 데이터2(2Mb)](913), 데이터2의 2Mb에 대한 전송 결과를 SyncML 서버(20)로 전송한다(914).
이후, SyncML 서버(20)는 SyncML 클라이언트(10)로부터 데이터2의 2Mb에 대한 전송 결과를 받으면 변경리스트를 수정하고[변경리스트: 데이터2~데이터3, 진행중 상태정보: 데이터2(2Mb), 완료목록: 1](915), 데이터2의 나머지 2Mb를 SyncML 클라이언트(10)로 전송하려고 시도한다(916). 그러나, 네트워크의 손실 또는 단말의 배터리 잔량 부족 등으로 인하여 SyncML 클라이언트(10)가 데이터2의 나머지 2Mb를 수신받지 못한 상태에서 해당 세션이 비정상적으로 종료된다(917).
이후, 다음 세션이 시작되어 이전의 데이터2에 대한 이어받기가 진행되는 과정을 도 10을 참조하여 살펴보면 다음과 같다.
먼저, 이전 세션에서 비정상적으로 종료되었기 때문에 SyncML 서버(20)는 현재 변경리스트를 데이터2, 데이터3의 2개의 데이터가 존재하는 것으로 구성한다[변경리스트: 데이터2~데이터3, 진행중 상태정보: 데이터2(2Mb), 완료목록: 0](1001). 이때, "914" 단계에서 데이터2의 앞부분 2Mb에 대한 전송 결과를 받았기 때문에, 이를 반영된 변경리스트가 유지된다. 그리고, SyncML 클라이언트(10)와의 인증 및 초기화 과정에서 SyncML 서버(20)는 2개의 변경사항이 존재한다고 SyncML 클라이언트(10)로 알린다(1002). 이때, SyncML 서버(20)는 이전 세션에 대해 기록된 정보(즉, 비정상 종료된(혹은 전송이 완료되지 않은) 세션에 대한 정보 및 비정상 종료된 세션에서의 데이터 전송 상태 정보)[변경사항정보: 2, 진행중 상태: 데이터2(2Mb)]를 바탕으로 이전 세션에서 비정상적으로 단말 관리가 종료되었다는 정보를 SyncML 클라이언트(10)로 전송하고(1003), SyncML 클라이언트(10)는 해당 세션의 비정상 종료를 탐지한 후 변경사항 적용 리스트를 수정하여[변경사항정보: 2, 진행중 상태: 데이터2(2Mb)](1004) 이어받기를 수행할 수 있는 상태로 전환한다.
이후, SyncML 서버(20)는 해당 데이터2의 남은 2Mb를 전송하고[이때, SyncML 서버(20)의 변경리스트는 "변경리스트: 데이터2~데이터3, 진행중 상태정보: 데이터2(2Mb), 완료목록:0"이 됨](1005,1006), 이에 대해 SyncML 클라이언트(10)는 해당 데이터2를 업데이트한 후(1007), 변경사항을 기록한 후[변경사항정보: 1, 진행중 상태: 0](1008), 데이터2(전체 4Mb)의 업데이트에 대한 결과를 SyncML 서버(20)로 전송한다(1009).
다음으로, SyncML 서버(20)는 SyncML 클라이언트(10)로부터 데이터2의 업데이트 결과를 받아 데이터2(전체 4Mb)가 전송 완료되었음을 변경리스트에 업데이트한 후[변경리스트: 데이터3, 진행중 상태정보: 0, 완료목록: 1](1010), 데이터3에 대한 전송을 준비한다.
위와 같은 방식으로 데이터2의 이어받기가 가능하다.
이후, SyncML 서버(20)는 SyncML 클라이언트(10)로 나머지 데이터3의 전송을 완료한다(1011~1016). 이를 살펴보면, SyncML 서버(20)는 SyncML 클라이언트(10)로 데이터3의 1Mb를 전송하고[이때, SyncML 서버(20)의 변경리스트는 "변경리스트: 데이터3, 진행중 상태정보: 데이터3(1Mb), 완료목록: 1"이 됨](1011,1012), SyncML 클라이언트(10)는 완료된 데이터3(1Mb)을 저장소에 업데이트한 후(1013), 변경사항을 기록한 후[변경사항정보: 0, 진행중 상태: 0](1014), 데이터3(1Mb)의 업데이트에 대한 결과를 SyncML 서버(20)로 전송한다(1015). 이에 대해, SyncML 서버(20)는 SyncML 클라이언트(10)로부터 데이터3의 업데이트에 대한 전송 결과를 받으면 변경리스트를 수정한다[변경리스트: 데이터3, 진행중 상태정보: 0, 완료목록: 2](1016).
이상에서와 같은 데이터 이어받기 과정은 SyncML 서버(20) 혹은 SyncML 클라이언트(10)의 단방향 동기화(One-way sync) 또는 단말 관리 과정에만 적용되는 것이 아니라, SyncML 서버(20)와 SyncML 클라이언트(10) 간의 양방향 동기화(Two-way sync) 또는 단말 관리 과정에도 동일하게 적용이 가능하다.
아울러, 전술한 바와 같이, 데이터 동기화 또는 단말 관리 과정에 있어서, "비정상 종료된(혹은 전송이 완료되지 않은) 시점의 데이터 동기화 또는 단말 관리 과정에 대한 현재 전송 상태 정보를 SyncML 서버(20)가 저장해두고, 이후 다음 세션이 개시될 때 미전송완료 데이터에 대한 정보를 SyncML 클라이언트(10)와 교환"하는 것 뿐만 아니라, 비정상 종료된(혹은 전송이 완료되지 않은) 시점의 데이터 동기화 또는 단말 관리 과정에 대한 현재 전송 상태 정보를 SyncML 클라이언트(10)가 저장해두고, 이후 다음 세션이 개시될 때 미전송완료 데이터에 대한 정보를 SyncML 서버(20)와 교환함으로써, 일부만 전송된 데이터를 탐지하고 데이터의 나머지 부분만 전송토록 하는 것 역시 가능하다.
한편, 전술한 바와 같은 본 발명의 방법은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당해 분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체(정보저장매체)에 저장되고, 컴퓨터에 의하여 판독되고 실행됨으로써 본 발명의 방법을 구현한다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
본 발명은 데이터 동기화 또는 단말 관리 등에 이용될 수 있다.
도 1은 일반적인 SyncML 클라이언트와 SyncML 서버 간의 데이터 동기화 과정이 적용되는 환경을 도시한 설명도,
도 2는 종래기술에 따른 SyncML 클라이언트와 SyncML 서버 간의 대용량 데이터 동기화 과정에 대한 흐름도,
도 3은 종래기술에 따른 SyncML 클라이언트와 SyncML 서버 간의 대용량 데이터 동기화 과정 중, SyncML 클라이언트로부터 SyncML 서버로의 데이터 전송 비정상 종료시 동기화 재개 과정에 대한 흐름도,
도 4는 종래기술에 따른 SyncML 클라이언트와 SyncML 서버 간의 단말 관리 과정 중, SyncML 서버로부터 SyncML 클라이언트로의 데이터 전송 비정상 종료시 단말 관리 재개 과정에 대한 흐름도,
도 5는 본 발명에 따른 SyncML 클라이언트와 SyncML 서버 간의 미전송완료 데이터 전송 방법 중, SyncML 클라이언트로부터 SyncML 서버로의 데이터 전송 비정상 종료시 동기화 재개 과정에 대한 일실시예 흐름도,
도 6은 본 발명에 따른 SyncML 클라이언트와 SyncML 서버 간의 미전송완료 데이터 전송 방법 중, SyncML 서버로부터 SyncML 클라이언트로의 데이터 전송 비정상 종료시 단말 관리 재개 과정에 대한 일실시예 흐름도,
도 7은 상기 도 5에서 SyncML 클라이언트로부터 SyncML 서버로 데이터 전송 중 전송이 완료되지 않은 상태에서 비정상 종료된 경우를 도시한 상세 흐름도,
도 8은 상기 도 5에서 SyncML 서버가 SyncML 클라이언트로부터 데이터를 이 어받기 하는 과정을 도시한 상세 흐름도,
도 9는 상기 도 6에서 SyncML 서버로부터 SyncML 클라이언트로 데이터 전송 중 전송이 완료되지 않은 상태에서 비정상 종료된 경우를 도시한 상세 흐름도,
도 10은 상기 도 6에서 SyncML 클라이언트가 SyncML 서버로부터 데이터를 이어받기 하는 과정을 도시한 상세 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명
10 : SyncML 클라이언트 20 : SyncML 서버

Claims (12)

  1. 통신시스템에서의 데이터 전송 방법에 있어서,
    일 단말에서 타 단말로 전송될 데이터를 최대 전송 허용 용량에 맞춰 부분 전송하는 단계;
    상기 데이터의 전송이 중간에 종료되면, 상기 타 단말이 마지막으로 유효하게 전송된 부분 데이터의 용량 및 세션에 관한 정보를 저장하는 단계;
    현재 세션 종료 후 다음 세션이 시작될 때, 상기 타 단말이 상기 정보를 상기 일 단말로 전송하여, 재개시 세션임을 인지시키는 단계; 및
    상기 일 단말이 전송이 중단된 데이터를 찾아 중단된 시점의 부분 데이터부터 이어서 상기 타 단말로 전송하는 단계
    를 포함하는 미전송완료 데이터의 전송 방법.
  2. 통신시스템에서의 데이터 전송 방법에 있어서,
    일 단말에서 타 단말로 전송될 데이터를 최대 전송 허용 용량에 맞춰 부분 전송하는 단계;
    상기 데이터의 전송이 중간에 종료되면, 상기 일 단말이 마지막으로 유효하게 전송된 부분 데이터의 용량 및 세션에 관한 정보를 저장하는 단계;
    현재 세션 종료 후 다음 세션이 시작될 때, 상기 일 단말이 상기 정보를 상 기 타 단말로 전송하여, 재개시 세션임을 인지시키는 단계; 및
    상기 일 단말이 전송이 중단된 데이터를 찾아 중단된 시점의 부분 데이터부터 이어서 상기 타 단말로 전송하는 단계
    를 포함하는 미전송완료 데이터의 전송 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 일 단말은,
    현재 세션 종료 후 다음 세션이 시작될 때, 현재의 세션 시작 이전에 대용량 데이터의 부분 전송 중 데이터 전송 실패가 있었음을 알리는 것을 특징으로 하는 미전송완료 데이터의 전송 방법.
  4. 제3항에 있어서,
    상기 일 단말은,
    해당 부분 데이터의 전송 사이즈 및 데이터 오프셋을 조정하여 상기 타 단말로 해당 부분 데이터에 대한 이어보내기를 수행하는 것을 특징으로 하는 미전송완료 데이터의 전송 방법.
  5. 제4항에 있어서,
    상기 타 단말이 상기 정보를 바탕으로 전송이 중단된 시점의 데이터부터 이어받아, 마지막으로 유효하게 전송된 부분 데이터에 업데이트하는 단계
    를 더 포함하는 미전송완료 데이터의 전송 방법.
  6. 제5항에 있어서,
    상기 데이터는,
    동기화 데이터 또는 단말 관리 데이터 중 어느 하나인 것을 특징으로 하는 미전송완료 데이터의 전송 방법.
  7. 제6항에 있어서,
    상기 정보는,
    현재 세션 종료 후 다음 세션이 시작될 때, 상기 타 단말의 요청에 의해 또는 인증 및 초기화 과정에 상기 일 단말이 상기 타 단말로 전송하는 것을 특징으로 하는 미전송완료 데이터의 전송 방법.
  8. 제6항에 있어서,
    상기 일 단말은, SyncML 클라이언트이며,
    상기 타 단말은, SyncML 서버인 것을 특징으로 하는 미전송완료 데이터의 전송 방법.
  9. 제6항에 있어서,
    상기 일 단말은, SyncML 서버이며,
    상기 타 단말은, SyncML 클라이언트인 것을 특징으로 하는 미전송완료 데이터의 전송 방법.
  10. 제9항에 있어서,
    상기 정보는,
    상기 SyncML 서버가 상기 SyncML 클라이언트로부터 전송 요청한 데이터가 정상적으로 수신되었다는 결과를 받은 시점까지의 데이터에 대한 정보인 것을 특징으로 하는 미전송완료 데이터의 전송 방법.
  11. 미전송완료 데이터의 전송을 위하여, 프로세서를 구비한 통신 시스템에,
    일 단말에서 타 단말로 전송될 데이터를 최대 전송 허용 용량에 맞춰 부분 전송하는 기능;
    상기 데이터의 전송이 중간에 종료되면, 상기 타 단말이 마지막으로 유효하게 전송된 부분 데이터의 용량 및 세션에 관한 정보를 저장하는 기능;
    현재 세션 종료 후 다음 세션이 시작될 때, 상기 타 단말이 상기 정보를 상기 일 단말로 전송하여, 재개시 세션임을 인지시키는 기능; 및
    상기 일 단말이 전송이 중단된 데이터를 찾아 중단된 시점의 부분 데이터부터 이어서 상기 타 단말로 전송하는 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
  12. 미전송완료 데이터의 전송을 위하여, 프로세서를 구비한 통신 시스템에,
    일 단말에서 타 단말로 전송될 데이터를 최대 전송 허용 용량에 맞춰 부분 전송하는 기능;
    상기 데이터의 전송이 중간에 종료되면, 상기 일 단말이 마지막으로 유효하게 전송된 부분 데이터의 용량 및 세션에 관한 정보를 저장하는 기능;
    현재 세션 종료 후 다음 세션이 시작될 때, 상기 일 단말이 상기 정보를 상기 타 단말로 전송하여, 재개시 세션임을 인지시키는 기능; 및
    상기 일 단말이 전송이 중단된 데이터를 찾아 중단된 시점의 부분 데이터부터 이어서 상기 타 단말로 전송하는 기능
    을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020080013943A 2007-02-16 2008-02-15 서버와 클라이언트 간의 미전송완료 데이터의 전송 방법 KR20080076835A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070016673 2007-02-16
KR20070016673 2007-02-16

Publications (1)

Publication Number Publication Date
KR20080076835A true KR20080076835A (ko) 2008-08-20

Family

ID=39690284

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080013943A KR20080076835A (ko) 2007-02-16 2008-02-15 서버와 클라이언트 간의 미전송완료 데이터의 전송 방법

Country Status (3)

Country Link
US (1) US20100077024A1 (ko)
KR (1) KR20080076835A (ko)
WO (1) WO2008100114A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101146307B1 (ko) * 2008-12-04 2012-05-21 한국전자통신연구원 데이터 동기화 시스템 및 그 방법
KR20170066579A (ko) * 2015-03-24 2017-06-14 후아웨이 테크놀러지 컴퍼니 리미티드 단말기 시스템, 단말기, 및 시스템을 업그레이드하기 위한 방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7570668B2 (en) * 2001-10-03 2009-08-04 Nokia Corporation Data synchronization
JP5539005B2 (ja) * 2010-05-13 2014-07-02 キヤノン株式会社 情報処理装置及びその方法
US8935317B2 (en) * 2010-06-23 2015-01-13 Microsoft Corporation Dynamic partitioning of applications between clients and servers
CN102291453B (zh) * 2011-08-09 2017-04-26 中兴通讯股份有限公司 一种数据同步的方法及装置
US8375124B1 (en) * 2011-10-06 2013-02-12 Google Inc. Resumable upload for hosted storage systems
JP5958490B2 (ja) * 2014-03-31 2016-08-02 コニカミノルタ株式会社 ウェブシステム、ウェブサーバ、データ配信方法、およびコンピュータプログラム
JP2015197759A (ja) * 2014-03-31 2015-11-09 富士通株式会社 情報処理装置、情報処理方法およびプログラム
IL242353B (en) * 2015-10-29 2021-01-31 Verint Systems Ltd System and method for soft failovers for proxy servers
CN108737364A (zh) * 2018-03-26 2018-11-02 上海好世环境科技有限公司 适应连接设备的后台系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6862617B1 (en) * 1998-10-12 2005-03-01 Microsoft Corp. System and method for synchronizing objects between two devices
US6401239B1 (en) * 1999-03-22 2002-06-04 B.I.S. Advanced Software Systems Ltd. System and method for quick downloading of electronic files
US7155521B2 (en) * 2001-10-09 2006-12-26 Nokia Corporation Starting a session in a synchronization system
US7039663B1 (en) * 2002-04-19 2006-05-02 Network Appliance, Inc. System and method for checkpointing and restarting an asynchronous transfer of data between a source and destination snapshot
CN1685685A (zh) * 2002-09-25 2005-10-19 皇家飞利浦电子股份有限公司 管理流播会话的通信系统和方法
US7461319B2 (en) * 2003-04-04 2008-12-02 Sun Microsystems, Inc. System and method for downloading files over a network with real time verification
US7275177B2 (en) * 2003-06-25 2007-09-25 Emc Corporation Data recovery with internet protocol replication with or without full resync

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101146307B1 (ko) * 2008-12-04 2012-05-21 한국전자통신연구원 데이터 동기화 시스템 및 그 방법
KR20170066579A (ko) * 2015-03-24 2017-06-14 후아웨이 테크놀러지 컴퍼니 리미티드 단말기 시스템, 단말기, 및 시스템을 업그레이드하기 위한 방법
US10268471B2 (en) 2015-03-24 2019-04-23 Huawei Technologies Co., Ltd. Method for upgrading terminal system, terminal, and system

Also Published As

Publication number Publication date
US20100077024A1 (en) 2010-03-25
WO2008100114A1 (en) 2008-08-21

Similar Documents

Publication Publication Date Title
KR20080076835A (ko) 서버와 클라이언트 간의 미전송완료 데이터의 전송 방법
JP4842690B2 (ja) アプリケーション管理プログラム、アプリケーション管理方法およびアプリケーション管理装置
US8171171B2 (en) Data synchronization method and system between devices
US20070208782A1 (en) Updating of Data Processing and Communication Devices
US8539107B2 (en) Personal information management data synchronization
US8112549B2 (en) Alert mechanism for notifying multiple user devices sharing a connected-data-set
KR100937163B1 (ko) 데이터베이스 데이터의 동기화
JP5662405B2 (ja) ユーザ装置をプロビジョニングするシステム及び方法
US6920486B2 (en) Method and apparatus for enabling synchronizing data in different devices having different capabilities and unmatched data fields
US7788352B2 (en) System and method for servicing a user device
JP4829316B2 (ja) 中断された同期プロセスに対処してデータを同期させる方法、装置、システム
KR100557192B1 (ko) 서버와 클라이언트간에 데이터 동기화 시 비정상 종료된경우 데이터 전송 방법 및 그 시스템.
US20150347552A1 (en) Synchronization system for multiple client devices
US20070016632A1 (en) System and method for synchronizing between a user device and a server in a communication network
WO2007112673A1 (en) The method of device capability information negotiation, the method, system and device of synchronization
US20110040829A1 (en) Method and apparatus for remote management of device
EP1496430A1 (en) Communication terminal software updating method, communication terminal, and software updating method
CN101360127A (zh) 文件更新方法及传输系统
JP2010509813A (ja) 通知メッセージ処理方法および装置
JP2001216187A (ja) 装置間でデータを一致させるための方法および装置
CN114138895A (zh) 多数据源的数据同步方法、装置、计算机设备和存储介质
JP2004178353A (ja) 情報端末,コンテンツ取得プログラム
JP2003219094A (ja) データ送受信システムおよびその方法
JPH10336242A (ja) データ通信システム
JP2000165474A (ja) データ通信装置および方法ならびにデータ通信プログラムを記録した記録媒体

Legal Events

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