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

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

Info

Publication number
KR101858970B1
KR101858970B1 KR1020160123095A KR20160123095A KR101858970B1 KR 101858970 B1 KR101858970 B1 KR 101858970B1 KR 1020160123095 A KR1020160123095 A KR 1020160123095A KR 20160123095 A KR20160123095 A KR 20160123095A KR 101858970 B1 KR101858970 B1 KR 101858970B1
Authority
KR
South Korea
Prior art keywords
client
update
document file
command
seed document
Prior art date
Application number
KR1020160123095A
Other languages
English (en)
Other versions
KR20180033752A (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 KR1020160123095A priority Critical patent/KR101858970B1/ko
Publication of KR20180033752A publication Critical patent/KR20180033752A/ko
Application granted granted Critical
Publication of KR101858970B1 publication Critical patent/KR101858970B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/11File system administration, e.g. details of archiving or snapshots
    • G06F17/3007

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Document Processing Apparatus (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 공동 편집 문서를 공유하는 방법 및 장치에 관한 것으로서, 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치는 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드(seed) 문서 파일을 적어도 하나의 클라이언트로 송신하는 시드 문서 서버, 및 적어도 하나의 클라이언트로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 적어도 하나의 클라이언트 각각으로 송신하는 명령어 전달 서버를 포함하고, 적어도 하나의 클라이언트 각각은 시드 문서 파일 및 편집 명령어를 기초로 갱신 시드 문서 파일을 생성하는 자동 저장 엔진을 포함하고, 자동 저장을 통해 갱신 시드 문서 파일을 생성하는 별도의 서버를 제거함으로써, 비용을 절약할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공할 수 있는 효과가 있다.

Description

공동 편집 문서를 공유하는 방법 및 장치{METHOD AND APPARATUS FOR SHARING COMMON EDITING DOCUMENTS}
본 발명은 공동 편집 문서를 공유하는 방법 및 장치에 관한 것으로서, 보다 상세하게는 공동으로 편집하는 문서를 효율적으로 공유할 수 있는 공동 편집 문서를 공유하는 방법 및 장치에 관한 것이다.
최근 통신 기술이 발달함에 따라, 인터넷을 통해 다양한 서비스가 제공되고 있다. 특히, 인터넷을 통해 대용량의 파일들이 이동되고 대량의 데이터가 송수신된다. 이에 따라, 인터넷을 통해 언제 어디서든지 다양한 파일을 공유하는 기술도 발달하게 되었다.
이와 같이 다양한 통신 기술 (예를 들어, 인터넷) 을 기초로 단말기를 사용하는 사용자들이 가상의 저장소에 데이터 또는 파일을 저장하고 가상의 저장소를 통해 데이터 또는 파일을 주고 받고 공유도 할 수 있는 서비스를 클라우드 (cloud) 서비스라고 한다. 클라우드 서비스를 통해 사용자는 데이터 또는 파일을 자유롭게 사용할 수 있다. 구체적으로, 클라우드 서비스를 통해 사용자는 시간과 공간의 제약을 받지 않고 데이터 또는 파일을 다운로드 (download) 또는 업로드 (upload) 할 수 있고, 데이터 또는 파일을 다른 사용자들과 공유할 수도 있다.
이러한 클라우드 서비스는 데이터 또는 파일을 저장하고 공유하는 저장소인 공유 서버를 기반으로 제공된다. 구체적으로, 사용자들은 공유 서버를 통해 문서 파일을 저장 및 공유하고, 사용자들은 각자의 단말기를 통해 문서 파일을 편집할 수 있다.
다만, 사용자들이 각자의 단말기에서 공유하는 공동 편집 문서를 편집하는 경우, 공유 서버는 사용자들의 단말기 각각에서 입력하는 편집 내용을 수신하여, 편집 내용을 공동 편집 문서에 반영하고 공동 편집 문서를 갱신하기 위한 엔진 (engine) 을 포함한다. 이에 따라, 공동 편집 문서를 공유하는 단말기의 수가 증가함에 따라 공유 서버는 공동 편집 문서를 편집하는 내용을 반영하기 위해 요구되는 엔진을 더 많이 필요로 하고, 많은 엔진을 사용함에 따라 공유 서버가 처리해야 할 데이터의 부하도 증가한다. 즉, 공동 편집 문서를 공유하는 단말기의 수가 증가함에 따라 공유 서버에서 공동 편집 문서에 편집 내용을 반영하기 위한 부하가 증가되어, 공동 편집 문서를 편집하고 공유하기 위한 비용이 증가한다. 또한, 공동 편집 문서를 단말기 각각에 제공하는 공유 서버의 성능도 저하되고 클라우드 서비스의 질이 저하되는 문제점이 발생할 수 있다.
따라서, 공유 및 편집을 위한 공동 편집 문서를 제공하는 서버의 부하를 감소시키고 효율적으로 공동 편집 문서를 공유하고 편집하기 위해 명령어와 시드 (seed) 문서를 관리하는 서버를 각각 분리하여 공동 편집 문서를 공유하는 방법을 제공할 필요성이 증대되었다.
[관련기술문헌]
문서협업 방법 (한국공개특허 제 10-2014-0028040 호)
본 발명이 해결하고자 하는 과제는 자동 저장을 통해 갱신 시드 문서 파일을 생성하는 별도의 서버를 제거함으로써, 비용을 절약할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 과제는 클라이언트가 갖고 있는 자동 저장 엔진을 이용하여 편집 명령어만을 명령어 전달 서버로부터 수신함으로써, 별도의 서버를 거치지 않고 신속하게 갱신 시드 문서 파일을 생성할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 과제는 별도의 서버를 거치지 않고 클라이언트에서 곧바로 갱신 시드 문서 파일을 생성함으로써, B2B(Business To Business) 모델에서 비용을 절감할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공하는 것이다.
본 발명의 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치는 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드(seed) 문서 파일을 적어도 하나의 클라이언트로 송신하는 시드 문서 서버, 및 적어도 하나의 클라이언트로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 적어도 하나의 클라이언트 각각으로 송신하는 명령어 전달 서버를 포함하고, 적어도 하나의 클라이언트 각각은 시드 문서 파일 및 편집 명령어를 기초로 갱신 시드 문서 파일을 생성하는 자동 저장 엔진을 포함한다.
본 발명의 다른 특징에 따르면, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 저장하는 명령어 저장 서버를 더 포함하고, 명령어 저장 서버는 명령어 전달 서버로부터 편집 명령어를 수신한 순서대로 저장한 명령어 리스트를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 적어도 하나의 클라이언트 각각은 명령어 전달 서버로부터 편집 명령어를 수신한 순서대로 저장한 명령어 리스트를 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는 적어도 하나의 클라이언트가 갱신 시드 문서 파일을 생성하기 위한 갱신 조건을 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는 갱신 조건이 충족되는 경우 적어도 하나의 클라이언트에 갱신 알림(notification)을 전송할 수 있다.
본 발명의 또 다른 특징에 따르면, 적어도 하나의 클라이언트 각각은 갱신 시드 문서 파일을 생성하는 갱신 조건을 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 적어도 하나의 클라이언트는 갱신 조건이 충족되는 경우 명령어 전달 서버로 갱신 가능 여부를 확인하는 요청을 송신할 수 있다.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는 요청에 대응하여 갱신 가능 여부를 판단하고, 갱신 가능 여부에 대응하여 갱신 알림을 전송할 수 있다.
본 발명의 또 다른 특징에 따르면, 명령어 전달 서버는, 자동 저장 엔진의 버전을 확인하고, 버전이 미리 결정된 버전보다 낮은 버전인 자동 저장 엔진을 포함하는 클라이언트에 갱신 시드 문서 파일의 생성을 금지하는 갱신 불가 알림을 송신할 수 있다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법은 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드 문서 파일을 적어도 하나의 클라이언트로 송신하는 단계, 적어도 하나의 클라이언트로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 적어도 하나의 클라이언트 각각으로 송신하는 단계, 및 갱신 시드 문서 파일을 생성하는 갱신 조건이 충족되는 경우, 적어도 하나의 클라이언트에 갱신 알림을 전송하는 단계를 포함하고, 적어도 하나의 클라이언트 각각은 갱신 알림에 대응하여, 시드 문서 파일 및 편집 명령어를 기초로 갱신 시드 문서 파일을 생성하는 자동 저장 엔진을 포함한다.
본 발명의 다른 특징에 따르면, 적어도 하나의 클라이언트가 갱신 조건의 충족 여부를 판단한 경우, 적어도 하나의 클라이언트로부터 갱신 가능 여부를 확인하는 요청을 수신하는 단계를 더 포함할 수 있다.
본 발명의 또 다른 특징에 따르면, 자동 저장 엔진의 버전을 확인하는 단계, 및 버전이 미리 결정된 버전보다 낮은 버전인 자동 저장 엔진을 포함하는 클라이언트에 갱신 시드 문서 파일 생성을 금지하는 갱신 불가 알림을 송신하는 단계를 더 포함할 수 있다.
전술한 바와 같은 과제를 해결하기 위하여 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법을 제공하는 명령어들을 저장하는 컴퓨터 판독 가능 기록매체는 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드 문서 파일을 적어도 하나의 클라이언트로 송신하고, 적어도 하나의 클라이언트로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 적어도 하나의 클라이언트 각각으로 송신하고, 갱신 시드 문서 파일을 생성하는 갱신 조건이 충족되는 경우, 적어도 하나의 클라이언트에 갱신 알림을 전송하며, 적어도 하나의 클라이언트 각각은 갱신 알림에 대응하여, 시드 문서 파일 및 편집 명령어를 기초로 갱신 시드 문서 파일을 생성하는 자동 저장 엔진을 포함한다.
기타 실시예의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명은 자동 저장을 통해 갱신 시드 문서 파일을 생성하는 별도의 서버를 제거함으로써, 비용을 절약할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명은 클라이언트가 갖고 있는 자동 저장 엔진을 이용하여 편집 명령어만을 명령어 전달 서버로부터 수신함으로써, 별도의 서버를 거치지 않고 신속하게 갱신 시드 문서 파일을 생성할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명은 별도의 서버를 거치지 않고 클라이언트에서 곧바로 갱신 시드 문서 파일을 생성함으로써, B2B(Business To Business) 모델에서 비용을 절감할 수 있는 공동 편집 문서를 공유하는 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명에 따른 효과는 이상에서 예시된 내용에 의해 제한되지 않으며, 더욱 다양한 효과들이 본 명세서 내에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치와 공유 서버, 바로가기 파일 서버 및 클라이언트 사이의 관계를 도시한 것이다.
도 2는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 따라 공동 편집 문서 파일을 공유하기 위한 절차를 도시한 것이다.
도 3은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이다.
도 4는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 공동 편집 문서를 공유하는 클라이언트의 엔진을 예시적으로 도시한 것이다.
도 5는 본 발명의 다른 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 공동 편집 문서를 공유하는 클라이언트의 예시적인 출력 화면을 도시한 것이다.
도 6a는 본 발명의 다른 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이고, 도 6b는 본 발명의 다른 실시예에 따른 명령어 전달 서버에서의 갱신 조건을 예시적으로 도시한 것이다.
도 7a는 본 발명의 또 다른 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이고, 도 7b는 본 발명의 또 다른 실시예에 따른 명령어 전달 서버에서의 갱신 조건을 예시적으로 도시한 것이다.
도 8은 본 발명의 또 다른 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 발명의 실시예를 설명하기 위한 도면에 개시된 형상, 크기, 비율, 각도, 개수 등은 예시적인 것이므로 본 발명이 도시된 사항에 한정되는 것은 아니다. 또한, 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다. 본 명세서 상에서 언급된 '포함한다', '갖는다', '이루어진다' 등이 사용되는 경우 '~만'이 사용되지 않는 이상 다른 부분이 추가될 수 있다. 구성요소를 단수로 표현한 경우에 특별히 명시적인 기재 사항이 없는 한 복수를 포함하는 경우를 포함한다.
구성요소를 해석함에 있어서, 별도의 명시적 기재가 없더라도 오차 범위를 포함하는 것으로 해석한다.
비록 제1, 제2 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않는다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있다.
별도로 명시하지 않는 한 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
본 발명의 여러 실시예들의 각각 특징들이 부분적으로 또는 전체적으로 서로 결합 또는 조합 가능하며, 당업자가 충분히 이해할 수 있듯이 기술적으로 다양한 연동 및 구동이 가능하며, 각 실시예들이 서로에 대하여 독립적으로 실시 가능할 수도 있고 연관 관계로 함께 실시 가능할 수도 있다.
이하, 본 명세서에서 사용되는 용어에 대해 정의한다.
본 명세서에서 시드 문서 파일이란, 공동 편집 문서를 공유하는 장치에 연결된 클라이언트가 공동으로 편집하고자 하는 문서 파일(이하, 공동 편집 문서 파일)에 대응하는 편집용 파일로서, 편집 명령어가 적용되기 이전에 클라이언트가 공유하는 편집용 문서 파일을 의미한다. 이러한 시드 문서 파일은 공동 편집 문서를 공유하는 장치에 저장되어 있다가 클라이언트가 문서 파일의 공유를 요청하는 경우 클라이언트로 송신될 수 있다.
본 명세서에서 편집 명령어란, 클라이언트가 공유하는 문서를 편집하는 명령어로서, 공동 편집 문서 파일에 입력되는 다양한 명령어를 포함한다. 예를 들어, 편집 명령어는 공동 편집 문서의 적어도 일부 내용을 삭제하는 삭제 명령어 및 그림과 같은 객체를 삽입하는 삽입 명령어 등을 포함할 수 있다. 임의의 클라이언트에서 입력한 편집 명령어는 공동 편집 문서를 공유하는 장치로 송신된 후 공동 편집 문서를 공유하는 장치에 연결된 모든 클라이언트들로 송신될 수 있다.
본 명세서에서 명령어 리스트란, 편집 명령어를 수신하여 미리 정해진 규칙에 따라 수신한 편집 명령어를 저장한 리스트이다. 명령어 리스트는 클라이언트가 편집 명령어를 수신한 순서대로 저장하여 생성될 수 있고, 명령어 저장 서버가 편집 명령어를 수신한 순서대로 저장하여 생성될 수도 있다. 또는, 명령어 리스트는 시드 문서 파일의 갱신 조건이 충족되기 전까지 수신된 편집 명령어를 저장한 리스트일 수 있다.
도 1은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치와 공유 서버, 바로가기 파일 서버 및 클라이언트 사이의 관계를 도시한 것이다.
도 1을 참조하면, 공동 편집 문서를 공유하는 장치 (이하, 공동 편집 문서 공유 장치) (100) 는 시드 문서 서버 (110), 명령어 전달 서버 (120) 및 명령어 저장 서버 (130) 를 포함한다. 즉, 공동 편집 문서를 공유하는 장치 (100) 는 시드 문서 파일을 명령어와 병합하여 공동 편집 문서를 자동 저장하는 엔진을 갖는 별도의 서버를 포함하지 않는다.
도 1을 참조하면, 공동 편집 문서 공유 장치 (100) 는 적어도 하나의 클라이언트 (900) 와 통신 가능하도록 연결될 수 있다. 또한, 공동 편집 문서 공유 장치 (100) 는 공유 서버 (1000) 및 바로가기 파일 서버 (1200) 와도 통신 가능하도록 연결될 수 있다.
시드 문서 서버 (110) 는 공유 서버 (1000) 에 업로드된 문서 파일을 기초로 생성된 시드 문서 파일을 적어도 하나의 클라이언트 (900) 로 송신한다. 즉, 시드 문서 서버 (110) 는 시드 문서 파일 및 갱신 시드 문서 파일을 저장하고, 적어도 하나의 클라이언트 (900) 에 시드 문서 파일 및 갱신 시드 문서 파일을 제공할 수 있다.
명령어 전달 서버 (120) 는 적어도 하나의 클라이언트 (900) 로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 적어도 하나의 클라이언트 (900) 각각으로 송신한다. 예를 들어, 명령어 전달 서버 (120) 는 제2 클라이언트 (902) 로부터 수신한 편집 명령어를 적어도 하나의 클라이언트 (900) 모두에 송신한다. 즉, 명령어 전달 서버 (120) 는 적어도 하나의 클라이언트 (900) 로부터 수신한 편집 명령어를 별도로 저장하지 않고 다시 적어도 하나의 클라이언트 (900) 전체에 송신한다. 또한, 명령어 전달 서버 (120) 는 적어도 하나의 클라이언트 (900) 로부터 수신한 편집 명령어를 명령어 저장 서버 (130) 로 전송한다. 이에 따라, 명령어 전달 서버 (120) 를 통해 편집 명령어는 서버에서 별도의 저장 공간을 차지하지 않으며, 클라이언트 모두에 신속하게 전달될 수 있다.
명령어 저장 서버 (130) 는 명령어 전달 서버 (120) 로부터 전송된 편집 명령어들을 저장한다. 구체적으로, 명령어 저장 서버 (130) 는 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 저장한다. 예를 들어, 명령어 저장 서버 (130) 는 명령어 전달 서버 (120) 가 편집 명령어를 전송한 순서대로 저장할 수 있다. 여기서, 명령어 전달 서버 (120) 가 전송한 순서는 명령어 전달 서버 (120) 가 편집 명령어를 수신한 순서와 동일할 수 있다. 나아가, 명령어 저장 서버 (130) 는 편집 명령어를 수신한 순서대로 저장하여 명령어 리스트를 생성하고, 명령어 리스트를 저장할 수 있다. 이에 따라, 적어도 하나의 클라이언트 (900) 가 공동 편집 문서를 공유하는 장치와의 접속이 끊기더라도, 명령어 저장 서버 (130) 에 의해 편집 명령어들이 손실되는 것이 방지되고, 적어도 하나의 클라이언트 (900) 가 편집 명령어를 다시 수신하여 갱신 시드 문서 파일을 생성할 수 있다.
도 1을 참조하면, 적어도 하나의 클라이언트 (900) 는 제1 클라이언트 (901), 제2 클라이언트 (902) 및 제3 클라이언트 (903) 를 포함한다. 도 1에는 적어도 하나의 클라이언트 (900) 가 3개의 클라이언트를 포함하는 것으로 도시되었으나, 적어도 하나의 클라이언트 (900) 에 포함되는 클라이언트의 수는 이에 제한되지 않는다.
도 1을 참조하면, 적어도 하나의 클라이언트 (900) 는 공유 서버 (1000) 에 문서 파일을 업로드할 수 있다. 구체적으로, 적어도 하나의 클라이언트 (900) 중 임의의 하나의 클라이언트, 예를 들어, 제1 클라이언트 (901) 가 공유 서버 (1000) 에 공유하고자 하는 문서 파일을 업로드할 수 있다. 이하, 제1 클라이언트 (901) 가 공유 서버 (1000) 에 문서 파일을 업로드한 경우를 기준으로 공동 편집 문서를 공유하는 방법을 설명한다.
또한, 적어도 하나의 클라이언트 (900) 는 명령어 전달 서버 (120) 로부터 전송된 편집 명령어들을 저장한다. 구체적으로, 적어도 하나의 클라이언트 (900) 는 명령어 전달 서버 (120) 가 전송한 순서대로 편집 명령어들을 저장할 수 있다. 여기서, 명령어 전달 서버 (120) 가 전송한 순서는 명령어 전달 서버 (120) 가 편집 명령어를 수신한 순서와 동일할 수 있다. 나아가, 적어도 하나의 클라이언트 (900) 는 편집 명령어를 수신한 순서대로 저장하여 명령어 리스트를 생성할 수 있다.
나아가, 적어도 하나의 클라이언트 (900) 각각은 시드 문서 파일 및 편집 명령어를 기초로 갱신 시드 문서 파일을 생성하는 자동 저장 엔진 (engine) 을 포함한다. 적어도 하나의 클라이언트 (900) 각각에 포함된 엔진의 구체적인 기능에 대해서는 도 3 내지 도 8을 참조하여 후술한다.
도 1을 참조하면, 공유 서버 (1000) 는 공동 편집 문서 공유 장치 (100) 에 문서 파일에 관한 정보를 제공할 수 있다. 예를 들어, 공유 서버 (1000) 는 문서 파일을 복사하여 공동 편집 문서 공유 장치 (100) 에 시드 문서 파일을 제공할 수 있다.
도 1을 참조하면, 바로가기 파일 서버 (1200) 는 공유 서버 (1000) 와 통신 가능하도록 연결된다. 구체적으로, 바로가기 파일 서버 (1200) 는 공유 서버 (1000) 에 업로드된 문서 파일을 기초로 바로가기 파일을 생성한다. 예를 들어, 제1 클라이언트 (901) 가 문서 파일을 다른 클라이언트들과 공유하고자 하는 공유 신호를 공유 서버 (1000) 가 수신하는 경우, 바로가기 파일 서버 (1200) 는 업로드된 문서 파일을 기초로 바로가기 파일을 생성한다.
이에 따라, 편집 명령어의 전달은 공동 편집 문서 공유 장치 (100) 에 의해 실행되고, 시드 문서 파일의 갱신은 적어도 하나의 클라이언트 (900) 각각에 의해 실행된다. 즉, 공동 편집 문서 공유 장치 (100) 는 편집 명령어만을 적어도 하나의 클라이언트 (900) 에 전달하고, 별도의 시드 문서 파일을 갱신하지 않는다. 이에, 공동 편집 문서 공유 장치 (100) 는 시드 문서 파일을 갱신하기 위한 서버나 장치를 포함하지 않고, 적어도 하나의 클라이언트 (900) 가 직접 시드 문서 파일을 갱신하므로, 시드 문서 파일을 갱신하는데 공동 편집 문서 공유 장치 (100) 에서의 처리 부하 및 비용이 현저하게 저감될 수 있다. 나아가, 공동 편집 문서 공유 장치 (100) 는 하나의 서버를 통해 편집 명령어가 수신될 때마다 공동 문서 파일이 갱신되는 경우 발생하는 서버의 리소스 낭비와 공동 문서 파일의 갱신 속도 및 성능의 저하를 개선할 수 있다.
공동 편집 문서 공유 장치 (100) 의 각 구성들은 설명의 편의상 개별적인 구성으로 도시한 것일 뿐, 구현 방법에 따라 하나의 구성으로 구현되거나 하나의 구성이 2 이상의 구성으로 분리될 수 있다.
도 2는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 따라 공동 편집 문서 파일을 공유하기 위한 절차를 도시한 것이다. 도 3은 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이다. 설명의 편의를 위해 도 1을 참조하여 설명한다.
공동 편집 문서 공유 장치 (100) 에서 시드 문서 서버 (110) 가 공유 서버 (1000) 에 업로드된 문서 파일을 기초로 생성된 시드 문서 파일을 적어도 하나의 클라이언트 (900) 로 송신한다 (S210).
도 2 및 도 3을 참조하면, 시드 문서 서버 (110) 는 시드 문서 파일을 저장하고, 공동 편집 문서 공유 장치 (100) 에 연결되어 공동 편집을 요청한 적어도 하나의 클라이언트 (900) 각각에 시드 문서 파일을 송신한다. 또한, 시드 문서 서버 (110) 는 복수의 시드 문서 파일을 저장할 수 있다. 예를 들어, 시드 문서 서버 (110) 가 제1 시드 문서 파일 (111) 을 저장하고 있는 상태에서, 클라이언트의 요청에 의해 새로운 시드 문서 파일인 제2 시드 문서 파일 (112) 이 생성되면 시드 문서 서버 (110) 는 생성된 제2 시드 문서 파일 (112) 을 추가로 저장한다.
도 3을 참조하면, 시드 문서 서버 (110) 는 저장한 시드 문서 파일을 적어도 하나의 클라이언트 (900) 에 송신할 수 있다. 구체적으로, 적어도 하나의 클라이언트 (900) 가 문서 파일을 공유하고자 하는 경우, 시드 문서 서버 (110) 는 공유 요청한 문서 파일에 대응하는 시드 문서 파일을 클라이언트에 송신할 수 있다.
나아가, 시드 문서 서버 (110) 는 적어도 하나의 클라이언트 (900) 로부터 갱신 시드 문서 파일을 수신하는 경우, 갱신 시드 문서 파일도 저장할 수 있다. 예를 들어, 제1 시드 문서 파일 (111) 이 클라이언트의 요청에 의해 생성되면 제1 시드 문서 파일 (111) 은 시드 문서 서버 (110) 에 저장된다. 제1 시드 문서 파일 (111) 을 기초로 클라이언트에 의해 갱신 시드 문서 파일인 제2 시드 문서 파일 (112) 이 생성되어 시드 문서 서버 (110) 에 업로드되는 경우, 제2 시드 문서 파일 (112) 도 시드 문서 서버 (110) 에 저장된다. 이에 따라, 시드 문서 서버 (110) 는 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드 문서 파일 및 갱신 시드 문서 파일을 모두 저장할 수 있다.
이어서, 명령어 전달 서버 (120) 는 적어도 하나의 클라이언트 (900) 로부터 편집 명령어를 수신하고, 편집 명령어를 수신한 순서에 대응하여 편집 명령어를 적어도 하나의 클라이언트 (900) 각각으로 송신한다 (S220).
도 2 및 도 3을 참조하면, 명령어 전달 서버 (120) 는 적어도 하나의 클라이언트 (900) 중 어느 하나로부터 편집 명령어를 수신하면 곧바로 적어도 하나의 클라이언트 (900) 에 포함된 모든 클라이언트 각각에 수신한 편집 명령어를 송신한다. 예를 들어, 제1 클라이언트 (901) 가 제1 편집 명령어 (131) 를 입력하면 명령어 전달 서버 (120) 는 제1 편집 명령어 (131) 를 수신하여 적어도 하나의 클라이언트 (900) 각각으로 송신한다. 나아가, 제1 클라이언트 (901) 가 제2 편집 명령어 (132) 및 제3 편집 명령어 (133) 를 순서대로 입력하면 명령어 전달 서버 (120) 는 편집 명령어를 수신한 순서에 대응하여 제2 편집 명령어 (132) 를 먼저 적어도 하나의 클라이언트 (900) 각각으로 송신하고 그 다음 제3 편집 명령어 (133) 를 적어도 하나의 클라이언트 (900) 각각에 송신한다. 도 3에서는 제1 클라이언트 (901) 로부터 편집 명령어가 전달되는 것으로 도시되었으나, 이에 제한되지 않고 편집 명령어는 적어도 하나의 클라이언트 (900) 각각으로부터 임의로 송신될 수 있다.
또한, 명령어 전달 서버 (120) 는 수신한 순서대로 편집 명령어를 명령어 저장 서버 (130) 에 전송할 수 있다. 예를 들어, 명령어 전달 서버 (120) 가 적어도 하나의 클라이언트 (900) 각각으로부터 제1 편집 명령어 (131), 제2 편집 명령어 (132) 및 제3 편집 명령어 (133) 순서로 편집 명령어를 수신한 경우, 명령어 전달 서버 (120) 도 제1 편집 명령어 (131), 제2 편집 명령어 (132) 및 제3 편집 명령어 (133) 순서로 편집 명령어를 명령어 저장 서버 (130) 에 전송한다.
이에 따라, 적어도 하나의 클라이언트 (900) 각각은 명령어 전달 서버 (120) 를 통해 편집 명령어를 실시간으로 수신하고, 적어도 하나의 클라이언트 (900) 각각이 갖고 있는 자동 저장 엔진을 통해 시드 문서 파일에 편집 명령어를 적용하여 실시간으로 갱신 시드 문서 파일을 생성할 수 있다. 적어도 하나의 클라이언트 (900) 각각에서 자동 저장 엔진을 통해 갱신 시드 문서 파일이 생성되는 구체적인 과정에 대해서는 도 4 및 도 5를 참조하여 후술한다.
이어서, 명령어 전달 서버 (120) 는 갱신 시드 문서 파일을 생성하는 갱신 조건이 충족되는 경우, 적어도 하나의 클라이언트 (900) 에 갱신 알림을 전송한다 (S230).
도 2 및 도 3을 참조하면, 명령어 전달 서버 (120) 는 미리 결정된 갱신 조건이 충족되는 경우 적어도 하나의 클라이언트 (900) 에 갱신 시드 문서 파일을 생성하도록 갱신 알림을 전송한다. 예를 들어, 갱신 조건에 따라 명령어 전달 서버 (120) 가 5개의 편집 명령어를 수신한 경우, 명령어 전달 서버 (120) 는 적어도 하나의 클라이언트 (900) 가 갱신 시드 문서 파일을 생성하도록 갱신 알림을 전송한다. 미리 결정된 갱신 조건은 명령어 전달 서버 (120) 내에서 판단될 수도 있고, 적어도 하나의 클라이언트 (900) 각각에서 판단될 수도 있다. 이에, 명령어 전달 서버 (120) 또는 적어도 하나의 클라이언트 (900) 에서 갱신 조건이 충족되는 경우, 명령어 전달 서버 (120) 는 갱신 알림만을 전송하고, 적어도 하나의 클라이언트 (900) 각각이 자동 저장 엔진을 통해 갱신 시드 문서 파일을 생성한다. 적어도 하나의 클라이언트 (900) 가 갱신 시드 문서 파일을 생성하는 구체적인 절차에 대해서는 도 4 및 도 5를 참조하여 후술한다.
이에 따라, 공동 편집 문서 공유 장치 (100) 는 편집 명령어를 적어도 하나의 클라이언트 (900) 에 전달하고 갱신 알림을 적어도 하나의 클라이언트 (900) 에 전달하여, 갱신 알림에 따라 적어도 하나의 클라이언트 (900) 가 자동 저장 엔진을 통해 직접 시드 문서 파일을 갱신하도록 한다. 즉, 공동 편집 문서 공유 장치 (100) 는 명령어 및 갱신 알림만을 전달하고, 내부적으로 시드 문서 파일을 갱신하지 않고 클라이언트 각각이 직접 시드 문서 파일을 갱신하게 함으로써, 시드 문서 파일을 갱신하는데 필요한 메모리의 부하 및 서버의 리소스 낭비를 저감할 수 있고, 공동 편집 문서 파일의 갱신 속도 및 성능 저하를 개선할 수 있다.
도 4는 본 발명의 일 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 공동 편집 문서를 공유하는 클라이언트의 엔진을 예시적으로 도시한 것이다. 도 5는 본 발명의 다른 실시예에 따른 공동 편집 문서를 공유하는 방법에 의해 공동 편집 문서를 공유하는 클라이언트의 예시적인 출력 화면을 도시한 것이다.
도 4를 참조하면, 적어도 하나의 클라이언트 (900) 각각은 자동 저장 엔진 (950) 을 포함한다. 구체적으로, 자동 저장 엔진 (950) 은 명령어 전달 서버 (120) 로부터 전송되는 갱신 알림에 대응하여, 시드 문서 파일 및 편집 명령어를 기초로 갱신 시드 문서 파일을 생성한다. 여기서, 적어도 하나의 클라이언트 (900) 각각은 명령어 전달 서버 (120) 로부터 편집 명령어를 수신한 순서대로 저장한 명령어 리스트 (930) 를 포함할 수 있다. 예를 들어, 적어도 하나의 클라이언트 (900) 가 명령어 전달 서버 (120) 로부터 제1 편집 명령어 (931), 제2 편집 명령어 (932) 및 제3 편집 명령어 (933) 순서로 편집 명령어를 수신한 경우, 명령어 리스트 (930) 는 클라이언트가 수신한 순서대로 제1 편집 명령어 (931), 제2 편집 명령어 (932) 및 제3 편집 명령어 (933) 를 저장할 수 있다. 도 4에서는 제1 편집 명령어 (931) 내지 제3 편집 명령어 (933) 가 수신된 것으로 도시되었으나, 편집 명령어의 개수 및 저장 순서는 이에 제한되지 않는다.
이에, 자동 저장 엔진 (950) 은 적어도 하나의 클라이언트 (900) 가 갱신 알림을 수신한 경우, 제1 시드 문서 파일 (911) 과 적어도 하나의 편집 명령어를 기초로 갱신 시드 문서 파일 (970)을 생성할 수 있다. 자동 저장 엔진은 버전을 가질 수 있으며, 자동 저장 엔진의 버전에 따라 갱신 시드 문서 파일을 생성하지 못할 수도 있다. 자동 저장 엔진의 버전에 따른 시드 문서 파일의 갱신에 대해서는 도 8을 참조하여 후술한다.
도 5를 참조하면, 적어도 하나의 클라이언트 (900) 는 자동 저장 엔진 (950) 에 의해 시드 문서 파일의 출력 화면 (501) 으로부터 갱신 시드 문서 파일의 출력 화면 (502) 을 출력할 수 있다. 즉, 갱신 시드 문서 파일의 출력 화면 (502) 은 적어도 하나의 클라이언트 (900) 가 자동 저장 엔진 (950) 이 시드 문서 파일 (911) 을 기초로 생성한 갱신 시드 문서 파일 (970) 을 출력하는 화면이다. 구체적으로, 갱신 시드 문서 파일의 출력 화면 (502) 은 제1 편집 명령어에 의한 제1 편집 결과 (531), 제2 편집 명령어에 의한 제2 편집 결과 (532) 및 제3 편집 명령어에 의한 제3 편집 결과 (533) 를 나타낸다.
이에 따라, 적어도 하나의 클라이언트 (900) 는 수신한 편집 명령어를 기초로 갱신 알림에 따라 자동 저장 엔진 (950) 이 생성하는 갱신 시드 문서 파일 (970) 을 실시간으로 출력할 수 있다. 즉, 적어도 하나의 클라이언트 (900) 는 공동 편집 문서 공유 장치 (100) 가 별도의 갱신 시드 문서 파일을 제공하지 않더라도 클라이언트 각각이 갖고 있는 자동 저장 엔진 (950) 을 통해 스스로 갱신 시드 문서 파일을 생성하여 신속하게 갱신된 공동 편집 문서 파일을 출력할 수 있다. 이를 통해, 공동 편집 문서 공유 장치 (100) 는 갱신 시드 문서 파일을 별도로 생성하지 않으므로 적은 리소스와 메모리 부하로 공동 편집 문서를 공유하고 편집하는 서비스를 제공할 수 있고, 보다 신속하게 공동 편집 결과를 사용자들에게 제공할 수 있다. 이에, 공동 편집 문서 파일을 편집하는 사용자들은 편집 명령어에 대응하여 편집되는 문서를 실시간으로 확인할 수 있다.
도 6a는 본 발명의 다른 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이고, 도 6b는 본 발명의 다른 실시예에 따른 명령어 전달 서버에서의 갱신 조건을 예시적으로 도시한 것이다.
도 6a를 참조하면, 명령어 전달 서버 (120) 는 적어도 하나의 클라이언트 (900) 가 갱신 시드 문서 파일을 생성하기 위한 갱신 조건 (620) 을 포함한다. 구체적으로, 명령어 전달 서버 (120) 는 미리 결정된 갱신 조건 (620) 이 충족되는 경우, 적어도 하나의 클라이언트 (900) 에 갱신 알림 (notification) 을 전송할 수 있다. 즉, 도 6a에서는 명령어 전달 서버 (120) 가 갱신 조건 (620) 이 충족되었는지 여부를 판단하고, 갱신 조건 (620) 이 충족된 경우에는 적어도 하나의 클라이언트 (900) 에 갱신 알림을 전송한다.
이에 따라, 명령어 전달 서버 (120) 는 시드 문서 파일을 직접 갱신하지 않고, 갱신 조건이 충족되었는지 여부만을 판단하여 적어도 하나의 클라이언트 (900) 에 갱신 알림만을 전송함으로써, 클라이언트가 시드 문서 파일을 갱신하는 시점을 알려주고, 명령어 전달 서버 (120) 자체의 비용 및 리소스를 절감하면서 클라이언트가 실시간으로 시드 문서 파일을 갱신하는 것과 같이 느낄 수 있도록 갱신 속도 및 성능이 향상될 수 있다.
도 6b를 참조하면, 갱신 조건 (620) 은 명령어 전달 서버 (120) 가 판단하는 조건으로서, 명령어 전달 서버 (120) 에서 미리 결정된 조건일 수 있다. 구체적으로, 갱신 조건 (620) 은 명령어 전달 서버 (120) 가 특정 상황에 있는 경우 갱신 알림을 클라이언트에 보낼 수 있는 조건이다. 갱신 조건 (620) 은 하나 이상 존재할 수 있으며, 갱신 조건 (620) 이 복수의 조건을 포함하는 경우, 복수의 조건 중 어느 하나가 미리 선택될 수 있고, 명령어 전달 서버 (120) 에서 설정되거나 변경될 수 있다. 예를 들어, 제1 갱신 조건 (621) 은 명령어 전달 서버 (120) 가 편집 명령어를 5개 수신하는 것이고, 제2 갱신 조건 (622) 은 명령어 전달 서버 (120) 가 갱신 알림을 전송한 이후 2분의 갱신 시간이 경과된 것이고, 제3 갱신 조건 (623) 은 명령어 전달 서버 (120) 로부터 임의의 클라이언트가 접속을 종료한 것이고, 제4 갱신 조건 (624) 은 명령어 전달 서버 (120) 에 새로운 클라이언트가 접속한 것일 수 있다. 여기서, 갱신 조건 (620) 은 예시적으로 열거된 것일 뿐, 도 6b에 제시된 조건들에 제한되지 않으며, 다양하게 변경될 수 있다. 나아가, 갱신 조건 (620) 은 한 개만 존재할 수도 있고, 복수의 조건 중 하나만 선택될 수도 있으며, 복수의 조건 중 일부가 선택될 수도 있다.
이에 따라, 공동 편집 문서 공유 장치 (100) 는 명령어 전달 서버 (120) 에서 결정된 갱신 조건 (620) 이 충족되는 경우, 적어도 하나의 클라이언트 (900) 에 갱신 알림만을 전송하여 별도의 시드 문서 파일을 갱신하지 않고도 클라이언트가 시드 문서 파일을 갱신하고 자동 저장할 수 있도록 제어할 수 있다.
도 7a는 본 발명의 또 다른 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이고, 도 7b는 본 발명의 또 다른 실시예에 따른 명령어 전달 서버에서의 갱신 조건을 예시적으로 도시한 것이다. 도 7a 및 도 7b는 적어도 하나의 클라이언트 (900) 가 갱신 조건을 판단하는 경우 공동 편집 문서 공유 장치 (100) 와 클라이언트 사이의 관계 및 갱신 조건을 도시한 것으로서, 도 6a 및 도 6b를 참조하여 이미 설명된 구성요소에 대한 중복 설명을 생략한다.
도 7a를 참조하면, 적어도 하나의 클라이언트 (900) 각각은 갱신 시드 문서 파일을 생성하기 위한 갱신 조건 (980) 을 포함한다. 구체적으로, 적어도 하나의 클라이언트 (900) 는 미리 결정된 갱신 조건 (980) 이 충족되는 경우, 명령어 전달 서버 (120) 로 갱신 가능 여부를 확인하는 요청을 송신할 수 있다. 즉, 도 7a에서는 적어도 하나의 클라이언트 (900) 각각이 갱신 조건 (980) 이 충족되었는지 여부를 판단한다.
또한, 갱신 조건 (980) 이 충족된 경우 적어도 하나의 클라이언트 (900) 가 전송하는 갱신 가능 여부의 확인 요청에 대응하여, 명령어 전달 서버 (120) 는 갱신 가능 여부의 확인 요청에 대응하여 갱신 가능 여부를 판단한다. 명령어 전달 서버 (120) 는 갱신 가능 여부의 확인 요청을 전송한 클라이언트의 갱신 가능 여부를 판단하여, 갱신 가능 여부에 대응하여 클라이언트에 갱신 알림을 전송할 수 있다. 구체적으로, 명령어 전달 서버 (120) 는 갱신 가능 여부의 확인 요청을 전송한 클라이언트가 갱신 가능한 경우에는 해당 클라이언트에 갱신 알림을 전송한다. 반대로, 명령어 전달 서버 (120) 는 갱신 가능 여부의 확인 요청을 전송한 클라이언트가 갱신 불가능한 경우에는 해당 클라이언트에 갱신 알림을 전송하지 않는다. 여기서, 클라이언트의 갱신 가능 여부는 클라이언트가 갖는 자동 저장 엔진의 버전을 기준으로 판단될 수 있으며, 자동 저장 엔진의 버전을 기초로 클라이언트에 송신하는 알림에 대해서는 도 8을 참조하여 후술한다.
이에 따라, 적어도 하나의 클라이언트 (900) 도 스스로 갱신 조건 (980) 을 갖고 시드 문서 파일을 갱신하는 시점을 결정할 수 있다. 즉, 적어도 하나의 클라이언트 (900) 각각은 서로 상이한 갱신 조건 (980) 을 가질 수 있다. 이에, 클라이언트 단말기의 성능이나 공동 편집 문서 공유 장치 (100) 에 연결된 네트워크 상태를 기초로 적어도 하나의 클라이언트 (900) 각각에 보다 유리한 갱신 조건 (980) 을 가질 수 있다. 이와 같이, 적어도 하나의 클라이언트 (900) 스스로에게 유리한 갱신 조건 (980) 을 가짐에 따라, 적어도 하나의 클라이언트 (900) 는 클라이언트 각각마다 최적의 갱신 조건을 갖고, 시드 문서 파일이 실시간으로 갱신될 수 있고 공동 편집 문서 파일을 공유하고 편집하는 성능이 향상될 수 있다.
도 7b를 참조하면, 갱신 조건 (980) 은 적어도 하나의 클라이언트 (900) 가 판단하는 조건으로서, 적어도 하나의 클라이언트 (900) 에서 미리 결정된 조건일 수 있다. 구체적으로, 갱신 조건 (980) 은 적어도 하나의 클라이언트 (900) 가 특정 상황에 있는 경우 갱신 가능 여부를 확인하는 요청을 명령어 전달 서버 (120) 로 전송할 수 있는 조건이다. 갱신 조건 (980) 은 하나 이상 존재할 수 있으며, 갱신 조건 (980) 이 복수의 조건을 포함하는 경우, 복수의 조건 중 어느 하나가 미리 선택될 수 있고, 적어도 하나의 클라이언트 (900) 각각에서 설정되거나 변경될 수 있다. 예를 들어, 제1 갱신 조건 (981) 은 적어도 하나의 클라이언트 (900) 가 편집 명령어를 5개 수신하는 것이고, 제2 갱신 조건 (982) 은 적어도 하나의 클라이언트 (900) 가 갱신 시드 문서 파일을 생성한 이후 2분의 갱신 시간이 경과된 것이고, 제3 갱신 조건 (983) 은 명령어 전달 서버 (120) 에 새로운 클라이언트가 접속한 것일 수 있다. 여기서, 갱신 조건 (980) 은 예시적으로 열거된 것일 뿐, 도 7b에 제시된 조건들에 제한되지 않으며, 다양하게 변경될 수 있다. 나아가, 갱신 조건 (980) 은 한 개만 존재할 수도 있고, 복수의 조건 중 하나만 선택될 수도 있으며, 복수의 조건 중 일부가 선택될 수도 있다.
여기서, 갱신 조건 (980) 은 적어도 하나의 클라이언트 (900) 각각에 모두 존재할 수 있으며, 적어도 하나의 클라이언트 (900) 각각마다 갱신 조건 (980) 이 서로 상이할 수 있다. 즉, 제1 갱신 조건 (980a), 제2 갱신 조건 (980b) 및 제3 갱신 조건 (980c)은 서로 상이할 수 있으며, 갱신 조건 각각에 의해 클라이언트가 각각 독립적으로 갱신 가능 여부를 확인하는 요청을 명령어 전달 서버 (120) 에 전송할 수 있다. 예를 들어, 제1 클라이언트 (901) 는 제1 갱신 조건 (980a) 이 충족되는 경우 갱신 가능 여부를 확인하는 요청을 송신할 수 있고, 제2 클라이언트 (902) 는 제2 갱신 조건 (980b) 이 충족되는 경우 갱신 가능 여부를 확인하는 요청을 송신할 수 있고, 제3 클라이언트 (903) 는 제3 갱신 조건 (980c) 이 충족되는 경우 갱신 가능 여부를 확인하는 요청을 송신할 수 있다.
이에 따라, 공동 편집 문서 공유 장치 (100) 는 적어도 하나의 클라이언트 (900) 에서 결정된 갱신 조건 (980) 이 충족되는 경우, 갱신 가능 여부를 확인하는 요청에 대응하여 적어도 하나의 클라이언트 (900) 각각마다 독립적으로 갱신 알림을 전송하여, 적어도 하나의 클라이언트 (900) 가 독립적으로 시드 문서 파일을 갱신하고 자동 저장할 수 있도록 제어할 수 있다.
도 8은 본 발명의 또 다른 실시예에 따른 공동 편집 문서를 공유하는 장치의 구성 및 클라이언트 사이의 관계를 도시한 것이다.
도 8을 참조하면, 명령어 전달 서버 (120) 는 적어도 하나의 클라이언트 (900) 가 포함하는 자동 저장 엔진 (950) 의 버전을 확인한다. 예를 들어, 명령어 전달 서버 (120) 는 제1 클라이언트 (901) 에서 자동 저장 엔진의 버전 (951) 이 ‘7.1’이고, 제2 클라이언트 (902) 에서 자동 저장 엔진의 버전 (952) 이 ‘7.1’이고, 제3 클라이언트 (903) 에서 자동 저장 엔진의 버전 (953) 이 ‘7.0’임을 확인할 수 있다.
도 8을 참조하면, 명령어 전달 서버 (120) 는 자동 저장 엔진 (950) 의 버전이 미리 결정된 버전보다 낮은 버전인 자동 저장 엔진 (950) 을 포함하는 클라이언트에 갱신 시드 문서 파일 (970) 의 생성을 금지하는 갱신 불가 알림을 송신할 수 있다. 구체적으로, 명령어 전달 서버 (120) 는 적어도 하나의 클라이언트 (900) 각각에서 자동 저장 엔진의 버전 (951, 952, 953) 을 미리 결정된 버전과 비교한다. 예를 들어, 미리 결정된 버전이 ‘7.1’인 경우, 제3 클라이언트 (903) 에서 자동 저장 엔진의 버전 (953) 은 ‘7.1’보다 낮은 버전인 ‘7.0’이다. 이에, 명령어 전달 서버 (120) 는 ‘7.1’보다 낮은 버전을 갖는 제3 클라이언트 (903) 에는 갱신 불가 알림을 송신할 수 있다. 이에 따라, 제3 클라이언트 (903) 는 명령어 전달 서버 (120) 에서의 갱신 조건 (620) 또는 적어도 하나의 클라이언트 (900) 에서의 갱신 조건 (980) 이 충족되더라도, 갱신 불가 알림에 따라 갱신 시드 문서 파일 (970) 을 생성하지 않을 수 있다. 또는, 제3 클라이언트 (903)가 갱신 불가 알림을 수신한 경우, 갱신 시드 문서 파일 (970) 이 생성되어 있더라도, 갱신 시드 문서 파일 (970) 이 공동 편집 문서 공유 장치 (100) 에 업로드되지 않을 수 있다.
이에 따라, 공동 편집 문서 공유 장치 (100) 는 적어도 하나의 클라이언트 (900) 가 적합한 버전의 자동 저장 엔진을 갖고 있지 않은 경우에는 갱신 시드 문서 파일 (970) 의 생성을 방지하거나 업로드를 방지함으로써, 갱신 시드 문서 파일 (970) 의 신뢰성을 향상시킬 수 있다. 즉, 공동 편집 문서 공유 장치 (100) 는 적합한 버전의 자동 저장 엔진에 의해 갱신되는 시드 문서 파일만을 수신하도록 제어함으로써, 시드 문서 파일 및 공동 편집 문서 파일의 통일성과 신뢰성을 향상시킬 수 있다.
본 명세서에서, 각 블록 또는 각 단계는 특정된 논리적 기능 (들) 을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
본 명세서에 개시된 실시예들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈 또는 그 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 편집 명령어
501 시드 문서 파일의 출력 화면
502 갱신 시드 문서 파일의 출력 화면
530 편집 결과
531 제1 편집 결과
532 제2 편집 결과
533 제3 편집 결과
620 갱신 조건
621 제1 갱신 조건
622 제2 갱신 조건
623 제3 갱신 조건
624 제4 갱신 조건
900 적어도 하나의 클라이언트
901 제1 클라이언트
902 제2 클라이언트
903 제3 클라이언트
911 제1 시드 문서 파일
930 명령어 리스트
931 제1 편집 명령어
932 제2 편집 명령어
933 제3 편집 명령어
950 자동 저장 엔진
951 제1 클라이언트에서 자동 저장 엔진의 버전
952 제2 클라이언트에서 자동 저장 엔진의 버전
953 제3 클라이언트에서 자동 저장 엔진의 버전
970 갱신 시드 문서 파일
980 갱신 조건
981 제1 갱신 조건
982 제2 갱신 조건
983 제3 갱신 조건
1000 공유 서버
1200 바로가기 파일 서버

Claims (13)

  1. 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드(seed) 문서 파일을 적어도 하나의 클라이언트로 송신하는 시드 문서 서버; 및
    상기 적어도 하나의 클라이언트로부터 편집 명령어를 수신하고, 상기 편집 명령어를 수신한 순서에 대응하여 상기 편집 명령어를 상기 적어도 하나의 클라이언트 각각으로 송신하는 명령어 전달 서버를 포함하고,
    상기 적어도 하나의 클라이언트 각각은 상기 시드 문서 파일 및 상기 편집 명령어를 기초로 갱신 시드 문서 파일을 생성하는 자동 저장 엔진을 포함하며,
    상기 명령어 전달 서버는,
    상기 자동 저장 엔진의 버전을 확인하고,
    상기 버전이 미리 결정된 버전보다 낮은 버전인 자동 저장 엔진을 포함하는 클라이언트에 상기 갱신 시드 문서 파일의 생성을 금지하는 갱신 불가 알림을 송신하는, 공동 편집 문서를 공유하는 장치.
  2. 제1항에 있어서,
    상기 편집 명령어를 수신한 순서에 대응하여 상기 편집 명령어를 저장하는 명령어 저장 서버를 더 포함하고, 상기 명령어 저장 서버는 상기 명령어 전달 서버로부터 상기 편집 명령어를 수신한 순서대로 저장한 명령어 리스트를 포함하는, 공동 편집 문서를 공유하는 장치.
  3. 제1항에 있어서,
    상기 적어도 하나의 클라이언트 각각은 상기 명령어 전달 서버로부터 상기 편집 명령어를 수신한 순서대로 저장한 명령어 리스트를 포함하는, 공동 편집 문서를 공유하는 장치.
  4. 제1항에 있어서,
    상기 명령어 전달 서버는 상기 적어도 하나의 클라이언트가 상기 갱신 시드 문서 파일을 생성하기 위한 갱신 조건을 포함하는, 공동 편집 문서를 공유하는 장치.
  5. 제4항에 있어서,
    상기 명령어 전달 서버는 상기 갱신 조건이 충족되는 경우 상기 적어도 하나의 클라이언트에 갱신 알림(notification)을 전송하는, 공동 편집 문서를 공유하는 장치.
  6. 삭제
  7. 삭제
  8. 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드(seed) 문서 파일을 적어도 하나의 클라이언트로 송신하는 시드 문서 서버; 및
    상기 적어도 하나의 클라이언트로부터 편집 명령어를 수신하고, 상기 편집 명령어를 수신한 순서에 대응하여 상기 편집 명령어를 상기 적어도 하나의 클라이언트 각각으로 송신하는 명령어 전달 서버를 포함하고,
    상기 적어도 하나의 클라이언트 각각은 상기 시드 문서 파일 및 상기 편집 명령어를 기초로 갱신 시드 문서 파일을 생성하는 자동 저장 엔진을 포함하며,
    상기 적어도 하나의 클라이언트 각각은 상기 갱신 시드 문서 파일을 생성하는 갱신 조건을 포함하고,
    상기 적어도 하나의 클라이언트는 상기 갱신 조건이 충족되는 경우 상기 명령어 전달 서버로 갱신 가능 여부를 확인하는 요청을 송신하며,
    상기 명령어 전달 서버는 상기 요청에 대응하여 상기 갱신 가능 여부를 판단하고, 상기 갱신 가능 여부에 대응하여 갱신 알림을 전송하는, 공동 편집 문서를 공유하는 장치.
  9. 삭제
  10. 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드 문서 파일을 적어도 하나의 클라이언트로 송신하는 단계;
    상기 적어도 하나의 클라이언트로부터 편집 명령어를 수신하고, 상기 편집 명령어를 수신한 순서에 대응하여 상기 편집 명령어를 상기 적어도 하나의 클라이언트 각각으로 송신하는 단계;
    상기 적어도 하나의 클라이언트 각각이 갱신 시드 문서 파일을 생성하는 갱신 조건을 포함하여 상기 적어도 하나의 클라이언트가 상기 갱신 시드 문서 파일을 생성하는 갱신 조건이 충족되었다고 판단하는 경우, 상기 적어도 하나의 클라이언트로부터 갱신 가능 여부를 확인하는 요청을 수신하는 단계; 및
    상기 요청에 대응하여 상기 갱신 가능 여부를 판단하고, 상기 갱신 가능 여부에 대응하여 상기 적어도 하나의 클라이언트에 갱신 알림을 전송하는 단계를 포함하고,
    상기 적어도 하나의 클라이언트 각각은 상기 갱신 알림에 대응하여, 상기 시드 문서 파일 및 상기 편집 명령어를 기초로 상기 갱신 시드 문서 파일을 생성하는 자동 저장 엔진을 포함하는, 프로세서에 의해 실행되는 공동 편집 문서를 공유하는 방법.
  11. 삭제
  12. 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드 문서 파일을 적어도 하나의 클라이언트로 송신하는 단계;
    상기 적어도 하나의 클라이언트로부터 편집 명령어를 수신하고, 상기 편집 명령어를 수신한 순서에 대응하여 상기 편집 명령어를 상기 적어도 하나의 클라이언트 각각으로 송신하는 단계;
    갱신 시드 문서 파일을 생성하는 갱신 조건이 충족되는 경우, 상기 적어도 하나의 클라이언트에 갱신 알림을 전송하는 단계;
    상기 적어도 하나의 클라이언트 각각에 포함되며, 상기 갱신 알림에 대응하여, 상기 시드 문서 파일 및 상기 편집 명령어를 기초로 상기 갱신 시드 문서 파일을 생성하는 자동 저장 엔진의 버전을 확인하는 단계; 및
    상기 버전이 미리 결정된 버전보다 낮은 버전인 자동 저장 엔진을 포함하는 클라이언트에 상기 갱신 시드 문서 파일 생성을 금지하는 갱신 불가 알림을 송신하는 단계를 더 포함하는, 프로세서에 의해 실행되는 공동 편집 문서를 공유하는 방법.
  13. 공유 서버에 업로드된 문서 파일을 기초로 생성된 시드 문서 파일을 적어도 하나의 클라이언트로 송신하고,
    상기 적어도 하나의 클라이언트로부터 편집 명령어를 수신하고, 상기 편집 명령어를 수신한 순서에 대응하여 상기 편집 명령어를 상기 적어도 하나의 클라이언트 각각으로 송신하고,
    상기 적어도 하나의 클라이언트 각각이 갱신 시드 문서 파일을 생성하는 갱신 조건을 포함하여 상기 적어도 하나의 클라이언트가 상기 갱신 시드 문서 파일을 생성하는 갱신 조건이 충족되었다고 판단하는 경우, 상기 적어도 하나의 클라이언트로부터 갱신 가능 여부를 확인하는 요청을 수신하고,
    상기 요청에 대응하여 상기 갱신 가능 여부를 판단하고, 상기 갱신 가능 여부에 대응하여 상기 적어도 하나의 클라이언트에 갱신 알림을 전송하며,
    상기 적어도 하나의 클라이언트 각각은 상기 갱신 알림에 대응하여, 상기 시드 문서 파일 및 상기 편집 명령어를 기초로 상기 갱신 시드 문서 파일을 생성하는 자동 저장 엔진을 포함하는, 프로세서에 의해 실행되는 공동 편집 문서를 공유하는 방법을 제공하는 명령어들을 저장하는 컴퓨터 판독 가능 기록매체.
KR1020160123095A 2016-09-26 2016-09-26 공동 편집 문서를 공유하는 방법 및 장치 KR101858970B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160123095A KR101858970B1 (ko) 2016-09-26 2016-09-26 공동 편집 문서를 공유하는 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160123095A KR101858970B1 (ko) 2016-09-26 2016-09-26 공동 편집 문서를 공유하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180033752A KR20180033752A (ko) 2018-04-04
KR101858970B1 true KR101858970B1 (ko) 2018-05-17

Family

ID=61975533

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160123095A KR101858970B1 (ko) 2016-09-26 2016-09-26 공동 편집 문서를 공유하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101858970B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102053071B1 (ko) 2018-04-23 2020-01-08 주식회사 한글과컴퓨터 브라우저에 탑재된 웹 에디터를 통해 웹 기반 문서의 저장을 위한 포맷 변환을 지원하는 클라이언트 단말 장치 및 그 동작 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501969A (ja) * 2003-08-07 2007-02-01 インターナショナル・ビジネス・マシーンズ・コーポレーション 共同制作電子メール文書を作成するための方法、システム、およびコンピュータ・プログラム(共同制作電子メール)
KR101159504B1 (ko) * 2011-10-14 2012-06-25 주식회사 한글과컴퓨터 단말 장치 및 상기 단말 장치의 문서 공동 편집 방법
KR101571574B1 (ko) 2007-12-14 2015-11-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 협업적 저작 모드

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501969A (ja) * 2003-08-07 2007-02-01 インターナショナル・ビジネス・マシーンズ・コーポレーション 共同制作電子メール文書を作成するための方法、システム、およびコンピュータ・プログラム(共同制作電子メール)
KR101571574B1 (ko) 2007-12-14 2015-11-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 협업적 저작 모드
KR101159504B1 (ko) * 2011-10-14 2012-06-25 주식회사 한글과컴퓨터 단말 장치 및 상기 단말 장치의 문서 공동 편집 방법

Also Published As

Publication number Publication date
KR20180033752A (ko) 2018-04-04

Similar Documents

Publication Publication Date Title
EP3750291B1 (en) Collaborative editing of media in a mixed computing environment
US20170134495A1 (en) Method and apparatus for sharing collaboratively edited document
KR101701110B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
CN109716319B (zh) 云存储同步中基于策略的水合行为
US8326912B2 (en) Pipelining for massively parallel service architecture
WO2007044621A2 (en) Systems and methods for uploading and downloading files in a distributed network
AU2019216773B2 (en) Live-rendered and forkable graphic edit trails
KR101822401B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
US20200153889A1 (en) Method for uploading and downloading file, and server for executing the same
US20220284042A1 (en) Replication of parent record having linked child records that were previously replicated asynchronously across data storage regions
JP2011034550A (ja) 中継機器、中継方法およびプログラム
CN116132052A (zh) 跨链交易方法、装置、电子设备及存储介质
KR101858970B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
CN116940936A (zh) 对跨数据存储区域的链接的父记录和子记录的异步复制
KR101954061B1 (ko) 공동 편집 문서를 공유하는 방법 및 장치
US20160323379A1 (en) Distributed storage of software images in computing systems
US20110153769A1 (en) Apparatus and method for accessing a metadata
CN112698783A (zh) 对象存储方法、装置及系统
US20200137155A1 (en) System and method for peer-to-peer communication in partial mesh network
US20140280753A1 (en) Method and apparatus for peer-to-peer file sharing
JP2006227763A (ja) データ共有システム、データ共有方法及びプログラム
CN115776461A (zh) 投屏方法、设备及存储介质
US11599294B2 (en) Media storage for online meetings in edge network storage
CN114064209A (zh) 一种通过镜像创建云主机的方法、装置、设备及可读介质
US9298405B2 (en) Electronic apparatus, management system, and recording medium

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