KR20200001139A - 편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법 - Google Patents

편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법 Download PDF

Info

Publication number
KR20200001139A
KR20200001139A KR1020180073720A KR20180073720A KR20200001139A KR 20200001139 A KR20200001139 A KR 20200001139A KR 1020180073720 A KR1020180073720 A KR 1020180073720A KR 20180073720 A KR20180073720 A KR 20180073720A KR 20200001139 A KR20200001139 A KR 20200001139A
Authority
KR
South Korea
Prior art keywords
document
text
data
editing
command
Prior art date
Application number
KR1020180073720A
Other languages
English (en)
Other versions
KR102087280B1 (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 KR1020180073720A priority Critical patent/KR102087280B1/ko
Publication of KR20200001139A publication Critical patent/KR20200001139A/ko
Application granted granted Critical
Publication of KR102087280B1 publication Critical patent/KR102087280B1/ko

Links

Images

Classifications

    • G06F17/2247
    • G06F17/24

Landscapes

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

Abstract

본 발명은 편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법에 대한 것이다. 본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 서버는, 제 1 문서의 편집을 수행하는 클라이언트 장치에 의해 상기 제 1 문서에 대한 편집 세션이 생성되면, 상기 클라이언트 장치와의 편집 세션에 접속하는 세션 참가 처리부, 상기 클라이언트 장치로부터 상기 제 1 문서에 대한 하나 이상의 편집 명령들이 포함된 메시지 - 상기 메시지는 상기 제 1 문서가 브라우저에 의해 마크업 언어(Markup Language) 기반 문서로 렌더링되도록 구성된 모델 데이터로 구성됨 - 를 수신하고, 상기 클라이언트 장치로부터 수신된 순서에 따라 상기 메시지를 저장하는 메시지 큐 관리부, 상기 메시지 큐 관리부에 의해 저장된 상기 메시지를 상기 클라이언트 장치로부터 수신된 순서에 따라 파싱(parsing)하여 상기 하나 이상의 편집 명령들 각각에 대한 타입 정보 및 데이터를 추출하고, 상기 타입 정보에 기초하여 상기 데이터를 배포(deploy)하는 데이터 추출부, 상기 서버의 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 제 2 문서를 로드(load)하고, 상기 데이터 추출부에 의해 배포된 상기 데이터에 따라 상기 로드된 제 2 문서에 대한 편집을 수행하고, 상기 수행된 편집에 따라 상기 로드된 제 2 문서를 갱신하여 제 3 문서를 생성하고, 상기 생성된 제 3 문서를 상기 저장부에 저장하는 데이터 가공부 및 상기 저장부에 저장된 제 3 문서를 상기 세션 참가 처리부를 통해 상기 클라이언트 장치로 전달하는 편집 연산 확인부를 포함할 수 있다.

Description

편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법{SERVER FOR EDITING ELECTRONIC DOCUMENT BASED ON MESSAGE INCLUDING EDIT COMMAND AND OPERATING METHOD THEREOF}
본 발명은 편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법에 대한 것이다.
최근, 컴퓨터, 스마트폰 또는 태블릿 PC 등과 같은 전자 장치가 널리 보급됨에 따라 이러한 전자 장치를 이용하여 전자 문서를 열람, 작성, 편집할 수 있도록 하는 다양한 종류의 전자 문서 관련 프로그램들이 출시되고 있다.
이러한 전자 문서 관련 프로그램들로는 기본적인 문서의 작성, 편집 등을 지원하는 워드프로세서, 데이터의 입력, 산술연산, 데이터 관리를 보조하는 스프레드시트, 발표자의 발표를 보조하기 위한 프레젠테이션 프로그램들이 있다.
한편, 전자 장치를 통해 전자 문서를 열람, 작성 또는 편집하기 위해서는 전자 장치에 앞서 언급된 전자 문서 관련 프로그램들이 설치될 필요가 있었다. 하지만, 초고속 인터넷을 기초로 한 네트워크 망이 구축되고 언제 어디서든 인터넷에 접속할 수 있는 환경이 조성됨에 따라, 사용자는 원격지의 서버에 접속하여 전자 문서를 열람, 작성 또는 편집할 수 있게 되었다. 이처럼, 최근에는 전자 장치에 소정의 전자 문서 관련 프로그램이 설치되어 있지 않더라도 인터넷에 접속만 할 수 있다면, 언제 어디서든 전자 문서를 열람, 작성 또는 편집할 수 있는 웹 기반의 문서 편집 서비스가 등장하고 있다.
웹 기반의 문서 편집 서비스는 다양한 클라이언트 장치들이 관리 서버에 접속한 후 브라우저를 통해 마크업 언어(Markup Language) 기반의 전자 문서를 열람한 후 해당 전자 문서를 작성 및 편집할 수 있는 기능을 지원하고 있다. 여기서, 마크업 언어(Markup Language)는 XML(eXtensible Markup Language), HTML(HyperText Markup Language) 등과 같이 전자 문서에 포함되어있는 콘텐트의 서식, 구조 등에 대한 부가 정보를 태그를 통해 나타내는 언어를 의미한다.
한편, JSON(JavaScript Object Notation)은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성하기에도 용이한 경량의 데이터 교환 형식으로써, 특정 프로그래밍 언어나 플랫폼에 구속되지 않는 독립적인 특성을 가지고 있기 때문에, C, C++, C#, Java, JavaScript, Perl 및 Python 등 다양한 프로그래밍 언어를 통해 쉽게 이용 가능하다는 장점이 있다.
앞서 언급한 바와 같이, 사용자는 클라이언트 장치를 통해 전자 문서를 관리하는 서버에 접속하여 마크업 언어로 작성된 전자 문서를 열람할 수 있는데, 이 때, 서버와 전자 장치 간에 수행되는 동작들은 다음과 같을 수 있다. 예컨대, 서버는 마크업 언어로 작성된 후 서버에 저장되어 있는 전자 문서를 파싱하여 JSON 형태의 데이터로 변환한 후 클라이언트 장치에 전송할 수 있고, 클라이언트 장치는 서버로부터 수신된 JSON 형태의 데이터를 마크업 언어로 변환한 후 마크업 언어로 변환된 전자 문서를 파싱하여 디스플레이 상에 표시하는 형태로 사용자에게 전자 문서를 제공할 수 있다. 다만, 이 과정에서 서버는 마크업 언어로 작성된 전자 문서를 JSON 형태의 데이터로 변환하기 위해 수많은 데이터 변환 과정을 거쳐야 하고, 클라이언트 장치는 JSON 형태의 데이터를 다시 마크업 언어의 전자 문서로 변환하기 위해 또 다시 수많은 데이터 변환 과정을 거쳐야 하는데, 이는 서버 및 클라이언트 장치 모두에 부담으로 작용할 수 있다. 따라서, 과도한 데이터 변환 과정이 필요하지 않은 새로운 형식의 전자 문서에 대한 연구가 요구되고 있다.
본 문서에 개시된 다양한 실시 예들은 상기와 같은 요구에 응답하여 안출된 것으로서, 과도한 데이터 변환 없이 클라이언트 장치의 전자 문서와 서버의 전자 문서를 동기화하기 위하여 전자 문서에 대한 편집 명령 등을 공유하는 방법과 관련된 것이다. 예컨대, 클라이언트 장치에서 전자 문서에 대한 편집이 이루어질 때 상기 편집과 대응되는 명령을 포함하는 메시지를 생성하여 전자 문서를 관리하는 서버로 전달하면, 서버는 전달된 메시지를 분리하여 편집과 대응되는 명령을 획득하고 획득된 명령에 따라 서버에 저장된 문서를 편집함으로써, 클라이언트 장치의 종류나 개수와 상관없이 클라이언트 장치에 포함된 전자 문서와 서버에 저장된 전자 문서를 손쉽게 동기화시킬 수 있다.
본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 서버는, 제 1 문서의 편집을 수행하는 클라이언트 장치에 의해 상기 제 1 문서에 대한 편집 세션이 생성되면, 상기 클라이언트 장치와의 편집 세션에 접속하는 세션 참가 처리부, 상기 클라이언트 장치로부터 상기 제 1 문서에 대한 하나 이상의 편집 명령들이 포함된 메시지 - 상기 메시지는 상기 제 1 문서가 브라우저에 의해 마크업 언어(Markup Language) 기반 문서로 렌더링되도록 구성된 모델 데이터로 구성됨 - 를 수신하고, 상기 클라이언트 장치로부터 수신된 순서에 따라 상기 메시지를 저장하는 메시지 큐 관리부, 상기 메시지 큐 관리부에 의해 저장된 상기 메시지를 상기 클라이언트 장치로부터 수신된 순서에 따라 파싱(parsing)하여 상기 하나 이상의 편집 명령들 각각에 대한 타입 정보 및 데이터를 추출하고, 상기 타입 정보에 기초하여 상기 데이터를 배포(deploy)하는 데이터 추출부, 상기 서버의 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 제 2 문서를 로드(load)하고, 상기 데이터 추출부에 의해 배포된 상기 데이터에 따라 상기 로드된 제 2 문서에 대한 편집을 수행하고, 상기 수행된 편집에 따라 상기 로드된 제 2 문서를 갱신하여 제 3 문서를 생성하고, 상기 생성된 제 3 문서를 상기 저장부에 저장하는 데이터 가공부 및 상기 저장부에 저장된 제 3 문서를 상기 세션 참가 처리부를 통해 상기 클라이언트 장치로 전달하는 편집 연산 확인부를 포함할 수 있다.
본 발명의 다양한 실시 예들에 따른 서버의 동작 방법에 있어서, 상기 방법은, 제 1 문서의 편집을 수행하는 클라이언트 장치에 의해 상기 제 1 문서에 대한 편집 세션이 생성되면, 상기 클라이언트 장치와의 편집 세션에 접속하는 단계, 상기 클라이언트 장치로부터 상기 제 1 문서에 대한 하나 이상의 편집 명령들이 포함된 메시지 - 상기 메시지는 상기 제 1 문서가 브라우저에 의해 마크업 언어(Markup Language) 기반 문서로 렌더링되도록 구성된 모델 데이터로 구성됨 - 를 수신하고, 상기 클라이언트 장치로부터 수신된 순서에 따라 상기 메시지를 저장하는 단계, 상기 저장된 메시지를 상기 클라이언트 장치로부터 수신된 순서에 따라 파싱(parsing)하여 상기 하나 이상의 편집 명령들 각각에 대한 타입 정보 및 데이터를 추출하고, 상기 타입 정보에 기초하여 상기 데이터를 배포(deploy)하는 단계, 서버의 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 제 2 문서를 로드(load)하고, 상기 배포된 상기 데이터에 따라 상기 로드된 제 2 문서에 대한 편집을 수행하고, 상기 수행된 편집에 따라 상기 로드된 제 2 문서를 갱신하여 제 3 문서를 생성하고, 상기 생성된 제 3 문서를 상기 저장부에 저장하는 단계 및 상기 저장부에 저장된 제 3 문서를 상기 클라이언트 장치로 전달하는 단계를 포함할 수 있다.
본 발명의 다양한 실시 예들에 따르면, 클라이언트 장치에 저장된 전자 문서와 서버에 저장된 전자 문서를 편집할 때 경량의 데이터 교환 형식을 이용할 수 있게 됨에 따라, 클라이언트 장치 및 서버 간에 데이터를 주고 받는 것이 용이해질 수 있다.
도 1은 본 발명의 일 실시 예에 따른 클라이언트 장치 및 주변 장치들의 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 서버 및 주변 장치들의 구성을 도시한 도면이다.
도 3a 내지 3c는 본 발명의 일 실시 예에 따라 서버에서 수행되는 텍스트 삽입, 삭제 및 갱신 동작을 설명하기 위한 도면이다.
도 4a 내지 4c는 본 발명의 일 실시 예에 따라 서버에서 수행되는 비-텍스트 삽입, 삭제 및 갱신 동작을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시 예에 따라, 서버에서 메시지에 기초하여 문서를 편집하는 방법을 도시한 순서도이다.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.
도 1은 본 발명의 일 실시 예에 따른 클라이언트 장치 및 주변 장치들의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 클라이언트 장치(100)는 전자 문서 요청부(110), 전자 문서 수신부(120), 전자 문서 저장부(130), 편집 명령 수신부(140), 메시지 관리부(150), 전자 문서 변환부(160) 및 메시지 압축부(170)를 포함할 수 있다.
먼저, 사용자(10)가 입력 장치를 통해 서버(200)에 저장된 전자 문서의 열람을 요청하면, 전자 문서 요청부(110)는 상기 사용자(10)의 요청을 서버(200)로 전달할 수 있다. 여기에서, 서버(200)에 저장되어 있는 전자 문서는 하기 표 1과 같이 구성될 수 있다.
상위 그룹 하위 그룹 개체
개체 아이디 개체 값
밸류
서식 그룹 글자 모양 그룹 개체 아이디 1 "height" 1000
"textColor" "#000000"
... ...
... ... ...
스타일 그룹 개체 아이디 2 "type" "PARA"
"name" "바탕글"
... ...
... ... ...
... ... ... ...
콘텐트 그룹 텍스트 그룹 개체 아이디 3 "nextPara" 개체 아이디 4
"Flag" 0
"charShape" 개체 아이디 1
"styles" 개체 아이디 2
"contents" 한글
... ...
개체 아이디 4 "nextPara" -
"Flag" 0
"charShape" 개체 아이디 1
"styles" 개체 아이디 2
"contents"
... ...
... ... ... ...
전자 문서는 다수의 개체들을 각각 포함하는 다수의 그룹들로 구성되며, 상기 다수의 그룹들은 서식 그룹 및 콘텐트 그룹을 포함할 수 있다. 또한, 다수의 개체들 각각은 개체 아이디 및 개체 값을 포함할 수 있다. 여기에서, 서식 그룹은 글자 모양 정보를 나타내는 서식 그룹, 스타일 정보를 나타내는 서식 그룹 등 다양한 하위 서브 그룹으로 구성될 수 있다. 한편, 개체들 각각은 개체 아이디가 키이고, 개체 값이 밸류인 키-밸류 포맷(Key-Value Format)으로 구성될 수 있다.
서식 그룹은 글자 모양 정보, 탭 모양 정보, 문단 번호 모양 정보, 글머리표 모양 정보, 문단 모양 정보, 스타일 정보 등과 같이, 문서 서식에 대한 정보를 나타내는 개체를 포함하며, 콘텐트 그룹은 전자 문서에 삽입될 수 있는 도형, 이미지, 표, 텍스트 등과 관련된 개체를 포함할 수 있다. 추가로, 서식은 콘텐트의 색상, 형태 등을 나타내기 위한 것으로, 콘텐트가 텍스트인 경우에는 텍스트의 글꼴, 색상, 크기 등을 텍스트 콘텐트에 대한 서식이라고 할 수 있고, 콘텐트가 표인 경우에는 표에 포함되어 있는 셀의 색상 등이 표 콘텐트에 대한 서식이라고 할 수 있다. 한편, 도형의 경우 하나의 도형마다 하나의 콘텐트이고, 표의 경우 표가 하나의 콘텐트이며, 표 안에 삽입된 도형, 이미지, 표, 텍스트 등도 각각마다 하나의 콘텐트이고, 텍스트의 경우 서식이 동일한 단어, 소정 길이의 문자열이 하나의 콘텐트일 수 있다.
다양한 실시 예들에 따르면, 표 1에 나타난 바와 같이, 개체 값은 키-밸류 포맷의 값을 가질 수 있다. 예를 들어, 서식 그룹 중 글자 모양 정보를 나타내는 그룹에 포함되는 개체의 개체 값은 "height" : 1000, "textColor" : "#000000"일 수 있다. 여기에서, "height" 및 "textColor"는 키일 수 있으며, 1000, "#000000"은 밸류일 수 있다. 또한, 콘텐트 그룹 중 텍스트를 나타내는 그룹에 포함되는 개체의 개체 값은 "nextPara" : "개체 아이디 4", "Flag" : 0, "charShape" : 개체 아이디 1, "styles" : 개체 아이디 2, "contents" : 한글일 수 있다. 여기에서, "nextPara", "Flag", charShape", "styles" 및 "contents"는 키일 수 있으며, "개체 아이디 4", 0, "개체 아이디 1", "개체 아이디 2" 및 한글은 밸류일 수 있다.
전자 문서 수신부(120)는 서버(200)가 상기 사용자(10)가 선택한 전자 문서에 대한 열람 요청에 응답하여 송신한 전자 문서를 수신할 수 있다.
다음으로, 전자 문서 저장부(130)는 상기 전자 문서 수신부(120)가 수신한 상기 전자 문서를 임시 저장할 수 있다. 여기에서, 전자 문서 저장부(130)는 상기 전자 문서를 임시 저장할 수 있는 DRAM(Dynamic Random Access Memory), SRAM(Static RAM) 등과 같은 메모리 장치로 구현될 수 있다.
편집 명령 수신부(140)는 상기 전자 문서 저장부(130)에 임시 저장되어 있는 상기 전자 문서가 웹 브라우저를 통해 활성화된 상태에서, 상기 사용자(10)가 입력 장치를 통해 입력한 입력 신호와 대응되는 편집 명령을 수신할 수 있다. 여기서, 입력 장치는 사용자(10)가 입력한 입력 신호에 기초하여 편집 명령을 생성할 수 있다. 예를 들어, 사용자(10)가 입력 장치(예: 키보드)를 이용하여 "한"을 입력한 경우, 입력 장치는 상기 전자 문서에 "한"을 입력하라는 편집 명령을 생성할 수 있으며, 편집 명령 수신부(140)는 입력 장치로부터 생성된 편집 명령을 수신할 수 있다. 이어서, 사용자(10)가 입력 장치(예: 키보드)를 이용하여 "글"을 입력한 경우, 입력 장치는 상기 전자 문서에 "글"을 입력하라는 편집 명령을 생성할 수 있으며, 편집 명령 수신부(140)는 입력 장치로부터 생성된 편집 명령을 수신할 수 있다. 이러한 방식으로, 편집 명령 수신부(140)는 수신된 편집 명령에 기초하여 상기 전자 문서 저장부(130)에 저장되어 있는 전자 문서를 편집할 수 있다.
메시지 관리부(150)는 편집 명령 수신부(140)가 수신한 편집 명령을 서버(200)로 송신할 수 있다. 이 때, 메시지 관리부(150)는 편집 명령 수신부(140)로부터 수신되는 하나 이상의 편집 명령들을 전자 문서 저장부(130)에 임시 저장할 수 있으며, 임시 저장된 하나 이상의 편집 명령들을 이용하여 서버(200)에 송신 가능한 형태의 메시지를 생성할 수 있다. 메시지는 편집 명령 수신부(140)를 통해 수신된 편집 명령들을 모아 놓은 그룹 또는 집합을 의미할 수 있으며, 그 형태는 다음과 같을 수 있다. 예컨대, 메시지는 메시지에 포함된 하나 이상의 편집 명령들 각각에 대하여, 편집 명령의 종류를 나타내는 타입 정보를 포함할 수 있고, 편집 명령에 따른 값 또는 연산에 필요한 정보와 대응되는 데이터를 포함할 수 있다. 한편, 메시지는 클라이언트 장치(100) 또는 서버(200) 등에서의 검색 속도 및 처리 속도를 향상시키기 위해, 단일 레벨로 구성될 수 있다. 또한, 메시지는 클라이언트 장치(100) 및 서버(200) 간의 데이터 통신량을 줄이기 위해, 메시지에 포함된 적어도 하나의 타입 정보 또는 데이터가 압축된 형태로 생성될 수 있다. 예컨대, 메시지는 JSON 규칙에 따른 키-밸류 포맷에서, 키 및 밸류 중 적어도 하나가 압축된 형태로 생성될 수 있다.
메시지 압축부(170)는 메시지에 포함된 하나 이상의 편집 명령들의 연속성 또는 반복성을 고려하여, 메시지에 포함된 타입 정보 또는 데이터를 압축할 수 있다. 예컨대, 메시지 압축부(170)는 메시지에 포함된 편집 명령들 중에서, 편집 명령이 연속 및 반복됨에 따라 하나의 편집 명령으로 통합될 수 있는 편집 명령들을 선별한 후, 선별된 편집 명령들을 하나의 편집 명령으로 통합함으로써 메시지를 압축할 수 있다. 일 실시 예에 따르면, 메시지 압축부(170)는 선행하는 제 1 편집 명령과 후행하는 제 2 편집 명령 간에, 타입 정보가 동일하고 데이터가 연속성을 가지는 것으로 판단되면, 제 1 편집 명령 및 제 2 편집 명령을 통합할 수 있다. 또한, 일 실시 예에 따르면, 메시지 압축부(170)는 선행하는 제 1 편집 명령과 후행하는 제 2 편집 명령 간에, 타입 정보는 동일하지만 데이터가 연속성을 가지지 않는 것으로 판단되면, 제 1 편집 명령 및 제 2 편집 명령을 통합하지 않을 수 있다. 또한, 일 실시 예에 따르면, 메시지 압축부(170)는 선행하는 제 1 편집 명령과 후행하는 제 2 편집 명령 간에, 타입 정보가 동일하지 않다면, 제 1 편집 명령 및 제 2 편집 명령을 통합하지 않을 수 있다.
다양한 실시 예들에 따르면, 메시지 관리부(150) 및 메시지 압축부(170)를 통해 생성 및 압축된 메시지는 클라이언트 장치(100)에서 서버(200)로 전달될 수 있다. 서버(200)는 클라이언트 장치(100)의 메시지 관리부(150)에서 생성된 메시지를 수신할 수 있으며, 메시지에 포함된 하나 이상의 편집 명령들을 메시지에서 추출할 수 있다. 또한, 서버(200)는 추출된 하나 이상의 편집 명령들의 종류에 따라 상기 전자 문서를 갱신할 수 있다. 구체적으로, 편집 명령의 종류가 콘텐트 삽입 명령인 경우, 서버(200)는 편집 명령에 따라 개체들을 생성하고, 새롭게 생성된 개체들을 콘텐트 그룹의 신규 영역에 포함시킴으로써 전자 문서를 갱신할 수 있다. 또한, 서버(200)는 새롭게 생성된 개체들을 전자 문서에 포함시키는 경우, 기존 개체들의 개체 값 중 일부 개체 값의 밸류(예컨대, 특정 개체의 개체 아이디를 참조하기 위한 키의 밸류)가 새롭게 생성된 개체들의 개체 아이디를 나타내도록 갱신할 수 있다.
예를 들어, 서버(200)는 개체 아이디 4를 가지는 개체가 나타내는 문단의 다음번 문단에 "컴퓨터"라는 텍스트 콘텐트를 입력하라는 콘텐트 삽입 명령이 수신되면, 상기 표 1과 같은 상기 전자 문서를 하기 표 2와 같이 갱신할 수 있다.
상위 그룹 하위 그룹 개체
개체 아이디 개체 값
밸류
서식 그룹 글자 모양 그룹 개체 아이디 1 "height" 1000
"textColor" "#000000"
... ...
... ... ...
스타일 그룹 개체 아이디 2 "type" "PARA"
"name" "바탕글"
... ...
... ... ...
... ... ... ...
콘텐트 그룹 텍스트 그룹 개체 아이디 3 "nextPara" 개체 아이디 4
"Flag" 0
"charShape" 개체 아이디 1
"styles" 개체 아이디 2
"contents" 한글
... ...
개체 아이디 4 "nextPara" 개체 아이디 5
"Flag" 0
"charShape" 개체 아이디 1
"styles" 개체 아이디 2
"contents"
... ...
개체 아이디 5 "nextPara" -
"Flag" 0
"charShape" 개체 아이디 1
"styles" 개체 아이디 2
"contents" 컴퓨터
... ...
... ... ... ...
표 2를 참조하면, 서버(200)는 개체 아이디 5를 가지는 개체가 새롭게 생성되는 것에 대응하여, 개체 아이디 4를 가지는 개체의 개체 값 중 "nextPara" 키의 밸류를 - (마이너스 기호, 해당 전자 문서의 마지막 번째 문단을 나타냄)에서 개체 아이디 5로 갱신할 수 있다. 여기에서, "nextPara" 키는 해당 개체가 나타내는 문단의 다음번 문단에 대한 개체의 개체 아이디를 나타내기 위한 키일 수 있다.
다양한 실시 예들에 따르면, 편집 명령의 종류가 콘텐트 삭제 명령인 경우, 서버(200)는 편집 명령의 대상 개체들의 개체 아이디와 동일한 개체 아이디를 가지는 개체들을 확인한 후, 상기 확인된 개체들의 플래그 값을 온 값으로 변경하는 방식으로 전자 문서를 갱신할 수 있다. 즉, 서버(200)는 콘텐트 삭제 명령과 대응되는 개체의 개체 값 중 플래그 값을 변경함으로써, 간편하게 콘텐트 삭제 명령을 수행할 수 있다.
예를 들어, 서버(200)는 개체 아이디 4를 가지는 개체가 나타내는 문단을 삭제하라는 콘텐트 삭제 명령이 수신되면, 상기 표 2와 같은 상기 전자 문서를 하기 표 3과 같이 갱신할 수 있다.
상위 그룹 하위 그룹 개체
개체 아이디 개체 값
밸류
서식 그룹 글자 모양 그룹 개체 아이디 1 "height" 1000
"textColor" "#000000"
... ...
... ... ...
스타일 그룹 개체 아이디 2 "type" "PARA"
"name" "바탕글"
... ...
... ... ...
... ... ... ...
콘텐트 그룹 텍스트 그룹 개체 아이디 3 "nextPara" 개체 아이디 4
"Flag" 0
"charShape" 개체 아이디 1
"styles" 개체 아이디 2
"contents" 한글
... ...
개체 아이디 4 "nextPara" 개체 아이디 5
"Flag" 1
"charShape" 개체 아이디 1
"styles" 개체 아이디 2
"contents"
... ...
개체 아이디 5 "nextPara" -
"Flag" 0
"charShape" 개체 아이디 1
"styles" 개체 아이디 2
"contents" 컴퓨터
... ...
... ... ... ...
표 3을 참조하면, 서버(200)는 개체 아이디 4를 가지는 개체의 플래그 키(즉, "Flag")의 밸류를 0(즉, 오프)에서 1(즉, 온)로 변경함으로써, 상기 전자 문서를 갱신할 수 있다. 일 실시 예에 따르면, 서버(200)는 사전 설정된 시간 간격마다 또는 상기 사용자(10)의 상기 전자 문서에 대한 편집이 완료될 때, 플래그 값이 온 값으로 변경된 개체들을 삭제함으로써, 상기 전자 문서에서 상기 전자 문서를 표현하는데 더 이상 이용되지 않는 개체들을 제거할 수 있다. 이 때, 상기 전자 문서에 대해 동시 편집 중인 사용자의 수가 증가함에 따라 사전 설정된 시간 간격은 길어지도록 사전 설정될 수 있다.
다음으로, 도 1을 참조하면, 본 발명의 일 실시 예에 따른 클라이언트 장치(100)는 전자 문서 변환부(160)를 더 포함할 수 있다. 예컨대, 전자 문서 변환부(160)는 상기 전자 문서 저장부(130)에 상기 표 1과 같이 임시 저장되어 있는 전자 문서를 워드프로세서 프로그램용 전자 문서로 변환할 수 있다. 또한, 전자 문서 변환부(160)는 워드프로세서 프로그램용 전자 문서를 상기 웹 브라우저에서 편집 가능한 전자 문서로 변환한 후 상기 전자 문서 저장부(130)에 저장할 수 있다.
다양한 실시 예들에 따르면, 클라이언트 장치(100)에 포함된 구성요소들은 클라이언트 장치(100) 내에서 특정 인스트럭션을 수행하는 모듈을 의미할 수 있고, 모듈의 적어도 일부는 컴퓨터로 판독 가능한 저장 매체(예: 메모리)에 저장된 명령어로 구현될 수 있다. 이 경우, 상기 명령어가 클라이언트 장치(100)의 프로세서에 의해 실행될 때, 명령어와 대응되는 기능이 수행되는 것으로 해석될 수 있다.
도 2는 본 발명의 일 실시 예에 따른 서버 및 주변 장치들의 구성을 도시한 도면이다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 서버(200)는 세션 참가 처리부(210), 메시지 큐 관리부(220), 데이터 추출부(230), 데이터 가공부(240), 편집 연산 확인부(250) 및 저장부(260)를 포함할 수 있다. 한편, 도 2에 구체적으로 도시되지는 않았으나, 서버(200)는 다양한 클라이언트 장치들(100, 101, 102)과 유선 또는 무선으로 데이터를 주고 받을 수 있는 통신 모듈을 더 포함할 수 있다.
세션 참가 처리부(210)는 전자 문서의 편집을 위한 서버(200) 및 다양한 클라이언트 장치들(100, 101, 102)간의 편집 세션을 수립할 수 있고, 수립된 편집 세션을 통해 다양한 클라이언트 장치들(100, 101, 102)로부터 전달되는 편집 명령들을 수신할 수 있다. 예컨대, 세션 참가 처리부(210)는 제 1 문서의 편집을 수행하는 클라이언트 장치에 의해 상기 제 1 문서에 대한 편집 세션이 생성되면, 상기 클라이언트 장치와의 편집 세션에 접속하여 상기 클라이언트 장치와 적어도 하나의 데이터를 송신 또는 수신할 수 있다.
메시지 큐 관리부(220)는 다양한 클라이언트 장치들(100, 101, 102)로부터 수신되는 메시지들을 수신된 순서에 따라 저장하고, 수신된 순서에 따라 출력할 수 있다(FIFO(first in, first out)). 예를 들어, 다양한 클라이언트 장치들(100, 101, 102)로부터 제 1 문서의 편집과 관련된 하나 이상의 메시지들이 수신되는 경우, 메시지 큐 관리부(220)는 하나 이상의 메시지들이 수신되는 순서대로 저장되었다가, 수신되는 순서대로 출력되도록 관리할 수 있다. 한편, 하나 이상의 메시지들은 제 1 문서에 대한 복수의 편집 명령들을 포함할 수 있고, 제 1 문서가 브라우저에 의해 마크업 언어(Markup Language) 기반 문서로 렌더링되도록 구성된 모델 데이터로 구성될 수 있다.
데이터 추출부(230)는 메시지 큐 관리부(220)에 의해 저장된 메시지들을 다양한 클라이언트 장치들(100, 101, 102)로부터 수신된 순서에 따라 파싱(parsing)할 수 있다. 이를 통해, 데이터 추출부(230)는 메시지들에 포함된 하나 이상의 편집 명령들 각각에 대한 타입 정보 및 데이터를 추출할 수 있다. 이어서, 데이터 추출부(230)는 추출된 타입 정보에 기초하여, 데이터를 배포(deploy)할 수 있다. 예컨대, 타입 정보가 텍스트(또는 비-텍스트)의 삽입, 삭제 또는 갱신과 관련된 것으로 판단되는 경우, 데이터 추출부(230)는 타입 정보와 대응되는 데이터를 데이터 가공부(240)의 제 2 레이어부(242)로 배포할 수 있다. 한편, 제 2 레이어부(242)는 후술하는 바와 같이, 텍스트 또는 도형과 같은 다양한 콘텐트의 편집 명령을 처리하기 위해 데이터를 가공하는 모듈일 수 있다.
일 실시 예에 따르면, 다양한 클라이언트 장치들(100, 101, 102)로부터 제 1 문서의 편집과 관련된 하나 이상의 메시지들이 수신되는 경우, 데이터 가공부(240)는 서버(200)의 저장부(260)에 저장된 문서들 중 제 1 문서와 대응되는 제 2 문서를 로드(load)할 수 있다. 여기서, 제 1 문서는 다양한 클라이언트 장치들(100, 101, 102)의 저장부에 저장된 전자 문서를 의미하고, 제 2 문서는 서버(200)의 저장부(260)에 저장된 전자 문서를 의미할 수 있다. 한편, 본 문서에 개시된 다양한 실시 예들에 따르면, 제 1 문서 및 제 2 문서는 메시지 등에 기반하여 실시간으로 동기화될 수 있으므로, 실질적으로 동일한 전자 문서를 지칭하는 것으로 이해될 수 있다.
데이터 가공부(240)는 데이터 추출부(230)에 의해 배포된 데이터에 따라, 상기 로드된 제 2 문서에 대한 편집을 수행할 수 있다.
먼저, 편집 명령에서 추출된 타입 정보가 텍스트 삽입 명령과 관련된 경우, 서버(200)는 추출된 데이터와 대응되는 개체들을 생성하고, 새롭게 생성된 개체들을 콘텐트 그룹의 신규 영역에 포함시킴으로써 전자 문서를 갱신할 수 있다. 또한, 서버(200)는 새롭게 생성된 개체들을 전자 문서에 포함시키는 경우, 기존 개체들의 개체 값 중 일부 개체 값의 밸류(예컨대, 특정 개체의 개체 아이디를 참조하기 위한 키의 밸류)가 새롭게 생성된 개체들의 개체 아이디를 나타내도록 갱신할 수 있다.
또한, 편집 명령에서 추출된 타입 정보가 텍스트 삭제 명령인 경우, 서버(200)는 추출된 데이터와 대응되는 개체들의 개체 아이디와 동일한 개체 아이디를 가지는 개체들을 확인한 후, 상기 확인된 개체들의 플래그 값을 온 값으로 변경하는 방식으로 전자 문서를 갱신할 수 있다. 즉, 서버(200)는 텍스트 삭제 명령과 대응되는 개체의 개체 값 중 플래그 값을 변경함으로써, 간편하게 텍스트 삭제 명령을 수행할 수 있다.
데이터 가공부(240)는 수행된 편집에 따라 상기 로드된 제 2 문서를 갱신하여 제 3 문서를 생성할 수 있으며, 상기 생성된 제 3 문서를 상기 저장부(260)에 저장할 수 있다.
다양한 실시 예들에 따르면, 데이터 가공부(240)는 다양한 데이터 가공 계층을 포함하는 형태로 구성될 수 있다. 예컨대, 데이터 가공부(240)는 상기 데이터 추출부(230)에 의해 배치된 상기 데이터로부터 적어도 하나의 파라미터를 생성하고, 상기 생성된 적어도 하나의 파라미터를 상기 타입 정보와 대응되는 함수에 필요한 형태로 나열하는 제 1 레이어부(241)를 포함할 수 있다. 또한, 데이터 가공부(240)는 상기 타입 정보에 기초하여 상기 하나 이상의 편집 명령들 각각의 대상이 되는 오브젝트를 식별하고, 상기 식별된 오브젝트의 개체 아이디를 이용하여 상기 제 2 문서 내에서 상기 식별된 오브젝트의 위치를 검색하고, 상기 검색된 위치에 상기 편집 명령에 따른 상기 제 2 문서에 대한 편집을 수행하는 제 2 레이어부(242)를 포함할 수 있다. 또한, 데이터 가공부(240)는 상기 메시지가 상기 메시지 큐 관리부(220)에 의해 저장되는 것에 응답하여 상기 저장부(260)에 대한 접근 가능 여부에 대한 질의(query)를 전송하고, 상기 전송된 질의에 따라 상기 저장부(260)에 대한 접근이 가능한 것으로 판단되면 상기 저장부(260)에 직접 접근하여 상기 저장부(260)에 저장된 문서들 중 상기 제 1 문서와 대응되는 상기 제 2 문서에 대한 편집을 수행하는 제 3 레이어부(243)를 포함할 수 있다.
편집 연산 확인부(250)는 저장부(260)에 저장된 제 3 문서를 세션 참가 처리부(210)를 통해 다양한 클라이언트 장치들(100, 101, 102)로 전달할 수 있다. 다양한 실시 예들에 따르면, 편집 연산 확인부(250)를 통해 다양한 클라이언트 장치들(100, 101, 102)로 전달되는 것은 제 3 문서 전체이거나 제 3 문서로부터 추출된 편집 내역 등이 포함된 메시지일 수 있다.
도 3a 내지 3c는 본 발명의 일 실시 예에 따라 서버에서 수행되는 텍스트 삽입, 삭제 및 갱신 동작을 설명하기 위한 도면이다.
일 실시 예에 따르면, 서버(200)는 클라이언트 장치(100)로부터 수신된 메시지에서 텍스트 삽입 명령과 관련된 타입 정보가 추출되는 경우, 메시지를 검색하여 타입 정보와 대응되는 연산 정보(300)를 획득할 수 있다. 연산 정보(300)는 타입 정보에 따른 데이터가 삽입될 위치 정보 등을 포함할 수 있다. 서버(200)는 획득된 연산 정보(300)에 기초하여, 제 2 문서 내에서 데이터가 삽입될 위치를 결정할 수 있고, 결정된 위치에 데이터를 삽입할 수 있다. 예를 들어, 도 3a를 참조하면, 서버(200)는 런 함수(310)를 이용하여, "t"에 해당하는 텍스트 데이터(320)를 제 2 문서에 삽입할 수 있다.
일 실시 예에 따르면, 서버(200)는 클라이언트 장치(100)로부터 수신된 메시지에서 텍스트 삭제 명령과 관련된 타입 정보가 추출되는 경우, 메시지를 검색하여 타입 정보와 대응되는 연산 정보(300)를 획득할 수 있다. 연산 정보(300)는 타입 정보에 따른 데이터가 삭제될 위치 정보 등을 포함할 수 있다. 서버(200)는 획득된 연산 정보(300)에 기초하여, 제 2 문서 내에서 데이터가 삭제될 위치를 결정할 수 있고, 결정된 위치에서 데이터를 삭제할 수 있다. 예를 들어, 도 3b를 참조하면, 서버(200)는 런 함수(310)를 이용하여, "t"에 해당하는 텍스트 데이터(330)를 제 2 문서에서 삭제할 수 있다.
일 실시 예에 따르면, 서버(200)는 클라이언트 장치(100)로부터 수신된 메시지에서 텍스트 갱신 명령과 관련된 타입 정보가 추출되는 경우, 메시지를 검색하여 타입 정보와 대응되는 연산 정보(300)를 획득할 수 있다. 연산 정보(300)는 타입 정보에 따라 갱신될 데이터의 위치 정보 등을 포함할 수 있다. 서버(200)는 획득된 연산 정보(300)에 기초하여, 제 2 문서 내에서 갱신될 데이터의 위치를 결정할 수 있고, 결정된 위치에 존재하는 데이터를 갱신할 수 있다. 한편, 텍스트 갱신 명령이란, 텍스트의 속성을 변경하는 것을 의미할 수 있다. 예컨대, 서버(200)는 메시지로부터 텍스트 갱신 명령이 확인될 경우, 일정 범위 내에 있는 텍스트의 모양 등을 변경할 수 있다. 도 3c를 참조하면, 제 1 시점(340)에, 제 2 문서(350)는 제 1 속성(360)이 적용된 제 1 텍스트(371), 제 2 텍스트(372), 제 3 텍스트(373) 및 제 4 텍스트(374)를 포함할 수 있다. 만약, 제 2 시점(341)에, 텍스트 갱신 명령에 따라 제 2 텍스트(372) 및 제 3 텍스트(373)에 적용된 제 1 속성(360)을 제 2 속성(265)으로 변경하는 것이 요청될 경우, 서버(200)는 런 함수(310)를 이용하여 제 2 텍스트(372) 및 제 3 텍스트(373)를 선택할 수 있고, 선택된 제 2 텍스트(372) 및 제 3 텍스트(373)에 제 2 속성(365)을 적용할 수 있다. 제 3 시점(342)에, 서버(200)는 제 2 속성(365)이 적용된 제 2 텍스트(372) 및 제 3 텍스트(373)와, 제 1 속성(360)이 적용된 제 1 텍스트(371) 및 제 4 텍스트(374)를 분리할 수 있으며, 각각에 대하여 별도의 개체 아이디를 부여할 수 있다.
도 4a 내지 4c는 본 발명의 일 실시 예에 따라 서버에서 수행되는 비-텍스트 삽입, 삭제 및 갱신 동작을 설명하기 위한 도면이다.
비-텍스트란 전자 문서에 포함된 콘텐트 중 텍스트를 제외한 모든 요소들을 지칭하는 것으로서, 비-텍스트는 도형, 필드, 메모, 그림, 수식, 차트, 글상자 및 표 중 적어도 하나를 포함할 수 있다.
일 실시 예에 따르면, 서버(200)는 클라이언트 장치(100)로부터 수신된 메시지에서 비-텍스트 삽입 명령과 관련된 타입 정보가 추출되는 경우, 메시지를 검색하여 타입 정보와 대응되는 연산 정보(400)를 획득할 수 있다. 연산 정보(400)는 타입 정보에 따른 데이터가 삽입될 위치 정보 등을 포함할 수 있다. 서버(200)는 획득된 연산 정보(400)에 기초하여, 제 2 문서 내에서 데이터가 삽입될 위치를 결정할 수 있고, 결정된 위치에 데이터를 삽입할 수 있다. 예를 들어, 도 4a를 참조하면, 서버(200)는 런 함수(410)를 이용하여, 비-텍스트 데이터(430)를 제 2 문서에 삽입할 수 있다. 이 때, 서버(200)는 비-텍스트 데이터(430)와 관련된 제 1 컨트롤 속성 정보(431)를 CtrlSet으로 명명된 데이터베이스(420)에 저장할 수 있다. 일 실시 예에 따르면, 데이터베이스(420)는 저장부(260)에 포함될 수 있다.
일 실시 예에 따르면, 서버(200)는 클라이언트 장치(100)로부터 수신된 메시지에서 비-텍스트 삭제 명령과 관련된 타입 정보가 추출되는 경우, 메시지를 검색하여 타입 정보와 대응되는 연산 정보(400)를 획득할 수 있다. 연산 정보(400)는 타입 정보에 따른 데이터가 삭제될 위치 정보 등을 포함할 수 있다. 서버(200)는 획득된 연산 정보(400)에 기초하여, 제 2 문서 내에서 데이터가 삭제될 위치를 결정할 수 있고, 결정된 위치에서 데이터를 삭제할 수 있다. 예를 들어, 도 4b를 참조하면, 서버(200)는 런 함수(410)를 이용하여, 비-텍스트 데이터(430)를 제 2 문서에서 삭제할 수 있다. 이 때, 서버(200)는 비-텍스트 데이터(430)와 관련된 개체 아이디(432)를 CtrlSet으로 명명된 데이터베이스(420)에 전달하고, 개체 아이디(432)와 대응되는 제 1 컨트롤 속성 정보를 데이터베이스(420)에서 삭제할 수 있다.
일 실시 예에 따르면, 서버(200)는 클라이언트 장치(100)로부터 수신된 메시지에서 비-텍스트 갱신 명령과 관련된 타입 정보가 추출되는 경우, 메시지를 검색하여 타입 정보와 대응되는 연산 정보(400)를 획득할 수 있다. 연산 정보(400)는 타입 정보에 따라 갱신될 데이터의 위치 정보 등을 포함할 수 있다. 서버(200)는 획득된 연산 정보(400)에 기초하여, 제 2 문서 내에서 갱신될 데이터의 위치를 결정할 수 있고, 결정된 위치에 존재하는 데이터를 갱신할 수 있다. 예를 들어, 도 4c를 참조하면, 서버(200)는 런 함수(410)를 이용하여, 비-텍스트 데이터(430)를 새로운 속성으로 갱신할 수 있다. 이 때, 서버(200)는 비-텍스트 데이터(430)와 관련된 개체 아이디(432) 및 제 2 컨트롤 속성 정보(433)를 CtrlSet으로 명명된 데이터베이스(420)에 전달하고, 개체 아이디(422)와 관련하여 기 저장된 제 1 컨트롤 속성 정보(431)를 제 2 컨트롤 속성 정보(433)로 갱신할 수 있다.
도 5는 본 발명의 일 실시 예에 따라, 서버에서 메시지에 기초하여 문서를 편집하는 방법을 도시한 순서도이다. 다양한 실시 예들에 따르면, 상기 방법을 수행하는 주체는 서버(200)에 포함된 프로세서(미도시)일 수 있다.
단계(500)에서는 제 1 문서의 편집을 수행하는 클라이언트 장치(100)에 의해 상기 제 1 문서에 대한 편집 세션이 생성되면, 상기 클라이언트 장치(100)와의 편집 세션에 접속할 수 있다.
단계(510)에서는 클라이언트 장치(100)로부터 상기 제 1 문서에 대한 하나 이상의 편집 명령들이 포함된 메시지를 수신하고, 상기 클라이언트 장치(100)로부터 수신된 순서에 따라 상기 메시지를 저장할 수 있다. 이 때, 상기 메시지는 상기 제 1 문서가 브라우저에 의해 마크업 언어 기반 문서로 렌더링되도록 구성된 모델 데이터로 구성될 수 있다.
단계(520)에서는 메시지 큐 관리부(220)에 의해 저장된 상기 메시지를 상기 클라이언트 장치(100)로부터 수신된 순서에 따라 파싱(parsing)하여 상기 하나 이상의 편집 명령들 각각에 대한 타입 정보 및 데이터를 추출하고, 상기 타입 정보에 기초하여 상기 데이터를 배포할 수 있다.
단계(530)에서는 서버(200)의 저장부(260)에 저장된 문서들 중 상기 제 1 문서와 대응되는 제 2 문서를 로드(load)할 수 있다. 또한, 단계(530)에서는 상기 서버(200)의 데이터 추출부(230)에 의해 배포된 상기 데이터에 따라 상기 로드된 제 2 문서에 대한 편집을 수행할 수 있다. 또한, 단계(530)에서는 상기 수행된 편집에 따라 상기 로드된 제 2 문서를 갱신하여 제 3 문서를 생성할 수 있으며, 상기 생성된 제 3 문서를 상기 저장부(260)에 저장할 수 있다.
단계(540)에서는 상기 저장부(260)에 저장된 제 3 문서를 상기 클라이언트 장치(100)로 전달할 수 있다. 이를 통해, 클라이언트 장치(100)에서 수행된 제 1 문서에 대한 편집 명령이 서버(200)에서도 동일하게 수행되었는지 여부를 확인할 수 있다.
이상, 도 5를 참조하여 본 발명의 일 실시 예에 따른 방법에 대해 설명하였다. 여기서, 본 발명의 일 실시 예에 따른 방법은 도 1을 이용하여 설명한 클라이언트 장치(100) 또는 도 2를 이용하여 설명한 서버(200)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.
한편, 본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 서버는, 제 1 문서의 편집을 수행하는 클라이언트 장치에 의해 상기 제 1 문서에 대한 편집 세션이 생성되면, 상기 클라이언트 장치와의 편집 세션에 접속하는 세션 참가 처리부, 상기 클라이언트 장치로부터 상기 제 1 문서에 대한 하나 이상의 편집 명령들이 포함된 메시지 - 상기 메시지는 상기 제 1 문서가 브라우저에 의해 마크업 언어(Markup Language) 기반 문서로 렌더링되도록 구성된 모델 데이터로 구성됨 - 를 수신하고, 상기 클라이언트 장치로부터 수신된 순서에 따라 상기 메시지를 저장하는 메시지 큐 관리부, 상기 메시지 큐 관리부에 의해 저장된 상기 메시지를 상기 클라이언트 장치로부터 수신된 순서에 따라 파싱(parsing)하여 상기 하나 이상의 편집 명령들 각각에 대한 타입 정보 및 데이터를 추출하고, 상기 타입 정보에 기초하여 상기 데이터를 배포(deploy)하는 데이터 추출부, 상기 서버의 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 제 2 문서를 로드(load)하고, 상기 데이터 추출부에 의해 배포된 상기 데이터에 따라 상기 로드된 제 2 문서에 대한 편집을 수행하고, 상기 수행된 편집에 따라 상기 로드된 제 2 문서를 갱신하여 제 3 문서를 생성하고, 상기 생성된 제 3 문서를 상기 저장부에 저장하는 데이터 가공부 및 상기 저장부에 저장된 제 3 문서를 상기 세션 참가 처리부를 통해 상기 클라이언트 장치로 전달하는 편집 연산 확인부를 포함할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 데이터 가공부는, 상기 데이터 추출부에 의해 배치된 상기 데이터로부터 적어도 하나의 파라미터를 생성하고, 상기 생성된 적어도 하나의 파라미터를 상기 타입 정보와 대응되는 함수에 필요한 형태로 나열하는 제 1 레이어부를 더 포함할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 데이터 가공부는, 상기 타입 정보에 기초하여 상기 하나 이상의 편집 명령들 각각의 대상이 되는 오브젝트를 식별하고, 상기 식별된 오브젝트의 개체 아이디를 이용하여 상기 제 2 문서 내에서 상기 식별된 오브젝트의 위치를 검색하고, 상기 검색된 위치에 상기 편집 명령에 따른 상기 제 2 문서에 대한 편집을 수행하는 제 2 레이어부를 더 포함할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 제 2 레이어부는, 상기 편집 명령이 텍스트 삽입 명령인 것에 기초하여 상기 검색된 위치에 상기 데이터와 대응되는 텍스트를 삽입하고, 상기 편집 명령이 텍스트 삭제 명령인 것에 기초하여 상기 검색된 위치에 존재하면서 상기 데이터와 대응되는 텍스트를 삭제하고, 상기 편집 명령이 텍스트 갱신 명령인 것에 기초하여 상기 검색된 위치에 존재하는 텍스트의 속성을 상기 데이터에 따른 속성과 대응되도록 갱신하는 것을 특징으로 할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 제 2 레이어부는, 상기 편집 명령이 비-텍스트 삽입 명령인 것에 기초하여 상기 검색된 위치에 상기 데이터와 대응되는 비-텍스트를 삽입하고, 상기 편집 명령이 비-텍스트 삭제 명령인 것에 기초하여 상기 검색된 위치에 존재하면서 상기 데이터와 대응되는 비-텍스트를 삭제하고, 상기 편집 명령이 비-텍스트 갱신 명령인 것에 기초하여 상기 검색된 위치에 존재하는 비-텍스트의 속성을 상기 데이터에 따른 속성과 대응되도록 갱신하는 것을 특징으로 할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 제 2 레이어부는, 상기 비-텍스트가 상기 제 2 문서에 삽입되는 것에 응답하여 상기 저장부에 구비된 제 1 영역에 상기 비-텍스트에 대한 정보를 저장하고, 상기 비-텍스트가 상기 제 2 문서에서 삭제되는 것에 응답하여 상기 제 1 영역에서 상기 비-텍스트에 대한 정보를 삭제하고, 상기 비-텍스트의 속성이 갱신되는 것에 응답하여 상기 제 1 영역에 저장된 상기 비-텍스트에 대한 정보를 갱신하는 것을 특징으로 할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 비-텍스트는 도형, 필드, 메모, 그림, 수식, 차트, 글상자 및 표 중 적어도 하나를 포함하는 것을 특징으로 할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버에 있어서, 상기 데이터 가공부는, 상기 메시지가 상기 메시지 큐 관리부에 의해 저장되는 것에 응답하여 상기 저장부에 대한 접근 가능 여부에 대한 질의(query)를 전송하고, 상기 전송된 질의에 따라 상기 저장부에 대한 접근이 가능한 것으로 판단되면 상기 저장부에 직접 접근하여 상기 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 상기 제 2 문서에 대한 편집을 수행하는 제 3 레이어부를 더 포함할 수 있다.
한편, 본 발명의 다양한 실시 예들에 따른 서버의 동작 방법에 있어서, 상기 방법은, 제 1 문서의 편집을 수행하는 클라이언트 장치에 의해 상기 제 1 문서에 대한 편집 세션이 생성되면, 상기 클라이언트 장치와의 편집 세션에 접속하는 단계, 상기 클라이언트 장치로부터 상기 제 1 문서에 대한 하나 이상의 편집 명령들이 포함된 메시지 - 상기 메시지는 상기 제 1 문서가 브라우저에 의해 마크업 언어(Markup Language) 기반 문서로 렌더링되도록 구성된 모델 데이터로 구성됨 - 를 수신하고, 상기 클라이언트 장치로부터 수신된 순서에 따라 상기 메시지를 저장하는 단계, 상기 저장된 메시지를 상기 클라이언트 장치로부터 수신된 순서에 따라 파싱(parsing)하여 상기 하나 이상의 편집 명령들 각각에 대한 타입 정보 및 데이터를 추출하고, 상기 타입 정보에 기초하여 상기 데이터를 배포(deploy)하는 단계, 서버의 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 제 2 문서를 로드(load)하고, 상기 배포된 상기 데이터에 따라 상기 로드된 제 2 문서에 대한 편집을 수행하고, 상기 수행된 편집에 따라 상기 로드된 제 2 문서를 갱신하여 제 3 문서를 생성하고, 상기 생성된 제 3 문서를 상기 저장부에 저장하는 단계 및 상기 저장부에 저장된 제 3 문서를 상기 클라이언트 장치로 전달하는 단계를 포함할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버의 동작 방법에 있어서, 상기 저장하는 단계는, 상기 배치된 상기 데이터로부터 적어도 하나의 파라미터를 생성하고, 상기 생성된 적어도 하나의 파라미터를 상기 타입 정보와 대응되는 함수에 필요한 형태로 나열하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버의 동작 방법에 있어서, 상기 저장하는 단계는, 상기 타입 정보에 기초하여 상기 하나 이상의 편집 명령들 각각의 대상이 되는 오브젝트를 식별하는 단계, 상기 식별된 오브젝트의 개체 아이디를 이용하여 상기 제 2 문서 내에서 상기 식별된 오브젝트의 위치를 검색하는 단계 및 상기 검색된 위치에 상기 편집 명령에 따른 상기 제 2 문서에 대한 편집을 수행하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버의 동작 방법에 있어서, 상기 저장하는 단계는, 상기 편집 명령이 텍스트 삽입 명령인 것에 기초하여 상기 검색된 위치에 상기 데이터와 대응되는 텍스트를 삽입하는 단계, 상기 편집 명령이 텍스트 삭제 명령인 것에 기초하여 상기 검색된 위치에 존재하면서 상기 데이터와 대응되는 텍스트를 삭제하는 단계 및 상기 편집 명령이 텍스트 갱신 명령인 것에 기초하여 상기 검색된 위치에 존재하는 텍스트의 속성을 상기 데이터에 따른 속성과 대응되도록 갱신하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버의 동작 방법에 있어서, 상기 저장하는 단계는, 상기 편집 명령이 비-텍스트 삽입 명령인 것에 기초하여 상기 검색된 위치에 상기 데이터와 대응되는 비-텍스트를 삽입하는 단계, 상기 편집 명령이 비-텍스트 삭제 명령인 것에 기초하여 상기 검색된 위치에 존재하면서 상기 데이터와 대응되는 비-텍스트를 삭제하는 단계 및 상기 편집 명령이 비-텍스트 갱신 명령인 것에 기초하여 상기 검색된 위치에 존재하는 비-텍스트의 속성을 상기 데이터에 따른 속성과 대응되도록 갱신하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버의 동작 방법에 있어서, 상기 저장하는 단계는, 상기 비-텍스트가 상기 제 2 문서에 삽입되는 것에 응답하여 상기 저장부에 구비된 제 1 영역에 상기 비-텍스트에 대한 정보를 저장하는 단계, 상기 비-텍스트가 상기 제 2 문서에서 삭제되는 것에 응답하여 상기 제 1 영역에서 상기 비-텍스트에 대한 정보를 삭제하는 단계 및 상기 비-텍스트의 속성이 갱신되는 것에 응답하여 상기 제 1 영역에 저장된 상기 비-텍스트에 대한 정보를 갱신하는 단계를 더 포함할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버의 동작 방법에 있어서, 상기 비-텍스트는 도형, 필드, 메모, 그림, 수식, 차트, 글상자 및 표 중 적어도 하나를 포함하는 것을 특징으로 할 수 있다.
또한, 본 발명의 다양한 실시 예들에 따른 서버의 동작 방법에 있어서, 상기 저장하는 단계는, 상기 메시지가 저장되는 것에 응답하여 상기 저장부에 대한 접근 가능 여부에 대한 질의(query)를 전송하는 단계, 상기 전송된 질의에 따라 상기 저장부에 대한 접근이 가능한 것으로 판단되면 상기 저장부에 직접 접근하여 상기 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 상기 제 2 문서에 대한 편집을 수행하는 단계를 더 포함할 수 있다.
본 발명의 일 실시 예에 따른 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.
또한, 본 발명의 일 실시 예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시 예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시 예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (18)

  1. 서버에 있어서,
    제 1 문서의 편집을 수행하는 클라이언트 장치에 의해 상기 제 1 문서에 대한 편집 세션이 생성되면, 상기 클라이언트 장치와의 편집 세션에 접속하는 세션 참가 처리부;
    상기 클라이언트 장치로부터 상기 제 1 문서에 대한 하나 이상의 편집 명령들이 포함된 메시지 - 상기 메시지는 상기 제 1 문서가 브라우저에 의해 마크업 언어(Markup Language) 기반 문서로 렌더링되도록 구성된 모델 데이터로 구성됨 - 를 수신하고, 상기 클라이언트 장치로부터 수신된 순서에 따라 상기 메시지를 저장하는 메시지 큐 관리부;
    상기 메시지 큐 관리부에 의해 저장된 상기 메시지를 상기 클라이언트 장치로부터 수신된 순서에 따라 파싱(parsing)하여 상기 하나 이상의 편집 명령들 각각에 대한 타입 정보 및 데이터를 추출하고, 상기 타입 정보에 기초하여 상기 데이터를 배포(deploy)하는 데이터 추출부;
    상기 서버의 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 제 2 문서를 로드(load)하고, 상기 데이터 추출부에 의해 배포된 상기 데이터에 따라 상기 로드된 제 2 문서에 대한 편집을 수행하고, 상기 수행된 편집에 따라 상기 로드된 제 2 문서를 갱신하여 제 3 문서를 생성하고, 상기 생성된 제 3 문서를 상기 저장부에 저장하는 데이터 가공부; 및
    상기 저장부에 저장된 제 3 문서를 상기 세션 참가 처리부를 통해 상기 클라이언트 장치로 전달하는 편집 연산 확인부를 포함하는, 메시지에 기초하여 문서를 편집하는 서버.
  2. 제 1 항에 있어서,
    상기 데이터 가공부는,
    상기 데이터 추출부에 의해 배치된 상기 데이터로부터 적어도 하나의 파라미터를 생성하고, 상기 생성된 적어도 하나의 파라미터를 상기 타입 정보와 대응되는 함수에 필요한 형태로 나열하는 제 1 레이어부를 더 포함하는, 메시지에 기초하여 문서를 편집하는 서버.
  3. 제 1 항에 있어서,
    상기 데이터 가공부는,
    상기 타입 정보에 기초하여 상기 하나 이상의 편집 명령들 각각의 대상이 되는 오브젝트를 식별하고, 상기 식별된 오브젝트의 개체 아이디를 이용하여 상기 제 2 문서 내에서 상기 식별된 오브젝트의 위치를 검색하고, 상기 검색된 위치에 상기 편집 명령에 따른 상기 제 2 문서에 대한 편집을 수행하는 제 2 레이어부를 더 포함하는, 메시지에 기초하여 문서를 편집하는 서버.
  4. 제 3 항에 있어서,
    상기 제 2 레이어부는, 상기 편집 명령이 텍스트 삽입 명령인 것에 기초하여 상기 검색된 위치에 상기 데이터와 대응되는 텍스트를 삽입하고, 상기 편집 명령이 텍스트 삭제 명령인 것에 기초하여 상기 검색된 위치에 존재하면서 상기 데이터와 대응되는 텍스트를 삭제하고, 상기 편집 명령이 텍스트 갱신 명령인 것에 기초하여 상기 검색된 위치에 존재하는 텍스트의 속성을 상기 데이터에 따른 속성과 대응되도록 갱신하는 것을 특징으로 하는, 메시지에 기초하여 문서를 편집하는 서버.
  5. 제 3 항에 있어서,
    상기 제 2 레이어부는, 상기 편집 명령이 비-텍스트 삽입 명령인 것에 기초하여 상기 검색된 위치에 상기 데이터와 대응되는 비-텍스트를 삽입하고, 상기 편집 명령이 비-텍스트 삭제 명령인 것에 기초하여 상기 검색된 위치에 존재하면서 상기 데이터와 대응되는 비-텍스트를 삭제하고, 상기 편집 명령이 비-텍스트 갱신 명령인 것에 기초하여 상기 검색된 위치에 존재하는 비-텍스트의 속성을 상기 데이터에 따른 속성과 대응되도록 갱신하는 것을 특징으로 하는, 메시지에 기초하여 문서를 편집하는 서버.
  6. 제 5 항에 있어서,
    상기 제 2 레이어부는, 상기 비-텍스트가 상기 제 2 문서에 삽입되는 것에 응답하여 상기 저장부에 구비된 제 1 영역에 상기 비-텍스트에 대한 정보를 저장하고, 상기 비-텍스트가 상기 제 2 문서에서 삭제되는 것에 응답하여 상기 제 1 영역에서 상기 비-텍스트에 대한 정보를 삭제하고, 상기 비-텍스트의 속성이 갱신되는 것에 응답하여 상기 제 1 영역에 저장된 상기 비-텍스트에 대한 정보를 갱신하는 것을 특징으로 하는, 메시지에 기초하여 문서를 편집하는 서버.
  7. 제 5 항에 있어서,
    상기 비-텍스트는 도형, 필드, 메모, 그림, 수식, 차트, 글상자 및 표 중 적어도 하나를 포함하는 것을 특징으로 하는, 메시지에 기초하여 문서를 편집하는 서버.
  8. 제 1 항에 있어서,
    상기 데이터 가공부는,
    상기 메시지가 상기 메시지 큐 관리부에 의해 저장되는 것에 응답하여 상기 저장부에 대한 접근 가능 여부에 대한 질의(query)를 전송하고, 상기 전송된 질의에 따라 상기 저장부에 대한 접근이 가능한 것으로 판단되면 상기 저장부에 직접 접근하여 상기 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 상기 제 2 문서에 대한 편집을 수행하는 제 3 레이어부를 더 포함하는, 메시지에 기초하여 문서를 편집하는 서버.
  9. 제 1 문서의 편집을 수행하는 클라이언트 장치에 의해 상기 제 1 문서에 대한 편집 세션이 생성되면, 상기 클라이언트 장치와의 편집 세션에 접속하는 단계;
    상기 클라이언트 장치로부터 상기 제 1 문서에 대한 하나 이상의 편집 명령들이 포함된 메시지 - 상기 메시지는 상기 제 1 문서가 브라우저에 의해 마크업 언어(Markup Language) 기반 문서로 렌더링되도록 구성된 모델 데이터로 구성됨 - 를 수신하고, 상기 클라이언트 장치로부터 수신된 순서에 따라 상기 메시지를 저장하는 단계;
    상기 저장된 메시지를 상기 클라이언트 장치로부터 수신된 순서에 따라 파싱(parsing)하여 상기 하나 이상의 편집 명령들 각각에 대한 타입 정보 및 데이터를 추출하고, 상기 타입 정보에 기초하여 상기 데이터를 배포(deploy)하는 단계;
    서버의 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 제 2 문서를 로드(load)하고, 상기 배포된 상기 데이터에 따라 상기 로드된 제 2 문서에 대한 편집을 수행하고, 상기 수행된 편집에 따라 상기 로드된 제 2 문서를 갱신하여 제 3 문서를 생성하고, 상기 생성된 제 3 문서를 상기 저장부에 저장하는 단계; 및
    상기 저장부에 저장된 제 3 문서를 상기 클라이언트 장치로 전달하는 단계를 포함하는, 메시지에 기초하여 문서를 편집하는 서버의 동작 방법.
  10. 제 9 항에 있어서, 상기 저장하는 단계는,
    상기 배포된 상기 데이터로부터 적어도 하나의 파라미터를 생성하고, 상기 생성된 적어도 하나의 파라미터를 상기 타입 정보와 대응되는 함수에 필요한 형태로 나열하는 단계를 더 포함하는, 메시지에 기초하여 문서를 편집하는 서버의 동작 방법.
  11. 제 9 항에 있어서, 상기 저장하는 단계는,
    상기 타입 정보에 기초하여 상기 하나 이상의 편집 명령들 각각의 대상이 되는 오브젝트를 식별하는 단계;
    상기 식별된 오브젝트의 개체 아이디를 이용하여 상기 제 2 문서 내에서 상기 식별된 오브젝트의 위치를 검색하는 단계; 및
    상기 검색된 위치에 상기 편집 명령에 따른 상기 제 2 문서에 대한 편집을 수행하는 단계를 더 포함하는, 메시지에 기초하여 문서를 편집하는 서버의 동작 방법.
  12. 제 11 항에 있어서, 상기 저장하는 단계는,
    상기 편집 명령이 텍스트 삽입 명령인 것에 기초하여 상기 검색된 위치에 상기 데이터와 대응되는 텍스트를 삽입하는 단계;
    상기 편집 명령이 텍스트 삭제 명령인 것에 기초하여 상기 검색된 위치에 존재하면서 상기 데이터와 대응되는 텍스트를 삭제하는 단계; 및
    상기 편집 명령이 텍스트 갱신 명령인 것에 기초하여 상기 검색된 위치에 존재하는 텍스트의 속성을 상기 데이터에 따른 속성과 대응되도록 갱신하는 단계를 더 포함하는, 메시지에 기초하여 문서를 편집하는 서버의 동작 방법.
  13. 제 11 항에 있어서, 상기 저장하는 단계는,
    상기 편집 명령이 비-텍스트 삽입 명령인 것에 기초하여 상기 검색된 위치에 상기 데이터와 대응되는 비-텍스트를 삽입하는 단계;
    상기 편집 명령이 비-텍스트 삭제 명령인 것에 기초하여 상기 검색된 위치에 존재하면서 상기 데이터와 대응되는 비-텍스트를 삭제하는 단계; 및
    상기 편집 명령이 비-텍스트 갱신 명령인 것에 기초하여 상기 검색된 위치에 존재하는 비-텍스트의 속성을 상기 데이터에 따른 속성과 대응되도록 갱신하는 단계를 더 포함하는, 메시지에 기초하여 문서를 편집하는 서버의 동작 방법.
  14. 제 13 항에 있어서, 상기 저장하는 단계는,
    상기 비-텍스트가 상기 제 2 문서에 삽입되는 것에 응답하여 상기 저장부에 구비된 제 1 영역에 상기 비-텍스트에 대한 정보를 저장하는 단계;
    상기 비-텍스트가 상기 제 2 문서에서 삭제되는 것에 응답하여 상기 제 1 영역에서 상기 비-텍스트에 대한 정보를 삭제하는 단계; 및
    상기 비-텍스트의 속성이 갱신되는 것에 응답하여 상기 제 1 영역에 저장된 상기 비-텍스트에 대한 정보를 갱신하는 단계를 더 포함하는, 메시지에 기초하여 문서를 편집하는 서버의 동작 방법.
  15. 제 13 항에 있어서,
    상기 비-텍스트는 도형, 필드, 메모, 그림, 수식, 차트, 글상자 및 표 중 적어도 하나를 포함하는 것을 특징으로 하는, 메시지에 기초하여 문서를 편집하는 서버의 동작 방법.
  16. 제 9 항에 있어서, 상기 저장하는 단계는,
    상기 메시지가 저장되는 것에 응답하여 상기 저장부에 대한 접근 가능 여부에 대한 질의(query)를 전송하는 단계;
    상기 전송된 질의에 따라 상기 저장부에 대한 접근이 가능한 것으로 판단되면 상기 저장부에 직접 접근하여 상기 저장부에 저장된 문서들 중 상기 제 1 문서와 대응되는 상기 제 2 문서에 대한 편집을 수행하는 단계를 더 포함하는, 메시지에 기초하여 문서를 편집하는 서버의 동작 방법.
  17. 제 9 항 내지 제 16 항 중 어느 한 항의 방법을 컴퓨터로 하여금 수행하도록 하는 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.
  18. 제 9 항 내지 제 16 항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.
KR1020180073720A 2018-06-27 2018-06-27 편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법 KR102087280B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180073720A KR102087280B1 (ko) 2018-06-27 2018-06-27 편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180073720A KR102087280B1 (ko) 2018-06-27 2018-06-27 편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법

Publications (2)

Publication Number Publication Date
KR20200001139A true KR20200001139A (ko) 2020-01-06
KR102087280B1 KR102087280B1 (ko) 2020-03-10

Family

ID=69159076

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180073720A KR102087280B1 (ko) 2018-06-27 2018-06-27 편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법

Country Status (1)

Country Link
KR (1) KR102087280B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102274333B1 (ko) * 2020-01-31 2021-07-08 한국산업기술시험원 분석 장비에서 출력된 결과데이터의 통합 관리 장치 및 방법
CN115061988A (zh) * 2022-05-27 2022-09-16 上海鸿翼软件技术股份有限公司 一种计算机处理文档编辑冲突优化方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220097619A (ko) 2020-12-30 2022-07-08 동국대학교 산학협력단 문서 기반 채팅 서비스 제공 시스템 및 그에 적용되는 문서 편집 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060034786A (ko) * 2004-10-19 2006-04-26 이유정 복수의 이용자가 문서를 공동으로 편집하는 방법 및 그시스템
KR20110000655A (ko) * 2008-03-14 2011-01-04 마이크로소프트 코포레이션 웹-기반 다중사용자 협업
KR20130126901A (ko) * 2010-10-26 2013-11-21 마이크로소프트 코포레이션 온라인 문서 편집의 동기화
KR101727235B1 (ko) * 2017-02-14 2017-05-02 (주) 사이냅소프트 공동 편집을 지원하는 문서 편집 시스템 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060034786A (ko) * 2004-10-19 2006-04-26 이유정 복수의 이용자가 문서를 공동으로 편집하는 방법 및 그시스템
KR20110000655A (ko) * 2008-03-14 2011-01-04 마이크로소프트 코포레이션 웹-기반 다중사용자 협업
KR20130126901A (ko) * 2010-10-26 2013-11-21 마이크로소프트 코포레이션 온라인 문서 편집의 동기화
KR101727235B1 (ko) * 2017-02-14 2017-05-02 (주) 사이냅소프트 공동 편집을 지원하는 문서 편집 시스템 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102274333B1 (ko) * 2020-01-31 2021-07-08 한국산업기술시험원 분석 장비에서 출력된 결과데이터의 통합 관리 장치 및 방법
CN115061988A (zh) * 2022-05-27 2022-09-16 上海鸿翼软件技术股份有限公司 一种计算机处理文档编辑冲突优化方法

Also Published As

Publication number Publication date
KR102087280B1 (ko) 2020-03-10

Similar Documents

Publication Publication Date Title
US10686788B2 (en) Developer based document collaboration
US9060007B2 (en) System and methods for facilitating the synchronization of data
JP6040293B2 (ja) ウェブページコンテンツの注釈
US20050268227A1 (en) Method and system for mapping content between a starting template and a target template
KR102087280B1 (ko) 편집 명령을 포함하는 메시지에 기초하여 전자 문서를 편집하는 서버 및 그 동작 방법
US20080288861A1 (en) Generating a word-processing document from database content
US11093705B2 (en) Apparatus and method of verifying simultaneous edit match for markup language-based document
US9652456B2 (en) Automated relationship management for darwin information typing architecture
KR102087274B1 (ko) 개체를 렌더링하는 웹 전자 문서 편집 장치 및 이의 동작 방법
KR102013620B1 (ko) 웹 기반 문서의 템플릿을 변경하는 웹 기반 문서 편집 서버 및 이의 동작 방법
KR101815924B1 (ko) 복수의 유저들이 온라인으로 전자 문서의 작성이 가능하도록 협업 환경을 제공하는 온라인 문서 작성 서비스 장치 및 그 동작 방법
US7100126B2 (en) Electrical form design and management method, and recording medium
KR101781844B1 (ko) 마크업 언어 기반 문서의 조합 글자 동기화 장치 및 그의 동작 방법
US9946698B2 (en) Inserting text and graphics using hand markup
KR102053075B1 (ko) 전자 문서 편집 장치 및 이의 동작 방법
KR101965722B1 (ko) 단독 편집 및 동시 편집인지에 따라 웹 문서에 대한 편집 신뢰성을 보장하는 장치 및 이의 동작 방법
US10261980B2 (en) Method and system for persisting add-in data in documents
KR101857997B1 (ko) 전자 문서에 대한 검색 기능을 제공하는 온라인 문서 작성 서비스 장치 및 그 동작 방법
KR102010556B1 (ko) 비동기 방식의 액션을 이용하는 웹 전자 문서 편집 장치 및 이의 동작 방법
KR20200001340A (ko) 드로잉 개체를 렌더링하는 웹 전자 문서 편집 장치 및 이의 동작 방법
US20110145841A1 (en) System and method for generating pages of content
KR102000542B1 (ko) 페이지 변경 편집 명령에 기초하여 돔 객체들을 편집하는 웹 문서 편집 장치 및 이의 동작 방법
KR102000543B1 (ko) 웹 전자 문서 편집 장치 및 이의 동작 방법
KR101965718B1 (ko) 웹 문서에 대한 편집 신뢰성을 보장하는 장치 및 이의 동작 방법
CN117786262A (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