KR20130064570A - 네트워크 상황에서의 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템 - Google Patents

네트워크 상황에서의 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템 Download PDF

Info

Publication number
KR20130064570A
KR20130064570A KR1020110131248A KR20110131248A KR20130064570A KR 20130064570 A KR20130064570 A KR 20130064570A KR 1020110131248 A KR1020110131248 A KR 1020110131248A KR 20110131248 A KR20110131248 A KR 20110131248A KR 20130064570 A KR20130064570 A KR 20130064570A
Authority
KR
South Korea
Prior art keywords
document
web server
collision
unit
client terminal
Prior art date
Application number
KR1020110131248A
Other languages
English (en)
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 KR1020110131248A priority Critical patent/KR20130064570A/ko
Publication of KR20130064570A publication Critical patent/KR20130064570A/ko

Links

Images

Classifications

    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Abstract

네트워크 상황에서의 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템 이 개시된다. 본 발명의 일 실시예에 따른 실시간 협업 편집 시스템은 웹 서버로부터 적어도 하나의 편집 데이터를 수집하고, 수집된 편집 데이터를 충돌 처리부에 전달하며, 충돌 처리부를 통해 충돌이 조정된 최종 버전의 문서를 웹 서버를 통해 적어도 하나의 클라이언트 단말에 전송하는 협업부; 와 충돌이 발생한 문서를 수신하여 충돌을 조정하는 충돌 처리부; 와 클라이언트 단말의 주소를 관리하는 사용자 프로파일 저장부; 와 충돌이 조정된 최종 버전의 문서를 저장하는 콘텐츠 저장부; 와 적어도 하나의 클라이언트 단말과의 양방향 비동기 통신을 지원하고, 각 구성요소를 제어하는 웹 서버; 를 포함하는 협업 웹 사이트; 및 편집 GUI를 제공하는 웹 브라우저; 와 협업 문서의 복사본을 저장하는 로컬 스토리지; 와 편집이 발생할 때 적어도 하나 이상의 편집 데이터를 웹 서버에 전송하고, 충돌이 조정된 최신 협업 문서를 전송 받는 리포터; 를 포함하는 클라이언트 단말; 을 포함한다.

Description

네트워크 상황에서의 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템 {Web-based collaborative real-time editing method and system through adaptive synchronization in faulty networks}
본 발명의 일 양상은 웹 응용 소프트웨어 기술에 관한 것으로, 보다 상세하게는 협업 참여자들이 지리적 위치와 네트워크 상태에 따라 적응적으로 문서를 실시간 공동 편집할 수 있도록 지원하는 기술에 관한 것이다.
광대역 회선이 보편화되고 단말의 종류와 하드웨어 성능이 다양해짐에 따라 지리적 위치에 상관없이 협업 참여자들의 빠른 상호작용이 가능해졌다. 월드와이드웹의 발전으로 인터넷을 통한 웹 브라우저 기반 애플리케이션이 크게 성장하였다. 이러한 웹 브라우저 기반의 애플리케이션은 별도의 설치가 필요 없는 구동방식을 통해 사용자에게 편리성과 작업 효율성을 제공한다. 또한 서버에 보관된 데이터를 필요에 따라 다운로드하여 사용한다.
조직 내 구성원 간에 원활한 협업을 지원하는 기술들이 발전하고 있다. 네트워크 및 하드웨어 성능의 향상으로 말미암아, 참여자의 잦은 이동에도 실시간 협업이 가능하지만 때론 다른 구성원과 연결이 끊어지기도 한다. 그러므로, 불안정한 네트워크에서도 편집 내용의 손실 없이 매끄러운 실시간 협업이 필요하다. 이를 위한 주요한 배경 기술은 첫째, Operational Transformation(OT) 둘째, 웹 기반의 비동기 통신 및 오프라인 모드 지원이다. 자세한 설명은 다음과 같다.
첫째로, 실시간 협업의 주요 과제는 원격 사용자들로부터의 편집 내용을 조합하는 것이다. 사용자의 수 또는 동시 편집 여부에 따라 충돌이 발생하는데, 이와 상관없이 매끄러운 협업이 보장되어야 한다. 오프라인 지원도 협업 참여자에게 유익하다. 이동 중이거나 네트워크 연결이 불안정한 상황에서 다수의 사용자에 의한 동시 편집은 즉시 동기화될 수 없기 때문에 각 로컬마다 버전이 다른 문서를 가질 수 있다. 이 경우 연결이 재개될 때 로컬의 문서를 자동으로 동기화하고 충돌을 해결해야 한다. 각 사용자의 로컬 편집 내용과 원본 문서의 내용의 충돌을 해결하는 방법으로는 OT가 대표적이다.
OT를 사용하는 협업 시스템은 전형적으로 인터넷과 같이 높은 전송지연 환경에서 응답성을 보장하기 위해 공유 문서의 복사본을 로컬 저장소에 다운로드한다. 그 복사본에 대한 편집이 로컬 사이트에 반영되는 즉시 원격 사이트에 전파된다. 원격의 편집 동작 목록이 로컬 사이트에 도착하면 일관성(consistency)을 보장하도록 처리된 후 적용된다. 이 과정은 모든 협업 사이트에 걸쳐 일관된 기준으로 적용된다. OT는 잠금이 없고, 넌블락킹(Non-blocking) 속성을 기반으로 네트워크 지연에 민감하지 않은 사용자 경험을 보장한다. 그렇기 때문에, 웹 환경에서 공동 편집과 같은 협업 기능을 구현하는데 적합하다.
둘째로, 웹 기반의 실시간 협업에는 양방향 비동기 통신이 필요하다. 그러나 일반적인 웹 기반 네트워킹은 클라이언트와 서버 사이의 양방향 통신을 지원하지 않고 항상 클라이언트가 통신을 개시한다. 또한 클라이언트와 서버 사이의 연결은 단기적(transient)이다. 이러한 배경에서 웹 표준 기술들을 조합한 개념으로 Ajax가 서버 클라이언트 통신에 널리 쓰였고, 전체 페이지 새로고침보다 전송하는 데이터 크기를 최소화하였다. 그럼에도 긴 시간 동안 동작하는 실시간 애플리케이션에 적합하지 않다.
한편, 선행기술 미국 공개특허 20080147834에는 HTTP를 사용한 고확장성의 실시간 협업 응용을 위한 시스템 및 그 방법에 대해, 미국 등록특허 7958453에는 웹서버의 스레드를 중지/재개하는 방법과 편집에 대해 잠금 기법을 제공함으로써 협업 참여자들의 실시간 협업을 지원하는 기술에 대해 각각 개시하고 있다.
일 양상에 따라, 조직 내의 효율적인 협업을 위해 지리적 위치에 관계없이 다자가 참여하고, 웹 기반의 비동기 통신을 통해 실시간으로 정보 공유를 하며, 갑작스런 네트워크 단절에도 작업내용을 보존하는 협업 편집 환경을 구현하기 위한 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템을 제안한다.
일 양상에 따른 실시간 협업 편집 시스템은, 이하 설명하는 서버 사이트 구성부들과 클라이언트 단말을 포함한다. 웹 서버로부터 적어도 하나의 편집 데이터를 수집하고, 수집된 편집 데이터를 충돌 처리부에 전달하며, 충돌 처리부를 통해 충돌이 조정된 최종 버전의 문서를 웹 서버를 통해 적어도 하나의 클라이언트 단말에 전송하는 협업부와, 충돌이 발생한 문서를 수신하여 충돌을 조정하는 충돌 처리부와, 클라이언트 단말의 주소를 관리하는 사용자 프로파일 저장부와, 충돌이 처리된 최종 버전의 문서를 저장하는 콘텐츠 저장부 및 적어도 하나의 클라이언트 단말과의 양방향 비동기 통신을 지원하고, 각 구성요소를 제어하는 웹 서버를 포함한다.
클라이언트 단말은 편집 GUI를 제공하는 웹 브라우저와, 협업 문서의 복사본을 저장하는 로컬 스토리지와, 편집이 발생할 때 적어도 하나 이상의 편집 데이터를 웹 서버에 전송하고, 충돌이 조정된 최신 협업 문서를 전송받는 리포터를 포함한다.
일 실시예에 따르면, 협업 참여자의 지리적 위치와 네트워크 상태에 구애받지 않고 실시간 협업을 지원하여, 조직 내부나 타 조직과의 커뮤니케이션에 유용하다.
나아가, 네트워크 상태에 따라 클라이언트에 임시 저장함으로써 네트워크 상황에 적응할 수 있다. 네트워크 불안정이 잦은 모바일 환경에 대해 편집 데이터 목록을 임시 저장함으로써 서버와 재연결 시 데이터 손실 없이 협업 편집을 진행할 수 있다.
더 나아가, 웹 기반의 비동기 소켓 통신을 통한 클라이언트-서버 양방향 통신이 가능하다. 또한, 충돌해결을 보조하는 편집 데이터 구조 정의를 통해 편집 데이터 구조에 기반하여 세분화된(fine-grained) 편집 정보를 전송하므로 효율적인 통신이 가능하고, 서버와 클라이언트 모두 통신을 개시할 수 있으므로 응답 시간을 단축시킬 수 있다.
도 1은 본 발명의 일 실시예에 따라 네트워크 상황에서의 실시간 협업 편집 환경을 도시한 구성도,
도 2는 본 발명의 일 실시에에 따른 클라이언트 단말을 도시한 구성도,
도 3은 본 발명의 일 실시예에 따라 편집부분 데이터 구조를 도시한 구조도,
도 4는 본 발명의 일 실시예에 따른 협업부의 세부 구성도,
도 5는 본 발명의 일 실시예에 따른 충돌 처리부의 세부 구성도,
도 6은 네트워크 연결이 불안정한 경우 클라이언트 단말의 실시간 편집 프로세스를 도시한 흐름도,
도 7은 협업 웹 사이트의 충돌 해결 프로세스를 도시한 흐름도,
도 8 및 도 9는 본 발명의 일 실시예에 따라 각 구성 요소 간 실시간 협업 프로세스를 도시한 흐름도,
도 10a 및 도 10b는 본 발명에 따라 여러 사용자가 동일한 문서를 동시 편집 시에 야기되는 충돌을 해결하는 일 실시예를 도시한 참조도이다.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따라 네트워크 상황에서의 실시간 협업 편집 환경(1)을 도시한 구성도이다.
도 1을 참조하면, 실시간 협업 편집 환경(1)은 네트워크(12)를 통해 연결되는 클라이언트 단말(10)과 협업 웹 사이트(14)를 포함하며, 협업 웹 사이트(14)는 웹 서버(140), 협업부(142), 충돌 처리부(144), 사용자 프로파일 저장부(146) 및 콘텐츠 저장부(148)를 포함한다.
클라이언트 단말(10)은 웹 서버(140)에게 요청하고, 웹 서버(140)가 요청에 대한 응답을 전송한다. 그러나 최근 IETF가 양방향 HTTP 채널을 제공함으로 인해, 본 발명은 웹 서버(140)와 클라이언트 단말(10) 둘 다 요청을 먼저 시도할 수 있는 것으로 가정한다.
즉, HTML5 표준에 의해 WebSocket을 통한 양방향 통신이 가능하다. WebSocket은 TCP 소켓 기반의 양방향 통신 채널을 제공하며 HTML5 표준에 포함된다. HTML5 표준을 지원하는 브라우저에 내장되어 있고, 자바 스크립트로 접근할 수 있는 API가 제공되어 소켓을 통해 서버와 데이터를 송수신할 수 있다. 일반적인 웹 기반 네트워킹 기법에 비해 사용이 편리하고 우수한 성능을 제공한다.  그러나 브라우저별로 HTML5 표준을 지원하는 정도가 달라서 역호환성을 보장하는 방식으로 비동기 통신을 해야 한다. 그 외의 웹 기반 네트워킹 방법에는 Long polling, XHR(XmlHttpRequest) 멀티 파트 스트리밍, 플러그 인과 같은 기법들이 있다.
웹 서버(140)는 협업부(142), 충돌 처리부(144), 사용자 프로파일 저장부(146) 및 콘텐츠 저장부(148)의 보조로 협업을 지원한다. 협업부(142)는 웹 서버(140)로부터 데이터를 수집하고 수집된 데이터를 충돌 처리부(144)에 전달하며, 충돌 처리부(144)를 통해 충돌이 조정된 최종 버전의 문서를 클라이언트 단말(10)에 전송한다. 충돌 처리부(144)는 충돌이 있는 문서를 수신하여 충돌을 조정한다. 사용자 프로파일 저장부(146)는 협업에 참여 중인 클라이언트의 주소를 관리하고, 클라이언트가 모바일 장치(10c)인 경우, 주소가 변경되더라도 클라이언트를 추적함으로써 메시지 손실을 예방한다. 콘텐츠 저장부(148)는 최종 버전의 문서를 저장한다.
도 2는 본 발명의 일 실시에에 따른 클라이언트 단말(10)을 도시한 구성도이다.
도 2를 참조하면, 클라이언트 단말(10)은 편집 GUI를 제공하는 웹 브라우저(100), 로컬 스토리지(102) 및 리포터(104)를 포함한다.클라이언트 단말(10)은 무선통신을 지원하는 스마트폰, 스마트 패드, 넷북 등을 포함하는 다기능 휴대용 통신장치일 수 있고, 유선통신을 지원하는 노트북, 데스크톱 PC, 스마트 TV 등일 수 있으나 이에 한정되는 것은 아니다.
클라이언트 단말(10)에는 웹 브라우저(100)가 기본적으로 설치된 것으로 가정하고, 웹 브라우저(100)는 실시간 협업 편집의 인터페이스로 사용된다. 로컬 스토리지(102)는 편집 데이터의 임시 저장소로서, 네트워크(12)가 연결되지 않거나 불안정한 경우 다음 연결시까지 데이터를 임시 보관한다. 리포터(104)는 웹 서버(140)와 동기화되지 않은 데이터가 로컬 스토리지(102)에 저장된 경우 이를 웹 서버(140)로 전송하여 동기화한다.
클라이언트 단말(10)은 네트워크 불안정이 잦은 모바일 환경에서 로컬 스토리지(102)를 통해 편집 데이터를 임시 저장하고, 웹 서버(140)와 재연결시 임시 저장된 편집 데이터를 웹 서버(140)로 전송하여 동기화하고, 웹 서버(140)로부터 최신 문서를 전송받음에 따라, 데이터 손실 없이 협업 편집을 진행할 수 있다.
도 3은 본 발명의 일 실시예에 따라 편집부분 데이터 구조(30)를 도시한 구조도이다.
도 1 및 도 3을 참조하면, 편집부분 데이터 구조(30)는 클라이언트 단말(10)에서 웹 서버(140)로 전달되는데, 편집에 대한 구체적인 정보를 포함한다. 편집부분 데이터 구조(30)는 타임스탬프(300), 원본문서 ID(302), 클라이언트가 편집한 문서의 길이(304) 및 편집부분 리스트(editing part list)(306)로 세분화된다. 타임스탬프(300)는 기기들 간에 동기화된 시스템 타임(system time)이다. 편집부분 리스트(306)는 오퍼레이션(Operation: Op), 위치(location: loc) 및 데이터(Data)를 포함한다. 오퍼레이션(Op)은 문서의 삽입과 삭제를 지원하고, 위치(loc)는 문서에서 편집이 발생한 위치를 나타내며, 데이터(Data)는 오퍼레이션(Op)을 적용할 문자열을 나타낸다. 지원하는 오퍼레이션(0p)에 따라 편집부분의 구조는 변경될 수 있다.
도 4는 본 발명의 일 실시예에 따른 협업부(142)의 세부 구성도이다.
도 1 및 도 4를 참조하면, 협업부(142)는 수집부(1422)와 전송부(1424)를 포함한다.
수집부(1422)는 웹 서버(140)로부터 데이터를 수집한다. 전송부(1424)는 수집부(1422)를 통해 수집된 데이터를 충돌 처리부(144)에 전달하고, 충돌 처리부(144)를 통해 충돌이 조정된 최종 버전의 문서를 클라이언트 단말(10)에 전송한다. 모바일 장치(10c)를 포함한 클라이언트(10)의 주소는 사용자 프로파일 저장부(146)에서 불러들인다.
도 5는 본 발명의 일 실시예에 따른 충돌 처리부(144)의 세부 구성도이다.
도 1 및 도 5를 참조하면, 충돌 처리부(144)는 파싱부(1442), 해결부(1444) 및 갱신부(1446)를 포함한다.
충돌 처리부(144)는 협업부(142)로부터 충돌이 있는 문서를 수신하여 충돌을 처리한다. 실시간 편집을 지원하는 환경에서는 참여하는 사용자의 수가 많아질수록 충돌이 빈번히 발생한다. 충돌의 원인은 문서에서 동일한 부분을 여러 사용자가 편집하는 경우, 상대방의 편집 동작이 다른 상대방의 문서에 반영되기까지 전송 지연이 발생하는 경우 또는 네트워크 연결이 끊어지고 재연결 후 동기화되는 경우 등 다양하다.
파싱부(1442)는 각 편집 내용에서 충돌이 발생하는 부분을 분석한다. 해결부(1444)는 타임스탬프를 기준으로 편집 내용을 정렬하여 순서대로 적용함으로써 편집 내용의 누락 없이 충돌을 해결하고 최종 버전의 문서를 도출한다. 갱신부(1446)는 콘텐츠 저장부(148)에 최종 버전의 문서를 저장한다.
도 6은 네트워크 연결이 불안정한 경우 클라이언트 단말(10)의 실시간 편집 프로세스를 도시한 흐름도이다.
도 1, 도 2 및 도 6을 참조하면, 사용자는 먼저 클라이언트 단말(10)에 내장된 웹 브라우저를 통해 협업 환경에 접속한다(600). 이때, 네트워크 연결이 불안정하여 웹 서버(140)에 접속이 잘 되지 않으면, 클라이언트 단말(10)은 사용자에게 이를 통보한다(612). 그러면, 사용자는 오프라인으로 문서 편집을 진행(614)하며, 편집 내용은 클라이언트 단말(10)의 로컬 스토리지(102)에 임시 저장된다(616).
이 후에, 웹 서버(140)에 접속 성공하면 클라이언트 단말(10)은 로컬 스토리지(102)에 임시 저장한 문서가 존재하는지 여부를 검색한다(604). 검색 결과, 해당 문서가 존재하면 이를 리포터(104)를 통해 웹 서버(140)에 전송하여 최종 버전의 문서에 반영시킨다. 검색 결과, 해당 문서가 존재하지 않으면, 사용자에 의해 편집이 진행된 내용을 로컬 스토리지(102)에 저장하고 사용자가 확인할 수 있도록 화면에 디스플레이한다. 클라이언트 단말(10)은 편집 내용을 편집 데이터 구조에 따라 문자 단위(character by character)로 웹 서버(140)에 전송하며, 협업부(142)와 충돌 처리부(144)에 의해 최종 버전의 문서가 도출되면 이를 수신한다(608). 이때, 웹 서버(140)는 다른 사용자에게 문자 단위의 업데이트 내용을 전달함으로써 높은 응답성을 제공한다. 클라이언트 단말(10) 사용자에 의한 편집 입력 감지(610)가 이루어질 때마다 606 및 608 단계는 반복된다. 편집 입력이 감지되지 않으면 편집 절차는 종료된다.
도 7은 협업 웹 사이트(14)의 충돌 해결 프로세스를 도시한 흐름도이다.
도 1 및 도 7을 참조하면, 웹 서버(140)는 클라이언트 단말(10)로부터 동기화할 데이터를 수신하면, 충돌을 해결하고 협업 편집 참여자들에게 최신 버전의 문서를 배포한다. 우선, 클라이언트 단말(10)이 자신의 로컬 스토리지(102)에 저장된 데이터를 웹 서버(140)에 전송(700)하면, 웹 서버(140)는 콘텐츠 저장부(148)로부터 해당 문서의 최신 버전을 불러온다(710). 웹 서버(140)는 여러 클라이언트로부터 데이터를 수신할 수 있다. 이어서, 충돌 처리부(144)의 해결부(1444)는 어느 편집 데이터도 누락되지 않도록 수집된 문서들을 일관된(consistent) 문서로 병합한다(720). 충돌 처리부(144)의 갱신부(1446)는 콘텐츠 저장부(148)에 최신 버전의 문서를 저장(730)하고, 협업부(142)의 전송부(1424)는 협업 편집에 참여 중인 모든 클라이언트에 최신 버전의 문서를 전달한다(740).
도 8 및 도 9는 본 발명의 일 실시예에 따라 각 구성 요소 간 실시간 협업 프로세스를 도시한 흐름도이다.
도 8은 클라이언트 단말(10a,10b)이 동일 문서에서 협업을 시작하는 과정을 나타낸 것이다. 도 1 및 도 8을 참조하면 클라이언트 A(10a)와 클라이언트 B(10b)의 연결 요청을 수신(800)한 웹 서버(140)는 사용자 프로파일 저장부(146)에 클라이언트 정보를 저장한다(810). 이어서, 협업부(142)는 콘텐츠 저장부(148)에서 협업 문서(문서 내용 예:apple)(820)를 불러와 클라이언트 단말(10a,10b)에 전송한다(830). 그러면, 클라이언트 단말(10a,10b) 사용자들은 웹 브라우저(120)를 통해 동일한 문서(문서 내용 예:apple)를 볼 수 있다(840).
도 9는 사용자가 클라이언트 단말(10a,10b)을 통해 동시 편집을 진행하는 경우, 웹 서버(140)가 충돌을 처리하여 협업을 지원하는 과정을 나타낸 것이다. 도 1 및 도 9를 참조하면, 클라이언트 A(10a)와 클라이언트 B(10b)는 웹 서버(140)에 편집 데이터를 각각 전송한다(900, 910). 협업부(142)의 수집부(1422)가 편집 데이터 목록을 충돌 처리부(144)에 전송(920)하면, 충돌 처리부(144)는 편집 데이터를 분석하여 충돌을 해결(930)하고, 콘텐츠 저장부(148)에 최근 버전의 문서를 저장한다(940). 이어서, 협업부(142)의 전송부(1424)는 웹 서버(140)를 통해 최종 버전의 문서를 클라이언트 단말(10a,10b)에 전달한다(950,960,970). 그러면, 클라이언트 단말(10a,10b)은 웹 브라우저(100)에서 협업 편집된 문서를 볼 수 있다(980).
도 10a 및 도 10b는 본 발명에 따라 여러 사용자가 동일한 문서를 동시 편집 시에 야기되는 충돌을 해결하는 일 실시예를 도시한 참조도이다.
각 클라이언트 단말(10a,10b,10c) 사용자가 동시에 문서를 편집한다고 가정한다. 도 10a에 도시된 화살표는 도 9에 도시된 과정을 간단하게 나타낸 것으로서, 소정의 클라이언트 단말이 웹 서버(140)에 편집 데이터를 전송한 후 최종 문서가 다른 클라이언트에게 전달되는 일련의 과정을 포함한다. 클라이언트 C(10c)는 모바일 장치로서 협업 중에 연결이 끊어졌다가 복구된다고 가정한다. 각 클라이언트 단말(10a,10b,10c) 사용자는 지역적으로 변경 내용을 저장한 후 이를 웹 서버(140)에 전송한다. 웹 서버(140)는 편집 내용에서 충돌을 해결하고 각 사용자의 편집 내용을 보존하여 최종 문서를 도출한다. 그리고, 클라이언트 단말들(10a,10b,10c)에 도출된 최종 문서를 전달하여 실시간으로 편집을 진행하도록 한다.
Op(1020, 1022, 1024, 1026)는 각 클라이언트 단말(10a,10b,10c)의 편집 내용이며, 도 3에 도시된 바와 같은 구조로 웹 서버(140)에 전송된다. T1 내지 T4(1010, 1012, 1014, 1016)는 클라이언트 단말(10a,10b,10c)에서 발생하는 주요 사건의 시간을 나타낸다. 도 10b의 표(1050)는 T1 내지 T4(1010, 1012, 1014, 1016)에서 각 클라이언트 단말(10a,10b,10c)이 수신한 문서의 최종 버전을 나타낸다.
T1(1010)에서 Op1(1020)과 Op2(1022)가 동시에 발생하여 각각 웹 서버(140)에 전송되면, 웹 서버(140)는 충돌 처리부(144)를 통해 충돌을 해결한 후 최종 문서를 각 클라이언트 단말(10a,10b,10c)에 전송한다. 충돌 해결 시, 기본적으로 타임스탬프를 기준으로 Op들을 정렬하여 차례대로 적용한다. T2(1012)에서 각 클라이언트 단말(10a,10b,10c) 사용자가 Op1 및 Op2가 반영된 최신 문서를 보는 순간, 클라이언트 C(10c)의 네트워크 연결이 끊어진다. 클라이언트 C(10c)는 연결 상태와 상관없이 Op4(1026)를 적용하지만 자신의 로컬 스토리지에만 저장되고 웹 서버(140)와 동기화되지 않기 때문에, 다른 클라이언트 단말(10a,10b)은 그 내용을 수신하지 못한다.
T3(1014)에서 클라이언트 B(10b)는 Op3(1024)을 수행하고, 웹 서버(140)를 통해 다른 클라이언트 단말(10a,10c)에 전달하지만, 클라이언트 C(10c)는 오프라인이므로 이를 수신하지 못한다. T4(1016)에서 클라이언트 C(10c)의 연결이 재개되면 클라이언트 C(10c)는 자신의 로컬 스토리지에 저장된 편집 내용을 웹 서버(140)에 전송한다. 그러면, 웹 서버(140)는 동기화된 시스템 타임인 타임스탬프를 기준으로 충돌을 해결한 후, 최종 문서를 각 클라이언트 단말(10a,10b,10c)에 전달한다.
이제까지 본 발명에 대하여 그 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10 : 클라이언트 단말 14 : 협업 웹 사이트
140 : 웹 서버 142 : 협업부
144 : 충돌 처리부 146 : 사용자 프로파일 저장부
148 : 콘텐츠 저장부 100 : 웹 브라우저
102 : 로컬 스토리지 104 : 리포터
1422 : 수집부 1424 : 전송부
1442 : 파싱부 1444 : 해결부
1446 : 갱신부

Claims (1)

  1. 웹 서버로부터 적어도 하나의 편집 데이터를 수집하고, 수집된 편집 데이터를 충돌 처리부에 전달하며, 충돌 처리부를 통해 충돌이 조정된 최종 버전의 문서를 웹 서버를 통해 적어도 하나의 클라이언트 단말에 전송하는 협업부; 와 충돌이 발생한 문서를 수신하여 충돌을 조정하는 충돌 처리부; 와 클라이언트 단말의 주소를 관리하는 사용자 프로파일 저장부; 와 충돌이 조정된 최종 버전의 문서를 저장하는 콘텐츠 저장부; 와 적어도 하나의 클라이언트 단말과의 양방향 비동기 통신을 지원하고, 각 구성요소를 제어하는 웹 서버; 를 포함하는 협업 웹 사이트; 및
    편집 GUI를 제공하는 웹 브라우저; 와 협업 문서의 복사본을 저장하는 로컬 스토리지; 와 편집이 발생할 때 적어도 하나 이상의 편집 데이터를 웹 서버에 전송하고, 충돌이 조정된 최신 협업 문서를 전송 받는 리포터; 를 포함하는 클라이언트 단말;
    을 포함하는 것을 특징으로 하는 실시간 협업 편집 시스템.
KR1020110131248A 2011-12-08 2011-12-08 네트워크 상황에서의 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템 KR20130064570A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110131248A KR20130064570A (ko) 2011-12-08 2011-12-08 네트워크 상황에서의 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110131248A KR20130064570A (ko) 2011-12-08 2011-12-08 네트워크 상황에서의 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템

Publications (1)

Publication Number Publication Date
KR20130064570A true KR20130064570A (ko) 2013-06-18

Family

ID=48861492

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110131248A KR20130064570A (ko) 2011-12-08 2011-12-08 네트워크 상황에서의 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템

Country Status (1)

Country Link
KR (1) KR20130064570A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018026033A1 (ko) * 2016-08-04 2018-02-08 주식회사 한글과컴퓨터 문서의 동시 편집을 지원하는 문서 협업 지원 장치 및 그 동작 방법
KR20190041627A (ko) * 2017-10-13 2019-04-23 주식회사 한글과컴퓨터 협업 시의 충돌을 방지하는 방법 및 이를 이용하는 장치
CN113472776A (zh) * 2021-06-30 2021-10-01 亿图软件(湖南)有限公司 一种多人实时协作方法及系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018026033A1 (ko) * 2016-08-04 2018-02-08 주식회사 한글과컴퓨터 문서의 동시 편집을 지원하는 문서 협업 지원 장치 및 그 동작 방법
US11409706B2 (en) 2016-08-04 2022-08-09 Hancom Inc. Document cooperation supporting apparatus for supporting simultaneous edit of document, and operating method thereof
KR20190041627A (ko) * 2017-10-13 2019-04-23 주식회사 한글과컴퓨터 협업 시의 충돌을 방지하는 방법 및 이를 이용하는 장치
CN113472776A (zh) * 2021-06-30 2021-10-01 亿图软件(湖南)有限公司 一种多人实时协作方法及系统

Similar Documents

Publication Publication Date Title
US10798440B2 (en) Methods and systems for synchronizing data streams across multiple client devices
CN111479121B (zh) 一种基于流媒体服务器的直播方法及系统
EP2636199B1 (en) Signalling gateway, method, computer program and computer program product for communication between http and sip
CN108259542B (zh) 资源的传输方法和装置
US20180284957A1 (en) Multimedia conferencing
US9736245B2 (en) Methods for synchronizing web sessions and devices thereof
JP6945211B2 (ja) コミュニケーション支援装置、方法、及びコンピュータプログラム
US20150074199A1 (en) Document sharing method, system, and device
EP2933982A1 (en) Media stream transfer method and user equipment
CN109788301B (zh) 一种流媒体的直播方法、终端设备、直播系统及计算机可读存储介质
CN106230978A (zh) 分布式缓存同步方法、装置及系统
US20120242841A1 (en) System and method for transmitting real-time images
WO2014148865A1 (ko) 통합 sns 게이트웨이
KR20130064570A (ko) 네트워크 상황에서의 적응적 웹 기반 실시간 협업 편집 방법 및 그 시스템
JP2006209490A (ja) 設定情報同期プログラム
CN109194729B (zh) 一种信息通讯系统以及方法
CN102137118A (zh) 一种基于网页的网页安全同步浏览方法及系统
CN102314467A (zh) 一种实现网页同步浏览的方法
CN115277649A (zh) 多媒体会议场景下的文档协同编辑的方法及装置
CN110636384B (zh) 一种实现网页一主多从同步的系统及方法
JP6293611B2 (ja) 端末間で同一ページを同期して表示させるページ同期方法及びプログラム
CN102137119A (zh) 一种基于网页的网页同步浏览方法及系统
JP4882738B2 (ja) クライアント装置、通信方法およびプログラム
JP2008217532A (ja) Wwwコンテンツ取得システム及びwwwコンテンツ取得方法
JP2007179396A (ja) 電子会議システム及びドキュメント共有方法

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application