KR20140010187A - 파일 동기화 방법 및 장치 - Google Patents

파일 동기화 방법 및 장치

Info

Publication number
KR20140010187A
KR20140010187A KR1020137033562A KR20137033562A KR20140010187A KR 20140010187 A KR20140010187 A KR 20140010187A KR 1020137033562 A KR1020137033562 A KR 1020137033562A KR 20137033562 A KR20137033562 A KR 20137033562A KR 20140010187 A KR20140010187 A KR 20140010187A
Authority
KR
South Korea
Prior art keywords
file
file list
server
synchronization
snapshot
Prior art date
Application number
KR1020137033562A
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 KR20140010187A publication Critical patent/KR20140010187A/ko

Links

Images

Classifications

    • 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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

본 발명은 통신 기술 분야에 관한 것으로, 보다 상세하게는, 파일 동기화 방법 및 장치에 관한 것이다. 파일 동기화 방법은, 제1 파일 목록 스냅샷(snapshot)을 획득하는 단계로서, 상기 제1 파일 목록 스냅샷은 최종 동기화가 종료된 때에 저장된 로컬 파일 목록의 정보를 포함하는, 상기 획득하는 단계, 제2 파일 목록 스냅샷을 획득하기 위하여 상기 제1 파일 목록 스냅샷과 최근 로컬 파일 목록의 정보를 비교하는 단계로서, 상기 제2 파일 목록 스냅샷은 상기 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하는, 상기 비교하는 단계, 파일 목록 스냅샷 요청을 서버로 전송하는 단계, 상기 서버로부터 전송된 제3 파일 목록 스냅샷을 수신하는 단계로서, 상기 제3 파일 목록 스냅샷은 상기 서버의 파일 목록의 정보를 포함하는, 상기 수신하는 단계 및 상기 제2 파일 목록 스냅샷 및 상기 제3 파일 목록 스냅샷에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하고, 상기 동기화될 파일의 식별자 및 오퍼레이션에 따라 상기 서버와의 파일 동기화를 수행하는 단계를 포함한다. 본 발명을 통해, 동기화 장치와 서버 간의 양방향 동기화가 구현될 수 있으며, 이에 따라 사용자 경험이 향상된다.

Description

파일 동기화 방법 및 장치{FILE SYNCHRONIZATION METHOD AND DEVICE}
본 발명은 통신 기술 분야에 관한 것으로, 보다 상세하게는, 파일 동기화 방법 및 장치에 관한 것이다.
인터넷 기술의 발전과 함께 점점 더 많은 사용자들이 단말기의 파일을 관리하기 위해 파일 동기화(file synchronization)를 선호함에 따라, 사용자는 다른 장소에서 또 다른 단말기에서 동기화하고 파일을 서버에 제때 업데이트할 수 있으며, 이는 사용자로 하여금 서버로부터 가장 최신 파일 정보를 얻도록 한다는 점에서 편리하다.
종래의 파일 동기화 기술에서는, 사용자가 단말기의 동기화 디렉토리 내의 파일 상에서 사용자가 업데이트 오퍼레이션을 수행한 후에, 추가, 삭제 등의 업데이트 스테이트(state)를 결정하기 위해, 단말기는 로컬 동기화 디렉토리 상 전체 스캔을 한번 수행하여, 스캔으로 얻은 파일 각각의 정보를 인증용 서버로 전송한다. 파일이 업데이트될 경우, 파일은 서버에 동기화된다. 동기화의 문제점은, 단말기와 서버 간의 양방향 동기화, 즉, 단말기 내 서버로의 업데이트 및 서버 내 단말기로의 업데이트가 동시에 이루어지는 동기화를 구현할 수 없다는 것에 있다. 여기서, 서버 내 업데이트는 서버와 다른 단말기의 상호 작용 후의 업데이트일 수 있고, 또한 서버 상 작업의 업데이트일 수 있다.
본 발명의 실시예는, 서버 및 동기화 장치 간의 양방향 동기화를 구현할 수 있는, 파일 동기화 방법 및 장치를 제공한다.
본 발명의 일 실시예는, 제1 파일 목록 스냅샷(snapshot)을 획득하는 단계로서, 상기 제1 파일 목록 스냅샷은 최종 동기화가 종료된 때에 저장된 로컬 파일 목록의 정보를 포함하는, 상기 획득하는 단계, 제2 파일 목록 스냅샷을 획득하기 위하여 상기 제1 파일 목록 스냅샷과 최근 로컬 파일 목록의 정보를 비교하는 단계로서, 상기 제2 파일 목록 스냅샷은 상기 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하는, 상기 비교하는 단계, 파일 목록 스냅샷 요청을 서버로 전송하는 단계, 상기 서버로부터 전송된 제3 파일 목록 스냅샷을 수신하는 단계로서, 상기 제3 파일 목록 스냅샷은 상기 서버의 파일 목록의 정보를 포함하는, 상기 수신하는 단계, 및 상기 제2 파일 목록 스냅샷 및 상기 제3 파일 목록 스냅샷에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하고, 상기 동기화될 파일의 식별자 및 오퍼레이션에 따라 상기 서버와의 파일 동기화를 수행하는 단계를 포함하는 파일 동기화 방법을 제공한다.
본 발명의 일 실시예는, 제1 파일 목록 스냅샷(snapshot)을 획득하도록 구성된 제1 획득 유닛으로서, 상기 제1 파일 목록 스냅샷은 최종 동기화가 종료된 때에 저장된 로컬 파일 목록의 정보를 포함하는, 상기 제1 획득 유닛, 제2 파일 목록 스냅샷을 획득하기 위하여, 상기 제1 획득 유닛에 의하여 획득된 상기 제1 파일 목록 스냅샷과 최근 로컬 파일 목록의 정보를 비교하도록 구성된 제2 획득 유닛으로서, 상기 제2 파일 목록 스냅샷은 상기 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하는, 상기 제2 획득 유닛, 파일 목록 스냅샷 요청을 서버로 전송하도록 구성된 전송 유닛, 상기 서버로부터 전송된 제3 파일 목록 스냅샷을 수신하도록 구성된 수신 유닛으로서, 상기 제3 파일 목록 스냅샷은 상기 서버의 파일 목록의 정보를 포함하는, 상기 수신 유닛, 및 상기 제2 획득 유닛에 의해 획득된 상기 제2 파일 목록 스냅샷 및 상기 수신 유닛에 의해 수신된 상기 제3 파일 목록 스냅샷에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하고, 상기 동기화될 파일의 식별자 및 오퍼레이션에 따라 상기 서버와의 파일 동기화를 수행하도록 구성된, 동기화 유닛을 포함하는 동기화 장치를 제공한다.
본 발명의 실시예에 의해 제공되는 상술한 기술적 해결책으로부터 알 수 있듯이, 본 발명의 실시예에서, 제2 파일 목록 스냅샷은 최근 파일 목록의 업데이트 오퍼레이션을 포함하고, 제3 파일 목록 스냅샷은 서버의 파일 목록의 정보를 포함하고, 제2 파일 목록 스냅샷 및 제3 파일 목록 스냅샷에 따라 결정된 동기화될 파일의 오퍼레이션은 로컬 파일 목록 내 파일의 업데이트 오퍼레이션 및 서버의 파일 목록 내 파일의 업데이트 오퍼레이션을 포함한다. 따라서, 동기화 장치와 서버 간의 양방향 동기화는 동기화될 파일의 식별자 및 오퍼레이션에 따라 수행될 수 있다.
본 발명 또는 종래 기술의 실시예에 따른 기술적 해결책을 보다 명확하게 설명하기 위하여, 이하에서는 본 발명 또는 종래 기술을 설명하기 위한 참조 도면들을 간략하게 설명한다. 보다 명확하게는, 이하 설명의 참조 도면들은 단지 본 발명의 일부 실시예들만 보여줄 뿐이며, 당업자는 창조의 수고 없이 이 참조 도면들로부터 다른 도면을 도출할 수 있다.
도 1은 본 발명의 일 실시예에 의하여 제공되는 파일 동기화 방법의 플로차트이다.
도 2는 본 발명의 일 실시예에 의하여 제공되는 파일 동기화 방법의 시그널링 플로차트이다.
도 3은 본 발명의 일 실시예에 의해 제공되는 동기화 장치의 구조도이다.
이하에서는 본 발명의 실시예에서 참조된 도면들에 관하여 본 발명의 실시예에 따른 기술적 해결책을 명확하고 완전하게 설명한다. 보다 명확하게는, 이하 설명의 실시예는 본 발명의 모든 실시예라기보다 단지 일부에 불과하다. 본 발명의 실시예를 기초로 하여 창조의 노력 없이 당업자에 의해 얻어지는 모든 다른 실시예들은 본 발명의 보호 범위에 속한다.
도 1은 본 발명의 일 실시예에 따른 파일 동기화 방법의 플로차트를 나타낸다. 본 실시예에서, 바람직하게는, 동기화 장치, 즉, 파일 동기화의 수행 주체로 단말기(terminal)이 사용된다. 본 실시예는 구체적으로 이하의 단계들을 포함한다.
101: 제1 파일 목록 스냅샷(snapshot)을 획득한다.
구체적으로, 단말기가 제1 파일 목록 스냅샷을 획득하며, 제1 파일 목록 스냅샷은 최종 동기화가 종료된 때에 저장된 로컬 파일 목록의 정보를 포함하고, 정보란 파일 목록 내 여러 파일들의 정보를 의미한다. 본 발명의 일 실시예에서, 파일 목록 스냅샷이란 특정 시점의 파일 목록의 이미지 정보를 의미한다. 파일 목록 스냅샷은 주로 파일 목록 정보 및 파일 스테이트(file state)를 포함하며, 파일 스테이트는 ‘최초(initial)’ 스테이트로 설정될 수 있고, 파일의 추후 오퍼레이션을 결정하기 위하여, 파일 스테이트는 이후의 비교 과정 중에 파일 목록 내에서 파일의 업데이트 오퍼레이션을 반영하는데 사용될 수 있다.
102: 제2 파일 목록 스냅샷을 획득하기 위하여 제1 목록 스냅샷과 최근 로컬 파일 목록을 비교한다.
구체적으로, 단말기는 단말기의 로컬 파일 목록을 스캔하고, 로컬 파일 목록을 스캐닝하여 획득한 최근 로컬 파일 목록과 제1 파일 목록 스냅샷의 정보를 비교하여, 제1 파일 목록 스냅샷에 관한 로컬 파일 목록의 완료된 업데이트 오퍼레이션을 획득하며, 업데이트 오퍼레이션이란 로컬 파일 추가(Local File Add), 로컬 파일 삭제(Local File Delete) 또는 로컬 파일 변경(Local File Modify)과 같이, 파일 목록 스냅샷 내 파일의 업데이트 작업(operation)을 의미하고, 단말기는 로컬 파일 목록의 업데이트 오퍼레이션을 제2 파일 목록 스냅샷에 추가하며, 제2 파일 목록 스냅샷은 업데이트된 제1 파일 목록 스냅샷 또는 재생성된 파일 목록 스냅샷일 수 있다.
103: 파일 목록 스냅샷 요청을 서버로 전송한다.
구체적으로, 서버의 파일 목록의 정보를 획득하기 위하여 단말기가 파일 목록 스냅샷 요청을 서버로 전송한다.
104: 서버로부터 전송된 제3 파일 목록 스냅샷을 수신한다.
구체적으로, 단말기가 서버로부터 전송된 제3 파일 목록 스냅샷을 수신하며, 제3 파일 목록 스냅샷은, 서버가 파일 목록 스냅샷 요청을 수신한 후에 생성되고, 서버의 파일 목록의 정보를 포함한다.
또한, 최근의 동기화에 있어서 단말기의 최종 동기화 종료한 때부터 서버로 파일 목록 스냅샷 요청을 전송한 때까지의 기간 동안 서버가 다른 단말기와 동기화 오퍼레이션을 수행할 수 있기 때문에, 서버 내의 파일 정보가 업데이트된다. 따라서, 서버의 파일 목록의 정보는 업데이트 정보를 포함할 수 있다.
105: 제2 파일 목록 스냅샷 및 제3 파일 목록 스냅샷에 따라, 동기화될 파일의 식별자(identifier) 및 오퍼레이션을 결정하고, 동기화될 파일의 식별자 및 오퍼레이션에 따라 서버와의 파일 동기화를 수행한다.
구체적으로, 단말기가 제2 파일 목록 스냅샷과 제3 파일 목록 스냅샷을 비교하여 서버의 파일 목록 내 완료된 업데이트 오퍼레이션을 결정한다. 따라서, 제2 파일 목록 스냅샷 및 서버의 파일 목록의 완료된 업데이트 오퍼레이션에 포함된 로컬 파일 목록의 완료된 업데이트 오퍼레이션에 따라, 동기화될 파일의 식별자 및 오퍼레이션이 결정되며, 업데이트될 파일의 오퍼레이션은 업로드, 다운로드, 재 명명(rename) 또는 삭제를 포함한다.
바람직하게는, 제2 파일 목록 스냅샷 및 서버의 파일 목록의 업데이트 오퍼레이션에 포함된 로컬 파일 목록의 업데이트 오퍼레이션에 따라, 단말기가 오퍼레이션 카테고리를 결정하고, 동기화될 파일의 식별자 및 오퍼레이션을 결정하기 위하여, 오퍼레이션 카테고리에 따라 로컬 파일 목록의 업데이트 오퍼레이션과 서버의 파일 목록의 업데이트 오퍼레이션을 병합한다.
동기화될 파일의 식별자 및 오퍼레이션을 결정한 후에, 단말기는 동기화될 파일의 식별자 및 오퍼레이션에 따라 서버와의 파일 동기화 오퍼레이션을 수행한다.
상술한 내용에서 알 수 있듯이, 본 실시예에서, 제2 파일 목록 스냅샷은 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하고, 제3 파일 목록 스냅샷은 서버의 파일 목록의 정보를 포함하고, 제2 파일 목록 스냅샷 및 제3 파일 목록 스냅샷에 따라 결정된, 동기화될 파일의 오퍼레이션은 로컬 파일 목록의업데이트 오퍼레이션 및 서버의 파일 목록 내 파일의 업데이트 오퍼레이션을 모두 포함한다. 따라서, 동기화 장치와 서버 간의 양방향 동기화는 동기화될 파일의 식별자 및 오퍼레이션에 따라 수행될 수 있다.
도 2는 본 발명의 일 실시예에 의해 제공되는 파일 동기화 방법의 시그널링 흐름을 나타낸다. 본 실시예에서, 바람직하게는, 단말기가 동기화 장치로 사용된다. 본 실시예는 구체적으로 이하의 단계를 포함한다.
201: 로그인 요청(login request)를 전송한다.
구체적으로, 단말기가 서버로 로그인 요청을 전송하며, 로그인 요청은 사용자 식별자(user identifier)를 포함하고, 사용자 식별자는 사용자 이름 또는 비밀번호일 수 있다. 로그인 요청은 단말기 식별자를 더 포함할 수 있으며, 동일한 사용자 이름을 사용하여 동시에 다수의 단말기가 로그인하는 경우, 서버는 단말기 식별자에 따라 단말기를 식별할 수 있다.
202: 로그인 인증을 수행한다.
구체적으로, 로그인 요청을 수신한 후에, 서버가 로그인 요청 내 사용자 식별자를 획득하고, 사용자 데이터베이스 정보에 질의하여 사용자 식별자의 승인을 인증하고, 단말기로 인증 결과를 전송한다. 서로 다른 단말기를 식별하기 위해, 서버는 단말기 식별자를 인증할 수 있다.
203: 로그인 응답을 리턴한다.
구체적으로, 단말기가 서버로부터 전송된 인증 결과를 수신하며, 인증 결과는 로그인 실패 또는 로그인 성공일 수 있다. 로그인이 성공한 후에, 단말기는 인증 디렉토리(authentication directory)를 설정하고, 동시에, 단말기는, 네트워크 통신 제한 등의 서비스 요구를 고려하여 동기화 모드(synchronization mode)를 더 설정할 수 있다. 동기화 모드는 단방향(one-way) 동기화(단방향 업로드 동기화 및 단방향 다운로드 동기화를 포함), 양방향(two-way) 동기화 또는 선택적(selective) 동기화를 포함한다. 단방향 동기화는, 동기화 프로세스 상 단말기에서 서버로 또는 서버에서 단말기로 동시에 업데이트가 수행되는 것을 의미하고; 양방향 동기화란, 단말기 및 서버 간에 양 방향의 방식으로 동기화가 수행되는 것을 의미하고; 선택적 동기화란, 사용자가 선택적으로 파일을 동기화할 수 있도록 하는 것, 예를 들어, 특정 서브디렉토리 또는 특정 종류의 파일만 동기화할 수 있도록 하는 것을 의미한다.
204: 제1 파일 목록 스냅샷을 획득한다.
구체적으로, 로그인이 성공한 후에, 단말기는 제1 파일 목록 스냅샷을 획득하며, 제1 파일 목록 스냅샷은 단말기와 서버 간의 최종 동기화가 끝난 후에 저장된 파일 목록의 정보를 포함하고, 로컬에서 정보는 단말기에 저장될 수 있다. 따라서, 단말기는 제1 파일 목록 스냅샷을 로컬에서 직접 읽을 수 있다. 또한, 제1 파일 목록 스냅샷은 파일 식별자(file identifier), 파일 경로(file path), 파일 생성 시간(file creation time), 파일 또는 디렉토리(file or directory), 또는 파일 스테이트(file state)를 포함할 수 있으며, 파일 식별자는 파일 이름 또는 다른 파일의 식별 정보일 수 있고; 파일 스테이트는 파일 목록 내 파일의 업데이트 오퍼레이션을 반영하는데 사용될 수 있다. 더하여, 제1 파일 목록 스냅샷은 버전 넘버(version number)를 더 포함할 수 있으며, 버전 넘버는 최종 동기화가 끝날 경우 단말기 및 서버에서 동기화될 디렉토리 내의 파일 목록의 정보를 식별한다.
단말기가 동기화를 처음 수행하는 경우, 즉, 최종 동기화 프로세스가 존재하지 않고, 제1 파일 목록 스냅샷이 단말기에 존재하지 않는 경우; 또는, 제1 파일 목록 스냅샷이 단말기에 존재하는 경우라도, 제1 파일 목록 스냅샷이 읽히지 않는 경우, 예를 들어, 제1 파일 목록 스냅샷이 손실 또는 손상된 경우, 단말기는 로컬 동기화 디렉토리 내에서 바로 파일 및 디렉토리를 스캔하여 제1 파일 목록 스냅샷을 복구해야 한다는 점에 유의해야 한다.
예를 들면, 이하는 제1 파일 목록 스냅샷의 일 예이다.
file identifier file path file creation time file or directory file state
1.txt 1319162967 0 initial
2.txt 1319163850 0 initial
Hello 1319199057 1 initial
a.txt Hello 1313916412 0 initial
위의 예에서, 제1 파일 목록 스냅샷은 ‘1.txt’, ‘1.txt’, 및 Hello 디렉토리의 ‘a.txt’ 등 파일과 관련된 정보를 포함하고; 각각의 기록은 파일 식별자, 파일 경로, 파일 생성 시간, 파일 또는 디렉토리, 및 파일 스테이트를 포함하며, 파일 또는 디렉토리 행에서, ‘0’은 파일을 나타내고 ‘1’은 디렉토리를 나타내며; 파일 스테이트는 ‘initial’로 최초로 설정된다.
205: 제1 비교를 수행하고 제2 파일 목록 스냅샷을 획득한다.
단말기는 로컬 파일 목록을 스캔하고, 제1 파일 목록 스냅샷의 정보(예를 들어, 파일 식별자, 파일 경로, 파일 생성 시간, 파일 또는 디렉토리, 또는 파일 스테이트)로 로컬 파일 목록을 스캔하여 얻은 파일에 관련된 정보(예를 들어, 파일 식별자, 파일 경로, 파일 생성 시간, 파일 또는 디렉토리, 또는 파일 스테이트)를 비교하여, 최근 파일의 정보와 대응하는 제1 파일 목록 스냅샷의 정보를 비교함으로써 최근 파일의 변경을 판별하고, 제2 파일 목록 스냅샷을 생성하며, 제2 파일 목록 스냅샷은 업데이트된 제1 파일 목록 스냅샷 또는 재생성된 스냅샷일 수 있다.
제2 파일 목록 스냅샷은 로컬 파일 목록의 업데이트 오퍼레이션을 포함한다. 바람직하게는, 파일 각각의 업데이트 오퍼레이션은 제2 파일 목록 스냅샷의 ‘파일 스테이트’ 행에 기록되고, 동시에, 파일 스테이트는 ‘initial’ 스테이트에서 업데이트 오퍼레이션으로 변경되며, 업데이트 오퍼레이션은 로컬 파일 추가, 로컬 파일 삭제 또는 로컬 파일 변경을 포함한다.
추가적으로, 최근 로컬 파일 목록의 업데이트 오퍼레이션은 제1 파일 목록 스냅샷에 기록되며, 즉, 업데이트된 제1 파일 목록 스냅샷은 제2 파일 목록 스냅샷으로 사용될 수 있다. 구체적으로, 제1 파일 목록 스냅샷이 대응하는 파일의 정보를 포함할 경우, 제1 파일 목록 스냅샷의 파일에 관한 파일 스테이트가 변경되며; 제1 파일 목록 스냅샷이 대응하는 파일 의 정보를 포함하지 않을 경우, 파일에 관한 기록이 제1 파일 목록 스냅샷에 추가되고, 파일의 스테이트는 업데이트 오퍼레이션으로 설정된다.
일 예로써, 상술한 예에 이어, 단말기의 업데이트 오퍼레이션이: ‘1.txt’ 파일을 삭제하는 단계, ‘2.txt’를 ‘2-rename.txt’로 재 명명하는 단계, 및 ‘Hello’ 디렉토리를 ‘Hello-rename’으로 재 명명하는 단계를 포함한다는 가정 하에, 이하에서는 스캔을 수행하여 단말기로부터 얻은 최근 동기화 디렉토리 내 파일의 정보 및 디렉토리를 보여준다.
file identifier file path file creation time file or directory
2-rename.txt 1319163850 0
Hello-rename 1319199057 1
a.txt \Hello-rename 1313916412 0
‘2-rename.txt’의 파일 정보가 스캔될 경우, 단말기는 파일에 관한 기록이 제1 파일 목록 스냅샷에 존재하지 않는다는 것을 알아낸 후에; 단말기는 제1 파일 목록 스냅샷에 기록을 추가하고 ‘Local Add(local_add)’에 파일의 스테이트를 설정한다. ‘Hello-rename’ 디렉토리의 ‘a.txt’ 파일이 스캔될 경우, 제1 파일 목록 스냅샷에 ‘Hello-rename\a.txt’의 기록이 없기 때문에, 단말기는 제1 파일 목록 스냅샷에 기록을 추가하고 ‘Local Add(local_add)’에 파일의 스테이트를 설정한다. ‘Hello-rename’ 디렉토리 내의 모든 파일의 스캔이 완료될 경우, 단말기는 제1 파일 목록 스냅샷에서 ‘Hello-rename’의 기록을 찾을 수 없고; 이후에, 단말기는 제1 파일 목록 스냅샷에 ‘Hello-rename’의 기록을 추가하고 또한 ‘Local Add(local_add)’ 스테이트를 업데이트한다.
동기화 디렉토리 내의 최근 파일 및 디렉토리가 완전히 스캔된 후에, 제1 파일 목록 스냅샷의 업데이트 스테이트가 없는 기록은 모두 ‘Local Delete(local_del)’로 표시된다. 따라서, 제1 비교가 종료된 후, 업데이트될 제1 파일 목록 스냅샷에 포함된 변경 정보는 아래와 같다:
file identifier file path file creation time file or directory file state
1.txt 1319162967 0 local_del
2.txt 1319163850 0 local_del
Hello 1319199057 1 local_del
a.txt \Hello 1313916412 0 local_del
2-rename.txt 1319163850 0 local_add
Hello-rename 1319199057 1 local_add
a.txt \Hello-rename 1313916412 0 local_add
제1 비교 이후에, 업데이트될 제1 파일 목록 스냅샷, 즉, 제2 파일 목록 스냅샷은, 로컬 파일 목록 내 파일의 업데이트 오퍼레이션을 포함한다.
206: 파일 목록 스냅샷 요청을 전송한다.
구체적으로, 서버의 파일 목록의 최근 정보를 획득하기 위하여, 단말기는 서버로 파일 목록 스냅샷을 전송한다.
207: 제3 파일 목록 스냅샷을 생성한다.
구체적으로, 단말기로부터 전송된 파일 목록 스냅샷 요청을 수신한 후에, 서버는 서버의 파일 목록의 정보에 따라 제3 파일 목록 스냅샷을 생성하며, 제3 파일 목록 스냅샷은 서버의 파일 목록의 정보를 포함하고, 보다 상세하게는, 파일 식별자, 파일 경로, 파일 생성 시간, 파일 또는 디렉토리, 또는 파일 스테이트를 포함할 수 있으며; 최초 파일 스테이트는 ‘initial’ 스테이트일 수 있다.
단말기의 최종 동기화 종료로부터 최근 동기화까지의 기간 동안 다른 단말기에 대해 서버가 동기화 오퍼레이션을 수행하지 않고 있을 경우, 서버의 동기화 디렉토리 내 파일 목록의 정보는 변경 없이 유지된다. 단말기의 최종 동기화 종료로부터 최근 동기화까지의 기간 동안 다른 단말기에 대해 서버가 동기화 오퍼레이션을 수행해왔을 경우, 서버의 동기화 디렉토리 내 파일의 정보가 변경되고, 이후에 제2 파일 목록 스냅샷은 파일 목록의 업데이트 정보를 포함한다.
208: 제3 파일 목록 스냅샷을 리턴한다.
구체적으로, 제3 파일 목록 스냅샷을 생성한 후에, 서버는 단말기로 제3 파일 목록 스냅샷을 전송한다.
209: 제3 파일 목록 스냅샷을 획득한다.
구체적으로, 단말기는 서버로부터 전송된 제3 파일 목록 스냅샷을 수신 및 획득한다.
210: 제2 비교를 수행하고, 동기화될 파일의 식별자 및 오퍼레이션을 결정한다.
제3 파일 목록 스냅샷을 획득한 후에, 단말기는 제2 파일 목록 스냅샷을 제3 파일 목록 스냅샷과 비교하여, 서버 추가 오퍼레이션(Server Add Operation), 서버 삭제 오퍼레이션(Server Delete Operation), 서버 변경 오퍼레이션(Server Modify Operation) 또는 다른 오퍼레이션 등과 같은 서버의 파일 목록의 업데이트 오퍼레이션을 결정한다. 따라서, 동기화될 파일의 식별자 및 오퍼레이션은 제2 파일 목록 스냅샷에 포함된 로컬 파일 목록의 업데이트 오퍼레이션 및 서버의 파일 목록의 업데이트 오퍼레이션에 따라 결정되며, 동기화될 파일의 오퍼레이션은 업로드(Upload), 다운로드(Download), 재 명명(Rename) 또는 삭제(Delete)를 포함한다.
구체적으로, 제3 파일 목록 스냅샷은 버전 넘버(version number)를 더 포함할 수 있으며, 버전 넘버는 최종 동기화가 종료된 경우 서버의 동기화 디렉토리 내 파일 목록의 버전 정보를 식별하고, 서버가 최근 동기화와 최종 동기화 사이에 다른 단말기에 대해 동기화 오퍼레이션을 수행해 왔을 경우, 서버의 파일 목록이 업데이트되고, 이후에 버전 넘버가 변경된다. 이와 같이, 단말기 내 제1 파일 목록 스냅샷은 버전 넘버를 포함할 수 있으며, 버전 넘버는 최종 동기화가 종료된 경우 로컬 동기화 디렉토리 내 파일 목록의 버전 정보를 식별하고, 최종 동기화 종료 시에는 로컬 디렉토리 내 파일 목록의 정보가 서버의 동기화 디렉토리 내 파일 목록의 정보와 일치하기 때문에, 최종 동기화 종료 시에 버전 넘버는 또한 서버의 동기화 디렉토리 내 파일 목록의 버전 정보를 기록한다. 즉, 서버가 다른 단말기와 동기화 오퍼레이션을 수행해 오지 않았을 경우, 제1 파일 목록 스냅샷의 버전 넘버는 제3 파일 목록 스냅샷의 버전 넘버와 동일하다.
단말기는 단말기의 제1 파일 목록 스냅샷의 버전 넘버와 서버로부터 획득한 제3 파일 목록 스냅샷의 버전 넘버를 비교하여, 두 개의 버전 넘버가 동일할 경우, 최근 동기화와 최종 동기화 사이에 서버가 다른 단말기에 대해 동기화를 수행하지 않았다는 것, 즉, 서버의 동기화 디렉토리 내 파일 목록이 변경 없이 유지된다는 것을 의미한다. 동시에, 제2 파일 목록 스냅샷의 파일 목록의 업데이트 오퍼레이션에 따라, 단말기는 동기화될 파일의 식별자 및 오퍼레이션을 결정할 수 있다.
구체적으로, 단말기는 먼저 제2 파일 목록 스냅샷의 업데이트 오퍼레이션을 분류하여, 로컬 추가(Local Add, local_add), 로컬 삭제(Local Delete, local_del) 또는 로컬 변경(Local Modify, local_modify) 등의 오퍼레이션 카테고리를 결정한다. 몇몇 파일 스테이트가 논리적으로 병합될 수 있기 때문에, 대응하는 파일 오퍼레이션을 결정하기 위하여, 상술한 카테고리의 파일 스테이트는 관련 병합 규칙에 따라 병합되고; 한편 파일 스테이트가 병합될 수 없을 경우, 파일 오퍼레이션은 파일 스테이트에 따라 바로 결정된다. 예를 들어, 로컬 파일의 재 명명 오퍼레이션에 있어서, 제 2 파일 목록 스냅샷은 원본 파일의 로컬 삭제(Local Delete, local_del) 오퍼레이션뿐만 아니라 재 명명된 파일의 로컬 추가(Local Add, local_add) 오퍼레이션도 포함한다. 동시에, ‘local_del’ 및 ‘local_add)를 병합하도록 결정하고 재 명명 파일(renameFile) 오퍼레이션을 결정하기 위해, 원본 파일의 관련 정보는 재 명명된 파일의 관련 정보와 비교될 수 있다. 이 경우, 원본 파일 상의 재 명명 파일 오퍼레이션을 수행하도록 하는 요청이 서버로 전송될 수 있고, 서버는 단지 원본 파일 상의 재 명명 오퍼레이션만을 수행함으로써 서버는 단말기 내 파일에 대해 동기화를 수행할 수 있다. 병합이 수행되지 않을 경우, 먼저 서버로 원본 파일을 삭제하도록 하는 오퍼레이션 요청을 전송하고, 이후에는 재 명명된 파일 추가 요청을 전송할 필요가 있다. 원본 파일을 삭제하도록 하는 오퍼레이션 요청에 따라 서버는 먼저 원본 파일을 삭제해야 하고, 이후에, 재 명명 파일 추가 요청에 따라, 단말기에 의해 업로드된 재 명명 파일을 수신해야 한다. 따라서, 파일 스테이트의 병합은 파일 동기화의 효율을 향상시킬 수 있다.
두 개의 버전 넘버가 다를 경우, 최근 동기화와 최종 동기화 사이에 서버가 다른 단말기에 대해 동기화를 수행해 왔다는 것, 즉, 서버의 동기화 디렉토리 내 파일 목록이 변경되었다는 것을 의미한다. 동시에, 제2 파일 목록 스냅샷 및 제3 파일 목록 스냅샷에 따라, 단말기는 동기화될 파일의 식별자 및 오퍼레이션을 결정한다. 구체적으로, 제2 파일 목록 스냅샷과 제3 파일 목록 스냅샷을 비교한 후에, 단말기는 먼저 서버의 파일 목록의 업데이트 오퍼레이션을 결정하고, 이후에 제2 파일 목록 스냅샷 내 파일 목록의 업데이트 오퍼레이션 및 서버의 파일 목록의 업데이트 오퍼레이션 등의 경우에 따라, 버전 넘버가 동일할 경우 동기화될 파일의 식별자 및 오퍼레이션을 결정하는 동일한 방법을 이용하여, 동기화될 파일의 식별자 및 오퍼레이션을 결정한다.
또한, 본 실시예는 단지 몇 가지 간단한 병합 규칙과 파일 오퍼레이션을 열거할 뿐이다. 파일 변경 등의 복잡한 파일 오퍼레이션에 대해서는, 단말기가 변경될 파일을 결정하고, 사용자가 유지할 파일과 삭제할 파일을 결정한다.
211: 동기화될 파일의 식별자 및 오퍼레이션에 따라 서버에 대해 파일 동기화를 수행한다.
구체적으로, 동기화될 파일의 식별자 및 오퍼레이션을 결정한 후, 단말기는 파일 동기화 요청을 서버로 전송하며, 동기화 요청은 동기화될 파일의 오퍼레이션 정보를 포함하고; 서버는 파일 동기화 요청을 수신하고, 요청에 포함된 오퍼레이션 정보를 획득함으로써, 서버의 동기화 디렉토리 내의 파일에 대해 관련 오퍼레이션을 수행하고, 이에 따라 단말기의 동기화 디렉토리 내 파일 목록에 대해 동기화를 수행한다. 동기화가 완료된 이후에, 단말기의 파일 목록 내 업데이트는 서버에 동기화되며, 이와 같이, 서버의 파일 목록 내 업데이트는 단말기에 동기화, 즉, 결과적으로, 단말기와 서버 간의 양방향 동기화가 수행된다.
단말기가 파일 동기화 요청을 서버로 전송한 후에, 서버가 다른 단말기에 대해 파일 동기화 오퍼레이션을 수행할 경우, 즉, 서버가 다른 단말기에 대해 파일 동기화를 수행하는 스테이트에 있는 경우, 서버는 서버가 다른 단말기에 대해 파일 동기화를 수행하고 있는 것을 나타내는 스테이트를 단말기로 전송할 수 있다. 따라서, 동시에, 단말기는 서버가 다른 단말기에 대해 파일 동기화를 수행하고 있는 것을 나타내는 스테이트를 수신할 수 있고, 서버와의 파일 동기화 오퍼레이션을 보류할 수 있다. 또한, 서버와의 파일 동기화 오퍼레이션이 보류된 이후에, 단말기는 특정 시간 간격(예를 들어, 30초) 내에 파일 동기화 요청을 서버로 전송할 수 있고; 또는 단말기는 서버가 아이들(idle) 스테이트에 있음을 나타내는 메시지를 서버로부터 수신하고, 이후에 파일 동기화 요청을 서버로 전송함으로써, 서버와의 파일 동기화 오퍼레이션을 수행한다.
예를 들어, 생성된 동기화될 파일의 식별자 및 오퍼레이션은 아래와 같이 가정할 수 있다:
file identifier operation
1.txt removefile
2.txt renamefile
‘1.txt’ 및 ‘2.txt’의 오퍼레이션은 파일 삭제(Delete File) 오퍼레이션이고, 이후에 단말기는 아래와 같은 하이퍼텍스트 전송 프로토콜(HTTP: HyperText Transfer Protocol) 요청을 서버로 전송한다:
POST http://syncbox.dbank.com/app/pc/disk.removefile.php
HTTP/1.1 NSP-Auth:AccessToken ClientID=3d4e901399d4c0a9aeae4727
Host:syncbox.dbank.com
Path=%2F&files=["1%2Etxt"]
HTTP/1.1 200 ok
{"action":"true", "successList":[{"name":"1.txt"}]}
POST http://syncbox.dbank.com/app/pc/disk.removefile.php
HTTP/1.1 NSP-Auth:AccessToken ClientID=3d4e901399d4c0a9aeae4727
Host:syncbox.dbank.com
Path=%2F&files=["1%2Etxt"]
HTTP/1.1 200 ok
{"action":"true", "successList":[{"name":"2.txt"}]}
요청을 수신한 후에, 서버는, 요청에 포함된 ‘파일 삭제(removefile) 1.txt’ 및 ‘removefile 2.txt’ 정보에 따라, 서버에서 동기화될 디렉토리 내의 ‘1.txt’ 및 ‘2.txt’ 정보를 삭제한다. 다른 파일 및 오퍼레이션에 대해, 단말기는 유사한 파일 동기화 요청을 전송하여 서버와의 동기화를 완료할 수 있다.
단말기 및 서버의 동기화 디렉토리 내 파일의 동기화 과정이 성공하면 , 단말기는 서버 또는 단말기의 동기화 디렉토리 내 파일 목록의 스냅샷을 더 저장하고(이 경우, 서버와 단말기의 동기화 디렉토리 내 파일 목록은 서로 동일하다), 이후의 동기화 중에 스냅샷을 제1 파일 목록 스냅샷으로 사용한다. 더하여, 제1 파일 목록 스냅샷의 버전 넘버가 재생성되고, 서버의 동기화 디렉토리 내 파일 목록의 버전 넘버 또한 업데이트 되어, 재생성된 버전 넘버가 단말기 및 서버의 동기화 디렉토리 내 파일 목록 간의 동일성을 나타내도록 한다.
본 실시예에서 알 수 있듯이, 단말기는, 2회의 비교를 거쳐, 동기화될 파일의 식별자 및 오퍼레이션을 결정하고, 동기화될 파일의 식별자 및 오퍼레이션에 따라 서버와의 동기화를 수행한다. 구체적인 동기화 프로세스에 있어서, 단말기는, 업로드 요청, 다운로드 요청, 재 명명 요청 또는 삭제 요청 등, 대응하는 오퍼레이션 요청을, 동기화될 파일의 오퍼레이션에 따라 서버로 전송하고, 서버는 수신한 관련 오퍼레이션 요청에 따라 대응하는 프로세스를 수행한다. 서버는 동기화 프로세스 전반에 걸쳐 동기화될 파일의 식별자 및 오퍼레이션을 결정할 필요는 없으며, 이와 같은 동기화 방법은 서버의 프로세스 부담을 효율적으로 줄일 수 있다.
본 실시예에서, 상술한 설명을 통해 알 수 있듯이, 제2 파일 목록 스냅샷은 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하고, 제3 파일 목록 스냅샷은 서버의 파일 목록의 정보를 포함하고, 제2 파일 목록 스냅샷 및 제3 파일 목록 스냅샷에 따라 결정된 동기화될 파일의 오퍼레이션은 로컬 파일 목록 내 파일의 업데이트 오퍼레이션 및 서버의 파일 목록 내 파일의 업데이트 오퍼레이션을 모두 포함한다. 따라서, 동기화 장치와 서버 간의 양방향 동기화는 동기화될 파일의 식별자 및 오퍼레이션에 따라 수행될 수 있다.
이에 따라, 도 3은, 본 발명의 다른 실시예에 의해 제공되는 동기화 장치를 보여주며, 장치는 이하를 포함한다:
제1 획득 유닛(first acquisition unit)(308)은 제1 파일 목록 스냅샷을 획득하도록 구성되며, 제1 파일 목록 스냅샷은 최종 동기화 종료 시 저장된 로컬 파일 목록의 정보를 포함한다;
제2 획득 유닛(second acquisition unit)(309)은 제1 획득 유닛(308)에 의해 획득된 제1 파일 목록 스냅샷과 최근 로컬 파일 목록의 정보를 비교하여 제2 파일 목록 스냅샷을 획득하도록 구성되며, 제2 파일 목록 스냅샷은 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하며, 구체적으로, 동기화 장치는, 로컬 파일 목록을 스캔하고, 로컬 파일 목록을 스캔하여 얻은 파일에 관한 정보와 제1 파일 목록 스냅샷을 비교하고, 최근 파일의 정보와 제1 파일 목록 스냅샷의 대응하는 정보를 비교하여 최근 파일의 변경을 판별하고, 제2 파일 목록 스냅샷을 생성하며, 제2 파일 목록 스냅샷은 업데이트된 제1 파일 목록 스냅샷 또는 재생성된 스냅샷일 수 있다;
전송 유닛(sending unit)(310)은, 서버의 파일 목록의 최근 정보를 획득하기 위해, 파일 목록 스냅샷 요청을 서버로 전송하도록 구성된다;
수신 유닛(receiving unit)(311)은 서버로부터 전송된 제3 파일 목록 스냅샷을 수신하도록 구성되며, 제3 파일 목록 스냅샷은 서버의 파일 목록의 정보를 포함한다; 그리고
동기화 유닛(synchronization unit)(312)은, 제2 획득 유닛(309)에 의해 획득된 제2 파일 목록 스냅샷 및 수신 유닛(311)에 의해 수신된 제3 파일 목록 스냅샷에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하고, 동기화될 파일의 식별자 및 오퍼레이션에 따라 서버에 대해 파일 동기화를 수행하도록 구성된다.
상술한 동기화 장치는, 서버와 데이터 상호 작용을 수행하는 단말기일 수 있다. 도 3은 본 발명의 일 실시예에 의해 제공되는 단말기의 구조를 더 보여주며, 단말기는 적어도 하나의 프로세서(processor)(301), 적어도 하나의 네트워크 인터페이스(network interface)(304), 저장 장치(storage device)(305), 및 컴포넌트 간의 연결 및 통신을 수행하도록 구성된 적어도 하나의 통신 버스(communication bus)(302)를 포함할 수 있다. 단말기는 사용자와 상호 작용을 수행하도록 구성된 사용자 인터페이스(user interface)(303)를 더 포함할 수 있다. 저장 장치(305)는:
다양한 기본 시스템 서비스를 프로세싱하고 하드웨어에 기초한 작업을 수행하도록 구성된 오퍼레이팅 시스템(operating system)(306); 및
로컬 파일 목록의 획득된 업데이트 오퍼레이션 및 서버의 파일 목록의 업데이트 오퍼레이션에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하고, 동기화될 파일의 식별자 및 오퍼레이션에 따라 서버에 대해 파일 동기화를 수행하도록 구성된 어플리케이션 유닛(application unit)(307)을 포함할 수 있다. 어플리케이션 유닛(307)은 구체적으로 이하의 유닛들을 포함할 수 있다:
제1 획득 유닛(first acquisition unit)(308)은 제1 파일 목록 스냅샷을 획득하도록 구성되며, 제1 파일 목록 스냅샷은 최종 동기화 종료 시 저장된 로컬 파일 목록의 정보를 포함한다;
제2 획득 유닛(second acquisition unit)(309)은 제1 획득 유닛(308)에 의해 획득된 제1 파일 목록 스냅샷과 최근 로컬 파일 목록의 정보를 비교하여 제2 파일 목록 스냅샷을 획득하며, 제2 파일 목록 스냅샷은 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하며, 구체적으로, 단말기가 로컬 파일 목록을 스캔하고, 로컬 파일 목록을 스캔하여 얻은 파일에 관한 정보와 제1 파일 목록 스냅샷을 비교하고, 최근 파일의 정보와 제1 파일 목록 스냅샷의 대응하는 정보를 비교하여 최근 파일의 변경을 판별하고, 제2 파일 목록 스냅샷을 생성하며, 제2 파일 목록 스냅샷은 업데이트된 제1 파일 목록 스냅샷 또는 재생성된 스냅샷일 수 있다.
전송 유닛(310)은, 서버의 파일 목록의 최근 정보를 획득하기 위해, 파일 목록 스냅샷 요청을 서버로 전송하도록 구성된다;
수신 유닛(311)은 서버로부터 전송된 제3 파일 목록 스냅샷을 수신하도록 구성되며, 제3 파일 목록 스냅샷은 서버의 파일 목록의 정보를 포함한다; 그리고
동기화 유닛(312)은, 제2 획득 유닛(309)에 의해 획득된 제2 파일 목록 스냅샷 및 수신 유닛(311)에 의해 수신된 제3 파일 목록 스냅샷에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하고, 동기화될 파일의 식별자 및 오퍼레이션에 따라 서버에 대해 파일 동기화를 수행하도록 구성된다.
구체적으로, 동기화 유닛(312)은 제2 획득 유닛(309)에 의해 획득된 제2 파일 목록 스냅샷 및 수신 유닛(311)에 의해 수신된 제3 파일 목록 스냅샷에 따라 서버의 파일 목록의 업데이트 오퍼레이션을 결정하고, 이후에, 서버의 파일 목록의 업데이트 오퍼레이션에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하도록 구성된다. 또한, 동기화 유닛(312)은, 서버가 다른 단말기에 대해 파일 동기화를 수행하고 있는 것을 나타내는 스테이트를 서버로부터 수신할 경우, 서버와의 파일 동기화 오퍼레이션을 보류하도록 더 구성된다.
본 발명의 다른 실시예에서, 장치는 이하의 유닛을 더 포함할 수 있다:
설정 유닛(setting unit)(313)은 동기화 모드를 설정하도록 구성될 수 있으며, 동기화 모드는 단방향 동기화 양방향 동기화 또는 선택적 동기화를 포함하고, 설정 유닛(313)이 특정 동기화 모드를 설정한 후에, 동기화 유닛(312)은 설정 유닛(313)에 의해 설정된 동기화 모드에 따라 서버와의 파일 동기화를 수행한다.
상술한 설명을 통해 알 수 있듯이, 본 실시예에서, 제2 파일 목록 스냅샷은 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하고, 제3 파일 목록 스냅샷은 서버의 파일 목록의 정보를 포함하고, 제2 파일 목록 스냅샷 및 제3 파일 목록 스냅샷에 따라 결정된 동기화될 파일의 오퍼레이션은 로컬 파일 목록 내 파일의 업데이트 오퍼레이션 및 서버의 파일 목록 내 파일의 업데이트 오퍼레이션 모두를 포함한다. 따라서, 동기화 장치와 서버 간의 양방향 동기화는 동기화될 파일의 식별자 및 오퍼레이션에 따라 수행될 수 있다.
상술한 단말기는 도 1 및 도 2에 도시된 방법을 수행하는 데 가담할 수 있으며, 오퍼레이션의 흐름은 여기서 다시 상세하게 설명하지 않는다.
당업자는 본 실시예의 방법의 프로세스의 전체 또는 일부가 관련 하드웨어에 명령하는 컴퓨터 프로그램에 의해 수행될 수 있다는 것을 이해할 필요가 있다. 프로그램은 판독 가능한 저장 매체에 저장될 수 있다. 프로그램 실행 시, 본 실시예의 방법의 프로세스가 수행된다. 저장 매체는 자기 디스크, 광 디스크, 읽기 전용 메모리(ROM: Read-Only Memory), 또는 랜덤 액세스 메모리(RAM: Random Access Momery)일 수 있다.
본 발명의 원리 및 수행 방법을 설명에 구체적인 예들이 사용되었다. 본 실시예의 설명은 단지 본 발명의 기술적 해결책을 이해하기 위해한 것일 뿐이다. 한편, 당업자는 본 발명의 아이디어에 따라 구체적인 수행 방법 및 적용 범위에 변화를 가할 수 있다. 결론적으로, 본 명세서의 내용은 본 발명을 제한하여 해석될 수 없다.

Claims (11)

  1. 파일 동기화 방법에 있어서,
    제1 파일 목록 스냅샷(snapshot)을 획득하는 단계로서, 상기 제1 파일 목록 스냅샷은 최종 동기화가 종료된 때에 저장된 로컬 파일 목록의 정보를 포함하는, 상기 획득하는 단계;
    제2 파일 목록 스냅샷을 획득하기 위하여 상기 제1 파일 목록 스냅샷과 최근 로컬 파일 목록의 정보를 비교하는 단계로서, 상기 제2 파일 목록 스냅샷은 상기 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하는, 상기 비교하는 단계;
    파일 목록 스냅샷 요청을 서버로 전송하는 단계;
    상기 서버로부터 전송된 제3 파일 목록 스냅샷을 수신하는 단계로서, 상기 제3 파일 목록 스냅샷은 상기 서버의 파일 목록의 정보를 포함하는, 상기 수신하는 단계; 및
    상기 제2 파일 목록 스냅샷 및 상기 제3 파일 목록 스냅샷에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하고, 상기 동기화될 파일의 식별자 및 오퍼레이션에 따라 상기 서버와의 파일 동기화를 수행하는 단계
    를 포함하는 파일 동기화 방법.
  2. 제1항에 있어서,
    상기 최근 로컬 파일 목록의 업데이트 오퍼레이션이 로컬 추가(Local Add), 로컬 삭제(Local Delete) 및 로컬 변경(Local Modify)을 포함하는, 파일 동기화 방법.
  3. 제2항에 있어서,
    상기 제2 파일 목록 스냅샷 및 상기 제3 파일 목록 스냅샷에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하는 것은 ,
    상기 제2 파일 목록 스냅샷 및 상기 제3 파일 목록 스냅샷에 따라, 상기 서버의 파일 목록의 업데이트 오퍼레이션을 결정하는 단계; 및
    상기 로컬 파일 목록의 업데이트 오퍼레이션 및 상기 서버의 파일 목록의 업데이트 오퍼레이션에 따라, 상기 동기화될 파일의 식별자 및 오퍼레이션을 결정하는 단계
    를 포함하는,
    파일 동기화 방법.
  4. 제3항에 있어서,
    상기 로컬 파일 목록의 업데이트 오퍼레이션 및 상기 서버의 파일 목록의 업데이트 오퍼레이션에 따라, 상기 동기화될 파일의 식별자 및 오퍼레이션을 결정하는 단계가,
    상기 로컬 파일 목록의 업데이트 오퍼레이션 및 상기 서버의 파일 목록의 업데이트 오퍼레이션에 따라 오퍼레이션 카테고리를 결정하는 단계;
    동기화될 파일의 식별자 및 오퍼레이션을 결정하기 위해, 상기 오퍼레이션 카테고리에 따라 상기 로컬 파일 목록의 업데이트 오퍼레이션 및 상기 서버의 파일 목록의 업데이트 오퍼레이션을 병합하는 단계
    를 포함하는,
    파일 동기화 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 동기화될 파일의 식별자 및 오퍼레이션에 따라 상기 서버와의 파일 동기화를 수행하는 것은,
    상기 서버가 다른 동기화 장치와의 파일 동기화를 수행하고 있음을 나타내는 스테이트(state)를 상기 서버로부터 수신하는 경우, 상기 서버와의 파일 동기화 오퍼레이션을 보류하는 단계를 더 포함하는,
    파일 동기화 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 동기화될 파일의 식별자 및 오퍼레이션에 의해 특정되는 오퍼레이션이 업로드, 다운로드, 재 명명(rename) 또는 삭제를 포함하는,
    파일 동기화 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    동기화 모드를 설정하는 단계로서, 상기 동기화 모드는 단방향 동기화, 양방향 동기화 또는 선택적 동기화를 포함하는 , 상기 설정하는 단계를 더 포함하는 파일 동기화 방법.
  8. 동기화 장치에 있어서,
    제1 파일 목록 스냅샷(snapshot)을 획득하도록 구성된 제1 획득 유닛으로서, 상기 제1 파일 목록 스냅샷은 최종 동기화가 종료된 때에 저장된 로컬 파일 목록의 정보를 포함하는, 상기 제1 획득 유닛;
    제2 파일 목록 스냅샷을 획득하기 위하여, 상기 제1 획득 유닛에 의하여 획득된 상기 제1 파일 목록 스냅샷과 최근 로컬 파일 목록의 정보를 비교하도록 구성된 제2 획득 유닛으로서, 상기 제2 파일 목록 스냅샷은 상기 최근 로컬 파일 목록의 업데이트 오퍼레이션을 포함하는, 상기 제2 획득 유닛;
    파일 목록 스냅샷 요청을 서버로 전송하도록 구성된 전송 유닛;
    상기 서버로부터 전송된 제3 파일 목록 스냅샷을 수신하도록 구성된 수신 유닛으로서, 상기 제3 파일 목록 스냅샷은 상기 서버의 파일 목록의 정보를 포함하는, 상기 수신 유닛; 및
    상기 제2 획득 유닛에 의해 획득된 상기 제2 파일 목록 스냅샷 및 상기 수신 유닛에 의해 수신된 상기 제3 파일 목록 스냅샷에 따라, 동기화될 파일의 식별자 및 오퍼레이션을 결정하고, 상기 동기화될 파일의 식별자 및 오퍼레이션에 따라 상기 서버와의 파일 동기화를 수행하도록 구성된 동기화 유닛
    을 포함하는 동기화 장치.
  9. 제8항에 있어서,
    상기 동기화 유닛은 구체적으로,
    상기 제2 획득 유닛에 의해 획득된 상기 제2 파일 목록 스냅샷 및 상기 수신 유닛에 의해 수신된 상기 제3 파일 목록 스냅샷에 따라, 상기 서버의 파일 목록의 업데이트 오퍼레이션을 결정하고;
    상기 로컬 파일 목록의 업데이트 오퍼레이션 및 상기 서버의 파일 목록의 업데이트 오퍼레이션 에 따라, 상기 동기화될 파일의 식별자 및 오퍼레이션을 결정하도록 구성된,
    동기화 장치.
  10. 제8항 내지 제9항 중 어느 한 항에 있어서,
    상기 동기화 유닛이,
    상기 서버가 다른 동기화 장치와의 파일 동기화를 수행하고 있는 것을 나타내는 스테이트를 상기 서버로부터 수신하는 경우, 상기 서버와의 파일 동기화 오퍼레이션을 보류하도록 더 구성되는, 동기화 장치.
  11. 제8항 내지 제10항에 있어서,
    동기화 모드를 설정하는 설정 유닛을 더 포함하고, 상기 동기화 모드는 단방향 동기화, 양방향 동기화 또는 선택적 동기화를 포함하는, 동기화 장치.
KR1020137033562A 2011-12-13 2012-06-12 파일 동기화 방법 및 장치 KR20140010187A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201110415376.5 2011-12-13
CN201110415376.5A CN102404338B (zh) 2011-12-13 2011-12-13 一种文件同步方法和装置
PCT/CN2012/076773 WO2013086842A1 (zh) 2011-12-13 2012-06-12 一种文件同步方法和装置

Publications (1)

Publication Number Publication Date
KR20140010187A true KR20140010187A (ko) 2014-01-23

Family

ID=45886124

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137033562A KR20140010187A (ko) 2011-12-13 2012-06-12 파일 동기화 방법 및 장치

Country Status (6)

Country Link
EP (1) EP2706719B1 (ko)
JP (1) JP5870193B2 (ko)
KR (1) KR20140010187A (ko)
CN (1) CN102404338B (ko)
ES (1) ES2563297T3 (ko)
WO (1) WO2013086842A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200013448A (ko) * 2018-07-30 2020-02-07 네이버 주식회사 데이터 동기화 트래픽을 최소화하기 위한 방법 및 시스템

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102404338B (zh) * 2011-12-13 2014-08-20 华为技术有限公司 一种文件同步方法和装置
CN107479911B (zh) * 2012-07-27 2021-07-16 华为终端有限公司 下载应用程序的方法、用户设备和应用服务器
CN103237007A (zh) * 2013-03-22 2013-08-07 华为技术有限公司 媒体文件更新方法及装置
CN103220358B (zh) * 2013-04-19 2016-12-28 深圳如果技术有限公司 一种多终端在线文件同步方法、系统、服务器及终端设备
CN103258018B (zh) * 2013-04-27 2016-08-10 北京金和软件股份有限公司 一种精确监控目录文件夹中文件变化的文件同步方法
CN103365688B (zh) * 2013-06-28 2018-08-31 深圳市掌讯通讯设备有限公司 一种安卓智能设备间软件自动安装与同步方法
CN103369037A (zh) * 2013-06-28 2013-10-23 深圳市掌讯通讯设备有限公司 一种安卓智能设备间数据自动同步方法
CN103473341A (zh) * 2013-09-23 2013-12-25 网易(杭州)网络有限公司 一种播放列表生成方法和设备
CN104796442B (zh) * 2014-01-17 2020-08-07 腾讯科技(深圳)有限公司 网页访问信息同步方法、装置及系统
EP3125501B1 (en) * 2014-04-15 2018-08-22 Huawei Technologies Co., Ltd. File synchronization method, server, and terminal
JP6442915B2 (ja) * 2014-08-15 2018-12-26 富士ゼロックス株式会社 通信端末、通信システム及びプログラム
US10412163B2 (en) * 2015-01-30 2019-09-10 Hitachi, Ltd. Computer system, distributed object sharing method, and edge node
CN104580533B (zh) * 2015-02-05 2018-06-19 中国农业银行股份有限公司 一种交易文件的下发方法及装置
CN106682040A (zh) * 2015-11-11 2017-05-17 中兴通讯股份有限公司 数据管理方法及装置
CN106101265A (zh) * 2016-07-26 2016-11-09 浪潮软件股份有限公司 一种在网盘和桌面端之间进行文件同步的方法
CN106302672A (zh) * 2016-08-05 2017-01-04 上海斐讯数据通信技术有限公司 网络管理系统及其数据同步方法
CN106375861A (zh) * 2016-10-10 2017-02-01 合网络技术(北京)有限公司 视频播放方法及装置
CN106657274A (zh) * 2016-11-16 2017-05-10 武汉斗鱼网络科技有限公司 对应用文件进行处理的方法及装置
CN107103192A (zh) * 2017-04-21 2017-08-29 上海联影医疗科技有限公司 医学图像处理系统及其数据管理方法
CN107819871B (zh) * 2017-11-22 2020-12-25 北京小米移动软件有限公司 应用状态确定方法及装置
CN108573014B (zh) * 2017-12-19 2021-05-28 北京金山云网络技术有限公司 一种文件同步方法、装置、电子设备及可读存储介质
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
CN108921712A (zh) * 2018-06-13 2018-11-30 泰康保险集团股份有限公司 数据处理方法、装置、介质及电子设备
CN109246245A (zh) * 2018-10-31 2019-01-18 武汉新迪数字工程系统有限公司 实现文件同步的方法、服务器、系统及存储介质
CN112084159B (zh) * 2020-07-28 2023-02-21 重庆攸亮科技股份有限公司 一种基于蓝牙通信的文件同步系统和同步方法
CN117112508B (zh) * 2023-10-20 2024-02-06 杭州美创科技股份有限公司 基于序号的文件同步方法、装置、计算机设备及存储介质
CN117290328B (zh) * 2023-11-22 2024-02-27 苏州元脑智能科技有限公司 存储系统文件并发同步方法、装置、设备及可读存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
US7035847B2 (en) * 2001-03-16 2006-04-25 Novell, Inc. Server for synchronization of files
JP4142866B2 (ja) * 2001-11-07 2008-09-03 カシオソフト株式会社 データベース同期化装置及びプログラム
US7567991B2 (en) * 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential
KR100678921B1 (ko) * 2005-10-18 2007-02-05 삼성전자주식회사 다중 서버 환경에 적합한 디바이스를 클라이언트로 하여동기화를 수행하는 방법 및 장치
CN101453418B (zh) * 2007-12-05 2011-01-12 高德软件有限公司 客户端与服务器同步的更新方法
US8503984B2 (en) * 2009-12-23 2013-08-06 Amos Winbush, III Mobile communication device user content synchronization with central web-based records and information sharing system
CN102404338B (zh) * 2011-12-13 2014-08-20 华为技术有限公司 一种文件同步方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200013448A (ko) * 2018-07-30 2020-02-07 네이버 주식회사 데이터 동기화 트래픽을 최소화하기 위한 방법 및 시스템

Also Published As

Publication number Publication date
WO2013086842A1 (zh) 2013-06-20
CN102404338B (zh) 2014-08-20
EP2706719A1 (en) 2014-03-12
JP2014524621A (ja) 2014-09-22
ES2563297T3 (es) 2016-03-14
CN102404338A (zh) 2012-04-04
EP2706719B1 (en) 2015-12-16
EP2706719A4 (en) 2014-05-07
JP5870193B2 (ja) 2016-02-24

Similar Documents

Publication Publication Date Title
KR20140010187A (ko) 파일 동기화 방법 및 장치
US20130151468A1 (en) File synchronization method and device
CN106874389B (zh) 数据的迁移方法和装置
JP5296960B2 (ja) ファイルバージョン管理装置
JP4732661B2 (ja) クライアントのデータベースとサーバーのデータベースとを同期させる方法
WO2015117426A1 (zh) 文件管理方法及装置
CN107861686A (zh) 文件存储方法、服务端和计算机可读存储介质
CN103634406A (zh) 文件同步方法及其终端
WO2017092351A1 (zh) 缓存数据的更新方法及装置
US9635092B2 (en) Method for processing shared file and cloud storage server
US10191915B2 (en) Information processing system and data synchronization control scheme thereof
US20150227605A1 (en) Information processing terminal, synchronization control method, and computer-readable recording medium
CN105808274A (zh) 软件升级方法、系统及对应的客户端与服务器
JP4205323B2 (ja) 配信システム、配信サーバとその配信方法、配信プログラム
WO2016004768A1 (zh) 一种社交关系管理的方法、设备及系统
CN103220358A (zh) 一种多终端在线文件同步方法、系统、服务器及终端设备
WO2017166791A1 (zh) 应用程序备份方法及装置
KR20130011130A (ko) 메모 데이터의 동기화를 위한 메모 동기화 시스템, 모바일 시스템 및 메모 동기화 방법
CN105450682A (zh) 一种用于数据同步保存、向客户端同步数据的方法、装置和系统
JP2016212656A (ja) 情報処理装置、端末、情報処理装置と端末を有するシステム、情報処理方法及びプログラム
CN112003943A (zh) 语音数据同步方法和装置
WO2017114365A1 (zh) 归档邮件附件的方法和云存储服务器
CN112243017A (zh) 一种文件上传的方法和装置
CN111770153A (zh) 一种对象下载方法、装置及电子设备和存储介质
JP2009129195A (ja) バックアップサーバ、移動機、およびこれらを用いた通信システム、ならびにバックアップ方法

Legal Events

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