(57)【要約】【課題】同期に必要な通信量を抑えつつ、どのコンピュータ上においても、本来のウェブページの通りに忠実に画面の同期を可能にするウェブブラウザ画面同期システムを得る。【解決手段】マスタリソース管理部１１２は、ウェブサーバ１００とマスタウェブブラウザ１１１間の通信を仲介し、同時にウェブサーバ１００から得られるリソースファイルの管理を行う。ＤＯＭツリー変更点監視部１１３は、マスタウェブブラウザ１１１のＤＯＭツリーに対する変更を監視し、変更点をＤＯＭツリー構築部１２４に送信する。スレーブリソース管理部１２３は、スレーブのリソース管理を行う。ＤＯＭツリー構築部１２４は、受信したＤＯＭツリー変更点に従ってスレーブウェブブラウザ１２１のＤＯＭツリーを構築する。【選択図】図１
2014170389.tif 000002
【特許請求の範囲】
【請求項１】
１台のマスタ装置と１台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおいて、
前記マスタ装置は、
マスタウェブブラウザがウェブページを表示するのに必要なファイルデータを格納するウェブサーバと前記マスタウェブブラウザ間の通信を管理すると共に、前記マスタ装置と前記スレーブ装置とのリソース同期管理を行うマスタリソース管理部と、
前記マスタウェブブラウザのＤＯＭツリーに対する変更点を検出するＤＯＭツリー変更点監視部とを備え、
前記スレーブ装置は、
前記マスタリソース管理部と同期して、前記スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、
前記マスタ装置から受信したＤＯＭツリー変更点を元にスレーブウェブブラウザのＤＯＭツリーを構築するＤＯＭツリー構築部とを備えたウェブブラウザ画面同期システム。
【請求項２】
前記マスタリソース管理部は、前記ウェブサーバから受信したファイルがリソースファイルであった場合、前記スレーブリソース管理部に当該リソースファイルを転送し、
前記スレーブリソース管理部は、前記マスタリソース管理部から転送されたリソースファイルを保管し、前記スレーブウェブブラウザの要求に応じて当該リソースファイルを前記スレーブウェブブラウザに送信することを特徴とする請求項１記載のウェブブラウザ画面同期システム。
【請求項３】
前記マスタリソース管理部は、前記ウェブサーバから受信したファイルがリソースファイルであった場合は当該リソースファイルを保管し、
前記スレーブリソース管理部は、前記スレーブウェブブラウザの要求に応じ、前記マスタリソース管理部にリソースファイルを要求し、前記マスタリソース管理部から受信した前記リソースファイルを、前記スレーブウェブブラウザに転送することを特徴とする請求項１記載のウェブブラウザ画面同期システム。
【請求項４】
前記ＤＯＭツリー変更点監視部は、ＤＯＭツリーに対する変更点が前記スレーブ装置との画面同期に必要な変更点であるか否かを判断し、当該画面同期に必要なＤＯＭノードのみを前記スレーブ装置への送信データとすることを特徴とする請求項１から請求項３のうちのいずれか１項記載のウェブブラウザ画面同期システム。
【請求項５】
前記ＤＯＭツリー変更点監視部は、ＤＯＭツリー内のコメントノードを前記スレーブ装置への送信データから除外することを特徴とする請求項４記載のウェブブラウザ画面同期システム。
【請求項６】
前記ＤＯＭツリー変更点監視部は、ＤＯＭツリー内のスクリプトの実行に関するノードを前記スレーブ装置への送信データから除外することを特徴とする請求項４記載のウェブブラウザ画面同期システム。
【請求項７】
前記スレーブ装置は、
前記スレーブウェブブラウザで発生する操作イベントを監視し、当該操作イベントを検知した場合は当該操作イベントを前記マスタ装置への送信データとする操作イベント監視部を備え、
前記マスタ装置は、
前記操作イベント監視部で検知された操作イベントをマスタウェブブラウザに対して発生させる操作イベント処理部を備えたことを特徴とする請求項１から請求項６のうちのいずれか１項記載のウェブブラウザ画面同期システム。
【請求項８】
前記マスタ装置は、
前記マスタウェブブラウザにおけるＤＯＭツリーへの変更に関する処理以外の処理で、かつ、描画処理を伴うスクリプトの実行を監視し、前記スクリプトが実行された場合は、当該実行内容を、前記ＤＯＭツリー変更点監視部の監視結果とは無関係に前記スレーブ装置への送信データとするスクリプト監視部を備え、
前記スレーブ装置は、
前記スクリプト監視部が送信データとする前記実行内容を前記スレーブウェブブラウザに通知するスクリプト処理部を備えたことを特徴とする請求項６記載のウェブブラウザ画面同期システム。
【請求項９】
前記マスタ装置は、
前記マスタウェブブラウザで発生する、ＤＯＭツリーへの変更に関する処理以外の処理に関するイベント発生を監視し、当該発生した処理イベントをスレーブに送信する処理イベント監視部を備え、
前記スレーブ装置は、
前記マスタ装置から受信した前記処理イベントを前記スレーブウェブブラウザに通知する処理イベント処理部を備えたことを特徴とする請求項２または請求項３記載のウェブブラウザ画面同期システム。
【請求項１０】
１台のマスタ装置と１台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおけるマスタ装置であって、
マスタウェブブラウザがウェブページを表示するのに必要なファイルデータを格納するウェブサーバと当該マスタウェブブラウザ間の通信を管理すると共に、前記マスタ装置と前記スレーブ装置とのリソース同期管理を行うマスタリソース管理部と、
前記マスタウェブブラウザのＤＯＭツリーに対する変更点を検出するＤＯＭツリー変更点監視部とを備えたマスタ装置。
【請求項１１】
１台のマスタ装置と１台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおけるスレーブ装置であって、
前記マスタ装置と同期して、前記スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、
前記マスタ装置から受信したＤＯＭツリー変更点を元にスレーブウェブブラウザのＤＯＭツリーを構築するＤＯＭツリー構築部とを備えたスレーブ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数台のコンピュータで動作するウェブブラウザの画面を同期するウェブブラウザ画面同期システム及びマスタ装置並びにスレーブ装置に関する。
【背景技術】
【０００２】
１つのウェブブラウザの画面を複数のコンピュータで共有することにより、複数人で共同的にウェブを閲覧することや、携帯端末のウェブ画面を自動車の車載機ディスプレイで表示することなどが可能になる。
従来、このような画面同期システムを実現する場合、１台のコンピュータ（以下、サーバ）が自身の画面の画像を他のコンピュータ（以下、クライアント）に送信し、クライアントでサーバから送信された画像を表示することで、サーバ、クライアント間の画面の同期を実現している。また、クライアントは自身で発生したマウスやキーボード等のイベントをサーバに送信し、サーバはクライアントからのイベントに応じて処理を行うことで、操作の同期も実現している。この方法はＶＮＣ（Virtual Network Computing）と呼ばれており、画面及び操作の同期と言うよりも、クライアントによるサーバの遠隔操作であると言えるが、どのコンピュータでも同一の画面・操作を実現していることに他ならない。
【０００３】
また、マークアップ言語のＸＭＬ（eXtensible Markup Language）をツリー構造で表現したものであるＤＯＭ（Document Object Model）を、サーバを介して同期するという方法も存在する（例えば、特許文献１参照）。ウェブブラウザが表示する画面はＨＴＭＬ（HyperText Markup Language）もしくはＸＨＴＭＬ（eXtensible HyperText Markup Language）と呼ばれるマークアップ言語で記述される。ＨＴＭＬおよびＸＨＴＭＬはＸＭＬと同様にＤＯＭを用いて操作することが可能であるため、特許文献１に記載の同期方法をウェブブラウザに適用することにより、ウェブブラウザの画面の同期を実現できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−７１３５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したＶＮＣなどで採用されている画像による同期の場合、サーバからクライアントに送信する画面の画像のデータサイズが課題となる。画面の画像のデータサイズは解像度やフレーム数に比例して大きくなるため、高解像度・高フレーム数による同期を実現する場合、高速な通信回線が必要である。その課題を解決するため、画面の画像を圧縮後にサーバからその圧縮データをクライアントに送信することで通信データサイズの削減が可能であるが、圧縮及び伸張処理の負荷が高くなってしまう。
上述したＤＯＭによる同期の場合、画像を転送する方法に比べ、ＤＯＭの変更点のみを転送すればよいため、転送量を削減することが可能である。しかしながら、ＤＯＭのみで表現可能な画面の同期に限定されるという問題点があった。
【０００６】
この発明は上記のような課題を解決するためになされたもので、同期に必要な通信量を抑えつつ、どのコンピュータ上においても、本来のウェブページの通りに忠実に画面の同期を可能にするウェブブラウザ画面同期システムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るウェブブラウザ画面同期システムは、１台のマスタ装置と１台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおいて、マスタ装置は、マスタウェブブラウザがウェブページを表示するのに必要なデータを格納するウェブサーバとマスタウェブブラウザ間の通信を管理すると共に、マスタ装置とスレーブ装置とのリソース同期管理を行うマスタリソース管理部と、マスタウェブブラウザのＤＯＭツリーに対する変更点を検出するＤＯＭツリー変更点監視部とを備え、スレーブ装置は、マスタリソース管理部と同期して、スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、マスタ装置から受信したＤＯＭツリー変更点を元にスレーブウェブブラウザのＤＯＭツリーを構築するＤＯＭツリー構築部とを備えたものである。
【発明の効果】
【０００８】
この発明のウェブブラウザ画面同期システムは、マスタ装置とスレーブ装置間で、リソース同期管理を行うと共に、マスタウェブブラウザのＤＯＭツリー変更点を検出してスレーブウェブブラウザのＤＯＭツリーを構築するようにしたので、同期に必要な通信量を抑えつつ、どのコンピュータ上においても、本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
【図面の簡単な説明】
【０００９】
【図１】この発明の実施の形態１のウェブブラウザ画面同期システムを示す構成図である。
【図２】この発明の実施の形態１のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。
【図３】この発明の実施の形態２のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。
【図４】この発明の実施の形態３のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。
【図５】この発明の実施の形態４のウェブブラウザ画面同期システムを示す構成図である。
【図６】この発明の実施の形態４のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。
【図７】この発明の実施の形態５のウェブブラウザ画面同期システムを示す構成図である。
【図８】この発明の実施の形態５のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。
【図９】この発明の実施の形態６のウェブブラウザ画面同期システムを示す構成図である。
【図１０】この発明の実施の形態６のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。
【発明を実施するための形態】
【００１０】
実施の形態１．
図１は、この発明の実施の形態１によるウェブブラウザ画面同期システムを示す構成図である。
図１に示すウェブブラウザ画面同期システムは複数台のコンピュータからなり、これらコンピュータとして、ウェブサーバ１００、マスタ装置１１０、スレーブ装置１２０の３種類に分けられている。
ウェブサーバ１００は、ネットワーク１４０でマスタ装置１１０と接続されている。ウェブサーバ１００は、マスタ装置１１０からＵＲＬ（Uniform Resource Locator）で識別されるファイルを要求された場合、該ファイルをマスタ装置１１０に送信する。ウェブサーバ１００は、例としてインターネット上で公開されているような一般的なウェブサーバ群を示し、特定のウェブサーバに限定したものではない。
【００１１】
マスタ装置１１０は、ネットワーク１４０によってウェブサーバ１００と、ネットワーク１５０によって各スレーブ装置１２０と接続された端末である。マスタ装置１１０は、内部にマスタウェブブラウザ１１１、マスタリソース管理部１１２、ＤＯＭツリー変更点監視部１１３、マスタ通信部１１４を持つ。マスタ装置１１０は一般的なパーソナルコンピュータと同様に、マウス、キーボード、タッチパネル等の入力装置と、液晶ディスプレイ等の画面出力装置を持ち、マスタ装置１１０の利用者はこれらの入出力装置を使用して、マスタウェブブラウザ１１１を利用可能である。
【００１２】
スレーブ装置１２０は任意の台数分存在する端末であり、最低１台存在する。スレーブ装置１２０は、ネットワーク１５０によってマスタ装置１１０と接続されている。スレーブ装置１２０は、内部にスレーブウェブブラウザ１２１、スレーブ通信部１２２、スレーブリソース管理部１２３、ＤＯＭツリー構築部１２４を持つ。スレーブ装置１２０は一般的なパーソナルコンピュータと同様に、マウス、キーボード、タッチパネル等の入力装置と、液晶ディスプレイ等の画面出力装置を持ち、スレーブ装置１２０の利用者はこれらの入出力装置を使用して、スレーブウェブブラウザ１２１を利用可能である。図１においては、スレーブ装置１２０はスレーブＡからスレーブＺまで描かれているが、スレーブ内部の構成は全て同一のため、同じ符号１２０を割り当てている。
【００１３】
ネットワーク１４０は、ウェブサーバ１００とマスタ装置１１０間の通信路である。ネットワーク１４０は、ウェブサーバ１００とマスタ装置１１０間を物理的に直接接続する通信路である必要はなく、例えば公衆回線網や無線通信のように、論理的な通信路でも良い。
【００１４】
ネットワーク１５０は、マスタ装置１１０とスレーブ装置１２０間の通信路である。ネットワーク１５０は、マスタ装置１１０とスレーブ装置１２０間を物理的に直接接続する通信路である必要はなく、例えば公衆回線網や無線通信のように、論理的な通信路でも良い。図１の通り、マスタ装置１１０は全スレーブ装置１２０と通信路が設定されている。
【００１５】
以下、マスタ装置１１０とスレーブ装置１２０の詳細について説明する。
マスタリソース管理部１１２は、ネットワーク１４０を使用して、マスタウェブブラウザ１１１とウェブサーバ１００間の通信を行う。マスタウェブブラウザ１１１からウェブサーバ１００に対してファイルの要求が発生した場合、マスタリソース管理部１１２を介してウェブサーバ１００に要求を行う。ウェブサーバ１００が要求に応じ、ウェブサーバ１００からマスタリソース管理部１１２にファイルの送信が終わった後、マスタリソース管理部１１２はマスタウェブブラウザ１１１にファイルを送信する。また、マスタリソース管理部１１２は、ウェブサーバ１００から送信されたファイルが、画像（例えばＪＰＥＧ、ＰＮＧ、ＧＩＦ、ＳＶＧ等のファイル）、音声（例えばＭＰ３、ＡＡＣ等のファイル）、動画（ＭＰＥＧ、ＡＶＩ等のファイル）、スクリプト（例えばＪａｖａＳｃｒｉｐｔ（登録商標／以下、省略して記載）、ＥＣＭＡＳｃｒｉｐｔ（登録商標）、ＪＳｃｒｉｐｔ、ＶＢＳｃｒｉｐｔ等のファイル）、ＨＴＭＬやＸＨＴＭＬの要素をどの様に表示するかを指示するＣＳＳ（Cascading Style Sheets）、その他ＭａｔｈＭＬ、ＶｏｉｃｅＭＬ等のように、ウェブページ上で用いられるリソースファイルであると判断した場合、それらのファイルをマスタウェブブラウザ１１１に送信すると共に、後述のマスタ通信部１１４及びスレーブ通信部１２２を介して、全スレーブ装置１２０のスレーブリソース管理部１２３にも同様にファイルを送信する。また、リソースファイルを識別するために、リソースファイルのＵＲＬも同時にスレーブリソース管理部１２３に送信する。
【００１６】
マスタウェブブラウザ１１１は、マスタリソース管理部１１２を通じて、ウェブサーバ１００と通信を行い、ウェブページを表示する。マスタウェブブラウザ１１１は、例としてMicrosoft Internet Explorer（登録商標／以下、省略して記載）や、Google Chrome（登録商標／以下、省略して記載）のように、一般的なウェブブラウザであり、特定のウェブブラウザを示すものではない。マスタウェブブラウザ１１１は動作例として、マスタの利用者によって閲覧するウェブページのＵＲＬを指示されると、ウェブサーバ１００にＵＲＬを問い合わせ、ウェブサーバ１００から取得したＨＴＭＬもしくはＸＨＴＭＬ、及び、各種リソースファイルを処理し、マスタ装置１１０のディスプレイに表示する。
【００１７】
ＤＯＭツリー変更点監視部１１３は、マスタウェブブラウザ１１１で発生したＤＯＭツリーに対する変更を監視する。ＤＯＭツリーへの変更を検出した場合、その変更点を後述のマスタ通信部１１４及びスレーブ通信部１２２を介して、全スレーブ装置１２０のＤＯＭツリー構築部１２４に送信する。
【００１８】
マスタ通信部１１４は、ネットワーク１５０を使用して、マスタ装置１１０と全スレーブ装置１２０間の通信を行う。実施の形態１のウェブブラウザ画面同期システムにおいては、マスタリソース管理部１１２及びＤＯＭツリー変更点監視部１１３から受け取った送信データを、全スレーブ装置１２０に送信する。
【００１９】
スレーブ通信部１２２は、ネットワーク１５０を使用して、マスタ装置１１０と全スレーブ装置１２０間の通信を行う。実施の形態１のウェブブラウザ画面同期システムにおいては、マスタ通信部１１４を介して送信された、マスタリソース管理部１１２及びＤＯＭツリー変更点監視部１１３からの送信データを受信する。
【００２０】
マスタ通信部１１４及びスレーブ通信部１２２は、通信の順序をキューによって管理する。従って通信の順序が逆転することはなく、順番通りに送受信が行われる。
スレーブリソース管理部１２３は、マスタ通信部１１４及びマスタリソース管理部１１２を介して、マスタリソース管理部１１２から送信されたリソースファイルを管理する。スレーブウェブブラウザ１２１からリソースの要求が発生した場合、スレーブリソース管理部１２３は自身が管理しているリソースファイル群から、リソースファイルのＵＲＬを元にファイルを探し、スレーブウェブブラウザ１２１に送信する。
【００２１】
ＤＯＭツリー構築部１２４は、マスタ通信部１１４及びスレーブ通信部１２２を介して、ＤＯＭツリー変更点監視部１１３から送信されたＤＯＭツリー変更点を受信し、スレーブウェブブラウザ１２１のＤＯＭツリーを、ＤＯＭツリー変更点に応じて構築を行う。
【００２２】
スレーブウェブブラウザ１２１は、ＤＯＭツリー構築部１２４及びスレーブリソース管理部１２３を介して、マスタ装置１１０から受信したＤＯＭツリー変更点及びリソースを元にウェブページを表示する。スレーブウェブブラウザ１１１は、例としてMicrosoft Internet ExplorerやGoogle Chromeのように、一般的なウェブブラウザであり、特定のウェブブラウザを示すものではない。
【００２３】
図２は、実施の形態１のウェブブラウザ画面同期システムにおけるブラウザ画面同期方式において、マスタ装置１１０の使用者がウェブブラウザを操作する際の同期の流れを説明するシーケンス図を示す。
図２にはオブジェクトとして、マスタ使用者２０１、ウェブサーバ１００、マスタリソース管理部１１２、マスタウェブブラウザ１１１、ＤＯＭツリー変更点監視部１１３、ＤＯＭツリー構築部１２４、スレーブリソース管理部１２３、スレーブウェブブラウザ１２１が存在する。マスタ使用者２０１は、マスタ装置１１０の使用者である。マスタ使用者２０１以外のオブジェクトは、図１で示された構成と同一のオブジェクトを示し、同じ符号を用いている。
【００２４】
以下、図２のシーケンス図の流れを時系列順に説明する。
図２において、まずマスタ使用者２０１が、マスタウェブブラウザ１１１に対して、ウェブページ内のアンカーをクリックするなどのページを遷移する操作、もしくは、マスタウェブブラウザ１１１が持つＵＲＬバーにＵＲＬを直接入力するという操作を行ったとする（ページ遷移操作２１１）。なおＵＲＬバーとはマスタ使用者２０１がテキストを入力可能とするオブジェクトであり、そこに入力される文字列が更新されると、その文字列をＵＲＬとしてマスタウェブブラウザ１１１は解釈し、そのＵＲＬに対応するウェブページに遷移する。マスタウェブブラウザ１１１は、マスタ使用者２０１によるページ遷移操作２１１に反応し、ウェブページを表示するために、ＨＴＭＬ（もしくはＸＨＴＭＬ）をマスタリソース管理部１１２に要求する処理を行う（ＨＴＭＬ要求２１２）。この際、マスタウェブブラウザ１１１は前記のＵＲＬを用いて、要求するＨＴＭＬをマスタリソース管理部１１２に対して指定する。
【００２５】
マスタリソース管理部１１２は、マスタウェブブラウザ１１１からのＨＴＭＬ要求２１２に反応し、ウェブサーバ１００に対してＨＴＭＬを要求する処理を行う（ＨＴＭＬ要求２１３）。この際、マスタウェブブラウザ１１１によるＨＴＭＬ要求２１２と同様に、前記のＵＲＬを用いてウェブサーバ１００にＨＴＭＬ要求２１３を行う。
ウェブサーバ１００は、マスタリソース管理部１１２からのＨＴＭＬ要求２１３に反応し、ＵＲＬで指定されたＨＴＭＬファイルをマスタリソース管理部１１２に送信する（ＨＴＭＬ送信２１４）。
【００２６】
マスタリソース管理部１１２は、ウェブサーバ１００からのＨＴＭＬ送信２１４に反応し、受信したＨＴＭＬファイルをマスタウェブブラウザ１１１に送信する（ＨＴＭＬ送信２１５）。また、マスタリソース管理部１１２は、ウェブサーバ１００から受信したＨＴＭＬファイルが、画像、音声、動画等のリソースファイルであるか判別を行う。今回の場合はＨＴＭＬであるためリソースファイルではないと判別され、リソースファイルであると判別された場合に発生する追加の処理を行わない。
【００２７】
マスタウェブブラウザ１１１は、マスタリソース管理部１１２からのＨＴＭＬ送信２１５に反応し、ＨＴＭＬ解析及びＤＯＭツリー生成を行う（ＨＴＭＬ解析・ＤＯＭツリー生成２１６）。この処理２１６は、ＨＴＭＬを図示しない字句解析器および構文解析器で処理し、ＤＯＭツリーを生成する処理である。ＤＯＭツリーが生成された後、ウェブページで画像、音声、動画等のリソースが用いられていると判明した場合、マスタリソース管理部１１２に対してリソース要求を行う（リソース要求２１７）。この際、ＨＴＭＬ要求２１２と同様に、ＵＲＬによってリソースを指定する。また、ウェブページによって複数の異なるリソースが使用されている場合、それら複数のリソースを要求する。
【００２８】
マスタリソース管理部１１２は、マスタウェブブラウザ１１１からのリソース要求２１７に反応し、ウェブサーバ１００に対して同様のリソースの要求を行う（リソース要求２１８）。
ウェブサーバ１００は、マスタリソース管理部１１２からのリソース要求２１８に反応し、ＵＲＬで指定されたリソースファイルをマスタリソース管理部１１２に送信する（リソース送信２１９）。
マスタリソース管理部１１２は、ウェブサーバ１００からのリソース送信２１９に反応し、受信したリソースファイルをマスタウェブブラウザ１１１に送信する（リソース送信２２０）。また、マスタリソース管理部１１２は、ウェブサーバ１００から受信したファイルがリソースファイルであると判別した結果として、マスタ通信部１１４及びスレーブ通信部１２２を介して、スレーブリソース管理部１２３にリソースファイルを送信する（リソース送信２２１、リソース送信２２２、リソース送信２２３）。この際、リソースファイルに対応するＵＲＬの情報も、同様にスレーブリソース管理部１２３に送信する。
【００２９】
スレーブリソース管理部１２３は、マスタ通信部１１４とスレーブ通信部１２２を介して、マスタリソース管理部１１２から受信したリソースファイル及び該リソースファイルのＵＲＬを格納する（リソース格納２２４）。
【００３０】
マスタウェブブラウザ１１１は、マスタリソース管理部１１２からのリソース送信２２０に反応し、ＤＯＭツリーとリソースファイルを使用してウェブページのレンダリングを行う（レンダリング２２５）。これにより、マスタウェブブラウザ１１１にウェブページが表示される。
【００３１】
ここで、説明の時系列を、マスタウェブブラウザ１１１がＨＴＭＬ解析・ＤＯＭツリー生成２１６を行った直後の時点に戻す。この時、マスタウェブブラウザ１１１のＤＯＭツリーが変更された結果として、ＤＯＭツリー変更点監視部１１３がＤＯＭツリーの変更を検知する（ＤＯＭツリー変更検知２２６）。
ＤＯＭツリー変更点監視部１１３は、ＤＯＭツリー変更検知２２６に反応し、マスタ通信部１１４及びスレーブ通信部１２２を介して、ＤＯＭツリー構築部１２４に対してＤＯＭツリー変更点送信を行う（ＤＯＭツリー変更点送信２２７、ＤＯＭツリー変更点送信２２８、ＤＯＭツリー変更点送信２２９）。
【００３２】
ＤＯＭツリー構築部１２４は、マスタ通信部１１４及びスレーブ通信部１２２を介して、前記ＤＯＭツリー変更点監視部１１３からのＤＯＭツリー変更点送信２２９に反応し、受信したＤＯＭツリー変更点を用いて、スレーブウェブブラウザ１２１のＤＯＭツリー構築を行う（ＤＯＭツリー構築２３０）。これにより、スレーブウェブブラウザ１２１のＤＯＭツリーがマスタウェブブラウザ１１１と同期される。
【００３３】
スレーブウェブブラウザ１２１は、ＤＯＭツリー構築２３０によってマスタウェブブラウザ１１１のＤＯＭツリーと同期された結果、ウェブページでリソースが用いられていると判明した場合、スレーブリソース管理部１２３に対してリソース要求を行う（リソース要求２３１）。この際、ＵＲＬを用いてリソースファイルの指定が行われる。
スレーブリソース管理部１２３は、スレーブウェブブラウザ１２１からのリソース要求２３１に反応し、スレーブウェブブラウザ１２１に対してリソースファイルを送信する（リソース送信２３２）。この際、スレーブリソース管理部１２３は、スレーブウェブブラウザ１２１から指定されたＵＲＬを元に、自身が管理するリソースファイル群からリソースファイルを探す。
【００３４】
スレーブウェブブラウザ１２１は、スレーブリソース管理部１２３からのリソース送信２３２に反応し、ＤＯＭツリーとリソースファイルを使用してウェブページのレンダリングを行う（レンダリング２３３）。これにより、スレーブウェブブラウザ１２１に、マスタウェブブラウザ１１１と同様のウェブページが表示される。
【００３５】
このように構成された実施の形態１のウェブブラウザ画面同期システムにおいては、マスタリソース管理部１１２は、ウェブサーバ１００から受信したファイルが画像、音声、動画等のリソースファイルであると判別した場合、マスタウェブブラウザ１１１にリソースファイルを送信する（リソース送信２２０）と共に、マスタ通信部１１４及びスレーブ通信部１２２を介して、スレーブリソース管理部１２３にもリソースファイルを送信する（リソース送信２２１、リソース送信２２２、リソース送信２２３）。また、スレーブリソース管理部１２３は、マスタ通知部１１４及びスレーブ通信部１２２を介して受信したリソースファイルを格納する（リソース格納２２４）。そして、スレーブウェブブラウザ１２１は、ウェブページのレンダリングにリソースファイルが必要である場合、スレーブリソース管理部１２３に問い合わせることでリソースを利用できる（リソース要求２３１、リソース送信２３２）。従って、スレーブウェブブラウザ１２１においても、画像等のリソースを使用可能であるため、本来のウェブページの表示内容通りに忠実にウェブページを表示できる。
【００３６】
また、マスタ装置１１０においてウェブページを遷移（ページ遷移操作２１１）した結果によるマスタウェブブラウザ１１１のＤＯＭツリーの変更点を、全スレーブ装置１２０に送信し（ＤＯＭツリー変更点送信２２７、ＤＯＭツリー変更点送信２２８、ＤＯＭツリー変更点送信２２９）、ＤＯＭツリー変更点を元にスレーブウェブブラウザ１２１のＤＯＭツリーを構築することにより（ＤＯＭツリー構築２３０）、全スレーブ装置１２０におけるスレーブウェブブラウザ１２１のＤＯＭツリーを、マスタウェブブラウザ１１１のＤＯＭツリーと同期する。従って、マスタ及び全スレーブにおけるウェブブラウザの画面内容を同一にできる。ＶＮＣなどによる画面の画像を転送する方法に比べ、ＤＯＭツリーの変更点のみを転送すれば良いため、通信量を低減できる。
【００３７】
また、ＣＳＳについてもＤＯＭツリーとして表現されるため、ＤＯＭツリーの変更点のみを転送する事でＣＳＳ上に発生した変更をマスタからスレーブに通知する事が可能となる。結果として、ＣＳＳ上で発生した変更内容による画面内容の変更も合わせて同期可能となる。
【００３８】
以上説明したように、実施の形態１のウェブブラウザ画面同期システムによれば、１台のマスタ装置と１台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおいて、マスタ装置は、マスタウェブブラウザがウェブページを表示するのに必要なファイルデータを格納するウェブサーバとマスタウェブブラウザ間の通信を管理すると共に、マスタ装置とスレーブ装置とのリソース同期管理を行うマスタリソース管理部と、マスタウェブブラウザのＤＯＭツリーに対する変更点を検出するＤＯＭツリー変更点監視部とを備え、スレーブ装置は、マスタリソース管理部と同期して、スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、マスタ装置から受信したＤＯＭツリー変更点を元にスレーブウェブブラウザのＤＯＭツリーを構築するＤＯＭツリー構築部とを備えたので、同期に必要な通信量を抑えつつ、どのコンピュータ上においても、本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
【００３９】
また、実施の形態１のウェブブラウザ画面同期システムによれば、マスタリソース管理部は、ウェブサーバから受信したファイルがリソースファイルであった場合、スレーブリソース管理部にリソースファイルを転送し、スレーブリソース管理部は、マスタリソース管理部から転送されたリソースファイルを保管し、スレーブウェブブラウザの要求に応じてリソースファイルをスレーブウェブブラウザに送信するようにしたので、本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
【００４０】
また、実施の形態１のマスタ装置によれば、１台のマスタ装置と１台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおけるマスタ装置であって、マスタウェブブラウザがウェブページを表示するのに必要なデータを格納するウェブサーバとマスタウェブブラウザ間の通信を管理すると共に、マスタ装置とスレーブ装置とのリソース同期管理を行うマスタリソース管理部と、マスタウェブブラウザのＤＯＭツリーに対する変更点を検出するＤＯＭツリー変更点監視部とを備えたので、同期に必要な通信量を抑えつつ、スレーブ装置で本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
【００４１】
また、実施の形態１のスレーブ装置によれば、１台のマスタ装置と１台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおけるスレーブ装置であって、マスタ装置と同期して、スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、マスタ装置から受信したＤＯＭツリー変更点を元にスレーブウェブブラウザのＤＯＭツリーを構築するＤＯＭツリー構築部とを備えたので、同期に必要な通信量を抑えつつ、マスタ装置と、本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
【００４２】
実施の形態２．
実施の形態２のウェブブラウザ画面同期システムにおける図面上の構成は図１に示した実施の形態１と同様であるため、図１の構成を用いて説明する。実施の形態２のマスタリソース管理部１１２は、ウェブサーバ１００から受信したファイルがリソースファイルであった場合はそのリソースファイルを保管するよう構成されている。また、スレーブリソース管理部１２３は、スレーブウェブブラウザ１２１の要求に応じ、マスタリソース管理部１１２にリソースファイルを要求し、マスタリソース管理部１１２から受信したリソースファイルを、スレーブウェブブラウザ１２１に転送するよう構成されている。その他の構成は実施の形態１と同様であるため、ここでの説明は省略する。
【００４３】
図３は、実施の形態２のウェブブラウザ画面同期システムにおけるブラウザ画面同期方式において、実施の形態１と同様に、マスタ装置１１０の使用者がウェブブラウザを操作する際の同期の流れを説明するシーケンス図を示す。
【００４４】
図３には、実施の形態１における図２と同様に、オブジェクトとして、マスタ使用者２０１、ウェブサーバ１００、マスタリソース管理部１１２、マスタウェブブラウザ１１１、ＤＯＭツリー変更点監視部１１３、ＤＯＭツリー構築部１２４、スレーブリソース管理部１２３、スレーブウェブブラウザ１２１が存在する。
全てのオブジェクトの役割及び一部の処理は、実施の形態１と同様であるため、対応する部分には図２と同じ符号を用いている。
【００４５】
図３は、実施の形態１と同様に、マスタ使用者２０１がマスタウェブブラウザ１１１に対して、ウェブページを遷移する操作、もしくは、ＵＲＬバーにＵＲＬを直接入力するという操作を行った際の処理の流れを示す。ここで、実施の形態１と同様の処理は、ページ遷移操作２１１、ＨＴＭＬ要求２１２からＨＴＭＬ送信２１５までの流れ、ＨＴＭＬ解析・ＤＯＭツリー生成２１６、リソース要求２１７からリソース送信２２０までの流れ、レンダリング２２５、ＤＯＭツリー変更検知２２６からＤＯＭツリー構築２３０までの流れ、リソース要求２３１、及びレンダリング２３３であり、これらの処理についてはその説明を省略する。
【００４６】
以下、実施の形態１と異なる実施の形態２の処理について説明する。
マスタリソース管理部１１２は、ウェブサーバ１００からのリソース送信２１９に反応し、実施の形態１と同様に、ウェブサーバ１００から受信したファイルがリソースファイルかどうか判別する処理と、マスタウェブブラウザ１１１にリソースを送信する（リソース送信２２０）処理を行う。しかし、実施の形態１では、この時点でリソースファイルをスレーブリソース管理部１２３に送信するが（図２のリソース送信２２１、リソース送信２２２、リソース送信２２３参照）、実施の形態２においては、この時点でリソースファイルをスレーブリソース管理部１２３に送信しない。
【００４７】
また、マスタリソース管理部１１２は、ウェブサーバ１００からのリソース送信２１９に反応し、ウェブサーバ１００から受信したリソースファイルと該リソースファイルのＵＲＬを格納する（リソース格納３０１）。
【００４８】
スレーブウェブブラウザ１２１は、実施の形態１と同様に、ＤＯＭツリー構築２３０によってマスタウェブブラウザ１１１のＤＯＭツリーと同期された結果、ウェブページのレンダリングにリソースが用いられていると判明した場合、スレーブリソース管理部１２３に対してリソース要求を行う（リソース要求２３１）。この際、ＵＲＬを用いてリソースファイルの指定が行われる。
スレーブリソース管理部１２３は、スレーブウェブブラウザ１２１からのリソース要求２３１に反応し、スレーブ通信部１２２及びマスタ通信部１１４を介して、マスタリソース管理部１１２にリソース要求を行う（リソース要求３０２、リソース要求３０３、リソース要求３０４）。
【００４９】
マスタリソース管理部１１２は、スレーブ通信部１２２及びマスタ通信部１１４を介して、スレーブリソース管理部１２３からのリソース要求３０４に反応し、マスタ通信部１１４及びスレーブ通信部１２２を介して、スレーブリソース管理部１２３にリソースファイルを送信する（リソース送信３０５、リソース送信３０６、リソース送信３０７）。この際、マスタリソース管理部１１２は、リソース要求３０４で指定されたＵＲＬを元に、自身が管理するリソースファイル群からリソースファイルを探す。
【００５０】
スレーブリソース管理部１２３は、マスタ通信部１１４及びスレーブ通信部１２２を介して、マスタリソース管理部１１２からのリソース送信３０７に反応し、受信したリソースファイルをスレーブウェブブラウザ１２１に送信する（リソース送信３０８）。
スレーブウェブブラウザ１２１は、スレーブリソース管理部１２３からのリソース送信３０８に反応し、実施の形態１と同様に、ＤＯＭツリーとリソースファイルを使用してウェブページのレンダリングを行う（レンダリング２３３）。これにより、スレーブウェブブラウザ１２１に、マスタウェブブラウザ１１１と同様のウェブページが表示される。
【００５１】
このように構成された実施の形態２のウェブブラウザ画面同期システムにおいては、実施の形態１と同様に、マスタ装置１１０においてウェブページを遷移（ページ遷移操作２１１）した結果によるマスタウェブブラウザ１１１のＤＯＭツリーの変更点を、全スレーブ装置１２０に送信し（ＤＯＭツリー変更点送信２２７、ＤＯＭツリー変更点送信２２８、ＤＯＭツリー変更点送信２２９）、ＤＯＭツリー変更点を元にスレーブウェブブラウザ１２１のＤＯＭツリーを構築することにより（ＤＯＭツリー構築２３０）、全スレーブ装置１２０におけるスレーブウェブブラウザ１２１のＤＯＭツリーを、マスタウェブブラウザ１１１のＤＯＭツリーと同期する。従って、マスタ装置１１０及び全スレーブ装置１２０におけるウェブブラウザの画面内容を同一にできる。ＶＮＣなどによる画面の画像を転送する方法に比べ、ＤＯＭツリーの変更点のみを転送すればよいため、通信量を削減できる。
【００５２】
また、マスタリソース管理部１１２は、ウェブサーバ１００から受信したファイルが画像、音声、動画等のリソースファイルであると判別した場合、マスタウェブブラウザ１１１にリソースファイルを送信する（リソース送信２２０）と共に、自身の管理するストレージにリソースファイルを格納する（リソース格納３０１）。また、スレーブリソース管理部１２３は、スレーブウェブブラウザ１２１からリソースの要求があった場合（リソース要求２３１）、スレーブ通信部１２２及びマスタ通信部１１４を介して、マスタリソース管理部１１２にリソース要求を行う（リソース要求３０２、リソース要求３０３、リソース要求３０４）。そして、マスタリソース管理部１１２は、リソース要求３０４に反応し、マスタ通信部１１４及びスレーブ通信部１２２を介して、スレーブリソース管理部１２３にリソースファイルを送信する（リソース送信３０５、リソース送信３０６、リソース送信３０７）。更に、スレーブリソース管理部１２３は、リソース送信３０７に反応し、受信したリソースファイルをスレーブウェブブラウザ１２１に送信する（リソース送信３０８）。従って、スレーブウェブブラウザ１２１においても、画像等のリソースを使用可能であるため、本来のウェブページの表示内容通りに忠実にウェブページを表示できる。
【００５３】
また、実施の形態１では、マスタリソース管理部１１２が全スレーブのスレーブリソース管理部１２３に対して、予め全リソースファイルを送信する形態であった。一方、実施の形態２では、スレーブウェブブラウザ１２１においてリソースファイルが必要になった際に、スレーブリソース管理部１２３を介して、リソースファイルを格納しているマスタリソース管理部１１２からリソースファイルを受信するという形態を採る。従って、スレーブウェブブラウザ１２１の必要に応じてリソースファイルを送信することにより、マスタ装置１１０及びスレーブ装置１２０間の通信負荷を削減できる。
【００５４】
以上説明したように、実施の形態２のウェブブラウザ画面同期システムによれば、マスタリソース管理部は、ウェブサーバから受信したファイルがリソースファイルであった場合はリソースファイルを保管し、スレーブリソース管理部は、スレーブウェブブラウザの要求に応じ、マスタリソース管理部にリソースファイルを要求し、マスタリソース管理部から受信したリソースファイルを、スレーブウェブブラウザに転送するようにしたので、本来のウェブページの通りに忠実に画面の同期を可能にすることができると共に、マスタ装置とスレーブ装置との通信負荷を削減することができる。
【００５５】
実施の形態３．
実施の形態３においても、ウェブブラウザ画面同期システムにおける図面上の構成は図１に示した実施の形態１と同様であるため、図１の構成を用いて説明する。実施の形態３のＤＯＭツリー変更点監視部１１３は、ＤＯＭツリーに対する変更点がスレーブ装置１２０との画面同期に必要な変更点であるか否かを判断し、画面同期に必要なＤＯＭノードのみをスレーブ装置１２０への送信データとするよう構成されている。その他の構成は実施の形態１と同様であるため、ここでの説明は省略する。
【００５６】
図４は、実施の形態３のウェブブラウザ画面同期システムにおけるブラウザ画面同期方式において、実施の形態１と同様に、マスタ装置１１０の使用者がウェブブラウザを操作する際の同期の流れを説明するシーケンス図を示す。
【００５７】
実施の形態３は、実施の形態１と異なり、マスタウェブブラウザ１１１のＤＯＭツリーが変更されたとＤＯＭツリー変更点監視部１１３が検知を行った際に（ＤＯＭツリー変更検知２２６）、ＤＯＭツリー変更点をスレーブに送信するか否か判断が行われる（ＤＯＭツリー変更点送信判断４０１）。この処理は、ＤＯＭツリー変更点が画面同期に必要な変更であるか否かで判断を行う。具体的な一例として、例えばＤＯＭツリー変更点がコメントノード、もしくは、スクリプトの実行に関するノードである場合、ＤＯＭツリー変更点を破棄し、ＤＯＭツリー変更点をスレーブ装置１２０には送信しない。一方、ＤＯＭツリー変更点が、これらコメントノードやスクリプトの実行に関するノードでない場合、後続のＤＯＭツリー変更点送信処理を行い（ＤＯＭツリー変更点送信２２７）、スレーブ装置１２０にＤＯＭツリー変更点を送信する方法が考えられる。図４において、これ以外の処理は図２に示した実施の形態１と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００５８】
このように構成された実施の形態３のウェブブラウザ画面同期システムにおいては、ＤＯＭツリー変更点監視部１１３において、ＤＯＭツリー変更点を送信するか否か判断し（ＤＯＭツリー変更点送信判断４０１）、その結果、ＤＯＭツリー変更点がコメントノードである場合は、スレーブ装置１２０にＤＯＭツリー変更点を送信しない。コメントノードは画面の同期に不必要なデータであるため、マスタ装置１１０及びスレーブ装置１２０間の通信負荷を削減できる。
【００５９】
また、ＤＯＭツリー変更点送信判断４０１の処理によって、ＤＯＭツリー変更点がスクリプトの実行に関するノードである場合は、スレーブ装置１２０にＤＯＭツリー変更点を送信しない。その結果、スレーブウェブブラウザ１２１においてスクリプトを実行することがなくなり、マスタウェブブラウザ１１１との画面の同期に反して、スレーブウェブブラウザ１２１が独自のスクリプト処理を行うことがなくなる。従って、より厳密にマスタ装置１１０とスレーブ装置１２０の画面の同期を達成でき。また、スクリプトの実行に関するノードの通信がなくなり、マスタ装置１１０及びスレーブ装置１２０間の通信負荷を削減できる。
【００６０】
以上説明したように、実施の形態３のウェブブラウザ画面同期システムによれば、ＤＯＭツリー変更点監視部は、ＤＯＭツリーに対する変更点がスレーブ装置との画面同期に必要な変更点であるか否かを判断し、画面同期に必要なＤＯＭノードのみをスレーブ装置への送信データとするようにしたので、マスタ装置とスレーブ装置間の通信負荷を軽減することができる。
【００６１】
また、実施の形態３のウェブブラウザ画面同期システムによれば、ＤＯＭツリー変更点監視部は、ＤＯＭツリー内のコメントノードをスレーブ装置への送信データから除外するようにしたので、マスタ装置とスレーブ装置間の通信負荷を軽減することができる。
【００６２】
また、実施の形態３のウェブブラウザ画面同期システムによれば、ＤＯＭツリー変更点監視部は、ＤＯＭツリー内のスクリプトの実行に関するノードをスレーブ装置への送信データから除外するようにしたので、マスタ装置とスレーブ装置間の通信負荷を軽減することができる。
【００６３】
実施の形態４．
図５は、実施の形態４におけるウェブブラウザ画面同期システムを示す構成図である。図５に示す実施の形態４のシステムは、実施の形態１における図１の構成に加えて、操作イベント処理部５１１と、操作イベント監視部５２１が存在する。
【００６４】
操作イベント処理部５１１は、マスタ通信部１１４とスレーブ通信部１２２を介して、操作イベント監視部５２１から送信された操作イベントの処理を行う。受信した操作イベントに応じて、同様の操作イベントをマスタウェブブラウザ１１１に対して発生させる。
操作イベント監視部５２１は、スレーブウェブブラウザ１２１で発生する操作イベントを監視する。操作イベントとは、例えば、マウス、キーボード等の入力インタフェースのイベントや、ウェブページにおけるＤＯＭイベントなど、スレーブの使用者の操作に起因するイベントが該当する。操作イベントを検知した場合、スレーブ通信部１２２とマスタ通信部１１４を介して、操作イベント処理部５１１に操作イベントのデータを送信する。操作イベントのデータ例として、マウスを移動した結果によるマウスカーソルの座標値、状態が変化したマウスのボタンの識別子及び状態値、状態が変化したキーボードのキーの識別子及び状態値、ＤＯＭイベントの識別子などが挙げられる。
【００６５】
図６は、実施の形態４におけるウェブブラウザ画面同期システムにおいて、スレーブ装置１２０の使用者が、スレーブウェブブラウザ１２１で表示されているウェブページに対して、キー入力を行った場合の同期の流れを説明するシーケンス図を示す。
図６にはオブジェクトとして、操作イベント処理部５１１、操作イベント監視部５１２、スレーブ使用者６０１及び実施の形態１における図２と同じ符号を持つオブジェクトが存在する。ここで、スレーブ使用者６０１は、スレーブ装置１２０の使用者である。
【００６６】
図６のシーケンスは、開始前の前提条件として、マスタウェブブラウザ１１１とスレーブウェブブラウザ１２１のＤＯＭツリーが同期されており、使用者からの操作を待っている状態である。また、表示しているウェブページには、使用者による文字列を入力可能な文字列入力領域が存在する。更に、キーボードがスレーブ装置１２０に接続されており、使用可能である。
【００６７】
以下、図６のシーケンス図の流れを時系列順に説明する。
まず、スレーブ使用者６０１が、スレーブウェブブラウザ１２１に表示されている文字列入力領域に対して、スレーブ装置１２０に接続されているキーボードを用いて、文字を入力したとする（文字入力６１１）。
操作イベント監視部５１２は、スレーブ使用者６０１による文字入力６１１に反応し、操作イベントが発生したことを検知する（操作イベント検知６１２）。操作イベント監視部５１２は、操作イベント検知６１２を行った後、スレーブ通信部１２２及びマスタ通信部１１４を介して、該操作イベントを操作イベント処理部５１１に送信する（操作イベント送信６１３、操作イベント送信６１４、操作イベント送信６１５）。例えば“ａ”と刻印されたキーを打鍵した場合、「“ａ”を打鍵した」という情報が、操作イベント検知６１２に基づき操作イベント処理部５１１に対して送信される。
【００６８】
操作イベント処理部５１１は、スレーブ通信部１２２及びマスタ通信部１１４を介して、操作イベント監視部５１２からの操作イベント送信６１５に反応し、受信した操作イベントと同様の処理をマスタウェブブラウザ１１１に対して実行する（操作イベント実行６１６）。すなわち、例えば「“ａ”を打鍵した」という操作イベントを受信した場合、あたかもマスタ装置１１０に接続されたキーボードが打鍵されたかのように、マスタウェブブラウザ１１１に打鍵処理を実行させる。
【００６９】
マスタウェブブラウザ１１１は、操作イベント処理部５１１の操作イベント実行６１６に反応し、操作イベントの処理を行い、操作イベントの処理結果としてＤＯＭツリーを構築する（ＤＯＭツリー構築６１７）。例えば「“ａ”を打鍵した」という操作イベントの場合、マスタウェブブラウザ１１１に表示されているウェブページ内に存在する文字列入力領域に“ａ”という文字を挿入し、マスタウェブブラウザ１１１のＤＯＭツリーにおける文字列入力領域に対応するＤＯＭノードの、入力文字列情報を示す値を更新する。
また、マスタウェブブラウザ１１１は、ＤＯＭツリー構築６１７を処理した結果として、マスタ装置１１０の画面を更新するためにレンダリングを行う（レンダリング２２５）。
【００７０】
マスタウェブブラウザ１１１がＤＯＭツリー構築６１７を行ったことで、ＤＯＭツリー変更点監視部１１３はマスタウェブブラウザ１１１のＤＯＭツリーが変更されたことを検知し（ＤＯＭツリー変更検知２２６）、実施の形態１と同様に、該ＤＯＭツリー変更点がスレーブ装置１２０のＤＯＭツリー構築部１２４に送信され、スレーブウェブブラウザ１２１のＤＯＭツリーがマスタウェブブラウザ１１１のＤＯＭツリーと同期される。また、スレーブウェブブラウザ１２１のＤＯＭツリーが構築されたことを受けてスレーブウェブブラウザ１２１はレンダリング２３３を行う。
【００７１】
このように構成された実施の形態４のウェブブラウザ画面同期システムにおいては、スレーブ使用者６０１が文字列入力領域に文字を入力したという操作イベントが操作イベント監視部５１２によって検知され（操作イベント検知６１２）、該操作イベントが操作イベント処理部５１１に送信され、マスタウェブブラウザ１１１で該操作イベントの実行が行われる（操作イベント実行６１６）。従って、マスタウェブブラウザ１１１のＤＯＭツリーの構築と（ＤＯＭツリー構築６１７）、レンダリング処理（レンダリング２２５）の結果、マスタ装置１１０の画面が更新され、スレーブ使用者６０１による操作がマスタ装置１１０に反映される。
【００７２】
また、実施の形態１と同様に、マスタウェブブラウザ１１１のＤＯＭツリーが変更されたことを受けて、ＤＯＭツリー変更点監視部１１３が変更の検知（ＤＯＭツリー変更検知２２６）と、ＤＯＭツリー構築部１２４への該変更点の送信（ＤＯＭツリー変更点送信２２７、ＤＯＭツリー変更点送信２２８、ＤＯＭツリー変更点送信２２９）が行われる。そして、ＤＯＭツリー構築部１２４はスレーブウェブブラウザ１２１のＤＯＭツリーを構築し（ＤＯＭツリー構築２３０）、スレーブウェブブラウザ１２１はレンダリング処理を行う（レンダリング２３３）。従って、マスタウェブブラウザ１１１とスレーブウェブブラウザ１２１のＤＯＭツリーの同期と、ひいてはマスタ装置１１０とスレーブ装置１２０の画面の表示内容の同期を実現できる。
【００７３】
更に、スレーブ使用者６０１がスレーブウェブブラウザ１２１において、ウェブブラウザのユーザインタフェースの各種要素（例えば、表示履歴に従ってページを遷移するボタン、ページの読み込みを中止するボタン、ページを再読み込みするボタン、ホームページに遷移するボタン等）に対して操作を行った場合、操作イベント監視部５１２によって各種要素への該操作イベントが検知され（操作イベント検知６１２）、次に該操作イベントが操作イベント処理部５１１に送信され、最後にマスタウェブブラウザ１１１で該操作イベントの実行が行われる（操作イベント実行６１６）。従って、マスタウェブブラウザ１１１の操作イベント実行６１６によるページの更新、すなわちＤＯＭツリーの変更が、実施の形態１と同様に全スレーブウェブブラウザ１２１のＤＯＭツリーに適用される。故に、スレーブウェブブラウザ１２１のユーザインタフェース上で行われた各種操作に起因する表示の更新が、マスタ装置１１０と全スレーブ装置１２０に同期される。
【００７４】
以上説明したように、実施の形態４のウェブブラウザ画面同期システムによれば、スレーブ装置は、スレーブウェブブラウザで発生する操作イベントを監視し、操作イベントを検知した場合は操作イベントをマスタ装置への送信データとする操作イベント監視部を備え、マスタ装置は、操作イベント監視部で検知された操作イベントをマスタウェブブラウザに対して発生させる操作イベント処理部を備えたので、スレーブ装置側で操作イベントが発生した場合でも、マスタ装置とスレーブ装置の画面の表示内容の同期を実現することができる。
【００７５】
実施の形態５．
図７は、実施の形態５におけるウェブブラウザ画面同期システムを示す構成図である。図７に示す実施の形態５の構成は、実施の形態１における図１の構成に加えて、スクリプト監視部７１１とスクリプト処理部７２１が存在する。これ以外の構成は図１と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００７６】
スクリプト監視部７１１は、マスタウェブブラウザ１１１上で行われるスクリプトの処理を監視する。また、スクリプトの監視によって得られたスクリプト処理内容が、描画処理を伴うスクリプト処理であるかどうか判別を行う。更に、判別処理によって、描画処理を伴うスクリプト処理に該当すると判別された場合、マスタ通信部１１４及びスレーブ通信部１２２を介して、そのスクリプト処理内容をスクリプト処理部７２１に送信する。ここで言う描画処理を伴うスクリプト処理とは、例えばＷｅｂＧＬを使ったグラフィクスプロセッシングユニットへの命令、ソフトウェアによるＣａｎｖａｓへの描画命令、ＪａｖａＳｃｒｉｐｔのａｌｅｒｔ関数による通知など、表示内容が更新されるスクリプト命令全般の処理である。
【００７７】
スクリプト処理部７２１は、スクリプト監視部７１１から受信したスクリプト処理内容に従い、スレーブウェブブラウザ１２１にスクリプト処理を実行させる。
【００７８】
図８は、実施の形態５におけるウェブブラウザ画面同期システムにおいて、マスタ装置１１０の使用者が、マスタウェブブラウザ１１１で表示されているウェブページに対して操作を行った結果、スクリプト監視部７１１によって描画処理を伴うスクリプト処理に該当すると判別された場合の同期の流れを説明するシーケンス図を示す。
【００７９】
図８にはオブジェクトとして、スクリプト監視部７１１、スクリプト処理部及び実施の形態１における図２と同じ符号を持つオブジェクトが存在する。
図８のシーケンスは、開始前の前提条件として、マスタウェブブラウザ１１１とスレーブウェブブラウザ１２１のＤＯＭツリーが同期されており、使用者からの操作を待っている状態である。また、表示しているウェブページには、描画処理を伴うスクリプト処理に該当するスクリプトが含まれており、使用者の操作によってスクリプトの実行が行われるという状況である。
【００８０】
以下、図８のシーケンス図の流れを時系列順に説明する。
まず、マスタ使用者２０１が、マスタウェブブラウザ１１１のウェブページに対して、スクリプトを実行させる操作を行ったとする（操作８１１）。この操作とは、ウェブページ内のボタンをマウスで押下することや、キーボードにより文字を入力する等、スクリプトを始動させる要件を満たす各種操作である。
マスタウェブブラウザ１１１は、マスタ使用者２０１による操作８１１に反応し、スクリプトを実行する処理を行う（スクリプト実行８１２）。
また、マスタウェブブラウザ１１１はスクリプトを実行した結果として、レンダリング処理を行う（レンダリング８１３）。スクリプト監視部７１１は、マスタウェブブラウザ１１１によるスクリプト処理８１２に反応して、スクリプトが実行されたという検知を行う（スクリプト実行検知８１４）。
【００８１】
また、スクリプト監視部７１１は、スクリプト実行検知８１４で検知されたスクリプト処理に対して、描画処理を伴う処理であるかどうか判別を行う（処理判別８１５）。
更に、スクリプト監視部７１１は、処理判別８１５で描画処理を伴うスクリプト処理に該当すると判別した場合、マスタ通信部１１４及びスレーブ通信部１２２を介して、スクリプト処理をスクリプト処理部７２１に送信する（スクリプト処理送信８１６、スクリプト処理送信８１７、スクリプト処理送信８１８）。ここで、スクリプト監視部７１１からスクリプト処理部７２１に送信するスクリプト処理は、処理判別８１５によって描画処理を伴うスクリプト処理に該当したスクリプト処理と、同等の処理の実行を行うことが可能な処理内容を示すデータである。例えば、スクリプト処理で実行する関数の識別子（例えば関数ＩＤや関数名）とその関数に与える引数のデータからなるデータや、ソースコードをコンパイルした後のデータであるバイトコードにおける描画処理を伴うスクリプト処理に該当するコード断片とその時点のコンテキストデータ等のデータが考えられる。
【００８２】
スクリプト処理部７２１は、マスタ通信部１１４及びスレーブ通信部１２２を介して、スクリプト監視部７１１からのスクリプト処理を受信し、スレーブウェブブラウザ１２１に対して、スクリプト処理を実行するように命令する（スクリプト処理命令８１９）。
スレーブウェブブラウザ１２１は、スクリプト処理部７２１からのスクリプト処理命令８１９に反応し、スクリプトを実行する処理を行う（スクリプト実行８２０）。すなわち、スクリプト監視部７１１の処理判別８１５によって描画処理を伴うスクリプト処理に該当したスクリプト処理と、同等の処理をスレーブウェブブラウザ１２１上で実行する。
また、スレーブウェブブラウザ１２１は、スクリプトを実行した結果として、レンダリング処理を行う（レンダリング８２１）。
【００８３】
このように構成された実施の形態５のウェブブラウザ画面同期システムにおいては、マスタウェブブラウザ１１１において実行されるスクリプトの処理が、描画処理を伴う処理である場合、スレーブ装置１２０に該スクリプト処理内容が送信され、スレーブウェブブラウザ１２１においても同様のスクリプト処理が実行される。従って、ＤＯＭツリーの変更を伴わない処理がマスタウェブブラウザ１１１で実行されたとしても、マスタウェブブラウザ１１１とスレーブウェブブラウザ１２１の表示を同一の表示内容に同期できる。
【００８４】
なお、図８のシーケンス図においては、マスタ使用者２０１がマスタウェブブラウザ１１１を操作した結果によるスクリプトの始動例が示されているが、ウェブページ遷移後すぐに始動するスクリプト処理や、タイマなどを用いて使用者の操作を伴わない条件で始動するスクリプト処理においても、所期の目的を達成し得ることは言うまでもない。
【００８５】
以上説明したように、実施の形態５のウェブブラウザ画面同期システムによれば、マスタ装置は、マスタウェブブラウザにおけるＤＯＭツリーへの変更に関する処理以外の処理で、かつ、描画処理を伴うスクリプトの実行を監視し、スクリプトが実行された場合は、実行内容を、ＤＯＭツリー変更点監視部の監視結果とは無関係にスレーブ装置への送信データとするスクリプト監視部を備え、スレーブ装置は、スクリプト監視部が送信データとする実行内容をスレーブウェブブラウザに通知するスクリプト処理部を備えたので、ＤＯＭツリーの変更を伴わない処理がマスタウェブブラウザで実行されたとしても、マスタウェブブラウザとスレーブウェブブラウザの表示を同一の表示内容に同期することができる。
【００８６】
実施の形態６．
図９は、実施の形態６におけるウェブブラウザ画面同期システムを示す構成図である。図９は、実施の形態１における図１の構成に加えて、処理イベント監視部９１１と、処理イベント処理部９２１が存在する。その他の構成については、図１に示した実施の形態１と同様であるため、対応する部分に同一符号を付してその説明を省略する。
【００８７】
処理イベント監視部９１１は、マスタウェブブラウザ１１１で発生する処理イベントを監視する。ここで処理イベントとは、ＤＯＭツリーへの変更に関する処理以外の処理であり、例えばウェブブラウザの状態遷移処理や、レンダリング処理等が考えられる。処理イベントを検知した場合、マスタ通信部１１４とスレーブ通信部１２２を介して、処理イベント処理部９２１に該処理イベントのデータを送信する。処理イベントのデータとは、例えば該処理イベントがウェブブラウザの状態遷移処理であれば、状態遷移先の状態値が考えられる。
【００８８】
処理イベント処理部９２１は、マスタ通信部１１４とスレーブ通信部１２２を介して、処理イベント監視部９１１から送信された処理イベントの処理を行う。受信した処理イベントに応じて、同様の処理をスレーブウェブブラウザ１２１に対して命令する。
【００８９】
図１０は、実施の形態６におけるウェブブラウザ画面同期システムにおいて、実施の形態１と同様に、マスタ装置１１０の使用者がウェブブラウザを操作する際の同期の流れを説明するシーケンス図を示す。
図１０にはオブジェクトとして、処理イベント監視部９１１、処理イベント処理部９２１及び実施の形態１における図２と同じ符号を持つオブジェクトが存在する。
【００９０】
以下、実施の形態１と異なる実施の形態６の処理について説明する。
マスタ使用者２０１のページ遷移操作２１１を受けて、マスタウェブブラウザ１１１が一連のページ読み込み処理を開始し始めた際に、処理イベント監視部９１１はマスタウェブブラウザ１１１のページ読み込み処理を検知する（ページ読み込み開始検知１０１１）。
また、処理イベント監視部９１１は、ページ読み込み開始検知１０１１を行った後、マスタ通信部１１４及びスレーブ通信部１２２を介して、ページ読み込み開始処理がマスタウェブブラウザ１１１上で発生したことをスレーブ装置１２０の処理イベント処理部９２１に送信する（処理イベント送信１０１２、処理イベント送信１０１３、処理イベント送信１０１４）。
【００９１】
処理イベント処理部９２１は、マスタ通信部１１４及びスレーブ通信部１２２を介して、処理イベント監視部９１１からの処理イベント送信１０１４に反応し、スレーブウェブブラウザ１２１に対してマスタウェブブラウザ１１１がページ読み込み処理を開始したことを通知する（ページ読み込み開始通知１０１５）。
スレーブウェブブラウザ１２１は、処理イベント処理部９２１からのページ読み込み開始通知１０１５に反応し、マスタウェブブラウザ１１１がページの読み込みを開始したことを受けて、次回からスレーブウェブブラウザ１２１のＤＯＭツリーを構築する際は、別の新しいＤＯＭツリーに対して構築するように切り替える（ページ読み込み開始処理１０１６）。
【００９２】
マスタウェブブラウザ１１１がレンダリング処理（レンダリング２２５）を開始した際に、処理イベント監視部９１１はレンダリング処理を検知する（レンダリング検知１０１７）。また、処理イベント監視部９１１は、レンダリング検知１０１７を行った後、マスタ通信部１１４及びスレーブ通信部１２２を介して、レンダリング処理がマスタウェブブラウザ１１１上で発生したことをスレーブ装置１２０の処理イベント処理部９２１に送信する（処理イベント送信１０１８、処理イベント送信１０１９、処理イベント送信１０２０）。
【００９３】
処理イベント処理部９２１は、マスタ通信部１１４及びスレーブ通信部１２２を介して、処理イベント監視部９１１からの処理イベント送信１０２０に反応し、スレーブウェブブラウザ１２１に対して、マスタウェブブラウザ１１１がレンダリング処理を開始したことを通知する（レンダリング通知１０２１）。
スレーブウェブブラウザ１２１は、処理イベント処理部９２１からのレンダリング通知１０２１に反応し、マスタウェブブラウザ１１１がレンダリングを開始したことを受けて、スレーブウェブブラウザ１２１もレンダリングを行う（レンダリング２３３）。
【００９４】
このように構成された実施の形態６のウェブブラウザ画面同期システムにおいては、マスタウェブブラウザ１１１でページの読み込みを開始したという処理イベントが、スレーブウェブブラウザ１２１に伝わる。従って、１台のウェブブラウザが複数のＤＯＭツリーを保持可能な場合、スレーブウェブブラウザ１２１は、ＤＯＭツリーを構築する（ＤＯＭツリー構築２３０）際に、どのＤＯＭツリーに対して構築を行えば良いのか把握することができる。
【００９５】
また、実施の形態６のウェブブラウザ画面同期システムにおいては、マスタウェブブラウザ１１１でレンダリング処理を開始したという処理イベントが、スレーブウェブブラウザ１２１に伝わる。従って、スレーブウェブブラウザ１２１はＤＯＭツリーの構築（ＤＯＭツリー構築２３０）が行われる際に毎回レンダリングをする必要がなくなり、スレーブ装置１２０の負荷を低減することができる。
【００９６】
以上説明したように、実施の形態６のウェブブラウザ画面同期システムによれば、マスタ装置は、マスタウェブブラウザで発生する、ＤＯＭツリーへの変更に関する処理以外の処理に関するイベント発生を監視し、発生した処理イベントをスレーブに送信する処理イベント監視部を備え、スレーブ装置は、マスタ装置から受信した処理イベントをスレーブウェブブラウザに通知する処理イベント処理部を備えたので、１台のウェブブラウザが複数のＤＯＭツリーを保持可能な場合、スレーブウェブブラウザは、ＤＯＭツリーを構築する際に、どのＤＯＭツリーに対して構築を行えば良いのか把握することができ、また、ＤＯＭツリーの構築が行われる際に毎回レンダリングをする必要がなく、スレーブ装置の負荷を低減することができる。
【００９７】
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
【符号の説明】
【００９８】
１００  ウェブサーバ、１１０  マスタ装置、１１１  マスタウェブブラウザ、１１２  マスタリソース管理部、１１３  ＤＯＭツリー変更点監視部、１１４  マスタ通信部、１２０  スレーブ装置、１２１  スレーブウェブブラウザ、１２２  スレーブ通信部、１２３  スレーブリソース管理部、１２４  ＤＯＭツリー構築部、１４０，１５０  ネットワーク、５１１  操作イベント処理部、５２１  操作イベント監視部、７１１  スクリプト監視部、７２１  スクリプト処理部、９１１  処理イベント監視部、９２１  処理イベント処理部。
【図１】
2014170389.tif 000003
【図２】
2014170389.tif 000004
【図３】
2014170389.tif 000005
【図４】
2014170389.tif 000006
【図５】
2014170389.tif 000007
【図６】
2014170389.tif 000008
【図７】
2014170389.tif 000009
【図８】
2014170389.tif 000010
【図９】
2014170389.tif 000011
【図１０】
2014170389.tif 000012