KR20080007332A - 싱크 관리자 충돌 해결을 위한 방법 - Google Patents

싱크 관리자 충돌 해결을 위한 방법 Download PDF

Info

Publication number
KR20080007332A
KR20080007332A KR1020077024262A KR20077024262A KR20080007332A KR 20080007332 A KR20080007332 A KR 20080007332A KR 1020077024262 A KR1020077024262 A KR 1020077024262A KR 20077024262 A KR20077024262 A KR 20077024262A KR 20080007332 A KR20080007332 A KR 20080007332A
Authority
KR
South Korea
Prior art keywords
file
conflict
user
resolver
sink
Prior art date
Application number
KR1020077024262A
Other languages
English (en)
Inventor
벤자민 제이. 카라스
브라이언 에스. 오스트
케네쓰 더블유. 파커
마크 맥캐이브
모하메드 에이. 샘지
레베카 제이. 도이치
데이비드 포터
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Publication of KR20080007332A publication Critical patent/KR20080007332A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/368Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
    • G06F13/376Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a contention resolving method, e.g. collision detection, collision avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4031Coupling between buses using bus bridges with arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/312List processing, e.g. LISP programming language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44552Conflict resolution, i.e. enabling coexistence of conflicting executables

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Input From Keyboards Or The Like (AREA)

Abstract

싱크 관리자에 충돌 해결을 구현하기 위한 시스템 및 방법이 제공된다. 충돌의 경우에는, 싱크 동작은 충돌 객체를 생성하고 저장하며, 사용자 입력이 없이 싱크 동작을 재개한다. 싱크 동작은 그러므로 사용자 입력이 없이 완성될 수 있고 사용자는 미해결의 충돌을 온라인 또는 오프라인에서 편리한 시간에 해결하도록 선택할 수 있다. 또한, 본 발명은 사용자에게 친숙한 표준화된 싱크 동작을 개발하기 위한 플랫폼을 제공한다. 또한, 본 발명은 사용자에게 많은 장치로부터 기인한 충돌을 재빠르고 손쉽게 해결하도록 허용하는 집중화된 배치를 제시한다.
충돌 해결, 싱크 동작, 충돌 객체, 리졸버, 로컬 저장소

Description

싱크 관리자 충돌 해결을 위한 방법{SYNC MANAGER CONFLICT RESOLUTION}
본 발명의 실시예는 컨텐트 해결책을 위한 시스템 및 방법에 관한 것으로, 보다 자세하게는 싱크(sync) 관리자 내부에서 사용자에게 친숙한 컨텐트 해결책을 제공하기 위한 시스템 및 방법에 관한 것이다.
오늘날의 환경에서의 컴퓨터 사용자는 수많은 서로 다른 컴퓨팅 장치를 사용 할 수 있다. 예를 들면, 컴퓨터 사용자는 고정된 컴퓨터 단말기, 랩탑 컴퓨터, 및 블랙베리 또는 기타 이동 장치를 사용할 수 있다. 종종, 이러한 컴퓨팅 장치는 유사하거나 연관된 정보를 저장하는 데에 사용된다. 예를 들면, 사용자의 약속 스케줄을 저장하는 달력은 고정된 컴퓨터 단말기, 랩탑 컴퓨터, 및 이동 장치에 표시될 수 있다. 다른 예로서는, 문서가 고정된 컴퓨터 단말기에 저장되어 있고 그 후 사용자가 문서를 편집할 수 있는 랩탑 컴퓨터에 복사될 수 있다.
하나의 장치에서 정보를 업데이트하거나 수정한 후에, 사용자는 업데이트된 정보를 다른 장치에 전송하기를 원할 수 있다. 예를 들면, 새로운 약속을 이동 장치에 저장된 달력에 입력하고 난 후에, 사용자는 그 새로운 정보를 컴퓨터 단말기에 저장된 달력에 전송하기를 원할 수 있다. 다른 예로는, 랩탑 컴퓨터에서 문서를 편집하고 난 후에, 사용자는 편집된 문서를 고정된 컴퓨터에 전송하기를 원할 수 있다. 또 다른 예도 존재한다.
장치 사이에서 정보를 전송하기 위해서는, 사용자는 두 개 이상의 장치가 동기화되도록(또는 "싱크(sync)"하도록) 선택할 수 있다. 하나 이상의 장치는 동작을 싱크하는 것을 수행하는 "싱크 관리자"를 포함할 수 있다. 두 개의 장치가 싱크되는 경우에는, 어떤 장치가 가장 최근의 정보를 포함하고 있는지가 일반적으로 판별된다. 가장 최근의 정보를 갖는 장치는 예를 들면, 다른 장치에 정보를 전송할 수 있다.
싱크하는 것은 또한 애플리케이션을 네트워크화하는데 유용하다. 예를 들면, 두 명 이상의 사용자가 네트워크화된 컴퓨팅 환경의 동일한 문서, 달력, 또는 기타 정보에 액세스했을 수 있다. 싱크하는 것은, 정보의 가장 최근의 사본이 사용되었음을 보장하기 위해 그러한 환경에서 사용될 수 있다.
정보의 하나 이상의 버전이 존재하는 경우에는, 싱크 관리자는 일반적으로 어떤 버전이 가장 최근의 것인지를 판별하고자 시도할 것이다. 예를 들면, 이동 장치 및 고정된 컴퓨터 단말기 사이의 싱크 동작을 수행한 후에, 사용자가 이동 장치의 달력에 새로운 약속을 입력할 수 있다. 다른 예로서는, 랩탑 컴퓨터 및 고정된 컴퓨터 단말기 사이의 싱크 동작을 수행한 후에, 사용자가 랩탑 컴퓨터의 문서에 변경을 가할 수 있다. 많은 경우에서, 싱크 관리자는 임의의 사용자 입력이 없이 정보의 어떤 버전을 보관해야 할지 결정할 수 있다. 예를 들면, 싱크 관리자는 정보의 어떤 버전이 가장 최근에 편집되었는지를 판별하고, 가장 최근의 버전만을 보관할 수 있다.
그러나, 몇몇 경우에서는, 정보의 어떤 버전이 보관되어야할지가 언제나 명백한 것은 아닐 수도 있다. 그러한 상황은 충돌이라고 알려져 있다. 충돌은 예를 들면, 마지막 싱크 동작 이래로 정보의 하나보다 많은 버전이 편집된 경우에 발생할 수 있다. 예를 들면, 이동 장치와 고정된 컴퓨터 단말기 사이의 싱크 동작을 수행한 후에, 사용자가 하나의 새로운 약속을 이동 장치의 달력에 입력하고, 다른 새로운 약속을 고정된 컴퓨터 단말기의 달력에 입력할 수 있다. 다른 예로서는, 랩탑 컴퓨터와 고정된 컴퓨터 단말기 사이의 싱크 동작을 수행한 후에, 사용자가 랩탑 컴퓨터의 문서에 변경을 가하고, 고정된 컴퓨터 단말기의 문서에는 다른 변경을 가할 수 있다.
충돌의 경우에는, 사용자는 일반적으로 충돌을 해결하기 위해 사용되는 입력을 넣으라고 프롬프트(prompt)될 것이다. 예를 들면, 사용자는 정보의 제1 버전을 보관할 지, 정보의 제2 버전을 보관할지, 한쪽의 이름을 변경함으로써 양쪽 버전을 모두 보관할지, 또는 수동으로 충돌을 해결할 지의 질문을 받을 수 있다. 사용자가 수동으로 충돌을 해결하겠다고 결정하는 경우에는, 예를 들면, 사용자에게 일치하지 않는 부분의 리스트가 제시되고 각각을 어떻게 해결할 것인지 묻는 것과 같은, 추가적인 선택사항이 제시될 수 있다. 예를 들어, 사용자에게 핸드헬드 장치에 입력된 제1 약속을 보관할지 또는 삭제할지를 묻고 나서, 고정된 컴퓨터 단말기에 입력된 제2 약속을 보관할지 삭제할지를 물을 수 있다. 다른 예로서는, 사용자에게 랩탑 컴퓨터를 통해 문서에 생긴 변경의 리스트 및 고정된 컴퓨터 단말기를 통해 문서에 생긴 변경의 리스트가 제시되고 각각의 변화를 보관할지 또는 삭제할 지를 물을 수 있다.
어떤 파일(들)이 보관될 것인지(자동으로 또는 사용자의 입력을 이용하여 수행될 것인지)를 결정하는 프로세스는 파일의 중재(reconciling)로서 알려져 있다. 몇몇 경우에서는, 충돌은 파일의 중재 중에 일어날 수 있다. 이 경우에서는, 파일을 중재시키기 위해 일반적으로 사용자 입력이 요구된다. 다른 경우에서는, 예를 들면, 마지막 싱크 동작 이래로 파일의 단지 하나의 버전만이 편집되었기 때문에, 또는 마지막 싱크 동작 이래로 편집된 파일의 버전이 없기 때문에, 파일을 중재시키는 중에 충돌이 일어나지 않는다. 이 경우에서는, 파일을 중재시키는 데에 사용자 입력이 일반적으로 요구되지 않는다.
통상적으로, 사용자는 제1 장치를 제2 장치에 연결하여 싱크 동작을 시작할 수 있다. 예를 들면, 사용자는 컴퓨터 단말기에 연결된 크래들 내에 핸드헬드 장치를 두거나, 랩탑 컴퓨터를 고정된 컴퓨터 단말기에 연결하는 등의 일을 할 수 있다. 싱크 관리자는 그러면 문서의 서로 다른 버전을 중재시키기 시작한다. 몇몇 예에서는, 싱크 관리자는 정보의 어떤 버전이 가장 최근에 편집되었는지를 판별하는 등을 행함으로써, 사용자 입력이 없이 문서의 버전을 중재시킬 수 있다. 다른 예에서는, 싱크 관리자는 사용자 입력 없이는 문서의 버전을 중재시킬 수 없어 충돌이 일어난다.
싱크 관리자가 충돌을 만나면, 싱크 관리자는 예를 들어, 싱크 동작을 정지시키고 입력을 위해 사용자에게 프롬프트한다. 사용자는 그러면 싱크 동작이 재개되기 전에 충돌을 해결하기 위해 입력을 제공하도록 요구될 수 있다.
사용자는 싱크 동작이 재개되기 전에 입력을 제공하도록 요구될 수 있기 때문에, 사용자는 싱크 동작이 시간 소모적이고 힘이 드는 것으로 생각할 수도 있다. 그러므로, 당해 기술분야에서는 즉각적인 사용자 입력을 요청하지 않는 싱크 동작이 필요하다.
또한, 각각의 장치가 자기 자신의 싱크 관리자를 포함할 수 있기 때문에, 충돌 해결을 위한 사용자 인터페이스 및 방법은 장치마다 굉장히 다양할 수 있다. 이는 사용자에게 혼동되거나 또는 혼란스러운 경험을 줄 수 있다. 그러므로 표준화된 싱크 동작이 필요하다.
또한, 사용자가 각각의 장치를 차례로 싱크하고 각각의 싱크 동작에 대해 입력을 제공하도록 요구될 수 있기 때문에, 하나보다 많은 장치를 싱크하는 것은 사용자를 성가시고 지치게 할 수 있다. 그러므로 대한 당해 기술분야에서는 사용자로 하여금 많은 장치로부터 기인한 충돌을 재빠르고 손쉽게 해결할 수 있도록 허용하는 집중화된 배치가 필요하다.
본 발명의 실시예는 싱크 동작을 수행하기 위한 방법을 포함한다. 본 방법은 제1 파일을 수신하는 단계, 제2 파일을 수신하는 단계, 및 제1 파일과 제2 파일 사이에 충돌이 존재하는지를 판별하는 단계를 포함할 수 있다. 본 방법은 충돌이 존재하지 않는 경우에는, 제1 파일과 제2 파일을 중재시키는 단계와, 충돌이 존재하는 경우에는 제1 파일 및 제2 파일을 식별하는 충돌 객체를 생성하며 충돌을 해결하기 위한 적어도 하나의 방법을 지정하는 단계를 더 포함할 수 있다.
본 발명의 다른 양태에서는, 충돌 해결을 수행하기 위한 방법은, 충돌 해결이 시작될 것임을 가리키는 선택을 사용자로부터 수신하는 단계, 제1 파일을 설명하는 제1 파일 정보를 표시하는 단계, 제2 파일을 설명하는 제2 파일 정보를 표시하는 단계, 및 적어도 하나의 충돌 해결 옵션-각각의 충돌 해결 옵션은 충돌을 해결하는 가능한 방법을 식별함-을 표시하는 단계를 포함할 수 있다.
본 발명의 또 다른 양태에서는, 싱크 동작을 수행하기 위한 시스템은, 제1 파일과 제2 파일을 비교하고, 제1 파일과 제2 파일 간에 충돌이 존재하는지의 여부를 판별하고, 충돌이 존재하지 않는 경우에는 제1 파일과 제2 파일을 중재시키며, 충돌이 존재하는 경우에는, 충돌 객체를 생성하도록 구성된 싱크 관리자를 포함할 수 있다. 시스템은 충돌 객체를 유지하도록 구성된 충돌 저장소 및 충돌을 해결하기 위한 적어도 하나의 방법을 지정하는 리졸버를 더 포함할 수 있다.
상술한 시스템 및 방법은 즉각적인 사용자 입력을 요구하지 않고 대신에 사용자로 하여금 미해결의 충돌을 편리한 시간에 온라인 또는 오프라인으로 해결하도록 허용하는 싱크 동작을 가능하게 할 수 있다. 또한, 본 발명의 시스템 및 방법은 사용자에게 친숙한 표준화된 싱크 동작을 개발하기 위한 플랫폼을 제공할 수 있다. 또한, 본 발명의 시스템 및 방법은 사용자에게 많은 장치로부터 기인한 충돌을 재빠르고 손쉽게 해결하도록 허용하는 집중화된 배치를 제시할 수 있다.
본 발명은 첨부된 도면에 관련하여 다음에 자세히 설명된다.
도 1은 본 발명의 실시예에 따라 시스템의 개관을 도시하는 블록도;
도 2는 본 발명의 실시예가 구현될 수 있는 컴퓨터화된 환경을 도시하는 블록도;
도 3은 본 발명의 실시예에 따라 싱크 동작을 수행하기 위한 방법을 도시하는 플로우 차트;
도 4는 본 발명의 실시예에 따른, 충돌 해결을 수행하기 위한 방법을 도시하는 플로우 차트; 및
도 5 내지 6은 본 발명의 실시예에 따른, 예시적인 그래픽 사용자 인터페이스(GUI) 창을 도시하는 도면.
Ⅰ. 시스템 개요
충돌 해결 관리자를 구현하기 위한 시스템 및 방법이 제공된다. 충돌 해결 관리자는 싱크 동작 동안에 발생하는 충돌을 해결하는 데에 사용될 수 있다.
본 시스템은 싱크 관리자(201)를 포함하는 단말기(200)를 포함할 수 있다. 단말기(200)는 커플링(206, 208)을 통해 하나 이상의 장치(202, 204)에 각각 연결될 수 있다. 각각의 장치(202, 204)는 예를 들면, 이동 통신 장치, 랩탑 컴퓨터, 게임 장치, 카메라, 컴퓨터 단말기 등일 수 있으며, 혹은 이들을 포함할 수 있다. 장치(202)는 하나 이상의 파일(210a, 212a)를 포함할 수 있고, 장치(204)는 하나 이상의 파일(214a, 216a)을 포함할 수 있다. 파일(210a, 212a, 214a, 216a)은 예컨대, 단말기(200)에 저장된 각각의 파일(210b, 212b, 214b, 216b)의 버전일 수 있다. 따라서 파일(210a, 212a, 214a, 216a)은 각각 파일(210b, 212b, 214b, 216b) 과 동일하거나 유사할 수 있다.
싱크 동작은 예를 들면, 사용자가 커플링(206)을 통해 장치(202)를 단말기(200)에 연결하는 경우 및/또는 커플링(208)을 통해 장치(204)를 단말기(200)에 연결하는 경우에 시작할 수 있다. 이 시점에서는, 싱크 관리자(201)는 장치(202)에 저장된 파일(210a, 212a)을 단말기(200)에 저장된 파일(210b, 212b)과 중재시키기 위해 시도하거나/시도하고, 장치(204)에 저장된 파일(214a, 214a)을 단말기(200)에 저장된 파일(214b, 214b)과 일치시키기 위해 시도한다.
싱크 관리자(201)는 파일들을 중재시키는 데에 사용되는 방법을 포함하는 리졸버 애플리케이션 프로그램 인터페이스(API: 218)를 포함한다. 리졸버 API는 일반적 리졸버(220)를 포함할 수 있는데, 예를 들면, 이는 파일을 중재시키는 데에 사용되는 디폴트(default) 리졸버이다. 리졸버 API(218)는 또한 예를 들면, 특정한 장치 및/또는 애플리케이션에 대해 특화된 리졸버를 생성하도록 확장된, 확장가능한 API일 수 있으며 혹은 이를 포함할 수 있다. 특정한 예로는, 워드(Word) 개발자가 사용자에게 워드 문서들 사이의 충돌을 해결하도록 허용하는 충돌 관리자를 작성할 수 있다. 도 1에서 나타나듯이, 특화된 리졸버(222)는 장치(202)로부터 파일들을 중재시키기 위해 사용되는 리졸버 API(218)의 확장일 수 있다. 특화된 리졸버(222)는 예를 들면, 단말기(200)에, 또는 장치(202)에, 또는 양쪽 모두에 저장될 수 있다. 다른 예로는, 특화된 리졸버(224)는 특정한 애플리케이션에서 생성된 파일과 같은, 특정한 파일 타입의 파일을 중재시키는 데에 사용되는 리졸버 API(218)의 연장일 수 있다. 특화된 리졸버(224)는 예를 들면, 터미널(200)에, 또 는 장치(204)에, 또는 양쪽 모두의 위치에 저장될 수 있다.
싱크 동작이 수행될 때에는, 싱크 관리자(201)는 파일(210a, 212a)을 파일(210b, 212b)과 일치시키고/일치시키거나 파일(214a, 216a)을 파일(214b, 216b)과 일치시킨다. 진행중인 특정한 파일 일치를 다루기 위해 지정된 특화된 리졸버(222 또는 224)가 있는 경우에는, 그 특화된 리졸버(222 또는 224)가 사용될 수 있다. 진행중인 특정한 파일 일치를 다루기 위해 지정된 특화된 리졸버(222 또는 224)가 없는 경우에는, 일반적인 리졸버(220)가 사용될 수 있다. 다른 경우에서는, 싱크 관리자(201)가 아무런 리졸버도 없이 파일들을 일치시킬 수 있다.
싱크 관리자(201)는 예를 들면, 싱크 관리자(201) 내부에 제공되는 방법 및/또는 리졸버(220, 222, 및/또는 224)에 제공된 방법을 사용하여 파일 일치를 수행한다. 싱크 관리자(201)가 파일의 어떤 버전이 보관되어야 할지를 결정할 수 있는 경우에는, 싱크 관리자(201)는 파일 일치를 자동으로(예를 들면, 문서의 가장 최근의 버전을 보관함으로써) 수행한다. 싱크 관리자(201)가 파일의 어떤 버전을 보관할지 결정할 수 없는 경우에는, 충돌이 일어난다.
충돌이 일어나는 경우에는, 싱크 관리자(201)는 충돌 객체(226, 228, 230, 232)를 생성한다. 각각의 충돌 객체(226, 228, 230, 232)는 두 파일 간의 충돌을 특정화하는 정보를 포함한다. 예를 들면, 충돌 객체(226)는 두 파일(210a 및 210b) 간의 충돌을 특정화하는 정보를 포함하고, 충돌 객체(228)는 두 파일(212a 및 212b) 간의 충돌을 특정화하는 정보를 포함하고, 충돌 객체(230)는 두 파일(214a 및 214b) 간의 충돌을 특정화하는 정보를 포함하며, 충돌 객체(232)는 두 파일(216a 및 216b) 간의 충돌을 특정화하는 정보를 포함할 수 있다.
충돌 객체(226, 228, 230, 232)에 포함되는 정보는 예를 들면, 충돌이 일어나고 장치가 그 충돌을 포함하는 경우에는 충돌중인 파일(들)을 특정화하는 정보를 포함할 수 있다. 충돌 객체(226, 228, 230, 232)에 포함되는 정보는 예를 들면, 충돌중인 두 개의 파일을 식별하는 정보, 또는 충돌중인 파일의 사본을 더 포함할 수 있다. 충돌 객체(226, 228, 230, 232)에 포함되는 정보는 또한 예를 들면, 충돌을 해결하기 위해 사용되는 리졸버(220, 222, 또는 224)를 특정화하는 정보를 포함할 수 있다.
충돌 객체(226, 228, 230, 232)는 예를 들면, 단말기(200) 내부의 충돌 저장소(234)에 저장될 수 있다. 선택적으로, 충돌 객체(226, 228, 230, 232)의 일부 또는 모두는 또한 장치(202) 및/또는 장치(204)에 저장될 수 있다. 장치(202) 및/또는 장치(204)는 예를 들면, 충돌 객체(226, 228, 230, 232)를 저장하기 위해 충돌 저장소(236, 238)를 각각 포함할 수 있다.
충돌이 싱크 동작 동안에 일어나는 경우에는, 싱크 관리자(201)는 충돌 객체(226, 228, 230, 232)를 생성하고, 싱크 동작을 재개한다. 본 발명의 실시예에서는, 사용자 입력은 싱크 동작 동안에는 필요하지 않다.
싱크 관리자(201)는 충돌 관리자 사용자 인터페이스(UI: 240) 및 디스플레이(242)를 포함할 수 있다. 하나 이상의 충돌이 삭제되는 경우에는, 충돌 관리자 UI는 그것을 디스플레이(242)를 통해 예를 들면, 시스템 상자(system tray)의 아이콘 또는 임의의 기타 적절한 수단을 사용하여 가리킨다. 편리한 시간에, 사용자는 예를 들면, 아이콘을 더블클릭함으로써, 미해결의 충돌을 해결하도록 선택할 수 있다.
사용자가 미해결의 충돌을 해결하도록 결정하는 경우에는, 충돌 관리자 UI(240)는 미해결의 충돌의 리스트를 디스플레이(242)를 통해 사용자에게 제시한다. 미해결의 충돌의 리스트는 예를 들면, 충돌 저장소(234)의 각각의 충돌 객체(226, 228, 230, 232)에 대한 리스트의 항목을 포함한다. 각각의 리스트 항목에 대하여, 사용자는 예를 들면, 리스트 항목을 더블클릭함으로써, 충돌을 해결하도록 선택할 수 있다. 사용자는 그러면 예를 들면, 충돌 객체(226, 228, 230, 또는 232)에서 지정된 리졸버(220, 222, 또는 224)를 이용하여, 충돌을 해결하도록 프롬프트될 수 있다.
충돌 관리자 UI(240)는 디스플레이(242)를 통해 몇 가지의 해결 옵션을 사용자에게 제시할 수 있다. 사용자에게 제시되는 해결 옵션은 리졸버(220, 222, 또는 224)에 의해 지정된다. 해결 옵션은 예를 들면, 파일의 제1 버전을 보관하는 옵션, 파일의 제2 버전을 보관하는 옵션, 한쪽의 이름을 변경함으로써 양쪽 모두의 버전을 보관하는 옵션, 특정 애플리케이션을 사용하여 수동으로 일치하지 않는 점을 해결하는 옵션, 및/또는 리졸버(220, 222, 또는 224)에 의해 지정된 임의의 기타 해결 옵션을 포함할 수 있다.
사용자는 하나 이상의 충돌을 해결할 수 있고, 남아있는 충돌을 나중에 해결하기 위해 저장하도록 선택할 수 있다. 본 발명의 구현예에서는, 사용자는 어떤 특정한 시간에 충돌 해결에 대해 결정을 내리도록 요구되지 않는다.
또한, 장치(202, 204)가 장치(200)에 연결되지 않았을 때에는 사용자는 동시에 충돌을 해결하는 선택을 할 수 있다. 사용자는 제시된 해결 옵션으로부터 선택하고, 다음 싱크 동작시에 사용자의 선택은 충돌의 해결로 구현될 수 있다.
본 발명의 실시예에서는, 예를 들면, 시스템의 관리자와 같은, 사용자가 미리 특정한 타입의 충돌이 어떻게 해결될지를 특정화할 입력을 제공할 수 있다. 그러한 입력을 제공하는 것은 특정한 타입의 충돌에 대한 "충돌 정책"을 생성하는 것으로 알려질 수 있다. 충돌이 삭제되고 특정한 타입의 충돌을 다루기 위한 충돌 정책이 존재할 때에는, 예를 들면, 사용자 입력을 요하지 않고, 시스템은 충돌을 정책에 따라 해결할 수 있다. 하나의 특정한 예로서는, 시스템의 관리자는 특정 폴더의 워드 문서에 대해, 파일의 양 버전이 보관되어야하고, 양 파일의 이름이 단어 "v1" 및 "v2"를 파일 이름에 추가하는 것을 통해 바뀌어야 함을 특정함으로써, 충돌 정책을 생성할 수 있다. 워드 문서 사이의 충돌이 이 폴더에서 일어나는 경우에는, 충돌은 예를 들어, 사용자 입력이 없이 충돌 정책에 따라 해결될 것이다.
또한, 장치(202)는 장치(202)에서 디스플레이(242)를 통해 사용자에게 해결 옵션을 제시하기 위해 사용되는 충돌 관리자 UI(244)를 선택적으로 포함할 수 있고, 장치(204)는 장치(204)에서 디스플레이(250)를 통해 사용자에게 해결 옵션을 제시하기 위해 사용되는 충돌 관리자 UI(248)를 선택적으로 포함할 수 있다. 장치(202, 204)에서 사용자에 의해 결정되는 선택은 다음 싱크 동작시에 구현될 수 있다.
Ⅱ. 예시적인 동작 환경
도 2는 충돌 해결을 위한 시스템이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 일례를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본 발명의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 컴퓨팅 운영 환경(100)에서 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 의존성 또는 요구사항을 갖는 것으로서 해석되어서는 안된다.
본 발명은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어의 일반적인 문맥에서 설명된다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 또한, 당업자는 본 발명이 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 시스템, 마이크로프로세서 기반의 또는 프로그램가능한 가전제품, 미니컴퓨터, 메인프레임 컴퓨터, 등과 같은 기타 컴퓨터 시스템 구성을 이용하여 실행될 수 있음을 이해할 것이다. 본 발명은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘 다에 위치할 수 있다.
도 2와 관련하여, 본 발명을 구현하는 예시적인 시스템은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함하는 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 2는 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 2는 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라 이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 2에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 2에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162), 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니 터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터일 수 있고, 비록 메모리 저장 장치(181)만이 도 2에 도시되어 있지만, 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 2에 도시된 논리적 접속으로는 LAN(171) 및 WAN(173)이 있지만, 기타 네트워크를 포함할 수도 있다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 애플리케이션 프로그램(185)이 원격 컴퓨터(180)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
비록 컴퓨터(110)의 많은 다른 인터넷 컴포넌트가 도시되지는 않았지만, 당업자는 그러한 컴포넌트 및 상호 연결이 널리 공지되어 있음을 잘 이해할 것이다. 따라서, 컴퓨터(110)의 내부 구조에 대한 추가적인 세부사항은 본 발명과 연결되어 개시될 필요가 없다.
Ⅲ. 본 발명의 시스템 및 방법
상기 설명된 바와 같이, 도 1은 본 발명의 실시예에 따른 충돌 해결 기능을 포함하는 싱크 관리자를 구현하기 위한 시스템을 도시한다. 도 2에 관하여 설명된 것처럼, 본 시스템은 하나 이상의 사용자 컴퓨터를 포함할 수 있다.
도 3은 본 발명의 실시예에 따른 싱크 동작을 수행하기 위한 방법을 도시하는 플로우 차트이다. 도 3에서 도시되는 바와 같이, 사용자는 두 개 이상의 장치(300)를 연결함으로써 시작할 수 있다. 두 개 이상의 장치(300)를 연결하는 것은 예를 들면, 이동 장치를 고정된 컴퓨터 단말기에 연결하는 것, 컴퓨터 단말기를 네트워크에 연결하는 것, 또는 임의의 기타 유사한 연결을 수행하는 것을 포함할 수 있다. 본 방법의 나머지는 예를 들면, 연결된 장치 중의 하나에서 이루어질 수 있다. 그러나, 다른 구현예에서는, 본 방법은 두 개 이상의 장치에서 일어난다.
본 방법은 연결된 장치가 중재시킬 임의의 파일을 포함하고 있는지의 여부를 결정하는 단계(302)에서 계속된다. 중재시킬 파일이 더 있지 않다면, 방법은 종료될 수 있다.
싱크할 파일이 있는 경우에는, 단계(304)에서, 파일이 예를 들면, 원격 장치 로부터 검색된다. 단계(306)에서는, 검색된 파일이 로컬 파일과 비교될 수 있다. 로컬 파일은 예를 들면, 검색된 파일의 한 버전일 수 있어서, 검색된 파일과 유사하거나 동일할 수 있다.
단계(308)에서는, 검색된 파일과 로컬 파일 간에 충돌이 있는지의 여부가 판별된다. 충돌이 없는 경우에는, 예를 들면, 파일들을 중재시키기 위한 사용자 입력이 요구되지 않는다. 이는 예를 들면, 파일이 동일한 경우 또는 마지막 싱크 동작 이래로 단지 하나의 파일만이 편집된 경우일 수 있다. 충돌이 없는 경우에는, 파일은 단계(310)에서 자동적으로 중재되고, 방법은 중재시킬 파일이 더 있는지의 여부를 판별하는 단계(302)로 되돌아간다.
단계(308)에서 충돌이 있다고 판별되는 경우에는, 단계(312)에서 충돌 객체가 생성될 수 있다. 생성된 충돌 객체는 예를 들면, 도 1에 관련하여 상기에 설명된 것과 같은 충돌 객체일 수 있다. 충돌 객체는 예를 들면, 나중에 충돌을 해결하기 위해 사용될 정보를 포함한다. 충돌 객체는 하나 이상의 충돌 저장소에 저장될 수 있다. 본 방법은 그 후 중재시켜야 할 임의의 파일이 더 있는지의 여부를 판별하는 단계(302)에서 계속된다.
도 4는 본 발명의 실시예에 따른 충돌 해결을 수행하기 위한 방법을 도시하는 플로우 차트이다. 도 4에서 도시되는 바와 같이, 본 방법은 사용자가 예를 들면, 시스템 상자의 아이콘을 더블클릭하거나 몇몇 다른 적합한 방법을 통해 충돌을 해결하도록 선택할 수 있는 단계(400)에서 시작할 수 있다. 단계(402)에서는, 사용자에게 미해결의 충돌의 리스트가 제시될 수 있다. 미해결의 충돌의 리스트는 예를 들면, 충돌 저장소 내의 모든 충돌 객체의 리스트일 수 있고, 아직 해결되지 않은 모든 충돌을 나타낼 수 있다.
단계(404)에서는, 사용자는 충돌의 리스트로부터 예를 들면, 충돌을 더블클릭하거나 몇몇 다른 적합한 방법을 통해 충돌을 선택할 수 있다. 다른 방법으로는, 사용자는 충돌을 선택하기를 거부할 수 있고 그 대신에 충돌 해결을 종료하도록 선택할 수 있다. 사용자가 충돌 해결을 종료하도록 결정하는 경우에는, 충돌 저장소 내의 충돌 객체는 변경되지 않을 수 있고, 사용자는 나중에 충돌 저장소 내의 임의의 미해결의 충돌을 해결할 수 있다.
사용자가 단계(404)에서 충돌의 리스트로부터 충돌을 선택하는 경우에는, 사용자에게 GUI가 제시된다. GUI는 예를 들면, 충돌 관리자 UI에 의해 제시될 수 있다. 충돌 관리자 UI는 예를 들면, 충돌 객체를 쿼리(query)하여 리졸버가 충돌을 해결하기에 적합한지를 판별한다. 사용자에게 제시된 GUI는 예를 들면, 적합한 리졸버에 의해 특정화된 대로, 충돌을 해결하기 위해 하나 이상의 옵션을 포함할 수 있다. 예를 들면, 사용자는 파일의 제1 버전을 보관할지, 파일의 제2 버전을 보관할지, 한쪽의 이름을 변경함으로써 양 버전을 모두 보관할지, 특정한 애플리케이션을 사용하여 수동으로 충돌을 해결할지, 또는 리졸버에 의해 특정화된 몇몇 다른 충돌 해결의 형태를 수행할지에 대해 질문을 받을 수 있다.
단계(410)에서는, 파일은 사용자에 의해 지정된 방식으로 중재된다. 단계(412)에서는, 충돌을 나타내는 충돌 객체는 충돌 저장소에서 제거된다. 이는 예를 들면, 충돌 객체를 삭제하는 것, 충돌 객체를 완료로 표시하는 것, 또는 몇몇 다른 적합한 방법을 포함할 수 있다. 충돌 저장소에서 충돌을 제거하는 것은 그 충돌이 해결되었음을 가리킨다.
단계(414)에서는, 사용자에게 다른 충돌을 해결하기 위한 옵션이 제시될 수 있다. 사용자가 다른 충돌을 해결하기를 원치 않는 경우에는, 본 방법은 종료된다. 사용자가 다른 충돌을 해결하기 원하는 경우에는, 본 방법은 미해결의 충돌의 리스트가 사용자에게 제시되는 단계(402)로 되돌아갈 수 있다.
도 5는 본 발명의 실시예에 따라 사용자에게 표시될 수 있는 예시적인 GUI 창(500)을 도시한다. 도 5에서 도시된 바와 같이, 사용자는 미해결의 충돌이 존재한다는 사실을 예를 들면, 시스템 상자(504)의 아이콘(503)을 통해 환기될 수 있다. 예를 들면, 아이콘(502)은 미해결의 충돌이 있음을 신호하는 특정한 색상으로 표시될 수 있다. 사용자는 충돌 관리자를 예를 들어, 아이콘(502)을 더블클릭함으로써 또는 몇몇 다른 적합한 방법을 통해 불러낼 수 있다.
사용자가 충돌 관리자를 불러내는 경우에는, 도 5에서 도시된 대로, 예를 들면 대화 상자(dialog box)로서 구현될 수 있는 충돌 관리자 GUI 스크린(500)이 사용자에게 제시된다. 충돌 관리자 GUI 스크린(500)은 미해결의 충돌의 리스트를 제시할 수 있다. 미해결의 충돌 각각에 대해, 충돌 관리자 GUI 스크린(500)은 예를 들면, 충돌중인 파일(들)명, 충돌에 연루된 장치, 충돌이 감지된 시간, 충돌하는 파일 중의 하나에 대한 가장 최근에 편집된 시간, 또는 임의의 기타 관계된 정보와 같은 충돌을 식별하는 정보를 표시할 수 있다.
사용자가 충돌을 해결하기를 원하는 경우에는, 사용자는 예를 들면, 충돌의 리스트에 있는 충돌을 더블클릭함으로써, 또는 몇몇 다른 적합한 방법을 통해, 이를 가리킬 수 있다. 그러면 도 6의 충돌 해결 GUI 스크린(600)이 사용자에게 제시될 수 있다.
도 6은 본 발명의 실시예에 따라 사용자에게 표시될 수 있는 예시적인 GUI 창(600)을 도시한다. 도 6에서 도시된 바와 같이, 특정한 충돌을 해결하기를 원하는 사용자에게 예를 들면, 대화 상자로 구현될 수 있는 GUI 창(600)이 제시될 수 있다. GUI 창(600)은 충돌하는 두 개의 파일에 관한 정보를 표시할 수 있다. 또한, GUI 창(600)은 리졸버에 의해 특정된 대로 미해결의 충돌을 해결하기 위한 다양한 옵션을 표시할 수 있다.
예를 들면, GUI 창(600)은 파일의 제1 버전을 나타내는 제1 아이콘(602) 및 파일의 제2 버전을 나타내는 제2 아이콘(604)을 표시할 수 있다. 사용자가 그 파일 중 하나를 보기 원하면, 사용자는 예를 들면, 제1 아이콘(602) 또는 제2 아이콘(604)을 더블클릭함으로써 볼 수 있다. GUI 창(600)은 또한 제1 파일을 설명하는 정보(606) 및 제2 파일을 설명하는 정보(608)를 표시할 수 있다. 정보(606 및 608)의 전부 또는 일부는 동적으로(dynamically) 예를 들면, 제1 파일 및 제2 파일 사이의 차이점을 표시하도록, 선택될 수 있다. 예를 들면, 제1 파일(606) 및 제2 파일(608)이 서로 다른 작성자를 갖고 있다고 판별되는 경우에는 작성자 정보는 파일 각각에 대해 표시될 수 있다. 따라서, 충돌을 어떻게 해결할 것인지를 결정하는 데 도움이 될 정보가 사용자에게 제시될 수 있다.
또한, GUI 창(600)은 충돌을 해결하기 위한 하나 이상의 옵션(610)을 사용자 에게 제시할 수 있다. 사용자에게 제시되는 옵션(610)은 예를 들면, 리졸버에 의해 특정화된 것일 수 있다. 사용자는 예를 들면, 파일의 제1 버전을 보관하도록, 파일의 제2 버전을 보관하도록, 한쪽의 이름을 변경하여 양쪽 모두 보관하도록, 또는 특정된 방법을 이용하여 충돌을 해결하도록 선택할 수 있다. GUI 창(600)에 표시되는 특정된 방법은 예를 들면, 리졸버에 의해 특정된 방법일 수 있고, 특정 장치에 특화되거나, 또는 워드 문서에 특화되는 것처럼, 어떤 애플리케이션 또는 파일 타입에 특화된 것일 수 있다.
사용자가 제1 버전을 보관하거나 제2 버전을 보관하고자 선택하는 경우에는, 충돌 해결이 예를 들면, 임의의 추가적인 사용자 입력이 없이 수행될 수 있다. 사용자가 한쪽의 이름을 변경하여 양 버전을 모두 보관하도록 선택하는 경우에는, 예를 들면, 아이콘(602, 604) 중의 하나를 오른쪽 클릭하거나 몇몇 다른 적합한 수단을 통해 GUI 창(600) 내부의 파일 중의 하나의 이름을 변경함으로써, 사용자에게 제시될 수 있다. 사용자가 리졸버에 의해 특정화된 방법을 사용하여 충돌을 해결하기를 선택하는 경우에는, 특정 예로서, MS 워드를 이용하여 충돌을 해결하는 것은 예를 들면, 사용자에게 강조된 변화 또는 일치하지 않는 부분을 포함하는 워드 문서를 제시하는 것, 및 사용자에게 각각의 변화 또는 일치하지 않는 부분을 받아들이거나 거부하도록 프롬프트 하는 것을 포함할 수 있다.
도 5 내지 6에 도시되는 GUI 창은 예시적일 뿐이며 본 발명을 제한하기 위함은 아니다. 기타 사용자 인터페이스가 가능하며 이는 본 발명의 범위 내에 있다. 예를 들면, 충돌 해결을 위한 사용자 인터페이스가 하나의 창 프레임이 각각의 충 돌을 차례대로 표시하기 데에 사용되고, 사용자가 "앞으로(forward)"와 "뒤로(back)" 버튼을 이용하여 충돌을 내비게이트할 수 있도록 "마법사(wizard)" 타입의 인터페이스로서 구현될 수 있다. 기타 인터페이스도 가능하다.
본 발명의 특정 실시예가 도시되고 본원에서 자세히 설명되었지만, 다양한 변화 및 변조가 본 발명의 범위 및 의도에서 일탈함이 없이 본 발명에 대해 행해질 수 있음이 이해되어야 한다. 예를 들면, 본 발명이 주로 고정된 컴퓨터 단말기에 연결된 이동 장치에 관하여 설명되었으나, 본 발명은 컴퓨터 단말기의 네트워크 또는 기타 적절한 환경과 같은, 다른 환경에서도 동일하게 적합하다. 또한, 장치가 커플링을 통해 연결되는 것처럼 설명되었지만, 예를 들면, 무선 통신과 같은, 임의의 통신 방법도 적합하다. 본원에 설명된 실시예는 모든 면에서 제한적이기보다는 예시적인 것이다. 본 발명과 관련하는 대안적인 실시예가 그 범위에서 일탈함이 없이 당업자에게 명맥할 것이다.
또한, 본 발명이 두 개의 파일 사이의 충돌을 해결하거나 두 개의 파일을 중재시키는 것으로 설명되었지만, 3개 이상의 파일을 중재시키는 것도 본 발명의 범위 내에 있다. 그러한 상황은 예를 들면, 세 명 이상의 사용자가 동일하거나 유사한 파일을 각각 변경한 경우에, 또는 다른 환경에서 발생할 수 있다. n-중의 충돌의 경우(n이 2보다 큰 정수임)에는, 본 시스템은 적합한 리졸버 및 사용자 인터페이스를 선택하여 파일을 중재할 것이다. n-중 충돌 해결중에 사용자에게 제시된 GUI는 예를 들면, 충돌중인 파일의 두 개의 마지막 버전을 표시하고, 사용자로 하여금 충돌중인 파일의 예전 버전을 보도록 하는 옵션을 선택하도록 허용할 수 있 다.
상술로부터 본 발명이, 본 시스템 및 방법에 명백하고 고유한 다른 장점과 함께 상술한 모든 목적을 달성하도록 잘 적용될 것임을 알 것이다. 특정한 특징 및 세부 조합이 활용되며 다른 특징 및 세부 조합에 관계없이 사용될 수 있음이 잘 이해될 것이다. 이것은 숙고되고 첨부된 청구항의 범위 내에 존재한다.

Claims (20)

  1. 싱크 동작을 수행하기 위한 방법으로서,
    제1 파일을 수신하는 단계;
    제2 파일을 수신하는 단계;
    상기 제1 파일 및 상기 제2 파일 사이에 충돌이 존재하는지를 판별하는 단계;
    충돌이 존재하지 않는 경우에는, 상기 제1 파일 및 상기 제2 파일을 중재(reconciling)하는 단계; 및
    충돌이 존재하는 경우에는, 상기 제1 파일 및 상기 제2 파일을 식별하는 충돌 객체를 생성하고 상기 충돌을 해결하기 위한 적어도 하나의 방법을 지정하는 단계
    를 포함하는 싱크 동작을 수행하기 위한 방법.
  2. 제1항에 있어서, 사용자로부터의 충돌 해결 입력을 상기 사용자에 의해 선택된 시간에 수신하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서, 상기 제1 파일은 외부 장치로부터 수신되는 방법.
  4. 제1항에 있어서, 상기 제2 파일은 외부 장치로부터 수신되는 방법.
  5. 제1항에 있어서, 상기 제1 파일은 네트워크를 통해 수신되는 방법.
  6. 제1항에 있어서, 상기 제2 파일은 로컬 저장소로부터 수신되는 방법.
  7. 제1항에 있어서, 상기 제1 파일 및 상기 제2 파일 사이에 충돌이 존재하는지 판별하는 단계는, 상기 제1 파일 및 상기 제2 파일 양쪽 모두가 가장 최근의 싱크 동작 이래로 변경되었는지의 여부를 판별하는 단계를 포함하는 방법.
  8. 제1항에 있어서, 상기 제1 파일 및 상기 제2 파일을 중재하는 단계는 상기 제1 파일을 상기 제2 파일로 대체하는 단계, 상기 제2 파일을 상기 제1 파일로 대체하는 단계, 및 상기 제1 파일과 상기 제2 파일에 기초하여 제3 파일을 생성하는 단계로 구성되는 그룹 중 하나의 단계를 포함하는 방법.
  9. 제1항에 있어서, 충돌 정책에 따라 적어도 하나의 충돌을 해결하는 단계를 더 포함하는 방법.
  10. 충돌 해결을 수행하기 위한 방법으로서,
    충돌 해결이 시작되는 것을 가리키는 선택을 사용자로부터 수신하는 단계;
    제1 파일을 설명하는 제1 파일 정보를 표시하는 단계;
    제2 파일을 설명하는 제2 파일 정보를 표시하는 단계; 및
    적어도 하나의 충돌 해결 옵션을 표시하는 단계-상기 충돌 해결 옵션 각각은 상기 충돌을 해결하는 가능한 방법을 식별함-
    를 포함하는, 충돌 해결을 수행하기 위한 방법.
  11. 제10항에 있어서, 하나 이상의 충돌로 이루어진 리스트를 표시하는 단계를 더 포함하는 방법.
  12. 제11항에 있어서, 충돌로 이루어진 상기 리스트로부터 선택되어, 해결하기 위한 하나의 충돌의 사용자 선택을 수신하는 단계를 더 포함하는 방법.
  13. 제10항에 있어서, 하나의 충돌 해결 옵션의 사용자 선택을 수신하는 단계를 더 포함하는 방법.
  14. 제13항에 있어서, 상기 사용자 선택된 충돌 해결 옵션에 따라 상기 충돌을 해결하는 단계를 더 포함하는 방법.
  15. 제10항에 있어서, 상기 제1 파일 정보 및 상기 제2 파일 정보는 상기 제1 파일 및 상기 제2 파일 간의 차이점에 기초하여 선택되는 방법.
  16. 제10항에 있어서, 상기 충돌 해결 옵션 각각은 리졸버에서 지정되고, 상기 리졸버는 리졸버 애플리케이션 프로그램 인터페이스에 따라 구현되는 방법.
  17. 싱크 동작을 수행하기 위한 방법으로서,
    제1 파일과 제2 파일을 비교하고, 상기 제1 파일과 상기 제2 파일 간에 충돌이 존재하는지의 여부를 판별하고, 충돌이 존재하지 않는 경우에는 상기 제1 파일과 상기 제2 파일을 중재하며, 충돌이 존재하는 경우에는 충돌 객체를 생성하도록 구성되는 싱크 관리자;
    충돌 객체를 유지하도록 구성되는 충돌 저장소; 및
    충돌을 해결하기 위한 적어도 하나의 방법을 지정하는 리졸버
    를 포함하는 싱크 동작을 수행하기 위한 방법.
  18. 제17항에 있어서,
    상기 싱크 관리자는 n개 파일을 비교하고-상기 n은 2 이상의 정수임-; 상기 n개 파일 간에 충돌이 존재하는지의 여부를 판별하고, 충돌이 존재하지 않는 경우에는 상기 n 개 파일을 중재하며, 충돌이 존재하는 경우에는 충돌 객체를 생성하도록 구성되는 방법.
  19. 제17항에 있어서, 상기 리졸버는 확장가능한 리졸버 애플리케이션 프로그램 인터페이스에 따라 구현되는 방법.
  20. 제17항에 있어서, 충돌 객체로부터 수신된 충돌 정보를 표시하도록 구성되는 충돌 관리자 사용자 인터페이스를 더 포함하는 방법.
KR1020077024262A 2005-04-22 2005-07-28 싱크 관리자 충돌 해결을 위한 방법 KR20080007332A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/111,733 2005-04-22
US11/111,733 US20060242204A1 (en) 2005-04-22 2005-04-22 Sync manager conflict resolution

Publications (1)

Publication Number Publication Date
KR20080007332A true KR20080007332A (ko) 2008-01-18

Family

ID=37188329

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077024262A KR20080007332A (ko) 2005-04-22 2005-07-28 싱크 관리자 충돌 해결을 위한 방법

Country Status (6)

Country Link
US (1) US20060242204A1 (ko)
EP (1) EP1872198A4 (ko)
JP (1) JP2008537254A (ko)
KR (1) KR20080007332A (ko)
CN (1) CN101167046B (ko)
WO (1) WO2006115519A2 (ko)

Families Citing this family (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7870478B1 (en) * 2005-10-31 2011-01-11 Adobe Systems Incorporated Repurposing subsections and/or objects
US8515912B2 (en) 2010-07-15 2013-08-20 Palantir Technologies, Inc. Sharing and deconflicting data changes in a multimaster database system
US8326814B2 (en) 2007-12-05 2012-12-04 Box, Inc. Web-based file management system and service
US8745127B2 (en) * 2008-05-13 2014-06-03 Microsoft Corporation Blending single-master and multi-master data synchronization techniques
US8019813B2 (en) * 2009-05-12 2011-09-13 Microsoft Corporation Synchronizing self-referencing fields during two-way synchronization
US8219526B2 (en) * 2009-06-05 2012-07-10 Microsoft Corporation Synchronizing file partitions utilizing a server storage model
US8473543B2 (en) * 2009-07-06 2013-06-25 Microsoft Corporation Automatic conflict resolution when synchronizing data objects between two or more devices
US8572022B2 (en) * 2010-03-02 2013-10-29 Microsoft Corporation Automatic synchronization conflict resolution
WO2012099617A1 (en) 2011-01-20 2012-07-26 Box.Net, Inc. Real time notification of activities that occur in a web-based collaboration environment
US9015601B2 (en) 2011-06-21 2015-04-21 Box, Inc. Batch uploading of content to a web-based collaboration environment
US9063912B2 (en) 2011-06-22 2015-06-23 Box, Inc. Multimedia content preview rendering in a cloud content management system
GB2503625A (en) 2011-07-08 2014-01-01 Box Inc Collaboration sessions in a workspace on cloud-based content management system
EP2729877A4 (en) 2011-07-08 2015-06-17 Box Inc DESKTOP APPLICATION FOR ACCESS AND INTERACTION WITH JOBS IN A CLOUD-BASED CONTENT MANAGEMENT SYSTEM AND SYNCHRONIZATION MECHANISMS THEREFOR
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8515902B2 (en) 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
US9098474B2 (en) 2011-10-26 2015-08-04 Box, Inc. Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience
WO2013062599A1 (en) 2011-10-26 2013-05-02 Box, Inc. Enhanced multimedia content preview rendering in a cloud content management system
US8990307B2 (en) 2011-11-16 2015-03-24 Box, Inc. Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform
WO2013082320A1 (en) 2011-11-29 2013-06-06 Box, Inc. Mobile platform file and folder selection functionalities for offline access and synchronization
US9904435B2 (en) 2012-01-06 2018-02-27 Box, Inc. System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9965745B2 (en) 2012-02-24 2018-05-08 Box, Inc. System and method for promoting enterprise adoption of a web-based collaboration environment
US9195636B2 (en) 2012-03-07 2015-11-24 Box, Inc. Universal file type preview for mobile devices
US9054919B2 (en) 2012-04-05 2015-06-09 Box, Inc. Device pinning capability for enterprise cloud service and storage accounts
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9413587B2 (en) 2012-05-02 2016-08-09 Box, Inc. System and method for a third-party application to access content within a cloud-based platform
WO2013166520A1 (en) 2012-05-04 2013-11-07 Box, Inc. Repository redundancy implementation of a system which incrementally updates clients with events that occurred via cloud-enabled platform
US9691051B2 (en) 2012-05-21 2017-06-27 Box, Inc. Security enhancement through application access control
US8914900B2 (en) 2012-05-23 2014-12-16 Box, Inc. Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform
US8990168B1 (en) * 2012-06-21 2015-03-24 Emc Corporation Efficient conflict resolution among stateless processes
US9021099B2 (en) 2012-07-03 2015-04-28 Box, Inc. Load balancing secure FTP connections among multiple FTP servers
GB2505072A (en) 2012-07-06 2014-02-19 Box Inc Identifying users and collaborators as search results in a cloud-based system
US9792320B2 (en) 2012-07-06 2017-10-17 Box, Inc. System and method for performing shard migration to support functions of a cloud-based service
US9712510B2 (en) 2012-07-06 2017-07-18 Box, Inc. Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform
US9473532B2 (en) 2012-07-19 2016-10-18 Box, Inc. Data loss prevention (DLP) methods by a cloud service including third party integration architectures
US9794256B2 (en) 2012-07-30 2017-10-17 Box, Inc. System and method for advanced control tools for administrators in a cloud-based service
US8745267B2 (en) 2012-08-19 2014-06-03 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9369520B2 (en) 2012-08-19 2016-06-14 Box, Inc. Enhancement of upload and/or download performance based on client and/or server feedback information
US9558202B2 (en) 2012-08-27 2017-01-31 Box, Inc. Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment
US9135462B2 (en) 2012-08-29 2015-09-15 Box, Inc. Upload and download streaming encryption to/from a cloud-based platform
US9117087B2 (en) 2012-09-06 2015-08-25 Box, Inc. System and method for creating a secure channel for inter-application communication based on intents
US9195519B2 (en) 2012-09-06 2015-11-24 Box, Inc. Disabling the self-referential appearance of a mobile application in an intent via a background registration
US9311071B2 (en) 2012-09-06 2016-04-12 Box, Inc. Force upgrade of a mobile application via a server side configuration file
US9292833B2 (en) 2012-09-14 2016-03-22 Box, Inc. Batching notifications of activities that occur in a web-based collaboration environment
US10200256B2 (en) 2012-09-17 2019-02-05 Box, Inc. System and method of a manipulative handle in an interactive mobile user interface
US9553758B2 (en) 2012-09-18 2017-01-24 Box, Inc. Sandboxing individual applications to specific user folders in a cloud-based service
US10915492B2 (en) 2012-09-19 2021-02-09 Box, Inc. Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction
US9959420B2 (en) 2012-10-02 2018-05-01 Box, Inc. System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment
US9705967B2 (en) 2012-10-04 2017-07-11 Box, Inc. Corporate user discovery and identification of recommended collaborators in a cloud platform
US9495364B2 (en) 2012-10-04 2016-11-15 Box, Inc. Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform
US9665349B2 (en) 2012-10-05 2017-05-30 Box, Inc. System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform
US9628268B2 (en) 2012-10-17 2017-04-18 Box, Inc. Remote key management in a cloud-based environment
US9756022B2 (en) 2014-08-29 2017-09-05 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9081975B2 (en) 2012-10-22 2015-07-14 Palantir Technologies, Inc. Sharing information between nexuses that use different classification schemes for information access control
US9501761B2 (en) 2012-11-05 2016-11-22 Palantir Technologies, Inc. System and method for sharing investigation results
US10235383B2 (en) 2012-12-19 2019-03-19 Box, Inc. Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment
US9396245B2 (en) 2013-01-02 2016-07-19 Box, Inc. Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9953036B2 (en) 2013-01-09 2018-04-24 Box, Inc. File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US9507795B2 (en) * 2013-01-11 2016-11-29 Box, Inc. Functionalities, features, and user interface of a synchronization client to a cloud-based environment
EP2757491A1 (en) 2013-01-17 2014-07-23 Box, Inc. Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform
US10635638B2 (en) 2013-03-13 2020-04-28 Ivanti Us Llc Systems, methods and media for deferred synchronization of files in cloud storage client device
US10725968B2 (en) 2013-05-10 2020-07-28 Box, Inc. Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform
US10846074B2 (en) 2013-05-10 2020-11-24 Box, Inc. Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client
US9633037B2 (en) 2013-06-13 2017-04-25 Box, Inc Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform
US9805050B2 (en) 2013-06-21 2017-10-31 Box, Inc. Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US10229134B2 (en) 2013-06-25 2019-03-12 Box, Inc. Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform
US9535924B2 (en) 2013-07-30 2017-01-03 Box, Inc. Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
US9665359B2 (en) * 2013-09-13 2017-05-30 Microsoft Technology Licensing, Llc Automatically resolving conflicts after installation of selected updates in a computer system
US9213684B2 (en) 2013-09-13 2015-12-15 Box, Inc. System and method for rendering document in web browser or mobile device regardless of third-party plug-in software
US9535909B2 (en) 2013-09-13 2017-01-03 Box, Inc. Configurable event-based automation architecture for cloud-based collaboration platforms
US10509527B2 (en) 2013-09-13 2019-12-17 Box, Inc. Systems and methods for configuring event-based automation in cloud-based collaboration platforms
US10026064B2 (en) 2013-09-13 2018-07-17 Microsoft Technology Licensing, Llc Automatically recommending updates based on stored lifecycle information
US9704137B2 (en) 2013-09-13 2017-07-11 Box, Inc. Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform
GB2518298A (en) 2013-09-13 2015-03-18 Box Inc High-availability architecture for a cloud-based concurrent-access collaboration platform
US10866931B2 (en) 2013-10-22 2020-12-15 Box, Inc. Desktop application for accessing a cloud collaboration platform
US9569070B1 (en) * 2013-11-11 2017-02-14 Palantir Technologies, Inc. Assisting in deconflicting concurrency conflicts
US10235251B2 (en) * 2013-12-17 2019-03-19 Hitachi Vantara Corporation Distributed disaster recovery file sync server system
US9753967B2 (en) * 2014-03-31 2017-09-05 Samsung Electronics Co., Ltd. Computing system with error detection mechanism and method of operation thereof
US10530854B2 (en) 2014-05-30 2020-01-07 Box, Inc. Synchronization of permissioned content in cloud-based environments
US20150347966A1 (en) * 2014-05-31 2015-12-03 Hartford Fire Insurance Company Meeting management and project management element reconciliation
US9602514B2 (en) 2014-06-16 2017-03-21 Box, Inc. Enterprise mobility management and verification of a managed application by a content provider
US9503402B2 (en) 2014-08-18 2016-11-22 Dropbox, Inc. Managing drafts of electronic documents across client devices
US10038731B2 (en) 2014-08-29 2018-07-31 Box, Inc. Managing flow-based interactions with cloud-based shared content
US9894119B2 (en) 2014-08-29 2018-02-13 Box, Inc. Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms
US10574442B2 (en) 2014-08-29 2020-02-25 Box, Inc. Enhanced remote key management for an enterprise in a cloud-based environment
US9348880B1 (en) * 2015-04-01 2016-05-24 Palantir Technologies, Inc. Federated search of multiple sources with conflict resolution
US10489378B2 (en) * 2015-12-08 2019-11-26 Sap Se Detection and resolution of conflicts in data synchronization
US10936548B2 (en) 2016-03-15 2021-03-02 Microsoft Technology Licensing, Llc File synchronization pausing for individual files
CN107391536A (zh) * 2017-04-24 2017-11-24 阿里巴巴集团控股有限公司 社区应用的评论处理方法、装置和系统
CN107463657B (zh) * 2017-07-28 2018-08-17 腾讯科技(深圳)有限公司 文件操作方法及终端
CN109408081A (zh) * 2017-08-17 2019-03-01 佳能企业股份有限公司 数据传输方法及通讯系统
JP7020062B2 (ja) * 2017-11-02 2022-02-16 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5897640A (en) * 1994-08-08 1999-04-27 Microsoft Corporation Method and system of associating, synchronizing and reconciling computer files in an operating system
US5774717A (en) * 1995-12-15 1998-06-30 International Business Machines Corporation Method and article of manufacture for resynchronizing client/server file systems and resolving file system conflicts
US6275831B1 (en) * 1997-12-16 2001-08-14 Starfish Software, Inc. Data processing environment with methods providing contemporaneous synchronization of two or more clients
JP2000250799A (ja) * 1999-03-02 2000-09-14 Mitsubishi Electric Corp 複製ファイル管理システム
US6393434B1 (en) * 1999-09-14 2002-05-21 International Business Machines Corporation Method and system for synchronizing data using fine-grained synchronization plans
JP4025475B2 (ja) * 1999-11-10 2007-12-19 日本電気株式会社 データベース交換システム
US7725523B2 (en) * 2000-04-11 2010-05-25 Bolnick David A System, method and computer program product for gathering and delivering personalized user information
JP2001337858A (ja) * 2000-05-25 2001-12-07 Mitsubishi Electric Corp 複製データ管理システム
US6993522B2 (en) * 2001-06-27 2006-01-31 Microsoft Corporation System and method for resolving conflicts detected during a synchronization session
JP2005509979A (ja) * 2001-11-15 2005-04-14 ヴィスト・コーポレーション 非同期型同期のシステムおよび方法
US7340534B2 (en) * 2002-03-05 2008-03-04 Sun Microsystems, Inc. Synchronization of documents between a server and small devices
US20030220966A1 (en) * 2002-05-24 2003-11-27 International Business Machines Corporation System and method for dynamic content dependent conflict resolution
US20050177617A1 (en) * 2003-12-23 2005-08-11 Intel Corporation Conflict resolution during data synchronization
US7809682B2 (en) * 2004-05-24 2010-10-05 Apple Inc. Data synchronization between multiple devices
US20070271317A1 (en) * 2004-08-16 2007-11-22 Beinsync Ltd. System and Method for the Synchronization of Data Across Multiple Computing Devices

Also Published As

Publication number Publication date
EP1872198A4 (en) 2010-05-05
WO2006115519A3 (en) 2007-07-12
CN101167046A (zh) 2008-04-23
WO2006115519A2 (en) 2006-11-02
CN101167046B (zh) 2010-09-29
US20060242204A1 (en) 2006-10-26
EP1872198A2 (en) 2008-01-02
JP2008537254A (ja) 2008-09-11

Similar Documents

Publication Publication Date Title
KR20080007332A (ko) 싱크 관리자 충돌 해결을 위한 방법
RU2349952C2 (ru) Способ управления репликацией файлов в приложениях
RU2399950C2 (ru) Управление и использование данных в сформированном компьютером документе
JP5529205B2 (ja) 豊富なドラッグドロップユーザインターフェース
RU2406126C2 (ru) Способ и машиночитаемый носитель для предварительного просмотра и выполнения действий над вложениями в сообщения электронной почты
US8190656B2 (en) Method and apparatus for managing file extensions in a digital processing system
EP1555602B1 (en) Method and apparatus for executing multiple file management operations
US20050060653A1 (en) Object operation apparatus, object operation method and object operation program
JP4829256B2 (ja) 情報処理プログラム及び情報処理装置
JP2006127551A (ja) ファイル変換システム
US20200401759A1 (en) Batch generation of links to documents based on document name and page content matching
US20050192973A1 (en) Visual database management system and method
US8381104B2 (en) Systems and methods for providing context recognition
JP2019086867A (ja) 情報処理装置及びプログラム
JP2012059041A (ja) 文書管理システム、検索指定方法、プログラム
CN1952938A (zh) 对信息管理系统访问的数据进行组织的系统和方法
US20080046842A1 (en) Method and apparatus for executing application in a portable terminal
US6862603B1 (en) File management system, file management method, and storage medium
JP7024330B2 (ja) 情報処理装置及びプログラム
JP2019128859A (ja) 情報処理装置
KR100645965B1 (ko) 호스트 장치 및 그의 데이터 관리방법
JP7135300B2 (ja) 情報処理装置及びプログラム
JP7192206B2 (ja) 情報処理装置及びプログラム
JP7119340B2 (ja) 情報処理装置及びプログラム
JP6922662B2 (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid