以下、本発明の具体的実施例について、図面を参照しながら説明する。なお、以下の実施態様は、本発明を具体化する際の一形態であって、本発明をその範囲内に限定するためのものではない。
図1は本実施例のファイル管理システムの構成の概略を示すブロック図であり、図2は同ファイル管理システムに備えられるファイル管理サーバの構成の概略を示すブロック図である。
ファイル管理システムは、システム内(例えば特定の企業が有する企業内システム)に備えられる各種サーバの資源(ファイル)を管理するためのシステムである。図1は特定の企業の企業内システムの概略を示したものであり、図に示されるように、本社センタ10と各支社120とがネットワーク20を介して相互に接続されており、本社センタ10や支社120内には、各種の業務サーバ12・122が備えられ、端末装置であるPC15・125等も備えられている。本社センタ10内には、さらにテストサーバ13やファイル管理サーバ11等も備えられる。テストサーバ13は、実際の業務処理のために稼動している業務サーバ12・122に対する保守管理等の目的で備えられるものであり、例えばシステムのバージョンアップの際に、先ずはテスト環境であるテストサーバ13に実装してテストを行い、問題が無いことが確認された後に本番環境である業務サーバ12・122へと実装させるというようなことを行うための物である。よって、テストサーバ13には対応する業務サーバ12・122とほぼ同一の環境・資源が備えられているものである。
ファイル管理サーバ11は、業務サーバ12・122やテストサーバ13等が有する資源(ファイル)を管理するためのサーバであり、図2に示されるように、各種演算処理や制御処理を実行する制御部111と、記憶領域たる記憶部112と、ネットワーク(社内LAN16)へ情報の送受信を行う通信部113と、キーボードやマウスなどのユーザインターフェースである入力部114と、同じくユーザインタフェース(モニタ等)である出力部115などを備える。
記憶部112には、各サーバ(業務サーバ12・122やテストサーバ13等)が有する資源と同一の資源(コピー)が格納されている。即ち、各サーバのファイル構成と同一のファイル構成がライブラリ領域1121において各サーバごとに管理されているものである。
<サーバ全体のファイル差異検出処理>
図3〜図7はファイル管理サーバ11において実行される本発明に関する処理の概略を示したフローチャートである。これらの処理は、サーバ全体(業務サーバ12・122やテストサーバ13等)において共通のものであると認められるファイルを検出し、且つ、共通のものであると認められるファイルの中において何らかの差異が無いかを検出し、サーバ全体として有するファイル群とこれに対して各サーバのファイルがどのようなものであるかを判別可能にさせるための処理である。なお、各処理は、基本的にファイル管理サーバ11において実行されるものであり、必要な情報を記憶部112から取得して(場合によっては入力部114や通信部113を介して得られる情報を使用して)制御部111において演算処理を行い、演算結果を記憶部112に格納する(場合によっては出力部114や通信部113を介して出力する)ことによって行われるものである。
なお、同処理はシステム内に備えられる全てのサーバ(ライブラリ領域の全てのサーバ資源)に対して実行されるものであっても構わないが、ファイル構成が相互に同様であるサーバ(例えば分散処理のための同一機能サーバ)間における利用が主となる(利用効果が高い)ものである。従って、説明を簡略化するためにも、ここでは図8に示したような、基本的に相互に同一で簡単なファイル構成を有するサーバ1〜サーバ4(業務サーバ12・122やテストサーバ13に該当)に対する処理を例として以下説明する。
図3は、各サーバ(サーバ1〜サーバ4)ごとの“サーバ別ファイル識別情報リスト”を生成し、これらからファイル識別情報の“論理和リスト”を生成するための処理の概略を示したフローチャートである。
本実施例における“ファイル識別情報”とは、ディレクトリ情報を含むファイル名を示す。即ち、DIR1というフォルダの中にFILE1というファイル名のファイルがあった場合、当該ファイルのファイル識別情報は“DIR1/FILE1”というようなものとなる。
ステップ301ではサーバの数を変数nに代入する。サーバの数とは、処理対象となるサーバの数であり、先の例(サーバ1〜サーバ4)で言えば“4”となる。全てのサーバに対して行うのであれば、ライブラリ領域1121内で管理しているサーバの数を取得してこれを代入するものであり、例えば、本処理の動作条件(例えば、処理を行うべきサーバの指定)がユーザによって設定される場合には、当該設定条件に基づいてサーバ数が算出されて変数nに代入される。
続くループ1は、各サーバの“サーバ別ファイル識別情報リスト”を生成する処理である。
ステップ302では、ライブラリ領域1121にあるサーバiの資源から各ファイルのファイル識別情報(パスとファイル名)を取得して、サーバiのサーバ別ファイル識別情報リスト1122を生成して、記憶部112に格納する。
続くステップ303では、ライブラリ領域1121にあるサーバiの資源の各ファイルからファイル内容特定情報を算出して、これを各ファイルのファイル識別情報に対応付けてサーバ別ファイル識別情報リスト1122に格納する。
“ファイル内容特定情報”とは、ファイルの中身を特定するための情報であり、例えば、ファイルの中身であるデータ列に対して特定の計算処理を施すことによって得られる演算結果(ハッシュ値などの数値情報)などである。ハッシュ値などはファイルの中身に対して完全にユニークな情報が得られる訳ではないが、ファイルの同一性の判別(誤り検出)として用いるために必要なレベルのアルゴリズムを適宜選択して用いればよい。
上記ステップ302と303の処理が、ループ1によってiが1からnとなるまで繰り返されることにより、各サーバごとにサーバ別ファイル識別情報リスト1122が生成される。図9に、図8の例の場合において当該処理によって生成されるサーバ別ファイル識別情報リスト1122の一例を示した。同図(a)〜(d)がそれぞれサーバ1〜サーバ4に対応するサーバ別ファイル識別情報リスト1122である。
ループ2は各サーバ別ファイル識別情報リストからファイル識別情報の“論理和リスト”を生成するための処理である。
ステップ304では、サーバiのサーバ別ファイル識別情報リストから、リストの最初のファイル識別情報を取得する。図9のサーバ1で言えば、“DIR1/FILE1”となる。
続くループ3は、サーバiのサーバ別ファイル識別情報リストにある全てのファイル識別情報に対してステップ305〜ステップ308の処理を実行するものである。
ステップ305では、論理和リスト1123の中に、ステップ304で取得した(若しくはステップ308で取得した)ファイル識別情報と同じものがあるか否かを判別する。
ステップ305の判別の結果、同じ物が無かった場合にはステップ306へと移行して、論理和リスト1123にステップ304で取得した(若しくはステップ308で取得した)ファイル識別情報を追加する処理を行う。一方、ステップ305の判別の結果、同じ物があった場合にはステップ306をスキップしてステップ307へと移行する。
ステップ307では、論理和リスト1123(図10)の、対応するファイル識別情報のサーバiのフラグを1にする処理を行なう。
続くステップ308では、サーバiのサーバ別ファイル識別情報リストの次のファイル識別情報を取得する。
当該ステップ305〜ステップ308の処理がループ3によって繰り返されることによって、サーバiのサーバ別ファイル識別情報リストと論理和リスト1123との論理和が論理和リスト1123に蓄積されることとなり、さらに、ステップ304とループ3の処理がループ2によって各サーバ別ファイル識別情報リストに対して実行されることにより、各サーバ別ファイル識別情報リストにあるファイル識別情報の論理和が、論理和リスト1123に形成されることとなる。図10には論理和リスト1123の一例を示した。
例えば、サーバ2に対する処理が行われている際(iが2であるループ2の処理)において、リスト(図9(b))の一番上のファイル識別情報(DIR1/FILE1)を取得している場合には、既にサーバ1に対する処理(ループ2)によって論理和リスト1123の中にはこれと同一のファイル識別情報(DIR1/FILE1)があるため、ステップ306をスキップして(論理和リストに新たにファイル識別情報を追加することなく)ステップ307へ移行して、当該ファイル識別情報(DIR1/FILE1)に該当するファイルをサーバ2が有していることを示すフラグが論理和リスト1123に格納されることとなる。一方、サーバ2に対する処理が行われている際において、リスト(図9(b))の一番下のファイル識別情報(FILE4)を取得している場合には、論理和リスト1123の中に同一のものが無いため、ステップ306でこれ(FILE4)を論理和リストに追加する処理が実行されるものである。
以上のごとく、図3の処理によって、サーバ(サーバ1〜サーバ4)ごとの“サーバ別ファイル識別情報リスト”と“論理和リスト”が生成される。図4は、当該“サーバ別ファイル識別情報リスト”と“論理和リスト”を更新する処理である。即ち、ステップ401で、ライブラリ領域1121のサーバ資源に対する更新があったか否かを判別し、これがあった場合に、ステップ402〜403(ステップ302〜ステップ303と同様の処理概念)を実行することで“サーバ別ファイル識別情報リスト”を更新し、且つ、ステップ404とループ1(図3のステップ304とループ3と同様の処理概念)を実行することで“論理和リスト”を更新するものである。
図5は、サーバ全体において共通のものであると認められるファイル(ファイル識別情報が同一のファイル)の中において何らかの差異が無いかを検出し、サーバ全体として有するファイル群とこれに対して各サーバのファイルがどのようなものであるかを判別可能にさせるための処理である。
ステップ501では、論理和リスト1123の最初のファイル識別情報を取得する。図10で言えば、“DIR1/FILE1”が該当する。
ループ1は、論理和リスト1123にある各ファイル識別情報に対してステップ502〜ステップ510の処理を実行させるものである。
ステップ502では、論理和リスト1123(図10)を参照して、ステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応するフラグが0であるサーバがあるか否かを判別する。即ち、当該ファイル識別情報に対応するファイルを有しないサーバがあるか否かを判別するものである。
フラグが0であるサーバがあった場合には、ステップ503へと移行して当該ファイル識別情報に“存在フラグ”を0として対応付けて簡易比較テーブル1124(図11)に格納する。一方、フラグが0であるサーバがなかった場合には、ステップ504へと移行して当該ファイル識別情報に“存在フラグ”を1として対応付けて簡易比較テーブル1124に格納する。
続くステップ505では、論理和リスト1123(図10)を参照して、ステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応するフラグが1であるサーバであって最も上位のサーバを判別するとともに、当該サーバの番号を変数sに代入する。“最も上位のサーバ”とは、本実施例では、サーバの番号が最も若いものである。即ち、サーバの番号が“優先順位情報”として機能することとなる。
ステップ506では、サーバs(ファイル識別情報に対応するフラグが1であるサーバであって最も上位のサーバ)の、ステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応するファイルのファイル属性情報と、ファイル内容特定情報を取得して、これらを比較元の情報として一時的に保持する。また、当該取得したファイル内容特定情報を識別する識別情報(ファイル内容特定識別情報)として1を付与して、サーバsの詳細比較テーブル(図12)に格納し、変数tに1を代入する。
“ファイル属性情報”とは、オペレーティングシステムの機能の1つであるファイルシステムによって管理される情報であり、具体的には更新日時情報や、ファイルサイズ情報、権限情報(オーナ・グループ・パーミッション等。後に説明する詳細表示欄である図20などではUNIX(登録商標)における権限情報を例としており、“権限”の欄の「root root 666」等の表示が、順にファイルのオーナ、ファイルの属するグループ、パーミッション(リード・ライト・実行の可否の組み合わせを八進表記で示したもの)を示している)などである。
ステップ506に続くステップ507とステップ508はそれぞれ「ファイル属性情報比較処理」と「ファイル内容特定情報比較処理」であり、それぞれ図6と図7で示される処理が該当する。なお、「ファイル属性情報比較処理」と「ファイル内容特定情報比較処理」はどちらを先に処理しても特に問題ない(ステップ507とステップ508を逆にしても構わない)。
図6を参照しつつ図5のステップ507において実行される「ファイル属性情報比較処理」の処理動作の概略を説明する。
ステップ601ではサーバの数を変数nに代入する。(図3のステップ301と同様の処理概念である。)
ループ1は、図5のステップ505で判別したサーバ(最も上位のサーバ)に次ぐサーバから順に最後のサーバに至るまで各処理(ステップ602〜ステップ609)を実行させるものである。例えば、ステップ505で判別したサーバがサーバ2であった場合には、サーバ3とサーバ4に対してステップ602〜ステップ609を実行させるものである。
ステップ602では、論理和テーブル1123を参照して、図5のステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応するサーバiのフラグが1であるか否かを判別する。即ちサーバiが当該ファイル識別情報に対応するファイルを有するか否かを判別するものである。
フラグが1であった場合には、ステップ603〜ステップ609の処理によって、比較元(最も上位のサーバのファイル属性情報)と、サーバiのファイル属性情報に差異があるかを検出する処理を行う。一方、フラグが0であった場合には、サーバiには当該ファイル識別情報に対応するファイルが無いのであるから、ステップ603〜ステップ609の処理をスキップしてループ1を進行させる。
ステップ603では、サーバiの、図5のステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応するファイルのファイル属性情報を取得して、“比較元の情報(最も上位のサーバのファイル属性情報)”との比較を行う。なお、取得したファイル属性情報を、該当するファイル識別情報に対応づけてサーバiの詳細比較テーブル1125(図12)に格納する処理も行う。
ステップ603の比較処理の結果、ファイル属性情報である権限情報において相違があった場合には(ステップ604)、簡易比較テーブル1124(図11)の該当するファイル識別情報に対応する“権限フラグ”を0として格納する(ステップ605)。一方、相違が無かった場合にはステップ605をスキップする。なお、簡易比較テーブル1124(図11)はデフォルトとして各項目に1が格納されているものとする。従って、「相違がある」と判断された場合にフラグが0で上書きされるものであり、「相違なし」と判断され続ける限りフラグは1となる。以下の各処理も同様である。
ステップ603の比較処理の結果、ファイル属性情報であるタイムスタンプ情報において相違があった場合には(ステップ606)、簡易比較テーブル1124(図11)の該当するファイル識別情報に対応する“タイムスタンプフラグ”を0として格納する(ステップ607)。一方、相違が無かった場合にはステップ607をスキップする。
ステップ603の比較処理の結果、ファイル属性情報であるファイルサイズ情報において相違があった場合には(ステップ608)、簡易比較テーブル1124(図11)の該当するファイル識別情報に対応する“ファイルサイズフラグ”を0として格納する(ステップ609)。一方、相違が無かった場合にはステップ609をスキップする。
なお、ステップ604〜ステップ605の処理と、ステップ606〜ステップ607の処理、ステップ608〜ステップ609の処理の3つの処理は、何れを先にやっても構わない。
上記図6の処理により、簡易比較テーブル1124(図11)と詳細比較テーブル1125(図12)の、図5のステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応する“ファイル属性情報”に関する項目が埋まることとなる。なお、当該図6の処理が、図5のループ1によって繰り返されることにより、簡易比較テーブル1124(図11)と詳細比較テーブル1125(図12)の“ファイル属性情報”に関する項目が全て埋まることとなる。
次に、図7を参照しつつ図5のステップ508において実行される「ファイル内容特定情報比較処理」の処理動作の概略を説明する。
ステップ701ではサーバの数を変数nに代入する。(図3のステップ301と同様の処理概念である。)
ループ1は、図6のループ1と同様に、図5のステップ505で判別したサーバ(最も上位のサーバ)に次ぐサーバから順に最後のサーバに至るまで各処理(ステップ702〜ステップ709)を実行させるものである。
ステップ702は、図6のステップ602と同様の処理概念である。(サーバiが、図5のステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応するファイルを有するか否かを判別するものである。)
フラグが1であった場合には、ステップ703〜ステップ709の処理によって、比較元(最も上位のサーバのファイル内容特定情報)と、サーバiのファイル内容特定情報に差異があるかを検出する処理などを行う。一方、フラグが0であった場合には、サーバiには当該ファイル識別情報に対応するファイルが無いのであるから、ステップ703〜ステップ709の処理をスキップしてループ1を進行させる。
ステップ703では、サーバiの、図5のステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応するファイルのファイル内容特定情報を、サーバ別ファイル識別情報リスト1122(図9)から取得して、“比較元の情報(最も上位のサーバのファイル内容特定情報)”との比較を行う。
ステップ703の比較処理の結果、ファイル内容特定情報に相違がなかった場合には(ステップ704)、当該ファイル内容特定情報を識別する識別情報(ファイル内容特定識別情報)として1を付与して、サーバiの詳細比較テーブル(図12)に格納する(ステップ705)。
一方、相違があった場合にはステップ706へと移行して、サーバs+1(最も上位のサーバに次ぐサーバ)からサーバ(i−1)の中に、ファイル識別情報に対応するフラグが“1”のものがあるかを論理和リスト1123を参照して判別し、且つ、当該サーバのファイル内容特定情報をサーバ別ファイル識別情報リスト1122から取得して同一のものがあるか否かを判別する。即ち、これまでの図7のループ1の処理によってすでに処理されたサーバの中でファイル内容特定情報が同じ物があるか否かを判別するものである。
ステップ706の判別の結果、同一のファイル内容特定情報を有するサーバがあった場合には、当該ファイル内容特定情報に付与されている識別情報と同一の情報を、サーバiの詳細比較テーブル(図12)に、ファイル内容特定識別情報として格納する(ステップ707)。
一方、ステップ706の判別の結果、同一のファイル内容特定情報を有するサーバが無かった場合には、tをインクリメントすると共に(ステップ708)、当該ファイル内容特定情報を識別する識別情報(ファイル内容特定識別情報)としてtの値を付与して、サーバiの詳細比較テーブル(図12)に格納する(ステップ709)。
例えば、図5のループ1の処理対象がFILE4(論理和リスト(図10)の一番下のファイル識別情報)であって、図7のループがi=3(サーバ3)である場合、“比較元”はサーバ2のFILE4に対応するファイル内容特定情報である“ddd・・・”となるが(図9参照)、これとサーバ3のFILE4に対応するファイル内容特定情報である“ddd・・・z”が異なるため、ステップ704の判別はYesとなり、ステップ706へと移行する。サーバ(s+1)とはサーバ3でありサーバ(i−1)とはサーバ2となるため、直ちにステップ706はNoとなる。よって、tの値が1から2に変わり(ステップ708)、サーバ3のFILE4に対応するファイル内容特定情報の識別情報として2が付与されることとなる(ステップ709)。次に、図7のループがi=4(サーバ4)となった場合には、“比較元”はサーバ2のFILE4に対応するファイル内容特定情報たる“ddd・・・”であるが、これとサーバ4のFILE4に対応するファイル内容特定情報である“ddd・・・z”が異なるため(図9参照)、ステップ704の判別はYesとなり、ステップ706へと移行する。サーバ(s+1)とはサーバ3でありサーバ(i−1)もサーバ3となるため、サーバ3のFILE4に対応するファイル内容特定情報と、サーバ4のFILE4に対応するファイル内容特定情報を比較すると、これは同一であり、従ってステップ707へと移行する。これにより、サーバ3のFILE4に対応するファイル内容特定情報の識別情報である“2”が、サーバ4の詳細比較テーブルに格納されることとなる。
当該図7のループ1の処理によって、同一のファイル識別情報であって且つ同一ファイル内容特定情報を持つものには同一のファイル内容特定識別情報(本実施例では1から始まる連番情報)が付与されることとなる。又、当該連番情報であるファイル内容特定識別情報は、優先順位の高いサーバから付与されていくこととなる。
ループ1の後のステップ710は、tが1であるか否か(即ち、ファイル内容特定識別情報が複数あるか否か)を判別し、これが1でなかった場合には、簡易比較テーブル1124(図11)の該当するファイル識別情報に対応する“ファイル内容特定情報フラグ”を0で上書きする処理を行う(ステップ712)。即ち、tが1で無い場合は、ファイル内容特定情報が異なるものがあったことを示しているため、差分があった旨のフラグを立てるものである。
上記図7の処理により、簡易比較テーブル1124(図11)と詳細比較テーブル1125(図12)の、図5のステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応する“ファイル内容特定情報(若しくは識別情報)”に関する項目が埋まることとなる。なお、当該図7の処理が、図5のループ1によって繰り返されることにより、簡易比較テーブル1124(図11)と詳細比較テーブル1125(図12)の“ファイル内容特定情報(若しくは識別情報)”に関する項目が全て埋まることとなる。
図5に戻って説明を続ける。ステップ507(ファイル属性情報比較処理)とステップ508(ファイル内容特定情報比較処理)に続くステップ509では、簡易比較テーブル1124(図11)の、ステップ501で取得した(若しくはステップ510で取得した)ファイル識別情報に対応する各フラグ(差分フラグ以外のフラグ)が全て1であるか否かを判別し、全て1である場合に差分フラグとして0を対応付けて格納し、それ以外の場合には1を対応付けて格納する。即ち、差分フラグが1である場合には、サーバ1〜サーバ4に何らかの相違があることを示すものである。
ステップ510では、論理和リスト1123(図10)の次のファイル識別情報を取得してループ1の処理を続行するものであり、論理和リスト1123の全てのファイル識別情報に対する処理が終了した場合には、図5の処理を終了する。
次に上記処理で得られた処理結果を出力する処理について説明する。図16は処理結果の出力画面の一例を示す図である。この例における処理結果表示画面では、大まかにいうと、処理条件についての表示欄(図中の“1”の部分であり、詳細については図17)と、比較結果簡略表示欄(図中の“2”の部分であり、詳細については図18)と、比較結果詳細表示欄(図中の“3”の部分であり、詳細については図19〜図25)と、によって構成される。
<簡易表示処理>
図13は、「簡易表示処理」の概略を示すフローチャートである。「簡易表示処理」とは、上記処理で作成された論理和リストに基づいて、システム全体(例えば機能が共通する全てのサーバ間)として保有するファイルと、各ファイルについて各サーバ間で差異があるか否かを示す簡略化した情報を一覧形式にして表示する“比較結果簡略表示欄”を表示させるための処理である。
ステップ1301では、簡易比較テーブル1124(図11)を参照して、各ファイル識別情報と、これらに対応する各フラグ(差分フラグ、存在フラグ、権限フラグ、タイムスタンプフラグ、ファイル内容特定情報フラグ)の情報を取得する。なお、簡易比較テーブル1124は、図5の処理及びこれに関する上記説明からも明らかなように、論理和リスト1123の各ファイル識別情報に基づいて、当該各ファイル識別情報に対応する情報を保持するテーブルであるので、ステップ1301の処理は、“論理和リストにあるファイル識別情報”に基づいて行われる処理と言える。
続くステップ1302では、上記取得した各フラグ情報を簡易表示記号に変換する処理を行う。“簡易表示記号”とは、どのフラグに差異があるのか(各ファイルについて各サーバ間でどのよう項目について差異があるのか)を人が一瞥で判断することができるような情報である。図18は、“比較結果簡略表示欄”の画面表示例を示す図である。この例では、“E”は差分フラグが1である場合(即ち何れかの項目について差異がある場合)の記号(簡易表示記号)で、“D”はタイムスタンプフラグが0である場合(更新日時に差異がある場合)の記号、“P”は権限フラグが0である場合(権限に差異がある場合)の記号、“C”はファイル内容特定情報フラグが0である場合(ファイル内容特定情報に差異がある場合)の記号、“M”は存在フラグが0である場合(存在に差異がある場合)の記号であり、“−”は差分がない場合(差分フラグが0orその他のフラグは1の場合)の記号である。なお、“B”は、後に説明する「内容相違部分表示処理」に関する処理を行った場合に表示される記号である。なお、当該記号への変換処理のために、各フラグの状態とこれに対応する簡易表示記号を定めたテーブルを記憶部112に保持している。
ステップ1303では、各ファイル識別情報と、これに対応する各簡易表示記号とを対応付けて一覧形式にした画面(即ち、図18の画面)の生成処理を行い、ステップ1304にてこれの表示処理を行う。
図18の画面表示例は、例として使用した図8やこれに基づいて生成される各リストやテーブルの内容とは異なるものであるが、図に示されるように、“ファイル名”としてファイル識別情報(パスを含むファイル名)が列挙され、これに対応づけられて“結果”として簡易表示記号が一覧形式で表示される。例えば、“TOOL/lib/file_a”というファイル識別情報のファイルについては、システム全体(例えば機能が共通する全てのサーバ間)として見ると、内容(ファイル内容特定情報)に相違があるものが存在しているということを、一瞥にて認識することが可能である。なお、“番号”は各ファイルに対して付けられる通し番号であり、画面表示処理の際に自動的に付与されるものや論理和リストや簡易比較テーブルの生成の際に自動的に対応付けられて格納されるものであってよい。また、ここではファイルサイズフラグに関する情報を簡易表示としては表示していないが、これも表示するようにするものであっても良いし、図5〜7の「ファイル識別情報が同一のファイルにおける差異の有無を検出する処理」において上記で例示した情報の他に差異のある項目を検出しているような場合には、これらの情報を表示するものであっても当然良い。
<詳細表示処理>
図14は、「詳細表示処理」の概略を示すフローチャートである。「詳細表示処理」とは、上記処理で取得された各種情報に基づいて、各ファイルについて、どのサーバが当該ファイルを有しているのかや、比較元サーバに対してどのような項目に差異があるのかといった情報を一覧形式で表示する“比較結果詳細表示欄”を表示させるための処理である。
ステップ1401では、論理和リスト1123の最初のファイル識別情報を取得する。
続くループ1は、ステップ1402〜ステップ1409までの処理を、論理和リスト1123にある全てのファイル識別情報に対して行わせるものである。
ステップ1402では、論理和リスト1123を参照してファイル識別情報(ステップ1401若しくはステップ1409で取得したファイル識別情報)に対応するフラグが1であるサーバであって最も上位のサーバを判別する。(図5のステップ505と同様の処理概念)
ステップ1403では、ステップ1402で取得したサーバに該当する詳細比較テーブル1125(図12)を参照して、ファイル識別情報(ステップ1401若しくはステップ1409で取得したファイル識別情報)に対応するファイル属性情報を取得し、これを比較元の情報とする。また、ファイル識別情報に対応するファイル内容特定識別情報も取得し、これら取得した各情報を対応付けたレコードを生成する。図19〜図25は“比較結果詳細表示欄”の表示画面例を示す図である。ステップ1403で生成されるレコードとは、例えば図21(“TOOL/lib/file_c”についての詳細表示画面)を例にすると、一覧として表示されているデータの最上位のデータである「APSERVER01、2003/12/03 14:28:35、7、root sys 700、01、比較元」である。即ち、サーバ名(図中ではホスト名)と各種ファイル属性情報とファイル内容特定識別情報(図中ではIDに該当)と“比較元”であることを示す情報とを有するレコードである。
続くステップ1404では、論理和リスト1123を参照して、ファイル識別情報(ステップ1401若しくはステップ1409で取得したファイル識別情報)に対応するフラグが1であるサーバであって、順位が次のサーバを取得する。“順位が次”とは、前述したように、本実施例ではサーバの番号順ということであり、最初にステップ1404が実行される場合にはステップ1402で取得されたサーバに次ぐサーバとなり、ステップ1406を経てステップ1404が実行される場合には、前回のステップ1404で取得されたサーバに次ぐサーバとなる。
ステップ1405では、ステップ1404で取得したサーバに該当する詳細比較テーブル1125(図12)を参照して、ファイル識別情報(ステップ1401若しくはステップ1409で取得したファイル識別情報)に対応するファイル属性情報を取得し、これを比較元の情報(即ちステップ1403で取得した情報)と比較する。また、これから得られた比較結果を簡易表示記号に変換すると共に(図13のステップ1302で説明したものと同様)、ファイル内容特定識別情報も取得してこれらの情報を対応付けたレコードを生成する。本ステップで生成されるレコードとは、図21(“TOOL/lib/file_c”についての詳細表示画面)を例にすると一覧として表示されているデータの2番目以降のデータであり、2番目のデータを例にすると「APSERVER02、2003/12/03 14:28:35、7、root sys 646、01、−p−」である。即ち、サーバ名と各種ファイル属性情報とファイル内容特定識別情報(図中ではIDに該当)と各簡易表示記号を有するレコードである。
ステップ1406では、ファイル識別情報(ステップ1401若しくはステップ1409で取得したファイル識別情報)に対応する“順位が次のサーバ”が存在するか否かを論理和リスト1123を参照して判別し、これがあった場合にはステップ1404へと戻って処理を繰り返し、無かった場合にはステップ1407へと移行する。
ステップ1407では、ステップ1403とステップ1405で生成したレコードを一覧形式にした画面(即ち図19〜図25の何れかの画面)を生成し、ステップ1408にてこれの画面表示処理を行う。
ステップ1409では、論理和リストの次のファイル識別情報を取得してループ1の処理を続行するものである(図5のステップ510と同様の処理概念)。
図19〜図25の画面表示例は、図18と同様に、例として使用した図8やこれに基づいて生成される各リストやテーブルの内容とは異なるものである。図19〜図25の各図は、各ファイル識別情報に対応する表示画面例となっており、例えば、図19は“TOOL/lib/file_a”についての詳細画面、図20は“TOOL/lib/file_b”についての詳細画面となる。即ち、図19〜図25の各画面はステップ1402〜ステップ1409の処理が1回実行されると表示される画面であり、これがループ1によって繰り返されることにより図19〜図25の全画面が表示されることとなる。各図に示されるように、画面の最上位に“ファイル名”としてのファイル識別情報(パスを含むファイル名)が表示され(通し番号も表示)、当該ファイルを有するサーバの一覧と各種情報が対応付けられた一覧が表形式で表示される。当該一覧表には、該当ファイルを有するサーバのうち最も優先度が高いサーバが最上位に“比較元”として表示され、以降優先順にサーバ名(図中ではホスト名)と各種ファイル属性情報とファイル内容特定識別情報(図中ではIDに該当)と各簡易表示記号が表示される。
以上のごとく、本実施例のファイル管理システムによれば、各サーバごとの“サーバ別ファイル識別情報リスト”が生成され、さらに、当該各“サーバ別ファイル識別情報リスト”に基づいてシステムの全体的なファイル識別情報のリストである“論理和リスト”が生成されることとなる。従って、システム全体(例えば機能が共通する全てのサーバ間)との関係において、各サーバのファイルの状況の対比などを効率良く行うことが可能となる。また、各ファイル識別情報に、当該ファイル識別情報に対応するファイルを有しないサーバが存在する旨の情報や、比較元ファイル属性情報に対してファイル属性情報が相違するサーバがあるか否かを示す情報などが対応付けられる。従って、例えば、機能が共通するサーバ間においてAと言うファイルを全てのサーバが有しているか否かということや、Aのファイル識別情報に差異があるか否かということを即座に判別させることが可能となる。
また、同一のファイル識別情報を有するサーバ間において、ファイル識別情報が同一であってファイル内容特定情報が違う場合に、サーバの優先順位に従って順番にファイル内容特定識別情報が付与されることとなる。従って、例えば、Aと言うファイルを備える複数のサーバ間において、各サーバのAファイルから生成されたファイル内容特定情報が相違している場合にはこれらに異なるファイル内容特定識別情報が付与されることとなり、ファイル内容特定情報が相違するものがどの程度あるか、即ちファイル名がAであるファイルであって中身(データ)が異なるものがどの程度あるかといったことを即座に判別させことが可能となる。
さらに、“比較結果簡略表示欄”という簡易表示画面により、システム全体としてどのようなファイルを有しているかということと共に、各ファイルがシステム全体として(各サーバにおいて)同一のものであるか、相違がある場合にはどういった項目について相違があるのかといったことを一瞥にて判断することができるため、非常に有用である。
さらに、“比較結果詳細表示欄”という詳細表示画面により、各ファイルごとに、当該ファイルを備えるサーバはどれなのか、ファイル属性情報がどのようなものであるか、比較元に対してどのような項目に相違があるのかと言ったことを一瞥にて認識可能となるため非常に有用である。
例えば、図19に示されるように、“TOOL/lib/file_a”については、APSERV01とAPSERV02については、ファイル内容特定識別情報が01で同一であるため、ファイルの内容(データ)が同一であると判断することができる。これに対し、APSERV03とAPSERV04についてはそれぞれファイル内容特定識別情報が02と03であるため、APSERV01やAPSERV02とはファイルの内容(データ)が異なるということが判断できると共に、APSERV03とAPSERV04の間においてもファイル内容が異なるということが判断できる。即ち、ファイル内容特定識別情報を見ることで、どのサーバとどのサーバが同一内容のファイルであるかということを一瞥にて認識することが可能であり、非常に有用である。大規模システムにおいて非常に膨大なファイルのつき合せ作業を要するような場合に、各ファイルごとの比較結果が一覧でエビデンスとして得られることの有用性は、非常に高いものがある。
また、ファイル内容(ファイル内容特定情報)の相違の有無だけでなく、ファイル属性情報に関する相違の有無も一覧として把握できるため、非常に有用である。例えば、ファイルの書き込みや読み込みの条件として、ファイル属性情報の権限情報を元に動作するアプリケーションがあるような場合、ファイルの内容(データ)自体は完全に同一であったとしても、権限に相違があると当該ファイルの読み書きが不能となり、システムがうまく稼動しないということが発生する場合もある。本実施例のファイル管理システムによれば、比較元のサーバに対して各サーバのファイル属性情報に相違があるか否かを、簡易表示記号によって一瞥にて判別することができ、このような問題の防止若しくは原因把握のために非常に有用となる。
また、各サーバ間におけるファイル内容特定情報の比較処理(図7の処理)において、優先順位の最も高いサーバから順にファイル内容特定情報を比較して、これが異なる場合に新たなファイル内容特定識別情報を付与するようにしているため、処理の負荷を低減させることも可能となる。この点について図7の処理では説明の簡単化のため明確にはなっていないが、図19の場合を例として説明すると、例えばAPSERV03についての処理において、APSERV03とAPSERV01のファイル内容特定情報を比較した以上、APSERV01とファイル内容特定識別情報が同一であるAPSERV02についてはAPSERV03と比較する必要はない(即ち比較済みのサーバと同一の識別情報を持つサーバは比較対照から除外できる)。よって、当該処理によって負荷が軽減される。
なお、ファイル内容特定情報の比較によってファイルの内容に相違があると判断された場合に、以下で示す処理によって、具体的な相違箇所を検出するようにしても良い。
<内容相違部分表示処理>
図15は、「内容相違部分表示処理」の概略を示すフローチャートである。当該処理は、特定のファイル識別情報を引数として与えられた上で実行されるものとする。
ステップ1501で変数nに2を代入し、続くステップ1502で、各サーバの詳細比較テーブル1125(図12)を参照して、本処理に引数として与えられたファイル識別情報に該当するものであって且つファイル内容特定識別情報がnであるものがあるか否かを判別する。即ち、ファイル内容特定識別情報が2であるか否かを判別するものであり、これは、ファイル内容特定情報の比較によってファイル内容に相違があると判断されたものがあることを示す。
続くステップ1503では、ステップ1502若しくはステップ1509で判別された“ファイル内容特定識別情報がnであるファイル”をライブラリ領域1121から取得する。さらに、当該ファイルと同一のファイル識別情報(即ち引数として与えられた情報)を有するファイルであって、ファイル内容特定識別情報が1であるファイルを、各サーバの詳細比較テーブル1125を参照することによって判別し、これをライブラリ領域1121から取得する。例えば、図12のような場合に引数を“DIR/FILE1”として本処理が実行された場合、サーバ3の詳細比較テーブル1125に基づいてファイル内容特定識別情報が2であることが判別され、これと同一のファイル識別情報(DIR/FILE1)を有するファイルであって、ファイル内容特定識別情報が1であるファイルがサーバ1(orサーバ2)に存在することがサーバ1(orサーバ2)の詳細比較テーブル1125を参照することで判別されるものである。
続くステップ1504では取得したファイルがバイナリファイルであるかテキストファイルであるかを判別する。当該処理は、例えば、ファイルのデータの先頭から1000バイトを読み込んでこの中にnullデータがあるか否かを判別することによって行う(nullがあった場合にはバイナリファイルと判断する)。ファイルの拡張子などから判別できるのであればそのようなものであってもよい。
ステップ1504の判別の結果、バイナリファイルであった場合には、これをテキスト化するコマンドを適用することで、バイナリファイルをテキスト化し(ステップ1505)、テキストファイルであった場合にはステップ1505をスキップする。“テキスト化コマンド”とは、バイナリファイルの全部若しくは一部をテキスト化するためのものであり、例えば、OSのコマンドライン上で特定のファイルに特定のコマンドを実行することで、バイナリファイルの全部若しくは一部をテキスト化して抽出するものや、特定のファイルを特定のプログラム上で実行させることでテキスト化するもの(当該処理を実行させるための何らかの命令)等も含む概念である。テキスト化コマンドはファイルの種別ごとに定められており(例えば、実行ファイルにおけるwhatコマンドなど)、ファイルの種類に応じて適当なコマンドを実行するものである。
ステップ1506では、ステップ1503で取得されたファイル内容特定識別情報がnであるファイルと、ファイル内容特定識別情報が1であるファイルと(ここでは上記処理により両者ともテキストである)、を全文比較(テキスト化コマンドで得られたテキストが、バイナリファイルの一部である場合には、当該“一部”についての全文比較である)する処理を実行して、両ファイル間における具体的な相違部分を検出する。
ステップ1507では、ステップ1506で得られた相違部分とサーバ名とを対応付けたレコードを生成する。
続くステップ1508ではnをインクリメントして、ステップ1509で、各サーバの詳細比較テーブル1125(図12)を参照して、本処理に引数として与えられたファイル識別情報に該当するものであって且つファイル内容特定識別情報がnであるものがあるか否かを判別する(ステップ1502と同様の処理概念であるがここではnは2ではない)。当該判別の結果、ファイル内容特定識別情報がnであるものがあった場合にはステップ1503に戻って処理を繰り返し、無かった場合にはステップ1510へと移行する。
ステップ1510では、ステップ1507によって生成されたレコードを一覧形式にした画面を生成し、ステップ1511においてこれを表示する処理を実行する。
以上のように、図15の処理によれば、ファイル内容特定識別情報に相違がある場合(即ちファイル内容特定情報が違う場合であり、ファイル内容に相違があることを示す)に、これらのファイルの全文比較を行うことにより、ファイルの具体的な相違部分を検出できるため有用である。さらに、ファイルがバイナリファイルである場合にも、これをテキスト化するコマンドを実行した後に具体的な相違部分を検出するようにしているため、人が理解できる情報として相違部分を検出することができ、非常に有用である。即ち、単にバイナリファイルの内容比較をするものであると、その相違部分とは“1”と“0”が反転しているだけであり、当該部分を表示してもユーザにとって有意義な情報であるとは言い難い(単に両者に相違があるということしかわからない)のに対し、上記処理によれば、一旦テキスト化した後に全文比較を行うため、相違部分もテキストとして得ることができ、ユーザにとって有意義な情報となり得るのである。例えば、前述したtarコマンドを用いることにより、アーカイブファイル内のどのファイルに相違があるかを判別可能となるものである(単にアーカイブファイル同士を比較した場合には、アーカイブファイルAとアーカイブファイルBの間に相違があるということしかわからない)。
なお、上記で説明した各処理は、相互に関連付けられて全体として1つの処理として実行されるものであっても構わないし、ユーザからの要求に応じるなどして個別に実行されるようなものであっても構わない。
例えば、図3の処理(図4含む)において、システム全体(全てのサーバ)に対してリストを生成する処理であっても構わないし、ユーザによって特定されたサーバだけに対して処理を行うようなものであっても良い。また、予め図3の処理(図4含む)を実行しておくことで、システムとしてサーバごとのリストと論理和リストを常に保持し、必要に応じて実行される図5の処理などにおいて当該リストを参照するようなものであっても良いし、図5などの処理要求があった際にその都度必要に応じて図3の処理を実行して必要な各リストを生成するようなものであっても構わない。
また、図5の処理(図6〜7を含む)においても同様に、論理和リストにある全てのファイル識別情報を対象とし、且つ、全サーバを対象とする処理であっても構わないが、例えばユーザによって比較資源としてのサーバを指定された処理や、ファイル(ファイル識別情報)を指定された処理であっても構わない。図13や図14の処理についても同様で、図3や図5の処理によってシステム全体に対して処理された結果を全て画面表示させる処理であっても構わないし、図3や図5の処理によってシステム全体に対して処理された結果の一部(ユーザによって指定されたサーバやファイル)について表示させるような処理であっても構わない。さらに言えば、ユーザによってサーバやファイルについて指定された画面表示要求があった場合に、当該条件に必要な範囲だけについてその都度図3や図5の処理及び図13〜図15の処理を実行するようなものであっても構わない。
このような何れの処理態様も、上記で説明してきた処理概念に基づいて実行できるものである。
このような処理態様のバリエーションの例として、ユーザによって処理対象のサーバや比較するファイルについて指定された「ファイル比較要求」があった際に実行される処理動作の概略を、図26及び図27のフローチャートとして示した。当該処理の前提としては、各ファイルのファイル内容特定情報が算出済みであるものとする(勿論、以下の処理の中で必要な際に随時算出するようなものであっても構わない)。なお、当該処理は、上述した図3などの各処理が実行されていることを前提とするものではなく、単独で動作可能なものである。
図26が、「ファイル比較要求」があった際に実行される処理全体の概略を示したフローチャートである。
ステップ2601では、処理(比較)対象であるサーバと、比較を実行するファイルのファイル識別情報を取得する。当該処理は、出力部115に処理条件設定画面を表示させつつ、入力部114に対するユーザの入力情報を取得することなどによって行う。
ステップ2602では、ライブラリ領域1121を参照して、ステップ2601で取得したファイル識別情報に対応するファイルを有するサーバ(ステップ2601で指定された処理対象サーバ)であって、最も上位のサーバを判別する。
続くステップ2603では、「ファイル内容特定情報比較処理」を実行する。当該処理は基本的な概念としては図7と同様の処理であるが、図7では図3などの各処理が既に実行されていることを前提とするものであるので、ここでは、図27の処理となる。
ステップ2701では、図26のステップ2601で指定された処理対象サーバの中で最も大きな(優先度の低い)サーバの番号を変数nに代入する。続くステップ2702では、図26のステップ2602で判別された最上位サーバの番号を変数sに代入する。
ステップ2703では、サーバs(最上位サーバ)の、図26のステップ2601で指定されたファイル識別情報に該当するファイルのファイル内容特定情報を取得してこれを“比較元”の情報とする。また当該取得したファイル内容特定情報に対する識別情報(ファイル内容特定識別情報)として1を付与して、サーバsの詳細比較テーブル1125に格納する。さらに、変数tに1を代入する。
以上の、ステップ2701〜ステップ2703の処理が、「図3などの各処理が実行されていない」ことに基づく、図7に対しての追加的な処理である。即ち、ステップ2701〜ステップ2703において、図3などの各処理の内、必要な処理のみを実行しているものであり、段落0135で言及したように、「上記で説明してきた処理概念に基づいて実行」しているものに過ぎない。
続くループ1の処理は、図7のループ1と同様の処理であるが、本処理の前提として論理和テーブル1123が存在していないため、図7のステップ702やステップ706に替えて、ステップ2704とステップ2705を実行する。即ち、論理和テーブル1123を参照して、サーバi等が当該ファイル識別情報に対応するファイルを有するか否かを判別するのではなく、ライブラリ領域1121を参照して判別するものである。なお、ループ1の繰り返し条件である「i=s+1 to n」については、サーバの番号がs+1からnまでのもののうち、図26のステップ2601で指定された処理対象サーバについてのみ処理が実行されることとなる。
図27の処理によって、ステップ2601(図26)で指定された処理対象となる各サーバの、ステップ2601で得られたファイル識別情報に基づいて定められる各ファイルの各ファイル内容特定情報に対してファイル内容特定識別情報が付与されて、詳細比較テーブル1125に格納されることとなる。
図27の処理であるステップ2603に続くステップ2604では、ステップ2602で判別した最上位サーバの、ファイル識別情報(ステップ2601で得た情報)に対応するファイルのファイル属性情報をライブラリ領域1121から取得し、これを“比較元”の情報とする。またこれら取得したファイル属性情報と、“比較元”である旨の情報を最上位サーバの詳細比較テーブル1125に格納する。なお、図28に本処理で生成される詳細比較テーブル1125の一例を示している。図28では、各サーバの詳細比較テーブル1125に、複数のファイル識別情報に対応した情報が格納されているものを例示しているが、図26(及び図27)の処理は、ステップ2601で指定された“ファイル識別情報”に基づいて処理が行われるため、図26(及び図27)の処理が1回実行されることによって得られる情報は、1つのファイル識別情報に対応した情報だけとなる。
ステップ2605では、ライブラリ領域1121を参照して、ファイル識別情報(ステップ2601で得た情報)に対応するファイルを有する優先順位が次の処理対象サーバを判別する。
ステップ2606では、ステップ2605で判別したサーバの、ファイル識別情報(ステップ2601で得た情報)に対応するファイルのファイル属性情報をライブラリ領域1121から取得し、これをステップ2604で取得した“比較元”と比較する。そして当該比較結果を簡易表示記号に変換し(図13のステップ1302等と同様の概念)、これらの情報を詳細比較テーブル1125に格納する。図28の「ファイル属性情報比較結果」の欄に当該情報が格納されることとなる。
ステップ2607では、ファイル識別情報(ステップ2601で得た情報)に対応する“順位が次の処理対象サーバ”が存在するか否かを、ライブラリ領域1121を参照して判別し、これがあった場合にはステップ2605へと戻って処理を繰り返し、無かった場合にはステップ2608へと移行する。
ステップ2608では、詳細比較テーブル1125(図28)の情報に基づいて、サーバ名と、ファイル属性情報の相違判別結果である“簡易表示記号”と、ファイル内容特定識別情報と、を対応付けて一覧表形式にした画面を生成し、ステップ2609でこれを出力して処理を終了する。
図29には、“比較するファイル”を特定の1つのファイル識別情報に限定するのではなく、条件付けに適合する複数のファイルに対してファイル比較処理を実行させるものの例を示した。
ステップ2901では、処理対象サーバと、比較を実行させるファイルを定める条件を取得する。“比較を実行させるファイルを定める条件”とは、例えば、ファイル名のみを指定することによって、ディレクトリ構成の相違(パスの相違)は問わないようにするものや、特定のディレクトリを指定することで、当該ディレクトリに属するファイルを全て対象とするものや、ファイル名やパスの一部にワイルドカードを用いて処理させるもの、その他、ファイルの属性情報に基づいて処理を実行させるファイルを定める(例えば、更新日時によって指定する)ものなどである。
ステップ2902では、“比較を実行させるファイルを定める条件”に基づいて比較を実行するファイルを判別し、これに該当する各ファイル識別情報を取得し、当該取得した各ファイル識別情報が格納される“判別対象ファイル識別情報リスト”を生成する。
ステップ2903では、“判別対象ファイル識別情報リスト”の最初のファイル識別情報を取得する。続くループ1の処理は、“判別対象ファイル識別情報リスト”にある各ファイル識別情報に対してステップ2904〜ステップ2905の処理を実行させるものである。
ステップ2904で実行される「ファイル比較・表示処理」は、図26の処理と同様の処理概念である。図26の処理では、ステップ2601において、処理対象サーバとファイル識別情報を取得しているが、図29の処理から呼び出されることにより、図29のステップ2901で取得された処理対象サーバの情報と、ループ1で対象としているファイル識別情報(ステップ2903若しくはステップ2905で取得されたファイル識別情報)と、がそれぞれ引数として渡されることで、処理対象サーバとファイル識別情報が取得される(図26のステップ2601の処理が代替される)。
ループ1によって、図26の処理が、複数のファイル識別情報に対して繰り返し処理されることで、各ファイル識別情報ごとに、サーバ名と、ファイル属性情報の相違判別結果である“簡易表示記号”と、ファイル内容特定識別情報と、を対応付けて一覧表形式にした画面が表示されることとなる。
図16〜図25で示した表示画面例は、基本的に、図26〜図29で説明した処理に準じて生成された処理結果である(上記で説明した他の処理(図13や図15の処理など)の実行を必要とするものも含まれている)。図17が処理条件に関する画面表示部分である。比較対象として、APSERV01〜APSERV04及び追加の比較対象としてTESTAP02〜TESTAP04(テストサーバ13に該当)が指定されている。なお、同画面中の“比較資源”とはライブラリ領域1121を示すディレクトリ情報である(“追加比較資源”はテストサーバのライブラリ領域を示すディレクトリ情報)。また検索パスとして“/TOOL/lib”が指定されており、これはファイル識別情報として“/TOOL/lib”というディレクトリ情報を有するもののみを対象とするものである。
同画面中の“詳細非表示”とは、当該情報に関する相違があった場合であってもその詳細は表示しないものである。例えば、「権限のみ=NO」という条件の場合には、相違内容が権限相違のみの場合、その詳細情報を表示しないものである。これは、サーバやファイルによっては、「権限が異なることがあらかじめ判明している場合」や、「権限に依存しないことが判明している場合」、また、「純粋にファイルの中身だけの差分を検査したい場合」などがあるため、このような場合に無用な精査や詳細の出力を行わないようにするための機能である。従って、当該設定に基づいて不要な情報の出力(表示)を行わない処理が実行される(設定に基づいて上記説明した各処理のうち不要となる処理を実行しないようにしてもよい)。
同画面中の“バイナリ比較”とは、図15の処理の実行の有無の条件付けであり、これは当該処理を実行すべきファイルを特定して指定することができる。例えば、ここの例ではfile fに対してのみ指定があり、その結果として、図18の簡易表示画面においては“TOOL/lib/file_f”に対応する簡易表示記号として“B”が表れている。また“TOOL/lib/file_f”についての詳細表示画面である図24においては、その画面下部において全文比較の結果である相違部分が表示されている。これによって、例えば、基本的には同一ファイルであるが、ファイル中に各サーバ固有の情報(例えばIPアドレス)が含まれているファイルであるため各サーバで相違があって然るべきものにつき、その相違部分を確認するために当該ファイルについて図15の処理を実行させることで、当該相違部分を視認できるというような優れた効果を有する。本実施例では、処理の効率化の観点から、図15のような具体的なファイルの比較処理は、ファイル内容特定情報に相違がある場合に実行するものとしているが、システムの能力や管理対象の規模によっては、初めから具体的なファイルの比較処理を行うようなもの(ファイル内容特定情報による比較を行わないもの)であっても構わない。例えば、図7の処理においてファイル内容特定情報を比較するのではなく、ファイルそのものを比較して、相違がある場合にそれぞれ異なる識別情報を付与するような処理としても構わない。
なお、図14の処理では、ファイル識別情報に対応するファイルを有するサーバのみを対象として処理を実行させているが(ステップ1404)、全サーバに対して処理を実行しつつ対応するファイルを有しないサーバについては、対象のファイルが存在しないことを表示させるような処理としても良い。図22がこのような処理に基づく表示画面例であり、APSERV04とTESTAP04に、“TOOL/lib/file_d”が存在しないことが示されている。このような表示処理にする方が、該当ファイルが存在しないサーバを明瞭に認識できるため有用である。即ち、該当ファイルがあって然るべきサーバ(若しくは存在するべきでないサーバ)に、適切にファイルが存在しているか否かということを一瞥で判断可能とできるものである。
なお、画面表示については、ファイル管理サーバ11に備えられる出力部115に行うものであってもよいし、クライアントであるPC15やPC125からの要求に対する応答として必要な情報を送信し、PC15やPC125に備えられる出力部(モニタ)に表示させるようなものであっても当然よい。また、画面表示ではなく、プリンタ等に出力するもの等であっても当然よい。
本実施例では、説明の便宜のため、サーバの番号によって優先順位が定められるものを例として説明したが、“優先情報”として別に定められているものやユーザによってその都度定義されるようなものであっても構わない。例えば、各ファイルごとに異なる優先順位を定めたテーブルを備えることで、各ファイルごとに優先的なサーバ(即ち比較元となるサーバ)を変えて処理が実行されるようなものであっても良い。
また、本実施例では、ファイル識別情報として、ディレクトリ情報を含むファイル名を用いて説明しているが、例えば、ディレクトリ情報(パス)やファイル名の一部に相違があっても同一のファイル識別情報としてみなす処理を可能と(一部の相違を吸収可能にように)しても良い。例えば、パスの一部にワイルドカードを用いて処理させたり、特定の変換(例えば、サーバ2についてはパスの一部を別のパスに変換する等)を予め定義若しくは処理の都度ユーザ定義させるようなものであっても構わない。勿論ファイル名のみによって動作させるようなものであっても構わない。
また、その他の情報についても実施例中で示したものに本発明を限定するものではなく、本発明の趣旨に沿って適宜定められるものであってよい。例えば、本実施例では、ファイル内容特定識別情報を通し番号情報としているが、全く別の形式の識別情報であっても構わない(ただ、実施例中の説明からもわかるように連続的な情報の方が処理として便利な面がある)。簡易表示記号についても、画面表示処理(図13・図14)の中でいちいち変換するのではなく、例えば図6のステップ604〜609の各処理において、最初から簡易表示記号として簡易比較テーブル1124に格納させるようなものであってもよい。
また、本実施例で説明した各リストやテーブルは、理解し易いように示した例に過ぎず、ここで示したような構成のものに本発明を限定するものではない。上記で説明した発明の趣旨に従って、各情報が相互に関連付けられるようにして保持されれば良いものである。
なお、本実施例では、ファイル管理サーバ11の記憶部112に、システム内に備えられる各サーバの資源のコピーが格納されるライブラリ領域1121が存在しており、上記各処理では、ライブラリ領域1121から各サーバに関する情報(ファイルやファイル識別情報、ファイル属性情報)を取得して処理を実行するものを例として説明したが、ファイル管理サーバ11がライブラリ領域1121を備えず、必要に応じて各サーバからネットワークを介して情報を収集するようなものであっても構わない。即ち、実際に稼動している業務サーバ12やテストサーバ13などからネットワークを介して必要な情報を、上記各処理に必要な時に収集して処理を実行するものであっても良い。業務サーバ12やテストサーバ13において実行できる処理については業務サーバ12やテストサーバ13側で実行させる(例えば、各ファイルの各ファイル内容特定情報を算出することや、サーバ別ファイル識別情報リストの生成処理を各サーバに実行させる)ものであっても良い。何れの場合も、上記で説明した本発明の趣旨に基づいて実行可能なものである(概念として相違するものではない)。