KR20020003674A - Data synchronization system and method thereof - Google Patents

Data synchronization system and method thereof Download PDF

Info

Publication number
KR20020003674A
KR20020003674A KR1020000035164A KR20000035164A KR20020003674A KR 20020003674 A KR20020003674 A KR 20020003674A KR 1020000035164 A KR1020000035164 A KR 1020000035164A KR 20000035164 A KR20000035164 A KR 20000035164A KR 20020003674 A KR20020003674 A KR 20020003674A
Authority
KR
South Korea
Prior art keywords
client
data
server
synchronization
index
Prior art date
Application number
KR1020000035164A
Other languages
Korean (ko)
Inventor
박종완
노호선
이으뜸
김홍태
Original Assignee
정승채
주식회사 케이브이씨랩
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 정승채, 주식회사 케이브이씨랩 filed Critical 정승채
Priority to KR1020000035164A priority Critical patent/KR20020003674A/en
Publication of KR20020003674A publication Critical patent/KR20020003674A/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Abstract

PURPOSE: A system for synchronizing data and a method thereof are provided to perform a data synchronization between clients who wish to share data and between a client and a server and between servers in real time without an additional operation by a user. CONSTITUTION: A synchronization server(30) is connected to a client(10) through a network(20). A plurality of affiliated clients(41-47) is connected to the synchronization server(30) through the network(20). A file checking unit(11) checks whether a change is generated in a file. A scheduling unit(12) performs a schedule operation for requesting a log-in process to the synchronization server(30) per a set time. A connection unit(13) performs a log-in process when a signal in accordance with a file change from the file checking unit(11) or a signal displaying that a set time is passed from the scheduling unit(12). A synchronization processing unit(14) performs a data upload/download with the synchronization server(30). A log-in server(31) performs a certifying process of a client(10). A data server(32) transmits a file list of files stored in the corresponding working folder in accordance with a request of the client(10), and updates the file list whenever a file is transmitted by an upload or download process of the client(10). A user information database(33) stores information of the client(10). The affiliated clients(41-47) perform a data synchronization to the client(10).

Description

데이타 동기화 시스템 및 그 방법{DATA SYNCHRONIZATION SYSTEM AND METHOD THEREOF}DATA SYNCHRONIZATION SYSTEM AND METHOD THEREOF

본 발명은 데이타 동기화 시스템 및 그 방법에 관한 것으로 더욱 상세하게 말하자면, 클라이언트에 있는 데이타를 유무선 네트워크를 통하여 서버에 실시간으로 동기화시키는 데이타 동기화 시스템 및 그 방법에 관한 것이다.The present invention relates to a data synchronization system and method, and more particularly, to a data synchronization system and method for synchronizing data at a client to a server in real time via a wired or wireless network.

초고속 네트워크의 발달로 인하여 네트워크를 통한 데이타 교환이 활발하게 이루어지고 있지만, 여전히 사용자들은 자신의 데이타를 남들과 공유하고자 하거나 가정에서 회사로 데이타를 전송하고자 하는 경우에는 FTP(file transfer protocol) 등을 이용하여 회사의 FTP에 접속해서 업로드(upload)한 다음에, 회사에 와서 자신의 컴퓨터에서 다시 FTP를 사용하여 자료를 받아야 한다.Due to the development of high speed network, data exchange through the network is active, but users still need to use file transfer protocol (FTP) if they want to share their data with others or transfer data from home to company. You have to access your company's FTP, upload it, then come to your company and use FTP again on your computer to get the data.

이러한 불편함에 따라 컴퓨터들 또는 컴퓨터와 서버 사이의 데이타 동기화를 위하여 다양한 방법들이 제시되고 있다.Due to this inconvenience, various methods for synchronizing data between computers or computers and servers have been proposed.

종래에 제시된 데이타 동기화 중 자체적인 동기화 프로토콜을 가지고 개인 PC(personal computer)와 PDA(personal digital assistants), 야후 홈 페이지 등과 데이타를 상호 교환할 수 있는 동기화 시스템이 있다. 이 동기화 시스템의 프로토콜은 일정 관리, 주소록, 노트, 할 일 등이 저장된 파일들을 파싱(parsing)한 다음에, 두 개의 데이타에서 서로 차이가 나는 부분을 서로 보충하는 방식으로, 주소록 파일 자체를 동기화하기 보다는 파일을 분석하여 필요한 내용을 업데이트(update)하는 방식이다.There is a synchronization system capable of exchanging data with a personal computer (personal computer), PDA (personal digital assistants), Yahoo home page, etc. with its own synchronization protocol among the data synchronization. The synchronization system's protocol is to synchronize the address book file itself by parsing files that store calendars, address books, notes, and tasks, and then supplement each other's differences in the two data. Rather, it analyzes files and updates them.

또한 "서류 가방"이라는 프로그램은 윈도우에 기본적으로 내장되어 있는 개인 문서 공유 및 동기화를 위한 프로그램으로써, 플로피 디스크, 노트북의 시리얼 연결들을 통하여 "서류 가방"을 동기화한다.Also, a program called "Document Bags" is a program for sharing and synchronizing personal documents built into Windows, which synchronizes "Document Bags" via a serial connection on a floppy disk or notebook.

예를 들어 "서류 가방"에 있는 문서를 편집하는 경우, 사용자가 업데이트될 타켓 파일을 수동으로 정하고 동기화를 원하는 곳에서 명령을 내려야 한다. 따라서, 동기화를 원하는 곳에서 사용자가 일일이 동기화 명령을 수동으로 내려줘야 하는 불편함이 있으며, 또한 네트워크를 통한 동기화가 이루어지지 않고 시리얼이나 플로피 디스크와 동기화가 이루어진다는 단점이 있다.For example, when editing a document in the "Document Bag", the user must manually specify the target file to be updated and issue a command where he wants to synchronize. Therefore, there is an inconvenience in that the user has to manually give a synchronization command manually where the user wants to synchronize, and also, there is a disadvantage in that synchronization is performed with a serial or floppy disk without synchronization through a network.

이외에도 최근에 각광받고 있는 인터넷을 통한 데이타 전송, 백업 시스템이 있으며, 이 시스템은 가상 드라이브를 통한 데이타 백업(X-drive, Net Drive, Web drive 등)시스템으로서, 사용자 컴퓨터의 탐색기 상에 가상 드라이브를 만든 다음에 이 가상 드라이브를 통하여 인터넷상의 서버와 연결을 하며, 이후에 사용자가 가상 드라이브에 억세스를 하면 그 데이타가 서버로 전송되는 시스템이다.In addition, there is a recent data transmission and backup system via the Internet, which is a data backup system (X-drive, Net Drive, Web drive, etc.) through a virtual drive, which is a virtual drive on the explorer of the user's computer. After creating, the virtual drive connects to a server on the Internet, and when a user accesses the virtual drive, the data is transferred to the server.

그러나 이 시스템은 데이타의 동기화 보다는 데이타의 백업을 위한 것이며, 사용자의 조작이 있을 때마다 서버로부터 데이타를 가져오는 구조이므로 즉각적인 데이타 백업이 이루어지 않는다.However, this system is for data backup rather than data synchronization, and the data is retrieved from the server whenever there is user's operation, so there is no immediate data backup.

이외에도 클라이언트의 데이타를 스케쥴링(scheduling)을 통하여 서버에 전송하는 시스템이 있으나, 이 경우에도 서버로의 데이타 백업이며 서버와의 데이타 동기화는 이루어지지 않는다.In addition, there is a system for transmitting the data of the client to the server through scheduling (scheduling), but in this case, the data backup to the server and data synchronization with the server is not performed.

그러므로, 본 발명이 이루고자 하는 기술적 과제는 별도의 사용자 조작 없이도 데이타 공유를 원하는 클라이언트들이나 또는 클라이언트와 서버간 또는 서버간에 데이타 동기화가 실시간으로 이루어지도록 하고자 하는데 있다.Therefore, the technical problem to be achieved by the present invention is to make data synchronization in real time between the client or the server and the server that wants to share data without a separate user operation.

도 1은 본 발명의 실시예에 따른 데이타 동기화 방법을 간략하게 나타낸 도이다.1 is a diagram schematically illustrating a data synchronization method according to an embodiment of the present invention.

도 2는 본 발명의 실시예에 따른 데이타 동기화 시스템의 구조를 나타낸 도이다.2 is a diagram showing the structure of a data synchronization system according to an embodiment of the present invention.

도 3은 본 발명의 실시예에 따른 서버의 구동 과정을 나타낸 순서도이다.3 is a flowchart illustrating a driving process of a server according to an exemplary embodiment of the present invention.

도 4는 본 발명의 실시예에 따른 서버의 구성 체계가 저장되어 있는 파일의 예시도이다.4 is an exemplary diagram of a file in which a configuration scheme of a server according to an exemplary embodiment of the present invention is stored.

도 5a 내지 도 5c는 본 발명의 실시예에 따른 데이타 동기화 방법을 구체적으로 나타낸 순서도이다.5A to 5C are flowcharts showing in detail a data synchronization method according to an embodiment of the present invention.

이러한 기술적 과제를 달성하기 위한, 본 발명의 특징에 따른 실시간 데이타동기화 시스템은, 네트워크를 통하여 다수의 클라이언트간의 데이타 동기화를 수행하는 시스템으로서,In order to achieve this technical problem, a real-time data synchronization system according to a feature of the present invention, a system for performing data synchronization between a plurality of clients over a network,

상기 클라이언트별로 할당된 작업 폴더내에 상기 클라이언트의 데이타가 저장되어 있으며, 네트워크를 통하여 접속하는 클라이언트로 서버 인덱스-여기서, 서버 인덱스는 작업 폴더내에 저장된 데이타의 목록-를 전송하는 적어도 하나 이상의 데이타 서버를 포함하고, 상기 클라이언트는 데이타 변경이 발생된 경우에 네트워크를 통하여 상기 데이타 서버로 접속하여 서버 인덱스를 요청하고, 상기 서버 인덱스와 클라이언트 인덱스-여기서 클라이언트 인덱스는 클라이언트가 가지고 있는 데이타 목록-를 비교 분석하고, 분석 결과에 따라 상기 데이타 서버와의 데이타 동기화를 수행한다. 이 때, 클라이언트는 상기 서버 인덱스와 클라이언트 인덱스의 비교 결과에 따라 상기 데이타 서버와의 업로드 또는 다운 로드 또는 파일 딜리트를 선택적으로 수행한다.The client's data is stored in a work folder assigned to each client, and the server index includes at least one data server that transmits a server index to a client connecting through a network, where the server index is a list of data stored in the work folder. The client accesses the data server through the network and requests a server index when a data change occurs, and compares and analyzes the server index and the client index, where the client index is a list of data owned by the client. According to the analysis result, data synchronization with the data server is performed. At this time, the client selectively performs upload or download or file deletion with the data server according to a result of comparing the server index and the client index.

한편, 파일 변경이 발생한 경우 이외에도, 클라이언트는 설정 시간마다 상기 데이타 서버로 서버 인덱스를 요청할 수 있다.Meanwhile, in addition to the case where a file change occurs, the client may request a server index from the data server at every set time.

이외에도 본원 발명의 특징에 따른 데이타 동기화 시스템은, 클라이언트별로 인증 처리를 위한 인증 정보 및 상기 클라이언트의 데이타를 관리하는 데이타 서버의 주소가 저장되어 있는 데이타 베이스; 및 네트워크를 통하여 접속하는 클라이언트로부터 입력되는 인증 정보와 상기 데이타 베이스에 저장되어 있는 인증 정보를 비교하고, 비교 결과에 따라 상기 클라이언트에게 인증키와 상기 클라이언트의 데이타를 관리하는 데이타 서버의 주소를 전송하는 로그인 서버를 더 포함한다.In addition, a data synchronization system according to an aspect of the present invention includes a database in which authentication information for authentication processing for each client and an address of a data server managing data of the client are stored; And comparing authentication information input from a client connected through a network with authentication information stored in the database, and transmitting an authentication key and an address of a data server managing data of the client to the client according to the comparison result. It further includes a login server.

이 경우에 상기 클라이언트는 데이타 변경이 발생한 경우에 상기 로그인 서버로 로그인을 요청하여 인증키와 데이타 서버의 주소를 전송받고, 상기 주소의 데이타 서버로 접속하여 인증키를 제공한 후 서버 인덱스를 요청하며, 상기 데이타 서버는 상기 인증키가 적법한 경우에 상기 클라이언트에 해당하는 서버 인덱스를 제공한다.In this case, when the data change occurs, the client requests login to the login server, receives the authentication key and the address of the data server, accesses the data server of the address, provides the authentication key, and requests a server index. The data server provides a server index corresponding to the client when the authentication key is legal.

여기서, 데이타 보안을 위하여, 상기 로그인 서버가 상기 클라이언트로부터 전송된 인증 정보와 데이타 베이스에 저장된 인증 정보가 일치되는 경우에, 상기 클라이언트의 인증 정보를 암호화하여 인증키를 생성할 수 있으며, 이에 따라 상기 데이타 서버는 상기 클라이언트로부터 전송되는 인증키를 복호화하여 인증 정보를 생성한 다음에, 생성된 인증 정보와 데이타 베이스에 저장된 인증 정보를 비교하고, 비교 결과에 따라 상기 클라이언트로 서버 인덱스를 전송한다.Here, in order to secure data, when the authentication information transmitted from the client and the authentication information stored in the database match, the login server may generate the authentication key by encrypting the authentication information of the client. The data server decrypts the authentication key transmitted from the client, generates authentication information, compares the generated authentication information with the authentication information stored in the database, and transmits a server index to the client according to the comparison result.

한편, 상기 데이타 서버는 상기 클라이언트와의 데이타 동기화가 수행된 다음에, 상기 클라이언트와의 데이타 동기화를 원하는 다른 클라이언트로 동기화 명령을 전송하며, 상기 데이타 서버로부터 데이타 동기화 명령을 전송받은 클라이언트는 위에 기술한 바와 같이 상기 데이타 서버로 서버 인덱스를 요청한다.On the other hand, after the data synchronization with the client is performed, the data server transmits a synchronization command to another client that wants to synchronize the data with the client, the client receiving the data synchronization command from the data server described above Request a server index to the data server as shown.

본원 발명의 다른 특징에 따른 데이타 동기화 방법은, 네트워크를 통하여 데이타 동기화를 하고자 하는 다수의 클라이언트, 네트워크를 통하여 클라이언트와 연결되어 있으며 상기 클라이언트별로 할당된 작업 폴더내에 상기 클라이언트의 데이타가 저장되어 있는 적어도 하나 이상의 데이타 서버 및 클라이언트 인증 처리를 수행하는 로그인 서버를 포함하는 시스템의 데이타 동기화 방법으로,In accordance with another aspect of the present invention, a data synchronization method includes: a plurality of clients wishing to synchronize data through a network, at least one of which is connected to a client via a network, and the data of the client is stored in a work folder allocated to each client; A data synchronization method of a system including the above data server and a login server for performing client authentication processing,

상기 클라이언트에서 데이타 변경이 발생되면 상기 네트워크를 통하여 상기 로그인 서버로 로그인하는 단계; 상기 로그인 서버가 상기 클라이언트의 인증 처리를 수행하고, 인증된 클라이언트에게 인증키 및 상기 클라이언트의 데이타가 저장되어 있는 데이타 서버의 주소를 전송하는 단계; 상기 클라이언트가 상기 로그인 서버로부터 전송된 주소를 가지는 데이타 서버로 접속하여 서버 인덱스--여기서, 서버 인덱스는 작업 폴더내에 저장된 데이타의 목록-를 요청하는 단계; 상기 데이타 서버가 상기 서버 인덱스를 상기 클라이언트로 전송하는 단계; 및 상기 클라이언트가 상기 서버 인덱스와 클라이언트 인덱스-여기서 클라이언트 인덱스는 클라이언트가 가지고 있는 데이타 목록-를 비교 분석하고, 분석 결과에 따라 상기 데이타 서버와의 데이타 동기화를 수행하는 단계를 포함한다.Logging in to the login server via the network when data change occurs in the client; Performing, by the login server, an authentication process of the client, and transmitting an authentication key and an address of a data server storing data of the client to an authenticated client; The client accessing a data server having an address sent from the login server and requesting a server index, wherein the server index is a list of data stored in a working folder; The data server sending the server index to the client; And comparing and analyzing the server index and the client index, wherein the client index is a list of data owned by the client, and performing data synchronization with the data server according to the analysis result.

상기 로그인하는 단계에서 상기 클라이언트는 설정 시간마다 상기 로그인 서버로 로그인할 수도 있으며, 상기 데이타 동기화를 수행하는 단계에서, 상기 클라이언트는 상기 서버 인덱스와 클라이언트 인덱스의 비교 결과에 따라 상기 데이타 서버와의 업로드 또는 다운 로드 또는 파일 딜리트를 선택적으로 수행한다.In the log-in step, the client may log in to the log-in server every set time. In the step of performing the data synchronization, the client may upload or upload the data to or from the data server according to a comparison result of the server index and the client index. Perform download or file deletion selectively.

이외에도 본원 발명의 다른 특징에 따른 데이타 동기화 방법은, 상기 데이타 서버가 상기 클라이언트와의 데이타 동기화가 수행된 다음에, 상기 클라이언트와의 데이타 동기화를 원하는 다른 클라이언트로 동기화 명령을 전송하는 단계; 및 상기 데이타 서버로부터 동기화 명령을 전송받은 클라이언트가 상기 로그인 서버로 로그인하는 단계를 더 포함할 수 있다.In addition, the data synchronization method according to another aspect of the present invention, the data server after the data synchronization with the client, the step of transmitting a synchronization command to another client that wants to synchronize the data with the client; And logging in to the login server by the client receiving the synchronization command from the data server.

이하, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 본 발명을용이하게 실시할 수 있는 가장 바람직한 실시예를 첨부된 도면을 참조로 하여 상세히 설명한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명에 따른 데이타 동기화 시스템은 클라이언트의 특정 로컬 폴더의 전체 내용을 유선 또는 무선 네트워크를 통하여 서버의 해당 계정내의 특정 폴더와 동기화를 이루도록 하며, 서버와의 동기화에 따라 클라이언트간의 데이타 동기화가 이루어지게 된다.In the data synchronization system according to the present invention, the entire contents of a specific local folder of a client are synchronized with a specific folder in a corresponding account of a server through a wired or wireless network, and data synchronization between the clients is performed according to the synchronization with the server. .

도 1에 본 발명에 따른 데이타 동기화 방법이 간략하게 도시되어 있다.1 shows a brief data synchronization method according to the present invention.

첨부한 도 1에 도시되어 있듯이, 클라이언트내에 지정된 폴더내의 파일에 변경이 있거나 또는 스케줄 시간이 되면 자동으로 서버와의 연결을 설정하며, 다음에 서버의 계정내에 지정된 특정 폴더의 파일 목록을 받아서 서버와의 차이점을 분석하고, 분석 결과에 따라 데이타를 업로드 또는 다운로드(download)하여 클라이언트와 서버간의 데이타 동기화가 이루어지게 된다. 이 때, 다른 클라이언트와의 동기화가 설정되어 있는 경우에는 서버에서 설정된 클라이언트로 동기화 명령을 전송하고 이에 따라 해당 클라이언트도 서버로 로그인(login)하여 변경된 데이타를 다운로드 받으므로써, 클라이언트간의 데이타 동기화가 이루어지게 된다.As shown in FIG. 1, when there is a change in a file in a designated folder in a client or when a schedule time arrives, a connection is automatically established with a server. The difference between the two and the data is uploaded or downloaded according to the analysis result, the data is synchronized between the client and the server. At this time, if synchronization with other clients is set, the synchronization command is transmitted from the server to the client, and accordingly, the client also logs in to the server and downloads the changed data, thereby synchronizing data between the clients. do.

이러한 특징을 가지는 본 발명의 실시예 따른 데이타 동기화 시스템의 구조가 도 2에 도시되어 있다.The structure of a data synchronization system according to an embodiment of the present invention having this feature is shown in FIG.

첨부한 도 2에 도시되어 있듯이, 본 발명의 실시예에 따른 데이타 동기화 시스템은, 클라이언트(10)와, 네트워크(20)를 통하여 클라이언트(10)와 연결되어 있는 동기화 서버(30), 그리고 네트워크(20)를 통하여 동기화 서버(30)에 연결되어있는 다수의 제휴 클라이언트(41∼4n)를 포함한다.As shown in FIG. 2, a data synchronization system according to an embodiment of the present invention includes a client 10, a synchronization server 30 connected to a client 10 through a network 20, and a network ( And a plurality of affiliated clients 41 to 4n connected to the synchronization server 30 via 20.

클라이언트(10)는 설정된 폴더내에 저장되어 있는 파일에 변경이 발생하였는지를 감시하는 파일 감시부(11)와, 설정 시간마다 동기화 서버(30)로 로그인을 신청하도록 스케쥴 작업을 수행하는 스케쥴링부(12)와, 파일 감시부(11)로부터 파일 변경에 따른 신호가 출력되거나 스케쥴링부(12)로부터 설정 시간 경과를 나타내는 신호가 출력되면 동기화 서버(30)로 로그인하는 접속부(13)와, 동기화 서버(30)와의 데이타 업로드, 다운로드 등을 수행하는 동기화 처리부(14)를 포함한다. 한편 접속부(13)는 동기화 서버(30)로부터 동기화 명령이 전송되면 파일 변경 발생 여부나 설정 시간 경과 여부에 상관없이 동기화 서버(30)로 로그인한다.The client 10 includes a file monitoring unit 11 that monitors whether a change has occurred in a file stored in a set folder, and a scheduling unit 12 which performs a scheduling operation to apply for a login to the synchronization server 30 at every set time. And a connection unit 13 for logging in to the synchronization server 30 when the signal corresponding to the file change is output from the file monitoring unit 11 or a signal indicating the set time elapsed from the scheduling unit 12, and the synchronization server 30. And a synchronization processor 14 for uploading data, downloading data, and the like. Meanwhile, when the synchronization command is transmitted from the synchronization server 30, the connection unit 13 logs in to the synchronization server 30 regardless of whether a file change occurs or whether the setting time has elapsed.

동기화 서버(30)는 클라이언트의 인증 처리를 수행하는 로그인 서버(31)와, 클라이언트의 요청에 따라 해당 작업 폴더내에 저장된 파일들의 파일 목록을 클라이언트(10)로 전송하고, 클라이언트(10)와의 업로드, 다운 로드 등에 의한 파일 전송시마다 파일 목록을 갱신 처리하는 데이타 서버(32) 및 클라이언트의 정보가 저장되어 있는 사용자 정보 데이타 베이스(33)를 포함한다.The synchronization server 30 transmits a file list of files stored in the working folder to the client 10 and uploads the file to the client 10 according to the client's request. It includes a data server 32 for updating the file list at every file transfer by downloading and the like, and a user information database 33 for storing client information.

로그인 서버(31)는 사용자 정보 데이타 베이스(33)에 저장되어 있는 클라이언트 정보를 토대로 인증 처리를 수행하는 인증부(311), 인증 처리된 클라이언트에 대한 인증키를 생성하여 클라이언트(10)로 전송하는 인증키 생성부(312)를 포함한다. 이 때, 인증키 생성부(312)는 클라이언트(10)의 데이타가 저장되어 있는 데이타 서버(32)의 주소를 인증키와 함께 클라이언트(10)로 전송하여, 클라이언트(10)가 해당하는 데이타 서버(32)로 접속할 수 있도록 한다.The login server 31 may generate an authentication unit 311 for performing authentication processing based on the client information stored in the user information database 33, and generate an authentication key for the authenticated client and transmit the generated authentication key to the client 10. The authentication key generation unit 312 is included. At this time, the authentication key generation unit 312 transmits the address of the data server 32 in which the data of the client 10 is stored to the client 10 together with the authentication key, so that the client 10 corresponds to the data server. (32) to allow connection.

데이타 서버(32)는 적어도 하나 이상일 수 있으며, 클라이언트별로 작업 폴더가 할당되어 있으며, 각 작업 폴더별로 클라이언트가 처리하고자 하는 데이타 즉, 파일들이 저장되어 있는 데이타 저장부(321), 클라이언트(10)로부터 전송되는 인증키를 복호화한 다음에 사용자 정보 데이타 베이스(33)에 저장되어 있는 정보와 비교하여 적법한 사용자인지를 확인하는 복호화부(322), 접속한 클라이언트가 적법한 사용자인 경우에 데이타 저장부(321)의 해당 작업 폴더내에 저장된 파일 목록을 클라이언트(10)로 전송하는 데이타 처리부(323)를 포함하며, 데이타 처리부(323)는 클라이언트(10)와의 업로드, 다운 로드시에 파일이 하나 전송 완료될 때마다 실시간으로 파일 목록을 갱신 처리한다. 그리고 네트워크(20)와 연결되어 있는 제휴 클라이언트(41∼4n)에게 동기화 명령을 전송하여 클라이언트(10)와의 데이타 동기화가 이루어지도록 한다. 작업 폴더는 데이타 서버(32)상의 HTTP(hyper text transfer protocol) 데몬(daemon)과 연동하여 웹 서비스로 활용될 수 있다.The data server 32 may be at least one, and a working folder is assigned to each client, and the data to be processed by the client for each working folder, that is, the data storage unit 321 and the client 10 are stored. A decryption unit 322 for decrypting the transmitted authentication key and comparing the information stored in the user information database 33 to confirm whether the user is a legitimate user, or a data storage unit 321 when the connected client is a legitimate user. Data processing unit 323 for transmitting a list of files stored in the corresponding working folder of the client to the client 10, the data processing unit 323 when a file is completed transfer when uploading and downloading with the client 10 The file list is updated in real time every time. Then, the synchronization command is transmitted to the affiliated clients 41 to 4n connected to the network 20 so that data synchronization with the client 10 is performed. The working folder may be utilized as a web service by interworking with a hyper text transfer protocol (HTTP) daemon on the data server 32.

사용자 정보 데이타 베이스(33)에는 본원 발명에 따른 데이타 동기화를 받고자 하는 클라이언트에 대한 정보가 저장되어 있다. 예를 들어, 클라이언트별로 로그인을 위한 식별 번호(이하, ID라고 명명함) 및 패스워드, 데이타가 저장되어 있는 데이타 서버의 주소, 클라이언트의 주소, 전자 메일 주소 등의 클라이언트 정보가 저장될 수 있다.The user information database 33 stores information about a client who wishes to receive data synchronization according to the present invention. For example, client information such as an identification number (hereinafter, referred to as ID) and password for logging in for each client, an address of a data server where data is stored, an address of a client, an e-mail address, and the like may be stored.

제휴 클라이언트(41∼4n)는 클라이언트(10)와 데이타 동기화를 이루고자 하는 클라이언트들이며, 각 구성 요소는 클라이언트(10)와 동일하게 이루어질 수 있다.The alliance clients 41 to 4n are clients that want to synchronize data with the client 10, and each component may be the same as the client 10.

여기서 네트워크(20)는 유무선 네트워크(또한 인터넷이나 퓨처 네트워크)를 포함하며, 클라이언트(10)로는 유선 또는 무선 네트워크를 통하여 동기화 서버(30)에 접속할 수 있는 모든 통신 장치가 이용된다. 예를 들어, 클라이언트(10)로서 컴퓨터, 노트북, PDA, 이동 통신 단말기, 인터넷 접속 가능한 TV 등의 다양한 통신 장치가 사용될 수 있다. 이외에도 서버간의 데이타 동기화를 하고자 하는 경우에 클라이언트(10)가 서버일 수 있다. 예를 들어 동기화 서버(30)가 마스터 서버가 될 수 있으며, 클라이언트(10)가 슬레이브 서버가 될 수 있다.The network 20 includes a wired and wireless network (also an internet or future network), and any communication device capable of accessing the synchronization server 30 through a wired or wireless network is used as the client 10. For example, as the client 10, various communication devices such as a computer, a notebook computer, a PDA, a mobile communication terminal, and a TV with Internet access may be used. In addition, the client 10 may be a server when data synchronization between servers is desired. For example, the synchronization server 30 may be a master server, and the client 10 may be a slave server.

이하에서는 설명의 편의를 위하여 클라이언트의 폴더내에 저장된 파일들의 목록을 "클라이언트 인덱스"라고 명명하며, 데이타 서버의 작업 폴더에 저장된 파일들의 목록을 "서버 인덱스"라고 명명한다.Hereinafter, for convenience of description, the list of files stored in the folder of the client is called "client index", and the list of files stored in the working folder of the data server is called "server index".

이러한 구조를 토대로 하여 본 발명의 실시예에 따른 실시간 데이타 동기화 시스템의 동작에 대하여 설명한다.Based on this structure, the operation of the real-time data synchronization system according to the embodiment of the present invention will be described.

동기화 서버(30)의 시작 프로그램은 유닉스 상에서 데몬(daemon)으로 작동하며, 도 3에 본 발명의 실시예에 따른 동기화 서버에서의 데몬 프로그램 수행 과정이 도시되어 있고, 도 4에 동기화 서버의 구성 체계가 저장되어 있는 파일이 예시되어 있다.The startup program of the synchronization server 30 operates as a daemon on Unix, and FIG. 3 shows a daemon program execution process in a synchronization server according to an embodiment of the present invention, and FIG. 4 shows a configuration scheme of the synchronization server. The file in which is stored is illustrated.

동기화 서버(30)의 시작 프로그램은 구성 체계가 저장되어 있는 파일 예를 들어, syncfolder.config 파일을 읽은 다음에(S100∼S110), 파일에 기록되어 있는 로그인 서버 리스트와 데이타 서버 리스트를 확인하여 해당 리스트에 어떠한 서버가 등록되어 있는지를 판단한다.The startup program of the synchronization server 30 reads a file in which a configuration scheme is stored, for example, a syncfolder.config file (S100 to S110), and then checks the login server list and data server list recorded in the file, Determine which server is registered in the list.

구성 체계 파일의 로그인 서버 리스트에 등록되어 있는 경우에는 로그인 서버 모듈로 포크(pork)하여 클라이언트의 로그인을 대기하며(S120∼S130), 데이타 서버 리스트에 등록되어 있는 경우에는 데이타 서버 모듈로 포크하여 클라이언트의 로그인을 대기한다(S140∼S150).If it is registered in the login server list of the configuration scheme file, it forks to the login server module and waits for the client to log in (S120 to S130). If it is registered in the data server list, it forks to the data server module. Wait for login (S140 to S150).

이후 시작 프로그램 자체는 종료되며, 하나의 컴퓨터에서 로그인 서버 모듈이나 데이타 서버 모듈 모두가 실행될 수도 있으며, 하나만이 실행될 수도 있다. 이에 따라 로그인 시스템과 작업(working) 시스템이 물리적으로 분리되어 있는 경우에 이를 유지 관리하는데 일관성이 유지될 수 있으며, 필요에 따라 용이하게 작업 시스템 즉, 데이타 서버를 증가시킬 수 있다.After that, the startup program itself is terminated, and both the login server module and the data server module may be executed on one computer, or only one may be executed. As a result, when the login system and the working system are physically separated from each other, consistency can be maintained in maintaining them, and the working system, that is, the data server, can be easily increased as needed.

본원 발명에 따른 동기화 서버(30)의 각 서버(31,32)들은 위에 기술된 바와 같이, 구성 체계 파일에 저장되어 있는 리스트 내용에 따라 해당 기능을 수행하며, 이하에서는 도 5a 내지 도 5c를 참조로 하여 로그인 서버와 데이타 서버 그리고 클라이언트간에 이루어지는 데이타 동기화 과정에 대하여 구체적으로 설명한다.Each of the servers 31 and 32 of the synchronization server 30 according to the present invention performs the corresponding function according to the contents of the list stored in the configuration file, as described above. Hereinafter, referring to FIGS. 5A to 5C. The data synchronization process between the login server, data server, and client is described in detail.

도 5a 내지 도 5c는 본 발명의 실시예에 따른 데이타 동기화 방법을 나타낸 순서도이다.5A through 5C are flowcharts illustrating a data synchronization method according to an embodiment of the present invention.

클라이언트(10)는 첨부한 도 5a에 도시되어 있듯이, 먼저, 초기화를 실시한 다음에 로그인 조건 발생 여부에 따라 동기화 서버(30)로의 로그인을 수행한다.As shown in FIG. 5A, the client 10 first performs initialization and then logs in to the synchronization server 30 depending on whether a login condition occurs.

보다 구체적으로 설명하면, 파일 감시부(11)가 일정 시간(예를 들어 2∼3초) 간격으로 작동하면서 클라이언트(10)내의 설정 폴더에 저장되어 있는 파일들의 변동 여부를 감시하며, 감시중인 파일들에 변동 사항이 발생한 경우에는 감시 동작을종료하고 변동 사항에 따라 해당 폴더에 대한 클라이언트 인덱스를 변경한다(S200). 또한, 스케쥴링부(12)는 시간을 계속 체크하여 설정 시간이 경과될 때마다 스케쥴링 작업을 중지한다(S210).In more detail, the file monitoring unit 11 operates at a predetermined time (for example, 2 to 3 seconds) at intervals to monitor whether or not the files stored in the setting folder in the client 10 are changed, and the file being monitored. If a change occurs in the field, the monitoring operation is terminated and the client index for the corresponding folder is changed according to the change (S200). In addition, the scheduling unit 12 continuously checks the time and stops the scheduling task whenever the set time elapses (S210).

클라이언트(10)의 접속부(13)는 파일 감시부(11)로부터 파일 변경에 따른 신호가 출력되거나 스케쥴링부(12)로부터 설정 시간 경과에 따른 신호가 출력되거나 또는 동기화 서버(30)로부터 동기화 명령이 전송된 경우(S220)에는 동기화 서버(30)로의 로그인을 수행한다(S230∼S240). 한편 동기화 서버(30)로부터 동기화 명령을 전송받은 경우 파일 감시부(11)는 파일 감시 동작을 중지하고, 스케쥴링부(12) 또한 스케쥴링 작업을 종료한다.The connection unit 13 of the client 10 outputs a signal according to a file change from the file monitoring unit 11, a signal according to a set time elapsed from the scheduling unit 12, or a synchronization command from the synchronization server 30. If it is transmitted (S220), the login to the synchronization server 30 is performed (S230 to S240). Meanwhile, when the synchronization command is received from the synchronization server 30, the file monitoring unit 11 stops the file monitoring operation, and the scheduling unit 12 also ends the scheduling operation.

클라이언트(10)가 로그인을 요청하면 로그인 서버(31)의 인증부(311)가 먼저 클라이언트(10)의 버전과 현재의 배포(release) 버전을 비교한다(S250). 즉, 클라이언트(10)의 데이타 동기화를 위한 프로그램의 버전과 배포 버전의 일치 여부를 판단하여, 클라이언트의 버전이 낮은 경우에는 자동으로 버전 업그레이드를 수행한다(S260).When the client 10 requests a login, the authentication unit 311 of the login server 31 first compares the version of the client 10 with the current release version (S250). That is, it is determined whether the version of the program for synchronizing the data of the client 10 and the distribution version match, and if the version of the client is low, the version is automatically upgraded (S260).

버전 확인 작업이 수행된 다음에, 인증부(311)는 클라이언트(10)로 로그인을 위한 인증 정보를 요청하고 이에 따라 클라이언트(10)로부터 인증 정보 즉, ID 및 패스워드가 입력되면(S270∼S280), 입력된 ID와 패스워드를 토대로 사용자 정보 데이타 베이스(33)를 검색한다(S290).After the version check operation is performed, the authentication unit 311 requests authentication information for logging in to the client 10 and accordingly authentication information, that is, an ID and a password, is input from the client 10 (S270 to S280). In step S290, the user information database 33 is searched based on the input ID and password.

인증부(311)는 클라이언트(10)로부터 입력된 ID 및 패스워드가 사용자 정보 데이타 베이스(33)에 저장되어 있지 않으면 접속 불가 표시 등의 에러 메시지와 함께 인증 정보 재전송을 요청하여 인증 과정을 다시 수행하며(S300∼S320), 설정 횟수 이상 사용자 정보 데이타 베이스(33)에 등록되지 않은 인증 정보가 입력되는 경우에는 클라이언트(10)와의 연결을 종료한다(S330).If the ID and password input from the client 10 are not stored in the user information database 33, the authentication unit 311 requests retransmission of authentication information along with an error message such as a connection failure indication and performs the authentication process again. (S300 to S320), when authentication information not registered in the user information database 33 more than the set number of times is input, the connection with the client 10 is terminated (S330).

한편, 클라이언트(10)로부터 입력되는 ID 및 패스워드가 사용자 정보 데이타 베이스(33)에 등록되어 있으면, 인증키 생성부(312)가 도 5b에 도시되어 있듯이, 해당 클라이언트의 ID와 데이타 동기화 서비스를 제공받을 수 있는 유효 기간을 암호하여 인증키를 생성한다(S340).On the other hand, if the ID and password input from the client 10 are registered in the user information database 33, the authentication key generation unit 312 provides the ID and data synchronization service of the client as shown in Fig. 5B. An authentication key is generated by encrypting the validity period that can be received (S340).

본 발명에서는 클라이언트들이 로그인할 때 그 클라이언트의 주소, 이름, 유효 기간 등의 목록을 작성하며, 이러한 목록들은 해당 클라이언트의 작업 폴더내에 저장된다. 유효 기간은 클라이언트가 설정하여 로그인시에 서버로 전송하며, 그 시간은 크라이언트의 스케줄링 작업을 위한 설정 시간 즉, 스케줄링 시간보다는 길게 설정된다. 따라서 설정된 유효 기간 이내에 클라이언트는 스케쥴링 시간에 따라 서버에 로그인을 시작하게 된다. 클라이언트가 정상적으로 작동하고 있다면 유효 기간이 지나기 전에 서버에 로그인을 하며 이에 따라 유효 기간이 계속 갱신된다. 그러므로 본 발명에 데이타 서버(32)는 유효 기간이 지나면 해당 클라이언트는 종료된 것으로 간주하고, 유효 기간이 지나지 않은 경우에는 해당 클라이언트가 활성화되어 있는 것으로 간주한다.In the present invention, when the clients log in, a list of the client's address, name, expiration date, etc. is created, and these lists are stored in the working folder of the client. The validity period is set by the client and transmitted to the server at login, and the time is set longer than the set time, i.e., the scheduling time, for the client's scheduling task. Therefore, within the set validity period, the client starts logging in to the server according to the scheduling time. If the client is running normally, it will log in to the server before the validity period has expired, and the validity period will continue to update. Therefore, in the present invention, the data server 32 considers that the client is terminated when the validity period has passed, and that the client is activated when the validity period has not passed.

다음에, 인증키 생성부(312)는 클라이언트의 ID를 토대로 사용자 정보 데이타 베이스(33)를 검색하여 클라이언트가 속한 즉, 클라이언트(10)의 파일들이 저장되어 있는 데이타 서버(32)의 주소를 찾은 다음에, 생성된 인증키와 데이타서버(32)의 주소를 클라이언트(10)로 전송한다(S350∼S360).Next, the authentication key generation unit 312 searches the user information database 33 based on the ID of the client to find the address of the data server 32 to which the client belongs, that is, the files of the client 10 are stored. Next, the generated authentication key and the address of the data server 32 are transmitted to the client 10 (S350 to S360).

이와 같이 클라이언트(10)의 동기화 서버(30)로의 로그인이 성공적으로 이루어져 로그인 서버(31)로부터 인증키와 데이타 서버의 주소가 전송되면, 클라이언트(10)는 해당 주소를 가지는 데이타 서버(32)로 접속한다(S370). 이 경우에 클라이언트(10)가 데이타 서버(32)로 접속하면 데이타 저장부(321)의 작업 폴더내에 접속한 클라이언트(10)의 주소가 저장된다. 따라서, 이후에 특정 ID의 작업 폴더를 검색하면 활성화 되어 있는 즉, 현재 네트워크(20)를 통하여 연결되어 있는 제휴 클라이언트(41∼4n)들을 알 수가 있다.As described above, when the login to the synchronization server 30 of the client 10 is successfully performed and the authentication key and the address of the data server are transmitted from the login server 31, the client 10 moves to the data server 32 having the corresponding address. To be connected (S370). In this case, when the client 10 connects to the data server 32, the address of the client 10 connected in the working folder of the data storage unit 321 is stored. Therefore, after searching the working folder of a specific ID later, the associated clients 41 to 4n that are activated, that is, are currently connected through the network 20 can be known.

데이타 서버(32)는 연결 대기 상태에서 클라이언트(10)가 접속하면, 먼저, 데이타 서버(32)의 복호화부(322)가 접속하는 클라이언트(10)부터 인증키를 전송받은 다음에, 인증키를 복호화 처리하여 클라이언트의 ID와 유효 기간을 복원하고(S380), 복원된 ID가 사용자 정보 데이타 베이스(33)에 저장되어 있는지 등을 판단하여 인증키가 적법한 인증키인지를 판단한다(S390). 그리고 인증키가 적법한 경우에는 다시 유효 기간 즉, 데이타 동기화 서비스를 받을 수 있는 기간이 경과되었는지를 판단한다(S400). 한편, 인증키가 적법하지 않거나 유효 기간이 경과된 경우에는 클라이언트(10)와의 연결을 종료한다(S10). 이와 같이 유효 기간을 설정한 이유는 적법하지 않는 사용자의 접근을 차단하고, 데이타 서버(32)에서 사용자 관리를 위한 분할과 합병을 원활하게 하기 위해서이다.When the client 10 connects in the connection standby state, the data server 32 receives an authentication key from the client 10 to which the decryption unit 322 of the data server 32 connects, and then receives the authentication key. The decryption process restores the ID and the valid period of the client (S380), and determines whether the restored ID is stored in the user information database 33 or not (S390). If the authentication key is legal, it is again determined whether the validity period, that is, the period for receiving the data synchronization service, has elapsed (S400). On the other hand, if the authentication key is not legal or the validity period has elapsed, the connection with the client 10 is terminated (S10). The reason for setting the validity period in this way is to block the access of illegal users and to facilitate the partitioning and merging for user management in the data server 32.

단계(S400)에서 유효 기간이 경과되지 않은 경우에, 데이타 처리부(323)는 클라이언트(10)의 요청에 따라 해당하는 서버 인덱스를 클라이언트(10)로 전송한다.If the validity period has not elapsed in step S400, the data processor 323 transmits the corresponding server index to the client 10 according to the request of the client 10.

즉, 클라이언트(10)로부터 서버 인덱스 요청이 들어오면, 데이타 처리부(323)는 클라이언트의 ID를 토대로 데이타 저장부(321)의 해당 작업 폴더를 찾아서 저장되어 있는 파일들의 목록인 서버 인덱스를 작성하여 클라이언트(10)로 전송한다(S420).That is, when a server index request is received from the client 10, the data processing unit 323 searches for a corresponding working folder of the data storage unit 321 based on the ID of the client and creates a server index which is a list of files stored therein. Transmit to 10 (S420).

데이타 서버(32)로부터 서버 인덱스가 전송되면, 클라이언트(10)의 동기화 처리부(14)가 클라이언트 인덱스와 서버 인덱스를 비교하여 차이가 있는지를 판단하고, 비교 결과에 따라 한다(S430).When the server index is transmitted from the data server 32, the synchronization processing unit 14 of the client 10 compares the client index and the server index to determine whether there is a difference, and according to the comparison result (S430).

구체적으로 첨부한 도 5c에 도시되어 있듯이, 클라이언트(10)의 동기화 처리부(14)는 지정 폴더내에 저장되어 있는 파일들을 하나씩 읽어가면서 읽은 파일을 클라이언트 인덱스와 비교하면서 새로 생긴 파일인지, 변경된 파일인지, 원래 그대로의 파일인지를 판단하여 현재 파일 상태가 업로드 조건인지를 판단한다(S440). 해당 파일이 새로 생긴 파일이거나 변경된 파일인 경우에 그 파일을 네트워크(20)를 통하여 데이타 서버(32)로 전송하는 업로드를 수행하며, 이에 따라 데이타 서버(32)의 데이타 처리부(323)는 클라이언트(10)로부터 전송되는 파일을 데이타 저장부(321)의 해당 작업 폴더내에 저장한다(S460). 이와 같이 동기화 처리부(14)는 지정된 폴더내에 저장된 파일을 하나씩 분석하면서 업로드를 수행한다.이 경우에 업로드 수행시마다 클라이언트 인덱스 갱신 처리가 수행될 수 있다.Specifically, as shown in FIG. 5C, the synchronization processing unit 14 of the client 10 reads the files stored in the designated folder one by one and compares the read files with the client indexes to determine whether they are new or changed files. It is determined whether the file is intact, and whether the current file state is an upload condition (S440). If the file is a new file or a changed file, the file is uploaded to the data server 32 via the network 20. Accordingly, the data processing unit 323 of the data server 32 performs a client ( The file transmitted from 10) is stored in the working folder of the data storage unit 321 (S460). In this way, the synchronization processing unit 14 performs uploading while analyzing the files stored in the designated folder one by one. In this case, the client index update processing may be performed every time the upload is performed.

한편, 동기화 처리부(14)는 데이타 서버(32)로부터 전송된 서버 인덱스를 분석하면서 클라이언트 인덱스에는 없는데 서버 인덱스에만 있는 파일 목록이 있다면, 즉, 데이타 서버(32)에는 있는데 자체 폴더에 특정 파일이 없는 경우에는 데이타 서버(32)로 해당 파일의 다운 로드를 요청하며(S470∼S480), 데이타 처리부(323)는 데이타 저장부(321)의 클라이언트의 작업 폴더로부터 해당 파일을 리드하여 클라이언트(10)로 전송한다. 따라서 데이타 서버(32)내의 파일이 클라이언트(10)의 동기화되도록 지정된 특정 폴더에 저장된다(S490∼S500).On the other hand, the synchronization processor 14 analyzes the server index transmitted from the data server 32, and if there is a list of files that are not in the client index but only in the server index, that is, the data server 32 does not have a specific file in its own folder. In case of requesting the download of the file to the data server 32 (S470 to S480), the data processing unit 323 reads the file from the working folder of the client of the data storage unit 321 to the client 10. send. Therefore, the files in the data server 32 are stored in a specific folder designated to be synchronized with the client 10 (S490 to S500).

데이타 서버(32)의 데이타 처리부(323)는 클라이언트(10)와의 업로드 및 다운 로드 수행시에 하나의 파일 전송이 완료될때마다 서버 인덱스를 갱신처리한다. 이와 같이 실시간으로 서버 인덱스 갱신이 이루어짐에 따라 여러 클라이언트의 다중 접속을 받을 수 있다.The data processing unit 323 of the data server 32 updates the server index whenever a file transfer is completed when uploading or downloading the data to the client 10. As the server index is updated in real time, multiple clients can receive multiple connections.

이와는 달리, 클라이언트 인덱스에는 있는데 서버 인덱스에는 없는 파일 목록이 있다면, 즉, 데이타 서버(32)에는 없는데 자체의 폴더에만 특정 파일이 있는 경우, 동기화 처리부(14)는 데이타 서버(32)에 연결된 임의 제휴 클라이언트 (41∼4n)가 파일 삭제를 수행한 것으로 판단하여, 동기화되도록 지정된 폴더에 저장된 해당 파일을 삭제한다(S510∼S520). 다음에 데이타 서버(32)로 파일 삭제 메세지를 보낸 다음에 클라이언트 인덱스를 갱신 처리한다. 동기화 처리부(14)는 클라이언트 인덱스를 하나씩 서버 인덱스와 비교하면서 비교 결과에 따라 위에 기술된 바와 같이 파일 딜리트(delete)를 수행하고 클라이언트 인덱스 갱신 처리를 수행한다.In contrast, if there is a list of files in the client index but not in the server index, i.e., if there are specific files in its own folder but not in the data server 32, then the synchronization processing unit 14 connects to any data server 32. The client 41-4n determines that the file has been deleted, and deletes the corresponding file stored in the folder designated to be synchronized (S510-S520). Next, a file delete message is sent to the data server 32, and the client index is updated. The synchronization processor 14 compares the client indexes with the server indexes one by one, performs file deletion as described above, and performs a client index update process according to the comparison result.

클라이언트(10)는 위에 기술된 바와 같이 데이타 서버(32)와의 업로드, 다운 로드, 파일 딜리트 등을 수행한 다음에 동기화 서버(30)와의 연결을종료하고(S530), 파일 감시 및 스케쥴링 동작을 재개한다.As described above, the client 10 performs upload, download, file deletion, etc. with the data server 32, and then terminates the connection with the synchronization server 30 (S530), and performs file monitoring and scheduling operations. Resume.

데이타 서버(32)의 데이타 처리부(323)는 클라이언트(10)와의 연결이 종료되면, 데이타 저장부(321)의 작업 폴더를 검색하여 현재 활성화되어 있는 제휴 클라이언트(41∼4n)를 확인한 다음에, 이들 제휴 클라이언트(41∼4n)들에게 동기화 명령을 전송한다(S540).After the connection with the client 10 is terminated, the data processing unit 323 of the data server 32 checks the working folder of the data storage unit 321 to check the currently active affiliated clients 41 to 4n. The synchronization command is transmitted to these affiliated clients 41 to 4n (S540).

따라서 데이타 서버(32)로부터 동기화 명령을 받은 제휴 클라이언트(41∼4n)들은 동기화 서버(30)로 접속하여 위에 기술된 바와 같이, 데이타 동기화 과정을 수행하게 된다. 그 결과, 별도의 사용자 조작없이도 제휴 클라이언트(41∼4n)와의 데이타 동기화가 실시간으로 이루어지게 된다.Therefore, the affiliated clients 41 to 4n having received the synchronization command from the data server 32 connect to the synchronization server 30 to perform the data synchronization process as described above. As a result, data synchronization with the affiliated clients 41 to 4n is achieved in real time without any separate user operation.

위에 기술된 실시예에서는 클라이언트간의 데이타 동기화, 그리고 클라이언트와 서버간의 데이타 동기화에 대하여 기술하였지만, 이것에 한정되지 않고 위게 기술된 데이타 동기화 방법에 따라 서버와 서버간의 데이타의 전송 및 동기화도 가능하다.Although the above-described embodiments have described data synchronization between clients and data synchronization between clients and servers, the present invention is not limited thereto, and data transmission and synchronization between servers can be performed according to the data synchronization method described above.

예를 들어, 웹 서비스를 하는 경우에는 많은 사용자가 접속을 요구하는 경우에 접속 요청을 분산하기 위하여 여러대의 서버를 운용해야 하며, 서버간에 같은 데이타를 유지해야 한다. 데이타가 스태틱(static)하게 변동되지 않는다면 문제가 없겠지만, 게시판 같이 데이타가 계속적으로 변동하는 경우에는 변동되는 데이타를 서버간에 동기화시켜 줘야 한다. 따라서 중앙에 마스터(master) 서버가 있고 여러 지역에 걸쳐서 슬레이브(slave) 서버를 위치시켜 웹 서비스를 수행하는 경우에도, 위에 기술된 데이타 동기화 방법에 따라 서버간에도 데이타 동기화가 이루어질 수있다.For example, in case of web service, if many users require connection, several servers should be operated to distribute connection request, and same data should be maintained between servers. If the data doesn't change statically, there won't be a problem, but if the data keeps changing, such as bulletin boards, the data must be synchronized between servers. Therefore, even when a master server is located in the center and a slave server is located in various regions to perform web services, data synchronization can be performed between servers according to the data synchronization method described above.

또한, 웹 호스팅 업체에도 본 발명에 따른 데이타 동기화 방법을 적용할 수 있다. 일반적으로 웹 호스팅 업체에서는 사용자들이 자신의 홈 페이지를 관리하거나 데이타를 업데이트 하는 방법으로 FTP와 텔넷(telnet)을 제공하나, FTP와 텔넷은 유닉스를 기반으로 만들어진 것이기 때문에 일반 사용자가 쉽게 사용하기에는 무리가 있다.In addition, the data synchronization method according to the present invention can be applied to a web hosting company. Generally, web hosting companies provide FTP and telnet as a way for users to manage their home page or update their data. However, since FTP and telnet are based on Unix, they are not easy for general users to use. have.

따라서, 본원 발명에 따른 데이타 동기화 방법을 적용하면, 개인 사용자의 특정 폴더와 서버가 동기화되기 때문에, 클라이언트에서 작성한 웹 페이지가 서버에 올려지며 그것을 토대로 웹서비스하는 것이 가능하게 된다. 또한, 사용자는 자신의 로컬 컴퓨터에서 웹 페이지를 수정하기만 하면 수정된 파일이 바로 서버로 업로드됨에 따라 별도의 조작이 요구되지 않는다.Therefore, when the data synchronization method according to the present invention is applied, since a specific folder of an individual user and a server are synchronized, a web page created by a client can be loaded on the server and web services can be made based thereon. In addition, since the user only needs to modify a web page on his or her local computer, the modified file is uploaded directly to the server, and thus no separate operation is required.

본 발명은 다음의 기술되는 청구 범위를 벗어나지 않는 범위 내에서 다양한 변경 및 실시가 가능하다.The invention is susceptible to various modifications and implementations without departing from the scope of the following claims.

이상에서와 같이 본 발명의 따르면, 별도의 사용자 조작 없이도 데이타 공유를 원하는 클라이언트들이나 또는 클라이언트와 서버간 또는 서버간에 데이타 동기화가 실시간으로 이루어진다.As described above, according to the present invention, data synchronization is performed in real time between clients who want to share data or between a client and a server or between servers without a separate user operation.

따라서, 개인 사용자가 회사와 가정에서 사용하는 컴퓨터나 노트북 사이에 데이타 동기화를 공유하고자 하는 경우에도, 어느 하나에 파일이 변경되면 실시간으로 컴퓨터와 노트북 사이에 데이타 동기화가 이루어진다. 예를 들어, 회사의 컴퓨터의 윈도우즈의 웹 브라우저 "즐겨찾기"에 특정 싸이트들를 지정하면, 자동으로 가정에 있는 컴퓨터나 노트북의 "즐겨찾기"에 동일한 싸이트들이 지정됨에 따라, 사용자들은 컴퓨터를 켜 높은 것만으로도 데이타를 공유, 동기화시킬 수 있다.Thus, even when an individual user wants to share data synchronization between a computer or a laptop used at work and at home, data change is made between the computer and the laptop in real time when a file is changed. For example, if you assign certain sites to your computer's Windows Web browser "Favorites," users will automatically turn on the computer as the same sites are automatically assigned to "Favorites" on your home computer or laptop. You can share and synchronize your data with just one click.

또한 중소 기업의 경우에도 중요한 데이타를 사용자들이 일일이 서버로 전송하지 않아도 자동적으로 파일들이 서버에 백업처리 된다.In the case of small and medium-sized enterprises, files are automatically backed up on the server even if important data is not sent to the server.

또한 웹 싸이트의 데이타도 서버와 클라이언트에서 동시에 보관될 수 있으므로 데이타에 대한 안정성도 높아진다. 사용자들에게 홈페이지를 제공하는 업체의 경우에는 회원들에게 보다 쉽고 편하게 홈페지이의 제작, 유지, 백업 솔류션을 제공할 수 있으며, 사용자의 경우에도 홈페이지 제작후 전송 과정이 자동적으로 이루어짐에 따라 보다 편리하게 홈페이지를 제작 및 관리할 수 있다.Web site data can also be stored on the server and the client at the same time, increasing the stability of the data. In the case of a company that provides users with a homepage, it is easier and more convenient for members to provide homepage creation, maintenance, and backup solutions.In the case of users, the homepage is more convenient because the transfer process is automatically made after the homepage is produced. Can be created and managed.

또한 웹 호스팅 업체의 경우에는 FTP나 telnet을 이용하지 않아도 사용자가 홈 페이지 관리를 할 수 있으며, 서버와 클라이언트가 동기화되므로 서버의 크랭팅(cracking)에 의한 자료의 손실이 발생하는 경우에도 즉시 복구될 수 있다.In the case of web hosting companies, the user can manage the home page without using FTP or telnet, and since the server and client are synchronized, the data can be recovered immediately even if the data is lost due to the server's cranking. Can be.

Claims (12)

네트워크를 통하여 다수의 클라이언트간의 데이타 동기화를 수행하는 시스템에서,In a system that performs data synchronization between multiple clients over a network, 상기 클라이언트별로 할당된 작업 폴더내에 상기 클라이언트의 데이타가 저장되어 있으며, 네트워크를 통하여 접속하는 클라이언트로 서버 인덱스-여기서, 서버 인덱스는 작업 폴더내에 저장된 데이타의 목록-를 전송하는 적어도 하나 이상의 데이타 서버At least one data server that stores data of the client in a work folder assigned to each client and transmits a server index to the client connecting through a network, where the server index is a list of data stored in the work folder. 를 포함하고,Including, 상기 클라이언트는 데이타 변경이 발생된 경우에 네트워크를 통하여 상기 데이타 서버로 접속하여 서버 인덱스를 요청하고, 상기 서버 인덱스와 클라이언트 인덱스-여기서 클라이언트 인덱스는 클라이언트가 가지고 있는 데이타 목록-를 비교 분석하고, 분석 결과에 따라 상기 데이타 서버와의 데이타 동기화를 수행하는 것을 특징으로 하는 데이타 동기화 시스템.When the data change occurs, the client accesses the data server through the network and requests a server index. The server index and the client index, where the client index is a list of data owned by the client, are analyzed and analyzed. And data synchronization with the data server. 제1항에 있어서,The method of claim 1, 상기 클라이언트는 상기 서버 인덱스와 클라이언트 인덱스의 비교 결과에 따라 상기 데이타 서버와의 업로드 또는 다운 로드 또는 파일 딜리트를 선택적으로 수행하는 것을 특징으로 하는 데이타 동기화 시스템.And the client selectively performs upload or download or file deletion with the data server according to a result of comparing the server index and the client index. 제1항에 있어서,The method of claim 1, 상기 클라이언트는 설정 시간마다 상기 데이타 서버로 서버 인덱스를 요청하는 것을 특징으로 하는 데이타 동기화 시스템.And the client requests a server index to the data server every set time. 제1항 내지 제3항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 클라이언트별로 인증 처리를 위한 인증 정보 및 상기 클라이언트의 데이타를 관리하는 데이타 서버의 주소가 저장되어 있는 데이타 베이스; 및A database storing authentication information for authentication processing for each client and an address of a data server managing data of the client; And 네트워크를 통하여 접속하는 클라이언트로부터 입력되는 인증 정보와 상기 데이타 베이스에 저장되어 있는 인증 정보를 비교하고, 비교 결과에 따라 상기 클라이언트에게 인증키와 상기 클라이언트의 데이타를 관리하는 데이타 서버의 주소를 전송하는 로그인 서버A login that compares authentication information input from a client connected through a network with authentication information stored in the database, and sends an authentication key and an address of a data server managing the client's data to the client according to the comparison result. server 를 더 포함하는 데이타 동기화 시스템.Data synchronization system further comprises. 제4항에 있어서,The method of claim 4, wherein 상기 클라이언트는 데이타 변경이 발생한 경우에 상기 로그인 서버로 로그인을 요청하여 인증키와 데이타 서버의 주소를 전송받고, 상기 주소의 데이타 서버로 접속하여 인증키를 제공한 후 서버 인덱스를 요청하며,When the data change occurs, the client requests login to the login server, receives the authentication key and the address of the data server, connects to the data server of the address, provides the authentication key, and requests a server index. 상기 데이타 서버는 상기 인증키가 적법한 경우에 상기 클라이언트에 해당하는 서버 인덱스를 제공하는 것을 특징으로 하는 데이타 동기화 시스템.And the data server provides a server index corresponding to the client when the authentication key is legal. 제4항에 있어서,The method of claim 4, wherein 상기 로그인 서버는 상기 클라이언트로부터 전송된 인증 정보와 데이타 베이스에 저장된 인증 정보가 일치되는 경우에, 상기 클라이언트의 인증 정보를 암호화하여 인증키를 생성하고,The login server encrypts the authentication information of the client and generates an authentication key when the authentication information transmitted from the client and the authentication information stored in the database match. 상기 데이타 서버는 상기 클라이언트로부터 전송되는 인증키를 복호화하여 인증 정보를 생성한 다음에, 생성된 인증 정보와 데이타 베이스에 저장된 인증 정보를 비교하고, 비교 결과에 따라 상기 클라이언트로 서버 인덱스를 전송하는 것을 특징으로 하는 동기화 시스템.The data server decrypts the authentication key transmitted from the client to generate authentication information, compares the generated authentication information with the authentication information stored in the database, and transmits a server index to the client according to the comparison result. Characterized by a synchronization system. 제1항 내지 제3항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 데이타 서버는 상기 클라이언트와의 데이타 동기화가 수행된 다음에, 상기 클라이언트와의 데이타 동기화를 원하는 다른 클라이언트로 동기화 명령을 전송하는 것을 특징으로 하는 데이타 동기화 시스템.And after the data synchronization with the client is performed, the data server transmits a synchronization command to another client that wants to synchronize data with the client. 제7항에 있어서,The method of claim 7, wherein 상기 클라이언트는 상기 데이타 서버로부터 데이타 동기화 명령이 전송되면, 상기 데이타 서버로 서버 인덱스를 요청하는 것을 특징으로 하는 데이타 동기화 시스템.And the client requests a server index to the data server when a data synchronization command is sent from the data server. 네트워크를 통하여 데이타 동기화를 하고자 하는 다수의 클라이언트, 네트워크를 통하여 클라이언트와 연결되어 있으며 상기 클라이언트별로 할당된 작업 폴더내에 상기 클라이언트의 데이타가 저장되어 있는 적어도 하나 이상의 데이타 서버 및 클라이언트 인증 처리를 수행하는 로그인 서버를 포함하는 시스템의 데이타 동기화 방법에서,A plurality of clients wishing to synchronize data via a network, at least one data server connected to the client via a network, and storing data of the client in a work folder allocated to each client, and a login server performing client authentication processing. In the data synchronization method of the system comprising: 상기 클라이언트에서 데이타 변경이 발생되면 상기 네트워크를 통하여 상기 로그인 서버로 로그인하는 단계;Logging in to the login server via the network when data change occurs in the client; 상기 로그인 서버가 상기 클라이언트의 인증 처리를 수행하고, 인증된 클라이언트에게 인증키 및 상기 클라이언트의 데이타가 저장되어 있는 데이타 서버의 주소를 전송하는 단계;Performing, by the login server, an authentication process of the client, and transmitting an authentication key and an address of a data server storing data of the client to an authenticated client; 상기 클라이언트가 상기 로그인 서버로부터 전송된 주소를 가지는 데이타 서버로 접속하여 서버 인덱스--여기서, 서버 인덱스는 작업 폴더내에 저장된 데이타의 목록-를 요청하는 단계;The client accessing a data server having an address sent from the login server and requesting a server index, wherein the server index is a list of data stored in a working folder; 상기 데이타 서버가 상기 서버 인덱스를 상기 클라이언트로 전송하는 단계; 및The data server sending the server index to the client; And 상기 클라이언트가 상기 서버 인덱스와 클라이언트 인덱스-여기서 클라이언트 인덱스는 클라이언트가 가지고 있는 데이타 목록-를 비교 분석하고, 분석 결과에 따라 상기 데이타 서버와의 데이타 동기화를 수행하는 단계The client comparing and analyzing the server index and the client index, where the client index is a list of data owned by the client and performing data synchronization with the data server according to the analysis result. 를 포함하는 데이타 동기화 방법.Data synchronization method comprising a. 제9항에 있어서,The method of claim 9, 상기 로그인하는 단계에서 상기 클라이언트는 설정 시간마다 상기 로그인 서버로 로그인을 요청하는 것을 특징으로 하는 데이타 동기화 시스템.In the logging in step, the client requests a login to the login server every set time. 제9항에 있어서,The method of claim 9, 상기 데이타 동기화를 수행하는 단계에서, 상기 클라이언트는 상기 서버 인덱스와 클라이언트 인덱스의 비교 결과에 따라 상기 데이타 서버와의 업로드 또는 다운 로드 또는 파일 딜리트를 선택적으로 수행하는 것을 특징으로 데이타 동기화 방법.In the performing of the data synchronization, the client selectively performs upload or download or file deletion with the data server according to a result of comparing the server index and the client index. 제9항 내지 제11항 중 어느 한 항에 있어서,The method according to any one of claims 9 to 11, 상기 데이타 서버가 상기 클라이언트와의 데이타 동기화가 수행된 다음에, 상기 클라이언트와의 데이타 동기화를 원하는 다른 클라이언트로 동기화 명령을 전송하는 단계; 및After the data server performs data synchronization with the client, sending a synchronization command to another client that wants to synchronize data with the client; And 상기 데이타 서버로부터 동기화 명령을 전송받은 클라이언트가 상기 로그인 서버로 로그인하는 단계Logging in to the login server when the client receives the synchronization command from the data server 를 더 포함하는 데이타 동기화 방법.Data synchronization method further comprising.
KR1020000035164A 2000-06-24 2000-06-24 Data synchronization system and method thereof KR20020003674A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020000035164A KR20020003674A (en) 2000-06-24 2000-06-24 Data synchronization system and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020000035164A KR20020003674A (en) 2000-06-24 2000-06-24 Data synchronization system and method thereof

Publications (1)

Publication Number Publication Date
KR20020003674A true KR20020003674A (en) 2002-01-15

Family

ID=19673769

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020000035164A KR20020003674A (en) 2000-06-24 2000-06-24 Data synchronization system and method thereof

Country Status (1)

Country Link
KR (1) KR20020003674A (en)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020033275A (en) * 2000-10-30 2002-05-06 정정호 Synchronize push service method and system for synchronizing of a data file between a local terminal and a server
KR20030068624A (en) * 2002-02-15 2003-08-25 홍정기 Method for synchronizing a information of a client based on the internet-network
KR100675476B1 (en) * 2004-07-09 2007-01-26 오종택 Automatic file update apparatus and method using wire/wireless hard
WO2007106234A1 (en) * 2006-03-03 2007-09-20 Microsoft Corporation Identifying changes to media-device contents
KR100864987B1 (en) * 2007-04-12 2008-10-22 디비코 주식회사 Client synchronization system and method for the same
KR101274553B1 (en) * 2011-03-11 2013-06-13 에스코어 주식회사 Classification and synchronization method of sync data
KR101461484B1 (en) * 2013-02-26 2014-11-18 한국항공우주산업 주식회사 Automatic Link and Batch Down/Upload Device for a Harness Drawings PLM DB and Controlling Method for the Same
CN108520016A (en) * 2018-03-21 2018-09-11 四川斐讯信息技术有限公司 Data storage method based on clock timer and Duo Tai upload servers and system
KR20200144768A (en) 2019-06-19 2020-12-30 주식회사 코비젼 Synchronizing system for public resources in multi-WEB server environment
CN112615918A (en) * 2020-12-16 2021-04-06 杭州迪普科技股份有限公司 Network management system and information synchronization method thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63245741A (en) * 1987-04-01 1988-10-12 Fujitsu Ltd Data synchronizing system
JPH103418A (en) * 1996-06-14 1998-01-06 Kyushu Nippon Denki Software Kk Data coincidence system between electronic computer systems
JP2000112803A (en) * 1998-09-30 2000-04-21 Fujitsu Ltd Automatic data updating system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63245741A (en) * 1987-04-01 1988-10-12 Fujitsu Ltd Data synchronizing system
JPH103418A (en) * 1996-06-14 1998-01-06 Kyushu Nippon Denki Software Kk Data coincidence system between electronic computer systems
JP2000112803A (en) * 1998-09-30 2000-04-21 Fujitsu Ltd Automatic data updating system

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020033275A (en) * 2000-10-30 2002-05-06 정정호 Synchronize push service method and system for synchronizing of a data file between a local terminal and a server
KR20030068624A (en) * 2002-02-15 2003-08-25 홍정기 Method for synchronizing a information of a client based on the internet-network
KR100675476B1 (en) * 2004-07-09 2007-01-26 오종택 Automatic file update apparatus and method using wire/wireless hard
WO2007106234A1 (en) * 2006-03-03 2007-09-20 Microsoft Corporation Identifying changes to media-device contents
US8769033B2 (en) 2006-03-03 2014-07-01 Microsoft Corporation Identifying changes to media-device contents
KR100864987B1 (en) * 2007-04-12 2008-10-22 디비코 주식회사 Client synchronization system and method for the same
KR101274553B1 (en) * 2011-03-11 2013-06-13 에스코어 주식회사 Classification and synchronization method of sync data
KR101461484B1 (en) * 2013-02-26 2014-11-18 한국항공우주산업 주식회사 Automatic Link and Batch Down/Upload Device for a Harness Drawings PLM DB and Controlling Method for the Same
CN108520016A (en) * 2018-03-21 2018-09-11 四川斐讯信息技术有限公司 Data storage method based on clock timer and Duo Tai upload servers and system
KR20200144768A (en) 2019-06-19 2020-12-30 주식회사 코비젼 Synchronizing system for public resources in multi-WEB server environment
CN112615918A (en) * 2020-12-16 2021-04-06 杭州迪普科技股份有限公司 Network management system and information synchronization method thereof

Similar Documents

Publication Publication Date Title
US10291686B2 (en) Managed peer-to-peer applications, systems and methods for distributed data access and storage
JP6581717B2 (en) Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
US7587467B2 (en) Managed peer-to-peer applications, systems and methods for distributed data access and storage
EP1751745B1 (en) Managed peer-to-peer applications, systems and methods for distributed data access and storage
US7917628B2 (en) Managed peer-to-peer applications, systems and methods for distributed data access and storage
US9191443B2 (en) Managed peer-to-peer applications, systems and methods for distributed data access and storage
US8793374B2 (en) Managed peer-to-peer applications, systems and methods for distributed data access and storage
CN101167069B (en) System and method for peer to peer synchronization of files
US8688797B2 (en) Managed peer-to-peer applications, systems and methods for distributed data access and storage
US20010037407A1 (en) System and method for managing user-specific data
CN101399729B (en) Management system and method for file download and upload
US20040143836A1 (en) System and method for sharing objects among two or more electronic devices
US20070143357A1 (en) System and method for efficient replication of and access to application specific environments and data
JP2018536207A (en) Synchronization protocol for multi-premises hosting of digital content items
US20080104661A1 (en) Managing Policy Settings for Remote Clients
KR20020003674A (en) Data synchronization system and method thereof
JP2008027202A (en) Session management method, server used for the same, session management program, and recording medium with recorded program
JP2019212223A (en) Information processing system and control method thereof
KR100538924B1 (en) Method for providing Web Service, Remote Storage Service and Remote Control Service based on Peer-to-Peer between a Plurality of Client Terminals and Personal Computers Operated as Server
KR20000047420A (en) Information transferring system
JP2002132560A (en) Backup system
KR100597586B1 (en) Data Synchronization method using Session Management
KR20010111413A (en) Method of controlling the remote data on the internet
TW200933381A (en) System and method for running a web-based application while offline
WO2003042874A9 (en) Systems and methods for indexing data in a network environment

Legal Events

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