説明

擬似サーバプッシュ型データ配信方法

【課題】簡単な構成で応答性に優れた擬似サーバプッシュ型のデータ配信を実現する。
【解決手段】サーバSおよびクライアントC1,C2がネットワークNWを介して相互に接続されている。サーバSには、クライアントC1,C2からHTTP(S)要求を受信した際、送信データの発生に備えて待機しているサーバ待ち時間t1を計時する待ち時間タイマ10、およびサーバ待ち時間t1のタイムアウト値Twが予め登録されているTw記憶部11が実装されている。タイムアウト値Twは、サーバSに実装されたHTTP(S)が要求メッセージ[HTTP(S)要求]を送信してから応答メッセージ[HTTP(S)応答]の受信に備えて待機するタイムアウト時間Ts、および各クライアントC1,C2に実装された各HTTP(S)のタイムアウト時間Tc1、Tc2のうち、最も短い時間min(Ts,Tc1,Tc2)よりも僅かに短いに設定されている。

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


【特許請求の範囲】
【請求項1】
要求・応答型プロトコルでサーバのWebブラウザと通信するクライアントのWebブラウザへ、当該サーバが主体的にデータを送り出しているように見せかける擬似サーバプッシュ型データ配信方法において、
前記サーバでは、当該サーバのWebブラウザのタイムアウト時間TsおよびクライアントのWebブラウザのタイムアウト時間Tcのうち、短い方のタイムアウト時間よりも僅かに短い時間がサーバ待ち時間のタイムアウト時間Twとして設定されており、
クライアントのWebブラウザがサーバへ要求メッセージを送信する手順と、
前記要求メッセージを受信したサーバが、前記クライアントへ送信すべきデータの有無を判定する手順と、
送信データが有るときに、サーバが当該データを含む応答メッセージをクライアントへ送信する手順と、
送信データが無いときに、サーバが前記タイムアウト時間Twを限度に待機する手順と、
前記待機中に送信データが発生すると、サーバが当該データを含む応答メッセージをクライアントへ送信する手順と、
サーバが前記タイムアウト時間Twの経過後に、送信データがない旨の応答メッセージを前記クライアントへ送信する手順とを含むことを特徴とする擬似サーバプッシュ型データ配信方法。
【請求項2】
前記要求・応答型プロトコルがHTTP(S)であることを特徴とする請求項1に記載の擬似サーバプッシュ型データ配信方法。
【請求項3】
前記クライアントにおいて、要求メッセージの送信後にページ書き換えを発生させない手順を含むことを特徴とする請求項1または2に記載の擬似サーバプッシュ型データ配信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2009−110412(P2009−110412A)
【公開日】平成21年5月21日(2009.5.21)
【国際特許分類】
【出願番号】特願2007−283800(P2007−283800)
【出願日】平成19年10月31日(2007.10.31)
【出願人】(000000181)岩崎通信機株式会社 (133)