JP2014170389A - ウェブブラウザ画面同期システム及びマスタ装置並びにスレーブ装置 - Google Patents

ウェブブラウザ画面同期システム及びマスタ装置並びにスレーブ装置 Download PDF

Info

Publication number
JP2014170389A
JP2014170389A JP2013041887A JP2013041887A JP2014170389A JP 2014170389 A JP2014170389 A JP 2014170389A JP 2013041887 A JP2013041887 A JP 2013041887A JP 2013041887 A JP2013041887 A JP 2013041887A JP 2014170389 A JP2014170389 A JP 2014170389A
Authority
JP
Japan
Prior art keywords
web browser
master
slave
dom tree
resource
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
JP2013041887A
Other languages
English (en)
Inventor
Takahiro Kashima
隆博 加島
Junpei Hado
淳平 羽藤
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013041887A priority Critical patent/JP2014170389A/ja
Publication of JP2014170389A publication Critical patent/JP2014170389A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】同期に必要な通信量を抑えつつ、どのコンピュータ上においても、本来のウェブページの通りに忠実に画面の同期を可能にするウェブブラウザ画面同期システムを得る。
【解決手段】マスタリソース管理部112は、ウェブサーバ100とマスタウェブブラウザ111間の通信を仲介し、同時にウェブサーバ100から得られるリソースファイルの管理を行う。DOMツリー変更点監視部113は、マスタウェブブラウザ111のDOMツリーに対する変更を監視し、変更点をDOMツリー構築部124に送信する。スレーブリソース管理部123は、スレーブのリソース管理を行う。DOMツリー構築部124は、受信したDOMツリー変更点に従ってスレーブウェブブラウザ121のDOMツリーを構築する。
【選択図】図1

Description

この発明は、複数台のコンピュータで動作するウェブブラウザの画面を同期するウェブブラウザ画面同期システム及びマスタ装置並びにスレーブ装置に関する。
1つのウェブブラウザの画面を複数のコンピュータで共有することにより、複数人で共同的にウェブを閲覧することや、携帯端末のウェブ画面を自動車の車載機ディスプレイで表示することなどが可能になる。
従来、このような画面同期システムを実現する場合、1台のコンピュータ(以下、サーバ)が自身の画面の画像を他のコンピュータ(以下、クライアント)に送信し、クライアントでサーバから送信された画像を表示することで、サーバ、クライアント間の画面の同期を実現している。また、クライアントは自身で発生したマウスやキーボード等のイベントをサーバに送信し、サーバはクライアントからのイベントに応じて処理を行うことで、操作の同期も実現している。この方法はVNC(Virtual Network Computing)と呼ばれており、画面及び操作の同期と言うよりも、クライアントによるサーバの遠隔操作であると言えるが、どのコンピュータでも同一の画面・操作を実現していることに他ならない。
また、マークアップ言語のXML(eXtensible Markup Language)をツリー構造で表現したものであるDOM(Document Object Model)を、サーバを介して同期するという方法も存在する(例えば、特許文献1参照)。ウェブブラウザが表示する画面はHTML(HyperText Markup Language)もしくはXHTML(eXtensible HyperText Markup Language)と呼ばれるマークアップ言語で記述される。HTMLおよびXHTMLはXMLと同様にDOMを用いて操作することが可能であるため、特許文献1に記載の同期方法をウェブブラウザに適用することにより、ウェブブラウザの画面の同期を実現できる。
特開2005−71356号公報
上述したVNCなどで採用されている画像による同期の場合、サーバからクライアントに送信する画面の画像のデータサイズが課題となる。画面の画像のデータサイズは解像度やフレーム数に比例して大きくなるため、高解像度・高フレーム数による同期を実現する場合、高速な通信回線が必要である。その課題を解決するため、画面の画像を圧縮後にサーバからその圧縮データをクライアントに送信することで通信データサイズの削減が可能であるが、圧縮及び伸張処理の負荷が高くなってしまう。
上述したDOMによる同期の場合、画像を転送する方法に比べ、DOMの変更点のみを転送すればよいため、転送量を削減することが可能である。しかしながら、DOMのみで表現可能な画面の同期に限定されるという問題点があった。
この発明は上記のような課題を解決するためになされたもので、同期に必要な通信量を抑えつつ、どのコンピュータ上においても、本来のウェブページの通りに忠実に画面の同期を可能にするウェブブラウザ画面同期システムを得ることを目的とする。
この発明に係るウェブブラウザ画面同期システムは、1台のマスタ装置と1台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおいて、マスタ装置は、マスタウェブブラウザがウェブページを表示するのに必要なデータを格納するウェブサーバとマスタウェブブラウザ間の通信を管理すると共に、マスタ装置とスレーブ装置とのリソース同期管理を行うマスタリソース管理部と、マスタウェブブラウザのDOMツリーに対する変更点を検出するDOMツリー変更点監視部とを備え、スレーブ装置は、マスタリソース管理部と同期して、スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、マスタ装置から受信したDOMツリー変更点を元にスレーブウェブブラウザのDOMツリーを構築するDOMツリー構築部とを備えたものである。
この発明のウェブブラウザ画面同期システムは、マスタ装置とスレーブ装置間で、リソース同期管理を行うと共に、マスタウェブブラウザのDOMツリー変更点を検出してスレーブウェブブラウザのDOMツリーを構築するようにしたので、同期に必要な通信量を抑えつつ、どのコンピュータ上においても、本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
この発明の実施の形態1のウェブブラウザ画面同期システムを示す構成図である。 この発明の実施の形態1のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。 この発明の実施の形態2のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。 この発明の実施の形態3のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。 この発明の実施の形態4のウェブブラウザ画面同期システムを示す構成図である。 この発明の実施の形態4のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。 この発明の実施の形態5のウェブブラウザ画面同期システムを示す構成図である。 この発明の実施の形態5のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。 この発明の実施の形態6のウェブブラウザ画面同期システムを示す構成図である。 この発明の実施の形態6のウェブブラウザ画面同期システムの画面同期手順を示すシーケンス図である。
実施の形態1.
図1は、この発明の実施の形態1によるウェブブラウザ画面同期システムを示す構成図である。
図1に示すウェブブラウザ画面同期システムは複数台のコンピュータからなり、これらコンピュータとして、ウェブサーバ100、マスタ装置110、スレーブ装置120の3種類に分けられている。
ウェブサーバ100は、ネットワーク140でマスタ装置110と接続されている。ウェブサーバ100は、マスタ装置110からURL(Uniform Resource Locator)で識別されるファイルを要求された場合、該ファイルをマスタ装置110に送信する。ウェブサーバ100は、例としてインターネット上で公開されているような一般的なウェブサーバ群を示し、特定のウェブサーバに限定したものではない。
マスタ装置110は、ネットワーク140によってウェブサーバ100と、ネットワーク150によって各スレーブ装置120と接続された端末である。マスタ装置110は、内部にマスタウェブブラウザ111、マスタリソース管理部112、DOMツリー変更点監視部113、マスタ通信部114を持つ。マスタ装置110は一般的なパーソナルコンピュータと同様に、マウス、キーボード、タッチパネル等の入力装置と、液晶ディスプレイ等の画面出力装置を持ち、マスタ装置110の利用者はこれらの入出力装置を使用して、マスタウェブブラウザ111を利用可能である。
スレーブ装置120は任意の台数分存在する端末であり、最低1台存在する。スレーブ装置120は、ネットワーク150によってマスタ装置110と接続されている。スレーブ装置120は、内部にスレーブウェブブラウザ121、スレーブ通信部122、スレーブリソース管理部123、DOMツリー構築部124を持つ。スレーブ装置120は一般的なパーソナルコンピュータと同様に、マウス、キーボード、タッチパネル等の入力装置と、液晶ディスプレイ等の画面出力装置を持ち、スレーブ装置120の利用者はこれらの入出力装置を使用して、スレーブウェブブラウザ121を利用可能である。図1においては、スレーブ装置120はスレーブAからスレーブZまで描かれているが、スレーブ内部の構成は全て同一のため、同じ符号120を割り当てている。
ネットワーク140は、ウェブサーバ100とマスタ装置110間の通信路である。ネットワーク140は、ウェブサーバ100とマスタ装置110間を物理的に直接接続する通信路である必要はなく、例えば公衆回線網や無線通信のように、論理的な通信路でも良い。
ネットワーク150は、マスタ装置110とスレーブ装置120間の通信路である。ネットワーク150は、マスタ装置110とスレーブ装置120間を物理的に直接接続する通信路である必要はなく、例えば公衆回線網や無線通信のように、論理的な通信路でも良い。図1の通り、マスタ装置110は全スレーブ装置120と通信路が設定されている。
以下、マスタ装置110とスレーブ装置120の詳細について説明する。
マスタリソース管理部112は、ネットワーク140を使用して、マスタウェブブラウザ111とウェブサーバ100間の通信を行う。マスタウェブブラウザ111からウェブサーバ100に対してファイルの要求が発生した場合、マスタリソース管理部112を介してウェブサーバ100に要求を行う。ウェブサーバ100が要求に応じ、ウェブサーバ100からマスタリソース管理部112にファイルの送信が終わった後、マスタリソース管理部112はマスタウェブブラウザ111にファイルを送信する。また、マスタリソース管理部112は、ウェブサーバ100から送信されたファイルが、画像(例えばJPEG、PNG、GIF、SVG等のファイル)、音声(例えばMP3、AAC等のファイル)、動画(MPEG、AVI等のファイル)、スクリプト(例えばJavaScript(登録商標/以下、省略して記載)、ECMAScript(登録商標)、JScript、VBScript等のファイル)、HTMLやXHTMLの要素をどの様に表示するかを指示するCSS(Cascading Style Sheets)、その他MathML、VoiceML等のように、ウェブページ上で用いられるリソースファイルであると判断した場合、それらのファイルをマスタウェブブラウザ111に送信すると共に、後述のマスタ通信部114及びスレーブ通信部122を介して、全スレーブ装置120のスレーブリソース管理部123にも同様にファイルを送信する。また、リソースファイルを識別するために、リソースファイルのURLも同時にスレーブリソース管理部123に送信する。
マスタウェブブラウザ111は、マスタリソース管理部112を通じて、ウェブサーバ100と通信を行い、ウェブページを表示する。マスタウェブブラウザ111は、例としてMicrosoft Internet Explorer(登録商標/以下、省略して記載)や、Google Chrome(登録商標/以下、省略して記載)のように、一般的なウェブブラウザであり、特定のウェブブラウザを示すものではない。マスタウェブブラウザ111は動作例として、マスタの利用者によって閲覧するウェブページのURLを指示されると、ウェブサーバ100にURLを問い合わせ、ウェブサーバ100から取得したHTMLもしくはXHTML、及び、各種リソースファイルを処理し、マスタ装置110のディスプレイに表示する。
DOMツリー変更点監視部113は、マスタウェブブラウザ111で発生したDOMツリーに対する変更を監視する。DOMツリーへの変更を検出した場合、その変更点を後述のマスタ通信部114及びスレーブ通信部122を介して、全スレーブ装置120のDOMツリー構築部124に送信する。
マスタ通信部114は、ネットワーク150を使用して、マスタ装置110と全スレーブ装置120間の通信を行う。実施の形態1のウェブブラウザ画面同期システムにおいては、マスタリソース管理部112及びDOMツリー変更点監視部113から受け取った送信データを、全スレーブ装置120に送信する。
スレーブ通信部122は、ネットワーク150を使用して、マスタ装置110と全スレーブ装置120間の通信を行う。実施の形態1のウェブブラウザ画面同期システムにおいては、マスタ通信部114を介して送信された、マスタリソース管理部112及びDOMツリー変更点監視部113からの送信データを受信する。
マスタ通信部114及びスレーブ通信部122は、通信の順序をキューによって管理する。従って通信の順序が逆転することはなく、順番通りに送受信が行われる。
スレーブリソース管理部123は、マスタ通信部114及びマスタリソース管理部112を介して、マスタリソース管理部112から送信されたリソースファイルを管理する。スレーブウェブブラウザ121からリソースの要求が発生した場合、スレーブリソース管理部123は自身が管理しているリソースファイル群から、リソースファイルのURLを元にファイルを探し、スレーブウェブブラウザ121に送信する。
DOMツリー構築部124は、マスタ通信部114及びスレーブ通信部122を介して、DOMツリー変更点監視部113から送信されたDOMツリー変更点を受信し、スレーブウェブブラウザ121のDOMツリーを、DOMツリー変更点に応じて構築を行う。
スレーブウェブブラウザ121は、DOMツリー構築部124及びスレーブリソース管理部123を介して、マスタ装置110から受信したDOMツリー変更点及びリソースを元にウェブページを表示する。スレーブウェブブラウザ111は、例としてMicrosoft Internet ExplorerやGoogle Chromeのように、一般的なウェブブラウザであり、特定のウェブブラウザを示すものではない。
図2は、実施の形態1のウェブブラウザ画面同期システムにおけるブラウザ画面同期方式において、マスタ装置110の使用者がウェブブラウザを操作する際の同期の流れを説明するシーケンス図を示す。
図2にはオブジェクトとして、マスタ使用者201、ウェブサーバ100、マスタリソース管理部112、マスタウェブブラウザ111、DOMツリー変更点監視部113、DOMツリー構築部124、スレーブリソース管理部123、スレーブウェブブラウザ121が存在する。マスタ使用者201は、マスタ装置110の使用者である。マスタ使用者201以外のオブジェクトは、図1で示された構成と同一のオブジェクトを示し、同じ符号を用いている。
以下、図2のシーケンス図の流れを時系列順に説明する。
図2において、まずマスタ使用者201が、マスタウェブブラウザ111に対して、ウェブページ内のアンカーをクリックするなどのページを遷移する操作、もしくは、マスタウェブブラウザ111が持つURLバーにURLを直接入力するという操作を行ったとする(ページ遷移操作211)。なおURLバーとはマスタ使用者201がテキストを入力可能とするオブジェクトであり、そこに入力される文字列が更新されると、その文字列をURLとしてマスタウェブブラウザ111は解釈し、そのURLに対応するウェブページに遷移する。マスタウェブブラウザ111は、マスタ使用者201によるページ遷移操作211に反応し、ウェブページを表示するために、HTML(もしくはXHTML)をマスタリソース管理部112に要求する処理を行う(HTML要求212)。この際、マスタウェブブラウザ111は前記のURLを用いて、要求するHTMLをマスタリソース管理部112に対して指定する。
マスタリソース管理部112は、マスタウェブブラウザ111からのHTML要求212に反応し、ウェブサーバ100に対してHTMLを要求する処理を行う(HTML要求213)。この際、マスタウェブブラウザ111によるHTML要求212と同様に、前記のURLを用いてウェブサーバ100にHTML要求213を行う。
ウェブサーバ100は、マスタリソース管理部112からのHTML要求213に反応し、URLで指定されたHTMLファイルをマスタリソース管理部112に送信する(HTML送信214)。
マスタリソース管理部112は、ウェブサーバ100からのHTML送信214に反応し、受信したHTMLファイルをマスタウェブブラウザ111に送信する(HTML送信215)。また、マスタリソース管理部112は、ウェブサーバ100から受信したHTMLファイルが、画像、音声、動画等のリソースファイルであるか判別を行う。今回の場合はHTMLであるためリソースファイルではないと判別され、リソースファイルであると判別された場合に発生する追加の処理を行わない。
マスタウェブブラウザ111は、マスタリソース管理部112からのHTML送信215に反応し、HTML解析及びDOMツリー生成を行う(HTML解析・DOMツリー生成216)。この処理216は、HTMLを図示しない字句解析器および構文解析器で処理し、DOMツリーを生成する処理である。DOMツリーが生成された後、ウェブページで画像、音声、動画等のリソースが用いられていると判明した場合、マスタリソース管理部112に対してリソース要求を行う(リソース要求217)。この際、HTML要求212と同様に、URLによってリソースを指定する。また、ウェブページによって複数の異なるリソースが使用されている場合、それら複数のリソースを要求する。
マスタリソース管理部112は、マスタウェブブラウザ111からのリソース要求217に反応し、ウェブサーバ100に対して同様のリソースの要求を行う(リソース要求218)。
ウェブサーバ100は、マスタリソース管理部112からのリソース要求218に反応し、URLで指定されたリソースファイルをマスタリソース管理部112に送信する(リソース送信219)。
マスタリソース管理部112は、ウェブサーバ100からのリソース送信219に反応し、受信したリソースファイルをマスタウェブブラウザ111に送信する(リソース送信220)。また、マスタリソース管理部112は、ウェブサーバ100から受信したファイルがリソースファイルであると判別した結果として、マスタ通信部114及びスレーブ通信部122を介して、スレーブリソース管理部123にリソースファイルを送信する(リソース送信221、リソース送信222、リソース送信223)。この際、リソースファイルに対応するURLの情報も、同様にスレーブリソース管理部123に送信する。
スレーブリソース管理部123は、マスタ通信部114とスレーブ通信部122を介して、マスタリソース管理部112から受信したリソースファイル及び該リソースファイルのURLを格納する(リソース格納224)。
マスタウェブブラウザ111は、マスタリソース管理部112からのリソース送信220に反応し、DOMツリーとリソースファイルを使用してウェブページのレンダリングを行う(レンダリング225)。これにより、マスタウェブブラウザ111にウェブページが表示される。
ここで、説明の時系列を、マスタウェブブラウザ111がHTML解析・DOMツリー生成216を行った直後の時点に戻す。この時、マスタウェブブラウザ111のDOMツリーが変更された結果として、DOMツリー変更点監視部113がDOMツリーの変更を検知する(DOMツリー変更検知226)。
DOMツリー変更点監視部113は、DOMツリー変更検知226に反応し、マスタ通信部114及びスレーブ通信部122を介して、DOMツリー構築部124に対してDOMツリー変更点送信を行う(DOMツリー変更点送信227、DOMツリー変更点送信228、DOMツリー変更点送信229)。
DOMツリー構築部124は、マスタ通信部114及びスレーブ通信部122を介して、前記DOMツリー変更点監視部113からのDOMツリー変更点送信229に反応し、受信したDOMツリー変更点を用いて、スレーブウェブブラウザ121のDOMツリー構築を行う(DOMツリー構築230)。これにより、スレーブウェブブラウザ121のDOMツリーがマスタウェブブラウザ111と同期される。
スレーブウェブブラウザ121は、DOMツリー構築230によってマスタウェブブラウザ111のDOMツリーと同期された結果、ウェブページでリソースが用いられていると判明した場合、スレーブリソース管理部123に対してリソース要求を行う(リソース要求231)。この際、URLを用いてリソースファイルの指定が行われる。
スレーブリソース管理部123は、スレーブウェブブラウザ121からのリソース要求231に反応し、スレーブウェブブラウザ121に対してリソースファイルを送信する(リソース送信232)。この際、スレーブリソース管理部123は、スレーブウェブブラウザ121から指定されたURLを元に、自身が管理するリソースファイル群からリソースファイルを探す。
スレーブウェブブラウザ121は、スレーブリソース管理部123からのリソース送信232に反応し、DOMツリーとリソースファイルを使用してウェブページのレンダリングを行う(レンダリング233)。これにより、スレーブウェブブラウザ121に、マスタウェブブラウザ111と同様のウェブページが表示される。
このように構成された実施の形態1のウェブブラウザ画面同期システムにおいては、マスタリソース管理部112は、ウェブサーバ100から受信したファイルが画像、音声、動画等のリソースファイルであると判別した場合、マスタウェブブラウザ111にリソースファイルを送信する(リソース送信220)と共に、マスタ通信部114及びスレーブ通信部122を介して、スレーブリソース管理部123にもリソースファイルを送信する(リソース送信221、リソース送信222、リソース送信223)。また、スレーブリソース管理部123は、マスタ通知部114及びスレーブ通信部122を介して受信したリソースファイルを格納する(リソース格納224)。そして、スレーブウェブブラウザ121は、ウェブページのレンダリングにリソースファイルが必要である場合、スレーブリソース管理部123に問い合わせることでリソースを利用できる(リソース要求231、リソース送信232)。従って、スレーブウェブブラウザ121においても、画像等のリソースを使用可能であるため、本来のウェブページの表示内容通りに忠実にウェブページを表示できる。
また、マスタ装置110においてウェブページを遷移(ページ遷移操作211)した結果によるマスタウェブブラウザ111のDOMツリーの変更点を、全スレーブ装置120に送信し(DOMツリー変更点送信227、DOMツリー変更点送信228、DOMツリー変更点送信229)、DOMツリー変更点を元にスレーブウェブブラウザ121のDOMツリーを構築することにより(DOMツリー構築230)、全スレーブ装置120におけるスレーブウェブブラウザ121のDOMツリーを、マスタウェブブラウザ111のDOMツリーと同期する。従って、マスタ及び全スレーブにおけるウェブブラウザの画面内容を同一にできる。VNCなどによる画面の画像を転送する方法に比べ、DOMツリーの変更点のみを転送すれば良いため、通信量を低減できる。
また、CSSについてもDOMツリーとして表現されるため、DOMツリーの変更点のみを転送する事でCSS上に発生した変更をマスタからスレーブに通知する事が可能となる。結果として、CSS上で発生した変更内容による画面内容の変更も合わせて同期可能となる。
以上説明したように、実施の形態1のウェブブラウザ画面同期システムによれば、1台のマスタ装置と1台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおいて、マスタ装置は、マスタウェブブラウザがウェブページを表示するのに必要なファイルデータを格納するウェブサーバとマスタウェブブラウザ間の通信を管理すると共に、マスタ装置とスレーブ装置とのリソース同期管理を行うマスタリソース管理部と、マスタウェブブラウザのDOMツリーに対する変更点を検出するDOMツリー変更点監視部とを備え、スレーブ装置は、マスタリソース管理部と同期して、スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、マスタ装置から受信したDOMツリー変更点を元にスレーブウェブブラウザのDOMツリーを構築するDOMツリー構築部とを備えたので、同期に必要な通信量を抑えつつ、どのコンピュータ上においても、本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
また、実施の形態1のウェブブラウザ画面同期システムによれば、マスタリソース管理部は、ウェブサーバから受信したファイルがリソースファイルであった場合、スレーブリソース管理部にリソースファイルを転送し、スレーブリソース管理部は、マスタリソース管理部から転送されたリソースファイルを保管し、スレーブウェブブラウザの要求に応じてリソースファイルをスレーブウェブブラウザに送信するようにしたので、本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
また、実施の形態1のマスタ装置によれば、1台のマスタ装置と1台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおけるマスタ装置であって、マスタウェブブラウザがウェブページを表示するのに必要なデータを格納するウェブサーバとマスタウェブブラウザ間の通信を管理すると共に、マスタ装置とスレーブ装置とのリソース同期管理を行うマスタリソース管理部と、マスタウェブブラウザのDOMツリーに対する変更点を検出するDOMツリー変更点監視部とを備えたので、同期に必要な通信量を抑えつつ、スレーブ装置で本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
また、実施の形態1のスレーブ装置によれば、1台のマスタ装置と1台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおけるスレーブ装置であって、マスタ装置と同期して、スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、マスタ装置から受信したDOMツリー変更点を元にスレーブウェブブラウザのDOMツリーを構築するDOMツリー構築部とを備えたので、同期に必要な通信量を抑えつつ、マスタ装置と、本来のウェブページの通りに忠実に画面の同期を可能にすることができる。
実施の形態2.
実施の形態2のウェブブラウザ画面同期システムにおける図面上の構成は図1に示した実施の形態1と同様であるため、図1の構成を用いて説明する。実施の形態2のマスタリソース管理部112は、ウェブサーバ100から受信したファイルがリソースファイルであった場合はそのリソースファイルを保管するよう構成されている。また、スレーブリソース管理部123は、スレーブウェブブラウザ121の要求に応じ、マスタリソース管理部112にリソースファイルを要求し、マスタリソース管理部112から受信したリソースファイルを、スレーブウェブブラウザ121に転送するよう構成されている。その他の構成は実施の形態1と同様であるため、ここでの説明は省略する。
図3は、実施の形態2のウェブブラウザ画面同期システムにおけるブラウザ画面同期方式において、実施の形態1と同様に、マスタ装置110の使用者がウェブブラウザを操作する際の同期の流れを説明するシーケンス図を示す。
図3には、実施の形態1における図2と同様に、オブジェクトとして、マスタ使用者201、ウェブサーバ100、マスタリソース管理部112、マスタウェブブラウザ111、DOMツリー変更点監視部113、DOMツリー構築部124、スレーブリソース管理部123、スレーブウェブブラウザ121が存在する。
全てのオブジェクトの役割及び一部の処理は、実施の形態1と同様であるため、対応する部分には図2と同じ符号を用いている。
図3は、実施の形態1と同様に、マスタ使用者201がマスタウェブブラウザ111に対して、ウェブページを遷移する操作、もしくは、URLバーにURLを直接入力するという操作を行った際の処理の流れを示す。ここで、実施の形態1と同様の処理は、ページ遷移操作211、HTML要求212からHTML送信215までの流れ、HTML解析・DOMツリー生成216、リソース要求217からリソース送信220までの流れ、レンダリング225、DOMツリー変更検知226からDOMツリー構築230までの流れ、リソース要求231、及びレンダリング233であり、これらの処理についてはその説明を省略する。
以下、実施の形態1と異なる実施の形態2の処理について説明する。
マスタリソース管理部112は、ウェブサーバ100からのリソース送信219に反応し、実施の形態1と同様に、ウェブサーバ100から受信したファイルがリソースファイルかどうか判別する処理と、マスタウェブブラウザ111にリソースを送信する(リソース送信220)処理を行う。しかし、実施の形態1では、この時点でリソースファイルをスレーブリソース管理部123に送信するが(図2のリソース送信221、リソース送信222、リソース送信223参照)、実施の形態2においては、この時点でリソースファイルをスレーブリソース管理部123に送信しない。
また、マスタリソース管理部112は、ウェブサーバ100からのリソース送信219に反応し、ウェブサーバ100から受信したリソースファイルと該リソースファイルのURLを格納する(リソース格納301)。
スレーブウェブブラウザ121は、実施の形態1と同様に、DOMツリー構築230によってマスタウェブブラウザ111のDOMツリーと同期された結果、ウェブページのレンダリングにリソースが用いられていると判明した場合、スレーブリソース管理部123に対してリソース要求を行う(リソース要求231)。この際、URLを用いてリソースファイルの指定が行われる。
スレーブリソース管理部123は、スレーブウェブブラウザ121からのリソース要求231に反応し、スレーブ通信部122及びマスタ通信部114を介して、マスタリソース管理部112にリソース要求を行う(リソース要求302、リソース要求303、リソース要求304)。
マスタリソース管理部112は、スレーブ通信部122及びマスタ通信部114を介して、スレーブリソース管理部123からのリソース要求304に反応し、マスタ通信部114及びスレーブ通信部122を介して、スレーブリソース管理部123にリソースファイルを送信する(リソース送信305、リソース送信306、リソース送信307)。この際、マスタリソース管理部112は、リソース要求304で指定されたURLを元に、自身が管理するリソースファイル群からリソースファイルを探す。
スレーブリソース管理部123は、マスタ通信部114及びスレーブ通信部122を介して、マスタリソース管理部112からのリソース送信307に反応し、受信したリソースファイルをスレーブウェブブラウザ121に送信する(リソース送信308)。
スレーブウェブブラウザ121は、スレーブリソース管理部123からのリソース送信308に反応し、実施の形態1と同様に、DOMツリーとリソースファイルを使用してウェブページのレンダリングを行う(レンダリング233)。これにより、スレーブウェブブラウザ121に、マスタウェブブラウザ111と同様のウェブページが表示される。
このように構成された実施の形態2のウェブブラウザ画面同期システムにおいては、実施の形態1と同様に、マスタ装置110においてウェブページを遷移(ページ遷移操作211)した結果によるマスタウェブブラウザ111のDOMツリーの変更点を、全スレーブ装置120に送信し(DOMツリー変更点送信227、DOMツリー変更点送信228、DOMツリー変更点送信229)、DOMツリー変更点を元にスレーブウェブブラウザ121のDOMツリーを構築することにより(DOMツリー構築230)、全スレーブ装置120におけるスレーブウェブブラウザ121のDOMツリーを、マスタウェブブラウザ111のDOMツリーと同期する。従って、マスタ装置110及び全スレーブ装置120におけるウェブブラウザの画面内容を同一にできる。VNCなどによる画面の画像を転送する方法に比べ、DOMツリーの変更点のみを転送すればよいため、通信量を削減できる。
また、マスタリソース管理部112は、ウェブサーバ100から受信したファイルが画像、音声、動画等のリソースファイルであると判別した場合、マスタウェブブラウザ111にリソースファイルを送信する(リソース送信220)と共に、自身の管理するストレージにリソースファイルを格納する(リソース格納301)。また、スレーブリソース管理部123は、スレーブウェブブラウザ121からリソースの要求があった場合(リソース要求231)、スレーブ通信部122及びマスタ通信部114を介して、マスタリソース管理部112にリソース要求を行う(リソース要求302、リソース要求303、リソース要求304)。そして、マスタリソース管理部112は、リソース要求304に反応し、マスタ通信部114及びスレーブ通信部122を介して、スレーブリソース管理部123にリソースファイルを送信する(リソース送信305、リソース送信306、リソース送信307)。更に、スレーブリソース管理部123は、リソース送信307に反応し、受信したリソースファイルをスレーブウェブブラウザ121に送信する(リソース送信308)。従って、スレーブウェブブラウザ121においても、画像等のリソースを使用可能であるため、本来のウェブページの表示内容通りに忠実にウェブページを表示できる。
また、実施の形態1では、マスタリソース管理部112が全スレーブのスレーブリソース管理部123に対して、予め全リソースファイルを送信する形態であった。一方、実施の形態2では、スレーブウェブブラウザ121においてリソースファイルが必要になった際に、スレーブリソース管理部123を介して、リソースファイルを格納しているマスタリソース管理部112からリソースファイルを受信するという形態を採る。従って、スレーブウェブブラウザ121の必要に応じてリソースファイルを送信することにより、マスタ装置110及びスレーブ装置120間の通信負荷を削減できる。
以上説明したように、実施の形態2のウェブブラウザ画面同期システムによれば、マスタリソース管理部は、ウェブサーバから受信したファイルがリソースファイルであった場合はリソースファイルを保管し、スレーブリソース管理部は、スレーブウェブブラウザの要求に応じ、マスタリソース管理部にリソースファイルを要求し、マスタリソース管理部から受信したリソースファイルを、スレーブウェブブラウザに転送するようにしたので、本来のウェブページの通りに忠実に画面の同期を可能にすることができると共に、マスタ装置とスレーブ装置との通信負荷を削減することができる。
実施の形態3.
実施の形態3においても、ウェブブラウザ画面同期システムにおける図面上の構成は図1に示した実施の形態1と同様であるため、図1の構成を用いて説明する。実施の形態3のDOMツリー変更点監視部113は、DOMツリーに対する変更点がスレーブ装置120との画面同期に必要な変更点であるか否かを判断し、画面同期に必要なDOMノードのみをスレーブ装置120への送信データとするよう構成されている。その他の構成は実施の形態1と同様であるため、ここでの説明は省略する。
図4は、実施の形態3のウェブブラウザ画面同期システムにおけるブラウザ画面同期方式において、実施の形態1と同様に、マスタ装置110の使用者がウェブブラウザを操作する際の同期の流れを説明するシーケンス図を示す。
実施の形態3は、実施の形態1と異なり、マスタウェブブラウザ111のDOMツリーが変更されたとDOMツリー変更点監視部113が検知を行った際に(DOMツリー変更検知226)、DOMツリー変更点をスレーブに送信するか否か判断が行われる(DOMツリー変更点送信判断401)。この処理は、DOMツリー変更点が画面同期に必要な変更であるか否かで判断を行う。具体的な一例として、例えばDOMツリー変更点がコメントノード、もしくは、スクリプトの実行に関するノードである場合、DOMツリー変更点を破棄し、DOMツリー変更点をスレーブ装置120には送信しない。一方、DOMツリー変更点が、これらコメントノードやスクリプトの実行に関するノードでない場合、後続のDOMツリー変更点送信処理を行い(DOMツリー変更点送信227)、スレーブ装置120にDOMツリー変更点を送信する方法が考えられる。図4において、これ以外の処理は図2に示した実施の形態1と同様であるため、対応する部分に同一符号を付してその説明を省略する。
このように構成された実施の形態3のウェブブラウザ画面同期システムにおいては、DOMツリー変更点監視部113において、DOMツリー変更点を送信するか否か判断し(DOMツリー変更点送信判断401)、その結果、DOMツリー変更点がコメントノードである場合は、スレーブ装置120にDOMツリー変更点を送信しない。コメントノードは画面の同期に不必要なデータであるため、マスタ装置110及びスレーブ装置120間の通信負荷を削減できる。
また、DOMツリー変更点送信判断401の処理によって、DOMツリー変更点がスクリプトの実行に関するノードである場合は、スレーブ装置120にDOMツリー変更点を送信しない。その結果、スレーブウェブブラウザ121においてスクリプトを実行することがなくなり、マスタウェブブラウザ111との画面の同期に反して、スレーブウェブブラウザ121が独自のスクリプト処理を行うことがなくなる。従って、より厳密にマスタ装置110とスレーブ装置120の画面の同期を達成でき。また、スクリプトの実行に関するノードの通信がなくなり、マスタ装置110及びスレーブ装置120間の通信負荷を削減できる。
以上説明したように、実施の形態3のウェブブラウザ画面同期システムによれば、DOMツリー変更点監視部は、DOMツリーに対する変更点がスレーブ装置との画面同期に必要な変更点であるか否かを判断し、画面同期に必要なDOMノードのみをスレーブ装置への送信データとするようにしたので、マスタ装置とスレーブ装置間の通信負荷を軽減することができる。
また、実施の形態3のウェブブラウザ画面同期システムによれば、DOMツリー変更点監視部は、DOMツリー内のコメントノードをスレーブ装置への送信データから除外するようにしたので、マスタ装置とスレーブ装置間の通信負荷を軽減することができる。
また、実施の形態3のウェブブラウザ画面同期システムによれば、DOMツリー変更点監視部は、DOMツリー内のスクリプトの実行に関するノードをスレーブ装置への送信データから除外するようにしたので、マスタ装置とスレーブ装置間の通信負荷を軽減することができる。
実施の形態4.
図5は、実施の形態4におけるウェブブラウザ画面同期システムを示す構成図である。図5に示す実施の形態4のシステムは、実施の形態1における図1の構成に加えて、操作イベント処理部511と、操作イベント監視部521が存在する。
操作イベント処理部511は、マスタ通信部114とスレーブ通信部122を介して、操作イベント監視部521から送信された操作イベントの処理を行う。受信した操作イベントに応じて、同様の操作イベントをマスタウェブブラウザ111に対して発生させる。
操作イベント監視部521は、スレーブウェブブラウザ121で発生する操作イベントを監視する。操作イベントとは、例えば、マウス、キーボード等の入力インタフェースのイベントや、ウェブページにおけるDOMイベントなど、スレーブの使用者の操作に起因するイベントが該当する。操作イベントを検知した場合、スレーブ通信部122とマスタ通信部114を介して、操作イベント処理部511に操作イベントのデータを送信する。操作イベントのデータ例として、マウスを移動した結果によるマウスカーソルの座標値、状態が変化したマウスのボタンの識別子及び状態値、状態が変化したキーボードのキーの識別子及び状態値、DOMイベントの識別子などが挙げられる。
図6は、実施の形態4におけるウェブブラウザ画面同期システムにおいて、スレーブ装置120の使用者が、スレーブウェブブラウザ121で表示されているウェブページに対して、キー入力を行った場合の同期の流れを説明するシーケンス図を示す。
図6にはオブジェクトとして、操作イベント処理部511、操作イベント監視部512、スレーブ使用者601及び実施の形態1における図2と同じ符号を持つオブジェクトが存在する。ここで、スレーブ使用者601は、スレーブ装置120の使用者である。
図6のシーケンスは、開始前の前提条件として、マスタウェブブラウザ111とスレーブウェブブラウザ121のDOMツリーが同期されており、使用者からの操作を待っている状態である。また、表示しているウェブページには、使用者による文字列を入力可能な文字列入力領域が存在する。更に、キーボードがスレーブ装置120に接続されており、使用可能である。
以下、図6のシーケンス図の流れを時系列順に説明する。
まず、スレーブ使用者601が、スレーブウェブブラウザ121に表示されている文字列入力領域に対して、スレーブ装置120に接続されているキーボードを用いて、文字を入力したとする(文字入力611)。
操作イベント監視部512は、スレーブ使用者601による文字入力611に反応し、操作イベントが発生したことを検知する(操作イベント検知612)。操作イベント監視部512は、操作イベント検知612を行った後、スレーブ通信部122及びマスタ通信部114を介して、該操作イベントを操作イベント処理部511に送信する(操作イベント送信613、操作イベント送信614、操作イベント送信615)。例えば“a”と刻印されたキーを打鍵した場合、「“a”を打鍵した」という情報が、操作イベント検知612に基づき操作イベント処理部511に対して送信される。
操作イベント処理部511は、スレーブ通信部122及びマスタ通信部114を介して、操作イベント監視部512からの操作イベント送信615に反応し、受信した操作イベントと同様の処理をマスタウェブブラウザ111に対して実行する(操作イベント実行616)。すなわち、例えば「“a”を打鍵した」という操作イベントを受信した場合、あたかもマスタ装置110に接続されたキーボードが打鍵されたかのように、マスタウェブブラウザ111に打鍵処理を実行させる。
マスタウェブブラウザ111は、操作イベント処理部511の操作イベント実行616に反応し、操作イベントの処理を行い、操作イベントの処理結果としてDOMツリーを構築する(DOMツリー構築617)。例えば「“a”を打鍵した」という操作イベントの場合、マスタウェブブラウザ111に表示されているウェブページ内に存在する文字列入力領域に“a”という文字を挿入し、マスタウェブブラウザ111のDOMツリーにおける文字列入力領域に対応するDOMノードの、入力文字列情報を示す値を更新する。
また、マスタウェブブラウザ111は、DOMツリー構築617を処理した結果として、マスタ装置110の画面を更新するためにレンダリングを行う(レンダリング225)。
マスタウェブブラウザ111がDOMツリー構築617を行ったことで、DOMツリー変更点監視部113はマスタウェブブラウザ111のDOMツリーが変更されたことを検知し(DOMツリー変更検知226)、実施の形態1と同様に、該DOMツリー変更点がスレーブ装置120のDOMツリー構築部124に送信され、スレーブウェブブラウザ121のDOMツリーがマスタウェブブラウザ111のDOMツリーと同期される。また、スレーブウェブブラウザ121のDOMツリーが構築されたことを受けてスレーブウェブブラウザ121はレンダリング233を行う。
このように構成された実施の形態4のウェブブラウザ画面同期システムにおいては、スレーブ使用者601が文字列入力領域に文字を入力したという操作イベントが操作イベント監視部512によって検知され(操作イベント検知612)、該操作イベントが操作イベント処理部511に送信され、マスタウェブブラウザ111で該操作イベントの実行が行われる(操作イベント実行616)。従って、マスタウェブブラウザ111のDOMツリーの構築と(DOMツリー構築617)、レンダリング処理(レンダリング225)の結果、マスタ装置110の画面が更新され、スレーブ使用者601による操作がマスタ装置110に反映される。
また、実施の形態1と同様に、マスタウェブブラウザ111のDOMツリーが変更されたことを受けて、DOMツリー変更点監視部113が変更の検知(DOMツリー変更検知226)と、DOMツリー構築部124への該変更点の送信(DOMツリー変更点送信227、DOMツリー変更点送信228、DOMツリー変更点送信229)が行われる。そして、DOMツリー構築部124はスレーブウェブブラウザ121のDOMツリーを構築し(DOMツリー構築230)、スレーブウェブブラウザ121はレンダリング処理を行う(レンダリング233)。従って、マスタウェブブラウザ111とスレーブウェブブラウザ121のDOMツリーの同期と、ひいてはマスタ装置110とスレーブ装置120の画面の表示内容の同期を実現できる。
更に、スレーブ使用者601がスレーブウェブブラウザ121において、ウェブブラウザのユーザインタフェースの各種要素(例えば、表示履歴に従ってページを遷移するボタン、ページの読み込みを中止するボタン、ページを再読み込みするボタン、ホームページに遷移するボタン等)に対して操作を行った場合、操作イベント監視部512によって各種要素への該操作イベントが検知され(操作イベント検知612)、次に該操作イベントが操作イベント処理部511に送信され、最後にマスタウェブブラウザ111で該操作イベントの実行が行われる(操作イベント実行616)。従って、マスタウェブブラウザ111の操作イベント実行616によるページの更新、すなわちDOMツリーの変更が、実施の形態1と同様に全スレーブウェブブラウザ121のDOMツリーに適用される。故に、スレーブウェブブラウザ121のユーザインタフェース上で行われた各種操作に起因する表示の更新が、マスタ装置110と全スレーブ装置120に同期される。
以上説明したように、実施の形態4のウェブブラウザ画面同期システムによれば、スレーブ装置は、スレーブウェブブラウザで発生する操作イベントを監視し、操作イベントを検知した場合は操作イベントをマスタ装置への送信データとする操作イベント監視部を備え、マスタ装置は、操作イベント監視部で検知された操作イベントをマスタウェブブラウザに対して発生させる操作イベント処理部を備えたので、スレーブ装置側で操作イベントが発生した場合でも、マスタ装置とスレーブ装置の画面の表示内容の同期を実現することができる。
実施の形態5.
図7は、実施の形態5におけるウェブブラウザ画面同期システムを示す構成図である。図7に示す実施の形態5の構成は、実施の形態1における図1の構成に加えて、スクリプト監視部711とスクリプト処理部721が存在する。これ以外の構成は図1と同様であるため、対応する部分に同一符号を付してその説明を省略する。
スクリプト監視部711は、マスタウェブブラウザ111上で行われるスクリプトの処理を監視する。また、スクリプトの監視によって得られたスクリプト処理内容が、描画処理を伴うスクリプト処理であるかどうか判別を行う。更に、判別処理によって、描画処理を伴うスクリプト処理に該当すると判別された場合、マスタ通信部114及びスレーブ通信部122を介して、そのスクリプト処理内容をスクリプト処理部721に送信する。ここで言う描画処理を伴うスクリプト処理とは、例えばWebGLを使ったグラフィクスプロセッシングユニットへの命令、ソフトウェアによるCanvasへの描画命令、JavaScriptのalert関数による通知など、表示内容が更新されるスクリプト命令全般の処理である。
スクリプト処理部721は、スクリプト監視部711から受信したスクリプト処理内容に従い、スレーブウェブブラウザ121にスクリプト処理を実行させる。
図8は、実施の形態5におけるウェブブラウザ画面同期システムにおいて、マスタ装置110の使用者が、マスタウェブブラウザ111で表示されているウェブページに対して操作を行った結果、スクリプト監視部711によって描画処理を伴うスクリプト処理に該当すると判別された場合の同期の流れを説明するシーケンス図を示す。
図8にはオブジェクトとして、スクリプト監視部711、スクリプト処理部及び実施の形態1における図2と同じ符号を持つオブジェクトが存在する。
図8のシーケンスは、開始前の前提条件として、マスタウェブブラウザ111とスレーブウェブブラウザ121のDOMツリーが同期されており、使用者からの操作を待っている状態である。また、表示しているウェブページには、描画処理を伴うスクリプト処理に該当するスクリプトが含まれており、使用者の操作によってスクリプトの実行が行われるという状況である。
以下、図8のシーケンス図の流れを時系列順に説明する。
まず、マスタ使用者201が、マスタウェブブラウザ111のウェブページに対して、スクリプトを実行させる操作を行ったとする(操作811)。この操作とは、ウェブページ内のボタンをマウスで押下することや、キーボードにより文字を入力する等、スクリプトを始動させる要件を満たす各種操作である。
マスタウェブブラウザ111は、マスタ使用者201による操作811に反応し、スクリプトを実行する処理を行う(スクリプト実行812)。
また、マスタウェブブラウザ111はスクリプトを実行した結果として、レンダリング処理を行う(レンダリング813)。スクリプト監視部711は、マスタウェブブラウザ111によるスクリプト処理812に反応して、スクリプトが実行されたという検知を行う(スクリプト実行検知814)。
また、スクリプト監視部711は、スクリプト実行検知814で検知されたスクリプト処理に対して、描画処理を伴う処理であるかどうか判別を行う(処理判別815)。
更に、スクリプト監視部711は、処理判別815で描画処理を伴うスクリプト処理に該当すると判別した場合、マスタ通信部114及びスレーブ通信部122を介して、スクリプト処理をスクリプト処理部721に送信する(スクリプト処理送信816、スクリプト処理送信817、スクリプト処理送信818)。ここで、スクリプト監視部711からスクリプト処理部721に送信するスクリプト処理は、処理判別815によって描画処理を伴うスクリプト処理に該当したスクリプト処理と、同等の処理の実行を行うことが可能な処理内容を示すデータである。例えば、スクリプト処理で実行する関数の識別子(例えば関数IDや関数名)とその関数に与える引数のデータからなるデータや、ソースコードをコンパイルした後のデータであるバイトコードにおける描画処理を伴うスクリプト処理に該当するコード断片とその時点のコンテキストデータ等のデータが考えられる。
スクリプト処理部721は、マスタ通信部114及びスレーブ通信部122を介して、スクリプト監視部711からのスクリプト処理を受信し、スレーブウェブブラウザ121に対して、スクリプト処理を実行するように命令する(スクリプト処理命令819)。
スレーブウェブブラウザ121は、スクリプト処理部721からのスクリプト処理命令819に反応し、スクリプトを実行する処理を行う(スクリプト実行820)。すなわち、スクリプト監視部711の処理判別815によって描画処理を伴うスクリプト処理に該当したスクリプト処理と、同等の処理をスレーブウェブブラウザ121上で実行する。
また、スレーブウェブブラウザ121は、スクリプトを実行した結果として、レンダリング処理を行う(レンダリング821)。
このように構成された実施の形態5のウェブブラウザ画面同期システムにおいては、マスタウェブブラウザ111において実行されるスクリプトの処理が、描画処理を伴う処理である場合、スレーブ装置120に該スクリプト処理内容が送信され、スレーブウェブブラウザ121においても同様のスクリプト処理が実行される。従って、DOMツリーの変更を伴わない処理がマスタウェブブラウザ111で実行されたとしても、マスタウェブブラウザ111とスレーブウェブブラウザ121の表示を同一の表示内容に同期できる。
なお、図8のシーケンス図においては、マスタ使用者201がマスタウェブブラウザ111を操作した結果によるスクリプトの始動例が示されているが、ウェブページ遷移後すぐに始動するスクリプト処理や、タイマなどを用いて使用者の操作を伴わない条件で始動するスクリプト処理においても、所期の目的を達成し得ることは言うまでもない。
以上説明したように、実施の形態5のウェブブラウザ画面同期システムによれば、マスタ装置は、マスタウェブブラウザにおけるDOMツリーへの変更に関する処理以外の処理で、かつ、描画処理を伴うスクリプトの実行を監視し、スクリプトが実行された場合は、実行内容を、DOMツリー変更点監視部の監視結果とは無関係にスレーブ装置への送信データとするスクリプト監視部を備え、スレーブ装置は、スクリプト監視部が送信データとする実行内容をスレーブウェブブラウザに通知するスクリプト処理部を備えたので、DOMツリーの変更を伴わない処理がマスタウェブブラウザで実行されたとしても、マスタウェブブラウザとスレーブウェブブラウザの表示を同一の表示内容に同期することができる。
実施の形態6.
図9は、実施の形態6におけるウェブブラウザ画面同期システムを示す構成図である。図9は、実施の形態1における図1の構成に加えて、処理イベント監視部911と、処理イベント処理部921が存在する。その他の構成については、図1に示した実施の形態1と同様であるため、対応する部分に同一符号を付してその説明を省略する。
処理イベント監視部911は、マスタウェブブラウザ111で発生する処理イベントを監視する。ここで処理イベントとは、DOMツリーへの変更に関する処理以外の処理であり、例えばウェブブラウザの状態遷移処理や、レンダリング処理等が考えられる。処理イベントを検知した場合、マスタ通信部114とスレーブ通信部122を介して、処理イベント処理部921に該処理イベントのデータを送信する。処理イベントのデータとは、例えば該処理イベントがウェブブラウザの状態遷移処理であれば、状態遷移先の状態値が考えられる。
処理イベント処理部921は、マスタ通信部114とスレーブ通信部122を介して、処理イベント監視部911から送信された処理イベントの処理を行う。受信した処理イベントに応じて、同様の処理をスレーブウェブブラウザ121に対して命令する。
図10は、実施の形態6におけるウェブブラウザ画面同期システムにおいて、実施の形態1と同様に、マスタ装置110の使用者がウェブブラウザを操作する際の同期の流れを説明するシーケンス図を示す。
図10にはオブジェクトとして、処理イベント監視部911、処理イベント処理部921及び実施の形態1における図2と同じ符号を持つオブジェクトが存在する。
以下、実施の形態1と異なる実施の形態6の処理について説明する。
マスタ使用者201のページ遷移操作211を受けて、マスタウェブブラウザ111が一連のページ読み込み処理を開始し始めた際に、処理イベント監視部911はマスタウェブブラウザ111のページ読み込み処理を検知する(ページ読み込み開始検知1011)。
また、処理イベント監視部911は、ページ読み込み開始検知1011を行った後、マスタ通信部114及びスレーブ通信部122を介して、ページ読み込み開始処理がマスタウェブブラウザ111上で発生したことをスレーブ装置120の処理イベント処理部921に送信する(処理イベント送信1012、処理イベント送信1013、処理イベント送信1014)。
処理イベント処理部921は、マスタ通信部114及びスレーブ通信部122を介して、処理イベント監視部911からの処理イベント送信1014に反応し、スレーブウェブブラウザ121に対してマスタウェブブラウザ111がページ読み込み処理を開始したことを通知する(ページ読み込み開始通知1015)。
スレーブウェブブラウザ121は、処理イベント処理部921からのページ読み込み開始通知1015に反応し、マスタウェブブラウザ111がページの読み込みを開始したことを受けて、次回からスレーブウェブブラウザ121のDOMツリーを構築する際は、別の新しいDOMツリーに対して構築するように切り替える(ページ読み込み開始処理1016)。
マスタウェブブラウザ111がレンダリング処理(レンダリング225)を開始した際に、処理イベント監視部911はレンダリング処理を検知する(レンダリング検知1017)。また、処理イベント監視部911は、レンダリング検知1017を行った後、マスタ通信部114及びスレーブ通信部122を介して、レンダリング処理がマスタウェブブラウザ111上で発生したことをスレーブ装置120の処理イベント処理部921に送信する(処理イベント送信1018、処理イベント送信1019、処理イベント送信1020)。
処理イベント処理部921は、マスタ通信部114及びスレーブ通信部122を介して、処理イベント監視部911からの処理イベント送信1020に反応し、スレーブウェブブラウザ121に対して、マスタウェブブラウザ111がレンダリング処理を開始したことを通知する(レンダリング通知1021)。
スレーブウェブブラウザ121は、処理イベント処理部921からのレンダリング通知1021に反応し、マスタウェブブラウザ111がレンダリングを開始したことを受けて、スレーブウェブブラウザ121もレンダリングを行う(レンダリング233)。
このように構成された実施の形態6のウェブブラウザ画面同期システムにおいては、マスタウェブブラウザ111でページの読み込みを開始したという処理イベントが、スレーブウェブブラウザ121に伝わる。従って、1台のウェブブラウザが複数のDOMツリーを保持可能な場合、スレーブウェブブラウザ121は、DOMツリーを構築する(DOMツリー構築230)際に、どのDOMツリーに対して構築を行えば良いのか把握することができる。
また、実施の形態6のウェブブラウザ画面同期システムにおいては、マスタウェブブラウザ111でレンダリング処理を開始したという処理イベントが、スレーブウェブブラウザ121に伝わる。従って、スレーブウェブブラウザ121はDOMツリーの構築(DOMツリー構築230)が行われる際に毎回レンダリングをする必要がなくなり、スレーブ装置120の負荷を低減することができる。
以上説明したように、実施の形態6のウェブブラウザ画面同期システムによれば、マスタ装置は、マスタウェブブラウザで発生する、DOMツリーへの変更に関する処理以外の処理に関するイベント発生を監視し、発生した処理イベントをスレーブに送信する処理イベント監視部を備え、スレーブ装置は、マスタ装置から受信した処理イベントをスレーブウェブブラウザに通知する処理イベント処理部を備えたので、1台のウェブブラウザが複数のDOMツリーを保持可能な場合、スレーブウェブブラウザは、DOMツリーを構築する際に、どのDOMツリーに対して構築を行えば良いのか把握することができ、また、DOMツリーの構築が行われる際に毎回レンダリングをする必要がなく、スレーブ装置の負荷を低減することができる。
なお、本願発明はその発明の範囲内において、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
100 ウェブサーバ、110 マスタ装置、111 マスタウェブブラウザ、112 マスタリソース管理部、113 DOMツリー変更点監視部、114 マスタ通信部、120 スレーブ装置、121 スレーブウェブブラウザ、122 スレーブ通信部、123 スレーブリソース管理部、124 DOMツリー構築部、140,150 ネットワーク、511 操作イベント処理部、521 操作イベント監視部、711 スクリプト監視部、721 スクリプト処理部、911 処理イベント監視部、921 処理イベント処理部。

Claims (11)

  1. 1台のマスタ装置と1台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおいて、
    前記マスタ装置は、
    マスタウェブブラウザがウェブページを表示するのに必要なファイルデータを格納するウェブサーバと前記マスタウェブブラウザ間の通信を管理すると共に、前記マスタ装置と前記スレーブ装置とのリソース同期管理を行うマスタリソース管理部と、
    前記マスタウェブブラウザのDOMツリーに対する変更点を検出するDOMツリー変更点監視部とを備え、
    前記スレーブ装置は、
    前記マスタリソース管理部と同期して、前記スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、
    前記マスタ装置から受信したDOMツリー変更点を元にスレーブウェブブラウザのDOMツリーを構築するDOMツリー構築部とを備えたウェブブラウザ画面同期システム。
  2. 前記マスタリソース管理部は、前記ウェブサーバから受信したファイルがリソースファイルであった場合、前記スレーブリソース管理部に当該リソースファイルを転送し、
    前記スレーブリソース管理部は、前記マスタリソース管理部から転送されたリソースファイルを保管し、前記スレーブウェブブラウザの要求に応じて当該リソースファイルを前記スレーブウェブブラウザに送信することを特徴とする請求項1記載のウェブブラウザ画面同期システム。
  3. 前記マスタリソース管理部は、前記ウェブサーバから受信したファイルがリソースファイルであった場合は当該リソースファイルを保管し、
    前記スレーブリソース管理部は、前記スレーブウェブブラウザの要求に応じ、前記マスタリソース管理部にリソースファイルを要求し、前記マスタリソース管理部から受信した前記リソースファイルを、前記スレーブウェブブラウザに転送することを特徴とする請求項1記載のウェブブラウザ画面同期システム。
  4. 前記DOMツリー変更点監視部は、DOMツリーに対する変更点が前記スレーブ装置との画面同期に必要な変更点であるか否かを判断し、当該画面同期に必要なDOMノードのみを前記スレーブ装置への送信データとすることを特徴とする請求項1から請求項3のうちのいずれか1項記載のウェブブラウザ画面同期システム。
  5. 前記DOMツリー変更点監視部は、DOMツリー内のコメントノードを前記スレーブ装置への送信データから除外することを特徴とする請求項4記載のウェブブラウザ画面同期システム。
  6. 前記DOMツリー変更点監視部は、DOMツリー内のスクリプトの実行に関するノードを前記スレーブ装置への送信データから除外することを特徴とする請求項4記載のウェブブラウザ画面同期システム。
  7. 前記スレーブ装置は、
    前記スレーブウェブブラウザで発生する操作イベントを監視し、当該操作イベントを検知した場合は当該操作イベントを前記マスタ装置への送信データとする操作イベント監視部を備え、
    前記マスタ装置は、
    前記操作イベント監視部で検知された操作イベントをマスタウェブブラウザに対して発生させる操作イベント処理部を備えたことを特徴とする請求項1から請求項6のうちのいずれか1項記載のウェブブラウザ画面同期システム。
  8. 前記マスタ装置は、
    前記マスタウェブブラウザにおけるDOMツリーへの変更に関する処理以外の処理で、かつ、描画処理を伴うスクリプトの実行を監視し、前記スクリプトが実行された場合は、当該実行内容を、前記DOMツリー変更点監視部の監視結果とは無関係に前記スレーブ装置への送信データとするスクリプト監視部を備え、
    前記スレーブ装置は、
    前記スクリプト監視部が送信データとする前記実行内容を前記スレーブウェブブラウザに通知するスクリプト処理部を備えたことを特徴とする請求項6記載のウェブブラウザ画面同期システム。
  9. 前記マスタ装置は、
    前記マスタウェブブラウザで発生する、DOMツリーへの変更に関する処理以外の処理に関するイベント発生を監視し、当該発生した処理イベントをスレーブに送信する処理イベント監視部を備え、
    前記スレーブ装置は、
    前記マスタ装置から受信した前記処理イベントを前記スレーブウェブブラウザに通知する処理イベント処理部を備えたことを特徴とする請求項2または請求項3記載のウェブブラウザ画面同期システム。
  10. 1台のマスタ装置と1台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおけるマスタ装置であって、
    マスタウェブブラウザがウェブページを表示するのに必要なファイルデータを格納するウェブサーバと当該マスタウェブブラウザ間の通信を管理すると共に、前記マスタ装置と前記スレーブ装置とのリソース同期管理を行うマスタリソース管理部と、
    前記マスタウェブブラウザのDOMツリーに対する変更点を検出するDOMツリー変更点監視部とを備えたマスタ装置。
  11. 1台のマスタ装置と1台以上のスレーブ装置からなるウェブブラウザ画面同期システムにおけるスレーブ装置であって、
    前記マスタ装置と同期して、前記スレーブ装置のリソース同期管理を行うスレーブリソース管理部と、
    前記マスタ装置から受信したDOMツリー変更点を元にスレーブウェブブラウザのDOMツリーを構築するDOMツリー構築部とを備えたスレーブ装置。
JP2013041887A 2013-03-04 2013-03-04 ウェブブラウザ画面同期システム及びマスタ装置並びにスレーブ装置 Pending JP2014170389A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013041887A JP2014170389A (ja) 2013-03-04 2013-03-04 ウェブブラウザ画面同期システム及びマスタ装置並びにスレーブ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013041887A JP2014170389A (ja) 2013-03-04 2013-03-04 ウェブブラウザ画面同期システム及びマスタ装置並びにスレーブ装置

Publications (1)

Publication Number Publication Date
JP2014170389A true JP2014170389A (ja) 2014-09-18

Family

ID=51692740

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013041887A Pending JP2014170389A (ja) 2013-03-04 2013-03-04 ウェブブラウザ画面同期システム及びマスタ装置並びにスレーブ装置

Country Status (1)

Country Link
JP (1) JP2014170389A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019139276A (ja) * 2018-02-06 2019-08-22 ニューロネット株式会社 Web共有システム、プログラム
CN113094006A (zh) * 2020-01-08 2021-07-09 北京搜狗科技发展有限公司 一种数据处理方法、装置和电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019139276A (ja) * 2018-02-06 2019-08-22 ニューロネット株式会社 Web共有システム、プログラム
CN113094006A (zh) * 2020-01-08 2021-07-09 北京搜狗科技发展有限公司 一种数据处理方法、装置和电子设备

Similar Documents

Publication Publication Date Title
US8838808B2 (en) Asynchronous communication in web applications
US8782127B2 (en) Notification based web applications
KR101317972B1 (ko) 웹 브라우저들 사이에서 웹 브라우저 데이터를 전송하기위한 방법 및 시스템
EP2815311B1 (en) Using an application cache to update resources of installed applications
US10545749B2 (en) System for cloud computing using web components
JP5321586B2 (ja) アプリケーション拡張システム、拡張方法、拡張プログラム
US8788627B2 (en) Interactive web application framework
JP2004178268A (ja) リアルタイムウェブ共有システム
US9727208B2 (en) Information processing apparatus, information processing method, and storage medium
US10216556B2 (en) Master database synchronization for multiple applications
KR102040359B1 (ko) 상태 정보를 위한 동기화 지점
US20110264729A1 (en) Augmentation of network traffic
EP3813326A1 (en) Method and apparatus for processing webpage, device, and storage medium
US20130124971A1 (en) Real time web script refresh using asynchronous polling without full web page reload
JP2016038802A (ja) 情報処理端末、その制御方法及びプログラム
EP3008697B1 (en) Coalescing graphics operations
JP2014170389A (ja) ウェブブラウザ画面同期システム及びマスタ装置並びにスレーブ装置
US20110295966A1 (en) Methods, systems, and computer program products for processing a combined command response based on a markup element
US20140337284A1 (en) Synchronizing folders using a shadow folder hierarchy
US20180032553A1 (en) Augmenting database schema using information from multiple sources
JP2013225220A (ja) Web閲覧画面サムネイル生成システム
WO2015083232A1 (ja) マスタ装置およびウェブブラウザ画面同期システム
JP5959535B2 (ja) クライアントからネットワークを介して携帯端末にアクセスするためのサーバ、方法、及び、コンピュータを該サーバとして機能させるプログラム
JP2009080587A (ja) データ転送サーバ
US20110295932A1 (en) Methods, systems, and computer program products for processing an attached command response based on a markup element