(57)【特許請求の範囲】
【請求項１】
外部装置にファイルの記憶領域を提供する情報処理システムであって、
格納された前記ファイルへの前記外部装置からのアクセス制御を第一のアクセス制御情報形式に従って実行する第一のストレージ装置と、
前記第一のストレージ装置で使用されている前記第一のアクセス制御情報形式よりも設定粒度が細かい第二のアクセス制御情報形式に従って、格納された前記ファイルへの前記外部装置からのアクセス制御を実行する第二のストレージ装置と、
前記外部装置からの検索要求に基づいて前記第一のストレージ装置に格納されている前記ファイルを検索し、当該検索の結果に対して前記第一のアクセス制御情報形式を適用して前記検索結果の絞り込みを実行する第一の検索制御装置と、
前記外部装置からの検索要求に基づいて前記第二のストレージ装置に格納されている前記ファイルを検索し、当該検索の結果に対して前記第二のアクセス制御情報形式を適用して前記検索結果の絞り込みを実行する第二の検索制御装置とが通信可能に接続されており、
前記外部装置からの前記検索要求は前記第二の検索制御装置が受け付けて前記第一の検索制御装置に引き渡し、前記第一の検索制御装置での前記検索結果と前記第二の検索制御装置での検索結果とが前記第二の検索制御装置において統合され、
前記第二のストレージ装置に格納されている前記ファイルが前記第一のストレージ装置に移動された場合、前記第一の検索制御装置が移動された当該ファイルから検索用インデックスを生成する際に、当該ファイルについて設定されている前記第二のアクセス制御情報形式に基づいた第一のアクセス制御情報の中から、前記第一の検索制御装置において利用される情報を抽出し、前記第一のアクセス制御情報形式である第二のアクセス制御情報に変換し、前記第一の検索制御装置の検索インデックスに当該ファイルの情報として設定し、
前記第一の検索制御装置が前記第二の検索制御装置から受け取った前記検索要求によって検索を実行する際に、前記第二のアクセス制御情報に基づいて検索結果の絞り込みを実行する、情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記第二のストレージ装置から前記第一のストレージ装置に移動された複数のファイルについて前記第一のアクセス制御情報から前記第二のアクセス制御情報への変換を実行する場合に、前記第二のストレージ装置から前記第一のストレージ装置へのファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とを、前記第二のストレージ装置から前記第一の検索制御装置に通知し、
前記第一の検索制御装置は、当該通知されたファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とに従って、前記検索インデックスに記録されている情報を一括して更新し、
前記第一のアクセス制御情報形式および前記第二のアクセス制御情報形式がアクセス制御リスト形式であり、
前記第二のアクセス制御情報により、前記第二のストレージ装置からファイル作成、ファイル参照、ファイル更新、ファイル削除の操作を許可するアクセス制御情報を設定することを可能とし、前記第一の検索制御装置からファイル参照の操作のみを許可し、それ以外の操作を不許可にするアクセス制御情報を追加設定する情報処理システム。
【請求項３】
請求項１に記載の情報処理システムであって、
前記第二のストレージ装置から前記第一のストレージ装置に移動された複数のファイルについて前記第一のアクセス制御情報から前記第二のアクセス制御情報への変換を実行する場合に、前記第二のストレージ装置から前記第一のストレージ装置へのファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とを、前記第二のストレージ装置から前記第一の検索制御装置に通知し、
前記第一の検索制御装置は、当該通知されたファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とに従って、前記検索インデックスに記録されている情報を一括して更新する情報処理システム。
【請求項４】
請求項１に記載の情報処理システムであって、
前記第二のストレージ装置から前記第一のストレージ装置へのファイル移動処理とは非同期に、前記第一のストレージ装置に格納されている前記ファイルに関する情報を取得して、当該ファイルに関して前記第二のストレージ装置で設定された前記第二のアクセス制御情報形式に準じた前記第一のアクセス制御情報を取得し、その中から当該第一の検索制御装置において利用する情報を抽出し、前記第一のアクセス制御情報形式に基づいた前記第二のアクセス制御情報に変換し、前記第一のストレージ装置に移動され格納されている前記ファイルに反映する情報処理システム。
【請求項５】
請求項１に記載の情報処理システムであって、
前記第二のストレージ装置において、前記第一のストレージ装置への移動対象ファイルについて、前記第二のアクセス制御情報形式に基づく前記第一のアクセス制御情報を取得し、その中から当該第一の検索制御装置において利用する情報を抽出し、前記第一のアクセス制御情報形式に基づく前記第二のアクセス制御情報に変換し、前記第一のアクセス制御情報と前記第二のアクセス制御情報と前記移動対象ファイルの情報を前記第一のストレージ装置に転送する情報処理システム。
【請求項６】
請求項１に記載の情報処理システムであって、
前記第一のストレージ装置において、前記第二のストレージ装置から移動されたファイルについて、前記第二のアクセス制御情報形式に基づいた前記第一のアクセス制御情報を取得し、その中から当該第一の検索制御装置において利用する情報を抽出し、前記第一のアクセス制御情報形式である前記第二のアクセス制御情報に変換し、前記第一のアクセス制御情報と前記第二のアクセス制御情報と前記対象ファイルの情報を前記第二のストレージ装置に格納する情報処理システム。
【請求項７】
請求項１に記載の情報処理システムであって、
前記第一のアクセス制御情報形式および前記第二のアクセス制御情報形式がアクセス制御リスト形式である情報処理システム。
【請求項８】
請求項１に記載の情報処理システムであって、前記第一のアクセス制御情報形式が前記ファイルへのアクセス許可内容を指定するパーミッションビット形式であって、前記第二のアクセス制御情報形式がアクセス制御リスト形式である情報処理システム。
【請求項９】
請求項１に記載の情報処理システムであって、
前記第二のアクセス制御情報により、前記第二のストレージ装置からファイル作成、ファイル参照、ファイル更新、ファイル削除の操作を許可するアクセス制御情報を設定することを可能とし、前記第一の検索制御装置からファイル参照の操作のみを許可し、それ以外の操作を不許可にするアクセス制御情報を追加設定する情報処理システム。
【請求項１０】
外部装置にファイルの記憶領域を提供する情報処理システムの制御方法であって、
格納された前記ファイルへの前記外部装置からのアクセス制御を第一のアクセス制御情報形式に従って実行する第一のストレージ装置と、
前記第一のストレージ装置で使用されている前記第一のアクセス制御情報形式よりも設定粒度が細かい第二のアクセス制御情報形式に従って、格納された前記ファイルへの前記外部装置からのアクセス制御を実行する第二のストレージ装置と、
前記外部装置からの検索要求に基づいて前記第一のストレージ装置に格納されている前記ファイルを検索し、当該検索の結果に対して前記第一のアクセス制御情報形式を適用して前記検索結果の絞り込みを実行する第一の検索制御装置と、
前記外部装置からの検索要求に基づいて前記第二のストレージ装置に格納されている前記ファイルを検索し、当該検索の結果に対して前記第二のアクセス制御情報形式を適用して前記検索結果の絞り込みを実行する第二の検索制御装置とが通信可能に接続されており、
前記外部装置からの前記検索要求を前記第二の検索制御装置が受け付けて前記第一の検索制御装置に引き渡し、前記第一の検索制御装置での前記検索結果と前記第二の検索制御装置での検索結果とを前記第二の検索制御装置において統合し、
前記第二のストレージ装置に格納されている前記ファイルが前記第一のストレージ装置に移動された場合、前記第一の検索制御装置が移動された当該ファイルから検索用インデックスを生成する際に、当該ファイルについて設定されている前記第二のアクセス制御情報形式に基づいた第一のアクセス制御情報の中から、前記第一の検索制御装置において利用される情報を抽出し、前記第一のアクセス制御情報形式である第二のアクセス制御情報に変換し、前記第一の検索制御装置の検索インデックスに当該ファイルの情報として設定し、
前記第一の検索制御装置が前記第二の検索制御装置から受け取った前記検索要求によって検索を実行する際に、前記第二のアクセス制御情報に基づいて検索結果の絞り込みを実行する、情報処理システムの制御方法。
【請求項１１】
請求項１０に記載の情報処理システムの制御方法であって、
前記第二のストレージ装置から前記第一のストレージ装置に移動された複数のファイルについて前記第一のアクセス制御情報から前記第二のアクセス制御情報への変換を実行する場合に、前記第二のストレージ装置から前記第一のストレージ装置へのファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とを、前記第二のストレージ装置から前記第一の検索制御装置に通知し、
前記第一の検索制御装置は、当該通知されたファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とに従って、前記検索インデックスに記録されている情報を一括して更新する情報処理システムの制御方法。
【請求項１２】
請求項１０に記載の情報処理システムの制御方法であって、
前記第二のストレージ装置から前記第一のストレージ装置へのファイル移動処理とは非同期に、前記第一のストレージ装置に格納されている前記ファイルに関する情報を取得して、当該ファイルに関して前記第二のストレージ装置で設定された前記第二のアクセス制御情報形式に準じた前記第一のアクセス制御情報を取得し、その中から当該第一の検索制御装置において利用する情報を抽出し、前記第一のアクセス制御情報形式に基づいた前記第二のアクセス制御情報に変換し、前記第一のストレージ装置に移動され格納されている前記ファイルに反映する情報処理システムの制御方法。
【請求項１３】
請求項１０に記載の情報処理システムの制御方法であって、
前記第二のストレージ装置において、前記第一のストレージ装置への移動対象ファイルについて、前記第二のアクセス制御情報形式に基づく前記第一のアクセス制御情報を取得し、その中から当該第一の検索制御装置において利用する情報を抽出し、前記第一のアクセス制御情報形式に基づく前記第二のアクセス制御情報に変換し、前記第一のアクセス制御情報と前記第二のアクセス制御情報と前記移動対象ファイルの情報を前記第一のストレージ装置に転送する情報処理システムの制御方法。
【請求項１４】
請求項１０に記載の情報処理システムの制御方法であって、
前記第一のストレージ装置において、前記第二のストレージ装置から移動されたファイルについて、前記第二のアクセス制御情報形式に基づいた前記第一のアクセス制御情報を取得し、その中から当該第一の検索制御装置において利用する情報を抽出し、前記第一のアクセス制御情報形式である前記第二のアクセス制御情報に変換し、前記第一のアクセス制御情報と前記第二のアクセス制御情報と前記対象ファイルの情報を前記第二のストレージ装置に格納する情報処理システムの制御方法。
【請求項１５】
請求項１０に記載の情報処理システムの制御方法であって、
前記第一のアクセス制御情報形式および前記第二のアクセス制御情報形式がアクセス制御リスト形式である情報処理システムの制御方法。
【請求項１６】
外部装置にファイルの記憶領域を提供すべく、
格納された前記ファイルへの前記外部装置からのアクセス制御を第一のアクセス制御情報形式に従って実行する第一のストレージ装置と、
前記第一のストレージ装置で使用されている前記第一のアクセス制御情報形式よりも設定粒度が細かい第二のアクセス制御情報形式に従って、格納された前記ファイルへの前記外部装置からのアクセス制御を実行する第二のストレージ装置と、
前記外部装置からの検索要求に基づいて前記第二のストレージ装置に格納されている前記ファイルを検索し、当該検索の結果に対して前記第二のアクセス制御情報形式を適用して前記検索結果の絞り込みを実行する第二の検索制御装置とに通信可能に接続されて、
前記外部装置からの検索要求に基づいて前記第一のストレージ装置に格納されている前記ファイルを検索し、当該検索の結果に対して前記第一のアクセス制御情報形式を適用して前記検索結果の絞り込みを実行する第一の検索制御装置であって、
前記第二のストレージ装置に格納されている前記ファイルが前記第一のストレージ装置に移動された場合、移動された当該ファイルから検索用インデックスを生成する際に、当該ファイルについて設定されている前記第二のアクセス制御情報形式に基づいた第一のアクセス制御情報の中から、自身が利用する情報を抽出し、前記第一のアクセス制御情報形式である第二のアクセス制御情報に変換し、自身の検索インデックスに当該ファイルの情報として設定し、
前記第二の検索制御装置から受け取った前記検索要求によって検索を実行する際に、前記第二のアクセス制御情報に基づいて検索結果の絞り込みを実行する、第一の検索制御装置。
【請求項１７】
請求項１６に記載の第一の検索制御装置であって、
前記第二のストレージ装置から前記第一のストレージ装置に移動された複数のファイルについて前記第一のアクセス制御情報から前記第二のアクセス制御情報への変換を実行する場合に、前記第二のストレージ装置から前記第一のストレージ装置へのファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とを、前記第二のストレージ装置から受領し、
当該受領したファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とに従って、前記検索インデックスに記録されている情報を一括して更新し、
前記第二のアクセス制御情報により、ファイル参照の操作のみを許可し、それ以外の操作を不許可にするアクセス制御情報が追加設定されている第一の検索制御装置。
【請求項１８】
請求項１６に記載の第一の検索制御装置であって、
前記第二のストレージ装置から前記第一のストレージ装置に移動された複数のファイルについて前記第一のアクセス制御情報から前記第二のアクセス制御情報への変換を実行する場合に、前記第二のストレージ装置から前記第一のストレージ装置へのファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とを、前記第二のストレージ装置から受領し、
当該受領したファイル移動元と、当該移動元のファイルに対して更新がされた場合にその更新内容を反映させるファイル格納場所の範囲と、当該更新処理の内容とに従って、前記検索インデックスに記録されている情報を一括して更新する第一の検索制御装置。
【請求項１９】
請求項１６に記載の第一の検索制御装置であって、
前記第二のストレージ装置から前記第一のストレージ装置へのファイル移動処理とは非同期に、前記第一のストレージ装置に格納されている前記ファイルに関する情報を取得して、当該ファイルに関して前記第二のストレージ装置で設定された前記第二のアクセス制御情報形式に準じた前記第一のアクセス制御情報を取得し、その中から当該第一の検索制御装置において利用する情報を抽出し、前記第一のアクセス制御情報形式に基づいた前記第二のアクセス制御情報に変換し、前記第一のストレージ装置に移動され格納されている前記ファイルに反映する第一の検索制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理システム、情報処理システムの制御方法、検索制御装置に係わり、特に検索ユーザからの検索要求に対して、複数の検索サーバの検索結果を統合して提供する情報処理システム、情報処理システムの制御方法、検索制御装置に関するものである。
【背景技術】
【０００２】
近年、コンピュータの高性能化ならびに低価格化により、様々な業種や用途においてコンピュータの利用が広がっている。さらに、特性が異なる複数のコンピュータを階層的に接続したシステムを構築し、システム全体を一つのコンピュータシステムとして提供する形態も広く利用されるようになってきている。例えば、高速アクセスが可能であるが高価なコンピュータと、安価で大容量のデータを保管可能なコンピュータとを組み合わせることで、ユーザに対して大容量のデータを扱うことができ、かつそのデータに高速アクセス可能で、比較的安価なシステムを提供することも可能となっている。
【０００３】
前記の状況において、近年では、コンピュータシステムに保管されるデータファイルの数が膨大になり、ユーザにとって欲しいファイルがどこに格納されているのかがわかりにくく簡単にアクセスすることが困難であるという問題も発生している。この問題を解消すべく、全文検索サービスが利用されるようになってきている。この全文検索サービスでは、コンピュータシステムに格納されているファイルデータを検索サーバが解析し、検索インデックスを事前に作成する。ユーザは、検索サーバに対して取得したいファイルを検索するための検索クエリを送信し、その検索結果をもとに対象ファイルにアクセスする。このような検索サービスは、今後、コンピュータシステムに格納するファイルデータ数がさらに増加することが考えられる上、ユーザ自身がどこにどんなファイルデータを格納しているのかを全て把握することは困難になるため、ユーザにとってさらに重要なサービスとなり、サービスの利用がさらに広がるものと考えられる。
【０００４】
検索サーバでは、検索結果のセキュリティトリミングを行うものが多い。セキュリティトリミングとは、検索結果に含まれる内容の中から、当該検索要求を出したユーザがアクセス権を持つ内容のみを抽出してそれを検索結果として提供する機能である。例えば、検索対象ファイルにアクセス制御情報としてアクセス制御リスト(Access Control List、以下「ACL」)が設定されている場合、当該ACL情報に基づいて、当該ユーザが対象ファイルに対してアクセス権を持っているか否かを判断する。その結果に基づいて、当該ファイルの情報を検索結果に含めるか否かを判断する。この機能により、無権限者が検索結果を介してファイルに不正アクセスするのを抑止することが可能になる。
【０００５】
従来、検索サーバが複数台存在する場合、利用者は、それぞれの検索サーバに対して個別に検索要求を出し、その結果を個別に取得する必要があった。これは、複数の検索サーバに対して同じ検索クエリを検索サーバの台数分だけ発行する必要があることを意味しており、利用者にとっては利便性が低かった。この問題を解消するために、複数の独立した検索サーバに対して、一回検索クエリを発行するだけで、全ての検索サーバからの検索結果を統合的に取得できる統合検索サービスが利用され始めている。例えば、OpenSearchといった統合検索を行うための仕様が一般に公開され、利用されるようになってきている。当該統合検索サービスでは、各検索サーバはそれぞれ独立して運用される一方で、各検索サーバが前記OpenSearchのような統一した標準インタフェースで検索要求を受け付け可能にしている。これにより、複数の検索サーバを疎に結合した統合検索が可能となる。この疎に結合した複数検索サーバによる統合検索では、各検索サーバが利用する検索アルゴリズムや検索インデックス更新契機などはそれぞれ別になる。これに対し、複数の検索サーバを一体的に運用することで、密に結合した統合検索サービスを提供する形態もある。密に結合した統合検索サービスでは、各検索サーバにて同じ検索アルゴリズムを利用し、検索インデックス更新はシステム内で統一して行うようにしている。以下本明細書では、統合検索サービスは疎に結合した形態で提供されると考えるものとする。
【０００６】
上述の階層コンピュータシステムを運用する場合、当該システムを構成するコンピュータ間において、データファイルをシステム内で最適配置するために、マイグレーション処理によってそれらデータファイルの格納場所が動的に変更される。ここで、当該システムを構成するコンピュータにおいて、統一されたアクセス制御方法が適用されている場合は、データファイルをマイグレートさせても、対象ファイルのアクセス制御情報はマイグレート前のものを引続き適用することができるので問題は生じない。しかし、システムを構成するコンピュータの中で、アクセス制御方法が相互に異なるものが共存するケースも考えることができる。例えば、アクセス制御情報を規定するためのACLについても、POSIX ACLやNTFS ACLのような様々なバリエーションが存在する。この場合、システム内でデータファイルをマイグレートさせる場合、対象ファイルのアクセス制御情報をマイグレート先でも適用可能な形式に変換する必要がある。アクセス制御情報の中で、特にACLの情報を変換する方法については、特許文献１にその内容が開示されている。この方法は、あるACL形式に基づいたACL情報を、より設定粒度（アクセス制御項目の設定細分化の度合い）が細かい別の形式に基づいたACL情報に変換することができる。この方式によってACL変換が可能であれば、アクセス制御方法が異なるコンピュータ間でデータファイルをマイグレートさせても、対象ファイルについてマイグレート前に設定した情報を元に、マイグレート先においてもアクセス制御を行うことができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２００９／００７７０８７号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、特許文献１に記載の技術では、より設定粒度が細かいACL形式への変換は可能である一方で、より設定粒度が粗いACL形式への変換は考慮されていないという問題がある。その理由は、より設定粒度が粗いACL形式に変換を試みる際に、一部のACL情報が欠落する可能性があるためである。ACL情報が一部でも欠落してしまうと、所望のアクセス制御が継続して行える保証がなくなり、ファイルの不正アクセスなどセキュリティ上重大な問題を発生させかねない。
【０００９】
言い換えれば、コンピュータシステムの構成要素として、汎用形式のACL情報を扱う第一のコンピュータと当該汎用形式よりも設定粒度が細かい独自形式のACL情報を扱う第二のコンピュータが存在する環境において、システム全体を一つのファイルシステムイメージとして提供し、かつ第二のコンピュータが扱う独自形式のACL情報を利用して、当該システムにおけるデータファイルへのアクセス制御を行う場合に上記の問題は顕著になる。当該システムにおいて、第二のコンピュータから第一のコンピュータにファイルデータをマイグレートさせた場合に、対象ファイルデータのACL情報を変換することができないからである。
【００１０】
また、第一のコンピュータ上のデータファイルを検索用にインデクシングする第一の検索サーバと、第二のコンピュータ上のデータファイルを検索用にインデクシングする第二の検索サーバが存在する場合、第一の検索サーバは汎用形式のACL情報のみを解釈可能で、第二の検索サーバは独自形式のACL情報のみを解釈可能である場合が多い。この時、第二のコンピュータ上のデータファイルを第一のコンピュータにマイグレートさせた場合、第一の検索サーバは、当該マイグレートファイルのACL情報を解釈できない。このため、当該ファイルが検索結果に含まれる場合に、第一の検索サーバは正しくセキュリティトリミングを実施できない。したがって、上記のようなケースにおいても、検索サーバにおいて検索結果に対するセキュリティトリミングを行えるようにする技術が必要になる。
【００１１】
本発明は前記のおよび他の課題を解決するためになされたもので、個々のファイルへのアクセス制御の設定粒度が異なる場合であっても、それらのファイルについて複数の検索手段による統合的な検索処理を実行することを可能とする情報処理システム、情報処理システムの制御方法、検索制御装置を提供することである。
【課題を解決するための手段】
【００１２】
上述の課題を解決するために、本発明の一態様は、外部装置にファイルの記憶領域を提供する情報処理システムであって、格納された前記ファイルへの前記外部装置からのアクセス制御を第一のアクセス制御情報形式に従って実行する第一のストレージ装置と、前記第一のストレージ装置で使用されている前記第一のアクセス制御情報形式よりも設定粒度が細かい第二のアクセス制御情報形式に従って、格納された前記ファイルへの前記外部装置からのアクセス制御を実行する第二のストレージ装置と、前記外部装置からの検索要求に基づいて前記第一のストレージ装置に格納されている前記ファイルを検索し、当該検索の結果に対して前記第一のアクセス制御情報形式を適用して前記検索結果の絞り込みを実行する第一の検索制御装置と、前記外部装置からの検索要求に基づいて前記第二のストレージ装置に格納されている前記ファイルを検索し、当該検索の結果に対して前記第二のアクセス制御情報形式を適用して前記検索結果の絞り込みを実行する第二の検索制御装置とが通信可能に接続されており、前記外部装置からの前記検索要求は前記第二の検索制御装置が受け付けて前記第一の検索制御装置に引き渡し、前記第一の検索制御装置での前記検索結果と前記第二の検索制御装置での検索結果とが前記第二の検索制御装置において統合され、前記第二のストレージ装置に格納されている前記ファイルが前記第一のストレージ装置に移動された場合、前記第一の検索制御装置が移動された当該ファイルから検索用インデックスを生成する際に、当該ファイルについて設定されている前記第二のアクセス制御情報形式に基づいた第一のアクセス制御情報の中から、前記第一の検索制御装置において利用される情報を抽出し、前記第一のアクセス制御情報形式である第二のアクセス制御情報に変換し、前記第一の検索制御装置の検索インデックスに当該ファイルの情報として設定し、前記第一の検索制御装置が前記第二の検索制御装置から受け取った前記検索要求によって検索を実行する際に、前記第二のアクセス制御情報に基づいて検索結果の絞り込みを実行する。
【発明の効果】
【００１３】
本発明の一態様によれば、個々のファイルへのアクセス制御の設定粒度が異なる場合であっても、それらのファイルについて複数の検索手段による統合的な検索処理を実行することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る文書管理システム１のシステム構成図である。
【図２】文書管理システム１による文書ファイル格納処理フローの一例を示すフローチャートである。
【図３】文書管理システム１による文書ファイル検索処理フローの一例を示す図である。
【図４】文書管理サーバ1100のハードウェア構成図である。
【図５】検索サーバ2100のハードウェア構成図である。
【図６】ファイルサーバ3100のハードウェア構成図である。
【図７】クライアント装置4100のハードウェア構成図である。
【図８】認証サーバ5100のハードウェア構成図である。
【図９】ファイルマイグレーション処理と統合検索処理に関するシステム構成要素を例示する説明図である。
【図１０】文書管理サーバ1100にて保管するファイルのデータ構造を例示する説明図である。
【図１１】ファイルサーバ3100にて保管するファイルのデータ構造を例示する説明図である。
【図１２】検索インデックス管理表6100を例示する説明図である。
【図１３】検索インデックス登録ファイル管理表6200を例示する説明図である。
【図１４】ＡＣＬ変換情報管理表6300を例示する説明図である。
【図１５】ファイルマイグレーション処理の一例を説明するフローチャートである。
【図１６】インデックス更新処理の一例を説明するフローチャートである。
【図１７】統合検索要求処理の一例を説明するフローチャートである。
【図１８】ファイル更新処理の一例を説明するフローチャートである。
【図１９】実施例２における文書管理サーバ1100のハードウェア構成図である。
【図２０】実施例２における検索サーバ2100のハードウェア構成図である。
【図２１】実施例２におけるＡＣＬ継承範囲管理表6400を例示する説明図である。
【図２２】実施例２におけるＡＣＬ一括更新内容管理表6500を例示する説明図である。
【図２３】実施例２におけるＡＣＬ一括更新処理の一例を説明するフローチャートである。
【図２４】実施例２におけるＡＣＬ一括更新通知受信処理の一例を説明するフローチャートである。
【図２５】実施例３におけるＡＣＬ変換処理の一例を説明するフローチャートである。
【図２６】実施例４におけるマイグレーションファイル受信処理の一例を説明するフローチャートである。
【図２７】実施例５におけるファイルマイグレーション処理の一例を説明するフローチャートである。
【発明を実施するための形態】
【００１５】
［実施例１］
本実施例では、検索サーバが統合検索時のセキュリティトリミングを行う処理方法について説明する。
【００１６】
図１は、本発明の実施例１において実現される情報処理システムである文書管理システム1のシステム構成を例示する説明図である。ネットワーク100を介して、文書管理サーバ1100（第一の検索制御装置および第二のストレージ装置）と、検索サーバ2100（第二の検索制御装置）と、ファイルサーバ3100（第一のストレージ装置）と、クライアント装置4100（外部装置）と、認証サーバ5100とが相互に通信可能に接続されている。本システム1では、文書管理サーバ1100にてファイルを格納して共有するサービスと、格納ファイルを検索するサービスとが提供される。
【００１７】
具体的なサービス内容は次の通りである。ユーザは、クライアント装置4100から文書管理サーバ1100にアクセスして、自身のファイルを当該文書管理サーバ1100に格納することができる。格納されたファイルは、文書管理サーバ1100によって検索用のインデックスが作成される。ユーザは、文書管理サーバ1100に対して条件を指定して格納ファイルを検索することができる。
【００１８】
また、文書管理サーバ1100のストレージ容量が逼迫してきたりした場合のために、文書管理サーバ1100に格納しているファイルの一部を外部のファイルサーバ3100にマイグレーションさせることもできる。ただし、文書管理サーバ1100のユーザには、各ファイルがファイルサーバ3100にマイグレーションされているかどうかは認識されない。クライアント装置4100のユーザは、文書管理サーバ1100にあるファイルにもファイルサーバ3100にマイグレーションされているファイルにも両者の違いを意識することなく同様にアクセスできるようになっている。
【００１９】
外部のファイルサーバ3100にマイグレーションされたファイルについては、外部の検索サーバ2100によって検索用のインデックスが作成され、文書管理サーバ1100における当該ファイルのインデックスは削除される。文書管理サーバ1100は、ユーザからの検索要求を受けた際に、自身のインデックスだけでなく、ネットワーク100を介して接続されている検索サーバ2100にも検索要求を出し、それらの検索結果を統合したものをユーザに提供できるようにする。
【００２０】
検索に際して、文書管理サーバ1100あるいは検索サーバ2100は、インデックスを利用して検索結果を生成し、検索ユーザが参照権限を持つファイルに関する情報のみを当該検索結果に含ませるように検索結果の絞込み（セキュリティトリミング）を行うことができるようにする。これにより、ユーザが参照権限を持たないファイルへアクセスすることを抑止する。具体的なセキュリティトリミング処理実現のための構成については後述する。
【００２１】
なお、図１では、各構成要素をそれぞれ一台ずつ記載しているが、この限りではない。可能であれば、各構成要素とも複数の台数でシステムを構成するようにしてもよい。また、図１では、各構成要素を別装置として記載しているが、この限りではない。可能であれば、任意の二つあるいはそれ以上の構成要素を一台の装置として実現する構成でもよい。また、ネットワーク100による接続形態については、どのようなネットワーク形態でもよく、例えば、インターネット接続でもよいし、ローカルエリアネットワーク（Local Area Network、以下「LAN」）によるイントラネット接続などでもよい。
【００２２】
ここで、以上概説した本実施形態に係る文書管理システム1の構成における文書ファイル格納処理、および文書ファイル検索処理の処理フロー例について説明する。図２に文書ファイル格納処理フローの一例を、図３に文書ファイル検索処理フローの一例を示している。なお、各図中、処理ステップを示す符号に付した文字「S」は「ステップ」を示す（以下本明細書および図面中で同じ）。
【００２３】
図２を参照すると、文書ファイル格納処理において、クライアント装置4100が文書管理サーバ1100に格納すべき文書ファイルを送信する（S11）。ファイルを受信した文書管理サーバ1100は、自身の記憶装置の空き容量を調べ、マイグレーションを実行する必要があるか判定する（S12、S13）。マイグレーションが必要であると判定した場合（S13、No）、文書管理サーバ1100は、格納ファイルおよび適宜選定したファイルをファイルサーバ3100に送信する（S14）。ファイルサーバ3100は、文書管理サーバ1100からマイグレーション対象のファイルを受信して記憶装置に格納し（S15）、文書管理サーバ1100に完了通知を送信する（S17）。
【００２４】
一方、クライアント装置4100からファイルを受信した文書管理サーバ1100がマイグレーション不要と判定した場合（S13、No）、文書管理サーバ1100は自身の記憶装置にファイルを格納する（S18）。なお、マイグレーション要否の判断契機は一例であって、文書ファイル受信時に限定されるものではない。
【００２５】
ファイルサーバ3100から完了通知を受信した文書管理サーバ1100は、クライアント装置4100に完了通知を送信し（S19、S20）、クライアント装置4100がその完了通知を受信して一連の処理を終了する（S21）。マイグレーションを実行しなかった場合にも、S20において同様に完了通知をクライアント装置4100に送信する。
【００２６】
次に、図３を参照すると、文書ファイル検索処理において、クライアント装置4100は文書管理サーバ1100にファイル検索要求を送信する（S31）。検索要求を受信した文書管理サーバ1100は、自身が格納しているファイルのインデックス情報を参照して検索サーバ2100に検索要求を送信する（S32、S33）。検索サーバ2100は検索要求を受信すると（S34）、当該検索サーバ2100で管理するインデックスを利用して対象ファイルの検索を実行する（S35）。次いで検索サーバ2100は、S35の検索結果を文書管理サーバ1100に送信する（S36）。文書管理サーバ1100は、このファイルサーバ3100からの検索結果を受信する（S37）。
【００２７】
一方、文書管理サーバ1100は、クライアント装置4100から受信した検索要求に基づいて、自身で管理するインデックスを利用して対象ファイルの検索を実行する（S38）。
【００２８】
次いで文書管理サーバ1100は、自身の格納ファイルを検索した結果とファイルサーバ3100における検索結果とを統合し（S39）、統合された検索結果をクライアント装置4100に送信する（S40）。クライアント装置4100がその統合された検索結果を受信して一連の処理を終了する（S41）。
【００２９】
以上例示した処理フローにより、クライアント装置4100が１回文書管理サーバ1100に検索要求を発行することで、システム1全体に格納されている対象のファイルについて検索を実行することができる。以上例示したシステム1全体の構成と処理概要に基づいて、個々の構成要素とその作用について以下詳述する。
【００３０】
図４は、文書管理サーバ1100のハードウェア構成を例示する説明図である。文書管理サーバ1100は、後述のプログラムを実行するCPU（Central Processing Unit）、MPU（Micro-Processing Unit）等のプロセッサ1110と、プログラムならびにデータを一時的に格納するRAM（Random Access Memory）等のメモリ1120と、ハードディスクドライブ（Hard Disk Drive、「HDD」）、半導体記憶ドライブ（Solid State Drive、「SSD」）等の外部記憶装置1160にアクセスするための外部記憶装置I/F1130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F1140と、それらを接続するバス1150とを備えて構成されている。外部記憶装置I/F1130は、例えば外部記憶装置1160およびバス1150とのインタフェース回路とデータ処理用のプロセッサとを備える。ネットワークI/F1140は、例えば外部ネットワークとバス1150とのインタフェース回路とデータ処理用のプロセッサとを備えるNIC（Network Interface Card）、HBA（Host Bus Adaptor）等として構成される。
【００３１】
文書管理サーバ1100はまた、入力装置1155および出力装置1156を備える。入力装置1155は、例えばキーボード、マウス、タッチパネル、ペンタブレット等のデータ入力用ユーザインタフェース機器である。出力装置1156は、例えば液晶モニタ等のディスプレイ、あるいはプリンタ等の出力機器である。
【００３２】
メモリ1120には、外部記憶装置I/F1130を制御するプログラムである外部記憶装置I/F制御プログラム1121と、ネットワークI/F1140を制御するプログラムであるネットワークI/F制御プログラム1122と、当該文書管理サーバ1100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ管理制御プログラム1123と、当該文書管理サーバ1100において文書管理サービスを提供するための文書管理制御プログラム1124と、当該文書管理サーバ1100においてファイルマイグレーションサービスを提供するためのファイルマイグレーション制御プログラム1125と、前記文書管理制御プログラム1124が利用する検索インデックス管理表6100ならびに検索インデックス登録ファイル管理表6200が格納される。これらのプログラムはプロセッサ1110によって実行されることにより、各プログラム所定の機能を実現する。また、これらのプログラムは外部記憶装置1160に格納しておき、プロセッサ1110によってメモリ1120に読み出され、実行されるようにするのが一般的であるが、メモリ1120にROM（Read Only Memory）等の不揮発性メモリを設けてこれに格納しておいてもよい。このような構成上の変更は、以下に説明する検索サーバ2100、ファイルサーバ3100、およびクライアント装置4100にも適用されうる。
【００３３】
また、文書管理サーバ1100では、メモリ1120上で実行される各プログラムの基盤を提供するオペレーティングシステム1126（Operating System、OS）が動作する。ＯＳ1126としては、Windows（登録商標）、Linux（登録商標）等が例示されるが、これらに限定されることなくシステム仕様に応じてどのようなシステムを稼働させてもよい。
【００３４】
文書管理制御プログラム1124は、その内部に、独自ACL形式アクセス制御サブプログラム1171と、検索制御サブプログラム1172と、統合検索制御サブプログラム1173と、検索転送クライアント制御サブプログラム1174とを備える。独自ACL形式アクセス制御サブプログラム1171は、文書管理サーバ1100にて保管されているファイルなどに対するアクセス制御処理を行う。具体的には、文書管理サーバ1100に格納されているファイルに対するアクセス許可操作やアクセス不許可操作に関する情報をアクセス制御リスト（ACL: Access Control List）という形式で管理する。この独自ACL形式アクセス制御サブプログラム1171では、当該文書管理サーバ1100における第二のアクセス制御情報形式である独自のアクセス制御情報形式にてACLを規定し、アクセス制御に利用する。独自にACLを規定することによって、汎用のACL形式に基づいたアクセス制御よりも、さらに細かな粒度で、例えばREAD、WRITE、DELETEといった基本操作にEDIT、APPROVEといったより抽象度の高い操作内容を加えたアクセス制御を行うことが可能である。
【００３５】
検索制御サブプログラム1172は、当該文書管理サーバ1100に格納されたファイル群の検索インデックス作成と、作成インデックスを利用したファイル検索を行う。統合検索制御サブプログラム1173は、クライアント装置4100から受信する検索要求に指定された検索条件をもとに、他の検索サーバ2100と連携して当該検索条件に合致するファイル群の情報を取得の上、一つに統合した検索結果を要求元に提供する。
【００３６】
検索転送クライアント制御サブプログラム1174は、上記統合検索制御サブプログラム1173が他の検索サーバ2100に対して検索要求を発行する際に、クライアントプログラムとして動作する。当該検索転送クライアント制御サブプログラム1174が取得した検索結果は、統合検索結果を生成するために、統合検索制御サブプログラム1173に提供される。
【００３７】
ファイルマイグレーション制御プログラム1125は、その内部に、メタデータ取得制御サブプログラム1175を含んでいる。メタデータ取得制御サブプログラム1175は、マイグレーション対象ファイルのメタデータを取得する。取得対象となるメタデータには、当該文書管理サーバ1100で使用されている独自ACL形式アクセス制御サブプログラム1171にて利用するACL情報も含まれる。取得されたメタデータは、マイグレート先のファイルサーバ3100に送られ、当該ファイルサーバ3100にて対象ファイルのメタデータが保管される。
【００３８】
なお、検索インデックス管理表6100、ならびに検索インデックス登録ファイル管理表6200については後述する。
【００３９】
次に、検索サーバ2100の構成と機能について説明する。図５は、検索サーバ2100のハードウェア構成を例示する説明図である。検索サーバ2100は、ハードウェア構成としては前記した文書管理サーバ1100と同様であり、プログラムを実行するプロセッサ2110と、プログラムならびにデータを一時的に格納するメモリ2120と、外部記憶装置2160にアクセスするための外部記憶装置I/F2130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F2140と、それらを接続するバス2150とを備えて構成されている。また文書管理サーバ1100と同様に、入力装置2155、出力装置2156を備えている。
【００４０】
メモリ2120には、外部記憶装置I/F2130を制御するプログラムである外部記憶装置I/F制御プログラム2121と、ネットワークI/F2140を制御するプログラムであるネットワークI/F制御プログラム2122と、当該検索サーバ2100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ管理制御プログラム2123と、当該検索サーバ2100においてファイル検索サービスを提供するための検索制御プログラム2124と、文書管理サーバ1100の検索転送クライアント制御サブプログラム1173からの検索要求を処理するための検索転送サーバ制御プログラム2125と、検索サーバ2100の検索制御プログラム2124において、検索結果のセキュリティトリミングを行うために文書管理サーバ1100の独自アクセス制御サブプログラム1171にて利用しているACLの形式を、当該検索サーバ2100にて解釈可能なACLの形式に変換するためのACL変換制御プログラム2126と、検索制御プログラム2124が利用する検索インデックス管理表6100ならびに検索インデックス登録ファイル管理表6200と、ACL変換制御プログラム2126が利用するACL変換情報管理表6300とが格納される。文書管理サーバ1100と同様に、ＯＳ2127もメモリ2120上で実行されている。
【００４１】
なお、検索インデックス管理表6100、検索インデックス登録ファイル管理表6200、およびACL変換情報管理表6300については後述する。
【００４２】
次に、ファイルサーバ3100の構成と機能について説明する。図６は、ファイルサーバ3100のハードウェア構成を例示する説明図である。ファイルサーバ3100も、ハードウェア構成としては前記した文書管理サーバ1100と同様であり、プログラムを実行するプロセッサ3110と、プログラムならびにデータを一時的に格納するメモリ3120と、外部記憶装置3160にアクセスするための外部記憶装置I/F3130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F3140と、それらを接続するバス3150とを備えて構成されている。また文書管理サーバ1100と同様に、入力装置3155、出力装置3156を備えている。
【００４３】
メモリ3120には、外部記憶装置I/F3130を制御するプログラムである外部記憶装置I/F制御プログラム3121と、ネットワークI/F3140を制御するプログラムであるネットワークI/F制御プログラム3122と、当該ファイルサーバ3100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ管理制御プログラム3123と、当該ファイルサーバ3100においてファイルを保管し複数ユーザ間で共有するためのファイル共有サービスを提供するためのファイル共有制御プログラム3124が格納される。文書管理サーバ1100と同様に、ＯＳ3125もメモリ3120上で実行されている。
【００４４】
ファイル共有制御プログラム3124は、その内部に、汎用ACL形式アクセス制御サブプログラム3171を備える。汎用ACL形式アクセス制御サブプログラム3171は、ファイルサーバ3100、具体的には外部記憶装置3160にて保管されているファイルなどに対するアクセス制御処理を行う。より具体的には、汎用ACL形式アクセス制御サブプログラム3171は、ファイルサーバ3100に格納されているファイルに対するアクセス許可操作やアクセス不許可操作に関する情報をアクセス制御リスト(ACL)という形式で管理する。この汎用ACL形式アクセス制御サブプログラム3171では、当該ファイルサーバ3100にて対応可能な汎用のACL形式（第一のアクセス制御情報形式）を利用し、アクセス制御に利用する。汎用ACL形式を利用することによって、当該ACL形式に対応した別のファイルサーバを利用することも可能になる。これにより、文書管理システム1の適用範囲拡大に寄与する。
【００４５】
次に、クライアント装置4100の構成と機能について説明する。図７は、クライアント装置4100のハードウェア構成を例示する説明図である。クライアント装置4100は、文書管理サーバ1100等と同様に、プログラムを実行するプロセッサ4110と、プログラムならびにデータを一時的に格納するメモリ4120と、外部記憶装置4160にアクセスするための外部記憶装置I/F4130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F4140と、それらを接続するバス4150とを備えて構成されている。また文書管理サーバ1100と同様に、入力装置4155、出力装置4156を備えている。
【００４６】
メモリ4120には、外部記憶装置I/F4130を制御するプログラムである外部記憶装置I/F制御プログラム4121と、ネットワークI/F4140を制御するプログラムであるネットワークI/F制御プログラム4122と、当該クライアント装置4100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ管理制御プログラム4123と、当該クライアント装置4100から文書管理サーバ1100にアクセスするために利用する文書管理サービスクライアント制御プログラム4124が格納される。文書管理サーバ1100と同様に、ＯＳ4125もメモリ4120上で実行されている。
【００４７】
文書管理サービスクライアント制御プログラム4124は、その内部に、ファイルアクセスクライアント制御サブプログラム4171と、ファイル検索クライアント制御サブプログラム4172とを備える。ファイルアクセスクライアント制御サブプログラム4171は、文書管理サーバ1100に格納されているファイルにアクセスしたり、当該文書管理サーバ1100にファイルを格納したりする処理を実行する。ファイル検索クライアント制御サブプログラム4172は、入力装置4155等を通じて与えられる検索要求に基づいて検索条件を指定して、文書管理サーバ1100に格納されているファイルを検索する処理を実行する。この場合、検索対象のファイルには、文書管理サーバ1100を介してファイルサーバ3100に格納されているファイルも含まれる。
【００４８】
なお、文書管理サービスクライアント制御プログラム4124は、利用する文書管理サーバ1100が提供するクライアントプログラムに相当する。文書管理サービスクライアント制御プログラム4124は、例えば、当該文書管理サーバ1100用のWebアプリケーションプログラムを利用する形態でもよいし、汎用のWebブラウザプログラムを利用する形態でもよい。
【００４９】
次に、認証サーバ5100の構成と機能について説明する。図８は、認証サーバ5100のハードウェア構成を例示する説明図である。認証サーバ5100は、文書管理サーバ2100等と同様に、プログラムを実行するプロセッサ5110と、プログラムならびにデータを一時的に格納するメモリ5120と、外部記憶装置5160にアクセスするための外部記憶装置I/F5130と、ネットワークで接続された他装置にアクセスするためのネットワークI/F5140と、それらを接続するバス5150とを備えて構成されている。また文書管理サーバ1100と同様に、入力装置4155、出力装置4156を備えている。
【００５０】
メモリ5120には、外部記憶装置I/F5130を制御するプログラムである外部記憶装置I/F制御プログラム5121と、ネットワークI/F5140を制御するプログラムであるネットワークI/F制御プログラム5122と、当該認証サーバ5100において保管データを管理するために利用するファイルシステムあるいはデータベースを提供するデータ管理制御プログラム5123と、当該認証サーバ5100が提供する認証機能を実現する認証制御プログラム5124が格納される。文書管理サーバ1100と同様に、ＯＳ5125もメモリ5120上で実行されている。
【００５１】
認証制御プログラム5124は、認証処理に必要な情報を提供する制御プログラム、および認証要求元から提示された情報を基に、認証対象を実際に認証する制御プログラムが該当する。例えば、ケルベロス（Kerberos）認証で利用するKDC(Key Distribution Center)サーバ、認証対象となるユーザ情報を管理して当該ユーザの認証処理時に利用するLDAP（Lightweight Directory Access Protocol）サーバ等が該当する。
【００５２】
次に、本実施形態におけるファイルのマイグレーション処理について説明する。図９は、文書管理サーバ1100からファイルサーバ3100へのファイルマイグレーション処理と、文書管理サーバ1100と検索サーバ2100とが連携した統合検索処理に関するシステム構成要素を例示する説明図である。文書管理サーバ1100は、ファイルマイグレーション制御プログラム1125を利用して、自身に格納されているファイルをファイルサーバ3100にマイグレーションさせることができる。ファイルマイグレーション制御プログラム1125は、マイグレーション対象ファイルを抽出し、対象ファイルを所定のファイルサーバ3100にマイグレーションさせる。ファイルマイグレーション制御プログラム1125は、マイグレーションさせる際、文書管理サーバ1100上のマイグレーション元ファイル7100をスタブファイルに置き換え、マイグレーション先ファイル8000にアクセスするための情報を当該スタブファイルに格納しておく。なお、スタブファイルとは、マイグレーション元ファイル7100について、そのファイルのデータのうち実体のみ削除し、そのファイルのデータのうちメタデータについては削除せずに残してあるファイルをいう。文書管理サーバ1100では、このスタブファイルに格納されている情報を利用することで、ユーザが文書管理サーバ1100に対してファイルアクセス要求を行った場合、どのファイルが実際にどこに格納されているのかについてユーザに意識させず、透過的にアクセスできるようにすることができる。もし、ユーザがマイグレーション済ファイルに対してファイルアクセス要求を行った場合、文書管理サーバ1100の内部で対象スタブファイルに格納されている情報から対象ファイルの実際の格納場所であるファイルサーバ3100と、そこでのファイルパス名を取得する。その後、当該文書管理サーバ1100は、かかるファイルサーバ3100に対して、かかるファイルパス名を指定して対象ファイルを取得する。
【００５３】
ファイルをマイグレーションさせた後、検索サーバ2100では、検索制御プログラム2124が、ファイルサーバ3100にマイグレーションによって新たなファイルが格納されたことを検知し、当該ファイルのインデックスを作成する。他方で、文書管理サーバ1100では、マイグレーションによって当該文書管理サーバ1100に格納されていたファイルが外部に移ったため、当該文書管理サーバ1100からファイルが削除されたと検知し、当該ファイルのインデックスを削除する。結果として、文書管理サーバ1100の検索インデックスデータ量を削減させ、検索サーバ2100の検索インデックスデータ量を増加させることになる。これにより、文書管理サーバ1100のストレージ容量が逼迫している場合には、格納ファイルの一部をマイグレーションさせることで、対象ファイルが消費していたストレージ容量を減らすのみならず、当該ファイルを検索するために消費していた検索インデックスデータのストレージ容量も減らすことができるようになる。すなわち、文書管理サーバ1100のストレージ容量が逼迫しても、ファイルをマイグレーションさせることでストレージ容量を有効活用することが可能になる。
【００５４】
しかし、マイグレーションによって文書管理サーバ1100のストレージ容量を有効活用できるようになる反面、マイグレーションさせたファイルは文書管理サーバ1100の検索インデックスから削除されてしまうため、文書管理サーバ1100自体では検索ができなくなる問題が生じる。そこで、文書管理サーバ1100では、統合検索制御サブプログラム1173によって、マイグレーション先ファイルをインデクシングする検索サーバ2100と連携して、統合検索をできるようにする。統合検索によって、統合検索制御サブプログラム1173は、文書管理サーバ1100内の検索制御サブプログラム1172による検索結果と、検索サーバ2100内の検索制御プログラム2124による検索結果とをあわせて取得できるようになる。文書管理サーバ1100の統合検索制御サブプログラム1173は、これらの検索結果を統合し、検索要求元に提供する。
【００５５】
統合検索を行う際、各検索サーバ2100では、送られてきた検索要求に対して、当該検索要求を発行した検索ユーザの情報も一緒に送るよう依頼する。検索サーバ2100では、送られてきた検索ユーザの情報を基に、ユーザ認証を行う。ユーザ認証を行った後、対象ユーザに付与されている権限に基づいて、検索結果のセキュリティトリミングを行う。このように、統合検索に参画する各検索サーバ2100によって、それぞれセキュリティトリミングを行うことによって、最終的にユーザに提供される統合検索結果も、セキュリティトリミングがなされた状態にすることができるようになる。もちろん、統合検索結果を生成する文書管理サーバ1100が、まとめてセキュリティトリミングを行うようにしてもよい。
【００５６】
このセキュリティトリミングを行うために、検索サーバ2100は、文書管理サーバ1100にて対象ファイルに設定されているACL情報を取得し、解釈する必要がある。しかし、文書管理サーバ1100にて利用されているACL情報は、独自のACL形式である場合がある。この場合、当該ACL情報をそのまま取得しただけでは、検索サーバ2100にて解釈できない問題がある。このため、独自のACL形式から汎用のACL形式に変換する必要がある。汎用のACL形式に変換する際、全ての情報を変換しようとすると、一部のACL情報が欠落する恐れがある。そこで、検索サーバ2100におけるセキュリティトリミングを行うために必要な情報のみを当該ACL情報から抽出し、それを汎用のACL形式に変換するようにする。
【００５７】
検索サーバ2100からは、ファイルサーバ3100に格納されているファイルをインデクシングするために、当該ファイルを取得(READ)できればよい。検索サーバ2100からは、ファイルサーバ3100に格納されているファイルに対して、更新したり削除したりする必要はないため、これらの操作に関するACL情報は不要である。
【００５８】
また、検索サーバ2100は、インデクシング対象ファイルに対して、どのユーザあるいはグループが参照（READ）可能か判別する必要がある。したがって、検索サーバ2100では、これら二つの情報を取得するために最低限必要なACL変換を行うようにする。
【００５９】
ちなみに、ファイルサーバ3100にマイグレートされたファイルに関する更新や削除操作は、文書管理サーバ1100からファイルサーバ3100に対して行うようにすればよい。この場合、文書管理サーバ1100では、対象ファイルに関するアクセス制御を独自のACL形式によって行っているため、それに従ってアクセス制御をすればよい。また、ファイルサーバ3100では、文書管理サーバ1100から要求されたファイル更新や削除要求は、そのまま実行できるようにアクセス制御できればよい。
【００６０】
次に、文書管理サーバ1100に格納されるファイルについて説明する。図10は、文書管理サーバ保管ファイル7000のデータ構造を例示する説明図である。文書管理サーバ保管ファイル7000は、ファイルメタデータ7010と、ファイルデータ7020とからなる。ファイルメタデータ7010は、ファイル識別情報7011、文書管理サーバ1100のACL7012を含む。なお、この図には記載していないが、このファイルメタデータ7010には、ファイル作成日時、最新更新日時等の通常ファイルに付帯されるメタデータも含まれる。文書管理サーバ1100のACL7012は、ユーザ/グループ識別情報7013と、操作内容7014と、許可/不許可指定フラグ7015とを含めて一つの組とした複数組からなる。この組によって、ユーザ/グループ識別情報7013によって指定されたユーザあるいはグループは、操作内容7014によって指定された操作を、許可/不許可指定フラグ7015によって許可もしくは不許可にすることができる。この組を複数個登録することで、複数条件を組み合わせたアクセス制御を行うことができるようになる。また、この操作内容7014については、当該文書管理サーバ1100によって規定されている独自のACL形式に基づいた操作内容を個別に規定することができる。ファイルデータ7020には、対象ファイルの実際のデータが格納される。
【００６１】
なお、文書管理サーバ保管ファイル7000がマイグレーション済であることを示すスタブファイル7100であった場合は、マイグレーション先の格納情報をどこかに格納する必要がある。ここでは、ファイルメタデータ7010の一要素として格納するようにしてもよいし、ファイルデータ7020として格納するようにしてもよい。
【００６２】
次に、ファイルサーバ3100に格納されるファイルについて説明する。図11は、ファイルサーバ保管ファイル8000のデータ構造を例示する説明図である。ファイルサーバ保管ファイル8000は、ファイルメタデータ8010と、ファイルデータ8020とからなる。ファイルメタデータ8010は、ファイル識別情報8011、ファイルサーバのACL8012を含む。なお、この図には記載していないが、このファイルメタデータ8010には、ファイル作成日時、最新更新日時等の通常のメタデータも含まれる。ファイルサーバ3100のACL8012は、ユーザ/グループ識別情報8013と、操作内容8014と、許可/不許可指定フラグ8015とを含めて一つの組とした複数組からなる。この組によって、ユーザ/グループ識別情報8013によって指定されたユーザあるいはグループは、操作内容8014によって指定された操作を、許可/不許可指定フラグ8015によって許可もしくは不許可にすることができる。この組を複数個登録することで、複数条件を組み合わせたアクセス制御を行うことができるようになる。また、この操作内容8014については、汎用ACL形式に基づいた操作内容を指定する。例えば、汎用ACLの形式として、POSIX ACLの形式や、NTFS ACLの形式などがある。また、ACL形式ではないが、Linux（登録商標） OSなどで利用されているファイルシステムにおけるファイルアクセス制御情報として存在するアクセスパーミッション情報を指定するようにしてもよい。このアクセスパーミッション情報とは、対象ファイルの所有ユーザ、所属グループ、所属グループ外のユーザそれぞれについて、当該ファイルに対するREAD操作、WRITE操作、あるいはEXECUTE操作を許可するか否かを指定するものである。
【００６３】
ファイルデータ8020には、対象ファイルの実際のデータが格納される。対象ファイルが文書管理サーバ1100からマイグレーションしてきた場合は、図11に示すような構成になる。ファイルデータ8020の中は、文書管理サーバ格納ファイル7000のメタデータとして、文書管理サーバ1100のファイルメタデータ7010と、当該文書管理サーバ1100のファイルデータ7020とからなる。文書管理サーバ1100のファイルメタデータ7010の内部構成は、前述の通りであるため、ここでの説明は省略する。
【００６４】
なお、対象ファイルが文書管理サーバ1100からマイグレーションしてきた場合、図11に示す構成以外の構成も考えることができる。例えば、文書管理サーバ1100のファイルメタデータ7010を、ファイルメタデータ8010の一要素として格納する構成をとるようにしてもよい。
【００６５】
次に、検索インデックス管理表6100について説明する。図12は、文書管理サーバ1100または検索サーバ2100上で管理される検索インデックス管理表6100の構成を例示する図である。検索インデックス管理表6100では、文書管理サーバ1100または検索サーバ2100が作成した検索インデックスの情報を管理する。具体的に、検索インデックス管理表6100は、構成情報として、キーワード6110と、該当位置情報6120とを含む。
【００６６】
キーワード6110は、対象ファイルをインデクシング処理にて解析して得られた文字列を格納する。該当場所情報6120は、当該キーワード6110の文字列が存在するファイルの情報を登録する。この該当場所情報6120は、ファイル識別情報6121、6124と、該当位置オフセット6122、6125と、重み付け6123、6126という構成要素からなる。ファイル識別情報6121、6124は、当該キーワードの文字列が出現するファイルを識別するための情報を登録する。具体的には、後述する検索インデックス登録ファイル管理表6200におけるファイル識別情報6210の欄に登録されている情報を登録してもよいし、対象ファイルに実際にアクセスするときのファイルパス名やファイル識別子でもよい。該当位置オフセット6122、6125は、当該ファイルの中で、キーワードの文字列が出現するオフセット情報を登録する。この欄では、一つのファイルで複数箇所に当該キーワードが出現する場合、複数個のオフセット情報を登録する。重み付け6123、6126は、当該ファイルの当該オフセットにおいて、当該キーワードの文字列が出現することによる重要度の値を登録する。この重要度の値は、文書管理サーバ1100または検索サーバ2100が適宜設定する。この値は、大きければ大きいほど重要だという意味づけを行う。また、この値は、検索結果の絞り込みや整列に利用できるようにする。ここで、該当位置情報6120については、一つのキーワード6110に対して複数個登録可能にする。これにより、キーワード文字列に該当するファイルが複数存在する場合にも対応できるようにする。なお、該当位置情報6120の欄において、該当するエントリの値が無効であることを意味するnull値を登録することもできる。これは、該当位置情報6120の欄において、登録数が他のエントリより少ない場合に、項目が空いてしまうエントリに対して利用することができる。
【００６７】
次に、検索インデックス登録ファイル管理表6200について説明する。図13は、文書管理サーバ1100または検索サーバ2100上で管理する検索インデックス登録ファイル管理表6200の構成を例示する図である。検索インデックス登録ファイル管理表6200では、当該文書管理サーバ1100または検索サーバ2100が検索インデックス作成対象とする文書管理サーバ1100またはファイルサーバ3100から取得したファイルに関する情報を管理する。具体的に、検索インデックス登録ファイル管理表6200は、ファイル識別情報6210と、ファイルパス名6220と、ACL情報6230と、メタデータ6240という構成要素からなる。
【００６８】
ここで、ファイル識別情報6210は、文書管理サーバ1100または検索サーバ2100が検索インデックス作成のために取得したファイルを一意に識別するための識別子である。当該文書管理サーバ1100または検索サーバ2100が付与する通番でもよいし、当該ファイルを取得した文書管理サーバ1100またはファイルサーバ3100が付与した通番でもよい。なお、通番以外にも、識別に利用可能な文字列を利用するようにしてもよい。ファイルパス名6220は、対象ファイルが格納されているファイルパス名に相当する。これにより、文書管理サーバ1100または検索サーバ2100は、当該ファイルパス名6220を指定してファイルサーバ3100にファイル取得要求を出すことで、当該ファイルを取得することができる。ACL情報6230は、対象ファイルをインデクシングした際にメタデータの一要素として取得したACL情報に相当する。ACL情報6230は、ユーザ/グループ識別情報6231と、操作内容6232と、許可/不許可指定フラグ6233とを含めて一つの組とした複数組からなる。この組によって、ファイル識別情報6210で特定されるファイルについて、ユーザ/グループ識別情報6231によって指定されたユーザあるいはグループに対し、操作内容6232によって指定された操作を、許可/不許可指定フラグ6233によって許可もしくは不許可にすることができる。この組を複数個登録することで、複数条件を組み合わせたアクセス制御を行うことができるようになる。また、この操作内容6232については、当該文書管理サーバ1100によって規定されている独自のACL形式に基づいた操作内容を個別に規定するようにしてもよいし、汎用ACLの形式に基づいた操作内容を指定するようにしてもよい。例えば、図において、操作内容6232が”R”は読み出しアクセス(READアクセス)を意味し、”W”は書き込みアクセス(WRITEアクセス)を意味し、”D”は削除(DELETE)を意味している。もちろん、この形式に従う必要は必ずしもなく、これ以外の形式を利用してもよい。最後に、メタデータ6240は、対象ファイルをインデクシングした際に取得したメタデータを格納する。
【００６９】
次に、ACL変換情報管理表6300について説明する。図14は、検索サーバ2100上で管理するACL変換情報管理表6300の構成を例示する図である。ACL変換情報管理表6300では、文書管理サーバ1100にて設定されたACL情報を検索サーバ2100でも解釈可能な形式のACL情報に変換するための対応情報を管理する。具体的に、ACL変換情報管理表6300は、変換前のACL情報6310と、変換後のACL情報6320という構成要素からなる。
【００７０】
変換前のACL情報6310ならびに変換後のACL情報6320は、それぞれユーザ/グループ識別情報6311、6321と、操作内容6312、6322と、許可/不許可指定フラグ6313、6323という構成要素を持つ。変換前のACL情報6310の構成要素は、図10で説明した文書管理サーバ1100で利用されるACL7012と同じである。また、変換後のACL情報6320の構成要素は、図11で説明したファイルサーバ3100のACL8012と同じである。変換前のACL情報6310には、文書管理サーバ1100で利用されている独自のACL形式に基づいた操作内容6312を登録することができる。一方、変換後のACL情報6320には、ファイルサーバ3100などで利用されている汎用のACL形式に基づいた操作内容6322を登録することができる。
【００７１】
図14を参照する処理では、変換前のACL情報6310として登録されている内容と同じACL情報があったら、変換後のACL情報6320として登録されている内容にACL情報を変換することを意味する。これにより、ファイルサーバ3100からマイグレーションファイルを読み出して、文書管理サーバ1100にて設定された独自形式のACL情報を取得した際、この表を利用して、検索サーバ2100で利用可能なACL形式に変換する。例えば、この図14では、変換前のACL情報6310として、ユーザ/グループ識別情報6311に”X1”を、操作内容6312に”READ”を、許可/不許可指定フラグ6313に”Y1”が登録されている様子を示している。これを基に、対象ファイルに登録されている独自形式のACL情報を読み出し、操作内容が”READ”となっているエントリを探す。もし、見つかれば、当該変換前のACL情報6310に対応する変換後のACL情報6320にACL情報を変換する。すなわち、操作内容6312が”READ”となっているユーザ/グループ識別情報6311ならびに許可/不許可指定フラグ6313と同じ情報を、変換後のACL情報6320のユーザ/グループ識別情報6321ならびに許可/不許可指定フラグ6323に設定する。また、これに加えて、変換後のACL情報6320として、ユーザ/グループ識別情報6321には利用検索サーバ2100の識別情報、許可/不許可指定フラグ6323には、変換前の許可/不許可指定フラグ6313の値を設定する。これにより、変換前のACL情報6310によってREAD操作が許可あるいは不許可とされているユーザまたはグループに対して、変換後のACL情報6320としてREAD操作を許可あるいは不許可として設定することができる。さらに、当該ファイルに対してREADが許可されているユーザあるいはグループが存在する限り、検索インデックスを作成する検索サーバ2100からのREAD操作を許可あるいは不許可に設定することが可能になる。なお、変換前のACL情報6310の操作内容6312として、図14の”SEARCH”のような抽象度が高い内容が記録されている場合、変換後のACL情報6320では、汎用ACL形式でも利用される”READ”といった一般的操作内容が記録される。
【００７２】
ここまでに、本発明の一実施形態によって提供されるシステムの構成、ファイルのデータ構造、管理情報の構成について説明した。以降では、本発明の一実施形態によって実現される処理方式について説明する。ここでは、ファイルマイグレーション処理（図15）、インデックス更新処理（図16）、統合検索要求処理（図17）、およびファイル更新処理（図18）について図面を参照しながら説明する。
【００７３】
図15は、文書管理サーバ1100からファイルサーバ3100へのファイルマイグレーション処理のフローを示す。ファイルマイグレーション処理は、ファイルマイグレーション制御プログラム1125によって実行される。はじめに、文書管理サーバ1100は、自身の中に格納されているファイルの中から、ファイルサーバ3100にマイグレーションさせる対象となるファイル群を選定する(S101)。ここで、マイグレーション対象ファイルの選定方法は、どのような方法でもよい。例えば、対象ファイルが作成されてから規定の日数が経過したファイルを選定するようにしてもよいし、対象ファイルが最後にアクセスされてからの経過日数が規定の日数を経過したファイルを選定するようにしてもよい。マイグレーション対象ファイルを選定した後、文書管理サーバ1100は、対象ファイル全てをマイグレーションさせたかどうかを調べる(S102)。全てのファイルをマイグレーションさせたと判定した場合(処理S102でYesの場合)は、本処理を終了する。全てのファイルをマイグレーションさせていないと判定した場合(処理S102でNoの場合)は、以降で説明する処理を行う。
【００７４】
次に、文書管理サーバ1100は、マイグレーション対象ファイルの中から任意のファイルを一つ選択する(S103)。その後、文書管理サーバ1100は、対象ファイルのメタデータ(ACL情報を含む)とファイルデータをマイグレーション先となるファイルサーバ3100に転送する(S104)。当該転送要求を受け取ったファイルサーバ3100は、当該ファイルを自身の中に格納すると共に、対象ファイルの格納場所情報を要求元である文書管理サーバ1100に送信する。その後、文書管理サーバ1100は、対象ファイルのマイグレート先格納情報を含むスタブファイルを作成し、対象ファイルとの置き換えを行う(S105)。以上の処理により、文書管理サーバ1100上でマイグレーション対象として選定されたファイルを、ファイルサーバ3100にマイグレーションさせることが可能になる。
【００７５】
なお、対象ファイルをマイグレーションさせた後、文書管理サーバ1100の検索制御サブプログラム1172によって、当該文書管理サーバ1100に格納されているファイルのインデックス更新を行う際に、マイグレーションしたファイルは既に当該文書管理サーバ1100には存在しないため、インデックスから削除されることになる。
【００７６】
次に、インデックス更新処理について説明する。図16は、検索サーバ2100において検索制御プログラム2124が実行する検索用のインデックス更新処理における処理のフローを示す。はじめに、検索サーバ2100は、インデクシング対象ファイル群をクローリングし、インデックス更新が必要なファイル群を抽出する(S201)。ここで、検索サーバ2100がクローリングを行うのは、検索対象ファイルが格納されるファイルサーバ3100とする。また、インデックス更新が必要であるか否かは、前回インデクシング更新時から当該ファイルが更新されているか否かで判断することができる。次に、検索サーバ2100は、インデックス更新が必要なファイル全てに以降で説明する処理を行ったか調べる(S202)。全てのファイルについて処理が終わっていると判定した場合は（S202、Yes）、本処理を終了する。全てのファイルについて処理が終わっていないと判定した場合は（S202、No）、以降で説明する処理を行う。
【００７７】
次に、検索サーバ2100は、インデックス更新対象ファイルの中から任意のファイルを一つ選択する(S203)。ここで選んだファイルに対して、以降の処理を行う。次に、検索サーバ2100は、対象ファイルをファイルサーバ3100から取得する(S204)。次に、検索サーバ2100は、対象ファイルのメタデータ(ACL情報を含む)とファイルデータを取得する(S205)。ここで取得する情報の中には、ファイルサーバ3100にて設定された汎用形式のACL情報や、文書管理サーバ1100にて設定された独自形式のACL情報も含む。次に、検索サーバ2100は、対象ファイルがマイグレーションされたファイルか否かを調べる(S206)。対象ファイルがマイグレーションファイルであると判定した場合は（S206、Yes）、処理S207に遷移し、マイグレーションファイルでないと判定した場合は（S206、No）、処理S208に遷移する。対象ファイルがマイグレーションファイルか否かを確認するためには、当該ファイルに格納されているデータ本体の書式を調べる方法、ファイルメタデータにマイグレーションファイルであることを示す属性情報が含まれているかを調べる方法等を利用することが考えられる。前者の場合は、ファイルデータ内のデータ構造が図11の通りかどうかを確認し、そうであればマイグレーションファイルと判断するようにしてもよい。また、後者の場合は、ファイルメタデータの属性として、マイグレーションファイルであることを示す属性を、当該ファイルをファイルサーバ3100上で作成して格納するときに設定するようにしてもよい。検索サーバ2100は、当該属性をもとに、マイグレーションファイルか否かを判断できるようになる。
【００７８】
処理S206にて、対象ファイルがマイグレーションファイルであると判断した場合、検索サーバ2100は、対象ファイルの文書管理サーバ1100にて設定されたACL情報の中から、検索サービスに必要な情報を当該検索サーバ2100で解釈可能な形式に変換する(S207)。ここでは、図14で説明したACL変換情報管理表6300に登録されている情報を利用して、この変換を行うようにする。最後に、検索サーバ2100は、クロールして取得した対象ファイルの内容をもとに、インデックスを更新する(S208)。ここで、対象ファイルからインデックスを差分更新するための情報を抽出してインデックスを更新するようにしてもよいし、対象ファイルからインデックス作成用の情報を抽出してインデックスを上書き更新するようにしてもよい。また、上記の処理S207を行った場合、インデックス更新時においてインデックスに反映させるACL情報は、当該処理によって生成した変換後のACL情報を利用する。処理S208の処理が終わったら、処理S202に戻って以降の処理を続ける。
【００７９】
次に、統合検索処理について説明する。図17は、文書管理サーバ1100と検索サーバ2100による統合検索処理における処理のフローを示す。はじめに、文書管理サーバ1100は、統合検索を要求した検索ユーザから指定された検索キーワードなどの検索条件、検索ユーザの情報を取得する(S301)。次に、文書管理サーバ1100は、検索ユーザのユーザ認証を実施する(S302)。ここで行うユーザ認証処理は、当該文書管理サーバ1100内において、当該検索ユーザの情報を解釈して認証するようにしてもよいし、認証サーバ5100に対してユーザ認証処理を要求してその結果を取得するようにしてもよい。ユーザ認証処理の結果、当該検索ユーザが正当なユーザであると判断された場合(S303、Yes)は、処理S304以降の処理を行う。他方、当該検索ユーザが正当なユーザではないと判断された場合(S303、No)は、認証失敗として本処理を終了する。
【００８０】
ユーザ認証に成功した後、文書管理サーバ1100は、統合検索する検索サーバ2100に対して、検索条件および検索ユーザの情報を指定して検索を要求する(S304)。ここで、文書管理サーバ1100は、検索転送クライアント制御サブプログラム1174を利用して検索サーバ2100に対して検索要求を出す。また、検索サーバ2100は、検索転送サーバ制御プログラム2125を利用して当該検索要求を受信し、以降で説明する処理を行なうようにする。
【００８１】
上記の検索要求を受けた検索サーバ2100は、はじめに、指定された検索キーワードなどの検索条件、および検索ユーザの情報を取得する(S305)。ここで扱う検索ユーザの情報は、もともと統合検索を要求した検索ユーザの情報を利用する。
【００８２】
次に、検索サーバ2100は、検索ユーザのユーザ認証を実施(S306)し、正当なユーザか否かを確認する（S307）。ここで行うユーザ認証処理は、当該検索サーバ2100内において、当該検索ユーザの情報を解釈して認証するようにしてもよいし、認証サーバ5100に対してユーザ認証処理を要求してその結果を取得するようにしてもよい。ユーザ認証処理の結果、当該検索ユーザが正当なユーザであると判断された場合(S307、Yes)は、処理S308以降の処理を行う。他方、当該検索ユーザが正当なユーザではないと判断された場合(S307、No)は、認証失敗として処理S310以降の処理を行う。
【００８３】
ユーザ認証に成功した後、検索サーバ2100は、自サーバのインデックスより、指定された検索条件に合致するファイル一覧を検索結果として作成する(S308)。検索結果を作成した後、検索サーバ2100は、当該検索結果に対してセキュリティトリミングを実施する(S309)。ここでは、図13で説明した検索インデックス登録ファイル管理表6200に登録されている情報を利用して、当該検索結果に含まれているファイルが、当該検索ユーザによってREAD操作が可能かどうかを調べる。もし、READ操作権限がない場合は、検索結果から当該ファイルの情報を削除する。なお、処理S309にて行うセキュリティトリミングを、処理S308における検索結果を作成する処理の中で行うようにしてもよい。
【００８４】
その後、検索サーバ2100は、検索結果を要求元である文書管理サーバ1100に応答する(S310)。なお、処理S307にて、当該検索ユーザが正当なユーザではないと判断された場合、すなわち認証失敗した場合は、ユーザ認証に失敗したことに加えて、当該検索サーバ2100の検索結果件数は0件として文書管理サーバ1100に応答する。
【００８５】
検索サーバ2100からの応答を受けた文書管理サーバ1100は、自サーバのインデックスより、指定された検索条件に合致するファイル一覧を検索結果として作成する(S311)。検索結果を作成した後、文書管理サーバ1100は、当該検索結果に対してセキュリティトリミングを実施する(S312)。ここでは、前述したのと同様に、図13で説明した検索インデックス登録ファイル管理表6200に登録されている情報を利用して、当該検索結果に含まれているファイルが、当該検索ユーザによってREAD操作が可能かどうかを調べる。もし、READ操作権限がない場合は、検索結果から当該ファイルの情報を削除する。なお、処理S312にて行うセキュリティトリミングを、処理S311における検索結果を作成する処理の中で行うようにしてもよい。
【００８６】
次に、文書管理サーバ1100は、処理S309ならびにS312によって取得した検索結果を統合し、統合検索結果としてまとめる(S313)。ここで、文書管理サーバ1100が複数の検索結果をどのように統合するのかについては、様々な方法を適用することができる。例えば、検索サーバごとに検索結果の重み付けを事前に行い、その情報に基づいて統合検索結果のランク付けをするようにしてもよい。また、文書管理サーバ1100や検索サーバ2100にて共通のランク付けをできるようにした上で、当該ランク情報を利用して統合検索結果のランク付けをするようにしてもよい。最後に、検索サーバ2100は、統合検索結果を要求元である検索ユーザに応答する(S314)。
【００８７】
次に、ファイル更新処理について説明する。図18は、文書管理サーバ1100で実行されるファイル更新処理における処理のフローを示す。はじめに、文書管理サーバ1100は、更新対象ファイルが当該文書管理サーバ1100に格納されているかどうかを調べる(S401)。更新対象ファイルが当該文書管理サーバ上にて格納されていると判定した場合(S401、Yes)は、当該文書管理サーバ1100にて対象ファイルを更新し(S402)、本処理を終了する。更新対象ファイルが当該文書管理サーバ1100上に格納されていないと判定した場合(S402、No)、更新対象ファイルが格納されているファイルサーバ3100を特定する(S403)。ここで、ファイルサーバ3100を特定するためには、文書管理サーバ1100にあるスタブファイルに格納されているマイグレーション先ファイル格納場所情報を調べる。その後、文書管理サーバ1100は、かかるファイル更新処理に伴って、更新対象ファイルをファイルサーバ3100から文書管理サーバ1100にマイグレートさせるかどうかを判断する(S404)。ここで、マイグレートさせるかどうかの判断は、システム設定情報として固定しておくようにしてもよいし、ファイル単位で決めることができるようにしてもよい。
【００８８】
処理S404において、更新対象ファイルを文書管理サーバ1100にマイグレートさせると判定した場合(S404、Yes)、文書管理サーバ1100は、ファイルサーバ3100から更新対象ファイルを取得し、ファイルサーバ3100上の更新対象ファイルを削除するよう要求する(S405)。次に、文書管理サーバ1100は、更新対象ファイルに対応するスタブファイルを、先の処理で取得したファイルに置き換える(S406)。最後に、文書管理サーバ1100は、更新対象ファイルを更新する(S407)。
【００８９】
一方、処理S404において、更新対象ファイルを文書管理サーバ1100にマイグレートさせないと判定した場合(S404、No)、文書管理サーバ1100は、更新対象ファイルのスタブファイルのメタデータを更新する(S408)。ここでは、更新対象ファイルの最終更新日時に関するメタデータを、あるいは当該更新処理がメタデータの更新である場合には当該メタデータを更新する。次に、文書管理サーバ1100は、更新対象ファイルが格納されているファイルサーバ3100に、ファイル更新内容を転送する(S409)。ここでは、ファイルマイグレーション制御プログラム1125が、ファイル更新内容を転送する。最後に、ファイル更新内容を転送されたファイルサーバ3100は、転送されてきた更新内容に基づいて、更新対象ファイルを更新する(S410)。
【００９０】
以上の処理により、ファイル更新処理を実現する。このファイル更新処理によって、ファイルサーバ3100にマイグレーションしたファイルを、ファイル更新処理を契機に文書管理サーバ1100に戻す場合、ならびに文書管理サーバ1100に戻さずにスタブファイルを維持する場合ともに対応することが可能である。
【００９１】
以上、本発明の実施例１について説明したが、本発明はこの実施例１に限定されることなくその趣旨を逸脱しない範囲内で種々の構成をとることができることは言うまでもない。
【００９２】
［実施例２］
次に、本実施形態の他の実施例について説明する。実施例１は、文書管理サーバ1100に格納されたファイルのアクセス制御ならびに検索サーバ2100による検索結果のセキュリティトリミングを、ファイル単位に設定されたACL情報をもとに行うことを前提とする形態を扱っている。しかし、文書管理サーバ1100にて大量のファイルを管理しようとする場合は、ファイルごとにACL情報を設定したり更新したりすることは非常に工数のかかる作業となり、実施困難な場合が多い。大量のファイルに対して、ACL情報を効率よく設定したり更新したりするために、一般的にACL継承機能を利用することが多い。ACL継承機能とは、複数のファイルを格納可能なディレクトリを木構造で階層的に管理する環境において、任意のディレクトリについて設定したACL情報を、そのサブディレクトリや格納ファイルに継承させて反映させることができる機能である。このACL継承機能を利用することで、大量ファイルのACL情報を一括して効率よく更新することが可能になる。
【００９３】
ここで、文書管理サーバ1100においてACL情報を一括して更新する場合、検索サーバ2100が更新対象ファイルに対するインデックス更新も行う必要がある。ここでは、従来のように、検索サーバ2100が更新対象ファイルをクローリング処理によって特定することも可能である。しかし、一括して大量のファイルが更新されると、それに伴うインデックス更新処理も高負荷になってしまう問題がある。このため、一括更新処理がなされた時に、効率よくACL変更内容を検索インデックスに反映可能にする仕組みが必要不可欠である。そこで、以降では、ACL継承機能を利用して文書管理サーバ1100に格納されているファイルのACL情報を一括更新する場合にも、検索サーバ2100において検索結果のセキュリティトリミングを実施するために必要なACL一括更新情報を効率よく反映させる制御方法を実施例２として説明する。
【００９４】
上述のように、ACL一括更新情報を効率よく反映させるためには、文書管理サーバ1100において、ACL一括更新内容を検索サーバ2100に通知する機能、検索サーバ2100においてACL一括更新内容通知を受けて検索インデックスに反映させる処理、およびACL一括更新に関する情報を管理するための管理表を新たに追加する必要がある。これらの追加内容ならびに変更内容を、図１９、図２０、図２１、図２２、図２３、図２４を参照して説明する。
【００９５】
図１９は、図４で説明した文書管理サーバ1100のハードウェア構成を例示する説明図における構成上の変更内容を示す。図１９では、図４の構成要素に加えて、文書管理制御プログラム1124内にACL一括更新通知送信制御サブプログラム1176を新たに追加している。他の構成要素は、変更されていない。ここでは、新たに追加した構成要素について説明する。
【００９６】
ACL一括更新通知送信制御サブプログラム1176は、文書管理サーバ1100において、格納ファイルに対してACL継承機能を利用してACL情報を一括更新する場合において、当該一括更新内容を検索サーバ2100に通知する処理を行う。この具体的な処理フローについては、後述する。
【００９７】
図２０は、図５で説明した検索サーバ2100のハードウェア構成を例示する説明図における構成上の変更内容を示す。図２０では、図５の構成要素に加えて、ACL一括更新通知受信制御プログラム2127を新たに追加している。またACL一括変更処理に使用する管理表として、ACL継承範囲管理表6400およびACL一括更新内容管理表6500を新たに追加している。他の構成要素は、変更されていない。ここでは、新たに追加した構成要素について説明する。
【００９８】
ACL一括更新通知受信制御プログラム2127は、検索サーバ2100において、文書管理サーバ1100から通知されてきたACL一括更新内容を受信し、当該情報を後述の管理表に登録の上、当該更新情報を利用して、ファイルサーバ2100をクローリングすることなく検索インデックスを更新する処理を行う。この具体的な処理フローについては、後述する。
【００９９】
図２１は、検索サーバ2100上で管理するACL継承範囲管理表6400の構成を例示する図である。ACL継承範囲管理表6400では、文書管理サーバ1100がACL継承機能を利用したACL継承範囲に関して設定した設定情報を管理する。ACL継承範囲管理表6400には、文書管理サーバ1100のACL一括更新通知送信制御サブプログラム1176から通知されてきた内容をもとに情報を登録する。具体的には、ACL継承範囲管理表6400は、継承元ディレクトリ論理パス名6410と、継承元ディレクトリ論理パス名6420と、継承範囲6430という構成情報を備える。
【０１００】
継承元ディレクトリ論理パス名6410は、ACL継承機能を利用してACL一括更新を行う基点となるディレクトリのパス名情報を登録する。ここに登録するパス名は、文書管理サーバ1100上で、対象ディレクトリにアクセスするためのパス名を登録する。継承元ディレクトリ物理パス名6420は、ACL一括更新を行う基点となるディレクトリに関して、当該ディレクトリを実際に格納しているファイルサーバ3100におけるパス名情報を登録する。ここに登録するパス名は、対象ディレクトリを格納しているファイルサーバ3100の識別情報と、対象ディレクトリのパス名とを組み合わせた情報を登録するようにしてもよい。継承範囲6430は、前述の継承元ディレクトリ論理パス名6410で指定するディレクトリを基点として、どの範囲までACL情報を継承させて反映させるのかを規定する。例えば、図に示すように、”全てのファイルとサブディレクトリ”と規定した場合は、基点となるディレクトリに含まれる全てのファイルやサブディレクトリに対してACL情報を継承させる。また、”直下のファイルのみ”と規定した場合は、基点となるディレクトリ自身に格納されているファイルのみに対してACL情報を継承させる。ここに、”null”を規定した場合は、継承範囲がないことを意味する。この”null”は、継承の基点となるディレクトリではACL情報を継承するような設定にしていても、配下の全てのファイルやサブディレクトリが上位ディレクトリからの継承を受け付けずに、個別にACL情報を設定する場合に利用する。
【０１０１】
図２２は、検索サーバ2100上で管理するACL一括更新内容管理表6500の構成を例示する図である。ACL一括更新内容管理表6500では、文書管理サーバ1100がACL継承機能を利用して行ったACLの一括更新処理に関する設定情報を管理する。この表には、文書管理サーバ1100のACL一括更新通知送信制御サブプログラム1176から通知されてきた内容をもとに情報を登録する。具体的に、ACL一括更新内容管理表6500は、更新対象継承元ディレクトリパス名6510と、更新内容6520と、更新発生日時6530と、更新処理状況6540という構成情報を備える。
【０１０２】
更新対象継承元ディレクトリパス名6510は、ACL一括更新処理において、基点となるディレクトリのパス名情報を登録する。ここに登録するパス名は、図２１で説明した継承元ディレクトリ論理パス名6410と同じ情報を登録する。更新内容6520は、当該ACL一括更新処理におけるACL更新内容に関する情報を登録する。例えば、図２２に示すように、”Userid=1000のユーザの全アクセス権を削除”と登録した場合は、ACL継承範囲となるファイルやサブディレクトリに対して、Useridが1000番のユーザに関するアクセス許可操作を全て不許可にするよう、ACL情報を更新する。このUseridは、対象となるユーザを識別可能な情報であればどのような形式でもよい。また、この更新内容6520には、ACL情報の更新内容がわかる情報であれば、どのような情報を登録してもよい。例えば、実際にACL情報を更新するときのコマンドの内容を登録するようにしてもよい。更新発生日時6530は、当該ACL一括更新要求が発生した日時に関する情報を登録する。更新処理状況6540は、当該ACL一括更新通知を受信してからの当該検索サーバ2100における処理状況に関する情報を登録する。例えば、”インデックス未反映”と登録されている場合は、当該ACL一括更新処理を受けた検索インデックスの更新処理が未完了であることを示す。また、”インデックス反映済”と登録されている場合は、当該ACL一括更新処理を受けた検索インデックスの更新処理が完了済であることを示す。
【０１０３】
以上説明した構成の変更内容を踏まえて、まず、文書管理サーバ1100におけるACL一括更新処理について説明する。図２３は、文書管理サーバ1100におけるACL一括更新処理のフローを示す。はじめに、文書管理サーバ1100は、ACL更新対象のディレクトリがACL継承機能の継承元ディレクトリであるかを調べる(S501)。ここでは、継承元ディレクトリであるかは、対象ディレクトリのメタデータを参照することにより行う。更新対象ディレクトリが継承元ディレクトリではないと判断した場合(処理S501、No)、文書管理サーバ1100は、対象ディレクトリのACLを更新して(S502)、本処理を終了する。この場合、更新対象ディレクトリはACL継承不要であるため、通常のACL更新処理のみを行うようにする。
【０１０４】
更新対象ディレクトリが継承元ディレクトリであると判断した場合(処理S501、Yes)、文書管理サーバ1100は、検索サーバ2100に対してACL一括更新情報を通知する(S502)。ここでは、文書管理サーバ1100のACL一括更新通知送信制御サブプログラム1176が、検索サーバ2100に対してかかるACL一括更新情報を送信する。ACL一括更新情報の送り先となる検索サーバ2100の決定方法については、検索転送クライアント制御サブプログラム1174が検索要求を転送する検索サーバ2100全てに送るようにしてもよいし、その検索サーバ2100群の中から、ACL一括更新対象となるファイルあるいはディレクトリが格納されているファイルサーバ3100を絞り込んで、そこに情報を送るようにしてもよい。また、ここで通知する内容には、図２１ならびに図２２で示した、ACL継承範囲管理表6400およびACL一括更新内容管理表6500に記録されている情報を含めるようにする。ACL一括更新情報を通知した後、文書管理サーバ1100は、自身に格納されている対象ディレクトリのACL情報を更新する(S503)。ここで、文書管理サーバ1100は、更新対象ディレクトリのACL情報だけでなく、当該ディレクトリを基点とした継承範囲に含まれるディレクトリやファイルにも更新内容を伝播させ、反映させるようにする。
【０１０５】
次に、検索サーバ2100におけるACL一括更新通知受信処理について説明する。図２４は、検索サーバ2100におけるACL一括更新通知受信処理のフローを示す。はじめに、検索サーバ2100において、受信したACL一括更新通知情報は、当該検索サーバ2100がインデクシング対象としているディレクトリあるいはファイルを含んでいるかどうかを調べる(S601)。ここでは、ACL一括更新通知情報に含まれる継承元ディレクトリのパス名と、継承範囲の情報をもとに、当該検索サーバ2100に格納されているファイル、ディレクトリが更新対象に含まれているかどうかを調べるようにすればよい。インデクシング対象に含んでいないと判断した場合(処理S601、No)、検索サーバ2100は、当該通知情報を破棄して(S602)、本処理を終了する。この場合、当該検索サーバ2100では、かかるACL一括更新処理によって検索インデックスを更新する必要がないため、当該通知情報を破棄しても問題ない。
【０１０６】
インデクシング対象に含まれると判断した場合(処理S601、Yes)、検索サーバ2100は、当該通知情報をACL一括更新内容管理表6500に登録する(S603)。ここで、更新処理状況6540の欄には、”インデックス未反映”という情報を登録する。次に、検索サーバ2100は、今回のACL一括更新処理において、ACL継承範囲の更新があるかどうかを調べる(S604)。ここでは、当該通知情報に含まれる今回のACL継承範囲に関する情報が、ACL継承範囲管理表6400に既に登録されている内容から変更があるのか否かを調べるようにする。ACL継承範囲の更新がないと判断した場合(処理S604、No)、後述する処理S606に遷移する。ACL継承範囲の更新があると判断した場合(処理S604、Yes)、検索サーバ2100は、ACL継承範囲管理表6400を更新する(S605)。ここでは、処理S604における処理によって明らかになった変更内容を、ACL継承範囲管理表6400に反映させる。
【０１０７】
次に、検索サーバ2100は、ACL一括更新内容管理表6500に登録されたACL一括更新情報の中から、検索サービスに必要な情報を当該検索サーバで解釈可能な形式に変換する(S606)。ここで、検索サービスに必要な情報とは、当該検索サーバ2100において、検索結果に対するセキュリティトリミングを行うために必要なACL情報が相当する。また、ここでACL情報を解釈可能な形式に変換する時には、ACL変換情報管理表6300に登録されている情報を利用した上で、図１６の処理S207にて説明した処理と同様の処理を行うようにすればよい。その後、検索サーバ2100は、当該一括更新情報をもとに、ファイルサーバ3100をクローリングせずに、検索インデックスを更新する(S607)。ここでは、インデックス更新対象となる情報は、当該ACL一括更新処理によって更新されたACL情報のみである。この情報を検索インデックス更新用の差分情報として利用して、検索サーバ2100の検索インデックスを更新する。したがって、検索サーバ2100は、ファイルサーバ3100から検索対象ファイルを読み出す必要はない。最後に、検索サーバ2100は、処理状況をACL一括更新内容管理表6500に反映させる(S608)。ここで、検索インデックスへの反映が終わっている状態であれば、更新処理状況6540の欄には、”インデックス反映済”という情報を登録する。検索インデックスへの反映途中であれば、”インデックス反映中”という情報を登録し、反映処理が途中で失敗して終了した場合は、”インデックス反映失敗終了”という情報を登録してもよい。なお、ACL一括更新内容管理表6500において、”インデックス反映済”となったエントリは、削除しても問題ないので、必要に応じて表から削除するようにしてもよい。
【０１０８】
以上の処理を行うことで、文書管理サーバ1100におけるACL一括更新処理に対して、効率よくACL変更内容を検索インデックスに反映することが可能になる。
【０１０９】
［実施例３］
上述した実施例１では、文書管理サーバ1100にて設定された独自形式のACL情報を、検索サーバ2100にてインデックス更新処理の時に、検索対象ファイルをクローリングする処理の中で、当該検索サーバ2100が解釈可能な形式に変換する形態を扱っている。しかし、このACL変換処理は、当該クローリング処理以外の契機で行うようにしてもよい。例えば、当該クローリング処理とは非同期に、検索サーバ2100がファイルサーバ3100にアクセスし、マイグレーションファイルに格納されている文書管理サーバ1100によって設定された独自形式のACL情報を、汎用形式のACL情報に変換するようにしてもよい。この場合、変換したACL情報を即座に検索インデックスに反映することはできないため、変換後のACL情報を、対象ファイルのメタデータとして格納できるようにする。このようにすることで、検索サーバ2100において、従来の検索インデックス更新処理を改変することなく、文書管理サーバ1100のACL情報を検索インデックスに反映させることが可能になる。そこで、検索インデックス更新処理とは非同期にACL変換を実現するための制御方法を実施例３として説明する。
【０１１０】
上述のように、検索インデックス更新処理とは非同期にACL変換を実現するためには、検索サーバ2100において、ACLを変換する処理を新たに追加する必要がある。この追加内容を図２５によって説明する。
【０１１１】
図２５は、検索サーバ2100におけるACL変換処理のフローを示す。はじめに、検索サーバ2100は、検索対象であるファイルサーバ3100に格納されているファイル群の中から、ACL変換対象となるインデクシング対象ファイル群を選定する(S701)。ここで、インデクシング対象ファイル群の選定は、当該検索サーバ2100に予め登録されている検索範囲に含まれるファイルを選定することにより行う。次に、検索サーバ2100は、対象ファイル全てのACL変換処理を行ったかどうかを調べる(S702)。全てのファイルをACL変換したと判断した場合(処理S702、Yes)は、本処理を終了する。全てのファイルをACL変換していないと判断した場合(処理S702、No)は、以降で説明する処理を行う。
【０１１２】
次に、検索サーバ2100は、インデックス更新対象ファイルの中から、任意のファイルをひとつ選択する(S703)。その後、検索サーバ2100は、対象ファイルをファイルサーバ3100から取得する(S704)。その後、検索サーバ2100は、取得した対象ファイルのメタデータ(ACL情報を含む)と対象ファイルデータを取得する(S705)。その後、検索サーバ2100は、取得した情報を元に、対象ファイルがマイグレーションファイルなのかどうかを調べる(S706)。ここでは、対象ファイルのメタデータを調べるか、あるいはファイルデータの書式などの情報をもとに判断するようにしてもよい。対象ファイルがマイグレーションファイルではないと判断した場合(処理S706、No)は、処理S702に移る。対象ファイルがマイグレーションファイルであると判断した場合(処理S706、Yes)は、次の処理S707に移る。
【０１１３】
次に、検索サーバ2100は、対象ファイルに関する文書管理サーバ1100が設定した独自形式のACL情報を取得し、当該ACL情報の中から検索サーバに必要な情報を当該検索サーバで解釈可能な形式に変換する(S707)。ここでは、図１６の処理S207と同様の処理を行うことによってACL変換を行う。最後に、検索サーバ2100は、変換したACL情報を指定して、ファイルサーバ3100上の対象ファイルのメタデータを更新する(S708)。ここでは、対象ファイルのメタデータにおけるファイルサーバのACL情報を登録する部分に、変換したACL情報を上書き更新する。これにより、検索サーバ2100が別途インデックス更新のために当該ファイルをクローリングした際、当該ファイルのACL情報を取得して、それをもとにインデックスを更新すれば、文書管理サーバ1100が設定した独自形式のACL情報に基づいた検索結果のセキュリティトリミングを行うことが可能になる。処理S708が終わった後は、処理S702に移る。
【０１１４】
以上の処理を行うことで、検索サーバ2100において、インデクシング更新処理とは非同期に、ACL変換処理を行うことが可能になる。
【０１１５】
［実施例４］
上述した実施例１では、文書管理サーバ1100にて設定された独自形式のACL情報を、検索サーバ2100にて、当該検索サーバ2100が解釈可能な形式に変換する形態を扱っている。しかし、このACL変換処理は、当該検索サーバ2100以外が行うようにしてもよい。例えば、マイグレーションファイルを格納するファイルサーバ3100が行うようにしてもよい。ここでは、ファイルサーバ3100が文書管理サーバ1100からのマイグレーションファイル受信を契機にACL変換処理を行うようにすることで、検索サーバ2100の処理負荷を低減できるようにしている。そこで、ファイルサーバ3100にてACL変換も行うマイグレーションファイル受信処理を実現するための制御方法を実施例４として説明する。
【０１１６】
上述のように、ファイルサーバ3100にてACL変換を行うマイグレーションファイル受信処理を実現するためには、ファイルサーバ3100において、ACL変換情報管理表6300を新たに追加した上で、ファイルサーバ3100によるACL変換を行うマイグレーションファイル受信処理を新たに実行させる必要がある。ここで、ACL変換情報管理表6300については、図１４に例示したものと同じものを用いればよいため、ここでの説明は省略する。ここでは、これ以外の追加内容を図２６によって説明する。
【０１１７】
図２６は、ファイルサーバ3100におけるマイグレーションファイル受信処理のフローを示す。はじめに、ファイルサーバ3100は、文書管理サーバ1100から送られてきたマイグレーションファイルを受信する(S801)。次に、ファイルサーバ3100は、対象ファイル全てについて、以降で説明する処理を行ったかどうかを調べる(S802)。全てのファイルについて処理したと判断した場合(処理S802、Yes)は、本処理を終了する。全てのファイルについて処理をしていないと判断した場合(処理S802、No)は、以降で説明する処理を行う。
【０１１８】
次に、ファイルサーバ3100は、受信したマイグレーションファイルを自身に格納する(S803)。ここで、対象ファイルを格納した後で、対象ファイルに関するパス名の情報を、マイグレーション処理の要求元に応答するようにする。次に、ファイルサーバ3100は、当該ファイルのファイルデータ8020に格納されている文書管理サーバ1100のメタデータ7010を取得する(S804)。その後、ファイルサーバ3100は、対象ファイルに関する文書管理サーバ1100が設定した独自形式のACL情報を取得し、当該ACL情報の中から検索サーバ2100に必要な情報を当該検索サーバで解釈可能な形式に変換する(S805)。ここでは、図１６の処理S207と同様の処理を行うことによってACL変換を行う。最後に、ファイルサーバ3100は、変換したACL情報を指定して、ファイルサーバ3100上の対象ファイルのACL情報として格納する(S806)。ここでは、対象ファイルのメタデータにおけるファイルサーバ3100のACL情報を登録する部分に、変換したACL情報を上書き更新する。これにより、検索サーバ2100が別途インデックス更新のために当該ファイルをクローリングした際、当該ファイルのACL情報を取得して、それをもとにインデックスを更新すれば、文書管理サーバ1100が設定した独自形式のACL情報に基づいた検索結果のセキュリティトリミングを行うことが可能になる。処理S806が終わった後は、処理S802に移る。
【０１１９】
以上の処理を行うことで、ファイルサーバ3100において、ACL変換を行うマイグレーションファイル受信処理を行うことが可能になる。なお、この例では、マイグレーションファイル受信を契機にACL変換を行う場合について説明したが、ACL変換実行の契機はこれに限られない。例えば、マイグレーションファイル受信処理とは非同期にACL変換を行うことも可能である。これ以外でも、考えられうる様々な実施形態によって、実現することが可能である。
【０１２０】
［実施例５］
上述した実施例４では、文書管理サーバ1100にて設定された独自形式のACL情報を、ファイルサーバ3100にて、当該検索サーバ2100が解釈可能な形式に変換する形態を扱っている。しかし、このACL変換処理は、当該ファイルサーバ3100以外が行うようにしてもよい。例えば、文書管理サーバ1100が行うようにしてもよい。ここでは、文書管理サーバ1100がファイルサーバ3100へファイルをマイグレーションする処理を行うことを契機に、マイグレーション対象ファイルに対してACL変換処理を行うようにすることで、検索サーバ2100の処理負荷を低減できるようにしている。そこで、文書管理サーバ1100にてACL変換も行うマイグレーション処理を実現するための制御方法を実施例５として説明する。
【０１２１】
上述のように、文書管理サーバ1100にてACL変換を行うマイグレーション処理を実現するためには、文書管理サーバ1100において、ACL変換情報管理表6300を新たに追加した上で、文書管理サーバ1100によるマイグレーション処理を、ACL変換を行うように変更する必要がある。ここで、ACL変換情報管理表6300については、図１４に例示したものと同じものを用いればよいため、ここでの説明は省略する。ここでは、これ以外の変更内容を図２７によって説明する。
【０１２２】
図２７は、図１５で説明した文書管理サーバ1100におけるマイグレーション処理の変更内容を示す。本処理フローは、図１５にて説明したマイグレーション処理と比べて、マイグレーション対象ファイルのACL情報を、検索サーバ2100でも解釈可能な形式に変換した情報も追加した形で、マイグレーション先に送信する処理を新たに行う点が異なる。具体的には、以下で説明する。
【０１２３】
図２７の処理フローにおいて、図１５からの変更点は、処理S104の処理を、処理S106ならびにS107に置き換えた点である。それ以外は、図２７に例示した処理は図１５と同じである。以下簡単のため、更新部分に関する説明のみを行う。
【０１２４】
処理S103を終えた後、文書管理サーバ1100は、マイグレーション対象ファイルのACL情報の中から、検索サービスに必要な情報を、検索サーバ2100で解釈可能な形式に変換する(S106)。ここでは、図１６の処理S207と同様の処理を行うことによってACL変換を行う。なお、マイグレーション対象ファイルから取得するACL情報は、当該文書管理サーバ1100が設定した独自形式のACL情報とする。その後、文書管理サーバ1100は、対象ファイルのメタデータ(変換前ACL情報および変換後ACL情報を含む)とファイルデータをマイグレーション先ファイルサーバ3100に転送し、変換後ACL情報をファイルサーバ3100のACLとして格納する(S107)。これにより、検索サーバ2100がインデックス更新のために当該ファイルをクローリングした際、当該ファイルのACL情報を取得して、それをもとにインデックスを更新すれば、文書管理サーバ1100が設定した独自形式のACL情報に基づいた検索結果のセキュリティトリミングを行うことが可能になる。
【０１２５】
ここでは、図１１で示したように、変換前ACL情報をマイグレーション先のファイルデータの一部(文書管理サーバ1100のACL7012)として格納し、変換後ACL情報をマイグレーション先のファイルメタデータ内のファイルサーバのACL8012として格納するようにしてもよい。また、図１１とは異なり、変換前のACL情報を、マイグレーション先のファイルメタデータ8010の一部として格納するようにしてもよい。
【０１２６】
以上の処理を行うことで、文書管理サーバ1100において、ACL変換を行うマイグレーション処理を行うことが可能になる。なお、この例では、マイグレーション処理を契機にACL変換を行う場合について説明したが、他の契機でACL変換を実行しても差し支えない。例えば、文書管理サーバ1100でのACL変換は、マイグレーション処理とは非同期に行うことも可能である。これ以外でも、考えられうる様々な実施形態によって、実現することが可能である。
【０１２７】
上述の構成をとることにより、より設定粒度が細かい独自形式のACL情報を欠落させることなく、汎用形式のACL情報を解釈可能な検索サーバによって、当該独自形式のACL情報をもとに、検索結果のセキュリティトリミングを行うことができるようになる。これにより、ファイルデータをコンピュータ間でマイグレーションすることで最適配置制御を行うだけでなく、異なるアクセス制御方式が混在する情報処理システムにおいて、各検索サーバ2100は、独自形式のACL情報に従って検索結果のセキュリティトリミングを行えるようになる。したがって、上述のアクセス制御方式混在環境にあっても、セキュアな統合検索サービスを提供することができる。
【０１２８】
また、独自形式のACL情報から汎用形式のACL情報に変換する際、文書管理サーバ1100における検索機能にて利用する情報のみを変換対象とする。ここでは、対象情報資源に対する参照権限(READ権限)や検索権限(SEARCH権限)が変換対象となる。これらの情報は、当該検索サーバ2100におけるセキュリティトリミングのときに、当該検索ユーザがかかる検索結果に含まれる情報資源に対して、参照する権限あるいは検索する権限を有しているのか否かを検証するために利用する。ファイルサーバ3100に格納した情報資源に対するアクセス要求は、対象情報資源がマイグレートしているのか否かに関わらず、全て文書管理サーバ1100が受ける。文書管理サーバ1100が、必要に応じてマイグレート先のファイルサーバ3100に対してアクセス要求を転送し、所望の情報資源を取得できるようにする。このため、検索サーバ2100において、上記の参照権限や検索権限以外のACL情報は不要であり、ACL情報の変換も不要である。
【０１２９】
なお、本発明は、上述した制御装置のほかに、制御システムあるいは制御方法として構成することもできる。また、上述の制御装置を実現するコンピュータプログラム、およびそのプログラムを記録した記録媒体、そのプログラムを含み搬送波内に具現化されたデータ信号など種々の態様で実現することが可能である。
【０１３０】
また、本発明をコンピュータプログラムまたはそのプログラムを記録した記録媒体等として構成する場合には、制御装置あるいは制御装置を制御するプログラム全体として構成するものとしてもよいし、本発明の機能を果たす部分のみを構成するものとしてもよい。また、記録媒体としては、フレキシブルディスクやCD-ROM、DVD-ROM、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置および外部記憶装置などコンピュータが読み取り可能な種々の揮発性記憶媒体や不揮発性記憶媒体を利用できる。
【符号の説明】
【０１３１】
１００…ネットワーク
１１００…文書管理サーバ
２１００…検索サーバ
３１００…ファイルサーバ
４１００…クライアント装置
５１００…認証サーバ
１１１０、２１１０、３１１０、４１１０、５１１０…プロセッサ
１１２０、２１２０、３１２０、４１２０、５１２０…メモリ
１１２１、２１２１、３１２１、４１２１、５１２１…外部記憶装置I/F制御プログラム
１１２２、２１２２、３１２２、４１２２、５１２２…ネットワークI/F制御プログラム
１１２３、２１２３、３１２３、４１２３、５１２３…データ管理制御プログラム
１１２４…文書管理制御プログラム
１１２５…ファイルマイグレーション制御プログラム
１１７１…独自ACL形式アクセス制御サブプログラム
１１７２…検索制御サブプログラム
１１７３…統合検索制御サブプログラム
１１７４…検索転送クライアント制御サブプログラム
１１７５…メタデータ取得制御サブプログラム
１１７６…ACL一括更新通知送信制御サブプログラム
２１２４…検索制御プログラム
２１２５…検索転送サーバ制御プログラム
２１２６…ACL変換制御プログラム
２１２７…ACL一括更新通知受信制御プログラム
３１２４…ファイル共有制御プログラム
３１７１…汎用ACL形式アクセス制御サブプログラム
４１２４…文書管理サービスクライアント制御プログラム
４１７１…ファイルアクセスクライアント制御サブプログラム
４１７２…ファイル検索クライアント制御サブプログラム
５１２４…認証制御プログラム
１１３０、２１３０、３１３０、４１３０、５１３０…外部記憶装置I/F
１１４０、２１４０、３１４０、４１４０、５１４０…ネットワークI/F
１１５０、２１５０、３１５０、４１５０、５１５０…バス
１１６０、２１６０、３１６０、４１６０、５１６０…外部記憶装置
６１００…検索インデックス管理表
６２００…検索インデックス登録ファイル管理表
６３００…ACL変換情報管理表
６５００…ACL一括更新内容管理表
７０００…文書管理サーバ保管ファイル
８０００…ファイルサーバ保管ファイル
【図１】
0005439337.tif 000002
【図２】
0005439337.tif 000003
【図３】
0005439337.tif 000004
【図４】
0005439337.tif 000005
【図５】
0005439337.tif 000006
【図６】
0005439337.tif 000007
【図７】
0005439337.tif 000008
【図８】
0005439337.tif 000009
【図９】
0005439337.tif 000010
【図１０】
0005439337.tif 000011
【図１１】
0005439337.tif 000012
【図１２】
0005439337.tif 000013
【図１３】
0005439337.tif 000014
【図１４】
0005439337.tif 000015
【図１５】
0005439337.tif 000016
【図１６】
0005439337.tif 000017
【図１７】
0005439337.tif 000018
【図１８】
0005439337.tif 000019
【図１９】
0005439337.tif 000020
【図２０】
0005439337.tif 000021
【図２１】
0005439337.tif 000022
【図２２】
0005439337.tif 000023
【図２３】
0005439337.tif 000024
【図２４】
0005439337.tif 000025
【図２５】
0005439337.tif 000026
【図２６】
0005439337.tif 000027
【図２７】
0005439337.tif 000028