KR20120017442A - 서버 저장 모델을 이용하는 파일 파티션들의 동기화 - Google Patents

서버 저장 모델을 이용하는 파일 파티션들의 동기화 Download PDF

Info

Publication number
KR20120017442A
KR20120017442A KR1020117028994A KR20117028994A KR20120017442A KR 20120017442 A KR20120017442 A KR 20120017442A KR 1020117028994 A KR1020117028994 A KR 1020117028994A KR 20117028994 A KR20117028994 A KR 20117028994A KR 20120017442 A KR20120017442 A KR 20120017442A
Authority
KR
South Korea
Prior art keywords
partition
computer
client computer
file
server computer
Prior art date
Application number
KR1020117028994A
Other languages
English (en)
Other versions
KR101655497B1 (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 KR20120017442A publication Critical patent/KR20120017442A/ko
Application granted granted Critical
Publication of KR101655497B1 publication Critical patent/KR101655497B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1062Editing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting

Landscapes

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

Abstract

클라이언트-서버 컴퓨터 네트워크에서 서버 저장 모델을 이용하여 파일 파티션들을 동기화하기 위한 실시예들이 제공된다. 전자 문서의 콘텐츠에 대한 편집들이 클라이언트 컴퓨터에서 수신될 수 있다. 콘텐츠는 서버 컴퓨터 상에 저장된 파일의 제1 파티션 내에 포함될 수 있다. 제1 파티션은 전자 문서 콘텐츠를 포함하는 제1 스트림을 포함할 수 있다. 파일은 다수의 파티션을 포함할 수 있으며, 각각의 파티션은 하나 이상의 스트림을 포함할 수 있다. 클라이언트 컴퓨터는 파일의 제2 파티션 내에 메타데이터를 생성할 수 있다. 메타데이터는 제1 파티션 내의 전자 문서 콘텐츠에 대한 편집들과 연관될 수 있다. 이어서, 메타데이터를 저장하기 위해 제2 파티션이 서버 컴퓨터와 개별적으로 동기화될 수 있다. 이어서, 전자 문서 콘텐츠에 대해 행해진 편집들을 저장하기 위해 제1 파티션이 서버 컴퓨터와 개별적으로 동기화될 수 있다.

Description

서버 저장 모델을 이용하는 파일 파티션들의 동기화{SYNCHRONIZING FILE PARTITIONS UTILIZING A SERVER STORAGE MODEL}
클라이언트-서버 컴퓨터 네트워크들에서, 전자 문서 파일은 상이한 클라이언트 컴퓨터들에서 다수의 사용자에 의해 편집될 수 있다. 전자 문서 파일은 주요 문서 파일 콘텐츠와 다르며 독립적인 관련 편집 세션 데이터(예를 들어, 메타데이터)를 포함할 수 있다. 전자 문서 파일은 네트워크 내의 다른 클라이언트 컴퓨터들의 사용자들이 다음에 볼 수 있는 전자 문서 파일에 대해 행해진 임의의 편집들을 저장하기 위하여 클라이언트 컴퓨터와 중앙 서버 사이에서 동기화된다. 기존의 동기화 방법들에서는, 임의의 관련 메타데이터가 전자 문서 파일에 대해 행해진 편집들과 함께 동기화되어야 한다. 특히, 마크업 언어 또는 객체 연결 및 삽입("OLE") 복합 문서들의 경우에는, 동기화를 위해 메타데이터가 확장형 파일 포맷 내에 넣어질 수 있다. 동기화의 결과로서, 전자 문서 파일을 동기화하는 사용자가 다른 사용자들에 의해 메타데이터가 보여지거나 (전자 문서 파일 내에) 다운로드되는 것을 원하지 않는 경우에도, 전자 문서 파일과 관련된 메타데이터가 서버 상에 자동으로 노출된다. 본 발명의 실시예들이 창출된 것은 이러한 고려 사항 및 다른 고려 사항들에 관련된 것이다.
본 요약은 아래에 발명을 실시하기 위한 구체적인 내용에서 더 설명되는 개념들의 발췌를 간단한 형태로 소개하기 위해 제공된다. 본 요약은 청구 발명의 중요한 특징들 또는 필수적인 특징들을 식별하도록 의도되지 않으며, 청구 발명의 범위를 결정하는 데 있어서의 보조로서도 의도되지 않는다.
클라이언트-서버 컴퓨터 네트워크에서 서버 저장 모델을 이용하여 파일 파티션들을 동기화하기 위한 실시예들이 제공된다. 전자 문서의 콘텐츠에 대한 편집들이 클라이언트 컴퓨터에서 수신될 수 있다. 콘텐츠는 서버 컴퓨터 상에 저장된 파일의 제1 파티션 내에 포함될 수 있다. 제1 파티션은 전자 문서 콘텐츠를 포함하는 제1 스트림을 포함할 수 있다. 파일은 다수의 파티션을 포함할 수 있으며, 각각의 파티션은 하나 이상의 스트림을 포함할 수 있다. 클라이언트 컴퓨터는 파일의 제2 파티션 내에 메타데이터를 생성할 수 있다. 메타데이터는 제1 파티션 내의 전자 문서 콘텐츠에 대한 편집들과 연관될 수 있다. 이어서, 메타데이터를 저장하기 위해 제2 파티션이 서버 컴퓨터와 개별적으로 동기화될 수 있다. 이어서, 전자 문서 콘텐츠에 대해 행해진 편집들을 저장하기 위해 제1 파티션이 서버 컴퓨터와 개별적으로 동기화될 수 있다.
이들 및 다른 특징들 및 이점들은 아래의 상세한 설명을 읽고 관련 도면들을 검토할 때 명확할 것이다. 위의 일반 설명 및 아래의 상세한 설명 모두는 예시적일 뿐, 청구되는 바와 같은 본 발명을 한정하지 않는다.
도 1은 다양한 실시예들에 따른, 파일 파티션들을 동기화하기 위해 서버 저장 모델을 이용할 수 있는 클라이언트-서버 네트워크 아키텍처를 나타내는 블록도이다.
도 2는 다양한 실시예들에 따른, 파일 파티션들을 동기화하기 위해 서버 저장 모델을 이용할 수 있는 클라이언트 컴퓨팅 환경을 나타내는 블록도이다.
도 3은 일 실시예에 따른, 서버 저장 모델을 이용하여 파일 파티션들을 동기화하기 위한 루틴을 나타내는 흐름도이다.
도 4는 도 3에 도시된 실시예에 따른, 서버 저장 모델을 이용하여 단일 파일 파티션을 동기화하기 위한 루틴을 나타내는 흐름도이다.
도 5는 도 3에 도시된 실시예에 따른, 서버 저장 모델을 이용하여 다른 파일 파티션을 동기화하기 위한 루틴을 나타내는 흐름도이다.
도 6은 다른 실시예에 따른, 서버 저장 모델을 이용하여 파일 파티션들을 동기화하기 위한 루틴을 나타내는 흐름도이다.
도 7은 도 6에 도시된 실시예에 따른, 서버 저장 모델을 이용하여 제2 클라이언트 컴퓨터 상의 파일 파티션을 동기화하기 위한 루틴을 나타내는 흐름도이다.
클라이언트-서버 컴퓨터 네트워크에서 서버 저장 모델을 이용하여 파일 파티션들을 동기화하기 위한 실시예들이 제공된다. 전자 문서의 콘텐츠에 대한 편집들이 클라이언트 컴퓨터에서 수신될 수 있다. 콘텐츠는 서버 컴퓨터 상에 저장된 파일의 제1 파티션 내에 포함될 수 있다. 제1 파티션은 전자 문서 콘텐츠를 포함하는 제1 스트림을 포함할 수 있다. 파일은 다수의 파티션을 포함할 수 있고, 각각의 파티션은 하나 이상의 스트림을 포함할 수 있다. 클라이언트 컴퓨터는 파일의 제2 파티션 내에 메타데이터를 생성할 수 있다. 메타데이터는 제1 파티션 내의 전자 문서 콘텐츠에 대한 편집들과 연관될 수 있다. 이어서, 메타데이터를 저장하기 위해 제2 파티션이 서버 컴퓨터와 개별적으로 동기화될 수 있다. 이어서, 전자 문서 콘텐츠에 대해 행해진 편집들을 저장하기 위해 제1 파티션이 서버 컴퓨터와 개별적으로 동기화될 수 있다.
아래의 상세한 설명에서는, 그 일부를 형성하고, 특정 실시예들 또는 사례들을 예시적으로 도시하는 첨부 도면들을 참조한다. 이들 실시예는 결합될 수 있고, 다른 실시예들이 이용될 수 있으며, 본 발명의 사상 또는 범위를 벗어나지 않고 구조적인 변경들이 이루어질 수 있다. 따라서, 아래의 상세한 설명은 제한적인 의미로 간주되지 않아야 하며, 본 발명의 범위는 첨부된 청구항들 및 그들의 균등물들에 의해 정해진다.
이제, 여러 도면들을 통해 동일한 번호들이 동일한 요소들을 나타내는 도면들을 참조하여 본 발명의 다양한 양태들을 설명한다. 도 1은 다양한 실시예들에 따른, 파일 파티션들을 동기화하기 위해 서버 저장 모델을 이용할 수 있는 클라이언트-서버 네트워크 아키텍처를 나타내는 블록도이다. 네트워크 아키텍처는 클라이언트 컴퓨터(2) 및 클라이언트 컴퓨터(6)를 포함하며, 이들 양자는 네트워크(4)를 통해 서버(70)와 통신한다. 네트워크(4)는 근거리 네트워크 또는 광역 네트워크(예를 들어, 인터넷)를 포함할 수 있다.
클라이언트 컴퓨터(2)는 (또한 클라이언트 컴퓨터(2) 상에 저장된) 전자 문서 파일(40)을 편집하는 데 사용될 수 있는 생산성 애플리케이션(30)을 저장할 수 있다. 다양한 실시예들에 따르면, 생산성 애플리케이션(30)은 워싱턴 레드몬드의 마이크로소프트사로부터의 WORD 워드 프로세싱 소프트웨어, POWERPOINT 프레젠테이션 그래픽 프로그램 및 GROOVE 소프트웨어를 포함할 수 있다. 그러나, 다른 제조자들로부터의 다른 생산성 또는 애플리케이션 프로그램들도 본 명세서에서 설명되는 다양한 실시예들에 따라 이용될 수 있다는 것을 알아야 한다.
전자 문서 파일(40)은 서버 컴퓨터(70)로부터의 네트워크(4)를 통한 다운로드 동작을 통해 클라이언트 컴퓨터(2)에서 수신되거나, 클라이언트 컴퓨터(2) 상의 생산성 애플리케이션(30)에 의해 생성될 수 있다. 전자 문서 파일(40)은 파티션(50)을 포함할 수 있다. 파티션(50)은 스트림들(52, 56)을 포함할 수 있다. 스트림(52)은 콘텐츠(즉, 전자 문서 콘텐츠)(54A)를 더 포함할 수 있다. 전자 문서 파일(40)은 파티션(60)도 포함할 수 있다. 파티션(60)은 스트림들(62, 68)을 포함할 수 있다. 스트림(62)은 메타데이터(64A)를 더 포함할 수 있다. 일 실시예에 따르면, 메타데이터(64A)는 파티션(50) 내에 저장된 콘텐츠(54A)와 연관될 수 있다. 특히, 메타데이터(64A)는 콘텐츠(54A)의 하나 이상의 저자를 기술하는 저자 리스트(67A) 및 전자 문서 파일(40)의 현재 사용자(예를 들어, 콘텐츠(54A)를 현재 편집하고 있는 사용자)를 기술하는 문서 잠금들(66A)을 포함할 수 있다.
다양한 실시예들에 따르면, "파티션"은 (전자 문서 파일(40)과 같은) 파일 내의 "파일"로서 정의되며, 하나 이상의 스트림을 포함할 수 있다. 파티션 내에 포함되는 "스트림"은 (콘텐츠(54A) 또는 메타데이터(64A)와 같은) 전자 문서 파일과 관련된 데이터를 포함한다. 파일 내의 파티션들 각각은 서로 독립적으로 그리고 상이한 동기화 레이트들로 동기화될 수 있다는 것을 이해해야 한다(즉, 단일 파일 내의 파티션들은 상이한 시각들에 동기화될 수 있다). 더구나, 동일 파티션 내의 다수의 스트림은 서로 관련되지만, 상이한 파티션들 내의 스트림들 사이에는 관계가 존재하지 않을 수 있다. 예컨대, 스트림(56)은 전자 문서 콘텐츠와 연관된(따라서, 스트림(52)과 관련된) 데이터를 포함하지만, 전자 문서 파일(40)과 연관된 메타데이터를 포함하지 않을 수 있다. 게다가, 주어진 파티션 내의 다수의 스트림은 동시에 동기화되며, 따라서 동일 파티션 내의 스트림들 사이의 일관성이 보증된다.
클라이언트 컴퓨터(6)는 (또한 클라이언트 컴퓨터(6)에 저장된) 전자 문서 파일(40)을 편집하는 데에도 사용될 수 있는 생산성 애플리케이션(30)을 저장할 수 있다. 전자 문서 파일(40)은 서버 컴퓨터(70)로부터의 네트워크(4)를 통한 다운로드 동작을 통해 클라이언트 컴퓨터(6)에서 수신되거나, 클라이언트 컴퓨터(6) 상의 생산성 애플리케이션(30)에 의해 생성될 수 있다. 전자 문서 파일(40)은 파티션(50)을 포함할 수 있다. 파티션(50)은 스트림들(52, 56)을 포함할 수 있다. 스트림(52)은 콘텐츠(즉, 전자 문서 콘텐츠)(54B)를 더 포함할 수 있다. 전자 문서 파일(40)은 파티션(60)도 포함할 수 있다. 파티션(60)은 스트림들(62, 68)을 포함할 수 있다. 스트림(62)은 메타데이터(64B)를 더 포함할 수 있다. 다양한 실시예에 따르면, "메타데이터"는 파티션 내에 스트림과 함께 포함된 콘텐츠를 나타낸다는 것을 이해해야 한다. 일 실시예에서, 메타데이터(64B)는 파티션(50) 내에 저장된 콘텐츠(54B)와 연관될 수 있다. 특히, 메타데이터(64B)는 콘텐츠(54B)의 하나 이상의 저자를 기술하는 저자 리스트(67B) 및 전자 문서 파일(40)의 현재 사용자(예를 들어, 콘텐츠(54B)를 현재 편집하고 있는 사용자)를 기술하는 문서 잠금들(66B)을 포함할 수 있다.
서버 컴퓨터(70)는 서버 애플리케이션(42)을 저장할 수 있다. 다양한 실시예에 따르면, 서버 컴퓨터(70)는 클라이언트 컴퓨터들(2, 6) 상에서 생성된 전자 파일들에 대한 문서 저장 시스템으로서 기능할 수 있다. 서버 애플리케이션(42)은 마이크로소프트사로부터의 SHAREPOINT SERVER 서비스 애플리케이션과 같은 협력 서비스 애플리케이션 프로그램을 포함할 수 있다. 이 분야의 기술자들에게 공지된 바와 같이, SHAREPOINT 서비스 기술은 사용자들로 하여금 정보를 공유하기 위한 협력 환경을 생성하고, 유지하고, 제공할 수 있게 해준다. 이 기술을 이용하여, 사용자 또는 조직은 하나 이상의 웹사이트를 생성하여, 웹사이트들과 관련된 다른 사용자들을 위해 정보(예컨대, 웹 서버 또는 웹 폴더 상의 문서 등)를 제공하고 공유할 수 있다. 본 명세서에서 설명되는 실시예들은 SHAREPOINT 서비스 기술로 한정되는 것으로 해석되지 않아야 하며, 다른 개발자들 및/또는 제조자들로부터의 다른 협력 서비스 기술도 이용될 수 있다는 것을 이해해야 한다.
서버 컴퓨터(70)는 전자 문서 파일(40)도 저장할 수 있다. 전자 문서 파일(40)은 파티션(50)을 포함할 수 있다. 파티션(50)은 스트림들(52, 56)을 포함할 수 있다. 스트림(52)은 콘텐츠(즉, 전자 문서 콘텐츠)(54)를 더 포함할 수 있다. 전자 문서 파일(40)은 파티션(60)도 포함할 수 있다. 파티션(60)은 스트림들(62, 68)을 포함할 수 있다. 스트림(62)은 메타데이터(64)를 더 포함할 수 있다. 일 실시예에 따르면, 메타데이터(64)는 파티션(50)에 저장된 콘텐츠(54)와 연관될 수 있다. 특히, 메타데이터(64)는 콘텐츠(54)의 하나 이상의 저자를 기술하는 저자 리스트(67) 및 전자 문서 파일(40)의 현재 사용자(예를 들어, 콘텐츠(54)를 현재 편집하고 있는 사용자)를 기술하는 문서 잠금들(66)을 포함할 수 있다. 일 실시예에 따르면, 전자 문서 파일(40)은 편집을 위해 서버 컴퓨터(70)로부터 클라이언트 컴퓨터들(2, 6)로 다운로드될 수 있으며, 따라서 서버 컴퓨터(70)에 다시 동기화되기 전에 변경들이 행해질 때 전자 문서 파일(40) 내의 콘텐츠(54) 및 메타데이터(64)의 상이한 버전들이 잠재적으로 생성될 수 있다는 것을 이해해야 한다. 따라서, 본 상세한 설명에서, 클라이언트 컴퓨터들(2, 6) 상의 콘텐츠(54) 및 메타데이터(64)의 버전들은 이러한 파일 컴포넌트들에 대한 참조 번호들 뒤에 부가된 문자 "A" 및 "B"에 의해 식별된다.
다양한 실시예에 따르면 그리고 도 3-7과 관련하여 아래에 더 상세히 설명되는 바와 같이, 서버 애플리케이션(42) 및 생산성 애플리케이션(30)은 클라이언트 컴퓨터들(2, 6) 상의 파티션들(50, 60)과 서버 컴퓨터(70)의 동기화를 용이하게 하도록 구성될 수 있다. 일 실시예에 따르면, 서버 애플리케이션(42)은 (무상태(stateless) 프로토콜을 포함하지만 이에 한정되지 않는) 프로토콜을 이용하여 증대 문서 동기화를 용이하게 하고, 서버 파일들에 대한 지원을 추가하여 다수의 독립적인 또는 종속적인 데이터 스트림을 노출시키도록 구성될 수 있다. 따라서, 전자 파일 내의 파티션들의 각각은 서로 독립적으로 그리고 상이한 동기화 레이트들로 동기화될 수 있다(즉, 단일 파일 내의 파티션들은 상이한 시각들에 동기화될 수 있다). 예를 들어, 서버 애플리케이션(42)은 생산성 애플리케이션(30)과 연계하여 (콘텐츠(54A)를 포함하는) 파티션(50) 전에 클라이언트 컴퓨터(2) 상의 (메타데이터(64)를 포함하는) 파티션(60)과 서버 컴퓨터(70)를 동기화하도록 구성될 수 있다. 상이한 레이트들로 파티션들을 동기화함으로써, 네트워크(4)를 통해 서버 컴퓨터(70)로 통신되는 데이터의 양이 감소하며, 따라서 서버 확장성이 개선된다는 것을 알아야 한다. 다양한 실시예에 따라 이용될 수 있는 예시적인 무상태 프로토콜이 2008년 5월 2일자로 출원된 "Document Synchronization over Stateless Protocols"라는 제목의 관련 미국 특허 출원 제12/113,975호에 설명되어 있으며, 이 출원의 명세서는 그 전체가 본 명세서에 참고로 포함된다.
클라이언트 컴퓨터들(2, 6) 및 서버 컴퓨터(70)와 관련하여 설명되는 다양한 파티션들 및 스트림들은 예시적일 뿐, 다양한 실시예에 따라 전자 문서 파일 내에 포함될 수 있는 파티션들 또는 스트림들의 수로 한정되지 않는다는 것을 이해해야 한다. 예컨대, 일 실시예에 따르면, 전자 문서 파일은 단일 파티션 및 단일 스트림만을 포함할 수 있는 반면, 다른 실시예들에 따르면, 전자 문서 파일은 다수의 파티션 및 다수의 스트림을 포함할 수 있다. 다양한 실시예에 따르면, 클라이언트 컴퓨터들(2, 6) 및 서버 컴퓨터(70) 상의 전자 문서 파일 내에 포함된 스트림들의 콘텐츠는 메타데이터로 한정되는 것이 아니라, 일반 데이터(즉, 전자 문서 파일 파티션에 저장된 콘텐츠와 관련되지 않은 데이터)도 포함할 수 있다는 것을 더 이해해야 한다. 본 명세서에서 설명되는 실시예들은 전술한 소프트웨어 애플리케이션들로 한정되는 것으로 해석되지 않아야 하며, 다른 개발자들 및/또는 제조자들로부터의 다른 소프트웨어 애플리케이션들도 이용될 수 있다는 것을 더 이해해야 한다. 도 1의 네트워크 아키텍처 및 그의 컴포넌트들은 다른 컴퓨팅 장치들, 통신 장치들 및/또는 다른 시스템들과 통신하기 위한 기능을 포함하며, 본 명세서에서 설명되는 실시예들 및 사례들로 한정되는 것을 의도하지 않는다는 것을 더 이해해야 한다. 따라서, 예컨대, 도 1의 네트워크 아키텍처는 다양한 실시예에 따라 서버 컴퓨터(70)와 통신하는 추가적인 클라이언트 컴퓨터들을 포함할 수 있다.
예시적인 운영 환경
이제, 도 2를 참조하면, 아래의 설명은 다양한 예시적인 실시예들이 구현될 수 있는 적절한 컴퓨팅 환경의 간단한 일반 설명을 제공하는 것을 의도한다. 개인용 컴퓨터 상의 운영 체제 상에서 동작하는 프로그램 모듈들과 관련하여 실행되는 프로그램 모듈들과 일반적으로 관련하여 다양한 실시예들이 설명되지만, 이 분야의 기술자들은 다양한 실시예들이 다른 타입의 컴퓨터 시스템들 및 프로그램 모듈들과 관련하여서도 구현될 수 있다는 것을 인식할 것이다.
일반적으로, 프로그램 모듈들은 특정 작업들을 수행하거나 특정 추상 데이터 타입들을 구현하는 루틴들, 프로그램들, 컴포넌트들, 데이터 구조들 및 다른 타입의 구조들을 포함한다. 더욱이, 이 분야의 기술자들은 다양한 실시예들이 핸드헬드 장치들, 멀티프로세서 시스템들, 마이크로프로세서 기반 또는 프로그래머블 소비자 전자 장치들, 미니컴퓨터들, 메인프레임 컴퓨터들 등을 포함하는 다른 컴퓨터 시스템 구성들을 이용하여 실시될 수 있다는 것을 알 것이다. 다양한 실시예들은 통신 네트워크를 통해 연결된 원격 처리 장치들에 의해 작업들이 수행되는 분산 컴퓨팅 환경들에서도 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및 원격 메모리 저장 장치들 모두에 위치할 수 있다.
도 2는 하나 이상의 애플리케이션 프로그램을 실행할 수 있는 범용 데스크탑, 랩탑, 핸드헬드, 태블릿 또는 다른 타입의 컴퓨터를 포함할 수 있는 클라이언트 컴퓨터(2)를 나타낸다. 클라이언트 컴퓨터(2)는 적어도 하나의 중앙 처리 유닛(8)("CPU"), 랜덤 액세스 메모리(18)("RAM") 및 판독 전용 메모리("ROM")(20)를 포함하는 시스템 메모리(12), 및 메모리를 CPU(8)에 결합하는 시스템 버스(10)를 포함한다. 이를테면 시동 중에 컴퓨터 내의 요소들 간의 정보 전달을 돕는 기본 루틴들을 포함하는 기본 입출력 시스템이 ROM(20)에 저장된다. 클라이언트 컴퓨터(2)는 운영 체제(32), 생산성 애플리케이션(30), 및 도 1과 관련하여 전술한 파티션(50), 스트림들(52, 56, 62, 68), 콘텐츠(54A), 메타데이터(64A), 저자 리스트(67A) 및 문서 잠금들(66A)을 포함하는 전자 문서 파일(40)을 저장하기 위한 대용량 저장 장치(14)를 더 포함한다.
다양한 실시예에 따르면, 운영 체제(32)는 워싱턴 레드몬드의 마이크로소프트사로부터의 WINDOWS 운영 체제들과 같이 네트워킹된 개인용 컴퓨터의 동작을 제어하는 데 적합할 수 있다. 대용량 저장 장치(14)는 버스(10)에 접속된 대용량 저장 장치 제어기(도시되지 않음)를 통해 CPU(8)에 접속된다. 대용량 저장 장치(14) 및 그와 관련된 컴퓨터 판독 가능 매체들은 클라이언트 컴퓨터(2)를 위한 비휘발성 저장을 제공한다. 본 명세서에 포함된 컴퓨터 판독 가능 매체들에 대한 설명은 하드 디스크 또는 CD-ROM 드라이브와 같은 대용량 저장 장치를 참조하지만, 이 분야의 기술자들은 컴퓨터 판독 가능 매체들이 클라이언트 컴퓨터(2)에 의해 액세스되거나 사용될 수 있는 임의의 이용 가능 매체들일 수 있다는 것을 알아야 한다. 한정이 아니라 예를 들어, 컴퓨터 판독 가능 매체들은 컴퓨터 저장 매체들 및 통신 매체들을 포함할 수 있다.
컴퓨터 저장 매체들은 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 물리적 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 하드웨어 저장 매체들을 포함한다. 컴퓨터 저장 매체들은 원하는 정보를 저장하는 데 사용될 수 있고 클라이언트 컴퓨터(2)에 의해 액세스될 수 있는 RAM, ROM, EPROM, EEPROM, 플래시 메모리 또는 다른 반도체 메모리 기술, CD-ROM, 디지털 다기능 디스크("DVD") 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치를 포함하지만, 이에 한정되지 않는다. 통신 매체들은 통상적으로 컴퓨터 판독 가능 명령어들, 데이터 구조들, 프로그램 모듈들 또는 다른 데이터를 반송파 또는 다른 전송 메커니즘과 같은 피변조 데이터 신호 내에 구현하며, 임의의 정보 전달 매체들을 포함한다. "피변조 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하는 방식으로 신호의 특성들 중 하나 이상이 설정 또는 변경된 신호를 의미한다. 한정이 아니라 예를 들어, 통신 매체들은 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체들, 및 음향, RF, 적외선 및 다른 무선 매체들과 같은 무선 매체들을 포함한다. 위의 임의의 것들의 조합들도 컴퓨터 판독 가능 매체들의 범위 내에 포함되어야 한다. 컴퓨터 판독 가능 매체들은 컴퓨터 프로그램 제품으로도 지칭될 수 있다.
다양한 실시예들에 따르면, 클라이언트 컴퓨터(2)는 예를 들어 근거리 네트워크 또는 광역 네트워크(예를 들어, 인터넷)를 포함할 수 있는 네트워크(4)를 통한 원격 컴퓨터들에 대한 논리적 접속들을 이용하여 네트워킹된 환경에서 동작할 수 있다. 클라이언트 컴퓨터(2)는 버스(10)에 접속된 네트워크 인터페이스 유닛(16)을 통해 네트워크(4)에 접속할 수 있다. 네트워크 인터페이스 유닛(16)은 다른 타입의 네트워크들 및 원격 컴퓨팅 시스템들에 접속하는 데에도 사용될 수 있다는 것을 알아야 한다. 클라이언트 컴퓨터(2)는 키보드, 마우스, 펜, 스타일러스, 손가락 및/또는 다른 수단들을 포함하는 다양한 입력 타입들로부터 입력을 수신하고 처리하기 위한 입출력 제어기(22)도 포함할 수 있다. 유사하게, 입출력 제어기(22)는 디스플레이 장치(82), 프린터 또는 다른 타입의 출력 장치에 출력을 제공할 수 있다. 게다가, 터치 스크린이 입력 및 출력 메커니즘으로서 이용될 수 있다. 도 1에 도시된 클라이언트 컴퓨터(6) 및 서버 컴퓨터(70)는 도 2의 클라이언트 컴퓨터(2)와 관련하여 도시된 통상의 컴포넌트들 중 다수를 포함할 수 있다는 것을 알아야 한다.
도 3은 일 실시예에 따른, 서버 저장 모델을 이용하여 파일 파티션들을 동기화하기 위한 루틴(300)을 나타내는 흐름도이다. 본 명세서에서 제공되는 루틴들에 대한 설명을 읽을 때, 본 발명의 다양한 실시예들의 논리적 동작들은 (1) 컴퓨팅 시스템 상에서 실행되는 컴퓨터 구현 액트(act)들 또는 프로그램 모듈들의 시퀀스로서 그리고/또는 (2) 컴퓨팅 시스템 내의 상호접속된 기계 논리 회로들 또는 회로 모듈들로서 구현된다는 것을 알아야 한다. 구현은 본 발명을 구현하는 컴퓨팅 시스템의 성능 요구들에 의존하는 선택의 문제이다. 따라서, 도 3-7에 도시되고 본 명세서에서 설명되는 다양한 실시예들을 구성하는 논리적 동작들은 동작들, 구조적 장치들, 액트들 또는 모듈들로서 다양하게 지칭된다. 이 분야의 기술자는 이러한 동작들, 구조적 장치들, 액트들 및 모듈들이 본 명세서에서 설명되는 청구항들 내에 기재된 바와 같은 본 발명의 사상 및 범위로부터 벗어나지 않고, 소프트웨어로, 펌웨어로, 특수 목적 디지털 논리로 그리고 이들의 임의의 조합으로 구현될 수 있다는 것을 인식할 것이다.
루틴(300)은 동작 305에서 시작되며, 여기서 클라이언트 컴퓨터(2) 상에서 실행되는 생산성 애플리케이션(30)이 전자 문서 파일(40)의 파티션(50) 내의 (스트림(52) 내에 포함된) 전자 문서 콘텐츠에 대한 편집들을 수신한다. 일 실시예에 따르면, 전자 문서 파일(40)은 파티션들 및 그 안에 포함된 스트림들 모두를 포함하는 서버 컴퓨터(70)로부터 다운로드될 수 있다. 이어서, 파티션(50)을 개방하여, 그 안에 포함된 콘텐츠(54)를 편집함으로써, 콘텐츠(54A)를 생성할 수 있다.
동작 305로부터 루틴(300)은 동작 310으로 계속되어, 생산성 애플리케이션(30)이 전자 문서 파일(40)의 파티션(60) 내에 메타데이터(64A)를 생성한다. 특히, 생산성 애플리케이션(30)은 메타데이터를 생성하여, 전자 문서 파일(40)의 파티션(60) 내의 저자 리스트(67)를 갱신하여, 클라이언트 컴퓨터(2)의 사용자를 저자로서 추가할 수 있다(따라서, 저자 리스트(67A)를 생성할 수 있다). 또한, 생산성 애플리케이션(30)은 메타데이터를 생성하여 전자 문서 파일(40)의 파티션(60)에 문서 잠금(66A)을 추가하여, 전자 문서 파일(40)이 현재 클라이언트 컴퓨터(2)의 사용자에 의해 편집되고 있다는 것을 지시할 수 있다.
동작 310으로부터 루틴(300)은 동작 315로 계속되어, 생산성 애플리케이션(30)은 메타데이터(64)에 대해 행해진 변경들(즉, 저자 리스트(67A) 및 문서 잠금(66A)을 포함하는 메타데이터(64A))을 서버 컴퓨터(70)에 저장하기 위해 서버 애플리케이션(42)에 파티션(60)을 서버 컴퓨터(70)와 동기화하는 요청을 전송한다. 파티션(60)은 파티션(50)과 독립적으로 동기화될 수 있으며, 따라서 변경된 메타데이터(64A)만이 서버 컴퓨터(70)에 저장된다는 것을 이해해야 한다. 파티션(60)을 서버 컴퓨터와 동기화하기 위한 예시적인 루틴이 도 4와 관련하여 아래에 더 상세히 설명된다.
동작 315로부터 루틴(300)은 동작 320으로 계속되어, 생산성 애플리케이션(30)은 편집된 콘텐츠(54A)를 서버 컴퓨터(70)에 저장하기 위해 서버 애플리케이션(42)에 파티션(50)을 서버 컴퓨터(70)와 동기화는 요청을 전송한다. 파티션(50)은 파티션(60)과 독립적으로 동기화될 수 있으며, 따라서 편집된 콘텐츠(54A)만이 서버 컴퓨터(70)에 저장된다는 것을 이해해야 한다. 파티션들(60, 50)의 동기화의 순서는 역전될 수 있으며, 따라서 파티션(50)이 파티션(60)에 앞서 서버 컴퓨터(70)와 독립적으로 동기화될 수 있다는 것을 더 이해해야 한다. 파티션(50)을 서버 컴퓨터(70)와 동기화하기 위한 예시적인 루틴이 도 5와 관련하여 아래에 더 상세히 설명된다. 동작 320으로부터 루틴(300)은 동작 325로 계속되어, 루틴이 종료된다. 전술한 동작들(310-320)은 일 실시예에 따르면 클라이언트 컴퓨터(6) 상에서 실행되는 생산성 애플리케이션(30)에 의해서도 수행될 수 있다는 것을 이해해야 한다.
도 4는 도 3에 도시된 실시예에 따른, 서버 저장 모델을 이용하여 단일 파일 파티션을 동기화하기 위한 루틴(400)을 나타내는 흐름도이다. 루틴(400)은 도 3의 동작 315로부터 시작되고, 동작 405로 계속되어, 서버 애플리케이션(42)은 클라이언트 컴퓨터(2) 상의 파티션(60)과 서버 컴퓨터(70)의 동기화에서 충돌이 존재하는지를 판정한다. 구체적으로 그리고 일 실시예에 따르면, 서버 애플리케이션(42)은 클라이언트 컴퓨터(2) 상의 파티션(60) 내에 저장된 메타데이터(64A)와 서버 컴퓨터(70) 상에 저장된 메타데이터(64)를 비교하여, 임의의 차이들을 판정할 수 있다. 메타데이터(64A)와 메타데이터(64)가 다른 경우, 서버 애플리케이션(42)은 충돌이 존재하는 것으로 판정하며, 루틴(400)은 동작 410으로 계속된다. 메타데이터(64A)와 메타데이터(64) 사이에 차이가 존재하지 않는 경우, 루틴(400)은 도 3의 동작 320으로 복귀한다.
동작 410에서, 서버 애플리케이션(42)은 클라이언트 컴퓨터(2) 상의 파티션(60) 내의 메타데이터(64A)가 서버 컴퓨터(70) 상에 저장된 메타데이터(64)보다 새로운 것인지의 여부에 기초하여 충돌을 어떻게 해결할 것인지를 결정한다. 구체적으로, 파티션(60)을 동기화하기 위한 생산성 애플리케이션(30)으로부터의 요청은 메타데이터(64A)가 클라이언트 컴퓨터(2) 상의 파티션(60) 내에 언제 저장되었는지를 지시하는 타임스탬프를 포함할 수 있다. 서버 애플리케이션(42)은 이 타임스탬프와, 메타데이터(64)가 서버 컴퓨터(70) 상의 파티션(60) 내에 언제 저장되었는지를 지시하는 타임스탬프를 비교할 수 있다. 메타데이터(64A)가 메타데이터(64)보다 새로운 것으로 결정되는 경우, 루틴(400)은 동작 415로 계속된다. 메타데이터(64)가 메타데이터(64A)보다 새로운 것으로 결정되는 경우, 루틴(400)은 동작 420으로 분기된다. 이 분야의 기술자들은 다른 실시예에 따르면 파티션(60)을 동기화하기 위한 생산성 애플리케이션(30)으로부터의 요청이 충돌들을 식별하기 위한(그리고 해결하기 위한) 하이퍼텍스트 마크업 언어("HTTP") 엔티티 태그("ETAG")를 포함할 수 있다는 것을 이해해야 한다.
동작 415에서, 서버 애플리케이션(42)은 클라이언트 컴퓨터(2) 상의 파티션(60)과 서버 컴퓨터(70)를 자동으로 동기화하여, 클라이언트 컴퓨터(2) 상에 존재하는 가장 최신의 메타데이터(64A)의 편에서 충돌을 해결한다. 따라서, 서버 애플리케이션(42)은 서버 컴퓨터(70) 상의 파티션(60) 내의 메타데이터(64)를 메타데이터(64A)로 갱신할 수 있다. 동작 415로부터 루틴(400)은 도 3의 동작 320으로 복귀한다.
동작 420에서, 서버 애플리케이션(42)은 클라이언트 컴퓨터(2) 상의 파티션(60)과 서버 컴퓨터(70)의 동기화가 자동으로 실패하게 하여, 메타데이터(64A)보다 새로운 메타데이터(64)의 편에서 충돌을 해결한다. 따라서, 서버 애플리케이션(42)은 서버 컴퓨터(70) 상의 파티션(60) 내의 메타데이터(64)를 유지할 수 있다. 동작 420으로부터 루틴(400)은 도 3의 동작 320으로 복귀한다.
도 5는 도 3에 도시된 실시예에 따른, 서버 저장 모델을 이용하여 다른 파일 파티션을 동기화하기 위한 루틴(500)을 나타내는 흐름도이다. 루틴(500)은 도 3의 동작 320으로부터 시작되고, 동작 505로 계속되어, 서버 애플리케이션(42)은 클라이언트 컴퓨터(2)의 파티션(50)과 서버 컴퓨터(70)의 동기화에서 충돌이 존재하는지를 판정한다. 구체적으로 그리고 일 실시예에 따르면, 서버 애플리케이션(42)은 클라이언트 컴퓨터(2) 상의 파티션(50)에 저장된 콘텐츠(54A)와 서버 컴퓨터(70) 상의 파티션(50) 내에 저장된 콘텐츠(54)를 비교할 수 있다. 콘텐츠(54)가 클라이언트 컴퓨터(2) 상의 파티션(50) 내의 편집된 콘텐츠(54A) 내에 존재하지 않는 편집들을 포함하는 경우, 서버 컴퓨터(70)는 충돌이 존재하는 것으로 판정하며, 루틴(500)은 동작 510으로 계속된다. 콘텐츠(54)가 어떠한 편집도 포함하지 않는 경우, 루틴(500)은 동작 515로 계속된다.
동작 510에서, 서버 애플리케이션(42)은 클라이언트 컴퓨터(2)의 사용자에 대한 충돌 에러 메시지를 생성한다. 예컨대, 클라이언트 컴퓨터(2)에 대해 서버 애플리케이션(42)에 의해 생성되는 충돌 에러 메시지는 이전에 서버(70)에 업로드된 (예를 들어, 클라이언트 컴퓨터(6)의 사용자에 의해 행해진) 콘텐츠(54)에 대한 보이지 않는 편집들을 포함할 수 있다. 충돌 에러 메시지에 응답하여, 클라이언트 컴퓨터(2)의 사용자는 편집된 콘텐츠(54A)와 콘텐츠(54)에 대한 편집들을 합체하거나, 대안으로서 콘텐츠(54)에 대한 이전의 편집들을 서버(70) 상에서 변경되지 않게 유지함으로써 수동으로 충돌을 해결할 수 있다. 동작 510으로부터 루틴(500)은 도 3의 동작 325로 복귀한다.
동작 515에서, 서버 애플리케이션(42)은 파티션(50) 내의 편집된 콘텐츠(54A)와 서버(70)를 동기화하여, 서버(70) 상의 콘텐츠(54)를 편집된 콘텐츠(54A)로 갱신한다. 동작 515로부터 루틴(500)은 도 3의 동작(325)으로 복귀한다.
도 6은 다른 실시예에 따른, 서버 저장 모델을 이용하여 파일 파티션들을 동기화하기 위한 루틴(600)을 나타내는 흐름도이다. 루틴(600)은 동작 605에서 시작되어, 클라이언트 컴퓨터(2) 상에서 실행되는 생산성 애플리케이션(30)은 전자 문서 파일(40)의 파티션(50) 내의 (스트림(52) 내에 포함된) 전자 문서 콘텐츠에 대한 편집들을 수신한다. 일 실시예에 따르면, 전자 문서 파일(40)은 파티션들 및 그 안에 포함된 스트림들 모두를 포함하는 서버 컴퓨터(70)로부터 다운로드될 수 있다. 이어서, 파티션(50)을 개방하여, 그 안에 포함된 콘텐츠(54)를 편집함으로써, 콘텐츠(54A)를 생성할 수 있다.
동작 605로부터 루틴(600)은 동작 610으로 계속되어, 생산성 애플리케이션(30)은 전자 문서 파일(40)의 파티션(60) 내에 메타데이터(64A)를 생성하여, 파티션(50) 내의 콘텐츠(54A)의 편집자를 식별한다. 구체적으로, 생산성 애플리케이션(30)은 메타데이터를 생성하여, 전자 문서 파일(40)의 파티션(60) 내의 저자 리스트(67)에 콘텐츠(54A)의 편집자의 이름을 추가할 수 있다(따라서, 저자 리스트(67A)를 생성할 수 있다).
동작 610으로부터 루틴(600)은 동작 615로 계속되어, 생산성 애플리케이션(30)은 메타데이터(64)에 대해 행해진 변경들(즉, 저자 리스트(67A)를 포함하는 메타데이터(64A))를 서버 컴퓨터(70)에 저장하기 위해 파티션(60)과 서버 컴퓨터(70)를 동기화하는 서버 애플리케이션(42)에 전송한다. 파티션(60)은 파티션(50)과 독립적으로 동기화될 수 있으며, 따라서 변경된 메타데이터(64A)만이 서버 컴퓨터(70)에 저장된다는 것을 이해해야 한다.
동작 615로부터 루틴(600)은 동작 620으로 계속되어, 클라이언트 컴퓨터(6) 상에서 실행되는 생산성 애플리케이션(30)은 전자 파일(40)을 다운로드함으로써 서버 컴퓨터(70)로부터 (그 안에 포함된 스트림들(42, 56, 62, 68)을 포함하는) 파일 파티션들(50, 60)을 수신한다. 클라이언트 컴퓨터(6)는 파일 파티션(60)의 수신시에 동작 615에서 클라이언트 컴퓨터(2) 상의 파티션(60)과 서버 컴퓨터(70)의 동기화의 결과로서 클라이언트 컴퓨터(2)로부터 콘텐츠(54A)의 편집자를 식별하는 메타데이터(64A)도 수신한다는 것을 이해해야 한다. 따라서, 클라이언트 컴퓨터(6)의 사용자는 클라이언트 컴퓨터(2)의 사용자도 편집을 위해 서버 컴퓨터(70)로부터 콘텐츠(54)를 다운로드한 것으로 결정할 수 있다.
동작 620으로부터 루틴(600)은 동작 625로 계속되어, 클라이언트 컴퓨터(6) 상에서 실행되는 생산성 애플리케이션(30)은 전자 문서 파일(40)의 파티션(50) 내의 (스트림(52) 내에 포함된) 전자 문서 콘텐츠에 대한 편집들을 수신한다. 이어서, 파티션(50)을 개방하여, 그 안에 포함된 콘텐츠(54)를 편집하여, 콘텐츠(54B)를 생성할 수 있다. 편집된 콘텐츠(54B)는 클라이언트 컴퓨터(2) 상에서 행해진 편집들(즉, 편집된 콘텐츠(54A))을 포함하지 않는다는 것을 이해해야 한다.
동작 625로부터 루틴(600)은 동작 630으로 계속되어, 클라이언트 컴퓨터(6) 상에서 실행되는 생산성 애플리케이션(30)은 요청을 서버 애플리케이션(42)에 전송하여, 파티션(60)과 서버 컴퓨터(70)를 동기화하여, 메타데이터(64)에 대해 행해진 변경들(즉, 저자 리스트(67B)를 포함하는 메타데이터(64B))을 서버 컴퓨터(70)에 저장한다. 파티션(60)은 파티션(50)과 독립적으로 동기화될 수 있으며, 따라서 변경된 메타데이터(64B)만이 서버 컴퓨터(70)에 저장된다는 것을 이해해야 한다.
동작 630으로부터 루틴(600)은 동작 635로 계속되어, 클라이언트 컴퓨터(2)는 동작 630에서 파티션(60)과 서버 컴퓨터(70)의 동기화의 결과로서 클라이언트 컴퓨터(6)로부터 콘텐츠(54B)의 편집자를 식별하는 메타데이터(64B)를 수신한다. 구체적으로, 클라이언트 컴퓨터(2) 상에서 실행되는 생산성 애플리케이션(30)은 클라이언트 컴퓨터(6)로부터의 메타데이터(64B)로 이전에 갱신된 파티션(60)을 서버 컴퓨터(70)로부터 다운로드할 수 있다. 따라서, 클라이언트 컴퓨터(2)의 사용자는 클라이언트 컴퓨터(6)의 사용자도 편집을 위해 서버 컴퓨터(70)로부터 콘텐츠(54)를 다운로드한 것으로 결정할 수 있다.
동작 635로부터 루틴(600)은 동작 640으로 계속되어, 클라이언트 컴퓨터(2) 상에서 실행되는 생산성 애플리케이션(30)은 요청을 서버 애플리케이션(42)으로 전송하여, 파티션(50)과 서버 컴퓨터(70)를 동기화하여, 편집된 콘텐츠(54A)를 서버 컴퓨터(70)에 저장한다. 파티션(50)은 파티션(60)과 독립적으로 동기화될 수 있으며, 따라서 편집된 콘텐츠(54A)만이 서버 컴퓨터(70)에 저장된다는 것을 이해해야 한다. 파티션들(60, 50)의 동기화의 순서는 역전될 수 있으며, 따라서 파티션(50)이 파티션(60)에 앞서 서버 컴퓨터(70)와 독립적으로 동기화될 수 있다는 것을 더 이해해야 한다.
동작 640으로부터 루틴(600)은 동작 645로 계속되어, 클라이언트 컴퓨터(6) 상에서 실행되는 생산성 애플리케이션(30)은 요청을 서버 애플리케이션(42)으로 전송하여, 파티션(50)과 서버 컴퓨터(70)를 동기화하여, 편집된 콘텐츠(54B)를 서버 컴퓨터(70)에 저장한다. 파티션(50)은 파티션(60)과 독립적으로 동기화될 수 있으며, 따라서 편집된 콘텐츠(54B)만이 서버 컴퓨터(70)에 저장될 수 있다는 것을 이해해야 한다. 파티션들(60, 50)의 동기화의 순서는 역전될 수 있고, 따라서 파티션(50)은 파티션(60)에 앞서 서버 컴퓨터(70)와 독립적으로 동기화될 수 있다는 것을 더 이해해야 한다. 파티션(50)과 서버 컴퓨터(70)를 동기화하기 위한 예시적인 루틴이 도 7과 관련하여 아래에 더 상세히 설명된다. 동작 645로부터 루틴(600)은 동작 600으로 계속되어, 루틴이 종료된다.
도 7은 도 6에 도시된 실시예에 따른, 서버 저장 모델을 이용하여 제2 클라이언트 컴퓨터 상의 파일 파티션을 동기화하기 위한 루틴(700)을 나타내는 흐름도이다. 루틴(700)은 도 6의 동작 645로부터 시작되고, 동작 605로 계속되어, 클라이언트 컴퓨터(6) 상에서 실행되는 생산성 애플리케이션(30)은 파티션(50)에 대해 행해진 임의의 갱신들에 대해 서버 컴퓨터(70)를 검사한다. 구체적으로, 생산성 애플리케이션(30)은 서버 컴퓨터(70) 상의 파티션(60) 내의 콘텐츠(54)가 클라이언트 컴퓨터(2)에 의해 갱신되었는지에 관한 질의를 서버 애플리케이션(42)으로 전송할 수 있다. 도 6의 동작 620에서 전술한 바와 같이, 클라이언트 컴퓨터(6)의 사용자는 서버 컴퓨터(70)로부터 다운로드된 전자 파일(40) 내의 파일 파티션들(50, 60)의 수신시에 서버 컴퓨터(70)의 파티션(50) 내의 콘텐츠(54)가 클라이언트 컴퓨터(2)에서 다른 사용자에 의해 편집되고 있다는 것을 알 수 있다.
동작 705로부터 루틴(700)은 동작 710으로 계속되어, 클라이언트 컴퓨터(6)는 서버 컴퓨터(70) 상의 파티션(50)이 (즉, 클라이언트 컴퓨터(2)에 의해) 갱신되었고, 따라서 클라이언트 컴퓨터(2)로부터의 편집된 콘텐츠(54A)가 클라이언트 컴퓨터(6)의 파티션(50) 내의 편집된 콘텐츠(54B)와 합체되도록 이용될 수 있다는 확인을 서버 애플리케이션(42)으로부터 수신한다. 동작 710으로부터 루틴(700)은 동작 715로 계속되어, 클라이언트 컴퓨터(6)는 서버 컴퓨터(70)로부터 편집된 콘텐츠(54A)를 수신한다.
동작 715로부터 루틴(700)은 동작 720으로 계속되어, 클라이언트 컴퓨터(6) 상에서 실행되는 생산성 애플리케이션(30)은 (클라이언트 컴퓨터(2)로부터의) 편집된 콘텐츠(54A) 및 (클라이언트 컴퓨터(6)로부터의) 편집된 콘텐츠(54B)로 파티션(50)을 갱신하도록 서버 컴퓨터(70) 상의 서버 애플리케이션(42)에 요청한다. 동작 720으로부터 루틴(700)은 도 6의 동작 650으로 복귀한다.
본 발명은 다양한 예시적인 실시예들과 관련하여 설명되었지만, 이 분야의 기술자들은 이어지는 청구항들의 범위 내에서 그에 대한 많은 개량이 이루어질 수 있다는 것을 이해할 것이다. 따라서, 본 발명의 범위는 위의 설명에 의해 한정되는 것을 의도하지 않으며, 그 대신에, 이어지는 청구항들을 참조하여서만 결정되어야 한다.

Claims (15)

  1. 클라이언트-서버 컴퓨터 네트워크(4)에서 서버 저장 모델을 이용하여 파일 파티션(50, 60)을 동기화하는 방법에 있어서,
    클라이언트 컴퓨터(2)에서 전자 문서의 콘텐츠(54A)에 대한 편집을 수신하는 단계(305) - 상기 콘텐츠(54A)는 파일(40) 내의 제1 파티션(50)의 제1 스트림(52)을 포함하고, 상기 파일(40)은 상기 제1 파티션(50) 및 적어도 하나의 다른 파티션(60)을 포함하며, 상기 제1 파티션(50) 및 상기 적어도 하나의 다른 파티션(60)은 각각 적어도 하나의 스트림(52, 56, 62, 68)을 포함함 - ,
    상기 클라이언트 컴퓨터(2) 상의 상기 적어도 하나의 다른 파티션(60) 내에서 상기 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)에 대한 상기 편집과 관련된 데이터(64A)를 생성하는 단계(310),
    서버 컴퓨터(70) 상에 상기 파일(40)의 상기 적어도 하나의 다른 파티션(60) 내의 상기 데이터(64A)를 저장하기 위해 상기 클라이언트 컴퓨터(2) 상의 상기 적어도 하나의 다른 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(315), 및
    상기 서버 컴퓨터(70) 상에 상기 파일(40)의 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)에 대해 행해진 편집을 저장하기 위해 상기 클라이언트 컴퓨터(2) 상의 상기 제1 파티션(50)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(320)를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 클라이언트 컴퓨터(2) 상의 상기 적어도 하나의 다른 파티션(60) 내에서 상기 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)에 대한 편집과 관련된 데이터(64A)를 생성하는 단계(310)는 상기 클라이언트 컴퓨터(2) 상의 제2 파티션(60) 내에서 상기 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)에 대한 편집과 관련된 메타데이터(64A)를 생성하는 단계를 포함하는
    방법.
  3. 제2항에 있어서,
    상기 서버 컴퓨터(70) 상에 상기 파일(40)의 상기 적어도 하나의 다른 파티션(60) 내의 상기 데이터(64A)를 저장하기 위해 상기 클라이언트 컴퓨터(2) 상의 상기 적어도 하나의 다른 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(315)는 상기 서버 컴퓨터(70) 상에 상기 파일(40)의 상기 제2 파티션(60) 내의 상기 메타데이터(64A)를 저장하기 위해 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계를 포함하는
    방법.
  4. 제3항에 있어서,
    상기 서버 컴퓨터(70) 상에 상기 파일(40)의 제2 파티션(60) 내의 상기 메타데이터(64A)를 저장하기 위해 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(315)는
    상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션 내에서 생성된 상기 메타데이터(64A)와 상기 서버 컴퓨터(70) 상에 저장된 상기 파일(40)의 상기 제2 파티션(60) 내에 저장된 메타데이터(64)를 비교하는 단계(405), 및
    상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60) 내에서 생성된 상기 메타데이터(64A)가 상기 서버 컴퓨터(70) 상의 상기 파일(40)의 상기 제2 파티션(60) 내에 저장된 상기 메타데이터(64)와 다를 때 충돌을 결정하는 단계(405)를 포함하는
    방법.
  5. 제4항에 있어서,
    상기 충돌을 해결하기 위하여, 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60) 내의 상기 메타데이터(64A)가 상기 서버 컴퓨터(70) 상에 저장된 상기 파일(40)의 상기 제2 파티션(60) 내에 저장된 상기 메타데이터(64)보다 새로운 것일 때, 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60)을 상기 서버 컴퓨터(70)와 자동으로 동기화하는 단계(415), 및
    상기 충돌을 해결하기 위하여, 상기 서버 컴퓨터(70) 상에 저장된 상기 파일(40)의 상기 제2 파티션(60) 내에 저장된 상기 메타데이터(64)가 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60) 내에 저장된 상기 메타데이터(64A)보다 새로운 것일 때, 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60)과 상기 서버 컴퓨터(70)의 동기화가 자동으로 실패하게 하는 단계(420)를 더 포함하는
    방법.
  6. 제1항에 있어서,
    상기 서버 컴퓨터(70) 상에 상기 파일(40)의 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)에 대해 행해진 상기 편집을 저장하기 위해 상기 클라이언트 컴퓨터(2) 상의 상기 제1 파티션(50)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(320)는
    상기 클라이언트 컴퓨터(2) 상의 상기 제1 파티션(50) 내의 상기 편집된 전자 문서 콘텐츠(54A)와 상기 서버 컴퓨터(70) 상에 저장된 상기 파일(40)의 상기 제1 파티션(50) 내에 저장된 전자 문서 콘텐츠(54)를 비교하는 단계(505), 및
    상기 서버 컴퓨터(70) 상에 저장된 상기 파일(40)의 상기 제1 파티션(50) 내에 저장된 상기 전자 문서 콘텐츠(54)가 상기 클라이언트 컴퓨터(2) 상의 상기 제1 파티션(50) 내의 상기 편집된 전자 문서 콘텐츠(54A) 내에 존재하지 않는 편집을 포함할 때 충돌을 결정하는 단계(505)를 포함하는
    방법.
  7. 컴퓨터(2) 상에서 실행될 때 상기 컴퓨터(2)로 하여금 서버 저장 모델을 이용하여 파일 파티션(50, 60)을 동기화하는 방법을 수행하게 하는 컴퓨터 실행 가능 명령어를 포함하는 컴퓨터 판독 가능 저장 매체(12, 14)에 있어서,
    상기 방법은
    클라이언트 컴퓨터(2)에서 전자 문서의 콘텐츠(54A)에 대한 편집을 수신하되, 상기 콘텐츠(54A)는 파일(40) 내의 제1 파티션(50)의 제1 스트림(52)을 포함하고, 상기 파일(40)은 적어도 상기 제1 파티션(50) 및 제2 파티션(60)을 포함하며, 상기 적어도 제1 및 제2 파티션(50, 60) 각각은 적어도 하나의 스트림(52, 56, 62, 68)을 포함하는 단계(305),
    상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60) 내에서 상기 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)에 대한 상기 편집과 관련된 메타데이터(64A)를 생성하는 단계(310),
    서버 컴퓨터(70) 상에 상기 파일(40)의 제2 파티션(60) 내의 상기 메타데이터(64A)를 저장하기 위해 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(315), 및
    상기 서버 컴퓨터(70) 상에 상기 파일(40)의 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)에 대해 행해진 편집을 저장하기 위해 상기 클라이언트 컴퓨터(2) 상의 상기 제1 파티션(50)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(320)를 포함하는
    컴퓨터 판독 가능 저장 매체.
  8. 제7항에 있어서,
    상기 서버 컴퓨터(70) 상에 상기 파일(40)의 제2 파티션(60) 내의 상기 메타데이터(64A)를 저장하기 위해 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(615)는
    상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션 내에 생성된 상기 메타데이터(64A)와 상기 서버 컴퓨터(70) 상에 저장된 상기 파일(40)의 상기 제2 파티션(60) 내에 저장된 메타데이터(64)를 비교하는 단계(405), 및
    상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60) 내에 생성된 상기 메타데이터(64A)가 상기 서버 컴퓨터(70) 상의 상기 파일(40)의 상기 제2 파티션(60) 내에 저장된 상기 메타데이터(64)와 다를 때 충돌을 결정하는 단계(405)를 포함하는
    컴퓨터 판독 가능 저장 매체.
  9. 제8항에 있어서,
    상기 방법은
    상기 충돌을 해결하기 위하여, 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60) 내의 상기 메타데이터(64A)가 상기 서버 컴퓨터(70) 상에 저장된 상기 파일(40)의 상기 제2 파티션(60) 내에 저장된 상기 메타데이터(64)보다 새로운 것일 때, 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60)을 상기 서버 컴퓨터(70)와 자동으로 동기화하는 단계(415), 및
    상기 충돌을 해결하기 위하여, 상기 서버 컴퓨터(70) 상에 저장된 상기 파일(40)의 상기 제2 파티션(60) 내에 저장된 상기 메타데이터(64)가 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60) 내에 저장된 상기 메타데이터(64A)보다 새로운 것일 때, 상기 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60)과 상기 서버 컴퓨터(70)의 동기화가 자동으로 실패하게 하는 단계(420)를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  10. 클라이언트-서버 컴퓨터 네트워크(4)에서 서버 저장 모델을 이용하여 파일 파티션(50, 60)을 동기화하는 방법에 있어서,
    제1 클라이언트 컴퓨터(2)에서 전자 문서의 콘텐츠(54A)에 대한 편집을 수신하는 단계(605) - 상기 콘텐츠(54A)는 파일(40) 내의 제1 파티션의 제1 스트림(52)을 포함하고, 상기 파일(40)은 적어도 상기 제1 파티션(50) 및 하나의 다른 파티션(60)을 포함하며, 상기 제1 파티션(50) 및 상기 적어도 하나의 다른 파티션(60)은 각각 적어도 하나의 스트림(52, 56, 62, 68)을 포함함 - ,
    상기 제1 클라이언트 컴퓨터(2) 상의 상기 적어도 하나의 다른 파티션(60)의 스트림(62) 내에, 상기 제1 클라이언트 컴퓨터(2)에서의 상기 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)의 편집자(67A)를 식별하는 데이터를 생성하는 단계(610),
    서버 컴퓨터(70) 상에 상기 데이터(67A)를 저장하기 위해 상기 제1 클라이언트 컴퓨터(2) 상의 상기 적어도 하나의 다른 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(615),
    제2 클라이언트 컴퓨터(6)에서, 적어도 상기 제1 파티션(50) 및 상기 적어도 하나의 다른 파티션(60)을 포함하는 상기 서버 컴퓨터(70) 상에 저장된 상기 파일(40)을 수신하는 단계(602) - 상기 적어도 하나의 다른 파티션(60)은 상기 제1 클라이언트 컴퓨터(2)에서의 상기 전자 문서 콘텐츠(54A)의 상기 편집자(66B)를 식별하는 상기 데이터를 포함함 - ,
    상기 제2 클라이언트 컴퓨터(6)에서 상기 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54B)에 대한 편집을 수신하는 단계(625) - 상기 제2 클라이언트 컴퓨터(6)에서 수신된 상기 전자 문서 콘텐츠(54B)에 대한 상기 편집은 상기 제1 클라이언트 컴퓨터(2)에서 수신된 상기 전자 문서 콘텐츠(54A)에 대한 상기 편집을 포함함 - ,
    상기 서버 컴퓨터(70) 상에 상기 전자 문서 콘텐츠(54A)에 대해 행해진 상기 편집을 저장하기 위해 상기 제1 클라이언트 컴퓨터(2) 상의 상기 제1 파티션(50)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(640)를 포함하는
    방법.
  11. 제10항에 있어서,
    상기 제1 클라이언트 컴퓨터(2) 상의 상기 적어도 하나의 다른 파티션(60)의 스트림(62) 내에 상기 제1 클라이언트 컴퓨터(2)에서의 상기 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)의 상기 편집자(67A)를 식별하는 데이터를 생성하는 단계(610)는 상기 제1 클라이언트 컴퓨터(2) 상의 제2 파티션(60)의 스트림(62) 내에 상기 제1 클라이언트 컴퓨터(2)에서의 상기 제1 파티션(50) 내의 상기 전자 문서 콘텐츠(54A)의 상기 편집자를 식별하는 메타데이터를 생성하는 단계를 포함하는
    방법.
  12. 제11항에 있어서,
    상기 서버 컴퓨터(70) 상에 상기 데이터(67A)를 저장하기 위해 상기 제1 클라이언트 컴퓨터(2) 상의 상기 적어도 하나의 다른 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(615)는 상기 서버 컴퓨터(70) 상에 상기 메타데이터를 저장하기 위해 상기 제1 클라이언트 컴퓨터(2) 상의 상기 제2 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계를 포함하는
    방법.
  13. 제12항에 있어서,
    상기 제1 클라이언트 컴퓨터(2)에서의 상기 전자 문서 콘텐츠(54A)의 상기 편집자(67A)를 식별하는 상기 메타데이터를 상기 제2 클라이언트 컴퓨터(6)에서의 상기 전자 문서 콘텐츠의 상기 편집자의 식별로 갱신하기 위해 상기 제2 클라이언트 컴퓨터(6) 상의 상기 제2 파티션(60)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(630)를 더 포함하는
    방법.
  14. 제10항에 있어서,
    상기 서버 컴퓨터(70) 상의 상기 제1 파티션(50)에 대해, 상기 제2 클라이언트 컴퓨터(6)에서의 상기 전자 문서 콘텐츠(54B)에 대해 행해진 상기 편집을 상기 제1 클라이언트 컴퓨터(2)에서의 상기 전자 문서(54A)에 대해 행해진 상기 편집에 추가하기 위해 상기 제2 클라이언트 컴퓨터(6) 상의 상기 제1 파티션(50)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(645)를 더 포함하는
    방법.
  15. 제14항에 있어서,
    상기 서버 컴퓨터(70) 상의 상기 제1 파티션(50)에 대해, 상기 제2 클라이언트 컴퓨터(6)에서의 상기 전자 문서 콘텐츠(54B)에 대해 행해진 상기 편집을 상기 제1 클라이언트 컴퓨터(2)에서의 상기 전자 문서(54A)에 대해 행해진 상기 편집에 추가하기 위해 상기 제2 클라이언트 컴퓨터(6) 상의 상기 제1 파티션(50)만을 상기 서버 컴퓨터(70)와 동기화하는 단계(645)는
    상기 서버 컴퓨터(70)로부터, 상기 제1 클라이언트 컴퓨터(2)에서의 상기 전자 문서 콘텐츠(54A)에 대해 행해진 상기 편집을 수신하는 단계(715), 및
    상기 서버 컴퓨터(70) 상의 상기 제1 파티션(50)을 상기 제2 클라이언트 컴퓨터(6) 및 상기 제1 클라이언트 컴퓨터(2)에서의 상기 전자 문서 콘텐츠(54A, 54B)에 대해 행해진 편집으로 갱신하는 단계(720)를 더 포함하는
    방법.
KR1020117028994A 2009-06-05 2010-06-01 서버 저장 모델을 이용하는 파일 파티션들의 동기화 KR101655497B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/479,189 2009-06-05
US12/479,189 US8219526B2 (en) 2009-06-05 2009-06-05 Synchronizing file partitions utilizing a server storage model

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020167023991A Division KR101740207B1 (ko) 2009-06-05 2010-06-01 서버 저장 모델을 이용하는 파일 파티션들의 동기화 기법

Publications (2)

Publication Number Publication Date
KR20120017442A true KR20120017442A (ko) 2012-02-28
KR101655497B1 KR101655497B1 (ko) 2016-09-07

Family

ID=43298457

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167023991A KR101740207B1 (ko) 2009-06-05 2010-06-01 서버 저장 모델을 이용하는 파일 파티션들의 동기화 기법
KR1020117028994A KR101655497B1 (ko) 2009-06-05 2010-06-01 서버 저장 모델을 이용하는 파일 파티션들의 동기화

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167023991A KR101740207B1 (ko) 2009-06-05 2010-06-01 서버 저장 모델을 이용하는 파일 파티션들의 동기화 기법

Country Status (16)

Country Link
US (2) US8219526B2 (ko)
EP (1) EP2438526A4 (ko)
JP (2) JP5280583B2 (ko)
KR (2) KR101740207B1 (ko)
CN (1) CN102460409A (ko)
AU (1) AU2010256703B2 (ko)
BR (1) BRPI1011684A2 (ko)
CA (1) CA2761165C (ko)
CL (1) CL2011003047A1 (ko)
IL (2) IL216022A (ko)
MX (1) MX2011012937A (ko)
MY (1) MY163754A (ko)
RU (1) RU2554845C2 (ko)
SG (1) SG175387A1 (ko)
WO (1) WO2010141517A2 (ko)
ZA (1) ZA201107867B (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8078957B2 (en) 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US9396279B1 (en) 2009-02-17 2016-07-19 Jpmorgan Chase Bank, Na Collaborative virtual markup
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
EP2302509B1 (en) * 2009-09-29 2012-09-26 Citrix Systems, Inc. Synchronization of server-side cookies with client-side cookies
KR101994163B1 (ko) 2012-08-24 2019-09-30 삼성전자 주식회사 압축 컨텐츠 파일의 자동 동기화 방법 및 장치 그리고 동기화 시스템
US9336226B2 (en) 2013-01-11 2016-05-10 Commvault Systems, Inc. Criteria-based data synchronization management
US10318492B2 (en) * 2013-02-25 2019-06-11 Amazon Technologies, Inc. Predictive storage service
US10169121B2 (en) 2014-02-27 2019-01-01 Commvault Systems, Inc. Work flow management for an information management system
US9898520B2 (en) 2014-03-25 2018-02-20 Open Text Sa Ulc Systems and methods for seamless access to remotely managed documents using synchronization of locally stored documents
US9588849B2 (en) 2015-01-20 2017-03-07 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
US9952934B2 (en) * 2015-01-20 2018-04-24 Commvault Systems, Inc. Synchronizing selected portions of data in a storage management system
RU2609081C2 (ru) * 2015-06-29 2017-01-30 Общество С Ограниченной Ответственностью "Яндекс" Способ (варианты) и система (варианты) обработки документа в распределенной архитектуре
US10503699B2 (en) 2016-04-25 2019-12-10 Sap Se Metadata synchronization in a distrubuted database
US10152284B2 (en) 2016-10-26 2018-12-11 Ricoh Company, Ltd. Synchronizing metadata with alterations to a portable document format print job
US11003632B2 (en) 2016-11-28 2021-05-11 Open Text Sa Ulc System and method for content synchronization
US11301431B2 (en) 2017-06-02 2022-04-12 Open Text Sa Ulc System and method for selective synchronization

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223047A1 (en) * 2003-08-21 2005-10-06 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US20060206533A1 (en) * 2005-02-28 2006-09-14 Microsoft Corporation Online storage with metadata-based retrieval
US20080098042A1 (en) * 2006-01-19 2008-04-24 Huawei Technologies Co., Ltd. Method for data synchronization and apparatus thereof
US20090006936A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Collaborative document authoring

Family Cites Families (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774868A (en) * 1994-12-23 1998-06-30 International Business And Machines Corporation Automatic sales promotion selection system and method
US5924092A (en) * 1997-02-07 1999-07-13 International Business Machines Corporation Computer system and method which sort array elements to optimize array modifications
JPH10301828A (ja) * 1997-04-23 1998-11-13 Fujitsu Ltd データベース管理方法
JPH11232159A (ja) * 1998-02-13 1999-08-27 The Japan Reserch Institute Ltd ファイル管理方法およびファイル管理のためのプログラムを記憶した媒体
US6801938B1 (en) * 1999-06-18 2004-10-05 Torrent Systems, Inc. Segmentation and processing of continuous data streams using transactional semantics
US6694336B1 (en) * 2000-01-25 2004-02-17 Fusionone, Inc. Data transfer and synchronization system
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
EP2487607A3 (en) * 2000-08-29 2013-03-27 Open Text S.A. Tool for collaborative edit/search of dynamic objects
EP1532543A4 (en) * 2000-09-11 2008-04-16 Agami Systems Inc STORAGE SYSTEM COMPRISING PARTITIONED METADATA THAT MIGRATE LIKELY
JP2002251350A (ja) 2001-02-22 2002-09-06 Sony Corp 送信装置、受信装置、送受信装置、送信方法および受信方法
JP4270771B2 (ja) * 2001-05-29 2009-06-03 富士通株式会社 表示プログラム、表示方法、および記録媒体
US7389201B2 (en) * 2001-05-30 2008-06-17 Microsoft Corporation System and process for automatically providing fast recommendations using local probability distributions
US7702563B2 (en) * 2001-06-11 2010-04-20 Otc Online Partners Integrated electronic exchange of structured contracts with dynamic risk-based transaction permissioning
US6928458B2 (en) * 2001-06-27 2005-08-09 Microsoft Corporation System and method for translating synchronization information between two networks based on different synchronization protocols
TW579463B (en) * 2001-06-30 2004-03-11 Ibm System and method for a caching mechanism for a central synchronization server
KR20040053142A (ko) * 2001-09-26 2004-06-23 이엠씨 코포레이션 대형 파일들의 효율적 관리
US7058664B1 (en) * 2002-04-29 2006-06-06 Sprint Communications Company L.P. Method and system for data recovery
US6925467B2 (en) * 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US7096311B2 (en) * 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US7138998B2 (en) * 2002-11-14 2006-11-21 Intel Corporation Multi-resolution spatial partitioning
US7325202B2 (en) * 2003-03-31 2008-01-29 Sun Microsystems, Inc. Method and system for selectively retrieving updated information from one or more websites
US7750908B2 (en) * 2003-04-04 2010-07-06 Agilent Technologies, Inc. Focus plus context viewing and manipulation of large collections of graphs
US7299404B2 (en) * 2003-05-06 2007-11-20 International Business Machines Corporation Dynamic maintenance of web indices using landmarks
US7406499B2 (en) * 2003-05-09 2008-07-29 Microsoft Corporation Architecture for partition computation and propagation of changes in data replication
US20040230903A1 (en) * 2003-05-16 2004-11-18 Dethe Elza Method and system for enabling collaborative authoring of hierarchical documents with associated business logic
US20050010576A1 (en) * 2003-07-09 2005-01-13 Liwei Ren File differencing and updating engines
US20050033811A1 (en) * 2003-08-07 2005-02-10 International Business Machines Corporation Collaborative email
JP2005092583A (ja) * 2003-09-18 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> メタデータ保存方法及び装置並びにプログラム、メタデータ保存プログラムを記録した記録媒体
US7203708B2 (en) * 2003-11-06 2007-04-10 Microsoft Corporation Optimizing file replication using binary comparisons
US20050289152A1 (en) * 2004-06-10 2005-12-29 Earl William J Method and apparatus for implementing a file system
US7313575B2 (en) * 2004-06-14 2007-12-25 Hewlett-Packard Development Company, L.P. Data services handler
US7873669B2 (en) * 2004-07-09 2011-01-18 Microsoft Corporation Direct write back systems and methodologies
US7613787B2 (en) * 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US7401192B2 (en) * 2004-10-04 2008-07-15 International Business Machines Corporation Method of replicating a file using a base, delta, and reference file
US7933868B2 (en) * 2004-11-04 2011-04-26 Microsoft Corporation Method and system for partition level cleanup of replication conflict metadata
WO2006052904A2 (en) * 2004-11-08 2006-05-18 Innopath Software, Inc. Updating compressed read-only memory file system (cramfs) images
US7519579B2 (en) * 2004-12-20 2009-04-14 Microsoft Corporation Method and system for updating a summary page of a document
US7480654B2 (en) * 2004-12-20 2009-01-20 International Business Machines Corporation Achieving cache consistency while allowing concurrent changes to metadata
US7953794B2 (en) 2005-01-14 2011-05-31 Microsoft Corporation Method and system for transitioning between synchronous and asynchronous communication modes
US7720890B2 (en) * 2005-02-22 2010-05-18 Microsoft Corporation Ghosted synchronization
WO2006113597A2 (en) * 2005-04-14 2006-10-26 The Regents Of The University Of California Method for information retrieval
US20060242204A1 (en) * 2005-04-22 2006-10-26 Microsoft Corporation Sync manager conflict resolution
KR100733054B1 (ko) 2005-07-27 2007-06-27 주식회사 유텍 구조화 문서의 동기화를 이용한 문서변환 시스템 및문서변환 방법
US7606812B2 (en) * 2005-11-04 2009-10-20 Sun Microsystems, Inc. Dynamic intent log
US7660807B2 (en) * 2005-11-28 2010-02-09 Commvault Systems, Inc. Systems and methods for cataloging metadata for a metabase
US20070198659A1 (en) * 2006-01-25 2007-08-23 Lam Wai T Method and system for storing data
US8307119B2 (en) * 2006-03-31 2012-11-06 Google Inc. Collaborative online spreadsheet application
AU2007243966B2 (en) 2006-05-03 2011-05-12 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for re-constructing media from a media representation
US20080059539A1 (en) 2006-08-08 2008-03-06 Richard Chin Document Collaboration System and Method
JP2008077485A (ja) * 2006-09-22 2008-04-03 Sharp Corp 通信端末装置および制御プログラム
JP2008165299A (ja) * 2006-12-27 2008-07-17 Update It Inc ドキュメント作成システム
US20080163056A1 (en) * 2006-12-28 2008-07-03 Thibaut Lamadon Method and apparatus for providing a graphical representation of content
US20090144654A1 (en) * 2007-10-03 2009-06-04 Robert Brouwer Methods and apparatus for facilitating content consumption
US20090106454A1 (en) * 2007-10-17 2009-04-23 Girle David A Independent synchronization of meta-data between devices
US7941399B2 (en) * 2007-11-09 2011-05-10 Microsoft Corporation Collaborative authoring
US9436927B2 (en) 2008-03-14 2016-09-06 Microsoft Technology Licensing, Llc Web-based multiuser collaboration
US9262764B2 (en) * 2008-04-30 2016-02-16 Yahoo! Inc. Modification of content representation by a brand engine in a social network
US8078957B2 (en) * 2008-05-02 2011-12-13 Microsoft Corporation Document synchronization over stateless protocols
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223047A1 (en) * 2003-08-21 2005-10-06 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US20060206533A1 (en) * 2005-02-28 2006-09-14 Microsoft Corporation Online storage with metadata-based retrieval
US20080098042A1 (en) * 2006-01-19 2008-04-24 Huawei Technologies Co., Ltd. Method for data synchronization and apparatus thereof
US20090006936A1 (en) * 2007-06-29 2009-01-01 Microsoft Corporation Collaborative document authoring

Also Published As

Publication number Publication date
JP5280583B2 (ja) 2013-09-04
RU2554845C2 (ru) 2015-06-27
ZA201107867B (en) 2013-01-30
JP5646686B2 (ja) 2014-12-24
IL216022A (en) 2016-03-31
EP2438526A4 (en) 2012-11-28
EP2438526A2 (en) 2012-04-11
RU2011149273A (ru) 2013-06-10
IL244625A0 (en) 2016-04-21
MY163754A (en) 2017-10-17
CL2011003047A1 (es) 2012-06-15
JP2013211036A (ja) 2013-10-10
AU2010256703B2 (en) 2014-07-17
BRPI1011684A2 (pt) 2016-03-22
US20120246117A1 (en) 2012-09-27
MX2011012937A (es) 2012-01-27
KR101655497B1 (ko) 2016-09-07
JP2012529118A (ja) 2012-11-15
CN102460409A (zh) 2012-05-16
WO2010141517A3 (en) 2011-02-17
SG175387A1 (en) 2011-12-29
US8572030B2 (en) 2013-10-29
CA2761165C (en) 2017-02-28
CA2761165A1 (en) 2010-12-09
KR20160106774A (ko) 2016-09-12
AU2010256703A1 (en) 2011-11-17
IL244625A (en) 2017-04-30
US20100312758A1 (en) 2010-12-09
WO2010141517A2 (en) 2010-12-09
IL216022A0 (en) 2012-01-31
US8219526B2 (en) 2012-07-10
KR101740207B1 (ko) 2017-05-25

Similar Documents

Publication Publication Date Title
CA2761165C (en) Synchronizing file partitions utilizing a server storage model
US11740891B2 (en) Providing access to a hybrid application offline
US9298794B2 (en) System and method for offline synchronization of exception items of shared services for client applications
US11132420B2 (en) Utilizing server pre-processing to deploy renditions of electronic documents in a computer network
US8346869B2 (en) Granular data synchronization for editing multiple data objects
KR101586419B1 (ko) 제스쳐 기반 협업

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant