KR102215576B1 - 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버 및 그 동작 방법 - Google Patents
개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버 및 그 동작 방법 Download PDFInfo
- Publication number
- KR102215576B1 KR102215576B1 KR1020190024603A KR20190024603A KR102215576B1 KR 102215576 B1 KR102215576 B1 KR 102215576B1 KR 1020190024603 A KR1020190024603 A KR 1020190024603A KR 20190024603 A KR20190024603 A KR 20190024603A KR 102215576 B1 KR102215576 B1 KR 102215576B1
- Authority
- KR
- South Korea
- Prior art keywords
- document
- editing
- entity
- data
- identifier
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Document Processing Apparatus (AREA)
Abstract
개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버 및 그 동작 방법이 개시된다. 본 발명은 문서에 삽입되어 있는 각 개체의 개체 식별자를 기초로 각 사용자 단말에서 동시에 발생한 편집 액션의 충돌 여부를 판정하고, 충돌 여부의 판정 결과를 기초로 문서 상에 편집 액션을 반영함으로써, 문서의 공동 편집 환경에서 사용자 간의 동시 편집을 지원할 수 있는 문서 편집 서버 및 그 동작 방법에 대한 것이다.
Description
본 발명은 다수의 사용자들이 웹을 기반으로 문서에 대한 공동 편집을 가능하게 하는 문서 편집 서버 및 그 동작 방법에 대한 것이다.
최근, 컴퓨터나 스마트폰 또는 태블릿 PC 등이 널리 보급됨에 따라, 이러한 단말기기를 이용하여 전자 문서를 열람, 작성, 편집할 수 있도록 하는 다양한 종류의 전자 문서 관련 프로그램들이 출시되고 있다.
이러한 전자 문서 관련 프로그램들로는 기본적인 문서의 작성, 편집 등을 지원하는 워드프로세서, 데이터의 입력, 산술연산, 데이터 관리를 보조하는 스프레드시트, 발표자의 발표를 보조하기 위한 프레젠테이션 프로그램들이 있다.
최근에는 전자 단말 장치에 소정의 문서 작성 프로그램을 설치하지 않고, 언제 어디에서든지 사용자가 문서를 작성할 수 있도록 지원하는 웹 기반의 문서 작성 서비스가 등장하고 있다.
웹 기반의 문서 작성 서비스는 소정의 문서 편집 서버와 전자 단말 장치를 네트워크로 연동하고, 사용자가 전자 단말 장치의 브라우저를 구동하여 브라우저 상에서 웹 편집기를 실행시키면, 상기 웹 편집기를 통해 문서를 작성할 수 있도록 지원하는 서비스이다. 이때, 문서 편집 서버에는 상기 전자 단말 장치를 통해 작성 중인 문서에 대한 문서 데이터가 저장되고, 사용자가 상기 웹 편집기를 통해 상기 전자 단말 장치에서 문서에 대한 편집 명령을 인가하게 되면, 상기 편집 명령이 상기 문서 편집 서버로 전송되어 상기 문서 편집 서버에 저장되어 있는 문서 데이터에 반영됨으로써, 상기 전자 단말 장치에서 작성 중인 문서와 상기 문서 편집 서버에 저장되어 있는 문서 데이터가 항상 같은 편집 상태를 유지하게 된다.
이러한 웹 기반의 문서 작성 서비스는 클라이언트 측인 전자 단말 장치에서 작성 중인 문서와 동일한 편집 상태를 갖는 문서 데이터를 저장하고 있는 문서 편집 서버가 존재하기 때문에, 상기 문서 편집 서버와 다수의 전자 단말 장치들 간의 연동도 가능하여 다수의 사용자들이 하나의 문서를 동시에 편집할 수 있도록 하는 기능을 제공해 준다.
다수의 사용자들이 문서를 동시에 편집하는 환경에서는 각 사용자에 의해 인가되는 편집 명령들 간의 충돌(conflict) 문제가 발생할 수 있다. 예컨대, 문서에 삽입되어 있는 도형, 이미지, 표 등과 같은 개체들 중 사용자 1과 사용자 2가 같은 개체에 동시에 편집 명령을 인가하게 되면, 해당 편집 명령을 어떻게 적용해야 할지를 해결해야 한다. 따라서, 웹 기반의 문서 작성 서비스에서는 다수의 사용자들 간의 문서 공동 편집을 정상적으로 지원하기 위한 기법의 연구가 필요한 상황이다.
또한, 웹 기반의 문서 작성 서비스에서는 클라이언트 측인 전자 단말 장치에서 사용자에 의해 문서 편집을 위한 액션이 발생하면, 편집 동기화를 위해 상기 액션에 따른 데이터를 문서 편집 서버로 전송하게 되는데, 상기 전자 단말 장치에서 상기 문서 편집 서버로 전송되는 편집 액션에 대한 데이터의 경량화를 통해 과도한 데이터 트래픽이 발생하는 것을 방지할 필요가 있다. 특히, 전자 단말 장치에서 사용자에 의해 문서 상에 도형, 이미지, 표 등과 같은 소정의 개체가 삽입되는 경우, 상기 전자 단말 장치는 상기 개체의 서식 속성에 대한 데이터를 문서 편집 서버로 전송하게 되고, 이때, 상기 문서 편집 서버는 서버 상에 저장되어 있는 문서 데이터에 상기 개체의 서식 속성에 대한 데이터를 추가함으로써, 상기 문서 편집 서버에 저장되어 있는 문서 데이터와 상기 전자 단말 장치에서 표시되고 있는 문서 간의 편집 상태가 동일하게 유지되도록 한다.
따라서, 웹 기반의 문서 작성 서비스에 있어서, 사용자에 의해 전자 단말 장치에서 작성 중인 문서에 소정의 개체가 삽입되는 경우, 상기 개체의 삽입에 따라 문서 편집 서버로 전송될 액션 데이터를 경량화함으로써, 웹 기반의 문서 작성 서비스의 운영에 따라 발생하는 데이터 트래픽을 감소시킬 수 있는 기법에 대한 연구가 필요하다.
본 발명은 문서에 삽입되어 있는 각 개체의 개체 식별자를 기초로 각 사용자 단말에서 동시에 발생한 편집 액션의 충돌 여부를 판정하고, 충돌 여부의 판정 결과를 기초로 문서 상에 편집 액션을 반영함으로써, 문서의 공동 편집 환경에서 사용자 간의 동시 편집을 지원할 수 있는 문서 편집 서버 및 그 동작 방법을 제시하고자 한다.
또한, 본 발명은 웹 기반의 문서 작성 서비스에 있어서, 사용자에 의해 사용자 단말에서 작성 중인 문서에 소정의 개체가 삽입되는 경우, 상기 개체의 삽입에 따라 문서 편집 서버로 전송될 액션 데이터를 경량화함으로써, 웹 기반의 문서 작성 서비스의 운영에 따라 발생하는 데이터 트래픽을 감소시킬 수 있는 기법을 제시하고자 한다.
본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버는 복수의 문서들에 대한 문서 데이터 - 상기 문서 데이터는 상기 복수의 문서들 각각의 편집 상태를 나타내기 위한 사전 설정된 포맷의 데이터로, 상기 문서 데이터에는 각 문서에 삽입되어 있는 개체들의 서식 속성에 대한 데이터가 각 개체에 미리 할당된 개체 식별자별로 구분되어 포함되어 있음 - 가 저장되어 있는 문서 데이터 저장부, 복수의 사용자 단말들로부터 상기 복수의 문서들 중 제1 문서의 공동 편집을 진행하기 위한 오픈 명령이 인가되면, 상기 제1 문서에 대한 제1 문서 데이터를 상기 복수의 사용자 단말들로 전송하는 문서 데이터 전송부, 상기 복수의 사용자 단말들 중 둘 이상의 사용자 단말들에서 동시에 발생한 상기 제1 문서의 편집과 연관된 편집 액션 - 상기 편집 액션에는 상기 제1 문서에서 편집이 적용될 대상 개체의 개체 식별자가 포함되어 있음 - 이 상기 둘 이상의 사용자 단말들 각각으로부터 수신되면, 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자를 확인하여 동일한 개체 식별자를 갖는 편집 액션이 존재하는지 여부를 판단하는 판단부 및 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자가 모두 상이한 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌(conflict)이 없는 것으로 판정한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트하는 공동 편집 처리부를 포함한다.
또한, 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법은 복수의 문서들에 대한 문서 데이터 - 상기 문서 데이터는 상기 복수의 문서들 각각의 편집 상태를 나타내기 위한 사전 설정된 포맷의 데이터로, 상기 문서 데이터에는 각 문서에 삽입되어 있는 개체들의 서식 속성에 대한 데이터가 각 개체에 미리 할당된 개체 식별자별로 구분되어 포함되어 있음 - 가 저장되어 있는 문서 데이터 저장부를 유지하는 단계, 복수의 사용자 단말들로부터 상기 복수의 문서들 중 제1 문서의 공동 편집을 진행하기 위한 오픈 명령이 인가되면, 상기 제1 문서에 대한 제1 문서 데이터를 상기 복수의 사용자 단말들로 전송하는 단계, 상기 복수의 사용자 단말들 중 둘 이상의 사용자 단말들에서 동시에 발생한 상기 제1 문서의 편집과 연관된 편집 액션 - 상기 편집 액션에는 상기 제1 문서에서 편집이 적용될 대상 개체의 개체 식별자가 포함되어 있음 - 이 상기 둘 이상의 사용자 단말들 각각으로부터 수신되면, 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자를 확인하여 동일한 개체 식별자를 갖는 편집 액션이 존재하는지 여부를 판단하는 단계 및 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자가 모두 상이한 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌이 없는 것으로 판정한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트하는 단계를 포함한다.
본 발명은 문서에 삽입되어 있는 각 개체의 개체 식별자를 기초로 각 사용자 단말에서 동시에 발생한 편집 액션의 충돌 여부를 판정하고, 충돌 여부의 판정 결과를 기초로 문서 상에 편집 액션을 반영함으로써, 문서의 공동 편집 환경에서 사용자 간의 동시 편집을 지원할 수 있는 문서 편집 서버 및 그 동작 방법을 제시할 수 있다.
또한, 본 발명은 웹 기반의 문서 작성 서비스에 있어서, 사용자에 의해 사용자 단말에서 작성 중인 문서에 소정의 개체가 삽입되는 경우, 상기 개체의 삽입에 따라 문서 편집 서버로 전송될 액션 데이터를 경량화함으로써, 웹 기반의 문서 작성 서비스의 운영에 따라 발생하는 데이터 트래픽을 감소시킬 수 있는 기법을 제시할 수 있다.
도 1은 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법을 도시한 순서도이다.
도 2는 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작을 설명하기 위한 도면이다.
도 3은 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.
도 1은 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 구조를 도시한 도면이다.
도 1을 참조하면, 본 발명에 따른 문서 편집 서버(110)는 문서 데이터 저장부(111), 문서 데이터 전송부(112), 판단부(113) 및 공동 편집 처리부(114)를 포함한다.
문서 데이터 저장부(111)에는 복수의 문서들에 대한 문서 데이터가 저장되어 있다.
여기서, 상기 문서 데이터는 상기 복수의 문서들 각각의 편집 상태를 나타내기 위한 사전 설정된 포맷의 데이터로, 상기 문서 데이터에는 각 문서에 삽입되어 있는 도형, 이미지, 표 등과 같은 개체들의 서식 속성에 대한 데이터가 각 개체에 할당된 개체 식별자별로 구분되어 포함되어 있을 수 있다.
이때, 개체 식별자란 문서에 삽입되어 있는 개체들 각각을 식별하기 위한 구분자로, 문서에서 개체가 삽입된 시점에 대한 시간 정보와 해당 문서를 작성한 작성자의 식별자 및 상기 개체에 대한 고유 일련 번호가 조합된 정보로 구성될 수 있다.
또한, 작성자의 식별자란 본 발명에 따른 웹 기반의 문서 작성 서비스를 통해 문서를 작성하기 위해서 사용자가 로그인할 때 사용하는 ID를 의미하고, 고유 일련 번호란 개체가 생성될 때마다 다른 개체와 중복되지 않게 랜덤하게 생성되는 고유 번호를 의미한다.
예컨대, 특정 문서에서 '도형 1'이라는 개체가 존재한다고 하였을 때, '도형 1'이 문서에 삽입된 시점에 대한 시간 정보를 나타내는 데이터를 '01D491D38931596A'라 하고, 문서 작성자의 식별자를 '0000'이라고 하며, '도형 1'에 대한 고유 일련 번호를 '3411'라고 하는 경우, '도형 1'에 대한 개체 식별자는 '01D491D38931596A00003411'가 될 수 있다.
그리고, 개체의 서식 속성에 대한 데이터란 개체가 도형이라고 하였을 때, 색상, 크기, 모양, 테두리의 굵기 등과 같이 해당 개체의 서식을 나타내는 데이터를 의미한다.
이때, 상기 문서 데이터에는 문서에 삽입되어 있는 개체들의 서식 속성에 대한 데이터가 각 개체에 할당된 개체 식별자별로 구분되어 포함되어 있을 수 있는데, 상기 문서 데이터에는 도 2의 도면부호 210에 도시된 그림과 같이, '00000167A62BFC4100000022'라는 개체 식별자(211)를 갖는 개체가 존재한다고 하였을 때, 도면부호 212로 나타낸 바와 같은 서식 속성에 대한 데이터가 '00000167A62BFC4100000022'라는 개체 식별자(211)를 기초로 구분되어 포함되어 있을 수 있다.
이때, 본 발명의 일실시예에 따르면, 문서 데이터 저장부(111)에 저장되어 있는 복수의 문서들에 대한 문서 데이터는 JSON(JavaScript Object Notation) 포맷으로 구성된 데이터일 수 있다.
문서 데이터 전송부(112)는 문서의 공동 편집에 참여하는 복수의 사용자 단말들(121, 122, 123)로부터 상기 복수의 문서들 중 제1 문서의 공동 편집을 진행하기 위한 오픈 명령이 인가되면, 상기 제1 문서에 대한 제1 문서 데이터를 복수의 사용자 단말들(121, 122, 123)로 전송한다.
이때, 복수의 사용자 단말들(121, 122, 123) 각각은 문서 편집 서버(110)로부터 상기 제1 문서 데이터가 수신되면, 각 사용자 단말(121, 122, 123)의 브라우저 상에서 구동되는 웹 편집기를 통해 상기 제1 문서 데이터를 파싱(parsing)하여 상기 제1 문서를 화면 상에 표시할 수 있다.
이때, 복수의 사용자 단말들(121, 122, 123) 각각은 상기 제1 문서 데이터가 수신되면, 상기 웹 편집기를 통해 상기 제1 문서 데이터를 파싱하여 브라우저 상에서 상기 제1 문서가 표시될 수 있도록 상기 제1 문서를 마크업 언어(markup language) 기반의 문서로 변환하여 화면 상에 표시할 수 있다.
그리고, 복수의 사용자 단말들(121, 122, 123)은 화면 상에 상기 제1 문서가 표시된 이후, 사용자에 의해 상기 제1 문서에 삽입되어 있는 제1 개체의 서식 변경을 위한 편집 명령이 인가되면, 상기 제1 개체의 개체 식별자를 포함하는 편집 액션을 생성하여 문서 편집 서버(110)로 전송할 수 있다.
예컨대, 사용자 단말 1(121)에서 사용자에 의해 상기 제1 문서에 삽입되어 있는 '도형 1'의 색상을 변경하라는 편집 명령이 인가되었다고 하는 경우, 사용자 단말 1(121)은 '도형 1'의 색상을 변경하라는 편집 명령과 '도형 1'에 대한 개체 식별자가 포함된 편집 액션을 생성하여 문서 편집 서버(110)로 전송할 수 있다.
이때, 문서 편집 서버(110)는 사용자 단말 1(121)로부터 상기 편집 액션이 수신되면, '도형 1'에 대한 개체 식별자를 기초로 상기 제1 문서에 대한 제1 문서 데이터에 포함되어 있는 '도형 1'의 서식 속성에 대한 데이터에 대해 '도형 1'의 색상을 변경하라는 편집 명령에 따른 편집 사항을 반영할 수 있다.
그러고 나서, 문서 편집 서버(110)는 나머지 사용자 단말들(122, 123)로 '도형 1'의 색상을 변경하라는 편집 명령과 '도형 1'에 대한 개체 식별자가 포함된 편집 액션을 전송할 수 있고, 이때 나머지 사용자 단말들(122, 123)은 상기 편집 액션을 수신하여 각 사용자 단말(122, 123)에서 표시되고 있는 상기 제1 문서 상에 '도형 1'의 색상을 변경하라는 편집 명령에 따른 편집 사항을 반영할 수 있다.
이로 인해, 복수의 사용자 단말들(121, 122, 123)에서 표시되고 있는 상기 제1 문서와 문서 편집 서버(110)에 저장되어 있는 상기 제1 문서 데이터의 편집 상태는 동일한 상태로 유지될 수 있다.
판단부(113)는 복수의 사용자 단말들(121, 122, 123) 중 둘 이상의 사용자 단말들에서 동시에 발생한 상기 제1 문서의 편집과 연관된 편집 액션(상기 편집 액션에는 상기 제1 문서에서 편집이 적용될 대상 개체의 개체 식별자가 포함되어 있음)이 상기 둘 이상의 사용자 단말들 각각으로부터 수신되면, 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자를 확인하여 동일한 개체 식별자를 갖는 편집 액션이 존재하는지 여부를 판단한다.
공동 편집 처리부(114)는 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자가 모두 상이한 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌(conflict)이 없는 것으로 판정한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트한다.
예컨대, 복수의 사용자 단말들(121, 122, 123) 중 사용자 단말 1(121)에서 상기 제1 문서에 삽입되어 있는 '도형 1'라는 개체에 대해 편집 명령이 발생하였고, 이와 동시에 사용자 단말 2(122)에서 '도형 2'라는 개체에 대해 편집 명령이 발생하였다고 하는 경우, 사용자 단말 1(121)은 '도형 1'에 대한 개체 식별자를 포함하는 편집 액션을 문서 편집 서버(110)로 전송할 수 있고, 사용자 단말 2(122)는 '도형 2'에 대한 개체 식별자를 포함하는 편집 액션을 문서 편집 서버(110)로 전송할 수 있다.
이때, 판단부(113)는 사용자 단말 1(121)과 사용자 단말 2(122) 각각으로부터 수신된 편집 액션 중 동일한 개체 식별자를 갖는 편집 액션이 존재하는지 여부를 판단할 수 있다.
본 실시예에서는 사용자 단말 1(121)의 편집 액션에 '도형 1'에 대한 개체 식별자가 포함되어 있고, 사용자 단말 2(122)의 편집 액션에 '도형 2'에 대한 개체 식별자가 포함되어 있으므로, 각 편집 액션에 포함된 개체 식별자가 상이하기 때문에 공동 편집 처리부(114)는 상기 제1 문서에 대한 공동 편집에 충돌이 없는 것으로 판정한 후 상기 제1 문서 데이터에 대해 사용자 단말 1(121)과 사용자 단말 2(122) 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트할 수 있다.
그 이후, 문서 편집 서버(110)는 사용자 단말 2(122)와 사용자 단말 3(123)에 대해 사용자 단말 1(121)로부터 수신된 '도형 1'에 대한 편집 액션을 전송하고, 사용자 단말 1(121)과 사용자 단말 3(123)에 대해 사용자 단말 2(122)로부터 수신된 '도형 2'에 대한 편집 액션을 전송함으로써, 복수의 사용자 단말들(121, 122, 123)에 표시되고 있는 상기 제1 문서와 문서 편집 서버(110)에 저장되어 있는 상기 제1 문서 데이터 간의 편집 상태가 동일하게 유지될 수 있도록 지원할 수 있다.
이때, 본 발명의 일실시예에 따르면, 공동 편집 처리부(114)는 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션 중 서로 동일한 개체 식별자를 갖는 편집 액션이 존재하는 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌이 발생한 것으로 판정하고, 동일한 개체 식별자를 갖는 편집 액션 간에 충돌을 제거하기 위한 운영변환(Operational Transformation)을 수행한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트할 수 있다.
여기서, 운영변환이란 복수의 사용자들이 하나의 문서에 동시 편집을 수행함에 따라 상기 문서 상에서 서로 양립할 수 없는 상황인 편집 명령들 간의 충돌이 발생하는 경우, 충돌되는 편집 명령의 문서에서의 적용 순서를 조정하거나 편집 명령이 적용될 문서에서의 위치를 조정하는 등의 변환을 수행하여 각 편집 명령이 충돌 없이 문서에 적절히 반영될 수 있도록 처리하는 충돌 제거 알고리즘을 의미한다.
관련해서, 복수의 사용자 단말들(121, 122, 123) 중 사용자 단말 1(121)에서 상기 제1 문서에 삽입되어 있는 '도형 1'라는 개체에 대해 편집 명령이 발생하였고, 이와 동시에 사용자 단말 2(122)에서 '도형 1'라는 개체에 대해 편집 명령이 발생하였다고 하는 경우, 사용자 단말 1(121)은 '도형 1'에 대한 개체 식별자를 포함하는 편집 액션을 문서 편집 서버(110)로 전송할 수 있고, 사용자 단말 2(122)도 '도형 1'에 대한 개체 식별자를 포함하는 편집 액션을 문서 편집 서버(110)로 전송할 수 있다.
이때, 판단부(113)는 사용자 단말 1(121)과 사용자 단말 2(122) 각각으로부터 수신된 편집 액션 중 동일한 개체 식별자를 갖는 편집 액션이 존재하는지 여부를 판단할 수 있다.
본 실시예에서는 사용자 단말 1(121)과 사용자 단말 2(122)의 편집 액션에 모두 '도형 1'에 대한 개체 식별자가 포함되어 있으므로, 각 편집 액션에 포함된 개체 식별자가 동일하기 때문에 공동 편집 처리부(114)는 상기 제1 문서에 대한 공동 편집에 충돌이 발생한 것으로 판정하고, '도형 1'이라는 동일한 개체에 적용될 편집 액션 간에 충돌을 제거하기 위한 운영변환을 수행한 후 상기 제1 문서 데이터에 대해 사용자 단말 1(121)과 사용자 단말 2(122) 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트할 수 있다.
그 이후, 문서 편집 서버(110)는 사용자 단말 2(122)와 사용자 단말 3(123)에 대해 사용자 단말 1(121)로부터 수신된 '도형 1'에 대한 운영변환이 완료된 편집 액션을 전송하고, 사용자 단말 1(121)과 사용자 단말 3(123)에 대해 사용자 단말 2(122)로부터 수신된 '도형 1'에 대한 운영변환이 완료된 편집 액션을 전송함으로써, 복수의 사용자 단말들(121, 122, 123)에 표시되고 있는 상기 제1 문서와 문서 편집 서버(110)에 저장되어 있는 상기 제1 문서 데이터 간의 편집 상태가 동일하게 유지될 수 있도록 지원할 수 있다.
결국, 본 발명에 따른 문서 편집 서버(110)는 각 개체의 개체 식별자를 기초로 각 사용자 단말에서 동시에 발생한 편집 액션의 충돌 여부를 판정하고, 충돌 여부의 판정 결과를 기초로 문서 상에 편집 액션을 반영함으로써, 문서의 공동 편집 환경에서 사용자 간의 동시 편집을 지원할 수 있다.
본 발명의 일실시예에 따르면, 복수의 사용자 단말들(121, 122, 123) 각각은 사용자에 의해 상기 제1 문서에 신규 개체가 삽입되는 경우, 상기 신규 개체의 상기 제1 문서에서의 삽입 시점에 대한 시간 정보와 상기 제1 문서에 대한 작성자를 식별하기 위한 작성자 식별자 및 상기 신규 개체에 대한 고유 일련 번호를 조합하여 상기 신규 개체에 대한 개체 식별자를 생성한 후 상기 신규 개체에 대한 개체 식별자와 상기 신규 개체의 서식 속성에 대한 데이터를 문서 편집 서버(110)로 전송할 수 있다.
이때, 문서 편집 서버(110)는 신규 개체 추가부(115)를 더 포함할 수 있다.
신규 개체 추가부(115)는 복수의 사용자 단말들(121, 122, 123) 중 제1 사용자 단말에서 상기 제1 문서에 제1 신규 개체가 삽입됨에 따라 상기 제1 사용자 단말로부터 상기 제1 신규 개체에 대한 개체 식별자와 상기 제1 신규 개체의 서식 속성에 대한 데이터가 수신되면, 상기 제1 문서 데이터에 상기 제1 신규 개체에 대한 개체 식별자와 상기 제1 신규 개체의 서식 속성에 대한 데이터를 서로 대응시켜 추가한다.
예컨대, 사용자 단말 1(121)에서 사용자에 의해 상기 제1 문서 상에 '신규 도형 1'이 새롭게 삽입되었다고 하는 경우, 사용자 단말 1(121)은 '신규 도형 1'이 삽입된 시점에 대한 시간 정보, 사용자 단말 1(121)의 사용자에 대한 작성자 식별자 및 '신규 도형 1'에 대한 고유 일련 번호를 조합하여 '신규 도형 1'에 대한 개체 식별자를 생성한 후 '신규 도형 1'에 대한 개체 식별자와 '신규 도형 1'에 대한 서식 속성에 대한 데이터를 문서 편집 서버(110)로 전송할 수 있다.
이때, 신규 개체 추가부(115)는 사용자 단말 1(121)로부터 '신규 도형 1'에 대한 개체 식별자와 '신규 도형 1'의 서식 속성에 대한 데이터가 수신되면, 상기 제1 문서 데이터에 '신규 도형 1'에 대한 개체 식별자와 '신규 도형 1'의 서식 속성에 대한 데이터를 서로 대응시켜 추가할 수 있다.
관련해서, '신규 도형 1'에 대한 개체 식별자가 도 2의 도면부호 211로 표시한 식별자이고, '신규 도형 1'에 대한 서식 속성에 대한 데이터가 도 2의 도면부호 212로 표시한 데이터라고 하는 경우, 신규 개체 추가부(115)는 도 2의 도면부호 210에 도시된 그림과 같이 '신규 도형 1'에 대한 개체 식별자(211)와 서식 속성에 대한 데이터(212)를 문서 데이터 저장부(111)에 저장되어 있는 상기 제1 문서 데이터에 서로 대응시켜 추가할 수 있다.
본 발명의 일실시예에 따르면, 복수의 사용자 단말들(121, 122, 123) 각각은 사용자에 의해 상기 제1 문서에 기 존재하고 있던 기존 개체에 대한 복사 개체가 상기 제1 문서에 삽입되는 경우, 상기 기존 개체의 개체 식별자에 포함되어 있는 상기 기존 개체의 상기 제1 문서에서의 삽입 시점에 대한 시간 정보와 상기 제1 문서에 대한 작성자를 식별하기 위한 작성자 식별자 및 상기 복사 개체에 대한 고유 일련 번호를 조합하여 상기 복사 개체에 대한 개체 식별자를 생성한 후 상기 복사 개체에 대한 개체 식별자를 문서 편집 서버(110)로 전송할 수 있다.
이때, 문서 편집 서버(110)는 복사 개체 추가부(116)를 더 포함할 수 있다.
복사 개체 추가부(116)는 복수의 사용자 단말들(121, 122, 123) 중 제2 사용자 단말에서 상기 제1 문서에 제1 복사 개체가 삽입됨에 따라 상기 제2 사용자 단말로부터 상기 제1 복사 개체에 대한 개체 식별자가 수신되면, 상기 제1 문서 데이터에 포함되어 있는 상기 제1 문서에 기 삽입된 개체들에 대한 개체 식별자 중 상기 제1 복사 개체의 개체 식별자에 포함되어 있는 시간 정보와 동일한 시간 정보를 갖는 제1 개체 식별자를 확인하고, 상기 제1 문서 데이터로부터 상기 제1 개체 식별자에 대응하여 존재하는 서식 속성에 대한 데이터를 추출한 후 상기 제1 문서 데이터에 상기 제1 복사 개체의 개체 식별자와 상기 추출된 서식 속성에 대한 데이터를 서로 대응시켜 추가할 수 있다.
예컨대, 사용자 단말 2(122)에서 사용자에 의해 상기 제1 문서 상에 이미 존재하고 있던 '기존 도형 1'이 복사되어 붙여넣기됨에 따라 상기 제1 문서 상에 '복사 도형 1'이 삽입되었다고 하는 경우, 사용자 단말 2(122)는 '기존 도형 1'의 개체 식별자에 포함되어 있는 '기존 도형 1'의 상기 제1 문서에서의 삽입 시점에 대한 시간 정보와 사용자 단말 2(122)의 사용자에 대한 작성자 식별자 및 '복사 도형 1'에 대한 고유 일련 번호를 조합하여 '복사 도형 1'에 대한 개체 식별자를 생성한 후 '복사 도형 1'에 대한 개체 식별자만을 문서 편집 서버(110)로 전송할 수 있다.
이때, 복사 개체 추가부(116)는 사용자 단말 2(122)로부터 '복사 도형 1'에 대한 개체 식별자가 수신되면, 상기 제1 문서 데이터에 포함되어 있는 상기 제1 문서에 기 삽입된 개체들에 대한 개체 식별자 중 '복사 도형 1'의 개체 식별자에 포함되어 있는 시간 정보와 동일한 시간 정보를 갖는 제1 개체 식별자로 '기존 도형 1'의 개체 식별자를 확인하고, 상기 제1 문서 데이터로부터 '기존 도형 1'의 개체 식별자에 대응하여 존재하는 서식 속성에 대한 데이터를 추출한 후 상기 제1 문서 데이터에 '복사 도형 1'의 개체 식별자와 상기 추출된 서식 속성에 대한 데이터를 서로 대응시켜 추가할 수 있다.
결국, 본 발명에 따른 문서 편집 서버(110)는 사용자 단말에서 생성된 개체가 신규 개체라면, 사용자 단말로부터 상기 신규 개체의 개체 식별자와 서식 속성에 대한 데이터를 모두 전송받지만, 상기 개체가 문서 상에서 이미 존재하고 있던 기존 개체가 복사된 개체라면, 상기 개체에 대한 개체 식별자만을 전송받음으로써, 사용자 단말과 문서 편집 서버(110) 사이의 편집 동기화 과정에서 발생하는 데이터 전송량을 줄일 수 있다.
도 3은 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법을 도시한 순서도이다.
단계(S310)에서는 복수의 문서들에 대한 문서 데이터(상기 문서 데이터는 상기 복수의 문서들 각각의 편집 상태를 나타내기 위한 사전 설정된 포맷의 데이터로, 상기 문서 데이터에는 각 문서에 삽입되어 있는 개체들의 서식 속성에 대한 데이터가 각 개체에 미리 할당된 개체 식별자별로 구분되어 포함되어 있음)가 저장되어 있는 문서 데이터 저장부를 유지한다.
단계(S320)에서는 복수의 사용자 단말들로부터 상기 복수의 문서들 중 제1 문서의 공동 편집을 진행하기 위한 오픈 명령이 인가되면, 상기 제1 문서에 대한 제1 문서 데이터를 상기 복수의 사용자 단말들로 전송한다.
단계(S330)에서는 상기 복수의 사용자 단말들 중 둘 이상의 사용자 단말들에서 동시에 발생한 상기 제1 문서의 편집과 연관된 편집 액션(상기 편집 액션에는 상기 제1 문서에서 편집이 적용될 대상 개체의 개체 식별자가 포함되어 있음)이 상기 둘 이상의 사용자 단말들 각각으로부터 수신되면, 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자를 확인하여 동일한 개체 식별자를 갖는 편집 액션이 존재하는지 여부를 판단한다.
단계(S340)에서는 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자가 모두 상이한 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌이 없는 것으로 판정한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트한다.
이때, 본 발명의 일실시예에 따르면, 상기 문서 편집 서버의 동작 방법은 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션 중 서로 동일한 개체 식별자를 갖는 편집 액션이 존재하는 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌이 발생한 것으로 판정하고, 동일한 개체 식별자를 갖는 편집 액션 간에 충돌을 제거하기 위한 운영변환을 수행한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 복수의 사용자 단말들 각각은 상기 문서 편집 서버로부터 상기 제1 문서 데이터가 수신되면, 각 사용자 단말의 브라우저 상에서 구동되는 웹 편집기를 통해 상기 제1 문서 데이터를 파싱하여 상기 제1 문서를 화면 상에 표시하고, 사용자에 의해 상기 제1 문서에 삽입되어 있는 제1 개체의 서식 변경을 위한 편집 명령이 인가되면, 상기 제1 개체의 개체 식별자를 포함하는 편집 액션을 생성하여 상기 문서 편집 서버로 전송할 수 있다.
이때, 본 발명의 일실시예에 따르면, 상기 복수의 사용자 단말들 각각은 사용자에 의해 상기 제1 문서에 신규 개체가 삽입되는 경우, 상기 신규 개체의 상기 제1 문서에서의 삽입 시점에 대한 시간 정보와 상기 제1 문서에 대한 작성자를 식별하기 위한 작성자 식별자 및 상기 신규 개체에 대한 고유 일련 번호를 조합하여 상기 신규 개체에 대한 개체 식별자를 생성한 후 상기 신규 개체에 대한 개체 식별자와 상기 신규 개체의 서식 속성에 대한 데이터를 상기 문서 편집 서버로 전송할 수 있다.
이때, 상기 문서 편집 서버의 동작 방법은 상기 복수의 사용자 단말들 중 제1 사용자 단말에서 상기 제1 문서에 제1 신규 개체가 삽입됨에 따라 상기 제1 사용자 단말로부터 상기 제1 신규 개체에 대한 개체 식별자와 상기 제1 신규 개체의 서식 속성에 대한 데이터가 수신되면, 상기 제1 문서 데이터에 상기 제1 신규 개체에 대한 개체 식별자와 상기 제1 신규 개체의 서식 속성에 대한 데이터를 서로 대응시켜 추가하는 단계를 더 포함할 수 있다.
또한, 본 발명의 일실시예에 따르면, 상기 복수의 사용자 단말들 각각은 사용자에 의해 상기 제1 문서에 기 존재하고 있던 기존 개체에 대한 복사 개체가 상기 제1 문서에 삽입되는 경우, 상기 기존 개체의 개체 식별자에 포함되어 있는 상기 기존 개체의 상기 제1 문서에서의 삽입 시점에 대한 시간 정보와 상기 제1 문서에 대한 작성자를 식별하기 위한 작성자 식별자 및 상기 복사 개체에 대한 고유 일련 번호를 조합하여 상기 복사 개체에 대한 개체 식별자를 생성한 후 상기 복사 개체에 대한 개체 식별자를 상기 문서 편집 서버로 전송할 수 있다.
이때, 상기 문서 편집 서버의 동작 방법은 상기 복수의 사용자 단말들 중 제2 사용자 단말에서 상기 제1 문서에 제1 복사 개체가 삽입됨에 따라 상기 제2 사용자 단말로부터 상기 제1 복사 개체에 대한 개체 식별자가 수신되면, 상기 제1 문서 데이터에 포함되어 있는 상기 제1 문서에 기 삽입된 개체들에 대한 개체 식별자 중 상기 제1 복사 개체의 개체 식별자에 포함되어 있는 시간 정보와 동일한 시간 정보를 갖는 제1 개체 식별자를 확인하고, 상기 제1 문서 데이터로부터 상기 제1 개체 식별자에 대응하여 존재하는 서식 속성에 대한 데이터를 추출한 후 상기 제1 문서 데이터에 상기 제1 복사 개체의 개체 식별자와 상기 추출된 서식 속성에 대한 데이터를 서로 대응시켜 추가하는 단계를 더 포함할 수 있다.
이상, 도 3을 참조하여 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법은 도 1과 도 2를 이용하여 설명한 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일실시예에 따른 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
110: 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버
111: 문서 데이터 저장부 112: 문서 데이터 전송부
113: 판단부 114: 공동 편집 처리부
115: 신규 개체 추가부 116: 복사 개체 추가부
121, 122, 123: 복수의 사용자 단말들
111: 문서 데이터 저장부 112: 문서 데이터 전송부
113: 판단부 114: 공동 편집 처리부
115: 신규 개체 추가부 116: 복사 개체 추가부
121, 122, 123: 복수의 사용자 단말들
Claims (12)
- 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버에 있어서,
복수의 문서들에 대한 문서 데이터 - 상기 문서 데이터는 상기 복수의 문서들 각각의 편집 상태를 나타내기 위한 사전 설정된 포맷의 데이터로, 상기 문서 데이터에는 각 문서에 삽입되어 있는 개체들의 서식 속성에 대한 데이터가 각 개체에 미리 할당된 개체 식별자별로 구분되어 포함되어 있음 - 가 저장되어 있는 문서 데이터 저장부;
복수의 사용자 단말들로부터 상기 복수의 문서들 중 제1 문서의 공동 편집을 진행하기 위한 오픈 명령이 인가되면, 상기 제1 문서에 대한 제1 문서 데이터를 상기 복수의 사용자 단말들로 전송하는 문서 데이터 전송부;
상기 복수의 사용자 단말들 중 둘 이상의 사용자 단말들에서 동시에 발생한 상기 제1 문서의 편집과 연관된 편집 액션 - 상기 편집 액션에는 상기 제1 문서에서 편집이 적용될 대상 개체의 개체 식별자가 포함되어 있음 - 이 상기 둘 이상의 사용자 단말들 각각으로부터 수신되면, 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자를 확인하여 동일한 개체 식별자를 갖는 편집 액션이 존재하는지 여부를 판단하는 판단부; 및
상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자가 모두 상이한 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌(conflict)이 없는 것으로 판정한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트하는 공동 편집 처리부
를 포함하고,
상기 복수의 사용자 단말들 각각은
상기 문서 편집 서버로부터 상기 제1 문서 데이터가 수신되면, 각 사용자 단말의 브라우저 상에서 구동되는 웹 편집기를 통해 상기 제1 문서 데이터를 파싱(parsing)하여 상기 제1 문서를 화면 상에 표시하고, 사용자에 의해 상기 제1 문서에 삽입되어 있는 제1 개체의 서식 변경을 위한 편집 명령이 인가되면, 상기 제1 개체의 개체 식별자를 포함하는 편집 액션을 생성하여 상기 문서 편집 서버로 전송하며, 사용자에 의해 상기 제1 문서에 신규 개체가 삽입되는 경우, 상기 신규 개체의 상기 제1 문서에서의 삽입 시점에 대한 시간 정보와 상기 제1 문서에 대한 작성자를 식별하기 위한 작성자 식별자 및 상기 신규 개체에 대한 고유 일련 번호를 조합하여 상기 신규 개체에 대한 개체 식별자를 생성한 후 상기 신규 개체에 대한 개체 식별자와 상기 신규 개체의 서식 속성에 대한 데이터를 상기 문서 편집 서버로 전송하고,
상기 문서 편집 서버는
상기 복수의 사용자 단말들 중 제1 사용자 단말에서 상기 제1 문서에 제1 신규 개체가 삽입됨에 따라 상기 제1 사용자 단말로부터 상기 제1 신규 개체에 대한 개체 식별자와 상기 제1 신규 개체의 서식 속성에 대한 데이터가 수신되면, 상기 제1 문서 데이터에 상기 제1 신규 개체에 대한 개체 식별자와 상기 제1 신규 개체의 서식 속성에 대한 데이터를 서로 대응시켜 추가하는 신규 개체 추가부
를 더 포함하는 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버. - 제1항에 있어서,
상기 공동 편집 처리부는
상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션 중 서로 동일한 개체 식별자를 갖는 편집 액션이 존재하는 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌이 발생한 것으로 판정하고, 동일한 개체 식별자를 갖는 편집 액션 간에 충돌을 제거하기 위한 운영변환(Operational Transformation)을 수행한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트하는 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버. - 삭제
- 삭제
- 제1항에 있어서,
상기 복수의 사용자 단말들 각각은
사용자에 의해 상기 제1 문서에 기 존재하고 있던 기존 개체에 대한 복사 개체가 상기 제1 문서에 삽입되는 경우, 상기 기존 개체의 개체 식별자에 포함되어 있는 상기 기존 개체의 상기 제1 문서에서의 삽입 시점에 대한 시간 정보와 상기 제1 문서에 대한 작성자를 식별하기 위한 작성자 식별자 및 상기 복사 개체에 대한 고유 일련 번호를 조합하여 상기 복사 개체에 대한 개체 식별자를 생성한 후 상기 복사 개체에 대한 개체 식별자를 상기 문서 편집 서버로 전송하고,
상기 문서 편집 서버는
상기 복수의 사용자 단말들 중 제2 사용자 단말에서 상기 제1 문서에 제1 복사 개체가 삽입됨에 따라 상기 제2 사용자 단말로부터 상기 제1 복사 개체에 대한 개체 식별자가 수신되면, 상기 제1 문서 데이터에 포함되어 있는 상기 제1 문서에 기 삽입된 개체들에 대한 개체 식별자 중 상기 제1 복사 개체의 개체 식별자에 포함되어 있는 시간 정보와 동일한 시간 정보를 갖는 제1 개체 식별자를 확인하고, 상기 제1 문서 데이터로부터 상기 제1 개체 식별자에 대응하여 존재하는 서식 속성에 대한 데이터를 추출한 후 상기 제1 문서 데이터에 상기 제1 복사 개체의 개체 식별자와 상기 추출된 서식 속성에 대한 데이터를 서로 대응시켜 추가하는 복사 개체 추가부
를 더 포함하는 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버. - 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법에 있어서,
복수의 문서들에 대한 문서 데이터 - 상기 문서 데이터는 상기 복수의 문서들 각각의 편집 상태를 나타내기 위한 사전 설정된 포맷의 데이터로, 상기 문서 데이터에는 각 문서에 삽입되어 있는 개체들의 서식 속성에 대한 데이터가 각 개체에 미리 할당된 개체 식별자별로 구분되어 포함되어 있음 - 가 저장되어 있는 문서 데이터 저장부를 유지하는 단계;
복수의 사용자 단말들로부터 상기 복수의 문서들 중 제1 문서의 공동 편집을 진행하기 위한 오픈 명령이 인가되면, 상기 제1 문서에 대한 제1 문서 데이터를 상기 복수의 사용자 단말들로 전송하는 단계;
상기 복수의 사용자 단말들 중 둘 이상의 사용자 단말들에서 동시에 발생한 상기 제1 문서의 편집과 연관된 편집 액션 - 상기 편집 액션에는 상기 제1 문서에서 편집이 적용될 대상 개체의 개체 식별자가 포함되어 있음 - 이 상기 둘 이상의 사용자 단말들 각각으로부터 수신되면, 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자를 확인하여 동일한 개체 식별자를 갖는 편집 액션이 존재하는지 여부를 판단하는 단계; 및
상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 포함된 개체 식별자가 모두 상이한 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌(conflict)이 없는 것으로 판정한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트하는 단계
를 포함하고
상기 복수의 사용자 단말들 각각은
상기 문서 편집 서버로부터 상기 제1 문서 데이터가 수신되면, 각 사용자 단말의 브라우저 상에서 구동되는 웹 편집기를 통해 상기 제1 문서 데이터를 파싱(parsing)하여 상기 제1 문서를 화면 상에 표시하고, 사용자에 의해 상기 제1 문서에 삽입되어 있는 제1 개체의 서식 변경을 위한 편집 명령이 인가되면, 상기 제1 개체의 개체 식별자를 포함하는 편집 액션을 생성하여 상기 문서 편집 서버로 전송하며, 사용자에 의해 상기 제1 문서에 신규 개체가 삽입되는 경우, 상기 신규 개체의 상기 제1 문서에서의 삽입 시점에 대한 시간 정보와 상기 제1 문서에 대한 작성자를 식별하기 위한 작성자 식별자 및 상기 신규 개체에 대한 고유 일련 번호를 조합하여 상기 신규 개체에 대한 개체 식별자를 생성한 후 상기 신규 개체에 대한 개체 식별자와 상기 신규 개체의 서식 속성에 대한 데이터를 상기 문서 편집 서버로 전송하고,
상기 문서 편집 서버의 동작 방법은
상기 복수의 사용자 단말들 중 제1 사용자 단말에서 상기 제1 문서에 제1 신규 개체가 삽입됨에 따라 상기 제1 사용자 단말로부터 상기 제1 신규 개체에 대한 개체 식별자와 상기 제1 신규 개체의 서식 속성에 대한 데이터가 수신되면, 상기 제1 문서 데이터에 상기 제1 신규 개체에 대한 개체 식별자와 상기 제1 신규 개체의 서식 속성에 대한 데이터를 서로 대응시켜 추가하는 단계
를 더 포함하는 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법. - 제6항에 있어서,
상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션 중 서로 동일한 개체 식별자를 갖는 편집 액션이 존재하는 것으로 판단된 경우, 상기 제1 문서에 대한 공동 편집에 충돌이 발생한 것으로 판정하고, 동일한 개체 식별자를 갖는 편집 액션 간에 충돌을 제거하기 위한 운영변환(Operational Transformation)을 수행한 후 상기 제1 문서 데이터에 대해 상기 둘 이상의 사용자 단말들 각각에서 수신된 편집 액션에 따른 편집 사항을 모두 반영하여 상기 제1 문서 데이터를 업데이트하는 단계
를 더 포함하는 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법. - 삭제
- 삭제
- 제6항에 있어서,
상기 복수의 사용자 단말들 각각은
사용자에 의해 상기 제1 문서에 기 존재하고 있던 기존 개체에 대한 복사 개체가 상기 제1 문서에 삽입되는 경우, 상기 기존 개체의 개체 식별자에 포함되어 있는 상기 기존 개체의 상기 제1 문서에서의 삽입 시점에 대한 시간 정보와 상기 제1 문서에 대한 작성자를 식별하기 위한 작성자 식별자 및 상기 복사 개체에 대한 고유 일련 번호를 조합하여 상기 복사 개체에 대한 개체 식별자를 생성한 후 상기 복사 개체에 대한 개체 식별자를 상기 문서 편집 서버로 전송하고,
상기 문서 편집 서버의 동작 방법은
상기 복수의 사용자 단말들 중 제2 사용자 단말에서 상기 제1 문서에 제1 복사 개체가 삽입됨에 따라 상기 제2 사용자 단말로부터 상기 제1 복사 개체에 대한 개체 식별자가 수신되면, 상기 제1 문서 데이터에 포함되어 있는 상기 제1 문서에 기 삽입된 개체들에 대한 개체 식별자 중 상기 제1 복사 개체의 개체 식별자에 포함되어 있는 시간 정보와 동일한 시간 정보를 갖는 제1 개체 식별자를 확인하고, 상기 제1 문서 데이터로부터 상기 제1 개체 식별자에 대응하여 존재하는 서식 속성에 대한 데이터를 추출한 후 상기 제1 문서 데이터에 상기 제1 복사 개체의 개체 식별자와 상기 추출된 서식 속성에 대한 데이터를 서로 대응시켜 추가하는 단계
를 더 포함하는 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버의 동작 방법. - 제6항, 제7항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
- 제6항, 제7항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190024603A KR102215576B1 (ko) | 2019-03-04 | 2019-03-04 | 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버 및 그 동작 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190024603A KR102215576B1 (ko) | 2019-03-04 | 2019-03-04 | 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버 및 그 동작 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200106292A KR20200106292A (ko) | 2020-09-14 |
KR102215576B1 true KR102215576B1 (ko) | 2021-02-15 |
Family
ID=72471240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190024603A KR102215576B1 (ko) | 2019-03-04 | 2019-03-04 | 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버 및 그 동작 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102215576B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080250314A1 (en) * | 2007-04-03 | 2008-10-09 | Erik Larsen | Visual command history |
US20120047434A1 (en) * | 2010-08-19 | 2012-02-23 | Cadence Design Systems, Inc. | Method to preview an undo/redo list |
KR101750429B1 (ko) * | 2017-02-22 | 2017-06-23 | (주) 사이냅소프트 | 공동 편집을 위한 문서 편집 시스템 및 방법 |
KR101826625B1 (ko) * | 2016-08-04 | 2018-02-07 | 주식회사 한글과컴퓨터 | 문서의 동시 편집을 지원하는 문서 협업 지원 장치 및 그 동작 방법 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120101980A1 (en) * | 2010-10-26 | 2012-04-26 | Microsoft Corporation | Synchronizing online document edits |
-
2019
- 2019-03-04 KR KR1020190024603A patent/KR102215576B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080250314A1 (en) * | 2007-04-03 | 2008-10-09 | Erik Larsen | Visual command history |
US20120047434A1 (en) * | 2010-08-19 | 2012-02-23 | Cadence Design Systems, Inc. | Method to preview an undo/redo list |
KR101826625B1 (ko) * | 2016-08-04 | 2018-02-07 | 주식회사 한글과컴퓨터 | 문서의 동시 편집을 지원하는 문서 협업 지원 장치 및 그 동작 방법 |
KR101750429B1 (ko) * | 2017-02-22 | 2017-06-23 | (주) 사이냅소프트 | 공동 편집을 위한 문서 편집 시스템 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20200106292A (ko) | 2020-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11172004B2 (en) | Real time collaboration and document editing by multiple participants in a content management system | |
US10810365B2 (en) | Workflow system and method for creating, distributing and publishing content | |
US7900142B2 (en) | Selective undo of editing operations performed on data objects | |
JP5443471B2 (ja) | 競合の解決 | |
KR102128139B1 (ko) | 플레이스홀더에 의한 파일 관리 기법 | |
KR101774257B1 (ko) | 객체의 서식을 유지하는 문서 편집 장치 및 그의 동작 방법 | |
CN102227720B (zh) | 在多个设备的范围内支持媒体内容回复功能 | |
WO2022062888A1 (zh) | 一种文档编辑方法、装置、计算机设备和存储介质 | |
JP2015510602A (ja) | 補助情報の再生の管理 | |
KR102168324B1 (ko) | 문서 편집 서버와 연동된 웹 기반의 문서 작성 환경에서 개체별 상태 변경을 가능하게 하는 전자 단말 장치 및 그 동작 방법 | |
US10019424B2 (en) | System and method that internally converts PowerPoint non-editable and motionless presentation mode slides into editable and mobile presentation mode slides (iSlides) | |
CN112364049B (zh) | 数据同步脚本生成方法、系统、终端及存储介质 | |
EP3230893A1 (en) | Method and system for concurrent collaborative undo operations in computer application software | |
WO2016094868A1 (en) | Method and system for concurrent collaborative undo operations in computer application software | |
US9063949B2 (en) | Inferring a sequence of editing operations to facilitate merging versions of a shared document | |
KR101809460B1 (ko) | 웹 문서 편집툴에서 지원하는 스타일 속성에 따라 웹 문서에 대한 외부 콘텐츠의 붙여넣기 처리가 가능한 클라이언트 단말 장치 및 그 동작 방법 | |
KR102215576B1 (ko) | 개체 식별자에 기초하여 웹 기반의 문서 공동 편집을 가능하게 하는 문서 편집 서버 및 그 동작 방법 | |
KR102010522B1 (ko) | 공동 편집 대상 문서 상에서 편집을 수행하고 있는 다른 유저의 이름 표시가 가능한 클라이언트 단말 장치 및 그 동작 방법 | |
WO2016000638A1 (en) | Networking cooperation method and machine using such method | |
KR102187543B1 (ko) | 문서 편집 서버와 연동하여 웹 기반의 문서 작성을 처리하는 전자 단말 장치 및 그 동작 방법 | |
JP2014171053A (ja) | 電子文書コンテナデータファイル、電子文書コンテナデータファイル生成装置、電子文書コンテナデータファイル生成プログラム、サーバ装置および電子文書コンテナデータファイル生成方法 | |
CN112000816A (zh) | 数据处理方法和装置 | |
KR20210060808A (ko) | 문서에 적용되어 있는 글꼴이 지원되는 글꼴인지 확인이 가능한 문서 편집 장치 및 그 동작 방법 | |
KR102010553B1 (ko) | 문서 공동 편집 환경에서 블록체인 기반의 편집 명령의 전파가 가능한 클라이언트 단말 장치 및 그 동작 방법 | |
KR102000543B1 (ko) | 웹 전자 문서 편집 장치 및 이의 동작 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |