(57)【特許請求の範囲】
【請求項１】
通信網を介して複数のクライアント装置に接続されるサーバ装置であって、
前記複数のクライアント装置それぞれからのポーリングに応じて情報を提供する情報提供制御部と、
ポーリング周期内における所定の計測区間単位で前記複数のクライアント装置から受信するポーリングの回数を示すポーリング分布を導出するポーリング分布導出部と、
導出された前記ポーリング分布を平準化するように、前記複数のクライアント装置のうちの少なくとも一部の、更新対象となったクライアント装置について、ポーリングの前記ポーリング分布導出部がポーリング分布を導出した時点での送信タイミングからのオフセット時間を導出するオフセット時間導出部と、
前記更新対象となったクライアント装置それぞれに、導出された前記オフセット時間の更新要求を行う更新要求部と、
を備え、
前記オフセット時間導出部は、前記ポーリング分布の極大値が、前記ポーリング分布の平均値に所定の不感帯値を加算した閾値を超えた場合に前記オフセット時間を導出することを特徴とするサーバ装置。
【請求項２】
前記オフセット時間導出部は、前記閾値を超えた計測区間にポーリングしているクライアント装置のうち前記閾値を超えた分のクライアント装置を更新対象とし、前記更新対象となったクライアント装置を、前記閾値を超えていない計測区間にポーリングさせるように前記オフセット時間を導出することを特徴とする請求項１に記載のサーバ装置。
【請求項３】
前記オフセット時間導出部は、前記オフセット時間を、前記計測区間で正規化された乱数値により振り分けることを特徴とする請求項２に記載のサーバ装置。
【請求項４】
前記オフセット時間導出部は、前記ポーリング分布の極大値が前記閾値を超えた場合、前記複数のクライアント装置全てを更新対象とし、前記更新対象となったクライアント装置のオフセット時間を、前記ポーリング周期で正規化された乱数値とすることを特徴とする請求項１に記載のサーバ装置。
【請求項５】
通信網を介して複数のクライアント装置に接続されるサーバ装置において実行される情報提供方法であって、
前記複数のクライアント装置それぞれからのポーリングに応じて情報を提供する情報提供制御ステップと、
ポーリング周期内における所定の計測区間単位で前記複数のクライアント装置から受信するポーリングの回数を示すポーリング分布を導出するポーリング分布導出ステップと、
導出された前記ポーリング分布を平準化するように、前記複数のクライアント装置のうちの少なくとも一部の、更新対象となったクライアント装置について、ポーリングの前記ポーリング分布導出ステップにおいてポーリング分布を導出した時点での送信タイミングからのオフセット時間を導出するオフセット時間導出ステップと、
前記更新対象となったクライアント装置それぞれに、導出された前記オフセット時間の更新要求を行う更新要求ステップと、
を含み、
前記オフセット時間導出ステップでは、前記ポーリング分布の極大値が、前記ポーリング分布の平均値に所定の不感帯値を加算した閾値を超えた場合に前記オフセット時間を導出することを特徴とする情報提供方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザが所望する情報を、通信網を介して提供するサーバ装置および情報提供方法に関する。
【背景技術】
【０００２】
近年、インターネットやＬＡＮ（Local Area Network）等のネットワーク・インフラの普及に伴い、必要な情報をあらゆる場所で容易に取得できるようになった。例えば、クライアント装置とサーバ装置とがインターネット等の通信網を介して接続された情報提供システムの下、ユーザは、クライアント装置のＷｅｂブラウザを通じてサーバ装置から音楽、静止画、動画等の様々な情報を入手できる。
【０００３】
このような情報提供システムにおいては、サーバ装置へアクセスしてくるクライアント装置の数やアクセス時刻を予測することはできず、サーバ装置に複数のクライアント装置のアクセスが集中する場合もある。しかし、サーバ装置側（サービス提供側）には、クライアント装置からのアクセスが集中した場合においても、ユーザが所望するＷｅｂページを迅速に配信することが望まれる。サーバ装置側の対策としては、例えば、サーバ装置を複数準備し、その前段に配された負荷分散装置を通じて、クライアント装置からのアクセス負荷が個々のサーバ装置の応答能力を超えないように、アクセス負荷を分散することが考えられる。また、一日といった長時間の間に一時的にアクセスのピークが生じる特徴的なクライアント装置を特定のサーバ装置に割り当てて、時間的な負荷分散を図る技術も知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３９０３４１９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このような情報提供システムにおいて、クライアント装置のＷｅｂブラウザにサーバ装置が管理するＷｅｂページを表示させているとき、サーバ装置内で新たなＷｅｂページの送信要求が発生すると、サーバ装置は、自体が主体となってその新たなＷｅｂページをクライアント装置に送信することができる（プッシュ処理）。また、クライアント装置が主体となって定期的にサーバ装置にポーリングし、そのポーリング時にサーバ装置内で新たなＷｅｂページの送信要求が発生していたら、サーバ装置がポーリング元のクライアント装置にＷｅｂページを送信するといった手段（ポーリングを利用したプッシュ処理）をとることも可能である。
【０００６】
しかし、各クライアント装置のポーリング周期は等しいので、クライアント装置におけるポーリングの開始時刻によっては、任意の時点でポーリングが集中し、また、そのポーリングの集中は周期的に繰り返される。このように、任意の時点にのみポーリングが集中すると、その負荷によってはサーバ装置が適切に応答できず、一時的に応答遅延が生じる可能性もある。
【０００７】
本発明は、このような課題に鑑み、複数のクライアント装置のポーリング周期内におけるポーリングの偏りを回避し、Ｗｅｂページを安定して提供することが可能なサーバ装置および情報提供方法を提供することを目的としている。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明は下記の装置、および、方法を提供するものである。
（１）通信網を介して複数のクライアント装置に接続されるサーバ装置であって、前記複数のクライアント装置それぞれからのポーリングに応じて情報を提供する情報提供制御部と、ポーリング周期内における所定の計測区間単位で前記複数のクライアント装置から受信するポーリングの回数を示すポーリング分布を導出するポーリング分布導出部と、導出された前記ポーリング分布を平準化するように、前記複数のクライアント装置のうちの少なくとも一部の、更新対象となったクライアント装置について、ポーリングの前記ポーリング分布導出部がポーリング分布を導出した時点での送信タイミングからのオフセット時間を導出するオフセット時間導出部と、前記更新対象となったクライアント装置それぞれに、導出された前記オフセット時間の更新要求を行う更新要求部と、を備え、前記オフセット時間導出部は、前記ポーリング分布の極大値が、前記ポーリング分布の平均値に所定の不感帯値を加算した閾値を超えた場合に前記オフセット時間を導出することを特徴とするサーバ装置。
（２）前記オフセット時間導出部は、前記閾値を超えた計測区間にポーリングしているクライアント装置のうち前記閾値を超えた分のクライアント装置を更新対象とし、前記更新対象となったクライアント装置を、前記閾値を超えていない計測区間にポーリングさせるように前記オフセット時間を導出することを特徴とする上記（１）に記載のサーバ装置。
（３）前記オフセット時間導出部は、前記オフセット時間を、前記計測区間で正規化された乱数値により振り分けることを特徴とする上記（２）に記載のサーバ装置。
（４）前記オフセット時間導出部は、前記ポーリング分布の極大値が前記閾値を超えた場合、前記複数のクライアント装置全てを更新対象とし、前記更新対象となったクライアント装置のオフセット時間を、前記ポーリング周期で正規化された乱数値とすることを特徴とする上記（１）に記載のサーバ装置。
（５）通信網を介して複数のクライアント装置に接続されるサーバ装置において実行される情報提供方法であって、前記複数のクライアント装置それぞれからのポーリングに応じて情報を提供する情報提供制御ステップと、ポーリング周期内における所定の計測区間単位で前記複数のクライアント装置から受信するポーリングの回数を示すポーリング分布を導出するポーリング分布導出ステップと、導出された前記ポーリング分布を平準化するように、前記複数のクライアント装置のうちの少なくとも一部の、更新対象となったクライアント装置について、ポーリングの前記ポーリング分布導出ステップにおいてポーリング分布を導出した時点での送信タイミングからのオフセット時間を導出するオフセット時間導出ステップと、前記更新対象となったクライアント装置それぞれに、導出された前記オフセット時間の更新要求を行う更新要求ステップと、を含み、前記オフセット時間導出ステップでは、前記ポーリング分布の極大値が、前記ポーリング分布の平均値に所定の不感帯値を加算した閾値を超えた場合に前記オフセット時間を導出することを特徴とする情報提供方法。
【発明の効果】
【０００９】
本発明によれば、複数のクライアント装置のポーリング周期内におけるポーリングの偏りを回避することで、サーバ装置へのアクセス集中による負荷増大を防止し、Ｗｅｂページの安定提供を図ることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】情報提供システムの概略的な関係を示した説明図である。
【図２】情報提供システムの全体的な処理の流れを示したシーケンス図である。
【図３】クライアント装置の電気的構成を示した機能ブロック図である。
【図４】サーバ装置の電気的構成を示した機能ブロック図である。
【図５】クライアント管理テーブルを説明するための説明図である。
【図６】通話案内装置の電気的構成を示した機能ブロック図である。
【図７】ポーリング分布を示した説明図である。
【図８】平準化処理の流れを説明するためのタイミングチャートである。
【図９】オフセット実行部の処理の流れを示したフローチャートである。
【図１０】変形例によるオフセット時間導出部の動作を説明するための説明図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値等は、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書及び図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
【００１２】
本実施形態では、クライアント装置が主体となって定期的にサーバ装置にポーリングし、そのポーリング時にサーバ装置内で新たなＷｅｂページの送信要求が発生していた場合に、サーバ装置がポーリング元のクライアント装置にＷｅｂページを送信するといった、ポーリングを利用したプッシュ処理を主として説明する。ここでは、理解を容易にするため、ポーリングを利用したプッシュ処理の典型例として、ユーザが接客側の接客員と対話しながらＷｅｂブラウザを介して商品の購入を試みる情報提供システムを挙げる。
【００１３】
（情報提供システム１００）
図１は、情報提供システム１００の概略的な関係を示した説明図である。情報提供システム１００は、通信網１０２と、クライアント装置１１０と、サーバ装置１２０と、通話案内装置１３０とを含んで構成される。ユーザ１１２は、クライアント装置１１０を有し、接客側は、サーバ装置１２０と通話案内装置１３０とを有し、接客側の接客員１３２は、通話案内装置１３０を通じてユーザ１１２と通話し、サーバ装置１２０が提供する情報に関する案内を行う。
【００１４】
通信網１０２は、インターネット、ＬＡＮ、専用回線等で構成され、クライアント装置１１０、サーバ装置１２０、通話案内装置１３０それぞれを接続する。クライアント装置１１０は、パーソナルコンピュータ、ノート型パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）、携帯電話等、Ｗｅｂブラウザを利用可能な電子機器であり、サーバ装置１２０が蓄積している、音楽、静止画、動画等の様々な情報を、Ｗｅｂブラウザを通じて取得することができる。本実施形態では、サーバ装置１２０からクライアント装置１１０に提供される情報を、説明の便宜のため、Ｗｅｂブラウザに表示される「Ｗｅｂページ」として説明する。Ｗｅｂページは、１または複数のコンテンツ（Ｗｅｂコンテンツ）や通話案内装置１３０に通信接続を行うためのプラグイン・モジュールを含む概念であり、Ｗｅｂページを特定するページ識別子には、そのＷｅｂページに含まれるコンテンツのコンテンツ識別子やプラグイン・モジュールの識別子も含まれる。また、クライアント装置１１０は、通話案内装置１３０と接続することで、ユーザ１１２と接客員１３２との音声通信を確立することもできる。
【００１５】
サーバ装置１２０は、Ｗｅｂサイトを管理し、クライアント装置１１０による、Ｗｅｂページの取得を要求する情報取得要求に応じ、クライアント装置１１０のＷｅｂブラウザを通じて、自体で管理している様々なＷｅｂページを提供する。また、サーバ装置１２０は、通話案内装置１３０とも通信接続されており、通話案内装置１３０の、新たなＷｅｂページの提供を指示する情報提供指示に応じて、クライアント装置１１０にＷｅｂページを提供することもできる。ここで、Ｗｅｂサイトは、サーバ装置１２０により特定されるドメイン下にあるＷｅｂページ群を言う。通話案内装置１３０は、クライアント装置１１０の音声通信要求に応じて、クライアント装置１１０と音声通信を確立し、サーバ装置１２０がクライアント装置１１０に提供した情報を把握しつつ、サーバ装置１２０に、クライアント装置１１０への新たなＷｅｂページの提供を指示する情報提供指示を行う。
【００１６】
上記情報提供システム１００において、ユーザ１１２は、クライアント装置１１０のＷｅｂブラウザを通じてＷｅｂサイトにアクセスし、Ｗｅｂページに提示されている商品を購入することができる。その際、ユーザ１１２は、そのＷｅｂページの表示内容について、通話案内装置１３０と音声通信を確立し、接客員１３２との通話によって具体的に質問したり、または、説明を受けたりすることも可能である。このとき、接客員１３２は、ユーザ１１２の質問に関連したＷｅｂページをクライアント装置１１０のＷｅｂブラウザに直接表示させることができる。
【００１７】
ここでは、クライアント装置１１０が、サーバ装置１２０との通信接続に加え、通話案内装置１３０との音声通信を確立し、クライアント装置１１０によるＷｅｂページの閲覧と、接客員１３２との通話とを連携させている。さらに、接客員１３２は、通話案内装置１３０を通じてサーバ装置１２０を操作し、接客員１３２が主体となってサーバ装置１２０からユーザ１１２（クライアント装置１１０）に、ダイナミックに様々な情報（Ｗｅｂページ）を提供する。このとき、ポーリングを利用したプッシュ処理が用いられる。以下、クライアント装置１１０、サーバ装置１２０および通話案内装置１３０を用いた情報提供方法の処理の流れを述べ、その後、クライアント装置１１０、サーバ装置１２０および通話案内装置１３０それぞれの具体的な構成およびその処理の流れを詳述する。
【００１８】
（情報提供システム１００における情報提供の流れ）
図２は、情報提供システム１００の全体的な処理の流れを示したシーケンス図である。ユーザ１１２が、クライアント装置１１０を操作してサーバ装置１２０のＷｅｂサイトへのアクセスを試みると、クライアント装置１１０は、サーバ装置１２０に情報取得要求を行う（Ｓ１４０）。
【００１９】
サーバ装置１２０は、クライアント装置１１０の情報取得要求に応じて、クライアント装置１１０を一意に特定するクライアント識別子を生成する（Ｓ１４２）。かかるクライアント識別子は、クライアント装置１１０を特定可能にユニークな値であればよく、例えばハッシュ計算等を用いて導出されたり、乱数値を用いて生成される。乱数値を用いる場合、サーバ装置１２０は、生成された乱数値が、クライアント識別子として現時点で他のクライアント装置１１０に利用されているかどうかを判定し、利用されていなければ、その乱数値を今回のクライアント装置１１０のクライアント識別子として用い、既に利用されていれば、新たに数値の異なる乱数値を生成する。
【００２０】
続いて、サーバ装置１２０は、生成したクライアント識別子をクライアント装置１１０の接続情報と関連付け、クライアント管理テーブルとしてサーバメモリに保持させ（Ｓ１４４）、クライアント装置１１０の情報取得要求に基づいて、情報取得要求を送信したクライアント装置１１０（Ｗｅｂブラウザ）にＷｅｂページを提供する（Ｓ１４６）。Ｗｅｂページには、ＪａｖａＳｃｒｉｐｔ（登録商標）やＦｌａｓｈのようなコンテンツ、および通話案内装置１３０に通信接続を行うプラグイン・モジュール等が含まれている。このとき、サーバ装置１２０は、Ｗｅｂページと共に、クライアント識別子生成ステップＳ１４２で生成したクライアント識別子を送信し、クライアント装置１１０は、サーバ装置１２０からＷｅｂページの提供を受けると共にクライアント識別子を受信する。
【００２１】
ユーザ１１２は、クライアント装置１１０のＷｅｂブラウザを通じて、サーバ装置１２０から提供されたＷｅｂページを閲覧しつつ、そのＷｅｂページの内容について詳細な情報を知りたくなった場合に、接客員１３２と直接、通話することを試みる。具体的に、クライアント装置１１０は、Ｗｅｂページに埋め込まれているプラグイン・モジュールを制御して通話案内装置１３０に、音声セッションの開始要求である音声通信要求を行う（Ｓ１４８）。通話案内装置１３０は、クライアント装置１１０との通話が可能であればクライアント装置１１０に確認応答（ＡＣＫ）を返信する（Ｓ１５０）。
【００２２】
こうして、クライアント装置１１０と通話案内装置１３０とは音声通信を確立し、接客員１３２は、通話案内装置１３０を通じて、クライアント装置１１０のユーザ１１２に口頭で案内を行うことができる（Ｓ１５２）。また、クライアント装置１１０は、音声通信を確立している間、または、音声通信要求の際に、サーバ装置１２０から受信したクライアント識別子を通話案内装置１３０に送信する。ユーザ１１２と接客員１３２の間では、複数の会話がやりとりされることが多いが、ここでは、説明の便宜のため、通話を両矢印１本で記載している。このとき、ユーザ１１２は、Ｗｅｂブラウザを通じて、Ｗｅｂページによる情報の提供を受けつつ、通話を通じて接客員１３２からそのＷｅｂページの内容の説明を受けることができる。
【００２３】
ここで、通話案内装置１３０は、クライアント装置１１０から受信したクライアント識別子を用いて、サーバ装置１２０に対し、このクライアント識別子に関連付けられたクライアント装置１１０が現在閲覧しているＷｅｂページを問い合わせることができ（Ｓ１５４）、サーバ装置１２０は、クライアント管理テーブルにおいて、クライアント識別子に関連付けられたページ識別子によって特定されるＷｅｂページを通話案内装置１３０に送信する（Ｓ１５６）。こうして、接客員１３２は、ユーザ１１２がどのＷｅｂページを閲覧しつつ通話しているかを把握することができ、迅速かつ適切にユーザ１１２の疑問点を解消することが可能となる。
【００２４】
また、通話案内装置１３０は、クライアント装置１１０から受信したクライアント識別子を用いて、サーバ装置１２０に対し、このクライアント識別子に関連付けられたクライアント装置１１０に情報提供指示を行うことができ（Ｓ１５８）、サーバ装置１２０は、情報提供指示を受付可能であれば、通話案内装置１３０に確認応答（ＡＣＫ）を返信し（Ｓ１６０）、クライアント管理テーブルにおいて、クライアント識別子に関連付けられた既存のページ識別子を、情報提供指示による新たなＷｅｂページを示すページ識別子に書き換え、更新情報を「更新無し」から「更新有り」に書き換える（Ｓ１６２）。
【００２５】
一方、音声通信が開始された後も、クライアント装置１１０は、最初に読み込んだＷｅｂページに含まれるＪａｖａＳｃｒｉｐｔ（登録商標）やＦｌａｓｈに基づき、Ｗｅｂページで指定された所定のポーリング周期で、サーバ装置１２０にポーリングを実行し、Ｗｅｂページが更新されているか否か定期的に問い合わせている（Ｓ１６４）。サーバ装置１２０は、ポーリングを受信する度に、クライアント管理テーブルを参照し、そのクライアント装置１１０に関連付けられた更新情報が「更新有り」になっているか否か判定し（Ｓ１６６）、なっていなければ更新が無いことをクライアント装置１１０に返信する（Ｓ１６８）。クライアント装置１１０は、更新が無いことを受けて、直近に提供されたＷｅｂページの表示を継続する。
【００２６】
ここで、上述した、通話案内装置１３０による情報提供指示ステップＳ１５８が実行されると、ページ識別子書き換えステップＳ１６２によって、クライアント管理テーブルのページ識別子および更新情報が書き換えられるので、クライアント装置１１０がサーバ装置１２０にＷｅｂページが更新されているか否か定期的なポーリングによって問い合わせたとき（Ｓ１７０）、サーバ装置１２０は、更新情報が「更新有り」となっていると判定し（Ｓ１７２）、ページ識別子によって特定される新たなＷｅｂページを、接続情報で特定されるクライアント装置１１０に提供して（Ｓ１７４）、Ｗｅｂページ提供後、更新情報を「更新無し」に戻す（Ｓ１７６）。
【００２７】
ここでは、サーバ装置１２０が主体となって、クライアント装置１１０が実行したポーリングにおける、セッションを管理するセッションＩＤを通じてセッションを特定し、それに応じる形で新たなＷｅｂページを提供しているので、クライアント装置１１０をＩＰアドレス等によって特定しなくても、サーバ装置１２０は、情報取得要求を送信したクライアント装置１１０に確実にＷｅｂページを提供することができる。
【００２８】
ユーザ１１２と接客員１３２との音声通信が終了すると、通話案内装置１３０は、サーバ装置１２０に対し、クライアント識別子を用いてセッションの終了要求を行う（Ｓ１７８）。サーバ装置１２０は、通話案内装置１３０に確認応答（ＡＣＫ）を返信し（Ｓ１８０）、通話案内装置１３０とのセッションを終了する。そして、サーバ装置１２０は、クライアント装置１１０によるＷｅｂサイトのアクセスの終了に伴って、当該クライアント装置１１０に関連付けられた情報をクライアント管理テーブルから削除する（Ｓ１８２）。図２においては、クライアント装置１１０は、サーバ装置１２０へのポーリングを実行する度に、サーバ装置１２０とのＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）の接続と切断とを繰り返している。
【００２９】
以上、説明したように、本実施形態の情報提供システム１００では、ユーザ１１２（クライアント装置１１０）が最初にサーバ装置１２０にアクセスした際に生成されるクライアント識別子をクライアント装置１１０、サーバ装置１２０、通話案内装置１３０で共有することで、ユーザ１１２は、通話案内装置１３０を介した通話のサービスと、サーバ装置１２０によるＷｅｂページの提供サービスとを並行して受けることができる。また、クライアント装置１１０とサーバ装置１２０との間の通信としてポーリングを利用したプッシュ処理を用いることで、接客側は、顧客に対し、問い合わせの内容と連動した情報（Ｗｅｂページ）を積極的に提示することが可能となり、Ｗｅｂページを通じた情報提供（販売）の効率化を図り、ユーザの満足度を高めることができる。
【００３０】
ただし、接客側においてサーバ装置１２０の数が制限されるのに対し、クライアント装置１１０（ユーザ１１２）の数は制限されず、ある意味無数である。したがって、１のサーバ装置１２０に対し、多数のクライアント装置１１０が一度にアクセスする場合が生じ得る。本実施形態では、上述したように、サーバ装置１２０に対するクライアント装置１１０のアクセスを、主としてポーリングに限定することができるので、ポーリングの頻度を調整することで単時間当たりのアクセス数を制限できる。サーバ装置１２０は、クライアント装置１１０側でのＷｅｂページの更新周期として許容される範囲で所定のポーリング周期を決め、各クライアント装置１１０に、そのポーリング周期を一律に設定することで、ポーリング周期が異なることによるアクセスの偏りを回避している。
【００３１】
しかし、各クライアント装置１１０からのポーリングの開始時刻によっては、ポーリング周期内の任意の時点でポーリングが集中する可能性があり、また、そのようなポーリング周期内のポーリングの集中が起こった場合、その集中は周期的に（ポーリング周期毎に）繰り返される。そこで、本実施形態では、複数のクライアント装置１１０のポーリング周期内におけるポーリングの偏りを回避することで、サーバ装置１２０へのアクセス集中による負荷増大を防止し、Ｗｅｂページの安定提供を図ることを目的としている。
【００３２】
（クライアント装置１１０）
図３は、クライアント装置１１０の電気的構成を示した機能ブロック図である。クライアント装置１１０は、操作部２１０と、表示部２１２と、音声入力部２１４と、音声出力部２１６と、クライアントメモリ２１８と、クライアント通信部２２０と、クライアント制御部２２２とを含んで構成される。
【００３３】
操作部２１０は、キーボード、ポインティングデバイス、十字キー、ジョイスティック、タッチパネル等で構成され、ユーザ１１２の操作入力を受け付ける。表示部２１２は、液晶ディスプレイ、有機ＥＬ(Electro Luminescence)ディスプレイ等で構成され、Ｗｅｂブラウザを通じてサーバ装置１２０から提供されるＷｅｂページを表示したり、通話案内装置１３０と音声通信を確立するための案内画面を表示したり、その他、様々な画像を表示する。本実施形態においては、ユーザが、表示部２１２のＷｅｂブラウザに表示されたＷｅｂページにおけるＵＩ(User Interface)を、操作部２１０を通じて操作することで、Ｗｅｂページに関する様々な処理を実現する。
【００３４】
音声入力部２１４は、マイク等で構成され、Ａ／Ｄ変換、エンコーダ（コーデック）等を通じてユーザ１１２の音声を音声信号として取り込む。音声出力部２１６は、スピーカ等で構成され、音声信号を音声に変換して出力する。クライアントメモリ２１８は、ＨＤＤ（Hard disk drive）、フラッシュメモリ、ＲＡＭ等の記憶媒体で構成され、後述するクライアント制御部２２２で利用されるプログラムや、Ｗｅｂブラウザを通じてサーバ装置１２０からＷｅｂページと共にダウンロードしたドキュメント、音楽、静止画、動画などの情報を保持する。なお、ＨＤＤは正確には装置であるが、説明の便宜上本説明では記憶媒体と同義として扱う。
【００３５】
クライアント通信部２２０は、ＴＣＰ／ＩＰ等のプロトコルを用い、通信網１０２を通じてサーバ装置１２０と通信接続およびポーリング処理を行う。また、クライアント通信部２２０は、ＳＩＰ（Session Initiation Protocol）やＲＴＰ(A Transport Protocol for Real-Time Applications)等のプロトコルを用い、通話案内装置１３０との音声通信も確立する。
【００３６】
クライアント制御部２２２は、中央処理装置（ＣＰＵ）を含む半導体集積回路で構成され、クライアントメモリ２１８や他の電子回路と協働してクライアント装置１１０全体を管理および制御する。また、クライアント制御部２２２は、情報取得制御部２３０、音声通信要求部２３２、オフセット実行部２３４としても機能する。
【００３７】
情報取得制御部２３０は、ＨＴＴＰ（HyperText Transfer Protocol）等を用い、Ｗｅｂブラウザを通じてサーバ装置１２０に情報取得要求を行い、サーバ装置１２０からＷｅｂページの提供を受ける。そして、情報取得制御部２３０は、Ｗｅｂページに含まれるＪａｖａＳｃｒｉｐｔ（登録商標）やＦｌａｓｈ、またはＷｅｂブラウザに埋め込まれたプラグイン・モジュールに従って動作する。また、情報取得制御部２３０は、情報取得要求に基づいてサーバ装置１２０が生成したクライアント識別子を受信し、音声通信要求部２３２にクライアント識別子を送信することもできる。
【００３８】
さらに、情報取得制御部２３０は、サーバ装置１２０からＷｅｂページを取得した後も、以下に示す音声通信要求部２３２による音声通信を実行させつつ、一方で、サーバ装置１２０とのセッションを維持することができる。情報取得制御部２３０は、サーバ装置１２０に、所定のポーリング周期でポーリングし、Ｗｅｂページが更新されているか否かを定期的に問い合わせる。サーバ装置１２０は、ポーリングしてきたクライアント装置１１０のＣｏｏｋｉｅの値をクライアント管理テーブルから検索し、そのクライアント装置１１０に関連付けられた更新情報が「更新有り」となっていると、更新されたＷｅｂページをクライアント装置１１０に提供する。
【００３９】
音声通信要求部２３２は、情報取得制御部２３０同様、サーバ装置１２０から提供されたＷｅｂページに含まれるＪａｖａＳｃｒｉｐｔ（登録商標）を通じて、Ｗｅｂページ上で予め定められている通話案内装置１３０との音声通信の確立を試みる（音声通信要求）。そして、音声通信要求部２３２は、通話案内装置１３０と音声通信を確立する。
【００４０】
このようにクライアント装置１１０と通話案内装置１３０との音声通信が確立し、ユーザ１１２と接客員１３２とが通話できる状態になると、ユーザ１１２は、接客員１３２にＷｅｂページに関する様々な説明を口頭で受けつつ、例えば、Ｗｅｂページに表示された商品を購入することができる。また、接客員１３２は、通話案内装置１３０を通じ、サーバ装置１２０を制御し、サーバ装置１２０がクライアント装置１１０に提供しているＷｅｂページを接客員１３２が主体となって変更することができるので、ユーザ１１２に対し、上述したポーリングを利用したプッシュ処理によって、所望するＷｅｂページを効率的に提示することができ、総合的なサービス向上を図ることが可能となる。
【００４１】
オフセット実行部２３４は、情報取得制御部２３０がポーリングを開始した後、そのポーリング周期を、サーバ装置１２０から指定された所定のポーリング周期で維持すると共に、サーバ装置１２０からオフセット時間の更新要求があると、ポーリングのタイミングを、更新要求のあったオフセット時間分オフセットする（時刻をずらす）。かかる構成により、サーバ装置１２０は、クライアント装置１１０のポーリング周期およびその開始タイミングを制御することが可能になる。オフセット実行部２３４の処理は後ほど詳述する。
【００４２】
（サーバ装置１２０）
図４は、サーバ装置１２０の電気的構成を示した機能ブロック図である。サーバ装置１２０は、サーバメモリ３１０と、サーバ通信部３１２と、サーバ制御部３１４とを含んで構成される。
【００４３】
サーバメモリ３１０は、ＨＤＤ、フラッシュメモリ、ＲＡＭ等の記憶媒体で構成され、後述するサーバ制御部３１４で利用されるプログラムや、Ｗｅｂブラウザを通じてクライアント装置１１０に提供可能な、Ｗｅｂページ、Ｗｅｂサイト、ドキュメント、音楽、静止画、動画などの情報を保持する。サーバ通信部３１２は、ＴＣＰ／ＩＰ等のプロトコルを用い、通信網１０２を通じてクライアント装置１１０および通話案内装置１３０と通信接続する。
【００４４】
サーバ制御部３１４は、中央処理装置（ＣＰＵ）を含む半導体集積回路で構成され、サーバメモリ３１０や他の電子回路と協働してサーバ装置１２０全体を管理および制御する。また、サーバ制御部３１４は、識別子生成部３２０、クライアント特定部３２２、情報提供制御部３２４、ポーリング分布導出部３２６、オフセット時間導出部３２８、更新要求部３３０としても機能する。
【００４５】
識別子生成部３２０は、クライアント装置１１０から受信した情報取得要求に応じて、クライアント装置１１０を特定するクライアント識別子を生成し、生成したクライアント識別子をクライアント装置１１０の接続情報と関連付け、クライアント管理テーブルとしてサーバメモリ３１０に保持させる。
【００４６】
図５は、クライアント管理テーブル３４０を説明するための説明図である。識別子生成部３２０は、クライアント装置１１０から受信した情報取得要求に応じて、サーバ装置１２０内で他の複数のクライアント装置１１０と識別するためのユニークな値を生成し、そのクライアント装置１１０のクライアント識別子３４２とする。識別子生成部３２０は、クライアント管理テーブル３４０に、生成したクライアント識別子３４２を登録し、さらに、図５の如く、セッション管理用のＣｏｏｋｉｅの値３４４、Ｓｏｃｋｅｔディスクリプタ３４６、現時点でクライアント装置１１０のＷｅｂブラウザに表示させているＷｅｂページを特定するページ識別子３４８、Ｗｅｂページの更新の有無および更新領域等を示す付加パラメータである更新情報３５０が関連付けられる。
【００４７】
ここで、Ｃｏｏｋｉｅの値３４４、Ｓｏｃｋｅｔディスクリプタ３４６は、クライアント装置１１０の接続情報として利用される。ページ識別子３４８は、個々のＷｅｂページを特定するためのユニークな値であり、情報提供システム１００内のコンテンツ管理番号やコンテンツのファイルパス、ＵＲＩ(Uniform Resource Identifier)、プラグイン・モジュールのファイルパスで置き換えることもできる。また、Ｓｏｃｋｅｔは、ＴＣＰ／ＩＰ通信を行う際の標準的なアプリケーション・インターフェースであり、Ｓｏｃｋｅｔディスクリプタ３４６は、クライアント装置１１０との通信接続上にある端点または通信路を特定可能なサーバ装置１２０内でのユニークな値であり、個々のＴＣＰ／ＩＰ接続を判別することができる。
【００４８】
クライアント特定部３２２は、クライアント装置１１０と通話案内装置１３０との音声通信に基づいて通話案内装置１３０が行った情報提供指示に応じ、クライアント管理テーブル３４０において、情報提供指示と共に受信したクライアント識別子に関連付けられたクライアント装置１１０の接続情報に基づき、通話案内装置１３０が音声通信を確立しているクライアント装置１１０を特定する。
【００４９】
情報提供制御部３２４は、クライアント装置１１０による情報取得要求に応じて、情報取得要求を送信したクライアント装置１１０にＷｅｂページを提供すると共に、通話案内装置１３０による情報提供指示に応じて、クライアント特定部３２２が特定したクライアント装置１１０に新たなＷｅｂページを提供する。
【００５０】
具体的に、情報提供制御部３２４は、クライアント装置１１０から、サーバ装置１２０自体のＵＲＬ(Uniform Resource Locator)に対してＷｅｂページを要求する情報取得要求を受信すると、ＨＴＴＰに従って、指定されたＵＲＬに対応するＷｅｂページをサーバメモリ３１０から抽出してクライアント装置１１０に送信し、クライアント装置１１０のＷｅｂブラウザにＷｅｂページを表示させる。
【００５１】
このとき、情報提供制御部３２４は、識別子生成部３２０が生成した、クライアント装置１１０を特定可能なクライアント識別子および予め定められたポーリング周期をＷｅｂページに埋め込む。さらに、情報提供制御部３２４は、セッション管理のためのＣｏｏｋｉｅを生成し、Ｗｅｂページと共にクライアント装置１１０に送信する。
【００５２】
こうして、クライアント装置１１０は、情報取得要求で要求したＷｅｂページを、自体のＷｅｂブラウザに表示すると共に、その後も、Ｃｏｏｋｉｅの値を用いたポーリングによって、定期的にＷｅｂページを更新することが可能となる。サーバ装置１２０は、クライアント管理テーブル３４０に関連付けて保持しているＣｏｏｋｉｅの値３４４と照合し、Ｃｏｏｋｉｅの値３４４が有ると、それに関連付けられた更新情報３５０を参照する。そして、更新情報３５０が「更新有り」となっていれば、ページ識別子３４８で特定される更新されたＷｅｂページをクライアント装置１１０に提供し、クライアント管理テーブル３４０の更新情報を「更新無し」に戻す。
【００５３】
このようにして、サーバ装置１２０に対する多くのアクセスの中から、通話案内装置１３０が音声通信を確立しているクライアント装置１１０を特定し、ユーザ１１２の操作を要すことなく、クライアント装置１１０のＷｅｂブラウザ上に表示されるＷｅｂページを更新させることが可能になる。
【００５４】
ポーリング分布導出部３２６は、ポーリング周期を複数均等に分割した所定の計測区間単位で、ポーリング周期内における複数のクライアント装置１１０から受信するポーリングの回数を示すポーリング分布を導出する。
【００５５】
オフセット時間導出部３２８は、ポーリング分布導出部３２６で導出されたポーリング分布を平準化（平均化）するように、複数のクライアント装置１１０のうちの少なくとも一部の、更新対象となったクライアント装置１１０についてポーリングの現在（ポーリング分布導出部３２６がポーリング分布を導出した時点）の送信タイミングからのオフセット時間を導出する。
【００５６】
更新要求部３３０は、更新対象となったクライアント装置１１０それぞれに、導出されたオフセット時間の更新要求を行う。クライアント装置１１０のオフセット実行部２３４は、かかる更新要求を受けて、ポーリングのタイミングを更新要求のあったオフセット時間分オフセットする。ポーリング分布導出部３２６、オフセット時間導出部３２８および更新要求部３３０の処理は後ほど詳述する。
【００５７】
（通話案内装置１３０）
図６は、通話案内装置１３０の電気的構成を示した機能ブロック図である。通話案内装置１３０は、操作部４１０と、表示部４１２と、音声入力部４１４と、音声出力部４１６と、案内メモリ４１８と、案内通信部４２０と、案内制御部４２２とを含んで構成される。
【００５８】
操作部４１０は、キーボード、ポインティングデバイス、十字キー、ジョイスティック、タッチパネル等で構成され、接客員１３２の操作入力を受け付ける。表示部４１２は、液晶ディスプレイ、有機ＥＬディスプレイ等で構成され、Ｗｅｂブラウザを通じて、サーバ装置１２０がクライアント装置１１０に現在提供しているＷｅｂページを表示したり、サーバ装置１２０が有するＷｅｂページであり、サーバ装置１２０がクライアント装置１１０に提供可能なＷｅｂページを表示したり、クライアント装置１１０に提供するため、通話案内装置１３０に予め準備している、または生成したＷｅｂページを表示する。
【００５９】
音声入力部４１４は、マイク等で構成され、Ａ／Ｄ変換、エンコーダ等を通じて接客員１３２の音声を音声信号として取り込む。音声出力部４１６は、スピーカ等で構成され、音声信号を音声に変換して出力する。また、本実施形態においては、音声入力部４１４と音声出力部４１６とが一体的に形成されたヘッドセットが用いられている。案内メモリ４１８は、ＨＤＤ、フラッシュメモリ、ＲＡＭ等の記憶媒体で構成され、後述する案内制御部４２２で利用されるプログラムや、サーバ装置１２０を通じてＷｅｂページとしてクライアント装置１１０に提供可能なドキュメント、音楽、静止画、動画などの情報を保持する。
【００６０】
案内通信部４２０は、ＴＣＰ／ＩＰ等のプロトコルを用い、通信網１０２を通じてサーバ装置１２０と通信接続を行う。また、案内通信部４２０は、ＳＩＰやＲＴＰ等のプロトコルを用い、クライアント装置１１０との音声通信も確立する。
【００６１】
案内制御部４２２は、中央処理装置（ＣＰＵ）を含む半導体集積回路で構成され、案内メモリ４１８や他の電子回路と協働して通話案内装置１３０全体を管理および制御する。また、案内制御部４２２は、音声通信受付部４３０、情報提供指示部４３２としても機能する。
【００６２】
音声通信受付部４３０は、クライアント装置１１０の音声通信要求に応じて、クライアント装置１１０と音声通信を確立すると共に、クライアント装置１１０から、例えば、ＲＴＰパケットに重畳されて送信されたクライアント識別子を受信する。音声通信受付部４３０によって、通話案内装置１３０とクライアント装置１１０との間で音声通信が確立されると、その会話内容に応じ、接客員１３２からユーザ１１２に情報を提示するのが望ましい場面が生じる。情報提供指示部４３２は、音声通信受付部４３０が受信したクライアント識別子を用いて、サーバ装置１２０に対し、クライアント識別子に関連付けられたクライアント装置１１０への、ユーザ１１２に提示するコンテンツを含む新たなＷｅｂページの情報提供指示を行う。サーバ装置１２０は、受信したクライアント識別子を用いて、クライアント装置１１０を特定し、特定したクライアント装置１１０に提供するＷｅｂページを、接客員１３２が選択したコンテンツを含むＷｅｂページに更新する。
【００６３】
以上説明したクライアント装置１１０、サーバ装置１２０、通話案内装置１３０によって、クライアント装置１１０によるＷｅｂページの閲覧と、接客員１３２との通話とを連携させ、接客員１３２が主体となってユーザ１１２に様々な情報を提供することが可能となる。以下、クライアント装置１１０とサーバ装置１２０とのポーリングを利用したプッシュ処理について詳述する。
【００６４】
（ポーリング分布導出処理）
図７は、ポーリング分布を示した説明図である。クライアント装置１１０からサーバ装置１２０にポーリングによるアクセスがある状況下において、ポーリング分布導出部３２６は、クライアント装置１１０からアクセスがあると、そのアクセスがあった時刻を取得し、ポーリング周期Ｔｐｃを複数に分割した（図７では１２に分割した）計測区間単位でアクセス数（ポーリング数）を計数する。具体的に、ポーリング周期Ｔｐｃの開始時刻をＴｐｓ、ポーリング周期をＴｐｃ、ポーリング周期内の計測区間の数（分割数）をｍ（ここでは１２）、任意のポーリング時刻をＴａとすると、計測区間の時間長Ｔｒは、Ｔｒ＝Ｔｐｃ／ｍとなり、ポーリング時刻Ｔａが計数される計測区間Ｒｎは、Ｒｎ＝｛（Ｔａ―Ｔｐｓ）  ｍｏｄ  Ｔｐｃ｝／Ｔｒ（ただし、ｍｏｄはモジュロ演算）となる。ここでは、すべて整数によって計算可能なので処理負荷が少なくて済む。
【００６５】
こうして計算された計数結果は、図７のようなヒストグラム（計測区間毎の棒グラフ）で表すことができる。このとき、ポーリング周期Ｔｐｃの開始時刻Ｔｐｓは、サーバ装置１２０で任意に決めることができる。したがって、上記１２分割した計測区間Ｒｎは、サーバ装置１２０が任意に決定したポーリング周期Ｔｐｃの開始時刻Ｔｐｓを基準に定まる。本実施形態では、サーバ装置１２０が、各クライアント装置１１０のポーリング周期を一律に設定しているので、ほぼ等しいポーリング分布の推移がポーリング周期毎に繰り返される。
【００６６】
（オフセット時間導出処理）
上述したように、ポーリング分布は周期的に繰り返される。したがって、図７のように、ポーリング周期Ｔｐｃ内でアクセスが偏ると、アクセス数が少ない計測区間がある一方で、アクセス数が多い計測区間が生じ、さらに、その傾向が継続することとなる。オフセット時間導出部３２８は、ポーリング分布導出部３２６で導出されたポーリング分布のこのような偏りを平準化するように、複数のクライアント装置１１０のうちの少なくとも一部の、更新対象となったクライアント装置１１０について、ポーリングのポーリング分布導出部３２６がポーリング分布を導出した時点での送信タイミングからのオフセット時間を導出する。
【００６７】
具体的に、オフセット時間導出部３２８は、上記の平準化処理の必要性を判定する。オフセット時間導出部３２８は、まず、ポーリング周期内のポーリング分布のアクセス数（ポーリング数）の平均値Ａｖ＿ｐを導出する。アクセス周期内のアクセス数の平均値Ａｖ＿ｐは、ポーリング周期内の全アクセス数をＣｏｕｎｔ＿ｐa、ポーリング周期内の計測区間の数（分割数）をｍとすると、Ａｖ＿ｐ＝Ｃｏｕｎｔ＿ｐa／ｍで表すことができる。
【００６８】
続いて、オフセット時間導出部３２８は、ポーリング周期のポーリング分布における極大値が、導出した平均値Ａｖ＿ｐに所定の不感帯値を加算した閾値Ｔｈｒを超えたか否かを判定する。ここで、不感帯を設けているのは、全てのクライアント装置１１０に対してポーリング周期のオフセットを指示すると、サーバ装置１２０の処理負担が増え、頻繁に制御動作が発生してしまうからであり、不感帯を設けることで、このような処理負担を軽減することができる。不感帯値は情報提供システム１００の設定に応じて適宜決めればよい。
【００６９】
したがって、オフセット時間導出部３２８は、ポーリング分布における極大値が閾値を超えると、平準化処理の必要性があると判定し、その閾値Ｔｈｒを超えた計測区間のアクセスに対して平準化処理を実行する。
【００７０】
上記平準化処理は、複数のクライアント装置１１０のうちの一部のクライアント装置１１０のオフセット時間をオフセットし、クライアント装置１１０がポーリングを実行する計測区間を移動することで行われ、ポーリング分布における極大値が閾値Ｔｈｒを超える度に繰り返し、実行される。以下、その平準化処理のアルゴリズムの一例を示す。
【００７１】
図８は、平準化処理の流れを説明するためのタイミングチャートである。図８も図７同様、ポーリング分布がヒストグラムで示され、各計測区間Ｒｎ（Ｒ１〜Ｒ１２）のアクセス数が縦軸に示されている。また、図８における一点鎖線は平均値Ａｖ＿ｐを、破線は不感帯値を加えた閾値Ｔｈｒを示している。
【００７２】
オフセット時間導出部３２８は、閾値Ｔｈｒを超えた計測区間Ｒｎにポーリングしているクライアント装置１１０のうち閾値を超えた分のクライアント装置１１０を更新対象とし、更新対象となったクライアント装置１１０を、閾値Ｔｈｒを超えていない計測区間Ｒｍにポーリングさせるようにオフセット時間の変更を通じて計測区間を移動させる。
【００７３】
例えば、図８（ａ）のポーリング周期Ｔｐｃ１においては、計測区間Ｒ８のアクセス数が閾値Ｔｈｒを超えているので、オフセット時間導出部３２８は、次のポーリング周期Ｔｐｃ２においてアクセス数に余裕のある計測区間を探し、例えば、図８（ｂ）の如く、次のポーリング周期Ｔｐｃ２の計測区間Ｒ１のアクセス数に余裕があれば、平均値Ａｖ＿ｐとポーリング周期Ｔｐｃ２の計測区間Ｒ１におけるアクセス数との差分を超えない範囲で、ポーリング周期Ｔｐｃ１の計測区間Ｒ８のアクセスの閾値Ｔｈｒを超えたハッチングを施した部分のアクセスをポーリング周期Ｔｐｃ２の計測区間Ｒ１に移動させる。このとき、オフセット時間導出部３２８は、計測区間Ｒ１にポーリング周期Ｔｐｃ１の計測区間Ｒ８のアクセスを移動することを記憶する。
【００７４】
また、ポーリング周期Ｔｐｃ１の計測区間Ｒ８のアクセスを移動した後の図８（ｂ）のポーリング周期Ｔｐｃ１においても、計測区間Ｒ９のアクセス数が閾値Ｔｈｒを超えているので、オフセット時間導出部３２８は、次のポーリング周期Ｔｐｃ２において、さらにアクセス数に余裕のある計測区間を探し、例えば、図８（ｃ）の如く、次のポーリング周期Ｔｐｃ２の計測区間Ｒ１のアクセス数に余裕があれば、ポーリング周期Ｔｐｃ１の計測区間Ｒ９のアクセスの閾値Ｔｈｒを超えたハッチングを施した部分のアクセスをポーリング周期Ｔｐｃ２の計測区間Ｒ１に移動させる。
【００７５】
ただし、ポーリング周期Ｔｐｃ２の計測区間Ｒ１には、すでにポーリング周期Ｔｐｃ１の計測区間Ｒ８のアクセスの移動が決まっているので、ポーリング周期Ｔｐｃ２の計測区間Ｒ１には、図８（ｃ）においてクロスハッチングが施された分しか移動することができず、ポーリング周期Ｔｐｃ１の計測区間Ｒ９の移動すべき残りのアクセスは、アクセス数に余裕のある他の計測区間、例えば、ポーリング周期Ｔｐｃ２の計測区間Ｒ２に、平均値Ａｖ＿ｐとポーリング周期Ｔｐｃ２の計測区間Ｒ２におけるアクセス数との差分を超えない範囲で移動する。このようにしてポーリング周期Ｔｐｃ１において閾値Ｔｈｒを超えるすべての計測区間Ｒｎを処理すると、図８（ｄ）のようにアクセス分布が閾値Ｔｈｒ内で平準化されることとなる。
【００７６】
アクセスの移動は、移動元の計測区間と移動先の計測区間との時間差分だけクライアント装置１１０のオフセット時間を更新することで為される。さらに、本実施形態において、オフセット時間導出部３２８は、オフセット時間を計測区間Ｒｎで正規化された乱数値により振り分ける。
【００７７】
例えば、アクセス時刻をＴａ、移動先の計測区間の開始時刻をＴｄ、計測区間で正規化した乱数値をＴｒａｎｄとすると（図８（ａ）参照）、オフセット時間Ｔｏは、Ｔｏ＝Ｔｄ−Ｔａ＋Ｔｒａｎｄで表される。また、次のポーリング周期の開始時刻をＴｎｐ、移動先の計測区間の番号をｎ、計測区間の時間長をＴｒとすると、移動先の計測区間の開始時刻Ｔｄは、Ｔｄ＝Ｔｎｐ＋（ｎ−１）×Ｔｒで表すことができる。このようにオフセット時間に乱数値を加えることで、計測区間内でアクセスを分散することが可能となる。
【００７８】
オフセット時間導出部３２８は、このようにして導出されたオフセット時間Ｔｏをポーリング周期Ｔｐｃ１においてクライアント装置１１０に伝達し、次のポーリング周期Ｔｐｃ２のオフセット分布を平準化する。
【００７９】
また、ここでは、無用な処理による処理負荷の増大を回避すべく、平均値Ａｖ＿ｐに不感帯値を加えた閾値Ｔｈｒのみを利用し、極大値がその閾値Ｔｈｒを超えた場合に平準化処理を行うとしているが、かかる場合に限らず、例えば、平均値Ａｖ＿Ｐから不感帯値を減算した閾値も利用して、アクセス数が少ない計測区間が生じると、積極的にその計測区間に他のアクセスを移動するといった処理を行ってもよい。
【００８０】
（更新要求処理）
更新要求部３３０は、更新対象となったクライアント装置１１０それぞれに、導出されたオフセット時間の更新要求を行う。このとき、更新要求部３３０は、クライアント装置１１０から受信したポーリングへのレスポンスのヘッダフィールドを通じてクライアント装置１１０にオフセット時間の更新要求を行う。例えば、本実施形態のようなＷｅｂサービスであれば、アクセスはＨＴＴＰリクエストとなるので、レスポンスのヘッダもＨＴＴＰレスポンスとして以下のような記述になる。
HTTP/1.1 200 OK
Date: Tue, 30 Mar 2010 09:40:06 GMT
Server: ○○Server
Content-Type: text/html
Content-Length: 300
x-polling-offset: 1000
このレスポンスにおける最後の行の「x-polling-offset: 1000」がオフセット時間の指定に相当する。具体的に、最後の行のうち「x-polling-offset」がポーリングアクセスをオフセットさせる指示を表す部分で、そのあとの「1000」の部分がオフセット時間（ここではミリ秒）を表している。
【００８１】
一方、クライアント装置１１０のオフセット実行部２３４は、かかる更新要求を受けて、ポーリングのタイミングを、更新要求のあったオフセット時間分オフセットする。ここでは、周期タイマを用いてポーリングをしていた場合を例に挙げ、クライアント装置１１０の動作を図９のフローチャートに基づいて説明する。
【００８２】
クライアント装置のオフセット実行部２３４は、ポーリングに対するレスポンスを受信すると、まずレスポンスのヘッダフィールドを読み取り（Ｓ４００）、ヘッダフィールドにオフセット時間の更新要求が示されているか否か判定する（Ｓ４０２）。かかる更新要求判定において、オフセット時間の更新要求を示されていない、または、示されているがその値がゼロや負の値である等、有効なものでなければ（Ｓ４０２におけるＮＯ）、オフセット実行部２３４は、オフセットを実行せず、それまでの設定通りのポーリング周期でポーリングを繰り返す。
【００８３】
更新要求判定において、オフセット時間の更新要求が示され、その値が有効であれば（Ｓ４０２におけるＹＥＳ）、一旦、周期的にポーリング動作を指示している周期タイマを止め（Ｓ４０４）、新たに指示されたオフセット時間後にポーリングを行うように、タイマにオフセット時間を設定する（Ｓ４０６）。こうして、オフセット時間が経過すると、周期的なポーリングを実行するためのポーリング周期が設定され（Ｓ４０８）、クライアント装置１１０は、再び、オフセット時間の更新があるまで、オフセット時間分オフセットされたポーリング周期でポーリングを行うこととなる。
【００８４】
（変形例）
上述した実施形態において、オフセット時間導出部３２８は、ポーリング分布の極大値が閾値を超えた場合、ポーリング分布導出部３２６で導出されたポーリング分布を平準化するように、閾値Ｔｈｒを超えたクライアント装置１１０についてのみポーリングのオフセット時間を導出していたが、他の例として、複数のクライアント装置１１０全てを更新対象としてもよく、その場合、更新対象となったクライアント装置１１０のオフセット時間をポーリング周期で正規化された乱数値としてもよい。
【００８５】
図１０は、変形例によるオフセット時間導出部３２８の動作を説明するための説明図である。オフセット時間導出部３２８は、図１０（ａ）のように、ポーリング周期Ｔｃｐ１におけるポーリング分布の極大値が閾値を超えた場合、全てのクライアント装置１１０の各アクセス時刻Ｔａとポーリング周期Ｔｃｐ１の終了時刻であるＴｅとの差分にポーリング周期の時間幅で正規化した乱数値Ｔｒｐｃを加算してオフセット値Ｔｏを導出する（Ｔｏ＝Ｔｅ−Ｔａ＋Ｔｒｐｃ）。このように変形例では、上述した実施形態とオフセット時間の更新要求を行う範囲と、オフセット時間の算出アルゴリズムが異なることとなる。
【００８６】
こうして、全クライアント装置１１０に対し、ポーリング周期Ｔｐｃ１においてアクセスタイミングの変更指示を行うことで、図１０（ｂ）に示すように、ポーリング周期Ｔｐｃ２では、アクセスタイミングが乱数で再配置され、ポーリング分布はほぼ平均値Ａｖ＿ｐで平準化される。こうして、サーバ装置１２０の処理負荷を確実に均一化することができる。
【００８７】
以上、説明した情報提供システム１００によって、複数のクライアント装置１１０のポーリング周期内におけるポーリングの偏りを、クライアント装置１１０のポーリング周期のオフセット時間を積極的に変更することで回避し、サーバ装置１２０へのアクセス集中による負荷増大を防止して、Ｗｅｂページの安定提供を図ることが可能となる。
【００８８】
特に、本実施形態のように、ユーザ１１２が接客側の接客員１３２と対話しながらＷｅｂブラウザを介して商品の購入を試みる等の情報提供システム１００では、ユーザ１１２と接客員１３２とが通話している間、長時間に渡り各クライアント装置１１０とポーリング周期でのポーリングが維持されるので、ポーリング周期のオフセット自体を移動することが非常に効果的である。
【００８９】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００９０】
なお、本明細書の情報提供方法における各工程は、必ずしもシーケンス図およびフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。
【産業上の利用可能性】
【００９１】
本発明は、ユーザが所望する情報を、通信網を介して提供するサーバ装置および情報提供方法に利用することができる。
【符号の説明】
【００９２】
１００  …情報提供システム
１１０  …クライアント装置
１２０  …サーバ装置
２３４  …オフセット実行部
３２４  …情報提供制御部
３２６  …ポーリング分布導出部
３２８  …オフセット時間導出部
３３０  …更新要求部
【図１】
0005578107.tif 000002
【図２】
0005578107.tif 000003
【図３】
0005578107.tif 000004
【図４】
0005578107.tif 000005
【図５】
0005578107.tif 000006
【図６】
0005578107.tif 000007
【図７】
0005578107.tif 000008
【図８】
0005578107.tif 000009
【図９】
0005578107.tif 000010
【図１０】
0005578107.tif 000011