(57)【要約】  コンテンツアドレスマッピングを維持するよう構成されたコンテンツアドレス記憶デバイスを開示する。コンテンツアドレス記憶デバイスに記憶されるデータオブジェクト、及び送信ソースに識別されるローカルデータオブジェクトの識別子を送信ソースから受信しり。コンテンツアドレス記憶デバイスに関係付けられたコンテンツアドレスが、データオブジェクトのコンテンツの少なくとも一部に基づいて特定される。このデータオブジェクトは、コンテンツアドレス記憶デバイス上で、コンテンツアドレスに関係付けられた記憶ロケーションに記憶される。ローカルデータオブジェクト識別子をコンテンツアドレスに関係付けるマッピングは、コンテンツアドレス記憶デバイスで維持される。【選択図】図１
2008519362.tif 000002
【特許請求の範囲】
【請求項１】
コンテンツアドレス記憶デバイスにデータを記憶する方法であって、
前記コンテンツアドレス記憶デバイスに記憶されるデータオブジェクト、及びローカルデータオブジェクト識別子を送信ソースから受信する処理であって、その識別子によって前記データオブジェクトは前記送信ソースに識別されることになる当該処理と、
前記コンテンツアドレス記憶デバイス上のデータオブジェクトに関連付けられたコンテンツアドレスを、前記データオブジェクトのコンテンツの少なくとも一部に基づいて特定する処理と、
前記コンテンツアドレス記憶デバイス上のデータオブジェクトを、前記コンテンツアドレスに関係付けられた記憶ロケーションに記憶する処理と、
前記コンテンツアドレス記憶デバイス上で、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関係付けるマッピングを維持する処理と、
を含む方法。
【請求項２】
前記送信ソースが送信アプリケーションを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記コンテンツアドレス記憶デバイス上で、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関係付けるマッピングを維持する処理が、送信ソースに関係付けられたコンテンツマップを更新することを含む、請求項１に記載の方法。
【請求項４】
前記ローカルデータオブジェクト識別子が、前記送信ソースに関係付けられたローカルホストのデータオブジェクトに関係するファイル名を含む、請求項１に記載の方法。
【請求項５】
前記ローカルデータオブジェクト識別子が、前記送信ソースに関係付けられたローカルホストのデータオブジェクトに関係するファイルパスを含む、請求項１に記載の方法。
【請求項６】
前記データオブジェクトがファイルを含む、請求項１に記載の方法。
【請求項７】
前記データオブジェクトの記憶が成功したことを前記送信ソースに報告する処理を更に含む、請求項１に記載の方法。
【請求項８】
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものであるかを判断する処理を更に含む、請求項１に記載の方法。
【請求項９】
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものであるかを判断する処理と、
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものである場合、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関連付けるマッピングを前記コンテンツアドレス記憶デバイスで維持する前記処理を実行する処理と、
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものでない場合、前記維持する処理を省き、且つ前記コンテンツアドレスを前記送信ソースに送信する処理と、
を含む請求項１に記載の方法。
【請求項１０】
前記送信ソースに関連付けられたソース識別子が識別されるかどうかを判断する処理を更に含み、前記ソース識別子が識別される場合は、そのソース識別子を用いて前記送信ソースに関連付けられたコンテンツマップを特定し、この場合、前記マッピングが前記コンテンツマップに維持されていることを特徴とする請求項１に記載の方法。
【請求項１１】
前記データオブジェクトにアクセスするため、前記ローカルデータオブジェクト識別子を有する要求を要求者から受信する処理と、
前記マッピングを用いて前記ローカルデータオブジェクト識別子に関連付けられたコンテンツアドレスを特定する処理と、
前記コンテンツアドレスを用いて前記データオブジェクトを検索する処理と、
前記データオブジェクトを前記要求者に提供する処理と、
を更に含む、請求項１に記載の方法。
【請求項１２】
コンテンツアドレス記憶デバイスであって、
（１）前記コンテンツアドレス記憶デバイスに記憶されるデータオブジェクト、及びローカルデータオブジェクト識別子を送信ソースから受信するよう構成された通信インタフェースであって、その識別子によって前記データオブジェクトは前記送信ソースに識別されることになる当該通信インタフェースと、
（２）メモリと、
（３）(i)前記コンテンツアドレス記憶デバイス上のデータオブジェクトに関連付けられたコンテンツアドレスを、前記データオブジェクトのコンテンツの少なくとも一部に基づいて特定し、
(ii)前記メモリ内のデータオブジェクトを、前記コンテンツアドレスに関係付けられた記憶ロケーションに記憶し、
(iii)前記コンテンツアドレス記憶デバイス上で、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関係付けるマッピングを維持する、
よう構成されたプロセッサと、
を備えたコンテンツアドレス記憶デバイス。
【請求項１３】
前記送信ソースが送信アプリケーションを含むことを特徴とする請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項１４】
送信ソースに関係付けられたコンテンツマップを更新することによって、前記プロセッサが、前記コンテンツアドレス記憶デバイス上で、少なくとも一部で、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関係付けるマッピングを維持するよう構成された、請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項１５】
前記ローカルデータオブジェクト識別子が、前記送信ソースに関係付けられたローカルホストのデータオブジェクトに関係するファイル名を含む、請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項１６】
前記ローカルデータオブジェクト識別子が、前記送信ソースに関係付けられたローカルホストのデータオブジェクトに関係するファイルパスを含む、請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項１７】
前記データオブジェクトがファイルを含む、請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項１８】
前記プロセッサが、前記データオブジェクトの記憶が成功したことを前記送信ソースに報告するよう更に構成されたことを特徴とする、請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項１９】
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものであるかを判断するよう前記プロセッサが構成されていることを特徴とする、請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項２０】
前記プロセッサは、
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものであるかを判断し、
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものである場合、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関連付けるマッピングを前記コンテンツアドレス記憶デバイスで維持し、
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものでない場合、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関連付けるマッピングを前記コンテンツアドレス記憶デバイスで維持せず、且つ前記コンテンツアドレスを前記送信ソースに送信する、
よう更に構成されている、請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項２１】
前記送信ソースに関連付けられたソース識別子が識別されるかどうかを判断することを更に含み、前記ソース識別子が識別される場合は、そのソース識別子を用いて前記送信ソースに関連付けられたコンテンツマップを特定し、この場合、前記マッピングが前記コンテンツマップに維持されていることを特徴とする請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項２２】
前記通信インタフェースが、前記データオブジェクトにアクセスするため、前記ローカルデータオブジェクト識別子を有する要求を要求者から受信するよう更に構成され、
前記プロセッサが、前記マッピングを用いて前記ローカルデータオブジェクト識別子に関連付けられたコンテンツアドレスを特定し、前記コンテンツアドレスを用いて前記データオブジェクトを検索し、そして前記データオブジェクトを前記要求者に提供するよう更に構成された、請求項１２に記載のコンテンツアドレス記憶デバイス。
【請求項２３】
コンテンツアドレス記憶デバイスにデータを記憶するためコンピュータ読み出し可能な媒体に組み込まれたコンピュータプログラム製品であって、
前記コンテンツアドレス記憶デバイスに記憶されるデータオブジェクト、及びローカルデータオブジェクト識別子を送信ソースから受信し、その識別子によって前記データオブジェクトは前記送信ソースに識別されることになり、
前記コンテンツアドレス記憶デバイス上のデータオブジェクトに関連付けられたコンテンツアドレスを、前記データオブジェクトのコンテンツの少なくとも一部に基づいて特定し、
前記コンテンツアドレス記憶デバイス上のデータオブジェクトを、前記コンテンツアドレスに関係付けられた記憶ロケーションに記憶し、
前記コンテンツアドレス記憶デバイス上で、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関係付けるマッピングを維持する、
コンピュータ命令を含むコンピュータプログラム製品。
【請求項２４】
前記送信ソースが送信アプリケーションを含むことを特徴とする請求項２３に記載のコンピュータプログラム製品。
【請求項２５】
前記コンテンツアドレス記憶デバイス上で、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関係付けるマッピングを維持することが、送信ソースに関係付けられたコンテンツマップを更新することを含む、請求項２３に記載のコンピュータプログラム製品。
【請求項２６】
前記ローカルデータオブジェクト識別子が、前記送信ソースに関係付けられたローカルホストのデータオブジェクトに関係するファイル名を含む、請求項２３に記載のコンピュータプログラム製品。
【請求項２７】
前記ローカルデータオブジェクト識別子が、前記送信ソースに関係付けられたローカルホストのデータオブジェクトに関係するファイルパスを含む、請求項２３に記載のコンピュータプログラム製品。
【請求項２８】
前記データオブジェクトがファイルを含む、請求項２３に記載のコンピュータプログラム製品。
【請求項２９】
前記データオブジェクトの記憶が成功したことを前記送信ソースに報告するコンピュータ命令を更に含む、請求項２３に記載のコンピュータプログラム製品。
【請求項３０】
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものであるかを判断するコンピュータ命令を更に含む、請求項２３に記載のコンピュータプログラム製品。
【請求項３１】
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものであるかを判断し、
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものである場合、前記ローカルデータオブジェクト識別子を前記コンテンツアドレスに関連付けるマッピングを前記コンテンツアドレス記憶デバイスで維持することを実行し、
前記送信ソースが、前記ローカルデータオブジェクト識別子と対応のコンテンツアドレスとの間のマッピングを前記コンテンツアドレス記憶デバイスで維持するためのものでない場合、前記維持する処理を省き、且つ前記コンテンツアドレスを前記送信ソースに送信する、
コンピュータ命令を含む請求項２３に記載のコンピュータプログラム製品。
【請求項３２】
前記送信ソースに関連付けられたソース識別子が識別されるかどうかを判断するコンピュータ命令を更に含み、前記ソース識別子が識別される場合は、そのソース識別子を用いて前記送信ソースに関連付けられたコンテンツマップを特定し、この場合、前記マッピングが前記コンテンツマップに維持されていることを特徴とする請求項２３に記載のコンピュータプログラム製品。
【請求項３３】
前記データオブジェクトにアクセスするため、前記ローカルデータオブジェクト識別子を有する要求を要求者から受信し、
前記マッピングを用いて前記ローカルデータオブジェクト識別子に関連付けられたコンテンツアドレスを特定し、
前記コンテンツアドレスを用いて前記データオブジェクトを検索し、
前記データオブジェクトを前記要求者に提供する、
コンピュータ命令を更に含む、請求項２３に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して言えばデータ記憶に関係し、より詳しくは、コンテンツアドレスマッピングを維持するように構成されたコンテンツアドレス記憶デバイスが開示されている。
（関連出願）
「CONTENT ADDRESSED STORAGE DEVICE WITH WEB SERVICES INTERFACE」という表題の同時係属の米国出願が、引用としてここにその全体を組み入れられ、また、「IMPLEMENTING APPLICATION SPECIFIC MANAGEMENT POLICIES ONN A CONTENT ADDRESSED STORAGE DEVICE」という表題の同時係属の米国出願が、引用としてここにその全体を組み入れられる。
【背景技術】
【０００２】
コンテンツアドレス記憶（ＣＡＳ）デバイスは、典型的には固定コンテンツを、ネットワークを介して記憶サーバーに記憶する。マサチューセッツ州のHopkintonにあるＥＭＣTM社で製造販売されているCenteraTMＣＡＳデバイスはその一例である。通常、アプリケーションは記憶されるべきデータをＣＡＳデバイスへ送信する。ＣＡＳデバイスは、記憶されるコンテンツの少なくとも一部に基づいて“コンテンツアドレス（ＣＡ）”を計算することにより、記憶場所を決定する。その後、ＣＡＳデバイスは、その選択された場所にコンテンツを記憶し、データを送信したアプリケーションにそのコンテンツアドレスを戻す。コンテンツアドレスはクレーム確認などに用いられ、記憶アプリケーション（即ち、理論的には、ＣＡを提供する別のアプリケーション）が前に記憶したコンテンツを検索できるようにする（そして、あるときは、削除などの制限されたオペレーションを実行する）。
【０００３】
上述した典型的なアプローチの下では、アプリケーションはコンテンツアドレスを受信し、そしてそのコンテンツアドレスとローカルオブジェクト識別子（例えば、ファイル名及び/又はパス）との間のマッピングを追跡（トレース）し、これによって記憶されたデータオブジェクトが、アプリケーションが実行するローカルシステムにおいて既知となる。これは、ローカルシステにおけるマッピング及び消費時間及びリソースを維持するよう構成されたアプリケーションに対するＣＡＳデバイスの使用を制限する。アプリケーションのあるタイプについて、上記マッピングを維持する機能性は既に存在していたり、組み込むとしても比較的簡単であるが、他のアプリケーションについては、データトラッキングの要求レベルは、記憶用ＣＡＳデバイスを使用する上で障害になるかもしれない。
【０００４】
それゆえ、ＣＡＳデバイス上のデータに関連するコンテンツアドレスと、アプリケーションが実行するローカルシステム上のデータオブジェクトのローカルオブジェクト識別子との間のマッピングをアプリケーションが維持することを要求することなく、アプリケーションが記憶用ＣＡＳデバイスを使用できるようにする方法が求められている。
【発明の開示】
【課題を解決するための手段】
【０００５】
本発明は様々な方法で実現し得る。様々な方法とは、プロセス、装置、システム、合成物、あるいは、コンピュータで読み取り可能なメディア（例えば、コンピュータ読み取り可能記録媒体、又は、プログラム命令が光もしくは電気的な通信リンクに送られるネットワーク等）を含むものである。本明細書では、このような実現方法や本発明がとり得る他の形式を技術として言及する。一般に、開示された処理ステップの順序は発明の範囲で変わり得る。
【０００６】
本発明の一又は複数の実施例の詳細な説明が、本発明の原理を示した添付図に従って開示される。そのような実施例に関連して本発明を記載するが、本発明は開示した実施例に限るものではない。発明の範囲は請求項のみにより限定され、発明は多数の代替案、修正、あるいは均等物を含む。本発明の完全な理解を得るため、以下に幾つかの具体的な詳細を説明する。これらの詳細は例を示すためのものであり、本発明は、説明した詳細に関わらず請求項に従い実現され得る。明確さを目的として、本発明を不必要に不明瞭にしないようにするため、本発明に関連する技術分野で知られている技術構成については詳細には説明しない。
本発明の様々な実施例は、以下の詳細な説明及び添付の図面において開示される。
【発明を実施するための最良の形態】
【０００７】
コンテンツアドレスマッピングを維持するよう構成されたコンテンツアドレス可能な記憶デバイスを開示する。ある実施例では、コンテンツアドレス記憶デバイスに記憶されたデータオブジェクト、及びローカルデータオブジェクト識別子であってこの識別子によってデータオブジェクトが送信ソース（例えば、アプリケーション）を識別するそのようなローカルデータオブジェクト識別子を受信する。コンテンツアドレス記憶デバイスのデータオブジェクトに関連付けられたコンテンツアドレスは、データオブジェクトのコンテンツの少なくとも一部に基づいて特定される。そのデータは、コンテンツアドレス記憶デバイス上のコンテンツアドレスに関連付けられた記憶ロケーションにオブジェクトが記憶されている。ローカルデータオブジェクト識別子をコンテンツアドレスに関連付けるマッピングは、コンテンツアドレス記憶デバイスで維持される。
【０００８】
図１は、先行技術の典型的なコンテンツアドレス記憶（ＣＡＳ）デバイスを説明するブロック図である。アプリケーション１０２は、記憶するためのＣＡＳデバイス１０４にデータを送信する。ＣＡＳデバイス１０４は、データを記憶し、そのデータに関連したコンテンツアドレス（ＣＡ）をアプリケーション１０２に戻す。アプリケーション１０２は、各ファイル又は、ＣＡＳデバイス１０４によってデータ用アプリケーション１０２に戻された対応のコンテンツアドレスと一緒に記憶用ＣＡＳデバイス１０４に送信された他のデータセットを、ローカルデータオブジェクト識別子（例えば、ファイル名及び/又はパス）に関連付けるコンテンツマップ１０６を維持する。例示すれば、データオブジェクト“Ｄ:＼ｄａｔａ１”がＣＡＳデバイス１０４のアプリケーション１０２によって記憶され、そしてコンテンツアドレス“Ｇ４５Ｈ４３３”がＣＡＳデバイス１０４によって戻され、ＣＡＳデバイスのどこにデータオブジェクト“Ｄ:＼ｄａｔａ１”が記憶されたかをアプリケーション１０２に示す。将来、アプリケーション１０２が、ＣＡＳデバイス１０４に記憶されたとしてデータオブジェクト“Ｄ:＼ｄａｔａ１”にアクセスする必要があるとすれば、アプリケーション１０２は、コンテンツマップ１０６内の対応コンテンツアドレスを探してそのコンテンツアドレスを使い、ＣＡＳデバイス１０４のデータをアクセスするだろう。上述したように、図１に示したアプローチの下では、アプリケーション１０２は、コンテンツマップ１０６を維持するよう構成されなければならず、コンテンツマップ１０６は、付加的な機能性がアプリケーション１０２に構築され、アプリケーション１０２が実行するホスト上の付加メモリ及び処理リソースを消費することを要求する。
【０００９】
図２は、コンテンツアドレスマッピングを維持するよう構成されたコンテンツアドレス可能な記憶デバイスのブロック図である。アプリケーション２０２は、記憶されるＣＡＳデバイス２０４にデータを送信する。アプリケーションは、さらにアプリケーションに関連した固有識別子及びローカルデータオブジェクト識別子を提供し、これによって、送信されたデータは、アプリケーション及び/又はそのアプリケーションが実行するローカルホストに対して既知となる。ＣＡＳデバイス２０４は、データの少なくとも一部に基づいてコンテンツアドレスを計算し、且つそのデータをコンテンツに関連する場所に記憶する。次に、ＣＡＳデバイス２０４は、送信アプリケーション２０２用のＣＡＳデバイス２０４に維持されたコンテンツマップ２０６に、アプリケーション２０２がデータを識別するローカルデータオブジェクト識別子と、ＣＡＳデバイス２０４条のデータに関連するコンテンツアドレスとの間の関連性を記憶する。例に示すように、アプリケーション２０２用のＣＡＳデバイス２０４によって維持されたコンテンツマップ２０６は、ＣＡＳデバイス２０４によって維持された複数のコンテンツマップ２０６〜２１０の１つであり、ＣＡＳデバイス２０４のデータを記憶する各アプリケーションのためのコンテンツマップである。
【００１０】
コンテンツマップ２０６〜２１０のそれぞれは、コンテンツマップに関係するアプリケーションに関連する固有のアプリケーション識別子（例えば、“アプリケーション＃３４５”）によって識別される。各アプリケーション用のコンテンツマップは、ＣＡＳデバイス２０４によって維持されているので、アプリケーション２０２などのアプリケーションは、コンテンツアドレス記憶デバイス及びローカルデータオブジェクト識別子によって生成されるコンテンツアドレス間のマッピングを維持するよう構成することは必要とされない。代りに、アプリケーションは、アプリケーションが実行しているローカルホストで既知となるローカルデータオブジェクト識別子によってＣＡＳデバイスが記憶するデータに対して、ただアクセス又は参照することができる。このアプローチは、例えば、ＣＡＳデバイスは典型的には、他のデバイスが同様の方法でローカルドライブとしてＣＡＳデバイスにアクセスすることが要求されるような本来のファイルシステムを有していないにもかかわらず、記憶デバイスにアドレスされたコンテンツがローカルホストで付加的なドライブとしてあらわになることを可能にする。図２に示す例の場合、データが記憶され、関連のコンテンツマップが更新されると、ＣＡＳデバイス２０４はアプリケーション２０２に対してオペレーション状態レポート又はメッセージを戻す。それは、例えば、データ記憶が成功したこと（又は可能であれば、成功しなかったこと）を示すものである。
【００１１】
ある実施例では、アプリケーション２０２は、ＴＣＰ／ＩＰネットワーク（不図示）などのネットワークを介してＣＡＳデバイス２０４にアクセスする。ＣＡＳデバイス２０４は、ネットワークインタフェースカード（ＮＩＣ）などの通信インタフェースを備え、通信を容易にする。加えて、ＣＡＳデバイス２０４は、コンテンツマップ２０６〜２１０を記憶するのに用いるメモリ、アプリケーション２０２などのアプリケーションによってＣＡＳデバイス２０４に送信されたデータを記憶するよう構成された１以上の記憶ノード、及びデータの記憶・検索・ＣＡＳデバイス２０４やコンテンツマッピングオペレーションの管理機能を実行するよう構成された１以上のプロセッサを含む。１又はそれ以上のプロセッサは、ソフトウェアによって構成された汎用プロセッサ（例えば、ＣＰＵ）を含むことができ、上記機能及びオペレーション、及び/又は特定用途向け集積回路、フィールド・プログラマブル論理デバイス、又は同様に構成された他のデバイスを実行する。
【００１２】
図３は、ＣＡＳデバイス上のコンテンツ・マッピングを維持する実施例で使用されるプロセスを説明するフローチャートである。
ある実施例の場合、図３のプロセスは、図２のＣＡＳデバイス２０４などのＣＡＳデバイスで実行する。データが検索される（３０２）。送信アプリケーションの固有アプリケーション識別子がそのデータに与えられたり、及び/又は、そうでなければ（例えば、データと一緒に受信された他の情報、データを受信したつながり等に基づいて）既知であるならば（３０４）、データを記憶する（３０８）。アプリケーション識別子が与えられず、しかも既知でもないとき（３０４）、アプリケーション識別子を得て（３０６）、データを記憶する（３０８）。
【００１３】
ある実施例の場合、各アプリケーションがそれ自身の識別子を生成し、その識別子をＣＡＳデバイスに提供する。このＣＡＳデバイスは、識別子が固有(unique)であるならば、承認し(acknowledge)及び認定(authorize)するが、その代わりに当該識別子を拒絶し、そしてアプリケーションによって提案された識別子が既に別のアプリケーションでＣＡＳデバイスと関連づけられているイベントにおいて、アプリケーションがアプリケーション用の異なる識別子を提案することを要求する。他の実施例においては、ＣＡＳデバイスは相互作用する各アプリケーション用の固有アプリケーション識別子を生成するよう構成される。そのような実施例においては、３０６はアプリケーション用の固有識別子を生成すること、及び割当てられる固有識別子のアプリケーションを通知することを含む。その結果、このアプリケーションは記憶用ＣＡＳデバイスへ送信される将来のデータとともに固有識別子を含むことができる。ある実施例において、アプリケーションは、記述されたヘッダー又は記憶用ＣＡＳデバイスへデータを送信するためのアプリケーションによって使用されるメッセージの他のフィールドに識別子を含むことによってその固有識別子を提供する。ある代替的な実施例の場合、サードパーティの登録又は同様のサービスが固有アプリケーション識別子を登録アプリケーションに対して全体的に割当てる。そのような実施例では、３０６は、上記サードパーティ及び/又はアプリケーションがそのように行う要求からアプリケーション用の識別子を入手することを含む。
【００１４】
データを記憶すること（３０８）は、記憶されるコンテンツの少なくとも一部に基づいて、データ用のコンテンツアドレスを計算することを含む。このコンテンツアドレスは、ＣＡＳデバイスをローカルデータオブジェクト識別子（例えば、ファイル名及び/又はパス）に関連づけ、この識別子によって、記憶されたデータオブジェクトが送信アプリケーション（例えば、アプリケーションが実行しているローカルホスト上のデータオブジェクト用のファイル名及び/又はパス）にとって既知となる（３１０）。コンテンツアドレスと対応のローカルデータオブジェクト識別子との間の関連性は、送信アプリケーションに関連するコンテンツマップにあるＣＡＳデバイスに記憶される（３１２）。ある実施例の場合、３１０及び３１２が結合され、送信アプリケーションに関連するコンテンツマップ内のロケーションに関係して、対応の値を記憶することによって、コンテンツアドレスと対応のローカルデータオブジェクト識別子との間の関連性行う。オペレーションの結果は送信アプリケーション（３１４）に報告され、その後、記憶されるべき次のデータが受信され且つ処理される（３０２）。上述したように、報告された結果は、要求されたデータ記憶オペレーションが上手く完了したことの報告を含むことができる。コンテンツアドレスを報告する必要はない。なぜなら、そのアプリケーション識別子及びアプリケーションにとってデータが既知のローカルデータオブジェクト識別子を提供することによって、ＣＡＳデバイスによって維持されているコンテンツマップは、アプリケーションがＣＡＳデバイスに記憶されているデータをこのアプリケーションによってアクセス（例えば、検索）することを可能にするからである。より詳細については後述する。
【００１５】
図４は、ＣＡＳデバイスに記憶されたデータにアクセスするための要求を処理する実施例で使用されるプロセスを説明するフローチャートである。
ＣＡＳデバイスに記憶されたデータオブジェクトを受信するための要求が受信される（４０２）。ある実施例では、この要求は、要求アプリケーション及び、その要求アプリケーションによって要求データが既知となるローカルデータオブジェクト識別子に関連するアプリケーション識別子を含む。ローカルデータオブジェクト識別子は、ＣＡＳデバイス上の対応のコンテンツアドレスにマップされる（４０４）。データはコンテンツアドレスに関連するローケーションから検索され（４０６）、要求アプリケーションに提供される（４０８）。
【００１６】
図５は、対応のコンテンツアドレスに対するローカルデータオブジェクト識別子をマップする実施例で使用されるプロセスを説明するフローチャートである。
ある実施例の場合、図５のプロセスは、図４のインプリメント(implement)４０４のために用いられる。要求アプリケーションに関連するアプリケーション識別子は、要求青に関連するコンテンツマップを識別するために用いられる（５０２）。ある実施例を挙げれば、その要求は、要求アプリケーションで維持されるコンテンツマップを含んだり及び/又は添付される。ある実施例では、コンテンツマップはＣＡＳデバイスによって維持される。コンテンツマップは、要求データに関連したローカルデータオブジェクト識別子を、ＣＡＳデバイス上の対応のコンテンツアドレスにマップするために用いられる（５０４）。ある実施例では、ローカルデータオブジェクト識別子は、要求アプリケーションから受信された要求の中に含まれている。要求アプリケーションは、ローカルデータオブジェクト識別子を使うことによってデータを識別し、それゆえＣＡＳデバイス上のデータに関連するコンテンツアドレスを学習することも追跡することもまったく必要としてない。
【００１７】
図２に示す例に戻ると、アプリケーション２０２などのアプリケーションは、アプリケーション２０２に対してデータが既知となるローカルデータオブジェクト識別子（例えば、“Ｄ：＼ｄａｔａ１”によってデータを識別する要求をＣＡＳデバイス２０４に送信することによって、そしてアプリケーション用のアプリケーション識別子（例えば、“３４５”）を提供することによって、ある実施例のデータにアクセスするだろう。次に、ＣＡＳデバイス２０４は、適用可能なコンテンツマップとしてコンテンツマップ２０６を識別し、次に、ＣＡＳデバイス２０４の要求データに関連する対応コンテンツアドレスに対する要求の中にあるローカルデータオブジェクト識別子をマップするために（例えば、オブジェクト識別子“Ｄ：＼ｄａｔａ１”をコンテンツアドレス“Ｇ４５Ｈ４３３”にマッピングすることによって）、コンテンツマップ２０６を使用する。次に、ＣＡＳデバイス２０４は、対応データを検索するためにコンテンツアドレスを使用し、要求に応答してそれを要求アプリケーション２０２へ提供する。
【００１８】
図６は、ＣＡＳデバイスにデータを記憶する実施例で使用されるプロセスのフローチャートである。
例示したように、アプリケーション（又は他の要求プロセス、システム、又はエンティティ）は、任意選択的に、ＣＡＳデバイス上の対応コンテンツアドレスに対し、ローカルデータオブジェクト識別子のマッピングを維持したり、又はその代りにアプリケーション用の上記マッピングを維持するためにＣＡＳデバイスに依存するよう構成される。このアプローチは、マッピングを維持するよう構成されていない軽量及び/又は新規のアプリケーションなどのアプリケーションはもちろん、大規模データ記憶／バックアップアプリケーションなどの上記マッピング、及び/又はＣＡＳデバイスでのデータ記憶用のマッピングを維持するよう構成されたレガシー(legacy)アプリケーションの両方にＣＡＳデバイスが機能できるようにするものである。ある実施例では、図６のプロセスは、図２のＣＡＳデバイス２０４などのＣＡＳデバイスで実行される。データが受信される（６０２）。データを受信したアプリケーションが、ＣＡＳデバイスがコンテンツマップを維持しているアプリケーションであるかどうかを判断する（６０４）。ある実施例では、ＣＡＳデバイスがコンテンツマップを維持するソース（例えば、アプリケーション）からデータを受信したかどうかを、ＣＡＳデバイスにデータを送るために送信アプリケーションによって使用されたメッセージのヘッダー又は他の部分にあるフラグ値又は他のデータフィールドを読み出すことにより判断する。ある実施例の場合、その決定は、アプリケーション識別子が存在する場合に、アプリケーションがアプリケーション識別子を供給したかどうか、そしてコンテンツマップがＣＡＳデバイス上で維持されたかどうかを決定することによって行われる。
【００１９】
ある実施例では、その決定はデータに関連したアプリケーション識別子を使って行われ、アプリケーションが、コンテンツデバイスがＣＡＳデバイスで維持されているアプリケーションであるか否かを、例えばテーブルを読み出すことによって、決定する。ＣＡＳデバイスは、管理者又はユーザの何れかによって、即ち、アプリケーション自体によって、例えば、独占的に又は公に利用可能なＡＰＩ又は他のインタフェースで記述されるような１以上のコンフィギュレーションメッセージを送信することによって、上記決定を行うよう構成することもできる。コンテンツマップがＣＡＳデバイスで維持されないソース（例えば、アプリケーション）からデータを受信した場合、そのデータは記憶され（６０６）、そして関連のコンテンツアドレスが送信アプリケーションに報告される（６０８）。その後、そのプロセスは次の受信データのために繰り返される。コンテンツマップがＣＡＳデバイスで維持されるソースからデータを受信した場合、そのデータは記憶され（６１０）、ＣＡＳデバイス上のデータに関連したコンテンツアドレスが、対応のローカルデータオブジェクト識別子に関連付けられ、この識別子によってデータオブジェクトが送信アプリケーション（例えば、他のソース）に対して既知となる（６１２）。送信アプリケーション用のＣＡＳデバイスで維持されたコンテンツマップが更新される（６１４）。そして、オペレーションの結果（例えば、成功、失敗など）が送信アプリケーションに報告される（６１６）。その後、そのプロセスは次の受信データのために繰り返される。
【００２０】
図７は、あるアプリケーション（又は他のソース）用であって、その他のためではないコンテンツマップを維持するよう構成されたＣＡＳデバイスのデータにアクセスするための要求を処理する実施例で使用されるプロセスのフローチャートである。
ＣＡＳデバイスに記憶されたデータオブジェクトにアクセスするための要求が受信される（７０２）。要求アプリケーション（又は他のソース）が、コンテンツマップがＣＡＳデバイス上で維持されるためのアプリケーションであるかどうかを判断する。ある実施例の場合、６０４に関して上述した１以上のアプローチが用いられ、７０４でその決定を行う。ある実施例では、７０４での決定は、その要求がデータオブジェクトのためのコンテンツアドレスを含んでいるかどうかに基づいて行われる。要求アプリケーションが、コンテンツマップがＣＡＳデバイス上で維持されるためのアプリケーションでない場合（７０４）、要求データが（例えば、要求に含まれ及び/又は要求とともに提供されるコンテンツアドレスを使って）検索され、そして要求アプリケーションへ提供する（７０８）。その後、このプロセスが終了する。要求アプリケーションが、コンテンツマップがＣＡＳデバイス上で維持されるためのアプリケーションである場合（７０４）、例えば、要求アプリケーション用のＣＡＳデバイスで維持されたコンテンツマップを使って（７０６）、要求データに関連したローカルデータオブジェクト識別子が対応のコンテンツアドレスにマップされる。そして、要求されたデータを検索するためにコンテンツマップが使われ、要求アプリケーションにそれを提供して（７０８）、その後、このプロセスは終了する。
【００２１】
ここで述べたアプローチを用いれば、ローカルデータオブジェクト識別子に対してコンテンツアドレスのマッピングを維持するよう構成されないアプリケーションは、データを記憶するためにＣＡＳデバイスを依然として使用することができる。これにより、アプリケーション開発を単純化させ、アプリケーションが実行するローカルホスト上のリソースの消費を削減し、そしてオフシステム(off-system)記憶装置用のＣＡＳデバイスを使用できるアプリケーションの分野を拡大することが可能になる。
【００２２】
先の実施例においては、理解を明確にすることを目的として詳細に説明したのであるが、本発明はこの詳細さに限定されるものではない。本発明を実行する多くの代替的な方法がある。開示した明細書は、限定的に解釈されるものではなく例示的にみなされるものである。
【図面の簡単な説明】
【００２３】
【図１】先行技術の典型的なコンテンツアドレス記憶（ＣＡＳ）デバイスを説明するブロック図である。
【図２】コンテンツアドレスマッピングを維持するよう構成されたコンテンツのブロック図である。
【図３】ＣＡＳデバイス上のコンテンツマッピングを維持する実施例で使用されるプロセスを説明するフローチャートである。
【図４】ＣＡＳデバイスに記憶されたデータにアクセスするための要求を処理する実施例で使用されるプロセスを説明するフローチャートである。
【図５】対応のコンテンツアドレスに対するローカルデータオブジェクト識別子をマップする実施例で使用されるプロセスを説明するフローチャートである。
【図６】ＣＡＳデバイスにデータを記憶する実施例で使用されるプロセスのフローチャートである。
【図７】あるアプリケーション（又は他のソース）用であって、その他のためではないコンテンツマップを維持するよう構成されたＣＡＳデバイスのデータにアクセスするための要求を処理する実施例で使用されるプロセスのフローチャートである。
【図１】
2008519362.tif 000003
【図２】
2008519362.tif 000004
【図３】
2008519362.tif 000005
【図４】
2008519362.tif 000006
【図５】
2008519362.tif 000007
【図６】
2008519362.tif 000008
【図７】
2008519362.tif 000009
【国際調査報告】
2008519362.tif 000010