KR101750429B1 - Document editing system and method for collaborative editing - Google Patents

Document editing system and method for collaborative editing Download PDF

Info

Publication number
KR101750429B1
KR101750429B1 KR1020170023456A KR20170023456A KR101750429B1 KR 101750429 B1 KR101750429 B1 KR 101750429B1 KR 1020170023456 A KR1020170023456 A KR 1020170023456A KR 20170023456 A KR20170023456 A KR 20170023456A KR 101750429 B1 KR101750429 B1 KR 101750429B1
Authority
KR
South Korea
Prior art keywords
editing
information
document
server
edit
Prior art date
Application number
KR1020170023456A
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 KR1020170023456A priority Critical patent/KR101750429B1/en
Application granted granted Critical
Publication of KR101750429B1 publication Critical patent/KR101750429B1/en

Links

Images

Classifications

    • G06F17/24
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • G06F17/30174

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 공동 편집을 위한 문서 편집 시스템 및 방법에 관한 것으로서, 더욱 상세히는 임의의 웹 브라우저에서 동작하는 문서 편집 장치를 통해 다수의 사용자가 동일 문서에 대하여 동시에 공동으로 편집할 수 있도록 지원하고, 서로 다른 각 사용자의 편집 내용을 취합하여 일정 주기로 사용자별 편집 대상 문서의 내용을 상호 동기화함으로써 동일 문서에 대한 공동 편집이 용이하게 이루어지도록 지원하는 공동 편집을 위한 문서 편집 시스템 및 방법에 관한 것이다. 본 발명은 편집 대상 문서에 대한 사용자별 편집 내용을 서버 측에서 취합한 후 편집 내용별로 순서를 설정하여 다수의 사용자로부터 수신된 편집 내용을 주기적으로 동기화하고, 이를 기반으로 동기화된 공동 편집 정보를 동일한 편집 대상 문서의 편집에 참여하는 사용자별 문서 편집 장치에 제공하여 해당 문서 편집 장치를 통해 공동 편집 중인 편집 대상 문서의 편집 결과가 동일하게 표시되도록 함으로써, 사용자가 실시간으로 편집 대상 문서를 편집할 수 있도록 지원하여 기존의 특정 사용자가 편집 대상 문서의 편집 권한을 독점하여 다수의 사용자가 편집 대상 문서의 편집을 위해 대기하는 불편을 개선하는 동시에 동일 문서의 공동 편집에 대한 편의성 및 정확도를 높이는 효과가 있다.The present invention relates to a document editing system and method for collaborative editing, and more particularly, to a system and method for collaborative editing, in which a plurality of users simultaneously edit a same document simultaneously by means of a document editing apparatus operating in an arbitrary web browser, And more particularly, to a document editing system and method for collaborative editing that collectively compiles edited contents of different users and synchronizes contents of a user-to-be-edited document at predetermined intervals to facilitate cooperative editing of the same document. The present invention is a method for synchronizing edit contents received from a plurality of users periodically by collecting, on a server side, edited content for a document to be edited and setting an order for each edited content, A document editing device for each user participating in the editing of the document to be edited, so that the editing result of the document to be edited being jointly edited through the document editing device is displayed in the same manner, Thus, it is possible to improve the inconvenience that a plurality of users wait for the editing of a document to be edited, and improve the convenience and accuracy of cooperative editing of the same document.

Figure R1020170023456
Figure R1020170023456

Description

공동 편집을 위한 문서 편집 시스템 및 방법{Document editing system and method for collaborative editing}[0002] Document editing systems and methods for collaborative editing [

본 발명은 공동 편집을 위한 문서 편집 시스템 및 방법에 관한 것으로서, 더욱 상세히는 임의의 웹 브라우저에서 동작하는 문서 편집 장치를 통해 다수의 사용자가 동일 문서에 대하여 동시에 공동으로 편집할 수 있도록 지원하고, 서로 다른 각 사용자의 편집 내용을 취합하여 일정 주기로 사용자별 편집 대상 문서의 내용을 상호 동기화함으로써 동일 문서에 대한 공동 편집이 용이하게 이루어지도록 지원하는 공동 편집을 위한 문서 편집 시스템 및 방법에 관한 것이다.The present invention relates to a document editing system and method for collaborative editing, and more particularly, to a system and method for collaborative editing, in which a plurality of users simultaneously edit a same document simultaneously by means of a document editing apparatus operating in an arbitrary web browser, And more particularly, to a document editing system and method for collaborative editing that collectively compiles edited contents of different users and synchronizes contents of a user-to-be-edited document at predetermined intervals to facilitate cooperative editing of the same document.

최근, 구글 독스(Google Docs)나 마이크로소프트 오피스 온라인(Microsoft Office Online)과 같이 웹 브라우저를 기반으로 동작하는 웹 오피스(Web Office)인 문서 편집 장치가 제공되고 있으며, 이러한 문서 편집 장치는 웹 브라우저에서 이용 가능한 응용 소프트웨어인 웹 애플리케이션(web application) 형태로 개발되어 설치가 불필요하거나 최소화되는 형태로 제공된다.Recently, document editing apparatuses such as Google Docs and Microsoft Office Online, which are WebOffices based on a web browser, are provided, and these document editing apparatuses are provided in a web browser It is developed in the form of a web application which is usable application software, and it is provided in a form in which installation is unnecessary or minimized.

이러한, 문서 편집 장치를 이용한 문서 편집은 동일 문서에 대하여 다수의 사용자가 접속하여 문서를 편집할 수 있도록 지원하고, 이를 웹 서버에 저장하여 다수의 사용자가 웹 서버에 접속하여 동일 문서에 대하여 타인이 수정한 내용을 용이하게 확인할 수 있도록 제공함으로써, 불필요한 업무 처리 과정을 줄이는 동시에 사용자간 협업이 용이하게 이루어지도록 지원할 수 있다.The document editing using the document editing device supports a plurality of users to access the same document and edit the document, and it is stored in the web server, and a plurality of users access the web server, By providing the revised contents so that they can be easily confirmed, it is possible to reduce unnecessary work processes and facilitate cooperation among users.

그러나, 기존의 웹 서버와 문서 편집 장치를 기반으로 공동 편집을 지원하는 시스템은 서로 다른 사용자의 문서 편집 과정에서 서로 다른 사용자의 편집 내용 상호간 충돌을 방지하기 위하여 특정 사용자의 편집시 편집 권한을 하나의 사용자에 한정하여 부여하고 다른 사용자의 동일 문서에 대한 접근을 차단함으로써, 동일 문서에 대한 다수 사용자의 공동 편집을 지원하기는 하지만 동시 편집을 지원하기는 어려운 구조이다.However, a system that supports collaborative editing based on a conventional web server and a document editing device is a system in which, in order to prevent conflicts between edited contents of different users in a document editing process of different users, It is difficult to support simultaneous editing even though it is limited to users and blocks access of other users to the same document, thereby supporting cooperative editing of multiple users for the same document.

결국, 동일 문서에 대한 문서 편집 권한을 하나의 사용자가 모두 점유하고 이러한 문서 편집 권한을 공유하는 형태로 공동 편집을 지원하므로, 특정 사용자의 문서 편집시 나머지 사용자는 대기 상태를 유지해야 하므로 동일 문서의 공동 편집에 대한 효율성 및 편의성이 크게 떨어지는 문제가 있다.As a result, since one user occupies the document editing authority for the same document and supports the editing of the document in a form of sharing the editing authority of the same document, There is a problem that the efficiency and convenience of collaborative editing are greatly reduced.

또한, 기존의 공동 편집을 지원하는 시스템은 다수의 사용자로부터 수신되는 편집 내용 정보를 기초로 복수 사용자의 편집 대상 문서 상호 간 동기화되도록 하기 위해 서버측에서 다른 사용자의 편집 내용 관련 정보를 수신하여 사용자의 문서 편집 장치에 전송하고, 사용자의 문서 편집 장치가 해당 타사용자의 편집 내용 관련 정보를 편집 대상 문서에 직접 반영하여 처리하므로, 다수의 사용자로부터 편집 내용 관련 정보가 수신되는 경우 서버 측에서 문서 편집 장치로 전송하는 데이터량이 방대하여 문서 편집 장치에 상당한 부하가 발생하며, 이로 인해 문서 편집 장치의 처리 속도가 떨어져 사용자가 문서 편집 장치를 제대로 이용할 수 없는 문제가 발생한다.In addition, a system supporting existing collaborative editing receives information related to editing contents of another user on the server side in order to synchronize editing target documents of a plurality of users based on editing content information received from a plurality of users, The document editing apparatus of the user directly reflects the information related to the edited content of the other user to the editing target document and processes it. Thus, when the editing content related information is received from a plurality of users, The amount of data to be transmitted to the document editing apparatus is enormous, so that a considerable load is generated in the document editing apparatus. As a result, the processing speed of the document editing apparatus is reduced and the user can not properly use the document editing apparatus.

한국등록특허 제10-0958786호Korean Patent No. 10-0958786

본 발명은 다수의 사용자가 임의의 웹 브라우저를 기반으로 동작하는 문서 편집 장치를 이용하여 웹 기반의 동일 문서를 동시에 공동 편집할 수 있도록 지원하는 동시에 각 사용자의 사용자 장치로부터 수신된 편집 내용을 서버 측에서 취합하여 동기화하고 동기화된 편집 결과를 개별 사용자에게 제공하여 동일한 편집 내용이 공유되도록 함으로써, 동일 문서에 대한 문서 편집의 실시간성 및 편의성을 보장하는데 그 목적이 있다.The present invention provides a system and method for enabling a plurality of users to co-edit the same web-based document simultaneously using a document editing device operating on a web browser, And synchronizing and providing the synchronized editing results to individual users so that the same editing contents are shared, thereby realizing the real time and convenience of document editing for the same document.

또한, 본 발명은 동일 문서에 대한 편집을 처리하는 편집 서버를 부하량에 따라 확장할 수 있도록 지원하고, 다수 사용자의 편집 내용을 용이하게 처리할 수 있도록 지원하는 동시에 동기화 과정에서 편집 내용의 충돌을 방지하여 동일 문서에 대한 정확한 편집이 이루어지도록 지원하는데 그 목적이 있다.In addition, the present invention supports an editing server that processes editing of the same document in accordance with a load, supports editing contents of a large number of users with ease, To support correct editing of the same document.

더하여, 본 발명은 다수의 사용자로부터 수신되는 편집 내용 관련 정보를 서버 측에서 동기화하는 동시에 데이터량을 감소시키도록 동작하여, 복수의 문서 편집 장치 각각에 대한 통신량을 감소시킴과 아울러 문서 편집 장치의 처리 부하를 감소시켜 문서 편집 장치의 성능을 개선하는데 그 목적이 있다.In addition, the present invention operates to synchronize the edited content related information received from a plurality of users at the server side and to reduce the amount of data, thereby reducing the amount of communication for each of the plurality of document editing apparatuses, The purpose of the present invention is to improve the performance of the document editing apparatus by reducing the load.

본 발명의 실시예에 따른 서로 다른 복수의 사용자 장치와 통신망을 통해 통신하는 하나 이상의 편집 서버 및 상기 편집 서버와 통신망을 통해 연결된 동기화 서버를 포함하는 공동 편집을 위한 문서 편집 시스템은, 사용자 장치에서 실행되는 운영 체제상의 웹 브라우저 기반에서 동작하며, 사용자의 문서 편집에 따른 편집 요청 정보를 전송하는 문서 편집 장치와, 개별 문서마다 문서의 편집 처리를 위한 모델 서버를 할당하며, 상기 문서 편집 장치로부터 수신된 상기 편집 요청 정보에 따른 편집 대상 문서에 대응되어 할당된 모델 서버에 상기 편집 요청 정보를 제공하여 상기 편집 대상 문서를 편집한 편집 결과 정보를 상기 모델 서버로부터 수신하고, 상기 편집 결과 정보를 기초로 편집 정보를 생성한 후 상기 편집 정보에 대한 시퀀스를 상기 동기화 서버에 요청하여 수신된 시퀀스를 상기 편집 정보에 설정한 후 상기 동기화 서버로 제공하고, 상기 편집 대상 문서에 대한 타 사용자 또는 상기 사용자 장치에 대응되는 사용자의 편집에 따라 생성된 공동 편집 정보를 상기 동기화 서버로부터 수신하여 상기 문서 편집 장치로 전송하는 편집 서버 및 상기 하나 이상의 편집 서버 각각으로부터 수신되는 상기 편집 대상 문서에 대한 시퀀스가 설정된 편집 정보를 기초로 상기 시퀀스 요청에 대응되는 상기 편집 정보에 대한 시퀀스를 결정한 후 상기 편집 서버로 제공하며, 상기 시퀀스가 설정된 상기 편집 정보를 상기 공동 편집 정보로 제공하는 동기화 서버를 포함할 수 있다.A document editing system for collaborative editing including at least one editing server communicating with a plurality of different user apparatuses according to an embodiment of the present invention via a communication network and a synchronization server connected to the editing server via a communication network, A document editing device which operates on a web browser on the operating system and transmits edit request information according to a user's document editing and a model server for editing the document for each individual document, Receiving the editing request information from the model server by providing the editing request information to the model server allocated in correspondence with the editing target document according to the editing request information and editing the editing target document, And generating a sequence of the editing information, And providing the received editing sequence to the synchronization server and providing common editing information generated according to editing of a user corresponding to the editing object document or a user corresponding to the user apparatus, The editing server receiving from the synchronization server and transmitting to the document editing apparatus a sequence of editing information corresponding to the sequence request based on the editing information of the sequence of the editing target document received from each of the editing servers, And providing the editing information to the editing server, and the synchronization server providing the editing information set in the sequence as the common editing information.

본 발명과 관련된 일 예로서, 상기 편집 서버는 상기 편집 결과 정보를 기초로 상기 다른 편집 요청 정보와의 충돌에 따른 오류 발생 여부를 판단하여 상기 오류 발생시 오류 정보를 생성하여 상기 문서 편집 장치로 전송하는 것을 특징으로 할 수 있다.As an example related to the present invention, the editing server determines whether or not an error has occurred due to a collision with the other editing request information based on the editing result information, generates error information upon occurrence of the error, and transmits the error information to the document editing device . ≪ / RTI >

본 발명과 관련된 일 예로서, 상기 편집 서버는 상기 모델 서버가 다른 편집 서버에 구성된 경우 상기 다른 편집 서버에 구성된 모델 서버로 상기 편집 요청 정보를 전송하고, 상기 편집 요청 정보에 대응되어 상기 편집 대상 문서에 대한 편집 결과 정보를 수신하는 것을 특징으로 할 수 있다.The editing server transmits the editing request information to the model server configured in the other editing server when the model server is configured in the other editing server. In response to the editing request information, And the editing result information is received.

본 발명과 관련된 일 예로서, 상기 편집 요청 정보는 상기 편집 대상 문서의 식별을 위한 문서 식별정보, 사용자 장치의 식별을 위한 사용자 식별 정보 및 상기 사용자 장치를 통한 사용자의 키 입력에 따른 편집 내용에 대한 이벤트 정보를 포함하고, 상기 편집 결과 정보는 상기 문서 식별정보, 사용자 식별정보 및 상기 이벤트 정보를 기초로 상기 편집 대상 문서를 편집 처리한 결과에 대한 정보를 포함하는 것을 특징으로 할 수 있다.The editing request information may include at least one of document identification information for identifying the editing object document, user identification information for identifying the user apparatus, and editing contents according to the user's key input through the user apparatus. Event information, and the editing result information includes information on a result of editing the editing target document based on the document identification information, the user identification information, and the event information.

본 발명과 관련된 일 예로서, 상기 편집 서버는 상기 동기화 서버로부터 상기 편집 대상 문서에 대응되는 상기 공동 편집 정보를 수신하여 상기 편집 대상 문서에 대응되어 할당된 버퍼에 기록하며, 미리 설정된 주기로 버퍼에 기록된 서로 다른 복수의 상기 공동 편집 정보를 취합하여 상기 복수의 공동 편집 정보를 포함하는 편집 리스트 정보를 생성한 후 상기 문서 편집 장치로 전송하는 것을 특징으로 할 수 있다.In one embodiment of the present invention, the editing server receives the common editing information corresponding to the editing target document from the synchronization server, records the common editing information in a buffer allocated corresponding to the editing target document, And the editing information generation unit generates editing list information including the plurality of common editing information, and transmits the editing list information to the document editing apparatus.

본 발명과 관련된 일 예로서, 상기 편집 서버는 상기 문서 편집 장치에 웹 소켓 기반으로 상기 편집 리스트 정보를 전송하는 것을 특징으로 할 수 있다.In one embodiment of the present invention, the editing server transmits the edit list information to the document editing apparatus based on a Web socket.

본 발명과 관련된 일 예로서, 상기 편집 서버는 상기 편집 대상 문서의 동일 편집 대상에 대한 복수의 서로 다른 공동 편집 정보가 상기 편집 리스트 정보 존재시 미리 설정된 규칙에 따라 상기 동일 편집 대상에 대한 복수의 서로 다른 공동 편집 정보를 하나의 공동 편집 정보로 병합하여 상기 편집 리스트 정보를 갱신하는 것을 특징으로 할 수 있다.In the present invention, the editing server may be configured such that a plurality of different common editing information on the same editing object of the editing target document is stored in a plurality of mutually And merges other common edit information into one common edit information to update the edit list information.

본 발명과 관련된 일 예로서, 상기 문서 편집 장치는 상기 편집 서버로부터 수신되는 상기 편집 리스트 정보에 포함된 상기 공동 편집 정보별 시퀀스를 식별하고, 상기 시퀀스에 따른 순서대로 상기 편집 리스트 정보에 포함된 상기 복수의 공동 편집 정보 각각을 기초로 상기 편집 대상 문서를 편집 처리한 후 렌더링하여 상기 사용자 장치를 통해 표시하는 것을 특징으로 할 수 있다.In one embodiment of the present invention, the document editing apparatus identifies a sequence of the common edit information included in the edit list information received from the editing server, The editing target document is edited and rendered on the basis of each of the plurality of common edit information, rendered and displayed through the user device.

본 발명과 관련된 일 예로서, 상기 문서 편집 장치는 상기 이벤트 정보가 미리 설정된 비의존적 편집 관련 이벤트인 경우 상기 이벤트 정보를 기초로 상기 편집 대상 문서를 편집하여 렌더링한 후 상기 사용자 장치를 통해 표시하고, 상기 이벤트 정보에 대응되는 상기 편집 요청 정보를 상기 편집 서버로 전송하는 것을 특징으로 할 수 있다.According to an embodiment of the present invention, the document editing apparatus edits and edits the document to be edited based on the event information when the event information is a preset non-dependent editing related event, displays the edited document through the user device, And transmits the edit request information corresponding to the event information to the editing server.

본 발명의 실시예에 따른 서로 다른 복수의 사용자 장치와 통신망을 통해 통신하는 하나 이상의 편집 서버 및 상기 편집 서버와 통신망을 통해 연결된 동기화 서버의 공동 편집을 위한 문서 편집 방법은, 상기 편집 서버가 상기 사용자 장치가 선택한 편집 대상 문서에 대응되어 문서의 편집 처리를 위한 모델 서버를 할당하는 단계와, 상기 사용자 장치에 구성되어 운영 체제상의 웹 브라우저 기반에서 동작하는 문서 편집 장치가 상기 편집 대상 문서에 대한 사용자의 문서 편집에 따른 편집 요청 정보를 생성하여 상기 편집 서버로 전송하는 단계와, 상기 편집 서버가 상기 모델 서버로부터 상기 편집 요청 정보에 따라 문서를 편집한 편집 결과 정보를 수신하고, 상기 편집 결과 정보를 기초로 생성한 상기 편집 정보에 대한 시퀀스를 상기 동기화 서버에 요청하는 단계와, 상기 동기화 서버가 상기 시퀀스 요청에 따라 상기 하나 이상의 편집 서버 각각으로부터 수신되는 상기 편집 대상 문서에 대한 시퀀스가 설정된 편집 정보를 기초로 상기 시퀀스 요청에 대응되는 상기 편집 정보의 시퀀스를 결정한 후 상기 편집 서버로 제공하는 단계와, 상기 편집 서버가 상기 시퀀스 요청에 대응되어 상기 동기화 서버로부터 수신된 시퀀스를 상기 시퀀스 요청에 대응되는 상기 편집 정보에 설정한 후 상기 동기화 서버로 제공하는 단계와, 상기 동기화 서버가 상기 하나 이상의 편집 서버 각각으로부터 상기 편집 대상 문서에 대응되어 상기 시퀀스가 설정된 편집 정보를 수신하고, 상기 시퀀스가 설정된 편집 정보를 공동 편집 정보로 상기 하나 이상의 편집 서버 각각에 제공하는 단계 및 상기 편집 서버가 상기 편집 대상 문서에 대한 타 사용자 또는 상기 사용자 장치에 대응되는 사용자의 편집에 따라 생성된 상기 공동 편집 정보를 상기 동기화 서버로부터 수신한 후 상기 문서 편집 장치로 전송하여 상기 시퀀스에 따른 순서대로 상기 공동 편집 정보에 따른 문서 편집이 처리되도록 하는 단계를 포함할 수 있다.A method of editing a document for cooperative editing of one or more editing servers communicating with a plurality of different user devices according to an embodiment of the present invention through a communication network and a synchronization server connected to the editing server via a communication network, A step of assigning a model server for edit processing of a document in correspondence with a selected document to be edited selected by the apparatus; Generating editing request information according to the editing of a document and transmitting the editing request information to the editing server; receiving editing result information obtained by editing the document according to the editing request information from the model server, To the synchronization server, a sequence of the editing information Wherein the synchronization server determines the sequence of the editing information corresponding to the sequence request based on the editing information set in the sequence for the editing target document received from each of the one or more editing servers in accordance with the sequence request Providing the editing server with the editing information corresponding to the sequence request and providing the editing server with the editing information corresponding to the sequence request and the sequence received from the synchronization server in response to the sequence request; The synchronization server receiving editing information corresponding to the editing target document from each of the one or more editing servers and the sequence is set and providing the editing information with the sequence as common editing information to each of the one or more editing servers; The editing server After receiving from the synchronization server, the common editing information generated according to the editing of a user corresponding to a target document or a user corresponding to the user apparatus, and then transmitting the common editing information to the document editing apparatus, So that editing of the document according to the document can be processed.

본 발명은 편집 대상 문서에 대한 사용자별 편집 내용을 서버 측에서 취합한 후 편집 내용별로 순서를 설정하여 다수의 사용자로부터 수신된 편집 내용을 주기적으로 동기화하고, 이를 기반으로 동기화된 공동 편집 정보를 동일한 편집 대상 문서의 편집에 참여하는 사용자별 문서 편집 장치에 제공하여 해당 문서 편집 장치를 통해 공동 편집 중인 편집 대상 문서의 편집 결과가 동일하게 표시되도록 함으로써, 사용자가 실시간으로 편집 대상 문서를 편집할 수 있도록 지원하여 기존의 특정 사용자가 편집 대상 문서의 편집 권한을 독점하여 다수의 사용자가 편집 대상 문서의 편집을 위해 대기하는 불편을 개선하는 동시에 동일 문서의 공동 편집에 대한 편의성 및 정확도를 높이는 효과가 있다.The present invention is a method for synchronizing edit contents received from a plurality of users periodically by collecting, on a server side, edited content for a document to be edited and setting an order for each edited content, A document editing device for each user participating in the editing of the document to be edited, so that the editing result of the document to be edited being jointly edited through the document editing device is displayed in the same manner, Thus, it is possible to improve the inconvenience that a plurality of users wait for the editing of a document to be edited, and improve the convenience and accuracy of cooperative editing of the same document.

또한, 본 발명은 편집 과정에서 발생하는 서로 다른 복수 사용자의 편집 내용 상호 간 충돌을 판정한 후 판정 결과에 따라 오류가 발생한 편집 내용이 반영되지 않도록 하거나 후속으로 전달받은 편집 내용으로 동기화가 맞춰지도록 할 수 있으며, 사용자가 실시간으로 문서 편집 장치를 통해 편집 대상 문서를 편집하는 과정에서 편집 서버로부터 수신된 편집 리스트 정보를 기초로 다른 사용자의 편집에 따른 편집 결과가 주기적으로 사용자가 편집 대상 문서를 편집하는 도중에 상기 편집 대상 문서에 반영되도록 지원하여 사용자의 웹 기반 편집 대상 문서에 대한 실시간 편집을 지원하는 동시에 서로 다른 사용자 간 동일 편집 대상 문서에 대한 동기화가 이루어지도록 지원함으로써 공동 편집의 실시간성을 보장하고 이에 따라 공동 편집 관련 업무 효율을 높이는 효과가 있다.In addition, according to the present invention, it is possible to prevent conflicts between editing contents of different users occurring in the editing process, and to prevent the edited content from being erroneously reflected on the basis of the determination result, In a process in which a user edits a document to be edited through a document editing device in real time, an editing result obtained by editing another user based on the edit list information received from the editing server is periodically edited by the user It is possible to support real-time editing of the web-based editing target document of the user while supporting synchronization of the same editing target document between different users, thereby realizing the real time performance of the cooperative editing. Co-editing related tasks It is effective to increase the rate.

더하여, 본 발명은 편집 서버에서 편집 리스트 정보에 따른 데이터를 병합 처리하고 웹 소켓 기반으로 문서 편집 장치에 편집 리스트 정보를 전송하여 복수의 문서 편집 장치 각각에 대한 통신량을 감소시킬 수 있을 뿐 아니라 문서 편집 장치에 편집 결과가 신속하게 반영되도록 하여 편집 속도를 증가시킬 수 있으며 이를 통해 공동 편집의 효율성 및 문서 편집 장치의 반응속도를 크게 개선하는 효과가 있다.In addition, according to the present invention, it is possible not only to reduce the amount of communication for each of a plurality of document editing devices by merging data according to edit list information in an editing server and transmitting edit list information to a document editing device based on a web socket, It is possible to increase the editing speed by allowing the editing result to be quickly reflected on the device, thereby greatly improving the efficiency of collaborative editing and the response speed of the document editing device.

도 1은 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 시스템에 대한 구성도.
도 2는 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 시스템의 동작 구성도.
도 3은 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 시스템의 편집 정보에 대한 시퀀스 설정을 도시한 동작 예시도.
도 4 및 도 5는 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 시스템에서 편집 리스트 정보의 제공 및 병합 과정에 대한 동작 예시도.
도 6은 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 시스템에서 편집 종류별 편집 정보 처리에 대한 동작 예시도.
도 7은 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 방법에 대한 순서도.
1 is a block diagram of a document editing system for collaborative editing according to an embodiment of the present invention;
2 is a diagram illustrating the operation of a document editing system for collaborative editing according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating an example of a sequence setting for editing information in a document editing system for collaborative editing according to an embodiment of the present invention; FIG.
FIG. 4 and FIG. 5 are diagrams illustrating operations of providing and merging edit list information in a document editing system for collaborative editing according to an embodiment of the present invention; FIG.
FIG. 6 is a diagram illustrating an operation example of edit information processing for each edit type in a document editing system for collaborative editing according to an embodiment of the present invention; FIG.
FIG. 7 is a flowchart illustrating a document editing method for collaborative editing according to an embodiment of the present invention; FIG.

이하, 도면을 참고하여 본 발명의 상세 실시예를 설명한다.Hereinafter, detailed embodiments of the present invention will be described with reference to the drawings.

도 1 및 도 2는 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 시스템에 대한 구성도로서, 도시된 바와 같이 사용자 장치에 구성되어 임의의 웹 브라우저(Web Browser) 기반에서 동작하는 문서 편집 장치(11)와, 서로 다른 복수의 상기 사용자 장치와 통신망을 통해 연결되어 상기 사용자 장치에 구성된 문서 편집 장치(11)와 통신하는 하나 이상의 편집 서버(100a~100n)를 포함할 수 있다.1 and 2 are block diagrams of a document editing system for collaborative editing according to an embodiment of the present invention. As shown in FIG. 1, a document editing apparatus configured in a user apparatus and operating on an arbitrary web browser And one or more editing servers 100a through 100n communicating with the document editing apparatus 11 connected to the user apparatuses via a communication network and configured in the user apparatus.

이때, 상기 문서 편집 장치(11)는 임의의 웹 브라우저를 지원하는 웹 오피스(Web Office) 또는 웹 어플리케이션(Web Application) 형태로 구성될 수 있으며, 사용자 장치에서 실행되는 운영 체제상의 웹 브라우저를 기반으로 동작할 수 있다.At this time, the document editing device 11 may be configured in the form of a web office or a web application supporting a certain web browser, and may be a web browser based on a web browser on an operating system Can operate.

또한, 상기 사용자 장치는 통신 기능을 구비한 스마트 폰(Smart Phone), 휴대 단말기(Portable Terminal), 이동 단말기(Mobile Terminal), 개인 정보 단말기(Personal Digital Assistant: PDA), PMP(Portable Multimedia Player) 단말기, 개인용 컴퓨터(Personal Computer), 노트북 컴퓨터, 슬레이트 PC(Slate PC), 태블릿 PC(Tablet PC), 울트라북(ultrabook) 등과 같은 다양한 단말을 포함할 수 있으며, 상기 통신망은 널리 알려진 다양한 유무선 통신 방식이 적용될 수 있다.The user device may be a smart phone, a portable terminal, a mobile terminal, a personal digital assistant (PDA), a portable multimedia player (PMP) A notebook computer, a slate PC, a tablet PC, an ultrabook, and the like, and the communication network may include a variety of wired and wireless communication methods Can be applied.

또한, 상기 하나 이상의 편집 서버(100a~100n) 각각은 웹 어플리케이션 서버(WAS: Web Application Server)로 구성될 수 있으며, 상기 하나 이상의 편집 서버(100a~100n) 중 사용자 장치가 접속한 편집 서버(100)는 미리 정의된 데이터 포맷을 가진 모델(model) 형태의 문서를 저장하는 DB로부터 사용자가 편집 대상 문서로 선택한 문서를 추출하거나 수집하여 상기 사용자 장치의 문서 편집 장치(11)로 전송할 수 있으며, 상기 문서 편집 장치(11)는 상기 편집 서버(100)를 통해 수신된 문서를 상기 웹 브라우저 기반에서 표시하고 사용자 장치를 통한 사용자 입력에 따라 상기 문서에 대한 편집 입력을 기초로 편집 요청 정보를 생성하여 상기 편집 서버(100)로 전송할 수 있다.Each of the one or more editing servers 100a to 100n may be configured as a web application server (WAS). The editing server 100a to 100n to which the user device is connected, among the one or more editing servers 100a to 100n, May extract or collect a document selected by the user as a document to be edited from a DB storing a document in the form of a model having a predefined data format and transmit the extracted document to the document editing apparatus 11 of the user apparatus, The document editing device 11 displays the document received through the editing server 100 on the basis of the web browser and generates edit request information based on the edit input to the document according to user input through the user device, To the editing server 100.

이때, 상기 DB는 상기 편집 서버(100)에 구성되거나 상기 편집 서버(100)와 통신망을 통해 연결되는 별도의 외부 DB로 구성될 수도 있으며, 웹 기반 스토리지(storage)로 구성될 수도 있다.At this time, the DB may be configured in the editing server 100 or a separate external DB connected to the editing server 100 through a communication network, or may be configured as a web-based storage.

또한, 상기 편집 서버(100)는 서로 다른 개별 문서마다 상기 문서의 편집 처리를 위한 모델 서버(200)를 할당할 수 있으며, 상기 모델 서버(200)는 하나의 문서에 대한 처리를 담당하는 개별 프로세스를 의미할 수 있다.In addition, the editing server 100 may assign a model server 200 for the editing processing of the document to different individual documents. The model server 200 may be an individual process for processing a single document . ≪ / RTI >

또한, 상기 편집 서버(100a~100n) 상호 간은 통신망을 통해 연결될 수 있으며, 이를 통해 상기 문서 편집 장치(11)는 특정 편집 서버(100b)를 통해 다른 편집 서버(100a)에 포함된 모델 서버(200)에 접속할 수도 있다.The editing servers 100a to 100n may be connected to each other through a communication network so that the document editing apparatus 11 can access the editing server 100a via a specific editing server 100b, 200).

한편, 상기 하나 이상의 편집 서버(100a~100n)는 다수의 사용자 장치로부터 수신되는 동일 편집 대상 문서에 대한 복수의 편집 요청 정보 각각에 대응되어 상기 모델 서버(200)를 통해 상기 편집 요청 정보에 따라 상기 편집 대상 문서를 편집 처리한 편집 결과 정보를 생성하고, 상기 편집 결과 정보를 포함하는 편집 정보를 생성할 수 있다.The one or more editing servers 100a to 100n may correspond to a plurality of editing request information for the same editing target document received from a plurality of user devices, Edit result information obtained by editing processing the edit target document, and edit information including the edit result information can be generated.

또한, 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 시스템은 상기 하나 이상의 편집 서버(100a~100n)와 통신망을 통해 통신하며 상기 복수의 사용자 장치 각각에서 편집 중인 상기 편집 대상 문서를 상호 동기화하기 위한 동기화 서버(300)를 포함할 수 있으며, 상기 동기화 서버(300)는 상기 하나 이상의 편집 서버(100a~100n) 각각으로부터 동일 문서에 대하여 다수의 사용자 장치로부터 수신된 복수의 편집 요청 정보에 각각 대응되는 복수의 편집 정보를 수신하여 취합하고, 상기 하나 이상의 편집 서버(100a~100n)와 연동하여(통신하여) 복수의 편집 정보 각각에 대한 시퀀스를 부여한 후 상기 시퀀스가 부여된 복수의 편집 정보 각각을 공동 편집 정보로 생성하여 상기 하나 이상의 편집 서버(100a~100n) 각각에 전송할 수 있다.In addition, the document editing system for collaborative editing according to an embodiment of the present invention communicates with the at least one editing server 100a to 100n via a communication network, and synchronizes the editing target document being edited by each of the plurality of user equipments And the synchronization server 300 may correspond to a plurality of editing request information received from a plurality of user apparatuses for the same document from each of the one or more editing servers 100a to 100n A plurality of pieces of editing information each of which is given a sequence are assigned to a plurality of pieces of editing information after interlocking (communicating) with the one or more editing servers 100a to 100n, And may be generated as common editing information and transmitted to each of the one or more editing servers 100a to 100n.

이를 통해, 상기 하나 이상의 편집 서버(100a~100n) 각각은 상기 동기화 서버(300)로부터 하나 이상의 공동 편집 정보를 수신하여 편집 리스트 정보를 생성하고, 이를 상기 사용자 장치의 문서 편집 장치(11)로 제공할 수 있다.Each of the one or more editing servers 100a to 100n receives one or more common editing information from the synchronization server 300 to generate editing list information and provides the editing list information to the document editing apparatus 11 of the user apparatus can do.

한편, 상기 편집 리스트 정보를 수신한 문서 편집 장치(11)는 상기 편집 리스트 정보에 포함된 공동 편집 정보별 시퀀스에 따라 순서대로 상기 편집 리스트 정보에 포함된 공동 편집 정보에 따라 상기 편집 대상 문서를 편집한 편집 결과를 렌더링(rendering)하여 표시할 수 있으며, 이를 통해 동일한 편집 리스트 정보를 수신한 서로 다른 사용자 장치에 편집 내용이 동기화된 동일 문서가 표시될 수 있다.On the other hand, the document editing device 11 receiving the edit list information sequentially edits the edit target document in accordance with the common edit information included in the edit list information according to the sequence of the common edit information included in the edit list information A result of rendering of one edit can be rendered and displayed so that the same document in which editing contents are synchronized can be displayed on different user devices receiving the same edit list information.

이를 통해, 동일 문서를 편집하는 서로 다른 사용자 장치의 문서 편집 장치(11) 상호간 동일 문서의 편집 내용에 대한 동기화가 이루어지도록 지원할 수 있다.Thus, the document editing apparatuses 11 of different user apparatuses editing the same document can support the synchronization of edited contents of the same document.

기존에는 웹 기반 동일 문서에 대하여 임의의 웹 브라우저 기반에서 동작하는 문서 편집 장치(11)를 이용하여 다수의 사용자가 편집을 수행할 때 특정 사용자가 문서에 대한 편집 권한을 독점하여 다른 사용자가 특정 사용자의 편집이 완료될 때까지 편집을 할 수 없는 상태로 대기해야 하는 불편이 존재하고, 공동 문서 편집에 대한 편의성 및 정확도가 떨어지는 문제가 있다.Conventionally, when a plurality of users perform editing using a document editing device 11 operating on an arbitrary web browser based on a web-based same document, a specific user monopolizes the editing authority for the document, There is a problem that it is necessary to wait until the editing of the document is completed and the editing can not be performed.

또한, 기존의 시스템에서 문서 편집 장치(11)가 직접 다수의 사용자 장치로부터 동일 문서에 대하여 수신되는 편집 정보를 처리하므로, 문서 편집 장치(11)에 걸리는 부하가 상당하여 편집 처리에 대한 실시간성 및 처리 속도가 크게 떨어지게 된다.Further, in the existing system, since the document editing apparatus 11 directly processes the editing information received from a plurality of user apparatuses for the same document, the load imposed on the document editing apparatus 11 is large, The processing speed is greatly reduced.

따라서, 본 발명은 편집 대상 문서에 대한 사용자별 편집 내용을 서버측에서 취합한 후 시퀀스로 관리하여 다수의 사용자로부터 수신된 편집 내용을 동기화하고, 이를 기반으로 동기화된 편집 리스트 정보를 다수의 사용자 장치 각각에 제공하여 각 사용자 장치의 문서 편집 장치에서 상기 편집 리스트 정보를 기반으로 하는 편집 대상 문서의 편집 결과가 사용자의 문서 편집 중에 처리되도록 하여, 동일 문서의 공동 편집에 대한 편의성 및 정확도를 높일 수 있으며, 편집 권한의 설정 없이 복수의 서로 다른 사용자 각각이 실시간으로 동시에 동일한 편집 대상 문서를 편집할 수 있도록 지원하여 문서 편집의 실시간성을 보장할 수 있다.Therefore, according to the present invention, the user-edited contents of a document to be edited are collected at the server side and are managed in a sequence to synchronize edited contents received from a plurality of users, and the synchronized edited list information is stored in a plurality of user devices The editing result of the editing target document based on the editing list information is processed in the editing of the user's document by the document editing device of each user device so that the convenience and accuracy of the common editing of the same document can be enhanced , A plurality of different users can edit the same edit target document at the same time in real time without setting edit authority, thereby realizing the real time editing of the document.

또한, 본 발명은 편집 과정에서 발생하는 서로 다른 사용자에 의해 생성된 편집 내용 상호 간 충돌을 편집 서버에서 판정하고 충돌 발생시 충돌이 발생한 편집 요청 정보에 따른 편집 내용이 반영되지 않도록 하거나 후속으로 전달받은 편집 내용으로 동기화가 맞춰지도록 하여 문서 편집의 효율성을 높일 수 있도록 제공한다.In addition, the present invention can also be applied to an editing server which judges a conflict between edited contents generated by different users occurring in an editing process to be edited, And synchronize the contents to improve the efficiency of document editing.

또한, 본 발명은 문서의 편집을 처리하기 위한 모델 서버(200)를 문서마다 할당하고 동일 문서의 공동 편집을 위해 해당 모델 서버(200)에 접속하는 다수의 사용자 장치가 다수의 편집 서버를 통해 상기 모델 서버(200)에 접속할 수 있도록 제공하여, 다수의 사용자 장치로부터 수신되는 편집 내용을 다수의 편집 서버가 분산 처리할 수 있도록 제공함으로써 공동 편집에 대한 처리 속도를 높이고 서비스에 대한 고가용성과 확장성을 지원할 수 있다.In addition, the present invention can also be applied to a case where a plurality of user apparatuses, which assign model servers 200 for document editing for each document and cooperate with the model server 200, To provide a connection to the model server 200 so that editing data received from a plurality of user apparatuses can be distributed by a plurality of editing servers to increase the processing speed for collaborative editing, .

상술한 구성을 토대로, 이하 도면을 통해 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 시스템의 상세 동작 구성을 설명한다.The detailed operation of the document editing system for collaborative editing according to an embodiment of the present invention will be described below with reference to the drawings.

우선, 도 2는 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 시스템의 동작 구성도로서, 도시된 바와 같이 사용자 장치에서 실행되는 운영 체제상의 임의의 웹 브라우저 기반에서 동작하는 문서 편집 장치(11)는 상기 편집 서버(100)로 접속할 수 있으며, 상기 편집 서버(100)는 상기 문서 편집 장치(11)가 선택한 편집 대상 문서에 대응되어 모델 서버(200)를 할당할 수 있다.FIG. 2 is a diagram illustrating the operation of a document editing system for collaborative editing according to an embodiment of the present invention. As shown in FIG. 2, a document editing apparatus 11 Can be connected to the editing server 100 and the editing server 100 can assign the model server 200 in correspondence with the editing target document selected by the document editing device 11. [

이때, 상기 편집 서버(100)는 서로 다른 개별 문서별로 편집 서버(100)를 할당할 수 있으며, 일례로 상기 문서 편집 장치(11)로부터 열람 대상인 문서에 대한 문서 식별정보를 수신하고, 상기 문서 식별정보를 기초로 문서가 저장된 외부 DB로부터 상기 문서 식별정보에 대응되는 편집 대상 문서를 추출하여 저장하며, 상기 편집 대상 문서에 대응되어 모델 서버(200)를 할당할 수 있다.At this time, the editing server 100 may allocate the editing server 100 for different individual documents. For example, the editing server 100 receives the document identification information about the document to be browsed from the document editing device 11, Extracts and stores an edition target document corresponding to the document identification information from an external DB storing the document based on the information, and allocates the model server 200 in correspondence with the edition target document.

또한, 상기 문서 편집 장치(11)는 편집 대상 문서를 렌더링(rendering)하여 상기 사용자 장치를 통해 표시하는 렌더러(renderer)를 포함할 수 있으며, 상기 문서 편집 장치(11)는 상기 사용자 장치에 구성된 사용자 입력부를 통한 사용자의 키 입력에 따른 편집 이벤트(또는 명령(command))에 대한 이벤트 정보를 생성할 수 있다.The document editing device 11 may include a renderer rendering a document to be edited and displaying the edited document through the user device. The document editing device 11 may include a user And generate event information for an editing event (or a command) according to a user's key input through the input unit.

또한, 상기 문서 편집 장치(11)는 상기 이벤트 정보 생성시 상기 이벤트 정보와 미리 설정된 사용자에 대한 사용자 식별정보 및 상기 편집 대상 문서에 대한 문서 식별정보를 포함하는 편집 요청 정보를 생성한 후 상기 편집 서버(100)로 전송할 수 있다.When the event information is generated, the document editing device 11 generates edit request information including the event information, user identification information for a predetermined user, and document identification information for the document to be edited, (100).

이때, 상기 문서 편집 장치(11)는 미리 설정된 편집 종류 중 상기 이벤트 정보에 대응되는 편집 종류에 따라 상기 편집 대상 문서를 편집한 후 편집 완료된 편집 대상 문서를 상기 렌더러를 통해 렌더링하여 상기 사용자 장치에 구성된 표시부를 통해 표시할 수 있는데, 이는 이하 도면을 통해 상세히 설명한다.At this time, the document editing device 11 edits the edit target document according to the edit type corresponding to the event information among the preset edit types, and then renders the edited target document through the renderer, And can be displayed through the display unit, which will be described in detail below with reference to the drawings.

이에 따라, 상기 편집 서버(100)는 상기 하나 이상의 문서 편집 장치(11) 각각으로부터 수신되는 편집 요청 정보를 기초로 문서를 편집 처리하고, 편집 처리 결과 서로 다른 편집 요청 정보 상호 간 충돌을 판정하여 충돌 여부에 따른 오류가 발생하지 않은 경우 동기화 서버(300)와 연동하여 복수의 문서 편집 장치(11)로부터 수신되는 편집 요청 정보를 기초로 편집 대상 문서에 대한 공동 편집이 이루어지도록 지원할 수 있는데, 이를 상세히 설명한다.Accordingly, the editing server 100 edits the document based on the editing request information received from each of the one or more document editing apparatuses 11, determines the conflict between the different editing request information as a result of the editing process, It is possible to cooperatively edit the document to be edited based on the edit request information received from the plurality of document editing apparatuses 11 in cooperation with the synchronization server 300. In detail, Explain.

우선, 상기 편집 서버(100)는 편집 제어부(110)와, 시퀀스 관리부(120) 및 공동 편집 처리부(130)를 포함할 수 있다.First, the editing server 100 may include an editing control unit 110, a sequence management unit 120, and a common editing processing unit 130.

상기 편집 제어부(110)는 상기 사용자 장치에 구성된 문서 편집 장치(11)로부터 통신망을 통해 상기 편집 대상 문서에 대한 사용자의 문서 편집에 따른 상기 편집 요청 정보를 수신할 수 있으며, 상기 편집 요청 정보를 상기 편집 대상 문서에 대응되어 할당된 모델 서버(200)로 제공할 수 있다.The editing control unit 110 can receive the editing request information according to the user's document editing of the editing target document through the communication network from the document editing apparatus 11 configured in the user apparatus, To the model server 200 allocated in correspondence with the document to be edited.

또한, 상기 모델 서버(200)는 상기 편집 요청 정보를 수신하여 상기 편집 요청 정보에 포함된 이벤트 정보를 기초로 상기 편집 대상 문서를 편집 처리할 수 있다.In addition, the model server 200 may receive the edit request information and edit the edit target document based on the event information included in the edit request information.

이후, 상기 모델 서버(200)는 상기 편집 대상 문서의 편집 처리에 따른 편집 결과 정보를 생성할 수 있으며, 상기 편집 결과 정보를 JSON(JavaScript Object Notation) 형태로 상기 편집 서버(100)에 반환할 수 있다.Thereafter, the model server 200 can generate editing result information according to the editing process of the editing target document, and can return the editing result information to the editing server 100 in the form of JSON (JavaScript Object Notation) have.

이때, JSON은 경량의 데이터 교환 형식으로서 편집 결과 정보의 데이터 자료구조로 사용될 수 있다.At this time, JSON is a lightweight data exchange format and can be used as a data structure of editing result information.

또한, 상기 편집 결과 정보는 상기 이벤트 정보에 대응되는 편집 종류와, 상기 편집 대상 문서에서 상기 이벤트 정보에 대응되는 편집 대상(또는 편집 영역)에 대한 정보 및 상기 편집 대상 문서에서 상기 이벤트 정보에 대응되는 편집 대상을 식별하여 상기 이벤트 정보에 따라 편집 대상을 처리한 결과에 대한 정보를 포함할 수 있다. 일례로, 상기 편집 결과 정보는 편집 대상 문서에 포함된 객체 중 상기 편집 요청 정보에 대응되는 편집 대상인 객체를 상기 편집 요청 정보에 따라 편집 처리하여 상기 편집 대상인 객체가 삭제된 상태 또는 상기 객체에 다른 객체를 추가하거나 상기 객체를 다른 객체로 대체한 상태에 따른 편집 결과물에 대한 정보를 의미할 수 있다.The editing result information may include at least one of an editing type corresponding to the event information, information about an editing target (or editing area) corresponding to the event information in the editing target document, And may include information on a result of processing an edit target in accordance with the event information. For example, the editing result information may be edited by editing the object, which is an editing object corresponding to the editing request information among the objects included in the editing object document, according to the editing request information, Or information on an editing result according to a state in which the object is replaced with another object.

이때, 상기 편집 서버(100)는 다른 편집 서버(100)를 통해 상기 모델 서버(200)에 접속하는 경우 상기 다른 편집 서버(100)에 구성된 모델 서버(200)로 상기 문서 편집 장치(11)로부터 수신된 편집 요청 정보를 전송하고, 해당 편집 요청 정보에 대응되어 상기 편집 결과 정보를 수신할 수 있다.When the editing server 100 accesses the model server 200 through the other editing server 100, the editing server 100 may access the editing server 100 from the document editing device 11 using the model server 200 configured in the other editing server 100 And transmits the received editing request information, and receives the editing result information corresponding to the editing request information.

또한, 상기 모델 서버(200)는 상기 편집 요청 정보 수신시 다른 편집 요청 정보와 상기 편집 요청 정보 사이의 충돌 여부를 판정할 수 있으며, 일례로 상기 편집 대상 문서에서 상기 편집 요청 정보에 대응되는 객체가 다른 편집 요청 정보에 의해 삭제되어 상기 편집 요청 정보에 따른 편집 처리가 불가능한 경우 상기 편집 요청 정보에 충돌이 발생한 것으로 판정할 수 있다.In addition, the model server 200 may determine whether there is a conflict between the edit request information and the edit request information upon receiving the edit request information. For example, the model server 200 may determine whether an object corresponding to the edit request information It is determined that a collision has occurred in the edit request information if the edit request information is deleted by the other edit request information and the edit processing according to the edit request information is impossible.

이에 따라, 상기 모델 서버(200)는 상기 편집 요청 정보에 대응되어 충돌 발생시 충돌 발생에 따른 판정 결과 정보를 상기 편집 결과 정보로 상기 편집 제어부(110)에 제공할 수 있으며, 충돌 미발생시 상기 편집 요청 정보에 대응되는 편집 결과물에 대한 편집 결과 정보를 상기 편집 제어부(110)에 제공할 수 있다.Accordingly, the model server 200 can provide the editing control unit 110 with the determination result information as a result of the collision when the collision occurs, corresponding to the editing request information, The editing control unit 110 can provide the editing result information on the editing result corresponding to the information.

한편, 상기 편집 제어부(110)는 상기 모델 서버(200)로부터 상기 편집 요청 정보에 대응되어 반환된 편집 결과 정보를 기초로 충돌 여부를 검사하고, 충돌 발생시 오류가 발생한 것으로 판정하여 상기 편집 요청 정보에 포함된 사용자 식별정보를 기초로 상기 편집 요청 정보를 전송한 사용자 장치의 문서 편집 장치(11)를 식별하고, 상기 오류 발생에 따른 오류 정보를 생성하여 상기 식별된 문서 편집 장치(11)에 대응되는 사용자 장치로 통신망을 통해 상기 오류 정보를 전송할 수 있으며, 해당 오류 정보에 대응되는 편집 요청 정보에 따른 편집 내용에 대해서는 후속 처리를 진행하지 않고 동기화 과정에서 제외시킬 수 있다.On the other hand, the editing control unit 110 checks whether there is a collision based on the editing result information corresponding to the editing request information from the model server 200, determines that an error has occurred when a collision occurs, (11) of the user apparatus that has transmitted the edit request information based on the included user identification information, generates error information according to the occurrence of the error, and generates error information corresponding to the identified document editing apparatus The error information can be transmitted to the user apparatus via the communication network and edited content corresponding to the edit request information corresponding to the error information can be excluded from the synchronization process without performing the subsequent process.

또한, 상기 문서 편집 장치(11)는 편집 서버(100)로 전송한 편집 요청 정보에 대응되어 오류 정보 수신시 오류 정보의 종류를 식별하고, 상기 오류 정보의 종류에 따라 상기 편집 결과 정보에 대한 후속 처리를 진행하지 않거나 상기 편집 서버(11)에 가장 최근에 동기화가 이루어진 문서를 요청하고, 상기 편집 서버(100)로부터 동기화된 문서 관련 정보를 수신한 후 렌더링하여 표시할 수 있다.In addition, the document editing device 11 identifies the type of error information when receiving the error information corresponding to the edit request information transmitted to the editing server 100, It may request the document that has been most recently synchronized with the editing server 11 or may receive the document related information synchronized from the editing server 100 and render and display it.

일례로, 상기 문서 편집 장치(11)는 삭제된 문단에 대한 편집 요청과 같은 편집 과정에서의 오류 발생에 따라 반환된 오류 정보에 대해서 후속 처리를 진행하지 않을 수 있다. 이 경우, 상기 문서 편집 장치(11)는 후속으로 수신되는 편집 리스트 정보를 기초로 편집 대상 문서에 대한 동기화를 수행하여 자연스럽게 다른 사용자의 편집 대상 문서와 동기화가 이루어져 오류 관련 내용이 반영되지 않도록 할 수 있다.For example, the document editing apparatus 11 may not proceed to the subsequent error information in response to an error in the editing process, such as an editing request for a deleted paragraph. In this case, the document editing device 11 synchronizes the editing target document based on the following editing list information, so that synchronization with the editing target document of another user is performed, have.

또한, 상기 문서 편집 장치(11)는 네트워크 장애나 타임아웃(time out) 발생시와 같은 장애에 따른 오류 발생시 상기 편집 서버(100)로 가장 최근에 동기화된 전체 문서 관련 정보를 재요청하고, 상기 편집 서버(100)로부터 가장 최근에 동기화된 문서에 대한 문서 정보를 수신한 후 해당 문서 정보를 렌더링하여 표시함으로써 후속 편집이 이루어지도록 제공할 수 있다. 이때, 상기 문서 편집 장치(11)는 이러한 재요청이 실패한 경우 장애 관련 메시지를 출력할 수 있으며, 일시적으로 편집 화면을 잠근 후 네트워크가 정상화되면 상기 문서 정보를 재요청하여 수신된 문서 정보를 렌더링하여 표시할 수 있으며, 이를 통해 정상적인 편집이 이루어지도록 제공할 수 있다.In addition, the document editing device 11 requests the editing server 100 to re-request the most recently synchronized whole document related information when an error occurs due to a failure such as a network failure or a time out, After receiving the document information about the most recently synchronized document from the server 100, the document information may be rendered and displayed to provide for subsequent editing. At this time, the document editing apparatus 11 can output a failure related message if the re-request fails. After the editing screen is temporarily locked, if the network is normalized, the document editing apparatus 11 requests the document information again and renders the received document information And can be provided to allow normal editing to be performed.

또한, 상기 편집 제어부(110)는 상기 편집 요청 정보에 대응되는 편집 결과 정보를 기초로 오류 발생시 해당 편집 요청 정보 및 편집 결과 정보 중 적어도 하나를 삭제 처리하여 해당 편집 요청 정보에 따른 편집 결과가 타 사용자 장치의 편집 대상 문서에 반영되지 않도록 할 수 있다.The editing control unit 110 deletes at least one of the editing request information and the editing result information at the time of occurrence of an error based on the editing result information corresponding to the editing request information, It can be prevented from being reflected in the editing target document of the apparatus.

한편, 상기 편집 제어부(110)는 상기 편집 결과 정보를 기초로 상기 편집 요청 정보에 오류 미발생시(충돌이 발생하지 않은 경우) 상기 편집 요청 정보 및 상기 편집 결과 정보를 기초로 편집 정보를 생성하고, 상기 편집 서버(100)에 구성된 시퀀스 관리부(120)로 상기 편집 정보를 제공하여 상기 시퀀스 관리부(120)와 동기화 서버(300) 상호간 통신에 따른 상기 편집 정보에 대한 시퀀스(sequence, 순번) 설정이 이루어지도록 할 수 있다.On the other hand, the editing control unit 110 generates editing information based on the editing request information and the editing result information when no error occurs in the editing request information based on the editing result information (if no conflict occurs) The sequence management unit 120 configured in the editing server 100 provides the editing information to set a sequence for the editing information according to communication between the sequence management unit 120 and the synchronization server 300 .

이를 도 3을 통해 상세히 설명하면, 상기 시퀀스 관리부(120)는 상기 편집 제어부(110)로부터 편집 정보 수신시 상기 편집 정보에 시퀀스를 설정하기 위해 상기 편집 정보에 포함된 문서 식별정보를 추출하여, 해당 문서 식별정보를 포함하는 시퀀스 요청에 대한 시퀀스 요청정보를 상기 동기화 서버(300)로 제공할 수 있다.3, the sequence management unit 120 extracts the document identification information included in the edit information in order to set a sequence to the edit information when receiving the edit information from the edit control unit 110, And may provide the sequence request information for the sequence request including the document identification information to the synchronization server 300.

이때, 상기 편집 정보는 상기 편집 결과 정보와 상기 편집 요청 정보에 포함된 사용자 식별정보 및 문서 식별정보를 포함할 수 있다.At this time, the editing information may include the editing result information and the user identification information and the document identification information included in the editing request information.

또한, 상기 동기화 서버(300)는 도시된 바와 같이 사용자 장치에 구성된 문서 편집 장치(11)가 접속한 상기 편집 서버(100a) 이외의 타 편집 서버(100b~100n)를 통해 상기 편집 서버(100a)의 모델 서버(200)에 접속한 타 사용자 장치에 대응되는 상기 편집 대상 문서에 대한 시퀀스가 설정된 다른 편집 정보를 상기 타 편집 서버(100b~100n)로부터 수집(수신)할 수 있으며, 상기 편집 대상 문서에 대한 편집 정보의 수신 순서대로(편집정보가 수신된 수선에 따라) 상기 편집 정보에 대응되어 시퀀스(순번)를 부여할 수 있다.The synchronization server 300 is connected to the editing server 100a through other editing servers 100b to 100n other than the editing server 100a connected to the document editing apparatus 11, (Receive) other editing information set in sequence with respect to the editing target document corresponding to another user apparatus connected to the model server 200 of the editing server 100, from the other editing servers 100b to 100n, (Sequential numbers) corresponding to the editing information in accordance with the order in which the editing information is received (in accordance with the repair line where the editing information is received).

이에 따라, 상기 동기화 서버(300)는 상기 편집 서버(100a)의 시퀀스 관리부(120)로부터 시퀀스 요청정보 수신시 상기 시퀀스 요청정보에 포함된 문서 식별정보를 기초로 편집 대상 문서를 식별하고, 시퀀스 요청정보 수신 시점에 해당 편집 대상 문서에 대응되어 이미 수신된 다른 편집 정보가 존재하는 경우 이미 존재하는 상기 다른 편집 정보별로 설정된 시퀀스(순번)를 확인하여 가장 마지막 순번을 식별하고, 해당 마지막 순번 다음의 순번에 해당되는 시퀀스를 상기 시퀀스 관리부(120)로부터 수신된 시퀀스 요청 정보에 대응되는 상기 편집 정보에 대응되어 부여할 수 있다.Accordingly, upon receiving the sequence request information from the sequence management unit 120 of the editing server 100a, the synchronization server 300 identifies the document to be edited based on the document identification information included in the sequence request information, If there is already received other editing information corresponding to the editing target document at the time of information reception, identifies the last sequential number by confirming the sequence (order number) set for each of the already existing other editing information, Can be assigned to the sequence information corresponding to the sequence request information received from the sequence management unit 120. [

또한, 상기 동기화 서버(300)는 상기 부여된 순번을 포함하는 시퀀스 정보를 상기 시퀀스 요청 정보를 전송한 상기 편집 서버(100a)의 시퀀스 관리부(120)로 전송할 수 있다.The synchronization server 300 may transmit the sequence information including the assigned sequence number to the sequence management unit 120 of the editing server 100a that transmitted the sequence request information.

한편, 상기 편집 서버(100a)의 편집 제어부(110)는 상기 편집 서버(100a)의 상기 시퀀스 관리부(120)로부터 상기 편집 정보에 대한 시퀀스 정보를 수신하고, 상기 시퀀스 관리부(120)를 통해 상기 동기화 서버(300)로부터 수신된 시퀀스 정보에 따른 순번을 상기 편집 정보에 대한 시퀀스로 설정하고, 상기 시퀀스가 설정된 편집 정보를 상기 동기화 서버(300)로 제공할 수 있다.The editing control unit 110 of the editing server 100a receives the sequence information of the editing information from the sequence management unit 120 of the editing server 100a, It is possible to set the sequence number according to the sequence information received from the server 300 as a sequence for the edit information and to provide the edit information set in the sequence to the synchronization server 300.

이에 따라, 상기 동기화 서버(300)는 하나 이상의 편집 서버(100a~100n)로부터 상기 편집 대상 문서에 대응되는 시퀀스가 설정된 편집 정보를 수신하여 취합할 수 있으며, 상기 하나 이상의 편집 서버(100a~100n) 각각에 시퀀스가 설정된 편집 정보를 공동 편집 정보로 제공할 수 있다.Accordingly, the synchronization server 300 can receive and collect edit information corresponding to a sequence corresponding to the edit target document from one or more edit servers 100a to 100n, and the one or more edit servers 100a to 100n can collect the edit information, It is possible to provide edit information set in each sequence as common editing information.

즉, 상기 동기화 서버(300)는 특정 편집 대상 문서에 대하여 사용자가 편집한 내용 이외에 다른 사용자가 편집한 내용(또는 편집한 결과)이 상기 사용자가 편집 중인 상기 특정 편집 대상 문서에 반영되어 동기화되도록 상기 특정 편집 대상 문서에 대한 다수 사용자의 편집 내용을 수집할 수 있으며, 편집 내용별로 수신 순서에 따라 순번을 부여하여 편집 내용이 순서대로 반영되도록 지원할 수 있다.That is, the synchronization server 300 is configured to synchronize the contents of the specific editing target document with the contents edited by the user other than the contents edited by the user, The editing contents of a plurality of users for a specific editing target document can be collected and the order of the editing contents can be assigned according to the receiving order so that the editing contents can be reflected in order.

이를 통해, 상기 동기화 서버(300)는 특정 편집 대상 문서에 대응되어 다른 편집 서버(100b~100n)로부터 수신되는 시퀀스가 설정된 편집 정보를 공동 편집 정보로 상기 편집 서버(100a)에 제공할 수 있으며, 상기 편집 서버(100a)로부터 수신된 편집 정보 역시 공동 편집 정보로 생성하여 상기 편집 서버(100a)에 전송할 수 있다.Accordingly, the synchronization server 300 can provide the editing server 100a with the editing information set in sequence received from the other editing servers 100b through 100n in correspondence with the specific editing target document as the common editing information, Editing information received from the editing server 100a may also be generated as common editing information and transmitted to the editing server 100a.

이때, 상기 동기화 서버(300)는 특정 편집 서버(100)에 대하여 동일한 편집 정보가 반복 전송되지 않도록 제어할 수 있음은 물론이며, 상기 편집 서버(100)로부터 수신되는 시퀀스가 설정된 편집 정보를 저장하고, 이후 상기 시퀀스가 설정된 편집 정보를 상기 하나 이상의 편집 서버(100a~100n) 각각에 상기 공동 편집 정보로 전송한 경우 해당 공동 편집 정보에 대응되는 상기 시퀀스가 설정된 편집 정보를 삭제처리할 수도 있다.At this time, the synchronization server 300 can control not to repeatedly transmit the same editing information to the specific editing server 100, and the editing server 100 can store the set editing information received from the editing server 100 , And if the edit information set in the sequence is transmitted as the common edit information to each of the one or more edit servers 100a to 100n, the edit information set corresponding to the common edit information may be deleted.

또한, 상기 동기화 서버(300)는 상기 시퀀스가 설정된 편집 정보의 삭제와 별개로 상기 시퀀스를 카운트하여 관리할 수 있음은 물론이다.In addition, the synchronization server 300 can count and manage the sequence separately from the deletion of the edit information set in the sequence.

또한, 상기 공동 편집 정보는 상기 편집 결과 정보와, 문서 식별정보, 사용자 식별정보 및 시퀀스를 포함할 수 있다.Also, the common edit information may include the edit result information, the document identification information, the user identification information, and the sequence.

한편, 도 2에 도시된 바와 같이 상기 편집 서버(100)에 구성된 공동 편집 처리부(130)는 상기 편집 제어부(110)의 제어에 따라 상기 편집 정보에 대응되어 상기 편집 정보에 포함된 문서 식별정보와 동일한 편집 대상 문서에 대응되는 문서 식별정보가 포함된 하나 이상의 서로 다른 공동 편집 정보를 상기 동기화 서버(300)로부터 수신하고, 미리 설정된 주기로 상기 편집 대상 문서에 대응되어 상기 동기화 서버(300)로부터 수신된 하나 이상의 서로 다른 공동 편집 정보를 순서대로 취합하여 편집 리스트(list) 정보를 생성하며, 상기 편집 리스트 정보를 웹 소켓(web socket) 기반 프로토콜(protocol)로 상기 편집 정보에 대응되는 문서 편집 장치(11)가 구성된 사용자 장치로 전송할 수 있다.2, the common editing processing unit 130 configured in the editing server 100 generates document identification information corresponding to the editing information under the control of the editing control unit 110, (300) for receiving at least one piece of different common editing information including the document identification information corresponding to the same editing target document from the synchronization server (300) And compiles one or more pieces of different common edit information in order to generate edit list information and transmits the edit list information to a document editing apparatus 11 corresponding to the edit information in a web socket- ) To the configured user equipment.

이때, 상기 공동 편집 처리부(130)는 상기 편집 리스트 정보에 포함된 복수의 공동 편집 정보를 병합하여 상기 문서 편집 장치(11)로 전송하는 데이터량을 감소시킬 수 있으며, 이를 통해 문서 편집 장치(11)를 통한 편집 대상 문서의 편집 처리에 대한 속도를 높일 수 있는데, 이를 도 4 및 도 5를 참고하여 상세히 설명한다.At this time, the common edit processing unit 130 may reduce the amount of data to be transmitted to the document editing apparatus 11 by merging a plurality of common editing information included in the edit list information, The speed of the editing process of the document to be edited can be increased. This will be described in detail with reference to FIGS. 4 and 5. FIG.

우선, 도 4에 도시된 바와 같이, 상기 공동 편집 처리부(130)는 동기화 서버(300)로부터 수신되는 공동 편집 정보를 편집 대상 문서의 문서 식별 정보에 대응되어 할당된 버퍼에 기록하며, 미리 설정된 주기로 상기 버퍼에 기록된 복수의 공동 편집 정보를 취합하여 상기 편집 리스트 정보를 생성할 수 있다.4, the common edit processing unit 130 records the common edit information received from the synchronization server 300 in a buffer allocated in correspondence with the document identification information of the edit target document, The editing list information can be generated by collecting a plurality of common editing information recorded in the buffer.

이때, 상기 공동 편집 처리부(130)는 상기 편집 리스트 정보에서 병합 가능한 데이터를 병합하는 병합 처리부(131)를 더 포함할 수 있으며, 상기 병합 처리부(131)는 상기 편집 리스트 정보에 포함된 복수의 공동 편집 정보 상호 간 공동 편집 정보에 포함된 편집 대상 관련 정보를 기초로 상기 편집 대상 문서의 편집 대상이 동일한 복수의 공동 편집 정보를 식별할 수 있다.The cooperative edit processing unit 130 may further include a merge processing unit 131 for merging mergeable data in the edit list information. The merge processing unit 131 may include a plurality of co- The plurality of pieces of common editing information having the same editing target of the editing target document can be identified based on the editing target related information included in the common editing information among the editing information.

이에 따라, 상기 공동 편집 처리부(130)에 포함된 병합 처리부(131)는 미리 설정된 규칙에 따라 상기 편집 대상이 동일한 복수의 편집 정보를 하나의 편집정보로 병합할 수 있으며, 이를 통해 상기 편집 리스트 정보를 갱신할 수 있다.Accordingly, the merge processing unit 131 included in the common edit processing unit 130 can merge a plurality of pieces of edit information having the same editing target into one piece of edit information according to a preset rule, Can be updated.

일례로, 도 5에 도시된 바와 같이 상기 병합 처리부(131)는 상기 편집 리스트 정보에 포함된 복수의 공동 편집 정보 중 1번째 시퀀스에 대응되는 공동 편집 정보에 의해 문단 1에 새로운 텍스트가 추가된 후 상기 문단 1의 텍스트를 편집 대상으로 하는 3번째와 5번째의 시퀀스에 해당되는 복수의 공동 편집 정보를 문단 1에 순서대로 반영한 편집 결과가 3번째의 시퀀스에 해당되는 공동 편집 정보를 제외하고 5번째의 공동 편집 정보를 기초로 편집한 편집 결과와 동일하므로, 3번째의 편집 내용(편집 결과)을 반영할 필요가 없어 도시된 바와 같이 3번째의 공동 편집 정보를 5번째의 공동 편집 정보와 병합할 수 있다.For example, as shown in FIG. 5, the merge processing unit 131 adds new text to paragraph 1 according to the common edit information corresponding to the first sequence of the plurality of common edit information included in the edit list information The editing result of sequentially reflecting the plurality of common edit information corresponding to the third and fifth sequences for which the text of paragraph 1 is to be edited in paragraph 1 in order, except for the common edit information corresponding to the third sequence, It is not necessary to reflect the third editing content (the editing result), so that the third co-editing information is merged with the fifth co-editing information as shown in the figure .

또한, 상기 병합 처리부(131)는 상기 편집 리스트 정보에서 시퀀스가 3번째인 공동 편집 정보를 삭제하거나 상기 3번째인 공동 편집 정보에서 편집 결과 정보를 삭제하여 상기 3번째의 공동 편집 정보에 따른 편집 처리가 발생되지 않도록 할 수 있다.In addition, the merge processing unit 131 deletes the joint edit information having the third sequence from the edit list information, or deletes the edit result information from the third joint edit information, and performs the edit processing according to the third joint edit information Can be prevented.

상술한 바와 같이, 상기 공동 편집 처리부(130)는 동일 편집 대상을 가진 복수의 공동 편집 정보를 식별하고, 식별된 상기 복수의 공동 편집 정보 중 하나의 공동 편집 정보에 따른 편집 결과와 상기 복수의 공동 편집 정보에 따른 편집 결과가 상호 동일한 경우 하나의 공동 편집 정보로 병합하여 편집 리스트 정보의 데이터를 감소시킬 수 있다.As described above, the common edit processing unit 130 identifies a plurality of common editing information having the same editing target, and outputs editing results in accordance with one of the plurality of common editing information identified, If the editing results according to the editing information are the same, it is possible to reduce the data of the editing list information by merging into one piece of common editing information.

또한, 상기 공동 편집 처리부(130)는 상기 편집 리스트 정보를 상기 사용자 장치의 문서 편집 장치(11)로 전송할 수 있으며, 상기 편집 대상 문서의 편집에 참여하는 복수의 서로 다른 사용자 장치를 상기 편집 리스트 정보에 포함되는 하나 이상의 공동 편집 정보 각각에 포함된 사용자 식별정보를 기초로 식별하거나 상기 편집 서버(100)에 수신된 각 편집 요청 정보에 포함되는 사용자 식별정보를 기초로 식별하여, 상기 복수의 서로 다른 사용자 장치로 상기 편집 리스트 정보를 전송함으로써, 서로 다른 복수의 사용자 장치 각각에 구성된 임의의 웹 브라우저 기반 문서 편집 장치(11) 상호 간 편집 대상 문서를 동기화시킬 수 있다.In addition, the common edit processing unit 130 may transmit the edit list information to the document editing apparatus 11 of the user apparatus. The common edit processing unit 130 may transmit a plurality of different user apparatuses participating in editing of the edit target document, The identification information included in each editing request information included in each edit request information received by the editing server 100, or the identification information included in each of the plurality of different editing request information included in the editing request information received by the editing server 100, By transmitting the edit list information to the user device, it is possible to synchronize the document to be edited between any of the web browser-based document editing apparatuses 11 configured in different user apparatuses.

이때, 상기 공동 편집 처리부(130)는 상기 사용자 장치에 전송되는 편집 리스트 정보에 포함된 공동 편집 정보에서 편집 결과 정보와 시퀀스를 제외한 나머지 정보를 삭제하여 상기 사용자 장치로 전송할 수 있으며, 이를 통해 사용자 장치에 전송되는 데이터량을 더욱 감소시킬 수 있다.At this time, the common edit processing unit 130 deletes the editing result information and the remaining information excluding the sequence from the common edit information included in the edit list information transmitted to the user device, and transmits the deleted information to the user device, It is possible to further reduce the amount of data to be transmitted.

이를 통해, 상기 편집 서버(100)는 복수의 서로 다른 사용자가 공동으로 편집 중인 편집 대상 문서를 각 사용자에게 동일하게 표시되도록 함과 동시에 편집 결과가 정확하게 공유되도록 지원하여 공동 편집에 대한 편의성 및 정확도를 높일 수 있다.Accordingly, the editing server 100 displays the editing target document, which is being edited jointly by a plurality of different users, equally to each user, and at the same time, supports the editing result to be accurately shared, .

또한, 상기 편집 서버(100)는 상기 편집 리스트 정보에 따른 데이터를 병합 처리하고 웹 소켓 기반으로 전송하여 복수의 문서 편집 장치(11) 각각에 대한 통신량을 감소시킬 수 있으므로, 문서 편집 장치(11)에 편집 결과가 신속하게 반영되도록 하여 편집 속도를 증가시킬 수 있으며 이를 통해 공동 편집의 효율성 및 반응속도를 크게 개선할 수 있다.The editing server 100 can reduce the amount of communication for each of the plurality of document editing apparatuses 11 by merging data according to the editing list information and transmitting the merged data on a web socket basis. So that the editing speed can be increased and the efficiency and response speed of the collaborative editing can be greatly improved.

이때, 상기 편집 서버(100)는 미리 설정된 주기로 상기 편집 리스트 정보 생성시마다 상기 병합 처리부(131)에 의한 데이터 병합이 이루어지도록 동작할 수 있음은 물론이다.In this case, the editing server 100 may operate to merge data by the merging processor 131 each time the editing list information is generated at a preset cycle.

한편, 상기 문서 편집 장치(11)는 도 2에 도시된 바와 같이 상기 편집 서버(100)로부터 편집 리스트 정보를 수신하고, 상기 편집 리스트 정보에 포함된 공동 편집 정보별로 설정된 시퀀스를 확인하여, 상기 공동 편집 정보별 시퀀스를 기초로 순서대로 상기 공동 편집 정보를 상기 편집 대상 문서에 반영하여 편집 처리할 수 있으며, 상기 편집 리스트 정보에 포함된 상기 공동 편집 정보를 기초로 상기 편집 대상 문서를 편집 처리하고, 편집 처리시마다 편집 대상 문서를 렌더링하여 상기 사용자 장치의 표시부를 통해 표시할 수 있다.2, the document editing apparatus 11 receives edit list information from the editing server 100, confirms a sequence set for the common edit information included in the edit list information, The editing target document can be edited and processed by sequentially reflecting the common editing information on the basis of the sequence of editing information, and the editing target document is edited on the basis of the common editing information included in the editing list information, A document to be edited can be rendered for each editing process and displayed on the display unit of the user device.

이때, 상기 문서 편집 장치(11)는 상기 공동 편집 정보에 포함된 편집 결과 정보를 기초로 편집 대상 문서에서 편집 결과 정보에 대응되는 편집 대상을 식별하고, 상기 편집 결과 정보에 따른 편집 내용(편집 결과)으로 상기 식별된 편집 대상에 표시함으로써 편집 처리할 수 있으며, 이를 통해 편집 결과 정보에 따른 편집 결과와 동일한 편집 결과가 상기 편집 대상 문서에서 식별된 편집 대상에 표시되도록 할 수 있다.At this time, the document editing device 11 identifies an editing object corresponding to the editing result information in the editing object document based on the editing result information included in the common editing information, ) On the edit target identified by the edit target document, so that the same edit result as the edit result according to the edit result information can be displayed on the edit target identified in the edit target document.

또한, 상기 편집 리스트 정보를 수신한 서로 다른 복수의 사용자 장치 각각에 구성된 문서 편집 장치(11)는 상기 편집 리스트 정보를 기초로 순서대로 편집 대상 문서를 편집 처리할 수 있으며, 이를 통해 서로 다른 사용자 장치 상호간 상기 편집 리스트 정보를 통해 편집된 문서가 동일하게 표시되어 편집 대상 문서가 상호 동기화되도록 할 수 있다.In addition, the document editing apparatus 11 configured in each of the plurality of different user apparatuses receiving the edit list information can edit the edit target document in order based on the edit list information, Documents edited through the edit list information are displayed in the same manner so that the documents to be edited can be synchronized with each other.

한편, 상술한 구성에서 상기 문서 편집 장치(11)는 상기 사용자 입력에 따라 편집 대상 문서에 대응되어 생성된 이벤트 정보에 따른 편집 내용을 상기 이벤트 정보에 대응되는 편집 종류에 따라 상기 편집 대상 문서에 즉시 반영하거나 상기 편집 리스트 정보 수신시 상기 편집 대상 문서에 반영할 수 있는데, 이를 도 6을 참고하여 상세히 설명한다.Meanwhile, in the above-described configuration, the document editing apparatus 11 immediately edits the edited contents according to the event information generated corresponding to the edited document in accordance with the user input, to the edited document in accordance with the edited type corresponding to the event information Or reflected on the edit target document upon receiving the edit list information, will be described in detail with reference to FIG.

우선, 상기 편집 종류는 의존적 편집(Dependent Action)과 비의존적 편집(Independent Action)으로 구분될 수 있으며, 상기 의존적 편집 및 비의존적 편집 각각에 대응되어 서로 다른 하나 이상의 이벤트가 설정될 수 있다.First, the editing type may be classified into Dependent Action and Independent Action, and one or more different events may be set corresponding to the dependent editing and the non-dependent editing, respectively.

일례로, 상기 비의존적 편집은 텍스트 입력, 텍스트 삭제, 줄바꿈 등과 같은 이벤트가 설정될 수 있으며, 상기 의존적 편집은 비의존적 편집 이외의 이벤트로서 텍스트 스타일 변경, 표 편집, 번호 매기기 등과 같은 이벤트가 설정될 수 있다.For example, the non-dependent editing may set an event such as a text input, a text deletion, a line break, and the like, and the dependent editing may be an event other than the non-dependent editing, .

이에 따라, 도 6(a)에 도시된 바와 같이, 상기 문서 편집 장치(11)는 상기 이벤트 정보 생성시 상기 이벤트 정보에 따른 이벤트에 대응되는 편집 종류가 비의존적 편집인 경우 상기 편집 대상 문서를 상기 이벤트 정보에 따라 편집 처리한 후 즉시 렌더링하여 상기 사용자 장치의 표시부를 통해 표시할 수 있으며, 이를 통해 사용자가 편집 내용을 실시간으로 확인할 수 있도록 지원할 수 있다.6 (a), when the event information is generated, the document editing apparatus 11 updates the editing target document to the event It is possible to perform the editing process according to the information and immediately render it and display it through the display unit of the user device, thereby enabling the user to view the editing contents in real time.

이때, 상기 문서 편집 장치(11)는 상기 비의존적 편집에 대응되는 이벤트 정보 생성시 상기 이벤트 정보에 대응되는 편집 요청 정보를 생성하여 상기 편집 서버(100)로 전송할 수 있음은 물론이며, 상기 비의존적 편집에 따라 상기 편집 대상 문서에서 편집된 대상은 상기 편집 리스트 정보에 따라 다시 편집 처리될 수 있다.At this time, when the event information corresponding to the independent editing is generated, the document editing apparatus 11 can generate the editing request information corresponding to the event information and transmit the editing request information to the editing server 100, An object edited in the edit target document in accordance with the edit can be edited again according to the edit list information.

또한, 도 6(b)에 도시된 바와 같이, 상기 문서 편집 장치(11)는 상기 이벤트 정보 생성시 상기 이벤트 정보에 따른 이벤트에 대응되는 편집 종류가 의존적 편집인 경우 상기 편집 대상 문서를 바로 편집 처리하지 않고 상기 편집 요청 정보를 전송하여 상기 편집 리스트 정보에 상기 의존적 편집 관련 상기 이벤트 정보에 대응되는 공동 편집 정보가 수신된 경우에 상기 이벤트 정보에 대응되는 편집 내용으로 편집 처리할 수 있다.6 (b), when the event information is generated, the document editing device 11 does not directly edit the edit target document when the edit type corresponding to the event according to the event information is dependent on the edit And edit edit information corresponding to the event information when the edit edit information corresponding to the dependency-related event information is received in the edit list information.

한편, 도 2에 도시된 바와 같이, 상기 편집 서버(100)는 상기 문서 편집 장치(11)로부터 수신된 편집 요청 정보에 대응되어 수신된 편집 결과 정보에서 충돌이 발생하지 않은 경우 상기 편집 결과 정보를 포함하는 편집 정보를 생성하고, 상기 편집 정보에 시퀀스를 설정하여 상기 동기화 서버(300)에 전송함과 동시에 상기 편집 요청 정보를 전송한 문서 편집 장치(11)로 전송할 수 있다.2, when the editing server 100 receives the editing request information received from the document editing apparatus 11 and does not have a conflict in the received editing result information, And transmits the edit request information to the document editing apparatus 11, which transmits the edit request information to the synchronization server 300.

이때, 상기 편집 서버(100)는 상기 편집 정보를 HTTP(hypertext transfer protocol)를 이용하여 상기 문서 편집 장치(11)로 전송할 수 있다.At this time, the editing server 100 may transmit the editing information to the document editing device 11 using hypertext transfer protocol (HTTP).

이에 따라, 상기 문서 편집 장치(11)는 상기 편집 서버(100)로부터 상기 편집 정보 수신시 상기 편집 정보에 따라 상기 편집 대상 문서를 편집 처리한 후 렌더링하여 표시하거나 상기 편집 정보의 수신 시점에 상기 편집 리스트 정보를 기초로 편집 중인 경우 상기 편집 정보에 설정된 시퀀스와 상기 편집 리스트 정보에 포함된 공동 편집 정보별 시퀀스를 확인하여, 상기 편집 정보에 설정된 시퀀스에 해당되는 순번에서 상기 편집 정보에 따라 상기 편집 대상 문서를 편집 처리한 후 렌더링하여 표시할 수 있다.Accordingly, when the editing information is received from the editing server 100, the document editing device 11 edits the editing target document in accordance with the editing information, and displays it by rendering or displaying the editing target document at the time of receiving the editing information. And if the editing information is being edited on the basis of the list information, confirms the sequence of the editing information and the sequence of the common editing information included in the editing list information, and, in the sequence corresponding to the sequence set in the editing information, The document can be edited, rendered, and displayed.

상술한 구성을 통해, 본 발명에 따른 문서 편집 장치(11) 및 편집 서버(100)는 편집 리스트 정보가 수신되기 이전에 사용자 입력에 따른 이벤트 정보를 기초로 편집 대상 문서에 사용자의 편집 내용을 선반영하여 사용자가 자신의 편집 내용을 실시간으로 확인할 수 있도록 지원하고, 추후 공동 편집에 따라 해당 편집 내용이 변경되도록 지원함으로써 공동 편집 과정에서 사용자가 실시간으로 문서 편집을 수행할 수 있도록 지원하여 문서 편집에 대한 사용자 편의성을 높일 수 있다.Through the above-described configuration, the document editing device 11 and the editing server 100 according to the present invention allow the user to edit the editing contents of the editing target document on the basis of the event information according to the user's input before the editing list information is received. It enables users to check their edited contents in real time, and supports the editing contents to be changed according to the common editing later, so that users can perform editing of the document in real time during the cooperative editing process, Thereby enhancing user convenience.

상술한 바와 같이, 본 발명은 편집 대상 문서에 대한 사용자별 편집 내용을 서버 측에서 취합한 후 편집 내용별로 순서를 설정하여 다수의 사용자로부터 수신된 편집 내용을 주기적으로 동기화하고, 이를 기반으로 동기화된 공동 편집 정보를 동일한 편집 대상 문서의 편집에 참여하는 사용자별 문서 편집 장치에 제공하여 해당 문서 편집 장치를 통해 공동 편집 중인 편집 대상 문서의 편집 결과가 동일하게 표시되도록 함으로써, 사용자가 실시간으로 편집 대상 문서를 편집할 수 있도록 지원하여 기존의 특정 사용자가 편집 대상 문서의 편집 권한을 독점하여 다수의 사용자가 편집 대상 문서의 편집을 위해 대기하는 불편을 개선하는 동시에 동일 문서의 공동 편집에 대한 편의성 및 정확도를 높일 수 있다.As described above, according to the present invention, editing contents received from a plurality of users are periodically synchronized by collecting user-specific editing contents of a document to be edited on the server side and then setting the order of editing contents, By providing the common editing information to the user-specific document editing device participating in the editing of the same editing target document, so that the editing result of the editing target document being co-edited through the corresponding document editing device is displayed in the same manner, So that it is possible to improve the inconvenience that a specific user is allowed to edit the document to be edited by monopolizing the editing authority of the document to be edited, and at the same time, the convenience and accuracy of the common editing of the same document .

또한, 본 발명은 편집 과정에서 발생하는 서로 다른 복수 사용자의 편집 내용 상호 간 충돌을 판정한 후 판정 결과에 따라 오류가 발생한 편집 내용이 반영되지 않도록 하거나 후속으로 전달받은 편집 내용으로 동기화가 맞춰지도록 할 수 있으며, 사용자가 실시간으로 문서 편집 장치를 통해 편집 대상 문서를 편집하는 과정에서 편집 서버로부터 수신된 편집 리스트 정보를 기초로 다른 사용자의 편집에 따른 편집 결과가 주기적으로 사용자가 편집 대상 문서를 편집하는 도중에 상기 편집 대상 문서에 반영되도록 지원하여 사용자의 웹 기반 편집 대상 문서에 대한 실시간 편집을 지원하는 동시에 서로 다른 사용자 간 동일 편집 대상 문서에 대한 동기화가 이루어지도록 지원함으로써 공동 편집의 실시간성을 보장하고 이에 따라 공동 편집 관련 업무 효율을 높일 수 있다.In addition, according to the present invention, it is possible to prevent conflicts between editing contents of different users occurring in the editing process, and to prevent the edited content from being erroneously reflected on the basis of the determination result, In a process in which a user edits a document to be edited through a document editing device in real time, an editing result obtained by editing another user based on the edit list information received from the editing server is periodically edited by the user It is possible to support real-time editing of the web-based editing target document of the user while supporting synchronization of the same editing target document between different users, thereby realizing the real time performance of the cooperative editing. Co-editing related tasks It can increase the rate.

더하여, 본 발명은 편집 서버에서 편집 리스트 정보에 따른 데이터를 병합 처리하고 웹 소켓 기반으로 문서 편집 장치에 편집 리스트 정보를 전송하여 복수의 문서 편집 장치 각각에 대한 통신량을 감소시킬 수 있을 뿐 아니라 문서 편집 장치에 편집 결과가 신속하게 반영되도록 하여 편집 속도를 증가시킬 수 있으며 이를 통해 공동 편집의 효율성 및 문서 편집 장치의 반응속도를 크게 개선할 수 있다.In addition, according to the present invention, it is possible not only to reduce the amount of communication for each of a plurality of document editing devices by merging data according to edit list information in an editing server and transmitting edit list information to a document editing device based on a web socket, It is possible to increase the editing speed by allowing the editing result to be quickly reflected on the device, thereby greatly improving the efficiency of the cooperative editing and the response speed of the document editing device.

도 7은 본 발명의 실시예에 따른 공동 편집을 위한 문서 편집 방법에 대한 순서도이다.FIG. 7 is a flowchart illustrating a document editing method for collaborative editing according to an embodiment of the present invention.

우선, 상기 편집 서버(100)는 상기 사용자 장치에 구성되어 운영 체제상의 웹 브라우저 기반에서 동작하는 문서 편집 장치(11)와 통신망을 통해 통신할 수 있으며, 상기 사용자 장치를 통해 상기 편집 서버(100)로 접속한 상기 문서 편집 장치(11)가 편집을 위해 선택한 편집 대상 문서에 대응되어 상기 모델 서버(200)를 할당할 수 있다(S1, S2).The editing server 100 may communicate with a document editing apparatus 11 operating on a web browser based on an operating system through a communication network. The editing server 100 may communicate with the editing server 100 through the user apparatus, The model server 200 can be allocated to the document editing apparatus 11 connected to the model server 200 in correspondence with the document to be edited selected for editing (S1, S2).

또한, 상기 문서 편집 장치(11)는 상기 편집 대상 문서에 대한 사용자의 문서 편집에 따른 편집 요청 정보를 생성하여 상기 편집 서버(100)로 전송할 수 있으며(S3), 상기 편집 서버는 상기 편집 대상 문서에 대응되는 모델 서버로 상기 편집 요청 정보를 전송할 수 있다(S4).In addition, the document editing device 11 may generate edit request information according to a user's document editing of the edit target document and transmit the edit request information to the edit server 100 (S3) To the model server corresponding to the editing request information (S4).

다음, 상기 편집 서버(100)는 상기 모델 서버(200)로부터 상기 편집 요청 정보에 따라 문서를 편집한 편집 결과 정보를 수신하고(S5), 상기 편집 결과 정보를 기초로 편집 정보를 생성한 후(S6) 상기 편집 정보에 대한 시퀀스를 상기 동기화 서버(300)에 요청할 수 있다(S7).Next, the editing server 100 receives editing result information obtained by editing the document according to the editing request information from the model server 200 (S5), generates editing information based on the editing result information ( S6) The synchronization server 300 may request the sequence of the editing information (S7).

이후, 상기 동기화 서버(300)는 상기 편집 서버(100)로부터 시퀀스 요청 수신시 상기 시퀀스 요청 이전에 상기 하나 이상의 편집 서버(100) 각각으로부터 이미 수신된 상기 편집 대상 문서에 대한 시퀀스가 설정된 편집 정보를 기초로 상기 시퀀스 요청에 대응되는 상기 편집 정보의 시퀀스를 결정한 후 상기 편집 서버(100)로 제공할 수 있다(S8).When the sequence request is received from the editing server 100, the synchronization server 300 transmits editing information, which has already been received from each of the one or more editing servers 100 before the sequence request, The sequence of the editing information corresponding to the sequence request may be determined, and the sequence may be provided to the editing server 100 (S8).

다음, 상기 편집 서버(100)는 상기 시퀀스 요청에 대응되어 상기 동기화 서버(300)로부터 수신된 시퀀스를 상기 시퀀스 요청에 대응되는 상기 편집 정보에 설정한 후(S9) 상기 동기화 서버(300)로 제공할 수 있다(S10).Next, the editing server 100 sets the sequence received from the synchronization server 300 in response to the sequence request to the edit information corresponding to the sequence request (S9), and provides the sequence to the synchronization server 300 (S10).

이후, 상기 동기화 서버(300)는 상기 하나 이상의 편집 서버(100) 각각으로부터 상기 편집 대상 문서에 대응되어 상기 시퀀스가 설정된 편집 정보를 수신하고, 상기 시퀀스가 설정된 편집 정보를 공동 편집 정보로 상기 하나 이상의 편집 서버(100) 각각에 제공할 수 있다(S11).Thereafter, the synchronization server 300 receives edit information corresponding to the edit target document from each of the one or more edit servers 100, the edit information having the sequence set therein, Editing server 100 (S11).

이에 따라, 상기 편집 서버(100)는 상기 편집 대상 문서에 대한 타 사용자 또는 상기 사용자 장치에 대응되는 사용자의 편집에 따라 생성된 상기 공동 편집 정보를 상기 동기화 서버(300)로부터 수신한 후 상기 문서 편집 장치(11)로 전송할 수 있다(S12).Accordingly, the editing server 100 receives the common editing information generated according to the editing of the other user for the editing object document or the user corresponding to the user apparatus from the synchronization server 300, To the device 11 (S12).

또한, 상기 문서 편집 장치(11)는 상기 편집 서버(100)로부터 하나 이상의 상기 공동 편집 정보를 수신하여 상기 시퀀스에 따른 순서대로 상기 공동 편집 정보에 따라 상기 편집 대상 문서를 편집 처리할 수 있다(S13).In addition, the document editing apparatus 11 may receive one or more of the common editing information from the editing server 100 and edit the editing target document in accordance with the common editing information in order according to the sequence (S13 ).

상술한 구성에서, 상기 편집 서버(100)는 미리 설정된 주기로 서로 다른 복수의 상기 공동 편집 정보를 취합하여 편집 리스트 정보를 생성한 후 상기 문서 편집 장치(11)로 전송하고, 상기 문서 편집 장치(11)는 상기 편집 리스트 정보에 포함된 각 공동 편집 정보의 시퀀스를 기초로 순서대로 상기 공동 편집 정보를 상기 편집 대상 문서에 반영하여 편집 처리할 수 있다.In the above-described configuration, the editing server 100 generates edit list information by collecting a plurality of different pieces of common edit information at a predetermined cycle, and then transmits the edit list information to the document editing apparatus 11, ) Can edit and process the common edit information on the edit target document in order based on the sequence of the common edit information included in the edit list information.

이때, 상기 문서 편집 장치(11)가 상기 편집 서버(100)로부터 수신되는 하나 이상의 공동 편집 정보를 취합하여 미리 설정된 시간 단위(주기)로 상기 편집 서버(100)로부터 수신된 하나 이상의 공동 편집 정보를 포함하는 상기 편집 리스트 정보를 생성할 수도 있음은 물론이다.At this time, the document editing apparatus 11 collects one or more pieces of common editing information received from the editing server 100, and collects one or more pieces of common editing information received from the editing server 100 in a predetermined time unit (period) It is also possible to generate the edit list information including the edit list information.

또한, 상기 문서 편집 장치(11)는 편집 리스트 정보에 포함된 모든 공동 편집 정보가 편집 대상 문서에 적용된 경우 해당 편집 리스트 정보를 삭제할 수도 있다.Also, the document editing device 11 may delete the edit list information when all the common edit information included in the edit list information is applied to the edit target document.

본 명세서에 기술된 다양한 장치 및 구성부는 하드웨어 회로(예를 들어, CMOS 기반 로직 회로), 펌웨어, 소프트웨어 또는 이들의 조합에 의해 구현될 수 있다. 예를 들어, 다양한 전기적 구조의 형태로 트랜지스터, 로직게이트 및 전자회로를 활용하여 구현될 수 있다.The various devices and components described herein may be implemented by hardware circuitry (e.g., CMOS-based logic circuitry), firmware, software, or a combination thereof. For example, it can be implemented utilizing transistors, logic gates, and electronic circuits in the form of various electrical structures.

전술된 내용은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or essential characteristics thereof. 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. 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.

11: 문서 편집 장치 100: 편집 서버
110: 편집 제어부 120: 시퀀스 관리부
130: 공동 편집 처리부 131: 병합 처리부
200: 모델 서버 300: 동기화 서버
11: Document editing device 100: Editing server
110: edit control unit 120: sequence management unit
130: co-edit processing unit 131:
200: model server 300: synchronization server

Claims (10)

서로 다른 복수의 사용자 장치와 통신망을 통해 통신하는 하나 이상의 편집 서버 및 상기 편집 서버와 통신망을 통해 연결된 동기화 서버를 포함하는 공동 편집을 위한 문서 편집 시스템에 있어서,
사용자 장치에서 실행되는 운영 체제상의 웹 브라우저 기반에서 동작하며, 사용자의 문서 편집에 따른 편집 요청 정보를 전송하는 문서 편집 장치;
개별 문서마다 문서의 편집 처리를 위한 모델 서버를 할당하며, 상기 문서 편집 장치로부터 수신된 상기 편집 요청 정보에 따른 편집 대상 문서에 대응되어 할당된 모델 서버에 상기 편집 요청 정보를 제공하여 상기 편집 대상 문서를 편집한 편집 결과 정보를 상기 모델 서버로부터 수신하고, 상기 편집 결과 정보를 기초로 편집 정보를 생성한 후 상기 편집 정보에 대한 시퀀스를 상기 동기화 서버에 요청하여 수신된 시퀀스를 상기 편집 정보에 설정한 후 상기 동기화 서버로 제공하고, 상기 편집 대상 문서에 대한 타 사용자 또는 상기 사용자 장치에 대응되는 사용자의 편집에 따라 생성된 공동 편집 정보를 상기 동기화 서버로부터 수신하여 상기 문서 편집 장치로 전송하는 편집 서버; 및
상기 하나 이상의 편집 서버 각각으로부터 수신되는 상기 편집 대상 문서에 대한 시퀀스가 설정된 편집 정보를 기초로 상기 시퀀스 요청에 대응되는 상기 편집 정보에 대한 시퀀스를 결정한 후 상기 편집 서버로 제공하며, 상기 시퀀스가 설정된 상기 편집 정보를 상기 공동 편집 정보로 제공하는 동기화 서버를 포함하며,
상기 편집 서버는,
상기 동기화 서버로부터 상기 편집 대상 문서에 대응되는 상기 공동 편집 정보를 수신하여 상기 편집 대상 문서에 대응되어 할당된 버퍼에 기록하며, 미리 설정된 주기로 버퍼에 기록된 서로 다른 복수의 상기 공동 편집 정보를 취합하여 상기 복수의 공동 편집 정보를 포함하는 편집 리스트 정보를 생성한 후 상기 문서 편집 장치로 전송하는 것을 특징으로 하는 공동 편집을 위한 문서 편집 시스템.
1. A document editing system for collaborative editing, comprising: at least one editing server for communicating with a plurality of different user devices via a communication network; and a synchronization server connected to the editing server via a communication network,
A document editing device operating on a web browser on an operating system running on a user device and transmitting edit request information according to a user's document editing;
A model server for editing a document is assigned to each of the individual documents, and the edit request information is provided to the model server allocated corresponding to the edit target document according to the edit request information received from the document edit device, The editing server receives the editing result information from the model server, generates editing information based on the editing result information, requests the synchronization server for the editing information, and sets the received sequence in the editing information An editing server which provides the editing information to the synchronization server and receives the common editing information generated in accordance with the editing of a user corresponding to the editing object document or a user corresponding to the user apparatus from the synchronization server and transmits the common editing information to the document editing apparatus; And
A sequence for the editing target document received from each of the one or more editing servers determines a sequence of the editing information corresponding to the sequence request based on the set editing information and provides the sequence to the editing server; And a synchronization server for providing editing information as the common editing information,
The editing server includes:
Receiving the common editing information corresponding to the editing target document from the synchronization server, recording the common editing information in a buffer allocated to the editing target document, collecting a plurality of different common editing information recorded in the buffer at a preset period Wherein the editing information generating unit generates editing list information including the plurality of common editing information, and then transmits the editing list information to the document editing apparatus.
청구항 1에 있어서,
상기 편집 서버는 상기 편집 결과 정보를 기초로 상기 다른 편집 요청 정보와의 충돌에 따른 오류 발생 여부를 판단하여 상기 오류 발생시 오류 정보를 생성하여 상기 문서 편집 장치로 전송하는 것을 특징으로 하는 공동 편집을 위한 문서 편집 시스템.
The method according to claim 1,
Wherein the editing server determines whether an error has occurred due to the collision with the other editing request information based on the editing result information, generates error information upon occurrence of the error, and transmits the error information to the document editing device Document editing system.
청구항 1에 있어서,
상기 편집 서버는 상기 모델 서버가 다른 편집 서버에 구성된 경우 상기 다른 편집 서버에 구성된 모델 서버로 상기 편집 요청 정보를 전송하고, 상기 편집 요청 정보에 대응되어 상기 편집 대상 문서에 대한 편집 결과 정보를 수신하는 것을 특징으로 하는 공동 편집을 위한 문서 편집 시스템.
The method according to claim 1,
The editing server transmits the editing request information to the model server configured in the other editing server when the model server is configured in another editing server and receives editing result information on the editing target document corresponding to the editing request information A document editing system for collaborative editing.
청구항 1에 있어서,
상기 편집 요청 정보는 상기 편집 대상 문서의 식별을 위한 문서 식별정보, 사용자 장치의 식별을 위한 사용자 식별 정보 및 상기 사용자 장치를 통한 사용자의 키 입력에 따른 편집 내용에 대한 이벤트 정보를 포함하고,
상기 편집 결과 정보는 상기 문서 식별정보, 사용자 식별정보 및 상기 이벤트 정보를 기초로 상기 편집 대상 문서를 편집 처리한 결과에 대한 정보를 포함하는 것을 특징으로 하는 공동 편집을 위한 문서 편집 시스템.
The method according to claim 1,
Wherein the editing request information includes document identification information for identifying the editing target document, user identification information for identifying the user apparatus, and event information for editing contents according to the user's key input through the user apparatus,
Wherein the editing result information includes information on a result of editing the editing target document based on the document identification information, the user identification information, and the event information.
삭제delete 청구항 1에 있어서,
상기 편집 서버는 상기 문서 편집 장치에 웹 소켓 기반으로 상기 편집 리스트 정보를 전송하는 것을 특징으로 하는 공동 편집을 위한 문서 편집 시스템.
The method according to claim 1,
Wherein the editing server transmits the edit list information to the document editing apparatus based on a web socket.
청구항 1에 있어서,
상기 편집 서버는 상기 편집 대상 문서의 동일 편집 대상에 대한 복수의 서로 다른 공동 편집 정보가 상기 편집 리스트 정보 존재시 미리 설정된 규칙에 따라 상기 동일 편집 대상에 대한 복수의 서로 다른 공동 편집 정보를 하나의 공동 편집 정보로 병합하여 상기 편집 리스트 정보를 갱신하는 것을 특징으로 하는 공동 편집을 위한 문서 편집 시스템.
The method according to claim 1,
Wherein the editing server is configured to edit a plurality of different common editing information for the same editing object of the editing object document in accordance with a rule set in advance in the presence of the editing list information, And the edit list information is merged with the edit information to update the edit list information.
청구항 1에 있어서,
상기 문서 편집 장치는 상기 편집 서버로부터 수신되는 상기 편집 리스트 정보에 포함된 상기 공동 편집 정보별 시퀀스를 식별하고, 상기 시퀀스에 따른 순서대로 상기 편집 리스트 정보에 포함된 상기 복수의 공동 편집 정보 각각을 기초로 상기 편집 대상 문서를 편집 처리한 후 렌더링하여 상기 사용자 장치를 통해 표시하는 것을 특징으로 하는 공동 편집을 위한 문서 편집 시스템.
The method according to claim 1,
Wherein the document editing apparatus identifies a sequence of the common edit information included in the edit list information received from the editing server and sequentially arranges each of the plurality of common edit information included in the edit list information in the order of the sequence Wherein the editing target document is edited, rendered, and displayed through the user device.
청구항 8에 있어서,
상기 문서 편집 장치는 편집 내용에 대한 이벤트 정보가 미리 설정된 비의존적 편집 관련 이벤트인 경우 상기 이벤트 정보를 기초로 상기 편집 대상 문서를 편집하여 렌더링한 후 상기 사용자 장치를 통해 표시하고, 상기 이벤트 정보에 대응되는 상기 편집 요청 정보를 상기 편집 서버로 전송하는 것을 특징으로 하는 공동 편집을 위한 문서 편집 시스템.
The method of claim 8,
Wherein the document editing apparatus edits and edits the editing target document based on the event information if the event information on the edited content is a preset non-dependent editing related event, displays the edited document on the user device, And the editing server transmits the editing request information to the editing server.
서로 다른 복수의 사용자 장치와 통신망을 통해 통신하는 하나 이상의 편집 서버 및 상기 편집 서버와 통신망을 통해 연결된 동기화 서버의 공동 편집을 위한 문서 편집 방법에 있어서,
상기 편집 서버가 상기 사용자 장치가 선택한 편집 대상 문서에 대응되어 문서의 편집 처리를 위한 모델 서버를 할당하는 단계;
상기 사용자 장치에 구성되어 운영 체제상의 웹 브라우저 기반에서 동작하는 문서 편집 장치가 상기 편집 대상 문서에 대한 사용자의 문서 편집에 따른 편집 요청 정보를 생성하여 상기 편집 서버로 전송하는 단계;
상기 편집 서버가 상기 모델 서버로부터 상기 편집 요청 정보에 따라 문서를 편집한 편집 결과 정보를 수신하고, 상기 편집 결과 정보를 기초로 생성한 편집 정보에 대한 시퀀스를 상기 동기화 서버에 요청하는 단계;
상기 동기화 서버가 상기 시퀀스 요청에 따라 상기 하나 이상의 편집 서버 각각으로부터 수신되는 상기 편집 대상 문서에 대한 시퀀스가 설정된 편집 정보를 기초로 상기 시퀀스 요청에 대응되는 상기 편집 정보의 시퀀스를 결정한 후 상기 편집 서버로 제공하는 단계;
상기 편집 서버가 상기 시퀀스 요청에 대응되어 상기 동기화 서버로부터 수신된 시퀀스를 상기 시퀀스 요청에 대응되는 상기 편집 정보에 설정한 후 상기 동기화 서버로 제공하는 단계;
상기 동기화 서버가 상기 하나 이상의 편집 서버 각각으로부터 상기 편집 대상 문서에 대응되어 상기 시퀀스가 설정된 편집 정보를 수신하고, 상기 시퀀스가 설정된 편집 정보를 공동 편집 정보로 상기 하나 이상의 편집 서버 각각에 제공하는 단계; 및
상기 편집 서버가 상기 편집 대상 문서에 대한 타 사용자 또는 상기 사용자 장치에 대응되는 사용자의 편집에 따라 생성된 상기 공동 편집 정보를 상기 동기화 서버로부터 수신한 후 상기 문서 편집 장치로 전송하여 상기 시퀀스에 따른 순서대로 상기 공동 편집 정보에 따른 문서 편집이 처리되도록 하는 단계를 포함하며,
상기 공동 편집 정보를 상기 동기화 서버로부터 수신한 후 상기 문서 편집 장치로 전송하여 상기 시퀀스에 따른 순서대로 상기 공동 편집 정보에 따른 문서 편집이 처리되도록 하는 단계는,
상기 편집 서버가 상기 동기화 서버로부터 상기 편집 대상 문서에 대응되는 상기 공동 편집 정보를 수신하여 상기 편집 대상 문서에 대응되어 할당된 버퍼에 기록하며, 미리 설정된 주기로 버퍼에 기록된 서로 다른 복수의 상기 공동 편집 정보를 취합하여 상기 복수의 공동 편집 정보를 포함하는 편집 리스트 정보를 생성한 후 상기 문서 편집 장치로 전송하는 것을 특징으로 하는 는 공동 편집을 위한 문서 편집 방법.
A document editing method for cooperative editing of at least one editing server communicating with a plurality of different user devices via a communication network and a synchronization server connected to the editing server via a communication network,
The editing server assigning a model server for editing the document in correspondence with the editing target document selected by the user apparatus;
A step in which a document editing apparatus configured in the user apparatus and operating on a web browser based on an operating system generates edit request information according to a user's document editing of the edit target document and transmits the edit request information to the edit server;
Receiving, by the editing server, editing result information obtained by editing a document according to the editing request information from the model server, and requesting a sequence of editing information generated based on the editing result information to the synchronization server;
Wherein the synchronization server determines a sequence of the editing information corresponding to the sequence request based on the editing information of the sequence of the editing target document received from each of the one or more editing servers according to the sequence request, ;
Setting a sequence received from the synchronization server in response to the sequence request to the editing information corresponding to the sequence request, and providing the sequence to the synchronization server;
The synchronization server receiving editing information corresponding to the editing target document from each of the one or more editing servers and having the sequence set and providing the editing information with the sequence as common editing information to each of the one or more editing servers; And
The editing server receives the common editing information generated according to the editing of a user corresponding to the editing object document or a user corresponding to the user apparatus from the synchronization server and transmits the common editing information to the document editing apparatus, And editing the document according to the co-editing information,
Receiving the common editing information from the synchronization server and transmitting the combined editing information to the document editing device so that document editing in accordance with the common editing information is processed in order according to the sequence,
Wherein the editing server receives the common editing information corresponding to the editing target document from the synchronization server and records the common editing information in a buffer allocated corresponding to the editing target document, Wherein the edit information generating unit generates the edit list information including the plurality of common edit information by collecting the information, and transmits the edit list information to the document editing apparatus.
KR1020170023456A 2017-02-22 2017-02-22 Document editing system and method for collaborative editing KR101750429B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170023456A KR101750429B1 (en) 2017-02-22 2017-02-22 Document editing system and method for collaborative editing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170023456A KR101750429B1 (en) 2017-02-22 2017-02-22 Document editing system and method for collaborative editing

Publications (1)

Publication Number Publication Date
KR101750429B1 true KR101750429B1 (en) 2017-06-23

Family

ID=59283349

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170023456A KR101750429B1 (en) 2017-02-22 2017-02-22 Document editing system and method for collaborative editing

Country Status (1)

Country Link
KR (1) KR101750429B1 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101926566B1 (en) * 2017-10-13 2018-12-07 주식회사 한글과컴퓨터 Editing command processing server apparatus for performing editing command processing in a document collaborative editing system having a multi-server environment and operating method thereof
KR101950422B1 (en) * 2017-08-10 2019-02-20 (주)사이냅소프트 Document editing system and method for collaborative editing that supports setting edit permission
KR20190041627A (en) * 2017-10-13 2019-04-23 주식회사 한글과컴퓨터 Method for avoiding conflict in collaboration and apparatus using the same
KR20200000643A (en) * 2018-06-25 2020-01-03 주식회사 한글과컴퓨터 Web electric document editing apparatus for supporting cross-browsing and operating method thereof
KR20200103135A (en) * 2019-02-07 2020-09-02 주식회사 한글과컴퓨터 Electronic terminal device capable of editing a web-based document in cooperation with a document editing server and operating method thereof
KR20200106292A (en) * 2019-03-04 2020-09-14 주식회사 한글과컴퓨터 Document editing server that enables co-editing of web-based documents based on object identifiers and operating method thereof
CN113204528A (en) * 2021-03-29 2021-08-03 北京意匠文枢科技有限公司 Method and device for sharing document
WO2022114434A1 (en) * 2020-11-26 2022-06-02 (주)소셜인프라테크 Document data agenda review system through automatic review of upper hierarchical regulatory law
CN115079891A (en) * 2021-03-01 2022-09-20 北京字跳网络技术有限公司 Document content display method and device and electronic equipment
WO2023063666A1 (en) * 2021-10-12 2023-04-20 삼성전자 주식회사 Method for providing collaborative editing service and server therefor
US11681869B2 (en) 2020-01-15 2023-06-20 International Business Machines Corporation Methods and systems for managing collaborative editing of content
CN116796294A (en) * 2023-05-22 2023-09-22 深圳市英唐数码科技有限公司 Background file management method, system and storage medium
WO2024080586A1 (en) * 2022-10-14 2024-04-18 삼성전자주식회사 Electronic device and method for co-editing in multiple device environment

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501969A (en) * 2003-08-07 2007-02-01 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and computer program for creating collaborative e-mail documents (collaborative e-mail)

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501969A (en) * 2003-08-07 2007-02-01 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, system, and computer program for creating collaborative e-mail documents (collaborative e-mail)

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101950422B1 (en) * 2017-08-10 2019-02-20 (주)사이냅소프트 Document editing system and method for collaborative editing that supports setting edit permission
KR101926566B1 (en) * 2017-10-13 2018-12-07 주식회사 한글과컴퓨터 Editing command processing server apparatus for performing editing command processing in a document collaborative editing system having a multi-server environment and operating method thereof
KR20190041627A (en) * 2017-10-13 2019-04-23 주식회사 한글과컴퓨터 Method for avoiding conflict in collaboration and apparatus using the same
KR102017338B1 (en) * 2017-10-13 2019-10-21 주식회사 한글과컴퓨터 Method for avoiding conflict in collaboration and apparatus using the same
KR20200000643A (en) * 2018-06-25 2020-01-03 주식회사 한글과컴퓨터 Web electric document editing apparatus for supporting cross-browsing and operating method thereof
KR102067499B1 (en) 2018-06-25 2020-01-17 주식회사 한글과컴퓨터 Web electric document editing apparatus for supporting cross-browsing and operating method thereof
KR102187543B1 (en) 2019-02-07 2020-12-07 주식회사 한글과컴퓨터 Electronic terminal device for processing web-based document editing in cooperation with a document editing server and operating method thereof
KR20200103135A (en) * 2019-02-07 2020-09-02 주식회사 한글과컴퓨터 Electronic terminal device capable of editing a web-based document in cooperation with a document editing server and operating method thereof
KR20200106292A (en) * 2019-03-04 2020-09-14 주식회사 한글과컴퓨터 Document editing server that enables co-editing of web-based documents based on object identifiers and operating method thereof
KR102215576B1 (en) * 2019-03-04 2021-02-15 주식회사 한글과컴퓨터 Document editing server that enables co-editing of web-based documents based on object identifiers and operating method thereof
US11681869B2 (en) 2020-01-15 2023-06-20 International Business Machines Corporation Methods and systems for managing collaborative editing of content
WO2022114434A1 (en) * 2020-11-26 2022-06-02 (주)소셜인프라테크 Document data agenda review system through automatic review of upper hierarchical regulatory law
CN115079891A (en) * 2021-03-01 2022-09-20 北京字跳网络技术有限公司 Document content display method and device and electronic equipment
CN115079891B (en) * 2021-03-01 2024-03-15 北京字跳网络技术有限公司 Document content display method and device and electronic equipment
CN113204528A (en) * 2021-03-29 2021-08-03 北京意匠文枢科技有限公司 Method and device for sharing document
WO2023063666A1 (en) * 2021-10-12 2023-04-20 삼성전자 주식회사 Method for providing collaborative editing service and server therefor
WO2024080586A1 (en) * 2022-10-14 2024-04-18 삼성전자주식회사 Electronic device and method for co-editing in multiple device environment
CN116796294A (en) * 2023-05-22 2023-09-22 深圳市英唐数码科技有限公司 Background file management method, system and storage medium

Similar Documents

Publication Publication Date Title
KR101750429B1 (en) Document editing system and method for collaborative editing
CN110019279B (en) Online document collaborative updating method, device, equipment and storage medium
CN110515573B (en) Screen projection method, device and system and computer equipment
CN110515572B (en) Screen projection method and device, storage medium and computer equipment
CN106874389B (en) Data migration method and device
CN107395658B (en) Offline peer-to-peer assisted notification transmission
KR101950422B1 (en) Document editing system and method for collaborative editing that supports setting edit permission
CN112380093A (en) Operation and maintenance processing method and device and computer equipment
CN104427169B (en) Remote supporting apparatus, electronic installation and remote supporting method
CN112632919B (en) Document editing method and device, computer equipment and storage medium
RU2004131856A (en) METHODS AND DEVICE FOR SYNCHRONIZING HOW DATA IS STORED IN VARIOUS DATA STORAGES
JP6945211B2 (en) Communication support devices, methods, and computer programs
CN106161523A (en) A kind of data processing method and equipment
US20150326620A1 (en) Media presentation in a virtual shared space
CN110572437A (en) Data interaction method and system for client and server in online and offline states
CN111651418A (en) Document content downloading method and device, computer equipment and storage medium
CN112560129A (en) Building information model data cooperation method and system based on component level
US11237854B2 (en) Providing a virtual desktop within a computing environment
JP2014010486A (en) Information processing device and authorization information management method
CN114416883A (en) Block chain light node data synchronization method, device, equipment and readable storage medium
WO2024093549A1 (en) Document processing method and apparatus, and electronic device, storage medium and program product
CN103621047A (en) A method to synchronize content across networks
CN110489483B (en) Data synchronization method, device, computer equipment and storage medium
CN107741994A (en) A kind of data-updating method and device
JP5552720B2 (en) Storage system, storage server, user data sharing method, and program

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant