(57)【特許請求の範囲】
【請求項１】
電子データを検索するように要求する第１検索リクエストを受け取る検索クライアント制御部と、
前記第１検索リクエストに基づき、電子データを検索する１以上の検索装置に第２検索リクエストを発行し、各前記検索装置の検索結果を統合する統合検索制御部と、
前記統合検索制御部が前記検索装置に前記第２検索リクエストを発行する際のアクセスアカウントを絞り込むアカウント絞り込み制御部と、
前記第１検索リクエストを発行する第１アクセスアカウントと、前記第１アクセスアカウントを有するユーザが前記検索装置にアクセスする際に用いる第２アクセスアカウントとの対応関係を記述したアカウント対応表と、
前記検索装置が属するネットワークドメインを記述した検索装置管理表と、
を備え、
前記アカウント対応表は、
前記第２アクセスアカウントが属するネットワークドメインと前記第１アクセスアカウントとの対応関係を記述しており、
前記検索装置管理表は、
前記検索装置がアクセスする全ての前記電子データに対するアクセス権限を有する代表アクセスアカウントとその認証情報を記述しており、
前記アカウント絞り込み制御部は、
前記統合検索制御部が前記検索装置に前記第２検索リクエストを発行する際に、前記アカウント対応表の記述にしたがって、前記第１アクセスアカウントに対応する前記第２アクセスアカウントを特定し、
前記検索装置管理表の記述にしたがって、前記第２アクセスアカウントが属するネットワークドメインに属する前記検索装置を特定し、
前記統合検索制御部は、
前記アカウント絞り込み制御部が前記アカウント対応表の記述にしたがって特定した前記第２アクセスアカウントがアクセスすることができる前記電子データの範囲を検索条件として指定して、前記第２検索リクエストを発行し、
前記アカウント絞り込み制御部が前記検索装置管理表の記述にしたがって特定した前記検索装置に対して、前記第２検索リクエストを発行し、
前記検索装置に前記第２検索リクエストを発行する際に、前記検索装置管理表の記述にしたがって、前記代表アクセスアカウントの認証情報を取得し、
前記アカウント対応表が前記第２アクセスアカウントの認証情報を記述している場合は、前記第２アクセスアカウントの認証情報を、前記検索装置に対するログイン認証情報として用いた上で、前記第２検索リクエストを発行し、前記第２アクセスアカウントがアクセス権限を有する前記電子データに関する検索結果のみを前記検索装置が抽出した結果を、前記検索装置から検索結果として受け取り、
前記アカウント対応表が前記第２アクセスアカウントの認証情報を記述していない場合は、前記検索装置に前記第２検索リクエストを発行する際に、前記検索装置管理表の記述にしたがって、前記代表アクセスアカウントの認証情報を取得し、前記代表アクセスアカウントの認証情報を、前記検索装置に対するログイン認証情報として用いた上で、前記第２検索リクエストを発行する
ことを特徴とする統合検索装置。
【請求項２】
前記統合検索制御部は、
前記アカウント絞り込み制御部が前記アカウント対応表の記述にしたがって特定した前記第２アクセスアカウントが存在しない場合は、
認証を必要としない公開アクセスアカウントがアクセスすることができる前記電子データの範囲を検索条件として指定して、前記第２検索リクエストを発行する
ことを特徴とする請求項１記載の統合検索装置。
【請求項３】
前記統合検索制御部は、
前記アカウント絞り込み制御部が前記検索装置管理表の記述にしたがって特定した前記検索装置が存在しない場合は、
認証を必要としない公開アクセスアカウントがアクセスすることができる前記電子データの範囲を検索条件として指定して、前記第２検索リクエストを発行する
ことを特徴とする請求項１記載の統合検索装置。
【請求項４】
前記統合検索制御部は、
前記検索装置に前記第２検索リクエストを発行する際に、前記第２アクセスアカウントがアクセス権限を有する前記電子データに関する検索結果のみを抽出する抽出処理を実施すべきか否かを前記検索装置に指示し、
前記抽出処理を実施しないように前記検索装置へ指示した場合は、各前記検索装置の検索結果を統合する
ことを特徴とする請求項１記載の統合検索装置。
【請求項５】
前記統合検索制御部は、
前記アカウント絞り込み制御部が前記アカウント対応表の記述にしたがって特定した前記第２アクセスアカウントが存在しない場合は、認証を必要としない公開アクセスアカウントがアクセスすることができる前記電子データの範囲を検索条件として指定して、前記第２検索リクエストを発行し、
前記アカウント絞り込み制御部が前記検索装置管理表の記述にしたがって特定した前記検索装置が存在しない場合は、認証を必要としない公開アクセスアカウントがアクセスすることができる前記電子データの範囲を検索条件として指定して、前記第２検索リクエストを発行し、
前記検索装置に前記第２検索リクエストを発行する際に、前記第２アクセスアカウントがアクセス権限を有する前記電子データに関する検索結果のみを抽出する抽出処理を実施すべきか否かを前記検索装置に指示し、前記抽出処理を実施しないように前記検索装置へ指示した場合は、各前記検索装置の検索結果を統合し、
前記検索装置が電子データを検索した結果を統合する１以上の他の前記統合検索装置から前記統合の結果を受け取り、各前記統合検索装置からの前記統合の結果をさらに統合する
ことを特徴とする請求項１記載の統合検索装置。
【請求項６】
請求項４記載の統合検索装置と、
電子データを検索する１以上の検索装置と、
を有し、
前記検索装置は、
前記第２アクセスアカウントがアクセス権限を有する前記電子データに関する検索結果のみを抽出する抽出処理を実施すべきか否かの指示を前記統合検索装置から受け取り、
前記抽出処理を実施すべき旨の指示を受け取った場合は、検索結果のなかから、前記第２アクセスアカウントがアクセス権限を有する前記電子データに関する検索結果のみを抽出し、前記統合検索装置に返信する
ことを特徴とする統合検索システム。
【請求項７】
電子データを検索するように要求する第１検索リクエストを受け取るステップと、
前記第１検索リクエストを発行する第１アクセスアカウントと、前記第１アクセスアカウントを有するユーザが前記検索装置にアクセスする際に用いる第２アクセスアカウントとの対応関係を記述したアカウント対応表を読み込むステップと、
前記検索装置が属するネットワークドメインを記述した検索装置管理表を読み込むステップと、
前記第１検索リクエストに基づき、電子データを検索する１以上の検索装置に第２検索リクエストを発行し、各前記検索装置の検索結果を統合する統合検索制御ステップと、
前記検索装置に前記第２検索リクエストを発行する際のアクセスアカウントを絞り込むアカウント絞り込み制御ステップと、
を有し、
前記アカウント対応表は、
前記第２アクセスアカウントが属するネットワークドメインと前記第１アクセスアカウントとの対応関係を記述しており、
前記検索装置管理表は、
前記検索装置がアクセスする全ての前記電子データに対するアクセス権限を有する代表アクセスアカウントとその認証情報を記述しており、
前記アカウント絞り込み制御ステップにおいては、
前記統合検索制御ステップにおいて前記検索装置に前記第２検索リクエストを発行する際に、前記アカウント対応表の記述にしたがって、前記第１アクセスアカウントに対応する前記第２アクセスアカウントを特定し、
前記統合検索制御ステップにおいては、
前記アカウント絞り込み制御ステップにおいて前記アカウント対応表の記述にしたがって特定した前記第２アクセスアカウントがアクセスすることができる前記電子データの範囲を検索条件として指定して、前記第２検索リクエストを発行し、
前記アカウント絞り込み制御ステップにおいて前記検索装置管理表の記述にしたがって特定した前記検索装置に対して、前記第２検索リクエストを発行し、
前記検索装置に前記第２検索リクエストを発行する際に、前記検索装置管理表の記述にしたがって、前記代表アクセスアカウントの認証情報を取得し、
前記アカウント対応表が前記第２アクセスアカウントの認証情報を記述している場合は、前記第２アクセスアカウントの認証情報を、前記検索装置に対するログイン認証情報として用いた上で、前記第２検索リクエストを発行し、前記第２アクセスアカウントがアクセス権限を有する前記電子データに関する検索結果のみを前記検索装置が抽出した結果を、前記検索装置から検索結果として受け取り、
前記アカウント対応表が前記第２アクセスアカウントの認証情報を記述していない場合は、前記検索装置に前記第２検索リクエストを発行する際に、前記検索装置管理表の記述にしたがって、前記代表アクセスアカウントの認証情報を取得し、前記代表アクセスアカウントの認証情報を、前記検索装置に対するログイン認証情報として用いた上で、前記第２検索リクエストを発行する
ことを特徴とする統合検索方法。
【請求項８】
前記統合検索制御ステップにおいては、
前記アカウント絞り込み制御ステップにおいて前記アカウント対応表の記述にしたがって特定した前記第２アクセスアカウントが存在しない場合は、認証を必要としない公開アクセスアカウントがアクセスすることができる前記電子データの範囲を検索条件として指定して、前記第２検索リクエストを発行し、
前記アカウント絞り込み制御ステップにおいて前記検索装置管理表の記述にしたがって特定した前記検索装置が存在しない場合は、認証を必要としない公開アクセスアカウントがアクセスすることができる前記電子データの範囲を検索条件として指定して、前記第２検索リクエストを発行する
ことを特徴とする請求項７記載の統合検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、統合検索を提供する技術に関するものである。
【背景技術】
【０００２】
コンピュータの高性能化ならびに低価格化により、様々な業種や用途においてコンピュータの利用が広がっている。近年では、コンピュータシステムに保管されるデータファイルの数が膨大になり、ユーザにとって欲しいファイルがどこに格納されているのかがわからなくなる課題も発生している。この課題に対して、全文検索サービスが利用されるようになってきている。
【０００３】
全文検索サービスでは、コンピュータシステムに格納されているファイルデータを検索サーバが解析し、検索インデックスを事前に作成する。ユーザは、検索サーバに対して取得したいファイルを検索するための検索クエリを送信し、その検索結果をもとに対象ファイルにアクセスする。
【０００４】
このような検索サービスは、今後、コンピュータシステムに格納するファイルデータ数がさらに増加することが考えられる上、ユーザ自身がどこにどんなファイルデータを格納しているのかを全て把握することは困難になるため、ユーザにとってさらに重要なサービスとなり、サービスの利用がさらに広がるものと考えられる。
【０００５】
検索サーバでは、検索結果に対してセキュリティトリミングを実施するものが多い。セキュリティトリミングとは、検索結果の中に含まれる内容の中から、当該検索要求を出したユーザがアクセス権を持つ内容のみを絞り込んだものを検索結果として提供する機能である。例えば、検索対象ファイルにアクセス制御情報としてＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）が設定されている場合、検索サーバは、ＡＣＬ情報に基づいて、ユーザが対象ファイルに対してアクセス権を持っているのか否かを判断する。検索サーバは、その結果に基づいて、当該ファイルに関する情報を検索結果に含めるか否かを判断する。この機能により、検索結果を介してユーザがファイルに不正アクセスすることを抑止できる。
【０００６】
一方、検索サーバが複数台存在する場合、ユーザは、それぞれの検索サーバに対して個別に検索要求を出し、その結果を個別に取得する必要があった。これは、複数の検索サーバに対して同じ検索クエリを検索サーバの台数分だけ発行する必要があり、ユーザにとっては利便性が低かった。これを解消するために、複数の独立した検索サーバに対して１回検索クエリを発行するだけで、全ての検索サーバからの検索結果を統合的に取得できる統合検索サービスが利用され始めてきている。例えば、ＯｐｅｎＳｅａｒｃｈという統合検索を行うための仕様が一般に公開され、利用されるようになってきている。
【０００７】
統合検索サービスでは、各検索サーバはそれぞれ独立して運用する一方で、各検索サーバがＯｐｅｎＳｅａｒｃｈのような統一した標準インターフェースで検索要求を受け付けることができるようにしている。これにより、複数の検索サーバを疎結合した統合検索を実現できる。疎結合した統合検索では、各検索サーバが利用する検索アルゴリズムや検索インデックス更新契機などはそれぞれ別である。これに対し、複数の検索サーバを一体的に運用することにより、密結合した統合検索サービスを提供する形態もある。密結合した統合検索サービスでは、各検索サーバにおいて同じ検索アルゴリズムを利用し、検索インデックス更新はシステム内で統一して行うようにしている。
【０００８】
上述のコンピュータシステムを運用する場合、認証用に複数のネットワークドメインが並存し、それぞれのネットワークドメインの中に検索サーバを個別に運用する環境が考えられる。例えば、企業内の複数部署それぞれにネットワークドメインを設定し、個別に運用するケースなどがこれに該当する。このような環境では、必要があれば一人のユーザに対して複数のネットワークドメインそれぞれからアクセスアカウントを付与してもらい、そのアクセスアカウントを使い分けるというシステム利用方法がとられる。
【０００９】
密結合した統合検索サービスでは、認証用のネットワークドメインは各検索サーバについて共通である場合が多いと考えられる。これに対し疎結合した統合検索サービスでは、認証用のネットワークドメインは検索サーバ毎に個別に設けられている可能性がある。そのため、各検索サーバに対してアクセスするためのアクセスアカウントも、検索サーバ毎に分散している可能性がある。
【００１０】
理想的には、アクセスアカウントを１つのネットワークドメインに集約し、そのアクセスアカウントが一つあれば全てのサービスを利用できるようになる、シングルサインオンを実現することが望ましい。しかし、運用上の制約などにより複数のネットワークドメインが並存している環境もまだ多い。このようなネットワークドメイン並存環境において、上述した統合検索サービスを提供する際、別々のネットワークドメインに存在する検索サーバや検索結果となるデータにアクセスするために、アクセスアカウントを使い分けた上で、個別に認証するのは、ユーザの使い勝手を大きく損なう。そこで、１人のユーザに複数のアクセスアカウントを関連付けておき、その関連付け情報から必要な情報を取得して必要な認証処理を内部で行なうことにより、擬似的にシングルサインオン相当のサービスを実現するという方法がある。
【００１１】
下記特許文献１には、上述の擬似シングルサインオンに関する技術が開示されている。この方法は、統合検索を提供する検索サーバが、それぞれ別々のネットワークドメインを利用するファイルサーバを検索対象としている場合、各ネットワークドメインにおけるアクセスアカウントとユーザを関連付け、その関連付け情報を検索サーバに登録しておく。これにより、検索サーバに対して統合検索要求を行った場合、検索を要求したユーザは、ネットワークドメインの違いを意識することなく、関連付けられたアクセスアカウントに基づきセキュリティトリミングされた統合検索結果を取得することができる。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許公開公報  ＵＳ２０１０／０１０６７１２  Ａ１
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１に記載されている技術では、統合検索を実施するため各検索サーバに対して検索要求を送る際、検索を要求するユーザに関連付けられている全てのアクセスアカウントに関する情報を各検索サーバに送信してしまう。本来、統合検索を実施するための認証サーバが複数存在する場合、各検索サーバで参照する必要があるアクセスアカウント情報は、当該検索サーバが利用する認証サーバあるいはネットワークドメインに関するもののみであり、それ以外のアクセスアカウント情報は必要ない。不要なアクセスアカウント情報を各検索サーバに送信すると、セキュリティ上の懸念が生じる可能性がある。
【００１４】
上述の課題は、インターネット上の検索サーバと連携した統合検索サービスを提供する場合に顕著となる。この場合、イントラネット内の認証サーバやアクセスアカウントに関する情報をインターネットに送信し、情報漏えいが生じる可能性がある。これは、セキュリティ上望ましくない。
【００１５】
本発明は、上記のような課題を解決するためになされたものであり、統合検索を実施する際に、セキュリティトリミングを実施するために必要でないアクセスアカウント情報を各検索サーバに送信しないように統合検索装置を制御することのできる技術を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明に係る統合検索装置は、統合検索を要求する第１検索リクエストを発行する第１アクセスアカウントと、各検索装置に第２検索リクエストを発行する第２アクセスアカウントとの対応関係を記述したアカウント対応表を備える。統合検索装置は、アカウント対応表の記述にしたがって第１アクセスアカウントに対応する第２アクセスアカウントを特定し、第２アクセスアカウントがアクセスすることができる範囲を検索条件として指定して、各検索サーバに第２検索リクエストを発行する。
【発明の効果】
【００１７】
本発明に係る統合検索装置によれば、各検索装置がセキュリティトリミングを実施するために必要でないアクセスアカウント情報を送信しないようにすることができる。これにより、アクセスアカウントに関する情報漏えいを防止することができる。
【図面の簡単な説明】
【００１８】
【図１】実施形態１に係る統合検索システム１００００のシステム構成を示す図である。
【図２】統合検索サーバ１１００のハードウェア構成を示す図である。
【図３】検索サーバ２２００のハードウェア構成を示す図である。
【図４】認証サーバ３１００のハードウェア構成を示す図である。
【図５】ファイルサーバ４２００のハードウェア構成を示す図である。
【図６】クライアントマシン５１００のハードウェア構成を示す図である。
【図７】ユーザがクライアントマシン５１００から統合検索サーバ１１００に対して統合検索要求を発行した際の各種処理の流れを示す図である。
【図８】統合検索要求パケット７０００のデータ構造を示す図である。
【図９】検索要求パケット８０００のデータ構造を示す図である。
【図１０】アカウント対応管理表６１００の構成とデータ例を示す図である。
【図１１】検索サーバ管理表６２００の構成とデータ例を示す図である。
【図１２】検索サーバ２２００が備える検索インデックス管理表６３００の構成とデータ例を示す図である。
【図１３】検索サーバ２２００が備える検索インデックス登録ファイル管理表６４００の構成とデータ例を示す図である。
【図１４】クライアントマシン５１００から統合検索サーバ１１００または検索サーバ２２００に対してアクセスアカウントを登録するよう要求する処理の流れを示す。
【図１５】図１４の処理ステップＳ１０１におけるログオン処理の流れを示す図である。
【図１６】図１４のステップＳ１０４とＳ１０５におけるアクセスアカウント登録処理の流れを示す図である。
【図１７】クライアントマシン５１００から検索サーバ２２００に対して、検索対象とする共有フォルダを検索サーバ２２００へ登録するよう要求する処理の流れを示す。
【図１８】図１７のステップＳ４０２における処理の流れを示す図である。
【図１９】クライアントマシン５１００から統合検索サーバ１１００に対して統合検索を要求する処理の流れを示す図である。
【図２０】図１９のステップＳ６０２における統合検索処理の流れを示す図である。
【図２１】図２０のステップＳ７０７における検索処理の流れを示す図である。
【図２２】実施形態２における、図１９のステップＳ６０２の流れを示す図である。
【図２３】実施形態３における、ステップＳ１０４とＳ１０５のアクセスアカウント登録処理の流れを示す図である。
【図２４】実施形態３におけるステップＳ６０２の統合検索処理の流れを示す図である。
【図２５】実施形態４における検索サーバ管理表６２００の構成とデータ例を示す図である。
【図２６】実施形態４におけるステップＳ４０２の処理の流れを示す図である。
【図２７】実施形態４におけるステップＳ６０２の統合検索処理の流れを示す図である。
【図２８】実施形態５におけるステップＳ６０２の統合検索処理の流れを示す図である。
【図２９】実施形態５におけるステップＳ７０７の検索処理の流れを示す図である。
【図３０】実施形態６における検索サーバ２２００のハードウェア構成を示す図である。
【図３１】実施形態７における統合検索処理の全体の流れを示す図である。
【図３２】実施形態７における検索要求パケット８０００のデータ構造を示す図である。
【図３３】実施形態５におけるステップＳ６０２の統合検索処理の流れを示す図である。
【図３４】実施形態７におけるステップＳ７０７の検索処理の流れを示す図である。
【発明を実施するための形態】
【００１９】
＜実施の形態１＞
本発明の実施形態１では、ユーザからの検索要求に対して、そのユーザに関連付けられているアクセスアカウント情報に基づき、統合検索を実施する対象となる検索サーバを絞り込むとともに、各検索サーバへ検索要求を発行する際、セキュリティトリミング用のアクセスアカウント情報を当該検索サーバで利用できる分だけに絞り込む手法について説明する。
【００２０】
本発明において、検索結果に対してセキュリティトリミングを実施する際に用いるアクセスアカウント情報は、ユーザを特定することが情報であれば、どのような形式の情報であってもよい。例えば、ユーザ識別番号、ユーザ名、ユーザを特定することができるデータが格納されたディジタル証明書、などが考えられる。
【００２１】
図１は、本実施形態１に係る統合検索システム１００００のシステム構成を示す図である。統合検索システム１００００では、ネットワーク１００を介して、統合検索サーバ１１００、検索サーバ２２００および２３００、認証サーバ３１００、３２００、および３３００、ファイルサーバ４２００および４３００、クライアントマシン５１００が接続されている。検索サーバ２２００、認証サーバ３２００、ファイルサーバ４２００は同一のネットワークドメインに属する。検索サーバ２３００、認証サーバ３３００、ファイルサーバ４３００は、これとは別の同一のネットワークドメインに属する。
【００２２】
統合検索サーバ１１００は、１以上の検索サーバに検索リクエストを発行し、それによって取得した検索結果を統合して検索要求元に提供する統合検索サービスを提供する。検索サーバ２２００は、ファイルサーバ４２００に格納されている電子データ（以下、ファイル）に対するファイル検索サービスを提供する。認証サーバ３１００は、各サーバに対する認証処理を実行するために必要な認証情報を管理し、実際の認証処理を実行する。クライアントマシン５１００は、ユーザからの指示にしたがって、検索サーバ２２００へ検索リクエストを発行し、統合検索サーバ１１００へ統合検索リクエストを発行し、ファイルサーバ４２００へファイルアクセス要求を発行する。統合検索システム１００００を利用することにより、ユーザは各検索サーバによる検索結果を統合して統合検索結果を取得する統合検索を実施することができる。
【００２３】
検索サーバ２２００は、検索に際して、あらかじめ作成した検索インデックスを利用して検索結果を生成し、ユーザが参照権限を持つファイルに関する情報のみを当該検索結果に含ませるように検索結果の絞り込み（セキュリティトリミング）を実施する。これにより、ユーザが参照する権限を持たないファイルに対するアクセスを防ぐ。
【００２４】
なお、図１では、各サーバ等をそれぞれ１台ずつ記載しているが、この限りではない。可能であれば、各サーバ等を複数台設けてもよい。また、図１では、各サーバ等を別装置として記載しているが、この限りではない。可能であれば、任意の２つあるいはそれ以上のサーバ等を１台の装置として構成してもよい。また、ネットワーク１００は、どのような形態のネットワークでもよい。例えばインターネット接続でもよいし、ローカルエリアネットワークによるイントラネット接続などでもよい。
【００２５】
図２は、統合検索サーバ１１００のハードウェア構成を示す図である。統合検索サーバ１１００は、プロセッサ１１１０、メモリ１１２０、外部記憶装置Ｉ／Ｆ１１３０、ネットワークＩ／Ｆ１１４０、バス１１５０、外部記憶装置１１６０を備える。
【００２６】
プロセッサ１１１０は、後述のプログラムを実行する。以下では記載の都合上、各プログラムを動作主体として説明する場合があるが、実際にこれらプログラムを実行するのはプロセッサ１１１０などの演算装置であることを付言しておく。他のサーバおよびクライアントマシン５１００においても同様である。
【００２７】
メモリ１１２０は、後述のプログラムおよびデータを一時的に格納する。外部記憶装置Ｉ／Ｆ１１３０は、外部記憶装置１１６０にアクセスするためのインターフェースである。ネットワークＩ／Ｆ１１４０は、ネットワーク１００を介して接続された他装置にアクセスするためのインターフェースである。バス１１５０は、上記各構成要素を接続する。
【００２８】
メモリ１１２０は、外部記憶装置Ｉ／Ｆ制御プログラム１１２１、ネットワークＩ／Ｆ制御プログラム１１２２、データ管理制御プログラム１１２３、統合検索制御プログラム１１２４、管理情報取得制御プログラム１１２５、アカウント対応管理表６１００、検索サーバ管理表６２００を格納する。
【００２９】
外部記憶装置Ｉ／Ｆ制御プログラム１１２１は、外部記憶装置Ｉ／Ｆ１１３０を制御するプログラムである。ネットワークＩ／Ｆ制御プログラム１１２２は、ネットワークＩ／Ｆ１１４０を制御するプログラムである。データ管理制御プログラム１１２３は、統合検索サーバ１１００が保管するデータを管理するために利用するファイルシステムあるいはデータベースを提供するプログラムである。統合検索制御プログラム１１２４は、統合検索サーバ１１００が提供する統合検索サービスを実装したプログラムである。管理情報取得制御プログラム１１２５は、統合検索サーバ１１００において、統合検索システム１００００を構成する他の検索サーバ２２００が管理している管理情報を取得するためのプログラムである。アカウント対応管理表６１００は、統合検索をリクエストするユーザのアクセスアカウントと、各検索サーバ上における同ユーザのアクセスアカウントとの対応関係を記述したデータである。検索サーバ管理表６２００は、各検索サーバのネットワーク管理情報を記述したデータである。
【００３０】
統合管理制御プログラム１１２４は、その内部に、アカウント情報絞り込み制御サブプログラム１１７１、検索先絞り込み制御サブプログラム１１７２、検索クライアント制御サブプログラム１１７３、検索結果統合制御サブプログラム１１７４を有する。
【００３１】
アカウント情報絞り込み制御サブプログラム１１７１は、統合検索サーバ１１００が各検索サーバに対して検索要求を出す際に、各検索サーバが検索結果のセキュリティトリミングを実施するために利用するアクセスアカウント情報を、検索サーバ２２００が保持しているアクセスアカウント情報のみに絞り込む処理を行う。
【００３２】
検索先絞り込み制御サブプログラム１１７２は、統合検索サーバ１１００が各検索サーバに対して検索要求を出す際に、検索要求を出すべき検索サーバを絞り込む処理を行う。具体的には、検索要求ユーザに関連付けられているアカウントの中で、各検索サーバが検索対象とする共有フォルダにアクセスするために必要となるアクセスアカウントが含まれている場合に、当該検索サーバを検索対象として絞込みを行う。
【００３３】
検索クライアント制御サブプログラム１１７３は、統合検索サーバ１１００が各検索サーバに対して検索要求を発行する。検索結果統合制御サブプログラム１１７４は、統合検索サーバ１１００が検索クライアント制御サブプログラム１１７３を用いて各検索サーバから取得した各検索結果を統合する。
アカウント対応管理表６１００と検索サーバ管理表６２００については後述する。
【００３４】
図３は、検索サーバ２２００のハードウェア構成を示す図である。検索サーバ２２００は、プロセッサ２２１０、メモリ２２２０、外部記憶装置Ｉ／Ｆ２２３０、ネットワークＩ／Ｆ２２４０、バス２２５０、外部記憶装置２２６０を備える。
【００３５】
プロセッサ２２１０は、後述のプログラムを実行する。メモリ２２２０は、後述のプログラムならびにデータを一時的に格納する。外部記憶装置Ｉ／Ｆ２２３０は、外部記憶装置２２６０にアクセスするためのインターフェースである。ネットワークＩ／Ｆ２２４０は、ネットワーク１００を介して接続された他装置にアクセスするためのインターフェースである。バス２２５０は、上記各構成要素を接続する。
【００３６】
メモリ２２２０は、外部記憶装置Ｉ／Ｆ制御プログラム２２２１、ネットワークＩ／Ｆ制御プログラム２２２２、データ管理制御プログラム２２２３、検索制御プログラム２２２４、検索サーバ管理制御プログラム２２２５、アカウント対応管理表６１００、検索サーバ管理表６２００、検索インデックス管理表６３００、検索インデックス登録ファイル管理表６４００を格納する。
【００３７】
外部記憶装置Ｉ／Ｆ制御プログラム２２２１は、外部記憶装置Ｉ／Ｆ２２３０を制御するプログラムである。ネットワークＩ／Ｆ制御プログラム２２２２は、ネットワークＩ／Ｆ２２４０を制御するプログラムである。データ管理制御プログラム２２２３は、検索サーバ２２００が保管データを管理するために利用するファイルシステムあるいはデータベースを提供するプログラムである。検索制御プログラム２２２４は、検索サーバ２２００が提供するファイル検索サービスを実装したプログラムである。検索サーバ管理制御プログラム２２２５は、検索サーバ２２００を管理するために必要な機能を提供するプログラムである。アカウント対応管理表６１００と検索サーバ管理表６２００は、統合検索サーバ１１００が備えるものと同様である。検索インデックス管理表６３００は、検索サーバ２２００が作成した検索インデックスの情報を管理するデータである。検索インデックス登録ファイル管理表６４００は、検索サーバ２２００が検索インデックスを作成する際に用いたファイルに関する情報を管理するデータである。
【００３８】
アカウント対応管理表６１００、検索サーバ管理表６２００、検索インデックス管理表６３００、検索インデックス登録ファイル管理表６４００の詳細については後述する。
【００３９】
図４は、認証サーバ３１００のハードウェア構成を示す図である。認証サーバ３１００は、プロセッサ３１１０、メモリ３１２０、外部記憶装置Ｉ／Ｆ３１３０、ネットワークＩ／Ｆ３１４０、バス３１５０、外部記憶装置３１６０を備える。
【００４０】
プロセッサ３１１０は、後述のプログラムを実行する。メモリ３１２０は、後述のプログラムならびにデータを一時的に格納する。外部記憶装置Ｉ／Ｆ３１３０は、外部記憶装置３１６０にアクセスするためのインターフェースである。ネットワークＩ／Ｆ３１４０は、ネットワーク１００を介して接続された他装置にアクセスするためのインターフェースである。バス３１５０は、上記各構成要素を接続する。
【００４１】
メモリ３１２０は、外部記憶装置Ｉ／Ｆ制御プログラム３１２１、ネットワークＩ／Ｆ制御プログラム３１２２、データ管理制御プログラム３１２３、認証制御プログラム３１２４を格納する。
【００４２】
外部記憶装置Ｉ／Ｆ制御プログラム３１２１は、外部記憶装置Ｉ／Ｆ３１３０を制御するプログラムである。ネットワークＩ／Ｆ制御プログラム３１２２は、ネットワークＩ／Ｆ３１４０を制御するプログラムである。データ管理制御プログラム３１２３は、認証サーバ３１００が保管データを管理するために利用するファイルシステムあるいはデータベースを提供するプログラムである。認証制御プログラム３１２４は、認証サーバ３１００が提供する認証機能を実装したプログラムである。
【００４３】
認証制御プログラム３１２４は、認証処理に必要な情報を提供する処理、認証要求元から提示された情報を基に認証対象を実際に認証する処理などを実行する。例えば、Ｋｅｒｂｅｒｏｓ認証で利用するＫＤＣ（Ｋｅｙ  Ｄｉｓｔｒｉｂｕｔｉｏｎ  Ｃｅｎｔｅｒ）サーバ、認証対象となるユーザ情報を管理して当該ユーザの認証処理を実行する時に利用するＬＤＡＰ（Ｌｉｇｈｔ  Ｗｅｉｇｈｔ  Ｄｉｒｅｃｔｏｒｙ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）サーバ、などが認証制御プログラム３１２４に該当する。
【００４４】
図５は、ファイルサーバ４２００のハードウェア構成を示す図である。ファイルサーバ４２００は、プロセッサ４２１０、メモリ４２２０、外部記憶装置Ｉ／Ｆ４２３０、ネットワークＩ／Ｆ４２４０、バス４２５０、外部記憶装置４２６０を備える。
【００４５】
プロセッサ４２１０は、後述のプログラムを実行する。メモリ４２２０は、後述のプログラムならびにデータを一時的に格納する。外部記憶装置Ｉ／Ｆ４２３０は、外部記憶装置４２６０にアクセスするためのインターフェースである。ネットワークＩ／Ｆ４２４０は、ネットワーク１００を介して接続された他装置にアクセスするためのインターフェースである。バス４２５０は、上記各構成要素を接続する。
【００４６】
メモリ４２２０は、外部記憶装置Ｉ／Ｆ制御プログラム４２２１、ネットワークＩ／Ｆ制御プログラム４２２２、データ管理制御プログラム４２２３、ファイル共有制御プログラム４２２４を格納する。
【００４７】
外部記憶装置Ｉ／Ｆ制御プログラム４２２１は、外部記憶装置Ｉ／Ｆ４２３０を制御するプログラムである。ネットワークＩ／Ｆ制御プログラム４２２２とは、ネットワークＩ／Ｆ４２４０を制御するプログラムである。データ管理制御プログラム４２２３は、ファイルサーバ４２００が保管データを管理するために利用するファイルシステムあるいはデータベースを提供するプログラムである。ファイル共有制御プログラム４２２４は、ファイルを複数ユーザ間で共有するためのファイル共有サービスを提供する機能を実装したプログラムである。
【００４８】
ファイル共有制御プログラム４２２４は、ファイルサーバ４２００が共有フォルダ内に格納しているファイルに対してアクセス制御情報を設定することができる。例えば各ファイルに対し、ＡＣＬ（Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌ  Ｌｉｓｔ）形式で、どのユーザに対してどんな操作を許可するのか、あるいはどのユーザに対してどんな操作を禁止するのか、といった情報を設定することができる。ファイル共有制御プログラム４２２４は、上記アクセス制御情報にしたがって、ファイルに対するアクセス制御を実施する。
【００４９】
図６は、クライアントマシン５１００のハードウェア構成を示す図である。クライアントマシン５１００は、プロセッサ５１１０、メモリ５１２０、外部記憶装置Ｉ／Ｆ５１３０、ネットワークＩ／Ｆ５１４０、バス５１５０、外部記憶装置５１６０を備える。
【００５０】
プロセッサ５１１０は、後述のプログラムを実行する。メモリ５１２０は、後述のプログラムならびにデータを一時的に格納する。外部記憶装置Ｉ／Ｆ５１３０は、外部記憶装置５１６０にアクセスするためのインターフェースである。ネットワークＩ／Ｆ５１４０は、ネットワーク１００を介して接続された他装置にアクセスするためのインターフェースである。バス５１５０は、上記各構成要素を接続する。
【００５１】
メモリ５１２０は、外部記憶装置Ｉ／Ｆ制御プログラム５１２１、ネットワークＩ／Ｆ制御プログラム５１２２、データ管理制御プログラム５１２３、検索クライアント制御プログラム５１２４、ファイル共有クライアント制御プログラム５１２５を格納する。
【００５２】
外部記憶装置Ｉ／Ｆ制御プログラム５１２１は、外部記憶装置Ｉ／Ｆ５１３０を制御するプログラムである。ネットワークＩ／Ｆ制御プログラム５１２２は、ネットワークＩ／Ｆ５１４０を制御するプログラムである。データ管理制御プログラム５１２３は、クライアントマシン５１００が保管データを管理するために利用するファイルシステムあるいはデータベースを提供するプログラムである。検索クライアント制御プログラム５１２４は、クライアントマシン５１００から統合検索サーバ１１００あるいは検索サーバ２２００にアクセスするために利用するプログラムである。ファイル共有クライアント制御プログラム５１２５は、ファイルサーバ４２００が共有公開しているファイルにクライアントマシン５１００からアクセスするために利用するプログラムである。
【００５３】
検索クライアント制御プログラム５１２４は、統合検索サーバ１１００あるいは検索サーバ２２００が提供する仕様に準拠した機能を提供するプログラムである。例えば、検索サーバ用のＷｅｂアプリケーションプログラムを利用するＷｅｂクライアントとして検索クライアント制御プログラム５１２４を実装してもよいし、汎用のＷｅｂブラウザを利用して検索クライアント制御プログラム５１２４を実装してもよい。
【００５４】
図７は、ユーザがクライアントマシン５１００から統合検索サーバ１１００に対して統合検索要求を発行した際に、統合検索サーバ１１００内で実施される処理、および各サーバ間で実施される各種処理の流れを示す図である。以下、図７の各ステップについて説明する。
（図７：処理（１））
クライアントマシン５１００のユーザは、クライアントマシン５１００の検索クライアント制御プログラム５１２４を利用して、検索条件を指定した上で統合検索サーバ１１００に対して統合検索要求を発行する。
（図７：処理（２））
統合検索サーバ１１００の統合検索制御プログラム１１２４は、統合検索を要求したユーザの認証処理を実施するために、認証サーバ３１００に対して認証処理を要求する。認証サーバ３１００は、認証制御プログラム３１２４を実行して認証処理を行う。統合検索制御プログラム１１２４は、その認証結果を受け取る。
【００５５】
（図７：処理（３））
処理（２）において認証に成功した場合、統合検索制御プログラム１１２４は、統合検索サーバ１１００が管理しているアカウント対応管理表６１００を参照し、統合検索を要求したユーザに関連付けられているアクセスアカウント情報の一覧を取得する。
（図７：処理（４））
統合検索制御プログラム１１２４は、統合検索サーバ１１００が管理している検索サーバ管理表６２００を参照し、処理（３）において取得したアクセスアカウントと同じネットワークドメインに属している検索サーバのリストを取得する。アクセスアカウントと検索サーバの対応関係については、後述の図１１で改めて説明する。
【００５６】
（図７：処理（５））
統合検索制御プログラム１１２４は、処理（４）においてリストから取得した検索サーバ２２００と２３００それぞれに対して検索要求を発行する。なお、本ステップで統合検索制御プログラム１１２４が発行する検索要求において、各検索サーバに検索を要求する際のログオン認証のために用いるアクセスアカウントは後述する代表ユーザアカウントである。ただし、処理（３）で取得した関連付けアクセスアカウントがアクセス権限を有する範囲を検索条件として指定する。詳細は後述の図２０で改めて説明する。
（図７：処理（６））
検索サーバ２２００の検索制御プログラム２２２４は、処理（５）で検索要求を発行したユーザの認証処理を行うため、認証サーバ３２００に対して認証処理を要求する。認証サーバ３２００は、認証制御プログラム３２２４によって認証処理を行う。検索制御プログラム２２２４は、その認証結果を受け取る。
【００５７】
（図７：処理（７））
処理（６）において認証に成功した場合、検索制御プログラム２２２４は、検索サーバ２２００が管理している検索インデックス情報を利用して、指定された検索条件で検索を実行し、検索条件内で指定されているアクセスアカウント情報を用いてセキュリティトリミングを実施した上で検索結果を要求元に返信する。
（図７：処理（５）〜処理（７）：補足）
処理（５）〜処理（７）までの処理は、検索サーバ２３００などの検索対象となっている他の検索サーバについても同様に実施する。
（図７：処理（８））
統合検索サーバ１１００の統合検索制御プログラム１１２４は、検索要求を発行した全ての検索サーバから検索結果を受け取った後、各検索サーバから受け取った検索結果を統合した上で、検索要求元に統合検索結果として返信する。以上の処理によって、統合検索を実現することができる。
【００５８】
図８は、統合検索要求パケット７０００のデータ構造を示す図である。統合検索要求パケット７０００は、検索クライアント制御プログラム５１２４から統合検索制御プログラム１１２４に対して統合検索要求を発行する際に、要求内容を統合検索制御プログラム１１２４に伝えるための通信パケットである。
【００５９】
統合検索要求パケット７０００は、パケットヘッダ７０１０、パケットデータ７０２０を有する。
【００６０】
パケットヘッダ７０１０は、認証方法識別情報７０１１、ユーザ認証情報７０１２、セッション情報７０１６を含む。
【００６１】
認証方法識別情報７０１１は、検索クライアント制御プログラム５１２４と統合検索制御プログラム１１２４の間で認証処理を実施する場合の認証方法を指定する情報を記述している。統合検索制御プログラム１１２４は、認証方法識別情報７０１１が指定する認証方法にしたがって、ユーザ認証処理を実施する。認証方法識別情報７０１１は、検索クライアント制御プログラム５１２４と統合検索制御プログラム１１２４との間で静的に指定するようにしてもよいし、統合検索要求に先立って認証方法を両者の間で取り決めるネゴシエート処理を別途行うようにしてもよい。
【００６２】
ユーザ認証情報７０１２は、認証方法識別情報７０１１が指定する認証方法において、認証対象となるユーザを特定するために必要な情報を保持する。例えば、認証対象となるアクセスアカウントを管理する認証ドメインを識別するためのドメイン識別子７０１３、ユーザを識別するためのユーザ識別子７０１４、対象ユーザであることを証明する手段の１つであるパスワード７０１５、などを格納する。ユーザ認証情報７０１２は、認証方法識別情報７０１１が指定する認証方法ごとに、必要な情報を個別に規定するようにしてもよい。
【００６３】
セッション情報７０１６は、検索クライアント制御プログラム５１２４が以前に当該統合検索要求を発行した際に、統合検索制御プログラム１１２４が実施した認証処理結果を特定する情報を格納する。例えば、ユーザ認証が成功した時に統合検索制御プログラム１１２４が発行するセッション識別子７０１７などを格納する。
【００６４】
統合検索制御プログラム１１２４は、セッション識別子７０１７を発行する際に、認証成功した対象ユーザの識別情報を内部で保存しておく。検索クライアント制御プログラム５１２４がセッション識別子７０１７を指定して統合検索要求を発行した場合、統合検索制御プログラム１１２４は、内部に保存しておいたユーザの識別情報をもとに、統合検索要求を発行したユーザを特定し、当該ユーザに対する認証処理を省略した上で、統合検索処理を実施する。
【００６５】
検索クライアント制御プログラム５１２４は、セッション識別子７０１７を利用することにより、統合検索要求を発行する際に毎回ユーザ認証情報を送る必要がなくなる。なお、セッション情報７０１６を利用するか否かはオプションであり、必ずしも使う必要はない。セッション情報７０１６を使わない場合は、認証方法識別情報７０１１とユーザ認証情報７０１２を利用してユーザを認証すればよい。
【００６６】
パケットデータ７０２０は、検索クエリ７０２１などを保持する。検索クエリ７０２１は、統合検索要求における検索条件を記述する。検索条件には、例えば、対象ファイルに含まれる検索キーワード（文字列）を指定してもよいし、対象ファイルのメタデータに含まれるファイル作成者、ファイル更新日時などを指定してもよいし、それらの組合せを指定してもよい。
【００６７】
図９は、検索要求パケット８０００のデータ構造を示す図である。検索要求パケット８０００は、統合検索制御プログラム１１２４から検索サーバ２２００の検索制御プログラム２２２４に対して検索要求を発行する際に、要求内容を検索制御プログラム２２２４に伝えるための通信パケットである。
【００６８】
検索要求パケット８０００は、パケットヘッダ８０１０、パケットデータ８０２０を有する。パケットヘッダ８０１０については、統合検索要求パケット７０００におけるパケットヘッダ７０１０と同じであるため、説明を省略する。
【００６９】
パケットデータ８０２０は、検索クエリ８０２１、検索結果絞り込み用アカウント情報８０２２、などを保持する。検索クエリ８０２１は、統合検索要求における検索条件を記述する。検索条件には、例えば、対象ファイルに含まれる検索キーワード（検索文字列）を指定してもよいし、対象ファイルのメタデータに含まれるファイル作成者、ファイル更新日時などを指定してもよいし、それらの組合せを指定してもよい。検索結果絞り込み用アカウント情報８０２２は、検索クエリ８０２１によって指定された検索条件に合致するファイルのなかで、本欄が指定するアクセスアカウントが参照権限を有するものを絞り込むための条件として利用する。
【００７０】
検索制御プログラム２２２４は、検索結果のセキュリティトリミングを実施する場合、検索結果絞り込み用アカウント情報８０２２が指定するアクセスアカウント情報を利用するようにしてもよいし、検索要求パケット８０００のパケットヘッダ８０１０の中で指定されたユーザに対応するアクセスアカウント情報を利用するようにしてもよいし、それらを組み合わせて利用するようにしてもよい。
【００７１】
検索結果絞り込み用アカウント情報８０２２を利用することにより、例えば、複数のユーザからの検索要求に対して共通のアクセスアカウントを用いて、検索を実施することもできる。この場合、セキュリティトリミングの条件として、検索結果絞り込み用アカウント情報８０２２が指定されることになる。これにより、統合検索制御プログラム１１２４と検索制御プログラム２２２４の間で確立する１つのセッションを複数のユーザからの検索要求において共用し、通信セッション数を減らすことができる。通信セッション数を削除することにより、検索制御プログラム２２２４が管理する必要があるセッション情報量を削減し、メモリ利用量を削減することができる。
【００７２】
図１０は、アカウント対応管理表６１００の構成とデータ例を示す図である。アカウント対応管理表６１００は、統合検索サーバ１１００が提供する統合検索サービスにおいて、検索結果のセキュリティトリミングを行うために、統合検索サーバ１１００に登録されているユーザに関連付けられているアカウント情報を管理する。
【００７３】
統合検索サーバ１１００は、統合検索要求を受け取ると、統合検索要求を発行したユーザを特定した上で、アカウント対応管理表６１００を参照して、そのユーザに関連付けられているアクセスアカウント情報のリストを取得することができる。すなわち、統合検索要求を発行したユーザが他のネットワークドメインにおいて有するアクセスアカウントの一覧を取得し、各検索サーバに対して検索要求を発行する際に、これを検索条件として指定することができる。これは、統合検索要求を発行したアクセスアカウントを、各検索サーバにおけるアクセスアカウントに変換しているものとみることもできる。
【００７４】
なお、同検索サーバ２２００、２３００もアカウント対応管理表を備えている場合は、各検索サーバにおいても同様にアクセスアカウントを変換することもできる。すなわち、アクセスアカウントの変換は、一義的には統合検索サーバ１１００が実施するが、各検索サーバにおいても予備的に実施することができる。
【００７５】
アカウント対応管理表６１００は、ドメイン識別情報６１１０、ユーザＩＤ６１２０、パスワード６１３０、対応ＩＤ６１４０を有する。
【００７６】
ドメイン識別情報６１１０は、ユーザＩＤ６１２０が保持しているアクセスアカウントが属するネットワークドメインを識別するための情報を格納する。この情報は、当該ネットワークドメインを識別するための文字列や識別番号などでもよいし、当該ネットワークドメインを管理する認証サーバの識別情報でもよい。
【００７７】
ユーザＩＤ６１２０は、ユーザを識別するためのアクセスアカウント情報を保持する。この情報は、当該ユーザを識別するための任意の文字列や識別番号などでもよい。なお、ユーザＩＤ６１２０が保持する情報は、ユーザを識別する情報以外に、複数のユーザからなるグループ識別情報を格納するようにしてもよい。
【００７８】
パスワード６１３０は、ユーザＩＤ６１２０が保持するアクセスアカウント情報によって識別されるユーザであることを証明するための情報を保持する。例えば、ユーザ認証を実施するときに利用するパスワード文字列や証明書などを保持する。パスワード６１３０が保持する情報は、情報漏えいを防ぐために、必要に応じて暗号化などを施してもよい。
【００７９】
対応ＩＤ６１４０は、アカウント対応管理表６１００に登録されている各アクセスアカウント情報の対応関係を示す識別情報を格納する。対応ＩＤ６１４０の値が同じアクセスアカウントは、互いに関連付けられていることを示す。すなわち、同じユーザが各ネットワークドメイン上で有するアクセスアカウントは、対応ＩＤ６１４０の値がそれぞれ同じである。図１０に示す例では、ユーザＡ〜ユーザＡ３は実際には同じユーザのアクセスアカウントであることを示す。
【００８０】
図１１は、検索サーバ管理表６２００の構成とデータ例を示す図である。検索サーバ管理表６２００は、各検索サーバが属するネットワークドメイン、各検索サーバがアクセスする共有フォルダ、などの情報を管理する。ここでいう共有フォルダは、ファイルサーバがファイルを公開するためにサーバ間で共有しているフォルダである。検索サーバは、共有フォルダ内に格納されているファイルを検索対象とするため、共有フォルダの位置や必要となるアクセス権限を把握しておく必要がある。
【００８１】
検索サーバ２２００が備える検索サーバ管理表６２００は、検索サーバ２２００に関する上記情報のみを管理し、統合検索サーバ１１００が備える検索サーバ管理表６２００は、統合検索で利用する全ての検索サーバに関する上記情報をまとめて管理する。図１１では、統合検索サーバ１１００が備える検索サーバ管理表６２００を例示した。
【００８２】
統合検索サーバ１１００は、統合検索要求を受け取ると、自身の検索サーバ管理表６２００を参照して、検索要求を発行する相手先の候補となる検索サーバの一覧を取得することができる。また、検索サーバ２２００は、検索インデックスを作成したり更新したりする際、自身の検索サーバ管理表６２００を参照して、検索対象である共有フォルダに関する情報を一括して取得することができる。
【００８３】
検索サーバ管理表６２００は、検索サーバ識別情報６２１０、ファイル共有識別情報６２２０、代表ユーザアカウント６２３０、代表ユーザアカウントパスワード６２４０、ドメイン識別情報６２５０、パブリックアカウント６２６０を有する。
【００８４】
検索サーバ識別情報６２１０は、検索サーバの識別情報を格納する。この情報は、検索サーバを識別するための任意の文字列や識別番号などでもよいし、検索サーバにアクセスするために必要なホスト名やＩＰアドレスといった情報でもよい。なお、検索サーバ２２００が備える検索サーバ管理表６２００は、原則として自検索サーバを識別する情報のみを保持する。
【００８５】
ファイル共有識別情報６２２０は、検索サーバ識別情報６２１０の値で識別される検索サーバが保持する共有フォルダを識別するための情報を格納する。一般に共有フォルダには共有名が付与されているので、その共有名を格納すればよい。この情報は、共有フォルダを識別するための任意の文字列や識別番号などでもよいし、共有フォルダにアクセスするために必要なホスト名やパス名などからなるＵＲＬのような文字列でもよい。１台の検索サーバが複数の共有フォルダを備えている場合は、同じ検索サーバについて本情報を複数設けてもよい。図１１では、検索サーバＰが２つの共有フォルダを備える例を示した。
【００８６】
代表ユーザアカウント６２３０は、ファイル共有識別情報６２２０の値で識別される共有フォルダが格納している検索対象ファイルにアクセスする権限を持つアクセスアカウント情報を保持する。本情報は、検索サーバが共有フォルダ内のファイルを検索するための検索インデックスを作成する際に用いられる。共有フォルダが格納しているファイルは、必ずしも全てのユーザに対して公開されているとは限らないので、検索インデックスを作成する際には、全てのファイルに対してアクセス権限を有するアクセスアカウントを用いることとしたものである。
【００８７】
代表ユーザアカウントパスワード６２４０は、代表ユーザアカウント６２３０の値で識別される代表ユーザであることを証明するための情報を保持する。例えば、ユーザ認証を実施するときに利用するパスワード文字列や証明書などを保持する。代表ユーザアカウントパスワード６２４０が保持する情報は、情報漏えいを防ぐために、必要に応じて暗号化などを施してもよい。
【００８８】
ドメイン識別情報６２５０は、検索サーバ識別情報６２１０の値で識別される検索サーバが属するネットワークドメインを識別するための情報を保持する。この情報は、ネットワークドメインを識別するための任意の文字列や識別番号などでもよいし、ネットワークドメインを管理する認証サーバの識別情報でもよい。
【００８９】
パブリックアカウント６２６０は、ファイル共有識別情報６２２０の値で識別される共有フォルダ上でアクセス制御がなされていないファイルに対してのみアクセスすることができる公開アクセスアカウント情報を格納する。例えば、ｅｖｅｒｙｏｎｅアカウント、ａｎｏｎｙｍｏｕｓアカウント、ｎｏｂｏｄｙアカウントなどが公開アクセスアカウントに相当する。公開アクセスアカウントを利用することにより、共有フォルダに対してアクセス権限を持たないユーザから検索要求を受けた場合でも、アクセス制御がなされていないファイル群の中から検索条件に合致したものを検索結果として提供することができる。なお、公開アクセスアカウントで共有フォルダにアクセスする場合は、一般的にパスワードは不要である。パスワードが別途必要であれば、検索サーバ管理表６２００にさらにそのパスワードを追加記述するようにしてもよい。
【００９０】
図１２は、検索サーバ２２００が備える検索インデックス管理表６３００の構成とデータ例を示す図である。検索インデックス管理表６３００は、検索サーバ２２００が作成した検索インデックスの情報を管理する。検索インデックス管理表６３００は、キーワード６３１０、該当位置情報６３２０を有する。
【００９１】
キーワード６３１０は、検索する対象となるファイルをインデクシング処理によって解析して得られた文字列を格納する。該当場所情報６３２０は、キーワード６３１０が記述している文字列を含んでいるファイルに関する情報を登録する。
【００９２】
該当場所情報６３２０はさらに、ファイル識別情報６３２１および６３２４、該当位置オフセット６３２２および６３２５、重み付け６３２３および６３２６を有する。
【００９３】
ファイル識別情報６３２１と６３２４は、キーワード６３１０が記述しているキーワード文字列が出現するファイルを識別するための情報を保持する。具体的には、後述する検索インデックス登録ファイル管理表６４００におけるファイル識別情報６４１０に登録されている情報を登録してもよいし、対象ファイルに実際にアクセスするときのファイルパス名やファイル識別子を登録してもよい。
【００９４】
該当位置オフセット６３２２と６３２５は、ファイル識別情報６３２１と６３２４が指定するファイルの中で、キーワード６３１０が記述しているキーワード文字列が出現する位置を示すオフセット情報を登録する。キーワード６３１０が記述しているキーワード文字列が１つのファイル内の複数箇所に出現する場合、該当位置オフセット６３２２と６３２５は、複数個のオフセット情報を登録する。
【００９５】
重み付け６３２３と６３２６は、ファイル識別情報６３２１と６３２４が指定するオフセット位置において、キーワード６３１０が記述しているキーワード文字列が出現することによる重要度の値を登録する。この値は、検索サーバ２２００が適宜設定する。この値は、大きければ大きいほど重要だという意味づけを行う。また、この値は、検索結果の絞り込みや整列に利用できるようにする。
【００９６】
該当位置情報６３２０は、１つのキーワード６３１０に対して複数個登録できるようにしてもよい。これにより、キーワード文字列に該当するファイルが複数存在する場合にも対応することができる。なお、該当位置情報６３２０において、該当するレコードが無効であることを意味するｎｕｌｌ値を登録することもできる。ｎｕｌｌ値は、項目数が他のレコードより少ないレコードについて、項目が空いてしまう部分を埋めるために利用することができる。
【００９７】
図１３は、検索サーバ２２００が備える検索インデックス登録ファイル管理表６４００の構成とデータ例を示す図である。検索インデックス登録ファイル管理表６４００は、検索サーバ２２００が検索インデックスを作成する対象とするファイルサーバ４２００上の共有フォルダから取得したファイルに関する情報を管理する。
【００９８】
検索インデックス登録ファイル管理表６４００は、ファイル識別情報６４１０、ファイルパス名６４２０、ＡＣＬ情報６４３０、メタデータ６４４０を有する。
【００９９】
ファイル識別情報６４１０は、検索サーバ２２００が検索インデックスを作成するために取得したファイルを一意に識別するための識別子である。検索サーバ２２００が付与する通番でもよいし、ファイルサーバ４２００がファイルに付与した通番でもよい。通番以外にも、ファイルを識別するために利用することができる適当な文字列を利用するようにしてもよい。
【０１００】
ファイルパス名６４２０は、ファイルが格納されているファイルパス名に相当する。検索サーバ２２００は、ファイルパス名６４２０を指定してファイル取得要求を出すことにより、当該ファイルを取得することができる。
【０１０１】
ＡＣＬ情報６４３０は、対象ファイルをインデクシングした際にメタデータの一要素として取得したＡＣＬ情報に相当する。ＡＣＬ情報６４３０は、ユーザ／グループ識別情報６４３１、操作内容６４３２、許可／不許可指定フラグ６４３３を有する。ユーザ／グループ識別情報６４３１が指定するユーザあるいはグループは、操作内容６４３２が指定する操作を、許可／不許可指定フラグ６４３３が指定するフラグにしたがって許可され、または不許可とされる。
【０１０２】
操作内容６４３２については、ファイルサーバ４２００によって規定されているＡＣＬ形式に基づいた操作内容を個別に規定するようにしてもよいし、汎用ＡＣＬの形式に基づいた操作内容を指定するようにしてもよい。例えば図１３において、操作内容６４３２が“Ｒ”である場合は読み出しアクセス（ＲＥＡＤアクセス）を意味し、“Ｗ”は書き込みアクセス（ＷＲＩＴＥアクセス）を意味している。もちろん、必ずしもこの形式にしたがう必要はなく、これ以外の形式を利用してもよい。
【０１０３】
ユーザ／グループ識別情報６４３１、操作内容６４３２、許可／不許可指定フラグ６４３３の組を複数個登録することにより、複数条件を組み合わせたアクセス制御を行うことができるようになる。
【０１０４】
メタデータ６４４０は、対象ファイルをインデクシングした際に取得したメタデータを格納する。
【０１０５】
ここまで、統合検索システム１００００の構成、パケットのデータ構造、管理情報の構成について説明した。以降では、統合検索システム１００００の処理手順について説明する。ここでは、アカウント登録要求処理（図１４）、ログオン処理（図１５）、アカウント登録処理（図１６）、ファイル共有登録要求処理（図１７）、ファイル共有登録処理（図１８）、統合検索要求処理（図１９）、統合検索処理（図２０）、および検索処理（図２１）について説明する。
【０１０６】
図１４は、クライアントマシン５１００から統合検索サーバ１１００または検索サーバ２２００に対してアクセスアカウントを登録するよう要求する処理の流れを示す。統合検索サービスを利用するためには、あらかじめ統合検索サーバ１１００上に、統合検索を要求するアクセスアカウントと各検索サーバ上のアクセスアカウントとの対応関係を登録しておく必要がある。以下では、システム管理者が統合検索サーバ１１００に対してアクセスアカウントを登録するよう要求する処理を例に説明する。検索サーバ２２００に対してアクセスアカウントを登録するよう要求する処理も内容は同じである。
（図１４：ステップＳ１０１）
システム管理者は、クライアントマシン５１００を利用して統合検索サーバ１１００にログオンする。統合検索サーバ１１００は、ログオンを要求したユーザを認証する。ログオン処理の流れについては後述する。なお、クライアントマシン５１００を利用する以外に、システム管理用の専用マシンを利用するようにしてもよい。
（図１４：ステップＳ１０２）
システム管理者は、統合検索サーバ１１００にログオンした後、これから新たに登録するアクセスアカウントに対して、統合検索サーバ１１００が登録済の既存アカウントと関連付けを行うかどうかを選択する。関連付けすることを選択した場合はステップＳ１０３へ進み、関連付けしないことを選択した場合はステップＳ１０５へ進む。
【０１０７】
（図１４：ステップＳ１０３）
システム管理者は、統合検索サーバ１１００に対して、登録済アカウントの一覧を取得するよう要求する。統合検索サーバ１１００は、その要求を受け取ると、アカウント対応管理表６１００に格納されているアカウント一覧を取得してクライアントマシン５１００に提供する。このアカウント一覧は、アカウント対応管理表６１００に格納されている対応ＩＤ６１４０も含む。
（図１４：ステップＳ１０４）
システム管理者は、統合検索サーバ１１００が送信したアカウント一覧を取得した後、アカウント一覧の中から新たに登録するアクセスアカウントと対応付ける対応ＩＤ６１４０を選択し、これらを対応付ける旨を指定した上で、統合検索サーバ１１００に対して新たなアクセスアカウントを登録するよう要求する。新たに登録または関連付けるアクセスアカウントが属するネットワークドメインを、併せて指定してもよい。ステップＳ１０５においても同様である。統合検索サーバ１１００がアクセスアカウントを登録する処理の流れについては後述する。
【０１０８】
（図１４：ステップＳ１０５）
システム管理者は、新たに登録するアクセスアカウント情報を指定して、統合検索サーバ１１００に対してアクセスアカウントを登録するよう要求する。
（図１４：ステップＳ１０１〜Ｓ１０５：補足）
図１４に示す処理では、アクセスアカウント情報を１件ずつ逐次的に登録することができる。これに代えて、スクリプトプログラムなどを利用して図１４の処理を繰り返し実行することにより、複数のアクセスアカウント情報を登録することもできる。また、図１４で示した処理の流れに準じた形式を用いて、複数の新規アクセスアカウント情報を指定して一括登録する機能を提供するようにしてもよい。一括登録に対応させる場合は、図１０に示すアカウント対応管理表６１００に含まれるデータを登録対象として指定できるようにすればよい。
【０１０９】
図１５は、図１４の処理ステップＳ１０１におけるログオン処理の流れを示す図である。以下では、ログオンを要求する一般ユーザがクライアントマシン５１００を利用して統合検索サーバ１１００に対してログオンを要求する処理を例に説明する。なお、システム管理者がログオンする場合の処理や、検索サーバ２２００に対するログオン処理についても処理内容は同じである。
（図１５：ステップＳ２０１）
ログオンを要求するユーザは、クライアントマシン５１００を用いて、統合検索サーバ１１００に対してログオン処理を要求する。この要求の中に、クライアントマシン５１００が利用することができる認証方式の候補に関する情報を送るようにしてもよい。
（図１５：ステップＳ２０２）
統合検索サーバ１１００は、ステップＳ２０１でログオン処理要求を受け取ると、ログオンを要求したユーザに対して、ユーザの認証情報を送るように返答する。この返答の中に、統合検索サーバ１１００が対応することができる認証方式についての情報を含めるようにしてもよい。
【０１１０】
（図１５：ステップＳ２０３）
ログオンを要求したユーザは、自身の認証情報を入力した上で再度ログオン処理を要求する。ここで入力する認証情報は、認証方式をステップＳ２０１〜Ｓ２０２で取り決めた場合は、その方式に準じたものにする。
（図１５：ステップＳ２０４）
統合検索サーバ１１００は、認証情報が付与されたログオン処理要求を受け取ると、指定された認証情報を利用して認証処理を実施する。ここで実施する認証処理は、統合検索サーバ１１００内部で行うようにしてもよいし、外部の認証サーバ３１００などと連携して実施するようにしてもよい。
【０１１１】
（図１５：ステップＳ２０５）
統合検索サーバ１１００は、認証処理が成功したかどうかを確認する。認証処理が成功した場合はステップＳ２０６へ進み、失敗した場合はステップＳ２０７へ進む。
（図１５：ステップＳ２０６）
統合検索サーバ１１００は、ログオンが成功した旨を、セッション識別情報などとともにクライアントマシン５１００へ応答する。セッション識別情報の例として、セッション識別子などがある。統合検索サーバ１１００は、ログオンを要求したユーザのアクセスアカウント情報と関連付けたセッション識別子を発行し、その関連付け情報を内部的に管理しておくようにしてもよい。
（図１５：ステップＳ２０７）
統合検索サーバ１１００は、ログオンが失敗した旨を、クライアントマシン５１００へ応答する。
【０１１２】
図１６は、図１４のステップＳ１０４とＳ１０５におけるアクセスアカウント登録処理の流れを示す図である。以下では、統合検索サーバ１１００がアクセスアカウントを登録する処理を例に説明する。なお、検索サーバ２２００がアクセスアカウントを登録する処理についても処理内容は同じである。
（図１６：ステップＳ３０１）
統合検索サーバ１１００は、ステップＳ１０４またはＳ１０５において、アクセスアカウントを登録する要求を受け取ると、その要求において指定されている登録先ネットワークドメイン情報を検証する。例えば、指定されたネットワークドメイン識別情報６１２０に基づき、そのネットワークドメインを管理する認証サーバが存在し、動作しているかどうかを確認する。
（図１６：ステップＳ３０２）
統合検索サーバ１１００は、ネットワークドメインを検証した後、その検証結果に基づいて、指定されたネットワークドメインが有効であるかどうかを調べる。指定されたネットワークドメインが無効である場合は本処理をエラー終了する。指定されたネットワークドメインが有効である場合はステップＳ３０３へ進む。
【０１１３】
（図１６：ステップＳ３０３）
統合検索サーバ１１００は、登録するよう指定されたアクセスアカウントを認証する。統合検索サーバ１１００が自ら認証処理を実施する場合は、所定の認証処理を実施する。外部の認証サーバを利用して認証処理を実施する場合は、その認証サーバに対して認証処理を要求し、認証結果を取得する。
（図１６：ステップＳ３０４）
統合検索サーバ１１００は、アクセスアカウントを認証する処理を実施した後、認証処理が成功したかどうかを調べる。認証失敗した場合は、本処理をエラー終了する。認証成功した場合は、ステップＳ３０５へ進む。
（図１６：ステップＳ３０５）
統合検索サーバ１１００は、アカウント対応管理表６１００を参照して、登録するよう指定されたアクセスアカウントが既に登録済みかどうかを確認する。既に登録済みである場合は、本処理フローをエラー終了する。あるいは、エラー終了せずに、強制的に既存のアクセスアカウント情報に対して上書き更新するようにしてもよい。登録済みでなかった場合は、ステップＳ３０６へ進む。
【０１１４】
（図１６：ステップＳ３０６）
統合検索サーバ１１００は、アカウント対応管理表６１００に新たなレコードを１つ作成し、登録するよう要求されたアクセスアカウント情報を登録する。ただし、この段階では、アカウント対応管理表６１００における対応ＩＤ６１４０欄には何も登録しない。
（図１６：ステップＳ３０７）
統合検索サーバ１１００は、ステップＳ１０２の結果に基づき、登録するよう要求されたアクセスアカウントを既存アクセスアカウントと対応付けする必要があるかどうかを確認する。対応付けが必要である場合はステップＳ３０８へ進み、必要でない場合はステップＳ３０９へ進む。
（図１６：ステップＳ３０８）
統合検索サーバ１１００は、ステップＳ３０６で新たにアカウント対応管理表６１００に登録したレコードの対応ＩＤ６１４０欄に、対応付けするアクセスアカウントの対応ＩＤ６１４０と同じ値を登録する。
【０１１５】
（図１６：ステップＳ３０９）
統合検索サーバ１１００は、ステップＳ３０６で新たにアカウント対応管理表６１００に登録したレコードの対応ＩＤ６１４０欄に、新たに採番した対応ＩＤを登録する。
（図１６：ステップＳ３０１〜Ｓ３０９：補足）
以上説明した処理の流れに準じて、アカウント対応管理表６１００に登録されている情報を更新する処理を実装することもできるし、登録済みアカウントを削除する処理を実装することもできる。
【０１１６】
図１７は、クライアントマシン５１００から検索サーバ２２００に対して、検索対象とする共有フォルダを検索サーバ２２００へ登録するよう要求する処理の流れを示す。以下では、システム管理者が検索サーバ２２００に対して行う共有フォルダを登録するよう要求する処理を例に説明する。
（図１７：ステップＳ４０１）
システム管理者は、クライアントマシン５１００を利用して検索サーバ２２００にログオンする。ログオン処理の内容は、図１５で説明した内容と同じである。なお、クライアントマシン５１００を利用する以外に、システム管理用の専用マシンを利用するようにしてもよい。
（図１７：ステップＳ４０２）
システム管理者は、検索サーバ２２００にログオンした後、検索対象とする共有フォルダに関する情報を指定して、共有フォルダを登録するよう検索サーバ２２００に対して要求する。ここで指定する情報は、検索サーバ管理表６２００に含まれる情報の中で、ファイル共有識別情報６２２０、代表ユーザアカウント６２３０、代表ユーザアカウントパスワード６２４０、ドメイン識別情報６２５０、およびパブリックアカウント６２６０である。ドメイン識別情報６２５０には、登録しようとしている共有フォルダ上のファイルにアクセスした時に、ファイルサーバ３１００がファイルアクセス制御に利用するネットワークドメインを識別する情報を格納する。検索サーバ２２００が共有フォルダを登録する処理の流れについては後述する。
（図１７：ステップＳ４０１〜Ｓ４０２：補足）
図１７に示す処理では、共有フォルダに関する情報を１件ずつ逐次的に登録することができる。なお、スクリプトプログラムなどを利用して本処理を繰り返し実行することにより、複数の共有フォルダに関する情報を登録することもできる。また、図１７で示した処理の流れに準じた形式で、複数の共有フォルダに関する情報を指定して一括登録する機能を提供するようにしてもよい。一括登録に対応させる場合は、図１１に示す検索サーバ管理表６２００に含まれるデータを登録対象として指定できるようにすればよい。
【０１１７】
図１８は、図１７のステップＳ４０２における処理の流れを示す図である。以下では、検索サーバ２２００が共有フォルダを登録する処理を例に説明する。
（図１８：ステップＳ５０１）
検索サーバ２２００は、共有フォルダを登録するよう要求を受け取ると、指定されたネットワークドメイン情報を検証する。例えば、指定されたネットワークドメイン識別情報６２５０に基づき、当該ネットワークドメインを管理する認証サーバが存在し、動作しているかどうかを確認する。
（図１８：ステップＳ５０２）
検索サーバ２２００は、ステップＳ５０１の確認後、その確認結果に基づき、指定されたネットワークドメインは有効であるかどうかを調べる。指定されたネットワークドメインが無効である場合は、本処理をエラー終了する。指定されたネットワークドメインが有効である場合は、ステップＳ５０３へ進む。
【０１１８】
（図１８：ステップＳ５０３）
検索サーバ２２００は、指定された代表ユーザアカウントを認証する。ここでは、指定された共有フォルダにアクセスするユーザを認証する外部の認証サーバに対して認証処理を要求する。なお、認証サーバに対して認証処理を要求することに代えて、指定されたアクセスアカウント情報で実際に当該共有フォルダにアクセスを試してみて、アクセス成功すれば認証成功と判断するようにしてもよい。この場合でも、当該共有フォルダを提供するファイルサーバ４２００から認証サーバ３２００に対して認証要求が発行されることになるので、同様の結果を得ることができる。
（図１８：ステップＳ５０４）
検索サーバ２２００は、認証処理が成功したかどうかを調べる。認証失敗した場合は、本処理をエラー終了する。認証成功した場合は、ステップＳ５０５へ進む。
【０１１９】
（図１８：ステップＳ５０５）
検索サーバ２２００は、共有フォルダに関する情報を検索サーバ管理表６２００に登録する。ただし、この段階では、検索サーバ管理表６２００におけるパブリックアカウント６２６０欄には何も登録しない。
（図１８：ステップＳ５０６〜Ｓ５０７）
検索サーバ２２００は、共有フォルダに関する情報を登録した後、その登録内容にしたがって、指定されたパブリックアカウントの有効性を確認する。ここでは、指定されたパブリックアカウント情報で実際に当該共有フォルダにアクセスを試してみて、アクセス成功すれば有効であると判断するようにしてもよい。当該パブリックアカウントが有効である場合はステップＳ５０８に進み、有効でなければステップＳ５０９にスキップする。
【０１２０】
（図１８：ステップＳ５０８）
検索サーバ２２００は、ステップＳ５０５で新たに検索サーバ管理表６２００に登録したレコードのパブリックアカウント６２６０欄に、指定されたパブリックアカウント情報を登録する。
（図１８：ステップＳ５０９）
検索サーバ２２００は、パブリックアカウントに関する処理を行った後、検索サーバ管理表６２００の内容を統合検索サーバ１１００に送る必要があるかどうかを調べる。送る必要がある場合はステップＳ５１０へ進み、送る必要がない場合は本処理フローを終了する。
（図１８：ステップＳ５０９：補足）
本ステップにおいて、各検索サーバ単位で、検索サーバ管理表６２００の情報をどのような契機で統合検索サーバ１１００に送るのかを設定できるようにしてもよい。例えば、検索サーバ管理表６２００に対して更新があった場合に毎回統合検索サーバ１１００に送るようにしてもよいし、送らないようにしてもよい。また、デーモンプログラムなどを別途用意して、定期的に更新内容を統合検索サーバ１１００に送るような機能を提供するようにしてもよい。検索サーバ２２００は、本ステップにおいて、あらかじめ定めた送信契機に達していれば、検索サーバ管理表６２００の内容を送る必要があると判断する。
【０１２１】
（図１８：ステップＳ５１０）
検索サーバ２２００は、統合検索サーバ１１００に対して自身が持つ検索サーバ管理表６２００に格納されている情報を送る。統合検索サーバ１１００は、受け取った情報を自身が持つ検索サーバ管理表６２００に反映させる。
（図１８：ステップＳ５０１〜Ｓ５１０：補足）
以上説明した処理の流れに準じて、検索サーバ管理表６２００に登録されている情報を更新する処理を実装することもできるし、登録済みの共有フォルダ情報を削除する処理を実装するとこもできる。
【０１２２】
図１９は、クライアントマシン５１００から統合検索サーバ１１００に対して統合検索を要求する処理の流れを示す図である。以下、図１９の各ステップについて説明する。
（図１９：ステップＳ６０１）
統合検索を要求するユーザは、クライアントマシン５１００上の検索クライアント制御プログラム５１２４を利用して統合検索サーバ１１００にログオンする。ログオン処理の内容は、図１５で説明した内容と同じである。
（図１９：ステップＳ６０２）
検索クライアント制御プログラム５１２４は、ユーザがログオンした後、検索キーワードなどの検索条件を取得し、取得した検索条件に基づき統合検索サーバ１１００が解釈できる検索クエリを作成し、その検索クエリを用いて統合検索要求を統合検索サーバ１１００に送る。統合検索サーバ１１００における統合検索処理の流れについては後述する。
（図１９：ステップＳ６０３）
統合検索サーバ１１００は、統合検索を実施してその結果をクライアントマシン５１００に送信する。検索クライアント制御プログラム５１２４は、統合検索結果を取得する。検索クライアント制御プログラム５１２４は、統合検索結果を取得した後、その統合検索結果をユーザに応答して本処理を終了する。
【０１２３】
図２０は、図１９のステップＳ６０２における統合検索処理の流れを示す図である。以下では、統合検索サーバ１１００上の統合検索制御プログラム１１２４が実施する統合検索処理を例に説明する。
（図２０：ステップＳ７０１）
統合検索制御プログラム１１２４は、統合検索サーバ１１００が管理するアカウント対応管理表６１００を参照して、統合検索を要求したユーザに関連付けられている対応ＩＤ６１４０を取得する。
（図２０：ステップＳ７０２）
統合検索制御プログラム１１２４は、統合検索サーバ１１００が管理するアカウント対応管理表６１００を参照して、ステップＳ７０１で取得した対応ＩＤ６１４０と同じ対応ＩＤを有するドメイン識別子６１１０、ユーザＩＤ６１２０、パスワード６１３０などを取得する。本ステップで取得する情報は、複数のレコードである場合もある。
【０１２４】
（図２０：ステップＳ７０３）
統合検索制御プログラム１１２４は、統合検索サーバ１１００が管理している検索サーバ管理表６２００を参照して、登録されている検索サーバの一覧を取得する。
（図２０：ステップＳ７０４）
統合検索制御プログラム１１２４は、ステップＳ７０３で取得した検索サーバ全てに対して、ステップＳ７０５〜Ｓ７０８で説明する処理を実施したか否かを判断する。全ての検索サーバに対して実施済みであればステップＳ７０９へ進み、実施済みでなければステップＳ７０５へ進む。
（図２０：ステップＳ７０５）
統合検索制御プログラム１１２４は、ステップＳ７０３で取得した検索サーバの中からのうち本ステップ以降の処理を実施していない任意の１つを選択する。統合検索制御プログラム１１２４は、統合検索サーバ１１００が管理している検索サーバ管理表６２００を参照して、選択した検索サーバのレコードに登録されているドメイン識別子６２５０を取得する。
【０１２５】
（図２０：ステップＳ７０６）
統合検索制御プログラム１１２４は、ステップＳ７０５で取得したドメイン識別子６２５０がステップＳ７０２で取得したドメイン識別子６１１０に含まれているかどうかを調べる。含まれている場合はステップＳ７０７へ進み、含まれていない場合はステップＳ７０８へ進む。
（図２０：ステップＳ７０７）
統合検索制御プログラム１１２４は、ステップＳ７０５で選択した検索サーバ２２００に対して、ステップＳ７０３で取得した代表ユーザアカウント６２３０と代表ユーザアカウントパスワード６２４０を、検索サーバ２２００にログオンするためのユーザ認証情報として指定し、かつステップＳ７０２で取得したユーザＩＤ６１２０を絞り込み条件として指定した検索要求を送信し、その結果を取得する。本ステップの後は、ステップＳ７０４に戻る。
（図２０：ステップＳ７０７：補足）
統合検索を要求したユーザに関連付けられたアクセスアカウント情報には、検索サーバ２２００が検索対象としている共有フォルダにアクセスする際に必要となるアクセスアカウントのみをセットするようにする。これにより、検索結果をトリミングするために必要でないアクセスアカウント情報を検索サーバへ送信しないようにすることができる。
【０１２６】
（図２０：ステップＳ７０８）
統合検索制御プログラム１１２４は、統合検索サーバ１１００が管理する検索サーバ管理表６２００を参照して、ステップＳ７０５で選択した検索サーバにパブリックアカウント６２６０が登録されているかどうかを調べる。登録されている場合は、ステップＳ７０７に進んでそのパブリックアカウントを用いて検索サーバに対し検索要求を発行する。登録されていない場合は、検索要求を発行せずにステップＳ７０４へ戻る。
（図２０：ステップＳ７０９）
統合検索制御プログラム１１２４は、各検索サーバから取得した検索結果を統合して要求元に応答し、本処理を終了する。
【０１２７】
図２１は、図２０のステップＳ７０７における検索処理の流れを示す図である。以下では、検索サーバ２２００上の検索制御プログラム２２２４が実施する検索処理を例に説明する。なお、クライアントマシン５１００上の検索クライアント制御プログラム５１２４から検索サーバ２２００に対して検索要求処理が届いた場合における検索処理の流れも同様である。
（図２１：ステップＳ８０１）
検索制御プログラム２２２４は、検索要求元から送られてきた検索要求パケット８０００の中身を解析して、指定された検索条件や検索要求ユーザのアカウント情報などを取得する。
（図２１：ステップＳ８０２）
検索制御プログラム２２２４は、検索サーバ２２００のインデックスを利用して、指定された検索条件に合致するファイル群を抽出する。本ステップの段階では、検索要求パケット８０００の中の検索要求ユーザ認証情報８０１２あるいはセッション情報８０１６を利用して、抽出したファイルに対するセキュリティトリミングを実施する。具体的には、検索を要求したユーザのユーザ認証情報８０１２に格納されているアクセスアカウントが参照権限を有するファイル、もしくはセッション情報８０１６を用いて特定することができるアクセスアカウントが参照権限を有するファイルのみを、検索結果内に含めるようにする。
【０１２８】
（図２１：ステップＳ８０３）
検索制御プログラム２２２４は、ステップＳ８０２で抽出したファイル全てについて、検索を要求したユーザが参照権限を有するかどうかを調べ、参照権限があるものだけに検索結果を絞り込む。
（図２１：ステップＳ８０４）
検索制御プログラム２２２４は、検索結果を絞り込んだ後、その検索結果を要求元に応答し、本処理を終了する。
【０１２９】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係る統合検索サーバ１１００は、統合検索リクエストを発行するアクセスアカウントと、各検索サーバに検索リクエストを発行するアクセスアカウントとの対応関係を記述したアカウント対応管理表６１００を備える。統合検索サーバ１１００は、アカウント対応管理表６１００の記述にしたがって、統合検索リクエストを発行するアクセスアカウントに対応する各検索サーバ上のアクセスアカウントを特定し、そのアカウントがアクセスすることができる範囲のみを検索結果として返信するような検索条件を設定して、各検索サーバに検索リクエストを発行する。これにより、各検索サーバが検索を実施するために必要でないアクセスアカウント情報を各検索サーバへ送信する必要がなくなり、アカウント情報の流出を防いでセキュアな統合検索サービスを提供することができる。
【０１３０】
また、本実施形態１に係る統合検索サーバ１１００は、検索サーバ管理表６２００の記述にしたがって、統合検索リクエストを発行するアクセスアカウントが属するネットワークドメインと同じネットワークドメインに属する検索サーバを特定し、その検索サーバに対してのみ、検索リクエストを発行する。これにより、統合検索を要求したユーザが参照権限を有していないファイルを取り扱う検索サーバに対して検索リクエストを発行する必要がなくなり、不要な問合せとその応答を待つ処理を実施しなくともよくなるので、統合検索処理を高速化することができる。
【０１３１】
また、本実施形態１に係る統合検索サーバ１１００は、検索サーバが検索するファイルに対するアクセス権限を有するアクセスアカウント、またはそのアクセスアカウントと同じネットワークドメインに属する検索サーバが存在しない場合は、パブリックアカウントを用いて、各検索サーバに検索リクエストを発行することもできる。これにより、統合検索を要求したユーザが十分なアクセス権限を有さない場合においても、最低限の検索結果を得ることができる。
【０１３２】
＜実施の形態２＞
実施形態１では、図２０で説明した統合検索処理のステップＳ７０７において、統合検索サーバ１１００から検索サーバ２２００に対して検索要求を送る際に、検索要求パケット８０００の中にあるユーザ認証情報８０１２として、検索サーバ管理表６２００に登録されている代表ユーザアカウント６２３０や代表ユーザアカウントパスワード６２４０などを利用する。これは、検索サーバ２２００に確実にログオンすることができる点では便利である。
【０１３３】
一方、検索サーバ２２００がアクセスログを取得する機能を有する場合、このアクセスログには、検索サーバ２２００にアクセスしたアクセスアカウント情報が記録されることになる。実施形態１のように、検索サーバ２２００へログオンする際に代表ユーザアカウントを用いる場合、統合検索サーバ１１００から検索サーバ２２００へ検索要求を発行するときのアクセスログには、全て代表ユーザアカウントが記録されることになる。
【０１３４】
本来、代表ユーザアカウントは、検索サーバ２２００がインデックスを作成する際に、共有フォルダ上のファイルにアクセスするためのアカウントである。このため、検索サーバ２２００にとって、上記アクセスログを見ただけでは、検索サーバ２２００がインデクシングを実施するためのアクセスなのか、統合検索サーバ１１００を介したユーザからの統合検索に基づくアクセスなのかを判別することが難しくなり、望ましくない。
【０１３５】
そこで本発明の実施形態２では、統合検索サーバ１１００から検索サーバ２２００に対して検索要求を発行する際、ユーザ認証情報８０１２として、統合検索を要求したユーザに関連するアクセスアカウント情報を用いる動作手順を説明する。統合検索システム１００００を構成する各構成要素は実施形態１と概ね同様であるため、以下では差異点を中心に説明する。
【０１３６】
図２２は、本実施形態２における、図１９のステップＳ６０２の流れを示す図である。本処理フローは、図２０で説明した統合検索処理と比較すると、統合検索サーバ１１００から検索サーバ２２００に対して検索要求を発行する際、検索要求パケット８０００内のユーザ認証情報８０１２欄に、代表ユーザアカウントの情報ではなく、統合検索を要求したユーザに関連付けられたアクセスアカウント情報を格納する点が異なる。以下、主に図２０との差異点について説明する。
（図２２：ステップＳ７０６）
統合検索制御プログラム１１２４は、図２０のステップＳ７０６と同様の処理を実施する。ただし、ステップＳ７０５で取得したドメイン識別子６２５０がステップＳ７０２で取得したドメイン識別子６１１０に含まれている場合は本実施形態２で新たに設けたステップＳ７１０へ進み、含まれていない場合はステップＳ７０８へ進む。
【０１３７】
（図２２：ステップＳ７１０）
統合検索制御プログラム１１２４は、ステップＳ７０５で選択した検索サーバ２２００に対して、ステップＳ７０２で取得したユーザＩＤ６１２０とパスワード６１３０を、検索サーバにログオンするためのユーザ認証情報として指定した検索要求を送信し、その結果を取得する。本ステップの後はステップＳ７０４に戻る。
（図２２：ステップＳ７１０：補足その１）
ここで利用するユーザＩＤ６１２０は、統合検索を要求したユーザに関連付けられているアクセスアカウント情報となっている。検索要求を受けた検索サーバ２２００は、このアクセスアカウント情報に基づいてセキュリティトリミングを実行する。
（図２２：ステップＳ７１０：補足その２）
本ステップではステップＳ７０７と同様に、統合検索を要求したユーザに関連付けられたアクセスアカウント情報には、検索サーバ２２００が検索対象としている共有フォルダにアクセスする際に必要となるアクセスアカウントのみをセットするようにする。
【０１３８】
＜実施の形態２：まとめ＞
以上のように、本実施形態２に係る統合検索サーバ１１００は、検索サーバ２２００に対して検索要求を発行する際に、統合検索を要求したユーザに関連付けられたアクセスアカウントを、ユーザ認証情報として送信する。これにより、検索サーバ２２００のアクセスログには各検索リクエストを発行したアクセスアカウントが記録されるので、セキュリティ管理上望ましい。
【０１３９】
＜実施の形態３＞
実施形態１〜２では、図１６のステップＳ３０６において、アカウント対応管理表６１００にアクセスアカウントのパスワード６１３０を登録している。一方、ユーザのパスワード情報は、定期的に更新される可能性がある。パスワードを更新するたびに、アカウント対応管理表６１００内のパスワード６１３０も更新していると、登録アカウント数が多い場合に管理工数が多くなってしまう。
【０１４０】
そこで本発明の実施形態３では、各アクセスアカウントのパスワード情報をアカウント対応管理表６１００に登録しなくても、各アクセスアカウントが有するアクセス権限で検索結果に対してセキュリティトリミングを実施することができるようにすることを図る。
【０１４１】
アクセスアカウントのパスワードなしでセキュリティトリミングを実施できるようにするためには、各検索サーバにログオンするときの認証情報として代表ユーザアカウントを利用し、検索結果を絞りむみ条件として、各アクセスアカウントを識別するユーザＩＤを指定する必要がある。以下、これを実現するための動作例を説明する。統合検索システム１００００を構成する各構成要素は実施形態１〜２と概ね同様であるため、以下では差異点を中心に説明する。
【０１４２】
図２３は、本実施形態３における、ステップＳ１０４とＳ１０５のアクセスアカウント登録処理の流れを示す図である。本処理フローは、図１６で説明したアカウント登録処理と比較すると、新たに登録するアクセスアカウントのパスワードを登録するか否かを指定できるようにしている点が異なる。以下、主に図１６との差異点について説明する。
（図２３：ステップＳ３０５）
統合検索サーバ１１００は、図１６のステップＳ３０５と同様の処理を実施する。ただし、登録するよう指定されたアクセスアカウントが登録済みでなかった場合は、新たに設けられたステップＳ３１０へ進む。
（図２３：ステップＳ３１０）
統合検索サーバ１１００は、登録するよう要求されているアクセスアカウントのパスワード情報を、アカウント対応管理表６１００に登録するか否かを判定する。パスワードを登録する場合はステップＳ３０６へ進み、登録しない場合は新たに設けたステップＳ３１１へ進む。
（図２３：ステップＳ３１０：補足）
本ステップを実施する前提として、アカウント対応管理表６１００に、新たにパスワード登録可否情報を追加しておく。統合検索サーバ１１００は、パスワード登録可否情報を参照して、パスワードを登録する必要があるか否かを判定する。なお、統合検索サーバ１１００は、アクセスアカウント登録処理において、システム管理者などの当該処理を要求する者に対して、当該アクセスアカウントのパスワードを登録するか否かを指定可能な登録処理用ＧＵＩインタフェースやＣＬＩインタフェースなどを提供し、当該インタフェースの指定内容をもとにして、パスワードを登録する必要があるか否かを判定するようにしてもよい。
【０１４３】
（図２３：ステップＳ３１１）
統合検索サーバ１１００は、登録するよう要求されたアクセスアカウント情報のうちパスワード情報以外の内容を、アカウント対応管理表６１００に登録する。パスワードを登録しない場合、アカウント対応管理表６１００のパスワード６１３０欄には、未設定を示す情報を登録するようにする。例えば、ここではＮＵＬＬ値を登録する。
（図２３：ステップＳ３１１：補足）
本処理を実施する前提として、ユーザは統合検索サーバ１１００にログオンする必要がある。したがって、アカウント対応管理表６１００にパスワードを登録するか否かによらず、ユーザは統合検索サーバ１１００に対してパスワードを通知する必要がある。
【０１４４】
図２４は、本実施形態３におけるステップＳ６０２の統合検索処理の流れを示す図である。本処理フローは、図２０で説明した統合検索処理と比較すると、統合検索を要求したユーザに関連付けられているアクセスアカウントにパスワード情報が登録されているか否かによって、検索サーバに対するログオン認証のために用いるアクセスアカウントを分ける点が異なる。以下、主に図２０との差異点について説明する。
（図２４：ステップＳ７０６）
統合検索制御プログラム１１２４は、図２０のステップＳ７０６と同様の処理を実施する。ただし、ステップＳ７０５で取得したドメイン識別子６２５０がステップＳ７０２で取得したドメイン識別子６１１０に含まれている場合は、新たに設けたステップＳ７１１に進む。
（図２４：ステップＳ７１１）
統合検索制御プログラム１１２４は、統合検索サーバ１１００のアカウント対応管理表６１００を参照し、統合検索を要求したユーザに関連付けられているアクセスアカウント情報の中から、検索サーバが検索対象とする共有フォルダにアクセスする際に用いられるアクセスアカウント情報を選択し、アカウント対応管理表６１００のうちそのアクセスアカウント情報に対応するレコードに、パスワード６１３０が登録されているかどうかを調べる。パスワードが登録されている場合はステップＳ７１０へ進み、登録されていない場合はステップＳ７０７へ進む。
（図２４：ステップＳ７１０）
統合検索制御プログラム１１２４は、統合検索を要求したユーザに関連付けられたアクセスアカウント情報を、検索サーバへログオンするためのユーザ認証情報として用いて、検索要求を発行する。
【０１４５】
＜実施の形態３：まとめ＞
以上のように、本実施形態３に係る統合検索サーバ１１００は、検索サーバ２２００に対して検索要求を発行する際に、パスワード６１３０がアカウント対応管理表６１００に登録されている場合は、統合検索を要求したユーザに関連付けられたアクセスアカウントを、ユーザ認証情報として送信する。パスワード６１３０が登録されていない場合は、代表ユーザアカウントをユーザ認証情報として用いる。これにより、統合検索サーバ１１００上でパスワード６１３０が登録または更新されていない場合でも、代表ユーザアカウントを用いて各検索サーバにログオンし、セキュリティトリミング処理を実施することができる。パスワード６１３０が登録されている場合は、実施形態２と同様の効果を発揮することができる。
【０１４６】
＜実施の形態４＞
実施形態１〜３では、ステップＳ７０７において、統合検索サーバ１１００から検索サーバ２２００に対して検索要求を送る際、検索要求パケット８０００内のユーザ認証情報８０１２に、検索サーバ管理表６２００に登録されている代表ユーザアカウント６２３０や代表ユーザアカウントパスワード６２４０などを格納する。
【０１４７】
本来、代表ユーザアカウントは、検索サーバ２２００がインデックスを作成する際に、共有フォルダ上のファイルにアクセスするためのアカウントである。代表ユーザアカウントを利用して、共有フォルダや検索サーバにアクセスすることができるようにＡＣＬが設定されていれば、ステップＳ７０７において代表ユーザアカウントを用いてもよい。しかし、代表ユーザアカウントを利用して検索サーバにアクセスすることが許可されない場合も想定される。
【０１４８】
また、実施形態２のステップＳ７１０では、統合検索を要求したユーザに関連付けられているアクセスアカウント情報を用いて各検索サーバにログオンする手法を説明したが、これに代えて、実施形態１で説明した検索結果絞り込み用アカウント情報８０２２のように、共通アクセスアカウントを用いることも考えられる。共通アカウントを利用する場合は、統合検索サーバ１１００と検索サーバ２２００との間で確立するセッションを、複数のユーザからの検索要求において共有することができる。この手法は、実施形態２のようにユーザごとに別セッションを確立する方式と比べて、検索サーバ側で一時的に管理する必要があるセッション管理情報量を削減することができる。
【０１４９】
以上に鑑みて、本発明の実施形態４では、検索サーバに対して検索要求を発行する際に検索サーバへログオンすることができる共通アカウントを新たに設ける。統合検索サーバ１１００は、各検索サーバに対して検索要求を発行する際に、共通アカウントを用いて検索サーバにログオンする。
【０１５０】
統合検索システム１００００を構成する各構成要素は、検索サーバ管理表６２００を除いて実施形態１〜３と概ね同様であるため、以下では差異点を中心に説明する。
【０１５１】
図２５は、本実施形態４における検索サーバ管理表６２００の構成とデータ例を示す図である。本実施形態４において、検索サーバ管理表６２００は、新たに共通アカウント６２７０、共通アカウントパスワード６２８０を有する。
【０１５２】
共通アカウント６２７０は、検索サーバ２２００にアクセスするために必要なアクセスアカウントである。共通アカウント６２７０と共通アカウントパスワード６２８０は、対象となる検索サーバが認証処理を実施する場合は、あらかじめ当該検索サーバ内に登録しておく必要がある。当該検索サーバとは別の認証サーバが認証処理を実施する場合は、その認証サーバにあらかじめ登録しておく必要がある。
【０１５３】
図２６は、本実施形態４におけるステップＳ４０２の処理の流れを示す図である。本処理フローは、図１８で説明した共有フォルダ登録処理と比較すると、共通アカウント情報を登録する処理が追加されている点が異なる。以下では、図１８との差異点を中心に説明する。
（図２６：ステップＳ５０１）
本実施形態４の前提として、システム管理者は、共有フォルダを登録する要求を発行する際に、共有アカウント６２７０と共通アカウントパスワード６２８０を指定しておく。本ステップにおいて、検索サーバ２２００は、これら情報を併せて受け取る。
（図２６：ステップＳ５０４）
検索サーバ２２００は、図１８のステップＳ５０４と同様の処理を実施する。ただし、認証成功した場合は、新たに設けたステップＳ５１１へ進む。
【０１５４】
（図２６：ステップＳ５１１）
検索サーバ２２００は、指定された共通アカウントの認証を実施する。ここでは、検索サーバ自身が認証処理を実施するか、または検索サーバが利用する外部の認証サーバに対して認証処理を要求し、その結果を取得する。
（図２６：ステップＳ５１２）
検索サーバ２２００は、共通アカウントの認証処理を実施した後、認証処理が成功したかどうかを調べる。認証失敗した場合は、本処理をエラー終了する。認証成功した場合は、ステップＳ５０５へ進む。ステップＳ５０５では、共通アカウントと共通アカウントパスワードを併せて登録する。
【０１５５】
図２７は、本実施形態４におけるステップＳ６０２の統合検索処理の流れを示す図である。本処理フローは、図２０で説明した統合検索処理と比較すると、統合検索サーバ１１００から検索サーバ２２００に対して検索要求を発行する際、検索要求パケット８０００内のユーザ認証情報８０１２欄に、代表ユーザアカウントの情報ではなく、共通アカウントの情報を格納する点が異なる。以下では、図２０との差異点を中心に説明する。
（図２７：ステップＳ７０６）
統合検索制御プログラム１１２４は、図２０のステップＳ７０６と同様の処理を実施する。ただし、ステップＳ７０５で取得したドメイン識別子６２５０がステップＳ７０２で取得したドメイン識別子６１１０に含まれている場合は、本実施形態４で新たに設けたステップＳ７１２へ進む。
【０１５６】
（図２７：ステップＳ７１２）
統合検索制御プログラム１１２４は、処理ステップＳ７０５で選択した検索サーバ２２００に対して、共通アカウントと共通アカウントパスワードをユーザ認証情報として指定し、ステップＳ７０２で取得したユーザＩＤ６１２０を絞り込み条件として指定した検索要求を送信し、その結果を取得する。本ステップの後は、ステップＳ７０４に戻る。
（図２７：ステップＳ７１２：補足その１）
本ステップで利用する共通アカウントと共通アカウントパスワードは、検索サーバ対応表６２００において、本ステップの検索要求を発行する相手先となる検索サーバの情報が登録されているレコードの共通アカウント６２７０および共通アカウントパスワード６２８０である。
（図２７：ステップＳ７１２：補足その２）
統合検索を要求したユーザに関連付けられたアクセスアカウント情報には、実施形態１と同様に、検索サーバ２２００が検索対象としている共有フォルダにアクセスするために必要となるアクセスアカウントのみを送るようにする。
【０１５７】
＜実施の形態４：まとめ＞
以上のように、本実施形態４に係る統合検索サーバ１１００は、検索サーバに検索リクエストを発行する際に、代表ユーザアカウントに代えて、共通アカウントを用いてログオンを実施する。これにより、本来は検索インデックスを作成するために用いる代表ユーザアカウントを用いずに、検索リクエストを実施することができる。したがって、検索インデックスを作成するためのアクセス権限のみでは全てのファイルにアクセスできない場合や、同アクセス権限では権限が強すぎるような場合には、より適切なアクセス権限を有する共通アカウントをもってこれに代えることができる。
【０１５８】
＜実施の形態５＞
実施形態１〜４では、ステップＳ８０３において、検索結果に含まれるファイルを、統合検索を要求したユーザが参照権限を有するものだけに絞り込んで検索結果とするセキュリティトリミングを検索サーバ２２００が実施する。このセキュリティトリミングは、検索を要求する統合検索サーバ１１００側で実施するようにしてもよい。
【０１５９】
統合検索サーバ１１００がセキュリティトリミングを実施できるようにするためには、検索条件に合致する全てのファイルに関する情報を統合検索サーバ１１００が取得する必要がある。この情報を統合検索サーバ１１００側でキャッシュしておくことにより、同じ検索条件で別のユーザから統合検索要求があった際に、このキャッシュを利用して各検索サーバへの検索要求を省略することができる。
【０１６０】
そこで本発明の実施形態５では、統合検索サーバ１１００から各検索サーバに対して検索要求を発行する際に、セキュリティトリミングを検索サーバ側で実施させるか否かを指定する動作例を説明する。
【０１６１】
図２８は、本実施形態５におけるステップＳ６０２の統合検索処理の流れを示す図である。本処理フローは、図２０で説明した統合検索処理と比較すると、統合検索サーバ１１００から検索サーバ２２００に対して検索要求を発行する際、検索要求パケット８０００内の検索結果絞り込み用アカウント情報８０２２欄に、検索条件を指定しないようにする点が異なる。以下、図２０との差異点を中心に説明する。
（図２８：ステップＳ７０４）
統合検索制御プログラム１１２４は、図２０のステップＳ７０４と同様の処理を実施する。ただし、全ての検索サーバに対してステップＳ７０５〜Ｓ７０８の処理を実施済みである場合は、本実施形態５で新たに設けたステップＳ７１４へ進む。
（図２８：ステップＳ７０６）
統合検索制御プログラム１１２４は、図２０のステップＳ７０６と同様の処理を実施する。ただし、ステップＳ７０５で取得したドメイン識別子６２５０がステップＳ７０２で取得したドメイン識別子６１１０に含まれている場合は、本実施形態５で新たに設けたステップＳ７１３へ進む。
【０１６２】
（図２８：ステップＳ７１３）
統合検索制御プログラム１１２４は、ステップＳ７０５で選択した検索サーバ２２００に対して、代表ユーザアカウントと代表ユーザアカウントパスワードをユーザ認証情報として指定し、絞り込み条件は何も指定しない検索要求を送信し、その結果を取得する。絞り込み条件については、検索要求パケット８０００内の検索結果絞り込み用アカウント情報８０２２欄に、検索条件を設定しないようにすればよい。本ステップの後は、ステップＳ７０４に戻る。
（図２８：ステップＳ７１４）
統合検索制御プログラム１１２４は、各検索サーバから取得した検索結果を統合し、統合検索を要求したユーザに関連付けられているアクセスアカウント情報を利用して、検索結果のセキュリティトリミングを実施する。
（図２８：ステップＳ７１４：補足）
必要に応じてセキュリティトリミング前の検索結果を統合検索サーバ１１００内部でキャッシュするようにしてもよい。キャッシュした内容は、次回以降の統合検索要求を受け取った時に、検索条件が合致し、かつキャッシュの内容が所定の期間以上経過していない場合に、キャッシュされているデータを統合検索結果の全体あるいはその一部として活用することができる。
【０１６３】
図２９は、本実施形態５におけるステップＳ７０７の検索処理の流れを示す図である。本処理フローは、図２１で説明した検索処理と比較すると、統合検索サーバ１１００から送られてきた検索要求パケット８０００の内容に基づき、セキュリティトリミングを実施するかどうかを定める点が異なる。以下では、図２１との差異点を中心に説明する。
（図２９：ステップＳ８０２）
検索制御プログラム２２２４は、図２１のステップＳ８０２と同様の処理を実施する。ただし、本ステップの後は、ステップＳ８０３の前に本実施形態５で新たに設けたステップＳ８０５を実施する。
（図２９：ステップＳ８０５）
検索制御プログラム２２２４は、セキュリティトリミングを実施するよう要求されているかどうかを調べる。具体的には、統合検索サーバ１１００から送られてきた検索要求パケット８０００内の検索結果絞り込み用アカウント情報８０２２に、絞り込み用のアクセスアカウント情報が格納されているかどうかを調べる。検索結果絞り込み用アカウント情報８０２２にアクセスアカウント情報が格納されていない場合は、セキュリティトリミングを要求されていないと判断する。セキュリティトリミングを要求されていると判断する場合はステップＳ８０３へ進み、セキュリティトリミングを要求されていないと判断する場合はステップＳ８０４へスキップする。
【０１６４】
＜実施の形態５：まとめ＞
以上のように、本実施形態５に係る統合検索サーバ１１００は、検索サーバ２２００に対して検索要求を発行する際に、セキュリティトリミングを検索サーバ側で実施させるか否かを指定することができる。これにより、例えば検索サーバの処理負荷に合わせて、セキュリティトリミングをいずれのサーバで実施するかを調整するなど、柔軟な処理を実施することができる。
【０１６５】
＜実施の形態６＞
実施形態１〜５では、統合検索サーバ１１００と検索サーバ２２００はそれぞれ別々のサーバ装置によって提供される構成となっている。しかし、１台のサーバ装置において、統合検索サーバ１１００の機能と検索サーバ２２００の機能を兼ねるように構成することもできる。そこで本発明の実施形態６では、検索サーバ２２００が統合検索サーバ１１００の機能を併せて提供する構成例を説明する。
【０１６６】
図３０は、本実施形態６における検索サーバ２２００のハードウェア構成を示す図である。図３０では、図３で説明した構成に加えて、新たに統合検索制御プログラム２２２６と管理情報取得制御プログラム２２２７が追加されている。
【０１６７】
統合検索制御プログラム２２２６は、図２で説明した統合検索サーバ１１００における統合検索制御プログラム１１２４と同じものである。統合検索制御プログラム２２２６の構成要素であるアカウント情報絞り込み制御サブプログラム２２７１、検索先絞り込み制御サブプログラム２２７２、検索クライアント制御サブプログラム２２７３、検索結果統合制御サブプログラム２２７４についても同様である。管理情報取得制御プログラム２２２７は、図２で説明した統合検索サーバ１１００における管理情報取得制御プログラム１１２５と同じものである。
【０１６８】
上記追加した制御プログラムによって提供される処理フローについては、統合検索サーバ１１００における処理内容として前述した処理フローと同じである。このため、処理フローの説明は省略する。
【０１６９】
なお、上記では、統合検索サーバ１１００と検索サーバ２２００を１つのサーバ装置で提供するとしたが、この限りではない。例えば、認証サーバ３２００の機能も一体で提供するようにしてもよいし、ファイルサーバ４２００の機能も一体で提供するようにしてもよい。また、これら４つを柔軟に組み合せた構成をとるようにしてもよい。また、サーバ仮想化技術を利用して、１台の物理サーバ装置において、複数台の仮想サーバ装置を構成した上で、当該仮想サーバ装置において、統合検索サーバ１１００、検索サーバ２２００、認証サーバ３２００、ファイルサーバ４２００を提供するようにしてもよい。さらに、当該仮想サーバ装置において、統合検索サーバ１１００の機能を取り込んだ検索サーバ２２００を提供するようにしてもよい。
【０１７０】
＜実施の形態６：まとめ＞
以上のように、本実施形態６によれば、統合検索サービスを提供するシステムを構成するサーバ装置の台数を削減することができる。また、統合検索サーバ１１００と検索サーバ２２００を１台のサーバ装置によって実現することにより、ネットワーク転送に係るオーバヘッドを削減することができる。また、同じデータを扱う場合には、データ格納メモリ領域を共有することにより、メモリ消費量を削減することもできる。
【０１７１】
＜実施の形態７＞
実施形態１〜６では、図７で説明した統合検索処理において、統合検索要求を受けた統合検索サーバ１１００が基点となり、各検索サーバに対して検索要求を発行し、検索要求を受けた各検索サーバは自身が持つインデックス情報をもとに検索結果を返す。一方、検索要求を受けた各検索サーバが、さらに自身が基点となって統合検索を行う、多段の統合検索処理を実施するようにしてもよい。
【０１７２】
このような構成によって、効率よく統合検索を実施することができる。多段構成によって、１段統合検索の場合と比較して、特に検索サーバ数が多い場合には、基点となる統合検索サーバ１１００の負担を検索サーバとの間で分散することができる。
【０１７３】
そこで本発明の実施形態７では、上述したような多段統合検索を実現するための構成例を説明する。ここでは、実施形態６で説明したように、統合検索サーバ１１００と検索サーバ２２００とを一体化させた構成を前提に説明する。ただし、実施形態１のように、統合検索サーバ１１００と検索サーバ２２００を個別のサーバ装置として提供する場合でも、以降で説明する多段統合検索を実現することができる。
【０１７４】
多段統合検索を実現するためには、統合検索制御プログラム２２２６から各検索サーバに対して検索要求を発行する際に、さらにその先での統合検索を実施する必要があるか否かを指定できるように変更した上で、検索要求を受けた検索サーバが自身を基点とした統合検索を実施する必要があるか否かを判断できるように変更する必要がある。
【０１７５】
図３１は、本実施形態７における統合検索処理の全体の流れを示す図である。図３１は本実施形態７における図７の処理に相当する。図３１は、図７で説明した全体処理の流れと比べて、統合検索を多段に実施している点が異なる。
【０１７６】
検索クライアント制御プログラム５１２４から統合検索要求を受けた統合検索制御プログラム２１２６は、検索対象となる統合検索サーバ２２００と２３００に対して、さらに統合検索を行う必要があるか否かを示す制御情報とともに検索要求を送る。この制御情報については後述する。
【０１７７】
検索サーバ２２００と２３００において、検索制御プログラム２２２４と２３２４が検索要求を受信し、図７で説明した検索処理に加えて、制御情報の内容をもとに自サーバを基点とした統合検索を実施するかどうかを判断する。
【０１７８】
検索制御プログラム２２２４が自サーバを基点とした統合検索を実施すると判断した場合、検索制御プログラム２２２４は、自サーバの統合検索制御プログラム２２２６に対して統合検索を実施するよう要求する。
【０１７９】
統合検索要求を受け取った統合検索制御プログラム２２２６は、検索サーバ２４００と２５００に対してさらに検索要求を発行し、その結果を取得し、要求元に返す。
【０１８０】
以上の処理を繰り返し実施し、最初に統合検索要求を受けた検索サーバが最終的に検索結果をまとめた上で、要求元に統合検索結果として返す。
【０１８１】
図３２は、本実施形態７における検索要求パケット８０００のデータ構造を示す図である。本実施形態７において、検索要求パケット８０００は、図９と比較して、統合検索制御情報８０２３を追加している点が異なる。
【０１８２】
統合検索制御情報８０２３は、検索要求を受け取った検索サーバにおいて、さらに統合検索を実施する必要があるか否かを示す情報を格納する。具体的には、統合検索を実施する必要がある、あるいは必要がないという情報を格納する。
【０１８３】
統合検索を実施する必要があるという情報を統合検索制御情報８０２３に格納する場合、その統合検索の実施条件を指定するようにしてもよい。例えば、検索サーバを基点として、統合検索を多段的に実施する上限回数を指定するようにしてもよい。また、検索サーバを基点として、検索要求を新たに発行する検索サーバを選定する条件を指定するようにしてもよい。検索サーバの選定条件を利用することにより、同じ検索サーバに対して冗長な検索要求を発行することを防ぐことができる。
【０１８４】
冗長な検索要求を防ぐためには、統合検索を最初に受け取った検索サーバが、検索サーバ群の構成情報に基づき、多段統合検索を実施する時の検索要求が重複しないように選定条件を指定すればよい。具体的には、検索サーバ間における検索要求の送信関係を木構造にてグラフ化した際に、検索要求の送信元となる親ノードを複数持つノードが発生しないようにすればよい。
【０１８５】
図３３は、本実施形態５におけるステップＳ６０２の統合検索処理の流れを示す図である。本処理フローは、図２０で説明した統合検索処理と比較すると、統合検索サーバ１１００から検索サーバ２２００に対して検索要求を発行する際、検索要求パケット８０００内の統合検索制御情報８０２３欄に、多段統合検索を制御するための情報を格納する点が異なる。以下では、図２０との差異点を中心に説明する。
（図３３：ステップＳ７０６）
統合検索制御プログラム１１２４は、図２０のステップＳ７０６と同様の処理を実施する。ただし、ステップＳ７０５で取得したドメイン識別子６２５０がステップＳ７０２で取得したドメイン識別子６１１０に含まれている場合は、本実施形態７で新たに設けたステップＳ７１５へ進む。
【０１８６】
（図３３：ステップＳ７１５）
統合検索制御プログラム１１２４は、ステップＳ７０５で選択した検索サーバ２２００に対して、代表ユーザアカウントと代表ユーザアカウントパスワードをユーザ認証情報として指定し、ステップＳ７０２で取得したユーザＩＤ６１２０を絞り込み条件として指定し、さらに多段統合検索を制御するための統合検索制御情報８０２３を指定した検索要求を送信し、その結果を取得する。本ステップの後は、ステップＳ７０４に戻る。
（図３３：ステップＳ７１５：補足その１）
本ステップで指定する統合検索制御情報８０２３については、図３２で説明した内容を設定すればよい。
（図３３：ステップＳ７１５：補足その２）
統合検索を要求したユーザに関連付けられたアクセスアカウント情報には、実施形態１と同様に、検索サーバ２２００が検索対象としている共有フォルダにアクセスするために必要となるアクセスアカウントのみを送るようにする。
【０１８７】
図３４は、本実施形態７におけるステップＳ７０７の検索処理の流れを示す図である。本処理フローは、図２１で説明した検索処理と比較すると、統合検索サーバ１１００から送られてきた検索要求パケット８０００の内容に基づき、さらに統合検索を実施するかどうかを定める点が異なる。以下では、図２１との差異点を中心に説明する。
（図３４：ステップＳ８０１）
検索制御プログラム２２２４は、図２１のステップＳ８０１と同様の処理を実施する。ただし、本ステップの後は、ステップＳ８０２の前に本実施形態７で新たに設けたステップＳ８０６を実施する。
（図３４：ステップＳ８０６）
検索制御プログラム２２２４は、自サーバを基点とした統合検索処理を要求されているかどうかを調べる。具体的には、統合検索サーバ１１００から送られてきた検索要求パケット８０００内の統合検索制御情報８０２３を調べる。ここでは、統合検索が必要である旨を示す情報が格納されている場合は、さらなる統合検索が必要と判断し、統合検索が不要である旨の情報が格納されている場合は、統合検索は不要と判断する。さらなる統合検索が必要と判断する場合はステップＳ８０７へ進み、必要ないと判断する場合はステップＳ８０２へ進む。
【０１８８】
（図３４：ステップＳ８０７）
検索制御プログラム２２２４は、自検索サーバを基点とした統合検索処理を実施する。具体的には、自検索サーバにおける統合検索制御プログラム２２２６に対して、統合検索処理を実施するよう要求する。本ステップの後は、ステップＳ８０２へ進む。
（図３４：ステップＳ８０３）
検索制御プログラム２２２４は、図２１のステップＳ８０３と同様の処理を実施する。ただし、本ステップの後は、本実施形態７で新たに設けたステップＳ８０８を実施する。
（図３４：ステップＳ８０８）
検索制御プログラム２２２４は、自検索サーバでの検索結果（ステップＳ８０３によって取得した検索結果）と、もしあれば自検索サーバを基点とした統合検索結果（ステップＳ８０７によって取得した検索結果）とを統合したものを要求元に応答する。
【０１８９】
＜実施の形態７：まとめ＞
以上のように、本実施形態７によれば、統合検索を多段的に実施し、統合検索システム１００００をより柔軟に構築することができる。
【０１９０】
本発明は、上述の各サーバ装置を実現するコンピュータプログラム、およびそのプログラムを記録した記録媒体、そのプログラムを含み搬送波内に具現化されたデータ信号など種々の態様で実現することもできるし、上記各構成、機能、処理部などは、それらの全部または一部を、例えば集積回路で設計することによりハードウェアとして実現することもできる。
【０１９１】
本発明をコンピュータプログラムまたはそのプログラムを記録した記録媒体等として構成する場合には、サーバ装置あるいはサーバ装置を制御するプログラム全体として構成するものとしてもよいし、本発明の機能を果たす部分のみをプログラムまたは記録媒体として構成してもよい。
【０１９２】
記録媒体としては、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置および外部記憶装置などコンピュータが読み取り可能な種々の揮発性記憶媒体や不揮発性記憶媒体を利用できる。
【符号の説明】
【０１９３】
１００・・・ネットワーク
１１００・・・統合検索サーバ
２２００、２３００・・・検索サーバ
３１００、３２００、３３００・・・認証サーバ
４２００、４３００・・・ファイルサーバ
５１００・・・クライアントマシン
１１１０、２２１０、３１１０、４２１０、５１１０・・・プロセッサ
１１２０、２２２０、３１２０、４２２０、５１２０・・・メモリ
１１２１、２２２１、３１２１、４２２１、５１２１・・・外部記憶装置Ｉ／Ｆ制御プログラム
１１２２、２２２２、３１２２、４２２２、５１２２・・・ネットワークＩ／Ｆ制御プログラム
１１２３、２２２３、３１２３、４２２３、５１２３・・・データ管理制御プログラム
１１２４、２２２６・・・統合検索制御プログラム
１１２５、２２２７・・・管理情報取得制御プログラム
１１７１、２２７１・・・アカウント情報絞り込み制御サブプログラム
１１７２、２２７２・・・検索先絞り込み制御サブプログラム
１１７３、２２７３・・・検索クライアント制御サブプログラム
１１７４、２２７４・・・検索結果統合制御サブプログラム
２２２４・・・検索制御プログラム
２２２５・・・検索サーバ管理制御プログラム
３１２４・・・認証制御プログラム
４２２４・・・ファイル共有制御プログラム
５１２４・・・検索クライアント制御プログラム
５１２５・・・ファイル共有クライアント制御プログラム
１１３０、２２３０、３１３０、４２３０、５１３０・・・外部記憶装置Ｉ／Ｆ
１１４０、２２４０、３１４０、４２４０、５１４０・・・ネットワークＩ／Ｆ
１１５０、２２５０、３１５０、４２５０、５１５０・・・バス
１１６０、２２６０、３１６０、４２６０、５１６０・・・外部記憶装置
６１００・・・アカウント対応管理表
６１１０・・・ドメイン識別情報
６１２０・・・ユーザＩＤ
６１３０・・・パスワード
６１４０・・・対応ＩＤ
６２００・・・検索サーバ管理表
６２１０・・・検索サーバ識別情報
６２２０・・・ファイル共有識別情報
６２３０・・・代表ユーザアカウント
６２４０・・・代表ユーザアカウントパスワード
６２５０・・・ドメイン識別情報
６２６０・・・パブリックアカウント
６２７０・・・共通アカウント
６２８０・・・共通アカウントパスワード
６３００・・・検索インデックス管理表
６３１０・・・キーワード
６３２０・・・該当位置情報
６３２１、６３２４・・・ファイル識別情報
６３２２、６３２５・・・該当位置オフセット
６３２３、６３２６・・・重み付け
６４００・・・検索インデックス登録ファイル管理表
６４１０・・・ファイル識別情報
６４２０・・・ファイルパス名
６４３０・・・ＡＣＬ情報
６４３１・・・ユーザ/グループ識別情報
６４３２・・・操作内容
６４３３・・・許可／不許可指定フラグ
６４４０・・・メタデータ
７０００・・・統合検索要求パケット
７０１０・・・パケットヘッダ
７０１１・・・認証方法識別情報
７０１２・・・ユーザ認証情報
７０１３・・・ドメイン識別子
７０１４・・・ユーザ識別子
７０１５・・・パスワード
７０１６・・・セッション情報
７０１７・・・セッション識別子
７０２０・・・パケットデータ
７０２１・・・検索クエリ
８０００・・・検索要求パケット
８０１０・・・パケットヘッダ
８０１１・・・認証方法識別情報
８０１２・・・ユーザ認証情報
８０１３・・・ドメイン識別子
８０１４・・・ユーザ識別子
８０１５・・・パスワード
８０１６・・・セッション情報
８０１７・・・セッション識別子
８０２０・・・パケットデータ
８０２１・・・検索クエリ
８０２２・・・検索結果絞り込み用アカウント情報
８０２３・・・統合検索制御情報
【図１】
0005320433.tif 000002
【図２】
0005320433.tif 000003
【図３】
0005320433.tif 000004
【図４】
0005320433.tif 000005
【図５】
0005320433.tif 000006
【図６】
0005320433.tif 000007
【図７】
0005320433.tif 000008
【図８】
0005320433.tif 000009
【図９】
0005320433.tif 000010
【図１０】
0005320433.tif 000011
【図１１】
0005320433.tif 000012
【図１２】
0005320433.tif 000013
【図１３】
0005320433.tif 000014
【図１４】
0005320433.tif 000015
【図１５】
0005320433.tif 000016
【図１６】
0005320433.tif 000017
【図１７】
0005320433.tif 000018
【図１８】
0005320433.tif 000019
【図１９】
0005320433.tif 000020
【図２０】
0005320433.tif 000021
【図２１】
0005320433.tif 000022
【図２２】
0005320433.tif 000023
【図２３】
0005320433.tif 000024
【図２４】
0005320433.tif 000025
【図２５】
0005320433.tif 000026
【図２６】
0005320433.tif 000027
【図２７】
0005320433.tif 000028
【図２８】
0005320433.tif 000029
【図２９】
0005320433.tif 000030
【図３０】
0005320433.tif 000031
【図３１】
0005320433.tif 000032
【図３２】
0005320433.tif 000033
【図３３】
0005320433.tif 000034
【図３４】
0005320433.tif 000035