(57)【特許請求の範囲】
【請求項１】
第一のファイル格納装置または第二のファイル格納装置に格納されたファイルのデータを取得する装置であって、
前記第一のファイル格納装置に対して所定の期間内に更新された更新ファイルのリストであるファイル更新リストの送信を要求する手段と、
前記第一のファイル格納装置から、更新ファイルの第一のファイル格納装置及び第二のファイル格納装置における所在情報と当該更新ファイルの管理状態情報を含む前記ファイル更新リストを受信する手段と、
前記ファイル更新リストに含まれる更新ファイル各々について、当該ファイル更新リストに含まれる前記管理状態情報に基づいて、前記第一のファイル格納装置と前記第二のファイル格納装置のいずれを取得元としてファイルデータとメタデータを取得するかを判断する手段と、
前記取得元に対し、当該取得元における前記所在情報が示す場所にある前記更新ファイルのファイルデータとメタデータの送信を要求する手段と、
前記取得元から前記更新ファイルのファイルデータとメタデータを受信する手段と、を有することを特徴とする装置。
【請求項２】
請求項１に係る装置であって、
前記装置はさらに、第一のファイル格納装置または第二のファイル格納装置に格納されたファイルのインデックス情報を登録した検索インデックス管理表と、
前記ファイルの第一のファイル格納装置における所在情報を登録した検索インデックス登録ファイル管理表と、
前記更新ファイルのファイルデータとメタデータから検索インデックスを生成する手段と、
生成した前記検索インデックスに基づき前記検索インデックス管理表と前記検索インデックス登録ファイル管理表を更新する手段と、を有することを特徴とする装置。
【請求項３】
請求項２に係る装置であって、
前記装置はさらに、前記取得元から前記更新ファイルのファイルデータとメタデータの送信要求を拒否された場合は、前記検索インデックスの生成と前記検索インデックス管理表と前記検索インデックス登録ファイル管理表の更新をスキップする手段と、
次に前記ファイル更新リストを受信し更新ファイルのファイルデータとメタデータを取得する際に、前記更新をスキップしたファイルについて、再度ファイルデータとメタデータの取得を行う手段と、を有することを特徴とする装置。
【請求項４】
請求項３に係る装置であって、
前記ファイル更新リストの管理状態情報において、前記更新ファイルへの操作が削除であった場合は、前記インデックスを作成する処理をスキップする手段と、を有することを特徴とする装置。
【請求項５】
請求項４に係る装置であって、
検索条件と検索ユーザのアカウント情報を取得する手段と、
前記検索インデックス管理表より前記検索条件に合致するファイルを取得し、前記検索インデックス登録ファイル管理表から当該ファイルの所在情報を抽出する手段と、
前記抽出したファイルの各々について、当該ファイルに設定されているアクセス制限と前記検索ユーザが有する参照権限に基づき、前記検索ユーザが参照可能なファイルを抽出して検索結果とする手段と、
前記検索ユーザが参照可能なファイルのリストと当該ファイルの所在情報を検索結果として検索要求元に送信する手段と、を有することを特徴とする装置。
【請求項６】
請求項５に係る装置であって、
前記ファイル更新リストに基づき、前記検索結果に含まれる前記ファイルの所在情報が前記第一のファイル格納装置における所在情報である場合には当該所在情報を前記第二のファイル格納装置における所在情報に、当該所在情報が前記第二のファイル格納装置における所在情報である場合には当該所在情報を前記第一のファイル格納装置における所在情報に変換して検索結果を作成する手段と、を有することを特徴とする装置。
【請求項７】
請求項４に係る装置であって、
前記ファイル更新リストには第一のファイル格納装置のIPアドレスと第二のファイル格納装置のIPアドレスが含まれ、前記ファイル検索装置は、前記取得元に対し、前記所在情報が示す場所にある前記更新ファイルのファイルデータとメタデータの送信を要求する際に、前記取得元のIPアドレスを指定して送信を要求する手段と、を有することを特徴とする装置。
【請求項８】
請求項４に係る装置であって、
前記ファイル更新リストには前記更新ファイルの親ディレクトのアクセス制御情報とメタデータが含まれ、前記装置は、前記親ディレクトリのアクセス制御情報とメタデータを前記検索インデックスの生成に利用する手段と、を有することを特徴とする装置。
【請求項９】
請求項５に係る装置であって、
前記ファイル更新リストには、前記更新ファイルのファイル共有レベルとして設定された共有プロトコルアクセス制御情報が含まれ、
前記装置は、前記取得元に対し、当該取得元における前記所在情報が示す場所にある前記更新ファイルのファイルデータとメタデータの送信を要求する際に、所定の共有プロトコルが使用されていた場合、前記共有プロトコルアクセス制御情報を前記検索インデックス登録ファイル管理表に登録する手段と、
前記検索ユーザのアカウント情報に基づき、抽出した前記ファイルから、当該検索ユーザが参照権限を有するファイルを抽出する際に、前記共有プロトコルアクセス制御情報に基づく参照権限を考慮してファイルを抽出し検索結果とする手段と、を有することを特徴とする装置。
【請求項１０】
第一のファイル格納装置または第二のファイル格納装置に格納されたファイルのデータを取得する装置であって、
前記装置は、第一のファイル格納装置または第二のファイル格納装置に格納されたファイルのインデックス情報を登録した検索インデックス管理表と、
前記ファイルの第一のファイル格納装置における所在情報を登録した検索インデックス登録ファイル管理表と、
前記第二のファイル格納装置に対して所定の期間内に更新された更新ファイルのリストであるファイル更新リストの送信を要求する手段と、
前記第二のファイル格納装置から、前記更新ファイルの第一のファイル格納装置及び第二のファイル格納装置における所在情報と当該更新ファイルの管理状態情報を含む前記ファイル更新リストを受信する手段と、
前記ファイル更新リストに含まれる更新ファイル各々について、当該ファイル更新リストに含まれる前記管理状態情報に基づいて、第一のファイル格納装置と第二のファイル格納装置のいずれを取得元としてファイルデータとメタデータを取得するかを判断する手段と、
前記取得元に対し、当該取得元における前記所在情報が示す場所にある前記更新ファイルのファイルデータとメタデータの送信を要求する手段と、
前記取得元から前記更新ファイルのファイルデータとメタデータを受信する手段と、
前記更新ファイルのファイルデータとメタデータから検索インデックスを生成する手段と、
生成した前記検索インデックスに基づき前記検索インデックス管理表と前記検索インデックス登録ファイル管理表を更新する手段と、を有することを特徴とする装置。
【請求項１１】
ファイルデータの取得要求を受け付ける、他のファイル格納装置と階層関係にあるファイル格納装置であって、
前記ファイル格納装置は、前記ファイル格納装置にあるファイルの所在情報が示す当該ファイルの他のファイル格納装置における所在情報と、当該ファイルの管理状態情報を有するファイル階層管理表と、
少なくとも前記ファイル格納装置または前記他のファイル格納装置のいずれかに所在するファイルに対するファイル操作を記録したファイル更新リスト管理表と、
前記装置からファイル操作されたファイルリストの送信要求を受信する手段と、
前記ファイル更新リスト管理表に基づき所定期間内に更新された更新ファイルを抽出する手段と、
前記ファイル階層管理表に基づき、前記更新ファイルの前記ファイル格納装置における所在情報と他のファイル格納装置における所在情報を取得する手段と、
前記更新ファイルと前記ファイル格納装置における所在情報と前記他のファイル格納装置における所在情報を更新ファイルリストとして送信する手段と、を有することを特徴とするファイル格納装置。
【請求項１２】
第一のファイル格納装置と、第二のファイル格納装置と、前記第一のファイル格納装置または前記第二のファイル格納装置に対しファイル検索を行う検索装置を有するファイル検索システムであって、
前記検索装置は、少なくとも前記第一のファイル格納装置及び前記第二のファイル格納装置のいずれかに格納されたファイルのインデックス情報を登録した検索インデックス管理表と、
前記ファイルの前記第一のファイル格納装置における所在情報を登録した検索インデックス登録ファイル管理表と、
前記第一のファイル格納装置に対してファイル更新リストの送信を要求する手段と、を有し、
前記第一のファイル格納装置は、前記第一のファイル格納装置におけるファイルの所在情報と、当該ファイルの第二のファイル格納装置における所在情報と、当該ファイルの管理状態情報を有するファイル階層管理表と、
前記第一のファイル格納装置または前記第二のファイル格納装置に所在するファイルに対する操作を記録したファイル更新リスト管理表と、
前記検索装置からの前記ファイル更新リストの送信要求を受信する手段と、
前記ファイル更新リスト管理表に基づき所定期間内に更新された更新ファイルを抽出する手段と、
前記ファイル階層管理表に基づき、当該更新ファイルの第一のファイル格納装置及び第二のファイル格納装置における所在情報と当該更新ファイルの管理状態情報を含む前記ファイル更新リストを受信する手段と、を有し、
前記検索装置は、さらに、前記第一のファイル格納装置から前記ファイル更新リストを受け取る手段と、
前記ファイル更新リストで指定される更新ファイル各々について、当該ファイル更新リストに含まれる当該更新ファイルの管理状態情報に基づき、前記第一のファイル格納装置と前記第二のファイル格納装置のいずれに当該更新ファイルのファイルデータとメタデータの送信を要求するかを判断する手段と、
前記判断に応じて、前記第一のファイル格納装置または前記第二のファイル格納装置に前記更新ファイルのファイルデータとメタデータの送信を要求する手段とを有し、
前記第一のファイル格納装置および前記第二のファイル格納装置は、前記検索装置からの要求に基づき、前記更新ファイルのファイルデータとメタデータを前記検索装置に送信する手段を有し、
前記検索装置はさらに、前記前記第一のファイル格納装置または前記第二のファイル格納装置から前記更新ファイルのファイルデータとメタデータを受信する手段を、を有することを特徴とするファイル検索システム。
【請求項１３】
請求項１２に係るファイル検索システムであって、
前記検索装置はさらに、少なくとも前記第一のファイル格納装置及び前記第二のファイル格納装置のいずれかに格納されたファイルのインデックス情報を登録した検索インデックス管理表と、
前記ファイルの第一のファイル格納装置における所在情報を登録した検索インデックス登録ファイル管理表と、
前記更新ファイルのファイルデータとメタデータからインデックス情報を生成する手段と、
生成した前記インデックス情報に基づき前記検索インデックス管理表と前記検索インデックス登録ファイル管理表を更新する手段と、を有することを特徴とするファイル検索システム。
【請求項１４】
請求項１３に係るファイル検索システムであって、
前記第一のファイル格納装置は、前記ファイル更新リスト管理表に基づき、所定の条件を満たすファイルについて前記第二のファイル格納装置に複製を作成する複製ファイルリストを作成する手段と、
前記複製ファイルリストで指定されるファイル各々について複製ファイルを作成し、当該複製ファイルを前記第二のファイル格納装置に格納する手段と、
前記複製ファイルの各々について前記ファイル階層管理表の管理状態情報を更新する手段と、
前記第二のファイル格納装置に複製を有するファイルであって所定の条件を満たすファイルについて前記第一のファイル格納装置から削除する削除ファイルリストを作成する手段と、
前記削除ファイルリストで指定されるファイル各々について、第一のファイル格納装置からファイルを削除しスタブを作成する手段と、
前記削除したファイル各々について前記階層管理表を更新する手段と、を有することを特徴とするファイル検索システム。
【請求項１５】
請求項１４に係るファイル検索システムであって、
前記第一のファイル格納装置は、ユーザによるファイル操作を受け付ける手段と、
前記ファイル階層管理表の管理状態情報に基づき、前記ファイル操作を受け付けたファイルが前記第一のファイル格納装置に格納されている場合は、前記第一のファイル格納装置に格納されているファイルに対して操作を実行する手段と、
前記ファイル操作を受け付けたファイルが前記第二のファイル格納装置に移動または複製されている場合は、前記第二のファイル格納装置にあるファイルを前記第一のファイル格納装置の領域に読み出し、前記第一のファイル格納装置の領域にあるファイルに対して操作を実行する手段と、を有することを特徴とするファイル検索システム。
【請求項１６】
第一のファイル格納装置と、第二のファイル格納装置と、前記第一のファイル格納装置または前記第二のファイル格納装置に対しファイル検索を行う検索装置からなるファイル検索システムであって、
前記検索装置は、少なくとも第一のファイル格納装置第二のファイル格納装置のいずれかに格納されたファイルのインデックス情報を登録した検索インデックス管理表と、
前記ファイルの前記第一のファイル格納装置における所在情報を登録した検索インデックス登録ファイル管理表と、
前記第二のファイル格納装置に対してファイル更新リストの送信を要求する手段と、を有し、
前記第二のファイル格納装置は、前記第一のファイル格納装置または前記第二のファイル格納装置に所在するファイルに対する操作と当該ファイルの前記第二のファイル格納装置における所在情報を記録したファイル更新リスト管理表と、
前記検索装置からの前記ファイル更新リストの送信要求を受信する手段と、
前記ファイル更新リスト管理表に基づき所定期間内に更新された更新ファイルと当該更新ファイルの前記第二のファイル格納装置における所在情報を抽出する手段と、
前記抽出した更新ファイルと前記第二のファイル格納装置における所在情報をファイル更新リストとして送信する手段とを有し、
前記検索装置は、さらに、前記第二のファイル格納装置から前記ファイル更新リストを受け取る手段と、
前記ファイル更新リストに含まれる更新ファイルの前記第二のファイル格納装置における所在情報に基づいて、前記更新ファイルのファイルデータとメタデータの送信を前記第二のファイル格納装置に要求する手段とを有し、
前記第二のファイル格納装置は、前記検索装置からの要求に基づき、前記更新ファイルのファイルデータとメタデータを前記検索装置に送信する手段を有し、
前記検索装置は、さらに、前記第二のファイル格納装置から前記更新ファイルのファイルデータとメタデータを受信する手段と、を有することを特徴とするファイル検索システム。
【請求項１７】
請求項１６に係るファイル検索システムであって、
前記第一のファイル格納装置は、前記第一のファイル格納装置におけるファイルの所在情報と当該ファイルの第二のファイル格納装置における所在情報と、当該ファイルの管理状態情報を有するファイル階層管理表と、を有し、
前記検索装置は、前記ファイル更新リストに含まれる前記第二のファイル格納装置におけるファイルの所在情報を指定して、当該ファイルの当該第一のファイル検索装置のおける所在情報を問い合わせる手段と、を有し、
前記第一のファイル格納装置は、前記ファイル階層管理表に基づき、前記検索装置から指定された前記第二のファイル格納装置におけるファイルの所在情報を前記第一のファイル格納装置における当該ファイルの所在情報に変換する手段と、
前記変換の結果をファイル検索装置に送信する手段とを有し、
前記検索装置はさらに、前記変換の結果を受信する手段と、
前記第一のファイル格納装置における当該ファイルの前記所在情報に基づき、前記第一のファイル格納装置に対し、前記更新ファイルのファイルデータとメタデータの送信を要求する手段と、
を有することを特徴とするファイル検索システム。
【発明の詳細な説明】
【技術分野】
【０００１】
階層ファイルストレージシステムに格納されているファイルを検索する機能を提供する検索サーバならびにファイルサーバにおける制御方法に関する。
【背景技術】
【０００２】
コンピュータの高性能化ならびに低価格化により、様々な業種や用途においてコンピュータの利用が広がっている。近年では、コンピュータシステムに保管されるデータファイルの数が膨大になっている。特に、大量のファイルをシステム全体で低コストに管理するために、高速で高価なフロントエンドファイルサーバと安価で大容量なバックエンドファイルサーバを組み合わせてファイル管理方針に基づいて最適なファイルサーバにファイルを適宜移動させるなどする階層ファイルストレージシステムの利用も広がっている。
【０００３】
このように大量のファイルを管理する場合、利用者にとって欲しいファイルがどこに格納されているのかがわからなくなるという問題も発生している。この問題に対しては、全文検索サービスが利用されるようになってきている。この全文検索サービスは、コンピュータシステムに格納されているファイルデータを検索サーバが解析し、検索インデックスを事前に作成する。利用者は、検索サーバに対して取得したいファイルを検索するための検索クエリを送信し、その検索結果をもとに対象ファイルにアクセスする。このような検索サービスは、今後、コンピュータシステムに格納するファイルデータ数がさらに増加することが考えられる上、利用者自身がどこにどんなファイルデータを格納しているのかを全て把握することは困難になるため、利用者にとってさらに重要なサービスとなり、サービスの利用がさらに広がるものと考えられる。
【０００４】
従来、ファイルサーバと検索サーバとを連携させたファイル検索サービスを実現する場合、検索サーバにおいて検索インデックスの更新を行う際、インデックス更新対象ファイルを特定するために、検索サーバは定期的にファイルサーバをクローリングする必要があった。このクローリングでは、対象ファイルサーバ上に格納されている全ファイルにアクセスし、当該ファイルの最終更新日時などを参照し、前回インデックスを更新してから当該ファイルが更新されているか否かを判定する必要があった。このような操作は、対象ファイル数が増えれば増えるほど、その処理負担が大きくなる。特に、ファイルサーバとして階層ファイルストレージシステムを利用する場合は、さらに別の問題も生じる。具体的には、インデックス更新対象ファイルを特定するための全ファイルアクセス処理に伴い、階層ファイルストレージシステムのバックエンドファイルサーバに格納されているファイルが一度フロントエンドファイルサーバに読みだされてから検索サーバがアクセスすることになる。これにより、階層ファイルストレージシステム内におけるファイルサーバ間転送量が増大してしまう。
【０００５】
検索サーバにおける検索インデックス更新時の問題を解決する一つの方法として、ファイルサーバ側で事前にファイル更新リストを作成しておき、当該リストを検索サーバがインデックス更新時に取得して利用するというものがある。このような方法については、例えば、特許文献1にその内容が開示されている。この方法では、検索対象となるファイルサーバにおいて、当該ファイルサーバにおけるファイルシステムでのファイル更新内容を検知し、その情報を蓄積して管理する。検索サーバは、当該リストを取得することにより、検索インデックス更新の際に、インデックス更新対象ファイルを特定するために、各ファイルサーバの全ファイルにアクセスする必要はなくなる。これにより、ファイル更新リストを利用してインデックス更新を効率よく実行することが可能になる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国公開特許公報  2008/0071805号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献1記載の技術では、検索サーバがフロントエンドのファイルサーバからファイル更新リストとインデックス更新対象ファイルを取得する場合、ネットワーク間のデータ転送量が増大する場合がある。特に、インデックス更新対象ファイルの実体が階層ファイルストレージシステムのバックエンド側ファイルサーバに格納されている場合、当該バックエンド側ファイルサーバからフロントエンド側ファイルサーバへ別途データ転送が必要となる。
【０００８】
また、特許文献1記載の技術では、検索サーバがバックエンドのファイルサーバからファイル更新リストとインデックス更新対象ファイルを取得する場合、当該インデックス更新対象ファイルのフロントエンド側ファイルサーバにおけるファイルパス名を特定できない場合がある。特に、当該階層ファイルストレージシステムにおいて、フロントエンド側ファイルサーバとバックエンド側ファイルサーバで利用する名前空間が独立している場合、必ずしもバックエンド側ファイルサーバでは、フロントエンド側ファイルサーバからファイルが複製あるいは移動してきた際に、フロントエンド側ファイルサーバのパス名を同期的に保管しておく必要はない。同期的にパス名を保管する場合、フロントエンド側ファイルサーバでディレクトリ名の改名などをした際には、それに伴いバックエンド側ファイルサーバでも改名処理を同期的に行う必要がある。このため、システム全体の性能要件などを考慮した場合、パス名を同期的に保管しないケースも十分想定できる。
【０００９】
しかし、このようなケースにおいて、検索サーバがインデックス更新を行う場合、インデックス更新対象ファイルのフロントエンド側ファイルサーバにおけるパス名を取得できないと、次のような二つの問題が生じる。第一に、検索サーバが提供する検索結果の中に、フロントエンド側ファイルサーバのパス名を含めることができなくなる。階層ファイルストレージシステムのユーザは、フロントエンド側ファイルサーバのパス名を利用してファイルアクセスを行う。このため、当該パス名と検索結果として提供できない場合、検索結果を受け取ったユーザが当該ファイルにアクセスしようとしても、そのアクセス先が把握できなくなってしまう。第二に、フロントエンド側ファイルサーバがファイル共有プロトコルとしてNFS(Network File System)を利用している場合、インデックス更新時には、インデックス更新対象ファイルの親ディレクトリならびに先祖ディレクトリに設定されているアクセス制御情報を取得困難になる。これは、検索サーバが検索結果を提供する際に、検索要求ユーザと検索対象ファイルに設定されたアクセス権に基づいて、検索結果の絞り込みを行うために、ディレクトリのアクセス制御情報も必要になるためである。検索サーバは、ディレクトリにアクセスするために、インデックス更新対象ファイルに関するパス名情報が必要となる。
【００１０】
以上より、階層ファイルストレージシステムにおいてファイル更新リストに基づいたインデックス更新を効率よく行うためには、インデックス更新をおこなう装置に対してインデックス更新対象ファイルの格納場所に関する情報も提供する制御技術が必要になる。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明では、第一のファイル格納装置または第二のファイル格納装置に格納されたファイルのデータを取得する装置であって、前記第一のファイル格納装置に対して所定の期間内に更新された更新ファイルのリストであるファイル更新リストの送信を要求する手段と、前記第一のファイル格納装置から、更新ファイルの第一のファイル格納装置及び第二のファイル格納装置における所在情報と当該更新ファイルの管理状態情報を含む前記ファイル更新リストを受信する手段と、前記ファイル更新リストに含まれる更新ファイル各々について、当該ファイル更新リストに含まれる前記管理状態情報に基づいて、前記第一のファイル格納装置と前記第二のファイル格納装置のいずれを取得元としてファイルデータとメタデータを取得するかを判断する手段と、前記取得元に対し、当該取得元における前記所在情報が示す場所にある前記更新ファイルのファイルデータとメタデータの送信を要求する手段と、前記取得元から前記更新ファイルのファイルデータとメタデータを受信する手段と、を備える。
【発明の効果】
【００１２】
上述の構成をとることにより、階層ファイルストレージシステムにおいてファイル更新リストに基づいたインデックス更新を効率よく行うことができる。
【図面の簡単な説明】
【００１３】
【図１】システム構成図の一例である。
【図２】検索サーバのハードウェア構成図の一例である。
【図３】Tier1ファイルサーバのハードウェア構成図の一例である。
【図４】Tier2ファイルサーバのハードウェア構成図の一例である。
【図５】クライアントマシンのハードウェア構成図の一例である。
【図６】階層ファイルストレージに対するインデックス更新処理ならびに検索処理全体の流れを例示する説明図である。
【図７】検索インデックス管理表を例示する説明図である。
【図８】検索インデックス登録ファイル管理表を例示する説明図である。
【図９】ファイル更新リスト管理表を例示する説明図である。
【図１０】ファイル階層管理表（一括管理）を例示する説明図である。
【図１１】ファイル階層管理表（各ファイルのメタデータとして管理）を例示する説明図である。
【図１２】ファイル更新リスト問合せパケットのデータ構造を例示する説明図である。
【図１３】ファイル更新リスト問合せ結果取得パケットのデータ構造を例示する説明図である。
【図１４】ファイル更新リスト登録処理を説明するフローチャートの一例である。
【図１５】ファイル階層制御処理を説明するフローチャートの一例である。
【図１６】ファイルアクセス処理を説明するフローチャートの一例である。
【図１７】インデックス更新全体処理を説明するフローチャートの一例である。
【図１８】ファイル更新リスト問合せ処理を説明するフローチャートの一例である。
【図１９】ファイルデータとメタデータ取得処理を説明するフローチャートの一例である。
【図２０】インデックス更新処理を説明するフローチャートの一例である。
【図２１】検索処理を説明するフローチャートの一例である。
【図２２】実施例2におけるファイル更新リスト問合せ結果取得パケットのデータ構造を例示する説明図である。
【図２３】実施例2におけるインデックス更新処理を説明するフローチャートの一例である。
【図２４】実施例3におけるファイル更新リスト問合せ結果取得パケットのデータ構造を例示する説明図である。
【図２５】実施例3におけるファイルデータとメタデータ取得処理を説明するフローチャートの一例である。
【図２６】実施例3におけるインデックス更新処理を説明するフローチャートの一例である。
【図２７】実施例4におけるファイル更新リスト問合せ結果取得パケットのデータ構造を例示する説明図である。
【図２８】実施例4におけるファイルデータとメタデータ取得処理を説明するフローチャートの一例である。
【図２９】実施例5におけるファイル更新リスト問合せ結果取得パケットのデータ構造を例示する説明図である。
【図３０】実施例5におけるファイルデータとメタデータ取得処理を説明するフローチャートの一例である。
【図３１】実施例6におけるTier2ファイルサーバのハードウェア構成図の一例である。
【図３２】実施例6におけるインデックス更新全体処理を説明するフローチャートの一例である。
【図３３】実施例6におけるファイル更新リスト問合せ処理を説明するフローチャートの一例である。
【図３４】実施例6におけるファイルパス名問合せ処理を説明するフローチャートの一例である。
【発明を実施するための形態】
【実施例１】
【００１４】
本実施例では、階層ファイルストレージにおけるファイル更新リストの管理方法、検索サーバによる階層ファイルストレージ上に格納されたファイルに対する差分インデクシング方法などについて説明する。本実施例では、階層ファイルストレージにおけるファイル更新リスト作成をTier1ファイルサーバで行い、検索サーバからインデックス更新対象ファイルへのアクセスはTier2ファイルサーバに対して行うケースを主な対象とする。
【００１５】
図1は、本発明の実施例におけるシステム構成を例示する説明図である。ネットワーク100を介して、検索サーバ1100と、Tier1ファイルサーバ2100、Tier2ファイルサーバ3100と、クライアントマシン4100とが接続されている。本システムにおいて、検索サーバ1100は、Tier1ファイルサーバ2100ならびにTier2ファイルサーバ3100からなる階層ファイルストレージに格納されたファイルに対するファイル検索サービスを提供する。Tier1ファイルサーバ2100は、階層ファイルストレージのフロントエンド側ファイルサーバに相当し、ユーザからのファイルアクセス要求を受け付け、ファイル共有サービスを提供する。Tier2ファイルサーバ3100は、階層ファイルストレージのバックエンド側ファイルサーバに相当し、Tier1ファイルサーバ2100からの要求をもとに、当該階層ファイルストレージにおける格納ファイルの一部を格納し、管理する。基本的に、Tier2ファイルサーバ3100は、ユーザからのファイルアクセス要求は受け付けない。Tier2ファイルサーバ3100に格納されているファイルにアクセスする場合は、Tier1ファイルサーバ2100を介してアクセスすることになる。クライアントマシン5100は、ユーザから検索サーバ1100へ検索要求を行ったり、Tier1ファイルサーバ2100へファイルアクセス要求を行ったりすることができる。本システムを利用することで、ユーザは階層ファイルストレージに格納したファイルに対して、検索サーバを利用したファイル検索を行うことが可能となる。
【００１６】
なお、図1では、各構成要素をそれぞれ一台ずつ記載しているが、この限りではない。可能であれば、各構成要素とも複数の台数でシステムを構成するようにしてもよい。また、図1では、各構成要素を別装置として記載しているが、この限りではない。可能であれば、任意の二つあるいはそれ以上の構成要素を一台の装置として実現する構成でもよい。また、ネットワーク100による接続形態については、どのようなネットワーク形態でもよく、例えば、インターネット接続でもよいし、ローカルエリアネットワークによるイントラネット接続などでもよい。
【００１７】
図2は、検索サーバ1100のハードウェア構成を例示する説明図である。検索サーバ1100は、プログラムを実行するプロセッサ1110と、プログラムならびにデータを一時的に格納するメモリ1120と、外部記憶装置1160にアクセスするための外部記憶装置I/F1130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F1140と、それらを接続するバス1150から構成されている。メモリ1120には、外部記憶装置I/F1130を制御するプログラムである外部記憶装置I/F制御プログラム1121と、ネットワークI/F1140を制御するプログラムであるネットワークI/F制御プログラム1122と、当該検索サーバ1100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ管理制御プログラム1123と、当該検索サーバ1100においてインデクシングと検索サービスを提供するための検索制御プログラム1124と、かかる検索制御プログラム1124が利用する検索インデックス管理表6100ならびに検索インデックス登録ファイル管理表6200が格納される。
【００１８】
検索制御プログラム1124は、その内部に、ファイル更新リスト問合せ制御サブプログラム1171と、ファイルアクセス制御サブプログラム1172と、インデクシング制御サブプログラム1173と、検索応答制御サブプログラム1174を持つ。ファイル更新リスト問合せ制御サブプログラム1171は、検索対象ファイルを格納するファイルサーバに対して、当該ファイルサーバにおけるファイル更新情報を問い合せる処理を行う。このファイル更新情報とは、ファイルサーバにおいてファイルのアクセスログなどをもとに作成されたファイル更新リストが該当する。また、当該ファイルサーバにおいてファイル更新リストを作成していない場合は、検索サーバが当該ファイルサーバに格納されているファイルをクローリングし、前回インデクシング更新を行った後で、新規作成されたファイル、更新されたファイル、削除されたファイルを特定し、その情報をまとめたものも該当する。本発明では、主に、前者のファイルサーバで作成するファイル更新リストを利用するケースを想定する。ファイルアクセス制御サブプログラム1172は、当該検索サーバがファイルサーバに格納されているファイルのデータならびにメタデータを取得する処理を行う。具体的には、前記ファイル更新リスト問合せ制御サブプログラム1171によって取得したファイル更新リストに記載されているファイルに対して、対象ファイルのインデックス更新用にデータならびにメタデータを取得する処理を行う。インデクシング制御サブプログラム1173は、インデックス更新対象ファイルのデータならびにメタデータを解析した上で、当該検索サーバが検索サービス用に管理するインデックスに反映させる処理を行う。具体的には、前記ファイルアクセス制御サブプログラム1172によって取得したインデックス更新対象ファイルのデータならびにメタデータを分析し、当該検索サーバで管理する検索インデックス管理表6100ならびに検索インデックス登録ファイル管理表6200に反映させる。検索応答制御サブプログラム1174は、ユーザからの検索要求を受け付け、自検索サーバの検索インデックス管理表6100や検索インデックス登録ファイル管理表6200などを利用した上で、検索結果を生成して提供する処理を行う。
【００１９】
なお、検索インデックス管理表6100ならびに検索インデックス登録ファイル管理表6200については後述する。
【００２０】
図3は、Tier1ファイルサーバ2100のハードウェア構成を例示する説明図である。Tier1ファイルサーバ2100は、プログラムを実行するプロセッサ2110と、プログラムならびにデータを一時的に格納するメモリ2120と、外部記憶装置2160にアクセスするための外部記憶装置I/F2130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F2140と、それらを接続するバス2150から構成されている。メモリ2120には、外部記憶装置I/F2130を制御するプログラムである外部記憶装置I/F制御プログラム2121と、ネットワークI/F2140を制御するプログラムであるネットワークI/F制御プログラム2122と、当該Tier1ファイルサーバ2100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ管理制御プログラム2123と、当該Tier1ファイルサーバ2100においてファイルを保管し複数ユーザ間で共有するためのファイル共有サービスを提供するためのファイル共有制御プログラム2124と、Change File Notification制御プログラム2125と、ファイル階層管理制御プログラム2126と、Tier2ファイルサーバ向けファイルアクセスクライアント制御プログラム2127と、かかるChange File Notification制御プログラム2125が利用するファイル更新リスト管理表6300と、かかるファイル階層管理制御プログラム2126が利用するファイル階層管理表6400が格納される。
【００２１】
Change File Notification制御プログラム2125は、Tier1ファイルサーバ2100においてデータ管理制御プログラム2123にて管理されるファイルやレコードの更新情報をもとに、当該データ管理制御プログラム2123にてファイルやレコードに対して追加、更新、削除が発生したイベント情報を保管し管理する。ファイル階層管理制御プログラム2126は、Tier1ファイルサーバ2100とTier2ファイルサーバ3100を利用して階層ファイルストレージを実現するために必要な処理を行う。Tier2ファイルサーバ向けファイルアクセスクライアント制御プログラム2127は、かかるファイル階層管理制御プログラム2126がTier2ファイルサーバ3100に対してファイルアクセス操作を行う場合に、必要な機能を提供する。
【００２２】
なお、ファイル更新リスト管理表6300ならびにファイル階層管理表6300については後述する。
【００２３】
図4は、Tier2ファイルサーバ3100のハードウェア構成を例示する説明図である。Tier2ファイルサーバ3100は、プログラムを実行するプロセッサ3110と、プログラムならびにデータを一時的に格納するメモリ3120と、外部記憶装置3160にアクセスするための外部記憶装置I/F3130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F3140と、それらを接続するバス3150から構成されている。メモリ3120には、外部記憶装置I/F3130を制御するプログラムである外部記憶装置I/F制御プログラム3121と、ネットワークI/F3140を制御するプログラムであるネットワークI/F制御プログラム3122と、当該Tier2ファイルサーバ3100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ管理制御プログラム3123と、当該Tier2ファイルサーバ3100においてファイルを保管し複数ユーザ間で共有するためのファイル共有サービスを提供するためのファイル共有制御プログラム3124が格納される。
【００２４】
本実施例において、ファイル共有制御プログラム3124が提供するファイル共有サービスのクライアントは、階層ファイルストレージシステムを構成するTier1ファイルサーバ2100となる。基本的にTier2ファイルサーバは、ユーザから直接ファイルアクセスをさせないように運用する。
【００２５】
図5は、クライアントマシン4100のハードウェア構成を例示する説明図である。クライアントマシン4100は、プログラムを実行するプロセッサ4110と、プログラムならびにデータを一時的に格納するメモリ4120と、外部記憶装置4160にアクセスするための外部記憶装置I/F4130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F4140と、それらを接続するバス4150から構成されている。メモリ4120には、外部記憶装置I/F4130を制御するプログラムである外部記憶装置I/F制御プログラム4121と、ネットワークI/F4140を制御するプログラムであるネットワークI/F制御プログラム4122と、当該クライアントマシン4100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ管理制御プログラム4123と、当該クライアントマシン4100から検索サーバ1100にアクセスするために利用する検索クライアント制御プログラム4124と、当該クライアントマシン4100から階層ファイルストレージにて格納され、共有されているファイルにアクセスするために利用するファイル共有クライアント制御プログラム4125が格納される。
【００２６】
なお、検索クライアント制御プログラム4124は、利用する検索サーバ1100が提供するクライアントプログラム、あるいは当該サーバが提供する仕様に従った機能を提供するプログラムに相当する。例えば、検索サーバ用のWebアプリケーションプログラムを利用する形態でもよいし、汎用のWebブラウザを利用する形態でもよい。
【００２７】
図6は、ユーザがクライアントマシン4100からファイルを階層ファイルストレージに登録し、当該登録ファイルを検索サーバ2100がインデクシングし、当該インデクシングデータを利用して検索サーバ2100がユーザから要求された検索要求に対する検索結果を提供する一連の処理の流れを例示する説明図である。ここでは、クライアントマシン4100からTier1ファイルサーバ2100に対するファイル登録処理(処理(1))、Tier1ファイルサーバ2100からTier2ファイルサーバ3100に対するファイル複製ならびに移動処理(処理(2))、検索サーバ1100から階層ファイルストレージ上ファイルに対するインデックス更新処理(処理(3))、およびクライアントマシン4100から検索サーバ1100に対するファイル検索処理(処理(4))の4つの処理について、それぞれ説明する。 
はじめに、処理(1)について説明する。ユーザは、クライアントマシン4100のファイル共有クライアント制御プログラム4125を利用して、Tier1ファイルサーバ2100に対してファイル格納要求を出す(処理(1-1))。Tier1ファイルサーバ2100上のファイル共有制御プログラム2124は、ファイルシステム2180に対象ファイルを格納すべく、データ管理制御プログラム2123に対して要求を出す。この中で、Change File Notification制御プログラム2125にもファイル登録の通知が出る(処理(1-2))。データ管理制御プログラム2123は、対象ファイルをファイルシステム2180に格納する(処理(1-3))。Change File Notification制御プログラム2125は、当該ファイル登録イベント情報をファイル更新リスト管理表6300に登録する(処理(1-4))。以上が、ファイル登録処理の一連の流れとなる。
【００２８】
次に、処理(2)について説明する。Tier1ファイルサーバ2100上のファイル階層管理制御プログラム2126は、ファイル更新リスト6300に登録されている情報を調べ、Tier2ファイルサーバ3100に複製あるいは移動させる候補ファイルが存在するかどうかを調べる(処理(2-1))。候補ファイルが存在する場合、ファイル階層管理制御プログラム2126は、ファイルシステム2180から対象ファイルを読み出す(処理(2-2))。次に、ファイル階層管理制御プログラム2126は、Tier2ファイルサーバ向けファイルアクセスクライアント制御プログラム2127に対して、読み出したファイルをTier2ファイルサーバ3100に格納するよう要求する(処理(2-3))。Tier2ファイルサーバ向けファイルアクセスクライアント制御プログラム2127は、Tier2ファイルサーバ3100に対して対象ファイルの格納要求を出す(処理(2-4))。Tier2ファイルサーバ3100上のファイル共有制御プログラム3124は、ファイルシステム3180に対象ファイルを格納すべく、データ管理制御プログラム3123に対して要求を出し、ファイルを格納する(処理(2-5))。Tier2ファイルサーバ3100上でのファイル格納に成功した場合、ファイル階層管理制御プログラム2126は、ファイル階層管理表6400に対して、対象ファイルの格納場所情報(Tier2ファイルストレージ3100上におけるファイルパス名など)や階層管理に関する状態情報(未複製か複製済か移動済か等)を登録する(処理(2-6))。ここで、対象ファイルを移動状態にする場合、ファイル階層管理制御プログラム2126は、ファイルシステム2180に格納されている対象ファイルをスタブ化する必要がある。具体的には、対象ファイルのデータを削除し、メタデータのみ残した上で、Tier2ファイルサーバ3100に格納した当該ファイルへのリンク情報を追加で格納する。以上が、Tier間のファイル複製ならびに移動処理の一連の流れとなる。
【００２９】
次に、処理(3)について説明する。検索サーバ1100上の検索制御プログラム1124は、Tier1ファイルサーバに対してファイル更新リスト問合せを行う(処理(3-1))。具体的には、当該検索サーバ1100にて、前回インデックス更新を行ってから階層ファイルストレージにて新たに追加、更新、削除されたファイルはどのファイルかという情報を問い合わせることになる。Tier1ファイルサーバ2100上のChange File Notification制御プログラム2125は、ファイル更新リスト6300を調べて該当ファイルが存在するかどうかを調べ、該当ファイルをリストアップする(処理(3-2))。次に、Change File Notification制御プログラム2125は、リストアップしたファイルについて、ファイル階層管理表6400を調べて、対象ファイルがTier2ファイルサーバ3100上のどのパス名でアクセス可能かを調べ、当該リストにマージした上で要求元に提供する(処理(3-3))。このリストがインデックス更新対象ファイルリストとなる。検索サーバ1100上の検索制御プログラム1124は、受け取ったインデックス更新対象ファイルリストをもとに、Tier2ファイルサーバ3100に対して、対象ファイルの読み出しを要求する(処理(3-4))。Tier2ファイルサーバ3100上のファイル共有制御プログラム3124は、読み出しを要求されたファイルをファイルシステム3180から取得し、要求元に提供する(処理(3-5))。インデックス更新対象ファイルを取得した検索制御プログラム1124は、対象ファイルの中身を分析し、その分析結果を検索インデックス管理表6100や検索インデックス登録ファイル管理表6200に反映させる(処理(3-6))。以上が、検索サーバ1100による検索インデックス更新処理の一連の流れとなる。
【００３０】
最後に、処理(4)について説明する。ユーザは、クライアントマシン4100の検索クライアント制御プログラム4124を利用して、検索サーバ1100に対してファイル検索要求を出す(処理(4-1))。検索サーバ1100上の検索制御プログラム1124は、検索インデックス管理表6100ならびに検索インデックス登録ファイル管理表を利用して、指定された条件に合致するファイルを抽出し、検索結果をまとめ、要求元に提供する(処理(4-2)）。以上が、ファイル検索処理の一連の流れとなる。
【００３１】
図7は、検索サーバ1100上で管理する検索インデックス管理表6100の構成を例示する図である。検索インデックス管理表6100では、検索サーバ1100が作成した検索インデックスの情報を管理する。具体的に、検索インデックス管理表6100は、キーワード6110と、該当位置情報6120などという構成情報からなる。
【００３２】
キーワード6110は、対象ファイルをインデクシング処理にて解析して得られた文字列を格納する。該当場所情報6120は、当該キーワード6110の文字列が存在するファイルの情報を登録する。この該当場所情報6120は、ファイル識別情報6121、6124と、該当位置オフセット6122、6125と、重み付け6123、6126という構成要素からなる。ファイル識別情報6121、6124は、当該キーワードの文字列が出現するファイルを識別するための情報を登録する。具体的には、後述する検索インデックス登録ファイル管理表6200におけるファイル識別情報6210の欄に登録されている情報を登録してもよいし、対象ファイルに実際にアクセスするときのファイルパス名やファイル識別子でもよい。該当位置オフセット6122、6125は、当該ファイルの中で、キーワードの文字列が出現するオフセット情報を登録する。この欄では、一つのファイルで複数箇所に当該キーワードが出現する場合、複数個のオフセット情報を登録する。重み付け6123、6126は、当該ファイルの当該オフセットにおいて、当該キーワードの文字列が出現することによる重要度の値を登録する。この重要度の値は、検索サーバ1100が適宜設定する。この値は、大きければ大きいほど重要だという意味づけを行う。また、この値は、検索結果の絞り込みや整列に利用できるようにする。ここで、該当位置情報6120については、一つのキーワード6110に対して複数個登録可能にする。これにより、キーワード文字列に該当するファイルが複数存在する場合にも対応できるようにする。なお、該当位置情報6120の欄において、該当するエントリの値が無効であることを意味するnull値を登録することもできる。これは、該当位置情報6120の欄において、登録数が他のエントリより少ない場合に、項目が空いてしまうエントリに対して利用することができる。
【００３３】
図8は、検索サーバ1100上で管理する検索インデックス登録ファイル管理表6200の構成を例示する図である。検索インデックス登録ファイル管理表6200では、当該検索サーバ1100が検索インデックス作成対象とする階層ファイルストレージ上のファイル共有から取得したファイルに関する情報を管理する。具体的に、検索インデックス登録ファイル管理表6200は、ファイル識別情報6210と、ファイルパス名6220と、メタデータ6240などという構成要素からなる。
【００３４】
ここで、ファイル識別情報6210は、検索サーバ1100が検索インデックス作成のために取得したファイルを一意に識別するための識別子である。当該検索サーバ1100が付与する通番でもよいし、当該ファイルが格納されている階層ファイルストレージが付与した通番でもよい。なお、通番以外にも、識別に利用可能な文字列を利用するようにしてもよい。ファイルパス名6220は、対象ファイルが格納されているファイルパス名に相当する。これにより、検索サーバ1100は、当該ファイルパス名6220を指定してファイル取得要求を出すことで、当該ファイルを取得することができる。メタデータ6230は、対象ファイルをインデクシングした際に取得したメタデータを格納する。この検索インデックス登録ファイル6200を利用することで、検索制御プログラム1124がユーザからキーワード指定の検索要求に応える場合、当該キーワードに合致するか否かの判断は検索インデックス管理表6100のみを利用すればよく、条件に合致したファイルについてのみ、適宜検索インデックス登録管理表6200から対象ファイルアクセスに必要な情報を取得できるようにすることができる。
【００３５】
図9は、Tier1ファイルサーバ2100上で管理するファイル更新リスト管理表6300の構成を例示する図である。ファイル更新リスト管理表6300では、Tier1ファイルストレージ3100において、ユーザからの要求によってファイルが新規に作成されたり、ファイルが更新されたり、ファイルが削除されたりした場合に、それらのイベント情報を記録し管理する。具体的に、ファイル更新リスト管理表6300は、発生日時6310と、操作種別6320と、オブジェクト種別6330と、パス名6340などという構成要素からなる。
【００３６】
ここで、発生日時6310は、作成や更新や削除に関するイベントが発生した日時に関する情報を格納する。操作種別6320は、当該イベントの種別に関する情報を格納する。具体的には、作成や更新や削除といった種別を登録する。なお、ここで更新については、更新が発生した対象を特定する情報を追加するようにしてもよい。例えば、ファイルのデータ更新とメタデータ更新を分けたい場合には、この操作種別6320の欄に、データ更新、メタデータ更新という種別を登録するようにしてもよい。オブジェクト種別6330は、当該イベントが発生した対象を分類する種別に関する情報を格納する。具体的には、ファイルシステムを利用している場合、ファイルやディレクトリといった種別を登録する。データベースを利用している場合、レコードやカラムやタプルといった種別を登録する。最後に、パス名6340は、当該イベントが発生したオブジェクトにアクセスするために必要な情報を格納する。具体的には、ファイルシステムを利用している場合、対象ファイルのパス名やiノード番号といった情報を格納するようにしてもよい。また、データベースを利用している場合。対象レコードの識別レコード番号といった情報を格納するようにしてもよい。
【００３７】
図10は、Tier1ファイルサーバ2100上で管理するファイル階層管理表6400の構成を例示する図である。ファイル階層管理表6400では、ファイル階層管理制御プログラム2126によって、Tier1ファイルサーバ2100上に格納されているファイルの一部をTier2ファイルサーバ3100に複製あるいは移動させた場合に、Tier1ファイルサーバ2100上における当該ファイル識別子と、Tier2ファイルサーバ3100上における識別子とを関連付けるための情報を一括に管理する。具体的に、ファイル階層管理表6400は、オブジェクト種別6410と、パス名6420と、Tier2格納場所6430と、管理状態6440などという構成要素からなる。
【００３８】
ここで、オブジェクト種別6410は、複製あるいは移動させた対象を分類する種別に関する情報を格納する。具体的には、ファイルシステムを利用している場合、ファイルやディレクトリといった種別を登録する。パス名6420は、複製あるいは移動させた対象物に関するTier1ファイルサーバ2100における識別子を格納する。具体的には、対象ファイルやディレクトリのTier1ファイルサーバ2100におけるパス名を格納する。Tier2格納場所6430は、複製あるいは移動させた対象物に関するTier2ファイルサーバ3100における識別子を格納する。具体的には、対象ファイルやディレクトリのTier2ファイルサーバ3100におけるパス名を格納する。なお、ファイルやディレクトリが複製も移動もしていない時点で、本表に当該ファイルやディレクトリに関するエントリを登録するようにしてもよい。このようなケースにおいて、このTier2格納場所6430の欄には該当する情報がないことを示す値を登録するようにする。最後に、管理状態6440は、対象ファイルやディレクトリが階層ファイルストレージ内において複製されているのか、Tier2ファイルサーバ3100に移動されているのかといった状態情報を格納する。具体的には、レプリケーション済と登録されていた場合は、当該ファイルやディレクトリの情報はTier1ファイルサーバ2100とTier2ファイルサーバ3100の両方に存在する状態とみなす。また、マイグレーション済と登録されていた場合は、当該ファイルやディレクトリの情報はTier2ファイルサーバ3100に存在し、Tier1ファイルサーバ2100上にはスタブファイルのみ存在する状態とみなす。また、未レプリケーションと登録されていた場合は、複製も移動もしておらずTier1ファイルサーバ2100にのみ存在する状態とみなす。
【００３９】
なお、このファイル階層管理表6400によって管理する情報は、ここで説明するようにファイルサーバごとに一括で管理するようにしてもよいし、各ファイルのメタデータとしてそれぞれ個別に管理するようにしてもよい。後者の方法については、別途後述する。
【００４０】
図11は、図10で説明したファイル階層管理表6400を各ファイルのメタデータとして管理する場合における構成を例示する図である。ここでは、階層管理対象となるファイル7000は、Tier1ファイルサーバ2100のファイルシステムにて管理されていることを前提する。このファイル7000は、図に示すように、メタデータ7100とデータ7200の二つに分かれて管理される。
【００４１】
メタデータ7100は、当該ファイル7000に付随する管理情報などが該当し、従来のメタデータ7110、Tier2格納場所7120、管理状態7130といった構成要素からなる。ここで、従来のメタデータ7110は、ファイルシステムが従来から管理していたメタデータが格納される。具体的には、ファイルの所有者や最終更新日時、アクセス制御情報、識別のためのタグ情報などが該当する。Tier2格納場所7120と管理状態7130については、ファイル階層管理表6400の説明で示したTier2格納場所6340と管理状態6340と同じものを指している。一方、データ7200には、当該ファイル7000が管理するデジタルデータの実体が格納され管理される。これは、ファイルシステムにて扱われていた従来のデータと同じである。なお、ここではファイル7000を例に説明したが、ディレクトリの情報も管理することができる。
【００４２】
ファイル階層管理に関する情報を一括形式の管理表ではなく、各ファイルのメタデータとして管理する場合、対象ファイルやディレクトリがTier2ファイルサーバ3100に複製あるいは移動されているかどうかを調べるためには、当該ファイルやディレクトリのメタデータを調べればよい。本方法は、利用ファイルシステムのメタデータを拡張可能であれば、別途新たな管理表を設ける必要がなく、実現容易な方式といえる。しかし、どのファイルやディレクトリがTier2ファイルサーバ3100に複製あるいは移動されているのかを把握する必要がある場合、Tier1ファイルサーバ2100上のファイルシステムを全てクローリングした上で、どのファイルやディレクトリが複製あるいは移動されているのかを逐次調べる必要がある。この場合には、一括形式の管理表があった方がより効率よく処理することが可能である。
【００４３】
図12は、検索サーバ1100上の検索制御プログラム1124からTier1ファイルサーバ2100上のChange File Notification制御プログラム2125に対してファイル更新リストについて問合せをする際に、問合せ内容をChange File Notification制御プログラム2125側に伝えるためのファイル更新リスト問合せパケット8100のデータ構造を例示する説明図である。ファイル更新リスト問合せパケット8100は、認証情報8110と、問合せ内容8120と、問合せ対象期間指定8130と、問合せ条件指定8140と、問合せ取得方法指定8150などがある。
【００４４】
認証情報8110には、当該問合せ要求側を識別し、それが正当な要求者であることを示す情報を格納する。例えば、ユーザ名とパスワードの組を格納するようにしてもよいし、ディジタル証明書のようなものを格納するようにしてもよい。問合せ内容8120には、本問合せで要求するタスクの内容を識別するための情報を格納する。例えば、指定条件に合致する全データの取得要求や、指定条件に合致する件数の取得要求などを格納する。
【００４５】
問合せ対象期間指定8130には、当該問合せにて検索対象範囲となる期間を指定する。ここで指定した期間に作成、更新および削除されたファイルが当該問合せによる検索対象となる。ここには、起点8131と終点8132の二つの欄を設け、どちらか一方あるいは両方を指定可能にする。どちらも指定しない場合は、全期間を対象として検索を行うようにする。
【００４６】
問合せ条件指定8140には、当該問合せにて検索対象範囲となるファイルの特徴を指定する。ここには、例えば、ファイル上限サイズ8141やファイル拡張子8142といった属性を指定可能にする。ファイル上限サイズ8141では、検索対象ファイルの最大サイズを指定できるようにする。また、ファイル拡張子8142では、検索対象ファイルの拡張子を指定できるようにする。この欄では、複数の拡張子を一括で指定する方法や、正規表現などを利用した指定もできるようにする。これらにより、検索サーバ側でインデクシング可能なファイルの条件があらかじめ決まっている場合、その条件を満たさないファイルを事前にフィルタリングすることで無駄な処理を省くことが可能になる。
【００４７】
問合せ取得方法指定8150には、当該問合せにて得られた結果をどのような形式で提供してもらいたいのかを要求元が指定するために利用する。ここには、例えば、取得方法フラグ8151や上限エントリ数8152やオフセット8153といった属性を指定可能にする。取得方法フラグ8151では、結果の取得方法を指定する。例えば、一括で全件取得するよう指定してもよいし、部分的に取得するように指定してもよい。後者の場合は後述する上限エントリ数8152やオフセット8153も指定する必要がある。上限エントリ数8152では、当該問合せによって、要求元側が受け取り可能な件数を指定できるようにする。オフセット8153では、当該問合せによって、要求側が結果を受け取る際、何番目のエントリから結果を取得したいのかを指定できるようにする。
【００４８】
図13は、前述したファイル更新リスト問合せパケット8100にて問合せを行った際に、Tier1ファイルサーバ2100上のChange File Notification制御プログラム2125から検索サーバ1100上の検索制御プログラム1124に対して結果を伝えるためのファイル更新リスト問合せ結果取得パケット8200のデータ構造を例示する説明図である。ファイル更新リスト問合せ結果取得パケット8200は、処理結果8210と、問合せ内容8220と、総エントリ数8230と、オフセット8240と、エントリ数8250と、更新ファイルリスト8260などがある。
【００４９】
処理結果8210には、当該問合せによる処理の結果を示す情報を格納する。例えば、正常に処理が終了したことを示す情報や、途中でエラー終了したことを示す情報や、認証に失敗して終了したことを示す情報などを格納する。問合せ内容8220には、当該ファイル更新リスト問合せ結果取得パケット8200に対応するファイル更新リスト問合せパケット8100における問合せ内容8120と同じ内容を格納する。総エントリ数8230には、当該問合せによって条件に該当する全エントリの件数を示す情報を格納する。オフセット8240には、当該ファイル更新リスト問合せ結果取得パケット8200に対応するファイル更新リスト問合せパケット8100におけるオフセット8153と同じ内容を格納する。もし、オフセット8153が指定されていない場合は、デフォルトの値を利用する。エントリ数8250には、当該ファイル更新リスト問合せ結果取得パケット8200内のファイル更新リスト8260に含まれるファイル更新エントリ8261の数を示す内容を格納する。このエントリ数8250を利用することで、何件分のファイル更新エントリ8261が当該パケットに格納されているのか把握することが可能になる。
【００５０】
ファイル更新リスト8260には、0個以上のファイル更新エントリ8261を格納する。ファイル更新エントリ8261は、発生日時8262と、オブジェクト種別8263と、操作種別8264と、パス名8265と、0個以上の親ディレクトリデータ8266などがある。発生日時8262と、オブジェクト種別8263と、操作種別8264はそれぞれ、前述したファイル更新リスト管理表6300における発生日時6310、オブジェクト種別6330、操作種別6320と同じ内容を格納する。パス名8265には、前述したファイル階層管理表6400におけるパス名6420ならびにTier2格納場所6430に関する内容を格納する。なお、ここで格納する情報は、ファイル更新リスト管理表6300ならびにファイル階層管理表6400にて格納する情報と同じ形式でもよいし、受け取り側で処理が容易な形式などに一部形式を変換するようにしてもよい。
【００５１】
親ディレクトリデータ8266には、インデックス更新対象と判定されたファイルやディレクトリをTier1ファイルサーバ1100上のファイルシステムで管理する際における親ディレクトリに関する情報を格納する。例えば、当該親ディレクトリのパス名8267や、そのディレクトリに対するTier2格納場所8268といったものがある。パス名8267には、当該親ディレクトリに対するTier1ファイルサーバ1100上のパス名などを格納する。Tier2格納場所8268には、当該親ディレクトリがTier2ファイルサーバ2100に複製あるいは移動している場合、Tier2ファイルサーバ2100上のパス名などを格納する。ここで、この親ディレクトリデータ8266は、インデックス更新対象と判定されたファイルやディレクトリが存在するディレクトリから、当該ファイルシステムやファイル共有におけるルートディレクトリまでのディレクトリの段数分だけエントリが存在することになる。
【００５２】
この親ディレクトリデータを利用することで、ディレクトリに設定されているアクセス制御情報の収集が容易になり、また、ユーザによる検索要求時におけるアクセス権に基づいた検索結果の絞り込みが可能になるため、セキュリティの向上にも寄与できる。具体的には、NFSのようなファイル共有プロトコルを利用する場合、検索ユーザのアクセス権に基づいて検索結果の絞り込みを行うために、インデックス更新対象ファイルやディレクトリに対するACL(Access Control List)などのアクセス制御情報を別途取得する必要がある。この時、更新対象の親ディレクトリやさらにその親ディレクトリのアクセス制御情報も必要になる。ここで、この親ディレクトリデータ8266の情報が当該パケットにて取得できれば、親ディレクトリに関する必要な情報を容易に収集可能になる。なお、この親ディレクトリデータ8266が不要なケースでは、これらのエントリは省略してもよい。
【００５３】
ここまでに、本発明によって提供するシステムの構成、処理要求時におけるパケットのデータ構造、管理情報の構成について説明した。以降では、本発明によって実現する処理方式について説明する。ここでは、ファイル更新リスト登録処理（図14）、ファイル階層制御処理（図15）、ファイルアクセス処理（図16）、インデックス更新全体処理(図17)、ファイル更新リスト問合せ処理(図18)、ファイルデータとメタデータ取得処理(図19)、インデックス更新処理(図20)、および検索処理（図21）について説明する。
【００５４】
図14は、Tier1ファイルサーバ2100のデータ管理制御プログラム2123にて管理するファイルシステムに対してファイルアクセスがなされた時において、データ管理制御プログラム2123とChange File Notification制御プログラム2125が連携して行うファイル更新リスト登録処理の流れを示す。Change File Notification制御プログラム2125は、常時データ管理制御プログラム2123におけるファイルアクセス操作について監視を行い、ファイル更新リスト登録が必要なイベントが発生した際に、以下に説明するような所定の動作を行う。
【００５５】
はじめに、データ管理制御プログラム2123は、ファイルシステムに対するファイルアクセス要求を受けた後、当該ファイルシステムに対して所定の操作を実行する(ステップS101)。例えば、ファイル作成要求だった場合は、指定された名前のファイルを作成する。ファイル更新要求だった場合は、指定されたファイルに対して指定された更新内容を反映する。ファイル削除要求だった場合は、指定されたファイルを削除する。ここでは、ファイルを対象にした操作だけでなく、ディレクトリを対象にした操作もファイル更新リスト登録処理を行う範囲に含むものとする。
【００５６】
次に、データ管理制御プログラム2123は、対象ファイルに対する操作種別は、作成、更新あるいは削除かどうかを調べる(ステップS102)。すなわち、処理ステップS102では、当該ファイル操作がファイル更新リスト登録を行うイベントか否かを判定する。ファイル更新リスト登録を行うイベントであると判断した場合(処理ステップS102でYesの場合)、データ管理制御プログラム2123はChange File Notification制御プログラム2125に通知し、当該ファイル操作をファイル更新リスト管理表6300に登録し(ステップS103)、処理を終了する。ファイル更新リスト登録を行うイベントでないと判断した場合(処理ステップS102でNoの場合)は、そのまま処理を終了する。 
図15は、Tier1ファイルサーバ2100のファイル階層管理制御プログラム2126が行うファイル階層制御処理の流れを示す。本処理では、Tier1ファイルサーバ2100上のファイルシステムに格納されたファイルの中から、所定の条件に合致するファイルを探して、当該ファイルをTier2ファイルサーバ3100に複製あるいは移動させる処理を行う。ここで、ファイルを移動させる場合は、移動後も対象ファイルに対して透過的にアクセス可能にするため、Tier1ファイルサーバ2100上に当該ファイルのスタブファイルを残すようにする。
【００５７】
はじめに、ファイル階層管理制御プログラム2126は、ファイル更新リスト管理表6300の内容を取得し、Tier2ファイルサーバ3100に複製を作る必要があるファイルのリストを作成する(ステップS201)。ここで、複製を作る必要があるか否かの判断は、判断基準を事前に設けておくようにする。例えば、対象ファイルの最終更新日時が現在の時刻から一週間以上経過している場合に複製を作成するといった判断基準を設定するようにしてよい。次に、ファイル階層管理制御プログラム2126は、リストアップしたファイル全てについて以降で説明する一連の処理を行ったかどうかを判定する(ステップS202)。全て行った場合(処理ステップS202でYesの場合)、処理ステップS205に遷移する。一方、全て行っていない場合(処理ステップS202でNoの場合)、ファイル階層管理制御プログラム2126は、リストアップしたファイル群の中から複製未作成ファイルを一つ選択し、当該ファイルの複製をTier2ファイルサーバ3100に作成する（ステップS203）。ここで、ファイル階層管理制御プログラム2126は、Tier2ファイルサーバ向けファイルアクセスクライアント制御プログラム2127を利用して、Tier2ファイルサーバ3100でファイルを作成する。その後、ファイル階層管理制御プログラム2126は、当該ファイルの情報をファイル階層管理表6400に登録する(ステップS204)。ここでは、複製を作成したTier2ファイルサーバ3100上における当該ファイルのパス名などを登録する。その後は、処理ステップS202に戻って処理を繰り返す。
【００５８】
対象ファイル全てについて上記の処理をした後、ファイル階層管理制御プログラム2126は、複製未作成ファイルの情報をファイル階層管理表6400に登録する(ステップS205)。ここでは、複製を作るファイルのリストに登録されたにも関わらず、複製作成処理がエラーになってしまったファイルなどについて、複製はできていないことを示す情報を登録する。具体的には、ファイル階層管理表6400の管理状態6440の欄に未レプリケーションと登録するようにすればよい。次に、ファイル階層管理制御プログラム2126は、ファイル階層管理表6400より、Tier2ファイルサーバ3100に複製済ファイルを移動済に変更するファイルのリストを作成する(ステップS206)。ここで、複製から移動に変更するか否かの判断は、判断基準を事前に設けておくようにする。例えば、ファイル更新リスト管理表6300を参照し対象ファイルの最終更新日時が現在の時刻から一ヶ月以上経過している場合に複製から移動に変更するといった判断基準を設定するようにしてよい。次に、ファイル階層管理制御プログラム2126は、リストアップしたファイル全てについて以降で説明する一連の処理を行ったかどうかを判定する(ステップS207)。全て行った場合(処理ステップS207でYesの場合)、本処理を終了する。一方、全て行っていない場合(処理ステップS207でNoの場合)、ファイル階層管理制御プログラム2126は、リストアップしたファイル群の中からファイルを一つ選択し、Tier1ファイルサーバ2100にて当該ファイルをスタブ化する(ステップS208)。ここでは、対象ファイルのデータ部分の中身を削除すると共に、Tier2ファイルサーバ3100に複製を格納しているパス名に相当する情報をたどれるようにすればよい。その後、ファイル階層管理制御プログラム2126は、当該ファイルの情報をファイル階層管理表6400に登録する(ステップS209)。ここで、対象ファイルのエントリが登録済みである場合は、当該エントリの管理状態6440の欄にマイグレーション済という情報を登録する。その後は、処理ステップS207に戻って処理を繰り返す。
【００５９】
図16は、Tier1ファイルサーバ2100がユーザからファイルアクセス要求を受けた際のファイルアクセス処理の流れを示す。本処理では、Tier1ファイルサーバ2100とTier2ファイルサーバ3100とが階層ファイルストレージを構成し、Tier1ファイルサーバ2100上の一部のファイルがTier2ファイルサーバ3100に複製あるいは移動しているケースを想定する。
【００６０】
はじめに、ファイルアクセス要求を受けたデータ管理制御プログラム2123は、対象ファイルアクセスの操作種別がDELETEか否かを調べる(ステップS301)。操作種別がDELETEだった場合(処理ステップS301でYesの場合)、対象ファイルをファイルシステム上から削除すると共に、ファイル階層管理表6400に対象ファイルのエントリが登録されていたら、当該エントリを削除し(ステップS302)、本処理を終了する。
【００６１】
操作種別がDELETE以外だった場合(処理ステップS301でNoの場合)、アクセス対象ファイルはTier1ファイルサーバ2100に格納されているか否かを調べる(ステップS202)。ここでは、Tier1ファイルサーバ2100上のファイルシステムにおいて対象ファイルがスタブ化されていない形で格納されているかどうかを調べればよい。Tier1ファイルサーバ2100に格納されている場合(処理ステップS303でYesの場合)、Tier1ファイルサーバ2100上の対象ファイルに対して所望のアクセスを実行し(ステップS304)、本処理を終了する。
【００６２】
Tier1ファイルサーバ2100に格納されてない場合(処理ステップS303でNoの場合)、ファイル階層管理表6400より、アクセス対象ファイルが登録されているエントリを取得する(ステップS305)。その後、取得したエントリの情報により、アクセス対象ファイルはTier2ファイルサーバ3100に複製あるいは移動されているか否かを判定する(ステップS306)。ここでは、取得したエントリの中の管理状態6440の内容を調べることで判定することができる。Tier2ファイルサーバ3100に複製あるいは移動されていない場合(処理ステップS305でNoの場合)、本処理をエラー終了する。
【００６３】
Tier2ファイルサーバ3100に複製あるいは移動されている場合(処理ステップS305でYesの場合)、その対象ファイルアクセスの操作種別がREADか否かを調べる(ステップS307)。操作種別がREADだった場合(処理ステップS308でYesの場合)、Tier2ファイルサーバ3100から対象ファイルをTier1ファイルサーバ2100上のメモリなどの一時格納領域に読み出し、対象ファイルに対してアクセスを実行し(ステップS308)、本処理を終了する。ここでTier1ファイルサーバ2100上の一時格納領域と、その中に格納されている読み出し対象データは、任意の時期に解放するようにしてよい。例えば、当該ファイルに対してCLOSE操作がなされた場合や、一時格納領域に読み込まれてから一定時間が経過した場合などで、解放するようにしてよい。
【００６４】
操作種別がREADではない場合(処理ステップS307でNoの場合)、Tier2ファイルサーバ3100から対象ファイルをTier1ファイルサーバ2100上に読み出し、Tier1ファイルサーバ2100上の当該スタブファイルを通常ファイルに置き換える(ステップS309)。その後、当該ファイルに対する更新情報をファイル階層管理表6400に反映する(ステップS310)。例えば、Tier2格納場所6430の欄に格納されている情報を削除すると共に、管理状態6340の欄に格納されている情報を未レプリケーションに相当する情報に変更するようにしてよい。その後、データ管理制御プログラム2123は、対象ファイルに対して所望のアクセスを実行し(ステップ311)、本処理を終了する。
【００６５】
図17は、検索サーバ1100が階層ファイルストレージ上に格納されている検索対象ファイル群に対するインデックス更新全体処理の流れを示す。本処理では、Tier1ファイルサーバ2100からインデックス更新対象ファイルのリストを取得し、Tier2ファイルサーバ3100からインデックス更新対象ファイルに関するデータならびにメタデータを取得した上で、インデックス更新を行う。
【００６６】
はじめに、検索サーバ1100のファイル更新リスト問合せ制御サブプログラム1171は、Tier1ファイルサーバ2100に対してファイル更新リスト問合せ処理を行う(ステップS401)。ここでは、当該検索サーバ1100にて前回インデックス更新を行った日時を問合せ対象期間の起点、現時点を問合せ対象期間の終点と指定し、問合せ処理を行う。本処理の内容は後述する。次に、取得したファイル更新リストに登録されている全ファイルに対して、インデックス更新を行ったか否かを調べる(ステップS402)。対象全ファイルのインデックス更新を行った場合(処理ステップS402でYesの場合)、本処理は終了する。
【００６７】
対象全ファイルのインデックス更新を行っていない場合(処理ステップS402でNoの場合)、当該リストの中からインデックス未更新なエントリを一つ選択する(ステップS403)。次に、選択したエントリに登録されている操作種別がDELETEか否かを調べる(ステップS403)。操作種別がDELETEである場合(処理ステップS403でYesの場合)、以降で説明する処理ステップS406に遷移する。操作種別がDELETEではない場合(処理ステップS403でNoの場合)、ファイルアクセス制御サブプログラム1172は、ファイルデータとメタデータ取得処理を行う(ステップS405)。次に、インデクシング制御サブプログラム1173は、取得したファイルのデータとメタデータをもとに、インデックス更新処理を行う(ステップS406)。その後は、処理ステップS402に戻り、処理を繰り返す。
【００６８】
図18は、図17における処理ステップS401のファイル更新リスト問合せ処理の流れを示す。はじめに、ファイル更新リスト問合せ制御サブプログラム1171は、当該検索サーバ1100が所望のインデックス更新対象ファイルのリストを全て取得できたか否かを判断する(ステップS501)。ここでは、インデックス更新対象リストを分割して取得するケースもあるため、分割して取得する全ての要素を取得し終わったか否かを判断する。全て取得できた場合(処理ステップS502でYesの場合)、本処理は終了する。
【００６９】
全て処理できていない場合(処理ステップS502でNoの場合)、ファイル更新リスト問合せ制御サブプログラム1171は、ファイル更新リストの取得条件と共に、ファイル更新リスト問合せ要求をTier1ファイルサーバ2100に送信する(ステップS502)。ここでは、当該問合せ要求を行う際に、ファイル更新リスト問合せパケット8100で示した形式で情報を指定して送信する。問合せを受信したTier1ファイルサーバ2100上のChange File Notification制御プログラム2125は、ファイル更新リスト6300を参照し、指定された取得条件に合致するエントリを抽出する(ステップS503)。その後、Change File Notification制御プログラム2125は、抽出したエントリをファイル更新リスト問合せ結果取得形式に変換した上で、要求元である検索サーバ1100に提供する(ステップS504)。ここでは、当該結果送信を行う際に、ファイル更新リスト問合せ結果取得パケット8200で示した形式で情報を指定して返信する。その後は、処理ステップS501に戻り、処理を繰り返す。
【００７０】
図19は、図17における処理ステップS405のファイルデータとメタデータ取得処理の流れを示す。はじめに、ファイルアクセス制御サブプログラム1172は、対象ファイルのデータならびにメタデータの取得要求をTier2ファイルサーバ3100に送信する(ステップS601)。このデータならびにメタデータの取得要求に応えるため、Tier2ファイルサーバ3100は、Tier1ファイルサーバ2100からのファイルアクセス要求だけでなく、当該検索サーバ1100からのファイルアクセス要求にも応答できるようにする必要がある。要求を受信したTier2ファイルサーバ3100上のファイル共有制御プログラム3124は、ファイルシステムを参照して対象ファイルを特定した上で、対象ファイルのデータとメタデータを読み出し、要求元に提供する(ステップS602)。次に、ファイルアクセス制御サブプログラム1172は、対象ファイルの親ディレクトリや先祖ディレクトリのメタデータが必要か否かを判断する(ステップS603)。例えば、対象ファイルがファイル共有プロトコルとしてNFSを利用している場合、ファイルのアクセス制御を行うためには、ディレクトリのアクセス権情報も必要になるため、親ディレクトリあるいは先祖ディレクトリのメタデータが必要となる。ディレクトリのメタデータが不要な場合(処理ステップS603でNoの場合)、本処理を終了する。
【００７１】
ディレクトリのメタデータが必要な場合(処理ステップS603でYesの場合)、ファイルアクセス制御サブプログラム1172は、対象ディレクトリのメタデータの取得要求をTier2ファイルサーバ3100に送信する(ステップS604)。要求を受信したTier2ファイルサーバ3100上のファイル共有制御プログラム3124は、ファイルシステムを参照して対象ディレクトリを特定した上で、対象ディレクトリのメタデータを読み出し、要求元に提供する(ステップS605)。なお、複数のディレクトリのメタデータを取得する必要がある場合は、本処理における処理ステップS604と処理ステップS605を必要回数繰り返して実行するようにすればよい。
【００７２】
図20は、図17における処理ステップS406のインデックス更新処理の流れを示す。はじめに、インデクシング制御サブプログラム1173は、ファイル更新リストにおけるインデックス更新対象ファイルに対する操作種別を調べ、その操作種別がDELETEか否かを調べる(ステップS701）。処理種別がDELETEである場合(処理ステップS701でYesの場合)、インデクシング制御サブプログラム1173は、検索インデックス管理表6100に登録されているエントリの中から、対象ファイルに関する情報を抽出し、管理表から削除する(ステップS702)。その後、インデクシング制御サブプログラム1173は、検索インデックス登録ファイル管理表6200に登録されているエントリの中から、対象ファイルに関する情報を抽出し、管理表から削除し(ステップS703)、本処理を終了する。
【００７３】
処理種別がDELETEでない場合(処理ステップS701でNoの場合)、インデクシング制御サブプログラム1173は、インデックス更新対象ファイルのデータとメタデータの内容を解析し、検索インデックス管理表6100への登録データを生成する(ステップS704)。ここで、必要があれば、対象ファイルを格納するディレクトリのメタデータも同様に解析し、検索インデックス管理表6100への登録データを生成する。次に、インデクシング制御サブプログラム1173は、処理ステップS701と同様に、ファイル更新リストにおけるインデックス更新対象ファイルに対する操作種別を調べ、その操作種別がCREATEか否かを調べる(ステップS705)。処理種別がCREATEである場合(処理ステップS705でYesの場合)、以降で説明する処理ステップS708に遷移する。
【００７４】
処理種別がCREATEでない場合(処理ステップS705でNoの場合)、インデクシング制御サブプログラム1173は、検索インデックス管理表6100に登録されているエントリの中から、対象ファイルに関する情報を抽出し、管理表から削除する(ステップS706)。その後、インデクシング制御サブプログラム1173は、検索インデックス登録ファイル管理表6200に登録されているエントリの中から、対象ファイルに関する情報を抽出し、管理表から削除する(ステップS707)。処理ステップS706とS707においては、対象ファイルに関する情報を更新する必要があるため、更新前の情報をこの時点で削除するようにしている。なお、直接上書き更新できるような管理をしている場合は、削除処理をすることなく、直接上書き更新するようにしてもよい。
【００７５】
次に、インデクシング制御サブプログラム1173は、検索インデックス管理表6100に処理ステップS704で生成したデータを登録する(ステップS708)。その後、インデクシング制御サブプログラム1173は、検索インデックス登録ファイル管理表6200にインデックス更新対象ファイルのメタデータ更新内容などを登録し(ステップS709)、本処理を終了する。処理ステップS708とS709によって、インデックス更新後の情報を各管理表に反映できたことになる。
【００７６】
図21は、検索サーバ1100における検索インデックスを利用した検索処理の流れを示す。以下では、検索サーバ1100上の検索応答制御サブプログラム1174によって行う検索処理を例に説明する。具体的には、クライアントマシン4100上の検索クライアント制御プログラム4124から検索サーバ1100に対して検索要求処理がきた場合における検索処理を説明する。
【００７７】
はじめに、検索応答制御サブプログラム1174は、検索要求元から送られてきた検索要求内容を解析して、指定された検索条件や検索要求ユーザのアカウント情報などを取得する(ステップS801)。次に、検索応答制御サブプログラム1174は、自検索サーバの検索インデックス管理表6110を利用して、指定された検索条件に合致するファイル群を抽出する(ステップS802)。あわせて、抽出した各ファイル群のファイルパス名を検索インデックス登録ファイル管理表6210から取得する。ファイル抽出後、検索応答制御サブプログラム1174は、抽出ファイル全てに対して検索要求ユーザに参照権限があるかどうかを調べ、参照権限があるものだけに絞り込む(ステップS803)。ここで行う絞り込みは、抽出したファイルに設定されているアクセス制御情報と、当該検索要求者の情報をもとに実施するようにすればよい。すなわち、検索要求者が参照権限のないファイルも抽出ファイルの中に含まれていた場合、当該ファイルは検索結果から除外する。絞り込んだ後、検索応答制御サブプログラム1174は、絞り込んだ検索結果に含まれるファイルパス名を変換するか否かを判断する(ステップS804)。ここでは、検索サーバ1100がTier2ファイルサーバ3100からインデックス更新対象ファイルを取得しているため、特に何もしなければ、Tier2ファイルサーバ3100上における対象ファイルのファイルパス名を検索結果に含めることになる。この場合、ユーザがTier2ファイルサーバ3100へのアクセス方法を有していない場合、当該ファイルパス名では対象ファイルにアクセスできない。このため、ユーザがアクセス方法を有するTier1ファイルサーバ2100上における対象ファイルと関連付けられたファイルのファイルパス名に変換するか否かを判断する。ファイルパス名については、前述したファイル更新リスト問合せ結果取得パケット8200のパス名8265に格納されている二つの情報、すなわちTier1ファイルサーバ2100におけるパス名6420とTier2ファイルサーバ3100におけるTier2格納場所6430に関する情報を利用して、変換することができる。本実施例では、デフォルトで変換するようにしてよい。ただ、環境条件などによっては、変換しないようにしてもよい。
【００７８】
ファイルパス名の変換を行わない場合(処理ステップS804でNoの場合)、以降で説明する処理ステップS806に遷移する。ファイルパス名の変換を行う場合(処理ステップS804でYesの場合)、検索結果に含まれる対象ファイルパス名の変換を行う(ステップS805)。以上の処理を終えたら、絞り込んだ検索結果を要求元に応答し、処理を終了する(ステップS806)。
【００７９】
本発明の実施例１により、検索サーバは、フロントエンド側ファイルサーバ（Tier2ファイルサーバ3100）とのやり取りを通して、インデックス更新対象ファイルに関するフロントエンド側ファイルサーバ上のパス名だけでなく、バックエンド側ファイルサーバ（Tier2ファイルサーバ3100）上のパス名も取得できるようになる。バックエンド側ファイルサーバ上のパス名を取得することで、インデックス更新対象ファイルのデータあるいはメタデータを検索サーバが取得する必要がある場合に、フロントエンド側ファイルサーバからではなく、バックエンド側ファイルサーバからも取得可能になる。  
また、検索サーバが提供する検索結果の中に、フロントエンド側ファイルサーバのパス名も出力できるようになる。これにより、ユーザは、当該検索結果を利用して、当該ファイルにアクセスできるようにもなるため、ユーザによるファイルアクセシビリティの向上にも寄与できる。
【００８０】
以上、本発明の実施例1について説明したが、本発明はこの実施例1に限定されることなくその趣旨を逸脱しない範囲内で種々の構成をとることができることは言うまでもない。
【実施例２】
【００８１】
上述した実施例1は、インデックス更新対象ファイルに関するデータとメタデータ、ならびに対象ファイルを格納するディレクトリに関するメタデータを取得するために必要な情報を、ファイル更新リスト問合せ結果取得パケット8200に格納している。一方、Tier1ファイルサーバ2100において、ファイル共有プロトコルとしてCIFS(Common Internet File System)を利用している場合、当該ファイル共有における格納ファイルへのアクセス制御情報として、当該ファイル共有レベルで設定可能なアクセス制御情報も存在する。
【００８２】
このため、検索サーバ1100がTier1ファイルサーバ2100からファイル更新リストを取得する際に、当該ファイル共有レベルで設定しているアクセス制御情報も取得できるような仕組みが必要となる。そこで、以降では、検索サーバ1100がTier1ファイルサーバ2100に対してインデックス更新対象となるファイルリストを取得する際に、当該ファイルが格納されているファイル共有に設定されているアクセス制御情報も当該ファイルリストと一緒に取得する制御方法を実施例2として説明する。
【００８３】
上述のように、インデックス更新対象となるファイルのリストと共に、当該ファイル共有に設定されているアクセス制御情報を取得して、インデックス更新処理で利用できるようにするためには、ファイル更新リスト問合せ結果取得パケット8200の構造と、インデックス更新処理の一部を変更する必要がある。これらの変更内容は、図22、図23で説明する。
【００８４】
図22は、図13で説明したファイル更新リスト問合せ結果取得パケット8200の変更内容を示す。本パケット構造は、図13で説明したパケット構造と比べて、対象ファイルを格納するファイル共有レベルで設定しているアクセス制御情報も格納する点などが異なる。具体的には、以下で説明する。
【００８５】
図22において、図20からの変更点は、ファイル更新エントリ8261に共有プロトコル名8269という属性を追加している点と、当該パケット構造の中に、Share情報8270という属性を追加している点である。共有プロトコル名8269には、インデックス更新対象ファイルが格納されているファイル共有プロトコルの識別情報を格納する。例えば、NFSやCIFSといった識別情報を格納するようにしてよい。Share情報8270には、インデックス更新対象ファイルが格納されているファイル共有に関する情報を格納する。具体的には、Tier1におけるShare名8271と、Shareのアクセス制御情報8272といった二つの属性を格納できるようにする。
【００８６】
Tier1におけるShare名8271には、インデックス更新対象ファイルが格納されているファイル共有を識別するための情報を格納する。例えば、当該ファイル共有に対してネットワーク経由でアクセスする時のホスト名やパス名に相当するものを格納するようにしてよい。Shareのアクセス制御情報8272には、当該ファイル共有に設定されているアクセス制御情報を格納する。例えば、当該ファイル共有に設定されているACL情報などを格納するようにしてよい。
【００８７】
図23は、図20で説明したインデックス更新処理の変更内容を示す。本処理フローは、図20で説明したインデックス更新処理に比べて、インデックス更新対象ファイルが格納されているファイル共有で利用されているファイル共有プロトコルの種別を調べ、当該ファイル共有レベルで設定されている情報も利用したインデックス更新を行えるようにする点が異なる。具体的には、以下で説明する。
【００８８】
図23の処理フローにおいて、図20からの変更点は、処理ステップS701にてNoとなる場合の処理が、従来の処理ステップS704に先立ち、処理ステップS710ならびに処理ステップS711を新たに追加している点である。それ以外は、図20と同じである。以下、変更部分に関する説明のみを行う。
【００８９】
処理ステップS701でNoとなる場合、インデクシング制御サブプログラム1173は、ファイル更新リストにおけるインデックス更新対象ファイルに対する共有プロトコル名8269を調べ、その共有プロトコル名がCIFSか否かを調べる(ステップS710)。共有プロトコル名がCIFSでない場合(処理ステップS710がNoの場合)、処理ステップS704に遷移する。共有プロトコル名がCIFSである場合(処理ステップS710がYesの場合)、インデクシング制御サブプログラム1173は、当該Shareのアクセス制御情報8272の内容を解析し、検索インデックス登録ファイル管理表6200への登録データを生成する(ステップS711)。ここで生成した登録データは、当該ファイルに関する情報を検索インデックス登録ファイル管理表6200に登録する際に、当該ファイルのメタデータ6320の一部として登録し、検索時に利用できるようにする。その後、処理ステップS704に遷移する。
【００９０】
以上の処理を行うことで、検索サーバ1100は、Tier1ファイルサーバ2100にてファイル共有プロトコルとしてCIFSを利用している場合においても、当該ファイル共有に設定されているアクセス制御情報を取得し、検索インデックスに反映させ、検索時におけるアクセス権限に基づいた検索結果の絞り込みに適用することが可能になる。
【実施例３】
【００９１】
上述した実施例1は、インデックス更新対象ファイルに関するデータとメタデータ、ならびに対象ファイルを格納するディレクトリに関するメタデータを取得するために必要な情報を、ファイル更新リスト問合せ結果取得パケット8200に格納している。一方、Tier1ファイルサーバ2100ならびにTier2ファイルサーバ3100に実際にアクセスするためには、これらのファイルサーバのホスト名やIPアドレスなどを特定する必要がある。ホスト名やIPアドレスは、システム運用中は固定で変更がないケースもあれば、運用中に動的に変更されるケースもありえる。
【００９２】
このため、検索サーバ1100がTier1ファイルサーバ2100からファイル更新リストを取得する際に、Tier1ファイルサーバ2100ならびにTier2ファイルサーバ3100にアクセスするために必要な情報も取得できるような仕組みが必要となる。そこで、以降では、検索サーバ1100がTier1ファイルサーバ2100に対してインデックス更新対象となるファイルリストを取得する際に、Tier1ファイルサーバ2100とTier2ファイルサーバ3100へアクセスするために必要な情報も当該ファイルリストと一緒に取得する制御方法を実施例3として説明する。
【００９３】
上述のように、インデックス更新対象となるファイルのリストと共に、ファイルサーバへアクセスするために必要な情報を取得して、インデックス更新処理などで利用できるようにするためには、ファイル更新リスト問合せ結果取得パケット8200の構造と、ファイルデータとメタデータ取得処理と、インデックス更新処理の一部を変更する必要がある。これらの変更内容は、図24、図25、図26で説明する。
【００９４】
図24は、図13で説明したファイル更新リスト問合せ結果取得パケット8200の変更内容を示す。本パケット構造は、図13で説明したパケット構造と比べて、インデックス更新対象ファイルが格納されているファイルサーバにアクセスするための情報も格納する点などが異なる。具体的には、以下で説明する。
【００９５】
図24において、図13からの変更点は、ファイル更新エントリ8261にTier1 IPアドレス8281という属性と、Tier2 IPアドレス8282という属性を追加している点である。
【００９６】
Tier1 IPアドレス8281には、Tier1ファイルサーバ2100にアクセスするために必要な識別情報を格納する。具体的には、ネットワーク経由でアクセスするために必要となるIPアドレスを格納する。なお、IPアドレスだけでなく、当該ファイルサーバを一意に特定してアクセス可能な識別情報であれば、他の情報を利用するようにしてもよい。Tier2 IPアドレス8282には、Tier2ファイルサーバ3100にアクセスするために必要な識別情報を格納する。具体的な格納情報は、Tier1 IPアドレス8281と同じである。
【００９７】
図25は、図19で説明したファイルデータとメタデータ取得処理の変更内容を示す。本処理フローは、図19で説明したファイルデータとメタデータ取得処理に比べて、Tier2ファイルサーバ3100のIPアドレス情報を取得した上で、インデックス更新対象ファイルのデータとメタデータの取得処理を行えるようにする点が異なる。具体的には、以下で説明する。
【００９８】
図25の処理フローにおいて、図19からの変更点は、処理ステップS601に先立って、処理ステップS606を新たに追加している点である。それ以外は、図19と同じである。以下、変更部分に関する説明のみを行う。
【００９９】
本処理の冒頭にて、ファイルアクセス制御サブプログラム1172は、ファイル更新リスト問合せ結果取得パケット8200より、Tier2ファイルサーバ3100のIPアドレスを取得する(ステップS606)。ここでは、ファイル更新リスト問合せ結果取得パケット8200内のTier2 IPアドレス8282の欄を参照して、必要な情報を取得する。ちなみに、ここで取得する値はIPアドレスという形式には限らず、当該Tier2ファイルサーバを一意に識別してアクセス可能な情報であれば、どのような形式でもよい。その後、処理ステップS601に遷移し、図19と同じ処理を行う。なお、処理ステップS606で取得したTier2 IPアドレスは、本処理フロー内におけるTier2ファイルサーバ3100へのアクセス時に利用できるようにする。
【０１００】
図26は、図20で説明したインデックス更新処理の変更内容を示す。本処理フローは、図20で説明したインデックス更新処理に比べて、インデックス更新対象ファイルが格納されているTier1ファイルサーバ2100にアクセスするためのIPアドレスに関する情報も利用したインデックス更新を行えるようにする点が異なる。具体的には、以下で説明する。
【０１０１】
図26の処理フローにおいて、図20からの変更点は、処理ステップS701にてNoとなる場合の処理が、従来の処理ステップS704に先立ち、処理ステップS712ならびに処理ステップS713を新たに追加している点である。それ以外は、図20と同じである。以下、変更部分に関する説明のみを行う。
【０１０２】
処理ステップS701でNoとなる場合、インデクシング制御サブプログラム1173は、ファイル更新リストにおけるインデックス更新対象ファイルに対するTier1 IPアドレス8281が指定されているか否かを調べる(ステップS712)。指定されていない場合(処理ステップS712がNoの場合)、処理ステップS704に遷移する。指定されている場合(処理ステップS712がYesの場合)、インデクシング制御サブプログラム1173は、当該IPアドレスの内容を解析し、検索インデックス登録ファイル管理表6200への登録データを生成する(ステップS713)。ここで生成した登録データは、当該ファイルに関する情報を検索インデックス登録ファイル管理表6200に登録する際に、当該ファイルのメタデータ6320の一部などとして登録し、検索時ならびにファイルアクセス時に利用できるようにする。その後、処理ステップS704に遷移する。
【０１０３】
以上の処理を行うことで、検索サーバ1100は、Tier1ファイルサーバ2100ならびにTier2ファイルサーバ3100のIPアドレスといった識別情報が動的に変わるケースにおいても、継続的に当該ファイルサーバにアクセスすることが可能になる。
【実施例４】
【０１０４】
上述した実施例1は、インデックス更新対象ファイルに関するデータとメタデータ、ならびに対象ファイルを格納するディレクトリに関するメタデータを取得するために必要な情報を、ファイル更新リスト問合せ結果取得パケット8200に格納している。一方、インデックス更新対象ファイルは、階層ファイルストレージの中でTier1ファイルサーバ2100にのみ格納されているケース、Tier1ファイルサーバ2100ならびにTier2ファイルサーバ3100の両方に格納されているケース、Tier1ファイルサーバ2100はスタブ化されてTier2ファイルサーバ3100にのみ格納されているケースなどを想定できる。
【０１０５】
このため、検索サーバ1100がインデックス更新を行う際、インデックス更新対象ファイルがTier2ファイルサーバ3100に存在するという実施例1で想定するケース以外でも対応可能な仕組みが必要となる。そこで、以降では、検索サーバ1100がTier1ファイルサーバ2100に対してインデックス更新対象となるファイルリストを取得する際、インデックス更新対象ファイルが当該階層ファイルストレージにおいてどのような保管状態になっているのかを示す情報も当該ファイルリストと一緒に取得する制御方法を実施例4として説明する。
【０１０６】
上述のように、インデックス更新対象となるファイルのリストと共に、当該インデックス更新対象ファイルの保管状態を示す情報を取得して、インデックス更新処理などで利用できるようにするためには、ファイル更新リスト問合せ結果取得パケット8200の構造と、ファイルデータとメタデータ取得処理の一部を変更する必要がある。これらの変更内容は、図27、図28で説明する。
【０１０７】
図27は、図13で説明したファイル更新リスト問合せ結果取得パケット8200の変更内容を示す。本パケット構造は、図13で説明したパケット構造と比べて、インデックス更新対象ファイルの階層管理状態情報も格納する点などが異なる。具体的には、以下で説明する。
【０１０８】
図27において、図13からの変更点は、ファイル更新エントリ8261に階層管理状態情報8263という属性を追加している点である。階層管理状態情報8263には、当該インデックス更新対象ファイルがどのファイルストレージに格納されているのかを示す情報を格納する。例えば、Tier1ファイルサーバ2100にのみ格納されているケースであれば未レプリケーションと格納し、Tier1ファイルサーバ2100ならびにTier2ファイルサーバ3100の両方に格納されているケースであればレプリケーション済と格納し、Tier1ファイルサーバ2100はスタブ化されてTier2ファイルサーバ3100にのみ格納されているケースであればマイグレーション済と格納するようにしてよい。
【０１０９】
図28は、図19で説明したファイルデータとメタデータ取得処理の変更内容を示す。本処理フローは、図19で説明したファイルデータとメタデータ取得処理に比べて、インデックス更新対象ファイルがどのファイルサーバに格納されているのかを調べ、Tier1ファイルサーバ2100にしか存在しないケースでもインデックス更新に必要な情報を取得する処理や、Tier1ファイルサーバ2100にしか存在しないケースにおいて当該ファイルのインデックス更新をスキップする処理などを行えるようにする点が異なる。具体的には、以下で説明する。
【０１１０】
図28の処理フローにおいて、図19からの変更点は、処理ステップS601に先立って、処理ステップS607、S608、S609、S610、S611を新たに追加している点である。それ以外は、図19と同じである。以下、変更部分に関する説明のみを行う。
【０１１１】
本処理の冒頭にて、ファイルアクセス制御サブプログラム1172は、ファイル更新リスト問合せ結果取得パケット8200より、インデックス更新対象ファイルの階層管理状態情報を取得する(ステップS607)。ここでは、ファイル更新リスト問合せ結果取得パケット8200内の階層管理状態情報8283の欄を参照して、必要な情報を取得する。ちなみに、ここで取得する情報は、インデックス更新対象ファイルが当該階層ファイルストレージにてどのように保管されているかを示すものとなる。例えば、未レプリケーション、レプリケーション済、マイグレーション済といったものがある。次に、ファイルアクセス制御サブプログラム1172は、インデックス更新対象ファイルはTier2ファイルサーバ3100に存在するか否かを判断する(ステップS608)。ここでは、当該階層管理状態情報8283の内容をもとに判断する。レプリケーション済あるいはマイグレーション済といった情報が格納されていた場合、インデックス更新対象ファイルはTier2ファイルサーバ3100に存在しているといえる。インデックス更新対象ファイルがTier2ファイルサーバ3100に存在する場合(処理ステップS608でYesの場合)、処理ステップS601に遷移する。
【０１１２】
インデックス更新対象ファイルがTier2ファイルサーバ3100に存在しない場合(処理ステップS608でNoの場合)、ファイルアクセス制御サブプログラム1172は、Tier1ファイルサーバ2100から対象ファイルのデータとメタデータ取得を許可するか否かを判断する(ステップS609)。ここでは、システム全体でのポリシー設定などによって、どのような処理を選択できるようにしてもよい。例えば、システム全体でTier1ファイルサーバ2100からの取得を許可してもよいし、許可しないようにしてもよい。さらに、当該Tier1ファイルサーバ2100の稼働状況などを参考に、状況に応じて情報取得の可否を判断できるようにしてもよい。ここで、Tier1ファイルサーバ2100からの情報取得を許可する場合(処理ステップS609でYesの場合)、ファイルアクセス制御サブプログラム1172は、インデックス更新対象ファイルのデータならびにメタデータの取得要求をTier1ファイルサーバに対して送信する(ステップS610)。その後は、処理ステップS602に遷移氏、Tier1ファイルサーバ2100が以降の処理を行う。
【０１１３】
Tier1ファイルサーバ2100からの情報取得を許可しない場合(処理ステップS609でNoの場合)、ファイルアクセス制御サブプログラム1172は、今回のインデックス更新処理において、対象ファイルのインデックス更新はスキップさせるようにする(ステップS611)。これは、Tier1ファイルサーバにしか所望のデータがない状態で、Tier1からのデータ取得が許可されていないケースに相当する。このようなケースでは、そもそも所望のデータを取得困難なため、当該ファイルに対するインデックス更新処理はあきらめ、次のインデックス更新処理の契機でリトライするようにする。
【０１１４】
以上の処理を行うことで、検索サーバ1100は、Tier1ファイルサーバ2100ならびにTier2ファイルサーバ3100のどちらにインデックス更新対象ファイルが存在していたとしても、必要なデータやメタデータを取得し、インデックス更新に活用することが可能になる。
【実施例５】
【０１１５】
上述した実施例1は、インデックス更新対象ファイルに関するデータとメタデータ、ならびに対象ファイルを格納するディレクトリに関するメタデータを取得するために必要な情報を、ファイル更新リスト問合せ結果取得パケット8200に格納している。一方、インデックス更新対象ファイルを格納するディレクトリについては、検索サーバ1100がアクセス先に関する情報を取得した上で、再度対象ディレクトリにアクセスした上で必要なメタデータを取得する処理を行う。ここで、検索サーバ1100がTier1ファイルサーバ2100からインデックス更新対象ファイルが格納されるディレクトリに関するメタデータを取得するために、当該Tier2ファイルサーバ3100に対して何度もアクセスする必要がある。検索サーバ1100とTier2ファイルサーバ3100間のネットワークが高遅延で低帯域な場合では、このようなアクセス回数を極力減らすことで、当該処理の性能向上を図る必要が出てくる可能性もある。
【０１１６】
このため、インデックス更新対象ファイルが格納されているディレクトリに関するメタデータを、ファイル更新リストを取得する際に一括して取得できるような仕組みが必要となる。そこで、以降では、検索サーバ1100がTier1ファイルサーバ2100に対してインデックス更新対象となるファイルリストを取得する際に、当該ファイルが格納されているディレクトリや、そのディレクトリが格納されている先祖のディレクトリ全てのメタデータに関する情報も当該ファイルリストと一緒に取得する制御方法を実施例5として説明する。
【０１１７】
上述のように、インデックス更新対象となるファイルのリストと共に、当該ディレクトリに設定されているメタデータを取得して、インデックス更新処理で利用できるようにするためには、ファイル更新リスト問合せ結果取得パケット8200の構造と、ファイルデータとメタデータ取得処理の一部を変更する必要がある。これらの変更内容は、図29、図30で説明する。
【０１１８】
図29は、図13で説明したファイル更新リスト問合せ結果取得パケット8200の変更内容を示す。本パケット構造は、図13で説明したパケット構造と比べて、インデックス更新対象ファイルの親ディレクトリデータ8266の中に当該ディレクトリに関する情報も格納する点などが異なる。具体的には、以下で説明する。
【０１１９】
図29において、図13からの変更点は、親ディレクトリデータ8266内にアクセス制御情報8284という属性と、メタデータ8285という属性を追加している点である。アクセス制御情報8284には、当該ディレクトリに設定されているアクセス制御情報を格納する。例えば、当該ディレクトリに設定されているアクセス制御用のパーミッションビット情報や、ACL情報などを格納するようにしてよい。メタデータ8285には、当該ディレクトリに設定されている各種メタデータ情報を格納する。
【０１２０】
図30は、図19で説明したファイルデータとメタデータ取得処理の変更内容を示す。本処理フローは、図19で説明したファイルデータとメタデータ取得処理に比べて、インデックス更新対象ファイルが格納されているディレクトリに設定されているアクセス制御情報やメタデータも一緒に取得できるようにする点が異なる。具体的には、以下で説明する。
【０１２１】
図30の処理フローにおいて、図19からの変更点は、処理ステップS601に先立って、処理ステップS612を新たに追加している点である。それ以外は、図19と同じである。以下、変更部分に関する説明のみを行う。
【０１２２】
本処理の冒頭にて、ファイルアクセス制御サブプログラム1172は、ファイル更新リスト問合せ結果取得パケット8200より、インデックス更新対象ファイルの親ディレクトリならびに必要であれば先祖ディレクトリのアクセス制御情報ならびにメタデータを取得する(ステップS612)。ここでは、ファイル更新リスト問合せ結果取得パケット8200内のアクセス制御情報8284、ならびにメタデータ8285の欄を参照して、必要な情報を取得する。ここで取得した情報は、当該ファイルに関するインデックス更新を行う際に活用する。その後、処理ステップS601に遷移する。なお、本処理における処理ステップS603における分岐については、既に親ディレクトリのメタデータを取得している状態になるので、常にNoの方に分岐するようにしてよい。
【０１２３】
以上の処理を行うことで、検索サーバ1100は、インデックス更新対象ファイルが格納されている親ディレクトリや先祖ディレクトリのメタデータについて、個別にTier2ファイルサーバ3100から取得することなく、インデックス更新に必要な情報を取得でき、効率よく処理を行うことが可能になる。
【実施例６】
【０１２４】
上述した実施例1は、インデックス更新対象ファイルに関する情報をTier1ファイルサーバ2100から取得している。一方、同じような情報をTier2ファイルサーバ3100から取得することも考えることができる。例えば、Tier1ファイルサーバ2100に格納されているファイルが即座にTier2ファイルサーバ3100にも複製が作成されるような運用をしているケースでは、Tier2ファイルサーバ3100からインデックス更新対象ファイルに関する情報を取得するようにしても、結果的に同じになる。Tier1ファイルサーバ2100はユーザにアクセスさせるフロントエンド側ファイルサーバであるため、ユーザによる同時アクセスによって負荷が高くなってしまう場合も起こりえる。したがって、検索サーバ1100は、インデックス更新対象ファイルに関する情報をTier2ファイルサーバ3100側からも取得して、それを利用したインデックス更新ができるようにすることも有益であると言える。
【０１２５】
このため、Tier2ファイルサーバ3100は、ファイル更新リストを作成できるようにすると共に、検索サーバ1100からの要求に応じてインデックス更新対象ファイルのリストを提供できるような仕組みが必要となる。そこで、以降では、Tier2ファイルサーバ3100がファイル更新リストを作成し、検索サーバ1100からの要求に応じてインデックス更新対象ファイルリストを提供する制御方法を実施例6として説明する。
【０１２６】
上述のように、Tier2ファイルサーバ3100がファイル更新リストを作成できるようにするためには、Tier2ファイルサーバ3100のハードウェア構成と、インデックス更新全体処理と、ファイル更新リスト問合せ処理の一部を変更する必要がある。さらに、Tier2ファイルサーバ3100にTier1ファイルサーバ2100でファイルやディレクトリにアクセスするために必要なパス名に関する情報が伝播されていないケースも想定できるため、このようなケースでは、ファイルパス名問合せ処理を追加で実現する必要がある。前者の変更内容は、図31、図32、図33で説明する。後者の追加内容は、図34で説明する。
【０１２７】
図31は、図4で説明したTier2ファイルサーバ3100のハードウェア構成の変更内容を示す。本構成において、図4との差分は、Change File Notification制御プログラム3125ならびにファイル更新リスト管理表6300が追加されていることである。Change File Notification制御プログラム3125は、図3で説明したTier1ファイルサーバ2100におけるChange File Notification制御プログラム2125と同じものである。また、ファイル更新リスト管理表6300は、図9で説明したものと同じである。上記追加した制御プログラムや管理表によって提供される処理フローについては、Tier1ファイルサーバ2100における処理内容として前述した処理フローと同じである。このため、処理フローの説明は省略する。
【０１２８】
図32は、図17で説明したインデックス更新全体処理の変更内容を示す。本処理フローは、図17で説明したインデックス更新全体処理と比べて、Tier2ファイルサーバ3100にファイル更新リストを問い合わせる処理を行う点と、Tier1ファイルサーバ2100に対して、Tier2ファイルサーバ3100上のファイル識別情報をTier1ファイルサーバ2100上のパス名に変換するためのファイルパス名問合せ処理を行えるようにする点が異なる。具体的には、以下で説明する。
【０１２９】
図32の処理フローにおいて、図17からの変更点は、処理ステップS401を別の処理ステップS407に変更している点と、処理ステップS405の後で新たに処理ステップS408の処理を追加している点である。それ以外は、図17と同じである。以下、変更部分に関する説明のみを行う。
【０１３０】
はじめに、検索サーバ1100のファイル更新リスト問合せ制御サブプログラム1171は、Tier2ファイルサーバ3100に対してファイル更新リスト問合せ処理を行う(ステップS407)。図17のケースでは、Tier1ファイルサーバ2100に対して問合せを行うようにしていた。本処理フローでは、Tier2ファイルサーバ3100に対して問合せを行うようにする点が異なる。本処理の内容は後述する。本処理を実行した後は、処理ステップS402に遷移する。
【０１３１】
次に、処理ステップS405を実行した後で、ファイルアクセス制御サブプログラム1172は、Tier1ファイルサーバ2100に対して、ファイルパス名問合せ処理を行う(ステップS408)。本処理の内容は後述する。本処理を実行した後は、処理ステップS406に遷移する。
【０１３２】
なお、ファイルパス名問合せ処理は、Tier1ファイルサーバ2100におけるパス名情報が、Tier2ファイルサーバ3100側に通知されて保管されていない場合や、Tier1ファイルサーバ2100とTier2ファイルサーバ3100との間で同期がとれていないような場合に必要となる。ただし、既に当該パス名情報がファイルの複製や移動を契機にTier2ファイルサーバ側にも通知されて保管されている場合には、本処理は不要となる。
【０１３３】
図33は、図18で説明したファイル更新リスト問合せ処理の変更内容と示す。本処理フローは、図32で説明したインデックス更新全体処理の処理ステップS407に相当する。本処理フローは、図18で説明したファイル更新リスト問合せ処理と比べて、Tier2ファイルサーバ3100にファイル更新リストを問い合わせる処理を行う点が異なる。具体的には、以下で説明する。
【０１３４】
図33の処理フローにおいて、図18からの変更点は、処理ステップS502を別の処理ステップS505に変更している点である。それ以外は、図18と同じである。以下、変更部分に関する説明のみを行う。
【０１３５】
処理ステップS501でNoとなる場合、ファイル更新リスト問合せ制御サブプログラム1171は、ファイル更新リストの取得条件と共に、ファイル更新リスト問合せ要求をTier2ファイルサーバ3100に対して送信する(ステップS505)。図18との違いは、問合せ要求の送り先だけであり、それ以外は図18における処理ステップS502の内容と同じである。本処理を実行した後は、処理ステップS503に遷移する。
【０１３６】
図34は、ファイルパス名問合せ処理の流れを示す。はじめに、ファイルアクセス制御サブプログラム1172は、Tier1ファイルサーバ2100におけるパス名を問い合わせたいTier2ファイルサーバ3100上のオブジェクト名を指定した上で、ファイルパス名問合せ要求をTier1ファイルサーバ2100に対して送信する(ステップS901)。問合せ要求を受けたTier1ファイルサーバ2100上のファイル階層管理制御プログラム2126は、ファイル階層管理表6400を参照し、指定オブジェクト名に対応付けられているファイルパス名を特定する(ステップS902)。その後、ファイル階層管理制御プログラム2126は、特定したファイルパス名を要求元に提供する(ステップS903)。当該ファイルパス名を取得した検索サーバ1100上のファイルアクセス制御プログラム1172は、以降で行うインデクシング処理用に当該ファイルパス名情報を利用できるようにする。
【０１３７】
以上の処理を行うことで、検索サーバ1100は、Tier1ファイルサーバ2100に対してインデックス更新対象ファイルを問い合わせるかわりに、Tier2ファイルサーバ3100に対して問い合わせることで、実施例1と同じようなインデックスの更新を行うことが可能になる。両方の方法を使い分けることによって、システム内の負荷が一時的に偏っている場合などにおいて、処理の負荷分散のために、インデックス更新対象ファイルの問い合わせ先を変更するといった使い方も可能になる。
【０１３８】
なお、本発明では、上述した制御装置のほかに、制御システムあるいは制御方法として構成することもできる。また、上述の制御装置を実現するコンピュータプログラム、およびそのプログラムを記録した記録媒体、そのプログラムを含み搬送波内に具現化されたデータ信号など種々の態様で実現することが可能である。  
本発明をコンピュータプログラムまたはそのプログラムを記録した記録媒体等として構成する場合には、制御装置あるいは制御装置を制御するプログラム全体として構成するものとしてもよいし、本発明の機能を果たす部分のみを構成するものとしてもよい。また、記録媒体としては、フレキシブルディスクやCD-ROM、DVD-ROM、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置および外部記憶装置などコンピュータが読み取り可能な種々の揮発性記憶媒体や不揮発性記憶媒体を利用できる。
【符号の説明】
【０１３９】
１００・・・ネットワーク
１０００・・・検索サーバ
２１００・・・Tier1ファイルサーバ
３１００・・・Tier2ファイルサーバ
４１００・・・クライアントマシン
１１１０、２１１０、３１１０、４１１０・・・プロセッサ
１１２０、２１２０、３１２０、４１２０・・・メモリ
１１２１、２１２１、３１２１、４１２１・・・外部記憶装置I/F制御プログラム
１１２２、２１２２、３１２２、４１２２・・・ネットワークI/F制御プログラム
１１２３、２１２３、３１２３、４１２３・・・データ管理制御プログラム
１１２４・・・検索制御プログラム
１１７１・・・ファイル更新リスト問合せ制御サブプログラム
１１７２・・・ファイルアクセス制御サブプログラム
１１７３・・・インデクシング制御サブプログラム
１１７４・・・検索応答制御サブプログラム
２１２４、３１２４・・・ファイル共有制御プログラム
２１２５、３１２５・・・Change File Notification制御プログラム
２１２６・・・ファイル階層管理制御プログラム
２１２７・・・Tier2ファイルサーバ向けファイルアクセスクライアント制御プログラム
４１２４・・・検索クライアント制御プログラム
４１２５・・・ファイル共有クライアント制御プログラム
１１３０、２１３０、３１３０、４１３０・・・外部記憶装置I/F
１１４０、２１４０、３１４０、４１４０・・・ネットワークI/F
１１５０、２１５０、３１５０、４１５０・・・バス
１１６０、２１６０、３１６０、４１６０・・・外部記憶装置
２１８０、３１８０・・・ファイルシステム
６１００・・・検索インデックス管理表
６１１０・・・キーワード
６１２０・・・該当位置情報
６１２１、６１２４・・・ファイル識別情報
６１２２、６１２５・・・該当位置オフセット
６１２３、６１２６・・・重み付け
６２００・・・検索インデックス登録ファイル管理表
６２１０・・・ファイル識別情報
６２２０・・・ファイルパス名
６２３０・・・メタデータ
６３００・・・ファイル更新リスト管理表
６３１０・・・発生日時
６３２０・・・操作種別
６３３０・・・オブジェクト種別
６３４０・・・パス名
６４００・・・ファイル階層管理表
６４１０・・・オブジェクト種別
６４２０・・・パス名
６４３０・・・Tier2格納場所
６４４０・・・管理状態
７０００・・・ファイル
７１００・・・メタデータ
７１１０・・・従来のメタデータ
７１２０・・・Tier2格納場所
７１３０・・・管理状態
７２００・・・データ
８１００・・・ファイル更新リスト問合せパケット
８１１０・・・認証情報
８１２０、８２２０・・・問合せ内容
８１３０・・・問合せ対象期間指定
８１３１・・・起点
８１３２・・・終点
８１４０・・・問合せ条件指定
８１４１・・・ファイル上限サイズ
８１４２・・・ファイル拡張子
８１５０・・・問合せ取得方法指定
８１５１・・・取得方法フラグ
８１５２・・・上限エントリ数
８１５３・・・オフセット
８２００・・・ファイル更新リスト問合せ結果取得パケット
８２１０・・・処理結果
８２３０・・・総エントリ数
８２４０・・・オフセット
８２５０・・・エントリ数
８２６０・・・ファイル更新リスト
８２６１・・・ファイル更新エントリ
８２６２・・・発生日時
８２６３・・・オブジェクト種別
８２６４・・・操作種別
８２６５・・・パス名
８２６６・・・親ディレクトリデータ
８２６７・・・パス名
８２６８・・・Tier2格納場所
８２７０・・・Share情報
８２７１・・・Tier1におけるShare名
８２７２・・・Shareのアクセス制御情報
８２８１・・・Tier1 IPアドレス
８２８２・・・Tier2 IPアドレス
８２８３・・・階層管理状態情報
８２８４・・・アクセス制御情報
８２８５・・・メタデータ
【図１】
0005557824.tif 000002
【図２】
0005557824.tif 000003
【図３】
0005557824.tif 000004
【図４】
0005557824.tif 000005
【図５】
0005557824.tif 000006
【図６】
0005557824.tif 000007
【図７】
0005557824.tif 000008
【図８】
0005557824.tif 000009
【図９】
0005557824.tif 000010
【図１０】
0005557824.tif 000011
【図１１】
0005557824.tif 000012
【図１２】
0005557824.tif 000013
【図１３】
0005557824.tif 000014
【図１４】
0005557824.tif 000015
【図１５】
0005557824.tif 000016
【図１６】
0005557824.tif 000017
【図１７】
0005557824.tif 000018
【図１８】
0005557824.tif 000019
【図１９】
0005557824.tif 000020
【図２０】
0005557824.tif 000021
【図２１】
0005557824.tif 000022
【図２２】
0005557824.tif 000023
【図２３】
0005557824.tif 000024
【図２４】
0005557824.tif 000025
【図２５】
0005557824.tif 000026
【図２６】
0005557824.tif 000027
【図２７】
0005557824.tif 000028
【図２８】
0005557824.tif 000029
【図２９】
0005557824.tif 000030
【図３０】
0005557824.tif 000031
【図３１】
0005557824.tif 000032
【図３２】
0005557824.tif 000033
【図３３】
0005557824.tif 000034
【図３４】
0005557824.tif 000035