(57)【要約】【課題】  リムーバブル・コンテンツ転送システムおよび方法を提供する。【解決手段】  リムーバブル記憶媒体（図３の要素２０３）を端末とデバイスとの間で受け渡し、リムーバブル記憶媒体（図３の要素２０３）に格納したデバイス・ファイル（図３の要素３０２）を用いて、端末とデバイスとの間でメディア・コンテンツおよびその他の情報を伝達する。デバイス・ファイル（図３の要素３０２）は、端末とデバイス・ファイル（図３の要素３０２）との間のネットワークまたは直接接続セッションを表すために用いることができる情報のような、「セッション情報」を含むことができる。セッション情報は、例えば、メディア・コンテンツ・ヘッダ情報を含むことができる。デバイス・ファイルによって、端末は、状況によっては、リムーバブル記憶媒体（図３の要素２０３）を局部接続デバイスのように扱うこともできる。例えば、端末は、リムーバブル記憶媒体上に格納されているデバイス・パラメータを用いてデバイス・スタックを作成、デバイス・スタックを用いて、リムーバブル記憶媒体を介してデバイスと通信することができる。【選択図】      図３
2008547083.tif 000002
【特許請求の範囲】
【請求項１】
命令を格納した１つ以上のコンピュータ読み取り可能媒体であって、前記命令は、
リムーバブル記憶媒体上に格納されたデバイス・ファイルから少なくとも第１セグメントを得るステップであって、前記デバイス・ファイルは、端末とデバイスとの間のセッションを記述し、前記第１セグメントは要求および応答から成る一群から選択した少なくとも１つを含む、ステップと、
前記リムーバブル記憶媒体上の前記デバイス・ファイルに格納する少なくとも第２セグメントを送信するステップであって、前記第２セグメントは、要求および応答から成る一群から選択した少なくとも１つを含む、ステップと、
を備えた方法を、コンピュータに行わせるように実行可能である、コンピュータ読み取り可能媒体。
【請求項２】
請求項１記載のコンピュータ読み取り可能媒体であって、更に、
前記リムーバブル記憶媒体上に格納されたデバイス・プロファイルに基づいて、前記デバイス・ファイルを選択するステップを備えた、コンピュータ読み取り可能媒体。
【請求項３】
請求項１記載のコンピュータ読み取り可能媒体であって、更に、
前記デバイス・ファイルから少なくとも第３セグメントを削除するステップを備えた、コンピュータ読み取り可能媒体。
【請求項４】
請求項１記載のコンピュータ読み取り可能媒体において、前記端末および前記デバイスは、メディア転送プロトコルを実装する、コンピュータ読み取り可能媒体。
【請求項５】
請求項１記載のコンピュータ読み取り可能媒体において、前記デバイス・ファイルにおける各要求または応答は、
関係付けられた要求または応答を発見するために用いられる識別子を備えた、コンピュータ読み取り可能媒体。
【請求項６】
請求項１記載のコンピュータ読み取り可能媒体において、前記デバイス・ファイルはメディア・コンテンツを備えた、コンピュータ読み取り可能媒体。
【請求項７】
請求項１記載のコンピュータ読み取り可能媒体において、前記デバイス・ファイルは、少なくとも１つの転送プロトコル実体を備えた、コンピュータ読み取り可能媒体。
【請求項８】
請求項１記載のコンピュータ読み取り可能媒体において、前記記憶媒体は複数のデバイス・ファイルを収容し、各デバイス・ファイルは端末とデバイスとの間のセッションを記述する、コンピュータ読み取り可能媒体。
【請求項９】
請求項１記載のコンピュータ読み取り可能媒体において、前記記憶媒体の保証部分に前記デバイス・ファイルを格納する、コンピュータ読み取り可能媒体。
【請求項１０】
命令を格納した１つ以上のコンピュータ読み取り可能媒体であって、前記命令は、
リムーバブル記憶媒体上にデバイス・ファイルを作成するステップであって、前記デバイス・ファイルが端末とデバイスとの間のセッションを記述する、ステップと、
前記記憶媒体に格納するデバイス・プロファイルを送信するステップであって、前記デバイス・プロファイルが前記デバイスを特定する、ステップと、
を備えた方法を、コンピュータに行わせるように実行可能である、コンピュータ読み取り可能媒体。
【請求項１１】
請求項１０記載のコンピュータ読み取り可能媒体であって、更に、前記リムーバブル記憶媒体上の前記デバイス・ファイルに格納する少なくとも１つの第１セグメントを送信するステップを備えており、前記第１セグメントは、要求および応答から成る一群から選択した少なくとも１つを備えた、コンピュータ読み取り可能媒体。
【請求項１２】
請求項１０記載のコンピュータ読み取り可能媒体において、前記端末および前記デバイスはメディア転送プロトコルを実装する、コンピュータ読み取り可能媒体。
【請求項１３】
請求項１０記載のコンピュータ読み取り可能媒体において、前記セッション情報は少なくとも１つの転送プロトコル実体を含む、コンピュータ読み取り可能媒体。
【請求項１４】
請求項１０記載のコンピュータ読み取り可能媒体において、前記デバイス・ファイルを前記記憶媒体の保証部分に格納する、コンピュータ読み取り可能媒体。
【請求項１５】
命令を格納した１つ以上のコンピュータ読み取り可能媒体であって、前記命令は、
リムーバブル記憶媒体からデバイス・プロファイルを得るステップであって、前記デバイス・プロファイルが外部デバイスの少なくとも１つのプロパティを指定する、ステップと、
前記デバイス・プロファイルに基づいて仮想デバイスを作成するステップであって、前記仮想デバイスが前記外部デバイスの挙動をエミュレートする、ステップと、
ドライバと前記仮想デバイスとの間の通信を確立するステップと、
を備えた方法を、コンピュータに行わせるように実行可能である、コンピュータ読み取り可能媒体。
【請求項１６】
請求項１５記載のコンピュータ読み取り可能媒体において、前記方法は、更に、
前記ドライバを、少なくとも１つの保護コンテンツ・エンジンと通信状態に置くステップを備えた、コンピュータ読み取り可能媒体。
【請求項１７】
請求項１５記載のコンピュータ読み取り可能媒体において、前記方法は、更に、
前記仮想デバイスに基づいて少なくとも１つの保護コンテンツ・エンジンを選択するステップを備えた、コンピュータ読み取り可能媒体。
【請求項１８】
請求項１５記載のコンピュータ読み取り可能媒体において、前記方法は、更に、
ユーザから受けた選択に基づいて、少なくとも１つの保護コンテンツ・エンジンを選択するステップを備えた、コンピュータ読み取り可能媒体。
【請求項１９】
請求項１６記載のコンピュータ読み取り可能媒体において、前記方法は、更に、
ローカル・パラメータに基づいて、少なくとも１つの保護コンテンツ・エンジンを選択するステップを備えた、コンピュータ読み取り可能媒体。
【請求項２０】
請求項１６記載のコンピュータ読み取り可能媒体において、前記デバイス・プロファイルを前記記憶媒体の保証部分から受ける、コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願に対する相互引用）
本願は、２００５年６月１７日に出願し"Removable Storage Content Transfer"（リムーバブル・ストレージ・コンテンツの転送）と題する米国特許出願第１１／１５４，６３３号の一部継続出願である。
【背景技術】
【０００２】
カメラ、個人音楽プレーヤのような多くの消費者電子デバイスは、再生可能なファイルまたはその他のコンテンツを格納する。パーソナル・コンピュータは、このようなコンテンツの主要ストレージとして増々用いられている。電子デバイスは、したがって、コンテンツを交換するためにパーソナル・コンピュータとインターフェースするように設計されている。例えば、ディジタル・カメラは写真ファイルをパーソナル・コンピュータのハード・ドライブに転送することができる。別の例として、個人音楽プレーヤは、音楽ファイルをパーソナル・コンピュータから受信することができる。
【０００３】
たとえば、コンパクト・フラッシュ（ＣＦ）メモリ・カード、セキュア・ディジタル（ＳＤ）メモリ・カード、メモリ・スティック等のような記憶カードは、電子デバイスとパーソナル・コンピュータとの間でコンテンツを転送するために用いることができる。このような記憶カードは、例えば、フラッシュ・メモリを含むリムーバブル・メモリ・デバイスを含むことができる。デバイスは記憶カードに書き込むことができ、次いで記憶カードをこのデバイスから取り外して、パーソナル・コンピュータに挿入することができ、パーソナル・コンピュータは情報を記憶カードから検索することができる。同様に、パーソナル・コンピュータは記憶カードに書き込むことができ、次いで記憶カードをパーソナル・コンピュータから取り外してデバイスに挿入し、デバイスが記憶カードから情報を検索することができる。例えば、カメラからパーソナル・コンピュータに写真を転送するため、またはパーソナル・コンピュータから個人音楽プレーヤに音楽ファイルを転送するために、記憶カードを用いることもできる。
【０００４】
場合によっては、パーソナル・コンピュータが転送の前または後にコンテンツを処理することができると便利である。例えば、あるエンコード・フォーマットから別のエンコード・フォーマットに情報をトランスコードする、即ち、符号化情報を変換することができると便利である。別の例として、音楽ファイルは、パーソナル・コンピュータでは、比較的大きな高忠実度ファイルとして格納されている場合がある。再生のために音楽ファイルを個人音楽プレーヤに転送する前に、音楽ファイルを縮小した低忠実度ファイルとして表せれば便利である。別の例として、カメラから受信した写真にメタデータを付加することもできる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
例えば、著作権保護されているメディア・コンテンツのようなコンテンツは、多くの場合、ディジタル権利管理（ＤＲＭ）機構を実施する等によって、保護機構を含むことができる。しかしながら、コンテンツ保護のために多数の技術的メカニズムが存在し、種々のデバイスが別個にコンテンツ保護メカニズムを扱う場合もある。更に、ＤＲＭは個々のコンテンツ、個々のデバイス、または双方に対して制約を指定する場合がある。例えば、事前予約ＤＲＭサービスでは、１カ月の間全ての音楽の無制限再生を許容するというように、ユーザが特定の個人音楽プレーヤ上では全てのコンテンツの無制限再生を許容する。一例として、ユーザ毎のＤＲＭサービスでは、ユーザが映画を１回再生することを許容する、またはユーザが歌を３回再生することを許容するというように、ユーザが特定の回数だけ特定のコンテンツを再生することを許容する。多数の技術的メカニズムがあり、異なる形式の制約があり、更に異なるデバイスが用いるＤＲＭを処理するのに異なる方法があるため、ＤＭＲコンテンツの転送または再生が複雑となることがある。
【課題を解決するための手段】
【０００６】
デバイスおよび端末の双方が１組の規約および動作に従えば、リムーバブル記憶媒体をネットワーク接続部として作用させることができる。このような規約および動作に合わせれば、端末はデバイスを設定することができ、リムーバブル記憶媒体のデバイスと端末間における移動のみによって、メディア・オブジェクトをデバイスと端末との間で転送することが可能となる。これらの能力は、ネットワーク接続部によってデバイスと端末との間で許容される環境設定および転送能力と同等であり、デバイスと端末との間における記憶媒体の物理的移動によって生ずる高いレイテンシに対処することができる。
【０００７】
種々の実施形態では、リムーバブル記憶コンテンツの転送システムおよび方法を提供する。端末とデバイスとの間でリムーバブル記憶媒体を受け渡し、リムーバブル記憶媒体上に格納されているデバイス・ファイルを用いて、端末とデバイスとの間で、メディア・コンテンツおよびその他の情報を伝達する。デバイス・ファイルは、端末とデバイス・ファイルとの間におけるネットワーク・セッションを表すために用いられる情報のような、「セッション情報」を含むこともできる。セッション情報は、１つ以上のセグメントで構成することができ、各セグメントは１つ以上の要求および／または応答を収容する。更に、セッション情報は、例えば、メディア・コンテンツおよびヘッダ情報を含み、有線または無線通信プロトコルによって直接２つ以上のデバイスを接続する場合に生ずる場合がある他のあらゆる通信ストリームも共に含むことができる。デバイス・ファイルは、端末にリムーバブル記憶媒体を、状況によっては内部に接続するデバイスとして扱わせることができる。例えば、端末は、デバイス・ファイルに基づいて、リムーバブル記憶媒体上に格納されているデバイス・パラメータを用いてデバイス・スタックを作成し、このデバイス・スタックを用いて、リムーバブル記憶媒体を介してデバイスと通信することができる。
【０００８】
特定的な応用の１つに、メタデータの作成および転送がある。応答し有用なユーザ・インターフェースを設けるために、デバイスは、人が読み取り可能なデータを用いて、そのコンテンツを表すことができる。例えば、オーディオ・ファイル再生用ユーザ・インターフェースは、タイトル、アーティスト、アルバム、長さ等のようなメタデータをユーザに呈示するとよい。端末は、このようなメタデータをオンライン・ソースのような外部ソースから得ることができ、あるいは、例えば、ファイル・ヘッダを解釈することによってこのようなメタデータを発生することができるが、多くのデバイスには有用なメタデータを得るまたは発生するための資源が欠如している。したがって、一実現例では、端末がこのようなメタデータを得るまたは発生し、メタデータをデバイスに転送する方法を提供する。他の実現例では、端末は、エンコード・パラメータ（例えば、メディア・ファイルのビットレート）、抽象化したコンテンツ（例えば、個人情報管理データ）等のような、他の形式のメタデータを発生することができる。
【０００９】
この摘要は、選択した概念を簡略化した形態で紹介するために提示したのであり、概念については詳細な説明で以下で更に説明する。この摘要は、特許請求する主題の枢要な特徴または必須の特徴を特定することを意図しているのではなく、特許請求する主題の範囲を決定する際の補助として用いることも意図していない。
【発明を実施するための最良の形態】
【００１０】
以下に、添付図面を参照しながら、本発明について詳細に説明する。
【００１１】
一実現例では、本発明は、リムーバブル・ストレージ・コンテンツの転送システムおよび方法に関する。メモリ・スティック等のようなリムーバブル記憶媒体は、デバイスと、パーソナル・コンピュータのような端末との間において情報を転送するために用いることができる。
【００１２】
異質の情報を有する２つ以上のデバイス間において情報を転送するために同期、即ち、「シンク」動作を用いることができる。シンク動作の目的は、デバイスの全てが最終的に共通のデータ部分集合を保持することと言える。一実現例では、通信は、シンク動作を構成することができる一連の情報交換に従えばよい。典型的な一連の情報交換は、下記を含むことができる。
【００１３】
１）デバイスを調査する。
【００１４】
２）デバイスのコンテンツを調査する。
【００１５】
３）デバイスからコンテンツを削除する。
【００１６】
４）コンテンツをデバイスに追加する。
【００１７】
この一連の動作は、必ずしもデバイスとの双方向処理ではなく、デバイスが使用する記憶媒体との双方向処理であってもよい。つまり、同期は、デバイスと端末との間で記憶媒体を相互に(back and forth)受け渡すことによって実行することができる。
【００１８】
第１および第２ステップでは、デバイスから端末に情報を転送する。一実現例では、デバイスは、規定したファイル・フォーマットで情報を記憶媒体に書き込むことができ、端末は記憶媒体から情報を読み取ることができる。このように、記憶媒体は、デバイス特定のメディア・エンコード、デバイス／ストレージ・コンテンツのメタデータに基づくビュー等のような機能を実行するために端末上のアプリケーションが必要とする全ての情報を提供することができる。
【００１９】
第３および第４ステップでは、端末からデバイスに情報を転送する。端末は、例えば、デバイスのコンテンツに追加すること、デバイスのコンテンツから削除すること、またはデバイスのコンテンツを並び換えることを選択することができる。これを双方向的に実行する代わりに、端末は記憶媒体上のコンテンツを直接修正することができ、そのコンテンツに対して行われる処置は、規定されたファイル・フォーマットにログ・インすることができるので、デバイスは、そのコンテンツがアクティブのセッションにおいて伝達されたかのように、後にそれを処理することができる。
【００２０】
一実現例では、同期は記憶媒体の１回の「ラウンド・トリップ」において実行することができる。ラウンド・トリップは、リムーバブル記憶媒体にデバイス群における各デバイスが少なくとも１回アクセスしたときに完了することができる。特定のデバイスに同期するには、ラウンド・トリップは、デバイス群における他の全てのデバイスの前にそのデバイスが少なくとも１回リムーバブル記憶媒体にアクセスし、再度少なくとも１回デバイス群における他の全てのデバイスの前にアクセスすることから成るとすればよい。一実現例では、デバイスと端末との間において同期動作を実行するには、ラウンド・トリップは、デバイスが記憶媒体にアクセスし、端末が記憶媒体にアクセスし、そしでデバイスが再度記憶媒体にアクセスすることから成るとすればよい。
【００２１】
一実施形態では、エラー処理を含む同期動作を、記憶媒体の２回のラウンド・トリップにおいて遂行することができる。最初のラウンド・トリップでは、記憶媒体をデバイスから端末に転送することができ、端末はコマンドを記憶媒体上に置き、次いで記憶媒体を転送してデバイスに戻すことができる。デバイスが記憶媒体上のコマンドを処理することができない場合、デバイスは記憶媒体上にエラー・メッセージを置くことができる。２回目のラウンド・トリップの間に、記憶媒体を端末に転送することができ、端末がエラー・メッセージを処理することができる。この実現例では、エラーのために、コンテナ・ファイルを規定し供給することができる。２回目のラウンド・トリップは、次回ユーザが情報をデバイスと端末との間で転送したいときに実行することができる。つまり、２回目のラウンド・トリップは、エラー・メッセージの伝達と同時に、メディア転送またはシンク動作のために用いることができる。
【００２２】
デバイス同期のステップを２つの標準的プロセスに分離することによって、デバイス同期の双方向プロセスを１回の記憶媒体の交換で行うことができる。更に、デバイス情報は記憶媒体上のフラット・ファイル(flat file)において伝達することもできる。このデバイス情報によって、端末は記憶媒体と、これがあたかもデバイスであるかのように、通信することが可能となる。このため、端末上の同期アプリケーションは、記憶媒体を単なるストレージと認識せず、デバイス自体と見なしてもよい。
【００２３】
一実現例では、デバイスと端末との間で転送するデータは、標準的なファイル・フォーマットに配列すればよい。標準的なファイル・フォーマットは、実際の双方向セッションにおいてデバイスに対して両方向に送られ、フラット・ファイルに直列化した同じデータ（恐らく、追加のフォーマット情報を有する）とすればよい。この環境設定により、デバイス・コンテンツが双方向処理直接セッションまたは記憶媒体の交換のどちらで転送されるかには無関係に、１組の処理ロジックのみを用いてデバイスを構築することが可能となる。
【００２４】
図１は、メディア転送の直列化のためのシステムを実施することができる、適した計算システム環境１００の一例を示す。計算システム環境１００は、適した計算機環境の一例に過ぎず、本発明の使用範囲や機能性について限定を示唆する意図は全くない。また、計算機環境１００は、動作環境例１００に示す構成要素のいずれの１つまたは組み合わせに関しても、何らかの依存性や必須要件を有するという解釈は行わないこととする。
【００２５】
本発明は、コンピュータによって実行するプログラム・モジュールのような、コンピュータ実行可能命令に関して総合的に説明する。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含み、特定のタスクを実行するか、または特定の抽象的データ・タイプを実現する。更に、本発明は、ハンドヘルド・デバイス、マイクロプロセッサ・システム、マイクロプロセッサに基づくまたはプログラマブル消費者用電子機器、ミニコンピュータ、メインフレーム・コンピュータ等含む種々のコンピュータ・システム構成を用いて実用化できることは当業者には認められよう。また、本発明は、通信ネットワークを通じてリンクされているリモート処理デバイスがタスクを実行する分散型計算機環境においても実用可能である。分散型計算環境では、プログラム・モジュールは、メモリ記憶装置を含むローカルおよびリモート・コンピュータ記憶媒体双方に配することができる。
【００２６】
図１を参照すると、本発明を実施するシステム例１００は、コンピュータ１１０の形態とした汎用計算機を含む。コンピュータ１１０の構成要素は、限定ではなく、演算装置１２０、システム・メモリ１３０、およびシステム・バス１２１を含むことができる。システム・バス１２１は、システム・メモリを含む種々のシステム構成要素を演算装置１２０に結合する。
【００２７】
コンピュータ１１０は、通例、種々のコンピュータ読み取り可能媒体を含む。限定ではない一例をあげると、コンピュータ読み取り可能媒体は、コンピュータ記憶媒体および通信媒体から成るとすればよい。システム・メモリ１３０は、リード・オンリ・メモリ（ＲＯＭ）１３１およびランダム・アクセス・メモリ（ＲＡＭ）１３２のような揮発性および／または不揮発性メモリの形態で、コンピュータ記憶媒体を含む。基本入出力システム１３３（ＢＩＯＳ）は、起動中のように、コンピュータ２０内のエレメント間におけるデータ転送を補助する基本的なルーチンを含み、通例ＲＯＭ１３１内に格納されている。ＲＡＭ１３２は、通例、演算装置１２０が直ちにアクセス可能であるデータおよび／またはプログラム・モジュール、または現在これによって処理されているデータおよび／またはプログラム・モジュールを収容する。一例として、そして限定ではなく、図１は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、その他のプログラム・モジュール１３６、およびプログラム・データ１３７を示す。
【００２８】
また、コンピュータ１１０は、その他のリムーバブル／非リムーバブル揮発性／不揮発性コンピュータ記憶媒体も含むことができる。一例としてのみ、図１は、非リムーバブル不揮発性磁気媒体からの読み取りおよびこれへの書き込みを行なうハード・ディスク・ドライブ１４１、リムーバブル不揮発性磁気ディスク１５２からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ１５１、ならびにＣＤ  ＲＯＭまたはその他の光媒体のようなリムーバブル不揮発性光ディスク１５６からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ１５５を示す。動作環境の一例において使用可能なその他のリムーバブル／非リムーバブル、揮発性／不揮発性コンピュータ記憶媒体には、限定する訳ではないが、磁気テープ・カセット、フラッシュ・メモリ・カード、ディジタル・バーサタイル・ディスク、ディジタル・ビデオ・テープ、ソリッド・ステートＲＡＭ、ソリッド・ステートＲＯＭ等が含まれる。ハード・ディスク・ドライブ１４１は、通例、インターフェース１４０のような非リムーバブル・メモリ・インターフェースを介してシステム・バス１２１に接続され、磁気ディスク・ドライバ１５１および光ディスク・ドライブ１５５は、通例、インターフェース１５０のようなリムーバブル・メモリ・インターフェースによって、システム・バス１２１に接続する。
【００２９】
先に論じ図１に示すドライブおよびそれらと関連するコンピュータ記憶媒体は、コンピュータ読み取り可能命令、データ構造、プログラム・モジュール、およびコンピュータ１１０のその他のデータを格納する。図１では、例えば、ハード・ディスク・ドライブ１４１は、オペレーティング・システム１４４、アプリケーション・プログラム１４５、その他のプログラム・モジュール１４６、およびプログラム・データ１４７を格納するように示されている。尚、これらの構成要素は、オペレーティング・システム１３４、アプリケーション・プログラム１３５、その他のプログラム・モジュール１３６、およびプログラム・データ１３７と同じでも異なっていても可能であることを記しておく。オペレーティング・システム１４４、アプリケーション・プログラム１４５、その他のプログラム・モジュール１４６、およびプログラム・データ１４７は、ここで、少なくともこれらが異なるコピーであることを示すために、異なる番号が与えられている。ユーザは、キーボード１６２、および一般にマウス、トラックボールまたはタッチ・パッドと呼ばれているポインティング・デバイス１６１によって、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力デバイス（図示せず）には、マイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナ等を含むことができる。これらおよびその他の入力デバイスは、多くの場合、ユーザ入力インターフェース１６０を介して、演算装置１２０に接続されている。ユーザ入力インターフェース１６０は、システム・バス１２１に結合されているが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス（ＵＳＢ）のようなその他のインターフェースおよびバス構造によって接続することも可能である。モニタ１９１またはその他の形式の表示装置も、ビデオ・インターフェース１９０のようなインターフェースを介して、システム・バス１２１に接続されている。モニタに加えて、コンピュータは、スピーカ１９７およびプリンタ１９６のような、その他の周辺出力装置も含むことができ、これらは出力周辺インターフェース１９５を通じて接続することができる。
【００３０】
コンピュータ１１０は、リモート・コンピュータ１８０のような１つ以上のリモート・コンピュータへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピュータ１８０は、パーソナル・コンピュータ、ハンドヘルド・デバイス、サーバ、ルータ、ネットワークＰＣ、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピュータ１１０に関して先に説明したエレメントの多くまたは全てを含むが、図１にはメモリ記憶装置１８１のみを示す。図１に示す論理接続は、ローカル・エリア・ネットワーク（ＬＡＮ）１７１およびワイド・エリア・ネットワーク（ＷＡＮ）１７３を含むが、他のネットワークも含むことができる。
【００３１】
ＬＡＮネットワーク環境で用いる場合、コンピュータ１１０は、ネットワーク・インターフェースまたはアダプタ１７０を介してＬＡＮ１７１に接続する。ＷＡＮネットワーク環境で用いる場合、コンピュータ１１０は、通例、モデム１７２、またはインターネットのようなＷＡＮ１７３を通じて通信を確立するその他の手段を含む。モデム１７２は、内蔵でも外付けでもよく、ユーザ入力インターフェース１６０またはその他の適切な機構を介してシステム・バス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０に関して図示したプログラム・モジュール、またはその一部は、リモート・メモリ記憶装置に格納することもできる。一例として、そして限定ではなく、図１は、リモート・アプリケーション・プログラム１８５がメモリ素子１８１上に常駐するものとして示している。尚、図示のネットワーク接続は一例であり、コンピュータ間で通信リンクを確立する他の手段も使用可能であることは認められよう。
【００３２】
コンピュータ１１０のその他の内部構成要素の多くは示されていないが、このような構成要素および相互接続は周知であることは、当業者には認められよう。したがって、コンピュータ１１０の内部構造に関する更なる詳細は、本発明に関しては開示する必要はない。
【００３３】
図２は、本発明の一実施形態によるシステムの全体像を示すブロック図である。図２に示すように、消費者電子デバイスのようなデバイス２００が、パーソナル・コンピュータのような端末２０２からコンテンツを受信し、端末２０２へコンテンツを転送することができる。デバイス２００および端末２０２の各々には１つ以上のストレージ・リーダおよび／またはライタを装備することができる。デバイス２００は、例えば、自動内蔵メディア・システム、携帯用ディジタル・ステレオ・システム、ストレージ内蔵の家庭用娯楽システム、カメラ、携帯用ゲーム・デバイス、移動体電話機、またはその他のいずれの電子システムとしてもよい。
【００３４】
デバイス２００および端末２０２双方は、環境設定(configuration)および転送プロトコルを実装することができ、これによって、ネットワーク接続部２０４がデバイスとＰＣとの間に確立されたときに、デバイス２００の環境設定、およびデバイス２００と端末２０２との間における情報交換が可能となる。例えば、デバイス２００および端末２０２は、ユニバーサル・シリアル・バス（ＵＳＢ）コネクタ２０３、２０４を有することができるので、直接ＵＳＢケーブル２０６またはＵＳＢケーブルとＵＳＢハブとの何らかの組み合わせによって、デバイス２００を端末２０２に接続することができる。デバイス２００および端末２０２がＵＳＢケーブル２０６を通じて接続されると、ＭＴＰ情報のような情報がＵＳＢケーブル２０６上搬送され、環境設定および転送動作を行うことができるようになっている。尚、他の環境設定および転送プロトコルも使用できること、そして種々の転送プロトコルも使用できることは、当業者には認められよう。例えば、ＭＴＰまたはその他の環境設定および転送プロトコルを、送信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）と合わせて用いることもできる。別の例として、ピクチャ転送プロトコル（ＰＴＰ）をＵＳＢケーブル２０６上で搬送すること、または他の転送プロトコルと合わせて用いることもできる。
【００３５】
デバイス２００と端末２０２との間に、ＵＳＢケーブル２０６またはその他の何らかの接続部を通じてネットワーク接続が確立されると、情報の離散パケットをデバイス２００から端末２０２に、または端末２０２からデバイス２００に送ることができる。このような転送を行うのに要する時間は、ネットワーク接続のレイテンシによって異なる場合があり、このような送信の信頼性の高さは、接続を支持するネットワークの信頼性に依存する可能性がある。環境設定および転送プロトコルならびにトランスポート・プロトコル双方が、送信誤りを低減しつつ（信頼性を向上する）ネットワーク接続を最大限利用する（レイテンシを低減する）メカニズムを含むとよい。
【００３６】
ＵＳＢケーブル２０６またはその他のネットワーク接続部を通じたデバイス２００と端末２０２との間の通信は、１つ以上のセッションを含むことができる。各セッションは、例えば、多くのパケット交換を伴う長い通信である。
【００３７】
ＭＴＰのような、用いられる環境設定および転送プロトコルは、１つ以上の転送プロトコル実体を規定することができる。これらは、環境設定および転送に有用なソフトウェア・モジュールであり、動作、結果コード、オブジェクト・フォーマット、データ・タイプ、データ集合、データ・ファイル参照等である。ＭＴＰのような、環境設定および転送プロトコルは、更に、これらの転送プロトコル実体をどのように用いればよいかも規定することができる。ＵＳＢケーブル２０６またはその他のネットワーク接続部を通じて環境設定または転送を行うと、これらの転送プロトコル実体の１つ以上を、セッションの一部として、離散パケット内において送ることができる。
【００３８】
デバイス２００および端末２０２は、記憶媒体２０８を共有することができる。一実現例では、記憶媒体２０８は、メモリ・カードまたは磁気ディスクのようなリムーバブル読み取り／書き込み記憶媒体である。記憶媒体２０８をデバイス２００、あるいはデバイス２００と通信状態にあるそれ以外のものに挿入すると、デバイス２００上で走るソフトウェアが記憶媒体２０８のコンテンツにアクセスすることができる。同様に、記憶媒体２０８を端末２０２、または端末２０２と通信状態にあるそれ以外のものに挿入すると、端末２０２上で走るソフトウェアが記憶媒体２０８のコンテンツにアクセスすることができる。記憶媒体２０８には、個々のファイルを作成し、読み取り、書き込み、または削除することを可能にするファイル・システム２１０によってフォーマットすることができる。デバイス２００および端末２０２双方で走るソフトウェアは、ファイル・システム２１０に対するサポートを実現し、デバイス２００および端末２０２双方が、記憶媒体２０８上に格納されているファイルへのアクセスを行うことができるようになる。
【００３９】
記憶媒体２０８は、デバイス２００と端末２０２との間で常態的に交互に移動することができる。この場合、デバイス２００および端末２０２双方で走るソフトウェアが記憶媒体２０８上に支持されているファイル内の情報にアクセスしこれを修正できるように、記憶媒体２０８をフォーマットすることができる。記憶媒体２０８上に格納されているファイルを修正することによってデバイス２００および端末２０２が通信すると、記憶媒体２０８をネットワーク接続部として扱うことができる。この環境設定によって、デバイス２００および端末２０２はＵＳＢケーブル２０６がなくても通信することが可能になる。
【００４０】
先に論じたように、ネットワーク接続部を環境設定または転送のために用いる場合、セッションが確立され、ＵＳＢケーブル２０６またはその他のネットワーク接続を通じて１つ以上の離散パケットが送られる。パケットは、転送プロトコル実体を含むことができる。転送プロトコル実体は、ＭＴＰまたはその他の環境設定および転送プロトコルによって規定される動作、結果コード、オブジェクト・フォーマット、データ・タイプ、データ集合、ファイル参照等である。
【００４１】
同様に、ネットワーク接続ではなく記憶媒体２０８を通じて環境設定または転送が行われるときも、これらの転送プロトコル実体を同様に用いて、デバイスの環境設定または転送を実行することができる。これらの転送プロトコル実体を離散パケット内でＵＳＢケーブル２０６またはその他のネットワーク接続を通じて送る代わりに、転送プロトコル実体を記憶媒体２０８上のデバイス・ファイル２１２内に記録することができる。デバイス・ファイル２１２内に格納されている情報は、例えば、バイト・ストリームとして記録することができる。デバイス・ファイル２１２は、セッション中に送信される情報全てを含むことができ、したがって、デバイス・ファイル２１２は、セッションを「表す」と言うことができる。一実現例では、全ての転送プロトコル実体、ヘッダ情報、およびデバイス２００と端末２０２との間でセッション中に伝達されるその他の情報は、デバイス・ファイル２１２に記録される。
【００４２】
記憶媒体２０８がデバイス２００と端末２０２との間で受け渡されると、情報がデバイス２００と端末２０２との間で受け渡され、双方向通信が可能になる。デバイス・ファイル２１２は、いずれの方向に送られる転送プロトコル実体でも記録することができ、パケットが発生したところ（例えば、デバイス２００またはＰＣ２０２から）、およびパケットの宛先を記述するパケット「ヘッダ」を含む。同様に、デバイス・ファイル２１２は、シーケンス番号、セッション識別子、トランザクション識別子のような、その他のパケット・ヘッダ情報も含み、これらは完全なセッションを表すために用いることができる。デバイス・ファイル２１２内の情報は、デバイス２００および端末２０２双方に対して意図した効果が得られるセッションを構成するのに十分であるという意味で、デバイス・ファイル２１２は、１つのデバイス２００と１つの端末２０２との間における「直列化した」セッションと見なすことができる。
【００４３】
記憶媒体２０８がセッションを表すデバイス・ファイル２１２を含む場合、記憶媒体２０８は場合によっては局部接続デバイスとして扱うことができる。例えば、プログラム、プロトコル、および局部接続デバイスとの間で双方向に情報を転送するために用いられるデータ構造を利用することができる。特定的な一例として、Windows（登録商標）オペレーティング・システムは、局部接続デバイスと双方向でデータを転送するためにデバイス・スタックを用いることができる。セッションを表すデバイス・ファイル２１２によって、オペレーティング・システムは、デバイス・スタックを用いて、デバイスと通信することが可能になる。デバイス・スタックの詳細については、図５を参照して更に論ずることにする。
【００４４】
図３は、本発明の一実施形態による記憶媒体の全体像を示すブロック図である。図３に示すように、記憶媒体は、ファイル・システム２１０を含むことができる。ファイル・システム２１０は、記憶媒体２０８上に格納されているファイルにアクセスすることができる。更に、記憶媒体２０８は１つ以上のデバイス・ファイル２１２も含むことができる。記憶媒体２０８は、例えば、デバイスおよび／または端末間において相互に記憶媒体２０８を受け渡すことによって、１つ以上のデバイスおよび／または端末（図３には示されていない）間における通信のために用いることができる。
【００４５】
各デバイス・ファイル２１２は、１つの端末と１つのデバイスとの間の通信を表すことができる。一例として、複数のデバイスが記憶媒体２０８を用いて中央の端末と通信することができる。この場合、各デバイスは、中央の端末との通信に用いられる別個のデバイス・ファイル２１２を作成することができる。
【００４６】
デバイス・ファイル２１２の各々は、デバイス・プロファイル３０２を収容することができる。各デバイス・プロファイル３０２は、通信のためにデバイス・ファイルを用いるデバイスを特定することができる。一実現例では、各デバイス・プロファイル３０２は、各デバイスが、どのデバイス・プロファイル３０２がそのデバイスに対応するか判断するために、十分な情報を収容する。例えば、各デバイス・プロファイル３０２は一意のデバイス識別子を収容することができる。
【００４７】
一実現例では、デバイス・ファイル・ディレクトリを用いて、記憶媒体２０８上に格納されているデバイス・ファイル２１２へのアクセスを簡略化する。この実現例では、デバイス・プロファイル情報３０２をデバイス・ファイル・ディレクトリに格納することができる。デバイスが然るべきデバイス・ファイル２１２を探索する場合、デバイス・ファイル・ディレクトリを探索して、該当するプロファイル情報３０２を求め、次いでデバイス・プロファイル・ディレクトリにおけるポインタに従えばよく、あるいはデバイス・ファイル・ディレクトリを用いて対応するデバイス・ファイル２１２にアクセスしてもよい。
【００４８】
一実現例では、記憶媒体２０８を用いる各デバイスは、デバイス・ファイル２１２を作成するときに、デバイス・プロファイル３０２をデバイス・ファイルおよび／またはデバイス・ファイル・ディレクトリに書き込む。デバイス・プロファイル３０２は、環境設定および転送プロトコルによって、デバイスを特徴付けるために用いられるデータ集合として規定することができる。例えば、ＭＴＰが環境設定および転送プロトコルである場合、各デバイスはデバイス・ファイル２１２を作成し、このデバイス・ファイル２１２および／またはデバイス・ファイル・ディレクトリ内のデバイス・プロファイル３０２に「DeviceInfo」データ集合を書き込むことができる。後の時点で、デバイスが記憶媒体２０８上で該当するデバイス・ファイル２１２を探索しているときに、デバイス・プロファイル３０２内にあるDeviceInfoデータ集合によって、デバイスは、デバイス・ファイル２１２があれば、どれがそのデバイスに対応するか正確に判断することが可能となる。
【００４９】
各デバイス・ファイル２１２は０個以上のセグメント３０４を収容することができる。各セグメントはセッション情報とすることができ、通信の一方側によって、デバイスまたは端末のいずれかによって書き込まれ、他方側によって読み出される。セグメント３０４毎に、書き込み側をイニシエータ(initiator)と呼び、他方側をレスポンダ(responder)と呼ぶこともできる。イニシエータおよびレスポンダは、しかるべき環境設定および転送プロトコルであればいずれを用いてでも、通信することができる。各セグメント３０４において、イニシエータは０個以上の応答を含むことができ、各応答は、以前のセグメント３０４における他方側による要求に対応する。また、イニシエータは、セグメント３０４に０個以上の要求も含むことができ、各要求は、今後のセグメント３０４においてレスポンダからの応答を誘起することを意図している。要求および応答は、セグメント３０４内部においてはいずれの順序で現れてもよい。実現例の中には、この様式のセグメント３０４では、要求および応答が、環境設定および転送プロトコルが規定したモデルに直接対応しない場合もあり得る。その場合、環境設定および転送プロトコルの規則を緩和して、セグメント、要求、および応答のモデルを許容すればよい。
【００５０】
一実現例では、例えば、各セグメント３０４の範囲を制限するデバイス・ファイル２１２における情報によって、各セグメント３０４を纏めてもよい。例えば、ＭＴＰが環境設定および転送プロトコルの場合、各セグメント３０４を"OpenSession"および"CloseSession"要求によって纏めることができる。一実現例では、これらのOpenSessionおよびCloseSession要求に対する応答をセグメント３０４に含めないが、その他の要求に対する応答がセグメント３０４内に出てきてもよい。
【００５１】
以下の説明は、デバイスと端末との間の通信に、デバイス・ファイル２１２をどのように用いることができるかを例示する。この例では、ＭＴＰは環境設定および転送プロトコルである。端末は、"SetDevicePropValue"要求と共にセグメント３０４をデバイス・ファイル２１２に書き込むことができる。この要求は、新しいプロパティ値を要求の一部として含む。後に、要求の宛先であるデバイスに記憶媒体２０８を挿入すると、デバイスはこの要求に応答して、新たなセグメント３０４をデバイス・ファイル２１２に添付することができる。この新しいセグメントは、"SetDevicePropValue"要求に対する応答を含むことができ、例えば、プロパティ値修正の成功または失敗を示す応答コードを含む。
【００５２】
情報の要求、および要求に応じたその後の応答は、「関係付けられる」と言うことができる。一実現例では、デバイス・ファイル内において関係付けられた要求および応答は、共通情報を収容し、これらの関係を判定するためにこの共通情報を用いることができる。例えば、ＭＴＰが環境設定および転送プロトコルである場合、関係付けられた要求および応答が共通の"SessionID"および"TransactionID"を共有することができる。デバイス・ファイル２１２の１つのセグメント３０４に異なる要求または応答がある場合、異なる SessionIDおよび／またはTransactionID値を用いればよい。何故なら、これらの項目は互いに関係付けられていない場合があるからである。これは、セッションおよびトランザクションのＭＴＰ概念と、デバイス・ファイル２１２において用いられるデバイス・ファイルおよびセグメントの概念との間の不一致の例と言うことができる。しかしながら、一実現例では、異なるSessionIDおよび／またはTransactionIDを有する要求および応答を含むセグメントに対処するために、例えば、ＭＴＰの規則を緩和してもよい。別の実現例では、別の環境設定および転送プロトコルを用いてもよく、リムーバブル記憶媒体を用いた直列化通信に対処するために、環境設定および転送プロトコルの規則を緩和してもよい。
【００５３】
一実現例では、デバイス・ファイル２１２は、追加のセグメント３０４をデバイス・ファイル２１２に添付して行くに連れて、増々増大する場合がある。デバイスまたは端末は、デバイス・ファイル２１２が用いるストレージを取り戻すために、セグメント３０４をデバイス・ファイル２１２から削除することもできる。デバイス・ファイル２１２からの不要なセグメントの削除については、図４および図５を参照して以下で更に論ずることにする。
【００５４】
システムを端から端まで説明する一例は、次の通りである。直接接続されることがない２つ以上のデバイスを接続する手段として、記憶カードを用いることができる。これらのデバイスは、一例としてＭＴＰのような、共通の通信プロトコルを理解する。１組のプロトコル動作を直列化し、あるいはファイルに保存することができ、このファイルを、コンパクト・フラッシュ・メモリ・カードのような、リムーバブル記憶媒体に格納する。セッションのこのような一例は、デバイスがサポートすることができるファイル・タイプを説明するメカニズムである。例えば、写真の転送のみをサポートする特定のデバイスが、そのリムーバブル・ストレージ上にあるそのデバイス・ファイルに、そのデバイスは写真のみを理解することを記録することができる。このリムーバブル・ストレージを端末に直接挿入すると、端末はデバイス・ファイルを解析し、次いで、実際のデバイスをエミュレートするデバイス・ファイルに結び付いた余分な仮想レイヤによって、デバイス・スタックをインスタンス化する。したがって、端末は、それがデバイスと直接通信していると確信し、このデバイスには写真しか転送できないと判断する。次いで、端末は、例えば、写真をその仮想デバイスに転送することを選択することができる。この動作の結果、デバイス上に新しいオブジェクトが作成されていることを示す別のデバイス・ファイルがリムーバブル・ストレージ上に作られ、更にリムーバブル・ストレージに保存された実際の写真ファイルに対する参照が作られる。次に、このリムーバブル・ストレージをデバイスに挿入すると、デバイスは、端末が作成した新しいデバイス・ファイルを読み取り、新しい写真ファイルが追加されたと結論付け、デバイス・ファイルはこの新しい写真ファイルの属性を説明する。ある属性またはメタデータの例は、ファイルのサイズ、ファイルの名称、ファイルを転送した日時等を含むことができる。この例は、単なる例示に過ぎず、他の数多くの実現例や応用が可能であることは、当業者には認められよう。
【００５５】
直列化通信の別の応用も考えられる。例えば、デバイスと端末との間のコンテンツ同期を行うため、または任意に端末を共通のコンテンツ・デポ(content depot)として用いて、２つ以上のデバイス間でコンテンツ同期を行うために、直列化通信を用いることもできる。別の例として、更に、ユーザの好み、設定値、および環境設定を端末から１つ以上のデバイスに伝搬するため、または最新のユーザ設定値を１つ以上のデバイスから端末に収集するために、直列化通信を用いることもできる。更に、端末を通じてサービスからデバイスにＤＲＭキーを転送すること、または端末を通じてデバイスからサービスにコンテンツ要求を送信することも、更に別の応用に含むことができる。また、その他の更に別の応用には、デバイス・クロック、時間帯、または場所の端末から１つ以上のデバイスへの同期を含むこともできる。その他の更に別の応用には、端末上における新しいデバイスの発見、新しいデバイスが発見されたときの端末上における追加のデバイス特定ユーザ・インターフェースまたは機構の露出、あるいはデバイスの新しい組み合わせが発見されたときの端末上における追加のユーザ・インターフェースまたは機構の露出を含むことができる。その他の多くの応用も、当業者には明白であろう。
【００５６】
図４は、端末との通信方法を示すフローチャートである。図４に示すように、本方法はステップ４００において開始することができ、ここでデバイスは記憶媒体を受け取ることができる。例えば、記憶媒体は、スロットまたはディスク・ドライブに挿入することができ、あるいはそれ以外でデバイスと通信状態に置くこともできる。
【００５７】
本方法はステップ４０２に進むことができ、ここで記憶媒体は当該デバイスに合わせてフォーマットされているか否か判定を行う。一実現例では、デバイスは、例えば、記憶媒体上にデバイス特定情報が存在することを検出することによって、当該デバイスに合わせて記憶媒体がフォーマットされているか否か判定を行う。例えば、デバイスは、デバイス・プロファイル、デバイス・ファイル、または記憶媒体上にあるその他の情報の存在を検出することができる。
【００５８】
ステップ４０４において、記憶媒体がデバイスに合わせてフォーマットされていない場合、デバイスは記憶媒体をフォーマットすることができる。記憶媒体のフォーマットは、例えば、デバイス・ファイルおよび／またはデバイス・プロファイルを記憶媒体上に作成および／または格納することを含めばよい。本方法はステップステップ４０８に進むことができる。
【００５９】
一実現例では、デバイス・ファイルおよび／またはデバイス・プロファイルを、例えば、ストレージ・マイクロコントローラの補助により、記憶媒体の保証部分に書き込むこともできる。この実現例は、デバイス特定状右方を不意の消去から保護することができる。
【００６０】
ステップ４０２において、記憶媒体がデバイスに合わせてフォーマットされていると判定した場合、本方法はステップ４０５に進み、記憶媒体上において該当するデバイス・ファイルを発見する。デバイスは、例えば、当該デバイスに対応するデバイス・プロファイルを含むデバイス・ファイルを探索することによって、該当するデバイス・ファイルを発見することができる。一実現例では、デバイス・ファイル・ディレクトリを用いて、該当するデバイス・ファイルを発見することができる。
【００６１】
ステップ４０６において、１つ以上のセグメントをデバイス・ファイルから読み出すことができる。一実現例では、読み出されるセグメントは、例えば、１つ以上の要求および／または応答を含むことができる。ステップ４０８において、１つ以上のセグメントを記憶媒体に書き込むことができる。一実現例では、書き込まれるセグメントは、例えば、１つ以上の要求および／または応答を含むことができる。セグメントの書き込みは、例えば、これらの要求および／または応答をデバイス・ファイルにバイト・ストリームとして格納することを含む。一実現例では、要求および／または応答は１つ以上のメディア転送実体を含む。記憶媒体から読み出されるまたは記憶媒体に書き込まれる要求および応答は、メディア・コンテンツ、またはコンテンツの要求のようなコンテンツ転送の指示、コンテンツ転送成功を示す結果コード、ヘッダ情報、またはその他の情報を含むことができる。
【００６２】
ステップ４０９において、デバイスは不要なセグメントをデバイス・ファイルから削除することができる。一実現例では、セグメントにおける要求のいずれかには同一デバイス・ファイル内に関係付けられた応答がない間は、当該セグメントをデバイス内部に保存することができる。更に、一実現例では、セグメントをデバイス・ファイルから除去してもよいのは、当該セグメントによってなされた要求がイニシエータによって承認されたときだけとするのがよい。一実現例では、この承認は正式に与えられなくてもよく、したがってセグメントはイニシエータによって除去されるのが通例である。この実現例では、デバイスは、それがイニシエータであるセグメントを除去する。しかしながら、別の実施形態では、例えば、イニシエータがセグメントにおける全ての要求に対する応答を受信した後に追加の要求を行った場合、レスポンダがセグメントを除去してもよい。更に別の実現例では、デバイスは単に既存のデバイス・ファイル全体を削除し、新しいデバイス・ファイルを作成し、デバイス・プロファイルを作成することによってそれを初期化してもよい。
【００６３】
ステップ４１０において、記憶媒体をデバイスから除去することができる。例えば、記憶媒体をカード・スロットまたはディスク・ドライブから除去するか、あるいはデバイスとの通信から引き揚げることもできる。
【００６４】
図５は、デバイスとの通信方法を示すフローチャートである。図５に示すように、本方法はステップ５００において開始することができ、ここで端末は記憶媒体を受け取ることができる。例えば、記憶媒体をスロットまたはディスク・ドライブに挿入するか、それ以外では端末と通信状態に置くこともできる。
【００６５】
ステップ５０１において、端末は記憶デバイス上で該当するデバイス・ファイルを発見することができる。端末は、例えば、当該端末が通信したい特定のデバイスに対応するデバイス・プロファイルを含むデバイス・ファイルを探索することによって、該当するデバイス・プロファイルを発見することができる。一実現例では、ユーザに潜在的なデバイスのリストを連絡し、通信するデバイスを選択するように要請することができる。別の実現例では、予め入力されているユーザの好みを用いて、通信するデバイスを決定する。更に別の実現例では、デバイス・ファイル・ディレクトリを用いて該当するデバイス・ファイルを発見することができる。
【００６６】
本方法はステップ５０２に進み、ここで端末はデバイス・ファイルまたは記憶媒体上のいずれかの場所からデバイス・プロファイルを得ることができる。ステップ５０４において、デバイス・スタックを構築することができる。デバイス・スタックは、例えば、デバイスに対する接続をシミュレートすることによって通信をし易くするように環境設定したソフトウェアとすることができる。デバイス・スタックは、例えば、記憶媒体から得られたデバイス・プロファイルに基づいて、オペレーティング・システムによって構築することができる。デバイス・スタックは、例えば、デバイスの動作をシミュレートするように環境設定された仮想レイヤと、記憶媒体、オペレーティング・システム、またはコンテンツ・アプリケーション間で通信を行うように環境設定されたドライバとを含むことができる。
【００６７】
ステップ５０６において、１つ以上のセグメントをデバイス・ファイルから読み出すことができる。セグメントの読み取り５０６は、例えば、含むことができる。ステップ４０６において、１つ以上のセグメントをデバイス・ファイルから読み出すことができる。一実現例では、読み出されるセグメントは、例えば、１つ以上の要求および／または応答を含むことができる。一実現例では、要求および／または応答は１つ以上のメディア転送実体を含む。記憶媒体から読み出された要求および応答は、メディア・コンテンツ、またはコンテンツの要求のようなコンテンツ転送の指示、コンテンツ転送成功を示す結果コード、ヘッダ情報、またはその他の情報を含むことができる。
【００６８】
ステップ５０７において、コンテンツに対して処置(action)を行うことができる。コンテンツに対して行われる処置は、端末を通じて行われる。この実現例では、したがって、端末は、例えば、コンテンツの圧縮、メタデータのコンテンツへの追加、コンテンツに関連があるＤＲＭ機能の実行、またはデバイスと端末との間の通信をし易くするためのその他の処置の実行に対して責務がある。
【００６９】
コンテンツ５０７に対する処置は、例えば、ＤＲＭエンジンまたはその他の保護コンテンツ・エンジン、オペレーティング・システム、および／またはコンテンツ・アプリケーションによって実行することができる。ステップ４０６においてセッション情報においてコンテンツを受信した場合、コンテンツに対して行う処置は、受信したコンテンツを処理し、それを端末に格納することを含むことができる。例えば、受信したコンテンツを端末に格納する前に、メタデータを付加することができ、あるいはＤＲＭ機能を実行することができる。ステップ５０６においてコンテンツの要求を受信した場合、コンテンツに対して行われる処置は、コンテンツを処理してデバイスに送信することを含むことができる。例えば、端末上の内部ストレージからコンテンツを検索し、コンテンツをデバイスに送信するための準備に、そのコンテンツを圧縮するかまたはＤＲＭ機能を実行することができる。
【００７０】
一実現例では、種々のＤＲＭ方式を処理するために、複数のＤＲＭエンジンを設けることもできる。この場合、コンテンツに処置を行うのに適したＤＲＭエンジンを選択すればよい。例えば、特定のデバイスとの通信に適したＤＲＭエンジンを選択することができる。この場合、デバイス・プロファイルまたはデバイス・ファイルに基づいて、ＤＲＭエンジンを選択すればよい。更に、ユーザの好みまたは端末のパラメータに基づいて、適したＤＲＭエンジンを選択することもできる。この場合、端末に格納されている好みまたはパラメータを用いて、ＤＲＭエンジンを選択することができる。ＤＲＭエンジンは、本発明の実施形態において用いられる保護コンテンツ・エンジンの一例である。保護コンテンツの保護および／または再生に用いられる別の種類の保護コンテンツ・エンジンを用いてもよいことは、当業者には認められよう。
【００７１】
ステップ５０８において、１つ以上のセグメントを記憶媒体に書き込むことができる。一実現例では、書き込まれるセグメントは、例えば、１つ以上の要求および／または応答を含むことができる。セグメントの書き込みは、例えば、これらの要求および／または応答をデバイス・ファイルにバイト・ストリームとして格納することを含む。一実現例では、要求および／または応答は１つ以上のメディア転送実体を含む。記憶媒体から読み出したまたは記憶媒体に書き込んだ要求および応答は、メディア・コンテンツまたはコンテンツの要求のような、コンテンツ転送の指示、コンテンツ転送成功を示す結果コード、ヘッダ情報、またはその他の情報を含むことができる。コンテンツに対する処置の実行５０７およびデバイス・ファイルへのセグメントの書き込み５０８については、図６を参照して更に論ずることにする。
【００７２】
ステップ５０９において、端末は不要のセグメントをデバイス・ファイルから削除することができる。一実現例では、セグメントにおける要求のいずれかには同一デバイス・ファイル内に関係付けられた応答がない間は、当該セグメントをデバイス内部に保存することができる。更に、一実現例では、セグメントをデバイス・ファイルから除去してもよいのは、当該セグメントによってなされた要求がイニシエータによって承認されたときだけとするのがよい。一実現例では、この承認は正式に与えられなくてもよく、したがってセグメントはイニシエータによって除去されるのが通例である。この実現例では、デバイスは、それがイニシエータであったセグメントを除去する。しかしながら、別の実施形態では、例えば、イニシエータがセグメントにおける全ての要求に対する応答を受信した後に追加の要求を行った場合、レスポンダがセグメントを除去してもよい。
【００７３】
ステップ５１０において、端末から記憶媒体を除去することができる。例えば、記憶媒体をカード・スロットまたはディスク・ドライブから除去するか、あるいはデバイスとの通信から引き揚げることもできる。
【００７４】
図６は、本発明の一実施形態によるシステムの全体像を示すブロック図である。図６に示すように、端末２０２は、メモリ・カードまたは磁気ディスクのような記憶媒体２０８を、カード・スロット、ディスク・ドライブ等のような入力６００を通じて受け取るように構成することができる。記憶媒体２０８は、例えば、記憶媒体２０８を端末２０２およびデバイス間で相互に受け渡すことによって、デバイス（図６には示されていない）と通信するために用いることができる。
【００７５】
端末２０２は、記憶媒体２０８を通じてデバイスと通信するコンテンツ・アプリケーション６０１を含むことができる。例えば、一実現例では、コンテンツ・アプリケーション６０１は、個人音楽再生デバイスと通信するように構成されているディジタル・メディア・プレーヤとすることができる。この場合、コンテンツ・アプリケーション６０１は、個人音楽プレーヤにメディア・ファイルを送信する、または個人音楽プレーヤからメディア・ファイルを受信するように構成されている。別の実現例では、コンテンツ・アプリケーション６０１は、写真を格納し操作するアプリケーションとすることができる。この場合、コンテンツ・アプリケーション６０１は、カメラ・デバイスから写真を受信する、またはカメラ・デバイスに写真を送信するように構成されている。他のコンテンツ・アプリケーション６０１、他のコンテンツ・タイプ、および他のデバイスを含む別の実現例も可能である。
【００７６】
また、端末２０２は、例えば、オペレーティング・システム６０２も含む。オペレーティング・システム６０２は、記憶媒体２０８を通じて通信するように構成することができる。
【００７７】
記憶媒体２０８を入力６００に挿入すると、デバイス・タック６０４を作成することができる。一実施形態では、デバイス・スタック６０４をオペレーティング・システム６０２によって作成する。デバイス・スタックは、例えば、デバイスへの接続をシミュレートすることによって、通信をし易くするように構成されたソフトウェアである。
【００７８】
デバイス・スタック６０４を作成するために、記憶媒体２０８上のデバイス・ファイル２１２からデバイス・プロファイル３０２を読み出し、端末２０２に格納することができる。デバイス・プロファイル３０２は、例えば、デバイスのプロパティまたは属性を指定するパラメータ、あるいはそれ以外のデバイスを記述するものとすることができ、あるいはこれらを含むことができる。デバイス・プロファイル３０２は、デバイスのタイプ、デバイスが受け入れるコンテンツのタイプ、デバイスが用いる圧縮方式、デバイス上で利用可能なメモリ、デバイスについてのディジタル権利管理情報等のような情報を含むことができる。デバイス・プロファイル３０２は、例えば、フォーマット中にデバイスによって記憶媒体２０８に書き込むことができる。
【００７９】
デバイス・スタック６０４を作成するために、例えば、デバイス・プロファイルに基づいて仮想レイヤ６０８を作成することができる。一実現例では、仮想レイヤ６０８は、デバイスの動作をシミュレートする。デバイス・ファイル２１２と仮想レイヤ６０８の組み合わせは、「仮想デバイス」を構成すると言うことができる。仮想デバイスの動作は、端末２０２の観点からは、デバイスが実際に端末２０２に接続されているように見えるようにすることができる。
【００８０】
また、デバイス・スタックはドライバ６１２も収容することができる。ドライバ６１２は、例えば、記憶媒体２０８とコンテンツ・アプリケーション６０１またはオペレーティング・システム６０２との間で通信を行うように構成されたソフトウェア・モジュールである。一実現例では、ドライバ６１２はデバイス・ファイル２１２を記憶媒体２０８から受け取るか、そうでなければ記憶媒体２０８上のデバイス・ファイル２１２にアクセスする。また、ドライバ６１２は情報および／または命令もコンテンツ・アプリケーション６０１および／またはオペレーティング・システム６０２から受信することができる。デバイス・ファイル２１２内にある情報、コンテンツ・アプリケーション６０１から受信した情報、および／またはオペレーティング・システム６０２から受信した情報に基づいて、ドライバ２１２は、デバイス・ファイル２１２から端末２０２にコンテンツを送信するか否か、そして端末２０２からデバイス・ファイル２１２にコンテンツを送信するか否か判定を行う。
【００８１】
ドライバ６１２が、コンテンツをデバイス２１２から端末２０２に書き込むと決定した場合、ドライバ６１２はデバイス・ファイル６１２からコンテンツを検索する。次いで、ドライバ６１２は、コンテンツに対して何らかの処置を行うか否か決定する。ドライバ６１２は、例えば、仮想レイヤ６０８、コンテンツ・アプリケーション６０１、および／またはオペレーティング・システム６０２を試験することによって、コンテンツに対して処置を行うか否か決定する。コンテンツに対して行われる処置の例には、例えば、コンテンツの圧縮、メタデータのコンテンツへの追加、コンテンツに関連があるＤＲＭ機能の実行が含まれる。コンテンツに対して処置を行うとよい場合、ドライバ６１２は、例えば、仮想レイヤ６０８を試験することによって、このような処置を行う。コンテンツに処置を行う際、ドライバ６１２は１つ以上のＤＲＭエンジン６１４と通信することができる。コンテンツに対して処置を行った後、修正されたコンテンツを、例えば、データベース６１６に格納することができる。コンテンツを受信、修正、および／または格納したことを示す転送プロトコル実体のような、行われた動作を示す１つ以上の転送プロトコル実体をデバイス・ファイル２１２に書き込むことができる。
【００８２】
ドライバ６１２が、コンテンツを端末２０２からデバイス・ファイル２１２に書き込むことを決定した場合、ドライバ６１２は、例えば、データベース６１６、コンテンツ・アプリケーション６０１、または端末２０２内部のその他の場所から、コンテンツを検索する。次いで、ドライバ６１２は、コンテンツに対して何らかの処置を行うか否か決定する。ドライバ６１２は、例えば、仮想レイヤ６０８、コンテンツ・アプリケーション６０１、および／またはオペレーティング・システム６０２を試験することによって、コンテンツに対して処置を行うか否か決定する。コンテンツに対して行われる処置の例には、例えば、コンテンツの圧縮、メタデータのコンテンツへの追加、コンテンツに関連があるＤＲＭ機能の実行が含まれる。コンテンツに対して処置を行うとよい場合、ドライバ６１２は、例えば、仮想レイヤ６０８を試験することによって、このような処置を行う。コンテンツに処置を行う際、ドライバ６１２は１つ以上のＤＲＭエンジン６１４と通信することができる。コンテンツに対して処置を行った後、修正されたコンテンツを、例えば、デバイス・ファイル２１２に書き込むことができる。修正したコンテンツは、例えば、ビット・ストリームとしてデバイス・ファイル２１２に格納する。修正コンテンツは、例えば、ヘッダ・データ、転送プロトコル実体、またはその他のデータと共に格納することができる。
【００８３】
一実現例では、ドライバ６１２は複数のＤＲＭエンジン６１４と通信することができる。この場合、ドライバ６１２および／または仮想レイヤ６０８は、コンテンツに対して処置を行うのに適したＤＲＭエンジン６１４を選択することができる。特定のデバイスとの通信に適したＤＲＭエンジン６１４を選択することができる。この場合、ＤＲＭエンジンは、デバイス・プロファイル、デバイス・ファイル２１２、または仮想レイヤ６０８に基づいて選択するとよい。更に、ユーザの好みまたは端末のパラメータに基づいて、適したＤＲＭエンジン６１４を選択することもできる。この場合、端末２０２に格納されている好みまたはパラメータを用いて、ＤＲＭエンジン６１４を選択することができる。
【００８４】
端末２０２上でコンテンツを修正することができるので、デバイス・ファイル２１２に格納されているコンテンツをストリーム・パラメータ、ＤＲＭモデル、およびデバイスのその他の予想(expectation)に合わせることができる。その結果、ユーザの操作(experience)が滑らかになり、ユーザからの入力を殆どまたは全く必要とせずに、デバイス上での再生またはその他のコンテンツ消費が可能となる。
【００８５】
ターゲット・デバイスは制約を受けることが頻繁にあるので、記憶カード上の大量のメディア・コンテンツは、デバイスの動作改善に対処するように編成するとよい。これを達成するには、本発明と共にアクセレレータを用いることができる。例えば、メディア・コンテンツの格納を完了しているときに、アクセレレータが記憶媒体にアクセレレータ・ファイルを書き込むことができる。アクセレレータ・ファイルは、コンテンツ・メタデータを提供することができ、例えば、デバイスのユーザ・インターフェースによってコンテンツ・メタデータにアクセスすることができる。本発明と共に用いるアクセレレータ方式は、例えば、カードをフォーマットするために用いられるブロック・ファイル・システムには依存しないようにするとよい。
【００８６】
実施形態の中には、メディア・コンテンツを記録することができないデバイスの場合のように、例えば、デバイス最適化メタデータ・データベースのようなアクセレレータを用いるとよい場合もある。種々の実現例では、その他のアクセレレータを用いることもできる。
【００８７】
実現例の中には、端末がコンテンツを走らせるときに、端末にデバイス・パラメータの精度高いスナップショットを供給することによって、ユーザに首尾一貫した操作を行わせるものもある。また、デバイス・パラメータの標準的なエンコード方式を備えることにより記憶媒体を通じて転送を行う場合に、端末が最適なデバイス動作を行うことを可能にする実現例もある。したがって、端末は、デバイスが用いるためのアクセレレータ・ファイルを作成することができ、その上デバイスにメディア・コンテンツを準備するために、メディア・コンテンツに処置を行うことができる。
【００８８】
以上、本発明の特定的な実施形態について図示し説明したが、本発明の範囲および意図から逸脱することなく、種々の変更や修正が本発明に対して可能であることは言うまでもない。ここに記載した実施形態は、あらゆる観点からも、限定ではなく例示であることを意図している。本発明が属する技術の当業者には、発明の範囲から逸脱することなく、代替実施形態も明白であろう。
【００８９】
即ち、中央端末と１つ以上のデバイスとの間の通信に用いられる記憶媒体に関して本発明を説明したが、本発明の実施形態では、複数の端末が記憶媒体を用いて、互いに、および／または外部デバイスと通信することも可能である。この場合、通信セッションに関与する端末を識別する端末プロファイルを、デバイス・プロファイル３０２の代わりに、またはそれに加えて、格納することもできる。更に、本発明の実施形態では、複数のデバイスが記憶媒体を用いて互いに通信することも可能である。この場合、２つ以上のデバイス・プロファイル３０２を、各デバイス・ファイル２１２に含ませる、またはこれと関連付けることができる。
【００９０】
更に、種々の例では、直列化通信に用いられる環境設定および転送プロトコルとしてＭＴＰを記載したが、他の環境設定および転送プロトコルを用いてもよいことは、当業者には認められよう。例えば、オブジェクト交換（ＯＢＥＸ）、ピクチャ転送プロトコル（ＰＴＰ）、赤外線移動体通信（ＩｒＭＣ）、ウェブに基づく分散オーサリングおよびバージョニング（ＷｅｂＤＡＶ）、ファイル転送プロトコル（ＦＴＰ）、ハイパー・テキスト転送プロトコル（ＨＴＴＰ）、またはその他のしかるべきプロトコルであればいずれでも、通信に用いることができる。
【００９１】
以上の説明から、本発明は、先に明記した目的全てを達成するのに非常に適しており、その上、本システムおよび方法には自明で固有のその他の利点も同時に得られることが分かるであろう。尚、ある種の特徴および下位組み合わせも有益であり、その他の特徴や下位組み合わせを参照しなくても採用することができる。これは想定されており、添付した特許請求の範囲に該当することとする。
【図面の簡単な説明】
【００９２】
【図１】図１は、本発明の実施形態を実施することができるコンピュータ化環境を示すブロック図である。
【図２】図２は、本発明の一実施形態によるシステムの全体像を示すブロック図である。
【図３】図３は、本発明の一実施形態による記憶媒体の全体像を示すブロック図である。
【図４】図４は、本発明の一実施形態にしたがって、デバイスと通信する方法を示すフローチャートである。
【図５】図５は、本発明の一実施形態にしたがって、端末と通信する方法を示すフローチャートである。
【図６】図６は、本発明の一実施形態によるシステムの全体像を示すブロック図である。
【図１】
2008547083.tif 000003
【図２】
2008547083.tif 000004
【図３】
2008547083.tif 000005
【図４】
2008547083.tif 000006
【図５】
2008547083.tif 000007
【図６】
2008547083.tif 000008
【国際調査報告】
2008547083.tif 000009