(57)【要約】【課題】クライアント装置との双方向通信の効率化を図ること。【解決手段】通信制御装置１０１は、クライアント装置１０２から接続要求Ｒ１を受け付けた場合、クライアント装置１０２と接続する。通信制御装置１０１は、記憶部１１０を参照して、接続中のクライアント装置１０２から要求されるデータＤの更新頻度Ｆが閾値Ｆth未満か否かを判定する。通信制御装置１０１は、データＤの更新頻度Ｆが閾値Ｆth未満の場合、クライアント装置１０２に再接続指示を送信する。通信制御装置１０１は、再接続指示を送信した結果、クライアント装置１０２との接続を切断する。クライアント装置１０２は、通信制御装置１０１から再接続指示を受け付けた場合、通信制御装置１０１との通信方式を、ステートフル通信からステートレス通信に変更する。【選択図】図１
2014017563.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
クライアント装置から要求されるデータに基づく前記クライアント装置へのデータ通信を、前記クライアント装置との接続状態を維持して繰り返し行える第１の通信方式で前記クライアント装置と接続中に、前記データが更新される頻度を表す情報を記憶する記憶部を参照して、前記データの更新頻度が閾値未満か否かを判定し、
前記データの更新頻度が前記閾値未満の場合、前記データ通信が行われる度に前記クライアント装置との接続を切断する第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信し、
前記再接続指示を送信した結果、前記クライアント装置との接続を切断する、
処理を実行することを特徴とする通信制御方法。
【請求項２】
前記コンピュータが、
前記再接続指示を送信した結果、前記第２の通信方式での接続要求を前記クライアント装置から受け付けた場合、前記記憶部を参照して、前記データの更新頻度が前記閾値未満か否かを判定し、
前記データの更新頻度が前記閾値以上の場合、前記第１の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信する、
処理を実行することを特徴とする請求項１に記載の通信制御方法。
【請求項３】
前記記憶部は、前記データが更新された更新日時を表すログを記憶しており、
前記コンピュータが、
前記記憶部に記憶されている前記データの更新日時を表すログに基づいて、前記データの更新頻度が閾値未満となる期間を特定する処理を実行し、
前記判定する処理は、
前記第１の通信方式で前記クライアント装置と接続中の時点が、特定した前記期間内か否かを判定し、
前記送信する処理は、
前記期間内と判定した場合、前記第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信することを特徴とする請求項１または２に記載の通信制御方法。
【請求項４】
前記コンピュータが、
前記再接続指示を送信した結果、前記第２の通信方式での接続要求を前記クライアント装置から受け付けた時点が前記期間内か否かを判定し、
前記期間外と判定した場合、前記第１の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信する、
処理を実行することを特徴とする請求項３に記載の通信制御方法。
【請求項５】
前記コンピュータが、
接続中のクライアント装置を特定する情報を参照して、前記接続中のクライアント装置の接続数が所定値以上となったか否かを判断し、
前記接続中のクライアント装置の接続数が前記所定値以上となった場合、前記接続中のクライアント装置から要求されるデータのうち更新頻度が最も低いデータの要求元であり、かつ、前記第１の通信方式で接続中のクライアント装置を特定する、処理を実行し、
前記送信する処理は、
特定した前記クライアント装置に、前記第２の通信方式での接続要求を行うよう指示する再接続指示を送信することを特徴とする請求項１乃至４のいずれか一つに記載の通信制御方法。
【請求項６】
前記送信する処理は、
前記第２の通信方式での接続要求を、所定の時間間隔で行うよう指示する再接続指示を前記クライアント装置に送信することを特徴とする請求項１乃至５のいずれか一つに記載の通信制御方法。
【請求項７】
コンピュータに、
クライアント装置から要求されるデータに基づく前記クライアント装置へのデータ通信を、前記クライアント装置との接続状態を維持して繰り返し行える第１の通信方式で前記クライアント装置と接続中に、前記データが更新される頻度を表す情報を記憶する記憶部を参照して、前記データの更新頻度が閾値未満か否かを判定し、
前記データの更新頻度が前記閾値未満の場合、前記データ通信が行われる度に前記クライアント装置との接続を切断する第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信し、
前記再接続指示を送信した結果、前記クライアント装置との接続を切断する、
処理を実行させることを特徴とする通信制御プログラム。
【請求項８】
クライアント装置から要求されるデータに基づく前記クライアント装置へのデータ通信を、前記クライアント装置との接続状態を維持して繰り返し行える第１の通信方式で前記クライアント装置と接続中に、前記データが更新される頻度を表す情報を記憶する記憶部を参照して、前記データの更新頻度が閾値未満か否かを判定する判定部と、
前記判定部によって前記データの更新頻度が前記閾値未満と判定された場合、前記データ通信が行われる度に前記クライアント装置との接続を切断する第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信する送信部と、
前記送信部によって前記再接続指示が送信された結果、前記クライアント装置との接続を切断する切断部と、
を有することを特徴とする通信制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信制御方法、通信制御プログラムおよび通信制御装置に関する。
【背景技術】
【０００２】
ウェブソケット（ＷｅｂＳｏｃｋｅｔ）は、サーバとクライアント装置が双方向通信を行うための技術である。ウェブソケットでは、サーバとクライアント装置は、コネクションを確立した後は、そのコネクションを切断しない限り、データのやり取りをソケット通信で行うことができる。
【０００３】
関連する先行技術として、例えば、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）を利用した情報配信において、通信リソースをユーザに対して効率的に割り当てるための情報配信システムがある。具体的には、例えば、情報配信システムは、通信端末装置と情報配信サーバ装置と配信中継装置とアクセス中継装置とを備えて構成される。アクセス中継装置は、コンテンツを構成するオブジェクトを単位として設定された通信ポリシーに基づいて、他の装置との間で通信を行うためのコネクション、セッション、またはトンネルを確立する。アクセス中継装置は、オブジェクトを単位として設定された通信ポリシーに基づいて、コネクション、セッション、またはトンネルを介したデータの中継処理を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１５３７７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、サーバとクライアント装置とのコネクションを維持している間は、サーバのネットワークリソースをクライアント装置に割り当て続けることになり、サーバのネットワークリソースの使用量の増大化を招くという問題がある。
【０００６】
一つの側面では、本発明は、クライアント装置との双方向通信の効率化を図る通信制御方法、通信制御プログラムおよび通信制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面によれば、クライアント装置から要求されるデータに基づく前記クライアント装置へのデータ通信を前記クライアント装置との接続状態を維持して繰り返し行える第１の通信方式で前記クライアント装置と接続中に、前記データが更新される頻度を表す情報を記憶する記憶部を参照して、前記データの更新頻度が閾値未満か否かを判定し、前記データの更新頻度が前記閾値未満の場合、前記データ通信が行われる度に前記クライアント装置との接続を切断する第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信し、前記再接続指示を送信した結果、前記クライアント装置との接続を切断する通信制御方法、通信制御プログラムおよび通信制御装置が提案される。
【発明の効果】
【０００８】
本発明の一態様によれば、クライアント装置との双方向通信の効率化を図ることができるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態１にかかる通信制御方法の一実施例を示す説明図である。
【図２】図２は、情報提供システム２００のシステム構成例を示す説明図である。
【図３】図３は、サーバ２０１のハードウェア構成例を示すブロック図である。
【図４】図４は、クライアント装置２０２のハードウェア構成例を示すブロック図である。
【図５】図５は、更新頻度ＤＢ２２０の記憶内容の一例を示す説明図である。
【図６】図６は、更新ログテーブル６００の記憶内容の一例を示す説明図（その１）である。
【図７】図７は、アクセスログ管理テーブル７００の記憶内容の一例を示す説明図（その１）である。
【図８】図８は、実施の形態１にかかるサーバ２０１の機能的構成例を示すブロック図である。
【図９】図９は、通信変更プログラムＰの具体例を示す説明図である。
【図１０】図１０は、クライアント装置２０２の機能的構成例を示すブロック図である。
【図１１】図１１は、実施の形態１にかかるサーバ２０１の通信制御処理手順の一例を示すフローチャートである。
【図１２】図１２は、実施の形態１にかかるクライアント装置２０２の通信処理手順の一例を示すフローチャートである。
【図１３】図１３は、切替期間テーブル１３００の記憶内容の一例を示す説明図である。
【図１４】図１４は、更新ログテーブル６００の記憶内容の一例を示す説明図（その２）である。
【図１５】図１５は、実施の形態２にかかるサーバ２０１の機能的構成例を示すブロック図である。
【図１６】図１６は、実施の形態２にかかるサーバ２０１の切替期間算出処理手順の一例を示すフローチャートである。
【図１７】図１７は、実施の形態２にかかるサーバ２０１の通信制御処理手順の一例を示すフローチャートである。
【図１８】図１８は、店舗情報管理テーブル１８００の記憶内容の一例を示す説明図である。
【図１９】図１９は、店舗状況管理テーブル１９００の記憶内容の一例を示す説明図である。
【図２０】図２０は、管理画面の画面例を示す説明図である。
【図２１】図２１は、アクセスログ管理テーブル７００の記憶内容の一例を示す説明図（その２）である。
【図２２】図２２は、実施の形態３にかかるサーバ２０１の機能的構成例を示すブロック図である。
【図２３】図２３は、実施の形態３にかかるサーバ２０１の第１の通信制御処理手順の一例を示すフローチャートである。
【図２４】図２４は、実施の形態３にかかるサーバ２０１の第２の通信制御処理手順の一例を示すフローチャートである。
【図２５】図２５は、実施の形態３にかかるサーバ２０１の第３の通信制御処理手順の一例を示すフローチャートである。
【図２６】図２６は、店舗状況と通信形式の関係を示す説明図である。
【図２７】図２７は、複数の店舗の店舗状況と通信形式の関係を示す説明図である。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかる通信制御方法、通信制御プログラムおよび通信制御装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態１）
図１は、実施の形態１にかかる通信制御方法の一実施例を示す説明図である。図１において、通信制御装置１０１は、記憶部１１０を有し、クライアント装置１０２と双方向通信可能なコンピュータである。通信制御装置１０１は、例えば、クライアント装置１０２が要求するデータＤをクライアント装置１０２に提供するウェブサーバである。
【００１２】
クライアント装置１０２は、通信制御装置１０１と双方向通信可能なコンピュータである。クライアント装置１０２には、通信制御装置１０１から提供されるデータＤをユーザが閲覧するためのソフトウェアがインストールされている。データＤは、例えば、飲食店、鉄道、飛行機の空席状況や予約状況、株価や為替のリアルタイムチャート、野球やサッカーの試合状況などの情報内容が時々刻々と更新される情報である。
【００１３】
ここで、データＤの更新をリアルタイムに反映して、更新後のデータＤをリアルタイムにユーザに提供するリアルタイムウェブと呼ばれる仕組みがある。リアルタイムウェブを実現するための技術として、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）の標準仕様であるＨＴＭＬ５で提案されているウェブソケットがある。
【００１４】
ウェブソケットでは、サーバは、クライアント装置とのコネクションを確立した後は、そのコネクションを切断しない限り通信手順を意識することなくデータのやり取りをソケット通信で行うことができる。しかし、サーバは、クライアント装置とのコネクションを維持している間は、ネットワークリソースをクライアント装置に割り当て続けることになる。このため、サーバに接続中のユーザ数の増加にともなって、サーバのネットワークリソースが枯渇してしまう場合がある。
【００１５】
一方、サーバのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）リソースは、クライアント装置との間でデータのやり取りが行われるときに消費される。このため、サーバのネットワークリソースが枯渇してもＣＰＵリソースには余裕があることが多く、サーバのＣＰＵリソースを充分に活用できない場合がある。
【００１６】
そこで、実施の形態１では、通信制御装置１０１は、例えば、ウェブソケットを用いて接続中のクライアント装置１０２がアクセスするデータＤの更新頻度Ｆが閾値Ｆth未満か否かを判定する。そして、通信制御装置１０１は、データＤの更新頻度Ｆが閾値Ｆth未満の場合に、クライアント装置１０２との通信形式を、データ通信が行われる度に接続を切断する通信形式に変更させる。これにより、通信制御装置１０１のネットワークリソースの枯渇を防いで、通信制御装置１０１のＣＰＵリソースを効率的に活用する。以下、実施の形態１にかかる通信制御装置１０１の通信制御処理の一実施例について説明する。
【００１７】
（１）通信制御装置１０１は、クライアント装置１０２から接続要求Ｒ１を受け付けた場合、クライアント装置１０２と接続する。具体的には、例えば、通信制御装置１０１は、自装置のネットワークリソースをクライアント装置１０２に割り当てることにより、クライアント装置１０２とのコネクションを確立する。ネットワークリソースは、例えば、通信制御装置１０１のポートである。
【００１８】
ここで、接続要求Ｒ１は、ステートフル通信の接続要求である。ステートフル通信とは、クライアント装置１０２が要求するデータＤに基づくクライアント装置１０２へのデータ通信を、クライアント装置１０２との接続状態を維持して繰り返し行える通信方式である。ウェブソケットの通信方式は、ステートフル通信である。
【００１９】
また、データＤに基づくデータ通信とは、例えば、クライアント装置１０２からのデータ要求に対するデータＤの送信、データＤが更新された際のクライアント装置１０２への更新後のデータＤの送信などである。さらに、データＤに基づくデータ通信には、例えば、クライアント装置１０２からのデータ要求に対するデータＤが前回のデータ要求から更新されていない旨のメッセージの送信も含まれる。
【００２０】
（２）通信制御装置１０１は、記憶部１１０を参照して、接続中のクライアント装置１０２から要求されるデータＤの更新頻度Ｆが閾値Ｆth未満か否かを判定する。記憶部１１０は、データＤが更新される更新頻度Ｆを表す情報を記憶するデータベースである。
【００２１】
リアルタイムウェブにおいて、更新頻度Ｆが高いほど、更新後のデータＤをユーザに対して提供する機会が多くなるため、通信制御装置１０１とクライアント装置１０２との接続状態を維持する必要性が高くなる。一方、更新頻度Ｆが低いほど、更新後のデータＤをユーザに対して提供する機会が少なくなるため、通信制御装置１０１とクライアント装置１０２と接続状態を維持する必要性が低くなる。
【００２２】
通信制御装置１０１は、データＤの更新頻度Ｆが閾値Ｆth未満か否かによって、クライアント装置１０２との接続状態を維持すべきか否かを判断する。閾値Ｆthは、例えば、更新頻度Ｆが閾値Ｆth以上となると、通信制御装置１０１がクライアント装置１０２との接続状態を維持すべきであると判断できる値に設定される。
【００２３】
図１の例では、データＤの更新頻度Ｆが閾値Ｆth未満のため、通信制御装置１０１とクライアント装置１０２と接続状態を維持する必要性が低い場合を想定する。
【００２４】
（３）通信制御装置１０１は、データＤの更新頻度Ｆが閾値Ｆth未満の場合、クライアント装置１０２に再接続指示を送信する。ここで、再接続指示は、ステートレス通信の接続要求Ｒ２を行うよう指示するものである。ステートレス通信とは、クライアント装置１０２が要求するデータＤに基づくクライアント装置１０２へのデータ通信が行われる度にクライアント装置１０２との接続を切断する通信方式である。
【００２５】
また、通信制御装置１０１は、再接続指示に再接続時間Ｔを設定することにしてもよい。再接続時間Ｔは、ステートレス通信の接続要求Ｒ２を送信するタイミングを特定するものである。具体的には、例えば、通信制御装置１０１は、通信制御装置１０１への接続要求Ｒ２を再接続時間Ｔが経過した後に行うよう指示する再接続指示をクライアント装置１０２に送信する。
【００２６】
（４）通信制御装置１０１は、再接続指示を送信した結果、クライアント装置１０２との接続を切断する。この結果、クライアント装置１０２に割り当てられていた通信制御装置１０１のネットワークリソースが解放され、そのネットワークリソースを他のクライアント装置１０２に割り当て可能となる。
【００２７】
（５）クライアント装置１０２は、通信制御装置１０１から再接続指示を受け付けた場合、通信制御装置１０１との通信方式を、ステートフル通信からステートレス通信に変更する。そして、クライアント装置１０２は、通信制御装置１０１との接続が切断されてから再接続時間Ｔが経過した後に、ステートレス通信の接続要求Ｒ２を通信制御装置１０１に送信する。
【００２８】
この結果、通信制御装置１０１とクライアント装置１０２とが再接続されて、最新のデータＤが通信制御装置１０１からクライアント装置１０２に提供される。
【００２９】
このように、実施の形態１にかかる通信制御装置１０１によれば、クライアント装置１０２から要求されるデータＤの更新頻度Ｆからクライアント装置１０２との接続状態を維持する必要性を判断し、クライアント装置１０２との通信形式を変更することができる。
【００３０】
例えば、ステートフル通信で接続中のクライアント装置１０２との接続状態を維持する必要性が低い場合は、クライアント装置１０２との通信形式をステートレス通信に変更することができる。これにより、接続状態を維持する必要性が低いクライアント装置１０２に割り当てられていたネットワークリソースを解放して、そのネットワークリソースを他のクライアント装置１０２に割り当てることができる。
【００３１】
また、クライアント装置１０２との通信形式をステートレス通信に変更した結果、クライアント装置１０２との接続状態を維持する必要性が高くなれば、クライアント装置１０２との通信形式をステートフル通信に変更することができる。これにより、時々刻々と更新されるデータＤをユーザに提供する際のリアルタイム性を確保することができる。
【００３２】
これらのことから、通信制御装置１０１によれば、クライアント装置１０２との双方向通信の効率化を図ることができる。具体的には、例えば、通信制御装置１０１のネットワークリソースの枯渇を防いで、通信制御装置１０１のＣＰＵリソースを効率的に活用することができ、サービスを実現するためのコストを抑えることができる。
【００３３】
（情報提供システム２００のシステム構成例）
つぎに、図１に示した通信制御装置１０１をサーバ２０１に適用した場合を例に挙げて、実施の形態１にかかる情報提供システム２００について説明する。
【００３４】
図２は、情報提供システム２００のシステム構成例を示す説明図である。図２において、情報提供システム２００は、サーバ２０１と複数のクライアント装置２０２を含む。情報提供システム２００において、サーバ２０１とクライアント装置２０２は、有線または無線のネットワーク２１０を介して接続されている。ネットワーク２１０は、例えば、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などである。
【００３５】
ここで、サーバ２０１は、更新頻度ＤＢ（データベース）２２０を有し、ウェブソケットを用いて、クライアント装置２０２と双方向通信可能なコンピュータである。サーバ２０１は、例えば、ウェブサーバ、アプリケーションサーバ、データベースサーバ等により実現される。
【００３６】
更新頻度ＤＢ２２０は、クライアント装置２０２から要求されるデータＤと、データＤの更新頻度Ｆとを対応付けて記憶している。更新頻度ＤＢ２２０は、例えば、図１に示した記憶部１１０に相当する。更新頻度ＤＢ２２０の記憶内容については、図５を用いて後述する。
【００３７】
クライアント装置２０２は、ウェブソケットを用いて、サーバ２０１と双方向通信可能なコンピュータである。クライアント装置２０２は、図１に示したクライアント装置１０２に相当する。クライアント装置２０２は、例えば、ウェブブラウザがインストールされたＰＣ（パーソナル・コンピュータ）、ノートＰＣ、スマートフォン、携帯電話機、タブレット型コンピュータなどである。
【００３８】
情報提供システム２００において、サーバ２０１は、ステートフル通信で接続中のクライアント装置２０２から要求されるデータＤが更新されると、その都度、更新後のデータＤをクライアント装置２０２に送信することができる。また、クライアント装置２０２は、サーバ２０１に対してデータＤの取得要求を送信することにより、更新頻度ＤＢ２２０に記憶されているデータＤをサーバ２０１から取得することができる。
【００３９】
（サーバ２０１のハードウェア構成例）
図３は、サーバ２０１のハードウェア構成例を示すブロック図である。図３において、サーバ２０１は、ＣＰＵ３０１と、ＲＯＭ（Ｒｅａｄ‐Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０４と、磁気ディスクドライブ３０５と、磁気ディスク３０６と、を有している。また、各構成部はバス３００によってそれぞれ接続されている。
【００４０】
ここで、ＣＰＵ３０１は、サーバ２０１の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。
【００４１】
Ｉ／Ｆ３０４は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータ（例えば、クライアント装置２０２）に接続される。そして、Ｉ／Ｆ３０４は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ３０４には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４２】
磁気ディスクドライブ３０５は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０６に対するデータのリード／ライトを制御する。磁気ディスク３０６は、磁気ディスクドライブ３０５の制御で書き込まれたデータを記憶する。なお、サーバ２０１は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、キーボード、ディスプレイなどを有することにしてもよい。
【００４３】
（クライアント装置２０２のハードウェア構成例）
図４は、クライアント装置２０２のハードウェア構成例を示すブロック図である。図４において、クライアント装置２０２は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、磁気ディスクドライブ４０４と、磁気ディスク４０５と、Ｉ／Ｆ４０６と、ディスプレイ４０７と、キーボード４０８と、マウス４０９と、を有している。また、各構成部はバス４００によってそれぞれ接続されている。
【００４４】
ここで、ＣＰＵ４０１は、クライアント装置２０２の全体の制御を司る。ＲＯＭ４０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ４０３は、ＣＰＵ４０１のワークエリアとして使用される。磁気ディスクドライブ４０４は、ＣＰＵ４０１の制御にしたがって磁気ディスク４０５に対するデータのリード／ライトを制御する。磁気ディスク４０５は、磁気ディスクドライブ４０４の制御で書き込まれたデータを記憶する。
【００４５】
Ｉ／Ｆ４０６は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータ（例えば、サーバ２０１）に接続される。そして、Ｉ／Ｆ４０６は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ４０６には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４６】
ディスプレイ４０７は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ４０７は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＴＦＴ（Ｔｈｉｎ  Ｆｉｌｍ  Ｔｒａｎｓｉｓｔｏｒ）液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４７】
キーボード４０８は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス４０９は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。
【００４８】
なお、クライアント装置２０２は、上述した構成部のほか、例えば、光ディスクドライブ、光ディスク、スキャナ、プリンタなどを有することにしてもよい。
【００４９】
（更新頻度ＤＢ２２０の記憶内容）
つぎに、図２に示した更新頻度ＤＢ２２０の記憶内容について説明する。更新頻度ＤＢ２２０は、例えば、図３に示したＲＡＭ３０３、磁気ディスク３０６などの記憶装置により実現される。
【００５０】
図５は、更新頻度ＤＢ２２０の記憶内容の一例を示す説明図である。図５において、更新頻度ＤＢ２２０は、データ名、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）、データ内容および更新頻度のフィールドを有する。各フィールドに情報を設定することにより、データＤ１〜Ｄｎの更新頻度情報５００−１〜５００−ｎがレコードとして記憶されている。
【００５１】
ここで、データ名は、データＤを一意に識別する名称である。ＵＲＬは、データＤの格納場所を示している。データ内容は、データＤの内容を表す情報である。データ内容は、データＤが更新されると、その都度更新される。更新頻度は、データＤが更新される頻度を表している。
【００５２】
例えば、更新頻度情報５００−１は、データＤ１のデータ名「Ｄ１」、ＵＲＬ「／ｄａｔａＤ１／」、データ内容「・・・」および更新頻度「Ｆ１」を表している。
【００５３】
なお、以下の説明では、更新頻度ＤＢ２２０に記憶されているデータＤ１〜Ｄｎのうちの任意のデータを「データＤｉ」と表記し、データＤｉの更新頻度を「更新頻度Ｆｉ」と表記する場合がある（ｉ＝１，２，…，ｎ）。
【００５４】
（更新ログテーブル６００の記憶内容）
つぎに、サーバ２０１が用いる更新ログテーブル６００の記憶内容について説明する。更新ログテーブル６００は、例えば、図３に示したＲＡＭ３０３、磁気ディスク３０６などの記憶装置により実現される。
【００５５】
図６は、更新ログテーブル６００の記憶内容の一例を示す説明図（その１）である。図６において、更新ログテーブル６００は、データ名、更新日時および更新間隔のフィールドを有する。各フィールドに情報を設定することにより、更新ログ（例えば、更新ログ６００−１〜６００−４）がレコードとして記憶される。
【００５６】
ここで、データ名は、更新頻度ＤＢ２２０に記憶されているデータＤｉの名称である。更新日時は、データＤｉが更新された日時である。更新間隔は、データＤｉが更新された今回の更新日時と前回の更新日時との時間差を表している。ここでは、更新間隔の単位は［秒］である。
【００５７】
例えば、更新ログ６００−１は、データＤ１の更新日時「２０１２／３／２０  ９：００：００」および更新間隔「１」を示している。
【００５８】
なお、更新ログテーブル６００の記憶内容は、更新頻度ＤＢ２２０に記憶されているデータＤｉが更新されると、その都度更新される。具体的には、例えば、データＤｉが更新されると、サーバ２０１がデータ名、更新日時および更新間隔の各フィールドに情報を設定することにより、新たな更新ログがレコードとして記憶される。
【００５９】
（アクセスログ管理テーブル７００の記憶内容）
つぎに、サーバ２０１が用いるアクセスログ管理テーブル７００の記憶内容について説明する。アクセスログ管理テーブル７００は、例えば、図３に示したＲＡＭ３０３、磁気ディスク３０６などの記憶装置により実現される。
【００６０】
図７は、アクセスログ管理テーブル７００の記憶内容の一例を示す説明図（その１）である。図７において、アクセスログ管理テーブル７００は、ユーザ名、ＵＲＬおよびアクセス日時のフィールドを有する。各フィールドに情報を設定することにより、アクセスログ（例えば、アクセスログ７００−１〜７００−４）がレコードとして記憶される。
【００６１】
ここで、ユーザ名は、クライアント装置２０２のユーザを一意に識別する名称である。サーバ２０１は、例えば、ユーザ名からクライアント装置２０２のウェブブラウザを特定することができる。ユーザ名は、例えば、クライアント装置２０２のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）アドレスや、クライアント装置２０２のＩＰアドレスとクライアント装置２０２に割り当てられたポート番号との組み合わせなどであってもよい。
【００６２】
ＵＲＬは、クライアント装置２０２のユーザがアクセスしたデータＤｉのＵＲＬである。クライアント装置２０２のユーザがアクセスしたデータＤｉは、データＤｉのＵＲＬから特定することができる。アクセス日時は、クライアント装置２０２のユーザがデータＤｉにアクセスした日時である。
【００６３】
例えば、アクセスログ７００−１は、ユーザＵ１がアクセスしたデータＤ１のＵＲＬ「／ｄａｔａＤ１／」およびアクセス日時「２０１２／０３／２０  ０９：０５：００」を示している。アクセスログ管理テーブル７００によれば、サーバ２０１に接続中のユーザ数（アクセスログ数）を特定することができる。
【００６４】
なお、アクセスログには、サーバ２０１とクライアント装置２０２とがステートフル通信またはステートレス通信のいずれの通信形式を用いて接続中であるかを特定するための情報が含まれていてもよい。また、アクセスログ管理テーブル７００は、ステートフル通信で接続中のクライアント装置２０２を特定するためのアクセスログのみを記憶することにしてもよい。
【００６５】
（サーバ２０１の機能的構成例）
つぎに、実施の形態１にかかるサーバ２０１の機能的構成例について説明する。図８は、実施の形態１にかかるサーバ２０１の機能的構成例を示すブロック図である。図８において、サーバ２０１は、受付部８０１と、接続部８０２と、算出部８０３と、判定部８０４と、指示部８０５と、切断部８０６と、を含む構成である。受付部８０１〜切断部８０６は制御部となる機能であり、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０６などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。各機能部の処理結果は、例えば、ＲＡＭ３０３、磁気ディスク３０６などの記憶装置に記憶される。
【００６６】
受付部８０１は、クライアント装置２０２から接続要求を受け付ける機能を有する。クライアント装置２０２からの接続要求には、例えば、更新頻度ＤＢ２２０に記憶されているデータＤｉの取得要求が含まれている。また、クライアント装置２０２からの接続要求には、クライアント装置２０２のウェブブラウザを使用しているユーザのユーザ名が含まれていてもよい。具体的には、例えば、受付部８０１が、図３に示したＩ／Ｆ３０４を介して、クライアント装置２０２のウェブブラウザから送信された接続要求を受け付ける。
【００６７】
以下の説明では、クライアント装置２０２からの接続要求を「接続要求Ｒ」と表記し、特に、ステートフル通信の接続要求を「接続要求Ｒ１」と表記し、ステートレス通信の接続要求を「接続要求Ｒ２」と表記する場合がある。また、クライアント装置２０２のウェブブラウザを「ウェブブラウザＢ」と表記する場合がある。
【００６８】
接続部８０２は、クライアント装置２０２から接続要求Ｒが受け付けられた場合、クライアント装置２０２と接続する機能を有する。具体的には、例えば、接続部８０２が、通信相手を識別するためのポート番号をウェブブラウザＢに割り当てることにより、ウェブブラウザＢとの間のコネクションを確立する。
【００６９】
ここで、ポート番号は、サーバ２０１のネットワークリソースに相当するものである。割り当て可能なポート番号の数には限界がある。例えば、割り当て可能なポート番号は、０番〜６５５３５番である。ウェブブラウザＢとのコネクションが確立されると、サーバ２０１とウェブブラウザＢは、コネクションを切断しない限り通信手順を意識することなくデータＤｉのやり取りをソケット通信で行うことができる。
【００７０】
また、ウェブブラウザＢとのコネクションが確立されると、アクセスログ管理テーブル７００の記憶内容が更新される。具体的には、例えば、接続部８０２が、アクセスログ管理テーブル７００の各フィールドに情報を設定することにより、新たなアクセスログがレコードとして記憶される。この際、接続部８０２は、ステートフル通信でウェブブラウザＢとのコネクションを確立した場合に、新たなアクセスログをアクセスログ管理テーブル７００に登録することにしてもよい。
【００７１】
算出部８０３は、データＤｉが更新された更新日時に基づいて、データＤｉの更新頻度Ｆｉを算出する機能を有する。ここで、データＤｉの更新頻度Ｆｉは、サーバ２０１と、データＤｉを要求するクライアント装置２０２との接続状態を維持する必要性を判断する指標となるものである。
【００７２】
具体的には、例えば、まず、算出部８０３が、図６に示した更新ログテーブル６００の中からデータＤｉの更新ログを抽出する。つぎに、算出部８０３が、抽出したデータＤｉの更新ログに基づいて、データＤｉの更新間隔の平均値（以下、「平均更新間隔ｔ」という）を算出する。そして、算出部８０３が、算出したデータＤｉの平均更新間隔ｔの逆数を求めることにより、データＤｉの更新頻度Ｆｉ（Ｆｉ＝１／ｔ）を算出することにしてもよい。
【００７３】
算出されたデータＤｉの更新頻度Ｆｉは、例えば、更新頻度ＤＢ２２０に記憶される。具体的には、例えば、算出部８０３が、更新頻度ＤＢ２２０のデータＤｉの更新頻度フィールドに、算出したデータＤｉの更新頻度Ｆｉを上書きする。
【００７４】
また、データＤｉの更新頻度Ｆｉを算出する際に、算出部８０３が、更新ログテーブル６００の中から、データＤｉの更新日時が所定期間Ｘに含まれる更新ログを抽出することにしてもよい。所定期間Ｘは、例えば、現時点から単位時間（例えば、３０分、１時間、１２時間、２４時間など）遡った時点から現時点までの期間である。これにより、所定期間ＸにおけるデータＤｉの更新頻度Ｆｉを算出することができる。
【００７５】
判定部８０４は、接続中のクライアント装置２０２から要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定する機能を有する。ここで、接続中のクライアント装置２０２から要求されるデータＤｉは、例えば、図７に示したアクセスログ管理テーブル７００のＵＲＬから特定することができる。
【００７６】
また、上述したように、閾値Ｆthは、例えば、更新頻度Ｆｉが閾値Ｆth以上となると、サーバ２０１とクライアント装置２０２との接続状態を維持すべきと判断できる値に設定される。閾値Ｆthは、例えば、ＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０６などの記憶装置に記憶されている。
【００７７】
具体的には、例えば、判定部８０４が、更新頻度ＤＢ２２０を参照して、接続中のウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定する。これにより、サーバ２０１とクライアント装置２０２のウェブブラウザＢとの接続状態を維持すべきか否かを判定することができる。
【００７８】
なお、データＤｉの更新頻度Ｆｉと比較する閾値Ｆthとして、データＤｉとは異なるデータの更新頻度を用いることにしてもよい。具体的には、例えば、データＤｉの更新頻度Ｆｉと比較する閾値Ｆthとして、データＤｉとは異なるデータのうち更新頻度が最も低いデータの更新頻度を用いることにしてもよい。
【００７９】
指示部８０５は、判定部８０４によって判定された判定結果に基づいて、クライアント装置２０２に再接続指示を送信する機能を有する。ここで、再接続指示は、サーバ２０１への接続要求Ｒを行うようクライアント装置２０２に指示するものである。再接続指示には、第１の再接続指示と第２の再接続指示とがある。
【００８０】
具体的には、例えば、ステートフル通信で接続中のウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth未満の場合、指示部８０５が、Ｉ／Ｆ３０４を制御して、第１の再接続指示をウェブブラウザＢに送信する。第１の再接続指示は、サーバ２０１へのステートレス通信の接続要求Ｒ２を行うようウェブブラウザＢに指示するものである。
【００８１】
また、指示部８０５は、サーバ２０１へのステートレス通信の接続要求Ｒ２を所定の時間間隔で行うようウェブブラウザＢに指示する第１の再接続指示をウェブブラウザＢに送信することにしてもよい。具体的には、例えば、指示部８０５は、第１の再接続指示に再接続時間Ｔを設定することにしてもよい。
【００８２】
再接続時間Ｔは、クライアント装置２０２がステートレス通信の接続要求Ｒ２を送信するタイミングを特定するものである。再接続時間Ｔは、例えば、予め決められた時間（例えば、数秒、数十秒）であってもよく、また、データＤｉの平均更新間隔ｔから算出されることにしてもよい。
【００８３】
より具体的には、例えば、指示部８０５が、データＤｉの平均更新間隔ｔに定数αを乗算した値を再接続時間Ｔとして算出することにしてもよい。定数αは、例えば、「０．５」、「１．０」、「２．０」などである。また、指示部８０５は、再接続時間Ｔとして、クライアント装置２０２がステートレス通信の接続要求Ｒ２を送信する日時を設定することにしてもよい。
【００８４】
これにより、サーバ２０１との接続状態を維持する必要性が低いウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に変更させることができる。
【００８５】
また、例えば、ステートレス通信で接続中のウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth以上の場合、指示部８０５が、Ｉ／Ｆ３０４を制御して、第２の再接続指示をウェブブラウザＢに送信する。第２の再接続指示は、サーバ２０１へのステートフル通信の接続要求Ｒ１を行うようウェブブラウザＢに指示するものである。
【００８６】
これにより、サーバ２０１との接続状態を維持する必要性が高いウェブブラウザＢとの通信形式を、ステートレス通信からステートフル通信に変更させることができる。
【００８７】
より具体的には、例えば、ステートフル通信で接続中のウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth未満の場合、指示部８０５が、通信変更プログラムＰをウェブブラウザＢに送信することにしてもよい。通信変更プログラムＰは、サーバ２０１との通信方式を変更するためのスクリプト（例えば、ＪａｖａＳｃｒｉｐｔ：登録商標）である。
【００８８】
すなわち、通信変更プログラムＰは、第１の再接続指示を受け付けた場合に、サーバ２０１との通信方式をステートフル通信からステートレス通信に変更するスクリプトである。また、通信変更プログラムＰは、第２の再接続指示を受け付けた場合に、サーバ２０１との通信方式をステートレス通信からステートフル通信に変更するスクリプトである。
【００８９】
通信変更プログラムＰによれば、ウェブブラウザＢは、第１の再接続指示を受け付けた場合に、サーバ２０１との通信方式をステートフル通信からステートレス通信に変更することができる。また、ウェブブラウザＢは、第２の再接続指示を受け付けた場合に、サーバ２０１との通信方式をステートレス通信からステートフル通信に変更することができる。
【００９０】
また、指示部８０５は、クライアント装置２０２がステートレス通信の接続要求Ｒ２を行うまでの再接続時間Ｔを通信変更プログラムＰに設定することにしてもよい。これにより、ウェブブラウザＢは、第１の再接続指示を受け付けた場合に、再接続時間Ｔが経過した後に、ステートレス通信の接続要求Ｒ２をサーバ２０１に送信することができる。この際、ウェブブラウザＢが、再接続時間Ｔが経過する度に、ステートレス通信の接続要求Ｒ２をサーバ２０１に繰り返し送信するようにしてもよい。
【００９１】
なお、通信変更プログラムＰの具体例については、図９を用いて後述する。また、第１の再接続指示または第２の再接続指示には、クライアント装置２０２のウェブブラウザＢから要求されているデータＤｉが含まれていてもよい。
【００９２】
切断部８０６は、クライアント装置２０２との接続を切断する機能を有する。具体的には、例えば、ウェブブラウザＢに再接続指示が送信された結果、切断部８０６が、ウェブブラウザＢとの間に確立したコネクションを解放する。これにより、ウェブブラウザＢに割り当てられていたポート番号が解放され、そのポート番号を他のウェブブラウザに割り当て可能となる。
【００９３】
また、切断部８０６は、ウェブブラウザＢとの接続を切断した場合、例えば、図７に示したアクセスログ管理テーブル７００の中から、接続を切断したウェブブラウザＢのアクセスログを削除する。削除対象となるアクセスログは、ウェブブラウザＢを使用しているユーザのユーザ名から特定することができる。
【００９４】
（通信変更プログラムＰの具体例）
ここで、サーバ２０１からクライアント装置２０２に送信される通信変更プログラムＰの具体例について説明する。
【００９５】
図９は、通信変更プログラムＰの具体例を示す説明図である。図９において、通信変更プログラムＰは、クライアント装置２０２のウェブブラウザＢが、サーバ２０１（図９中、「ｈｔｔｐ：／／ｌｏｃａｌｈｏｓｔ／」）との通信方式を変更するためのスクリプトである。具体的には、例えば、ウェブブラウザＢが通信変更プログラムＰを実行することにより、サーバ２０１からクライアント装置２０２へのデータ通信を契機にして、以下の処理が実行される。
【００９６】
ウェブブラウザＢは、ステートフル通信で接続中のサーバ２０１から受け付けたメッセージの先頭に「ｃｌｏｓｅ」が記述されていない場合、メッセージのｄａｔａをディスプレイ４０７に表示する。このｄａｔａは、クライアント装置２０２が要求するデータＤｉに相当する。
【００９７】
一方、ウェブブラウザＢは、ステートフル通信で接続中のサーバ２０１から受け付けたメッセージの先頭に「ｃｌｏｓｅ」が記述されている場合、サーバ２０１とのステートフル通信を終了する。この「ｃｌｏｓｅ」は、上述した第１の再接続指示に相当する。そして、ウェブブラウザＢは、ステートフル通信を終了してから時間ｔ（ｔ＝３０００［ｍｓ］）が経過した後に、ステートレス通信の接続要求Ｒ２をサーバ２０１に送信する。この時間ｔは、上述した再接続時間Ｔに相当する。
【００９８】
これ以降、ウェブブラウザＢは、データの先頭に「ｏｐｅｎ」が記述されているレスポンスをサーバ２０１から受け付けるまで、時間ｔ間隔でステートレス通信の接続要求Ｒ２をサーバ２０１に送信する。
【００９９】
また、ウェブブラウザＢは、ステートレス通信で接続中のサーバ２０１から受け付けたレスポンスのデータの先頭に「ｏｐｅｎ」が記述されていない場合、レスポンスのデータをディスプレイ４０７に表示する。このデータは、クライアント装置２０２が要求するデータＤｉに相当する。
【０１００】
一方、ウェブブラウザＢは、ステートレス通信で接続中のサーバ２０１から受け付けたレスポンスのデータの先頭に「ｏｐｅｎ」が記述されている場合、ステートフル通信の接続要求Ｒ１をサーバ２０１に送信する。この「ｏｐｅｎ」は、上述した第２の再接続指示に相当する。
【０１０１】
（クライアント装置２０２の機能的構成例）
つぎに、クライアント装置２０２の機能的構成例について説明する。図１０は、クライアント装置２０２の機能的構成例を示すブロック図である。図１０において、クライアント装置２０２は、要求部１００１と、受付部１００２と、変更部１００３と、を含む構成である。要求部１００１〜変更部１００３は制御部となる機能であり、具体的には、例えば、図４に示したＲＯＭ４０２、ＲＡＭ４０３、磁気ディスク４０５などの記憶装置に記憶されたプログラム（例えば、図９に示した通信変更プログラムＰ）をＣＰＵ４０１に実行させることにより、または、Ｉ／Ｆ４０６により、その機能を実現する。また、各機能部の処理結果は、例えば、ＲＡＭ４０３、磁気ディスク４０５などの記憶装置に記憶される。
【０１０２】
要求部１００１は、サーバ２０１に接続要求Ｒを送信する機能を有する。具体的には、例えば、要求部１００１が、図４に示したキーボード４０８やマウス４０９を用いたユーザの操作入力により、ステートフル通信の接続要求Ｒ１をサーバ２０１に送信する。
【０１０３】
受付部１００２は、接続中のサーバ２０１から再接続指示を受け付ける機能を有する。具体的には、例えば、受付部１００２が、図４に示したＩ／Ｆ４０６を介して、ステートフル通信で接続中のサーバ２０１から送信された第１の再接続指示を受け付ける。また、例えば、受付部１００２が、Ｉ／Ｆ４０６を介して、ステートレス通信で接続中のサーバ２０１から送信された第２の再接続指示を受け付ける。
【０１０４】
変更部１００３は、受付部１００２によって再接続指示が受け付けられた場合、サーバ２０１との通信形式を変更する機能を有する。具体的には、例えば、第１の再接続指示が受け付けられた場合、変更部１００３が、サーバ２０１とのステートフル通信を終了し、再接続時間Ｔの経過後に、要求部１００１を制御して、ステートレス通信の接続要求Ｒ２をサーバ２０１に送信する。これにより、サーバ２０１との通信形式を、ステートフル通信からステートレス通信に変更することができる。
【０１０５】
また、例えば、第２の再接続指示が受け付けられた場合、変更部１００３が、ステートフル通信の接続要求Ｒ１をサーバ２０１に送信する。これにより、サーバ２０１との通信形式を、ステートレス通信からステートフル通信に変更することができる。
【０１０６】
なお、第１の再接続指示または第２の再接続指示にデータＤｉが含まれている場合は、クライアント装置２０２は、データＤｉをディスプレイ４０７に表示することにしてもよい。
【０１０７】
（サーバ２０１の通信制御処理手順）
つぎに、実施の形態１にかかるサーバ２０１の通信制御処理手順について説明する。ここでは、サーバ２０１からクライアント装置２０２に通信変更プログラムＰ（図９参照）が送信済みの場合を想定する。具体的には、例えば、通信変更プログラムＰは、ステートフル通信で接続中のクライアント装置２０２に第１の再接続指示が最初に送信される際に、サーバ２０１からクライアント装置２０２に送信される。
【０１０８】
図１１は、実施の形態１にかかるサーバ２０１の通信制御処理手順の一例を示すフローチャートである。図１１のフローチャートにおいて、まず、サーバ２０１は、クライアント装置２０２のウェブブラウザＢから接続要求Ｒを受け付けたか否かを判断する（ステップＳ１１０１）。
【０１０９】
ここで、サーバ２０１は、ウェブブラウザＢから接続要求Ｒを受け付けるのを待つ（ステップＳ１１０１：Ｎｏ）。そして、ウェブブラウザＢから接続要求Ｒを受け付けた場合（ステップＳ１１０１：Ｙｅｓ）、サーバ２０１は、ウェブブラウザＢと接続する（ステップＳ１１０２）。
【０１１０】
つぎに、サーバ２０１は、更新ログテーブル６００の中から、ウェブブラウザＢから要求されるデータＤｉの更新ログのうち更新日時が所定期間Ｘに含まれるデータＤｉの更新ログを抽出する（ステップＳ１１０３）。そして、サーバ２０１は、抽出したデータＤｉの更新ログに基づいて、データＤｉの更新頻度Ｆｉを算出する（ステップＳ１１０４）。
【０１１１】
つぎに、サーバ２０１は、受け付けた接続要求Ｒがステートフル通信の接続要求Ｒ１か否かを判断する（ステップＳ１１０５）。そして、ステートフル通信の接続要求Ｒ１の場合（ステップＳ１１０５：Ｙｅｓ）、サーバ２０１は、データＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定する（ステップＳ１１０６）。
【０１１２】
ここで、データＤｉの更新頻度Ｆｉが閾値Ｆth以上の場合（ステップＳ１１０６：Ｎｏ）、サーバ２０１は、データＤｉをウェブブラウザＢに送信して（ステップＳ１１０７）、本フローチャートによる一連の処理を終了する。なお、データＤｉは、更新頻度ＤＢ２２０に記憶されている。
【０１１３】
一方、データＤｉの更新頻度Ｆｉが閾値Ｆth未満の場合（ステップＳ１１０６：Ｙｅｓ）、サーバ２０１は、第１の再接続指示をウェブブラウザＢに送信する（ステップＳ１１０８）。そして、サーバ２０１は、ウェブブラウザＢとの接続を切断して（ステップＳ１１０９）、本フローチャートによる一連の処理を終了する。
【０１１４】
また、ステップＳ１１０５において、ステートレス通信の接続要求Ｒ２の場合（ステップＳ１１０５：Ｎｏ）、サーバ２０１は、データＤｉの更新頻度Ｆｉが閾値Ｆth以上か否かを判定する（ステップＳ１１１０）。
【０１１５】
ここで、データＤｉの更新頻度Ｆｉが閾値Ｆth以上の場合（ステップＳ１１１０：Ｙｅｓ）、サーバ２０１は、第２の再接続指示をウェブブラウザＢに送信する（ステップＳ１１１１）。そして、サーバ２０１は、ウェブブラウザＢとの接続を切断して（ステップＳ１１１２）、本フローチャートによる一連の処理を終了する。
【０１１６】
また、ステップＳ１１１０において、データＤｉの更新頻度Ｆｉが閾値Ｆth未満の場合（ステップＳ１１１０：Ｎｏ）、サーバ２０１は、データＤｉをウェブブラウザＢに送信する（ステップＳ１１１３）。そして、サーバ２０１は、ウェブブラウザＢとの接続を切断して（ステップＳ１１１４）、本フローチャートによる一連の処理を終了する。
【０１１７】
これにより、クライアント装置２０２のウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉに応じて、クライアント装置２０２のウェブブラウザＢとの通信方式を変更することができる。
【０１１８】
なお、上述した説明では、ウェブブラウザＢから接続要求Ｒを受け付けると、その都度、データＤｉの更新頻度Ｆｉを算出することにしたが、これに限らない。具体的には、例えば、サーバ２０１は、定期的に（例えば、１時間ごと、１日ごとなど）、更新頻度ＤＢ２２０に記憶されている各データＤｉの更新頻度Ｆｉを算出する処理を実行することにしてもよい。
【０１１９】
この場合、サーバ２０１は、ステップＳ１１０３およびステップＳ１１０４の処理を省略することができる。また、サーバ２０１は、ステップＳ１１０６およびステップＳ１１１０において、更新頻度ＤＢ２２０を参照して、データＤｉの更新頻度Ｆｉを特定することができる。
【０１２０】
（クライアント装置２０２の通信処理手順）
つぎに、実施の形態１にかかるクライアント装置２０２の通信処理手順について説明する。ここでは、サーバ２０１からクライアント装置２０２に通信変更プログラムＰ（図９参照）が送信済みの場合を想定する。
【０１２１】
図１２は、実施の形態１にかかるクライアント装置２０２の通信処理手順の一例を示すフローチャートである。図１２のフローチャートにおいて、まず、クライアント装置２０２のウェブブラウザＢは、サーバ２０１に接続要求Ｒを送信する（ステップＳ１２０１）。
【０１２２】
つぎに、ウェブブラウザＢは、サーバ２０１からデータＤｉを受信したか否かを判断する（ステップＳ１２０２）。ここで、ウェブブラウザＢは、データＤｉを受信した場合（ステップＳ１２０２：Ｙｅｓ）、データＤｉをディスプレイ４０７に表示して（ステップＳ１２０３）、本フローチャートによる一連の処理を終了する。
【０１２３】
一方、ウェブブラウザＢは、サーバ２０１からデータＤｉを受信していない場合（ステップＳ１２０２：Ｎｏ）、第１の再接続指示を受信したか否かを判断する（ステップＳ１２０４）。ここで、ウェブブラウザＢは、第１の再接続指示を受信した場合（ステップＳ１２０４：Ｙｅｓ）、サーバ２０１との通信方式をステートフル通信からステートレス通信に変更して（ステップＳ１２０５）、本フローチャートによる一連の処理を終了する。
【０１２４】
具体的には、例えば、ステップＳ１２０５において、ウェブブラウザＢにより、サーバ２０１とのステートフル通信が終了される。そして、再接続時間Ｔの経過後に、ステートレス通信の接続要求Ｒ２がサーバ２０１に送信されて、上述したフローチャートによる一連の処理が繰り返される。
【０１２５】
また、ステップＳ１２０４において、第１の再接続指示を受信していない場合（ステップＳ１２０４：Ｎｏ）、ウェブブラウザＢは、第２の再接続指示を受信したか否かを判断する（ステップＳ１２０６）。ここで、ウェブブラウザＢは、第２の再接続指示を受信していない場合（ステップＳ１２０６：Ｎｏ）、ステップＳ１２０２に戻る。
【０１２６】
一方、ウェブブラウザＢは、第２の再接続指示を受信した場合（ステップＳ１２０６：Ｙｅｓ）、サーバ２０１との通信方式をステートレス通信からステートフル通信に変更して（ステップＳ１２０７）、本フローチャートによる一連の処理を終了する。
【０１２７】
具体的には、例えば、ステップＳ１２０７において、ウェブブラウザＢにより、再接続時間Ｔ間隔のサーバ２０１とのステートレス通信が終了される。そして、ステートフル通信の接続要求Ｒ１がサーバ２０１に送信されて、上述したフローチャートによる一連の処理が繰り返される。
【０１２８】
これにより、サーバ２０１に要求するデータＤｉの更新頻度Ｆｉに応じて、サーバ２０１との通信方式を変更することができる。
【０１２９】
以上説明したように、実施の形態１にかかるサーバ２０１によれば、ステートフル通信でウェブブラウザＢと接続中に、ウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定することができる。これにより、ステートフル通信で接続中のウェブブラウザＢとの接続状態を維持する必要性があるか否かを判断することができる。
【０１３０】
また、サーバ２０１によれば、ステートフル通信で接続中のウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth未満の場合、第１の再接続指示をウェブブラウザＢに送信して、ウェブブラウザＢとの接続を切断することができる。これにより、サーバ２０１との接続状態を維持する必要性が低いウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に変更させることができる。
【０１３１】
また、サーバ２０１によれば、第１の再接続指示をウェブブラウザＢに送信した結果、ステートレス通信で接続したウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定することができる。これにより、ステートレス通信で接続中のウェブブラウザＢとの接続状態を維持する必要性があるか否かを判断することができる。
【０１３２】
また、サーバ２０１によれば、ステートレス通信で接続中のウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth以上の場合、第２の再接続指示をウェブブラウザＢに送信することができる。これにより、サーバ２０１との接続状態を維持する必要性が高くなったウェブブラウザＢとの通信形式を、ステートレス通信からステートフル通信に変更させることができる。
【０１３３】
また、サーバ２０１によれば、データＤｉの更新日時を表す更新ログに基づいて、データＤｉの更新頻度Ｆｉを算出して、算出したデータＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定することができる。これにより、時々刻々と更新されるデータＤｉの更新頻度Ｆｉを用いて、ウェブブラウザＢとの接続状態を維持する必要性があるか否かを判断することができる。
【０１３４】
また、サーバ２０１によれば、データＤｉの更新日時を表す更新ログに基づいて、クライアント装置２０２がステートレス通信の接続要求Ｒ２を行うまでの再接続時間Ｔを算出して、第１の再接続指示や通信変更プログラムＰに設定することができる。これにより、ウェブブラウザＢがステートレス通信の接続要求Ｒ２を送信するタイミングを制御することができる。
【０１３５】
（実施の形態２）
つぎに、実施の形態２にかかるサーバ２０１について説明する。データＤｉの特性上、特定の期間（例えば、特定の時間帯）におけるデータＤｉの更新頻度Ｆｉが、他の期間におけるデータＤｉの更新頻度Ｆｉに比べて高くなる場合がある。
【０１３６】
そこで、実施の形態２では、サーバ２０１がクライアント装置２０２のウェブブラウザＢと接続中の時点（例えば、時刻）に応じて、サーバ２０１とウェブブラウザＢとの通信方式を変更する場合について説明する。なお、実施の形態１で説明した箇所と同様の箇所については説明を省略する。
【０１３７】
（切替期間テーブル１３００の記憶内容）
まず、サーバ２０１が用いる切替期間テーブル１３００の記憶内容について説明する。切替期間テーブル１３００は、例えば、図３に示したＲＡＭ３０３、磁気ディスク３０６などの記憶装置により実現される。
【０１３８】
図１３は、切替期間テーブル１３００の記憶内容の一例を示す説明図である。図１３において、切替期間テーブル１３００は、データ名、ＵＲＬおよび切替期間のフィールドを有する。各フィールドに情報を設定することにより、データＤ１〜Ｄｎの切替期間情報１３００−１〜１３００−ｎがレコードとして記憶されている。
【０１３９】
ここで、データ名は、データＤを一意に識別する名称である。ＵＲＬは、データＤの格納場所を示している。切替期間は、サーバ２０１とクライアント装置２０２のウェブブラウザＢとの通信方式を、ステートフル通信からステートレス通信に変更する期間を表している。
【０１４０】
例えば、切替期間情報１３００−１は、データＤ１のデータ名「Ｄ１」およびＵＲＬ「／ｄａｔａＤ１／」を表している。なお、データＤ１の切替期間は未設定である（図１３中、「−」）。また、例えば、切替期間情報１３００−２は、データＤ２のデータ名「Ｄ２」、ＵＲＬ「／ｄａｔａＤ２／」および切替期間「１１：００−１２：００」を表している。
【０１４１】
（更新ログテーブル６００の記憶内容）
つぎに、サーバ２０１が用いる更新ログテーブル６００の記憶内容について説明する。なお、更新ログテーブル６００の各フィールドは、図６に示した更新ログテーブル６００の各フィールドと同一のため説明を省略する。
【０１４２】
図１４は、更新ログテーブル６００の記憶内容の一例を示す説明図（その２）である。図１４において、更新ログテーブル６００は、更新ログ１４００−１〜１４００−１９をレコードとして記憶している。例えば、更新ログ１４００−１は、データＤ１の更新日時「２０１２／３／２０  １９：００：００」および更新間隔「０」を示している。また、例えば、更新ログ１４００−２は、データＤ１の更新日時「２０１２／３／２０  １９：００：０５」および更新間隔「５」を示している。
【０１４３】
以下の説明では、更新ログテーブル６００の更新日時を表す時間軸を単位時間（例えば、３０［分］、１［時間］、１［日］など）で区切った複数の期間を「期間ｐ１〜ｐｍ」と表記し、期間ｐ１〜ｐｍのうちの任意の期間を「期間ｐｊ」と表記する場合がある。また、クライアント装置２０２との通信方式をステートフル通信からステートレス通信に変更する特定の期間を「切替期間ＣＰ」と表記する場合がある。
【０１４４】
（サーバ２０１の機能的構成例）
つぎに、実施の形態２にかかるサーバ２０１の機能的構成例について説明する。図１５は、実施の形態２にかかるサーバ２０１の機能的構成例を示すブロック図である。図１５において、サーバ２０１は、受付部８０１と、接続部８０２と、算出部８０３と、判定部８０４と、指示部８０５と、切断部８０６と、特定部１５０１と、を含む構成である。受付部８０１〜切断部８０６および特定部１５０１は制御部となる機能であり、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０６などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。各機能部の処理結果は、例えば、ＲＡＭ３０３、磁気ディスク３０６などの記憶装置に記憶される。
【０１４５】
以下、実施の形態２にかかるサーバ２０１の機能部のうち、実施の形態１にかかるサーバ２０１の機能部とは異なる機能部の処理内容について説明する。
【０１４６】
特定部１５０１は、ステートフル通信で接続中のクライアント装置２０２から要求されるデータＤｉが更新された更新日時に基づいて、クライアント装置２０２との通信方式をステートレス通信に変更する切替期間ＣＰを特定する機能を有する。
【０１４７】
具体的には、例えば、まず、特定部１５０１が、更新ログテーブル６００の更新日時を表す時間軸を単位時間で区切った期間ｐ１〜ｐｍの中から期間ｐｊを選択する。つぎに、特定部１５０１が、更新ログテーブル６００の中から、期間ｐｊのデータＤｉの更新ログを抽出する。そして、特定部１５０１が、抽出したデータＤｉの更新ログに基づいて、期間ｐｊのデータＤｉの平均更新間隔ｔｊを算出する。
【０１４８】
つぎに、特定部１５０１が、算出した平均更新間隔ｔｊの逆数を求めることにより、期間ｐｊのデータＤｉの更新頻度Ｆｉ（ｊ）を算出する。そして、算出したデータＤｉの更新頻度Ｆｉ（ｊ）が閾値Ｆth未満の場合、特定部１５０１が、期間ｐｊを切替期間ＣＰとして特定する。なお、特定部１５０１は、例えば、期間ｐ１〜ｐｍの中から選択されていない未選択の期間がなくなるまで、上述した処理を繰り返す。
【０１４９】
これにより、サーバ２０１とウェブブラウザＢとの接続状態を維持する必要性が低い期間を、切替期間ＣＰとして特定することができる。特定されたデータＤｉの切替期間ＣＰは、例えば、図１３に示した切替期間テーブル１３００に記憶される。なお、データＤｉの切替期間ＣＰの特定例については後述する。
【０１５０】
判定部８０４は、クライアント装置２０２と接続中の時点Ｇが、特定部１５０１によって特定されたデータＤｉの切替期間ＣＰ内か否かを判定する機能を有する。ここで、時点Ｇは、例えば、接続要求Ｒ１または接続要求Ｒ２を受け付けたウェブブラウザＢとの接続処理が完了した時点であってもよく、また、ウェブブラウザＢから接続要求Ｒ１または接続要求Ｒ２を受け付けた時点であってもよい。
【０１５１】
具体的には、例えば、判定部８０４が、切替期間テーブル１３００を参照して、ステートフル通信またはステートレス通信でクライアント装置２０２のウェブブラウザＢと接続中の時点Ｇが、データＤｉの切替期間ＣＰ内か否かを判定することにしてもよい。
【０１５２】
また、判定部８０４は、例えば、現在の時点Ｇが特定の時点となった場合に、時点Ｇが、ステートフル通信またはステートレス通信で接続中のウェブブラウザＢから要求されるデータＤｉの切替期間ＣＰ内か否かを判定することにしてもよい。特定の時点は、任意に設定可能であり、例えば、１２時００分、１３時００分などの各時間帯の開始時刻に設定することにしてもよい。
【０１５３】
指示部８０５は、クライアント装置２０２と接続中の時点ＧがデータＤｉの切替期間ＣＰ内か否かの判定結果に基づいて、クライアント装置２０２に再接続指示を送信する機能を有する。具体的には、例えば、ステートフル通信でウェブブラウザＢと接続中の時点Ｇが切替期間ＣＰ内の場合、指示部８０５が、第１の再接続指示をウェブブラウザＢに送信する。この際、指示部８０５は、時点Ｇから切替期間ＣＰの終了時点までの時間を再接続時間Ｔに設定することにしてもよい。
【０１５４】
これにより、ステートフル通信でウェブブラウザＢと接続中の時点Ｇが、ウェブブラウザＢとの接続状態を維持する必要性が低い切替期間ＣＰ内となったら、ウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に変更させることができる。
【０１５５】
また、例えば、ステートレス通信でウェブブラウザＢと接続中の時点Ｇが切替期間ＣＰ外の場合、指示部８０５が、第２の再接続指示をウェブブラウザＢに送信することにしてもよい。これにより、ステートレス通信でウェブブラウザＢと接続中の時点Ｇが切替期間ＣＰ外となったら、ウェブブラウザＢとの通信形式を、ステートレス通信からステートフル通信に変更させることができる。
【０１５６】
（データＤｉの切替期間ＣＰの特定例）
ここで、図１４に示した更新ログテーブル６００の記憶内容を例に挙げて、データＤ１の切替期間ＣＰの特定例について説明する。ここでは、更新頻度Ｆｉの閾値Ｆthを「Ｆth＝１／１８００」とする。また、更新ログテーブル６００の更新日時を表す時間軸のうち、１９時００分００秒から２０時３０分００秒までを３０分単位で区切る場合を例に挙げて説明する。この場合、期間ｐ１〜ｐｍは「期間ｐ１〜ｐ３」となる。
【０１５７】
まず、特定部１５０１は、期間ｐ１〜ｐ３の中から期間ｐ１を選択する。つぎに、特定部１５０１は、更新ログテーブル６００の中から、期間ｐ１のデータＤ１の更新ログ１４００−１，１４００−２，１４００−４，１４００−５，１４００−７〜１４００−１２を抽出する。そして、特定部１５０１は、抽出したデータＤ１の更新ログに基づいて、期間ｐ１のデータＤ１の平均更新間隔ｔ１を算出する。平均更新間隔ｔ１は以下の通りである。
【０１５８】
ｔ１＝（０＋５＋２９５＋３０＋９０＋６０＋８０＋４０＋１２０＋１８０）／１０
＝９０
【０１５９】
つぎに、特定部１５０１は、平均更新間隔ｔ１の逆数を求めることにより、期間ｐ１のデータＤ１の更新頻度Ｆ１（１）を算出する。更新頻度Ｆ１（１）は以下の通りである。
【０１６０】
Ｆ１（１）＝１／９０
【０１６１】
そして、データＤ１の更新頻度Ｆ１（１）が閾値Ｆth未満の場合、期間ｐ１を切替期間ＣＰとして特定する。ここでは、更新頻度Ｆ１（１）が閾値Ｆth以上のため、特定部１５０１は、期間ｐ１を切替期間ＣＰとして特定しない。
【０１６２】
つぎに、特定部１５０１は、期間ｐ１〜ｐ３の中から期間ｐ２を選択する。そして、特定部１５０１は、更新ログテーブル６００の中から、期間ｐ２のデータＤ１の更新ログ１４００−１３を抽出する。つぎに、特定部１５０１は、抽出したデータＤ１の更新ログに基づいて、期間ｐ２のデータＤ１の平均更新間隔ｔ２を算出する。平均更新間隔ｔ２は以下の通りである。
【０１６３】
ｔ２＝（２４００）／１＝２４００
【０１６４】
つぎに、特定部１５０１は、平均更新間隔ｔ２の逆数を求めることにより、期間ｐ２のデータＤ１の更新頻度Ｆ１（２）を算出する。更新頻度Ｆ１（２）は以下の通りである。
【０１６５】
Ｆ１（２）＝１／２４００
【０１６６】
そして、データＤ１の更新頻度Ｆ１（２）が閾値Ｆth未満の場合、期間ｐ２を切替期間ＣＰとして特定する。ここでは、更新頻度Ｆ１（２）が閾値Ｆth未満のため、特定部１５０１は、期間ｐ２を切替期間ＣＰとして特定する。
【０１６７】
つぎに、特定部１５０１は、期間ｐ１〜ｐ３の中から期間ｐ３を選択する。そして、特定部１５０１は、更新ログテーブル６００の中から、期間ｐ３のデータＤ１の更新ログを抽出する。ここでは、期間ｐ３のデータＤ１の更新ログは存在しないため未抽出となる。この場合、特定部１５０１は、期間ｐ３のデータＤ１の更新頻度Ｆ１（３）を「Ｆ１（３）＝０」とする。
【０１６８】
そして、特定部１５０１は、データＤ１の更新頻度Ｆ１（３）が閾値Ｆth未満の場合、期間ｐ３を切替期間ＣＰとして特定する。ここでは、更新頻度Ｆ１（３）が閾値Ｆth未満のため、特定部１５０１は、期間ｐ３を切替期間ＣＰとして特定する。
【０１６９】
このように、期間ｐｊごとのデータＤｉの更新頻度Ｆｉ（ｊ）を算出することにより、更新頻度Ｆｉ（ｊ）が閾値Ｆth未満となる期間ｐｊをデータＤｉの切替期間ＣＰとして特定することができる。
【０１７０】
なお、上述した説明では、更新ログテーブル６００に記憶されている更新ログに基づいてデータＤｉの切替期間ＣＰを算出することにしたが、これに限らない。例えば、データＤｉには、データＤｉが更新される時間帯が決まっているものがある。
【０１７１】
具体的には、例えば、株価は、各国の株式市場において取引される時間帯が決まっており、更新されない時間帯は国ごとに決まっている。このため、株価のリアルタイムチャートなどを表すデータＤｉについては、切替期間テーブル１３００に切替期間ＣＰを予め設定しておくことにしてもよい。これにより、サーバ２０１により、例えば、取引される時間帯が異なる各国の株価を扱うことができ、ユーザがサーバ２０１にアクセスするタイミングがずれてサーバ２０１のリソースを効率的に活用することができる。
【０１７２】
（サーバ２０１の各種処理手順）
つぎに、実施の形態２にかかるサーバ２０１の各種処理手順について説明する。まず、サーバ２０１の切替期間算出処理手順について説明する。切替期間算出処理は、データＤｉの切替期間ＣＰを算出する処理である。切替期間算出処理は、例えば、予め設定された時刻において定期的に実行される。
【０１７３】
図１６は、実施の形態２にかかるサーバ２０１の切替期間算出処理手順の一例を示すフローチャートである。図１６のフローチャートにおいて、まず、サーバ２０１は、更新ログテーブル６００の更新日時を表す時間軸を単位時間で区切って期間ｐ１〜ｐｍに分割する（ステップＳ１６０１）。
【０１７４】
つぎに、サーバ２０１は、期間ｐｊの「ｊ」を「ｊ＝１」として（ステップＳ１６０２）、期間ｐ１〜ｐｍの中から期間ｐｊを選択する（ステップＳ１６０３）。そして、サーバ２０１は、データＤｉの「ｉ」を「ｉ＝１」として（ステップＳ１６０４）、データＤ１〜Ｄｎの中からデータＤｉを選択する（ステップＳ１６０５）。
【０１７５】
つぎに、サーバ２０１は、更新ログテーブル６００の中から、期間ｐｊのデータＤｉの更新ログを抽出する（ステップＳ１６０６）。そして、サーバ２０１は、抽出したデータＤｉの更新ログに基づいて、期間ｐｊのデータＤｉの平均更新間隔ｔｊを算出する（ステップＳ１６０７）。
【０１７６】
つぎに、サーバ２０１は、算出した平均更新間隔ｔｊの逆数を求めることにより、期間ｐｊのデータＤｉの更新頻度Ｆｉ（ｊ）を算出する（ステップＳ１６０８）。そして、サーバ２０１は、算出した期間ｐｊデータＤｉの更新頻度Ｆｉ（ｊ）が閾値Ｆth未満となるか否かを判断する（ステップＳ１６０９）。
【０１７７】
ここで、期間ｐｊデータＤｉの更新頻度Ｆｉ（ｊ）が閾値Ｆth以上の場合（ステップＳ１６０９：Ｎｏ）、サーバ２０１は、ステップＳ１６１２に移行する。一方、期間ｐｊデータＤｉの更新頻度Ｆｉ（ｊ）が閾値Ｆth未満の場合（ステップＳ１６０９：Ｙｅｓ）、サーバ２０１は、期間ｐｊをデータＤｉの切替期間ＣＰとして特定する（ステップＳ１６１０）。
【０１７８】
そして、サーバ２０１は、データＤｉの切替期間ＣＰとして特定した期間ｐｊを切替期間テーブル１３００に登録する（ステップＳ１６１１）。つぎに、サーバ２０１は、データＤｉの「ｉ」をインクリメントして（ステップＳ１６１２）、「ｉ」が「ｎ」より大きくなったか否かを判断する（ステップＳ１６１３）。
【０１７９】
ここで、「ｉ」が「ｎ」以下の場合（ステップＳ１６１３：Ｎｏ）、サーバ２０１は、ステップＳ１６０５に戻る。一方、「ｉ」が「ｎ」より大きい場合（ステップＳ１６１３：Ｙｅｓ）、サーバ２０１は、期間ｐｊの「ｊ」をインクリメントして（ステップＳ１６１４）、「ｊ」が「ｍ」より大きくなったか否かを判断する（ステップＳ１６１５）。
【０１８０】
ここで、「ｊ」が「ｍ」以下の場合（ステップＳ１６１５：Ｎｏ）、サーバ２０１は、ステップＳ１６０３に戻る。一方、「ｊ」が「ｍ」より大きい場合（ステップＳ１６１５：Ｙｅｓ）、サーバ２０１は、本フローチャートによる一連の処理を終了する。
【０１８１】
これにより、サーバ２０１とウェブブラウザＢとの接続状態を維持する必要性が低い期間ｐｊを、データＤｉの切替期間ＣＰとして特定することができる。
【０１８２】
つぎに、サーバ２０１の通信制御処理手順について説明する。
【０１８３】
図１７は、実施の形態２にかかるサーバ２０１の通信制御処理手順の一例を示すフローチャートである。図１７のフローチャートにおいて、まず、サーバ２０１は、クライアント装置２０２のウェブブラウザＢから接続要求Ｒを受け付けたか否かを判断する（ステップＳ１７０１）。
【０１８４】
ここで、サーバ２０１は、ウェブブラウザＢから接続要求Ｒを受け付けるのを待つ（ステップＳ１７０１：Ｎｏ）。そして、ウェブブラウザＢから接続要求Ｒを受け付けた場合（ステップＳ１７０１：Ｙｅｓ）、サーバ２０１は、ウェブブラウザＢと接続する（ステップＳ１７０２）。
【０１８５】
つぎに、サーバ２０１は、受け付けた接続要求Ｒがステートフル通信の接続要求Ｒ１か否かを判断する（ステップＳ１７０３）。そして、ステートフル通信の接続要求Ｒ１の場合（ステップＳ１７０３：Ｙｅｓ）、サーバ２０１は、切替期間テーブル１３００を参照して、現在の時点ＧがデータＤｉの切替期間ＣＰ内か否かを判定する（ステップＳ１７０４）。
【０１８６】
ここで、現在の時点Ｇが切替期間ＣＰ外の場合（ステップＳ１７０４：Ｎｏ）、サーバ２０１は、データＤｉをウェブブラウザＢに送信して（ステップＳ１７０５）、本フローチャートによる一連の処理を終了する。なお、データＤｉは、更新頻度ＤＢ２２０に記憶されている。
【０１８７】
一方、現在の時点Ｇが切替期間ＣＰ内の場合（ステップＳ１７０４：Ｙｅｓ）、サーバ２０１は、第１の再接続指示をウェブブラウザＢに送信する（ステップＳ１７０６）。そして、サーバ２０１は、ウェブブラウザＢとの接続を切断して（ステップＳ１７０７）、本フローチャートによる一連の処理を終了する。
【０１８８】
また、ステップＳ１７０３において、ステートレス通信の接続要求Ｒ２の場合（ステップＳ１７０３：Ｎｏ）、サーバ２０１は、切替期間テーブル１３００を参照して、現在の時点ＧがデータＤｉの切替期間ＣＰ外か否かを判定する（ステップＳ１７０８）。
【０１８９】
ここで、現在の時点Ｇが切替期間ＣＰ外の場合（ステップＳ１７０８：Ｙｅｓ）、サーバ２０１は、第２の再接続指示をウェブブラウザＢに送信する（ステップＳ１７０９）。そして、サーバ２０１は、ウェブブラウザＢとの接続を切断して（ステップＳ１７１０）、本フローチャートによる一連の処理を終了する。
【０１９０】
また、ステップＳ１７０８において、現在の時点Ｇが切替期間ＣＰ内の場合（ステップＳ１７０８：Ｎｏ）、サーバ２０１は、データＤｉをウェブブラウザＢに送信する（ステップＳ１７１１）。そして、サーバ２０１は、ウェブブラウザＢとの接続を切断して（ステップＳ１７１２）、本フローチャートによる一連の処理を終了する。
【０１９１】
これにより、クライアント装置２０２のウェブブラウザＢと接続中の現在の時点ＧがデータＤｉの切替期間ＣＰ内か否かに応じて、サーバ２０１とクライアント装置２０２のウェブブラウザＢとの通信方式を変更することができる。
【０１９２】
なお、クライアント装置２０２の通信処理手順については、図１２に示したクライアント装置２０２の通信処理手順と同様のため、ここでは説明を省略する。
【０１９３】
以上説明したように、実施の形態２にかかるサーバ２０１によれば、データＤｉの更新日時を表す更新ログに基づいて、期間ｐ１〜期間ｐｍの中から、データＤｉのＦｉ（ｊ）が閾値Ｆth未満となる期間ｐｊを特定することができる。なお、期間ｐ１〜期間ｐｍは、データＤｉの更新日時を表す時間軸を単位時間で区切った複数の期間である。これにより、サーバ２０１とウェブブラウザＢとの接続状態を維持する必要性が低い切替期間ＣＰを特定することができる。
【０１９４】
また、サーバ２０１によれば、ステートフル通信でウェブブラウザＢと接続中の時点Ｇが切替期間ＣＰ内か否かを判定し、切替期間ＣＰ内の場合に、第１の再接続指示をウェブブラウザＢに送信することができる。これにより、ステートフル通信でウェブブラウザＢと接続中の時点Ｇが、ウェブブラウザＢとの接続状態を維持する必要性が低い切替期間ＣＰ内となったら、ウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に変更させることができる。また、事前にデータＤｉの切替期間ＣＰを特定しておくことにより、ウェブブラウザＢごとに接続状態を維持する必要性を判断する際のサーバ２０１の処理負荷を低減させて、ウェブブラウザＢに対する応答性能を向上させることができる。
【０１９５】
また、サーバ２０１によれば、第１の再接続指示を送信した結果、ステートレス通信の接続要求Ｒ２をウェブブラウザＢから受け付けた時点Ｇが切替期間ＣＰ内か否かを判定し、切替期間ＣＰ外の場合に、第２の再接続指示をウェブブラウザＢに送信することができる。これにより、ステートレス通信でウェブブラウザＢと接続中の時点Ｇが切替期間ＣＰ外となったら、ウェブブラウザＢとの通信形式を、ステートレス通信からステートフル通信に変更させることができる。
【０１９６】
（実施の形態３）
つぎに、実施の形態３にかかるサーバ２０１について説明する。実施の形態３では、サーバ２０１に接続中のクライアント装置２０２の接続数が所定数以上となったら、ステートフル通信で接続中のクライアント装置２０２との通信形式をステートレス通信に変更する通信制御処理を実行する場合について説明する。また、実施の形態３では、情報提供システム２００を、飲食店などの店舗内の座席状況をユーザに提供するサービスに適用した場合について説明する。なお、実施の形態１，２で説明した箇所と同様の箇所については説明を省略する。
【０１９７】
（店舗情報管理テーブル１８００の記憶内容）
まず、サーバ２０１が用いる店舗情報管理テーブル１８００の記憶内容について説明する。店舗情報管理テーブル１８００は、例えば、図３に示したＲＡＭ３０３、磁気ディスク３０６などの記憶装置により実現される。
【０１９８】
図１８は、店舗情報管理テーブル１８００の記憶内容の一例を示す説明図である。図１８において、店舗情報管理テーブル１８００は、店舗名、総座席数およびデータ名のフィールドを有する。各フィールドに情報を設定することにより、店舗Ａ，Ｂ，Ｃごとの店舗情報１８００−１〜１８００−３がレコードとして記憶されている。
【０１９９】
ここで、店舗名は、店舗を一意に識別する名称である。総座席数は、店舗に設置されている座席の総数である。データ名は、店舗の座席状況を表すデータＤｉの名称である。店舗の座席状況を表すデータＤｉは、例えば、店舗に空席があるか否かを表す情報であってもよく、また、店舗の空席数を表す情報であってもよい。
【０２００】
店舗情報１８００−１は、店舗Ａの総座席数「１０」およびデータ名「Ｄ１」を表している。店舗情報１８００−２は、店舗Ｂの総座席数「１５」およびデータ名「Ｄ２」を表している。店舗情報１８００−３は、店舗Ｃの総座席数「２０」およびデータ名「Ｄ３」を表している。
【０２０１】
（店舗状況管理テーブル１９００の記憶内容）
つぎに、サーバ２０１が用いる店舗状況管理テーブル１９００の記憶内容について説明する。店舗状況管理テーブル１９００は、例えば、図３に示したＲＡＭ３０３、磁気ディスク３０６などの記憶装置により実現される。
【０２０２】
図１９は、店舗状況管理テーブル１９００の記憶内容の一例を示す説明図である。図１９において、店舗状況管理テーブル１９００は、店舗名、着席数および予約数のフィールドを有する。各フィールドに情報を設定することにより、店舗Ａ，Ｂ，Ｃごとの店舗状況情報１９００−１〜１９００−３がレコードとして記憶されている。
【０２０３】
ここで、店舗名は、店舗を一意に識別する名称である。着席数は、店舗に設置されている座席のうち客が着席している座席の数である。予約数は、店舗に設置されている座席のうち客の予約が入っている座席の数である。
【０２０４】
店舗状況情報１９００−１は、店舗Ａの着席数「７」および予約数「３」を表している。店舗状況情報１９００−２は、店舗Ｂの着席数「１５」および予約数「０」を表している。店舗状況情報１９００−３は、店舗Ｃの着席数「１０」および予約数「０」を表している。
【０２０５】
（管理画面の画面例）
つぎに、店舗側のクライアント装置２０２のディスプレイ４０７に表示される管理画面の画面例について説明する。ここでは、店舗Ｃの管理画面の画面例について説明する。
【０２０６】
図２０は、管理画面の画面例を示す説明図である。図２０において、管理画面２０００は、店舗Ｃの座席状況を管理するための画面である。管理画面２０００には、店舗Ｃに設置されている座席Ｓ１〜Ｓ２０の配置を示すフロアマップが表示されている。
【０２０７】
管理画面２０００において、例えば、図４に示したキーボード４０８やマウス４０９を用いたユーザの操作入力により、座席Ｓ１〜Ｓ２０のうちのいずれかの座席をクリックすることにより、「着席中」または「予約席」の属性を設定することができる。
【０２０８】
例えば、店舗Ｃに入店してきた客が座席Ｓ２に着席した場合は、店舗Ｃの従業員の操作入力により、座席Ｓ２をクリックして「着席中」の属性を座席Ｓ２に設定することができる。また、座席Ｓ１が客から予約された場合は、店舗Ｃの従業員の操作入力により、座席Ｓ１をクリックして「予約席」の属性を座席Ｓ１に設定することができる。
【０２０９】
なお、管理画面２０００において行われたユーザの操作入力の入力結果は、例えば、クライアント装置２０２からサーバ２０１にアップロードされて、図１９に示した店舗状況管理テーブル１９００の記憶内容が更新される。
【０２１０】
例えば、店舗Ｃのある座席に「着席中」の属性が設定されると、店舗状況管理テーブル１９００の店舗Ｃの着席数がインクリメントされる。また、例えば、店舗Ｃのある座席に設定されていた「着席中」の属性が解除されると、店舗状況管理テーブル１９００の店舗Ｃの着席数がデクリメントされる。
【０２１１】
（アクセスログ管理テーブル７００の記憶内容）
つぎに、サーバ２０１が用いるアクセスログ管理テーブル７００の記憶内容について説明する。なお、アクセスログ管理テーブル７００の各フィールドは、図７に示したアクセスログ管理テーブル７００の各フィールドと同一のため説明を省略する。
【０２１２】
図２１は、アクセスログ管理テーブル７００の記憶内容の一例を示す説明図（その２）である。図２１において、アクセスログ管理テーブル７００は、アクセスログ２１００−１〜２１００−１５をレコードとして記憶している。例えば、アクセスログ２１００−１は、ユーザＵ１がアクセスしたデータＤ１のＵＲＬ「／ｄａｔａＤ１／」およびアクセス日時「２０１２／０３／２０  １８：５０：００」を示している。
【０２１３】
（サーバ２０１の機能的構成例）
つぎに、実施の形態３にかかるサーバ２０１の機能的構成例について説明する。図２２は、実施の形態３にかかるサーバ２０１の機能的構成例を示すブロック図である。図２２において、サーバ２０１は、受付部８０１と、接続部８０２と、算出部８０３と、判定部８０４と、指示部８０５と、切断部８０６と、判断部２２０１と、を含む構成である。受付部８０１〜切断部８０６および判断部２２０１は制御部となる機能であり、具体的には、例えば、図３に示したＲＯＭ３０２、ＲＡＭ３０３、磁気ディスク３０６などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、Ｉ／Ｆ３０４により、その機能を実現する。各機能部の処理結果は、例えば、ＲＡＭ３０３、磁気ディスク３０６などの記憶装置に記憶される。
【０２１４】
以下、実施の形態３にかかるサーバ２０１の機能部のうち、実施の形態１にかかるサーバ２０１の機能部とは異なる機能部の処理内容について説明する。
【０２１５】
判断部２２０１は、接続中のクライアント装置２０２の接続数Ｎが閾値Ｎmax以上となったか否かを判断する機能を有する。ここで、接続数Ｎは、例えば、ステートフル通信またはステートレス通信で接続中のウェブブラウザＢの接続数であってもよく、また、ステートフル通信で接続中のウェブブラウザＢの接続数であってもよい。接続数Ｎは、例えば、アクセスログ管理テーブル７００から特定することができる。
【０２１６】
具体的には、例えば、判断部２２０１が、アクセスログ管理テーブル７００を参照して、接続中のウェブブラウザＢの接続数Ｎが閾値Ｎmax以上となったか否かを判断する。ここで、閾値Ｎmaxは、サーバ２０１に接続するクライアント装置２０２の接続数Ｎの上限値を表すものであり、任意に設定可能である。例えば、閾値Ｎmaxは、サーバ２０１のポート番号の数に基づいて設定される。
【０２１７】
より具体的には、例えば、閾値Ｎmaxは、接続数Ｎが閾値Ｎmax以上となったら、ステートフル通信で接続中のクライアント装置２０２との通信形式をステートレス通信に変更して、ポート番号を解放したほうがよいと判断できる値に設定される。一例として、サーバ２０１のポート番号が０番〜６５５３５番の場合を例に挙げると、閾値Ｎmaxは、例えば「Ｎmax＝３００００」程度に設定される。
【０２１８】
送信部は、接続数Ｎが閾値Ｎmax以上となった場合、ステートフル通信で接続中のクライアント装置２０２に第２の再接続指示を送信する機能を有する。具体的には、例えば、接続数Ｎが閾値Ｎmax以上となった場合、送信部が、ステートフル通信で接続中のクライアント装置２０２から要求されるデータのうち更新頻度が最も低いデータＤｉの要求元となるクライアント装置２０２に第２の再接続指示を送信することにしてもよい。
【０２１９】
より具体的には、例えば、まず、送信部が、アクセスログ管理テーブル７００を参照して、ステートフル通信で接続中のクライアント装置２０２から要求されるデータのうち更新頻度が最も低いデータＤｉの要求元となるクライアント装置２０２のユーザを特定する。そして、送信部が、特定したユーザのウェブブラウザＢに第２の再接続指示を送信することにしてもよい。
【０２２０】
また、判断部２２０１は、接続数Ｎから接続数Ｎｉを減算した減算後の接続数Ｎが閾値Ｎmax以上となったか否かを判断することにしてもよい。ここで、接続数Ｎｉは、ステートフル通信で接続中のクライアント装置２０２から要求されるデータのうち更新頻度が最も低いデータＤｉの要求元となるクライアント装置２０２の接続数である。
【０２２１】
これにより、ステートフル通信で接続中のウェブブラウザＢから要求されるデータのうち更新頻度が低いデータＤｉにアクセスするウェブブラウザＢから順に、そのウェブブラウザＢとの通信形式をステートフル通信からステートレス通信に変更させることができる。
【０２２２】
また、判定部８０４は、接続数Ｎが閾値Ｎmax以上となった場合、ステートフル通信で接続中のクライアント装置２０２から要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定することにしてもよい。具体的には、例えば、判定部８０４が、更新頻度ＤＢ２２０を参照して、ステートフル通信で接続中のウェブブラウザＢから要求されるデータＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定する。なお、ステートフル通信で接続中のクライアント装置２０２から要求されるデータＤｉは、例えば、アクセスログ管理テーブル７００のＵＲＬから特定することができる。
【０２２３】
この場合、送信部は、データＤｉの更新頻度Ｆｉが閾値Ｆth未満の場合に、ステートフル通信で接続中のクライアント装置２０２のうちデータＤｉの要求元となるクライアント装置２０２に第２の再接続指示を送信することにしてもよい。
【０２２４】
これにより、接続数Ｎが閾値Ｎmax以上となった場合に、サーバ２０１との接続状態を維持する必要性が低いウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に変更させることができる。
【０２２５】
また、判定部８０４は、接続数Ｎが閾値Ｎmax以上となった場合、ステートフル通信で接続中のクライアント装置２０２から要求されるデータのうち更新頻度が最も低いデータＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定することにしてもよい。
【０２２６】
これにより、ステートフル通信で接続中のウェブブラウザＢから要求されるデータのうち更新頻度が最も低いデータＤｉにアクセスしているウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に変更させることができる。
【０２２７】
（通信制御処理の一実施例）
ここで、図２１に示したアクセスログ管理テーブル７００を用いて、実施の形態３にかかるサーバ２０１の通信制御処理の一実施例について説明する。ここでは、閾値Ｎmaxを「Ｎmax＝１１」とする。データＤ１の更新頻度Ｆ１を「Ｆ１＝０．５」とし、データＤ２の更新頻度Ｆ２を「Ｆ２＝０．３」とし、データＤ３の更新頻度Ｆ３を「Ｆ３＝０．１」とする。
【０２２８】
まず、判断部２２０１は、アクセスログ管理テーブル７００を参照して、接続中のウェブブラウザＢの接続数Ｎが閾値Ｎmax以上となったか否かを判断する。図２１の例では、接続中のウェブブラウザＢの接続数Ｎは「Ｎ＝１５」となる。このため、判断部２２０１が、接続中のウェブブラウザＢの接続数Ｎが閾値Ｎmax以上となったと判断する。
【０２２９】
この場合、送信部は、ステートフル通信で接続中のウェブブラウザから要求されるデータＤ１〜Ｄ３のうち更新頻度が最も低いデータＤ３の要求元となるウェブブラウザＢに第２の再接続指示を送信する。データＤ３の要求元となるウェブブラウザＢは、ユーザＵ５，Ｕ１４のウェブブラウザＢである。
【０２３０】
これにより、ステートフル通信で接続中のウェブブラウザＢのうち、データＤ３にアクセスしているウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に変更させることができる。
【０２３１】
つぎに、判断部２２０１は、接続数Ｎから接続数Ｎ３を減算した減算後の接続数Ｎが閾値Ｎmax以上か否かを判断する。ここで、接続数Ｎ３は「Ｎ３＝２」であり、接続数Ｎから接続数Ｎ３を減算した減算後の接続数Ｎは「Ｎ＝１３」である。このため、判断部２２０１が、接続中のウェブブラウザＢの接続数Ｎが閾値Ｎmax以上と判断する。
【０２３２】
この場合、送信部は、ステートフル通信で接続中のウェブブラウザＢから要求されるデータＤ１，Ｄ２のうち更新頻度が最も低いデータＤ２の要求元となるウェブブラウザＢに第２の再接続指示を送信する。データＤ２の要求元となるウェブブラウザＢは、ユーザＵ４，Ｕ７，Ｕ９のウェブブラウザＢである。
【０２３３】
これにより、ステートフル通信で接続中のウェブブラウザＢのうち、データＤ２にアクセスしているウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に変更させることができる。
【０２３４】
つぎに、判断部２２０１は、接続数Ｎから接続数Ｎ２を減算した減算後の接続数Ｎが閾値Ｎmax以上か否かを判断する。ここで、接続数Ｎ２は「Ｎ２＝３」であり、接続数Ｎから接続数Ｎ２を減算した減算後の接続数Ｎは「Ｎ＝１０」である。このため、判断部２２０１が、接続中のウェブブラウザＢの接続数Ｎが閾値Ｎmax未満と判断する。
【０２３５】
このように、更新頻度が低いデータＤｉにアクセスしているウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に順に変更させることにより、ウェブブラウザＢの接続数Ｎを閾値Ｎmax未満に抑えることができる。
【０２３６】
（サーバ２０１の通信制御処理手順）
つぎに、実施の形態３にかかるサーバ２０１の通信制御処理手順について説明する。まず、ある店舗ＳＴのクライアント装置２０２との通信形式を制御する第１の通信制御処理手順について説明する。
【０２３７】
図２３は、実施の形態３にかかるサーバ２０１の第１の通信制御処理手順の一例を示すフローチャートである。図２３のフローチャートにおいて、まず、サーバ２０１は、店舗ＳＴのクライアント装置２０２のウェブブラウザＢから接続要求Ｒ１を受け付けたか否かを判断する（ステップＳ２３０１）。
【０２３８】
ここで、サーバ２０１は、ウェブブラウザＢから接続要求Ｒ１を受け付けるのを待つ（ステップＳ２３０１：Ｎｏ）。そして、ウェブブラウザＢから接続要求Ｒ１を受け付けた場合（ステップＳ２３０１：Ｙｅｓ）、サーバ２０１は、店舗情報管理テーブル１８００を参照して、店舗ＳＴの総座席数Ｋを特定する（ステップＳ２３０２）。
【０２３９】
つぎに、サーバ２０１は、店舗状況管理テーブル１９００を参照して、店舗ＳＴの着席数ｋ１と予約数ｋ２を特定する（ステップＳ２３０３）。そして、サーバ２０１は、店舗ＳＴの着席数ｋ１と予約数ｋ２を加算した値が、店舗ＳＴの総座席数Ｋ未満となるか否かを判断する（ステップＳ２３０４）。
【０２４０】
ここで、店舗ＳＴの総座席数Ｋ未満の場合（ステップＳ２３０４：Ｙｅｓ）、サーバ２０１は、ステートフル通信でウェブブラウザＢと接続して（ステップＳ２３０５）、本フローチャートによる一連の処理を終了する。
【０２４１】
一方、店舗ＳＴの総座席数Ｋ以上の場合（ステップＳ２３０４：Ｎｏ）、サーバ２０１は、店舗ＳＴの予約数ｋ２が「ｋ２＝０」か否かを判断する（ステップＳ２３０６）。ここで、店舗ＳＴの予約数ｋ２が「ｋ２＝０」の場合（ステップＳ２３０６：Ｙｅｓ）、サーバ２０１は、ウェブブラウザＢと非接続として（ステップＳ２３０７）、本フローチャートによる一連の処理を終了する。
【０２４２】
一方、店舗ＳＴの予約数ｋ２が「ｋ２≠０」の場合（ステップＳ２３０６：Ｎｏ）、サーバ２０１は、ステートレス通信でウェブブラウザＢと接続して（ステップＳ２３０８）、本フローチャートによる一連の処理を終了する。具体的には、例えば、サーバ２０１は、ウェブブラウザＢに通信変更プログラムＰを送信した結果、第１の再接続指示をウェブブラウザＢに送信することにより、ステートレス通信でウェブブラウザＢと接続する。
【０２４３】
これにより、店舗ＳＴの座席状況に応じて、店舗側のウェブブラウザＢとの通信形式を変更することができる。
【０２４４】
つぎに、ある店舗ＳＴの客のクライアント装置２０２との通信形式を制御する第２の通信制御処理手順について説明する。
【０２４５】
図２４は、実施の形態３にかかるサーバ２０１の第２の通信制御処理手順の一例を示すフローチャートである。図２４のフローチャートにおいて、まず、サーバ２０１は、店舗ＳＴの客のクライアント装置２０２のウェブブラウザＢから接続要求Ｒ１を受け付けたか否かを判断する（ステップＳ２４０１）。
【０２４６】
ここで、サーバ２０１は、ウェブブラウザＢから接続要求Ｒ１を受け付けるのを待つ（ステップＳ２４０１：Ｎｏ）。そして、ウェブブラウザＢから接続要求Ｒ１を受け付けた場合（ステップＳ２４０１：Ｙｅｓ）、サーバ２０１は、店舗情報管理テーブル１８００を参照して、店舗ＳＴの総座席数Ｋを特定する（ステップＳ２４０２）。
【０２４７】
つぎに、サーバ２０１は、店舗状況管理テーブル１９００を参照して、店舗ＳＴの着席数ｋ１と予約数ｋ２を特定する（ステップＳ２４０３）。そして、サーバ２０１は、店舗ＳＴの着席数ｋ１と予約数ｋ２を加算した値が、店舗ＳＴの総座席数Ｋ未満となるか否かを判断する（ステップＳ２４０４）。
【０２４８】
ここで、店舗ＳＴの総座席数Ｋ未満の場合（ステップＳ２４０４：Ｙｅｓ）、サーバ２０１は、ステートフル通信でウェブブラウザＢと接続して（ステップＳ２４０５）、本フローチャートによる一連の処理を終了する。
【０２４９】
一方、店舗ＳＴの総座席数Ｋ以上の場合（ステップＳ２４０４：Ｎｏ）、サーバ２０１は、ステートレス通信でウェブブラウザＢと接続して（ステップＳ２４０６）、本フローチャートによる一連の処理を終了する。
【０２５０】
これにより、店舗ＳＴの座席状況に応じて、客側のウェブブラウザＢとの通信形式を変更することができる。
【０２５１】
つぎに、接続中のクライアント装置２０２の接続数Ｎが閾値Ｎmax以上となった場合に、ステートフル通信で接続中のクライアント装置２０２との通信形式を変更する第３の通信制御処理手順について説明する。
【０２５２】
図２５は、実施の形態３にかかるサーバ２０１の第３の通信制御処理手順の一例を示すフローチャートである。図２５のフローチャートにおいて、まず、サーバ２０１は、接続中のクライアント装置２０２の接続数Ｎが閾値Ｎmax以上となったか否かを判断する（ステップＳ２５０１）。ここで、サーバ２０１は、接続数Ｎが閾値Ｎmax以上となるのを待つ（ステップＳ２５０１：Ｎｏ）。
【０２５３】
接続数Ｎが閾値Ｎmax以上となった場合（ステップＳ２５０１：Ｙｅｓ）、サーバ２０１は、データＤｉの「ｉ＝１」として（ステップＳ２５０２）、データＤ１〜Ｄｎの中からデータＤｉを選択する（ステップＳ２５０３）。そして、サーバ２０１は、更新ログテーブル６００の中から、データＤｉの更新ログを抽出する（ステップＳ２５０４）。そして、サーバ２０１は、抽出したデータＤｉの更新ログに基づいて、データＤｉの平均更新間隔ｔを算出する（ステップＳ２５０５）。
【０２５４】
つぎに、サーバ２０１は、算出した平均更新間隔ｔｊの逆数を求めることにより、データＤｉの更新頻度Ｆｉを算出する（ステップＳ２５０６）。なお、算出されたデータＤｉの更新頻度Ｆｉは、例えば、更新頻度ＤＢ２２０に記憶される。
【０２５５】
つぎに、サーバ２０１は、データＤｉの「ｉ」をインクリメントして（ステップＳ２５０７）、「ｉ」が「ｎ」より大きくなったか否かを判断する（ステップＳ２５０８）。ここで、「ｉ」が「ｎ」以下の場合（ステップＳ２５０８：Ｎｏ）、サーバ２０１は、ステップＳ２５０３に戻る。
【０２５６】
一方、「ｉ」が「ｎ」より大きい場合（ステップＳ２５０８：Ｙｅｓ）、サーバ２０１は、更新頻度ＤＢ２２０を参照して、更新頻度が最も低いデータＤｉを選択する（ステップＳ２５０９）。そして、サーバ２０１は、アクセスログ管理テーブル７００を参照して、選択したデータＤｉにステートフル通信でアクセスしているウェブブラウザＢを特定する（ステップＳ２５１０）。
【０２５７】
つぎに、サーバ２０１は、特定したウェブブラウザＢの接続数Ｎｉを特定する（ステップＳ２５１１）。そして、サーバ２０１は、特定したウェブブラウザＢに通信変更プログラムＰを送信する（ステップＳ２５１２）。そして、サーバ２０１は、特定したウェブブラウザＢとの接続を切断する（ステップＳ２５１３）。
【０２５８】
つぎに、サーバ２０１は、接続中のクライアント装置２０２の接続数ＮからウェブブラウザＢの接続数Ｎｉを減算して（ステップＳ２５１４）、接続数Ｎが閾値Ｎmax以上か否かを判断する（ステップＳ２５１５）。ここで、接続数Ｎが閾値Ｎmax以上の場合（ステップＳ２５１５：Ｙｅｓ）、サーバ２０１は、ステップＳ２５０９に戻って、更新頻度が最も低い未選択のデータＤｉを選択する。
【０２５９】
一方、接続数Ｎが閾値Ｎmax未満の場合（ステップＳ２５１５：Ｎｏ）、サーバ２０１は、本フローチャートによる一連の処理を終了する。
【０２６０】
これにより、接続中のウェブブラウザＢの接続数Ｎが閾値Ｎmax以上となった場合に、更新頻度が最も低いデータＤｉから順に、ステートフル通信でデータＤｉにアクセスしているウェブブラウザＢとの通信形式をステートレス通信に変更することができる。
【０２６１】
（店舗状況と通信形式の関係）
図２６は、店舗状況と通信形式の関係を示す説明図である。図２６に示すように、店舗ＳＴの店舗状況に応じて、店舗ＳＴのデータＤｉにアクセスしているウェブブラウザＢとサーバ２０１との通信形式が変更される。
【０２６２】
例えば、店舗ＳＴの店舗状況が満席の場合、サーバ２０１とウェブブラウザＢとの通信形式は非接続となる。ここで、満席とは、店舗ＳＴの着席数ｋ１と予約数ｋ２を加算した値が店舗ＳＴの総座席数Ｋ以上でかつ予約数ｋ２が「ｋ２＝０」の状態である。
【０２６３】
また、店舗ＳＴの店舗状況が空席あり（予約なし）の場合、サーバ２０１とウェブブラウザＢとの通信形式はステートフル通信となる。ここで、空席あり（予約なし）とは、店舗ＳＴの着席数ｋ１と予約数ｋ２を加算した値が店舗ＳＴの総座席数Ｋ未満でかつ予約数ｋ２が「ｋ２＝０」の状態である。
【０２６４】
また、店舗ＳＴの店舗状況が空席あり（予約あり）の場合、サーバ２０１とウェブブラウザＢとの通信形式はステートレス通信となる。ここで、空席あり（予約あり）とは、店舗ＳＴの着席数ｋ１と予約数ｋ２を加算した値が店舗ＳＴの総座席数Ｋ以上でかつ予約数ｋ２が「ｋ２≠０」の状態である。
【０２６５】
（複数の店舗の店舗状況と通信形式の関係）
図２７は、複数の店舗の店舗状況と通信形式の関係を示す説明図である。図２７に示すように、各店舗Ａ，Ｂ，Ｃ，Ｄの店舗状況に応じて、各店舗Ａ，Ｂ，Ｃ，ＤのデータＤ１，Ｄ２，Ｄ３，Ｄ４にアクセスしているウェブブラウザＢとサーバ２０１との通信形式が変更される。
【０２６６】
このように、サーバ２０１が複数の店舗の店舗状況を取り扱う場合に、各店舗Ａ，Ｂ，Ｃ，Ｄの店舗状況によりサーバ２０１ネットワークリソースの利用状況が異なるため、サーバ２０１のリソースを効率的に活用することができる。
【０２６７】
以上説明したように、実施の形態３にかかるサーバ２０１によれば、アクセスログ管理テーブル７００を参照して、接続中のウェブブラウザＢの接続数Ｎが閾値Ｎmax以上となったか否かを判断することができる。また、サーバ２０１によれば、接続数Ｎが閾値Ｎmax以上となった場合に、ステートフル通信で接続中のウェブブラウザＢから要求されるデータのうち更新頻度が最も低いデータＤｉの要求元となるウェブブラウザＢに第２の再接続指示を送信することができる。これにより、接続数Ｎが閾値Ｎmax以上となった場合に、サーバ２０１との接続状態を維持する必要性が最も低いウェブブラウザＢとの通信形式を、ステートフル通信からステートレス通信に変更させることができる。
【０２６８】
また、サーバ２０１によれば、接続数Ｎから、ステートフル通信の接続を切断したウェブブラウザＢの接続数Ｎｉを減算した減算後の接続数Ｎが閾値Ｎmax以上か否かを判断することができる。これにより、ステートフル通信で接続中のウェブブラウザＢから要求されるデータのうち更新頻度が低いデータＤｉにアクセスするウェブブラウザＢから順に、そのウェブブラウザＢとの通信形式をステートレス通信に変更させることができる。
【０２６９】
また、サーバ２０１によれば、接続数Ｎが閾値Ｎmax以上となった場合、ステートフル通信で接続中のクライアント装置２０２から要求されるデータのうち更新頻度が最も低いデータＤｉの更新頻度Ｆｉが閾値Ｆth未満か否かを判定することができる。
【０２７０】
これにより、ステートフル通信で接続中のウェブブラウザＢから要求されるデータのうち更新頻度が最も低いデータＤｉにアクセスし、かつ、サーバ２０１との接続状態を維持する必要性が低いウェブブラウザＢとの通信形式をステートレス通信に変更させることができる。
【０２７１】
なお、本実施の形態で説明した通信制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本通信制御プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本通信制御プログラムは、インターネット等のネットワークを介して配布してもよい。
【０２７２】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０２７３】
（付記１）コンピュータが、
クライアント装置から要求されるデータに基づく前記クライアント装置へのデータ通信を、前記クライアント装置との接続状態を維持して繰り返し行える第１の通信方式で前記クライアント装置と接続中に、前記データが更新される頻度を表す情報を記憶する記憶部を参照して、前記データの更新頻度が閾値未満か否かを判定し、
前記データの更新頻度が前記閾値未満の場合、前記データ通信が行われる度に前記クライアント装置との接続を切断する第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信し、
前記再接続指示を送信した結果、前記クライアント装置との接続を切断する、
処理を実行することを特徴とする通信制御方法。
【０２７４】
（付記２）前記コンピュータが、
前記再接続指示を送信した結果、前記第２の通信方式での接続要求を前記クライアント装置から受け付けた場合、前記記憶部を参照して、前記データの更新頻度が前記閾値未満か否かを判定し、
前記データの更新頻度が前記閾値以上の場合、前記第１の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信する、
処理を実行することを特徴とする付記１に記載の通信制御方法。
【０２７５】
（付記３）前記記憶部は、前記データが更新された更新日時を表すログを記憶しており、
前記コンピュータが、
前記記憶部に記憶されている前記データの更新日時を表すログに基づいて、前記データの更新頻度が閾値未満となる期間を特定する処理を実行し、
前記判定する処理は、
前記第１の通信方式で前記クライアント装置と接続中の時点が、特定した前記期間内か否かを判定し、
前記送信する処理は、
前記期間内と判定した場合、前記第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信することを特徴とする付記１または２に記載の通信制御方法。
【０２７６】
（付記４）前記コンピュータが、
前記再接続指示を送信した結果、前記第２の通信方式での接続要求を前記クライアント装置から受け付けた時点が前記期間内か否かを判定し、
前記期間外と判定した場合、前記第１の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信する、
処理を実行することを特徴とする付記３に記載の通信制御方法。
【０２７７】
（付記５）前記コンピュータが、
接続中のクライアント装置を特定する情報を参照して、前記接続中のクライアント装置の接続数が所定値以上となったか否かを判断し、
前記接続中のクライアント装置の接続数が前記所定値以上となった場合、前記接続中のクライアント装置から要求されるデータのうち更新頻度が最も低いデータの要求元であり、かつ、前記第１の通信方式で接続中のクライアント装置を特定する、処理を実行し、
前記送信する処理は、
特定した前記クライアント装置に、前記第２の通信方式での接続要求を行うよう指示する再接続指示を送信することを特徴とする付記１乃至４のいずれか一つに記載の通信制御方法。
【０２７８】
（付記６）前記送信する処理は、
前記第２の通信方式での接続要求を、所定の時間間隔で行うよう指示する再接続指示を前記クライアント装置に送信することを特徴とする付記１乃至５のいずれか一つに記載の通信制御方法。
【０２７９】
（付記７）前記コンピュータが、
前記接続中のクライアント装置の接続数が前記所定値以上となった場合、前記第１の通信方式で接続中のクライアント装置から要求されるデータの更新頻度が前記閾値未満か否かを判定し、
前記データの更新頻度が前記閾値未満の場合、前記第１の通信方式で接続中のクライアント装置のうち前記データの要求元となるクライアント装置を特定する、処理を実行し、
前記送信する処理は、
特定した前記クライアント装置に、前記第２の通信方式での接続要求を行うよう指示する再接続指示を送信することを特徴とする付記５に記載の通信制御方法。
【０２８０】
（付記８）前記記憶部は、前記データが更新された更新日時を表すログを記憶しており、
前記コンピュータが、
前記記憶部に記憶されている前記データの更新日時を表すログに基づいて、前記データの更新頻度を算出する処理を実行し、
前記判定する処理は、
算出した前記データの更新頻度が前記閾値未満か否かを判定することを特徴とする付記１乃至７のいずれか一つに記載の通信制御方法。
【０２８１】
（付記９）前記記憶部は、前記データが更新された更新日時を表すログを記憶しており、
前記コンピュータが、
前記データの更新頻度が前記閾値未満の場合、前記記憶部に記憶されている前記データの更新日時を表すログに基づいて、前記クライアント装置が前記第２の通信方式での接続要求を行うまでの所定時間を算出する処理を実行し、
前記送信する処理は、
前記第２の通信方式での接続要求を、算出した前記所定時間の経過後に行うよう指示する再接続指示を前記クライアント装置に送信することを特徴とする付記１乃至８のいずれか一つに記載の通信制御方法。
【０２８２】
（付記１０）コンピュータに、
クライアント装置から要求されるデータに基づく前記クライアント装置へのデータ通信を、前記クライアント装置との接続状態を維持して繰り返し行える第１の通信方式で前記クライアント装置と接続中に、前記データが更新される頻度を表す情報を記憶する記憶部を参照して、前記データの更新頻度が閾値未満か否かを判定し、
前記データの更新頻度が前記閾値未満の場合、前記データ通信が行われる度に前記クライアント装置との接続を切断する第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信し、
前記再接続指示を送信した結果、前記クライアント装置との接続を切断する、
処理を実行させることを特徴とする通信制御プログラム。
【０２８３】
（付記１１）コンピュータに、
クライアント装置から要求されるデータに基づく前記クライアント装置へのデータ通信を、前記クライアント装置との接続状態を維持して繰り返し行える第１の通信方式で前記クライアント装置と接続中に、前記データが更新される頻度を表す情報を記憶する記憶部を参照して、前記データの更新頻度が閾値未満か否かを判定し、
前記データの更新頻度が前記閾値未満の場合、前記データ通信が行われる度に前記クライアント装置との接続を切断する第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信し、
前記再接続指示を送信した結果、前記クライアント装置との接続を切断する、
処理を実行させる通信制御プログラムを記録したことを特徴とする前記コンピュータに読み取り可能な記録媒体。
【０２８４】
（付記１２）クライアント装置から要求されるデータに基づく前記クライアント装置へのデータ通信を、前記クライアント装置との接続状態を維持して繰り返し行える第１の通信方式で前記クライアント装置と接続中に、前記データが更新される頻度を表す情報を記憶する記憶部を参照して、前記データの更新頻度が閾値未満か否かを判定する判定部と、
前記判定部によって前記データの更新頻度が前記閾値未満と判定された場合、前記データ通信が行われる度に前記クライアント装置との接続を切断する第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信する送信部と、
前記送信部によって前記再接続指示が送信された結果、前記クライアント装置との接続を切断する切断部と、
を有することを特徴とする通信制御装置。
【０２８５】
（付記１３）クライアント装置から要求されるデータに基づく前記クライアント装置へのデータ通信を、前記クライアント装置との接続状態を維持して繰り返し行える第１の通信方式で前記クライアント装置と接続中に、前記データが更新される頻度を表す情報を記憶する記憶部を参照して、前記データの更新頻度が閾値未満か否かを判定する判定部と、
前記判定部によって前記データの更新頻度が前記閾値未満と判定された場合、前記データ通信が行われる度に前記クライアント装置との接続を切断する第２の通信方式での接続要求を行うよう指示する再接続指示を前記クライアント装置に送信する送信部と、
前記送信部によって前記再接続指示が送信された結果、前記クライアント装置との接続を切断する切断部と、
を有するコンピュータを含むことを特徴とする通信制御装置。
【符号の説明】
【０２８６】
１０１  通信制御装置
１０２，２０２  クライアント装置
２０１  サーバ
８０１，１００２  受付部
８０２  接続部
８０３  算出部
８０４  判定部
８０５  指示部
８０６  切断部
１００１  要求部
１００３  変更部
１５０１  特定部
２２０１  判断部
【図１】
2014017563.tif 000003
【図２】
2014017563.tif 000004
【図３】
2014017563.tif 000005
【図４】
2014017563.tif 000006
【図５】
2014017563.tif 000007
【図６】
2014017563.tif 000008
【図７】
2014017563.tif 000009
【図８】
2014017563.tif 000010
【図９】
2014017563.tif 000011
【図１０】
2014017563.tif 000012
【図１１】
2014017563.tif 000013
【図１２】
2014017563.tif 000014
【図１３】
2014017563.tif 000015
【図１４】
2014017563.tif 000016
【図１５】
2014017563.tif 000017
【図１６】
2014017563.tif 000018
【図１７】
2014017563.tif 000019
【図１８】
2014017563.tif 000020
【図１９】
2014017563.tif 000021
【図２０】
2014017563.tif 000022
【図２１】
2014017563.tif 000023
【図２２】
2014017563.tif 000024
【図２３】
2014017563.tif 000025
【図２４】
2014017563.tif 000026
【図２５】
2014017563.tif 000027
【図２６】
2014017563.tif 000028
【図２７】
2014017563.tif 000029