(57)【特許請求の範囲】
【請求項１】
実行対象の処理に必要なキー情報を含む実行要求を受信した場合に、前記実行要求の前記キー情報で示される処理を実行する複数の要求処理サーバと、クライアントから受信した前記実行要求を前記複数の要求処理サーバのいずれかに転送する要求分配サーバとを有する情報処理システムにおいて、
前記要求分配サーバは、
前記キー情報のハッシュ値と当該キー情報を含む実行要求の発行頻度とを対応付けたハッシュテーブルを記憶する記憶部と、
前記クライアントから前記実行要求を受信すると、当該実行要求に含まれるキー情報のハッシュ値を算出する算出部と、
前記記憶部が記憶するハッシュテーブルにおいて前記算出部が算出したハッシュ値と対応付けられた発行頻度に応じて、前記受信した実行要求の分配対象となる要求処理サーバの数を識別し、当該識別した数の要求処理サーバを選択する選択部と、
前記選択部が選択した要求処理サーバのいずれか１つに前記受信した実行要求を転送することで、前記実行要求を分配する転送部と
を有し、
前記ハッシュテーブルの更新要求として、更新対象となるキー情報と当該キー情報を含む実行要求の新たな発行頻度とを取得した場合には、当該取得したキー情報と当該新たな発行頻度とを前記要求分配サーバに配信する更新データ配信部を有する永続化サーバ
をさらに有し、
前記要求分配サーバは、
前記永続化サーバの前記更新データ配信部が配信した前記キー情報と、前記新たな発行頻度とに応じて、前記記憶部が記憶するハッシュテーブルを更新する頻度情報更新部を更に有する
ことを特徴とする情報処理システム。
【請求項２】
前記更新データ配信部は、前記ハッシュテーブルの更新要求とともに、更新対象となるキー情報と当該キー情報を含む実行要求の新たな発行頻度とを取得した場合には、当該取得したキー情報と当該新たな発行頻度とに基づいて、当該キー情報を含む実行要求の分配対象となる１つ又は複数の要求処理サーバを特定し、当該特定した要求処理サーバに対して、該実行要求を実行するために必要な制御データを配信することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記要求分配サーバは、前記更新データ配信部に対して、前記キー情報と前記新たな発行頻度との配信を所定の時間間隔で要求する頻度情報要求部を有し、
前記要求処理サーバは、前記更新データ配信部に対して、前記キー情報と前記制御データとの配信を所定の時間間隔で要求する更新データ要求部を有し、
前記更新データ配信部は、前記要求分配サーバから前記キー情報と前記新たな発行頻度との配信を要求された場合には、当該要求分配サーバに対して前記キー情報と前記新たな発行頻度とを配信し、前記要求処理サーバから前記キー情報と前記制御データとの配信を要求された場合には、当該要求処理サーバに対して前記キー情報と前記制御データとの配信を行うことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記更新データ配信部は、前記要求分配サーバが記憶するハッシュテーブルに新たな発行頻度を追加する場合、又は、前記要求分配サーバが記憶するハッシュテーブルの発行頻度を増加させる場合には、前記要求処理サーバに対して、前記キー情報と前記制御データとを配信した後に、前記要求分配サーバに対して、前記キー情報と前記新たな発行頻度とを配信し、前記要求分配サーバが記憶するハッシュテーブルから前記発行頻度を削除する場合、又は、前記要求分配サーバが記憶するハッシュテーブルの発行頻度を減少させる場合には、当該要求分配サーバに対して、前記キー情報と前記新たな発行頻度とを配信した後に、前記要求処理サーバに対して、前記キー情報と前記制御データとを配信することを特徴とする請求項２または３に記載の情報処理システム。
【請求項５】
前記要求分配サーバは、前記サービス要求の発行回数を前記キー情報毎に計数し、当該計数した発行回数に基づいて発行頻度を算出するとともに、当該算出した発行頻度を前記永続化サーバに通知するアクセス頻度更新要求部をさらに有し、
前記更新データ配信部は、前記アクセス頻度更新要求部から受信した発行頻度を前記新たな発行頻度とすることを特徴とする請求項１〜４のいずれか１つに記載の情報処理システム。
【請求項６】
実行対象の処理に必要なキー情報を含む実行要求を受信した場合に、前記実行要求の前記キー情報で示される処理を実行する複数の要求処理サーバに対して、クライアントから受信した前記実行要求を前記複数の要求処理サーバのいずれかに転送するコンピュータに、
前記クライアントから実行要求を受信すると、当該実行要求に含まれるキー情報のハッシュ値を算出する算出ステップと、
前記キー情報のハッシュ値と当該キー情報を含む実行要求の発行頻度とを対応付けたハッシュテーブルにおいて、前記算出ステップにより算出したハッシュ値と対応付けられた発行頻度に応じて、前記受信した実行要求の分散対象となる要求処理サーバの数を識別し、当該識別した数の要求処理サーバを選択する選択ステップと、
前記選択ステップにより選択した要求処理サーバのいずれか１つに前記受信した実行要求を転送することで、前記実行要求を分配する転送ステップと、
前記ハッシュテーブルの更新要求として、更新対象となるキー情報と当該キー情報を含む実行要求の新たな発行頻度とを取得した場合には、当該取得したキー情報と当該新たな発行頻度とを前記要求分配サーバに配信する永続化サーバが配信した前記キー情報と、前記新たな発行頻度とに応じて、前記記憶部が記憶するハッシュテーブルを更新する頻度情報更新ステップと
を実行させるための要求分配プログラム。
【請求項７】
実行対象の処理に必要なキー情報を含む実行要求を受信した場合に、前記実行要求の前記キー情報で示される処理を実行する複数の要求処理サーバに対して、クライアントから受信した前記実行要求を前記複数の要求処理サーバのいずれかに転送する要求分配サーバが実行する要求分配方法であって、
前記クライアントから実行要求を受信すると、当該実行要求に含まれるキー情報のハッシュ値を算出する算出工程と、
前記キー情報のハッシュ値と当該キー情報を含む実行要求の発行頻度とを対応付けたハッシュテーブルにおいて、前記算出工程により算出したハッシュ値と対応付けられた発行頻度に応じて、前記受信した実行要求の分散対象となる要求処理サーバの数を識別し、当該識別した数の要求処理サーバを選択する選択工程と、
前記選択工程により選択した要求処理サーバのいずれか１つに前記受信した実行要求を転送することで、前記実行要求を分配する転送工程と、
前記ハッシュテーブルの更新要求として、更新対象となるキー情報と当該キー情報を含む実行要求の新たな発行頻度とを取得した場合には、当該取得したキー情報と当該新たな発行頻度とを前記要求分配サーバに配信する永続化サーバが配信した前記キー情報と、前記新たな発行頻度とに応じて、前記記憶部が記憶するハッシュテーブルを更新する頻度情報更新工程と
を含んだことを特徴とする要求分配方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、要求分配プログラムおよび要求分配方法に関する。
【背景技術】
【０００２】
従来、制御データを用いてサービス要求の処理を実行する要求処理サーバを複数有し、ユーザ端末が発行したサービス要求を各要求処理サーバに分散して実行させる技術が知られている。このような情報処理システムの一例として、単一の要求処理サーバが保持できない量の制御データを各要求処理サーバに分担して保持させ、ユーザ端末が発行したサービス要求を、処理に必要な制御データを保持する要求処理サーバに実行させるコンシステントハッシング技術が知られている。
【０００３】
以下、コンシステントハッシング技術が適用された情報処理システムの一例について説明する。図４０は、従来の情報処理システムを説明するための図である。図４０に示す例では、情報処理システムは、複数のユーザ端末＃１〜＃６と、要求分配サーバと、複数の要求処理サーバ＃１〜＃５とを有する。
【０００４】
このような情報処理システムは、各要求処理サーバ＃１〜＃５に実行させる処理をあらかじめ割り当てており、割り当てた処理を実行するために必要な制御データを各要求処理サーバ＃１〜＃５に保持させる。そして、要求分配サーバは、各ユーザ端末＃１〜＃５が発行したサービス要求を取得すると、取得したサービス要求の処理を実行する要求処理サーバにサービス要求を転送する。
【０００５】
ここで、図４１を用いて、各要求処理サーバに実行させる処理を割当てる処理を説明する。図４１は、従来のサービス割当処理を説明するための図である。図４１に示すように、情報処理システムは、各要求処理サーバ＃１〜＃５が実行する処理を示す各キー情報＃１〜＃９のハッシュ値を算出する。
【０００６】
そして、情報処理システムは、算出したハッシュ値を複数の範囲に分割し、各範囲毎に要求処理サーバ＃１〜＃５をあらかじめ対応付ける。また、情報処理システムは、各ハッシュ値の元となるキー情報が示す処理を実行するために必要な制御データを、各ハッシュ値と対応付けた要求処理サーバ＃１〜＃５に保持させる。
【０００７】
このような情報処理システムにおいて、各ユーザ端末＃１〜＃５は、処理内容を指定するキー情報を含んだサービス要求を発行する。すると、要求分配サーバは、各ユーザ端末＃１〜＃５が発行したサービス要求に含まれるキー情報のハッシュ値を算出し、算出したハッシュ値に割当てられた要求処理サーバに対して、サービス要求を転送し、処理を実行させる。
【０００８】
例えば、要求分配サーバは、キー情報＃１を含むサービス要求を受信した場合には、キー情報＃１のハッシュ値「０００１０１」を算出する。ここで、図４１に示す例では、ハッシュ値「０００１０１」と要求処理サーバ＃２とが対応付けられている。このため、要求分配サーバは、キー情報＃１を含むサービス要求を要求処理サーバ＃２に転送する。
【０００９】
このように、コンシステントハッシング技術が適用された情報処理システムでは、各要求処理サーバに実行させる処理をあらかじめ割り当てし、割り当てた処理の実行に必要な制御データを各要求処理サーバに保持させる。このため、単一の要求処理サーバが任意のサービス要求を処理する場合に比べて、少量の制御データを持つことでサービス要求を処理することができる。
【先行技術文献】
【非特許文献】
【００１０】
【非特許文献１】David  Karger,  Alex  Sherman,  Andy  Berkheimer,  Bill  Bogstad,  Rizwan  Dhanidina,  Ken  Iwamoto,  Brian  Kim,  Luke  Matkins,  Yoav  Yerushalmi,  [Web  caching  with  consistent  hashing],  Computer  Networks31(11):  1203-1213,  1999.
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、上述したコンシステントハッシングの技術では、同一のキー情報を含む複数のサービス要求を単一の要求処理サーバに対して転送するので、単一のキー情報を含むサービス要求が発行される頻度が単一の要求処理サーバの処理能力を超えた場合は、サービス要求の処理を実行できないという問題がある。
【００１２】
また、要求処理サーバは、あるキー情報を含むサービス要求のアクセス頻度が自身の処理能力以下であっても、十分に小さくない場合は、他のキー情報を含むサービス要求の処理を実行できなくなる。このような要求処理サーバがサービス要求の処理を実行できるように、１つの要求処理サーバが保持する制御データの量を減少させた場合には、他の要求処理サーバが保持する制御データ量が増加する。このため、各要求処理サーバが平等に制御データを保持していることにはならず、結果として多くの要求処理サーバを設置しなければならなくなるという問題がある。
【００１３】
開示の技術は、上述に鑑みてなされたものであって、アクセス頻度が高いサービス要求を複数の要求処理サーバに分散させる結果、要求処理サーバの台数を抑制しつつ、システム全体の要求処理量を増加させる。
【課題を解決するための手段】
【００１４】
開示の技術は、上述に鑑みてなされたものであって、１つの側面では、処理の実行要求を取得すると、取得した実行要求に含まれるキー情報が示す処理を実行する複数の要求処理サーバと、クライアントが発行した実行要求をいずれかの要求処理サーバに転送する要求分配サーバと、永続化サーバとを有する情報処理システムである。ここで、要求分配サーバは、キー情報のハッシュ値とこのキー情報を含む実行要求の発行頻度とを対応付けたハッシュテーブルを記憶する。また、要求分配サーバは、実行要求を受信すると、実行要求に含まれるキー情報のハッシュ値を算出する。そして、要求分配サーバは、ハッシュテーブルにおいて、算出したハッシュ値と対応付けられた発行頻度に応じて、受信した実行要求の分散対象となる要求処理サーバの数を識別し、識別した数の要求処理サーバを選択する。その後、要求分配サーバは、選択した要求処理サーバのいずれか１つに実行要求を転送することで、実行要求を分配する。また、永続化サーバは、ハッシュテーブルの更新要求として、更新対象となるキー情報と当該キー情報を含む実行要求の新たな発行頻度とを取得した場合には、当該取得したキー情報と当該新たな発行頻度とを要求分配サーバに配信する。そして、要求分配サーバは、永続化サーバが配信したキー情報と、新たな発行頻度とに応じて、記憶するハッシュテーブルを更新する。
【発明の効果】
【００１５】
開示の技術は、１つの側面では、アクセス頻度が高いサービス要求を複数サーバに分散させる結果、要求処理サーバの台数を抑制しつつ、システム全体の要求処理量を増加させる。
【図面の簡単な説明】
【００１６】
【図１】図１は、実施例１に係る情報処理システムを説明するための図である。
【図２】図２は、実施例１に係る情報処理システムの概要を説明するための図である。
【図３】図３は、実施例１に係る要求分配サーバの機能構成を説明するための図である。
【図４】図４は、ノード情報ＤＢの一例を説明するための図である。
【図５】図５は、アクセス頻度ハッシュテーブルの一例を説明するための図である。
【図６】図６は、実施例１に係る要求処理サーバの機能構成を説明するための図である。
【図７】図７は、ユーザ情報ハッシュテーブルを説明するための図である。
【図８】図８は、実施例１に係る永続化サーバの機能構成を説明するための図である。
【図９】図９は、永続化サーバが記憶するユーザ情報ＤＢを記憶するための図である。
【図１０】図１０は、永続化サーバが記憶する更新情報ＤＢを説明するための図である。
【図１１】図１１は、更新データ配信部が実行する処理の流れを説明するためのフローチャートである。
【図１２】図１２は、要求処理サーバの一覧を作成する処理の流れを説明するためのフローチャートである。
【図１３】図１３は、全データ応答部が実行する処理の流れを説明するためのフローチャートである。
【図１４】図１４は、全頻度情報応答部が実行する処理の流れを説明するためのフローチャートである。
【図１５】図１５は、ユーザ情報更新部が実行する処理の流れを説明するためのフローチャートである。
【図１６】図１６は、データ応答部が実行する処理の流れを説明するためのフローチャートである。
【図１７】図１７は、更新データ応答部が実行する処理の流れを説明するためのフローチャートである。
【図１８】図１８は、全データ取得部が実行する処理の流れについて説明するための図である。
【図１９】図１９は、サービス応答部が実行する処理の流れを説明するためのフローチャートである。
【図２０】図２０は、振り分け部が実行する処理の流れを説明するためのフローチャートである。
【図２１】図２１は、頻度情報更新部が実行する処理の流れを説明するためのフローチャートである。
【図２２】図２２は、全頻度情報取得部が実行する処理の流れを説明するためのフローチャートである。
【図２３】図２３は、実施例２に係る要求分配サーバの機能構成を説明するための図である。
【図２４】図２４は、実施例２に係る要求処理サーバの機能構成を説明するための図である。
【図２５】図２５は、実施例２に係る永続化サーバの機能構成を説明するための図である。
【図２６】図２６は、実施例２に係る更新情報ＤＢを説明するための図である。
【図２７】図２７は、順序制御情報ＤＢを説明するための図である。
【図２８】図２８は、実施例２に係る更新データ制御部が実行する処理の流れを説明するためのフローチャートである。
【図２９】図２９は、更新データ応答部が実行する処理の流れを説明するための図である。
【図３０】図３０は、頻度情報応答部が実行する処理の流れを説明するためのフローチャートである。
【図３１】図３１は、更新データ要求部が実行する処理の流れを説明するための図である。
【図３２】図３２は、頻度情報要求部が実行する処理の流れを説明するためのフローチャートである。
【図３３】図３３は、実施例３に係る要求分配サーバ１０ｂの機能構成を説明するための図である。
【図３４】図３４は、実施例３に係るアクセス頻度ハッシュテーブルを説明するための図である。
【図３５】図３５は、実施例３に係る永続化サーバを説明するための図である。
【図３６】図３６は、アクセス頻度更新部が実行する処理の流れを説明するためのフローチャートである。
【図３７】図３７は、実施例３に係るサービス応答部が実行する処理の流れを説明するための図である。
【図３８】図３８は、アクセス頻度更新要求部が実行する処理の流れを説明するためのフローチャートである。
【図３９】図３９は、要求分配プログラムによる処理がコンピュータを用いて具体的に実現されることを示す図である。
【図４０】図４０は、従来の情報処理システムを説明するための図である。
【図４１】図４１は、従来のサービス割当処理を説明するための図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照して本願に係る情報処理システム、要求分配プログラムおよび要求分配方法について説明する。
【実施例１】
【００１８】
以下の実施例１では、図１を用いて、情報処理システムの一例を説明する。図１は、実施例１に係る情報処理システムを説明するための図である。図１に示す例では、情報処理システム１は、複数のクライアント２〜２ｂ、要求分配サーバ１０、複数の要求処理サーバ２０〜２０ｄ、永続化サーバ３０を有する。
【００１９】
また、各クライアント２〜２ｂと要求分配サーバ、要求分配サーバ１０と各要求処理サーバ２０〜２０ｄ、および、永続化サーバ３０、各要求処理サーバ２０〜２０ｄと永続化サーバ３０は、ネットワークを介して接続されている。なお、情報処理システム１は、任意の数のクライアント、および、要求処理サーバを設置することができる。また、図１に示す例では、要求処理サーバ２０ｂ、２０ｃの図示を省略した。
【００２０】
また、以下の説明では、要求処理サーバ２０ａ、要求処理サーバ２０ｄは、要求処理サーバ２０と同様の機能を発揮するものとして、説明を省略する。また、要求処理サーバ２０ａ、要求処理サーバ２０ｄは、要求処理サーバ２０と同様の機能の発揮するものとして、説明を省略する。
【００２１】
各クライアント２〜２ｂは、いずれかの要求処理サーバ２０〜２０ｄに実行させる処理の実行に必要なキー情報を含むサービス要求を生成する。そして、各クライアント２〜２ｂは、生成したサービス要求を要求分配サーバ１０に発行する。その後、各クライアント２〜２ｂは、要求分配サーバ１０を介して、いずれかの要求処理サーバ２０〜２０ｄによる処理の実行結果を取得する。
【００２２】
要求分配サーバ１０は、各クライアント２〜２ｂが発行したサービス要求を取得すると、取得したサービス要求に含まれるキー情報に基づいて、各要求処理サーバ２０〜２０ｄのうち、サービス要求を実行可能な要求処理サーバを特定する。すなわち、要求分配サーバ１０は、取得したサービス要求に含まれるキー情報に基づいて、取得したサービス要求の処理に必要な制御データを記憶する要求処理サーバを特定する。
【００２３】
ここで、要求分配サーバ１０は、各キー情報ごとに、サービス要求が発行される頻度であるアクセス頻度と、キー情報のハッシュ値とを対応付けたアクセス頻度ハッシュテーブルを有する。また、要求分配サーバ１０は、取得したサービス要求に含まれるキー情報のハッシュ値を算出し、算出したハッシュ値と対応付けられたアクセス頻度をアクセス頻度ハッシュテーブルから検索する。
【００２４】
そして、要求分配サーバ１０は、検索したアクセス頻度に応じて、サービス要求を送信する１つ又は複数の要求処理サーバを特定し、特定した要求処理サーバのいずれかにサービス要求を転送する。その後、要求分配サーバ１０は、サービス要求を転送した要求処理サーバから処理の実行結果を取得した場合には、サービス要求の発行元であるクライアントに対して、実行結果を転送する。
【００２５】
例えば、要求分配サーバ１０は、あらかじめ設定されたアクセス頻度に対応する台数の要求処理サーバを、要求処理サーバ２０〜２０ｄから選択する。そして、要求分配サーバ１０は、選択した要求処理サーバから１つの要求処理サーバを特定し、特定した要求処理サーバに対してサービス要求を転送する。
【００２６】
詳細には、要求分配サーバ１０は、検索したアクセス頻度が単一の要求処理サーバの能力と比較して十分に小さい場合には、低いアクセス頻度に対応する台数の要求処理サーバ、例えば、１台の要求処理サーバ２０を選択する。そして、要求分配サーバ１０は、選択した要求処理サーバ２０に対して、サービス要求を転送する。
【００２７】
一方、要求分配サーバ１０は、検索したアクセス頻度が単一の要求処理サーバの能力と比較して十分に小さくない場合には、複数の要求処理サーバを特定する。そして、要求分配サーバ１０は、特定した要求処理サーバからサービス要求を転送する要求処理サーバをラウンドロビン等の手法で選択し、選択した要求処理サーバに対してサービス要求を転送する。
【００２８】
要求処理サーバ２０は、高速にアクセス可能なメモリを有し、永続化サーバに保持される全ての制御データのうち、自身に転送させるサービス要求の処理を実行するために必要な制御データをメモリに記憶する。そして、要求処理サーバ２０は、要求分配サーバ１０からサービス要求を受信した場合には、受信したサービス要求に含まれるキー情報と対応付けられた制御データを検索し、検索した制御データを応答として要求分配サーバ１０に送信する。
【００２９】
また、要求処理サーバ１０は、永続化サーバ３０から更新データ配信として、制御データとキー情報とを受信した場合には、受信した制御データをキー情報とを対応付けて、メモリに記憶する。その後、要求処理サーバ１０は、更新データ応答を永続化サーバ３０に対して送信する。
【００３０】
永続化サーバ３０は、大容量の記憶部に全ての制御データを記憶する。また、永続化サーバ３０は、各要求処理サーバ２０〜２０ｄの起動時に、各要求処理サーバ２０〜２０ｄに実行させる処理を示すキー情報と、各処理を実行するために必要な制御データとを各要求処理サーバ２０〜２０ｄに送信する。
【００３１】
ここで、永続化サーバ３０は、アクセス頻度が低いキー情報については、各要求処理サーバ２０〜２０ｄから、低いアクセス頻度に対応する台数の要求処理サーバ、例えば１台の要求処理サーバに対してキー情報と制御データとを送信する。一方、永続化サーバ３０は、アクセス頻度が高いキー情報については、各要求処理サーバ２０〜２０ｄから、複数代の要求処理サーバを選択し、選択した複数の要求処理サーバに対してキー情報と制御データとを送信する。
【００３２】
このような情報処理システム１が実行する処理の概要について、図２を用いて説明する。図２は、実施例１に係る情報処理システムの概要を説明するための図である。なお、図２に示す例では、クライアント２がキー情報「００１」を含むサービス要求を発行し、クライアント２ａおよびクライアント２ｂがキー情報「００２」を含むサービス要求を発行するものとする。また、従来のコンシステントハッシング技術と同様に、キー情報「００１」のハッシュ値は、要求処理サーバ２０と対応付けられており、キー情報「００２」のハッシュ値は、要求処理サーバ２０ａと対応付けられているものとする。
【００３３】
例えば、図２中（Ａ）に示すように、要求分配サーバ１０は、クライアント２が発行したサービス要求を取得すると、取得したサービス要求に含まれるキー情報「００１」のハッシュ値を算出する。そして、要求分配サーバ１０は、算出したハッシュ値、および、キー情報と対応付けられたアクセス頻度をアクセス頻度情報テーブルから検索し、該当するエントリが存在しないと判別する。このような場合には、要求分配サーバ１０は、図２中（Ｂ）に示すように、算出したハッシュ値と対応付けられた要求処理サーバ２０に対してサービス要求を転送する。
【００３４】
一方、図２中（Ｂ）、（Ｃ）に示すように、要求分配サーバ１０は、クライアント２ａ、および、クライアント２ｂが発行したサービス要求を取得すると、取得したサービス要求に含まれるキー情報「００２」のハッシュ値を算出する。そして、要求分配サーバ１０は、算出したハッシュ値、および、キー情報と対応付けられたアクセス頻度が「大」であると判別する。
【００３５】
このような場合には、要求分配サーバ１０は、図２中（Ｄ）に示すように、キー情報「００２」のハッシュ値と対応付けられた要求処理サーバ２０ａだけではなく、要求処理サーバ２０、および、要求処理サーバ２０ｄもサービス要求の転送先として特定する。そして、要求分配サーバ１０は、サービス要求の転送先となる要求処理サーバを要求処理サーバ２０〜２０ｄからラウンドロビン等の手法を用いて選択し、選択した要求処理サーバにサービス要求を転送する。例えば、要求分配サーバ１０は、クライアント２ａが発行したサービス要求を要求処理サーバ２０ａに転送し、クライアント２ｂが発行したサービス要求を要求処理サーバ２０ｄに転送する。
【００３６】
また、永続化サーバ３０は、要求分配サーバ１０が有するアクセス頻度情報テーブルと同様に、各キー情報を含むサービス要求のアクセス頻度をユーザ情報ＤＢ（Data  Base）として記憶する。そして、永続化サーバ３０は、各キー情報を含むサービス要求のアクセス頻度に応じて、各サービス要求を実行するために必要な制御データを要求処理サーバ２０〜２０ｄに分配する。
【００３７】
例えば、永続化サーバ３０は、キー情報「００１」を含むサービス要求のアクセス頻度が「小」である場合には、キー情報「００１」のハッシュ値と対応付けられた要求処理サーバ２０に対して、キー情報「００１」が示す処理に必要な制御データを配信する。また、永続化サーバ３０は、キー情報「００２」を含むサービス要求のアクセス頻度が「大」である場合には、キー情報「００２」のハッシュ値と対応付け要求処理サーバ２０ａだけではなく、要求処理サーバ２０、および、要求処理サーバ２０ｄに対して、キー情報「００２」が示す処理に必要な制御データを配信する。
【００３８】
このように、要求分配サーバ１０は、各キー情報のハッシュ値と、各キー情報を含むサービス要求のアクセス頻度とを対応付けて記憶する。そして、要求分配サーバ１０は、各クライアント２〜２ｂが発行したサービス要求に含まれるキー情報のハッシュ値を算出し、算出したハッシュ値と対応付けられたアクセス頻度を検索する。その後、要求分配サーバ１０は、検索したアクセス頻度に応じて、サービス要求を転送する１つまたは複数の要求処理サーバを特定し、特定した要求処理サーバのいずれかに、サービス要求を転送する。
【００３９】
このため、情報処理システム１は、アクセス頻度が高いサービス要求を各要求処理サーバ２０〜２０ｄに分散して転送するので、要求処理サーバの台数を抑制しつつ、システム全体の要求処理量を増加させることができる。すなわち、情報処理システム１は、あるキー情報を含むサービス要求のアクセス頻度が単一の要求処理サーバの能力を超えた場合にも、サービス要求を各要求処理サーバ２０〜２０ｄに分散させるので、サービス要求の処理を実行することができる。
【００４０】
また、情報処理システム１は、アクセス頻度が高いサービス要求のみを各要求処理サーバ２０〜２０ｄに分散して処理を実行させ、アクセス頻度が低いサービス要求を従来と同様に、所定の要求処理サーバに処理を実行させる。このため、情報処理システム１は、各要求処理サーバ２０〜２０ｄが記憶することができるデータの数を増加させることができる。この結果、情報処理システム１は、要求処理サーバの台数を抑制することができる。
【００４１】
次に、複数の図を用いて、要求分配サーバ１０、要求処理サーバ２０、永続化サーバ３０の機能構成について説明する。まず、図３を用いて、要求分配サーバ１０の機能構成について説明する。
【００４２】
図３は、実施例１に係る要求分配サーバの機能構成を説明するための図である。図３に示す例では、要求分配サーバ１０は、通信制御Ｉ／Ｆ（Interface）部１１、制御部１２、記憶部１７を有する。また、制御部１２は、サービス応答部１３、振り分け部１４、頻度情報更新部１５、全頻度情報取得部１６を有する。また、記憶部１７は、例えば、大容量のメモリであり、ノード情報ＤＢ１８、アクセス頻度ハッシュテーブル１９を記憶する。
【００４３】
ここで、記憶部１７が記憶するノード情報ＤＢ１８おびアクセス頻度ハッシュテーブル１９について説明する。まず、図４を用いて、ノード情報ＤＢ１８について説明する。図４は、ノード情報ＤＢの一例を説明するための図である。図４に示す例では、ノード情報ＤＢ１８の各エントリには、ノード情報ＩＤ（Identification）と担当領域と要求処理サーバ情報とが対応付けて格納されている。
【００４４】
ここで、ノード情報ＩＤとは、各エントリを示す情報である。また、担当領域とは、キー情報をハッシュ化した全てのハッシュ空間のうち、各要求処理サーバ２０〜２０ｄに割り当てられた処理を示すキー情報のハッシュ値の範囲を示す情報である。また、要求処理サーバ情報とは、各要求処理サーバ２０〜２０ｄを示す情報であり、物理的または論理的に要求処理サーバを特定する情報とともにサーバ名などを格納する。
【００４５】
なお、図４に示す例では、要求処理サーバ２０を「要求処理サーバＡ」と記載し、要求処理サーバ２０ａを「要求処理サーバＢ」と記載し、要求処理サーバ２０ｂを「要求処理サーバＣ」と記載した。また、図４に示す例では、要求処理サーバ２０ｃを「要求処理サーバＤ」と記載し、要求処理サーバ２０ｄを「要求処理サーバＥ」と記載した。
【００４６】
すなわち、ノード情報ＤＢ１８は、コンシステントハッシングの技術と同様に、各要求処理サーバ２０〜２０ｄが、ハッシュ空間のどの範囲の処理の実行を受け持つかを特定する。図４に示す例では、キー情報のハッシュ値が「００００」〜「０９９９」の範囲となるサービス要求が要求処理サーバ２０に割り当てられており、キー情報のハッシュ値が「１０００」〜「１９９９」の範囲となるサービス要求が要求処理サーバ２０ａに割り当てられている。
【００４７】
また、キー情報のハッシュ値が「２０００」〜「２９９９」の範囲となるサービス要求が要求処理サーバ２０ｂに割り当てられている。また、キー情報のハッシュ値が「３０００」〜「３９９９」となるサービス要求が要求処理サーバ２０ｃに割り当てられ、キー情報のハッシュ値が「４０００」〜「４９９９」となるサービス要求が要求処理サーバ２０ｄに割り当てられている。
【００４８】
次に、図５を用いて、アクセス頻度ハッシュテーブル１９について説明する。図５は、アクセス頻度ハッシュテーブルの一例を説明するための図である。図５に示す例では、アクセス頻度ハッシュテーブル１９の各エントリには、ハッシュ値、キー情報、アクセス頻度、分散用情報が対応付けて格納されている。
【００４９】
ここで、ハッシュ値とは、キー情報のハッシュ値である。また、キー情報とは、サービス要求に含まれるキー情報である。また、アクセス頻度とは、対応付けられたキー情報を含むサービス要求のアクセス頻度である。例えば、アクセス頻度には、頻度が少ないほうから、「Ｌ（Ｌｏｗ）」、「２」、「３」、「４」、「Ｈ（Ｈｉｇｈ）」が格納される。
【００５０】
ここで、アクセス頻度「Ｈ」は、サービス要求のアクセス頻度が高く、全要求処理サーバ２０〜２０ｄが分散して処理を実行することを表す。また、アクセス頻度「Ｌ」は、初期アクセス頻度としてシステムで事前に決定している要求処理サーバの台数である。アクセス頻度「２」〜「４」は、該当のキー情報を含むサービス要求を、アクセス頻度の数値で示される台数の要求処理サーバで要求処理することを表す。
【００５１】
例えば、初期アクセス頻度が「１」であり、要求処理サーバの台数が「５」台であれば、アクセス頻度は、「Ｌ（１）」、「２」、「３」、「４」、「Ｈ（５）」のいずれかとなる。アクセス頻度は、このような表記に限らず、任意の値と任意の要求処理サーバの台数とを対応付けてもよい。
【００５２】
また、分散用情報とは、要求の分散を実現するためにキー毎に保持しておく値である。例えば、要求分配サーバ１０は、サービス要求を転送する度に、転送先となる要求処理サーバを変更するラウンドロビン方式でサービス要求を分散させる場合には、サービス要求を転送した要求処理サーバを示す情報や、ラウンドロビン用のカウンタ情報などを分散用情報として、各エントリに格納する。
【００５３】
例えば、図５に示す例では、アクセス頻度ハッシュテーブル１９は、キー情報「ＩＤ０００１」を含むサービス要求のアクセス頻度、および、キー情報「ＩＤ０００４」を含むサービス要求のアクセス頻度が「Ｈ」であることを示す。なお、アクセス頻度ハッシュテーブル１９には、アクセス頻度が高いサービス要求のキー情報のみが格納され、アクセス頻度が「Ｌ」であるサービス要求のキー情報については、格納されない。
【００５４】
図３に戻って、通信制御部Ｉ／Ｆ部１１は、各クライアント２〜２ｂ、各要求処理サーバ２０〜２０ｄ、および永続化サーバ３０との間で各種情報を送受信する際の通信を制御する。制御部１２は、サービス応答部１３、振り分け部１４、頻度情報更新部１５、全頻度情報取得部１６を用いて、各種処理の制御を行う。
【００５５】
サービス応答部１３は、通信制御Ｉ／Ｆ部１１を介して、クライアント２〜２ｂからのサービス要求を受信すると、サービス要求に含まれるキー情報を取得し、取得したキー情報を振り分け部１４に通知する。また、サービス応答部１３は、振り分け部１４からサービス要求の転送先となる要求処理サーバの通知を受けると、通知された要求処理サーバに対してサービス要求を転送する。その後、サービス応答部１３は、サービス要求を転送した要求処理サーバから応答を取得した場合には、取得した応答をサービス要求の発行元であるクライアントへ転送する。
【００５６】
振り分け部１４は、サービス応答部１３からキー情報を取得した場合には、取得したキー情報のハッシュ値を算出する。そして、振り分け部１４は、算出したハッシュ値と対応付けられた要求処理サーバ、すなわち、サービス要求の転送先としてハッシュ値の範囲と予め対応付けられた要求処理サーバをノード情報ＤＢ１８から検索する。なお、以下の説明においては、振り分け部１４がノード情報ＤＢ１８から検索した要求処理サーバを起点要求処理サーバと記載する。
【００５７】
次に、振り分け部１４は、算出したハッシュ値と、サービス応答部１３から取得したキー情報とを検索キーとして、アクセス頻度ハッシュテーブル１９を検索し、取得したキー情報を含むサービス要求のアクセス頻度を検索する。そして、振り分け部１３は、アクセス頻度ハッシュテーブル１９の検索結果と、サービス応答部１３から取得したキー情報について、事前に設定されたアクセス頻度に応じて、サービス要求の転送先となる要求処理サーバを選択し、選択した要求処理サーバをサービス応答部１３に通知する。
【００５８】
具体的には、振り分け部１４は、検索キーに合致するエントリがアクセス頻度ハッシュテーブル１９に存在しない場合には、あらかじめ設定された初期アクセス頻度に応じた台数の要求処理サーバを抽出し、抽出した要求処理サーバからサービス要求の転送先となる要求処理サーバを選択する。そして、振り分け部１４は、選択した要求処理サーバをサービス応答部１３に通知する。
【００５９】
詳細な例を挙げると、振り分け部１４は、検索キーに合致するエントリがアクセス頻度ハッシュテーブル１９に存在せず、かつ、事前に設定された初期アクセス頻度が「１」の場合、または、取得したキー情報について事前に設定したアクセス頻度が「Ｌ」、かつ、事前に設定された初期アクセス頻度が「１」の場合には、起点要求処理サーバを要求処理サーバとして、サービス応答部１３に通知する。一方、振り分け部１４は、検索キーに合致するエントリがアクセス頻度ハッシュテーブル１９に存在せず、かつ、事前に設定された初期アクセス頻度が「２」以上の場合、または、取得したキー情報について事前に設定したアクセス頻度が「Ｌ」、かつ、事前に設定された初期アクセス頻度が「２」以上の場合には、以下の処理を実行する。
【００６０】
すなわち、振り分け部１４は、取得したキー情報について事前に設定された初期アクセス頻度から、サービス要求を転送先となる要求処理サーバの数を算出し、算出した数の要求処理サーバを特定する。以降、アクセス頻度からサービス要求の転送先となる要求処理サーバの数を算出する処理を、アクセス頻度の数値化と記載する。そして、振り分け部１４は、特定した複数の要求処理サーバから、サービス要求の転送先となる１つの要求処理サーバをランダム選択等の手法を用いて選択し、選択した要求処理サーバをサービス応答部１３に通知する。
【００６１】
また、振り分け部１４は、検索キーに合致するエントリがアクセス頻度ハッシュテーブル１９に存在する場合には、合致したエントリに格納されたアクセス頻度と分散用情報とを取得する。そして、振り分け部１４は、アクセス頻度ハッシュテーブル１９から取得したアクセス頻度からサービス要求の転送先となる要求処理サーバを特定する。その後、振り分け部１４は、分散用情報に応じて、ラウンドロビン等の手法により、サービス要求の転送先となる１つの要求処理サーバを選択し、選択した要求処理サーバをサービス応答部１３に通知する。
【００６２】
詳細な例を挙げると、振り分け部１４は、取得したキー情報について起点要求処理サーバが要求処理サーバ２０であり、取得したキー情報について事前に設定されたアクセス頻度が「２」である場合には、転送先となる要求処理サーバとして、要求処理サーバ２０、および、要求処理サーバ２０ａを特定する。そして、振り分け部１４は、要求処理サーバ２０、および、要求処理サーバ２０ａから、ラウンドロビン等の方法によって、要求処理サーバ２０ａを選択する。その後、振り分け部１４は、選択した要求処理サーバ２０ａをサービス応答部１３に通知する。
【００６３】
また、例えば、振り分け部１４は、取得したキー情報について起点要求処理サーバが要求処理サーバ２０であり、取得したキー情報について事前に設定されたアクセス頻度が「Ｈ」である場合には、転送先となる要求処理サーバとして、全ての要求処理サーバ２０〜２０ｄを特定する。そして、振り分け部１４は、特定した各要求処理サーバ２０〜２０ｄから、ラウンドロビン等の方法によって、要求処理サーバ２０ｄを選択する。その後、振り分け部１４は、選択した要求処理サーバ２０ｄをサービス応答部１３に通知する。
【００６４】
なお、アクセス頻度の数値化は、アクセス頻度からその都度計算してもよいし、予め設定した対応表などを参照する手法により行っても良い。また、アクセス頻度が格納されていない等により数値化が行えない場合には、予め設定されたアクセス頻度範囲外値を用いることとしてもよい。なお、アクセス頻度範囲外値は、要求処理サーバの台数とは区別できる数値であるものとする。
【００６５】
頻度情報更新部１５は、通信制御Ｉ／Ｆ部１１を介して、各キー情報を含むサービス要求の新たなアクセス頻度を頻度情報として、永続化サーバ３０から受信する。そして、頻度情報更新部１５は、受信した頻度情報に従って、アクセス頻度ハッシュテーブル１９の更新を行う。
【００６６】
以下、頻度情報更新部１５が実行する処理を具体的に説明する。まず、頻度情報更新部１５は、キー情報、アクセス頻度、更新内容とを対応付けた頻度情報を受信する。そして、頻度情報更新部１５は、受信した頻度情報の更新内容が「削除」である場合には、受信した頻度情報のキー情報に対応するエントリをアクセス頻度ハッシュテーブル１９から検索し、検索したエントリを削除する。
【００６７】
また、頻度情報更新部１５は、受信した頻度情報の更新内容が「変更」もしくは「登録」であり、受信した頻度情報のアクセス頻度が「Ｌ」の場合は、受信した頻度情報のキー情報に対応するエントリをアクセス頻度ハッシュテーブル１９から検索し、検索したエントリを削除する。
【００６８】
一方、頻度情報更新部１５は、受信した頻度情報の更新内容が「変更」であり、受信した頻度情報のアクセス頻度が「Ｌ」以外の場合には、受信した頻度情報のキー情報に対応するエントリをアクセス頻度ハッシュテーブル１９から検索する。そして、頻度情報更新部１５は、検索したエントリのアクセス頻度を、受信した頻度情報のアクセス頻度に変更する。また、頻度情報更新部１５は、受信した頻度情報の更新内容が「登録」であり、受信した頻度情報のアクセス頻度が「Ｌ」以外の場合には、受信した頻度情報を用いて、新たなエントリをアクセス頻度ハッシュテーブル１９に格納する。
【００６９】
全頻度情報取得部１６は、要求分配サーバ１０の起動時に、アクセス頻度ハッシュテーブル１９を生成するために、全頻度情報要求を永続化サーバ３０に送信する。後述するように、永続化サーバ３０は、全頻度情報要求を受信した場合には、全頻度情報応答として、各キー情報毎のアクセス頻度を要求分配サーバ１０に送信する。その後、全頻度情報取得部１６は、永続化サーバ３０から受信した全頻度情報応答を用いて、アクセス頻度ハッシュテーブル１９の各エントリを登録する。
【００７０】
次に、図６を用いて、要求処理サーバ２０の機能構成について説明する。図６は、実施例１に係る要求処理サーバの機能構成を説明するための図である。図６に示す例では、要求処理サーバ２０は、通信制御Ｉ／Ｆ部２１、制御部２２、記憶部２６を有する。また、制御部２２は、データ応答部２３、更新データ応答部２４、全データ取得部２５を有する。また、記憶部２６は、メモリ等の高速にアクセス可能な記憶媒体であり、ユーザ情報ハッシュテーブル２７を記憶する。
【００７１】
ここで、図７を用いて、記憶部２６が記憶するユーザ情報ハッシュテーブル２７について、説明する。図７は、ユーザ情報ハッシュテーブルを説明するための図である。図７に示す例では、ユーザ情報ハッシュテーブル２７には、ハッシュ値とキー情報と属性値とを対応付けたエントリを有する。ここで、属性値とは、対応付けられたキー情報を含むサービス要求を受信した際に要求処理サーバ２０が応答として送信する制御データである。
【００７２】
例えば、図７に示す例では、ユーザ情報ハッシュテーブル２７は、キー情報「ＩＤ０００１」を含むサービス要求を受信した際に、応答として送信する制御データが「データ１」であることを示す。また、ユーザ情報ハッシュテーブル２７は、キー情報「ＩＤ００１０」を含むサービス要求を受信した際に、応答として送信する制御データが「データ１０」であることを示す。
【００７３】
同様に、ユーザ情報ハッシュテーブル２７は、キー情報「ＩＤ０００２」を含むサービス要求を受信した際に、応答として送信する制御データが「データ２」であることを示す。また、ユーザ情報ハッシュテーブル２７は、キー情報「ＩＤ０００４」を含むサービス要求を受信した際に、応答として送信する制御データが「データ４」であることを示す。また、ユーザ情報ハッシュテーブル２７は、キー情報「ＩＤ１０００」を含むサービス要求を受信した際に、応答として送信する制御データが「データ１０００」であることを示す。
【００７４】
図６に戻って、通信制御Ｉ／Ｆ部２１は、通信制御Ｉ／Ｆ部１１と同様に、要求分配サーバ１０、および永続化サーバ３０との間で各種情報を送受信する際の通信を制御する。また、制御部２２は、データ応答部２３、更新データ応答部２４、全データ取得部２５を用いて、各種処理の制御を行う。
【００７５】
データ応答部２３は、要求分配サーバ１０からサービス要求を受信すると、受信したサービス要求に含まれるキー情報を取得する。そして、データ応答部２３は、取得したキー情報を含むエントリをユーザ情報ハッシュテーブル２７から検索し、検索したエントリに含まれる属性値を応答として要求分配サーバ１０に送信する。また、データ応答部２３は、取得したキー情報を含むエントリがユーザ情報ハッシュテーブル２７に存在しない場合には、「データ無し」を示す通知を要求分配サーバ１０に送信する。
【００７６】
例えば、データ応答部２３は、キー情報「ＩＤ０００１」を含むサービス要求を要求分配サーバ１０から受信した場合には、図７に示すユーザ情報ハッシュテーブル２７から、キー情報が「ＩＤ０００１」であるエントリを検索する。この結果、データ応答部２３は、キー情報「ＩＤ０００１」と対応付けられた「データ１」を応答として要求分配サーバ１０に送信する。
【００７７】
更新データ応答部２４は、ユーザ情報ハッシュテーブル２７を更新するための更新データを永続化サーバ３０から受信した場合には、受信した更新データを用いて、ユーザ情報ハッシュテーブル２７を更新する。具体的には、更新データ応答部２４は、キー情報、属性値、アクセス頻度、更新内容を対応付けた更新データを永続化サーバ３０から受信する。
【００７８】
そして、更新データ応答部２４は、更新データの更新内容が「登録」である場合には、更新データのキー情報のハッシュ値を算出し、算出したハッシュ値と、更新データのキー情報と、属性値とを対応付けたエントリをユーザ情報ハッシュテーブル２７に格納する。また、更新データ応答部２４は、更新データの更新内容が「変更」である場合には、更新データのキー情報を含むエントリを更新データに従って更新する。一方、更新データ応答部２４は、更新データの行進内容が「削除」である場合には、更新データのキー情報を含むエントリをユーザ情報ハッシュテーブル２７から削除する。
【００７９】
全データ取得部２５は、要求処理サーバ２０の起動時に、ユーザ情報ハッシュテーブル２７を生成するため、全データ要求を永続化サーバ３０に送信する。後述するように、永続化サーバ３０は、要求処理サーバ２０から全データ要求を受信した場合には、要求処理サーバ２０が処理を実行するサービス要求のキー情報と、サービス要求の実行に必要な制御データとを全データ応答として要求処理サーバ２０に送信する。その後、全データ取得部２５は、永続化サーバ３０から受信した全データ応答を用いて、ユーザ情報ハッシュテーブル２７の各エントリを登録する。
【００８０】
次に、図８を用いて、永続化サーバ３０の機能構成について説明する。図８は、実施例１に係る永続化サーバの機能構成を説明するための図である。図８に示す例では、永続化サーバ３０は、通信制御Ｉ／Ｆ部３１、制御部３２、記憶部３７を有する。また、制御部３２は、更新データ配信部３３、全データ応答部３４、全頻度情報応答部３５、ユーザ情報更新部３６を有する。また、記憶部３７は、ユーザ情報ＤＢ３８、更新情報ＤＢ３９、ノード情報ＤＢ４０を有する。
【００８１】
ここで、記憶部３７が記憶するユーザ情報ＤＢ３８、更新情報ＤＢ３９、ノード情報ＤＢ４０について説明する。まず、図９を用いて、ユーザ情報ＤＢ３８について説明する。図９は、永続化サーバが記憶するユーザ情報ＤＢを記憶するための図である。図９に示す例では、ユーザ情報ＤＢ３８は、ユーザ情報ＩＤと、キー情報と、属性値と、アクセス頻度とを対応付けたエントリを有する。
【００８２】
ここで、各エントリのユーザ情報ＩＤには、各エントリを特定するＩＤが格納される。また、各エントリのキー情報、属性値、アクセス頻度には、アクセス頻度ハッシュテーブル１９およびユーザ情報ハッシュテーブル２７と同様に、キー情報、制御データ、アクセス頻度が格納される。
【００８３】
例えば、図９に示す例では、ユーザ情報ＤＢ３８は、キー情報「ＩＤ０００１」を含むサービス要求の処理に必要な制御データが「データ１」であり、サービス要求のアクセス頻度が「Ｈ」であることを示す。すなわち、ユーザ情報ＤＢ３８は、キー情報「ＩＤ０００１」を含むサービス要求について、全ての要求処理サーバ２０〜２０ｄが分散して処理を実行することを示す。
【００８４】
また、ユーザ情報ＤＢ３８は、キー情報「ＩＤ０００３」を含むサービス要求の処理に必要な制御データが「データ３」であり、サービス要求のアクセス頻度が「Ｌ」であることを示す。すなわち、ユーザ情報ＤＢ３８は、キー情報「ＩＤ０００３」を含むサービス要求について、１台の要求処理サーバが処理を実行することを示す。詳細には、ノード情報ＤＢ１８に、キー情報「ＩＤ０００３」のハッシュ値と対応付けて記憶された要求処理サーバが処理を実行することを示す。
【００８５】
次に、図１０を用いて、更新情報ＤＢ３９について説明する。図１０は、永続化サーバが記憶する更新情報ＤＢを説明するための図である。図１０に示す例では、更新情報ＤＢ３９は、更新情報ＩＤ、ユーザ情報ＩＤ、キー情報、更新内容、更新前頻度、更新後頻度を対応付けたエントリを有する。ここで、更新情報ＤＢの各エントリは、情報処理システム１の管理端末等の要求により、ユーザ情報ＤＢ３８の更新が行われた際に、どのような更新が行われたかを示す情報である。
【００８６】
具体的には、更新情報ＩＤは、更新情報ＤＢ３９の各エントリを特定するＩＤである。また、更新内容は、対応付けられたユーザ情報ＩＤが特定するユーザ情報ＤＢ３８のエントリに対して、どのような更新が行われたかを示す情報であり、「登録」、「変更」、「削除」のいずれかが格納される。また、更新前頻度とは、対応付けられたユーザ情報ＩＤが指定するエントリの更新前に格納されていたアクセス頻度である。
【００８７】
また、更新後頻度とは、対応付けられたユーザ情報ＩＤが指定するエントリの更新後に格納されたアクセス頻度である。なお、更新内容が「登録」である場合には、更新前頻度が存在しないため、更新前頻度は空欄となる。また、更新内容が「削除」である場合には、更新を行ったユーザ情報ＤＢ３８のエントリが存在しないため、ユーザ情報ＩＤと更新後頻度は空欄となる。
【００８８】
例えば、図１０に示す例では、更新情報ＩＤ「１」のエントリは、ユーザ情報ＤＢ３８のユーザ情報ＩＤ「１」が特定するエントリについて行われた更新を示す情報である。また、更新情報ＩＤ「１」のエントリは、キー情報「ＩＤ０００１」について、更新後頻度を「Ｈ」とする登録が行われた旨を示す。
【００８９】
同様に、図１０に示す例では、更新情報ＩＤ「２」のエントリは、ユーザ情報ＤＢ３８のユーザ情報ＩＤ「３」が特定するエントリについて行われた更新を示す情報である。また、更新情報ＩＤ「２」のエントリは、キー情報「ＩＤ０００３」のアクセス頻度「Ｈ」を「Ｌ」に更新した旨を示す。また、図１０に示す例では、更新情報ＩＤ「３」のエントリは、キー情報「ＩＤ０００５」についてのエントリをユーザ情報ＤＢ３８から削除した旨を示す。
【００９０】
図８に戻って、ノード情報ＤＢ４０は、要求分散サーバ１０が有するノード情報ＤＢ１８と同様に、ノード情報ＩＤ、担当領域、要求処理サーバ情報を対応付けたエントリを有する。なお、ノード情報ＩＤ４０は、ノード情報ＤＢ１８と同様の情報を記憶するものとして、説明を省略する。
【００９１】
次に、制御部３２が有する更新データ配信部３３、全データ応答部３４、全頻度情報応答部３５、ユーザ情報更新部３６が実行する処理について説明する。まず、更新データ配信部３３は、管理端末等の要求により、ユーザ情報更新部３６がユーザ情報ＤＢ３８および更新情報ＤＢ３９を更新したことをトリガとして、以下の処理を実行する。
【００９２】
すなわち、更新データ配信部３３は、更新情報ＤＢ３９の各エントリに含まれるキー情報、更新前頻度、更新後頻度、更新内容、ユーザ情報ＩＤとを取得する。また、更新データ配信部３３は、取得したユーザ情報ＩＤを用いて、ユーザ情報ＤＢ３８を検索し、制御データの更新を行う要求処理サーバの一覧を作成する。
【００９３】
そして、更新データ配信部３３は、取得した更新内容、更新前頻度、更新後頻度の組合せに基づいて、更新データを各要求処理サーバ２０〜２０ｄに送信する順序と、要求分配サーバ１０に頻度情報を送信する順序とを決定する。その後、更新データ配信部３３は、決定した順序に従って、更新データを各要求処理サーバ２０〜２０ｄに送信するとともに、要求分配サーバ１０に頻度情報を送信する。
【００９４】
以下、更新データ配信部３３が実行する処理を具体的に説明する。まず、更新データ配信部３３は、更新情報ＤＢ３９から１つのエントリを取り出し、取り出したエントリに格納されているキー情報のハッシュ値を算出する。次に、更新データ配信部３３は、算出したハッシュ値をキーとして、ノード情報ＤＢ４０を検索し、対応付けて記憶された要求処理サーバを特定する。すなわち、更新データ配信部３３は、算出したハッシュ値と対応付けられた起点要求処理サーバを検索する。
【００９５】
次に、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリの更新前頻度、および、更新後頻度を数値化する。なお、以下の説明において、数値化した更新前頻度を数値化更新前頻度と記載し、数値化した更新後頻度を数値化更新後頻度と記載する。その後、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリの更新内容が「削除」であるか、「登録」であるか、「変更」であるかに応じて、以下の処理を実行する。
【００９６】
すなわち、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリの更新内容が「削除」である場合には、取り出したエントリのキー情報と更新内容「削除」を頻度情報として、要求分配サーバ１０に送信する。また、更新データ配信部３３は、検索した起点要求処理サーバ、数値化更新前頻度、ノード情報ＤＢ４０の各エントリを用いて、制御データの更新対象となる要求処理サーバの一覧を作成する。
【００９７】
その後、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリのキー情報と更新内容「削除」とを更新データとして、作成した一覧の要求処理サーバに送信する。その後、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリを削除する。なお、制御データの更新対象となる要求処理サーバの一覧を作成する処理の詳細な説明については、後述する。
【００９８】
一方、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリの更新内容が「変更」である場合には、数値化更新後頻度が数値化更新前頻度以上であるか否かを判別する。そして、更新データ配信部３３は、数値化更新後頻度が数値化更新前頻度以上であると判別した場合には、更新情報ＤＢ３９から取り出したエントリのユーザ情報ＩＤが示すエントリを、ユーザ情報ＤＢ３８から取り出す。
【００９９】
そして、更新データ配信部３３は、判別した起点要求処理サーバと、更新情報ＤＢ３９から取り出したエントリの数値更新後頻度と、ノード情報ＤＢ４０の各エントリを用いて、制御データの更新対象となる要求処理サーバの一覧を作成する。また、更新データ配信部３３は、ユーザ情報ＤＢ３８から取り出したエントリの、キー情報、属性値、アクセス頻度と、更新内容「登録/変更」を、更新データとして、作成した一覧の要求処理サーバに送信する。
【０１００】
また、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリの、キー情報、更新内容、更新後頻度を頻度情報として、要求分配サーバ１０へ送信する。その後、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリを削除する。
【０１０１】
また、更新データ配信部３３は、数値化更新後頻度が数値化更新前頻度未満であると判別した場合には、更新情報ＤＢ３９から取り出したエントリの、ユーザ情報ＩＤが示すエントリを、ユーザ情報ＤＢ３８から取り出す。そして、更新データ配信部３３は、判別した起点要求処理サーバと、更新情報ＤＢ３９から取り出したエントリの数値更新前頻度と、ノード情報ＤＢ４０の各エントリを用いて、制御データの削除対象となる要求処理サーバの一覧を作成する。以下の説明においては、制御データの削除対象となる要求処理サーバの一覧を削除対象一覧と記載する。
【０１０２】
また、更新データ配信部３３は、判別した起点要求処理サーバと、更新情報ＤＢ３９から取り出したエントリの数値更新後頻度と、ノード情報ＤＢ４０の各エントリを用いて、制御データの更新対象となる要求処理サーバの一覧を作成する。以下の説明においては、制御データの更新対象となる要求処理サーバの一覧を更新対象一覧と記載する。
【０１０３】
次に、更新データ配信部３３は、削除対象一覧から、更新対象一覧に存在する要求処理サーバを削除する。また、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリの、キー情報、更新内容、更新後頻度を頻度情報として、要求分配サーバ１０へ送信する。
【０１０４】
そして、更新データ配信部３３は、ユーザ情報ＤＢ３８から取り出したエントリの、キー情報、属性値、アクセス頻度、更新内容「登録/変更」を、更新データとして、更新対象一覧の各要求処理サーバへ送信する。さらに、更新データ配信部３３は、ユーザ情報ＤＢ３８から取り出したエントリの、キー情報と更新内容「削除」を、更新データとして、削除対象一覧の各要求処理サーバへ送信する。その後、更新データ配信部３３は、更新情報ＤＢ３９から取り出したエントリを削除する。
【０１０５】
次に、更新データ配信部３３が要求処理サーバの一覧を作成する処理について説明する。まず、更新データ配信部３３は、検索した起点要求処理サーバを一覧の最初の要素とする。次に、更新データ配信部３３は、起点要求処理サーバを起点としてノード情報ＩＤの順にノード情報ＤＢ４０の各エントリに格納された要求処理サーバ情報を順に参照する。
【０１０６】
例えば、ノード情報ＤＢ４０が図４に示すノード情報ＤＢ１８と同じエントリを有し、起点要求処理サーバが要求処理サーバＣである場合には、更新データ配信部３３は、要求処理サーバＤ、要求処理サーバＥ、要求処理サーバＡ、要求処理サーバＢの順に要求処理サーバ情報を参照することとなる。
【０１０７】
そして、更新データ配信部３３は、数値化更新後頻度と同じ数の要求処理サーバ情報を参照し、参照した順に、要求処理サーバ情報を連結した要求処理サーバの一覧を作成する。この際、更新データ配信部３３は、物理的、または、論理的に同一サーバとなる要求処理サーバが一覧に含まれないようにする。また、更新データ配信部３３は、ノード情報ＤＢ４０の最終エントリまで参照した場合には、先頭のエントリから順に要求処理サーバ情報を参照する。
【０１０８】
次に、更新データ配信部３３が実行する具体例を説明する。以下に説明する具体例においては、キー情報「ＩＤ０００１」を含むサービス要求の初期アクセス頻度が「Ｌ」であるものとし、キー情報「ＩＤ０００１」のハッシュ値が「００００」であるものとする。例えば、更新データ配信部３３は、更新情報ＤＢ３９から更新情報ＩＤ「１」が示すエントリを取り出す。
【０１０９】
そして、更新データ配信部３３は、取り出したエントリのキー情報「ＩＤ０００１」から、ハッシュ値「００００」を算出する。ここで利用するハッシュ関数は、要求分配サーバ１０、各要求処理サーバ２０〜２０ｄで用いるハッシュ関数と同一のハッシュ関数を用いる。次に、更新データ配信部３３は、ノード情報ＤＢ４０を参照し、ハッシュ値「００００」と対応付けられた要求処理サーバ情報、すなわち、起点要求処理サーバを示す情報が「要求処理サーバＡ」であると判別する。
【０１１０】
次に、更新データ配信部３３は、同エントリの更新前情報が空欄であるため、数値化更新前頻度を「アクセス頻度範囲外値」とし、同エントリの更新後頻度が「Ｈ」であるから、数値化更新後頻度を「５」とする。また、更新データ配信部３３は、同エントリの更新内容が「登録」であるため、同エントリのユーザ情報ＩＤ「１」が示すエントリをユーザ情報ＤＢ３８から取得する。
【０１１１】
そして、更新データ配信部３３は、起点要求処理サーバを示す情報「要求処理サーバＡ」と、数値化更新後頻度「５」から、要求処理サーバの一覧を作成する。この例では、更新データ配信部３３は、「要求処理サーバＡ」、「要求処理サーバＢ」、「要求処理サーバＣ」、「要求処理サーバＤ」、「要求処理サーバＥ」の順に要求処理サーバ情報を連結した一覧を作成する。
【０１１２】
次に、更新データ配信部３３は、キー情報を「ＩＤ０００１」、属性値を「データ１」、アクセス頻度を「Ｈ」、更新内容を「登録」とする更新データを、作成した一覧の要求処理サーバに送信する。次に、更新データ配信部３３は、器情報を「ＩＤ０００１」、更新内容を「登録」、アクセス頻度を「Ｈ」とした頻度情報を、要求分配サーバ１０に送信する。その後、更新データ配信部３３は、更新情報ＩＤが「１」のエントリを、更新情報ＤＢ３９から削除する。
【０１１３】
次に、更新データ配信部３３が更新情報ＩＤが「３」のエントリについて上述した処理を行う例について説明する。なお、以下の例では、キー情報「ＩＤ０００５」のハッシュ値が「１１１１」であるものとする。例えば、更新データ配信部３３は、更新情報ＤＢ３９から更新情報ＩＤ「３」が示すエントリを取り出す。
【０１１４】
そして、更新データ配信部３３は、取り出したエントリのキー情報「ＩＤ０００５」から、ハッシュ値「１１１１」を算出する。次に、更新データ配信部３３は、ノード情報ＤＢ４０を参照し、ハッシュ値「１１１１」と対応付けられた起点要求処理サーバを示す情報が「要求処理サーバＢ」であると判別する。
【０１１５】
次に、更新データ配信部３３は、同エントリの更新前情報が「Ｈ」であるため、数値化更新前頻度を「５」とし、同エントリの更新後頻度が空欄であるから、数値化更新後頻度を「アクセス頻度範囲外値」とする。また、更新データ配信部３３は、同エントリの更新内容が「削除」であるため、キー情報を「ＩＤ０００５」とし、更新内容を「削除」とする頻度情報を要求分配サーバ１０に送信する。
【０１１６】
また、更新データ配信部３３は、起点要求処理サーバを示す情報「要求処理サーバＢ」と、数値化更新前頻度「５」から、要求処理サーバの一覧を作成する。この例では、更新データ配信部３３は、「要求処理サーバＢ」、「要求処理サーバＣ」、「要求処理サーバＤ」、「要求処理サーバＥ」、「要求処理サーバＡ」の順に要求処理サーバ情報を連結した一覧を作成する。
【０１１７】
次に、更新データ配信部３３は、キー情報を「ＩＤ０００５」、更新内容を「削除」とする更新データを、作成した一覧の要求処理サーバに送信する。その後、更新データ配信部３３は、更新情報ＩＤが「３」のエントリを、更新情報ＤＢ３９から削除する。
【０１１８】
全データ応答部３４は、各要求処理サーバ２０〜２０ｄから、全データ要求を受信した場合には、ユーザ情報ＤＢ３８の各エントリのうち、全データ要求の送信元となる要求処理サーバが保持すべき制御データを特定し、特定した制御データを応答として送信する。具体的には、全データ応答部３４は、各キー情報のハッシュ値とノード情報ＤＢ４０から各制御データの起点要求処理サーバを識別し、識別した起点要求処理サーバが全データ要求の送信元となる制御データを応答として送信する。
【０１１９】
また、全データ応答部３４は、ユーザ情報ＤＢ３８の各エントリごとに、起点要求処理サーバを特定し、特定した起点要求処理サーバと、各エントリの頻度情報を数値化した情報と、ノード情報ＤＢ４０とを用いて要求処理サーバの一覧を各エントリごとに作成する。そして、全データ応答部３４は、各エントリごとに作成した要求処理サーバの一覧に、全データ要求の送信元となる要求処理サーバが含まれるエントリの制御データを応答として送信する。
【０１２０】
全頻度情報応答部３５は、要求分配サーバ１０から全頻度情報要求を受信すると、ユーザ情報ＤＢ３８の各エントリを参照し、アクセス頻度が「Ｌ」より大きいエントリを取り出す。そして、全頻度情報応答部３５は、取り出したエントリのキー情報とアクセス頻度との組を連結した全頻度情報一覧を作成し、作成した全頻度情報一覧を応答として、要求分配サーバ１０に送信する。
【０１２１】
ユーザ情報更新部３６は、管理端末等の要求により、ユーザ情報ＤＢ３８の更新を行う。また、ユーザ情報更新部３６は、ユーザ情報ＤＢ３８の更新を行った場合には、更新内容を示すエントリを更新情報ＤＢ３９に作成する。
【０１２２】
例えば、ユーザ情報更新部３６は、管理端末等から、ユーザ情報ＤＢ３８の更新要求として、更新内容、キー情報、属性値、アクセス頻度を含む登録情報を受信する。そして、ユーザ情報更新部３６は、更新内容が、「変更」の場合、登録情報に含まれるキー情報を用いて、ユーザ情報ＤＢ３８を検索し、検索したエントリのアクセス頻度を、更新前頻度とする。
【０１２３】
そして、ユーザ情報更新部３６は、登録情報に含まれるアクセス頻度を、更新後頻度とし、登録情報に含まれるキー情報、属性値、アクセス頻度を用いて、検索したエントリを更新する。次に、ユーザ情報更新部３６は、登録情報に含まれる、キー情報、更新内容と、変更したエントリのユーザ情報ＩＤと、更新前頻度と、更新後頻度を用いて、更新情報ＤＢ３９へエントリを追加する。
【０１２４】
また、ユーザ情報更新部３６は、更新内容が「登録」の場合、更新前頻度を空欄とする。そして、ユーザ情報更新部３６は、登録情報に含まれる、アクセス頻度を、更新後頻度とし、登録情報に含まれる、キー情報、属性値、アクセス頻度を用いて、ユーザ情報ＤＢ３８にエントリを登録する。次に、ユーザ情報更新部３６は、登録情報に含まれる、キー情報、更新内容、およびユーザ情報ＤＢ３８に登録したエントリのユーザ情報ＩＤと、更新前頻度と、更新後頻度を用いて、更新情報ＤＢ３９へエントリを追加する。
【０１２５】
また、ユーザ情報更新部３６は、更新内容が「削除」の場合、登録情報に含まれるキー情報を用いて、ユーザ情報ＤＢ３８を検索し、検索したエントリのアクセス頻度を、更新前頻度とする。また、ユーザ情報更新部３６は、更新後頻度を空欄とする。そして、ユーザ情報更新部３６は、検索したエントリを削除する。次に、ユーザ情報更新部３６は、登録情報に含まれるキー情報と、更新内容と、更新前頻度と、更新後頻度とを有し、ユーザ情報ＩＤを空欄としたエントリを更新情報ＤＢ３９に追加する。
【０１２６】
なお、ユーザ情報更新部３６は、上述した各処理を実行した後に、更新データ配信部３３の呼び出しを行い、処理を実行させる。なお、キー情報に対応するアクセス頻度は、システムのログ情報などを用いて、ユーザ情報更新時には判明しており、ユーザ情報更新を行う側が指定して更新を行う。
【０１２７】
次に、図１１を用いて、更新データ配信部３３が実行する処理の流れを説明する。図１１は、更新データ配信部が実行する処理の流れを説明するためのフローチャートである。。まず、更新データ配信部３３は、更新情報ＤＢ３９のエントリの先頭を１つ取得する（ステップＳ１０１）。次に、更新データ配信部３３は、取得したエントリに含まれるキー情報のハッシュ値を計算する（ステップＳ１０２）。
【０１２８】
次に、更新データ配信部３３は、ハッシュ値を用いて、ノード情報ＤＢ４０の担当領域を検索し、起点要求処理サーバを決定する（ステップＳ１０３）。次に、更新データ配信部３３は、エントリに含まれる更新前頻度と、更新後頻度とから、数値化更新前情報と、数値化更新後情報とを計算する（ステップＳ１０４）。次に、更新データ配信部３３は、エントリに含まれる更新内容を確認する（ステップＳ１０５）。
【０１２９】
そして、更新データ配信部３３は、更新内容が削除である場合には（ステップＳ１０５：削除）、要求分配サーバ１０へ、エントリのキー情報と、更新内容「削除」とを頻度情報として送信する（ステップＳ１０６）。また、更新データ配信部３３は、起点要求処理サーバ、数値化更新前頻度をパラメータとして、要求処理サーバの一覧を作成する（ステップＳ１０７）。次に、更新データ配信部３３は、要求処理サーバの一覧の各要求処理サーバに対して、エントリのキー情報と、更新内容「削除」とを更新データとして送信する（ステップＳ１０８）。
【０１３０】
また、更新データ配信部３３は、ステップＳ１０１で取得したエントリを更新情報ＤＢ３９から削除する（ステップＳ１０９）。続いて、更新データ配信部３３は、更新情報ＤＢ３９が空か否かを判別し（ステップＳ１１０）、更新情報ＤＢ３９が空であると判別した場合には（ステップＳ１１０肯定）、処理を終了する。一方、更新データ配信部３３は、更新情報ＤＢ３９が空ではないと判別した場合には（ステップＳ１１０否定）、更新情報ＤＢ３９から次のエントリを取得し（ステップＳ１１１）、ステップＳ１０２の処理を実行する。
【０１３１】
一方、更新データ配信部３３は、エントリに含まれる更新内容が「登録」または「変更」である場合には（ステップＳ１０５：登録／変更）、ユーザ情報ＤＢ３８のユーザ情報ＩＤがエントリに含まれるユーザ情報ＩＤと一致するエントリを取得する（ステップＳ１１２）。次に、更新データ配信部３３は、ステップＳ１０１で取得したエントリの更新内容が「登録」であるか否かを判別し（ステップＳ１１３）、更新内容が「登録」である場合には（ステップＳ１１３肯定）、起点要求処理サーバ、数値化更新後頻度をパラメータとして、サーバ一覧を作成する（ステップＳ１１４）。
【０１３２】
次に、更新データ配信部３３は、一覧の各要求処理サーバへ、ステップＳ１１２で取得したエントリのキー情報、属性値、アクセス頻度と、ステップＳ１０１で取得したエントリの更新内容を更新データとして送信する（ステップＳ１１５）。次に、更新データ配信部３３は、ステップＳ１０１で取得したエントリのキー情報、更新内容、更新後頻度を頻度情報として要求分配サーバ１０へ送信し（ステップＳ１１６）、ステップＳ１１９の処理を実行する。
【０１３３】
一方、更新データ配信部３３は、ステップＳ１０１で取得したエントリの更新内容が「変更」であると判別した場合には（ステップＳ１１３否定）、数値化更新後頻度が数値化更新前頻度以上であるか否かを判別する（ステップＳ１１７）。そして、更新データ配信部３３は、数値化更新後頻度が数値化更新前頻度以上であると判別した場合には（ステップＳ１１７肯定）、ステップＳ１１４の処理を実行する。
【０１３４】
一方、更新データ配信部３３は、数値化更新後頻度が数値化更新前頻度未満であると判別した場合には（ステップＳ１１７否定）、起点要求処理サーバ、数値化更新前頻度をパラメータとして、削除対象一覧を作成する（ステップＳ１１８）。また、更新データ配信部３３は、起点要求処理サーバ、数値化更新後頻度をパラメータとして、更新対象一覧を作成する（ステップＳ１１９）。続いて、更新データ配信部３３は、削除対象一覧から、更新対象一覧に含まれる要求処理サーバを削除する（ステップＳ１２０）。
【０１３５】
続いて、更新データ配信部３３は、要求分配サーバ１０へ、ステップＳ１０１で取得したエントリのキー情報、更新内容、更新後頻度を頻度情報として送信する（ステップＳ１２１）。次に、更新データ配信部３３は、更新対象一覧の各要求処理サーバへ、ステップＳ１１２で取得したエントリのキー情報、属性値、アクセス頻度とステップＳ１０１で取得したエントリの更新内容を更新データとして送信する（ステップＳ１２２）。
【０１３６】
次に、更新データ配信部３３は、削除対象一覧の各要求処理サーバへ、ステップＳ１１２で取得したエントリのキー情報と更新内容「削除」とを更新データとして送信する（ステップＳ１２３）。その後、更新データ配信部３３は、ステップＳ１０９の処理を実行する。
【０１３７】
次に、図１２を用いて、更新データ配信部３３が要求処理サーバの一覧を作成する処理の流れについて説明する。図１２は、要求処理サーバの一覧を作成する処理の流れを説明するためのフローチャートである。なお、図１２に示す処理は、図１１に示したステップＳ１０７、Ｓ１１４、Ｓ１１８、Ｓ１１９と対応する。
【０１３８】
まず、更新データ配信部３３は、起点要求処理サーバと、数値化アクセス頻度とを取得する（ステップＳ２０１）。続いて、更新データ配信部３３は、起点要求処理サーバを先頭の要素として、要求処理サーバの一覧を作成する（ステップＳ２０２）。また、更新データ配信部３３は、ノード情報ＤＢ４０の各エントリを、要求処理サーバ情報が起点要求処理サーバとなる行まで順に参照する（ステップＳ２０３）。次に、更新データ配信部３３は、ノード情報ＤＢ４０の次のエントリを参照し（ステップＳ２０４）、次のエントリが存在するか否かを判別する（ステップＳ２０５）。
【０１３９】
そして、更新データ配信部３３は、ノード情報ＤＢ４０に次のエントリが存在しない場合には（ステップＳ２０５否定）、参照中のノード情報ＤＢ４０のエントリを先頭行として取得する（ステップＳ２０６）。一方、更新データ配信部３３は、ノード情報ＤＢ４０に次のエントリが存在する場合は（ステップＳ２０５肯定）、ステップＳ２０６の処理をスキップする。続いて、更新データ配信部３３は、ノード情報ＤＢ４０から取得したエントリの要求処理サーバ情報が、ステップＳ２０２、Ｓ２０３にて作成した一覧に存在するか否かを判別する（ステップＳ２０７）。
【０１４０】
そして、更新データ配信部３３は、ノード情報ＤＢ４０から取得したエントリの要求処理サーバ情報が、一覧に存在する場合は（ステップＳ２０７肯定）、ステップＳ２０４の処理を実行する。一方、更新データ配信部３３は、ノード情報ＤＢ４０から取得したエントリの要求処理サーバ情報が、一覧に存在しない場合は（ステップＳ２０７否定）、一覧にノード情報ＤＢ４０から取得したエントリの要求処理サーバ情報を追加する（ステップＳ２０８）。
【０１４１】
続いて、更新データ配信部３３は、一覧内の要求処理サーバの個数が数値化アクセス頻度未満であるか否かを判別し（ステップＳ２０９）、一覧内の要求処理サーバの個数が数値化アクセス頻度未満であると判別した場合には（ステップＳ２０９肯定）ステップＳ２０４の処理を実行する。一方、更新データ配信部３３は、一覧内の要求処理サーバの個数が数値化アクセス頻度以上であると判別した場合には（ステップＳ２０９否定）、一覧を要求処理サーバの一覧とし（ステップＳ２１０）、処理を終了する。
【０１４２】
次に、図１３を用いて、全データ応答部３４が実行する処理の流れについて説明する。図１３は、全データ応答部が実行する処理の流れを説明するためのフローチャートである。なお、図１３に示す例では、全データ応答部３４が要求処理サーバ２０から全データ要求を受信した際に実行する処理の流れについて説明する。
【０１４３】
まず、図１３に示す例では、全データ応答部３４は、要求処理サーバ２０から全データ要求を受信する（ステップＳ３０１）。次に、全データ応答部３４は、応答用に空の全データ一覧表を作成する（ステップＳ３０２）。また、全データ応答部３４は、ユーザ情報ＤＢ３８の先頭エントリを取り出す（ステップＳ３０３）。そして、全データ応答部３４は、取り出したエントリのキー情報からハッシュ値を計算し、ハッシュ値でノード情報ＤＢ４０を検索し、起点要求処理サーバを特定する（ステップＳ３０４）。
【０１４４】
次に、全データ応答部３４は、起点要求処理サーバが全データ要求の要求元であるか否か、すなわち、起点要求処理サーバが要求処理サーバ２０であるか否かを判別する（ステップＳ３０５）。そして、全データ応答部３４は、起点要求処理サーバが全データ要求の要求元であると判別した場合には（ステップＳ３０５肯定）、ステップＳ３０３にて取り出したエントリを全データ一覧表に追加する（ステップＳ３０６）。
【０１４５】
次に、全データ応答部３４は、ユーザ情報ＤＢ３８から取り出したエントリがユーザ情報ＤＢ３８の最後のエントリであるか否かを判別し（ステップＳ３０７）、最後のエントリであると判別した場合には（ステップＳ３０７肯定）、処理を終了する。一方、全データ応答部３４は、ユーザ情報ＤＢ３８から取り出したエントリがユーザ情報ＤＢ３８の最後のエントリではないと判別した場合には（ステップＳ３０７否定）、ユーザ情報ＤＢ３８から次のエントリを取り出し（ステップＳ３０８）、ステップＳ３０４の処理を実行する。
【０１４６】
また、全データ応答部３４は、起点要求処理サーバが全データ要求の要求元ではないと判別した場合には（ステップＳ３０５否定）、エントリに含まれるアクセス頻度が「Ｌ」であるか否かを判別する（ステップＳ３０９）。そして、全データ応答部３４は、エントリに含まれるアクセス頻度が「Ｌ」ではないと判別した場合には（ステップＳ３０９否定）、アクセス頻度から数値化アクセス頻度を計算する（ステップＳ３１０）。
【０１４７】
一方、全データ応答部３４は、エントリに含まれるアクセス頻度が「Ｌ」である場合には（ステップＳ３０９肯定）、情報処理システム１に設定された初期アクセス頻度が「１」か否かを判別する（ステップＳ３１１）。そして、全データ応答部３４は、情報処理システム１に設定された初期アクセス頻度が「１」ではない場合は（ステップＳ３１１否定）、初期アクセス頻度を数値化アクセス頻度とする（ステップＳ３１２）。
【０１４８】
続いて、全データ応答部３４は、起点要求処理サーバ、数値化更新後頻度をパラメータとして、要求処理サーバの一覧を作成する（ステップＳ３１３）。なお、ステップＳ３１３の処理は、図１２で示した処理に対応する。その後、全データ応答部３４は、要求処理サーバの一覧に要求処理サーバが含まれるか否かを判別し（ステップＳ３１４）、含まれると判別した場合には（ステップＳ３１４肯定）、ステップＳ３０６の処理を実行する。
【０１４９】
一方、全データ応答部３４は、要求処理サーバの一覧に要求処理サーバが含まれないと判別した場合には（ステップＳ３１４否定）、ステップＳ３０７の処理を実行する。また、全データ応答部３４は、システムの初期アクセス頻度が「１」であると判別した場合にも（ステップＳ３１１肯定）、ステップＳ３０７の処理を実行する。
【０１５０】
次に、図１４を用いて、全頻度情報応答部３５が実行する処理の流れについて説明する。図１４は、全頻度情報応答部が実行する処理の流れを説明するためのフローチャートである。なお、図１４に示す例では、要求分配サーバ１０が起動し、永続化サーバ３０に全頻度情報要求を送信した例について説明する。
【０１５１】
まず、全頻度情報応答部３５は、要求分配サーバ１０から全頻度情報要求を受信する（ステップＳ４０１）。このような場合には、全頻度情報応答部３５は、ユーザ情報ＤＢ３８からアクセス頻度が「Ｌ」ではないエントリの一覧を取得する（ステップＳ４０２）。そして、全頻度情報応答部３５は、取得したエントリの一覧を要求元の要求分配サーバ１０へ全頻度情報応答として送信し（ステップＳ４０３）、処理を終了する。
【０１５２】
次に、図１５を用いて、ユーザ情報更新部３６が実行する処理の流れについて説明する。図１５は、ユーザ情報更新部が実行する処理の流れを説明するためのフローチャートである。まず、ユーザ情報更新部３６は、管理端末等から登録情報を受信すると、登録情報の先頭からキー情報、属性値、アクセス頻度、更新内容を取得する（ステップＳ５０１）。
【０１５３】
次に、ユーザ情報更新部３６は、更新内容を確認し（ステップＳ５０２）、更新内容が「登録」である場合には（ステップＳ５０２：登録）、以下の処理を実行する。すなわち、ユーザ情報更新部３６は、更新前頻度を「なし」とし（ステップＳ５０３）、登録情報のアクセス頻度を更新後頻度とする（ステップＳ５０４）。また、ユーザ情報更新部３６は、ユーザ情報ＤＢ３８に登録情報のキー情報、属性値、アクセス頻度を登録し（ステップＳ５０５）、ユーザ情報ＤＢ３８に登録したエントリのユーザ情報ＩＤを取得する（ステップＳ５０６）。
【０１５４】
一方、ユーザ情報更新部３６は、更新内容が「変更」である場合には（ステップＳ５０２：変更）、以下の処理を実行する。すなわち、ユーザ情報更新部３６は、ユーザ情報ＤＢ３８を登録情報のキー情報を用いて検索し、エントリを取得する（ステップＳ５０７）。次に、ユーザ情報更新部３６は、取得したエントリ内のアクセス頻度を取得し、更新前頻度とする（ステップＳ５０８）。
【０１５５】
また、ユーザ情報更新部３６は、登録情報のアクセス頻度を更新後頻度とする（ステップＳ５０９）。次に、ユーザ情報更新部３６は、ユーザ情報ＤＢ３８のエントリの属性値とアクセス頻度とを更新する（ステップＳ５１０）。そして、ユーザ情報更新部３６は、ユーザ情報ＤＢ３８を更新したエントリのユーザ情報ＩＤを取得する（ステップＳ５１１）。
【０１５６】
また、ユーザ情報更新部３６は、更新内容が「削除」である場合には（ステップＳ５０２：削除）、ユーザ情報ＤＢ３８を登録情報のキー情報を用いて検索し、エントリを取得する（ステップＳ５１２）。次に、ユーザ情報更新部３６は、エントリ内のアクセス頻度を取得し、更新前頻度とする（ステップＳ５１３）。
【０１５７】
次に、ユーザ情報更新部３６は、更新後頻度を「なし」、すなわち空欄とする（ステップＳ５１４）。そして、ユーザ情報更新部３６は、ユーザ情報ＤＢ３８から取得したエントリを削除する（ステップＳ５１５）。その後、ユーザ情報更新部３６は、ユーザ情報ＩＤを「なし」とする（ステップＳ５１６）。
【０１５８】
また、ユーザ情報更新部３６は、ステップＳ５０６、Ｓ５１１、Ｓ５１６のいずれかの処理を実行すると、更新情報ＤＢ３９に対して、登録情報の更新内容、キー情報、更新前頻度、更新後頻度、ユーザ情報ＩＤを格納したエントリを登録する（ステップＳ５１７）。次に、ユーザ情報更新部３６は、全ての登録情報について処理を行ったか否かを判別し（ステップＳ５１８）、全ての登録情報について処理を行ったと判別した場合には（ステップＳ５１８肯定）、更新データ配信部３３を呼び出して処理を実行させる（ステップＳ５１９）。
【０１５９】
なお、ステップＳ５１９にて更新データ配信部３３は、図１１に示した処理を実行する。その後、ユーザ情報更新部３６は、処理結果を応答し（ステップＳ５２０）、処理を終了する。一方、ユーザ情報更新部３６は、全ての登録情報を処理していない場合には（ステップＳ５１８否定）、登録情報の次の情報からキー情報、属性値、アクセス頻度、更新内容を取得し（ステップＳ５２１）、ステップＳ５０２の処理を実行する。
【０１６０】
続いて、図１６を用いて、要求処理サーバ２０が有するデータ応答部２３が実行する処理の流れについて説明する。図１６は、データ応答部が実行する処理の流れを説明するためのフローチャートである。図１６に示す例では、データ応答部２３は、要求分配サーバ１０からサービス要求を受信する（ステップＳ６０１）。
【０１６１】
次に、データ応答部２３は、サービス要求からキー情報を取得する（ステップＳ６０２）。そして、データ応答部２３は、キー情報からハッシュ値を計算し、ユーザ情報ハッシュテーブル２７の検索を行う（ステップｓ６０３）。次に、データ応答部２３は、検索の結果、ユーザ情報ハッシュテーブル２７にデータがあるか否かを判別する（ステップＳ６０４）。
【０１６２】
そして、データ応答部２３は、データがあると判別した場合には（ステップＳ６０４肯定）、検索したエントリをユーザ情報ハッシュテーブル２７から取得し、取得したエントリの属性値を取得する（ステップＳ６０５）。続いて、データ応答部２３は、要求分配サーバ１０に、応答として属性値、すなわち制御データを送信し（ステップＳ６０６）、処理を終了する。
【０１６３】
一方、データ応答部２３は、検索の結果、ユーザ情報ハッシュテーブル２７にデータがないと判別した場合には（ステップＳ６０４否定）、要求分配サーバ１０に、応答として「データ無し」を送信し（ステップＳ６０７）、処理を終了する。
【０１６４】
次に、図１７を用いて、更新データ応答部２４が実行する処理の流れについて説明する。図１７は、更新データ応答部が実行する処理の流れを説明するためのフローチャートである。まず、更新データ応答部２４は、永続化サーバ３０から更新データの配信を受信する（ステップＳ７０１）。このような場合には、更新データ応答部２４は、更新データの更新内容を確認する（ステップＳ７０２）。
【０１６５】
そして、更新データ応答部２４は、更新データの更新内容が「削除」である場合には（ステップＳ７０２：削除）、ユーザ情報ハッシュテーブル２７から更新データのキー情報と同じキー情報が含まれるエントリを削除する（ステップＳ７０３）。続いて、更新データ応答部２４は、永続化サーバ３０に更新データ応答を送信し（ステップＳ７０４）、処理を終了する。
【０１６６】
一方、更新データ応答部２４は、更新データの更新内容が「削除」以外である場合、すなわち「登録」または「変更」である場合には（ステップＳ７０２：削除以外）、以下の処理を実行する。すなわち、更新データ応答部２４は、ユーザ情報ハッシュテーブル２７に、更新データのキー情報、属性値、アクセス頻度を有するエントリの登録若しくは更新を行い（ステップＳ７０５）、永続化サーバ３０に更新データの応答を送信する（ステップＳ７０４）。
【０１６７】
次に、図１８を用いて、全データ取得部２５が実行する処理の流れについて説明する。図１８は、全データ取得部が実行する処理の流れについて説明するための図である。なお、全データ取得部２５は、要求処理サーバ２０の起動時に、図１８に示す処理を実行する。
【０１６８】
まず、図１８に示す例では、全データ取得部２５は、全データ要求を永続化サーバ３０に送信する（ステップＳ８０１）。次に、全データ取得部２５は、応答として永続化サーバ３０から受信した全データ一覧の最初のエントリを取得する（ステップＳ８０２）。そして、全データ取得部２５は、取得したエントリをユーザ情報ハッシュテーブル２７に登録する（ステップＳ８０３）。
【０１６９】
続いて、全データ取得部２５は、全データ一覧に次のエントリが存在するか否かを判別し（ステップＳ８０４）、次のエントリが存在しないと判別した場合には（ステップＳ８０４否定）、処理を終了する。一方、全データ取得部２５は、次のエントリが存在すると判別した場合には（ステップＳ８０４肯定）、全データ一覧の次のエントリを取得し（ステップＳ８０５）、ステップＳ８０３の処理を実行する。
【０１７０】
次に、図１９を用いて、要求分配サーバ１０が有するサービス応答部１３が実行する処理の流れについて説明する。図１９は、サービス応答部が実行する処理の流れを説明するためのフローチャートである。まず、サービス応答部１３は、クライアント２〜２ｂからサービス要求を受信する（ステップＳ９０１）。
【０１７１】
このような場合には、サービス応答部１３は、サービス要求からキー情報を取得し（ステップＳ９０２）、取得したキー情報を振り分け部１４に渡すことで、処理を実行させる（ステップＳ９０３）。次に、サービス応答部１３は、振り分け部１４から通知された要求処理サーバに対して、サービス要求を送信する（ステップＳ９０４）。
【０１７２】
その後、サービス応答部１３は、サービス要求を送信した要求処理サーバから属性値を受信し、受信した属性値を応答としてクライアントに送信し（ステップＳ９０５）、処理を終了する。
【０１７３】
次に、図２０を用いて、振り分け部１４が実行する処理について説明する。図２０は、振り分け部が実行する処理の流れを説明するためのフローチャートである。なお、図２０に示す処理は、図１９中ステップＳ９０３において実行される処理である。図２０に示す例では、振り分け部１４は、呼び出し元、すなわちサービス応答部１３からキー情報を取得する（ステップＳ１００１）。
【０１７４】
次に、振り分け部１４は、キー情報からハッシュ値を計算し、計算したハッシュ値を用いてノード情報ＤＢ１８を検索し、起点要求処理サーバを決定する（ステップＳ１００２）。次に、振り分け部１４は、キー情報とハッシュ値とを用いてアクセス頻度ハッシュテーブル１９を検索する（ステップＳ１００３）。そして、振り分け部１４は、検索の結果、該当するデータがアクセス頻度ハッシュテーブルに該当するデータが存在するか否かを判別する（ステップＳ１００４）。
【０１７５】
ここで、振り分け部１４は、検索の結果、該当するデータが存在する場合は（ステップＳ１００４肯定）、該当エントリからアクセス頻度と分散用情報とを取得する（ステップＳ１００５）。続いて、振り分け部１４は、アクセス頻度が「Ｌ」か否かを判別する（ステップＳ１００６）。そして、振り分け部１４は、アクセス頻度が「Ｌ」ではない場合には（ステップＳ１００６否定）、アクセス頻度から数値化アクセス頻度を計算する（ステップＳ１００７）。そして、振り分け部１４は、数値化アクセス頻度と起点要求処理サーバとを用いて、要求処理サーバの一覧を作成する（ステップＳ１００８）。なお、ステップＳ１００８に示す処理は、図１２に示す処理と同様の処理を振り分け部１４が実行することにより実現される。
【０１７６】
続いて、振り分け部１４は、要求処理サーバの一覧と分散用情報とを元に、ラウンドロビン等の方法によってサービス要求の振り分け先となる要求処理サーバを特定する（ステップＳ１００９）。次に、振り分け部１４は、分散用情報を更新し（ステップＳ１０１０）、特定した要求処理サーバをサービス応答部１３に通知し（ステップＳ１０１１）、処理を終了する。一方、振り分け部１４は、アクセス頻度ハッシュテーブル１９に該当するエントリが存在しない場合には（ステップＳ１００４否定）、初期アクセス頻度が「１」か否かを判別する（ステップＳ１０１２）。
【０１７７】
そして、振り分け部１４は、初期アクセス頻度が「１」ではない場合には（ステップＳ１０１２否定）、初期アクセス頻度と起点要求処理サーバとを用いて、要求処理サーバの一覧を作成する（ステップＳ１０１３）。なお、ステップＳ１０１２の処理は、ステップＳ１００７と同様の処理を実行することにより、実現される。
【０１７８】
続いて、振り分け部１４は、要求処理サーバの一覧に基づいて、ランダム振り分け等の方法によって、サービス要求の振り分け先となる要求処理サーバを特定し（ステップＳ１０１４）、特定した要求処理サーバを呼び出し元のサービス応答部１３に通知する（ステップＳ１０１１）。また、振り分け部１４は、初期アクセス頻度が「１」である場合には（ステップＳ１０１２肯定）、ステップＳ１００２にて算出したハッシュ値とあらかじめ対応付けられた要求処理サーバを振り分け先として特定する（ステップＳ１０１５）。
【０１７９】
そして、振り分け部１４は、特定した要求処理サーバをサービス応答部１３に通知する（ステップＳ１０１１）。ここで、ステップＳ１０１５の処理は、従来のコンシステントハッシュの手法と同様の手法により特定された要求処理サーバを、サービス要求の振り分け先とする処理である。また、振り分け部１４は、アクセス頻度が「Ｌ」である場合には（ステップＳ１００６肯定）、ステップＳ１０１２の処理を実行する。
【０１８０】
続いて、図２１を用いて、頻度情報更新部１５が実行する処理の流れについて説明する。図２１は、頻度情報更新部が実行する処理の流れを説明するためのフローチャートである。図２１に示す例では、頻度情報更新部１５は、永続化サーバ３０から頻度情報の配信を受信する（ステップＳ１１０１）。
【０１８１】
次に、頻度情報更新部１５は、頻度情報に含まれるキー情報、アクセス頻度、更新内容を取得する（ステップＳ１１０２）。すると、頻度情報更新部１５は、更新内容を確認する（ステップＳ１１０３）。すなわち、頻度情報更新部１５は、更新内容が「削除」であるか、「登録」または「変更」であるかを判別する。
【０１８２】
そして、頻度情報更新部１５は、更新内容が「削除」である場合には（ステップＳ１１０３：削除）、アクセス頻度ハッシュテーブル１９から頻度情報に含まれるキー情報を有するエントリを削除する（ステップＳ１１０４）。続いて、頻度情報更新部１５は、永続化サーバ３０に頻度情報応答を送信し（ステップＳ１１０５）、処理を終了する。
【０１８３】
一方、頻度情報更新部１５は、更新内容が「登録」または「変更」である場合には（ステップＳ１１０３：削除以外）、更新情報のアクセス頻度が「Ｌ」であるか否かを判別する。そして、頻度情報更新部１５は、更新情報のアクセス頻度が「Ｌ」である場合には（ステップＳ１１０６肯定）、ステップＳ１１０４の処理を実行する。
【０１８４】
一方、頻度情報更新部１５は、更新情報のアクセス頻度が「Ｌ」ではない場合には（ステップＳ１１０６否定）、アクセス頻度ハッシュテーブル１９に新たなエントリの登録、または更新を行い（ステップＳ１１１７）、その後、頻度情報応答を送信する（ステップＳ１１０５）。
【０１８５】
次に、図２２を用いて、全頻度情報取得部１６が実行する処理の流れについて説明する。図２２は、全頻度情報取得部が実行する処理の流れを説明するためのフローチャートである。なお、全頻度情報取得部１６は、要求分配サーバ１０の起動時に、図２２に示す処理を実行する。図２２に示す例では、全頻度情報取得部１６は、全頻度情報要求を永続化サーバ３０に送信する（ステップＳ１２０１）。
【０１８６】
次に、全頻度情報取得部１６は、永続化サーバ３０から受信した全頻度情報の最初のエントリを取得する（ステップＳ１２０２）。そして、全頻度情報取得部１６は、アクセス頻度ハッシュテーブル１９に、取得したエントリのアクセス頻度と分散用情報とを登録する（ステップＳ１２０３）。
【０１８７】
次に、全頻度情報取得部１６は、全頻度情報の次エントリが存在するか否かを判別し（ステップＳ１２０４）、存在しない場合には（ステップＳ１２０４否定）、処理を終了する。一方、全頻度情報取得部１６は、全頻度情報の次のエントリが存在する場合には（ステップＳ１２０４肯定）、全頻度情報の次のエントリを取得し（ステップＳ１２０５）、ステップＳ１２０３の処理を実行する。
【０１８８】
［実施例１の効果］
上述したように、要求分配サーバ１０は、キー情報のハッシュ値と、キー情報を含むサービス要求のアクセス頻度とを対応付けたアクセス頻度ハッシュテーブル１９を有する。そして、要求分配サーバ１０は、クライアント２〜２ｂからサービス要求を受信すると、受信したサービス要求に含まれるキー情報をハッシュ値を算出し、算出したハッシュ値と対応付けられたアクセス頻度をアクセス頻度ハッシュテーブル１９から検索する。そして、要求分配サーバ１０は、検索したアクセス頻度に応じて、サービス要求の転送先となる１つまたは複数の要求処理サーバを選択し、選択した要求処理サーバのいずれかにサービス要求を転送する。
【０１８９】
このため、要求分配サーバ１０は、アクセス頻度が低いサービス要求については、従来と同様に１つの要求処理サーバに転送し、アクセス頻度が高いサービス要求については、複数の要求処理サーバに分散させる。結果、情報処理システム１は、リソースを効率的に処理に用いることができるので、要求処理サーバの台数を抑制しつつ、システム全体の処理量を増加させることができる。また、情報処理システム１は、あるキー情報を含むサービス要求のアクセス頻度が１つの要求処理サーバの処理能力を超えた場合や、アクセス頻度が１つの要求処理サーバの処理能力と比較して、十分に小さくない場合にも、サービス要求の処理を継続することができる。
【０１９０】
また、情報処理システム１は、アクセス頻度が高いサービス要求のみを分散させるので、各要求処理サーバ２０〜２０ｄ要求処理サーバの台数を抑制しつつ、システム全体の要求処理量を増加させることができる。
【０１９１】
また、永続化サーバ３０が有す更新データ配信部３３は、ユーザ情報ＤＢ３８の更新要求とともに、更新対象となるキー情報と新たなアクセス頻度とを取得すると、要求分配サーバ１０に対して、更新対象となるキー情報と新たなアクセス頻度とを配信する。そして、要求分配サーバ１０の頻度情報更新部１５は、永続化サーバ３０から更新対象となるキー情報と新たなアクセス頻度とを取得した場合には、取得したキー情報のハッシュ値と新たなアクセス頻度とを対応付けてアクセス頻度ハッシュテーブル１９に登録する。
【０１９２】
このため、情報処理システム１は、利用者によってアクセス頻度の更新が行われた場合には、新たなキー情報と新たなアクセス頻度と要求分配サーバ１０に反映させ、新たなアクセス頻度に応じたサービス要求の分散処理を行う事ができる。
【０１９３】
また、永続化サーバ３０の更新データ配信部３３は、更新対象となるキー情報と新たなアクセス頻度とを取得すると、更新対象となるキー情報と新たなアクセス頻度とに基づいて、実行要求の分配先となる１つ又は複数の要求処理サーバを特定する。そして、更新データ配信部３３は、更新対象となるキー情報を含むサービス要求の処理を実行するために必要な制御データを特定した要求処理サーバに送信する。
【０１９４】
このため、情報処理システム１は、アクセス頻度の更新が行われた場合にも、サービス要求の処理を実行するために必要な制御データが要求処理サーバに存在しない状態を防ぎ、サービス要求の処理を継続することができる。
【０１９５】
なお、更新データ配信部３３は、アクセス頻度を低くする更新が行われた場合には、不要となる制御データを記憶する要求処理サーバを特定し、特定した要求処理サーバに制御データを削除させる。このため、情報処理システム１は、各要求処理サーバ２０〜２０ｄが記憶すべき制御データの量を削減することができる。この結果、情報処理システム１は、全サービス要求の処理に必要な要求処理サーバ２０〜２０ｄの台数を削減することができる。
【０１９６】
また、更新データ配信部３３は、特定した要求処理サーバに対して、キー情報と制御データとを送信した後に、要求分配サーバ１０に対して、キー情報と新たなアクセス頻度とを配信する。具体的には、更新データ配信部３３は、前記要求分配サーバが記憶するハッシュテーブルに新たな発行頻度を追加する場合、又は、前記要求分配サーバが記憶するハッシュテーブルの発行頻度を増加させる場合には、前記要求処理サーバに対して、前記キー情報と前記制御データとを配信した後に、前記要求分配サーバに対して、前記キー情報と前記新たな発行頻度とを配信する。このため、情報処理システム１は、サービス要求を転送した要求処理サーバに制御データが存在しないという状態を防ぐことができる。
【０１９７】
また、更新データ配信部３３は、前記要求分配サーバが記憶するハッシュテーブルから前記発行頻度を削除する場合、又は、前記要求分配サーバが記憶するハッシュテーブルの発行頻度を減少させる場合には、当該要求分配サーバに対して、前記キー情報と前記新たな発行頻度とを配信した後に、前記要求処理サーバに対して、前記キー情報と前記制御データとを配信するこのため、情報処理システム１は、サービス要求を転送すべきではない要求処理サーバにサービス要求の転送を行うという状態を防ぐことができる。
【実施例２】
【０１９８】
上述した実施例１では、更新データ配信部３０が通知順序を制御して、要求分配サーバ１０と、各要求処理サーバ２０〜２０ｄへ、アクセス頻度や制御データの更新を通知する例を示した。しかしながら、アクセス頻度や制御データの更新方法はこの限りではない。
【０１９９】
例えば、永続化サーバ３０は、要求分配サーバ１０と各要求処理サーバ２０〜２０ｄにアクセス頻度や制御データを送信する順序を示す順序制御情報を有し、要求処理サーバ２０〜２０ｄ、または、要求分配サーバ１０が、定期的に順序制御情報を参照する等の手法により、アクセス頻度や制御データを更新してもよい。そこで、実施例２では、実施例２に関わる要求処理サーバおよび要求分配サーバが、定期的に順序制御情報を確認する例について説明する。
【０２００】
なお、実施例２に係る情報処理システム１ａの構成は、図１に示した情報処理システム１と同様の構成を有するものとして、詳細な説明を省略する。また、以下の説明においては、実施例１と同様の機能を発揮するものについては、実施例１と同じ符号を付し、説明を省略する。
【０２０１】
まず、図２３を用いて、実施例２に係る要求分配サーバ１０ａの機能構成について説明する。図２３は、実施例２に係る要求分配サーバの機能構成を説明するための図である。図２３に示す例では、要求分配サーバ１０ａは、制御部１２と同様の機能を有する制御部１２ａを有する。また、制御部１２ａは、頻度情報要求部１５ａを有する。
【０２０２】
頻度情報要求部１５ａは、定期的に、実施例２に係る永続化サーバ３０ａへ、新たなアクセス頻度の送信要求である頻度情報要求を送信する。そして、頻度情報要求部１５ａは、永続化サーバ３０ａからの応答に含まれる頻度情報に基づいて、アクセス頻度ハッシュテーブル１９を更新する。
【０２０３】
例えば、頻度情報要求部１５ａは、定期的に、永続化サーバ３０ａに対して頻度情報要求を送信する。そして、頻度情報要求部１５ａは、永続化サーバ３０ａから、更新対象となるキー情報、新たなアクセス頻度、更新内容を含む応答を受信する。このような場合には、頻度情報要求部１５ａは、以下の処理を実行する。
【０２０４】
すなわち、頻度情報要求部１５ａは、受信した応答の更新内容が「削除」である場合、または、受信した応答の更新内容が「変更」もしくは「登録」であり、新たなアクセス頻度が「Ｌ」である場合には、アクセス頻度ハッシュテーブル１９から、応答のキー情報に対応するエントリを検索し、検索したエントリを削除する。
【０２０５】
また、頻度情報要求部１５ａは、受信した応答の更新内容が「変更」もしくは「登録」であり、新たなアクセス頻度が「Ｌ」以外である場合には、応答のキー情報と新たなアクセス頻度とをアクセス頻度ハッシュテーブル１９に登録する。
【０２０６】
次に、図２４を用いて、実施例２に係る要求処理サーバ２０ｅについて説明する。図２４は、実施例２に係る要求処理サーバの機能構成を説明するための図である。なお、情報処理システム１ａは、要求処理サーバ２０ｅと同様の機能を発揮する複数の要求処理サーバを有するものとする。
【０２０７】
図２４に示す例では、要求処理サーバ２０ｅは、制御部２２と同様の機能を発揮する制御部２２ａを有する。また、制御部２２ａは、更新データ要求部２４ａを有する。更新データ要求部２４ａは、定期的に、永続化サーバ３０ａに新たな制御データの送信要求である更新データ要求を送信する。そして、更新データ要求部２４ａは、永続化サーバ３０ａからの応答に応じて、ユーザ情報ハッシュテーブル２７を更新し、更新データ応答を永続化サーバ３０ａに送信する。
【０２０８】
例えば、更新データ要求部２４ａは、永続化サーバ３０ａから、キー情報、属性値、アクセス頻度、更新内容を含む応答を受信する。このような場合には、更新データ要求部２４ａは、更新データ応答部２４と同様の処理を実行し、ユーザ情報ハッシュテーブル２７を更新する。その後、更新データ要求部２４ａは、永続化サーバ３０ａに対して、更新データ応答を送信する。
【０２０９】
次に、図２５を用いて、永続化サーバ３０ａの機能構成について説明する。図２５は、実施例２に係る永続化サーバの機能構成を説明するための図である。図２５に示す例では、永続化サーバ３０ａは、制御部３２と同様の機能を発揮する制御部３２ａおよび記憶部３７と同様の機能を発揮する記憶部３７ａを有する。また、制御部３２ａは、更新データ制御部４１、更新データ応答部４２、頻度情報応答部４３を有する。また、記憶部３７ａは、更新情報ＤＢ３９ａ、順序制御情報ＤＢ４４を有する。
【０２１０】
ここで、図２６、図２７を用いて、更新情報ＤＢ３９ａおよび順序制御情報ＤＢ４４について説明する。まず、図２６を用いて、更新情報ＤＢ３９ａについて説明する。図２６は、実施例２に係る更新情報ＤＢを説明するための図である。図２６に示す例では、更新情報ＤＢ３９ａは、図１０に示す更新情報ＤＢ３９の各エントリに、順序化処理を追加したエントリを有する。
【０２１１】
ここで、順序化処理とは、該当エントリの更新内容について、要求分配サーバ１０および要求処理サーバ２０ｅの更新を行う順序が確定したか否かを示す情報である。例えば、該当エントリの更新内容について、更新を行う順序が確定した場合には「処理済み」が格納され、更新を行う順序が確定していない場合には、空欄、すなわち「なし」となる。
【０２１２】
次に、図２７を用いて、順序制御情報ＤＢ４４について説明する、図２７は、順序制御情報ＤＢを説明するための図である。図４４に示す例では、順序制御情報ＤＢ４４は、順序ＩＤ、更新情報ＩＤ、処理順序、処理内容、サーバ名が格納されたエントリを有する。
【０２１３】
ここで、順序ＩＤとは、各エントリを特定するための情報である。また、更新情報ＩＤとは、更新情報ＤＢ３９ａの対応するエントリを特定するための情報である。また、処理順序とは、どのような順序で要求分配サーバ１０および要求処理サーバ２０ｅが更新処理を行うべきかを示す値であり、値が少ないエントリほど、より先に処理すべきであることを示す。
【０２１４】
また、処理内容とは、該当するエントリのサーバ名が示すサーバ、すなわち、要求分散サーバ１０ａ、または、要求処理サーバ２０ｅに対して送信する応答に含める更新内容を示す情報であり、「登録」、「変更」、「削除」のいずれかの値を取る。また、サーバ名とは、該当エントリの内容を含む応答の送信先となるサーバ名を示す情報である。
【０２１５】
例えば、図２７に示す例では、順序ＩＤ「１」が示すエントリは、更新情報ＤＢ３９ａが有する各エントリのうち、更新情報ＩＤ「１」のエントリの更新を行う際に用いられる情報であり、処理順序「１」で、処理内容「登録」の応答を「要求処理サーバＡ」が示す要求処理サーバに対して送信する旨を示す。また、順序ＩＤ「６」が示すエントリは、更新情報ＤＢ３９ａが有する各エントリのうち、更新情報ＩＤ「１」のエントリの更新を行う際に用いられる情報であり、処理順序「２」で、処理内容「登録」の応答を「要求分配サーバ」に対して送信する旨を示す。
【０２１６】
次に、図２５に戻って、制御部３２ａが有する更新データ制御部４１、更新データ応答部４２、頻度情報応答部４３が実行する処理について説明する。更新データ制御部４１は、更新データ配信部３３と同様の機能を有する。また、更新データ制御部４１は、ユーザ情報更新部３６により、ユーザ情報ＤＢ３８および更新情報ＤＢ３９ａが更新された場合には、以下の処理を実行する。
【０２１７】
まず、更新データ制御部４１は、更新情報ＤＢ３９ａの各エントリに含まれるキー情報、更新前頻度、更新後頻度、更新内容と、ユーザ情報ＩＤで関連付けられたユーザ情報ＤＢ３８のエントリに含まれる、更新前頻度と、更新後頻度と、キー情報とを取得する。そして、更新データ制御部４１は、取得したキー情報の更新を行うべき要求処理サーバの一覧を、更新内容に応じて作成する。
【０２１８】
そして、更新データ制御部４１は、更新内容、更新前頻度、数値化更新後頻度の組み合わせを用いて、更新データの配信と、頻度情報の配信との処理順序を決定する。その後、更新データ制御部４１は、順序制御情報ＤＢ４４に、決定した処理順序を示すエントリを格納する。
【０２１９】
具体的には、更新データ制御部４１は、更新情報ＤＢ３９ａから順序化処理が「なし」（空欄）のエントリを１つ取り出し、取り出したエントリに含まれるキー情報のハッシュ値を計算する。そして、更新データ制御部４１は、算出したハッシュ値をキーとして、ノード情報ＤＢ４０を検索し、起点要求処理サーバを特定する。
【０２２０】
また、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリに含まれる更新前頻度と、更新後頻度とを数値化し、数値化更新前頻度と数値化更新後頻度とを取得する。そして、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリに含まれる更新内容が「削除」であるか、「登録」であるか、「変更」であるかを判別し、判別した更新内容に応じて、以下の処理を行う。
【０２２１】
すなわち、更新データ制御部４１は、更新内容が「削除」である場合は、更新情報ＤＢ３９ａから取得したエントリに含まれる、ユーザ情報ＩＤ、更新内容「削除」、処理順序「１」、サーバ名「要求分配サーバ」を有するエントリを、順序制御情報ＤＢ４４に追加する。また、更新データ制御部４１は、起点要求処理サーバ、数値化更新前頻度、ノード情報ＤＢ４０を用いて、更新データ配信部３３が要求処理サーバの一覧を作成する処理と同様の操作を行い、要求処理サーバの一覧を作成する。
【０２２２】
そして、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリに含まれるユーザ情報ＩＤ、更新内容「削除」、処理順序「２」を有し、作成した一覧の各要求処理サーバをサーバ名とするエントリを、順序制御情報ＤＢ４４に追加する。
【０２２３】
一方、更新データ制御部４１は、更新内容が「登録」である場合、または、更新内容が「変更」であり、かつ、数値化更新後頻度が数値化更新後頻度以上である場合には、以下の処理を実行する。すなわち、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリの、ユーザ情報ＩＤ、更新内容、処理順序「１」を有し、作成した一覧の各要求処理サーバをサーバ名とするエントリを、順序制御情報ＤＢ４４に追加する。また、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリの、ユーザ情報ＩＤ、更新内容、処理順序「２」を有し、サーバ名を要求分配サーバ１０ａとするエントリを順序制御情報ＤＢ４４に追加する。
【０２２４】
また、更新データ制御部４１は、更新内容が「変更」であり、数値化更新後頻度が数値化更新前頻度未満である場合には、起点要求処理サーバと、数値化更新前頻度と、ノード情報ＤＢ４０とを用いて、削除対象一覧を作成する。また、更新データ制御部４１は、起点要求処理サーバと、数値化更新後頻度と、ノード情報ＤＢ４０とを用いて、更新対象一覧を作成する。そして、更新データ制御部４１は、削除対象一覧から更新対象一覧に存在する要求処理サーバを削除する。
【０２２５】
その後、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリの、ユーザ情報ＩＤ、更新内容、処理順序「１」を有し、サーバ名を要求分配サーバ１０ａとするエントリを順序制御情報ＤＢ４４に追加する。また、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリの、ユーザ情報ＩＤ、更新内容、処理順序「２」、とし、更新対象一覧の各要求処理サーバをサーバ名とするエントリを順序制御情報ＤＢ４４に追加する。
【０２２６】
さらに、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリの、ユーザ情報ＩＤ、更新内容「削除」、処理順序「３」、としを有し、削除対象一覧の各要求処理サーバをサーバ名とするエントリを順序制御情報ＤＢ４４に追加する。なお、更新データ制御部４１は、順序制御情報ＤＢ４４にエントリを追加した後に、更新情報ＤＢ３９ａから取得したエントリの順序化処理に「処理済み」を格納する。また、更新データ制御部４１は、更新情報ＤＢ３９ａから順序化処理が空欄であるエントリがなくなるまで、処理を繰り返す。
【０２２７】
更新データ応答部４２は、要求処理サーバ２０ｅから更新データ要求を受信すると、更新データ要求の送信元となる要求処理サーバ２０ｅを特定する。そして、更新データ応答部４２は、順序制御情報ＤＢ４４の先頭エントリの更新情報ＩＤと更新情報ＩＤが同一のエントリを取得する。
【０２２８】
次に、更新データ応答部４２は、取得したエントリのうち、処理順序が最も少ない値のエントリを取り出し、取り出したエントリの中に、更新データ要求の送信元となる要求処理サーバ２０ｅをサーバ名とするエントリが存在するか否かを判別する。そして、更新データ応答部４２は、取り出したエントリの中に、更新データ要求の送信元となる要求処理サーバ２０ｅをサーバ名とするエントリが存在する場合には、このエントリの更新情報のユーザ情報ＩＤが指定するエントリをユーザ情報ＤＢ３８から取得する。
【０２２９】
そして、更新データ応答部４２は、ユーザ情報ＤＢ３８から取得したエントリのキー情報と属性値、および、順序制御情報ＤＢ４４から取得したエントリの処理内容を含む応答を更新データ要求の送信元となる要求処理サーバ２０ｅへ送信する。
【０２３０】
ここで、更新データ応答部４２は、処理内容が「削除」以外の場合には、更新情報ＤＢ３９ａから取り出したエントリのユーザ情報ＩＤが示すエントリをユーザ情報ＤＢ３８から取得する。そして、更新データ応答部４２は、ユーザ情報ＤＢ３８から取得したエントリのキー情報、属性値とを有し、順序制御情報ＤＢ４４から取得したエントリの処理内容を含む応答を更新データ要求の送信元となる要求処理サーバ２０ｅへ送信する。
【０２３１】
一方、更新データ応答部４２は、処理内容が「削除」の場合には、更新情報ＤＢ３９ａから取り出したエントリのキー情報と、順序制御情報ＤＢ４４から取り出したエントリの処理内容とを応答として、送信する。その後、更新データ応答部４２は、応答を送信したエントリを順序制御情報ＤＢ４４から削除する。
【０２３２】
さらに、更新データ応答部４２は、順序制御情報ＤＢ４４の先頭エントリと更新情報ＩＤが同じエントリが、削除を行ったエントリのみとなる場合には、更新情報ＤＢ３９ａから取り出したエントリを削除する。なお、更新データ応答部４２は、順序制御情報ＤＢ４４から取り出したエントリに更新データ要求の送信元となる要求処理サーバ２０ｅをサーバ名とスルエントリが存在しない場合には、更新データ無しを応答として送信する。
【０２３３】
頻度情報応答部４３は、要求分配サーバ１０ａから頻度情報要求を受信すると、順序制御情報ＤＢ４４に従って、頻度情報を要求分配サーバ１０ａに応答として送信する。具体的には、頻度情報応答部４３は、頻度情報要求を受信すると、順序制御情報ＤＢ４４の先頭エントリと同じ更新情報ＩＤを有するエントリを取得する。
【０２３４】
次に、頻度情報応答部４３は、取得したエントリから処理順序が最も小さいエントリを取り出す。そして、頻度情報応答部４３は、取り出したエントリに、頻度情報要求の送信元である要求分配サーバ１０ａをサーバ名とするエントリが存在する場合には、該当するエントリの更新情報ＩＤが示すエントリを更新情報ＤＢ３９ａから取得する。また、頻度情報応答部４３は、更新情報ＤＢ３９ａから取得したエントリのキー情報、更新後頻度、を有し、順序制御情報ＤＢ４４から取り出したエントリの処理内容を有する応答を、要求分配サーバ１０ａに送信するとともに、順序制御情報ＤＢ４４から取り出したエントリを削除する。
【０２３５】
また、頻度情報応答部４３は、順序制御情報ＤＢ４４の先頭エントリと同じ更新情報ＩＤを有するエントリが削除を行ったエントリのみである場合には、更新情報ＤＢ３９ａから取得したエントリを削除する。また、頻度情報応答部４３は、順序制御情報ＤＢ４４の先頭エントリと同じ更新情報ＩＤを有するエントリに、頻度情報要求元の要求分配サーバ１０ａをサーバ名とするエントリが存在しない場合には、頻度情報の更新が無い旨を応答として送信する。
【０２３６】
次に、図２８を用いて、更新データ制御部４１が実行する処理の流れについて説明する。図２８は、実施例２に係る更新データ制御部が実行する処理の流れを説明するためのフローチャートである。なお、図２８に示す各処理のうち、図１１に示すステップＳ１０１〜１２３と同様の処理については、同一のステップ番号を付し、説明を省略する。
【０２３７】
まず、更新データ制御部４１は、更新情報ＤＢ３９ａの順序化処理が「処理済み」ではないエントリを１つ取得する（ステップＳ１２４）。そして、更新データ制御部４１は、ステップＳ１０２〜Ｓ１０５を実行する。また、更新データ制御部４１は、更新情報に含まれる更新内容が「削除」である場合には（ステップＳ１０５：削除）、更新情報ＤＢ３９ａから取得したエントリのユーザ情報ＩＤ、更新内容「削除」、処理順序「１」、サーバ名「要求分配サーバ」を含むエントリを順序制御情報ＤＢ４４に追加する（ステップＳ１２５）。
【０２３８】
また、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリのユーザ情報ＩＤ、更新内容「削除」、処理順序「２」とし、ステップＳ１０７にて生成した一覧の要求処理サーバをサーバ名とするエントリを順序制御情報ＤＢ４４に追加する（ステップＳ１２６）。
【０２３９】
次に、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリの「順序化処理」を「処理済み」に更新する（ステップＳ１２７）。そして、更新データ制御部４１は、更新情報ＤＢ３９ａの全エントリが「処理済み」となっているか否かを判別し（ステップＳ１２８）、全エントリが「処理済み」となっている場合には（ステップＳ１２８肯定）、処理を終了する。
【０２４０】
また、更新データ制御部４１は、ステップＳ１１４の処理を実行すると、更新情報ＤＢ３９ａから取得したエントリのユーザ情報ＩＤ、更新内容、処理順序「１」とし、要求分配サーバ１０ａをサーバ名とするエントリを順序制御情報ＤＢ４４に追加する（ステップＳ１２９）。また、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリのユーザ情報ＩＤ、更新内容、処理順序「２」とし、更新対象一覧の各要求処理サーバをサーバ名とするエントリを順序制御情報ＤＢ４４に追加する（ステップＳ１３０）。
【０２４１】
また、更新データ制御部４１は、ステップＳ１２０の処理を実行すると、更新情報ＤＢ３９ａから取得したエントリのユーザ情報ＩＤ、更新内容、処理順序「１」とし、サーバ名を要求分配サーバ１０１０ａとするエントリを順序制御情報ＤＢ４４に追加する（ステップＳ１３１）。また、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリのユーザ情報ＩＤ、更新内容、処理順序「２」とし、ステップＳ１１９にて作成した更新対象一覧の要求処理サーバをサーバ名とするエントリを順序制御情報ＤＢ４４に追加する（ステップＳ１３２）。
【０２４２】
そして、更新データ制御部４１は、更新情報ＤＢ３９ａから取得したエントリのユーザ情報ＩＤ、更新内容、処理順序「３」とし、ステップＳ１２０にて作成した削除対象一覧の要求処理サーバをサーバ名とするエントリを順序制御情報ＤＢ４４に追加する（ステップＳ１３３）。なお、更新データ制御部４１は、全エントリが「処理済み」ではない場合には（ステップＳ１２８否定）、更新情報ＤＢ３９ａの各エントリのうち「順序化処理」が「処理済み」ではない次のエントリを取得する（ステップＳ１３４）。
【０２４３】
次に、図２９を用いて、更新データ応答部４２が実行する処理の流れについて説明する。図２９は、更新データ応答部が実行する処理の流れを説明するための図である。まず、更新データ応答部４２は、要求処理サーバ２０ｅから更新データ要求を受信する（ステップＳ１３０１）。このような場合には、更新データ応答部４２は、更新データ要求の送信元を特定する（ステップＳ１３０２）。なお、以下の説明においては、更新データ応答部４２は、更新データ要求の送信元として、更新処理サーバ２０ｅを特定したものとする。
【０２４４】
次に、更新データ応答部４２は、順序制御情報ＤＢ４４の先頭エントリと同一の更新情報ＩＤを有するエントリをすべて取得し、順序制御一覧とする（ステップＳ１３０３）。次に、更新データ応答部４２は、順序制御一覧から、処理順序が最も小さいエントリを全て取得する（ステップＳ１３０４）。次に、更新データ応答部４２は、ステップＳ１３０４にて取得したエントリに、ステップＳ１３０２にて特定した要求処理サーバ２０ｅをサーバ名とするエントリが含まれるか否かを判別する（ステップＳ１３０５）。
【０２４５】
そして、更新データ応答部４２は、ステップＳ１３０４にて取得したエントリに、要求処理サーバ２０ｅをサーバ名とするエントリが含まれない場合には（ステップＳ１３０５否定）、更新情報なしを応答として送信し（ステップＳ１３０６）、処理を終了する。一方、更新データ応答部４２は、ステップＳ１３０４にて取得したエントリに、要求処理サーバ２０ｅをサーバ名とするエントリが含まれる場合には（ステップＳ１４０５肯定）、該当エントリの更新情報ＩＤが示すエントリを更新情報ＤＢ３９ａから選択する（ステップＳ１３０７）。
【０２４６】
続いて、更新データ応答部４２は、順序制御情報ＤＢ４４から取得したエントリの処理内容を確認する（ステップＳ１３０８）。そして、更新データ応答部４２は、処理内容が「削除」である場合には（ステップＳ１３０８：削除）、更新情報ＤＢ３９ａから選択したエントリのキー情報と、順序制御情報ＤＢ４４から取得したエントリの処理内容とを更新データ応答とする（ステップＳ１３０９）。
【０２４７】
そして、更新データ応答部４２は、送信元の要求処理サーバ２０ｅに応答を送信する（ステップＳ１３１０）。また、更新データ応答部４２は、順序制御情報ＤＢ４４から取得したエントリを削除し（ステップＳ１３１１）、順序制御一覧が、削除したエントリのみか否かを判別する（ステップＳ１３１２）。
【０２４８】
そして、更新データ応答部４２は、順序制御一覧が削除したエントリのみである場合には（ステップＳ１３１２肯定）、更新情報ＤＢ３９ａから取得したエントリを削除し（ステップＳ１３１３）、処理を終了する。また、更新データ応答部４２は、順序制御一覧が削除したエントリ以外にも存在する場合は（ステップＳ１３１２否定）、そのまま処理を終了する。
【０２４９】
また、更新データ応答部４２は、順序制御情報ＤＢ４４から取得したエントリの処理内容が「削除」ではない場合には（ステップＳ１３０８：削除以外）、更新情報ＤＢ３９ａから取得したエントリのユーザ情報ＩＤが示すエントリをユーザ情報ＤＢ３８から取得する（ステップＳ１３１４）。そして、更新データ応答部４２は、ユーザ情報ＤＢ３８から取得したエントリのキー情報と属性値、および、順序制御情報ＤＢ４４から取得したエントリの処理内容とを応答とする（ステップＳ１３１５）。
【０２５０】
次に、図３０を用いて、頻度情報応答部４３が実行する処理の流れを説明する。図３０は、頻度情報応答部が実行する処理の流れを説明するためのフローチャートである。図３０に示す例では、頻度情報応答部４３は、要求分配サーバ１０ａから頻度情報要求を受信する（ステップＳ１４０１）。このような場合には、頻度情報応答部４３は、頻度情報要求に送信元である要求分配サーバ１０ａを特定する（ステップＳ１４０２）。
【０２５１】
次に、頻度情報応答部４３は、更新制御情報ＤＢ４４の先頭エントリと同一の更新情報ＩＤを有するエントリをすべて取得し、順序制御一覧とする（ステップＳ１４０３）。次に、頻度情報応答部４３は、順序制御一覧から、処理順序が最も小さいエントリを全て取得する（ステップＳ１４０４）。次に、頻度情報応答部４３は、ステップＳ１４０４にて取得したエントリに、ステップＳ１４０２にて特定した要求分配サーバ１０ａをサーバ名とするエントリが含まれるか否かを判別する（ステップＳ１４０５）。
【０２５２】
そして、頻度情報応答部４３は、ステップＳ１４０４にて取得したエントリに、要求分配サーバ１０ａをサーバ名とするエントリが含まれない場合には（ステップＳ１４０５否定）、頻度情報なしを応答として要求分配サーバ１０ａに送信し（ステップＳ１４０６）、処理を終了する。一方、頻度情報応答部４３は、ステップＳ１４０４にて取得したエントリに、要求分配サーバ１０ａをサーバ名とするエントリが含まれる場合には（ステップＳ１４０５肯定）、該当エントリの更新情報ＩＤが示すエントリを更新情報ＤＢ３９ａから選択する（ステップＳ１４０７）。
【０２５３】
続いて、頻度情報応答部４３は、順序制御情報ＤＢ４４から取得したエントリのキー情報、更新後頻度とを有し、順序制御情報ＤＢ４４から取得したレコードの処理内容を応答とする（ステップＳ１４０８）。そして、頻度情報応答部４３は、送信元の要求分配サーバ１０ａに応答を送信する（ステップＳ１４０９）。また、頻度情報応答部４３は、順序制御情報ＤＢ４４から取得したエントリを削除し（ステップＳ１４１０）、順序制御一覧が、削除したエントリのみか否かを判別する（ステップＳ１４１１）。
【０２５４】
そして、頻度情報応答部４３は、順序制御一覧が削除したエントリのみである場合には（ステップＳ１４１１肯定）、更新情報ＤＢ３９ａから取得したエントリを削除し（ステップＳ１４１２）、処理を終了する。また、頻度情報応答部４３は、順序制御一覧が削除したエントリ以外にも存在する場合は（ステップＳ１４１１否定）、そのまま処理を終了する。
【０２５５】
次に、図３１を用いて、要求処理サーバ２０ｅが有する更新データ要求部２４ａが実行する処理の流れについて説明する。図３１は、更新データ要求部が実行する処理の流れを説明するための図である。例えば、図３１に示す例では、更新データ要求部２４ａは、定期的に永続化サーバへ更新データ要求を送信する（ステップＳ１５０１）。
【０２５６】
そして、更新データ要求部２４ａは、更新データ応答がデータ無しか否かを判別し（ステップＳ１５０２）、データ無しである場合には（ステップＳ１５０２肯定）、そのまま処理を終了する。一方、更新データ要求部２４ａは、更新データ応答がデータ無しでは無い場合には（ステップＳ１５０２否定）、更新データ応答から、更新対象となるデータを取得する（ステップＳ１５０３）。
【０２５７】
次に、更新データ要求部２４ａは、更新対象となるデータの更新内容を確認する（ステップＳ１５０４）。そして、更新データ要求部２４ａは、更新内容が「削除」である場合には（ステップＳ１５０４：削除）、ユーザ情報ハッシュテーブル２７から、更新対象となるエントリを削除し（ステップＳ１５０５）、処理を終了する。
【０２５８】
一方、更新データ要求部２４ａは、更新データの更新内容が削除以外である場合には（ステップＳ１５０４：削除以外）、ユーザ情報ハッシュテーブル２７のエントリの追加・変更を行い（ステップＳ１５０６）、処理を終了する。
【０２５９】
次に、図３２を用いて、要求分配サーバ１０ａが有する頻度情報要求部１５ａが実行する処理の流れを説明する。図３２は、頻度情報要求部が実行する処理の流れを説明するためのフローチャートである。例えば、図３２に示す例では、頻度情報要求部１５ａは、定期的に永続化サーバ３０ａに、頻度情報要求を送信する（ステップＳ１６０１）。
【０２６０】
そして、頻度情報要求部１５ａは、頻度情報応答がデータなしか否かを判別し（ステップＳ１６０２）、データなしである場合には（ステップＳ１６０２肯定）、処理を終了する。一方、頻度情報要求部１５ａは、頻度情報応答がデータなしではない場合は（ステップＳ１６０２否定）、頻度情報に含まれるキー情報、アクセス頻度、更新内容を取得する（ステップＳ１６０３）。
【０２６１】
次に、頻度情報要求部１５ａは、更新内容を確認し（ステップＳ１６０４）、更新内容が「削除」である場合には（ステップＳ１６０４：削除）、アクセス頻度ハッシュテーブル１９から、該当エントリを削除する（ステップＳ１６０５）。また、頻度情報要求部１５ａは、頻度情報の更新内容が「削除」ではない場合には（ステップＳ１６０４：削除以外）、アクセス頻度が「Ｌ」であるか否かを判別する（ステップＳ１６０６）。
【０２６２】
そして、頻度情報要求部１５ａは、アクセス頻度が「Ｌ」である場合には（ステップＳ１６０６肯定）、ステップＳ１６０５の処理を実行する。一方、頻度情報要求部１５ａは、アクセス頻度が「Ｌ」ではない場合には（ステップＳ１６０６否定）、アクセス頻度ハッシュテーブル１９に該当エントリの追加・更新を行い（ステップＳ１６０７）、処理を終了する。
【０２６３】
［実施例２の効果］
上述したように、頻度情報要求部１５ａは、永続化サーバ３０ａに対して、キー情報と新たなアクセス頻度との配信を要求する頻度情報要求を所定の時間間隔で送信する。また、更新データ要求部２４ａは、永続化サーバ３０ａに対して、キー情報と当該キー情報を含むサービス要求の処理に必要な制御データの配信を要求する更新データ要求を所定の時間間隔で送信する。
【０２６４】
そして、永続化サーバ３０ａの更新データ応答部４２は、要求処理サーバ２０ｅから更新データ要求を受信した場合には、キー情報と当該キー情報を含むサービス要求の処理に必要な制御データを配信する。また、永続化サーバ３０ａの頻度情報応答部４３は、要求分配サーバ１０ａから頻度情報要求を受信した場合には、キー情報と新たなアクセス頻度とを配信する。ここで、更新データ応答部４２および頻度情報応答部４３は、予め生成された順序制御情報ＤＢ４４が示す順序に従って各情報を配信する。
【０２６５】
このため、情報処理システム１ａは、永続化サーバ３０ａが記憶するユーザ情報ＤＢ３８が更新されるたびに、要求分配サーバ１０ａおよび要求処理サーバ２０ｅの更新を行わずとも、サービス要求の分散処理を正しく実行することができる。
【０２６６】
また、情報処理システム１ａは、要求分配サーバ１０ａと要求処理サーバ２０ｅがそれぞれ異なるタイミングで更新を要求した場合にも、要求処理サーバ２０ｅに対してキー情報と制御データとを送信した後に、要求分配サーバ１０ａに対してキー情報とアクセス頻度とを送信する。この結果、情報処理システム１ａは、サービス要求が転送された要求処理サーバ２０ｅに、処理の実行に必要な制御データが存在しないという状態を防ぐことができる。
【実施例３】
【０２６７】
上述した実施例１および実施例２では、キー情報ごとに予め定められたアクセス頻度に応じて、サービス要求の分散を行う例について説明した。しかし、実施例はこれに限定されるものではなく、例えば、時間経過によるアクセス頻度の傾向に生じた変化を動的に反映してもよい。そこで、実施例３では、アクセス頻度の変化を動的に反映する情報処理システム１ｂについて説明する。
【０２６８】
なお、実施例３に係る情報処理システム１ｂの構成は、情報処理システム１や情報処理システム１ａと同様の構成を有するものとして、詳細な説明を省略する。また、以下の説明においては、実施例１、および、実施例２と同様の機能を発揮するものについては、実施例１および実施例２と同じ符号を付し、説明を省略する。
【０２６９】
まず、図３３を用いて、実施例３に係る要求分配サーバ１０ｂについて説明する。図３３は、実施例３に係る要求分配サーバ１０ｂの機能構成を説明するための図である。図３３に示す例では、要求処理サーバ１０ｂは、制御部１２と同様の機能を発揮する制御部１２ｂ、および記憶部１７と同様の機能を発揮する記憶部１７ａを有する。また、制御部１２ｂは、サービス応答部１３ａ、アクセス頻度更新要求部１６ａを有する。また、記憶部１７は、アクセス頻度ハッシュテーブル１９ａを有する。
【０２７０】
ここで、図３４を用いて、アクセス頻度ハッシュテーブル１９ａについて説明する。図３４は、実施例３に係るアクセス頻度ハッシュテーブルを説明するための図である。図３４に示す例では、アクセス頻度ハッシュテーブル１９ａは、アクセス頻度ハッシュテーブル１９と同様のエントリに、要求回数を追加したエントリを有する。ここで、要求回数とはクライアントからサービス要求を受信した回数である。
【０２７１】
図３３に戻って、サービス応答部１３ａは、サービス応答部１３と同様の機能を発揮するとともに、以下の処理を実行する。具体的には、サービス応答部１３ａは、クライアントからサービス要求を受信すると、受信したサービス要求に含まれるキー情報を取得する。そして、サービス応答部１３ａは、取得したキー情報が格納されたエントリをアクセス頻度ハッシュテーブル１９ａから検索し、検索したエントリの要求回数を１インクリメントする。
【０２７２】
また、サービス応答部１３ａは、取得したキー情報が格納されたエントリが、アクセス頻度ハッシュテーブル１９ａには存在しないが、取得したキー情報と対応する制御データが要求処理サーバに１０ｂに存在する場合には、取得したキー情報と、アクセス頻度「Ｌ」と、要求回数「１」とを対応付けたエントリをアクセス頻度ハッシュテーブル１９ａに追加する。
【０２７３】
アクセス頻度更新要求部１６ａは、一定周期で、アクセス頻度ハッシュテーブル１９ａを参照し、各エントリに格納された要求回数から、各キー情報を含むサービス要求のアクセス頻度を再計算する。そして、アクセス頻度更新要求部１６ａは、算出したアクセス頻度を実施例３に係る永続化サーバ３０ｂに送信する。
【０２７４】
具体的には、アクセス頻度更新要求部１６ａは、事前に決定した一定の周期で、アクセス頻度ハッシュテーブル１９ａの各エントリに格納されたキー情報と要求回数とを取得する。次に、アクセス頻度更新要求部１６ａは、単一の要求処理サーバ（例えば、要求処理サーバ２０）が処理できる要求回数に基づく基本要求回数と、アクセス頻度ハッシュテーブル１９ａから取得した各要求回数とを比較する。なお、基本要求回数は、例えば一定時間に要求処理サーバ２０が処理できるサービス要求の数を任意のパラメータで除法するなどして求める。
【０２７５】
そして、アクセス頻度更新要求部１６ａは、各要求回数が基本要求回数の何倍であるかを分散要求サーバ数として算出する。また、アクセス頻度更新要求部１６ａは、分散要求サーバ数が、アクセス頻度「Ｌ」における、数値化アクセス頻度以下の場合には、新しいアクセス頻度を「Ｌ」とする。
【０２７６】
また、アクセス頻度更新要求部１６ａは、分散要求サーバ数が、アクセス頻度「Ｈ」における数値化アクセス頻度以上の場合には、アクセス頻度を「Ｈ」とする。これ以外の場合には、アクセス頻度更新要求部１６ａは、分散要求サーバ数をアクセス頻度とする。そして、アクセス頻度更新要求部１６ａは、各キー情報の新しいアクセス頻度の一覧を作成する。
【０２７７】
ここで、アクセス頻度更新要求部１６ａは、算出したアクセス頻度とアクセス頻度ハッシュテーブル１９ａに格納されているアクセス頻度とが同一か否かを判別し、同一ではないと判別した場合にのみ、一覧に新しいアクセス頻度を含める。また、アクセス頻度更新要求部１６ａは、算出したアクセス頻度とアクセス頻度ハッシュテーブル１９ａに格納されているアクセス頻度とが同一である場合には、一覧に新しいアクセス頻度を含めない。その後、アクセス頻度更新要求部１６ａは、永続化サーバ３０ｂへ、アクセス頻度の一覧をアクセス頻度更新要求として送信する。
【０２７８】
次に、図３５を用いて、実施例３に係る永続化サーバ３０ｂについて説明する。図３５は、実施例３に係る永続化サーバを説明するための図である。図３５に示す例では、永続化サーバ３０ｂは、制御部３２と同様の機能を有する制御部３２ｂを有する。また、制御部３２ｂは、アクセス頻度更新部４５を有する。
【０２７９】
アクセス頻度更新部４５は、要求分配サーバ１０ｂからアクセス頻度更新要求として受信した場合には、受信したアクセス頻度更新要求から、各キー情報の新たなアクセス頻度を取得する。また、アクセス頻度更新部４５は、ユーザ情報ＤＢ３８の各エントリと取得した各キー情報の新たなアクセス頻度とを用いて、ユーザ情報更新部３６がユーザ情報ＤＢ３８を更新する際に用いる登録情報を生成する。その後、アクセス頻度更新部４５は、ユーザ情報更新部３６に、登録情報を出力し、ユーザ情報ＤＢ３８の更新を実行させる。
【０２８０】
なお、アクセス頻度更新部４５は、例えば、アクセス頻度更新要求のキー情報を用いて、ユーザ情報ＤＢ３８を検索し、検索したエントリのアクセス頻度と、属性値を取得する。そして、アクセス頻度更新部４５は、検索したエントリから取得したアクセス頻度を更新前頻度とする。次に、アクセス頻度更新部４５は、アクセス頻度更新要求に含まれるアクセス頻度を、更新後頻度とする。そして、アクセス頻度更新部４５は、更新内容「変更」として、キー情報、更新前頻度、更新後頻度、属性値を、新たな登録情報とし、ユーザ情報更新部３６に出力する。
【０２８１】
次に、図３６を用いて、アクセス頻度更新部４５が実行する処理の流れについて説明する。図３６は、アクセス頻度更新部が実行する処理の流れを説明するためのフローチャートである。図３６に示す例では、アクセス頻度更新部４５は、登録情報を初期化する（ステップＳ１７０１）。次に、アクセス頻度更新部４５は、アクセス頻度更新要求から先頭の要素を取得する（ステップＳ１７０２）。
【０２８２】
次に、アクセス頻度更新部４５は、取得した要素のキー情報とアクセス頻度を取得し、取得したアクセス頻度を更新後頻度とする（ステップＳ１７０３）。次に、アクセス頻度更新部４５は、取得したキー情報を用いて、ユーザ情報ＤＢ３８を検索する（ステップＳ１７０４）。そして、アクセス頻度更新部４５は、検索したエントリの属性値、アクセス頻度を取得し、取得したアクセス頻度を更新前頻度とする（ステップＳ１７０５）。次に、アクセス頻度更新部４５は、登録情報に更新内容「変更」、取得したキー情報、属性値、更新前頻度、更新後頻度を含むエントリを追加する（ステップＳ１７０６）。
【０２８３】
また、アクセス頻度更新部４５は、アクセス頻度更新要求に次の要素があるか否かを判別し（ステップＳ１７０７）、次の要素が無い場合には（ステップＳ１７０７否定）、登録情報をユーザ情報更新部３６に出力し（ステップＳ１７０８）、処理を終了する。一方、アクセス頻度更新部４５は、アクセス頻度更新要求に次の要素がある場合には（ステップＳ１７０７肯定）、アクセス頻度更新要求の次の要素を取得し（ステップＳ１７０９）、ステップＳ１７０３の処理を実行する。
【０２８４】
次に、図３７を用いて、サービス応答部１３ａが実行する処理の流れについて説明する。図３７は、実施例３に係るサービス応答部が実行する処理の流れを説明するための図である。なお、図３７に示す各ステップのうち、図９に示すステップＳ９０１〜Ｓ９０５と同様の処理については、同一のステップ番号を付し、説明を省略する。
【０２８５】
図３７に示す例では、サービス応答部１３ａは、振り分け部から通知された要求処理サーバへ、サービス要求を送信し（ステップＳ９０４）、その後、要求処理サーバからの応答がデータ無しであるか否かを判別する（ステップＳ９０６）。そして、サービス応答部１３ａは、要求処理サーバからの応答がデータ無しではない場合には（ステップＳ９０６否定）、キー情報からハッシュ値を算出する（ステップＳ９０７）。そして、サービス応答部１３ａは、算出したハッシュ値とキー情報とを用いて、アクセス頻度ハッシュテーブル１９ａを検索する（ステップＳ９０８）。
【０２８６】
続いて、サービス応答部１３ａは、検索の結果、アクセス頻度ハッシュテーブル１９ａに該当するエントリが存在するか判別し（ステップＳ９０９）、該当エントリが存在する場合には（ステップＳ９０９肯定）、該当エントリの要求回数を１インクリメントする（ステップＳ９１０）。
【０２８７】
一方、サービス応答部１３ａは、アクセス頻度ハッシュテーブル１９ａに該当するエントリが存在しない場合には（ステップＳ９０９否定）、キー情報、アクセス頻度「Ｌ」、要求回数「１」を対応付けたエントリをアクセス頻度ハッシュテーブル１９ａに追加し（ステップＳ９１１）、その後、ステップＳ９０５を実行する。また、サービス応答部１３ａは、要求処理サーバからの応答がデータなしであった場合には（ステップＳ９０６肯定）、ステップＳ９０５の処理を実行する。
【０２８８】
次に、図３８を用いて、アクセス頻度更新要求部１６ａが実行する処理の流れについて説明する。図３８は、アクセス頻度更新要求部が実行する処理の流れを説明するためのフローチャートである。図３８に示す例では、アクセス頻度更新要求部１６ａは、前回の処理時から一定時間経過後に起動する（ステップＳ１８０１）。次に、アクセス頻度更新要求部１６ａは、アクセス頻度の一覧を初期化し（ステップＳ１８０２）、アクセス頻度ハッシュテーブル１９ａの先頭の要素を取り出す（ステップＳ１８０３）。
【０２８９】
続いて、アクセス頻度更新要求部１６ａは、要求回数を基本要求回数で除算した数を分散要求サーバ数として算出する（ステップＳ１８０４）。そして、アクセス頻度更新要求部１６ａは、分散要求サーバ数が「Ｈ」以上である場合には（ステップＳ１８０５：「Ｈ」以上）、アクセス頻度を「Ｈ」とする（ステップＳ１８０６）。
【０２９０】
一方、アクセス頻度更新要求部１６ａは、分散要求サーバ数が「Ｌ」以下である場合には（ステップＳ１８０５：「Ｌ」以下）、アクセス頻度を「Ｌ」とする（ステップＳ１８０７）。また、アクセス頻度更新要求部１６ａは、アクセス頻度が「Ｌ」よりも大きく「Ｈ」未満である場合には（ステップＳ１８０５：その他）、分散要求サーバ数をアクセス頻度とする（ステップＳ１８０８）。
【０２９１】
その後、アクセス頻度更新要求部１６ａは、算出したアクセス頻度とアクセス頻度ハッシュテーブル１９ａに格納されたアクセス頻度とが同一であるか否かを判別する（ステップＳ１８０９）。そして、アクセス頻度更新要求部１６ａは、算出したアクセス頻度とアクセス頻度ハッシュテーブル１９ａに格納されたアクセス頻度が同一ではないと判別した場合には（ステップＳ１８０９否定）、ステップＳ１８０３にて取得した要素のキー情報とステップＳ１８０６〜Ｓ１８０８のいずれかの処理で求められたアクセス頻度とをアクセス頻度の一覧に追加する（ステップＳ１８１０）。
【０２９２】
一方、アクセス頻度更新要求部１６ａは、算出したアクセス頻度とアクセス頻度ハッシュテーブル１９ａに格納されたアクセス頻度が同一であると判別した場合には（ステップＳ１８０９肯定）、ステップＳ１８１０の処理をスキップする。その後、アクセス頻度更新要求部１６ａは、アクセス頻度ハッシュテーブル１９ａの全ての要素を取り出したか否かを判別する（ステップＳ１８１１）。
【０２９３】
そして、アクセス頻度更新要求部１６ａは、アクセス頻度ハッシュテーブル１９ａの全ての要素を取り出していないと判別した場合には（ステップＳ１８１１否定）、アクセス頻度ハッシュテーブルの次の要素を取り出し（ステップＳ１８１２）、ステップＳ１８０４の処理を実行する。
【０２９４】
また、アクセス頻度更新要求部１６ａは、アクセス頻度ハッシュテーブル１９ａの全ての要素を取り出したと判別した場合には（ステップＳ１８１１肯定）、アクセス頻度の一覧をアクセス頻度更新要求として永続化サーバ３０ｂに送信する（ステップＳ１８１３）。その後、アクセス頻度更新要求部１６ａは、アクセス頻度ハッシュテーブルの全ての要求回数をクリアし（ステップＳ１８１４）、処理を終了する。
【０２９５】
［実施例３の効果］
上述したように、サービス応答部１３ａは、キー情報ごとにサービス要求の発行回数を計数する。そして、アクセス頻度更新要求部１６ａは、サービス応答部１３ａが計数した発行回数に基づいて、キー情報ごとにアクセス頻度を算出するとともに、当該アクセス頻度を永続化サーバ３０ｂに送信する。また、アクセス頻度更新部４５は、要求分配サーバ１０からキー情報ごとにアクセス頻度を受信した場合には、ユーザ情報更新部３６を用いて、受信したアクセス頻度を新たなアクセス頻度としてユーザ情報ＤＢ３８を更新する。
【０２９６】
つまり、情報処理システム１ｂは、サービス要求が発行された数をキー情報ごとに計数し、計数結果に応じて新たなアクセス頻度を判別する。そして、情報処理システム１ｂは、新たなアクセス頻度を要求分配サーバ１０ｂおよび永続化サーバ３０ｂに適用し、サービス要求の分配処理を実行する。
【０２９７】
このため、情報処理システム１ｂは、サービス要求のアクセス頻度が変化した場合にも、分配先となる要求処理サーバの台数を変化させることができる。例えば、情報処理システム１ｂは、あるキー情報についてサービス要求のアクセス頻度が増大した場合には、分配先となる要求処理サーバの台数を増大させ、サービス要求のアクセス頻度が減少した場合には、分配先となる要求処理サーバの台数を削減する。この結果、情報処理システム１ｂは、各要求処理サーバ２０〜２０ｂのリソースを有効利用することができる。
【実施例４】
【０２９８】
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例４として本発明に含まれる他の実施例を説明する。
【０２９９】
（１）要求分配サーバの数について
上述した情報処理システム１〜１ｂは、それぞれ１つの要求分配サーバ１０〜１０ｂを有していた。しかし、実施例はこれに限定されるものではない。例えば、情報処理システム１は、要求分配サーバ１０と同様の機能を発揮する要求分配サーバ１０ｃをさらに有し、２つの要求分配サーバ１０、１０ｃがそれぞれクライアント２〜２ｂが発行するサービス要求の分配を行うこととしても良い。
【０３００】
（２）永続化サーバについて
上述した情報処理システム１〜１ｂは、全ての制御データを属性値として記憶する永続化サーバ３０〜３０ｂを有していた。しかし、実施例はこれに限定されるものではない。例えば、永続化サーバ３０〜３０ｂは、属性値として制御データを特定する特定情報を記憶し、外部に存在する大容量の記憶装置から特定情報に応じて制御データを取得し、各要求処理サーバ２０〜２０ｅに送信することとしてもよい。
【０３０１】
（３）プログラム
ところで、実施例１〜３に係る情報処理システム１〜１ｂは、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムを要求分配サーバとして動作するコンピュータが実行することによって実現するようにしてもよい。そこで、以下では、図３９を用いて、実施例１に示した要求分配サーバ１０と同様の機能を有する要求分配プログラムを実行するコンピュータの一例を説明する。
【０３０２】
図３９は、要求分配プログラムによる処理がコンピュータを用いて具体的に実現されることを示す図である。図３９に例示するように、コンピュータ１０００は、例えば、メモリ１００１と、ＣＰＵ１００２と、ハードディスクドライブインタフェース１００３と、ディスクドライブインタフェース１００４と、シリアルポートインタフェース１００５と、ビデオアダプタ１００６と、ネットワークインタフェース１００７とを有し、これらの各部はバス１００８によって接続される。
【０３０３】
メモリ１００１は、図３９に例示するように、ＲＯＭ（Read  Only  Memory）１００１ａ及びＲＡＭ（Random  Access  Memory）１００１ｂを含む。ＲＯＭ１００１ａは、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１００３は、図３９に例示するように、ハードディスクドライブ１００９に接続される。
【０３０４】
ディスクドライブインタフェース１００４は、図３９に例示するように、ディスクドライブ１０１０に接続される。例えば、磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０１０に挿入される。シリアルポートインタフェース１００５は、図３９に例示するように、例えばマウス１０１１、キーボード１０１２に接続される。ビデオアダプタ１００６は、図３９に例示するように、例えばディスプレイ１０１３に接続される。
【０３０５】
ここで、図３９に例示するように、ハードディスクドライブ１００９は、例えば、ＯＳ１００９ａ、アプリケーションプログラム１００９ｂ、プログラムモジュール１００９ｃ、プログラムデータ１００９ｄを記憶する。すなわち、要求分配プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュール１００９ｃとして、例えばハードディスクドライブ１００９に記憶される。
【０３０６】
具体的には、上記実施例１で説明したサービス応答部１３と同様の処理を実行するサービス応答手順と、振り分け部１４と同様の処理を実行する振り分け手順と、頻度情報更新部１５と同様の処理を実行する頻度情報更新手順と、全頻度情報取得部１６と同様の処理を実行する全頻度情報取得手順とが記述されたプログラムモジュール１００９ｃが、ハードディスクドライブ１００９に記憶される。
【０３０７】
また、要求分散プログラムによる処理に用いられるデータは、プログラムデータ１００９ｄとして、例えば、ハードディスクドライブ１００９や、ＲＡＭ１００１ｂに記憶される。例えば、ノード情報ＤＢ１８やアクセス頻度ハッシュテーブル１９がプログラムデータ１００９ｄとして記憶させる。そして、ＣＰＵ１００２が、ハードディスクドライブ１００９に記憶されたプログラムモジュール１００９ｃやプログラムデータ１００９ｄを必要に応じてＲＡＭ１００１ｂに読み出し、各手順を実行する。
【０３０８】
なお、要求分散プログラムに係るプログラムモジュール１００９ｃやプログラムデータ１００９ｄは、ハードディスクドライブ１００９に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ１０１０等を介してＣＰＵ１００２によって読み出されてもよい。あるいは、要求分散プログラムに係るプログラムモジュール１００９ｃやプログラムデータ１００９ｄは、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１００７を介してＣＰＵ１００２によって読み出されてもよい。
【符号の説明】
【０３０９】
１〜１ｂ  情報処理システム
２〜２ｂ  クライアント
１０〜１０ｂ  要求分配サーバ
１１、２１、３１  通信制御Ｉ／Ｆ部
１２〜１２ｂ、２２、２２ａ、３２〜３２ｂ  制御部
１３、１３ａ  サービス応答部
１４  振り分け部
１５  頻度情報更新部
１５ａ  頻度情報要求部
１６、１６ａ  全頻度情報取得部
１７、１７ａ、２６、３７  記憶部
１８  ノード情報ＤＢ
１９、１９ａ  アクセス頻度ハッシュテーブル
２０〜２０ｅ  要求処理サーバ
２３  データ応答部
２４  更新データ応答部
２４ａ  更新データ要求部
２５  全データ取得部
２７  ユーザ情報ハッシュテーブル
３０〜３０ｂ  永続化サーバ
３３  更新データ配信部
３４  全データ応答部
３５  全頻度情報応答部
３６  ユーザ情報更新部
３８  ユーザ情報ＤＢ
３９、３９ａ  更新情報ＤＢ
４０  ノード情報ＤＢ
４１  更新データ制御部
４２  更新データ応答部
４３  頻度情報応答部
４４  順序制御情報ＤＢ
４５  アクセス頻度更新部
【図１】
0005710514.tif 000002
【図２】
0005710514.tif 000003
【図３】
0005710514.tif 000004
【図４】
0005710514.tif 000005
【図５】
0005710514.tif 000006
【図６】
0005710514.tif 000007
【図７】
0005710514.tif 000008
【図８】
0005710514.tif 000009
【図９】
0005710514.tif 000010
【図１０】
0005710514.tif 000011
【図１１】
0005710514.tif 000012
【図１２】
0005710514.tif 000013
【図１３】
0005710514.tif 000014
【図１４】
0005710514.tif 000015
【図１５】
0005710514.tif 000016
【図１６】
0005710514.tif 000017
【図１７】
0005710514.tif 000018
【図１８】
0005710514.tif 000019
【図１９】
0005710514.tif 000020
【図２０】
0005710514.tif 000021
【図２１】
0005710514.tif 000022
【図２２】
0005710514.tif 000023
【図２３】
0005710514.tif 000024
【図２４】
0005710514.tif 000025
【図２５】
0005710514.tif 000026
【図２６】
0005710514.tif 000027
【図２７】
0005710514.tif 000028
【図２８】
0005710514.tif 000029
【図２９】
0005710514.tif 000030
【図３０】
0005710514.tif 000031
【図３１】
0005710514.tif 000032
【図３２】
0005710514.tif 000033
【図３３】
0005710514.tif 000034
【図３４】
0005710514.tif 000035
【図３５】
0005710514.tif 000036
【図３６】
0005710514.tif 000037
【図３７】
0005710514.tif 000038
【図３８】
0005710514.tif 000039
【図３９】
0005710514.tif 000040
【図４０】
0005710514.tif 000041
【図４１】
0005710514.tif 000042