KR20180089752A - Method and apparatus for sharing common editing documents - Google Patents
Method and apparatus for sharing common editing documents Download PDFInfo
- Publication number
- KR20180089752A KR20180089752A KR1020170014474A KR20170014474A KR20180089752A KR 20180089752 A KR20180089752 A KR 20180089752A KR 1020170014474 A KR1020170014474 A KR 1020170014474A KR 20170014474 A KR20170014474 A KR 20170014474A KR 20180089752 A KR20180089752 A KR 20180089752A
- Authority
- KR
- South Korea
- Prior art keywords
- clients
- command
- overload
- editing
- client
- Prior art date
Links
Images
Classifications
-
- G06F17/30165—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
-
- G06F17/24—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
Abstract
Description
본 발명은 공동 편집 문서를 공유하는 방법 및 장치에 관한 것으로서, 보다 상세하게는 공동으로 편집하는 문서를 효율적으로 공유할 수 있는 공동 편집 문서를 공유하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for sharing collaborative editing documents, and more particularly to a method and apparatus for sharing collaborative editing documents that can efficiently share collaboratively edited documents.
최근 통신 기술이 발달함에 따라, 인터넷을 통해 다양한 서비스가 제공되고 있다. 특히, 인터넷을 통해 대용량의 파일들이 이동되고 대량의 데이터가 송수신된다. 이에 따라, 인터넷을 통해 언제 어디서든지 다양한 파일을 공유하는 기술도 발달하게 되었다. As the communication technology has recently developed, various services are being provided through the Internet. In particular, a large amount of files are moved and a large amount of data is transmitted and received via the Internet. As a result, technologies for sharing various files at anytime and anywhere via the Internet have developed.
이와 같이 다양한 통신 기술 (예를 들어, 인터넷)을 기초로 단말기를 사용하는 사용자들이 가상의 저장소에 데이터 또는 파일을 저장하고 가상의 저장소를 통해 데이터 또는 파일을 주고 받고 공유도 할 수 있는 서비스를 클라우드 (cloud) 서비스라고 한다. 클라우드 서비스를 통해 사용자는 데이터 또는 파일을 자유롭게 사용할 수 있다. 구체적으로, 클라우드 서비스를 통해 사용자는 시간과 공간의 제약을 받지 않고 데이터 또는 파일을 다운로드 (download) 또는 업로드 (upload) 할 수 있고, 데이터 또는 파일을 다른 사용자들과 공유할 수도 있다. Users who use terminals based on various communication technologies (for example, the Internet) can store data or files in a virtual repository, exchange data and files via a virtual repository, called cloud service. Cloud services allow users to freely use data or files. Specifically, the cloud service allows a user to download or upload data or files without restriction of time and space, and to share data or files with other users.
이러한 클라우드 서비스는 데이터 또는 파일을 저장하고 공유하는 저장소인 공유 서버를 기반으로 제공된다. 구체적으로, 사용자들은 공유 서버를 통해 문서 파일을 저장 및 공유하고, 사용자들은 각자의 단말기를 통해 문서 파일을 편집할 수 있다. These cloud services are based on a shared server, a repository for storing and sharing data or files. Specifically, users can store and share document files through a shared server, and users can edit document files through their respective terminals.
다만, 사용자들이 각자의 단말기에서 공유하는 공동 편집 문서를 편집하는 경우, 공유 서버는 사용자들의 단말기 각각에서 입력하는 편집 명령어를 수신하여, 편집 명령어를 공동 편집 문서에 반영하고 공동 편집 문서를 갱신하기 위한 엔진 (engine) 을 포함할 수 있다. 이에 따라, 공동 편집 문서를 공유하는 단말기의 수가 증가함에 따라 공유 서버는 공동 편집 문서를 편집하는 내용을 반영하기 위해 요구되는 엔진을 더 많이 필요로 하고, 많은 엔진을 사용함에 따라 공유 서버가 처리해야 할 데이터의 부하도 증가한다. 또한, 공동 편집 문서를 편집하기 위한 공유 서버에 연결되고, 공동 편집 문서를 편집하고자 하는 복수의 단말기들 각각의 성능은 상이할 수 있다. 즉, 공동 편집 문서를 편집하는 단말기마다 공유 서버로부터 전송되는 편집 명령어를 적용하여 공동 편집 문서를 업데이트하는 속도가 상이할 수 있다. 이에 따라, 공동 편집 문서를 편집하는 단말기들의 성능 및 편집 동작의 차이로 인해 단말기들에서의 과부하 문제가 발생할 수 있다. 또한, 단말기들에서의 과부하로 인해 단말기에서 적용되지 않은 다른 편집 명령어가 누적되거나 단말기 간의 문서 동기화 문제로 편집 충돌이 발생하여, 편집 내용이 유실되고 클라우드 서비스의 질이 저하되는 문제점이 발생할 수 있다. However, when the users edit the common editing document shared by their terminals, the sharing server receives the editing command input from each terminal of the users, reflects the editing command in the common editing document, and updates the common editing document And may include an engine. As a result, as the number of terminals sharing a collaborative editing document increases, the shared server needs more engines to reflect the editing of the collaborative editing document, and the sharing server needs to process more engines The load of data to be transmitted also increases. Also, the performance of each of a plurality of terminals connected to a shared server for editing a co-edited document and editing the co-edited document may be different. That is, the rate of updating the common editing document may be different by applying the editing command transmitted from the shared server to each terminal that edits the common editing document. Accordingly, an overload problem may occur in the terminals due to differences in performance and editing operation of the terminals editing the common editing document. In addition, due to overload in the terminals, other editing commands that are not applied in the terminal may accumulate or an editing conflict may occur due to a document synchronization problem between the terminals, resulting in loss of editing contents and degradation of the quality of the cloud service.
따라서, 공유 및 편집을 위한 공동 편집 문서를 편집하는 단말기 각각에서의 부하를 감소시키고 효율적으로 공동 편집 문서를 공유하고 편집할 수 있는 공동 편집 문서를 공유하는 방법을 제공할 필요성이 증대되었다. Accordingly, there is a growing need to provide a method for sharing a collaborative editing document that can reduce the load on each terminal for editing a common editing document for sharing and editing, and efficiently share and edit the common editing document.
본 발명이 해결하고자 하는 과제는 명령어를 전달하는 서버가 클라이언트에서의 과부하 발생 여부를 판단함으로써, 클라이언트에서의 과부하를 억제하도록 편집 명령어의 송신을 제어하는 공동 편집 문서를 공유하는 방법 및 장치를 제공하는 것이다.SUMMARY OF THE INVENTION It is an object of the present invention to provide a method and apparatus for sharing a common editing document that controls transmission of an editing command so as to suppress an overload in a client by determining whether an overload of a client occurs, will be.
본 발명이 해결하고자 하는 다른 과제는 클라이언트에서의 과부하 상태를 실시간으로 파악함으로써, 클라이언트의 과부하를 방지하고, 클라이언트의 과부하로 인한 공동 편집 문서에서의 편집 내용 유실을 방지할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공하는 것이다.Another problem to be solved by the present invention is to provide a method and system for sharing a collaborative editing document that can prevent an overload of a client and prevent loss of editing contents in a common editing document due to an overload of a client, And to provide a method and an apparatus for performing the method.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems of the present invention are not limited to the above-mentioned problems, and other problems not mentioned can be clearly understood by those skilled in the art from the following description.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치는 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 복수의 클라이언트 각각에 송신하는 명령어 전달 서버를 포함하고, 명령어 전달 서버는, 복수의 클라이언트 각각에서의 편집 명령어의 수신에 대응하여, 복수의 클라이언트 각각의 편집 명령어 큐 사이즈 (Queue Size) 정보를 수신하고, 큐 사이즈 정보를 기초로 복수의 클라이언트에서 과부하의 발생 여부를 판단하고, 과부하가 발생한 경우, 복수의 클라이언트 각각에 편집 제한 명령어를 송신한다.According to an aspect of the present invention, there is provided an apparatus for sharing a collaborative editing document, the apparatus comprising: a receiving unit configured to receive an editing command from a plurality of clients having a common editing document file, And a command delivery server for transmitting an edit command to each of a plurality of clients, wherein the command delivery server is configured to receive an edit command queue size (Queue Size) information of each of a plurality of clients Judges whether or not an overload occurs in a plurality of clients based on the queue size information, and transmits an edit restriction instruction to each of a plurality of clients when an overload occurs.
본 발명의 다른 특징에 따르면, 명령어 전달 서버는, 과부하의 발생 여부를 판단하는 클라이언트 과부하 판단부를 더 포함할 수 있다.According to another aspect of the present invention, the command delivery server may further include a client overload determination unit that determines whether an overload occurs.
본 발명의 또 다른 특징에 따르면, 클라이언트 과부하 판단부는, 미리 결정된 클라이언트 과부하 판단 로직을 포함하고, 미리 결정된 클라이언트 과부하 판단 로직은 복수의 과부하 판단 조건을 포함할 수 있다.According to another aspect of the present invention, the client overload determination unit includes predetermined client overload determination logic, and the predetermined client overload determination logic may include a plurality of overload determination conditions.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는, 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 복수의 클라이언트에서 과부하가 발생한 것으로 판단할 수 있다.According to another aspect of the present invention, the command delivery server can determine that overload occurs in a plurality of clients when predetermined client overload determination logic is satisfied.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는, 과부하가 해소된 경우, 복수의 클라이언트 각각에 편집 제한 해제 명령어를 송신할 수 있다.According to another aspect of the present invention, the command delivery server can transmit an edit restriction release command to each of a plurality of clients when the overload is eliminated.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는, 복수의 클라이언트 중 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 과부하의 해소 여부를 판단할 수 있다.According to another aspect of the present invention, the command delivery server can determine whether the overload is eliminated based on the client having the largest queue size information among the plurality of clients.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법은 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 수신한 편집 명령어를 복수의 클라이언트 각각에 송신하는 단계, 복수의 클라이언트 각각에서의 편집 명령어의 수신에 대응하여, 복수의 클라이언트 각각의 큐 사이즈 정보를 수신하는 단계, 큐 사이즈 정보를 기초로 복수의 클라이언트에서 과부하의 발생 여부를 판단하는 단계, 및 과부하가 발생한 경우, 복수의 클라이언트 각각에 편집 제한 명령어를 송신하는 단계를 포함한다.According to an aspect of the present invention, there is provided a method of sharing a common editing document, the method comprising: transmitting an editing command word received from a plurality of clients having a common editing document file to each of a plurality of clients; Receiving queue size information of each of a plurality of clients in response to receipt of an edit command in each of the clients of the plurality of clients, determining whether overload occurs in a plurality of clients based on the queue size information, And sending an edit restriction command to each of the plurality of clients.
본 발명의 다른 특징에 따르면, 과부하가 해소된 경우, 복수의 클라이언트 각각에 편집 제한 해제 명령어를 송신하는 단계를 더 포함할 수 있다.According to another aspect of the present invention, the method may further include transmitting an edit restriction release command to each of the plurality of clients when the overload is eliminated.
본 발명의 또 다른 특징에 따르면, 편집 제한 해제 명령어를 송신하는 단계는, 복수의 클라이언트 중 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 과부하의 해소 여부를 판단하는 단계를 포함할 수 있다.According to still another aspect of the present invention, the step of transmitting the edit restriction release command may include determining whether overload is eliminated based on the client having the largest queue size information among the plurality of clients.
본 발명의 또 다른 특징에 따르면, 과부하의 발생 여부를 판단하는 단계는, 큐 사이즈 정보를 기초로 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 복수의 클라이언트에서 과부하가 발생한 것으로 판단하는 단계일 수 있다. According to another aspect of the present invention, the step of determining whether an overload occurs may be a step of determining that a plurality of clients are overloaded when a predetermined client overload determination logic is satisfied based on the queue size information .
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법을 제공하는 명령어들을 저장하는 컴퓨터 판독 가능 기록매체는 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 수신한 편집 명령어를 복수의 클라이언트 각각에 송신하고, 복수의 클라이언트 각각에서의 편집 명령어의 수신에 대응하여, 복수의 클라이언트 각각의 큐 사이즈 정보를 수신하고, 큐 사이즈 정보를 기초로 복수의 클라이언트에서 과부하의 발생 여부를 판단하고, 과부하가 발생한 경우, 복수의 클라이언트 각각에 편집 제한 명령어를 송신한다.According to an aspect of the present invention, there is provided a computer-readable recording medium storing a command for providing a method for sharing a common editing document, And a controller for receiving the queue size information of each of the plurality of clients in response to the reception of the edit command in each of the plurality of clients, And transmits an edit restriction instruction to each of the plurality of clients when an overload occurs.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.The details of other embodiments are included in the detailed description and drawings.
본 발명은 명령어를 전달하는 서버가 클라이언트에서의 과부하 발생 여부를 판단함으로써, 클라이언트에서의 과부하를 억제하도록 편집 명령어의 송신을 제어할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공할 수 있는 효과가 있다.The present invention can provide a method and an apparatus for sharing a common editing document that can control the transmission of an editing command so as to suppress an overload in a client by determining whether an overload of a client occurs, .
본 발명은 클라이언트에서의 과부하 상태를 실시간으로 파악함으로써, 클라이언트의 과부하를 방지하고, 클라이언트의 과부하로 인한 공동 편집 문서에서의 편집 내용 유실을 방지할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공할 수 있는 효과가 있다.The present invention provides a method and apparatus for sharing a common editing document that can prevent an overload of a client and prevent a loss of editing contents in a common editing document due to an overload of a client by grasping an overload state in a client in real time There is an effect that can be done.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.The effects according to the present invention are not limited by the contents exemplified above, and more various effects are included in the specification.
도 1은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치와 공유 서버, 바로가기 파일 서버 및 클라이언트 사이의 관계를 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 따라 공동 편집 문서 파일을 공유하기 위한 절차를 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이다.
도 4는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 큐 사이즈 정보를 수신하는 단계를 예시적으로 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 명령어 전달 서버에서의 클라이언트 과부하 판단 로직을 예시적으로 도시한 것이다.
도 6은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 클라이언트의 편집을 제한하는 과정을 예시적으로 도시한 것이다.
도 7은 본 발명의 다른 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 클라이언트의 편집 제한을 해제하는 과정을 예시적으로 도시한 것이다.FIG. 1 illustrates a relationship between a device sharing a common editing document, a shared file server, a shortcut file server, and a client according to an embodiment of the present invention.
FIG. 2 illustrates a procedure for sharing a common editing document file according to a method of sharing a common editing document according to an embodiment of the present invention.
FIG. 3 illustrates a configuration of a device sharing a common editing document according to an embodiment of the present invention and a relationship between clients.
FIG. 4 illustrates an exemplary step of receiving queue size information by a method of sharing a common editing document according to an embodiment of the present invention.
5 illustrates an exemplary client overload determination logic in a command delivery server according to an embodiment of the present invention.
FIG. 6 exemplifies a process of limiting editing of a client by a method of sharing a common editing document according to an embodiment of the present invention.
FIG. 7 exemplarily shows a process of releasing an editing restriction of a client by a method of sharing a common editing document according to another embodiment of the present invention.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우 '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다. The shapes, sizes, ratios, angles, numbers, and the like disclosed in the drawings for describing the embodiments of the present invention are illustrative, and thus the present invention is not limited thereto. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. Where the terms "comprises", "having", "done", and the like are used in this specification, other portions may be added unless "only" is used. Unless the context clearly dictates otherwise, including the plural unless the context clearly dictates otherwise.
구성요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.In interpreting the constituent elements, it is construed to include the error range even if there is no separate description.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.Although the first, second, etc. are used to describe various components, these components are not limited by these terms. These terms are used only to distinguish one component from another. Therefore, the first component mentioned below may be the second component within the technical spirit of the present invention.
별도로 명시하지 않는 한 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. Like reference numerals refer to like elements throughout the specification unless otherwise specified.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.It is to be understood that each of the features of the various embodiments of the present invention may be combined or combined with each other partially or entirely and technically various interlocking and driving is possible as will be appreciated by those skilled in the art, It may be possible to cooperate with each other in association.
이하, 본 명세서에서 사용되는 용어에 대해 정의한다.Hereinafter, terms used in this specification will be defined.
본 명세서에서 공동 편집 문서 파일이란, 클라이언트가 공동으로 편집하고자 하는 문서 파일로서, 편집 명령어가 적용되어 갱신되며, 클라이언트가 공유하는 편집용 문서 파일을 의미한다. 여기서, 클라이언트는 공동 편집 문서를 공유하는 장치에 연결된다. 이러한 공동 편집 문서 파일은 공동 편집 문서를 공유하는 장치에 저장되어 있다가 클라이언트가 문서 파일의 공유를 요청하는 경우 클라이언트로 송신될 수 있다.In the present specification, the common editing document file means a document file to be edited jointly by the client, which is updated with an editing command applied thereto, and is a document file for editing shared by clients. Here, the client is connected to a device sharing a common editing document. Such a collaborative editing document file may be stored in a device sharing a collaborative editing document, and then transmitted to the client when the client requests sharing of the document file.
본 명세서에서 편집 명령어란, 클라이언트가 공유하는 문서를 편집하는 명령어로서, 공동 편집 문서 파일에 입력되는 다양한 명령어를 포함한다. 예를 들어, 편집 명령어는 공동 편집 문서의 적어도 일부 내용을 삭제하는 삭제 명령어 및 그림과 같은 객체를 삽입하는 삽입 명령어 등을 포함할 수 있다. 임의의 클라이언트에서 입력한 편집 명령어는 공동 편집 문서를 공유하는 장치로 송신된 후 공동 편집 문서를 공유하는 장치에 연결된 모든 클라이언트들로 송신될 수 있다. 이와 같이, 복수의 클라이언트들이 입력한 편집 명령어가 공동 편집 문서를 공유하는 장치로부터 복수의 클라이언트들 각각에 동시에 전송되는 것을 편집 명령어 브로드캐스팅(broadcasting)이라고 할 수 있다.In the present specification, an edit command is an instruction for editing a document shared by a client, and includes various commands to be inputted into a common editing document file. For example, the edit command may include a delete command for deleting at least some contents of the co-edited document, an insert command for inserting an object such as a picture, and the like. An editing command entered from any client may be transmitted to all clients connected to the device sharing the common editing document after being transmitted to the device sharing the common editing document. As described above, it is possible to say that editing commands broadcasted by a plurality of clients are simultaneously transmitted to each of a plurality of clients from a device sharing a common editing document.
본 명세서에서 명령어 리스트란, 편집 명령어를 수신하여 미리 정해진 규칙에 따라 수신한 편집 명령어를 저장한 리스트이다. 명령어 리스트는 클라이언트가 편집 명령어를 수신한 순서대로 저장하여 생성될 수 있고, 명령어 저장 서버가 편집 명령어를 수신한 순서대로 저장하여 생성될 수도 있다. 또는, 명령어 리스트는 공동 편집 문서 파일의 갱신 조건이 충족되기 전까지 수신된 편집 명령어를 저장한 리스트일 수 있다.In this specification, the command list is a list storing editing commands received in accordance with a predetermined rule upon receipt of an editing command. The command list may be generated by storing the order of the editing commands received by the client and may be generated by storing the command in the order that the command storage server received the editing command. Alternatively, the command list may be a list storing edit commands received until the update condition of the common editing document file is satisfied.
도 1은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치와 공유 서버, 바로가기 파일 서버 및 클라이언트 사이의 관계를 도시한 것이다.FIG. 1 illustrates a relationship between a device sharing a common editing document, a shared file server, a shortcut file server, and a client according to an embodiment of the present invention.
도 1을 참조하면, 공동 편집 문서를 공유하는 장치 (이하, 공동 편집 문서 공유 장치) (100) 는 문서 저장 서버 (110), 명령어 전달 서버 (120) 및 명령어 저장 서버 (130) 를 포함한다. 이에, 공동 편집 문서를 공유하는 장치 (100) 는 공동 편집 문서 파일을 편집 명령어와 병합하여 갱신된 공동 편집 문서를 자동 저장하는 엔진을 갖는 별도의 서버를 포함하지 않는다. Referring to FIG. 1, a device sharing a common editing document (hereinafter referred to as a common editing document sharing device) 100 includes a
도 1을 참조하면, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 와 통신 가능하도록 연결될 수 있다. 또한, 공동 편집 문서 공유 장치 (100) 는 공유 서버 (1000) 및 바로가기 파일 서버 (1200) 와도 통신 가능하도록 연결될 수 있다.1, the collaborative editing
문서 저장 서버 (110) 는 공유 서버 (1000) 에 업로드된 문서 파일을 기초로 생성된 공동 편집 문서 파일을 복수의 클라이언트 (900) 로 송신한다. 즉, 문서 저장 서버 (110) 는 공동 편집 문서 파일 및 갱신 공동 편집 문서 파일을 저장하고, 복수의 클라이언트 (900) 에 공동 편집 문서 파일 및 갱신 공동 편집 문서 파일을 제공할 수 있다.The
명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 복수의 클라이언트 (900) 각각으로 송신한다. 예를 들어, 명령어 전달 서버 (120) 는 제1 클라이언트 (901) 로부터 수신한 편집 명령어를 복수의 클라이언트 (900) 각각에 모두 송신한다. 즉, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 별도로 저장하지 않고 다시 복수의 클라이언트 (900) 전체에 송신한다. 또한, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 명령어 저장 서버 (130) 로 전송한다. 이에 따라, 명령어 전달 서버 (120) 를 통해 편집 명령어는 서버에서 별도의 저장 공간을 차지하지 않으며, 클라이언트 모두에 신속하게 전달될 수 있다. The
또한, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 순서대로 편집 명령어를 복수의 클라이언트 (900) 전체에 송신할 수 있다. 예를 들어, 제1 클라이언트 (901) 로부터 제1 편집 명령어를 먼저 수신하고, 이후 제2 클라이언트 (902) 로부터 제2 편집 명령어를 다음으로 수신하는 경우, 명령어 전달 서버 (120) 는 제1 편집 명령어를 먼저 복수의 클라이언트 (900) 각각에 동시에 송신하고, 그 다음으로 수신된 제2 편집 명령어를 복수의 클라이언트 (900) 각각에 동시에 송신한다. 이에 따라, 명령어 전달 서버 (120) 는 편집 명령어를 수신한 순서대로 동시에 복수의 클라이언트 (900) 에 송신하여, 복수의 클라이언트 (900) 가 실시간으로 공동 편집 문서 파일을 편집할 수 있다. In addition, the
명령어 저장 서버 (130) 는 명령어 전달 서버 (120) 로부터 전송된 편집 명령어들을 저장한다. 구체적으로, 명령어 저장 서버 (130) 는 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 저장한다. 예를 들어, 명령어 저장 서버 (130) 는 명령어 전달 서버 (120) 가 편집 명령어를 전송한 순서대로 저장할 수 있다. 여기서, 명령어 전달 서버 (120) 가 전송한 순서는 명령어 전달 서버 (120) 가 편집 명령어를 수신한 순서와 동일할 수 있다. 나아가, 명령어 저장 서버 (130) 는 편집 명령어를 수신한 순서대로 저장하여 명령어 리스트를 생성하고, 명령어 리스트를 저장할 수 있다. 이에 따라, 복수의 클라이언트 (900) 가 공동 편집 문서를 공유하는 장치와의 접속이 끊기더라도, 명령어 저장 서버 (130) 에 의해 편집 명령어들이 손실되는 것이 방지되고, 복수의 클라이언트 (900) 가 편집 명령어를 다시 수신하여 갱신 공동 편집 문서 파일을 생성할 수 있다.The
도 1을 참조하면, 복수의 클라이언트 (900) 는 제1 클라이언트 (901), 제2 클라이언트 (902) 및 제3 클라이언트 (903) 를 포함한다. 도 1에는 복수의 클라이언트 (900) 가 3개의 클라이언트를 포함하는 것으로 도시되었으나, 복수의 클라이언트 (900) 에 포함되는 클라이언트의 수는 이에 제한되지 않는다. 바람직하게는 복수의 클라이언트 (900) 는 10개 이상의 클라이언트를 포함할 수 있다. Referring to FIG. 1, a plurality of
도 1을 참조하면, 복수의 클라이언트 (900) 는 공유 서버 (1000) 에 공동 편집하고자 하는 문서 파일을 업로드할 수 있다. 구체적으로, 복수의 클라이언트 (900) 중 임의의 하나의 클라이언트, 예를 들어, 제1 클라이언트 (901) 가 공유 서버 (1000) 에 공유하고자 하는 문서 파일을 업로드할 수 있다. 이하, 제1 클라이언트 (901) 가 공유 서버 (1000) 에 문서 파일을 업로드한 경우를 기준으로 공동 편집 문서를 공유하는 방법을 설명한다.Referring to FIG. 1, a plurality of
또한, 복수의 클라이언트 (900) 는 명령어 전달 서버 (120) 로부터 전송된 편집 명령어들을 저장한다. 특히, 복수의 클라이언트 (900) 는 명령어 전달 서버 (120) 가 전송한 순서대로 편집 명령어들을 저장할 수 있다. 여기서, 명령어 전달 서버 (120) 가 전송한 순서는 명령어 전달 서버 (120) 가 편집 명령어를 수신한 순서와 동일할 수 있다. 나아가, 복수의 클라이언트 (900) 는 편집 명령어를 수신한 순서대로 저장하여 명령어 리스트를 생성할 수도 있다.In addition, a plurality of
나아가, 복수의 클라이언트 (900) 각각은 공동 편집 문서 파일 및 편집 명령어를 기초로 갱신 공동 편집 문서 파일을 생성하는 자동 저장 엔진 (engine) 을 포함한다. Further, each of the plurality of
또한, 복수의 클라이언트 (900) 각각은 클라이언트의 성능이 상이할 수 있다. 즉, 복수의 클라이언트 (900) 각각은 수신하는 편집 명령어를 공동 편집 문서에 반영하여 갱신 공동 편집 문서 파일을 생성하는 속도에서 상이할 수 있다. 이로 인해, 복수의 클라이언트 (900) 각각이 편집 명령어를 순간적으로 과도하게 수신하는 경우, 갱신 공동 편집 문서 파일을 생성하거나 편집 명령어를 공동 편집 문서에 반영하는 속도가 느린 클라이언트는 과부하 상태가 될 수 있다. 이에, 과부하 상태에 있는 클라이언트에는 수신한 편집 명령어가 계속 누적될 수 있으며, 과부하 상태에 있지 않은 클라이언트에서의 갱신 공동 편집 문서 파일은 과부하 상태에 있는 클라이언트에서의 갱신 공동 편집 문서 파일과 상이해질 수 있다. 나아가, 복수의 클라이언트 (900) 에서 갱신 공동 편집 문서 파일의 동기화 문제가 발생할 수 있으며, 이후 계속 누적되는 편집 명령어를 반영하는 과정에서 갱신 공동 편집 문서 파일의 편집 충돌이 발생하여 편집 내용이 유실될 수도 있다. 이와 같은 문제점을 억제할 수 있도록 복수의 클라이언트 (900) 중 미리 결정된 과부하 상태에 있는 클라이언트가 존재하는 경우, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 에 편집 제한 명령어를 송신한다. 과부하 상태에 있는 복수의 클라이언트 (900) 에 대한 공동 편집 문서 공유 장치 (100) 의 구체적인 동작에 대해서는 도 2 내지 도 6을 참조하여 후술한다. In addition, each of the plurality of
도 1을 참조하면, 공유 서버 (1000) 는 공동 편집 문서 공유 장치 (100) 에 문서 파일에 관한 정보를 제공할 수 있다. 예를 들어, 공유 서버 (1000) 는 문서 파일을 복사하여 공동 편집 문서 공유 장치 (100) 에 공동 편집 문서 파일을 제공할 수 있다.Referring to FIG. 1, a shared
도 1을 참조하면, 바로가기 파일 서버 (1200) 는 공유 서버 (1000) 와 통신 가능하도록 연결된다. 구체적으로, 바로가기 파일 서버 (1200) 는 공유 서버 (1000) 에 업로드된 문서 파일을 기초로 바로가기 파일을 생성한다. 예를 들어, 제1 클라이언트 (901) 가 문서 파일을 다른 클라이언트들과 공유하고자 하는 공유 신호를 공유 서버 (1000) 가 수신하는 경우, 바로가기 파일 서버 (1200) 는 업로드된 문서 파일을 기초로 바로가기 파일을 생성한다. Referring to FIG. 1, a
이에 따라, 편집 명령어의 전달은 공동 편집 문서 공유 장치 (100) 에 의해 실행되고, 공동 편집 문서 파일의 갱신은 복수의 클라이언트 (900) 각각에 의해 실행된다. 즉, 공동 편집 문서 공유 장치 (100) 는 편집 명령어만을 복수의 클라이언트 (900) 에 전달하고, 별도의 공동 편집 문서 파일을 갱신하지 않는다. 이에, 복수의 클라이언트 (900) 각각의 성능에 따라 공동 편집 문서 파일의 갱신 속도가 상이해질 수 있다. 나아가, 갱신 공동 편집 문서 파일의 생성 속도가 상이해짐에 따라, 복수의 클라이언트 (900) 각각에서 수신한 편집 명령어를 처리하는 속도도 상이해지고, 공동 편집 문서 파일의 갱신 속도가 느린 클라이언트는 수신한 편집 명령어가 누적되어 과부하 상태가 될 수 있다. 이에, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 에 편집 명령어를 송신하고 복수의 클라이언트 (900) 로부터 과부하 상태를 체크할 수 있는 정보를 수신하여, 복수의 클라이언트 (900) 가 과부하 상태에 있지 않도록 미리 제어할 수 있다. 이에 따라, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 의 과부하 상태를 억제하고, 공동 편집 문서 파일에서의 편집 명령어의 충돌 및 편집 내용 유실을 방지할 수 있다. Accordingly, the delivery of the edit command is executed by the common editing
공동 편집 문서 공유 장치 (100) 의 각 구성들은 설명의 편의상 개별적인 구성으로 도시한 것일 뿐, 구현 방법에 따라 하나의 구성으로 구현되거나 하나의 구성이 2 이상의 구성으로 분리될 수 있다.Each component of the co-edited
도 2는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 따라 공동 편집 문서 파일을 공유하기 위한 절차를 도시한 것이다. 도 3은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이다. 도 4는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 큐 사이즈 정보를 수신하는 단계를 예시적으로 도시한 것이다. 도 5는 본 발명의 일 실시예에 따른 명령어 전달 서버에서의 클라이언트 과부하 판단 로직을 예시적으로 도시한 것이다. 도 6은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 클라이언트의 편집을 제한하는 과정을 예시적으로 도시한 것이다. 설명의 편의를 위해 도 1을 참조하여 설명한다.FIG. 2 illustrates a procedure for sharing a common editing document file according to a method of sharing a common editing document according to an embodiment of the present invention. FIG. 3 illustrates a configuration of a device sharing a common editing document according to an embodiment of the present invention and a relationship between clients. FIG. 4 illustrates an exemplary step of receiving queue size information by a method of sharing a common editing document according to an embodiment of the present invention. 5 illustrates an exemplary client overload determination logic in a command delivery server according to an embodiment of the present invention. FIG. 6 exemplifies a process of limiting editing of a client by a method of sharing a common editing document according to an embodiment of the present invention. Will be described with reference to Fig. 1 for convenience of explanation.
공동 편집 문서 공유 장치 (100) 에서 명령어 전달 서버 (120) 는 공동 편집 문서 파일을 갖는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 복수의 클라이언트 (900) 각각에 송신한다 (S210). In the co-edited
먼저, 도 3을 참조하면, 문서 저장 서버 (110) 는 공동 편집 문서 파일을 저장하고, 공동 편집 문서 공유 장치 (100) 에 연결되어 공동 편집을 요청한 복수의 클라이언트 (900) 각각에 공동 편집 문서 파일을 송신한다. 구체적으로, 복수의 클라이언트 (900) 가 문서 파일을 공유하고자 하는 경우, 문서 저장 서버 (110) 는 공유 요청한 문서 파일에 대응하는 공동 편집 문서 파일을 클라이언트에 송신할 수 있다. 3, the
또한, 문서 저장 서버 (110) 는 복수의 공동 편집 문서 파일을 저장할 수 있다. 예를 들어, 문서 저장 서버 (110) 가 제1 공동 편집 문서 파일 (111) 을 저장하고 있는 상태에서, 클라이언트의 요청에 의해 새로운 공동 편집 문서 파일인 제2 공동 편집 문서 파일 (112) 이 생성되면 문서 저장 서버 (110) 는 생성된 제2 공동 편집 문서 파일 (112) 을 추가로 저장한다. 이에 따라, 문서 저장 서버 (110) 는 공유 서버에 업로드된 문서 파일을 기초로 생성된 공동 편집 문서 파일 및 갱신 공동 편집 문서 파일을 모두 저장할 수 있다.In addition, the
도 3에서 복수의 클라이언트 (900) 는 '시드 1'이라고 표시된 공동 편집 문서 파일을 공유하면서, 이에 대한 편집 명령어를 입력하여 공동 편집 문서 파일을 편집하는 구성이 예시적으로 도시되어 있다.In FIG. 3, a plurality of
도 3을 참조하면, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 동시에 복수의 클라이언트 (900) 전체에 송신한다. 여기서, 명령어 전달 서버 (120) 는 공동 편집 문서 파일을 갖는 복수의 클라이언트 (900) 로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 복수의 클라이언트 (900) 각각에 송신한다. 또한, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 저장하지 않고 곧바로 복수의 클라이언트 (900) 전체에 송신한다. 3, the
이어서, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 각각에서의 편집 명령어의 수신에 대응하여, 복수의 클라이언트 (900) 각각의 큐 사이즈 (QS; Queue Size) 정보를 수신한다 (S220). Subsequently, the
도 4를 참조하면, 명령어 전달 서버 (120) 는 과부하의 발생 여부를 판단하는 클라이언트 과부하 판단부 (420) 를 포함한다. 여기서, 클라이언트 과부하 판단부 (420) 는 미리 결정된 클라이언트 과부하 판단 로직을 포함하고, 미리 결정된 클라이언트 과부하 판단 로직은 복수의 과부하 판단 조건을 포함한다. 클라이언트 과부하 판단부 (420) 가 포함하는 과부하 판단 로직에 대해서는 도 5를 참조하여 후술한다. Referring to FIG. 4, the
또한, 명령어 전달 서버 (120) 가 송신한 편집 명령어를 수신한 복수의 클라이언트 (900) 는 편집 명령어를 수신한 결과에 대응하여 복수의 클라이언트 (900) 의 상태를 알려주는 큐 사이즈 정보를 명령어 전달 서버 (120) 에 송신한다. 여기서, 큐 사이즈 정보는 복수의 클라이언트 (900) 각각이 편집 명령어를 수신한 순간 클라이언트의 큐 (Queue) 에 누적되어 있는 편집 명령어의 개수를 의미한다. 즉, 복수의 클라이언트 (900) 각각은 편집 명령어를 수신한 순간에 공동 편집 문서 파일에 적용되지 않고 저장되어 있는 편집 명령어의 개수를 명령어 전달 서버 (120) 에 알려줄 수 있다. The plurality of
이에 따라, 명령어 전달 서버 (120) 는 수신한 큐 사이즈 정보를 기초로 복수의 클라이언트 (900) 중 과부하 상태에 있는 클라이언트가 존재하는지 여부를 판단할 수 있다. Accordingly, the
도 4 및 도 5를 참조하면, 명령어 전달 서버 (120) 는 큐 사이즈 정보를 기초로 복수의 클라이언트 (900) 에서 과부하의 발생 여부를 판단한다 (S230).Referring to FIGS. 4 and 5, the
구체적으로, 명령어 전달 서버 (120) 에서 클라이언트 과부하 판단부 (420) 는 복수의 과부하 판단 조건 (421 내지 424) 을 기초로 미리 결정된 클라이언트 과부하 판단 로직을 통해 복수의 클라이언트 (900) 에서 과부하가 발생했는지 여부를 판단할 수 있다. 즉, 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 에서 과부하가 발생한 것으로 판단할 수 있다.More specifically, in the
예를 들어, 제1 과부하 판단 조건 (421) 은 정상 상태 (normal state) 인 클라이언트 비율이 미리 결정된 비율 이하일 경우를 의미할 수 있고, 제2 과부하 판단 조건 (422) 은 경고 상태 (warning state) 인 클라이언트가 미리 결정된 개수 이상인 경우를 의미할 수 있고, 제3 과부하 판단 조건 (423) 은 심각 상태 (critical state) 인 클라이언트가 미리 결정된 개수 이상인 경우를 의미할 수 있고, 제4 과부하 판단 조건 (424) 은 최고 부하를 갖는 클라이언트의 큐 사이즈 (QS) 가 미리 결정된 개수 이상인 경우를 의미할 수 있다. For example, the first
한편, 도 5에서는 미리 결정된 클라이언트 과부하 판단 로직이 4개 이상의 과부하 판단 조건 (421 내지 424) 을 포함하는 것으로 도시되었으나, 미리 결정된 클라이언트 과부하 판단 로직이 포함하는 과부하 판단 조건의 개수는 이에 제한되지 않으며, 미리 결정된 클라이언트 과부하 판단 로직은 적어도 하나 이상의 과부하 판단 조건을 포함할 수 있다. 과부하 판단 조건에서, 정상 상태 (normal state) 는 복수의 클라이언트 (900) 중 임의의 클라이언트의 큐 사이즈 정보가 10개 미만인 경우를 의미하고, 경고 상태 (warning state) 는 복수의 클라이언트 (900) 중 임의의 클라이언트의 큐 사이즈 정보가 10개 이상 30개 미만인 경우를 의미하고, 심각 상태 (critical state) 는 복수의 클라이언트 (900) 중 임의의 클라이언트의 큐 사이즈 정보가 30개 이상인 경우를 의미한다. 5, although the predetermined client overload determination logic includes four or more
여기서, 미리 결정된 클라이언트 과부하 판단 로직은 복수의 과부하 판단 조건 (421 내지 424) 이 'or' 연산이나 'and' 연산으로 조합된 로직일 수 있다. 미리 결정된 클라이언트 과부하 판단 로직은 제1 과부하 판단 조건 (421) 내지 제4 과부하 판단 조건 (424) 중 어느 하나만 만족하는 경우에도 복수의 클라이언트 (900) 에 과부하가 발생한 것으로 판단하도록 설정될 수 있고, 제1 과부하 판단 조건 (421) 내지 제4 과부하 판단 조건 (424) 이 모두 만족하는 경우에만 복수의 클라이언트 (900) 에 과부하가 발생한 것으로 판단하도록 설정될 수도 있으며, 제1 과부하 판단 조건 (421) 내지 제4 과부하 판단 조건 (424) 중 선택된 조건들을 만족하는 경우 복수의 클라이언트 (900) 에 과부하가 발생한 것으로 판단하도록 설정될 수도 있다. 예를 들어, 미리 결정된 클라이언트 과부하 판단 로직은 경고 상태 클라이언트가 2개 이상이거나 최고 부하를 갖는 클라이언트의 큐 사이즈가 20개 이상인 경우로 설정될 수 있다. 즉, 명령어 전달 서버 (120) 에서 클라이언트 과부하 판단부 (420) 는 수신한 큐 사이즈 정보를 기초로 경고 상태 클라이언트가 2개 이상이거나 최고 부하를 갖는 클라이언트의 큐 사이즈가 20개 이상인 경우에는 복수의 클라이언트 (900) 에 과부하가 발생하였다고 판단할 수 있다.Here, the predetermined client overload determination logic may be logic in which a plurality of
이에 따라, 공동 편집 문서 공유 장치 (100) 는 편집 명령어를 수신한 복수의 클라이언트 (900) 로부터 큐 사이즈 정보를 수신하여 복수의 클라이언트 (900) 에서 과부하가 발생하였는지 여부를 판단할 수 있다. 즉, 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 에서 과부하가 발생한 것으로 판단할 수 있다. 나아가, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 에서 과부하가 발생한 경우에는 과부하를 해소하도록 복수의 클라이언트 (900) 를 제어할 수 있으며, 구체적인 과부하 해소 방법은 이하 도 6을 참조하여 후술한다. Accordingly, the co-edited
이어서, 명령어 전달 서버 (120) 는 과부하가 발생한 경우, 복수의 클라이언트 (900) 각각에 편집 제한 명령어를 송신한다 (S240).Then, when an overload occurs, the
도 5 및 도 6을 참조하면, 미리 결정된 클라이언트 과부하 판단 로직이 충족되어 과부하가 발생한 것으로 판단된 경우, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 에 편집 제한 명령어를 송신한다. 여기서, 편집 제한 명령어는 복수의 클라이언트 (900) 가 편집을 하지 못하도록 제한하는 명령어로서, 이를 수신한 복수의 클라이언트 (900) 는 편집 제한 상태가 해소되기 전까지 공동 편집 문서 파일을 편집할 수 없다. 구체적으로, 편집 제한 명령어는 복수의 클라이언트 (900) 가 미리 결정된 편집 제한 해소 조건을 만족하기 전까지 복수의 클라이언트 (900) 가 공동 편집 문서 파일에 대한 편집 명령어를 명령어 전달 서버 (120) 에 송신할 수 없도록 제어할 수 있다. 또는, 편집 제한 명령어는 복수의 클라이언트 (900) 가 공동 편집 문서 파일을 편집할 수 없도록 복수의 클라이언트 (900) 에서 편집 명령어의 입력 자체를 제한할 수 있다. Referring to FIGS. 5 and 6, when it is determined that the predetermined client overload determination logic is satisfied and an overload occurs, the
이에 따라, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 에서 과부하가 발생하여 공동 편집 문서 파일의 정상적인 갱신이 어렵다고 판단한 경우, 직접 편집 제한 명령어를 복수의 클라이언트 (900) 각각에 전송하여 공동 편집 문서 파일에 대한 추가적인 편집을 제한할 수 있다. 이로 인해, 과부하가 발생하여 클라이언트의 큐에 누적된 편집 명령어가 공동 편집 문서 파일에 적용될 수 있는 시간이 확보될 수 있다. 이에, 클라이언트의 큐에 누적된 편집 명령어가 감소하여, 복수의 클라이언트 (900) 가 동일한 갱신 공동 문서 편집 파일을 갖고 다시 편집할 수 있다.Accordingly, when the common editing
도 7은 본 발명의 다른 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 클라이언트의 편집 제한을 해제하는 과정을 예시적으로 도시한 것이다. 설명의 편의를 위해 도 3 내지 도 6을 참조하여 설명한다.FIG. 7 exemplarily shows a process of releasing an editing restriction of a client by a method of sharing a common editing document according to another embodiment of the present invention. Will be described with reference to Figs. 3 to 6 for convenience of explanation.
도 7을 참조하면, 명령어 전달 서버 (120) 에서 클라이언트 과부하 판단부 (420) 는 클라이언트 과부하가 해소된 경우, 복수의 클라이언트 (900) 각각에 편집 제한 해제 명령어를 송신할 수 있다. 여기서, 명령어 전달 서버 (120) 에서 클라이언트 과부하 판단부 (420) 는 복수의 클라이언트 (900) 중 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 과부하의 해소 여부를 판단할 수 있다. Referring to FIG. 7, in the
예를 들어, 클라이언트 과부하 판단부 (420) 는 수신한 큐 사이즈 정보 중 클라이언트의 큐에 누적된 편집 명령어가 가장 많은 클라이언트를 최고 부하 클라이언트로 결정할 수 있다. 이어서, 클라이언트의 큐에 누적된 편집 명령어가 미리 결정된 개수 이하인 경우, 클라이언트 과부하 판단부 (420) 는 최고 부하 클라이언트로부터 추가적인 큐 사이즈 정보를 수신할 수 있다. 이에 따라, 클라이언트 과부하 판단부 (420) 는 미리 결정된 클라이언트 과부하 판단 로직을 기초로 복수의 클라이언트 (900) 에서 과부하 발생 여부를 다시 판단하여, 복수의 클라이언트 (900) 에 과부하가 존재하지 않음을 판단할 수 있다. For example, the client
이에, 클라이언트 과부하 판단부 (420) 는 복수의 클라이언트 (900) 에 더 이상 과부하가 존재하지 않는 경우, 복수의 클라이언트 (900) 각각에 편집 제한 해제 명령어를 송신할 수 있다. 여기서, 편집 제한 해제 명령어는 복수의 클라이언트 (900) 가 편집 제한 상태에서 다시 편집을 할 수 있도록 허용하는 명령어로서, 이를 수신한 복수의 클라이언트 (900) 는 편집 제한 상태가 해소되어 공동 편집 문서 파일을 편집할 수 있다. The client
이에 따라, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 가 과부하 상태에서 벗어난 이후에는 다시 편집 제한 상태를 해제함으로써, 공동 편집 문서 파일이 복수의 클라이언트 (900) 에서 다시 편집될 수 있다. 즉, 공동 편집 문서 공유 장치 (100) 는 최고 부하를 갖는 클라이언트로부터 과부하 상태에서 벗어났는지 여부를 체크함으로써, 과부하 상태에서 벗어난 경우 신속하게 공동 편집 문서 파일의 편집을 허용하고, 복수의 클라이언트 (900) 에서 공동 편집 문서 파일의 동기화 상태에 대한 통일성과 신뢰성을 향상시킬 수 있다.Thereby, the co-edited
본 명세서에서, 각 블록 또는 각 단계는 특정된 논리적 기능 (들) 을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In this specification, each block or each step may represent a part of a module, segment or code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.
본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로 (ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.The steps of a method or algorithm described in connection with the embodiments disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. The software module may reside in a RAM memory, a flash memory, a ROM memory, an EPROM memory, an EEPROM memory, a register, a hard disk, a removable disk, a CD-ROM or any other form of storage medium known in the art. An exemplary storage medium is coupled to the processor, which is capable of reading information from, and writing information to, the storage medium. Alternatively, the storage medium may be integral with the processor. The processor and the storage medium may reside within an application specific integrated circuit (ASIC). The ASIC may reside within the user terminal. Alternatively, the processor and the storage medium may reside as discrete components in a user terminal.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although the embodiments of the present invention have been described in detail with reference to the accompanying drawings, it is to be understood that the present invention is not limited to those embodiments and various changes and modifications may be made without departing from the scope of the present invention. . Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. Therefore, it should be understood that the above-described embodiments are illustrative in all aspects and not restrictive. The scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.
100 공동 편집 문서 공유 장치
110 문서 저장 서버
111 제1 공동 편집 문서 파일
112 제2 공동 편집 문서 파일
113 제3 공동 편집 문서 파일
120 명령어 전달 서버
130 명령어 저장 서버
131 제1 편집 명령어
132 제2 편집 명령어
133 제3 편집 명령어
420 클라이언트 과부하 판단부
421 제1 과부하 판단 조건
422 제2 과부하 판단 조건
423 제3 과부하 판단 조건
424 제4 과부하 판단 조건
900 복수의 클라이언트
901 제1 클라이언트
902 제2 클라이언트
903 제3 클라이언트
1000 공유 서버
1200 바로가기 파일 서버100 co-editing document sharing device
110 Document storage server
111 1st Common Editing Document File
112 2nd Common Editing Document File
113 Third Common Editing Document File
120 Command delivery server
130 Command storage server
131 1st edit command
132 2nd edit command
133 Third Edit Command
420 client overload determination unit
421 1st Overload Judgment Condition
422 2nd Overload Judgment Condition
423 3rd Overload Judgment Condition
424 Fourth Overload Judgment Condition
900 Multiple Clients
901 First Client
902 Second Client
903 Third Client
1000 shared servers
1200 Shortcut File Server
Claims (11)
상기 명령어 전달 서버는,
상기 복수의 클라이언트 각각에서의 상기 편집 명령어의 수신에 대응하여, 상기 복수의 클라이언트 각각의 큐 사이즈 (Que ue Size) 정보를 수신하고,
상기 큐 사이즈 정보를 기초로 상기 복수의 클라이언트에서 과부하의 발생 여부를 판단하고,
상기 과부하가 발생한 경우, 상기 복수의 클라이언트 각각에 편집 제한 명령어를 송신하는, 공동 편집 문서를 공유하는 장치.And a command delivery server for receiving an editing command from a plurality of clients having a common editing document file and transmitting the editing command to each of the plurality of clients in accordance with the order in which the editing command is received,
The command delivery server,
In response to receiving the edit instruction in the plurality of clients, each configured to receive each of the queue size of the plurality of clients (Que ue Size) information,
Determining whether an overload occurs in the plurality of clients based on the queue size information,
And sends an edit restriction command to each of the plurality of clients when the overload occurs.
상기 명령어 전달 서버는,
상기 과부하의 발생 여부를 판단하는 클라이언트 과부하 판단부를 더 포함하는, 공동 편집 문서를 공유하는 장치.The method according to claim 1,
The command delivery server,
Further comprising a client overload determination unit for determining whether the overload is generated.
상기 클라이언트 과부하 판단부는,
미리 결정된 클라이언트 과부하 판단 로직을 포함하고,
상기 미리 결정된 클라이언트 과부하 판단 로직은 복수의 과부하 판단 조건을 포함하는, 공동 편집 문서를 공유하는 장치.3. The method of claim 2,
The client overload judging unit judges,
A predetermined client overload determination logic,
Wherein the predetermined client overload determination logic includes a plurality of overload determination conditions.
상기 명령어 전달 서버는,
상기 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 상기 복수의 클라이언트에서 상기 과부하가 발생한 것으로 판단하는, 공동 편집 문서를 공유하는 장치.The method of claim 3,
The command delivery server,
And when the predetermined client overload determination logic is satisfied, determines that the overload has occurred in the plurality of clients.
상기 명령어 전달 서버는,
상기 과부하가 해소된 경우, 상기 복수의 클라이언트 각각에 편집 제한 해제 명령어를 송신하는, 공동 편집 문서를 공유하는 장치.The method according to claim 1,
The command delivery server,
And transmit an edit restriction release command to each of the plurality of clients when the overload is eliminated.
상기 명령어 전달 서버는,
상기 복수의 클라이언트 중 상기 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 상기 과부하의 해소 여부를 판단하는, 공동 편집 문서를 공유하는 장치.6. The method of claim 5,
The command delivery server,
And determines whether the overload is eliminated based on a client having the largest queue size information among the plurality of clients.
상기 복수의 클라이언트 각각에서의 상기 편집 명령어의 수신에 대응하여, 상기 복수의 클라이언트 각각의 큐 사이즈 정보를 수신하는 단계;
상기 큐 사이즈 정보를 기초로 상기 복수의 클라이언트에서 과부하의 발생 여부를 판단하는 단계; 및
상기 과부하가 발생한 경우, 상기 복수의 클라이언트 각각에 편집 제한 명령어를 송신하는 단계를 포함하는, 공동 편집 문서를 공유하는 방법.Transmitting an editing command received from a plurality of clients having a common editing document file to each of the plurality of clients;
Receiving queue size information of each of the plurality of clients in response to receipt of the edit command in each of the plurality of clients;
Determining whether an overload occurs in the plurality of clients based on the queue size information; And
And transmitting an edit restriction command to each of the plurality of clients when the overload occurs.
상기 과부하가 해소된 경우, 상기 복수의 클라이언트 각각에 편집 제한 해제 명령어를 송신하는 단계를 더 포함하는, 공동 편집 문서를 공유하는 방법.8. The method of claim 7,
Further comprising transmitting an edit restriction release command to each of the plurality of clients when the overload is eliminated.
상기 편집 제한 해제 명령어를 송신하는 단계는,
상기 복수의 클라이언트 중 상기 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 상기 과부하의 해소 여부를 판단하는 단계를 포함하는, 공동 편집 문서를 공유하는 방법.9. The method of claim 8,
Wherein the step of transmitting the edit restriction release command comprises:
And determining whether the overload is eliminated based on a client having the largest queue size information among the plurality of clients.
상기 과부하의 발생 여부를 판단하는 단계는,
상기 큐 사이즈 정보를 기초로 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 상기 복수의 클라이언트에서 상기 과부하가 발생한 것으로 판단하는 단계인, 공동 편집 문서를 공유하는 방법.8. The method of claim 7,
The step of determining whether the overload occurs may include:
And if the predetermined client overload determination logic is satisfied based on the queue size information, determining that the overload has occurred in the plurality of clients.
상기 복수의 클라이언트 각각에서의 상기 편집 명령어의 수신에 대응하여, 상기 복수의 클라이언트 각각의 큐 사이즈 정보를 수신하고,
상기 큐 사이즈 정보를 기초로 상기 복수의 클라이언트에서 과부하의 발생 여부를 판단하고,
상기 과부하가 발생한 경우, 상기 복수의 클라이언트 각각에 편집 제한 명령어를 송신하는, 공동 편집 문서를 공유하는 방법을 제공하는 명령어들을 저장하는 컴퓨터 판독 가능 기록매체.An edit command received from a plurality of clients having a co-edited document file is transmitted to each of the plurality of clients,
Receiving queue size information of each of the plurality of clients in response to receipt of the edit command in each of the plurality of clients,
Determining whether an overload occurs in the plurality of clients based on the queue size information,
And when the overload occurs, sending an edit restriction command to each of the plurality of clients.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170014474A KR101954061B1 (en) | 2017-02-01 | 2017-02-01 | Method and apparatus for sharing common editing documents |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170014474A KR101954061B1 (en) | 2017-02-01 | 2017-02-01 | Method and apparatus for sharing common editing documents |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180089752A true KR20180089752A (en) | 2018-08-09 |
KR101954061B1 KR101954061B1 (en) | 2019-05-17 |
Family
ID=63250969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170014474A KR101954061B1 (en) | 2017-02-01 | 2017-02-01 | Method and apparatus for sharing common editing documents |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101954061B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976617A (en) * | 2019-04-03 | 2019-07-05 | 腾讯科技(深圳)有限公司 | Document display method and apparatus |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080085105A (en) * | 2007-01-22 | 2008-09-23 | 김영주 | On-line collaborative authoring system and method for synchronizing |
KR20140028040A (en) | 2011-08-04 | 2014-03-07 | 요조소프트 컴퍼니 리미티드 | Document collaboration method |
KR20160080266A (en) * | 2014-12-29 | 2016-07-07 | 주식회사 시큐아이 | Packet processing apparatus and method for cpu load balancing |
-
2017
- 2017-02-01 KR KR1020170014474A patent/KR101954061B1/en active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080085105A (en) * | 2007-01-22 | 2008-09-23 | 김영주 | On-line collaborative authoring system and method for synchronizing |
KR20140028040A (en) | 2011-08-04 | 2014-03-07 | 요조소프트 컴퍼니 리미티드 | Document collaboration method |
KR20160080266A (en) * | 2014-12-29 | 2016-07-07 | 주식회사 시큐아이 | Packet processing apparatus and method for cpu load balancing |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109976617A (en) * | 2019-04-03 | 2019-07-05 | 腾讯科技(深圳)有限公司 | Document display method and apparatus |
Also Published As
Publication number | Publication date |
---|---|
KR101954061B1 (en) | 2019-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170134495A1 (en) | Method and apparatus for sharing collaboratively edited document | |
US10356194B2 (en) | Method, system and client for uploading image, network server and computer storage medium | |
WO2012086919A2 (en) | Distributed storage system including plurality of proxy servers, method for managing object thereof, and storage medium readable by computer | |
EP1429517A1 (en) | Access relaying apparatus | |
KR101701110B1 (en) | Method and apparatus for sharing common editing documents | |
US20140164534A1 (en) | System for sending a content item through an online content management system | |
US20140006511A1 (en) | Method and apparatus for sharing a file in p2p system | |
CN115858481A (en) | Method and system for document synchronization in a distributed server-client environment | |
KR101822401B1 (en) | Method and apparatus for sharing a collaborative editing document | |
EP3369008B1 (en) | Randomized peer-to-peer synchronization of shared content items | |
KR101954061B1 (en) | Method and apparatus for sharing common editing documents | |
US9716744B2 (en) | Remote access from mobile devices | |
US20090198740A1 (en) | Data sharing | |
CN111651419B (en) | Data storage method, device and storage medium | |
KR101858970B1 (en) | Method and apparatus for sharing common editing documents | |
KR20150008541A (en) | Method and server for controlling data transmition | |
CN111064700B (en) | Downloading method, device and system of cloud game | |
US11317470B2 (en) | Network system, network device applied thereto and operation method for network device, and operation method for network node | |
EP2879353B1 (en) | Method for controlling operations of a network system | |
US20200137155A1 (en) | System and method for peer-to-peer communication in partial mesh network | |
US9152645B2 (en) | Distributed object management system, distributed object management server, distributed object management method and computer program of the same | |
US20160306782A1 (en) | Method and apparatus for sharing common documents using dualized server | |
KR20220032229A (en) | Method for controlling data transmission in distributed network and appratuses perfroming the same | |
KR101664188B1 (en) | Data manage device and data managing method based on peer-to-peer network | |
KR102246581B1 (en) | Method for uploading file via cloud computing environment, and proxy server for executing the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |