KR101122880B1 - 피어 투 피어 룰 기반의 풀 자율 동기화 시스템의 구현을위한 시스템 및 방법 - Google Patents

피어 투 피어 룰 기반의 풀 자율 동기화 시스템의 구현을위한 시스템 및 방법 Download PDF

Info

Publication number
KR101122880B1
KR101122880B1 KR1020050037211A KR20050037211A KR101122880B1 KR 101122880 B1 KR101122880 B1 KR 101122880B1 KR 1020050037211 A KR1020050037211 A KR 1020050037211A KR 20050037211 A KR20050037211 A KR 20050037211A KR 101122880 B1 KR101122880 B1 KR 101122880B1
Authority
KR
South Korea
Prior art keywords
computer system
synchronization
computer
network connection
file
Prior art date
Application number
KR1020050037211A
Other languages
English (en)
Other versions
KR20060047709A (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 KR20060047709A publication Critical patent/KR20060047709A/ko
Application granted granted Critical
Publication of KR101122880B1 publication Critical patent/KR101122880B1/ko

Links

Images

Classifications

    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02BHYDRAULIC ENGINEERING
    • E02B3/00Engineering works in connection with control or use of streams, rivers, coasts, or other marine sites; Sealings or joints for engineering works in general
    • E02B3/04Structures or apparatus for, or methods of, protecting banks, coasts, or harbours
    • E02B3/12Revetment of banks, dams, watercourses, or the like, e.g. the sea-floor
    • E02B3/14Preformed blocks or slabs for forming essentially continuous surfaces; Arrangements thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02DFOUNDATIONS; EXCAVATIONS; EMBANKMENTS; UNDERGROUND OR UNDERWATER STRUCTURES
    • E02D17/00Excavations; Bordering of excavations; Making embankments
    • E02D17/20Securing of slopes or inclines
    • E02D17/205Securing of slopes or inclines with modular blocks, e.g. pre-fabricated
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • EFIXED CONSTRUCTIONS
    • E02HYDRAULIC ENGINEERING; FOUNDATIONS; SOIL SHIFTING
    • E02DFOUNDATIONS; EXCAVATIONS; EMBANKMENTS; UNDERGROUND OR UNDERWATER STRUCTURES
    • E02D2600/00Miscellaneous
    • E02D2600/20Miscellaneous comprising details of connection between elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Civil Engineering (AREA)
  • Structural Engineering (AREA)
  • Mining & Mineral Resources (AREA)
  • Computer Security & Cryptography (AREA)
  • Mechanical Engineering (AREA)
  • Ocean & Marine Engineering (AREA)
  • Environmental & Geological Engineering (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Life Sciences & Earth Sciences (AREA)
  • Paleontology (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 제2 컴퓨터 장치로부터 데이터를 요청하여 수신(또는 "풀(pull)")하기 위해 제1 컴퓨터 장치에 상주하는 동기 마법사("풀싱크(PullSync)")를 이용하는 동기화 시스템에 관한 것이다. 제1 컴퓨터 장치("동기화기")는 동기화의 유효범위 및 한도를 정의하는 동기화기 상에 설정된 특정 풀-동기화 룰(PSR)에 따라 제2 컴퓨터 장치("피동기화기") 상의 공유 폴더로부터 파일을 복사한다. 이 복사는 한 컴퓨터 시스템이 제2 컴퓨터 시스템의 이용가능 공유 폴더로부터 파일을 뷰잉하여 복사할 수 있는 현존하는 잘 정의된 프로토콜을 사용하여 네트워크 접속을 통해 발생하고, 풀싱크 마법사 소프트웨어는 제2 컴퓨터 시스템으로부터 파일을 선택적으로 복사하도록 현존하는 네트워킹 프로토콜(현존하는 보안/인증 프로토콜을 포함)을 이용하기 위해 제1 컴퓨터 시스템(동기화기) 상에만 존재할 필요가 있다.
동기 마법사, 동기화기, 피동기화기, 풀싱크, 공유 폴더, 동기화 룰

Description

피어 투 피어 룰 기반의 풀 자율 동기화 시스템의 구현을 위한 시스템 및 방법{SYSTEMS AND METHODS FOR THE IMPLEMENTATION OF A PEER-TO-PEER RULE-BASED PULL AUTONOMOUS SYNCHRONIZATION SYSTEM}
도 1은 본 발명의 실시양상들이 사용될 수 있는 컴퓨터 시스템을 나타낸 블록도.
도 2는 본 발명의 실시양상들이 사용될 수 있는 종래의 네트워크 구성을 나타낸 블록도.
도 3은 유선 및 무선 장치를 포함하는 최신의 네트워크 구성 상에서의 본 발명의 몇개의 실시예를 위한 동기 스키마를 나타낸 블록도.
<도면의 주요 부분에 대한 부호의 설명>
80 : 통신 네트워크
20a :클라이언트 컴퓨터
20b : 서버 컴퓨터
20c : 데이터 소스
300 : GoPC
310 : 워크 데스크탑
320 : 태블릿 PC
330, 340 : 워크 칼리그 데스크탑
350 : 랩탑
360 : 스파우스 포켓 PC
370 : 홈 데스크탑
본 출원은 "피어 투 피어 룰 기반의 풀 자율 동기화 시스템의 구현을 위한 시스템 및 방법{Systems and methods for the implementation of a peer-to-peer rule-based pull autonomous synchronization system}"이라는 발명의 명칭으로 2004년 5월 3일자로 출원된 미합중국 가출원 제60/567,557호(Atty.Docket No.MSFT-3959/306708.01)의 우선권을 주장하는 것으로서, 그 전체 내용은 여기에서 참조로 포함되어 있다.
본 발명은 일반적으로 피어 투 피어 동기화에 관한 것으로, 더욱 구체적으로, 그 중에서도 특히 랩탑 및 핸드헬드 컴퓨터와 같은 이동 장치에 대한 특정 애플리케이션을 갖는 피어 투 피어 룰 기반(rule-based)의 풀 자율(pull autonomous) 동기화 시스템에 관한 것이다.
본 분야에 숙련된 기술자들에게 잘 알려져 있고 쉽게 이해될 수 있는 바와 같이, 2개 이상의 컴퓨터 시스템들 간에 데이터를 동기시키는 몇가지 이유가 있으며, 그렇게 하기 위한 과다한 방식, 책략, 및 기술적인 솔루션이 있다. 그러나, 현존하는 기술에서 복수의 이러한 동기 방식은 네트워크, 특히 동적 네트워크에서 동기화의 효율 및 효력을 떨어뜨리는 기능적 제한을 갖는다. 예를 들어, 전형적인 클라이언트-서버 동기 방식은 매우 구조화되어, 클라이언트-서버 관계에서 "서버"에 의해 통상 유지되는 각 컴퓨터 시스템 간의 잘 정의된 관계를 필요로 한다. 이것은 동기화 네트워크로 들어가는 소정의 시스템이 동기화가 발생할 수 있기 전에 먼저 그 네트워크에서 식별 및/또는 정의되어야 하는 동적 동기화의 경우에 특히 문제가 된다. 또한, 다수의 이러한 동기 방식은 또한 양쪽 컴퓨터 시스템 상에 특수 동기화 소프트웨어를 필요로 하므로, 이 특수 소프트웨어가 없는 하나의 컴퓨터 시스템은 특수 동기화 소프트웨어를 갖는 다른 컴퓨터에 동적으로 동기될 수 없다.
이러한 많은 단점은 일반적으로 동기화에 해가 될 수 있는데, 특히, 소정의 통신 네트워크 및 동기 네트워크를 동적으로 들어갔다 나왔다 할 수 있는 이동 컴퓨팅 장치의 경우에 더욱 문제가 된다. 이동 장치는 특히 최소한의 오버헤드를 요구하는 매우 융통성있고 동적인 동기화 방식을 필요로 한다. 여기에 설명된 발명은 이들 단점을 처리한다.
본 발명의 다양한 실시예는 특히 이동 장치에 매우 적합하면서 또한 현존하는 동기 방식보다 상당한 동작적 이점을 갖는 피어 투 피어 룰 기반의 풀 자율 동기화 시스템을 위한 시스템 및 방법에 관한 것이다.
본 발명의 몇몇 실시예는 제1 컴퓨터 장치가 제2 컴퓨터 장치와 동기하기 위 해 제2 컴퓨터 장치로부터 데이터를 요청하여 수신(또는 "풀(pull)")할 제1 컴퓨터 장치에 상주하는(즉, 설치되어 실행되는) 동기 마법사(이후, "풀싱크(PullSync)"라고 함)의 이용을 포함하는 동기화 시스템에 관한 것이다. 동기화하기 위해, 제1 컴퓨터 장치("동기화기(syncer"))는 동기화의 유효범위 및 한도(후술됨)를 정의하는 동기화기 상에 설정된 특정 풀싱크 룰(PullSync rules:PSR)에 따라 제2 컴퓨터 장치("피동기화기(syncee)") 상의 공유 폴더로부터 파일을 복사한다. 상술된 복사는 하나의 컴퓨터 시스템이 제2 컴퓨터 시스템의 이용가능 공유 폴더로부터 파일을 뷰잉하여 복사할 수 있는 현존하는 잘 정의된 프로토콜을 사용하여 네트워크 접속을 통해 발생한다. 본 발명의 소정의 실시예의 경우, 풀싱크 마법사 소프트웨어는 제1 컴퓨터 시스템(동기화기) 상에만 존재하고, 상기 제1 컴퓨터 시스템 상의 풀싱크 마법사의 PSR에 기초하여 제2 컴퓨터 시스템으로부터 파일을 선택적으로 복사하기 위해 이들 현존하는 네트워킹 프로토콜(무선 통신 프로토콜을 포함하는데 이것에 제한되지는 않음)을 이용한다. 게다가, 풀싱크는 또한 (무선 통신 프로토콜을 포함하지만 이것에 제한되지는 않는) 표준 네트워크 통신용의 이들 컴퓨터 시스템을 위해 이미 적절하게 존재할 수 있는 현존하는 보안 프로토콜 및 기술을 이용할 수 있다.
양호한 실시예에 관한 다음의 상세한 설명뿐만 아니라 상기 요약은 첨부된 도면, 표, 및/또는 이것을 포함하는 그밖의 시각적 표현(만일 있다면)을 참조하면 더욱 잘 이해된다. 본 발명을 예시적으로 설명하기 위해, 발명의 예시적인 구성 또는 기능 및 방법의 예시를 도면에 도시하였지만, 본 발명은 개시된 특정 방법 및 구성에 제한되지 않는다.
본 발명의 주제는 법정 요구사항에 부합하도록 특수성이 설명된다. 그러나, 설명 자체는 이 특허의 범위를 제한하고자 하는 것이 아니다. 오히려, 발명가는 청구된 주제가 그밖의 현재 또는 장래의 기술과 결합하여 본 명세서에 설명된 것과 유사한 다른 단계 또는 단계들의 조합을 포함하도록 다른 방식으로 실시될 수 있다는 것을 고려했다. 게다가, "단계"라는 용어는 이용된 방법의 상이한 요소들을 내포하기 위해 여기에서 사용될 수 있지만, 그 용어는 개별 단계들의 순서가 명확하게 설명되지 않으면, 그리고 개별 단계들의 순서가 명확하게 설명되는 경우를 제외하고는, 여기에 설명된 다양한 단계들 사이의 임의의 특정 순서를 암시하는 것으로 해석되어서는 안된다.
컴퓨터 환경
본 발명의 여러 실시예는 컴퓨터 상에서 실행될 수 있다. 도 1 및 다음 설명은 본 발명이 구현될 수 있는 적절한 컴퓨팅 환경에 대한 간략한 일반적인 설명을 제공하고자 하는 것이다. 요구되지는 않았지만, 본 발명은 클라이언트 워크스테이션 또는 서버와 같은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 일반적으로 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 실행하거나 특정 추상 데이터형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 게다가, 본 분야에 숙련된 기술자들은 본 발명이 핸드 헬드 장치, 멀티 프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능 소비자 전자제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터 등을 포함하는 기타 컴퓨터 시스템 구성들로 실시될 수 있다는 것을 이해할 수 있을 것이다. 본 발명은 또한 통신 네트워크를 통해 링크되는 원격 프로세싱 장치에 의해 태스크가 실행되는 분산형 컴퓨팅 환경에서 실시될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및 원격 메모리 저장 장치에 위치할 수 있다.
도 1에 도시된 바와 같이, 예시적인 범용 컴퓨팅 시스템은 프로세싱 유닛(21), 시스템 메모리(22), 및 시스템 메모리를 포함하는 다양한 시스템 컴포넌트를 프로세싱 유닛(21)에 연결시키는 시스템 버스(23)를 포함하는 종래의 퍼스널 컴퓨터(20) 등을 포함한다. 시스템 버스(23)는 다양한 버스 아키텍처 중의 임의의 것을 사용하는 로컬 버스, 주변 버스, 및 메모리 버스 또는 메모리 제어기를 포함하는 몇가지 유형의 버스 구조 중의 임의의 것일 수 있다. 시스템 메모리는 판독 전용 메모리(ROM)(24) 및 랜덤 액세스 메모리(RAM)(25)를 포함한다. 시동중과 같은 때에 퍼스널 컴퓨터(20) 내의 구성요소들간에 정보를 전송하는 것을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(26; BIOS)은 ROM(24)에 저장된다. 퍼스널 컴퓨터(20)는 도시되지 않은 하드 디스크로부터 판독하고 그 하드 디스크에 기록하는 하드 디스크 드라이브(27), 분리형 자기 디스크(29)로부터 판독하거나 그 자기 디스크에 기록하는 자기 디스크 드라이브(28), 및 CD-ROM 또는 기타 광학 매체와 같은 분리형 비휘발성 광학 디스크(31)로부터 판독하거나 그 광학 디스크에 기록하는 광학 디스크 드라이브(30)를 더 포함할 수 있다. 하드 디스크 드라이브(27), 자기 디스크 드라이브(28) 및 광학 디스크 드라이브(30)는 각각 하드 디스크 드라이브 인터페이스(32), 자기 디스크 드라이브 인터페이스(33) 및 광학 드라이브 인터페이 스(34)에 의해 시스템 버스(23)에 접속된다. 드라이브 및 그 관련 컴퓨터 판독가능 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 및 퍼스널 컴퓨터(20)용의 기타 데이터의 비휘발성 저장을 제공한다. 여기에 설명된 예시적인 환경은 하드 디스크, 분리형 자기 디스크(29) 및 분리형 광학 디스크(31)를 이용하지만, 본 분야에 숙련된 기술자들은 자기 카세트, 플래쉬 메모리 카드, 디지털 비디오 디스크, 베르누이 카트리지, RAM, ROM 등과 같이 컴퓨터에 의해 액세스가능한 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체가 또한 예시적인 동작 환경에서 사용될 수 있다는 것을 알 수 있을 것이다.
다수의 프로그램 모듈은 운영 체제(35), 하나 이상의 응용 프로그램(36), 기타 프로그램 모듈(37) 및 프로그램 데이터(38)를 포함하는, 하드 디스크, 자기 디스크(29), 광학 디스크(31), ROM(24) 또는 RAM(25) 상에 저장될 수 있다. 사용자는 키보드(40) 및 포인팅 장치(42)와 같은 입력 장치를 통해 퍼스널 컴퓨터(20) 내로 커맨드 및 정보를 입력할 수 있다. (도시되지 않은) 기타 입력 장치는 마이크로폰, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 입력 장치 및 그외의 입력 장치는 시스템 버스에 연결된 직렬 포트 인터페이스(46)를 통해 종종 프로세싱 유닛(21)에 접속되지만, 병렬 포트, 게임 포트 또는 유니버설 시리얼 포트(USB)와 같은 기타 인터페이스에 의해 접속될 수 있다. 모니터(47) 또는 다른 유형의 디스플레이 장치는 또한 비디오 어댑터(48)와 같은 인터페이스를 통해 시스템 버스(23)에 접속된다. 모니터(47) 외에도, 퍼스널 컴퓨터는 전형적으로 스피커 및 프린터와 같은 기타 주변 출력 장치(도시되지 않음)를 포함한다. 도 1의 예시적인 시스템은 또한 호스트 어댑터(55), 소형 컴퓨터 시스템 인터페이스(SCSI) 버스(56), 및 SCSI 버스(56)에 접속된 외부 저장 장치(62)를 포함한다.
퍼스널 컴퓨터(20)는 원격 컴퓨터(49)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 이용한 네트워크 환경에서 동작할 수 있다. 원격 컴퓨터(49)는 다른 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치, 또는 기타 공통 네트워크 노드일 수 있으며, 비록 도 1 에는 메모리 저장 장치(50)만이 도시되어 있지만, 퍼스널 컴퓨터(20)에 관하여 상술한 구성요소 중 다수 또는 모든 구성요소를 일반적으로 포함할 수 있다. 도 1에 도시된 논리적 접속은 근거리 통신망(LAN; 51) 및 원거리 통신망(WAN; 52)을 포함한다. 이러한 네트워크 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷 및 인터넷에서 일반적인 것이다.
LAN 네트워크 환경에서 사용되는 경우, 퍼스널 컴퓨터(20)는 네트워크 인터페이스 또는 어댑터(53)를 통해 LAN(51)에 접속된다. WAN 네트워크 환경에서 사용되는 경우, 퍼스널 컴퓨터(20)는 일반적으로 인터넷과 같은 WAN(52)을 통해 통신을 구축하기 위한 모뎀(54) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(54)은 직렬 포트 인터페이스(46)를 통해 시스템 버스(23)에 접속된다. 네트워크 환경에서, 퍼스널 컴퓨터(20)에 관하여 도시된 프로그램 모듈 또는 그 일부분은 원격 메모리 저장 장치에 저장될 수 있다. 도시된 네트워크 접속은 예시적인 것이며, 컴퓨터들간의 통신 링크를 구축하는 그 밖의 수단이 사용될 수 있다는 것을 알 수 있을 것이다.
본 발명의 여러 실시예는 특히 전산화된 시스템에 매우 적합한 것으로 생각되지만, 본 명세서에서 본 발명을 그러한 실시예에 제한하고자 하는 것은 결코 아니다. 도리어, 여기에서 사용되는 바와 같이, "컴퓨터 시스템"이라는 용어는 장치의 특성이 전자적이든지, 기계적이든지, 논리적이든지, 가상적이든지 상관없이, 정보를 저장하고 처리할 수 있고 및/또는 장치 자체의 동작 또는 실행을 제어하기 위해 저장된 정보를 사용할 수 있는 임의의 장치 및 모든 장치를 포함하고자 하는 것이다.
네트워크 환경
도 2는 본 발명의 실시양상이 이용될 수 있는 예시적인 네트워크 환경을 도시한 것이다. 물론, 실제 네트워크 및 데이터 구조 환경은 다양한 구성으로 배열될 수 있지만; 여기에 도시된 예시적인 환경은 본 발명이 동작하는 환경의 유형을 이해하기 위한 틀을 제공한다.
네트워크는 클라이언트 컴퓨터(20a), 서버 컴퓨터(20b), 데이터 소스 컴퓨터(20c), 및 데이터 구조부(70, 72a 및 72b)를 포함할 수 있다. 클라이언트 컴퓨터(20a) 및 데이터 소스 컴퓨터(20c)는 통신 네트워크(80), 예를 들어 인트라넷을 통해 서버 컴퓨터(20b)와 전자 통신을 한다. 클라이언트 컴퓨터(20a) 및 데이터 소스 컴퓨터(20c)는 통신 인터페이스(82)를 통해 통신 네트워크에 접속된다. 통신 인터페이스(82)는 이더넷 접속, 모뎀 접속 등과 같은 잘 알려진 통신 인터페이스 중의 어느 하나일 수 있다.
서버 컴퓨터(20b)는 더욱 자세하게 후술되는 데이터 구조 서버 시스템 소프 트웨어를 통해 데이터 구조부(70)의 관리를 제공한다. 그 자체로, 서버(20b)는 다양한 데이터 소스로부터의 데이터의 저장고로서 작용하고, 그 데이터를 다양한 데이터 소비자에게 제공한다.
도 2의 예에서, 데이터 소스는 데이터 소스 컴퓨터(20c)에 의해 제공된다. 데이터 소스 컴퓨터(20c)는 LAN, WAN, 인트라넷, 인터넷 등일 수 있는 통신 네트워크(80)를 통해 데이터를 서버 컴퓨터(20b)에 통신한다. 데이터 소스 컴퓨터(20c)는 관계형 데이터 구조 서버, 엑셀 스프레드시트, 파일 등일 수 있는 데이터 구조부(72a, 72b) 내에 데이터를 국부적으로 저장한다. 예를 들어, 데이터 구조부(72a)는 테이블(150, 152 및 154) 내에 저장된 데이터를 나타내준다. 데이터 소스(20c)에 의해 제공된 데이터는 서버(20b)에 의해 유지된 데이터 웨어하우스(warehouse)와 같은 대형 데이터 구조부 내에 결합되고 저장된다. 서버 컴퓨터(20b)에 의해 저장된 데이터를 사용하고자 하는 클라이언트 컴퓨터(20a)는 통신 네트워크(80)를 통해 데이터 구조부(70)를 액세스할 수 있다. 클라이언트 컴퓨터(20a)는 데이터 구조부(70) 내에 저장된 데이터에 관해 SQL 조회(예를 들어, 갱신, 삽입 및 삭제)를 하기 위해 데이터를 요청한다.
풀싱크(PullSync)
본 발명의 여러 실시예는 컴퓨터 장치들 간에 데이터를 동기화시키는 시스템 및 방법에 관한 것이다. 몇몇 실시예에서, 동기화 시스템은 제1 컴퓨터 장치가 제2 컴퓨터 장치와 동기하기 위해 제2 컴퓨터 장치로부터 데이터를 요청하여 수신(또는 "풀(pull)")할 제1 컴퓨터 장치에 상주하는(즉, 설치되어 실행되는) 동기 마법 사(이후, "풀싱크"라고 함)의 이용을 포함한다.
동기화하기 위해, 제1 컴퓨터 장치("동기화기"))는 동기화의 유효범위 및 한도(후술됨)를 정의하는 동기화기 상에 설정된 특정 풀싱크 룰(PSR)에 따라 제2 컴퓨터 장치("피동기화기") 상의 공유 폴더로부터 파일을 복사한다. 상술된 복사는 하나의 컴퓨터 시스템이 제2 컴퓨터 시스템의 이용가능 공유 폴더로부터 파일을 뷰잉하여 복사할 수 있는 현존하는 잘 정의된 프로토콜을 사용하여 네트워크 접속을 통해 발생한다. 본 분야에 공지된 기술자들에게 잘 알려져 있고 쉽게 이해될 수 있는 바와 같이, 컴퓨터 시스템(이 경우에, 제2 컴퓨터 장치 피동기화기)의 공유 폴더 내의 파일은 설정된 네트워크 프로토콜의 동작에 의해, 소정 종류의 네트워크 접속을 통해 제2 컴퓨터 시스템(피동기화기)을 액세스할 수 있는 있는 표준 네트워킹 통신 능력을 갖는 그외의 컴퓨터 시스템(이 경우에, 제1 컴퓨터 장치 동기화기)에게 완전히 보일 수 있다. 실제로, 하나의 컴퓨터 시스템이 다른 컴퓨터 시스템의 공유 폴더로부터 파일을 복사(또는 "풀")할 때, (제2 컴퓨터 시스템이 제1 컴퓨터 시스템으로의 복사 파일의 지원시에 특정 시스템 레벨 커맨드를 실제로 실행할지라도, 예를 들어 제2 컴퓨터 시스템의 지속 데이터 저장부로부터 판독을 실행하는데 필요한 커맨드를 실행할지라도), 제2 컴퓨터 시스템은 제1 컴퓨터 시스템으로의 자신의 공유 폴더 내의 파일의 복사를 전혀 알아차리지 못한다고 할 수 있다. 그러므로, 본 발명의 몇몇 실시예에서, 제1 컴퓨터 시스템(동기화기) 상에만 존재하는 풀싱크 마법사 소프트웨어는 상기 제1 컴퓨터 시스템 상의 풀싱크 마법사의 PSR에 기초하여 제2 컴퓨터 시스템으로부터 파일을 선택적으로 복사하기 위해 이들 현존하는 네트워킹 프로토콜(무선 통신 프로토콜을 포함하지만 이것에 제한되지는 않음)을 이용한다. 게다가, 풀싱크는 또한 (무선 통신 프로토콜을 포함하지만 이것에 제한되지는 않는) 표준 네트워크 통신용의 이들 컴퓨터 시스템을 위해 이미 적절하게 존재할 수 있는 현존하는 보안 프로토콜 및 기술을 이용할 수 있다.
그러므로, 현존하는 네트워크 프로토콜을 이용함으로써, 풀싱크는 동기화 컴퓨터 시스템이 네트워크(유선 또는 무선)를 통해 액세스할 수 있는 그외의(제2/피동기화) 컴퓨터 시스템과 동기하기 위해 단지 동기화 컴퓨터 시스템 - 즉, 제2 컴퓨터 시스템으로부터 파일을 "풀링(pulling)"하는 제1 컴퓨터 시스템 - 상에만 상주할 필요가 있는 반면, 피동기화기는 네트워크화 컴퓨터 시스템 상에 이미 존재할 수 있고 이러한 끊어짐없는 뷰잉 및 복사를 할 수 있게 하는 잘 설정된 네트워크 프로토콜을 제외하고는 특정 프로그래밍을 필요로 하지 않는다. 따라서, 공유 폴더 내에 파일을 갖고있는 네트워크에 상주하는 임의의 컴퓨터 시스템은 자신의 공유 폴더 내용이 네트워크를 통해 다른 컴퓨터 시스템으로 뷰잉되고 복사될 수 있다는 점만으로 잠재적인 동기화기이다.
이와 마찬가지로, 요구되지는 않았지만, 특정 컴퓨터 시스템은 동기화기 - 로컬 PSR에 따라 네트워크 상의 다른 컴퓨터 시스템의 공유 폴더로부터 파일을 풀하기 위한 풀싱크 마법사의 설치 및 실행에 의해 - 뿐만 아니라, 피동기화기 - 네트워크 상에 있는 컴퓨터 시스템이고 공유 폴더 내에 파일을 가짐에 의해 - 일 수 있다. 그러므로, 공유 폴더 내에 파일을 각각 갖고 있고 풀싱크를 각각 실행하는 2개의 컴퓨터 시스템은 각기 각자의 컴퓨터 상에 설정된 PSR에 의해 정의된 한도까 지 서로 완전히 동기할 수 있다.
도 3은 동시에 또는 다른 때에 공용 이동 컴퓨팅 장치와 및/또는 서로 접촉하고 있는 유선 및 무선 장치를 포함하는 동적 구성을 갖는 최신의 특별 네트워크 상에서의 본 발명의 몇몇 실시예를 위한 동기 스키마를 나타낸 블록도이다. 도면에서, 공용 이동 컴퓨팅 장치(300)는 워크(work) 데스크탑(310) 및 대응하는 워크 태블릿(tablet) PC(320), 각각의 워크 칼리그(work colleagues) 데스크탑(330 및 340), 랩탑(350), 스파우스(spouse) 포켓 PC(360) 및 홈 데스크탑(370)을 포함하는(이것에 제한되지는 않음) 다른 컴퓨터 시스템과 표준 무선 네트워킹 프로토콜을 사용하여 통신하는 울트라(ultra)-이동 컴퓨터 장치(예를 들어, Microsoft GoPC)이다. (도시된 바와 같이) 풀싱크 소프트웨어 컴포넌트를 포함하는 GoPC(300)는 다양한 시간에(즉, GoPC(300)가 그러한 각각의 다른 컴퓨터 시스템과 활발한 네트워크 접속을 할 때에), 표준 네트워킹 프로토콜을 사용하여 풀 데이터 흐름(312, 322, 332, 342, 352, 362 및 372)으로 도시된 바와 같이 그러한 각각의 장치와의 무선 접속을 통해 이들 시스템의 각각으로부터 파일을 뷰잉하고 복사할 수 있다.
풀싱크 소프트웨어 컴포넌트가 없는 시스템, 즉 컴퓨터 시스템(320, 330, 340 및 370)의 경우에, 이러한 동기화는 임의의 동기화 동작이 발생하고 있다는 것을 상기 시스템이 알아차리지도 못하고, 이러한 동기는 풀싱크 동작이 GoPC(300) 상에서 발생하기 위해 상기 시스템 상에서 (상기 표준 네트워크 프로토콜 이외에) 어떤 특정 소프트웨어도 필요로 하지 않는다. 이와 마찬가지로, 풀싱크 소프트웨어 컴포넌트를 갖는 그외 다른 컴퓨터 시스템, 즉 컴퓨터 시스템(310, 350 및 360) 은 또한 (GoPC를 포함하는 그러한 시스템이 몇몇 방법들 중의 임의의 방법을 통해 그러한 동기화를 식별하기 위해 풀싱크 소프트웨어 컴포넌트의 일부로서 로직을 포함할 수 있지만) GoPC에 의해 실행되는 풀-동기화를 반드시 알아차리는 것은 아니다. 그러나, 이들 시스템은 그들이 네트워크 접속을 통해 통신할 수 있는 임의의 다른 컴퓨터 시스템 및 GoPC와의 그들 자신의 동기 동작을 실행할 수 있다. 예를 들어, 워크 칼리그 컴퓨터 시스템(330 및 340)은 단지 GoPC에 대해 피동기화기만 될 수 있지만, 스파우스 포켓(spouse's Pocket) PC(360)는 GoPC(300) 자체(데이터 흐름(364))뿐만 아니라 랩탑(350)(데이터 흐름(356)) 및 홈 데스크탑(데이터 흐름(376))과 동기할 수 있다.
예를 들어, GoPC(300), 랩탑(350) 및 스파우스 포켓 PC(360)는 각 컴퓨터 시스템 PSR에 의해 허용된 한도까지 서로 완전히 동기할 수 있다는 것을 알기 바란다. 더욱이, 랩탑(350)은 3개 모두의 풀싱크 시스템 상의 PSR에 기초하여 동기 제한의 합성된 결합범위까지 스파우스 포켓 PC(360) 또는 GoPC(300) 또는 둘다를 통해 홈 데스크탑(370)과 간접적으로 동기할 수 있다. 물론, 랩탑(350)은, 임의의 다른 컴퓨터 시스템과 네트워크 접속을 설정할 수 있는 임의의 풀싱크 컴퓨터 시스템을 갖는 경우일 수 있으므로, (도시되지 않은) 설정된 직접 네트워크 접속을 통해 홈 데스크 탑(370)과 직접 동기할 수도 있다.
PSR과 관련하여, 그리고 여기에 설명된 본 발명의 여러 실시예에 대해, PSR은 PSR이 존재하는 컴퓨터 시스템에 대해, 그외의 컴퓨터 시스템으로부터 자신의 시스템으로 복사될/풀될 특정 파일만을 정의하고 - 즉, PSR은 PSR이 존재하는 컴퓨 터 시스템의 "동기화기"(또는 파일 풀링) 특성을 정의한다. 이와 반대로, (다른 컴퓨터 시스템은 그들이 또한 파일을 복사하기 위해 풀싱크를 사용하는 경우에 그들 자신의 별개의 구별된 PSR을 가질 수 있긴 하지만), PSR은 그 특정 PSR이 존재하는 컴퓨터 시스템으로부터 다른 컴퓨터 시스템이 풀하거나 하지 않을 수 있는 파일에 관해서 다른 컴퓨터 시스템의 동작을 전혀 지시하지 않으며; 그 대신에, 하나의 컴퓨터 시스템으로부터 다른 컴퓨터 시스템(풀싱크를 사용하는 후자)으로 어떤 파일이 복사될 수 있고 복사될 수 없는 지를 피동기화기가 지정하기 위한 유일한 방법은 그에 따라 공유 또는 개인 폴더(공유 폴더 내용은 복사될 수 있지만 개인 폴더 내용은 복사될 수 없음) 내에 이들 파일을 배치하는 것이고, 이것은 사실상 그 컴퓨터 시스템의 피동기화기(또는 "파일 공유") 특성을 정의한다.
본 발명의 몇몇 실시예에서, 풀싱크 PSR은 특정 컴퓨터 시스템, 특정 폴더, 및 각각의 다른 컴퓨터 시스템으로부터 복사/풀링하기 위한 특성 파일을 풀싱크 최종-사용자에 의해 지정된 그외 다른 파라미터와 함께 명확하게 정의한다. 예를 들어, 4개의 컴퓨터 시스템 A, B, C, D 및 E를 고려해보자. 여기에서, A는 (풀싱크를 갖는) 동기화기이고, B, C, D 및 E는 잠재적인 피동기화이며 - 즉, B, C, D 및 E가 그들 자신 사이에 임의의 네트워크를 공유하지 않을 지라도, A는 B, C, D 및 E의 각각과 최소한 하나의 공용 네트워크를 공유한다. 이 예에서, A는 다음과 같은 PSR을 가질 수 있다:
A의 동기 피어 동기하기 위한 폴더: 룰:
B MyPictures
MyHomeDocs
MyMusic
→ *.jpg(JPEG 파일 전용)
→ *.*(모든 파일)
→ *.*<28 일(최근 28일 내에 변경되
거나 작성된 모든 파일)
C MyWorkDocs → status*.*(파일명의 제1 부분 내의 파일
w/"ststus" 전용)
E MyVideo
MyPictures
MyMusic
→ *.mpg, *.wmv, *.mov(이들 파일 유형
전용)
→ *.*<90 일(최근 90일 내에 변경되
거나 작성된 모든 파일)
→ *.WMA<2MB 각각(2MB 미만의 모든 WMA
파일)
이 예에서, A는 B와 동기할 때, B의 MyHomeDocs 공유 폴더 내의 모든 파일 및 B의 MtMusic 공유 폴더로부터의 28일 미만의 모든 파일뿐만 아니라, B에 상주하는 MyPictures 공유 폴더로부터의 모든 *.jpg 파일을 풀할 것이다. C와 동기할 때, A는 "status"로 시작하는 파일명을 갖는 C의 MyWorkDocs 공유 폴더 내의 파일들만을 풀하고, 그 밖의 것은 전혀 풀하지 않을 것이다(예를 들어, "statuslog.doc" 및 "status-040428-update.xls"는 포함할 수 있지만, 예를 들어 "backorderstatus.txt"는 포함하지 않을 것이다). E와 동기할 때, A는 E의 MyVideo 공유 폴더로부터의 *.mpg, *.wmv, *.mov 파일, E의 MyPictures 공유 폴더로부터의 90일 미만의 모든 파일, 및 E의 MyMusic 공유 폴더로부터의 2 메가바이트 미만의 모든 WMA 파일만을 풀할 것이다. 게다가, A는 D( 및 그것의 공유 폴더 및 파일)이 A의 PSR에 나열되지 않기 때문에 D로부터 어떤 파일도 풀할 수 없다.
본 발명의 소정의 실시예에서, 그외의 컴퓨터 시스템(B, C 및 E)으로부터 풀된 파일에 대한 동기화기(이 예에서 A) 상의 목적지는 디폴트에 의해, 동일한 이름을 갖는 A 상의 대응하는 공유 폴더일 수 있다. 그러나, 다른 실시예에서는 그 대신에 각각의 룰에 따라 또는 추가 조건 룰에 의해 PSR 내에 그러한 파일의 위치를 지정할 수 있다. 게다가, PSR은 컴퓨터 시스템(A)가, PSR에 의해 포함되었지만 이전에 복사되었거나 그 컴퓨터 시스템(A) 상에 현재의 형태로 이미 존재하는 파일을 그외의 컴퓨터 시스템(B, C 및 E)으로부터 복사하지 못하게 할 수 있는 로직을 포함할 수 있다. 이것은 파일명, 파일 날짜 및 시간, 또는 소정의 다른 논리적 메카니즘에 의해 결정될 수 있다. 그외 다른 컴퓨터 시스템의 파일이 더욱 최근의 날짜/시간 스탬프를 갖지 않는 한, 대응하는 폴더 내에 이미 존재하는 파일과 동일한 이름을 갖는 다른 컴퓨터 시스템으로부터의 파일을 풀링하기 위해, 소정의 실시예는 단순히 기존의 파일을 새로운 파일로 겹쳐쓰거나, 대안적으로 기존의 파일을 다시 명명하고 및/또는 기존-파일 아카이브(archive)로 이동시키거나, 대안적으로, 일괄적으로 다른 기술을 이용할 수 있다.
본 발명의 몇몇 실시예에서, PSR은 또한 상술된 룰("제1 룰 세트" 또는 "1SR") 이외에 추가적인 제2 룰 세트("2SR")를 포함할 수 있다. 제1 룰 세트(1SR)가 풀싱크의 "풀" 요소(즉, 상술된 바와 같이, 어떤 곳으로부터 언제 풀하기 위한 어떤 파일)에만 관련될 수 있는 반면에, 제2 룰 세트(2SR)는 그 자신의 시스템 상에 존재하는 파일 - 즉, 본래의 파일 유지 및 관리 룰 세트에 적용할 수 있다. 이 제2 룰 세트(2SR)는 소정의 실시예에서, 자신의 컴퓨터 시스템 상의 공유 폴더의 내용에만 적용할 수 있고, 예를 들어 소정의 파일(즉, 60일 이내의 MyPictures 공유 폴더 내의 *.jpg 파일, 및 3일 이내의 MyVideo 공유 폴더 내의 *.mpg 파일)을 꼭 유지하기 위한 방법을 정의한다. 어떤 경우든, 2SR은 1SR처럼, 그들이 적용되는 컴퓨터 시스템 상에 다양한 선택사양을 제공하기 위해 기능, 능력 및 구현이 상 당히 변경될 수 있다. 본 발명의 몇몇 실시예에서, PSR 내의 룰 자체들이 변경가능할 뿐만 아니라, 룰 구문, 응용성, 기능 및 내용이 또한, 그 중에서도 특히, 예를 들어 추가(add-on) 모듈 및 동적 라이브러리로 확장가능하다.
본 발명의 몇몇 실시예에서, PSR은 또한 이동 컴퓨팅 장치에 특별히 유용한 특징인 동기화의 빈도수 및/또는 방식에 관한 제3 룰 세트(3SR)를 더 포함할 수 있다. 3SR에서, 동기화의 빈도수와 관련하여, (예를 들어 무선 통신 장치를 통해) 네트워크의 내외로 이동하는- 랩탑 컴퓨터, 소형 컴퓨터 시스템(예를 들어, 울트라-이동 PC), 또는 유사-컴퓨팅 장치(예를 들어, PDA)와 같은- 이동 컴퓨팅 장치는 네트워크 내에 없을 때를 체크하는 감소하는 네트워크/동기화 속도로부터 이익을 얻을 수 있다. 예를 들어, 여기저기 이동하는 GoPC(Microsoft로부터의 울트라-이동 컴퓨터 장치)는 평소에 어떤 네트워크에도 액세스하지 않을 뿐만 아니라, 하나 이상의 상이한 네트워크로 상이한 시간에 액세스할 수 있다. 네트워크에 접속할 수 없지만, 3SR이 있으면, GoPC는 처음에 5분동안 1분 간격으로 (네트워크가 GoPC에 나왔는지 보고) 네트워크와의 접속을 재시도할 수 있고, 발견된 네트워크가 없으면, 15분동안 5분 간격으로 확인하고, 다시 발견된 네트워크가 없으면, 네트워크가 발견될 때까지 15분 간격으로 네트워크에 대해 확인한다(그 다음, 다음에 다시 새로운 네트워크를 찾기 시작할 때 1분 간격으로 되돌아간다). 동기화의 빈도수 및 지속시간은 또한 장치의 배터리 수명, 프로세서 부하 및 다양한 기타 파라미터에 관련된 기타 룰을 따르게 될 수 있다. 또한, 소정의 실시예에서, PSR의 제3 룰 세트(3SR)는 또한 동기하기 위해 이용가능한 단일 네트워크 내의 복수의 컴퓨터 중 에서 동기하기 위한 하나의 컴퓨터를 선택하기 위한 소정의 룰("접속 우선순위"), 또는 다른 상황에서, 주어진 시간에 동기하기 위해 이용가능한 2개 이상의 네트워크 중에서 동기하기 위한 하나의 네트워크를 선택하기 위한 소정의 룰("네트워크 우선순위")을 포함할 수 있고, 그러한 룰은 속도, 자원 비용, 통화 비용(요금 기반의 네트워크의 경우), 네트워크 부하, 및/또는 제한이 없는 과다한 그 밖의 기준에 기초를 둘 수 있다.
물론, 여기에서 사용된 바와 같이, 3개의 룰 세트로의 PSR의 분할은 단지 본 발명의 몇몇 실시양상 및 실시예의 기능에 관한 설명을 돕기 위해 이루어진 것으로, PSR을 특정 룰 그루핑, 그것의 수, 또는 그것의 특성으로 제한하는 것으로 해석되어서는 안된다.
또한, 본 발명의 소정의 실시예는 각각이 최소한 하나의 다른 컴퓨터 시스템으로의 네트워크 접속을 하는 다수의 컴퓨터 시스템이 (각 기계 상의 개별 PSR의 작용에 대한 소정 레벨로 제한되긴 하지만) 동기 웹 전반을 통해 한 기계에서 다른 기계로의 공유 폴더 파일의 자연스러운 전달을 통해 서로 동기하도록 풀싱크를 사용하는 동기 웹에 관한 것이다. 그러므로, 본 발명의 소정의 실시예는 2개의 컴퓨터 시스템 상의 1방향 동기 풀싱크 장치의 설치를 통한 양방향 동기에 관한 것이므로, 그들은 서로 효과적으로 동기할 수 있고(따라서, 자연스러운 양방향 동기 관계를 형성하고), 그외의 실시예는 일부 컴퓨터 시스템만이 풀싱크를 실행하고 있는 복수의 컴퓨터 시스템이 서로, 몇몇 경우에 유사한 자연스러운 전달을 통한 서로를 통해, 제한된 동기를 실행하는 다수 방향 동기에 관한 것이다.
요약 및 추가 특징
상술한 것을 다시 설명하거나, 더 자세히 말하거나, 또는 부언하기 위해, 다음은 (1) 본 발명의 다양한 대안적인 실시예에 대한 특정의 신규한 요소에 관한 간략하지만 비제한적인 요약, 및/또는 (2) 본 발명의 다양한 대안적인 실시예에 대한 추가적인 신규한 특징이다:
1. 풀싱크 컴퓨터 시스템 또는 장치 - 및 특히, (a) GoPC와 같은 소형 컴퓨터 장치 및 랩탑 컴퓨터와 같은 이동 컴퓨팅 장치, 및/또는 (b) 이동 컴퓨팅 장치와 상호작용하는 그외의 컴퓨터 장치를 포함하는 동적으로 변하는 네트워크를 갖는 장치- 는 접촉하게 되는 네트워크 및 장치에 대해 정기적으로 폴링(polling)하고, 상기 네트워크 내의 피동기 컴퓨터 시스템 상의 공유 폴더로부터 새로운 및/또는 갱신된 파일을 정기적으로 "풀링(pulling)"한다.
2. 풀싱크 마법사를 갖는 컴퓨터 시스템에 대한 동기는 풀싱크 시스템이 네트워크를 검출하고, 동기하기 위한 자신의 PSR과 일치하는 그 네트워크 상의 컴퓨터를 찾을 때 완전히 자동화될 수 있다(즉, 임의의 최종-사용자 조정없이 자동으로 발생할 수 있다).
3. PSR은 최종-사용자, 기타 애플리케이션에 의해 직접 개정/변경/확장/제한되고/되거나, 몇몇 실시예에서 자동으로 생성될 수 있다.
4. 몇몇 그외의 실시예에서, "공유 폴더"의 개념은 또한 2개의 장치 사이에서 처럼, 달리 공유 폴더가 고려될 수 없지만 표준 네트워크 복사 프로토콜 또는 다른 방법을 통해 복사할 수 있는 최소한 하나의 "개인 폴더"를 포함할 수 있다.
5. 공유 폴더는 또한 소정의 실시예에서 현존하는 보안 및 인증 프로토콜 등을 이용하는 "신뢰된 폴더"를 포함할 수 있다.
6. 풀싱크 마법사는 어떤 파일도 한 시스템에 의해 다른 시스템으로 "푸시"되지 않는 순수한 "풀" 동기 구현을 형성하기 위해 사용될 수 있다.
7. 풀싱크는 집중된 동기화 서버를 필요로 하지 않는 전적으로 분산된 피어 투 피어 동기화 시스템이고, 몇몇 실시예에서, 무엇보다 중요한 동기화 네트워크의 유효범위 및 한도가 동기되는 상이한 컴퓨터 시스템들 상에서 작용하는 상이한 풀싱크 경우들 간에 조정이 없다(또는 인식조차 없다). 그럼에도 불구하고, 몇몇 실시예는 또한 풀싱크를 갖는 다른 컴퓨터 시스템과 동기할 때 동기 경험을 향상시키기 위한 인식 로직을 포함하거나, 또는 대안적으로 정의된 또는 동적인 네트워크 내에서 하나 이상의 풀싱크 마법사 시스템을 통해 발생하는 무엇보다 중요한 동기를 식별하고 추적하기 위한 소프트웨어를 포함할 수 있다.
8. 풀싱크는 임의의 현존하는 네트워크를 통해 그 네트워크의 잘 설정된 프로토콜을 사용하여 실행하도록 설계된 네트워크 독립형이다(네트워크-특정 소프트웨어를 필요로 하지 않는다).
9. 본 발명의 소정의 실시예는 구체적으로 피어 투 피어(중앙 동기 서버가 아님), 룰 기반(동기가 로컬 PSR에 기초하여 각각의 개별 컴퓨터 시스템 상에서 실행됨), 전체-풀(푸시되는 파일이 하나도 없음) 동기화 시스템에 관한 것이고; 대안적인 한 실시예는 "로밍(roaming)"(이동) 컴퓨터 장치에 대한 동기 시스템에 관한 것이며; 대안적인 추가 실시예는 네트워크-독립형(또는 다수 네트워크), 일정한 동 기, 자동 동작 및 동기, 및 현존하는 네트워킹, 보안 및/또는 인증 프로토콜의 이용에 대한 동기 시스템에 관한 것이다.
10. 풀싱크는 동작시에, 그것의 (아마 항상 변화하는) 네트워크(들)의 범위 및 한도, 및 동기하기 위한, 몇몇 실시예에서, 자동으로 검출하여 동기하기 위한 그외의 컴퓨터로의 네트워크 접속(들) 및 그외의 컴퓨터 내의 폴더 및 파일을 계속 검색하는 (웹 크롤러(crawler)와 같은) "트래버셜 엔진(traversal engine)"일 수 있다.
11. 다른 실시예에서, 풀싱크는 또한 특정 장치와 함께, 예를 들어, 풀싱크를 사용하여, 하나의 컴퓨터 시스템과 동기하고, 그 자신의 로컬 PSR에 따라 그 컴퓨터 시스템 공유 폴더의 내용을 백업하는 하드 디스크 드라이브 장치와 함께 사용될 수 있다. 대안적인 실시예에서, 그러한 백업 장치는 그것이 동기하는 전체 컴퓨터 시스템을 복사/백업하기 위한 추가적인 수단을 포함할 수 있다.
12. 다른 실시예에서, 풀싱크를 이용하는 동기 시스템은 또한, 동기 프로세스의 일부분으로서 푸시되는 데이터가 하나도 없는 대신에 동기가 (풀싱크 마법사를 통해) 데이터를 풀링함으로써 전적으로 달성되는 풀 전용이다.
결론
여기에 설명된 여러가지 시스템, 방법 및 기술은 하드웨어 또는 소프트웨어로, 또는 적절한 경우에 그 둘의 조합으로 구현될 수 있다. 그러므로, 본 발명의 방법 및 장치, 또는 소정의 실시양상 또는 그 일부는 플로피 디스켓, CD-ROM, 하드 드라이브, 또는 임의의 다른 기계 판독가능 저장 매체와 같은 유형의 매체에 구현 된 프로그램 코드(즉, 명령어)의 형태를 취할 수 있는데, 프로그램 코드가 컴퓨터와 같은 기계 내로 로드되어 그 기계에 의해 실행될 때, 그 기계는 본 발명을 실시하는 장치가 된다. 프로그램가능 컴퓨터 상에서의 프로그램 코드 실행의 경우에, 컴퓨터는 일반적으로 프로세서, 프로세서에 의해 판독가능한 저장 매체(휘발성 및 비휘발성 메모리 및/또는 저장 소자 포함), 최소한 하나의 입력 장치, 및 최소한 하나의 출력 장치를 포함할 수 있다. 하나 이상의 프로그램은 양호하게 컴퓨터 시스템과 통신하기 위해 고수준 절차 또는 객체 지향 프로그래밍 언어로 구현된다. 그러나, 프로그램(들)은 원한다면 어셈블리 또는 기계어로 구현될 수 있다. 어떤 경우든, 언어는 컴파일러형 또는 해석형 언어일 수 있고, 하드웨어 구현물과 결합될 수 있다.
본 발명의 방법 및 장치는 또한 전선 또는 케이블링, 광 섬유, 또는 임의의 그외의 전송 형태와 같은 소정의 전송 매체를 통해 전송되는 프로그램 코드의 형태로 구현될 수 있는데, 프로그램 코드가 EPROM, 게이트 어레이, 프로그램가능 로직 디바이스(PLD), 클라이언트 컴퓨터, 비디오 레코더 등과 같은 기계 내로 수신되어 로드되고 그 기계에 의해 실행될 때, 그 기계는 본 발명을 실시하는 장치가 된다. 범용 프로세서 상에서 구현될 때, 프로그램 코드는 본 발명의 인덱싱 기능을 실행하도록 동작하는 유일한 장치를 제공하기 위해 프로세서와 결합한다.
본 발명은 여러 도면의 양호한 실시예와 관련하여 설명되었지만, 그외 다른 유사한 실시예가 사용될 수 있거나, 본 발명의 범위를 벗어나지 않고 본 발명의 동일한 기능을 실행하는 설명된 실시예에 대해 변경 및 추가가 행해질 수 있다는 것 을 알 수 있을 것이다. 예를 들어, 본 발명의 예시적인 실시예는 퍼스널 컴퓨터의 기능을 에뮬레이션하는 디지털 장치와 관련하여 설명되지만, 본 분야에 숙련된 기술자는 본 발명이 그러한 디지털 장치에 제한되지 않고, 본 출원에 설명된 바와 같이, 유선 또는 무선의, 게임 콘솔, 핸드헬드 장치, 휴대용 컴퓨터 등과 같은 임의의 수의 기존의 또는 새로운 컴퓨팅 장치 또는 환경에 적용할 수 있으며, 통신 네트워크를 통해 접속되어 네트워크를 통해 상호작용하는 임의의 수의 그러한 컴퓨팅 장치에 적용될 수 있다는 것을 알 수 있을 것이다. 더욱이, 특히 무선 네트워크 장치의 수가 계속 증가함에 따라, 핸드헬드 장치 운영 체제 및 그외 다른 애플리케이션 특정 하드웨어/소프트웨어 인터페이스 시스템을 포함하는 여러가지 컴퓨터 플랫폼이 본 발명에서 고려된다는 것이 강조되어야 한다. 그러므로, 본 발명은 소정의 한 실시예에 제한되는 것이 아니라, 첨부된 청구범위에 따른 범위 내에서 해석되어야 한다.
본 발명의 다양한 실시예는 특히 이동 장치에 매우 적합하면서 또한 현존하는 동기 방식보다 상당한 동작적 이점을 갖는다.

Claims (30)

  1. 풀-동기화(pull-synchronization)를 위한 소프트웨어 컴포넌트를 포함하는 제1 컴퓨터 시스템을 제2 컴퓨터 시스템과 동기시키는 방법(이하, "동기화 동작")으로서,
    상기 제1 컴퓨터 시스템이 상기 제1 컴퓨터 시스템과 상기 제2 컴퓨터 시스템 사이에 네트워크 접속을 설정하거나 또는 상기 제1 컴퓨터 시스템과 상기 제2 컴퓨터 시스템 사이의 현존하는 네트워크 접속을 이용하는 단계(이하, "접속 요소");
    상기 제1 컴퓨터 시스템이 상기 제2 컴퓨터 시스템과 동기되게 하기 위해 상기 제2 컴퓨터 시스템 상의 최소한 하나의 파일 중 임의의 파일이 상기 제1 컴퓨터 시스템으로 복사될 필요가 있는지의 여부를 상기 제1 컴퓨터 시스템이 확인하는 단계(이하, "논리 요소") - 상기 제2 컴퓨터 시스템 상의 상기 최소한 하나의 파일은 상기 제1 컴퓨터 시스템에 보일 수 있음 -; 및
    상기 제1 컴퓨터 시스템이 표준 네트워킹 프로토콜을 사용하여 상기 네트워크 접속을 통해 상기 제2 컴퓨터 시스템으로부터 최소한 하나의 파일을 복사하는 단계(이하, "복사 요소")
    를 포함하고,
    상기 제2 컴퓨터 시스템은 상기 동기화 동작을 위해 표준 네트워킹 프로토콜을 이용하는 방법.
  2. 제1항에 있어서,
    상기 제2 컴퓨터 시스템은 동기화기(syncer)로서의 상기 제1 컴퓨터 시스템과 피동기화기(syncee)로서 동기되고 있다는 것을 알아차리지 못하는 방법.
  3. 제1항에 있어서,
    상기 네트워크 접속은 무선 접속인 방법.
  4. 제1항에 있어서,
    상기 제1 컴퓨터 시스템은, 상기 제1 컴퓨터 시스템이 어떤 시간에는 제1항의 방법의 단계들을 수행할 수 있고 어떤 다른 시간에는 제1항의 방법의 단계들을 수행할 수 없도록, 상기 제2 컴퓨터 시스템으로의 동적 네트워크 접속을 갖는 이동 컴퓨터 시스템인 방법.
  5. 제1항에 있어서,
    상기 동기화 동작은 상기 제1 컴퓨터 시스템과 상기 제2 컴퓨터 시스템 사이의 상기 네트워크 접속에 관한 현존하는 표준 네트워크 보안 프로토콜들의 이용을 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 논리 요소는 동기화 룰들(rules)의 세트에 따라 상기 제1 컴퓨터 시스템에 의해 실행되는 방법.
  7. 제6항에 있어서,
    상기 동기화 룰들의 세트는 복수의 동기 파라미터:즉, 동기하기 위한 컴퓨터 시스템들의 세트; 동기하기 위한 컴퓨터 시스템들 상의 폴더들의 세트; 동기하기 위한 컴퓨터 시스템들 상의 파일들의 세트; 및 동기하기 위한 컴퓨터 시스템들 상의 파일들에 대한 특성들의 세트 중에서 최소한 하나의 동기 파라미터를 정의하는 방법.
  8. 제6항에 있어서,
    상기 동기화 룰들의 세트는 상기 제1 컴퓨터 시스템 상의 상기 최소한 하나의 파일을 관리하고 유지하기 위한 룰들의 서브세트를 더 포함하는 방법.
  9. 제6항에 있어서,
    상기 제1 컴퓨터 시스템은 상기 동기화 동작을 이용하여 동기하기 위한 최소한 하나의 추가 컴퓨터 시스템을 능동적으로(actively) 찾아내고, 동기화 룰들의 세트는 상기 동기화 동작을 실행하려고 시도하는 빈도 수를 관리하기 위한 룰들의 서브세트를 더 포함하는 방법.
  10. 네트워크 내의 최소한 2개의 컴퓨터 시스템들에 대한 양방향 피어 투 피어(peer-to-peer) 동기화를 위한 방법 - 상기 최소한 2개의 컴퓨터 시스템들 각각은 풀 전용(pull-only) 동기화 소프트웨어 컴포넌트를 사용함 - 으로서,
    제1항에 따른 방법을 수행하는 단계;
    상기 제2 컴퓨터 시스템이 상기 제2 컴퓨터 시스템과 상기 제1 컴퓨터 시스템 사이에 네트워크 접속을 설정하거나 또는 상기 제2 컴퓨터 시스템과 상기 제1 컴퓨터 시스템 사이의 현존하는 네트워크 접속을 이용하는 단계;
    상기 제2 컴퓨터 시스템이 상기 제1 컴퓨터 시스템과 동기되게 하기 위해 상기 제1 컴퓨터 시스템 상의 최소한 하나의 파일 중 임의의 파일이 상기 제2 컴퓨터 시스템으로 복사될 필요가 있는지의 여부를 상기 제2 컴퓨터 시스템이 확인하는 단계 - 상기 제1 컴퓨터 시스템 상의 상기 최소한 하나의 파일은 상기 제2 컴퓨터 시스템에 보일 수 있음 -; 및
    상기 제2 컴퓨터 시스템이 표준 네트워킹 프로토콜을 사용하여 상기 네트워크 접속을 통해 상기 제1 컴퓨터 시스템으로부터 최소한 하나의 파일을 복사하는 단계
    를 포함하고,
    상기 제1 컴퓨터 시스템에 의해 실행되는 상기 단계들 각각은 상기 제2 컴퓨터 시스템에 의해 실행되는 상기 단계들 각각과 독립적으로 실행되고, 상기 제1 컴퓨터 시스템은 상기 제2 컴퓨터 시스템에 의해 실행되는 상기 단계들 각각을 포함하는 동기화 동작을 위해 표준 네트워킹 프로토콜을 이용하는 방법.
  11. 제1 컴퓨터 시스템과 제2 컴퓨터 시스템을 포함하고, 상기 제1 컴퓨터 시스템을 상기 제2 컴퓨터 시스템과 동기시키도록 구성되는 동기화 시스템으로서,
    상기 제1 컴퓨터 시스템은,
    상기 제1 컴퓨터 시스템과 상기 제2 컴퓨터 시스템 사이에 네트워크 접속을 설정하거나 또는 상기 제1 컴퓨터 시스템과 상기 제2 컴퓨터 시스템 사이의 현존하는 네트워크 접속을 이용하도록 구성되는 접속 서브시스템 컴포넌트;
    상기 제1 컴퓨터 시스템이 상기 제2 컴퓨터 시스템과 동기되게 하기 위해 상기 제2 컴퓨터 시스템 상의 최소한 하나의 파일 중 임의의 파일이 상기 제1 컴퓨터 시스템으로 복사될 필요가 있는지의 여부를 확인하도록 구성되는 논리 서브시스템 컴포넌트 - 상기 제2 컴퓨터 시스템 상의 상기 최소한 하나의 파일은 상기 제1 컴퓨터 시스템에 보일 수 있음 -; 및
    표준 네트워킹 프로토콜을 사용하여 상기 네트워크 접속을 통해 상기 제2 컴퓨터 시스템으로부터 최소한 하나의 파일을 복사하도록 구성되는 복사 서브시스템 컴포넌트
    를 포함하고,
    상기 제2 컴퓨터 시스템은 상기 동기화 시스템을 위해 표준 네트워킹 프로토콜을 이용하도록 구성되는 동기화 시스템.
  12. 제11항에 있어서,
    상기 제2 컴퓨터 시스템은 동기화기로서의 상기 제1 컴퓨터 시스템과 피동기화기로서 동기되고 있다는 것을 알아차리지 못하는 동기화 시스템.
  13. 제11항에 있어서,
    상기 접속 서브시스템 컴포넌트의 상기 네트워크 접속은 무선 접속인 동기화 시스템.
  14. 제11항에 있어서,
    상기 제1 컴퓨터 시스템이 어떤 시간에는 상기 네트워크 접속을 설정할 수 있고 어떤 다른 시간에는 상기 네트워크 접속을 설정할 수 없도록, 상기 제1 컴퓨터 시스템이 상기 제2 컴퓨터 시스템으로의 동적 네트워크 접속을 갖는 이동 컴퓨터 시스템인 동기화 시스템.
  15. 제11항에 있어서,
    상기 동기화 시스템은 상기 제1 컴퓨터 시스템과 상기 제2 컴퓨터 시스템 사이의 상기 네트워크 접속에 관한 현존하는 표준 네트워크 보안 프로토콜들을 이용하도록 구성되는 동기화 시스템.
  16. 제11항에 있어서,
    상기 논리 서브시스템 컴포넌트는 동기화 룰들의 세트에 따라 상기 확인을 수행하도록 구성되는 동기화 시스템.
  17. 제16항에 있어서,
    상기 동기화 룰들의 세트는 복수의 동기 파라미터:즉, 동기하기 위한 컴퓨터 시스템들의 세트; 동기하기 위한 컴퓨터 시스템들 상의 폴더들의 세트; 동기하기 위한 컴퓨터 시스템들 상의 파일들의 세트; 및 동기하기 위한 컴퓨터 시스템들 상의 파일들에 대한 특성들의 세트 중에서 최소한 하나의 동기 파라미터를 정의하는 동기화 시스템.
  18. 제16항에 있어서,
    상기 동기화 룰들의 세트는 상기 제1 컴퓨터 시스템 상의 상기 최소한 하나의 파일을 관리하고 유지하기 위한 룰들의 서브세트를 더 포함하는 동기화 시스템.
  19. 제16항에 있어서,
    상기 제1 컴퓨터 시스템은 상기 동기화 시스템을 이용하여 동기하기 위한 최소한 하나의 추가 컴퓨터 시스템을 능동적으로 찾아내도록 구성되고, 상기 동기화 룰들의 세트는 상기 동기화 시스템을 실행하려고 시도하는 빈도수를 관리하기 위한 룰들의 서브세트를 더 포함하는 동기화 시스템.
  20. 네트워크 내의 최소한 2개의 컴퓨터 시스템들에 대한 양방향 피어 투 피어 동기화를 위한 시스템으로서,
    제11항에 따른 동기화 시스템을 포함하고,
    상기 제2 컴퓨터 시스템은,
    상기 제2 컴퓨터 시스템과 상기 제1 컴퓨터 시스템 사이에 네트워크 접속을 설정하거나 또는 상기 제2 컴퓨터 시스템과 상기 제1 컴퓨터 시스템 사이의 현존하는 네트워크 접속을 이용하도록 구성되는 서브시스템 컴포넌트;
    상기 제2 컴퓨터 시스템이 상기 제1 컴퓨터 시스템과 동기되게 하기 위해 상기 제1 컴퓨터 시스템 상의 최소한 하나의 파일 중 임의의 파일이 상기 제2 컴퓨터 시스템으로 복사될 필요가 있는지의 여부를 확인하도록 구성되는 서브시스템 컴포넌트 - 상기 제1 컴퓨터 시스템 상의 상기 최소한 하나의 파일은 상기 제2 컴퓨터 시스템에 보일 수 있음 -; 및
    표준 네트워킹 프로토콜을 사용하여 상기 네트워크 접속을 통해 상기 제1 컴퓨터 시스템으로부터 최소한 하나의 파일을 복사하도록 구성되는 서브시스템 컴포넌트
    를 포함하고,
    상기 제1 컴퓨터 시스템의 상기 서브시스템 컴포넌트들 각각은 상기 제2 컴퓨터 시스템의 상기 서브시스템 컴포넌트들 각각과 독립적으로 실행되고, 상기 제1 컴퓨터 시스템은 동기화 시스템을 위해 표준 네트워킹 프로토콜을 이용하는 시스템.
  21. 제1 컴퓨터 프로그램 및 제2 컴퓨터 프로그램을 포함하는 컴퓨터 판독가능 기록 매체로서,
    상기 제1 컴퓨터 프로그램 및 상기 제2 컴퓨터 프로그램은, 제1 컴퓨터 시스템 및 제2 컴퓨터 시스템에 의해 각각 실행될 때, 제1항 내지 제10항 중 어느 한 항의 방법을 수행하도록 구성되는 컴퓨터 판독가능 기록 매체.
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
KR1020050037211A 2004-05-03 2005-05-03 피어 투 피어 룰 기반의 풀 자율 동기화 시스템의 구현을위한 시스템 및 방법 KR101122880B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US56755704P 2004-05-03 2004-05-03
US60/567,557 2004-05-03
US10/929,303 US7395446B2 (en) 2004-05-03 2004-08-30 Systems and methods for the implementation of a peer-to-peer rule-based pull autonomous synchronization system
US10/929,303 2004-08-30

Publications (2)

Publication Number Publication Date
KR20060047709A KR20060047709A (ko) 2006-05-18
KR101122880B1 true KR101122880B1 (ko) 2012-03-22

Family

ID=34939670

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050037211A KR101122880B1 (ko) 2004-05-03 2005-05-03 피어 투 피어 룰 기반의 풀 자율 동기화 시스템의 구현을위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US7395446B2 (ko)
EP (1) EP1594286B1 (ko)
JP (1) JP4851113B2 (ko)
KR (1) KR101122880B1 (ko)
CN (1) CN1722731B (ko)
DE (1) DE602005015377D1 (ko)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE602005001315T2 (de) * 2005-01-28 2008-02-14 Research In Motion Ltd., Waterloo Automatische Integration von Inhalt aus mehreren Datenspeichern mittels eines Mobilkommunikationsgeräts
US20060277224A1 (en) * 2005-06-07 2006-12-07 Microsoft Corporation Synchronizing arbitrary data using a flexible schema
US7523136B2 (en) * 2005-12-16 2009-04-21 Sony Ericsson Mobile Communications Ab Electronic equipment and method for automatic synchronization and communication system
KR100789376B1 (ko) * 2006-04-13 2007-12-28 한국전자통신연구원 개인화된 데이터 관리 정책에 따른 정보생명주기관리 서비스 제공 방법
US7890646B2 (en) * 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
US7930270B2 (en) * 2007-02-26 2011-04-19 Microsoft Corporation Managing files on multiple computing devices
JP5043527B2 (ja) * 2007-06-15 2012-10-10 キヤノン株式会社 文書検証方法、文書検証装置、文書検証プログラム、および文書検証プログラムを記憶した記憶媒体
FR2918241B1 (fr) * 2007-06-28 2009-11-06 Bouygues Telecom Sa Procede, serveur et application pour le partage de contenus personnels entre terminaux d'usager(s)
US20090150569A1 (en) * 2007-12-07 2009-06-11 Avi Kumar Synchronization system and method for mobile devices
US9141483B1 (en) * 2008-03-27 2015-09-22 Dropbox, Inc. System and method for multi-tier synchronization
CN101547161B (zh) 2008-03-28 2012-09-26 阿里巴巴集团控股有限公司 文件夹传输系统、文件夹传输装置及文件夹传输方法
JP2009265930A (ja) * 2008-04-24 2009-11-12 Hitachi Ltd ストレージサブシステムおよびストレージシステム
US20090282169A1 (en) * 2008-05-09 2009-11-12 Avi Kumar Synchronization programs and methods for networked and mobile devices
WO2009149063A1 (en) * 2008-06-02 2009-12-10 Azuki Systems, Inc. Media mashup system
US20100070466A1 (en) 2008-09-15 2010-03-18 Anand Prahlad Data transfer techniques within data storage devices, such as network attached storage performing data migration
US20100076778A1 (en) * 2008-09-25 2010-03-25 Kondrk Robert H Method and System for Providing and Maintaining Limited-Subscriptions to Digital Media Assets
US8694578B2 (en) * 2009-05-29 2014-04-08 Microsoft Corporation Swarm-based synchronization over a network of object stores
US8473543B2 (en) * 2009-07-06 2013-06-25 Microsoft Corporation Automatic conflict resolution when synchronizing data objects between two or more devices
CN102025515A (zh) 2009-09-14 2011-04-20 阿里巴巴集团控股有限公司 基于文件目录的文件传输方法及其装置和系统
FR2950991A1 (fr) 2009-10-01 2011-04-08 Sagem Comm Procede de synchronisation d'elements stockes par des dispositifs d'un systeme de communication de type paire a paire
JP5430410B2 (ja) * 2010-01-05 2014-02-26 キヤノン株式会社 通信装置およびその制御方法
US9055171B2 (en) 2010-02-19 2015-06-09 Nikon Corporation Electronic device, imaging device, image reproduction method, image reproduction program, recording medium with image reproduction program recorded thereupon, and image reproduction device
US20120023074A1 (en) * 2010-07-22 2012-01-26 Verizon Patent And Licensing, Inc. Scalable rule-based data synchronization systems and methods
US9244779B2 (en) 2010-09-30 2016-01-26 Commvault Systems, Inc. Data recovery operations, such as recovery from modified network data management protocol data
US10102242B2 (en) * 2010-12-21 2018-10-16 Sybase, Inc. Bulk initial download of mobile databases
CN102955790A (zh) * 2011-08-23 2013-03-06 苏州彭华信息技术有限公司 网络文件同步方法及装置
KR101907009B1 (ko) * 2011-10-21 2018-10-12 삼성전자주식회사 디지털 상품을 설치하기 위한 장치 및 방법
CN103188330A (zh) * 2011-12-31 2013-07-03 北大方正集团有限公司 一种文件传输方法及系统
AU2013202553B2 (en) * 2012-03-30 2015-10-01 Commvault Systems, Inc. Information management of mobile device data
US9069799B2 (en) 2012-12-27 2015-06-30 Commvault Systems, Inc. Restoration of centralized data storage manager, such as data storage manager in a hierarchical data storage system
US9858052B2 (en) * 2013-03-21 2018-01-02 Razer (Asia-Pacific) Pte. Ltd. Decentralized operating system
CN104243533B (zh) * 2013-06-21 2018-03-30 英华达(上海)科技有限公司 在局域网络中进行数据分享与数据同步的方法
US20170286448A1 (en) * 2014-08-27 2017-10-05 Hewlett-Packard Development Company, L.P. Portable storage device
US9928144B2 (en) 2015-03-30 2018-03-27 Commvault Systems, Inc. Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US10001913B2 (en) * 2015-04-01 2018-06-19 Dropbox, Inc. Shared workspaces with selective content item synchronization
US10101913B2 (en) 2015-09-02 2018-10-16 Commvault Systems, Inc. Migrating data to disk without interrupting running backup operations
US9697269B2 (en) 2015-10-29 2017-07-04 Dropbox, Inc. Content item block replication protocol for multi-premises hosting of digital content items
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
KR101929948B1 (ko) * 2017-04-07 2018-12-18 네이버 주식회사 데이터 타입 기반의 멀티 디바이스 데이터 동기화를 위한 방법 및 시스템
US10742735B2 (en) 2017-12-12 2020-08-11 Commvault Systems, Inc. Enhanced network attached storage (NAS) services interfacing to cloud storage
US11290530B2 (en) * 2018-06-01 2022-03-29 Apple Inc. Customizable, pull-based asset transfer requests using object models
KR102084014B1 (ko) * 2018-12-11 2020-03-04 네이버 주식회사 데이터 타입 기반의 멀티 디바이스 데이터 동기화를 위한 방법 및 시스템
JP7263023B2 (ja) * 2019-01-21 2023-04-24 キヤノン株式会社 画像処理装置及び方法
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
US20230385236A1 (en) * 2022-05-31 2023-11-30 Microsoft Technology Licensing, Llc Maintaining Stale Files to Minimize Computing Costs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671705B1 (en) * 1999-08-17 2003-12-30 Emc Corporation Remote mirroring system, device, and method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7505762B2 (en) * 2004-02-27 2009-03-17 Fusionone, Inc. Wireless telephone data backup system
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US8156074B1 (en) * 2000-01-26 2012-04-10 Synchronoss Technologies, Inc. Data transfer and synchronization system
US6738766B2 (en) * 2000-02-02 2004-05-18 Doongo Technologies, Inc. Apparatus and methods for providing personalized application search results for wireless devices based on user profiles
EP1187421A3 (en) * 2000-08-17 2004-04-14 FusionOne, Inc. Base rolling engine for data transfer and synchronization system
US7440994B2 (en) * 2001-07-06 2008-10-21 Intel Corporation Method and apparatus for peer-to-peer services to shift network traffic to allow for an efficient transfer of information between devices via prioritized list
US7149813B2 (en) * 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
US7213039B2 (en) * 2001-09-07 2007-05-01 Extended System, Inc. Synchronizing differing data formats
US6823349B1 (en) * 2001-09-21 2004-11-23 Emc Corporation Method and system for establishing, maintaining, and using a persistent fracture log
GB2380830A (en) * 2001-10-13 2003-04-16 Hewlett Packard Co Automatic file sharing in a peer to peer network by use of constraints between file system domains
WO2003073292A1 (en) * 2002-02-25 2003-09-04 Siebel Systems, Inc. (A Corporation Of Delaware) Method and system for server-based operations in server synchronization with a computing device
US7024214B2 (en) * 2002-02-26 2006-04-04 Microsoft Corporation Synchronizing over a number of synchronization mechanisms using flexible rules
US6721871B2 (en) * 2002-04-02 2004-04-13 Nokia Corporation Method and apparatus for synchronizing data stores with respect to changes in folders
DE60329998D1 (de) * 2002-04-30 2009-12-24 Visto Corp Adaptive synchronisation von dienstdaten
US7404011B2 (en) * 2002-05-31 2008-07-22 International Business Machines Corporation System and method for accessing different types of back end data stores
EP1383054A1 (en) * 2002-07-19 2004-01-21 SCHLUMBERGER Systèmes Data synchronization procedures for smartcards
US20040139180A1 (en) * 2003-01-10 2004-07-15 Sony Corporation Automobile media synchronization
US7451444B2 (en) * 2003-09-30 2008-11-11 Sas Institute Inc. Computer-implemented system and method for managing service agents

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6671705B1 (en) * 1999-08-17 2003-12-30 Emc Corporation Remote mirroring system, device, and method

Also Published As

Publication number Publication date
KR20060047709A (ko) 2006-05-18
DE602005015377D1 (de) 2009-08-27
CN1722731B (zh) 2010-05-12
EP1594286B1 (en) 2009-07-15
JP4851113B2 (ja) 2012-01-11
EP1594286A1 (en) 2005-11-09
CN1722731A (zh) 2006-01-18
JP2005332388A (ja) 2005-12-02
US20050262371A1 (en) 2005-11-24
US7395446B2 (en) 2008-07-01

Similar Documents

Publication Publication Date Title
KR101122880B1 (ko) 피어 투 피어 룰 기반의 풀 자율 동기화 시스템의 구현을위한 시스템 및 방법
US10185721B2 (en) Distributed data set storage and retrieval
US9654417B2 (en) Methods and systems for managing bandwidth usage among a plurality of client devices
US10467105B2 (en) Chained replication techniques for large-scale data streams
US5805897A (en) System and method for remote software configuration and distribution
US8688912B2 (en) Management of object mapping information corresponding to a distributed storage system
EP1872216B1 (en) System and method for detecting peer-to-peer network software
KR20040077566A (ko) 피어 컴퓨팅 장치 사이에서 공유된 데이터를 동기화하는방법 및 시스템
WO2006055899A2 (en) Systems and methods for dynamically updating computer systems
US8386430B1 (en) File storage method to support data recovery in the event of a memory failure
CN101944107B (zh) 一种文件管理的方法
US9785467B1 (en) Threadsafe use of non-threadsafe libraries with multi-threaded processes
US9742867B1 (en) Network data retrieval
WO2019047976A1 (zh) 网络文件管理方法、终端及计算机可读存储介质
CN102411598A (zh) 一种实现数据一致性的方法及其系统
CN100418319C (zh) 透明计算系统中端设备间数据的传送方法
Gu et al. Sector: A high performance wide area community data storage and sharing system
US8621182B1 (en) Management of object mapping information corresponding to a distributed storage system
US8316213B1 (en) Management of object mapping information corresponding to a distributed storage system
US10402373B1 (en) Filesystem redirection
US20230401225A1 (en) Methods and system for detecting unmanaged resources in cloud-based data warehousing system
US20230409590A1 (en) Methods and systems for generating recommendations in cloud-based data warehousing system
Li et al. Flimm: Foreground traffic aware data migration manager for distributed storage system
Crawl Affinity-directed mobility
Beck et al. Logistical networking: a global storage networkThis work is supported by the Department of Energy SciDAC Program (esp. Terascale Supernova Initiative) under grant# DE-FC02-01ER25465 and by the Center for Gyokinetic Particle Simulation of Turbulent Transport in Burning Plasmas, under award# DE-FG02-04ER25651. Additional support was provided by the Center for Information Technology Research (CITR) of the University of Tennessee. The infrastructure used in this work was supported by the NSF CISE Research Infrastructure program, EIA-9972889 and Research Resources program EIA-022444.

Legal Events

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

Payment date: 20150121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 8