情報提供システム
【課題】 HTTPリクエストの頻度を低減させてネットワークのトラフィックを低減させる。
【解決手段】 情報提供サーバ30のスクリプト実行環境33で実行される更新確認スクリプト331aは、例えばログファイル341の更新日時を確認することによりログファイル341の更新を確認し、更新があったときに、クライアント端末10のスクリプト実行環境13で実行されているチャットアプリケーション131宛に、更新があった旨を通知する。
【解決手段】 情報提供サーバ30のスクリプト実行環境33で実行される更新確認スクリプト331aは、例えばログファイル341の更新日時を確認することによりログファイル341の更新を確認し、更新があったときに、クライアント端末10のスクリプト実行環境13で実行されているチャットアプリケーション131宛に、更新があった旨を通知する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークのトラフィックを低減させた情報提供システムに関する。
【背景技術】
【0002】
近年、HTTPクライアント側で実行されるスクリプトが、サービスを提供するサーバと非同期通信を行い、画面遷移なしに動的にその結果をHTTPクライアント領域に反映させる技術を活用した、いわゆるウェブアプリケーションがサービスの提供に用いられるようになっている。
【0003】
このようなウェブアプリケーションでは、HTTPクライアント側では、例えばJavaScript(登録商標)におけるxmlHttpRequestによって必要な情報を取得して処理を実行するようになっている。
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、一般的にHTTPプロトコルは、クライアントからの要求(リクエスト)に対する応答(レスポンス)によって情報を提供するいわゆるPull型のプロトコルであるため、HTTPクライアントからの要求なしに、HTTPサーバからHTTPクライアントに対して情報を送信するPush型の通信はできない。
【0005】
このため、ウェブアプリケーション側で、HTTPサーバ側でのファイルの変更等に迅速に対応したい場合には、例えば、ウェブアプリケーション側で、所定の短い間隔でHTTPリクエストを送信し、HTTPサーバの応答を得る必要があった。
【0006】
しかし、このような方法では、HTTPリクエストを頻繁に送信する必要があり、HTTPサーバからの応答に応じた処理を実行する必要があった。また、HTTPリクエストは、ヘッダ情報など付加情報も多いため、ネットワークの負荷の観点からも必要以上に送信することは望ましくない。なお、出願人は、上記背景技術に関する公知技術文献の存在を知らない。
【0007】
本発明は、上述のような課題に鑑みてなされたものであり、HTTPリクエストの頻度を低減させてネットワークのトラフィックを低減させることができる情報提供システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
この課題を解決するために、本発明に係る情報提供システムは、HTTPサーバにより情報を提供する情報提供手段と,監視対象となる情報の更新の有無を繰り返し確認する更新確認手段と,一のセッションにおいて、更新検出手段の検出出力に応じて情報の更新があった旨を通知する通知手段を備える情報提供サーバと、情報提供手段が提供する情報を取得する情報取得手段と,通知手段からの通知に応じて情報取得手段に情報の取得を指示する取得指示手段とを有するHTTPクライアントを備える情報利用端末とを有することを特徴とする。
【0009】
情報提供サーバが提供する情報には、例えばチャットサービス,ファイル共有サービス,検索サービス,DBアクセスサービス等の出力情報等が含まれる。「一のセッションにおいて」とは、通知手段とHTTPクライアントの取得指示手段間で1つのセッションが維持され、当該セッションにおいて、複数の通知が送信され得ることを意味している。また、更新確認手段による「繰り返し確認」には、例えば所定時間毎の確認,動作状態に応じて変更可能なタイマーによる不定期な確認等が含まれる。
【0010】
また、HTTPサーバが更新検出手段が監視対象となる情報の更新を検出した際に更新検出手段の差分を検出する差分検出手段を有し、HTTPサーバの通知手段が通知中に差分検出手段が検出した差分を示す差分情報を含めて通知し、HTTPクライアントの情報取得手段が通知中の差分情報を取得する構成としてもよい。さらに、HTTPサーバが、通知手段が通知を送信してからの経過時間を求める計時手段と、経過時間が所定の閾値を超えた場合に通知手段にダミー情報を送信させるダミー情報送信手段とを備える構成としてもよい。
【0011】
また、本発明に係る情報提供サーバ装置は、端末装置に情報を提供する情報提供手段と、監視対象となる情報の更新の有無を繰り返し確認する更新確認手段と、一のセッションにおいて、更新検出手段の検出出力に応じて情報の更新があった旨を端末装置に通知する通知手段とを備えることを特徴とする。
【0012】
また、本発明に係る情報利用端末装置は、HTTPサーバにより情報を提供する情報提供手段と,監視対象となる情報の更新の有無を繰り返し確認する更新確認手段と,一のセッションにおいて、更新検出手段の検出出力に応じて情報の更新があった旨を通知する通知手段を備える情報提供サーバが提供する情報を利用する情報利用端末であって、情報提供手段が提供する情報を取得する情報取得手段と,通知手段からの通知に応じて情報取得手段に情報の取得を指示する取得指示手段とを有するHTTPクライアントを備えることを特徴とする。
【発明の効果】
【0013】
本発明によれば、情報提供サーバ装置の更新確認手段が、監視対象となる情報の更新の有無を繰り返し確認し、通知手段が、一のセッションにおいて、更新検出手段の検出出力に応じて情報の更新があった旨を通知することにより、情報利用端末装置側から一定時間毎にHTTPリクエストを送信して情報の更新を確認する必要がなく、一のセッションにおいて、通知手段からの通知を監視し、情報の更新があった場合のみ、情報提供手段に情報を要求することができる。これにより、情報利用端末装置側からのHTTPリクエストの頻度を低減させて、ネットワークのトラフィックを低減させることができる。
【0014】
また、HTTPサーバが更新検出手段が監視対象となる情報の更新を検出した際に更新検出手段の差分を検出する差分検出手段を有し、HTTPサーバの通知手段が通知中に差分検出手段が検出した差分を示す差分情報を含めて通知し、HTTPクライアントの情報取得手段が通知中の差分情報を取得する構成とすれば、通知に応じてHTTPクライアント側からHTTPリクエストを送信して監視対象となる情報を取得する必要がなく、さらなるトラフィックの低減に寄与することができる。
【0015】
さらに、HTTPサーバが、通知手段が通知を送信してからの経過時間を求める計時手段と、経過時間が所定の閾値を超えた場合に通知手段にダミー情報を送信させるダミー情報送信手段とを備える構成とすれば、タイムアウトにより通知手段とHTTPクライアントの取得指示手段との間のセッションが切断されてしまうことを防止することができる。
【発明を実施するための最良の形態】
【0016】
本発明は、例えばネットワーク経由で接続されたクライアント端末にチャット,ファイル共有等のサービスを提供する情報提供システムに適用することができる。
【実施例1】
【0017】
(全体構成)
本発明の実施例1に係る情報提供システムは、例えば図1に示すように、情報の提供を受けるユーザが使用するクライアント端末10と、このクライアント端末10とネットワーク20で接続された情報提供サーバ30とを備えている。この情報提供サーバ30は、例えばチャット,ファイル共有等の情報提供サービスを提供する。クライアント端末10及び情報提供サーバ30は、例えばCPU(Central Processing Unit),メモリ等を有するパーソナルコンピュータ等の情報処理装置から構成されており、制御プログラムを実行することにより、この図1に示すように機能する。
【0018】
クライアント端末10は、ネットワーク20経由の通信の制御を行う通信制御部11と、HTTPサービスを利用するHTTPクライアント12と、表示画面を有する表示部14とを備えている。HTTPクライアント12は、JavaScript(登録商標)を実行できるスクリプト実行環境13を備えており、スクリプト実行環境13は、情報提供サーバ30が提供する情報提供サービスの利用に用いるクライアント側の処理を実行する。このスクリプト実行環境13でスクリプトを実行することにより、チャットアプリケーション131,ファイル共有アプリケーション132等のHTTPクライアント12を利用したWebアプリケーションを実行することができるようになっている。なお、この実施例では、HTTPクライアント12としてInternet Explorer6.0を使用しており、以後も同様である。
【0019】
情報提供サーバ30は、ネットワーク20経由の通信の制御を行う通信制御部31と、HTTPサービスを提供するHTTPサーバ32と、スクリプト言語で記述された処理を実行するスクリプト実行環境33と、ハードディスク装置(HDD)34とを備えている。スクリプト実行環境33は、例えばPerl,JSP(Java(登録商標)ServerProgram)等の言語で記述された処理を実行するもので、例えばユーザ間でチャットを行うチャットサービス,ユーザ間でファイルを共有するファイル共有サービス,目的のファイルを検索するファイル検索サービス,データベースに対するアクセスを提供するDBアクセスサービス等のHTTPサーバ32をフロントエンドとして提供する情報提供サービス等の処理を実行する。なお、この実施例では、スクリプト言語実行環境33としてPerl5.8を使用しており、以後も同様である。
【0020】
この情報提供システムでは、チャットサービスは、チャットを行うメンバーが共通にアクセス(読み出し、追記等)できるログファイル341を介して提供されるようになっている。チャットサービスを利用したいユーザはクライアント端末10を操作してHTTPサーバ32にログインする。具体的には、例えばHTTPクライアント12で、チャットサービスに対応するURL(例えば“http://srv_url/chat.html”)を指定して、HTTPサーバ32にログインを要求し、HTTPサーバ32からの応答に応じてユーザID,パスワード等の認証情報を送信する。ログイン処理は、例えばスクリプト実行環境33で実行されるチャットサービス331によって処理され、ログインが許可されると、HTTPサーバ32は、チャットの画面を構成する表示データをHTTPクライアント12に送信する。これに応じて、HTTPクライアント12は、例えば図2に示すように、表示部14内のブラウザウィンドウ141内にチャットウィンドウ142を表示させる。また、チャットサービス331は、例えばチャットグループ毎にチャット状態保存ファイル343を作成し、当該チャットグループのチャットの状態(各メンバーのログイン状態等)を管理する。
【0021】
チャットウィンドウ142内には、送信する文字を入力する入力欄,チャットを行っている相手のユーザについての情報を表示する領域,チャットのログを表示させるログ表示領域142a等が設けられている。この図2中では、便宜的に、ログ表示領域142aを表示データ内の対応する定義の記述で図示しているが、実際には、ログ表示領域142a内には、例えば図3に示すように、ログ内の文字列が表示される。また、図2中では、後述の表示データ(chat.html)内のiframeタグで定義され、後述の更新確認スクリプト331a(chatupdate.cgi)からの通知(上位フレームの更新命令)を受信するフレームを、便宜的に符号142bとして図示しているが、当該フレームは非表示状態として定義されているため、実際には画面上には表示されない。
【0022】
図4は、チャットを行うグループ内のユーザからのメッセージが記録されるログファイル341の例を示す図である。チャットサービスを利用するユーザが操作するHTTPクライアント12を介して入力されたメッセージは、通信制御部11,ネットワーク20,通信制御部31を介してHTTPサーバ32に供給され、当該ユーザを示す情報等と共にログファイル341に記録される。
【0023】
図5は、HTTPサーバ32からHTTPクライアント12に供給され、チャットウィンドウ142を表示させる表示データ131aの例を示す図である。但し、チャットウィンドウ142での表示のスタイルを決める部分、送信する文字を入力する入力欄、チャットを行っている相手のユーザについての情報を表示する領域ならびにこれらを取得する手段など、本発明の技術に直接無関係な部分については便宜のために省略または簡易な記載に留めている。以後においても、この点は同様である。Scriptタグ内で定義されている関数(updatefunc(v))は、HTTPサーバ32に、xmlHttpRequestを発行し、ログファイル341からチャット内容を示す文字データを取得し、当該表示データ131a内のdivタグ内の領域に出力する関数である。HTTPクライアント12は、この表示データ131aに従ってチャットウィンドウ142内にチャットの内容を表示させるようになっている。なお、この図5中には図示していないが、チャットアプリケーション131では、例えばボタンの指示あるいはメニューの選択等に応じたチャット終了処理が定義されており、ユーザからの指示等があると、チャット終了の通知をHTTPサーバ32側に送信し、チャットウィンドウ142を閉じるようになっている。
【0024】
図6は、ログファイル341の更新を監視する処理等を定義した更新確認スクリプト331aの例を示している。この例では、perl言語によって処理を定義した例を示している。HTTPクライアント12がこの更新確認スクリプト331aのURLに対して要求を送信すると、この更新確認スクリプト331aの処理が開始され、スクリプト実行環境33は、図6中の2行目と3行目の定義に従って、クライアントに送信する所定のヘッダ情報等をバッファに出力させる。続けて、スクリプト実行環境33は、8行目の$|=1の命令に応じて、このヘッダ情報等をHTTPクライアント12宛に送信させる。なお、この命令($|=1)は、perl言語において、バッファに保持されているデータ(それまでに実行された行のprint文でHTTPサーバ32のバッファに保持された内容)を送信させるflush命令である。また、この実施例では、8行目のflush命令を確実に実行させるためのダミーデータ(文字列“0123・・・”)を出力させるprint文を追加している。この後、終了条件(例えばHTTPクライアント12からチャット終了の通知により、チャット状態保存ファイル343(continue.txt)の内容が変更になる等、スクリプト実行環境33内のフラグ$finの値が終了を示す値[0などの論理偽となる値]となる条件)を満たすまで、while命令中の処理を実行し、ログファイル341の更新を一定時間毎に監視する(whileループ中で、関数(サブプロシージャ)&getchatlinesの値を変数$afに代入し、初期値$bfと比較して更新の有無を判断する)。
【0025】
チャットに参加しているユーザによる書き込み等により、ログファイル341が更新されると、ログファイル341の行数が増加する。更新の監視は、例えば関数&getchatlinesによってログファイル341の行数を取得し、前回の確認時の行数($bf)と比較することによって行うことができる。この結果、ログファイル341が更新されていれば、スクリプト実行環境33はif文中のprint文を実行した後flush命令を実行し、更新されていなければ当該print文等を実行しない。
【0026】
if文中のprint文は、当該if文中で規定された命令(当該更新確認スクリプト331aを要求したフレームの上位のフレームの更新を指示する命令[parent.updatefunc])をバッファに出力させ、スクリプト実行環境33は、続くflush文($|=1)に応じてバッファの内容をHTTPクライアント12に送信させる。すなわち、この更新確認スクリプト331aは、ログファイル341が更新される都度、上位のフレーム(当該“chatupdate.cgi”を要求した“index.html”)の更新を指示する命令をHTTPクライアント12に送信して表示データ133aの更新を指示するようになっている。
【0027】
(チャットサービス動作)
図7は、チャットサービスにおけるログの更新処理を示すシーケンス図である。
ユーザがチャットサービスの利用を指示すると、HTTPクライアント12は、HTTPサーバ32にチャットウィンドウ142の表示データ131a(chat.html)を要求する(S101)。HTTPサーバ32は、これに応じて上述の図5に示す表示データ131aをHTTPクライアント12に供給する(S102)。表示データ131aが供給されると、HTTPクライアント12は、上述のように表示データ131a内のiframeタグ内で定義された更新確認スクリプト331aの要求に従って、更新確認スクリプト331a(chatupdate.cgi)を要求する(S105)。
【0028】
更新確認スクリプト331aが要求されると、スクリプト実行環境33は、当該更新確認スクリプト331aの実行を開始する。更新確認スクリプト331aは、まず、ヘッダ情報等を送信し(S106)、この後、所定時間毎(上述の図6中のwhileループの実行毎)にログファイル341の更新を監視する(S201,S202,…,S203)。ログファイル341の更新を検出すると(S202)、更新確認スクリプト331aは、その旨をHTTPクライアント12宛に通知する(S107)。
【0029】
この通知には、上述のように、当該出力を要求したフレームの上位のフレーム(すなわち表示データ131aによるフレーム)の更新を指示するスクリプト(parent.updatefunc)が含まれているため、これを受信すると、HTTPクライアント12は、上述の関数updatefunc(v)を実行させる。これにより、再度、ログファイル341が要求され(S108)、これに応じて供給されたログファイル341(S109)に応じた文字が、例えば図8の142aに示すように、表示データ131a(chat.html)内のdivタグ内に挿入される。これにより、新たなチャットの内容が、チャットウィンドウ142内のログ表示領域142aに表示される。
【0030】
このような動作を繰り返すことにより、ログファイル341が更新されたときのみログファイルを要求するHTTPリクエストを送信させて、表示データ131aを更新させて、チャットの内容を表示させることができる。
【0031】
なお、チャットサービス331は、チャット状態保存ファイル343(continue.txt)によりチャットグループ毎の状態を管理しており、全てのユーザがログアウトする等チャットが終了すると、チャット状態保存ファイル343の値を0とする。上述の図6に示す更新確認スクリプト331aは、関数&contにより、チャットの状態を監視しており、チャット状態保存ファイル343の値が0となると、この関数&contの値が代入された変数$finの値が論理偽を示す“0”となり、上述のwhileループの処理が終了され、更新確認スクリプト331aは、最後に、</body></html>を出力して(S110)、セッションを終了させる。このように、更新確認スクリプト331aからの通知を受信するフレーム(上述の図5中の<iframe>タグで定義されたフレーム)の受信が終了すると、HTTPクライアント12は、表示データ131a中の<body>タグ内の記述(<body onLoad=“doonLoad()”>)に従って関数doonLoad()を実行する。なお、onLoadは、当該<body>タグ内で定義された全ての表示が終了した際に実行される処理を示している。この関数doonLoad()の実行により、ログ表示領域142a内にチャットが終了した旨を示す文字「チャットを終了しました」が表示される。
【0032】
(効果)
HTTPクライアントを用いた従来のチャットシステムでは、所定の間隔でHTTPリクエストを送信し、チャットの内容を反映させた表示を行うようになっているため、HTTPリクエストの頻度が高くなり、トラフィックが増加する問題があった。これに対し、この情報提供システムでは、以上説明したように、情報提供サーバ30側で実行される更新確認スクリプト(chatupdate.cgi)331aがログファイル341の更新を監視しており、更新があるときのみ、HTTPサーバ32にログファイルを要求して、ログの表示を更新させることができる。これにより、HTTPリクエストの頻度を低減させてトラフィックを低減させることができる。
【0033】
また、この情報提供システムでは、サーバ側で実行されている更新確認スクリプト331aがwhileループが繰り返される間、短い間隔で繰り返しログファイル341の更新を確認しているため、ログファイル341の更新を確認した後、速やかにHTTPクライアント12側に通知を送ることができるため、チャットサービス331aが十分短い間隔でログファイル341の更新を確認していれば、ログファイル341の更新に対するチャットアプリケーション131におけるログの表示の更新の応答性を向上させることができる。
【0034】
また、この情報提供システムでは、チャットが終了した際に、サーバ側から<iframe>タグで定義されたフレームの終端を示す情報</body></html>を送信することにより、表示データ131aの<body>タグ内のonLoadで定義された処理、例えば上述の図5内の関数doonLoad()で定義されたチャットの終了を示す表示を実行させることができる。
【0035】
(変形例)
なお、上述の実施例では、図5に示すように、予めiframeタグによるフレームの定義を表示データ131a内で定義していたが、最初のupdatefunc関数が実行された後に、動的にiframeタグによるフレームの定義が追加されるよう処理を定義しておいてもよい。これにより、チャットアプリケーション131の起動後、最新のチャットのログを取得した後、更新確認スクリプト331aによるチャットの更新確認を開始させることができるようになる。つまり、より詳しく説明すれば、チャットのメイン画面(例えば上述の“http://srv_url/chat.html”に対応)の表示に何らかの事情で時間がかかる場合がある。このため、iframeの定義が静的である場合には、メイン画面の表示途中に複数回のリクエストをHTTPサーバ32に送ることになる。これに対し、iframeを動的に生成することにすれば、一度メイン画面の表示を完了してから一度のリクエストでそれまでのログを一気に取得することができ、HTTPサーバ32との通信回数を減少させることができ、通信の効率を向上させることができる。
【0036】
また、上述の実施例では、HTTPクライアント12からの更新確認スクリプト331aに対するリクエストは1回だけだったが、通信エラーなどが生じた場合は、再度リクエストを発行するようにしてもよい。
【0037】
(サーバ側は一定以上間隔をあけず情報発信)
また、上述の実施例では、更新があった場合に通知を送信するようにしていたが、更新の有無に関わらず、所定期間毎に、ダミー情報を送信するようにしてもよい。この場合、HTTPサーバ32側では、上述の図6に示す処理の代わりに、例えば図9に示すように、whileループ中で、ログファイル341が変更されていない場合でも “ ”(半角スペース)等のダミー情報をバッファに出力し、flush命令によりHTTPクライアント12側に送信するようにする。
【0038】
長時間、チャットの更新がない場合には、上述の図6に示す処理だと、HTTPクライアント12に対する送信が長時間行われず、HTTPクライアント12側でタイムアウトになることも考えられる。しかしながら、この図9に示す処理では、例えば図10に示すように、ログ確認処理毎に、HTTPクライアント12に対して情報が送信されるため、例えばチャットの更新がない場合等においても、ダミー情報を送信し(S405,S407)、HTTPクライアント12側でタイムアウトになることを防止することができる。
【実施例2】
【0039】
上述の実施例1では、HTTPサーバ32側で、更新確認スクリプト331aが、ログファイル341の更新を監視し、更新があった場合にその旨を通知するだけであったが、例えば図11及び図12に示すように、更新があった際に、ログファイル341の差分をHTTPクライアント12側に送信するようにしてもよい。
【0040】
チャットの開始が指示されると、チャットアプリケーション131は、上述の図11に示す表示データ131aを所得し、iframeタグ内の定義に従って更新確認スクリプト331aを要求する。これに応じて、更新確認スクリプト331aは、図12の処理を開始し、まず、2行目から8行目のprint文を実行し、9行目のflush文でそれまでのprint文の実行によるバッファの内容を送信させる。8行目のprint文では、getLog()関数の実行を指示するスクリプトが出力されており、このようなスクリプトを含む応答を受信すると、チャットアプリケーション131は、表示データ131a中の関数getLog()の定義に従って、これまでのログを取得し、改行コードを変換して当該表示データ131aのログ表示領域142a内に挿入する。
【0041】
この後、更新確認スクリプト331aは、図13に示すように、ログファイル341の更新を監視するが、更新があった際に、更新前後のログファイルの差分を求めて所定の変数($chatupdate)の値とし、表示データ131a内のiframeに対する応答としてHTTPクライアント12側に送信する(S304)。
【0042】
チャットアプリケーション131は、chatupdate.cgiからの応答があると、当該応答内のparent.updatefunc命令に応じて、当該parent.updatefunc命令中の変数$chatupdateを引数(v)としてupdatefunc関数を実行させる。updatefunc関数の実行により、チャットアプリケーション131は、引数vで指定された文字を、表示データ131a内のdivタグで定義されたログ表示領域に追記し、ログ表示領域142aの表示を更新させる。これにより、更新されたログの内容がログ表示領域142a内に表示される。チャットが終了すると、更新確認スクリプト331aは、上述の実施例1と同様に、終了情報(</body></html>)を出力して(S305)、セッションを終了させる。これに応じて、チャットアプリケーション131は、ログ表示領域142a内にチャットが終了した旨を示す文字「チャットを終了しました」を表示させる。
【0043】
上述の実施例1では、更新確認スクリプト331aからの通知に応じて、チャットアプリケーション131側からログファイル341を要求する必要があったが、この実施例2では、チャットアプリケーション131側からは、最初に更新確認スクリプト331aを要求するだけで、ログファイル341の差分を順次取得することができる。これにより、さらにトラフィックを低減させることができる。
【0044】
なお、本発明の技術的思想は、上述の各実施形態に限定されない。例えば上述の説明では、チャットサービスを例に説明したが、ファイル共有サービス332,検索サービス333,DBアクセスサービス334等のサービスを利用する際にも、チャットアプリケーション131と同様に、HTTPサーバ32側においてデータの更新等を監視し、更新等があった場合に、HTTPクライアント12側に通知し、スクリプト実行環境13がサービスの実行結果を取得することにより、上述と同様の作用効果を奏することができる。また、上述の各実施形態では、更新確認スクリプト331aのwhileループの実行毎にログファイル341の更新を確認する例について示したが、スクリプト実行環境33において、更新確認スクリプト331aの中の$sleep命令の引数(図6,図9,図12中の値“1”)を変数として動的に変更する処理を追加し、例えばログファイル341の更新頻度が低いときには$sleep命令で処理を止める時間を長くするといった調整ができるようする等の変形例も考えられる。
【図面の簡単な説明】
【0045】
【図1】本発明の実施例1に係る情報提供システムの構成例を示すブロック図である。
【図2】前記情報提供システムのクライアント端末の表示部の表示例を示す図である。
【図3】前記表示部に表示される表示内容の例を示す図である。
【図4】前記情報提供システムの情報提供サーバのHDDに保持されるログファイルの例を示す図である。
【図5】チャットアプリケーションに提供される表示データの例を示す図である。
【図6】HTTPサーバ側の処理に用いられるサーバ側スクリプトの例を示す図である。
【図7】チャットサービスの提供における通信の例を示すシーケンス図である。
【図8】ログファイルの内容を追加した表示データの例を示す図である。
【図9】変形例におけるサーバ側スクリプトの例を示す図である。
【図10】変形例における通信の例を示すシーケンス図である。
【図11】本発明の実施例2に係る情報提供システムにおける表示データの構成例を示す図である。
【図12】HTTPサーバ側の処理に用いられるサーバ側スクリプトの例を示す図である。
【図13】チャットサービスの提供における通信の例を示すシーケンス図である。
【符号の説明】
【0046】
10…クライアント端末、12…HTTPクライアント、13…スクリプト実行環境、131…チャットアプリケーション、20…ネットワーク、30…情報提供サーバ、33…スクリプト実行環境、331…チャットサービス、331a…更新確認スクリプト、341…ログファイル。
【技術分野】
【0001】
本発明は、ネットワークのトラフィックを低減させた情報提供システムに関する。
【背景技術】
【0002】
近年、HTTPクライアント側で実行されるスクリプトが、サービスを提供するサーバと非同期通信を行い、画面遷移なしに動的にその結果をHTTPクライアント領域に反映させる技術を活用した、いわゆるウェブアプリケーションがサービスの提供に用いられるようになっている。
【0003】
このようなウェブアプリケーションでは、HTTPクライアント側では、例えばJavaScript(登録商標)におけるxmlHttpRequestによって必要な情報を取得して処理を実行するようになっている。
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、一般的にHTTPプロトコルは、クライアントからの要求(リクエスト)に対する応答(レスポンス)によって情報を提供するいわゆるPull型のプロトコルであるため、HTTPクライアントからの要求なしに、HTTPサーバからHTTPクライアントに対して情報を送信するPush型の通信はできない。
【0005】
このため、ウェブアプリケーション側で、HTTPサーバ側でのファイルの変更等に迅速に対応したい場合には、例えば、ウェブアプリケーション側で、所定の短い間隔でHTTPリクエストを送信し、HTTPサーバの応答を得る必要があった。
【0006】
しかし、このような方法では、HTTPリクエストを頻繁に送信する必要があり、HTTPサーバからの応答に応じた処理を実行する必要があった。また、HTTPリクエストは、ヘッダ情報など付加情報も多いため、ネットワークの負荷の観点からも必要以上に送信することは望ましくない。なお、出願人は、上記背景技術に関する公知技術文献の存在を知らない。
【0007】
本発明は、上述のような課題に鑑みてなされたものであり、HTTPリクエストの頻度を低減させてネットワークのトラフィックを低減させることができる情報提供システムを提供することを目的とする。
【課題を解決するための手段】
【0008】
この課題を解決するために、本発明に係る情報提供システムは、HTTPサーバにより情報を提供する情報提供手段と,監視対象となる情報の更新の有無を繰り返し確認する更新確認手段と,一のセッションにおいて、更新検出手段の検出出力に応じて情報の更新があった旨を通知する通知手段を備える情報提供サーバと、情報提供手段が提供する情報を取得する情報取得手段と,通知手段からの通知に応じて情報取得手段に情報の取得を指示する取得指示手段とを有するHTTPクライアントを備える情報利用端末とを有することを特徴とする。
【0009】
情報提供サーバが提供する情報には、例えばチャットサービス,ファイル共有サービス,検索サービス,DBアクセスサービス等の出力情報等が含まれる。「一のセッションにおいて」とは、通知手段とHTTPクライアントの取得指示手段間で1つのセッションが維持され、当該セッションにおいて、複数の通知が送信され得ることを意味している。また、更新確認手段による「繰り返し確認」には、例えば所定時間毎の確認,動作状態に応じて変更可能なタイマーによる不定期な確認等が含まれる。
【0010】
また、HTTPサーバが更新検出手段が監視対象となる情報の更新を検出した際に更新検出手段の差分を検出する差分検出手段を有し、HTTPサーバの通知手段が通知中に差分検出手段が検出した差分を示す差分情報を含めて通知し、HTTPクライアントの情報取得手段が通知中の差分情報を取得する構成としてもよい。さらに、HTTPサーバが、通知手段が通知を送信してからの経過時間を求める計時手段と、経過時間が所定の閾値を超えた場合に通知手段にダミー情報を送信させるダミー情報送信手段とを備える構成としてもよい。
【0011】
また、本発明に係る情報提供サーバ装置は、端末装置に情報を提供する情報提供手段と、監視対象となる情報の更新の有無を繰り返し確認する更新確認手段と、一のセッションにおいて、更新検出手段の検出出力に応じて情報の更新があった旨を端末装置に通知する通知手段とを備えることを特徴とする。
【0012】
また、本発明に係る情報利用端末装置は、HTTPサーバにより情報を提供する情報提供手段と,監視対象となる情報の更新の有無を繰り返し確認する更新確認手段と,一のセッションにおいて、更新検出手段の検出出力に応じて情報の更新があった旨を通知する通知手段を備える情報提供サーバが提供する情報を利用する情報利用端末であって、情報提供手段が提供する情報を取得する情報取得手段と,通知手段からの通知に応じて情報取得手段に情報の取得を指示する取得指示手段とを有するHTTPクライアントを備えることを特徴とする。
【発明の効果】
【0013】
本発明によれば、情報提供サーバ装置の更新確認手段が、監視対象となる情報の更新の有無を繰り返し確認し、通知手段が、一のセッションにおいて、更新検出手段の検出出力に応じて情報の更新があった旨を通知することにより、情報利用端末装置側から一定時間毎にHTTPリクエストを送信して情報の更新を確認する必要がなく、一のセッションにおいて、通知手段からの通知を監視し、情報の更新があった場合のみ、情報提供手段に情報を要求することができる。これにより、情報利用端末装置側からのHTTPリクエストの頻度を低減させて、ネットワークのトラフィックを低減させることができる。
【0014】
また、HTTPサーバが更新検出手段が監視対象となる情報の更新を検出した際に更新検出手段の差分を検出する差分検出手段を有し、HTTPサーバの通知手段が通知中に差分検出手段が検出した差分を示す差分情報を含めて通知し、HTTPクライアントの情報取得手段が通知中の差分情報を取得する構成とすれば、通知に応じてHTTPクライアント側からHTTPリクエストを送信して監視対象となる情報を取得する必要がなく、さらなるトラフィックの低減に寄与することができる。
【0015】
さらに、HTTPサーバが、通知手段が通知を送信してからの経過時間を求める計時手段と、経過時間が所定の閾値を超えた場合に通知手段にダミー情報を送信させるダミー情報送信手段とを備える構成とすれば、タイムアウトにより通知手段とHTTPクライアントの取得指示手段との間のセッションが切断されてしまうことを防止することができる。
【発明を実施するための最良の形態】
【0016】
本発明は、例えばネットワーク経由で接続されたクライアント端末にチャット,ファイル共有等のサービスを提供する情報提供システムに適用することができる。
【実施例1】
【0017】
(全体構成)
本発明の実施例1に係る情報提供システムは、例えば図1に示すように、情報の提供を受けるユーザが使用するクライアント端末10と、このクライアント端末10とネットワーク20で接続された情報提供サーバ30とを備えている。この情報提供サーバ30は、例えばチャット,ファイル共有等の情報提供サービスを提供する。クライアント端末10及び情報提供サーバ30は、例えばCPU(Central Processing Unit),メモリ等を有するパーソナルコンピュータ等の情報処理装置から構成されており、制御プログラムを実行することにより、この図1に示すように機能する。
【0018】
クライアント端末10は、ネットワーク20経由の通信の制御を行う通信制御部11と、HTTPサービスを利用するHTTPクライアント12と、表示画面を有する表示部14とを備えている。HTTPクライアント12は、JavaScript(登録商標)を実行できるスクリプト実行環境13を備えており、スクリプト実行環境13は、情報提供サーバ30が提供する情報提供サービスの利用に用いるクライアント側の処理を実行する。このスクリプト実行環境13でスクリプトを実行することにより、チャットアプリケーション131,ファイル共有アプリケーション132等のHTTPクライアント12を利用したWebアプリケーションを実行することができるようになっている。なお、この実施例では、HTTPクライアント12としてInternet Explorer6.0を使用しており、以後も同様である。
【0019】
情報提供サーバ30は、ネットワーク20経由の通信の制御を行う通信制御部31と、HTTPサービスを提供するHTTPサーバ32と、スクリプト言語で記述された処理を実行するスクリプト実行環境33と、ハードディスク装置(HDD)34とを備えている。スクリプト実行環境33は、例えばPerl,JSP(Java(登録商標)ServerProgram)等の言語で記述された処理を実行するもので、例えばユーザ間でチャットを行うチャットサービス,ユーザ間でファイルを共有するファイル共有サービス,目的のファイルを検索するファイル検索サービス,データベースに対するアクセスを提供するDBアクセスサービス等のHTTPサーバ32をフロントエンドとして提供する情報提供サービス等の処理を実行する。なお、この実施例では、スクリプト言語実行環境33としてPerl5.8を使用しており、以後も同様である。
【0020】
この情報提供システムでは、チャットサービスは、チャットを行うメンバーが共通にアクセス(読み出し、追記等)できるログファイル341を介して提供されるようになっている。チャットサービスを利用したいユーザはクライアント端末10を操作してHTTPサーバ32にログインする。具体的には、例えばHTTPクライアント12で、チャットサービスに対応するURL(例えば“http://srv_url/chat.html”)を指定して、HTTPサーバ32にログインを要求し、HTTPサーバ32からの応答に応じてユーザID,パスワード等の認証情報を送信する。ログイン処理は、例えばスクリプト実行環境33で実行されるチャットサービス331によって処理され、ログインが許可されると、HTTPサーバ32は、チャットの画面を構成する表示データをHTTPクライアント12に送信する。これに応じて、HTTPクライアント12は、例えば図2に示すように、表示部14内のブラウザウィンドウ141内にチャットウィンドウ142を表示させる。また、チャットサービス331は、例えばチャットグループ毎にチャット状態保存ファイル343を作成し、当該チャットグループのチャットの状態(各メンバーのログイン状態等)を管理する。
【0021】
チャットウィンドウ142内には、送信する文字を入力する入力欄,チャットを行っている相手のユーザについての情報を表示する領域,チャットのログを表示させるログ表示領域142a等が設けられている。この図2中では、便宜的に、ログ表示領域142aを表示データ内の対応する定義の記述で図示しているが、実際には、ログ表示領域142a内には、例えば図3に示すように、ログ内の文字列が表示される。また、図2中では、後述の表示データ(chat.html)内のiframeタグで定義され、後述の更新確認スクリプト331a(chatupdate.cgi)からの通知(上位フレームの更新命令)を受信するフレームを、便宜的に符号142bとして図示しているが、当該フレームは非表示状態として定義されているため、実際には画面上には表示されない。
【0022】
図4は、チャットを行うグループ内のユーザからのメッセージが記録されるログファイル341の例を示す図である。チャットサービスを利用するユーザが操作するHTTPクライアント12を介して入力されたメッセージは、通信制御部11,ネットワーク20,通信制御部31を介してHTTPサーバ32に供給され、当該ユーザを示す情報等と共にログファイル341に記録される。
【0023】
図5は、HTTPサーバ32からHTTPクライアント12に供給され、チャットウィンドウ142を表示させる表示データ131aの例を示す図である。但し、チャットウィンドウ142での表示のスタイルを決める部分、送信する文字を入力する入力欄、チャットを行っている相手のユーザについての情報を表示する領域ならびにこれらを取得する手段など、本発明の技術に直接無関係な部分については便宜のために省略または簡易な記載に留めている。以後においても、この点は同様である。Scriptタグ内で定義されている関数(updatefunc(v))は、HTTPサーバ32に、xmlHttpRequestを発行し、ログファイル341からチャット内容を示す文字データを取得し、当該表示データ131a内のdivタグ内の領域に出力する関数である。HTTPクライアント12は、この表示データ131aに従ってチャットウィンドウ142内にチャットの内容を表示させるようになっている。なお、この図5中には図示していないが、チャットアプリケーション131では、例えばボタンの指示あるいはメニューの選択等に応じたチャット終了処理が定義されており、ユーザからの指示等があると、チャット終了の通知をHTTPサーバ32側に送信し、チャットウィンドウ142を閉じるようになっている。
【0024】
図6は、ログファイル341の更新を監視する処理等を定義した更新確認スクリプト331aの例を示している。この例では、perl言語によって処理を定義した例を示している。HTTPクライアント12がこの更新確認スクリプト331aのURLに対して要求を送信すると、この更新確認スクリプト331aの処理が開始され、スクリプト実行環境33は、図6中の2行目と3行目の定義に従って、クライアントに送信する所定のヘッダ情報等をバッファに出力させる。続けて、スクリプト実行環境33は、8行目の$|=1の命令に応じて、このヘッダ情報等をHTTPクライアント12宛に送信させる。なお、この命令($|=1)は、perl言語において、バッファに保持されているデータ(それまでに実行された行のprint文でHTTPサーバ32のバッファに保持された内容)を送信させるflush命令である。また、この実施例では、8行目のflush命令を確実に実行させるためのダミーデータ(文字列“0123・・・”)を出力させるprint文を追加している。この後、終了条件(例えばHTTPクライアント12からチャット終了の通知により、チャット状態保存ファイル343(continue.txt)の内容が変更になる等、スクリプト実行環境33内のフラグ$finの値が終了を示す値[0などの論理偽となる値]となる条件)を満たすまで、while命令中の処理を実行し、ログファイル341の更新を一定時間毎に監視する(whileループ中で、関数(サブプロシージャ)&getchatlinesの値を変数$afに代入し、初期値$bfと比較して更新の有無を判断する)。
【0025】
チャットに参加しているユーザによる書き込み等により、ログファイル341が更新されると、ログファイル341の行数が増加する。更新の監視は、例えば関数&getchatlinesによってログファイル341の行数を取得し、前回の確認時の行数($bf)と比較することによって行うことができる。この結果、ログファイル341が更新されていれば、スクリプト実行環境33はif文中のprint文を実行した後flush命令を実行し、更新されていなければ当該print文等を実行しない。
【0026】
if文中のprint文は、当該if文中で規定された命令(当該更新確認スクリプト331aを要求したフレームの上位のフレームの更新を指示する命令[parent.updatefunc])をバッファに出力させ、スクリプト実行環境33は、続くflush文($|=1)に応じてバッファの内容をHTTPクライアント12に送信させる。すなわち、この更新確認スクリプト331aは、ログファイル341が更新される都度、上位のフレーム(当該“chatupdate.cgi”を要求した“index.html”)の更新を指示する命令をHTTPクライアント12に送信して表示データ133aの更新を指示するようになっている。
【0027】
(チャットサービス動作)
図7は、チャットサービスにおけるログの更新処理を示すシーケンス図である。
ユーザがチャットサービスの利用を指示すると、HTTPクライアント12は、HTTPサーバ32にチャットウィンドウ142の表示データ131a(chat.html)を要求する(S101)。HTTPサーバ32は、これに応じて上述の図5に示す表示データ131aをHTTPクライアント12に供給する(S102)。表示データ131aが供給されると、HTTPクライアント12は、上述のように表示データ131a内のiframeタグ内で定義された更新確認スクリプト331aの要求に従って、更新確認スクリプト331a(chatupdate.cgi)を要求する(S105)。
【0028】
更新確認スクリプト331aが要求されると、スクリプト実行環境33は、当該更新確認スクリプト331aの実行を開始する。更新確認スクリプト331aは、まず、ヘッダ情報等を送信し(S106)、この後、所定時間毎(上述の図6中のwhileループの実行毎)にログファイル341の更新を監視する(S201,S202,…,S203)。ログファイル341の更新を検出すると(S202)、更新確認スクリプト331aは、その旨をHTTPクライアント12宛に通知する(S107)。
【0029】
この通知には、上述のように、当該出力を要求したフレームの上位のフレーム(すなわち表示データ131aによるフレーム)の更新を指示するスクリプト(parent.updatefunc)が含まれているため、これを受信すると、HTTPクライアント12は、上述の関数updatefunc(v)を実行させる。これにより、再度、ログファイル341が要求され(S108)、これに応じて供給されたログファイル341(S109)に応じた文字が、例えば図8の142aに示すように、表示データ131a(chat.html)内のdivタグ内に挿入される。これにより、新たなチャットの内容が、チャットウィンドウ142内のログ表示領域142aに表示される。
【0030】
このような動作を繰り返すことにより、ログファイル341が更新されたときのみログファイルを要求するHTTPリクエストを送信させて、表示データ131aを更新させて、チャットの内容を表示させることができる。
【0031】
なお、チャットサービス331は、チャット状態保存ファイル343(continue.txt)によりチャットグループ毎の状態を管理しており、全てのユーザがログアウトする等チャットが終了すると、チャット状態保存ファイル343の値を0とする。上述の図6に示す更新確認スクリプト331aは、関数&contにより、チャットの状態を監視しており、チャット状態保存ファイル343の値が0となると、この関数&contの値が代入された変数$finの値が論理偽を示す“0”となり、上述のwhileループの処理が終了され、更新確認スクリプト331aは、最後に、</body></html>を出力して(S110)、セッションを終了させる。このように、更新確認スクリプト331aからの通知を受信するフレーム(上述の図5中の<iframe>タグで定義されたフレーム)の受信が終了すると、HTTPクライアント12は、表示データ131a中の<body>タグ内の記述(<body onLoad=“doonLoad()”>)に従って関数doonLoad()を実行する。なお、onLoadは、当該<body>タグ内で定義された全ての表示が終了した際に実行される処理を示している。この関数doonLoad()の実行により、ログ表示領域142a内にチャットが終了した旨を示す文字「チャットを終了しました」が表示される。
【0032】
(効果)
HTTPクライアントを用いた従来のチャットシステムでは、所定の間隔でHTTPリクエストを送信し、チャットの内容を反映させた表示を行うようになっているため、HTTPリクエストの頻度が高くなり、トラフィックが増加する問題があった。これに対し、この情報提供システムでは、以上説明したように、情報提供サーバ30側で実行される更新確認スクリプト(chatupdate.cgi)331aがログファイル341の更新を監視しており、更新があるときのみ、HTTPサーバ32にログファイルを要求して、ログの表示を更新させることができる。これにより、HTTPリクエストの頻度を低減させてトラフィックを低減させることができる。
【0033】
また、この情報提供システムでは、サーバ側で実行されている更新確認スクリプト331aがwhileループが繰り返される間、短い間隔で繰り返しログファイル341の更新を確認しているため、ログファイル341の更新を確認した後、速やかにHTTPクライアント12側に通知を送ることができるため、チャットサービス331aが十分短い間隔でログファイル341の更新を確認していれば、ログファイル341の更新に対するチャットアプリケーション131におけるログの表示の更新の応答性を向上させることができる。
【0034】
また、この情報提供システムでは、チャットが終了した際に、サーバ側から<iframe>タグで定義されたフレームの終端を示す情報</body></html>を送信することにより、表示データ131aの<body>タグ内のonLoadで定義された処理、例えば上述の図5内の関数doonLoad()で定義されたチャットの終了を示す表示を実行させることができる。
【0035】
(変形例)
なお、上述の実施例では、図5に示すように、予めiframeタグによるフレームの定義を表示データ131a内で定義していたが、最初のupdatefunc関数が実行された後に、動的にiframeタグによるフレームの定義が追加されるよう処理を定義しておいてもよい。これにより、チャットアプリケーション131の起動後、最新のチャットのログを取得した後、更新確認スクリプト331aによるチャットの更新確認を開始させることができるようになる。つまり、より詳しく説明すれば、チャットのメイン画面(例えば上述の“http://srv_url/chat.html”に対応)の表示に何らかの事情で時間がかかる場合がある。このため、iframeの定義が静的である場合には、メイン画面の表示途中に複数回のリクエストをHTTPサーバ32に送ることになる。これに対し、iframeを動的に生成することにすれば、一度メイン画面の表示を完了してから一度のリクエストでそれまでのログを一気に取得することができ、HTTPサーバ32との通信回数を減少させることができ、通信の効率を向上させることができる。
【0036】
また、上述の実施例では、HTTPクライアント12からの更新確認スクリプト331aに対するリクエストは1回だけだったが、通信エラーなどが生じた場合は、再度リクエストを発行するようにしてもよい。
【0037】
(サーバ側は一定以上間隔をあけず情報発信)
また、上述の実施例では、更新があった場合に通知を送信するようにしていたが、更新の有無に関わらず、所定期間毎に、ダミー情報を送信するようにしてもよい。この場合、HTTPサーバ32側では、上述の図6に示す処理の代わりに、例えば図9に示すように、whileループ中で、ログファイル341が変更されていない場合でも “ ”(半角スペース)等のダミー情報をバッファに出力し、flush命令によりHTTPクライアント12側に送信するようにする。
【0038】
長時間、チャットの更新がない場合には、上述の図6に示す処理だと、HTTPクライアント12に対する送信が長時間行われず、HTTPクライアント12側でタイムアウトになることも考えられる。しかしながら、この図9に示す処理では、例えば図10に示すように、ログ確認処理毎に、HTTPクライアント12に対して情報が送信されるため、例えばチャットの更新がない場合等においても、ダミー情報を送信し(S405,S407)、HTTPクライアント12側でタイムアウトになることを防止することができる。
【実施例2】
【0039】
上述の実施例1では、HTTPサーバ32側で、更新確認スクリプト331aが、ログファイル341の更新を監視し、更新があった場合にその旨を通知するだけであったが、例えば図11及び図12に示すように、更新があった際に、ログファイル341の差分をHTTPクライアント12側に送信するようにしてもよい。
【0040】
チャットの開始が指示されると、チャットアプリケーション131は、上述の図11に示す表示データ131aを所得し、iframeタグ内の定義に従って更新確認スクリプト331aを要求する。これに応じて、更新確認スクリプト331aは、図12の処理を開始し、まず、2行目から8行目のprint文を実行し、9行目のflush文でそれまでのprint文の実行によるバッファの内容を送信させる。8行目のprint文では、getLog()関数の実行を指示するスクリプトが出力されており、このようなスクリプトを含む応答を受信すると、チャットアプリケーション131は、表示データ131a中の関数getLog()の定義に従って、これまでのログを取得し、改行コードを変換して当該表示データ131aのログ表示領域142a内に挿入する。
【0041】
この後、更新確認スクリプト331aは、図13に示すように、ログファイル341の更新を監視するが、更新があった際に、更新前後のログファイルの差分を求めて所定の変数($chatupdate)の値とし、表示データ131a内のiframeに対する応答としてHTTPクライアント12側に送信する(S304)。
【0042】
チャットアプリケーション131は、chatupdate.cgiからの応答があると、当該応答内のparent.updatefunc命令に応じて、当該parent.updatefunc命令中の変数$chatupdateを引数(v)としてupdatefunc関数を実行させる。updatefunc関数の実行により、チャットアプリケーション131は、引数vで指定された文字を、表示データ131a内のdivタグで定義されたログ表示領域に追記し、ログ表示領域142aの表示を更新させる。これにより、更新されたログの内容がログ表示領域142a内に表示される。チャットが終了すると、更新確認スクリプト331aは、上述の実施例1と同様に、終了情報(</body></html>)を出力して(S305)、セッションを終了させる。これに応じて、チャットアプリケーション131は、ログ表示領域142a内にチャットが終了した旨を示す文字「チャットを終了しました」を表示させる。
【0043】
上述の実施例1では、更新確認スクリプト331aからの通知に応じて、チャットアプリケーション131側からログファイル341を要求する必要があったが、この実施例2では、チャットアプリケーション131側からは、最初に更新確認スクリプト331aを要求するだけで、ログファイル341の差分を順次取得することができる。これにより、さらにトラフィックを低減させることができる。
【0044】
なお、本発明の技術的思想は、上述の各実施形態に限定されない。例えば上述の説明では、チャットサービスを例に説明したが、ファイル共有サービス332,検索サービス333,DBアクセスサービス334等のサービスを利用する際にも、チャットアプリケーション131と同様に、HTTPサーバ32側においてデータの更新等を監視し、更新等があった場合に、HTTPクライアント12側に通知し、スクリプト実行環境13がサービスの実行結果を取得することにより、上述と同様の作用効果を奏することができる。また、上述の各実施形態では、更新確認スクリプト331aのwhileループの実行毎にログファイル341の更新を確認する例について示したが、スクリプト実行環境33において、更新確認スクリプト331aの中の$sleep命令の引数(図6,図9,図12中の値“1”)を変数として動的に変更する処理を追加し、例えばログファイル341の更新頻度が低いときには$sleep命令で処理を止める時間を長くするといった調整ができるようする等の変形例も考えられる。
【図面の簡単な説明】
【0045】
【図1】本発明の実施例1に係る情報提供システムの構成例を示すブロック図である。
【図2】前記情報提供システムのクライアント端末の表示部の表示例を示す図である。
【図3】前記表示部に表示される表示内容の例を示す図である。
【図4】前記情報提供システムの情報提供サーバのHDDに保持されるログファイルの例を示す図である。
【図5】チャットアプリケーションに提供される表示データの例を示す図である。
【図6】HTTPサーバ側の処理に用いられるサーバ側スクリプトの例を示す図である。
【図7】チャットサービスの提供における通信の例を示すシーケンス図である。
【図8】ログファイルの内容を追加した表示データの例を示す図である。
【図9】変形例におけるサーバ側スクリプトの例を示す図である。
【図10】変形例における通信の例を示すシーケンス図である。
【図11】本発明の実施例2に係る情報提供システムにおける表示データの構成例を示す図である。
【図12】HTTPサーバ側の処理に用いられるサーバ側スクリプトの例を示す図である。
【図13】チャットサービスの提供における通信の例を示すシーケンス図である。
【符号の説明】
【0046】
10…クライアント端末、12…HTTPクライアント、13…スクリプト実行環境、131…チャットアプリケーション、20…ネットワーク、30…情報提供サーバ、33…スクリプト実行環境、331…チャットサービス、331a…更新確認スクリプト、341…ログファイル。
【特許請求の範囲】
【請求項1】
HTTPサーバにより情報を提供する情報提供手段と,監視対象となる前記情報の更新の有無を繰り返し確認する更新検出手段と,一のセッションにおいて、前記更新検出手段が前記監視対象となる情報の更新を検出した際に情報の更新があった旨を通知する通知手段を備える情報提供サーバと、
前記情報提供手段が提供する情報を取得する情報取得手段と,前記通知手段からの通知に応じて前記情報取得手段に情報の取得を指示する取得指示手段とを有するHTTPクライアントを備える情報利用端末と
を有することを特徴とする情報提供システム。
【請求項2】
前記HTTPサーバは、前記更新検出手段が前記監視対象となる情報の更新を検出した際に前記更新検出手段の差分を検出する差分検出手段を有し、
前記HTTPサーバの通知手段は、前記通知中に前記差分検出手段が検出した差分を示す差分情報を含めて通知し、
前記HTTPクライアントの情報取得手段は、前記通知中の差分情報を取得する
ことを特徴とする請求項1記載の情報提供システム。
【請求項3】
前記HTTPサーバは、
前記通知手段が通知を送信してからの経過時間を求める計時手段と、
経過時間が所定の閾値を超えた場合に前記通知手段にダミー情報を送信させるダミー情報送信手段と
を備えることを特徴とする請求項1又は請求項2のいずれかに記載の情報提供システム。
【請求項4】
端末装置に情報を提供する情報提供手段と、
監視対象となる前記情報の更新の有無を繰り返し確認する更新検出手段と、
一のセッションにおいて、前記更新検出手段の検出出力に応じて情報の更新があった旨を前記端末装置に通知する通知手段と
を備えることを特徴とする情報提供サーバ装置。
【請求項5】
HTTPサーバにより情報を提供する情報提供手段と,監視対象となる前記情報の更新の有無を繰り返し確認する更新検出手段と,一のセッションにおいて、前記更新検出手段の検出出力に応じて情報の更新があった旨を通知する通知手段を備える情報提供サーバが提供する情報を利用する情報利用端末であって、
HTTPクライアント上で実行され,前記情報提供手段が提供する情報を取得する情報取得手段と,前記通知手段からの通知に応じて前記情報取得手段に情報の取得を指示する取得指示手段と
を備えることを特徴とする情報利用端末装置。
【請求項6】
HTTPサーバにより情報を提供する情報提供手段と,監視対象となる前記情報の更新の有無を繰り返し確認する更新検出手段と,一のセッションにおいて、前記更新検出手段の検出出力に応じて情報の更新があった旨を通知する通知手段を備える情報提供サーバが提供する情報を利用する情報利用プログラムであって、
HTTPクライアント上で実行され,前記情報提供手段が提供する情報を取得する情報取得ステップと,前記通知手段からの通知に応じて前記情報取得ステップに情報の取得を指示する取得指示ステップと
を備えることを特徴とする情報利用プログラム。
【請求項1】
HTTPサーバにより情報を提供する情報提供手段と,監視対象となる前記情報の更新の有無を繰り返し確認する更新検出手段と,一のセッションにおいて、前記更新検出手段が前記監視対象となる情報の更新を検出した際に情報の更新があった旨を通知する通知手段を備える情報提供サーバと、
前記情報提供手段が提供する情報を取得する情報取得手段と,前記通知手段からの通知に応じて前記情報取得手段に情報の取得を指示する取得指示手段とを有するHTTPクライアントを備える情報利用端末と
を有することを特徴とする情報提供システム。
【請求項2】
前記HTTPサーバは、前記更新検出手段が前記監視対象となる情報の更新を検出した際に前記更新検出手段の差分を検出する差分検出手段を有し、
前記HTTPサーバの通知手段は、前記通知中に前記差分検出手段が検出した差分を示す差分情報を含めて通知し、
前記HTTPクライアントの情報取得手段は、前記通知中の差分情報を取得する
ことを特徴とする請求項1記載の情報提供システム。
【請求項3】
前記HTTPサーバは、
前記通知手段が通知を送信してからの経過時間を求める計時手段と、
経過時間が所定の閾値を超えた場合に前記通知手段にダミー情報を送信させるダミー情報送信手段と
を備えることを特徴とする請求項1又は請求項2のいずれかに記載の情報提供システム。
【請求項4】
端末装置に情報を提供する情報提供手段と、
監視対象となる前記情報の更新の有無を繰り返し確認する更新検出手段と、
一のセッションにおいて、前記更新検出手段の検出出力に応じて情報の更新があった旨を前記端末装置に通知する通知手段と
を備えることを特徴とする情報提供サーバ装置。
【請求項5】
HTTPサーバにより情報を提供する情報提供手段と,監視対象となる前記情報の更新の有無を繰り返し確認する更新検出手段と,一のセッションにおいて、前記更新検出手段の検出出力に応じて情報の更新があった旨を通知する通知手段を備える情報提供サーバが提供する情報を利用する情報利用端末であって、
HTTPクライアント上で実行され,前記情報提供手段が提供する情報を取得する情報取得手段と,前記通知手段からの通知に応じて前記情報取得手段に情報の取得を指示する取得指示手段と
を備えることを特徴とする情報利用端末装置。
【請求項6】
HTTPサーバにより情報を提供する情報提供手段と,監視対象となる前記情報の更新の有無を繰り返し確認する更新検出手段と,一のセッションにおいて、前記更新検出手段の検出出力に応じて情報の更新があった旨を通知する通知手段を備える情報提供サーバが提供する情報を利用する情報利用プログラムであって、
HTTPクライアント上で実行され,前記情報提供手段が提供する情報を取得する情報取得ステップと,前記通知手段からの通知に応じて前記情報取得ステップに情報の取得を指示する取得指示ステップと
を備えることを特徴とする情報利用プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2008−176483(P2008−176483A)
【公開日】平成20年7月31日(2008.7.31)
【国際特許分類】
【出願番号】特願2007−8227(P2007−8227)
【出願日】平成19年1月17日(2007.1.17)
【出願人】(399014484)ヴィジョンアーツ株式会社 (19)
【公開日】平成20年7月31日(2008.7.31)
【国際特許分類】
【出願日】平成19年1月17日(2007.1.17)
【出願人】(399014484)ヴィジョンアーツ株式会社 (19)
[ Back to top ]