JP5601462B2 - 優先度設定装置、優先度設定方法、及びプログラム - Google Patents

優先度設定装置、優先度設定方法、及びプログラム Download PDF

Info

Publication number
JP5601462B2
JP5601462B2 JP2010225401A JP2010225401A JP5601462B2 JP 5601462 B2 JP5601462 B2 JP 5601462B2 JP 2010225401 A JP2010225401 A JP 2010225401A JP 2010225401 A JP2010225401 A JP 2010225401A JP 5601462 B2 JP5601462 B2 JP 5601462B2
Authority
JP
Japan
Prior art keywords
request
priority
time
type
priority setting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010225401A
Other languages
English (en)
Other versions
JP2012079190A (ja
Inventor
宏仁 大脇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2010225401A priority Critical patent/JP5601462B2/ja
Publication of JP2012079190A publication Critical patent/JP2012079190A/ja
Application granted granted Critical
Publication of JP5601462B2 publication Critical patent/JP5601462B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、クライアントコンピュータからサーバ装置に送られるリクエストに優先度を設定する優先度設定装置、優先度設定方法、及びプログラムに関する。
近年、ネットワークシステムにおいて、ディレクトリデータベースにアクセスするためのプロトコルとして、LDAP(Lightweight Directory Access Protocol)が利用されている。通常、LDAPにおいては、クライアントからサーバに送信されるリクエストに対して優先度を設定するという概念は無く、どのリクエストも均等に扱われる。このため、サーバは、先に到達したリクエストから順に処理を行う。
ここで、図18を用いて、従来からのLDAPを利用したシステムについて説明する。図18は、従来からのLDAPを利用したシステムの構成を示すブロック図である。図18に示すように、システムは、サーバ(LDAPサーバ)11と、クライアント12とを備えている。クライアント12は、LDAPサーバ11に対してリクエストを送出する。
LDAPサーバ11は、リクエストバッファ13と、プロトコル処理部14と、LDAPデータベース15とを備えている。LDAPサーバ11において、リクエストバッファ13は、FIFO(First-In First-Out)方式を採用し、クライアント12が送出したリクエストを一旦蓄積する。
プロトコル処理部14は、先ず、リクエストバッファ13から、蓄積されているリクエストを取り出し、取り出したリクエストの内容を解析する。そして、プロトコル処理部14は、解析結果に基づいて、LDAPデータベース15に対して検索または更新といった処理を実行する。その後、プロトコル処理部14は、その処理の結果を、当該リクエストに対するレスポンスとして、クライアント12に対して送出する。LDAPサーバ11においては、以上の一連の処理が繰り返し行われ、LDAPサーバに先に到達したリクエストほど先に処理される。
ところで、図18に示したシステムでは、優先度の低いリクエストの後に、優先度の高いリクエストが到達した場合であっても、優先度とは関係なく、先に到達したリクエストから処理される。また、図18に示したシステムでは、特に高負荷時において、後から到達したリクエストはリクエストバッファ13で滞留するため、リクエストに対するレスポンスは、大きく遅延する。このため、早急に処理を行う必要のある優先度の高いリクエストについて、レスポンスの遅延の問題が発生してしまう。また、時間制限が設定されているリクエストにあっては、レスポンスの遅延により、エラーとなってしまう場合もある。
ここで、レスポンスの遅延が問題となる具体例について説明する。先ず、第1の例では、多数の派遣社員を雇用している組織において、派遣社員が月毎に入れ替わる場合について説明する。この第1の例では、月の切替り時に多くのユーザ登録が行なわれることとなる。
典型的な運用では、ユーザ登録の際に、ユーザのパスワードは、初期の状態からユーザ自身によって変更される。よって、月初めに偏ってパスワード変更のリクエストの割合が増える。また、パスワード変更は、優先度の高いリクエストであり、他人による不正利用を防止するため、タイムリーに処理されるべきである。
そして、月初めにおいて、他の種別のリクエストによりサーバの負荷が高かったとする。この場合、LDAPサーバは、パスワード変更のリクエストを優先的に処理できないため、パスワード変更のリクエストは、遅延したり、設定されている時間制限によってエラーとなったりする可能性がある。つまり、パスワード変更におけるタイムリーに処理されるべきという要求を満たすことは、できなくなる。
次に、第2の例では、システム障害の対応に当たるユーザの緊急登録等、なんらかの事情で、多数のユーザの登録内容の更新(権限の変更など)を早急に実行しなければならない場合について説明する。この第2の例では、突発的に特定のパターンの更新リクエストの割合が増えることとなる。また、各更新リクエストは、優先度の高いリクエストであり、早急に実行されるべきである。
そして、特定のパターンの更新リクエストの割合が増加したときに、LDAPサーバの負荷が高くなったとする。この場合も、第1の例と同様に、LDAPサーバは、更新リクエストを優先的に処理できないため、結果、更新リクエストは、遅延したり、設定されている時間制限によってエラーとなったりする可能制がある。つまり、ユーザの登録内容の更新における早急に行われるべきという要求を満たすことは、できなくなる。
また、このようなレスポンスの遅延の問題を解決するため、リクエストに優先度を設定し、設定した優先度に応じてリクエストの処理を実行するシステムが提案されている(例えば、特許文献1〜3参照)。
特許文献1は、サービスを提供するサーバ(サービス提供サーバ)の負荷状況と優先度について設定されたルール(優先度ルール)とを管理するサーバ(サービス情報サーバ)を備えたシステムを開示している。特許文献1に開示のシステムでは、クライアントは、サービス提供サーバにアクセスする前に、サービス情報サーバにアクセスして優先度を取得し、その優先度を元にリクエストを発行する。
特許文献2は、提供するサービスに対応して定義された優先度情報に基づいて、クライアントからのリクエストを実行する際の優先度を決定する、トランザクション処理システムを開示している。特許文献2に開示のトランザクション処理システムは、予め優先度が高く設定されたサービスのリクエストを優先的に処理することができる。
また、特許文献3は、ユーザから要求されたサービス(リクエスト)を処理する際の優先度を決定する優先度決定装置と、これを備えたシステムとを開示している。特許文献3に開示の優先度決定装置は、ユーザからのサービス要求の履歴(サービス要求履歴)と予め設定された優先ポリシーとに基づいて、ユーザ毎に重要度を決定し、更に、決定した重要度に応じて各サービスの優先度を決定する。
サービス要求履歴としては、ユーザが要求したサービスの要求回数、ユーザのサービス要求からサーバの応答までの時間、通信量、利用者の要求によって発生したデータベースサーバへのトランザクションの回数等のデータ値が挙げられる。また、優先ポリシーは、具体的には、設定条件毎の重み係数で構成されている。重要度は、サービス要求履歴のデータ値毎に、データ値と重み係数とを乗算し、得られた各乗算値の合計を求めることによって算出される。
特開2001−345848号公報 特開2002−229943号公報 特開2006−190005号公報
しかしながら、上述した特許文献1〜3に開示されたシステムでは、第1の例及び第2の例で示した場合、即ち、特定の種別(種類)のリクエストが一時的に増加する場合に、増加したリクエストの優先度を高くできず、レスポンスの遅延の解消が十分でないという問題がある。更に、この問題は、特定の種別のリクエストの一時的な増加が予め想定されていない場合において顕著となる。
具体的には、上記特許文献1に開示のシステムでは、動的な要素としてサーバの付加状況が収集され、付加状況が優先度の決定に利用されているが、特定の種別のリクエストの発生状況までは収集されていない。よって、上記特許文献1に開示のシステムでは、一時的に増加した特定の種別のリクエストを特定し、このリクエストの優先度を高くすることはできないので、レスポンスの遅延の解消は不十分である。
また、上記特許文献2に開示のトランザクション処理システムでは、予め定義された優先度情報からしか、優先度は決定されておらず、優先度の決定に動的な要素が用いられていないため、当然に、レスポンスの遅延の解消は不十分である。
更に、上記特許文献3に開示の優先度決定装置では、優先ポリシーは動的な要素ではないため、サービス要求履歴が蓄積されるにつれて、算出される重要度は固定化され、結果、各サービスの優先度も固定化される。また、上記特許文献3に開示の優先度決定装置でも、特定の種別のリクエストの発生状況までは収集されていない。このため、上記特許文献3に開示の優先度決定装置を用いた場合であっても、レスポンスの遅延の解消は不十分である。
本発明の目的の一例は、上記問題を解消し、リクエストの発生状況に応じて、各リクエストに動的に優先度を設定し得る、優先度設定装置、優先度設定方法、及びプログラムを提供することにある。
上記目的を達成するため、本発明の一側面における優先度設定装置は、
ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、リクエスト監視部と、
前記リクエスト監視部によって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第1のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第2のテーブルを格納する、記憶部と、
前記リクエスト監視部によって受け取られた最新のリクエストを対象として、前記第1のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第2のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、優先度設定部と、
を備えていることを特徴とする。
また、上記目的を達成するため、本発明の一側面における優先度設定方法は、
(a)ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
(b)前記(a)のステップによって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第1のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第2のテーブルを用い、
前記(a)のステップによって受け取られた最新のリクエストを対象として、前記第1のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第2のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、ステップと、
を有することを特徴とする。
更に、上記目的を達成するため、本発明の一側面におけるプログラムは、
コンピュータに、
(a)ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
(b)前記(a)のステップによって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第1のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第2のテーブルを用い、
前記(a)のステップによって受け取られた最新のリクエストを対象として、前記第1のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第2のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、ステップと、
を実行させることを特徴とする。
以上のように、本発明における優先度設定装置、優先度設定方法、及びプログラムによれば、リクエストの発生状況に応じて、各リクエストに動的に優先度を設定することができる。
図1は、本発明の実施の形態における優先度設定装置の構成を示すブロック図である。 図2(a)は、本発明の実施の形態で用いられる優先度テーブルの一例を示す図であり、図2(b)は、本発明の実施の形態で用いられる時刻記録テーブルの一例を示す図である。 図3は、図2(a)に示した優先度テーブルにおける「時刻記録」のデータ構造の一例を示す図である。 図4(a)は、図2(a)に示した優先度テーブルにおける「リクエスト種別」のデータ構造の一例を示す図であり、図4(b)は、図4(a)のデータ構造の具体例を示す図である。 図5は、図1に示したキュー記憶部に記憶されているデータの構造の一例を示す図である。 図6は、本発明の実施の形態における優先度設定装置の全体の動作を示すフロー図である。 図7は、図6に示したリクエストの受取処理を具体的に示すフロー図である。 図8は、図6に示した優先度設定処理を具体的に示すフロー図である。 図9は、図8中に示したステップA22を具体的に示すフロー図である。 図10は、図9中に示したステップA227を具体的に示すフロー図である。 図11は、図8中に示したステップA26を具体的に示すフロー図である。 図12は、図6に示したリクエスト及び優先度の格納処理を具体的に示すフロー図である。 図13は、図12中に示したステップA32に対応して実行される優先度設定部の動作を示すフロー図である。 図14は、図6に示したリクエストの出力処理を具体的に示すフロー図である。 図15は、本発明の実施の形態における優先度設定装置の他の例の構成を示すブロック図である。 図16は、本発明の実施の形態における優先度設定装置の他の例の構成を示すブロック図である。 図17は、本発明の実施の形態における優先度設定装置を実現するコンピュータの一例を示すブロック図である。 図18は、従来からのLDAPを利用したシステムの構成を示すブロック図である。
(実施の形態)
以下、本発明の実施の形態における優先度設定装置、優先度設定方法、及びプログラムについて、図1〜図15を参照しながら説明する。最初に、優先度設定装置の構成について図1を用いて説明する。図1は、本発明の実施の形態における優先度設定装置の構成を示すブロック図である。
[優先度設定装置の構成]
図1に示すように、本実施の形態における優先度設定装置20は、ネットワークシステム10に組み込まれている。ネットワークシステム10は、優先度設定装置20の他、サーバ11と、クライアント(端末)12とを備え、これらは、イントラネット及びインターネットといったネットワーク(図1において図示せず)を介して接続されている。
また、本実施の形態では、サーバ11は、図17に示したLDAPサーバと同一の構成を備えており、具体的には、リクエストバッファ13と、プロトコル処理部14と、LDAPデータベース15とを備えている。更に、クライアント12も、図17に示したクライアントと同一の構成を備えている。クライアント12が送出するリクエストはLDAPリクエストである。
優先度設定装置20は、クライアント12とサーバ11との間に介在し、クライアント12からサーバ11に向けて送出されたリクエストを受け取り、そして、受け取ったリクエストに、優先度を設定する。優先度は、サーバ11でのリクエストの処理順序を決定する際の指標となる。そして、このような機能を得るため、図1に示すように、優先度設定装置20は、リクエスト監視部21と、優先度設定部23とを備えている。
リクエスト監視部21は、クライアント12から送出されたリクエストを受け取り、受け取ったリクエストの種別を特定する。優先度ルール記憶部22は、優先度テーブル(図2(a)参照)と、時刻記録テーブル(図2(b)参照)とを記憶している。優先度テーブルは、リクエスト監視部21によって受け取られた各リクエストを、種別毎に、その時刻と共に格納している。時刻記録テーブルは、各リクエストの時刻を時系列にそって格納している。
優先度設定部23は、リクエスト監視部21によって受け取られた最新のリクエストを対象として、優先度テーブルから、最新のリクエストの種別と同一の種別のリクエストの数を特定する。そして、優先度設定部23は、特定したリクエストの数と時刻記録テーブルに格納されている時刻の数とに基づいて、最新のリクエストについての優先度を設定する。
このように、優先度設定装置20では、優先度テーブルと時刻記録テーブルとが用いられており、両者の比較により、特定の種別のリクエストがリクエスト全体に対して増加しているか、減少しているかといった、リクエストの発生状況の特定が可能となる。従って、優先度設定装置20によれば、リクエストの発生状況に応じて、特定の種別のリクエストに対する優先度を動的に設定できる。この結果、優先度の高いリクエストが急激に増加した場合であっても、レスポンスの遅延の発生は抑制される。
なお、本実施の形態において「リクエストの時刻」は、例えば、クライアント12においてリクエストが作成された時刻、クライアント12がリクエストを送出した時刻、リクエスト監視部21がリクエストを受け取った時刻、優先度設定部23による優先度設定が行われた時刻のいずれであっても良い。但し、本実施の形態では、後述するように優先度設定部23による優先度設定が行われた時刻が、リクエストの時刻として用いられる。
次に、図1に加え、図2〜図5を用いて優先度設定装置20の構成について更に具体的に説明する。図1に示すように、本実施の形態では、優先度設定装置20は、リクエスト監視部21、優先度ルール記憶部22、及び優先度設定部23に加え、リクエスト制御処理部24と、キュー記憶部25と、処理順序制御部26とを更に備えている。また、優先度設定装置20には、優先度ルール操作装置27が接続されている。
リクエスト監視部21は、本実施の形態では、上述したようにリクエストの種別(以下「リクエスト種別」とも記載する。)を特定した後、特定したリクエスト種別を優先度設定部23に通知する。ここで「リクエスト種別」とは、ユーザがクライアントを介してサーバに対して行う操作の種類(リクエストの種類)を意味する。リクエスト種別としては、例えば、「変更」、「検索」、「追加」といったものが挙げられる。また、リクエスト監視部21は、受け取ったリクエストをリクエスト制御処理部24に出力すると共に、リクエスト制御処理部24にも、特定したリクエスト種別を通知する。
優先度ルール記憶部22は、上述したように、優先度テーブルと時刻記録テーブルとを記憶している。本実施の形態では、優先度ルール記憶部22は、例えば、図2(a)に示す優先度テーブル31と、図2(b)に示す時刻記録テーブル32とを記憶している。図2(a)は、本発明の実施の形態で用いられる優先度テーブルの一例を示す図であり、図2(b)は、本発明の実施の形態で用いられる時刻記録テーブルの一例を示す図である。
図2(a)に示すように、優先度テーブル31は、リクエスト種別毎にレコードを備えており、各レコードは、リクエスト種別311と、時刻記録312と、優先度313とで構成されている。このうち、リクエスト種別311には、リクエスト種別を特定する情報が格納されている。リクエスト種別311の具体例については、図4を用いて後述する。なお、優先度テーブル31において、「x」は任意の自然数である。
また、時刻記録312には、リクエスト毎に、リクエストの時刻が格納されている。本実施の形態では、このリクエスト毎の時刻の記録が、リクエスト自体の記録に相当する。よって、各レコードに格納されている時刻の数を特定すれば、リクエスト種別が同一となるリクエストの数を特定することができる。時刻記録312の具体例については、図3を用いて後述する。
更に、優先度313には、リクエスト種別毎に設定された優先度を特定する情報が格納されている。なお、本実施の形態では、後述するように、優先度設定部23は、リクエスト種別毎に、優先度を設定する。また、優先度313には、具体的には、優先度を表す整数値が格納されている。
また、図2(b)に示すように、時刻記録テーブル32は、リクエストの時刻毎にレコードを備えており、各レコードは、時刻321と、優先度テーブルのレコードへのポインタ322とで構成されている。また、各レコードは、リクエスト種別に関係なく、時系列に沿って配列されている。なお、時刻記録テーブル32において、「r」は任意の自然数である。
時刻321には、各リクエストの時刻を特定する情報が格納されている。具体的には、時刻321には、当該時刻を具体的に示す数値情報、当該時刻と他の時刻との前後関係を示す数値情報、又は当該時刻と他の時刻との差分を示す数値情報が格納されている。また、ポインタ322には、優先度テーブル31の対応するレコードにアクセスするためのポインタを特定する情報が格納されている。
ここで、図3を用いて、優先度テーブルの時刻記録312について具体的に説明する。図3は、図2(a)に示した優先度テーブルにおける「時刻記録」のデータ構造の一例を示す図である。図3に示すように、時刻記録312のデータ構造は、時刻41のリストとなっている。具体的には、時刻記録[n]には、時刻[1]から[h]までのh個の時刻が格納されている。図3において、「n」は、1以上x以下の自然数であり、「h」は任意の自然数である。
また、時刻41は、時刻を特定するためのデータである。時刻41には、当該時刻を具体的に示す数値情報、当該時刻と他の時刻との前後関係を示す数値情報、又は当該時刻と他の時刻との差分を示す数値情報が格納されている。
更に、図4(a)及び(b)を用いて、優先度テーブルのリクエスト種別311について具体的に説明する。図4(a)は、図2(a)に示した優先度テーブルにおける「リクエスト種別」のデータ構造の一例を示す図であり、図4(b)は、「リクエスト種別」を構成する操作パラメータの一例を示す図である。
図4(a)に示すように、リクエスト種別311のデータ構造は、操作51と、操作パラメータにアクセスするためのポインタ52とから成る。操作51には、ユーザがリクエストによってサーバに対して行う操作、例えば、「検索」、「追加」、「削除」、「変更」などを特定する情報が格納されている。また、ポインタ52には、操作パラメータにアクセスするためのポインタを特定する情報が格納されている。
また、図4(b)に示すように、操作パラメータは、操作の種類毎に設定されている。図4(b)には、操作が「変更」の場合の操作パラメータ53と、操作が「検索」の場合の操作パラメータ54と、操作が「追加」の場合の操作パラメータ55とが例示されている。
更に、操作パラメータのデータ構造は、操作51(図4(a)参照)の種類によって異なっている。このうち、図4(b)の例では、操作が「変更」の場合における操作パラメータ53のデータ構造のみが示されており、他の操作パラメータのデータ構造については省略されている。また、操作パラメータも、優先度テーブル31と同様に、優先度ルール記憶部22に記憶されている。
図4(b)に示すように、操作51が「変更」の場合における操作パラメータ53のデータ構造は、変更対象となるフォルダ531と、変更内容のリスト532とから成る。図4(b)の例では、変更対象となるフォルダ531は、フォルダ名「上位組織」である。フォルダ531には、フォルダ名を特定する文字列が格納されている。また、変更内容のリスト532には、各変更内容533(変更内容[1」〜変更内容[m]、m:任意の自然数)が格納されている。
また、各変更内容533は、変更種別5331と、属性名5332とで構成されている。変更種別5331には、「add」、「delete」、及び「replace」のいずれかを示す値が格納されている。属性名5332には、属性の名称を示す文字列が格納されている。なお、図4(b)において、「z」は、1以上m以下の任意の自然数である。
以上、図2〜図4に示した優先度テーブル31及び時刻記録テーブル32を用いれば、これらに格納されている情報から、リクエスト種別毎のリクエスト全体に対する割合を把握することができる。優先度設定部23は、後述するように、リクエスト種別毎のリクエスト全体に対する割合を用いて、優先度を設定する。
優先度設定部23は、本実施の形態では、リクエスト監視部21からリクエスト種別の通知を受けると、優先度ルール記憶部22にアクセスし、優先度テーブル31から、通知されたリクエスト種別に一致するリクエスト種別を特定する。
そして、優先度設定部23は、処理実行時の時刻Tをリクエストの時刻に設定し、設定した時刻Tと通知されたリクエスト種別とを用いて、優先度テーブル31(図2(a)参照)と時刻記録テーブル32(図2(b)参照)とを更新する。
具体的には、優先度設定部23は、優先度テーブル31の更新においては、特定したリクエスト種別に対応する時刻記録312(図2(a)参照)において、設定した時刻を追加する。また、優先度設定部23は、時刻記録テーブル32の更新においては、時刻記録テーブル32に、設定した時刻を新たに格納すると共に、これから、最も古い時刻、または最新のリクエストの時刻との差が設定値を超える時刻(古くなり過ぎた時刻)を削除する。これは、優先度ル−ル記憶部22によってデータが保持される期間を一定期間として、データが古くなり過ぎないようにするためである。
そして、優先度設定部23は、時刻記録テーブル32から、古い時刻を削除した場合は、優先度テーブル31から、削除された時刻に対応しているリクエスト、具体的には、時刻記録312に格納されている、削除された時刻と同一の時刻も削除する。
また、更新処理の終了後、優先度設定部23は、優先度テーブル31から、通知されたリクエストの種別に一致するリクエスト種別のレコードを特定する。そして、優先度設定部23は、特定したレコードに登録されているリクエストの数、即ち、時刻記録312に格納されている時刻の数を特定する。更に、優先度設定部23は、時刻記録テーブル32にアクセスすると、それに記憶されている時刻(図2(b)参照)の数を特定する。
その後、優先度設定部23は、優先度テーブル31から特定した時刻の数と、時刻記録テーブル32から特定した時刻の数とを用い、優先度規則に基づいて、最新のリクエストの優先度を設定する。最新のリクエストとは、現時点において、リクエスト監視部21が最後に受け取ったリクエストを意味する。また、本実施の形態では、優先度設定部23は、リクエスト種別毎に優先度を設定しており、設定後、優先度テーブル31において、対応するレコードの優先度313を更新する。
優先度規則としては、例えば、優先度テーブル31から特定した時刻の数を、時刻記録テーブル32から特定した時刻の数で除したときに、得られた除算値が大きい程、優先度の値が高くなる、といった規則が挙げられる。このような優先度規則を用いれば、特定の種別のリクエストのリクエスト全体における割合が計算されるので、特定の種別のリクエストの発生状況に即した優先度が設定されることとなる。
また、優先度設定部23は、リクエスト制御処理部24から、あるリクエスト種別の優先度の問合せを受けた場合は、優先度ルール記憶部22にアクセスし、問い合わせを受けたリクエスト種別の優先度を抽出し、これをリクエスト制御処理部24に出力する。
リクエスト制御処理部24は、リクエスト監視部21からリクエスト種別の通知を受けると、優先度設定部23に問い合わせを行い、通知されたリクエスト種別に設定された優先度を取得する。そして、リクエスト制御処理部24は、リクエスト監視部21が出力したリクエストと、取得した優先度とをペアにして、キュー記憶部25に出力する。
キュー記憶部25は、リクエスト制御処理部24から出力されたリクエストを、ペアとなっている優先度に関連付けた状態で記憶する。また、図5に示すように、キュー記憶部25においては、キュー構造が採用されており、最新のリクエストとその優先度とは、記憶されているデータ群(キュー)61の末尾に格納される。
図5は、図1に示したキュー記憶部に記憶されているデータの構造の一例を示す図である。図5に示すように、キュー61のデータ構造は、リクエスト62と優先度63とのペアデータのリストで構成されている。また、キュー61には、先頭の要素と末尾の要素とがある。そして、リクエスト62には、リクエスト監視部21が受け取ったリクエストを特定する情報が格納されており、優先度63には、優先度を特定する情報が格納されている。
処理順序制御部26は、各リクエストのキュー記憶部25に記憶された順と、各リクエストに関連付けられた優先度とに基づいて、各リクエストを処理する際の順序を決定する。そして、処理順序制御部26は、決定した順序に従い、LDAPサーバ11のプロトコル処理部14が最初に処理すべきリクエストを取り出し、取り出したリクエストを、プロトコル処理部14に送出する。
また、上述したように、優先度設定装置20には、優先度ルール操作装置27が接続されている。優先度ルール操作装置27は、優先度ルール記憶部22に格納されている情報を参照及び変更することができる。
[優先度設定装置の動作]
続いて、本実施の形態における優先度設定装置20の動作について図6〜図13を用いて説明する。なお、以下の説明においては、適宜図1〜図5を参酌する。本実施の形態では、優先度設定装置20を動作させることによって、優先度設定方法が実施される。よって、本実施の形態における優先度設定方法の説明は、以下の優先度設定装置20の動作説明に代える。
まず、優先度設定装置20を構成するリクエスト監視部21の全体の動作について図6を用いて説明する。図6は、本発明の実施の形態における優先度設定装置の全体の動作を示すフロー図である。
図6に示すように、最初に、優先度設定装置20において、リクエスト監視部21が、クライアント12が送出したリクエストを受け取る(ステップA1)。そして、リクエスト監視部21は、受け取ったリクエストのリクエスト種別を特定すると、優先度設定部23に対して、特定したリクエスト種別を通知する。また、リクエスト監視部21は、リクエスト制御処理部24に対しては、特定したリクエスト種別の通知に加え、受け取ったリクエストを出力する。
次に、優先度設定部23は、受け取ったリクエスト種別に基づいて、優先度テーブル31と時刻記録テーブル32とを更新し、更に、更新後のこれらを用いて、最新のリクエストの優先度を設定する(ステップA2)。
次に、リクエスト制御処理部24は、リクエスト監視部21から通知されたリクエスト種別に基づいて優先度を取得し、そして、リクエスト監視部21が出力したリクエストと、取得した優先度とを、キュー記憶部25に格納させる(ステップA3)。このとき、キュー記憶部25において、最新のリクエストとその優先度とは、記憶されているデータ群(キュー)61(図5参照)の末尾に格納される。
その後、処理順序制御部26は、各リクエストのキュー記憶部25に記憶された順と、各リクエストに関連付けられた優先度とに基づいて、各リクエストを処理する際の順序を決定し、決定した順序で各リクエストをサーバ11に出力する(ステップA4)。
以上、ステップA1〜A4が実行されることにより、サーバ11は、リクエストがサーバ11に到着した順ではなく、適切に並び替えられた順で、リクエストを処理することとなる。このため、優先して処理すべきリクエストのレスポンスが遅延する事態の発生が抑制される。以下に、ステップA1〜A4を更に具体的に説明する。
図7を用いて図6に示したステップA1のリクエストの受取処理について具体的に説明する。図7は、図6に示したリクエストの受取処理を具体的に示すフロー図である。図7に示すように、最初に、リクエスト監視部21は、クライアント12がリクエストを送出したかどうかを判定する(ステップA11)。
ステップA11の判定の結果、クライアント12がリクエストを送出していない場合は、リクエスト監視部21は待機状態となる。一方、ステップA11の判定の結果、クライアント12がリクエストを送出している場合は、リクエスト監視部21は、クライアント12が送出したリクエストを受け取り、受け取ったリクエストのリクエスト種別を特定する(ステップA12)。また、リクエスト監視部21は、ステップA11で受け取ったリクエストを「リクエストq」とする。リクエストqは、LDAPリクエストである。
次に、リクエスト監視部21は、優先度設定部23に、リクエストqのリクエスト種別を通知する(ステップA13)。これにより、図6に示したステップA2が実行される。更に、リクエスト監視部21は、リクエスト制御処理部24に、特定したリクエスト種別を通知すると共に、受け取ったリクエストqを出力する(ステップA14)。そして、ステップA14の実行が終了すると、リクエスト監視部21における処理は終了する。
図8を用いて図6に示したステップA2の優先度設定処理について具体的に説明する。図8は、図6に示した優先度設定処理を具体的に示すフロー図である。図8に示すように、最初に、優先度設定部23は、リクエスト監視部21からリクエストqのリクエスト種別の通知を受けると、優先度ルール記憶部22の優先度テーブル31にアクセスし、それに格納されている各レコードをチェックする。そして、優先度設定部23は、リクエストqとリクエスト種別が一致するレコードが存在しているかどうかを判定する(ステップA21)。
なお、ステップA21におけるリクエスト種別の一致には、完全一致だけでなく、部分的に一致する場合、例えば、リクエスト種別311における操作51(図5(a)参照)のみが一致する場合も含まれる。
ステップA21の判定の結果、一致するレコードが存在していない場合は、優先度設定部23は、処理を終了する。一方、ステップA21の判定の結果、一致するレコードが存在している場合は、優先度設定部23は、優先度テーブル31及び時刻記録テーブル32を更新するため、これらから古い時刻についての記録を削除する(ステップA22)。なお、ステップA22については、図9を用いて後述する。
次に、優先度設定部23は、現在の時刻Tを取得し(ステップA23)、これをリクエストqの時刻とする。次に、優先度設定部23は、ステップA21で、リクエストqとリクエスト種別が一致する判定されたレコード(以下「レコードa」とする。)の時刻記録312に、時刻Tを要素として追加する(ステップA24))。ステップA24により、優先度テーブル31の更新は終了する。
次に、優先度設定部23は、時刻記録テーブル32にアクセスして、新規のレコード(以下「レコードb」とする。)bを作成させ、レコードbの時刻321には、時刻Tを記録させ、ポインタ322には、優先度テーブル31のレコードaへのポインタを格納させる(ステップA25)。ステップA25により、時刻記録テーブル32の更新は終了する。
次に、優先度設定部23は、優先度テーブル31のレコードaの時刻記録312に格納されている要素の数h1と、時刻記録テーブル32の時刻321に格納されている要素の数h2とを特定する。そして、優先度設定部23は、要素数h1と要素数h2とを用い、優先度規則に基づいて、リクエストqの優先度、言い換えると、レコードaの優先度yを決定する。(ステップA26)。なお、ステップA26については、図11を用いて後述する。
その後、優先度設定部23は、レコードaの優先度313に優先度yの値を格納する(ステップA27)。そして、ステップA27の実行が終了すると、優先度設定部23における処理は終了する。
ここで、図9を用いて、図8に示したステップA22の時刻削除処理について更に具体的に説明する。図9は、図8中に示したステップA22を具体的に示すフロー図である。図9に示すように、ステップA22においては、最初に、優先度設定部23は、時刻記録テーブル32が保持できるレコード数の最大値をMに設定し、現在時刻をTに設定し、時刻記録テーブル32が記録を保持できる期間をHに設定する(ステップA221)。なお、M及びHは任意の値である。
次に、優先度設定部23は、時刻記録テーブル32にアクセスし、そのレコード数Nを取得する(ステップA222)。次に、優先度設定部23は、レコード数Nが最大値Mと一致するかどうかを判定する(ステップA223)。
ステップA223の判定の結果、レコード数Nが最大値Mと一致しない場合は、優先度設定部23は、時刻記録テーブル32の各レコードを対象として、時刻321に格納されている時刻tが下記の式(1)を満たすレコードbの検出を実行する(ステップA224)。
T−t>H (1)
次に、優先度設定部23は、レコードbを検出できたかどうかを判定する(ステップA225)。ステップA225の判定の結果、検出できなかった場合は、優先度設定部23における処理を終了する。一方、ステップA225の判定の結果、検出できた場合は、優先度設定部23は、後述するステップA227を実行する。
また、上述したステップA223の判定の結果、レコード数Nが最大値Mと一致する場合は、優先度設定部23は、時刻記録テーブル32の中から、時刻321に格納されている時刻が一番古いレコードを特定し、これをレコードbとする(ステップA226)。
ステップA225又はステップA226が実行されると、優先度設定部23は、時刻記録テーブル32から、レコードbを削除する(ステップA227)。その後、優先度設定部23は、更に、ステップA224及びA225を実行する。
また、ここで、ステップA227のレコードbの削除処理について図10を用いて説明する。図10は、図9中に示したステップA227を具体的に示すフロー図である。
図10に示すように、先ず、優先度設定部23は、時刻記録テーブルのレコードの中から、削除の対象となったレコードbを特定する(ステップA2271)。次に、優先度設定部23は、レコードbの優先度テーブルのレコードへのポインタ322が指す、優先度テーブル32のレコードを特定し、これをレコードcとする(ステップA2272)。
次に、優先度設定部23は、優先度テーブル31のレコードcにおいて、時刻記録312に含まれる時刻41の中から、レコードbの時刻321と同じ値を持つ要素を特定し、特定した要素を削除する(ステップA2273)。
次に、優先度設定部23は、レコードcの時刻記録312に格納されている要素の数が0(ゼロ)かどうどうかを判定する(ステップA2274)。ステップA2274の判定の結果、要素の数が0ではない場合は、時刻記録テーブル32におけるレコードbのみを削除する(ステップA2275)。
一方、ステップA2274の判定の結果、要素の数が0である場合は、優先度設定部23は、優先度テーブル31におけるレコードcを削除し(ステップA2276)、その後、時刻記録テーブル32におけるレコードbも削除する(ステップA2275)。ステップA2275の実行後、図9に示したステップA227は終了する。
ここで、図11を用いて、図8に示したステップA26の優先度設定処理について更に具体的に説明する。図11は、図8中に示したステップA26を具体的に示すフロー図である。
図11に示すように、先ず、優先度設定部23は、「h1」を優先度テーブル31のレコードaの時刻記録312に格納されている要素の数とし、「h2」を時刻記録テーブル32の時刻321に格納されている要素の数とし、「Y」をレコードaの優先度として取り得る最大の値とする(ステップA261)。なお、「Y」は、予め、設定により与えることができるものとする。
次に、優先度設定部23は、要素数h1と、要素数h2とを特定する(ステップA262)。続いて、優先度設定部23は、優先度を決定するための優先度規則が、ユーザによって定義されているか、即ち、優先度規則のユーザ定義が存在しているかどうか判定する(ステップA263)。
ステップA263の判定の結果、優先度規則のユーザ定義が存在している場合は、優先度設定部23は、ステップA262で特定した要素数h1と要素数h2とを引数としてユーザ定義を呼び出し、ユーザ定義によって値pを決定する(ステップA264)。pは最終的に優先度を決定するために用いられる値である。なお、本実施の形態において、ユーザ定義は特に限定されるものではない。
次に、優先度設定部23は、ステップA264で決定されたpが、1未満である場合は、pを1に再設定し、更に、pがYを超える場合は、pをYに再設定する(ステップA265)。ステップA265により、ユーザ定義によって決定されたpが予期せぬ値となっても、それに対処することが可能となる。
一方、ステップA263の判定の結果、優先度規則のユーザ定義が存在していない場合は、優先度設定部23は、ステップA262で特定した要素数h1を要素数h2で除算して、d(=h1/h2)を算出し、dの値に応じてpを決定する(ステップA266)。
例えば、本実施の形態1においては、ステップA266では、優先度設定部23は、pを、dの値が0(ゼロ)以上0.1未満の場合は「1」に、0.1以上0.2未満の場合は「2」に、0.2以上0.4未満の場合は「3」に、0.4以上0.8未満の場合は「4」に、0.8以上の場合は「5」に決定する。なお、dの値に応じたpの決定方法は特に限定されるものではない。よって、上記の例においてdの閾値の設定が変更されていても良いし、上記の例と全く異なる決定方法が採用されていても良い。
ステップA265又はステップA266の実行後、優先度設定部23は、得られたpの値を優先度として決定する(ステップA267)。ステップA267の実行後、図8に示したステップA26は終了する。
また、図12を用いて、図6に示したステップA3のリクエスト及び優先度の格納処理について具体的に説明する。図12は、図6に示したリクエスト及び優先度の格納処理を具体的に示すフロー図である。図12に示すように、先ず、リクエスト制御処理部24は、ステップA14でリクエスト監視部21が出力したリクエストqを受け取る(ステップA31)。
次に、リクエスト制御処理部24は、優先度設定部23に、優先度テーブル31のレコードの中に、リクエスト種別がリクエストqの種別と一致する合致するレコードaが存在しているかどうかを問い合わせる(ステップA32)。なお、ステップA32による問い合わせに対応して優先度設定部23が実行する処理については、図13を用いて後述する。
次に、リクエスト制御処理部24は、ステップA32での問い合わせの結果から、レコードaが存在しているかどうかを判定する(ステップA33)。
ステップA33の判定の結果、レコードaが存在している場合は、リクエスト制御処理部24は、リクエストqの優先度の値を、ステップA27(図8参照)で格納された「優先度yの値」とする(ステップA34)。一方、ステップA33の判定の結果、レコードaが存在していない場合は、リクエスト制御処理部24は、リクエストqの優先度の値を、「1」とする。
ステップA33又はステップA34が実行されると、リクエスト制御処理部24はステップA31受け取ったリクエストqと、値を取得した優先度とを、キュー記憶部25に記憶されているキュー61(図5参照)の末尾に格納させる(ステップA35)。ステップA35の実行が終了すると、リクエスト制御処理部24における処理は終了する。
ここで、図13を用いて、図12に示したステップA32の問い合わせに対応して優先度設定部23が実行する処理について説明する。図13は、図12中に示したステップA32に対応して実行される優先度設定部の動作を示すフロー図である。
図13に示すように、先ず、優先度設定部23は、問合せの対象となっているリクエストqのリクエスト種別と、優先度テーブル31のレコードのリクエスト種別311とを対比する。そして、優先度設定部23は、リクエスト種別がリクエストqのそれと一致するレコードaが存在しているかどうかを判定する(ステップA321)。
なお、ステップA321におけるリクエスト種別の一致には、完全一致だけでなく、部分的に一致する場合も含まれる。また、このリクエスト種別の一致の判定は、ハッシュ関数等を用いて効率化させることも可能である。
ステップA321の判定の結果、一致するレコードaが存在する場合は、優先度設定部23は、レコードaをリクエスト制御処理部24に返却し、レコードaの存在を通知する(ステップA322)。
一方、ステップA321の判定の結果、一致するレコードaが存在しない場合は、優先度設定部23は、NULL値をリクエスト制御処理部24に返却し、一致するレコードaが存在しないことを通知する(ステップA323)。
図14を用いて図6に示したステップA4のリクエストの出力処理について具体的に説明する。図14は、図6に示したリクエストの出力処理を具体的に示すフロー図である。
図14に示すように、先ず、処理順序制御部26は、キュー61(図5参照)の先頭のレコードのリクエスト62と優先度63とのペアを取り出し、リクエスト62に格納されているリクエストをサーバ11のプロトコル処理部14(図1参照)に出力する(ステップA41)。
次に、処理順序制御部26は、キュー61の先頭のレコードを削除する(ステップA42)。そして、処理順序制御部26は、各リクエストのキュー記憶部25に記憶された順と、各リクエストに関連付けられた優先度yとを特定する(ステップA43)。なお、各リクエストのキュー記憶部25に記憶された順とは、キュー61における先頭のレコードを基準とした、当該リクエストのレコードの順位sである。
その後、処理順序制御部26は、各リクエストの順位sから優先度yを減算し、キュー61において、得られた値(s−y)が小さい順に、リクエスト62と優先度63との各ペアを並び替える(ステップA44)。
ステップA44の実行が終了すると、処理順序制御部26における処理は終了する。また、本実施の形態では、ステップA44で用いる計算式は、上記の計算式(s−y)に限定されず、yの値が大きい程、計算値が小さくなる計算式であれば良い。他の計算式としては、例えば、(s―y−y)が挙げられる。
[効果]
以上、本実施の形態によれば、以下の第1〜第4の効果を得ることができえる。第1の効果は、特定のリクエスト種別の優先度を動的に決定できることである。リクエスト種別のリクエストの全体に占める割合を動的に把握することができ、そして、把握された割合に基づいてリクエスト種別毎の優先度が決定されるからである。
第2の効果は、特定のリクエスト種別に属するリクエストの割合が高まった場合に、それらのリクエストを優先的に処理させることができることである。上述のように、リクエスト種別のリクエストの全体に占める割合を動的に把握することができ、特定のリクエスト種別に属するリクエストの割合が高まった場合は、そのリクエストの優先度は高くなったと判断できるからである。
第3の効果は、特定のリクエスト種別に属するリクエストの割合が高まり、第2の効果によって、これらを優先的に処理した後に、このリクエスト種別に属するリクエストの割合が高くなる前の状況に戻ると、第2の効果による優先的な処理を終了できることである。上述のように、リクエスト種別のリクエストの全体に占める割合を動的に把握することができ、特定のリクエスト種別に属するリクエストの割合が低くなった場合は、そのリクエストの優先度も低くなったと判断できるからである。
第4の効果は、クライアント12(図1参照)側に、優先度を設定するための特別のモジュールを導入する必要がないことである。このため、既存のシステムに、優先度設定装置20を組み込むだけで、上述の効果を得ることができる。
また、本実施の形態では、優先度設定装置20は、LDAPを利用しないシステムに対しても適用でき、適用対象は特に限定されるものではない。但し、既存のシステムを大きく変更することなく、優先度の設定を可能にすることが求められている点から、本実施の形態は、LDAPを利用するシステムに特に有効である。
本実施の形態におけるプログラムは、コンピュータに、図6〜図13に示す各ステップを実行させるプログラムであれば良い。このプログラムをコンピュータにインストールし、実行することによって、本実施の形態における優先度設定装置20と優先度設定方法とを実現することができる。
この場合、コンピュータのCPU(Central Processing Unit)は、リクエスト監視部21、優先度設定部23、リクエスト制御処理部24、及び処理順序制御部26として機能し、処理を行なう。また、コンピュータに備えられたハードディスク等の記憶装置が、優先度ルール記憶部22、及びキュー記憶部25として機能する。
[変形例1]
次に、本発明の実施の形態における変形例1について、図15を参照しながら説明する。図15は、本発明の実施の形態における優先度設定装置の他の例の構成を示すブロック図である。
図15に示す例では、優先度設定装置20は、LDAPサーバ70に組み込まれている。LDAPサーバ70は、プロトコル処理部14、及びLDAPデータベース15に加えて、リクエスト監視部21、優先度ルール記憶部22、優先度設定部23、リクエスト制御処理部24、キュー記憶部25、及び処理順序制御部26を更に備えている。また、図15に示す例は、上述した本実施の形態におけるプログラムを、LDAPサーバ70を構成するコンピュータにインストールし、これを実行することによって実現できる。
[変形例2]
次に、本発明の実施の形態における変形例2について、図16を参照しながら説明する。図16は、本発明の実施の形態における優先度設定装置の他の例の構成を示すブロック図である。
図16に示す例では、優先度設定装置20は、LDAPゲートウェイ72に実装されている。LDAPゲートウェイ72は、リクエスト監視部21、優先度ルール記憶部22、優先度設定部23、リクエスト制御処理部24、キュー記憶部25、及び処理順序制御部26を備えている。なお、LDAPサーバ71は、LDAPゲートウェイ72を介して、クライアント12に接続されている。LDAPサーバ71は、プロトコル処理部14、及びLDAPデータベース15を備えている。
図16に示す例は、上述した本実施の形態におけるプログラムを、LDAPゲートウェイ72を構成するコンピュータにインストールし、これを実行することによって実現できる。図16の例では、優先度設定装置20を実現するコンピュータを、LDAPサーバ71を実現するコンピュータとは別のコンピュータとできるため、LDAPサーバに追加の負荷を与えずに、リクエストの実行順序を動的に制御することができる。
ここで、本実施の形態におけるプログラムを実行することによって、優先度設定装置20を実現するコンピュータについて図17を用いて説明する。図17は、本発明の実施の形態における優先度設定装置を実現するコンピュータの一例を示すブロック図である。
図17に示すように、コンピュータ110は、CPU111と、メインメモリ112と、記憶装置113と、入力インターフェイス114と、表示コントローラ115と、データリーダ/ライタ116と、通信インターフェイス117とを備える。これらの各部は、バス121を介して、互いにデータ通信可能に接続される。
CPU111は、記憶装置113に格納された、本実施の形態におけるプログラム(コード)をメインメモリ112に展開し、これらを所定順序で実行することにより、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)等の揮発性の記憶装置である。また、本実施の形態におけるプログラムは、コンピュータ読み取り可能な記録媒体120に格納された状態で提供される。なお、本実施の形態におけるプログラムは、通信インターフェイス117を介して接続されたインターネット上で流通するものであっても良い。
また、記憶装置113の具体例としては、ハードディスクの他、フラッシュメモリ等の半導体記憶装置が挙げられる。入力インターフェイス114は、CPU111と、キーボード及びマウスといった入力機器118との間のデータ伝送を仲介する。表示コントローラ115は、ディスプレイ装置119と接続され、ディスプレイ装置119での表示を制御する。データリーダ/ライタ116は、CPU111と記録媒体120との間のデータ伝送を仲介し、記録媒体120からのプログラムの読み出し、及びコンピュータ110における処理結果の記録媒体120への書き込みを実行する。通信インターフェイス117は、CPU111と、他のコンピュータとの間のデータ伝送を仲介する。
また、記録媒体120の具体例としては、CF(Compact Flash)及びSD(Secure Digital)等の汎用的な半導体記憶デバイス、フレキシブルディスク(Flexible Disk)等の磁気記憶媒体、又はCD−ROM(Compact Disk Read Only Memory)などの光学記憶媒体が挙げられる。
上述した実施の形態の一部又は全部は、以下に記載する(付記1)〜(付記15)によって表現することができるが、以下の記載に限定されるものではない。
(付記1)
ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、リクエスト監視部と、
前記リクエスト監視部によって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第1のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第2のテーブルを格納する、記憶部と、
前記リクエスト監視部によって受け取られた最新のリクエストを対象として、前記第1のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第2のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、優先度設定部と、
を備えていることを特徴とする優先度設定装置。
(付記2)
前記優先度設定部が、前記リクエスト監視部が前記リクエストを受け取る度に、受け取った前記リクエストの種別とその時刻とを特定し、特定した種別と時刻とを用いて、前記第1のテーブルと前記第2のテーブルとを更新する、付記1に記載の優先度設定装置。
(付記3)
前記優先度設定部が、前記第2のテーブルを更新する際に、前記第2のテーブルに、特定した時刻を新たに格納し、前記第2のテーブルから、最も古い時刻、または前記最新のリクエストの時刻との差が設定値を超える時刻を削除する、付記2に記載の優先度設定装置。
(付記4)
前記優先度設定部が、前記第2のテーブルから、時刻を削除した場合に、前記第1のテーブルから、削除された時刻に対応しているリクエストを削除する、付記3に記載の優先度設定装置。
(付記5)
前記優先度設定部が、前記特定したリクエストの数を前記第2のテーブルに格納されている時刻の数で除して得られた値が大きい程、優先度の値を高く設定する、付記1から4のいずれかに記載の優先度設定装置。
(付記6)
前記リクエスト監視部が受け取った前記リクエストを、前記優先度設定部が前記リクエストに設定した前記優先度に関連付けた状態で記憶する、第2の記憶部と、
前記リクエストの前記第2の記憶部に記憶された順と、前記リクエストに関連付けられた優先度とに基づいて、前記リクエストを処理する際の順序を決定する、処理順序制御部と、
を備えている、付記1〜5のいずれかに記載の優先度設定装置。
(付記7)
前記優先度設定部が、前記種別毎に、前記優先度を設定し、
前記第1のテーブルが、前記種別毎に、既に設定された前記優先度を格納している、付記1〜6のいずれかに記載の優先度設定装置。
(付記8)
(a)ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
(b)前記(a)のステップによって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第1のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第2のテーブルを用い、
前記(a)のステップによって受け取られた最新のリクエストを対象として、前記第1のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第2のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、ステップと、
を有することを特徴とする優先度設定方法。
(付記9)
(c)前記(a)のステップにおいて前記リクエストを受け取る度に、受け取った前記リクエストの種別とその時刻とを特定し、特定した種別と時刻とを用いて、前記第1のテーブルと前記第2のテーブルとを更新する、ステップを更に有する、
付記8に記載の優先度設定方法。
(付記10)
前記(c)のステップにおいて、前記第2のテーブルを更新する際に、前記第2のテーブルに、特定した時刻を新たに格納し、前記第2のテーブルから、最も古い時刻、または前記最新のリクエストの時刻との差が設定値を超える時刻を削除する、付記9に記載の優先度設定方法。
(付記11)
前記(c)のステップにおいて、前記第2のテーブルから、時刻を削除した場合に、前記第1のテーブルから、削除された時刻に対応しているリクエストを削除する、付記10に記載の優先度設定方法。
(付記12)
前記(b)のステップにおいて、前記特定したリクエストの数を前記第2のテーブルに格納されている時刻の数で除して得られた値が大きい程、優先度の値を高く設定する、付記8から11のいずれかに記載の優先度設定方法。
(付記13)
(d)前記(a)のステップで受け取った前記リクエストを、前記(b)のステップで前記リクエストに設定した前記優先度に関連付けた状態で記憶する、ステップと、
(e)前記(d)のステップにおける、前記リクエストの記憶された順と、前記リクエストに関連付けられた優先度とに基づいて、前記リクエストに対応した処理を実行する際の順序を決定する、ステップと、を更に有する、
付記8〜12のいずれかに記載の優先度設定方法。
(付記14)
前記(b)のステップにおいて、前記種別毎に、前記優先度を設定し、
前記第1のテーブルが、前記種別毎に、既に設定された前記優先度を格納している、付記8〜13のいずれかに記載の優先度設定方法。
(付記15)
コンピュータに、
(a)ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
(b)前記(a)のステップによって受け取られた各リクエストを、種別毎に、その時刻と共に格納している第1のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第2のテーブルを用い、
前記(a)のステップによって受け取られた最新のリクエストを対象として、前記第1のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数と前記第2のテーブルに格納されている時刻の数とに基づいて、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定する、ステップと、
を実行させるプログラム。
(付記16)
(c)前記(a)のステップにおいて前記リクエストを受け取る度に、受け取った前記リクエストの種別とその時刻とを特定し、特定した種別と時刻とを用いて、前記第1のテーブルと前記第2のテーブルとを更新する、ステップを更に前記コンピュータに実行させる、付記15に記載のプログラム。
(付記17)
前記(c)のステップにおいて、前記第2のテーブルを更新する際に、前記第2のテーブルに、特定した時刻を新たに格納し、前記第2のテーブルから、最も古い時刻、または前記最新のリクエストの時刻との差が設定値を超える時刻を削除する、付記16に記載のプログラム。
(付記18)
前記(c)のステップにおいて、前記第2のテーブルから、時刻を削除した場合に、前記第1のテーブルから、削除された時刻に対応しているリクエストを削除する、付記10に記載のプログラム。
(付記19)
前記(b)のステップにおいて、前記特定したリクエストの数を前記第2のテーブルに格納されている時刻の数で除して得られた値が大きい程、優先度の値を高く設定する、付記15から18のいずれかに記載のプログラム。
(付記20)
(d)前記(a)のステップで受け取った前記リクエストを、前記(b)のステップで前記リクエストに設定した前記優先度に関連付けた状態で記憶する、ステップと、
(e)前記(d)のステップにおける、前記リクエストの記憶された順と、前記リクエストに関連付けられた優先度とに基づいて、前記リクエストに対応した処理を実行する際の順序を決定する、ステップと、を更に前記コンピュータに実行させる、
付記15〜19のいずれかに記載のプログラム。
(付記21)
前記(b)のステップにおいて、前記種別毎に、前記優先度を設定し、
前記第1のテーブルが、前記種別毎に、既に設定された前記優先度を格納している、付記15〜20のいずれかに記載のプログラム。
以上のように、本発明によれば、クライアントからサーバへのリクエストの発生状況に応じて、各リクエストに動的に優先度を設定できる。本発明は、クライアントとサーバとを備えるシステム、特にLDAPを利用したシステムに有用である。
11 LDAPサーバ
12 クライアント
13 リクエストバッファ
14 プロトコル処理部
15 LDAPデータベース
20 優先度設定装置
21 リクエスト監視部
22 優先度ルール記憶部
23 優先度設定部
24 リクエスト制御処理部
25 キュー記憶部
26 処理順序制御部
27 優先度ルール操作装置
31 優先度テーブル
32 時刻記録テーブル
41 優先度テーブルの時刻記録に格納されている時刻
51 優先度テーブルのリクエスト種別に格納されている操作
52 操作パラメータにアクセスするためのポインタ
53 操作が変更である場合の操作パラメータ
70 LDAPサーバ
71 LDAPサーバ
72 LDAPゲートウェイ
110 コンピュータ
111 CPU
112 メインメモリ
113 記憶装置
114 入力インターフェイス
115 表示コントローラ
116 データリーダ/ライタ
117 通信インターフェイス
118 入力機器
119 ディスプレイ装置
120 記録媒体
121 バス
311 リクエスト種別
312 時刻記録
313 優先度
321 時刻
322 優先度テーブルのレコードへのポインタ
531 操作が変更である場合の変更対象となるフォルダ
532 操作が変更である場合の変更内容のリスト
533 変更内容
5331 変更種別
5332 属性名

Claims (8)

  1. ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、リクエスト監視部と、
    前記リクエスト監視部によって受け取られた各リクエストを、種別毎に、前記各リクエストの時刻と共に格納している第1のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第2のテーブルを格納する、記憶部と、
    前記リクエスト監視部によって受け取られた最新のリクエストを対象として、前記第1のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数前記第2のテーブルに格納されている時刻の数で除して得られた値が大きい程、値が高くなるように、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定し、設定した前記優先度を前記第1のテーブルに格納させる、優先度設定部と、
    を備え、
    前記リクエストの時刻は、前記端末によって前記リクエストが作成された時刻、前記端末によって前記リクエストが送信された時刻、前記リクエスト監視部によって前記リクエストが受け取られた時刻、及び前記優先度設定部によって前記リクエストについて優先度が設定された時刻のうちいずれかである、
    ことを特徴とする優先度設定装置。
  2. 前記優先度設定部が、前記リクエスト監視部が前記リクエストを受け取る度に、受け取った前記リクエストの種別と前記リクエストの時刻とを特定し、特定した種別と前記リクエストの時刻とを用いて、前記第1のテーブルと前記第2のテーブルとを更新する、請求項1に記載の優先度設定装置。
  3. 前記優先度設定部が、前記第2のテーブルを更新する際に、前記第2のテーブルに、特定した前記リクエストの時刻を新たに格納し、前記第2のテーブルから、最も古いリクエストの時刻、または前記最新のリクエストの時刻との差が設定値を超える時刻を削除する、請求項2に記載の優先度設定装置。
  4. 前記優先度設定部が、前記第2のテーブルから、時刻を削除した場合に、前記第1のテーブルから、削除された時刻に対応しているリクエストを削除する、請求項3に記載の優先度設定装置。
  5. 前記リクエスト監視部が受け取った前記リクエストを、前記優先度設定部が前記リクエストに設定した前記優先度に関連付けた状態で記憶する、第2の記憶部と、
    前記リクエストの前記第2の記憶部に記憶された順と、前記リクエストに関連付けられた優先度とに基づいて、前記優先度の値が大きい程、前記リクエストの前記第2の記憶部に記憶された順よりも前記リクエストを処理する際の順序が早くなるように、前記リクエストを処理する際の順序を決定する、処理順序制御部と、
    を備えている、請求項1〜のいずれかに記載の優先度設定装置。
  6. 前記優先度設定部が、前記種別毎に、前記優先度を設定し、
    前記第1のテーブルが、前記種別毎に、既に設定された前記優先度を格納している、請求項1〜のいずれかに記載の優先度設定装置。
  7. (a)ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
    (b)前記(a)のステップによって受け取られた各リクエストを、種別毎に、前記各リクエストの時刻と共に格納している第1のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第2のテーブルを用い、
    前記(a)のステップによって受け取られた最新のリクエストを対象として、前記第1のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数前記第2のテーブルに格納されている時刻の数で除して得られた値が大きい程、値が高くなるように、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定し、設定した前記優先度を前記第1のテーブルに格納させる、ステップと、
    を有し、
    前記リクエストの時刻は、前記端末によって前記リクエストが作成された時刻、前記端末によって前記リクエストが送信された時刻、前記(a)のステップによって前記リクエストが受け取られた時刻、及び前記(b)のステップによって前記リクエストについて優先度が設定された時刻のうちいずれかである、
    ことを特徴とする優先度設定方法。
  8. コンピュータに、
    (a)ネットワークに接続された端末から送出されたリクエストを受け取り、受け取った前記リクエストの種別を特定する、ステップと、
    (b)前記(a)のステップによって受け取られた各リクエストを、種別毎に、前記各リクエストの時刻と共に格納している第1のテーブル、及び前記各リクエストの時刻を時系列にそって格納している第2のテーブルを用い、
    前記(a)のステップによって受け取られた最新のリクエストを対象として、前記第1のテーブルから、前記最新のリクエストの種別と同一の種別のリクエストの数を特定し、更に、特定したリクエストの数前記第2のテーブルに格納されている時刻の数で除して得られた値が大きい程、値が高くなるように、前記最新のリクエストの処理順序を決定する際の指標となる優先度を設定し、設定した前記優先度を前記第1のテーブルに格納させる、ステップと、
    を実行させ、
    前記リクエストの時刻は、前記端末によって前記リクエストが作成された時刻、前記端末によって前記リクエストが送信された時刻、前記(a)のステップによって前記リクエストが受け取られた時刻、及び前記(b)のステップによって前記リクエストについて優先度が設定された時刻のうちいずれかである、
    プログラム。

JP2010225401A 2010-10-05 2010-10-05 優先度設定装置、優先度設定方法、及びプログラム Expired - Fee Related JP5601462B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010225401A JP5601462B2 (ja) 2010-10-05 2010-10-05 優先度設定装置、優先度設定方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010225401A JP5601462B2 (ja) 2010-10-05 2010-10-05 優先度設定装置、優先度設定方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2012079190A JP2012079190A (ja) 2012-04-19
JP5601462B2 true JP5601462B2 (ja) 2014-10-08

Family

ID=46239328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010225401A Expired - Fee Related JP5601462B2 (ja) 2010-10-05 2010-10-05 優先度設定装置、優先度設定方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5601462B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160261517A1 (en) * 2013-11-11 2016-09-08 Nec Corporation Device, session processing quality stabilization system, priority processing method, transmission method, relay method, and program
JP6531080B2 (ja) * 2016-08-08 2019-06-12 日本電信電話株式会社 負荷制御装置、負荷制御方法および負荷制御処理プログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3914907B2 (ja) * 2003-08-21 2007-05-16 株式会社コナミデジタルエンタテインメント サーバ装置、サービス方法、ならびに、プログラム
JP4121132B2 (ja) * 2005-01-04 2008-07-23 インターナショナル・ビジネス・マシーンズ・コーポレーション サービス処理割当装置、制御方法、及びプログラム

Also Published As

Publication number Publication date
JP2012079190A (ja) 2012-04-19

Similar Documents

Publication Publication Date Title
US20190089714A1 (en) Versatile autoscaling for containers
US7840517B2 (en) Performance evaluating apparatus, method, and computer-readable medium
US8166548B2 (en) Computer system and method for scanning computer virus
US8589537B2 (en) Methods and computer program products for aggregating network application performance metrics by process pool
CN109194711B (zh) 一种组织架构的同步方法、客户端、服务端及介质
CN110351366B (zh) 一种互联网应用的服务调度系统和方法及存储介质
CN107451853B (zh) 一种红包实时派发的方法、装置、系统及存储介质
EP2674868A1 (en) Database update notification method
US9965473B2 (en) System, information processing apparatus, method for controlling the same, and non-transitory computer-readable medium
US20130247050A1 (en) Batch processing system
US9396060B2 (en) Information processing method, information processing device and recording medium
JP2014127037A (ja) 情報処理プログラム、情報処理方法及び装置
JP5111186B2 (ja) ジョブ処理システムおよびジョブ管理方法
JP5203919B2 (ja) サーバシステム
US9135064B2 (en) Fine grained adaptive throttling of background processes
JP5601462B2 (ja) 優先度設定装置、優先度設定方法、及びプログラム
JP5420385B2 (ja) 業務支援装置
US9286055B1 (en) System, method, and computer program for aggregating fragments of data objects from a plurality of devices
JP2010231293A (ja) 監視装置
JP5444728B2 (ja) ストレージシステム、ストレージシステムにおけるデータ書込方法及びデータ書込プログラム
CN114896086A (zh) 消息处理方法、装置、计算机设备及存储介质
US9503353B1 (en) Dynamic cross protocol tuner
JP4322094B2 (ja) 情報処理方法、サービス時間導出方法、及び処理ユニット数調整方法
JP2011070435A (ja) 計算機システム、リクエスト処理方法及びサーバ装置
WO2012059976A1 (ja) プログラム、ストリームデータ処理方法及びストリームデータ処理計算機

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130910

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140507

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140701

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140805

R150 Certificate of patent or registration of utility model

Ref document number: 5601462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees