KR101960339B1 - 파일 동기화 방법 - Google Patents

파일 동기화 방법 Download PDF

Info

Publication number
KR101960339B1
KR101960339B1 KR1020140142850A KR20140142850A KR101960339B1 KR 101960339 B1 KR101960339 B1 KR 101960339B1 KR 1020140142850 A KR1020140142850 A KR 1020140142850A KR 20140142850 A KR20140142850 A KR 20140142850A KR 101960339 B1 KR101960339 B1 KR 101960339B1
Authority
KR
South Korea
Prior art keywords
file
chunk
hash value
server
terminal device
Prior art date
Application number
KR1020140142850A
Other languages
English (en)
Other versions
KR20160046649A (ko
Inventor
윤주석
김용태
김형구
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020140142850A priority Critical patent/KR101960339B1/ko
Priority to US14/588,119 priority patent/US9697225B2/en
Priority to CN201410853440.1A priority patent/CN105530284B/zh
Publication of KR20160046649A publication Critical patent/KR20160046649A/ko
Application granted granted Critical
Publication of KR101960339B1 publication Critical patent/KR101960339B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

단말 장치의 파일 동기화 방법이 개시된다. 본 발명의 일 실시예에 따른 파일 동기화 방법은 복수의 청크 파일(chunk file)로 분할된 파일에 변경사항이 발생했는지 여부를 판단하는 단계, 파일에 변경사항이 발생되었다고 판단되면, 분할 된 복수의 청크 파일 각각에 대한 해시값을 산출하는 단계, 산출된 해시값으로 구성된 해시값 리스트를 서버에 전송하는 단계, 해시값 리스트에 포함된 해시값 중 서버에 저장되어 있지 않은 해시값에 대응되는 청크 파일에 대한 전송 요청을 수신하는 단계 및 전송 요청에 응답하여 청크 파일을 서버로 전송하는 단계를 포함한다.

Description

파일 동기화 방법 {METHOD FOR SYNCHRONIZING FILE}
본 발명은 파일 동기화 방법에 관한 것으로 보다 상세하게는 데이터를 복수의 청크 파일(chunk file) 형태로 분할하여 저장하고, 동일한 청크 파일이 중복되어 저장되는 것을 방지함으로써 저장 공간을 효율적으로 이용하고 보다 빠른 속도로 동기화를 이룰 수 있도록 하는 파일 동기화 방법에 관한 것이다.
대량의 데이터를 클라우드, 서버 장치 등 다양한 저장 환경에 저장하고 이를 개인용 단말 장치와 동기화시키는 다양한 방법이 널리 이용되고 있다. 예를 들어, 델타 동기화(delta sync) 방식의 경우 단말 장치에 기 저장된 파일의 변경 내용을 서버와 동기화할 때 전체 파일이 아닌 파일의 변경된 블록만 보냄으로써 동기화에 소요되는 시간을 최소화 시키는 효과를 달성할 수 있었다.
이 밖에도 메타데이터 동기화(meta sync), 중복 제거 동기화(deduplication sync) 등의 기술이 널리 활용되고 있다.
다만, 종래의 다양한 동기화 방식의 경우 기능별로 독립적인 방식으로 존재할 뿐 통합된 형태의 동기화 방식이 없어, 각각의 동기화 방식의 장점을 모두 활용할 수 없다는 문제점이 있었다.
본 발명은 상술한 문제점을 해결하기 위해 안출된 것으로, 본 발명의 목적은 다양한 방식의 동기화 방식을 하나로 통합하여 전송 효율을 극대화 시키고 동기화를 위한 전송 데이터를 최소화시킬 수 있는 파일 동기화 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 파일은 암호화된 청크 파일(chunk file) 형태로 저장함으로써 보안성을 높일 수 있는 파일 동기화 방법을 제공하는데 있다.
본 발명의 또 다른 목적은 동기화를 위한 청크 파일의 해시 테이블과 실제 청크 파일이 저장되는 서버를 분리함으로써 데이터 처리를 분산시켜 서버 장치와 사용자 단말 장치간 동기화를 수행할 때 소요되는 시간을 최소화시킬 수 있는 파일 동기화 방법을 제공하는데 있다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해 될 수 있을 것이다.
상술한 목적을 달성하기 위한 본 발명의 일 실시예에 따른 단말 장치의 파일 동기화 방법은 복수의 청크 파일(chunk file)로 분할된 파일에 변경사항이 발생했는지 여부를 판단하는 단계, 상기 파일에 변경사항이 발생되었다고 판단되면, 상기 분할 된 복수의 청크 파일 각각에 대한 해시값을 산출하는 단계, 상기 산출된 해시값으로 구성된 해시값 리스트를 서버에 전송하는 단계, 상기 해시값 리스트에 포함된 해시값 중 상기 서버에 저장되어 있지 않은 해시값에 대응되는 청크 파일에 대한 전송 요청을 수신하는 단계 및 상기 전송 요청에 응답하여 청크 파일을 상기 서버로 전송하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 상기 전송 요청에 응답하여 청크 파일을 상기 서버로 전송하는 단계는, 사용자 인증 요청에 응답하여 상기 서버로부터 수신한 인증키로 상기 청크 파일을 암호화하는 단계를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 파일에 발생된 변경사항은. 새로운 청크 파일이 상기 파일에 포함되거나, 상기 파일을 구성하는 복수의 청크 파일 중 적어도 하나의 청크 파일이 수정되는 것일 수 있다.
본 발명의 또 다른 실시예에 따른 서버의 파일 동기화 방법은, 단말 장치에 기 저장된 복수의 청크 파일에 대한 해시값을 수신하는 단계, 기 저장된 해시 테이블과 상기 단말 장치로부터 수신한 복수의 청크 파일에 대한 해시값을 비교하는 단계, 상기 해시 테이블에 미포함된 해시값에 대응되는 청크 파일에 대한 전송 요청 신호를 상기 단말 장치에 전송하는 단계 및 상기 전송 요청 신호에 따라 상기 단말 장치에 저장된 청크 파일 중 상기 해시 테이블에 미포함된 해시값에 대응되는 청크 파일을 수신하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 상기 단말 장치로부터 사용자 인증 요청을 수신하는 단계; 및 상기 사용자 인증 요청에 포함된 사용자 인증 정보에 대응되는 해시 테이블, 파일 테이블 및 메타 테이블을 생성하는 단계를 더 포함하고, 상기 파일 테이블은 상기 청크 파일로 파일을 생성하는데 필요한 정보를 포함하고, 상기 메타 테이블은 상기 파일의 메타데이터 정보를 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 청크 파일이 수신되면, 상기 해시 테이블, 상기 파일 테이블 및 상기 메타 테이블을 업데이트하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 단말 장치의 파일 동기화 방법은, 서버에 기 저장된 복수의 파일에 대한 메타데이터 정보를 포함하는 메타데이터 테이블을 수신하는 단계; 상기 수신된 메타데이터 테이블과 단말 장치에 기 저장된 파일의 메타데이터를 비교하여 수정사항이 발생된 파일을 검출하는 단계; 상기 서버로 상기 수정사항이 발생된 파일의 청크 파일에 대한 전송을 요청하는 단계; 및 상기 서버로부터 상기 수정사항이 발생된 파일의 청크 파일을 수신하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 상기 수정사항이 발생된 파일의 상기 청크 파일이 수신되면, 상기 수정사항이 발생된 파일의 메타데이터를 업데이트하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 서버로부터 상기 메타데이터 테이블을 수신하는 단계는, 상기 서버로 사용자 인증 정보를 전송하는 단계; 상기 사용자 인증 정보를 이용한 사용자 인증 절차가 성공하면, 상기 사용자 인증 정보에 대응되는 메타데이터 테이블을 수신하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 수정사항이 발생된 파일의 청크 파일을 수신하는 단계는, 상기 서버로부터 청크 파일로 파일을 생성하기 위한 파일 테이블을 수신하는 단계; 및 상기 파일 테이블을 이용하여 상기 수정사항이 발생된 파일의 청크 파일과 상기 단말 장치에 기 저장된 복수의 청크 파일로 완성된 파일을 생성하는 단계를 더 포함할 수 있다.
본 발명의 일 실시예에 따르면, 상기 서버로 상기 수정사항이 발생된 파일의 청크 파일에 대한 전송을 요청하는 단계는, 상기 서버에 기 저장된 복수의 청크 파일에 대한 해시값을 수신하는 단계; 단말 장치에 기 저장된 해시 테이블과 상기 서버로부터 수신한 복수의 청크 파일에 대한 해시값을 비교하는 단계; 상기 해시 테이블에 미포함된 해시값에 대응되는 청크 파일에 대한 전송 요청 신호를 상기 서버에 전송하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 서버의 파일 동기화 방법은, 서버에 기 저장된 복수의 청크 파일에 대한 해시값을 산출하는 단계 상기 산출된 해시값으로 구성된 해시값 리스트를 단말 장치로 전송하는 단계; 상기 해시값 리스트에 포함된 해시값 중 상기 단말 장치에 저장되어 있지 않은 해시값에 대응되는 청크 파일에 대한 전송 요청을 수신하는 단계; 상기 전송 요청에 응답하여 청크 파일을 상기 단말 장치로 전송하는 단계를 포함한다.
본 발명의 일 실시예에 따르면, 상기 전송 요청에 응답하여 상기 청크 파일을 상기 단말 장치로 전송하는 단계는, 사용자 인증 요청에 포함된 사용자 인증 정보로 인증키를 생성하는 단계; 및 상기 생성된 인증키로 상기 청크 파일을 암호화하는 단계를 포함할 수 있다.
본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램은 컴퓨터 장치와 결합하여, 복수의 청크 파일(chunk file)로 분할된 파일에 변경사항이 발생했는지 여부를 판단하는 단계; 상기 파일에 변경사항이 발생되었다고 판단되면, 상기 분할 된 복수의 청크 파일 각각에 대한 해시값을 산출하는 단계; 상기 산출된 해시값으로 구성된 해시값 리스트를 서버에 전송하는 단계; 상기 해시값 리스트에 포함된 해시값 중 상기 서버에 저장되어 있지 않은 해시값에 대응되는 청크 파일에 대한 전송 요청을 수신하는 단계; 및 상기 전송 요청에 응답하여 청크 파일을 상기 서버로 전송하는 단계; 를 실행한다.
본 발명의 또 다른 실시예에 따른 컴퓨터 프로그램은, 컴퓨터 장치와 결합하여, 단말 장치에 기 저장된 복수의 청크 파일에 대한 해시값을 수신하는 단계; 기 저장된 해시 테이블과 상기 단말 장치로부터 수신한 복수의 청크 파일에 대한 해시값을 비교하는 단계; 상기 해시 테이블에 미포함된 해시값에 대응되는 청크 파일에 대한 전송 요청 신호를 상기 단말 장치에 전송하는 단계; 및 상기 전송 요청 신호에 따라 상기 단말 장치에 저장된 청크 파일 중 상기 해시 테이블에 미포함된 해시값에 대응되는 청크 파일을 수신하는 단계를 실행한다.
상술한 바와 같이, 두 장치간의 동기화를 위해 파일 전체를 전송하는 것이 아니고, 파일을 복수의 청크 파일로 분할한 후 청크 파일에 대한 해시값을 전송하여 동기화 프로세스를 진행함으로써 동기화에 필요한 전송량을 최소화할 수 있을 뿐만 아니라 동기화에 소요되는 시간을 최소화 시킬 수 있다는 효과를 달성할 수 있다.
도 1을 참조하여 본 발명의 일 실시예에 따른 파일 동기화 방법을 설명하기 위한 흐름도이다.
도 2는 본 발명의 일 실시예에 따라 청크 파일에 대한 해시값을 이용하여 동기화 프로세스를 진행하는 방법을 설명하기 위한 도면이다.
도 3은 파일 테이블 및 메타데이터 테이블을 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에 따라 또 다른 단말 장치에서 동기화가 이루어지는 과정을 설명하기 위한 흐름도이다.
도 5는 메타데이터 테이블을 이용하여 또 다른 단말 장치를 동기화하는 과정을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따라 사용자 계정 별로 메타데이터 테이블, 파일 테이블 및 해시 테이블을 생성하여 운영하는 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 단말 장치(700)를 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
이하, 도 1을 참조하여 본 발명의 일 실시예에 파일 동기화 방법을 설명한다. 본 실시예는 연산 수단을 구비한 컴퓨팅 장치에 의하여 수행 될 수 있다. 상기 컴퓨팅 장치는, 예를 들어 본 발명의 다른 실시예에 따른 파일 동기화 장치일 수 있다. 상기 파일 동기화 장치의 구성 및 동작에 대하여는 추후 자세히 설명한다. 이하, 설명의 편의를 위하여, 본 실시예에 따른 파일 동기화 방법의 각 동작을 실시하는 주체는 그 기재를 생략한다.
사용자는 원하는 시점마다 혹은 기 설정한 시간 간격마다 단말 장치에 저장된 데이터가 다른 단말 장치와 동기화되도록 할 수 있다(S110). 여기에서, 단말 장치는 데스크탑 컴퓨터, 워크스테이션, PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 텔레비전, 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크(telematics network)를 구성하는 다양한 전자 장치들 중 하나, 스마트 카드, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공될 수 있다.
또는, 대용량의 저장 공간을 가지는 서버 장치에 데이터를 백업한 후 주기적인 동기화를 통해 사용자 단말 장치에 저장된 데이터가 동일하게 서버 장치에 저장되도록 할 수도 있다.
동기화가 시작되면, 사용자 단말 장치에 기 저장된 복수의 파일 데이터 중 변경 사항이 있는 파일이 있는지 여부를 판단한다(S120). 구체적으로, 변경 사항이 있었는지 여부는 파일의 메타데이터를 확인하여 판단할 수 있다. 메타데이터에는 최종 업데이트 시간 등 파일의 히스토리에 관한 정보가 포함되므로 이를 확인하면 변경사항이 발생한 파일이 있는지 여부를 확인할 수 있게 된다. 한편, 파일 데이터에 발생된 변경 사항은 새로운 데이터의 추가, 삭제 또는 기존 데이터의 일부 수정 중 하나일 수 있다.
단말 장치에 기 저장된 파일 중 변경 사항이 발생된 파일이 있다고 판단되면, 변경 사항이 발생된 파일을 복수의 청크 파일로 분할한다(S130). 청크 파일이란 대용량의 파일을 일정한 크기로 분할한 파일을 의미한다. 복수의 청크 파일로 분할된 파일 데이터는 이후 파일 테이블을 통해 하나의 파일로 재조립될 수도 있다.
변경 사항이 발생된 파일이 복수의 청크 파일로 분할되면, 각각의 청크 파일에 대한 해시값(hash value)을 계산한다(S140). 청크 파일에 대한 해시값이 계산되면, 이 해시값을 서버에 전송한다(S150).
한편, 서버는 서버에 기 저장된 복수의 청크 파일 각각에 대한 해시값 정보를 포함하는 해시 테이블을 가지고 있을 수 있다. 따라서, 단말 장치에서 송부해온 복수의 청크 파일에 대한 해시값과 해시 테이블을 비교하면(S160), 서버에 저장되어 있지 않은 청크 파일이 무엇인지를 알 수 있게 된다.
예를 들어, 단말 장치에 저장된 파일이 A, B, C, D, E의 청크 파일로 분할되고 서버에는 A, B, C, D만이 저장되어 있다면 청크 파일 E에 대한 해시 값이 서버에 기 저장된 해시 테이블에 포함되어 있지 않게 되므로, 단말 장치와 서버 간의 동기화를 위해 E가 서버로 전송되어야 하는 것으로 판단할 수 있다.
단말 장치로부터 수신된 해시값과 서버에 기 저장된 해시 테이블을 비교하여 해시 테이블에 미포함된 해시값이 있는 경우, 서버가 단말 장치에 그 해시값에 대응되는 청크 파일에 대한 전송을 요청한다(S170).
이후, 단말 장치가 전송 요청 대상이 된 청크 파일을 서버에 전송함으로써 단말 장치와 서버 간에 동기화가 이루어지게 된다(S180).
상술한 바와 같이, 두 장치간의 동기화를 위해 파일 전체를 전송하는 것이 아니고, 파일을 복수의 청크 파일로 분할한 후 청크 파일에 대한 해시값을 전송하여 동기화 프로세스를 진행함으로써 동기화에 필요한 전송량을 최소화할 수 있을 뿐만 아니라 동기화에 소요되는 시간을 최소화 시킬 수 있다는 효과를 달성할 수 있다.
즉, 통상적은 청크 파일의 크기가 64MB인데 반해 청크 파일을 해시 함수에 입력하여 얻어낸 해시값의 크기는 상대적으로 매우 작은 크기이므로, 이를 전송하는데 소요되는 시간은 파일 자체를 전송하는데 비해 줄어들게 된다.
또한, 서버에 기 저장된 해시 테이블과 비교하여 해시 테이블에 미포함된 해시값에 대응되는 청크 파일만을 수신함으로써 동기화를 위해 필요한 데이터 전송량을 크게 줄일 수 있다는 효과를 달성할 수도 있다.
도 2는 본 발명의 일 실시예에 따라 청크 파일에 대한 해시값을 이용하여 동기화 프로세스를 진행하는 방법을 설명하기 위한 도면이다.
본 실시예에서는 단말 장치(210)와 서버(220)사이에 동기화가 이루어지는 것을 예로 들어 설명하나, 이에 한정되지 않으며 서로 다른 전자 장치 간에 동기화가 이루어지도록 구현할 수도 있다.
또한, 본 실시예에서 단말 장치(210)에는 제1 파일(211) 내지 제3 파일(215)이 저장되어 있고, 서버(220)의 스토리지(221)에 청크 파일 A, B, C, D가 저장되어 있는 경우를 예로 든다.
즉, 이전 단계에서 단말 장치(210)와 동기화된 서버(220)의 스토리지(221)에 청크 파일 A, B, C, D가 기 저장되어 있다는 의미는 청크 파일 A, B, C, D를 조립하여 단말 장치(210)에 저장되어 있는 제1 파일(211) 내지 제3 파일(215)을 생성할 수 있었음을 의미한다.
다만, 도 2에 도시된 도면을 살펴보면 제1 파일(211)은 “A, B, C, D, G”, 제2 파일(213)은 “B, C, D, H, I”, 제3 파일(215)는 “A, B, D, I, J” 청크 파일로 구성되어 있으므로 파일 수정에 의해 제1 파일(211)에는 새로운 청크 파일 D,G, 제2 파일(213)에는 “H, I” 및 제3 파일(215)에는 “I,J”가 추가되었음을 알 수 있다.
새로운 데이터 추가에 의해 파일이 변경되면, 변경된 제1 파일(211) 내지 제3 파일(215)의 청크 파일에 대한 해시값이 서버로 전송된다. 즉, 제1 파일(211)의 청크 파일 A, B, C, D, G, 제2 파일(213)의 청크 파일 B, C, D, H, I, 제3 파일(215)의 청크 파일 A, B, D, I, J에 대한 해시값이 서버로 전송된다.
한편, 서버(220)의 스토리지(221)에는 도 2에 도시된 바와 같이 청크 파일 A, B, C, D만이 저장되어 있으므로, 해시 테이블(223)에는 A, B, C, D에 대한 해시값 만이 포함되어 있다.
즉, 단말 장치(210)에 저장된 파일을 구성하는 제1 파일(211)의 D, G 청크 파일, 제2 파일(213)의 H, I 청크 파일 및 제3 파일(215)의 I, J 청크 파일에 대한 해시값이 해시 테이블(223)에 포함되어 있지 않으므로 단말 장치(210)에 그 청크 파일에 대한 전송을 요청한다.
이후, 서버(220)가 단말 장치(210)로부터 제1 파일(211)의 D, G 청크 파일, 제2 파일(213)의 H, I 청크 파일, 제3 파일(215)의 I, J 파일을 수신하여 스토리지(221)에 저장한다. 또한, 새로운 청크 파일이 수신되어 스토리지(221)에 저장되면 새롭게 수신된 청크 파일에 대한 해쉬값을 해시 테이블(223)에 포함시킨다.
상술한 바와 같이, 단말 장치(210)에 저장된 파일을 복수의 청크 파일로 분할하고, 분할된 청크 파일 각각에 대한 해시값을 수신한 후, 서버(220)에 기 저장되어 있지 않은 청크 파일에 대한 전송을 요청하여 동기화를 수행하면 동기화를 위해 전송되는 데이터량을 줄일 수 있을 뿐만 아니라 소요되는 시간되 최소화시킬 수 있다는 효과를 달성할 수 있다.
한편, 청크 파일 형태로 저장된 파일은 서버에 포함된 파일 테이블 및 메타데이터 테이블을 이용하여 완전한 파일로 재조립할 수 있다.
도 3은 파일 테이블 및 메타데이터 테이블을 설명하기 위한 도면이다.
서버(220)에는 전체 파일이 저장되는 것이 아니고 파일을 구성하는 복수의 청크 파일 형태로 저장되므로, 다른 단말 장치가 서버(220)로부터 청크 파일을 수신하여 하나의 파일로 조립하기 위해서는 파일 테이블(310)도 함께 전송받아야 한다.
예를 들어, 사용자가 스마트폰과 서버(220)를 동기화시켜 스마트폰에 저장된 파일을 청크 파일 형태로 서버(220)에 저장한 후, 다른 단말 장치인 태블릿 PC를 추가적으로 동기화시키고자 하는 경우, 서버(220)에 저장된 청크 파일 뿐만 아니라 청크 파일로 파일을 생성하기 위한 파일 테이블(310)도 함께 수신하여야 한다.
구체적으로, 파일 테이블(310)에는 청크 파일로 완성된 하나의 파일을 생성하기 위한 정보가 포함되어 있을 수 있다. 예를 들어, 도 3에 도시된 바와 같이 제1 파일은 A, B, C, D, E, F, G 청크 파일로 구성되며 제2 파일은 A, B, D, E, G, H, I로 구성된다는 정보가 포함되어 있을 수 있다.
따라서, 동기화 대상이 되는 다른 전자 장치가 서버(220)에 저장된 복수의 청크 파일 및 상술한 파일 테이블(310)을 함께 수신하면 완성된 파일을 생성할 수 있게 된다.
또한, 서버에는 해시 테이블(223), 파일 테이블(310) 이외에 메타데이터 테이블(320)도 함께 저장되어 있을 수 있다. 메타데이터 테이블(320)은 스토리지(221)에 저장된 청크 파일로 생성되는 파일에 대한 메타데이터를 포함한다.
구체적으로, 메타데이터 테이블(320)에는 청크 파일로 생성될 파일에 대한 각종 정보, 예를 들어 파일 ID, 파일의 소유자, 파일 크기, 생성 시기, 최종 업데이트 시기 등에 관한 정보가 포함될 수 있다.
상술한 바와 같이 청크 파일을 저장하는 서버(220)에 청크 파일로 생성될 파일의 파일 테이블(310) 및 메타데이터 테이블(320)이 함께 저장되어 있으므로, 전체 파일이 아닌 청크 파일과 상술한 복수의 테이블을 다운로드 받으면 되므로, 동기화를 위해 필요한 전송 데이터량을 줄일 수 있다는 효과를 달성할 수 있게 된다.
도 4는 본 발명의 일 실시예에 따라 또 다른 단말 장치에서 동기화가 이루어지는 과정을 설명하기 위한 흐름도이다.
본 실시예에서는 사용자가 제1 단말 장치(410)와 서버(220)를 동기화시킨 후 새로운 제2 단말 장치(420)도 동기화하는 과정을 설명한다. 사용자가 새로운 단말 장치인 제2 단말 장치(420)를 동기화하고자 하는 경우, 그 단말 장치를 통해 최초로 서버(220)에 접속하면, 서버(220)에 저장되어 있던 복수의 청크 파일, 메타데이터 테이블, 해시 테이블, 파일 테이블 등이 새로운 단말 장치인 제2 단말 장치(420)로 전송된다.
이후, 서버(220)에 저장된 복수의 청크 파일, 메타데이터 테이블, 해시 테이블, 파일 테이블에 변경사항이 발생되면 변경 사항이 제2 단말 장치(420)에 전송됨으로써 동기화가 유지된다. 이하에서는, 제1 단말 장치(410)에 저장된 파일에 변경사항이 생겨, 먼저 제1 단말 장치(410)와 서버(220)간에 변경 사항을 반영한 동기화가 이루어지고, 이후 서버(220)와 제2 단말 장치(420)간에 동기화가 이루어지는 과정을 설명한다.
제1 단말 장치(410)와 서버(220)가 동기화가 이루어진 상태에서 제1 단말 장치(410)에 저장된 파일에 변경 사항이 있는 경우, 변경 사항을 반영하여 동기화를 유지하기 위해 사용자는 자신의 사용자 계정을 이용하여 서버(220)에 사용자 인증을 요청한다(S410).
사용자 인증 요청을 수신한 서버(220)는 인증 정보를 체크하여 인증이 성공되면 인증키 및 토큰키를 생성하고(S420), 이를 사용자에게 반환한다(S430).
변경 사항이 발생된 파일을 복수의 청크 파일로 분할하고 분할된 청크 파일 각각에 대한 해시값을 산출한 후, 해시값을 서버(220)에 전송하여 서버에 저장되어 있지 않은 청크 파일만을 전송하는 과정을 상술한 내용과 동일하므로 중복되는 설명을 기재하지 않도록 한다.
동기화를 위해 서버에 전송될 청크 파일이 결정되면, 서버(220)로부터 획득한 토큰키를 이용하여 전송 대상 청크 파일을 암호화한다(S440). 이후, 암호화된 청크 파일을 서버(220)로 전송하고(S450), 서버(220)는 새로 수신된 청크 파일을 스토리지에 저장한다.
또한, 서버(220)는 사용자 계정에 대응되는 해시 테이블, 메타데이터 테이블, 파일 테이블에 대하여 변경 사항을 반영한 업데이트를 수행 한다(S460).
이후, 사용자가 제2 단말 장치(420)를 추가로 동기화하고자 하는 경우, 사용자는 제2 단말 장치(420)를 통해 사용자 인증 정보를 입력하고, 제2 단말 장치(420)는 상기 입력 된 사용자 인증 정보를 포함한 사용자 인증 요청을 서버(220)에 송신한다(S470).
사용자 인증 정보를 수신한 서버(220)는 사용자 인증 절차를 진행하여 사용자 인증이 성공하면, 업데이트된 메타데이터 테이블, 파일 테이블 및 해시 테이블 등을 제2 단말 장치(420)로 전송한다(S480).
업데이트된 각종 테이블을 수신한 제2 단말 장치(420)는 기 저장된 메타데이터 테이블과 업데이트된 메타데이터 테이블을 비교하여 변경 사항이 발생된 파일을 검출하고, 기 저장된 파일에 변경 사항을 반영하기 위한 청크 파일 전송 요청을 서버에 전달한다(S490).
전송 요청에 응답하여 서버가 새롭게 추가되거나 변경된 청크 파일을 제2 단말 장치(420)에 전송하면, 제2 단말 장치(420)가 이를 수신하여 추가되거나 변경된 청크 파일을 새롭게 저장하고, 제2 단말 장치(420)에 저장되어 있던 메타데이터 테이블 등을 업데이트함으로써 동기화가 완료된다.
상술한 바와 같이, 동기화를 위하여 전체 파일을 전송하는 것이 아니고, 우선적으로 메타데이터 테이블 정보를 서버(220)로부터 수신한 후, 변경 사항이 발생된 청크 파일에 대한 전송만을 요청함으로써 동기화를 위해 전송되는 데이터량을 최소화하고 동기화에 소요되는 시간을 최소화시킬 수 있다다.
도 5는 메타데이터 테이블을 이용하여 또 다른 단말 장치를 동기화하는 과정을 설명하기 위한 도면이다.
본 실시예에서 제1 단말 장치(410), 서버(220) 및 제2 단말 장치(420)가 동기화되어 있는 상태에서 사용자에 의해 제1 단말 장치(410)에 기 저장된 파일을 추가하거나 변경하여 다시 동기화되는 과정을 예로 들어 설명한다.
즉, 초기 제1 단말 장치(410), 서버(220) 및 제2 단말 장치(420)에 A, B, C 청크 파일로 구성된 제1 파일(411)과 A, D 청크 파일로 구성된 제2 파일(413)이 저장되어 동기화가 이루어진 상태에서, 사용자가 제1 단말 장치(410)를 통해 제1 파일(411) 및 제2 파일(413)을 수정한 경우, 수정된 내용이 서버(220)를 통해 제2 단말 장치(420)에서도 동기화가 이루어지는 과정을 설명하도록 한다.
사용자가 제1 단말 장치(410)와 서버(220)와의 동기화 요청신호를 입력하면, 제1 단말 장치(410)에 기 저장된 제1 파일(411) 및 제2 파일(413)에 변경사항이 발생되었는지 여부가 판단된다.
구체적으로, 제1 파일(411)과 제2 파일(413)의 메타데이터에 업데이트에 관한 정보가 포함되므로, 메타데이터를 통해 변경사항이 발생되었는지 여부를 판단할 수 있다.
변경사항이 발생되었다고 판단되면, 제1 파일(411)에 새롭게 포함된 청크 파일 E를 포함한 각각의 청크 파일에 대한 해시값과 제2 파일(413)에 포함된 청크 파일 각각의 해시값을 산출하여 서버(220)에 전송한다.
한편, 서버(220)에는 제1 파일(411) 및 제2 파일(413)에 대한 변경 사항이 아직 반영되어 있지 않은 상태이므로 스토리지(221)에는 기존의 제1 파일(411) 및 제2 파일(413)을 구성하는 청크 파일만이 저장되어 있다.
즉, 청크 파일 E와 F가 스토리지(221)에 저장되어 있지 않으므로 해시 테이블(223)에도 E와 F 청크 파일에 대응되는 해시값이 반영되어 있지 않은 상태이다.
따라서, 서버(220)는 제1 단말 장치(410)에 새롭게 추가된 청크 파일 E 및 F에 대한 전송을 요청한다. 제1 단말 장치(410)으로부터 새로운 청크 파일이 수신되면, 이를 스토리지(221)에 저장하고 해시 테이블(223), 파일 테이블(310) 및 메타데이터 테이블(320)을 업데이트 한다.
이후, 사용자가 제2 단말 장치(420)를 통해 서버(220)에 접속한 후 수정사항을 반영한 동기화를 요청할 수 있다. 이 경우, 사용자는 제2 단말 장치(420) 통해 자신의 사용자 계정으로 서버(220)에 접속하여 동기화를 요청하게 된다.
사용자가 제2 단말 장치(420)에서 사용자 계정으로 서버(220)에 접속하면, 사용자 계정에 대응되는 메타데이터 테이블(223)이 제2 단말 장치(420)로 전송된다. 상술한 바와 같이 메타데이터 테이블(223)에는 파일 업데이트에 관한 히스토리가 포함되어 있으므로, 이를 이용하면 어떤 파일에 변경사항이 발생했는지 여부를 판단할 수 있게 된다.
이후, 서버(220)에 저장된 복수의 청크 파일에 대한 해시값을 수신하고, 이를 제2 단말 장치(420)에 저장된 청크 파일의 해시값과 비교하여, 서버(220)에 제2 단말 장치(420)에 저장되어 있지 않은 청크 파일 E 및 F에 대한 전송을 요청함으로써 동기화가 완료된다.
한편, 상술한 실시예에서는 한명의 사용자가 자신의 계정을 통해 사용자가 사용하는 복수의 단말 장치를 상호 동기화시키는 과정에 대해 설명하였으나, 복수의 사용자에게 그에 대응되는 사용자 계정을 할당하여 동기화가 이루어지도록 할 수도 있다. 이하, 이러한 몇몇 실시예들을 설명한다.
일 실시예에서, 제1 사용자가 제1 사용자 계정을 가지고, 제2 사용자가 제2 사용자 계정을 가지며, 제1 사용자가 자신의 특정 파일 또는 일 그룹의 파일을 상기 제2 사용자에 공유 허가해 주는 경우에도 상기 설명 된 실시예가 확장 적용 될 수 있다. 이 경우, 도 4 내지 도 5에서의 제1 단말 장치(410)는, 제1 사용자가 서버(220)에 등록한 제1 사용자의 단말 장치 중 하나를 의미하고, 제2 단말 장치(420)는, 제2 사용자가 서버(220)에 등록한 제2 사용자의 단말 장치 중 하나를 의미한다. 본 실시예에 따르면, 개인 간의 파일 공유가 가능해지는 효과가 있다.
다른 실시예에서, 제1 사용자가 제1 사용자 계정을 가지고, 특정 그룹에 속한 복수의 사용자가 제2 사용자 계정을 공유하며, 제1 사용자가 자신의 특정 파일 또는 일 그룹의 파일을 상기 제2 사용자 계정을 공유하는 복수의 사용자에 공유 허가해 주는 경우에도 상기 설명 된 실시예가 확장 적용 될 수 있다. 이 경우, 도 4 내지 도 5에서의 제1 단말 장치(410)는, 제1 사용자가 서버(220)에 등록한 제1 사용자의 단말 장치 중 하나를 의미하고, 제2 단말 장치(420)는, 상기 제2 사용자 계정을 공유하는 상기 특정 그룹의 사용자가 서버(220)에 등록한 상기 특정 그룹의 사용자들의 단말 장치들 중 하나를 의미한다. 본 실시예에 따르면, 개인과 집단 간의 파일 공유가 가능해지는 효과가 있다.
또 다른 실시예에서, 제1 그룹에 속한 복수의 사용자가 제1 사용자 계정을 공유하고, 제2 그룹에 속한 복수의 사용자가 제2 사용자 계정을 공유하며, 상기 제1 사용자 계정을 공유하는 복수의 사용자 중 일인이 자신의 특정 파일 또는 일 그룹의 파일을 상기 제2 사용자 계정을 공유하는 복수의 사용자에 공유 허가해 주는 경우에도 상기 설명 된 실시예가 확장 적용 될 수 있다. 이 경우, 도 4 내지 도 5에서의 제1 단말 장치(410)는, 상기 제1 사용자 계정을 공유하는 상기 제1 그룹의 사용자가 서버(220)에 등록한 상기 제1 그룹의 사용자들의 단말 장치들 중 하나를 의미하고, 제2 단말 장치(420)는, 상기 제2 사용자 계정을 공유하는 상기 제2 그룹의 사용자가 서버(220)에 등록한 상기 특정 그룹의 사용자들의 단말 장치들 중 하나를 의미한다. 본 실시예에 따르면, 집단과 집단 간의 파일 공유가 가능해지는 효과가 있다.
도 6은 본 발명의 일 실시예에 따라 사용자 계정 별로 메타데이터 테이블, 파일 테이블 및 해시 테이블을 생성하여 운영하는 방법을 설명하기 위한 도면이다.
서버(220)에는 도 6에 도시된 바와 같이 사용자 인증키에 대응되는 복수의 해시 테이블, 파일 테이블 및 메타데이터 테이블이 저장되어 있을 수 있다.
사용자가 자신의 계정으로 서버(220)에 접속하여 추가되거나 변경된 청크 파일을 서버(220)에 업로드 하면, 그 계정에 대응되는 해시 테이블, 파일 테이블 및 메타데이터 테이블도 업데이트 된다.
사용자가 다른 단말 장치를 추가적으로 동기화하고자 하는 경우, 그 단말 장치에서 사용자 계정으로 서버(220)에 접속하여 사용자 계정에 대응되는 메타데이터 테이블, 파일 테이블 및 해시 테이블을 수신하면 변경된 파일의 청크 파일을 수신할 수 있게 되므로 실질적으로 동기화하고자 하는 단말 장치에 파일을 그대로 복사하는 것과 동일한 효과를 얻을 수 있게 된다.
예를 들어, 사용자 A가 스마트폰과 서버(220)를 동기화하고자 하는 경우 자신의 사용자 계정을 통해 서버(220)에 접속한 후, 스마트폰에 저장된 파일의 청크 파일을 서버(220)에 전송할 수 있다.
이때, 서버(220)에는 사용자 A에 대응되는 해시 테이블, 파일 테이블 및 메타데이터 테이블이 생성되어 저장된다. 이후, 사용자가 다른 단말 장치인 태블릿 PC를 추가적으로 동기화하고자 하는 경우, 태블릿 PC를 통해 자신의 사용자 계정으로 서버(220)에 접속한 후 서버(220)에 저장된 복수의 청크 파일과 해시 테이블, 파일 테이블 및 메타데이터 테이블을 수신함으로써 동기화가 이루어지게 된다.
상술한 바와 같이, 사용자 계정에 대응되는 메타데이터 테이블, 파일 테이블 및 해시 테이블 등을 생성하고 이를 기초로 동기화가 이루어지도록 하면 상술한 테이블을 수신받는 것만으로 실질적으로 파일이 전송되는 효과를 얻을 수 있으므로 물리적인 파일을 복사하여 동기화를 진행하는 것에 비해 전송되는 데이터량과 소요되는 시간을 최소화시킬 수 있다는 효과를 달성할 수 있게 된다.
도 7은 본 발명의 일 실시예에 따른 단말 장치(700)를 설명하기 위한 도면이다.
본 발명의 일 실시예에 따른 단말 장치(700)는 도 7에 도시된 구성을 포함할 수 있다.
구체적으로, 단말 장치(700)는 명령어를 수행하는 프로세서(710), 메모리(720), 패킷 전송 간격 제어 방법을 실행하기 위한 프로그램을 저장하는 저장 장치(730), 및 단말 장치(700)와 연결된 장치와 데이터 송수신을 하기 위한 네트워크 인터페이스(NIC)(740)을 포함할 수 있다.
저장 장치(730)에는 복수의 청크 파일(chunk file)로 분할된 파일에 변경사항이 발생했는지 여부를 판단하는 단계, 상기 파일에 변경사항이 발생되었다고 판단되면, 상기 분할 된 복수의 청크 파일 각각에 대한 해시값을 산출하는 단계, 상기 산출된 해시값으로 구성된 해시값 리스트를 서버에 전송하는 단계, 상기 해시값 리스트에 포함된 해시값 중 상기 서버에 저장되어 있지 않은 해시값에 대응되는 청크 파일에 대한 전송 요청을 수신하는 단계 및 상기 전송 요청에 응답하여 청크 파일을 상기 서버로 전송하는 단계를 실행하는 프로그램이 저장될 수 있으며, 상술한 프로그램이 메모리(620)에 로드된 후 프로세서(610)를 통해 수행될 수 있다.
또는 저장 장치(730)에 서버에 기 저장된 복수의 파일에 대한 메타데이터 정보를 포함하는 메타데이터 테이블을 수신하는 단계, 상기 수신된 메타데이터 테이블과 단말 장치에 기 저장된 파일의 메타데이터를 비교하여 수정사항이 발생된 파일을 검출하는 단계, 상기 서버로 상기 수정사항이 발생된 파일의 청크 파일에 대한 전송을 요청하는 단계 및 상기 서버로부터 상기 수정사항이 발생된 파일의 청크 파일을 수신하는 단계 를 실행하는 프로그램이 저장될 수 있으며, 상술한 프로그램이 메모리(620)에 로드된 후 프로세서(610)를 통해 수행될 수 있다.
한편, 상술한 실시예에서는 단말 장치가 도 7에 도시된 구성을 갖는 것으로 설명하였으나, 서버도 상술한 구성을 갖도록 구현할 수도 있다.
이 경우, 저장 장치(730)에는 단말 장치에 기 저장된 복수의 청크 파일에 대한 해시값을 수신하는 단계, 기 저장된 해시 테이블과 상기 단말 장치로부터 수신한 복수의 청크 파일에 대한 해시값을 비교하는 단계, 상기 해시 테이블에 미포함된 해시값에 대응되는 청크 파일에 대한 전송 요청 신호를 상기 단말 장치에 전송하는 단계 및 상기 전송 요청 신호에 따라 상기 단말 장치에 저장된 청크 파일 중 상기 해시 테이블에 미포함된 해시값에 대응되는 청크 파일을 수신하는 단계를 실행하는 프로그램이 저장될 수도 있다.
또는 저장 장치(730)에 서버에 기 저장된 복수의 청크 파일에 대한 해시값을 산출하는 단계, 상기 산출된 해시값으로 구성된 해시값 리스트를 단말 장치로 전송하는 단계, 상기 해시값 리스트에 포함된 해시값 중 상기 단말 장치에 저장되어 있지 않은 해시값에 대응되는 청크 파일에 대한 전송 요청을 수신하는 단계, 상기 전송 요청에 응답하여 청크 파일을 상기 단말 장치로 전송하는 단계를 포함하는 프로그램이 저장될 수도 있다.
지금까지 도 1 내지 도 7을 참조하여 설명된 본 발명의 실시예들에 따른 파일 동기화 방법은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현된 컴퓨터 프로그램의 실행에 의하여 수행될 수 있다. 상기 컴퓨터가 읽을 수 있는 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록 된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 제1 컴퓨팅 장치로부터 제2 컴퓨팅 장치에 전송되어 상기 제2 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 제2 컴퓨팅 장치에서 사용될 수 있다. 상기 제1 컴퓨팅 장치 및 상기 제2 컴퓨팅 장치는, 서버 장치, 데스크탑 피씨와 같은 고정식 컴퓨팅 장치, 노트북, 스마트폰, 태블릿 피씨와 같은 모바일 컴퓨팅 장치 및 스마트 와치, 스마트 안경과 같은 웨어러블 컴퓨팅 장치를 모두 포함한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (15)

  1. 단말 장치에서 수행되는 파일 동기화 방법에 있어서,
    복수의 파일 중에서, 제1 청크 파일에 변경사항이 발생된 제1 동기화 대상 파일과 제2 청크 파일에 변경사항이 발생된 제2 동기화 대상 파일을 결정하는 단계;
    상기 제1 동기화 대상 파일과 상기 제2 동기화 대상 파일에 포함된 복수의 청크 파일 각각에 대한 해시값을 산출하되, 상기 복수의 청크 파일은 상기 제1 청크 파일과 상기 제2 청크 파일을 포함하는, 단계;
    상기 산출된 해시값으로 구성된 해시값 리스트를 서버에 전송하는 단계;
    상기 해시값 리스트에 포함된 해시값 중 상기 서버의 해시 테이블에 미포함된 해시값에 대응되는 동기화 대상 청크 파일에 대한 전송 요청을 수신하는 단계; 및
    상기 전송 요청에 응답하여, 상기 제1 청크 파일과 상기 제2 청크 파일 중 상기 제1 청크 파일만을 상기 서버로 전송하는 단계를 포함하되,
    상기 서버에는 동기화 완료된 파일이 중복이 제거된 청크 파일 단위로 저장되고,
    상기 해시 테이블에는 상기 중복이 제거된 청크 파일에 대응되는 해시값이 포함되며,
    상기 제1 청크 파일의 해시값은 상기 제2 청크 파일의 해시값과 동일한 것을 특징으로 하는,
    단말 장치의 파일 동기화 방법.
  2. 제1항에 있어서,
    상기 제1 청크 파일만을 상기 서버로 전송하는 단계는,
    사용자 인증 요청에 응답하여 상기 서버로부터 수신한 인증키로 상기 제1 청크 파일을 암호화하는 단계를 포함하는 단말 장치의 파일 동기화 방법.
  3. 제1항에 있어서,
    상기 제1 동기화 대상 파일에 발생된 변경사항은,
    상기 제1 청크 파일이 상기 제1 동기화 대상 파일에 포함되거나, 상기 제1 동기화 대상 파일을 구성하는 복수의 청크 파일 중 상기 제1 청크 파일이 수정되는 것을 포함하는 단말 장치의 파일 동기화 방법.
  4. 서버에서 수행되는 파일 동기화 방법에 있어서,
    단말 장치에 기 저장된 제1 동기화 대상 파일과 제2 동기화 대상 파일에 포함된 복수의 청크 파일에 대한 해시값을 수신하되, 상기 제1 동기화 대상 파일은 변경사항이 발생된 제1 청크 파일을 포함하고 상기 제2 동기화 대상 파일은 변경사항이 발생된 제2 청크 파일을 포함하는, 단계;
    기 저장된 해시 테이블의 해시 값과 상기 수신된 해시값을 비교하는 단계;
    상기 비교 결과에 기초하여 상기 수신된 해시값 중에서 상기 해시 테이블에 미포함된 해시값을 선택하는 단계;
    상기 선택된 해시값에 대응되는 동기화 대상 청크 파일에 대한 전송 요청 신호를 상기 단말 장치로 전송하는 단계; 및
    상기 단말 장치로부터 상기 선택된 해시값에 대응되는 상기 제1 청크 파일만을 수신하는 단계를 포함하되,
    상기 서버는 동기화 완료된 파일을 중복이 제거된 청크 파일 단위로 저장하고,
    상기 해시 테이블은 상기 중복이 제거된 청크 파일에 대응되는 해시값을 포함하며,
    상기 제1 청크 파일의 해시값은 상기 제2 청크 파일의 해시값과 동일한 것을 특징으로 하는,
    서버의 파일 동기화 방법.
  5. 제4항에 있어서,
    상기 단말 장치로부터 사용자 인증 요청을 수신하는 단계; 및
    상기 사용자 인증 요청에 포함된 사용자 인증 정보에 대응되는 해시 테이블, 파일 테이블 및 메타 테이블을 생성하는 단계를 더 포함하고,
    상기 파일 테이블은 상기 청크 파일로 파일을 생성하는데 필요한 정보를 포함하고, 상기 메타 테이블은 상기 파일의 메타데이터 정보를 포함하는 서버의 파일 동기화 방법.
  6. 제5항에 있어서,
    상기 제1 청크 파일이 수신되면, 상기 해시 테이블, 상기 파일 테이블 및 상기 메타 테이블을 업데이트하는 단계를 더 포함하는 서버의 파일 동기화 방법.
  7. 단말 장치에서 수행되는 파일 동기화 방법에 있어서,
    서버에 기 저장된 복수의 파일에 대한 메타데이터 정보를 포함하는 메타데이터 테이블을 수신하되, 상기 복수의 파일은 제1 청크 파일에 변경사항이 발생된 제1 동기화 대상 파일과 제2 청크 파일에 변경사항이 발생된 제2 동기화 대상 파일을 포함하는, 단계;
    상기 수신된 메타데이터 테이블과 상기 단말 장치에 기 저장된 파일의 메타데이터를 비교하여 변경사항이 발생된 파일을 검출하되, 상기 검출된 파일은 상기 제1 동기화 대상 파일과 동기화될 제1 파일과 상기 제2 동기화 대상 파일과 동기화될 제2 파일을 포함하는, 단계;
    상기 서버로부터 상기 제1 청크 파일 및 상기 제2 청크 파일을 포함하는 제1 복수의 청크 파일에 대한 제1 해시값 리스트를 수신하는 단계;
    상기 제1 파일 및 상기 제2 파일에 포함된 제2 복수의 청크 파일에 대한 제2 해시값 리스트와 상기 제1 해시값 리스트를 비교하여, 상기 제2 해시값 리스트에만 미포함된 해시값에 대응되는 동기화 대상 청크에 대한 전송 요청 신호를 상기 서버로 전송하는 단계; 및
    상기 제1 청크 파일의 해시값과 상기 제2 청크 파일의 해시값이 동일한 경우, 상기 제1 청크 파일만을 상기 서버로부터 수신하는 단계를 포함하되,
    상기 서버에는 상기 복수의 파일이 중복이 제거된 청크 파일 단위로 저장되는 것을 특징으로 하는,
    단말 장치의 파일 동기화 방법.
  8. 제7항에 있어서,
    상기 제1 청크 파일이 수신되면, 상기 제1 파일의 메타데이터를 업데이트하는 단계를 더 포함하는 단말 장치의 파일 동기화 방법.
  9. 제7항에 있어서,
    상기 서버로부터 상기 메타데이터 테이블을 수신하는 단계는,
    상기 서버로 사용자 인증 정보를 전송하는 단계;
    상기 사용자 인증 정보를 이용한 사용자 인증 절차가 성공하면, 상기 사용자 인증 정보에 대응되는 메타데이터 테이블을 수신하는 단계를 더 포함하는 단말 장치의 파일 동기화 방법.
  10. 제7항에 있어서,
    상기 제1 청크 파일만을 상기 서버로부터 수신하는 단계는,
    상기 서버로부터 상기 제1 청크 파일과 연관된 파일 테이블을 수신하는 단계; 및
    상기 파일 테이블을 이용하여 상기 제1 청크 파일과 상기 제2 복수의 청크 파일로부터 상기 제1 동기화 대상 파일과 상기 제2 동기화 대상 파일을 생성하는 단계를 더 포함하는 단말 장치의 파일 동기화 방법.
  11. 삭제
  12. 서버에서 수행되는 파일 동기화 방법에 있어서,
    복수의 파일 중 제1 동기화 대상 파일과 제2 동기화 대상 파일에 포함된 복수의 청크 파일에 대한 해시값 리스트를 단말 장치로 전송하되, 상기 제1 동기화 대상 파일은 변경사항이 발생된 제1 청크 파일을 포함하고 상기 제2 동기화 대상 파일은 변경사항이 발생된 제2 청크 파일을 포함하는, 단계;
    상기 제1 청크 파일의 해시값과 상기 제2 청크 파일의 해시값이 상기 단말 장치에 저장되지 않은 경우, 상기 제1 청크 파일에 대한 전송 요청만을 수신하는 단계; 및
    상기 전송 요청에 응답하여, 상기 제1 청크 파일을 상기 단말 장치로 전송하는 단계를 포함하되,
    상기 서버는 상기 복수의 파일을 중복이 제거된 청크 파일 단위로 저장하고,
    상기 제1 청크 파일의 해시값은 상기 제2 청크 파일의 해시값과 동일한 것을 특징으로 하는,
    서버의 파일 동기화 방법.
  13. 제12항에 있어서,
    상기 제1 청크 파일을 상기 단말 장치로 전송하는 단계는,
    사용자 인증 요청에 포함된 사용자 인증 정보로 인증키를 생성하는 단계; 및
    상기 생성된 인증키로 상기 제1 청크 파일을 암호화하는 단계를 포함하는 서버의 파일 동기화 방법.
  14. 컴퓨터 장치와 결합하여,
    복수의 파일 중에서, 제1 청크 파일에 변경사항이 발생된 제1 동기화 대상 파일과 제2 청크 파일에 변경사항이 발생된 제2 동기화 대상 파일을 결정하는 단계;
    상기 제1 동기화 대상 파일과 상기 제2 동기화 대상 파일에 포함된 복수의 청크 파일 각각에 대한 해시값을 산출하되, 상기 복수의 청크 파일은 상기 제1 청크 파일과 상기 제2 청크 파일을 포함하는, 단계;
    상기 산출된 해시값으로 구성된 해시값 리스트를 서버에 전송하는 단계;
    상기 해시값 리스트에 포함된 해시값 중 상기 서버의 해시 테이블에 미포함된 해시값에 대응되는 동기화 대상 청크 파일에 대한 전송 요청을 수신하는 단계; 및
    상기 전송 요청에 응답하여, 상기 제1 청크 파일과 상기 제2 청크 파일 중 상기 제1 청크 파일만을 상기 서버로 전송하는 단계를 실행시키되,
    상기 서버에는 동기화 완료된 파일이 중복이 제거된 청크 파일 단위로 저장되고,
    상기 해시 테이블에는 상기 중복이 제거된 청크 파일에 대응되는 해시값이 포함되며,
    상기 제1 청크 파일의 해시값은 상기 제2 청크 파일의 해시값과 동일한, 컴퓨터로 판독가능한 기록 매체에 기록된 컴퓨터 프로그램.
  15. 컴퓨터 장치와 결합하여,
    단말 장치에 기 저장된 제1 동기화 대상 파일과 제2 동기화 대상 파일에 포함된 복수의 청크 파일에 대한 해시값을 수신하되, 상기 제1 동기화 대상 파일은 변경사항이 발생된 제1 청크 파일을 포함하고 상기 제2 동기화 대상 파일은 변경사항이 발생된 제2 청크 파일을 포함하는, 단계;
    서버에 기 저장된 해시 테이블의 해시 값과 상기 수신된 해시값을 비교하는 단계;
    상기 비교 결과에 기초하여 상기 수신된 해시값 중에서 상기 해시 테이블에 미포함된 해시값을 선택하는 단계;
    상기 선택된 해시값에 대응되는 동기화 대상 청크 파일에 대한 전송 요청 신호를 상기 단말 장치로 전송하는 단계; 및
    상기 단말 장치로부터 상기 선택된 해시값에 대응되는 상기 제1 청크 파일만을 수신하는 단계를 실행시키되,
    상기 서버는 동기화 완료된 파일을 중복이 제거된 청크 파일 단위로 저장하고,
    상기 해시 테이블은 상기 중복이 제거된 청크 파일에 대응되는 해시값을 포함하며,
    상기 제1 청크 파일의 해시값은 상기 제2 청크 파일의 해시값과 동일한, 컴퓨터로 판독가능한 기록 매체에 기록된 컴퓨터 프로그램.
KR1020140142850A 2014-10-21 2014-10-21 파일 동기화 방법 KR101960339B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020140142850A KR101960339B1 (ko) 2014-10-21 2014-10-21 파일 동기화 방법
US14/588,119 US9697225B2 (en) 2014-10-21 2014-12-31 Method for synchronizing file
CN201410853440.1A CN105530284B (zh) 2014-10-21 2014-12-31 文件同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140142850A KR101960339B1 (ko) 2014-10-21 2014-10-21 파일 동기화 방법

Publications (2)

Publication Number Publication Date
KR20160046649A KR20160046649A (ko) 2016-04-29
KR101960339B1 true KR101960339B1 (ko) 2019-03-20

Family

ID=55749233

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140142850A KR101960339B1 (ko) 2014-10-21 2014-10-21 파일 동기화 방법

Country Status (3)

Country Link
US (1) US9697225B2 (ko)
KR (1) KR101960339B1 (ko)
CN (1) CN105530284B (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102249826B1 (ko) * 2015-01-06 2021-05-11 삼성전자주식회사 데이터 관리 방법 및 이를 수행하는 전자 장치
US10410247B2 (en) * 2015-01-15 2019-09-10 Adobe Inc. Audio data sampling and user profile generation for advertisement control
US10147061B2 (en) * 2015-06-29 2018-12-04 Applied Software Technology, Inc. Integrating a construction jobsite system with external tools
US20180225179A1 (en) * 2015-08-07 2018-08-09 Hewlett Packard Enterprise Development Lp Encrypted data chunks
US10157047B2 (en) * 2015-10-19 2018-12-18 Facebook, Inc. Methods and systems for communicating application prototype information
US9870062B2 (en) 2015-11-11 2018-01-16 Facebook, Inc. Methods and systems for defining gestures for a user interface
US10419401B2 (en) * 2016-01-08 2019-09-17 Capital One Services, Llc Methods and systems for securing data in the public cloud
CN106599106A (zh) * 2016-11-28 2017-04-26 深圳中兴网信科技有限公司 基于分布式文件系统的数据同步方法及装置
US10922720B2 (en) * 2017-01-11 2021-02-16 Adobe Inc. Managing content delivery via audio cues
CN107018185B (zh) * 2017-03-28 2020-04-07 清华大学 云存储系统的同步方法和装置
US10282125B2 (en) * 2017-04-17 2019-05-07 International Business Machines Corporation Distributed content deduplication using hash-trees with adaptive resource utilization in distributed file systems
CN107249045B (zh) 2017-07-31 2018-07-10 合肥工业大学 便携式内窥镜多模态信息同步存储方法和系统
KR102300191B1 (ko) * 2019-09-09 2021-09-08 주식회사 엘지유플러스 컨텐츠에 대한 블록 체인의 블록 갱신 방법 및 서버
US11330079B2 (en) * 2020-01-08 2022-05-10 Sap Se Environment for developing of distributed multicloud applications
CN111787074B (zh) * 2020-06-18 2023-04-21 杭州美创科技股份有限公司 一种文件同步方法及终端
CN111917556B (zh) * 2020-07-23 2022-02-08 平安证券股份有限公司 交互文件检测方法、装置、终端及存储介质
CN112948344A (zh) * 2021-04-09 2021-06-11 苏州菲瑞斯信息技术有限公司 基于hdfs技术的数据库备份的服务器及系统
GB2624280A (en) * 2022-10-24 2024-05-15 Dell Products Lp Method and system for generating incremental approximation backups of limited access cloud data
KR102599116B1 (ko) * 2023-02-20 2023-11-07 서강대학교산학협력단 데이터 중복 제거 방법 및 데이터 중복 제거를 수행하는 스토리지 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084333A1 (en) * 2010-09-30 2012-04-05 Emc Corporation Transmitting filesystem changes over a network
US20140198801A1 (en) 2013-01-11 2014-07-17 Brocade Communications Systems, Inc. Mac address synchronization in a fabric switch
US20140222770A1 (en) 2013-04-05 2014-08-07 Kamlesh Lad De-duplication data bank

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7788225B2 (en) * 2005-03-18 2010-08-31 Oracle International Corporation Apparatus and method for identifying asynchronous data in redundant data stores and for re-synchronizing same
US7882084B1 (en) * 2005-12-30 2011-02-01 F5 Networks, Inc. Compression of data transmitted over a network
US8205065B2 (en) 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
US8543539B2 (en) * 2009-09-16 2013-09-24 Business Objects Software Limited Method and system for capturing change of data
KR100985169B1 (ko) * 2009-11-23 2010-10-05 (주)피스페이스 분산 저장 시스템에서 파일의 중복을 제거하는 장치 및 방법
US8306948B2 (en) 2010-05-03 2012-11-06 Panzura, Inc. Global deduplication file system
US9449014B2 (en) * 2011-11-29 2016-09-20 Dell Products L.P. Resynchronization of replicated data
US8782441B1 (en) * 2012-03-16 2014-07-15 Google Inc. Methods and systems for storage of large data objects
CN103685162A (zh) * 2012-09-05 2014-03-26 中国移动通信集团公司 文件存储和共享方法
EP2898424B8 (en) * 2012-09-19 2019-08-21 Hitachi Vantara Corporation System and method for managing deduplication using checkpoints in a file storage system
US20150006475A1 (en) * 2013-06-26 2015-01-01 Katherine H. Guo Data deduplication in a file system
CN103761162B (zh) * 2014-01-11 2016-12-07 深圳清华大学研究院 分布式文件系统的数据备份方法
US9680833B2 (en) * 2015-06-25 2017-06-13 Imperva, Inc. Detection of compromised unmanaged client end stations using synchronized tokens from enterprise-managed client end stations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120084333A1 (en) * 2010-09-30 2012-04-05 Emc Corporation Transmitting filesystem changes over a network
US20140198801A1 (en) 2013-01-11 2014-07-17 Brocade Communications Systems, Inc. Mac address synchronization in a fabric switch
US20140222770A1 (en) 2013-04-05 2014-08-07 Kamlesh Lad De-duplication data bank

Also Published As

Publication number Publication date
US9697225B2 (en) 2017-07-04
US20160110377A1 (en) 2016-04-21
CN105530284B (zh) 2020-10-02
CN105530284A (zh) 2016-04-27
KR20160046649A (ko) 2016-04-29

Similar Documents

Publication Publication Date Title
KR101960339B1 (ko) 파일 동기화 방법
US9961053B2 (en) Detecting compromised credentials
CN107735807B (zh) 被撤销数据的智能删除
US9807135B1 (en) Methods and computing systems for sharing cloud files using a social network
US20140108617A1 (en) Data storage in cloud computing
EP3097674A1 (en) Content item synchronization by block
JP2012525640A5 (ko)
EP3850521B1 (en) Electronic apparatus managing data based on block chain and method for managing data
US9886448B2 (en) Managing downloads of large data sets
US11314885B2 (en) Cryptographic data entry blockchain data structure
US20140304384A1 (en) Uploading large content items
US20160110265A1 (en) Handling server and client operations uninterruptedly during pack and audit processes
WO2015119978A1 (en) Content item encryption on mobile devices
US9930063B2 (en) Random identifier generation for offline database
EP3716580B1 (en) Cloud file transfers using cloud file descriptors
EP4231167A1 (en) Data storage method and apparatus based on blockchain network
US20140143201A1 (en) Dynamic content file synchronization
KR20120002344A (ko) 파일 동기화 방법 및 장치
WO2023216987A1 (zh) 容器镜像构建方法及装置
KR101199159B1 (ko) 온라인 기반의 파일 설치 방법 및 그 제어 장치
US20210149861A1 (en) Data management system, data management apparatus, and non-transitory computer readable medium storing data management program
US20190377722A1 (en) Array structures
CN113950677A (zh) 子范围同步
WO2014114987A1 (en) Personal device encryption
JP6435616B2 (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