(57)【要約】【課題】簡単な構成で応答性に優れた擬似サーバプッシュ型のデータ配信を実現する。【解決手段】サーバSおよびクライアントC1，C2がネットワークNWを介して相互に接続されている。サーバSには、クライアントC1，C2からHTTP(S)要求を受信した際、送信データの発生に備えて待機しているサーバ待ち時間t1を計時する待ち時間タイマ１０、およびサーバ待ち時間t1のタイムアウト値Twが予め登録されているTw記憶部１１が実装されている。タイムアウト値Twは、サーバSに実装されたHTTP(S)が要求メッセージ[HTTP(S)要求]を送信してから応答メッセージ[HTTP(S)応答]の受信に備えて待機するタイムアウト時間Ts、および各クライアントC1，C2に実装された各HTTP(S)のタイムアウト時間Tc1、Tc2のうち、最も短い時間min(Ts，Tc1，Tc2)よりも僅かに短いに設定されている。【選択図】図１
2009110412.tif 000002
【特許請求の範囲】
【請求項１】
要求・応答型プロトコルでサーバのWebブラウザと通信するクライアントのWebブラウザへ、当該サーバが主体的にデータを送り出しているように見せかける擬似サーバプッシュ型データ配信方法において、
前記サーバでは、当該サーバのWebブラウザのタイムアウト時間TsおよびクライアントのWebブラウザのタイムアウト時間Tcのうち、短い方のタイムアウト時間よりも僅かに短い時間がサーバ待ち時間のタイムアウト時間Twとして設定されており、
クライアントのWebブラウザがサーバへ要求メッセージを送信する手順と、
前記要求メッセージを受信したサーバが、前記クライアントへ送信すべきデータの有無を判定する手順と、
送信データが有るときに、サーバが当該データを含む応答メッセージをクライアントへ送信する手順と、
送信データが無いときに、サーバが前記タイムアウト時間Twを限度に待機する手順と、
前記待機中に送信データが発生すると、サーバが当該データを含む応答メッセージをクライアントへ送信する手順と、
サーバが前記タイムアウト時間Twの経過後に、送信データがない旨の応答メッセージを前記クライアントへ送信する手順とを含むことを特徴とする擬似サーバプッシュ型データ配信方法。
【請求項２】
前記要求・応答型プロトコルがHTTP(S)であることを特徴とする請求項１に記載の擬似サーバプッシュ型データ配信方法。
【請求項３】
前記クライアントにおいて、要求メッセージの送信後にページ書き換えを発生させない手順を含むことを特徴とする請求項１または２に記載の擬似サーバプッシュ型データ配信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、要求・応答型のプロトコルで動作するクライアントへ、サーバが主体的にデータを送り出しているように見せかける擬似サーバプッシュ型データ配信方法に関する。
【背景技術】
【０００２】
サーバがクライアントへ主体的にデータを送り出しているように見せかける擬似サーバプッシュ型データ配信方法が、Web同期やCTI(Computer Telephony Integration)ソフトウェアで採用されている。
【０００３】
特許文献１には、コールセンタでWeb同期を採用する技術が開示されている。ここでは、Webブラウザを備えた端末（クライアント）間で情報を共有するために、一方の端末があるWebサイトを開くと、その情報が他方の端末にも通知され、当該他方の端末でも同一のWebサイトが自動的に開かれるように構成されている。
【０００４】
図５は、上記したWeb同期システムの基本構成を示したブロック図であり、Webブラウザを備えた２つの端末C1，C2が共にサーバS1に接続されている。このような構成において、端末C2のWebブラウザであるWebサイトが開かれると、そのURLが端末C2からサーバSへ送られ、サーバSは、このURLを端末C1へ送る。そして、端末C1では、受信したURLへアクセスしてWebサイトを開くことにより、端末C1，C2で同一のWebサイトを閲覧できるようになる。
【０００５】
特許文献２には、コールセンタでCTIを採用する技術が開示されている。ここでは、顧客からの電話をCTIサーバが着信すると、当該顧客の電話番号に基づいてデータベースから顧客情報を入手し、この顧客情報に基づいて最適なオペレータを選択し、当該オペレータのディスプレイに顧客のプロフィール情報や過去の問い合わせ履歴などが表示される。
【０００６】
一方、Web同期においては、サーバS1はWeb同期のソフトウェアを設置するサーバであると同時に、クライアントC1，C2間での情報の交換を仲介するためのサーバである。クライアントC1で状態変化があった場合、クライアントC1からサーバSへ、その情報を伝えるのは容易である。これは、HTTP(S)要求をサーバSへ送信するだけでよいからである。しかしながら、サーバSよりクライアントC2へ情報を伝えることはできない。それは、HTTP(S)が要求・応答型の通信であり、サーバSより通信を開始することができないためである。
【０００７】
このような技術課題を解決するため、特許文献３には、擬似サーバプッシュ型データ配信において、サーバがクライアントから要求メッセージを受信した際に、送信すべきデータがあれば直ちに配信し、データがなければ予め定められたサーバ待ち時間だけ待ってからクライアントにデータがないことを通知する応答メッセージを返し、サーバ待ち時間中にデータが発生すれば、その時点でクライアントにデータを配信する技術が開示されている。
【特許文献１】特開２００１−９４６７１号公報
【特許文献２】国際公開番号ＷＯ０２／０５２８２４
【特許文献３】特開２００２−３４２２０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記した従来の擬似サーバプッシュ型データ配信方法では、サーバ待ち時間が過去の通信の統計情報を用いて算出されるので、当該情報を保持しておくための記憶領域を確保しなければならないのみならず、当該統計処理のための計算量が大きくなり、サーバの負荷が大きくなってしまうという技術課題があった。
【０００９】
特に、Web同期やWebCTIは電話に近い使われ方をするものであり、リアルタイム性に優れていなければならない、すなわち応答時間が早くなければならないので、サーバの負荷が増大して遅延が生じるような制御の採用は好ましくない。
【００１０】
本発明の目的は、上記した従来技術の課題を解決し、簡単な構成で応答性に優れた擬似サーバプッシュ型のデータ配信を実現することにある。
【課題を解決するための手段】
【００１１】
上記した目的を達成するために、本発明は、要求・応答型プロトコルでサーバのWebブラウザと通信するクライアントのWebブラウザへ、当該サーバが主体的にデータを送り出しているように見せかける擬似サーバプッシュ型データ配信方法において、前記サーバでに、当該サーバのWebブラウザのタイムアウト時間TsおよびクライアントのWebブラウザのタイムアウト時間Tcのうち、短い方のタイムアウト時間よりも僅かに短い時間をサーバ待ち時間のタイムアウト時間Twとして設定した。そして、クライアントのWebブラウザがサーバへ要求メッセージを送信する手順と、この要求メッセージを受信したサーバが、前記クライアントへ送信すべきデータの有無を判定する手順と、送信データが有るときに、サーバが当該データを含む応答メッセージをクライアントへ送信する手順と、送信データが無いときに、サーバが前記タイムアウト時間Twを限度に待機する手順と、前記待機中に送信データが発生すると、サーバが当該データを含む応答メッセージをクライアントへ送信する手順と、サーバが前記タイムアウト時間Twの経過後に、送信データがない旨の応答メッセージを前記クライアントへ送信する手順とを含むことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、サーバ側でのデータ待ち時間が、通信プロトコルのタイムアウト時間よりも僅かに短い時間に設定されるので、サーバではデータ待ち時間を設定するための計算が不要になる。したがって、簡単な構成で応答性に優れた擬似サーバプッシュ型のデータ配信を実現できるようになる。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明の最良の実施の形態について詳細に説明する。図１は、本発明の一実施形態に係る擬似サーバプッシュ型データ配信システムのブロック図であり、サーバSおよび複数のクライアントC1，C2がネットワークNWを介して相互に接続されている。ここでは、クライアントC1，C2の一方に生じた状態変化をサーバSが検知して他方のクライアントに通知するWeb同期を例にして説明する。
【００１４】
本実施形態では、前記サーバSおよび各クライアントC1，C2に、Webブラウザ、要求・応答型のプロトコルとしてHTTPおよび／またはSSLによる暗号化機能が付加されたHTTPS[以下、HTTP(S)で総称する]、ならびに擬似サーバプッシュ機能部が実装されている。前記サーバSおよび各クライアントC1，C2は、前記擬似サーバプッシュ機能部による制御に従って、HTTP(S)を利用した相互通信を実行する。
【００１５】
前記クライアントC1，C2の擬似サーバプッシュ機能部は、Webブラウザが標準で備えるXmlHttpRequest(XHR)を用いるJava(登録商標)Scriptで記述されたプログラムである。前記サーバSの擬似サーバプッシュ機能部は、Webサーバ上で動作して動的にWebページを生成し、クライアントに送信する機能を備えたプログラム言語で記述されたプログラムであり、例えばPHP、Java(登録商標)、Perlなどで記述されている。
【００１６】
前記サーバSの擬似サーバプッシュ機能部は、クライアントC1，C2のWebブラウザよりHTTP(S)要求を受信してユーザプログラムを起動し、その実行結果として生成されたWebページをクライアントC1，C2のWebブラウザへHTTP(S)応答として返信する。
【００１７】
前記サーバSの擬似サーバプッシュ機能部にはさらに、クライアントC1，C2からHTTP(S)要求を受信した際、送信データの発生に備えて待機しているサーバ待ち時間t1を計時する待ち時間タイマ１０、およびサーバ待ち時間t1のタイムアウト値Twが予め登録されているTw記憶部１１が実装されている。
【００１８】
前記タイムアウト値Twは、サーバSがHTTP(S)の要求メッセージ[HTTP(S)要求]を送信してから応答メッセージ[HTTP(S)応答]の受信に備えて待機するタイムアウト時間Ts、および各クライアントC1，C2に実装されたWebブラウザがHTTP(S)要求を送信してからHTTP(S)応答の受信に備えて待機するタイムアウト時間Tc1、Tc2のうち、最も短い時間min(Ts，Tc1，Tc2)よりも僅かに短いに設定されている。
【００１９】
一般的に、前記擬似サーバプッシュ機能部を、動的に生成したHTMLのScriptタグを用いて実現した場合、クライアントCのWebブラウザでタイムアウトが発生しても擬似サーバプッシュ機能部には何も知らされないため、擬似サーバプッシュ機能部では通信を回復させることができない。そして、クライアントCのWebブラウザがタイムアウトしている状態では、サーバからクライアントへメッセージを通知することもできない。
【００２０】
これに対して、本実施形態ではサーバ待ち時間t1のタイムアウト値Twがmin(Ts，Tc1，Tc2)よりも僅かに短い時間に設定されているので、Webブラウザがタイムアウトして通信不能となる前に、サーバSからHTTP(S)応答を返信させることで次の通信へ移行させることが可能になる。
【００２１】
なお、前記擬似サーバプッシュ機能部をXHRで実現した場合には、クライアントCの擬似サーバプッシュ機能部においてWebブラウザのタイムアウトを検知できるので、これをサーバSへ通知できる。しかしながら、クライアントCがWebブラウザのタイムアウトを検知して、これをサーバSへ通知している間に当該サーバから応答メッセージが返信されてしまい、すれ違いが生じると、クライアントCではサーバSへの再接続が未だ完了していないので当該メッセージを受信できない。
【００２２】
これに対して、本実施形態ではサーバ待ち時間t1がタイムアウトするよりも前にクライアントCがタイムアウトしてしまうことがないので、上記したすれ違いを確実に防止できる。
【００２３】
以下、図２のシーケンスフローおよび３のフローチャートを参照して本実施形態の動作を詳細に説明する。図３のフローチャートは、前記サーバSの動作を示しており、ここでは、クライアントC2が所定のWebサイトを開いたときに、これを検知したサーバSが、そのURLをクライアントC1へ通知する場合を例にして説明する。
【００２４】
ステップＳ１において、サーバSがクライアントC1からHTTP(S)要求を受信すると、ステップＳ２では、前記待ち時間タイマ１０が待ち時間t1の計時を開始する。ステップＳ３では、クライアントC1へ送信すべきデータ（ここでは、クライアントC2が新たに開いたWebサイトのURL）が有るか否かが判定され、送信すべきデータが有ればステップＳ４へ進む。ステップＳ４では、前記送信データを含むHTTP(S)応答がクライアントC1へ送信される。
【００２５】
これに対して、前記ステップＳ３において、送信データが存在しないと判定されるとステップＳ５へ進む。ステップＳ５では、前記待ち時間タイマ１０のカウント値t1と前記タイムアウト値Twとが比較され、t1＜Twである限りはステップＳ３へ戻り、送信データの発生に備えて待機する。そして、このサーバ待ち時間中に送信データが発生するとステップＳ４へ進み、当該送信データを含むHTTP(S)応答がクライアントC1へ送信される。
【００２６】
一方、送信データが発生しないまま、前記ステップＳ５においてt1≧Twと判定されるとステップＳ６へ進む。ステップＳ６では、送信データが存在しない旨のHTTP(S)応答がクライアントC1へ返信される。
【００２７】
クライアントC1は、前記ステップＳ４，Ｓ６でサーバSから送信されたHTTP(S)応答を受信すると、直ちに次のHTTP(S)要求をサーバSへ送信し、これ以後、上記した手順が繰り返される。
【００２８】
なお、クライアントC1がHTTP(S)要求をサーバへ送信すると、当該クライアントC1ではページ書き換えが発生し、サーバSからHTTP(S)応答が返信されるまで白紙のページが表示されてしまう。このようなページ書き換えを避けるためには、HTTP(S)要求の送信時に、Java(登録商標)Scriptを利用してページ書き換えが生じないXmlHttpRequest(XHR)を利用するか、あるいは動的に生成したHTMLのScriptタグを用いることが望ましい。
【００２９】
図４は、本発明を適用したWebベースのCTIシステムのブロック図であり、PBXには、オペレータの電話端末が内線網を介して接続されると共に、RS-232Cなどの通信インターフェースを介してWebサーバが接続されている。このWebサーバは、顧客データベース(DB)とはTCP/IPで通信し、オペレータのコンピュータ端末に実装されたWebブラウザとは、前記HTTP(S)を利用した擬似サーバプッシュ型のデータ通信を行う。
【００３０】
このような構成において、顧客端末からの発信がPBXを経由してWebサーバおよびオペレータの電話端末で着信されると、Webサーバが顧客電話番号を検索キーとして顧客DBにアクセスし、顧客のプロフィール情報や過去の問い合わせ履歴といった顧客情報を取得する。オペレータのコンピュータ端末とWebブラウザとの間では、前記HTTP(S)を利用した擬似サーバプッシュ型のメッセージ交換が常時行われているので、Webサーバは、顧客DBから取得した顧客情報を含むHTTP(S)応答メッセージをオペレータのコンピュータ端末へ返信する。これにより、オペレータのコンピュータ端末には顧客情報が表示されるので、オペレータは当該顧客情報を参照しながら電話で顧客と通話できるようになる。
【図面の簡単な説明】
【００３１】
【図１】本発明の一実施形態に係る擬似サーバプッシュ型データ配信システムのブロック図である。
【図２】本発明の一実施形態の手順を示したシーケンスフローである。
【図３】本発明の一実施形態の手順を示したフローチャートである。
【図４】本発明を適用したWebベースのCTIシステムのブロック図である。
【図５】Web同期システムの基本構成を示したブロック図である。
【符号の説明】
【００３２】
１０…サーバ待ち時間タイマ、１１…サーバ待ち時間記憶部
【図１】
2009110412.tif 000003
【図２】
2009110412.tif 000004
【図３】
2009110412.tif 000005
【図４】
2009110412.tif 000006
【図５】
2009110412.tif 000007