KR100935831B1 - A method for a data synchronizing based on a data structure which has multiple event identifier and the Data back up solution uses the method - Google Patents

A method for a data synchronizing based on a data structure which has multiple event identifier and the Data back up solution uses the method Download PDF

Info

Publication number
KR100935831B1
KR100935831B1 KR1020080114283A KR20080114283A KR100935831B1 KR 100935831 B1 KR100935831 B1 KR 100935831B1 KR 1020080114283 A KR1020080114283 A KR 1020080114283A KR 20080114283 A KR20080114283 A KR 20080114283A KR 100935831 B1 KR100935831 B1 KR 100935831B1
Authority
KR
South Korea
Prior art keywords
data
file
server
backup
synchronization
Prior art date
Application number
KR1020080114283A
Other languages
Korean (ko)
Other versions
KR20080107339A (en
Inventor
우용태
Original Assignee
우용태
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 우용태 filed Critical 우용태
Priority to KR1020080114283A priority Critical patent/KR100935831B1/en
Publication of KR20080107339A publication Critical patent/KR20080107339A/en
Application granted granted Critical
Publication of KR100935831B1 publication Critical patent/KR100935831B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes

Abstract

본 발명은 서버와 PC 간 지능적인 데이타 백업 행위를 수행하는 데 필요한 데이타 동기화 방법 및 이를 이용한 데이타백업솔루션에 관한 것이다. 본 발명의 데이타 동기화 방법에 따른 데이타백업솔루션은 기존의 백업솔루션의 저장방식과는 달리 서버에 저장된 데이타가 원본데이타의 역할을 하고 PC에 저장된 데이타는 작업용 데이타의 역할을 하면서 개인 데이타를 효율적으로 자동 관리한다.The present invention relates to a data synchronization method for performing intelligent data backup behavior between a server and a PC, and a data backup solution using the same. The data backup solution according to the data synchronization method of the present invention, unlike the conventional backup solution storage method, the data stored in the server acts as the original data and the data stored in the PC acts as the work data automatically and automatically Manage.

본 발명은 ECA(Event Condition Action)모델을 기반으로 CDP(Continuous Data Protection)기술을 이용하여 서버와 각 PC 파일간의 데이타 동기화를 수행하며, 이를 구현하기 위하여 서버 또는 PC에 저장된 소정의 데이타들은 적어도 하나의 발생식별자와 상기 발생식별자의 생성시점 이후에 생성 및 변경되는 적어도 두 개의 변경식별자를 가진 데이타구조체로 저장된다.The present invention performs data synchronization between a server and each PC file using CDP (Continuous Data Protection) technology based on an Event Condition Action (ECA) model. Is stored as a data structure having a generation identifier of and at least two change identifiers generated and changed after the generation time of the generation identifier.

또한 상기 식별자들 중 어느 하나의 식별자를 기준으로 삭제대상 데이타들을 선정하고, 다른 하나의 식별자를 기준으로 저장대상 또는 호출대상 또는 전달대상 데이타들을 동기화하는 데이타 동기화 방법이 적용되는 것이 특징이다.In addition, a data synchronization method of selecting data to be deleted based on any one of the identifiers and synchronizing the storage object, the call object or the delivery object data based on the other identifier is applied.

본 발명에 사용되는 ECA 모델에서는 서버와 PC간의 동기화를 유지하기 위한 조건으로 먼저 사용자 PC에서의 파일의 변경 사항을 이벤트로 정의한다. 이벤트에 의해 생성된 백업 리스트는 본 발명에서 새롭게 정의된 XML형식의 데이타구조체인 ActiveML에 의해 시스템 또는 사용자가 정의한 시간에 따라 서버로 백업된다. 서버에 저장된 데이타는 사용자가 원하는 시점에 복구할 수 있다.In the ECA model used in the present invention, a condition for maintaining synchronization between the server and the PC is first defined as an event of a file change in the user's PC. The backup list generated by the event is backed up to the server according to the time defined by the system or user by ActiveML which is a data structure of XML format newly defined in the present invention. The data stored on the server can be restored at any time you want.

본 발명을 구현한 시스템은 기존의 개인 백업솔루션에서 서버에 백업본을 유지하기 위해 PC에서 수동적으로 파일을 업로드하는 단방향의 백업방식과 달리, 서버와 PC간의 저장된 파일을 자동적으로 비교하여 파일을 자동적으로 업로드 및 다운로드하여 실시간으로 동기화를 유지하는 양방향의 능동적인 백업방식을 제공한다. 또한, 다수의 PC에서 다수의 파일을 동시에 작업하는 복잡한 개인 컴퓨팅환경에서 발생할 수 있는 다양하고 복잡한 백업요구에 대하여도 파일삭제와 파일명 변경후 생성 등을 병행하면서 수행 가능하다. 다시 말해서 특정 시점에서의 동기화 하지 않은 PC의 특정 작업상태를 서버로 백업하거나, 특정 시점에서의 서버데이타와 상기 서버와 동기화 하지 않은 PC의 작업데이타를 자동으로 통합시키는 등의 편리한 백업데이타 동기화가 가능하다.The system implementing the present invention is different from the one-way backup method in which a PC manually uploads a file to maintain a backup copy on a server in the existing personal backup solution, and automatically compares files stored between the server and the PC. It provides a bi-directional, active backup method that uploads and downloads to maintain synchronization in real time. In addition, various complicated backup requests that can occur in a complex personal computing environment where multiple files are simultaneously operated on multiple PCs can be performed while deleting files and creating a file after changing a file name. In other words, convenient backup data synchronization is possible, such as backing up a specific work status of a PC not synchronized at a specific point of time to a server, or automatically integrating server data at a specific time and work data of a PC not synchronized with the server. Do.

데이타, 동기화, 백업, 식별자, synchronization, hash fuction, time stamp, XML, ECA, event-driven Data, synchronization, backup, identifier, synchronization, hash fuction, time stamp, XML, ECA, event-driven

Description

복수의 이벤트 식별자가 포함된 데이타구조체를 이용한 데이타동기화 방법 및 상기 방법을 이용한 데이타 백업솔루션{A method for a data synchronizing based on a data structure which has multiple event identifier and the Data back up solution uses the method}A method for a data synchronizing based on a data structure which has multiple event identifier and the Data back up solution uses the method}

본 발명은 네트워크된 개인컴퓨팅 환경에서 데이타를 동기화하여 정렬, 저장, 삭제, 호출 등의 데이타베이스 관리작업을 수행하는 데이타 동기화 및 데이타 자동백업기술에 관한 것이다.The present invention relates to a data synchronization and automatic data backup technology for synchronizing data in a networked personal computing environment and performing database management tasks such as sorting, storing, deleting, and calling.

가. 본 발명이 속하는 기술분야의 현황.end. Status of the technical field to which the present invention belongs.

개인 컴퓨팅 환경이 네트워크화 됨에 따라 보존해야 할 데이타의 양은 급증하는 추세이며, 이에 따라 기업 데이타 뿐만 아니라 개인 데이타도 안전하게 보존하기 위한 백업의 필요성이 증대되고 있다. 2002년 IDC 조사에 따르면 기업의 중요 데이타의 75%는 서버가 아닌 개인 PC에 보관하고 있다. 또한, 2004년 가트너 보고서에 따르면 PC 디스크 중에서 약 30% 정도가 개인의 중요 데이타이고, 이 데이타 중 30%만이 가공되어 ERP/그룹웨어/KMS/EDMS 등과 같은 서버 영역에 보관되고 있다.As the personal computing environment is networked, the amount of data to be preserved is increasing rapidly. As a result, the need for backup to securely preserve not only corporate data but also personal data is increasing. According to a 2002 IDC survey, 75 percent of a company's critical data is stored on a personal PC, not on a server. In addition, according to the 2004 Gartner report, about 30% of PC disks are important data for individuals, and only 30% of the data are processed and stored in server areas such as ERP / groupware / KMS / EDMS.

이에 따라 백업 대상이 기존의 시스템 관리 차원의 백업 방식에서 개인 데이타를 안전하게 관리하기 위한 외장디스크 및 웹기반의 개인용 백업솔루션(예컨대 상업용 프로그램 패키지 등)을 활용한 개인 데이타 백업 방식으로 확산되고 있다.Accordingly, the backup target is spreading to the personal data backup method using the external disk and web-based personal backup solution (for example, commercial program package) to safely manage personal data in the existing system management method.

개인용 PC 데이타의 백업 소홀로 인한 손실 비용은 최근 년간 약 180억 달러에 달한다는 조사결과가 있다. Insurance Agency사의 분석에 의하면 개인 데이타의 손실 유형은 사용자의 실수(29%), 바이러스(6%), 하드웨어 오류(40%), 소프트웨어 오류(13%), 도난파손(13%)으로 나타난다. 일주일에 PC 1,000대당 1대 꼴로 디스크 파손이 발생하고 있으며, 사고 1건당 피해액은 약 4,016달러로 추정되고 있다.The cost of loss of backup of personal PC data has been around $ 18 billion in recent years. Insurance agency analysis shows that the types of loss of personal data are user error (29%), virus (6%), hardware error (40%), software error (13%), and theft (13%). One disk failure occurs every 1,000 PCs a week, with an estimated damage of $ 4,016 per incident.

위의 손실 중, 시스템 장애 및 바이러스(59%)에 따른 손실은 백업/복구 소프트웨어에 의해 개선할 수 있으며, 도난 및 파손(13%)에 따른 손실은 분산/이중백업 방식에 의해 개선할 수 있다. 다시 말해서 개인 데이타의 전용 백업솔루션으로 해결할 수 있는 문제이다.Among the above losses, losses due to system failures and viruses (59%) can be improved by backup / recovery software, and losses due to theft and damage (13%) can be improved by distributed / dual backup methods. . In other words, the problem can be solved with a dedicated backup solution for personal data.

하지만 개인 백업솔루션은 외장디스크 관리, 수동적이고 번거로운 업로드/다운로드 과정, 사용 비용 부담 그리고 중요 데이타를 타사 서버에 보관하는데 따른 보안상의 문제점을 가지고 있다. 특히 기존 시스템은 수동적으로 백업해야 하는 번거러움으로 인해 최신 백업본을 자동으로 유지하거나 간단한 조작만으로 여러 대의 PC에 분산된 파일간의 동기화, 즉 데이타 동기화를 유지하기 어렵다.However, personal backup solutions have problems with external disk management, manual and cumbersome upload / download process, usage cost, and security of important data on third party server. In particular, it is difficult for existing systems to maintain the latest backup automatically or simply keep the data synchronized among files distributed among multiple PCs with simple operation.

이러한 이유로 아직까지 대부분의 개인 백업솔루션은 주로 장애 발생에 대비하여 예방 차원에서 데이타를 저장하는 목적으로 사용되고 있다.For this reason, most personal backup solutions are still used to store data as a preventive measure in case of a failure.

현재 국내에서 개인 데이타 백업을 위해 널리 사용되는 데이콤의 웹하드, KTH의 웹백업 서비스는 월정액의 비용을 지불하고 웹 서버에 일정 공간을 빌려쓰는 방식, 즉 ASP서비스 방식이다. 하지만 상기 서비스들은 사용자의 수동적인 업로드/다운로드 과정이 필요하며 여러대의 PC에서 중복 작업된 데이타를 자동으로 동기화 시켜주지는 않는다. 최근에 국내 클래러스사에서 실시간 백업과 암호화를 지원하는 제품을 출시하였지만, 이 역시 실시간 모니터링 기술을 백업기능의 효율화에 활용하고 있을 뿐 본 발명에서 개발한 ECA(Event-Condition Action) 모델 기반의 자동적인 동기화 방법을 지원하지 않는다.Dacom's web hard, KTH's web backup service, which is widely used for personal data backup in Korea, is a method of paying a monthly fee and renting a certain space on a web server, that is, ASP service. However, these services require a manual upload / download process of the user and do not automatically synchronize duplicated data on multiple PCs. Recently, Korea's Clarus has released a product that supports real-time backup and encryption, but this also utilizes the real-time monitoring technology for the efficiency of the backup function. Does not support in-sync methods.

표 1은 국내 대표적인 개인용 백업 제품의 기술 수준을 비교한 내용이다. Table 1 compares the technical levels of Korea's leading personal backup products.

국내 대표적인 개인용 백업 제품의 기술 수준 비교Comparison of Technology Levels of Korea's Leading Personal Backup Products 종 류 기 능      Type Function 데이콤Dacom KTHKTH 클래러스Clarus 웹하드Web hard 웹백업Web backup 인텔리스토 프로Intellito Pro 서비스 제공방식Service delivery method 웹기반 ASP 서비스Web based ASP service 웹기반 ASP 서비스Web based ASP service PC 기반 솔루션PC-based solution 백업 소스Backup source 개인용 PC 데이타Personal PC data 개인용 PC 데이타Personal PC data 개인용 PC 데이타Personal PC data 백업 타겟Backup target 데이콤사의 웹하드 서버DACOM's web hard server KTH사의 백업 서버KTH's Backup Server 사용기관 백업 서버 User backup server 백업 방식Backup method 즉시백업 주기/시간별 스케줄링 백업 Instant backup cycle / hourly scheduled backup 최초 풀백업/즉시백업 Task별다중스케줄링 백업Multi-scheduled backup by initial full backup / immediate backup task 최초 풀백업/즉시백업 시간별다중스케줄링 백업 First full backup / immediate backup hourly multiple scheduling backup 실시간 백업Real time backup 지원하지 않음Not supported 지원하지 않음Not supported 실시간 백업 가능Real time backup available 변경 파일 백업 미흡Insufficient change file backup 인크리멘탈 Incremental 백업back up 변경된 파일만 백업Back up only changed files 델타 백업Delta backup 변경된 파일만 백업Back up only changed files 변경된 파일이 있는 With changed files 폴더만 검색하여 백업  Search only folders and back up 암호화/압축Encryption / Compression 지원하지 않음Not supported 블록단위 압축/암호화 파일별 암호 설정 불가Block-by-block compression / encryption Password cannot be set for each file 자체 압축/암호화 방식 파일별 암호 설정 불가Self-compression / Encryption method File-specific password cannot be set 백업 폴더/ 파일버전관리Backup folder / file version management 파일 최종 수정일자별 버전 관리Version control by file last modified date 시간별 백업버전 관리Hourly backup version management 시간별 백업버전 관리Hourly backup version management 백업 동기화Backup sync 지원하지 않음Not supported 지원하지 않음Not supported 지원하지 않음Not supported 복구 방식Recovery method 웹기반 복구Web-based recovery 웹기반 복구 버전별 복구 가능Recoverable by web-based recovery version 솔루션 기반 복구 버전별 복구 가능Solution-based recovery can be recovered by recovery version

한편, 외국의 개인용 백업 제품 또한 대부분의 국내 제품처럼 일정 비용을 받고 웹서버의 공간을 빌려주는 ASP 서비스 방식이 대부분이다. 최근에 시만텍의 ‘백업 이그젝 10d’, IBM의 ‘Tivoli CDP for Files’와 같은 CDP(Continuos Data Protection)기술을 이용한 제품이 출시되었지만, 운영체제나 사용 환경이 제한되는 문제점이 있다. 그리고 미국 Carbonite Backup이나 Data Deposit Box 등은 CDP 기술을 응용하여 실시간 백업 기능을 일부 지원하고 있지만 데이타 손실에 대비한 ASP 방식의 백업 서비스 위주로 제공되고 있다. 또한 기존의 외국 제품은 이하에서 설명될 본 발명에서 개발한 PC 서버에서 운영되는 Event-Driven 방식의 동기화 프로토콜을 이용한 개인 데이타의 자동관리기능을 제공하지 않는다. 표 2는 국외 대표적인 개인용 백업 제품의 기술 수준을 비교한 내용이다. On the other hand, foreign personal backup products, like most domestic products, are mostly ASP services that rent a web server space for a certain cost. Recently, products using Continuos Data Protection (CDP) technologies such as Symantec's "Backup Exe 10d" and IBM's "Tivoli CDP for Files" have been released. However, the operating system and environment are limited. In addition, the US Carbonite Backup or Data Deposit Box supports CDP technology to provide real-time backup function, but is mainly provided for ASP type backup service for data loss. In addition, existing foreign products do not provide an automatic management function of personal data using an event-driven synchronization protocol operated by a PC server developed in the present invention to be described below. Table 2 compares the technical levels of the leading international personal backup products.

국외 대표적인 개인용 백업 제품의 기술 수준 비교Comparison of Technology Levels of Leading International Personal Backup Products 종 류 기 능     Type Function IRON Mountain Inc.IRON Mountain Inc. Acpana Business Systems Inc.Acpana Business Systems Inc. Carbonite Inc.Carbonite Inc. Data ProtectorData Protector Data Deposit BoxData deposit box Carbonite BackupCarbonite backup 서비스 제공방식Service delivery method 웹기반 ASP 서비스Web based ASP service 웹기반 ASP 서비스Web based ASP service PC 기반 ASP 서비스PC-based ASP Service 백업 소스Backup source 개인용 PC 데이타Personal PC data 개인용 PC 데이타Personal PC data 개인용 PC 데이타Personal PC data 백업 타겟Backup target 백업서버Backup server Data Deposit Box사의 백업 서버Data Deposit Box Backup Server Carbonite사의 백업서버Carbonite Backup Server 백업 방식Backup method 최초 풀 백업 즉시 백업 스케줄 백업First full backup Immediate backup Scheduled backup 최초 풀 백업 즉시 백업Immediate backup of the first full backup 최초 풀 백업 변경된 파일에 대해24시간 간격으로 백업First full backup Back up every 24 hours for changed files 실시간 백업Real time backup 지원하지 않음Not supported 백그라운드 백업 프로 세스에 의한 백업Backup by background backup process time interval 기준으로 based on time interval 프로세서 구동  Processor driven 새로운 파일에 대해 About new file Agent restart시 백업Backup at Agent restart 인크리멘탈 백업Incremental Backup 델타 백업Delta backup 최근 백업본 기준으로 변경된 파일만 백업Back up only files that have changed based on the most recent backup 최근 백업본 기준으로Based on recent backups 변경된 파일만 백업  Back up only changed files 최근 백업본 기준으로Based on recent backups 변경된 파일만 백업  Back up only changed files 암호화/압축Encryption / Compression 블록단위 압축후 전송 암호키 설정 없음No encryption key setting for transmission after block unit compression 웹 접속시 암호 사용백업 파일 그룹 공유Use password for web access Backup filegroup sharing 사전 암호화 후 전송 파일별 암호 설정 불가Unable to set password for each transmission file after pre-encryption 백업폴더/파일 버전관리Backup folder / file version management 시간별 버전 관리Hourly Version Control 시간별 버전 관리Hourly Version Control 시간별 버전 관리Hourly Version Control 백업 동기화 Backup sync 지원하지 않음Not supported 지원하지 않음Not supported 지원하지 않음Not supported 복구 방식Recovery method 버전별 복구 가능 솔루션을 통해서만 복구 가능Recoverable only with version-specific recoverable solution 버전별 복구 가능 웹 서비스를 통한 복구 가능Recoverable by version-recoverable web service 솔루션을 통해서만 복구 가능Recoverable only through solution

나. 본 발명이 기초로 하는 데이타 처리관련 기술의 소개.I. Introduction of data processing related technology on which the present invention is based.

데이타 동기화(data synchronization)란 네트워크상에 존재하는 둘이상의 논리적 장치에 분산된 특정 데이타의 내용을 일치시켜주는 기술이다. 백업은 원시 장치에 존재하는 데이타를 목적지 장치로 일괄 복사하는 개념이지만, 동기화는 동기화 모드에 따라 원시 장치와 목적 장치간의 데이타를 일치시키는 개념이다. 즉, 동기화는 원시 장치에 입력, 수정, 삭제와 같은 변경이 일어났을 경우 목적 장치의 데이타에도 변경 사항을 동일하게 적용하여 다중 장치간에 데이타끼리 일관성을 유지할 수 있는 기술이다. Data synchronization is a technique for matching the content of specific data distributed over two or more logical devices on a network. Backup is a concept of batch copying data existing in the raw device to the destination device, but synchronization is a concept of matching data between the raw device and the target device according to the synchronization mode. In other words, synchronization is a technology that allows data to be consistently applied among multiple devices by applying the same change to data of a target device when a change such as input, modification, or deletion occurs in a raw device.

데이타 동기화는 시점에 따라 일정 시간 간격이나 특정 시간대에 데이타 동기화 작업이 일어나게 하는 방식과 한쪽에서 데이타 변경이 일어나면 실시간으로 상대편 데이타를 변경하는 방식이 사용되고 있다. In data synchronization, data synchronization is performed at specific time intervals or at specific time intervals, and when data changes on one side, data is changed in real time.

최근에 무선 인터넷 서비스가 활성화됨에 따라 무선 단말기의 데이타와 PC 또는 서버와 데이타를 동기화하기 위한 문제가 이슈로 떠오르고 있다. 이에 따라 산업계에서는 다양한 이기종 장치들간에 상호운용성을 보장하기 위해 SyncML(Synchronization Markup Language)을 동기화 표준 프로토콜로 널리 사용하고 있다.Recently, as the wireless Internet service is activated, a problem for synchronizing data between a wireless terminal and data with a PC or a server has emerged as an issue. Accordingly, the industry has widely used SyncML (Synchronization Markup Language) as a synchronization standard protocol to ensure interoperability among various heterogeneous devices.

SyncML은 이기종 환경에서의 데이타 상호호환성을 해결하기 위해 SyncML 컨소시엄을 통해 만들어진 동기화 표준 프로토콜이다. SyncML은 모바일과 PC간의 데이타 동기화뿐 아니라, PC와 PC, PC와 메인프레임간의 데이타 동기화를 포함한 모든 분산 데이타간의 동기화 작업에 응용할 수 있다. SyncML is a synchronization standard protocol created by the SyncML Consortium to address data interoperability in heterogeneous environments. SyncML can be applied not only to data synchronization between mobile and PC, but also for all distributed data synchronization tasks, including data synchronization between PC and PC, PC and mainframe.

SyncML은 데이타 동기화에 필요한 정보를 담은 SyncML 표현 프로토콜(XML representation), 메세지 핸들링에 필요한 동기화 프로토콜(SyncML Protocol), 네트워크상에서 메세지 송수신을 위한 트랜스포트 바인딩(Transport Binding)으로 구성된다. 도 1은 SyncML의 프레임워크를 표현한 그림이다.SyncML consists of a SyncML representation protocol (XML representation) containing information necessary for data synchronization, a synchronization protocol (MessageML Protocol) required for message handling, and a transport binding for sending and receiving messages on the network. 1 is a diagram representing a framework of SyncML.

CDP(Continuos Data Protection) 기술은 파일 생성, 수정 같은 파일의 변화에 대한 백업본을 연속으로 저장하여 블록이나 파일 단위로 신속한 복구시간과 유연한 복구지점을 제공하는 기술이다. CDP 기술은 이벤트에 의해 자동으로 백업을 수행하여 관리자나 사용자의 수동적인 조작없이 편리하게 데이타를 관리할 수 있는 신기술로 발전할 전망이다. 국내에서 CDP 기술은 아직까지 초기 단계이며, 외국에서는 시만텍의 백업 이그젝 10d, IBM의 Tivoli CDP for Files와 같은 CDP 제품을 통해 2006년부터 활성화 단계에 있다.Continuos Data Protection (CDP) technology provides fast recovery times and flexible recovery points on a block or file basis by continuously storing backup copies of file changes such as file creation and modification. CDP technology is expected to evolve into a new technology that can easily back up data by event and manage data conveniently without manual operation of administrator or user. In Korea, CDP technology is still in its infancy, and in foreign countries, it has been activated since 2006 through CDP products such as Symantec's Backup Eject 10d and IBM's Tivoli CDP for Files.

동기화 솔루션은 PC, PDA, 휴대폰 등 다양한 단말기에 분산된 이메일, 주소록, 전화번호 등의 개인정보를 유무선으로 연결하여 상호 일치시켜주는 기술이다. 외국에서는 IBM, 모토로라, 노키아와 같은 세계적인 기업에서 결성한 국제동기화기술협회에서 동기화 솔루션 기술에 대한 인증 테스트를 실시하고 있다. 국내에서는 인포뱅크, 네오스텝스, 아이소프트 등과 같은 기업에서 무선 단말기나 PC 간의 유무선 동기화 솔루션 제품 개발을 위해 활발하게 연구가 진행 중이다. 본 발명에서 개발한 PC, 노트북, 서버에 분산된 개인 데이타를 자동적으로 동기화하기 위한 기술은 국내외적으로 아직 초기 수준이다.Synchronization solution is a technology that connects personal information such as e-mail, address book, phone number, etc. distributed in various terminals such as PC, PDA, and mobile phone by wire and wireless. Overseas, the International Synchronization Technology Association, which is formed by world-class companies like IBM, Motorola and Nokia, is conducting certification tests for synchronization solution technology. In Korea, companies such as Infobank, Neosteps and iSoft are actively researching for the development of wired / wireless synchronization solution products between wireless terminals and PCs. The technology for automatically synchronizing personal data distributed in PCs, notebooks, and servers developed in the present invention is still in its infancy at home and abroad.

본 발명의 데이타동기화 방법을 적용하기 위해 참조한 모델은 데이타의 실시간 모니터링을 통한 사건발생 조건부 행위 모델, 즉 ECA(Event Condition Action)기법에 기초한 능동 데이타베이스 모델이다. 능동 데이타베이스 모델은 어떤 사건(event)에 대한 조건(condition)이 만족할 경우 자동으로 정해진 행동(action)을 수행하는 데이타베이스 모델을 말한다. 일반적인 데이타베이스는 사용자가 애플리케이션을 이용하거나, 직접 데이타베이스에 접근하여 데이타를 조작한다. 하지만, 능동 데이타베이스에서는 규칙에 정의된 조건에 따라 적절한 행동을 사용자의 개입없이 자동으로 수행하는 데이타베이스 모델이다. 상기 적절한 행동이란 예를 들어, 특정 파일(데이타)에 생성/변경/저장/이동 등의 사전에 정의된 조건이 발생하면 특정 규칙에 따른 식별자를 생성하여 미리 정해진 데이타베이스 영역에 저장하는 등의 행동을 말한다. 도 2a와 도 2b는 일반적인 데이타베이스와 능동데이타베이스의 동작개념상의 차이를 설명해주는 그림이다.The model referred to for applying the data synchronization method of the present invention is an event occurrence conditional action model through real-time monitoring of data, that is, an active database model based on the event condition action (ECA) technique. An active database model is a database model that automatically performs a defined action when a condition for an event is satisfied. A typical database manipulates data by the user using an application or directly accessing the database. However, in an active database, it is a database model that automatically performs appropriate actions according to the conditions defined in the rules without user intervention. The appropriate behavior is, for example, when a predefined condition such as creation / modification / storage / movement occurs in a specific file (data), an identifier according to a specific rule is generated and stored in a predetermined database area. Say 2A and 2B are diagrams illustrating differences in operational concepts between a general database and an active database.

최근에는 ECA 모델을 이용하여 실시간으로 발생하는 이벤트를 감지(파일 실시간 모니터링)하고 분석하여 이에 대한 반응에 따라 서비스가 연동되는 이벤트 기반의 서비스 기술(Event-Driven Service Technology)이 다양한 분야에서 활용되고 있다. 이 기술은 기업내 업무 프로세스에서 실시간으로 발생하는 다양한 정보를 모니터링 및 분석하여 신속한 대응 방법을 제공할 수 있다.Recently, the event-driven service technology that detects and analyzes events occurring in real time using the ECA model (file real-time monitoring) and responds to them is used in various fields. . This technology can provide rapid response by monitoring and analyzing various information generated in real time in the business process.

다. 주요 특허공보에 개시된 공개된 종래기술.All. Published prior art disclosed in major patent publications.

파일의 실시간 모니터링을 통한 데이타 백업방법에 관한 공개기술로서, 공개특허 특2002-0065976호에 개시된 데이타 백업방법이 있다. 이것은 실시간 모니터링을 통하여 변경파일에 식별자를 기록한 후 파일의 백업작업 수행시 식별자가 있는 파일만을 빠르게 백업하는 기술로서 한번 기록된 식별자는 다음 백업을 위하여 삭제해 둔다는 점에서 그 특징이 있으나, 본 발명에서와 같이 식별자가 그대로 남아 있으면서 다양한 상황에 따른 식별자를 이용한 데이타 동기화를 수행하는 방법은 아니다.As a technique for backing up data through real-time monitoring of a file, there is a data backup method disclosed in Japanese Patent Laid-Open No. 2002-0065976. This is a technology for rapidly backing up only files with identifiers when performing a backup operation of a file after recording an identifier in a change file through real-time monitoring. However, there is a feature in that an identifier once recorded is deleted for the next backup. It is not a method of synchronizing data using identifiers according to various situations while the identifiers remain as is.

클라이언트와 서버 간의 데이타 동기화 및 갱신충돌 해결방법에 관한 공개기술로써 공개특허 특2004-0056639호에 개시된 데이타 동기화 방법이 있다. 이것은 변경식별자로써 LSN(로그시퀀스넘버)과 TS(타임스탬프)를 도입하고 타임스탬프에 따른 기준시간 이후에 특정 클라이언트에서의 변경내역을 로그시퀀스넘버로 검색하여 이를 서버와 차단함으로써 각각의 클라이언트들에서의 실시간 사용시 쓰기충돌 또는 연산충돌 등을 막는 기술로써 데이타의 일관성을 해치는 동기화 과정의 오류를 탐지 해결한다는 점에서 그 특징이 있으나, 본 발명에서와 같이 데이타의 동기화 과정에서 일관되지 않은 다양한 데이타들을 그대로 살릴 수 있도록 하는 것에 상기 변경식별자가 사용되지는 않는다.There is a data synchronization method disclosed in Korean Patent Laid-Open No. 2004-0056639 as a publicly disclosed technique for resolving data synchronization and update conflict between a client and a server. It adopts log sequence number (LSN) and TS (time stamp) as change identifier, and retrieves the change history of specific client by log sequence number after the time stamp according to time stamp and blocks it from server. It is characterized by detecting and solving errors in the synchronization process that impairs the consistency of data as a technique for preventing write conflicts or operation conflicts during real-time use of the data. However, as in the present invention, various inconsistent data are not changed during data synchronization. The change identifier is not used to be able to survive.

또 하나의 데이타 동기화 관련 공개기술로써 공개특허 특2005-0089551호에 개시된 데이타 동기화 방법을 살펴본다. 이것은 서버와 클라이언트 간 데이타 동기화를 위해서 최근 동기화 수행 후 특정 데이타가 변경되거나 삭제된 경우 또는 새로 생성된 경우에는 동기화 시간정보(식별자로서 타임스탬프에 해당한다)필드의 내용을 삭제함으로써 해당 데이타가 동기화되지 않은 변경내용임을 알 수 있도록 한 점에서 그 특징이 있다.Another data synchronization related disclosure technology looks at the data synchronization method disclosed in Japanese Patent Laid-Open No. 2005-0089551. For data synchronization between the server and client, this data is not synchronized by deleting the contents of the Synchronization time information (corresponding to the timestamp as an identifier) field when a particular data has been changed or deleted after a recent synchronization or newly created. It is characteristic in that it can be seen that the changes are not.

그러나 이 경우에도, 동기화 정보로서의 식별자가 그대로 남아 있으면서 2개 이상의 클라이언트에서 중복으로 변경된 데이타에 대해서도 별도 생성 등을 통한 대응을 취하는 본 발명과는 차이가 있는 것으로서 본 발명에 대한 기술적 착안점을 제공해 주지는 않는다.However, even in this case, the technical concept of the present invention is different from that of the present invention, in which an identifier as synchronization information remains intact and takes a correspondence through separate generation or the like even for data changed in duplicate from two or more clients. Do not.

본 발명의 목적은 ECA(Event-Condition-Action) 모델을 기반으로 CDP(Continuous Data Protection) 기술을 이용하여 개인 데이타를 PC급 서버에서 자동으로 관리하 기 위한 방법 및 솔루션을 구현하는 것이다.An object of the present invention is to implement a method and solution for automatically managing personal data in a PC-class server using CDP (Continuous Data Protection) technology based on the Event-Condition-Action (ECA) model.

상기 배경기술에서 설명한 바와 같이 개인용 백업솔루션으로서 데이타의 동기화에 접근하는 종래의 기술들은 시스템의 운영상 유연성이 떨어지는 부분이 있는데 이를 본 발명과 비교하면 다음과 같다.As described in the background art, conventional technologies for accessing data synchronization as a personal backup solution have a lack of flexibility in operating the system, which is compared with the present invention as follows.

과제-(1). 기존 백업 방식Challenge-(1). Traditional backup method

① 동작방식 : 시간(Time) 기반의 백업, 또는 변경기반 백업① Operation method: Time based backup or change based backup

② 백업방식 : 시간별 백업스케줄 전략에 의한 백업 또는 파일변경시마다 변경 정보 덮어쓰기(서로 호환안됨)② Backup method: Overwrite change information every time backup or file change based on hourly backup schedule strategy (incompatible with each other)

③ 백 업 본 : 백업이 수행된 시간에 따른 버전별 복사본만 저장하거나 최종적으로 변경된 복사본 하나만 저장.③ Backup copy: Save only the copy by version or the last changed copy according to the time when backup was performed.

④ 복구방식 : 백업이 수행된 여러 시점으로만 복구 가능하거나 최종 변경상태로만 복구가능.④ Restoration method: It is possible to recover only to the various points of time when the backup is performed or only to the last changed state.

⑤ 장 단 점 : 시간기반 백업의 경우 특정 백업 시점과 장애 발생 시점 사이의 데이타가 유실될 위험이 존재하며, 변경기반 백업의 경우 원하는 시점으로 데이타 복구 불가능.⑤ Advantages and disadvantages: In case of time-based backup, there is a risk of data loss between a specific backup point and failure point. In the case of change-based backup, data recovery is impossible.

과제-(2). 실제 개인컴퓨팅 환경에서 발생되는 다양한 상황Challenge-(2). Various situations in a real personal computing environment

개인컴퓨팅 환경이 일반적인 서버와 클라이언트간 작업환경과 비교하여 가장 크게 다른 점은 다수의 파일이 비 순차적으로 작업될 수 있으며, 그 과정에서 사용자의 의도적 필요 또는 의도하지 않은 실수에 따른 특정 PC에서의 비동기 상태에서 다수의 개별 파일들을 변경하는 과정이 있을 수 있다는 점이다.The biggest difference between the personal computing environment and the working environment between the general server and the client is that a large number of files can be processed out of order, and asynchronously on a specific PC due to the user's intentional needs or unintended mistakes. There may be a process of changing a number of individual files in a state.

이 때 동기화 되지 않은채 작업된 특정 PC에서의 개별 파일 속 변경자료와 동기화 되어 서버에 백업된 상기 개별 파일 속 백업자료 둘 다 모두 사용자에게 중요한 데이타가 될 수 있다는 점이다.In this case, both the backup data in the individual files backed up to the server by synchronizing with the change data in the individual files on the specific PC worked unsynchronized can be important data for the user.

이를 쉽게 이해할수 있도록 예를 들어서 설명하면,In order to understand this easily,

예컨대 특정 사용자가 회사의 PC 1에서 A,B,C파일을 작업후 서버에 백업하고, 집에 퇴근하여 개인용 PC 2에서 서버와 동기화 하지 않은 채로 D,E,F 파일을 작업하다가 갑자기 아이디어가 떠올라 A 파일을 수정하였을 때, (회사와 집을 오가면서 다수의 그림편집기와 슬라이드 편집기 및 워드/엑셀편집기를 복합사용해서 특정 보고서를 작성하는 과정을 상상하면 쉽다.)For example, a user backs up files A, B, and C on a company's PC 1 and then backs up to the server. After working at home, working on D, E, and F files without syncing with the server on his personal PC 2, he suddenly comes up with an idea. When modifying A file, it's easy to imagine the process of creating a specific report using a combination of multiple picture editors, slide editors, and word / excel editors between company and home.

이때 PC 1에서 작업하였던 A파일에는 버리기 아까운 작업내용이 담겨 있을 경우,At this time, if the A file worked on PC 1 contains the contents that are difficult to discard,

그리고 PC 2에서 작업한 A파일의 결과에 따라 서버에 백업된 C파일이 영향을 받을 경우 등 다양한 파일의 신규 생성 및 독립변경 조건이 있을 수 있다.In addition, there may be conditions for creating and changing various files independently, such as when the C file backed up to the server is affected by the result of A file worked on PC 2.

이 모든 상황에서 사용자가 일일이 수동적으로 파일을 구별해서 수정해 주거나 수정이 어려운 파일은 새로 파일명을 붙여 생성해주기는 어려우며, 특히 기존의 백업솔루션들 처럼 일괄적인 시점 복구나, 변경된 파일에 대한 일괄적인 덮어쓰기 만으로는 해결하기 힘든 다양한 상황이 발생하게 된다.In all of these situations, it is difficult for a user to manually identify and modify files manually, or to create a file that is difficult to modify, and to create a new file name. In particular, it is possible to perform collective point-in-time recovery or batch overwriting of changed files. Various situations arise that are difficult to solve by themselves.

이는 개인 컴퓨팅 환경에서 PC와 백업서버와의 관계는 일반적인 클라이언트와 서버의 관계(작업과정에서 필수적인 종속적 관계 등을 들 수 있겠다)와는 성격이 다르 기 때문에 발생하는 문제인 것이다.This is because the relationship between PC and backup server in personal computing environment is different from that of general client and server (such as essential dependency in the process).

위와 같은 상황을 사용자의 추가적인 노력이 없이도 유연하게 자동적으로 해결하는 것이 본 발명의 주요 해결과제가 된다. 이를 상기 과제-(1).에 소개한 기존 백업방식과 대비하여 다음과 같이 분류해보면.The main problem of the present invention is to solve the above situation flexibly and automatically without additional effort of the user. In contrast with the existing backup method introduced in the above task- (1).

과제-(3). 본 발명이 추구하는 기존 백업방식과 차별화된 해결과제.Challenge-(3). The problem differentiated from the existing backup method pursued by the present invention.

① 동작방식 : 변경 기반과 시점 기반을 결합한 지능적 백업① Operation Method: Intelligent backup combining change base and time base

② 백업방식 : 백업 스케줄이 없으며 파일 변경시 자동 백업② Backup method: There is no backup schedule and automatic backup when file is changed

③ 백 업 본 : 파일의 모든 변경에 따른 버전별 복사본 저장, 중복 변경시 해당 파일의 추가생성③ Backup copy: Save copy for each version according to every change of file, and additionally create the file in case of duplicate change

④ 복구방식 : 변경된 모든 이전 상태로 복구 가능④ Restoration method: Restoration to all previous state changed

⑤ 장 단 점 : 필요에 따라 원하는 시점, 원하는 PC의 작업결과로 데이타 접근가능.⑤ Advantages and disadvantages: If necessary, data can be accessed at the desired time and as the result of PC work.

위와 같이 제시할 수 있다.Can be presented as above.

상기한 바와 같은 발명의 목적을 달성하기 위하여 본 발명은 먼저 다음과 같은 주요 과제해결수단을 이용하여 완성된다.In order to achieve the object of the invention as described above, the present invention is first completed using the following main problem solving means.

먼저 적어도 하나의 발생식별자와 상기 발생식별자의 생성시점 이후에 생성 및 변경되는 하나 이상의 변경식별자를 가진 데이타구조체 형태(본 발명에서는 이를 ActiveML로 명명하였다)를 정의한다.First, a data structure type (named ActiveML in the present invention) having at least one occurrence identifier and at least one change identifier generated and changed after the generation time of the occurrence identifier is defined.

다음으로 상기 데이타구조체의 상기 식별자들 중 어느 하나 이상의 식별자를 기준으로 삭제대상 데이타들을 분류하여 삭제하고, 다른 하나의 식별자를 기준으로 저장대상 또는 호출대상 또는 전달대상 데이타들을 동기화하는 것을 특징으로 하는 데이타 동기화 방법을 창안한다.Next, the data to be deleted is classified and deleted based on any one or more of the identifiers of the identifiers of the data structure, and the data to be synchronized with the storage object, the call object or the transfer object data based on the other identifier. Create a synchronization method.

마지막으로 상기 데이타구조체 형식으로 논리화 데이타베이스를 구축하고 SyncML 표현 프로토콜 중 특정 표현프로토콜을 이용한 데이타 동기화 처리모듈, 즉 상기 데이타 동기화 방법으로 구동하는 데이타 동기화 엔진을 탑재한 데이타 백업솔루션을 구현한다.Finally, a logical database is constructed in the form of the data structure and a data backup processing module using a data synchronization processing module using a specific expression protocol among SyncML expression protocols, that is, a data synchronization engine driven by the data synchronization method, is implemented.

상기 해결수단을 위하여 확보한 기술은 크게 나누어서 4종류이다. 먼저, 2006년부터 데이타 보호를 위한 신기술로 인정받고 있는 CDP 방식을 구현하기 위해 능동 데이타베이스 모델에서 사용되는 ECA 방식을 이용하여 지속적으로 개인 데이타를 자동 관리할 수 있는 기술을 확보하였다. 또한 여러 대의 PC에 분산된 파일과 서버 파일을 실시간으로 동기화할 수 있는 기술을 확보하였으며 이를 가능하게 해주는 XML형식의 데이타구조체인 ActiveML을 새롭게 정의하였다. 그리고 네트워크/서버 해킹 시에도 서버에 저장된 개인 데이타를 안전하게 보호하기 위한 자체적인 암호화 기술을 확보하였다. 마지막으로 CDP 방식에서 지원하는 변경된 모든 시점으로 데이타를 복구하기 위한 완전 복구 기술과, 부분 복구 기술을 확보하였다.The technologies secured for the above solutions are largely divided into four types. First, in order to implement the CDP method, which has been recognized as a new technology for data protection since 2006, the company has secured the technology to continuously manage personal data automatically using the ECA method used in the active database model. In addition, we secured the technology to synchronize files distributed on multiple PCs and server files in real time, and newly defined ActiveML, an XML data structure that enables this. In addition, it secured its own encryption technology to protect personal data stored in the server even in the case of network / server hacking. Finally, we have secured a full recovery technique and a partial recovery technique to recover data to all changed points supported by the CDP method.

상기 기술들을 활용하여 본 발명에서 개발된 기술은 PC급 서버에서 리눅스, 자바와 같은 공개용 소프트웨어에 의해 운영 가능한 저비용-고효율의 플랫폼 독립적인 기 술이다.The technology developed in the present invention utilizing the above technologies is a low cost-high efficiency platform independent technology that can be operated by open source software such as Linux and Java in a PC-class server.

상기와 같은 해결수단이 사용된 본 발명에서는 서버에 저장된 원본 데이타를 기반으로 여러 대의 PC에 분산된 데이타간의 자동적인 동기화를 지원한다.In the present invention in which the above-mentioned solutions are used, it supports automatic synchronization between data distributed to several PCs based on the original data stored in the server.

예컨대 기존의 백업솔루션에서는 PC에 저장된 데이타가 원본데이타가 되고, 백업서버에 저장된 데이타는 복사본의 역할을 한다. 반면에, 본 발명을 구현한 시스템에서는 서버에 저장된 데이타가 원본데이타, PC에 저장된 데이타는 작업용 데이타의 역할을 한다. For example, in the existing backup solution, the data stored in the PC becomes the original data, and the data stored in the backup server acts as a copy. On the other hand, in the system implementing the present invention, the data stored in the server is the original data, the data stored in the PC serves as the work data.

본 발명을 구현한 솔루션은 사용자 PC에서 파일 생성이나 변경과 같은 이벤트가 발생할 경우 자동적으로 서버 디스크에 파일이 업로드된다. 또한 사용자의 PC나 노트북이 인터넷에 연결될 경우 서버 디스크에 저장된 최신 데이타를 자동으로 다운로드하여 작업을 계속 진행할 수 있다. 작업 후에는 변경된 파일이 실시간으로 서버에 업로드되어 서버 디스크에 저장된 데이타와 동기화되므로 항상 최신 파일을 효과적으로 관리할 수 있다.The solution implementing the present invention automatically uploads a file to the server disk when an event such as file creation or modification occurs on the user's PC. And when your PC or laptop is connected to the Internet, you can automatically download the latest data stored on the server disk and continue working. After work, the changed files are uploaded to the server in real time and synchronized with the data stored on the server disk, so you can always manage the latest files effectively.

무엇보다도, 기존의 단방향 백업방식과는 차별화 되는 점으로 특정 PC의 비동기화 상태에서의 변경된 다양한 데이타들을 시간별, 위치별로 효과적으로 추가 생성 또는 삭제후 동기화하여 중요한 데이타가 손실되는 것을 방지할 수 있다. 그리고 PC에서 파일을 암호화한 후에 서버 디스크로 업로드하는 방식에 의해 서버나 네트워크 해킹에도 안전하게 데이타를 관리할 수 있다.First of all, it is different from the existing one-way backup method, and it is possible to prevent various important data from being lost by synchronizing effectively after various additions or deletions by time and location. By encrypting files on your PC and uploading them to the server disk, you can safely manage your data even on server or network hacking.

본 발명을 구현한 시스템은 PC급 서버에서 자바, 리눅스와 같은 공개용 소프트웨어 를 이용하여 플랫폼 독립적으로 운영 가능한 솔루션으로 개발하였다. 본 발명을 구현한 솔루션은 개인 중심의 효과적인 지식 관리를 위한 솔루션으로 지식기반사회 활성화에 기여할 수 있으리라 사료된다.The system implementing the present invention was developed as a platform-independent solution using open software such as Java and Linux on a PC-class server. The solution embodying the present invention is expected to contribute to revitalization of knowledge-based society as a solution for effective knowledge management centered on individuals.

본 발명을 구현한 시스템의 응용분야는 중소 규모의 기업, 연구소 등에서 업무용 지식 문서를 저비용-고효율의 PC 서버를 이용하여 체계적으로 관리하기 위한 업무용 데이타관리시스템 분야, UCC, 보고서, 계획서, 실험 데이타 등과 같은 개인 지식을 체계적으로 관리하기 위한 개인용 데이타관리시스템 분야 등과 같은 다양한 분야에서 활용할 수 있을 것이라 기대된다.The application field of the system implementing the present invention is in the field of business data management system, UCC, reports, plans, experimental data, etc. to systematically manage business knowledge documents by using a low cost-high efficiency PC server in small and medium-sized enterprises, research institutes, etc. It is expected to be utilized in various fields such as personal data management system field for systematic management of the same personal knowledge.

상기 본 발명의 주된 기술적 특징을 보다 구체적으로 표현하기 위하여 도면에 포함된 본 발명의 일 예를 참조하여 아래에 보다 상세히 설명한다.In order to more specifically represent the main technical features of the present invention will be described in more detail below with reference to an example of the present invention included in the drawings.

다만 아래에 기술하는 구현예(embodiment of invention), 혹은 구체적인 실시예(specific example)에서 특정 용어를 포함한 구성요소들과 그 특정 결합구조가 본 발명의 기술적 특징에 포괄적으로 내재된 사상을 제한하는 것은 아님을 미리 밝혀둔다.However, in the embodiment of the invention or the specific example described below, the components including specific terms and their specific coupling structures limit the idea that is inherent in the technical features of the present invention. It is not known in advance.

내용-1. ECA 모델 기반의 이벤트 규칙 정의 Content-1. Event rule definitions based on ECA models

이벤트는 PC에서 사용자가 시스템이나 파일관련 작업시 발생한다. 본 발명에서 규정한 이벤트는 크게 시스템 관점에서 자동적으로 감지할 수 있는 이벤트와 사용자가 임의적으로 지정할 수 있는 이벤트로 구분된다. 파일 조작이나 운영체제 시작/ 종료 등과 같은 작업은 시스템 관점의 이벤트로 정의하였고, 백업 스케줄링과 같은 작업은 사용자 정의 이벤트로 정의하였다. 표 3은 본 발명에서 규정한 이벤트 정의서이다.An event occurs when a user works on a system or file on a PC. The event defined in the present invention is largely divided into an event which can be automatically detected from a system point of view and an event that can be arbitrarily designated by a user. Tasks such as file manipulation or operating system startup / shutdown are defined as events from the system perspective, and tasks such as backup scheduling are defined as user-defined events. Table 3 is an event definition defined in the present invention.

이벤트 정의Event definitions 이벤트 분류Event classification 이벤트 정의Event definitions 시스템 이벤트System events 파일file 생성(create), 수정(update), 삭제(delete), 파일명 변경(rename) Create, update, delete, rename files 운영체제 operating system 운영체제 시작(startup), 종료(shutdown) Operating system startup, shutdown 시간time 유휴 시간(idle time) Idle time 사용자 정의 이벤트Custom events 스케줄링(scheduling) 정의, 자동백업타이머(timer) Scheduling definition, automatic backup timer

본 발명에서는 ECA 모델의 조건 평가시 사용되는 즉시 판정, 지연 판정, 분리 판정 기법을 이용하여 이벤트별로 처리 조건을 구체적으로 정의하였다. In the present invention, processing conditions are specifically defined for each event by using an immediate decision, a delay decision, and a separation decision technique used when evaluating conditions of an ECA model.

즉시 판정은 이벤트가 발생하는 즉시 조건을 검사하여 해당 조건이 만족되면 자동 백업을 수행하는 기법이다. 즉시 판정은 본 발명에서 개발한 시스템 이벤트가 발생하는 경우에 사용된다. 표 4는 즉시 판정 기법에 해당하는 이벤트와 조건을 정의한 내용이다.Immediate judgment is a technique that checks a condition as soon as an event occurs and performs automatic backup when the condition is satisfied. Immediate determination is used when a system event developed in the present invention occurs. Table 4 defines the events and conditions corresponding to the immediate decision technique.

즉시 판정 조건 정의Define instant verdict conditions 이벤트event 조건 정의Condition Definition 파일 이벤트 File events - 파일 이벤트가 발생하고 사용자가 지정한 자동백업타이머(timer) 지정이 없는 경우 -A file event occurs and there is no user specified automatic backup timer 운영체제 이벤트 Operating system events - 운영체제 이벤트가 발생하는 경우  -When an operating system event occurs 시간 이벤트 Time events - 지정한 유휴 시간이 만족하는 경우 -If the specified idle time is satisfied

지연 판정은 이벤트가 발생하고 특정 조건이 만족될 때까지 기다린 후에 조건을 검사하여 해당 조건이 만족되면 자동 백업을 수행하는 기법이다. 지연 판정은 표 5와 같은 이벤트와 조건을 만족하는 경우에 해당된다.Delayed determination is a technique that waits until an event occurs and a certain condition is satisfied, and then checks the condition and performs automatic backup when the condition is satisfied. The delay determination is applicable to the event and condition shown in Table 5.

지연 판정 조건 정의Delay judgment condition definition 이벤트event 조건 정의Condition Definition 파일 이벤트File events - 사용자가 지정한 자동백업타이머 시간이 만족될 때까지 지연 - 주기적인 백업을 위해 사용자가 지정한 스케줄링 시간이 만족될 때 까지 지연 -Delay until user specified automatic backup timer time is satisfied-Delay until user specified scheduling time for periodic backup

분기 판정은 이벤트와 상관없이 ‘사용자가 직접 수동적으로 백업’을 수행하고자 할 때, 조건을 검사하여 해당 조건이 참이면 자동 백업을 수행하는 기법이다.Branch decision is a technique that checks a condition and performs automatic backup when the condition is true when the user wants to perform 'manual backup manually' regardless of the event.

액션은 이벤트별로 정의된 조건들이 만족될 경우, 실행되는 동작을 정의하는 것이다. 본 발명을 구현한 시스템에서는 이벤트별로 정의된 조건이 만족되는 즉시, ‘동기화’, ‘파일의 암호화/복호화’, ‘업로드/다운로드’ 의 순서로 액션을 실행한다.An action defines an action to be executed when conditions defined for each event are satisfied. In the system implementing the present invention, as soon as the conditions defined for each event are satisfied, actions are executed in the order of 'synchronization', 'encryption / decryption of files', and 'upload / download'.

내용-2. 본 발명 데이타구조체인 ActiveML의 기초가 되는 SyncML 표현 프로토콜 Content-2. SyncML representation protocol underlying ActiveML, the present data structure

SyncML 표현 프로토콜은 데이타 동기화에 필요한 메세지 구조체를 정의하기 위한 잘 정의된(well-defined) XML 문서이다. SyncML 메세지는 데이타 핸들링 command, 장치 정보, 동기화 데이타, 기타 메타 데이타 등의 정보로 기술된다. 아래의 XML문장은 SyncML 표현 프로토콜 스펙에 대한 간단한 예시이다.The SyncML Representation Protocol is a well-defined XML document for defining message structures for data synchronization. SyncML messages are described with information such as data handling commands, device information, synchronization data, and other metadata. The following XML statement is a simple example of the SyncML representation protocol specification.

<SyncML xmlns='syncml:syncml1.0'><SyncML xmlns = 'syncml: syncml1.0'>

<SyncHdr>    <SyncHdr>

<VerDTD>1.0</VerDTD>        <VerDTD> 1.0 </ VerDTD>

<Source>        <Source>

<LocURI>http://www.datasync.org/servlet/syncit</LocURI>            <LocURI> http://www.datasync.org/servlet/syncit </ LocURI>

</Source>        </ Source>

</SyncHdr>    </ SyncHdr>

<SyncBody>    <SyncBody>

<Get>         <Get>

<CmdID>0363</CmdID>            <CmdID> 0363 </ CmdID>

</Get>        </ Get>

</SyncBody>    </ SyncBody>

</SyncML></ SyncML>

SyncML 동기화 프로토콜은 내부 동작을 위해 사용되는 정보, 인증, 동기화 타입에 대한 표준으로 7가지 동기화 타입을 제공한다. 표 6은 SyncML 동기화 프토토콜에서 제안하는 동기화 타입이다. 여기서, 서버의 파일 정보를 관리하는 데이타베이스를 타겟 데이타베이스(target database)라 하고, 클라이언트 파일 정보를 관리하는 데이타베이스를 소스 데이타베이스(source database)라 한다. The SyncML synchronization protocol provides seven synchronization types as a standard for information, authentication, and synchronization types used for internal operations. Table 6 shows the synchronization types proposed by the SyncML synchronization protocol. Here, a database managing file information of a server is called a target database, and a database managing client file information is called a source database.

SyncML 동기화 프로토콜이 제공하는 동기화 타입Types of synchronization provided by the SyncML synchronization protocol 동기화 타입Synchronization type 기술Technology Two-way syncTwo-way sync - 클라이언트와 서버가 변경 데이타에 대한 정보를 상호 교환하는 -Client and server exchange information about change data 일반적인 동기화 타입  Common sync type - 클라이언트가 먼저 변경된 정보를 전송The client sends the changed information first Slow syncSlow sync - 필드 대 필드로 모든 아이템들이 서로 비교되는 two-way sync - 실제적으로 클라이언트는 데이타베이스에 있는 모든 데이타를 서버로 전송Two-way sync, where all items are compared against each other in field-to-field fields. Actually, the client sends all data in the database to the server. One-way sync from client onlyOne-way sync from client only - 클라이언트는 변경 정보를 서버로 전송하지만, 서버는 변경 정보를 클라이언트로 전송하지 않음-Client sends change information to server, but server does not send change information to client Refresh sync from client onlyRefresh sync from client only - 클라이언트가 소스 데이타베이스의 데이타를 서버로 전송하고 서버는 전송받은 데이타로 서버의 타겟 데이타베이스를 치환The client sends data from the source database to the server, and the server replaces the server's target database with the received data. One-way sync from server onlyOne-way sync from server only - 클라이언트가 서버로부터 타겟 데이타베이스 데이타를 전송받지만 클라이언트의 소스 데이타베이스 데이타는 서버로 전송하지 않음The client receives the target database data from the server but does not send the client's source database data to the server. Refresh sync from server onlyRefresh sync from server only - 서버가 타겟 데이타베이스 데이타를 클라이언트로 전송하고 클라이언트는 전송받은 데이타로 클라이언트의 소스 데이타베이스를 치환The server sends the target database data to the client, and the client replaces the client's source database with the received data. Server Alerted syncServer Alerted sync - 서버가 클라이언트에게 지정된 타입의 동기화 시작을 통보 The server notifies the client of the start of the specified type of synchronization

본 발명에서는 SyncML 동기화 프로토콜의 동기화 타입 중 Two-way sync, One-way sync from client only, One-way sync from server only 타입을 기초로 하여 이를 발전시켜 동기화 데이타를 처리한다.In the present invention, the synchronization data is developed based on two-way sync, one-way sync from client only, and one-way sync from server only types among the synchronization types of the SyncML synchronization protocol.

내용-3. 본 발명의 데이타 동기화 기술 Content-3. Data synchronization technology of the present invention

내용-3-(1). ActiveML 정의Content-3- (1). ActiveML definition

본 발명에서는 사용자 PC와 서버간에 동기화 데이타 처리를 위해 SyncML의 표현 프로토콜을 참고하여 ActiveML(Active sync Markup Language)이라는 데이타구조체를 새롭게 정의하였다. ActiveML은 동기화 모듈을 이용하여 변경 파일에 대한 동기화 정보를 PC와 서버간에 전송하기 위해 정의한 데이타구조체이다. ActiveML은 사용자와 세션에 대한 인증 정보, 백업 및 복구 장치 정보, 동기화 방식, 동기화 명령어, 동기화 파일에 대한 정보 등의 내용으로 구성된다. 도 3는 동기화 데이타를 정의하기 위한 ActiveML의 스키마 구조도이며 표7은 도 3의 구조를 내포하는 ActiveML의 엘리먼트와 속성을 정의한 내용이다.In the present invention, a data structure called ActiveML (Active sync Markup Language) is newly defined by referring to the expression protocol of SyncML for processing synchronization data between a user PC and a server. ActiveML is a data structure defined to transfer synchronization information about change files between PC and server using synchronization module. ActiveML consists of authentication information about users and sessions, backup and recovery device information, synchronization methods, synchronization commands, and information about synchronization files. FIG. 3 is a schema structure diagram of ActiveML for defining synchronization data, and Table 7 defines elements and attributes of ActiveML including the structure of FIG. 3.

ActiveML 엘리먼트 정의ActiveML element definition 엘리먼트명Element name 설명Explanation ActiveML ActiveML ActiveML 스키마의 루트 엘리먼트Root Element in ActiveML Schema ActiveHeader ActiveHeader 사용자 정보와 동기화 날짜, 방법을 표현하는 Complex형 엘리먼트Complex element representing user information, synchronization date and method ActiveBody ActiveBody 동기화 파일에 대한 정보와 파일별 명령어를 표현하는 Complex형 엘리먼트Complex element representing information about the synchronization file and file-specific commands SessionID SessionID 세션 유지를 위한 사용자 세션 키 값을 표현하는 엘리먼트Element representing user session key value for session persistence UserId UserId 사용자 ID를 표현하는 엘리먼트An element representing a user ID MacAddress MacAddress 사용자 디바이스의 Mac Address를 표현하는 엘리먼트An element representing the Mac Address of the user device TargetServer TargetServer 본 발명 서버의 도메인 또는 IP 주소를 표현하는 엘리먼트Element representing the domain or IP address of the server of the present invention CurrentDate Currentdate 동기화를 요청한 시간(년/월/일 시:분:초)을 표현하는 엘리먼트Element representing time (year / month / day hour: minute: second) that requested synchronization SyncMethod SyncMethod 동기화 기법의 종류를 표현하는 엘리먼트 (one-way sync from server, one-way sync from client, two-way sync)Elements representing the kind of synchronization technique (one-way sync from server, one-way sync from client, two-way sync) SyncData SyncData 동기화를 요청한 n개의 파일에 대한 정보를 표현하는 Complex 형 엘 리먼트Complex type element representing information about n files requested for synchronization Final Final 동기화 데이타의 끝을 표현하는 엘리먼트An element representing the end of the synchronization data File File 동기화를 요청한 각 파일에 대한 정보를 표현하는 Complex형 엘리먼트Complex element representing information about each file that requested synchronization Command(CM)Command (CM) 각 파일에 대한 명령어를 표현하는 엘리먼트 (신규생성:100, 복구:200, 파일명변경/파일수정:300, 삭제:400 등)Elements representing commands for each file (new creation: 100, recovery: 200, file rename / file modification: 300, deletion: 400, etc.) Global File Id (GF)Global File Id (GF) 다수의 PC 동기화시 다중 PC에 분산된 동일한 파일을 식별하기 위해 사용될 각 파일의 유일한 해쉬 값을 표현하는 엘리먼트Element representing a unique hash value for each file that will be used to identify the same file distributed across multiple PCs when synchronizing multiple PCs Local File Id Local File Id (LF)(LF) 각 PC의 파일별 유일한 해쉬 값을 표현하는 엘리먼트Element representing unique hash value for each PC file ServerDir Serverdir 서버에 실제로 파일이 저장된 물리적인 경로를 표현하는 엘리먼트An element representing the physical path where the file is actually stored on the server ServerFileName ServerFileName 서버에 실제로 저장된 파일 이름을 표현하는 엘리먼트 - GlobalFileId + MacAddress + LastModifyDate 로 구성된 값Element representing the file name actually stored on the server-a value consisting of GlobalFileId + MacAddress + LastModifyDate FileNameFileName 동기화를 요청한 파일명을 표현하는 엘리먼트An element representing the name of the file that requested synchronization LastModifyDate (LM)LastModifyDate (LM) 동기화를 요청한 파일의 생성날짜 또는 최종수정날짜(년/월/일 시:분:초) 를 표현하는 엘리먼트An element representing the creation date or last modified date (year / month / date hour: minute: second) of the file that requested synchronization. ServerModifyDateServerModifyDate (SM)(SM) 동기화 타임스탬프로 동기화되어 파일이 서버에 저장된 최종시간(The last time the file was stored on the server, synced with the sync timestamp ( 년/월/일 시:분:초)을 표현하는 엘리먼트Element representing year / month / day hour: minute: second) FileSize Filesize 동기화를 요청한 파일 크기(byte단위)를 표현하는 엘리먼트Element representing file size (in bytes) requested for synchronization EncryptStatus EncryptStatus 암호화 여부를 표현하는 엘리먼트An element representing encryption EncryptType EncryptType 파일 암호화시 사용된 암호화 알고리즘을 표현하는 엘리먼트An element representing the encryption algorithm used to encrypt the file

상기 표7에서 살펴보면 굵은 글씨로 표시된 엘리먼트가 본 발명의 핵심 기능을 수행하는 식별자에 해당한다.In Table 7, the elements shown in bold correspond to the identifiers that perform the core functions of the present invention.

식별자(identifier)는 정보를 처리하기 위하여 해당 정보를 유일하게 구별하기 위하여 정의되고 만들어지며 수정되고 저장되는 것으로써 어떤 대상을 유일하게 식별 및 구별할 수 있는 이름을 뜻하며 본 발명에서는 데이타를 포함한 구조체의 엘리먼트 형식으로 표현한다. 대표적인 식별자로 URL, ISBN, IP 주소 등이 있다.An identifier is defined, created, modified, and stored to uniquely distinguish the information for processing. The identifier refers to a name that can uniquely identify and distinguish an object. Expressed in element form. Typical identifiers include URL, ISBN, and IP address.

표 7에서 GlobalFileId(GF)와 LocalFileId(LF) 발생식별자는 해쉬함수를 이용한 32문자의 의사난수 문자+숫자열의 조합일 수 있으며 후술하는 바와 같이 LocalFileId는 지역발생식별자로 정의될 수 있고, GlobalFileId는 전역발생식별자로 정의될 수 있다.In Table 7, the GlobalFileId (GF) and LocalFileId (LF) occurrence identifiers may be a combination of 32-character pseudo-random characters + numeric strings using a hash function. As described below, LocalFileId may be defined as a local occurrence identifier, and GlobalFileId is global. It can be defined as an occurrence identifier.

Command(CM)는 파일의 생성/변경 등의 이벤트 정보일 수 있으며, 이벤트변경식별자로 정의될 수 있다. LastModifyDate(LM)와 ServerModifyDate(SM)는 타임스탬프를 이용한 (년월일시분초)의 시간정보일 수 있으며 후술하는 바와 같이 LastModifyDate는 시간변경식별자로 정의될 수 있고, ServerModifyDate는 동기화변경식별자로 정의될 수 있다.Command (CM) may be event information such as file creation / change, and may be defined as an event change identifier. LastModifyDate (LM) and ServerModifyDate (SM) may be time information (year, month, date, minute, second) using a timestamp. As described below, LastModifyDate may be defined as a time change identifier, and ServerModifyDate may be defined as a synchronization change identifier. .

위에서 발생식별자란 데이타(파일)이 최초 생성될때 한번 발생되는 것이며 그 데이타가 지워질때까지 변경되지 않도록 설정한 것이기 때문에 발생식별자라고 이름붙일 수 있다.The occurrence identifier is generated once when the data (file) is created for the first time, and it can be named as an identifier because it is set not to change until the data is deleted.

마찬가지로 변경식별자란 데이타의 최초 저장/업로드 시 발생되고, 이후 데이타(파일)이 수정후 저장될때마다, 서버에 업로드 될때마다 계속 변경된 값을 가지도록 설정한 것이기 때문에 변경식별자라고 이름붙일 수 있다.Similarly, the change identifier is generated when the data is first saved / uploaded, and the change identifier is set to have a changed value whenever the data (file) is stored after modification and uploaded to the server.

예를 들어 특정 파일을 최초로 생성하면, 상기 특정 파일의 ActiveML 구조체에는 표 8과 같은 파일버전 DB구조가 저장될 수 있다.For example, when a specific file is first generated, the file version DB structure as shown in Table 8 may be stored in the ActiveML structure of the specific file.

파일 버전 DB 구조 File Version DB Structure 속성명Attribute name 타입type 설명Explanation Local File Id (LF) Local File Id (LF) char (32문자)char (32 characters) - 각 PC의 파일별 유일성을 구분하기 위한 식별자 - 파일명을 해쉬값으로 바꿔서 사용 - 예 : 04E237984C889A2140F6A4463ADCD9A5-Identifier to distinguish uniqueness of each PC file-Change file name to hash value-Example: 04E237984C889A2140F6A4463ADCD9A5 Global File Id (GF) Global File Id (GF) char (32문자)char (32 characters) - 다중 PC에 분산된 동일한 파일을 식별하기 위한 식별자 - 파일명을 해쉬값으로 바꿔서 사용 - 예 : 2319941095FC3CEF517030AE846A3653-Identifier to identify the same file distributed on multiple PCs-Used by replacing the file name with a hash value-Example: 2319941095FC3CEF517030AE846A3653 Folder IDFolder ID char (32문자)char (32 characters) - 폴더의 유일성을 구분하기 위한 식별자 - 폴더명을 해쉬값으로 바꿔서 사용 - 예 : 5232FC3CEF517030A1232345B8978753-Identifier to identify the uniqueness of the folder-Change the folder name to a hash value-Example: 5232FC3CEF517030A1232345B8978753 파일명Filename charchar - 파일명 - 예 : \backup\file\intro_xml.camproj-Filename-eg: \ backup \ file \ intro_xml.camproj LastModifyDate(LM)LastModifyDate (LM) charchar - 파일의 최종수정일시 - 신규 파일인 경우에는 파일의 생성일시 - 신규 파일이 아닌 경우에는 파일의 최종수정일시가 됨 - 예 : 2008/03/27 18:48:30-Date of last modification of the file-Date of creation of the file in case of a new file-Date of last modification of the file in the case of a new file-Example: 2008/03/27 18:48:30 ServerModifyDate(SM)ServerModifyDate (SM) charchar - 조건에 의해 자동백업된 날짜 - 예 : 2008/03/27 18:48:40-Date automatically backed up by condition-Ex: 2008/03/27 18:48:40 파일 크기File size integerinteger - 파일의 실제 크기, byte 단위 - 예: 47616-The actual size of the file, in bytes-eg 47616 파일 암호화File encryption integerinteger - 파일 암호화 여부 선택-Choose whether to encrypt files 암호화 알고리즘Encryption algorithm integerinteger - 파일 암호화 알고리즘 선택 - 예 : 1-RC4, 2-RC5, 3-DES, 4-AES-File encryption algorithm selection-e.g. 1-RC4, 2-RC5, 3-DES, 4-AES Command(CM)Command (CM) integerinteger - 파일 모니터링 툴에 의해 감지된 파일별 이벤트 명령어 - 100(create), 300(modify), 400(delete), 500(done) 등-Event command per file detected by file monitoring tool-100 (create), 300 (modify), 400 (delete), 500 (done), etc.

상기 표 8을 따른다면 Local File Id (LF)와 Global File Id (GF)의 식별자로 적합한 것은 빠른 유일성/동일성 비교를 위한 일정한 문자길이를 갖는 식별자가 적합하며 예를 들어 해쉬함수(hash function)을 이용한 32문자(숫자포함)의 문자열이 사용될 수 있다.According to Table 8, the identifiers of Local File Id (LF) and Global File Id (GF) are suitable for identifiers having a certain character length for fast uniqueness / identity comparison. For example, a hash function is used. The string of 32 characters (including numbers) can be used.

마찬가지로 상기 표 8을 따른다면 Command(CM)은 파일 모니터링 툴에 의해 감지된 파일별 이벤트를 기계식으로 표현하기 위해 숫자열이 사용될 수 있다. LastModifyDate(LM)과 ServerModifyDate(SM)은 동기화 처리 모듈에서 파일의 저장순간과 백업순간의 시점 전후 판단을 쉽게 하기 위하여 년월일분초의 시간정보를 갖는 숫자열이 사용될 수 있다.Likewise, according to Table 8, the command (CM) may use a numeric string to mechanically express the file-specific event detected by the file monitoring tool. LastModifyDate (LM) and ServerModifyDate (SM) may use numeric strings having time information of year , month , date , minute , and second in order to make it easier to determine before and after the time of storing and backing up files in the synchronization processing module.

내용-3-(2). ActiveML 기반의 동기화 XML 인스턴스.Content-3- (2). ActiveML-based synchronized XML instance.

데이타 동기화 엔진을 통해 PC와 서버간에 동기화 정보를 교환하기 위해 신규, 변경, 삭제된 파일에 대한 ActiveML 기반의 동기화 정보 구성이 필요하다. ActiveML 생성 모듈에서는 이벤트 규칙 처리 엔진을 통해 만들어진 파일 변경 정보(Backup Resource)를 이용하여 ActiveML 기반의 동기화 XML 인스턴스를 생성한다. 아래는 본 발명에 적용된 ActiveML 기반의 동기화 XML 인스턴스(수정/삭제/다운로드/신규생성을 정의)의 예이다.In order to exchange synchronization information between PC and server through data synchronization engine, ActiveML-based synchronization information for new, changed and deleted files is required. The ActiveML generation module creates an ActiveML-based synchronization XML instance using the file change information (Backup Resource) created by the event rule processing engine. The following is an example of an ActiveML-based synchronization XML instance (modification / deletion / download / new creation definition) applied to the present invention.

<?xml version='1.0' encoding='UTF-8' ?> <? xml version = '1.0' encoding = 'UTF-8'?>

<ActiveML xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'  <ActiveML xmlns: xsi = 'http: //www.w3.org/2001/XMLSchema-instance'

xsi:noNamespaceSchemaLocation='activeml.xsd'>            xsi: noNamespaceSchemaLocation = 'activeml.xsd'>

<ActiveHeader> <ActiveHeader>

<SessionID>7D5187A7344F5609314EDD2A8CE2079B.tomcat</SessionID>   <SessionID> 7D5187A7344F5609314EDD2A8CE2079B.tomcat </ SessionID>

<UserId>ihjun</UserId>   <UserId> ihjun </ UserId>

<MacAddress>7a:79:05:c4:cd:64</MacAddress>   <MacAddress> 7a: 79: 05: c4: cd: 64 </ MacAddress>

<TargetServer>activeDisk.hibrain.net</TargetServer>   <TargetServer> activeDisk.hibrain.net </ TargetServer>

<CurrentDate>2008/05/2714:31:20</CurrentDate>   <CurrentDate> 2008/05/2714: 31: 20 </ CurrentDate>

<SyncMethod>two-way sync</SyncMethod>   <SyncMethod> two-way sync </ SyncMethod>

</ActiveHeader>  </ ActiveHeader>

<ActiveBody> <ActiveBody>

<SyncData> <SyncData>

<File> <File>

<!-- 파일이 수정된 경우 -->    <!-If the file has been modified->

<Command>300</Command>     <Command> 300 </ Command>

<GlobalFileId>0B6A15BC715F964DD8D3CA0FCAA5C4AB</GlobalFileId>     <GlobalFileId> 0B6A15BC715F964DD8D3CA0FCAA5C4AB </ GlobalFileId>

<LocalFileId>8C65781D2EBC3C2FB493CB25D3F769EE</LocalFileId>     <LocalFileId> 8C65781D2EBC3C2FB493CB25D3F769EE </ LocalFileId>

<ServerDir>/home4/activedisk/disk0</ServerDir>  <ServerDir> / home4 / activedisk / disk0 </ ServerDir>

<ServerFileName>0B6A15BC715F964DD8D3CA0FCAA5C4AB7a7905c4cd64 2008:05:2714:31:13</ServerFileName>  <ServerFileName> 0B6A15BC715F964DD8D3CA0FCAA5C4AB7a7905c4cd64 2008: 05: 2714: 31: 13 </ ServerFileName>

<FileName>XGJhY2t1cGZvbGRlclzsoITsnbjtlZjsl4XrrLTrs7Tqs6AyMDA3MDgxMy 50eHQ=</FileName>     <FileName> XGJhY2t1cGZvbGRlclzsoITsnbjtlZjsl4XrrLTrs7Tqs6AyMDA3MDgxMy 50eHQ = </ FileName>

<LastModifyDate>2008/05/2714:31:13</LastModifyDate>     <LastModifyDate> 2008/05/2714: 31: 13 </ LastModifyDate>

<ServerModifyDate>2008/05/2714:05:26</ServerModifyDate>     <ServerModifyDate> 2008/05/2714: 05: 26 </ ServerModifyDate>

<FileSize>261</FileSize>     <FileSize> 261 </ FileSize>

<EncryptStatus>0</EncryptStatus>     <EncryptStatus> 0 </ EncryptStatus>

<EncryptType>0</EncryptType>     <EncryptType> 0 </ EncryptType>

</File>  </ File>

<File>  <File>

<!-- 파일이 삭제된 경우 -->    <!-If file is deleted->

<Command>400</Command>     <Command> 400 </ Command>

<GlobalFileId>3D0595959EDFF7281EF5AEB9040BD63E</GlobalFileId>     <GlobalFileId> 3D0595959EDFF7281EF5AEB9040BD63E </ GlobalFileId>

<LocalFileId>68863DD725272BD76A4981D2AB760918</LocalFileId>     <LocalFileId> 68863DD725272BD76A4981D2AB760918 </ LocalFileId>

<ServerDir>/home4/activedisk/disk0</ServerDir>     <ServerDir> / home4 / activedisk / disk0 </ ServerDir>

<ServerFileName>3D0595959EDFF7281EF5AEB9040BD63E7a7905c4cd642008:05: 2714:31:20</ServerFileName>     <ServerFileName> 3D0595959EDFF7281EF5AEB9040BD63E7a7905c4cd642008: 05: 2714: 31: 20 </ ServerFileName>

<FileName>XGJhY2t1cGZvbGRlclzsoITsnbjtlZjsl4XrrLTrs7Tqs6AyMDA3MTAwMS50e HQ=</FileName>     <FileName> XGJhY2t1cGZvbGRlclzsoITsnbjtlZjsl4XrrLTrs7Tqs6AyMDA3MTAwMS50e HQ = </ FileName>

<LastModifyDate>2008/05/2714:31:20</LastModifyDate>     <LastModifyDate> 2008/05/2714: 31: 20 </ LastModifyDate>

<ServerModifyDate>2008/05/2714:03:40</ServerModifyDate>     <ServerModifyDate> 2008/05/2714: 03: 40 </ ServerModifyDate>

<FileSize>318</FileSize>     <FileSize> 318 </ FileSize>

<EncryptStatus>0</EncryptStatus>     <EncryptStatus> 0 </ EncryptStatus>

<EncryptType>0</EncryptType>     <EncryptType> 0 </ EncryptType>

</File>  </ File>

<File>  <File>

<!-- 다른 PC에서 파일이 수정되어 최종 파일 변경을 위해 다운로드가     <!-The file has been modified on another PC and the download

필요한 경우 -->        If necessary->

<Command>200</Command>     <Command> 200 </ Command>

<GlobalFileId>E09CD8103762128446B8BF001B0875A9</GlobalFileId>     <GlobalFileId> E09CD8103762128446B8BF001B0875A9 </ GlobalFileId>

<LocalFileId />     <LocalFileId />

<ServerDir>/home4/activedisk/disk0</ServerDir>     <ServerDir> / home4 / activedisk / disk0 </ ServerDir>

<ServerFileName>E09CD8103762128446B8BF001B0875A9001d926c015e2008:03: 1717:52:02</ServerFileName> <ServerFileName> E09CD8103762128446B8BF001B0875A9001d926c015e2008: 03: 1717: 52: 02 </ ServerFileName>

<FileName>XGJhY2t1cGZvbGRlclxwYy50eHQ=</FileName>     <FileName> XGJhY2t1cGZvbGRlclxwYy50eHQ = </ FileName>

<LastModifyDate>2008/03/1717:52:02</LastModifyDate>     <LastModifyDate> 2008/03/1717: 52: 02 </ LastModifyDate>

<ServerModifyDate>2008/05/2714:04:13</ServerModifyDate>     <ServerModifyDate> 2008/05/2714: 04: 13 </ ServerModifyDate>

<FileSize>79</FileSize>     <FileSize> 79 </ FileSize>

<EncryptStatus>1</EncryptStatus>     <EncryptStatus> 1 </ EncryptStatus>

<EncryptType>1</EncryptType>     <EncryptType> 1 </ EncryptType>

</File>  </ File>

<File> <File>

<!-- 파일이 신규로 생성된 경우 -->    <!-When a file is newly created->

<Command>100</Command>     <Command> 100 </ Command>

<GlobalFileId>2B66B314783B1CCDEB32D39CD348A43F</GlobalFileId>     <GlobalFileId> 2B66B314783B1CCDEB32D39CD348A43F </ GlobalFileId>

<LocalFileId>49841FFBE76E0E29C8FD141ADCF110BA</LocalFileId>     <LocalFileId> 49841FFBE76E0E29C8FD141ADCF110BA </ LocalFileId>

<ServerDir>/home4/activedisk/disk0</ServerDir>     <ServerDir> / home4 / activedisk / disk0 </ ServerDir>

<ServerFileName>2B66B314783B1CCDEB32D39CD348A43F7a7905c4cd642007:10 :0810:26:08</ServerFileName>     <ServerFileName> 2B66B314783B1CCDEB32D39CD348A43F7a7905c4cd642007: 10: 0810: 26: 08 </ ServerFileName>

<FileName>XGJhY2t1cGZvbGRlclzsoITsnbjtlZjsl4XrrLTrs7Tqs6AyMDA3MTAwOC50 eHQ=</FileName>     <FileName> XGJhY2t1cGZvbGRlclzsoITsnbjtlZjsl4XrrLTrs7Tqs6AyMDA3MTAwOC50 eHQ = </ FileName>

<LastModifyDate>2007/10/0810:26:08</LastModifyDate>     <LastModifyDate> 2007/10/0810: 26: 08 </ LastModifyDate>

<ServerModifyDate>2008/05/2714:05:26</ServerModifyDate>     <ServerModifyDate> 2008/05/2714: 05: 26 </ ServerModifyDate>

<FileSize>439</FileSize>     <FileSize> 439 </ FileSize>

<EncryptStatus>0</EncryptStatus>     <EncryptStatus> 0 </ EncryptStatus>

<EncryptType>0</EncryptType>     <EncryptType> 0 </ EncryptType>

</File>  </ File>

</SyncData>  </ SyncData>

<Final />   <Final />

</ActiveBody>  </ ActiveBody>

</ActiveML></ ActiveML>

내용-3-(3). ActiveML을 이용한 동기화 프로토콜 정의Content-3- (3). Synchronization protocol definition using ActiveML

본 발명에서는 SyncML 동기화 프로토콜의 7가지 동기화 타입 중 단방향 동기화를 위해 ‘One-way sync from client only’와 ‘One-way sync from server only’ 타입을 이용하였다. 그리고, 양방향 동기화를 위해 ‘Two-way sync’ 타입을 이용하여 동기화 프로토콜을 개발하였다.In the present invention, 'One-way sync from client only' and 'One-way sync from server only' types are used for one-way synchronization among seven synchronization types of SyncML synchronization protocol. In addition, we developed a synchronization protocol using the ‘Two-way sync’ type for bidirectional synchronization.

먼저 One-way sync from client only 동기화 방식은 사용자 PC에서 본 솔루션을 신규로 설치한 후, 최초로 자동 백업을 수행하는 경우에 사용되는 동기화 방식이다. 백업 폴더로 지정된 폴더 이하의 모든 파일의 정보를 서버로 전송한다. 도 4는 본 발명에 사용된 One-way sync from client only 동기화 프로토콜의 개념을 설명한 그림이다.First, one-way sync from client only synchronization method is a synchronization method used when a new automatic solution is installed on a user's PC and then the first automatic backup is performed. Sends the information of all files below the folder designated as backup folder to the server. 4 is a diagram illustrating the concept of a one-way sync from client only synchronization protocol used in the present invention.

다음으로 One-way sync from server only 동기화 방식은 기존 사용자가 새로운 PC에 클라이언트 모듈 설치시 사용되는 동기화 방식이다. 서버에 이미 백업되어 있는 사용자 폴더 및 파일을 PC로 모두 전송하여 동기화를 유지한다. 도 5는 본 발명에 사용된 One-way sync from server only 동기화 프로토콜의 개념을 설명한 그림이다.Next, the One-way sync from server only synchronization method is used when an existing user installs a client module on a new PC. Transfer all user folders and files already backed up to the server to your PC to stay in sync. 5 is a diagram illustrating the concept of a one-way sync from server only synchronization protocol used in the present invention.

그리고, Two-way sync 동기화 방식은 PC와 서버 상호간에 변경된 데이타에 대한 동기화 정보를 교환하기 위해 사용되는 동기화 방식이다. 이 방식은 솔루션 설치 이후, 가장 많이 사용되는 동기화 방식이다. Two-way sync 동기화는 사용자가 지정한 폴더나 파일에서 수정, 생성, 삭제 등과 같은 조작을 한 경우, PC 파일과 서버에 저장된 파일간의 버전이 다른 경우, PC에서 동기화 정보를 서버로 전송하여 비교한 후, 서버 동기화 정보를 다시 PC 측으로 전송하여 최종적으로 동기화를 완료한다. 도 6은 본 발명에 사용된 Two-way sync 동기화 프로토콜의 개념을 설명한 그림이다.The two-way sync synchronization method is a synchronization method used to exchange synchronization information on changed data between a PC and a server. This is the most common synchronization method after installing the solution. Two-way sync synchronization is used to modify, create, or delete files in a folder or file that you specify.If the version of the file between the PC file and the server is different, the PC sends the sync information to the server for comparison. The server then sends the server synchronization information back to the PC to complete the synchronization. 6 is a diagram illustrating the concept of a two-way sync synchronization protocol used in the present invention.

내용-3-(4). ActiveML을 이용한 서버와 PC 데이타의 불일치 탐지 및 해결Content-3- (4). Detect and resolve inconsistency between server and PC data using ActiveML

상기 내용-3-(3)에서 소개한 동기화 프로토콜을 이용하여 좀 더 복잡한 상황에서의 동기화 작업을 소개한다.Using the synchronization protocol introduced in the above contents-3- (3), the synchronization operation in a more complicated situation is introduced.

서버와 PC간에 동기화 작업이 발생하면 서버와 PC의 데이타베이스에 동기화변경식별자(SM)가 기록된다. 사용자에 의한 고의적인 동기화 중지 또는 시스템 및 네트워크 오류 등으로 인해 서버 데이타베이스와 PC 데이타베이스간 동기화변경식별자의 불일치가 발생할 수 있다. 따라서 서버에 백업된 파일이 가장 최신의 파일인지, PC에서 수정된 파일이 가장 최신 파일인지 사용자에 의한 검증이 필요하다. When synchronization occurs between the server and the PC, the synchronization change identifier (SM) is recorded in the database of the server and the PC. Intentional interruption of synchronization by the user or system and network errors may cause inconsistency in the synchronization change identifier between the server database and the PC database. Therefore, it is necessary to verify by the user whether the file backed up on the server is the most recent file and the file modified on the PC is the most recent file.

예를 들어, 사용자가 2008년 4월 29일 저녁에 집의 A 컴퓨터에서 ‘최종보고서.hwp' 파일을 일부 수정하여 자동 백업하였다. 그리고, ’최종보고서.hwp' 파일에 대한 동기화변경식별자가 서버와 PC의 데이타베이스에 기록된다. 2008년 4월 30일 오전에 회사의 B 컴퓨터에서 자동 동기화 기능을 강제로 중지한 후, B 컴퓨터에 저장된 ’최종보고서.hwp' 파일을 수정하였다. 이런 경우 회사의 B 컴퓨터에서 다시 자동 백업을 위한 동기화가 수행되면, 동기화변경식별자가 불일치하므로 서버에 2008년 4월 29일 저녁 날짜로 백업된 ‘최종보고서.hwp' 파일이 최신 파일인지, B 컴퓨터에서 동기화 과정 없이 2008년 4월 30일자로 수정된 ’최종보고서.hwp' 파일이 최신 파일인지에 대한 검증이 필요하게 된다. 이는 B 컴퓨터에서 서버로부터 최종 백업된 파일을 동기화하여 다운로드 받은 후 수정한 것이 아니므로 최신 파일에 대한 충돌이 발생하는 것이다.For example, on April 29, 2008, a user automatically backed up some modified "final report .hwp" files on computer A at home. The synchronization change identifiers for the final report .hwp file are recorded in the server and PC databases. In the morning of April 30, 2008, the company forcibly stopped the automatic synchronization feature on computer B, and then modified the 'final report.hwp' file stored on computer B. In this case, if the synchronization for automatic backup is performed on computer B again, the synchronization change identifier is inconsistent, so the 'final report.hwp' file backed up to the evening of April 29, 2008 on the server is the latest file. Will need to verify that the 'final report .hwp' file, modified on April 30, 2008, is up-to-date with no synchronization. This does not modify the file that was last backed up from the server on computer B. After downloading it, the file is crashed.

도 7은 두개의 식별자(전역발생식별자(GF), 동기화변경식별자(SM))를 이용하여 서버와 PC 데이타간의 불일치 파일을 탐지하고 사용자에 의해 불일치 문제를 해결하기 위한 시나리오인데, 먼저 파일별로 서버에 저장된 최종 동기화변경식별자와 PC에 저장된 최종 동기화변경식별자를 비교하여, 동기화 시점에 서버와 PC 파일간의 불일치 파일이 존재하는지를 검사한다. 불일치 파일이 검색되면 사용자 검증에 의해 PC 파일을 최신 파일로 인정할 것인지, 서버 파일을 최신 파일로 인정할 것인지를 결정한다. 불일치 해결 기준이 정의되면 후술하는 Two-way Sync 동기화 방식으로 양방향 동기화를 수행하여 서버와 PC간의 데이타를 모두 동기화 시킨다.7 is a scenario for detecting inconsistency files between the server and PC data using two identifiers (globally generated identifiers (GFs) and synchronization change identifiers (SMs)) and solving inconsistencies by users. The last synchronization change identifier stored in the PC is compared with the last synchronization change identifier stored in the PC to check whether there is an inconsistency file between the server and the PC file at the time of synchronization. If a mismatch is found, the user verifies whether the PC file is the latest file or the server file is the latest file. When the inconsistency resolution criteria is defined, two-way synchronization is performed using the two-way sync synchronization method described below to synchronize all data between the server and the PC.

다음은 본 발명의 가장 복잡한 형태중 하나인 상기 발생식별자(LF, GF), 변경식별자(CM, LM, SM)를 이용하여 파일의 추가 생성을 포함하는 동기화를 구현해 본다.Next, a synchronization including additional generation of a file is implemented by using the generation identifiers LF and GF and the change identifiers CM, LM, and SM, which are one of the most complicated forms of the present invention.

먼저 상술한 식별자들을 다시 정리하면, First, rearrange the above identifiers,

LocalFileId(지역발생식별자 - LF) - 최초 사건발생시 생성되는 식별자이며 (데이타 존재여부 판단, 각 PC별 파일명 대체) 각 PC 파일별 유일한 값, 다중 PC에 분산된 동일한 파일일지라도 각 PC별로 서로 다른 값을 가짐 - 서버와 PC 모두에서 수정되지 않는 유일한 값을 가진다. LocalFileId (Local occurrence identifier-LF)-It is an identifier that is generated when the first event occurs. (Determining whether data exists or not, replacing the file name for each PC) Unique value for each PC file, different values for each PC even if the same file is distributed to multiple PCs. Has-has a unique value that is not modified on both server and PC

GlobalFileId(전역발생식별자 - GF) - 최초 사건발생시 생성되는 식별자이며 (데이타 존재여부 판단, 파일명 대체) 다중 PC에 분산된 동일한 파일을 식별하기 위한 유일한 값- 서버와 PC 모두에서 수정되지 않는 유일한 값을 가진다. GlobalFileId (Global identifier-GF) -Identifier generated at the first event (determination of data existence, file name substitution). Unique value to identify the same file distributed among multiple PCs-Unique value not modified on both server and PC Have

Command(이벤트변경식별자 - CM) - 최초 사건발생시 LF와 같이 생성되는 식별자이며(데이타 변경 상태 판단) - 실시간 모니터링을 통하여 생성,변경,삭제와 같은 상태를 숫자 형태로 표현하는 값으로 사건 발생시마다 값은 수정된다.Command (Event Change Identifier-CM)-It is an identifier that is generated like LF at the first event occurrence (data change status judgment).-It expresses the status such as creation, change and deletion through real time monitoring in numerical form. Is modified.

LastModifyDate(시간변경식별자 - LM) - 첫번째 이후의 사건 발생시 LF와 같이 생성되는 식별자이며 (데이타 변경시점 판단) - PC에서 CM 변경식별자와 함께 파일의 변경여부를 판별하기 위해 사용되며, 생성/변경과 같은 이벤트 발생시마다 값은 수정된다. LastModifyDate (Time Change Identifier-LM)-It is an identifier that is generated like LF when an event occurs after the first one. (Date of data change)-Used to determine whether the file has been changed with CM change identifier on PC. The value is modified each time the same event occurs.

ServerModifyDate(동기화변경식별자 - SM) - PC에서 서버에 업로드하는 사건 발생시 생성되는 식별자이며 (데이타 동기화시점 판단) - 서버에서의 값과 상기 서버와 동기화 하기 전의 PC에서의 값은 다를 수 있으며, 동기화 하고나면 서로 같은 값을 가진다. ServerModifyDate (Sync Change Identifier-SM) -It is an identifier that is generated when an event is uploaded from the PC to the server (Judged when to synchronize data)-The value on the server and the value on the PC before synchronizing with the server may be different. Then they have the same value.

위 5개의 식별자 모두 ECA(이벤트-컨디션-액션 : 사건 발생시 생성)타입의 식별자이다.All five above identifiers are of ECA (Event-condition-Action) type.

다음 내용은 어떤 사용자가 개인PC A에서 작업후 이를 서버와 동기화(서버로 백업)하고난 이후 다른 장소에 있는 개인PC B를 가동시키되, 서버와 동기화(서버로부터 다운로드)하지 않고 PC B의 파일을 변경 또는 생성한 경우를 가정하고 서버와 개인PC B에 저장된 파일의 데이타구조체에서 식별자들이 어떻게 변하는지를 설명한 것이다.The following is a user who works on Personal PC A and synchronizes it with the server (backs up to the server) and then starts up the Personal PC B in another location, but does not synchronize with the server (download from the server). This section describes how identifiers change in the data structures of files stored on the server and personal PC B, assuming changes or creations.

개인PC APersonal PC A

(기존데이타) (변경) (생성) (Existing data) (Change) (Create)

LF-AFO GF-GFO LF-AFO GF-GFO LF-AF1 GF-GF1LF-AFO GF-GFO LF-AFO GF-GFO LF-AF1 GF-GF1

CM-0 LM-0' SM-1 CM-300 LM-1' SM-1 CM-100 LM-1' SM-nullCM-0 LM-0 'SM-1 CM-300 LM-1' SM-1 CM-100 LM-1 'SM-null

--> 서버로 백업 -->-> Backup to Server->

서버 저장Server storage 개인PC A 동기화Personal PC A Sync

(업로드) (업로드) (개인PC A의 SM 정보 수정) (Upload) (Upload) ( Modify SM information of Personal PC A)

LF-AFO GF-GF0 LF-AF1 GF-GF1 (LF-AFO GF-AFO LF-AF1 GF-GF1)LF-AFO GF-GF0 LF-AF1 GF-GF1 (LF-AFO GF-AFO LF-AF1 GF-GF1)

LM-1' SM-2 LM-1' SM-2 (CM-600 LM-1' SM-2 CM-600 LM-1' SM-2)LM-1 'SM-2 LM-1' SM-2 (CM-600 LM-1 ' SM-2 CM-600 LM-1' SM-2 )

--> 동기화 하지 않고 개인 PC B 스타트 후 작업 -->-> Work after personal PC B start without syncing->

개인PC BPersonal PC B

(기존데이타) (변경) (생성) (Existing data) (Change) (Create)

LF-BF0 GF-GF0 LF-BF0 GF-GF0 LF-BF2 GF-GF2LF-BF0 GF-GF0 LF-BF0 GF-GF0 LF-BF2 GF-GF2

CM-0 LM-0' SM-1 CM-300 LM-2' SM-1 CM-100 LM-2' SM-nullCM-0 LM-0 'SM-1 CM-300 LM-2' SM-1 CM-100 LM-2 'SM-null

여기서 LF와 GF에 붙는 첨자는 A(PC A), G(다중 PC 사용시 동일한 파일을 구분하기 위한 전역값으로 사용), B(PC B) 이며, F(File)첨자에 붙는 첨자는 0,1,2 등은 파일의 유일한 값이다.The subscripts attached to LF and GF are A (PC A), G (used as global value to distinguish the same file when using multiple PCs), B (PC B), and subscripts attached to F (File) subscript are 0,1 , 2 and so on are the only values in the file.

LM과 SM에 붙는 첨자는 0= 최초 시간, 0'=0이후부터 1이전까지의 시간, 1= 0'이후 시간, 1'= 1이후부터 2이전까지의 시간, 2= 1'이후시간, 2'= 2이후 시간 이 된다. SM에 붙는 첨자 중 null은 백업된 적이 없다는 정보를 표현한다.Subscripts attached to LM and SM include 0 = initial time, time from 0 '= 0 to 1 before, 1 = time after 0', 1 '= time from 1 to 2, 2 = time after 1', After 2 '= 2, it is time. Among the subscripts attached to the SM, null represents the information that it has never been backed up.

상기와 같이 개인PC A = 서버 ≠ 개인PC B 의 데이타 상태가 초래된 상황에서, 후술하는 바와 같이 (가),(나),(다) 의 다양한 데이타 동기화 작업이 사용자로부터 요구될 수 있다.As described above, in a situation in which the data state of Personal PC A = Server ≠ Personal PC B is caused, various data synchronization operations (A), (B) and (C) may be required from the user as described below.

(가) 사용자가 개인PC B에 접속후 서버와 동기화하지 않고 작업한 뒤에, 마음을 바꿔서 개인PC B의 작업결과를 무효화하고 개인PC A 작업결과 기준으로 서버와 동기화하고자 할 때:(A) When a user connects to personal PC B and works without synchronizing with the server, he changes his mind and wants to invalidate the personal PC B work results and synchronize with the server based on the personal PC A work results:

- 개인PC B의 파일의 데이타구조체가 가진 시간정보 SM-1과 서버의 SM-2 식별자 정보가 서로 일치하지 않고 서버의 SM-2 식별자 정보가 더 최근이므로, 개인 PC B에서 SM-2이전의 동기화 데이타 중 변경된 데이타는 삭제 대상이 됨.-Since the time information SM-1 of the data structure of the file structure of the personal PC B and the SM-2 identifier information of the server do not match each other, and the SM-2 identifier information of the server is more recent, The changed data in the synchronization data is deleted.

- 개인PC B에서 시간 2이후에 수정된 CM-300과 LM-2' 변경식별자를 동시에 갖는 GF-GF0파일 삭제 후, 서버로부터 GF-GF0파일 동기화(다운로드)-Synchronize GF-GF0 files from the server after downloading GF-GF0 files with both CM-300 and LM-2 'modified identifier modified after time 2 on personal PC B.

- 개인PC B에서 시간 2이후에 신규로 생성된 CM-100(신규 생성), SM-null(동기화 되지 않음) 변경식별자를 동시에 갖는 GF-GF2 파일 업로드-Upload GF-GF2 file with CM-100 (newly created) and SM-null (not synchronized) newly created after time 2 on personal PC B

- 서버로부터 개인PC B에게로 GF 기준 동기화(개인 PC B에 존재하지 않는 GF-GF1 식별자를 갖는 파일 다운로드)-GF reference synchronization from server to personal PC B (download files with GF-GF1 identifiers not present on personal PC B)

- 파일의 데이타구조체가 가진 시간정보가 SM-1 식별자를 통한 시간정보 외에도 LM-2' 식별자를 통한 시간정보와 CM 식별자를 통한 이벤트 발생 정보를 더 갖고 있으므로 시간 2 이후(2~2')에 파일의 생성, 삭제, 변경과 같이 복잡한 변화가 있을 경우에도 쉽게 처리가능, 특히 생성과 변경을 쉽게 구분할 수 있다. - 개인PC B의 SM으로는 판단 불가능하나 개인PC B의 CM과 LM으로는 판단 가능하다는 특징이 있다.-Since the time information of the data structure of the file has time information through the LM-2 'identifier and event occurrence information through the CM identifier, in addition to the time information through the SM-1 identifier, after time 2 (2 ~ 2') Even complex changes such as file creation, deletion and modification can be handled easily, especially creation and change. -It cannot be judged by SM of personal PC B, but it can be judged by CM and LM of personal PC B.

(나) 사용자가 개인PC B에 접속후 서버와 동기화하지 않고 작업한 뒤에, 개인PC A 작업결과를 무효화하고 개인PC B 작업결과 기준으로 서버와 동기화하고자 할 때:(B) When a user connects to personal PC B and works without synchronizing with the server, and then invalidates the personal PC A work results and synchronizes with the server based on the personal PC B work results:

- 서버의 SM-2 식별자 정보가 개인 PC B의 SM-1보다 더 최근이지만, 개인 PC B의 데이타가 LM-2', CM-300으로 변경된 변경식별자 정보를 가지므로 해당 식별자를 갖는 파일은 백업 대상이 됨.-The SM-2 identifier information of the server is more recent than the SM-1 of personal PC B, but since the data of personal PC B has changed identifier information changed to LM-2 ', CM-300, the file with the identifier is backed up. Eligible.

- 개인PC B로부터 서버에게로 GF 기준 동기화(GF-GF0, GF-GF2 식별자 갖는 파일 업로드)-GF standard synchronization from personal PC B to server (upload file with GF-GF0, GF-GF2 identifier)

- 서버로부터 개인PC B에게로 GF 기준 동기화(개인 PC B에 존재하지 않는 GF-GF1 식별자를 갖는 파일 다운로드)-GF reference synchronization from server to personal PC B (download files with GF-GF1 identifiers not present on personal PC B)

- 파일의 데이타구조체가 가진 시간정보가 SM-2 식별자를 통한 시간정보 외에도 CM, LM-2' 식별자를 통한 시간정보를 더 갖고 있으므로 시간 1' 이후(1'~2)에 파일의 생성, 삭제, 변경과 같이 복잡한 변화가 있을 경우에도 쉽게 처리가능하다. 특히 생성과 변경을 쉽게 구분할 수 있다. - 서버의 SM 만으로는 판단 불가능하나 개인PC B의 CM과 LM으로 판단 가능하다는 특징이 있다.-Since the time information of the file data structure has time information through CM and LM-2 'identifiers in addition to time information through SM-2 identifiers, file creation and deletion after time 1' (1 '~ 2) This can be easily handled even when there are complex changes such as changes. In particular, creation and change can be easily distinguished. -It can not be judged by SM of server but can be judged by CM and LM of personal PC B.

(다) 사용자가 개인PC B에서 작업 중 개인PC B 작업의 특정 이전시점으로 돌아가고자 할 때:(C) When a user wants to return to a specific point in time for a personal PC B job while working on his personal PC B:

- 시간 2' 중 특정 시점을 선택, -Select a point in time 2 ',

실시간 모니터링 중인 파일 중 해당 시간 이전 시점의 SM을 가진 서버에 백업된 데이타 중 해당 시간 이전 LM의 파일만 다운로드하고 PC에서 그 이후 시점의 LM을 가진 파일은 삭제하거나, 이전의 LM의 파일을 새로운 파일명으로 다운로드한다. - 서버의 SM만으로는 구별이 불가능하나 서버의 SM과 LM으로는 구별 가능하다는 특징이 있다.   Among the files being monitored in real time, only the files of the LM before that time are downloaded from the data backed up to the server with the SM before the time, and the files with the LM after that time are deleted from the PC, or the file of the previous LM is named as a new file name. Download to. -It is impossible to distinguish only by SM of server, but it is distinguishable by SM and LM of server.

다음의 내용은 상기 (가)~(다) 중 서버에서 종료된 상태인 (가)~(나)의 동기화 요구에 따라 서버와 개인 PC B에 저장된 각 파일의 상태이다.The following is the state of each file stored in the server and the personal PC B in accordance with the synchronization request of (a) to (b), which is the state of (a) to (c) terminated at the server.

서버 - (가)Server-

(변화없음) (변화없음) (개인 PC B에서 업로드) (No change) (no change) (upload from personal PC B)

LF-AFO GF-GF0 LF-AF1 GF-GF1 LF-BF2 GF-GF2LF-AFO GF-GF0 LF-AF1 GF-GF1 LF-BF2 GF-GF2

LM-1' SM-2 LM-1' SM-2 LM-2' SM-3 LM-1 'SM-2 LM-1' SM-2 LM-2 'SM-3

개인 PC B - (가)Personal PC B-(a)

(다운로드) (다운로드) (동기화정보 SM 변경) (Download) (Download) (Sync info SM change)

LF-BFO GF-GF0 LF-AF1 GF-GF1 LF-BF2 GF-GF2LF-BFO GF-GF0 LF-AF1 GF-GF1 LF-BF2 GF-GF2

LM-3 SM-2 LM-3 SM-2 LM-2' SM-3 LM-3 SM-2 LM-3 SM-2 LM-2 'SM-3

------------------------------------------------------------------------------------------------------------------ --------------

서버 - (나)Server-(me)

(PC B에서 업로드) (변화없음) (PC B에서 업로드) (Upload from PC B) (No change) (Upload from PC B)

LF-BFO GF-GF0 LF-AF1 GF-GF1 LF-BF2 GF-GF2LF-BFO GF-GF0 LF-AF1 GF-GF1 LF-BF2 GF-GF2

LM-2' SM-3 LM-1' SM-2 LM-2' SM-3LM-2 'SM-3 LM-1' SM-2 LM-2 'SM-3

개인 PC B - (나)Personal PC B-(I)

(동기화정보 SM 변경) (다운로드) (동기화정보 SM 변경) (Change SM Synchronization Information) (Download) (Change SM Synchronization Information)

LF-BFO GF-GF0 LF-AF1 GF-GF1 LF-BF2 GF-GF2LF-BFO GF-GF0 LF-AF1 GF-GF1 LF-BF2 GF-GF2

LM-2' SM-3 LM-3 SM-2 LM-2' SM-3 LM-2 'SM-3 LM-3 SM-2 LM-2' SM-3

본 발명에서는 상술한 바와 같은 데이타 동기화 방법을 이용하여 개인 데이타를 PC급 서버에서 자동으로 관리하기 위한 시스템을 개발하였다. 기존 시스템은 사용자에 의해 수동적으로 파일을 백업하고 복구하는 방식에 의해 불편하다. 그러나 본 발명을 구현한 시스템은 Event-Driven방식에 의해 파일을 자동으로 백업과 복구하는 방식을 사용하여 빠르고 안전하게 데이타를 관리할 수 있다. 또한 기존 시스템은 PC에 저장된 파일이 원본이 되고 서버에 저장된 파일은 복사본의 역할을 한다. 반면에 본 발명을 구현한 시스템에서는 서버에 저장된 파일이 최신의 원본 파일이 되고, 개인 PC 에 저장된 파일이 복사본의 역할을 한다. 도 8a, 도 8b는 기존 백업솔루션의 동작방식과 본 발명 백업솔루션의 동작 방식을 비교한 그림이다.The present invention has developed a system for automatically managing personal data in a PC-class server using the data synchronization method as described above. Existing systems are inconvenient by the way of manually backing up and restoring files. However, the system implementing the present invention can manage data quickly and safely by using a method of automatically backing up and restoring a file by an event-driven method. Existing systems also use the files stored on the PC as the original and the files stored on the server as a copy. On the other hand, in the system implementing the present invention, the file stored in the server becomes the latest original file, and the file stored in the personal PC serves as a copy. 8A and 8B are diagrams comparing the operation method of the existing backup solution with the operation method of the present invention.

본 발명을 구현한 시스템은 사용자 PC에서 파일 생성이나 변경과 같은 이벤트가 발생할 경우 자동으로 파일을 서버 디스크에 업로드한다. 또한 사용자 PC가 인터넷에 연결되면 서버 디스크에 저장된 최신 파일을 PC나 노트북에 다운로드하여 여러 PC간의 동기화를 자동적으로 유지할 수 있다. 작업 후에는 변경된 파일이 실시간으로 업로드되어 서버 디스크에 저장된 데이타와 동기화되므로 사용자의 추가적인 작업없이 항상 최신 파일을 편리하게 관리할 수 있다. 도 9는 상기 데이타 백업솔루션의 동작 개념도이며, 도 10은 상기 데이타 백업솔루션의 동작시나리오이다.The system implementing the present invention automatically uploads a file to a server disk when an event such as file creation or modification occurs on a user PC. In addition, when your PC is connected to the Internet, the latest files stored on the server disk can be downloaded to your PC or laptop to automatically keep the synchronization between multiple PCs. After the operation, the changed file is uploaded in real time and synchronized with the data stored on the server disk, so that the user can conveniently manage the latest file without any additional work. 9 is a conceptual diagram of the data backup solution, and FIG. 10 is an operation scenario of the data backup solution.

데이타 백업솔루션은 앞서 설명한 바와 같이 실시간으로 파일을 백업하기 위한 ECA 모델 기반의 이벤트 규칙 처리 모듈, 다수의 사용자 PC에 분산된 데이타간의 불일치를 해결하기 위한 동기화 모듈을 기본적으로 포함하며, 추가적으로 PC 파일 손실시 다양한 관점에서 파일을 복구하기 위한 복구 모듈, 네트워크나 서버 해킹시에도 안전하게 데이타를 보호하기 위한 암호화 모듈로 구성된다.The data backup solution basically includes an ECA model-based event rule processing module for backing up files in real time as described above, and a synchronization module for resolving inconsistencies among data distributed among multiple user PCs. It consists of a recovery module for recovering files from various points of view, and an encryption module for safe data protection even in the case of network or server hacking.

실시예 구성1. ECA 모델 기반의 이벤트 규칙 처리 모듈 Example Configuration Event rule processing module based on the ECA model

- Event-Driven 방식에 의해 CDP 기술을 이용하여 PC 데이타의 생성, 변경시 자동으로 서버에 업로드 및 다운로드하기 위한 이벤트 규칙을 정의하고 처리하기 위한 모듈-Module for defining and processing event rules for uploading and downloading to the server automatically when creating or changing PC data using CDP technology by event-driven method

이벤트 규칙 처리 엔진은 PC에서 시스템과 파일에 대한 조작 이벤트를 감지하고 파일에 대한 변경과 관련된 정보를 관리하기 위한 기능을 수행한다. 이벤트 규칙 처리 엔진은 크게 파일에 대한 정보를 관리하는 파일 버전 DB, 파일 및 시스템 이벤트를 모니터링하는 파일 모니터링 툴, 파일의 변경 여부를 검사하는 파일 변경 검사 모듈로 구성된다. 이벤트 규칙을 처리하는 과정은 기존의 파일 버전 DB를 로드하고 파일 모니터링 툴에 의해 이벤트가 감지되면 파일 변경 검사 모듈에서 변경된 파일의 정보와 파일 버전 DB의 내용을 비교하여 파일 버전 DB를 재구성하는 과정으로 이루어진다.The event rule processing engine detects operation events on the system and files on the PC and manages information related to changes to the files. The event rule processing engine consists of a file version DB that manages information about files, a file monitoring tool that monitors files and system events, and a file change inspection module that checks whether files have changed. The event rule processing process is to reload the file version DB by loading the existing file version DB and comparing the information of the changed file with the contents of the file version DB in the file change check module when an event is detected by the file monitoring tool. Is done.

도 11은 본 실시예에 탑재되는 ECA 모델 기반의 이벤트 규칙 처리 엔진의 개념도이며, 도 12는 상기 이벤트 규칙처리 엔진의 동작흐름도이다.FIG. 11 is a conceptual diagram of an ECA model based event rule processing engine mounted in the present embodiment, and FIG. 12 is a flowchart illustrating an operation of the event rule processing engine.

보다 상세히, 이벤트 규칙 처리 엔진은 크게 파일 및 시스템 이벤트를 모니터링하는 파일 모니터링 툴, 변경된 파일에 대한 정보를 관리하는 파일 버전 DB, 파일의 변경 여부를 검사하는 파일 변경 검사 모듈로 구성된다. In more detail, the event rule processing engine is largely composed of a file monitoring tool for monitoring files and system events, a file version DB for managing information about changed files, and a file change checking module for checking whether a file has been changed.

파일 모니터링 툴은 PC 데이타의 생성, 변경, 복사 등과 같은 파일 기반 이벤트를 감지하는 툴이다. 본 실시예에서는 ALFA Corp. 사의 Alfa File Monitor를 구입하여 사용하였다.File monitoring tools are tools that detect file-based events such as creating, modifying, and copying PC data. In this embodiment, ALFA Corp. Alfa File Monitor was purchased and used.

파일 버전 DB는 신규로 생성된 파일이나 변경된 파일에 대한 정보를 관리하기 위한 파일이다. 파일 버전 DB는 파일별 ID, 파일명, 파일크기, 파일생성일, 파일 최종수정일 등의 정보로 구성된다. 파일 버전 DB의 정보는 파일에 대해 조작 이벤트가 발생하면 파일 변경 검사 모듈에 의해 재구성된다. 그리고, 파일 버전 DB는 본 실시예에서 정의한 이벤트 조건이 만족되어 자동백업 액션이 동작할 때 서버 데이타와 비교하여 동기화하기 위한 정보로 사용된다. 표 9는 본 실시예의 파일 버전 DB의 구조를 설명한 내용이다.The file version DB is a file for managing information on newly created or changed files. The file version DB consists of information such as file ID, file name, file size, file creation date, and file last modified date. The information in the file version DB is reconstructed by the file change check module when an operation event occurs for the file. The file version DB is used as information for synchronizing with the server data when the automatic backup action is performed when the event condition defined in the present embodiment is satisfied. Table 9 describes the structure of the file version DB of this embodiment.

파일버전 DB의 구조File Version DB Structure 속성명Attribute name 타입type 설명Explanation Local File IDLocal File ID char(32)char (32) - 파일별 유일성을 구분하기 위한 식별자 - 파일명을 해쉬값으로 바꿔서 사용 - 예 : 04E237984C889A2140F6A4463ADCD9A5-Identifier to distinguish uniqueness of each file-Change file name to hash value-Example: 04E237984C889A2140F6A4463ADCD9A5 Global File IDGlobal File ID char(32)char (32) - 다중 PC에 분산된 동일한 파일을 식별하기 위한 식별자 - 파일명을 해쉬값으로 바꿔서 사용 - 예 : 2319941095FC3CEF517030AE846A3653-Identifier to identify the same file distributed on multiple PCs-Used by replacing the file name with a hash value-Example: 2319941095FC3CEF517030AE846A3653 Folder IDFolder ID char(32)char (32) - 폴더의 유일성을 구분하기 위한 식별자 - 폴더명을 해쉬값으로 바꿔서 사용 - 예 : 5232FC3CEF517030A1232345B8978753-Identifier to identify the uniqueness of the folder-Change the folder name to a hash value-Example: 5232FC3CEF517030A1232345B8978753 파일명Filename charchar - 파일명 - 예 : \backup\file\intro_xml.camproj-Filename-eg: \ backup \ file \ intro_xml.camproj 파일 수정일File modification date charchar - 파일의 최종수정일시 - 신규 파일인 경우에는 파일의 생성일시 - 신규 파일이 아닌 경우에는 파일의 최종수정일이 됨 - 예 : 2008/03/27 18:48:30-Date of last modification of the file-Date of creation of the file in the case of a new file-Date of last modification of the file in the case of a new file-Example: 2008/03/27 18:48:30 파일 동기화일File sync date charchar - 조건에 의해 자동백업된 일시 - 예 : 2008/03/27 18:48:40-Date and time of automatic backup by condition-Ex: 2008/03/27 18:48:40 파일 크기File size integerinteger - 파일의 실제 크기, byte 단위 - 예: 47616-The actual size of the file, in bytes-eg 47616 파일 암호화File encryption integerinteger - 파일 암호화 여부 선택-Choose whether to encrypt files 암호화 알고리즘Encryption algorithm integerinteger - 파일 암호화 알고리즘 선택 - 예 : 1-RC4, 2-RC5, 3-DES, 4-AES-File encryption algorithm selection-e.g. 1-RC4, 2-RC5, 3-DES, 4-AES 파일 명령어File command integerinteger - 파일 모니터링 툴에 의해 감지된 파일별 이벤트와 명령어 - 100(create), 300(modify), 400(delete), 500(done) 등-File-specific events and commands detected by file monitoring tools-100 (create), 300 (modify), 400 (delete), 500 (done), etc.

파일 변경 검사 모듈은 파일 조작 이벤트 발생시 변경된 파일의 정보와 파일 버전 DB의 정보를 비교하여 새로운 파일 버전 DB를 구축하기 위한 재구성 작업을 수행한다. 먼저, 파일 변경 검사 모듈은 파일 모니터링 툴을 통해 파일 조작 이벤트에 대한 로그를 검사하여 해당 파일의 정보를 메모리 큐에 저장한다. 그리고, 기존의 파일 버전 DB와 메모리 큐의 정보를 비교하여 변경 사항이 존재하면 메모리 큐의 정보를 추가할 수 있도록 파일 버전 DB를 재구성한다. The file change checking module compares the information of the changed file with the information of the file version DB when a file manipulation event occurs and performs a reconstruction operation to construct a new file version DB. First, the file change inspection module examines a log of file manipulation events through a file monitoring tool and stores information of the file in a memory queue. Then, the file version DB is reconfigured to add the information of the memory queue if there is a change by comparing the information of the existing file version DB and the memory queue.

도 13은 상기 이벤트 규칙 처리 엔진에 대한 클래스 설계도를 UML로 표현한 내용이다. 이벤트 규칙 처리 엔진은 파일에 대한 이벤트를 감지(CFileMonitoring)하고 파일 버전 DB의 정보를 검사(CFileVersionCheck)하여 이벤트가 발생한 파일에 대한 정보와 비교 후, 새로운 파일 버전 DB를 재구축(CBackupResource)하는 클래스들로 구성된다.FIG. 13 is a UML representation of a class design diagram for the event rule processing engine. The event rule processing engine detects an event on a file (CFileMonitoring), checks the information of a file version DB (CFileVersionCheck), compares the information on the file where the event occurred, and rebuilds (CBackupResource) a new file version DB. It consists of.

실시예 구성2. 서버 데이타와 다수의 PC 데이타간의 동기화 모듈 Example Configuration 2. Synchronization module between server data and multiple PC data

- 서버 데이타와 다수의 PC에 저장된 데이타를 자동으로 동기화하기 위한 처리모듈Processing module for automatically synchronizing server data and data stored in multiple PCs

- One-way sync from client only : PC에서 변경된 데이타를 서버에 전송시 동기화-One-way sync from client only: Synchronize when data is changed from PC to server

- One-way sync from server only : 서버에서 변경된 데이타를 PC에 전송시 동기화-One-way sync from server only: Synchronize when the server changes data to PC

- Two-way sync between server and client : PC와 서버에서 상호 변경된 데이타를 교환하기 위한 일반적인 형태의 동기화Two-way sync between server and client: General form of synchronization for exchanging data between PC and server.

- PC 데이타와 서버에 저장된 데이타간의 버전이 다른 경우, 이를 탐지하여 사용자에 의해 불일치 해결 기준을 선택하게 하는 처리모듈-If the version of the data between the PC data and the data stored in the server is different, the processing module for detecting the discrepancy by the user to select the standard

- Two-way sync 동기화 방식으로 서버와 PC간 데이타를 동기화하여 불일치를 해결하는 처리모듈-Processing module that resolves inconsistency by synchronizing data between server and PC by two-way sync synchronization method

본 실시예에서는 서버 데이타와 다수의 PC에 저장된 데이타를 자동으로 동기화하기 위한 데이타 동기화 엔진을 개발하였다. 기존 백업솔루션에서는 다중 PC간에 동기화를 위하여 사용자가 수동적으로 PC 파일을 업로드하여 서버에 백업본을 보관한 후, 다른 PC에서 서버에서 필요한 파일을 직접 다운로드하는 방식으로 동작하여 불편하다. 그러나 본 발명에서는 서버와 PC에 저장된 파일에 대해 동기화 데이타를 생성하여, 백업이 필요한 파일과 복구가 필요한 파일에 대한 정보를 구성할 수 있다. 그리고, 동기화 정보를 기반으로 파일을 자동으로 백업 및 복구함으로써 여러 PC에 분산된 파일간의 일관성을 자동으로 유지할 수 있다. 도 14는 본 실시예인 서버 디스크와 PC간의 데이타 동기화에 대한 개념도이다.In this embodiment, a data synchronization engine for automatically synchronizing server data and data stored in a plurality of PCs has been developed. Existing backup solution is inconvenient because users manually upload PC file to keep backup copy on server for synchronization between multiple PCs, and then directly download necessary files from server from other PCs. However, in the present invention, by generating the synchronization data for the files stored in the server and the PC, it is possible to configure information about the file that needs to be backed up and the file that needs to be restored. And, by automatically backing up and restoring files based on synchronization information, it is possible to automatically maintain consistency among files distributed among multiple PCs. 14 is a conceptual diagram for data synchronization between a server disk and a PC according to the present embodiment.

동기화 엔진은 사용자 PC 파일과 서버 파일 간의 동기화 정보를 비교하기 위해 동기화 정보를 생성하는 ActiveML 생성 모듈, 동기화 정보를 전송하는 ActiveML 전송 모듈, 서버의 동기화 정보를 분석하여 업로드되거나 다운되어야하는 파일 리스트를 생성하는 ActiveML 분석 모듈로 구성된다.The synchronization engine generates an ActiveML generation module for generating synchronization information, an ActiveML transmission module for transmitting synchronization information, and a list of files to be uploaded or down by analyzing the synchronization information of the server to compare the synchronization information between a user PC file and a server file. It consists of an ActiveML analysis module.

도 15는 상기 동기화 엔진에 대한 클래스 설계도를 UML로 표현한 것이다. 이벤트 규칙 처리 엔진을 통해 동기화가 요청되면 동기화 엔진은 동기화가 필요한 파일에 대해 ActiveML 인스턴스를 생성(CActiveMLParser)하여, 서버로 전송(CSyncDataTransfer) 하고, 서버로부터 전송된 ActiveML 인스턴스를 분석(CActiveMLParser) 하여 백업이 필요한 파일 정보를 보안 엔진으로 전송한다. 15 is a UML representation of a class design diagram for the synchronization engine. When synchronization is requested through the event rule processing engine, the synchronization engine creates an ActiveML instance (CActiveMLParser) for the file that needs to be synchronized, transfers it to the server (CSyncDataTransfer), and analyzes the ActiveML instance sent from the server (CActiveMLParser). Send the necessary file information to the security engine.

실시예 구성3. 데이타 복구 모듈(추가) Example Configuration 3. Data Recovery Module (Added)

- PC 또는 파일 손실시 서버 데이타를 이용한 완전 복구 또는 부분 복구-Complete or partial recovery using server data in case of PC or file loss

- 완전 복구 : PC의 모든 데이타를 손실한 경우 서버 데이타를 이용한 전체적인 데이타 복구-Complete recovery: Recover all data using server data when all data on PC is lost

- 부분 복구 : 특정 시점 또는 특정 버전을 기준으로 PC의 일부 데이타 복구Partial recovery

본 실시예에서는 PC나 특정 파일이 손실될 경우에 서버에 백업된 데이타를 이용하여 완전 복구 또는 부분 복구할 수 있는 데이타 복구 엔진을 개발하였다. 완전 복구는 사용자 PC를 교체하거나 디스크를 포맷한 경우에 서버에 백업된 파일에서 최종 버전 파일을 전부 다운로드하여 복구하는 방법이다. 부분 복구는 사용자가 복구시점을 지정하여 원하는 파일만을 복구하는 방법이다. 사용자의 복구시점 지정방법에 따라 시간기반 복구와 버전기반 복구 방법으로 구분된다. In the present embodiment, a data recovery engine has been developed that can be completely or partially recovered using data backed up to a server when a PC or a specific file is lost. Complete recovery is a method of downloading and recovering all the final version files from the files backed up to the server when the user PC is replaced or the disk is formatted. Partial recovery is a method of recovering only the desired files by specifying a recovery point. It is divided into time-based recovery and version-based recovery method according to user's recovery point designation method.

본 실시예인 백업솔루션은 이벤트가 발생할 때마다 변경된 파일을 서버로 업로드하는 방식으로 동작한다. 따라서 서버에는 하나의 파일명에 대해 시간별로 여러 개의 백업 파일이 생길 수 있으며 이러한 시간대별 백업 파일들을 버전 파일이라 한다. 본 실시예에서는 버전 파일을 대상으로 최종 백업 파일 복구, 시간대별 복구, 특정 버전 파일별 복구 기능을 수행할 수 있는 복구 엔진을 개발하였다. 도 16은 본 실시예에 적용된 데이타 복구 엔진에 대한 흐름도이다.The backup solution according to the present embodiment operates by uploading the changed file to the server whenever an event occurs. Therefore, the server can have several backup files per time for one file name, and these backup files for each time zone are called version files. In the present embodiment, a recovery engine capable of performing a final backup file recovery, a timephased recovery, and a specific version file recovery function has been developed for a version file. 16 is a flowchart of a data recovery engine applied to this embodiment.

도 16에서 복구 장소 선택 옵션은 완전 복구나 부분 복구에 의해 복구될 폴더와 파일의 위치를 선택하는 옵션이다. 사용자가 특정 위치(예 : D:\복구폴더) 를 선택하여 사용할 수도 있고, 선택하지 않으면 백업되기 전에 원래 있던 위치에 폴더를 생성하고 파일을 복구한다.In FIG. 16, the recovery location selection option is an option for selecting a location of a folder and a file to be restored by complete recovery or partial recovery. The user can select and use a specific location (eg D: \ recovery folder), or if not selected, create a folder in the original location before the backup and restore the file.

이때 파일 복구중에 복구되는 파일과 동일한 이름의 파일이 사용자 PC에 존재하는 경우에 대한 해결 방법을 선택하는 옵션으로 파일 중복 해결방법 선택 옵션을 더 둘 수 있다. 표 10은 파일 중복을 해결하기 위한 선택 옵션이다.At this time, the option to select a solution for the case where a file with the same name as the file to be recovered during the file recovery exists in the user's PC may be further selected as a file duplication solution selection option. Table 10 lists the options for resolving file duplication.

파일 중복 해결 방법 선택 옵션Option to choose file resolution solutions 방법Way 설명Explanation 덮어쓰기Overwrite - 복구되는 파일로 기존 파일을 덮어씀 - 결론적으로 PC에는 복구된 파일 하나만 존재-Overwrite existing file with recovered file-In conclusion, only one recovered file exists on PC 복구 파일명 수정Modify Recovery File Name - 복구되는 파일의 이름에 (1), (2)... 를 추가하여 복구 파일명 수정 - 기존 동일한 이름의 파일은 그대로 존재 - 예) 최종보고서.hwp -> 최종보고서(1).hwp-Modify the name of the recovered file by adding (1), (2) ... to the name of the file to be recovered-Existing file with the same name still exists-ex) Final report.hwp-> Final report (1) .hwp 버전 파일명 수정Edit version file name - 동일한 파일명을 가진 여러 개의 버전 파일들을 동시에 복구하고자 할 때, 파일명이 중복되므로 복구되는 버전 파일들의 이름에 “백업시간” 정보를 추가하여 복구 파일명을 수정 - 기존 동일한 이름의 파일은 그대로 존재 - 예) 최종보고서.hwp -> 최종보고서_20080312.hwp , 최종보고서_20070320.hwp-When recovering several version files with the same file name at the same time, since the file name is duplicated, modify the recovery file name by adding “backup time” information to the name of the version file being recovered.-Existing file of the same name still exists-Yes ) Final Report.hwp-> Final Report_20080312.hwp, Final Report_20070320.hwp

실시예 구성4. 업로드/다운로드시 데이타 보호를 위한 암호화 모듈(추가) Example Configuration 4. Encryption module for data protection on upload / download (additional)

- 네트워크/서버 해킹시 데이타 보호를 위한 파일 암호화-File encryption for data protection in case of network / server hacking

- 업로드전에 PC에서 사전 암호화 후 업로드하는 방식-Upload after pre-encryption on PC before upload

- 사용자 지정 암호(Password Based Encryption)에 의한 암호화 방식으로 처리-Encryption method by Password Based Encryption

- AES, RC4, RC5, DES, 3DES와 같은 다양한 공개 암호화 알고리즘을 이용한 암호화 처리모듈-Encryption processing module using various public encryption algorithms such as AES, RC4, RC5, DES, 3DES

상기 실시예 구성들을 결합한 본 실시예는 크게 실시간 자동 백업 및 복구, 분산 파일의 동기화 지원을 위한 클라이언트 시스템과 서버 디스크의 기능과 함께 복구와 관리 기능을 지원하기 위한 서버 시스템으로 구성된다. 표 11은 본 발명 솔루션의 유형별 세부 기능을 설명한 내용이다.This embodiment, which combines the above embodiments, is composed of a client system for real-time automatic backup and recovery, synchronization of distributed files, and a server system for supporting recovery and management functions along with server disk functions. Table 11 describes the detailed functions for each type of the present invention solution.

본 솔루션의 기능Function of this solution 시스템 분류System classification 기능 분류Functional classification 세부 기능Detail function 클라이언트 시스템Client system 자동 백업Auto backup - 파일 생성/수정 등과 같은 이벤트 발생시 자동 백업 - 실시간 백업 - 사용자 정의에 의한 스케줄링 백업 - 개인별 패스워드를 이용한 파일 암호화 - 백업 관련 로그 관리 - 백업 완료 후, 자동 윈도우 시스템 종료 -Automatic backup when events occur, such as file creation / modification, etc.-Real time backup-Scheduled backup by user definition-File encryption using individual password-Log management related to backup-Automatic window system shutdown after backup completion 분산 파일 동기화Distributed File Synchronization - 다수의 PC 에 분산된 파일의 동기화 - 동기화에 의한 자동 복구 - 동기화 파일에 대한 불일치 탐지 및 해결-Synchronization of files distributed on multiple PCs-Automatic recovery by synchronization-Detection and resolution of inconsistency for synchronization files 서버 시스템Server systems 복구restore - 브라우저를 통한 웹 디스크 기능 지원 - 최종 버전 파일만 복구 - 시간기반 파일 복구 - 버전기반 파일 복구-Support web disk function through browser-Only last version file recovery-Time-based file recovery-Version-based file recovery 관리management - 자동 백업 이력 관리 - 사용자 개인 정보 관리 - 사용자별 사용 현황 관리-Automatic backup history management-User personal information management-Usage status management by user

본 솔루션의 클라이언트 시스템은 실시간 자동 백업과 분산 파일의 동기화가 주된 기능이다. 본 클라이언트 시스템은 윈도우 운영체제 환경에서 사용자 PC에 인스톨하여 자동 백업 대상 폴더를 지정한 후, 파일 생성, 수정, 삭제와 같은 이벤트가 발생할 때마다 변경된 파일을 자동으로 서버로 백업하여 서버와 사용자 PC데이타를 동기화한다.The client system of this solution is mainly equipped with real-time automatic backup and synchronization of distributed files. This client system installs on the user's PC in the Windows operating system environment, designates the destination folder for automatic backup, and automatically synchronizes the server and user PC data by automatically backing up the changed file to the server whenever an event such as file creation, modification, or deletion occurs. do.

클라이언트 시스템이 사용자 PC에 성공적으로 설치되면 로그인 화면이 실행된다. 사용자 아이디와 비밀번호를 입력하여 로그인하면 본 솔루션의 서버 시스템과 연결된다. 로그인 화면에서는 사용자 아이디를 저장하거나, 프로그램 시작시 자동 로그인하는 옵션을 선택할 수 있다. 도 18는 클라이언트 시스템의 로그인 화면이다.Once the client system has been successfully installed on your PC, the login screen will launch. Enter the user ID and password to log in and connect to the server system of this solution. In the login screen, you can save the user ID or select the option to log in automatically when the program starts. 18 is a login screen of the client system.

사용자는 클라이언트 시스템 설치 후, 최초 로그인시 자동 백업 설정 마법사를 통해 백업과 관련된 다양한 사항을 설정할 수 있다.After installing the client system, the user can set various items related to the backup through the automatic backup setup wizard at first login.

컴퓨터 이름 설정은 사용자가 백업 대상 PC의 식별을 위해 PC 이름을 설정하는 단계이다. 본 단계에서 설정된 컴퓨터 이름은 본 솔루션의 서버 시스템에서 사용자의 다중 PC를 구분하기 위해 활용된다.Computer name setting is a step in which a user sets a PC name to identify a backup target PC. The computer name set in this step is used to distinguish the user's multiple PCs from the server system of this solution.

도 17은 클라이언트 시스템의 컴퓨터 이름을 설정하는 단계의 화면이다.17 is a screen of a step of setting a computer name of a client system.

백업 폴더 설정 단계는 자동 백업 대상 폴더를 지정하는 단계로 하나 이상의 폴더를 지정할 수 있고 삭제할 수 있다. 본 발명을 구현한 시스템에서는 사용자 PC의 시스템 폴더(예: C:\WINDOWS, C:\Program Files 등)와 디스크 루트 폴더(예 : C:\ , D:\)를 제외한 모든 폴더를 백업 대상 폴더로 지정할 수 있다. 도 20은 백업 대상 폴더를 설정하는 단계의 화면이다.The backup folder setting step is to specify the target folder for automatic backup. You can specify one or more folders and delete them. In the system implementing the present invention, all folders except the system folder (for example, C: \ WINDOWS, C: \ Program Files, etc.) and the disk root folder (for example, C: \ and D: \) of the user PC are backed up. Can be specified as 20 is a screen of a step of setting a backup target folder.

본 실시예에서는 자동 백업 방식과 사용자 정의에 의한 주기적인 스케줄링 백업방식을 모두 지원한다. 사용자는 자동 백업과 스케줄링 백업을 모두 선택하여 사용할 수도 있고, 한가지 방식만 지정하여 사용할 수도 있다. 기본적으로 파일 변경 이벤트 발생시마다 자동으로 백업할 수 있는 ‘자동 백업’ 방식을 지원한다.In this embodiment, both an automatic backup method and a user-defined periodic scheduled backup method are supported. You can choose to use both automatic and scheduled backups, or you can specify only one method. Basically, it supports 'Auto Backup' method which can automatically back up every file change event.

자동 백업은 파일 변경 이벤트 발생시 ‘자동 백업’하는 방식과 백업 타이머(timer)를 정해서 ‘일정 시간마다 백업’ 하는 방식을 지원한다. Automatic backup supports 'auto backup' when a file change event occurs, and 'backup every schedule' by setting a backup timer.

‘자동 백업’ 방식은 파일 변경 이벤트 발생 즉시 이벤트의 조건을 검사하여 검사 결과가 참이면 즉시 동기화하여 백업하는 방법이다. ‘Automatic backup’ method checks the condition of an event as soon as a file change event occurs and if the scan result is true, synchronizes the backup immediately.

‘일정 시간마다 백업’ 방식은 이벤트 발생시 즉시 조건을 판정하지 않고 이벤트가 발생한 해당 파일의 정보와 시간, 변경 이벤트 종류 등을 임시로 저장한다. 그리고 예전 백업 시간과 비교하여 ‘일정 시간(예: 30분)’ 이 경과하면 이벤트의 조건을 검사하여 검사 결과가 참이면 동기화하여 백업하는 방식이다. 이 방식은 파일 변경시마다 발생하는 자동 백업에 의해 시스템의 부하가 커지거나, 매번 저장시마다 백업되는 버전 파일이 많아 조정이 필요한 경우에 사용자가 지정하여 사용할 수 있다. 'Backup every schedule' method does not determine conditions immediately when an event occurs, but temporarily stores the information, time, and change event type of the file where the event occurred. In addition, when a certain amount of time (eg 30 minutes) elapses compared to the previous backup time, the condition of the event is checked and if the test result is true, it is synchronized and backed up. This method can be used by the user when the load on the system is increased due to the automatic backup that occurs every time the file is changed or when adjustment is necessary because there are many version files that are backed up every time it is saved.

스케줄링 백업은 사용자가 ‘주, 일, 시, 분’ 의 정보를 지정하여 특정 날짜, 특정 시간에 변경된 파일에 대한 정보를 동기화하여 백업하고 복구하는 방법이다. 본 백업 방식은 사용자가 PC를 오랫동안 사용하지 않아 사용자 PC의 부하가 적은 휴식 시간에 백업을 수행하고자 할 경우에 사용자가 주기를 지정하여 사용할 수 있다.Scheduling backup is a method for user to specify the information of 'week, day, hour, minute' to synchronize and back up and restore the information about the changed file at a specific date and time. This backup method can be used when the user does not use the PC for a long time and the user wants to perform the backup during the rest period when the load on the user PC is low.

암호화 설정 단계는 파일 백업시 사용자가 지정한 패스워드로 파일을 암호화하여 서버로 전송할 것인지에 대한 여부를 선택하는 단계이다. 본 발명을 구현한 시스템에서는 기본적으로 AES 암호화 알고리즘을 이용하여 암호화 후, 서버로 파일을 전송한다. 도 19는 백업 주기와 파일 암호화 여부를 설정하는 단계의 화면이다.The encryption setting step is a step of selecting whether or not to encrypt a file with a password specified by a user when the file is backed up and transmit it to the server. In the system implementing the present invention, after encrypting using an AES encryption algorithm, a file is transmitted to a server. 19 is a screen of a step of setting a backup cycle and whether to encrypt a file.

자동 백업 설정 마법사를 완료하면 설정된 백업 대상 폴더의 모든 파일을 서버로 백업하여 사용자 PC와 서버를 동기화시킨다. 도 22은 자동 백업 설정 마법사를 완료 후, 백업 대상 폴더의 모든 파일을 암호화하여 서버로 백업하는 화면이다.After completing the automatic backup setup wizard, all files in the set backup destination folder are backed up to the server to synchronize the user PC with the server. 22 is a screen for encrypting and backing up all files in the backup destination folder to the server after completing the automatic backup setup wizard.

최초 자동 백업 실행 후, 사용자 PC에서 백업 주기에 따라 실행되는 자동 백업은 변경된 파일에 대한 정보만을 동기화하여 파일을 백업하거나 복구한다. After the first automatic backup, automatic backup is executed according to the backup cycle in the user's PC to back up or restore files by synchronizing only the information about the changed files.

백업 관리자는 사용자가 임의로 백업을 실행할 수 있는 ‘백업’ 메뉴와 웹 디스크로 접속하여 완전 복구와 부분 복구를 수행할 수 있는 ‘복구’ 메뉴, 사용자 정보와 백업 관련 정보를 설정할 수 있는 ‘환경 설정’ 메뉴로 구성된다. 백업 관리자 화면에서는 현재 백업이 진행 중인 백업 대상 파일과 폴더의 개수를 확인할 수 있다. 그리고 암호화/복호화와 백업 진행율과 완료 상태를 확인할 수 있다. 도 21은 본 솔루션의 클라이언트 시스템의 백업 관리자의 메인 화면이다. The backup administrator can set up user information and backup related information, and 'Backup' menu that allows users to execute backup arbitrarily, 'Recovery' menu that allows users to perform full and partial recovery by accessing the web disk. It consists of a menu. On the Backup Manager screen, you can check the number of files and folders that are being backed up. You can check the encryption / decryption and backup progress and completion status. 21 is a main screen of the backup manager of the client system of the present solution.

환경 설정은 크게 사용자 정보를 관리하기 위한 사용자 정보 설정과 백업 정보를 관리하기 위한 백업 정보 설정으로 구성된다. 본 환경 설정은 최초 로그인시 자동 백업 설정 마법사를 통해 지정한 사용자 정보와 백업 정보를 수정 및 관리하고자 할 때 사용된다. The environment setting is largely composed of user information settings for managing user information and backup information settings for managing backup information. This configuration is used to modify and manage the user information and backup information specified through the automatic backup setup wizard at the first login.

사용자 정보 설정 메뉴에서는 사용자의 비밀번호 변경과 윈도우 시작시 자동 실행 여부, 프로그램 실행시 자동 로그인 여부, 아이디/암호 저장 과 같은 정보를 관리할 수 있다. 백업 정보 설정 메뉴에서는 백업 폴더를 추가하거나 삭제할 수 있다. 그리고 ‘자동 백업’ 및 ‘주기적인 백업’ 을 이용한 백업 주기 관리와 파일 암호화 여부를 설정할 수 있다. 도 22는 사용자 정보 설정 화면이고, 도 23은 백업 정보 설정 화면이다.In the user information setting menu, you can manage information such as changing the user's password, whether to run automatically when Windows starts, whether to log in automatically when the program is executed, and saving ID / password. You can add or delete backup folders in the backup information setting menu. In addition, you can set backup cycle management and file encryption using 'Automatic Backup' and 'Periodic Backup'. 22 is a user information setting screen, and FIG. 23 is a backup information setting screen.

한편, 본 실시예의 서버 시스템은 완전 복구와 부분 복구를 수행할 수 있는 복구 기능, 사용자 PC에서 백업된 정보를 브라우저를 통해 검색할 수 있는 웹 디스크 기능, 사용자별로 디스크 사용 현황 관리 기능으로 구성된다. On the other hand, the server system of the present embodiment is composed of a recovery function that can perform a complete recovery and a partial recovery, a web disk function that can retrieve information backed up from the user PC through a browser, and a disk usage status management function for each user.

복구 마법사의 실행은 사용자가 PC 파일을 손실하여 복구가 필요한 경우에 본 솔루션의 클라이언트 시스템에서 ‘복구’ 메뉴를 선택하면 된다. You can run the Recovery Wizard by selecting the 'Recovery' menu on the client system of the solution in case you need to recover your PC files.

이때 백업된 파일의 최종 버전을 모두 복구할 수 있는 완전 복구와 특정 시점이나 특정 버전 파일만 복구할 수 있는 부분 복구 방식을 제공한다. 표 12는 본 실시예에서 제공하는 복구 방법이며 도 24는 사용자가 원하는 복구 방법을 선택하는 화면이다.At this time, it provides a full recovery to recover all the last versions of the backed up files and a partial recovery method to recover only a specific point in time or a specific version of a file. Table 12 shows a recovery method provided in this embodiment, and FIG. 24 shows a screen for selecting a recovery method desired by a user.

복구 방법Recovery method 분류Classification 복구 방법Recovery method 설명Explanation 완전 복구Full recovery 최종 백업 버전 파일 전체 복구Full recovery of the last backup version file - 포맷처럼 PC 의 모든 데이타를 손실한 경우, 서버에 백업된 파일의 최종 백업 버전 파일을 모두 다운로드 하여 폴더 구조까지 모두 복구하는 방법-If all the data on the PC is lost, such as formatting, download all files of the last backup version of the file backed up to the server and recover all folder structure. 부분 복구Partial recovery 버전 기반 부분 복구Version based partial recovery - 특정 폴더나 파일에 대한 선택적 복구 - 복구가 필요한 폴더나 버전 파일을 사용자가 직접 선택하여 복구하는 방법-Selective recovery for specific folders or files-How to recover by selecting the folder or version file you need to recover 시점 기반 부분 복구Point-Based Partial Recovery - 특정 날짜 지정에 의한 선택적 복구 - 특정 날짜를 검색하여 복구가 필요한 백업 시점의 파일을 모두 복구하는 방법Selective recovery by specifying a specific date

최종 백업 버전 파일 전체 복구는 최초 백업 시점부터 현재까지 백업된 버전 파일들 중에서 최종 버전 파일과 백업 폴더 구조까지 모두 복구한다.Full backup version file recovery restores both the final version file and the backup folder structure among the version files backed up to the present.

버전 기반 부분 복구는 탐색기 형태의 인터페이스를 제공하여 복구가 필요한 특정 폴더나 특정 파일을 다중으로 선택하여 폴더 구조와 특정 버전 파일을 복구할 수 있다. 도 25는 복구가 필요한 폴더나 파일을 선택할 수 있는 탐색기 형태의 화면이다.Version-based partial recovery provides an explorer-like interface to restore the folder structure and specific version files by selecting multiple folders or files for recovery. FIG. 25 is a screen of an explorer type in which a folder or a file to be recovered may be selected.

시점 기반 부분 복구는 달력 형태의 인터페이스를 통해 복구가 필요한 특정 날짜를 선택하여 해당 날짜에 백업된 이력 정보를 검색할 수 있다. 복구가 필요한 날짜와 시간대를 선택하여 그 시점에 백업된 폴더와 파일을 복구할 수 있다. 도 26은 복구가 필요한 특정 시점을 선택하는 화면이다.Point-in-time partial recovery can retrieve the history information backed up by selecting a specific date that needs to be restored through a calendar interface. You can select the date and time zone for recovery and restore the folders and files backed up at that time. 26 is a screen for selecting a specific time point for recovery.

중복 파일 처리는 복구 실행 중 사용자 PC에 복구되는 파일과 동일한 이름의 파일이 존재하는 경우 파일명 처리 방법을 선택하는 단계이다. 파일명 중복은 ‘파일 덮어쓰기’, ‘복구 파일명 자동 변경’, ‘파일명에 버전정보 추가’ 방법 중 하나를 선택할 수 있다. 도 27은 중복된 파일명을 처리하기 위한 옵션 선택 화면이다.Duplicate file processing is a step of selecting a file name processing method when a file with the same name as the file to be recovered exists on the user's PC during the recovery process. For file name duplication, you can choose one of the following methods: Overwrite File, Automatically Change Recovery File Name, and Add Version Information to File Name. 27 is an option selection screen for processing duplicate file names.

복구 설정은 복구 마법사를 통해 사용자가 지정한 복구 방법, 복구 대상, 중복 파일명 해결방법에 대한 설정 사항을 확인할 수 있다. 그리고 ‘복구시작’ 버튼을 클릭하여 복구를 수행할 수 있다. 도 28은 복구 마법사를 통한 복구 설정 사항을 확인하기 위한 화면이다.The Recovery Wizard allows you to check the settings for the recovery method, recovery destination, and duplicate file name resolution you have specified. You can also perform a recovery by clicking on the 'Start Recovery' button. 28 is a screen for confirming recovery setting items through the recovery wizard.

복구 실행은 복구 파일이 저장될 복구 목적지 폴더를 지정할 수 있다. 그리고 복구 진행 시간, 진행 상태 및 복구 파일 갯수와 크기에 대한 정보를 확인할 수 있다. 복구가 실행되면 서버에서 복구 대상 파일을 모두 사용자 PC로 다운로드한 후, 복호화하여 복구를 완료한다. 도 29는 복구 마법사 완료 후 복구를 실행하는 화면이다.The restore operation can specify the recovery destination folder where the recovery file will be stored. You can check the recovery progress time, progress status, and the number and size of recovery files. When recovery is executed, all files to be recovered are downloaded from the server to the user's PC and decrypted to complete the recovery. 29 is a screen for executing recovery after completion of the recovery wizard.

서버 시스템에서는 사용자가 웹을 통해 자동 백업된 파일을 검색할 수 있는 웹 디스크 기능을 개발하였다. 사용자가 서버 시스템으로 로그인하면 탐색기 형태의 자동 백업 목록 화면을 통해 백업된 파일을 확인할 수 있다. 각 파일은 수정된 버전 파일별로 확인할 수 있고 각 파일이 어떤 PC에서 수정되어 업로드 되었는지 확인할 수 있다. 사용자는 웹 디스크를 통해 필요한 백업 파일을 선택하여 다운로드할 수 있고 백업된 폴더와 파일의 상태를 확인할 수 있다. 도 30은 서버 시스템에서 제공하는 웹 디스크의 메인 화면이다.The server system has developed a web disk function that allows users to search for files automatically backed up through the web. When the user logs in to the server system, the backed up files can be checked through the automatic backup list screen in the form of a explorer. Each file can be checked by the modified version file, and each PC can be checked on which PC has been modified and uploaded. The user can select and download the necessary backup files via the web disk and check the status of the backed up folders and files. 30 is a main screen of a web disk provided by a server system.

서버 시스템에서는 날짜별로 백업 이력을 확인할 수 있다. 사용자가 선택한 날짜별로 백업된 시간, 실시간 백업된 폴더와 파일의 갯수, 백업대상 PC의 이름을 확인할 수 있고, 각 시간별로 백업된 파일의 목록을 검색할 수 있다. 도 31은 서버 시스템에서 제공하는 날짜별 자동 백업 이력 관리 화면이다.On the server system, you can check the backup history by date. You can check the backup time by date selected by user, the number of folders and files backed up in real time, the name of the backup target PC, and search the list of files backed up by each time. 31 is an automatic backup history management screen for each date provided by a server system.

이상 본 발명이 구체화된 실시예를 도면과 함께 상세히 설명하였으나, 본 발명의 기술적 사상은 상기 실시예에만 국한되는 것은 아니다.While the embodiments of the present invention have been described in detail with reference to the drawings, the technical spirit of the present invention is not limited to the above embodiments.

다시 말해 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면, 본 발명의 명세서 및 도면이 내포하고 있는 기술적 사상을 활용하여 필요에 따라 본 발명의 명세서 및 도면에 미처 포함되지 않은 단순한 변경 및 간단한 확장 사례를 추가로 구현할 수 있을 것이나, 이 또한 본 발명이 고유하게 보유하는 기술적 사상의 범위에 자명하게 포함된다.In other words, those of ordinary skill in the art to which the present invention pertains may utilize the technical spirit contained in the specification and drawings of the present invention, and as necessary, simple modifications and simple changes that are not included in the specification and drawings of the present invention. An extended example may be further implemented, but this is also obviously included in the scope of the technical idea uniquely possessed by the present invention.

본 발명은 PC급 서버에서 플랫폼 독립적으로 운영 가능한 시스템 개발로 기존 백업솔루션보다 저비용의 제품 공급으로 가격 경쟁력 확보가 가능하므로 상용화되었을 경우, PC급 서버에서 자바, 리눅스와 같은 공개용 소프트웨어를 이용한 제품 개발로 고가의 서버 도입과 상용 소프트웨어 이용에 따른 로열티 지불에 대한 수입 대체 효과가 기대된다. In the present invention, it is possible to secure a price competitiveness by supplying a low cost product to the existing backup solution by developing a system that can operate independently of a PC-class server. It is expected to replace imports on royalty payments due to the introduction of expensive servers and the use of commercial software.

또한 본 발명이 기업이나 산업현장에서 폭넓게 사용될 경우 PC에서 사전 암호화 후 업로드하는 방식의 보안 기능에 의해 기업의 중요한 데이타에 대한 서버/네트워크 해킹에도 안전한 보안 기능을 제공할 수 있다.In addition, when the present invention is widely used in the enterprise or industrial sites, it is possible to provide a secure security function even for server / network hacking of important data of the enterprise by the security function of pre-encryption and uploading from a PC.

도 1은 SyncML의 프레임워크를 표현한 그림.1 is a diagram representing a framework of SyncML.

도 2a와 도 2b는 일반적인 데이타베이스와 능동데이타베이스의 동작개념도.2a and 2b is a conceptual view of the operation of a typical database and active database.

도 3는 동기화 데이타를 정의하기 위한 본 발명 ActiveML의 스키마구조도.3 is a schema structure diagram of the present invention ActiveML for defining synchronization data.

도 4는 One-way sync from client only 동기화 프로토콜의 개념도.4 is a conceptual diagram of a One-way sync from client only synchronization protocol.

도 5는 One-way sync from server only 동기화 프로토콜의 개념도.5 is a conceptual diagram of a One-way sync from server only synchronization protocol.

도 6은 Two-way sync 동기화 프로토콜의 개념도.6 is a conceptual diagram of a Two-way sync synchronization protocol.

도 7은 서버와 PC 데이타간의 불일치를 탐지 및 해결하는 흐름도.7 is a flow chart for detecting and resolving inconsistencies between server and PC data.

도 8a, 도 8b는 기존 백업솔루션의 동작방식과 본 발명 백업솔루션의 동작 방식을 비교한 그림.8A and 8B are diagrams illustrating an operation method of the existing backup solution and an operation method of the present invention.

도 9는 본 발명 백업솔루션의 동작 개념도.9 is a conceptual view of the operation of the backup solution of the present invention.

도 10은 도 9 동작개념의 동작시나리오.10 is an operation scenario of the operation concept of FIG.

도 11은 본 실시예에 탑재되는 ECA모델 기반의 이벤트규칙 처리엔진 개념도.11 is a conceptual diagram of an event rule processing engine based on an ECA model mounted on the present embodiment.

도 12는 도 11의 이벤트 규칙 처리 엔진의 동작흐름도.12 is an operational flow diagram of the event rule processing engine of FIG.

도 13은 UML로 표현된 상기 이벤트 규칙 처리 엔진에 대한 클래스 설계도.Figure 13 is a class schematic diagram for the event rule processing engine expressed in UML.

도 14는 본 실시예인 서버 디스크와 PC간의 데이타 동기화 개념도.14 is a conceptual diagram of data synchronization between a server disk and a PC according to the present embodiment.

도 15는 UML로 표현된 동기화 엔진에 대한 클래스 설계도.15 is a class schematic diagram of a synchronization engine expressed in UML.

도 16은 본 실시예에 적용된 데이타 복구 엔진의 개념적인 시나리오.16 is a conceptual scenario of a data recovery engine applied to this embodiment.

도 17은 본 실시예에 적용된 데이타 복구 엔진에 대한 흐름도.Fig. 17 is a flowchart of a data recovery engine applied to this embodiment.

도 18는 클라이언트 시스템의 로그인화면.18 is a login screen of a client system.

도 19은 클라이언트 시스템의 컴퓨터 이름을 설정하는 단계의 화면.19 is a screen of a step of setting a computer name of a client system.

도 20는 백업 주기와 파일 암호화 여부를 설정하는 단계의 화면.20 is a screen of a step of setting a backup cycle and whether to encrypt a file.

도 21은 백업 대상 폴더를 설정하는 단계의 화면.21 is a screen of a step of setting a backup target folder.

도 22은 자동 백업 설정 마법사 완료 후, 백업 실행 화면.Fig. 22 is a screen for executing a backup after completion of the automatic backup setup wizard.

도 23는 클라이언트 시스템의 백업 관리자 메인 화면.23 is a backup manager main screen of a client system.

도 24는 사용자 정보 설정 화면.24 is a user information setting screen;

도 25은 백업 정보 설정 화면.25 is a backup information setting screen;

도 26은 사용자가 원하는 복구 방법을 선택하는 화면.Fig. 26 is a screen for selecting a recovery method desired by a user;

도 27은 복구가 필요한 폴더나 파일을 선택할 수 있는 탐색기 형태의 화면.Fig. 27 is a screen in the form of an explorer in which a folder or file to be recovered can be selected.

도 28는 복구가 필요한 특정 시점을 선택하는 화면.28 is a screen for selecting a specific point in time for which recovery is necessary.

도 29은 중복된 파일명을 처리하기 위한 옵션 선택 화면.Fig. 29 is an option selection screen for processing duplicate file names.

도 30은 복구 마법사를 통한 복구 설정 사항을 확인하기 위한 화면.30 is a screen for confirming recovery setting items through the recovery wizard.

도 31는 복구 마법사 완료 후 복구를 실행하는 화면.Fig. 31 is a screen for executing recovery after completion of the recovery wizard;

도 32은 서버 시스템에서 제공하는 웹 디스크의 메인 화면.32 is a main screen of a web disk provided by a server system.

도 33는 서버 시스템에서 제공하는 날짜별 자동 백업 이력 관리 화면.33 is an automatic backup history management screen for each date provided by the server system.

Claims (11)

삭제delete 컴퓨터에 저장되는 데이타를 적어도 하나의 서버와 하나이상의 PC들 사이에서 동기화하여 저장, 호출, 전달 및 삭제하는 데이타 동기화 방법에 있어서,A data synchronization method for synchronizing, storing, calling, transferring and deleting data stored in a computer between at least one server and one or more PCs, 상기 데이타를 포함하는 데이타 구조체에서 적어도 하나 이상의 발생식별자와 상기 발생식별자의 생성시점 이후에 생성 및 변경되는 하나 이상의 변경식별자를 생성하는 단계;와,Generating at least one or more occurrence identifiers and at least one alteration identifier generated and modified after the generation time of the occurrence identifiers in the data structure including the data; and 상기 식별자들 중 어느 하나 이상의 식별자를 기준으로 상기 PC에 존재하는 삭제대상 데이타들을 분류하여 삭제하는 단계; 및,Classifying and deleting data to be deleted in the PC based on at least one of the identifiers; And, 상기 어느 하나 이상의 식별자를 제외한 식별자들 중 다른 하나 이상의 식별자를 기준으로 상기 서버 또는 상기 PC에 존재하는 저장대상 또는 호출대상 또는 전달대상 데이타들을 동기화하는 단계;를 포함하고,And synchronizing the storage object or the call object or the object data existing in the server or the PC based on the other one or more of the identifiers other than the one or more identifiers. 상기 동기화 및 삭제대상 데이타들을 분류하는 기준이 되는 식별자는 상기 식별자들 중 적어도 하나의 변경식별자이거나, 또는 적어도 두 개의 변경식별자들이 조합되어 발생하는 변경식별자이거나, 또는 적어도 하나의 발생식별자와 적어도 하나의 변경식별자가 조합되어 발생하는 변경식별자인 것을 특징으로 하는 데이타 동기화 방법.The identifier as a reference for classifying the data to be synchronized and deleted is a change identifier of at least one of the identifiers, a change identifier generated by combining at least two change identifiers, or at least one occurrence identifier and at least one And a change identifier generated by combining the change identifier. 제2항에 있어서,The method of claim 2, 상기 발생식별자 중 어느 하나의 발생식별자인 지역발생식별자(LF)는 상기 PC에서 소정의 데이타가 최초로 생성 또는 최초로 저장될때 소정의 값이 부여되는 일정한 길이를 가진 문자열이며, 각 PC의 데이타를 식별하기 위한 유일한 값으로, 상기 소정의 데이타 동기화 과정에서 소정의 이벤트가 발생할 때 상기 소정의 값이 변하지 않는 것을 특징으로 하는 데이타 동기화 방법.The local occurrence identifier (LF), which is one of the generation identifiers, is a character string having a predetermined length to which a predetermined value is given when predetermined data is first generated or stored in the PC, and identifies data of each PC. And the only value is that the predetermined value does not change when a predetermined event occurs in the predetermined data synchronization process. 제2항에 있어서,The method of claim 2, 상기 발생식별자 중 어느 하나의 발생식별자인 전역발생식별자(GF)는 상기 PC에서 소정의 데이타가 최초로 생성 또는 최초로 저장될때 소정의 값이 부여되는 일정한 길이를 가진 문자열이며, 다중 PC에 분산된 동일한 파일을 식별하기 위한 유일한 값으로, 상기 소정의 데이타 동기화 과정에서 소정의 이벤트가 발생할때 상기 소정의 값이 변하지 않는 것을 특징으로 하는 데이타 동기화 방법.A global occurrence identifier (GF), which is one of the generation identifiers, is a character string having a predetermined length to which a predetermined value is given when predetermined data is first generated or first stored in the PC, and the same file distributed in multiple PCs. The only value for identifying the data synchronization method, characterized in that the predetermined value does not change when a predetermined event occurs in the predetermined data synchronization process. 제3항에 있어서,The method of claim 3, 상기 변경식별자 중 어느 하나의 변경식별자인 이벤트변경식별자(CM)는 상기 PC에서 상기 소정의 데이타에 소정의 이벤트가 최초로 발생될 때 이벤트 값이 부여되는 숫자열이며, 상기 소정의 이벤트 이후에 상기 PC에서 또다른 소정의 이벤트가 발생할때마다 해당 이벤트 값이 상기 PC에서만 부여되는 것을 특징으로 하는 데이타 동기화 방법.The event change identifier (CM), which is a change identifier of any one of the change identifiers, is a string of numbers to which an event value is assigned when a predetermined event is first generated in the predetermined data in the PC, and after the predetermined event, the PC is changed. Whenever another predetermined event occurs in the data synchronization method, the corresponding event value is given only in the PC. 제5항에 있어서,The method of claim 5, 상기 변경식별자 중 어느 하나의 변경식별자인 시간변경식별자(LM)는 상기 PC에서 상기 소정의 데이타에 소정의 이벤트가 발생될 때의 시간값이 부여되는 숫자열이며, 상기 소정의 이벤트 이후에 또다른 소정의 이벤트가 발생할 때마다 해당 시간값이 상기 PC에서만 부여되는 것을 특징으로 하는 데이타 동기화 방법. The time change identifier LM, which is any one of the change identifiers, is a string of numbers to which a time value when a predetermined event occurs in the predetermined data in the PC is assigned. Whenever a predetermined event occurs, a corresponding time value is assigned only to the PC. 제5항에 있어서,The method of claim 5, 상기 변경식별자 중 어느 하나의 변경식별자인 동기화변경식별자(SM)는 상기 PC와 서버간에 상기 소정의 데이타에 대해 동기화가 발생될 때의 시간값이 부여되는 숫자열이며, 상기 동기화 이후에 또다른 동기화가 발생할 때마다 해당 시간값이 상기 서버와 상기 PC에 부여되는 것을 특징으로 하는 데이타 동기화 방법.The synchronization change identifier (SM), which is any one of the change identifiers, is a string of numbers to which a time value when synchronization occurs for the predetermined data is transmitted between the PC and the server. Whenever occurs, the corresponding time value is given to the server and the PC. 삭제delete 삭제delete 삭제delete 삭제delete
KR1020080114283A 2008-11-17 2008-11-17 A method for a data synchronizing based on a data structure which has multiple event identifier and the Data back up solution uses the method KR100935831B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080114283A KR100935831B1 (en) 2008-11-17 2008-11-17 A method for a data synchronizing based on a data structure which has multiple event identifier and the Data back up solution uses the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080114283A KR100935831B1 (en) 2008-11-17 2008-11-17 A method for a data synchronizing based on a data structure which has multiple event identifier and the Data back up solution uses the method

Publications (2)

Publication Number Publication Date
KR20080107339A KR20080107339A (en) 2008-12-10
KR100935831B1 true KR100935831B1 (en) 2010-01-08

Family

ID=40367669

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080114283A KR100935831B1 (en) 2008-11-17 2008-11-17 A method for a data synchronizing based on a data structure which has multiple event identifier and the Data back up solution uses the method

Country Status (1)

Country Link
KR (1) KR100935831B1 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101402115B1 (en) * 2011-11-11 2014-06-02 (주)나무소프트 File syncronization method for multi user and multi terminal
US10567498B2 (en) 2012-07-27 2020-02-18 Samsung Electronics Co., Ltd. Terminal and server performing data synchronization
KR20220088197A (en) * 2020-12-18 2022-06-27 삼성전자주식회사 Electronic apparatus and controlling method thereof
US11809400B2 (en) 2020-12-18 2023-11-07 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
CN114567644B (en) * 2022-02-21 2023-10-20 深圳希施玛数据科技有限公司 Data synchronization method and device and electronic equipment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191827A1 (en) 2002-04-02 2003-10-09 Nokia Corporation Method and apparatus for synchronizing how data is stored in different data stores
KR20040005933A (en) * 2001-04-25 2004-01-16 노키아 코포레이션 Synchronization of database data
KR20060070551A (en) * 2003-09-25 2006-06-23 인터내셔널 비지네스 머신즈 코포레이션 Method, system and program for data synchronization
US20070179989A1 (en) 2006-01-10 2007-08-02 Oracle International Corporation Data synchronization via three or more paths

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040005933A (en) * 2001-04-25 2004-01-16 노키아 코포레이션 Synchronization of database data
US20030191827A1 (en) 2002-04-02 2003-10-09 Nokia Corporation Method and apparatus for synchronizing how data is stored in different data stores
KR20060070551A (en) * 2003-09-25 2006-06-23 인터내셔널 비지네스 머신즈 코포레이션 Method, system and program for data synchronization
US20070179989A1 (en) 2006-01-10 2007-08-02 Oracle International Corporation Data synchronization via three or more paths

Also Published As

Publication number Publication date
KR20080107339A (en) 2008-12-10

Similar Documents

Publication Publication Date Title
US11681584B2 (en) Method and system for interfacing to cloud storage
US11216445B2 (en) Monitoring alignment of computer file states across a group of users
US11632394B1 (en) Cloud-native global file system with rapid ransomware recovery
US7165154B2 (en) System and method for data backup
US7657887B2 (en) System for transactionally deploying content across multiple machines
US9348830B2 (en) Back up using locally distributed change detection
JP5563220B2 (en) Method and system for data backup
US9552362B2 (en) Information source agent systems and methods for backing up files to a repository using file identicality
US10261872B2 (en) Multilevel disaster recovery
US20100293147A1 (en) System and method for providing automated electronic information backup, storage and recovery
US20120158760A1 (en) Methods and computer program products for performing computer forensics
US20070100834A1 (en) System and method for managing data in a distributed computer system
US20080276234A1 (en) Data center edition system and method
KR100935831B1 (en) A method for a data synchronizing based on a data structure which has multiple event identifier and the Data back up solution uses the method
EP2145254A1 (en) Data center edition system and method
US20100185582A1 (en) Web Deployment Functions and Interfaces
Cisco Repository Administration
Allen Zackup, a scalable centralized backup service
Hoff Cryptic Backup: a framework for automated compression, encryption, and backup of data

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E902 Notification of reason for refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121210

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131202

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170308

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee