(57)【要約】データオブジェクトのセットについての情報をマスタ装置に露出する方法が提供される。ベンチマークシーケンスインジケータが、データオブジェクト（装置上のメディアファイル等）にそれぞれ関連するシーケンスインジケータのセットと併せて使用されて、複数の要求アプリケーションから伝えられるシーケンス基準を満たす特定のオブジェクトについての情報に対する複数の独立した要求が満たされる。具体化されるデータ構造は、データオブジェクトに関連付けられる属性のセット、及びこれもまたデータオブジェクトに対応し、データオブジェクトに対していつ変更が行われたかを示すオブジェクトシーケンスインジケータが投入されるシーケンス識別フィールドを含む。
2009528617.tif 000002
【特許請求の範囲】
【請求項１】
マスタ装置（２１２）とスレーブ装置（２１０）との間で通信するためにオブジェクトベースのプロトコルを利用する方法（７００）であって、
前記スレーブ装置との通信リンクを促進するステップであって、該スレーブ装置は、
（１）対応するオブジェクトシーケンスインジケータ（３１２、８３０、８４６）のセットがそれぞれ関連付けられる１つ又は複数のオブジェクト（２４２、２４６）と、
（２）該スレーブ装置上の最大の前記オブジェクトシーケンスインジケータを示す現在の最大シーケンス値インジケータ（２４８、２５０）と、
を含む、ステップ、
以前の最大シーケンス値インジケータに基づいて、前記スレーブ装置（２１０）上のオブジェクトについての情報に対する要求を通信するステップであって、前記以前の最大シーケンス値インジケータは、前記スレーブ装置（２１０）が以前にいつ前記マスタ装置（２１２）と通信したかを示す、ステップ、並びに
前記以前の最大シーケンス値インジケータ（８２６）及び前記オブジェクトシーケンスインジケータ（３１２、８３０、８４６）に基づいて、前記要求を満たすオブジェクトに関連する情報（２４３Ａ、２４３Ｂ、２４３Ｃ）を受信するステップ、
を含む、方法。
【請求項２】
請求項１に記載の方法において、前記マスタ装置はコンピューティング装置を含み、前記スレーブ装置はメディア再生装置を含む、方法。
【請求項３】
請求項２に記載の方法において、前記メディア再生装置は、オーディオファイル、ビデオファイル、又はデータファイルのうちの１つ又は複数を再生する装置である、方法。
【請求項４】
請求項１に記載の方法において、前記オブジェクトシーケンスインジケータは、値の集合内の値であり、該集合は、任意の２つの値について、後者の値が少なくとも前者の値と同じ極値である、方法。
【請求項５】
請求項４に記載の方法において、前記以前の最大シーケンス値インジケータを前記オブジェクトシーケンスインジケータと併せて利用するステップは、対応するオブジェクトシーケンスインジケータが前記以前の最大シーケンス値インジケータを超えるオブジェクトの第１のセットを判断するステップを含む、方法。
【請求項６】
請求項４に記載の方法であって、
前記セットオブジェクトの第１のセットへのリファレンスを前記マスタ装置に通信するステップ、又は
前記オブジェクトの第１のセットを前記マスタ装置に通信するステップ
のうちの１つ又は複数をさらに含む、方法。
【請求項７】
請求項１に記載の方法において、前記以前の最大シーケンス値インジケータは前記マスタ装置によって提供される、方法。
【請求項８】
請求項７に記載の方法であって、前記スレーブ装置から現在の最大シーケンス値インジケータを受信するステップ、及び、前記現在の最大シーケンス値インジケータを前記以前の最大シーケンス値インジケータとして記憶するステップ、をさらに含む、方法。
【請求項９】
請求項１に記載の方法であって、前記マスタ装置から削除されたオブジェクトのセットを識別するステップをさらに含む、方法。
【請求項１０】
１つ又は複数の実体のある機械可読媒体（２１１Ａ、２１１Ｂ）であって、該機械可読媒体上で具体化される１つ又は複数のデータオブジェクトのセット（２４２）、各該データオブジェクトにそれぞれ関連付けられるデータ構造（３００）、及び前記１つ又は複数のオブジェクトのセット（２４２）に関連付けられ、前記データオブジェクト（複数可）に関連する情報の提示を助ける最大シーケンス値インジケータ（２４８）を有し、前記データ構造（３００）は、
第１のデータオブジェクトに関連する属性の第１のセット（３１４）と、
これも前記第１のオブジェクトに対応し、前記最大シーケンス値インジケータ（２４８）に関して前記第１のデータオブジェクトにいつ変更が行われたかを示すオブジェクトシーケンスインジケータ（３１２）が投入されるシーケンス識別フィールド（３１０）であって、前記変更は新しいデータオブジェクトの作成を含む、シーケンス識別フィールド（３１０）と、
を含む、媒体。
【請求項１１】
請求項１０に記載の媒体において、前記最大シーケンス値インジケータは、前記データ構造（複数可）の前記オブジェクトシーケンスインジケータのいずれかと少なくとも同じ極値に更新される、媒体。
【請求項１２】
請求項１０に記載の媒体において、前記データオブジェクトに行われる変更は、前記オブジェクトに関連する属性への変更を含む、媒体。
【請求項１３】
請求項１０に記載の媒体であって、削除されたオブジェクトの指示をさらに含み、該オブジェクトは、少なくとも前記最大シーケンス値インジケータに関連してオブジェクトがいつ削除されたかを示す、対応するオブジェクトシーケンスインジケータを含む、媒体。
【請求項１４】
請求項１０に記載のデータ構造を利用するステップを含む方法であって、スレーブ装置の新たに作成されたオブジェクト、変更されたオブジェクト、又は削除されたオブジェクトのうちの１つ又は複数を識別する、方法。
【請求項１５】
１つ又は複数の実体のある機械可読媒体（２１１Ａ、２１１Ｂ）であって、該機械可読媒体上で具体化される機械可読命令のセットを有し、該機械可読命令のセットは、スレーブ装置（２１０）によって処理されると、該スレーブ装置（２１０）にデータオブジェクトのセット（２４２）についての情報（２４３Ａ、２４３Ｂ、２４３Ｃ）をマスタ装置（２１２）上で実行されている１つ又は複数の要求アプリケーション（２３４、２３６、２３８）に露出する方法（４００）を実行させ、該方法は、
複数の独立したオブジェクト情報要求（２４１Ａ、２４１Ｂ、２４１Ｃ）を前記要求アプリケーション（２３４、２３６、２３８）から受信するステップであって、前記オブジェクト情報要求はそれぞれ、前記データオブジェクトのセット（２４２）内の前記データオブジェクトの少なくとも一部についての情報に対する要求である、ステップ、
各該要求（２４１Ａ、２４１Ｂ、２４１Ｃ）から、前記スレーブ装置（２１０）がそれぞれの前記要求アプリケーション（２３４、２３６、又は２３８）と最後に通信したのはいつかを示す以前の最大シーケンス値インジケータ（２４８）をそれぞれ識別するステップ、及び
前に記憶されたオブジェクトシーケンスインジケータ（５１６）を前記以前の最大シーケンス値インジケータ（２４８）のそれぞれと併せて利用するステップであって、各前記要求アプリケーションが、対応するオブジェクトシーケンスインジケータが前記最大シーケンス値インジケータ（２４８）に関して基準を満たすデータオブジェクトのみについての情報（２４３Ａ、２４３Ｂ、２４３Ｃ）を受信するように前記複数のオブジェクト情報要求（２４１Ａ、２４１Ｂ、２４１Ｃ）のそれぞれを満たす、ステップ、
を含む、媒体。
【請求項１６】
請求項１５に記載の媒体において、前記オブジェクトシーケンスインジケータは、単調に増大する値の集合内の値である、媒体。
【請求項１７】
請求項１６に記載の媒体において、前記オブジェクトシーケンスインジケータは、他のデータオブジェクトへの変更に関連して変更がいつ行われたかを示す、媒体。
【請求項１８】
請求項１６に記載の媒体において、前記オブジェクトシーケンスインジケータは、タイムスタンプが一意のシーケンス位置を示さない場合であっても、他のデータオブジェクトの変更に関連して変更がいつ行われたかを示す、媒体。
【請求項１９】
請求項１５に記載の媒体において、前記機械可読命令は、削除されたオブジェクト、及び前記以前の最大シーケンス値インジケータに関連して前記削除されたオブジェクトがいつ削除されたかを識別するための命令をさらに含む、媒体。
【請求項２０】
請求項１５に記載の媒体において、前記機械可読命令は、前記データオブジェクトの少なくとも一部への１つ又は複数のリファレンスを前記スレーブ装置から前記マスタ装置に通信するための命令をさらに含む、媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
デジタルカメラ、パーソナルメディアプレーヤ、携帯電話、及び他の装置は、世界中でますます普及し続けている。ユーザは写真を撮り、音楽を聴き、ビデオを見る等、多くの場合、データをそれらの装置とコンピュータのような他の装置との間で共有する。例えば、音楽ファイルをまずコンピュータにダウンロードし、次いで携帯音楽プレーヤに転送することができる。デジタル写真を撮影し、次いでコンピューティング装置に転送することができる。解決されずに残っている重要な問題は、所与の装置のデータの変更を効率的且つユーザに望ましい方法で識別することである。
【０００２】
２つの説明のための例、すなわちデジタルカメラ及びデジタル音楽プレーヤを考える。デジタルカメラの場合、ユーザは数十枚又は数百枚の写真を撮影することができるが、すでに前の写真のセットをアップロードした後、一部のみをコンピュータにアップロードしたいことがある。又は、携帯音楽プレーヤの場合、そのコンテンツが操作されることがあり、行われる変更が何であれ、その変更をコンピュータ上で複製することが望ましいことがある。少なくとも２つの環境、すなわち電子装置の記憶容量の大幅な増大及び１つの装置が多くの開始アプリケーションと通信する必要性がこの問題を難しくしている。
【０００３】
携帯音楽プレーヤ及び他の装置は、日常的に数ギガバイトの情報を記憶しており、記憶容量は疑う余地なく引き続き増大していく。歴史的に、記憶容量が二次式的に増大してきたのに対して、転送速度は線形的に増大してきた。電子装置に記憶されている数十ギガバイトのデータについての情報の伝達は、数メガバイトのデータについての情報の伝達よりもはるかに困難である。現在、これが対処されている１つの方法は、電子装置に問い合わせて、そのコンポーネントの完全なマッピングを判断し、次いで要求アプリケーションに装置のコンテンツをどのように管理するかを判断させることである。このような枠組みでは、装置とＰＣとの間に関係が存在すると仮定されていない。ＰＣは、装置からのコンテンツのダウンロードにより、接続装置についての情報を学習する。
【０００４】
複数の技術により装置とコンピュータとの間のデータの転送速度の増大をてこ入れしようとしてきたが、様々な理由により、単なる転送速度の増大だけでは適切な解決策ではない。第１に、数十ギガバイトの情報をＰＣに不必要に送信することは、本質的に無駄である。第２に、適切な代替手段が存在しない場合、ユーザは必要以上に長く待たされる。そして、最も重大なことに、複数のアプリケーションが、結合された装置のコンテンツへのアクセスを求めて競合する。例えば、携帯音楽プレーヤがコンピュータに結合されるとすぐに、複数のオーディオファイルアプリケーションがプレーヤと通信リンクを確立しようとする。各プレーヤが独立して動作する場合、各プレーヤが、結合された装置のコンテンツについて学習するために、結合された装置についてのすべての情報をダウンロードする必要がある。
【０００５】
設定によっては、１対１の関係がコンピュータと電子装置との間に存在する。これは事を容易にするが、明らかな欠陥を有する。例えば、メディア再生アプリケーションによっては、特定のブランドのメディアプレーヤ装置とのみ動作するように設計されているものがある。この状況では、コンピューティング装置と電子装置との間に関係が存在すると想定することができる。これにより、データベースを同期する選択肢が利用することができるようになる。コンピューティング装置にデータベースが存在すると共に、電子装置にもデータベースが存在する。いずれかのデータベースに変更が行われた場合、一方に行われた変更が何であれ、その変更を他方に複製する対応がとられ、逆の場合も同様である。しかし、この枠組みは、コンピューティング装置上の２つ以上のアプリケーションが、結合された電子装置のデータについての情報を通信しようとする場合には実行不可能である。この困難な既知の問題は、マルチマスタ同期問題として知られている。ここでも、数ギガバイト、そして時には数テラバイトの情報を記憶するデータベースの同期は資源集中的であると共に、これから示すように不必要である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
まとめると、コンピューティング装置と電子装置との間でデータを同期させる２つの主要な方法は、各装置のデータベースをミラーリングするか、又はコンピューティング装置に結合された電子装置のすべてのコンテンツの完全なマッピングを受信することである。これらの方法のいずれも、装置のメディアコンテンツのすべてを実際に転送する必要なしに、装置のコンテンツについて高速且つ効率的に学習する効率的な方法を提供しない。例えば、数百枚の写真をデジタルカメラに残した後、ユーザはたった数枚の写真を追加撮影し、カメラをコンピューティング装置に再接続することがある。これらの方法のいずれも、数枚の最近の写真だけが新しい写真であることの指示を受信し、変更されたコンテンツを操作する選択肢をユーザに提示する能力をコンピューティング装置に提供する汎用的な方法を提供しない。この類の問題は、携帯電話、ＰＤＡ、携帯メディアプレーヤ等のような様々な装置に広がっている。
【課題を解決するための手段】
【０００７】
この概要は、詳細な説明においてさらに後述される複数の概念から選択された概念を簡略化された形で紹介するために提供される。この概要は、特許請求される主題の主要な特徴又は重要な特徴の識別を目的とせず、且つ特許請求される主題の範囲を限定するために使用されることも目的としていない。
【０００８】
本開示は、電子装置のようなメディア装置の特定のデータオブジェクトに関連するオブジェクト情報を効率的に受信し提示する方法及びデータ構造を記載する。データオブジェクトは、メディアファイル（オーディオ、ビデオ、ピクチャ等）のようなアイテムを含む。オブジェクト指向プリミティブ（オブジェクトメタデータ、装置メタデータ、及びオペレーション）が、複数の要求アプリケーションが装置との同期ベースの対話（選択的な列挙、取得、配置等）を実行することができるようにするために必要な情報のみを露出するために使用される。オブジェクトに対して変更が行われた場合、いつ変更が行われたかを関係的に判断するために後に使用することができるシーケンスインジケータを受信する。この方法は、同期クロック又は変更ログのような、装置間のいかなる確立された連携又は共有される情報にも頼らない。本発明は、多種多様な電子装置の変更されたコンテンツ、新しいコンテンツ、及び削除されたコンテンツの識別に関連する時間及びリソースの低減を含む技術分野においていくつかの実用的な用途を有する。
【０００９】
本発明の実施形態を添付図面の図を参照して以下において詳細に説明する。添付図面は参照により本明細書に援用される。
【発明を実施するための最良の形態】
【００１０】
これより説明する本技術の厳密な実施態様は、添付の特許請求の範囲から逸脱することなく変更が可能である。オブジェクトが装置で変更（作成及び削除を含む）された順番を識別することができるようにする属性が提供され、この属性にも、順番内の現在位置を識別することができるようにする少なくとも１つの属性が関連付けられる。なお、本明細書において使用される場合、「シーケンス（sequence：順番）」、「順次（sequential）」、及び他の変化形は、連続級数、又は隣接する値が共通の差を有する値の集合を意味することを意図しない。むしろ、どのような差としてもよい。したがって、集合｛１，４，８９７，６９８７｝は、本明細書において使用されるシーケンス内の値である。これによって、要求装置に対して、シーケンスの所望の範囲内に入る（例えば、或る値よりも大きい）特定のオブジェクトへのハンドルリストのような情報を高速で提示することが可能になる。
【００１１】
本発明の説明全体を通して、関連付けられるシステム及びサービスに関連する特定の概念の理解の補助を目的として、いくつかの頭字語及び略語表記が使用される。これらの頭字語及び略語表記は専ら、本明細書において表される概念を伝える容易な方法論を提供することを目的とし、決して本発明の範囲を限定する意図はない。以下がこれらの頭字語のリストである。
【００１２】
【表１】
2009528617.tif 000003
本発明の例示的な態様を以下においてさらに詳細に説明する。いくつかの態様のリストは、他の態様が存在しないことを示すものとして解釈されるべきではなく、選択されたリストが例示のために提供される。
【００１３】
第１の例示的な態様では、スレーブ装置上の様々なオブジェクトに関連するオブジェクト情報を受信する方法をマスタ装置に実行させるコンピュータプログラム製品が提供される。一実施形態では、スレーブ装置上の各オブジェクトには、単調シーケンスインジケータが関連付けられる。本方法は、マスタ装置から、スレーブ装置がいつマスタ装置と最後に通信したかを示す以前の最大シーケンス値インジケータを検索するステップを含む。以前の最大シーケンス値インジケータ及び様々なオブジェクトのオブジェクトシーケンスインジケータに基づいて、スレーブ装置上の、新しいオブジェクトのセット、又はスレーブ装置がマスタ装置と最後に通信してから変更されたオブジェクトのセット、に関連付けられる情報を受信することができる。
【００１４】
第２の例示的な態様では、電子装置のオブジェクトに関連する情報の別の装置への提示を支援する、具体化されたデータ構造が提供される。装置上の各データオブジェクトにデータ構造が存在した。オブジェクトのセットに関連する最大シーケンス値インジケータ（ＭＳＶＩ）も提供される。データ構造は、オブジェクトの様々な態様を記述する様々な属性を含むが、最大シーケンス値インジケータに関連していつデータオブジェクトに変更が行われたかを指示するオブジェクトシーケンスインジケータ（ＯＳＩ）が投入されるシーケンス識別フィールドも含む。新しいオブジェクトの作成は、「変更」の範囲内に含まれる。
【００１５】
第３の例示的な態様では、少なくとも１つのＭＳＶＩに関連付けられる記憶媒体において具体化されるデータオブジェクトのセットに関連付けられる情報を記憶する方法が提供される。本方法は、複数のそれぞれの要求アプリケーションから複数の独立したオブジェクト情報要求を受信するステップであって、各要求はデータの少なくとも一部についての情報に対する要求である、ステップ、スレーブ装置がいつそれぞれの要求アプリケーションと最後に通信したかを示すそれぞれの前のＭＳＶＩを各要求から識別するステップ、及びそれぞれの以前の最大シーケンス値インジケータに関連して前に記憶されたオブジェクトシーケンスインジケータを利用するステップであって、各要求アプリケーションが、対応するオブジェクトシーケンスインジケータが最大シーケンス値インジケータに関する基準を満たすデータオブジェクトのみについての情報を受信するような各要求を満たす、ステップを含む。
【００１６】
第４の例示的な態様では、データオブジェクトが装置上で変更又は作成されたシーケンスを識別する方法が提供される。本方法は、前に割り当てられたシーケンス位置インジケータのセットに関連して単調変化するシーケンス位置インジケータの各データオブジェクトへの関連付けを提供するステップを含む。本方法は、新たに作成されたオブジェクト及び定義の時点後に少なくとも１つの属性が変更されたオブジェクトを含むオブジェクトのセットに対応するオブジェクトリファレンスのセットの通信を提供するステップをさらに含む。
【００１７】
最後の例示的な態様では、一実施形態は、スレーブ装置とマスタ装置との間での情報の交換を容易にする具体化される命令の形態をとる。スレーブ装置上の1つ又は複数のオブジェクトから成るセットに関連付けられるベンチマークシーケンスインジケータの受信が提供される。各オブジェクトにはそれぞれ、単調シーケンスインジケータが関連付けられる。どのオブジェクトがスレーブ装置上にあるかの判断も、ベンチマークインジケータに基づいて提供される。
【００１８】
本発明は、個人情報端末又は他のハンドヘルド装置のようなコンピュータ又は他の機械によって実行される、プログラムモジュールのようなコンピュータ実行可能命令を含むコンピュータコード又は機械使用可能命令の一般的な文脈の中で説明することができる。一般に、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロトコル等を含むプログラムモジュールは、特定のタスクを実行するか、又は特定の抽象データ型を実施するコードを指す。本発明は、ハンドヘルド装置、家庭用電化製品、汎用コンピュータ、より特殊なコンピューティング装置等を含む様々なシステム構成で実施することができる。本発明は、タスクが通信ネットワークを通じてリンクされた複数の遠隔処理装置により実行される、分散コンピューティング環境において実施することもできる。
【００１９】
特に図１を参照して、例示的なマスタ装置１００の態様が提供される。マスタ装置１００は、コンピュータ又はコンピューティング装置、ゲームコンソール、ステレオヘッドユニット等であることができるが、適切な動作環境の一例に過ぎない。これは本発明の使用又は機能の範囲に対する限定の示唆を何ら意図するものではない。また、図示されるコンポーネントの任意の1つ又は組み合わせに関連する依存又は要件の解釈があるべきではない。
【００２０】
図１を参照すると、マスタ装置１００は、以下の装置、すなわち、メモリ１１２、1つ又は複数のプロセッサ１１４、1つ又は複数の提示インタフェース１１６、入出力ポート１１８、入出力コンポーネント１２０、及び例示的な電源１２２を直接又は間接的に結合するバス１１０を備える。バス１１０は、（アドレスバス、データバス、又はこれらの組み合わせのような）1つ又は複数のバスであり得るものを表す。図１の各種ブロックは、明確さのために線で示されるが、実際には各種コンポーネントの線引きはそれほど明確ではなく、比喩的に言えば、線は、より正確にはグレーで曖昧である。例えば、表示装置のような提示コンポーネントをＩ／Ｏコンポーネントとして考えることもできる。また、プロセッサはメモリを有する。これは当該技術分野においては当然のことであると本発明者らは認識しており、図１の図は、本発明の1つ又は複数の実施形態に関連して使用することができる例示的なマスタ装置の例示に過ぎないことを繰り返しておく。「ワークステーション」、「サーバ」、「ラップトップ」、「ハンドヘルド装置」等のようなカテゴリは区別されず、これらはすべて図１の範囲内にあると意図され、一種のマスタ装置としてコンピュータと呼ばれる。
【００２１】
マスタ装置１００は、通常、様々なコンピュータ可読媒体を含む。限定ではなく例として、コンピュータ可読媒体は、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、電気的消去可能プログラム可能読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、又は他のメモリ技術、ＣＤＲＯＭ、デジタル多用途ディスク（ＤＶＤ）、又は他の光学若しくはホログラフィメディア、磁気カセット、磁気テープ、磁気ディスク記憶装置、若しくは他の磁気記憶装置、ＵＳＢドライブ、フラッシュカード等のリムーバブルメディア、及び搬送波若しくは所望の情報の符号化に使用することができ、マスタ装置１００がアクセス可能な他の任意のメディアを含むことができる。メモリ１１２は、揮発性メモリ及び／又は不揮発性メモリの形態のコンピュータ記憶媒体を含むと共に、上記のメディア種類のいずれかを含む。
【００２２】
マスタ装置１００は、メモリ１１２又はＩ／Ｏコンポーネント１２０のような各種エンティティからデータを読み取る1つ又は複数のプロセッサを含む。提示インタフェース１１６は、データ指示をユーザ又は他の装置に提示し、装置１００の一部であってもよく、又は装置１００に結合されてもよい。例示的な提示コンポーネントは、表示装置、スピーカ、印刷コンポーネント、振動コンポーネント等を含む。入出力ポート１１８は、マスタ装置１００を、そのうちのいくつかは内蔵されてもよい入出力コンポーネント１２０を含む他の装置に論理的に結合することができるようにする。例示的なコンポーネントは、マイクロホン、ジョイスティック、ゲームパッド、衛星用パラボラアンテナ、スキャナ、プリンタ、無線装置等を含む。
【００２３】
これより図２Ａを参照して、マスタ装置２１２に結合されたメディア装置２１０を示す。メディア装置２１０は、参照符号２１１Ａ及び２１１Ｂで示される１つ又は複数の機械可読媒体を読み取ることができる。媒体は、上述したように永久的又は取り外し可能であることができる。各種実施形態では、メディア装置２１０は、デジタルカメラ２１４、ＰＤＡ２１６、携帯電話２１８、携帯音楽プレーヤ２２０、又は携帯メディアプレーヤ２２２等の電子装置の形態、又は図示されていないが、省略記号２２４で意図されるように示される様々な他の装置の形態をとることができる。以下、メディア装置２１０は、本発明の文脈の中ではマスタ装置２１２に対するスレーブとして動作するため、スレーブ装置２１０と呼ばれる。マスタ装置２１２は、本発明の様々な機能態様を実行するために使用される機械可読命令のセット２２５を含む。マスタ装置２１２は、ラップトップコンピュータ２２６、ラジオヘッドユニット２２８、ゲームコンソール２３０、他の何らかの形態のコンピューティング装置２３２、又は図示されていないがこれも省略記号で表される他の何らかのマスタ装置の形態をとることができる。
【００２４】
マスタ装置２１２は、参照符号２３４、２３６、及び２３８で示される複数の要求アプリケーションを含むものとして示される。これは、スレーブ装置２１０がマスタ装置２１２上の要求アプリケーション２３４〜２３８と１対多の関係であるため、ピアツーピア環境ではない。各マスタアプリケーションはそれぞれ、参照符号２３４Ａ、２３６Ａ、及び２３８Ａでそれぞれ示される以前の最大シーケンス値インジケータ（ＭＳＶＩ）を含む。さらに詳細に以下において説明するが、以前の最大シーケンス値インジケータはスレーブ装置２１０によって提供され、スレーブ装置がマスタ装置２１２に接続するときのスレーブ装置の最大シーケンスインジケータを示す。いくつかの実施形態では、２つのベンチマークインジケータ、すなわち以前の最大シーケンス値インジケータ及び現在の最大シーケンス値インジケータが維持され、現在の最大シーケンス値インジケータは、新たに結合されたスレーブ装置２１０から現在の値をとり、以前の最大シーケンス値インジケータは、最も新しく置換された現在の最大シーケンス値インジケータを記憶する。ここでも、これについては特に図８を参照してさらに詳細に以下において説明する。
【００２５】
マスタ装置２１２はスレーブ装置２１０への要求を開始し、スレーブ装置２１０は、スレーブ装置２１０上の様々なオブジェクトに関連付けられる情報で応答する。スレーブ装置２１０は、複雑さのより低い実施形態よりも複雑な一実施形態を示す。例えば、スレーブ装置２１０は、オブジェクトの２つの別個のセット、すなわちオブジェクトの第１のセット２４２及びオブジェクトの第２のセット２４６を示す。オブジェクトのセット２４２は、対応する最大シーケンス値インジケータ２４８を含む。同様に、オブジェクトのセット２４６も対応する最大シーケンス値インジケータ２５０を含む。この応用形態で、様々なシナリオを説明する。そして、より複雑な説明を必要としない状況については一般に、それぞれのシーケンスインジケータと併せて使用されて、アプリケーション２３４のような例示的なアプリケーションに情報を提示する最大シーケンス値インジケータ２４８を有するオブジェクトのセット２４２を参照する。
【００２６】
本発明の一実施形態では、オブジェクト属性ベース（object property-based）（ＯＰＢ）プロトコルが、それぞれの情報要求２４１Ａ、２４１Ｂ、及び２４１Ｃに応答して、（オブジェクトハンドル、他のリファレンス、概要情報、及びオブジェクト自体のような）情報２４３Ａ、２４３Ｂ、及び２４３Ｃのマスタ装置２１２及び妥当な場合にはそれぞれの要求アプリケーション２３４、２３６、及び２３８への通信を容易にするために使用される。
【００２７】
本明細書において使用される場合、ＯＰＢプロトコルは、すべての要素がオブジェクトとして提示され、オブジェクト自体を検索する必要なく属性によって説明される任意のプロトコルである。コンテンツは、オブジェクトとして露出され、オブジェクトとは別個の属性によって説明される。オブジェクトベースのプロトコルとは、動作、応答、及び（オプションとして）イベントの組み合わせを使用して装置及びそのコンテンツへのアクセスを提供するプロトコルである。プロトコルはこれらを使用してコンテンツを説明し、コンテンツはオブジェクトの形で提示される。オブジェクトは、プロトコルにおいてオブジェクトをアドレス指定するために使用されるインジケータ（例えば、オブジェクトハンドル、ファイル名、又はオブジェクト名）、オブジェクトを説明し、バイナリペイロード自体を検索する必要なく検索可能な選択されたメタデータ（例えば、属性）、及びオブジェクトの本体を構成するバイナリファイルを含む１つ又は複数のバイナリリソースから成る。属性のみから成り、バイナリコンポーネントを有しないオブジェクトが存在する。これらは抽象オブジェクトと呼ばれる。
【００２８】
例示的なこのようなプロトコルは媒体転送プロトコル（ＭＴＰ）を含み、これについては、１）２００４年３月３日に出願された米国特許出願第１０／８３６，２６０号明細書、２）２００４年５月５日に出願された米国特許出願第１０／８３９，２９９号明細書、及び３）MSDN.Microsoft.comから入手可能な「メディア転送プロトコル（Media Transfer Protocol）」という名称の仕様書において電子装置間でデータを同期する追加の情報と共により十分に説明する。これらの３つの各文献は、少なくとも説明した目的のために参照により本明細書に明示的に援用される。
【００２９】
オブジェクトベースのプロトコルでは、オブジェクトは全体オブジェクトとして転送される。すなわち、要求がオブジェクトに対して行われる。このような方式の利点は、要求されたファイルがファイル構造及びオペレーティングシステムのようなことにとらわれなくなることである。したがって、ファイルは、多様なオペレーティングシステム及びファイルシステムにわたって通信することができる。ファイルは、単純に或る装置から別の装置に転送される相互のものになる。なお、本明細書においてファイル転送に言及する場合、ファイルを実際に移動するよりもむしろファイルのコピーを転送する概念を含むことが意図される。これは当該技術分野において明確に意図されることであり、本願全体を通してその都度、区別を明確にすることは本発明を分かりにくくするであろう。
【００３０】
一実施形態では、マスタ装置２１２は主導権を有し、スレーブ装置２１０はそのコンテンツを露出しようとする。ピアツーピア環境では、それぞれの役割を逆にすることができる。すなわち、マスタ装置はスレーブ装置であることもでき、スレーブ装置はマスタ装置であることもできる。本発明は、ピアツーピア環境の問題とは本質的に異なる問題を呈する１対多環境において関連する問題を解決することを対象とする。本発明の適用可能な動作環境は、メディアプレーヤにコンテンツを要求するカーラジオ、結合された装置の情報を要求するゲームコンソール、並びに図２Ａに明示的に示される例及び本開示を読んだ当業者により意図される他の多くの設定の両方の他の無数の例を含む。
【００３１】
上述したように、本発明が対処する問題の１つ（１つだけではない）は、新しいコンテンツ又は変更されたコンテンツを電子装置の要求アプリケーションに高速に露出することができることである。この問題には多くの側面があり、さらなる目標は、一連の変更の中で、少なくとも、装置がマスタ装置２１２と最後に通信した時刻に関連して特定のオブジェクトへの変更がいつ行われたかを識別することができることである。様々な方法が上手く機能しない。例えば、デジタルカメラのクロックは、写真が実際にいつ撮影されたかの信頼性のある指標ではなく、要求装置との最後の通信に関連して変更がいつ行われたかの指示を提供せず、さらには、写真が撮影されたときのシーケンスロケーションを一意に識別するのに十分な精度さえも提供することができない。不都合なことに、多くの消費者は単に、デジタルカメラのクロックをプログラムしない。
【００３２】
さらに、人が時間帯を横断する場合、特に西に向かって移動する場合、クロックを設定する人であってもクロックを逆戻して設定することになり、特定の写真が、実際には別の写真よりも後に撮影された際に、その別の写真よりも前に撮影されたとの誤った指示に繋がり得る。クロックは、装置がマスタ装置２１２と最後にいつ通信したかの点での比較測定も何ら提供しない。
【００３３】
クロックを潜在的なシーケンスインジケータとして使用することの別の例示的な欠点は、クロックが十分な精度を有しないことがあることである。ハイエンドカメラによっては、控えめに見積もって毎秒数枚の写真を含め、複数の写真を高速連写する機能を有するものがある。クロックが最低でも秒単位でしか時刻を刻まない場合、高速に連続して速いシャッタ速度で撮影された１０枚の写真が、１０枚すべてにわたって同じタイムスタンプを受けるおそれがある。
【００３４】
ピアツーピア同期技術等を含む既存の技術を目を向けることは、スレーブ装置２１０等の電子装置上のオブジェクトに帰する関係的シーケンスを普遍的に識別することができる解決策を求めるに当たって有益ではない。このようなレガシーロジックは、物事が異なる枠組みで行われていた頃の古い考えが、オブジェクトのセット２４２と多くの開始プリケーション２３４、２３６、及び２３８との間の１対多関係を含む本発明の動作環境においての問題の解決に適用されるに当たって有用ではないため、実際には問題を混乱させる。ここでも、問題の１つは、マスタ装置２１２上のスレーブ装置２１０のコンテンツ（及び恐らくマスタアプリケーションが存在するのと同数のその多くのインスタンス）を完全にミラーリングする必要なく、且つ電子装置の完全なコンテンツを列挙する必要なく、変更されたオブジェクト（属性が変更されたオブジェクトを含む）及び新たに作成されたオブジェクトを高速に識別することができることであった。
【００３５】
図２Ｂは、他のオブジェクトが変更される（変更されるか、又は新しい）のに対して、どのようにしてスレーブ装置２１０のいくつかのオブジェクトを変更されないままにすることができるかを示す。例えば、参照符号２６０で表されるオブジェクトは変更されていないオブジェクトである。すなわち、スレーブ装置２１０がマスタ装置２１２と最後に通信した時刻に関連して変更されていない。いくつかの実施形態では、この区別は、マスタ装置２１２に単に接続されたスレーブ装置２１０が通信イベントとして機能しないように、ユーザ制御であることもできれば、又は装置制御であることもできる。
【００３６】
変更されたオブジェクトは参照符号２６２で示される。本明細書において使用される場合、「変更された」オブジェクトは、変更されたオブジェクトであるか、又は新たに作成されたオブジェクトを含む。削除ファイルリスト２６４も示され、スレーブ装置２１０から削除されたオブジェクトを追跡する方法を提供する。このリストは、所望よりも多くのスペースを消費しないように、予め設定された長さに設定することができる。例えば、最新のＮ個のオブジェクトを追跡するように構成することができる。マスタ装置２１２は、どのオブジェクトが削除されたかを識別するために、単にこのリストを要求することができる。一実施形態では、リストは、削除されたオブジェクトを識別する識別子、及び少なくともスレーブ装置の最大シーケンス値インジケータ２４８又は２５０に関連していつオブジェクトが削除されたか、既存のオブジェクトにいつ変更が行われたか、又は新しいオブジェクトがいつ作成されたかに関連しても示す対応するシーケンスインジケータで構成される２×Ｎアレイ２６５の形をとる。
【００３７】
本発明の一実施形態では、変更されたオブジェクト又は新たに作成されたオブジェクト２６２を識別することは、一実施形態では、他のオブジェクトへの変更に関連して、またいくつかの実施形態では、少なくとも、最大シーケンス値インジケータであることができるベンチマークインジケータのみに関連して、いつオブジェクトに変更が行われたかを識別するために使用することができるオブジェクトシーケンスインジケータ（ＯＳＩ）を受信する追加属性を各オブジェクトに提供することによって達成される。シーケンスインジケータは、単調に増大又は単調に減少することができる。両シナリオにおいて、後続値は、少なくともすべての先行値と同じ大きさである。単調インジケータは非増大又は非減少のいずれかである。非減少値は決して減少せず、隣接する値は同じであることができる。同様に、非増大値も決して減少せず、隣接する値は同じであることができる。一実施形態では、シーケンスインジケータは非減少である。すなわち、値は永続的に増大し、決して変動しない。しかし、非常に大きな数で開始し、時間が進むにつれてデクリメントすることができることも添付の特許請求の範囲内に意図される。したがって、一実施形態では、本発明は具体化されたデータ構造の形をとり、そのうちの例示的な１つのデータ構造を図３Ａにおいて符号３００で参照する。
【００３８】
図３Ａは、本発明の一実施形態に関連して使用することができるデータ構造の例示的な表現を示す。このデータ構造は、その属性の１つとしてシーケンスインジケータ３１２を含む新しいフィールドであるシーケンス識別フィールド３１０を含む。データ構造３００は、例示的にファイル名属性３１６、解像度属性（場合によっては）３１８、及び符号３２０で例示的に表される様々な他の属性を含む、符号３１４により参照される他のデータオブジェクト属性のセットも含む。対応する属性のうちの１つと比較して、メディアペイロード３２６自体が変更されたか否かを示す対応する属性３２４を受信するために、ペイロード変更インジケータフィールド３２２も本発明により提供される。例えば、ペイロード変更インジケータ３２２は、メディアペイロードの実際のコンテンツが変更された場合には「１」であることができ、それに対してペイロードに関連付けられる属性が変更されたが、ペイロード自体は変更されない場合には「０」であることができる。
【００３９】
後述するように、データオブジェクトが変更されるとき、又は新たに作成されるとき、そのシーケンス識別フィールド３１０にシーケンスインジケータ３１２が投入される。装置は、数百、数千、又はさらにより多くのデータオブジェクトを、それぞれ対応するシーケンス識別フィールド３１０及びシーケンスインジケータ３１２と共に記憶することができる。シーケンスインジケータのこれらの集まりが、通常、最大シーケンス値インジケータに関連して、及び／又は場合によっては互いに関連して様々なオブジェクトに対して行われた変更の順番を識別することができるように、装置に関連付けられるが、データオブジェクトのセットのそれぞれに関連付けることもできる最大シーケンス値インジケータと併せて使用される。図３Ｂは単に、符号３００Ａで参照されるデータ構造３００を表す代替の方法を示す。これもシーケンス識別フィールド３１０Ａ及び対応するシーケンスインジケータ３１２Ａを含む。当業者は、図３Ａのデータ構造を示す無数の方法があり、図３Ａは限定的な性質を意図せず、一連の変更の中で、その時点のオブジェクトへの変更がいつ行われたかを属性が示すような、追加の属性をオブジェクトに関連付ける具体化された概念を単に示すことを意図することを理解するであろう。
【００４０】
したがって、一実施形態では、本発明は、変更が行われた順番を識別するように、オブジェクト属性ベースのプロトコルにおいて単調増加属性を強化すると共に、その順番の中でその変更が行われた位置を識別するようにオブジェクトのセット及び／又は装置自体に関連付けられるベンチマークインジケータをさらに強化する。これは、作成されたか、又はマスタ装置２１２との最後の通信後のような何らかのイベント後に変更されたオブジェクトのリストを検索する能力を提供する。
【００４１】
本発明の多くの利点の１つは、データがスレーブ装置２１０にどのように記憶されるかの実施詳細に関して高度の柔軟性を提供することである。各オブジェクトが、マスタ装置２１２が探索先であると知っているフィールドであるフィールド３１０Ａのようなシーケンス識別フィールドを付随するようにオブジェクトが記憶される限り、はるかに大きな自由度を開発者に与えることができる。データ（例えば、２４２、２４６、２４８、及び２５０）は様々な方法で記憶することができるが、マスタ装置２１２には標準形式で提示される。装置２１０が変更を追跡する方法は装置毎に異なってよく、装置の製造業者に任せることができる。これは実際に本発明の恩恵である。装置が変更をどのように内部に記憶しているかに関係なく、このような変更の追跡を表現する共通のプラットフォームを確立することにより、装置の種類と要求アプリケーションとの間に１対１の関係は必要なく、独自仕様のソリューションは必要ない。したがって、図３Ａ及び図３Ｂの例示的なデータ構造とこれまで呼ばれていたものは、軽率に例示と呼ばれていたわけではないことを理解することが重要である。それらは実に単なる例示にすぎない。様々な記憶方式を利用することができ、２つのみが単に説明を目的として提供される。
【００４２】
スレーブ装置２１０がデータを記憶することができる単なる一方法のさらなる詳細を、図４をまず参照して提供する。図４の方法４００は、装置、又はデータオブジェクトのセットに関連付けるべき最大シーケンス値インジケータについてのステップ４１０が提供されることを示す。したがって、一実施形態では、最大シーケンス値インジケータは図２Ａにおける参照符号２４８に対応し、データオブジェクトのセットは参照符号２４２に対応する。最大シーケンス値インジケータは、特定の値を有するベンチマークインジケータである。最大シーケンス値インジケータの値は、様々な状況に基づいて可変である。例えば、一実施形態では、マスタ装置２１２と通信があった後に更新される。他の実施形態では、オブジェクトのシーケンスインジケータが更新された後に更新される。さらに他の実施形態では、自動的に定期的に更新される。説明はまず、変更又は変更のセットがスレーブ装置２１０上のオブジェクトに対して行われる毎に、最大シーケンス値インジケータが更新される実施形態に関して提供する。
【００４３】
図４に戻ると、ステップ４１２において、シーケンス識別フィールドを含むデータ構造が、各データオブジェクト２４２に提供される。したがって、図３Ａに示されるフォーマットのデータ構造を使用することができる。ステップ４１４において、任意のオブジェクト２４２が変更されたか否か、又は新たに作成されたか否かが判断される。本発明は、既存のオブジェクトへの変更を追跡すると共に、新しいオブジェクトがいつ作成されたかを追跡することができる。オブジェクトへの変更は、そのオブジェクトに関連付けられる属性への変更を含む。
【００４４】
変更がオブジェクトに対して行われている場合、処理はステップ４１６に続き、対応するオブジェクトのシーケンスインジケータ３１２が最大シーケンス値インジケータ２４８よりも大きな値に設定される。当業者は、同様の機能を達成する方法を理解するであろう。それらの方法は添付の特許請求の範囲内にあると意図される。非常に大きな数で始まり、すべての数が初期数に関連して低減する説明のための例についてすでに説明した。この実施形態では、最大シーケンス値インジケータが、ステップ４１８において、オブジェクトが変更されるまで、又はオブジェクトが作成されるまでスレーブ装置２１０が待つ（４２０）状態に処理が戻る前に更新される。
【００４５】
これより、図５を参照して本発明の一実施形態に関してより詳細な説明を提供する。図５は、流れ図並びに符号５１０、５１２、及び５１４で参照される３つの状態のデータオブジェクトのセット及び対応するオブジェクトシーケンスインジケータ（ＯＳＩ）を示す。状態５１０、５１２、及び５１４は、スレーブ装置２１０上のオブジェクトの異なる状態を表す。第１の状態５１０では、オブジェクトシーケンスインジケータのセットが対応するオブジェクトのセット５１８に関連付けられる。
【００４６】
オブジェクトシーケンスインジケータ５１６は、値「１００１」、「１００２」、「１００３」、及び「１００４」を有する。凡例５２０から分かるように、各オブジェクトは変更されていない状態である。ステップ５２２は、セット５１８内のオブジェクトの１つに対して変更が行われたことを示す。この例では、オブジェクト５２４が状態を変更するものと仮定し、これは符号５２６により参照される。流れ図５００は、ステップ５２８において、変更されていない状態から変更状態への遷移が、参照符号５２８によって示されるオブジェクトの対応するオブジェクトシーケンスインジケータを更新することにより示されることを示す。ここで、オブジェクト５２４のオブジェクトシーケンスインジケータは、「１００２」から「１００６」に更新される。数値「１００６」は、その時点の最大シーケンス値インジケータ５３０（値「１００５」を有する）を参照し、オブジェクト５２６のオブジェクトシーケンスインジケータを最大シーケンス値インジケータ５３０よりも大きな値に設定することによって選択された。最大シーケンス値インジケータを本発明の各種実施形態に基づいて更新することができるか、又は更新することができないかを示す判断ステップが、参照符号５３２によって示される。例えば、第１の実施形態では、最大シーケンス値インジケータは更新されず、処理はステップ５３４に続き、ステップ５３４は、最大シーケンス値インジケータの値「１００５」が、オブジェクト５２６の対応するオブジェクトシーケンスインジケータの更新後も続くことを示すプレースホルダステップである。スレーブ装置２１０がマスタ装置２１２と最後に通信したとき、「１００５」の最大シーケンス値インジケータ５３０もマスタ装置２１２に通信されるため、これが成り立つことができる。
【００４７】
したがって、マスタ装置２１２が、スレーブ装置２１０と最後に通信したときから後のすべての変更を発見したい場合、マスタ装置２１２との通信後に行われたすべての変更が、以前の最大シーケンス値インジケータ５３０よりも大きなシーケンスインジケータで示される限り、そうすることができる。この説明は、このような枠組みが実施者の所望に基づいて可能であることを示すために含まれるものである。
【００４８】
しかし、別の実施形態では、最大シーケンス値インジケータは、自動的に更新されるか、又はオブジェクトのオブジェクトシーケンスインジケータの更新に付随して更新される。このような場合、処理はステップ５３６に続き、ステップ５３６は、最大シーケンス値インジケータが、例えば、２だけ更新される一実施形態を示し、オブジェクトのオブジェクトシーケンスインジケータは初期最大シーケンス値インジケータ５３０よりも１だけ大きな値に更新される。再び、状態５１４は、オブジェクト５２６と同じ値である恐らく１００６というオブジェクトシーケンスインジケータを有するものとして作成された新しいオブジェクト５３８を示す。しかし、別の実施形態では、オブジェクト５３８のオブジェクトシーケンスインジケータは「１００６」よりも大きな値をとる。この実施形態では、最大シーケンス値インジケータは、参照符号５４０で示されるように、さらに１だけインクリメントされて値「１００７」をとる。各オブジェクトのオブジェクトシーケンスインジケータが更新された後、最大シーケンス値インジケータが更新されない場合、スレーブ装置２１０がマスタ装置２１２に結合されたときに更新され、いずれのオブジェクトシーケンスインジケータ５１６よりも大きな値が与えられる。
【００４９】
これより図６を参照して、スレーブ装置２１０がオブジェクトのセット２４２についての情報をマスタ装置２１２に露出する例示的な方法が提供され、符号６００で包括的に参照される。ステップ６１０において、スレーブ装置２１０は、（符号２４１Ｃ、２４１Ｂ、及び２４１Ｃで示されるような）複数のオブジェクト情報要求を２３４、２３６、及び２３８のような複数の要求アプリケーションから受信することができる。このような情報を、様々なオブジェクトの変更に関連付けられるシーケンス情報として単一のアプリケーションのみではなく複数のアプリケーションに提供することができることは、本発明のもう１つの利点である。
【００５０】
スレーブ装置２１０がマスタ装置２１２に結合されると、多くのアプリケーションは、スレーブ装置２１０と通信しようと試みることができる。例えば、スレーブ装置２１０がオーディオプレーヤ２２０の形をとる場合、様々な供給メーカ製の様々なオーディオ再生アプリケーションがすべて、スレーブ装置２１０のマスタ装置２１２への接続を検知し、装置に問い合わせしようとする。恐らく、新しいコンテンツをすべて列挙するか、又は特定の基準を満たすコンテンツのみを列挙するような２４１Ａ、２４１Ｂ、２４１Ｃのような要求がスレーブ装置２１０に送られる。
【００５１】
これらの要求を満たすために、スレーブ装置２１０は、ステップ６１２において、適切な以前の最大シーケンス値インジケータを求める。例えば、スレーブ装置２１０がアプリケーション２３４から要求を受信した場合、スレーブ装置２１０は、アプリケーション２３４に関連する正確な最大シーケンス値インジケータが符号２３４Ａで示される最大シーケンス値インジケータであると判断する。同様に、要求２４１Ｂがアプリケーション２３６からのものである場合、アプリケーション２３６は、スレーブ装置２１０が、最大シーケンス値インジケータ２３６Ａが正確な最大シーケンス値インジケータであることを知るようなロジックを提供する。
【００５２】
ステップ６１４において、スレーブ装置２１０は、要求アプリケーションの最大シーケンス値インジケータを（２４２又は２４６のような）オブジェクトのセットのシーケンスインジケータと共に使用して、各要求を満たす。例えば、要求アプリケーション２３８が、セット２４６内で新しいオブジェクトをすべて列挙する要求２４１Ｃをスレーブ装置２１０に送信した場合、スレーブ装置２１０は、各オブジェクト２４６のシーケンス識別フィールド３１０を比較し、シーケンスインジケータが２３８Ａのシーケンスインジケータよりも大きいオブジェクトに関連付けられる情報２４３Ｃを返す。アプリケーション２３８は、最大シーケンス値インジケータ「９７３」を有する写真アプリケーションであることができる。スレーブ装置２１０がカメラであり、参照符号２４６で示されるセットを構成する数千枚の写真を有するが、２枚のみの画像が「９７３」よりも大きなオブジェクトシーケンスインジケータを有する場合、それらの２枚の写真のみに関連付けられる情報が装置２１２上の要求アプリケーション２３８に送られる。
【００５３】
同様に、アプリケーション２３８が、何らかのイベントに先だって、又は何らかのイベント後に削除されたすべてのオブジェクトの指示を要求した場合、スレーブ装置２１０は削除ログ２６４を参照して、このような要求を満たすことができる。別の例では、アプリケーションは、オブジェクトの実際のバイナリファイル又はメディアペイロード３２６が変更されたか否かのみの通知を要求し得る。このような場合、スレーブ装置２１０は、様々なオブジェクトのペイロード変更インジケータ３２２を参照して、どのオブジェクトのメディアペイロードが変更されたかを迅速に示すことができる。
【００５４】
上述したように、スレーブ装置２１０への情報の記憶の態様に関連するより低レベルの詳細は様々であることができ、ひいては情報がどのように記憶されるか、さらにはどのようにマスタ装置２１２に提示されるかのより低レベルの詳細も様々であることができる。例えば、一実施形態では、変更がオブジェクトに対して行われる毎に、そのオブジェクトの対応するオブジェクトシーケンスインジケータが更新され、そのオブジェクトのインジケータ３１６をログに追加することができ、ログは、要求アプリケーションの情報要求を満たすためのクイックリファレンスとして機能する。他の実施形態では、要求の受信に起因してデータに対して照会を実行することができる。この実施形態では、要求アプリケーションが、例えば、或る数よりも大きなシーケンスインジケータを有するすべてのデータオブジェクトを要求する場合、提供される基準に基づいてメタデータ３１４、３１０、３２２を素早く照会することができる。より重要なことは、シーケンス識別フィールド３１０がオブジェクトに関連付けられ、このようなオブジェクトのタイミングを少なくともベンチマークインジケータに関連して、しかし他の実施形態では、他のオブジェクトに行われた変更に関連して判断することができるように、そのオブジェクトの変更に起因して入力されるように、データ構造がオブジェクトベースのプロトコルと併せて提供されることである。
【００５５】
これより図７を参照して、マスタ装置がスレーブ装置２１０に記憶されているオブジェクトについての情報を受信する方法を実行することができる例示的な方法として、フロー７００を提供する。ステップ７１０において、マスタ装置２１２は、スレーブ装置２１０がマスタ装置２１２に結合されたことの指示を受信する。ステップ７１２において、マスタ装置２１２は、特定のアプリケーションに関連付けられ、アプリケーション固有であり得る以前の最大シーケンス値インジケータを記憶装置から検索する。したがって、アプリケーション２３４が関連するアプリケーションである場合、最大シーケンス値インジケータ２３４Ａを受信することになる。同様に、アプリケーション２３６は最大シーケンス値インジケータ２３６Ａを検索することになる。アプリケーション２３８に対しても同様である。
【００５６】
上述したように、マスタ装置２１２又はより詳細にアプリケーション２３４のようなアプリケーションは、２つのベンチマークインジケータ、すなわち以前のベンチマークインジケータ及び現在のベンチマークインジケータを参照することができる。このような方式では、以前の最大シーケンス値インジケータは、スレーブ装置２１０上のオブジェクトのオブジェクトシーケンスインジケータのテストに使用されるベンチマークとして使用されるのに対して、現在の最大シーケンス値インジケータは、装置の最大シーケンス値インジケータの現在の値を受信する。この態様については図８を参照してさらに詳細に説明する。
【００５７】
ステップ７１４において、マスタ装置２１２は、情報２４３Ａのような情報をスレーブ装置２１０から受信する。情報は、例えば、オブジェクトシーケンスインジケータ及び検索された最大シーケンス値インジケータに基づいてセット２４２の特定のデータオブジェクトに関連する。ここでも、恐らく、要求アプリケーション２３４は単に、例えば、新しい写真をすべて要求する。この場合、要求アプリケーション２３４は、スレーブ装置２１０に以前の最大シーケンス値インジケータ２３４Ａを渡し、スレーブ装置２１０はこれを使用してオブジェクトのセット２４２のオブジェクトシーケンスインジケータと比較し、それらのオブジェクトのみに関連付けられる情報２４３Ａを返す。情報２３４Ａは、オブジェクト２４２へのハンドル、そのサブセット、又はこれらのオブジェクトの一部若しくはオブジェクトに関連付けられるメタデータへの他のリファレンスを含むことができる。マスタ装置２１２が要求し、スレーブ装置２１０により検索可能なものは何であれ、情報２４３Ａの範囲内に含まれる。
【００５８】
このような情報を受信することによって、マスタ装置２１２は、ステップ７１６において、判断されたオブジェクトに関連して、望まれる動作を、それが何であれ実行することができる。例示的な動作は、取得動作、配置動作、及び変更検出動作を含むことができる。マスタ装置２１２は、情報２４３Ａにおいて示されるオブジェクトのコピーを受信したい場合がある。マスタ装置２１２は、オブジェクトのセットを削除したい場合がある。ここに無数の例を含めることができるが、そうすることは非実際的であり、当業者は、アプリケーション２３４が、基準を満たすデータ３００が存在する、提供されるシーケンス基準に基づいて、オブジェクトのセット２４２の特定のオブジェクトに関連付けられる情報２３４Ａを受信することができる場合、幅広い可能性が適用されることを容易に理解するであろう。ステップ７１８において、マスタ装置２１２は、スレーブ装置の現在の最大シーケンス値インジケータ２４８を受信し、これはここでは以前の最大シーケンス値インジケータとして記憶される。したがって、ステップ７２０において、以前の最大シーケンス値インジケータが、装置の現在の最大シーケンス値インジケータに基づいて更新される。
【００５９】
最後の説明のための例を、本発明の様々な態様を含む図８Ａ及び図８Ｂを参照してこれより提供する。この例の目的のために、要求アプリケーションは２３４であると仮定され、適用可能なデータセットはデータ２４２であり、これには最大シーケンス値インジケータ２４８が関連付けられる。具体例も図８Ａ自体の中で提供され、図８Ａ及び／又は図８Ｂに見られる新しい符号で参照される。まず、図８Ａを参照すると、ステップ８１０において、スレーブ装置２１０はマスタ装置２１２に結合される。状態８１２は、オブジェクトシーケンスインジケータ８１６をそれぞれ有するオブジェクト８１４の例示的な状態を表す。図示のように、オブジェクト８１４は、対応するオブジェクトシーケンスインジケータをそれぞれ有する３枚の写真を含み、装置の最大シーケンス値インジケータ８１８「００１５１」をさらに含む。ステップ８２０において、マスタ装置２１２は、（符号２４８で表されるような）以前の最大シーケンスインジケータを参照し、これは例示的な値、例えば「００１４５」を有する。いくつかの実施形態では、１つ又は複数の装置最大シーケンス値インジケータは、この時点で更新することができる。他の実施形態では、マスタ装置は単一のベンチマークインジケータのみを追跡してもよい。このような一実施形態では、マスタ装置の単一の最大シーケンス値インジケータは、スレーブ装置２１０との通信セッション後に更新される。しかし、この実施形態では、スレーブ装置２１０の最大シーケンス値インジケータ８１８は、現在の最大シーケンス値インジケータフィールド８２４において維持される。上述したように、装置２３４の以前の最大シーケンス値インジケータの値８２６は「００１４５」である。ステップ８２８において、マスタ装置２１２は、それぞれのオブジェクトシーケンスインジケータ８３０がマスタ装置の以前の最大シーケンス値インジケータ「００１４５」よりも大きいため、写真００４９〜００５１が妥当であると判断する。
【００６０】
ステップ８３２において、ユーザはそれらの写真をすべてコピーするが、装置にも残すことを選択する。写真は、ステップ８３２においてマスタ装置２１２にもコピーされる。これは、マスタ装置２１２の１つ又は複数の最大シーケンス値インジケータを更新することができるステップ８３４における例示的な一時点である。図示のように、以前の最大シーケンス値インジケータフィールド８３６の値はここでは「００１５１」であり、これが現在の最大シーケンス値インジケータとして使用されると共に、スレーブ装置２１０のベンチマークインジケータ２４８でもある。ステップ８３８において、ユーザは装置を接続解除し、３枚の写真をさらに撮影する。オブジェクト及び対応するオブジェクトシーケンスインジケータ８４０の状態は、状態８４２で表される。分かるように、新しい写真８４４は、装置の以前の最大シーケンス値インジケータ８１８よりも大きな対応するオブジェクトシーケンスインジケータ８４６を有する。この場合、新しい写真はオブジェクトシーケンスインジケータ「００１５２」、「００１５４」、及び「００１５６」を有する。また状態８４２に示されるように、スレーブ装置２１０の装置最大シーケンス値インジケータは、値「００１５７」に更新されている。
【００６１】
図８Ｂに続き、ステップ８４８において、ユーザがマスタ装置２１２に再接続すると仮定する。一実施形態では、スレーブ装置の最大シーケンス値インジケータは、状態８５２において参照符号８５０で示されるものとして維持される。それぞれの要求アプリケーションに関連付けられる以前の最大シーケンス値インジケータは「００１５１」のままである。ステップ８５４において、符号００５２〜００５４を有して示される写真８４４は、それぞれのオブジェクトシーケンスインジケータ８４６がマスタ装置の以前の最大シーケンス値インジケータ「００１５１」よりも大きいため、妥当なものとして認識される。ステップ８５６において、所望であれば、妥当なオブジェクトのみに対して、オプションとして動作を実行することができる。ステップ８５８において、マスタ装置２１２の以前の最大シーケンス値インジケータが、「００１５７」であるスレーブ装置２１０の最大シーケンス値インジケータに更新される。ステップ８６０において、ユーザが接続を解除するが、ｐｉｃ＿００５０の解像度を変更すると仮定する。状態８６２に示されるように、ｐｉｃ＿００５０のオブジェクトシーケンスインジケータ８６４は、値「００１５７」を有した装置の現在のベンチマークインジケータ８５０よりも大きな値を有するように更新される。スレーブ装置２１０の最大シーケンス値インジケータは、参照符号８６６で示されるように値「００１５９」に更新される。ステップ８６８は、再接続されると、ｐｉｃ＿００５０が、以前の最大シーケンス値インジケータ「００１５６」よりも大きな対応するオブジェクトシーケンスインジケータを有するため、妥当なものとして認識されることを示す。マスタ装置は、スレーブ装置の最大シーケンス値インジケータ「００１５９」を記憶する。
【００６２】
本明細書では、どのオブジェクトが或るベンチマーク値よりも大きい値を有するか判断するような解析の実行を参照した。もちろん、どの値がその値以上であるか、又は他の何らかのバリエーションに基づいて解析を実行することも可能である。しかし、すべての場合において、或るベンチマーク値がシーケンス識別値のセットと併せて使用される。これらの値が厳密にどのように使用されるかは様々であり得るが、これらの利用は添付の特許請求の範囲内にあることが意図される。いくつかの実施形態では、最大シーケンス値インジケータは、自動的に、且つ変更から独立して独自に増大することができる。
【００６３】
上記例のうちのいくつかは、コンピューティング装置がマスタ装置２１２である文脈内で提供された。しかし、手短に上述したように、マスタ装置はコンピュータに限定されない。本発明の実施形態は、変更が標準形式でシーケンスインジケータでタグ付けされ、これらのシーケンスインジケータがベンチマークインジケータと比較されて妥当なオブジェクトが判断されるあらゆる環境に適用可能である。
【００６４】
図示された様々なコンポーネント並びに図示されないコンポーネントの多くの異なる構成が、本発明の精神及び範囲から逸脱することなく可能である。本発明の実施形態は、限定ではなく例示を目的として説明された。本発明の範囲から逸脱しない代替の実施形態が、当業者に明らかになるであろう。当業者は、本発明の範囲から逸脱することなく上記改良を実施する代替の手段を開発することができる。例えば、最大シーケンス値インジケータの現在値及び先行値は、マスタ装置、スレーブ装置、又はこれらの組み合わせで維持することができる。また、最大シーケンス値インジケータは、最大オブジェクトシーケンス識別子（又はその範囲、例えば、「最大オブジェクトシーケンス識別子がＸ未満」）を判断するのにも使用するができるが、それ自体がすべてのオブジェクトシーケンス識別子よりも大きい値である必要はない。より重要なことは、最大シーケンス値インジケータが次の正確なオブジェクトシーケンス識別子を求めるために利用されることである。
【００６５】
特定の特徴及び部分結合が有益であり、他の特徴及び部分結合を参照せずに利用することが可能であり、それらが特許請求の範囲内にあると意図されることが理解されるであろう。様々な図に列挙されたステップのすべてを必ずしも説明した特定の順序で実行する必要はない。
【図面の簡単な説明】
【００６６】
【図１】本発明の一実施形態による動作に適した例示的な開始装置のブロック図である。
【図２Ａ】本発明の一実施形態による例示的な動作環境を示すブロック図である。
【図２Ｂ】本発明の一実施形態による、スレーブ装置に記憶されているデータオブジェクトの態様を示すと共に、維持される削除リストを示す図である。
【図３Ａ】本発明の一実施形態によるシーケンス識別フィールドを受信するための確保ロケーションを含むデータ構造のほぼ無制限の変形のうちの１つの表現を示す。
【図３Ｂ】本発明の一実施形態によるシーケンス識別フィールドを受信するための確保ロケーションを含むデータ構造のほぼ無制限のバリエーションのうちの１つの表現を示す。
【図４】本発明の一実施形態によるスレーブ装置の動作の例示的な流れを示す図である。
【図５】本発明の一実施形態によるスレーブ装置の例示的な動作をトレースする状態図と併せて参照される流れ図である。
【図６】本発明の一実施形態による、コンテンツを潜在的な多くの要求アプリケーションに露出するスレーブ装置の一方法を示す流れ図である。
【図７】本発明の一実施形態による、スレーブ装置に記憶されているオブジェクトについての情報を受信するアプリケーションの例示的な方法を示す流れ図である。
【図８Ａ】本発明の一実施形態によって実行される例示的なプロセスのより詳細な概観を提供する図である。
【図８Ｂ】本発明の一実施形態によって実行される例示的なプロセスのより詳細な概観を提供する図である。
【図１】
2009528617.tif 000004
【図２Ａ】
2009528617.tif 000005
【図２Ｂ】
2009528617.tif 000006
【図３Ａ】
2009528617.tif 000007
【図３Ｂ】
2009528617.tif 000008
【図４】
2009528617.tif 000009
【図５】
2009528617.tif 000010
【図６】
2009528617.tif 000011
【図７】
2009528617.tif 000012
【図８Ａ】
2009528617.tif 000013
【図８Ｂ】
2009528617.tif 000014
【国際調査報告】
2009528617.tif 000015
2009528617.tif 000016