KR101274553B1 - Classification and synchronization method of sync data - Google Patents
Classification and synchronization method of sync data Download PDFInfo
- Publication number
- KR101274553B1 KR101274553B1 KR1020110021740A KR20110021740A KR101274553B1 KR 101274553 B1 KR101274553 B1 KR 101274553B1 KR 1020110021740 A KR1020110021740 A KR 1020110021740A KR 20110021740 A KR20110021740 A KR 20110021740A KR 101274553 B1 KR101274553 B1 KR 101274553B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- server
- client
- synchronization
- side data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
- G06F15/17306—Intercommunication techniques
- G06F15/17325—Synchronisation; Hardware support therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
Abstract
본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법은 자료의 맵핑 상태를 확인하여 확인된 맵핑 상태에 따라 자료를 분류하고, 맵핑되지 않은 자료의 상태 속성이 '삭제'인지의 여부를 확인하여 맵핑되지 않고 상태 속성이 '삭제'가 아닌 자료에 대해서만 트윈이 존재하는지의 여부를 확인하고, 맵핑되지 않았으며 상태 속성이 '삭제'인 자료에 대해서는 동기화 처리를 수행하지 않고 자료의 내용을 제외한 자료의 식별자(ID)만을 포함시킨다. 따라서, 동기화 처리 과정에서 트윈 확인 범위를 줄이고 트윈 확인시 내부적 지문을 생성 사용함으로써 정확한 트윈 검색이 이루어질 수 있으며 동기화가 불필요한 자료에 대하여 식별자((D)만을 포함시키므로 패킷량이 감소될 수 있다. 이를 통해 동기화 처리의 속도를 개선하고, 동기화 처리 과정에서의 오류를 방지할 수 있다.The classification and synchronization processing method of the synchronization data according to the present invention checks the mapping status of the data and classifies the data according to the confirmed mapping status, and checks whether or not the status attribute of the unmapped data is mapped. Checks whether a tween exists only for data whose status attribute is not 'delete', and does not perform synchronization processing on data that is not mapped and whose status attribute is 'delete' Include only (ID). Therefore, by reducing the twin identification range in the synchronization process and generating an internal fingerprint during the twin identification, an accurate twin search can be performed, and the packet amount can be reduced because only the identifier (D) is included for the data that is not synchronized. It is possible to improve the speed of the synchronization process and to prevent errors in the synchronization process.
Description
본 발명은 유무선 네트워크를 통한 클라이언트-서버 시스템에서 클라이언트(유무선 디바이스)와 서버간 동기화가 필요한 동기화 데이터(예컨대, 주소록, 일정, 이메일 등)의 분류 및 동기화 처리 방법에 관한 것이다.The present invention relates to a method for classifying and synchronizing synchronization data (eg, address book, calendar, email, etc.) requiring synchronization between a client (wireless device) and a server in a client-server system via a wired or wireless network.
유무선 네트워크를 통한 클라이언트-서버 시스템에 있어서, 모바일 디바이스 또는 PC 장치에서 주소록, 일정, 이메일 등의 동기화가 가능한 자료를 서버와 동기화시키는 과정에서 같은 자료임을 인지시키는 지문(Finger Print)과, 같은 자료임을 확인하는 맵핑 데이터(Mapping Data)를 생성하여 사용하게 된다. 이 맵핑 테이터를 기준으로 클라이언트에서의 변경 사항과 서버에서의 변경 사항을 확인하여 클라이언트나 서버에서 자료를 생성/수정/변경하게 된다.In the client-server system through a wired / wireless network, a fingerprint (Finger Print) that recognizes the same data in the process of synchronizing the synchronization data of the address book, calendar, email, etc. with the server in the mobile device or PC device It creates and uses mapping data to check. Based on this mapping data, changes on the client and changes on the server are checked to create, modify, and change data on the client or server.
이와 같이 맵핑 데이터가 존재하는 경우에 이를 이용하여 작업이 가능하지만 맵핑 데이터가 존재하지 않는 자료에 대하여 중복적으로 처리하는 과정에서 사용자의 의도와 다르게 맵핑되거나 불완전한 처리가 될 수 있다.As such, when mapping data exists, work can be performed by using it, but in the process of overlapping the data for which mapping data does not exist, the mapping data may be mapped or incompletely processed according to the user's intention.
이것을 개선하기 위해 자료를 확인함에 있어 맵핑 데이터가 존재하는 자료와 맵핑 데이터가 존재하지 않는 자료로 구분하고, 이에 대하여 사용자의 의도를 감안하여 별도 처리를 할 필요가 있다.In order to improve this, it is necessary to classify the data into data in which mapping data exists and data in which mapping data does not exist, and process them separately in consideration of the user's intention.
예컨대, 동기화 자료가 주소록인 경우에 있어서 사용자가 서버에 자료를 생성하고 아직 동기화하지 않은 상황에서 동일 자료를 클라이언트에도 생성한 후 사용자가 서버에 자료가 있음을 알고 해당 자료를 클라이언트에서 삭제하고 동기화를 진행할 수 있다. 이러한 상황에서 동기화를 진행하게 되면 상태 속성이 '삭제'인 클라이언트측 자료와 상태 속성이 '생성'인 서버측 자료는 상태 속성에 있어서 상충된 자료이므로 일반적인 동기화 처리 과정에 의하면 서버의 자료가 삭제되거나 클라이언트의 삭제된 자료가 재 생성되어 동기화가 이루어지게 된다. 일단 서버에서 생성된 자료를 삭제할 경우 이를 동기화하지 않은 클라이언트에서는 새로 생성해도 지문이 같다면 동기화 처리의 기준이 '서버측 우선'인 경우에 클라이언트측 자료가 다시 삭제되는 현상을 발생시킬 수도 있다.For example, if the synchronization data is an address book, the user creates the data on the server and generates the same data on the client, but the user deletes the data from the client and realizes the synchronization. You can proceed. In this situation, if the synchronization proceeds, client-side data with a status attribute of 'delete' and server-side data with a status attribute of 'creation' are conflicting data in the status attribute. Deleted data from the client is regenerated and synchronized. Once the data generated by the server is deleted, if the fingerprint is the same even if a new one is generated from the client which has not synchronized, the client-side data may be deleted again when the synchronization process is 'server-side priority'.
이러한 결과가 발생되는 것을 방지하기 위한 일반적인 방법은 맵핑 데이터가 없는 자료는 모두 독립된 자료로 취급하고, 지문에 대한 검사 없이 서로 다른 자료로 간주하여 2개의 중복된 자료가 존재하게 되기 때문에 사용자의 의도에 부합하는 동기화 처리라고 보기 어렵다.The general way to prevent this from happening is to treat all data without mapping data as independent data, and to consider two different data without checking fingerprints. It is hard to think of a matching synchronization process.
본 발명의 상기 문제점을 감안하여 이루어진 것으로서 동기화 처리의 속도를 개선하고, 동기화 처리 과정에서의 오류를 방지할 수 있는 동기화 데이터의 분류 및 동기화 처리 방법을 제공하는 것을 목적으로 한다.The present invention has been made in view of the above problems, and an object thereof is to provide a method of classifying and synchronizing synchronization data which can improve the speed of synchronization processing and prevent errors in the synchronization processing.
상기 목적을 달성하기 위해 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법은,In order to achieve the above object, the classification and synchronization processing method of the synchronization data according to the present invention,
클라이언트로부터 클라이언트측 자료를 전송받아 자료의 상태 속성에 따라 분류하고, 상기 클라이언트측 자료를 서버측 자료와 맵핑된 자료와 맵핑되지 않은 자료로 분류하는 제 1 스텝;Receiving client-side data from a client and classifying the client-side data into data mapped to server-side data and unmapped data according to a state attribute of the data;
서버측 자료를 자료의 상태 속성에 따라 분류하고, 상기 서버측 자료를 상기 클라이언트측 자료와 맵핑된 자료와 맵핑되지 않은 자료로 분류하는 제 2 스텝;A second step of classifying server-side data according to a state attribute of data, and classifying the server-side data into data mapped to the client-side data and unmapped data;
상기 제 1 , 제 2 스텝을 통해 분류된 자료를 취합하여 맵핑되어 있는 자료는 하나의 쌍으로 합하고, 맵핑되지 않은 자료는 독립적인 자료로 해당 자료의 상태 속성 그대로 동기화 처리 리스트에 포함시켜서 동기화 처리 리스트를 생성하는 제 3 스텝;The data classified through the first and second steps are collected and the mapped data are combined into a pair, and the unmapped data are independent data and included in the synchronization processing list as the state attribute of the corresponding data. Generating a third step;
상기 제 3 스텝에서 생성된 동기화 처리 리스트에 의해 동기화 처리를 시작할 첫번째 자료를 검색하여 처리 대상 자료로 지정하는 제 4 스텝;A fourth step of retrieving the first material to start the synchronization process from the synchronization process list generated in the third step and designating it as processing target material;
상기 동기화 처리 리스트에서 처리 대상으로 지정된 자료에 대하여 상기 클라이언트측 자료와 상기 서버측 자료가 서로 맵핑된 자료인지의 여부를 확인하는 제 5 스텝;A fifth step of checking whether or not the client-side data and the server-side data are data mapped to each other with respect to the material designated for processing in the synchronization processing list;
상기 제 5 스텝에서 맵핑되지 않은 자료로 판단된 클라이언트측 자료 및/또는 서버측 자료에 대하여 그 상태 속성이 '삭제'인지의 여부를 확인하는 제 6 스텝;A sixth step of checking whether the state attribute is 'delete' for the client-side data and / or server-side data determined as the unmapped data in the fifth step;
상기 제 6 스텝에서 상태 속성이 '삭제'가 아닌 것으로 판단된 클라이언트측 자료 및/또는 서버측 자료에 대하여 상대방측 자료에 트윈(동일 자료)이 존재하는지의 여부를 확인하는 제 7 스텝;A seventh step of checking whether a tween (same data) exists in the other party's data with respect to the client-side data and / or the server-side data determined that the state attribute is not 'deleted' in the sixth step;
상기 제 7 스텝에서 트윈이 존재하지 않으면 클라이언트측 자료 또는 서버측 자료에 대하여 일반적인 동기화 처리를 위한 설정을 추가하는 제 8 스텝; 및An eighth step of adding a setting for general synchronization processing to the client-side data or the server-side data if the tween does not exist in the seventh step; And
상기 제 8 스텝에서 각 자료에 설정된 지시 내용에 따라 상기 각 자료를 처리하고, 상기 동기화 처리 리스트에 처리할 다음 자료가 있는지의 여부를 확인하여 처리할 다음 자료가 있는 경우에 상기 제 5 스텝으로 진행시키는 한편, 처리할 다음 자료가 없는 경우에 동기화 처리가 완료된 자료를 상기 클라이언트로 전송함과 아울러 서버 자체적으로 업데이트시키는 제 9 스텝을 포함하는 것을 특징으로 한다.The eighth step is to process the respective data according to the instruction set in each data, check whether there is the next data to be processed in the synchronization processing list, and proceed to the fifth step if there is the next data to be processed. On the other hand, if there is no next data to be processed, it is characterized in that it comprises a ninth step of transmitting to the client the data that has completed the synchronization process and updates itself by the server.
또한, 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법은,In addition, the classification and synchronization processing method of the synchronization data according to the present invention,
상기 제 5 스텝에서 처리 대상으로 지정된 자료가 맵핑된 자료라고 판단되면 맵핑된 것으로 판단된 클라이언트측 자료와 서버측 자료를 비교하여 상충이 존재하는지의 여부를 확인하는 제 10 스텝; 및A tenth step of checking whether or not there is a conflict by comparing the client-side data and the server-side data determined to be mapped when the data designated for processing in the fifth step is mapped data; And
상기 제 10 스텝에서 상충이 존재하지 않으면 상기 제 8 스텝으로 진행되는 한편, 상기 제 10 스텝에서 상충이 존재하면 해당 클라이언트측 자료와 서버측 자료에 대하여 상충을 해소하는 처리를 위한 설정을 추가하여 상기 제 9 스텝으로 진행시키는 스텝을 더 포함하는 것을 특징으로 한다.If there is no conflict in the tenth step, the process proceeds to the eighth step, and if there is a conflict in the tenth step, adding a setting for processing to resolve the conflict for the client-side data and the server-side data; And further comprising the step of proceeding to the ninth step.
또한, 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법은,In addition, the classification and synchronization processing method of the synchronization data according to the present invention,
상기 제 6 스텝에서 해당 자료의 상태 속성이 '삭제'이면 동기화 처리가 불필요하다는 내용의 미처리 설정을 추가하여 상기 제 9 스텝으로 진행시키는 스텝을 더 포함하는 것을 특징으로 한다.The method further includes the step of proceeding to the ninth step by adding an unprocessed setting indicating that synchronization processing is unnecessary when the state attribute of the corresponding data is 'deleted' in the sixth step.
또한, 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법은,In addition, the classification and synchronization processing method of the synchronization data according to the present invention,
상기 제 7 스텝에서 해당 자료에 대하여 상대방측 자료에 트윈이 존재하면 상기 제 10 스텝으로 진행되는 스텝을 더 포함하는 것을 특징으로 한다.The method may further include the step proceeding to the tenth step if the tween exists in the counterpart side data for the corresponding data in the seventh step.
또한, 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법은,In addition, the classification and synchronization processing method of the synchronization data according to the present invention,
상기 제 7 스텝에서 트윈 검색시 상기 클라이언트측 자료에 대하여 서버의 내부적 처리에 의해 새로 생성된 지문과 상기 서버측 자료에 대하여 이전 동기화 처리에서 이미 생성된 지문을 비교하여 트윈을 검색하는 것을 특징으로 한다.In the seventh step, the tween is searched by comparing a fingerprint newly generated by an internal processing of a server with respect to the client-side data and a fingerprint already generated by a previous synchronization process with respect to the server-side data. .
또한, 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법은,In addition, the classification and synchronization processing method of the synchronization data according to the present invention,
상기 제 9 스텝에서 동기화 처리가 완료된 자료를 상기 클라이언트로 전송할 때 상기 제 6 스텝에서 상태 속성이 '삭제'인 것으로 판단된 자료에 대해서는 상기 자료의 실제 내용을 제외한 자료의 식별자(ID)만을 포함시켜서 전송하는 것을 특징으로 한다.When transmitting the data whose synchronization process is completed in the ninth step to the client, only the identifier (ID) of the data excluding the actual contents of the data is included in the data determined that the state attribute is 'Deleted' in the sixth step. Characterized in that the transmission.
본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법은 자료의 맵핑 상태를 확인하여 확인된 맵핑 상태에 따라 자료를 분류하고, 맵핑되지 않은 자료의 상태 속성이 '삭제'인지의 여부를 확인하여 맵핑되지 않고 상태 속성이 '삭제'가 아닌 자료에 대해서만 트윈이 존재하는지의 여부를 확인하고, 맵핑되지 않았으며 상태 속성이 '삭제'인 자료에 대해서는 동기화 처리를 수행하지 않고 자료의 내용을 제외한 자료의 식별자(ID)만을 포함시킨다. 따라서, 동기화 처리 과정에서 트윈 확인 범위를 줄이고 트윈 확인시 내부적 지문을 생성 사용함으로써 정확한 트윈 검색이 이루어질 수 있으며 동기화가 불필요한 자료에 대하여 식별자((D)만을 포함시키므로 패킷량이 감소될 수 있다. 이를 통해 동기화 처리의 속도를 개선하고, 동기화 처리 과정에서의 오류를 방지할 수 있다.The classification and synchronization processing method of the synchronization data according to the present invention checks the mapping status of the data and classifies the data according to the confirmed mapping status, and checks whether or not the status attribute of the unmapped data is mapped. Checks whether a tween exists only for data whose status attribute is not 'delete', and does not perform synchronization processing on data that is not mapped and whose status attribute is 'delete' Include only (ID). Therefore, by reducing the twin identification range in the synchronization process and generating an internal fingerprint during the twin identification, an accurate twin search can be performed, and the packet amount can be reduced because only the identifier (D) is included for the data that is not synchronized. It is possible to improve the speed of the synchronization process and to prevent errors in the synchronization process.
도 1은 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법이 구현되는 유무선 네트워크를 통한 클라이언트-서버 시스템의 구성도이다.
도 2는 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법을 나타낸 처리 흐름도이다.
도 3은 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법에 의해 상태 속성과 맵핑 여부에 따라 분류된 동기화 대상 자료에 대하여 동기화 처리 순번을 지정한 동기화 처리 리스트의 일례와 각 자료에 대한 설명이 포함된 표이다.1 is a configuration diagram of a client-server system via a wired or wireless network in which a method of classifying and synchronizing synchronization data according to the present invention is implemented.
2 is a flowchart illustrating a method of classifying and synchronizing synchronization data according to the present invention.
FIG. 3 includes an example of a synchronization processing list specifying synchronization processing sequence numbers for synchronization target materials classified according to status attributes and mapping according to the classification and synchronization processing method of synchronization data according to the present invention, and description of each data. Table.
이하, 본 발명을 실시하기 위한 바람직한 실시형태에 대하여 첨부 도면을 참조하여 상세히 설명한다.EMBODIMENT OF THE INVENTION Hereinafter, preferred embodiment for implementing this invention is described in detail with reference to an accompanying drawing.
도 1은 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법이 구현되는 유무선 네트워크를 통한 클라이언트-서버 시스템의 구성도이다. 도 1에 도시된 바와 같이 유무선 네트워크를 통한 클라이언트-서버 시스템은 유무선 네트워크를 통해 서버(200)와 접속되어 서버측 자료와의 동기화를 요청하게 되는 클라이언트(휴대폰, PC, PDA 등의 유선 또는 무선 디바이스)(100)와, 클라이언트(100)와 유무선 네트워크를 통해 접속되어 있는 서버(200)로 구성되며, 상기 서버(200)는 클라이언트 자료와 콘텐트 서버 자료를 서로 연결하는 맵핑 리스트를 생성/유지/관리하고 클라이언트(100)의 동기화 요청에 따라 동기화 작업을 관리/처리하는 동기화 서버(201)와, 클라이언트(100)와 동기화될 주소록, 일정, 이메일 등의 실제 동기화 자료를 저장/관리하는 콘텐트 서버(203)와, 실제 동기화 자료가 상기 콘텐트 서버(203)와 상기 동기화 서버(201) 사이에서 전송될 수 있도록 두 서버의 연결을 담당하는 커넥터 서버(202)를 포함한다.1 is a configuration diagram of a client-server system via a wired or wireless network in which a method of classifying and synchronizing synchronization data according to the present invention is implemented. As shown in FIG. 1, a client-server system through a wired or wireless network is connected to the
클라이언트(100)로부터 동기화 요청이 있으면 동기화 서버(201)는 클라이언트(100)로부터 클라이언트측 자료를 유.무선 네트워크를 통해 전송받고, 콘텐트 서버(203)로부터 서버측 자료를 커넥터 서버(202)를 통해 전송받아 동기화 처리를 진행하고, 동기화 처리가 완료되면 동기화 서버(201)는 동기화된 자료를 각각 유무선 네트워크와 커넥터 서버(202)를 통해 클라이언트(100)와 콘텐트 서버(203)로 전송하게 된다. 동기화 서버(201)는 동기화 처리 단계에서 동기화가 이루어지는 클라이언트측 자료 및 서버측 자료에 대하여 같은 자료임을 인지시키는데 사용되는 지문을 생성하고, 같은 자료임이 확인된 대응하는 클라이언트측 자료와 서버측 자료를 서로 연결하는 맵핑 리스트를 생성하는 역할도 담당하게 된다.If there is a synchronization request from the
이어서, 지문과 맵핑 데이터에 대하여 상세히 설명한다.Next, the fingerprint and the mapping data will be described in detail.
지문은 각 동기화 자료의 고유성을 가질 수 있는 필드를 기준으로 해쉬 알고리즘(Hash Algorithm)을 사용하여 생성된 값(예컨대 22자리 정수)을 사용하며 고유성을 가지는 필드는 동기화 자료의 종류마다 다를 수 있다. 예를 들어, 주소록의 경우, 성명, 회사 및 부서, 전화번호가 동일하다면 동일인으로 판단할 수 있기 때문에 성명, 회사 및 부서, 전화번호를 이용해 중복되지 않는 특정 정수를 해쉬 알고리즘을 이용하여 생성하고, 이 값이 동일하다면 동일인의 주소록 자료로 인식하게 된다. 이와 같이 지문은 주소록의 경우에 동일인의 주소록 데이터임을 확인하는 수단이 된다.The fingerprint uses a value (eg, a 22-digit integer) generated using a hash algorithm based on a field that may have uniqueness of each sync data, and a field having uniqueness may be different for each kind of sync data. For example, in the case of the address book, if the name, company and department, and phone number are the same, the same person can be judged. Therefore, a specific integer that is not duplicated using the name, company, department, and phone number is generated using the hash algorithm. If this value is the same, it is recognized as the address book data of the same person. Thus, the fingerprint is a means for confirming that the address book data of the same person in the case of the address book.
서버(200)에 접속되어 동기화 처리를 요청하는 유.무선 디바이스(클라이언트)(100)는 복수일 수 있다. 이러한 경우를 감안하여 동기화 처리가 이루어진 자료에 대하여 전역적으로 유일한 한개의 키(전역키, Global ID)를 생성하고 이것을 각 디바이스(100)에 맵핑으로 연결해 둠으로써 디바이스(100)에서 생성된 자료의 디바이스 고유키(지역키, Local ID)가 콘텐트 서버(203)의 어떤 자료와 동일한 자료인지를 디바이스별로 미리 파악하여 둔 정보가 담겨있는 것이 맵핑 데이터이다. 예를 들면, 다음과 같다.There may be a plurality of wired and wireless devices (clients) 100 connected to the
디바이스 지역 키 : L1Device Local Key: L1
콘텐트 서버 지역 키 : S12Content server local key: S12
동기화 서버 광역 키 : G200Synchronization server wide key: G200
이러한 경우에 다음과 같이 맵핑이 이루어져서 맵핑 데이터가 생성된다.In this case, mapping is performed as follows to generate mapping data.
표 1은 디바이스-동기화 서버 맵핑의 일례이다.Table 1 is an example of device-synchronization server mapping.
GUID
GUID
LUID
LUID
G200
G200
L1
L1
표 2는 동기화 서버-콘텐트 서버 맵핑의 일례이다.Table 2 is an example of a synchronization server-content server mapping.
GUID
GUID
콘텐트 ID
Content ID
G200
G200
S12
S12
상기 2개의 표(DB 테이블)에 의거하여 디바이스의 L1 자료는 콘텐트 서버의 S12와 맵핑되었다는 것을 알 수 있고 L1이 수정되면 콘텐트 서버의 S12 자료를 변경할 수 있다.Based on the two tables (DB table), it can be seen that the L1 data of the device is mapped to the S12 of the content server. When L1 is modified, the S12 data of the content server can be changed.
도 2는 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법을 나타낸 처리 흐름도이다. 이하, 도 2에 도시된 각 스텝에 대하여 상세히 설명한다.2 is a flowchart illustrating a method of classifying and synchronizing synchronization data according to the present invention. Hereinafter, each step shown in FIG. 2 will be described in detail.
스텝(S101)은 서버(200)가 클라이언트(100)로부터 동기화 처리가 필요한 클라이언트측 자료를 유무선 네트워크를 통해 전송받아 그 자료를 취합하고 그 자료의 상태 속성에 따라 분류하는 스텝이다. 스텝(S102)은 동기화 처리가 필요한 서버측 자료를 취합하고 그 자료의 상태 속성에 따라 분류하는 스텝이다.Step S101 is a step in which the
스텝(S201)은 스텝(S101)을 통해 취합된 클라이언트측 자료를 맵핑된 자료와 맵핑되지 않은 자료, 즉 맵핑 데이터가 있는 자료와 맵핑 데이터가 없는 자료로 분류하는 스텝이다. 스텝(202)은 스텝(S102)을 통해 취합된 서버측 자료를 맵핑된 자료와 맵핑되지 않은 자료, 즉 맵핑 데이터가 있는 자료와 맵핑 데이터가 없는 자료로 분류하는 스텝이다.Step S201 is a step of classifying the client-side data collected through step S101 into mapped data and unmapped data, that is, data with mapping data and data without mapping data. Step 202 is a step of classifying the server-side data collected through step S102 into mapped data and unmapped data, that is, data with mapping data and data without mapping data.
스텝(S301)은 상기 스텝(S101, S102, S201, S202)을 통해 상태 속성과 맵핑 상태에 따라 분류된 클라이언트측 자료와 서버측 자료를 취합하고, 맵핑된 자료에 대하여 클라이언트(100)와 서버(200)에서 모두 변경이 있는 자료, 클라이언트(100)에서만 변경이 있는 자료, 서버(200)에서만 변경이 있는 자료로 구분/정리하고, 맵핑되어 있는 자료는 하나의 쌍으로 합하고, 그 이외의 자료(즉, 맵핑 데이터가 없는 자료)는 그 자료의 상태 속성을 그대로 동기화 처리 리스트에 포함시켜서 스텝(S401)∼스텝(S1001)을 통해 전체 동기화 대상 자료가 서버(200)에서 한번씩만 처리되게 하기 위한 동기화 처리 리스트를 생성하는 스텝이다.In step S301, the client-side data and the server-side data classified according to the state attribute and the mapping state are collected through the steps S101, S102, S201, and S202, and the
스텝(S401)은 상기 스텝(S301)에서 생성된 처리 리스트에 의해 동기화 처리를 시작할 첫번째 자료를 검색하여 처리 대상 자료로 지정하는 스텝이다.Step S401 is a step of retrieving the first material to start the synchronization process from the processing list generated in step S301 and designating it as processing target data.
스텝(S501)은 동기화 처리 리스트중 스텝(S401) 또는 스텝(S1001)(후술함)에서 처리 대상으로 지정된 자료에 대하여 상기 클라이언트측 자료와 상기 서버측 자료가 서로 맵핑된 자료인지의 여부를 확인하는 스텝이다.Step S501 checks whether or not the client-side data and the server-side data are data mapped to each other with respect to the data designated for processing in step S401 or step S1001 (to be described later) in the synchronization processing list. It's a step.
스텝(S601)은 상기 스텝(S501)에서 맵핑되지 않은 자료로 판단된 클라이언트측 자료 및/또는 서버측 자료에 대하여 그 상태 속성이 '삭제'인지를 확인하는 스텝이다.Step S601 is a step of checking whether the status attribute is 'delete' for the client-side data and / or server-side data determined as unmapped data in the step S501.
스텝(S701)은 상기 스텝(601)에서 상태 속성이 '삭제'가 아닌 것으로 판단된 클라이언트측 자료와 서버측 자료에 대하여 상대방측 자료에 트윈(동일 자료)이 있는지의 여부를 검색하는 스텝이다. 이때, 동기화 서버(201)는 트윈 검색시 상기 클라이언트측 자료에 대하여 동기화 서버(201)의 내부적 처리에 의해 내부적 지문을 새로 생성하고, 이 새로 생성된 클라이언트측 자료의 지문과 이전 동기화 처리에서 이미 생성된 (201) 서버측 자료의 지문을 비교하여 트윈을 검색한다. 지문 비교에 의한 트윈 검색의 결과로서 트윈이 존재하는 경우에는 트윈이 발견된 대응하는 클라이언트측 자료와 서버측 자료를 맵핑하는 새로운 맵핑 데이터를 생성하게 되고, 상세히 후술하는 스텝(S702)으로 진행된다. 트윈이 존재하지 않는 경우에는 클라이언트측에서만 새로 생성된 자료이거나 서버측에서만 새로 생성된 자료이므로 상세히 후술하는 스텝(S802)으로 진행된다. 이와 같이, 트윈 검색에 지문을 이용하기 때문에 검색 속도가 향상될 수 있다.Step S701 is a step of searching for whether there is a twin (same data) in the other party's data for the client-side data and the server-side data determined in step 601 that the status attribute is not 'delete'. At this time, the
스텝(S702)은 스텝(S501)에서 맵핑된 것으로 판단된 클라이언트측 자료와 서버측 자료에, 또는 스텝(S701)에서 트윈이 검색되어 새롭게 맵핑된 클라이언트측 자료와 서버측 자료에 대하여 상충이 존재하는지 확인하는 스텝이다.In step S702, there is a conflict between the client-side data and the server-side data determined to be mapped in step S501, or the client-side data and the server-side data that the twin is searched for in step S701 and newly mapped. This step confirms.
상충이란 클라이언트측 자료와 서버측 자료 모두 이전 동기화 처리 이후에 동기화에 적용할 자료 변경 사항이 발생된 경우, 즉 클라이언트측 자료와 서버측 자료 모두 이전 동기화 처리 이후에 생성 및/또는 수정된 경우를 의미한다.A conflict is when both client-side and server-side data have data changes to apply to the synchronization since the previous synchronization process, that is, both client-side and server-side data have been created and / or modified since the previous synchronization process. do.
스텝(S801)은 스텝(S501)에서 맵핑되지 않은 것으로 판단되고, 스텝(S601)에서 상태 속성이 '삭제'인 것으로 판단된 클라이언트측 자료 또는 서버측 자료에 대하여 동기화 처리를 할 필요가 없다는 미처리 설정을 추가하는 스텝이다.Step S801 is determined as not mapped at step S501, and the unprocessed setting that there is no need to perform synchronization processing on the client-side data or server-side data determined at step S601 that the status attribute is 'Deleted'. It is a step to add.
스텝(S802)은 스텝(S501)->스텝(S702)을 통해 맵핑되었으며 상충이 존재하지 않는 것으로 판단된 자료, 그리고 스텝(S501)->스텝(S601)->스텝(S701)을 통해 맵핑되지 않았으며 상태 속성이 '삭제'가 아니고 트윈이 존재하지 않는 것으로 판단된 자료에 대하여 일반적인 동기화 처리가 이루어지도록 하기 위한 일반 동기화 처리 설정을 추가하는 스텝이다.Step S802 is mapped through step S501-> step S702 and it is determined that there is no conflict, and not mapped through step S501-> step S601-> step S701. Step that adds a general synchronization processing setting for general synchronization processing for data that is determined to have no status attribute and is not deleted and that the tween does not exist.
여기서, 일반적 동기화 처리는 여러 가지가 있을 수 있으나 대표적인 것을 예로 들어 설명하면 다음과 같다.Here, there may be a number of general synchronization processing, but will be described with a representative example as follows.
동기화 처리시 규칙은 서버 우선, 클라이언트 우선이 있을 수 있다. 서버 우선의 경우에는 서버측 자료의 내용을 기준으로 클라이언트측 자료를 서버측 자료와 동일한 내용으로 변경하여 동기화시키는 것이고, 클라이언트 우선의 경우에는 자료의 내용을 클라이언트측 자료의 내용을 기준으로 서버측 자료를 클라이언트측 자료와 동일한 내용으로 변경하여 동기화시키는 것을 말한다.In the synchronization process, rules may be server first and client first. In the server-first case, the client-side data is synchronized with the same content as the server-side data based on the contents of the server-side data. In the case of the client-first, the server-side data is based on the contents of the client-side data. To synchronize the data with the same content as client-side data.
스텝(S803)은 스텝(S501)->스텝(702)을 통해 맵핑되어 있으며 상충이 존재하는 것으로 판단된 자료에 대하여 소정의 상충 해소 정책에 따라 상충을 해소하는 처리가 이루어지도록 하기 위한 상충 해소 처리 설정을 추가하는 스텝이다.Step S803 is mapped through step S501 to step 702, and the conflict resolution processing is performed to resolve the conflict in accordance with a predetermined conflict resolution policy for the material determined to exist. This step adds a setting.
상충 해소 정책이란 예컨대, 서버측 자료와 클라이언트측 자료의 내용을 병합하여 동기화하는 것이 될 수 있다.The conflict resolution policy may be, for example, merging and synchronizing the contents of server-side data and client-side data.
스텝(S901)은 동기화 서버(201)가 스텝(S801), 스텝(S802), 스텝(S803)에서 각 자료에 설정된 지시 내용에 따라 각 자료를 처리하고 그 결과를 취합하는 스텝이다. 이 스텝에서는 동기화 처리의 결과로서 클라이언트 자료와 서버 자료를 연결하는 맵핑 리스트가 작성된다. 이때, 기존의 맵핑을 유지하는 경우에는 새로 맵핑할 필요가 없으며 새로 맵핑되는 자료에 대해서는 새로운 맵핑 정보가 맵핑 리스트에 포함된다. 또한, 동기화 처리가 완료되어 서버(200)에 저장될 서버측 자료 중 이전 동기화 과정에서 생성된 지문을 그대로 사용할 수 있는 자료를 제외한 새로운 지문 생성이 필요한 자료에 대해서는 상기한 바와 같이 동기화 자료의 고유성을 가질 수 있는 필드를 기준으로 해쉬 알고리즘을 사용하여 생성된 값을 사용하여 추후 동기화 과정에서 동일 자료임을 확인하기 위한 수단인 지문을 생성해 둔다.Step S901 is a step in which the
스텝(S1001)은 스텝(S301)에서 생성된 처리 리스트에 의해 처리할 다음 자료가 있는지의 여부를 확인하여 처리할 다음 자료가 있는 경우에 그 자료를 처리 대상 자료로 지정하여 스텝(S501)으로 진행시키고 처리할 다음 자료가 없는 경우에 동기화 처리가 완료된 각 자료를 클라이언트(100)와 콘텐트 서버(203)로 전송하기 위한 스텝(S1002)으로 진행시키는 스텝이다.Step S1001 checks whether there is next data to be processed by the processing list generated in step S301, and if there is next data to be processed, designates the data as processing target data and proceeds to step S501. If there is no next data to be processed, the process proceeds to step S1002 for transmitting each material whose synchronization processing is completed to the
스텝(S1002)은 스텝(S1001)에서 처리할 다음 자료가 없는 것으로 판단된 경우에 스텝(S901)에서 동기화 처리가 완료되어 그 결과가 취합된 자료를 각각 유무선 네트워크와 커넥터 서버(202)를 통해 각각 클라이언트(100)와 콘텐트 서버(203)로 전송하는 스텝이다.In step S1002, when it is determined that there is no next data to be processed in step S1001, the synchronization processing is completed in step S901, and the collected data is collected through the wired / wireless network and the
또한, 동기화 서버(201)가 스텝(S1002)에서 동기화 처리 완료 자료를 클라이언트(100)와 콘텐트 서버(203)로 전송할 때 스텝(S601)에서 상태 속성이 '삭제'인 것으로 판단되어 스텝(S801)에서 미처리 설정이 추가된 자료에 대해서는 자료의 실제 내용을 제외한 자료의 식별자(ID)만을 포함시킨다. 따라서, 전송 데이터의 패킷량이 감소되기 때문에 데이터 전송 속도가 향상될 수 있다.In addition, when the
도 3은 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법에 의해 스텝(S301)에서 생성되는 상태 속성과 맵핑 여부에 따라 분류된 동기화 대상 자료에 대하여 동기화 처리 순번을 지정한 동기화 처리 리스트의 일례와 각 자료에 대한 설명이 포함된 표이다. 이하, 도 3에 도시된 동기화 처리 리스트의 일례를 참조하여 각각의 자료가 어떻게 처리되는지 설명한다.Fig. 3 shows an example and each of the synchronization processing lists for which the synchronization processing sequence is specified for the synchronization target data classified according to the state attribute generated in step S301 and the mapping according to the synchronization data classification and synchronization processing method according to the present invention. This table contains a description of the data. Hereinafter, how each data is processed will be described with reference to an example of the synchronization processing list shown in FIG. 3.
도 3의 표에 있어서, '처리순번' 항목은 동기화 처리가 이루어지는 순번을 의미하고, '맵핑 여부' 항목은 클라이언트측 자료와 서버측 자료가 맵핑되어 있는지의 여부를 나타내는 것으로서 'YES'는 맵핑되어 있는 것을 의미하고, 'NO'는 맵핑되어 있지 않은 것을 의미한다.In the table of FIG. 3, the 'processing order' item means the order in which synchronization processing is performed, and the 'mapping status' item indicates whether or not client-side data and server-side data are mapped, and 'YES' is mapped. 'NO' means not mapped.
클라이언트 자료와 서버 자료의 하부 항목 중 '식별자(ID)' 항목은 각 자료의 고유 식별번호를 나타내고, '상태 속성' 항목에 있어서 '생성'은 이전 동기화 처리 이후 새로 생성된 자료라는 것을 의미하고, '수정'은 이전 동기화 처리 이후에 변경되었으며 변경이 이루어진 이후에 아직 동기화 처리가 이루어지지 않은 자료라는 것을 의미한다. '싱크'는 이전 동기화 처리에 의해 동기화되었으며 그후 아무런 변경이 없는 자료라는 것을 의미하고, '미존재'는 상태 속성이 '생성'인 자료와 맵핑되어 있는 상대측 자료가 존재하지 않는다는 것을 의미한다. '지문' 항목은 상기한 바와 같이 자료의 고유성을 가질 수 있는 필드를 기준으로 해쉬 알고리즘을 사용하여 생성된 값으로서 스텝(S701)에서 트윈 검색시에 사용된다. 서버측 자료는 동기화 처리 과정을 통해 스텝(S901)에서 생성되고 클라이언트측 자료의 경우에는 트윈 검색시에 필요에 따라 내부적으로 생성되므로 상기 스텝(S701)로 진행되지 않는 클라이언트측 자료는 지문이 생성되지 않는다.Among the sub-items of client data and server data, 'ID' item indicates unique identification number of each data and 'Generation' in 'status attribute' item means that data is newly generated after previous synchronization process. "Modified" means that the data has changed since the previous synchronization process and that has not yet been synchronized since the change was made. 'Sink' means that the data has been synchronized by the previous synchronization process and has not changed since then. 'None' means that there is no counterpart data mapped to the data whose status attribute is 'created'. The 'fingerprint' item is a value generated by using a hash algorithm based on a field which may have uniqueness of data as described above, and is used in the twin search in step S701. Since the server-side data is generated in step S901 through a synchronization process, and in the case of client-side data, it is generated internally as necessary during the twin search, so that fingerprints are not generated on the client-side data that does not proceed to step S701. Do not.
'동기화 처리 진행' 항목은 실제 스텝(S301)에서 생성되는 동기화 처리 리스트에는 포함되지 않지만 각 자료의 처리 과정에 대한 이해를 용이하게 하기 위한 부가 설명 항목으로서 각 자료가 전체 동기화 처리 과정에서 어떤 스텝을 거쳐서 동기화 처리가 이루어지는 지를 나타낸다. '비고' 항목도 실제 동기화 처리 리스트에는 포함되지 않지만 각 자료의 상태에 대한 용이한 이해를 도모하기 위해 부가적으로 기재된 내용이다.The 'synchronization processing progress' item is not included in the synchronization processing list generated in the actual step (S301), but is an additional description item to facilitate understanding of the processing of each data. It indicates whether or not synchronization processing is performed. 'Remarks' items are not included in the actual synchronization process list, but are additionally described for easy understanding of the state of each data.
도 3에 도시된 바와 같이, 처리 순번 1번 자료는 클라이언트측 자료(ID:C001)와 서버측 자료(ID:S1001)가 서로 맵핑되어 있으며 모두 이전 동기화 처리 이후 수정된 자료이므로 상태 속성이 '수정'으로 되어 있다. 이 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑된 자료로 판단되고(YES), 스텝(S702)에서 상충이 존재하는 것으로 판단되고(YES), 스텝(S803)에서 상충 해소 처리 설정이 이루어진다.As shown in FIG. 3, the
처리 순번 2번 자료는 클라이언트측 자료(ID:C002)와 서버측 자료(ID:S1002)가 서로 맵핑되어 있으며 클라이언트측 자료(ID:C002)만 이전 동기화 처리 이후 수정되었으며 서버측 자료(ID:S1002)는 이전 동기화 처리 이후 상태의 변경이 없는 자료이다. 이 처리 순번 2번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑된 자료로 판단되고(YES), 스텝(S702)에서 상충이 존재하지 않는 것으로 판단되고, 스텝(S802)에서 일반 동기화 처리 설정이 이루어진다.Data for Processing Sequence No. 2 is that client-side data (ID: C002) and server-side data (ID: S1002) are mapped to each other, only client-side data (ID: C002) has been modified since the previous synchronization process, and server-side data (ID: S1002). ) Is data that has not changed state since the previous synchronization process. This
처리 순번 3번 자료는 클라이언트측 자료(ID:C003)와 서버측 자료(ID:S1003)가 서로 맵핑되어 있으며 클라이언트측 자료(ID:C003)는 이전 동기화 처리 이후 상태의 변경이 없는 자료이고, 서버측 자료(ID:S1002)만 이전 동기화 처리 이후 수정된 자료이다. 이 처리 순번 3번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑된 자료로 판단되고(YES), 스텝(S702)에서 상충이 존재하지 않는 것으로 판단(NO)되고, 스텝(S802)에서 일반 동기화 처리 설정이 이루어진다.Data for
처리 순번 4번 자료는 클라이언트측 자료(ID:C004)와 서버측 자료(ID:S1004)가 서로 맵핑되어 있으며 클라이언트측 자료(ID:C004)는 이전 동기화 처리 이후 삭제된 자료이고, 서버측 자료(ID:S1004)는 이전 동기화 처리 이후 상태의 변경이 없는 자료이다. 이 처리 순번 4번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑된 자료로 판단되고(YES), 스텝(S702)에서 상충이 존재하지 않는 것으로 판단(NO)되고, 스텝(S802)에서 일반 동기화 처리 설정이 이루어진다.Processing number 4 data is client-side data (ID: C004) and server-side data (ID: S1004) mapped to each other, and client-side data (ID: C004) is data deleted after the previous synchronization processing. ID: S1004) is data which has not changed state since the previous synchronization process. This process number 4 data is determined as the data mapped in step S501 in the synchronization process shown in FIG. 2 (YES), and it is determined that there is no conflict in step S702 (NO), and the step In step S802, general synchronization processing settings are made.
처리 순번 5번 자료는 클라이언트측 자료(ID:C005)와 서버측 자료(ID:S1005)가 서로 맵핑되어 있으며 클라이언트측 자료(ID:C005)는 이전 동기화 처리 이후 상태의 변경이 없는 자료이고, 서버측 자료(ID:S1005)는 이전 동기화 처리 이후 삭제 자료이다. 이 처리 순번 5번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑된 자료로 판단되고(YES), 스텝(S702)에서 상충이 존재하지 않는 것으로 판단(NO)되고, 스텝(S802)에서 일반 동기화 처리 설정이 이루어진다.Data for
처리 순번 6번 자료는 클라이언트측 자료(ID:C006)가 이전 동기화 처리 이후 생성되었으므로 맵핑된 서버측 자료가 존재하지 않는 자료이다. 따라서, 이 처리 순번 6번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑되지 않은 자료로 판단(NO)되고, 스텝(S601)에서 상태 속성이 '삭제'가 아닌 것으로 판단(NO)되고, 스텝(S701)에서 트윈 검색을 위해 서버(200)에 의해 내부적 지문(지문값=6)이 생성되어 동기화 처리 리스트내의 서버측 자료 중 지문이 동일한 트윈의 존재 여부에 대한 검색 결과 트윈이 존재하지 않는 것으로 판단(NO)되고, 스텝(S802)에서 일반 동기화 처리 설정이 이루어진다.Process No. 6 data does not exist in the server-side mapped data because client-side data (ID: C006) has been generated since the previous synchronization process. Therefore, this
처리 순번 7번 자료는 서버측 자료(ID:S1007)가 이전 동기화 처리 이후 생성되었으므로 맵핑된 클라이언트측 자료가 존재하지 않는 자료이다. 따라서, 이 처리 순번 7번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑되지 않은 자료로 판단(NO)되고, 스텝(S601)에서 상태 속성이 '삭제'가 아닌 것으로 판단(NO)되고, 스텝(S701)에서 이전 동기화 처리 과정에서 생성된 지문(지문값=7)에 의해 동기화 처리 리스트내의 클라이언트측 자료 중 지문이 동일한 트윈의 존재 여부에 대한 검색 결과 트윈이 존재하지 않는 것으로 판단(NO)되고, 스텝(S802)에서 일반 동기화 처리 설정이 이루어진다.The data of processing No. 7 is the data on which the client-side data does not exist because the server-side data (ID: S1007) was generated after the previous synchronization processing. Therefore, this processing sequence 7 data is determined as NO data that is not mapped in step S501 in the synchronization process shown in FIG. 2, and it is determined that the state attribute is not 'deleted' in step S601. (NO), and the search result tween does not exist in the client-side data in the synchronization processing list according to the fingerprint (fingerprint value = 7) generated in the previous synchronization processing in step S701. It is determined as NO, and the general synchronization processing setting is made in step S802.
처리 순번 8번 자료는 클라이언트측 자료(ID:C008)가 이전 동기화 처리 이후 생성되었다가 삭제된 자료이므로 맵핑된 서버측 자료가 존재하지 않는 자료이다. 따라서, 이 처리 순번 8번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑되지 않은 자료로 판단(NO)되고, 스텝(S601)에서 상태 속성이 '삭제'인 것으로 판단(YES)되고, 스텝(S801)에서 미처리 설정이 이루어진다.The
처리 순번 9번 자료는 서버측 자료(ID:S1009)가 이전 동기화 처리 이후 생성되었다가 삭제된 자료이므로 맵핑된 클라이언트측 자료가 존재하지 않는 자료이다. 따라서, 이 처리 순번 8번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑되지 않은 자료로 판단(NO)되고, 스텝(S601)에서 상태 속성이 '삭제'인 것으로 판단(YES)되고, 스텝(S801)에서 미처리 설정이 이루어진다.Process No.9 data is data that has not been mapped since the server-side data (ID: S1009) is generated and deleted after the previous synchronization process. Therefore, this
처리 순번 10번 자료는 클라이언트측 자료(ID:C010)가 이전 동기화 처리 이후 생성된 자료이므로 맵핑된 서버측 자료가 존재하지 않는 자료이다. 따라서, 이 처리 순번 10번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑되지 않은 자료로 판단(NO)되고, 스텝(S601)에서 상태 속성이 '삭제'가 아닌 것으로 판단(NO)된다. 이어서, 스텝(S701)에서 트윈 검색을 위해 서버(200)에 의해 내부적 지문(지문값=10)이 생성되어 동기화 처리 리스트 내의 서버측 자료 중 지문이 동일한 트윈의 존재 여부에 대한 검색이 이루어진다. 이 검색에 의해 지문이 동일한 서버측 자료(ID:S1011)(지문값=10, 처리 순번 11번 자료, 이 자료는 이전 동기화 처리 이후에 서버측에서 새로 생성된 자료임)가 검색되어 트윈이 존재하는 것으로 판단(YES)되고, 이에 따라 처리 순번 11번 자료[즉, 서버측 자료(ID:S1011)]와 처리 순번 10번 자료[즉, 클라이언트측 자료(ID:C010)]의 새로운 맵핑이 이루어져서 동기화 처리 리스트에서 처리 순번 11번 자료의 내용이 처리 순번 10번 자료의 서버측 자료 항목으로 병합되고 처리 순번 11번 자료는 동기화 처리 리스트에서 삭제된다. 이와 같이 병합된 상기 자료는 스텝(S702)에서 상충이 존재하는 것으로 판단되고(YES), 스텝(S803)에서 상충 해소 처리 설정이 이루어진다.The
처리 순번 12번 자료는 클라이언트측 자료(ID:C012)가 이전 동기화 처리 이후 생성된 자료이므로 맵핑된 서버측 자료가 존재하지 않는 자료이다. 따라서, 이 처리 순번 12번 자료는 도 2에 도시된 동기화 처리 과정에 있어서 스텝(S501)에서 맵핑되지 않은 자료로 판단(NO)되고, 스텝(S601)에서 상태 속성이 '삭제'가 아닌 것으로 판단(NO)된다. 이어서, 스텝(S701)에서 트윈 검색을 위해 서버(200)에 의해 내부적 지문(지문값=12)이 생성되어 동기화 처리 리스트 내의 서버측 자료 중 지문이 동일한 트윈의 존재 여부에 대한 검색이 이루어진다. 이 검색에 의해 지문이 동일한 서버측 자료(ID:S1013)(지문값=12, 처리 순번 13번 자료, 이 자료는 이전 동기화 처리 이후에 서버측에서 새로 생성되었다가 수정된 자료임)가 검색되어 트윈이 존재하는 것으로 판단(YES)되고, 이에 따라 처리 순번 13번 자료[즉, 서버측 자료(ID:S1013)]와 처리 순번 12번 자료[즉, 클라이언트측 자료(ID:C012)]의 새로운 맵핑이 이루어져서 동기화 처리 리스트에서 처리 순번 13번 자료의 내용이 처리 순번 12번 자료의 서버측 자료 항목으로 병합되고 처리 순번 13번 자료는 동기화 처리 리스트에서 삭제된다. 이와 같이 병합된 상기 자료는 스텝(S702)에서 상충이 존재하는 것으로 판단되고(YES), 스텝(S803)에서 상충 해소 처리 설정이 이루어진다.Processing
동기화 처리 리스트에 기재된 각 자료는 상기한 바와 같은 과정을 통해 스텝(S801), 스텝(S802), 및 스텝(S803)에서 이루어진 처리 설정에 따라 스텝(S901)에서 동기화 처리가 수행된다. 스텝(S901)에 대한 설명은 상기한 바와 동일하므로 생략한다.Each material described in the synchronization processing list is subjected to synchronization processing in step S901 according to the processing settings made in steps S801, S802, and S803 through the above-described process. Since the description of step S901 is the same as described above, it is omitted.
이와 같이, 본 발명은 자료의 맵핑 상태와 상태 속성에 따라 자료를 분류하여 맵핑 여부를 확인하고, 맵핑되지 않은 자료의 상태 속성이 '삭제'인지를 확인하고, 맵핑되지 않고 상태 속성이 '삭제'인 자료에 대하여 트윈이 존재하는지를 검색한다. 따라서, 동기화 처리 과정에서 트윈 확인 범위를 줄이고 내부적 지문을 생성 사용함으로써 정확한 트윈 검색이 이루어질 수 있으며, 이를 통해 동기화 처리의 속도를 개선하고, 동기화 처리 과정에서의 오류를 방지할 수 있다.As such, the present invention classifies the data according to the mapping state and the state attribute of the data to check whether it is mapped, checks whether the state attribute of the unmapped data is 'delete', and the state attribute is 'deleted' without being mapped. Finds whether a tween exists for the data. Therefore, the accurate twin search can be performed by reducing the twin confirmation range and generating and using an internal fingerprint in the synchronization process, thereby improving the speed of the synchronization process and preventing an error in the synchronization process.
이상으로 도면을 참조하여 본 발명에 의한 동기화 데이터의 분류 및 동기화 처리 방법의 바람직한 실시형태를 상세히 설명하였지만 본 발명은 상기 실시형태에 한정되는 것이 아니며, 청구범위에 기재된 본 발명의 사상과 범위로부터 벗어나지 않는 당업자에 의한 다양한 수정 및 변경이 가능하다.As mentioned above, although preferred embodiment of the method of classifying and synchronizing the synchronization data by this invention with reference to drawings was described in detail, this invention is not limited to the said embodiment, Comprising: It is not deviating from the thought and range of this invention described in the Claim. Many modifications and variations are possible to those skilled in the art.
Claims (6)
서버측 자료를 자료의 상태 속성에 따라 분류하고, 상기 서버측 자료를 상기 클라이언트측 자료와 맵핑된 자료와 맵핑되지 않은 자료로 분류하는 제 2 스텝;
상기 제 1 , 제 2 스텝을 통해 분류된 자료를 취합하여 맵핑되어 있는 자료는 하나의 쌍으로 합하고, 맵핑되지 않은 자료는 독립적인 자료로 해당 자료의 상태 속성 그대로 동기화 처리 리스트에 포함시켜서 동기화 처리 리스트를 생성하는 제 3 스텝;
상기 제 3 스텝에서 생성된 동기화 처리 리스트에 의해 동기화 처리를 시작할 첫번째 자료를 검색하여 처리 대상 자료로 지정하는 제 4 스텝;
상기 동기화 처리 리스트에서 처리 대상으로 지정된 자료에 대하여 상기 클라이언트측 자료와 상기 서버측 자료가 서로 맵핑된 자료인지의 여부를 확인하는 제 5 스텝;
상기 제 5 스텝에서 맵핑되지 않은 자료로 판단된 클라이언트측 자료 또는 서버측 자료에 대하여 그 상태 속성이 '삭제'인지의 여부를 확인하는 제 6 스텝;
상기 제 6 스텝에서 상태 속성이 '삭제'가 아닌 것으로 판단된 클라이언트측 자료 또는 서버측 자료에 대하여 상대방측 자료에 트윈(동일 자료)이 존재하는지의 여부를 확인하는 제 7 스텝;
상기 제 7 스텝에서 트윈이 존재하지 않으면 클라이언트측 자료 또는 서버측 자료에 대하여 동기화 처리를 위한 설정을 추가하는 제 8 스텝; 및
상기 제 8 스텝에서 각 자료에 설정된 지시 내용에 따라 상기 각 자료를 처리하고, 상기 동기화 처리 리스트에 처리할 다음 자료가 있는지의 여부를 확인하여 처리할 다음 자료가 있는 경우에 상기 제 5 스텝으로 진행시키는 한편, 처리할 다음 자료가 없는 경우에 동기화 처리가 완료된 자료를 상기 클라이언트로 전송함과 아울러 서버 자체적으로 업데이트시키는 제 9 스텝을 포함하는 것을 특징으로 하는 동기화 데이터의 분류 및 동기화 처리 방법.Receiving client-side data from a client and classifying the client-side data into data mapped to server-side data and unmapped data according to a state attribute of the data;
A second step of classifying server-side data according to a state attribute of data, and classifying the server-side data into data mapped to the client-side data and unmapped data;
The data classified through the first and second steps are collected and the mapped data are combined into a pair, and the unmapped data are independent data and included in the synchronization processing list as the state attribute of the corresponding data. Generating a third step;
A fourth step of retrieving the first material to start the synchronization process from the synchronization process list generated in the third step and designating it as processing target material;
A fifth step of checking whether or not the client-side data and the server-side data are data mapped to each other with respect to the material designated for processing in the synchronization processing list;
A sixth step of checking whether the state attribute is 'delete' for the client-side data or the server-side data determined as the unmapped data in the fifth step;
A seventh step of checking whether a tween (same data) exists in the counterpart data for the client-side data or the server-side data determined that the state attribute is not 'Delete' in the sixth step;
An eighth step of adding a setting for synchronization processing to the client-side data or the server-side data if the tween does not exist in the seventh step; And
The eighth step is to process the respective data according to the instruction set in each data, check whether there is the next data to be processed in the synchronization processing list, and proceed to the fifth step if there is the next data to be processed. And a ninth step of transmitting the completed data to the client and updating the server itself when there is no next data to be processed.
상기 제 5 스텝에서 처리 대상으로 지정된 자료가 맵핑된 자료라고 판단되면 맵핑된 것으로 판단된 클라이언트측 자료와 서버측 자료를 비교하여 상충이 존재하는지의 여부를 확인하는 제 10 스텝; 및
상기 제 10 스텝에서 상충이 존재하지 않으면 상기 제 8 스텝으로 진행되는 한편, 상기 제 10 스텝에서 상충이 존재하면 해당 클라이언트측 자료와 서버측 자료에 대하여 상충을 해소하는 처리를 위한 설정을 추가하여 상기 제 9 스텝으로 진행시키는 스텝을 더 포함하는 것을 특징으로 하는 동기화 데이터의 분류 및 동기화 처리 방법.The method of claim 1,
A tenth step of checking whether or not there is a conflict by comparing the client-side data and the server-side data determined to be mapped when the data designated for processing in the fifth step is mapped data; And
If there is no conflict in the tenth step, the process proceeds to the eighth step, and if there is a conflict in the tenth step, adding a setting for processing to resolve the conflict for the client-side data and the server-side data; And further comprising the step of proceeding to the ninth step.
상기 제 6 스텝에서 해당 자료의 상태 속성이 '삭제'이면 동기화 처리가 불필요하다는 내용의 미처리 설정을 추가하여 상기 제 9 스텝으로 진행시키는 스텝을 더 포함하는 것을 특징으로 하는 동기화 데이터의 분류 및 동기화 처리 방법.3. The method of claim 2,
And adding the unprocessed setting indicating that the synchronization process is unnecessary if the state attribute of the corresponding data is 'delete' in the sixth step, and proceeding to the ninth step. Way.
상기 제 7 스텝에서 해당 자료에 대하여 상대방측 자료에 트윈이 존재하면 상기 제 10 스텝으로 진행되는 스텝을 더 포함하는 것을 특징으로 하는 동기화 데이터의 분류 및 동기화 처리 방법.The method according to any one of claims 2 to 3,
And a step of proceeding to the tenth step if there is a tween in the counterpart side data for the corresponding material in the seventh step.
상기 제 7 스텝에서 트윈 검색시 상기 클라이언트측 자료에 대하여 서버의 내부적 처리에 의해 새로 생성된 지문과 상기 서버측 자료에 대하여 이전 동기화 처리에서 이미 생성된 지문을 비교하여 트윈을 검색하는 것을 특징으로 하는 동기화 데이터의 분류 및 동기화 처리 방법.The method according to any one of claims 1 to 3,
In the seventh step, the tween is searched by comparing the fingerprint newly generated by the internal processing of the server with respect to the client-side data and the fingerprint already generated by the previous synchronization process with respect to the server-side data. How to classify and handle synchronization data.
상기 제 9 스텝에서 동기화 처리가 완료된 자료를 상기 클라이언트로 전송할 때 상기 제 6 스텝에서 상태 속성이 '삭제'인 것으로 판단된 자료에 대해서는 상기 자료의 실제 내용을 제외한 자료의 식별자(ID)만을 포함시켜서 전송하는 것을 특징으로 하는 동기화 데이터의 분류 및 동기화 처리 방법.The method according to any one of claims 1 to 3,
When transmitting the data whose synchronization process is completed in the ninth step to the client, only the identifier (ID) of the data excluding the actual contents of the data is included in the data determined that the state attribute is 'Deleted' in the sixth step. Method for classifying and synchronizing synchronization data, characterized in that for transmitting.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110021740A KR101274553B1 (en) | 2011-03-11 | 2011-03-11 | Classification and synchronization method of sync data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020110021740A KR101274553B1 (en) | 2011-03-11 | 2011-03-11 | Classification and synchronization method of sync data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120103847A KR20120103847A (en) | 2012-09-20 |
KR101274553B1 true KR101274553B1 (en) | 2013-06-13 |
Family
ID=47111639
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020110021740A KR101274553B1 (en) | 2011-03-11 | 2011-03-11 | Classification and synchronization method of sync data |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101274553B1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020003674A (en) * | 2000-06-24 | 2002-01-15 | 정승채 | Data synchronization system and method thereof |
KR100640512B1 (en) | 2004-03-12 | 2006-10-30 | 삼성전자주식회사 | Method and system for synchronizing data between server and terminal using messenger service system |
KR100884543B1 (en) | 2007-06-04 | 2009-02-18 | 계명대학교 산학협력단 | Data-Synchronization method and Gateway thereof |
-
2011
- 2011-03-11 KR KR1020110021740A patent/KR101274553B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020003674A (en) * | 2000-06-24 | 2002-01-15 | 정승채 | Data synchronization system and method thereof |
KR100640512B1 (en) | 2004-03-12 | 2006-10-30 | 삼성전자주식회사 | Method and system for synchronizing data between server and terminal using messenger service system |
KR100884543B1 (en) | 2007-06-04 | 2009-02-18 | 계명대학교 산학협력단 | Data-Synchronization method and Gateway thereof |
Also Published As
Publication number | Publication date |
---|---|
KR20120103847A (en) | 2012-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108140031B (en) | Peer-to-peer synchronizable storage system | |
EP2724517B1 (en) | Method and apparatus for the preemptive creation of binary delta information within a computer network | |
US9465877B2 (en) | Globally unique identifiers in an online content management system | |
US9660858B2 (en) | Maintaining consistent globally unique identifiers via an asynchronous interface | |
US10270845B2 (en) | Enriching contact data based on content sharing history in a content management system | |
US11914585B2 (en) | Servicing queries of a hybrid event index | |
US20090063448A1 (en) | Aggregated Search Results for Local and Remote Services | |
JP5008748B2 (en) | Search method, integrated search server, and computer program | |
US9613044B2 (en) | Maintaining concurrency and consistency of globally unique identifiers | |
US20120166518A1 (en) | Providing state service for online application users | |
CN107004013A (en) | System and method for providing distributed tree traversal using hardware based processing | |
WO2018036324A1 (en) | Smart city information sharing method and device | |
US20170193039A1 (en) | Servicing queries of an event log | |
US8930698B2 (en) | Encrypting globally unique identifiers at communication boundaries | |
JP2012194989A (en) | Retrieval method, integrated retrieval server and computer program | |
US9417796B2 (en) | Method, a server, a system and a computer program product for copying data from a source server to a target server | |
CN113641686B (en) | Data processing method, data processing apparatus, electronic device, storage medium, and program product | |
KR101274553B1 (en) | Classification and synchronization method of sync data | |
US9286305B2 (en) | Virtual storage gate system | |
US11157454B2 (en) | Event-based synchronization in a file sharing environment | |
JP2019519034A (en) | Method and apparatus for managing file attribute information {METHOD FOR MANAGING ATTRIBUTE INFORMATION OF FILE AND COMPUTING DEVICE USING THE SAME} | |
Pak et al. | A Group Data Synchronization Protocol in Mobile Environments | |
Yanovsky et al. | Distributed cloud system: security and keyword indexing issues with implementation strategy and business limitations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160519 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170607 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180605 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190605 Year of fee payment: 7 |