(57)【要約】  本発明の実施形態は、ホスト装置から周辺蓄積装置への失敗または中断発信データ転送操作から回復するための装置、方法、およびコンピュータ可読媒体に関する。実施形態によっては、失敗発信データ転送操作によって周辺蓄積装置が破損する前に、ホスト側で１つ以上の回復用データオブジェクトを蓄積する。ホスト装置は失敗データ転送によって周辺蓄積装置が破損した後に、周辺蓄積装置との事後結合に応じて、ホスト側に蓄積された１つ以上の回復用データオブジェクトを用いて破損した周辺蓄積装置を修復する。オプションとして、ホスト装置は中断または失敗発信データ転送操作をも復元する。
2010515191.tif 000002
【特許請求の範囲】
【請求項１】
目的周辺蓄積装置を破損させるホスト装置から目的周辺蓄積装置への中断発信装置間データ転送操作から回復する方法であって、
ａ）目的周辺蓄積装置の破損に先立ち、データ転送操作開始要請に応じて、ホスト側にて、
ｉ）後に中断データ転送操作により破損する周辺装置常駐蓄積システムデータ構造のシステムデータと、
ｉｉ）前記システムデータが常駐し、後に中断発信データ転送操作によって上書きされない周辺蓄積装置上クリーンロケーションのハンドルと、からなるグループから選ばれる、少なくとも１つの回復用データオブジェクトを蓄積するステップと、
ｂ）中断発信データ転送操作による周辺蓄積装置の破損後に起こるホスト装置と周辺蓄積装置との事後結合に応じて、前記ホスト側に蓄積された少なくとも１つの前記回復用データオブジェクトを使用し、破損周辺蓄積装置を修復するステップと、
を含む方法。
【請求項２】
請求項１記載の方法において、
前記周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のディレクトリツリーを記述する方法。
【請求項３】
請求項１記載の方法において、
前記周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のファイルシステムテーブルである方法。
【請求項４】
請求項１記載の方法において、
前記周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のフラッシュマッピングテーブルである方法。
【請求項５】
請求項１記載の方法において、
ｃ）中断発信装置間データ転送操作による目的周辺蓄積装置の破損に先立ち、前記データ転送操作開始要請に応じて、ホスト側にて、
ｉ）データ転送操作の１つ以上のデータオブジェクトの１つ以上の識別子の記述、および、
ｉｉ）装置間データ転送操作の周辺蓄積装置目的位置データのうちの少なくとも一方を蓄積するステップと、
ｄ）破損をきたすデータ転送操作の後、ホスト装置と周辺蓄積装置との前記事後結合に応じて、ｃ）ｉ）の前記記述およびｃ）ｉｉ）の前記目的位置データのうちの少なくとも一方を使用し、中断発信装置間データ転送操作を復元するステップと、
をさらに含む方法。
【請求項６】
請求項５記載の方法において、
前記目的位置データは、ディレクトリパスデータを含む方法。
【請求項７】
請求項１記載の方法において、
ｉ）前記少なくとも１つの回復用データオブジェクトは、周辺蓄積装置識別子に従い複数の回復用データオブジェクトにインデックスが付くホスト側インデックス付き回復用データ構造に蓄積され、
ｉｉ）前記方法は、
ｃ）中断データ転送操作によって周辺蓄積装置が破損した後、
ｉ）ホスト装置と周辺蓄積装置との前記事後結合に応じて、周辺蓄積装置の装置識別子を検出するステップと、
ｉｉ）周辺蓄積装置の前記検出済み装置識別子をインデックスとして使用し、前記ホスト側インデックス付き回復用データ構造から、目的装置の、前記少なくとも１つの回復用データオブジェクトを回収するステップと、
をさらに含む方法。
【請求項８】
請求項１記載の方法において、
ｉ）前記方法は、
ｃ）ホスト装置と周辺蓄積装置との前記事後結合に応じて、破損周辺蓄積装置を修復するため、ユーザ承認を催促するステップをさらに含み、
ｉｉ）ステップｂ）の前記破損周辺蓄積装置を修復するステップは、前記ユーザ承認催促に対する前記ユーザ承認を受け取ることを条件とする方法。
【請求項９】
請求項１記載の方法において、
ステップｂ）の前記修復するステップは、ユーザ入力をともなわずに遂行される方法。
【請求項１０】
ホスト装置であって、
ａ）周辺装置と結合する装置インターフェイスと、
ｂ）前記装置インターフェイスを介して装置間データ転送操作を管理するデータ転送管理部と、
ｃ）回復用データ保管部であって、
ｉ）中断発信装置間データ転送操作に先立ち、すなわち
Ａ）前記装置インターフェイスを介して前記ホスト装置へ結合される目的周辺装置との、
Ｂ）後に前記結合目的周辺装置を破損させる、中断発信装置間データ転送操作に先立ち、
ｉｉ）前記発信装置間データ転送操作の開始要請に応じて、前記装置インターフェイスのホスト側にて、
ｉｉｉ）中断データ転送操作により後に破損する周辺装置常駐蓄積システムデータ構造のシステムデータと、
ｉｖ）前記システムデータが常駐し、後に中断データ転送操作によって上書きされない周辺蓄積装置上クリーンロケーションのハンドルと、からなるグループから選ばれる、少なくとも１つの回復用データオブジェクトを蓄積するように作動する、回復用データ保管部と、
ｄ）前記中断発信データ転送操作による前記周辺蓄積装置の破損後に起こるホスト装置と周辺蓄積装置との事後結合に応じて、前記ホスト側に蓄積された少なくとも１つの前記回復用データオブジェクトを使用し、前記破損目的周辺蓄積装置を修復するように作動する、周辺装置修復部と、
を備えるホスト装置。
【請求項１１】
請求項１０記載のホスト装置において、
前記システムデータ構造は、周辺蓄積装置のディレクトリツリーを記述するホスト装置。
【請求項１２】
請求項１０記載のホスト装置において、
前記システムデータ構造は、周辺蓄積装置のファイルシステムテーブルデータ構造であるホスト装置。
【請求項１３】
請求項１０記載のホスト装置において、
前記システムデータ構造は、周辺蓄積装置のフラッシュ管理テーブルデータ構造であるホスト装置。
【請求項１４】
請求項１０記載のホスト装置において、
ｅ）データトランザクション用データ保管部であって、前記中断発信装置間データ転送操作による前記目的周辺蓄積装置の破損に先立ち、前記データ転送操作開始要請に応じて、前記装置インターフェイスの前記ホスト側にて、
ｉ）データ転送操作の１つ以上のデータオブジェクトの１つ以上の識別子の記述、および、
ｉｉ）装置間データ転送操作の周辺蓄積装置目的位置データのうちの少なくとも一方を蓄積するように作動する、データトランザクション用データ保管部と、
ｆ）データトランザクション復元部であって、
ｉ）破損をきたすデータ転送操作の後、
ｉｉ）ホスト装置と前記周辺蓄積装置との前記事後結合に応じて、ｅ）ｉ）の前記記述およびｅ）ｉｉ）の前記目的位置データを使用し、前記中断発信装置間データ転送操作を復元するように作動する、データトランザクション復元部と、
をさらに備えるホスト装置。
【請求項１５】
請求項１４記載のホスト装置において、
前記目的位置データは、ディレクトリパスデータを含むホスト装置。
【請求項１６】
請求項１０記載のホスト装置において、
ｉ）ホスト装置は、
ｅ）前記装置インターフェイスを介して結合する前記結合目的周辺装置の識別子を検出するように作動する、周辺装置識別子検出部をさらに備え、
ｉｉ）前記回復用データ保管部は、前記周辺装置識別子検出部から受け取る前記結合目的周辺装置の前記識別子に従って、周辺蓄積装置識別子に従い複数の回復用データオブジェクトにインデックスが付くホスト側インデックス付き回復用データ構造に、前記少なくとも１つの回復用データオブジェクトを、蓄積するように作動し、
ｉｉｉ）ホスト装置は、
ｆ）ホスト装置と周辺蓄積装置との前記事後結合に応じて、前記結合目的周辺装置の前記識別子をインデックスとして使用し、前記ホスト側インデックス付き回復用データ構造から、前記目的周辺装置の、前記少なくとも１つの回復用データオブジェクトを回収するように作動する、回復用データ回収部をさらに備えるホスト装置。
【請求項１７】
請求項１０記載のホスト装置において、
ｉ）ホスト装置は、
ｆ）ユーザインターフェイスをさらに備え、前記ユーザインターフェイスは、ホスト装置と周辺蓄積装置との前記事後結合に応じて、
Ａ）破損周辺蓄積装置の修復にあたってユーザ承認を求める要請をユーザに提示するように作動し、
Ｂ）前記提示された要請に対する応答を受け取るように作動し、
ｉｉ）前記周辺装置修復部は、前記提示された要請に対して肯定的な前記応答を受け取ることを条件とし、前記破損目的周辺蓄積装置の前記修復を遂行するように作動するホスト装置。
【請求項１８】
請求項１０記載のホスト装置において、
前記周辺装置修復部は、ユーザ入力の受け取りとは無関係に、前記目的周辺蓄積装置の前記修復を遂行するように作動するホスト装置。
【請求項１９】
目的周辺蓄積装置を破損させる、ホストコンピュータ装置から目的周辺蓄積装置への中断発信装置間データ転送操作からホストコンピュータ装置を回復させるためのコンピュータ可読プログラムコードを蓄積する、コンピュータ可読媒体であって、前記プログラムコードは、
ａ）目的周辺蓄積装置の破損に先立ち、データ転送操作開始要請に応じて、ホスト側にて、
ｉ）後に中断データ転送操作により破損する周辺装置常駐蓄積システムデータ構造のシステムデータと、
ｉｉ）前記システムデータが常駐し、後に中断発信データ転送操作によって上書きされない周辺蓄積装置上クリーンロケーションのハンドルと、からなるグループから選ばれる、少なくとも１つの回復用データオブジェクトを蓄積することと、
ｂ）中断発信データ転送操作による周辺蓄積装置の破損後に起こるホスト装置と周辺蓄積装置との事後結合に応じて、前記ホスト側に蓄積された少なくとも１つの前記回復用データオブジェクトを使用し、破損周辺蓄積装置を修復することと、をプロセッサに実行させるように作動するコンピュータ可読媒体。
【請求項２０】
請求項１９記載のコンピュータ可読媒体において、
前記周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のディレクトリツリーを記述するコンピュータ可読媒体。
【請求項２１】
請求項１９記載のコンピュータ可読媒体において、
前記周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のファイルシステムテーブルであるコンピュータ可読媒体。
【請求項２２】
請求項１９記載のコンピュータ可読媒体において、
前記周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のフラッシュマッピングテーブルであるコンピュータ可読媒体。
【請求項２３】
請求項１９記載のコンピュータ可読媒体において、
プログラムコードは、
ｃ）中断発信装置間データ転送操作による目的周辺蓄積装置の破損に先立ち、前記データ転送操作開始要請に応じて、前記ホスト側にて、
ｉ）データ転送操作の１つ以上のデータオブジェクトの１つ以上の識別子の記述、および、
ｉｉ）装置間データ転送操作の周辺蓄積装置目的位置データのうちの少なくとも一方を蓄積することと、
ｄ）破損をきたすデータ転送操作の後、ホスト装置と周辺蓄積装置との前記事後結合に応じて、ｃ）ｉ）の前記記述およびｃ）ｉｉ）の前記目的位置データのうちの少なくとも一方を使用し、中断発信装置間データ転送操作を復元することと、をプロセッサに実行させるようにさらに作動するコンピュータ可読媒体。
【請求項２４】
請求項２３記載のコンピュータ可読媒体において、
前記目的位置データは、ディレクトリパスデータを含むコンピュータ可読媒体。
【請求項２５】
請求項１９記載のコンピュータ可読媒体において、
ｉ）プログラムコードは、周辺蓄積装置識別子に従い複数の回復用データオブジェクトにインデックスが付くホスト側インデックス付き回復用データ構造に、前記少なくとも１つの回復用データオブジェクトが蓄積されるように作動し、
ｉｉ）プログラムコードは、
ｃ）中断データ転送操作によって周辺蓄積装置が破損した後、
ｉ）ホスト装置と周辺蓄積装置との前記事後結合に応じて、周辺蓄積装置の装置識別子を検出することと、
ｉｉ）周辺蓄積装置の前記検出済み装置識別子をインデックスとして使用し、前記ホスト側インデックス付き回復用データ構造から、目的装置の、前記少なくとも１つの回復用データオブジェクトを回収することと、をプロセッサに実行させるようにさらに作動するコンピュータ可読媒体。
【請求項２６】
請求項１９記載のコンピュータ可読媒体において、
ｉ）プログラムコードは、
ｃ）ホスト装置と周辺蓄積装置との前記事後結合に応じて、破損周辺蓄積装置を修復するためユーザ承認を催促することをプロセッサに実行させるように作動し、
ｉｉ）プログラムコードは、ステップｂ）の破損周辺蓄積装置の前記修復にあたって、前記ユーザ承認催促に対する前記ユーザ承認を受け取ることを条件とするようにさらに作動するコンピュータ可読媒体。
【請求項２７】
請求項１９記載のコンピュータ可読媒体において、
プログラムコードは、プロセッサによる実行時に、ステップｂ）の前記修復がユーザ入力なしで遂行されるように作動するコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホストとデータ蓄積装置との間で失敗したファイル転送から回復する方法、装置、およびコンピュータ可読媒体に関する。
【背景技術】
【０００２】
演算技術では、デジタルカメラ、音楽プレイヤ、ハンドヘルドおよびパームトップ型コンピュータ、携帯電話機に使われるＵＳＢフラッシュドライブ（ＵＦＤ）、ＰＣカード、小型蓄積カード等の形状因子による「周辺蓄積装置」が周知である。携帯型磁気ディスクや汎用蓄積装置を兼ねる携帯型デジタル機器（音楽プレイヤ、携帯電話機）も周辺蓄積装置に含まれる。
ホストと周辺蓄積装置とのデータ転送プロセス（１つ以上のデータオブジェクトの転送プロセス）は、完了前に中断してはならない。
多くのＵＦＤ装置は、データ転送操作の完了時に視覚的表示を提供する。例えば、一部のＵＦＤ装置にはライトがあって、データ転送操作の完了時に点滅する。
【０００３】
ホスト装置から周辺蓄積装置が早まって外れたり、停電やバッファの溢れが原因で、データ転送操作に失敗することが多くある。
このような事態が起きると、失敗したファイル転送の対象にあたる「目的」周辺蓄積装置に局在する「蓄積システムデータ構造」に損害がおよぶおそれがある。そのような「危険に晒される」蓄積システムデータ構造には、例えばファイルシステムテーブル（例えば、ＦＡＴ３２テーブル）、ディレクトリツリーデータ構造、フラッシュマッピングテーブル等があるが、これらに限定されず、いずれも「目的」周辺蓄積装置に「局在」することがある。残念ながら、そのような損害によって蓄積装置が壊れ、平均的なユーザにとって使い物にならなくなることがよくある。
【０００４】
図１は、データ転送操作の失敗が起こり得るシステムのブロック図である。図１の例では、ホスト側インターフェイス２０と装置側インターフェイス５５（例えば、ＵＳＢまたはＳＤインターフェイス）との通信リンク１５を介してホスト装置１０（例えば、パーソナルコンピュータ、ＰＤＡ、携帯電話機）が「目的」周辺蓄積装置５０（例えば、ＵＦＤ等のフラッシュ蓄積装置、ＭＭＣまたはＳＤカード等のフラッシュメモリカード）へ結合する。周辺蓄積装置の蓄積領域は通常、ユーザデータ（例えば、１つ以上のファイルやその他のデータオブジェクト）を蓄積するユーザデータ蓄積領域６０と、システムデータを蓄積するシステムデータ蓄積領域７０という２つの蓄積領域（物理的または論理的場所）に分けられる。
【０００５】
通常、周辺蓄積装置５０に蓄積される蓄積システムデータは様々なデータ構造７５Ａ〜Ｂに整理され（これらの数は図１に見られるものと異なることがある）、例えばＦＡＴ３２等のファイルシステムテーブルや、ディレクトリツリーやフラッシュマッピングテーブルを記述するデータ構造や、他の何らかのデータ構造に整理される。便宜上、蓄積システムデータ構造７５Ａ〜Ｂを概して蓄積システムデータ構造７５と呼ぶこともある。
通常の操作過程で、例えば目的蓄積装置５０でユーザデータの書き込みや消去が行われるときには、目的蓄積装置５０のコントローラ（図示せず）によって１つ以上の蓄積システムデータ構造７５が修正されることがある。
【０００６】
図１に見られるように、ホスト装置１０から目的周辺蓄積装置５０にかけてデータ（例えば、１つ以上のファイルやその他のデータオブジェクト）をコピーまたは移動する試み５がなされる。このホスト装置１０から蓄積装置５０に至るデータ転送の試みを、ホスト装置１０から蓄積装置５０への「発信」装置間データ転送試行と呼ぶ。
図１の例では、データ転送管理部２５によって、例えば実行時に（例えば、マイクロプロセッサ８９による実行時に）発信データ転送操作を遂行する蓄積システムコード（例えば、ファイル指向蓄積システムまたはオブジェクト指向蓄積システムの蓄積システムコード）によって、装置間データ転送操作がホスト側で処理される。一つの具体例において、オペレーティングシステムコンポーネントとしてデータ転送管理部２５を設ける。
【０００７】
一例において、ホスト装置１０から蓄積装置５０へ１つのファイルをコピーする。この場合は、コピーするファイルのデータがユーザデータ領域６０に書き込まれるだけでなく、システムデータ領域７０にある種々のデータ構造も更新しなければならない。例えば、「新規」ファイルの存在を反映するためのディレクトリデータ構造を更新し、ＦＡＴテーブルを更新し、フラッシュ管理テーブルを更新しなければならない。
１つ以上の蓄積システムデータ構造７５を更新しているときにデータ転送操作が予期せず中断すると（例えば、装置が早まって脱離すること、停電、バッファの溢れ等による中断）、１つ以上の「部分的に修正された」蓄積システムデータ構造７５が壊れるおそれがある。
【０００８】
システムデータ領域７０にある全てのシステムデータをデータ転送操作中に書き換えるのではなく、システムデータの特定部分だけを書き換えればすむ状況もある。例えば、ある特定のテーブルのコピーが目的蓄積装置５０に数多く常駐し（例えば、ＦＡＴ３２テーブルの、必ずしも同じではない、複数のコピー）、ファイル転送操作によって１つ以上のテーブルのみが修正され、ほかのテーブルは修正されない場合がある。蓄積システムデータ構造の一部分（例えば、ファイルシステムテーブルの一部分）だけが修正され、蓄積システムデータ構造の残りの部分は修正されずに残る場合もある。さらに、同じ蓄積システムテーブルの冗長コピー（例えば、「旧」バージョンと「新規」バージョンを含む）が蓄積装置５０に多数常駐する場合もある。
【０００９】
図１の例では、発信データ転送５によっていくつかの蓄積システムデータ構造（蓄積システムデータ構造７５Ａ）が修正され、ほかの蓄積システムデータ構造（蓄積データ構造７５Ｂ）は修正されない。図のアスタリスク記号は、このデータ構造の修正を示している。
この開示では、システムデータ領域７０のうちのある特定の装置間データ転送操作のときに修正されない領域を蓄積装置５０上の「クリーンロケーション」と呼ぶ。例えば、システムデータ構造７５Ｂが常駐する領域が蓄積装置５０上の「クリーンロケーション」の一例にあたる。
データ転送操作によっては、ある特定のデータ構造の一部分が修正され、ほかの部分が修正されずに残ることに理解すべきである。「修正されない」部分が常駐する領域も、装置間データ転送操作によって修正されない蓄積装置５０上の「クリーンロケーション」の一例である。
【発明の概要】
【００１０】
ここで初めて開示する方法は、目的周辺蓄積装置を破損させる、ホスト装置から目的周辺蓄積装置への中断発信装置間データ転送操作から回復するための方法であって、この方法は、ａ）目的周辺蓄積装置の破損に先立ち、データ転送操作開始要請に応じて、ホスト側にて、ｉ）後に中断データ転送操作により破損する周辺装置常駐蓄積システムデータ構造のシステムデータと、ｉｉ）システムデータが常駐し、後に中断発信データ転送操作によって上書きされない周辺蓄積装置上クリーンロケーションのハンドルと、からなるグループから選ばれる、少なくとも１つの回復用データオブジェクトを蓄積するステップと、ｂ）中断発信データ転送操作による周辺蓄積装置の破損後に起こるホスト装置と周辺蓄積装置との事後結合に応じて、ホスト側に蓄積された少なくとも１つの回復用データオブジェクトを使用し、破損周辺蓄積装置を修復するステップと、を含む。
【００１１】
ある実施形態によると、周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のディレクトリツリーを記述する。
ある実施形態によると、周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のファイルシステムテーブルである。
ある実施形態によると、周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のフラッシュマッピングテーブルである。
ある実施形態によると、この方法は、ｃ）中断発信装置間データ転送操作による目的周辺蓄積装置の破損に先立ち、データ転送操作開始要請に応じて、ホスト側にて、ｉ）データ転送操作の１つ以上のデータオブジェクトの１つ以上の識別子の記述および、ｉｉ）装置間データ転送操作の周辺蓄積装置目的位置データのうちの少なくとも一方を蓄積するステップと、ｄ）破損をきたすデータ転送操作の後、ホスト装置と周辺蓄積装置との事後結合に応じて、ｃ）ｉ）の記述およびｃ）ｉｉ）の目的位置データのうちの少なくとも一方を使用し、中断発信装置間データ転送操作を復元するステップと、をさらに含む。
ある実施形態によると、目的位置データはディレクトリパスデータを含む。
ある実施形態によると、ｉ）少なくとも１つの回復用データオブジェクトは、周辺蓄積装置識別子に従い複数の回復用データオブジェクトにインデックスが付くホスト側インデックス付き回復用データ構造に蓄積され、ｉｉ）この方法は、ｃ）中断データ転送操作によって周辺蓄積装置が破損した後、ｉ）ホスト装置と周辺蓄積装置との事後結合に応じて、周辺蓄積装置の装置識別子を検出するステップと、ｉｉ）周辺蓄積装置の検出済み装置識別子をインデックスとして使用し、ホスト側インデックス付き回復用データ構造から、目的装置の、少なくとも１つの回復用データオブジェクトを回収するステップと、をさらに含む。
ある実施形態によると、ｉ）この方法は、ｃ）ホスト装置と周辺蓄積装置との事後結合に応じて、破損周辺蓄積装置を修復するため、ユーザ承認を催促するステップをさらに含み、ｉｉ）ステップｂ）の破損周辺蓄積装置の修復するステップは、ユーザ承認催促に対するユーザ承認を受け取ることを条件とする。
ある実施形態によると、ステップｂ）の修復するステップは、ユーザ入力をともなわずに遂行される。
【００１２】
ここで初めて開示するホスト装置は、ａ）周辺装置と結合する装置インターフェイスと、ｂ）装置インターフェイスを介して装置間データ転送操作を管理するデータ転送管理部と、ｃ）回復用データ保管部であって、ｉ）中断発信装置間データ転送操作に先立ち、すなわちＡ）装置インターフェイスを介してホスト装置へ結合される目的周辺装置との、Ｂ）後に結合目的周辺装置を破損させる、中断発信装置間データ転送操作に先立ち、ｉｉ）発信装置間データ転送操作の開始要請に応じて、装置インターフェイスのホスト側にて、ｉｉｉ）中断データ転送操作により後に破損する周辺装置常駐蓄積システムデータ構造のシステムデータと、ｉｖ）システムデータが常駐し、後に中断データ転送操作によって上書きされない周辺蓄積装置上クリーンロケーションのハンドルと、からなるグループから選ばれる、少なくとも１つの回復用データオブジェクトを蓄積するように作動する、回復用データ保管部と、ｄ）中断発信データ転送操作による周辺蓄積装置の破損後に起こるホスト装置と周辺蓄積装置との事後結合に応じて、ホスト側に蓄積された少なくとも１つの回復用データオブジェクトを使用し、破損目的周辺蓄積装置を修復するように作動する、周辺装置修復部と、を備える。
【００１３】
ある実施形態によると、システムデータ構造は、周辺蓄積装置のディレクトリツリーを記述する。
ある実施形態によると、システムデータ構造は、周辺蓄積装置のファイルシステムテーブルデータ構造である。
ある実施形態によると、システムデータ構造は、周辺蓄積装置のフラッシュ管理テーブルデータ構造である。
ある実施形態によると、ホスト装置は、ｅ）データトランザクション用データ保管部であって、中断発信装置間データ転送操作による目的周辺蓄積装置の破損に先立ち、データ転送操作開始要請に応じて、装置インターフェイスのホスト側にて、ｉ）データ転送操作の１つ以上のデータオブジェクトの１つ以上の識別子の記述、および、ｉｉ）装置間データ転送操作の周辺蓄積装置目的位置データのうちの少なくとも一方を蓄積するように作動する、データトランザクション用データ保管部と、ｆ）データトランザクション復元部であって、ｉ）破損をきたすデータ転送操作の後、ｉｉ）ホスト装置と周辺蓄積装置との事後結合に応じて、ｅ）ｉ）の記述およびｅ）ｉｉ）の目的位置データを使用し、中断発信装置間データ転送操作を復元するように作動する、データトランザクション復元部と、をさらに備える。
ある実施形態によると、目的位置データは、ディレクトリパスデータを含む。
ある実施形態によると、ｉ）ホスト装置は、ｅ）装置インターフェイスを介して結合する結合目的周辺装置の識別子を検出するように作動する、周辺装置識別子検出部をさらに備え、ｉｉ）回復用データ保管部は、周辺装置識別子検出部から受け取る結合目的周辺装置の識別子に従って、周辺蓄積装置識別子に従い複数の回復用データオブジェクトにインデックスが付くホスト側インデックス付き回復用データ構造に、少なくとも１つの回復用データオブジェクトを、蓄積するように作動し、ｉｉｉ）ホスト装置は、ｆ）ホスト装置と周辺蓄積装置との事後結合に応じて、結合目的周辺装置の識別子をインデックスとして使用し、ホスト側インデックス付き回復用データ構造から、目的周辺装置の、少なくとも１つの回復用データオブジェクトを回収するように作動する、回復用データ回収部をさらに備える。
ある実施形態によると、ｉ）ホスト装置は、ｆ）ユーザインターフェイスをさらに備え、このユーザインターフェイスは、ホスト装置と周辺蓄積装置との事後結合に応じて、Ａ）破損周辺蓄積装置の修復にあたってユーザ承認を求める要請をユーザに提示するように作動し、Ｂ）提示された要請に対する応答を受け取るように作動し、ｉｉ）周辺装置修復部は、提示された要請に対し肯定的な応答を受け取ることを条件とし、破損目的周辺蓄積装置の修復を遂行するように作動する。
ある実施形態によると、周辺装置修復部は、ユーザ入力の受け取りとは無関係に、目的周辺蓄積装置の修復を遂行するように作動する。
【００１４】
ここで初めて開示するコンピュータ可読媒体は、目的周辺蓄積装置を破損させる、ホストコンピュータ装置から目的周辺蓄積装置への中断発信装置間データ転送操作からホストコンピュータ装置を回復させるためのコンピュータ可読プログラムコードを蓄積するコンピュータ可読媒体であって、このプログラムコードは、ａ）目的周辺蓄積装置の破損に先立ち、データ転送操作開始要請に応じて、ホスト側にて、ｉ）後に中断データ転送操作により破損する周辺装置常駐蓄積システムデータ構造のシステムデータと、ｉｉ）システムデータが常駐し、後に中断発信データ転送操作によって上書きされない周辺蓄積装置上クリーンロケーションのハンドルと、からなるグループから選ばれる、少なくとも１つの回復用データオブジェクトを蓄積することと、ｂ）中断発信データ転送操作による周辺蓄積装置の破損後に起こるホスト装置と周辺蓄積装置との事後結合に応じて、ホスト側に蓄積された少なくとも１つの回復用データオブジェクトを使用し、破損周辺蓄積装置を修復することと、をプロセッサに実行させるように作動する。
【００１５】
ある実施形態によると、周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のディレクトリツリーを記述する。
ある実施形態によると、周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のファイルシステムテーブルである。
ある実施形態によると、周辺装置常駐蓄積システムデータ構造は、周辺蓄積装置のフラッシュマッピングテーブルである。
ある実施形態によると、プログラムコードは、ｃ）中断発信装置間データ転送操作による目的周辺蓄積装置の破損に先立ち、データ転送操作開始要請に応じて、ホスト側にて、ｉ）データ転送操作の１つ以上のデータオブジェクトの１つ以上の識別子の記述、および、ｉｉ）装置間データ転送操作の周辺蓄積装置目的位置データのうちの少なくとも一方を蓄積することと、ｄ）破損をきたすデータ転送操作の後、ホスト装置と周辺蓄積装置との事後結合に応じて、ｃ）ｉ）の記述ｃ）ｉｉ）の目的位置データのうちの少なくとも一方を使用し、中断発信装置間データ転送操作を復元することと、をプロセッサに実行させるように作動する。
ある実施形態によると、目的位置データは、ディレクトリパスデータを含む。
ある実施形態によると、ｉ）プログラムコードは、周辺蓄積装置識別子に従い複数の回復用データオブジェクトにインデックスが付くホスト側インデックス付き回復用データ構造に、少なくとも１つの回復用データオブジェクトが蓄積されるようにさらに作動し、ｉｉ）プログラムコードは、ｃ）中断データ転送操作によって周辺蓄積装置が破損した後、ｉ）ホスト装置と周辺蓄積装置との事後結合に応じて、周辺蓄積装置の装置識別子を検出することと、ｉｉ）周辺蓄積装置の検出済み装置識別子をインデックスとして使用し、ホスト側インデックス付き回復用データ構造から、目的装置の、少なくとも１つの回復用データオブジェクトを回収することと、をプロセッサに実行させるようにさらに作動する。  ある実施形態によると、ｉ）プログラムコードは、ｃ）ホスト装置と周辺蓄積装置との事後結合に応じて、破損周辺蓄積装置を修復するためユーザ承認を催促することをプロセッサに実行させるようにさらに作動し、ｉｉ）プログラムコードは、ステップｂ）の破損周辺蓄積装置の修復にあたって、ユーザ承認催促に対するユーザ承認を受け取ることを条件とするように作動する。
ある実施形態によると、プログラムコードは、プロセッサによる実行時に、ステップｂ）の修復がユーザ入力なしで遂行されるように作動する。
【００１６】
別段の指示がない限り、特定の実施形態に関係する前述した特徴を別の実施形態に盛り込むこともできることに留意するべきである。
【図面の簡単な説明】
【００１７】
【図１】背景技術による代表的なシステムのブロック図である。
【図２Ａ】いくつかの例示的な実施形態による失敗データ転送操作回復のためのルーチンのフローチャートである。
【図２Ｂ】いくつかの例示的な実施形態による失敗データ転送操作回復のための代表的なシステム構成のブロック図である。
【図３】いくつかの例示的な実施形態による失敗データ転送操作回復のためのルーチンのフローチャートである。
【図４】いくつかの例示的な実施形態による失敗データ転送操作回復のためのルーチンのフローチャートである。
【図５Ａ】いくつかの例示的な実施形態による失敗データ転送操作回復のための代表的なシステム構成のブロック図である。
【図５Ｂ】いくつかの例示的な実施形態による失敗データ転送操作回復のための代表的なシステム構成のブロック図である。
【図５Ｃ】いくつかの例示的な実施形態による失敗データ転送操作回復のための代表的なシステム構成のブロック図である。
【発明を実施するための形態】
【００１８】
特許請求の範囲は、図への参照を含む例示的な実施形態の詳細な説明を参照することで、よりよく理解される。説明、実施形態、および図は、特許請求の範囲を限定するものとして解釈してはならない。ここで開示する、失敗または中断発信装置間データ転送操作から回復するための方法、装置、およびコンピュータコードを蓄積するコンピュータ可読媒体の特徴があらゆる実施例でもれなく必要となるわけではないことも理解すべきである。また、この開示の全体を通じてプロセスまたは方法を提示もしくは説明するが、ある１つのステップが先に実行される別のステップに左右されることが文脈から明らかな場合を除き、方法のステップを任意の順序で実行できること、または同時に実行できることも理解すべきである。本願の全体を通じて使われている語「may 」は、必須の意味（つまり「must」の意味）ではなく許容の意味（つまり「having the potential to 」の意味）で使われている。
【００１９】
本発明の実施形態は、ホスト装置から周辺蓄積装置への失敗または中断発信データ転送操作から回復するための装置、方法、およびコンピュータ可読媒体に関する。実施形態によっては、失敗発信データ転送操作によって周辺蓄積装置が破損する前に、ホスト側で１つ以上の回復用データオブジェクトを蓄積する。ホスト装置は失敗データ転送によって周辺蓄積装置が破損した後に、周辺蓄積装置との事後結合に応じて、ホスト側に蓄積された１つ以上の回復用データオブジェクトを用いて破損した周辺蓄積装置を修復する。オプションとして、ホスト装置は事後結合に応じて中断または失敗発信データ転送操作をも復元する。
【００２０】
定義
ここでの説明の文脈で便宜を図るため、様々な用語をここに提示する。ここか本願のどこかほかの場所で明示的に、あるいは暗示的に定義が下される限り、そのような定義は、当業者による用語の使用に整合するものと理解すべきである。また、そのような定義は、そのような使用に整合する可能な限り広い意味で解釈しなければならない。
【００２１】
「周辺蓄積装置」は、装置筐体と「接触」または無接触装置インターフェイスとを具備する装置を指し、周辺蓄積装置はこの装置インターフェイスを介してホスト装置に「結合」し、ホスト装置を相手にデータを交換する。周辺蓄積装置は一非限定的な例において、ホスト装置の筐体のポート（プラグまたはソケット）へ可逆的に付着でき、さもなければ何らかの介在する外部ケーブルまたは外部受台を介して可逆的に付着できる。
【００２２】
周辺蓄積装置は、「ホスト側」と「周辺装置側」とがある「マスター・スレーブ」方式の通信プロトコルを使ってホストと通信する。「マスター・スレーブ」通信プロトコルには、例えばユニバーサルシリアルバス（ＵＳＢ）プロトコル、マルチメディアカード（ＭＭＣ）プロトコル、セキュアデジタル（ＳＤ）プロトコル等があるが、これらに限定されない。
【００２３】
「結合」した「ホスト」と「周辺蓄積装置」は、（ｉ）「ポイント間」データリンク（「有線接続」、または中間ルーチン装置を必要としない短距離無線リンク）を介して互いに連絡をとり、ホストと周辺装置との間には「ポイント間」データリンクを介してデータが流れ、（ｉｉ）「マスター・スレーブ」プロトコルを使って通信するように構成される。つまり、ホストは、このプロトコルが定める「ホスト」またはマスターの役割の中で周辺蓄積装置と通信するように構成され、周辺蓄積装置は、このプロトコルが定める「スレーブ」または周辺装置の役割の中でホストと通信するように構成される。
【００２４】
ホスト装置から周辺蓄積装置への「装置間発信データ転送操作」は、ホスト装置（例えば、ラップトップ、デスクトップ、携帯電話機、個人用携帯情報端末（ＰＤＡ）、その他）から周辺蓄積装置にかけて、具体的には周辺蓄積装置の指定された「目的」位置（物理的または論理的位置）または１組の位置にかけて、１つ以上の「目的」「データオブジェクト」をコピーまたは移動することを指す。「目的」「データオブジェクト」は一非限定的な例において、コンピュータファイルである。目的データオブジェクトにはこのほかにも、例えばコンピュータレコード、フォルダ、アドレス帳（またはその部分）、デジタルメディアオブジェクト（例えば、映画、音楽アルバム、画像、その他）等があるが、これらに限定されない。「目的」位置はフォルダ、ディレクトリ（例えば、ディレクトリツリー内のディレクトリ）、セクタ、ブロック、あるいは当技術分野で公知の他の何らかのやり方で指定できる。
【００２５】
「装置間データ転送」の一非限定的な例として、ホスト装置と周辺蓄積装置との間で行われる１つ以上のファイルのファイル転送操作がある。「装置間データ転送」のまた別の非限定的な例として、メディア転送プロトコル（ＭＴＰ）を含むが、これに限定されない、所謂オブジェクト指向蓄積プロトコルを使用し、ホスト装置と周辺蓄積装置との間で行われる１つ以上のデータオブジェクトの転送がある。
【００２６】
ホストから周辺蓄積装置への「発信」装置間データ転送操作は、ホスト装置から周辺蓄積装置にかけて１つ以上のデータオブジェクト（ファイルを含むが、これに限定されない）を移動またはコピーするデータ転送操作を指す。便宜上、装置間データ転送操作の方向、具体的にはホスト装置から周辺蓄積装置に至る方向を伝えるため、用語「発信」を単独で使用することもある。
ホスト装置が１つ以上の周辺蓄積装置に随時結合されうることを理解すべきである。データ転送操作の「目的」または「転送先」周辺装置とは、１つ以上のデータオブジェクトをコピーまたは転送する試みの対象となる周辺装置である。
【００２７】
図２Ａから図２Ｂの解説：序文
図２Ａは、いくつかの例示的な実施形態に従い失敗または中断発信装置間データ転送操作に対処する代表的な手法を説明するフローチャートである。図２Ａにおけるステップの順序は単なる例示であって、これとは別の順序でステップを実行する実施形態も本発明者により企図されることに留意すべきである。これは図２Ａばかりでなく、ルーチンのフローチャートが記載された他の図にも当てはまる（例えば、図３および図４）。
【００２８】
図２Ａに記載されたルーチンは、例えば図２Ｂのブロック図に記載されたシステムで遂行できる。現在説明しているブロック図の図２Ｂ（または後に説明する図５Ａから図５Ｃのブロック図）に見られるいずれの要素も、例えばデータ転送管理部２５、装置修復部４０、装置インターフェイス２０、回復用データ保管部３０を、ハードウェア、ファームウェア、および／またはソフトウェアの任意の組み合わせで実施できることに留意するべきである。いくつかの実施形態では、ソフトウェアはプロセッサ８９によって実行される。
【００２９】
そこで図２Ａの手法を参照し、ステップＳ２０１ではホスト装置１０が取外し可能な蓄積装置５０に結合される。その後、ホスト装置１０はステップＳ２０５で、データ転送操作遂行要請、例えば装置間通信リンク１５を介して「目的」蓄積装置５０に１つ以上のファイルをコピーする要請を検出する。この要請は任意の出所から到来し、例えばホスト装置１０に接続されたマウスおよび／またはキーボードから、あるいは他の何らかの出所から到来する。
【００３０】
図２Ａから図２Ｂの解説：回復用データオブジェクトの解説
ステップＳ２０９では、検出されたデータ転送操作遂行要請に応じて１つ以上の回復用データオブジェクトをホスト側に蓄積する。後にステップＳ２１７で破損した周辺蓄積装置をステップＳ２４１で修復するときには、１つ以上の回復用データオブジェクトを使用する。以下回復用データオブジェクトをさらに詳しく説明する。
【００３１】
一非限定的な例において、目的周辺蓄積装置５０に常駐する１つ以上のデータ蓄積システムデータ構造（またはこれの一部分）をホスト側で「ミラーリング」する。例えばこれを、ホスト装置１０の揮発性または不揮発性メモリか、あるいはホスト装置の他の何らかの場所に蓄積する。つまり、この例では、ステップＳ２１３で発信データ転送操作が始まる前に、発信データ転送操作によって壊れる可能性のある蓄積システムデータの「バックアップ」をホスト側で作成する。
【００３２】
さらに別の例では、蓄積システムデータをミラーリングするのではなく、「周辺蓄積装置上のクリーンロケーション」の「ハンドル」または記述をホスト側で蓄積すれば十分である。この「ハンドル」は、周辺蓄積装置５０のシステムデータ領域７０で「手付かずの」物理的または論理的位置を記述するものである。
【００３３】
「ハンドル」は一非限定的な例において物理または論理アドレスである。このほかに、周辺装置に常駐するデータオブジェクトの識別子も「ハンドル」の非限定的な例であり、このオブジェクトは、周辺蓄積装置５０のシステムデータ領域７０にある特定の場所に対応付けられるか、さもなければこの場所に常駐する。
【００３４】
そこで一非限定的な例において、目的蓄積装置５０のシステムデータ領域７０（論理的または物理的領域）にファイルアクセステーブル（ＦＡＴテーブル）の２つのコピー、すなわち「第１の」コピーと「第２の」コピーとが、常駐する。この例では、ＦＡＴテーブルの第１のコピー（「コピーＡ」）だけが修正可能であり、それ故、発信データ転送操作によって破損する可能性があるのに対して、ＦＡＴテーブルの第２のコピーがファイル転送操作中に修正および／または上書きされないことが公知である。したがって、ＦＡＴテーブルの第２のコピーが常駐する領域（論理的または物理的領域）は「クリーンロケーション」の一例である。この非限定的な例では、このクリーンロケーションの「ハンドル」をホスト側に蓄積することができる。この「ハンドル」は単純なオブジェクト識別子「コピーＢ」であったり、アドレスであったり（例えば、「コピーＢ」が常駐するブロックのリストによるアドレス、あるいは物理または論理アドレスを指定する他の何らかの手段によるアドレス）、「コピーＢ」、および／またはコピーＢが常駐する場所の、何らかの記述であったりする。
以上の例が、後にステップＳ２４１で周辺蓄積装置を修復するにあたって必要となる「最低限のデータ」を伝えるものであることに留意するべきである。実施形態によっては、ステップＳ２０９でこの最低限のデータより多くのデータをホスト側に蓄積し、後にＳ２４１で周辺蓄積装置を修復するときに使用できることを理解すべきである。
【００３５】
一実施形態において、以降のデータ転送操作で修正されない周辺蓄積装置常駐の蓄積システムテーブルかこれのセクションも、発信データ転送操作の開始に先立ちホスト側にコピーする。
この場合、以降の発信データ転送操作によって修正される蓄積システムデータがどれなのかを事前にホスト装置で明確に判断する必要がないことを理解すべきである。しかし、実施形態によっては、ホスト側でそのような判断を事前に下すと有利な場合もある。状況によっては、例えば周辺装置５０からホスト側へコピーしなければならない蓄積システムデータの量を最小限に抑えるのにこれを役立てることができる。
【００３６】
一非限定的な例において、ステップＳ２０９における１つ以上の回復用データオブジェクトの蓄積を、図２Ｂの回復用データ保管部３０で果たすことができ、この回復用データ保管部は、例えばホスト装置のプロセッサによって実行されるソフトウェアエージェントとして設けることができる。
ステップＳ２０９で蓄積する１つ以上の回復用データオブジェクトは、ホスト装置上の任意の場所、あるいは「ホスト側」の任意の別の場所に蓄積でき、この場所を「回復用データ保管所３５」と呼ぶことに留意するべきである。したがって、図２Ｂでは回復用データ保管所３５がホスト装置１０上にあるものとして示されているが、回復用データ保管所３５はホスト装置１０から分離することもある。回復用データ保管所３５は、ホスト装置１０の揮発性メモリ（例えば、ＲＡＭ）および／または不揮発性メモリの任意の組み合わせで実施でき、例えば目的蓄積装置５０とは別の不揮発性メモリ装置で実施できる。ホスト装置は、目的蓄積装置５０とは別の不揮発性メモリ装置に回復用データ保管所３５が常駐するこの例で、異なるデバイスインターフェイス（図示せず）を介して、すなわちホスト側インターフェイス２０とは別のホスト側インターフェイスを介して、回復用データ保管所３５が常駐するこの「別の不揮発性メモリ装置」（図示せず）と結合できる。とはいえ、ホスト１０と目的蓄積装置５０との通信リンク１５の「ホスト側」に全面的に、この「別の不揮発性メモリ装置」（図示せず）が常駐することを理解すべきである。
【００３７】
ステップＳ２１３〜Ｓ２４１の解説
ステップＳ２１３では発信データ転送操作が始まる。ステップＳ２１７ではこの発信データ転送操作が予期せず／途中で中断し、これにともない周辺蓄積装置５０は破損する。  ファイル転送操作の中断によってホスト装置から周辺蓄積装置が「分離」または「脱離」することもあり、周辺蓄積装置はこの場合に、少なくともある程度の期間はホスト装置とデータを交換できなくなる。これは例えば、停電、ホスト側ポートからの周辺蓄積装置の分離、バッファの溢れ等に起因する。
周辺蓄積装置は破損（ステップＳ２１７）の後にステップＳ２２３で再びホスト装置と結合する。この時破損した周辺蓄積装置５０が再びホスト装置１０と通信することもある。
【００３８】
ステップＳ２４１では、ホスト装置１０が再結合の検出に応じて周辺蓄積装置を修復するべく行動する。一例において、装置修復部４０によってこれを果たすこができ、この装置修復部は、例えばホスト装置１０のプロセッサによって実行されるソフトウェアエージェントとして設けることができる。
ステップＳ２４１では、ホスト側に蓄積された１つ以上の回復用データオブジェクトをホスト側の揮発性および／または不揮発性メモリから回収する。実施形態によっては、回復用データ保管所３５から１つ以上の回復用データオブジェクトを回収する。
１つ以上の回復用データオブジェクトを回収した後には、これを使って周辺蓄積装置を修復する。一例において、ステップＳ２０９でホスト側へコピーした蓄積システムデータ構造７５かこれの一部分を、装置修復のため再度周辺蓄積装置５０にコピーする。
【００３９】
別の例では、周辺装置５０上のクリーンロケーションのハンドルを使用し、周辺装置５０のクリーンロケーションで破損データの「破損していない」コピーまたはバージョンを回収する。この回収したデータは周辺蓄積装置５０の修復に役立てることができる。一例において、回収したデータを使って破損した１つ以上の蓄積システムデータ構造７５を修復する。さらに別の非限定的な例において、破損した蓄積システムデータ構造７５Ａ＊（図２Ｂのアスタリスクは破損を意味する）を周辺蓄積装置５０で「使用不能」とマークし、周辺蓄積装置５０のシステムデータ領域７０で破損したデータ構造の「ポインタ」を破損していないデータ構造（例えば、７５Ｂ）の「ポインタ」に差し替える。
一非限定的な例において、発信データ転送操作Ｓ２１３が始まる前の周辺蓄積装置５０の状態を表す蓄積システムデータを目的蓄積装置５０の領域７０に蓄積して残しておく。こうすることで、中断データ転送操作で被った「ダメージの挽回」が可能になる。
【００４０】
データ転送操作の「復元」と図３の解説
この開示で「データ転送操作の復元」とは、ステップＳ２２３で周辺蓄積装置５０と再び結合した後のホスト装置が、発信データ転送操作（ステップＳ２１３で試みたもの）で指定された「目的」データオブジェクトを周辺蓄積装置５０上の「目的位置」へコピーおよび／または移動するため措置を講じることを指す。
例えば、目的周辺装置へ部分的に転送（移動またはコピー）されたデータオブジェクトがある場合の「データ転送操作の復元」では、部分的に転送されたデータオブジェクトを周辺蓄積装置５０の目的位置へ再送することがある。
【００４１】
場合によっては、データ転送操作で指定された１つ以上のデータオブジェクトが、中断または失敗データ転送操作試行のときに部分的にすら周辺蓄積装置５０へ転送されないこともある。中断データ転送操作が目的蓄積装置５０に対して１つ以上のデータオブジェクトの書き込みを試みるユースケースでは、（ｉ）１つ以上のデータオブジェクトの全てが目的蓄積装置５０に「首尾よく」書き込まれる場合と、（ｉｉ）１つ以上のデータオブジェクトが目的蓄積装置５０に「部分的に」書き込まれる場合と、（ｉｉｉ）１つ以上のデータオブジェクトが目的周辺蓄積装置５０に部分的にすら書き込まれない場合とがある。この例のデータ転送操作復元は、（ｉ）’「首尾よく」書き込まれた各データオブジェクトにつき、何もしないか、さもなければ周辺蓄積装置５０に対するデータオブジェクトの書き込みをやり直すことと、（ｉｉ）’「部分的に」転送された各データオブジェクトにつき、データオブジェクトの書き込みを「最初から」やり直すか、「中断したデータオブジェクト書き込みプロセスを完了すること」と、（ｉｉｉ）’「書き込まれなかった」各データオブジェクトにつき、周辺蓄積装置５０にデータオブジェクトを首尾よく書き込むこととを含む。（ｉ）、（ｉｉ）、および（ｉｉｉ）のいずれか１つ以上が発生する場合は、（ｉ）’、（ｉｉ）’、および（ｉｉｉ）’の該当するものだけを実行すればよい。
【００４２】
ある実施形態によっては、周辺蓄積装置の修復後に自動的に発信データ転送操作を復元するのが望ましい。この場合は、周辺蓄積装置５０に対するホスト装置１０の再結合に応じて自動的に発信データ転送操作を復元できる。こうすれば、例えば周辺蓄積装置５０の修復時にデータオブジェクトおよび／または目的位置を再度指定するという退屈な作業からユーザが解放され、便利である。
【００４３】
次に、図３を参照する。ステップＳ２０１、Ｓ２０５、Ｓ２１３、Ｓ２１７、Ｓ２２３、およびＳ２４１は、図２Ａおよび図３と同じである。
図３のルーチンでは、図２Ａのルーチンにはない２つのさらなるステップ、すなわちステップＳ２１１およびＳ２４５が、加わる。
発信データ転送操作の開始に先立つステップＳ２１１では、１つ以上の「データ転送操作復元用オブジェクト」をホスト側、例えば揮発性および／または不揮発性メモリに保存する。これらの「データ転送操作復元用オブジェクト」は、後にステップ２４５でデータ転送操作の復元に使われる。
【００４４】
データ復元用オブジェクトは、ｉ）データ転送操作の１つ以上のデータオブジェクトの１つ以上の識別子の記述（例えば、ファイルの名前、および／またはその他データオブジェクトの名前、および／またはオブジェクトが常駐するホスト装置上の位置）と、ｉｉ）装置間データ転送操作の周辺蓄積装置目的位置データ（例えば、１つ以上の目的パスのディレクトリパスデータ、またはその他の「転送先」位置情報）のうちの１つ以上を含む。  これらの「データ復元用オブジェクト」は、揮発性および／または不揮発性メモリの任意の組み合わせにより、ホスト側の任意の場所に蓄積できる（オプションとしてホスト装置そのものに蓄積できるが必ずしもその必要はない）。
ステップＳ２４５では、データ復元用オブジェクトを使ってデータ転送操作を復元する。例えば、ステップＳ２１１で識別子を保存した種々のファイルやその他のデータオブジェクトを、（ｉ）ホスト側から回収し、かつ（ｉｉ）目的周辺蓄積装置５０、例えばステップ２１１でホスト側に保存した１つ以上の目的位置へ書き込むことができる。
【００４５】
データ転送操作の「復元」と図４の解説
図４は、ある特定のホスト装置１０が２つ以上の周辺蓄積装置５０と結合し、それぞれの周辺蓄積装置５０を相手に発信データ転送操作を試みるが、発信データ転送操作は結局失敗し、周辺蓄積装置５０を破損することになるユースケースに関係する。
その後、ホスト装置１０は、いずれか１つの周辺蓄積装置５０（つまり、多数の失敗発信データ転送操作に関与していたかもしれない周辺蓄積装置）との事後結合に応じて「当該」周辺蓄積装置５０を識別してこれを「思い出し」（つまり、当該周辺蓄積装置を、「当該」蓄積装置の中断データ転送操作の前か後に中断した別のデータ転送操作に関与していたほかの周辺蓄積装置と「混同」せず）、再結合した周辺蓄積装置５０に対応する「適切な」回復用データオブジェクトを使用し、事後結合した破損周辺蓄積装置を「適切に」修復する。
これを果たすには、（ｉ）２つ以上の周辺蓄積装置の回復用データオブジェクトを蓄積する、（ｉｉ）周辺蓄積装置を識別する「識別子」に従って回復用データオブジェクトにインデックスを付ける、および（ｉｉｉ）いずれかの破損周辺蓄積装置５０と「再結合」するときに、周辺蓄積装置の識別子を「インデックス」または「キー」として使用し、「該当する」回復用データオブジェクト（ホスト側）を回収すると、有利である。
【００４６】
次に、図４を参照する。ステップＳ２０１、Ｓ２０５、Ｓ２０９、Ｓ２１３、Ｓ２１７、Ｓ２２３、およびＳ２４１は、図２Ａおよび図４と同じである。
図４のルーチンでは、４つのさらなるステップＳ２０３、Ｓ２１０、Ｓ２２７、Ｓ２４０が加わる。
ステップＳ２０３では周辺蓄積装置５０の識別子を検出する。例えば、多くのＵＦＤデバイスはＡＰＩを提供し、ホストはＵＦＤを一意に識別する「一意な電子シリアル番号」を読み取ることができる。当業者であればこれとは別の実施例も可能であることを理解すべきである。
【００４７】
目的周辺蓄積装置５０が破損する前のステップＳ２０９では、１つ以上の回復用データオブジェクトをホスト側（回復用データ保管所３５）に蓄積し、ステップＳ２１０では、装置識別子に従いホスト側で１つ以上の蓄積済み回復用データオブジェクトにインデックスを付ける。
後にステップＳ２２３で再結合した後には、ステップＳ２２７で再結合周辺蓄積装置の装置識別子を検出する（例えば、ＡＰＩを起動し一意な装置識別子にアクセスする）。ステップＳ２４０では、あらかじめ蓄積しインデックスを付けておいた当該再結合周辺蓄積装置５０の１つ以上の回復用データオブジェクト（ステップＳ２０９で蓄積し、ステップＳ２１０でインデックスを付けたもの）を、装置識別子（再結合後に読み取られたもの）を使って回収する。
この回収（ステップＳ２４０）は、インデックス付きデータ構造の中で「一致する装置識別子」を探し（完全な一致、最良の一致、凡その一致、または当技術分野で公知の他の何らかの一致手法を使用）、一致する装置識別子が見つかったら、周辺蓄積装置に対応する１つ以上のインデックス付き回復用データオブジェクトを回収する。
【００４８】
周辺装置識別子に従って１つ以上の回復用データオブジェクトにインデックスを付け、その後、周辺装置識別子（ステップＳ２２３の再結合後に再度検出されるもの）に従って１つ以上の回復用データオブジェクトを回収する教示内容を、データ転送操作を装置単位で復元する目的に応用できることを理解すべきである。つまり、これらの教示内容を応用し、ホスト側で１つ以上のデータ転送操作回復用オブジェクトにインデックスを付け、周辺装置識別子（ステップＳ２２３の再結合後に再度検出されるもの）に従い１つ以上のデータ転送操作を復元（図３、ステップＳ２４５）することもできる。
【００４９】
「自動」装置修復および／または復元ＶＳユーザ始動装置修復および／または復元に関する解説
実施形態によっては、周辺蓄積装置の修復にあたってユーザの入力や行為を要求せず（例えば、ステップＳ２２３の装置再結合後にユーザの入力や行為を要求せず）、図２Ａ、図２Ｂ、図３、および図４に記載された手法を実施することもできる。こうすれば、この点について特別な知識を持つ、および／または行動を起こす、必要から「ユーザを解放」することができる。
しかし、これが必須の制限ではないことに留意するべきである。実施形態によっては、蓄積装置を修復し、かつ／またはデータ転送操作を復元するプロセスの前および／または最中に、ユーザ入力を催促することが望ましい場合もある。
【００５０】
一例において、ユーザが装置の修復および／またはトランザクションの復元を望むか否かを問い合わせることができる。
一例において、装置の修復および／またはトランザクションの復元を望むか否かをユーザに尋ねて「肯定」回答を得ることが、装置修復および／またはデータ転送操作復元の条件となる。
【００５１】
図５Ａから図５Ｃの解説
図５Ａから図５Ｃは、いくつかの例示的な実施形態による代表的なシステム構成のブロック図である。
図５Ａのホスト装置１０はデータトランザクション用データ保管部９２を含み、このデータトランザクション用データ保管部は、中断発信装置間データ転送操作による目的周辺蓄積装置の破損に先立ち、データ転送操作開始要請に応じて、装置インターフェイスのホスト側にて、ｉ）データ転送操作の１つ以上のデータオブジェクトの１つ以上の識別子の記述、およびｉｉ）装置間データ転送操作の周辺蓄積装置目的位置データのうちの少なくとも一方を蓄積するように作動する。図５Ａのホスト装置１０はさらにデータトランザクション復元部９４を備え、このデータトランザクション復元部は、ｉ）破損をきたすデータ転送操作の後、ｉｉ）ホスト装置と周辺蓄積装置との事後結合に応じて、ｉ）データ転送操作の１つ以上のデータオブジェクトの１つ以上の識別子の記述、および／またはｉｉ）装置間データ転送操作の周辺蓄積装置目的位置データを使用し、中断発信装置間データ転送操作を復元するように作動する。
実施形態によっては、図３に記載されたルーチンの遂行に図５Ａのシステムを役立てることができる。
【００５２】
次に、図５Ｂを参照する。図５Ｂの例で、回復用データ保管所３５は多数の周辺蓄積装置５０の回復用データを含み、周辺装置識別子に従いインデックスが付けられる。これを受けて図５Ｂの例では、回復用データ保管所３５にインデックスが付いていることを意味する一重引用符が回復用データ保管所３５の数字「３５」の後ろに付いている。
図５Ｂのホスト装置１０は、装置インターフェイスを介して結合される結合目的周辺装置の識別子を検出するように作動する、周辺装置識別部９６と、回復用データ回収部９８とを備え、同回復用データ回収部は、ホスト装置と周辺蓄積装置との事後結合に応じて、結合目的周辺装置の識別子をインデックスとして使用し、ホスト側のインデックス付き回復用データ構造から、検出済み識別子に対応する当該目的周辺装置の、少なくとも１つの回復用データオブジェクトを回収するように作動する。
実施形態によっては、図４に記載されたルーチンの遂行に図５Ｂのシステムを役立てることができる。
【００５３】
次に、図５Ｃを参照する。図５Ｃのホスト装置１０はユーザインターフェイス９９を備える。ユーザインターフェイス９９はいくつかの実施形態において、ホスト装置と周辺蓄積装置との事後結合に応じて、Ａ）破損周辺蓄積装置の修復にあたってユーザ承認を求める要請をユーザに提示するように作動し、かつＢ）提示された要請に対する応答を受け取るように作動する。これらの実施形態では、周辺装置修復部４０は、提示された要請に対し肯定応答を受け取ることを条件とし、破損した目的周辺蓄積装置の修復を遂行するように作動する。
【００５４】
ブロック図５Ａから図５Ｃに見られるいずれの要素、例えばデータトランザクション用データ保管部９２、データトランザクション復元部９４、周辺装置識別部９６、回復用データ回収部９８、ユーザインターフェイス９９を、ハードウェア、ファームウェア、および／またはソフトウェアの任意の組み合わせで実施できることに留意するべきである。実施形態によっては、プロセッサ８９によってソフトウェアが実行される。
【００５５】
図５Ａから図５Ｃに示されたそれぞれのアーキテクチャが見込みのある１アーキテクチャに過ぎないことに留意するべきである。例えば、図５Ａでは、データトランザクション用データ保管部９２が回復用データ保管部３０から独立したコンポーネントとして示されている。代替の実施形態のデータトランザクション用データ保管部９２は、回復用データ保管部３０のサブコンポーネントである。当業者であれば、このコンポーネントや図５Ａから図５Ｃ（および図２Ｂ）に見られる他のコンポーネントに数多くのバリエーションがあること、そして図５Ａから図５Ｃ（および図２Ｂ）に見られるそれぞれのアーキテクチャが一例として提示されていて、制限を意図するものではないことを認識できるはずである。データトランザクション用データ保管部９２、データトランザクション復元部９４、周辺装置識別部９６、回復用データ回収部９８、ユーザインターフェイス９９はいずれも代替の実施形態において、開示された他の要素のサブコンポーネントとして設けることができる。
【００５６】
さらに、ブロック図２Ｂ、図５Ａから図５Ｃに記載されたホスト装置１０に常駐する要素の組み合わせが制限を意図するものでないことを理解すべきである。例えば、周辺装置識別部９６および回復用データ回収部９８と、データトランザクション用データ保管部９２およびデータトランザクション復元部９４とを兼ね備える実施形態も本発明者により企図される。当業者であれば、いかなる要素の組み合わせであれ可能であることも理解すべきである。
【００５７】
結論
また、図との関係で前述した操作を実施する命令および／またはデータをコンピュータ可読媒体で受信すること、送信すること、または蓄積することを、前述した実施形態のいずれかに盛り込むことができることに留意するべきである。コンピュータ可読媒体は一般的に、磁気またはフラッシュまたは光媒体等の蓄積媒体やメモリ媒体、例えばディスクまたはＣＤ−ＲＯＭ、ＲＡＭ、ＲＯＭ等の揮発性または不揮発性蓄積媒体を含むほか、ネットワークおよび／または無線リンク等の通信媒体を介して伝達される電気、電磁、またはデジタル信号等の伝送媒体または信号を含む。
【００５８】
これまで代表的な実施形態を説明してきたが、当業者にとって、特許請求の範囲における範囲と精神から逸脱することなくこれらの実施形態の様々な同等物、変更、修正、改良が可能であることは明白である。具体的に、ここで説明されていない特徴を組み合わせて種々の実施形態に盛り込むこともできる。したがって、特許請求の範囲は前述した説明に制限されるものではない。
【図１】
2010515191.tif 000003
【図２Ａ】
2010515191.tif 000004
【図２Ｂ】
2010515191.tif 000005
【図３】
2010515191.tif 000006
【図４】
2010515191.tif 000007
【図５Ａ】
2010515191.tif 000008
【図５Ｂ】
2010515191.tif 000009
【図５Ｃ】
2010515191.tif 000010
【国際調査報告】
2010515191.tif 000011
2010515191.tif 000012
2010515191.tif 000013