JP2008102795A - ファイル管理装置、システム及びプログラム - Google Patents

ファイル管理装置、システム及びプログラム Download PDF

Info

Publication number
JP2008102795A
JP2008102795A JP2006285592A JP2006285592A JP2008102795A JP 2008102795 A JP2008102795 A JP 2008102795A JP 2006285592 A JP2006285592 A JP 2006285592A JP 2006285592 A JP2006285592 A JP 2006285592A JP 2008102795 A JP2008102795 A JP 2008102795A
Authority
JP
Japan
Prior art keywords
peer
file
database
bit string
bloom filter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2006285592A
Other languages
English (en)
Inventor
Chinka Ho
陳華 包
Taro Terao
太郎 寺尾
Yoshihiro Masuda
佳弘 増田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2006285592A priority Critical patent/JP2008102795A/ja
Publication of JP2008102795A publication Critical patent/JP2008102795A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】目的とするファイルの検索を効率的に行うことができるファイル管理装置を提供する。
【解決手段】複数のデータベースピアが階層的に接続されたシステムにおいて、自身よりも下位の階層の装置の管理するファイル集合の存在を示すビット列を、下位の階層の装置単位に備えると共に、自身の管理するファイル集合の存在を示すビット列を備え、ファイルの管理を行う制御部を有する構成としている。自身と、自身よりも下位の階層の装置に格納されたファイルの存在を容易に把握することができる。従って、迅速に所望のファイルを取り出すことができる。
【選択図】図4

Description

本発明は、ファイル管理装置、システム及びプログラムに関する。
近年、e−文書法(「民間事業者等が行う書面の保存等における情報通信の技術の利用に関する法律」と「同法施行に伴う関係法律の整備等に関する法律」の二つの法律の総称)、SOx法(サーベーンズ・オックスリー法)、会社法などの電子文書の管理に関する法整備が整いつつある。この様な環境下では、法的に一定期間の保存が義務付けられる文書を電子文書として長期間保存し、監査などの際に証拠となる文書ファイルを検索して即座に取り出せるようにすることが求められてきている。
しかしながら、一般に、会社などの組織活動を進める中で生成・流通される電子文書(スキャン文書等を含む)を長期間にわたって保存しようとすると、管理者にとって煩雑な作業が強いられることになる。すなわち、文書が部門単位で分散的に管理されていることや、保存先となる文書保存サーバの老朽化や故障、組織変更等によるリプレースや追加・削除等によって、データの移行作業、故障等に備えたバックアップ作業など、管理者にとって煩雑な作業が強いられる。
このため、中央機構を必要とせずに、文書ファイルの長期保存に適し、サーバのリプレースや追加・変更などに伴い柔軟に構成の変更が可能なシステムが求められている。また、文書ファイルの局所的な管理を可能にし、目的とする文書ファイルを効率的に検索することを可能にすることも求められてきている。
特許文献1では、専用のサーバーを使うことなく、接続されたコンピュータ同士がコミュニケーションするネットワーク形態(ピア・ツー・ピアネットワーク)において、嗜好の類似したピアをネットワーク上で近くなるように自己組織的に再配置することで、ネットワークの通信負荷を抑制する技術を提案している。
非特許文献1では、ピア・ツー・ピアのネットワークにおいて、ピアが階層的なネットワークを形成し、各ピアが保持するファイル集合を表現するためにブルームフィルタを用いている。階層関係上の上位ピアは、下位ピアのブルームフィルタの値の論理和をとって集約されたブルームフィルタを保持している。すなわち、集約されたブルームフィルタの値は、階層関係上の下位のピアが保持するファイル集合を意味する。そして、ファイル検索時には、集約されたブルームフィルタの値と、検索対象のファイルから計算されるブルームフィルタの値を比較しながら階層関係をたどり、目的とするファイルを保持しているピアを発見する。
なお、ブルームフィルタとは、ある任意のデータdがデータ集合Xに含まれるかどうかをハッシュ関数の応用により確率的に検査するためのフィルタである。データ集合Xより生成されたブルームフィルタに対して、定められた手続きを行うことで、あるデータdがデータ集合Xに含まれるか否かを検証することができる。
特開2005−115453号公報 J. Ledlie, L. Serban, and D. Toncheva. Scaling filename queries in a large-scale distributed file system. Research Report TR-03-02, Harvard University, January 2002.
本発明は、登録されたファイルの管理を有効に行うと共に、目的とするファイルの検索を効率的に行うことができるファイル管理装置、システム及びプログラムを提供することを目的とする。
かかる目的を達成するために請求項1記載のファイル管理装置は、複数の装置と階層的に接続され、自身よりも下位の階層の装置の管理するファイル集合の存在を示すビット列を、前記下位の階層の装置単位に備えると共に、自身の管理するファイル集合の存在を示すビット列を備え、ファイルの管理を行う管理手段を有する構成としている。
請求項2記載の発明は、請求項1記載の発明において、前記管理手段は、ビット列を更新すると、上位の装置に更新後の前記ビット列を通知するとよい。
請求項3記載の発明は、請求項1又は2記載の発明において、前記管理手段は、ファイルの数に応じて、ビット列の長さを動的に変更するとよい。
請求項4記載の発明は、請求項1から3のいずれか一項記載の発明において、検索対象のファイルを示すビットが前記ビット列に登録されているか否かを検索し、該ビットが登録されていない場合に、自身よりも上位の装置に前記検索対象ファイルの検索依頼を出力する検索手段を有しているとよい。
請求項5記載の発明は、請求項1から4のいずれか一項記載の発明において、前記ビット列は、各ファイルのコンテンツに含まれるデータに、複数のハッシュ関数を適用して求めたビット列であるとよい。
請求項6記載の発明は、階層関係を有する複数の装置が接続されたシステムであって、各装置は、自身よりも下位の階層の装置から、該下位の階層の装置に格納されたファイル集合の存在を示すビット列を取得する取得手段と、自身に格納したファイル集合の存在を示すビット列と、前記取得手段で取得したビット列とを用いて、ファイル管理を行う管理手段と、自身に格納したファイル集合の存在を示すビット列と、前記取得手段で取得したビット列とを上位の装置に転送する転送手段と、を有することを特徴としている。
請求項7記載の発明は、複数の装置と階層的に接続されたコンピュータ装置を、自身よりも下位の階層の装置に格納されたファイル集合の存在を示すビット列を、前記下位の階層の装置単位に備えたビット列と、自身に格納したファイル集合の存在を示すビット列とを用いて、ファイルの検索を実行させることを特徴としている。
請求項1記載の発明によれば、自身と、自身よりも下位の階層の装置に格納されたファイルの存在を容易に把握することができる。従って、迅速に所望のファイルを取り出すことができる。
請求項2記載の発明によれば、ビット列の更新がなされると、その更新を上位の装置に反映させることができる。従って、ビット列が更新されても、上位の装置では下位の装置に格納されたファイルを検索することができる。
請求項3記載の発明によれば、装置に格納されるファイルの数が増えても、ビット列の大きさを動的に変更することで、検索エラーの発生を抑制することができ、効率的なファイルの検索ができる。
上位の装置には、この装置よりも下位の装置に格納したファイルの存在を示すビット列が登録されているので、自身の所持するビット列で検索対象ファイルを検出できない場合には、上位の装置を検索することで、所望とするファイルを検索することができる。
請求項5記載の発明によれば、登録された複数のファイルの存在を示すビット列の生成が容易になる。
請求項6記載の発明によれば、自身と、自身よりも下位の階層の装置に格納されたファイルの存在を示すビット列を取得して、このビット列をもとにファイルの所在を容易に把握することができる。従って、迅速に所望のファイルを取り出すことができる。
請求項7記載の発明によれば、自身と、自身よりも下位の階層の装置に格納されたファイルの存在を容易に把握することができる。従って、迅速に所望のファイルを取り出すことができる。
添付図面を参照しながら本発明の好適な実施例を説明する。
図1に本実施例のシステム構成を示す。本実施例は、特定の中央管理サーバを設けることなく、すべてのコンピュータやデータベースが対等の関係で接続され、協働作業を実現するピア・ツー・ピア型のシステム構成を備えている。
本実施例は、LAN、WAN等の複数のネットワーク5上に、データベースピア1と、クライアント端末2とがそれぞれ複数接続されており、各ネットワークは、ルータ3やファイアウォール4を介して接続されている。
ネットワーク5上に複数存在するデータベースピア1は、データベースピア1間でメッセージを交換しながら非集中的なデータベース管理を実現する。データベースピア1は、図2に示すツリー階層的なピア・ツー・ピアのネットワークを形成しており、全体が1つのデータベースシステムとして機能する。
図3にデータベースピア1の構成を示す。図3に示すようにデータベースピア1は、制御部40と、ハードディスク装置50とを有しており、制御部40の制御に従って、ハードディスク装置50にファイルを登録したり、ファイルを管理する管理データが保存される。
制御部40は、CPU41、ROM42、RAM43、NVRAM44、入出力部45を具備している。CPU41は、ROM42に格納したプログラムを読み込んで、このプログラムに従った演算を行うことにより、後述するフローチャートに示す手順での制御が行われる。また、RAM43には、演算結果のデータや、印刷完了ページ情報が書き込まれ、NVRAM(Non Volatile RAM)44は、RAM43に書き込まれていたデータで、電源オフ時に保存の必要なデータが書き込まれる。
なお、ROM42に格納されているプログラムは、CD−ROM等の記録媒体に格納されたものを読み込んでNVRAM44に格納してもよいし、通信網を介して送信されたプログラムを入出力部45で受信してNVRAM44に格納してもよい。
クライアント端末2は、データベースピア1へのファイルの登録や、データベースピア1に登録されたファイルを検索するための操作を行う。
図4に、データベースピア1の管理するデータ構造を示す。
データベースピア1は、このデータベースピア1のIPアドレスと、このデータベースピア1に接続された上位のデータベースピアのIPアドレス(以下、上位ピアアドレス)と、このデータベースピア1が有するローカルブルームフィルタと、このデータベースピア1に接続された下位のデータベースピアの情報(以下、下位ピア情報という)と、記録している文書ファイルの情報(以下、文書ファイル情報という)とを格納している。
下位ピア情報には、下位のデータベースピア(以下、下位ピアと呼ぶ)のIPアドレスと、下位ピアの格納するブルームフィルタと、下位ピア情報を管理するデータベースピア1に直接接続された下位ピアなのか、他のデータベースピアを介して接続された下位ピアなのかを示す直下ピアフラグとを有している。この下位ピア情報は、データベースピア1に接続した下位ピアごとに格納している。以下では、この下位ピア情報の集合を下位ピア集合と呼ぶ。
また、データベースピア1は、このデータベースピア1が格納している文書ファイルの情報を有している。文書ファイル情報には、文書に付けられたID(文書ID)と、文書ファイル自体を示すコンテンツとが含まれる。
図5には、クライアント端末2に格納されるデータを示している。クライアント端末2には、データを登録する登録先となるデータベースピア1のIPアドレスが格納されている。
本システムの利用者は、ピア・ツー・ピアネットワーク内の複数のデータベースピア1のうち、ファイルの登録を許可されているデータベースピア1にファイルを格納する。すなわち、クライアント端末2の利用者は、利用者の所属する部門が管理するデータベースピア1にファイルを格納する。
ファイルは、それぞれの部門の管理するデータベースピア1に登録されるため、他の部門の利用者は、所望とするファイルを取得するための有効な検索システムが必要となる。
本システムでは、ファイル検索の効率化を図るために、シグニチャコーディングと呼ばれる方法によって得られるビット列(ブルームフィルタ)を用いて、各データベースピア1に格納されたファイル群に、目的のファイルが含まれているか否かを高速に判定する。
図6を参照しながら各データベースピア1に保持されるブルームフィルタについて説明する。
ファイルの登録依頼をクライアント端末2より受けると、データベースピア1は、登録依頼のあったファイルの文書情報をキーとして文書IDを生成する。図6(A)に示すように文書に含まれるコンテンツ(データ列)をキーとするハッシュ値を文書IDとする。
次に、データベースピア1は、生成した文書IDをもとに、登録依頼のあったファイルに関するブルームフィルタ値を計算する。
本実施例では、図6(B)に示すように文書IDに8つの異なるハッシュ関数(Hash-1,Hash-2,Hash3・・・Hash-8)を適用し、8つのハッシュ値を生成する。この8つのハッシュ値の論理和を演算することでブルームフィルタに登録されるビット列が決定される。図6(C)に、ブルームフィルタの構成を示す。本実施例は、ブルームフィルタとして長さ4096ビットのものを用意しており、256個のファイルのビット列が格納される。
なお、データベースピア1には、ブルームフィルタの集合からなるローカルブルームフィルタが格納される。ローカルブルームフィルタは、ファイル数が一定数(本実施例では256個)を超えると、4096ビット長の新たなブルームフィルタが既存のブルームフィルタに追加される。すなわち、ロカールブルームフィルタは、登録されるファイルの数が増加していくにつれて、長さが段階的に4096ビット長ずつ長くなるブルームフィルタの集合である。また、ローカルブルームフィルタにファイルを登録するために行う論理和演算は、ローカルブルームフィルタの全体に対して行う。
なお、4096ビット長のブルームフィルタに対しては、256個のファイルを登録してもエラー率(false positive率)が変わらない。4096ビット長のブルームフィルタに対して、256個以上のファイルが登録されると、エラー率が上昇するので、4096ビット長の新たなブルームフィルタを追加する。
図7を参照しながらデータベースピア1の登録の手順について説明する。
データベースピア1は、図2に示すように階層的なピア・ツー・ピアネットワークを形成している。新規に設置したデータベースピア、又は既にファイルが格納されている既存のデータベースピアは、階層的なネットワークを形成する際の上位となるデータベースピアに対して、ピア登録依頼メッセージを送信する。ピア登録依頼メッセージには、ピアアドレス(登録を依頼するデータベースピアのアドレス)、ブルームフィルタの値(登録を依頼するデータベースピアの所持するローカルブルームフィルタの値)、転送フラグ等が含まれる。なお、ピア登録依頼メッセージでは、転送フラグは、trueに設定される。trueに設定された転送フラグを受信することで、上位のデータベースピア1は、自身の直下にピア登録依頼メッセージを出力したデータベースピア1が存在することを認識することができる。また、falseに設定された転送フラグを受信することで、上位のデータベースピア1は、ピア登録依頼メッセージを出力したデータベースピアが、自身には直接接続されておらず、少なくとも2層以上下層のデータベースピアであることを認識することができる。
以下の説明では、説明を明確にするために図2に示す第4層のデータベースピア30Bが登録された場合を例に説明する。
データベースピア30Bの上位のデータベースピア20Cは、下位のデータベースピア30B,30Bからのピア登録依頼メッセージの受信待ち状態にある。データベースピア20Cは、ピア登録依頼メッセージを受信すると、依頼を出したデータベースピア30Bとの間で、親子関係に相当するピア・ツー・ピアネットワーク関係を設定する。ピア登録依頼を受けたデータベースピア20Cは、「下位ピア集合」のメンバとして新しい「下位ピア」を生成する。
ピア登録依頼メッセージを受けたデータベースピア20Cは、この「下位ピア」のアドレスに、ピア登録依頼メッセージから取得したアドレスを設定する。また、「下位ピアブルームフィルタ」の設定に、ピア登録依頼メッセージから取得したローカルブルームフィルタの値を設定する。
また、「直下ピアフラグ」の値は、当該受信したピア登録依頼メッセージの「転送フラグ」がtrueの場合はtrue、falseの場合はfalseがセットされる。「直下ピアフラグ」は、ピア登録依頼を受けたデータベースピア20Cの直下に、ピア登録依頼を出力したデータベースピア30Bがあることを示している。
さらに、データベースピア20Cは、「上位ピアアドレス」として保持している上位のデータベースピア10Cに対して、受信したピア登録依頼メッセージを転送する。なお、このときの転送には、ピア登録依頼メッセージの「転送フラグ」をfalseにセットして送信する。
さらに、データベースピア20Cは、ピア登録依頼メッセージを出力した下位のデータベースピア30Bに対して、処理が完了したことを通知するためのピア登録完了メッセージを送信する。ピア登録完了メッセージには、返信対象のメッセージを識別するメッセージIDが含まれる。
上記の処理の最初のステップで、ピア登録依頼メッセージを送信したデータベースピア30Bは、上記ピア登録完了メッセージを受信すると、「上位ピアアドレス」に、上位データベースピア20Cのアドレスを設定し、親子関係を形成する。
図8に示すフロチャートを参照しながら、新規登録されるデータベースピア30Bの処理手順を説明する。
新規に設置されるデータベースピア30Bは、上位に位置するデータベースピア20Cにピア登録依頼メッセージを送信する(ステップS1)。メッセージを送信すると、上位のデータベースピア20Cからのピア登録完了メッセージの返信を待つ(ステップS2)。
データベースピア30Bは、上位のデータベースピア20Cからピア登録完了メッセージを受け取ると(ステップS3/YES)、「上位ピアアドレス」に、上位データベースピア20Cのアドレスを設定し、親子関係を形成する(ステップS4)。
次に、データベースピア30Bからのピア登録依頼メッセージを受信したデータベースピア20Cの処理手順を図9に示すフローチャートを参照しながら説明する。
データベースピア20Cは、下位のデータベースピア30B,30Cからのメッセージの受信待ちの状態にある(ステップS10)。下位のデータベースピア30B,30Cからメッセージを受信すると(ステップS10/YES)、このメッセージの種別を判定する(ステップS11)。受信したメッセージがピア登録依頼メッセージではなかった場合には(ステップS11/NO)、他のルーチンへ移行する。また、受信したメッセージがピア登録依頼メッセージであった場合(ステップS11/YES)、データベースピア20Cは、データベースピア内の「下位ピア集合」のメンバとして新しい「下位ピア」を生成する(ステップS12)。ピア登録依頼メッセージを受けたデータベースピア20Cは、この「下位ピア」のアドレスに、ピア登録依頼メッセージから取得したアドレスを設定する。また、「下位ピアブルームフィルタ」の設定に、ピア登録依頼メッセージから取得したローカルブルームフィルタの値を設定する。また、「直下ピアフラグ」の値は、受信したピア登録依頼メッセージの「転送フラグ」に設定されたtrueが設定される。
また、データベースピア20Cは、「上位ピアアドレス」として保持している上位のデータベースピア10Cに対して、受信したピア登録依頼メッセージを転送する(ステップS13)。このとき、ピア登録依頼メッセージの「転送フラグ」はfalseにセットして送信する。
さらに、データベースピア20Cは、ピア登録依頼メッセージを出力した下位のデータベースピア30Bに対して、処理が完了したことを通知するためのピア登録完了メッセージを送信する(ステップS14)。
(ピアの削除)
次に、図10を参照しながらデータベースピア1の削除処理について説明する。なお、この説明においても、図2に示すデータベースピア30Bを削除する場合を例に説明する。
データベースピア30Bが削除される場合、削除されるデータベースピア30Bから上位のデータベースピア20Cに対して、ピア削除依頼メッセージを送信する。このピア削除依頼メッセージには、削除を依頼した(削除される)データベースピア30Bのピアアドレスと、転送フラグとが送信される。転送フラグはtrueに設定される。
データベースピア20Cは、下位のデータベースピア30B,30Cから、ピア削除依頼メッセージの受信待ち状態にある。データベースピア20Cは、下位のデータベースピア30Bからピア削除依頼メッセージを受信すると、「下位ピア集合」のメンバを検索し、この削除依頼メッセージに含まれるピアアドレスを「下位ピア集合」のメンバから削除する。
ここで、「転送フラグ」がfalseの場合は、次のステップに進む。一方、受信したピア削除依頼メッセージの「転送フラグ」がtrueであり、かつ、削除対象とする「下位ピア」メンバの「直下ピアフラグ」がtrueの場合、削除依頼メッセージに含まれている「下位ピア集合」の各ピアアドレスに関して、「下位ピア集合」中の各「下位ピア」メンバを検索し、同じピアアドレスを持つ「下位ピア」メンバの「直下ピアフラグ」をtrueにセットする。
すなわち、自ピアが削除対象のデータベースピアの上位のデータベースピアであった場合、削除対象のデータベースピアに直接接続された下位のデータベースピアを、新たな直下の下位ピアとして登録する。図2を参照して説明すると、例えば、データベースピア20Cが削除対象のデータベースピアであった場合、データベースピア20Cの上位のデータベースピア10Cは、データベースピア30B,30Cを直下のデータベースピアとして登録する。
また、データベースピア20Cは、「上位ピアアドレス」として保持する上位のデータベースピア10Cに対して、受信したピア削除依頼メッセージを転送する。なお、ピア削除依頼メッセージの「転送フラグ」をfalseにセットして送信する。
さらに、データベースピア20Cは、ピア削除依頼メッセージを送信したデータベースピアに対して、処理が完了したことを通知するための、ピア削除完了メッセージを送信する。
上記の処理の最初のステップでピア削除依頼コマンドを送信したデータベースピア30Bは、上記ピア削除完了メッセージを受信し、「上位ピアアドレス」にnullを設定し、親子関係を解消する。
図11に示すフローチャートを参照しながら、ピア削除依頼メッセージを出力するデータベースピア30Cの処理手順を説明する。
削除されるデータベースピア30Bから上位のデータベースピア20Cに対して、ピア削除依頼メッセージを送信する(ステップS21)。メッセージを送信すると、上位のデータベースピア20Cからのピア削除完了メッセージの返信を待つ(ステップS22)。データベースピア30Bは、上位のデータベースピア20Cからピア削除完了メッセージを受け取ると(ステップS23/YES)、「上位ピアアドレス」から、ピア削除完了メッセージを受け取った上位ピアのアドレスを削除する(ステップS24)。
次に、図12に示すフローチャートを参照しながらピア削除依頼メッセージを受信した上位のデータベースピア20Cの処理手順を説明する。
データベースピア20Cは、下位のデータベースピア30B,30Bからのメッセージの受信待ちの状態にある(ステップS31)。下位のデータベースピア30Bからメッセージを受信すると(ステップS31/YES)、このメッセージの種別を判定する(ステップS32)。受信したメッセージがピア削除依頼メッセージではなかった場合には(ステップS32/NO)、他のルーチンへ移行する。また、受信したメッセージがピア削除依頼メッセージであった場合には(ステップS32/YES)、「下位ピア集合」から削除対象のデータベースピア30Bに関する情報を削除する(ステップS33)。
また、データベースピア20Cは、削除対象のデータベースピア30Bの下位ピア情報に含まれる直下フラグを参照して、直下フラグがtrueに設定されているか否かを判定する。直下フラグがtrueに設定されている場合、削除対象のデータベースピア30Bの上位ピアがデータベースピア20Cになるので、データベースピア30Bの直下に接続されたデータベースピアがある場合には、このデータベースピアをデータベースピア20Cの新たな下位ピアとして登録する(ステップS34)。
また、データベースピア20Cは、「上位ピアアドレス」として保持する上位のデータベースピア10Cに対して、受信したピア削除依頼メッセージを転送する(ステップS35)。さらに、データベースピア20Cは、ピア削除依頼メッセージを送信したデータベースピア30Bに対して、処理が完了したことを通知するための、ピア削除完了メッセージを送信する(ステップS36)。
(ファイルの登録)
次に、図13を参照しながらファイルを登録する場合の手順を説明する。なお、ここでは、説明を明確にするために、図2に示すデータベースピア20Aにファイルを登録する場合の手順を例に説明する。
利用者が、クライアント端末2上で任意の文書ファイルを選択して文書登録を指示すると、この文書ファイルを登録するためのファイル登録依頼メッセージが、クライアント端末2の保持する「登録先データベースピアアドレス」宛に送信される。
ファイル登録依頼メッセージには、登録する文書ファイルを指定する「登録文書ファイル」が含まれる。また、登録先データベースピアアドレスは、予め文書ファイルを登録するローカルのデータベースピアのアドレスに設定されている。
データベースピア20Aは、上記のファイル登録依頼メッセージ(または、ファイル削除依頼メッセージ)を受信待ち状態にある。データベースピア20Aは、ファイル登録依頼メッセージを受信すると、この登録ファイルのコンテンツに含まれるデータ列をキーとして文書IDを生成する。
この文書IDに複数個のハッシュ関数を適用し、複数個のハッシュ値を生成する。ハッシュ関数には、RSA256等が用いられる。得られたハッシュ値からブルームフィルタ値が生成される。本実施例では、4096ビット長のブルームフィルタに対して8つのハッシュ関数を適用することによって求める。データベースピア20Aは、保持している「ローカルブルームフィルタ」の値と、今回生成した登録ファイルの文書IDに対応した「ブルームフィルタ」の値との論理和を計算し、その値を新たな「ローカルブルームフィルタ」としてセットする。
なお、ここで、格納するファイルが一定数(本実施例の場合は、256個)を超える都度、新たなブルームフィルタが生成され、「ローカルブルームフィルタ」に追加されてゆく。ローカルブルームフィルタは、格納されるファイルが一定数を超えるごとに新たに生成されてゆくブルームフィルタの集合であり、論理和は、ローカルブルームフィルタを構成する複数のブルームフィルタのうち、最も最近生成されて追加されたブルームフィルタと、今回生成した登録ファイルの文書IDに対応したブルームフィルタとの間で計算される。
データベースピア20A内のローカルブルームフィルタが更新されると、その値を上位のピアに更新伝播させるためのブルームフィルタ更新依頼メッセージが生成され、上位のデータベースピア10Aに送信される。ブルームフィルタ更新依頼メッセージには、更新依頼メッセージを出力したデータベースピア20Aのピアアドレスと、新たに計算されたブルームフィルタの値である更新ブルームフィルタとが上位のデータベースピア10Aに送信される。
データベースピア10Aは、下位のデータベースピア20A,20Bから送信されてくるブルームフィルタ更新依頼メッセージの受信待ち状態にある。ブルームフィルタ更新依頼メッセージを受信すると、データベースピア10Aはブルームフィルタ更新依頼メッセージに含まれていたピアIDに相当するデータベースピアの「下位ピア」メンバを検出し、そのブルームフィルタ値を、受信したメッセージ中に含まれていたブルームフィルタの値に変更する。そして、ブルームフィルタ更新依頼メッセージを受信したデータベースピアの「上位ピアアドレス」宛に転送する。
データベースピア10Aは、上記の処理を終了すると、ブルームフィルタ更新完了メッセージを送信元のデータベースピア20Aに返信する。
一方、文書ファイル登録依頼メッセージをデータベースピア10Aに出力して文書ファイルの登録を行ったデータベースピア20Aでは、上記の処理の完了に伴い、ファイル登録完了メッセージをファイル登録を依頼したクライアント端末2に返信する。ファイル登録完了メッセージには、登録文書ID(上述の処理で生成された文書ID)が含まれる。
また、ファイル登録完了メッセージを受信したクライアント端末2では、この文書IDを含むリファレンスファイルを生成し、登録されたファイルと同じディレクトリ下に置く。
次に、図14に示すフローチャートを参照しながらファイルの登録を依頼するクライアント端末2の処理手順を説明する。
利用者によって文書ファイルが選択されると、この文書ファイルを登録するためのファイル登録依頼メッセージを、クライアント端末2の保持する「登録先データベースピアアドレス」宛に送信する(ステップS41)。
ファイル登録依頼メッセージを送信したクライアント端末2は、該当データベースピア20Aからのファイル登録完了メッセージの受信を待つ(ステップS42)。ファイル登録完了メッセージを受信すると(ステップS43)、このファイル登録完了メッセージに含まれる文書IDを含んだリファレンスファイルを生成する(ステップS44)。生成されたリファレンスファイルは、登録されたファイルと同じディレクトリ下に置かれる。
次に、図15に示すフローチャートを参照しながらファイル登録依頼メッセージを受け付けたデータベースピア20Aの処理手順を説明する。
データベースピア20Aは、メッセージを受信すると(ステップS51)、このメッセージがクライアント端末2からのファイル登録依頼メッセージであるか否かを判定する(ステップS52)。受信したメッセージがファイル登録依頼メッセージではなかった場合には(ステップS52/NO)、他のルーチンへ移行する。また、受信したメッセージがファイル登録依頼メッセージであった場合には(ステップS52/YES)、コンテンツに含まれるデータ列をキーとして文書IDを生成する(ステップS53)。この文書IDに複数個のハッシュ関数を掛け合わせて、複数個のハッシュ値(ビット列)を生成する。得られたハッシュ値(ビット列)を論理和演算を行ってブルームフィルタに登録することで新たなブルームフィルタが生成される(ステップS54)。データベースピア20Aは、保持している「ローカルブルームフィルタ」に登録されたビット列と、今回生成したハッシュ値(ビット列)との論理和を計算し、演算結果を新たな「ローカルブルームフィルタ」としてセットする(ステップS55)。
データベースピア20A内のローカルブルームフィルタが更新されると、データベースピア20Aは、このローカルブルームフィルタの値を上位のデータベースピア10Aに更新伝播させるためのブルームフィルタ更新依頼メッセージを生成し、データベースピア10Aに送信する(ステップS56)。
また、データベースピア20Aは、ファイル登録完了メッセージをファイル登録を依頼したクライアント端末2に返信する(ステップS57)。
次に、図16に示すフローチャートを参照しながらブルームフィルタ更新依頼メッセージを受信したデータベースピア10Aの処理手順を説明する。
データベースピア20Aは、ローカルブルームフィルタの値を更新すると、その値を上位のピアに更新伝播させるためのブルームフィルタ更新依頼メッセージを生成して、上位のデータベースピア10Aに送信する。
データベースピア10Aは、他のデータベースピアから送信されるメッセージの受信を待機しており(ステップS61)、メッセージを受信すると(ステップS61/YES)、受信したメッセージがブルームフィルタ更新依頼メッセージであるか否かを判定する(ステップS62)。メッセージがブルームフィルタ更新依頼メッセージではなかった場合には(ステップS62/NO)、他のルーチンへ移行する。また、メッセージがブルームフィルタ更新依頼メッセージであった場合(ステップS62/YES)、データベースピア10Aはブルームフィルタ更新依頼メッセージに含まれていたピアIDに相当するデータベースピアの「下位ピア」メンバを検出し、そのブルームフィルタ値を、受信したメッセージ中に含まれていたブルームフィルタの値に変更する(ステップS63)。そして、データベースピア10Aの「上位ピアアドレス」宛にブルームフィルタ更新依頼メッセージを転送する。また、データベースピア10Aは、ブルームフィルタ更新完了メッセージを送信元のデータベースピア20Aに返信する(ステップS64)。
(ファイルの検索)
次に、図17を参照しながらファイルの検索について説明する。なお、この説明においても、クライアント端末2からデータベースピア20Aにファイルの検索依頼を出力する場合を例に説明する。
ファイルの登録時に生成されるリファレンスファイルは、電子メールによる交換、またはオフラインによって他の利用者との間で交換することが可能である。
図18に示すように利用者が画面に表示されたリファレンスファイルをダブルクリックすると、このリファレンスファイルに格納された文書IDに関する「ファイル検索依頼メッセージ」がクライアント端末2の保持する「データベースピアアドレス」宛に送信される。
データベースピア20Aは、ファイル検索依頼メッセージの受信待ち状態にあり、このメッセージを受信すると、ファイル検索依頼メッセージに含まれる文書IDに関するブルームフィルタの値を計算する(この値をAとする)。そして、この文書IDに関するブルームフィルタの値(A)と、データベースピア20Aが保持するローカルブルームフィルタ中のブルームフィルタの値について、論理積を計算する(この値をBとする)。この結果、文書IDについて計算したブルームフィルタの値(A)と、論理積によって得られた値(B)とが一致すれば、その文書IDを持ったファイルは、データベースピア20Aが保持する可能性が高いと判断し、「文書ファイル集合」中を検索する。
データベースピア20Aは、「文書ファイル集合」を検索して、該当する文書IDを持つ「文書ファイル」が発見された場合、この「文書ファイル」の「コンテンツ」を取り出し、「ファイル検索完了メッセージ」を検索要求先のクライアント端末2に送信する。
一方、データベースピア20Aは、「文書ファイル集合」を検索して、該当する文書IDを持つ「文書ファイル」が発見されなかった場合には、データベースピア20Aが保持する「上位ピアアドレス」宛に、ファイル検索依頼メッセージを転送する。ファイル検索依頼メッセージには、文書ID(=受信メッセージに含まれていた文書ID)、転送フラグ(trueに設定される)を転送する。
また、データベースピア20Aにおける、ブルームフィルタの値(AとB)の比較の結果、値が一致しなかった場合は、階層関係上の下位のデータベースピアに目的とするファイルは存在しないことが保障されるため、データベースピア20Aが保持する「上位ピアアドレス」宛に、ファイル検索依頼メッセージを転送する。ファイル検索依頼メッセージには、文書IDと、trueに設定された転送フラグとが含まれる。
ファイル検索完了メッセージを受信したクライアント端末2は、返信メッセージ中に含まれているファイルを取り出して、ファイルを、このファイルに対応付けられたアプリケーションシステムによってオープンする。
図19に示すフローチャートを参照して、クライアント端末2の処理手順を説明する。
利用者によってリファレンスファイルが選択されると、このリファレンスファイルに格納された文書IDに関するファイル検索依頼メッセージをクライアント端末2の保持する「データベースピアアドレス」宛に送信する(ステップS71)。ファイル検索依頼メッセージを受信したクライアント端末2は、データベースピア20Aからのファイル登録完了メッセージの受信を待つ(ステップS72)。データベースピア20Aからファイル登録完了メッセージを受信すると(ステップS73/YES)、返信メッセージ中に含まれているファイルを取り出して、ファイルに対応付けられたアプリケーションシステムによってファイルをオープンする(ステップS74)。
次に、図20に示すフローチャートを参照しながら、ファイル検索依頼を受け付けたデータベースピア20Aの処理手順を説明する。
データベースピア20Aは、メッセージの受信待ち状態にあり(ステップS81)、メッセージを受信すると(ステップS81/YES)、このメッセージがファイル検索依頼メッセージであるか否かを判定する(ステップS82)。メッセージがファイル検索依頼メッセージではなかった場合には(ステップS82/NO)、他のルーチンへ移行する。また、メッセージがファイル検索依頼メッセージであった場合には(ステップS82/YES)、ファイル検索依頼メッセージに含まれる文書IDに関するブルームフィルタの値(A)を計算する(ステップS83)。
次に、この文書IDに関するブルームフィルタの値(A)と、データベースピア20Aが保持するローカルブルームフィルタ中のブルームフィルタの値について、論理積を計算する(この値をBとする)。この結果、文書IDについて計算したブルームフィルタの値(A)と、論理積によって得られた値(B)とを比較する。これらの値が一致すれば(ステップS85/YES)、文書IDを持ったファイルは、データベースピア20Aが保持する可能性が高いと判断し、「文書ファイル集合」中を検索する(ステップS86)。
データベースピア20Aは、「文書ファイル集合」を検索して(ステップS86)、該当する文書IDを持つ「文書ファイル」が発見された場合(ステップS87/YES)、この「文書ファイル」の「コンテンツ」を取り出し、「ファイル検索完了メッセージ」を検索要求先のクライアント端末2に送信する(ステップS89)。
また「文書ファイル集合」を検索して、該当する文書IDを持つ「文書ファイル」が発見されなかった場合(ステップS87/NO)、データベースピア20Aは、データベースピア20Aが保持する「上位ピアアドレス」宛に、ファイル検索依頼メッセージを転送する(ステップS88)。ファイル検索依頼メッセージには、文書ID(=受信メッセージに含まれていた文書ID)、転送フラグ(trueに設定される)を転送する。
また、データベースピア20Aにおける、ブルームフィルタの値(AとB)の比較の結果、値が一致しなかった場合は(ステップS85/NO)、階層関係上の下位のデータベースピアに目的とするファイルは存在しないことが保障されるため、データベースピア20Aが保持する「上位ピアアドレス」宛に、ファイル検索依頼メッセージを転送する(ステップS88)。
上述した実施例は本発明の好適な実施の例である。但し、これに限定されるものではなく本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
システム構成を示す構成図である。 ツリー階層的なピア・ツー・ピアのネットワークを示す図である。 データベースピアの構成を示す図である。 データベースピアに格納されるデータの構成を示す図である。 クライアント端末に格納されるデータを示す図である。 ブルームフィルタの生成手順を示す図である。 データベースピア登録時の手順を示すシーケンス図である。 登録されるデータベースピアの処理手順を示すフローチャートである。 登録依頼メッセージを受信したデータベースピアの処理手順を示す図である。 データベースピア削除時の手順を示すシーケンス図である。 削除されるデータベースピアの処理手順を示すフローチャートである。 削除依頼メッセージを受信したデータベースピアの処理手順を示す図である。 ファイルの登録の手順を示すシーケンス図である。 ファイル登録依頼を出力するクライアント端末の処理手順を示す図である。 ファイル登録依頼メッセージを受信したデータベースピアの処理手順を示す図である。 ブルームフィルタの更新依頼を受けたデータベースピアの処理手順を示すフローチャートである。 ファイル検索時の手順を示すシーケンス図である。 ファイル検索時にクライアント端末に表示される画面の一例を示す図である。 ファイルの検索依頼を出力するクライアント端末の処理手順を示すフローチャートである。 ファイル検索依頼を受けたデータベースピアの処理手順を示すフローチャートである。
符号の説明
1 データベースピア
2 クライアント端末
3 ルータ
4 ゲートウェイ
5 ネットワーク
40 制御部
50 ハードディスク装置

Claims (7)

  1. 複数の装置と階層的に接続され、
    自身よりも下位の階層の装置の管理するファイル集合の存在を示すビット列を、前記下位の階層の装置単位に備えると共に、自身の管理するファイル集合の存在を示すビット列を備え、ファイルの管理を行う管理手段を有することを特徴とするファイル管理装置。
  2. 前記管理手段は、ビット列を更新すると、上位の装置に更新後の前記ビット列を通知することを特徴とする請求項1記載のファイル管理装置。
  3. 前記管理手段は、ファイルの数に応じて、ビット列の長さを動的に変更することを特徴とする請求項1又は2記載のファイル管理装置。
  4. 検索対象のファイルを示すビットが前記ビット列に登録されているか否かを検索し、該ビットが登録されていない場合に、自身よりも上位の装置に前記検索対象ファイルの検索依頼を出力する検索手段を有することを特徴とする請求項1から3のいずれか一項記載のファイル管理装置。
  5. 前記ビット列は、各ファイルのコンテンツに含まれるデータに、複数のハッシュ関数を適用して求めたビット列であることを特徴とする請求項1から4のいずれか一項記載のファイル管理装置。
  6. 階層関係を有する複数の装置が接続されたシステムであって、
    各装置は、自身よりも下位の階層の装置から、該下位の階層の装置に格納されたファイル集合の存在を示すビット列を取得する取得手段と、
    自身に格納したファイル集合の存在を示すビット列と、前記取得手段で取得したビット列とを用いて、ファイル管理を行う管理手段と、
    自身に格納したファイル集合の存在を示すビット列と、前記取得手段で取得したビット列とを上位の装置に転送する転送手段と、
    を有することを特徴とするファイル管理システム。
  7. 複数の装置と階層的に接続されたコンピュータ装置を、
    自身よりも下位の階層の装置に格納されたファイル集合の存在を示すビット列を、前記下位の階層の装置単位に備えたビット列と、自身に格納したファイル集合の存在を示すビット列とを用いて、ファイルの検索を実行させることを特徴とするプログラム。
JP2006285592A 2006-10-19 2006-10-19 ファイル管理装置、システム及びプログラム Pending JP2008102795A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006285592A JP2008102795A (ja) 2006-10-19 2006-10-19 ファイル管理装置、システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006285592A JP2008102795A (ja) 2006-10-19 2006-10-19 ファイル管理装置、システム及びプログラム

Publications (1)

Publication Number Publication Date
JP2008102795A true JP2008102795A (ja) 2008-05-01

Family

ID=39437071

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006285592A Pending JP2008102795A (ja) 2006-10-19 2006-10-19 ファイル管理装置、システム及びプログラム

Country Status (1)

Country Link
JP (1) JP2008102795A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231252A (ja) * 2009-03-25 2010-10-14 Symantec Corp 電子メールコンテンツ包含を検出するシステム及び方法
JP2011186954A (ja) * 2010-03-10 2011-09-22 Fujitsu Ltd データ管理装置及びデータ管理方法
JP2011215924A (ja) * 2010-03-31 2011-10-27 Fujitsu Ltd 分散処理装置、分散処理プログラムおよび分散処理方法
JP2013156960A (ja) * 2012-01-31 2013-08-15 Fujitsu Ltd 生成プログラム、生成方法、および生成システム
JP2014504411A (ja) * 2010-12-20 2014-02-20 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ピアツーピア・ネットワークにおける検索
JP2017506444A (ja) * 2013-12-12 2017-03-02 アルカテル−ルーセント ワイヤレス環境におけるオブジェクトの検出
US9692847B2 (en) 2013-06-06 2017-06-27 Fujitsu Limited Content distribution method and content distribution server
JP2021140634A (ja) * 2020-03-09 2021-09-16 日本電気株式会社 サーバ装置、エッジ機器、処理パタン特定方法及び制御プログラム
JP7323804B2 (ja) 2019-12-10 2023-08-09 富士通株式会社 データ処理装置およびデータ処理プログラム

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010231252A (ja) * 2009-03-25 2010-10-14 Symantec Corp 電子メールコンテンツ包含を検出するシステム及び方法
JP2011186954A (ja) * 2010-03-10 2011-09-22 Fujitsu Ltd データ管理装置及びデータ管理方法
JP2011215924A (ja) * 2010-03-31 2011-10-27 Fujitsu Ltd 分散処理装置、分散処理プログラムおよび分散処理方法
JP2014504411A (ja) * 2010-12-20 2014-02-20 テレフオンアクチーボラゲット エル エム エリクソン(パブル) ピアツーピア・ネットワークにおける検索
JP2013156960A (ja) * 2012-01-31 2013-08-15 Fujitsu Ltd 生成プログラム、生成方法、および生成システム
US9692847B2 (en) 2013-06-06 2017-06-27 Fujitsu Limited Content distribution method and content distribution server
JP2017506444A (ja) * 2013-12-12 2017-03-02 アルカテル−ルーセント ワイヤレス環境におけるオブジェクトの検出
JP7323804B2 (ja) 2019-12-10 2023-08-09 富士通株式会社 データ処理装置およびデータ処理プログラム
JP2021140634A (ja) * 2020-03-09 2021-09-16 日本電気株式会社 サーバ装置、エッジ機器、処理パタン特定方法及び制御プログラム
US11575604B2 (en) 2020-03-09 2023-02-07 Nec Corporation Server apparatus, edge equipment, process pattern specifying method, and control program

Similar Documents

Publication Publication Date Title
US8688912B2 (en) Management of object mapping information corresponding to a distributed storage system
JP2008102795A (ja) ファイル管理装置、システム及びプログラム
US8447801B1 (en) Content sharing with limited cloud storage
JP5043937B2 (ja) 分散システム内の連合リソース発見のための方法およびコンピュータ・プログラム
US7664742B2 (en) Index data structure for a peer-to-peer network
JP5456670B2 (ja) 分散ファイルシステムのための効率的な更新
US8296283B2 (en) DHT-based distributed file system for simultaneous use by millions of frequently disconnected, world-wide users
US9311326B2 (en) Virtual file system for automated data replication and review
US20160156631A1 (en) Methods and systems for shared file storage
US8676855B2 (en) Distributed storage system, management apparatus, node apparatus, recording medium on which node program is recorded, page information acquisition method, recording medium on which page information sending program is recorded, and page information sending method
KR20150088442A (ko) 정보 중심 네트워크 기반 분산파일 관리 방법 및 장치
KR20060125757A (ko) 기업 저장 시스템 관리를 위한 컴퓨터화된 시스템, 방법 및프로그램 매체
KR20110027688A (ko) 로컬 호스팅된 캐시 및 암호 해시 함수를 사용하여 네트워크 트래픽을 감소시키는 방법 및 시스템
JP2008535073A (ja) コンピュータネットワーク
US9875212B1 (en) Managing cached information corresponding to a distributed storage system
US20140244794A1 (en) Information System, Method and Program for Managing the Same, Method and Program for Processing Data, and Data Structure
US8621182B1 (en) Management of object mapping information corresponding to a distributed storage system
US8316213B1 (en) Management of object mapping information corresponding to a distributed storage system
JP2005063374A (ja) データ管理方法、データ管理装置、およびそのためのプログラムならびに記録媒体。
US20110029587A1 (en) Updating Retrieval Codes In Response To File Transfers
JP2007156700A (ja) 情報検索方法、情報登録方法およびネットワークサービス情報検索システム
TK et al. An efficient and secure information retrieval framework for content centric networks
US8521771B1 (en) Management of class-associated object mapping information corresponding to a distributed storage system
Abawajy et al. A framework for scalable distributed provenance storage system
US10375012B2 (en) Managed LDAP entries