KR20080106534A - 미디어-장치 컨텐츠에 대한 변화를 식별하기 위한 객체-기반 프로토콜 활용 방법 및 실체적인 기계-판독가능 매체 - Google Patents

미디어-장치 컨텐츠에 대한 변화를 식별하기 위한 객체-기반 프로토콜 활용 방법 및 실체적인 기계-판독가능 매체 Download PDF

Info

Publication number
KR20080106534A
KR20080106534A KR1020087021621A KR20087021621A KR20080106534A KR 20080106534 A KR20080106534 A KR 20080106534A KR 1020087021621 A KR1020087021621 A KR 1020087021621A KR 20087021621 A KR20087021621 A KR 20087021621A KR 20080106534 A KR20080106534 A KR 20080106534A
Authority
KR
South Korea
Prior art keywords
sequence
indicator
objects
maximum
value
Prior art date
Application number
KR1020087021621A
Other languages
English (en)
Other versions
KR101467583B1 (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 KR20080106534A publication Critical patent/KR20080106534A/ko
Application granted granted Critical
Publication of KR101467583B1 publication Critical patent/KR101467583B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications
    • 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
    • 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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance

Abstract

데이터 객체들에 관한 정보를 마스터 장치에 노출하는 방법이 제공된다. 각각이 데이터 객체들(예를 들어 장치의 미디어 파일)에 관련한 시퀀스 표시자의 집합과 관련하여 벤치마크 시퀀스 표시자가 사용되어서 복수의 요청 애플리케이션으로부터 전달된 시퀀스 기준을 만족하는 특정 객체들에 관한 정보에 대한 복수의 독립적인 요청을 만족시킨다. 내포된 데이터 구조는 데이터 객체와 연관된 속성들의 집합뿐만 아니라 데이터 객체에 또한 해당하고 데이터 객체에 변화가 일어난 때를 표시하는 객체 시퀀스 표시자가 상주하는 시퀀스 식별 필드도 포함한다.
Figure P1020087021621
데이터 객체, 마스터 장치, 슬레이브 장치, 시퀀스 표시자, 최대-시퀀스-값 표시자

Description

미디어-장치 컨텐츠에 대한 변화를 식별하기 위한 객체-기반 프로토콜 활용 방법 및 실체적인 기계-판독가능 매체{IDENTIFYING CHANGES TO MEDIA-DEVICE CONTENTS}
디지털 카메라, PMP(personal media players), 이동 전화, 및 기타 장치들은 점점 더 인기있는 월드와이드(worldwide)가 되고 있다. 사용자들은 사진을 찍고, 음악을 듣고, 비디오 등을 시청하고, 종종 장치들과 컴퓨터 같은 다른 장치들 사이에서 데이터를 공유한다. 예를 들면, 음악 파일들이 우선 컴퓨터에 다운로드된 후 휴대용 음악 재생장치에 전송될 수 있다. 디지털 사진을 찍은 후에 컴퓨팅 장치에 전송할 수 있다. 지속하는 가장 우선적인 이슈는 주어진 장치의 데이터에 대한 변화를 효과적인 방식으로 그리고 사용자에게 바람직한 방법으로 식별하는 것이다.
두 가지 설명적인 실례를 고려하자(디지털 카메라와 디지털 음악 재생장치). 디지털 카메라의 경우에는, 사용자가 수십 또는 수백개의 사진을 스냅촬영 하였으나, 이미 이전의 사진 세트를 업로드한 후에, 컴퓨터에는 일부만을 업로드하기 원할 수 있다. 또는 PMP의 경우에서는, 그 컨텐츠가 조작(manipulated)될 수 있어서, 일어난 변화라면 무엇이든지 컴퓨터에 복제되기를 원할 수 있다. 문제를 악화시키는 적어도 두 가지 상황이 있는데, 이는 전자 장치의 저장 용량에의 큰 증가, 및 어느 한 장치가 많은 시작 애플리케이션과 통신할 필요성이다.
PMP, 및 기타 장치들은 통상 기가바이트의 정보를 저장하고, 저장 용량은 의심할 여지가 없이 계속 늘어날 것이다. 지금까지, 저장 용량은 2제곱(quadratically) 늘어난 반면 전송 속도는 선형으로 빨라졌다. 전자 장치에 저장된 수십 기가바이트의 데이터에 관한 정보를 수송하는 것은 수 메가바이트의 데이터에 관한 정보를 수송하는 것보다 상당히 더 어렵다. 현재, 이를 다루는 한가지 방법은 전자 장치에 신호를 보내서(interrogate) 그것의 컴포넌트들의 완전한 매핑을 결정한 후에, 요청 애플리케이션으로 하여금 장치의 컨텐츠를 관리하는 방법을 결정하게 하는 것이다. 이러한 패러다임에서, 장치와 PC 사이에 관계가 가정되지 않는다. PC는 장치로부터 컨텐츠를 다운로드함으로써 연결 장치상의 정보를 익힌다.
비록 기술들이 장치와 컴퓨터 사이의 증가하는 데이터 전송 속도를 레버리지(leverage)하려고 시도하고 있지만, 단순히 증가하는 전송 속도는 여러가지 원인을 위한 적절한 해결책은 아니다. 첫째, PC에 수십 기가바이트의 정보를 불필요하게 전송하는 것은 본래 낭비적이다. 두 번째로, 적절한 대안이 존재하는 경우에 필요한 것보다 더 오래 사용자를 기다리게 할 수 있다. 그리고 가장 중요하게는, 연결된 장치상에 있는 컨텐츠에 액세스하기 위해 다수의 애플리케이션이 경합한다. 예를 들면, 다수의 오디오-파일 애플리케이션이 휴대용 오디오 재생장치가 컴퓨터에 연결되자마자 그 휴대용 오디오 재생장치와 통신 링크를 구축하려고 시도할 것이다. 각각의 재생장치가 독립적으로 동작하면, 각각의 재생장치는 연결된 장치상의 컨텐츠에 관해 알기 위해서 연결된 장치의 모든 정보를 다운로드해야한다.
몇몇 실시예에서, 컴퓨터와 전자 장치 간에 일대일 관계가 존재한다. 이는 일을 수월하게는 만들지만 분명한 단점을 갖는다. 예를 들면, 몇몇 미디어-재생 장치 애플리케이션은 특정한 상표의 미디어-재생 장치를 이용해서만 작동하도록 설계된다. 이 시나리오에서는, 컴퓨팅 장치와 전자 장치 간에 관계성이 존재한다고 가정될 수 있다. 이는 데이터베이스를 동기화하기 위한 옵션을 이용하능하게 만든다. 데이터베이스는 컴퓨팅 장치에 존재하고 데이터베이스는 또한 전자 장치에도 존재한다. 어느 쪽의 데이터베이스에라도 변화가 일어나면, 한쪽에 어떠한 변화가 생겼던지 간에 다른 한쪽에 또는 그 반대로 복제를 하도록 하는 준비(provisions)가 이루어진다. 그러나 이 패러다임은 컴퓨팅 장치의 둘 이상의 애플리케이션이, 연결된 전자 장치의 데이터에 관한 정보를 전달하려고 시도하는 경우에는 통하지가 않는다. 이 쉽지않으며 공지된 문제점은 멀티-마스터 동기화 문제로 알려져 있다. 또한, 기가바이트, 및 종국엔 테라바이트를 저장하는 데이터베이스들 또는 정보를 동기화하는 것은 도시될 바와 같이, 자원 집약적이고, 불필요하다.
요약하면, 컴퓨팅 장치와 전자 장치 간에 데이터를 동기화하는 두 가지 주요 방법은 각 장치에서 데이터베이스를 미러링하는 것, 또는 컴퓨팅 장치에 연결된 전자 장치상의 모든 컨텐츠의 완전한 매핑을 수신하는 것이다. 이들 방법 중 어느 쪽도 장치의 미디어 컨텐츠 전부를 실제로 전송하지 않고도 장치의 컨텐츠에 관해 빠르고 효과적으로 알려주는 효과적인 방법을 제공하지 않는다. 예를 들면, 디지털 카메라에 몇백 개의 사진을 남겨둔 후에, 사용자가 단 몇 개의 추가 사진을 스냅 촬영하고 컴퓨팅 장치에 카메라를 재연결할 수 있다. 이들 방법 중 어느 쪽도 단 몇 개의 최근 사진만이 새로운 것이라는 표식을 수신하여 사용자가 변화된 컨텐츠를 조작하게 하는 옵션을 제시하는 기능을 컴퓨팅 장치에 제공하는 보편적인 방법을 제시하지 않는다. 이런 종류의 문제점들은 휴대 전화, PDA, PMP 등과 같은 각종 장치들에 관련하여 퍼져있다.
이 설명은 이하의 실시예에서 더 설명되는 개념의 선택을 단순화된 형태로 소개하기 위해 제공된다. 이 설명은 청구된 요지의 핵심 특징들 또는 주요한 특징들을 식별하기 위하거나, 청구된 요지의 범위를 제한하기 위해 사용되려는 것은 아니다.
이 개시는 전자 장치와 같은 미디어 장치의 특정한 데이터 객체와 관련된 객체 정보를 효과적으로 수신 및 제공하는 방법 및 데이터 구조를 설명한다. 데이터 객체는 미디어 파일(오디오, 비디오, 사진 등)과 같은 항목들을 포함한다. 다수의 요청 애플리케이션이 장치와의 동기화 기반 상호작용(선택적 열거, 습득, 위치지정 등)을 수행하게 하는데 요청되는 정보만을 노출하는 데 객체-지향의 프리미티브(object-oriented primitives)(객체 메타데이터, 장치 메타데이터, 및 동작들)가 사용된다. 한 객체에 변화가 일어난 경우에, 이 객체는 언제 변화가 일어났는지를 상관적으로 판정하기 위해 나중에 사용될 수 있는 시퀀스 표시자를 수신한다. 이 방법은 동기화된 시계들 또는 변화-로그들과 같은 장치들 사이에 임의의 구축된 파트너십 또는 공유되는 정보에 의존하지 않는다. 본 발명은 각종 유형의 전자 장치에서 변화된, 새로운, 및 삭제된 컨텐츠를 식별하는 것에 관련하는 시간 및 리소스를 줄이는 것을 포함하는 당해 기술 분야의 몇 가지의 실용적인 애플리케이션을 갖는다.
본 발명의 실시예들은 이하에서 첨부된 도면들과 관련하여 상세히 설명되는데, 도면들은 본원에 참조에 의해 포함된다.
도 1은 본 발명의 실시예에 따른 동작에 적합한 예시적인 시작 장치의 블록도.
도 2A는 본 발명의 실시예에 따른 예시적인 동작 환경을 도시하는 블록도.
도 2B는 슬레이브(slave) 장치에 저장된 데이터 객체의 양태들을 도시하고 본 발명의 실시예에 따라 유지되는 삭제 리스트를 도시하는 도면.
도 3A 및 도 3B는 본 발명의 실시예들과 관련하여 시퀀스-식별 필드를 수신하기 위해 준비된 위치를 포함하는 데이터 구조의 대부분 제한되지 않는 변동의 두 표현을 도시하는 도면.
도 4는 본 발명의 실시예에 따른 슬레이브 장치의 동작의 예시적인 흐름을 도시하는 도면.
도 5는 본 발명의 실시예에 따른 슬레이브 장치의 예시적인 동작을 트레이스하는 상태 다이어그램과 관련하여 참조되는 흐름을 도시하는 도면.
도 6은 본 발명의 실시예에 따라 잠재적으로 많은 요청 애플리케이션에 슬레이브 장치의 컨텐츠를 노출하는 슬레이브 장치의 한 방법을 도시하는 흐름도.
도 7은 본 발명의 실시예에 따라 슬레이브 장치에 저장된 객체에 관한 정보 를 수신하는 애플리케이션의 예시적인 방법을 도시하는 흐름도.
도 8A 및 도 8B는 본 발명의 일 실시예에 의해 수행되는 예시적인 프로세스의 보다 상세한 개요를 제공하는 도면.
설명될 기술의 정확한 구현은 이하의 청구범위의 범주로부터 일탈하지 않고 변할 수 있다. 장치에서 객체가 변화한(생성 및 삭제를 포함) 시퀀스의 식별을 가능하게 하는 속성이 제공되는데, 이는 또한 시퀀스 내의 현재 위치의 식별을 가능하게 하는 적어도 하나의 속성과 연관된다. 본원에 사용된 "시퀀스(sequence)", "시퀀스의(sequenctial)" 및 기타 변형들은 연속적인 급수 또는, 공차를 갖는 인접한 값들의 집합을 의미하는 것은 아니다. 그보다는, 간격이 충분히 예측된다. 따라서, 집합 {1, 4, 897, 6987}이 본원에서 사용되는 시퀀스의 값이 될 수 있을 것이다. 이는 요청 장치가 시퀀스의 원하는 범위(예를 들면, 어떤 값보다 큰 값) 내에 들어가는 특정 객체에 대한 핸들 리스트와 같은 정보를 빠르게 제시받을 수 있게 한다.
본 발명의 서술 전체에서, 연관된 시스템 및 서비스에 관계하는 특정 개념의 이해를 위해 몇 가지 약어 및 약식 표기가 사용된다. 이들 약어 및 약식 표기는 본원에 표현된 아이디어를 전달하는 용이한 방법론을 제공하기 위한 목적만을 위한 것으로, 본 발명의 범위를 제한하고자 하는 것은 아니다. 다음은 이들 약어의 목록이다.
약어 구문 요약된 설명(전체 설명은 명세서를 참고할 것)
MSVI 최대-시퀀스-값 표시자(Maximum-sequence-value indicator) 갑들의 집합에서 최대 시퀀스 값이 결정될 수 있는 표시자는 후속하는 OSI들을 결정하기 위한 기준을 제공할 수 있다. 슬레이브 장치와 처음에 연관되어서 장치의 객체들의 주어진 집합에서 가장 큰 객체 시퀀스 표시자를 표시하고 또한 마스터 장치에 의해 수신되는데, 마스터 장치는 현재 연결에서 장치의 현재의 최대 시퀀스 값 표시자 및/또는 마지막으로 알려진 연결에서 장치의 이전 최대 시퀀스 값 표시자를 추적할 수 있다.
OSI 객체 시퀀스 표시자(Object sequence indicator) 적어도 최대 시퀀스 값 표시자와 관련하여(아니면 일부 실시예에서는 다른 객체의 변화와 관련하여) 객체에 대한 변화(새로운 및 삭제된 객체를 포함)가 일어난 때를 지시하는 속성
본 발명의 예시적인 양태들은 이하에서 더 상세히 설명될 것이다. 몇몇 양태들을 열거하는 것은 다른 양태들이 존재하지 않는다는 표시로 해석되어서는 안 된다. 그러나 예시적인 목적을 위해 선택 목록이 제공된다.
제1 예시적인 양태에서, 마스터 장치로 하여금 슬레이브 장치의 각종 객체들에 관한 객체 정보를 수신하는 방법을 수행하게 하기 위한 컴퓨터 프로그램 제품이 제공된다. 일 실시예에서는, 슬레이브 장치의 객체 각각은 단조 시퀀스 표시자(a monotonic sequence indicator)와 관련된다. 본 방법은 슬레이브 장치가 마스터 장치와 언제 마지막으로 통신했는지를 표시하는 이전 최대-시퀀스-값 표시자를 마스터 장치에서 검색하는 단계를 포함한다. 그 이전 최대-시퀀스-값 표시자 및 각종 객체들의 객체 시퀀스 표시자에 기초하여, 새로운 또는 슬레이브 장치가 마스터 장치와 마지막으로 통신한 이후에 변화한, 슬레이브 장치의 객체의 집합과 연관된 정보가 수신될 수 있다.
제2 예시적인 양태에서는, 한 전자 장치의 객체에 관한 정보를 다른 장치에 제시하는 것을 돕기 위해 구현된 데이터 구조가 제공된다. 장치의 데이터 객체 각각에 대해 데이터 구조가 존재했다. 또한 객체의 집합과 연관된 최대-시퀀스-값 표시자(MSVI)가 제공된다. 데이터 구조는 객체의 각종 양태들을 설명하는 각종 속성들을 포함하지만, 최대-시퀀스-값 표시자에 관련하여 데이터 객체에 변화가 일어난 때를 표시하는 객체 시퀀스 표시자(OSI)가 파퓰레이트된 시퀀스-식별 필드도 또한 포함한다. 새로운 객체를 생성하는 것은 "변화(change)"의 범주에 들어간다.
제3 실시예에서는, 적어도 하나의 MSVI와 연관된 저장 매체에 구현된 데이터 객체의 집합에 관한 정보를 저장하는 방법이 제공된다. 본 방법은 다수의 각각의 요청 애플리케이션으로부터 다수의 독립적인 객체-정보 요청들을 수신하는 단계(여기서 각각의 요청은 데이터의 적어도 일부에 관한 정보에 대한 요청임), 각각의 요청으로부터, 슬레이브 장치가 각자의 요청 애플리케이션과 마지막으로 통신한 때를 표시하는 각자의 이전 MSVI를 식별하는 단계, 및 각자의 이전 최대-시퀀스-값 표시자와 관련하여 이전에 저장된 객체 시퀀스 표시자들을 활용하여서, 대응 객체 시퀀스 표시자가 최대-시퀀스-값 표시자에 관한 기준(criteria)을 만족하는 데이터 객체들에만 관한 정보를 각 요청 애플리케이션이 수신하라는 요청 각각을 만족하는 단계를 포함한다.
제4 예시적인 양태에서는, 장치상에서 데이터 객체가 변화되었거나 생성된 시퀀스를 식별하기 위한 방법이 제공된다. 본 방법은 이전에 할당된 시퀀스-위치 표시자의 집합에 관련하여 단조적으로(monotonically) 변하는 시퀀스-위치 표시자와 데이터 객체 각각과의 연관을 제공하는 단계를 포함한다. 본 방법은 새로 생성된 객체 및 정해진 시점 후에 적어도 하나의 속성이 변화된 객체를 포함하는 객체 집합에 대응하는 객체 참조들의 집합의 통신을 제공하는 단계를 더 포함한다.
마지막 예시적인 양태에서, 실시예는 슬레이브 장치와 마스터 장치 간에 정보 교환을 용이하게 하는 내포된 명령어들의 형태를 취한다. 슬레이브 장치의 하나 이상의 객체의 집합과 연관되는 벤치마크 시퀀스-표시자의 수용이 제공된다. 객체들 각각은 단조 시퀀스-표시자와 각기 연관된다. 어떤 객체가 슬레이브 장치에 존재하는지에 대한 판정이 벤치마크 표시자에 기초하여 또한 제공된다.
본 발명은 PDA 또는 기타 핸드헬드 장치와 같은 컴퓨터 또는 다른 기계에 의해 실행되는 프로그램 모듈과 같은, 컴퓨터-실행가능 명령어를 비롯한 컴퓨터 코드 또는 기계-사용가능 명령어들의 일반적 문맥에서 설명될 수 있다. 일반적으로, 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조, 프로토콜 등을 비롯한 컴퓨터 모듈들은 특정 작업을 수행하거나, 특정한 추상적 데이터 유형을 구현하는 코드로 지칭한다. 본 발명은 핸드-헬드 장치, 가전제품, 범용 컴퓨터, 특히 컴퓨팅 장치 등을 비롯한 각종 시스템 컨피규레이션에서 시행될 수 있다. 본 발명은 통신 네트워크를 통해 연결된 원격 처리 장치에 의해 작업이 수행되는 분산 컴퓨팅 환경에서 또한 시행될 수 있다.
특히 도 1을 참조하면, 예시적인 마스터 장치(100)의 양태가 제공된다. 마스터 장치(100)는 컴퓨터 즉 컴퓨팅 장치, 게임 콘솔, 스테레오 헤드 장치 등등일 수 있는데, 이는 적합한 운영 환경의 일례일 뿐이다. 이는 본 발명의 기능에서의 사용 범위에 대해 임의의 제한을 하기 위한 것은 아니다. 도시된 컴포넌트 중 임의의 하나 또는 그 조합에 관련하여 임의의 의존성 또는 요건으로 해석되어서는 안 된다.
도 1을 참조하면, 마스터 장치(100)는 다음의 장치들에 직접 또는 간접적으로 결합하는 버스(110)를 포함한다: 메모리(112), 하나 이상의 프로세서(114), 하나 이상의 프리젠테이션 인터페이스(116), 입/출력 포트(118), 입/출력 컴포넌트(120), 및 예시적인 전원(122). 버스(110)는 하나 이상의 버스(예를 들면, 어드레스 버스, 데이터 버스, 또는 그것들의 조합)가 될 수 있는 것들은 나타낸다. 비록 도 1의 각종 블록들이 명확함을 위해 선으로 도시되었지만, 실제로는 각종 컴포넌트들의 경계를 긋는 것은 그다지 명확하지 않아서, 비유적으로, 선들은 보다 정확하게는 어둡고 흐릿할(fuzzy) 것이다. 예를 들면, 디스플레이 장치와 같은 프리젠테이션 컴포넌트가 I/O 컴포넌트라고 고려할 수 있다. 또한, 프로세서들은 메모리를 갖는다. 이러한 것은 당해 기술분야에서 자연스러우며, 도 1의 도면은 본 발명의 하나 이상의 실시예들과 관련하여 사용될 수 있는 예시적인 마스터 장치의 예시에 불과함을 거듭 인식해야 한다. "워크맨", "서버", "랩탑", "핸드-헬드 장치" 등의 카테고리들 모두는 도 1의 범위에 포함되고 마스터 장치의 유형으로서 컴퓨터와 마찬가지로 참조되므로 이 카테고리들 사이에 차이는 생기지 않는다.
마스터 장치(100)는 일반적으로 각종 컴퓨터-판독가능 매체를 포함한다. 예로서, 컴퓨터-판독가능 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 또는 홀로그램 매체, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 툼 장치(thumb device)와 같은 이동식 장치, 플래시 카드, 등등, 및 마스터 장치(100)에 의해 액세스되고 원하는 정보를 인코딩하는 데 사용될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 메모리(112)는 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함하고 상술한 임의의 매체 유형을 포함한다.
마스터 장치(100)는 메모리(112) 또는 I/O 컴포넌트(120)와 같은 각종 엔터티들로부터 데이터를 판독하는 하나 이상의 프로세서들을 포함한다. 프리젠테이션 인터페이스(116)는 사용자 또는 기타 장치에게 데이터 표식을 제시하고 장치(100)의 일부이거나 그에 결합될 수 있다. 예시적인 프리젠테이션 컴포넌트는 디스플레이 장치, 스피커, 인쇄 컴포넌트, 진동 컴포넌트 등을 포함한다. I/O 포트(118)는 마스터 장치(100)가 I/O 컴포넌트(120)를 비롯하여 일부는 내장형일 수 있는 다른 장치들에 논리적으로 결합되게 한다. 예시적인 컴포넌트는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너, 프린터, 무선 장치 등을 포함한다.
도 2A를 참조하면, 미디어 장치(210)가 마스터 장치(212)에 연결되어 도시된다. 미디어 장치(210)는 참조 부호(211A 및 211B)에 의해 지정된 하나 이상의 기계-판독가능 매체를 판독할 수 있다. 매체는 이미 설명한 바와 같이 영구적이거나 이동식일 수 있다. 각종 실시예에서, 미디어 장치(210)는 디지털 카메라(214), PDA(216), 휴대 전화(218), 휴대용 음악 재생장치(220), 또는 PMP(222)와 같은 전자 장치, 또는 도시되지는 않았지만 생략부호(224)에 의해 포함되는 것으로 표시되는 기타 장치의 형태일 수 있다. 이하에서, 미디어 장치(210)는 본 발명의 문맥에서 마스터 장치(212)에 대한 슬레이브(slave)로서 동작하기 때문에 슬레이브 장치(210)로 불릴 것이다. 마스터 장치(212)는 본 발명의 각종 기능적 양태들을 수행하는 데 사용되는 기계-판독가능 명령어(225) 집합을 포함한다. 마스터 장 치(212)는 랩탑 컴퓨터(226), 라디오 헤드 장치(228), 게임 콘솔(23), 몇몇 기타 형태의 컴퓨팅 장치(232), 또는 도시되지는 않았지만 생략부호에 의해 표현되는 몇몇 기타 마스터 장치의 형태일 수 있다.
마스터 장치(212)는 참조부호(234, 236, 및 238)에 의해 지정되는 다수의 요청 애플리케이션을 포함하는 것으로 도시된다. 이는 슬레이브 장치(210)가 마스터 장치(212)의 요청 애플리케이션(234 내지 238)과 일대다 관계에 있기 때문에 피어-투-피어 환경은 아니다. 각각의 마스터 애플리케이션은 참조부호(234A, 236A, 및 238A)에 의해 각자 표기된 이전 최대-시퀀스-값 표시자(MSVI)를 개별적으로 포함한다. 이하에서 보다 상세히 설명될 것이지만, 이전 최대-시퀀스-값 표시자는 슬레이브 장치(210)에 의해 제공되고, 장치가 마스터 장치(212)에 연결된 때에, 장치의 가장 큰 시퀀스-표시자를 표시한다. 일부 실시예에서, 2개의 벤치마크 표시자(이전 최대-시퀀스-값 표시자와 현재의 최대-시퀀스-값 표시자)가 유지되는데, 현재의 최대-시퀀스-값 표시자는 새로 연결된 슬레이브 장치(210)로부터의 현재 값을 취하고, 이전 최대-시퀀스-값 표시자는 가장 최근에 대체된 현재의 최대-시퀀스-값 표시자를 저장한다. 다시, 이는 이하에서 특히 도 8을 참조하여 더욱 상세히 설명될 것이다.
마스터 장치(212)는 슬레이브 장치(210)에 대한 요청을 개시하는데, 이는 슬레이브 장치(210)의 각종 객체들과 연관된 정보로 응답한다. 슬레이브 장치(210)는 덜 복잡한 실시예보다 더 복잡한 실시예를 도시한다. 예를 들어, 슬레이브 장치(210)는 제1 객체 집합(242) 및 제2 객체 집합(246)의 두 개의 별도의 객체 집합 을 도시한다. 객체 집합(242)은 대응 최대-시퀀스-값 표시자(248)를 포함한다. 유사하게 객체 집합(246)은 대응 최대-시퀀스-값 표시자(250)를 포함한다. 이 애플리케이션에서, 각종 시나리오들이 설명될 것이다. 또한 보다 복잡한 설명 참조를 요구하지 않는 상황이 일반적으로, 애플리케이션(234)과 같은 예시적인 애플리케이션에 정보를 나타내기 위해 각각의 시퀀스 표시자와 관련하여 사용되는 최대-시퀀스-값 표시자(248)를 갖는 객체 집합(242)에 대해 생겨날 것이다.
본 발명의 실시예에서는, 객체 속성 기반(OPB; object property-based) 프로토콜이 사용되어, 각자의 정보 요청(241A, 241B, 241C)에 응답하여 마스터 장치(212) 및 적절하다면, 각각의 요청 애플리케이션(234, 236, 및 238)으로의 (객체 핸들, 기타 참조, 요약 정보뿐만 아니라 객체들 그 자체와 같은) 정보(243A, 243B, 및 243C)의 전달을 용이하게 한다.
본원에 사용된 OPB 프로토콜은, 모든 구성요소들이 객체로서 제시되고 객체들 자체를 검색하지 않고도 속성에 의해 설명되는 임의의 프로토콜이다. 컨텐츠가 객체로서 노출되고 객체들과는 분리된 속성들에 의해 설명된다. 객체-기반 프로토콜은 동작, 응답, 및 (선택적으로) 이벤트의 조합을 사용하여 장치 및 장치의 컨텐츠로의 액세스를 제공하는 프로토콜이다. 이 프로토콜은 객체 형태로 나타내는 장치의 컨텐츠를 설명하기 위해 사용한다. 객체들은 프로토콜의 객체들을 어드레스하는 데 사용되는 표시자(예를 들면, 객체 핸들, 파일명, 또는 객체명); 객체를 설명하고, 바이너리 페이로드 자체를 검색하지 않고도 검색가능한 메타데이터(예를 들어, 속성들)의 선택; 및 객체의 바디를 형성하는 바이너리 파일을 포함하는 하나 이상의 바이너리 리소스로 이루어져 있다. 속성들 만으로 이루어지고, 바이너리 성분을 갖지 않는 객체들이 존재한다. 이것들은 추상 객체라고 불린다.
예시적인 이러한 프로토콜은 미디어 전송 프로토콜(MTP; media transfer protocol)을 포함하는데, 이는 1) 2004년 5월 3일 제출된 미국 특허 출원 제10/836,260호, 2) 2004년 5월 5일 제출된 미국 특허 출원 제10/839,299호, 3) 명칭이 "Media Transfer Protocol"인 MSDN.Microsoft.com에서 입수가능한 명세서에서 전자 장치들 간의 데이터를 동기화하는 것에 관한 추가적인 정보와 함께 보다 자세히 설명된다. 이 세 문헌들 각각은 적어도 설명된 목적을 위해 본원에서 참조에 의해 설명으로 포함된다.
객체-기반 프로토콜에서, 객체들은 전체 객체로 전송된다. 즉, 하나의 객체에 대해 하나의 요청이 만들어진다. 이러한 스킴의 장점은 요청된 파일이 파일 구조 및 운영 체제와 같은 것들에게 불가지론적(agnostic)이 된다는 점이다. 따라서, 파일들은 이종의 운영 체제 및 파일 시스템에 걸쳐 전달될 수 있다. 파일은 한 장치에서 다른 장치로 단순히 전달되는 상호적인 것이 된다. 본원에서 파일을 전송한다는 언급이 있으면, 이는 실제로 파일을 이동시키기 보다는 파일의 사본을 전송하는 개념을 포함하고자 하는 것임을 유념하자. 이는 당해 기술 분야에서 널리 고려되므로, 애플리케이션 전체에서 각각의 차이를 구분하는 것은 본 발명을 애매하게 만들 수 있다.
일 실시예에서는, 마스터 장치(212)가 제어 상태하에 있고, 슬레이브 장치(210)는 자신의 컨텐츠를 노출하려 시도할 것이다. 피어-투-피어 환경에서, 각 각의 롤이 뒤바뀔 수 있다. 즉, 마스터 장치는 슬레이브 장치가 될 수 있고 슬레이브 장치는 또한 마스터 장치가 될 수 있다. 본 발명은 피어-투-피어 환경의 이슈와는 다른 이슈를 제시하는 일대다 환경에 연관된 문제를 해결하기 위한 것이다. 본 발명의 운영 환경은 미디어 재생장치에게 그것의 컨텐츠를 요청하는 카오디오, 자신과 연결된 장치의 정보를 요청하는 게임 콘솔과 마찬가지로 도 2A에 명시적으로 설명된 것뿐만 아니라 본 개시를 읽으면서 당업자에 의해 고려될 기타 많은 설정들의 무수한 기타 예시들도 포함한다.
언급된 바와 같이, 본 발명에서 다루는 문제들 중 하나는(유일하지는 않음) 새롭거나 변화된 컨텐츠를 전자 장치의 요청 애플리케이션에 빠르게 노출할 수 있게 되는 것이다. 이 문제에 대한 많은 양상(facets)이 존재하며 다른 목적은 변화의 시퀀스에서 특정 객체에 대해 특정 변화가 일어난 때를 적어도 장치가 마스터 장치(212)와 마지막으로 통신한 시각에 관련하여 식별할 수 있게 되는 것이다. 각종 방법론들이 통하지 않을 것이다. 예를 들면, 디지털 카메라의 시계는 사진이 실제로 찍힌 시각에 대한 믿을만한 표시자가 아니고, 마지막으로 요청 장치와 통신한 것에 관련하여 변화가 일어난 때의 표시를 제시하지 못하며, 사진이 찍힌 때의 시퀀스 위치를 고유하게 식별하기 위한 충분한 입도(granularity)를 제공하지도 못할 수 있다. 불행하게도, 많은 소비자들은 그들의 디지털 카메라의 시계를 프로그래밍하지 않는다.
또한, 사람들이 특히 서쪽으로 여행하면서 시간 경계선을 넘는 경우에는, 자신의 시계를 설정한 사람들조차도, 그들의 시계를 뒤로 돌리는 정도에 그쳐서, 특 정 사진이 실제로는 다른 사진보다 나중에 찍힌 경우에도 이 사진이 다른 사진보다 먼저 찍혔다는 그릇된 표시로 이어질 수 있다. 시계는 또한 장치가 마스터 장치(212)와 마지막으로 통신한 때와 관련하여 임의의 상대적인 측정을 제공하지 않는다.
잠재적인 시퀀스 표시자로서 시계를 사용하는 다른 예시적인 단점으로는, 시계가 충분히 정확하지 않을 수 있다는 것이다. 일부 하이-엔드 카메라는 어림하여 초당 몇 개 사진을 포함하는, 빠른 연발로 다수의 사진을 찍을 능력이 있다. 시계가 초단위까지의 시간만을 갖는다면, 빠른 연발에서 하이-셔터 속도로 찍힌 10 개의 사진들은 그것들 전체에 걸쳐서 모두 동일한 타임스탬프를 수신할 수 있다.
이러한 그리고 피어-투-피어 동기화를 포함하는 현존하는 기술 분야에서, 기술은 슬레이브 장치(210)와 같은 전자 장치의 객체에서 비롯된 관련 시퀀스를 보편적으로 식별할 수 있는 해법을 결정하는 데에 도움이 되지 않을 것이다. 이러한 레거시 논리(legacy logic)는 상이한 패러다임에서 이루어진 일들이, 객체 집합(242)과 많은 시작 애플리케이션(234, 236 및 238) 간의 일대다 관계를 포함하는 본 발명의 동작 환경에서의 문제를 해결하기 위해 적용되기에는 도움이 되지 않는다는 낡은 방식의 생각 때문에 실제로는 문제를 혼동시켰다. 또한, 문제 중 하나는 슬레이브 장치(210)의 컨텐츠를 마스터 장치(212)(및 어쩌면 제시된 만큼 많은 마스터 애플리케이션에 해당하는 그것의 많은 인스턴스들)에 완전히 미러링하지 않고 그리고 전자 장치의 완전한 컨텐츠를 열거할 필요 없이도 변화된 객체들(속성이 변한 객체도 포함) 뿐만 아니라 새로 생성된 객체들을, 빠르게 식별할 수 있게 하 는 것이다.
도 2B는 슬레이브 장치(210)의 일부 객체들이 다른 객체들이 변하는 동안(변경 또는 생성) 변하지 않은 채 남을 수 있는 방법을 도시한다. 예를 들면, 참조부호(260)로 나타낸 객체는 변하지 않은 객체들이다(즉, 슬레이브 장치(210)가 마스터 장치(212)와 마지막으로 통신한 시각에 관련하여 변하지 않음). 일부 실시예들에서는, 이 지정이 사용자 제어형 또는 장치 제어형일 수 있어서 슬레이브 장치(210)를 마스터 장치(212)에 단지 연결하는 것은 통신 이벤트로서 역할하지 않는다.
변화된 객체들은 참조부호(262)로 표시된다. 본원에서 사용된, "변화된(changed)" 객체는 변형된 객체이거나 새로 생성된 객체를 포함한다. 삭제된 파일 목록(264)이 또한 도시되는데, 이는 슬레이브 장치(210)로부터 삭제된 객체를 계속 추적하는 방법을 제공한다. 이 리스트는 사전설정된 길이가 되도록 세팅될 수 있어서 바람직한 크기보다 더 큰 공간을 소모하지는 않는다. 예를 들면, 이는 마지막 N개의 객체들을 계속 추적하도록 구성될 수 있다. 이 리스트는 어느 객체가 삭제되었는지를 식별하도록 마스터 장치(212)에 의해 단순히 요청될 수 있다. 일 실시예에서는, 리스트는, 적어도 슬레이브 장치의 최대-시퀀스-값 표시자(248 또는 250)에 관련하고, 또한 기존의 객체에 대하여 변화가 생겨난 시각 또는 새로운 객체들이 생성된 시각과 관련하여 삭제된 객체들을 식별하는 식별자뿐만 아니라 객체들이 삭제된 시각을 표시하는 대응 시퀀스 표시자로 조합된 2×N 어레이(265)의 형태를 취한다.
본 발명의 일 실시예에서는, 변경된 객체 또는 새로 생성된 객체(262)를 식별하는 것은, 일 실시예에서 다른 객체들에 대한 변화에 관련하여, 또 일부 실시예들에서는 적어도 최대-시퀀스-값 표시자일 수 있는 벤치마크 표시자에만 관하여 객체에 변화가 일어난 시각을 식별하는 데 사용될 수 있는 객체 시퀀스 표시자(OSI)를 수신하는 각 객체에 여분의 속성을 제공함으로써 이루어진다. 시퀀스 표시자는 단조 증가형 단조 감소형일 수 있다. 양쪽 시나리오 모두에서, 후속 값도 적어도 이전의 값들 모두에 비해 극값이다(a subsequent value is at least as extreme as all previous values). 단조적 표시자들은 비증가형 이거나 비감소형이다. 비감소형 값들아 절대 감소하지는 않지만, 인접하는 값들이 동일할 수는 있다. 유사하게, 비증가형 값들이 절대 증가하지 않지만, 인접하는 값들이 동일할 수는 있다. 일 실시예에서, 시퀀스 표시자는 비감소형이다. 즉, 값들이 요동하지 않고 꾸준히 증가한다. 그러나 이하의 청구범위의 범주 내에서는 굉장히 큰 수로 시작하여 시간이 흐르면서 감소될 수 있는 것도 고찰될 수 있다. 따라서, 일 실시예에서, 본 발명은 도 3A의 참조부호(300)으로 참조되는 예시적인 것으로서, 내포된 데이터 구조의 형태를 취한다.
도 3A는 본 발명의 일 실시예에 따라 사용될 수 있는 데이터 구조의 예시적인 표현을 도시한다. 이 데이터 구조는 시퀀스-표시자(312)를 자신의 속성 중 하나로 포함하는, 새로운 필드인, 시퀀스-식별 필드(310)를 포함한다. 데이터 구조(300)는 또한 참조부호(314)로 참조되는 기타 데이터 객체 속성들의 집합을 포함하는데, 이는 파일명 속성(316), (경우에 따라) 해상도 속성(318), 및 참조부 호(320)에 의해 예시적으로 나타낸 각종 기타 속성들을 예시적으로 포함한다. 미디어 페이로드(326)가 스스로 변화되었는지의 여부를 표시하는 대응 속성(324)을 수신하기 위해, 페이로드-변화 식별 필드(322)가 본 발명에 의해 또한 제공된다. 예를 들면, 페이로드-변화 표시자(322)는 미디어 페이로드의 실제 컨텐츠가 변화한 경우에는 "1"인 반면에, 페이로드에 연관된 속성은 변화했지만 페이로드 자체는 변하지 않은 경우에는 "0"일 수 있다.
이하에서 논의될 바와 같이, 데이터 객체가 변화되거나 새로 생성되는 때에는, 그것의 시퀀스-식별 필드(310)에 시퀀스-표시자(312)가 파퓰레이트된다. 장치는 수백, 수천, 또는 심지어 그보다 많은 데이터 객체들을 저장할 수 있는데, 각 데이터 객체는 대응 시퀀스-식별 필드(310) 및 시퀀스-표시자(312)를 갖는다. 이들 시퀀스-표시자의 집합은 통상적으로 장치와 연관된 최대-시퀀스-값 표시자와 관련하여 사용될 것이지만, 또한 각자의 데이터 객체 집합에 연관될 수 있어서, 시퀀스는 최대-시퀀스-값 표시자에 관련하여 및/또는 경우에 따라 서로서로 관련하여 각종 객체들에 일어난 변화를 식별할 수 있다. 도 3B는 참조부호(300A)로 도시된 데이터 구조(300)를 표현하는 대안적인 방법을 단지 도시한다. 이는 또한 시퀀스-식별 필드(310A)뿐만 아니라 대응 시퀀스-표시자(312A)를 포함한다. 당업자는 도 3A의 데이터 구조를 도시하는 무수한 방법이 존재함을 이해할 것인데, 이는 제한을 의미하는 것이 아니라 여분의 속성을 객체에 연관시키는 구현된 개념을 단지 예시하기 위한 것인데 속성은 변화의 시퀀스에서 인스턴스 객체에 변화가 일어난 시각을 표시한다.
따라서, 일 실시예에서, 본 발명은 객체-속성-기반 프로토콜에서 단조-증가형 속성을 레버리지하여 변화가 생긴 시퀀스를 식별하고, 객체 세트 및/또는 장치 자체와 연관된 벤치마크 표시자를 또한 레버리지하여 그 시퀀스 내 변화가 일어난 위치를 식별한다. 이는 마스터 장치(212)와 마지막으로 통신한 후와 같이, 어떤 이벤트 후에 생성되었거나 변화된 객체의 목록을 검색하는 기능을 제공한다.
본 발명의 많은 장점 중 하나는 슬레이브 장치(210)에 데이터가 저장되는 방법의 구현 디테일에 관하여 높은 유연도를 제공한다는 것이다. 마스터 장치(212)가 탐색하는 대상으로 알려진 필드인, 필드(310A)와 같은 시퀀스-식별 필드를 각각의 객체가 수반하는 방식으로 객체들이 저장되는 한, 많은 선택의 범위(latitude)가 개발자에게 주어질 수 있다. 데이터(예를 들어, 242, 246, 248, 및 250)는 각종 방법으로 저장될 수 있지만, 이는 마스터 장치(212)에 표준 형태로 제시된다. 장치(210)가 변화를 계속 추적하는 방법은 장치마다 다를 수 있고 장치 제조업자에게 일임되어 있다. 이는 실제로는 본 발명의 이익이 된다. 장치가 내부에 데이터를 저장하는 방법에 상관하지 않고 이러한 변화를 추적하는 것을 표현하기 위해 공통 플랫폼을 구축함으로써, 장치 유형과 요청 애플리케이션 간의 일대일 관계가 불필요하고, 독점적인 해결방법이 요구되지 않는다. 따라서, 도 3A 및 도 3B의 예시적인 데이터 구조라고 앞서 지칭되던 것이 경솔하게 예시로 지칭된 것은 아님을 이해하는 것이 중요하다. 그것들은 매우 예시적일 뿐이다. 각종 저장 스킴들이 사용될 수 있지만, 단지 설명을 위해서 단 두 가지 만이 제공된다.
슬레이브 장치(210)가 그것의 데이터를 저장할 수 있는 방법 중 하나에 불과 한 추가적인 디테일은 도 4를 우선 참조하여 제공된다. 도 4의 방법(400)은 장치 또는 데이터 객체의 집합에 관련될 최대-시퀀스-값 표시자가 제공되는 단계(410)를 도시한다. 따라서, 일 실시예에서 최대-시퀀스-값 표시자는 도 2A의 참조부호(248)에 대응하고 데이터 객체의 집합은 참조부호(242)에 대응할 것이다. 최대-시퀀스-값 표시자는 특정 값을 갖는 벤치마크 표시자이다. 최대-시퀀스-값 표시자의 값은 각종 환경에 기초하여 변화할 수 있다. 예를 들면, 일 실시예에서, 마스터 장치(212)와의 통신이 있은 후에 이 값이 갱신될 수 있다. 다른 실시예에서는, 객체의 시퀀스 표시자가 갱신된 후에 이 값이 갱신될 수 있다. 또 다른 실시예에서는, 이 값이 주기적으로 자동 갱신될 수 있다. 설명은 우선 슬레이브 장치(210)의 객에 대해 변화 또는 변화의 세트가 일어난 매 시각마다 최대-시퀀스-값 표시자가 갱신되는 실시예와 관련하여 제공될 것이다.
도 4를 참조하면, 단계(412)에서, 시퀀스-식별 필드를 포함하는 데이터 구조가 각각의 데이터 구조(242)에 제공된다. 따라서, 도 3A에 도시된 포맷의 데이터 구조가 사용될 수 있다. 단계(414)에서, 임의의 객체(242)가 변화했거나 새로 생성되었는지의 여부에 관해 판정이 이루어진다. 본 발명은 기존의 객체들에 대한 변화를 추적할 뿐만 아니라 새로운 객체가 생성된 시각도 추적할 수 있다. 객체에 대한 변화는 그 객체에 연관된 속성에 대한 변화를 포함한다.
객체에 변화가 일어나면, 처리는 대응 객체의 시퀀스-표시자(312)가 최대-시퀀스-값 표시자(248)보다 크도록 설정되는 단계(416)로 이어진다. 당업자는 이하의 청구항의 요지 내에서 의도되는 유사한 기능을 달성하는 적절한 방법을 이해할 것이다. 매우 큰 수로 시작하여 모든 수들이 처음 수에 관하여 감소하는 설명적인 실례들이 이미 설명되었다. 이 실시예에서는, 객체가 변화하거나 생성될 때까지 슬레이브 장치(210)가 대기하는 상태(420)로 처리가 돌아가기 전에 단계(418)에서 최대-시퀀스-값 표시자가 갱신된다.
이제 본 발명의 실시예와 관련된 보다 상세한 설명이 도 5를 참조하여 제공될 것이다. 도 5는 흐름도뿐만 아니라 데이터 객체의 집합의 세 가지 상태 및 식별부호(510, 512, 및 514)에 의해 참조되는 그것들의 대응 객체 시퀀스 표시자(OSI)를 도시한다. 상태들(510, 512, 및 514)은 슬레이브 장치(210)의 객체들의 상이한 상태를 나타낸다. 제1 상태(510)에서, 객체 시퀀스 표시자의 집합은 객체(518)들의 대응 집합에 관련된다.
객체 시퀀스 표시자(516)는 값 "1001", "1002", "1003", 및 "1004"를 갖는다. 범례(520)에 의해 알 수 있는 바와 같이, 객체들 각각은 변화하지 않은 상태에 있다. 단계(522)는 집합(518)의 객체 중 하나에 변화가 일어났음을 표시한다. 이 예시에서는, 객체(524)가 참조부호(526)에 의해 참조되는 상태로 변화했다고 가정하자. 흐름도(500)는 단계(528)에서 변화하지 않은 상태에서 변화된 상태로의 전이가 객체의 대응 객체 시퀀스 표시자를 갱신함으로써 나타난다고 도시하는데, 이는 참조부호(528)로 표시된다. 여기서, 객체(524)의 객체 시퀀스 표시자는 "1002"에서 "1006"으로 갱신된다. 숫자 "1006"은 당시의-현재 최대-시퀀스-값 표시자(530)("1005" 값을 가짐)를 참조하여 객체(526)의 객체 시퀀스 표시자를 최대-시퀀스-값 표시자(530)의 값보다 크게 설정함으로써 선택되었다. 본 발명의 여러 실시예에 기초하여 최대-시퀀스-값 표시자가 갱신되거나 갱신되지 않을 수 있음을 가리키는 결정 단계가 참조부호(532)로 도시된다. 예를 들면, 제1 실시예에서, 최대-시퀀스-값 표시자가 갱신되지 않고, 처리는 객체(526)의 대응 객체 시퀀스 표시자의 갱신 후에 "1005"의 최대-시퀀스-값 표시자 값이 이어진다고 가리키는 플레이스홀더(placeholder) 단계인 단계(534)로 계속될 것이다. 이 경우는 슬레이브 장치(210)가 마스터 장치(212)와 통신한 마지막 시각에, 또한 그것의 최대-시퀀스-값 표시자(530)인 "1005"를 마스터 장치(212)에 전달할 수 있기 때문에, 가능하다.
따라서, 마스터 장치(212)가, 슬레이브 장치(210)와 통신한 마지막 시간 다음에 오는 모든 변화를 발견하기 원하는 경우에, 이는 마스터 장치(212)와 통신한 후에 일어난 모든 변화가 이전 최대-시퀀스-값 표시자(530)보다 큰 시퀀스-표시자로 지정되는 한 그 발견이 가능할 것이다. 이 설명은 이러한 패러다임이 구현자의 요구에 기초하여 가능함을 도시하기 위해 포함된다.
그러나 다른 실시예에서는, 최대-시퀀스-값 표시자가 자동으로 갱신되거나 객체의 객체 시퀀스 표시자의 갱신에 부수적으로 갱신된다. 이러한 경우에, 처리는 최대-시퀀스-값 표시자가, 예를 들면 이른바 둘씩 갱신되는 일 실시예를 도시하는 단계(536)로 이어질 것인데, 여기서 객체의 객체 시퀀스 표시자는 처음의 최대-시퀀스-값 표시자(530)보다 단지 1만큼 더 커지도록 갱신된다. 또한, 상태(514)는 가능하면 1006의 객체 시퀀스 표시자를 갖도록 생성된 새로운 객체(538)를 도시하는데, 이 값은 객체(526)의 값과도 동일하다. 그러나 다른 실시예에서는, 객체(538)의 객체 시퀀스 표시자는 "1006"보다 큰 값을 수용할 것이다. 이 실시예에 서, 최대-시퀀스-값 표시자는 1이 더 증분(increment)되어, 참조부호(540)로 표시된 "1007"의 값을 수용할 것이다. 각 객체의 객체 시퀀스 표시자가 갱신된 후에는 최대-시퀀스-값 표시자가 갱신되지 않은 경우에, 이는 슬레이브 장치(210)가 마스터 장치(212)에 연결될 때에 갱신되어 객체 시퀀스 표시자(516) 중 임의의 것 보다 큰 값이 주어질 것이다.
도 6을 참조하면, 슬레이브 장치(210)가 객체 집합(242)에 관한 정보를 마스터 장치(212)에 노출하는 예시적인 방법이 일반적으로 참조부호(600)로 참조되어 제공된다. 단계(610)에서, 슬레이브 장치(210)는 (예를 들어, 참조부호 214A, 241B, 및 241C로 표시된) 다수의 객체-정보 요청을 예를 들어, 참조부호(234, 236, 및 238)와 같은 다수의 요청 애플리케이션으로부터 수신할 수 있다. 이는 각종 객체의 변화와 관련된 시퀀스 정보와 같은 이러한 정보를 단지 하나의 애플리케이션이 아니라 다수의 애플리케이션에 제공할 수 있는 본 발명의 또 다른 장점이다.
슬레이브 장치(210)가 마스터 장치(212)에 연결된 경우에는, 많은 애플리케이션이 슬레이브 장치(210)와 통신하려고 시도할 수 있다. 예를 들면, 슬레이브 장치(210)가 오디오 재생장치(220)의 형태를 하고 있다면, 각종 판매자에 의해 생성된 각종 오디오-재생 애플리케이션 모두가 마스터 장치(212)에 대한 슬레이브 장치(210)의 연결을 감지하여 장치에 신호를 보내려고(interrogate) 시도할 것이다. 참조부호(241A, 241B, 241C)와 같은 요청은 어쩌면 모든 새로운 컨텐츠를 나열하거나 특정 기준을 충족하는 컨텐츠만을 나열하라는 요청을 위해 슬레이브 장치(210)에 보내질 것이다.
이들 요청을 충족시키기 위해, 단계(612)에서 슬레이브 장치(210)는 적합한 이전 최대-시퀀스-값 표시자를 결정할 것이다. 예를 들면, 슬레이브 장치(210)가 애플리케이션(234)으로부터 요청을 수신하면, 이는 참조부호(234A)로 표시된 최대-시퀀스-값 표시자가 애플리케이션(234)과 연관된 올바른 최대-시퀀스-값 표시자라고 판정할 것이다. 유사하게는, 요청(241B)이 애플리케이션(236)으로부터 비롯한 경우에는, 애플리케이션(236)이 논리를 제공하여 슬레이브 장치(210)는 최대-시퀀스-값 표시자(236A)가 올바른 최대-시퀀스-값 표시자임을 알게 될 것이다.
단계(614)에서, 슬레이브 장치(210)는 (242 또는 246과 같은) 객체 집합의 시퀀스-표시자와 함께 요청 애플리케이션의 최대-시퀀스-값 표시자를 사용하여 각 요청을 만족시킨다. 예를 들면, 요청 애플리케이션(238)이 집합(246)에서 새로운 모든 이들 객체를 나열하라는 요청(241C)을 슬레이브 장치(210)에 보낸 경우에, 슬레이브 장치(210)는 최대-시퀀스-값 표시자(238A)의 시퀀스 표시자보다 큰 시퀀스 표지사를 갖는 이들 객체에 연관하여 각 객체(246)의 시퀀스-식별 필드(310)와 패스 백 정보(243C)를 비교할 것이다. 애플리케이션(238)은 "973"의 최대-시퀀스-값 표시자를 갖는 사진촬영 애플리케이션일 수 있다. 슬레이브 장치(210)가 카메라이고 참조부호(246)로 표시된 집합을 형성하는 몇천 개 사진을 가졌지만, 이미지들 중 단 두 개만 "973"보다 큰 객체 시퀀스 표시자를 갖는 경우에는, 이들 두 사진과만 연관된 정보가 장치(212)의 요청 애플리케이션(238)에 보내질 것이다.
유사하게는, 애플리케이션(238)이 어떤 이벤트 전이나 후에 삭제된 모든 객체들의 표시자를 요청한 경우에는, 슬레이브 장치(210)가 그것의 삭제 로그(264)를 참조하여 이러한 요청을 만족할 수 있다. 다른 예에서는, 객체의 실제 바이너리 파일 또는 미디어 페이로드(326)가 변했는지의 여부만을 인지하도록 애플리케이션이 요청할 수 있다. 이러한 경우에는, 슬레이브 장치(210)가 각종 객체들의 페이로드-변화 표시자(322)를 참조하여 어떤 객체의 미디어 페이로드가 변화했는지를 빠르게 표시할 수 있다.
앞에서 언급한 바와 같이, 슬레이브 장치(210)에 정보를 저장하는 양태에 관련하는 하위-레벨 디테일은 바뀔 수 있어서, 정보가 저장되는 방법을 하위-레벨 서술할 수 있고 심지어는 마스터 장치(212)에 제시될 수 있다. 예를 들면, 일 실시예에서는, 매 시각에 객체에 변화가 일어나고, 그 객체의 대응 객체 시퀀스 표시자가 갱신되고, 그 객체의 표시자(316)가 로그에 추가될 수 있는데, 이 로그는 요청 애플리케이션의 정보에 관한 요청을 만족하는 빠른 참조의 역할을 한다. 다른 실시예에서는, 요청을 수신하는 것에 부수하는(incident) 데이터에서 쿼리들이 수행될 수 있다. 이 실시예에서는, 요청 애플리케이션이 예를 들어, 어떤 수보다 큰 시퀀스 표시자를 갖는 모든 데이터 객체들을 요청하면, 메타데이터(314, 310, 322)는 제공된 기준에 기초하여 빠르게 쿼리될 수 있다. 보다 더 중요한 점은 객체-기반 프로토콜에 관련하여 데이터 구조가 제공되므로 시퀀스-식별 필드(310)가 객체와 관련되어 그 객체에서의 변화에 부수하여 상주하므로 이러한 객체의 타이밍은 적어도 벤치마크 표시자에 따라 결정될 수 있거나, 다른 실시예에서는 다른 객체들에 생긴 변화에 따라 결정된다는 것이다.
도 7을 참조하면, 마스터 장치가 슬레이브 장치(210)에 저장된 객체들에 관 한 정보를 수신하는 방법을 수행할 수 있는 예시적인 방법으로서 흐름(700)이 제공된다. 단계(710)에서, 마스터 장치(212)는 슬레이브 장치(210)가 마스터 장치(212)에 연결되었다는 표식을 수신한다. 단계(712)에서, 마스터 장치(212)는 저장소에서 이전 최대-시퀀스-값 표시자를 검색하는데 이는 특정한 애플리케이션과 연관된, 애플리케이션 전용일 수 있다. 따라서, 애플리케이션(234)이 관련 애플리케이션이면, 이는 최대-시퀀스-값 표시자(234A)를 수신할 것이다. 유사하게는, 애플리케이션(236)이 최대-시퀀스-값 표시자(236A)를 검색할 수 있다. 애플리케이션(238)에서도 애플리케이션(236)과 동일하다.
앞서 언급된 바와 같이, 마스터 장치(212), 또는 특히 애플리케이션(234)와 같은 애플리케이션은 두 개의 벤치마크 표시자(전 벤치마크 표시자 및 현재 벤치마크 표시자)를 참조할 수 있다. 이러한 스킴에서는, 이전 최대-시퀀스-값 표시자는, 현재의 최대-시퀀스-값 표시자가 장치의 최대-시퀀스-값 표시자의 현재 값을 수신할 동안에 슬레이브 장치(210)의 객체의 객체 시퀀스 표시자를 테스트할 벤치마크로서 사용될 것이다. 이 양태는 도 8을 잠조하여 보다 상세히 설명될 것이다.
단계(714)에서, 마스터 장치(212)는 슬레이브 장치(210)로부터 정보(243A)와 같은 정보를 수신할 것이다. 정보는 예를 들어, 객체 시퀀스 표시자 및 검색된 최대-시퀀스-값 표시자에 기초하는 집합(242)의 특정 데이터 객체에 관련할 것이다. 또한, 어쩌면 요청 애플리케이션(234)은 예를 들어 모든 새로운 사진을 단순히 요청한다. 이 경우에는, 요청 애플리케이션(234)이 슬레이브 장치(210)에 이전 최대-시퀀스-값 표시자(234A)를 패스할 것인데, 슬레이브 장치(210)는 객체 집합(242) 의 객체 시퀀스 표시자들을 비교하고 이들 객체들과만 연관된 정보(243A)를 반환할 것이다. 정보(234A)는 객체들(242) 또는 그것들의 부분집합에 대한 핸들, 또는 이들 객체들이나 이들 객체에 연관된 메타데이터의 일부에 대한 기타 참조를 포함할 수 있다. 마스터 장치(212)가 요청하고, 슬레이브 장치(210)에 의해 검색가능한 것은 무엇이든지, 정보(243A)의 범위 내에 포함된다.
이러한 정보를 수신하면, 단계(716)에서 마스터 장치(212)가 결정된 객체들에 관련하여 원하는 어떤 동작이건 수행할 수 있다. 예시적인 동작들로는 취득(acquisition), 위치지정(placement), 및 변경-삭제 동작이 포함될 수 있다. 마스터 장치(212)는 정보(243A)에 표시된 객체들의 사본을 수신하기 원할 수 있다. 마스터 장치(212)는 객체들의 집합을 삭제하기 원할 수 있다. 무수한 예시들이 여기에 포함될 수 있고 전부 포함시키는 것이 실용적이지는 않지만, 당업자는 시퀀스 기준을 만족시키는 데이터(300)가 존재한다면 그 시퀀스 기준에 기초하여 객체 집합(242)의 특정 객체에 연관된 정보(234A)를 애플리케이션(234)이 수신할 수 있는 경우에, 많은 가능성이 적용될 수 있음을 쉽게 이해할 것이다. 단계(718)에서, 마스터 장치(212)는 슬레이브 장치의 현재의 최대-시퀀스-값 표시자(248)를 수신하는데, 이는 이제 이전 최대-시퀀스-값 표시자로서 저장될 것이다. 따라서, 단계(720)에서, 이전 최대-시퀀스-값 표시자는 장치의 현재의 최대-시퀀스-값 표시자에 기초하여 갱신된다.
마지막 설명적인 실례가 이제 본 발명의 각종 양태들을 포함하는 도 8A 및 8B를 참조하여 제공될 것이다. 이 예시의 목적을 위해, 요청 애플리케이션은 참조 부호(234)로 가정되고 적용가능한 데이터집합은 데이터(242)가 될 터인데, 이는 최대-시퀀스-값 표시자(248)와 연관된다. 특정 예시들이 또한 도 8A 자체에 제공되고, 이들은 도 8A 및/또는 도 8B에 나타낸 새로운 참조부호로 참조될 것이다. 도 8A를 우선 참조하면, 단계(810)에서, 슬레이브 장치(210)가 마스터 장치(212)에 연결되어 있다. 상태(812)는 각자의 객체 시퀀스 표시자(816)를 갖는 객체(814)의 예시적인 상태를 나타낸다. 도시된 대로, 객체(814)는 각각이 대응 객체 시퀀스 표시자를 갖는, 세 개의 사진을 포함하고, "00151"의 장치 최대-시퀀스-값 표시자(818)를 더 포함한다. 단계(820)에서는, 마스터 장치(212)가 그것의 이전 최대-시퀀스-값 표시자(예를 들어 참조부호(248)로 나타냄)를 참조하는데, 이는 예시적인 값, 즉, "00145"를 갖는다. 몇몇 실시예에서는, 하나 이상의 장치 최대-시퀀스-값 표시자는 이 시점(point)에서 갱신될 수 있다. 다른 실시예에서 마스터 장치는 단지 단일의 벤치마크 표시자를 추적만 할 수도 있다. 이러한 실시예에서, 마스터 장치의 단일의 최대-시퀀스-값 표시자는 슬레이브 장치(210)와의 통신 세션 후에 갱신될 것이다. 그러나 이 실시예에서, 슬레이브 장치(210)의 최대-시퀀스-값 표시자(818)는 현재의 최대-시퀀스-값 식별 필드(824)에서 유지된다. 앞서 언급한 바와 같이, 장치(234)의 이전 최대-시퀀스-값 표시자 값(238)은 "00145"이다. 단계(828)에서, 마스터 장치(212)는, 사진 0049 내지 0051의 각각의 객체 시퀀스 표시자(830)가 마스터 장치의 이전 최대-시퀀스-값 표시자인 "00145"보다 크기 때문에, 사진 0049 내지 0051이 관련된 것(relevant)으로 판정한다.
단계(832)에서, 사용자가 사진 모두를 복사하면서도 그것들을 또한 장치에 남겨두는 쪽을 선택한다. 단계(832)에서 사진들은 또한 마스터 장치(212)에 복사된다. 이는 단계(834)에서 마스터 장치(212)의 하나 이상의 최대-시퀀스-값 표시자(들)이 갱신될 수 있는 하나의 예시적인 시점이다. 도시된 바와 같이, 이전 최대-시퀀스-값 식별 필드(836)는 이제 "00151"의 값을 갖는데, 이는 현재의 최대-시퀀스-값 표시자로 사용되고 또한 슬레이브 장치(210)의 벤치마크 표시자(248)이다. 단계(838)에서, 사용자가 장치를 연결해제하여 3 장의 사진을 더 찍는다. 객체 및 그것들의 대응 객체 시퀀스 표시자(840)의 상태는 상태(842)로 표현된다. 알 수 있는 바와 같이, 새로운 사진들(844)은 장치의 이전 최대-시퀀스-값 표시자(818)보다 큰 대응 객체 시퀀스 표시자(846)를 갖는다. 이 경우에는, 새로운 사진들은 "00152", "00154", 및 "00156"의 객체 시퀀스 표시자를 갖는다. 상태(842)에 의해 도시된 바와 같이, 슬레이브 장치(210)의 장치 최대-시퀀스-값 표시자는 "00157"의 값으로 갱신되었다.
도 8B로 계속하면, 단계(848)에서 사용자가 마스터 장치(212)에 재연결한다고 가정하자. 일 실시예에서는, 슬레이브 장치(210)의 최대-시퀀스-값 표시자가 상태(852)에서 참조부호(850)로 표시되어 유지되어 있다. 각각의 요청 애플리케이션에 연관된 이전 최대-시퀀스-값 표시자는 "00151"로 남아 있다. 단계(854)에서, 숫자 0052 내지 0054를 갖는 것으로 명시된 사진들(844)은, 그것들 각자의 객체 시퀀스 표시자들(846)이 마스터 장치의 이전 최대-시퀀스-값 표시자인 "00151"보다 크기 때문에, 관련 있는 것으로 인식된다. 단계(856)에서, 동작들은 원한다면, 관련 객체에서만 선택적으로 수행될 수 있다. 단계(858)에서, 마스터 장치(212)의 이전 최대-시퀀스-값 표시자는 슬레이브 장치(210)의 이전 최대-시퀀스-값 표시자, 즉, "00157"로 갱신된다. 단계(860)에서, 사용자가 연결해제한 후에 pic_0050의 해상도를 바꾼다고 가정하자. 상태(862)에 의해 표시된 바와 같이, pic_0050(864)의 객체 시퀀스 표시자는 장치의 현재의 최대-시퀀스-값 표시자(850)보다 큰 값, 즉 "00157"을 갖도록 갱신된다. 슬레이브 장치(210)의 최대-시퀀스-값 표시자는 참조부호(866)로 표시된 값 "00159"으로 갱신된다. 단계(868)는 재연결하면, pic_0050이 "00156"의 이전 최대-시퀀스-값 표시자보다 큰 대응 객체 시퀀스 표시자를 갖기 때문에 pic_0050가 관련 있다고 인식될 것임을 표시한다. 마스터 장치는 슬레이브 장치의 최대-시퀀스-값 표시자인 "00159"를 저장할 것이다.
소정의 벤치마크 값보다 큰 값을 갖는 객체는 무엇인지를 결정하는 분석을 수행하는 참조가 본원에서 생겨났다. 물론, 그 값 이상이 값은 무엇인지, 또는 다른 변형에 기초하여 분석이 수행될 수도 있다. 그러나, 모든 경우에서, 소정의 벤치마크 값은 시퀀스-식별 값의 집합에 관련되어 사용된다. 분명히, 이들 값이 사용되는 방법은 바뀔 수 있지만, 그것들을 활용하는 것은 이하의 청구항의 범위 내에 포함된다. 일부 실시예에서는, 최대-시퀀스-값 표시자가 자신의 일치(accord)를 자동으로 그리고 변화에 의존하지 않고 증가시킬 수 있다.
상술한 예시 중 일부는 마스터 장치(212)가 되는 컴퓨팅 장치의 문맥에서 제공되었다. 그러나 앞서 간략하게 언급된 바와 같이, 마스터 장치는 컴퓨터에 제한되지는 않는다. 본 발명의 실시예들은 표준 포맷으로 시퀀스-표시자에 의해 변화가 붙어다니는(tagged) 임의의 환경에 적용가능하고, 이들 시퀀스-표시자들은 벤치 마크 표시자에 비교되어 관련 있는 객체들을 결정한다.
도시된 각종 컴포넌트의 많은 상이한 배치들과 마찬가지로, 도시되지 않은 컴포넌트들도, 본 발명의 사상 및 요지로부터 일탈함이 없이 가능하다. 본 발명의 실시예들은 제한이 아니라 예시를 위해 설명되었다. 대안적인 실시예들이 그 요지로부터 일탈함이 없이 당업자에게 이해될 것이다. 당업자는 본 발명의 요지로부터 일탈함이 없이 상술한 진보성을 구현하는 대안적인 수단을 개발할 수 있다. 예를 들면, 최대-시퀀스-값 표시자의 현재 값 이전 값은 마스터 장치, 슬레이브 장치, 또는 그것들의 조합에 유지될 수 있다. 또한 최대-시퀀스-값 표시자는 최대 객체 시퀀스 식별자(또는 그것들의 범위로서, 예를 들면 "X보다 작은 최대 객체 시퀀스 식별자")를 결정하는 데 사용될 수 있지만, 그것 자체가 모든 객체 시퀀스 식별자보다 클 필요는 없다. 보다 중요한 것은 이것이 다음번의 올바른 객체 시퀀스 식별자를 결정하는 데 활용된다는 것이다.
특정한 특징들 및 하위조합(subcombinations)이 쓸모 있고 다른 특징들 및 하위조합에 대한 참조가 없이 사용될 수 있어 청구항의 요지 내에 포함된다는 것이 이해될 것이다. 각종 도면에서 나열된 모든 단계들이 설명된 지정 순서로 수행될 필요는 없다.

Claims (20)

  1. 마스터 장치(212)와 슬레이브 장치(210) 간의 통신을 위한 객체-기반 프로토콜을 활용하는 방법(700)으로서,
    상기 슬레이브 장치와의 통신 링크를 용이하게 하는 단계 - 상기 슬레이브 장치는, (1) 대응 객체 시퀀스 표시자의 집합(312, 830, 846)에 각기 연관된 하나 이상의 객체(242, 246); 및 (2) 상기 슬레이브 장치상에서 가장 큰 객체 시퀀스 표시자를 표시하는 현재의 최대-시퀀스-값 표시자(248, 250)를 포함함 -;
    상기 슬레이브 장치(210)가 상기 마스터 장치(212)와 이전에 통신한(communicated) 때를 표시하는, 이전 최대-시퀀스-값 표시자(former maximum-sequence-value indicator)에 기초하여 슬레이브 장치(210)의 객체에 관한 정보에 대한 요청을 전달하는(communicating) 단계;
    상기 이전 최대-시퀀스-값 표시자(826) 및 상기 객체 시퀀스 표시자들(312, 830, 846)에 기초하여 상기 요청을 만족하는 객체에 관한 정보(243A, 243B, 243C)를 수신하는 단계
    를 포함하는 객체-기반 프로토콜 활용 방법.
  2. 제1항에 있어서, 상기 마스터 장치는 컴퓨팅 장치를 포함하고 상기 슬레이브 장치는 미디어-재생 장치를 포함하는 객체-기반 프로토콜 활용 방법.
  3. 제2항에 있어서, 상기 미디어-재생 장치는 오디오 파일, 비디오 파일, 또는 데이터 파일 중 하나 이상을 재생하는 장치인 객체-기반 프로토콜 활용 방법.
  4. 제1항에 있어서, 상기 객체 시퀀스 표시자는, 임의의 두 값에 대하여 나중 값이 적어도 앞의 값만큼 극값(at least as extreme as a preceding value)인 값들로 이루어진 집합 내의 값인, 객체-기반 프로토콜 활용 방법.
  5. 제4항에 있어서, 상기 객체 시퀀스 표시자와 관련하여 상기 이전 최대-시퀀스-값 표시자를 활용하는 것은 그 대응하는 객체 시퀀스 표시자가 상기 이전 최대-시퀀스-값 표시자를 초과하는 제1 객체 집합을 판정하는 단계를 포함하는 객체-기반 프로토콜 활용 방법.
  6. 제4항에 있어서,
    상기 제1 객체 집합에 대한 참조를 상기 마스터 장치에 전달하는 단계; 또는
    상기 제1 객체 집합을 상기 마스터 장치에 전달하는 단계
    중 하나 이상을 더 포함하는 객체-기반 프로토콜 활용 방법.
  7. 제1항에 있어서, 상기 이전 최대-시퀀스-값 표시자는 상기 마스터 장치에 의해 제공되는 객체-기반 프로토콜 활용 방법.
  8. 제7항에 있어서, 상기 슬레이브 장치로부터 그것의 현재의 최대-시퀀스-값 표시자를 수신하여 이것을 상기 이전 최대-시퀀스-값 표시자로서 저장하는 단계를 더 포함하는 객체-기반 프로토콜 활용 방법.
  9. 제1항에 있어서, 상기 마스터 장치에서 삭제된 객체들의 집합을 식별하는 단계를 더 포함하는 객체-기반 프로토콜 활용 방법.
  10. 하나 이상의 데이터 객체의 집합(242), 각 데이터 객체에 각기 연관된 데이터 구조(300), 및 상기 하나 이상의 데이터 객체의 집합(242)에 연관된 최대-시퀀스-값 표시자(248)를 내부에 포함하여, 상기 데이터 객체(들)에 관한 정보를 제시하는 것을 돕는 하나 이상의 실체적인(tangible) 기계-판독가능 매체(211A, 211B)로서, 상기 데이터 구조(300)는,
    제1 데이터 객체에 연관된 제1 속성 집합(314); 및
    상기 제1 데이터 객체에 또한 해당하고 상기 최대-시퀀스-값 표시자(248)에 관련하여 상기 제1 데이터 객체에 변화가 일어난 때를 표시하는 객체 시퀀스 표시자(312)가 파퓰레이트 되어 있는 시퀀스-식별 필드(310)
    를 포함하고, 상기 변화는 새로운 데이터 객체의 생성을 포함하는 실체적인 기계-판독가능 매체.
  11. 제10항에 있어서, 상기 최대-시퀀스-값 표시자는 상기 데이터 구조(들)의 상 기 객체 시퀀스 표시자들 중 임의의 표시자만큼 적어도 극값이 되도록(at least as extreme as any of the object sequence indicators of the structure(s)) 갱신되는 실체적인 기계-판독가능 매체.
  12. 제10항에 있어서, 상기 데이터 객체에 대해 일어나는 상기 변화는 상기 객체와 연관된 속성에 대한 변화를 포함하는 실체적인 기계-판독가능 매체.
  13. 제10항에 있어서, 적어도 상기 최대-시퀀스-값 표시자에 관련하여 객체가 삭제된 때를 표시하는 대응 객체 시퀀스 표시자들을 포함하는 삭제된 객체들의 표시자들을 더 포함하는 실체적인 기계-판독가능 매체.
  14. 제10항의 데이터 구조를 활용하는 단계를 포함하는 슬레이브 장치의 새로 생성된 객체들, 변경된 객체들, 또는 삭제된 객체들 중 하나 이상을 식별하는 방법.
  15. 슬레이브 장치(210)에 의해 처리되는 경우에 이 장치로 하여금 마스터 장치(212)에서 실행하는 하나 이상의 요청 애플리케이션(234, 236, 238)에 데이터 객체들의 집합(242)에 관한 정보(243A, 243B, 243C)를 노출(exposing)하는 방법(400)을 수행하게 하는 기계-판독가능 명령어들의 집합을 내부에 포함하고 있는 하나 이상의 실체적인 기계-판독가능 매체(211A, 211B)로서, 상기 노출하는 방법은,
    상기 요청 애플리케이션(234, 236, 238)으로부터 복수의 독립적 객체-정보 요청(241A, 241B, 241C)을 수신하는 단계 - 상기 객체-정보 요청 각각은 상기 데이터 객체들의 집합(242)의 상기 데이터 객체들의 적어도 일부에 관한 정보를 요청함 - ;
    상기 슬레이브 장치(210)가 각자의 요청 애플리케이션(234, 236, 또는 238)과 마지막으로 통신한 때를 표시하는 각자의 이전 최대-시퀀스-값 표시자(248)를 각각의 요청(241A, 241B, 241C)으로부터 식별하는 단계; 및
    상기 복수의 객체-정보 요청(241A, 241B, 241C)을 만족하도록 상기 각자의 이전 최대-시퀀스-값 표시자(248)와 관련하여 이전에 저장된 객체 시퀀스 표시자(516)를 활용하여 각각의 요청 애플리케이션으로 하여금 상기 최대-시퀀스-값 표시자(248)에 관련하여 그 대응 객체 시퀀스 표시자가 기준을 만족하는 데이터 객체들에 대해서만 정보(243A, 243B, 243C)를 수신하게 하는 단계
    를 포함하는 실체적인 기계-판독가능 매체.
  16. 제15항에 있어서, 상기 객체 시퀀스 표시자는 단조 증가하는 값들의 집합 내의 값인 실체적인 기계-판독가능 매체.
  17. 제16항에 있어서, 상기 객체 시퀀스 표시자는 다른 데이터 객체들의 변화에 관련하여 상기 변화가 일어난 때를 표시하는 실체적인 기계-판독가능 매체.
  18. 제16항에 있어서, 상기 객체 시퀀스 표시자는 타임스탬프가 고유한 시퀀스 위치를 표시하지 않을 때에라도, 다른 데이터 객체들의 변화에 관련하여 상기 변화가 일어난 때를 표시하는 실체적인 기계-판독가능 매체.
  19. 제15항에 있어서, 상기 기계-판독가능 명령어들은 삭제된 객체들뿐만 아니라 상기 이전 최대-시퀀스-값 표시자에 관련하여 상기 삭제된 객체들이 삭제된 때를 식별하는 명령어들을 더 포함하는 실체적인 기계-판독가능 매체.
  20. 제15항에 있어서, 상기 기계-판독가능 명령어들은 데이터 객체들의 적어도 일부에 대한 하나 이상의 참조를 상기 슬레이브 장치에서 상지 마스터 장치에 전달하는 명령어들을 더 포함하는 실체적인 기계-판독가능 매체.
KR1020087021621A 2006-03-03 2008-09-03 미디어-장치 컨텐츠에 대한 변화를 식별하기 위한 객체-기반 프로토콜 활용 방법 및 실체적인 기계-판독가능 매체 KR101467583B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/368,145 US8769033B2 (en) 2006-03-03 2006-03-03 Identifying changes to media-device contents
US11/368,145 2006-03-03
PCT/US2007/002092 WO2007106234A1 (en) 2006-03-03 2007-01-23 Identifying changes to media-device contents

Publications (2)

Publication Number Publication Date
KR20080106534A true KR20080106534A (ko) 2008-12-08
KR101467583B1 KR101467583B1 (ko) 2014-12-10

Family

ID=38472645

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087021621A KR101467583B1 (ko) 2006-03-03 2008-09-03 미디어-장치 컨텐츠에 대한 변화를 식별하기 위한 객체-기반 프로토콜 활용 방법 및 실체적인 기계-판독가능 매체

Country Status (7)

Country Link
US (1) US8769033B2 (ko)
EP (1) EP1997013B1 (ko)
JP (1) JP5149815B2 (ko)
KR (1) KR101467583B1 (ko)
CN (1) CN101395591B (ko)
TW (1) TWI477990B (ko)
WO (1) WO2007106234A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7945734B2 (en) * 2007-08-10 2011-05-17 Eastman Kodak Company Removable storage device with code to allow change detection
JP4944176B2 (ja) * 2009-09-24 2012-05-30 株式会社バッファロー ローカルサーバ及びコンテンツリスト更新方法
US8832341B2 (en) 2011-09-27 2014-09-09 International Business Machines Corporation Dynamically determining a primary or slave assignment based on receiving a power signal from the cable at the port of a device
JP5890674B2 (ja) * 2011-12-07 2016-03-22 キヤノン株式会社 情報処理装置、情報処理方法
US10521449B1 (en) * 2014-12-17 2019-12-31 Amazon Technologies, Inc. Cross-region replication architecture
CN114077448A (zh) * 2020-08-11 2022-02-22 深圳云天励飞技术股份有限公司 数据管理方法及相关设备

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5710922A (en) * 1993-06-02 1998-01-20 Apple Computer, Inc. Method for synchronizing and archiving information between computer systems
US5966714A (en) * 1995-04-28 1999-10-12 Intel Corporation Method and apparatus for scaling large electronic mail databases for devices with limited storage
US5661665A (en) * 1996-06-26 1997-08-26 Microsoft Corporation Multi-media synchronization
US5974238A (en) * 1996-08-07 1999-10-26 Compaq Computer Corporation Automatic data synchronization between a handheld and a host computer using pseudo cache including tags and logical data elements
JP3042600B2 (ja) 1996-08-22 2000-05-15 日本電気株式会社 分散ファイルの同期方式
AU731871B2 (en) 1996-11-04 2001-04-05 Sun Microsystems, Inc. Method and apparatus for thread synchronization in object-based systems
US6052735A (en) * 1997-10-24 2000-04-18 Microsoft Corporation Electronic mail object synchronization between a desktop computer and mobile device
US6449622B1 (en) * 1999-03-08 2002-09-10 Starfish Software, Inc. System and methods for synchronizing datasets when dataset changes may be received out of order
US6694335B1 (en) * 1999-10-04 2004-02-17 Microsoft Corporation Method, computer readable medium, and system for monitoring the state of a collection of resources
KR100379457B1 (ko) 1999-10-08 2003-04-10 엘지전자 주식회사 개인 정보 관리 방법
JP3963417B2 (ja) * 1999-11-19 2007-08-22 株式会社東芝 データ同期処理のための通信方法および電子機器
US6643652B2 (en) * 2000-01-14 2003-11-04 Saba Software, Inc. Method and apparatus for managing data exchange among systems in a network
US6671757B1 (en) * 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US6928467B2 (en) * 2000-02-02 2005-08-09 Inno Path Software, Inc. Apparatus and methods for providing data synchronization by facilitating data synchronization system design
US20010041021A1 (en) * 2000-02-04 2001-11-15 Boyle Dennis J. System and method for synchronization of image data between a handheld device and a computer
US6820088B1 (en) * 2000-04-10 2004-11-16 Research In Motion Limited System and method for synchronizing data records between multiple databases
JP4568954B2 (ja) 2000-04-26 2010-10-27 株式会社ニコン データファイル管理用記録媒体、データファイル管理装置、画像データの伝送方法およびデータの伝送方法
KR20020003674A (ko) 2000-06-24 2002-01-15 정승채 데이타 동기화 시스템 및 그 방법
US6832373B2 (en) * 2000-11-17 2004-12-14 Bitfone Corporation System and method for updating and distributing information
US6931454B2 (en) * 2000-12-29 2005-08-16 Intel Corporation Method and apparatus for adaptive synchronization of network devices
US20040058710A1 (en) * 2001-05-25 2004-03-25 Timmins Timothy A. Technique for synchronizing data in user devices through an information service
US7668535B2 (en) * 2001-07-09 2010-02-23 Palm, Inc. Notification infrastructure for sending device-specific wireless notifications
US7243163B1 (en) * 2001-08-07 2007-07-10 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a messaging system
US7149813B2 (en) * 2001-08-14 2006-12-12 Microsoft Corporation Method and system for synchronizing mobile devices
JP4204977B2 (ja) * 2001-10-22 2009-01-07 アップル インコーポレイテッド メディアプレーヤーのためのインテリジェントなシンクロ操作
US7032033B1 (en) * 2001-11-30 2006-04-18 Microsoft Corporation Handling collisions during synchronization of data between client and server computers
US20030112849A1 (en) * 2001-12-18 2003-06-19 Gorday Paul Edward Efficient quadrature code position modulation
US6882993B1 (en) * 2002-01-28 2005-04-19 Oracle International Corporation Incremental refresh of materialized views with joins and aggregates after arbitrary DML operations to multiple tables
WO2003083667A1 (en) 2002-03-29 2003-10-09 Good Technology, Inc. System and method for full wireless synchronization of a data processing apparatus with a data service
US7155464B2 (en) * 2002-03-29 2006-12-26 Panasas, Inc. Recovering and checking large file systems in an object-based data storage system
AU2003255972A1 (en) * 2002-09-03 2004-03-29 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
SE525748C2 (sv) * 2002-10-28 2005-04-19 Devlabs Ab Förfarande för direkta utskrifter i nätverk
US6996818B2 (en) * 2002-11-22 2006-02-07 Bitfone Corporation Update system for facilitating software update and data conversion in an electronic device
US7177918B2 (en) * 2002-12-20 2007-02-13 International Business Machines Corporation Method and system for efficiently processing multiframe data in a client/server computing environment
US7673020B2 (en) * 2003-05-02 2010-03-02 Microsoft Corporation System and method for facilitating communication between a computing device and multiple categories of media devices
US7610387B1 (en) * 2003-11-12 2009-10-27 Cisco Technology, Inc. Method and apparatus for providing sticky bindings using version vectors
KR100547896B1 (ko) * 2004-03-05 2006-01-31 삼성전자주식회사 데이터 동기화 시스템 및 서버와 클라이언트의 데이터동기화 방법
US20050203905A1 (en) * 2004-03-12 2005-09-15 Samsung Electronics Co., Ltd. Method of synchronizing data between server and user terminal using messenger service system and system using the same
US8209537B2 (en) * 2004-03-30 2012-06-26 Hewlett-Packard Development Company, L.P. Secure information distribution between nodes (network devices)
US20060003806A1 (en) * 2004-07-02 2006-01-05 Sbc Knowledge Ventures, L.P. Phone synchronization device and method of handling personal information
US7539889B2 (en) * 2005-12-30 2009-05-26 Avega Systems Pty Ltd Media data synchronization in a wireless network
US9058372B2 (en) * 2006-08-23 2015-06-16 Kyocera Corporation Database management in a wireless communication system

Also Published As

Publication number Publication date
EP1997013A4 (en) 2016-06-08
US8769033B2 (en) 2014-07-01
US20070208818A1 (en) 2007-09-06
EP1997013A1 (en) 2008-12-03
TWI477990B (zh) 2015-03-21
KR101467583B1 (ko) 2014-12-10
JP2009528617A (ja) 2009-08-06
CN101395591B (zh) 2011-11-16
CN101395591A (zh) 2009-03-25
TW200817940A (en) 2008-04-16
EP1997013B1 (en) 2019-01-09
JP5149815B2 (ja) 2013-02-20
WO2007106234A1 (en) 2007-09-20

Similar Documents

Publication Publication Date Title
CN101385017B (zh) 部分项改变跟踪和同步
US10291704B2 (en) Networked solutions integration using a cloud business object broker
US7890646B2 (en) Synchronization orchestration
US20160028811A1 (en) System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
US7945535B2 (en) Automatic publishing of digital content
US20110264692A1 (en) System for searching property listings based on location
US20090030952A1 (en) Global asset management
KR20070084302A (ko) 범용 데이터 동기화를 위한 시스템 및 방법
US8255360B1 (en) Synchronization of database changes among multiple devices
US20070174246A1 (en) Multiple client search method and system
US20010041021A1 (en) System and method for synchronization of image data between a handheld device and a computer
US20070250645A1 (en) Mobile phone data backup system
KR101467583B1 (ko) 미디어-장치 컨텐츠에 대한 변화를 식별하기 위한 객체-기반 프로토콜 활용 방법 및 실체적인 기계-판독가능 매체
CN102932523A (zh) 实施于通讯装置的媒体内容管理系统与方法
US20150032785A1 (en) Non-transitory computer-readable media storing file management program, file management apparatus, and file management method
CN107766488B (zh) 一种信息查询方法、终端、计算机可读存储介质
US20080294701A1 (en) Item-set knowledge for partial replica synchronization
US20070116047A1 (en) Method and apparatus for supporting multi-object transport protocols
US10664494B2 (en) Method and system for synchronously storing multi-modal information of portable endoscope
US20190317866A1 (en) Database restoration across cloud environments
WO2024012567A1 (zh) 系统集成方法、装置及电子设备
US20180336196A1 (en) Request-Driven File Pulling From Unsynchronized Directories
CN103782277B (zh) 用于管理便携式计算装置上的平行资源请求的方法及系统
CN116701526A (zh) 数据同步的方法及电子设备
CN114722020A (zh) 信息获取方法、设备、介质、产品及系统

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191029

Year of fee payment: 6