KR101954061B1 - 공동 편집 문서를 공유하는 방법 및 장치 - Google Patents

공동 편집 문서를 공유하는 방법 및 장치 Download PDF

Info

Publication number
KR101954061B1
KR101954061B1 KR1020170014474A KR20170014474A KR101954061B1 KR 101954061 B1 KR101954061 B1 KR 101954061B1 KR 1020170014474 A KR1020170014474 A KR 1020170014474A KR 20170014474 A KR20170014474 A KR 20170014474A KR 101954061 B1 KR101954061 B1 KR 101954061B1
Authority
KR
South Korea
Prior art keywords
clients
command
editing
edit
overload
Prior art date
Application number
KR1020170014474A
Other languages
English (en)
Other versions
KR20180089752A (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 KR1020170014474A priority Critical patent/KR101954061B1/ko
Publication of KR20180089752A publication Critical patent/KR20180089752A/ko
Application granted granted Critical
Publication of KR101954061B1 publication Critical patent/KR101954061B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F17/24
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Abstract

본 발명은 공동 편집 문서를 공유하는 방법 및 장치에 관한 것으로서, 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치는 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 복수의 클라이언트 각각에 송신하는 명령어 전달 서버를 포함하고, 명령어 전달 서버는, 복수의 클라이언트 각각에서의 편집 명령어의 수신에 대응하여, 복수의 클라이언트 각각의 큐 사이즈 (Queue Size) 정보를 수신하고, 큐 사이즈 정보를 기초로 복수의 클라이언트에서 과부하의 발생 여부를 판단하고, 과부하가 발생한 경우, 복수의 클라이언트 각각에 편집 제한 명령어를 송신하고, 명령어를 전달하는 서버가 클라이언트에서의 과부하 발생 여부를 판단함으로써, 클라이언트에서의 과부하를 억제하도록 편집 명령어의 송신을 제어할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공할 수 있는 효과가 있다.

Description

공동 편집 문서를 공유하는 방법 및 장치{METHOD AND APPARATUS FOR SHARING COMMON EDITING DOCUMENTS}
본 발명은 공동 편집 문서를 공유하는 방법 및 장치에 관한 것으로서, 보다 상세하게는 공동으로 편집하는 문서를 효율적으로 공유할 수 있는 공동 편집 문서를 공유하는 방법 및 장치에 관한 것이다.
최근 통신 기술이 발달함에 따라, 인터넷을 통해 다양한 서비스가 제공되고 있다. 특히, 인터넷을 통해 대용량의 파일들이 이동되고 대량의 데이터가 송수신된다. 이에 따라, 인터넷을 통해 언제 어디서든지 다양한 파일을 공유하는 기술도 발달하게 되었다.
이와 같이 다양한 통신 기술 (예를 들어, 인터넷)을 기초로 단말기를 사용하는 사용자들이 가상의 저장소에 데이터 또는 파일을 저장하고 가상의 저장소를 통해 데이터 또는 파일을 주고 받고 공유도 할 수 있는 서비스를 클라우드 (cloud) 서비스라고 한다. 클라우드 서비스를 통해 사용자는 데이터 또는 파일을 자유롭게 사용할 수 있다. 구체적으로, 클라우드 서비스를 통해 사용자는 시간과 공간의 제약을 받지 않고 데이터 또는 파일을 다운로드 (download) 또는 업로드 (upload) 할 수 있고, 데이터 또는 파일을 다른 사용자들과 공유할 수도 있다.
이러한 클라우드 서비스는 데이터 또는 파일을 저장하고 공유하는 저장소인 공유 서버를 기반으로 제공된다. 구체적으로, 사용자들은 공유 서버를 통해 문서 파일을 저장 및 공유하고, 사용자들은 각자의 단말기를 통해 문서 파일을 편집할 수 있다.
다만, 사용자들이 각자의 단말기에서 공유하는 공동 편집 문서를 편집하는 경우, 공유 서버는 사용자들의 단말기 각각에서 입력하는 편집 명령어를 수신하여, 편집 명령어를 공동 편집 문서에 반영하고 공동 편집 문서를 갱신하기 위한 엔진 (engine) 을 포함할 수 있다. 이에 따라, 공동 편집 문서를 공유하는 단말기의 수가 증가함에 따라 공유 서버는 공동 편집 문서를 편집하는 내용을 반영하기 위해 요구되는 엔진을 더 많이 필요로 하고, 많은 엔진을 사용함에 따라 공유 서버가 처리해야 할 데이터의 부하도 증가한다. 또한, 공동 편집 문서를 편집하기 위한 공유 서버에 연결되고, 공동 편집 문서를 편집하고자 하는 복수의 단말기들 각각의 성능은 상이할 수 있다. 즉, 공동 편집 문서를 편집하는 단말기마다 공유 서버로부터 전송되는 편집 명령어를 적용하여 공동 편집 문서를 업데이트하는 속도가 상이할 수 있다. 이에 따라, 공동 편집 문서를 편집하는 단말기들의 성능 및 편집 동작의 차이로 인해 단말기들에서의 과부하 문제가 발생할 수 있다. 또한, 단말기들에서의 과부하로 인해 단말기에서 적용되지 않은 다른 편집 명령어가 누적되거나 단말기 간의 문서 동기화 문제로 편집 충돌이 발생하여, 편집 내용이 유실되고 클라우드 서비스의 질이 저하되는 문제점이 발생할 수 있다.
따라서, 공유 및 편집을 위한 공동 편집 문서를 편집하는 단말기 각각에서의 부하를 감소시키고 효율적으로 공동 편집 문서를 공유하고 편집할 수 있는 공동 편집 문서를 공유하는 방법을 제공할 필요성이 증대되었다.
문서협업 방법 (한국공개특허 제 10-2014-0028040 호)
본 발명이 해결하고자 하는 과제는 명령어를 전달하는 서버가 클라이언트에서의 과부하 발생 여부를 판단함으로써, 클라이언트에서의 과부하를 억제하도록 편집 명령어의 송신을 제어하는 공동 편집 문서를 공유하는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 클라이언트에서의 과부하 상태를 실시간으로 파악함으로써, 클라이언트의 과부하를 방지하고, 클라이언트의 과부하로 인한 공동 편집 문서에서의 편집 내용 유실을 방지할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치는 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 복수의 클라이언트 각각에 송신하는 명령어 전달 서버를 포함하고, 명령어 전달 서버는, 복수의 클라이언트 각각에서의 편집 명령어의 수신에 대응하여, 복수의 클라이언트 각각의 편집 명령어 큐 사이즈 (Queue Size) 정보를 수신하고, 큐 사이즈 정보를 기초로 복수의 클라이언트에서 과부하의 발생 여부를 판단하고, 과부하가 발생한 경우, 복수의 클라이언트 각각에 편집 제한 명령어를 송신한다.
본 발명의 다른 특징에 따르면, 명령어 전달 서버는, 과부하의 발생 여부를 판단하는 클라이언트 과부하 판단부를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 클라이언트 과부하 판단부는, 미리 결정된 클라이언트 과부하 판단 로직을 포함하고, 미리 결정된 클라이언트 과부하 판단 로직은 복수의 과부하 판단 조건을 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는, 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 복수의 클라이언트에서 과부하가 발생한 것으로 판단할 수 있다.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는, 과부하가 해소된 경우, 복수의 클라이언트 각각에 편집 제한 해제 명령어를 송신할 수 있다.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는, 복수의 클라이언트 중 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 과부하의 해소 여부를 판단할 수 있다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법은 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 수신한 편집 명령어를 복수의 클라이언트 각각에 송신하는 단계, 복수의 클라이언트 각각에서의 편집 명령어의 수신에 대응하여, 복수의 클라이언트 각각의 큐 사이즈 정보를 수신하는 단계, 큐 사이즈 정보를 기초로 복수의 클라이언트에서 과부하의 발생 여부를 판단하는 단계, 및 과부하가 발생한 경우, 복수의 클라이언트 각각에 편집 제한 명령어를 송신하는 단계를 포함한다.
본 발명의 다른 특징에 따르면, 과부하가 해소된 경우, 복수의 클라이언트 각각에 편집 제한 해제 명령어를 송신하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 편집 제한 해제 명령어를 송신하는 단계는, 복수의 클라이언트 중 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 과부하의 해소 여부를 판단하는 단계를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 과부하의 발생 여부를 판단하는 단계는, 큐 사이즈 정보를 기초로 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 복수의 클라이언트에서 과부하가 발생한 것으로 판단하는 단계일 수 있다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법을 제공하는 명령어들을 저장하는 컴퓨터 판독 가능 기록매체는 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 수신한 편집 명령어를 복수의 클라이언트 각각에 송신하고, 복수의 클라이언트 각각에서의 편집 명령어의 수신에 대응하여, 복수의 클라이언트 각각의 큐 사이즈 정보를 수신하고, 큐 사이즈 정보를 기초로 복수의 클라이언트에서 과부하의 발생 여부를 판단하고, 과부하가 발생한 경우, 복수의 클라이언트 각각에 편집 제한 명령어를 송신한다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 명령어를 전달하는 서버가 클라이언트에서의 과부하 발생 여부를 판단함으로써, 클라이언트에서의 과부하를 억제하도록 편집 명령어의 송신을 제어할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명은 클라이언트에서의 과부하 상태를 실시간으로 파악함으로써, 클라이언트의 과부하를 방지하고, 클라이언트의 과부하로 인한 공동 편집 문서에서의 편집 내용 유실을 방지할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치와 공유 서버, 바로가기 파일 서버 및 클라이언트 사이의 관계를 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 따라 공동 편집 문서 파일을 공유하기 위한 절차를 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이다.
도 4는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 큐 사이즈 정보를 수신하는 단계를 예시적으로 도시한 것이다.
도 5는 본 발명의 일 실시예에 따른 명령어 전달 서버에서의 클라이언트 과부하 판단 로직을 예시적으로 도시한 것이다.
도 6은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 클라이언트의 편집을 제한하는 과정을 예시적으로 도시한 것이다.
도 7은 본 발명의 다른 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 클라이언트의 편집 제한을 해제하는 과정을 예시적으로 도시한 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우 '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
구성요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
별도로 명시하지 않는 한 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
이하, 본 명세서에서 사용되는 용어에 대해 정의한다.
본 명세서에서 공동 편집 문서 파일이란, 클라이언트가 공동으로 편집하고자 하는 문서 파일로서, 편집 명령어가 적용되어 갱신되며, 클라이언트가 공유하는 편집용 문서 파일을 의미한다. 여기서, 클라이언트는 공동 편집 문서를 공유하는 장치에 연결된다. 이러한 공동 편집 문서 파일은 공동 편집 문서를 공유하는 장치에 저장되어 있다가 클라이언트가 문서 파일의 공유를 요청하는 경우 클라이언트로 송신될 수 있다.
본 명세서에서 편집 명령어란, 클라이언트가 공유하는 문서를 편집하는 명령어로서, 공동 편집 문서 파일에 입력되는 다양한 명령어를 포함한다. 예를 들어, 편집 명령어는 공동 편집 문서의 적어도 일부 내용을 삭제하는 삭제 명령어 및 그림과 같은 객체를 삽입하는 삽입 명령어 등을 포함할 수 있다. 임의의 클라이언트에서 입력한 편집 명령어는 공동 편집 문서를 공유하는 장치로 송신된 후 공동 편집 문서를 공유하는 장치에 연결된 모든 클라이언트들로 송신될 수 있다. 이와 같이, 복수의 클라이언트들이 입력한 편집 명령어가 공동 편집 문서를 공유하는 장치로부터 복수의 클라이언트들 각각에 동시에 전송되는 것을 편집 명령어 브로드캐스팅(broadcasting)이라고 할 수 있다.
본 명세서에서 명령어 리스트란, 편집 명령어를 수신하여 미리 정해진 규칙에 따라 수신한 편집 명령어를 저장한 리스트이다. 명령어 리스트는 클라이언트가 편집 명령어를 수신한 순서대로 저장하여 생성될 수 있고, 명령어 저장 서버가 편집 명령어를 수신한 순서대로 저장하여 생성될 수도 있다. 또는, 명령어 리스트는 공동 편집 문서 파일의 갱신 조건이 충족되기 전까지 수신된 편집 명령어를 저장한 리스트일 수 있다.
도 1은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치와 공유 서버, 바로가기 파일 서버 및 클라이언트 사이의 관계를 도시한 것이다.
도 1을 참조하면, 공동 편집 문서를 공유하는 장치 (이하, 공동 편집 문서 공유 장치) (100) 는 문서 저장 서버 (110), 명령어 전달 서버 (120) 및 명령어 저장 서버 (130) 를 포함한다. 이에, 공동 편집 문서를 공유하는 장치 (100) 는 공동 편집 문서 파일을 편집 명령어와 병합하여 갱신된 공동 편집 문서를 자동 저장하는 엔진을 갖는 별도의 서버를 포함하지 않는다.
도 1을 참조하면, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 와 통신 가능하도록 연결될 수 있다. 또한, 공동 편집 문서 공유 장치 (100) 는 공유 서버 (1000) 및 바로가기 파일 서버 (1200) 와도 통신 가능하도록 연결될 수 있다.
문서 저장 서버 (110) 는 공유 서버 (1000) 에 업로드된 문서 파일을 기초로 생성된 공동 편집 문서 파일을 복수의 클라이언트 (900) 로 송신한다. 즉, 문서 저장 서버 (110) 는 공동 편집 문서 파일 및 갱신 공동 편집 문서 파일을 저장하고, 복수의 클라이언트 (900) 에 공동 편집 문서 파일 및 갱신 공동 편집 문서 파일을 제공할 수 있다.
명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 복수의 클라이언트 (900) 각각으로 송신한다. 예를 들어, 명령어 전달 서버 (120) 는 제1 클라이언트 (901) 로부터 수신한 편집 명령어를 복수의 클라이언트 (900) 각각에 모두 송신한다. 즉, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 별도로 저장하지 않고 다시 복수의 클라이언트 (900) 전체에 송신한다. 또한, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 명령어 저장 서버 (130) 로 전송한다. 이에 따라, 명령어 전달 서버 (120) 를 통해 편집 명령어는 서버에서 별도의 저장 공간을 차지하지 않으며, 클라이언트 모두에 신속하게 전달될 수 있다.
또한, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 순서대로 편집 명령어를 복수의 클라이언트 (900) 전체에 송신할 수 있다. 예를 들어, 제1 클라이언트 (901) 로부터 제1 편집 명령어를 먼저 수신하고, 이후 제2 클라이언트 (902) 로부터 제2 편집 명령어를 다음으로 수신하는 경우, 명령어 전달 서버 (120) 는 제1 편집 명령어를 먼저 복수의 클라이언트 (900) 각각에 동시에 송신하고, 그 다음으로 수신된 제2 편집 명령어를 복수의 클라이언트 (900) 각각에 동시에 송신한다. 이에 따라, 명령어 전달 서버 (120) 는 편집 명령어를 수신한 순서대로 동시에 복수의 클라이언트 (900) 에 송신하여, 복수의 클라이언트 (900) 가 실시간으로 공동 편집 문서 파일을 편집할 수 있다.
명령어 저장 서버 (130) 는 명령어 전달 서버 (120) 로부터 전송된 편집 명령어들을 저장한다. 구체적으로, 명령어 저장 서버 (130) 는 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 저장한다. 예를 들어, 명령어 저장 서버 (130) 는 명령어 전달 서버 (120) 가 편집 명령어를 전송한 순서대로 저장할 수 있다. 여기서, 명령어 전달 서버 (120) 가 전송한 순서는 명령어 전달 서버 (120) 가 편집 명령어를 수신한 순서와 동일할 수 있다. 나아가, 명령어 저장 서버 (130) 는 편집 명령어를 수신한 순서대로 저장하여 명령어 리스트를 생성하고, 명령어 리스트를 저장할 수 있다. 이에 따라, 복수의 클라이언트 (900) 가 공동 편집 문서를 공유하는 장치와의 접속이 끊기더라도, 명령어 저장 서버 (130) 에 의해 편집 명령어들이 손실되는 것이 방지되고, 복수의 클라이언트 (900) 가 편집 명령어를 다시 수신하여 갱신 공동 편집 문서 파일을 생성할 수 있다.
도 1을 참조하면, 복수의 클라이언트 (900) 는 제1 클라이언트 (901), 제2 클라이언트 (902) 및 제3 클라이언트 (903) 를 포함한다. 도 1에는 복수의 클라이언트 (900) 가 3개의 클라이언트를 포함하는 것으로 도시되었으나, 복수의 클라이언트 (900) 에 포함되는 클라이언트의 수는 이에 제한되지 않는다. 바람직하게는 복수의 클라이언트 (900) 는 10개 이상의 클라이언트를 포함할 수 있다.
도 1을 참조하면, 복수의 클라이언트 (900) 는 공유 서버 (1000) 에 공동 편집하고자 하는 문서 파일을 업로드할 수 있다. 구체적으로, 복수의 클라이언트 (900) 중 임의의 하나의 클라이언트, 예를 들어, 제1 클라이언트 (901) 가 공유 서버 (1000) 에 공유하고자 하는 문서 파일을 업로드할 수 있다. 이하, 제1 클라이언트 (901) 가 공유 서버 (1000) 에 문서 파일을 업로드한 경우를 기준으로 공동 편집 문서를 공유하는 방법을 설명한다.
또한, 복수의 클라이언트 (900) 는 명령어 전달 서버 (120) 로부터 전송된 편집 명령어들을 저장한다. 특히, 복수의 클라이언트 (900) 는 명령어 전달 서버 (120) 가 전송한 순서대로 편집 명령어들을 저장할 수 있다. 여기서, 명령어 전달 서버 (120) 가 전송한 순서는 명령어 전달 서버 (120) 가 편집 명령어를 수신한 순서와 동일할 수 있다. 나아가, 복수의 클라이언트 (900) 는 편집 명령어를 수신한 순서대로 저장하여 명령어 리스트를 생성할 수도 있다.
나아가, 복수의 클라이언트 (900) 각각은 공동 편집 문서 파일 및 편집 명령어를 기초로 갱신 공동 편집 문서 파일을 생성하는 자동 저장 엔진 (engine) 을 포함한다.
또한, 복수의 클라이언트 (900) 각각은 클라이언트의 성능이 상이할 수 있다. 즉, 복수의 클라이언트 (900) 각각은 수신하는 편집 명령어를 공동 편집 문서에 반영하여 갱신 공동 편집 문서 파일을 생성하는 속도에서 상이할 수 있다. 이로 인해, 복수의 클라이언트 (900) 각각이 편집 명령어를 순간적으로 과도하게 수신하는 경우, 갱신 공동 편집 문서 파일을 생성하거나 편집 명령어를 공동 편집 문서에 반영하는 속도가 느린 클라이언트는 과부하 상태가 될 수 있다. 이에, 과부하 상태에 있는 클라이언트에는 수신한 편집 명령어가 계속 누적될 수 있으며, 과부하 상태에 있지 않은 클라이언트에서의 갱신 공동 편집 문서 파일은 과부하 상태에 있는 클라이언트에서의 갱신 공동 편집 문서 파일과 상이해질 수 있다. 나아가, 복수의 클라이언트 (900) 에서 갱신 공동 편집 문서 파일의 동기화 문제가 발생할 수 있으며, 이후 계속 누적되는 편집 명령어를 반영하는 과정에서 갱신 공동 편집 문서 파일의 편집 충돌이 발생하여 편집 내용이 유실될 수도 있다. 이와 같은 문제점을 억제할 수 있도록 복수의 클라이언트 (900) 중 미리 결정된 과부하 상태에 있는 클라이언트가 존재하는 경우, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 에 편집 제한 명령어를 송신한다. 과부하 상태에 있는 복수의 클라이언트 (900) 에 대한 공동 편집 문서 공유 장치 (100) 의 구체적인 동작에 대해서는 도 2 내지 도 6을 참조하여 후술한다.
도 1을 참조하면, 공유 서버 (1000) 는 공동 편집 문서 공유 장치 (100) 에 문서 파일에 관한 정보를 제공할 수 있다. 예를 들어, 공유 서버 (1000) 는 문서 파일을 복사하여 공동 편집 문서 공유 장치 (100) 에 공동 편집 문서 파일을 제공할 수 있다.
도 1을 참조하면, 바로가기 파일 서버 (1200) 는 공유 서버 (1000) 와 통신 가능하도록 연결된다. 구체적으로, 바로가기 파일 서버 (1200) 는 공유 서버 (1000) 에 업로드된 문서 파일을 기초로 바로가기 파일을 생성한다. 예를 들어, 제1 클라이언트 (901) 가 문서 파일을 다른 클라이언트들과 공유하고자 하는 공유 신호를 공유 서버 (1000) 가 수신하는 경우, 바로가기 파일 서버 (1200) 는 업로드된 문서 파일을 기초로 바로가기 파일을 생성한다.
이에 따라, 편집 명령어의 전달은 공동 편집 문서 공유 장치 (100) 에 의해 실행되고, 공동 편집 문서 파일의 갱신은 복수의 클라이언트 (900) 각각에 의해 실행된다. 즉, 공동 편집 문서 공유 장치 (100) 는 편집 명령어만을 복수의 클라이언트 (900) 에 전달하고, 별도의 공동 편집 문서 파일을 갱신하지 않는다. 이에, 복수의 클라이언트 (900) 각각의 성능에 따라 공동 편집 문서 파일의 갱신 속도가 상이해질 수 있다. 나아가, 갱신 공동 편집 문서 파일의 생성 속도가 상이해짐에 따라, 복수의 클라이언트 (900) 각각에서 수신한 편집 명령어를 처리하는 속도도 상이해지고, 공동 편집 문서 파일의 갱신 속도가 느린 클라이언트는 수신한 편집 명령어가 누적되어 과부하 상태가 될 수 있다. 이에, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 에 편집 명령어를 송신하고 복수의 클라이언트 (900) 로부터 과부하 상태를 체크할 수 있는 정보를 수신하여, 복수의 클라이언트 (900) 가 과부하 상태에 있지 않도록 미리 제어할 수 있다. 이에 따라, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 의 과부하 상태를 억제하고, 공동 편집 문서 파일에서의 편집 명령어의 충돌 및 편집 내용 유실을 방지할 수 있다.
공동 편집 문서 공유 장치 (100) 의 각 구성들은 설명의 편의상 개별적인 구성으로 도시한 것일 뿐, 구현 방법에 따라 하나의 구성으로 구현되거나 하나의 구성이 2 이상의 구성으로 분리될 수 있다.
도 2는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 따라 공동 편집 문서 파일을 공유하기 위한 절차를 도시한 것이다. 도 3은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이다. 도 4는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 큐 사이즈 정보를 수신하는 단계를 예시적으로 도시한 것이다. 도 5는 본 발명의 일 실시예에 따른 명령어 전달 서버에서의 클라이언트 과부하 판단 로직을 예시적으로 도시한 것이다. 도 6은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 클라이언트의 편집을 제한하는 과정을 예시적으로 도시한 것이다. 설명의 편의를 위해 도 1을 참조하여 설명한다.
공동 편집 문서 공유 장치 (100) 에서 명령어 전달 서버 (120) 는 공동 편집 문서 파일을 갖는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 복수의 클라이언트 (900) 각각에 송신한다 (S210).
먼저, 도 3을 참조하면, 문서 저장 서버 (110) 는 공동 편집 문서 파일을 저장하고, 공동 편집 문서 공유 장치 (100) 에 연결되어 공동 편집을 요청한 복수의 클라이언트 (900) 각각에 공동 편집 문서 파일을 송신한다. 구체적으로, 복수의 클라이언트 (900) 가 문서 파일을 공유하고자 하는 경우, 문서 저장 서버 (110) 는 공유 요청한 문서 파일에 대응하는 공동 편집 문서 파일을 클라이언트에 송신할 수 있다.
또한, 문서 저장 서버 (110) 는 복수의 공동 편집 문서 파일을 저장할 수 있다. 예를 들어, 문서 저장 서버 (110) 가 제1 공동 편집 문서 파일 (111) 을 저장하고 있는 상태에서, 클라이언트의 요청에 의해 새로운 공동 편집 문서 파일인 제2 공동 편집 문서 파일 (112) 이 생성되면 문서 저장 서버 (110) 는 생성된 제2 공동 편집 문서 파일 (112) 을 추가로 저장한다. 이에 따라, 문서 저장 서버 (110) 는 공유 서버에 업로드된 문서 파일을 기초로 생성된 공동 편집 문서 파일 및 갱신 공동 편집 문서 파일을 모두 저장할 수 있다.
도 3에서 복수의 클라이언트 (900) 는 '시드 1'이라고 표시된 공동 편집 문서 파일을 공유하면서, 이에 대한 편집 명령어를 입력하여 공동 편집 문서 파일을 편집하는 구성이 예시적으로 도시되어 있다.
도 3을 참조하면, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 동시에 복수의 클라이언트 (900) 전체에 송신한다. 여기서, 명령어 전달 서버 (120) 는 공동 편집 문서 파일을 갖는 복수의 클라이언트 (900) 로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 복수의 클라이언트 (900) 각각에 송신한다. 또한, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 로부터 수신한 편집 명령어를 저장하지 않고 곧바로 복수의 클라이언트 (900) 전체에 송신한다.
이어서, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 각각에서의 편집 명령어의 수신에 대응하여, 복수의 클라이언트 (900) 각각의 큐 사이즈 (QS; Queue Size) 정보를 수신한다 (S220).
도 4를 참조하면, 명령어 전달 서버 (120) 는 과부하의 발생 여부를 판단하는 클라이언트 과부하 판단부 (420) 를 포함한다. 여기서, 클라이언트 과부하 판단부 (420) 는 미리 결정된 클라이언트 과부하 판단 로직을 포함하고, 미리 결정된 클라이언트 과부하 판단 로직은 복수의 과부하 판단 조건을 포함한다. 클라이언트 과부하 판단부 (420) 가 포함하는 과부하 판단 로직에 대해서는 도 5를 참조하여 후술한다.
또한, 명령어 전달 서버 (120) 가 송신한 편집 명령어를 수신한 복수의 클라이언트 (900) 는 편집 명령어를 수신한 결과에 대응하여 복수의 클라이언트 (900) 의 상태를 알려주는 큐 사이즈 정보를 명령어 전달 서버 (120) 에 송신한다. 여기서, 큐 사이즈 정보는 복수의 클라이언트 (900) 각각이 편집 명령어를 수신한 순간 클라이언트의 큐 (Queue) 에 누적되어 있는 편집 명령어의 개수를 의미한다. 즉, 복수의 클라이언트 (900) 각각은 편집 명령어를 수신한 순간에 공동 편집 문서 파일에 적용되지 않고 저장되어 있는 편집 명령어의 개수를 명령어 전달 서버 (120) 에 알려줄 수 있다.
이에 따라, 명령어 전달 서버 (120) 는 수신한 큐 사이즈 정보를 기초로 복수의 클라이언트 (900) 중 과부하 상태에 있는 클라이언트가 존재하는지 여부를 판단할 수 있다.
도 4 및 도 5를 참조하면, 명령어 전달 서버 (120) 는 큐 사이즈 정보를 기초로 복수의 클라이언트 (900) 에서 과부하의 발생 여부를 판단한다 (S230).
구체적으로, 명령어 전달 서버 (120) 에서 클라이언트 과부하 판단부 (420) 는 복수의 과부하 판단 조건 (421 내지 424) 을 기초로 미리 결정된 클라이언트 과부하 판단 로직을 통해 복수의 클라이언트 (900) 에서 과부하가 발생했는지 여부를 판단할 수 있다. 즉, 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 에서 과부하가 발생한 것으로 판단할 수 있다.
예를 들어, 제1 과부하 판단 조건 (421) 은 정상 상태 (normal state) 인 클라이언트 비율이 미리 결정된 비율 이하일 경우를 의미할 수 있고, 제2 과부하 판단 조건 (422) 은 경고 상태 (warning state) 인 클라이언트가 미리 결정된 개수 이상인 경우를 의미할 수 있고, 제3 과부하 판단 조건 (423) 은 심각 상태 (critical state) 인 클라이언트가 미리 결정된 개수 이상인 경우를 의미할 수 있고, 제4 과부하 판단 조건 (424) 은 최고 부하를 갖는 클라이언트의 큐 사이즈 (QS) 가 미리 결정된 개수 이상인 경우를 의미할 수 있다.
한편, 도 5에서는 미리 결정된 클라이언트 과부하 판단 로직이 4개 이상의 과부하 판단 조건 (421 내지 424) 을 포함하는 것으로 도시되었으나, 미리 결정된 클라이언트 과부하 판단 로직이 포함하는 과부하 판단 조건의 개수는 이에 제한되지 않으며, 미리 결정된 클라이언트 과부하 판단 로직은 적어도 하나 이상의 과부하 판단 조건을 포함할 수 있다. 과부하 판단 조건에서, 정상 상태 (normal state) 는 복수의 클라이언트 (900) 중 임의의 클라이언트의 큐 사이즈 정보가 10개 미만인 경우를 의미하고, 경고 상태 (warning state) 는 복수의 클라이언트 (900) 중 임의의 클라이언트의 큐 사이즈 정보가 10개 이상 30개 미만인 경우를 의미하고, 심각 상태 (critical state) 는 복수의 클라이언트 (900) 중 임의의 클라이언트의 큐 사이즈 정보가 30개 이상인 경우를 의미한다.
여기서, 미리 결정된 클라이언트 과부하 판단 로직은 복수의 과부하 판단 조건 (421 내지 424) 이 'or' 연산이나 'and' 연산으로 조합된 로직일 수 있다. 미리 결정된 클라이언트 과부하 판단 로직은 제1 과부하 판단 조건 (421) 내지 제4 과부하 판단 조건 (424) 중 어느 하나만 만족하는 경우에도 복수의 클라이언트 (900) 에 과부하가 발생한 것으로 판단하도록 설정될 수 있고, 제1 과부하 판단 조건 (421) 내지 제4 과부하 판단 조건 (424) 이 모두 만족하는 경우에만 복수의 클라이언트 (900) 에 과부하가 발생한 것으로 판단하도록 설정될 수도 있으며, 제1 과부하 판단 조건 (421) 내지 제4 과부하 판단 조건 (424) 중 선택된 조건들을 만족하는 경우 복수의 클라이언트 (900) 에 과부하가 발생한 것으로 판단하도록 설정될 수도 있다. 예를 들어, 미리 결정된 클라이언트 과부하 판단 로직은 경고 상태 클라이언트가 2개 이상이거나 최고 부하를 갖는 클라이언트의 큐 사이즈가 20개 이상인 경우로 설정될 수 있다. 즉, 명령어 전달 서버 (120) 에서 클라이언트 과부하 판단부 (420) 는 수신한 큐 사이즈 정보를 기초로 경고 상태 클라이언트가 2개 이상이거나 최고 부하를 갖는 클라이언트의 큐 사이즈가 20개 이상인 경우에는 복수의 클라이언트 (900) 에 과부하가 발생하였다고 판단할 수 있다.
이에 따라, 공동 편집 문서 공유 장치 (100) 는 편집 명령어를 수신한 복수의 클라이언트 (900) 로부터 큐 사이즈 정보를 수신하여 복수의 클라이언트 (900) 에서 과부하가 발생하였는지 여부를 판단할 수 있다. 즉, 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 에서 과부하가 발생한 것으로 판단할 수 있다. 나아가, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 에서 과부하가 발생한 경우에는 과부하를 해소하도록 복수의 클라이언트 (900) 를 제어할 수 있으며, 구체적인 과부하 해소 방법은 이하 도 6을 참조하여 후술한다.
이어서, 명령어 전달 서버 (120) 는 과부하가 발생한 경우, 복수의 클라이언트 (900) 각각에 편집 제한 명령어를 송신한다 (S240).
도 5 및 도 6을 참조하면, 미리 결정된 클라이언트 과부하 판단 로직이 충족되어 과부하가 발생한 것으로 판단된 경우, 명령어 전달 서버 (120) 는 복수의 클라이언트 (900) 에 편집 제한 명령어를 송신한다. 여기서, 편집 제한 명령어는 복수의 클라이언트 (900) 가 편집을 하지 못하도록 제한하는 명령어로서, 이를 수신한 복수의 클라이언트 (900) 는 편집 제한 상태가 해소되기 전까지 공동 편집 문서 파일을 편집할 수 없다. 구체적으로, 편집 제한 명령어는 복수의 클라이언트 (900) 가 미리 결정된 편집 제한 해소 조건을 만족하기 전까지 복수의 클라이언트 (900) 가 공동 편집 문서 파일에 대한 편집 명령어를 명령어 전달 서버 (120) 에 송신할 수 없도록 제어할 수 있다. 또는, 편집 제한 명령어는 복수의 클라이언트 (900) 가 공동 편집 문서 파일을 편집할 수 없도록 복수의 클라이언트 (900) 에서 편집 명령어의 입력 자체를 제한할 수 있다.
이에 따라, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 에서 과부하가 발생하여 공동 편집 문서 파일의 정상적인 갱신이 어렵다고 판단한 경우, 직접 편집 제한 명령어를 복수의 클라이언트 (900) 각각에 전송하여 공동 편집 문서 파일에 대한 추가적인 편집을 제한할 수 있다. 이로 인해, 과부하가 발생하여 클라이언트의 큐에 누적된 편집 명령어가 공동 편집 문서 파일에 적용될 수 있는 시간이 확보될 수 있다. 이에, 클라이언트의 큐에 누적된 편집 명령어가 감소하여, 복수의 클라이언트 (900) 가 동일한 갱신 공동 문서 편집 파일을 갖고 다시 편집할 수 있다.
도 7은 본 발명의 다른 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 클라이언트의 편집 제한을 해제하는 과정을 예시적으로 도시한 것이다. 설명의 편의를 위해 도 3 내지 도 6을 참조하여 설명한다.
도 7을 참조하면, 명령어 전달 서버 (120) 에서 클라이언트 과부하 판단부 (420) 는 클라이언트 과부하가 해소된 경우, 복수의 클라이언트 (900) 각각에 편집 제한 해제 명령어를 송신할 수 있다. 여기서, 명령어 전달 서버 (120) 에서 클라이언트 과부하 판단부 (420) 는 복수의 클라이언트 (900) 중 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 과부하의 해소 여부를 판단할 수 있다.
예를 들어, 클라이언트 과부하 판단부 (420) 는 수신한 큐 사이즈 정보 중 클라이언트의 큐에 누적된 편집 명령어가 가장 많은 클라이언트를 최고 부하 클라이언트로 결정할 수 있다. 이어서, 클라이언트의 큐에 누적된 편집 명령어가 미리 결정된 개수 이하인 경우, 클라이언트 과부하 판단부 (420) 는 최고 부하 클라이언트로부터 추가적인 큐 사이즈 정보를 수신할 수 있다. 이에 따라, 클라이언트 과부하 판단부 (420) 는 미리 결정된 클라이언트 과부하 판단 로직을 기초로 복수의 클라이언트 (900) 에서 과부하 발생 여부를 다시 판단하여, 복수의 클라이언트 (900) 에 과부하가 존재하지 않음을 판단할 수 있다.
이에, 클라이언트 과부하 판단부 (420) 는 복수의 클라이언트 (900) 에 더 이상 과부하가 존재하지 않는 경우, 복수의 클라이언트 (900) 각각에 편집 제한 해제 명령어를 송신할 수 있다. 여기서, 편집 제한 해제 명령어는 복수의 클라이언트 (900) 가 편집 제한 상태에서 다시 편집을 할 수 있도록 허용하는 명령어로서, 이를 수신한 복수의 클라이언트 (900) 는 편집 제한 상태가 해소되어 공동 편집 문서 파일을 편집할 수 있다.
이에 따라, 공동 편집 문서 공유 장치 (100) 는 복수의 클라이언트 (900) 가 과부하 상태에서 벗어난 이후에는 다시 편집 제한 상태를 해제함으로써, 공동 편집 문서 파일이 복수의 클라이언트 (900) 에서 다시 편집될 수 있다. 즉, 공동 편집 문서 공유 장치 (100) 는 최고 부하를 갖는 클라이언트로부터 과부하 상태에서 벗어났는지 여부를 체크함으로써, 과부하 상태에서 벗어난 경우 신속하게 공동 편집 문서 파일의 편집을 허용하고, 복수의 클라이언트 (900) 에서 공동 편집 문서 파일의 동기화 상태에 대한 통일성과 신뢰성을 향상시킬 수 있다.
본 명세서에서, 각 블록 또는 각 단계는 특정된 논리적 기능 (들) 을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 소프트웨어 모듈은 RAM 메모리, 플래시 메모리, ROM 메모리, EPROM 메모리, EEPROM 메모리, 레지스터, 하드 디스크, 착탈형 디스크, CD-ROM 또는 당업계에 알려진 임의의 다른 형태의 저장 매체에 상주할 수도 있다. 예시적인 저장 매체는 프로세서에 커플링되며, 그 프로세서는 저장 매체로부터 정보를 판독할 수 있고 저장 매체에 정보를 기입할 수 있다. 다른 방법으로, 저장 매체는 프로세서와 일체형일 수도 있다. 프로세서 및 저장 매체는 주문형 집적회로 (ASIC) 내에 상주할 수도 있다. ASIC는 사용자 단말기 내에 상주할 수도 있다. 다른 방법으로, 프로세서 및 저장 매체는 사용자 단말기 내에 개별 컴포넌트로서 상주할 수도 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100 공동 편집 문서 공유 장치
110 문서 저장 서버
111 제1 공동 편집 문서 파일
112 제2 공동 편집 문서 파일
113 제3 공동 편집 문서 파일
120 명령어 전달 서버
130 명령어 저장 서버
131 제1 편집 명령어
132 제2 편집 명령어
133 제3 편집 명령어
420 클라이언트 과부하 판단부
421 제1 과부하 판단 조건
422 제2 과부하 판단 조건
423 제3 과부하 판단 조건
424 제4 과부하 판단 조건
900 복수의 클라이언트
901 제1 클라이언트
902 제2 클라이언트
903 제3 클라이언트
1000 공유 서버
1200 바로가기 파일 서버

Claims (11)

  1. 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 편집 명령어를 수신하고, 상기 편집 명령어를 수신한 순서에 대응하여 상기 편집 명령어를 상기 복수의 클라이언트 각각에 송신하는 명령어 전달 서버를 포함하고,
    상기 명령어 전달 서버는,
    상기 복수의 클라이언트 각각에서의 상기 편집 명령어의 수신에 대응하여, 상기 복수의 클라이언트 각각의 큐 사이즈 (Queue Size) 정보를 수신하고,
    상기 큐 사이즈 정보를 기초로 상기 복수의 클라이언트에서 과부하의 발생 여부를 판단하고,
    상기 과부하가 발생한 경우, 상기 복수의 클라이언트 각각으로부터 상기 공동 편집 문서 파일에 대한 추가적인 편집 명령어가 수신되지 않도록 상기 복수의 클라이언트 각각에 편집 제한 명령어를 송신하고,
    상기 큐 사이즈 정보는 복수의 클라이언트의 큐에 누적되어 있는 편집 명령어의 개수를 포함하고,
    상기 복수의 클라이언트 각각으로 송신되는 편집 제한 명령어는,
    상기 공동 편집 문서에 대한 추가적인 편집을 제한하고, 상기 복수의 클라이언트 각각의 큐에 누적된 편집 명령어가 상기 공동 편집 문서 파일에 적용되도록 하는, 공동 편집 문서를 공유하는 장치.
  2. 제1항에 있어서,
    상기 명령어 전달 서버는,
    상기 과부하의 발생 여부를 판단하는 클라이언트 과부하 판단부를 더 포함하는, 공동 편집 문서를 공유하는 장치.
  3. 제2항에 있어서,
    상기 클라이언트 과부하 판단부는,
    미리 결정된 클라이언트 과부하 판단 로직을 포함하고,
    상기 미리 결정된 클라이언트 과부하 판단 로직은 복수의 과부하 판단 조건을 포함하는, 공동 편집 문서를 공유하는 장치.
  4. 제3항에 있어서,
    상기 명령어 전달 서버는,
    상기 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 상기 복수의 클라이언트에서 상기 과부하가 발생한 것으로 판단하는, 공동 편집 문서를 공유하는 장치.
  5. 제1항에 있어서,
    상기 명령어 전달 서버는,
    상기 과부하가 해소된 경우, 상기 복수의 클라이언트 각각에 편집 제한 해제 명령어를 송신하는, 공동 편집 문서를 공유하는 장치.
  6. 제5항에 있어서,
    상기 명령어 전달 서버는,
    상기 복수의 클라이언트 중 상기 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 상기 과부하의 해소 여부를 판단하는, 공동 편집 문서를 공유하는 장치.
  7. 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 수신한 편집 명령어를 상기 복수의 클라이언트 각각에 송신하는 단계;
    상기 복수의 클라이언트 각각에서의 상기 편집 명령어의 수신에 대응하여, 상기 복수의 클라이언트 각각의 큐 사이즈 정보를 수신하는 단계;
    상기 큐 사이즈 정보를 기초로 상기 복수의 클라이언트에서 과부하의 발생 여부를 판단하는 단계; 및
    상기 과부하가 발생한 경우, 상기 복수의 클라이언트 각각으로부터 상기 공동 편집 문서 파일에 대한 추가적인 편집 명령어가 수신되지 않도록 상기 복수의 클라이언트 각각에 편집 제한 명령어를 송신하는 단계를 포함하고,
    상기 큐 사이즈 정보는 복수의 클라이언트의 큐에 누적되어 있는 편집 명령어의 개수를 포함하고,
    상기 복수의 클라이언트 각각으로 송신되는 편집 제한 명령어는,
    상기 공동 편집 문서에 대한 추가적인 편집을 제한하고, 상기 복수의 클라이언트 각각의 큐에 누적된 편집 명령어가 상기 공동 편집 문서 파일에 적용되도록 하는, 공동 편집 문서를 공유하는 방법.
  8. 제7항에 있어서,
    상기 과부하가 해소된 경우, 상기 복수의 클라이언트 각각에 편집 제한 해제 명령어를 송신하는 단계를 더 포함하는, 공동 편집 문서를 공유하는 방법.
  9. 제8항에 있어서,
    상기 편집 제한 해제 명령어를 송신하는 단계는,
    상기 복수의 클라이언트 중 상기 큐 사이즈 정보가 가장 큰 클라이언트를 기준으로 상기 과부하의 해소 여부를 판단하는 단계를 포함하는, 공동 편집 문서를 공유하는 방법.
  10. 제7항에 있어서,
    상기 과부하의 발생 여부를 판단하는 단계는,
    상기 큐 사이즈 정보를 기초로 미리 결정된 클라이언트 과부하 판단 로직이 충족되는 경우, 상기 복수의 클라이언트에서 상기 과부하가 발생한 것으로 판단하는 단계인, 공동 편집 문서를 공유하는 방법.
  11. 공동 편집 문서 파일을 갖는 복수의 클라이언트로부터 수신한 편집 명령어를 상기 복수의 클라이언트 각각에 송신하고,
    상기 복수의 클라이언트 각각에서의 상기 편집 명령어의 수신에 대응하여, 상기 복수의 클라이언트 각각의 큐 사이즈 정보를 수신하고,
    상기 큐 사이즈 정보를 기초로 상기 복수의 클라이언트에서 과부하의 발생 여부를 판단하고,
    상기 과부하가 발생한 경우, 상기 복수의 클라이언트 각각으로부터 상기 공동 편집 문서 파일에 대한 추가적인 편집 명령어가 수신되지 않도록 상기 복수의 클라이언트 각각에 편집 제한 명령어를 송신하고,
    상기 큐 사이즈 정보는 복수의 클라이언트의 큐에 누적되어 있는 편집 명령어의 개수를 포함하고,
    상기 복수의 클라이언트 각각으로 송신되는 편집 제한 명령어는,
    상기 공동 편집 문서에 대한 추가적인 편집을 제한하고, 상기 복수의 클라이언트 각각의 큐에 누적된 편집 명령어가 상기 공동 편집 문서 파일에 적용되도록 하는, 공동 편집 문서를 공유하는 방법을 제공하는 명령어들을 저장한 컴퓨터 판독 가능한 비일시적 기록매체.
KR1020170014474A 2017-02-01 2017-02-01 공동 편집 문서를 공유하는 방법 및 장치 KR101954061B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170014474A KR101954061B1 (ko) 2017-02-01 2017-02-01 공동 편집 문서를 공유하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170014474A KR101954061B1 (ko) 2017-02-01 2017-02-01 공동 편집 문서를 공유하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180089752A KR20180089752A (ko) 2018-08-09
KR101954061B1 true KR101954061B1 (ko) 2019-05-17

Family

ID=63250969

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170014474A KR101954061B1 (ko) 2017-02-01 2017-02-01 공동 편집 문서를 공유하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101954061B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109976617B (zh) * 2019-04-03 2021-06-25 腾讯科技(深圳)有限公司 文档展示方法和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100868603B1 (ko) * 2007-01-22 2008-11-13 김영주 온라인 공동저작 시스템 및 동기화 방법
CN102262620B (zh) 2011-08-04 2014-11-26 无锡永中软件有限公司 一种文档协作方法
KR101683818B1 (ko) * 2014-12-29 2016-12-20 주식회사 시큐아이 Cpu 부하 분산 패킷 처리 장치 및 방법

Also Published As

Publication number Publication date
KR20180089752A (ko) 2018-08-09

Similar Documents

Publication Publication Date Title
US20170134495A1 (en) Method and apparatus for sharing collaboratively edited document
US10356194B2 (en) Method, system and client for uploading image, network server and computer storage medium
KR101566566B1 (ko) 리치 클라이언트와 브라우저 클라이언트 간의 스프레드시트 협업
US8706857B2 (en) Information processing apparatus, information processing method, data management server and data synchronization system
KR101701110B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
US9900167B2 (en) Document sharing method, system, and device
CN110933036B (zh) 一种云游戏服务系统和服务器
US20140006511A1 (en) Method and apparatus for sharing a file in p2p system
US20140164534A1 (en) System for sending a content item through an online content management system
KR102098415B1 (ko) 캐시 관리 기법
CN115858481A (zh) 分布式服务器-客户端环境中的文档同步的方法和系统
KR101822401B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
KR101954061B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
KR101923255B1 (ko) 모바일 장치로부터의 원격 액세스 기법
CN102118315A (zh) 数据流化方法、数据记录方法、数据读取方法及其系统
CN111651419B (zh) 数据存储方法、装置及存储介质
KR101858970B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
CN112698783A (zh) 对象存储方法、装置及系统
KR20150008541A (ko) 데이터 전송 제어 방법 및 서버
US20200137155A1 (en) System and method for peer-to-peer communication in partial mesh network
CN111064700B (zh) 云游戏的下载方法、装置及系统
CN111405313B (zh) 存储流媒体数据的方法和系统
US9152645B2 (en) Distributed object management system, distributed object management server, distributed object management method and computer program of the same
KR101812957B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
CN111245949A (zh) 文件归档传输方法、装置及设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant