(57)【特許請求の範囲】
【請求項１】
ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、リクエスト監視部と、
前記リクエスト監視部によって受け取られた各リクエストを、種別毎に、前記各リクエストの時刻と共に格納している第１のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第２のテーブルを格納する、記憶部と、
前記リクエスト監視部によって受け取られた最新のリクエストを対象として、前記第１のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数を前記第２のテーブルに格納されている時刻の数で除して得られた値が大きい程、値が高くなるように、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定し、設定した前記優先度を前記第１のテーブルに格納させる、優先度設定部と、
を備え、
前記リクエストの時刻は、前記端末によって前記リクエストが作成された時刻、前記端末によって前記リクエストが送信された時刻、前記リクエスト監視部によって前記リクエストが受け取られた時刻、及び前記優先度設定部によって前記リクエストについて優先度が設定された時刻のうちいずれかである、
ことを特徴とする優先度設定装置。
【請求項２】
前記優先度設定部が、前記リクエスト監視部が前記リクエストを受け取る度に、受け取った前記リクエストの種別と前記リクエストの時刻とを特定し、特定した種別と前記リクエストの時刻とを用いて、前記第１のテーブルと前記第２のテーブルとを更新する、請求項１に記載の優先度設定装置。
【請求項３】
前記優先度設定部が、前記第２のテーブルを更新する際に、前記第２のテーブルに、特定した前記リクエストの時刻を新たに格納し、前記第２のテーブルから、最も古いリクエストの時刻、または前記最新のリクエストの時刻との差が設定値を超える時刻を削除する、請求項２に記載の優先度設定装置。
【請求項４】
前記優先度設定部が、前記第２のテーブルから、時刻を削除した場合に、前記第１のテーブルから、削除された時刻に対応しているリクエストを削除する、請求項３に記載の優先度設定装置。
【請求項５】
前記リクエスト監視部が受け取った前記リクエストを、前記優先度設定部が前記リクエストに設定した前記優先度に関連付けた状態で記憶する、第２の記憶部と、
前記リクエストの前記第２の記憶部に記憶された順と、前記リクエストに関連付けられた優先度とに基づいて、前記優先度の値が大きい程、前記リクエストの前記第２の記憶部に記憶された順よりも前記リクエストを処理する際の順序が早くなるように、前記リクエストを処理する際の順序を決定する、処理順序制御部と、
を備えている、請求項１〜４のいずれかに記載の優先度設定装置。
【請求項６】
前記優先度設定部が、前記種別毎に、前記優先度を設定し、
前記第１のテーブルが、前記種別毎に、既に設定された前記優先度を格納している、請求項１〜５のいずれかに記載の優先度設定装置。
【請求項７】
（ａ）ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
（ｂ）前記（ａ）のステップによって受け取られた各リクエストを、種別毎に、前記各リクエストの時刻と共に格納している第１のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第２のテーブルを用い、
前記（ａ）のステップによって受け取られた最新のリクエストを対象として、前記第１のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数を前記第２のテーブルに格納されている時刻の数で除して得られた値が大きい程、値が高くなるように、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定し、設定した前記優先度を前記第１のテーブルに格納させる、ステップと、
を有し、
前記リクエストの時刻は、前記端末によって前記リクエストが作成された時刻、前記端末によって前記リクエストが送信された時刻、前記（ａ）のステップによって前記リクエストが受け取られた時刻、及び前記（ｂ）のステップによって前記リクエストについて優先度が設定された時刻のうちいずれかである、
ことを特徴とする優先度設定方法。
【請求項８】
コンピュータに、
（ａ）ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
（ｂ）前記（ａ）のステップによって受け取られた各リクエストを、種別毎に、前記各リクエストの時刻と共に格納している第１のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第２のテーブルを用い、
前記（ａ）のステップによって受け取られた最新のリクエストを対象として、前記第１のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数を前記第２のテーブルに格納されている時刻の数で除して得られた値が大きい程、値が高くなるように、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定し、設定した前記優先度を前記第１のテーブルに格納させる、ステップと、
を実行させ、
前記リクエストの時刻は、前記端末によって前記リクエストが作成された時刻、前記端末によって前記リクエストが送信された時刻、前記（ａ）のステップによって前記リクエストが受け取られた時刻、及び前記（ｂ）のステップによって前記リクエストについて優先度が設定された時刻のうちいずれかである、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントコンピュータからサーバ装置に送られるリクエストに優先度を設定する優先度設定装置、優先度設定方法、及びプログラムに関する。
【背景技術】
【０００２】
近年、ネットワークシステムにおいて、ディレクトリデータベースにアクセスするためのプロトコルとして、ＬＤＡＰ（Lightweight Directory Access Protocol）が利用されている。通常、ＬＤＡＰにおいては、クライアントからサーバに送信されるリクエストに対して優先度を設定するという概念は無く、どのリクエストも均等に扱われる。このため、サーバは、先に到達したリクエストから順に処理を行う。
【０００３】
ここで、図１８を用いて、従来からのＬＤＡＰを利用したシステムについて説明する。図１８は、従来からのＬＤＡＰを利用したシステムの構成を示すブロック図である。図１８に示すように、システムは、サーバ（ＬＤＡＰサーバ）１１と、クライアント１２とを備えている。クライアント１２は、ＬＤＡＰサーバ１１に対してリクエストを送出する。
【０００４】
ＬＤＡＰサーバ１１は、リクエストバッファ１３と、プロトコル処理部１４と、ＬＤＡＰデータベース１５とを備えている。ＬＤＡＰサーバ１１において、リクエストバッファ１３は、ＦＩＦＯ（First-In First-Out）方式を採用し、クライアント１２が送出したリクエストを一旦蓄積する。
【０００５】
プロトコル処理部１４は、先ず、リクエストバッファ１３から、蓄積されているリクエストを取り出し、取り出したリクエストの内容を解析する。そして、プロトコル処理部１４は、解析結果に基づいて、ＬＤＡＰデータベース１５に対して検索または更新といった処理を実行する。その後、プロトコル処理部１４は、その処理の結果を、当該リクエストに対するレスポンスとして、クライアント１２に対して送出する。ＬＤＡＰサーバ１１においては、以上の一連の処理が繰り返し行われ、ＬＤＡＰサーバに先に到達したリクエストほど先に処理される。
【０００６】
ところで、図１８に示したシステムでは、優先度の低いリクエストの後に、優先度の高いリクエストが到達した場合であっても、優先度とは関係なく、先に到達したリクエストから処理される。また、図１８に示したシステムでは、特に高負荷時において、後から到達したリクエストはリクエストバッファ１３で滞留するため、リクエストに対するレスポンスは、大きく遅延する。このため、早急に処理を行う必要のある優先度の高いリクエストについて、レスポンスの遅延の問題が発生してしまう。また、時間制限が設定されているリクエストにあっては、レスポンスの遅延により、エラーとなってしまう場合もある。
【０００７】
ここで、レスポンスの遅延が問題となる具体例について説明する。先ず、第１の例では、多数の派遣社員を雇用している組織において、派遣社員が月毎に入れ替わる場合について説明する。この第１の例では、月の切替り時に多くのユーザ登録が行なわれることとなる。
【０００８】
典型的な運用では、ユーザ登録の際に、ユーザのパスワードは、初期の状態からユーザ自身によって変更される。よって、月初めに偏ってパスワード変更のリクエストの割合が増える。また、パスワード変更は、優先度の高いリクエストであり、他人による不正利用を防止するため、タイムリーに処理されるべきである。
【０００９】
そして、月初めにおいて、他の種別のリクエストによりサーバの負荷が高かったとする。この場合、ＬＤＡＰサーバは、パスワード変更のリクエストを優先的に処理できないため、パスワード変更のリクエストは、遅延したり、設定されている時間制限によってエラーとなったりする可能性がある。つまり、パスワード変更におけるタイムリーに処理されるべきという要求を満たすことは、できなくなる。
【００１０】
次に、第２の例では、システム障害の対応に当たるユーザの緊急登録等、なんらかの事情で、多数のユーザの登録内容の更新（権限の変更など）を早急に実行しなければならない場合について説明する。この第２の例では、突発的に特定のパターンの更新リクエストの割合が増えることとなる。また、各更新リクエストは、優先度の高いリクエストであり、早急に実行されるべきである。
【００１１】
そして、特定のパターンの更新リクエストの割合が増加したときに、ＬＤＡＰサーバの負荷が高くなったとする。この場合も、第１の例と同様に、ＬＤＡＰサーバは、更新リクエストを優先的に処理できないため、結果、更新リクエストは、遅延したり、設定されている時間制限によってエラーとなったりする可能制がある。つまり、ユーザの登録内容の更新における早急に行われるべきという要求を満たすことは、できなくなる。
【００１２】
また、このようなレスポンスの遅延の問題を解決するため、リクエストに優先度を設定し、設定した優先度に応じてリクエストの処理を実行するシステムが提案されている（例えば、特許文献１〜３参照）。
【００１３】
特許文献１は、サービスを提供するサーバ（サービス提供サーバ）の負荷状況と優先度について設定されたルール（優先度ルール）とを管理するサーバ（サービス情報サーバ）を備えたシステムを開示している。特許文献１に開示のシステムでは、クライアントは、サービス提供サーバにアクセスする前に、サービス情報サーバにアクセスして優先度を取得し、その優先度を元にリクエストを発行する。
【００１４】
特許文献２は、提供するサービスに対応して定義された優先度情報に基づいて、クライアントからのリクエストを実行する際の優先度を決定する、トランザクション処理システムを開示している。特許文献２に開示のトランザクション処理システムは、予め優先度が高く設定されたサービスのリクエストを優先的に処理することができる。
【００１５】
また、特許文献３は、ユーザから要求されたサービス（リクエスト）を処理する際の優先度を決定する優先度決定装置と、これを備えたシステムとを開示している。特許文献３に開示の優先度決定装置は、ユーザからのサービス要求の履歴（サービス要求履歴）と予め設定された優先ポリシーとに基づいて、ユーザ毎に重要度を決定し、更に、決定した重要度に応じて各サービスの優先度を決定する。
【００１６】
サービス要求履歴としては、ユーザが要求したサービスの要求回数、ユーザのサービス要求からサーバの応答までの時間、通信量、利用者の要求によって発生したデータベースサーバへのトランザクションの回数等のデータ値が挙げられる。また、優先ポリシーは、具体的には、設定条件毎の重み係数で構成されている。重要度は、サービス要求履歴のデータ値毎に、データ値と重み係数とを乗算し、得られた各乗算値の合計を求めることによって算出される。
【先行技術文献】
【特許文献】
【００１７】
【特許文献１】特開２００１−３４５８４８号公報
【特許文献２】特開２００２−２２９９４３号公報
【特許文献３】特開２００６−１９０００５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１８】
しかしながら、上述した特許文献１〜３に開示されたシステムでは、第１の例及び第２の例で示した場合、即ち、特定の種別（種類）のリクエストが一時的に増加する場合に、増加したリクエストの優先度を高くできず、レスポンスの遅延の解消が十分でないという問題がある。更に、この問題は、特定の種別のリクエストの一時的な増加が予め想定されていない場合において顕著となる。
【００１９】
具体的には、上記特許文献１に開示のシステムでは、動的な要素としてサーバの付加状況が収集され、付加状況が優先度の決定に利用されているが、特定の種別のリクエストの発生状況までは収集されていない。よって、上記特許文献１に開示のシステムでは、一時的に増加した特定の種別のリクエストを特定し、このリクエストの優先度を高くすることはできないので、レスポンスの遅延の解消は不十分である。
【００２０】
また、上記特許文献２に開示のトランザクション処理システムでは、予め定義された優先度情報からしか、優先度は決定されておらず、優先度の決定に動的な要素が用いられていないため、当然に、レスポンスの遅延の解消は不十分である。
【００２１】
更に、上記特許文献３に開示の優先度決定装置では、優先ポリシーは動的な要素ではないため、サービス要求履歴が蓄積されるにつれて、算出される重要度は固定化され、結果、各サービスの優先度も固定化される。また、上記特許文献３に開示の優先度決定装置でも、特定の種別のリクエストの発生状況までは収集されていない。このため、上記特許文献３に開示の優先度決定装置を用いた場合であっても、レスポンスの遅延の解消は不十分である。
【００２２】
本発明の目的の一例は、上記問題を解消し、リクエストの発生状況に応じて、各リクエストに動的に優先度を設定し得る、優先度設定装置、優先度設定方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００２３】
上記目的を達成するため、本発明の一側面における優先度設定装置は、
ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、リクエスト監視部と、
前記リクエスト監視部によって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第１のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第２のテーブルを格納する、記憶部と、
前記リクエスト監視部によって受け取られた最新のリクエストを対象として、前記第１のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第２のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、優先度設定部と、
を備えていることを特徴とする。
【００２４】
また、上記目的を達成するため、本発明の一側面における優先度設定方法は、
（ａ）ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
（ｂ）前記（ａ）のステップによって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第１のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第２のテーブルを用い、
前記（ａ）のステップによって受け取られた最新のリクエストを対象として、前記第１のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第２のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、ステップと、
を有することを特徴とする。
【００２５】
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
（ａ）ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
（ｂ）前記（ａ）のステップによって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第１のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第２のテーブルを用い、
前記（ａ）のステップによって受け取られた最新のリクエストを対象として、前記第１のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第２のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、ステップと、
を実行させることを特徴とする。
【発明の効果】
【００２６】
以上のように、本発明における優先度設定装置、優先度設定方法、及びプログラムによれば、リクエストの発生状況に応じて、各リクエストに動的に優先度を設定することができる。
【図面の簡単な説明】
【００２７】
【図１】図１は、本発明の実施の形態における優先度設定装置の構成を示すブロック図である。
【図２】図２（ａ）は、本発明の実施の形態で用いられる優先度テーブルの一例を示す図であり、図２（ｂ）は、本発明の実施の形態で用いられる時刻記録テーブルの一例を示す図である。
【図３】図３は、図２（ａ）に示した優先度テーブルにおける「時刻記録」のデータ構造の一例を示す図である。
【図４】図４（ａ）は、図２（ａ）に示した優先度テーブルにおける「リクエスト種別」のデータ構造の一例を示す図であり、図４（ｂ）は、図４（ａ）のデータ構造の具体例を示す図である。
【図５】図５は、図１に示したキュー記憶部に記憶されているデータの構造の一例を示す図である。
【図６】図６は、本発明の実施の形態における優先度設定装置の全体の動作を示すフロー図である。
【図７】図７は、図６に示したリクエストの受取処理を具体的に示すフロー図である。
【図８】図８は、図６に示した優先度設定処理を具体的に示すフロー図である。
【図９】図９は、図８中に示したステップＡ２２を具体的に示すフロー図である。
【図１０】図１０は、図９中に示したステップＡ２２７を具体的に示すフロー図である。
【図１１】図１１は、図８中に示したステップＡ２６を具体的に示すフロー図である。
【図１２】図１２は、図６に示したリクエスト及び優先度の格納処理を具体的に示すフロー図である。
【図１３】図１３は、図１２中に示したステップＡ３２に対応して実行される優先度設定部の動作を示すフロー図である。
【図１４】図１４は、図６に示したリクエストの出力処理を具体的に示すフロー図である。
【図１５】図１５は、本発明の実施の形態における優先度設定装置の他の例の構成を示すブロック図である。
【図１６】図１６は、本発明の実施の形態における優先度設定装置の他の例の構成を示すブロック図である。
【図１７】図１７は、本発明の実施の形態における優先度設定装置を実現するコンピュータの一例を示すブロック図である。
【図１８】図１８は、従来からのＬＤＡＰを利用したシステムの構成を示すブロック図である。
【発明を実施するための形態】
【００２８】
（実施の形態）
以下、本発明の実施の形態における優先度設定装置、優先度設定方法、及びプログラムについて、図１〜図１５を参照しながら説明する。最初に、優先度設定装置の構成について図１を用いて説明する。図１は、本発明の実施の形態における優先度設定装置の構成を示すブロック図である。
【００２９】
［優先度設定装置の構成］
図１に示すように、本実施の形態における優先度設定装置２０は、ネットワークシステム１０に組み込まれている。ネットワークシステム１０は、優先度設定装置２０の他、サーバ１１と、クライアント（端末）１２とを備え、これらは、イントラネット及びインターネットといったネットワーク（図１において図示せず）を介して接続されている。
【００３０】
また、本実施の形態では、サーバ１１は、図１７に示したＬＤＡＰサーバと同一の構成を備えており、具体的には、リクエストバッファ１３と、プロトコル処理部１４と、ＬＤＡＰデータベース１５とを備えている。更に、クライアント１２も、図１７に示したクライアントと同一の構成を備えている。クライアント１２が送出するリクエストはＬＤＡＰリクエストである。
【００３１】
優先度設定装置２０は、クライアント１２とサーバ１１との間に介在し、クライアント１２からサーバ１１に向けて送出されたリクエストを受け取り、そして、受け取ったリクエストに、優先度を設定する。優先度は、サーバ１１でのリクエストの処理順序を決定する際の指標となる。そして、このような機能を得るため、図１に示すように、優先度設定装置２０は、リクエスト監視部２１と、優先度設定部２３とを備えている。
【００３２】
リクエスト監視部２１は、クライアント１２から送出されたリクエストを受け取り、受け取ったリクエストの種別を特定する。優先度ルール記憶部２２は、優先度テーブル（図２（ａ）参照）と、時刻記録テーブル（図２（ｂ）参照）とを記憶している。優先度テーブルは、リクエスト監視部２１によって受け取られた各リクエストを、種別毎に、その時刻と共に格納している。時刻記録テーブルは、各リクエストの時刻を時系列にそって格納している。
【００３３】
優先度設定部２３は、リクエスト監視部２１によって受け取られた最新のリクエストを対象として、優先度テーブルから、最新のリクエストの種別と同一の種別のリクエストの数を特定する。そして、優先度設定部２３は、特定したリクエストの数と時刻記録テーブルに格納されている時刻の数とに基づいて、最新のリクエストについての優先度を設定する。
【００３４】
このように、優先度設定装置２０では、優先度テーブルと時刻記録テーブルとが用いられており、両者の比較により、特定の種別のリクエストがリクエスト全体に対して増加しているか、減少しているかといった、リクエストの発生状況の特定が可能となる。従って、優先度設定装置２０によれば、リクエストの発生状況に応じて、特定の種別のリクエストに対する優先度を動的に設定できる。この結果、優先度の高いリクエストが急激に増加した場合であっても、レスポンスの遅延の発生は抑制される。
【００３５】
なお、本実施の形態において「リクエストの時刻」は、例えば、クライアント１２においてリクエストが作成された時刻、クライアント１２がリクエストを送出した時刻、リクエスト監視部２１がリクエストを受け取った時刻、優先度設定部２３による優先度設定が行われた時刻のいずれであっても良い。但し、本実施の形態では、後述するように優先度設定部２３による優先度設定が行われた時刻が、リクエストの時刻として用いられる。
【００３６】
次に、図１に加え、図２〜図５を用いて優先度設定装置２０の構成について更に具体的に説明する。図１に示すように、本実施の形態では、優先度設定装置２０は、リクエスト監視部２１、優先度ルール記憶部２２、及び優先度設定部２３に加え、リクエスト制御処理部２４と、キュー記憶部２５と、処理順序制御部２６とを更に備えている。また、優先度設定装置２０には、優先度ルール操作装置２７が接続されている。
【００３７】
リクエスト監視部２１は、本実施の形態では、上述したようにリクエストの種別（以下「リクエスト種別」とも記載する。）を特定した後、特定したリクエスト種別を優先度設定部２３に通知する。ここで「リクエスト種別」とは、ユーザがクライアントを介してサーバに対して行う操作の種類（リクエストの種類）を意味する。リクエスト種別としては、例えば、「変更」、「検索」、「追加」といったものが挙げられる。また、リクエスト監視部２１は、受け取ったリクエストをリクエスト制御処理部２４に出力すると共に、リクエスト制御処理部２４にも、特定したリクエスト種別を通知する。
【００３８】
優先度ルール記憶部２２は、上述したように、優先度テーブルと時刻記録テーブルとを記憶している。本実施の形態では、優先度ルール記憶部２２は、例えば、図２（ａ）に示す優先度テーブル３１と、図２（ｂ）に示す時刻記録テーブル３２とを記憶している。図２（ａ）は、本発明の実施の形態で用いられる優先度テーブルの一例を示す図であり、図２（ｂ）は、本発明の実施の形態で用いられる時刻記録テーブルの一例を示す図である。
【００３９】
図２（ａ）に示すように、優先度テーブル３１は、リクエスト種別毎にレコードを備えており、各レコードは、リクエスト種別３１１と、時刻記録３１２と、優先度３１３とで構成されている。このうち、リクエスト種別３１１には、リクエスト種別を特定する情報が格納されている。リクエスト種別３１１の具体例については、図４を用いて後述する。なお、優先度テーブル３１において、「ｘ」は任意の自然数である。
【００４０】
また、時刻記録３１２には、リクエスト毎に、リクエストの時刻が格納されている。本実施の形態では、このリクエスト毎の時刻の記録が、リクエスト自体の記録に相当する。よって、各レコードに格納されている時刻の数を特定すれば、リクエスト種別が同一となるリクエストの数を特定することができる。時刻記録３１２の具体例については、図３を用いて後述する。
【００４１】
更に、優先度３１３には、リクエスト種別毎に設定された優先度を特定する情報が格納されている。なお、本実施の形態では、後述するように、優先度設定部２３は、リクエスト種別毎に、優先度を設定する。また、優先度３１３には、具体的には、優先度を表す整数値が格納されている。
【００４２】
また、図２（ｂ）に示すように、時刻記録テーブル３２は、リクエストの時刻毎にレコードを備えており、各レコードは、時刻３２１と、優先度テーブルのレコードへのポインタ３２２とで構成されている。また、各レコードは、リクエスト種別に関係なく、時系列に沿って配列されている。なお、時刻記録テーブル３２において、「ｒ」は任意の自然数である。
【００４３】
時刻３２１には、各リクエストの時刻を特定する情報が格納されている。具体的には、時刻３２１には、当該時刻を具体的に示す数値情報、当該時刻と他の時刻との前後関係を示す数値情報、又は当該時刻と他の時刻との差分を示す数値情報が格納されている。また、ポインタ３２２には、優先度テーブル３１の対応するレコードにアクセスするためのポインタを特定する情報が格納されている。
【００４４】
ここで、図３を用いて、優先度テーブルの時刻記録３１２について具体的に説明する。図３は、図２（ａ）に示した優先度テーブルにおける「時刻記録」のデータ構造の一例を示す図である。図３に示すように、時刻記録３１２のデータ構造は、時刻４１のリストとなっている。具体的には、時刻記録［ｎ］には、時刻［１］から［ｈ］までのｈ個の時刻が格納されている。図３において、「ｎ」は、１以上ｘ以下の自然数であり、「ｈ」は任意の自然数である。
【００４５】
また、時刻４１は、時刻を特定するためのデータである。時刻４１には、当該時刻を具体的に示す数値情報、当該時刻と他の時刻との前後関係を示す数値情報、又は当該時刻と他の時刻との差分を示す数値情報が格納されている。
【００４６】
更に、図４（ａ）及び（ｂ）を用いて、優先度テーブルのリクエスト種別３１１について具体的に説明する。図４（ａ）は、図２（ａ）に示した優先度テーブルにおける「リクエスト種別」のデータ構造の一例を示す図であり、図４（ｂ）は、「リクエスト種別」を構成する操作パラメータの一例を示す図である。
【００４７】
図４（ａ）に示すように、リクエスト種別３１１のデータ構造は、操作５１と、操作パラメータにアクセスするためのポインタ５２とから成る。操作５１には、ユーザがリクエストによってサーバに対して行う操作、例えば、「検索」、「追加」、「削除」、「変更」などを特定する情報が格納されている。また、ポインタ５２には、操作パラメータにアクセスするためのポインタを特定する情報が格納されている。
【００４８】
また、図４（ｂ）に示すように、操作パラメータは、操作の種類毎に設定されている。図４（ｂ）には、操作が「変更」の場合の操作パラメータ５３と、操作が「検索」の場合の操作パラメータ５４と、操作が「追加」の場合の操作パラメータ５５とが例示されている。
【００４９】
更に、操作パラメータのデータ構造は、操作５１（図４（ａ）参照）の種類によって異なっている。このうち、図４（ｂ）の例では、操作が「変更」の場合における操作パラメータ５３のデータ構造のみが示されており、他の操作パラメータのデータ構造については省略されている。また、操作パラメータも、優先度テーブル３１と同様に、優先度ルール記憶部２２に記憶されている。
【００５０】
図４（ｂ）に示すように、操作５１が「変更」の場合における操作パラメータ５３のデータ構造は、変更対象となるフォルダ５３１と、変更内容のリスト５３２とから成る。図４（ｂ）の例では、変更対象となるフォルダ５３１は、フォルダ名「上位組織」である。フォルダ５３１には、フォルダ名を特定する文字列が格納されている。また、変更内容のリスト５３２には、各変更内容５３３（変更内容［１」〜変更内容［ｍ］、ｍ：任意の自然数）が格納されている。
【００５１】
また、各変更内容５３３は、変更種別５３３１と、属性名５３３２とで構成されている。変更種別５３３１には、「add」、「delete」、及び「replace」のいずれかを示す値が格納されている。属性名５３３２には、属性の名称を示す文字列が格納されている。なお、図４（ｂ）において、「ｚ」は、１以上ｍ以下の任意の自然数である。
【００５２】
以上、図２〜図４に示した優先度テーブル３１及び時刻記録テーブル３２を用いれば、これらに格納されている情報から、リクエスト種別毎のリクエスト全体に対する割合を把握することができる。優先度設定部２３は、後述するように、リクエスト種別毎のリクエスト全体に対する割合を用いて、優先度を設定する。
【００５３】
優先度設定部２３は、本実施の形態では、リクエスト監視部２１からリクエスト種別の通知を受けると、優先度ルール記憶部２２にアクセスし、優先度テーブル３１から、通知されたリクエスト種別に一致するリクエスト種別を特定する。
【００５４】
そして、優先度設定部２３は、処理実行時の時刻Ｔをリクエストの時刻に設定し、設定した時刻Ｔと通知されたリクエスト種別とを用いて、優先度テーブル３１（図２（ａ）参照）と時刻記録テーブル３２（図２（ｂ）参照）とを更新する。
【００５５】
具体的には、優先度設定部２３は、優先度テーブル３１の更新においては、特定したリクエスト種別に対応する時刻記録３１２（図２（ａ）参照）において、設定した時刻を追加する。また、優先度設定部２３は、時刻記録テーブル３２の更新においては、時刻記録テーブル３２に、設定した時刻を新たに格納すると共に、これから、最も古い時刻、または最新のリクエストの時刻との差が設定値を超える時刻（古くなり過ぎた時刻）を削除する。これは、優先度ル−ル記憶部２２によってデータが保持される期間を一定期間として、データが古くなり過ぎないようにするためである。
【００５６】
そして、優先度設定部２３は、時刻記録テーブル３２から、古い時刻を削除した場合は、優先度テーブル３１から、削除された時刻に対応しているリクエスト、具体的には、時刻記録３１２に格納されている、削除された時刻と同一の時刻も削除する。
【００５７】
また、更新処理の終了後、優先度設定部２３は、優先度テーブル３１から、通知されたリクエストの種別に一致するリクエスト種別のレコードを特定する。そして、優先度設定部２３は、特定したレコードに登録されているリクエストの数、即ち、時刻記録３１２に格納されている時刻の数を特定する。更に、優先度設定部２３は、時刻記録テーブル３２にアクセスすると、それに記憶されている時刻（図２（ｂ）参照）の数を特定する。
【００５８】
その後、優先度設定部２３は、優先度テーブル３１から特定した時刻の数と、時刻記録テーブル３２から特定した時刻の数とを用い、優先度規則に基づいて、最新のリクエストの優先度を設定する。最新のリクエストとは、現時点において、リクエスト監視部２１が最後に受け取ったリクエストを意味する。また、本実施の形態では、優先度設定部２３は、リクエスト種別毎に優先度を設定しており、設定後、優先度テーブル３１において、対応するレコードの優先度３１３を更新する。
【００５９】
優先度規則としては、例えば、優先度テーブル３１から特定した時刻の数を、時刻記録テーブル３２から特定した時刻の数で除したときに、得られた除算値が大きい程、優先度の値が高くなる、といった規則が挙げられる。このような優先度規則を用いれば、特定の種別のリクエストのリクエスト全体における割合が計算されるので、特定の種別のリクエストの発生状況に即した優先度が設定されることとなる。
【００６０】
また、優先度設定部２３は、リクエスト制御処理部２４から、あるリクエスト種別の優先度の問合せを受けた場合は、優先度ルール記憶部２２にアクセスし、問い合わせを受けたリクエスト種別の優先度を抽出し、これをリクエスト制御処理部２４に出力する。
【００６１】
リクエスト制御処理部２４は、リクエスト監視部２１からリクエスト種別の通知を受けると、優先度設定部２３に問い合わせを行い、通知されたリクエスト種別に設定された優先度を取得する。そして、リクエスト制御処理部２４は、リクエスト監視部２１が出力したリクエストと、取得した優先度とをペアにして、キュー記憶部２５に出力する。
【００６２】
キュー記憶部２５は、リクエスト制御処理部２４から出力されたリクエストを、ペアとなっている優先度に関連付けた状態で記憶する。また、図５に示すように、キュー記憶部２５においては、キュー構造が採用されており、最新のリクエストとその優先度とは、記憶されているデータ群（キュー）６１の末尾に格納される。
【００６３】
図５は、図１に示したキュー記憶部に記憶されているデータの構造の一例を示す図である。図５に示すように、キュー６１のデータ構造は、リクエスト６２と優先度６３とのペアデータのリストで構成されている。また、キュー６１には、先頭の要素と末尾の要素とがある。そして、リクエスト６２には、リクエスト監視部２１が受け取ったリクエストを特定する情報が格納されており、優先度６３には、優先度を特定する情報が格納されている。
【００６４】
処理順序制御部２６は、各リクエストのキュー記憶部２５に記憶された順と、各リクエストに関連付けられた優先度とに基づいて、各リクエストを処理する際の順序を決定する。そして、処理順序制御部２６は、決定した順序に従い、ＬＤＡＰサーバ１１のプロトコル処理部１４が最初に処理すべきリクエストを取り出し、取り出したリクエストを、プロトコル処理部１４に送出する。
【００６５】
また、上述したように、優先度設定装置２０には、優先度ルール操作装置２７が接続されている。優先度ルール操作装置２７は、優先度ルール記憶部２２に格納されている情報を参照及び変更することができる。
【００６６】
［優先度設定装置の動作］
続いて、本実施の形態における優先度設定装置２０の動作について図６〜図１３を用いて説明する。なお、以下の説明においては、適宜図１〜図５を参酌する。本実施の形態では、優先度設定装置２０を動作させることによって、優先度設定方法が実施される。よって、本実施の形態における優先度設定方法の説明は、以下の優先度設定装置２０の動作説明に代える。
【００６７】
まず、優先度設定装置２０を構成するリクエスト監視部２１の全体の動作について図６を用いて説明する。図６は、本発明の実施の形態における優先度設定装置の全体の動作を示すフロー図である。
【００６８】
図６に示すように、最初に、優先度設定装置２０において、リクエスト監視部２１が、クライアント１２が送出したリクエストを受け取る（ステップＡ１）。そして、リクエスト監視部２１は、受け取ったリクエストのリクエスト種別を特定すると、優先度設定部２３に対して、特定したリクエスト種別を通知する。また、リクエスト監視部２１は、リクエスト制御処理部２４に対しては、特定したリクエスト種別の通知に加え、受け取ったリクエストを出力する。
【００６９】
次に、優先度設定部２３は、受け取ったリクエスト種別に基づいて、優先度テーブル３１と時刻記録テーブル３２とを更新し、更に、更新後のこれらを用いて、最新のリクエストの優先度を設定する（ステップＡ２）。
【００７０】
次に、リクエスト制御処理部２４は、リクエスト監視部２１から通知されたリクエスト種別に基づいて優先度を取得し、そして、リクエスト監視部２１が出力したリクエストと、取得した優先度とを、キュー記憶部２５に格納させる（ステップＡ３）。このとき、キュー記憶部２５において、最新のリクエストとその優先度とは、記憶されているデータ群（キュー）６１（図５参照）の末尾に格納される。
【００７１】
その後、処理順序制御部２６は、各リクエストのキュー記憶部２５に記憶された順と、各リクエストに関連付けられた優先度とに基づいて、各リクエストを処理する際の順序を決定し、決定した順序で各リクエストをサーバ１１に出力する（ステップＡ４）。
【００７２】
以上、ステップＡ１〜Ａ４が実行されることにより、サーバ１１は、リクエストがサーバ１１に到着した順ではなく、適切に並び替えられた順で、リクエストを処理することとなる。このため、優先して処理すべきリクエストのレスポンスが遅延する事態の発生が抑制される。以下に、ステップＡ１〜Ａ４を更に具体的に説明する。
【００７３】
図７を用いて図６に示したステップＡ１のリクエストの受取処理について具体的に説明する。図７は、図６に示したリクエストの受取処理を具体的に示すフロー図である。図７に示すように、最初に、リクエスト監視部２１は、クライアント１２がリクエストを送出したかどうかを判定する（ステップＡ１１）。
【００７４】
ステップＡ１１の判定の結果、クライアント１２がリクエストを送出していない場合は、リクエスト監視部２１は待機状態となる。一方、ステップＡ１１の判定の結果、クライアント１２がリクエストを送出している場合は、リクエスト監視部２１は、クライアント１２が送出したリクエストを受け取り、受け取ったリクエストのリクエスト種別を特定する（ステップＡ１２）。また、リクエスト監視部２１は、ステップＡ１１で受け取ったリクエストを「リクエストｑ」とする。リクエストｑは、ＬＤＡＰリクエストである。
【００７５】
次に、リクエスト監視部２１は、優先度設定部２３に、リクエストｑのリクエスト種別を通知する（ステップＡ１３）。これにより、図６に示したステップＡ２が実行される。更に、リクエスト監視部２１は、リクエスト制御処理部２４に、特定したリクエスト種別を通知すると共に、受け取ったリクエストｑを出力する（ステップＡ１４）。そして、ステップＡ１４の実行が終了すると、リクエスト監視部２１における処理は終了する。
【００７６】
図８を用いて図６に示したステップＡ２の優先度設定処理について具体的に説明する。図８は、図６に示した優先度設定処理を具体的に示すフロー図である。図８に示すように、最初に、優先度設定部２３は、リクエスト監視部２１からリクエストｑのリクエスト種別の通知を受けると、優先度ルール記憶部２２の優先度テーブル３１にアクセスし、それに格納されている各レコードをチェックする。そして、優先度設定部２３は、リクエストｑとリクエスト種別が一致するレコードが存在しているかどうかを判定する（ステップＡ２１）。
【００７７】
なお、ステップＡ２１におけるリクエスト種別の一致には、完全一致だけでなく、部分的に一致する場合、例えば、リクエスト種別３１１における操作５１（図５（ａ）参照）のみが一致する場合も含まれる。
【００７８】
ステップＡ２１の判定の結果、一致するレコードが存在していない場合は、優先度設定部２３は、処理を終了する。一方、ステップＡ２１の判定の結果、一致するレコードが存在している場合は、優先度設定部２３は、優先度テーブル３１及び時刻記録テーブル３２を更新するため、これらから古い時刻についての記録を削除する（ステップＡ２２）。なお、ステップＡ２２については、図９を用いて後述する。
【００７９】
次に、優先度設定部２３は、現在の時刻Ｔを取得し（ステップＡ２３）、これをリクエストｑの時刻とする。次に、優先度設定部２３は、ステップＡ２１で、リクエストｑとリクエスト種別が一致する判定されたレコード（以下「レコードａ」とする。）の時刻記録３１２に、時刻Ｔを要素として追加する（ステップＡ２４））。ステップＡ２４により、優先度テーブル３１の更新は終了する。
【００８０】
次に、優先度設定部２３は、時刻記録テーブル３２にアクセスして、新規のレコード（以下「レコードｂ」とする。）ｂを作成させ、レコードｂの時刻３２１には、時刻Ｔを記録させ、ポインタ３２２には、優先度テーブル３１のレコードａへのポインタを格納させる（ステップＡ２５）。ステップＡ２５により、時刻記録テーブル３２の更新は終了する。
【００８１】
次に、優先度設定部２３は、優先度テーブル３１のレコードａの時刻記録３１２に格納されている要素の数ｈ１と、時刻記録テーブル３２の時刻３２１に格納されている要素の数ｈ２とを特定する。そして、優先度設定部２３は、要素数ｈ１と要素数ｈ２とを用い、優先度規則に基づいて、リクエストｑの優先度、言い換えると、レコードａの優先度ｙを決定する。（ステップＡ２６）。なお、ステップＡ２６については、図１１を用いて後述する。
【００８２】
その後、優先度設定部２３は、レコードａの優先度３１３に優先度ｙの値を格納する（ステップＡ２７）。そして、ステップＡ２７の実行が終了すると、優先度設定部２３における処理は終了する。
【００８３】
ここで、図９を用いて、図８に示したステップＡ２２の時刻削除処理について更に具体的に説明する。図９は、図８中に示したステップＡ２２を具体的に示すフロー図である。図９に示すように、ステップＡ２２においては、最初に、優先度設定部２３は、時刻記録テーブル３２が保持できるレコード数の最大値をＭに設定し、現在時刻をＴに設定し、時刻記録テーブル３２が記録を保持できる期間をＨに設定する（ステップＡ２２１）。なお、Ｍ及びＨは任意の値である。
【００８４】
次に、優先度設定部２３は、時刻記録テーブル３２にアクセスし、そのレコード数Ｎを取得する（ステップＡ２２２）。次に、優先度設定部２３は、レコード数Ｎが最大値Ｍと一致するかどうかを判定する（ステップＡ２２３）。
【００８５】
ステップＡ２２３の判定の結果、レコード数Ｎが最大値Ｍと一致しない場合は、優先度設定部２３は、時刻記録テーブル３２の各レコードを対象として、時刻３２１に格納されている時刻ｔが下記の式（１）を満たすレコードｂの検出を実行する（ステップＡ２２４）。
Ｔ−ｔ＞Ｈ        （１）
【００８６】
次に、優先度設定部２３は、レコードｂを検出できたかどうかを判定する（ステップＡ２２５）。ステップＡ２２５の判定の結果、検出できなかった場合は、優先度設定部２３における処理を終了する。一方、ステップＡ２２５の判定の結果、検出できた場合は、優先度設定部２３は、後述するステップＡ２２７を実行する。
【００８７】
また、上述したステップＡ２２３の判定の結果、レコード数Ｎが最大値Ｍと一致する場合は、優先度設定部２３は、時刻記録テーブル３２の中から、時刻３２１に格納されている時刻が一番古いレコードを特定し、これをレコードｂとする（ステップＡ２２６）。
【００８８】
ステップＡ２２５又はステップＡ２２６が実行されると、優先度設定部２３は、時刻記録テーブル３２から、レコードｂを削除する（ステップＡ２２７）。その後、優先度設定部２３は、更に、ステップＡ２２４及びＡ２２５を実行する。
【００８９】
また、ここで、ステップＡ２２７のレコードｂの削除処理について図１０を用いて説明する。図１０は、図９中に示したステップＡ２２７を具体的に示すフロー図である。
【００９０】
図１０に示すように、先ず、優先度設定部２３は、時刻記録テーブルのレコードの中から、削除の対象となったレコードｂを特定する（ステップＡ２２７１）。次に、優先度設定部２３は、レコードｂの優先度テーブルのレコードへのポインタ３２２が指す、優先度テーブル３２のレコードを特定し、これをレコードｃとする（ステップＡ２２７２）。
【００９１】
次に、優先度設定部２３は、優先度テーブル３１のレコードｃにおいて、時刻記録３１２に含まれる時刻４１の中から、レコードｂの時刻３２１と同じ値を持つ要素を特定し、特定した要素を削除する（ステップＡ２２７３）。
【００９２】
次に、優先度設定部２３は、レコードｃの時刻記録３１２に格納されている要素の数が０（ゼロ）かどうどうかを判定する（ステップＡ２２７４）。ステップＡ２２７４の判定の結果、要素の数が０ではない場合は、時刻記録テーブル３２におけるレコードｂのみを削除する（ステップＡ２２７５）。
【００９３】
一方、ステップＡ２２７４の判定の結果、要素の数が０である場合は、優先度設定部２３は、優先度テーブル３１におけるレコードｃを削除し（ステップＡ２２７６）、その後、時刻記録テーブル３２におけるレコードｂも削除する（ステップＡ２２７５）。ステップＡ２２７５の実行後、図９に示したステップＡ２２７は終了する。
【００９４】
ここで、図１１を用いて、図８に示したステップＡ２６の優先度設定処理について更に具体的に説明する。図１１は、図８中に示したステップＡ２６を具体的に示すフロー図である。
【００９５】
図１１に示すように、先ず、優先度設定部２３は、「ｈ１」を優先度テーブル３１のレコードａの時刻記録３１２に格納されている要素の数とし、「ｈ２」を時刻記録テーブル３２の時刻３２１に格納されている要素の数とし、「Ｙ」をレコードａの優先度として取り得る最大の値とする（ステップＡ２６１）。なお、「Ｙ」は、予め、設定により与えることができるものとする。
【００９６】
次に、優先度設定部２３は、要素数ｈ１と、要素数ｈ２とを特定する（ステップＡ２６２）。続いて、優先度設定部２３は、優先度を決定するための優先度規則が、ユーザによって定義されているか、即ち、優先度規則のユーザ定義が存在しているかどうか判定する（ステップＡ２６３）。
【００９７】
ステップＡ２６３の判定の結果、優先度規則のユーザ定義が存在している場合は、優先度設定部２３は、ステップＡ２６２で特定した要素数ｈ１と要素数ｈ２とを引数としてユーザ定義を呼び出し、ユーザ定義によって値ｐを決定する（ステップＡ２６４）。ｐは最終的に優先度を決定するために用いられる値である。なお、本実施の形態において、ユーザ定義は特に限定されるものではない。
【００９８】
次に、優先度設定部２３は、ステップＡ２６４で決定されたｐが、１未満である場合は、ｐを１に再設定し、更に、ｐがＹを超える場合は、ｐをＹに再設定する（ステップＡ２６５）。ステップＡ２６５により、ユーザ定義によって決定されたｐが予期せぬ値となっても、それに対処することが可能となる。
【００９９】
一方、ステップＡ２６３の判定の結果、優先度規則のユーザ定義が存在していない場合は、優先度設定部２３は、ステップＡ２６２で特定した要素数ｈ１を要素数ｈ２で除算して、ｄ（＝ｈ１／ｈ２）を算出し、ｄの値に応じてｐを決定する（ステップＡ２６６）。
【０１００】
例えば、本実施の形態１においては、ステップＡ２６６では、優先度設定部２３は、ｐを、ｄの値が０（ゼロ）以上０．１未満の場合は「１」に、０．１以上０．２未満の場合は「２」に、０．２以上０．４未満の場合は「３」に、０．４以上０．８未満の場合は「４」に、０．８以上の場合は「５」に決定する。なお、ｄの値に応じたｐの決定方法は特に限定されるものではない。よって、上記の例においてｄの閾値の設定が変更されていても良いし、上記の例と全く異なる決定方法が採用されていても良い。
【０１０１】
ステップＡ２６５又はステップＡ２６６の実行後、優先度設定部２３は、得られたｐの値を優先度として決定する（ステップＡ２６７）。ステップＡ２６７の実行後、図８に示したステップＡ２６は終了する。
【０１０２】
また、図１２を用いて、図６に示したステップＡ３のリクエスト及び優先度の格納処理について具体的に説明する。図１２は、図６に示したリクエスト及び優先度の格納処理を具体的に示すフロー図である。図１２に示すように、先ず、リクエスト制御処理部２４は、ステップＡ１４でリクエスト監視部２１が出力したリクエストｑを受け取る（ステップＡ３１）。
【０１０３】
次に、リクエスト制御処理部２４は、優先度設定部２３に、優先度テーブル３１のレコードの中に、リクエスト種別がリクエストｑの種別と一致する合致するレコードａが存在しているかどうかを問い合わせる（ステップＡ３２）。なお、ステップＡ３２による問い合わせに対応して優先度設定部２３が実行する処理については、図１３を用いて後述する。
【０１０４】
次に、リクエスト制御処理部２４は、ステップＡ３２での問い合わせの結果から、レコードａが存在しているかどうかを判定する（ステップＡ３３）。
【０１０５】
ステップＡ３３の判定の結果、レコードａが存在している場合は、リクエスト制御処理部２４は、リクエストｑの優先度の値を、ステップＡ２７（図８参照）で格納された「優先度ｙの値」とする（ステップＡ３４）。一方、ステップＡ３３の判定の結果、レコードａが存在していない場合は、リクエスト制御処理部２４は、リクエストｑの優先度の値を、「１」とする。
【０１０６】
ステップＡ３３又はステップＡ３４が実行されると、リクエスト制御処理部２４はステップＡ３１受け取ったリクエストｑと、値を取得した優先度とを、キュー記憶部２５に記憶されているキュー６１（図５参照）の末尾に格納させる（ステップＡ３５）。ステップＡ３５の実行が終了すると、リクエスト制御処理部２４における処理は終了する。
【０１０７】
ここで、図１３を用いて、図１２に示したステップＡ３２の問い合わせに対応して優先度設定部２３が実行する処理について説明する。図１３は、図１２中に示したステップＡ３２に対応して実行される優先度設定部の動作を示すフロー図である。
【０１０８】
図１３に示すように、先ず、優先度設定部２３は、問合せの対象となっているリクエストｑのリクエスト種別と、優先度テーブル３１のレコードのリクエスト種別３１１とを対比する。そして、優先度設定部２３は、リクエスト種別がリクエストｑのそれと一致するレコードａが存在しているかどうかを判定する（ステップＡ３２１）。
【０１０９】
なお、ステップＡ３２１におけるリクエスト種別の一致には、完全一致だけでなく、部分的に一致する場合も含まれる。また、このリクエスト種別の一致の判定は、ハッシュ関数等を用いて効率化させることも可能である。
【０１１０】
ステップＡ３２１の判定の結果、一致するレコードａが存在する場合は、優先度設定部２３は、レコードａをリクエスト制御処理部２４に返却し、レコードａの存在を通知する（ステップＡ３２２）。
【０１１１】
一方、ステップＡ３２１の判定の結果、一致するレコードａが存在しない場合は、優先度設定部２３は、ＮＵＬＬ値をリクエスト制御処理部２４に返却し、一致するレコードａが存在しないことを通知する（ステップＡ３２３）。
【０１１２】
図１４を用いて図６に示したステップＡ４のリクエストの出力処理について具体的に説明する。図１４は、図６に示したリクエストの出力処理を具体的に示すフロー図である。
【０１１３】
図１４に示すように、先ず、処理順序制御部２６は、キュー６１（図５参照）の先頭のレコードのリクエスト６２と優先度６３とのペアを取り出し、リクエスト６２に格納されているリクエストをサーバ１１のプロトコル処理部１４（図１参照）に出力する（ステップＡ４１）。
【０１１４】
次に、処理順序制御部２６は、キュー６１の先頭のレコードを削除する（ステップＡ４２）。そして、処理順序制御部２６は、各リクエストのキュー記憶部２５に記憶された順と、各リクエストに関連付けられた優先度ｙとを特定する（ステップＡ４３）。なお、各リクエストのキュー記憶部２５に記憶された順とは、キュー６１における先頭のレコードを基準とした、当該リクエストのレコードの順位ｓである。
【０１１５】
その後、処理順序制御部２６は、各リクエストの順位ｓから優先度ｙを減算し、キュー６１において、得られた値（ｓ−ｙ）が小さい順に、リクエスト６２と優先度６３との各ペアを並び替える（ステップＡ４４）。
【０１１６】
ステップＡ４４の実行が終了すると、処理順序制御部２６における処理は終了する。また、本実施の形態では、ステップＡ４４で用いる計算式は、上記の計算式（ｓ−ｙ）に限定されず、ｙの値が大きい程、計算値が小さくなる計算式であれば良い。他の計算式としては、例えば、（ｓ―ｙ−ｙ）が挙げられる。
【０１１７】
［効果］
以上、本実施の形態によれば、以下の第１〜第４の効果を得ることができえる。第１の効果は、特定のリクエスト種別の優先度を動的に決定できることである。リクエスト種別のリクエストの全体に占める割合を動的に把握することができ、そして、把握された割合に基づいてリクエスト種別毎の優先度が決定されるからである。
【０１１８】
第２の効果は、特定のリクエスト種別に属するリクエストの割合が高まった場合に、それらのリクエストを優先的に処理させることができることである。上述のように、リクエスト種別のリクエストの全体に占める割合を動的に把握することができ、特定のリクエスト種別に属するリクエストの割合が高まった場合は、そのリクエストの優先度は高くなったと判断できるからである。
【０１１９】
第３の効果は、特定のリクエスト種別に属するリクエストの割合が高まり、第２の効果によって、これらを優先的に処理した後に、このリクエスト種別に属するリクエストの割合が高くなる前の状況に戻ると、第２の効果による優先的な処理を終了できることである。上述のように、リクエスト種別のリクエストの全体に占める割合を動的に把握することができ、特定のリクエスト種別に属するリクエストの割合が低くなった場合は、そのリクエストの優先度も低くなったと判断できるからである。
【０１２０】
第４の効果は、クライアント１２（図１参照）側に、優先度を設定するための特別のモジュールを導入する必要がないことである。このため、既存のシステムに、優先度設定装置２０を組み込むだけで、上述の効果を得ることができる。
【０１２１】
また、本実施の形態では、優先度設定装置２０は、ＬＤＡＰを利用しないシステムに対しても適用でき、適用対象は特に限定されるものではない。但し、既存のシステムを大きく変更することなく、優先度の設定を可能にすることが求められている点から、本実施の形態は、ＬＤＡＰを利用するシステムに特に有効である。
【０１２２】
本実施の形態におけるプログラムは、コンピュータに、図６〜図１３に示す各ステップを実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における優先度設定装置２０と優先度設定方法とを実現することができる。
【０１２３】
この場合、コンピュータのＣＰＵ（Central Processing Unit）は、リクエスト監視部２１、優先度設定部２３、リクエスト制御処理部２４、及び処理順序制御部２６として機能し、処理を行なう。また、コンピュータに備えられたハードディスク等の記憶装置が、優先度ルール記憶部２２、及びキュー記憶部２５として機能する。
【０１２４】
［変形例１］
次に、本発明の実施の形態における変形例１について、図１５を参照しながら説明する。図１５は、本発明の実施の形態における優先度設定装置の他の例の構成を示すブロック図である。
【０１２５】
図１５に示す例では、優先度設定装置２０は、ＬＤＡＰサーバ７０に組み込まれている。ＬＤＡＰサーバ７０は、プロトコル処理部１４、及びＬＤＡＰデータベース１５に加えて、リクエスト監視部２１、優先度ルール記憶部２２、優先度設定部２３、リクエスト制御処理部２４、キュー記憶部２５、及び処理順序制御部２６を更に備えている。また、図１５に示す例は、上述した本実施の形態におけるプログラムを、ＬＤＡＰサーバ７０を構成するコンピュータにインストールし、これを実行することによって実現できる。
【０１２６】
［変形例２］
次に、本発明の実施の形態における変形例２について、図１６を参照しながら説明する。図１６は、本発明の実施の形態における優先度設定装置の他の例の構成を示すブロック図である。
【０１２７】
図１６に示す例では、優先度設定装置２０は、ＬＤＡＰゲートウェイ７２に実装されている。ＬＤＡＰゲートウェイ７２は、リクエスト監視部２１、優先度ルール記憶部２２、優先度設定部２３、リクエスト制御処理部２４、キュー記憶部２５、及び処理順序制御部２６を備えている。なお、ＬＤＡＰサーバ７１は、ＬＤＡＰゲートウェイ７２を介して、クライアント１２に接続されている。ＬＤＡＰサーバ７１は、プロトコル処理部１４、及びＬＤＡＰデータベース１５を備えている。
【０１２８】
図１６に示す例は、上述した本実施の形態におけるプログラムを、ＬＤＡＰゲートウェイ７２を構成するコンピュータにインストールし、これを実行することによって実現できる。図１６の例では、優先度設定装置２０を実現するコンピュータを、ＬＤＡＰサーバ７１を実現するコンピュータとは別のコンピュータとできるため、ＬＤＡＰサーバに追加の負荷を与えずに、リクエストの実行順序を動的に制御することができる。
【０１２９】
ここで、本実施の形態におけるプログラムを実行することによって、優先度設定装置２０を実現するコンピュータについて図１７を用いて説明する。図１７は、本発明の実施の形態における優先度設定装置を実現するコンピュータの一例を示すブロック図である。
【０１３０】
図１７に示すように、コンピュータ１１０は、ＣＰＵ１１１と、メインメモリ１１２と、記憶装置１１３と、入力インターフェイス１１４と、表示コントローラ１１５と、データリーダ／ライタ１１６と、通信インターフェイス１１７とを備える。これらの各部は、バス１２１を介して、互いにデータ通信可能に接続される。
【０１３１】
ＣＰＵ１１１は、記憶装置１１３に格納された、本実施の形態におけるプログラム（コード）をメインメモリ１１２に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ１１２は、典型的には、ＤＲＡＭ（Dynamic Random Access Memory）等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体１２０に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス１１７を介して接続されたインターネット上で流通するものであっても良い。
【０１３２】
また、記憶装置１１３の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス１１４は、ＣＰＵ１１１と、キーボード及びマウスといった入力機器１１８との間のデータ伝送を仲介する。表示コントローラ１１５は、ディスプレイ装置１１９と接続され、ディスプレイ装置１１９での表示を制御する。データリーダ／ライタ１１６は、ＣＰＵ１１１と記録媒体１２０との間のデータ伝送を仲介し、記録媒体１２０からのプログラムの読み出し、及びコンピュータ１１０における処理結果の記録媒体１２０への書き込みを実行する。通信インターフェイス１１７は、ＣＰＵ１１１と、他のコンピュータとの間のデータ伝送を仲介する。
【０１３３】
また、記録媒体１２０の具体例としては、ＣＦ（Compact Flash）及びＳＤ（Secure Digital）等の汎用的な半導体記憶デバイス、フレキシブルディスク（Flexible Disk）等の磁気記憶媒体、又はＣＤ−ＲＯＭ（Compact Disk Read Only Memory）などの光学記憶媒体が挙げられる。
【０１３４】
上述した実施の形態の一部又は全部は、以下に記載する（付記１）〜（付記１５）によって表現することができるが、以下の記載に限定されるものではない。
【０１３５】
（付記１）
ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、リクエスト監視部と、
前記リクエスト監視部によって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第１のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第２のテーブルを格納する、記憶部と、
前記リクエスト監視部によって受け取られた最新のリクエストを対象として、前記第１のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第２のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、優先度設定部と、
を備えていることを特徴とする優先度設定装置。
【０１３６】
（付記２）
前記優先度設定部が、前記リクエスト監視部が前記リクエストを受け取る度に、受け取った前記リクエストの種別とその時刻とを特定し、特定した種別と時刻とを用いて、前記第１のテーブルと前記第２のテーブルとを更新する、付記１に記載の優先度設定装置。
【０１３７】
（付記３）
前記優先度設定部が、前記第２のテーブルを更新する際に、前記第２のテーブルに、特定した時刻を新たに格納し、前記第２のテーブルから、最も古い時刻、または前記最新のリクエストの時刻との差が設定値を超える時刻を削除する、付記２に記載の優先度設定装置。
【０１３８】
（付記４）
前記優先度設定部が、前記第２のテーブルから、時刻を削除した場合に、前記第１のテーブルから、削除された時刻に対応しているリクエストを削除する、付記３に記載の優先度設定装置。
【０１３９】
（付記５）
前記優先度設定部が、前記特定したリクエストの数を前記第２のテーブルに格納されている時刻の数で除して得られた値が大きい程、優先度の値を高く設定する、付記１から４のいずれかに記載の優先度設定装置。
【０１４０】
（付記６）
前記リクエスト監視部が受け取った前記リクエストを、前記優先度設定部が前記リクエストに設定した前記優先度に関連付けた状態で記憶する、第２の記憶部と、
前記リクエストの前記第２の記憶部に記憶された順と、前記リクエストに関連付けられた優先度とに基づいて、前記リクエストを処理する際の順序を決定する、処理順序制御部と、
を備えている、付記１〜５のいずれかに記載の優先度設定装置。
【０１４１】
（付記７）
前記優先度設定部が、前記種別毎に、前記優先度を設定し、
前記第１のテーブルが、前記種別毎に、既に設定された前記優先度を格納している、付記１〜６のいずれかに記載の優先度設定装置。
【０１４２】
（付記８）
（ａ）ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
（ｂ）前記（ａ）のステップによって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第１のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第２のテーブルを用い、
前記（ａ）のステップによって受け取られた最新のリクエストを対象として、前記第１のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第２のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、ステップと、
を有することを特徴とする優先度設定方法。
【０１４３】
（付記９）
（ｃ）前記（ａ）のステップにおいて前記リクエストを受け取る度に、受け取った前記リクエストの種別とその時刻とを特定し、特定した種別と時刻とを用いて、前記第１のテーブルと前記第２のテーブルとを更新する、ステップを更に有する、
付記８に記載の優先度設定方法。
【０１４４】
（付記１０）
前記（ｃ）のステップにおいて、前記第２のテーブルを更新する際に、前記第２のテーブルに、特定した時刻を新たに格納し、前記第２のテーブルから、最も古い時刻、または前記最新のリクエストの時刻との差が設定値を超える時刻を削除する、付記９に記載の優先度設定方法。
【０１４５】
（付記１１）
前記（ｃ）のステップにおいて、前記第２のテーブルから、時刻を削除した場合に、前記第１のテーブルから、削除された時刻に対応しているリクエストを削除する、付記１０に記載の優先度設定方法。
【０１４６】
（付記１２）
前記（ｂ）のステップにおいて、前記特定したリクエストの数を前記第２のテーブルに格納されている時刻の数で除して得られた値が大きい程、優先度の値を高く設定する、付記８から１１のいずれかに記載の優先度設定方法。
【０１４７】
（付記１３）
（ｄ）前記（ａ）のステップで受け取った前記リクエストを、前記（ｂ）のステップで前記リクエストに設定した前記優先度に関連付けた状態で記憶する、ステップと、
（ｅ）前記（ｄ）のステップにおける、前記リクエストの記憶された順と、前記リクエストに関連付けられた優先度とに基づいて、前記リクエストに対応した処理を実行する際の順序を決定する、ステップと、を更に有する、
付記８〜１２のいずれかに記載の優先度設定方法。
【０１４８】
（付記１４）
前記（ｂ）のステップにおいて、前記種別毎に、前記優先度を設定し、
前記第１のテーブルが、前記種別毎に、既に設定された前記優先度を格納している、付記８〜１３のいずれかに記載の優先度設定方法。
【０１４９】
（付記１５）
コンピュータに、
（ａ）ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
（ｂ）前記（ａ）のステップによって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第１のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第２のテーブルを用い、
前記（ａ）のステップによって受け取られた最新のリクエストを対象として、前記第１のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第２のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、ステップと、
を実行させるプログラム。
【０１５０】
（付記１６）
（ｃ）前記（ａ）のステップにおいて前記リクエストを受け取る度に、受け取った前記リクエストの種別とその時刻とを特定し、特定した種別と時刻とを用いて、前記第１のテーブルと前記第２のテーブルとを更新する、ステップを更に前記コンピュータに実行させる、付記１５に記載のプログラム。
【０１５１】
（付記１７）
前記（ｃ）のステップにおいて、前記第２のテーブルを更新する際に、前記第２のテーブルに、特定した時刻を新たに格納し、前記第２のテーブルから、最も古い時刻、または前記最新のリクエストの時刻との差が設定値を超える時刻を削除する、付記１６に記載のプログラム。
【０１５２】
（付記１８）
前記（ｃ）のステップにおいて、前記第２のテーブルから、時刻を削除した場合に、前記第１のテーブルから、削除された時刻に対応しているリクエストを削除する、付記１０に記載のプログラム。
【０１５３】
（付記１９）
前記（ｂ）のステップにおいて、前記特定したリクエストの数を前記第２のテーブルに格納されている時刻の数で除して得られた値が大きい程、優先度の値を高く設定する、付記１５から１８のいずれかに記載のプログラム。
【０１５４】
（付記２０）
（ｄ）前記（ａ）のステップで受け取った前記リクエストを、前記（ｂ）のステップで前記リクエストに設定した前記優先度に関連付けた状態で記憶する、ステップと、
（ｅ）前記（ｄ）のステップにおける、前記リクエストの記憶された順と、前記リクエストに関連付けられた優先度とに基づいて、前記リクエストに対応した処理を実行する際の順序を決定する、ステップと、を更に前記コンピュータに実行させる、
付記１５〜１９のいずれかに記載のプログラム。
【０１５５】
（付記２１）
前記（ｂ）のステップにおいて、前記種別毎に、前記優先度を設定し、
前記第１のテーブルが、前記種別毎に、既に設定された前記優先度を格納している、付記１５〜２０のいずれかに記載のプログラム。
【産業上の利用可能性】
【０１５６】
以上のように、本発明によれば、クライアントからサーバへのリクエストの発生状況に応じて、各リクエストに動的に優先度を設定できる。本発明は、クライアントとサーバとを備えるシステム、特にＬＤＡＰを利用したシステムに有用である。
【符号の説明】
【０１５７】
１１  ＬＤＡＰサーバ
１２  クライアント
１３  リクエストバッファ
１４  プロトコル処理部
１５  ＬＤＡＰデータベース
２０  優先度設定装置
２１  リクエスト監視部
２２  優先度ルール記憶部
２３  優先度設定部
２４  リクエスト制御処理部
２５  キュー記憶部
２６  処理順序制御部
２７  優先度ルール操作装置
３１  優先度テーブル
３２  時刻記録テーブル
４１  優先度テーブルの時刻記録に格納されている時刻
５１  優先度テーブルのリクエスト種別に格納されている操作
５２  操作パラメータにアクセスするためのポインタ
５３  操作が変更である場合の操作パラメータ
７０  ＬＤＡＰサーバ
７１  ＬＤＡＰサーバ
７２  ＬＤＡＰゲートウェイ
１１０  コンピュータ
１１１  ＣＰＵ
１１２  メインメモリ
１１３  記憶装置
１１４  入力インターフェイス
１１５  表示コントローラ
１１６  データリーダ／ライタ
１１７  通信インターフェイス
１１８  入力機器
１１９  ディスプレイ装置
１２０  記録媒体
１２１  バス
３１１  リクエスト種別
３１２  時刻記録
３１３  優先度
３２１  時刻
３２２  優先度テーブルのレコードへのポインタ
５３１  操作が変更である場合の変更対象となるフォルダ
５３２  操作が変更である場合の変更内容のリスト
５３３  変更内容
５３３１  変更種別
５３３２  属性名
【図１】
0005601462.tif 000002
【図２】
0005601462.tif 000003
【図３】
0005601462.tif 000004
【図４】
0005601462.tif 000005
【図５】
0005601462.tif 000006
【図６】
0005601462.tif 000007
【図７】
0005601462.tif 000008
【図８】
0005601462.tif 000009
【図９】
0005601462.tif 000010
【図１０】
0005601462.tif 000011
【図１１】
0005601462.tif 000012
【図１２】
0005601462.tif 000013
【図１３】
0005601462.tif 000014
【図１４】
0005601462.tif 000015
【図１５】
0005601462.tif 000016
【図１６】
0005601462.tif 000017
【図１７】
0005601462.tif 000018
【図１８】
0005601462.tif 000019