[go: up one dir, main page]

JP2010055560A - 中間システムおよびイベント駆動型サーバ拡張プログラム - Google Patents

中間システムおよびイベント駆動型サーバ拡張プログラム Download PDF

Info

Publication number
JP2010055560A
JP2010055560A JP2008222618A JP2008222618A JP2010055560A JP 2010055560 A JP2010055560 A JP 2010055560A JP 2008222618 A JP2008222618 A JP 2008222618A JP 2008222618 A JP2008222618 A JP 2008222618A JP 2010055560 A JP2010055560 A JP 2010055560A
Authority
JP
Japan
Prior art keywords
response
server
function
content
communication unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008222618A
Other languages
English (en)
Inventor
Yuki Kaseda
佑樹 綛田
Kenjiro Naemura
健二郎 苗村
Masataka Yamada
正隆 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2008222618A priority Critical patent/JP2010055560A/ja
Publication of JP2010055560A publication Critical patent/JP2010055560A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

【課題】サーバプッシュによる自動更新機能をもたない既成のWebアプリケーションを、そのソースコードに変更を加えずに、サーバプッシュを利用した自動更新を行うWebアプリケーションに変更することのできる中間システムおよびイベント駆動型サーバ拡張プログラムを提供する。
【解決手段】中間システム30は、ブラウザにより実現されるクライアント20との間の通信において、既定リクエストを受信すると、受信したリクエストに対して、サーバプッシュによるデータ要求の発行を促す内容を記述したレスポンスを送信し、クライアント20からレスポンスの内容に従うLongPollリクエストを受信して、クライアント20に対し、サーバプッシュによる更新通知機能を提供する。
【選択図】 図1

Description

本発明は、情報提供サーバと、このサーバに情報提供を要求する情報表示クライアントとの間に介在される中間システム、および同システムに適用されるイベント駆動型サーバ拡張プログラムに関する。
近年、様々な情報がWWW(Wor1d Wide Web)を介して提供されている。WWWはサーバ(情報提供サーバ)とクライアント(情報表示クライアント)から構成されるインターネットを利用した分散型の情報提供/情報表示(情報閲覧)システムである。一般に、サーバはページと呼ばれる文書単位でクライアントヘ情報を提供する。このページはHTML(HyperText Markup Language)と呼ばれる形式のフォーマットで記述されているファイルである。クライアントは通常、ブラウザと呼ばれる情報表示(情報閲覧)用のソフトウェアを用いて実現されており、サーバにアクセスし、画像や音声などを含む文書を表示することができる。
WWWの一般的な使われ方は、ブラウザからサーバに表示したいページのアドレス(URLと呼ばれる)を要求し、サーバはそのアドレスに対応するページをクライアントに返すというものである。ここで注意しなければならないのは、ブラウザから明示的な要求がない限り、サーバは何もしないということである。これは、サーバに蓄えてあるページが変更されても、ブラウザからは変更を即時に知ることができないとことを意味する。このようなブラウザを起点とした通信形態をプル型通信と称している。
サーバにあるページが更新されたことをブラウザ側で迅速に知るためには、ブラウザ側で常にサーバのページが更新されたかどうかを定期的にアクセスする必要がある。サーバ側のページが時々刻々変更されるようなページをブラウザで表示している場合、サーバ側でページが更新されてもブラウザの画面は変わらない。サーバ側で更新したページをブラウザ側の画面に反映させるためには、ユーザが明示的に、ブラウザ(の情報表示画面)に付加されているリロードボタンなどを押す(リロードを行う)ことで、サーバに明示的に再アクセスしなければならない。
このようなプル型通信の問題を解決するための技術として、Cometを利用したWebアプリケーション技術が存在する。Cometは、Webアプリケーション上でサーバプッシュを実現する。上記した一般的なクライアントプルがブラウザを起点にサーバ・クライアント間のやりとりを行うのに対し、サーバプッシュではサーバを起点にサーバ・クライアント間のやりとりを行う。このCometを利用したWebアプリケーションでは、クライアントからの要求(リクエスト)に対して、サーバが応答(レスポンス)を保留し、サーバ上で何らかのイベントが発生したときにレスポンスを返す。これによりクライアントからサーバへリクエストすることなくサーバで発生したイベントを即時にクライアントに返信することができる。
Webサーバ上のデータが更新され、ブラウザがWebサーバ上の最新のデータを得る方法には、Cometを利用して、Webサーバがブラウザに最新のデータをプッシュする方法と、ブラウザがWebサーバのデータをリロード(再読込)する方法がある。
ブラウザがリロードをする方法は、HTMLファイルにリロードを行うためのタグやJava(登録商標)Scriptを記述する方法と、上述したようにユーザがブラウザのリロードボタンを押下する方法がある。ブラウザがリロードする方法には、最新のデータをプッシュする方法よりも通信量が多くなるという課題と、Webサーバの情報が更新されてからブラウザが最新情報を得るまでにタイムラグがあるという課題がある。
サーバプッシュによる自動更新機能をもたない既成のWebアプリケーションを、Cometによるサーバプッシュを利用した自動更新を行うWebアプリケーションに変更するには、そのソースコードに変更を加える必要があるという問題があった。
上記したWebアプリケーションの関連技術として、従来では、クライアントにおける初回操作の後、クライアント側の操作とは無関係に、一定間隔でリクエストデータの送受信を繰り返すことでセッションの処理を行うセッション管理技術が存在した。
特開2003−233585号公報 Wikipedia(http://ja.wikipedia.org/wiki/Comet)
上述したように、サーバプッシュによる自動更新機能をもたない既成のWebアプリケーションを、Cometによるサーバプッシュを利用した自動更新を行うWebアプリケーションに変更するには、そのソースコードに変更を加える必要があるという問題があった。
本発明は上記問題に鑑みなされたもので、サーバプッシュによる自動更新機能をもたない既成のWebアプリケーションを、そのソースコードに変更を加えずに、サーバプッシュを利用した自動更新を行うWebアプリケーションに変更することのできる中間システムおよびイベント駆動型サーバ拡張プログラムを提供することを目的とする。
本発明は、サーバプッシュによる更新通知機能をもたない情報提供サーバと、このサーバに情報提供を要求する情報表示クライアントとの間に介在される中間システムであって、前記中間システムは、前記クライアントとの間で通信を行うサーバ機能通信部と、前記サーバとの間で通信を行うブラウザ機能通信部と、前記ブラウザ機能通信部から受けたレスポンスを解析し編集して前記サーバ機能通信部に渡すレスポンス解析・編集機能部とを具備し、前記サーバ機能通信部は、前記クライアントから受信したサーバプッシュに関係しない既定リクエストに対して、サーバプッシュによるデータ要求の発行を促す内容を記述したレスポンスを送信し、前記クライアントから前記レスポンスの内容に従うサーバプッシュを利用する内容を記述した特定リクエストを受信する通信手段を具備し、前記ブラウザ機能通信部は、前記サーバ機能通信部が受信した既定リクエストを保存し、当該既定リクエストにより前記サーバに対してポーリング処理を実行する通信手段を具備し、前記レスポンス解析・編集機能部は、前記サーバ機能通信部が受信した特定リクエストに従い、前記ブラウザ機能通信部に対して前記ポーリング処理を実行させ、当該処理において、ポーリングの周期毎に、受信したレスポンスを保存し、前回受信したレスポンスの内容と今回受信したレスポンスの内容とを比較して、レスポンスの内容が更新されたか否かを監視し、レスポンスの内容が更新されたとき、当該レスポンスの内容を編集し、編集したレスポンスを前記サーバ機能通信部からプッシュさせる処理手段を具備して、前記クライアントに対し、サーバプッシュによる更新通知機能を提供することを特徴とする。
また、本発明は、サーバプッシュによる更新通知機能をもたない情報提供サーバと、このサーバに情報提供を要求する情報表示クライアントとの間に介在される中間システムであって、前記中間システムは、前記クライアントとの間で通信を行うサーバ機能通信部と、前記サーバとの間で通信を行うブラウザ機能通信部と、前記ブラウザ機能通信部から受けたレスポンスを解析し編集して前記サーバ機能通信部に渡すレスポンス解析・編集機能部とを具備し、前記クライアントは、前記サーバ機能通信部からレスポンスの更新が通知されたとき、サーバプッシュに関係しない既定リクエストを前記サーバ機能通信部に送信し、前記サーバ機能通信部から更新されたレスポンスを受けたとき、当該レスポンスの内容に従いサーバプッシュを利用する内容を記述した特定レスポンスを前記サーバ機能通信部に送信する通信手段を具備し、前記ブラウザ機能通信部は、前記サーバ機能通信部が受信した既定リクエストを保存し、当該既定リクエストにより前記サーバに対してポーリング処理を実行する通信手段を具備し、前記レスポンス解析・編集機能部は、前記サーバ機能通信部が受信した前記特定レスポンスに従い、前記ブラウザ機能通信部に対して前記ポーリング処理を実行させ、当該処理の周期毎に、受信したレスポンスを保存し、前回受信したレスポンスの内容と今回受信したレスポンスの内容とを比較して、レスポンスの内容が更新されたか否かを監視し、レスポンスの内容が更新されたとき、当該レスポンスの内容を編集し、レスポンスの内容が更新されたことを前記サーバ機能通信部から前記クライアントに通知させた後、前記既定リクエストの受信を待って、前記編集したレスポンスを前記サーバ機能通信部からプッシュさせる一連の処理手段を具備して、前記クライアントに対し、サーバプッシュによる表示の更新処理を行うことを特徴とする。
また、本発明は、サーバプッシュによる自動更新機能をもたないWebアプリケーションにより構成された情報提供サーバをイベント駆動型サーバとして機能させるためのサーバ拡張プログラムであって、ブラウザからサーバプッシュに関係しない既定リクエストを受信し、当該既定リクエストを保存する機能と、前記ブラウザから受信した前記既定リクエストに対して、サーバプッシュによるデータ要求の発行を促す内容を記述したレスポンスを前記ブラウザに送信する機能と、前記ブラウザから前記レスポンスの内容に従うサーバプッシュを利用する内容を記述した特定リクエストを受信して、前記保存した既定リクエストによりポーリング処理を実行し、当該処理の周期毎に、受信したレスポンスを保存し、前回受信したレスポンスの内容と今回受信したレスポンスの内容とを比較して、レスポンスの内容を監視し、サーバ上でイベントが起こったか否かを周期的に確認する機能と、前記レスポンスの内容が更新されたとき、当該レスポンスの内容を編集し、リロードを無効化するための内容を記述した編集後のレスポンスを前記ブラウザにプッシュする機能とをコンピュータに実現させることを特徴とする。
また、本発明は、サーバプッシュによる自動更新機能をもたないWebアプリケーションにより構成された情報提供サーバをイベント駆動型サーバとして機能させるためのサーバ拡張プログラムであって、ブラウザから受信したサーバプッシュに関係しない既定リクエストを受信し、当該既定リクエストを保存する機能と、サーバから受信したレスポンスを保存手段に保存する機能と、前記既定リクエストを前記サーバに送信して、前記サーバからレスポンスを受信し、受信したレスポンスの内容を前記保存手段の保存内容と比較する機能と、前記レスポンスの内容の比較の結果、レスポンスの内容が異なるとき、前記保存手段の内容を空データにし、前記ブラウザにレスポンスの内容が更新されたことを通知して、前記ブラウザから既定リクエストを受信する機能と、前記レスポンスの内容の比較の結果、前記保存手段の保存内容が空データであるとき、前記受信したレスポンスを前記保存手段に保存して、前記受信したレスポンスの内容を編集し、サーバプッシュによるデータ要求の発行を促す内容を記述した編集後のレスポンスを前記ブラウザに送信して、前記ブラウザから前記編集後のレスポンスの内容に従うサーバプッシュを利用する内容を記述した特定リクエストを受信する機能と、前記レスポンスの内容の比較の結果、レスポンスの内容が等しいとき、前記特定リクエストに従い、前記保存した既定リクエストによりポーリング処理を実行し、当該処理の周期毎に前記レスポンスの内容の比較機能による処理を実行して、サーバ上でイベントが起こったか否かを周期的に確認する機能とをコンピュータに実現させることを特徴とする。
本発明によれば、サーバプッシュによる自動更新機能をもたない既成のWebアプリケーションを、そのソースコードに変更を加えずに、サーバプッシュを利用した自動更新を行うWebアプリケーションに変更することができる。
以下図面を参照して本発明の実施形態を説明する。なお、この実施形態では、利用するComet機能として、クライアント側がデータ取得の都度、再接続する、ロングポーリングと称される機能を利用し、サーバプッシュを行うためのリクエスト(サーバプッシュを利用する内容を記述した特定リクエスト)をLongPollリクエストと称し、サーバプッシュを行うことを目的としないリクエスト(サーバプッシュに関係しない既定リクエスト)と区別する。
本発明の第1実施形態に係る中間システムの構成を図1に示す。
図1に示すように、本発明の第1実施形態に係る中間システム30は、サーバプッシュによる更新通知機能をもたない情報提供サーバ(以下、単にサーバと称す)10と、このサーバ10に情報提供を要求する情報表示クライアント(以下、単にクライアントと称す)20との間に介在される。サーバ10はサーバプッシュによる更新通知機能をもたない既成のWebアプリケーションにより構成され、リクエストの受信機能とレスポンスの送信機能を実現するサーバ通信部11を備える。クライアント20はWebページの閲覧機能を実現するブラウザにより構成され、リクエストの送信機能とレスポンスの受信機能を実現するクライアント通信部21を備える。
中間システム30は、サーバ通信部11との間で通信を行うブラウザ機能通信部31と、クライアント通信部21との間で通信を行うサーバ機能通信部32と、ブラウザ機能通信部31から受けたレスポンスを解析し編集してサーバ機能通信部32に渡すレスポンス解析・編集機能部35とを具備する。
ブラウザ機能通信部31は、サーバ機能通信部32が受信したリクエスト(既定リクエスト)を保存するリクエスト保存部33を備え、リクエスト保存部33からリクエストの内容を取り出して、サーバ通信部11に送信し、サーバ通信部11からレスポンスを受信する機能と、後述するレスポンス比較部にレスポンスの内容を渡す機能を有して、リクエスト保存部33から取り出したリクエストにより、サーバ通信部11に対して定期的なリロードの繰り返しによるポーリング処理を実行する処理機能を実現している。
サーバ機能通信部32は、クライアント通信部21から受信したリクエスト(既定リクエスト)に対して、サーバプッシュによるデータ要求の発行を促す内容を記述したレスポンスを送信し、クライアント通信部21から上記レスポンスの内容に従うLongPollリクエストを受信する通信手段を具備する。このサーバ機能通信部32は、クライアント通信部21からリクエストを受信する機能と、リクエスト保存部33にリクエストの内容を渡す機能と、クライアント通信部21に後述するプッシュデータ表示機能を有するレスポンスを送信する機能と、後述するレスポンス編集部からレスポンスの内容を受け取る機能と、クライアント通信部21にレスポンスをプッシュする機能を有する。ここで上記したプッシュデータ表示機能を有するレスポンスを送信する機能は、上記記述内容のレスポンスをクライアント通信部21が受信したとき、クライアント通信部21からサーバ機能通信部32にLongPollリクエストを送信させるためのレスポンスの送信機能と、サーバ機能通信部32からクライアント機能通信部31にデータがプッシュされて、ブラウザにデータが表示されたとき、クライアント通信部21からサーバ機能通信部32にLongPollリクエストを送信させるためのレスポンスの送信機能である。
リクエスト保存部33は、サーバ機能通信部32がリクエストを受信する都度、そのリクエストの内容を受け取り、次に受信したリクエストの内容と比較するまで保存する機能と、ブラウザ機能通信部31にリクエストの内容を渡す機能を有する。
レスポンス解析・編集機能部35は、レスポンス保存部36と、レスポンス比較部37と、レスポンス編集部38とを具備して、サーバ機能通信部32が受信したLongPollリクエストに従い、ブラウザ機能通信部31に対して、サーバ10上でイベントが起こった(発生した)か否かを周期的に確認させる、所謂、ポーリング処理を実行し、レスポンスの内容が更新されたことを検出して、当該レスポンスの内容を編集し、編集したレスポンスをサーバ機能通信部32からプッシュさせる処理機能を実現している。
レスポンス保存部36は、レスポンス比較部37からレスポンスの内容を受け取り、保存する機能と、保存したレスポンスの内容をレスポンス比較部37に渡す機能を有して、ブラウザ機能通信部31がポーリング処理において受信したレスポンスを受信周期に合わせて一定期間保存し、レスポンス比較部37に渡す機能を有する。ただし、レスポンスの内容を保存していない場合、レスポンス比較部37に空のデータを渡す。
レスポンス比較部37は、ブラウザ機能通信部31からレスポンスの内容を受け取る機能と、受け取ったレスポンスの内容をレスポンス保存部36に渡す機能と、レスポンス保存部36からレスポンスを取り出す機能と、今回受信したレスポンスとレスポンス保存部36に保存されている前回受信したレスポンスとの内容を比較する機能と、レスポンスの内容をレスポンス編集部38に渡す機能を有して、ブラウザ機能通信部31がレスポンスを受信する都度、ブラウザ機能通信部31が今回受信したレスポンスの内容と、レスポンス保存部36に保存された、前回受信したレスポンスの内容とを比較し、レスポンスの内容が更新されたか否かを監視して、レスポンスの内容が更新されたとき、当該更新されたレスポンスの内容をレスポンス編集部38に渡す処理機能を実現している。
レスポンス編集部38は、レスポンス比較部37からレスポンスの内容を受け取る機能と、レスポンスの内容を編集する機能と、レスポンスの内容をサーバ機能通信部11に渡す機能を有して、レスポンス比較部37から受けた、更新されたレスポンスの内容を編集し、編集したレスポンスをサーバ機能通信部32に渡し、サーバ機能通信部32からプッシュさせる更新通知の処理機能を実現している。ただし、この第1実施形態での編集内容は、クライアント通信部21が定期的なリロードを実行しないようにすることである。
本発明の第1実施形態に係る中間システム30を含む通信システム全体の通信手順を図2に示し、システム全体の処理手順を図3に示している。
ここで上記図1乃至図3を参照して本発明の第1実施形態に係る中間システムの動作並びにイベント駆動型サーバ拡張プログラムの処理手順について説明する。
まず、図2に示す通信シーケンスを参照して、本発明の第1実施形態に係る中間システム30の概略的な動作を説明する。中間システム30は、ブラウザにより実現されるクライアント20との間の通信において、リクエスト(既定リクエスト)を受信すると、受信したリクエストに対して、サーバプッシュによるデータ要求の発行を促す内容を記述したレスポンスを送信し、クライアント(ブラウザ)20から上記レスポンスの内容に従うLongPollリクエストを受信する。一方、既成Webアプリケーションにより実現されるサーバ10との間の通信に於いて、クライアント20から受信したリクエスト(既定リクエスト)を保存し、このリクエストを用いて定期的なリロードの繰り返しによるポーリング処理を実行する。このポーリング処理において、ループの周期毎に、受信したレスポンスを保存し、前回受信したレスポンスの内容と今回受信したレスポンスの内容とを比較して、レスポンスの内容が更新されたか否かを監視する。レスポンスの内容が更新されたことを検知すると、当該レスポンスの内容を編集し、編集したレスポンスをクライアント(ブラウザ)20にプッシュする。クライアント(ブラウザ)20は、更新内容を受信し表示すると、LongPollリクエストを中間システム30に送信する。中間システム30はLongPollリクエストを受信すると、上記したポーリング処理によるレスポンスの内容が更新されたか否かの監視を行う。このようにして、クライアントに対し、サーバプッシュによる更新通知機能を提供する。
続いて図3に示すフローチャートを参照して、本発明の第1実施形態に係る中間システム30の動作を説明する。図3に示す処理はサーバ機能通信部62がクライアント通信部51からリクエスト(既定リクエスト)を受信することによって実行される。
ステップS11において、サーバ機能通信部32は、クライアント通信部21からリクエスト(既定リクエスト)を受信し、受信したリクエストの内容をリクエスト保存部33に渡す。
ステップS12において、サーバ機能通信部32は、上記受信したリクエストに対し、プッシュデータ表示機能を有するレスポンス(サーバプッシュによるデータ要求の発行を促す内容を記述したレスポンス)を、クライアント通信部21に送信する。クライアント通信部21はこのレスポンスを受信すると、サーバ機能通信部32にサーバプッシュを受信するためのLongPollリクエストを送信する。
ステップS13において、リクエスト保存部33は、上記ステップS11においてサーバ機能通信部32から受け取ったリクエストを保存する。
ステップS14において、ブラウザ機能通信部31は、リクエスト保存部33が保存しているリクエストを取り出し、サーバ通信部11に送信して、そのリクエストに対するレスポンスを受信し、受信したレスポンスの内容をレスポンス比較部37に渡す。
ステップS15において、レスポンス比較部37は、レスポンス保存部36が保存しているレスポンスの内容を取り出し、上記(ステップS)14においてブラウザ機能通信部31から受け取ったレスポンスの内容と比較する。比較した結果、両レスポンスの内容が異なる場合は、既成Webアプリケーションのデータが更新された場合である。この場合、レスポンス比較部37は、ブラウザ機能通信部31から受け取ったレスポンスの内容を、レスポンス保存部36とレスポンス編集部38に渡す。上記両レスポンスの内容が等しい場合は、上記ステップS14の処理に戻り、サーバ通信部11に対して定期的なリロードの繰り返しによるポーリング処理を実行する。ただし、レスポンス比較部37がレスポンス保存部36から空のデータを取り出したとき、レスポンス比較部37は、ブラウザ機能通信部31から受け取ったレスポンスの内容を、レスポンス保存部36とレスポンス編集部38に渡す。
ステップS16において、レスポンス保存部36は、上記ステップS15において受け取ったレスポンスの内容を保存し、以前に保存していたレスポンスの内容を消去する。すなわち、レスポンス保存部36は、レスポンス比較部37の比較結果を待って、保存内容を更新する。
ステップS17において、レスポンス編集部38は、上記ステップS15において受け取ったレスポンスの内容を編集する。編集内容は、リロード機能を無効化するための、リロードを行う記述の消去やコメントアウトすることである。
リロード機能は、HTMLの
<META HTTP−EQUIV=”Refresh” counted=”5;http://www.xxx.co.jp/”>タグや、JavaScriptのwindow.loacation.replace(“http://www.xxx.co.jp”)関数などで記述されている。
レスポンス編集部38は、レスポンスの編集を終えると、編集したレスポンスの内容をサーバ機能通信部32に渡す。
ステップS18において、サーバ機能通信部32は、上記ステップS17において受け取ったレスポンス内容をクライアント通信部21にプッシュする。
ステップS19において、クライアント通信部21は、上記ステップS18においてプッシュされたレスポンスの内容を画面に表示し、表示画面を更新する。さらにクライアント通信部21は再びサーバプッシュを受信するためのLongPollリクエストをサーバ機能通信部32に送信する。上記ステップS14からの処理が繰り返し実行される。
上記した中間システム30の処理により、クライアント20に対して、サーバプッシュによる更新通知機能が提供される。
次に、図4および図5を参照して本発明の第2実施形態に係る中間システムの動作並びにイベント駆動型サーバ拡張プログラムの処理手順について説明する。
本発明の第2実施形態に係る中間システムの構成を図4に示す。
図4に示すように、本発明の第2実施形態に係る中間システム60は、サーバプッシュによる更新通知機能をもたない情報提供サーバ(以下、単にサーバと称す)40と、このサーバ40に情報提供を要求する情報表示クライアント(以下、単にクライアントと称す)50との間に介在される。サーバ40はサーバプッシュによる更新通知機能をもたない既成のWebアプリケーションにより構成され、リクエストの受信機能とレスポンスの送信機能を実現するサーバ通信部41を備える。クライアント50はWebページの閲覧機能を実現するブラウザにより構成され、リクエストの送信機能とレスポンスの受信機能を実現するクライアント通信部51を備える。
中間システム60は、サーバ通信部41との間で通信を行うブラウザ機能通信部61と、クライアント通信部51との間で通信を行うサーバ機能通信部62と、ブラウザ機能通信部61から受けたレスポンスを解析し編集してサーバ機能通信部62に渡すレスポンス解析・編集機能部65とを具備する。
ブラウザ機能通信部61は、サーバ機能通信部62が受信したリクエスト(既定リクエスト)を保存するリクエスト保存部63を備え、リクエスト保存部63からリクエストの内容を取り出して、サーバ通信部41に送信し、サーバ通信部41からレスポンスを受信する機能と、後述するレスポンス比較部にレスポンスの内容を渡す機能を有して、リクエスト保存部63から取り出したリクエストにより、サーバ通信部41に対して定期的なリロードの繰り返しによるポーリング処理を実行する処理機能を実現している。
サーバ機能通信部62は、クライアント通信部51からリクエストを受信する機能と、リクエスト保存部63にリクエストの内容を渡す機能と、レスポンス編集部68からレスポンスの内容を受け取る機能に加え、レスポンス比較部67から既成Webアプリケーションのデータが更新された旨の通知を受け、クライアント通信部51に既成Webアプリケーションのデータが更新されたことを示すデータをプッシュする機能と、クライアント通信部51に更新されたレスポンスを送信する機能を有する。
リクエスト保存部63は、サーバ機能通信部62がリクエストを受信する都度、そのリクエストの内容を受け取り、次に受信したリクエストの内容と比較するまで保存する機能と、ブラウザ機能通信部61にリクエストの内容を渡す機能を有する。
レスポンス解析・編集機能部65は、レスポンス保存部66と、レスポンス比較部67と、レスポンス編集部68とを具備して、サーバ機能通信部62が受信したLongPollリクエストに従い、ブラウザ機能通信部61に対して、サーバ40上でイベントが起こった(発生した)か否かを周期的に確認させる、所謂、ポーリング処理を実行し、レスポンスの内容が更新されたことを検出して、当該レスポンスの内容を編集し、編集したレスポンスをサーバ機能通信部62からプッシュさせる処理機能を実現している。
レスポンス保存部66は、レスポンス比較部67からレスポンスの内容を受け取り、保存する機能と、保存したレスポンスの内容をレスポンス比較部67に渡す機能を有して、ブラウザ機能通信部61がポーリング処理において受信したレスポンスを受信周期に合わせて一定期間保存し、レスポンス比較部67に渡す機能を有する。さらにレスポンス比較部67から既成Webアプリケーションのデータが更新された旨の通知を受けて、保存しているレスポンスの内容を消去する(空にする)機能を有する。なお、レスポンス保存部66は、レスポンスの内容をレスポンス比較部67に渡すとき、レスポンスの内容を保存していない場合、空のデータを渡す。
レスポンス比較部67は、ブラウザ機能通信部61からレスポンスの内容を受け取る機能と、受け取ったレスポンスの内容をレスポンス保存部66に渡す機能と、レスポンス保存部66からレスポンスを取り出す機能と、今回受信したレスポンスとレスポンス保存部66に保存されている前回受信したレスポンスとの内容を比較する機能と、レスポンスの内容をレスポンス編集部68に渡す機能を有して、ブラウザ機能通信部61がレスポンスを受信する都度、ブラウザ機能通信部61が今回受信したレスポンスの内容と、レスポンス保存部66に保存された、前回受信したレスポンスの内容とを比較し、レスポンスの内容が更新されたか否かを監視して、レスポンスの内容が更新されたとき、当該更新されたレスポンスの内容をレスポンス編集部68に渡す処理機能を実現している。さらにレスポンス比較部67は、レスポンスの内容が更新されたとき、その旨(既成Webアプリケーションのデータが更新されたこと)をサーバ機能通信部62と、レスポンス保存部66に通知する機能を有する。
レスポンス編集部68は、レスポンス比較部67からレスポンスの内容を受け取る機能と、レスポンスの内容を編集する機能と、レスポンスの内容をサーバ機能通信部41に渡す機能を有して、レスポンス比較部67から受けた、更新されたレスポンスの内容を編集し、編集したレスポンスをサーバ機能通信部62に渡し、サーバ機能通信部62からプッシュさせる更新通知の処理機能を実現している。ただし、上記した第1実施形態での編集内容は、クライアント通信部が定期的なリロードを実行しないようにすることであったのに対して、この第2実施形態での編集内容は、上記第1実施形態での編集内容に加え、クライアント通信部51がレスポンスの内容を受信すると、クライアント通信部51からサーバ機能通信部62に、LongPollリクエストを送信させるようにすることと、クライアント通信部51がサーバ機能通信部62からデータをプッシュされると、リロードを行うようにすることである。
本発明の第2実施形態に係る中間システム60を含む通信システム全体の処理手順を図5に示している。図5に示す処理はサーバ機能通信部62がクライアント通信部51からリクエスト(既定リクエスト)を受信することによって実行される。
中間システム30は、ステップS24において、既成Webアプリケーションのデータが更新されたことを検知し、ステップS31において、既成Webアプリケーションのデータが更新されたこと示すデータをブラウザ50にプッシュする。ブラウザ50は、ステップS32において、既成Webアプリケーションの最新のデータを得るためにリロードを行い、ステップS28において、既成Webアプリケーションの最新のデータを表示する。
ここで図5に示すフローチャートを参照して本発明の第2実施形態に係る中間システムの動作並びにイベント駆動型サーバ拡張プログラムの処理手順について説明する。
ステップS21において、サーバ機能通信部62は、クライアント通信部51からリクエスト(既定リクエスト)を受信し、受信したリクエストの内容をリクエスト保存部63に渡す。
ステップS22において、リクエスト保存部63は、上記ステップS21においてサーバ機能通信部62から受け取ったリクエストを保存する。
ステップS23において、ブラウザ機能通信部61は、リクエスト保存部63が保存しているリクエストを取り出し、サーバ通信部41に送信して、そのリクエストに対するレスポンスを受信し、受信したレスポンスの内容をレスポンス比較部67に渡す。
ステップS24において、レスポンス比較部67は、レスポンス保存部66が保存しているレスポンスの内容を取り出し、上記ステップS23においてブラウザ機能通信部61から受け取ったレスポンスの内容と比較する。比較の結果、両レスポンスの内容が異なる場合は、ステップS30の処理に移行し、両レスポンスの内容が等しい場合は、上記ステップS23の処理に移行し、レスポンス保存部66から空のデータを取り出したときは、ステップS25の処理に移行する。上記比較した結果、両レスポンスの内容が異なる場合は、既成Webアプリケーションのデータが更新された場合である。この場合、レスポンス比較部67は、レスポンス保存部66とサーバ機能通信部62に、それぞれ既成Webアプリケーションのデータが更新されたことを通知する。上記両レスポンスの内容が等しい場合は、上記ステップS23の処理に戻り、サーバ通信部11に対して定期的なリロードの繰り返しによるポーリング処理を実行する。ただし、レスポンス比較部67がレスポンス保存部66から空のデータを取り出したとき、レスポンス比較部67は、ブラウザ機能通信部61から受け取ったレスポンスの内容を、レスポンス保存部66とレスポンス編集部68に渡す。
ステップS25において、レスポンス保存部66は、上記ステップS24において受け取ったレスポンスの内容を保存する。すなわち、レスポンス保存部66は、レスポンス比較部67の比較結果を待って、保存内容を更新する。
ステップS26において、レスポンス編集部68は、上記ステップS24において受け取ったレスポンスの内容を編集する。ここでの編集内容は、クライアント通信部51がこのレスポンスを受信すると、クライント通信部51からサーバ機能通信部62に、サーバプッシュを受信するためのLongPollリクエストを送信させるようにすることと、リロード機能を無効化するための、リロードを行う記述の消去やコメントアウトすることと、クライアント通信部51がサーバ機能通信部62からデータをプッシュされると、リロードを行うようにさせることである。
ステップS27において、サーバ機能通信部62は、上記ステップS26において受け取ったレスポンスの内容を、ステップS21で受信したリクエストに対するレスポンスとしてクライアント通信部51に送信する。
ステップS28において、クライアント通信部51は、上記ステップS27においてサーバ機能通信部62が送信したレスポンスを受信し、受信したレスポンスの内容を、ブラウザの機能により表示する。
ステップS29において、クライアント通信部51は、サーバ機能通信部62に、サーバプッシュを受信するためのLongPollリクエストを送信する。
ステップS30において、レスポンス保存部66は、上記ステップS24において既成Webアプリケーションのデータが更新されたことを通知されると、保存しているレスポンスの内容を消去する(保存内容を空にする)。
ステップS31において、サーバ機能通信部62は、上記ステップS24において既成Webアプリケーションのデータが更新されたことを通知されると、クライアント通信部51に既成Webアプリケーションのデータが更新されたことを示すデータをプッシュする。
ステップS32において、クライアント通信部51は、上記ステップS31においてデータをプッシュされると、リクエストをサーバ機能通信部に送信する。この後、上記ステップS21に戻って上記した処理が繰り返し実行される。
上記した中間システム60の処理により、クライアント50に対して、サーバプッシュによる更新通知機能が提供される。
本発明の第1実施形態に係る中間システムの機能構成を示すブロック図。 上記第1実施形態に係る中間システムの通信手順を示すシーケンス図。 上記第1実施形態に係る中間システムの処理手順を示すフローチャート。 本発明の第2実施形態に係る中間システムの機能構成を示すブロック図。 上記第2実施形態に係る中間システムの処理手順を示すフローチャート。
符号の説明
10,40…情報提供サーバ、11,41…サーバ通信部、20,50…情報表示クライアント、21,51…クライアント通信部、30,60…中間システム、31,61…ブラウザ機能通信部、32,62…サーバ機能通信部、33,63…リクエスト保存部、35,65…レスポンス解析・編集機能部、36,66…レスポンス保存部、37,67…レスポンス比較部、38,68…レスポンス編集部。

Claims (7)

  1. サーバプッシュによる更新通知機能をもたない情報提供サーバと、このサーバに情報提供を要求する情報表示クライアントとの間に介在される中間システムであって、
    前記中間システムは、前記クライアントとの間で通信を行うサーバ機能通信部と、前記サーバとの間で通信を行うブラウザ機能通信部と、前記ブラウザ機能通信部から受けたレスポンスを解析し編集して前記サーバ機能通信部に渡すレスポンス解析・編集機能部とを具備し、
    前記サーバ機能通信部は、前記クライアントから受信したサーバプッシュに関係しない既定リクエストに対して、サーバプッシュによるデータ要求の発行を促す内容を記述したレスポンスを送信し、前記クライアントから前記レスポンスの内容に従うサーバプッシュを利用する内容を記述した特定リクエストを受信する通信手段を具備し、
    前記ブラウザ機能通信部は、前記サーバ機能通信部が受信した既定リクエストを保存し、当該既定リクエストにより前記サーバに対してポーリング処理を実行する通信手段を具備し、
    前記レスポンス解析・編集機能部は、前記サーバ機能通信部が受信した特定リクエストに従い、前記ブラウザ機能通信部に対して前記ポーリング処理を実行させ、当該処理において、ポーリングの周期毎に、受信したレスポンスを保存し、前回受信したレスポンスの内容と今回受信したレスポンスの内容とを比較して、レスポンスの内容が更新されたか否かを監視し、レスポンスの内容が更新されたとき、当該レスポンスの内容を編集し、編集したレスポンスを前記サーバ機能通信部からプッシュさせる処理手段を具備して、
    前記クライアントに対し、サーバプッシュによる更新通知機能を提供することを特徴とする中間システム。
  2. 前記レスポンスの内容を編集する処理には、前記クライアントに対してリロードを回避させる内容を記述する処理が含まれる請求項1に記載の中間システム。
  3. サーバプッシュによる更新通知機能をもたない情報提供サーバと、このサーバに情報提供を要求する情報表示クライアントとの間に介在される中間システムであって、
    前記中間システムは、前記クライアントとの間で通信を行うサーバ機能通信部と、前記サーバとの間で通信を行うブラウザ機能通信部と、前記ブラウザ機能通信部から受けたレスポンスを解析し編集して前記サーバ機能通信部に渡すレスポンス解析・編集機能部とを具備し、
    前記クライアントは、前記サーバ機能通信部からレスポンスの更新が通知されたとき、サーバプッシュに関係しない既定リクエストを前記サーバ機能通信部に送信し、前記サーバ機能通信部から更新されたレスポンスを受けたとき、当該レスポンスの内容に従いサーバプッシュを利用する内容を記述した特定レスポンスを前記サーバ機能通信部に送信する通信手段を具備し、
    前記ブラウザ機能通信部は、前記サーバ機能通信部が受信した既定リクエストを保存し、当該既定リクエストにより前記サーバに対してポーリング処理を実行する通信手段を具備し、
    前記レスポンス解析・編集機能部は、前記サーバ機能通信部が受信した前記特定レスポンスに従い、前記ブラウザ機能通信部に対して前記ポーリング処理を実行させ、当該処理の周期毎に、受信したレスポンスを保存し、前回受信したレスポンスの内容と今回受信したレスポンスの内容とを比較して、レスポンスの内容が更新されたか否かを監視し、レスポンスの内容が更新されたとき、当該レスポンスの内容を編集し、レスポンスの内容が更新されたことを前記サーバ機能通信部から前記クライアントに通知させた後、前記既定リクエストの受信を待って、前記編集したレスポンスを前記サーバ機能通信部からプッシュさせる一連の処理手段を具備して、
    前記クライアントに対し、サーバプッシュによる表示の更新処理を行うことを特徴とする中間システム。
  4. 前記ポーリング処理には、
    前記比較の結果、レスポンスの内容が等しいとき、前記保存した既定リクエストを用いてポーリング処理を実行し、
    前記内容が異なるとき、前記保存したレスポンスの内容を破棄して、前記サーバ機能通信部から前記クライアントに、レスポンスの内容が更新された旨の更新通知を送信させ、
    前記保存したレスポンスの内容が破棄されているとき、前記新たなレスポンスを保存して、当該レスポンスの内容を編集し、前記サーバ機能通信部から前記クライアントに送信させる処理が含まれる請求項3に記載の中間システム。
  5. 前記レスポンスの内容を編集する処理には、サーバプッシュによるデータ要求の発行を促す内容を記述する処理と、リロード機能を無効化するための内容を記述する処理が含まれる請求項4に記載の中間システム。
  6. サーバプッシュによる自動更新機能をもたないWebアプリケーションにより構成された情報提供サーバをイベント駆動型サーバとして機能させるためのサーバ拡張プログラムであって、
    ブラウザからサーバプッシュに関係しない既定リクエストを受信し、当該既定リクエストを保存する機能と、
    前記ブラウザから受信した前記既定リクエストに対して、サーバプッシュによるデータ要求の発行を促す内容を記述したレスポンスを前記ブラウザに送信する機能と、
    前記ブラウザから前記レスポンスの内容に従うサーバプッシュを利用する内容を記述した特定リクエストを受信して、前記保存した既定リクエストによりポーリング処理を実行し、当該処理の周期毎に、受信したレスポンスを保存し、前回受信したレスポンスの内容と今回受信したレスポンスの内容とを比較して、レスポンスの内容を監視し、サーバ上でイベントが起こったか否かを周期的に確認する機能と、
    前記レスポンスの内容が更新されたとき、当該レスポンスの内容を編集し、リロードを無効化するための内容を記述した編集後のレスポンスを前記ブラウザにプッシュする機能と、
    をコンピュータに実現させるためのイベント駆動型サーバ拡張プログラム。
  7. サーバプッシュによる自動更新機能をもたないWebアプリケーションにより構成された情報提供サーバをイベント駆動型サーバとして機能させるためのサーバ拡張プログラムであって、
    ブラウザから受信したサーバプッシュに関係しない既定リクエストを受信し、当該既定リクエストを保存する機能と、
    サーバから受信したレスポンスを保存手段に保存する機能と、
    前記既定リクエストを前記サーバに送信して、前記サーバからレスポンスを受信し、受信したレスポンスの内容を前記保存手段の保存内容と比較する機能と、
    前記レスポンスの内容の比較の結果、レスポンスの内容が異なるとき、前記保存手段の内容を空データにし、前記ブラウザにレスポンスの内容が更新されたことを通知して、前記ブラウザから既定リクエストを受信する機能と、
    前記レスポンスの内容の比較の結果、前記保存手段の保存内容が空データであるとき、前記受信したレスポンスを前記保存手段に保存して、前記受信したレスポンスの内容を編集し、サーバプッシュによるデータ要求の発行を促す内容を記述した編集後のレスポンスを前記ブラウザに送信して、前記ブラウザから前記編集後のレスポンスの内容に従うサーバプッシュを利用する内容を記述した特定リクエストを受信する機能と、
    前記レスポンスの内容の比較の結果、レスポンスの内容が等しいとき、前記特定リクエストに従い、前記保存した既定リクエストによりポーリング処理を実行し、当該処理の周期毎に前記レスポンスの内容の比較機能による処理を実行して、サーバ上でイベントが起こったか否かを周期的に確認する機能と、
    をコンピュータに実現させるためのイベント駆動型サーバ拡張プログラム。
JP2008222618A 2008-08-29 2008-08-29 中間システムおよびイベント駆動型サーバ拡張プログラム Pending JP2010055560A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008222618A JP2010055560A (ja) 2008-08-29 2008-08-29 中間システムおよびイベント駆動型サーバ拡張プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008222618A JP2010055560A (ja) 2008-08-29 2008-08-29 中間システムおよびイベント駆動型サーバ拡張プログラム

Publications (1)

Publication Number Publication Date
JP2010055560A true JP2010055560A (ja) 2010-03-11

Family

ID=42071365

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008222618A Pending JP2010055560A (ja) 2008-08-29 2008-08-29 中間システムおよびイベント駆動型サーバ拡張プログラム

Country Status (1)

Country Link
JP (1) JP2010055560A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011192162A (ja) * 2010-03-16 2011-09-29 Nec Corp サーバ装置、省電力制御方法、省電力制御プログラム及びクライアントサーバシステム
JP2012213048A (ja) * 2011-03-31 2012-11-01 Saxa Inc 電話制御装置、電話システム、および着信制御方法
JP2014149759A (ja) * 2013-02-04 2014-08-21 Web Service Development Inc ネットワーク通信システム
US8825703B2 (en) 2011-03-16 2014-09-02 Fujitsu Limited Control device, control method, and storage medium
JP2017134827A (ja) * 2016-01-25 2017-08-03 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation ロングポーリング処理方法およびシステム、並びに記録媒体
JP2017182103A (ja) * 2016-03-28 2017-10-05 パナソニックIpマネジメント株式会社 指示情報通知システムと端末装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041353A (ja) * 2000-07-28 2002-02-08 Toppan Printing Co Ltd 自動更新システム
JP2002041377A (ja) * 2000-07-31 2002-02-08 Iwao Akizuki データ通信システムおよびこれに用いるデータ処理装置、ブラウザを利用したセッション維持方法、記録媒体
JP2002073455A (ja) * 2000-09-04 2002-03-12 Sony Corp Webページ更新通知方法、クライアントサービスサーバおよびプログラム格納媒体

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002041353A (ja) * 2000-07-28 2002-02-08 Toppan Printing Co Ltd 自動更新システム
JP2002041377A (ja) * 2000-07-31 2002-02-08 Iwao Akizuki データ通信システムおよびこれに用いるデータ処理装置、ブラウザを利用したセッション維持方法、記録媒体
JP2002073455A (ja) * 2000-09-04 2002-03-12 Sony Corp Webページ更新通知方法、クライアントサービスサーバおよびプログラム格納媒体

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011192162A (ja) * 2010-03-16 2011-09-29 Nec Corp サーバ装置、省電力制御方法、省電力制御プログラム及びクライアントサーバシステム
US8825703B2 (en) 2011-03-16 2014-09-02 Fujitsu Limited Control device, control method, and storage medium
JP2012213048A (ja) * 2011-03-31 2012-11-01 Saxa Inc 電話制御装置、電話システム、および着信制御方法
JP2014149759A (ja) * 2013-02-04 2014-08-21 Web Service Development Inc ネットワーク通信システム
JP2017134827A (ja) * 2016-01-25 2017-08-03 エヌエイチエヌ エンターテインメント コーポレーションNHN Entertainment Corporation ロングポーリング処理方法およびシステム、並びに記録媒体
JP2017182103A (ja) * 2016-03-28 2017-10-05 パナソニックIpマネジメント株式会社 指示情報通知システムと端末装置

Similar Documents

Publication Publication Date Title
US7937361B2 (en) Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device
US8725679B2 (en) Client side caching of synchronized data
US6785740B1 (en) Text-messaging server with automatic conversion of keywords into hyperlinks to external files on a network
JP4781897B2 (ja) センサイベント制御装置
KR20110086840A (ko) 개방형 개체 추출 시스템
JP2010055560A (ja) 中間システムおよびイベント駆動型サーバ拡張プログラム
US9092538B2 (en) System and method for determining the data model used to create a web page
US20120124175A1 (en) Atom-based really simple syndication (rss) content reader system and method, and atom-based rss content providing system and method
JP2009104381A (ja) キャッシュ制御プログラム、該プログラムを記録した記録媒体、キャッシュ制御装置、およびキャッシュ制御方法
US20150067037A1 (en) Communication apparatus and communication method
US20080133584A1 (en) Annotation management program, device, method and annotation display program, device, method
US20150207867A1 (en) Information processing terminal and control method
US9690636B2 (en) Apparatus and method of data communication between web applications
US9141699B2 (en) Determining data feed usage
GB2543279A (en) Methods, devices and computer programs for optimizing use of bandwidth when pushing data in a network environment comprising cache servers
JP4215710B2 (ja) クライアントへのデータ送信および更新データの実行制御方法
JP4859873B2 (ja) コメント表示システム、その方法、管理サーバおよびプログラム
JP5141118B2 (ja) メタデータカスタマイズ方法
US8146101B2 (en) Method of processing notifications provided by a routine, and associated handheld electronic device
US7644149B2 (en) Method of reflecting on another device an addition to a browser cache on a handheld electronic device, and associated device
JP2009288970A (ja) 情報端末、情報提供方法及び情報提供プログラム
JP2015090551A (ja) 情報処理システム、プロキシ装置、情報処理方法およびプログラムに関する。
KR20130050396A (ko) 사용자 에이전트 정보를 이용하여 rss 컨텐츠의 업데이트 데이터를 제공하는 시스템 및 그 방법
CA2649596C (en) Method of reflecting on another device a change to a browser cache on a handheld electronic device, and associated device
CA2649367C (en) Method of processing notifications provided by a routine, and associated handheld electronic device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110308

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110509

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110531