以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理システムを示す図である。第1の実施の形態の情報処理システムは、情報処理装置1およびストレージ装置2を含む。情報処理装置1およびストレージ装置2は、所定のケーブルを用いて接続されている。情報処理装置1およびストレージ装置2は、ネットワークを介して接続されてもよい。
ストレージ装置2は、複数の記憶媒体を収納可能である。記憶媒体は、例えば、磁気テープ媒体である。記憶媒体は、光ディスク媒体などの他の種類の記憶媒体でもよい。記憶媒体は、各種のデータを記憶する。ストレージ装置2は、アーカイブ装置と呼ばれることもある。
情報処理装置1は、ストレージ装置2に収納された記憶媒体に対するアクセス要求の入力を受け付ける。アクセス要求は、情報処理装置1に接続された入力デバイスを用いたユーザによる所定の操作によって情報処理装置1に入力されてもよいし、ネットワークを介して情報処理装置1に接続された他の装置により情報処理装置1に入力されてもよい。
情報処理装置1は、受け付けたアクセス要求に応じて、アクセス対象の記憶媒体に対するアクセスの実行をストレージ装置2に指示する。アクセス要求は、記憶媒体に対するデータの書き込みや、記憶媒体からのデータの読み出しなどである。情報処理装置1は、ファイルの単位でデータを管理する。
情報処理装置1は、保存対象のファイルおよびファイルに付随するメタデータを受け付け、メタデータに基づきファイルを分類する機能を提供する。
情報処理装置1は、記憶部1aおよび処理部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部1bは、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部1bはプログラムを実行するプロセッサであってもよい。「プロセッサ」には、複数のプロセッサの集合(マルチプロセッサ)も含まれ得る。
また、ストレージ装置2は、情報処理装置1と接続可能であり、シェルフ2a、ドライブ2bおよびロボット2cを有する。
シェルフ2aは、複数の記憶媒体を収納する。複数の記憶媒体は、記憶媒体M1,M2を含む。
ドライブ2bは、各々の記憶媒体へのアクセスに用いられる。ドライブ2bは、1つの記憶媒体を収納し、収納された記憶媒体に対するアクセス(ファイルの読み出しや書き込み)を行う。ストレージ装置2は、ドライブ2bを複数備えてもよい。
ロボット2cは、シェルフ2aに収納された記憶媒体M1,M2をドライブ2bに搬送してドライブ2bに収める。また、ロボット2cは、ドライブ2bに収納された記憶媒体M1,M2をシェルフ2aに搬送してシェルフ2aの所定の位置に収める。ロボット2cが一度に搬送する記憶媒体の数は1つである。例えば、記憶媒体M1がドライブ2bに収納されている場合に記憶媒体M2をドライブ2bに収納しようとするとき、ロボット2cは、ドライブ2bからシェルフ2aに記憶媒体M1を搬送した後に、シェルフ2aからドライブ2bに記憶媒体M2を搬送する。
ストレージ装置2は、処理部1bによるアクセス指示を受け付ける。アクセス指示は、アクセス対象の記憶媒体、書き込みや読み出しのアクセス種別、および、書き込み対象のファイルや読み出し対象のファイルの指定を含む。例えば、ストレージ装置2は、アクセス指示により、記憶媒体M1に対するアクセスが要求されていることを認識する。ストレージ装置2は、ロボット2cにより、シェルフ2aに収納されている記憶媒体M1を、ドライブ2bに搬送する。ストレージ装置2は、ドライブ2bを用いて、アクセス指示に応じたファイルの書き込みや読み出しを記憶媒体M1に対して実行し、実行結果を情報処理装置1に提供する。実行結果は、例えば、ファイルの書き込みであれば、書き込み完了の通知であり、ファイルの読み出しであれば、読み出したファイルである。
ファイルには、前述のようにメタデータが対応付けられる。メタデータは、ファイルの内容を示す単語または単語列を含むデータである。メタデータは、例えば、保存対象のファイルとともに、ユーザにより情報処理装置1に対して入力される。ユーザは、例えば、保存対象のファイルに対する説明文(例えば、所定の文字数以下の文字列)を、メタデータとして情報処理装置1に入力する。
記憶部1aは、ファイル毎のメタデータを、ファイルの識別情報(ファイルID(IDentifier)と称する)に対して記憶する。例えば、記憶部1aは、テーブルT1を記憶する。テーブルT1は、ファイルIDと当該ファイルIDのファイルに対して入力されたメタデータとが対応付けられた情報である。例えば、テーブルT1には、ファイルID“f1”およびメタデータ“m1”というレコードを含む。このレコードは、ファイルID“f1”のファイルのメタデータの内容が“m1”であることを示す。例えば、“m1”は複数の単語を含む文字列である。テーブルT1には、他のファイルIDに対しても同様にメタデータが登録される。ここで、以下の説明では、ファイルID“f1”のファイルをファイルf1、“m1”で示される内容のメタデータを、メタデータm1と称することがある。
処理部1bは、保存するファイルおよびメタデータを取得する。処理部1bは、ファイルに対応付けてメタデータを記憶部1aに格納する。例えば、処理部1bは、ファイルIDおよびメタデータをテーブルT1に登録する。なお、処理部1bは、入力されたファイルについても、まずは、記憶部1aに格納する。あるいは、処理部1bは、入力されたファイルを、まずは、情報処理装置1に内蔵または外付けされた所定の記憶装置(図1では図示を省略している)に格納してもよい。
処理部1bは、記憶部1aに記憶されたメタデータに含まれる単語または単語列に応じたメタデータの特徴量を算出し、特徴量に基づいてファイルの属する分類を決定する。
例えば、処理部1bは、メタデータに含まれる単語または単語列からメタデータ内において、予め定められた所定の複数の単語(または単語列)それぞれの数を計数する。そして、処理部1bは、当該所定の複数の単語(または単語列)それぞれの数を要素として含む特徴ベクトルをメタデータの特徴量とする。この場合、メタデータの特徴量は、予め定められた所定の複数の単語(または単語列)の数の次元をもつ所定の空間(特徴空間と呼ばれる)における特徴ベクトルとなる。
なお、処理部1bは、所定の複数の単語または単語列を示す単語辞書の情報を、記憶部1aに蓄積されたメタデータに基づいて予め作成してもよい。例えば、処理部1bは、蓄積されたメタデータに対して形態素解析による単語または単語列の抽出を行い、解析したメタデータ全体における出現回数が所定の回数範囲(ある下限から上限の間)にある単語または単語列を、単語辞書に登録することが考えられる。ここで、所定の回数範囲という条件を設ける理由は、出現回数が少な過ぎる単語または単語列、および、出現回数が多過ぎる単語または単語列は、後述する特徴ベクトルによる適切な分類を妨げる要因になり得るからである。
処理部1bは、メタデータの特徴ベクトルを、例えば、K-means法(K平均法)と呼ばれる演算を用いて分類することができる。K-means法は、データ(ここでは、特徴ベクトル)を、K個(Kは2以上の整数)のクラスタに分類する方法を提供する。例えば、1つの記憶媒体に対して1つのクラスタを割り当てる場合、クラスタ数Kは、複数の記憶媒体の数に相当する。記憶媒体M1,M2のみを用いるならば、K=2である。この場合、「分類」(あるいはクラスタ)を示す情報は、特徴空間における座標の情報として求められる。
例えば、処理部1bは、記憶部1aに記憶されたテーブルT1に基づいて、複数のファイルそれぞれに対して特徴量を算出する。そして、処理部1bは、各ファイルの特徴量に基づいて、複数のファイルのうちの一部が属する第1の分類の情報を生成し、複数のファイルのうちの他の一部が属する第2の分類の情報を生成してもよい。
一例として、処理部1bにより、ファイルf1,f2,f3,f4,f5,f6を、記憶媒体M1に対応する第1の分類(第1のクラスタ)、および、記憶媒体M2に対応する第2の分類(第2のクラスタ)に分類することを考える。
ファイルf1に対応するメタデータは、メタデータm1である。ファイルf2に対応するメタデータは、メタデータm2である。ファイルf3に対応するメタデータは、メタデータm3である。ファイルf4に対応するメタデータは、メタデータm4である。ファイルf5に対応するメタデータは、メタデータm5である。ファイルf6に対応するメタデータは、メタデータm6である。
処理部1bは、メタデータm1に基づいて、メタデータm1に含まれる所定の単語(または単語列)の数を算出し、メタデータm1に対応する特徴ベクトルV1を得る。メタデータm1は、ファイルf1に対応するので、メタデータm1に対応する特徴ベクトルは、ファイルf1に対応する特徴ベクトルであるともいえる。同様にして、処理部1bは、メタデータm2に基づいて特徴ベクトルV2を得る。処理部1bは、メタデータm3に基づいて特徴ベクトルV3を得る。処理部1bは、メタデータm4に基づいて特徴ベクトルV4を得る。処理部1bは、メタデータm5に基づいて特徴ベクトルV5を得る。処理部1bは、メタデータm6に基づいて特徴ベクトルV6を得る。
そして、処理部1bは、K-means法によって、特徴ベクトルV1,V2,V3,V4,V5,V6を2つの分類(クラスタ)に分ける。例えば、まず、処理部1bは、特徴ベクトルV1,V2,V3,V4,V5,V6を、ランダムに、第1のクラスタおよび第2のクラスタに分け、第1のクラスタの重心C1と、第2のクラスタの重心C2とを求める。第1のクラスタの重心C1は、例えば、第1のクラスタに属する各特徴ベクトルの座標の平均値である。第2のクラスタの重心C2は、例えば、第2のクラスタに属する各特徴ベクトルの座標の平均値である。そして、処理部1bは、特徴ベクトルV1,V2,V3,V4,V5,V6それぞれを、最短の距離にある重心に割り当て直し、重心C1,C2を計算し直す。処理部1bは、この処理を繰り返し実行して、重心C1,C2を補正し、例えば、割り当てに変化がなくなった場合や割り当てが変更される特徴ベクトルの数が所定数以下となった場合に、重心C1,C2を確定する。
確定時点において、第1のクラスタに属する特徴ベクトルに対応するファイルは、第1のクラスタ(第1の分類)に所属することになる。確定時点において、第2のクラスタに属する特徴ベクトルに対応するファイルは、第2のクラスタ(第2の分類)に所属することになる。例えば、分類の結果、処理部1bは、ファイルf1,f3,f5の所属先を第1の分類と決定し、ファイルf2,f4,f6の所属先を第2の分類と決定する。こうして、処理部1bは、ファイルに対応する特徴ベクトルにより示される第1の位置と分類に対応する重心を示す重心位置ベクトルにより示される第2の位置との距離に基づいて、ファイルの属する分類を決定する。
処理部1bは、決定した分類に対応する記憶媒体にファイルを格納する。例えば、第1の分類に対応する記憶媒体は、記憶媒体M1である。したがって、処理部1bは、第1の分類に属するファイルf1,f3,f5を記憶媒体M1に格納する。例えば、処理部1bは、ファイルf1,f3,f5を記憶媒体M1に格納するようストレージ装置2に指示することで、ファイルf1,f3,f5を記憶媒体M1に書き込むようにストレージ装置2を制御する。ストレージ装置2は、指示に応じて、ロボット2cにより記憶媒体M1をドライブ2bに移動させ、記憶媒体M1に対するファイルf1,f3,f5の書き込みを行う。また、第2の分類に対応する記憶媒体は、記憶媒体M2である。したがって、処理部1bは、第2の分類に属するファイルf2,f4,f6を記憶媒体M2に格納する。例えば、処理部1bは、ファイルf2,f4,f6を記憶媒体M2に格納するようストレージ装置2に指示することで、ファイルf2,f4,f6を記憶媒体M2に書き込むようにストレージ装置2を制御する。ストレージ装置2は、指示に応じて、ロボット2cにより記憶媒体M2をドライブ2bに移動させ、記憶媒体M2に対するファイルf2,f4,f6の書き込みを行う。
処理部1bは、新たに入力されたファイルおよびメタデータに対して、当該メタデータから特徴量(特徴ベクトル)を計算し、先に求めた重心C1,C2により、当該ファイルの所属先の分類(クラスタ)を決定することもできる。具体的には、処理部1bは、重心C1,C2のうち、計算した特徴ベクトルから最短の距離にある重心を特定する。処理部1bは、特定した重心に対応する分類に、新たに入力されたファイルを所属させる。例えば、処理部1bは、新たに入力されたファイルを、第1の分類に所属させると決定する。その場合、処理部1bは、新たに入力されたファイルを記憶媒体M1に格納する。例えば、処理部1bは、新たに入力されたファイルを記憶媒体M1に書き込むようストレージ装置2に指示することで、新たに入力されたファイルを記憶媒体M1に書き込むようストレージ装置2に指示する。ストレージ装置2は、指示に応じて、ロボット2cにより記憶媒体M1をドライブ2bに移動させ、記憶媒体M1に対する新たに入力されたファイルの書き込みを行う。
こうして、情報処理装置1は、類似する内容を含むと推定される複数のファイルを同一の記憶媒体に格納することができる。理由は次の通りである。
メタデータから算出される上記の特徴量を用いたファイルの分類方法によれば、特徴空間上の位置が比較的近いメタデータをもつファイル同士が同一の分類に所属することになる。これは、同じ分類に属するファイル同士は、メタデータに含まれる所定の単語の出現数が比較的近似することを意味する。また、メタデータは、前述のように、ファイルの内容を示す説明文である。したがって、メタデータに含まれる所定の単語の出現数が近似する各ファイルの内容は、類似している可能性が高いと推定される。よって、上記のようにメタデータの特徴量に応じてファイルを分類することで、類似する内容を含むと推定される複数のファイルを同一の分類に所属させることができる。そして、処理部1bは、所属先が同じ分類である複数のファイルを同一の記憶媒体に格納することで、類似する内容を含むと推定される複数のファイルを同一の記憶媒体に格納することができる。
これにより、ファイルの読み出しを高速化できる。具体的には、情報処理装置1は、内容の類似する複数のファイルを同一の記憶媒体にまとめて格納できる。このため、情報処理装置1は、ストレージ装置2において、内容の類似する複数のファイルを読み出す場合に、記憶媒体の入れ替えを行わなくてよい。
特に、ユーザは、あるファイルの内容を閲覧した後に、当該ファイルと内容の類似する別のファイルの内容を閲覧することが少なくない。例えば、ユーザは、記憶媒体M1に格納されたファイルf1の内容を閲覧した後に、ファイルf1と内容の類似するファイルf3,f5の内容も閲覧したいと考えることがある。この場合、仮に、ファイルf3,f5が記憶媒体M2に格納されていると、ドライブ2bに対する記憶媒体M1,M2の入れ替えが発生し、ファイルf3,f5の内容をユーザが閲覧できるまでに時間がかかる。
一方、処理部1bは、ファイルf1,f3,f5を記憶媒体M1にまとめて格納する。このため、ユーザがファイルf1の内容を閲覧した後に、ファイルf3,f5の内容も閲覧したい場合に、処理部1bは、記憶媒体M1からファイルf3,f5を取得できる。このため、記憶媒体の入れ替えを行わずに、類似するファイルを高速に読み出せる。
なお、処理部1bは、単語または単語列を含む検索キーのユーザによる入力を受け付け、当該検索キーに基づいて、ファイルの読み出しを行ってもよい。例えば、処理部1bは、検索キーの特徴量を算出し、検索キーの特徴量に基づいて検索キーの属する分類を決定する。例えば、検索キーに対して求められた特徴ベクトルと特徴空間上の位置が最も近い重心に対応する分類が、検索キーの属する分類である。そして、処理部1bは、決定した分類に対応する記憶媒体に記憶されたファイルを読み出す。このようにすれば、ユーザが閲覧したい内容に対応する分類の記憶媒体を容易に検索可能となり、また、ユーザが閲覧したい内容を含む複数のファイルを高速に読み出せる。
また、ファイルは、複数のファイルを含むファイルセットであってもよい。例えば、1つのファイルセットに対して1つのメタデータが対応付けられてもよい。この場合、処理部1bは、ファイルセットの単位に分類を決定し、分類に応じた記憶媒体にファイルセットを格納することになる。
また、情報処理装置1は、ストレージ装置2に内蔵されてもよい。すなわち、ストレージ装置2が、記憶部1aおよび処理部1bに相当するハードウェアを備えてもよい。この場合、ストレージ装置2により、記憶部1aおよび処理部1bの機能を実現することができる。
さらに、1つの分類に対して1つの記憶媒体を対応付けてもよいし、複数の分類に対して1つの記憶媒体を対応付けてもよい。この場合、記憶媒体における全記憶領域を複数の記憶領域(例えば、磁気テープ上の物理的に連続する記憶領域)に分け、1つの記憶領域を1つの分類に割り当ててもよい。この場合、処理部1bは、記憶媒体上の記憶領域を表すアドレス範囲を分類に対応付けた情報を記憶部1aに格納し、当該情報により分類に対応する記憶媒体および記憶領域を管理する。
あるいは、上記の例では、主に、記憶媒体として磁気テープ媒体や光ディスク媒体を例示したが、他の例も考えられる。例えば、情報処理装置1または情報処理装置1に外付けされた装置に内蔵されるHDDやSSD(Solid State Drive)などの複数の記憶装置を用いて論理的な記憶領域(例えば、仮想ボリューム)が形成されることもある。このような場合に、1つの論理的な記憶領域を、1つの分類に割り当ててもよい。この場合、処理部1bは、論理的な記憶領域と分類とを対応付けた情報を記憶部1aに格納し、当該情報により分類に対応する論理的な記憶領域を管理する。
本例示によれば、処理部1bの処理を次のように言い表すことができる。すなわち、処理部1bは、記憶部1aに記憶されたメタデータに含まれる単語または単語列に応じたメタデータの特徴量を算出し、当該特徴量に基づいてファイルの属する分類を決定し、決定した分類に対応する記憶媒体または記憶領域にファイルを格納する。内容の類似する複数のファイルを単一の記憶領域に格納することで、前述のように、内容の類似する複数のファイルの読み出しを高速化できる。
以下では、ファイルのアーカイブ運用を支援する情報処理システムを例示し、情報処理装置1の機能をより詳細に説明する。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムの例を示す図である。第2の実施の形態の情報処理システムは、サーバ100、ライブラリ装置200およびクライアント300を含む。
サーバ100は、所定のケーブルを用いてライブラリ装置200と接続している。サーバ100は、SAN(Storage Area Network)などのネットワークを介して、ライブラリ装置200と接続してもよい。また、サーバ100は、クライアント300とネットワーク10を介して接続している。ネットワーク10は、例えば、LAN(Local Area Network)である。
サーバ100は、クライアント300における業務処理に用いられるデータをクライアント300に提供するサーバコンピュータである。例えば、サーバ100は、ファイルサーバとして機能し、ファイル単位でデータを扱う。サーバ100は、第1の実施の形態の情報処理装置1の一例である。
サーバ100は、ライブラリ装置200を用いたアーカイブ機能を提供する。「アーカイブ」とは、アクセス頻度は低いが保存に比較的大きなストレージ容量を要するファイル(例えば、動画ファイル、医療用画像ファイル、または、経理情報など)を比較的長期に保管することを意味する。具体的には、アクセス頻度の高いファイルは、テープ媒体に比べて高速にアクセスが可能なHDDやSSD(サーバ100またはサーバ100に外付けされたストレージに内蔵された記憶装置)に格納しておく。一方、アクセス頻度の低いファイルは、HDDやSSDよりも安価なテープ媒体(あるいは、光ディスク媒体)にアーカイブしておくことで、低コストで大量データを保存可能となる。
ライブラリ装置200は、複数のテープ媒体を収納可能な装置である。ここで、テープ媒体は、磁気テープ媒体または磁気テープなどと呼ばれることもある。テープ媒体の規格の一例として、LTO(Linear Tape-Open、登録商標)が挙げられる。ただし、テープ媒体は、DLT(Digital Linear Tape、登録商標)やDDS(Digital Data Storage)など、LTO以外の規格のものでもよい。ライブラリ装置200は、第1の実施の形態のストレージ装置2の一例である。
クライアント300は、ユーザの業務に用いられるクライアントコンピュータである。クライアント300は、サーバ100を介してライブラリ装置200に収納されたテープ媒体に記憶されたファイルにアクセスする。ユーザは、クライアント300を操作して、ファイルの内容の確認や、ファイルの内容の更新や、ファイルの検索を行える。例えば、クライアント300を用いるユーザは、クライアント300により実行される所定のターミナルエミュレータを用いて、サーバ100にログインし、ファイル操作のコマンドをサーバ100に入力してもよい。
図3は、サーバのハードウェア例を示す図である。サーバ100は、プロセッサ101、RAM102、HDD103、ホストバスアダプタ(HBA:Host Bus Adapter)104、画像信号処理部105、入力信号処理部106、媒体リーダ107および通信インタフェース108を有する。各ハードウェアはサーバ100のバスに接続されている。
プロセッサ101は、サーバ100の情報処理を制御するハードウェアである。プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ101は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM102は、サーバ100の主記憶装置である。RAM102は、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM102は、プロセッサ101による処理に用いる各種データを記憶する。
HDD103は、サーバ100の補助記憶装置である。HDD103は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。サーバ100は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
HBA104は、ライブラリ装置200と接続するインタフェースである。HBA104としては、例えば、ファイバチャネル(FC:Fibre Channel)インタフェースやSAS(Serial Attached SCSI、SCSIはSmall Computer System Interfaceの略)を用いることができる。
画像信号処理部105は、プロセッサ101からの命令に従って、サーバ100に接続されたディスプレイ11に画像を出力する。ディスプレイ11として、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部106は、サーバ100に接続された入力デバイス12から入力信号を取得し、プロセッサ101に出力する。入力デバイス12として、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
媒体リーダ107は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ107は、例えば、プロセッサ101からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース108は、ネットワーク10を介して他の装置と通信を行う。通信インタフェース108は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
なお、クライアント300も、サーバ100と同様のハードウェアを用いて実現できる。
図4は、ライブラリ装置のハードウェア例を示す図である。ライブラリ装置200は、プロセッサ201、RAM202、フラッシュメモリ203、接続インタフェース204、シェルフ205、ロボット206およびドライブ207を有する。各ハードウェアは、ライブラリ装置200のバスに接続されている。
プロセッサ201は、ライブラリ装置200の情報処理を制御するハードウェアである。プロセッサ201は、マルチプロセッサであってもよい。プロセッサ201は、例えばCPU、DSP、ASICまたはFPGAなどである。プロセッサ201は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM202は、ライブラリ装置200の主記憶装置である。RAM202は、プロセッサ201に実行させるファームウェアのプログラムの少なくとも一部を一時的に記憶する。また、RAM202は、プロセッサ201による処理に用いる各種データを記憶する。
フラッシュメモリ203は、ライブラリ装置200の補助記憶装置である。フラッシュメモリ203は、内蔵の記憶素子に対して、電気的にデータの書き込みおよび読み出しを行う。フラッシュメモリ203は、ファームウェアのプログラムおよび各種データを記憶する。
接続インタフェース204は、サーバ100と接続するインタフェースである。接続インタフェース204としては、例えば、FCやSASのインタフェースを用いることができる。
シェルフ205は、複数のテープ媒体を収納する収納棚である。シェルフ205は、複数のセルを含む。セルは、1つのテープ媒体を収納する収納スペースである。セルには、IDが付される。また、セルと当該セルに収納されるテープ媒体とは1対1に対応しており、セルのIDによってテープ媒体を識別することもできる。
例えば、シェルフ205には、テープ媒体MT1,MT2,MT3,MT4,・・・が収納されている。テープ媒体MT1,MT2,MT3,MT4,・・・として、例えば、前述のようにLTO規格に準拠したものを使用することができる。
ロボット206は、プロセッサ201からの指示に応じて、シェルフ205に収納されたテープ媒体をドライブ207に搬送する。また、ロボット206は、プロセッサ201からの指示に応じて、ドライブ207に収納されたテープ媒体を、シェルフ205に搬送する。例えば、ロボット206は、テープ媒体のカートリッジに付されたバーコードやRFIDタグなどを読み取ることで、テープ媒体の媒体名を認識する。
ドライブ207は、プロセッサ201からの指示に応じて、テープ媒体MT1,MT2,MT3,MT4,・・・に対するデータの書き込みや読み出しを行うテープドライブである。ドライブ207には、1つのテープ媒体を収納して、磁気テープに対するデータの書き込みや読み出しを行える。ライブラリ装置200は、2以上のドライブを有してもよい。
図5は、情報処理システムの機能例を示す図である。サーバ100は、記憶部110および制御部120を有する。
記憶部110は、RAM102の記憶領域やHDD103の記憶領域を用いて実現される。また、制御部120は、プロセッサ101により実現される。具体的には、プロセッサ101は、RAM102に記憶されたプログラムを実行することで、制御部120の機能を発揮する。ただし、制御部120は、FPGAやASICなどのハードワイヤードロジックにより実現されてもよい。
記憶部110は、管理情報群を記憶する。管理情報群は、サーバ100が記憶部110に記憶されたファイルセットを分類し、テープ媒体MT1,・・・に記録するために用いる情報群である。管理情報群については、後で図8を用いて説明する。
制御部120は、クライアント300からファイルセットおよびメタデータを受け付け、ファイルセットおよびメタデータを記憶部110に格納する。なお、制御部120は、ファイルセットをテープ媒体にアーカイブする前に、外付けストレージ(図示を省略)にファイルセットを格納しておいてもよい。
制御部120は、テープ媒体に対するファイルの書き込みや読み出しのアクセスを制御する。制御部120は、ファイルセットやファイルセットを分類した区分であるクラスタに対するアクセス要求をクライアント300から取得すると、該当するファイルセットやクラスタを格納するテープ媒体を特定する。そして、制御部120は、特定したテープ媒体に対するアクセスをライブラリ装置200に指示する。
また、制御部120は、記憶部110に記憶された複数のファイルセットをアーカイブする際、各ファイルセットに付随するメタデータに基づいて、ファイルセットをクラスタに分類し、クラスタ毎にテープ媒体に格納する。具体的には、制御部120は、ファイルセットに付随するメタデータについて管理情報群を用いて分類し、ファイルセットが所属するクラスタを決定する。クラスタへの分類処理については、後で図15を用いて説明する。また、ファイルセットおよびメタデータについては、後で図7を用いて説明する。
ライブラリ装置200は、アクセス実行部210を有する。アクセス実行部210は、プロセッサ201により実現される。具体的には、プロセッサ201は、RAM202に記憶されたプログラムを実行することで、アクセス実行部210の機能を発揮する。ただし、アクセス実行部210は、FPGAやASICなどのハードワイヤードロジックにより実現されてもよい。
アクセス実行部210は、サーバ100を介してファイルセットやクラスタに対するアクセスの指示を受け付ける。アクセス実行部210は、ファイルセットやクラスタに対するアクセスの指示に応じて、ロボット206を制御し、指示されたテープ媒体を、ドライブ207に搬送する。アクセス実行部210は、ドライブ207を用いて該当のテープ媒体に格納されたファイルセットやクラスタを読み出し、読み出したファイルセットやクラスタを制御部120に応答する。ファイルセットやクラスタに対するアクセスの指示とは、例えば、ファイルセットやクラスタに対する読み出し、検索、変更などの指示である。
図6は、ファイルセットおよびメタデータの入力画面の例を示す図である。入力画面400は、ファイルセット401およびメタデータ402を表示した入力画面の一例である。例えば、ユーザは、入力画面400を用いて、アーカイブ対象のファイルセットおよび当該ファイルセットに付随するメタデータをサーバ100に入力する。ここでは、ファイルセット401の一例として電子カルテを示し、メタデータ402の一例として電子カルテに対して医師などのユーザにより入力された所見を示す。ファイルセット401およびメタデータ402は、ユーザによってクライアント300から入力される情報である。
例えば、ユーザは、サーバ100により提供される入力画面400を、クライアント300により表示させ、入力画面400を確認する。ユーザは、クライアント300に接続された入力デバイスを操作することで、入力画面400の表示内容に従って、ファイルセット401やメタデータ402のサーバ100への入力を行える。入力画面400は、ディスプレイ11に表示されてもよい。ユーザは、ディスプレイ11に表示された入力画面400の表示内容に従って、入力デバイス12を操作することで、ファイルセット401やメタデータ402のサーバ100への入力を行うこともできる。
ファイルセット401およびメタデータ402は、記憶部110に蓄積される。記憶部110に蓄積されたファイルセット401およびメタデータ402は、サーバ100によってクラスタに分類される。ファイルセット401およびメタデータ402は、ライブラリ装置200により、クラスタ毎にテープ媒体MT1,・・・に格納される。
ファイルセット401は、1以上のファイル(テキストファイル、音声ファイル、画像ファイルなど)を含むファイルの集合である。ファイルセット401の一例として、電子カルテを示す。ファイルセット401は、患者名や患者番号などの患者に関するテキストファイルと、診察記録のテキストファイル“Medical-record.txt”とを含む。また、ファイルセット401は、検査記録のテキストファイル“Inspection-record.txt”と、レントゲン写真の画像ファイル“Xray-photo.jpg”とを含む。なお、ファイルセット401に含まれるファイルは、複数のファイルに限らず、単数のファイルであってもよい。
メタデータ402は、ファイルセット401の説明やファイルセット401を検索するためのインデックスとなる情報である。メタデータ402は、ファイルセット401に付加するテキストを含む。サーバ100は、メタデータ402から算出される特徴ベクトルに基づいて、ファイルセット401を分類する。
メタデータ402の一例として、電子カルテのファイルセット401に付加されるテキストデータを示す。例えば、メタデータ402は、「胃がん。入院し、抗がん剤の投与および患部への放射線の照射を行うが45回で中止する。退院後、小腸に移転。・・・」というテキストを含む。
なお、ファイルセット401およびメタデータ402に含まれるファイルの種類は一例に過ぎず、その他の種類のファイルを含む情報でもよい。
また、上述の例では、ファイルセット401およびメタデータ402の一例として電子カルテおよび電子カルテに対する所見を示したが、その他のものでもよい。例えば、電子書籍をファイルセットとし、電子書籍に付随する目次、索引、著者紹介文、書籍レビューなどをメタデータとしてもよい。
図7は、管理情報群およびファイルセットの配置の例を示す図である。管理情報群は、ファイルセットを分類するために用いられる情報である。管理情報群は、記憶部110に記憶される情報である。管理情報群は、メタデータ管理情報112、専門用語辞書113、単語辞書114、特徴ベクトル管理情報115、クラスタ管理情報116およびファイル位置情報117を含む。なお、メタデータ管理情報112、専門用語辞書113、単語辞書114、特徴ベクトル管理情報115、クラスタ管理情報116およびファイル位置情報117の詳細は、後で図8乃至図13を用いて説明する。
未分類ファイルセット群111は、クライアント300から入力され、記憶部110に蓄積したファイルセットおよびメタデータであって、制御部120によって未だクラスタに分類されていないものをいう。
ここで、制御部120による管理情報群およびファイルセットの操作概要を説明する。
制御部120は、記憶部110に蓄積した未分類ファイルセット群111からメタデータを取得し、取得したメタデータをメタデータ管理情報112に登録する。
制御部120は、メタデータ管理情報112に登録されたメタデータに形態素解析を実行し、メタデータの文章から名詞に相当する単語を抽出する。このとき、制御部120は、専門用語辞書113を用いてメタデータから専門用語の名詞に相当する単語も抽出する。また、制御部120は、所定のフィルタを用いて、抽出された単語のうち、意味のある単語を絞り込む。制御部120は、絞り込んだ単語のうち、蓄積されたメタデータにおいて出現回数が所定範囲にある単語を、単語辞書114に登録する。単語辞書114に登録された単語の数が、後述の特徴ベクトルが属する特徴空間の次元に相当する。
制御部120は、各メタデータについて単語辞書114に基づき単語の出現頻度の配列を求め、単語の出現頻度の配列から特徴ベクトルを作成し、特徴ベクトルを特徴ベクトル管理情報115に格納する。制御部120は、特徴ベクトル管理情報115に格納した特徴ベクトルを基に、それぞれのメタデータをK-means法を用いて、クラスタに分類する。
K-means法は、メタデータから作成した特徴ベクトルを、K個(Kは2以上の整数)のクラスタに分類する方法である。クラスタを示す情報は、特徴空間における座標の情報として求められる。特徴ベクトルは、複数のクラスタのうちクラスタの座標との距離が最短のクラスタに分類される。
例えば、まず、制御部120は、蓄積された所定数のメタデータに対応する複数の特徴ベクトルを、ランダムに、K個のクラスタに分け、各クラスタを示す重心を求める。あるクラスタを示す重心は、例えば、該当のクラスタに属する各特徴ベクトルの座標の平均値である。そして、制御部120は、該当の複数の特徴ベクトルそれぞれを、最短の距離にある重心に割り当て直し、各クラスタを示す重心を計算し直す。制御部120は、この処理を繰り返し実行して、各クラスタを示す重心を補正し、例えば、割り当てに変化がなくなった場合や割り当てが変更される特徴ベクトルの数が所定数以下となった場合に、各クラスタを示す重心を確定する。確定時点において、ある特徴ベクトルに対応するファイルは、該当の特徴ベクトルからの距離が最も近い重心に対応するクラスタに所属することになる。新たなファイルセットをクラスタに分類する際には、制御部120は、新たなファイルセットのメタデータの特徴ベクトルと最も近い重心に対応するクラスタに、新たなファイルセットを所属させればよい。
制御部120は、K-means法により、クラスタに対応する特徴空間上の座標(クラスタを示す重心の座標)を示す重心位置ベクトルを求め、クラスタ管理情報116に登録する。なお、K-means法は、メタデータに基づいてファイルセットを分類する方法の一例に過ぎず、他の分類方法を用いることを妨げるものではない。
制御部120は、K-means法により各メタデータに対応する各ファイルセットが所属するクラスタを決定する。制御部120は、クラスタに対応するテープ媒体に対して当該クラスタに属する複数のファイルセットを記録する指示をライブラリ装置200に出力する。
このように、制御部120は、記憶部110に蓄積した未分類ファイルセット群をクラスタに分類し、分類したクラスタ毎にファイルセットをテープ媒体MT1,・・・に格納する。
図8は、メタデータ管理情報の例を示す図である。メタデータ管理情報112は、メタデータの管理に用いられる情報である。メタデータ管理情報112は、記憶部110に格納される。メタデータ管理情報112は、メタデータID、ファイルセットIDおよびメタデータの項目を含む。
メタデータIDの項目には、メタデータを識別するための識別情報(メタデータID)が登録される。ファイルセットIDの項目には、ファイルセットを識別するための識別情報(ファイルセットID)が登録される。メタデータの項目には、メタデータIDで識別されるメタデータの内容であるテキストが登録される。
例えば、メタデータ管理情報112には、メタデータIDが“D01”、ファイルセットIDが“F01”、メタデータが“胃がん。入院し、抗がん剤の投与および患部への放射線の照射を行うが45回で中止する。退院後、小腸に移転。・・・”という情報が登録される。これは、メタデータID“D01”で示されるメタデータが、ファイルセットID“F01”のファイルセットに付随することを示す。また、メタデータID“D01”で示されるメタデータの内容が“胃がん。入院し、抗がん剤の投与および患部への放射線の照射を行うが45回で中止する。退院後、小腸に移転。・・・”であることを示す。
図9は、専門用語辞書の例を示す図である。専門用語辞書113は、メタデータから専門用語に相当する単語を抽出するための情報である。専門用語辞書113は、記憶部110に格納される。なお、専門用語辞書113は、サーバ100が分類対象とするファイルセットの内容に応じて、システム管理者により記憶部110に予め格納される。例えば、ファイルセットの内容が電子カルテである場合、医学用語を含む専門用語辞書113が記憶部110に格納される。
専門用語辞書113は、単語IDおよび単語の項目を含む。単語IDの項目には、単語を識別するための識別情報(単語ID)が登録される。単語の項目には、専門用語の単語(または単語列)が登録される。
例えば、専門用語辞書113には、単語IDが“10000”、単語が“がん”という情報が登録される。これは、単語ID“10000”で示される単語が“がん”であることを示す。
ここで、例えば、単語“食道がん”は、“食道”および“がん”という2つの単語を含む単語列であると考えることもできる。第2の実施の形態の例では、このような単語列も含めて単語と称する。
図10は、単語辞書の例を示す図である。単語辞書114は、メタデータから抽出された単語を管理する情報である。単語辞書114は、記憶部110に格納される。
単語辞書114は、単語および出現数の項目を含む。単語の項目には、メタデータから抽出された単語が登録される。出現数の項目には、メタデータ管理情報112に含まれる全てのメタデータにおける単語の出現数が登録される。
例えば、単語辞書114には、単語が“肺がん”、出現数が“22”という情報が登録される。これは、単語“肺がん”が、メタデータ管理情報112に含まれる全てのメタデータにおいて“22”回出現することを示す。
図11は、特徴ベクトル管理情報の例を示す図である。特徴ベクトル管理情報115は、各メタデータから作成した特徴ベクトルを管理する情報である。特徴ベクトル管理情報115は、記憶部110に格納される。
特徴ベクトル管理情報115は、メタデータIDおよび特徴ベクトルの項目を含む。メタデータIDの項目には、特徴ベクトルの算出に用いられたメタデータの識別情報(メタデータID)が登録される。特徴ベクトルの項目には、当該メタデータに対応する特徴ベクトルが登録される。
例えば、特徴ベクトルの要素に対応する単語が(がん,抗がん剤,放射線,手術,CT,入院,退院,通院,・・・)であるものとする。特徴ベクトル管理情報115には、メタデータIDが“D01”、特徴ベクトルが“(1,3,1,0,0,1,1,0,・・・)”という情報が登録される。これは、メタデータID“D01”で示されるメタデータにおいて“がん”が“1”回、“抗がん剤”が“3”回、“放射線”が“1”回、“手術”が“0”回、“CT”が“0”回、“入院”が“1”回、“退院”が“1”回、“通院”が“0”回、・・・(以下略)出現することを示す。
図12は、クラスタ管理情報の例を示す図である。クラスタ管理情報116は、クラスタIDと、クラスタに対応する特徴空間上の重心位置ベクトルとが対応付けられた情報である。クラスタ管理情報116は、記憶部110に格納される。クラスタ管理情報116は、クラスタIDおよび重心位置ベクトルの項目を含む。
クラスタIDの項目には、クラスタの識別情報(クラスタID)が登録される。重心位置ベクトルの項目には、クラスタの特徴空間上の重心位置ベクトル(座標)が登録される。
例えば、クラスタ管理情報116には、クラスタIDが“C01”、重心位置ベクトルが“(0,1,2,0,1,2,3,0,・・・)”という情報が登録される。これは、クラスタID“C01”で示されるクラスタに対応する重心位置ベクトルが“(0,1,2,0,1,2,3,0,・・・)”であることを示す。
図13は、ファイル位置情報の例を示す図である。ファイル位置情報117は、ファイルセットを分類したクラスタおよび該当のクラスタに属するファイルセットを格納したテープ媒体を管理するための情報である。ファイル位置情報117は、記憶部110に格納される。
ファイル位置情報117は、ファイルセットID、クラスタIDおよび媒体IDの項目を含む。ファイルセットIDの項目には、ファイルセットを識別するための識別情報(ファイルセットID)が登録される。クラスタIDの項目には、ファイルセットの分類先のクラスタの識別情報(クラスタID)が登録される。媒体IDの項目には、該当のクラスタに属するファイルセットを記憶するテープ媒体の識別情報(媒体ID)が登録される。
例えば、ファイル位置情報117には、ファイルセットIDが“F01”、クラスタIDが“C01”、媒体IDが“MT01”という情報が登録される。これは、ファイルセットID“F01”で示されるファイルセットが、クラスタID“C01”に分類され、媒体ID“MT01”で識別されるテープ媒体に格納されていることを示す。
次に、サーバ100によるファイルセットの分類およびファイルセットの格納の手順を説明する。
図14は、ファイルセット分類格納処理の例を示すフローチャートである。以下、図14に示す処理をステップ番号に沿って説明する。ステップS11の処理は、クラスタ管理情報116が作成されていない段階において、新たにファイルセットおよびメタデータの入力を受け付けるたびに実行される。
(S11)制御部120は、記憶部110にファイルセットが一定数以上(例えば、ファイルセット数が100以上)蓄積したか否かを判定する。制御部120は、ファイルセットが一定数以上蓄積した場合、ステップS12に処理を進める。制御部120は、ファイルセットが一定数以上蓄積していない場合、ステップS11に処理を進めて、ファイルセットが一定数以上になるまで記憶部110に蓄積されたファイルセット数をチェックする。
(S12)制御部120は、蓄積されたファイルセットをクラスタに分類する処理(分類処理)を行う。分類処理は、記憶部110に蓄積されたファイルセットをクラスタ毎に分類する処理である。クラスタ分類処理は、後で図15を用いて説明する。
(S13)制御部120は、分類処理で分類したファイルセットについて、何れのテープ媒体に格納したかを示す情報をファイル位置情報117に登録する。具体的には、制御部120は、分類したファイルセットのファイルセットIDとクラスタIDとをファイル位置情報117に記憶する。また、制御部120は、クラスタIDに対応するテープ媒体の媒体IDをファイル位置情報117に登録する。
(S14)制御部120は、分類処理で分類したファイルセットをクラスタ毎に、クラスタに対応するテープ媒体に格納する指示をライブラリ装置200に出力する。ライブラリ装置200は、分類したファイルセットをクラスタ毎のテープ媒体に格納する。
図15は、分類処理の例を示すフローチャートである。以下、図15に示す処理をステップ番号に沿って説明する。以下に示す手順は、図14のステップS12に相当する。
(S21)制御部120は、蓄積したファイルセットに対応するメタデータ群を記憶部110から取得し、メタデータ管理情報112に格納する。
(S22)制御部120は、蓄積したファイルセットに対応するメタデータ群に形態素解析を実行する。具体的には、制御部120は、メタデータ管理情報112に格納されたメタデータそれぞれに形態素解析を実行する。制御部120は、形態素解析により、各メタデータから名詞に相当する単語を抽出する。このとき、制御部120は、専門用語辞書113を用いて、専門用語に相当する単語も各メタデータから抽出する。
(S23)制御部120は、抽出された単語の絞り込みを行う。具体的には、制御部120は、記憶部110に予め記憶されたフィルタ辞書を用いて、形態素解析の結果として得られた単語から不要な単語を取り除く。フィルタ辞書には、システム管理者などがファイルセットを分析する際に不要とされる単語が予め登録される。
(S24)制御部120は、フィルタ辞書により絞り込まれた後の単語それぞれについて、メタデータ群における出現数を計数する。
(S25)制御部120は、単語辞書114を作成する。具体的には、制御部120は、フィルタ辞書により絞り込まれた後の単語とステップS24で計数した出現数とを単語辞書114に登録する。
(S26)制御部120は、メタデータ管理情報112に格納された各メタデータについて、特徴ベクトルを作成する。具体的には、制御部120は、単語辞書114に登録された単語に基づき特徴ベクトルの要素を決定し、それぞれのメタデータについて特徴ベクトルの要素となる単語の出現回数を計数し、特徴ベクトルを作成する。制御部120は、作成した特徴ベクトルとメタデータIDとを特徴ベクトル管理情報115に登録する。
なお、制御部120は、単語辞書114に基づき出現回数の多い単語から上位8位の単語を特徴ベクトルの要素として決定することができる。また、制御部120は、単語辞書114に含まれる単語を選択する指示をシステム管理者から受け付け、特徴ベクトルの要素として決定することもできる。
(S27)制御部120は、特徴ベクトル群をK-means法で分類する。なお、特徴ベクトル群をK-means法で分類するに際し、分類するクラスタ数は、例えば、テープ媒体数をドライブ数で割った値の小数点以下を切り上げた整数となる。より具体的には、テープ媒体数が「700」であり、ドライブ数が「20」である場合、クラスタ数は「35」となる。
(S28)制御部120は、ステップS27で分類した結果に基づき、蓄積した各ファイルセットの分類先のクラスタを決定する。具体的には、制御部120は、メタデータが分類されたクラスタを、当該メタデータに対応するファイルセットを分類するクラスタとして決定する。例えば、制御部120は、ファイルセットID「F01」に対応するメタデータがクラスタID「C01」のクラスタに分類された場合、ファイルセットID「F01」で示されるファイルセットをクラスタID「C01」のクラスタに分類する。制御部120は、K-means法により決定された各クラスタの重心位置ベクトルを、クラスタ管理情報116に登録する。そして、制御部120は、分類処理を終了する。
こうして、各ファイルセットが、クラスタに分類されて、クラスタに対応するテープ媒体に格納(アーカイブ)される。
次に、上記の手順によりクラスタ管理情報116が作成された後に、サーバ100が新たに追加されたファイルセットをアーカイブする際の手順を説明する。
図16は、ファイルセット追加処理の例を示すフローチャートである。以下、図16に示す処理をステップ番号に沿って説明する。
(S31)制御部120は、アーカイブ対象の新たなファイルセットとメタデータとの入力を受け付ける。
(S32)制御部120は、クラスタに対するファイルセットの加入処理を行う。加入処理は、追加されたファイルセットをクラスタに分類する(ファイルセットをクラスタに加入させる)処理である。加入処理は、後で図17を用いて説明する。
(S33)制御部120は、加入処理で分類したファイルセットについて、何れのテープ媒体に格納したかを示す情報をファイル位置情報117に記憶する。具体的には、制御部120は、分類したファイルセットのファイルセットIDとクラスタIDとをファイル位置情報117に記憶する。また、制御部120は、クラスタIDに対応するテープ媒体の媒体IDをファイル位置情報117に登録する。
(S34)制御部120は、分類処理で分類したファイルセットの分類先のクラスタに対応するテープ媒体に、当該ファイルセットを格納する指示をライブラリ装置200に出力する。ライブラリ装置200は、分類したファイルセットを該当のテープ媒体に格納する。
なお、制御部120は、アーカイブ対象の新たなファイルセットとメタデータとを受け付けるたびにファイルセット追加処理を実行してもよい。あるいは、制御部120は、所定数の新たなファイルセットとメタデータとを受け付けてから、1つのファイルセット毎にファイルセット追加処理を実行してもよい。
図17は、加入処理の例を示すフローチャートである。以下、図17に示す処理をステップ番号に沿って説明する。以下に示す手順は、図16のステップS32に相当する。
(S41)制御部120は、記憶部110から追加されたファイルセットに対応するメタデータを取得し、メタデータ管理情報112に格納する。
(S42)制御部120は、追加ファイルセットに対応するメタデータに形態素解析を実行する。具体的には、制御部120は、ステップS41でメタデータ管理情報112に格納されたメタデータに形態素解析を実行する。形態素解析は、ステップS22と同様であるため説明を省略する。
(S43)制御部120は、ステップS42における形態素解析の結果に対して、フィルタ辞書による単語の絞り込みを行う。フィルタ辞書による単語の絞り込みは、ステップS23と同様であるため説明を省略する。
(S44)制御部120は、ステップS41においてメタデータ管理情報112に格納したメタデータについて、特徴ベクトルを作成する。特徴ベクトルの作成は、ステップS26と同様であるため説明を省略する。
(S45)制御部120は、クラスタ管理情報116を参照して、特徴ベクトルをクラスタに分類する。具体的には、制御部120は、当該特徴ベクトルに対して特徴空間上の距離が最も近い重心位置ベクトルに対応するクラスタIDのクラスタを、当該特徴ベクトルの分類先とする。
(S46)制御部120は、ステップS45で分類した結果に基づき、追加されたファイルセットを分類するクラスタを決定する。具体的には、制御部120は、ステップS45で特徴ベクトルの分類先としたクラスタを、追加されたファイルセットの分類先とする。
なお、制御部120は、ファイルセットの追加に伴いメタデータ毎の特徴ベクトルが所定数蓄積された場合、追加された各ファイルセットのクラスタ分類を再度決定してもよい。制御部120は、クラスタ分類を再度決定する場合、単語辞書114を変更せずに追加された各ファイルセットのクラスタ分類を行ってもよい。また、制御部120は、単語辞書114を再度作成して、追加された各ファイルセットのクラスタ分類を行ってもよい。
次に、サーバ100によるファイルセット検索の手順を説明する。
図18は、ファイルセット検索処理の例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。以下に示す手順は、サーバ100がクライアント300から検索文章(検索キー)を受け付けた場合に実行される。
(S51)制御部120は、クライアント300から検索文章を受け付ける。
(S52)制御部120は、クラスタ検索処理を行う。クラスタ検索処理は、クライアント300からの検索を受け付け、テープ媒体に格納されたクラスタを検索する処理である。クラスタ検索処理は、後で図19を用いて説明する。
(S53)制御部120は、クラスタ検索処理の結果から、検索文章に該当するクラスタが記憶されたテープ媒体をドライブ207にマウントする指示をライブラリ装置200に出力する。すなわち、制御部120は、検索文章の属するクラスタに対応するテープ媒体を、ライブラリ装置200を用いて、当該テープ媒体に対するアクセスに用いられるドライブ207に移動させる。
(S54)制御部120は、検索文章に該当するクラスタおよびクラスタに含まれるファイルセットの一覧をクライアント300に送信する。クライアント300は、クラスタおよびクラスタに含まれるファイルセットの一覧を受け付け、ファイルセットIDなどをディスプレイに表示する。なお、クライアント300における検索画面の例は、後で図20を用いて説明する。
図19は、クラスタ検索処理の例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。以下に示す手順は、図18のステップS52に相当する。
(S61)制御部120は、クライアント300から受け付けた検索文章に形態素解析を実行する。形態素解析は、検索文章から名詞に相当する単語を抽出する処理である。本ステップにおいて、形態素解析を実行する対象が検索文章であるが、その他はステップS22と同様であるため説明を省略する。
(S62)制御部120は、ステップS61における形態素解析の結果に対して、フィルタ辞書による単語の絞り込みを行う。フィルタ辞書による単語の絞り込みは、ステップS23と同様であるため説明を省略する。
(S63)制御部120は、検索文章の特徴ベクトルを作成する。具体的には、制御部120は、ステップS26で決定した特徴ベクトルの要素となる各単語について、検索文章における各単語の出現回数を計数し、特徴ベクトルを作成する。
(S64)制御部120は、クラスタ管理情報116を参照して、特徴ベクトルをクラスタに分類する。具体的には、制御部120は、当該特徴ベクトルに対して特徴空間上の距離が最も近い重心位置ベクトルに対応するクラスタIDのクラスタを、当該特徴ベクトルの分類先とする。
(S65)制御部120は、ステップS64で分類した結果に基づき、検索文章に該当するクラスタを決定する。具体的には、制御部120は、ステップS64で特徴ベクトルの分類先としたクラスタを、検索文章の分類先とする。
次に、クライアント300に接続されたディスプレイに表示される検索画面の具体例を説明する。
図20は、検索画面の例を示す図である。検索画面501は、クライアント300に接続されたディスプレイに表示される画面の一例である。検索画面501は、検索文章入力欄と、検索実行指示ボタンと、検索結果表示欄と、クラスタ内メタデータ一覧表示指示ボタンと、キーワード絞込指示ボタンとを含む。
ユーザは、検索文章入力欄に検索文章を入力し、検索実行指示ボタンを押下する。クライアント300は、ユーザからの入力を受け付け、入力された検索文章をサーバ100に送信する。クライアント300は、サーバ100から検索結果としてクラスタおよびクラスタに含まれるファイルセットの一覧を受信し、検索結果表示欄に表示する。
ユーザは、検索結果表示欄に表示されたクラスタおよびファイルセットの一覧を目視で確認できる。ユーザは、クラスタ内のメタデータの表示を希望する場合、クラスタ内メタデータ一覧表示指示ボタンを押下することで、メタデータの一覧をディスプレイに表示し目視で確認できる。クライアント300は、クラスタ内メタデータ一覧表示指示ボタンの押下を受け付けた場合、ディスプレイに表示されたクラスタに含まれるメタデータの送信をサーバ100に要求し、サーバ100からメタデータ一覧を受信できる。
また、ユーザは、キーワード絞込指示ボタンを押下し、キーワードを入力することで、検索結果として表示された内容をさらに絞り込んだ結果をディスプレイに表示し目視で確認できる。クライアント300は、キーワード絞込指示ボタンの押下を受け付けた場合、サーバ100に入力されたキーワードを送信し、検索対象となるファイルセットを絞り込んだ結果をサーバ100から受信できる。なお、サーバ100は、検索文章およびキーワードを対象にしてクラスタ検索処理を実行し、クラスタ検索処理の結果をクライアント300に送信することが可能である。
次に、クラスタ数を決定する方法についてクラスタとドライブとの関係を用いて説明する。
図21は、クラスタとドライブとの関係の例を示す図である。例えば、1つのクラスタに分類されるファイルセットを格納する複数のテープ媒体を予め用意(プール)しておいてもよい。図21に示すライブラリ装置200は、20台のドライブ207a,…,207tと、700個のテープ媒体MT1,…,MT700とを含むものとする。ライブラリ装置200は、サーバ100を介してクライアント300からのアクセス要求を受け、該当するクラスタに分類されたファイルセットが格納されているテープ媒体をドライブにマウントする。ライブラリ装置200は、1台のドライブに1つのテープ媒体をマウントできる。言い換えると、ライブラリ装置200のドライブにマウントされたテープ媒体の数は、同時に高速に読み出せるファイルセット数でもある。つまり、ドライブ数は、同時に高速に読み出せるファイルセットの数であるため、ドライブ数を1つのクラスタとして扱う単位にできる。ここで、1つのクラスタとして扱う単位はドライブ数「20」であり、テープ媒体数は「700」であるため、クラスタ数の最高値は、テープ媒体数をドライブ数(一度に処理できるテープ媒体の数)で割った値の小数点以下を切り上げた整数「35」となる。
クラスタ数は、最高値を上限とする2以上の数に設定することができる。例えば、制御部120は、運用に応じた任意のクラスタ数のユーザによる入力を受け付けることで、クラスタ数をユーザにより指定されたクラスタ数としてもよい。あるいは、制御部120は、上記のように、int{(テープ媒体数)/(一度に処理できるテープ媒体の数)}の演算によってクラスタ数を求めてもよい。
ライブラリ装置200が有するドライブ数が複数である場合、同時にマウントできるテープ媒体数とドライブ数とは同一である。このため、ドライブ数と同一数のテープ媒体をグループとし、同一クラスタに所属するファイルセットを同一グループのテープ媒体に格納する。ライブラリ装置200は、同一グループのテープ媒体を複数のドライブにマウントすることで、同一グループのテープ媒体それぞれから同時にファイルセットを読み出すことができ、ファイルの読み出しを高速化できる。例えば、ライブラリ装置200は、テープ媒体MT1,…,MT20までを第1グループとし、第1クラスタに分類されたファイルセットを格納する。また、ライブラリ装置200は、テープ媒体MT21,…,MT40までを第2グループとし、第2クラスタに分類されたファイルセットを格納する。同様にして、ライブラリ装置200は、テープ媒体MT681,…,MT700までを第35グループとし、第35クラスタに分類されたファイルセットを格納できる。ライブラリ装置200は、同一クラスタに分類されたファイルセットを同一のグループに所属するテープ媒体に順番に格納する。例えば、ライブラリ装置200は、第1クラスタについて、テープ媒体MT1に第1クラスタに分類されたファイルセットを格納しテープ媒体MT1の容量が一杯になった場合、次のテープ媒体MT2にファイルセットを格納する。
このように、ドライブ数が複数である場合、サーバ100は、ドライブ数と同数のテープ媒体をグループとして扱い、同一グループのテープ媒体に同一クラスタに所属するファイルを格納する指示をライブラリ装置200に出す。サーバ100は、同一クラスタに所属する類似するファイルセットが異なるグループのテープ媒体に格納されることを防ぐ。サーバ100は、ファイルセットを読み出す要求を受け付けた際に、要求されたファイルセットが所属するクラスタが格納されたテープ媒体と、当該テープ媒体と同一のグループに所属するテープ媒体とをドライブに移動させる。これにより、サーバ100は、他のグループに所属するテープ媒体の移動に伴う処理を回避し、ファイルセットの読み出しを高速化できる。
また、ドライブ数が単数である場合、サーバ100は、1つのテープ媒体に同一クラスタに所属するファイルセットを格納する指示をライブラリ装置200に出す。これにより、サーバ100は、類似するファイルセットにアクセスする際に、テープ媒体をドライブに移動させる処理を低減させてファイルセットの読み出しを高速化できる。
サーバ100は、ファイルセットを類似する内容毎にクラスタに分類し、分類毎に同一グループのテープ媒体に格納する。これにより、サーバ100は、ファイルセットをテープ媒体から読み出す際に、他のグループのテープ媒体をドライブへ移動する処理を回避できるため、テープ媒体からの読み出し時間を減らすことができる。
こうして、サーバ100は、ファイルセットを類似する内容毎にクラスタに分類し、ファイルセットをクラスタ毎にテープ媒体に格納することで、類似するファイルセットの読み出しを高速化できる。
[第3の実施の形態]
次に第3の実施の形態を説明する。前述の第2の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
ここで、第3の実施の形態の情報処理システムにおけるハードウェアおよび機能は、図2~図5で例示した第2の実施の形態の情報処理システムにおけるハードウェアおよび機能と同様である。このため、第3の実施の形態では、第2の実施の形態と同様の名称および符号により、各ハードウェアや機能を示す。
第2の実施の形態では、サーバ100は、当初決定したクラスタ管理情報116に基づいて、ファイルセットの所属先のクラスタを決定する。これにより、新たなファイルセットが当該クラスタに追加される。クラスタへの新たなファイルセットの追加により、当該クラスタの当初の重心と、当該クラスタに現在所属するファイルセット(新たに追加されたファイルセットを含む)の特徴ベクトルによる重心との間には差δが生じる。差δが比較的小さい場合、クラスタへのファイルセットの分類先の決定精度は維持されていると考えられる。一方、差δが比較的大きい場合、クラスタへのファイルセットの分類先の決定精度は低下していると考えられる。そこで、第3の実施の形態では、サーバ100は、分類先の決定精度の低下を検出して、クラスタを再構築する機能を提供する。
図22は、第3の実施の形態の異常値の例を示す図である。ファイルセットの特徴ベクトルは、n(nは2以上の整数)次元の特徴空間におけるベクトルである。特徴空間における2つの点の間の距離はユークリッド距離で表される。特徴空間700は、一例として2次元の特徴空間を示している。特徴空間700のX軸はメタデータにおける単語xの出現回数である。特徴空間700のY軸はメタデータにおける単語yの出現回数である。
点P0は、分類処理により当初決定された、あるクラスタの重心の座標である。当該クラスタには、複数のファイルセットが属する。点P1は、当該複数のファイルセットに属する1つのファイルセットの特徴ベクトルに対応する点である。点P1は、当該クラスタに当初分類されたファイルセットに対応する点のうち、点P0との距離が最大の点である。点P0と点P1との間の距離はDである。円Q0は、点P0を中心とする半径Dの円である。
前述のように、新たなファイルセットが点P0に対応するクラスタに追加されると、当該クラスタに属する全ファイルセットを考慮した重心は、点P0からずれる。ここで、点P2は、新たなファイルセットの特徴ベクトルで示される点である。ずれの大きさ(すなわち、差δ)は、点P2と分類先のクラスタに対応する点P0(当初の重心)との距離が長いほど大きい。そこで、制御部120は、該当のクラスタに新たに追加したファイルセットの特徴ベクトルに対応する点(例えば、点P2)と、点P0との距離dが距離D(閾値D)よりも大きい場合に、距離dを異常値として検出する。なお、距離dが距離D(閾値D)以下であれば、制御部120は、距離dを異常値として検出しない(すなわち、距離dを正常値とする)。
図23は、異常値の検出例を示す図である。例えば、特徴空間700において、3つのクラスタに対応する点のグループがある場合を考える。
点P11は、第1のクラスタについて当初決定された重心である。距離D1は、第1のクラスタに当初分類されたファイルセットに対応する点と、点P11との距離の最大値である。円Q1は、点P11を中心とする半径D1の円である。
また、点P12は、第2のクラスタについて当初決定された重心である。距離D2は、第2のクラスタに当初分類されたファイルセットに対応する点と、点P12との距離の最大値である。円Q2は、点P12を中心とする半径D2の円である。
更に、点P13は、第3のクラスタについて当初決定された重心である。距離D3は、第3のクラスタに当初分類されたファイルセットに対応する点と、点P13との距離の最大値である。円Q3は、点P13を中心とする半径D3の円である。
ここで、制御部120による異常値の検出のカウント方法を説明する。異常値の検出を計数するカウンタを、異常値検出カウンタと称する。異常値検出カウンタは、記憶部1110に格納される。制御部120は、分類処理を終了すると、異常値検出カウンタのカウント数を0(初期値)に設定する。
その後、制御部120は、点P21に対応するファイルセットを、第1のクラスタに新たに追加する。点P11と点P21との距離d1は、距離D1よりも長い。したがって、制御部120は、距離d1を異常値として検出する。この場合、制御部120は、異常値検出カウンタのカウント数に1を加算する。異常値検出カウンタの値は1になる。
更にその後、制御部120は、点P22に対応するファイルセットを、第2のクラスタに新たに追加する。点P12と点P22との距離d2は、距離D2よりも長い、したがって、制御部120は、距離d2を異常値として検出する。この場合、制御部120は、異常値検出カウンタのカウント数に1を加算する。異常値検出カウンタの値は2になる。
このように、制御部120は、異常値の検出数をカウントし、カウントされた検出数が閾値を超過すると、クラスタを再構築する。
なお、制御部120は、異常値検出カウンタを、クラスタ毎に設けてもよい。そして、クラスタ毎の異常値検出カウンタのうちの何れかの検出数が閾値を超過した場合に、制御部120は、クラスタを再構築してもよい。
次に、クラスタの再構築に用いられる情報の例を説明する。
図24は、他のファイル位置情報の例を示す図である。ファイル位置情報118は、ファイルセットと再構築後のクラスタと当該クラスタに対応するテープ媒体との対応関係を示す。ファイル位置情報118は、記憶部110に格納される。
ファイル位置情報118は、ファイルセットID、クラスタIDおよび媒体IDの項目を含む。各項目に設定される情報は、第2の実施の形態のファイル位置情報117と同様である。例えば、ファイル位置情報118には、ファイルセットIDが“F01”、クラスタIDが“D01”、媒体IDが“MT21”という情報が登録される。これは、ファイルセットID“F01”で示されるファイルセットが、再構築後のクラスタID“D01”に分類され、媒体ID“MT21”で識別されるテープ媒体に格納されることを示す。
図25は、変更管理情報の例を示す図である。変更管理情報119は、ファイル位置情報117,118の各レコードをファイルセットIDにより結合して、ファイルセットID、旧クラスタIDおよび新クラスタIDの列を抽出したものである。ここで、旧クラスタIDは、ファイル位置情報117におけるクラスタIDを示す。また、新クラスタIDは、ファイル位置情報118におけるクラスタIDを示す。
例えば、変更管理情報119には、ファイルセットIDが“F01”、旧クラスタIDが“C01”、新クラスタIDが“D01”という情報が登録される。これは、ファイルセットID“F01”で示されるファイルセットの分類を、旧クラスタID“C01”から、新クラスタID“D01”に変更することを示す。制御部120は、変更管理情報119に基づいて、各ファイルセットについて、再構築前のクラスタと、再構築後のクラスタとを特定する。制御部120は、特定したクラスタと媒体IDとの対応関係を、ファイル位置情報117,118から特定可能である。
なお、変更管理情報119は、旧クラスタIDに対応する媒体IDと新クラスタIDに対応する媒体IDとを含んでもよい(制御部120は、変更管理情報119から各クラスタIDに対応する媒体IDを特定可能にできる)。
次に、サーバ100の処理手順を説明する。ここで、第3の実施の形態では、図14~図19で説明した処理のうち、図16のファイルセット追加処理の手順が異なる。それ以外の処理の手順は、第2の実施の形態と同様であるため、説明を省略する。
図26は、ファイルセット追加処理の他の例を示すフローチャートである。以下、図26に示す処理をステップ番号に沿って説明する。
(S71)制御部120は、アーカイブ対象の新たなファイルセットとメタデータとの入力を受け付ける。
(S72)制御部120は、クラスタに対するファイルセットの加入処理を行う。加入処理は、追加されたファイルセットをクラスタに分類する(ファイルセットをクラスタに加入させる)処理である。加入処理は、図17の手順により実行される。
(S73)制御部120は、今回追加されたファイルセットのうち、当該ファイルセットの特徴ベクトルで示される点と所属先のクラスタの重心との距離が異常値となるファイルセットがあるか否かを判定する。制御部120は、異常値となるファイルセットがある場合、ステップS74に処理を進める。制御部120は、異常値となるファイルセットがない場合、ステップS77に処理を進める。異常値となるか否かの判定には、図22で説明した方法を用いることができる。
(S74)制御部120は、異常値検出カウンタをカウントアップする。制御部120は、今回の加入処理で異常値が検出されたファイルセットの数の分だけ、異常値検出カウンタをカウントアップする。例えば、1つのファイルセットに関して異常値が検出された場合、異常値検出カウンタを1だけカウントアップする。あるいは、2つのファイルセットに関して異常値が検出された場合、異常値検出カウンタを2だけカウントアップする。
(S75)制御部120は、異常値検出カウンタが閾値より大きいか否かを判定する。制御部120は、異常値検出カウンタが閾値より大きい場合、ステップS76に処理を進める。制御部120は、異常値検出カウンタが閾値以下の場合、ステップS77に処理を進める。
(S76)制御部120は、再構築フラグをTrueに設定する。再構築フラグは、制御部120により用いられる制御用のフラグである。再構築フラグは、クラスタの再構築を行うか否かの制御に用いられる。再構築フラグは、記憶部110に予め格納される。再構築フラグの初期値は、falseである。
(S77)制御部120は、加入処理で分類したファイルセットについて、何れのテープ媒体に格納したかを示す情報をファイル位置情報117に記憶する。具体的には、制御部120は、分類したファイルセットのファイルセットIDとクラスタIDとをファイル位置情報117に記憶する。また、制御部120は、クラスタIDに対応するテープ媒体の媒体IDをファイル位置情報117に登録する。
(S78)制御部120は、分類処理で分類したファイルセットの分類先のクラスタに対応するテープ媒体に、当該ファイルセットを格納する指示をライブラリ装置200に出力する。ライブラリ装置200は、分類したファイルセットを該当のテープ媒体に格納する。そして、制御部120は、ファイルセット追加処理を終了する。
なお、ステップS73~S76は、ステップS78の後に実行されてもよい。
第3の実施の形態では、サーバ100は、再構築フラグに応じた分類再構築処理を更に実行する。分類再構築処理は、ファイルセットへのアクセスが発生しない所定の時間帯(例えば、夜間や休日など)に定期的に実行される。例えば、分類再構築処理は、所定の時刻に開始されるようにサーバ100に対して予めスケジューリングされてもよい。
図27は、分類再構築処理の例を示すフローチャートである。以下、図27に示す処理をステップ番号に沿って説明する。
(S81)制御部120は、再構築フラグがTrueであるか否かを判定する。制御部120は、再構築フラグがTrueの場合、ステップS82に処理を進める。制御部120は、再構築フラグがFalseの場合、分類再構築処理を終了する。
(S82)制御部120は、蓄積されたファイルセットをクラスタに分類する処理(分類処理)を行う。制御部120は、現在までに各テープ媒体に書き込まれた各ファイルセットのクラスタへの分類をやり直す。これにより、当初のファイルセットと、当初から現在までの運用で追加されたファイルセットとを考慮して、各ファイルセットが新たなクラスタに分類されることになる。制御部120は、分類処理により、新たなクラスタに対するクラスタ管理情報(クラスタ管理情報116に相当する情報)を生成し、記憶部110に格納する。
(S83)制御部120は、分類処理で分類したファイルセットについて、格納先のテープ媒体を示す情報をファイル位置情報118に登録する。具体的には、制御部120は、分類したファイルセットのファイルセットIDと新たなクラスタIDとをファイル位置情報118に記憶する。また、制御部120は、クラスタIDに対応するテープ媒体の媒体IDをファイル位置情報118に登録する。
(S84)制御部120は、ファイル位置情報117,118に基づいて、テープ媒体間でファイルセットを複製する。具体的には、制御部120は、ファイル位置情報117,118に基づいて、変更管理情報119を生成する。制御部120は、変更管理情報119に基づいて、各ファイルセットの旧クラスタと新クラスタとを特定する。また、制御部120は、ファイル位置情報117,118に基づいて、旧クラスタのテープ媒体および新クラスタのテープ媒体を特定する。そして、制御部120は、該当のファイルセットを、特定した旧クラスタのテープ媒体から、新クラスタのテープ媒体に複製する。具体的な複製の方法は後述される。これにより、ステップS82で決定された分類先のクラスタに対応するテープ媒体に、各ファイルセットが格納される。
(S85)制御部120は、使用するファイル位置情報を、ファイル位置情報117からファイル位置情報118に変更する。その後、制御部120は、ファイル位置情報117を記憶部110から削除してもよい。
(S86)制御部120は、再構築フラグをFalseに設定する。また、制御部120は、異常値検出カウンタを0に設定する。そして、制御部120は、分類再構築処理を終了する。
図28は、ファイルセットの複製例を示す図である。図28(A)は、ライブラリ装置200が1つのドライブ207を有する場合に、テープ媒体MT1(複製元)に格納されたファイルセットを、テープ媒体MT21(複製先)に複製する方法を例示する。ここで、ストレージ600は、サーバ100の内部、または外部に接続された記憶装置である。
まず、ライブラリ装置200は、テープ媒体MT1をドライブ207に収納する(ST11)。サーバ100は、ドライブ207を用いて、テープ媒体MT1に書き込まれたファイルセットを読み出し、ストレージ600に複製する(ST12)。次に、ライブラリ装置200は、ドライブ207から、テープ媒体MT1を取り出す(ST13)。ライブラリ装置200は、テープ媒体MT21をドライブ207に収納する(ST14)。サーバ100は、ストレージ600に格納されたファイルセットのテープ媒体MT21への書き込みをライブラリ装置200に指示する。ライブラリ装置200は、ドライブ207を用いて、テープ媒体MT21に、該当のファイルセットを書き込む(ST14)。
図28(B)は、ライブラリ装置200が2つのドライブ207,207aを有する場合に、テープ媒体MT2(複製元)に格納されたファイルセットを、テープ媒体MT31(複製先)に複製する方法を例示する。
まず、ライブラリ装置200は、テープ媒体MT2をドライブ207に収納する(ST21)。ライブラリ装置200は、テープ媒体MT2をドライブ207aに収納する(ST22)。ただし、ステップST21,ST22の順序は逆でもよいし、並行して行われてもよい。サーバ100は、テープ媒体MT2に書き込まれたファイルセットをテープ媒体MT31に複製するようライブラリ装置200に指示する。ライブラリ装置200は、ドライブ207によりテープ媒体MT2からファイルセットを読み出し、ドライブ207aによりテープ媒体MT31に当該ファイルセットを書き込む。
このように、制御部120は、クラスタの重心と追加したファイルセットの特徴ベクトルに対応する点との距離が当該ファイルセットの属する分類に応じた所定値よりも大きい異常値であることを検出する。制御部120は、異常値の検出回数が所定回数を超えると、分類済の各ファイルセットの特徴量に基づいて、分類の情報(すなわち、クラスタ管理情報116)を再生成する。異常値の検出数が比較的多いと、クラスタの当初の重心の座標と、当該クラスタに現在所属する各ファイルセットの特徴ベクトルから計算される重心とのずれが大きい可能性が高いと推定される。このため、サーバ100は、異常値の検出数が閾値を超えると、現在までに各テープ媒体に書き込まれたファイルセットのクラスタへの分類を再度行う。これにより、ファイルセットのクラスタへの分類精度の低下を抑えられる。
[第4の実施の形態]
次に第4の実施の形態を説明する。前述の第2,第3の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。
ここで、第4の実施の形態の情報処理システムにおけるハードウェアおよび機能は、図2~図5で例示した第2の実施の形態の情報処理システムにおけるハードウェアおよび機能と同様である。このため、第4の実施の形態では、第2の実施の形態と同様の名称および符号により、各ハードウェアや機能を示す。
第4の実施の形態では、ファイルセットの最終の更新時刻の情報を特徴ベクトルに追加する機能を提供する。
図29は、第4の実施の形態の特徴空間の例を示す図である。特徴空間800は、一例として、3次元の特徴空間を示している。特徴空間800のX軸は、メタデータにおける単語xの出現回数である。特徴空間800のY軸は、当該メタデータにおける単語yの出現回数である。特徴空間800のZ軸は、当該メタデータに対応するファイルセットの書き込み時刻である。ここで、書き込み時刻は、該当のファイルセットの最終の更新時刻(年月日時分秒)を示す。
ただし、時刻に関して、単語の出現回数とのレベルを合わせるために、制御部120は、次の式(1)によりファイルセットの書き込み時刻を正規化することで、時間情報Tfを得る。
ここで、時刻Toldestは、扱うファイルセットの中で、「最も古い書き込み時刻」である。時刻Tnewestは、扱うファイルセットの中で、「最も新しい書き込み時刻」である。なお、「扱うファイルセット」は、初めて、または、再度、クラスタ分類を行う場合には分類対象の全てのファイルセットである。また、「扱うファイルセット」は、クラスタに新たにファイルセットを追加する場合には、分類済のファイルセットおよび新たなファイルセットである。時刻Tは、分類対象の1つのファイルセットの書き込み時刻である。2つの時刻の差(時間差)は、例えば、秒の単位で表される。Cは、扱うファイルセットに対応する各メタデータの中で最も多く出現する文字(あるいは単語でもよい)の出現回数である。wは、時間情報に対する重みである。例えば、wの値は、記憶部110に予め登録される。
制御部120は、式(1)で示されるように、対象のファイルセットの「書き込み時刻T」と扱うファイルセットの中で「最も古い書き込み時刻Toldest」との第1の時間差を求める。制御部120は、扱うファイルセットの中で「最も新しい書き込み時刻Tnewest」と「最も古い書き込み時刻Toldest」との第2の時間差で、第1の時間差を割ることで、時間の比率を得る。そして、制御部120は、当該比率に、全ての特徴ベクトルにおける「最大出現文字(または単語)の回数C」を掛け、他のベクトル値と合わせる。更に、制御部120は、その結果に、時間情報の重要度に応じた「重み量w」を掛けて、時間情報Tfを得る。時間情報Tfは、特徴ベクトルに追加される特徴値である。
制御部120は、ファイルセットに対して計算した時間情報Tfを、該当のファイルセットの特徴ベクトルに追加する。そして、第2の実施の形態と同様の方法により、各クラスタに対応する重心の座標を求める。当該重心も、該当のクラスタに属するファイルセットの各書き込み時刻から計算された要素を含む。具体的には、図12で例示したクラスタ管理情報116における各クラスタのベクトルに、書き込み時刻に対応する1つの要素が追加される。そして、制御部120は、図15の分類処理、および、図17の加入処理を、書き込み時刻に関する情報を含む特徴ベクトルを用いて実行する。
このように、制御部120は、ファイルセットの特徴ベクトルに、当該ファイルセットの書き込み時刻の情報(特徴値)を追加してもよい。すなわち、制御部120は、ファイルセットの更新時刻と各ファイルセットのメタデータに出現する所定の文字(または単語)の出現回数とに基づいて、当該更新時刻に応じた特徴値を算出し、特徴ベクトルに特徴値を追加してもよい。
すると、制御部120は、各ファイルセットの特徴ベクトルに基づいて、メタデータに含まれる単語の出現頻度および書き込み時刻が比較的近いファイルセット同士を同じクラスタに分類し、共通のテープ媒体に格納できる。例えば、書き込み時刻が比較的近いファイルセット同士が連続してアクセスされる頻度が高いことがある。サーバ100は、このような場合に特徴ベクトルに書き込み時刻の情報を追加することで、分類の精度を高められる。その結果、関連性の強い複数のファイルセットが単一のテープ媒体に格納される可能性が高まり、該当のファイルセットの読み出しを高速化できる。
また、制御部120は、図19のクラスタ検索処理の際に、検索画面501(図20)において、検索したいファイルセットの書き込み時刻の入力を受け付け可能としてもよい。クラスタ検索処理においても、入力された書き込み時刻を含めた特徴ベクトルを用いることで、クラスタの検索の精度を一層高めることができる。
更に、制御部120は、当初、書き込み時刻を含まない特徴ベクトルにより運用を行い、ユーザによるファイルセットへのアクセス状況を監視し、当該アクセス状況に応じて、書き込み時刻の情報を特徴ベクトルに追加してもよい。具体的には、制御部120は、アクセス状況として、連続してアクセスされるファイルセットの書き込み時刻が属する時間幅が所定値よりも小さい場合に、書き込み時刻の情報を各ファイルセットの特徴ベクトルに追加し、クラスタを再構築することが考えられる。このように、制御部120は、ユーザのアクセス状況に応じて、適切な情報を特徴ベクトルに追加してもよい。こうして、ユーザのアクセス状況に応じて、ファイルセットに対するアクセスを一層高速化できる。
なお、第2,第3,第4の実施の形態では、記録媒体としてテープ媒体を例示したが、他の種類の媒体でもよい。例えば、記録媒体は、Blu-ray(登録商標)などの光ディスク媒体でもよい。ライブラリ装置200は、光ディスク媒体を複数収納可能な装置でもよい。例えば、サーバ100は、1つの光ディスク媒体に対して1つの分類(クラスタ)を割り当ててもよい。または、複数の光ディスク媒体が、スタッカと呼ばれるカートリッジに収納されることもある。この場合、サーバ100は、1つのスタッカに1つの分類(クラスタ)を割り当ててもよい。
また、第1の実施の形態の情報処理は、処理部1bにプログラムを実行させることで実現できる。また、第2,第3,第4の実施の形態の情報処理は、プロセッサ101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体13に記録できる。
例えば、プログラムを記録した記録媒体13を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体13に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。