(57)【要約】【課題】ウェブブラウザが停止した場合に、過大な負荷を要することなく、ウェブブラウザの停止を正しく判定して当該ウェブブラウザに関わるセッション情報を消去する。【解決手段】ウェブブラウザはサーバにLongPollリクエストを送信する。サーバはLongPollリクエストをいったん保持し、任意の時点でウェブブラウザへのプッシュ処理を行なう。ウェブブラウザは、サーバからのプッシュされたデータを受信すると、LongPollリクエストをサーバに返す。ウェブサーバは、プッシュ処理を行なってからウェブブラウザからのLongPollリクエストを受信するまでの時間である往復通信時間を計測する。ウェブサーバは、プッシュ処理後に停止判定時間が経過してもウェブブラウザからのLongPollリクエストを受信しない場合に、ウェブブラウザが停止したと判定し、当該ウェブブラウザのセッション情報を消去する。【選択図】      図１
2009289163.tif 000002
【特許請求の範囲】
【請求項１】
クライアント装置で動作中のウェブブラウザに関するセッション情報を管理する管理手段と、
前記クライアント装置のウェブブラウザとの間の往復通信時間をもとに、当該往復通信時間より長い当該ウェブブラウザの停止判定時間を計算する計算手段と、
前記クライアント装置のウェブブラウザに応答を要求し、当該要求を行なってから前記計算手段により計算した停止判定時間が経過しても要求先のウェブブラウザからの応答が無い場合に当該ウェブブラウザが停止したと判定する停止判定手段と、
前記ウェブブラウザが停止していると前記停止判定手段が判定した場合に、当該ウェブブラウザに関するセッション情報を消去するセッション情報消去手段と
を備えたことを特徴とするサーバ装置。
【請求項２】
前記クライアント装置のウェブブラウザに対して応答信号の送信要求信号を送信する送信手段と、
前記送信手段により送信された送信要求信号にしたがって前記ウェブブラウザから送信された応答信号を受信する受信手段と、
前記送信手段による送信要求信号の送信タイミングから前記受信手段による応答信号の受信タイミングまでの時間を前記往復通信時間として計測する計測手段とをさらに備え、
前記計算手段は、前記計測手段により計測した往復通信時間をもとに前記停止判定時間を計算する
ことを特徴とする請求項１に記載のサーバ装置。
【請求項３】
サーバ装置およびクライアント装置を有する通信システムであって、
前記サーバ装置は、
前記クライアント装置で動作中のウェブブラウザに関するセッション情報を管理する管理手段と、
前記クライアント装置のウェブブラウザとの間の往復通信時間をもとに、当該往復通信時間より長い当該ウェブブラウザの停止判定時間を計算する計算手段と、
前記クライアント装置のウェブブラウザに応答を要求し、当該要求を行なってから前記計算手段により計算した停止判定時間が経過しても要求先のウェブブラウザからの応答が無い場合に、当該ウェブブラウザが停止したと判定する停止判定手段と、
前記ウェブブラウザが停止していると前記停止判定手段が判定した場合に、当該ウェブブラウザに関するセッション情報を消去するセッション情報消去手段とを備えた
ことを特徴とする通信システム。
【請求項４】
前記サーバ装置は、
前記クライアント装置のウェブブラウザに、当該ウェブブラウザによる処理用情報および応答信号の送信要求信号の何れかを送信する送信手段と、
前記送信手段による前記送信要求信号の送信にしたがって前記ウェブブラウザから送信された応答信号を受信する受信手段と、
前記送信手段による送信要求信号の送信タイミングから前記受信手段による応答信号の受信タイミングまでの時間を前記往復通信時間として計測する計測手段と
をさらに備え、
前記サーバ装置の前記計算手段は、前記計測手段が往復通信時間の計測を行なった場合には、当該往復通信時間をもとに前記停止判定時間を計算し、前記送信手段により前記処理用情報を送信した場合には、前記往復通信時間の初期値をもとに前記停止判定時間を計算し、
前記クライアント装置は、
前記サーバ装置の前記送信手段により送信された送信要求信号を受信する受信手段と、
前記受信手段による送信要求信号の受信にともなって当該ウェブブラウザにより生成された前記応答信号を前記サーバ装置に送信する送信手段と
をさらに備えた
ことを特徴とする請求項３に記載の通信システム。
【請求項５】
前記サーバ装置は、
前記クライアント装置のウェブブラウザに対して応答信号の送信要求信号を送信する送信手段と、
前記送信手段により送信された送信要求信号にしたがって前記ウェブブラウザから送信された応答信号を受信する受信手段と、
前記送信手段による送信要求信号の送信タイミングから前記受信手段による応答信号の受信タイミングまでの時間を前記往復通信時間として計測する計測手段と
をさらに備え、
前記サーバ装置の計算手段は、前記計測手段により計測した往復通信時間をもとに前記停止判定時間を計算する
ことを特徴とする請求項３に記載の通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置との間の通信を行なうサーバ装置および通信システムに関する。
【背景技術】
【０００２】
従来、通信システムのサーバ装置とクライアント装置の間で構築する一般的なウェブアプリケーションとしてクライアントプルと呼ばれる通信技術がある。
【０００３】
図９は、従来の通信システムのウェブブラウザとウェブサーバ間のクライアントプルによる送受信信号について説明する図である。  
クライアントプルによる通信を行なう場合には、クライアント装置で動作するウェブブラウザが処理の起点となる。このクライアントプルでは、図９に示すように、ウェブブラウザは、ウェブサーバに当該ウェブサーバからのデータ送信を要求するためのリクエストを送信し、このリクエストを受信したウェブサーバは、リクエスト送信元のウェブブラウザでの表示用データなどのレスポンスを当該ウェブブラウザに返す。
【０００４】
また、ウェブアプリケーションの別の形態として、Ｃｏｍｅｔと呼ばれる通信技術がある。Ｃｏｍｅｔとは、ウェブアプリケーションとして例えば特許文献１に開示されるようなサーバプッシュを実現するための通信技術である。
【０００５】
図１０は、従来の通信システムのウェブブラウザとウェブサーバ間のサーバプッシュによる送受信信号について説明する図である。  
図１０に示すように、サーバプッシュによる通信を行なう場合にはウェブサーバが処理の起点となり、このウェブサーバが、ウェブブラウザでの表示用データなどのプッシュ処理を行なう。
【０００６】
以下、サーバプッシュによる処理の流れを説明する。図１１は、従来の通信システムのウェブブラウザとウェブサーバ間のサーバプッシュによる処理の流れを説明する図である。  
前述したＣｏｍｅｔの処理を行なうには、図１１に示すように、まず、ウェブブラウザからウェブサーバにリクエストを送信する（ステップＳ５１）。
【０００７】
ウェブサーバは、ウェブブラウザからのリクエストを受信しても、クライアントプルのようにレスポンスをすぐには返さないで、当該リクエストを保持する（ステップＳ５２）。
【０００８】
任意の時点で、ウェブサーバは、保持しているリクエストに対するレスポンスをウェブブラウザに返す処理であるプッシュ処理を行なう（ステップＳ５３）。  
そして、ウェブブラウザはウェブサーバに再びリクエストを送信し（ステップＳ５４）、以下、ステップＳ５２，Ｓ５３，Ｓ５４の処理が繰り返される。
【０００９】
このように、予めウェブブラウザからウェブサーバにリクエストを送信しておき、このリクエストをウェブサーバで保持しておくことで、任意の時点でデータをウェブブラウザにプッシュできる。
【００１０】
以後、サーバプッシュを実現するためにウェブブラウザから送信されるリクエストをLongPollリクエストと呼び、サーバプッシュを実現するためでない通常のリクエストと区別する。つまり、前述したステップＳ５１の処理によりウェブブラウザから送信されたリクエストはLongPollリクエストである。
【００１１】
ウェブサーバでは、当該サーバ内でのデータが更新された等の場合にデータのプッシュ要求が発生する。このプッシュ要求は、ウェブサーバ内で生成されたデータである、クライアント装置での出力用データを含む。
【００１２】
ウェブサーバは、ステップＳ５３の処理によるプッシュ処理後からステップＳ５４の処理によるウェブブラウザからの再度のリクエストを受信するまでは当該ウェブブラウザからのLongPollリクエストを保持していないので、ウェブブラウザへデータをプッシュできないことになる。そこで、ウェブブラウザとウェブサーバとの間では、プッシュ要求に対するプッシュ処理を行なうために、以下に示すようなプッシュ要求の一時保存処理を行なう。
【００１３】
図１２は、従来の通信システムのウェブブラウザとウェブサーバ間のサーバプッシュによるプッシュ要求の一時保存処理の流れを説明する図である。  
まず、ウェブブラウザとウェブサーバ間で図１１に示したステップＳ５１，５２の処理がなされた後（ステップＳ６１，Ｓ６２）、ウェブサーバは、ステップＳ６２の処理によるプッシュ処理を行なったためにウェブブラウザからのLongPollリクエストを保持していない状態でプッシュ要求が発生した場合には（ステップＳ６３）、ウェブブラウザから次のLongPollリクエストを受信するまで、発生済みのプッシュ要求をセッション情報として一時保存する（ステップＳ６４）。
【００１４】
そして、ウェブブラウザがウェブサーバにLongPollリクエストを再び送信した場合には（ステップＳ６５）、サーバは、一時保存していたセッション情報を取り出して（ステップＳ６６）、ウェブブラウザへのプッシュ処理を行なう（ステップＳ６７）。
【００１５】
ここで、ウェブブラウザが、ステップＳ６１の処理によってLongPollリクエストの送信後からステップＳ６５の処理によるLongPollリクエストの再度の送信前の間に停止した場合、当該ステップＳ６５の処理によるLongPollリクエストの再度の送信がなされない。よって、サーバによるステップＳ６６，６７の処理であるセッション情報の取り出しおよびプッシュ処理もなされない。つまり、サーバがステップＳ６４の処理により一時保存したデータが当該ウェブサーバに無駄にいつまでも残ってしまうことになる。
【００１６】
この問題を解決するためには、ウェブサーバでは自ら保存しているセッション情報をタイムアウトという方法を用いて消去している。タイムアウトとは、ウェブサーバがウェブブラウザとの通信が途絶えて一定時間後に当該ウェブブラウザが停止したと判定し、このウェブブラウザのセッション情報を消去する方法である。
【特許文献１】特許第３６８２９１４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
ウェブサーバがタイムアウトによりウェブブラウザのセッション情報を消去する方法では、ウェブブラウザが停止しても、ウェブサーバと当該ウェブブラウザとの通信が途絶えてから一定時間経過するまでセッション情報が当該ウェブサーバに無駄に残ってしまう問題がある。
【００１８】
また、ウェブブラウザが停止していなくても、ユーザが一定時間ウェブブラウザを操作しないとウェブサーバは当該ウェブブラウザが停止したと誤って判定し、セッション情報を消去してしまう問題がある。
【００１９】
前述したセッション情報の無駄な保持を防ぐためには、タイムアウトの設定時間を任意に短い時間に設定することが考えられるが、設定時間を短くするほど、前述したようにウェブサーバがウェブブラウザの停止の誤った判定を行なってしまう可能性が高くなる。
【００２０】
ウェブブラウザが停止したとサーバが誤って判定してしまう問題を解決するために、ウェブブラウザが一定時間毎にウェブサーバにダミーのリクエスト、つまり特にサービスを要求しないリクエストを送信し、ウェブブラウザがウェブサーバに対して当該ウェブブラウザが停止していないことを通知する方法がある。しかし、この方法はダミーのリクエストの送受信を必要とするため、ウェブブラウザやネットワークに必要以上の負荷がかかる問題が新たに発生する。
【００２１】
そこで、本発明の目的は、クライアント装置で動作するウェブブラウザが停止した場合に、過大な負荷を要することなく、ウェブブラウザの停止を正しく判定して当該ウェブブラウザに関わるセッション情報を消去することが可能になるサーバ装置および通信システムを提供することにある。
【課題を解決するための手段】
【００２２】
すなわち、本発明に係わるサーバ装置は、クライアント装置で動作中のウェブブラウザに関するセッション情報を管理する管理手段と、クライアント装置のウェブブラウザとの間の往復通信時間をもとに、当該往復通信時間より長い当該ウェブブラウザの停止判定時間を計算し、クライアント装置のウェブブラウザに応答を要求し、当該要求を行なってから停止判定時間が経過しても要求先のウェブブラウザからの応答が無い場合に当該ウェブブラウザが停止したと判定し、当該ウェブブラウザに関するセッション情報を消去することを特徴とする。
【発明の効果】
【００２３】
本発明によれば、クライアント装置で動作するウェブブラウザが停止した場合に、過大な負荷を要することなく、ウェブブラウザの停止を正しく判定して当該ウェブブラウザに関わるセッション情報を消去することができる。
【発明を実施するための最良の形態】
【００２４】
以下図面により本発明の実施形態について説明する。  
（第１の実施形態）
まず、本発明の第１の実施形態について説明する。  
本発明の第１の実施形態では、ウェブサーバがクライアント装置で動作するウェブブラウザにデータをプッシュした後で、ウェブサーバがウェブブラウザからのLongPollリクエストを所定の時間内に受信できない場合に当該ウェブブラウザが停止したと判定する。
【００２５】
本実施形態において、ウェブサーバがウェブブラウザを停止したと判定するまでの時間を停止判定時間と呼ぶ。この停止判定時間は、サーバが往復通信時間を基に算出する。この往復通信時間とは、ウェブサーバからウェブブラウザへの通信およびウェブブラウザからウェブサーバへの通信に要する時間である。  
ウェブサーバは、データをプッシュする直前から往復通信時間の計測を開始し、このプッシュに伴うウェブブラウザからのLongPollリクエストの受信の直後で往復通信時間の計測を完了させる。
【００２６】
ウェブサーバが往復通信時間から停止判定時間を算出する具体的な方法は、例えば往復通信時間の４倍など、往復通信時間の１以上の実数倍を停止判定時間にしたり、往復通信時間に一定時間を加算した時間を停止判定時間にしたりする方法が挙げられる。停止判定時間の算出方法は特に限られないが、少なくとも往復通信時間より長い時間である必要がある。
【００２７】
停止判定時間を往復通信時間より長い時間とする必要がある理由は、往復通信時間が変動するためである。例えば、サーバが短い往復通信時間を偶々計測し、当該往復通信時間の１倍などを停止判定時間にしてしまうと、その後の往復通信時間が偶々長くなった場合に、ウェブサーバはウェブブラウザが実際には停止していないのに停止したと判定してしまう。
【００２８】
往復通信時間が変動する理由は、ブッシュ対象のデータやLongPollリクエストの通信時間がネットワークの混雑具合に影響されたり、ウェブサーバからのプッシュ処理を受けたウェブブラウザの処理時間が、LongPollリクエストをウェブサーバに送信する前に行なう処理、例えばサーバからプッシュされたデータを画面に反映させるなどの処理に影響されたりするためである。ここで述べた、サーバからプッシュされたデータをウェブブラウザが画面に反映させる処理時間は当該プッシュされたデータの内容に依存する。
【００２９】
また、往復通信時間は、ウェブブラウザが停止する前にサーバが予め計測しておく必要がある。しかし、サーバが往復通信時間を計測する前にウェブブラウザが停止してしまう場合もあり得るので、予めサーバ側で往復通信時間の初期値を定めておく。  
例えば、ウェブアプリケーションをＬＡＮ内で用いるなら往復通信時間は１０００ミリ秒、ＷＡＮで用いるなら４０００ミリ秒などと定めておく。この初期値が十分長い時間でないと、ウェブサーバは、ウェブブラウザが停止していないのに停止したと誤った判定をしてしまう。
【００３０】
図１は、本発明の第１の実施形態における通信システム上のウェブブラウザとウェブサーバ間の処理の流れを説明する図である。  
まず、ウェブブラウザは、通信先のウェブサーバにLongPollリクエストを送信する（ステップＳ１）。そして、ウェブサーバはLongPollリクエストをいったん保持し、任意の時点でウェブブラウザへのプッシュ処理を行なう（ステップＳ２）。  
ウェブブラウザは、ウェブサーバからプッシュされたデータを受信すると、LongPollリクエストをサーバに返す（ステップＳ３）。  
ウェブサーバは、プッシュ処理を行なってからウェブブラウザからのLongPollリクエストを受信するまでの時間、つまり往復通信時間を計測する（ステップＳ４）。
【００３１】
ウェブブラウザがステップＳ３の処理後に停止した（ステップＳ５）とすると、ウェブサーバはステップＳ３の処理によりウェブブラウザから送信されたLongPollリクエストに対するプッシュ処理を行う（ステップＳ６）。この場合、停止したウェブブラウザに行なうことになる。
【００３２】
ウェブブラウザは既に停止しているため、前述したステップＳ３の処理のようにLongPollリクエストを送信しない。ウェブサーバは、ステップＳ６によるプッシュ処理後に停止判定時間が経過しても、ウェブブラウザからLongPollリクエストを受信することはない。
【００３３】
ウェブサーバは、ステップＳ６によるプッシュ処理後に停止判定時間が経過してもウェブブラウザからのLongPollリクエストを受信しない場合に、当該ウェブブラウザが停止したと判定する（ステップＳ７）。  
そして、受信しない場合、サーバは停止したウェブブラウザのセッション情報を消去する（ステップＳ８）。
【００３４】
図２は、本発明の第１の実施形態における通信システムのサーバ装置の構成例を示すブロック図である。  
本発明の第１の実施形態における通信システムはサーバ装置であるウェブサーバ１およびクライアント装置２を有する。クライアント装置２ではウェブブラウザが動作する。  
図２に示したサーバ装置は、装置全体の動作を司る制御部１１、記憶装置１２、通信部１３、往復通信時間計測部１４、クライアント停止判定部１５、セッション情報管理部１６、プッシュ要求受付部１７を備え、それぞれがバス１８を介して相互に接続される。
【００３５】
記憶装置１２は、例えばハードディスクドライブや不揮発性メモリなどの記憶媒体であり、通信部１３、往復通信時間計測部１４、クライアント停止判定部１５、セッション情報管理部１６、プッシュ要求受付部１７による処理動作のためのプログラムを記憶する他、セッション情報記憶部２１および停止判定時間記憶部２２を有する。
【００３６】
通信部１３は、クライアント装置２からのLongPollリクエストを受信する。また通信部１３はLongPollリクエストへのレスポンスであるプッシュ処理用のデータをリクエスト元のクライアント装置２のウェブブラウザに送信する。また、通信部１３は、セッション情報管理部１６によって管理される情報を取得する機能、クライアント装置２からのLongPollリクエストを受信すると、この受信した旨を往復通信時間計測部１４とクライアント停止判定部１５に通知する機能、クライアント装置２のウェブブラウザにデータを送信する前に、当該送信の旨を往復通信時間計測部１４とクライアント停止判定部１５に通知する機能を有する。
【００３７】
往復通信時間計測部１４は、通信部１３がクライアント装置２のウェブブラウザにプッシュ処理用のデータを送信する旨を当該通信部１３から通知されると往復通信時間の計測を開始する機能、通信部１３がクライアント装置２からLongPollリクエストを受信した旨を当該通信部１３から通知されると往復通信時間の計測を完了して当該計測結果をセッション情報管理部１６に渡す機能、およびクライアント停止判定部１５からウェブブラウザの停止を通知されると往復通信時間の計測を中止する機能を有する。
【００３８】
セッション情報管理部１６は、クライアント装置２のウェブブラウザにプッシュするデータを通信部１３に渡す機能、クライアント装置２のウェブブラウザにプッシュするデータをプッシュ要求受付部１７から受け取る機能、通信対象のウェブブラウザ個々に関するデータをセッション情報として記憶装置１２のセッション情報記憶部２１に保持する機能、ウェブブラウザが停止したことがクライアント停止判定部１５から通知された場合に当該ウェブブラウザに関するセッション情報を記憶装置１２のセッション情報記憶部２１から消去する機能を有する。
【００３９】
ウェブブラウザ個々に関するデータには、ウェブブラウザにプッシュするデータや、ウェブブラウザとウェブサーバ１間の往復通信時間などがある。また、セッション情報管理部１６は、ウェブブラウザにプッシュするデータを一時保存する。また、セッション情報管理部１６は、往復通信時間を往復通信時間計測部１４より受け取る機能も有する。
【００４０】
プッシュ要求受付部１７は、ウェブブラウザにプッシュしたいデータをクライアントウェブアプリケーションから受け取る機能、および当該受け取ったデータをセッション情報管理部１６に渡す機能を有する。プッシュ要求受付部１７が受け取るデータは、ウェブサーバ１側でのデータの更新などにより、クライアント装置２のウェブブラウザからの通常のリクエストによらずに当該ウェブブラウザへ出力されるべきデータである。
【００４１】
クライアント停止判定部１５は、計算済みの往復通信時間をセッション情報管理部１６から取得する機能、当該取得した往復通信時間から停止判定時間を算出して記憶装置１２の停止判定時間記憶部２２に記憶する機能、通信部１３がクライアント装置２のウェブブラウザにデータを送信する旨を当該通信部１３から通知されてから、前述したように算出された停止判定時間が経過しても、通信部１３がクライアント装置２からLongPollリクエストを受信した旨を当該通信部１３から通知されない場合、クライアント装置２のウェブブラウザが停止したと判定する機能、およびウェブブラウザが停止したと判定した場合に当該停止した旨を往復通信時間計測部１４とセッション情報管理部１６に通知する機能を有する。
【００４２】
図３は、本発明の第１の実施形態における通信システムのクライアント装置の構成例を示すブロック図である。  
図３に示したクライアント装置２は、装置全体の動作を司る制御部３１、記憶装置３２、通信部３３、リクエスト生成部３４、LongPollリクエスト生成部３５、キーボードやマウスなどの入力装置３６、ディスプレイ装置などの表示装置３７を備え、それぞれがバス３８を介して相互に接続される。
【００４３】
記憶装置１２は、例えばハードディスクドライブや不揮発性メモリなどの記憶媒体であり、通信部３３、リクエスト生成部３４、LongPollリクエスト生成部３５による処理動作のためのプログラムを記憶する他、ウェブブラウザのプログラムを記憶する。  
通信部３３は、ウェブサーバ１から送信されたデータを受信する機能、およびウェブサーバ１にLongPollリクエストを送信する機能を有する。  
リクエスト生成部３４は、ウェブブラウザの動作にしたがってウェブサーバ１へのLongPollリクエストと異なる通常のリクエストを生成する。  
LongPollリクエスト生成部３５は、ウェブブラウザの動作にしたがってウェブサーバ１へのLongPollリクエストを生成する。
【００４４】
次に、ここまで示した構成の通信システムの動作について説明する。  
図４は、本発明の第１の実施形態における通信システムの処理動作の一例を示すフローチャートである。  
この処理は、ウェブサーバ１がウェブブラウザの停止判定のために当該ウェブブラウザとの間の通信を試みて当該ウェブブラウザの停止を判定し、当該停止と判定したウェブブラウザのセッション情報を消去する処理である。この消去処理の実行タイミングは、クライアント装置２のウェブブラウザへのプッシュ対象のデータを通信部１３がセッション情報管理部１６から渡されるタイミングである。  
この処理の説明にあたり、ウェブサーバ１と停止判定対象のウェブブラウザとの間の往復通信時間は往復通信時間計測部１４によって既に計測されて記憶装置１２のセッション情報記憶部２１に記憶されているものとする。
【００４５】
ウェブサーバ１の通信部１３は、ウェブブラウザからのLongPollリクエストにしたがってクライアント装置２のウェブブラウザに送信するプッシュ処理用のデータをセッション情報管理部１６から取得する（ステップＳ１１）。  
通信部１３は、クライアント装置２のウェブブラウザへプッシュ処理用のデータを送信する旨をクライアント停止判定部１５に通知する。クライアント停止判定部１５は、通信部１３からの通知を受け、セッション情報記憶部２１から停止判定対象のウェブブラウザに関して計測済みの往復通信時間を取得し、当該取得した往復通信時間から停止判定時間を算出する（ステップＳ１２）。
【００４６】
通信部１３は、クライアント装置２のウェブブラウザへプッシュ処理用のデータを送信する旨を往復通信時間計測部１４に通知する。往復通信時間計測部１４は、通信部１３からの通知を受け、往復通信時間の計測を開始する（ステップＳ１３）。  
通信部１３は、ステップＳ１１の処理で取得したプッシュ処理用のデータをクライアント装置２のウェブブラウザに送信する（ステップＳ１４）。  
クライアント装置２の通信部３３がウェブサーバ１からのプッシュ処理用のデータを受信すると、停止していないウェブブラウザは、LongPollリクエストをLongPollリクエスト生成部３５に生成させ、通信部３３を介してウェブサーバ１に送信する。
【００４７】
ウェブサーバ１の通信部１３は、停止していないウェブブラウザからLongPollリクエストを受信すると、当該受信した旨をクライアント停止判定部１５と往復通信時間計測部１４に通知する。  
往復通信時間計測部１４は、ウェブブラウザからLongPollリクエストを受信した旨を通信部１３から通知される、つまりウェブブラウザが停止していない場合には（ステップＳ１５のＮＯ）、ステップＳ１３の処理で開始した往復通信時間の計測を終了し、計測結果をセッション情報管理部１６に渡す。セッション情報管理部１６はこの計測結果を記憶装置１２のセッション情報記憶部２１に保存する（ステップＳ１６）。
【００４８】
また、クライアント停止判定部１５は、ウェブブラウザへプッシュ処理用のデータを送信する旨を通知されたタイミングからステップＳ１２の処理で算出した停止判定時間が経過するタイミングまでの間、LongPollリクエストを受信した旨の通知が通信部１３からなされない場合、ウェブブラウザが停止したと判定し（ステップＳ１５のＹＥＳ）、当該停止を判定した旨をセッション情報管理部１６と往復通信時間計測部１４に通知する。
【００４９】
往復通信時間計測部１４は、クライアント停止判定部１５からウェブブラウザが停止したことを通知されると、ステップＳ１３の処理で開始した往復通信時間の計測を中止する（ステップＳ１７）。  
そして、セッション情報管理部１６は、クライアント停止判定部１５からウェブブラウザの停止を通知されると、当該ウェブブラウザに関するセッション情報を記憶装置１２のセッション情報記憶部２１から消去する（ステップＳ１８）。
【００５０】
以上のように、本発明の第１の実施形態における通信システムでは、ウェブサーバ１はクライアント装置２のウェブブラウザからのLongPollリクエストのレスポンスであるプッシュ処理用のデータをウェブブラウザに送信して、当該送信に対して返されたLongPollリクエストを受信することで往復通信時間を計測して、ウェブブラウザの停止判定時間を算出する。そして、ウェブサーバ１は、ウェブブラウザからの次のLongPollリクエストのレスポンスであるプッシュ処理用のデータをウェブブラウザに送信して、当該送信タイミングから停止判定時間以内にウェブブラウザからのLongPollリクエストを受信できない場合にウェブブラウザが停止していると判定して、当該ウェブブラウザのセッション情報を消去する。
【００５１】
従来のタイムアウトを用いた方法では、ウェブサーバは、ウェブブラウザとのアクセスを行なうことなく当該ウェブブラウザの停止判定を行なっていたので、ウェブサーバはウェブブラウザとの通信が途絶えてから一定時間経つまで当該ウェブブラウザの停止を認識できず、かつ誤った停止判定を行なう場合があった。これに対し本実施形態では、サーバはウェブブラウザとのアクセスを行なう事で当該ウェブブラウザの停止判定を行なうので、誤った停止判定を行なうことが無くなる。
【００５２】
また、従来のタイムアウトによる停止判定の方法では、ウェブブラウザは、自身が停止したとウェブサーバに誤認されないために、ダミーのリクエストを定期的に当該サーバに送信する必要があった。この方法では、ウェブブラウザの停止判定を早くすることを目的として設定時間を短くするほどダミーのリクエストの送信間隔を短くする必要があり、ウェブブラウザやネットワークの負荷の増大を招いていたが、本実施形態では、ウェブブラウザはウェブサーバにダミーのリクエストをサーバに定期的に送信する必要がないので、停止判定時間の変化に伴うウェブブラウザやネットワークの負荷の増大を防止できる。
【００５３】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。なお、本実施形態に係る通信システムの構成は図１に示したものと基本的にほぼ同様であるので同一部分の説明は省略する。  
この第２の実施形態では、ウェブサーバ１からウェブブラウザへ送信される情報は、通常データと信号との２種類存在し、この情報の種別によって往復通信時間が導かれるまでの処理が異なる。このようにウェブサーバ１が通常データと信号を分別して処理を行なう理由は、より正確に往復通信時間を計測するためである。
【００５４】
通常データとは、ウェブサーバ１からウェブブラウザに送信されると、ウェブブラウザが当該送信されたデータに応じた処理を行なう情報である。例えばウェブサーバ１が航空便座席予約システムのサーバであって、航空便名「xxx」の座席が予約され、残りの座席が５席から４席に減った場合、ウェブサーバがウェブブラウザに「航空便名:xxx、残座席数:４席」といった通常データをプッシュする。この場合ウェブブラウザでは、画面に「航空便名xxx、残座席数５席」と表示しているのを「航空便名xxx、残座席数４席」と再表示しなければならない。  
これに対してウェブサーバ１からウェブブラウザに送信された情報が通常データと異なる信号であった場合、当該信号の受信を確認したウェブブラウザは、画面の再表示など処理を何も行なわずに、LongPollリクエストをすぐにウェブサーバ１に送信する。
【００５５】
第１の実施形態では、プッシュ処理対象の情報が通常データであっても、当該データの送信にしたがって往復通信時間の計測および当該計測した時間をもとに算出した停止判定時間の算出を行なうが、通常データを送信にしたがって往復通信時間を計測すると、プッシュ対象のデータが「航空便名:xxx、残座席数:４席」というデータと「航空便名:xxx、残座席数:４席:航空便名:yyy、残座席数:３席」というデータでは、画面の再表示にかかる時間に差異があり、往復通信時間の変動が大きくなってしまう。
【００５６】
これに対し、第２の実施形態では、通常データも信号もウェブサーバからウェブブラウザに送信されるが、サーバは、信号を送信する場合のみに当該送信にともなう往復通信時間の計測を行なう。  
このため、第２の実施形態における通信システムのウェブサーバ１は、ウェブブラウザが実行する処理に影響されずに往復通信時間を求めることが可能になり、当該求める往復通信時間のばらつきを抑えることができる。
【００５７】
なお、ウェブサーバ１がウェブブラウザに信号を送信するタイミングは、ウェブサーバ１が通信を開始したウェブブラウザから初めてLongPollリクエストを受信したタイミングと、この受信タイミングから一定時間経過毎のタイミングである。一定時間とは、例えば５分から３０分ぐらいの時間である。  
ウェブサーバ１がウェブブラウザから初めてLongPollリクエストを受信する場合の停止判定時間は、例えば往復通信時間の初期値を記憶装置１２に記憶しておき、クライアント停止判定部１５が当該初期値に一定時間を加算することによって算出する。
【００５８】
また、ウェブサーバ１の通信部１３がクライアント装置２のウェブブラウザに通常データを送信する場合には、ウェブサーバ１はウェブブラウザからのLongPollリクエストにしたがった往復通信時間計測は行なわない。つまり、ウェブサーバ１はウェブブラウザ間の通信を経た往復通信時間の計測は行なわない。
【００５９】
ウェブサーバ１の通信部１３が通常データをウェブブラウザに送信する場合には、クライアント停止判定部１５は、ウェブブラウザから初めてLongPollリクエストを受信する場合と同様、往復通信時間の初期値に一定時間、例えば１０００ミリ秒を加えることで算出する。  
往復通信時間の初期値に一定時間を加える必要があるのは、ウェブサーバ１がウェブブラウザに通常データを送信する場合に要する往復通信時間が、ウェブサーバ１がウェブブラウザに信号を送信する場合に要する往復通信時間より当該ウェブブラウザが通常データについて実行する処理にかかる時間分だけ長いからである。
【００６０】
ウェブサーバ１の通信部１３は、クライアント装置２のウェブブラウザに対し、通常データおよび信号のいずれかを送信する。また、往復通信時間計測部１４、クライアント停止判定部１５、セッション情報管理部１６、プッシュ要求受付部１７の機能は第１の実施形態で説明した機能と同じである。
【００６１】
図５は、本発明の第２の実施形態における通信システムのクライアント装置の構成例を示すブロック図である。  
図５に示すように、第２の実施形態におけるクライアント装置２は、第１の実施形態と比較して、分離部４１をさらに備える。分離部４１は、通信部３３がウェブサーバ１から受信した通常データおよび信号のいずれかであるかを判定する機能を有する。
【００６２】
図６は、本発明の第２の実施形態における通信システムのクライアント装置による処理動作の一例を示すフローチャートである。  
第２の実施形態では、クライアント装置２側もＣｏｍｅｔ以外の本発明に特有の機能を有する。  
以下、クライアント装置２の通信部３３がウェブサーバ１からのプッシュ処理により通常データまた信号を受信したときの処理、具体的には受信済みの情報が通常データか信号かを分離部４１が判定する処理から、通信部３３がウェブサーバ１にLongPollリクエストを送信するまでの処理を説明する。
【００６３】
この処理の説明において、ウェブサーバ１はクライアント装置２からのLongPollリクエストからのレスポンスまたはクライアント装置２からの最初のLongPollリクエストの受信後から一定時間ごとにプッシュ処理対象の情報として通常データおよび信号のいずれかをクライアント装置２のウェブブラウザに対して送信する。  
クライアント装置２の分離部４１は、ウェブサーバ１からプッシュされた情報を通信部３３が受信すると、この情報が信号か通常データかを判定する（ステップＳ２１）。  
ウェブサーバ１からプッシュされた情報が通常データであると分離部４１が判定した場合には（ステップＳ２１のＮＯ）、ウェブブラウザはプッシュされた通常データに応じた処理を行ない（ステップＳ２２）、ウェブサーバ１へのLongPollリクエストをLongPollリクエスト生成部３５に生成させて通信部３３を介して送信する。（ステップＳ２３）。
【００６４】
一方、ウェブサーバ１からプッシュされた情報が信号であると分離部４１が判定した場合には（ステップＳ２１のＹＥＳ）、ウェブブラウザはウェブサーバ１へのLongPollリクエストをすぐにLongPollリクエスト生成部３５に生成させて通信部３３を介して送信する。（ステップＳ２３）。
【００６５】
図７は、本発明の第２の実施形態における通信システムのサーバ装置による第１の処理動作の一例を示すフローチャートである。  
図７に示したフローチャートでは、ウェブサーバ１がウェブブラウザに通常データをプッシュした場合の処理、具体的には、ウェブサーバ１の通信部１３がウェブブラウザにプッシュするデータを取得する処理から、クライアント停止判定部１５がウェブブラウザの停止を判定し、セッション情報管理部１６が判定対象のウェブブラウザに関するセッション情報を消去する処理までを示す。ただし、ウェブブラウザが停止しなかった場合の処理も含まれる。
【００６６】
この処理の説明にあたり、ウェブサーバ１と停止判定対象のウェブブラウザとの間の往復通信時間は往復通信時間計測部１４によって既に計測されて記憶装置１２のセッション情報記憶部２１に記憶されている一方で、当該往復通信時間は停止判定時間の算出に用いられないとする。
【００６７】
ウェブサーバ１の通信部１３は、ウェブブラウザからのLongPollリクエストにしたがってクライアント装置２のウェブブラウザに送信するプッシュ処理用の通常データをセッション情報管理部１６から取得する（ステップＳ３１）。  
通信部１３は、クライアント装置２のウェブブラウザへプッシュ処理用の通常データを送信する旨をクライアント停止判定部１５に通知する。クライアント停止判定部１５は、通信部１３からの通知を受け、記憶装置１２から停止判定対象のウェブブラウザに関する往復通信時間の初期値取得し、当該取得した初期値に一定時間を加算することで停止判定時間を算出する（ステップＳ３２）。  
通信部１３は、ステップＳ３１の処理で取得したプッシュ処理用の通常データをクライアント装置２のウェブブラウザに送信する（ステップＳ３３）。
【００６８】
クライアント装置２の通信部３３がウェブサーバ１からのプッシュ処理用の通常データを受信すると、停止していないウェブブラウザは、LongPollリクエストをLongPollリクエスト生成部３５に生成させて通信部３３を介してウェブサーバ１に送信する。  
ウェブサーバ１の通信部１３は、ウェブブラウザからのLongPollリクエストを受信すると、当該受信した旨をクライアント停止判定部１５に通知する。
【００６９】
クライアント停止判定部１５は、ウェブブラウザへプッシュ処理用の通常データを送信する旨を通知されたタイミングからステップＳ３２の処理で算出した停止判定時間が経過するタイミングまでの間、LongPollリクエストを受信した旨の通知が通信部１３からなされない場合、ウェブブラウザが停止したと判定し（ステップＳ３４のＹＥＳ）、当該停止を判定した旨をセッション情報管理部１６に通知する。  
そして、セッション情報管理部１６は、クライアント停止判定部１５からウェブブラウザの停止を通知されると、当該ウェブブラウザに関するセッション情報を記憶装置１２のセッション情報記憶部２１から消去する（ステップＳ３５）。
【００７０】
図８は、本発明の第２の実施形態における通信システムのサーバ装置による第２の処理動作の一例を示すフローチャートである。  
図８に示したフローチャートでは、ウェブサーバ１がウェブブラウザに信号をプッシュした場合の処理、具体的には、ウェブサーバ１の通信部１３がクライアント装置２のウェブブラウザに信号を送信する処理から、往復通信時間計測部１４が往復通信時間の計測を行ない、クライアント停止判定部１５がウェブブラウザの停止を判定し、セッション情報管理部１６が判定対象のウェブブラウザに関するセッション情報を消去する処理までを示す。ただし、ウェブブラウザが停止しなかった場合の処理も含まれる。
【００７１】
この処理の説明にあたり、ウェブサーバ１と停止判定対象のウェブブラウザとの間の往復通信時間はウェブサーバ１からの先のプッシュ処理用の信号の送信および当該プッシュ処理に対するウェブブラウザからのLongPollリクエストの受信によって往復通信時間計測部１４によって既に計測されて記憶装置１２のセッション情報記憶部２１に記憶されているものとする。
【００７２】
ウェブサーバ１の通信部１３は、ウェブブラウザからのLongPollリクエストにしたがってクライアント装置２のウェブブラウザへ送信するプッシュ処理用の信号を送信する旨をクライアント停止判定部１５に通知する。クライアント停止判定部１５は、通信部１３からの通知を受け、セッション情報記憶部２１から停止判定対象のウェブブラウザに関する往復通信時間を取得し、当該取得した往復通信時間から停止判定時間を算出する（ステップＳ４１）。
【００７３】
通信部１３は、クライアント装置２のウェブブラウザへプッシュ処理用の信号を送信する旨を往復通信時間計測部１４に通知する。往復通信時間計測部１４は、通信部１３からの通知を受け、往復通信時間の計測を開始する（ステップＳ４２）。  
通信部１３は、プッシュ処理用の信号をクライアント装置２のウェブブラウザに送信する（ステップＳ４３）。
【００７４】
クライアント装置２の通信部３３がウェブサーバ１からのプッシュ処理用の信号を受信すると、停止していないウェブブラウザは、LongPollリクエストをすぐにLongPollリクエスト生成部３５に生成させ、通信部３３を介してウェブサーバ１に送信する。  
ウェブサーバ１の通信部１３は、ウェブブラウザからのLongPollリクエストを受信すると、当該受信した旨をクライアント停止判定部１５と往復通信時間計測部１４に通知する。
【００７５】
往復通信時間計測部１４は、停止していないウェブブラウザからのLongPollリクエストを受信した旨を通信部１３から通知される、つまりウェブブラウザが停止していない場合には（ステップＳ４４のＮＯ）、ステップＳ４２の処理で開始した往復通信時間の計測を終了し、計測結果をセッション情報管理部１６に通知する。セッション情報管理部１６はこの計測結果をセッション情報記憶部２１に保存する（ステップＳ４５）。
【００７６】
また、クライアント停止判定部１５は、クライアント装置２のウェブブラウザへプッシュ処理用の信号を送信する旨を通知されたタイミングからステップＳ４１の処理で算出した停止判定時間が経過するタイミングまでの間、LongPollリクエストを受信した旨の通知が通信部１３からなされない場合、ウェブブラウザが停止したと判定し（ステップＳ４４のＹＥＳ）、当該停止を判定した旨をセッション情報管理部１６と往復通信時間計測部１４に通知する。
【００７７】
往復通信時間計測部１４は、クライアント停止判定部１５からウェブブラウザが停止したことを通知されると、ステップＳ１３の処理で開始した往復通信時間の計測を中止する（ステップＳ４６）。  
そして、セッション情報管理部１６は、クライアント停止判定部１５からウェブブラウザの停止を通知されると、当該ウェブブラウザに関するセッション情報を記憶装置１２のセッション情報記憶部２１から消去する（ステップＳ４７）。
【００７８】
なお、この発明は前記実施形態そのままに限定されるものではなく実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、前記実施形態に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を省略してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００７９】
【図１】本発明の第１の実施形態における通信システム上のウェブブラウザとウェブサーバ間の処理の流れを説明する図。
【図２】本発明の第１の実施形態における通信システムのサーバ装置の構成例を示すブロック図。
【図３】本発明の第１の実施形態における通信システムのクライアント装置の構成例を示すブロック図。
【図４】本発明の第１の実施形態における通信システムの処理動作の一例を示すフローチャート。
【図５】本発明の第２の実施形態における通信システムのクライアント装置の構成例を示すブロック図。
【図６】本発明の第２の実施形態における通信システムのクライアント装置による処理動作の一例を示すフローチャート。
【図７】本発明の第２の実施形態における通信システムのサーバ装置による第１の処理動作の一例を示すフローチャート。
【図８】本発明の第２の実施形態における通信システムのサーバ装置による第２の処理動作の一例を示すフローチャート。
【図９】従来の通信システムのウェブブラウザとウェブサーバ間のクライアントプルによる送受信信号について説明する図。
【図１０】従来の通信システムのウェブブラウザとウェブサーバ間のサーバプッシュによる送受信信号について説明する図。
【図１１】従来の通信システムのウェブブラウザとウェブサーバ間のサーバプッシュによる処理の流れを説明する図。
【図１２】従来の通信システムのウェブブラウザとウェブサーバ間のサーバプッシュによるプッシュ要求の一時保存処理の流れを説明する図。
【符号の説明】
【００８０】
１…ウェブサーバ、２…クライアント装置、１１，３１…制御部、１２，３２…記憶装置、１３，３３…通信部、１４…往復通信時間計測部、１５…クライアント停止判定部、１６…セッション情報管理部、１７…プッシュ要求受付部、１８，３８…バス、２１…セッション情報記憶部、２２…停止判定時間記憶部、３４…リクエスト生成部、３５…LongPollリクエスト生成部、３６…入力装置、３７…表示装置、４１…分離部。
【図１】
2009289163.tif 000003
【図２】
2009289163.tif 000004
【図３】
2009289163.tif 000005
【図４】
2009289163.tif 000006
【図５】
2009289163.tif 000007
【図６】
2009289163.tif 000008
【図７】
2009289163.tif 000009
【図８】
2009289163.tif 000010
【図９】
2009289163.tif 000011
【図１０】
2009289163.tif 000012
【図１１】
2009289163.tif 000013
【図１２】
2009289163.tif 000014