KR101563761B1 - 충돌 해결 - Google Patents

충돌 해결 Download PDF

Info

Publication number
KR101563761B1
KR101563761B1 KR1020107023576A KR20107023576A KR101563761B1 KR 101563761 B1 KR101563761 B1 KR 101563761B1 KR 1020107023576 A KR1020107023576 A KR 1020107023576A KR 20107023576 A KR20107023576 A KR 20107023576A KR 101563761 B1 KR101563761 B1 KR 101563761B1
Authority
KR
South Korea
Prior art keywords
user
content
copy
conflict
data file
Prior art date
Application number
KR1020107023576A
Other languages
English (en)
Other versions
KR20100135835A (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 마이크로소프트 테크놀로지 라이센싱, 엘엘씨
Publication of KR20100135835A publication Critical patent/KR20100135835A/ko
Application granted granted Critical
Publication of KR101563761B1 publication Critical patent/KR101563761B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • 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
    • G06F16/954Navigation, e.g. using categorised browsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Strategic Management (AREA)
  • Human Resources & Organizations (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

공동 제작 환경의 실시예들은 사용자가 데이터 파일의 사용자 사본을 데이터 파일의 마스터 사본과 동기화시킬 때 일어나는 편집 충돌을 해결할 수 있게 해준다. 콘텐츠 업데이트가 메타데이터 업데이트와 별도로 동기화될 수 있다. 메타데이터 업데이트는 자동으로 동기화될 수 있는 반면, 콘텐츠 업데이트는 임의의 식별된 편집 충돌이 해결될 때 동기화될 수 있다. 편집 충돌이 식별될 때, 제작 응용 프로그램의 사용자 인터페이스는 식별된 편집 충돌을 디스플레하는 것과 숨기는 것 사이에서 토글하도록 구성될 수 있다.

Description

충돌 해결{CONFLICT RESOLUTION}
종래의 공동 작업 편집(collaborative editing)은 순차적으로 수행되는 경향이 있다. 사용자들은 차례대로 문서에 액세스하고 문서를 편집하며 자신들의 편집을 저장한다. 편집 충돌을 억제하기 위해, 액세스 중인 사용자(accessing user)는, 문서를 편집할 때, 다른 사용자들이 그 문서를 편집하지 못하도록 파일에 잠금을 걸 수 있다. 반복되는 편집 프로세스는 지연을 야기할 수 있는데, 그 이유는 각각의 사용자가 문서를 편집할 때 차례를 기다려야 할지도 모르기 때문이다. 그에 부가하여, 반복되는 편집 프로세스는 관리하기 어려울 수 있다. 예를 들어, 각각의 사용자는 누가 문서의 어느 부분을 편집하고 있는지, 문서의 어느 버전이 가장 최근의 것인지, 및 언제 사용자의 차례가 되는지를 추적할 필요가 있을 수 있다.
다른 유형의 종래의 공동 작업 편집에서, 각각의 사용자는 문서의 서로 다른 사본을 편집할 수 있다. 나중에, 편집된 사본들 전부가 하나의 문서로 병합될 수 있다. 이러한 대규모 병합도 역시 지연을 야기하여, 수많은 편집 충돌을 야기하고 및/또는 관리하기 어려울 수 있다. 예를 들어, 문서들을 병합하는 일을 맡고 있는 사용자는 문서들 간의 관계를 추적해야만 할지도 모른다. 사용자는 또한 2개 이상의 편집된 사본들 간의 충돌들을 해결하는 일도 맡고 있을 수 있다.
본 발명이 이들 및 기타 고려사항들과 관련하여 개시되어 있다.
<요약>
이 요약은 이하에서 상세한 설명에 더 기술되는 일련의 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 알려주기 위한 것이 아니며, 청구된 발명 대상의 범위를 정하는 데 보조 수단으로 의도된 것도 아니다.
본 발명의 실시예들은 일반적으로 사용자가 공동 작업 환경에서 데이터 파일을 동기화시킬 때 일어나는 편집 충돌들을 해결할 수 있게 해주는 것에 관한 것이다. 데이터 파일의 사용자 사본을 작성하는 각각의 사용자가 데이터 파일의 마스터 파일과 사용자 사본 사이의 편집 충돌들을 해결할 수도 있다. 데이터 파일의 사용자 사본으로부터의 업데이트가 편집 충돌이 해결된 후에 마스터 파일에 포함될 수 있다.
본 발명의 측면들에 따르면, 제작 응용 프로그램은 사용자가 데이터 파일의 사용자 사본 내에서의 편집 충돌들을 선택적으로 보여주고 숨길 수 있게 해준다. 제작 응용 프로그램은 편집 충돌이 보여지는지 숨겨지는지에 상관없이 사용자 사본의 자유로운 편집을 가능하게 해준다. 다른 측면들에 따르면, 제작 응용 프로그램은 상황별 사용자 인터페이스(contextual user interface)를 제공한다.
어떤 실시예들에서, 편집 충돌을 보여주는 것은 충돌 콘텐츠에 주석을 다는 것을 포함한다. 일 실시예에서, 충돌 콘텐츠에 주석을 다는 것은 콘텐츠가 어떻게 충돌하는지를 나타낸다. 다른 실시예에서, 사용자 사본 내의 삽입된, 수정된, 및/또는 삭제된 충돌 콘텐츠에만 주석이 달려 있다.
이들 및 다른 특징들 및 이점들이 이하의 상세한 설명을 읽어보고 또 관련 도면들을 살펴보면 명백하게 될 것이다. 이상의 전반적인 설명 및 이하의 상세한 설명 둘다가 단지 설명을 위한 것이며 청구된 측면들을 제한하는 것이 아니라는 것을 잘 알 것이다.
도 1은 본 발명의 측면들의 일례인 특징들을 갖는 예시적인 제작 시스템을 나타낸 도면.
도 2는 본 발명의 원리들에 따른, 데이터 파일의 사용자 사본을 저장하는 사용자 장치에 통신 연결되어 있는, 데이터 파일의 마스터 파일을 저장하는 저장 장치를 포함하는 예시적인 제작 시스템을 나타낸 개략 블록도.
도 3은 본 발명의 원리들에 따른, 데이터 파일의 사용자 사본이 작성될 수 있는 예시적인 작성 프로세스의 동작 흐름을 나타낸 플로우차트.
도 4는 본 발명의 원리들에 따른, 제작 환경을 구현하도록 구성된 사용자 컴퓨팅 시스템의 개략 블록도.
도 5는 본 발명의 원리들에 따른, 도 3의 동기화 동작이 구현될 수 있는 예시적인 동기화 프로세스의 동작 흐름을 나타낸 플로우차트.
도 6은 본 발명의 원리들에 따른, 도 5의 연속 동작이 구현될 수 있는 예시적인 편집 프로세스의 동작 흐름을 나타낸 플로우차트.
도 7은 본 발명의 원리들에 따른, 하나 이상의 편집 충돌들이 검토되고 선택적으로 해결될 수 있는 예시적인 검토 프로세스의 동작 흐름을 나타낸 플로우차트.
도 8은 본 발명의 원리들에 따른, 어떤 미해결된 편집 충돌들도 식별되지 않을 때 사용자에게 디스플레이되는 예시적인 사용자 인터페이스를 나타낸 도면.
도 9는 본 발명의 원리들에 따른, 적어도 하나의 편집 충돌이 식별될 때 사용자에게 디스플레이되는 예시적인 사용자 인터페이스를 나타낸 도면.
도 10은 본 발명의 원리들에 따른, 적어도 하나의 편집 충돌이 식별되고 사용자가 식별된 편집 충돌을 해결하기로 했을 때 사용자에게 디스플레이되는 예시적인 사용자 인터페이스를 나타낸 도면.
도 11은 본 발명의 원리들에 따른, 편집 충돌이 요약창 내의 목록으로부터 선택될 때 디스플레이되는 해결 인터페이스를 포함하는 사용자 인터페이스의 개략도.
도 12는 본 발명의 원리들에 따른, 제작 응용 프로그램이 사용자에 의해 제공되는 해결 명령들을 구현하는 예시적인 구현 프로세스의 동작 흐름을 나타낸 플로우차트.
도 13은 본 발명의 원리들에 따른, 수락된 편집 동작이 데이터 파일의 병합된 버전에 인스턴스화될 수 있는 예시적인 수락 프로세스의 동작 흐름을 나타낸 플로우차트.
도 14는 본 발명의 원리들에 따른, 거부된 편집 동작이 데이터 파일의 병합된 버전 내로부터 제거되거나 그 병합된 버전 내에서 실행 취소될 수 있는 예시적인 거부 프로세스의 동작 흐름을 나타낸 플로우차트.
도 15 내지 도 22는 본 발명의 원리들에 따른, 제1 사용자가 데이터 파일의 사용자 사본을 온라인으로 편집하고 있을 때 제작 응용 프로그램에 의해 디스플레이되는 예시적인 사용자 인터페이스에 대한 변화들을 나타낸 도면.
도 23 내지 도 29는 본 발명의 원리들에 따른, 제1 사용자가 데이터 파일의 사용자 사본을 오프라인으로 편집하고 있을 때 제작 응용 프로그램에 의해 디스플레이되는 예시적인 사용자 인터페이스에 대한 변화들을 나타낸 도면.
이하의 상세한 설명에서, 본 명세서의 일부를 형성하고 예로서 구체적인 실시예들 또는 일례들이 도시되어 있는 첨부 도면들이 참조되고 있다. 본 발명이 일반적으로 컴퓨팅 시스템에서 운영 체제 상에서 실행되는 응용 프로그램과 관련하여 실행되는 프로그램 모듈들과 관련하여 기술될 것이지만, 당업자라면 본 발명이 또한 다른 프로그램 모듈들과 관련하여 구현될 수 있다는 것을 잘 알 것이다. 본 발명의 사상 또는 범위를 벗어나지 않고, 본 명세서에 기술된 실시예들이 결합될 수 있고, 다른 실시예들이 이용될 수 있다. 따라서, 이하의 상세한 설명은 제한적인 의미로 해석되어서는 안되며, 본 발명의 범위가 첨부된 특허청구항범위 및 그의 등가물들에 의해 한정된다.
본 발명의 원리들에 따르면, 공동작업 제작 응용 프로그램은 한명 이상의 사용자가 편집 동작(예를 들어, 콘텐츠 및/또는 메타데이터의 삽입, 수정, 및/또는 삭제)을 통해 하나 이상의 데이터 파일들(예를 들어, 워드 프로세싱 문서, 프레젠테이션 문서, 스프레드시트 문서, 사진 또는 기타 이미지, 사운드 파일, 소프트웨어 응용 프로그램, 실행가능 코드, 기타)를 편집할 수 있는 제작 환경을 제공한다. 각각의 사용자는 마스터 사본으로 표현되는 한 버전의 데이터 파일에 기초하여 데이터 파일의 사용자 사본을 획득한다. 사용자는 데이터 파일의 새 버전을 생성하기 위해 데이터 파일의 사용자 사본을 편집하고 이 새 버전을 마스터 사본과 주기적으로 동기화시킬 수 있다.
동기화라는 용어는, 본 명세서에서 사용되는 바와 같이, 공용 버전의 데이터 파일을 생성하기 위해 데이터 파일의 마스터 사본과 데이터 파일의 사용자 사본 간에 하나 이상의 버전 업데이트들을 전송하는 것 및/또는 수신하는 것을 말한다. 예를 들어, 각각의 사용자는 데이터 파일의 새 버전을 나타내는 버전 업데이트를 마스터 사본으로 주기적으로 전송할 수 있고 또 (예를 들어, 다른 사용자들에 의해 수행된 편집들을 반영하고 있을 수 있는) 마스터 사본의 현재 버전을 나타내는 버전 업데이트를 마스터 사본으로부터 주기적으로 수신할 수 있다.
이상에서 간략히 기술한 바와 같이, 본 발명의 실시예들은 사용자가 공동 작업 환경에서 데이터 파일을 동기화시킬 때 일어나는 편집 충돌들을 해결할 수 있게 해주는 것에 관한 것이다. 일반적으로, 사용자 사본이 획득될 때와 사용자 사본이 마스터 사본과 동기화될 때의 사이에 또는 동기화들 사이에 데이터 파일의 마스터 사본이 변하는 경우(예컨대, 마스터 사본 상에서 편집 동작이 수행되는 경우) 편집 충돌이 일어날 수 있다. 마스터 사본에 대한 이러한 변경을 본 명세서에서 "중간 변경(intervening change)"이라고 할 것이다.
편집 동작이 마스터 사본에 대한 중간 변경과 상충하는 경우(또는 그 반대의 경우에), 데이터 파일의 사용자 사본에 대해 편집 동작이 수행되면, 이 용어가 본 명세서에서 사용되는 바와 같이, 편집 충돌이 일어난다. 예를 들어, 사용자가 중간 변경에 의해 데이터 파일의 마스터 사본에서 삭제되었던 제1 데이터 단위를 수정하기 위해 데이터 파일의 사용자 사본에서 편집 동작을 수행하는 경우, 제1 데이터 단위의 수정을 가져오는 편집 동작이 마스터 사본에서 제1 데이터 단위의 삭제를 가져오는 편집 동작과 충돌하게 될 것이다.
이제부터 도면을 참조하면, 도 1은 본 발명의 측면들의 일례인 특징들을 갖는 예시적인 제작 시스템(100)을 나타낸 것이다. 제작 시스템(100)은 데이터 파일(예를 들어, 워드 프로세싱 문서, 프레젠테이션 문서, 스프레드시트 문서, 사진 또는 기타 이미지, 사운드 파일, 소프트웨어 응용 프로그램, 실행가능 코드, 기타)의 마스터 사본(150)을 저장하는 저장 장치(120)를 포함하고 있다. 일 실시예에서, 저장 장치(120)는 하나 이상의 저장 장치들(예를 들어, 저장 장치들의 네트워크)을 포함할 수 있다. 다른 실시예에서, 저장 장치(120)는 하나 이상의 컴퓨팅 장치들을 포함할 수 있다.
제작 시스템(100)은 또한 저장 장치(120)에 통신 연결(communicatively couple)되어 있을 수 있는 적어도 하나의 사용자 컴퓨팅 장치(110)를 포함하고 있다. 이 용어가 본 명세서에서 사용되는 바와 같이, 사용자 컴퓨팅 장치(110)는 데이터 파일의 마스터 사본(150)으로부터 데이터 파일의 사용자 사본(155)을 획득하여 작성하도록 구성되어 있는 임의의 장치를 포함한다. 이 용어가 본 명세서에서 사용되는 바와 같이, 데이터 파일을 작성한다는 것은 편집 동작들을 통해 데이터 파일을 생성하는 것 및/또는 데이터 파일을 편집하는 것을 포함할 수 있다. 사용자 컴퓨팅 장치들(110) 각각은, 마스터 사본(150)에 기초하여 데이터 파일의 사용자 사본(155)을 생성함으로써, 데이터 파일을 작성할 수 있다. 사용자 장치(110)가 저장 장치(120)에 통신 연결될 때(즉, 온라인일 때) 또는 사용자 장치(110)가 저장 장치(120)로부터 분리될 때(즉, 오프라인일 때), 사용자 장치(110)는 사용자 사본(155)을 편집할 수 있다.
사용자 컴퓨팅 장치(110)가 저장 장치(120)에 통신 연결되고 하나 이상의 업데이트들을 저장 장치(120)로 주기적으로 전송하여 마스터 사본(150)에 포함됨으로써 다른 사용자 컴퓨팅 장치들과 공유될 때(즉, 온라인일 때) 데이터 파일의 사용자 사본(155)이 동기화될 수 있다. 사용자 사본(155)의 동기화는 또한 다른 사용자 컴퓨팅 장치들로부터 발생된 마스터 사본(150)으로부터의 업데이트들을 저장 장치(120)로부터 주기적으로 획득하는 것도 포함한다. 사용자 컴퓨팅 장치(110)가 오프라인일 때, 사용자 컴퓨팅 장치는 저장 장치(120), 따라서 다른 사용자 컴퓨팅 장치들과 동기화되지 않는다.
데이터 파일의 사용자 사본을 마스터 사본과 동기화하는 것에 관한 부가의 상세들이 2007년 11월 9일자로 출원된 발명의 명칭이 "Collaborative Authoring(공동작업 작성)"인 동시 계류 중인 출원 제11/938,082호(이 출원은 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)에서 찾아볼 수 있다. 사용자 컴퓨팅 장치가 오프라인일 때 동기화하는 것에 관한 부가의 상세들이 2007년 12월 14일로 출원된 발명의 명칭이 "Collaborative Authoring Modes(공동작업 작성 모드)"인 동시 계류 중인 출원 제11/957,010호(이 출원은 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함됨)에서 찾아볼 수 있다.
도 1에 도시된 일례에서, 4개의 사용자 컴퓨팅 장치(110A, 110B, 110C, 및 110D)가 저장 장치(120)에 통신 연결되어 있다. 그렇지만, 다른 실시예들에서, 임의의 수의 사용자 컴퓨팅 장치들(110)이 저장 장치(120)에 연결되어 있을 수 있다. 도시된 일례에서, 각각의 사용자 컴퓨팅 장치(110A, 110B, 110C, 및 110D)는 사용자 컴퓨팅 장치의 사용자에 의해 발생된 업데이트들을 저장 장치(120)로 전송할 수 있고 다른 사용자 컴퓨팅 장치들의 사용자들에 의해 발생된 업데이트들을 저장 장치(120)에 요청할 수 있다.
사용자 컴퓨팅 장치들(110A, 110B, 110C, 110D)은 저장 장치(120)와 다른 장치일 수 있거나, 저장 장치(120) 상에 구현된 다른 사용자 계정들을 포함할 수 있다. 일 실시예에서, 하나의 데이터 파일에 대해 저장 장치(120)로서 기능하는 장치가 다른 데이터 파일에 대해 사용자 컴퓨팅 장치(110)로서 기능할 수 있고, 그 반대로도 될 수 있다. 일 실시예에서, 저장 장치(120)는 서버 컴퓨팅 장치일 수 있고, 사용자 컴퓨팅 장치들(110A, 110B, 110C, 및 110D)은 클라이언트 컴퓨팅 장치들일 수 있다.
본 발명의 측면들에 따르면, 데이터 파일에 대한 업데이트들이 콘텐츠 업데이트 및/또는 메타데이터 업데이트를 포함한다. 이 용어가 본 명세서에서 사용되는 바와 같이, 콘텐츠 업데이트는 데이터 파일의 상당한 콘텐츠에 대해 행해지는 임의의 편집 동작을 말한다. 예를 들어, 워드 프로세싱 문서에 대한 콘텐츠 업데이트는 추가된 단락(또는 그의 일부), 삭제된 단락(또는 그의 일부), 수정된 단락(또는 그의 일부), 및 테이블, 차트, 이미지 또는 다른 이러한 개체에 대한 추가, 삭제 및/또는 변경을 포함할 수 있다. 다른 실시예에서, 프레젠테이션 문서에 대한 콘텐츠 업데이트들은 추가된, 삭제된 및/또는 수정된 사진들, 텍스트, 애니메이션들, 사운드들 및 기타 이러한 데이터 객체들을 포함할 수 있다.
이 용어가 본 명세서에서 사용되는 바와 같이, 메타데이터 업데이트는 데이터 파일의 메타데이터에 대해 행해지는 임의의 편집 동작을 말한다. 메타데이터의 비제한적인 일례들로는 콘텐츠 잠금(content lock), 현재 상태 정보(presence information), 및 기타 이러한 데이터가 있다. 현재 상태 정보는 어느 사용자들이 문서를 편집하려는 의사를 표시했는지를 나타낸다. 콘텐츠 잠금은 잠금을 소유하지 않는 사용자들이 그 잠금 내에 있는 임의의 콘텐츠를 편집하는 것을 금지시킨다. 예를 들어, 콘텐츠 잠금은 문서 또는 기타 데이터 파일의 어느 부분들이 다른 사용자에 의해 요구되었는지를 알려줌으로써 편집 충돌을 억제할 수 있다. 어떤 실시예들에서, 콘텐츠 잠금은 한 사용자가 다른 사용자에 의해 요구된 문서의 일부분을 편집하지 못하도록 할 수 있다. 그렇지만, 다른 실시예들에서, 사용자는 콘텐츠 잠금을 풀고 데이터 파일의 일부분을 편집하기로 할 수 있다. 이러한 경우들에, 제작 응용 프로그램은 잠금된 부분을 편집할 때 충돌이 일어날지도 모른다는 것을 사용자에게 경고할 수 있다.
도 2에 도시된 바와 같이, 데이터 파일의 텐츠(152) 및 메타데이터(154)는 저장 장치(120)의 메모리(125)에 저장될 수 있다. 어떤 실시예들에서, 데이터 파일의 메타데이터(154)가 콘텐츠(152)와 별도로 저장될 수 있다. 예를 들어, 콘텐츠(152)는 데이터 파일(150)에 저장될 수 있고, 메타데이터(154)는 데이터 파일(150)과 별개인 테이블(도시 생략)에 저장될 수 있다. 그렇지만, 다른 실시예들에서, 메타데이터(154)가 데이터 파일(150) 내에 저장될 수 있다. 데이터 파일의 사용자 사본(155)의 콘텐츠(152') 및 메타데이터(154')는 사용자 컴퓨팅 장치(110) 상의 캐시[도 4의 캐시(426) 참조]에 저장될 수 있다. 사용자 컴퓨팅 장치(110) 상의 하나 이상의 제작 응용 프로그램들(130)은 데이터 파일의 사용자 사본(155)의 콘텐츠(152') 및/또는 메타데이터(154')를 처리하고 조작한다.
일반적으로, 사용자 컴퓨팅 장치들(110)은 메타데이터 업데이트들과 별도로 콘텐츠 업데이트들을 동기화시킬 수 있다. 어떤 실시예들에서, 메타데이터 업데이트들은 저장 장치(120)와 사용자 컴퓨팅 장치들(110) 사이에서 자동으로 동기화되는 반면, 각각의 사용자 컴퓨팅 장치(110)로부터의 콘텐츠 업데이트들은 각자의 사용자의 요청 시에 동기화된다. 일 실시예에서, 제작 환경(100)은 편집 충돌이 존재하지 않을 때에만(또는 해결된 때에만) 콘텐츠 업데이트들을 동기화시킬 수 있지만, 기존의 편집 충돌들과 상관없이 메타데이터 업데이트들을 동기화시킬 수 있다.
일 실시예에서, 편집 충돌은 마스터 사본으로부터 수신된 콘텐츠 업데이트로부터 비롯된 것일 수 있다. 이러한 실시예에서, 사용자 사본(155)의 콘텐츠(152') 및/또는 메타데이터(154')에 대한 변경들이 마스터 사본(150)의 콘텐츠(152)에 대한 중간 변경들과 상충한다. 이러한 편집 충돌을 본 명세서에서 병합가능 충돌(mergeable conflict)이라고 한다. 예를 들어, 일 실시예에서, 동기화들 사이에서 데이터 파일의 사용자 사본 및 마스터 사본에서 동일한 데이터 단위가 서로 다르게 편집되었을 수 있다. 다른 실시예에서, 사용자 사본(155)에서 데이터 단위에 대해 획득된 콘텐츠 잠금이 마스터 사본(150)과 동기화되기 전에 마스터 사본(150)에서 데이터 단위가 편집되었을 수 있다.
다른 실시예에서, 편집 충돌은 마스터 사본(150)으로부터 수신된 콘텐츠 업데이트로부터 비롯된 것일 수 있다. 이러한 실시예에서, 사용자 사본(155)의 콘텐츠(152') 및/또는 메타데이터(154')에 대한 변경들이 마스터 사본(150)의 메타데이터(154)에 대한 중간 변경들(예를 들어, 콘텐츠 잠금의 추가)과 상충한다. 이러한 편집 충돌을 본 명세서에서 병합불가능 충돌(unmergeable conflict)이라고 한다. 예를 들어, 사용자 장치(110)는 사용자 사본(155)에서 수정된 콘텐츠가 이미 다른 사용자에 의해 잠금되었다는 것을 알려주는 메타데이터 업데이트를 데이터 파일의 마스터 사본(150)으로부터 수신할 수 있다.
일 실시예에서, 마스터 사본(150)에 대한 중간 변경들과 상충하는 데이터 파일의 사용자 사본(155)의 메타데이터(154')에 대한 변경들이 마스터 사본(150)에 대한 중간 변경들에 의해 오버라이드(override)된다. 예를 들어, 저장 장치(120)가 데이터 파일의 제1 데이터 단위에 대한 콘텐츠 잠금을 요청하는 메타데이터 업데이트를 제1 사용자 장치(110A)(도 1)로부터 수신하고 마스터 사본(150)의 대응하는 제1 데이터 단위가 제2 사용자 장치(110B)(도 1)에 대해 이미 잠금되어 있는 것으로 판정하는 경우, 저장 장치(120)는 제1 사용자 장치(110A)의 잠금 요청을 거부하게 될 것이다.
도 3은 제작 응용 프로그램이 도 2의 사용자 사본(155) 등의 데이터 파일의 사용자 사본을 작성할 수 있는 예시적인 작성 프로세스(300)의 동작 흐름을 나타낸 플로우차트이다. 작성 프로세스(300)는 시작 모듈(302)에서 초기화되고 시작되어, 작성 동작(304)으로 진행한다. 일반적으로, 작성 동작(304)은 데이터 파일의 사용자 사본을 편집한다. 일 실시예에서, 작성 동작(304)은 (예를 들어, 저장 장치로부터의) 기존의 데이터 파일의 마스터 사본에 기초하여 데이터 파일의 사용자 사본을 획득한다. 다른 실시예에서, 작성 동작(304)은 새 데이터 파일을 생성하여 편집하고, (예를 들어, 주기적으로 또는 편집이 완료될 때) 데이터 파일의 마스터 사본을 발생하며, 데이터 파일의 마스터 사본을 (예를 들어, 저장 장치 상에) 저장한다.
수신 동작(306)은 데이터 파일의 마스터 사본에 행해진 중간 변경들을 알려주는 업데이트들을 제작 응용 프로그램에서 획득한다. 예를 들어, 일 실시예에서, 수신 동작(306)은 데이터 파일을 작성하는 하나 이상의 다른 사용자들에 의해 마스터 사본의 콘텐츠에 행해진 중간 변경들을 알려주는 콘텐츠 업데이트를 획득한다. 다른 실시예에서, 수신 동작(306)은 데이터 파일을 작성하는 하나 이상의 다른 사용자들에 의해 마스터 사본의 메타데이터타에 행해진 중간 변경들을 알려주는 메타데이터 업데이트를 획득한다. 다른 실시예에서, 수신 동작(306)은 콘텐츠 및 메타데이터 업데이트 둘다를 획득한다.
일 실시예에서, 수신 동작(306)은 미리 정해진 간격으로 마스터 사본으로부터 업데이트를 수신한다. 다른 실시예에서, 마스터 사본에 대해 임계량의 편집이 수행되었을 때, 수신 동작(306)은 마스터 사본으로부터 업데이트를 수신한다. 다른 실시예에서, 수신 동작(306)은 업데이트에 대한 요청에 응답하여 마스터 사본으로부터 업데이트를 수신한다. 예를 들어, 수신 동작(306)은 데이터 파일을 저장하기 전에 데이터 파일을 업데이트하기 위해 마스터 사본에 업데이트를 요청할 수 있다. 이러한 실시예에서, 데이터 파일을 동기화시키라는 명령들이 사용자로부터 수신될 때, 수신 동작(306)은 마스터 사본에 업데이트를 요청한다.
업데이트 동작(308)은 (예를 들어, 중간 변경들을 문서의 사용자 사본에 병합시킴으로써) 중간 변경들을 문서의 사용자 사본 내에 인스턴스화한다. 일 실시예에서, 업데이트 동작(308)은 중간 콘텐츠 변경들과 다르게 중간 메타데이터 변경들을 인스턴스화한다. 일 실시예에서, 업데이트 동작(308)은 콘텐츠 업데이트 및 메타데이터 업데이트를 자동으로 인스턴스화할 수 있다. 다른 실시예에서, 업데이트 동작(308)은 메타데이터 업데이트를 자동으로 인스턴스화할 수 있고 콘텐츠 업데이트를 사용자의 요청 시에 인스턴스화할 수 있다. 예를 들어, 업데이트 동작(308)은 버튼 또는 기타 인터페이스 도구를 사용자에게 제시하여, 그 버튼 또는 기타 인터페이스 도구를 선택함으로써 인스턴스화될 수 있는 업데이트의 이용가능성을 알려줄 수 있다.
업데이트 동작(308)은 또한 임의의 편집 충돌이 존재하는지 여부를 판정할 수 있다. 어떤 실시예들에서, 업데이트 동작(308)은 편집 충돌이 식별되는지 여부에 따라 서로 다르게 중간 변경들을 인스턴스화할 수 있다. 예를 들어, 일 실시예에서, 업데이트 동작(308)은 편집 충돌이 식별될 때 콘텐츠 업데이트의 인스턴스화를 금지시킬 수 있지만, 편집 충돌의 존재에도 불구하고 메타데이터 업데이트를 자동으로 계속 인스턴스화할 수 있다. 유익하게도, 편집 충돌의 존재에도 불구하고 메타데이터 업데이트들을 동기화시키는 것은 추가의 편집 충돌들의 생성을 완화시킬 수 있다. 예를 들어, 잠금 데이터를 동기화시키는 것은 서로 다른 사용자들에 의한 동일한 데이터 단위의 동시 편집을 억제할 수 있다.
동기화 동작(310)은 데이터 파일의 사용자 사본에 행해진 변경들을 나타내는 업데이트를 마스터 사본으로 전달함으로써 사용자 사본을 마스터 사본과 동기화시키려고 시도한다. 일 실시예에서, 동기화 동작(310)은 데이터 파일을 공동으로 작성하는 다른 사용자들로 분배하기 위해 업데이트를 전달한다. 동기화 동작(310)은, 사용자 사본과 마스터 사본 간의 편집 충돌이 식별되지 않는 경우, 단지 사용자 사본을 마스터 사본으로서 저장한다(즉, 마스터 사본에 덮어쓰기한다). 일 실시예에서, 동기화 동작(310)은 마스터 사본의 가장 최근의 버전을 획득하고 사용자 사본과 마스터 사본의 가장 최근의 버전 사이에 편집 충돌이 존재하는지 여부를 판정한다.
본 발명의 측면들에 따르면, 동기화 동작(310)은 편집 충돌이 사용자의 재량으로 식별된 후에 사용자가 언제라도 편집 충돌의 해결을 시작할 수 있게 해줄 수 있다. 동기화 동작(310)은, 하나 이상의 편집 충돌들이 존재하는 것으로 판정되었더라도, 사용자가 데이터 파일의 사용자 사본을 계속하여 자유롭게 편집할 수 있게 해줄 수 있다. 일 실시예에서, 동기화 동작(310)은 편집 충돌들이 사용자에게 숨겨져 있는 상태에서 사용자 사본을 계속하여 편집할 수 있다. 다른 실시예에서, 동기화 동작(310)은 편집 충돌들이 사용자에게 제시되는 상태에서 사용자 사본을 계속하여 편집할 수 있다. 하나 이상의 편집 충돌의 존재에도 불구하고 사용자 사본의 편집이 계속되는 경우, 본 명세서에 더 상세히 기술될 것인 바와 같이, 동기화를 위해 마스터 사본으로 전달되는 대신에 편집 충돌이 해결될 때까지 사용자 사본에 대한 변경들을 알려주는 콘텐츠 업데이트가 로컬로 저장될 수 있다.
동기화 동작(310)은 콘텐츠 업데이트와 다르게 메타데이터 업데이트를 동기화시킬 수 있다. 예를 들어, 일 실시예에서, 동기화 동작(310)은 모든 편집 충돌이 해결된 경우에만 콘텐츠 업데이트를 전달할 수 있고 편집 충돌이 해결되었는지 여부에 상관없이 메타데이터 업데이트를 전달할 수 있다. 상기한 바와 같이, 편집 충돌의 존재에도 불구하고 메타데이터 업데이트들을 동기화시키는 것은 추가의 편집 충돌들의 생성을 완화시킬 수 있다. 게다가, 편집 충돌이 존재할 때 콘텐츠 업데이트를 동기화시키는 것을 중단하는 것은 데이터 파일의 마스터 사본에 편집 충돌을 유입시키는 것을 억제할 수 있다. 작성 프로세스(300)는 종료 모듈(312)에서 완료되어 종료한다.
일반적으로, 본 발명의 원리들에 따른 측면들의 일례인 특징들을 갖는 제작 환경이 사용자 컴퓨팅 장치(예를 들어, 개인용 컴퓨터, 서버 컴퓨터, 노트북 컴퓨터, PDA, 스마트폰, 또는 임의의 다른 이러한 컴퓨팅 장치) 상에 구현될 수 있다. 제작 환경을 구현하고 도 3의 작성 프로세스(300) 등의 작성 프로세스를 수행하도록 구성된 사용자 컴퓨팅 시스템(400)의 비제한적인 실시예에 대해 도 4를 참조하여 본 명세서에 기술한다.
도 4에서, 본 발명의 원리들을 구현하는 예시적인 컴퓨팅 시스템(400)은 사용자 컴퓨팅 장치(410)와 같은 사용자 컴퓨팅 장치를 포함한다. 기본적인 구성에서, 사용자 컴퓨팅 장치(410)는 통상적으로 시스템 메모리(420)에 저장된 응용 프로그램들 및 프로그램들을 실행하는 적어도 하나의 처리 장치(415)를 포함한다. 컴퓨팅 장치(910)의 정확한 구성 및 유형에 따라, 시스템 메모리(420)는 RAM, ROM, EEPROM, 플래쉬 메모리, CD-ROM, DVD(digital versatile disk), 또는 기타 광 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 기타 메모리 기술을 포함할 수 있지만, 이들로 제한되지 않는다.
시스템 메모리(420)는 통상적으로 컴퓨팅 장치(410)의 동작을 제어하는 데 적당한 운영 체제(422)[미국 워싱턴주 레드몬드 소재의 MICROSOFT CORPORATION로부터의 WINDOWS
Figure 112010068168475-pct00001
운영 체제 등]를 저장하고 있다. 시스템 메모리(420)는 또한 문서의 사용자 사본(427)이 저장될 수 있는 데이터 파일 캐쉬(426)도 포함할 수 있다. 데이터 파일의 메타데이터(429)도 역시 사용자 캐쉬(426) 내에 저장될 수 있다.
시스템 메모리(420)는 또한 데이터 파일을 생성 및 편집하는 제작 응용 프로그램들(424)과 같은 하나 이상의 소프트웨어 응용 프로그램들을 저장하고 있을 수 있다. 본 발명의 원리들에 따른, 문서들을 작성하는 데 적당한 제작 응용 프로그램(424)의 한 비제한적인 일례는 미국 워싱턴주 레드몬드 소재의 MICROSOFT CORPORATION으로부터의 제작 소프트웨어 MICROSOFT
Figure 112010068168475-pct00002
OFFICE WORD이다. 제작 응용 프로그램들의 다른 비제한적인 일례들로는 역시 미국 워싱턴주 레드몬드 소재의 MICROSOFT CORPORATION으로부터의 프레젠테이션 소프트웨어 POWERPOINT
Figure 112010068168475-pct00003
와 도면 작성 및 다이어그램 작성 소프트웨어 VISIO
Figure 112010068168475-pct00004
가 있다.
컴퓨팅 장치(410)는 또한 데이터를 입력 및 조작하기 위한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치, 기타 등등의 입력 장치(들)(430)를 가질 수 있다. 디스플레이 화면, 스피커, 프린터, 기타 등등의 출력 장치(들)(435)도 역시 포함되어 있을 수 있다. 이 출력 장치들(435)은 공지되어 있으며, 여기에서 상세히 기술할 필요가 없다.
컴퓨팅 장치(410)는 또한 장치(410)가 분산 컴퓨팅 환경에서 네트워크(예를 들어, 인트라넷 또는 인터넷)를 통해 다른 컴퓨팅 장치들[예를 들어, 도 1의 저장 장치(120)]과 통신할 수 있게 해주는 통신 연결들(440)을 포함할 수 있다. 제한이 아닌 예로서, 통신 장치 매체(440)는 유선 네트워크 또는 직접 배선 연결(direct-wired connection) 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함한다.
도 5는 도 3의 동기화 동작(310)이 구현될 수 있는 예시적인 동기화 프로세스(500)의 동작 흐름을 나타낸 플로우차트이다. 동기화 프로세스(500)는 시작 모듈(502)에서 초기화되고 시작되어, 획득 동작(504)으로 진행한다. 획득 동작(504)은 마스터 사본으로부터 버전 업데이트를 획득한다. 예를 들어, 일 실시예에서, 획득 동작(504)은 마스터 사본에 버전 업데이트를 요청할 수 있다. 다른 실시예에서, 수신 동작(504)은 (예를 들어, 미리 정해진 간격으로) 마스터 사본으로부터 주기적인 버전 업데이트들을 수신할 수 있다.
식별 동작(506)은 마스터 사본의 현재 버전과 사용자 사본 간에 편집 충돌이 존재하는지 여부를 판정한다. 보다 구체적으로는, 식별 동작(506)은 가장 최근의 동기화 이후에(예를 들어, 사용자 사본이 획득된 이후에) 마스터 사본에 대한 임의의 중간 변경들 및 사용자 사본에 대해 수행된 임의의 편집 동작들이 서로 상충하는지 여부를 판정한다.
병합 동작(508)은 사용자 사본 및 마스터 사본을 데이터 파일의 병합된 버전으로 결합시키고 병합된 버전을 사용자에게 제시한다. 일 실시예에서, 병합 동작(508)은 중간 변경들을 데이터 파일의 사용자 사본에 통합시킨다. 다른 실시예에서, 병합 동작(508)은 사용자 변경들을 데이터 파일의 마스터 사본에 통합시킨다. 다른 실시예에서, 병합 동작(508)은 중간 변경들 및 사용자 변경들을 마스터 사본의 가장 최근에 동기화된 버전(즉, 사용자에 의해 획득되어 편집된 마스터 사본의 버전)에 통합시킨다.
제1 판정 모듈(510)은, 임의의 편집 충돌이 식별 동작(506)에 의해 식별되었는지 여부 및/또는 이전에 수신된 업데이트들로부터의 임의의 식별된 편집 충돌이 미해결된 채로 있는지 여부에 기초하여, 동기화 프로세스(500)의 흐름을 분할한다. 제1 판정 모듈(510)이 적어도 하나의 편집 충돌이 식별된 것으로 판정하는 경우, 경보 동작(512)은 편집 충돌의 존재를 사용자에게 알려준다. 예를 들어, 경보 동작(512)은 하나 이상의 편집 충돌의 존재를 알려주는 메시지를 사용자에게 제시할 수 있다. 일 실시예에서, 경보 동작(512)은 또한 미해결된, 식별된 편집 충돌들을 갖는 것의 결과들(예를 들어, 편집 충돌이 해결될 때까지 사용자 사본을 마스터 사본과 완전히 동기화시킬 수 없다는 것)을 알려줄 수 있다.
제2 판정 모듈(514)은 사용자가 식별된 편집 충돌을 언제 검토하고 해결해야 하는지를 선택할 수 있게 해준다. 도시된 일례에서, 제2 판정 모듈(514)은 편집 충돌을 검토하거나 또는 편집 충돌을 조사하지 않고 데이터 파일의 사용자 사본을 계속 편집하는 옵션을 사용자에게 제시한다. 제2 판정 모듈(514)이 편집 계속 옵션이 사용자에 의해 선택된 것으로 판정하는 경우, 본 명세서에 더 상세히 기술될 것인 바와 같이, 계속 동작(516)은 사용자가 데이터 파일을 자유롭게 편집할 수 있게 해준다.
그렇지만, 제2 판정 모듈(514)이 검토 옵션이 사용자에 의해 선택된 것으로 판정하는 경우, 본 명세서에 더 상세히 기술될 것인 바와 같이, 검토 동작(518)은 사용자가 편집 충돌을 검토하고 선택적으로 해결 프로세스를 사용하여 해결할 수 있게 해준다. 검토 동작(518)이 완료될 때, 동기화 프로세스(500)는 다시 제1 판정 모듈(510)로 진행하여 임의의 편집 충돌이 미해결된 채로 있는지 여부를 판정한다. 제1 판정 모듈(510)이 편집 충돌이 없는 것으로 판정할 때까지 상기한 동작 흐름이 반복된다.
제1 판정 모듈(510)이 편집 충돌이 존재하지 않는 것으로 판정할 때, 제3 판정 모듈(520)은 마스터 사본으로부터의 모든 중간 변경들이 획득되어 사용자 사본에 인스턴스화되었는지 여부를 판정한다. 예를 들어, 제3 판정 모듈(520)은 가장 최근의 업데이트 이후에 마스터 사본에 임의의 중간 변경들이 행해졌는지 여부를 판정할 수 있다. 일 실시예에서, 제3 판정 모듈(520)은 마스터 사본의 현재 버전의 버전 번호를 가장 최근에 수신된 업데이트가 나타내는 마스터 사본의 버전의 버전 번호를 비교한다.
제3 판정 모듈(520)이 부가의 중간 변경들이 존재하는 것으로(즉, 가장 최근에 수신된 업데이트가 마스터 사본의 현재 상태를 반영하고 있지 않은 것으로) 판정하는 경우, 동기화 프로세스(500)는 획득 동작(504)으로 되돌아가고, 동기화 프로세스(500)가 다시 시작한다. 제3 판정 모듈(520)이 부가의 중간 변경들이 존재하지 않는 것으로(즉, 가장 최근에 수신된 업데이트가 마스터 사본의 현재 상태를 반영하고 있는 것으로) 판정하는 경우, 표시 동작(522)은 편집 충돌이 해결되었다는 표시를 제공한다. 예를 들어, 일 실시예에서, 표시 동작(522)은 모든 편집 충돌이 해결되었다는 것을 알려주는 메시지를 사용자에게 디스플레이할 수 있다. 다른 실시예에서, 표시 동작(522)은 편집 충돌이 해결되었다는 것을 알려주는 그래픽, 아이콘, 또는 기타 표식을 사용자에게 디스플레이할 수 있다. 저장 동작(524)은 데이터 파일의 마스터 사본을 사용자 사본으로 덮어쓰기한다. 동기화 프로세스(500)는 종료 모듈(526)에서 완료되어 종료한다.
도 6은 도 5의 계속 동작(516)이 구현될 수 있는 예시적인 편집 프로세스(600)의 동작 흐름을 나타낸 플로우차트이다. 편집 프로세스(600)는 시작 모듈(602)에서 초기화되고 시작되어, 수신 동작(604)으로 진행한다. 수신 동작(604)은 사용자로부터 편집 명령들을 획득한다. 예를 들어, 수신 동작(604)은 도 4의 입력 장치(430) 등의 입력 장치를 통해 사용자 입력을 수신할 수 있다.
편집 명령들은 데이터 파일의 사용자 사본의 병합된 버전의 콘텐츠 및/또는 메타데이터에 대한 변경들을 나타낸다. 예를 들어, 편집 명령들은 새 데이터 파일의 데이터 단위(예를 들어, 단락, 열, 테이블, 슬라이드, 그래픽, 기타)가 추가, 삭제 또는 수정되어야만 한다는 것을 나타낼 수 있다. 편집 명령들은 또한 메타데이터의 변경(예를 들어, 콘텐츠 잠금의 변경, 기타)을 나타낼 수 있다. 구현 동작(606)은 문서의 새 사본에 대한 편집 동작을 수행한다.
판정 모듈(608)은 사용자가 편집의 중단을 원한다는 것을 나타냈는지 여부를 판정한다. 예를 들어, 제1 실시예에서, 판정 모듈(608)은 사용자가 편집 충돌을 해결하기로 한 것으로 판정할 수 있다. 다른 실시예에서, 판정 모듈(608)은 사용자가 데이터 파일의 새 사본을 닫기로 하거나 새 사본을 데이터 파일의 마스터 사본과 동기화시키기로 한 것으로 판정한다. 다른 실시예에서, 판정 모듈(608)은 사용자가 데이터 파일의 새 사본을 계속 편집하기로 한 것으로 판정할 수 있다.
판정 모듈(608)이 사용자가 데이터 파일을 계속 편집하기로 한 것으로 판정하는 경우, 편집 프로세스(600)는 수신 동작(604)으로 다시 돌아가서 다시 시작한다. 판정 모듈(608)이 사용자가 데이터 파일의 편집을 중단하기로 한 것으로 판정하는 경우, 저장 동작(610)은 사용자에 의해 행해진 임의의 변경들을 저장한다. 일반적으로, 저장 동작(610)은 데이터 파일의 마스터 사본 이외의 장소에서 사용자에 의해 행해진 임의의 변경들을 포함하는 데이터 파일의 병합된 버전을 저장한다. 일 실시예에서, 저장 동작(610)은 데이터 파일의 병합된 버전을 로컬 메모리(예를 들어, 로컬 캐시)에 저장한다. 다른 실시예에서, 저장 동작(610)은 데이터 파일의 병합된 버전을 마스터 사본과 별개의 저장 장치 상에 저장할 수 있다. 편집 프로세스(600)는 종료 모듈(612)에서 완료되어 종료한다.
도 7은 하나 이상의 편집 충돌들이 검토되고 선택적으로 해결될 수 있는 예시적인 검토 프로세스(700)의 동작 흐름을 나타낸 플로우차트이다. 예를 들어, 검토 프로세스(700)는 도 5의 검토 프로세스(518)를 구현하는 한 예시적인 프로세스이다. 검토 프로세스(700)는 시작 모듈(702)에서 초기화되고 시작되어, 디스플레이 동작(704)으로 진행한다. 디스플레이 동작(704)은 편집 충돌들을 사용자에게 제시한다. 일 실시예에서, 데이터 파일의 병합된 버전과 관련하여 편집 충돌들이 제공된다.
어떤 실시예들에서, 디스플레이 동작(704)은 마스터 사본 및 사용자 사본 둘다로부터의 모든 충돌하는 편집들을 디스플레이한다. 예를 들어, 일 실시예에서, 디스플레이 동작(704)은 데이터 파일의 사용자 사본에 병합되는 충돌하는 편집 동작들로부터 얻어지는 콘텐츠를 디스플레이할 수 있다. 다른 실시예에서, 디스플레이 동작(704)은 데이터 파일의 마스터 사본에 병합되는 충돌하는 편집 동작들로부터 얻어지는 콘텐츠를 디스플레이할 수 있다. 다른 실시예에서, 디스플레이 동작(704)은 임의의 중간 변경들 이전에 데이터 파일의 버전에 병합되는 충돌하는 편집 동작들로부터 얻어지는 콘텐츠를 디스플레이할 수 있다.
일 실시예에서, 데이터 파일 내의 동일한 개체(예를 들어, 문자, 단어, 단락, 그래픽, 슬라이드, 셀, 행, 열, 기타)에 대해 충돌하는 편집 동작들이 행해지는 경우, 디스플레이 동작(704)은 양쪽 편집 동작에 의해 변환되는 개체를 디스플레이할 것이다. 다른 실시예에서, 디스플레이 동작(704)은 개체의 2개의 사본을 디스플레이할 것이며, 하나의 사본은 데이터 파일의 마스터 사본에서 발견된 개체의 버전을 나타내고 다른 사본은 데이터 파일의 사용자 사본에서 발견된 개체의 버전을 나타낸다.
일 실시예에서, 디스플레이 동작(704)은 충돌 콘텐츠를 데이터 파일의 병합된 버전의 비충돌 콘텐츠에 대한 주석으로서 디스플레이한다. 예를 들어, 일 실시예에서, 마스터 사본에서 또는 사용자 사본에서 데이터 파일에 추가된 충돌 콘텐츠가 비충돌 콘텐츠에 추가되고 충돌 콘텐츠가 데이터 파일의 한 버전에 삽입되었다는 것을 나타내도록 주석이 추가되는 것으로 나타내어져 있을 수 있다. 다른 실시예에서, 마스터 사본에서 또는 사용자 사본에서 데이터 파일로부터 제거된 충돌 콘텐츠가 비충돌 콘텐츠에 추가되고 충돌 콘텐츠가 데이터 파일의 한 버전에서 삭제되었다는 것을 나타내도록 주석이 추가되는 것으로 나타내어져 있을 수 있다. 충돌하는 편집을 디스플레이하는 것과 관련한 부가의 개시가 본 명세서에 제공될 것이다.
획득 동작(706)은 사용자로부터 작성 명령들을 수신한다. 예를 들어, 획득 동작(706)은 도 4의 입력 장치(430) 등의 입력 장치를 통해 사용자 입력을 수신할 수 있다. 제1 판정 모듈(708)은 사용자가 편집 충돌을 계속 검토하는 대신에 데이터 파일을 계속하여 자유롭게 편집하는 것으로 되돌아가라는 명령을 제공했는지 여부를 판정한다. 예를 들어, 일 실시예에서, 제1 판정 모듈(708)은 사용자가 본 명세서에서 더 상세히 개시하게 될 토글 인터페이스를 선택한 것으로 판정할 수 있다. 다른 실시예에서, 제1 판정 모듈(708)은 사용자가 충돌하는 편집 동작들 중 하나 이상을 수락 또는 거부하라는 명령을 제공한 것으로 판정할 수 있다.
제1 판정 모듈(708)이 사용자가 편집으로 돌아가라는 명령을 제공한 것으로 판정하는 경우, 식별된 편집 충돌이 미해결된 채로 있더라도, 검토 프로세스(700)는 종료 모듈(714)에서 완료되고 종료된다. 그렇지만, 제1 판정 모듈(708)이 사용자가 편집으로 돌아가라는 명령을 제공하지 않은 것으로 판정하는 경우, 구현 동작(710)은 사용자 명령을 수행한다. 일반적으로, 구현 동작(710)은 사용자에 의해 제공된 명령에 따라 각각의 편집 동작을 수락 또는 거부할 수 있다. 예를 들어, 일 실시예에서, 구현 동작(710)은, 사용자가 편집 동작을 수락하라는 명령을 제공하는 경우, 충돌하는 편집 동작을 데이터 파일의 병합된 버전에 인스턴스화할 수 있다. 다른 실시예에서, 구현 동작(710)은 데이터 파일의 병합된 버전으로부터 거부된 편집 동작의 효과를 제거할 수 있다. 구현 동작(710)의 수행에 관한 부가의 상세들이 본 명세서에 제공되어 있다.
제2 판정 모듈(712)은 임의의 식별된 편집 충돌들이 미해결된 채로 있는지 여부를 판정한다. 일 실시예에서, 제2 판정 모듈(712)은 (예를 들어, 마스터 사본으로부터 수신된 업데이트를 통해, 사용자에 의해 수행된 부가의 편집 동작을 통해, 기타를 통해) 가장 최근의 편집 충돌 식별 이후에 임의의 새로운 편집 충돌이 생성되었는지 여부를 판정하지 않는다. 오히려, 제2 판정 모듈(712)은 이미 식별된 편집 충돌들 중 어느 것이 미해결된 채로 있는지 여부를 판정한다. 다른 실시예에서, 제2 판정 모듈(712)은 임의의 새로운 편집 충돌이 존재하는지 여부를 판정한다.
제2 판정 모듈(712)이 적어도 하나의 식별된 편집 충돌이 미해결된 채로 있는 것으로 판정하는 경우, 해결 프로세스(700)는 다시 제1 판정 모듈(708)로 순환한다. 그렇지만, 제2 판정 모듈(712)이 식별된 편집 충돌이 해결된 것으로 판정하는 경우, 해결 프로세스(700)는 종료 모듈(714)에서 완료되어 종료된다.
일반적으로, 도 2의 사용자 인터페이스(110) 상의 제작 응용 프로그램(130) 등의 제작 응용 프로그램에 의해 사용자 장치 상에 디스플레이되는 사용자 인터페이스가 하나 이상의 편집 충돌이 제작 응용 프로그램에 의해 식별되었는지 여부에 기초하여 변할 수 있다. 어떤 실시예들에서, 제작 응용 프로그램은 편집 충돌의 존재를 사용자에게 알려주는 경보를 디스플레이할 수 있다. 예를 들어, 일 실시예에서, 상태 표시줄이 편집 충돌의 존재를 나타낼 수 있다. 다른 실시예에서, 편집 충돌의 결과를 알려주는 표식을 제공하는 메시지 상자가 사용자에게 디스플레이될 수 있다. 예를 들어, 메시지 상자는 식별된 편집 충돌이 해결될 때까지 콘텐츠가 동기화될 수 없다는 것을 나타낼 수 있다.
그에 부가하여, 편집 충돌이 식별될 때, 제작 응용 프로그램의 사용자 인터페이스는 사용자의 재량으로 편집 충돌을 보여주는 것과 편집 충돌을 숨기는 것 사이에서 토글하도록 구성될 수 있다. 일반적으로, 제작 응용 프로그램의 사용자 인터페이스는 편집 충돌이 보여질 때에도 편집 충돌이 숨겨질 때에도 데이터 파일의 자유로운 편집을 가능하게 해준다. 사용자 인터페이스는 사용자가 편집 충돌을 조사하기로 할 때 편집 충돌의 검토 및 해결을 가능하게 해주는 부가의 기능을 가능하게 해준다.
도 8 내지 도 10은 제작 응용 프로그램이 데이터 파일의 작성 및 동기화를 가능하게 해주기 위해 사용자에게 디스플레이할 수 있는 예시적인 사용자 인터페이스를 나타낸 개략 블록도이다. 도 8은 어떤 미해결된 편집 충돌들도 식별되지 않을 때 사용자에게 디스플레이되는 예시적인 사용자 인터페이스(800)를 나타낸 것이다. 예를 들어, 제작 응용 프로그램은 도 3의 편집 동작(304)이 수행되고 있을 때 사용자 인터페이스(800)를 디스플레이할 수 있다.
사용자 인터페이스(800)는 데이터 파일의 사용자 사본이 디스플레이될 수 있는 작성 창(810)을 포함한다. 일 실시예에서, 작성 창(810)은 사용자 사본의 콘텐츠가 디스플레이되는 편집 영역(812)을 포함한다. 데이터 파일의 메타데이터(예를 들어, 콘텐츠 잠금)도 역시 편집 영역(812)에 디스플레이될 수 있다. 제작 응용 프로그램의 사용자는 디스플레이된 콘텐츠를 추가, 삭제 또는 수정하기 위해 편집 영역(812)에서 콘텐츠와 상호작용할 수 있다.
도 9는 적어도 하나의 편집 충돌이 식별되었을 때 사용자에게 디스플레이되는 예시적인 사용자 인터페이스(850)를 나타낸 것이다. 예를 들어, 제작 응용 프로그램은 사용자가 충돌을 해결하는 대신에 데이터 파일을 계속 편집하기로 할 때[예를 들어, 도 5의 제1 판정 모듈(516)을 참조] 사용자 인터페이스(850)를 디스플레이할 수 있다. 일 실시예에서, 도 6의 편집 프로세스(600)가 수행되고 있을 때 사용자 인터페이스(850)가 디스플레이된다.
사용자 인터페이스(850)는 데이터 파일의 콘텐츠 및 메타데이터가 디스플레이 및/또는 편집될 수 있는 편집 영역(812)을 갖는 도 8의 작성 창(810)을 포함한다. 사용자 인터페이스(850)는 또한 토글 인터페이스(815)를 포함할 수 있다. 일반적으로, 사용자에 의한 토글 인터페이스(815)의 선택에 의해 사용자 인터페이스가 식별된 편집 충돌을 디스플레이할 것이다. 일 실시예에서, 토글 인터페이스(815)의 선택은 또한 충돌 해결 인터페이스를 활성화시킬 것이다.
도 10은 적어도 하나의 편집 충돌이 식별되고 사용자가 식별된 편집 충돌을 해결하기로 했을 때 사용자에게 디스플레이되는 예시적인 사용자 인터페이스(900)를 나타낸 것이다. 사용자 인터페이스(900)는 또한 식별된 편집 충돌의 해결을 가능하게 해줄 수 있다. 예를 들어, 제작 응용 프로그램은 사용자가 편집 충돌을 검토하기로 할 때[도 5의 제1 판정 모듈(514)을 참조] 사용자 인터페이스(900)를 디스플레이할 수 있다. 따라서, 일 실시예에서, 도 7의 검토 프로세스(700)가 수행되고 있을 때 사용자 인터페이스(900)가 디스플레이된다.
사용자 인터페이스(900)는 또한 사용자가 식별된 편집 충돌을 숨길 수 있는 토글 인터페이스(915)를 포함할 수 있다. 일 실시예에서, 토글 인터페이스(915)의 선택은 또한 충돌 해결 인터페이스(920)를 비활성화시킬 것이다. 예를 들어, 토글 인터페이스(915)의 선택에 의해 사용자 인터페이스(900) 대신에 도 9의 사용자 인터페이스(850)가 사용자에게 디스플레이될 수 있다.
사용자 인터페이스(900)는 데이터 파일의 콘텐츠 및 메타데이터가 디스플레이 및/또는 편집될 수 있는 편집 영역(912)을 갖는 작성 창(910)을 포함한다. 편집 영역(912)은 또한 식별된 편집 충돌 또는 식별된 편집 충돌로부터 생기는 콘텐츠를 디스플레이한다. 예를 들어, 일 실시예에서, 편집 영역(912)은 사용자 사본을 마스터 사본과 병합함으로써 발생된 데이터 파일의 병합된 버전을 디스플레이할 수 있다.
어떤 실시예들에서, 편집 영역(912) 내에 디스플레이되는 식별된 편집 충돌들이 충돌하는 편집 동작들로부터 생기는 콘텐츠에 대한 주석을 통해 표시된다. 일 실시예에서, 이 주석은 결과 콘텐츠들이 어떻게 충돌하는지를 나타낸다. 예를 들어, 일 실시예에서, 콘텐츠(예를 들어, 단어, 단락, 테이블, 열, 그래픽, 기타)의 일부가 사용자 사본 및/또는 마스터 사본에서 삽입, 삭제 및/또는 수정되었다는 것을 알려주기 위해 그 콘텐츠의 일부에 주석이 달려 있을 수 있다. 이러한 삽입, 삭제 및/또는 수정을 알려주는 예시적인 주석은 미리 정해진 색상, 취소선, 밑줄, 미리 정해진 불투명도, 강조, 또는 기타 이러한 표식을 포함할 수 있다.
사용자 인터페이스(900)는 또한 제작 응용 프로그램이 식별된 편집 충돌에 관한 정보를 사용자에게 전달할 수 있는 요약 창(920)도 포함할 수 있다. 어떤 실시예들에서, 요약 창(920)은 요약 정보 영역(922)을 포함할 수 있다. 예를 들어, 요약 정보 영역(922)은 제작 응용 프로그램에 의해 식별되고 미해결된 채로 있는 편집 충돌들의 수를 디스플레이할 수 있다. 요약 정보 영역(922)은 또한 병합가능 및 병합불가능 편집 충돌들의 수도 나타낼 수 있다. 일 실시예에서, 편집 충돌이 해결될 때 요약 정보 영역(922)이 새로고침(즉, 업데이트)될 수 있다.
어떤 실시예들에서, 요약 창(920)은 또한 임의의 미해결된 편집 충돌들의 목록(924)을 디스플레이할 수 있다. 예를 들어, 일 실시예에서, 모든 충돌 콘텐츠(예를 들어, 사용자 사본 또는 마스터 사본에서 추가, 삭제 및/또는 수정된 콘텐츠)가 요약 창(920) 내에 열거된다. 일 실시예에서, 콘텐츠의 출처(예를 들어, 사용자 사본 또는 마스터 사본)를 표시하기 위해 열거된 콘텐츠에 주석이 달려 있을 수 있다. 다른 실시예에서, 콘텐츠를 생성하는 편집 동작의 유형(예를 들어, 수정, 삽입, 삭제, 기타)을 표시하기 위해 열거된 콘텐츠에 주석이 달려 있을 수 있다.
사용자 인터페이스(900)는 사용자가 디스플레이된 편집 충돌들을 해결할 수 있도록 구성되어 있을 수 있다. 예를 들어, 사용자 인터페이스(900)는 사용자가 하나 이상의 디스플레이된 편집 충돌들에 대한 해결 명령을 제공할 수 있도록 해줄 수 있다. 일 실시예에서, 사용자 인터페이스(900)는 사용자가 디스플레이된 편집 충돌들에 대한 해결 명령을 순서에 따라 제공할 수 있도록 해준다. 다른 실시예에서, 사용자 인터페이스(900)는 사용자가 사용자에 의해 선택된 임의의 디스플레이된 편집 충돌에 대한 해결 명령을 제공할 수 있도록 해준다.
해결 명령의 일례로는 사용자가 주어진 편집 동작이 데이터 파일의 병합된 버전에 인스턴스화되어야 한다는 것을 나타내는 수락 명령, 및 사용자가 편집 동작이 데이터 파일의 병합된 버전에 대해 수행되어서는 안된다는 것을 나타내는 거부 명령이 있다. 해결 명령의 다른 일례들로는 사용자가 현재 선택된 편집 충돌을 해결하지 않고 후속하는 편집 충돌을 계속하는 다음(next) 명령, 및 사용자가 현재 선택된 편집 충돌을 해결하지 않고 이전의 편집 충돌로 되돌아가는 뒤로(back) 명령이 있을 수 있다.
어떤 실시예들에서, 사용자는 하나 이상의 해결 인터페이스(930)와 상호작용함으로써 해결 명령을 제공할 수 있다. 해결 인터페이스의 비제한적인 일례들로는 단추(예를 들어, 수락 단추, 거부 단추, 다음 단추, 기타), 드롭다운 메뉴, 탭 및 기타 이러한 인터페이스 도구가 있다. 일 실시예에서, 사용자 인터페이스(900)는, 편집 충돌이 디스플레이될 때, 하나 이상의 해결 인터페이스를 사용자에게 디스플레이한다. 다른 실시예에서, 사용자 인터페이스(900)는, 편집 충돌이 사용자에 의해 선택될 때, 하나 이상의 해결 인터페이스를 사용자에게 디스플레이한다.
예를 들어, 사용자는 (예를 들어, 커서 또는 기타 입력 인터페이스를 통해) 편집 영역(912) 내에서 충돌하는 편집 동작들 중 하나로부터 생기는 콘텐츠를 선택하고 해결 인터페이스와 상호작용함으로써 해결 명령을 제공할 수 있다. 다른 실시예들에서, 사용자는 요약 창(920) 내에 디스플레이된 편집 동작을 선택하고 해결 명령을 제공하기 위해 해결 인터페이스와 상호작용함으로써 해결 명령을 제공할 수 있다.
예를 들어, 도 11에서, 사용자 인터페이스(900)는 요약 창(920) 내의 목록(924)로부터 편집 충돌(925)이 선택될 때 디스플레이되는 해결 인터페이스(930)를 포함한다. 도 11에 도시된 해결 인터페이스(930)는 수락 단추(932) 및 거부 단추(934)를 포함한다. 그렇지만, 다른 실시예들에서, 해결 인터페이스(930)는 어떤 원하는 인터페이스 도구라도 포함할 수 있다. 도 11에 도시된 일례에서, 해결 인터페이스(930)는 팝업 창으로서 디스플레이된다. 그렇지만, 다른 실시예들에서, 해결 인터페이스(930)는 도구모음 또는 그의 일부, 드롭다운 메뉴 또는 그의 일부, 또는 기타 이러한 디스플레이 인터페이스를 포함할 수 있다.
도 12는 제작 응용 프로그램이 사용자에 의해 제공되는 해결 명령들을 구현하는 예시적인 구현 프로세스(1000)의 동작 흐름을 나타낸 플로우차트이다. 구현 프로세스(1000)는 시작 모듈(1002)에서 초기화되고 시작되어, 획득 동작(1004)으로 진행한다. 획득 동작(1004)은 충돌 콘텐츠를 해결하기 위한 해결 명령을 사용자로부터 수신한다. 예를 들어, 획득 동작(1004)은 충돌 콘텐츠의 주어진 부분이 사용자에 의해 선택되었고 특정의 단추, 메뉴 옵션 또는 기타 해결 인터페이스 도구가 사용자에 의해 선택된 것으로 판정할 수 있다.
판정 모듈(1006)은 해결 명령이 선택된 충돌 콘텐츠가 수락 또는 거부되어야 하는지를 나타내는지 여부를 판정한다. 판정 모듈(1006)이 획득 동작(1004)이 수락 명령을 수신한 것으로 판정하는 경우, 구현 프로세스(1000)는 수락 동작(1008)으로 진행한다. 판정 모듈(1006)이 획득 동작(1004)이 거부 명령을 수신한 것으로 판정하는 경우, 구현 프로세스(1000)는 거부 동작(1010)으로 진행한다. 수락 동작(1008) 및 거부 동작(1010)을 구현하는 예시적인 프로세스에 관한 상세가 도 13 및 도 14와 관련하여 이하에서 기술된다. 구현 프로세스(1000)는 종료 모듈(1012)에서 완료되어 종료한다.
도 13은 수락된 편집 동작이 데이터 파일의 병합된 버전에 인스턴스화될 수 있는 예시적인 수락 프로세스(1100)의 동작 흐름을 나타낸 플로우차트이다. 수락 프로세스(1100)는 시작 모듈(1102)에서 초기화되고 시작되어, 정리(clean) 동작(1104)으로 진행한다. 정리 동작(1104)은 수락된 콘텐츠로부터 임의의 주석 또는 기타 표식을 제거한다. 예를 들어, 수락된 콘텐츠의 임의의 밑줄, 취소선, 색 지정 또는 기타 이러한 주석이 데이터 파일의 병합된 버전으로부터 제거된다.
판정 모듈(1106)은 수락된 콘텐츠로 인해 콘텐츠 및/또는 서식이 데이터 파일에 추가되는 일이 생기는지 여부를 판정한다. 예를 들어, 일 실시예에서, 판정 모듈(1106)은 수락된 콘텐츠가 문자, 단어, 테이블, 열, 그래픽, 또는 기타 데이터를 데이터 파일에 포함시키는지 여부를 판정한다. 다른 실시예에서, 판정 모듈(1106)은 수락된 콘텐츠가 임의의 서식(예를 들어, 굵게, 밑줄, 글꼴색, 강조, 기타)을 데이터 파일에 추가했는지 여부를 판정한다.
판정 모듈(1106)이 수락된 편집 동작으로부터 콘텐츠 및/또는 서식이 추가된 것으로 판정하는 경우, 수락 프로세스(1100)는 종료 모듈(1110)에서 완료되어 종료된다. 판정 모듈(1106)이 수락된 편집 동작이 데이터 파일로부터 콘텐츠 및/또는 서식을 제거하는 것으로 판정하는 경우, 제거 동작(1108)은 데이터 파일의 병합된 버전으로부터 콘텐츠 및/또는 서식을 삭제한다. 수락 프로세스(1100)는, 제거 동작(1108)의 완료 후에, 종료 모듈(1110)에서 완료되어 종료된다.
도 14는 거부된 편집 동작이 데이터 파일의 병합된 버전 내로부터 제거되거나 그 병합된 버전 내에서 실행 취소될 수 있는 예시적인 거부 프로세스(1200)의 동작 흐름을 나타낸 플로우차트이다. 거부 프로세스(1200)는 시작 모듈(1202)에서 초기화되고 시작되어, 정리(clean) 동작(1204)으로 진행한다. 정리 동작(1204)은 거부된 편집 동작으로부터 생기는 콘텐츠로부터의 임의의 주석 또는 기타 표식을 제거한다. 예를 들어, 콘텐츠의 임의의 밑줄, 취소선, 색 지정 또는 기타 이러한 주석이 데이터 파일의 병합된 버전으로부터 제거된다.
판정 모듈(1206)은 거부된 편집 동작으로 인해 콘텐츠 및/또는 서식이 데이터 파일에 추가되는 일이 생기게 될 것인지 여부를 판정한다. 예를 들어, 일 실시예에서, 제4 판정 모듈(1206)은 거부된 편집 동작이 문자, 단어, 행, 셀, 또는 기타 데이터 단위 또는 콘텐츠 개체를 데이터 파일에 추가하게 될 것인지 여부를 판정한다. 다른 실시예에서, 판정 모듈(1206)은 거부된 편집 동작이 임의의 서식(예를 들어, 굵게, 밑줄, 글꼴색, 강조, 기타)을 데이터 파일에 추가하게 될 것인지 여부를 판정한다.
판정 모듈(1206)이 거부된 편집 동작으로 인해 콘텐츠 및/또는 서식이 데이터 파일에 추가되는 일이 생기게 되지 않을 것으로 판정하는 경우, 수락 프로세스(1200)는 종료 모듈(1210)에서 완료되어 종료된다. 그렇지만, 판정 모듈(1206)이 거부된 편집 동작이 콘텐츠 및/또는 서식을 추가할 것으로 판정하는 경우, 제거 동작(1208)은 데이터 파일의 병합된 버전으로부터 콘텐츠 및/또는 서식을 삭제한다. 거부 프로세스(1200)는, 제거 동작(1208)의 완료 후에, 종료 모듈(1220)에서 완료되어 종료된다.
예시적인 응용들을 살펴봄으로써 본 발명의 원리들이 더 잘 이해될 수 있다. 제1 예시적인 응용에서, 도 15 내지 도 22는 제1 사용자가 데이터 파일의 사용자 사본을 온라인으로 편집하고 있을 때 제작 응용 프로그램에 의해 디스플레이되는 예시적인 사용자 인터페이스에 대한 변화들을 나타낸 것이다. 제2 예시적인 응용에서, 도 23 내지 도 29는 제1 사용자가 데이터 파일의 사용자 사본을 오프라인으로 편집하고 있을 때 제작 응용 프로그램에 의해 디스플레이되는 예시적인 사용자 인터페이스에 대한 변화들을 나타낸 것이다.
도 15에서, 제작 응용 프로그램의 사용자 인터페이스(2000)는 데이터 파일의 사용자 사본의 콘텐츠를 디스플레이하는 편집 영역(2012), 명령 옵션을 제공하는 명령 도구모음(2016), 및 데이터 파일의 사용자 사본의 상태를 나타내는 상태 표시줄(2018)을 포함하는 디스플레이 창(2010)을 포함한다. 예를 들어, 상태 표시줄(2018)은 콘텐츠 업데이트가 데이터 파일의 사용자 사본에 인스턴스화될 수 있는 때를 나타낼 수 있다. 상태 표시줄(2018)은 또한 편집 충돌이 식별된 때를 나타낼 수 있다. 도시된 일례에서, 상태 표시줄(2018)은 데이터 파일의 마스터 사본으로부터 이용가능한 어떤 콘텐츠 업데이트도 없다는 것을 나타낸다.
제작 응용 프로그램은, 예를 들어, 도 3의 예시적인 작성 프로세스(300)를 사용하여, 데이터 파일의 사용자 사본을 편집하는 것을 가능하게 해준다. 도시된 일례에서, 제작 응용 프로그램은 제1 사용자가 디스플레이 창(2010)의 편집 영역(2012) 내에서 데이터 파일의 사용자 사본을 자유롭게 편집할 수 있게 해준다[도 3의 편집 동작(304) 참조]. 도 15에서, 제1 사용자는 편집 영역(2012)에 디스플레이되는 콘텐츠의 제1 데이터 단위를 편집하고 있다. 제1 사용자는 제1 데이터 단위의 편집을 가능하게 해주기 위해 제1 데이터 단위 상에 커서(2019)를 준비시켰다. 제2 사용자는 편집 영역(2012) 내의 콘텐츠의 제2 데이터 단위에 대한 잠금(2022)을 획득하였다. 편집 영역(2012) 내에 디스플레이되는 잠금(2022)은 제1 사용자가 제2 데이터 단위를 자유롭게 편집하지 못하게 한다.
도 16에서, 제1 사용자는 단어 "dog"를 "doe"로 변경하기 위해 제1 데이터 단위를 편집하였다. 일 실시예에서, 단어 "dog"를 "doe"로 변경하는 것은 단어 "dog"를 삭제하는 편집 동작 및 단어 "doe"를 삽입하는 편집 동작을 제공하는 것을 포함한다. 다른 실시예에서, 단어 "dog"를 "doe"로 변경하는 것은 문자 "g"를 삭제하는 편집 동작 및 문자 "e"를 삽입하는 편집 동작을 제공하는 것을 포함한다. 다른 실시예들에서, 동일한 결과를 달성하기 위해 다른 편집 동작들이 이용될 수 있다.
일 실시예에서, 제1 데이터 단위를 편집하는 것은 제1 데이터 단위를 잠금하라는 제1 사용자의 요청을 데이터 파일의 마스터 사본으로 전송하는 것을 시작한다. 다른 실시예에서, 제1 사용자는 제1 데이터 단위를 잠금하라는 명시적인 명령을 제공할 수 있다. 예를 들어, 제1 사용자는 사용자 인터페이스(2000) 상에서 제1 데이터 단위를 선택하고 잠금 옵션을 선택할 수 있다. 따라서, 도 16에서 제1 사용자가 소유한 잠금(2024)이 제1 데이터 단위 주변에 배치되었다. 도시된 일례에서, 잠금(2024)은 제2 사용자가 소유한 잠금(2022)와 구별된다. 예를 들어, 제1 사용자가 소유한 잠금(2024)은 점선으로 디스플레이되고, 제2 사용자가 소유한 잠금(2022)은 실선으로 디스플레이되어 있다. 제1 사용자가 소유한 잠금을 다른 사용자들이 소유한 잠금들과 구별하는 것에 의해 제1 사용자는, 제1 사용자가 데이터 단위를 편집하지 못하게 하지 않으면서, 제1 사용자가 어느 데이터 단위를 잠금했는지를 알 수 있다. 일 실시예에서, 각각의 사용자는 서로 다른 잠금을 가질 수 있다(예를 들어, 각각의 사용자의 잠금이 서로 다른 색상, 음영, 서식, 기타를 가질 수 있다).
도 16a에서, 제작 응용 프로그램은 데이터 파일의 마스터 사본에 행해진 중간 변경들을 나타내는 업데이트를 획득한다[도 3의 수신 동작(306)을 참조]. 일 실시예에서, 제작 응용 프로그램은 미리 정해진 시간 간격이 만료된 후에 업데이트를 수신한다. 다른 실시예에서, 제작 응용 프로그램은 사용자 사본을 마스터 사본과 동기화시키라는 요청에 응답하여 업데이트를 수신한다. 이 예시적인 응용의 목적상, 제작 응용 프로그램은 미리 정해진 시간 간격 후에 업데이트를 자동으로 수신한 것으로 가정된다. 디스플레이 창(2010)의 상태 표시줄(2018)이 도 16a에서 업데이트가 수신된 것을 나타내도록 업데이트되어 있다.
일 실시예에서, 제작 응용 프로그램은 마스터 사본으로부터 메타데이터 업데이트를 수신한다. 다른 실시예에서, 제작 응용 프로그램은 마스터 사본으로부터 콘텐츠 업데이트를 수신한다. 예시적인 응용에서, 제작 응용 프로그램은 메타데이터 업데이트 및 콘텐츠 업데이트 둘다를 수신한다. 메타데이터 업데이트는 제2 사용자가 제2 데이터 단위에 대한 잠금(2022)을 해제하였고 제1 데이터 단위에 대한 잠금[도 17의 잠금(2028)을 참조]을 획득했다는 것을 나타낸다. 이 일례에서, 제2 사용자는 제1 사용자보다 앞서 제1 데이터 단위에 대한 잠금 요청을 마스터 사본과 동기화하였다. 따라서, 제2 사용자는 제1 데이터 단위에 대한 잠금을 부여받았다. 메타데이터 업데이트는 또한 제3 사용자가 제3 데이터 단위에 대한 제3 잠금(2026)을 획득했다는 것을 나타낸다. 콘텐츠 업데이트는 제2 사용자가 단어 "lazy"를 "lively"로 변경하기 위해 제1 데이터 단위를 편집했다는 것을 나타낸다.
제작 응용 프로그램이 업데이트를 수신할 때, 제작 응용 프로그램은 사용자 사본과 수신된 업데이트 사이에 어떤 편집 충돌이 존재하는지 여부를 판정한다. 어떤 편집 충돌도 존재하지 않는 경우, 제작 응용 프로그램은 메타데이터 업데이트를 자동으로 인스턴스화한다[도 3의 업데이트 동작(308)을 참조]. 예시적인 응용에서, 메타데이터 업데이트는 제3 사용자가 제3 데이터 단위에 대한 잠금을 설정했다는 것을 나타낸다. 따라서, 제3 잠금(2026)이 도 16a에서 제3 데이터 단위 주변에 나타내어져 있다.
일 실시예에서, 그렇지만, 메타데이터 업데이트가 사용자 변경과 충돌하는 경우, 사용자가 사용자 사본을 마스터 사본과 동기화하려고 시도할 때까지 메타데이터 업데이트가 인스턴스화되지 않는다. 예시적인 응용에서, 메타데이터 업데이트는 제2 사용자가 제1 데이터 단위를 잠금하라는 제1 사용자의 요청과 충돌하는 제1 데이터 단위에 대한 잠금을 가지고 있다는 것을 나타낸다. 따라서, 제1 데이터 단위에 대한 제2 사용자의 잠금이 자동으로 사용자 사본에 인스턴스화되지 않는다. 다른 실시예에서, 임의의 식별된 편집 충돌이 해결될 때까지 콘텐츠 잠금의 해제가 인스턴스화되지 않는다. 따라서, 제2 데이터 단위에 대한 잠금(2022)을 제2 사용자가 해제하는 것이 자동으로 사용자 사본에 인스턴스화되지 않는다.
편집 충돌이 존재하지 않는 경우, 제작 응용 프로그램은 또한 사용자가 콘텐츠 업데이트가 언제 데이터 파일의 사용자 사본에 인스턴스화(예를 들어, 병합)되어야 하는지를 판정할 수 있게 해준다[도 3의 업데이트 동작(308)을 참조]. 예를 들어, 제작 응용 프로그램은 제1 사용자가 업데이트를 인스턴스화하라는 명령을 제공할 수 있는 인스턴스화 인터페이스를 제공할 수 있다. 인스턴스화 인터페이스의 비제한적인 일례들로는 단추, 메뉴 옵션, 및 기타 인터페이스 도구가 있다.
그렇지만, 제작 응용 프로그램이 편집 충돌을 식별하는 경우, 제작 응용 프로그램은 사용자가 업데이트들을 사용자 사본에 인스턴스화하지 못하게 한다. 일 실시예에서, 제작 응용 프로그램은 인스턴스화 인터페이스를 디스플레이하지 않는다. 다른 실시예에서, 제작 응용 프로그램은 업데이트의 이용가능성의 표시를 디스플레이하지 않는다. 예시적인 응용에서, 메타데이터 업데이트가 사용자 변경과 충돌한다. 따라서, 제작 응용 프로그램은 제1 사용자에게 콘텐츠 업데이트를 인스턴스화할 기회를 제공하지 않는다.
도 17에서, 제1 사용자는 데이터 파일의 사용자 사본을 마스터 사본과 동기화시키려고 시도하라고 제작 응용 프로그램에 명령한다[도 3의 동기화 동작(310)을 참조]. 일 실시예에서, 제작 응용 프로그램은 도 5에 도시된 동기화 프로세스(500)를 구현한다. 제작 응용 프로그램은 적절한 경우 마스터 사본으로부터 업데이트를 획득하고[도 5의 획득 동작(504)을 참조] 임의의 편집 충돌이 업데이트로 인한 것인지 여부를 판정한다[도 5의 식별 동작(506)을 참조]. 도시된 일례에서, 제작 응용 프로그램은 어떤 새 업데이트도 획득하지 않는다(즉, 마지막 업데이트 이후로 마스터 사본에 대해 어떤 중간 변경들도 행해지지 않았다). 제작 응용 프로그램은 이전에 수신된 업데이트로 표현되는 중간 변경들이 사용자 변경들과 충돌하는 것으로 판정한다.
이어서, 제작 응용 프로그램은 데이터 파일의 사용자 사본을 데이터 파일의 마스터 사본과 병합시키고[도 5의 병합 동작(508)을 참조] 데이터 파일의 병합된 사본을 제1 사용자에게 디스플레이한다. 도시된 일례에서, 제작 응용 프로그램은 도 17의 편집 영역(2012)에 데이터 파일의 병합된 버전을 디스플레이한다. 일반적으로, 제작 응용 프로그램은 임의의 원하는 병합 기법을 사용하여 사용자 사본 및 마스터 사본을 통합시킬 수 있다. 예를 들어, 일 실시예에서, 제작 응용 프로그램은 데이터 파일의 사용자 사본 및 데이터 파일의 마스터 사본에 추가된, 그로부터 삭제된 또는 그에서 수정된 모든 콘텐츠를 디스플레이한다.
다른 실시예에서, 제작 응용 프로그램은 마스터 사본에 의해 표현된 데이터 파일의 버전을 결정할 수 있고 또 데이터 파일의 마스터 사본 버전의 잠금 해제된 데이터 단위들에 대해 사용자 사본으로부터의 임의의 콘텐츠 또는 서식 추가, 삭제 및/또는 수정을 수행할 수 있다(즉, 병합가능 충돌을 인스턴스화한다). 마스터 사본 상의 잠금된 데이터 단위들에 대한 사용자 편집(예를 들어, 잠금을 나타내는 메타데이터 업데이트를 수신하기 전에 수행된 사용자 편집) 등의 병합불가능 충돌의 경우, 제작 응용 프로그램은 잠금된 데이터 단위에 인접하여 똑같은 데이터 단위를 추가할 수 있고 사용자 사본에서 행해진 수정들에 기초하여 똑같은 데이터 단위를 수정할 수 있다(예를 들어, 콘텐츠를 수정, 콘텐츠 잠금을 추가, 기타를 할 수 있다). 따라서, 마스터 사본의 상태에 따라 데이터 단위가 잠금되어 변경되지 않은 채로 있다. 그렇지만, 제1 사용자에 의한 데이터 단위에 대한 변경들은 제1 사용자가 그들을 제거하기로 할 때까지 데이터 파일의 병합된 버전에 유지된다.
도 17에 도시된 일례에서, 제1 데이터 단위는 제2 사용자에 의해 잠금되어 있고(잠금(202) 참조), 제2 사용자에 의해 수행된 편집 동작들에 의해 변경된 것으로 나타내어져 있다. 예를 들어, 두번째로 나오는 단어 "lazy"가 "lively"로 변경되었다. 제1 데이터 단위와 똑같은 것이 발생되어 제1 데이터 단위에 인접하여 배치되었다. 이 똑같은 것이 제1 사용자에 대해 잠금되어 있고[잠금(2024)을 참조] 동기화하려는 시도 이전에 제1 사용자에 의해 행해진 수정들을 포함하고 있다(예를 들어, 두번째로 나오는 "dog"가 "doe"로 변경되었음). 도 17에서 제2 데이터 단위가 여전히 제2 사용자에 대해 잠금되어 있다. 일 실시예에서, 제작 응용 프로그램은 사용자 사본이 마스터 사본과 동기화되어 있을 때에만 잠금을 해제한다. 다른 실시예에서, 제작 응용 프로그램은 잠금된 데이터 단위가 완전히 동기화되어 있을 때에만 잠금을 해제한다. 다른 실시예들에서, 제작 응용 프로그램은 잠금이 해제되었다는 것을 나타낼 수 있다.
제작 응용 프로그램이 편집 충돌을 식별하였기 때문에, 제작 응용 프로그램은 계속하여 마스터 사본에 저장하지 않는다[도 5의 제1 판정 모듈(510)을 참조]. 오히려, 제작 응용 프로그램은 제1 사용자에게 편집 충돌의 존재를 통지하기 위해 하나 이상의 경보 메시지들을 디스플레이한다[도 5의 경보 동작(512)을 참조]. 예를 들어, 도 17에서, 제1 사용자에게 편집 충돌의 존재를 알려주기 위해 경보(2017)가 디스플레이 창(2010)에 디스플레이된다. 도시된 일례에서, 편집 충돌의 존재를 나타내기 위해 상태 표시줄(2018)도 역시 업데이트되어 있다. 다른 실시예들에서, 아직 인스턴스화되지 않은 업데이트들의 수, 식별된 편집 충돌의 수, 또는 기타 이러한 정보를 나타내기 위해 상태 표시줄(2018)이 업데이트될 수 있다. 또 다른 실시예들에서, 다른 유형의 경보 또는 표식이 편집 충돌의 존재의 통지를 제1 사용자에게 제공할 수 있다.
제작 응용 프로그램은 또한 사용자가 충돌을 조사하지 않고 데이터 파일을 계속 편집하는 것과 편집 충돌을 검토하는 것 중에서 선택할 수 있게 해주기 위해[제2 판정 모듈(514)을 참조] 도 17에서 토글 인터페이스(2015)를 제1 사용자에게 제공한다. 제1 사용자는 편집 충돌을 검토하지 않고 데이터 파일을 계속 편집하기로 할 수 있다[도 5의 계속 동작(516)을 참조]. 제1 사용자는 또한 편집 충돌을 보여주도록 토글 인터페이스(2015)를 선택하기로 할 수 있다[도 5의 검토 동작(518)을 참조]. 일 실시예에서, 토글 인터페이스(2015)의 선택은 또한 요약 창(2030)을 활성화시킨다. 제1 사용자가 편집 충돌을 조사하기로 하는지 여부에 상관없이, 제1 사용자가 데이터 파일의 병합된 버전을 계속 편집할 수 있다.
제작 응용 프로그램이 도 5의 검토 동작(518)을 구현할 수 있는 한 예시적인 프로세스는 도 7의 검토 프로세스(700)를 포함한다. 사용자가 토글 인터페이스(2015)(도 17)를 선택할 때, 제작 응용 프로그램은 편집 충돌을 사용자에게 제시한다[도 7의 디스플레이 동작(704)을 참조]. 예를 들어, 일 실시예에서, 토글 인터페이스(2015)를 선택하면 디스플레이 창(2010)이 편집 영역(2012)과 편집 충돌이 열거되어 있고[도 18의 목록(2034)을 참조] 충돌에 관한 요약 정보가 디스플레이될 수 있는[도 18의 요약 영역(2032)을 참조] 요약 창(2030)으로 분리된다.
일반적으로, 편집 영역(2012)은 데이터 파일의 병합된 버전을 디스플레이하고 사용자가 병합된 버전을 자유롭게 편집할 수 있도록 해준다. 어떤 실시예들에서, 콘텐츠의 어느 부분이 충돌하고 있는지를 나타내기 위해 편집 영역(2012)에 디스플레이되는 데이터 파일의 병합된 버전에 주석이 달려 있다. 예를 들어, 일 실시예에서, 충돌 콘텐츠가 삽입(예를 들어, 밑줄 또는 기타 서식, 텍스트 색상, 강조, 또는 기타 이러한 표식을 통함) 또는 삭제(예를 들어, 취소선 또는 기타 서식, 텍스트 색상, 강조 또는 기타 이러한 표식을 통함)로부터 생긴 것인지를 나타내기 위해 데이터 파일의 병합된 버전에 주석이 달려 있다.
도시된 일례에서, 콘텐츠에 대한 수정은 일련의 삭제 및 삽입으로 나타내어진다. 그렇지만, 다른 실시예들에서, 콘텐츠에 대한 수정에 다르게 주석이 달려 있을 수 있다. 다른 실시예들에서, 메타데이터의 어느 부분이 충돌하는지를 나타내기 위해 메타데이터(예를 들어, 잠금)에도 주석이 달려 있을 수 있다. 도 18에 도시된 일례에서, 제1 데이터 단위가 서버 상에서 제2 사용자에 대해 잠금되어 있기 때문에, 제1 데이터 단위는 어떤 편집 충돌도 포함하지 않는다. 따라서, 제1 데이터 단위에 주석이 달려 있지 않다. 데이터 단위가 데이터 파일에 삽입되었다는 것을 나타내기 위해, 도 18에서 제1 사용자에 대해 잠금되어 있는 것으로 나타내어져 있는 똑같은 데이터 단위에 밑줄이 그어져 있다.
충돌하는 편집 동작이 또한 요약 창(2030)에 의해 디스플레이된다. 해결 인터페이스의 요약 영역(2032)은 데이터 파일의 병합된 버전 내에 포함된 충돌하는 편집 동작들의 수를 나타낸다. 도시된 일례에서, 요약 영역(2032)은 하나의 충돌하는 편집 동작이 식별되었다는 것을 나타낸다. 요약 창(2030)의 목록(2034)이 충돌 콘텐츠를 디스플레이한다. 일 실시예에서, 목록(2034)은 비충돌 콘텐츠와 별도로 충돌 콘텐츠를 디스플레이한다. 다른 실시예에서, 목록(2034)은 콘텐츠가 삽입 및/또는 삭제되었는지를 나타내기 위해 충돌 콘텐츠에 주석을 단다[도 18의 표식(2036)을 참조]. 다른 실시예에서, 목록(2034)은 충돌 콘텐츠의 출처(예를 들어, 사용자 사본 또는 마스터 사본)를 나타내기 위해 충돌 콘텐츠에 주석을 단다[도 18의 표식(2038)을 참조].
제작 응용 프로그램의 제1 사용자는 데이터 파일의 편집으로 돌아가거나 디스플레이된 편집 충돌들 중 임의의 충돌을 해결하라는[도 7의 제1 판정 모듈(708)을 참조] 명령을 제공하기 위해[도 7의 획득 동작(706)을 참조] 편집 영역(2012) 또는 요약 창(2030)(도 18)과 상호작용할 수 있다. 예를 들어, 일 실시예에서, 사용자는 편집 충돌을 숨기기 위해 또다시 토글 인터페이스(2015)를 선택할 수 있다. 충돌을 숨기기로 하면 편집 충돌로부터 주석이 제거된다. 일 실시예에서, 편집 충돌을 숨기기로 하면 도 17의 사용자 인터페이스(2000)가 디스플레이된다. 동기화 프로세스(700)가 종료되고[도 7의 종료 모듈(714)을 참조], 제작 응용 프로그램은 적어도 하나의 편집 충돌이 미해결된 채로 있는 것으로 판정하고[도 5의 제1 판정 모듈(510)을 참조], 제1 사용자가 또다시 데이터 파일을 자유롭게 편집하는 것과 충돌을 해결하는 것 중에서 선택할 수 있게 된다.
다른 대안으로서, 제1 사용자는 충돌 콘텐츠 또는 그의 일부를 수락 또는 거부하라는 명령을 제공할 수 있다. 일 실시예에서, 제1 사용자는 디스플레이 창(2010)의 편집 영역(2012) 내에 디스플레이된 콘텐츠를 선택할 수 있고 편집 동작을 해결하라는 명령을 제공하기 위해 해결 인터페이스 상의 옵션을 선택할 수 있다. 예를 들어, 제1 사용자는 명령이 제공되어야 하는 콘텐츠를 선택할 수 있고, 해결 메뉴(2040)으로부터 메뉴 옵션을 선택할 수 있다(도 19 참조). 다른 실시예들에서, 제1 사용자는 다른 유형의 해결 인터페이스 도구를 사용하여 해결 명령을 제공할 수 있다.
도 19에 도시된 일례에서, 제1 사용자는 충돌 컨텐츠의 제1 부분을 선택하고[선택 표식(2013)을 참조] 커서(2019)를 통해 해결 메뉴(2040) 상의 거부 옵션을 선택한다. 따라서, 제작 응용 프로그램은 사용자가 편집으로 돌아가라는 명령을 제공하지 않은 것으로 판정하고[도 7의 제1 판정 모듈(708)을 참조] 해결 명령을 수행한다[도 7의 구현 동작(710)을 참조]. 다른 실시예들에서, 제1 사용자는 충돌 콘텐츠의 전부 또는 다른 부분을 선택했을 수 있다.
제작 응용 프로그램이 충돌 콘텐츠의 선택된 부분의 거부를 수행할 수 있는 한 예시적인 프로세스는 도 14의 거부 프로세스(1200)이다. 제작 응용 프로그램은 디스플레이 창(2010)의 편집 영역(2012)에서 선택된 충돌 콘텐츠로부터 주석을 제거한다[도 14의 정리 동작(1204)을 참조]. 제작 응용 프로그램은 또한 거부된 편집 동작으로 인해 선택된 충돌 콘텐츠가 데이터 파일에 추가된 것으로 판정한다[도 14의 판정 모듈(1206)을 참조]. 따라서, 제작 응용 프로그램은 데이터 파일의 병합된 버전으로부터 선택된 충돌 콘텐츠를 제거한다[도 14의 제거 동작(1208)을 참조]. 편집 동작으로 인해 콘텐츠가 삭제된 경우, 선택된 충돌 콘텐츠를 데이터 파일로부터 제거하지 않고 거부 프로세스(1200)가 종료될 것이다.
도 7의 검토 프로세스(700)로 돌아가서, 제작 응용 프로그램은 식별된 편집 충돌들 중 적어도 하나가 미해결된 채로 있는 것으로 판정하여[도 7의 제2 판정 모듈(712)을 참조], 검토 프로세스(700)를 재시작한다. 검토 프로세스(700)를 재시작함으로써, 사용자 인터페이스가 충돌 해결 모드로 구성되어 있는 동안에 제1 사용자는 [도 7의 검토 프로세스(700)를 사용하여] 편집 충돌을 계속 해결하기로 할 수 있다. 다른 대안으로서, 제1 사용자는 토글 인터페이스(2015)를 선택함으로써 언제라도 편집 충돌을 숨기기로 할 수 있다.
도 20은 제1 사용자가 선택된 충돌 콘텐츠를 거부한 이후의 사용자 인터페이스(2000)를 나타낸 것이다[도 7의 디스플레이 동작(704)을 참조]. 거부된 충돌 콘텐츠가 편집 영역(2012)으로부터 제거되었다. 게다가, 제작 응용 프로그램은 요약 창(2030) 내의 목록(2034)으로부터 거부된 콘텐츠를 제거함으로써 충돌 콘텐츠의 해결을 반영하기 위해 요약 창(2030)을 업데이트한다. 충돌 콘텐츠가 완전히 해결되지 않았기 때문에, 요약 영역(2032)이 변경되지 않은 채로 있다.
계속하여 검토 프로세스(700)에서, 제작 응용 프로그램은 제1 사용자로부터 다른 일련의 명령을 획득한다[도 7의 획득 동작(706)을 참조]. 이 예시적인 응용에서, 제작 응용 프로그램은 나머지 충돌 콘텐츠를 해결하라는 명령을 획득한다. 예를 들어, 도 21은 제1 사용자가 제작 응용 프로그램에 해결 명령을 제공할 수 있는 다른 해결 인터페이스(2050)를 나타낸 것이다. 해결 인터페이스(2050)는 해결 옵션들(예를 들어, 수락, 거부, 기타)을 열거하는 메뉴이다. 이 메뉴는 선택된 충돌 콘텐츠에 인접하여 배치된다. 일 실시예에서, 제작 응용 프로그램은 사용자가 요약 창(2030) 내의 목록(2034)로부터 충돌하는 편집을 선택할 때 해결 인터페이스(2050)를 디스플레이한다. 다른 실시예에서, 제작 응용 프로그램은 편집 영역(2012) 내에서 충돌 콘텐츠가 선택될 때 편집 영역(2012) 내에 해결 인터페이스(2050)를 디스플레이할 수 있다. 그렇지만, 다른 실시예들에서, 제1 사용자는 제작 응용 프로그램에 해결 명령을 제공하기 위해 임의의 원하는 유형의 해결 인터페이스를 사용할 수 있다.
도 21에서, 사용자는 요약 창(2030)의 목록(2034) 내에서 나머지 충돌 콘텐츠를 선택하고(예를 들어, 우측 마우스 클릭을 통해, 좌측 마우스 클릭을 통해, 마우스로 가리켜, 또는 다른 입력 장치를 통해 다른 방식으로 선택함), 해결 인터페이스(2050) 상에서 수락 옵션을 [예를 들어, 커서(2019)를 사용하여] 선택한다. 따라서, 제작 응용 프로그램은 제1 사용자가 편집 충돌을 숨기고 편집으로 돌아가라는 명령을 제공하지 않은 것으로 판정하고[도 7의 판정 모듈(708)을 참조] 수락 명령을 구현한다[도 7의 구현 동작(710)을 참조].
제작 응용 프로그램이 선택된 충돌 콘텐츠를 수락할 수 있는 한 예시적인 프로세스가 도 13의 수락 프로세스(1100)를 포함한다. 제작 응용 프로그램은 선택된 충돌 콘텐츠로부터 임의의 주석을 제거한다[도 13의 정리 동작(1104)을 참조]. 제작 응용 프로그램은 선택된 충돌 콘텐츠가 데이터 파일에 삽입된 것으로 판정한다[도 13의 판정 모듈(1106)을 참조]. 따라서, 수락 프로세스(1100)이 완료되어 종료된다[도 13의 종료 모듈(1110)을 참조]. 제작 응용 프로그램이 충돌 콘텐츠가 데이터 파일로부터 삭제된 것으로 판정한 경우, 제작 응용 프로그램은 데이터 파일로부터 충돌 콘텐츠를 삭제하게 된다[도 13의 제거 동작(1108)을 참조].
도 7의 검토 프로세스(700)로 돌아가서, 제작 응용 프로그램은 미해결된 편집 충돌이 더 이상 남아 있지 않는 것으로 판정한다[제2 판정 모듈(712)을 참조]. 따라서, 검토 프로세스(700)가 완료되어 종료되고[도 7의 종료 모듈(714)을 참조], 도 5의 동기화 프로세스(500)의 검토 동작(514)을 완료한다. 동기화 프로세스(500)는 다시 제1 판정 모듈(510)로 진행하여, 제작 응용 프로그램은 임의의 식별된 편집 충돌이 미해결된 채로 있는지 여부를 판정한다.
이 예시적인 응용에서 제1 사용자가 모든 식별된 편집 충돌을 해결하였기 때문에, 제작 응용 프로그램은 어떤 편집 충돌도 미해결인 채로 있지 않는 것으로 판정한다. 따라서, 제작 응용 프로그램은 부가의 업데이트가 이용가능하지 여부를 판정하기 위해 마스터 사본을 검사한다[도 5의 제2 판정 모듈(520)을 참조]. 부가의 업데이트가 이용가능하게 되면, 동기화 프로세스(500)는 새 업데이트를 획득하고 병합하기 위해 다시 순환한다. 새 업데이트는 이전의 업데이트가 획득된 이후로 행해진 모든 중간 변경들을 포함한다. 새 업데이트로 인한 모든 충돌이 상기한 바와 같이 해결된다. 업데이트를 획득하고 임의의 식별된 충돌을 해결하는 이 프로세스는 제1 사용자가 데이터 파일의 사용자 사본과 데이터 파일의 마스터 사본의 현재 상태 간의 모든 편집 충돌을 해결할 때까지 반복된다.
제작 응용 프로그램이 어떤 편집 충돌도 존재하지 않고[도 5의 제1 판정 모듈(510)을 참조] 어떤 새 업데이트도 이용가능하지 않은 것으로 판정할 때[도 5의 제2 판정 모듈(520)을 참조], 제작 응용 프로그램은 사용자 사본과 마스터 사본의 동기화를 완료하기 위해 사용자 사본으로부터의 업데이트를 마스터 사본으로 전송한다[도 5의 저장 동작(522)을 참조]. 예를 들어, 일 실시예에서, 제작 응용 프로그램은 마스터 사본을 덮어쓰기하라는 명령에 의해 사용자 사본 전체를 저장 장치로 전송할 수 있다. 다른 실시예에서, 제작 응용 프로그램은 사용자 사본이 마스터 사본과 어떻게 다른지를 나타내는 증분 업데이트(incremental update)를 보낼 수 있다.
제작 응용 프로그램이 업데이트를 마스터 사본에 성공적으로 업로드할 때, 제작 응용 프로그램은 제1 사용자에게 경보를 한다[도 5의 표시 동작(524)을 참조]. 예를 들어, 도 22에서, 업데이트가 성공적으로 전송되었다는 것을 나타내기 위해 상태 표시줄(2018)이 업데이트되었다. 어떤 실시예들에서, 제작 응용 프로그램은 또한 업로드의 성공을 나타내는 경보 창(2060)을 디스플레이할 수 있다. 일 실시예에서, 경보 창(2060)은 추가의 설명을 제공할 수 있다(예를 들어, 업로드의 결과를 나타냄). 도 22에 도시된 일례에서, 어떤 편집 충돌도 식별되지 않았기 때문에, 요약 창(2030)이 사용자 인터페이스로부터 제거되어 있다. 그렇지만, 다른 실시예들에서, 제1 사용자에 의해 토글될 때까지 요약 창(2030)이 남아 있을 수 있다.
제1 사용자가 데이터 파일을 오프라인으로 편집하고 있는 제2 예시적인 응용이 도 23 내지 도 29에 제공되어 있다. 도 23에서, 제작 응용 프로그램의 사용자 인터페이스(2200)는 데이터 파일의 사용자 사본의 콘텐츠를 디스플레이하는 편집 영역(2212), 명령 옵션을 제공하는 명령 도구모음(2216), 및 데이터 파일의 사용자 사본의 상태를 나타내는 상태 표시줄(2218)을 포함하는 디스플레이 창(2210)을 포함한다. 예를 들어, 사용자 인터페이스(2200)는 도 15의 사용자 인터페이스(2000)와 동일할 수 있다.
도시된 일례에서, 상태 표시줄(2218)은 제1 사용자가 데이터 파일의 사용자 사본을 오프라인으로(즉, 데이터 파일의 마스터 사본을 저장하는 저장 장치에 통신 연결되어 있지 않음) 편집하고 있다는 것을 나타내고 있다. 다른 사용자가 편집 영역(2212) 내의 제1 데이터 단위에 대한 잠금(2222)을 가지고 있다. 따라서, 제작 응용 프로그램은 제1 사용자가 제1 데이터 단위를 편집하지 못하게 한다.
제작 응용 프로그램은, 예를 들어, 도 3의 예시적인 작성 프로세스(300)를 사용하여, 데이터 파일의 사용자 사본을 편집하는 것을 가능하게 해준다. 도시된 일례에서, 제작 응용 프로그램은 제1 사용자가 디스플레이 창(2010)의 편집 영역(2012) 내에서 데이터 파일의 사용자 사본을 자유롭게 편집할 수 있게 해준다[도 3의 편집 동작(304) 참조]. 도 24는 데이터 파일의 사용자 사본에 대해 제1 사용자에 의해 행해진 편집 변경들을 나타낸 것이다. 상세하게는, 제1 사용자가 2개의 문장을 제3 데이터 단위에 추가하였다. 그렇지만, 다른 실시예들에서, 제1 사용자가 데이터 파일의 사용자 사본 내에서 임의의 콘텐츠 또는 메타데이터를 추가, 수정 및/또는 삭제했을 수 있다.
제1 사용자가 사용자 사본을 오프라인으로 편집하고 있기 때문에, 제작 응용 프로그램은 제3 데이터 단위에 대한 잠금 요청을 동기화시킬 수 없다. 일 실시예에서, 제작 응용 프로그램은 사용자가 온라인으로 로그할 때까지 잠금 요청을 저장한다. 이러한 실시예에서, 제작 응용 프로그램은 제3 데이터 단위 주변에 잠금을 디스플레이할 수 있다. 다른 실시예에서, 제작 응용 프로그램은 제3 데이터 단위를 잠금하려고 시도하지 않는다. 일 실시예에서, 제작 응용 프로그램은 잠금 요청이 동기화될 수 없다는 것과 따라서 데이터 단위를 편집하는 것으로 인해 편집 충돌이 생길 수 있다는 것을 제1 사용자에게 경보한다. 이 예시적인 응용의 목적상, 제작 응용 프로그램은 마스터 사본과의 나중의 동기화를 위해 잠금 요청을 저장한다.
도 25에서, 제작 응용 프로그램은 데이터 파일의 마스터 사본에 행해진 중간 변경들을 나타내는 업데이트를 획득한다[도 3의 수신 동작(306)을 참조]. 일 실시예에서, 제작 응용 프로그램은 미리 정해진 시간 간격이 만료된 후에 업데이트를 수신한다. 다른 실시예에서, 제작 응용 프로그램은 사용자 사본을 마스터 사본과 동기화시키라는 요청에 응답하여 업데이트를 수신한다. 이 예시적인 응용의 목적상, 제작 응용 프로그램은 미리 정해진 시간 간격 후에 업데이트를 자동으로 수신한 것으로 가정된다. 디스플레이 창(2210)의 상태 표시줄(2218)이 도 25에서 업데이트가 수신된 것을 나타내도록 업데이트되어 있다.
제작 응용 프로그램이 업데이트를 수신할 때, 제작 응용 프로그램은 사용자 사본과 수신된 업데이트 사이에 어떤 편집 충돌이 존재하는지 여부를 판정한다. 어떤 편집 충돌도 존재하지 않는 경우, 제작 응용 프로그램은 메타데이터 업데이트를 자동으로 인스턴스화한다[도 3의 업데이트 동작(308)을 참조]. 이 예시적인 응용의 목적상, 제작 응용 프로그램은 제3 데이터 단위에 대한 제1 사용자의 잠금 요청과 충돌하는 제3 데이터 단위에 행해진 변경들을 나타내는 콘텐츠 업데이트를 수신한 것으로 가정된다. 그렇지만, 이 업데이트는 제3 데이터 단위 주변에 잠금을 나타내지 않는다(예를 들어, 다른 사용자가 편집을 하고 있을 때 제3 데이터 단위를 잠금했고 나중에 잠금을 해제했을 수 있다). 따라서, 제작 응용 프로그램은 제1 사용자에게 인스턴스화 인터페이스를 제공하지 않거나 다른 방식으로 업데이트의 인스턴스화를 금지한다.
도 26에서, 제1 사용자는 저장 장치에 연결하고(즉, 온라인 로그하고) 데이터 파일의 사용자 사본을 마스터 사본과 동기화시키려고 시도하라고 제작 응용 프로그램에 명령한다[도 3의 동기화 동작(310)을 참조]. 일 실시예에서, 제작 응용 프로그램은 도 5에 도시된 동기화 프로세스(500)를 구현한다. 제작 응용 프로그램은 적절한 경우 마스터 사본으로부터 업데이트를 획득하고[획득 동작(504)을 참조] 임의의 편집 충돌이 업데이트로 인한 것인지 여부를 판정한다[식별 동작(506)을 참조]. 도시된 일례에서, 제작 응용 프로그램은 어떤 새 업데이트도 획득하지 않는다(예를 들어, 마지막 업데이트 이후로 마스터 사본에 대해 어떤 중간 변경들도 행해지지 않았다). 제작 응용 프로그램은 이전에 수신된 업데이트로 표현된 중간 변경들(예를 들어, 제3 데이터 단위에 대한 추가된 콘텐츠)이 사용자 변경들(예를 들어, 제3 데이터 단위에 대한 잠금 요청)과 충돌하는 것으로 판정한다.
이어서, 제작 응용 프로그램은 데이터 파일의 사용자 사본을 데이터 파일의 마스터 사본과 병합시키고[도 5의 병합 동작(508)을 참조] 데이터 파일의 병합된 사본을 제1 사용자에게 디스플레이한다. 도시된 일례에서, 제작 응용 프로그램은 도 26의 편집 영역(2212)에 데이터 파일의 병합된 버전을 디스플레이한다. 상기한 바와 같이, 제작 응용 프로그램은 임의의 원하는 병합 기법을 사용하여 사용자 사본 및 마스터 사본을 통합시킬 수 있다. 도시된 일례에서, 제작 응용 프로그램은 마스터 사본으로부터의 새 콘텐츠를 사용자 사본의 제1 및 제3 데이터 단위에 추가하였다.
제1 데이터 단위에 추가되었던 새 콘텐츠의 제1 세트 "TBD"로 인해 편집 충돌이 생기지 않는다. 제1 사용자는 제1 데이터 단위를 편집하지 않았다. 제1 사용자가 제3 데이터 단위를 잠금하려고 시도하였기 때문에 제3 데이터 단위에 추가되었던 새 콘텐츠의 제2 세트 "Jump, fox, jump!"로 인해 편집 충돌이 생긴다. 다른 사용자가 제3 데이터 단위를 편집했을 수 있는데, 그 이유는 제1 사용자의 잠금 요청이 그 편집 이전에 아직 마스터 사본과 동기화되지 않았기 때문이다. 그렇지만, 업데이트가 제3 데이터 단위가 다른 사용자에 의해 잠금되어 있다는 것을 나타내지 않기 때문에, 제1 사용자의 잠금이 제3 데이터 단위 주변에 유지된다.
제작 응용 프로그램이 편집 충돌을 식별하였기 때문에, 제작 응용 프로그램은 계속하여 마스터 사본에 저장하지 않는다[도 5의 제1 판정 모듈(510)을 참조]. 오히려, 제작 응용 프로그램은 제1 사용자에게 편집 충돌의 존재를 통지하기 위해 하나 이상의 경보 메시지들을 디스플레이한다[도 5의 경보 동작(512)을 참조]. 예를 들어, 도 26에서, 제1 사용자에게 편집 충돌의 존재를 알려주기 위해 경보(2217)가 디스플레이 창(2210)에 디스플레이된다. 도시된 일례에서, 편집 충돌의 존재를 나타내기 위해 상태 표시줄(2218)도 역시 업데이트되어 있다. 다른 실시예들에서, 아직 인스턴스화되지 않은 업데이트들의 수, 식별된 편집 충돌의 수, 또는 기타 이러한 정보를 나타내기 위해 상태 표시줄(2218)이 업데이트될 수 있다. 또 다른 실시예들에서, 다른 유형의 경보 또는 표식이 편집 충돌의 존재의 통지를 제1 사용자에게 제공할 수 있다.
제작 응용 프로그램은 또한 사용자가 편집 충돌을 조사하지 않고 데이터 파일을 계속 편집하는 것과 편집 충돌을 검토하는 것 중에서 선택할 수 있게 해주기 위해[도 5의 제2 판정 모듈(514)을 참조] 도 26에서 토글 인터페이스(2215)를 제1 사용자에게 제공한다. 제1 사용자는 편집 충돌을 검토하지 않고 데이터 파일을 계속 편집하기로 할 수 있다[도 5의 계속 동작(516)을 참조]. 제1 사용자는 또한 편집 충돌을 보여주도록 토글 인터페이스(2215)(도 26)를 선택하기로 할 수 있다[도 5의 검토 동작(518)을 참조]. 일 실시예에서, 토글 인터페이스(2215)의 선택은 또한 요약 창(2230)을 활성화시킨다(도 27 참조). 제1 사용자가 편집 충돌을 조사하기로 하는지 여부에 상관없이, 제1 사용자가 데이터 파일의 병합된 버전을 계속 편집할 수 있다.
제작 응용 프로그램이 도 5의 검토 동작(518)을 구현할 수 있는 한 예시적인 프로세스는 도 7의 검토 프로세스(700)를 포함한다. 사용자가 토글 인터페이스(2215)를 선택할 때, 제작 응용 프로그램은 편집 충돌을 사용자에게 제시한다[도 7의 디스플레이 동작(704)을 참조]. 예를 들어, 일 실시예에서, 토글 인터페이스(2215)를 선택하면 디스플레이 창(2210)이 편집 영역(2212)과 편집 충돌이 열거되어 있고[목록(2234)을 참조] 충돌에 관한 요약 정보가 디스플레이될 수 있는[요약 영역(2232)을 참조] 요약 창(2230)으로 분리된다.
일반적으로, 편집 영역(2212)은 데이터 파일의 병합된 버전을 디스플레이하고 사용자가 병합된 버전을 자유롭게 편집할 수 있도록 해준다. 어떤 실시예들에서, 콘텐츠의 어느 부분이 충돌하고 있는지를 나타내기 위해 편집 영역(2212)에 디스플레이되는 데이터 파일의 병합된 버전에 주석이 달려 있다. 예를 들어, 일 실시예에서, 충돌 콘텐츠가 삽입(예를 들어, 밑줄 또는 기타 서식, 글꼴 색상, 강조, 불투명도 또는 기타 이러한 표식을 통함) 또는 삭제(예를 들어, 취소선 또는 기타 서식, 글꼴 색상, 강조, 불투명도 또는 기타 이러한 표식을 통함)로부터 생긴 것인지를 나타내기 위해 데이터 파일의 병합된 버전에 주석이 달려 있다.
도시된 일례에서, 제1 데이터 단위가 서버 상에서 제2 사용자에 대해 잠금되어 있기 때문에, 제1 데이터 단위는 어떤 편집 충돌도 포함하지 않는다. 따라서, 제1 데이터 단위에 주석이 달려 있지 않다. 제2 데이터 단위가 또한 어떤 편집 충돌도 포함하지 않으며, 따라서 제2 데이터 단위에 주석이 달려 있지 않다. 콘텐츠가 데이터 단위에 삽입되었다는 것을 나타내기 위해, 제1 사용자에 대해 잠금된 것으로 나타내어져 있는 제3 데이터 단위 내의 어떤 콘텐츠에 밑줄이 그어져 있다.
일 실시예에서, 사용자 사본으로부터 나온 충돌 콘텐츠에만 주석이 달려 있다. 유익하게도, 사용자에 의해 야기된 충돌에만 주석을 다는 것에 의해 사용자가 데이터 파일의 마스터 사본의 상태 및 마스터 사본과 사용자 사본 간의 차이를 이해할 수 있다. 그렇지만, 다른 실시예들에서, 사용자 사본으로부터의 충돌 콘텐츠에 부가하여 또는 그 대신에, 마스터 사본으로부터 나온 충돌 콘텐츠에 주석이 달려 있을 수 있다.
충돌하는 편집 동작이 또한 요약 창(2230)에 의해 디스플레이된다. 해결 인터페이스의 요약 영역(2232)은 데이터 파일의 병합된 버전 내에 포함된 충돌하는 편집 동작들의 수를 나타낸다. 도시된 일례에서, 요약 영역(2232)은 하나의 충돌하는 편집 동작이 식별되었다는 것을 나타낸다. 요약 창(2230)의 목록(2234)이 충돌 콘텐츠를 디스플레이한다. 일 실시예에서, 목록(2234)은 비충돌 콘텐츠와 별도로 충돌 콘텐츠를 디스플레이한다. 다른 실시예에서, 목록(2234)은 콘텐츠가 삽입 및/또는 삭제되었는지를 나타내기 위해 충돌 콘텐츠에 주석을 단다[도 27의 표식(2236)을 참조]. 다른 실시예에서, 목록(2234)은 충돌 콘텐츠의 출처(예를 들어, 사용자 사본 또는 마스터 사본)를 나타내기 위해 충돌 콘텐츠에 주석을 단다[도 27의 표식(2238)을 참조].
제작 응용 프로그램의 제1 사용자는 데이터 파일의 편집으로 돌아가거나 디스플레이된 편집 충돌들 중 임의의 충돌을 해결하라는[도 7의 제1 판정 모듈(708)을 참조] 명령을 제공하기 위해[도 7의 획득 동작(706)을 참조] 해결 인터페이스[예를 들어, 도 27의 해결 인터페이스(2240)를 참조]와 상호작용할 수 있다. 예를 들어, 일 실시예에서, 사용자는 상기한 바와 같이 편집 충돌을 숨기기 위해 또다시 토글 인터페이스(2215)를 선택할 수 있다.
다른 대안으로서, 제1 사용자는 충돌 콘텐츠 또는 그의 일부를 수락 또는 거부하라는 명령을 제공할 수 있다. 일 실시예에서, 제1 사용자는 디스플레이 창(2010)의 편집 영역(2012) 내에 디스플레이된 콘텐츠를 선택할 수 있고 편집 동작을 해결하라는 명령을 제공하기 위해 해결 인터페이스(2240) 상의 옵션을 선택할 수 있다. 예를 들어, 제1 사용자는 명령이 제공되어야 하는 콘텐츠를 선택할 수 있고, 예시적인 해결 인터페이스(2040)로부터 수락 단추(2242) 또는 거부 단추(2244)를 선택할 수 있다(도 27 참조). 예시적인 해결 인터페이스(2040)는 또한 충돌들 간의 시퀀싱을 위해 다음 단추(2246) 및 이전 단추(2248)를 포함할 수 있다. 다른 실시예들에서, 제1 사용자는 다른 유형의 해결 인터페이스 도구를 사용하여 해결 명령을 제공할 수 있다.
도 28에 도시된 일례에서, 제1 사용자는 충돌 콘텐츠의 제1 부분을 선택하고[요약 창(2230) 내의 선택 표식(2213)을 참조] 커서(2219)를 통해 해결 인터페이스(2040) 상의 수락 단추(2242)를 선택한다. 그렇지만, 다른 실시예들에서, 제1 사용자는 임의의 원하는 해결 인터페이스를 통해 명령을 제공했을 수도 있다. 따라서, 제작 응용 프로그램은 사용자가 편집으로 돌아가라는 명령을 제공하지 않은 것으로 판정하고[도 7의 제1 판정 모듈(708)을 참조] 해결 명령을 수행한다[도 7의 구현 동작(710)을 참조].
제작 응용 프로그램이 선택된 충돌 콘텐츠를 수락할 수 있는 한 예시적인 프로세스가 도 13의 수락 프로세스(1100)를 포함한다. 제작 응용 프로그램은 선택된 충돌 콘텐츠로부터 임의의 주석을 제거한다[도 13의 정리 동작(1104)을 참조]. 제작 응용 프로그램은 선택된 충돌 콘텐츠가 데이터 파일에 삽입된 것으로 판정한다[도 13의 판정 모듈(1106)을 참조]. 따라서, 수락 프로세스(1100)이 완료되어 종료된다[도 13의 종료 모듈(1110)을 참조]. 제작 응용 프로그램이 충돌 콘텐츠가 데이터 파일로부터 삭제된 것으로 판정한 경우, 제작 응용 프로그램은 데이터 파일로부터 충돌 콘텐츠를 삭제하게 된다[도 13의 제거 동작(1108)을 참조].
도 7의 검토 프로세스(700)로 돌아가서, 제작 응용 프로그램은 미해결된 편집 충돌이 더 이상 남아 있지 않는 것으로 판정한다[도 7의 제2 판정 모듈(712)을 참조]. 따라서, 검토 프로세스(700)가 완료되어 종료되고[도 7의 종료 모듈(714)을 참조], 도 5의 동기화 프로세스(500)의 검토 동작(514)을 완료한다. 동기화 프로세스(500)는 다시 제1 판정 모듈(510)(도 5)로 진행하여, 제작 응용 프로그램은 어떤 편집 충돌도 미해결된 채로 있지 않은 것으로 판정한다. 제작 응용 프로그램은 또한 어떤 부가의 업데이트도 마스터 사본으로부터 이용가능하지 않은 것으로 판정하고[도 5의 제2 판정 모듈(520)을 참조], 따라서 사용자 사본과 마스터 사본의 동기화를 완료하기 위해 사용자 사본으로부터의 업데이트를 마스터 사본으로 전송한다[도 5의 저장 동작(522)을 참조].
제작 응용 프로그램이 업데이트를 마스터 사본에 성공적으로 업로드할 때, 제작 응용 프로그램은 제1 사용자에게 경보를 한다[도 5의 표시 동작(524)을 참조]. 예를 들어, 도 29에서, 업데이트가 성공적으로 전송되었다는 것을 나타내기 위해 상태 표시줄(2218)이 업데이트되었다. 어떤 실시예들에서, 제작 응용 프로그램은 또한 업로드의 성공을 나타내는 경보 창(2260)을 디스플레이할 수 있다. 일 실시예에서, 경보 창(2260)은 추가의 설명을 제공할 수 있다(예를 들어, 성공적인 업로드의 결과를 나타냄). 도 29에 도시된 일례에서, 어떤 식별된 편집 충돌도 미해결된 채로 있지 않기 때문에, 요약 창(2230)이 사용자 인터페이스(2200)로부터 제거되어 있다. 그렇지만, 다른 실시예들에서, 요약 창(2230)이 [예를 들어, 도 27 및 도 28의 토글 인터페이스(2215)를 통해] 제1 사용자에 의해 비활성화될 때까지 남아 있을 수 있다.
본 발명의 실시예들이 컴퓨터 프로세스(방법), 컴퓨팅 시스템, 또는 제조 물품(컴퓨터 프로그램 제품 또는 컴퓨터 판독가능 매체 등)으로서 구현될 수 있다. 이 프로세스들(프로그램들)은 본 문서에 기술된 구조들을 포함하는 임의의 수의 방식으로 구현될 수 있다. 한가지 이러한 방식은 본 문서에 기술된 유형의 장치들의 기계 동작에 의한다. 다른 선택적인 방식은 이 방법들의 개별적인 동작들 중 하나 이상의 동작들이 그 동작들 중 어떤 동작들을 수행하는 하나 이상의 사람 조작자와 관련하여 컴퓨팅 장치 상에서 수행되는 것이다. 이들 사람 조작자가 서로 같은 장소에 있을 필요가 없고, 각각의 조작자가 프로그램의 일부분을 수행하는 기계에만 있을 수 있다.
컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 프로세스를 실행하는 명령어들의 컴퓨터 프로그램을 인코딩하는 컴퓨터 저장 매체일 수 있다. 컴퓨터 프로그램 제품은 또한 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 프로세스를 실행하는 명령어들의 컴퓨터 프로그램을 인코딩하는 반송파 상의 전파 신호(propagated signal)일 수 있다. 컴퓨터-판독가능 매체라는 용어는, 본 명세서에서 사용되는 바와 같이, 저장 매체 및 통신 매체 둘다를 포함한다.
당업자라면 본 발명이 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 또는 프로그램가능 가전 제품, 미니컴퓨터, 메인프레임 컴퓨터, 기타 등등을 비롯한 기타 컴퓨터 시스템 구성에서 실시될 수 있다는 것을 잘 알 것이다. 본 발명은 또한 작업들이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈들이 로컬 및 원격 메모리 저장 장치 둘다에 위치할 수 있다. 일반적으로, 프로그램 모듈들은 특정의 작업들을 수행하거나 특정의 추상 데이터 유형들을 구현하는 루틴, 프로그램, 구성요소, 데이터 구조, 및 기타 유형의 구조체를 포함한다.

Claims (20)

  1. 데이터 파일을 공동으로 작성하는(collaboratively authoring) 방법으로서,
    제1 컴퓨팅 장치상에 구현되는 제1 제작 응용 프로그램(first authoring application)에서, 상기 데이터 파일의 사용자 사본과 상기 데이터 파일의 마스터 사본 사이에 존재하는 편집 충돌을 식별하는 단계,
    상기 데이터 파일의 병합된 사본을 생성하기 위해 상기 데이터 파일의 상기 사용자 사본과 상기 데이터 파일의 상기 마스터 사본을 병합하는 단계,
    상기 데이터 파일의 상기 병합된 사본을 상기 제1 제작 응용 프로그램의 사용자에게 디스플레이하는 단계,
    상기 사용자가 상기 식별된 편집 충돌을 디스플레이하는 것과 상기 식별된 편집 충돌을 숨기는 것 사이에서 토글할 수 있게 해주는 토글 인터페이스를 상기 사용자에게 제시하는 단계 - 상기 토글 인터페이스는 상기 편집 충돌이 식별될 때 제시되고 상기 식별된 편집 충돌이 해결될 때까지 남아 있으며, 상기 데이터 파일의 상기 병합된 사본은 상기 식별된 편집 충돌이 디스플레이될 때에도 상기 식별된 편집 충돌이 숨겨질 때에도 상기 사용자에 의해 자유롭게 편집가능함 -, 및
    콘텐츠 잠금을 디스플레이하는 것과 상기 식별된 편집 충돌을 나타내기 위해 주석이 달린 사용자 콘텐츠를 디스플레이하는 것을 포함하여 상기 데이터 파일의 상기 사용자 사본을 제시하도록 구성된 해결 인터페이스를 제공하는 단계- 상기 해결 인터페이스는 상기 사용자가 상기 식별된 편집 충돌에 대한 해결 명령을 제공할 수 있게 함 -
    를 포함하되,
    상기 사용자가 해결 명령을 제공할 수 있게 하는 것은,
    상기 해결 인터페이스 상에, 수락 옵션 및 거부 옵션을 디스플레이하는 것- 상기 수락 옵션은 수락 제어를 포함하고, 상기 거부 옵션은 거부 제어를 포함하며, 상기 해결 인터페이스는 상기 식별된 편집 충돌이 선택되는 경우 디스플레이됨 -, 및
    상기 사용자가 상기 식별된 편집 충돌이 수락되도록 하는 상기 수락 제어 및 상기 식별된 편집 충돌이 거부되도록 하는 상기 거부 제어를 선택할 수 있게 하는 것
    을 포함하는, 방법.
  2. 제1항에 있어서,
    상기 제1 제작 응용 프로그램에서, 상기 데이터 파일의 상기 사용자 사본과 상기 데이터 파일의 상기 마스터 사본 사이에 존재하는 복수의 편집 충돌을 식별하는 단계를 더 포함하고,
    상기 토글 인터페이스를 상기 사용자에게 제시하는 단계는 상기 사용자가 상기 편집 충돌들을 디스플레이하는 것과 상기 편집 충돌들을 숨기는 것 사이에서 토글할 수 있게 하는 방법.
  3. 제2항에 있어서,
    상기 사용자가 상기 식별된 편집 충돌들을 디스플레이하는 것으로 토글할 때 상기 식별된 편집 충돌들을 디스플레이하는 단계를 더 포함하고,
    상기 제공된 해결 인터페이스는 상기 사용자가 상기 편집 충돌들 중 임의의 충돌을 수락 또는 거부할 수 있게 하는 방법.
  4. 제1항에 있어서,
    상기 식별된 편집 충돌을 디스플레이하는 단계는 비충돌 콘텐츠의 컨텍스트 내에 상기 식별된 편집 충돌을 디스플레이하는 단계를 포함하는 방법.
  5. 제4항에 있어서,
    상기 식별된 편집 충돌을 디스플레이하는 단계는 상기 식별된 편집 충돌을 상기 비충돌 콘텐츠와 구별하기 위해 상기 식별된 편집 충돌에 주석을 다는 단계를 포함하는 방법.
  6. 제5항에 있어서,
    상기 식별된 편집 충돌에 주석을 다는 단계는 상기 식별된 편집 충돌의 출처를 디스플레이하는 단계를 포함하는 방법.
  7. 제5항에 있어서,
    상기 식별된 편집 충돌을 숨기는 것은 상기 식별된 편집 충돌로부터 임의의 주석을 제거하는 것을 포함하는 방법.
  8. 제1항에 있어서,
    상기 데이터 파일의 상기 사용자 사본을 상기 마스터 사본과 동기화시키기 위해 상기 데이터 파일의 상기 마스터 사본의 현재 상태를 나타내는 업데이트를 상기 제1 제작 응용 프로그램에서 수신하는 단계를 더 포함하는 방법.
  9. 제1항에 있어서,
    상기 편집 충돌이 식별될 때 상기 사용자에게 경보를 하는 단계를 더 포함하는 방법.
  10. 제1항에 있어서,
    상기 데이터 파일의 상기 사용자 사본을 상기 마스터 사본과 동기화시키라는 명령을 수신하는 단계, 및
    상기 사용자 사본에 기초하여 상기 데이터 파일의 새 사본을 생성하는 단계 - 상기 새 사본은 상기 식별된 편집 충돌을 포함함 -
    를 더 포함하고,
    상기 데이터 파일의 상기 새 사본을 편집하는 것은 상기 토글 인터페이스의 제시를 트리거하지 않는 방법.
  11. 컴퓨팅 장치에 의해 실행될 때 데이터 파일의 사용자 사본과 상기 데이터 파일의 마스터 사본 간에 존재하는 편집 충돌들을 해결하는 방법을 수행하는 실행가능 명령어들을 저장하는 컴퓨터-판독가능 저장 매체로서,
    상기 방법은,
    디스플레이 창을 상기 컴퓨팅 장치의 사용자에게 제시하는 단계 - 상기 디스플레이 창은 편집 영역 및 요약 영역(summary area)를 포함함 -,
    임의의 식별된 충돌 콘텐츠를 포함하는 상기 사용자 사본의 콘텐츠 및 임의의 콘텐츠 잠금을 상기 디스플레이 창의 상기 편집 영역 내에 디스플레이하는 단계 - 상기 사용자는 상기 편집 영역에서 상기 식별된 충돌 콘텐츠를 포함하는 상기 사용자 사본의 콘텐츠를 자유롭게 편집할 수 있고, 상기 식별된 충돌 콘텐츠를 비충돌 콘텐츠와 구별하기 위해 상기 식별된 충돌 콘텐츠에 주석이 달려 있음 -,
    상기 식별된 충돌 콘텐츠 및 임의의 식별된 충돌 콘텐츠 잠금을 상기 요약 영역 내에 디스플레이하는 단계,
    수락 옵션 및 거부 옵션을 포함하는 해결 인터페이스를 디스플레이하는 단계- 상기 수락 옵션은 수락 제어를 포함하고, 상기 거부 옵션은 거부 제어를 포함하며, 상기 해결 인터페이스는 콘텐츠 잠금을 디스플레이하는 것과 상기 식별된 충돌 콘텐츠를 나타내기 위해 주석이 달린 사용자 콘텐츠를 디스플레이하는 것을 포함하여 상기 데이터 파일의 상기 사용자 사본을 제시하도록 구성되고, 상기 해결 인터페이스는 상기 식별된 충돌 콘텐츠가 선택되는 경우 디스플레이됨 -,
    상기 사용자가 상기 식별된 충돌 콘텐츠가 수락되도록 하는 상기 수락 제어 및 상기 식별된 충돌 콘텐츠가 거부되도록 하는 상기 거부 제어를 선택할 수 있게 하는 단계,
    상기 사용자에게 토글 인터페이스를 제시하는 단계- 상기 사용자에 의한 상기 토글 인터페이스의 선택은 상기 디스플레이 창의 상기 편집 영역 내에서 상기 식별된 충돌 콘텐츠에 대한 임의의 주석을 제거함 -
    를 포함하는 컴퓨터-판독가능 저장 매체.
  12. 제11항에 있어서,
    상기 사용자에 의한 상기 토글 인터페이스의 선택은 또한 상기 디스플레이 창으로부터 상기 해결 인터페이스를 제거하는 컴퓨터-판독가능 저장 매체.
  13. 제11항에 있어서,
    상기 방법은 상기 식별된 충돌 콘텐츠가 존재한다는 것을 상기 사용자에게 보고하는 경보를 디스플레이하는 단계를 더 포함하는 컴퓨터-판독가능 저장 매체.
  14. 제11항에 있어서,
    상기 식별된 충돌 콘텐츠는 상기 사용자에 의해 상기 데이터 파일의 상기 사용자 사본에 삽입 또는 삭제되고 상기 데이터 파일의 상기 마스터 사본에 대한 중간 변경들과 상충하는 콘텐츠만을 포함하는 컴퓨터-판독가능 저장 매체.
  15. 데이터 파일을 공동으로 편집하는 시스템으로서,
    상기 데이터 파일의 마스터 사본이 저장되어 있는 저장 장치 - 상기 마스터 사본은 마스터 콘텐츠 및 마스터 잠금을 가짐 -,
    상기 데이터 파일의 사용자 사본이 저장되어 있는 사용자 장치 - 상기 사용자 사본은 사용자 콘텐츠 및 사용자 잠금을 갖고, 상기 사용자 콘텐츠는 상기 마스터 콘텐츠에 기초하여 생성되고 상기 사용자 잠금은 상기 마스터 잠금에 기초하여 생성됨 -, 및
    상기 사용자 장치 상에 구현되는 제작 응용 프로그램
    을 포함하되,
    상기 제작 응용 프로그램은 상기 마스터 콘텐츠에 대한 임의의 변경들을 나타내는 마스터 콘텐츠 업데이트 및 상기 마스터 잠금에 대한 임의의 변경들을 나타내는 마스터 잠금 업데이트를 상기 저장 장치로부터 수신하도록 구성되고,
    상기 제작 응용 프로그램은 또한 상기 데이터 파일의 상기 사용자 사본과 상기 마스터 콘텐츠 업데이트 사이 및 상기 사용자 사본과 상기 마스터 잠금 업데이트 사이의 임의의 편집 충돌을 식별하도록 구성되며,
    상기 제작 응용 프로그램은 또한 수락 옵션 및 거부 옵션을 포함하는 해결 인터페이스를 디스플레이하도록 구성되고, 상기 수락 옵션은 수락 제어를 포함하고, 상기 거부 옵션은 거부 제어를 포함하며, 상기 해결 인터페이스는 상기 식별된 충돌 콘텐츠가 선택되는 경우 디스플레이되고, 상기 제작 응용 프로그램은 사용자가 상기 수락 옵션 또는 상기 거부 옵션을 선택할 수 있도록 구성되고,
    상기 수락 옵션의 선택은 식별된 편집 충돌이 수락되도록 하고, 상기 거부 옵션의 선택은 상기 식별된 편집 충돌이 거부되도록 하고,
    상기 해결 인터페이스는 상기 사용자 잠금을 디스플레이하는 것과 식별된 편집 충돌을 나타내기 위해 주석이 달린 상기 사용자 콘텐츠를 디스플레이하는 것을 포함하여 상기 데이터 파일의 상기 사용자 사본을 제시하도록 구성되고,
    상기 마스터 잠금에 대한 임의의 변경이 상기 사용자 잠금에 대한 임의의 변경과 충돌하지 않는 경우 상기 제작 응용 프로그램은 상기 마스터 잠금에 대한 임의의 변경을 자동으로 인스턴스화하고,
    상기 제작 응용 프로그램에 의해 어떤 편집 충돌도 식별되지 않을 때에만, 상기 제작 응용 프로그램이 상기 마스터 콘텐츠에 대한 임의의 변경을 자동으로 인스턴스화하는
    시스템.
  16. 제15항에 있어서,
    상기 제작 응용 프로그램은, 어떤 편집 충돌도 상기 제작 응용 프로그램에 의해 식별되지 않을 때에만, 상기 사용자 콘텐츠에 대한 임의의 변경을 나타내는 사용자 콘텐츠 업데이트를 상기 저장 장치로 전송하도록 더 구성되어 있는 시스템.
  17. 제15항에 있어서,
    상기 제작 응용 프로그램은 편집 충돌이 상기 제작 응용 프로그램에 의해 식별되는지 여부에 상관없이, 상기 사용자 잠금에 대한 임의의 변경을 나타내는 사용자 잠금 업데이트를 상기 저장 장치로 전송하도록 더 구성되어 있는 시스템.
  18. 제15항에 있어서,
    상기 저장 장치에 통신가능하게 연결되어 있는 복수의 사용자 장치를 더 포함하고,
    각각의 사용자 장치는 상기 데이터 파일의 사용자 사본을 획득하고, 주기적인 간격으로 상기 저장 장치로부터 업데이트들을 수신하며, 상기 식별된 편집 충돌들이 해결될 때 상기 저장 장치로 업데이트를 전송하도록 구성되어 있는 시스템.
  19. 삭제
  20. 삭제
KR1020107023576A 2008-04-28 2009-03-23 충돌 해결 KR101563761B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/111,174 US8352870B2 (en) 2008-04-28 2008-04-28 Conflict resolution
US12/111,174 2008-04-28

Publications (2)

Publication Number Publication Date
KR20100135835A KR20100135835A (ko) 2010-12-27
KR101563761B1 true KR101563761B1 (ko) 2015-10-28

Family

ID=41216193

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107023576A KR101563761B1 (ko) 2008-04-28 2009-03-23 충돌 해결

Country Status (14)

Country Link
US (2) US8352870B2 (ko)
EP (1) EP2279474A4 (ko)
JP (1) JP5443471B2 (ko)
KR (1) KR101563761B1 (ko)
CN (1) CN102016834B (ko)
AU (1) AU2009241535B2 (ko)
BR (1) BRPI0909214A8 (ko)
CA (1) CA2718106A1 (ko)
IL (1) IL208040A (ko)
MX (1) MX2010011402A (ko)
MY (1) MY156947A (ko)
RU (1) RU2491621C2 (ko)
WO (1) WO2009134548A2 (ko)
ZA (1) ZA201006415B (ko)

Families Citing this family (159)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7496662B1 (en) 2003-05-12 2009-02-24 Sourcefire, Inc. Systems and methods for determining characteristics of a network and assessing confidence
US7733803B2 (en) 2005-11-14 2010-06-08 Sourcefire, Inc. Systems and methods for modifying network map attributes
US7937663B2 (en) * 2007-06-29 2011-05-03 Microsoft Corporation Integrated collaborative user interface for a document editor program
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US8474043B2 (en) 2008-04-17 2013-06-25 Sourcefire, Inc. Speed and memory optimization of intrusion detection system (IDS) and intrusion prevention system (IPS) rule processing
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US20090327405A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Enhanced Client And Server Systems for Operating Collaboratively Within Shared Workspaces
US8495043B2 (en) 2008-09-17 2013-07-23 International Business Machines Corporation System and method for allowing updates to database objects
US8272055B2 (en) 2008-10-08 2012-09-18 Sourcefire, Inc. Target-based SMB and DCE/RPC processing for an intrusion detection system or intrusion prevention system
US9396279B1 (en) * 2009-02-17 2016-07-19 Jpmorgan Chase Bank, Na Collaborative virtual markup
US9294421B2 (en) 2009-03-23 2016-03-22 Google Inc. System and method for merging edits for a conversation in a hosted conversation system
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents
US9021386B1 (en) 2009-05-28 2015-04-28 Google Inc. Enhanced user interface scrolling system
US9602444B2 (en) 2009-05-28 2017-03-21 Google Inc. Participant suggestion system
US8527602B1 (en) 2009-05-28 2013-09-03 Google Inc. Content upload system with preview and user demand based upload prioritization
US8280846B2 (en) * 2009-07-10 2012-10-02 Novell, Inc. Collaboration swarming
US8370628B2 (en) * 2009-07-16 2013-02-05 Oracle International Corporation Document collaboration system with alternative views
CA2684540A1 (en) * 2009-11-05 2011-05-05 Ibm Canada Limited - Ibm Canada Limitee Navigation through historical stored interactions associated with a multi-user view
US8468205B2 (en) * 2010-03-17 2013-06-18 Apple Inc. Method and apparatus for selective presence of messaging services
WO2011130510A1 (en) 2010-04-16 2011-10-20 Sourcefire, Inc. System and method for near-real time network attack detection, and system and method for unified detection via detection routing
WO2021161104A1 (en) 2020-02-12 2021-08-19 Monday.Com Enhanced display features in collaborative network systems, methods, and devices
WO2021220058A1 (en) 2020-05-01 2021-11-04 Monday.com Ltd. Digital processing systems and methods for enhanced collaborative workflow and networking systems, methods, and devices
WO2021144656A1 (en) 2020-01-15 2021-07-22 Monday.Com Digital processing systems and methods for graphical dynamic table gauges in collaborative work systems
US8510399B1 (en) 2010-05-18 2013-08-13 Google Inc. Automated participants for hosted conversations
US8825776B1 (en) * 2010-05-18 2014-09-02 Google Inc. Generating a hosted conversation in accordance with predefined parameters
US9380011B2 (en) 2010-05-28 2016-06-28 Google Inc. Participant-specific markup
US9026935B1 (en) 2010-05-28 2015-05-05 Google Inc. Application user interface with an interactive overlay
US8433790B2 (en) 2010-06-11 2013-04-30 Sourcefire, Inc. System and method for assigning network blocks to sensors
US8671182B2 (en) * 2010-06-22 2014-03-11 Sourcefire, Inc. System and method for resolving operating system or service identity conflicts
JP2012038210A (ja) * 2010-08-10 2012-02-23 Sony Corp 情報処理装置、情報処理方法、コンピュータプログラム及びコンテンツ表示システム
US20120101980A1 (en) * 2010-10-26 2012-04-26 Microsoft Corporation Synchronizing online document edits
US9118612B2 (en) 2010-12-15 2015-08-25 Microsoft Technology Licensing, Llc Meeting-specific state indicators
US9383888B2 (en) * 2010-12-15 2016-07-05 Microsoft Technology Licensing, Llc Optimized joint document review
US9864612B2 (en) 2010-12-23 2018-01-09 Microsoft Technology Licensing, Llc Techniques to customize a user interface for different displays
US20120200573A1 (en) * 2011-02-07 2012-08-09 Hooray LLC E-reader with locked and unlocked content and reader tracking capability
US8601034B2 (en) 2011-03-11 2013-12-03 Sourcefire, Inc. System and method for real time data awareness
US11611595B2 (en) 2011-05-06 2023-03-21 David H. Sitrick Systems and methodologies providing collaboration among a plurality of computing appliances, utilizing a plurality of areas of memory to store user input as associated with an associated computing appliance providing the input
US10402485B2 (en) 2011-05-06 2019-09-03 David H. Sitrick Systems and methodologies providing controlled collaboration among a plurality of users
US9213718B1 (en) * 2011-06-22 2015-12-15 Emc Corporation Synchronized file management across multiple disparate endpoints
US8850516B1 (en) 2011-06-22 2014-09-30 Emc Corporation Virtual private cloud that provides enterprise grade functionality and compliance
US8533165B2 (en) 2011-07-03 2013-09-10 Microsoft Corporation Conflict resolution via metadata examination
US20130036096A1 (en) * 2011-08-01 2013-02-07 Salesforce.Com, Inc. Mechanism for facilitating dynamic cloning of data records in an on-demand services environment
CN102262620B (zh) * 2011-08-04 2014-11-26 无锡永中软件有限公司 一种文档协作方法
US9002790B2 (en) * 2011-09-14 2015-04-07 Google Inc. Hosted storage locking
CN102999532B (zh) * 2011-09-19 2017-05-10 中兴通讯股份有限公司 用户配置数据的方法及装置
JP5661586B2 (ja) * 2011-09-30 2015-01-28 株式会社沖データ 画像形成装置、情報処理装置及び画像形成システム
US8682973B2 (en) 2011-10-05 2014-03-25 Microsoft Corporation Multi-user and multi-device collaboration
US10733151B2 (en) 2011-10-27 2020-08-04 Microsoft Technology Licensing, Llc Techniques to share media files
US8965847B1 (en) * 2011-10-28 2015-02-24 Oxygen Cloud, Inc. Independent synchronization of file data and file metadata
US10482638B2 (en) 2011-11-11 2019-11-19 Microsoft Technology Licensing, Llc Collaborative commenting in a drawing tool
US20130124956A1 (en) * 2011-11-11 2013-05-16 Microsoft Corporation Coauthoring in a Drawing Tool
US9355115B2 (en) * 2011-11-21 2016-05-31 Microsoft Technology Licensing, Llc Client application file access
US9053079B2 (en) 2011-12-12 2015-06-09 Microsoft Technology Licensing, Llc Techniques to manage collaborative documents
WO2013101113A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Management of collaborative teams
KR102039028B1 (ko) 2012-02-24 2019-10-31 삼성전자 주식회사 휴대단말기의 데이터 공유 장치 및 방법
US9229919B1 (en) * 2012-03-19 2016-01-05 Apttex Corporation Reconciling smart fields
US9286597B2 (en) * 2012-03-30 2016-03-15 Microsoft Technology Licensing, Llc Tracking co-authoring conflicts using document comments
US20130283147A1 (en) * 2012-04-19 2013-10-24 Sharon Wong Web-based collaborative document review system
CN102724319B (zh) * 2012-06-20 2015-03-18 新浪网技术(中国)有限公司 一种数据同步方法、相关存储服务器及系统
US8990168B1 (en) 2012-06-21 2015-03-24 Emc Corporation Efficient conflict resolution among stateless processes
CN104412257A (zh) * 2012-07-12 2015-03-11 索尼公司 显示控制设备、显示控制方法、程序和通信系统
US20150199307A1 (en) * 2012-08-08 2015-07-16 Google Inc. Pluggable Architecture For Optimizing Versioned Rendering of Collaborative Documents
US9372833B2 (en) * 2012-09-14 2016-06-21 David H. Sitrick Systems and methodologies for document processing and interacting with a user, providing storing of events representative of document edits relative to a document; selection of a selected set of document edits; generating presentation data responsive to said selected set of documents edits and the stored events; and providing a display presentation responsive to the presentation data
US9183398B2 (en) * 2012-09-20 2015-11-10 Qualcomm Incorporated Content-driven screen polarization with application sessions
TW201416873A (zh) * 2012-10-19 2014-05-01 Apacer Technology Inc 網路儲存系統的檔案分享方法
CN103778108A (zh) * 2012-10-25 2014-05-07 金蝶软件(中国)有限公司 单据处理方法、装置及erp系统
US9529785B2 (en) * 2012-11-27 2016-12-27 Google Inc. Detecting relationships between edits and acting on a subset of edits
US9330131B2 (en) * 2012-11-28 2016-05-03 The Mathworks, Inc. Conflict markup tolerant input stream
US9286280B2 (en) 2012-12-10 2016-03-15 International Business Machines Corporation Utilizing classification and text analytics for optimizing processes in documents
US10430506B2 (en) 2012-12-10 2019-10-01 International Business Machines Corporation Utilizing classification and text analytics for annotating documents to allow quick scanning
US9460073B2 (en) * 2013-02-27 2016-10-04 Google Inc. Systems and methods for mutations and operational transforms in a collaborative spreadsheet environment
US9256341B2 (en) 2013-03-20 2016-02-09 Microsoft Technology Licensing, Llc Tracking changes in collaborative authoring environment
US20140310613A1 (en) * 2013-04-15 2014-10-16 Microsoft Corporation Collaborative authoring with clipping functionality
US9053165B2 (en) * 2013-07-08 2015-06-09 Dropbox, Inc. Structured content item synchronization
JP2015026207A (ja) * 2013-07-25 2015-02-05 富士通株式会社 ファイル管理プログラム,ファイル管理装置及びファイル管理方法
WO2015015888A1 (ja) * 2013-07-31 2015-02-05 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US9971752B2 (en) 2013-08-19 2018-05-15 Google Llc Systems and methods for resolving privileged edits within suggested edits
US9552407B1 (en) 2013-09-11 2017-01-24 Amazon Technologies, Inc. Log-based synchronization with conditional append
US10956446B1 (en) * 2013-09-11 2021-03-23 Amazon Technologies, Inc. Log-based synchronization with inferred context
US9251235B1 (en) 2013-09-11 2016-02-02 Amazon Technologies, Inc. Log-based synchronization
US9665359B2 (en) * 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US9830142B2 (en) 2013-09-13 2017-11-28 Microsoft Technology Licensing, Llc Automatic installation of selected updates in multiple environments
US10026064B2 (en) 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9626176B2 (en) 2013-09-13 2017-04-18 Microsoft Technology Licensing, Llc Update installer with technical impact analysis
US9348803B2 (en) * 2013-10-22 2016-05-24 Google Inc. Systems and methods for providing just-in-time preview of suggestion resolutions
US9436460B2 (en) * 2013-10-29 2016-09-06 International Business Machines Corporation Regression alerts
US11514399B2 (en) 2013-12-21 2022-11-29 Microsoft Technology Licensing, Llc Authoring through suggestion
US10824787B2 (en) 2013-12-21 2020-11-03 Microsoft Technology Licensing, Llc Authoring through crowdsourcing based suggestions
KR102271265B1 (ko) 2014-01-21 2021-07-01 오라클 인터내셔날 코포레이션 어플리케이션 서버, 클라우드 또는 다른 환경에서 멀티 테넌시를 지원하기 위한 시스템 및 방법
US20150213568A1 (en) * 2014-01-29 2015-07-30 Adobe Systems Incorporated Location aware selection of electronic signatures
US10270871B2 (en) 2014-04-08 2019-04-23 Dropbox, Inc. Browser display of native application presence and interaction data
US10091287B2 (en) 2014-04-08 2018-10-02 Dropbox, Inc. Determining presence in an application accessing shared and synchronized content
US10171579B2 (en) 2014-04-08 2019-01-01 Dropbox, Inc. Managing presence among devices accessing shared and synchronized content
US9998555B2 (en) 2014-04-08 2018-06-12 Dropbox, Inc. Displaying presence in an application accessing shared and synchronized content
CN104090915B (zh) * 2014-06-12 2017-02-15 小米科技有限责任公司 用户数据更新方法及装置
US9959421B2 (en) 2014-06-23 2018-05-01 Oracle International Corporation System and method for monitoring and diagnostics in a multitenant application server environment
US10009225B2 (en) 2014-06-23 2018-06-26 Oracle International Corporation System and method for supporting multiple partition edit sessions in a multitenant application server environment
US10594619B2 (en) 2014-06-23 2020-03-17 Oracle International Corporation System and method for supporting configuration of dynamic clusters in a multitenant application server environment
US9779073B2 (en) 2014-07-29 2017-10-03 Microsoft Technology Licensing, Llc Digital document change conflict resolution
US9503402B2 (en) * 2014-08-18 2016-11-22 Dropbox, Inc. Managing drafts of electronic documents across client devices
CN104168335B (zh) * 2014-09-02 2018-08-03 宁波(东软熙康)智慧健康研究院有限公司 一种数据同步方法和装置
US9208167B1 (en) 2014-09-04 2015-12-08 Edifire LLC Distributed data synchronization and conflict resolution
EP3198431A1 (en) 2014-09-24 2017-08-02 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10318280B2 (en) 2014-09-24 2019-06-11 Oracle International Corporation System and method for supporting patching in a multitenant application server environment
US10250512B2 (en) 2015-01-21 2019-04-02 Oracle International Corporation System and method for traffic director support in a multitenant application server environment
US9846528B2 (en) 2015-03-02 2017-12-19 Dropbox, Inc. Native application collaboration
CN112287389A (zh) 2015-03-03 2021-01-29 旺德海尔斯有限责任公司 机器可读标识符中加密数据的访问控制
US10484551B2 (en) * 2015-03-18 2019-11-19 Ricoh Company, Limited Information processing apparatus configured to detect settings in a conflicting relation, information processing method, and information processing system
IN2015MU00904A (ko) * 2015-03-19 2015-04-10 Zycus Infotech Pvt Ltd
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
EP3347845B1 (en) * 2015-09-11 2023-08-02 Curtail, Inc. Implementation comparison-based security system
US10657117B2 (en) 2015-09-11 2020-05-19 International Business Machines Corporation Critical situation contribution and effectiveness tracker
US10002181B2 (en) 2015-09-11 2018-06-19 International Business Machines Corporation Real-time tagger
US10824974B2 (en) 2015-09-11 2020-11-03 International Business Machines Corporation Automatic subject matter expert profile generator and scorer
US10521770B2 (en) 2015-09-11 2019-12-31 International Business Machines Corporation Dynamic problem statement with conflict resolution
US9921828B2 (en) * 2015-09-22 2018-03-20 Oracle International Corporation Merging versions of an inclusion application that is incorporated into a master application
US9998883B2 (en) * 2015-09-30 2018-06-12 Nathan Dhilan Arimilli Glass pane for collaborative electronic communication
US10248933B2 (en) 2015-12-29 2019-04-02 Dropbox, Inc. Content item activity feed for presenting events associated with content items
US10620811B2 (en) 2015-12-30 2020-04-14 Dropbox, Inc. Native application collaboration
US11036712B2 (en) 2016-01-12 2021-06-15 Microsoft Technology Licensing, Llc. Latency-reduced document change discovery
EP3414683B1 (en) 2016-02-10 2021-07-28 Curtail Security, Inc. Comparison of behavioral populations for security and compliance monitoring
US10936548B2 (en) * 2016-03-15 2021-03-02 Microsoft Technology Licensing, Llc File synchronization pausing for individual files
US10382502B2 (en) 2016-04-04 2019-08-13 Dropbox, Inc. Change comments for synchronized content items
US10467198B2 (en) * 2016-09-15 2019-11-05 Oracle International Corporation Network partition tolerance in a high available centralized VCS implementation
US10133588B1 (en) * 2016-10-20 2018-11-20 Palantir Technologies Inc. Transforming instructions for collaborative updates
US10789423B2 (en) * 2016-12-19 2020-09-29 Sap Se Controlling a collaborative data preparation process
US10769356B2 (en) * 2017-03-03 2020-09-08 Adobe Inc. Synchronizing review comments between source and shared documents
US10331498B1 (en) * 2017-04-26 2019-06-25 EMC IP Holding Company LLC ColoredLock synchronization object, allowing flow specific policy of lock canceling
US10565168B2 (en) 2017-05-02 2020-02-18 Oxygen Cloud, Inc. Independent synchronization with state transformation
US20180350121A1 (en) * 2017-06-06 2018-12-06 Polycom, Inc. Global annotations across contents
CN107403467A (zh) * 2017-08-09 2017-11-28 浙江群力电气有限公司 一种数据建模系统及方法
US11294935B2 (en) * 2018-05-15 2022-04-05 Mongodb, Inc. Conflict resolution in distributed computing
US11698890B2 (en) 2018-07-04 2023-07-11 Monday.com Ltd. System and method for generating a column-oriented data structure repository for columns of single data types
US20210149553A1 (en) 2019-11-18 2021-05-20 Monday.Com Digital processing systems and methods for real-time resource and capacity allocation in collaborative work systems
US20240184989A1 (en) 2020-05-01 2024-06-06 Monday.com Ltd. Digital processing systems and methods for virtualfile-based electronic white board in collaborative work systems systems
US10922469B1 (en) * 2020-06-30 2021-02-16 Cadence Design Systems, Inc. Methods and systems of enabling concurrent editing of hierarchical electronic circuit layouts
WO2022015773A1 (en) * 2020-07-13 2022-01-20 Journey Mobile, Inc. Synchronization of source code under development in multiple concurrent instances of an integrated development environment
US11687216B2 (en) 2021-01-14 2023-06-27 Monday.com Ltd. Digital processing systems and methods for dynamically updating documents with data from linked files in collaborative work systems
WO2022184063A1 (zh) * 2021-03-01 2022-09-09 北京字跳网络技术有限公司 表格内容处理方法、装置、设备、存储介质
US11687496B2 (en) 2021-03-22 2023-06-27 Hewlett Packard Enterprise Development Lp Synchronization of distributed data files
US11604839B2 (en) 2021-05-17 2023-03-14 Docusign, Inc. Document package merge in document management system
US11763258B2 (en) * 2021-12-29 2023-09-19 Slack Technologies, Llc Workflows for documents
US12021805B2 (en) 2021-12-31 2024-06-25 Salesforce, Inc. Collaboration software development kit
US11875081B2 (en) 2022-01-31 2024-01-16 Salesforce, Inc. Shared screen tools for collaboration
US11727190B1 (en) 2022-01-31 2023-08-15 Salesforce, Inc. Previews for collaborative documents
US12019775B2 (en) 2022-01-31 2024-06-25 Salesforce, Inc. Managing permissions for collaborative shared documents
US20230273915A1 (en) * 2022-02-28 2023-08-31 Sap Se Data conflict resolution in periodically offline systems
US11853746B2 (en) * 2022-03-01 2023-12-26 Microsoft Technology Licensing, Llc Source code merge conflict resolution
US11681538B1 (en) 2022-04-06 2023-06-20 Truist Bank Coordinating and synchronizing data entry between client computing devices
US11768582B1 (en) * 2022-04-06 2023-09-26 Truist Bank Dual-view graphical user interface for coordinating and synchronizing data entry
US20240111949A1 (en) * 2022-04-07 2024-04-04 Sigma Computing, Inc. Resolving live edit conflicts
US11741071B1 (en) 2022-12-28 2023-08-29 Monday.com Ltd. Digital processing systems and methods for navigating and viewing displayed content
US11886683B1 (en) 2022-12-30 2024-01-30 Monday.com Ltd Digital processing systems and methods for presenting board graphics
US11893381B1 (en) 2023-02-21 2024-02-06 Monday.com Ltd Digital processing systems and methods for reducing file bundle sizes

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080177782A1 (en) 2007-01-10 2008-07-24 Pado Metaware Ab Method and system for facilitating the production of documents

Family Cites Families (354)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01113849A (ja) 1987-10-19 1989-05-02 Internatl Business Mach Corp <Ibm> マルチユーザシステム
US4855580A (en) 1987-11-20 1989-08-08 Recognition Equipment Incorporated Data merge document processing method
US5107443A (en) * 1988-09-07 1992-04-21 Xerox Corporation Private regions within a shared workspace
US5799320A (en) 1989-08-23 1998-08-25 John R. Klug Remote multiple-user editing system and method
US5142619A (en) 1990-02-21 1992-08-25 International Business Machines Corporation Method and apparatus for visually comparing files in a data processing system
CA2039652C (en) * 1990-05-30 1996-12-24 Frank Zdybel, Jr. Hardcopy lossless data storage and communications for electronic document processing systems
US5313394A (en) * 1990-12-11 1994-05-17 Barbara Clapp Document assembly customization system for modifying a source instrument including text and decisional commands
US5671428A (en) * 1991-08-28 1997-09-23 Kabushiki Kaisha Toshiba Collaborative document processing system with version and comment management
US5339389A (en) 1991-12-31 1994-08-16 International Business Machines Corporation User selectable lock regions
JPH0827754B2 (ja) 1992-05-21 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおけるファイル管理方法及びファイル管理システム
JP3252454B2 (ja) 1992-06-30 2002-02-04 富士ゼロックス株式会社 共有データ変更状況把握装置
US5555388A (en) 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
US5978784A (en) * 1992-10-05 1999-11-02 Expert Systems Publishing Co. Computer-implemented decision management system with dynamically generated questions and answer choices
US5579223A (en) 1992-12-24 1996-11-26 Microsoft Corporation Method and system for incorporating modifications made to a computer program into a translated version of the computer program
US5446842A (en) 1993-02-26 1995-08-29 Taligent, Inc. Object-oriented collaboration system
US5920694A (en) 1993-03-19 1999-07-06 Ncr Corporation Annotation of computer video displays
JP2703498B2 (ja) 1993-04-30 1998-01-26 インターナショナル・ビジネス・マシーンズ・コーポレイション バージョン化オブジェクトに対するロッキング機構
JPH0785020A (ja) 1993-09-20 1995-03-31 Hitachi Ltd 文書管理方法
JP3053153B2 (ja) * 1993-09-20 2000-06-19 株式会社日立製作所 文書管理システムのアプリケーション起動方法
US5689641A (en) 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US6049334A (en) 1993-12-20 2000-04-11 International Business Machines Corporation Method and system for graphically indicating the activity of a plurality of users within a shared data collection
US6760840B1 (en) 1994-03-15 2004-07-06 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US5831615A (en) 1994-09-30 1998-11-03 Intel Corporation Method and apparatus for redrawing transparent windows
US6181837B1 (en) * 1994-11-18 2001-01-30 The Chase Manhattan Bank, N.A. Electronic check image storage and retrieval system
US5751958A (en) * 1995-06-30 1998-05-12 Peoplesoft, Inc. Allowing inconsistency in a distributed client-server application
US5887146A (en) 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US5956028A (en) 1995-09-14 1999-09-21 Fujitsu Ltd. Virtual space communication system, three-dimensional image display method, and apparatus therefor
US5729734A (en) * 1995-11-03 1998-03-17 Apple Computer, Inc. File privilege administration apparatus and methods
US5781908A (en) 1995-12-18 1998-07-14 J.D. Edwards World Source Company File data synchronizer in a distributed data computer network
US6006239A (en) 1996-03-15 1999-12-21 Microsoft Corporation Method and system for allowing multiple users to simultaneously edit a spreadsheet
US5781732A (en) 1996-06-20 1998-07-14 Object Technology Licensing Corp. Framework for constructing shared documents that can be collaboratively accessed by multiple users
US5787262A (en) 1996-06-26 1998-07-28 Microsoft Corporation System and method for distributed conflict resolution between data objects replicated across a computer network
US5835950A (en) 1996-07-12 1998-11-10 Samsung Electronics Co., Ltd. Self-invalidation method for reducing coherence overheads in a bus-based shared-memory multiprocessor apparatus
US6175853B1 (en) 1996-09-17 2001-01-16 Netscape Communications Corporation Method and apparatus for a distributed locking system for a collaborative computer system
US6244575B1 (en) 1996-10-02 2001-06-12 Micron Technology, Inc. Method and apparatus for vaporizing liquid precursors and system for using same
JP3592004B2 (ja) 1996-10-31 2004-11-24 キヤノン株式会社 情報共有管理システム及び情報共有システム管理装置と方法
US6202085B1 (en) 1996-12-06 2001-03-13 Microsoft Corportion System and method for incremental change synchronization between multiple copies of data
US6708221B1 (en) 1996-12-13 2004-03-16 Visto Corporation System and method for globally and securely accessing unified information in a computer network
US6065026A (en) * 1997-01-09 2000-05-16 Document.Com, Inc. Multi-user electronic document authoring system with prompted updating of shared language
JP2996197B2 (ja) * 1997-02-14 1999-12-27 日本電気株式会社 文書共有管理方法
US5966512A (en) 1997-06-05 1999-10-12 International Business Machines Corporation Groupware save operation
US6233600B1 (en) 1997-07-15 2001-05-15 Eroom Technology, Inc. Method and system for providing a networked collaborative work environment
US6209010B1 (en) * 1997-07-18 2001-03-27 Varis Corporation Computer implemented method for wrapping data to an arbitrary path defined by a page description language
US7447712B2 (en) 1997-09-28 2008-11-04 Global 360, Inc. Structured workfolder
US6240414B1 (en) 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
WO1999019820A1 (en) 1997-10-09 1999-04-22 Interval Research Corporation Electronic audio connection system and methods for providing same
US5946700A (en) 1997-10-31 1999-08-31 Oracle Corporation Method and apparatus for preserving non-current information that can be overwritten in a computer file
US6327611B1 (en) * 1997-11-12 2001-12-04 Netscape Communications Corporation Electronic document routing system
US6067551A (en) 1997-11-14 2000-05-23 Microsoft Corporation Computer implemented method for simultaneous multi-user editing of a document
US6073161A (en) 1997-12-16 2000-06-06 International Business Machines Corporation Method and apparatus for determining editing conflicts in a multi-authoring system
US6000945A (en) * 1998-02-09 1999-12-14 Educational Testing Service System and method for computer based test assembly
US6088702A (en) * 1998-02-25 2000-07-11 Plantz; Scott H. Group publishing system
AUPP252298A0 (en) 1998-03-24 1998-04-23 80-20 Software Pty Limited Document management software
US6275935B1 (en) * 1998-04-17 2001-08-14 Thingworld.Com, Llc Systems and methods for locking interactive objects
US6209128B1 (en) 1998-06-05 2001-03-27 International Business Machines Corporation Apparatus and method for providing access to multiple object versions
US6438564B1 (en) 1998-06-17 2002-08-20 Microsoft Corporation Method for associating a discussion with a document
US5999208A (en) 1998-07-15 1999-12-07 Lucent Technologies Inc. System for implementing multiple simultaneous meetings in a virtual reality mixed media meeting room
JP2000076109A (ja) 1998-08-28 2000-03-14 Toshiba Corp データ表示装置およびデータ表示方法
US6507845B1 (en) 1998-09-14 2003-01-14 International Business Machines Corporation Method and software for supporting improved awareness of and collaboration among users involved in a task
US6341291B1 (en) 1998-09-28 2002-01-22 Bentley Systems, Inc. System for collaborative engineering using component and file-oriented tools
US6324544B1 (en) 1998-10-21 2001-11-27 Microsoft Corporation File object synchronization between a desktop computer and a mobile device
US6363352B1 (en) * 1998-11-13 2002-03-26 Microsoft Corporation Automatic scheduling and formation of a virtual meeting over a computer network
US6502113B1 (en) * 1998-11-23 2002-12-31 John E. Crawford Negotiation manager incorporating clause modification and markers for tracking negotiation progress
JP2000163344A (ja) 1998-11-27 2000-06-16 Nec Corp ネットワーク管理システムのデータベース復旧方式
US7024430B1 (en) 1998-12-08 2006-04-04 Starfish Software, Inc. Method and system for implementing a filter in a data synchronization system
US6681371B1 (en) 1998-12-21 2004-01-20 At&T Corp. System and method for using container documents as multi-user domain clients
KR100309803B1 (ko) 1998-12-26 2001-12-17 서평원 망관리시스템과관리대상장비간의데이터베이스동기화장치및방법
US7065633B1 (en) * 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US6564246B1 (en) 1999-02-02 2003-05-13 International Business Machines Corporation Shared and independent views of shared workspace for real-time collaboration
US6342906B1 (en) 1999-02-02 2002-01-29 International Business Machines Corporation Annotation layer for synchronous collaboration
US6438654B1 (en) * 1999-02-22 2002-08-20 International Business Machines Corporation Castout processing for duplexed cache structures
JP3711210B2 (ja) 1999-03-12 2005-11-02 シャープ株式会社 文書編集システムおよびプログラム記録媒体
US6687878B1 (en) 1999-03-15 2004-02-03 Real Time Image Ltd. Synchronizing/updating local client notes with annotations previously made by other clients in a notes database
US7007235B1 (en) * 1999-04-02 2006-02-28 Massachusetts Institute Of Technology Collaborative agent interaction control and synchronization system
US6317777B1 (en) 1999-04-26 2001-11-13 Intel Corporation Method for web based storage and retrieval of documents
TW428146B (en) 1999-05-05 2001-04-01 Inventec Corp Data file updating method by increment
US6430576B1 (en) 1999-05-10 2002-08-06 Patrick Gates Distributing and synchronizing objects
CN1154054C (zh) 1999-06-04 2004-06-16 网络装置公司 对不同文件锁定协议强制实施统一文件锁定的方法及文件服务器
US6629129B1 (en) 1999-06-16 2003-09-30 Microsoft Corporation Shared virtual meeting services among computer applications
US6678882B1 (en) 1999-06-30 2004-01-13 Qwest Communications International Inc. Collaborative model for software systems with synchronization submodel with merge feature, automatic conflict resolution and isolation of potential changes for reuse
US6438548B1 (en) 1999-06-30 2002-08-20 International Business Machines Corporation Method of and system for managing documents in a bandwidth constrained environment
US6327584B1 (en) 1999-07-30 2001-12-04 Hewlett-Packard Company Apparatus and method for using version control to dynamically update files while the files are available for access
US6560620B1 (en) 1999-08-03 2003-05-06 Aplix Research, Inc. Hierarchical document comparison system and method
JP3915331B2 (ja) 1999-08-10 2007-05-16 富士ゼロックス株式会社 共有ドキュメントの編集装置及び編集方法
US6516339B1 (en) 1999-08-18 2003-02-04 International Business Machines Corporation High performance client/server editor
US6526434B1 (en) 1999-08-24 2003-02-25 International Business Machines Corporation System and method for efficient transfer of data blocks from client to server
US6189009B1 (en) 1999-08-27 2001-02-13 The Voice.Com, Inc. System and method for integrating paper-based business documents with computer-readable data entered via a computer network
US6507865B1 (en) 1999-08-30 2003-01-14 Zaplet, Inc. Method and system for group content collaboration
US7089278B1 (en) 1999-09-07 2006-08-08 Fuji Xerox Co., Ltd. Anchored conversations: adhesive, in-context, virtual discussion forums
JP2001092707A (ja) 1999-09-24 2001-04-06 Nec Corp 情報処理システム、構造化文書処理システム、その更新方法及びその更新プログラムを記録した記録媒体
US7039860B1 (en) 1999-10-01 2006-05-02 Netspinner Solutions As Creating web pages category list prior to the list being served to a browser
US6578054B1 (en) 1999-10-04 2003-06-10 Microsoft Corporation Method and system for supporting off-line mode of operation and synchronization using resource state information
WO2001033362A1 (en) 1999-11-05 2001-05-10 Attivo Software, Inc. Action communication and synchronization for documents accessed by multiple users
US6560614B1 (en) 1999-11-12 2003-05-06 Xosoft Inc. Nonintrusive update of files
US6751618B1 (en) 1999-11-24 2004-06-15 Unisys Corporation Method and apparatus for a web application server to upload multiple files and invoke a script to use the files in a single browser request
JP2001154966A (ja) 1999-11-29 2001-06-08 Sony Corp コンピュータ・ネットワーク上で構築・提供される共有仮想空間上で複数ユーザが参加可能な仮想会話を支援する会話支援システム及び会話支援方法、並びに、プログラム記憶媒体
AU3435801A (en) 1999-12-16 2001-06-25 Perimed Compliance Corporation System and method for electronic archiving and retrieval of medical documents
US6594664B1 (en) 2000-01-04 2003-07-15 International Business Machines Corporation System and method for online/offline uninterrupted updating of rooms in collaboration space
US6529905B1 (en) 2000-01-11 2003-03-04 Frontline Solutions, Inc. Method and system for allowing multiple users to edit a hierarchical data structure
JP3879350B2 (ja) 2000-01-25 2007-02-14 富士ゼロックス株式会社 構造化文書処理システム及び構造化文書処理方法
US6694336B1 (en) 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
SG99886A1 (en) 2000-02-24 2003-11-27 Ibm System and method for collaborative multi-device web browsing
US6842768B1 (en) 2000-03-01 2005-01-11 Siemens Communications, Inc. Apparatus and method for selectable compression
JP2001265704A (ja) 2000-03-23 2001-09-28 Megafusion Corp 仮想活動の制御方法
KR100331685B1 (ko) 2000-04-04 2002-04-09 오길록 문서 공동 편집 장치 및 그 방법
US7237006B1 (en) 2000-04-07 2007-06-26 Andrew Prell Method for managing the simultaneous utilization of diverse real-time collaborative software applications
JP2001290690A (ja) 2000-04-11 2001-10-19 Canon Inc ファイル管理方法及び装置並びに記憶媒体
US7124164B1 (en) 2001-04-17 2006-10-17 Chemtob Helen J Method and apparatus for providing group interaction via communications networks
US7478129B1 (en) 2000-04-18 2009-01-13 Helen Jeanne Chemtob Method and apparatus for providing group interaction via communications networks
JP3549097B2 (ja) 2000-04-26 2004-08-04 インターナショナル・ビジネス・マシーンズ・コーポレーション 共同作業オブジェクトのオーナ識別方法、コンピュータシステムおよびコンピュータ可読な記録媒体
DE60111376T2 (de) 2000-05-16 2006-03-16 O'carroll, Garrett System und verfahren zur dokumentverarbeitung
US6931592B1 (en) * 2000-05-22 2005-08-16 Microsoft Corporation Reviewing and merging electronic documents
US6757767B1 (en) 2000-05-31 2004-06-29 Advanced Digital Information Corporation Method for acceleration of storage devices by returning slightly early write status
SE522846C2 (sv) 2000-06-22 2004-03-09 Ericsson Telefon Ab L M Antenn med spiralformad radiator och återkopplingsledare, samt flerlagerkort och bärbar kommunikationsapparat innefattande en sådan antenn
US6596396B2 (en) 2000-08-09 2003-07-22 Mitsubishi Gas Chemical Company, Inc. Thin-film-like particles having skeleton constructed by carbons and isolated films
US6925476B1 (en) 2000-08-17 2005-08-02 Fusionone, Inc. Updating application data including adding first change log to aggreagate change log comprising summary of changes
WO2002017115A2 (en) * 2000-08-21 2002-02-28 Thoughtslinger Corporation Simultaneous multi-user document editing system
US6681382B1 (en) 2000-09-18 2004-01-20 Cisco Technology, Inc. Method and system for using virtual labels in a software configuration management system
GB2390713B (en) 2000-10-18 2005-03-23 Chasseral Ltd Concurrent file access
US20020083183A1 (en) 2000-11-06 2002-06-27 Sanjay Pujare Conventionally coded application conversion system for streamed delivery and execution
US6976213B1 (en) 2000-11-10 2005-12-13 Interspec, Inc. Method of automatically generating specifications and providing online services for same
US7669051B2 (en) 2000-11-13 2010-02-23 DigitalDoors, Inc. Data security system and method with multiple independent levels of security
US7080076B1 (en) * 2000-11-28 2006-07-18 Attenex Corporation System and method for efficiently drafting a legal document using an authenticated clause table
US20020069192A1 (en) 2000-12-04 2002-06-06 Aegerter William Charles Modular distributed mobile data applications
US6941326B2 (en) 2001-01-24 2005-09-06 Microsoft Corporation Accounting for update notifications in synchronizing data that may be represented by different data structures
US7110936B2 (en) 2001-02-23 2006-09-19 Complementsoft Llc System and method for generating and maintaining software code
US7058663B2 (en) 2001-03-13 2006-06-06 Koninklijke Philips Electronics, N.V. Automatic data update
IL157948A0 (en) * 2001-03-16 2004-03-28 Netomat Inc Sharing, managing and communicating information over a computer network
US8744835B2 (en) 2001-03-16 2014-06-03 Meaningful Machines Llc Content conversion method and apparatus
JP2002288029A (ja) 2001-03-28 2002-10-04 Ricoh Co Ltd 文書管理システム
US6757678B2 (en) * 2001-04-12 2004-06-29 International Business Machines Corporation Generalized method and system of merging and pruning of data trees
US7409424B2 (en) * 2001-04-24 2008-08-05 Parker James A Electronic mail file access system
JP4953518B2 (ja) 2001-05-14 2012-06-13 ケープレックス・インク オブジェクト指向技術を用いた情報共有方法及び装置
US6993522B2 (en) 2001-06-27 2006-01-31 Microsoft Corporation System and method for resolving conflicts detected during a synchronization session
US7117278B2 (en) 2001-07-12 2006-10-03 Sun Micro Systems, Inc. Method for merging a plurality of data streams into a single data stream
US7124362B2 (en) 2001-08-31 2006-10-17 Robert Tischer Method and system for producing an ordered compilation of information with more than one author contributing information contemporaneously
US7149776B1 (en) * 2001-08-31 2006-12-12 Oracle International Corp. System and method for real-time co-browsing
WO2003021985A1 (en) 2001-09-06 2003-03-13 Tersync Ltd. System and method for providing two-way radio communications network transmissions over internet protocol
US20040205539A1 (en) * 2001-09-07 2004-10-14 Mak Mingchi Stephen Method and apparatus for iterative merging of documents
US20030097410A1 (en) 2001-10-04 2003-05-22 Atkins R. Travis Methodology for enabling multi-party collaboration across a data network
JP2003150586A (ja) * 2001-11-12 2003-05-23 Ntt Docomo Inc 文書変換システム、文書変換方法及び文書変換プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4215425B2 (ja) * 2001-11-21 2009-01-28 日本電気株式会社 文章管理システム、その管理方法及びそのプログラム
JP4051924B2 (ja) 2001-12-05 2008-02-27 株式会社日立製作所 送信制御可能なネットワークシステム
US6711718B2 (en) 2001-12-10 2004-03-23 Charles Pfeil Parallel electronic design automation: distributed simultaneous editing
US7496841B2 (en) 2001-12-17 2009-02-24 Workshare Technology, Ltd. Method and system for document collaboration
US7475242B2 (en) * 2001-12-18 2009-01-06 Hewlett-Packard Development Company, L.P. Controlling the distribution of information
US20030140067A1 (en) * 2002-01-18 2003-07-24 Robert Sesek Systems and methods for sending documents
US7024429B2 (en) 2002-01-31 2006-04-04 Nextpage,Inc. Data replication based upon a non-destructive data model
WO2003067448A1 (en) * 2002-02-02 2003-08-14 E-Wings, Inc. Distributed system for interactive collaboration
JP2003233520A (ja) 2002-02-07 2003-08-22 Fujitsu Ltd ネットワーク上のファイル資源のためのファイル制御装置
US20030159105A1 (en) * 2002-02-21 2003-08-21 Hiebert Steven P. Interpretive transformation system and method
US7340534B2 (en) 2002-03-05 2008-03-04 Sun Microsystems, Inc. Synchronization of documents between a server and small devices
US7200668B2 (en) * 2002-03-05 2007-04-03 Sun Microsystems, Inc. Document conversion with merging
US20030208534A1 (en) 2002-05-02 2003-11-06 Dennis Carmichael Enhanced productivity electronic meeting system
US7171467B2 (en) * 2002-06-13 2007-01-30 Engedi Technologies, Inc. Out-of-band remote management station
US6691155B2 (en) 2002-06-20 2004-02-10 Linda Gottfried Multimedia system for sharing brand information keeps history of modifications of production information by consumers to allow recreating multimedia interface in its previous formats
US20040003090A1 (en) 2002-06-28 2004-01-01 Douglas Deeds Peer-to-peer media sharing
US7565603B1 (en) 2002-06-28 2009-07-21 Microsoft Corporation Representing style information in a markup language document
JP2004065193A (ja) 2002-08-09 2004-03-04 Kazumi Minbu 刈払い機用ガード
JP2004078535A (ja) * 2002-08-16 2004-03-11 Yamaha Corp 排他制御装置、方法及びプログラム
US6928476B2 (en) * 2002-08-23 2005-08-09 Mirra, Inc. Peer to peer remote data storage and collaboration
US20040109025A1 (en) * 2002-08-28 2004-06-10 Jean-Marie Hullot Computer program comprising a plurality of calendars
EP1588287A1 (en) 2002-09-30 2005-10-26 Systems Incorporated Qnaturally Blinking annotation callouts highlighting cross language search results
JP4737914B2 (ja) 2002-10-02 2011-08-03 ケープレックス・インク 文書改訂支援プログラム及び当該支援プログラムを記録したコンピュータ読み取り可能媒体、並びに文書改訂支援装置。
US20040068505A1 (en) 2002-10-04 2004-04-08 Chung-I Lee System and method for synchronously editing a file on different client computers
CN1244874C (zh) * 2002-10-12 2006-03-08 鸿富锦精密工业(深圳)有限公司 多点协同作业系统及方法
DE10250842B4 (de) * 2002-10-31 2010-11-11 OCé PRINTING SYSTEMS GMBH Verfahren, Computerprogrammprodukt und Vorrichtung zum Verarbeiten eines Dokumentendatenstroms eines Eingangsformates zu einem Ausgangsformat
US7818678B2 (en) 2002-10-31 2010-10-19 Litera Technology Llc Collaborative document development and review system
US7328243B2 (en) * 2002-10-31 2008-02-05 Sun Microsystems, Inc. Collaborative content coherence using mobile agents in peer-to-peer networks
US20040177343A1 (en) 2002-11-04 2004-09-09 Mcvoy Lawrence W. Method and apparatus for understanding and resolving conflicts in a merge
US7356393B1 (en) 2002-11-18 2008-04-08 Turfcentric, Inc. Integrated system for routine maintenance of mechanized equipment
US20040143630A1 (en) 2002-11-21 2004-07-22 Roy Kaufmann Method and system for sending questions, answers and files synchronously and asynchronously in a system for enhancing collaboration using computers and networking
US7954043B2 (en) 2002-12-02 2011-05-31 International Business Machines Corporation Concurrent editing of a file by multiple authors
US7209948B2 (en) * 2002-12-20 2007-04-24 International Business Machines, Corporation Collaborative review of distributed content
KR100490734B1 (ko) 2002-12-21 2005-05-24 한국전자통신연구원 주석기반 문서 자동 생성장치 및 방법
KR100462839B1 (ko) * 2002-12-24 2004-12-23 한국전자통신연구원 모바일 환경에서의 이동 클라이언트와 서버간의 데이터동기화 및 갱신 충돌 해결 방법
US7337388B2 (en) * 2003-01-02 2008-02-26 Microsoft Corporation Tool-based iterative document management
US7379928B2 (en) 2003-02-13 2008-05-27 Microsoft Corporation Method and system for searching within annotated computer documents
US8010491B2 (en) 2003-02-28 2011-08-30 Microsoft Corporation Method for managing multiple file states for replicated files
US7389309B2 (en) 2003-02-28 2008-06-17 Microsoft Corporation Method for managing file replication in applications
US8706760B2 (en) 2003-02-28 2014-04-22 Microsoft Corporation Method to delay locking of server files on edit
JP2004265193A (ja) 2003-03-03 2004-09-24 Canon Inc 情報処理方法、情報処理装置、サーバ装置の制御方法、サーバ装置
US20060259524A1 (en) 2003-03-17 2006-11-16 Horton D T Systems and methods for document project management, conversion, and filing
US9003295B2 (en) 2003-03-17 2015-04-07 Leo Martin Baschy User interface driven access control system and method
US7757162B2 (en) 2003-03-31 2010-07-13 Ricoh Co. Ltd. Document collection manipulation
US7155465B2 (en) 2003-04-18 2006-12-26 Lee Howard F Method and apparatus for automatically archiving a file system
JP2004326176A (ja) * 2003-04-21 2004-11-18 Matsushita Electric Works Ltd 情報サーバ、情報サーバ用プログラムおよび情報システム
US8819141B2 (en) 2003-05-16 2014-08-26 Syniverse Icx Corporation Centralized mobile and wireless messaging opt-out registry system and method
KR101163434B1 (ko) 2003-05-16 2012-07-13 구글 잉크. 네트워크된 챗과 미디어 공유 시스템 및 방법
US20040230893A1 (en) 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with node privileges
US7290251B2 (en) 2003-05-16 2007-10-30 Microsoft Corporation Method and system for providing a representation of merge conflicts in a three-way merge operation
US7373590B2 (en) 2003-05-19 2008-05-13 Microsoft Corporation Shared electronic ink annotation method and system
US7660829B2 (en) 2003-05-30 2010-02-09 Microsoft Corporation System and method for delegating file system operations
US7257769B2 (en) 2003-06-05 2007-08-14 Siemens Communications, Inc. System and method for indicating an annotation for a document
US9256753B2 (en) 2003-06-11 2016-02-09 Microsoft Technology Licensing, Llc Method and apparatus for protecting regions of an electronic document
US7444337B2 (en) 2004-03-09 2008-10-28 Ntt Docomo, Inc. Framework and associated apparatus for the adaptive replication of applications with server side code units
US8001187B2 (en) 2003-07-01 2011-08-16 Apple Inc. Peer-to-peer active content sharing
US7716593B2 (en) 2003-07-01 2010-05-11 Microsoft Corporation Conversation grouping of electronic mail records
WO2005008415A2 (en) * 2003-07-08 2005-01-27 Us Lynx Llc An automated publishing system that facilitates collaborative editing and accountability through virtual document architecture
US7315978B2 (en) 2003-07-30 2008-01-01 Ameriprise Financial, Inc. System and method for remote collection of data
AU2003903994A0 (en) * 2003-07-31 2003-08-14 Canon Kabushiki Kaisha Collaborative editing with automatic layout
US20050033811A1 (en) 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
US7363581B2 (en) * 2003-08-12 2008-04-22 Accenture Global Services Gmbh Presentation generator
US7401104B2 (en) 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
JP4393140B2 (ja) 2003-08-29 2010-01-06 京セラミタ株式会社 画像形成装置及び画像形成システム
US7302274B2 (en) * 2003-09-19 2007-11-27 Nokia Corporation Method and device for real-time shared editing mobile video
US7143117B2 (en) 2003-09-25 2006-11-28 International Business Machines Corporation Method, system, and program for data synchronization by determining whether a first identifier for a portion of data at a first source and a second identifier for a portion of corresponding data at a second source match
US8489769B2 (en) 2003-10-02 2013-07-16 Accenture Global Services Limited Intelligent collaborative expression in support of socialization of devices
US7242389B1 (en) 2003-10-07 2007-07-10 Microsoft Corporation System and method for a large format collaborative display for sharing information
US7831679B2 (en) 2003-10-15 2010-11-09 Microsoft Corporation Guiding sensing and preferences for context-sensitive services
US7185277B1 (en) 2003-10-24 2007-02-27 Microsoft Corporation Method and apparatus for merging electronic documents containing markup language
WO2005043279A2 (en) 2003-10-31 2005-05-12 Disksites Research And Development Ltd. Device, system and method for storage and access of computer files
US20050097440A1 (en) * 2003-11-04 2005-05-05 Richard Lusk Method and system for collaboration
US7203708B2 (en) 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons
US7458030B2 (en) 2003-12-12 2008-11-25 Microsoft Corporation System and method for realtime messaging having image sharing feature
US7839532B2 (en) * 2003-12-12 2010-11-23 Ipro Tech, Inc. Methods and apparatus for imaging documents
GB2409541A (en) 2003-12-23 2005-06-29 Mandorla Technology Ltd Editable information management system and method
US20050177617A1 (en) 2003-12-23 2005-08-11 Intel Corporation Conflict resolution during data synchronization
FR2865051B1 (fr) 2004-01-14 2006-03-03 Stg Interactive Procede et systeme pour l'exploitation d'un reseau informatique destine a la publication de contenu
US8108483B2 (en) 2004-01-30 2012-01-31 Microsoft Corporation System and method for generating a consistent user namespace on networked devices
US7225189B1 (en) 2004-02-19 2007-05-29 Microsoft Corporation Data source write back and offline data editing and storage in a spreadsheet
JP2005267021A (ja) * 2004-03-17 2005-09-29 Ricoh Co Ltd 文書作成方法、文書作成装置、プログラム、記憶媒体および文書のデータ構造
US20050216524A1 (en) 2004-03-23 2005-09-29 Integrated Data Corporation Smart and selective synchronization between databases in a document management system
US7912904B2 (en) 2004-03-31 2011-03-22 Google Inc. Email system with conversation-centric user interface
JP2005293015A (ja) 2004-03-31 2005-10-20 Sharp Corp 文書管理サーバ、文書管理システム、文書管理方法、文書管理プログラム及びこの文書管理プログラムを記録した記録媒体
JP2005301838A (ja) * 2004-04-14 2005-10-27 Sharp Corp 情報処理装置,情報処理システム,ファイル同時編集方法,及びファイル同時編集プログラム
CN1684059A (zh) 2004-04-14 2005-10-19 皇家飞利浦电子股份有限公司 一种多媒体信息文件的编辑方法和装置
US7818679B2 (en) 2004-04-20 2010-10-19 Microsoft Corporation Method, system, and apparatus for enabling near real time collaboration on an electronic document through a plurality of computer systems
JP2005309745A (ja) * 2004-04-21 2005-11-04 Nec Corp オリジナル画像文書情報と追記情報とを管理する文書管理ネットワークシステム、画像文書配信サーバ
WO2005103935A1 (en) * 2004-04-26 2005-11-03 Creo Inc. Systems and methods for comparing documents containing graphic elements
US7536636B2 (en) * 2004-04-26 2009-05-19 Kodak Graphic Communications Canada Company Systems and methods for comparing documents containing graphic elements
EP1751677A2 (en) * 2004-05-19 2007-02-14 Universität Zürich Computer-based system and computer program product for collaborative editing of documents
US20060031228A1 (en) 2004-05-20 2006-02-09 Bea Systems, Inc. Adaptive user interface for occasionally-connected application server
US7603357B1 (en) 2004-06-01 2009-10-13 Adobe Systems Incorporated Collaborative asset management
JP4716709B2 (ja) 2004-06-10 2011-07-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 構造化文書処理装置、構造化文書処理方法、及びプログラム
JP4069905B2 (ja) * 2004-06-28 2008-04-02 コニカミノルタビジネステクノロジーズ株式会社 共有ファイル管理システムおよびサーバー
JP2006031292A (ja) 2004-07-14 2006-02-02 Fuji Xerox Co Ltd 文書処理装置、文書処理方法及び文書処理プログラム
US7567988B2 (en) 2004-07-16 2009-07-28 Sap Ag Synchronizing agent for multiple clients/applications on a computer system
US7487471B2 (en) 2004-07-23 2009-02-03 Sap Ag User interface for conflict resolution management
US20060026502A1 (en) 2004-07-28 2006-02-02 Koushik Dutta Document collaboration system
US7966556B1 (en) * 2004-08-06 2011-06-21 Adobe Systems Incorporated Reviewing and editing word processing documents
US20060041596A1 (en) 2004-08-19 2006-02-23 Vlad Stirbu Caching directory server data for controlling the disposition of multimedia data on a network
KR101138434B1 (ko) 2004-08-31 2012-04-26 텐센트 테크놀로지(센젠) 컴퍼니 리미티드 실시간 통신 플랫폼에 기반하여 네트워크 하드디스크를실행하는 시스템 및 그 방법
US20060047656A1 (en) 2004-09-01 2006-03-02 Dehlinger Peter J Code, system, and method for retrieving text material from a library of documents
US20060080432A1 (en) 2004-09-03 2006-04-13 Spataro Jared M Systems and methods for collaboration
US7702730B2 (en) 2004-09-03 2010-04-20 Open Text Corporation Systems and methods for collaboration
US20060053195A1 (en) * 2004-09-03 2006-03-09 Schneider Ronald E Systems and methods for collaboration
US20060053194A1 (en) * 2004-09-03 2006-03-09 Schneider Ronald E Systems and methods for collaboration
US20070118794A1 (en) * 2004-09-08 2007-05-24 Josef Hollander Shared annotation system and method
CA2622404A1 (en) 2004-09-15 2006-03-23 Adesso Systems, Inc. System and method for managing data in a distributed computer system
TWI248002B (en) 2004-09-17 2006-01-21 Infopower Corp System and method of web-based editor for compound documents
KR20060034786A (ko) 2004-10-19 2006-04-26 이유정 복수의 이용자가 문서를 공동으로 편집하는 방법 및 그시스템
US7392243B2 (en) 2004-10-20 2008-06-24 Microsoft Corporation Using permanent identifiers in documents for change management
US7730129B2 (en) 2004-10-20 2010-06-01 Inbit, Inc. Collaborative communication platforms
US7814105B2 (en) 2004-10-27 2010-10-12 Harris Corporation Method for domain identification of documents in a document database
US7472341B2 (en) * 2004-11-08 2008-12-30 International Business Machines Corporation Multi-user, multi-timed collaborative annotation
US7577906B2 (en) * 2004-11-08 2009-08-18 Microsoft Corporation Method and system for document assembly
US7440967B2 (en) 2004-11-10 2008-10-21 Xerox Corporation System and method for transforming legacy documents into XML documents
US20060106879A1 (en) 2004-11-16 2006-05-18 International Business Machines Corporation Conflict resolution in a synchronization framework
US20060112343A1 (en) 2004-11-23 2006-05-25 Palo Alto Research Center Incorporated Methods, apparatus, and program products for aligning presentation of separately recorded experiential data streams
US7650336B1 (en) * 2004-12-02 2010-01-19 Adobe Systems Incorporated File system atomic lock
US8108773B2 (en) * 2004-12-17 2012-01-31 Xerox Corporation Method and apparatus for generating instances of documents
US7617229B2 (en) 2004-12-20 2009-11-10 Microsoft Corporation Management and use of data in a computer-generated document
US7908247B2 (en) * 2004-12-21 2011-03-15 Nextpage, Inc. Storage-and transport-independent collaborative document-management system
US7593943B2 (en) 2005-01-14 2009-09-22 Microsoft Corporation Method and system for synchronizing multiple user revisions to a shared object
US20060173901A1 (en) 2005-01-31 2006-08-03 Mediatek Incorporation Methods for merging files and related systems
US20060174207A1 (en) 2005-01-31 2006-08-03 Sharp Laboratories Of America, Inc. Systems and methods for implementing a user interface for multiple simultaneous instant messaging, conference and chat room sessions
US20060179026A1 (en) * 2005-02-04 2006-08-10 Bechtel Michael E Knowledge discovery tool extraction and integration
US7313580B2 (en) * 2005-02-08 2007-12-25 Domenico Vellante Systems and methods for sharing information between a user group and associated document
US7720890B2 (en) 2005-02-22 2010-05-18 Microsoft Corporation Ghosted synchronization
US7792788B2 (en) * 2005-03-04 2010-09-07 Microsoft Corporation Method and system for resolving conflicts operations in a collaborative editing environment
US20060218476A1 (en) 2005-03-25 2006-09-28 Xerox Corporation Collaborative document authoring and production methods and systems
US20070016650A1 (en) 2005-04-01 2007-01-18 Gilbert Gary J System and methods for collaborative development of content over an electronic network
RU50695U1 (ru) 2005-04-28 2006-01-20 ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ УНИТАРНОЕ ПРЕДПРИЯТИЕ "ГЛАВНОЕ ПРОИЗВОДСТВЕННО-КОММЕРЧЕСКОЕ УПРАВЛЕНИЕ ПО ОБСЛУЖИВАНИЮ ДИПЛОМАТИЧЕСКОГО КОРПУСА ПРИ МИНИСТЕРСТВЕ ИНОСТРАННЫХ ДЕЛ РОССИЙСКОЙ ФЕДЕРАЦИИ" (ГлавУпДК при МИД России) Система хранения и обработки данных
US7536641B2 (en) 2005-04-29 2009-05-19 Google Inc. Web page authoring tool for structured documents
US7454406B2 (en) * 2005-04-29 2008-11-18 Adaptec, Inc. System and method of handling file metadata
US20060265377A1 (en) 2005-05-19 2006-11-23 Trimergent Personalizable information networks
US7305420B2 (en) 2005-05-25 2007-12-04 Microsoft Corporation Synchronizing modifiable documents with multiple clients using document subsections
RU2304803C2 (ru) 2005-06-27 2007-08-20 Евгений Михайлович Растворов Система регистрации операций над данными, находящимися на устройствах хранения информации
US7610287B1 (en) 2005-06-28 2009-10-27 Google Inc. System and method for impromptu shared communication spaces
US7533354B2 (en) 2005-08-25 2009-05-12 International Business Machines Corporation Technique for selecting and prioritizing choices
US7779347B2 (en) * 2005-09-02 2010-08-17 Fourteen40, Inc. Systems and methods for collaboratively annotating electronic documents
US8326926B2 (en) 2005-09-13 2012-12-04 Mentor Graphics Corporation Distributed electronic design automation architecture
TWI276325B (en) * 2005-09-16 2007-03-11 Hon Hai Prec Ind Co Ltd Mobile communication device and method for downloading configuration files thereof and wireless communication system
WO2007034858A1 (ja) 2005-09-22 2007-03-29 Justsystems Corporation データ管理装置、データ編集装置、データ閲覧装置、データ管理方法、データ編集方法およびデータ閲覧方法
JP2007115131A (ja) 2005-10-21 2007-05-10 Canon Inc 情報処理装置及びその制御方法、情報処理システム、コンピュータプログラム、記憶媒体
GB0523703D0 (en) 2005-11-22 2005-12-28 Ibm Collaborative editing of a document
CN1979466A (zh) 2005-11-29 2007-06-13 国际商业机器公司 允许多个用户同时编辑一个共享的电子文档的方法及装置
US8434021B2 (en) 2005-11-30 2013-04-30 Microsoft Corporation Centralized user interface for displaying contextually driven business content and business related functionality
US8015194B2 (en) * 2005-12-29 2011-09-06 Ricoh Co., Ltd. Refining based on log content
US7529780B1 (en) 2005-12-30 2009-05-05 Google Inc. Conflict management during data object synchronization between client and server
US7774703B2 (en) 2006-02-09 2010-08-10 Microsoft Corporation Virtual shadow awareness for multi-user editors
US20070198952A1 (en) 2006-02-21 2007-08-23 Pittenger Robert A Methods and systems for authoring of a compound document following a hierarchical structure
US20070226604A1 (en) 2006-03-22 2007-09-27 Chalasani Nanchariah R System and method for merging a sub-document into a collaboratively authored master document
US8566301B2 (en) 2006-05-01 2013-10-22 Steven L. Rueben Document revisions in a collaborative computing environment
GB0610116D0 (en) * 2006-05-20 2006-06-28 Ibm A method, apparatus and computer program for collaborative editing of a document
US8407670B2 (en) 2006-06-02 2013-03-26 Microsoft Corporation Collaborative code conflict detection, notification and resolution
US8122341B1 (en) 2006-06-17 2012-02-21 Google Inc. Sharing geographical information between users
US20080059539A1 (en) * 2006-08-08 2008-03-06 Richard Chin Document Collaboration System and Method
US8453052B1 (en) 2006-08-16 2013-05-28 Google Inc. Real-time document sharing and editing
US7801951B2 (en) * 2006-08-25 2010-09-21 Reframe-It, Inc. Process for referencing, prioritizing, accessing, and displaying marginalia in digital media
US8401841B2 (en) 2006-08-31 2013-03-19 Orcatec Llc Retrieval of documents using language models
EP2067102A2 (en) * 2006-09-15 2009-06-10 Exbiblio B.V. Capture and display of annotations in paper and electronic documents
US9207933B2 (en) 2006-10-10 2015-12-08 International Business Machines Corporation Identifying authors of changes between multiple versions of a file
JP5437557B2 (ja) * 2006-10-19 2014-03-12 富士通株式会社 検索処理方法及び検索システム
US20080098294A1 (en) * 2006-10-23 2008-04-24 Mediq Learning, L.L.C. Collaborative annotation of electronic content
US7698660B2 (en) 2006-11-13 2010-04-13 Microsoft Corporation Shared space for communicating information
US20080114740A1 (en) * 2006-11-14 2008-05-15 Xcential Group Llc System and method for maintaining conformance of electronic document structure with multiple, variant document structure models
US8769006B2 (en) 2006-11-28 2014-07-01 International Business Machines Corporation Role-based display of document renditions for web conferencing
US8468244B2 (en) 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
RU2327206C1 (ru) 2007-01-17 2008-06-20 Федеральное государственное унитарное предприятие "Научно-исследовательский институт "Восход" Система разграничения доступа к документам в распределенной сети электронного документооборота
JP2008186176A (ja) 2007-01-29 2008-08-14 Canon Inc 画像処理装置、文書結合方法および制御プログラム
KR100904758B1 (ko) * 2007-02-08 2009-06-29 삼성전자주식회사 버퍼 메모리를 포함하는 플래쉬 메모리 장치 및 시스템,플래쉬 메모리 장치의 데이터 업데이트 방법
JP2010518459A (ja) * 2007-02-14 2010-05-27 ミューズアミ, インコーポレイテッド 配布オーディオファイル編集用ウェブポータル
US20080294895A1 (en) * 2007-02-15 2008-11-27 Michael Bodner Disaggregation/reassembly method system for information rights management of secure documents
JP5023736B2 (ja) 2007-02-27 2012-09-12 富士ゼロックス株式会社 端末装置、及びプログラム
US8868504B2 (en) 2007-03-07 2014-10-21 Oracle International Corporation Database system with active standby and nodes
US7949938B2 (en) 2007-03-20 2011-05-24 International Business Machines Corporation Comparing and merging multiple documents
US8019780B1 (en) 2007-03-30 2011-09-13 Google Inc. Handling document revision history information in the presence of a multi-user permissions model
US20080256114A1 (en) 2007-04-10 2008-10-16 Microsoft Corporation Techniques to display associated information between application programs
US8024652B2 (en) 2007-04-10 2011-09-20 Microsoft Corporation Techniques to associate information between application programs
US8504553B2 (en) 2007-04-19 2013-08-06 Barnesandnoble.Com Llc Unstructured and semistructured document processing and searching
US7769810B1 (en) 2007-04-26 2010-08-03 Adobe Systems Incorporated Method and system for collaborative editing
JP5154832B2 (ja) 2007-04-27 2013-02-27 株式会社日立製作所 文書検索システム及び文書検索方法
US8082277B1 (en) 2007-06-05 2011-12-20 The Board of Trustees of the University of Alabama, for and on behalf of the University of Alabamaiin Huntsville Systems and methods for generating technical documents
US20080320384A1 (en) 2007-06-25 2008-12-25 Ramesh Nagarajan Automated addition of images to text
US8239760B2 (en) 2007-06-26 2012-08-07 Sap Ag Multi-user document editing system and method
JP2009009410A (ja) 2007-06-28 2009-01-15 Hiroshi Ueno 文章編集支援システムおよびプログラム
US8762880B2 (en) 2007-06-29 2014-06-24 Microsoft Corporation Exposing non-authoring features through document status information in an out-space user interface
US7937663B2 (en) * 2007-06-29 2011-05-03 Microsoft Corporation Integrated collaborative user interface for a document editor program
US7933952B2 (en) * 2007-06-29 2011-04-26 Microsoft Corporation Collaborative document authoring
JP5334335B2 (ja) 2007-07-02 2013-11-06 フラウンホファー・ゲゼルシャフト・ツール・フォルデルング・デル・アンゲバンテン・フォルシュング・アインゲトラーゲネル・フェライン メディアデータコンテナおよびメタデータコンテナを有するファイルを記憶および読み出すための装置および方法
WO2009027138A1 (en) * 2007-08-30 2009-03-05 International Business Machines Corporation Accessing data entities
US8595202B2 (en) 2007-10-03 2013-11-26 Siemens Aktiengesellschaft Method and system for intra-document object locking in collaborative authoring
US8280892B2 (en) 2007-10-05 2012-10-02 Fujitsu Limited Selecting tags for a document by analyzing paragraphs of the document
US7941399B2 (en) 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US8028229B2 (en) 2007-12-06 2011-09-27 Microsoft Corporation Document merge
US7797274B2 (en) 2007-12-12 2010-09-14 Google Inc. Online content collaboration model
US8825758B2 (en) 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes
US8291308B2 (en) 2007-12-28 2012-10-16 International Business Machines Corporation Annotating collaborative information structures
US8301588B2 (en) 2008-03-07 2012-10-30 Microsoft Corporation Data storage for file updates
US20090249224A1 (en) 2008-03-31 2009-10-01 Microsoft Corporation Simultaneous collaborative review of a document
US8352870B2 (en) 2008-04-28 2013-01-08 Microsoft Corporation Conflict resolution
US8825594B2 (en) 2008-05-08 2014-09-02 Microsoft Corporation Caching infrastructure
US8429753B2 (en) * 2008-05-08 2013-04-23 Microsoft Corporation Controlling access to documents using file locks
US7949633B1 (en) 2008-05-12 2011-05-24 Adobe Systems Incorporated Shared edit access of electronic content
US8417666B2 (en) 2008-06-25 2013-04-09 Microsoft Corporation Structured coauthoring
US8332359B2 (en) 2008-07-28 2012-12-11 International Business Machines Corporation Extended system for accessing electronic documents with revision history in non-compatible repositories
US9348499B2 (en) 2008-09-15 2016-05-24 Palantir Technologies, Inc. Sharing objects that rely on local resources with outside servers
US8286132B2 (en) * 2008-09-25 2012-10-09 International Business Machines Corporation Comparing and merging structured documents syntactically and semantically
US20100095198A1 (en) 2008-10-15 2010-04-15 Apple Inc. Shared comments for online document collaboration
US20100131836A1 (en) 2008-11-24 2010-05-27 Microsoft Corporation User-authored notes on shared documents
US20100169092A1 (en) 2008-11-26 2010-07-01 Backes Steven J Voice interface ocx
US8346768B2 (en) 2009-04-30 2013-01-01 Microsoft Corporation Fast merge support for legacy documents

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080177782A1 (en) 2007-01-10 2008-07-24 Pado Metaware Ab Method and system for facilitating the production of documents

Also Published As

Publication number Publication date
EP2279474A2 (en) 2011-02-02
RU2491621C2 (ru) 2013-08-27
KR20100135835A (ko) 2010-12-27
CN102016834B (zh) 2013-09-25
US8352870B2 (en) 2013-01-08
JP5443471B2 (ja) 2014-03-19
MY156947A (en) 2016-04-15
AU2009241535B2 (en) 2014-08-21
AU2009241535A1 (en) 2009-11-05
EP2279474A4 (en) 2011-12-07
US9760862B2 (en) 2017-09-12
JP2011519105A (ja) 2011-06-30
RU2010144042A (ru) 2012-05-10
IL208040A (en) 2016-06-30
US20090271696A1 (en) 2009-10-29
MX2010011402A (es) 2010-11-22
CA2718106A1 (en) 2009-11-05
BRPI0909214A8 (pt) 2017-12-12
WO2009134548A3 (en) 2010-01-21
IL208040A0 (en) 2010-12-30
ZA201006415B (en) 2011-12-28
US20130013997A1 (en) 2013-01-10
BRPI0909214A2 (pt) 2017-10-24
CN102016834A (zh) 2011-04-13
WO2009134548A2 (en) 2009-11-05

Similar Documents

Publication Publication Date Title
KR101563761B1 (ko) 충돌 해결
US11455459B2 (en) Collaborative authoring
KR101571574B1 (ko) 협업적 저작 모드

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180918

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190917

Year of fee payment: 5