JP4748819B2 - クライアントプログラム、端末、方法、サーバシステムおよびサーバプログラム - Google Patents

クライアントプログラム、端末、方法、サーバシステムおよびサーバプログラム Download PDF

Info

Publication number
JP4748819B2
JP4748819B2 JP2009017290A JP2009017290A JP4748819B2 JP 4748819 B2 JP4748819 B2 JP 4748819B2 JP 2009017290 A JP2009017290 A JP 2009017290A JP 2009017290 A JP2009017290 A JP 2009017290A JP 4748819 B2 JP4748819 B2 JP 4748819B2
Authority
JP
Japan
Prior art keywords
terminal
event
unit
link destination
server device
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.)
Expired - Fee Related
Application number
JP2009017290A
Other languages
English (en)
Other versions
JP2010176336A (ja
Inventor
敦史 野口
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2009017290A priority Critical patent/JP4748819B2/ja
Priority to TW099100076A priority patent/TW201109942A/zh
Priority to US12/694,424 priority patent/US20100192071A1/en
Priority to CN201010104397A priority patent/CN101789971A/zh
Publication of JP2010176336A publication Critical patent/JP2010176336A/ja
Application granted granted Critical
Publication of JP4748819B2 publication Critical patent/JP4748819B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明は、複数の端末によりダウンロードされて実行されるクライアントプログラム、端末、方法、サーバシステムおよびサーバプログラムに関する。
従来、ウェブコンテンツ(例えばHTMLファイル)を表示するウェブブラウザが知られている(例えば、特許文献1,2参照。)。また、サーバにおいて発生したイベントを、リアルタイムでウェブブラウザに通知する機能も知られている(例えば非特許文献1参照。)。
特開2005−56163号公報 特許第3995968号
須江信洋,田中孝清、「WebSphere Application Server Feature Pack for Web2.0 "06 WebMessaging"」、日本IBMホームページ、2008年5月21日、[平成21年1月20日検索]、インターネット<URL:http://download.boulder.ibm.com/ibmdl/pub/software/dw/jp/websphere/was/was_web20fep_ws/FPWEB20_06WebMessaging.pdf>
ところで、例えば、2つのウェブブラウザから同じURL(Uniform Resource Locator)のウェブコンテンツ(例えばHTMLファイル)にアクセスした場合、ウェブブラウザにより表示された画面に対するユーザによる操作は、それぞれのウェブブラウザ内で完結する。従って、1つのウェブブラウザに対する1回の操作により、複数のウェブブラウザにより表示されたウェブコンテンツの画面を同期して遷移させることはできなかった。つまり、ある操作を一方のウェブブラウザに対して行い、更に、同一の操作を他方のウェブブラウザに対して更に行わなければ、両者のウェブブラウザ上において動作するウェブコンテンツの画面を同一にすることはできなかった。
また、コンピュータの操作画面を共有するためのユーティリティツールとして、VNC(Virtual Network Connection)およびリモートデスクトップ(マイクロソフトウィンドウズ(登録商標)に付属した機能)等が知られている。しかし、これらのユーティリティツールは、画面を画像データとして送受信するので、ネットワークの負荷が大きく、画像の再描画のための処理時間が長かった。
また、これらのユーティリティツールは、専用のアプリケーションをオペレーションシステムにインストールしなければ使用することができなかった。従って、このようなユーティリティツールと同様の機能をウェブブラウザに適用しても、描画のための処理時間が長くなり、また、既存のウェブブラウザを置き換えなければならなく、ユーザの負担が大きくなってしまう。
上記課題を解決するために、本発明の第1の態様においては、複数の端末のそれぞれによりダウンロードされて実行され、前記複数の端末におけるウェブブラウザの表示画面を同期させるクライアントプログラムであって、当該クライアントプログラムは、前記複数の端末のそれぞれを、当該端末上のそれぞれにおけるウェブブラウザの表示画面上においてユーザが行った操作に応じて発生するイベントを、サーバ装置に送信するイベント送信部と、当該端末および他の前記端末上で発生したイベントを、前記サーバ装置を介して受信するイベント受信部と、当該端末上に表示した表示画面を、前記サーバ装置を介して受信した当該端末および他の前記端末上で発生したイベントに応じた画面に更新させる画面更新部と、リンク先アドレスのウェブコンテンツをリバースプロキシサーバを介して取得する取得部と、前記取得部により取得されたウェブコンテンツ内のリンク先アドレスを指定するコードを、前記イベント送信部を呼び出して前記リンク先アドレスのウェブコンテンツを取得するコードに変換するリンク先変換部として機能させ、前記画面更新部は、当該端末上に表示した表示画面を、前記リンク先変換部により変換後の前記ウェブコンテンツに応じた画面に更新させ、前記イベント送信部は、ユーザにより前記ウェブコンテンツ内の前記リンクが選択されたことに応じて呼び出され、前記リンクが選択されたことを前記サーバ装置を介して他の前記端末へと通知し、前記イベント受信部は、他の前記端末上で前記リンクが選択されたことの通知を前記サーバ装置を介して受けたことに応じて、前記取得部を呼び出すクライアントプログラムを提供する。
本発明の第2の態様においては、ウェブブラウザを実行する端末であって、複数の端末におけるウェブブラウザの表示画面を同期させるクライアントプログラムを、当該端末がサーバ装置からダウンロードして実行することにより実現されるクライアントプログラム実行部を備え、前記クライアントプログラム実行部は、当該端末上のそれぞれにおけるウェブブラウザの表示画面上においてユーザが行った操作に応じて発生するイベントを、サーバ装置に送信するイベント送信部と、当該端末および他の前記端末上で発生したイベントを、前記サーバ装置を介して受信するイベント受信部と、当該端末上に表示した表示画面を、前記サーバ装置を介して受信した当該端末および他の前記端末上で発生したイベントに応じた画面に更新させる画面更新部と、リンク先アドレスのウェブコンテンツをリバースプロキシサーバを介して取得する取得部と、前記取得部により取得されたウェブコンテンツ内のリンク先アドレスを指定するコードを、前記イベント送信部を呼び出して前記リンク先アドレスのウェブコンテンツを取得するコードに変換するリンク先変換部とを備え、前記画面更新部は、当該端末上に表示した表示画面を、前記リンク先変換部により変換後の前記ウェブコンテンツに応じた画面に更新させ、前記イベント送信部は、ユーザにより前記ウェブコンテンツ内の前記リンクが選択されたことに応じて呼び出され、前記リンクが選択されたことを前記サーバ装置を介して他の前記端末へと通知し、前記イベント受信部は、他の前記端末上で前記リンクが選択されたことの通知を前記サーバ装置を介して受けたことに応じて、前記取得部を呼び出す端末を提供する。
本発明の第3の態様においては、複数の端末におけるウェブブラウザの表示画面を同期させる方法であって、前記複数の端末のそれぞれが、当該端末上におけるウェブブラウザの表示画面上においてユーザが行った操作に応じて発生するイベントを、サーバ装置に送信し、前記端末が、一の端末および他の端末上で発生したイベントを、前記サーバ装置を介して受信し、前記端末が、当該他の端末上に表示した表示画面を、前記サーバ装置を介して受信した前記一の端末および他の端末上で発生したイベントに応じた画面に更新し、前記一の端末が、リンク先アドレスのウェブコンテンツをリバースプロキシサーバを介して取得し、前記一の端末が、取得したウェブコンテンツ内のリンク先アドレスを指定するコードを、前記リンク先アドレスのウェブコンテンツを取得するコードに変換し、前記一の端末が、当該端末上に表示した表示画面を、変換後の前記ウェブコンテンツに応じた画面に更新し、前記一の端末が、ユーザにより前記ウェブコンテンツ内の前記リンクが選択されたことに応じて、前記リンクが選択されたことを前記サーバ装置を介して前記他の端末へと通知し、前記一の端末が、前記他の端末上で前記リンクが選択されたことの通知を前記サーバ装置を介して受けたことに応じて、リンク先アドレスのウェブコンテンツをリバースプロキシサーバを介して取得する方法を提供する。
本発明の第4の態様においては、第2の態様における複数の端末のそれぞれにおけるウェブブラウザの表示画面を同期させるサーバシステムであって、それぞれの前記端末上で動作するウェブブラウザからの要求に応じて、当該端末上で発生したイベントを当該サーバシステムに通知する機能を含むクライアントプログラムを当該端末へ送信するプログラム送信部と、一の前記端末からイベントの通知を受信したことに応じて、他の前記端末に当該イベントを通知して、前記他の端末におけるウェブブラウザの表示画面を当該イベントに応じて更新させるイベント転送部と、を備えるサーバシステムを提供する。
本発明の第5の態様においては、コンピュータを、第2の態様における複数の端末のそれぞれにおけるウェブブラウザの表示画面を同期させるサーバシステムとして機能させるサーバプログラムであって、前記サーバプログラムは、前記コンピュータを、それぞれの前記端末上で動作するウェブブラウザからの要求に応じて、当該端末上で発生したイベントを当該サーバシステムに通知する機能を含むクライアントプログラムを当該端末へ送信するプログラム送信部と、一の前記端末からイベントの通知を受信したことに応じて、他の前記端末に当該イベントを通知して、前記他の端末におけるウェブブラウザの表示画面を当該イベントに応じて更新させるイベント転送部と、として機能させるサーバプログラムを提供する。
本発明の第6の態様においては、第2の態様における複数の端末のそれぞれにおけるウェブブラウザの表示画面を同期させる方法であって、サーバ装置が、それぞれの前記端末上で動作するウェブブラウザからの要求に応じて、当該端末上で発生したイベントを当該サーバ装置に通知する機能を含むクライアントプログラムを当該端末へ送信し、前記サーバ装置が、一の前記端末からイベントの通知を受信したことに応じて、他の前記端末に当該イベントを通知して、前記他の端末におけるウェブブラウザの表示画面を当該イベントに応じて更新させる方法を提供する。
なお、上記の発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの特徴群のサブコンビネーションもまた、発明となりうる。
図1は、本実施形態に係るコンピュータシステム10の構成を示す。 図2は、本実施形態に係るウェブコンテンツおよびウェブブラウザの構成を示す。 図3は、サーバ装置20および端末30の機能構成を示す。 図4は、複数の端末30がサーバ装置20により提供されたウェブページにアクセスする場合の処理フローの一例を示す。 図5は、本実施形態の第1変形例に係るサーバ装置20および端末30の機能構成を示す。 図6は、本実施形態の第2変形例に係るサーバ装置20および端末30の機能構成を示す。 図7は、複数の端末30がサーバ装置20により提供されたウェブページにアクセスする場合の処理フローの一例を示す。 図8は、本実施形態の第3変形例に係るサーバ装置20および端末30の機能構成を示す。 図9は、本発明の実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
図1は、本実施形態に係るコンピュータシステム10の構成を示す。本実施形態に係るコンピュータシステム10は、サーバ装置20と、複数の端末30とを備える。サーバ装置20は、複数の端末30にウェブコンテンツを提供する。サーバ装置20は、一例として、ネットワークを介して、HTMLファイルであるウェブページを提供する。
複数の端末30のそれぞれは、ウェブブラウザを実行する。ウェブブラウザを実行した端末30は、ユーザの操作に応じて、サーバ装置20からウェブコンテンツを取得して実行し、このウェブコンテンツにより提供される情報を表示する。端末30は、一例として、ウェブページをダウンロードして、ウェブブラウザの表示画面にウェブページを表示する。
図2は、本実施形態に係るウェブコンテンツおよびウェブブラウザの構成を示す。ウェブコンテンツは、クライアントプログラムを含む。クライアントプログラムは、複数の端末30のそれぞれによりダウンロードされて実行され、複数の端末30におけるウェブブラウザの表示画面を同期させる。
クライアントプログラムは、JavaScriptコード等のウェブブラウザが実行可能なコードにより記述されたプログラムである。クライアントプログラムは、一例として、例えばHTMLファイルであるウェブページに挿入される。また、クライアントプログラムは、一例として、ウェブコンテンツの提供者により作成される。
ウェブブラウザは、クライアントプログラムをダウンロードして実行して、端末30をクライアントプログラムを実行するプログラム処理部として機能させる。プログラム処理部は、クライアントプログラムを呼び出して、クライアントプログラムによる処理結果を受け取る。
図3は、サーバ装置20および端末30の機能構成を示す。端末30は、ブラウザ実行部60と、クライアントプログラム実行部70とを備える。
ブラウザ実行部60は、端末30がウェブブラウザを実行することにより実現される。ブラウザ実行部60は、サーバ装置20からウェブコンテンツを取得して、このウェブコンテンツにより提供される情報をウェブブラウザの表示画面上に表示する。さらに、ブラウザ実行部60は、取得したウェブコンテンツに含まれるクライアントプログラムを端末30に実行させる。
クライアントプログラム実行部70は、端末30がウェブコンテンツに含まれるクライアントプログラムを実行することにより実現される。クライアントプログラム実行部70は、イベント処理部72と、イベント送信部74と、イベント受信部76と、画面更新部78とを有する。
イベント処理部72は、当該端末30上で発生したイベントを取得する。イベント処理部72は、一例として、ウェブブラウザの表示画面上においてユーザが行った操作に応じて発生するイベントを取得する。イベント処理部72は、ユーザが行った操作に応じたイベントとして、例えば、ボタン操作、キー操作、文字入力操作、ポインタ移動操作を取得する。
さらに、イベント処理部72は、一例として、取得したイベントの発生を通知するメッセージを生成する。また、イベント処理部72は、一例として、メッセージに、取得したイベントの内容およびパラメータを含める。例えば、イベント処理部72は、文字入力操作のイベントが発生した場合には、入力された文字の文字コードをパラメータとしてメッセージに含める。また、例えば、イベント処理部72は、ポインタ移動操作のイベントが発生した場合には、ポインタの座標をパラメータとしてメッセージに含める。
イベント送信部74は、当該端末30上で発生したイベントを、サーバ装置20に送信する。イベント送信部74は、一例として、イベント処理部72によりメッセージ化されたイベントをサーバ装置20に送信する。
イベント受信部76は、当該端末30および他の端末30上で発生したイベントを、サーバ装置20を介して受信する。イベント受信部76は、一例として、メッセージ化されたイベントを受信する。
画面更新部78は、当該端末30上に表示した表示画面を、サーバ装置20を介して受信した当該端末30および他の端末30上で発生したイベントに応じた画面に更新させる。画面更新部78は、一例として、イベント受信部76により受信されたメッセージに含まれたイベントの内容およびパラメータを、ブラウザ実行部60に対して与えて、ウェブブラウザの表示画面上をイベントの内容およびパラメータに応じた画面に更新する。
これにより、ブラウザ実行部60は、当該端末30上に表示された表示画面を、他の端末30に表示された表示画面と同一とすることができる。例えば、ブラウザ実行部60は、一の端末30のウェブブラウザに入力された文字を、当該一の端末30および他の端末30の全てのウェブブラウザの表示画面に表示することができる。また、例えば、ブラウザ実行部60は、一の端末30のウェブブラウザのポインタの表示位置を、当該一の端末30および他の端末30の全てのウェブブラウザの表示画面において同一とすることができる。
サーバ装置20は、プログラム送信部82と、イベント転送部84とを有する。プログラム送信部82は、それぞれの端末30上で動作するウェブブラウザからの要求に応じて、当該端末30上で発生したイベントを当該サーバ装置20に通知する機能を含むクライアントプログラムを当該端末30に送信する。より具体的には、プログラム送信部82は、複数の端末30のそれぞれを、イベント処理部72、イベント送信部74、イベント受信部76および画面更新部78として機能させるクライアントプログラムを送信する。
イベント転送部84は、一の端末30からイベントの通知を受信したことに応じて、当該端末30および他の端末30に当該イベントを通知して、当該端末30および他の端末30におけるウェブブラウザの表示画面を当該イベントに応じて更新させる。イベント転送部84は、一例として、一の端末30からイベントの発生を通知するメッセージを受信し、受信したメッセージを当該端末30および他の端末30に転送する。
図4は、複数の端末30がサーバ装置20により提供されたウェブページにアクセスする場合の処理フローの一例を示す。まず、一の端末30のブラウザ実行部60は、サーバ装置20にアクセスして(S11)、ウェブページをダウンロードする(S12)。このウェブページには、クライアントプログラムが含まれている。従って、端末30のブラウザ実行部60は、クライアントプログラムも同時にダウンロードすることができる。
続いて、端末30のブラウザ実行部60は、ダウンロードしたクライアントプログラムを実行する。これにより、端末30は、クライアントプログラム実行部70を実装することができる。
続いて、端末30のクライアントプログラム実行部70は、サーバ装置20に対してサブスクライブをする(S13)。クライアントプログラム実行部70は、一例として、イベントを受信したことにより呼び出されるコールバック関数を登録する。これにより、サーバ装置20は、何れかの端末30からイベントを受信すると、端末30のイベント受信部76を呼び出すことができる。そして、他の端末30も、同様に以上のステップS11からS13の処理を実行する。
続いて、一の端末30においてイベントが発生すると、当該一の端末30のブラウザ実行部60は、イベント処理部72を呼び出す。イベント処理部72は、ブラウザ実行部60から発生したイベントの内容およびパラメータを取得する。続いて、イベント処理部72は、イベントの内容およびパラメータを示すメッセージを生成して、イベント送信部74を呼び出す。そして、イベント送信部74は、イベント処理部72によりメッセージ化されたイベントを、サーバ装置20のイベント転送部84へと送信する(S14)。
続いて、サーバ装置20のイベント転送部84は、一の端末30からイベントを受信すると、サブスクライブをした全ての端末30に対して、受信したイベントを転送する(S15)。サーバ装置20のイベント転送部84は、一例として、一の端末30からイベントを受信すると、当該一の端末30および他の端末30のイベント受信部76を呼び出す。
続いて、一の端末30および他の端末30のそれぞれのイベント受信部76は、イベントを受信すると、画面更新部78を呼び出す。画面更新部78は、ウェブページ上に表示された表示画面を、サーバ装置20により転送されたイベントの内容およびパラメータに応じた画面に更新する(S16)。そして、以後、各端末30は、何れかの端末30においてイベントが発生する毎に、以上のステップS14からステップS16の処理を実行する。
以上のようなサーバ装置20および端末30によれば、一の端末30においてイベントが発生したことに応じて、複数の端末30のウェブブラウザの表示画面を同期して更新することができる。さらに、このようなサーバ装置20および端末30によれば、ウェブブラウザにおいて発生したイベントの内容およびパラメータを示すメッセージを転送するので、やり取りする情報量を少なくして、画面の更新に要する時間を短くすることができる。また、更に、このようなサーバ装置20および端末30によれば、専用のアプリケーションを端末30にインストールさせずに、既存のウェブブラウザによりクライアントプログラムをダウンロードして実行させるので、ユーザの負担を少なくすることができる。
なお、サーバ装置20および複数の端末30は、予め指定されたイベントについてのみ表示画面を同期して更新させ、他のイベントについては表示画面を同期して更新させない構成であってもよい。この場合、一の端末30は、指定されたイベントが発生した場合には当該イベントをサーバ装置20を介して他の端末30へと転送し、指定されていないイベントが発生した場合には当該イベントをサーバ装置20を介して他の端末30へと転送せずに自身のウェブブラウザの表示画面を更新する。
この場合において、サーバ装置20および複数の端末30は、同期して更新させるイベントを、端末30毎に指定できる構成であってもよい。例えば、一の端末30は、サブスクライブに先立って、同期して更新させるイベントをユーザに選択させ、選択されたイベントについてのみイベント受信部76が呼び出されるようにサーバ装置20に対してサブスクライブをしてよい。これにより、サーバ装置20は、他の端末30において選択されたイベントが発生した場合には当該一の端末30に対してイベントを転送し、他の端末30において選択されていないイベントが発生した場合には当該一の端末30に対してイベントを転送しないことができる。
図5は、本実施形態の第1変形例に係るサーバ装置20および端末30の機能構成を示す。本変形例に係るサーバ装置20および端末30は、図2に示された本実施形態に係るサーバ装置20および端末30と略同一の構成および機能を採るので、図2に示された部材と略同一の構成および機能の部材に同一の符号を付け、以下相違点を除き説明を省略する。
本変形例に係るクライアントプログラム実行部70は、バッファ部88を更に有する。バッファ部88は、当該端末30上で発生したイベントを1以上蓄積する。バッファ部88は、一例として、イベント処理部72により生成されたメッセージを蓄積する。
イベント送信部74は、当該端末30のユーザから他の端末30におけるウェブブラウザの表示画面を当該端末30におけるウェブブラウザの表示画面と同期させる指示を受けたことに応じて、バッファ部88に蓄積された1以上のイベントを、サーバ装置20に送信する。このような本変形例に係る端末30によれば、ユーザが希望するタイミングにおいて他の端末30のウェブブラウザの表示画面を更新することができる。
また、本変形例において、画面更新部78は、当該端末30上で発生したイベントをイベント処理部72から取得して、ウェブブラウザの表示画面を取得したイベントに応じた画面に更新させる。この場合、イベント送信部74は、当該端末30上で発生したイベントに、識別情報を対応付けて、サーバ装置20に送信する。識別情報は、当該端末30および当該端末30上で動作するウェブブラウザの少なくとも一方を、他の端末30および他の端末30上で動作するウェブブラウザと識別する情報である。
イベント受信部76は、当該端末30および他の端末30上で発生したイベントを、当該イベントに対応付けられた識別情報と共に受信する。そして、画面更新部78は、サーバ装置20を介してイベント受信部76が受信した、当該端末30および当該端末30上で動作するウェブブラウザの少なくとも一方の識別情報と合致しない識別情報に対応付けられたイベントを取得して、ウェブブラウザの表示画面を取得したイベントに応じた画面に更新させる。
これにより、本変形例に係るサーバ装置20および端末30は、当該端末30において発生したイベントについては、サーバ装置20を介さずに画面を更新することができる。従って、本変形例に係るサーバ装置20および端末30は、イベントが発生してから画面が更新されるまでの応答時間を短くして、操作性を向上することができる。
図6は、本実施形態の第2変形例に係るサーバ装置20および端末30の機能構成を示す。本変形例に係るサーバ装置20および端末30は、図2に示された本実施形態に係るサーバ装置20および端末30と略同一の構成および機能を採るので、図2に示された部材と略同一の構成および機能の部材に同一の符号を付け、以下相違点を除き説明を省略する。
本変形例に係るコンピュータシステム10は、複数の端末30と、サーバシステム100を備える。サーバシステム100は、サーバ装置20と、サーバ装置20と同一ドメインのリバースプロキシサーバ90を有する。
リバースプロキシサーバ90は、端末30から、リンク先アドレスのウェブコンテンツを取得するための取得要求を受ける。リバースプロキシサーバ90は、取得要求を与えた端末30のウェブブラウザに代わって、外部のサーバ装置からリンク先アドレスのウェブコンテンツを取得して、端末30に送信する。このようなリバースプロキシサーバ90は、サーバ装置20と同一ドメインのアドレスにアクセスした端末30に対して、サーバ装置20と異なるドメインのアドレスのウェブコンテンツを提供することができる。
本変形例に係るクライアントプログラム実行部70は、取得部92と、リンク先変換部94とを更に有する。取得部92は、外部のサーバ装置のアドレスであるリンク先アドレスおよび取得要求をリバースプロキシサーバ90に対して与えて、リンク先アドレスのウェブコンテンツをリバースプロキシサーバ90を介して取得する。
リンク先変換部94は、取得部92により取得されたウェブコンテンツ内のリンク先アドレスを指定するコードを、イベント送信部74を呼び出してリンク先アドレスのウェブコンテンツを取得するコードに変換する。この場合において、リンク先変換部94は、リンク先アドレスのウェブコンテンツを取得するコードを、取得部92を呼び出すコードとする。
さらに、本変形例において、画面更新部78は、当該端末30上に表示した表示画面を、リンク先変換部94により変換後のウェブコンテンツに応じた画面に更新させる。また、イベント送信部74は、ユーザによりウェブコンテンツ内のリンクが選択されたことに応じて呼び出され、リンクが選択されたことをサーバ装置20を介して他の端末30へと通知する。イベント受信部76は、他の端末30上でリンクが選択されたことの通知をサーバ装置20を介して受けたことに応じて、取得部92を呼び出す。
また、本変形例において、サーバ装置20のプログラム送信部82は、それぞれの端末30上で動作するウェブブラウザからの要求に応じて、複数の端末30のそれぞれを、イベント処理部72、イベント送信部74、イベント受信部76、取得部92、リンク先変換部94および画面更新部78として機能させるクライアントプログラムを送信する。
さらに、プログラム送信部82は、リンクが選択されたことに応じて実行されるコードとして、イベント送信部74を呼び出してリンク先アドレスのウェブコンテンツを取得するコードを含むウェブコンテンツを、それぞれの端末30に対して送信する。この場合において、リンク先アドレスのウェブコンテンツを取得するコードは、取得部92を呼び出すコードとされている。
図7は、複数の端末30がサーバ装置20により提供されたウェブページにアクセスする場合の処理フローの一例を示す。まず、複数の端末30のそれぞれは、図4に示されたステップS11からS13の処理を実行する。
ここで、ステップS12において端末30がサーバ装置20からダウンロードしたウェブページ内には、リンクが選択されたことに応じて実行されるコードとして、イベント送信部74を呼び出してリンク先アドレスのウェブコンテンツを取得するコードが含まれている。この場合において、リンク先アドレスのウェブコンテンツを取得するコードは、取得部92を呼び出すコードとなっている。
本例に係るウェブページ内には、一例として、以下のようなコードが記述されている。
<a href=<javascript:sendEvent('loadHTMLFile','http://www.abcdef.com/'')> abcdefへのリンク</a>
当該コードは、ウェブページに表示された"abcdefへのリンク"という文字を、ユーザが選択した場合において実行される、JavaScriptによるコードを表す。当該コードにおいて、sendEvent()"は、イベント送信部74を呼び出すコードを表す。
当該コードにおいて、"'loadHTMLFile','http://www.abcdef.com/'"は、取得部92を呼び出して、"abcdefサイト"からウェブコンテンツを取得するコードを表す。"loadHTMLFile"は、取得部92を呼び出すコードを表す。"http://www.abcdef.com/"は、取得部92に与えられる引数であって、リンク先アドレスを表す。
一の端末30において、ユーザがこのようなウェブページ内のリンクを選択すると、ブラウザ実行部60は、イベント処理部72を呼び出す。一の端末30のイベント処理部72は、このようなリンクが選択されたことを示すメッセージを生成して、イベント送信部74を呼び出す。そして、一の端末30のイベント送信部74は、イベント処理部72により生成されたメッセージをサーバ装置20のイベント転送部84へと送信する(S21)。
続いて、サーバ装置20のイベント転送部84は、一の端末30からメッセージを受信すると、サブスクライブをした全ての端末30に対して、受信したメッセージを転送する(S22)。サーバ装置20のイベント転送部84は、一例として、一の端末30からメッセージを受信すると、当該一の端末端末30および他の端末30のイベント受信部76を呼び出す。
続いて、一の端末30および他の端末30のそれぞれのイベント受信部76は、メッセージを受信すると、メッセージに示されたリンク先アドレスを指定して取得部92を呼び出す。本例においては、イベント受信部76は、リンク先アドレスである"http://www.abcdef.com/"を引数として、取得部92を実現する"loadHTMLFile"関数を呼び出す。
続いて、一の端末30および他の端末30のそれぞれの取得部92は、指定されたリンク先アドレスのウェブページ等のデータを取得するリクエストを、リバースプロキシサーバ90に対して送信する(S23)。続いて、リクエストを受信したリバースプロキシサーバ90は、当該リクエストにより指定されたリンク先アドレスにアクセスして、リクエストされたデータを取得する(S24)。そして、リバースプロキシサーバ90は、取得したデータを含むレスポンスを、一の端末30および他の端末30のそれぞれの取得部92へ返信する(S25)。
なお、リバースプロキシサーバ90は、一例として、一の端末30からリンク先アドレスのウェブページ等のデータの取得要求を最初に受けたことに応じてリンク先アドレスの外部のサーバ装置からリンク先のデータを取得してキャッシュする。そして、リバースプロキシサーバ90は、一の端末30によるアクセス以降において、他の端末30からリンク先アドレスのデータの取得要求を受けたことに応じてキャッシュしたデータを返信する。これにより、リバースプロキシサーバ90は、外部のサーバ装置から効率良くデータを取得することができる。
続いて、一の端末30および他の端末30のそれぞれの取得部92は、リバースプロキシサーバ90からレスポンスを受け取ると、リンク先変換部94を呼び出す。一の端末30および他の端末30のそれぞれのリンク先変換部94は、取得部92により取得されたウェブページ内のリンク先アドレスを指定するコードを、イベント送信部74を呼び出してリンク先アドレスのデータ(ウェブページ等)のデータを取得するコードに変換する(S26)。この場合において、リンク先変換部94は、リンク先アドレスのデータを取得するコードを、取得部92を呼び出すコードとする。
例えば、取得部92が取得したウェブページ内に、以下のリンク先アドレスを指定するコードが記述されていたとする。当該コードは、ウェブページに表示された"ghijklへのリンク"という文字を、ユーザが選択した場合に、ウェブブラウザの表示画面を遷移させるアドレスを表す。
<a href="http://www.ghijkl.com/"> ghijklへのリンク</a>
リンク先変換部94は、このようなコードを、一例として、以下のように変換する。
<a href="javascript:sendEvent('loadHTMLFile',' ghijkl'') > ghijklへのリンク</a>
当該コードは、ウェブページに表示された"ghijklへのリンク"という文字を、ユーザが選択した場合において実行される、JavaScriptによるコードを表す。当該コードにおいて、sendEvent()"は、イベント送信部74を呼び出すコードを表す。
当該コードにおいて、"'loadHTMLFile','http://www.ghijkl.com/'"は、取得部92を呼び出して、"ghijklサイト"からウェブコンテンツを取得するコードを表す。"loadHTMLFile"は、取得部92を呼び出すコードを表す。"http://www.ghijkl.com/"は、取得部92に与えられる引数であって、リンク先アドレスを表す。
リンク先変換部94は、リンク先アドレスを指定するコードを変換すると、画面更新部78を呼び出す。そして、一の端末30および他の端末30のそれぞれの画面更新部78は、当該端末30上に表示した表示画面を、リンク先変換部94により変換後のウェブコンテンツに応じた画面に更新させる(S27)。
以上のような本変形例に係るサーバ装置20および端末30によれば、外部のサーバ装置から取得したデータをウェブブラウザの表示画面に表示する場合であっても、複数の端末30のウェブブラウザの表示画面を同期して更新することができる。すなわち、サーバ装置20および端末30によれば、異なる複数のドメインのサーバ装置から取得したデータを同一画面に表示できないというウェブブラウザの制限がある場合であっても、外部のサーバ装置から取得したデータを、複数の端末30のウェブブラウザの表示画面に同期して表示することができる。
なお、取得部92は、当該端末30上においてリンク先アドレスを指定するコードが選択された場合、イベント処理部72からメッセージを直接取得して、リクエストをリバースプロキシサーバ90に与えてよい。この場合、イベント送信部74は、メッセージに、識別情報を対応付けてサーバ装置20に送信する。イベント受信部76は、当該端末30および他の端末30上からサーバ装置20を介して受信したメッセージを、当該メッセージに対応付けられた識別情報と共に受信する。
そして、取得部92は、サーバ装置20を介してイベント受信部76が受信した、当該端末30および当該端末30上で動作するウェブブラウザの少なくとも一方の識別情報と合致しない識別情報に対応付けられたメッセージを取得して、リクエストをリバースプロキシサーバ90に与える。これにより、本変形例に係る端末30は、リンク先アドレスを指定するコードが選択されてから、データが取得されるまでの応答時間を短くして、操作性を向上することができる。
また、端末30は、更に、送信先アドレスをプロキシサーバに対して与えて、送信先アドレスに対してプロキシサーバを介してデータを送信するデータ送信部を更に備えてもよい。この場合、リンク先変換部94は、取得部92により取得されたウェブコンテンツ内の送信先アドレスを指定するコードを、イベント送信部74を呼び出して送信先アドレスへウェブコンテンツを送信するコードに変換する。この場合において、リンク先変換部94は、送信先アドレスのウェブコンテンツを取得するコードを、データ送信部を呼び出すコードとする。
図8は、本実施形態の第3変形例に係るサーバ装置20および端末30の機能構成を示す。本変形例に係るサーバ装置20および端末30は、図2に示された本実施形態に係るサーバ装置20および端末30と略同一の構成および機能を採るので、図2に示された部材と略同一の構成および機能の部材に同一の符号を付け、以下相違点を除き説明を省略する。
本変形例に係るコンピュータシステム10は、複数の端末30と、サーバシステム100を備える。サーバシステム100は、サーバ装置20と、サーバ装置20と同一ドメインのリバースプロキシサーバ90を有する。この図8に示されたリバースプロキシサーバ90は、図6で示されたリバースプロキシサーバ90と同様の機能および構成を有する。
本変形例に係るクライアントプログラム実行部70は、取得部92を更に有する。取得部92は、当該端末30上においてウェブブラウザの表示画面におけるリンク先アドレスのアクセスを指示するアクセスイベントが発生した場合に、リンク先アドレスのデータをアクセスして取得する。
取得部92は、一例として、アクセスイベントが発生した場合に、リンク先アドレスを指定してイベント処理部72により呼び出される。そして、取得部92は、一例として、リバースプロキシサーバ90に対してリンク先アドレスを与えることにより、リンク先アドレスのウェブコンテンツをリバースプロキシサーバ90を介して取得する。
更に、本変形例において、イベント送信部74は、当該端末30上で発生したアクセスイベントに、取得部92が取得したリンク先アドレスのデータを対応付けてサーバ装置20に送信する。イベント受信部76は、他の端末30上で発生したアクセスイベントを、当該アクセスイベントに対応付けられたリンク先アドレスのデータと共に、サーバ装置20を介して受信する。画面更新部78は、当該端末30上に表示した表示画面を、サーバ装置を介して受信したアクセスイベントおよびリンク先アドレスのデータに応じた画面に更新させる。
以上のような本変形例に係るサーバ装置20および端末30によれば、一の端末30において外部のサーバ装置へアクセスを指示するアクセスイベントが発生した場合においても、他の端末30のウェブブラウザの表示画面を同期して更新することができる。
図9は、本実施形態に係るコンピュータ1900のハードウェア構成の一例を示す。本実施形態に係るコンピュータ1900は、ホスト・コントローラ2082により相互に接続されるCPU2000、RAM2020、グラフィック・コントローラ2075、及び表示装置2080を有するCPU周辺部と、入出力コントローラ2084によりホスト・コントローラ2082に接続される通信インターフェイス2030、ハードディスクドライブ2040、及びCD−ROMドライブ2060を有する入出力部と、入出力コントローラ2084に接続されるROM2010、フレキシブルディスク・ドライブ2050、及び入出力チップ2070を有するレガシー入出力部とを備える。
ホスト・コントローラ2082は、RAM2020と、高い転送レートでRAM2020をアクセスするCPU2000及びグラフィック・コントローラ2075とを接続する。CPU2000は、ROM2010及びRAM2020に格納されたプログラムに基づいて動作し、各部の制御を行う。グラフィック・コントローラ2075は、CPU2000等がRAM2020内に設けたフレーム・バッファ上に生成する画像データを取得し、表示装置2080上に表示させる。これに代えて、グラフィック・コントローラ2075は、CPU2000等が生成する画像データを格納するフレーム・バッファを、内部に含んでもよい。
入出力コントローラ2084は、ホスト・コントローラ2082と、比較的高速な入出力装置である通信インターフェイス2030、ハードディスクドライブ2040、CD−ROMドライブ2060を接続する。通信インターフェイス2030は、ネットワークを介して他の装置と通信する。ハードディスクドライブ2040は、コンピュータ1900内のCPU2000が使用するプログラム及びデータを格納する。CD−ROMドライブ2060は、CD−ROM2095からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。
また、入出力コントローラ2084には、ROM2010と、フレキシブルディスク・ドライブ2050、及び入出力チップ2070の比較的低速な入出力装置とが接続される。ROM2010は、コンピュータ1900が起動時に実行するブート・プログラム、及び/又は、コンピュータ1900のハードウェアに依存するプログラム等を格納する。フレキシブルディスク・ドライブ2050は、フレキシブルディスク2090からプログラム又はデータを読み取り、RAM2020を介してハードディスクドライブ2040に提供する。入出力チップ2070は、フレキシブルディスク・ドライブ2050を入出力コントローラ2084へと接続すると共に、例えばパラレル・ポート、シリアル・ポート、キーボード・ポート、マウス・ポート等を介して各種の入出力装置を入出力コントローラ2084へと接続する。
RAM2020を介してハードディスクドライブ2040に提供されるプログラムは、フレキシブルディスク2090、CD−ROM2095、又はICカード等の記録媒体に格納されて利用者によって提供される。プログラムは、記録媒体から読み出され、RAM2020を介してコンピュータ1900内のハードディスクドライブ2040にインストールされ、CPU2000において実行される。
コンピュータ1900にダウンロードして実行され、コンピュータ1900をクライアントプログラム実行部70として機能させるクライアントプログラムは、イベント処理モジュールと、イベント送信モジュールと、イベント受信モジュールと、画面変更モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、イベント処理部72、イベント送信部74、イベント受信部76および画面更新部78としてそれぞれ機能させる。
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段であるイベント処理部72、イベント送信部74、イベント受信部76および画面更新部78として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有の端末30が構築される。
また、コンピュータ1900にインストールされ、コンピュータ1900をサーバ装置20として機能させるプログラムは、プログラム送信モジュールと、イベント転送モジュールとを備える。これらのプログラム又はモジュールは、CPU2000等に働きかけて、コンピュータ1900を、プログラム送信部82と、イベント転送部84としてそれぞれ機能させる。
これらのプログラムに記述された情報処理は、コンピュータ1900に読込まれることにより、ソフトウェアと上述した各種のハードウェア資源とが協働した具体的手段であるイベント処理部72、イベント送信部74、イベント受信部76および画面更新部78として機能する。そして、これらの具体的手段によって、本実施形態におけるコンピュータ1900の使用目的に応じた情報の演算又は加工を実現することにより、使用目的に応じた特有のサーバ装置20が構築される。
一例として、コンピュータ1900と外部の装置等との間で通信を行う場合には、CPU2000は、RAM2020上にロードされた通信プログラムを実行し、通信プログラムに記述された処理内容に基づいて、通信インターフェイス2030に対して通信処理を指示する。通信インターフェイス2030は、CPU2000の制御を受けて、RAM2020、ハードディスクドライブ2040、フレキシブルディスク2090、又はCD−ROM2095等の記憶装置上に設けた送信バッファ領域等に記憶された送信データを読み出してネットワークへと送信し、もしくは、ネットワークから受信した受信データを記憶装置上に設けた受信バッファ領域等へと書き込む。このように、通信インターフェイス2030は、DMA(ダイレクト・メモリ・アクセス)方式により記憶装置との間で送受信データを転送してもよく、これに代えて、CPU2000が転送元の記憶装置又は通信インターフェイス2030からデータを読み出し、転送先の通信インターフェイス2030又は記憶装置へとデータを書き込むことにより送受信データを転送してもよい。
また、CPU2000は、ハードディスクドライブ2040、CD−ROMドライブ2060(CD−ROM2095)、フレキシブルディスク・ドライブ2050(フレキシブルディスク2090)等の外部記憶装置に格納されたファイルまたはデータベース等の中から、全部または必要な部分をDMA転送等によりRAM2020へと読み込ませ、RAM2020上のデータに対して各種の処理を行う。そして、CPU2000は、処理を終えたデータを、DMA転送等により外部記憶装置へと書き戻す。このような処理において、RAM2020は、外部記憶装置の内容を一時的に保持するものとみなせるから、本実施形態においてはRAM2020および外部記憶装置等をメモリ、記憶部、または記憶装置等と総称する。本実施形態における各種のプログラム、データ、テーブル、データベース等の各種の情報は、このような記憶装置上に格納されて、情報処理の対象となる。なお、CPU2000は、RAM2020の一部をキャッシュメモリに保持し、キャッシュメモリ上で読み書きを行うこともできる。このような形態においても、キャッシュメモリはRAM2020の機能の一部を担うから、本実施形態においては、区別して示す場合を除き、キャッシュメモリもRAM2020、メモリ、及び/又は記憶装置に含まれるものとする。
また、CPU2000は、RAM2020から読み出したデータに対して、プログラムの命令列により指定された、本実施形態中に記載した各種の演算、情報の加工、条件判断、情報の検索・置換等を含む各種の処理を行い、RAM2020へと書き戻す。例えば、CPU2000は、条件判断を行う場合においては、本実施形態において示した各種の変数が、他の変数または定数と比較して、大きい、小さい、以上、以下、等しい等の条件を満たすかどうかを判断し、条件が成立した場合(又は不成立であった場合)に、異なる命令列へと分岐し、またはサブルーチンを呼び出す。
また、CPU2000は、記憶装置内のファイルまたはデータベース等に格納された情報を検索することができる。例えば、第1属性の属性値に対し第2属性の属性値がそれぞれ対応付けられた複数のエントリが記憶装置に格納されている場合において、CPU2000は、記憶装置に格納されている複数のエントリの中から第1属性の属性値が指定された条件と一致するエントリを検索し、そのエントリに格納されている第2属性の属性値を読み出すことにより、所定の条件を満たす第1属性に対応付けられた第2属性の属性値を得ることができる。
以上に示したプログラム又はモジュールは、外部の記録媒体に格納されてもよい。記録媒体としては、フレキシブルディスク2090、CD−ROM2095の他に、DVD又はCD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、専用通信ネットワーク又はインターネットに接続されたサーバシステムに設けたハードディスク又はRAM等の記憶装置を記録媒体として使用し、ネットワークを介してプログラムをコンピュータ1900に提供してもよい。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。その様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
特許請求の範囲、明細書、および図面中において示した装置、システム、プログラム、および方法における動作、手順、ステップ、および段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、および図面中の動作フローに関して、便宜上「まず、」、「次に、」等を用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
10 コンピュータシステム、20 サーバ装置、30 端末、60 ブラウザ実行部、70 クライアントプログラム実行部、72 イベント処理部、74 イベント送信部、76 イベント受信部、78 画面更新部、82 プログラム送信部、84 イベント転送部、88 バッファ部、90 リバースプロキシサーバ、92 取得部、94 リンク先変換部、100 サーバシステム、1900 コンピュータ、2000 CPU、2010 ROM、2020 RAM、2030 通信インターフェイス、2040 ハードディスクドライブ、2050 フレキシブルディスク・ドライブ、2060 CD−ROMドライブ、2070 入出力チップ、2075 グラフィック・コントローラ、2080 表示装置、2082 ホスト・コントローラ、2084 入出力コントローラ、2090 フレキシブルディスク、2095 CD−ROM

Claims (12)

  1. 複数の端末のそれぞれによりダウンロードされて実行され、前記複数の端末におけるウェブブラウザの表示画面を同期させるクライアントプログラムであって、
    当該クライアントプログラムは、前記複数の端末のそれぞれを、
    当該端末上のそれぞれにおけるウェブブラウザの表示画面上においてユーザが行った操作に応じて発生するイベントを、サーバ装置に送信するイベント送信部と、
    当該端末および他の前記端末上で発生したイベントを、前記サーバ装置を介して受信するイベント受信部と、
    当該端末上に表示した表示画面を、前記サーバ装置を介して受信した当該端末および他の前記端末上で発生したイベントに応じた画面に更新させる画面更新部と、
    リンク先アドレスのウェブコンテンツをリバースプロキシサーバを介して取得する取得部と、
    前記取得部により取得されたウェブコンテンツ内のリンク先アドレスを指定するコードを、前記イベント送信部を呼び出して前記リンク先アドレスのウェブコンテンツを取得するコードに変換するリンク先変換部と
    して機能させ、
    前記画面更新部は、当該端末上に表示した表示画面を、前記リンク先変換部により変換後の前記ウェブコンテンツに応じた画面に更新させ、
    前記イベント送信部は、ユーザにより前記ウェブコンテンツ内の前記リンクが選択されたことに応じて呼び出され、前記リンクが選択されたことを前記サーバ装置を介して他の前記端末へと通知し、
    前記イベント受信部は、他の前記端末上で前記リンクが選択されたことの通知を前記サーバ装置を介して受けたことに応じて、前記取得部を呼び出すクライアントプログラム。
  2. 当該クライアントプログラムは、前記複数の端末のそれぞれを、当該端末上で発生したイベントを1以上蓄積するバッファ部として更に機能させ、
    前記イベント送信部は、前記バッファ部に蓄積された1以上のイベントを、前記サーバ装置に送信する請求項1に記載のクライアントプログラム。
  3. 前記イベント送信部は、当該端末のユーザから他の前記端末におけるウェブブラウザの表示画面を当該端末におけるウェブブラウザの表示画面と同期させる指示を受けたことに応じて、前記バッファ部に蓄積された1以上のイベントを、前記サーバ装置に送信する請求項2に記載のクライアントプログラム。
  4. 前記取得部は、リンク先アドレスを前記サーバ装置と同一ドメイン内の前記リバースプロキシサーバに対して与えて、リンク先アドレスのウェブコンテンツを取得し、
    前記リンク先変換部は、前記リンク先アドレスのウェブコンテンツを取得するコードを、前記取得部を呼び出すコードとする請求項1から3のいずれか1項に記載のクライアントプログラム。
  5. 当該クライアントプログラムは、前記複数の端末のそれぞれを、当該端末上においてウェブブラウザの表示画面におけるリンク先アドレスへのアクセスを指示するアクセスイベントが発生した場合に、リンク先アドレスのデータをアクセスして取得する取得部として更に機能させ、
    前記イベント送信部は、当該端末上で発生したアクセスイベントに、前記取得部が取得したリンク先のデータを対応付けて前記サーバ装置に送信し、
    前記イベント受信部は、他の前記端末上で発生したアクセスイベントを、当該アクセスイベントに対応付けられたリンク先のデータと共に、前記サーバ装置を介して受信し、
    前記画面更新部は、当該端末上に表示した表示画面を、前記サーバ装置を介して受信したアクセスイベントおよびリンク先アドレスのデータに応じた画面に更新させる請求項1から4のいずれか1項に記載のクライアントプログラム。
  6. ウェブブラウザを実行する端末であって、
    複数の端末におけるウェブブラウザの表示画面を同期させるクライアントプログラムを、当該端末がサーバ装置からダウンロードして実行することにより実現されるクライアントプログラム実行部を備え、
    前記クライアントプログラム実行部は、
    当該端末上のそれぞれにおけるウェブブラウザの表示画面上においてユーザが行った操作に応じて発生するイベントを、サーバ装置に送信するイベント送信部と、
    当該端末および他の前記端末上で発生したイベントを、前記サーバ装置を介して受信するイベント受信部と、
    当該端末上に表示した表示画面を、前記サーバ装置を介して受信した当該端末および他の前記端末上で発生したイベントに応じた画面に更新させる画面更新部と、
    リンク先アドレスのウェブコンテンツをリバースプロキシサーバを介して取得する取得部と、
    前記取得部により取得されたウェブコンテンツ内のリンク先アドレスを指定するコードを、前記イベント送信部を呼び出して前記リンク先アドレスのウェブコンテンツを取得するコードに変換するリンク先変換部と
    を備え
    前記画面更新部は、当該端末上に表示した表示画面を、前記リンク先変換部により変換後の前記ウェブコンテンツに応じた画面に更新させ、
    前記イベント送信部は、ユーザにより前記ウェブコンテンツ内の前記リンクが選択されたことに応じて呼び出され、前記リンクが選択されたことを前記サーバ装置を介して他の前記端末へと通知し、
    前記イベント受信部は、他の前記端末上で前記リンクが選択されたことの通知を前記サーバ装置を介して受けたことに応じて、前記取得部を呼び出す端末。
  7. 複数の端末におけるウェブブラウザの表示画面を同期させる方法であって、
    前記複数の端末のそれぞれが、当該端末上におけるウェブブラウザの表示画面上においてユーザが行った操作に応じて発生するイベントを、サーバ装置に送信し、
    前記端末が、一の端末および他の端末上で発生したイベントを、前記サーバ装置を介して受信し、
    記端末が、当該他の端末上に表示した表示画面を、前記サーバ装置を介して受信した前記一の端末および他の端末上で発生したイベントに応じた画面に更新し、
    前記一の端末が、リンク先アドレスのウェブコンテンツをリバースプロキシサーバを介して取得し、
    前記一の端末が、取得したウェブコンテンツ内のリンク先アドレスを指定するコードを、前記リンク先アドレスのウェブコンテンツを取得するコードに変換し、
    前記一の端末が、当該端末上に表示した表示画面を、変換後の前記ウェブコンテンツに応じた画面に更新し、
    前記一の端末が、ユーザにより前記ウェブコンテンツ内の前記リンクが選択されたことに応じて、前記リンクが選択されたことを前記サーバ装置を介して前記他の端末へと通知し、
    前記一の端末が、前記他の端末上で前記リンクが選択されたことの通知を前記サーバ装置を介して受けたことに応じて、リンク先アドレスのウェブコンテンツをリバースプロキシサーバを介して取得する
    方法。
  8. 請求項6に記載の複数の端末のそれぞれにおけるウェブブラウザの表示画面を同期させるサーバシステムであって、
    それぞれの前記端末上で動作するウェブブラウザからの要求に応じて、当該端末上で発生したイベントを当該サーバシステムに通知する機能を含むクライアントプログラムを当該端末へ送信するプログラム送信部と、
    一の前記端末からイベントの通知を受信したことに応じて、他の前記端末に当該イベントを通知して、前記他の端末におけるウェブブラウザの表示画面を当該イベントに応じて更新させるイベント転送部と、
    を備えるサーバシステム。
  9. 端末からリンク先のデータを取得するための取得要求を受けて、当該端末上のウェブブラウザの代わりにリンク先のデータを取得するリバースプロキシサーバを更に備え、
    前記プログラム送信部は、取得したウェブコンテンツ内のリンク先アドレスを指定するコードを、前記リバースプロキシサーバに対してリンク先のデータの取得を指示するコードに変換する機能を含む前記クライアントプログラムを前記端末へ送信する請求項8に記載のサーバシステム。
  10. 前記リバースプロキシサーバは、一の前記端末からリンク先のデータの取得要求を受けたことに応じてリンク先の外部のサーバ装置からリンク先アドレスのデータを取得してキャッシュし、他の前記端末からリンク先アドレスのデータの取得要求を受けたことに応じてキャッシュしたデータを返信する請求項8または9に記載のサーバシステム。
  11. コンピュータを、請求項6に記載の複数の端末のそれぞれにおけるウェブブラウザの表示画面を同期させるサーバシステムとして機能させるサーバプログラムであって、
    前記サーバプログラムは、前記コンピュータを、
    それぞれの前記端末上で動作するウェブブラウザからの要求に応じて、当該端末上で発生したイベントを当該サーバシステムに通知する機能を含むクライアントプログラムを当該端末へ送信するプログラム送信部と、
    一の前記端末からイベントの通知を受信したことに応じて、他の前記端末に当該イベントを通知して、前記他の端末におけるウェブブラウザの表示画面を当該イベントに応じて更新させるイベント転送部と、
    として機能させるサーバプログラム。
  12. 請求項6に記載の複数の端末のそれぞれにおけるウェブブラウザの表示画面を同期させる方法であって、
    サーバ装置が、それぞれの前記端末上で動作するウェブブラウザからの要求に応じて、当該端末上で発生したイベントを当該サーバ装置に通知する機能を含むクライアントプログラムを当該端末へ送信し、
    前記サーバ装置が、一の前記端末からイベントの通知を受信したことに応じて、他の前記端末に当該イベントを通知して、前記他の端末におけるウェブブラウザの表示画面を当該イベントに応じて更新させる
    方法。
JP2009017290A 2009-01-28 2009-01-28 クライアントプログラム、端末、方法、サーバシステムおよびサーバプログラム Expired - Fee Related JP4748819B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009017290A JP4748819B2 (ja) 2009-01-28 2009-01-28 クライアントプログラム、端末、方法、サーバシステムおよびサーバプログラム
TW099100076A TW201109942A (en) 2009-01-28 2010-01-05 Client program, terminal, method, server system and server program
US12/694,424 US20100192071A1 (en) 2009-01-28 2010-01-27 Client program, terminal, method, server system and server program
CN201010104397A CN101789971A (zh) 2009-01-28 2010-01-27 客户端程序、终端、方法、服务器系统及服务器程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009017290A JP4748819B2 (ja) 2009-01-28 2009-01-28 クライアントプログラム、端末、方法、サーバシステムおよびサーバプログラム

Publications (2)

Publication Number Publication Date
JP2010176336A JP2010176336A (ja) 2010-08-12
JP4748819B2 true JP4748819B2 (ja) 2011-08-17

Family

ID=42355170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009017290A Expired - Fee Related JP4748819B2 (ja) 2009-01-28 2009-01-28 クライアントプログラム、端末、方法、サーバシステムおよびサーバプログラム

Country Status (4)

Country Link
US (1) US20100192071A1 (ja)
JP (1) JP4748819B2 (ja)
CN (1) CN101789971A (ja)
TW (1) TW201109942A (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5713551B2 (ja) * 2009-10-01 2015-05-07 キヤノン株式会社 情報処理システム、情報処理装置、及びそれらの制御方法
JP5682996B2 (ja) * 2010-02-04 2015-03-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation クライアントプログラム、端末、サーバ装置、サーバプログラム、システムおよび方法
JP5060602B2 (ja) 2010-08-05 2012-10-31 株式会社東芝 磁気冷凍デバイスおよび磁気冷凍システム
JP5602542B2 (ja) * 2010-08-26 2014-10-08 Kddi株式会社 端末間でページコンテンツを同期させるページコンテンツ同期方法、同期サーバ及びプログラム
US20120311419A1 (en) * 2010-09-07 2012-12-06 Sk Planet Co., Ltd. System for displaying cached webpages, a server therefor, a terminal therefor, a method therefor and a computer-readable recording medium on which the method is recorded
JP5500020B2 (ja) * 2010-09-24 2014-05-21 富士通株式会社 Webアプリケーション提供方法、中継サーバ装置、Webサーバ装置
KR101596062B1 (ko) * 2011-01-26 2016-02-24 한양대학교 에리카산학협력단 개인 장치간 이벤트 및 데이터 공유 방법 및 시스템
WO2012070900A2 (ko) * 2010-11-24 2012-05-31 한양대학교 산학협력단 개인 장치간 이벤트 및 데이터 공유 시스템
CN102185875A (zh) * 2011-01-30 2011-09-14 北京开心人信息技术有限公司 一种信息同步更新的方法与系统
CN102999491B (zh) * 2011-09-08 2018-02-23 百度在线网络技术(北京)有限公司 一种用于实现用户设备间浏览器操作同步的方法与设备
JP5936103B2 (ja) 2011-10-04 2016-06-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation クライアントでJavaメソッドを呼び出すシステム、コンピュータ、方法及びプログラム
KR101900994B1 (ko) * 2011-10-10 2018-11-08 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 클라이언트-호스트 접속 수립
US20130091197A1 (en) 2011-10-11 2013-04-11 Microsoft Corporation Mobile device as a local server
CA2851514C (en) * 2011-10-11 2020-04-21 Microsoft Corporation Event service for local client applications through local server
CN103106071B (zh) * 2011-11-15 2016-06-22 中兴通讯股份有限公司 移动终端ui界面演示方法及系统
CN102780768B (zh) * 2012-06-29 2014-11-19 北京奇虎科技有限公司 一种大并发量请求的处理方法及处理系统
KR20140035595A (ko) * 2012-09-14 2014-03-24 에스케이플래닛 주식회사 화면 동기 제어 시스템, 이를 이용한 화면 동기 방법 및 장치
JP5985377B2 (ja) * 2012-12-13 2016-09-06 Kddi株式会社 複数の端末間でプライベートページを同期して表示させるページ同期表示方法及びシステム
CN103064932A (zh) * 2012-12-24 2013-04-24 乐视网信息技术(北京)股份有限公司 一种静态化页面的处理系统和方法
CN103916415A (zh) * 2012-12-28 2014-07-09 中华电信股份有限公司 反向代理系统及其方法
JP2014153776A (ja) * 2013-02-05 2014-08-25 Canon Inc 情報処理システム、情報処理装置、その制御方法とプログラム
US20150046562A1 (en) * 2013-08-07 2015-02-12 Convergent Development Limited Web browser orchestration
CN104683421B (zh) * 2013-12-03 2017-12-29 中国科学院声学研究所 一种支持多设备同步承载的web服务方法
CN104683420B (zh) * 2013-12-03 2018-05-22 中国科学院声学研究所 一种数字家庭的服务同步共享与多设备操控的方法
CN105302651A (zh) * 2015-10-19 2016-02-03 黄阳光 一种供应商与用户远程同步浏览商品的方法及装置
US10210276B2 (en) * 2015-12-28 2019-02-19 Salesforce.Com, Inc. Managing information displayed in web pages
CN105828011B (zh) * 2016-05-27 2019-02-01 华为软件技术有限公司 一种视频录制的方法、装置和系统
US10983748B2 (en) * 2018-02-28 2021-04-20 Ricoh Company, Ltd. Information management apparatus, information sharing system, and terminal
CN109936621B (zh) * 2019-01-28 2022-08-26 平安科技(深圳)有限公司 信息安全的多页面消息推送方法、装置、设备及存储介质
CN109995577B (zh) * 2019-02-22 2022-08-02 厦门天锐科技股份有限公司 一种更新策略的方法、装置及系统
CN110071910A (zh) * 2019-03-15 2019-07-30 平安普惠企业管理有限公司 设备同步协助控制方法、装置、计算机设备及存储介质
CN110781987B (zh) * 2019-10-30 2023-06-20 云南恒协科技有限公司 一种车间巡检管理系统
US11249715B2 (en) 2020-06-23 2022-02-15 Switchboard Visual Technologies, Inc. Collaborative remote interactive platform
US11461480B1 (en) 2022-05-24 2022-10-04 Switchboard Visual Technologies, Inc. Synchronizing private data with reduced trust

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0589217A (ja) * 1991-09-30 1993-04-09 N T T Data Tsushin Kk 共有画面表示制御装置
US6240444B1 (en) * 1996-09-27 2001-05-29 International Business Machines Corporation Internet web page sharing
US5944791A (en) * 1996-10-04 1999-08-31 Contigo Software Llc Collaborative web browser
US6151622A (en) * 1998-02-02 2000-11-21 International Business Machines Corp. Method and system for portably enabling view synchronization over the world-wide web using frame hierarchies
US6230171B1 (en) * 1998-08-29 2001-05-08 International Business Machines Corporation Markup system for shared HTML documents
JP3715810B2 (ja) * 1998-12-24 2005-11-16 株式会社日立製作所 ドキュメント共有方法およびwwwサーバ計算機
JP3437933B2 (ja) * 1999-01-21 2003-08-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ブラウザ共有方法及びシステム
WO2001057738A1 (en) * 2000-02-07 2001-08-09 Dahong Qian Group-browsing system
US20010037365A1 (en) * 2000-03-15 2001-11-01 Montague P. Read Method and system for linked communication between client stations
KR20020022374A (ko) * 2000-09-20 2002-03-27 오길록 웹 문서의 주소 변환을 이용한 공동 브라우징 방법
JP3852742B2 (ja) * 2000-11-02 2006-12-06 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理システム、端末装置、情報処理方法および記憶媒体
US20020138624A1 (en) * 2001-03-21 2002-09-26 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Collaborative web browsing
US7225225B2 (en) * 2001-03-30 2007-05-29 Sharp Laboratories Of America, Inc. Selective synchronization of web browsers
US8190670B2 (en) * 2001-04-16 2012-05-29 Microsoft Corporation Web site cobrowsing
US7051119B2 (en) * 2001-07-12 2006-05-23 Yahoo! Inc. Method and system for enabling a script on a first computer to communicate and exchange data with a script on a second computer over a network
US20030041109A1 (en) * 2001-08-09 2003-02-27 Meloni Ryan K. Method and apparatus for distance learning and workgroup collaboration utilizing the world wide web
US6865599B2 (en) * 2001-09-04 2005-03-08 Chenglin Zhang Browser-to-browser, dom-based, peer-to-peer communication with delta synchronization
KR100634190B1 (ko) * 2001-10-30 2006-10-16 인터내셔널 비지네스 머신즈 코포레이션 네트워크 상의 복수의 컴퓨터 사이에서의 콜레보레이션을위한 방법, 시스템, 컴퓨터 프로그램
KR100472202B1 (ko) * 2001-12-05 2005-03-08 한국전자통신연구원 아이 알 씨 프로토콜을 이용한 웹 공동 브라우징 시스템및 그 방법
US7454760B2 (en) * 2002-04-22 2008-11-18 Rosebud Lms, Inc. Method and software for enabling n-way collaborative work over a network of computers
US7171614B2 (en) * 2002-05-30 2007-01-30 Microsoft Corporation Displaying plug-in derived content in an application's browser-embedded window with callbacks
US7487248B2 (en) * 2002-10-08 2009-02-03 Brian Moran Method and system for transferring a computer session between devices
JP3753244B2 (ja) * 2002-11-27 2006-03-08 日本電気株式会社 リアルタイムウェブ共有システム
AU2003303884A1 (en) * 2003-02-03 2004-08-30 Mvp, Inc. Synchronization program
JP2004265063A (ja) * 2003-02-28 2004-09-24 Canon Inc 情報処理方法および装置
US7392475B1 (en) * 2003-05-23 2008-06-24 Microsoft Corporation Method and system for automatic insertion of context information into an application program module
KR100498361B1 (ko) * 2003-07-18 2005-07-01 엘지전자 주식회사 이동 통신단말기의 무선 인터넷 동기화 방법
US8528003B2 (en) * 2003-10-27 2013-09-03 Yahoo! Inc. Communication among browser windows
US20060031778A1 (en) * 2004-07-01 2006-02-09 Microsoft Corporation Computing platform for loading resources both synchronously and asynchronously
US7861289B2 (en) * 2006-09-22 2010-12-28 Oracle International Corporation Pagelets in adaptive tags in non-portal reverse proxy
US20080215967A1 (en) * 2007-02-23 2008-09-04 Tabblo, Inc. Method and system for online transformation using an image URL application programming interface (API)
US7941755B2 (en) * 2007-04-19 2011-05-10 Art Technology Group, Inc. Method and apparatus for web page co-browsing
US20080301562A1 (en) * 2007-04-27 2008-12-04 Josef Berger Systems and Methods for Accelerating Access to Web Resources by Linking Browsers
US20090037517A1 (en) * 2007-08-02 2009-02-05 Randall Wayne Frei Method and system to share content between web clients
US8015496B1 (en) * 2007-10-26 2011-09-06 Sesh, Inc. System and method for facilitating visual social communication through co-browsing
EP2225869A2 (en) * 2007-11-23 2010-09-08 Koninklijke Philips Electronics N.V. Co-browsing (java) scripted html documents
US8849914B2 (en) * 2007-12-20 2014-09-30 The Vanguard Group, Inc. System and method for synchronized co-browsing by users in different web sessions
US8166449B2 (en) * 2008-01-17 2012-04-24 Microsoft Corporation Live bidirectional synchronizing of a visual and a textual representation
US7707513B2 (en) * 2008-02-06 2010-04-27 Oracle International Corporation System for streaming data from server to multiple slave browser windows in client computer through a master browser window
US20090249216A1 (en) * 2008-03-28 2009-10-01 International Business Machines Corporation Interacting with multiple browsers simultaneously using linked browsers controlled from a primary browser interface
US8843816B2 (en) * 2008-04-25 2014-09-23 Microsoft Corporation Document collaboration by transforming and reflecting a document object model
US20100082747A1 (en) * 2008-09-29 2010-04-01 College Of William & Mary Real-time collaborative browsing

Also Published As

Publication number Publication date
CN101789971A (zh) 2010-07-28
US20100192071A1 (en) 2010-07-29
JP2010176336A (ja) 2010-08-12
TW201109942A (en) 2011-03-16

Similar Documents

Publication Publication Date Title
JP4748819B2 (ja) クライアントプログラム、端末、方法、サーバシステムおよびサーバプログラム
JP5682996B2 (ja) クライアントプログラム、端末、サーバ装置、サーバプログラム、システムおよび方法
JP5167589B2 (ja) アプリケーションサーバ装置および仮想マシンプログラム
EP3896567B1 (en) Page pre-rendering method and apparatus, electronic device, and storage medium
US8332520B2 (en) Web server for managing session and method thereof
JP4398462B2 (ja) ウェブ・デバイスにおけるhtmlページの提示を改善するための方法およびシステム
US20090106456A1 (en) Method and apparatus for interactions of web applications with the local host environment
JP5936103B2 (ja) クライアントでJavaメソッドを呼び出すシステム、コンピュータ、方法及びプログラム
US20170286040A1 (en) Display and operating unit and method of operating a field instrument having a display and operating unit
JP5604016B1 (ja) スクリプトのキャッシュ方法及びそれを適用した情報処理装置
JP2010092103A (ja) Webページ表示方法、サーバ装置、及びプログラム
JP5541160B2 (ja) プログラム入手・実行クライアント、プログラム入手・実行方法およびプログラム
JP6357813B2 (ja) 配信方法、リソース取得方法、配信サーバ、及び端末装置
JP2007018091A (ja) 情報処理装置、情報処理システム、アプリケーション開発支援方法及びプログラム
JPWO2013088534A1 (ja) クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム
US20230409659A1 (en) Information processing system, image generation system, communication terminal, information processing method, or storage medium
JP4958122B2 (ja) 情報処理装置、実行方法および実行用プログラム
JP2009176176A (ja) ウェブページ配信装置
JP2009048332A (ja) ウェブページ閲覧装置
JP2016018552A (ja) スクリプトのキャッシュ方法及びそれを適用した情報処理装置
JP6607805B2 (ja) 情報処理装置及び情報処理プログラム
JP5894320B1 (ja) 情報処理装置及び情報処理プログラム
CN117222982A (zh) 加速器控制系统、加速器控制方法和加速器控制程序
JP2013149302A (ja) 情報処理装置
JP2013149051A (ja) 情報処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110401

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110426

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110427

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110516

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140527

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees