KR101045540B1 - Method and system for data synchronization - Google Patents

Method and system for data synchronization Download PDF

Info

Publication number
KR101045540B1
KR101045540B1 KR1020090131522A KR20090131522A KR101045540B1 KR 101045540 B1 KR101045540 B1 KR 101045540B1 KR 1020090131522 A KR1020090131522 A KR 1020090131522A KR 20090131522 A KR20090131522 A KR 20090131522A KR 101045540 B1 KR101045540 B1 KR 101045540B1
Authority
KR
South Korea
Prior art keywords
data
terminal
server
unique key
index table
Prior art date
Application number
KR1020090131522A
Other languages
Korean (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 KR1020090131522A priority Critical patent/KR101045540B1/en
Application granted granted Critical
Publication of KR101045540B1 publication Critical patent/KR101045540B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Power Engineering (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

PURPOSE: A method and system for synchronizing data are provided to divide data into a block unit and synchronize only data of a data block which is damaged, deformed, and established, thereby simplifying synchronization of data of a large amount. CONSTITUTION: A data divider(210) disunites data into the same size of a block unit. A data converter(220) uses a hash algorithm to convert content of data which is divided into the block data into a encoded unique key. A terminal includes a data division part, a data conversion unit, and a table generating unit.

Description

데이터 동기화 시스템 및 방법{METHOD AND SYSTEM FOR DATA SYNCHRONIZATION}Data Synchronization System and Method {METHOD AND SYSTEM FOR DATA SYNCHRONIZATION}

본 발명은 데이터 동기화 시스템 및 방법에 관한 것으로, 네트워크 환경에서 암호화 알고리즘을 이용한 초고속 파일 동기화 시스템 및 방법에 관한 것이다. The present invention relates to a data synchronization system and method, and to an ultra-fast file synchronization system and method using an encryption algorithm in a network environment.

일반적으로 데이터 동기화(data synchronization)는 네트워크상에 존재하는 둘 이상의 논리적 장치(즉, 컴퓨터)에 분산된 특정 데이터의 내용을 일치시켜주는 기술을 지칭한다. In general, data synchronization refers to a technique for matching the contents of specific data distributed over two or more logical devices (ie, computers) present on a network.

종래의 동기화 기술은 비교적 단순한 로직을 사용한다. 데이터의 변경된 날자 또는 데이터의 크기를 비교하여 이 정보가 틀린 경우 데이터 전체를 동기화하는 방식을 사용한다. Conventional synchronization techniques use relatively simple logic. Compare the date of change of data or the size of data, and if this information is wrong, synchronize the whole data.

하지만, 이러한 종래 기술의 경우, 첫째로 데이터의 크기가 큰 경우(예를 들어, 음성, 영상 데이터 또는 데이터베이스 파일, 등등), 전체 데이터를 전송 또는 복사해야 하기 때문에 시간적인 부담이 큰 단점이 있다. 또한, 둘째는 데이터의 일 부가 손상을 당하는 경우(예를 들어, 지능화된 바이러스등에 의하여 데이터의 크기나 수정된 날짜는 그대로이면서 데이터의 내용을 변경하는 경우), 동기화를 할 수 없다는 치명적인 문제점을 가지고 있다.However, in the prior art, when the data is large in size (for example, voice, video data, or database file, etc.), the time burden is large because the entire data must be transmitted or copied. In addition, the second problem is that if some of the data is damaged (for example, by changing the contents of the data without changing the size or modified date of the data due to an intelligent virus, etc.), there is a fatal problem that synchronization is not possible. have.

이에 본 발명의 목적은 대용량의 데이터 동기화를 단순화시켜 동기화 시간을 줄일 수 있고, 데이터의 일부가 손상될 경우, 손상된 부분의 데이터 만을 효과적으로 동기화할 수 있고, 데이터 무결성 서비스를 제공할 수 있으며, 데이터의 유지보수를 간단하게 수행할 수 있는 데이터 동기화 시스템 및 방법을 제공하는 데 있다. Accordingly, an object of the present invention is to simplify synchronization of a large amount of data to reduce synchronization time, and when a part of data is damaged, only the damaged part of data can be synchronized effectively, and data integrity services can be provided. The present invention provides a data synchronization system and method for simplifying maintenance.

상기와 같은 목적을 달성하기 위해 본 발명은 데이터를 블록 단위로 분리하는 데이터 분할부와, 상기 블록화된 데이터의 실제 내용을 암호화된 고유키로 변환시키는 데이터 변환부와, 상기 변환된 데이터들의 고유키를 서버 인덱스 테이블 구조로 저장하고, 상기 고유키 생성을 위해 사용되는 고유키 생성 파일이 저장된 저장부를 포함하는 서버 및 상기 데이터를 생성 및 저장하고, 상기 서버로부터 고유키 생성 파일을 제공 받아 상기 데이터로 부터 단말 인덱스 테이블을 생성하는 단말기를 포함하고, 상기 서버 인덱스 테이블과 단말 인덱스 테이블 간의 비교를 통해 데이터 동기화를 수행하는 것을 특징으로 하는 데이터 동기화 시스템을 제공한 다. In order to achieve the above object, the present invention provides a data partitioning unit for dividing data into block units, a data conversion unit for converting the actual content of the blocked data into an encrypted unique key, and a unique key of the converted data. A server including a storage unit storing a unique key generation file used for generating a unique key and storing the data in a server index table structure, and generating and storing the data, and receiving a unique key generation file from the server It includes a terminal for generating a terminal index table, and provides a data synchronization system characterized in that to perform data synchronization through comparison between the server index table and the terminal index table.

상기 단말기는 상기 생성 및 저장된 데이터를 블록 단위로 분리하는 단말 데이터 분할부와, 상기 서버로 부터 제공된 고유키 생성 파일을 이용하여 블록화된 데이터의 실제 내용을 암호화된 고유키로 변환시키는 데이터 변환부와, 상기 고유키 형태의 변환된 데이터를 상기 단말 인덱스 테이블 구조로 변환하는 테이블 생성부를 포함하는 것을 특징으로 한다. The terminal comprises a terminal data partition unit for separating the generated and stored data in block units, a data converter for converting the actual content of the blocked data into an encrypted unique key using a unique key generation file provided from the server; And a table generator for converting the converted data in the form of the unique key into the terminal index table structure.

상기 데이터 분할부는 상기 단말기로 부터 제공된 데이터를 동일 크기의 블록으로 분리하고, 상기 데이터 변환부는 해쉬(Hash) 알고리즘을 이용하여 블록화된 데이터를 이용하여 고유키를 생성하는 것을 특징으로 한다. The data dividing unit divides the data provided from the terminal into blocks of the same size, and the data converting unit generates a unique key using the blocked data using a hash algorithm.

상기 서버 인덱스 테이블과 단말 인덱스 테이블 간의 비교는 상기 단말기 또는 상기 서버에서 수행되거나, 별도의 비교 단말기 또는 비교 서버에서 수행되는 것을 특징으로 한다. The comparison between the server index table and the terminal index table may be performed in the terminal or the server or in a separate comparison terminal or comparison server.

상기와 같은 목적을 달성하기 위해 본 발명에 따른 데이터를 생성 및 저장하고, 이를 블록 단위로 분리하는 단말 데이터 분할부와, 상기 블록화된 데이터의 실제 내용을 암호화된 고유키로 변환시키는 단말 데이터 변환부와, 상기 변환된 데이터들의 고유키를 단말 인덱스 테이블 구조로 저장하고, 상기 고유키 생성을 위해 사용되는 고유키 생성 파일이 저장되는 저장부와, 상기 단말 인덱스 테이블과 서버 인덱스 테이블 간을 비교하여 차이가 발생한 데이터 블록을 동기화시키는 비교부를 포함하는 적어도 하나의 단말기 및 상기 단말 데이터 분할부 또는 상기 단말 데이터 변환부에서 제공된 정보를 통해 고유키를 생성하거나, 상기 서버 인덱스 테이블 로 저장하는 서버를 포함하는 것을 특징으로 하는 데이터 동기화 시스템을 제공한다. In order to achieve the above object, a terminal data partitioning unit for generating and storing data according to the present invention, separating the data into blocks, and a terminal data converting unit for converting the actual contents of the blocked data into an encrypted unique key; Storing a unique key of the converted data in a terminal index table structure, comparing a storage unit storing a unique key generation file used for generating the unique key with the terminal index table and a server index table. At least one terminal including a comparator for synchronizing the generated data block, and a server for generating a unique key through information provided from the terminal data partitioning unit or the terminal data converting unit or storing the unique key as the server index table. A data synchronization system is provided.

상기 서버가 상기 단말 데이터 분할부로부터 블록 단위의 데이터를 제공 받는 경우 상기 서버는 이를 암호화된 고유키로 변환시키는 서버 데이터 변환부와, 상기 변환된 데이터의 고유키를 서버 인덱스 테이블 파일로 저장하는 서버 저장부를 포함하고, 상기 서버가 상기 단말 데이터 변환부로부터 고유키 형태의 인덱스 테이블을 제공 받는 경우, 상기 서버는 이를 서버 인덱스 테이블 파일로 저장하는 것을 특징으로 한다. When the server receives data in block units from the terminal data partitioning unit, the server converts the server data into an encrypted unique key and stores the server storing the unique key of the converted data as a server index table file. And a server, when the server receives an index table in the form of a unique key from the terminal data converter, the server stores the index table as a server index table file.

상기와 같은 목적을 달성하기 위해 본 발명에 따른 데이터를 생성한 단말기로부터 데이터를 전송 받는 단계; 상기 전송 받은 데이터를 블록화 하고, 고유키 생성 파일을 통해 데이터 블록으로부터 고유키를 생성하고, 이를 서버 인덱스 테이블 형태로 저장하는 단계; 상기 고유키 생성 파일을 상기 단말기에 전송하여, 단말기에 저장된 데이터를 블록화하고, 고유키를 생성하여 단말 인덱스 테이블을 형성하는 단계; 상기 서버 인덱스 테이블과 단말 인덱스 테이블을 비교하는 단계; 및 비교 결과 인덱스가 동일한 경우에는 해당 블록 내의 데이터가 일치하는 것으로 판단하고, 인덱스가 동일하지 않을 경우에는 해당 블록 내의 데이터가 일치하지 않는 것으로 판단하는 단계를 포함하는 데이터 동기화 방법을 제공한다. Receiving data from the terminal for generating data according to the present invention to achieve the above object; Blocking the received data, generating a unique key from a data block through a unique key generation file, and storing the received data in the form of a server index table; Transmitting the unique key generation file to the terminal to block data stored in the terminal, and generating a unique key to form a terminal index table; Comparing the server index table with the terminal index table; And determining that the data in the corresponding block is identical when the indexes are the same, and determining that the data in the corresponding block is not the same when the indexes are not identical.

상기 고유키를 생성하고, 이를 서버 인덱스 테이블 형태로 저장하는 단계는, 제공된 데이터를 다수의 블록 단위로 분리하는 단계와, 블록 단위로 분할된 데이터 블록들을 상기 고유키 생성 파일을 이용하여, 블럭화된 데이터의 실제 내용을 고유 키로 생성하는 단계와, 상기 고유키를 서버 인덱스 테이블 형태로 저장하는 단계를 포함하는 것을 특징으로 한다. Generating the unique key and storing the data in the form of a server index table may include separating the provided data into a plurality of blocks, and blocking the data blocks divided into blocks using the unique key generation file. And generating the actual content of the data as a unique key, and storing the unique key in the form of a server index table.

상기 고유키 생성 파일을 상기 단말기에 전송하는 단계 전에, 상기 단말기로 부터 데이터 동기화 요청을 수신하는 단계를 더 포함하는 것을 특징으로 한다. And before transmitting the unique key generation file to the terminal, receiving a data synchronization request from the terminal.

상기와 같은 목적을 달성하기 위해 본 발명에 따른 서버와 단말기, 단말기와 단말기 또는 서버와 서버 사이의 데이터 동기화 방법에 있어서, 제 1 데이터를 블록화하고, 블록 데이터를 암호화 기술을 이용하여 인덱싱하여 제 1 인덱스 테이블을 형성하는 단계; 제 2 데이터 정보를 제공받는 단계; 저장된 제 1 데이터와 상기 제 2 데이터의 전체 정보를 비교하는 단계; 상기 제 2 데이터 정보를 블록화하고, 암호화 기술을 이용하여 인덱싱하여 제 2 인덱스 테이블을 형성하는 단계; 상기 제 1 및 제 3 인덱스 테이블을 비교하는 단계; 및 비교결과 차이점이 없는 경우, 동일 데이터로 인식하여 동기화를 종료하고, 차이점이 있는 경우, 일부분인지, 전체인지 아니면 신규 인지를 판단하여, 일부분일 경우에는 해당 부분의 데이터 패킷만을 동기화시키고, 전체의 경우 전체 데이터를 동기화하고, 신규일 경우에는 신규 부분을 동기화시키거나 전체를 동기화시키는 단계를 포함하는 것을 특징으로 하는 데이터 동기화 방법을 제공한다. In the data synchronization method between the server and the terminal, the terminal and the terminal or the server and the server according to the present invention in order to achieve the above object, the first data is blocked, and the block data is indexed using an encryption technique to the first Forming an index table; Receiving second data information; Comparing the stored first data with total information of the second data; Blocking the second data information and indexing using an encryption technique to form a second index table; Comparing the first and third index tables; And if there is no difference, the synchronization is recognized by the same data, and if there is a difference, it is determined whether it is a part, whole or new, and in case of a part, only the data packet of the corresponding part is synchronized, If the entire data is synchronized, and if the new data synchronization method, characterized in that it comprises the step of synchronizing the new portion or the whole.

상기에서 살펴본 바와 같이 본 발명은 데이터를 블록 단위로 분리하고, 블록 단위의 데이터의 실제 내용을 고유키로 만들고 이를 인덱스 테이블로 저장하고, 서 버와 단말기 또는 단말기와 단말기 사이의 인덱스 테이블의 비교를 통해 손상, 변형 또는 신설된 데이터 블록을 확인하여 해당 블록의 데이터만을 동기화시킴으로 대용량의 데이터 동기화를 단순화시켜 동기화 시간을 줄일 수 있다. 또한, 데이터의 일부가 손상되었을 경우, 손상된 부분의 데이터 만을 효과적으로 동기화할 수 있고, 데이터 무결성 서비스를 제공할 수 있으며, 데이터의 유지보수를 간단하게 수행할 수 있다. As described above, the present invention divides data into units of blocks, makes the actual contents of the data of units of blocks into unique keys, stores them as index tables, and compares index tables between servers and terminals or between terminals and terminals. By identifying damaged, modified, or newly created data blocks, only the data in those blocks can be synchronized, simplifying large data synchronization and reducing synchronization time. In addition, when a part of the data is damaged, it is possible to effectively synchronize only the data of the damaged part, to provide a data integrity service, and to simplify the maintenance of the data.

이하, 첨부된 도면을 참조하여 본 발명의 실시예를 더욱 상세히 설명하기로 한다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 도면상에서 동일 부호는 동일한 요소를 지칭한다.Hereinafter, with reference to the accompanying drawings will be described an embodiment of the present invention in more detail. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various forms, and only the embodiments of the present invention make the disclosure of the present invention complete and the scope of the invention to those skilled in the art. It is provided to inform you completely. Like numbers refer to like elements in the figures.

최근 들어 데이터의 량이 급격하게 증가함으로 인해 전체 데이터의 동기화 (예를 들어, 백업)가 어려운 실정이다. 이에 본 실시예에서는 이러한 데이터를 복수의 블록으로 분할하고, 분할된 데이터 블록의 실제 내용으로 고유 키를 제작하고, 이러한 고유 키의 비교함으로 인해 데이터의 동기화를 빠르고 효과적으로 수행할 수 있는 시스템을 제공한다. Recently, due to the rapid increase in the amount of data, it is difficult to synchronize the entire data (for example, backup). In this embodiment, the data is divided into a plurality of blocks, a unique key is produced from the actual contents of the divided data block, and a system for quickly and effectively synchronizing data is provided by comparing the unique keys. .

도 1은 본 발명의 일 실시예에 따른 데이터 동기화 시스템의 블록도이다. 도 2는 본 발명의 일 실시예에 따른 서버의 동작을 설명하기 위한 개념도이다. 도 3은 본 발명의 일 실시예에 따른 서버에 저장되는 데이터 및 인덱스 관리 구조를 설명하기 위한 도면이다. 1 is a block diagram of a data synchronization system according to an embodiment of the present invention. 2 is a conceptual diagram illustrating an operation of a server according to an embodiment of the present invention. 3 is a diagram illustrating a data and index management structure stored in a server according to an embodiment of the present invention.

도 1을 참조하면, 본 실시예에 따른 데이터 동기화 시스템은 데이터를 생성하는 단말기(100)와, 상기 단말기(100)의 데이터를 다수의 블록으로 나누고 이를 암호화된 블록 데이터들로 저장하는 서버(200)를 포함한다. Referring to FIG. 1, the data synchronization system according to the present embodiment includes a terminal 100 generating data and a server 200 dividing the data of the terminal 100 into a plurality of blocks and storing them as encrypted block data. ).

본 실시예에서는 암호화(Encrypt)기술을 이용하여 파일의 실제 내용을 일정크기로 블록화한다. 그리고, 이 블록을 대표할 수 있는 고유의 암호화된 데이터로 변환하여 인덱스 테이블에 보관하는 구조를 가지고 있다는 점이다. 그리고, 이 인텍스 테이블들의 비교를 통해 데이터를 동기화할 수 있다. In the present embodiment, the actual content of the file is blocked to a certain size by using an encryption technique. In addition, it has a structure that is converted into unique encrypted data that can represent this block and stored in the index table. The data can be synchronized by comparing these index tables.

상술한 서버(200)는 단말기로부터 제공된 데이터를 블록 단위로 분리하는 데이터 분할부(210)와, 블록화된 데이터의 실제 내용을 암호화된 고유키로 변환시키는 데이터 변환부(220)와, 상기 고유키 형태의 변환된 데이터들을 인덱스 테이블 구조로 저장하고, 상기 고유키 생성을 위해 사용되는 고유키 생성 파일이 저장되는 저장부(230)를 포함한다. The server 200 includes a data partitioning unit 210 for separating data provided from a terminal in block units, a data converter 220 for converting the actual content of the blocked data into an encrypted unique key, and the unique key form. The storage unit 230 stores the converted data in an index table structure and stores a unique key generation file used for generating the unique key.

여기서, 상기 서버(200)는 상기 단말기(100)로부터 블록화된 데이터를 받을 경우 비록 암호화된 고유키를 받지 않는 경우라도 데이터 분할부(210) 및 데이터 변환부(220)에서 자동으로 데이터를 블록화하고 이를 암호화된 고유키로 자동 생성한다. 이는 상기 단말기(100)도 상기 데이터 분할부와 데이터 변환부가 마련되고, 또한, 고유키 생성 파일이 저장됨을 의미한다. 즉, 이를 통해 단말기(100)는 해당 데이터 뿐만 아니라, 이 데이터가 블록화된 데이터들과 암호화된 고유키로 구성된 인덱스 테이블을 서버(200)에 전송할 수 있다. In this case, when the server 200 receives the blocked data from the terminal 100, the server 200 automatically blocks the data even though the encrypted unique key is not received. Automatically generate it with an encrypted unique key. This means that the terminal 100 is provided with the data dividing unit and the data converting unit, and also stores the unique key generation file. That is, through this, the terminal 100 may transmit not only the corresponding data but also the index table including the data in which the data is blocked and the encrypted unique key to the server 200.

그리고, 서버(200)에서 생성된 암호화된 고유키를 저장하는 인덱스 테이블저장부(230)의 구조는 암호화된 고유키와 해당 데이터의 블록의 위치정보만을 가지고 있기 때문에 최소한의 정보를 가지고 단말기(100)에서 요청하는 블록별 데이터의 무결성 비교를 빠르게 할 수 있다. Since the structure of the index table storage unit 230 storing the encrypted unique key generated by the server 200 has only the encrypted unique key and location information of the block of the corresponding data, the terminal 100 has minimal information. ) Can quickly compare the integrity of the data for each block requested by.

데이터 분할부(210)는 도 2에 도시된 바와 같이 단말기(100)로 부터 제공된 데이터(Data1)를 동일 크기(사이즈)의 블록으로 분리한다. 즉, 도면에서와 같이 초기 데이터(Data1)의 크키가 100이고, 이들을 4개의 블록으로 분할하게 되면 한개의 블록의 크기는 25가 된다. 여기서, 블록의 사이즈와 개수는 제공된 데이터(Data1)의 크기에 따라 다양하게 변화될 수 있다. 여기서, 블록의 사이즈는 500키로바이트에서 500메가 바이트로 할 수 있다. 이때, 상기 사이즈보다 작을 경우에는 데이터 처리량이 증가하게 되고, 상기 범위보다 클 경우에는 데이터의 비교시간이 오래걸리는 단점이 있다. 도 3에서는 1기가 바이트 용량의 데이터를 1메가 바이트 단위로 블록화함을 도시하였다. As shown in FIG. 2, the data dividing unit 210 separates the data Data1 provided from the terminal 100 into blocks having the same size (size). That is, as shown in the figure, if the size of the initial data Data1 is 100, and these are divided into four blocks, the size of one block is 25. Here, the size and number of blocks may vary in accordance with the size of the provided data Data1. Here, the block size can be 500 kilobytes to 500 megabytes. In this case, when the size is smaller than the size, the data throughput is increased. When the size is larger than the range, the data comparison time is long. In FIG. 3, data of 1 gigabyte in size is blocked in units of 1 megabyte.

데이터 변환부(220)는 해쉬(Hash) 알고리즘을 이용하여 블록화된 데이터를 이용하여 고유키를 생성한다. 이때, 데이터 변환부(220)는 별도의 고유키 생성 파일을 통해 블록화된 데이터의 실제 내용을 고유 키로 만든다. 즉, 이는 데이터 변환부(220)는 블록화된 데이터를 이용하여 블록화된 데이터를 대표할 수 있는 고유의 암호화된 데이터로 변환시키고, 이를 인덱스 테이블에 보관한다. 이때, 상기 블 록화된 데이터가 압축될 수도 있다. 즉, 도 3에 도시된 바와 같이 데이터 파일의 값에 따른 고정 크기 인덱스 파일을 생성하고, 이를 테이블 형태로 저장한다. 예를 들어 첫번째 블록의 데이터 파일은 "0100110101100111"이고, 이를 해쉬 알고리즘을 이용하여 변화시키면 상기 정보를 가지고 있는 "BA220CBD4426"이 된다. The data converter 220 generates a unique key using the data blocked using a hash algorithm. At this time, the data conversion unit 220 makes the actual content of the data blocked through a separate unique key generation file as a unique key. That is, the data converter 220 converts the blocked data into unique encrypted data that can represent the blocked data using the blocked data, and stores the data in an index table. In this case, the blocked data may be compressed. That is, as shown in FIG. 3, a fixed-size index file is generated according to the value of the data file and stored in a table form. For example, the data file of the first block is "0100110101100111". When the data file is changed using a hash algorithm, the data file is "BA220CBD4426" having the above information.

본 실시예의 인덱스 테이블(Index Table)은 서버(200)에서 기록되는 모든 데이터의 실제 내용을 고정 크기로 블록화하여 이를 고유한 키로 생성한 후 이를 저장한 파일(즉, 인덱스 파일)로 그 구조는 매우 단순하다. 그리고, 이 파일(즉, 인덱스 파일) 내부에는 순차적으로 기술된 블록별 고유키만 들어가는 구조이다. 그리고, 종래의 발명은 데이터 블록을 완벽하게 처리하기 어려운 문제(데이터의 갱신, 추가등등) 때문에 파일-변화 검출 이후에 변조된 파일을 검출하기 위해 파일의 현재 타임스탬프를 주기적으로 비교하여야 하기 때문에 다양한 구조가 필요하였다. 하지만, 본 실시예에서는 고유의 암호화키와 암호화키를 구성하는 순서만으로도 데이터의 무결성 및 단말기(100)에서 요청시 이 인덱스 테이블 만을 전송함으로 단말기와 서버에 저장된 데이터중 다른 부분을 구분할 수 있다. The index table of the present embodiment is a file (i.e., an index file) that stores the actual contents of all data recorded by the server 200 in a fixed size, generates it as a unique key, and stores it. simple. The file (that is, the index file) contains only the unique block-specific keys sequentially described. In addition, since the present invention has to periodically compare the current time stamp of the file in order to detect a file that has been modulated after the file-change detection due to a problem (data update, addition, etc.) that is difficult to completely process the data block. A structure was needed. However, in the present embodiment, only the order of configuring the unique encryption key and encryption key can distinguish the other parts of the data stored in the terminal and the server by transmitting only this index table when the integrity of the data and the terminal 100 request.

이와 같은 단순한 구조는 내부적으로 데이터의 블록 비교의 속도를 향상 시키고 다수의 단말기(100)들이 동시에 서버(200)에 인덱스 테이블 데이터를 요구할 경우에도, 서버(200)내부에서의 직접 비교하지 않고, 단말기별 비교가 가능하기 때문에 서버(100)의 부하를 최소화 할수 있다는 장점이 있다. Such a simple structure improves the speed of block comparison of data internally, and even when a plurality of terminals 100 simultaneously request index table data from the server 200, the terminal does not directly compare the data inside the server 200. Since it is possible to compare stars, there is an advantage that the load of the server 100 can be minimized.

저장부(230)는 고유 키 생성을 위한 고유 키 생성 파일이 저장된다. 여기서, 고유 키 생성 파일은 단말기(100)로 부터 제공되는 각 데이터 마다 고유의 파일로 저장될 수 있다. 물론 이에 한정되지 않고, 단일 단말기(100)에서 제공되는 데이터들이 동일한 파일을 공유할 수 있다. 또한, 다수의 데이터들이 하나의 파일을 공유할 수도 있다. 여기서, 단말기(100)에 고유 키 생성 파일이 마련될 수도 있다. The storage unit 230 stores a unique key generation file for generating a unique key. Here, the unique key generation file may be stored as a unique file for each data provided from the terminal 100. Of course, the present invention is not limited thereto, and the data provided from the single terminal 100 may share the same file. In addition, multiple data may share a single file. Here, a unique key generation file may be provided in the terminal 100.

그리고, 저장부(230)에는 앞서 언급한 인덱스 테이블이 보관된다. 이때, 인덱스 테이블의 각각의 인덱스 값(즉, 고유키)은 실제 데이터를 블록화하고, 이 블록화된 데이터의 실제 내용을 고유 키로 만들고, 이를 인덱스 테이블 형태로 저장한 것이다. 따라서, 인덱스 테이블의 인덱스 값 각각이 실제 데이터 값과 같음을 알 수 있다. The storage unit 230 stores the aforementioned index table. At this time, each index value (that is, the unique key) of the index table blocks the actual data, makes the actual content of the blocked data into a unique key, and stores it in the form of an index table. Therefore, it can be seen that each index value of the index table is equal to the actual data value.

여기서, 인덱스 테이블과 이의 고유 키를 생성하기 위해 사용된 고유기 생성 파일은 서로가 링크되어 있는 것이 효과적이다. 이를 통해 단말기(100)에서 일 데이터를 요청하게 되면 이 데이터에 해당하는 인덱스 테이블과, 인덱스 테이블 생성을 위한 고유키 생성 파일도 함께 단말기에 제공한다. Here, it is effective that the uniqueness generation file used to generate the index table and its unique key are linked to each other. When the terminal 100 requests one data, the terminal 100 also provides the terminal with an index table corresponding to the data and a unique key generation file for generating the index table.

이를 통해 단말기(100)에서도 해당 데이터를 블록화하고, 이 블록화된 데이터를 고유키 생성 파일로 고유키를 생성하고, 이를 인덱스 테이블 형태로 저장한다. Through this, the terminal 100 also blocks the corresponding data, generates the unique key as a unique key generation file, and stores the blocked data in the form of an index table.

이를 위해 단말기(100)는 상기 생성 및 저장된 데이터를 블록 단위로 분리하는 단말 데이터 분할부와, 상기 서버로부터 제공된 고유키 생성 파일을 이용하여 블록화된 데이터의 실제 내용을 암호화된 고유키로 변환시키는 데이터 변환부와, 상기 고유키 형태의 변환된 데이터를 상기 단말 인덱스 테이블 구조로 변환하는 테이블 생성부를 포함한다. 그리고, 앞서 언급한 바와 같이 단말기(100) 또한 고유키 생성을 위한 파일을 저장하고 있는 것이 가능하다. To this end, the terminal 100 converts the data generated by the terminal data partitioner to separate the generated and stored data into blocks, and converts the actual contents of the blocked data into an encrypted unique key using a unique key generation file provided from the server. And a table generator for converting the converted data in the form of the unique key into the terminal index table structure. As described above, the terminal 100 may also store a file for generating a unique key.

그리고, 서버(200)에서 제공된 서버 인덱스 테이블과 단말기(100)에서 새로이 생성된 단말기 인덱스 테이블 간을 비교한다. 비교 결과 두 인덱스 테이블 간의 인덱스 값의 차이 만으로도 데이터의 변화를 확인할 수 있고, 이 차이 값이 발생한 블록만을 서버와 동기화시켜 손상된 또는 변화된 데이터를 원래의 상태로 복원할 수 있다. 여기서, 상기 두 테이블 간의 비교는 서버(200)에서 수행되는 것이 바람직하다. 물론 이에 한정되지 않고, 상기 단말기(100)에서 수행될 수도 있다. 그리고, 별도의 비교 단말기 또는 비교 서버를 설치하고, 비교 단말기 및 비교 서버에서 이러한 동작을 수행할 수 있다. The server index table provided by the server 200 and the terminal index table newly generated by the terminal 100 are compared. As a result of the comparison, the change of the data can be confirmed only by the difference between the index values between the two index tables, and only the block in which the difference value is generated can be synchronized with the server to restore the damaged or changed data to its original state. Here, the comparison between the two tables is preferably performed in the server 200. Of course, the present invention is not limited thereto and may be performed by the terminal 100. In addition, a separate comparison terminal or comparison server may be installed, and the operation may be performed in the comparison terminal and the comparison server.

하기에서는 도면을 참조하여, 본 실시예에 따른 데이터 동기화 방법을 설명한다. Hereinafter, a data synchronization method according to the present embodiment will be described with reference to the drawings.

도 4는 일 실시예에 따른 데이터 동기화 방법을 설명하기 위한 흐름도이다. 도 5는 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도이다. 도 6 및 도 7은 일 실시예에 따른 데이터 동기화 방법을 설명하기 위한 개념도이다. 4 is a flowchart illustrating a data synchronization method according to an embodiment. 5 is a flowchart illustrating an operation of a server according to an exemplary embodiment. 6 and 7 are conceptual views illustrating a data synchronization method according to an embodiment.

도 4 내지 도 7을 참조하면, 먼저, 단말기(100)에 의해 소정의 데이터가 생성된다. 이때, 데이터를 그 크기가 다양하다. 이어서, 단말기(100)는 생성된 데이터를 서버(200)에 전송한다(S110). 4 to 7, first, predetermined data is generated by the terminal 100. At this time, the data vary in size. Subsequently, the terminal 100 transmits the generated data to the server 200 (S110).

이어서, 서버(200)는 상기 데이터 값이 분리된 인덱싱 테이블 형태로 분리 저장한다(S120). Subsequently, the server 200 stores and stores the data values in the form of a separate indexing table (S120).

이를 도 4를 참조하여 좀더 구체적으로 설명하면 다음과 같다. 먼저 서버는 서버(200)는 제공된 데이터를 다수의 블록 단위로 분리한다(S121). 앞서 언급한 바와 같이 최근 들어서는 데이터의 사이즈가 매우 커지고 있는 실정이다. 특히, 영상이나 음향 데이터이 경우, 그 사이즈가 수키로 바이트에서 기가 바이트까지 커지고 있다. 이와 같이 데이터의 사이즈가 커짐으로 인해, 앞선 종래 기술에서 설명한 바와 같이 서버(200)와 단말기(100) 간의 정밀한 데이터 동기화를 위한 비교 시간이 길어지는 문제가 발생한다. 하지만, 상기와 같이 데이터를 다수의 블록 단위로 나누고 이 블록 단위들 만을 비교함으로써 데이터 동기화를 위한 비교 시간이 줄어들 수 있다. 또한, 앞서 설명한 바와 같이 단말기(100)에서 데이터를 블록화하여 이를 서버(100)에 전송할 수도 있다. This will be described in more detail with reference to FIG. 4 as follows. First, the server 200 separates the provided data into a plurality of block units (S121). As mentioned above, in recent years, the size of data has become very large. In particular, in the case of video and audio data, the size is increased from bytes to gigabytes. As the size of data increases, a problem arises in that a comparison time for precise data synchronization between the server 200 and the terminal 100 is long, as described in the related art. However, by dividing the data into a plurality of block units and comparing only the block units as described above, the comparison time for data synchronization can be reduced. In addition, as described above, the terminal 100 blocks data and transmits the data to the server 100.

이어서, 블록 단위로 분할된 데이터 블록들을 고유키 생성 파일을 이용하여, 블럭화된 데이터의 실제 내용을 고유키로 생성한다(S123). 그리고, 이를 서버 인덱스 테이블 형태로 저장한다(S125). 상기 고유키를 인덱스 테이블의 인덱스 값으로 하여 이를 저장한다. 그리고, 상기 인덱스 값은 데이터 블록의 순서에 따라 순차적으로 배열되는 것이 효과적이다. 여기서, 도 7의 (a)에 도시된 바와 같이 데이터 블록을 1메가바이트 단위로 분리하고, 이들에 대한 고정 크기 인덱스 파일을 생성하였다. 또한, 앞서 설명한 바와 같이 단말기(100)에서 인덱스 테이블 파일을 서버(200)에 제공할 수도 있다. 이때, 서버(200)는 이 파일을 저장할 수 있다. Subsequently, the data blocks divided in block units are generated using a unique key generation file to generate the actual content of the blocked data as a unique key (S123). Then, it is stored in the form of a server index table (S125). The unique key is stored as an index value of an index table. In addition, the index values are effectively arranged in sequence according to the order of the data blocks. Here, as shown in (a) of FIG. 7, data blocks are separated in units of 1 megabyte, and fixed size index files are generated for them. In addition, as described above, the terminal 100 may provide the index table file to the server 200. At this time, the server 200 may store this file.

이는 앞서 도 3에서 설명한 바와 같이 하나의 파일을 1메가바이트 단위의 블록으로 분리하고, 블록별 데이터를 고유키 값으로 만들고 이를 인덱스 파일로 보관한다. 즉, 인덱스 파일과 고유키 생성 파일이 따로 있는것이 아니고 인덱스 파일의 구성요소가 고유키의 집합이다. 그리고, 블럭화된 데이터 또한 고유키값을 생성하기 위해 내부적으로 불러와서 계산을 수행한다. 이러한 동작을 통해 인덱스 파일을 단순화시킴으로써 동기화에 필요한 데이터의 량을 줄이고 데이터의 일치성을 비교하기 위한 속도를 향상시킬 수 있다. As described above with reference to FIG. 3, one file is divided into blocks of 1 megabyte unit, and data for each block is made a unique key value and stored as an index file. That is, the index file and the unique key generation file do not exist separately, and the components of the index file are a set of unique keys. Blocked data is also loaded internally to generate unique key values for computation. This simplifies the index file, reducing the amount of data needed for synchronization and speeding up the comparison of data consistency.

이후, 단말기(100)로부터 데이터 동기화 요청이 수신되면, 서버(200)는 요청한 데이터에 해당하는 서버 인덱싱 테이블 파일을 단말기(100)에 제공한다(S130). 여기서, 서버(200)가 인덱싱 테이블을 생성하기 위한 고유키 생성 정보를 단말기(100)에 제공할 수도 있다. Thereafter, when a data synchronization request is received from the terminal 100, the server 200 provides the terminal 100 with a server indexing table file corresponding to the requested data (S130). Here, the server 200 may provide the terminal 100 with unique key generation information for generating the indexing table.

이어서, 단말기(100)는 앞서 언급한 서버의 인덱스 테이블 생성 방법을 수행하여 단말기(100)에 저장된 데이터를 단말 인덱싱 테이블로 변환한다(S140). Subsequently, the terminal 100 converts the data stored in the terminal 100 into a terminal indexing table by performing the aforementioned index table generation method of the server (S140).

즉, 자신이 저장한 데이터를 블록화하고, 이를 서버(200)로부터 받은 고유키 생성 파일을 이용하여 고유키를 생성한다. 그리고, 생성된 고유키를 단말 인덱스 테이블로 저장한다. 이는 도 7의 (b)에 도시된 바와 같이 단말기(100)의 데이터 또한 1메가바이트 단위로 블록화하고, 이를 이용하여 고정 크기 인덱스 파일을 생성한다.That is, it blocks the data stored by itself and generates a unique key using the unique key generation file received from the server 200. The generated unique key is stored as a terminal index table. As shown in (b) of FIG. 7, the data of the terminal 100 is also blocked in units of 1 megabyte, and a fixed size index file is generated using the data.

이어서, 상기 단말기(100)에서 생성된 단말 인덱스 테이블과, 서버(100)에서 생성된 서버 인덱스 테이블의 인덱스 값을 순차적으로 비교한다(S150). Subsequently, the terminal index table generated in the terminal 100 and the index values of the server index table generated in the server 100 are sequentially compared (S150).

비교 결과 두 인덱스 테이블의 값이 동일할 경우에는 해당 인덱스 테이블에 대응되는 데이터 블록 내의 테이터가 일치함으로 판단한다(S160). 하지만, 그 값이 동일하지 않을 때는 해당 인덱스 테이블에 대응되는 데이터 블록 내의 데이터가 일 치하지 않음(불일치)으로 판단한다. 이를 통해 그 데이터 값이 변화/변경된 데이터 블록의 위치를 알 수 있게 되고, 이 영역만을 서버(200)와 동기화시켜 전체 데이터를 동기화 시킬 수 있다(S170). As a result of the comparison, when the values of the two index tables are the same, it is determined that the data in the data block corresponding to the corresponding index table match (S160). However, if the values are not the same, it is determined that the data in the data block corresponding to the corresponding index table does not match (inconsistent). Through this, the location of the data block whose data value is changed / changed can be known, and the entire data can be synchronized by synchronizing only this area with the server 200 (S170).

이는 도 6에 도시된 바와 같이 서버에 Index 0 부터 Index n 까지의 인덱스 값을 갖는 서버 인덱스 테이블이 위치한다. 그리고, 단말기는 앞서 언급한 바와같이 서버로부터 고유키 생성 파일을 제공 받아 자신의 데이터를 인덱스한다. 이때, 도 5에서와 같이 Index 0 부터 Index n 까지 및 Index n+1 내지 Index n+3의 인덱스 값을 갖는 단말 인덱싱 테이블을 생성한다. As shown in FIG. 6, a server index table having an index value of Index 0 to Index n is located in the server. As described above, the terminal receives the unique key generation file from the server and indexes its data. At this time, as shown in FIG. 5, a terminal indexing table having index values from Index 0 to Index n and index n + 1 to Index n + 3 is generated.

이어서, 상기 서버 인덱싱 테이블과 단말 인덱싱 테이블간을 비교한다. 도 5에서와 같이 비교 결과, Index 7.1과 Index n+1, Index n+2 및 Index n+3이 변화 및 추가됨을 알 수 있다. Subsequently, the server indexing table and the terminal indexing table are compared. As shown in FIG. 5, it can be seen that Index 7.1 and Index n + 1, Index n + 2, and Index n + 3 are changed and added.

또한, 도 7에 도시된 바와 같이 서버와 단말기의 두 고정 크기 인덱스 파일을 비교하여 그 값이 일치하지 않는 부분의 데이터를 변화된 데이터로 인식한다. In addition, as shown in FIG. 7, two fixed-size index files of the server and the terminal are compared, and data of a portion where values thereof do not match is recognized as changed data.

이때, 사용자의 설정에 따라 상기 변화 및 추가된 값에 해당하는 단말기의 데이터를 기준으로 서버의 데이터를 변화시키는 동기화를 수행할 수 있다. 물론 상기 변화 및 추가된 값에 해당하는 서버의 데이터를 기준으로 단말기의 데이터를 동기화시킬 수 있다. In this case, synchronization may be performed to change data of the server based on data of the terminal corresponding to the change and the added value according to the user's setting. Of course, the data of the terminal may be synchronized based on the data of the server corresponding to the change and the added value.

이렇게 변화된 데이터 블록별 인덱스 값은 동기화 과정에서 양측간의 실제 데이터 비교 없이도 간단히 인덱스 비교만으로 파일 내용이 변경된 위치를 알 수 있 다. 따라서, 동기화가 필요한 파일 중에서 변경된 일부만 변경함으로써 종래의 기술적 한계를 극복할수 있다.The changed index of each data block can know the location of the changed file contents simply by comparing the indexes without the actual data comparison between the two sides in the synchronization process. Therefore, the conventional technical limitation may be overcome by changing only a part of the changed file that needs to be synchronized.

특히, 본 기술은 종래의 기술이 단순히 파일을 수정된 날짜 또는 파일의 크기만을 비교하여 동기화의 기준으로 삼아와서 발생했던 동기화시 데이터의 불일치 부분을 완전히 극복할 수 있다는 측면에서 기술적 개선효과가 크다 할 수 있다.In particular, the present technology has a great technical improvement in that the conventional technology can completely overcome the inconsistency of the data during synchronization, which is caused by simply comparing the modified date or the size of the file and making it a reference for synchronization. Can be.

예를들어 신종 바이러스에 감염된 단말기(즉, PC)의 경우 백신으로는 치료가 불가능하였다. 하지만, 본 기술의 동기화를 이용하여 정상적인 파일 내부에 은닉한 바이러스 코드를 찾아내고 이를 정상적인 코드로 고속 처리할 수 있다.For example, a terminal infected with a new virus (ie, a PC) could not be treated with a vaccine. However, by using the synchronization of the present technology, it is possible to find a virus code concealed inside a normal file and process it as a normal code at high speed.

본 실시예에서는 단말기(100)의 데이터를 서버(200)의 데이터와 동기화하는 기술 뿐만 아니라 서버(200)에 저장된 모든 데이터를 다른 단말기(100)에서도 똑같은 동작으로 동기화할 수 있다. 이는 하나의 인덱스 파일로 각기 다른 단말기(100)의 데이터중 틀린 부분만을 전송할 수 있기 때문에 이를 이용한 대규모 데이터 서비스(멀티미디어 데이터, 데이터베이스 데이터, 온라인 게임 소프트웨어 및 패치 데이터, 등등)에서도 이용 가능하다. In this embodiment, not only the technology for synchronizing the data of the terminal 100 with the data of the server 200, but also all the data stored in the server 200 can be synchronized in the same operation in the other terminal 100. This can be used in a large data service (multimedia data, database data, online game software and patch data, etc.) using the same because it can transmit only the wrong part of the data of the different terminals 100 in one index file.

본 기술이 상용화될 경우 다양한 산업 환경에서 이를 활용하여 그 효과를 극대화할 수 있다.When this technology is commercialized, it can be utilized in various industrial environments to maximize the effect.

즉, PC와 같은 단말기를 사용하다 보면 갑자기 프로그램이 고장 나는 경우가 있다. 이럴 경우 대부분의 해결 방안이 프로그램을 삭제하고 다시 설치하는게 일반적인 방법이다. 하지만, 본 기술을 이용할 경우 고객은 해당 소프트웨어의 개발사에 연결하여 무결성 테스트를 하면 자동으로 자신의 하드디스크에 설치된 프로그램중 손상된 부분만을 찾아서 수리해줄 수가 있다.In other words, if you use a terminal such as a PC, the program may suddenly break. In this case, the most common solution is to uninstall and reinstall the program. However, with this technology, customers can connect to the developer of the software and test the integrity to automatically find and repair the damaged parts of the program installed on their hard disk.

또한, 다수의 단말기가 배치된 피시방(PC방)은 국내에서 시작하여 이제는 전세계적으로 하나의 문화산업으로 정착된지 오래이다. 하지만 이러한 PC방은 고질적인 문제점으로, 설치된 온란인 게임이 고장날 경우 유지보수를 받는데 걸리는 시간이 길고 매번 비용이 발생한다는 것이다. 하지만, 이 경우도 본 기술은 정상적으로 운영중인 다른 PC와 고장난 PC를 네트워크로 연결하고 무결성 테스트를 진행할 수 있다. 이때, 정상적으로 운영중인 단말기(즉, PC)가 서버가 되고, 고장된 단말기가 단말기가 된다. 이를 통해 별도 추가 비용발생 없이도 기존의 유지보수보다 효과적인 처리가 가능해질 수 있다.In addition, PC rooms (PC rooms) in which a large number of terminals are arranged have been established in Korea for a long time and have been settled as a cultural industry all over the world. However, such a PC room is a chronic problem, and if the installed online game breaks, it takes a long time to receive maintenance and costs each time. However, even in this case, the technology can network other broken PCs with a normal PC and conduct an integrity test. At this time, the terminal (that is, PC) that is normally operating becomes a server, and the failed terminal becomes a terminal. This allows for more efficient treatment than conventional maintenance without incurring additional costs.

또한, 우리가 작업하는 단말기(PC) 또는 서버에는 무수한 데이터 파일이 실시간으로 생성되어 관리되고 있다. 이러한 데이터를 다른 공간에 백업을 할 경우 데이터량이 많아 어려움이 따른다. 하지만 본 기술이 적용될 경우 달라진 부분만을 정확히 판단하여 교체해줄 수 있기 때문에 시간과 비용을 획기적으로 줄일 수 있다. In addition, a number of data files are generated and managed in real time in the terminal (PC) or server we work with. If you back up such data to another space, it will be difficult due to the large amount of data. However, if the technology is applied, only the changed parts can be accurately determined and replaced, which can drastically reduce time and cost.

또한, 본 실시예는 상술한 방법 이외에 먼저 전체 데이터를 비교한 이후 추가로 각기 분리된 블럭 단위의 데이터를 비교할 수도 있다. In addition, the present embodiment may compare data in units of blocks separately after first comparing all data in addition to the above-described method.

도 8은 본 발명의 일 실시예의 변형예에 따른 데이터 동기화 방법을 설명하기 위한 흐름도이다. 8 is a flowchart illustrating a data synchronization method according to a modification of an embodiment of the present invention.

먼저, 도 8에 도시된 바와 같이 동기화가 시작되는 서버 또는 단말기는 전체 데이터 정보를 요청한다(S210). 이어서, 서버 또는 단말기에서 자신이 보유한 데이터와 제공받은 전체 데이터 정보를 비교한다(S220). 여기서, 데이터 비교는 서버 또는 단말기에서 수행될 수 있다. 따라서, 만일 서버에서 데이터 비교가 실시되면 단말기에 데이터를 요청하고, 자신의 데이터와 제공된 데이터를 비교한다. 물론 단말기에서 데이터를 비교할 경우는 이와 반대로 동작한다. First, as shown in FIG. 8, the server or the terminal for which synchronization is started requests the entire data information (S210). Subsequently, the data owned by the server or the terminal is compared with the received total data information (S220). Here, the data comparison may be performed at the server or the terminal. Therefore, if data comparison is performed in the server, the terminal requests data and compares its own data with the provided data. Of course, when the data is compared in the terminal it works in reverse.

이때, 전체 데이터 정보는 데이터의 크기, 이름, 수정 및 생성 날짜와 같은 정보를 포함하는 것이 효과적이다. 이러한 정보로 데이터의 실제 내용을 포함하지 않는 정보를 사용하는 것이 바람직하다. In this case, the entire data information may effectively include information such as data size, name, modification and creation date. As such information, it is desirable to use information that does not include the actual content of the data.

이어서, 개별 데이터를 비교한다(S230). 이때, 개별 데이터 비교는 앞서 언급한 데이터 블록으로 분할되고, 이들이 인덱싱된 테이블의 비교를 통해 수행한다. Subsequently, individual data are compared (S230). In this case, the individual data comparison is divided into the aforementioned data blocks, and they are performed by comparing the indexed tables.

비교 결과 차이점이 없는 경우에는 동일 데이터로 인식하고 동기화를 완료한다(S240). If there is no difference as a result of the comparison, the same data is recognized and the synchronization is completed (S240).

비교 결과 차이점이 있는 경우에는 먼저 차이점 발생이 일부분(즉, 앞부분인지, 중간 부분인지, 뒷부분인지)인지, 전체인지 아니면 신규 데이터가 추가된 것인지 결정한다(S250). If there is a difference as a result of the comparison, it is first determined whether the difference is a part (that is, the front part, the middle part, the back part), the whole, or whether new data is added (S250).

이때, 차이가 부분적으로 발생한 경우, 틀린 부분의 데이터 패킷을 요청한다(S260). 이후 틀린 부분만의 데이터를 교환하고 동기화를 종료한다(S270). At this time, if the difference occurs in part, the data packet of the wrong part is requested (S260). Thereafter, only the wrong part is exchanged for data and synchronization is terminated (S270).

하지만, 틀린 부분이 전체이거나 신규 데이터의 추가일 경우에는 전체 파일을 요청한다(S280). 그리고 기존 파일을 전체 파일로 교체하여 동기화를 종료한다(S290).However, if the wrong part is all or addition of new data, the entire file is requested (S280). The synchronization is terminated by replacing the existing file with the entire file (S290).

한편, 본 발명은 상술한 특정한 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 이탈함이 없이 당해 발명에 속하는 분야에서 통상의 지 식을 가진 자라면 누구든지 해당 처리 절차의 순서를 변경하거나, 이에 따라 구성요소가 위치할 하드웨어의 종류를 변경하는 등, 다양한 변경 실시가 가능할 것이다.On the other hand, the present invention is not limited to the above-described specific embodiments, anyone who has ordinary knowledge in the field belonging to the present invention without departing from the gist of the invention claimed in the claims the order of the processing procedure Various modifications may be made, such as changing the type of hardware, or changing the type of hardware where the component is to be located.

도 1은 본 발명의 일 실시예에 따른 데이터 동기화 시스템의 블록도. 1 is a block diagram of a data synchronization system in accordance with an embodiment of the present invention.

도 2는 본 발명의 일 실시예에 따른 서버의 동작을 설명하기 위한 개념도.2 is a conceptual diagram illustrating the operation of a server according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 데이터 동기화 방법을 설명하기 위한 흐름도. 3 is a flowchart illustrating a data synchronization method according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 서버의 동작을 설명하기 위한 흐름도. 4 is a flowchart illustrating an operation of a server according to an embodiment of the present invention.

도 5는 본 발명의 일 실시예에 따른 데이터 동기화 방법을 설명하기 위한 개념도. 5 is a conceptual diagram illustrating a data synchronization method according to an embodiment of the present invention.

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for main parts of the drawings>

100 : 단말기 200 : 서버100: terminal 200: server

210 : 데이터 분할부 220 : 데이터 변환부210: data partitioner 220: data converter

230 : 저장부230: storage unit

Claims (10)

제공된 데이터를 동일 크기의 블록 단위로 분리하는 데이터 분할부와, A data divider for dividing the provided data into block units of the same size; 상기 블록 단위로 분리된 데이터의 내용을 해쉬(Hash) 알고리즘을 이용하여 암호화된 고유키로 변환시키는 데이터 변환부와, A data converter for converting the contents of the data separated in block units into a unique key encrypted using a hash algorithm; 상기 변환된 데이터들의 고유키와 해당 데이터 블록의 위치정보를 서버 인덱스 테이블 구조로 저장하고, 상기 고유키 생성을 위해 사용되는 고유키 생성 파일이 저장된 저장부를 포함하는 서버; 및 A server including a storage unit storing a unique key of the converted data and position information of a corresponding data block in a server index table structure and storing a unique key generation file used for generating the unique key; And 데이터를 생성 저장하고, 상기 생성 및 저장된 데이터를 동일 크기의 블록 단위로 분리하는 단말 데이터 분할부와, 상기 서버로부터 제공된 고유키 생성 파일을 이용하여 블록 단위로 분리된 데이터의 내용을 암호화된 고유키로 변환시키는 데이터 변환부와, 상기 변환된 데이터의 고유키와 해당 데이터 블록의 위치 정보를 단말 인덱스 테이블 구조로 변환하는 테이블 생성부를 포함하는 단말기를 포함하고, A terminal data partitioning unit that generates and stores data and separates the generated and stored data into block units having the same size, and the contents of the data separated in block units using a unique key generation file provided from the server as an encrypted unique key. And a terminal including a data converting unit for converting and a table generating unit for converting the unique key of the converted data and position information of the corresponding data block into a terminal index table structure. 상기 서버 인덱스 테이블과 단말 인덱스 테이블 간의 비교를 통해 데이터 동기화를 수행하는 것을 특징으로 하는 데이터 동기화 시스템.And data synchronization is performed through comparison between the server index table and the terminal index table. 삭제delete 삭제delete 제 1 항에 있어서, The method of claim 1, 상기 서버 인덱스 테이블과 단말 인덱스 테이블 간의 비교는 상기 단말기 또는 상기 서버에서 수행되거나, 별도의 비교 단말기 또는 비교 서버에서 수행되는 것을 특징으로 하는 데이터 동기화 시스템. The comparison between the server index table and the terminal index table is performed in the terminal or the server, or in a separate comparison terminal or comparison server. 데이터를 생성 및 저장하고, 이를 동일 크기의 블록 단위로 분리하는 단말 데이터 분할부와, A terminal data divider for generating and storing data and separating the data into blocks of the same size; 상기 블록 단위로 분리된 데이터의 내용을 암호화된 고유키로 변환시키는 단말 데이터 변환부와, A terminal data converting unit converting contents of the data separated in block units into an encrypted unique key; 상기 변환된 데이터들의 고유키와, 해당 데이터 블록의 위치정보를 단말 인덱스 테이블 구조로 저장하고, 상기 고유키 생성을 위해 사용되는 고유키 생성 파일이 저장되는 저장부와, A storage unit for storing the unique key of the converted data and the location information of the corresponding data block in a terminal index table structure, and storing a unique key generation file used for generating the unique key; 상기 단말 인덱스 테이블과 서버 인덱스 테이블 간을 비교하여 차이가 발생한 데이터 블록을 동기화시키는 비교부를 포함하는 적어도 하나의 단말기; 및 At least one terminal including a comparison unit configured to compare the terminal index table and a server index table to synchronize a data block having a difference; And 상기 블록 단위의 데이터를 제공 받는 경우 이를 암호화된 고유키로 변환시키는 서버 데이터 변환부와, 상기 변환된 데이터의 고유키와, 해당 데이터 블록의 위치 정보를 상기 서버 인덱스 테이블로 저장하는 서버 저장부를 포함하고, 상기 단말 데이터 변환부로 부터 고유키 형태의 인덱스 테이블을 제공 받는 경우 이를 서버 인덱스 테이블 파일로 저장하는 서버를 포함하는 것을 특징으로 하는 데이터 동기화 시스템.A server data conversion unit for converting the data in the block unit into an encrypted unique key, a server storage unit for storing the unique key of the converted data and location information of the corresponding data block in the server index table; And a server for storing the unique index type index table from the terminal data converter as a server index table file. 삭제delete 서버와 단말기 사이의 대용량 데이터의 동기화 방법에 있어서, In the method of synchronizing a large amount of data between the server and the terminal, 상기 서버가 데이터를 생성한 단말기로부터 데이터를 전송받는 단계;Receiving data by the server from a terminal generating data; 상기 전송받은 데이터를 동일 크기의 블록 단위로 블록화하고, 고유키 생성 파일을 통해 데이터 블록으로부터 고유키를 생성하고, 이를 서버 인덱스 테이블 형태로 저장하는 단계;Blocking the received data in units of blocks of the same size, generating a unique key from a data block through a unique key generation file, and storing the received data in the form of a server index table; 상기 서버는 상기 고유키 생성 파일을 상기 단말기에 전송하고, 상기 단말기는 단말기에 저장된 데이터를 블록화하고, 고유키를 생성하여 단말 인덱스 테이블을 형성하는 단계;The server transmitting the unique key generation file to the terminal, the terminal blocking the data stored in the terminal, and generating a unique key to form a terminal index table; 상기 서버 또는 단말기에서 상기 서버 인덱스 테이블과 단말 인덱스 테이블을 비교하는 단계; 및 Comparing the server index table and the terminal index table at the server or the terminal; And 상기 서버 또는 단말기는 비교 결과 인덱스가 동일한 경우에는 해당 블록 내의 데이터가 일치하는 것으로 판단하고, 인덱스가 동일하지 않을 경우에는 해당 블록 내의 데이터가 일치하지 않는 것으로 판단하는 단계를 포함하는 데이터 동기화 방법. And determining, by the server or the terminal, that the data in the corresponding block matches when the indexes are the same, and determining that the data in the corresponding block does not match when the indices are not identical. 제 7 항에 있어서, 상기 고유키를 생성하고, 이를 서버 인덱스 테이블 형태로 저장하는 단계는, The method of claim 7, wherein generating the unique key and storing the unique key in the form of a server index table, 제공된 데이터를 동일 크기의 다수의 블록 단위로 분리하는 단계와, Separating the provided data into a plurality of blocks of the same size; 블록 단위로 분할된 데이터 블록들을 상기 고유키 생성 파일을 이용하여, 블럭화된 데이터의 내용을 고유키로 생성하는 단계와, Using the unique key generation file to divide the data blocks divided into block units, generating the contents of the blocked data as the unique key; 상기 고유키를 서버 인덱스 테이블 형태로 저장하는 단계를 포함하는 것을 특징으로 하는 데이터 동기화 방법.And storing the unique key in the form of a server index table. 제 7 항에 있어서, 상기 고유키 생성 파일을 상기 단말기에 전송하는 단계 전에, The method of claim 7, wherein before transmitting the unique key generation file to the terminal, 상기 서버는 상기 단말기로부터 데이터 동기화 요청을 수신하는 단계를 더 포함하는 것을 특징으로 하는 데이터 동기화 방법.The server further comprises the step of receiving a data synchronization request from the terminal. 삭제delete
KR1020090131522A 2009-12-28 2009-12-28 Method and system for data synchronization KR101045540B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090131522A KR101045540B1 (en) 2009-12-28 2009-12-28 Method and system for data synchronization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090131522A KR101045540B1 (en) 2009-12-28 2009-12-28 Method and system for data synchronization

Publications (1)

Publication Number Publication Date
KR101045540B1 true KR101045540B1 (en) 2011-07-01

Family

ID=44922974

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090131522A KR101045540B1 (en) 2009-12-28 2009-12-28 Method and system for data synchronization

Country Status (1)

Country Link
KR (1) KR101045540B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101277623B1 (en) 2012-01-27 2013-06-21 주식회사 안랩 White list synchronization server and client device
KR20160025282A (en) * 2014-08-27 2016-03-08 김창걸 System and method for providing client terminal to user customized synchronization service
KR101602170B1 (en) * 2014-12-12 2016-03-10 한국과학기술정보연구원 Massive data sharing system and method for efficient memory usage
KR101946620B1 (en) 2018-07-04 2019-02-11 넷마블 주식회사 Method and server for generating a block of data comprising signature of the server
KR20210055880A (en) * 2019-11-08 2021-05-18 주식회사 빅스터 Method for checking encrypted data and method for data encryption

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060070551A (en) * 2003-09-25 2006-06-23 인터내셔널 비지네스 머신즈 코포레이션 Method, system and program for data synchronization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060070551A (en) * 2003-09-25 2006-06-23 인터내셔널 비지네스 머신즈 코포레이션 Method, system and program for data synchronization

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101277623B1 (en) 2012-01-27 2013-06-21 주식회사 안랩 White list synchronization server and client device
KR20160025282A (en) * 2014-08-27 2016-03-08 김창걸 System and method for providing client terminal to user customized synchronization service
KR101638689B1 (en) 2014-08-27 2016-07-11 김창걸 System and method for providing client terminal to user customized synchronization service
KR101602170B1 (en) * 2014-12-12 2016-03-10 한국과학기술정보연구원 Massive data sharing system and method for efficient memory usage
KR101946620B1 (en) 2018-07-04 2019-02-11 넷마블 주식회사 Method and server for generating a block of data comprising signature of the server
KR20210055880A (en) * 2019-11-08 2021-05-18 주식회사 빅스터 Method for checking encrypted data and method for data encryption
KR102276559B1 (en) 2019-11-08 2021-07-14 주식회사 빅스터 Method for checking encrypted data and method for data encryption

Similar Documents

Publication Publication Date Title
CN106844510B (en) Data migration method and device for distributed database cluster
CN110489059B (en) Data cluster storage method and device and computer equipment
US8762743B2 (en) Encrypting data objects to back-up
KR101045540B1 (en) Method and system for data synchronization
CN110930145B (en) Cold wallet generation method, transaction information processing method, device and storage medium
US9881030B2 (en) Distributed archive system, data archive device, and data restoring device with improved restoration and security
US10762051B1 (en) Reducing hash collisions in large scale data deduplication
JP2021500649A (en) Computer implementation methods, computer program products, and systems for storing records in shard database shard tables, computer implementation methods, computer program products, and systems for retrieving records from shard database shard tables. System, as well as a system for storing shard databases
CN109582213B (en) Data reconstruction method and device and data storage system
US11042519B2 (en) Reinforcement learning for optimizing data deduplication
AU2014410705B2 (en) Data processing method and apparatus
EP4231167A1 (en) Data storage method and apparatus based on blockchain network
WO2016029743A1 (en) Method and device for generating logical disk of virtual machine
WO2016141094A1 (en) Parallel asynchronous data replication
US20150088840A1 (en) Determining segment boundaries for deduplication
CN111026711A (en) Block chain based data storage method and device, computer equipment and storage medium
US20230142613A1 (en) Recovering infected snapshots in a snapshot chain
CN107710165B (en) Method and device for storage node synchronization service request
CN106527960B (en) Multi-storage-disk load management method and device, file system and storage network system
Kumar et al. Differential Evolution based bucket indexed data deduplication for big data storage
CN112181974B (en) Identification information distribution method, system and storage device
CN109525649B (en) Data processing method and device for zookeeper client
CN116107801A (en) Transaction processing method and related product
CN111209597A (en) Data verification method and application system
Devarajan et al. Enhanced Storage optimization System (SoS) for IaaS Cloud Storage

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
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140613

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150427

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160613

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170621

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180730

Year of fee payment: 8