JP5149815B2 - メディア装置コンテンツの変更の識別 - Google Patents

メディア装置コンテンツの変更の識別 Download PDF

Info

Publication number
JP5149815B2
JP5149815B2 JP2008557262A JP2008557262A JP5149815B2 JP 5149815 B2 JP5149815 B2 JP 5149815B2 JP 2008557262 A JP2008557262 A JP 2008557262A JP 2008557262 A JP2008557262 A JP 2008557262A JP 5149815 B2 JP5149815 B2 JP 5149815B2
Authority
JP
Japan
Prior art keywords
indicator
sequence
slave device
objects
master device
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP2008557262A
Other languages
English (en)
Other versions
JP2009528617A (ja
Inventor
マンダース,ブレイク・ディー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2009528617A publication Critical patent/JP2009528617A/ja
Application granted granted Critical
Publication of JP5149815B2 publication Critical patent/JP5149815B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

デジタルカメラ、パーソナルメディアプレーヤ、携帯電話、及び他の装置は、世界中でますます普及し続けている。ユーザは写真を撮り、音楽を聴き、ビデオを見る等、多くの場合、データをそれらの装置とコンピュータのような他の装置との間で共有する。例えば、音楽ファイルをまずコンピュータにダウンロードし、次いで携帯音楽プレーヤに転送することができる。デジタル写真を撮影し、次いでコンピューティング装置に転送することができる。解決されずに残っている重要な問題は、所与の装置のデータの変更を効率的且つユーザに望ましい方法で識別することである。
2つの説明のための例、すなわちデジタルカメラ及びデジタル音楽プレーヤを考える。デジタルカメラの場合、ユーザは数十枚又は数百枚の写真を撮影することができるが、すでに前の写真のセットをアップロードした後、一部のみをコンピュータにアップロードしたいことがある。又は、携帯音楽プレーヤの場合、そのコンテンツが操作されることがあり、行われる変更が何であれ、その変更をコンピュータ上で複製することが望ましいことがある。少なくとも2つの環境、すなわち電子装置の記憶容量の大幅な増大及び1つの装置が多くの開始アプリケーションと通信する必要性がこの問題を難しくしている。
携帯音楽プレーヤ及び他の装置は、日常的に数ギガバイトの情報を記憶しており、記憶容量は疑う余地なく引き続き増大していく。歴史的に、記憶容量が二次式的に増大してきたのに対して、転送速度は線形的に増大してきた。電子装置に記憶されている数十ギガバイトのデータについての情報の伝達は、数メガバイトのデータについての情報の伝達よりもはるかに困難である。現在、これが対処されている1つの方法は、電子装置に問い合わせて、そのコンポーネントの完全なマッピングを判断し、次いで要求アプリケーションに装置のコンテンツをどのように管理するかを判断させることである。このような枠組みでは、装置とPCとの間に関係が存在すると仮定されていない。PCは、装置からのコンテンツのダウンロードにより、接続装置についての情報を学習する。
複数の技術により装置とコンピュータとの間のデータの転送速度の増大をてこ入れしようとしてきたが、様々な理由により、単なる転送速度の増大だけでは適切な解決策ではない。第1に、数十ギガバイトの情報をPCに不必要に送信することは、本質的に無駄である。第2に、適切な代替手段が存在しない場合、ユーザは必要以上に長く待たされる。そして、最も重大なことに、複数のアプリケーションが、結合された装置のコンテンツへのアクセスを求めて競合する。例えば、携帯音楽プレーヤがコンピュータに結合されるとすぐに、複数のオーディオファイルアプリケーションがプレーヤと通信リンクを確立しようとする。各プレーヤが独立して動作する場合、各プレーヤが、結合された装置のコンテンツについて学習するために、結合された装置についてのすべての情報をダウンロードする必要がある。
設定によっては、1対1の関係がコンピュータと電子装置との間に存在する。これは事を容易にするが、明らかな欠陥を有する。例えば、メディア再生アプリケーションによっては、特定のブランドのメディアプレーヤ装置とのみ動作するように設計されているものがある。この状況では、コンピューティング装置と電子装置との間に関係が存在すると想定することができる。これにより、データベースを同期する選択肢が利用することができるようになる。コンピューティング装置にデータベースが存在すると共に、電子装置にもデータベースが存在する。いずれかのデータベースに変更が行われた場合、一方に行われた変更が何であれ、その変更を他方に複製する対応がとられ、逆の場合も同様である。しかし、この枠組みは、コンピューティング装置上の2つ以上のアプリケーションが、結合された電子装置のデータについての情報を通信しようとする場合には実行不可能である。この困難な既知の問題は、マルチマスタ同期問題として知られている。ここでも、数ギガバイト、そして時には数テラバイトの情報を記憶するデータベースの同期は資源集中的であると共に、これから示すように不必要である。
まとめると、コンピューティング装置と電子装置との間でデータを同期させる2つの主要な方法は、各装置のデータベースをミラーリングするか、又はコンピューティング装置に結合された電子装置のすべてのコンテンツの完全なマッピングを受信することである。これらの方法のいずれも、装置のメディアコンテンツのすべてを実際に転送する必要なしに、装置のコンテンツについて高速且つ効率的に学習する効率的な方法を提供しない。例えば、数百枚の写真をデジタルカメラに残した後、ユーザはたった数枚の写真を追加撮影し、カメラをコンピューティング装置に再接続することがある。これらの方法のいずれも、数枚の最近の写真だけが新しい写真であることの指示を受信し、変更されたコンテンツを操作する選択肢をユーザに提示する能力をコンピューティング装置に提供する汎用的な方法を提供しない。この類の問題は、携帯電話、PDA、携帯メディアプレーヤ等のような様々な装置に広がっている。
この概要は、詳細な説明においてさらに後述される複数の概念から選択された概念を簡略化された形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は重要な特徴の識別を目的とせず、且つ特許請求される主題の範囲を限定するために使用されることも目的としていない。
本開示は、電子装置のようなメディア装置の特定のデータオブジェクトに関連するオブジェクト情報を効率的に受信し提示する方法及びデータ構造を記載する。データオブジェクトは、メディアファイル(オーディオ、ビデオ、ピクチャ等)のようなアイテムを含む。オブジェクト指向プリミティブ(オブジェクトメタデータ、装置メタデータ、及びオペレーション)が、複数の要求アプリケーションが装置との同期ベースの対話(選択的な列挙、取得、配置等)を実行することができるようにするために必要な情報のみを露出するために使用される。オブジェクトに対して変更が行われた場合、いつ変更が行われたかを関係的に判断するために後に使用することができるシーケンスインジケータを受信する。この方法は、同期クロック又は変更ログのような、装置間のいかなる確立された連携又は共有される情報にも頼らない。本発明は、多種多様な電子装置の変更されたコンテンツ、新しいコンテンツ、及び削除されたコンテンツの識別に関連する時間及びリソースの低減を含む技術分野においていくつかの実用的な用途を有する。
本発明の実施形態を添付図面の図を参照して以下において詳細に説明する。添付図面は参照により本明細書に援用される。
これより説明する本技術の厳密な実施態様は、添付の特許請求の範囲から逸脱することなく変更が可能である。オブジェクトが装置で変更(作成及び削除を含む)された順番を識別することができるようにする属性が提供され、この属性にも、順番内の現在位置を識別することができるようにする少なくとも1つの属性が関連付けられる。なお、本明細書において使用される場合、「シーケンス(sequence:順番)」、「順次(sequential)」、及び他の変化形は、連続級数、又は隣接する値が共通の差を有する値の集合を意味することを意図しない。むしろ、どのような差としてもよい。したがって、集合{1,4,897,6987}は、本明細書において使用されるシーケンス内の値である。これによって、要求装置に対して、シーケンスの所望の範囲内に入る(例えば、或る値よりも大きい)特定のオブジェクトへのハンドルリストのような情報を高速で提示することが可能になる。
本発明の説明全体を通して、関連付けられるシステム及びサービスに関連する特定の概念の理解の補助を目的として、いくつかの頭字語及び略語表記が使用される。これらの頭字語及び略語表記は専ら、本明細書において表される概念を伝える容易な方法論を提供することを目的とし、決して本発明の範囲を限定する意図はない。以下がこれらの頭字語のリストである。
Figure 0005149815
本発明の例示的な態様を以下においてさらに詳細に説明する。いくつかの態様のリストは、他の態様が存在しないことを示すものとして解釈されるべきではなく、選択されたリストが例示のために提供される。
第1の例示的な態様では、スレーブ装置上の様々なオブジェクトに関連するオブジェクト情報を受信する方法をマスタ装置に実行させるコンピュータプログラム製品が提供される。一実施形態では、スレーブ装置上の各オブジェクトには、単調シーケンスインジケータが関連付けられる。本方法は、マスタ装置から、スレーブ装置がいつマスタ装置と最後に通信したかを示す以前の最大シーケンス値インジケータを検索するステップを含む。以前の最大シーケンス値インジケータ及び様々なオブジェクトのオブジェクトシーケンスインジケータに基づいて、スレーブ装置上の、新しいオブジェクトのセット、又はスレーブ装置がマスタ装置と最後に通信してから変更されたオブジェクトのセット、に関連付けられる情報を受信することができる。
第2の例示的な態様では、電子装置のオブジェクトに関連する情報の別の装置への提示を支援する、具体化されたデータ構造が提供される。装置上の各データオブジェクトにデータ構造が存在した。オブジェクトのセットに関連する最大シーケンス値インジケータ(MSVI)も提供される。データ構造は、オブジェクトの様々な態様を記述する様々な属性を含むが、最大シーケンス値インジケータに関連していつデータオブジェクトに変更が行われたかを指示するオブジェクトシーケンスインジケータ(OSI)が投入されるシーケンス識別フィールドも含む。新しいオブジェクトの作成は、「変更」の範囲内に含まれる。
第3の例示的な態様では、少なくとも1つのMSVIに関連付けられる記憶媒体において具体化されるデータオブジェクトのセットに関連付けられる情報を記憶する方法が提供される。本方法は、複数のそれぞれの要求アプリケーションから複数の独立したオブジェクト情報要求を受信するステップであって、各要求はデータの少なくとも一部についての情報に対する要求である、ステップ、スレーブ装置がいつそれぞれの要求アプリケーションと最後に通信したかを示すそれぞれの前のMSVIを各要求から識別するステップ、及びそれぞれの以前の最大シーケンス値インジケータに関連して前に記憶されたオブジェクトシーケンスインジケータを利用するステップであって、各要求アプリケーションが、対応するオブジェクトシーケンスインジケータが最大シーケンス値インジケータに関する基準を満たすデータオブジェクトのみについての情報を受信するような各要求を満たす、ステップを含む。
第4の例示的な態様では、データオブジェクトが装置上で変更又は作成されたシーケンスを識別する方法が提供される。本方法は、前に割り当てられたシーケンス位置インジケータのセットに関連して単調変化するシーケンス位置インジケータの各データオブジェクトへの関連付けを提供するステップを含む。本方法は、新たに作成されたオブジェクト及び定義の時点後に少なくとも1つの属性が変更されたオブジェクトを含むオブジェクトのセットに対応するオブジェクトリファレンスのセットの通信を提供するステップをさらに含む。
最後の例示的な態様では、一実施形態は、スレーブ装置とマスタ装置との間での情報の交換を容易にする具体化される命令の形態をとる。スレーブ装置上の1つ又は複数のオブジェクトから成るセットに関連付けられるベンチマークシーケンスインジケータの受信が提供される。各オブジェクトにはそれぞれ、単調シーケンスインジケータが関連付けられる。どのオブジェクトがスレーブ装置上にあるかの判断も、ベンチマークインジケータに基づいて提供される。
本発明は、個人情報端末又は他のハンドヘルド装置のようなコンピュータ又は他の機械によって実行される、プログラムモジュールのようなコンピュータ実行可能命令を含むコンピュータコード又は機械使用可能命令の一般的な文脈の中で説明することができる。一般に、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロトコル等を含むプログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実施するコードを指す。本発明は、ハンドヘルド装置、家庭用電化製品、汎用コンピュータ、より特殊なコンピューティング装置等を含む様々なシステム構成で実施することができる。本発明は、タスクが通信ネットワークを通じてリンクされた複数の遠隔処理装置により実行される、分散コンピューティング環境において実施することもできる。
特に図1を参照して、例示的なマスタ装置100の態様が提供される。マスタ装置100は、コンピュータ又はコンピューティング装置、ゲームコンソール、ステレオヘッドユニット等であることができるが、適切な動作環境の一例に過ぎない。これは本発明の使用又は機能の範囲に対する限定の示唆を何ら意図するものではない。また、図示されるコンポーネントの任意の1つ又は組み合わせに関連する依存又は要件の解釈があるべきではない。
図1を参照すると、マスタ装置100は、以下の装置、すなわち、メモリ112、1つ又は複数のプロセッサ114、1つ又は複数の提示インタフェース116、入出力ポート118、入出力コンポーネント120、及び例示的な電源122を直接又は間接的に結合するバス110を備える。バス110は、(アドレスバス、データバス、又はこれらの組み合わせのような)1つ又は複数のバスであり得るものを表す。図1の各種ブロックは、明確さのために線で示されるが、実際には各種コンポーネントの線引きはそれほど明確ではなく、比喩的に言えば、線は、より正確にはグレーで曖昧である。例えば、表示装置のような提示コンポーネントをI/Oコンポーネントとして考えることもできる。また、プロセッサはメモリを有する。これは当該技術分野においては当然のことであると本発明者らは認識しており、図1の図は、本発明の1つ又は複数の実施形態に関連して使用することができる例示的なマスタ装置の例示に過ぎないことを繰り返しておく。「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルド装置」等のようなカテゴリは区別されず、これらはすべて図1の範囲内にあると意図され、一種のマスタ装置としてコンピュータと呼ばれる。
マスタ装置100は、通常、様々なコンピュータ可読媒体を含む。限定ではなく例として、コンピュータ可読媒体は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的消去可能プログラム可能読み取り専用メモリ(EEPROM)、フラッシュメモリ、又は他のメモリ技術、CDROM、デジタル多用途ディスク(DVD)、又は他の光学若しくはホログラフィメディア、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気記憶装置、USBドライブ、フラッシュカード等のリムーバブルメディア、及び搬送波若しくは所望の情報の符号化に使用することができ、マスタ装置100がアクセス可能な他の任意のメディアを含むことができる。メモリ112は、揮発性メモリ及び/又は不揮発性メモリの形態のコンピュータ記憶媒体を含むと共に、上記のメディア種類のいずれかを含む。
マスタ装置100は、メモリ112又はI/Oコンポーネント120のような各種エンティティからデータを読み取る1つ又は複数のプロセッサを含む。提示インタフェース116は、データ指示をユーザ又は他の装置に提示し、装置100の一部であってもよく、又は装置100に結合されてもよい。例示的な提示コンポーネントは、表示装置、スピーカ、印刷コンポーネント、振動コンポーネント等を含む。入出力ポート118は、マスタ装置100を、そのうちのいくつかは内蔵されてもよい入出力コンポーネント120を含む他の装置に論理的に結合することができるようにする。例示的なコンポーネントは、マイクロホン、ジョイスティック、ゲームパッド、衛星用パラボラアンテナ、スキャナ、プリンタ、無線装置等を含む。
これより図2Aを参照して、マスタ装置212に結合されたメディア装置210を示す。メディア装置210は、参照符号211A及び211Bで示される1つ又は複数の機械可読媒体を読み取ることができる。媒体は、上述したように永久的又は取り外し可能であることができる。各種実施形態では、メディア装置210は、デジタルカメラ214、PDA216、携帯電話218、携帯音楽プレーヤ220、又は携帯メディアプレーヤ222等の電子装置の形態、又は図示されていないが、省略記号224で意図されるように示される様々な他の装置の形態をとることができる。以下、メディア装置210は、本発明の文脈の中ではマスタ装置212に対するスレーブとして動作するため、スレーブ装置210と呼ばれる。マスタ装置212は、本発明の様々な機能態様を実行するために使用される機械可読命令のセット225を含む。マスタ装置212は、ラップトップコンピュータ226、ラジオヘッドユニット228、ゲームコンソール230、他の何らかの形態のコンピューティング装置232、又は図示されていないがこれも省略記号で表される他の何らかのマスタ装置の形態をとることができる。
マスタ装置212は、参照符号234、236、及び238で示される複数の要求アプリケーションを含むものとして示される。これは、スレーブ装置210がマスタ装置212上の要求アプリケーション234〜238と1対多の関係であるため、ピアツーピア環境ではない。各マスタアプリケーションはそれぞれ、参照符号234A、236A、及び238Aでそれぞれ示される以前の最大シーケンス値インジケータ(MSVI)を含む。さらに詳細に以下において説明するが、以前の最大シーケンス値インジケータはスレーブ装置210によって提供され、スレーブ装置がマスタ装置212に接続するときのスレーブ装置の最大シーケンスインジケータを示す。いくつかの実施形態では、2つのベンチマークインジケータ、すなわち以前の最大シーケンス値インジケータ及び現在の最大シーケンス値インジケータが維持され、現在の最大シーケンス値インジケータは、新たに結合されたスレーブ装置210から現在の値をとり、以前の最大シーケンス値インジケータは、最も新しく置換された現在の最大シーケンス値インジケータを記憶する。ここでも、これについては特に図8を参照してさらに詳細に以下において説明する。
マスタ装置212はスレーブ装置210への要求を開始し、スレーブ装置210は、スレーブ装置210上の様々なオブジェクトに関連付けられる情報で応答する。スレーブ装置210は、複雑さのより低い実施形態よりも複雑な一実施形態を示す。例えば、スレーブ装置210は、オブジェクトの2つの別個のセット、すなわちオブジェクトの第1のセット242及びオブジェクトの第2のセット246を示す。オブジェクトのセット242は、対応する最大シーケンス値インジケータ248を含む。同様に、オブジェクトのセット246も対応する最大シーケンス値インジケータ250を含む。この応用形態で、様々なシナリオを説明する。そして、より複雑な説明を必要としない状況については一般に、それぞれのシーケンスインジケータと併せて使用されて、アプリケーション234のような例示的なアプリケーションに情報を提示する最大シーケンス値インジケータ248を有するオブジェクトのセット242を参照する。
本発明の一実施形態では、オブジェクト属性ベース(object property-based)(OPB)プロトコルが、それぞれの情報要求241A、241B、及び241Cに応答して、(オブジェクトハンドル、他のリファレンス、概要情報、及びオブジェクト自体のような)情報243A、243B、及び243Cのマスタ装置212及び妥当な場合にはそれぞれの要求アプリケーション234、236、及び238への通信を容易にするために使用される。
本明細書において使用される場合、OPBプロトコルは、すべての要素がオブジェクトとして提示され、オブジェクト自体を検索する必要なく属性によって説明される任意のプロトコルである。コンテンツは、オブジェクトとして露出され、オブジェクトとは別個の属性によって説明される。オブジェクトベースのプロトコルとは、動作、応答、及び(オプションとして)イベントの組み合わせを使用して装置及びそのコンテンツへのアクセスを提供するプロトコルである。プロトコルはこれらを使用してコンテンツを説明し、コンテンツはオブジェクトの形で提示される。オブジェクトは、プロトコルにおいてオブジェクトをアドレス指定するために使用されるインジケータ(例えば、オブジェクトハンドル、ファイル名、又はオブジェクト名)、オブジェクトを説明し、バイナリペイロード自体を検索する必要なく検索可能な選択されたメタデータ(例えば、属性)、及びオブジェクトの本体を構成するバイナリファイルを含む1つ又は複数のバイナリリソースから成る。属性のみから成り、バイナリコンポーネントを有しないオブジェクトが存在する。これらは抽象オブジェクトと呼ばれる。
例示的なこのようなプロトコルは媒体転送プロトコル(MTP)を含み、これについては、1)2004年3月3日に出願された米国特許出願第10/836,260号明細書、2)2004年5月5日に出願された米国特許出願第10/839,299号明細書、及び3)MSDN.Microsoft.comから入手可能な「メディア転送プロトコル(Media Transfer Protocol)」という名称の仕様書において電子装置間でデータを同期する追加の情報と共により十分に説明する。これらの3つの各文献は、少なくとも説明した目的のために参照により本明細書に明示的に援用される。
オブジェクトベースのプロトコルでは、オブジェクトは全体オブジェクトとして転送される。すなわち、要求がオブジェクトに対して行われる。このような方式の利点は、要求されたファイルがファイル構造及びオペレーティングシステムのようなことにとらわれなくなることである。したがって、ファイルは、多様なオペレーティングシステム及びファイルシステムにわたって通信することができる。ファイルは、単純に或る装置から別の装置に転送される相互のものになる。なお、本明細書においてファイル転送に言及する場合、ファイルを実際に移動するよりもむしろファイルのコピーを転送する概念を含むことが意図される。これは当該技術分野において明確に意図されることであり、本願全体を通してその都度、区別を明確にすることは本発明を分かりにくくするであろう。
一実施形態では、マスタ装置212は主導権を有し、スレーブ装置210はそのコンテンツを露出しようとする。ピアツーピア環境では、それぞれの役割を逆にすることができる。すなわち、マスタ装置はスレーブ装置であることもでき、スレーブ装置はマスタ装置であることもできる。本発明は、ピアツーピア環境の問題とは本質的に異なる問題を呈する1対多環境において関連する問題を解決することを対象とする。本発明の適用可能な動作環境は、メディアプレーヤにコンテンツを要求するカーラジオ、結合された装置の情報を要求するゲームコンソール、並びに図2Aに明示的に示される例及び本開示を読んだ当業者により意図される他の多くの設定の両方の他の無数の例を含む。
上述したように、本発明が対処する問題の1つ(1つだけではない)は、新しいコンテンツ又は変更されたコンテンツを電子装置の要求アプリケーションに高速に露出することができることである。この問題には多くの側面があり、さらなる目標は、一連の変更の中で、少なくとも、装置がマスタ装置212と最後に通信した時刻に関連して特定のオブジェクトへの変更がいつ行われたかを識別することができることである。様々な方法が上手く機能しない。例えば、デジタルカメラのクロックは、写真が実際にいつ撮影されたかの信頼性のある指標ではなく、要求装置との最後の通信に関連して変更がいつ行われたかの指示を提供せず、さらには、写真が撮影されたときのシーケンスロケーションを一意に識別するのに十分な精度さえも提供することができない。不都合なことに、多くの消費者は単に、デジタルカメラのクロックをプログラムしない。
さらに、人が時間帯を横断する場合、特に西に向かって移動する場合、クロックを設定する人であってもクロックを逆戻して設定することになり、特定の写真が、実際には別の写真よりも後に撮影された際に、その別の写真よりも前に撮影されたとの誤った指示に繋がり得る。クロックは、装置がマスタ装置212と最後にいつ通信したかの点での比較測定も何ら提供しない。
クロックを潜在的なシーケンスインジケータとして使用することの別の例示的な欠点は、クロックが十分な精度を有しないことがあることである。ハイエンドカメラによっては、控えめに見積もって毎秒数枚の写真を含め、複数の写真を高速連写する機能を有するものがある。クロックが最低でも秒単位でしか時刻を刻まない場合、高速に連続して速いシャッタ速度で撮影された10枚の写真が、10枚すべてにわたって同じタイムスタンプを受けるおそれがある。
ピアツーピア同期技術等を含む既存の技術を目を向けることは、スレーブ装置210等の電子装置上のオブジェクトに帰する関係的シーケンスを普遍的に識別することができる解決策を求めるに当たって有益ではない。このようなレガシーロジックは、物事が異なる枠組みで行われていた頃の古い考えが、オブジェクトのセット242と多くの開始プリケーション234、236、及び238との間の1対多関係を含む本発明の動作環境においての問題の解決に適用されるに当たって有用ではないため、実際には問題を混乱させる。ここでも、問題の1つは、マスタ装置212上のスレーブ装置210のコンテンツ(及び恐らくマスタアプリケーションが存在するのと同数のその多くのインスタンス)を完全にミラーリングする必要なく、且つ電子装置の完全なコンテンツを列挙する必要なく、変更されたオブジェクト(属性が変更されたオブジェクトを含む)及び新たに作成されたオブジェクトを高速に識別することができることであった。
図2Bは、他のオブジェクトが変更される(変更されるか、又は新しい)のに対して、どのようにしてスレーブ装置210のいくつかのオブジェクトを変更されないままにすることができるかを示す。例えば、参照符号260で表されるオブジェクトは変更されていないオブジェクトである。すなわち、スレーブ装置210がマスタ装置212と最後に通信した時刻に関連して変更されていない。いくつかの実施形態では、この区別は、マスタ装置212に単に接続されたスレーブ装置210が通信イベントとして機能しないように、ユーザ制御であることもできれば、又は装置制御であることもできる。
変更されたオブジェクトは参照符号262で示される。本明細書において使用される場合、「変更された」オブジェクトは、変更されたオブジェクトであるか、又は新たに作成されたオブジェクトを含む。削除ファイルリスト264も示され、スレーブ装置210から削除されたオブジェクトを追跡する方法を提供する。このリストは、所望よりも多くのスペースを消費しないように、予め設定された長さに設定することができる。例えば、最新のN個のオブジェクトを追跡するように構成することができる。マスタ装置212は、どのオブジェクトが削除されたかを識別するために、単にこのリストを要求することができる。一実施形態では、リストは、削除されたオブジェクトを識別する識別子、及び少なくともスレーブ装置の最大シーケンス値インジケータ248又は250に関連していつオブジェクトが削除されたか、既存のオブジェクトにいつ変更が行われたか、又は新しいオブジェクトがいつ作成されたかに関連しても示す対応するシーケンスインジケータで構成される2×Nアレイ265の形をとる。
本発明の一実施形態では、変更されたオブジェクト又は新たに作成されたオブジェクト262を識別することは、一実施形態では、他のオブジェクトへの変更に関連して、またいくつかの実施形態では、少なくとも、最大シーケンス値インジケータであることができるベンチマークインジケータのみに関連して、いつオブジェクトに変更が行われたかを識別するために使用することができるオブジェクトシーケンスインジケータ(OSI)を受信する追加属性を各オブジェクトに提供することによって達成される。シーケンスインジケータは、単調に増大又は単調に減少することができる。両シナリオにおいて、後続値は、少なくともすべての先行値と同じ大きさである。単調インジケータは非増大又は非減少のいずれかである。非減少値は決して減少せず、隣接する値は同じであることができる。同様に、非増大値も決して減少せず、隣接する値は同じであることができる。一実施形態では、シーケンスインジケータは非減少である。すなわち、値は永続的に増大し、決して変動しない。しかし、非常に大きな数で開始し、時間が進むにつれてデクリメントすることができることも添付の特許請求の範囲内に意図される。したがって、一実施形態では、本発明は具体化されたデータ構造の形をとり、そのうちの例示的な1つのデータ構造を図3Aにおいて符号300で参照する。
図3Aは、本発明の一実施形態に関連して使用することができるデータ構造の例示的な表現を示す。このデータ構造は、その属性の1つとしてシーケンスインジケータ312を含む新しいフィールドであるシーケンス識別フィールド310を含む。データ構造300は、例示的にファイル名属性316、解像度属性(場合によっては)318、及び符号320で例示的に表される様々な他の属性を含む、符号314により参照される他のデータオブジェクト属性のセットも含む。対応する属性のうちの1つと比較して、メディアペイロード326自体が変更されたか否かを示す対応する属性324を受信するために、ペイロード変更インジケータフィールド322も本発明により提供される。例えば、ペイロード変更インジケータ322は、メディアペイロードの実際のコンテンツが変更された場合には「1」であることができ、それに対してペイロードに関連付けられる属性が変更されたが、ペイロード自体は変更されない場合には「0」であることができる。
後述するように、データオブジェクトが変更されるとき、又は新たに作成されるとき、そのシーケンス識別フィールド310にシーケンスインジケータ312が投入される。装置は、数百、数千、又はさらにより多くのデータオブジェクトを、それぞれ対応するシーケンス識別フィールド310及びシーケンスインジケータ312と共に記憶することができる。シーケンスインジケータのこれらの集まりが、通常、最大シーケンス値インジケータに関連して、及び/又は場合によっては互いに関連して様々なオブジェクトに対して行われた変更の順番を識別することができるように、装置に関連付けられるが、データオブジェクトのセットのそれぞれに関連付けることもできる最大シーケンス値インジケータと併せて使用される。図3Bは単に、符号300Aで参照されるデータ構造300を表す代替の方法を示す。これもシーケンス識別フィールド310A及び対応するシーケンスインジケータ312Aを含む。当業者は、図3Aのデータ構造を示す無数の方法があり、図3Aは限定的な性質を意図せず、一連の変更の中で、その時点のオブジェクトへの変更がいつ行われたかを属性が示すような、追加の属性をオブジェクトに関連付ける具体化された概念を単に示すことを意図することを理解するであろう。
したがって、一実施形態では、本発明は、変更が行われた順番を識別するように、オブジェクト属性ベースのプロトコルにおいて単調増加属性を強化すると共に、その順番の中でその変更が行われた位置を識別するようにオブジェクトのセット及び/又は装置自体に関連付けられるベンチマークインジケータをさらに強化する。これは、作成されたか、又はマスタ装置212との最後の通信後のような何らかのイベント後に変更されたオブジェクトのリストを検索する能力を提供する。
本発明の多くの利点の1つは、データがスレーブ装置210にどのように記憶されるかの実施詳細に関して高度の柔軟性を提供することである。各オブジェクトが、マスタ装置212が探索先であると知っているフィールドであるフィールド310Aのようなシーケンス識別フィールドを付随するようにオブジェクトが記憶される限り、はるかに大きな自由度を開発者に与えることができる。データ(例えば、242、246、248、及び250)は様々な方法で記憶することができるが、マスタ装置212には標準形式で提示される。装置210が変更を追跡する方法は装置毎に異なってよく、装置の製造業者に任せることができる。これは実際に本発明の恩恵である。装置が変更をどのように内部に記憶しているかに関係なく、このような変更の追跡を表現する共通のプラットフォームを確立することにより、装置の種類と要求アプリケーションとの間に1対1の関係は必要なく、独自仕様のソリューションは必要ない。したがって、図3A及び図3Bの例示的なデータ構造とこれまで呼ばれていたものは、軽率に例示と呼ばれていたわけではないことを理解することが重要である。それらは実に単なる例示にすぎない。様々な記憶方式を利用することができ、2つのみが単に説明を目的として提供される。
スレーブ装置210がデータを記憶することができる単なる一方法のさらなる詳細を、図4をまず参照して提供する。図4の方法400は、装置、又はデータオブジェクトのセットに関連付けるべき最大シーケンス値インジケータについてのステップ410が提供されることを示す。したがって、一実施形態では、最大シーケンス値インジケータは図2Aにおける参照符号248に対応し、データオブジェクトのセットは参照符号242に対応する。最大シーケンス値インジケータは、特定の値を有するベンチマークインジケータである。最大シーケンス値インジケータの値は、様々な状況に基づいて可変である。例えば、一実施形態では、マスタ装置212と通信があった後に更新される。他の実施形態では、オブジェクトのシーケンスインジケータが更新された後に更新される。さらに他の実施形態では、自動的に定期的に更新される。説明はまず、変更又は変更のセットがスレーブ装置210上のオブジェクトに対して行われる毎に、最大シーケンス値インジケータが更新される実施形態に関して提供する。
図4に戻ると、ステップ412において、シーケンス識別フィールドを含むデータ構造が、各データオブジェクト242に提供される。したがって、図3Aに示されるフォーマットのデータ構造を使用することができる。ステップ414において、任意のオブジェクト242が変更されたか否か、又は新たに作成されたか否かが判断される。本発明は、既存のオブジェクトへの変更を追跡すると共に、新しいオブジェクトがいつ作成されたかを追跡することができる。オブジェクトへの変更は、そのオブジェクトに関連付けられる属性への変更を含む。
変更がオブジェクトに対して行われている場合、処理はステップ416に続き、対応するオブジェクトのシーケンスインジケータ312が最大シーケンス値インジケータ248よりも大きな値に設定される。当業者は、同様の機能を達成する方法を理解するであろう。それらの方法は添付の特許請求の範囲内にあると意図される。非常に大きな数で始まり、すべての数が初期数に関連して低減する説明のための例についてすでに説明した。この実施形態では、最大シーケンス値インジケータが、ステップ418において、オブジェクトが変更されるまで、又はオブジェクトが作成されるまでスレーブ装置210が待つ(420)状態に処理が戻る前に更新される。
これより、図5を参照して本発明の一実施形態に関してより詳細な説明を提供する。図5は、流れ図並びに符号510、512、及び514で参照される3つの状態のデータオブジェクトのセット及び対応するオブジェクトシーケンスインジケータ(OSI)を示す。状態510、512、及び514は、スレーブ装置210上のオブジェクトの異なる状態を表す。第1の状態510では、オブジェクトシーケンスインジケータのセットが対応するオブジェクトのセット518に関連付けられる。
オブジェクトシーケンスインジケータ516は、値「1001」、「1002」、「1003」、及び「1004」を有する。凡例520から分かるように、各オブジェクトは変更されていない状態である。ステップ522は、セット518内のオブジェクトの1つに対して変更が行われたことを示す。この例では、オブジェクト524が状態を変更するものと仮定し、これは符号526により参照される。流れ図500は、ステップ528において、変更されていない状態から変更状態への遷移が、参照符号528によって示されるオブジェクトの対応するオブジェクトシーケンスインジケータを更新することにより示されることを示す。ここで、オブジェクト524のオブジェクトシーケンスインジケータは、「1002」から「1006」に更新される。数値「1006」は、その時点の最大シーケンス値インジケータ530(値「1005」を有する)を参照し、オブジェクト526のオブジェクトシーケンスインジケータを最大シーケンス値インジケータ530よりも大きな値に設定することによって選択された。最大シーケンス値インジケータを本発明の各種実施形態に基づいて更新することができるか、又は更新することができないかを示す判断ステップが、参照符号532によって示される。例えば、第1の実施形態では、最大シーケンス値インジケータは更新されず、処理はステップ534に続き、ステップ534は、最大シーケンス値インジケータの値「1005」が、オブジェクト526の対応するオブジェクトシーケンスインジケータの更新後も続くことを示すプレースホルダステップである。スレーブ装置210がマスタ装置212と最後に通信したとき、「1005」の最大シーケンス値インジケータ530もマスタ装置212に通信されるため、これが成り立つことができる。
したがって、マスタ装置212が、スレーブ装置210と最後に通信したときから後のすべての変更を発見したい場合、マスタ装置212との通信後に行われたすべての変更が、以前の最大シーケンス値インジケータ530よりも大きなシーケンスインジケータで示される限り、そうすることができる。この説明は、このような枠組みが実施者の所望に基づいて可能であることを示すために含まれるものである。
しかし、別の実施形態では、最大シーケンス値インジケータは、自動的に更新されるか、又はオブジェクトのオブジェクトシーケンスインジケータの更新に付随して更新される。このような場合、処理はステップ536に続き、ステップ536は、最大シーケンス値インジケータが、例えば、2だけ更新される一実施形態を示し、オブジェクトのオブジェクトシーケンスインジケータは初期最大シーケンス値インジケータ530よりも1だけ大きな値に更新される。再び、状態514は、オブジェクト526と同じ値である恐らく1006というオブジェクトシーケンスインジケータを有するものとして作成された新しいオブジェクト538を示す。しかし、別の実施形態では、オブジェクト538のオブジェクトシーケンスインジケータは「1006」よりも大きな値をとる。この実施形態では、最大シーケンス値インジケータは、参照符号540で示されるように、さらに1だけインクリメントされて値「1007」をとる。各オブジェクトのオブジェクトシーケンスインジケータが更新された後、最大シーケンス値インジケータが更新されない場合、スレーブ装置210がマスタ装置212に結合されたときに更新され、いずれのオブジェクトシーケンスインジケータ516よりも大きな値が与えられる。
これより図6を参照して、スレーブ装置210がオブジェクトのセット242についての情報をマスタ装置212に露出する例示的な方法が提供され、符号600で包括的に参照される。ステップ610において、スレーブ装置210は、(符号241C、241B、及び241Cで示されるような)複数のオブジェクト情報要求を234、236、及び238のような複数の要求アプリケーションから受信することができる。このような情報を、様々なオブジェクトの変更に関連付けられるシーケンス情報として単一のアプリケーションのみではなく複数のアプリケーションに提供することができることは、本発明のもう1つの利点である。
スレーブ装置210がマスタ装置212に結合されると、多くのアプリケーションは、スレーブ装置210と通信しようと試みることができる。例えば、スレーブ装置210がオーディオプレーヤ220の形をとる場合、様々な供給メーカ製の様々なオーディオ再生アプリケーションがすべて、スレーブ装置210のマスタ装置212への接続を検知し、装置に問い合わせしようとする。恐らく、新しいコンテンツをすべて列挙するか、又は特定の基準を満たすコンテンツのみを列挙するような241A、241B、241Cのような要求がスレーブ装置210に送られる。
これらの要求を満たすために、スレーブ装置210は、ステップ612において、適切な以前の最大シーケンス値インジケータを求める。例えば、スレーブ装置210がアプリケーション234から要求を受信した場合、スレーブ装置210は、アプリケーション234に関連する正確な最大シーケンス値インジケータが符号234Aで示される最大シーケンス値インジケータであると判断する。同様に、要求241Bがアプリケーション236からのものである場合、アプリケーション236は、スレーブ装置210が、最大シーケンス値インジケータ236Aが正確な最大シーケンス値インジケータであることを知るようなロジックを提供する。
ステップ614において、スレーブ装置210は、要求アプリケーションの最大シーケンス値インジケータを(242又は246のような)オブジェクトのセットのシーケンスインジケータと共に使用して、各要求を満たす。例えば、要求アプリケーション238が、セット246内で新しいオブジェクトをすべて列挙する要求241Cをスレーブ装置210に送信した場合、スレーブ装置210は、各オブジェクト246のシーケンス識別フィールド310を比較し、シーケンスインジケータが238Aのシーケンスインジケータよりも大きいオブジェクトに関連付けられる情報243Cを返す。アプリケーション238は、最大シーケンス値インジケータ「973」を有する写真アプリケーションであることができる。スレーブ装置210がカメラであり、参照符号246で示されるセットを構成する数千枚の写真を有するが、2枚のみの画像が「973」よりも大きなオブジェクトシーケンスインジケータを有する場合、それらの2枚の写真のみに関連付けられる情報が装置212上の要求アプリケーション238に送られる。
同様に、アプリケーション238が、何らかのイベントに先だって、又は何らかのイベント後に削除されたすべてのオブジェクトの指示を要求した場合、スレーブ装置210は削除ログ264を参照して、このような要求を満たすことができる。別の例では、アプリケーションは、オブジェクトの実際のバイナリファイル又はメディアペイロード326が変更されたか否かのみの通知を要求し得る。このような場合、スレーブ装置210は、様々なオブジェクトのペイロード変更インジケータ322を参照して、どのオブジェクトのメディアペイロードが変更されたかを迅速に示すことができる。
上述したように、スレーブ装置210への情報の記憶の態様に関連するより低レベルの詳細は様々であることができ、ひいては情報がどのように記憶されるか、さらにはどのようにマスタ装置212に提示されるかのより低レベルの詳細も様々であることができる。例えば、一実施形態では、変更がオブジェクトに対して行われる毎に、そのオブジェクトの対応するオブジェクトシーケンスインジケータが更新され、そのオブジェクトのインジケータ316をログに追加することができ、ログは、要求アプリケーションの情報要求を満たすためのクイックリファレンスとして機能する。他の実施形態では、要求の受信に起因してデータに対して照会を実行することができる。この実施形態では、要求アプリケーションが、例えば、或る数よりも大きなシーケンスインジケータを有するすべてのデータオブジェクトを要求する場合、提供される基準に基づいてメタデータ314、310、322を素早く照会することができる。より重要なことは、シーケンス識別フィールド310がオブジェクトに関連付けられ、このようなオブジェクトのタイミングを少なくともベンチマークインジケータに関連して、しかし他の実施形態では、他のオブジェクトに行われた変更に関連して判断することができるように、そのオブジェクトの変更に起因して入力されるように、データ構造がオブジェクトベースのプロトコルと併せて提供されることである。
これより図7を参照して、マスタ装置がスレーブ装置210に記憶されているオブジェクトについての情報を受信する方法を実行することができる例示的な方法として、フロー700を提供する。ステップ710において、マスタ装置212は、スレーブ装置210がマスタ装置212に結合されたことの指示を受信する。ステップ712において、マスタ装置212は、特定のアプリケーションに関連付けられ、アプリケーション固有であり得る以前の最大シーケンス値インジケータを記憶装置から検索する。したがって、アプリケーション234が関連するアプリケーションである場合、最大シーケンス値インジケータ234Aを受信することになる。同様に、アプリケーション236は最大シーケンス値インジケータ236Aを検索することになる。アプリケーション238に対しても同様である。
上述したように、マスタ装置212又はより詳細にアプリケーション234のようなアプリケーションは、2つのベンチマークインジケータ、すなわち以前のベンチマークインジケータ及び現在のベンチマークインジケータを参照することができる。このような方式では、以前の最大シーケンス値インジケータは、スレーブ装置210上のオブジェクトのオブジェクトシーケンスインジケータのテストに使用されるベンチマークとして使用されるのに対して、現在の最大シーケンス値インジケータは、装置の最大シーケンス値インジケータの現在の値を受信する。この態様については図8を参照してさらに詳細に説明する。
ステップ714において、マスタ装置212は、情報243Aのような情報をスレーブ装置210から受信する。情報は、例えば、オブジェクトシーケンスインジケータ及び検索された最大シーケンス値インジケータに基づいてセット242の特定のデータオブジェクトに関連する。ここでも、恐らく、要求アプリケーション234は単に、例えば、新しい写真をすべて要求する。この場合、要求アプリケーション234は、スレーブ装置210に以前の最大シーケンス値インジケータ234Aを渡し、スレーブ装置210はこれを使用してオブジェクトのセット242のオブジェクトシーケンスインジケータと比較し、それらのオブジェクトのみに関連付けられる情報243Aを返す。情報234Aは、オブジェクト242へのハンドル、そのサブセット、又はこれらのオブジェクトの一部若しくはオブジェクトに関連付けられるメタデータへの他のリファレンスを含むことができる。マスタ装置212が要求し、スレーブ装置210により検索可能なものは何であれ、情報243Aの範囲内に含まれる。
このような情報を受信することによって、マスタ装置212は、ステップ716において、判断されたオブジェクトに関連して、望まれる動作を、それが何であれ実行することができる。例示的な動作は、取得動作、配置動作、及び変更検出動作を含むことができる。マスタ装置212は、情報243Aにおいて示されるオブジェクトのコピーを受信したい場合がある。マスタ装置212は、オブジェクトのセットを削除したい場合がある。ここに無数の例を含めることができるが、そうすることは非実際的であり、当業者は、アプリケーション234が、基準を満たすデータ300が存在する、提供されるシーケンス基準に基づいて、オブジェクトのセット242の特定のオブジェクトに関連付けられる情報234Aを受信することができる場合、幅広い可能性が適用されることを容易に理解するであろう。ステップ718において、マスタ装置212は、スレーブ装置の現在の最大シーケンス値インジケータ248を受信し、これはここでは以前の最大シーケンス値インジケータとして記憶される。したがって、ステップ720において、以前の最大シーケンス値インジケータが、装置の現在の最大シーケンス値インジケータに基づいて更新される。
最後の説明のための例を、本発明の様々な態様を含む図8A及び図8Bを参照してこれより提供する。この例の目的のために、要求アプリケーションは234であると仮定され、適用可能なデータセットはデータ242であり、これには最大シーケンス値インジケータ248が関連付けられる。具体例も図8A自体の中で提供され、図8A及び/又は図8Bに見られる新しい符号で参照される。まず、図8Aを参照すると、ステップ810において、スレーブ装置210はマスタ装置212に結合される。状態812は、オブジェクトシーケンスインジケータ816をそれぞれ有するオブジェクト814の例示的な状態を表す。図示のように、オブジェクト814は、対応するオブジェクトシーケンスインジケータをそれぞれ有する3枚の写真を含み、装置の最大シーケンス値インジケータ818「00151」をさらに含む。ステップ820において、マスタ装置212は、(符号248で表されるような)以前の最大シーケンスインジケータを参照し、これは例示的な値、例えば「00145」を有する。いくつかの実施形態では、1つ又は複数の装置最大シーケンス値インジケータは、この時点で更新することができる。他の実施形態では、マスタ装置は単一のベンチマークインジケータのみを追跡してもよい。このような一実施形態では、マスタ装置の単一の最大シーケンス値インジケータは、スレーブ装置210との通信セッション後に更新される。しかし、この実施形態では、スレーブ装置210の最大シーケンス値インジケータ818は、現在の最大シーケンス値インジケータフィールド824において維持される。上述したように、装置234の以前の最大シーケンス値インジケータの値826は「00145」である。ステップ828において、マスタ装置212は、それぞれのオブジェクトシーケンスインジケータ830がマスタ装置の以前の最大シーケンス値インジケータ「00145」よりも大きいため、写真0049〜0051が妥当であると判断する。
ステップ832において、ユーザはそれらの写真をすべてコピーするが、装置にも残すことを選択する。写真は、ステップ832においてマスタ装置212にもコピーされる。これは、マスタ装置212の1つ又は複数の最大シーケンス値インジケータを更新することができるステップ834における例示的な一時点である。図示のように、以前の最大シーケンス値インジケータフィールド836の値はここでは「00151」であり、これが現在の最大シーケンス値インジケータとして使用されると共に、スレーブ装置210のベンチマークインジケータ248でもある。ステップ838において、ユーザは装置を接続解除し、3枚の写真をさらに撮影する。オブジェクト及び対応するオブジェクトシーケンスインジケータ840の状態は、状態842で表される。分かるように、新しい写真844は、装置の以前の最大シーケンス値インジケータ818よりも大きな対応するオブジェクトシーケンスインジケータ846を有する。この場合、新しい写真はオブジェクトシーケンスインジケータ「00152」、「00154」、及び「00156」を有する。また状態842に示されるように、スレーブ装置210の装置最大シーケンス値インジケータは、値「00157」に更新されている。
図8Bに続き、ステップ848において、ユーザがマスタ装置212に再接続すると仮定する。一実施形態では、スレーブ装置の最大シーケンス値インジケータは、状態852において参照符号850で示されるものとして維持される。それぞれの要求アプリケーションに関連付けられる以前の最大シーケンス値インジケータは「00151」のままである。ステップ854において、符号0052〜0054を有して示される写真844は、それぞれのオブジェクトシーケンスインジケータ846がマスタ装置の以前の最大シーケンス値インジケータ「00151」よりも大きいため、妥当なものとして認識される。ステップ856において、所望であれば、妥当なオブジェクトのみに対して、オプションとして動作を実行することができる。ステップ858において、マスタ装置212の以前の最大シーケンス値インジケータが、「00157」であるスレーブ装置210の最大シーケンス値インジケータに更新される。ステップ860において、ユーザが接続を解除するが、pic_0050の解像度を変更すると仮定する。状態862に示されるように、pic_0050のオブジェクトシーケンスインジケータ864は、値「00157」を有した装置の現在のベンチマークインジケータ850よりも大きな値を有するように更新される。スレーブ装置210の最大シーケンス値インジケータは、参照符号866で示されるように値「00159」に更新される。ステップ868は、再接続されると、pic_0050が、以前の最大シーケンス値インジケータ「00156」よりも大きな対応するオブジェクトシーケンスインジケータを有するため、妥当なものとして認識されることを示す。マスタ装置は、スレーブ装置の最大シーケンス値インジケータ「00159」を記憶する。
本明細書では、どのオブジェクトが或るベンチマーク値よりも大きい値を有するか判断するような解析の実行を参照した。もちろん、どの値がその値以上であるか、又は他の何らかのバリエーションに基づいて解析を実行することも可能である。しかし、すべての場合において、或るベンチマーク値がシーケンス識別値のセットと併せて使用される。これらの値が厳密にどのように使用されるかは様々であり得るが、これらの利用は添付の特許請求の範囲内にあることが意図される。いくつかの実施形態では、最大シーケンス値インジケータは、自動的に、且つ変更から独立して独自に増大することができる。
上記例のうちのいくつかは、コンピューティング装置がマスタ装置212である文脈内で提供された。しかし、手短に上述したように、マスタ装置はコンピュータに限定されない。本発明の実施形態は、変更が標準形式でシーケンスインジケータでタグ付けされ、これらのシーケンスインジケータがベンチマークインジケータと比較されて妥当なオブジェクトが判断されるあらゆる環境に適用可能である。
図示された様々なコンポーネント並びに図示されないコンポーネントの多くの異なる構成が、本発明の精神及び範囲から逸脱することなく可能である。本発明の実施形態は、限定ではなく例示を目的として説明された。本発明の範囲から逸脱しない代替の実施形態が、当業者に明らかになるであろう。当業者は、本発明の範囲から逸脱することなく上記改良を実施する代替の手段を開発することができる。例えば、最大シーケンス値インジケータの現在値及び先行値は、マスタ装置、スレーブ装置、又はこれらの組み合わせで維持することができる。また、最大シーケンス値インジケータは、最大オブジェクトシーケンス識別子(又はその範囲、例えば、「最大オブジェクトシーケンス識別子がX未満」)を判断するのにも使用するができるが、それ自体がすべてのオブジェクトシーケンス識別子よりも大きい値である必要はない。より重要なことは、最大シーケンス値インジケータが次の正確なオブジェクトシーケンス識別子を求めるために利用されることである。
特定の特徴及び部分結合が有益であり、他の特徴及び部分結合を参照せずに利用することが可能であり、それらが特許請求の範囲内にあると意図されることが理解されるであろう。様々な図に列挙されたステップのすべてを必ずしも説明した特定の順序で実行する必要はない。
本発明の一実施形態による動作に適した例示的な開始装置のブロック図である。 本発明の一実施形態による例示的な動作環境を示すブロック図である。 本発明の一実施形態による、スレーブ装置に記憶されているデータオブジェクトの態様を示すと共に、維持される削除リストを示す図である。 本発明の一実施形態によるシーケンス識別フィールドを受信するための確保ロケーションを含むデータ構造のほぼ無制限の変形のうちの1つの表現を示す。 本発明の一実施形態によるシーケンス識別フィールドを受信するための確保ロケーションを含むデータ構造のほぼ無制限のバリエーションのうちの1つの表現を示す。 本発明の一実施形態によるスレーブ装置の動作の例示的な流れを示す図である。 本発明の一実施形態によるスレーブ装置の例示的な動作をトレースする状態図と併せて参照される流れ図である。 本発明の一実施形態による、コンテンツを潜在的な多くの要求アプリケーションに露出するスレーブ装置の一方法を示す流れ図である。 本発明の一実施形態による、スレーブ装置に記憶されているオブジェクトについての情報を受信するアプリケーションの例示的な方法を示す流れ図である。 本発明の一実施形態によって実行される例示的なプロセスのより詳細な概観を提供する図である。 本発明の一実施形態によって実行される例示的なプロセスのより詳細な概観を提供する図である。

Claims (13)

  1. マスタ装置とスレーブ装置との間で通信するためにオブジェクトベースのプロトコルを利用する方法であって、
    前記スレーブ装置との通信リンクを促進するステップであって、該スレーブ装置は、
    (1)対応するオブジェクトシーケンスインジケータのセットがそれぞれ関連付けられる1つ又は複数のオブジェクトと、
    (2)該スレーブ装置上の最大の前記オブジェクトシーケンスインジケータを示す現在の最大シーケンス値インジケータと、
    を含む、ステップ、
    前記マスタ装置からスレーブ装置に、以前の最大シーケンス値インジケータに基づいて、前記スレーブ装置上のオブジェクトについての情報に対する要求を送信するステップであって、前記以前の最大シーケンス値インジケータは、スレーブ装置が以前前記マスタ装置と通信したときに、前記マスタ装置に記憶されたものである、ステップ
    前記スレーブ装置により、オブジェクトシーケンスインジケータが前記以前の最大シーケンス値インジケータよりも大きいオブジェクトに関連する情報を取得するステップ、並びに、
    前記マスタ装置により、前記オブジェクトに関連する前記情報、及び、前記前記スレーブ装置の現在の最大シーケンス値インジケータを受信するステップ、
    を含む、方法。
  2. 請求項1に記載の方法において、前記マスタ装置はコンピューティング装置を含み、前記スレーブ装置はメディア再生装置を含む、方法。
  3. 請求項2に記載の方法において、前記メディア再生装置は、オーディオファイル、ビデオファイル、又はデータファイルのうちの1つ又は複数を再生する装置である、方法。
  4. 請求項1に記載の方法において、前記オブジェクトシーケンスインジケータは、値の集合内の値であり、該集合は、任意の2つの値について、後者の値が少なくとも前者の値と同じ極値である、方法。
  5. 請求項4に記載の方法であって、対応するオブジェクトシーケンスインジケータが前記以前の最大シーケンス値インジケータを超えるオブジェクトの第1のセットを判断するステップをさらに含む、方法。
  6. 請求項4に記載の方法であって、
    前記セットオブジェクトの第1のセットへのリファレンスを前記マスタ装置に通信するステップ、又は
    前記オブジェクトの第1のセットを前記マスタ装置に通信するステップ
    のうちの1つ又は複数をさらに含む、方法。
  7. 請求項1に記載の方法であって、前記マスタ装置から削除されたオブジェクトのセットを識別するステップをさらに含む、方法。
  8. スレーブ装置によって処理されると、該スレーブ装置にデータオブジェクトのセットについての情報をマスタ装置上で実行されている1つ又は複数の要求アプリケーションに露出する方法であって、該方法は、
    複数の独立したオブジェクト情報要求を前記要求アプリケーションから受信するステップであって、前記オブジェクト情報要求はそれぞれ、前記データオブジェクトのセット内の前記データオブジェクトの少なくとも一部についての情報に対する要求である、ステップ、
    各該要求から、前記スレーブ装置がそれぞれの前記要求アプリケーションと最後に通信したのはいつかを示す以前の最大シーケンス値インジケータをそれぞれ識別するステップ、及び
    前に記憶されたオブジェクトシーケンスインジケータを前記以前の最大シーケンス値インジケータのそれぞれと併せて利用するステップであって、各前記要求アプリケーションが、対応するオブジェクトシーケンスインジケータが前記最大シーケンス値インジケータに関して基準を満たすデータオブジェクトのみについての情報を受信するように前記複数のオブジェクト情報要求のそれぞれを満たす、ステップ、
    を含む、方法
  9. 請求項に記載の方法において、前記オブジェクトシーケンスインジケータは、単調に増大する値の集合内の値である、方法
  10. 請求項に記載の方法において、前記オブジェクトシーケンスインジケータは、他のデータオブジェクトへの変更に関連して変更がいつ行われたかを示す、方法
  11. 請求項に記載の方法において、前記オブジェクトシーケンスインジケータは、タイムスタンプが一意のシーケンス位置を示さない場合であっても、他のデータオブジェクトの変更に関連して変更がいつ行われたかを示す、方法
  12. コンピュータに請求項1〜11の何れか1項に記載の全てのステップを実行させるためのプログラムを記録したコンピュータ可読な記録媒体。
  13. コンピュータに請求項1〜11の何れか1項に記載の全てのステップを実行させるためのプログラム。
JP2008557262A 2006-03-03 2007-01-23 メディア装置コンテンツの変更の識別 Expired - Fee Related JP5149815B2 (ja)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JP2009528617A JP2009528617A (ja) 2009-08-06
JP5149815B2 true JP5149815B2 (ja) 2013-02-20

Family

ID=38472645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008557262A Expired - Fee Related JP5149815B2 (ja) 2006-03-03 2007-01-23 メディア装置コンテンツの変更の識別

Country Status (7)

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

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
US20010042099A1 (en) * 2000-02-02 2001-11-15 Doongo Technologies, Inc. Apparatus and methods for optimizing traffic volume in wireless email communications
WO2001058141A1 (en) 2000-02-04 2001-08-09 Ideo Product Development Inc. 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
KR100718613B1 (ko) * 2001-10-22 2007-05-16 애플 인크. 호스트 컴퓨터와 미디어 플레이어의 미디어 내용 동기화 방법
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
US7155464B2 (en) * 2002-03-29 2006-12-26 Panasas, Inc. Recovering and checking large file systems in an object-based data storage system
JP2005521938A (ja) * 2002-03-29 2005-07-21 グッド テクノロジー インコーポレイテッド データサービスによるデータ処理装置の全無線同期システム及び方法
WO2004023233A2 (en) * 2002-09-03 2004-03-18 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
TW200817940A (en) 2008-04-16
US20070208818A1 (en) 2007-09-06
CN101395591A (zh) 2009-03-25
US8769033B2 (en) 2014-07-01
KR20080106534A (ko) 2008-12-08
EP1997013A4 (en) 2016-06-08
KR101467583B1 (ko) 2014-12-10
EP1997013A1 (en) 2008-12-03
JP2009528617A (ja) 2009-08-06
WO2007106234A1 (en) 2007-09-20
EP1997013B1 (en) 2019-01-09
CN101395591B (zh) 2011-11-16
TWI477990B (zh) 2015-03-21

Similar Documents

Publication Publication Date Title
JP6130890B2 (ja) データ同期化
US9043276B2 (en) Packaging and bulk transfer of files and metadata for synchronization
KR100921845B1 (ko) 미디어 아이템들의 관리를 위한 방법, 시스템, 컴퓨터프로그램 및 디바이스
US10552384B2 (en) Synchronizing media files available from multiple sources
KR101255390B1 (ko) 최적화된 장치 동작에 대한 장치 특정 콘텐츠 인덱싱
US20090327288A1 (en) Content enumeration techniques for portable devices
JP5149815B2 (ja) メディア装置コンテンツの変更の識別
JP5216093B2 (ja) スクリプティング環境および他のプログラミング環境からデバイスによってホストされるサービスへのアクセス
US20070168535A1 (en) System and method for data communication between devices
WO2008008448A2 (en) Global asset management
US20070192797A1 (en) Method of and apparatus for managing distributed contents
US9122709B2 (en) Management of media files
JP2009277219A (ja) 複数の供給源からのメディアファイルの管理
JP2007527575A (ja) コンテンツを同期及び識別する方法及び装置
WO2012119539A1 (zh) 文件同步方法、文件同步装置及电子设备
WO2005048132A1 (en) Content based partial download
CN103747032A (zh) 一种文件传输方法、设备和***
CN103389910A (zh) 构建虚拟机的方法、虚拟机的管理方法及其装置
EP2400402A1 (en) Management of media files
CN106407320B (zh) 文件处理方法、装置及***
US20210141771A1 (en) Method of managing files by mobile device and mobile device for implementing the same
CN116303265A (zh) 文件处理设备、文件处理方法和存储介质
CN118394979A (zh) 用于Neo4j图数据库闪回查询方法、装置和存储介质
CN114722020A (zh) 信息获取方法、设备、介质、产品及***
JP2021068079A (ja) 情報処理装置、情報処理システム、情報処理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120517

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121102

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121130

R150 Certificate of patent or registration of utility model

Ref document number: 5149815

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees