(57)【特許請求の範囲】
【請求項１】
ファイルを管理するファイル管理システムであって、
登録するファイルと登録するファイル名と登録するファイル識別子とを入力してデータ処理装置に送出するファイル入力装置と、
ファイル取り出しを要求するファイルのファイル名とファイル識別子を入力してデータ処理装置に送出するファイル要求入力装置と、
ファイル名とファイル識別子と個々のファイルを一意に特定する管理ＩＤとの対応関係を記録した対応表および管理ＩＤとファイルとを記録したファイル記憶部を含むファイル記憶装置と、
前記ファイル要求入力装置に入力されたファイル名とファイル識別子とを受け取り前記対応表を検索し、対応する管理ＩＤの有無の判断をし、あるならその管理ＩＤを検索する対応表検索手段，
前記対応表検索手段により検索された管理ＩＤでファイル記憶部に登録されているファイルを検索し、検索したファイルをファイル出力装置に送出し、また、新規管理ＩＤ取得要求にたいして登録するファイルのために既に登録されているファイルの管理ＩＤと重複しない新たな管理ＩＤを生成するファイル検索手段，
前記ファイル入力装置に入力されたファイルを受け取り、登録するファイルの内容と前記ファイル記憶部に登録されているファイルの内容とを比較し、同一内容のファイルの有無を判断し、同一内容のファイルがあるならば、その管理ＩＤを出力するファイル内容比較手段，
前記ファイル入力装置に入力されたファイルとそのファイル名とファイル識別子とを受け取り、前記ファイル内容比較手段により登録するファイルの内容と内容の等しいファイルが前記ファイル記憶部に登録されていると判断された場合に、前記ファイル入力装置に入力された前記登録するファイル名と前記登録するファイル識別子と前記ファイル内容比較手段により出力された前記内容の等しいファイルの管理ＩＤとを前記対応表に登録し、前記ファイル内容比較手段により同一内容のファイルが登録されていないと判断された場合に、前記登録するファイル名と前記登録するファイル識別子と前記ファイル検索手段により生成された新たな管理ＩＤとを前記対応表に登録する対応表変更手段，
前記登録するファイルと内容の等しいファイルが前記ファイル記憶部に登録されていない場合に、ファイル検索手段が作成した新たな管理ＩＤと前記登録するファイルとを前記ファイル記憶部に登録するファイル登録削除手段，を含むデータ処理装置と、
前記ファイル要求入力装置が要求したファイル名およびファイル識別子に対応するファイルを前記データ処理装置から渡され前記ファイル要求入力装置に送出するファイル出力装置と、
を備えて成ることを特徴とするファイル管理システム。
【請求項２】
ファイルを管理するファイル管理システムであって、
登録するファイルと登録するファイル名と登録するファイル識別子とを入力してデータ処理装置に送出するファイル入力装置と、
ファイル取り出しを要求するファイルのファイル名とファイル識別子を入力してデータ処理装置に送出するファイル要求入力装置と、
ファイル名とファイル識別子と個々のファイルを一意に特定する管理ＩＤとの対応関係を記録した対応表および管理ＩＤとファイルとを記録したファイル記憶部を含むファイル記憶装置と、
前記ファイル要求入力装置に入力されたファイル名とファイル識別子とを受け取り前記対応表を検索し、対応する管理ＩＤの有無の判断をし、あるならその管理ＩＤを検索する対応表検索手段，
前記対応表検索手段により検索された管理ＩＤでファイル記憶部に登録されているファイルを検索し、検索したファイルをファイル出力装置に送出し、また、新規管理ＩＤ取得要求にたいして既に登録されているファイルの管理ＩＤと重複しない新たな管理ＩＤを生成するファイル検索手段，
前記ファイル入力装置に入力されたファイルを受け取り、登録するファイルの内容と前記ファイル記憶部に登録されているファイルの内容とを比較し、同一内容のファイルの有無を判断し、同一内容のファイルがあるならば、その管理ＩＤを出力するファイル内容比較手段，
前記ファイル入力装置に入力されたファイルとそのファイル名とファイル識別子とを受け取り、前記ファイル入力装置に入力された前記登録するファイル名と前記登録するファイル識別子と前記ファイル検索手段により生成された新たな管理ＩＤとを前記対応表に登録し、その後、前記ファイル内容比較手段が同一内容のファイルがあると判断した場合、前記登録されたファイル名とファイル識別子と前記新たな管理ＩＤとを対応表から削除し、前記登録されたファイル名とファイル識別子と前記ファイル内容比較手段が出力する前記同一内容のファイルの管理ＩＤとを前記対応表に登録する対応表変更手段，
前記ファイル入力装置に対してファイルとファイル名とファイル識別子が入力されたときに、前記ファイル検索手段が作成した新たな管理ＩＤと前記登録するファイルとをファイル記憶部に登録し、前記ファイル内容比較手段が同一内容のファイルがあると判断した時、前記新たな管理ＩＤとそれに対応する前記新たに登録されたファイルとを削除するファイル登録削除手段，を含むデータ処理装置と、
前記ファイル要求入力装置が要求したファイル名およびファイル識別子に対応するファイルを前記データ処理装置から渡され前記ファイル要求入力装置に送出するファイル出力装置と、
を備えて成ることを特徴とするファイル管理システム。
【請求項３】
前記ファイル記憶装置に、
ファイルのハッシュ値と管理ＩＤとの対応関係を記録したハッシュ表を含み、
前記データ処理装置に、
前記登録するファイルのハッシュ値で前記ハッシュ表を検索するハッシュ表検索手段，
および内容の等しいファイルが前記ファイル記憶部に登録されていない場合に前記登録するファイルのハッシュ値と前記新たな管理ＩＤとを前記ハッシュ表に登録するハッシュ表変更手段を含み、
前記ファイル内容比較手段は，前記ハッシュ表検索手段で検索した結果一致したものの管理ＩＤに対応するファイルについて登録するファイルとファイルの内容を比較する、
ことを特徴とする請求項１または２記載のファイル管理システム。
【請求項４】
前記ハッシュ表は、ファイル名毎に存在し、
前記対応表検索手段は、登録するファイルのファイル名と同名のファイルが存在するか否か前記対応表を検索して調べ、
前記ハッシュ表検索手段は、同名のファイルが前記対応表に登録されていない場合は前記ハッシュ表の検索結果は存在しなかったとし、同名のファイルが前記対応表に登録されていれる場合は前記ファイル名に対応する前記ハッシュ表を前記登録するファイルのハッシュ値をキーとして検索する、
ことを特徴とする請求項３記載のファイル管理システム。
【請求項５】
前記ハッシュ表は、全てのファイル名に対して１つ存在する、
ことを特徴とする請求項３記載のファイル管理システム。
【請求項６】
ファイル入力装置とデータ処理装置と記憶装置とを備え前記記憶装置に対応表とハッシュ表とファイル記憶部とを含むファイル管理システムにおいてファイルを管理するファイル管理方法であって、
前記ファイル入力装置は入力された登録するファイルとファイル名とファイル識別子とを前記データ処理装置に送出し、
前記データ処理装置のハッシュ表検索手段は登録するファイルのハッシュ値をキーにしてファイルのハッシュ値と個々のファイルを一意に特定する管理ＩＤとの対応関係を記録した前記ハッシュ表を検索し、
前記ハッシュ表を検索した結果管理ＩＤが得られた場合には、前記データ処理装置のファイル内容比較手段はその管理ＩＤに対応するファイルを前記ファイル記憶部から検索して取り出し登録するファイルとファイルの内容を比較し、
前記取り出したファイルの内容が登録するファイルの内容と等しい場合には、前記データ処理装置の対応表変更手段は登録するファイル名と登録するファイル識別子と前記取り出したファイルの管理ＩＤとを前記対応表に登録し、
前記ハッシュ表検索手段は前記ハッシュ表を検索し、前記ハッシュ表の検索で一致しない場合あるいは前記ハッシュ表の検索で一致したが内容の等しいファイルが存在しない場合には、前記データ処理装置のファイル検索手段は既に登録されているファイルの管理ＩＤと重複しない新たな管理ＩＤを生成し、前記データ処理装置のファイル登録削除手段は前記新たな管理ＩＤと登録するファイルとを前記ファイル記憶部に登録し、前記データ処理装置のハッシュ表変更手段は登録するファイルのハッシュ値をキーにして前記新たな管理ＩＤを前記ハッシュ表に登録し、前記対応表変更手段は登録するファイル名と登録するファイル識別子と前記新たな管理ＩＤとを前記対応表に登録する、
ことを特徴とするファイル管理方法。
【請求項７】
ファイル入力装置とデータ処理装置と記憶装置とを備え前記記憶装置に対応表とハッシュ表とファイル記憶部とを含むファイル管理システムにおいてファイルを管理するファイル管理方法であって、
前記ファイル入力装置は入力された登録するファイルとファイル名とファイル識別子とを前記データ処理装置に送出し、
前記データ処理装置のファイル検索手段は既に登録されているファイルの管理ＩＤと重複しない新たな管理ＩＤを生成し、
前記データ処理装置のファイル登録削除手段は前記新たな管理ＩＤと登録するファイルとを前記ファイル記憶部に登録し、
前記データ処理装置の対応表変更手段は登録するファイル名と登録するファイル識別子と前記新たな管理ＩＤとを前記対応表に登録し、
前記データ処理装置のハッシュ表検索手段は登録するファイルのハッシュ値をキーにしてファイルのハッシュ値と個々のファイルを一意に特定する管理ＩＤとの対応関係を記録した前記ハッシュ表を検索し、
前記ハッシュ表を検索した結果管理ＩＤが得られた場合には、前記データ処理装置のファイル内容比較手段はその管理ＩＤに対応するファイルを前記ファイル記憶部から検索して取り出し登録するファイルとファイルの内容を比較し、
前記取り出したファイルの内容が登録するファイルの内容と等しい場合には、前記対応表変更手段は前記対応表に登録した前記新たな管理ＩＤを前記取り出したファイルの管理ＩＤに変更し、前記ファイル登録削除手段は前記ファイル記憶部に登録した前記新たな管理ＩＤと登録するファイルとをファイル記憶部から削除し、
前記ハッシュ表検索手段は前記ハッシュ表を検索し、前記ハッシュ表の検索で一致しない場合あるいは前記ハッシュ表の検索で一致したが内容の等しいファイルが存在しない場合には、前記データ処理装置のハッシュ表変更手段は登録するファイルのハッシュ値をキーにして前記新たな管理ＩＤを前記ハッシュ表に登録する、
ことを特徴とするファイル管理方法。
【請求項８】
前記ハッシュ表は、ファイル名毎に存在し、
前記データ処理装置の対応表検索手段は登録するファイルのファイル名と同名のファイルが存在するか否か前記対応表を検索して調べ、
前記ハッシュ表検索手段は同名のファイルが前記対応表に登録されていなければ検索結果は存在しなかったとし、同名のファイルが前記対応表に登録されていれば前記ファイル名に対応する前記ハッシュ表を前記登録するファイルのハッシュ値をキーとして検索する、
ことを特徴とする請求項６または７記載のファイル管理方法。
【請求項９】
前記ハッシュ表は、全てのファイル名に対して１つ存在する、
ことを特徴とする請求項６または７記載のファイル管理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファイルを管理するファイル管理システムに関し、特にコンピュータプログラムを構成するファイルのように各ファイルの呼び出しの間に相関関係のあるファイルを保持管理するシステムにおいて、同名であるが内容の異なるファイルを共に保持するとともに登録者が異なるが内容の等しいファイルを単一のファイルとして扱うことを可能とするファイル管理システムおよび方法に関する。
【０００２】
【従来の技術】
一般的なファイルを保持管理するファイル管理システムは、一般的にファイル名で個々のファイルを管理する。
【０００３】
ファイル名のみでファイルを管理する場合、同名のファイルを複数保持することはできない。
【０００４】
そこで、従来のファイル管理システムでは階層構造を持つディレクトリを作成し、それぞれのディレクトリにファイルを置くことで同名のファイルを保持することを可能にしている。
【０００５】
具体例として、図１２を示す。ファイル0801とファイル0802の２つのファイルはそれぞれの内容は異なるが、ともにtokkyo.txtという等しいファイル名が与えられている。ファイル名だけで管理するのでは、この２つのファイルを別のファイルとして管理することはできない。
【０００６】
そこで、図１３に示すように、/Text/Network/、/Text/Filesystem/ という２つのディレクトリを作成し、この２つのディレクトリにそれぞれのファイルを収める。これにより、２つのtokkyo.txtという名前のファイルを同時に管理することができる。
【０００７】
或いは、ディレクトリ名を含めてファイル名とする、つまり、図１２の例の場合、/Text/Network/tokkyo.txtをファイル名とするならば、/Text/Network/tokkyo.txtという複数の異なるファイルを持つことができないため、一般的なファイルシステムでも同名ファイルを同時に保持することは不可能と言える。
【０００８】
また、この問題を解決する技術として、特開平８−３３９３２１で提案されている技術がある。この技術は、ファイルをファイル名ではなく、管理ＩＤで管理する。また、ユーザ名、ファイル名、バージョン番号等から管理ＩＤを対応させる表を作成し、ファイルを呼び出す時はこれらの情報を示すことで望むファイルを得ることができる。この方法により、ファイル名が同一でもユーザ名、バージョン番号等が異なれば別々に保持することが可能になる。
【０００９】
この技術の実施形態は、図１４に示すように、管理サーバ1010と、記憶装置1020と、ファイル要求入力装置1001と、ファイル入力装置1002と、ファイル出力装置1003とからなる。記憶装置1020は、ファイルを記憶しておくファイルＤＢ1022とファイル管理情報を保持しておく管理ＤＢ1021とからなる。ファイルはそれぞれ異なる管理ＩＤを持ちファイルＤＢ1022に記憶されている。管理ＤＢ1021には、図１５に示すように、タイプ、ユーザ名、ファイル名、バージョン等の値と管理ＩＤの対応関係が記録されている。
【００１０】
ファイルの要求者は、これらの条件、つまりタイプ、ユーザ名、ファイル名、バージョンをファイル要求入力装置1001に入力する。管理ＤＢ検索部1011は管理ＤＢ1021を検索し、要求された条件に対応する管理ＩＤを求める。ファイル検索部1013は得られた管理ＩＤに対応するファイルをファイルＤＢ1022より求める。ファイル出力装置1003は得られたファイルをファイルの要求者に対して送る。
【００１１】
ファイルの登録時は、まず、登録者がファイル入力装置1002に登録するファイルを入力する。ファイル検索部1013は他のファイルによって利用されていない管理ＩＤを作成し、登録するファイルのタイプ、ユーザ名、ファイル名、バージョンと作成した管理ＩＤが対応する。ファイル登録削除部1014はファイルをファイルＤＢ1022に登録する。管理ＤＢ変更部1012はファイルのタイプ、ユーザ名、ファイル名、バージョンと管理ＩＤの対応を管理ＤＢ1021に登録する。
【００１２】
このようなファイル管理システムをコンピュータプログラムを構成するファイルを保持するのに用いることができる。コンピュータプログラムを構成するファイルを集中的に管理し、複数のコンピュータプログラムの実行者によって共有することにより、コンピュータプログラムのバージョン等の管理を容易にする。また、必要なときのみファイルをコンピュータプログラムを実行する装置に送ることによって、コンピュータプログラムの実行装置におけるリソースの節約等が可能になる。
【００１３】
一般的に、コンピュータプログラムは複数のファイルからなっており、各ファイルはそれぞれ異なる機能を提供する。異なるコンピュータプログラムを構成するファイルの中にはファイル名は等しいが、内容の異なるファイルが存在する可能性がある。一般的なファイル管理システムを用いる時、このような可能性がある場合は、コンピュータプログラム毎、もしくはユーザ毎に異なるディレクトリを与えることによって、それぞれのファイル名の等しいファイルを同時に保持することが可能にする。また、特開平８−３３９３２１の技術を用いることによって、ユーザ、コンピュータプログラム、バージョン等が異なる同名ファイルを別のファイルとして扱うことが可能になるので、同名ファイルがある場合でも問題なく動作する。
【００１４】
さらに、既存の技術として特許第２８６４９３２号がある。
【００１５】
この技術は、ファイル登録時に登録するファイルが新たに作成されたのものである場合、もしくは、編集されたものである場合には、新たな識別番号を自動的にファイルに付与し、ファイルの呼び出し時にも呼び出し側に等しい識別番号を持つファイルが存在する場合は呼び出しを中止する制御を行うものである。
【００１６】
この技術では、ファイル名及び識別番号によってファイルを区別しているが、同一内容のファイルは同一の識別番号を保持していることを前提にしている。
【００１７】
この技術によって、同一内容の複数のファイルを記憶することや、呼び出すことを防ぐとともに、異なる内容でファイルを区別することが可能になる。新たにファイルを作成した場合、ファイルに変更を加えた場合は新たな識別番号が与えられる。
【００１８】
【発明が解決しようとする課題】
例えば、コンピュータプログラムのファイルの場合、図２に示すような構成をとることがある。図２の例の場合、コンピュータプログラムＡ0210は登録者Ａが登録しコンピュータプログラムＢ0211は登録者Ｂが登録した異なるコンピュータプログラムである。同名であるが内容の異なるfileA0212とfileA0214はそれぞれ別のファイルとして保持する必要がある。一方、共に共通して用いるファイルであるfileB0213はコンピュータプログラムＡ0210とコンピュータプログラムＢ0211 でそれぞれに保持するのではなく、同一のファイルとして共有のファイルを１つ保持することが必要である。
【００１９】
しかしながら、上述の従来の技術では、以下の問題点がある。
【００２０】
すなわち、複数の異なる利用者によって共有されるファイル記憶装置において、同一のファイル名を持つが内容の異なるファイルを別のファイルとして管理するとともに複数の登録者によって登録されたファイルの中に内容の等しいファイルがあれば別のファイルとして扱わない（単一のファイルとして扱う）ことが不可能だということである。
【００２１】
特開平８−３３９３２１の技術では、ファイル名およびそのバージョンをユニークな管理ＩＤに基づいて管理することにより、登録する際のファイル名が既に登録されているファイル名と同一の場合でも、そのファイルの登録が可能であり、同名のファイルについては別のファイルとして保持することができる。しかし、管理ＩＤ毎にファイルを管理するので、ファイル名が等しく内容も等しいファイルであっても別のファイルとして管理されて同じ内容のファイルが複数個登録されてしまい、複数の利用者で共通するプログラムファイル等について単一のファイルとして扱うことが不可能であるという問題点がある
また、特許第２８６４９３２号の技術では、ファイル毎に異なる識別番号を付与してファイルを管理するが、同一識別番号のものは登録できない或いは識別子が異なれば同一内容の複数のファイルを単一のファイルとして管理できないという問題点がある。
【００２２】
本発明の目的は、上記の問題点を解決し、同名のファイルであるが内容の異なるファイルの管理を可能にするとともに内容の等しいファイルが複数の登録者によって登録された場合それらのファイルを単一のファイルとして管理するファイル管理システムおよび方法を提供することにある。
【００２４】
【課題を解決するための手段】
本願第１の発明のファイル管理システムは、ファイルを管理するファイル管理システムであって、登録するファイルと登録するファイル名と登録するファイル識別子とを入力してデータ処理装置に送出するファイル入力装置と、ファイル取り出しを要求するファイルのファイル名とファイル識別子を入力してデータ処理装置に送出するファイル要求入力装置と、ファイル名とファイル識別子と個々のファイルを一意に特定する管理ＩＤとの対応関係を記録した対応表および管理ＩＤとファイルとを記録したファイル記憶部を含むファイル記憶装置と、前記ファイル要求入力装置に入力されたファイル名とファイル識別子とを受け取り前記対応表を検索し、対応する管理ＩＤの有無の判断をし、あるならその管理ＩＤを検索する対応表検索手段，前記対応表検索手段により検索された管理ＩＤでファイル記憶部に登録されているファイルを検索し、検索したファイルをファイル出力装置に送出し、また、新規管理ＩＤ取得要求にたいして登録するファイルのために既に登録されているファイルの管理ＩＤと重複しない新たな管理ＩＤを生成するファイル検索手段，前記ファイル入力装置に入力されたファイルを受け取り、登録するファイルの内容と前記ファイル記憶部に登録されているファイルの内容とを比較し、同一内容のファイルの有無を判断し、同一内容のファイルがあるならば、その管理ＩＤを出力するファイル内容比較手段，前記ファイル入力装置に入力されたファイルとそのファイル名とファイル識別子とを受け取り、前記ファイル内容比較手段により登録するファイルの内容と内容の等しいファイルが前記ファイル記憶部に登録されていると判断された場合に、前記ファイル入力装置に入力された前記登録するファイル名と前記登録するファイル識別子と前記ファイル内容比較手段により出力された前記内容の等しいファイルの管理ＩＤとを前記対応表に登録し、前記ファイル内容比較手段により同一内容のファイルが登録されていないと判断された場合に、前記登録するファイル名と前記登録するファイル識別子と前記ファイル検索手段により生成された新たな管理ＩＤとを前記対応表に登録する対応表変更手段，前記登録するファイルと内容の等しいファイルが前記ファイル記憶部に登録されていない場合に、ファイル検索手段が作成した新たな管理ＩＤと前記登録するファイルとを前記ファイル記憶部に登録するファイル登録削除手段，を含むデータ処理装置と、前記ファイル要求入力装置が要求したファイル名およびファイル識別子に対応するファイルを前記データ処理装置から渡され前記ファイル要求入力装置に送出するファイル出力装置と、を備えて成ることを特徴とする。
【００２５】
本願第２の発明のファイル管理システムは、ファイルを管理するファイル管理システムであって、登録するファイルと登録するファイル名と登録するファイル識別子とを入力してデータ処理装置に送出するファイル入力装置と、ファイル取り出しを要求するファイルのファイル名とファイル識別子を入力してデータ処理装置に送出するファイル要求入力装置と、ファイル名とファイル識別子と個々のファイルを一意に特定する管理ＩＤとの対応関係を記録した対応表および管理ＩＤとファイルとを記録したファイル記憶部を含むファイル記憶装置と、前記ファイル要求入力装置に入力されたファイル名とファイル識別子とを受け取り前記対応表を検索し、対応する管理ＩＤの有無の判断をし、あるならその管理ＩＤを検索する対応表検索手段，前記対応表検索手段により検索された管理ＩＤでファイル記憶部に登録されているファイルを検索し、検索したファイルをファイル出力装置に送出し、また、新規管理ＩＤ取得要求にたいして既に登録されているファイルの管理ＩＤと重複しない新たな管理ＩＤを生成するファイル検索手段，前記ファイル入力装置に入力されたファイルを受け取り、登録するファイルの内容と前記ファイル記憶部に登録されているファイルの内容とを比較し、同一内容のファイルの有無を判断し、同一内容のファイルがあるならば、その管理ＩＤを出力するファイル内容比較手段，前記ファイル入力装置に入力されたファイルとそのファイル名とファイル識別子とを受け取り、前記ファイル入力装置に入力された前記登録するファイル名と前記登録するファイル識別子と前記ファイル検索手段により生成された新たな管理ＩＤとを前記対応表に登録し、その後、前記ファイル内容比較手段が同一内容のファイルがあると判断した場合、前記登録されたファイル名とファイル識別子と前記新たな管理ＩＤとを対応表から削除し、前記登録されたファイル名とファイル識別子と前記ファイル内容比較手段が出力する前記同一内容のファイルの管理ＩＤとを前記対応表に登録する対応表変更手段，前記ファイル入力装置に対してファイルとファイル名とファイル識別子が入力されたときに、前記ファイル検索手段が作成した新たな管理ＩＤと前記登録するファイルとをファイル記憶部に登録し、前記ファイル内容比較手段が同一内容のファイルがあると判断した時、前記新たな管理ＩＤとそれに対応する前記新たに登録されたファイルとを削除するファイル登録削除手段，を含むデータ処理装置と、前記ファイル要求入力装置が要求したファイル名およびファイル識別子に対応するファイルを前記データ処理装置から渡され前記ファイル要求入力装置に送出するファイル出力装置と、を備えて成ることを特徴とする。
【００２６】
本願第３の発明のファイル管理システムは、第１または第２の発明において前記ファイル記憶装置に、ファイルのハッシュ値と管理ＩＤとの対応関係を記録したハッシュ表を含み、前記データ処理装置に、前記登録するファイルのハッシュ値で前記ハッシュ表を検索するハッシュ表検索手段，および内容の等しいファイルが前記ファイル記憶部に登録されていない場合に前記登録するファイルのハッシュ値と前記新たな管理ＩＤとを前記ハッシュ表に登録するハッシュ表変更手段を含み、前記ファイル内容比較手段は，前記ハッシュ表検索手段で検索した結果一致したものの管理ＩＤに対応するファイルについて登録するファイルとファイルの内容を比較する、ことを特徴とする。
【００２７】
本願第４の発明のファイル管理システムは、第３の発明において前記ハッシュ表は、ファイル名毎に存在し、前記対応表検索手段は、登録するファイルのファイル名と同名のファイルが存在するか否か前記対応表を検索して調べ、前記ハッシュ表検索手段は、同名のファイルが前記対応表に登録されていない場合は前記ハッシュ表の検索結果は存在しなかったとし、同名のファイルが前記対応表に登録されていれる場合は前記ファイル名に対応する前記ハッシュ表を前記登録するファイルのハッシュ値をキーとして検索する、ことを特徴とする。
【００２８】
本願第５の発明のファイル管理システムは、第３の発明において前記ハッシュ表は、全てのファイル名に対して１つ存在する、ことを特徴とする。
【００３０】
本願第６の発明のファイル管理方法は、ファイル入力装置とデータ処理装置と記憶装置とを備え前記記憶装置に対応表とハッシュ表とファイル記憶部とを含むファイル管理システムにおいてファイルを管理するファイル管理方法であって、前記ファイル入力装置は入力された登録するファイルとファイル名とファイル識別子とを前記データ処理装置に送出し、前記データ処理装置のハッシュ表検索手段は登録するファイルのハッシュ値をキーにしてファイルのハッシュ値と個々のファイルを一意に特定する管理ＩＤとの対応関係を記録した前記ハッシュ表を検索し、前記ハッシュ表を検索した結果管理ＩＤが得られた場合には、前記データ処理装置のファイル内容比較手段はその管理ＩＤに対応するファイルを前記ファイル記憶部から検索して取り出し登録するファイルとファイルの内容を比較し、前記取り出したファイルの内容が登録するファイルの内容と等しい場合には、前記データ処理装置の対応表変更手段は登録するファイル名と登録するファイル識別子と前記取り出したファイルの管理ＩＤとを前記対応表に登録し、前記ハッシュ表検索手段は前記ハッシュ表を検索し、前記ハッシュ表の検索で一致しない場合あるいは前記ハッシュ表の検索で一致したが内容の等しいファイルが存在しない場合には、前記データ処理装置のファイル検索手段は既に登録されているファイルの管理ＩＤと重複しない新たな管理ＩＤを生成し、前記データ処理装置のファイル登録削除手段は前記新たな管理ＩＤと登録するファイルとを前記ファイル記憶部に登録し、前記データ処理装置のハッシュ表変更手段は登録するファイルのハッシュ値をキーにして前記新たな管理ＩＤを前記ハッシュ表に登録し、前記対応表変更手段は登録するファイル名と登録するファイル識別子と前記新たな管理ＩＤとを前記対応表に登録する、ことを特徴とする。
【００３１】
本願第７の発明のファイル管理方法は、ファイル入力装置とデータ処理装置と記憶装置とを備え前記記憶装置に対応表とハッシュ表とファイル記憶部とを含むファイル管理システムにおいてファイルを管理するファイル管理方法であって、前記ファイル入力装置は入力された登録するファイルとファイル名とファイル識別子とを前記データ処理装置に送出し、前記データ処理装置のファイル検索手段は既に登録されているファイルの管理ＩＤと重複しない新たな管理ＩＤを生成し、前記データ処理装置のファイル登録削除手段は前記新たな管理ＩＤと登録するファイルとを前記ファイル記憶部に登録し、前記データ処理装置の対応表変更手段は登録するファイル名と登録するファイル識別子と前記新たな管理ＩＤとを前記対応表に登録し、前記データ処理装置のハッシュ表検索手段は登録するファイルのハッシュ値をキーにしてファイルのハッシュ値と個々のファイルを一意に特定する管理ＩＤとの対応関係を記録した前記ハッシュ表を検索し、前記ハッシュ表を検索した結果管理ＩＤが得られた場合には、前記データ処理装置のファイル内容比較手段はその管理ＩＤに対応するファイルを前記ファイル記憶部から検索して取り出し登録するファイルとファイルの内容を比較し、前記取り出したファイルの内容が登録するファイルの内容と等しい場合には、前記対応表変更手段は前記対応表に登録した前記新たな管理ＩＤを前記取り出したファイルの管理ＩＤに変更し、前記ファイル登録削除手段は前記ファイル記憶部に登録した前記新たな管理ＩＤと登録するファイルとをファイル記憶部から削除し、前記ハッシュ表検索手段は前記ハッシュ表を検索し、前記ハッシュ表の検索で一致しない場合あるいは前記ハッシュ表の検索で一致したが内容の等しいファイルが存在しない場合には、前記データ処理装置のハッシュ表変更手段は登録するファイルのハッシュ値をキーにして前記新たな管理ＩＤを前記ハッシュ表に登録する、ことを特徴とする。
【００３２】
本願第８の発明のファイル管理方法は、第６または第７の発明において前記ハッシュ表は、ファイル名毎に存在し、前記データ処理装置の対応表検索手段は登録するファイルのファイル名と同名のファイルが存在するか否か前記対応表を検索して調べ、前記ハッシュ表検索手段は同名のファイルが前記対応表に登録されていなければ検索結果は存在しなかったとし、同名のファイルが前記対応表に登録されていれば前記ファイル名に対応する前記ハッシュ表を前記登録するファイルのハッシュ値をキーとして検索する、ことを特徴とする。
【００３３】
本願第９の発明のファイル管理方法は、第６または第７の発明において前記ハッシュ表は、全てのファイル名に対して１つ存在する、ことを特徴とする。
【００３５】
【発明の実施の形態】
本発明のファイル管理システム第１の実施の形態について、図面を用いて説明する。
【００３６】
図１は、本発明の第１の実施の形態のブロック図である。
【００３７】
図３は、対応表の例を示す図である。
【００３８】
図４は、ハッシュ表の例を示す図である。
【００３９】
図８は、ファイル記憶部の例を示す図である。
【００４０】
本発明の第１の実施の形態は、図１に示すように、ファイル要求入力装置0101とファイル入力装置0102という２種類の入力装置、これらの入力を処理するデータ処理装置0110、ファイルやファイルの情報を保持するための表を保持するための記憶装置0120、さらにファイル要求に答えてファイルを送り出すためのファイル出力装置0103を持つ。
【００４１】
一般的な形態として、ファイル要求入力装置0101、ファイル入力装置0102、ファイル出力装置0103、データ処理装置0110は通信機能を備えてネットワークで接続され、ファイルの登録者やファイルの要求者はネットワークを介して本発明のファイル管理システムに対する入力、出力を行なう。
【００４２】
ファイル要求入力装置0101は、ファイルの要求者が使用する装置である。ファイル要求者は、データ処理装置0110に要求するファイルのファイル名と要求者に与えられたファイル識別子をファイル要求入力装置0101に入力する。
【００４３】
ファイル入力装置0102は、登録するファイルと登録するファイルのファイル名と登録するファイルに対応づけされるファイル識別子とをファイルの登録者が入力する装置である。入力されたファイルとファイル名とファイル識別子とはデータ処理装置0110に送出される。
【００４４】
ファイル出力装置0103は、要求に従ったファイルを要求者に対して出力する。
【００４５】
データ処理装置0110は、対応表0121に対する対応表検索部0111と対応表変更部0112，ハッシュ表0122に対するハッシュ表検索部0113とハッシュ表変更部0114，並びにファイル記憶部0123に対するファイル検索部0115とファイル登録削除部0116とファイル内容比較部0117からなる。
【００４６】
記憶装置0120は、対応表0121とハッシュ表0122とファイル記憶部0123とからなる。
【００４７】
対応表0121は、ファイル名とファイル識別子とそれに対応するファイルの管理ＩＤとを記録した表である。図３に示した例では、ファイル名が”fileA”であるファイルは３個登録されている。それぞれ”usr001.prog01”、”usr001.prog02”、”usr002.prog01”というファイル識別子で登録されており、それぞれ”A-1”、”A-2”、”A-1”という管理ＩＤと対応している。ここで、ファイル識別子が”usr001.prog01”であるファイルと”usr001.prog02”であるファイルは管理ＩＤが異なるので、ファイル名は等しいが内容が異なるファイルであると認識される。また、ファイル識別子が”usr001.prog01”であるファイルと”usr002.prog01”であるファイルの管理ＩＤは等しいので、これらのファイルは内容が等しいとみなし単一のファイルとして扱われる。
【００４８】
対応表検索部0111は、ファイル名及びファイル識別子から、それらに対応する管理ＩＤを対応表0121から求める機能を提供する。また、ファイル名のみを指定して検索することもできる。
【００４９】
対応表変更部0112は、新たなファイル名，ファイル識別子および管理ＩＤの対応関係を対応表0121に登録する、もしくは既に登録されている対応関係を変更または削除する機能を提供する。
【００５０】
ハッシュ表0122は、各ファイル名毎に存在し、ファイル自身（ファイル実体）のバイト配列からある長さの数値（ハッシュ値）を計算し、この値（ハッシュ値）をキー値とし、そのキー値とそのファイルに対応する管理ＩＤを記録した表である。
【００５１】
ハッシュ表の具体的な例を図４に示す。図４（ａ）を参照すると、ファイル名が”fileA” であるファイルに関して、ファイル0401と、ファイル0402と、ファイル0403と３つのファイルが登録されている。ファイル0401はFuncＡの内容を、ファイル0402はFuncＢの内容を、ファイル0403はFuncＣの内容を持ち、それぞれ中身が異なっている。ファイルの内容が異なるので、それぞれは異なる管理ＩＤを持っている。これらのファイルからファイル名がfileA のハッシュ表0122を作成すると、図４（ｂ）のようになる。図４（ｂ）の例では、ファイル0402とファイル0403から求めたハッシュ表0122のキー値が同じ値になっている。この場合、ハッシュ表検索部0113により、ファイル0402あるいはファイル0403どちらのファイルのハッシュ値でハッシュ表0122を検索しても”A-2”と”A-3”の両方の管理ＩＤが得られる。このように、ハッシュ表0122を検索して得られた管理ＩＤを持つファイルは、検索に用いたファイルとまったく同じものであるとは限らない。しかし、内容の同じファイルから計算されるキー値（ハッシュ値）は必ず同じであるので、既に登録されているファイルの中に内容の同じファイルがあるのならば、ハッシュ表0122を検索した結果得られる管理ＩＤを持つファイルの中に必ず内容の同じファイルがあると言える。つまり、ハッシュ表0122をファイルのハッシュ値で引くと、そのファイルと内容の等しい可能性のあるファイルが得られる。ハッシュ表0122を用いることによって、すべての同名ファイルとの内容比較を行なう必要がなくなるので、ファイルの内容比較に必要となる時間を大幅に短縮できる。
【００５２】
ハッシュ表検索部0113は、ファイルから計算したハッシュ値をキー値としてハッシュ表0122を検索しキー値に対応する管理ＩＤを得る機能を提供する。
【００５３】
ハッシュ表変更部0114は、ファイルと管理ＩＤを与えられると、ファイルからハッシュ表のキー値（ハッシュ値）を計算しそのキー値と与えられた管理ＩＤの対応関係をハッシュ表0122に登録する。また、与えられた管理ＩＤをハッシュ表から削除する機能も提供する。
【００５４】
ファイル記憶部0123は、ファイル自身（ファイル実体）を管理ＩＤを用いて記憶する機能を提供する。
【００５５】
ファイル検索部0115は、ファイル記憶部0123を検索して、与えられた管理ＩＤに対応するファイルを検索する機能を提供する。また、登録されるファイルのために、新たな管理ＩＤを作成する機能も提供する。さらに、検索したファイルをファイル出力装置0103に送出する機能も提供する。
【００５６】
ファイル登録削除部0116は、ファイルと管理ＩＤが与えられると、そのファイルを与えられた管理ＩＤでファイル記憶部0123に登録する、もしくは与えられた管理ＩＤで登録されてるファイルをファイル記憶部0123から削除する機能を提供する。ファイル記憶部0123の例を図８に示す。
【００５７】
ファイル内容比較部0117は、登録するファイルの内容とファイル記憶部0123に登録されているファイルの内容とを比較する。
【００５８】
本実施の形態のファイル管理システムは、ファイルを管理ＩＤ及びファイル識別子により管理する。
【００５９】
管理ＩＤとは、ファイル記憶部0123に保存されたファイルを特定するためのＩＤ（識別子）である。ここでは、各ファイルに与える管理ＩＤを特定しないが、例えば”ファイル名＋通し番号”のようにして、ファイル記憶部0123に保持されているすべてのファイルそれぞれに異なる管理ＩＤを与える。
【００６０】
ファイル識別子は、ファイルの登録者や要求者等を識別するための値である。ファイル識別子が異なれば、ファイル名が等しくても内容が異なれば別のファイルとして扱うことができる。ファイル識別子は異なる登録者間で必ず異なるものになる必要がある。さらに、ひとつの登録者であっても、例えば複数のコンピュータプログラムを構成するファイルを登録する場合、ファイル識別子を異なるものにすることで、そのコンピュータプログラムが同名で内容の異なるファイルを持っていても別のファイルとして扱うことが可能になる。そこで、ひとつの登録者が複数のファイル識別子を持つことが可能である必要がある。ここでファイル識別子を具体的には定めないが、例としては登録者＠コンピュータプログラムのような形が考えられる。このようにする意味は、登録者をあらわす部分はあらかじめ登録者間で一意になるよう定め、コンピュータプログラムの部分に関しては登録者が自由に扱えるということである。また、自動的に利用されていない新たな識別子を割り当てる装置を利用することで利用者間、コンピュータプログラム間で異なる識別子を利用することが可能である。
【００６１】
本発明の第１の実施の形態の動作について、図面を参照して説明する。
【００６２】
最初に、図１および図５を用いて、新たにファイルを登録する場合の動作について説明する。
【００６３】
図５は、ファイル登録時の動作を示すフローチャート図である。
【００６４】
図５を参照すると、まず、ファイルの登録者によって、ファイル及びそのファイルを呼び出す時に用いるファイル識別子がファイル入力装置0102に入力される(ステップ0501)。
【００６５】
この新しく登録するファイルのファイル名を対応表検索部0111を用いて対応表0121から検索する(ステップ0502)。これにより、既に同名のファイルが存在しているか調べることができる。
【００６６】
もし、同名ファイルが既に登録されているならば(ステップ0503)、そのファイルと新たに登録するファイルの内容が等しいか異なるかを調べる。
【００６７】
ハッシュ表検索部0113は新たに登録するファイル名に対応するハッシュ表0122をファイルのハッシュ値を用いて検索する(ステップ0504)。検索した結果、一致したキー値が得られなければ、新たに登録するファイルと内容の等しい同名のファイルは存在しないということである。
【００６８】
もし、検索した結果、一致したキー値が得られれば(ステップ0505)、そのキー値に対応する管理ＩＤのファイルは新たに登録するファイルと内容の等しいファイルである可能性があるため、次にファイルの内容を比較する。ファイル検索部0115は、ステップ0504にて検索された一致したキー値に対応する管理ＩＤを持つファイルをファイル記憶部0123から検索し取り出す。ファイル内容比較部0117は、取り出されたファイル全てと新たに登録するファイルを比較する(ステップ506)。
【００６９】
もし、内容の等しいファイルがあるならば(ステップ0507)、そのファイルと新しく登録するファイルを単一のファイルとして扱うために、新たに登録するファイルを記憶装置0120に登録する事はせず、与えられたファイル識別子に対応するファイルはステップ0506で得られたファイル (つまり、新たに登録するファイルと内容の等しい既に登録されているファイル) とする。そして、与えられたファイル識別子に対応する管理ＩＤは既に登録されている内容の等しいファイルの管理ＩＤとする(ステップ0511)。
【００７０】
ステップ0503で同名のファイルが無かった場合，ステップ0505で一致しなかった場合，或いはステップ0507で内容の等しいファイルが存在しなかった場合には、新たに登録するファイルをファイル記憶部0123に新たなファイルとして登録する必要がある。まず、ファイル検索部0115がファイル記憶部0123を調べ、他のファイルに使われていない新たな管理ＩＤを得る。その新たな管理ＩＤを新たに登録するファイルの管理ＩＤとし、また与えられたファイル識別子に対応する管理ＩＤとする(ステップ0508)。
【００７１】
ファイル登録削除部0116は、この管理ＩＤで新たに登録するファイルをファイル記憶部0123に登録する(ステップ0509)。
【００７２】
また、ハッシュ表変更部0114は、新たに登録するファイルのハッシュ値をキーにして管理ＩＤをハッシュ表0122に登録する(ステップ0510)。
【００７３】
ステップ0511，或いはステップ0510の後、対応表変更部0112は、登録するファイル識別子とそれぞれステップ0511，或いは0508で関連付けられた管理ＩＤとの対応を対応表0121に登録する(ステップ0512)。
【００７４】
続いて、図１および図６を用いて、ファイルを要求する場合の動作について説明する。
【００７５】
図６は、ファイル要求時の動作を示すフローチャート図である。
【００７６】
図６を参照すると、まず、ファイルの要求者から要求するファイル名及び要求者に割り当てられたファイル識別子をファイル要求入力装置0101に入力する (ステップ0601)。
【００７７】
対応表検索部0111は、対応表0121から入力されたファイル名およびファイル識別子に対応する管理ＩＤを検索する(ステップ0602)。
【００７８】
もし、対応する管理ＩＤが得られなかった場合は、ファイルが登録されていないことを示すエラーを、ファイルの代わりにファイル出力装置0103に出力する (ステップ0604)。
【００７９】
対応する管理ＩＤが得られた場合は、ファイル検索部0115が得られた管理ＩＤに対応するファイルをファイル記憶部0123から取り出す(ステップ0605)。
【００８０】
得られたファイルを入力されたファイル名を持つファイルとしてファイル出力装置0103に出力する(ステップ0606)。ファイル出力装置0103はファイルの要求者の元にファイルを送り出す。
【００８１】
利用の形態の例として、要求者はファイル識別子をひとつだけ与えられるというものがあげられる。登録者はひとつの要求者が利用するファイル全てを同じファイル識別子で登録する。例えば、コンピュータプログラムを構成するファイルを登録する場合はひとつのコンピュータプログラムを構成する全てのファイルをひとつのファイル識別子で登録する。これにより、このコンピュータプログラムを実行する者つまりコンピュータプログラムのファイルの要求者は、このひとつのファイル識別子をファイル要求のたびに示すことでコンピュータプログラムを構成するファイル全てを得ることができる。
【００８２】
次に、具体的な例を用いて、第１の実施の形態のデータ処理装置0110と記憶装置0120の動作を、より詳細に説明する。
【００８３】
最初に、図５および図９を参照して、ファイル登録時の動作を説明する。
【００８４】
図９は、ファイル登録時の動作の具体例を説明する図である。
【００８５】
この例においては、図２におけるコンピュータプログラムＡ0210を構成するファイルfileA0212、fileB0213、fileC0215がファイル識別子”usr001.prog01”で既に登録されているものとする。このときの対応表，ハッシュ表，及びファイル記憶部の状態を図９（ｂ）に示す。
【００８６】
ここで、図２に示すコンピュータプログラムＢ0211を構成するファイルfileA0214、fileB0213、fileD0216をファイル識別子”usr002.prog01”で登録する（図９（ａ）参照）。
【００８７】
まず、ファイル入力装置0102に登録するファイルであるfileA0214、fileB0213、fileD0216とファイル識別子”usr002.prog01”を入力する(ステップ0501)。
【００８８】
対応表検索部0111はそれぞれfileA0214、fileB0213、fileD0216 と同名のファイルが既に登録されているか調べる(ステップ0502)。この場合、fileD0216 については同名ファイルはない。同名ファイルが既に登録されているfileA0214、fileB0213については、その同名ファイルの中に内容の等しいファイルが存在するかを調べる。
【００８９】
ハッシュ表検索部0113はファイルfileA0214、fileB0213のハッシュ値をキーにしてハッシュ表を検索する(ステップ0504)。
【００９０】
fileA0214は内容の等しいファイルは検索されないが、fileB0213については管理ＩＤ”fileB-1”のファイルが検索される(ステップ0505)。
【００９１】
ハッシュ表で検索されただけでは、本当に内容が等しいのか、ファイルから計算されるハッシュ表のキー値が偶然等しいものになったのか区別がつかない。そこで、ファイル検索部0115は管理ＩＤ”fileB-1” をもつファイルをファイル記憶部0123から取り出す。ファイル内容比較部0117はこの取り出されたファイルと登録されるファイルfileB0213との内容を比較する(ステップ0506)。
【００９２】
ここでは、この２つのファイルは内容の等しいファイルである。従って、ファイル名”fileB”、且つファイル識別子”usr002.prog01”のファイルは管理ＩＤが”fileB-1”となる(ステップ0511)。
【００９３】
内容の等しいファイルの登録されていないfileA0214とfileD0216についてはファイルを新たに登録する必要がある。
【００９４】
まず、ファイル検索部0115が他のファイルが用いていない新たな管理ＩＤを作成する(ステップ0508)。ここでは、fileA0214には”fileA-2”、fileD0216 には”fileD-1”が割り当てられる。
【００９５】
次に、ファイル登録削除部0116がファイルfileA0214、fileD0216をファイル記憶部にそれぞれ管理ＩＤ”fileA-2”、”fileD-1”で登録する(ステップ0509)。結果として、ファイル記憶部には1207、1208の列が加わることになる。
【００９６】
次に、ハッシュ表変更部0114がハッシュ表にファイルfileA0214、fileD0216と管理ＩＤ”fileA-2”、”fileD-1”との対応を登録する(ステップ0510)。結果として、ハッシュ表には1209、1210の列が加わる。
【００９７】
最後に、対応表変更部0112はファイルfileA0214、fileB0213、fileD0216 に与えられた管理ＩＤと、登録時に与えられたファイル識別子”usr002.prog01” との対応を対応表に登録する(ステップ0512)。結果として、対応表には1211、1212、1213の列が加わることになる。
【００９８】
最終的に登録が終了した時の対応表，ハッシュ表およびファイル記憶部の状態は、図９（ｃ）に示すとおりである。
【００９９】
続いて 、図６および図９を参照して、ファイル要求時の動作を説明する。
【０１００】
ファイル要求時は、ファイル名とファイル識別子をファイル要求入力装置0101に入力する(ステップ0601)。
【０１０１】
例えば、図９の結果を例にすると、ファイル名”fileA”、ファイル識別子”usr001.prog01”でファイルを要求すると、対応表検索部0111は対応表1204を検索し(ステップ0602)、対応する管理ＩＤ”fileA-1”を返す。
【０１０２】
ファイル検索部0115は管理ＩＤ”fileA-1”をファイル記憶部1206から検索し(ステップ0605)、得られたファイルfileA0212をファイル出力装置0103から出力する(ステップ0606)。
【０１０３】
次に、本発明の第２の実施の形態について説明する。
【０１０４】
ファイルの内容を比較する処理は比較的時間がかかることが予想される。そこで新たに登録したファイルと内容が等しいファイルの有無を調査している間にでも、その登録中のファイルの要求があった場合、すぐにファイルを送り出すことができるシステムであることが望ましい。
【０１０５】
第２の実施の形態は、新たに登録したファイルと内容が等しいファイルの有無を調査している間にでも、その登録中のファイルの要求があった場合、すぐにファイルを送り出すことが可能な点で、第１の実施の形態と異なる。
【０１０６】
第２の実施の形態における新たにファイルを登録する場合の動作について、図１および図７を用いて、説明する。
【０１０７】
図７は、第２の実施の形態におけるファイル登録時の動作を示すフローチャート図である。
【０１０８】
図７を参照すると、ステップ0701は、図５のステップ0501と等しい。
【０１０９】
ファイル検索部0115がファイル記憶部0123を調べ、他のファイルの使用していない新たな管理ＩＤを得る。この新たな管理ＩＤを登録するファイルの管理ＩＤとし、また登録するファイル識別子に対応する管理ＩＤとする(ステップ0702)。
【０１１０】
ファイル登録削除部0116は、この管理ＩＤで登録するファイルをファイル記憶部0123に登録する(ステップ0703)。
【０１１１】
対応表変更部0112は、登録するファイル識別子とこの管理ＩＤとの対応を対応表0121に登録する(ステップ0704)。つまり、図５のステップ0508、0509、0512と等しい操作を行なう。
【０１１２】
この時点で、登録するファイルの要求が起きた場合、このファイルを送り出すことが可能になる。
【０１１３】
次に、登録するファイルと内容の等しいファイルの有無を調べ、あるならば共有する操作を行なう。すなわち、ステップ0705からステップ0710までの操作は図５のステップ0502からステップ0507までと等しい。ただし、ステップ0706において同名ファイルが無かった場合，ステップ0708においてハッシュ表参照の結果ファイルが得られなかった場合，或いはステップ0710において内容の等しいファイルが存在しなかった場合、図５のステップ0510と同様の操作を行ないファイルのハッシュ値をキーにハッシュ表にステップ0702で得た管理ＩＤを登録しファイルの登録を完了する(ステップ0711)。
【０１１４】
ステップ0710にて内容の等しいファイルが存在した場合は、図５のステップ0511〜ステップ0512と同様の操作を行ない、与えられたファイル識別子に対応する管理ＩＤは既に登録されている内容の等しいファイルの管理ＩＤとし(ステップ0712)、ステップ0704で登録した管理ＩＤを既に登録されている内容の等しいファイルの管理ＩＤで変更する(ステップ0713)。
【０１１５】
この後、ファイル登録削除部0116はステップ0703でファイル記憶部0123に登録したファイル及び管理ＩＤを削除する(ステップ0714)。
【０１１６】
次に、図７および図１０を用いて、第２の実施の形態の具体例をより詳細に説明する。登録前の記憶装置0120の状態を図９（ｂ）に示し、新たに登録するファイルとして、第１の実施例の具体例の説明で用いた図９の例（図９（ａ））を使用する。
【０１１７】
図１０は、ファイル登録時の動作の具体例を説明する図である。
【０１１８】
ファイルが入力されたら、まず、新たな管理ＩＤを得てファイルを登録する。ここでは、それぞれ管理ＩＤとしてfileA0214には”fileA-2”、fileB0213 には”fileB-2”、fileD0216には”fileD-1”を与える(ステップ0702)。
【０１１９】
ファイル登録削除部0116はそれぞれのファイルをここで得た管理ＩＤでファイル記憶部に登録する(ステップ0703)。結果として、ファイル記憶部に1301、1302、1303の列が加わる（図１０（ｃ）参照）。
【０１２０】
次に、対応表変更部0112はファイル名”fileA”、”fileB”、”fileD” とファイル識別子”usr002.prog01”の組み合わせと管理ＩＤ”fileA-2”、”fileB-2”、”fileD-1”の対応を対応表に登録する(ステップ0704)。結果として、対応表に1304、1305、1306の列が加わる（図１０（ａ）参照）。
【０１２１】
ここからは、第１の実施の形態と同じように処理を進める。ただし、同名ファイルのないfileD0216 および登録されているファイルの中に同じ内容のファイルがないfileA0214 に関しては、既にステップ0702〜ステップ0704で対応表およびファイル記憶部に登録した内容を書きかえる必要がないので、ハッシュ表変更部0114がハッシュ表にファイルfileA0214のハッシュ値と管理ＩＤ”fileA-2”の対応ならびにファイルfileD0216のハッシュ値と管理ＩＤ”filed-1”の対応を登録する(ステップ0711)。結果として、ハッシュ表に1307、1308の列が新たに加わる（図１０（ｂ）参照）。
【０１２２】
ステップ0710にて内容の等しいファイルfileB（管理ＩＤ”fileB-1”）が存在するfileB0213 については、既に登録されている内容の等しいファイルの管理ＩＤを与えられたファイル識別子に対応する管理ＩＤとし(ステップ0712)、ステップ0704で対応表に登録したファイル名”fileB”でファイル識別子”usr002.prog01”の管理ＩＤ”fileB-2”を”fileB-1”に書き替える(ステップ0712)。この後、ファイル登録削除部0116はステップ0703でファイル記憶部0123に登録した管理ＩＤ”fileB-2”のファイルfileBを削除する(ステップ0714)。
【０１２３】
そして、最終的な結果は、第１の実施形態で説明した具体例の結果である図９（ｃ）の対応表、ハッシュ表、ファイル記憶部と等しくなる。
【０１２４】
更に、本発明の第３の実施の形態について、説明する。
【０１２５】
第１および第２の実施の形態においては、内容の等しいファイルはファイル名もまた等しいとしてきた。しかし、ファイル名が等しくなくとも内容は等しいファイルも存在し得る。これらについても単一のファイルとして扱えることが望ましい。
【０１２６】
第３の実施の形態は、ファイル名が等しくなくとも内容が等しいファイルを単一のファイルとして扱える点で、第１および第２の実施の形態と異なる。
【０１２７】
第３の実施の形態の構成は、図１と同様である。
【０１２８】
ただし、名前の異なるファイルについても内容が等しければ単一のファイルとして扱うようにするために、ハッシュ表0122は、ファイル名毎に分かれておらず、全てのファイル名に対し１つ存在することになる（図１１参照）。
【０１２９】
ファイルの登録については図５、図７とは異なる。図５、図７ではファイル識別子、ファイル入力後同名のファイルの有無を検索しているが、本実施の形態ではファイル名はファイル内容が等しいか否かの判定には用いないので図５におけるステップ0502〜0503の同名ファイルの有無の調査を行わず、ステップ0501のファイル識別子、ファイル入力後ステップ0504の同内容のファイルの有無の調査、つまり、ファイルのハッシュ値をキー値とするハッシュ表の検索を行う。ステップ0504以後の処理は図５と等しい。また、図７においても、ステップ0705〜0706の同名ファイルの有無の調査は行わず、ステップ0704で管理ＩＤとファイル名、ファイル識別子の対応を対応表に記録した後、ステップ0707の同内容のファイルの有無の調査、つまり、ファイルのハッシュ値をキー値とするハッシュ表の検索を行う。ステップ0707以後の処理は図７と等しい。なお、ファイルの要求の動作については図６と同様の手順で行なう。
【０１３０】
【発明の効果】
本発明の効果は、複数のファイル登録者や要求者によって共有されるファイル管理システムにおいて、同名のファイルの管理を容易かつ効率的に行なうことが可能になることである。その結果、ファイルの登録者は他の登録者との間で名前が等しくなることを避ける必要が無くなり、かつファイル管理システムはリソースの無駄を避けられる。
【０１３１】
その理由は、ファイル名が等しいファイルであっても内容の異なるファイルであれば別のファイルとして管理する手段を設け、また内容が等しいファイルであれば登録者が異なっても単一のファイルとして扱いファイル記憶部のリソースを共有する手段を設けたからである。
【図面の簡単な説明】
【図１】本発明の実施の形態のブロック図
【図２】複数のコンピュータプログラム間でのファイル名の衝突とファイルの共有を説明する図
【図３】対応表の例を示す図
【図４】ハッシュ表の例を示す図
【図５】ファイル登録時の動作を示すフローチャート図
【図６】ファイル要求時の動作を示すフローチャート図
【図７】ファイル登録時の動作を示すフローチャート図
【図８】ファイル記憶部の例を示す図
【図９】ファイル登録時の動作の具体例（ａ）登録するファイル（ｂ）登録前（ｃ）登録後を説明する図
【図１０】ファイル登録時の動作の具体例（ａ）対応表（ｂ）ハッシュ表（ｃ）ファイル記憶部を説明する図
【図１１】ハッシュ表の例を示す図
【図１２】従来技術である一般的なファイルシステムにおけるファイルの管理方式の具体例を示す図
【図１３】従来技術である一般的なファイルシステムにおけるディレクトリ構造の具体例を示す図
【図１４】従来技術である特開平８−３３９３２１における実施形態のブロック図
【図１５】従来技術である特開平８−３３９３２１における管理ＤＢのデータ保存形式の具体例を示す図
【符号の説明】
0101    ファイル要求入力装置
0102    ファイル入力装置
0103    ファイル出力装置
0110    データ処理装置
0111    対応表検索部
0112    対応表変更部
0113    ハッシュ表検索部
0114    ハッシュ表変更部
0115    ファイル検索部
0116    ファイル登録削除部
0117    ファイル内容比較部
0120    記憶装置
0121    対応表
0122    ハッシュ表
0123    ファイル記憶部
0210    コンピュータプログラムＡ
0211    コンピュータプログラムＢ
0212    fileA
0213    fileB
0214    fileA
0215    fileC
0216    fileD
0401    ファイル
0402    ファイル
0403    ファイル
0801    ファイル
0802    ファイル
1001    ファイル要求入力装置
1002    ファイル入力装置
1003    ファイル出力装置
1010    管理サーバ
1011    管理ＤＢ検索部
1012    管理ＤＢ変更部
1013    ファイル検索部
1014    ファイル登録削除部
1020    記憶装置
1021    管理ＤＢ
1022    ファイルＤＢ
【図１】
0003899795.tif 000002
【図２】
0003899795.tif 000003
【図３】
0003899795.tif 000004
【図４】
0003899795.tif 000005
【図５】
0003899795.tif 000006
【図６】
0003899795.tif 000007
【図７】
0003899795.tif 000008
【図８】
0003899795.tif 000009
【図９】
0003899795.tif 000010
【図１０】
0003899795.tif 000011
【図１１】
0003899795.tif 000012
【図１２】
0003899795.tif 000013
【図１３】
0003899795.tif 000014
【図１４】
0003899795.tif 000015
【図１５】
0003899795.tif 000016