(57)【要約】【課題】  デジタル処理システムにおいて、その環境に特定の種々な必要条件を満たしつつ、増強されたセキュリティー及びスループット性能でもって、１つのディレクトリから別のディレクトリへファイルのコピーを行うこと。【解決手段】  本発明の一態様では、ソースディレクトリのファイルをターゲットディレクトリに記憶する。それらファイルの各々に対して固有の識別子が生成され、そのファイルに対して、新しい位置及び新しい名が生成される。その新しい位置は、そのファイルが記憶されるターゲットの特定のサブディレクトリを表している。そのファイルは、その新しい位置にその新しい名で記憶される。新しい名で新しい位置でのこのような記憶は、対応する環境における種々な問題に対処するのに効果的に使用できる。【選択図】図２
2010044753.tif 000002
【特許請求の範囲】
【請求項１】
第１の階層構造を有する第１のディレクトリに記憶された複数のファイルをコピーする方法であって、
前記複数のファイルに含まれ、第１の名を有し且つ前記第１の階層構造における第１の位置にある第１のファイルに対して固有の識別子を形成するステップと、
第２の複数のレベルを含み且つ前記第１の階層構造と同一ではない第２の階層構造における第２の名及び第２の位置を、前記固有の識別子に基づいて決定するステップと、
前記第２の階層構造における前記第２の位置に前記第１のファイルを前記第２の名で記憶するステップと、
を含む方法。
【請求項２】
前記複数のファイルの全てが前記第２の階層構造での第２のディレクトリへとコピーされるように、前記複数のファイルの各々を前記第１のファイルとして扱いながら、前記形成するステップ、決定するステップ及び記憶するステップを繰り返すステップを更に含む、請求項１に記載の方法。
【請求項３】
前記形成するステップは、
設計されたプロトコルアプリケーションへ前記第１の名及び前記第１の位置を送って、前記複数のファイルの各々に対して前記対応する固有の識別子を生成するようにした段階と、
前記第１の名及び前記第１の位置を送ることに応答して、前記対応する固有の識別子を受け取る段階と、
を含み、
前記決定するステップ及び前記記憶するステップは、前記対応する固有の識別子を受け取る後に行われる、請求項２に記載の方法。
【請求項４】
前記第２の数のレベルは、前記複数のファイルが前記第１のディレクトリに記憶されるレベルの数より多い、請求項３に記載の方法。
【請求項５】
前記複数のファイルの各々に対して前記対応する固有の識別子を指示するテーブルを維持するステップを更に含む、請求項４に記載の方法。
【請求項６】
前記プロトコルアプリケーションは、ディレクトリの名及びファイルの名を受け取り且つ前記ディレクトリの名及びファイルの名の各々に対して前記対応する固有の識別子を与えるように設計されており、前記維持するステップは、前記テーブルの複数の行の各々にタイプ、前記対応する固有の識別子及び前記名を含む、請求項５に記載の方法。
【請求項７】
前記複数のファイルの各々は、ソングを含み、各ソングの前記第１の名は、実質的に重複する部分を有し、前記複数のファイルの全ては、前記第１のサブディレクトリの単一サブディレクトリに記憶され、前記ソングは、前記第２のディレクトリにおける複数のサブディレクトリに記憶される、請求項６に記載の方法。
【請求項８】
システムがファイルを記憶し検索するようにするための命令の１つ以上のシーケンスを記憶しているコンピュータ読み取り可能な媒体であって、
１つ以上のプロセッサによる前記命令の１つ以上のシーケンスの実行により、前記システムが、
複数のファイルに含まれ、第１の名を有し且つ第１の階層構造における第１の位置にある第１のファイルに対して固有の識別子を形成し、
第２の複数のレベルを含み且つ前記第１の階層構造と同一ではない第２の階層構造における第２の名及び第２の位置を、前記固有の識別子に基づいて決定し、
前記第２の階層構造における前記第２の位置に前記第１のファイルを前記第２の名で記憶する、
各動作を実行させる、コンピュータ読み取り可能な媒体。
【請求項９】
前記複数のファイルの全てが前記第２の階層構造での第２のディレクトリへとコピーされるように、前記複数のファイルの各々を前記第１のファイルとして扱いながら、前記形成する動作、決定する動作及び記憶する動作を繰り返す動作を更に含む、請求項８に記載のコンピュータ読み取り可能な媒体。
【請求項１０】
前記形成する動作は、
前記複数のファイルの各々に対して前記対応する固有の識別子を生成するように設計されたプロトコルアプリケーションへ前記第１の名及び前記第１の位置を送り、
前記第１の名及び前記第１の位置を送ることに応答して、前記対応する固有の識別子を受け取る、
ことを含み、
前記決定する動作及び前記記憶する動作は、前記対応する固有の識別子を受け取る後に行われる、請求項９に記載のコンピュータ読み取り可能な媒体。
【請求項１１】
前記第２の数のレベルは、前記複数のファイルが前記第１のディレクトリに記憶されるレベルの数より多い、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１２】
前記複数のファイルの各々に対して前記対応する固有の識別子を指示するテーブルを維持する動作を更に含む、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１３】
前記プロトコルアプリケーションは、ディレクトリの名及びファイルの名を受け取り且つ前記ディレクトリの名及びファイルの名の各々に対して前記対応する固有の識別子を与えるように設計されており、前記維持する動作は、前記テーブルの複数の行の各々にタイプ、前記対応する固有の識別子及び前記名を含む、請求項１２に記載のコンピュータ読み取り可能な媒体。
【請求項１４】
前記複数のファイルの各々は、ソングを含み、各ソングの前記第１の名は、実質的に重複する部分を有し、前記複数のファイルの全ては、前記第１のサブディレクトリの単一サブディレクトリに記憶される、請求項１３に記載のコンピュータ読み取り可能な媒体。
【請求項１５】
複数のファイルを受け取るためのインターフェースであって、各ファイルは、対応するソース名及び対応するソース位置に関連付けられており、前記ソース位置は、前記ファイルが前記ソース名で記憶されるソースディレクトリにおけるサブディレクトリを表すようなインターフェースと、
前記複数のファイルの各々に対して対応する固有の識別子を生成するための第１のアプリケーションブロックと、
前記複数のファイルの各々に対してターゲットディレクトリにおける対応するターゲット名及び対応するターゲット位置を生成し且つ２次記憶装置の前記対応するターゲット位置に前記対応するターゲット名で各ファイルを記憶するためのアクセスブロックであって、前記ターゲット位置は、前記ターゲットディレクトリにおけるサブディレクトリを識別するようなアクセスブロックと、
を備えるデジタル処理システムであって、
前記ソースディレクトリにおけるサブディレクトリの階層構造は、前記ターゲットディレクトリにおけるサブディレクトリの階層構造とは同一ではない、デジタル処理システム。
【請求項１６】
前記ターゲットディレクトリにおいて前記複数のファイルを記憶するサブディレクトリの数は、前記第１のディレクトリにおいて前記複数のファイルを記憶するサブディレクトリの数より多い、請求項１５に記載のデジタル処理システム。
【請求項１７】
前記第１のアプリケーションブロックは、前記サブディレクトリ及びファイルの各々に対してオブジェクト識別子を与えるように設計されており、前記オブジェクト識別子は、前記対応するファイルに対する固有の識別子として使用される、請求項１５に記載のデジタル処理システム。
【請求項１８】
前記ターゲット位置は、サブディレクトリのセットを含み、前記サブディレクトリのセットの各々は、前記オブジェクト識別子の対応するものにより決定され、前記ターゲット名は、前記オブジェクト識別子を含む、請求項１７に記載のデジタル処理システム。
【請求項１９】
前記第１のアプリケーションは、メディア転送プロトコル（ＭＴＰ）を実施するように設計されている、請求項１８に記載のデジタル処理システム。
【請求項２０】
メディアプレーヤーを実施するユーザーアプリケーションブロックを更に備え、前記複数のファイルの各々は、対応するソングを含む、請求項１５に記載のデジタル処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0002]本発明は、デジタル処理システムにおけるファイルの記憶に関し、より詳細には、１つのディレクトリから別のディレクトリへのファイルのコピーに関する。
【背景技術】
【０００２】
[0004]ファイルとは、一般的に、メモリに記憶されたデータ要素の集合を指している。普通のシナリオでは、希望の内容（例えば、ソング、ワードプロセッサにより編集されたテキスト等）は、バイトの論理シーケンスとして不揮発性メモリに記憶されている。２次記憶装置は、ある場合には、それらファイルにアクセスするデジタル処理システム内に設けられ、また、ある場合には、他のシステム（例えば、別の汎用デジタル処理システム又は特殊ファイルサーバー等）に外部的に設けられる。
【０００３】
[0005]ファイルは、階層構造に組織されたディレクトリの形に組織されていることが多い。階層構造は、多数のレベルを意味し、典型的に、その各ディレクトリは、１つの名にて識別されている。より低いレベルのディレクトリは、サブディレクトリと称されることが多く、その直ぐ上のレベルのディレクトリは、親ディレクトリと称される。トップレベルは、ルートレベルと称され、ファイル／ディレクトリは、このルートから出発する。ファイルは、この階層構造の任意のレベルに配置することができる。
【０００４】
[0006]１つのディレクトリから別のディレクトリへとファイルをコピーする必要がしばしばある。例えば、１つのシステムの１つのディレクトリに記憶されたソングを、別のシステムへとコピーすることが望まれることがある。その環境に特定の種々な必要条件を満たしつつ、ソング／ファイルをコピーすることが望まれる。
【０００５】
[0007]以下に簡単に説明する添付図面を参照して、本発明の実施形態を説明する。
【図面の簡単な説明】
【０００６】
【図１】本発明の幾つかの特徴が実施される典型的な環境を例示するブロック図である。
【図２】本発明の一実施形態においてソースディレクトリのファイルがターゲットディレクトリへとコピーされる仕方を例示するフローチャートである。
【図３】本発明の一実施形態におけるデジタル処理システムの実施を例示するブロック図である。
【図４】一実施形態において、位置及び名が各ファイルに対して決定される仕方を例示するブロック図である。
【図５】本発明の幾つかの特徴がソフトウエア命令の実行時に動作できる典型的な実施形態を例示するブロック図である。
【発明を実施するための形態】
【０００７】
[0013]図において、同様の参照番号は、一般的には、同一の、機能的に同様の、及び／又は構造的に同様の要素を示している。要素が最初に現れている図番は、対応する参照番号の最も左側の桁の数字により示されている。
【０００８】
１．概説
【０００９】
[0015]本発明の一態様は、ソースディレクトリのファイルをターゲットディレクトリに記憶することである。一実施形態では、それらファイルの各々に対して固有の識別子が生成され、そのファイルに対して、新しい位置（ｌｏｃａｔｉｏｎ）及び新しい名（ｎａｍｅ）が生成される。その新しい位置は、そのファイルが記憶されるターゲットの特定のサブディレクトリを表している。そのファイルは、その新しい位置にその新しい名で記憶される。新しい名で新しい位置でのこのような記憶は、対応する環境における種々な問題に対処するのに効果的に使用できる。
【００１０】
[0016]１つの環境では、ターゲットディレクトリは、組み込みシステムに限られたリソースで記憶され、ソースディレクトリは、実質的に重複した名を有する幾つかのファイルを含む（これは、特定のファイルを探すのに相当のリソースを必要とする）。固有の識別子は、ファイル／ディレクトリの各々に対するオブジェクト識別子等を生成するメディア転送プロトコル（ＭＴＰ）に従って生成される。ファイル名及び位置は、オブジェクト識別子を固有の識別子として使用することにより、生成される。以下に説明する実施形態の結果として、増強されたセキュリティー及びスループット性能が得られる。
【００１１】
[0017]本発明の幾つかの態様について、例示のための実施例に関して以下説明する。しかしながら、当業者には、特定の細部のうちの１つ以上のものが無くとも、又は、他の方法、コンポーネント、マテリアル等でもっても、本発明を実施することができることは認識できよう。その他の場合において、本発明の特徴を分かり難くしないようにするため、よく知られた構造、マテリアル又はオペレーションについては示していない。更にまた、ここに説明する特徴／態様は、種々な組合せにて実施することができるのであるが、ここでは、簡明とするため、それらの組合せのうちの幾つかのみについて説明する。
【００１２】
２．例示的な環境
【００１３】
[0019]図１は、本発明の幾つかの態様が実施される典型的な環境を例示するブロック図である。このブロック図は、ソースシステム１１０及びターゲットシステム１５０を含むように示されている。ソースシステム１１０は、ソースディレクトリに複数のファイルを記憶している。ターゲットシステム１５０は、それらファイルがコピーされる別のシステムを表している。これら２つのシステムは、ネットワーク（例えば、ＴＣＰ／ＩＰ、ＬＡＮ、ＡＴＭ等に基づくもの）及びポイントツーポイント接続（例えば、ダイヤルアップ）の如き技法により接続される（パス１１５）。
【００１４】
[0020]本発明の幾つかの態様によりファイルがコピーされる仕方について、実施例に関して以下に更に詳細に説明する。例示として、ソースシステム１１０における（ソース）ディレクトリからターゲットシステム１５０における別の（ターゲット）ディレクトリへファイルがコピーされると仮定する。しかしながら、それらソースディレクトリ及びターゲットディレクトリは、同じシステムにあってもよい。
【００１５】
３．ファイルのコピー
【００１６】
[0022]図２は、本発明の一態様に従ってファイルがターゲットディレクトリへとコピーされる仕方を例示するフローチャートである。このフローチャートは、単なる例示として、図１に関して記述されている。しかしながら、ここになされている説明を読むならば当業者には明らかなように、本発明の種々な態様の範囲及び精神から逸脱せずに、他の環境においても種々な特徴を実施することができるものである。
【００１７】
[0023]更にまた、当業者には明らかなように、それらステップのうちのあるものは、特定の環境に適合された以下に説明するものとは異なるシーケンスにて行うことができるものである。そのような実施のうちの多くのものは、本発明の幾つかの態様により包含されるものと考えられる。このフローチャートは、ステップ２０１にて開始され、このステップ２０１において、制御は、直ぐにステップ２１０へと移行する。
【００１８】
[0024]ステップ２１０において、ターゲットシステム１５０は、ターゲットディレクトリへコピーされるべきファイルを受け取る。一般的に、このファイルは、名及び内容（典型的には、バイトのシーケンスの形における）を有している。このファイルは、ソースシステム１１０のあるディレクトリにおける第１の位置に置かれたものであってよい。
【００１９】
[0025]ステップ２２０において、ターゲットシステム１５０は、そのファイルに対する固有の識別子を形成する。一般的に、コピーされるべきファイルの各々に対して、対応する固有の識別子を与えることが必要である。これら固有の識別子は、特定の環境に適したように、種々な仕方にて生成することができる。
【００２０】
[0026]ステップ２４０において、ターゲットシステム１５０は、その固有の識別子に基づいてターゲットディレクトリにおける名及び位置を決定する。このことは、固有の識別子が名及び位置の算出において（オペランドとして）使用されることを意味している。その位置は、そのファイルが記憶されるべきターゲットディレクトリの個々のサブディレクトリを特定している。
【００２１】
[0027]ステップ２６０において、ターゲットシステム１５０は、ターゲットディレクトリにおけるその位置にその名と共にそのファイルを記憶させる。このように記憶させることは、必然的に、そのファイルの内容が、それらファイルを記憶するのに使用されるファイルシステムと調和しているメモリ（ここに、ターゲットディレクトリが記憶される）の適当な位置にコピーされることになる。
【００２２】
[0028]ステップ２７０において、ターゲットシステム１５０は、コピーされるべき更なるファイルがあるかについてチェックする。それらファイルがソースディレクトリに既に存在していると仮定すると、すべてのファイルがターゲットディレクトリへコピーされていないならば、付加的なファイルがあることになる。他方、もし、ファイルが動的に生成されていて、ステップ２１０において受け取られつつある場合には、そのようなファイルの付加的なファイルが生成される時に、コピーするための付加的ファイルがあることになる。
【００２３】
[0029]制御は、もし、更なるファイルがあるならば、ステップ２１０へ移行し、さもなければ、ステップ２９９へ移行する。ステップ２１０から２７０のループは、コピーされるべきファイルの各々に対して行われ、各ファイルは、前述したステップ２１０の「ファイル」として取り扱われる。すべてのファイルがコピーされる時、このフローチャートは、ステップ２９９にて終了する。
【００２４】
[0030]図２のコピーは、種々な環境において、その環境における対応する要件を満たし又はその環境において存在する問題に対処するようにして、適用されることは理解されたい。典型的な諸問題に対処するように前述の種々な特徴を適用することに関して説明を続ける。
【００２５】
４．例示的な諸問題
【００２６】
[0032]１つの実施形態では、コピーされるべきファイルは、ソースシステム１１０に存在しており、組み込みシステムを表すターゲットシステム１５０へコピーされるべきである。更に、各ファイルは、ソングを表現していると仮定する。しかし、代替的実施形態においては、その内容は、その他のある情報を表現することもできる。また、それらファイルの全ては、単一ディレクトリにあると仮定される。
【００２７】
[0033]更にまた、各ファイルは、実質的に重複する（又は、同じ又は共通の）部分を有する長い名を有していると仮定する。例えば、第１のファイルは、「映画名音楽家名ソング１」の名を有し、第２のファイルは、「映画名音楽家名ソング２」の名を有する。この実施例では、その部分「映画名音楽家名ソング」は、実質的に重複する部分を表しており、値１及び値２は、異なる部分を表している。
【００２８】
[0034]組み込みシステムであると、ターゲットシステム１５０は、限られたリソース（例えば、処理パワー）を有していると仮定され、また、情報セキュリティーが希望の特徴であると仮定される。あるファイルがファイル名に基づいて探索されるべきであるときには、この探索は、相当のリソースを消費するかもしれない。例えば、文字毎の比較が使用されると仮定すると、整合するものがないとの結論に達するためには、実質的重複部分の全てについて比較する必要があり、これは、計算要件として増強されたものが必要となってしまう。
【００２９】
[0035]ソースディレクトリにおけるのと同じファイル名を使用する場合には、セキュリティー露出となることが十分に考えられる。何故ならば、第三者である侵入者がそのファイル名を見ることによりそのファイルの内容の性質を理解してしまうことが考えられるからである。
【００３０】
[0036]本発明の幾つかの態様は、少なくとも、典型的な実施形態において以下により詳細に説明するような問題に対処するものである。この実施形態は、メディア転送プロトコル（ＭＴＰ）を使用しており、従って、ＭＴＰについて先ず簡単に説明する。
【００３１】
５．メディア転送プロトコル
【００３２】
[0038]メディア転送プロトコル（ＭＴＰ）は、ＵＳＢ又はＩＰの如きトランスポート機構の任意のものを使用して、組み込み装置へメディア内容を転送するためのプロトコル仕様である。ここで説明する実施形態の動作を理解するのに適切であると考えられるようなＭＴＰの詳細についてのみ、ここでは説明する。ＭＴＰの更なる詳細については、ワシントン州レドモンドのマイクロソフト社から入手できる、２００６年８月３１日付けの「Media Transfer Protocol Enhanced」と題する文書、改訂版０．９６を参照されたい。
【００３３】
[0039]ＭＴＰは、問題の各エンティティをオブジェクトとして表している。全てのオブジェクトは、プロパティのあるセットと関連付けられており、任意的にあるデータと関連付けられている。フォルダ、メディアファイル、テキストファイル、バイナリーファイル、プレイリストの如きエンティティの全ては、プロパティの区別されたセットを有するオブジェクトとして取り扱われる。従って、ＭＴＰとのインターフェースをする外部アプリケーション／デバイスは、（最終的に問題のデータを記憶する２次記憶装置の記憶ユニットをブロックが表しているブロックレベルの代わりに）オブジェクトレベルにて動作する。ＭＴＰは、オブジェクト、プロパティ及び関連付けの形においてその仮想ビューを有するのであるが、種々な下位ファイルシステムによって支援されることのできるものである。
【００３４】
[0040]ＭＴＰがファイルをターゲットディレクトリへコピーするのに使用される仕方について、例示としての実施例に関して以下説明する。
【００３５】
６．ターゲット装置
【００３６】
[0042]図３は、本発明の一実施形態におけるターゲットの詳細を例示するブロック図である。ターゲットシステム１５０は、ＭＴＰインターフェース３１０、ユーザーアプリケーション３２０、ＭＴＰアプリケーション３３０、メモリ３４０、アクセスブロック３５０、ファイルシステム３７０及び２次記憶装置３９０を含むように示されている。各ブロックについて、以下より詳細に説明する。
【００３７】
[0043]ユーザーアプリケーションブロック３２０は、問題のアプリケーションを一緒になって支援する命令及びハードウエアを表している。例えば、メディアプレーヤーの場合には、そのハードウエアは、再生、停止、巻戻し、次のソング等の如き指令を与えるために押される種々な物理ボタンを含むことができる。メモリ３４０は、揮発性（ランダムにアクセスできる）ユニット及び持続性ユニットの両者を含むことができ、また、メモリ３４０のうちのある部分は、２次記憶装置３９０と一体化することができる。
【００３８】
[0044]ＭＴＰブロック３３０は、前述したようなＭＴＰプロトコルを実施する。本発明の幾つかの態様及び組み込み装置として動作するに適切なものとして、ＭＴＰブロック３３０は、セーブされようとしているエンティティの各々に対して（ソースファイルシステムに関連した）固有の（オブジェクト）識別子を生成する。更にまた、ＭＴＰブロック３３０は、図４に関して以下に説明するように、対応する情報をメモリ３４０にテーブルとして（持続性のある仕方にても）記憶／維持する。
【００３９】
[0045]ＭＴＰブロック３３０は、ソースディレクトリにおける（ソース）名と共にファイルのオブジェクト識別子を決定するのに、そのテーブルの情報を使用する。もし、そのファイルにアクセスする必要がある場合には、ＭＴＰブロック３３０は、そのアクセス要求を、決定されたオブジェクト識別子と共に、アクセスブロック３５０へと送る。アクセスブロック３５０は、そのアクセス要求の実行を行うことができるようにする。
【００４０】
[0046]ＭＴＰブロック３３０は、特定のエンティティのオブジェクト識別子に対する（正当と認められた）要求に応答することもでき、又は、（親の如き）他の要求された情報を与えるように応答することもできる。簡潔なものとするためここでは説明しないのであるが、ＭＴＰブロック３３０は、前述したようなＭＴＰ仕様に記載された種々な他の特徴を支援することができる。
【００４１】
[0047]ＭＴＰインターフェース３１０は、パス１５２にて外部装置とインターフェースするとき、種々な物理、電気及びトランスポートプロトコル（例えば、ＵＳＢ、ＴＣＰ／ＩＰ、ＬＡＮ）を与える。このような特徴に基づいて、ＭＴＰインターフェース３１０は、種々なＭＴＰ関連トランザクション要求（ファイルを記憶すること、ファイルを検索すること、エンティティに対応するオブジェクト識別子を与えること等）を受け取ると仮定される。
【００４２】
[0048]ＭＴＰインターフェース３１０は、更に、ユーザーアプリケーション３２０から又はパス１５２にて種々なトランザクション要求（ファイルの記憶、ファイルの検索）を受け取り、それらをＭＴＰアプリケーション３３０へと送る。その応答（ＭＴＰブロック３３０から受け取られるとき）は、その要求が受け取られた同じパスにて送り返される。
【００４３】
[0049]２次記憶装置３９０は、ファイルが記憶される不揮発性メモリを表している。この不揮発性メモリは、磁気メモリ（ハードディスク）、フラッシュメモリ等の如き種々な技法を使用して実施することができる。ファイルシステム３７０は、各ファイルが２次記憶装置に記憶される仕方を特定し、当分野にてよく知られている種々な方法を使用して実施することができる。以下に説明する実施形態では、ファイルシステム３７０は、種々なパーソナルコンピュータシステムにて使用できるＦＡＴファイルシステムとして実施することもできる。
【００４４】
[0050]アクセスブロック３５０は、記憶されるべきファイルのオブジェクト識別子を受け取り、ファイルを記憶させるため図２に関して説明された種々な動作を行う。従って、アクセスブロック３５０は、各ファイルの位置及び名を決定し、それから、ファイルシステム３７０とのインターフェースを行い、そのファイルがターゲットディレクトリの決定された位置（サブディレクトリ）にその決定された名で記憶されるようにする。
【００４５】
[0051]それから、アクセスブロック３５０は、それらファイルの検索ができるようにすることができる。アクセスブロック３５０は、前述したステップ２４０の決定に対応するリバースロジックを行うことにより、その固有のオブジェクト識別子に基づいて、そのファイルの特定の位置及び（ターゲット）名を決定する。本明細書の説明を読むことにより、当業者には、種々なロジック（対応するリバースロジックでの）が明らかとなろう。１つの実施形態におけるアクセスブロック３５０の動作を例示するため、このようなロジックの実施例について説明を続ける。
【００４６】
７．例示的な記憶
【００４７】
[0053]図４は、本発明の一実施形態においてファイルが記憶され検索される仕方を例示している。例示として、ソースディレクトリは、参照番号４１０にて全体的に示されるサブディレクトリ及びファイル（ソース名を有する）を含むと仮定される。従って、楽曲は、コピーされるべきソースディレクトリの名を表し、サブディレクトリとして「アーティスト１」及び「アーティスト２」を有している。サブディレクトリ「アーティスト１」は、１０００個のファイル／ソングで示されている。
【００４８】
[0054]理解されるように、ファイルの全ては、各名において実質的に重複する部分として「テスト」を有しており、これは、前述したように探索において効率を悪くしてしまうことがあるかもしれない。以下に説明するように、それらファイルは、このような問題の少なくともあるものを克服するように、ターゲットディレクトリへコピーされる。
【００４９】
[0055]前述したように、ＭＴＰは、「仮想」ファイルシステム（ＭＴＰのビューにおいて）を介して記憶されようとしているエンティティの各々に対して、固有のオブジェクト識別子を指定する。テーブル４２０は、メモリ３４０に記憶される対応する情報を示している。
【００５０】
[0056]各エンティティに対応する情報は、対応する行に記憶されるように示されている。各行は、オブジェクト識別子（ＯＩＤ）、エンティティ名、親識別子（ＰＩＤ）及びタイプを有する。ＯＩＤは、順次に指定されていると仮定されているが、他のプロパティを有する番号／識別子を使用することもできる。親識別子は、ソースディレクトリの階層構造における親のオブジェクト識別子を表している。従って、この情報は、ＭＴＰがフラット構造（オブジェクト識別子を有する）におけるオブジェクトのビューを与えているのであるが、ソースディレクトリの階層構造の再構成を行うことができるようにする。
【００５１】
[0057]テーブル４２０に存在しているオブジェクト識別子及び他の情報に基づいて、アクセスブロック３５０は、以下に更に詳細に説明するような本発明の幾つかの態様に従ってファイルの記憶及び検索を行うことができるようにする。
【００５２】
[0058]アクセスブロック３５０は、先ず、ターゲットディレクトリにおいて使用される多数のレベル及び最も低いレベルで各サブディレクトリに記憶されるファイルの数を決定することができる。一実施形態では、このような決定のために、次の式が使用される。
１６（Ｘ＋Ｙ）＝Ｍ…………式（１）
[0060]ここで、Ｘは、サブディレクトリのレベルを表すのに使用されるニブル（各々４ビット）の数を表しており、
[0061]Ｙは、最も低いレベルでのサブディレクトリ当たりのファイルを表すのに使用されるニブルの数を表しており、
[0062]Ｍは、組み込み装置によって支援されるＭＴＰオブジェクトの最大数を表している。
【００５３】
[0063]Ｍ＝６４Ｋ（＝１６４）と仮定すると、（Ｘ＋Ｙ）は、４に等しいことが必要であろう。例示として、Ｘ＝３及びＹ＝１と仮定すると、最も低いレベルでの単一サブディレクトリには、１６個のファイルを記憶することができることが理解されよう。
【００５４】
[0064]ここで、各オブジェクト識別子が３２ビットを有するように設計されていると仮定すると、ＬＳＢ１２−１５が、サブディレクトリの第１のレベルを名付けるのに使用され、ＬＳＢ８−１１が、その第２のレベルを名付けるのに使用され、ＬＳＢ４−７が、その第３のレベルを名付けるのに使用される。サブディレクトリの第３のレベルの各々に、１６個のファイルを記憶することができ、そのファイルの（ターゲット）名は、ＬＳＢ０−３に基づくことができる。前述の方法を使用し、１６進法において前述のニブルを表すと、その位置／ファイル名は、”＄ＭＴＰＲＯＯＴ／ＬＳＢ［１２−１５］／ＬＳＢ［８−１１］／ＬＳＢ［４−７］／ＬＳＢ［０−３］.ｄａｔに等しくなる。それらのファイルは、２次記憶装置３９０に記憶され、典型的なファイル４３０及び４４０により示されている。
【００５５】
[0065]この例示の実施例では、これは、６４ｋのオブジェクトを、各レベルが１６以下のオブジェクトを有するようにして、４以下のレベル（そのＭＴＰ内容の全てが記憶される３つのサブディレクトリ＋１つのルートディレクトリ）でディレクトリ構造に亘って分散させる。例えば、１−１６からのＲＩＤを有する１６のファイルが次のように分散される。
“＄ＭＴＰＲＯＯＴ／０／０／０／１．ｄａｔ
“＄ＭＴＰＲＯＯＴ／０／０／０／２．ｄａｔ
・
・
“＄ＭＴＰＲＯＯＴ／０／０／０／１５．ｄａｔ
“＄ＭＴＰＲＯＯＴ／０／０／１／１．ｄａｔ
【００５６】
[0066]しかしながら、異なる数のサブディレクトリを使用し及び／又はノンリーフサブディレクトリにファイルを記憶するのに、別の方法を使用することもできる。更にまた、前述の方法／ロジックは、新しいターゲット名でファイルを記憶する仕方を例示しているが、希望のファイルにアクセスするのに同じロジックを使用することができることは理解されよう。先ず、ユーザーアプリケーション３２０が、例えば、ＭＴＰインターフェースでインターフェースすることにより、アクセスされようとしているファイルのオブジェクト識別子を決定したと仮定する。そのとき、ユーザーアプリケーション３２０は、そのオブジェクト識別子を与えることにより、そのファイルについてアクセスブロック３５０に要求することができる。
【００５７】
[0067]別の仕方として、ユーザーアプリケーション３２０は、単にソースファイル名を与えて、アクセスブロックが、メモリ３４０に記憶されたテーブルにおける情報に基づいてオブジェクト識別子を決定することができる。
【００５８】
[0068]前述したのと同じ方法を使用して、アクセスブロック３５０は、オブジェクト識別子をその位置及びターゲットファイル名へマップすることができる。そのとき、そのファイルは、その決定された位置及びファイル名を使用してアクセスされる。
【００５９】
[0069]ユーザーアプリケーションがメディアプレーヤーであり、それらファイルが前述したように相当に重複する名を有するソングを表すと仮定すると、比較の数は、最大で１６個のファイルの名のみを比較すればよいので、最大１６までに減ぜられることは理解されよう。これと対比的に、もし、図４の「楽曲／アーティスト１／テスト１  ｍｐ３」ディレクトリのファイルの全てが、同じディレクトリに記憶されているならば、最悪の場合、所定のファイルを探し出すのに１０００回の探索が必要とされてしまう。
【００６０】
[0070]性能比較として、ファイルシステム３７０が、５１２バイトのセクタサイズを有し各セクタが１０個の名を記憶するようなＦＡＴファイルシステムとして実施されると仮定すると、それらファイルが図２に従って記憶されていない時には、約１００個のセクタにアクセスする必要があるかもしれない。他方では、図２の方法が使用されているときには、最大で２個のセクタにアクセスすることが必要とされるだけで、希望のファイルにアクセスすることができるのである。希望のファイルが素早く探し出されてアクセスすることができるので、メディアプレーヤーのユーザーの待ち時間を減少することができる。
【００６１】
[0071]前述の方法は、特に、デジタルライツ管理（ＤＲＭ）のコンテクストにおいて、付加的なセキュリティーを与えることもできる。理解されるように、２次記憶装置３９０における位置及びターゲットファイル名は、そのファイルに対して生成された固有の識別子によって決定されることに加えて、ソースファイル名とは異なる。従って、侵入者は、前述の実施例において記憶された.ｄａｔファイルが何を表しているのかを直ぐには理解できず、これにより、付加的なセキュリティーが提供される。
【００６２】
[0072]単なる例示として、ソースシステム１１０のディレクトリにおけるファイルがターゲットシステム１５０における別のディレクトリへとコピーされると仮定する。しかしながら、本発明の幾つかの特徴は、他のタイプのシステムからファイルをコピーするとき、他のタイプのシステムへファイルをコピーするとき、及び単一のシステム内でファイルをコピーするときでも、実施することのできるものである。
【００６３】
[0073]更にまた、前述した諸問題／解決法は、単なる例示であり、本発明の幾つかの特徴は、対応する異なる要件／問題を有する他の環境に適応できるものであることは、本明細書の記載を読むことにより、当業者には明らかとなろう。
【００６４】
[0074]前述したブロック／特徴は、ハードウエア、コンピュータ読み取り可能な媒体に記憶された実行モジュール、又は両者の組み合わせたものにより実現できることは、理解されたい。このような特徴／ブロックが実施される典型的なデジタル処理システムに関して、説明を続ける。
【００６５】
８．デジタル処理システム
【００６６】
[0076]図５は、本発明の種々な態様が適当なソフトウエア命令の実行により動作できるようなデジタル処理システム５００の詳細を例示するブロック図である。このデジタル処理システム５００は、ターゲットシステム１５０に対応できる。
【００６７】
[0077]デジタル処理システム５００は、中央処理装置（ＣＰＵ）５１０の如き１つ以上のプロセッサ、ランダムアクセスメモリ（ＲＡＭ）５２０、２次メモリ５３０、グラフィックコントローラ５６０、表示装置５７０、ネットワークインターフェース５８０及び入力インターフェース５９０を含むことができる。表示装置５７０を除いて、これら構成部分の全ては、当業分野においてよく知られているような幾つかのバスを含む通信パス５５０を介して、互いに通信することができる。図５のこれらの構成部分について、以下より詳細に説明する。
【００６８】
[0078]ＣＰＵ５１０は、本発明の幾つかの特徴を与えるため、ＲＡＭ５２０に記憶された命令を実行することができる。ＣＰＵ５１０は、各々が特定のタスクを行えるように設計された複数の処理装置を含むことができる。別の仕方として、ＣＰＵ５１０は、単一の汎用処理装置のみを含むことができる。ＲＡＭ５２０は、通信パス５５０を使用して２次メモリ５３０から命令を受け取ることができる。
【００６９】
[0079]グラフィックコントローラ５６０は、ＣＰＵ５１０から受け取られたデータ／命令に基づいて、表示装置５７０への表示信号（例えば、ＲＧＢフォーマットにて）を生成する。表示装置５７０は、それら表示信号によって定められた画像を表示するための表示スクリーンを含む。入力インターフェース５９０は、キーボード及びポインティングデバイス（例えば、タッチパッド、マウス）に相当することができ、そして、入力を与えるのに（例えば、メディアプレーヤーの場合には、ソングを再生／停止するのに）使用することができる。ネットワークインターフェース５８０は、（例えば、インターネットプロトコルを使用して）ネットワークへのコネクティビティを与え、他の接続システムと通信するのに使用することができる。
【００７０】
[0080]２次メモリ５３０は、ハードドライブ５３５、フラッシュメモリ５３６及びリムーバブル記憶装置ドライブ５３７を含むことができる。２次メモリ５３０は、デジタル処理システム５００が本発明に従って幾つかの特徴を与えることができるようにするデータ及びソフトウエア命令を記憶することができる。
【００７１】
[0081]これらデータ及び命令のうちのあるもの又は全てを、リムーバブル記憶装置５４０に与えることができ、それらデータ及び命令は、リムーバブル記憶装置ドライブ５３７により読み出されてＣＰＵ５１０へと与えられる。このようなリムーバブル記憶装置ドライブ５３７の実施例としては、フロッピードライブ、磁気テープドライブ、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブ、フラッシュメモリ、リムーバブルメモリチップ（ＰＣＭＣＩＡカード、ＥＰＲＯＭ）がある。
【００７２】
[0082]リムーバブル記憶装置５４０は、リムーバブル記憶装置ドライブ５３７がデータ及び命令を読み出すことができるように、そのリムーバブル記憶装置ドライブ５３７とコンパチブルな媒体及び記憶フォーマットを使用して実施することができる。従って、リムーバブル記憶装置５４０は、コンピュータソフトウエア及び／又はデータを記憶したコンピュータ読み取り可能な（記憶）媒体を含む。しかしながら、コンピュータ（又は、一般的には、マシン）読み取り可能な媒体は、他の形式（例えば、ノンリムーバブル、ランダムアクセス等）のものであることもできる。
【００７３】
[0083]本明細書では、用語「コンピュータプログラム製品」は、一般的には、リムーバブル記憶装置５４０又はハードドライブ５３５にインストールされたハードディスクを指すのに使用されている。これらのコンピュータプログラム製品は、デジタル処理システム５００へソフトウエアを与えるための手段である。ＣＰＵ５１０は、前述したような本発明の種々な特徴を与えるため、ソフトウエア命令を検索して、それら命令を実行することができる。
【００７４】
[0084]本発明を十分に理解できるように、多くの詳細、関係及び方法について説明されていると理解されたい。例えば、本明細書において説明する機能ユニットの多くは、それらの実施独立性をより特定して強調するため、モジュール／ブロックとしてラベル付けされている。
【００７５】
[0085]モジュール／ブロックは、カスタム超大規模集積回路又はゲートアレイ、ロジックチップの如き既製半導体、トランジスタ又は他の分離コンポーネントを含むハードウエア回路として実施することができる。また、モジュール／ブロックは、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス等の如きプログラマブルハードウエアデバイスにおいて実施することもできる。
【００７６】
[0086]モジュール／ブロックは、種々なタイプのプロセッサにより実行されるソフトウエアにても実施することができる。実行コードの識別モジュールは、例えば、コンピュータ命令の１つ以上の物理又は論理ブロックを含むことができ、それらコンピュータ命令は、例えば、オブジェクト、プロシージャ又はファンクションとして組織されている。しかしながら、識別モジュールの実行部分は、物理的に一緒に配置される必要はなく、異なる位置に記憶される異なる命令を含むことができる。それら異なる位置は、論理的に一緒に結合されるとき、そのモジュール／ブロックを構成し、そのモジュール／ブロックの所定の目的を達成することができる。
【００７７】
[0087]実行コードのモジュール／ブロックは、単一の命令であっても多数の命令であってもよく、異なるプログラムの間に、幾つかのメモリデバイスに渡り、幾つかのコードセグメントに亘って分散されていてもよいことは、理解されよう。更にまた、単一モジュール／ブロックに関して説明した機能は、複数のモジュール／ブロックに亘って分割されてもよく、又は、別の仕方として、複数のモジュール／ブロックに関して説明した機能は、単一のもの（又はブロックの他の組合せ）へと組み合わせてもよいことは、本明細書の記載に基づくならば、当業者には明となろう。
【００７８】
[0088]同様に、演算データは、モジュール内で識別されここに例示され、また、任意の適当な形式にて実施され、任意の適当なタイプのデータ構造内に組織されることができる。これら演算データは、単一データとして集約されてもよいし、又は、異なるメンバーディスクに亘ることを含めて異なる位置に亘って分散されてもよいし、また、単にシステム又はネットワークの電子信号として、少なくとも部分的に存在するようなものでもよい。
【００７９】
[0089]本明細書を通して、「１つの実施形態」、「一実施形態」又は類似の表現への参照は、その実施形態に関して説明された特定の特徴、構成又は特性が、本発明の少なくとも１つの実施形態に含まれることを意味している。従って、本明細書を通して現れる表現「１つの実施形態において」、「一実施形態において」及び類似の表現は、必ずしもそうではないが、全て同じ実施形態を指しているとも言える。
【００８０】
[0090]更にまた、本発明の前述した特徴、構造又は特性は、１つ以上の実施形態において任意の適当な仕方にて組み合わすことができる。次の説明において、本発明の実施形態の完全な理解を与えるように、プログラミング、ソフトウエアモジュール、ユーザー選択、ネットワークトランザクション、データベースクエリ、データベース構造、ハードウエアモジュール、ハードウエア回路、ハードウエアチップ等の実施例の如き多くの特定の詳細が与えられている。
【００８１】
９．結論
【００８２】
[0092]本発明の種々な実施形態について前述してきたのであるが、これら実施形態は、実施例としてのみなされているものであり、本発明をこれに限定するものではないことを理解されたい。従って、本発明の幅及び範囲は、前述した典型的な実施形態のいずれによっても限定されるべきものでなく、特許請求の範囲及びそれらの均等物に従ってのみ限定されるべきものである。
【符号の説明】
【００８３】
１１０・・・ソースシステム、１１５・・・パス、１５０・・・ターゲットシステム、１５２・・・パス、３１０・・・ＭＴＰインターフェース、３２０・・・ユーザーアプリケーション、３３０・・・ＭＴＰアプリケーション（ＭＴＰブロック）、３４０・・・メモリ、３５０・・・アクセスブロック、３７０・・・ファイルシステム、３９０・・・２次記憶装置、４１０・・・ソースディレクトリ（サブディレクトリ及びファイル）、４２０・・・テーブル、４３０・・・ファイル、４４０・・・ファイル、５００・・・デジタル処理システム、５１０・・・中央処理装置（ＣＰＵ）、５２０・・・ランダムアクセスメモリ（ＲＡＭ）、５３０・・・２次メモリ、５３５・・・ハードドライブ、５３６・・・フラッシュメモリ、５３７・・・リムーバブル２次記憶装置ドライブ、５４０・・・リムーバブル記憶装置、５５０・・・通信パス、５６０・・・グラフィックコントローラ、５７０・・・表示装置、５８０・・・ネットワークインターフェース、５９０・・・入力インターフェース
【図１】
2010044753.tif 000003
【図２】
2010044753.tif 000004
【図３】
2010044753.tif 000005
【図４】
2010044753.tif 000006
【図５】
2010044753.tif 000007
【外国語明細書】
2010044753000001.pdf