JP2023113070A - 情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラム - Google Patents
情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラム Download PDFInfo
- Publication number
- JP2023113070A JP2023113070A JP2022015206A JP2022015206A JP2023113070A JP 2023113070 A JP2023113070 A JP 2023113070A JP 2022015206 A JP2022015206 A JP 2022015206A JP 2022015206 A JP2022015206 A JP 2022015206A JP 2023113070 A JP2023113070 A JP 2023113070A
- Authority
- JP
- Japan
- Prior art keywords
- terminal
- browser
- web page
- header information
- asset
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000004590 computer program Methods 0.000 title claims description 12
- 238000004891 communication Methods 0.000 claims abstract description 32
- 230000010365 information processing Effects 0.000 claims description 79
- 230000004044 response Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 8
- 239000003795 chemical substances by application Substances 0.000 description 103
- 238000010586 diagram Methods 0.000 description 19
- 230000006870 function Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000000547 structure data Methods 0.000 description 4
- 238000005401 electroluminescence Methods 0.000 description 3
- 238000003672 processing method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 210000001072 colon Anatomy 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Landscapes
- Digital Computer Display Output (AREA)
Abstract
【課題】2つの端末のブラウザ間で、より精度高くウェブページの画面共有を実現することができる画面共有方法を提供する。【解決手段】第2端末のブラウザに表示されるウェブページを、第1端末のブラウザに表示する画面共有方法であって、ウェブページを表示している第2端末のブラウザが外部と通信を行う際に使用するヘッダ情報と、ヘッダ情報IDとを対応付けて記憶部に記憶し、第1端末のブラウザから送信された、ウェブページを構成するアセットファイルの所在を示す所在情報と、ヘッダ情報IDとを含むリクエストデータを受信した場合、リクエストデータに含まれるヘッダ情報IDに対応するヘッダ情報を記憶部から取得し、受信したリクエストデータに含まれる所在情報と、記憶部から取得したヘッダ情報とを含むアセットリクエストデータを用いて、外部サーバからアセットファイルを取得し、取得したアセットファイルを第1端末へ送信する。【選択図】図9
Description
本発明は、情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラムに関する。
エンドユーザブラウザに表示される画面を、オペレータブラウザを通じて共有することにより、オペレータとエンドユーザの双方における情報伝達を視覚的に促進することを可能にする画面共有システムがある(例えば、特許文献1)。画面共有システムは、ウェブページを表示するエンドユーザブラウザと、オペレータブラウザと、通信網を介して各ブラウザに接続される中継サーバとを備える。エンドユーザブラウザ及びオペレータブラウザは、ウェブページのHTML構造データを、中継サーバを介して送受信し、オペレータブラウザは、エンドユーザブラウザに表示されているウェブページを再構成することにより画面共有を実現している。
しかしながら、ウェブページの表示環境の相違等により、ウェブページのHTML構造データを送受信して共有するのみでは、オペレータ端末及びエンドユーザ端末で画面共有表示されるウェブページのレイアウトの差異が生ずるという問題があった。
本発明の目的は、2つの端末のブラウザ間で、より精度高くウェブページの画面共有を実現することができる情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラムを提供することにある。
本発明の一態様に係る情報処理装置は、第1端末のブラウザと、第2端末のブラウザとの間で通信を行う通信部と、前記第2端末のブラウザに表示されるウェブページを、前記第1端末のブラウザに表示する画面共有に係る処理を実行する処理部と、前記ウェブページを表示している前記第2端末のブラウザが外部と通信を行う際に使用するヘッダ情報と、ヘッダ情報IDとを対応付けて記憶する記憶部とを備え、前記処理部は、前記第1端末のブラウザから送信された、前記ウェブページを構成するアセットファイルの所在を示す所在情報と、前記ヘッダ情報IDとを含むリクエストデータを前記通信部にて受信した場合、該リクエストデータに含まれる前記ヘッダ情報IDに対応する前記ヘッダ情報を前記記憶部から取得し、受信した前記リクエストデータに含まれる前記所在情報と、前記記憶部から取得した前記ヘッダ情報とを含むアセットリクエストデータを生成し、前記通信部は、生成された前記アセットリクエストデータを用いて、外部サーバに前記アセットファイルを要求し、要求に応じて前記外部サーバから送信された前記アセットファイルを受信し、受信した前記アセットファイルを前記第1端末へ送信する。
本発明の一態様に係る画面共有システムは、前記情報処理装置と、通信網を介して前記情報処理装置に接続される第1端末及び第2端末とを備える画面共有システムであって、前記第2端末は、前記第2端末のブラウザに表示されている前記ウェブページのデータを、前記情報処理装置を介して前記第1端末へ送信させる第2端末処理部を備え、前記第1端末は、前記第2端末から送信された前記ウェブページのデータを受信し、受信したデータに基づいて、前記ウェブページを再構成して表示させる第1端末処理部を備え、前記第1端末処理部は、受信したデータの前記ウェブページを構成する要素が属性値として前記アセットファイルの所在を示す前記所在情報を含む場合、該属性値を、前記情報処理装置に係るドメイン名と、前記所在情報及び前記ヘッダ情報IDとを含む文字列に置換する。
本発明の一態様に係る画面共有方法は、第2端末のブラウザに表示されるウェブページを、第1端末のブラウザに表示する画面共有方法であって、前記ウェブページを表示している前記第2端末のブラウザが外部と通信を行う際に使用するヘッダ情報と、ヘッダ情報IDとを対応付けて記憶部に記憶し、前記第1端末のブラウザから送信された、前記ウェブページを構成するアセットファイルの所在を示す所在情報と、前記ヘッダ情報IDとを含むリクエストデータを受信した場合、該リクエストデータに含まれる前記ヘッダ情報IDに対応する前記ヘッダ情報を前記記憶部から取得し、受信した前記リクエストデータに含まれる前記所在情報と、前記記憶部から取得した前記ヘッダ情報とを含むアセットリクエストデータを生成し、生成された前記アセットリクエストデータを用いて、外部サーバに前記アセットファイルを要求し、要求に応じて前記外部サーバから送信された前記アセットファイルを受信し、受信した前記アセットファイルを前記第1端末へ送信する。
本発明の一態様に係るコンピュータプログラムは、第2端末のブラウザに表示されるウェブページを、第1端末のブラウザに表示する画面共有に係る処理をコンピュータに実行させるためのコンピュータプログラムであって、前記ウェブページを表示している前記第2端末のブラウザが外部と通信を行う際に使用するヘッダ情報と、ヘッダ情報IDとを対応付けて記憶部に記憶し、前記第1端末のブラウザから送信された、前記ウェブページを構成するアセットファイルの所在を示す所在情報と、前記ヘッダ情報IDとを含むリクエストデータを受信した場合、該リクエストデータに含まれる前記ヘッダ情報IDに対応する前記ヘッダ情報を前記記憶部から取得し、受信した前記リクエストデータに含まれる前記所在情報と、前記記憶部から取得した前記ヘッダ情報とを含むアセットリクエストデータを生成し、生成された前記アセットリクエストデータを用いて、外部サーバに前記アセットファイルを要求し、要求に応じて前記外部サーバから送信された前記アセットファイルを受信し、受信した前記アセットファイルを前記第1端末へ送信する処理を前記コンピュータに実行させる。
上記によれば、2つの端末のブラウザ間で、より精度高くウェブページの画面共有を実現することができる情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラムを提供することができる。
本開示の実施形態に係る情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラムを、以下に図面を参照しつつ説明する。なお、本開示は、これらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
図1は、実施形態に係る画面共有システムの構成例を説明する模式図である。本実施形態に係る画面共有システムは、情報処理装置1と、エージェント端末(第1端末)2と、ゲスト端末(第2端末)3と、ウェブサーバ(外部サーバ)4とを備える。各種端末及びサーバは、通信網Nを介して情報処理装置1に接続されている。
エージェント端末2を操作するユーザ(以下、エージェントと呼ぶ)は、例えばゲスト端末3を操作するユーザ(以下、ゲストと呼ぶ)のウェブサイトの操作方法を案内する者である。なお、エージェント及びゲストは、本実施形態に係る情報処理装置1のユーザの一例であり、両者の関係は特に限定されるものでは無い。
図2は、実施形態に係る画面共有システムの構成例を示すブロック図である。情報処理装置1は、処理部11、記憶部12、通信部13を備えたコンピュータである。なお、情報処理装置1は、複数台のコンピュータで構成し分散処理する構成でもよいし、1台のサーバ内に設けられた複数の仮想マシンによって実現されていてもよいし、クラウドサーバを用いて実現されていてもよいし、一部を量子コンピュータで構成してもよい。
処理部11は、一又は複数のCPU(Central Processing Unit)、MPU(Micro-Processing Unit)等の演算処理装置を有し、記憶部12に記憶されたコンピュータプログラムP1を読み出して実行することにより、本実施形態に係る画面共有処理を実行する。
記憶部12は、ハードディスク、EEPROM(Electrically Erasable Programmable Read-Only Memory)、フラッシュメモリ等の記憶装置である。記憶部12は、処理部11が、ゲスト端末3と、エージェント端末2との間で、それぞれのウェブブラウザに表示されるウェブページの内容及び操作内容を共有するために必要なコンピュータプログラムP1、エージェントプログラムP2及びゲストプログラムP3を記憶している。エージェントプログラムP2及びゲストプログラムP3は、例えばJavaScript(登録商標)で記述されたプログラムであり、情報処理装置1は、エージェントプログラムP2をエージェント端末2へ送信し、ゲストプログラムP3をゲスト端末3へ送信する。エージェント端末2で動作するウェブブラウザ(以下、エージェントブラウザB2と呼ぶ)は、エージェントプログラムP2を実行することにより、画面共有に必要な処理を実行する。ゲスト端末3で動作するウェブブラウザ(以下、ゲストブラウザB3と呼ぶ)は、ゲストプログラムP3を実行することにより、画面共有に必要な処理を実行する。
なお、各種プログラムは、記録媒体5にコンピュータ読み取り可能に記録されている態様でも良い。記憶部12は、図示しない読出装置によって記録媒体5から読み出されたコンピュータプログラムP1、エージェントプログラムP2及びゲストプログラムP3を記憶する。記録媒体5はフラッシュメモリ等の半導体メモリ、光ディスク、磁気ディスク、磁気光ディスク等である。また、通信網Nに接続されている図示しない外部サーバから本実施形態に係る各種プログラムをダウンロードし、記憶部12に記憶させる態様であってもよい。
なお、各種プログラムは、記録媒体5にコンピュータ読み取り可能に記録されている態様でも良い。記憶部12は、図示しない読出装置によって記録媒体5から読み出されたコンピュータプログラムP1、エージェントプログラムP2及びゲストプログラムP3を記憶する。記録媒体5はフラッシュメモリ等の半導体メモリ、光ディスク、磁気ディスク、磁気光ディスク等である。また、通信網Nに接続されている図示しない外部サーバから本実施形態に係る各種プログラムをダウンロードし、記憶部12に記憶させる態様であってもよい。
通信部13は、通信に関する処理を行うための処理回路、通信回路等を含み、エージェント端末2、ゲスト端末3及びウェブサーバ4との間で情報の送受信を行う。
エージェント端末2は、処理部(第1端末処理部)21、記憶部22、通信部23、操作部24及び表示部25を備えたコンピュータである。処理部21、記憶部22及び通信部23の基本的な構成は、情報処理装置1と同様である。記憶部22は、少なくともエージェントブラウザB2に係るプログラムを記憶している。エージェントブラウザB2は、ウェブページを構成する要素を参照及び制御するプログラムであるDOM(Document Object Model)を実装しており、情報処理装置1から送信されたエージェントプログラムP2を実行することができる。操作部24は、キーボード、マウス等であり、エージェントの操作及び入力を受け付ける。表示部25は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の表示装置であり、処理部21から与えられた情報を描画する。
ゲスト端末3は、処理部(第2端末処理部)31、記憶部32、通信部33、操作部34及び表示部35を備えたコンピュータである。処理部31、記憶部32及び通信部33の基本的な構成は、情報処理装置1と同様である。記憶部32は、少なくともゲストブラウザB3に係るプログラムを記憶している。ゲストブラウザB3は、ウェブページを構成する要素を参照及び制御するプログラムであるDOMを実装しており、情報処理装置1から送信されたゲストプログラムP3を実行することができる。操作部34は、キーボード、マウス等であり、ゲストの操作及び入力を受け付ける。表示部35は、液晶ディスプレイ、有機ELディスプレイ等の表示装置であり、処理部31から与えられた情報を描画する。
ウェブサーバ4は、少なくともゲストブラウザB3からのリクエストに応じて、ウェブページの文書ファイルと、ウェブページを構成するアセットファイルをゲストブラウザB3へ送信するサーバである。また、ウェブサーバ4は、少なくとも情報処理装置1からのリクエストに応じて、ウェブページを構成するアセットファイルを情報処理装置1へ送信するサーバである。本実施形態においては、ゲストブラウザB3は、ウェブサーバ4にアクセスして、ウェブページを表示する。
図3は、実施形態に係る画面共有システムの機能ブロック図である。エージェント端末2は、機能部としてエージェントブラウザB2を有し、情報処理装置1から送信されるエージェントプログラムP2を実行することができる。なお、エージェントプログラムP2は、エージェントブラウザB2が情報処理装置1にアクセスして管理画面を読み込む際、情報処理装置1からエージェント端末2へ送信される。管理画面は、ウェブページの画面共有処理を実行するための画面である。
ゲスト端末3は、機能部としてゲストブラウザB3を有し、情報処理装置1から送信されるゲストプログラムP3を実行することができる。なお、ゲストプログラムP3は、画面共有対象であるウェブページを読み込む際、情報処理装置1からゲスト端末3へ送信される。
情報処理装置1は、API処理部11a、ソケット処理部11b及びファイル処理部11cを備える。また、情報処理装置1は、アカウント管理データベース12a、画面共有管理データベース12b、画面共有データ中継ストア12c、プログラムファイルストレージ12d及びアセットファイルストレージ12eを備える。
API処理部11aは、画面共有システムの各種設定データをアカウント管理データベース12aから取得し、画面共有処理に関する設定等の処理を実行する機能部である。
ソケット処理部11bは、ウェブソケットによりエージェントブラウザB2及びゲストブラウザB3との通信を確立し、双方向通信を可能にする機能部である。ソケット処理部11bは、画面共有処理のセッションを識別するためのセッションID(ヘッダ情報ID)の発行、エージェントブラウザB2及びゲストブラウザB3との間で画面共有中の各種データの送受信等の処理を実行する。なお、ウェブソケットは通信接続方法の一例であり、ソケット処理部11bは、ロングポーリングによって、エージェントブラウザB2及びゲストブラウザB3との間で擬似的に双方向通信を実現するように構成してもよい。
ファイル処理部11cは、画面共有対象であるウェブページを構成するアセットファイルを、ウェブサーバ4にリクエストして取得し、一時的に保存する処理を実行する機能部である。アセットファイルは、例えばCSS(Cascading Style Sheets)ファイル、画像ファイル、フォントファイル等である。
アカウント管理データベース12aは、画面共有システムの各種設定データを保存するデータベースである。設定データは、ウェブページ上の共有不可項目の指定、ウェブページ上に表示される各種ボタンのレイアウトの指定等を行うデータである。
画面共有管理データベース12bは、画面共有処理のセッションを識別するためのセッションID等を保存するデータベースである。
画面共有データ中継ストア12cは、エージェントブラウザB2及びゲストブラウザB3との間で送受信される画面共有中の各種データを中継する中継サーバである。
プログラムファイルストレージ12dは、エージェントブラウザB2に表示される管理画面を構成するHTMLファイル、CSSファイル、画像ファイル、エージェントプログラムP2、ゲストプログラムP3等を保存するストレージである。
アセットファイルストレージ12eは、画面共有対象であるウェブページを構成するアセットファイルのファイル処理に使用するセッション情報、取得したアセットファイル等を一時的に保存するストレージである。
画面共有管理データベース12bは、画面共有処理のセッションを識別するためのセッションID等を保存するデータベースである。
画面共有データ中継ストア12cは、エージェントブラウザB2及びゲストブラウザB3との間で送受信される画面共有中の各種データを中継する中継サーバである。
プログラムファイルストレージ12dは、エージェントブラウザB2に表示される管理画面を構成するHTMLファイル、CSSファイル、画像ファイル、エージェントプログラムP2、ゲストプログラムP3等を保存するストレージである。
アセットファイルストレージ12eは、画面共有対象であるウェブページを構成するアセットファイルのファイル処理に使用するセッション情報、取得したアセットファイル等を一時的に保存するストレージである。
図4は、実施形態に係る画面共有処理を開始するための事前処理手順を示すシーケンス図、図5は、文書型宣言の処理方法を示す概念図である。情報処理装置1のソケット処理部11bは、ウェブソケットにて、エージェント端末2と、ゲスト端末3との通信を確立する(ステップS11)。通信確立の手順は特に限定されるものでは無い。エージェント端末2及びゲスト端末3は、情報処理装置1と双方向通信が可能になる。また、エージェント端末2及びゲスト端末3は、情報処理装置1を介して、ウェブページの画面共有に必要なデータを送受信することが可能になる。情報処理装置1は、画面共有処理の開始時にセッションIDを発行し、発行したセッションIDを適宜のタイミングでエージェント端末2及びゲスト端末3へ送信する。エージェント端末2及びゲスト端末3はセッションIDを受信し、記憶する。エージェント端末2及びゲスト端末3間の画面共有に係る一連の処理は、セッションIDによって管理される。
ここでは、ゲストブラウザB3は、ウェブサーバ4にアクセスしてウェブページを表示しているものとする。なお、図4で示すステップS11からステップS23及び後述する図6で示すステップS24からステップS32は、ゲストブラウザB3が、表示しているウェブページを更新、又は異なるウェブページに遷移する都度、画面共有処理のセッションが終了するまで繰り返し処理される。
ここでは、ゲストブラウザB3は、ウェブサーバ4にアクセスしてウェブページを表示しているものとする。なお、図4で示すステップS11からステップS23及び後述する図6で示すステップS24からステップS32は、ゲストブラウザB3が、表示しているウェブページを更新、又は異なるウェブページに遷移する都度、画面共有処理のセッションが終了するまで繰り返し処理される。
エージェント側の画面共有処理の実行主体は、エージェント端末2、処理部21又はエージェントブラウザB2と捉えることができるが、以下の説明では、エージェントプログラムP2を実行するエージェントブラウザB2が実行主体であるとして説明する。同様に、ゲスト側の画面共有処理の実行主体は、ゲスト端末3、処理部31又はゲストブラウザB3と捉えることができるが、以下の説明では、ゲストプログラムP3を実行するゲストブラウザB3が実行主体であるとして説明する。
<セッション情報の記憶>
次いで、ゲストブラウザB3は、セッションID及びセッション情報を、情報処理装置1へ送信する(ステップS12)。セッション情報は、リクエストヘッダ情報(ヘッダ情報)、ウェブページ情報等を含む。
リクエストヘッダ情報は、ゲストブラウザB3がウェブサーバ4と通信を行う際に使用するオリジン、リファラ、ユーザエージェント等の情報を含む。オリジンは、例えば、ゲストブラウザB3が表示しているウェブページのURLに使用されるスキーム(プロトコル)、ホスト(ドメイン)、ポートを示す情報を含む。リファラは、例えば、ゲストブラウザB3が表示しているウェブページのURLを示す情報を含む。ユーザエージェントは、例えば、ゲストブラウザB3に係る情報である。
ウェブページ情報は、ゲストブラウザB3が表示しているウェブページの文書型宣言情報、タイトル、URL等の情報を含む。
次いで、ゲストブラウザB3は、セッションID及びセッション情報を、情報処理装置1へ送信する(ステップS12)。セッション情報は、リクエストヘッダ情報(ヘッダ情報)、ウェブページ情報等を含む。
リクエストヘッダ情報は、ゲストブラウザB3がウェブサーバ4と通信を行う際に使用するオリジン、リファラ、ユーザエージェント等の情報を含む。オリジンは、例えば、ゲストブラウザB3が表示しているウェブページのURLに使用されるスキーム(プロトコル)、ホスト(ドメイン)、ポートを示す情報を含む。リファラは、例えば、ゲストブラウザB3が表示しているウェブページのURLを示す情報を含む。ユーザエージェントは、例えば、ゲストブラウザB3に係る情報である。
ウェブページ情報は、ゲストブラウザB3が表示しているウェブページの文書型宣言情報、タイトル、URL等の情報を含む。
情報処理装置1のファイル処理部11cは、ゲストブラウザB3から送信されたセッションID及びセッション情報を受信した場合、受信したセッションIDと、セッション情報とを対応付けてアセットファイルストレージ12eに保存する(ステップS13)。なお、本実施形態ではリクエストヘッダ情報を含むセッション情報をセッションIDに対応付ける例を説明するが、セッション情報を他の任意のIDと対応付けて保存するようにしてもよい。また、リクエストヘッダ情報を任意のIDと対応付けて保存するようにしてもよい。リクエストヘッダ情報及びウェブページ情報の管理、保存方法は特に限定されるものでは無い。次いで、ファイル処理部11cは、セッション保存結果情報をエージェントブラウザB2へ送信する(ステップS14)。セッション保存結果情報は、ステップS13の処理の成否等を含む。
<文書型宣言>
エージェントブラウザB2は、管理画面上の画面共有表示領域のURLを置換する(ステップS15)。画面共有表示領域は、画面共有対象のウェブページを再構成して表示するための管理画面上の要素であり、例えば、iframe要素等がある。ステップS15において変換された画面共有表示領域のURLは、ドメイン名が情報処理装置1のファイル処理部11cのドメイン名と同一であり、パス、クエリ文字列等の一部のパラメータとしてセッションIDを含む。
エージェントブラウザB2は、管理画面上の画面共有表示領域のURLを置換する(ステップS15)。画面共有表示領域は、画面共有対象のウェブページを再構成して表示するための管理画面上の要素であり、例えば、iframe要素等がある。ステップS15において変換された画面共有表示領域のURLは、ドメイン名が情報処理装置1のファイル処理部11cのドメイン名と同一であり、パス、クエリ文字列等の一部のパラメータとしてセッションIDを含む。
具体的には、エージェントブラウザB2は、ステップS15において変換された画面共有表示領域のURLを用いて、情報処理装置1にアクセスし、画面共有表示テンプレートファイルをリクエストする(ステップS16)。画面共有表示テンプレートファイルは、画面共有表示領域のテンプレートとなる文書ファイルであり、例えば、HTMLファイルである。
情報処理装置1のファイル処理部11cは、エージェントブラウザB2からリクエストされたURLのパラメータから、セッションIDを取得する(ステップS17)。また、ファイル処理部11cは、プログラムファイルストレージ12dから、画面共有表示テンプレートファイルを取得する(ステップS18)。ファイル処理部11cは、ステップS17において取得したセッションIDをキーにして、アセットファイルストレージ12eからセッション情報を取得し、セッション情報に含まれるウェブページ情報に文書型宣言情報が存在するか否かを判定する(ステップS19)。
文書型宣言情報が存在すると判定した場合(ステップS19:YES)、ファイル処理部11cは、存在確認した文書型宣言情報を取得し(ステップS20)、取得した文書型宣言情報をステップS18において取得した画面共有表示テンプレートファイルに設定し(ステップS21)、文書型宣言情報が追加された画面共有表示テンプレートファイルを、エージェントブラウザB2へレスポンスとして送信する(ステップS22)。
なお、ステップS19において文書型宣言情報が存在しないと判定した場合(ステップS19:NO)、ファイル処理部11cは、ステップS18において取得した画面共有表示テンプレートファイルを、エージェントブラウザB2へレスポンスとして送信する(ステップS22)。
文書型宣言情報が存在すると判定した場合(ステップS19:YES)、ファイル処理部11cは、存在確認した文書型宣言情報を取得し(ステップS20)、取得した文書型宣言情報をステップS18において取得した画面共有表示テンプレートファイルに設定し(ステップS21)、文書型宣言情報が追加された画面共有表示テンプレートファイルを、エージェントブラウザB2へレスポンスとして送信する(ステップS22)。
なお、ステップS19において文書型宣言情報が存在しないと判定した場合(ステップS19:NO)、ファイル処理部11cは、ステップS18において取得した画面共有表示テンプレートファイルを、エージェントブラウザB2へレスポンスとして送信する(ステップS22)。
エージェントブラウザB2は、情報処理装置1から送信された画面共有表示テンプレートファイルを読み込み、画面共有表示領域を更新する(ステップS23)。
<画面共有及び操作共有>
エージェントブラウザB2及びゲストブラウザB3は、画面共有対象であるウェブページの内容及び操作内容を共有するための情報を、情報処理装置1を介して送受信する。例えば、エージェントブラウザB2及びゲストブラウザB3は、ページサイズデータ、HTMLデータ、エージェント操作データ、ゲスト操作データ等を、情報処理装置1を介して送受信する。なお、エージェントブラウザB2及びゲストブラウザB3は、情報を暗号化及び復号化するための共通鍵を事前に生成し、生成した共通鍵を用いて、送信前の情報の暗号化処理及び受信後の情報の復号化処理を実行してもよい。
エージェントブラウザB2及びゲストブラウザB3は、画面共有対象であるウェブページの内容及び操作内容を共有するための情報を、情報処理装置1を介して送受信する。例えば、エージェントブラウザB2及びゲストブラウザB3は、ページサイズデータ、HTMLデータ、エージェント操作データ、ゲスト操作データ等を、情報処理装置1を介して送受信する。なお、エージェントブラウザB2及びゲストブラウザB3は、情報を暗号化及び復号化するための共通鍵を事前に生成し、生成した共通鍵を用いて、送信前の情報の暗号化処理及び受信後の情報の復号化処理を実行してもよい。
ページサイズデータは、画面共有対象のウェブページにおける画面上の表示領域の高さと幅を示す情報を含むデータである。
HTMLデータは、画面共有対象のウェブページのHTML構造を示す情報であり、JSON(JavaScript(登録商標) Object Notation)形式で生成された入れ子構造のデータである。具体的には、ウェブページを構成するノード(Node)の情報であり、ノードを特定するための一意な識別子(以下、nodeIDと呼ぶ)、ノードの種類(以下、nodeTypeと呼ぶ)、要素の名前(以下、tagNameと呼ぶ)、プロパティの値(以下、propertyと呼ぶ)、子ノードの情報(以下、childNodesと呼ぶ)等を含む。nodeIDは、ウェブページを構成するノードに対して一意な識別子を割り振ったものである。nodeTypeは、ノードの種類を表す整数のコードであり、例えば、要素ノード(ELEMENT_NODE)であれば「1」、テキストノード(TEXT_NODE)であれば「3」、コメントノード(COMMENT_NODE)であれば「8」のように表される。tagNameは、ノードの要素の名前であり、nodeTypeが「1」の場合のみ存在し、例えば、段落を表す要素であれば「P」、画像を表す要素であれば「IMG」のように表される。propertyは、idやclassといったHTML上で定義されている属性(attributes)に加え、tagNameの種類によって異なるデータを持ち、例えば、tagNameが「INPUT」の場合、入力値(value)やチェック状態(checked)等が存在する。そのため、tagNameの値に応じて取得するpropertyを予め定めておく必要がある。childNodesは、当該ノードの子に該当するノードの情報であり、子のノードが存在する限り繰り返される。
エージェント操作データ及びゲスト操作データ、すなわち操作データは、マウス又はタッチスクリーンによる操作(クリック、タッチ、ホバー、スワイプ、スクロールやカーソル移動等)や、キーボードによる操作(キー入力等)等、ウェブブラウザを通じて実現可能な操作イベントの情報を含むデータである。操作データは、操作イベントの名称及び操作イベントの内容によって構成される。操作イベントの内容は、例えば、マウスカーソルの移動操作イベントの場合、マウスカーソルの座標を示す情報を含み、スクロール操作イベントの場合、ウェブページのスクロール量を示す情報を含む。
HTMLデータは、画面共有対象のウェブページのHTML構造を示す情報であり、JSON(JavaScript(登録商標) Object Notation)形式で生成された入れ子構造のデータである。具体的には、ウェブページを構成するノード(Node)の情報であり、ノードを特定するための一意な識別子(以下、nodeIDと呼ぶ)、ノードの種類(以下、nodeTypeと呼ぶ)、要素の名前(以下、tagNameと呼ぶ)、プロパティの値(以下、propertyと呼ぶ)、子ノードの情報(以下、childNodesと呼ぶ)等を含む。nodeIDは、ウェブページを構成するノードに対して一意な識別子を割り振ったものである。nodeTypeは、ノードの種類を表す整数のコードであり、例えば、要素ノード(ELEMENT_NODE)であれば「1」、テキストノード(TEXT_NODE)であれば「3」、コメントノード(COMMENT_NODE)であれば「8」のように表される。tagNameは、ノードの要素の名前であり、nodeTypeが「1」の場合のみ存在し、例えば、段落を表す要素であれば「P」、画像を表す要素であれば「IMG」のように表される。propertyは、idやclassといったHTML上で定義されている属性(attributes)に加え、tagNameの種類によって異なるデータを持ち、例えば、tagNameが「INPUT」の場合、入力値(value)やチェック状態(checked)等が存在する。そのため、tagNameの値に応じて取得するpropertyを予め定めておく必要がある。childNodesは、当該ノードの子に該当するノードの情報であり、子のノードが存在する限り繰り返される。
エージェント操作データ及びゲスト操作データ、すなわち操作データは、マウス又はタッチスクリーンによる操作(クリック、タッチ、ホバー、スワイプ、スクロールやカーソル移動等)や、キーボードによる操作(キー入力等)等、ウェブブラウザを通じて実現可能な操作イベントの情報を含むデータである。操作データは、操作イベントの名称及び操作イベントの内容によって構成される。操作イベントの内容は、例えば、マウスカーソルの移動操作イベントの場合、マウスカーソルの座標を示す情報を含み、スクロール操作イベントの場合、ウェブページのスクロール量を示す情報を含む。
図6は、実施形態に係る画面共有に係る処理手順を示すシーケンス図である。ゲストブラウザB3は、ゲストブラウザB3に表示されているウェブページに基づく初回画面共有データを作成し、情報処理装置1を介してエージェントブラウザB2へ送信する(ステップS24)。初回画面共有データは、ページサイズデータ、HTMLデータ、ゲスト操作データ等を含む。初回画面共有データに含まれるページサイズデータは、データ作成時点におけるウェブページの画面上の表示領域の高さと幅を示す情報を含む。初回画面共有データに含まれるHTMLデータは、データ作成時点におけるウェブページを構成するノードの情報(全体)を含む。初回画面共有データに含まれるゲスト操作データは、マウスカーソルの移動操作イベントが発生した場合と同様のデータ、すなわちデータ作成時点におけるゲストのマウスカーソルの座標を示す情報を含み、また、スクロール操作イベントが発生した場合と同様のデータ、すなわちデータ作成時点におけるウェブページのスクロール量を示す情報を含む。
エージェントブラウザB2は、ゲストブラウザB3から送信された初回画面共有データを受信した場合、受信した初回画面共有データを解析し、ゲストブラウザB3に表示されているものと同様のウェブページを画面共有表示領域に再構成し、ゲストの操作内容を再現する(ステップS25)。具体的には、エージェントブラウザB2は、画面共有表示領域の高さと幅を、ページサイズデータが示す値に設定する。また、エージェントブラウザB2は、HTMLデータに基づいて、画面共有表示領域上にノードを作成及び追加する。更に、エージェントブラウザB2は、画面共有表示領域上に追加した、ゲストのマウスカーソルの座標を示すマウスカーソル要素の位置を、ゲスト操作データに含まれるマウスカーソルの座標を示す値に設定する。更に、エージェントブラウザB2は、画面共有表示領域のスクロール量を、ゲスト操作データに含まれるウェブページのスクロール量を示す値に設定する。
エージェントブラウザB2は、ゲストブラウザB3から送信された初回画面共有データを受信した場合、受信した初回画面共有データを解析し、ゲストブラウザB3に表示されているものと同様のウェブページを画面共有表示領域に再構成し、ゲストの操作内容を再現する(ステップS25)。具体的には、エージェントブラウザB2は、画面共有表示領域の高さと幅を、ページサイズデータが示す値に設定する。また、エージェントブラウザB2は、HTMLデータに基づいて、画面共有表示領域上にノードを作成及び追加する。更に、エージェントブラウザB2は、画面共有表示領域上に追加した、ゲストのマウスカーソルの座標を示すマウスカーソル要素の位置を、ゲスト操作データに含まれるマウスカーソルの座標を示す値に設定する。更に、エージェントブラウザB2は、画面共有表示領域のスクロール量を、ゲスト操作データに含まれるウェブページのスクロール量を示す値に設定する。
ゲストブラウザB3は、ステップS24以降、ウェブページの画面上の表示領域の高さと幅の監視を行い、変更を検知した場合、その都度、ページサイズデータを作成する。また、ゲストブラウザB3は、ウェブページのHTML構造の監視を行い、変更を検知した場合、その都度、HTMLデータ(変更前との差分、または全体)を作成する。更に、ゲストブラウザB3は、ゲストの操作の監視を行い、操作を検知した場合、その都度、ゲスト操作データを作成する。なお、ゲストがクリック等の操作をした結果、ウェブページのHTML構造が書き換えられるケースもあり、その場合、ゲスト操作データ及びHTMLデータ(操作前との差分)の両方を作成する。ゲストブラウザB3は、作成されたページサイズデータ、HTMLデータ、ゲスト操作データ等を、情報処理装置1を介してエージェントブラウザB2へ都度送信する(ステップS26)。
エージェントブラウザB2は、ゲストブラウザB3から送信された各データを受信した場合、受信した各データを解析し、ゲストブラウザB3に表示されているウェブページと同様の変更内容を画面共有表示領域に反映し、ゲストの操作内容を再現する(ステップS27)。具体的には、エージェントブラウザB2は、画面共有表示領域の高さと幅を、ページサイズデータが示す値に設定する。また、エージェントブラウザB2は、HTMLデータに基づいて、画面共有表示領域上のノードに変更を加える。更に、エージェントブラウザB2は、ゲスト操作データに基づいて、ゲスト操作と同様の操作イベントを画面共有表示領域上で再現する。
エージェントブラウザB2は、ゲストブラウザB3から送信された各データを受信した場合、受信した各データを解析し、ゲストブラウザB3に表示されているウェブページと同様の変更内容を画面共有表示領域に反映し、ゲストの操作内容を再現する(ステップS27)。具体的には、エージェントブラウザB2は、画面共有表示領域の高さと幅を、ページサイズデータが示す値に設定する。また、エージェントブラウザB2は、HTMLデータに基づいて、画面共有表示領域上のノードに変更を加える。更に、エージェントブラウザB2は、ゲスト操作データに基づいて、ゲスト操作と同様の操作イベントを画面共有表示領域上で再現する。
同様に、エージェントブラウザB2は、ステップS25以降、エージェントの操作の監視を行い、操作を検知した場合、その都度、エージェント操作データを作成する。なお、エージェントがクリック等の操作をした結果、画面共有表示領域に再構成したウェブページのHTML構造が書き換えられるケースもあり、その場合、エージェント操作データ及びHTMLデータ(操作前との差分)の両方を作成する。エージェントブラウザB2は、作成されたHTMLデータ、エージェント操作データ等を、情報処理装置1を介してゲストブラウザB3へ都度送信する(ステップS28)。
ゲストブラウザB3は、エージェントブラウザB2から送信された各データを受信した場合、受信した各データを解析し、画面共有表示領域と同様の変更内容をウェブページに反映し、エージェントの操作内容を再現する(ステップS29)。具体的には、ゲストブラウザB3は、HTMLデータに基づいて、ウェブページ上のノードに変更を加える。また、ゲストブラウザB3は、エージェント操作データに基づいて、エージェント操作と同様の操作イベントをウェブページ上で再現する。
ゲストブラウザB3は、エージェントブラウザB2から送信された各データを受信した場合、受信した各データを解析し、画面共有表示領域と同様の変更内容をウェブページに反映し、エージェントの操作内容を再現する(ステップS29)。具体的には、ゲストブラウザB3は、HTMLデータに基づいて、ウェブページ上のノードに変更を加える。また、ゲストブラウザB3は、エージェント操作データに基づいて、エージェント操作と同様の操作イベントをウェブページ上で再現する。
ステップS25及びステップS27において、エージェントブラウザB2が受信したHTMLデータに、アセットファイルのURLを属性の一部として含む、特定の要素ノードの追加もしくは変更情報が含まれる場合、又はアセットファイルのURLをテキストコンテント(textContent)の一部として含む、特定のテキストノードの追加もしくは変更情報が含まれる場合、エージェントブラウザB2は、当該属性の一部又は当該テキストコンテントの一部に含まれるアセットファイルのURLを、アセットファイルリクエストURLに置換する。テキストコンテントは、ノードのpropertyである。なお、当該属性の一部又は当該テキストコンテントの一部にアセットファイルのURLが複数含まれている場合は、全てのアセットファイルのURLをアセットファイルリクエストURLに置換する。エージェントブラウザB2は、変換した当該HTMLデータの内容を画面共有表示領域に反映する際、アセットファイルリクエストURLを用いて、情報処理装置1にアクセスし、アセットファイルをリクエストする(ステップS30)。
情報処理装置1は、エージェントブラウザB2からアセットファイルのリクエストを受信した場合、アセットファイルのファイル処理を実行し、取得したアセットファイルをエージェントブラウザB2へ送信する(ステップS31)。
エージェントブラウザB2は、情報処理装置1から送信されたアセットファイルを、画面共有表示領域上の要素ノードの属性の一部、又はテキストノードのテキストコンテントの一部として展開する(ステップS32)。アセットファイルのファイル処理の詳細は後述する。
情報処理装置1は、エージェントブラウザB2からアセットファイルのリクエストを受信した場合、アセットファイルのファイル処理を実行し、取得したアセットファイルをエージェントブラウザB2へ送信する(ステップS31)。
エージェントブラウザB2は、情報処理装置1から送信されたアセットファイルを、画面共有表示領域上の要素ノードの属性の一部、又はテキストノードのテキストコンテントの一部として展開する(ステップS32)。アセットファイルのファイル処理の詳細は後述する。
<アセットファイルのファイル処理>
図7及び図8は、アセットファイルのファイル処理手順を示すフローチャート、図9は、アセットファイルのファイル処理方法を示す概念図である。以下、図6に示したステップS30、ステップS31及びステップS32の処理の詳細を説明する。エージェントブラウザB2は、特定の要素ノードの属性の一部に含まれるアセットファイルのURLを、アセットファイルリクエストURLに置換する(ステップS51)。特定の要素ノードは、例えば、audio要素、img要素、input要素、link要素、source要素、video要素、style属性を保持する各種要素等である。また、アセットファイルのURLが含まれる属性は、例えば、img要素であればsrc属性やsrcset属性、link要素であればhref属性等である。同様に、エージェントブラウザB2は、特定のテキストノードのテキストコンテントの一部に含まれるアセットファイルのURLを、アセットファイルリクエストURLに置換する(ステップS51)。特定のテキストノードは、特定の要素ノードを親とするテキストノードであり、特定の要素ノードは、例えば、style要素等である。また、テキストコンテントに含まれるアセットファイルのURLは、例えば、親がstyle要素のテキストノードであれば、CSS関数の一つであるurl関数の引数として記述された文字列等である。アセットファイルリクエストURLは、ドメイン名が情報処理装置1のファイル処理部11cのドメイン名と同一であり、パス、クエリ文字列等の一部のパラメータとしてセッションIDと元URLを含む。元URLは、ゲストブラウザB3から送信されたHTMLデータの要素ノードの属性の一部として含まれていたURL、又はゲストブラウザB3から送信されたHTMLデータのテキストノードのテキストコンテントの一部として含まれていたURLであり、相対URLの場合は絶対URLに変換してからパラメータとして使用する。なお、エージェントブラウザB2は、元URLの文字列をパラメータとして使用するかわりに、元URLの文字列をエンコードし、置換した文字列を使用しても良い。
図7及び図8は、アセットファイルのファイル処理手順を示すフローチャート、図9は、アセットファイルのファイル処理方法を示す概念図である。以下、図6に示したステップS30、ステップS31及びステップS32の処理の詳細を説明する。エージェントブラウザB2は、特定の要素ノードの属性の一部に含まれるアセットファイルのURLを、アセットファイルリクエストURLに置換する(ステップS51)。特定の要素ノードは、例えば、audio要素、img要素、input要素、link要素、source要素、video要素、style属性を保持する各種要素等である。また、アセットファイルのURLが含まれる属性は、例えば、img要素であればsrc属性やsrcset属性、link要素であればhref属性等である。同様に、エージェントブラウザB2は、特定のテキストノードのテキストコンテントの一部に含まれるアセットファイルのURLを、アセットファイルリクエストURLに置換する(ステップS51)。特定のテキストノードは、特定の要素ノードを親とするテキストノードであり、特定の要素ノードは、例えば、style要素等である。また、テキストコンテントに含まれるアセットファイルのURLは、例えば、親がstyle要素のテキストノードであれば、CSS関数の一つであるurl関数の引数として記述された文字列等である。アセットファイルリクエストURLは、ドメイン名が情報処理装置1のファイル処理部11cのドメイン名と同一であり、パス、クエリ文字列等の一部のパラメータとしてセッションIDと元URLを含む。元URLは、ゲストブラウザB3から送信されたHTMLデータの要素ノードの属性の一部として含まれていたURL、又はゲストブラウザB3から送信されたHTMLデータのテキストノードのテキストコンテントの一部として含まれていたURLであり、相対URLの場合は絶対URLに変換してからパラメータとして使用する。なお、エージェントブラウザB2は、元URLの文字列をパラメータとして使用するかわりに、元URLの文字列をエンコードし、置換した文字列を使用しても良い。
そして、エージェントブラウザB2は、アセットファイルリクエストURLを用いて、情報処理装置1にアクセスし、アセットファイルをリクエストする(ステップS52)。
情報処理装置1のファイル処理部11cは、エージェントブラウザB2からリクエストされたURLのパラメータから、セッションID及び元URLを取得する(ステップS53)。なお、元URLの文字列がエンコードされている場合、元URLの文字列をデコードする。
情報処理装置1のファイル処理部11cは、取得した元URLが示すアセットファイルを保存済みであるか否か、つまり、アセットファイルストレージ12eが当該アセットファイルを記憶しているか否かを判定する(ステップS54)。保存済みで無いと判定した場合(ステップS54:NO)、ファイル処理部11cは、取得したセッションIDをキーにして、アセットファイルストレージ12eから、セッション情報を取得し、セッション情報に含まれるリクエストヘッダ情報を取得する(ステップS55)。次いで、ファイル処理部11cは、アセットファイルを取得するためのアセットファイルリクエストデータ(アセットリクエストデータ)を作成し、アセットファイルリクエストデータを構成するリクエストURLに元URLを設定し(ステップS56)、リクエストヘッダにステップS55で取得したリクエストヘッダ情報を設定する(ステップS57)。そして、ファイル処理部11cは、アセットファイルリクエストデータを用いて、ウェブサーバ4へアクセスし、アセットファイルをリクエストする(ステップS58)。ウェブサーバ4は、アセットファイルリクエストデータに応じた対象のアセットファイルを、情報処理装置1へレスポンスとして送信する。
情報処理装置1のファイル処理部11cは、ウェブサーバ4から送信されたアセットファイルを取得する(ステップS59)。次いで、ファイル処理部11cは、取得したアセットファイルがCSSファイルであるか否かを判定する(ステップS60)。
CSSファイルであると判定した場合(ステップS60:YES)、ファイル処理部11cは、CSSファイル内のテキストの一部に含まれる外部アセットファイルのURLを、アセットファイルリクエストURLに置換する(ステップS61)。外部アセットファイルは、当該CSSファイルから読み込まれる外部のCSSファイル、画像ファイル、フォントファイル等であり、外部アセットファイルのURLは、CSS関数の一つであるurl関数の引数として記述された文字列等である。また、ここでいうアセットファイルリクエストURLは、ドメイン名が情報処理装置1のファイル処理部11cのドメイン名と同一であり、パス、クエリ文字列等の一部のパラメータとしてセッションIDと当該外部アセットファイルのURLを含む。当該CSSファイル内のテキストに外部アセットファイルのURLが複数含まれている場合は、全ての外部アセットファイルのURLをアセットファイルリクエストURLに置換する。なお、置換する際、外部アセットファイルのURLが相対URLの場合は、絶対URLに変換してからパラメータとして使用する。なお、ファイル処理部11cは、外部アセットファイルのURLの文字列をパラメータとして使用するかわりに、外部アセットファイルのURLの文字列をエンコードし、置換した文字列を使用しても良い。ファイル処理部11cは、ステップS61によってテキストが変換されたCSSファイルを、アセットファイルストレージ12eに一時的に保存する(ステップS62)。保存する期間は、例えば、1日間等である。
なお、ステップS60においてCSSファイルでないと判定した場合(ステップS60:NO)、ファイル処理部11cは、ステップS59において取得したアセットファイルを、アセットファイルストレージ12eに一時的に保存する(ステップS62)。保存する期間は、CSSファイルの場合と同様である。
ファイル処理部11cは、例えば、元URLに対応付けてアセットファイルをアセットファイルストレージ12eに保存する。
CSSファイルであると判定した場合(ステップS60:YES)、ファイル処理部11cは、CSSファイル内のテキストの一部に含まれる外部アセットファイルのURLを、アセットファイルリクエストURLに置換する(ステップS61)。外部アセットファイルは、当該CSSファイルから読み込まれる外部のCSSファイル、画像ファイル、フォントファイル等であり、外部アセットファイルのURLは、CSS関数の一つであるurl関数の引数として記述された文字列等である。また、ここでいうアセットファイルリクエストURLは、ドメイン名が情報処理装置1のファイル処理部11cのドメイン名と同一であり、パス、クエリ文字列等の一部のパラメータとしてセッションIDと当該外部アセットファイルのURLを含む。当該CSSファイル内のテキストに外部アセットファイルのURLが複数含まれている場合は、全ての外部アセットファイルのURLをアセットファイルリクエストURLに置換する。なお、置換する際、外部アセットファイルのURLが相対URLの場合は、絶対URLに変換してからパラメータとして使用する。なお、ファイル処理部11cは、外部アセットファイルのURLの文字列をパラメータとして使用するかわりに、外部アセットファイルのURLの文字列をエンコードし、置換した文字列を使用しても良い。ファイル処理部11cは、ステップS61によってテキストが変換されたCSSファイルを、アセットファイルストレージ12eに一時的に保存する(ステップS62)。保存する期間は、例えば、1日間等である。
なお、ステップS60においてCSSファイルでないと判定した場合(ステップS60:NO)、ファイル処理部11cは、ステップS59において取得したアセットファイルを、アセットファイルストレージ12eに一時的に保存する(ステップS62)。保存する期間は、CSSファイルの場合と同様である。
ファイル処理部11cは、例えば、元URLに対応付けてアセットファイルをアセットファイルストレージ12eに保存する。
情報処理装置1のファイル処理部11cは、アセットファイルストレージ12eに保存した当該アセットファイルを、エージェントブラウザB2へ送信する(ステップS63)。なお、ステップS54において保存済みであると判定した場合(ステップS54:YES)、ファイル処理部11cは、元URLに対応するアセットファイルをアセットファイルストレージ12eから取得し、取得したアセットファイルをエージェントブラウザB2へ送信する(ステップS63)。
エージェントブラウザB2は、情報処理装置1のファイル処理部11cから送信されたアセットファイルを受信する(ステップS64)。
なお、受信したアセットファイルがCSSファイルであり、当該CSSファイル内のテキストの一部にアセットファイルリクエストURLが含まれる場合(ステップS65:YES)、エージェントブラウザB2は、ステップS52と同様、当該アセットファイルリクエストURLを用いて、情報処理装置1にアクセスし、アセットファイルをリクエストする(ステップS66)。
受信したアセットファイルがCSSファイルでない場合、又はCSSファイル内にアセットファイルリクエストURLが含まれていない場合(ステップS65:NO)、アセットファイルのファイル処理を終える。
なお、受信したアセットファイルがCSSファイルであり、当該CSSファイル内のテキストの一部にアセットファイルリクエストURLが含まれる場合(ステップS65:YES)、エージェントブラウザB2は、ステップS52と同様、当該アセットファイルリクエストURLを用いて、情報処理装置1にアクセスし、アセットファイルをリクエストする(ステップS66)。
受信したアセットファイルがCSSファイルでない場合、又はCSSファイル内にアセットファイルリクエストURLが含まれていない場合(ステップS65:NO)、アセットファイルのファイル処理を終える。
図10は、特定要素の属性の具体例を示す説明図である。図10Aは、ゲストブラウザB3が表示しているウェブページのHTMLを示す説明図である。当該HTMLは、img要素を含み、src属性としてアセットファイルの元URLが設定されている。
図10Bは、エージェントブラウザB2が、図10Aに示すウェブページの画面共有処理を実行した場合における、画面共有表示領域内のHTMLを示す説明図である。当該HTMLは、ステップS51の処理において、src属性のURLがアセットファイルリクエストURLに置換されたimg要素を含む。アセットファイルリクエストURLは、ステップS51で前述した通り、ドメイン名に情報処理装置1のファイル処理部11cのドメイン名が設定されており、クエリ文字列としてセッションIDと元URLが設定されている。なお、元URLの文字列における、スラッシュ「/」、コロン「:」等の予約文字はパーセントエンコーディングされている。
図10Cは、図10Bと同様、エージェントブラウザB2が、図10Aに示すウェブページの画面共有処理を実行した場合における、画面共有表示領域内のHTMLを示す説明図であるが、img要素のsrc属性のURLを、本実施形態と異なる手法で置換している点が異なる。具体的には、ドメイン名に情報処理装置1のファイル処理部11cのドメイン名が設定されている点及びクエリ文字列として元URLが設定されている点は、図10Bと同様であるが、クエリ文字列として、セッションIDではなく、ゲストブラウザB3のリクエストヘッダ情報が含まれる点が異なる。本手法で置換した場合、図10Bに示す例に比べ、src属性のURLが非常に長い。
図10B及び図10Cを比較すると分かるように、本実施形態によれば、アセットファイルのファイル処理に必要なURLを短くすることができる。技術的効果の詳細は後述する。
図10B及び図10Cを比較すると分かるように、本実施形態によれば、アセットファイルのファイル処理に必要なURLを短くすることができる。技術的効果の詳細は後述する。
<作用効果>
単にHTML構造データを共有する従来技術においては、情報処理装置1を介さずに、エージェントブラウザB2からアセットファイルの元URLに直接アクセスするため、オリジン間リクエストの制御がかけられているアセットファイルについては、当該アセットファイルのURLのドメイン名と、画面共有表示領域のURLのドメイン名が原則異なるために、オリジン間リクエストに該当し、正しいアセットファイルがレスポンスされない。従って、例えば、正しいCSSファイルがレスポンスされない場合、エージェントブラウザB2が当該CSSファイルを画面共有表示領域に展開できないため、エージェントブラウザB2及びゲストブラウザB3で画面共有表示されるウェブページのレイアウトに差異が生じるという問題があった。
本実施形態に係る画面共有システム等によれば、エージェントブラウザB2は、画面共有対象のウェブページを構成するアセットファイルのURLのドメイン名を、画面共有表示領域のURLのドメイン名に変換する構成であるため、同一オリジンリクエストとなり、オリジン間リクエストの制御による問題を解消することができる。
単にHTML構造データを共有する従来技術においては、情報処理装置1を介さずに、エージェントブラウザB2からアセットファイルの元URLに直接アクセスするため、オリジン間リクエストの制御がかけられているアセットファイルについては、当該アセットファイルのURLのドメイン名と、画面共有表示領域のURLのドメイン名が原則異なるために、オリジン間リクエストに該当し、正しいアセットファイルがレスポンスされない。従って、例えば、正しいCSSファイルがレスポンスされない場合、エージェントブラウザB2が当該CSSファイルを画面共有表示領域に展開できないため、エージェントブラウザB2及びゲストブラウザB3で画面共有表示されるウェブページのレイアウトに差異が生じるという問題があった。
本実施形態に係る画面共有システム等によれば、エージェントブラウザB2は、画面共有対象のウェブページを構成するアセットファイルのURLのドメイン名を、画面共有表示領域のURLのドメイン名に変換する構成であるため、同一オリジンリクエストとなり、オリジン間リクエストの制御による問題を解消することができる。
また、単にHTML構造データを共有する従来技術においては、情報処理装置1を介さずに、エージェントブラウザB2からアセットファイルの元URLに直接アクセスするため、一部のリクエストヘッダの有無や値を条件としたアクセス制限が設定されているアセットファイルについては、エージェントブラウザB2がウェブサーバ4と通信を行う際に使用するリクエストヘッダと、ゲストブラウザB3がウェブサーバ4と通信を行う際に使用するリクエストヘッダが原則異なるために、アクセス制限の対象となり、正しいアセットファイルがレスポンスされない可能性がある。従って、例えば、正しいCSSファイルがレスポンスされない場合、エージェントブラウザB2が当該CSSファイルを画面共有表示領域に展開できないため、エージェントブラウザB2及びゲストブラウザB3で画面共有表示されるウェブページのレイアウトに差異が生じるという問題があった。アクセス制限は、例えば、特定のユーザエージェントがリクエストヘッダに存在する場合のみアクセスを許可する等がある。
本実施形態に係る画面共有システム等によれば、情報処理装置1は、ゲストブラウザB3のリクエストヘッダ情報を用いてアセットファイルを取得する構成であるため、ゲストブラウザB3がウェブサーバ4と通信を行う際に使用されるリクエストヘッダと類似したリクエストヘッダとなり、一部のリクエストヘッダの有無や値を条件としたアクセス制限による問題が発生する可能性を低減することができる。
本実施形態に係る画面共有システム等によれば、情報処理装置1は、ゲストブラウザB3のリクエストヘッダ情報を用いてアセットファイルを取得する構成であるため、ゲストブラウザB3がウェブサーバ4と通信を行う際に使用されるリクエストヘッダと類似したリクエストヘッダとなり、一部のリクエストヘッダの有無や値を条件としたアクセス制限による問題が発生する可能性を低減することができる。
また、一部のレガシーブラウザでは、URLを読み込む際の文字数制限があるため、アセットファイルをリクエストするために用いるアセットファイルリクエストURLのパラメータとして、ゲストブラウザB3のリクエストヘッダ情報を含む方法を用いた場合、URLの長さによっては、URLを読み込む際の文字数制限を超過し、正しいアセットファイルがレスポンスされない可能性がある。従って、例えば、正しいCSSファイルがレスポンスされない場合、エージェントブラウザB2が当該CSSファイルを画面共有表示領域に展開できないため、エージェントブラウザB2及びゲストブラウザB3で画面共有表示されるウェブページのレイアウトに差異が生じるという問題があった。
本実施形態に係る画面共有システム等によれば、セッションIDを用いることによって、アセットファイルリクエストURLを短縮化することができる(図10B及び図10C参照)ため、URLを読み込む際の文字数制限による問題が発生する可能性を低減することができる。
本実施形態に係る画面共有システム等によれば、セッションIDを用いることによって、アセットファイルリクエストURLを短縮化することができる(図10B及び図10C参照)ため、URLを読み込む際の文字数制限による問題が発生する可能性を低減することができる。
更に、ウェブブラウザのCSSの解釈は、HTMLファイルに設定されている文書型宣言の内容によって異なるため、ゲストブラウザB3が表示するウェブページの文書型宣言と、エージェントブラウザB2に再構成されたウェブページの文書型宣言が異なっている場合、エージェントブラウザB2及びゲストブラウザB3で画面共有表示されるウェブページのレイアウトに差異が生じるという問題があった。
本実施形態によれば、画面共有表示領域の読み込み時に、画面共有表示領域に使用される画面共有表示テンプレートファイルの文書型宣言を、ゲストブラウザB3が表示しているウェブページの文書型宣言と同一に設定することができる(図5参照)ため、文書型宣言の相違による問題を解消することができる。
なお、ウェブページの読み込みを行わない方法で、文書型宣言を後から設定した場合、上記問題は解消されない。画面共有表示領域の読み込み時に文書型宣言を設定するため、上記問題を解消することができる。
本実施形態によれば、画面共有表示領域の読み込み時に、画面共有表示領域に使用される画面共有表示テンプレートファイルの文書型宣言を、ゲストブラウザB3が表示しているウェブページの文書型宣言と同一に設定することができる(図5参照)ため、文書型宣言の相違による問題を解消することができる。
なお、ウェブページの読み込みを行わない方法で、文書型宣言を後から設定した場合、上記問題は解消されない。画面共有表示領域の読み込み時に文書型宣言を設定するため、上記問題を解消することができる。
以上の通り、本実施形態によれば、オリジン間リクエストの制御による問題及び文書型宣言の相違による問題を解消することができ、また、一部のリクエストヘッダの有無や内容を条件としたアクセス制限による問題及びURLを読み込む際の文字数制限による問題が発生する可能性を低減することができるため、エージェントブラウザB2とゲストブラウザB3との間で、より精度高くウェブページの画面共有を実現することができる。
なお、本実施形態では、エージェント端末2と、ゲスト端末3との間でウェブページを共有する例を説明したが、各端末の機能及び用途、各端末の使用者及び用途は特に限定されるものでは無い。
(付記1)
情報処理装置と、通信網を介して前記情報処理装置に接続される第1端末及び第2端末とを備える画面共有システムであって、
前記情報処理装置は、
前記第1端末のブラウザと、前記第2端末のブラウザとの間で通信を行う通信部と、
前記第2端末のブラウザに表示されるウェブページを、前記第1端末のブラウザに表示する画面共有に係る処理を実行する処理部と、
前記ウェブページを表示している前記第2端末のブラウザが外部と通信を行う際に使用するヘッダ情報と、ヘッダ情報IDとを対応付けて記憶する記憶部と
を備え、
前記処理部は、
前記第1端末のブラウザから送信された、前記ウェブページを構成するアセットファイルの所在を示す所在情報と、前記ヘッダ情報IDとを含むリクエストデータを前記通信部にて受信した場合、該リクエストデータに含まれる前記ヘッダ情報IDに対応する前記ヘッダ情報を前記記憶部から取得し、
受信した前記リクエストデータに含まれる前記所在情報と、前記記憶部から取得した前記ヘッダ情報とを含むアセットリクエストデータを生成し、
前記通信部は、
生成された前記アセットリクエストデータを用いて、外部サーバに前記アセットファイルを要求し、
要求に応じて前記外部サーバから送信された前記アセットファイルを受信し、
受信した前記アセットファイルを前記第1端末へ送信する
ようにしてあり、
前記第2端末は、
前記第2端末のブラウザに表示されている前記ウェブページのデータを、前記情報処理装置を介して前記第1端末へ送信させる第2端末処理部を備え、
前記第1端末は、
前記第2端末から送信された前記ウェブページのデータを受信し、受信したデータに基づいて、前記ウェブページを再構成して表示させる第1端末処理部を備え、
前記第1端末処理部は、
受信したデータの前記ウェブページを構成する要素が属性値として第1のアセットファイルの所在を示す第1の所在情報を含む場合、該属性値を、前記情報処理装置に係るドメイン名と、前記第1の所在情報及び前記ヘッダ情報IDとを含む文字列に置換し、
前記第1の所在情報及び前記ヘッダ情報IDを含む第1のリクエストデータを前記情報処理装置へ送信し、
前記第1のリクエストデータに対するレスポンスとして前記情報処理装置から送信されたCSSファイルを受信した場合、前記CSSファイルのテキストが第2のアセットファイルの所在を示す第2の所在情報を含むとき、前記第2の所在情報のテキスト部分を、前記情報処理装置に係るドメイン名と、前記第2の所在情報及び前記ヘッダ情報IDとを含む文字列に置換し、
前記第2の所在情報及び前記ヘッダ情報IDを含む第2のリクエストデータを前記情報処理装置へ送信する
画面共有システム。
情報処理装置と、通信網を介して前記情報処理装置に接続される第1端末及び第2端末とを備える画面共有システムであって、
前記情報処理装置は、
前記第1端末のブラウザと、前記第2端末のブラウザとの間で通信を行う通信部と、
前記第2端末のブラウザに表示されるウェブページを、前記第1端末のブラウザに表示する画面共有に係る処理を実行する処理部と、
前記ウェブページを表示している前記第2端末のブラウザが外部と通信を行う際に使用するヘッダ情報と、ヘッダ情報IDとを対応付けて記憶する記憶部と
を備え、
前記処理部は、
前記第1端末のブラウザから送信された、前記ウェブページを構成するアセットファイルの所在を示す所在情報と、前記ヘッダ情報IDとを含むリクエストデータを前記通信部にて受信した場合、該リクエストデータに含まれる前記ヘッダ情報IDに対応する前記ヘッダ情報を前記記憶部から取得し、
受信した前記リクエストデータに含まれる前記所在情報と、前記記憶部から取得した前記ヘッダ情報とを含むアセットリクエストデータを生成し、
前記通信部は、
生成された前記アセットリクエストデータを用いて、外部サーバに前記アセットファイルを要求し、
要求に応じて前記外部サーバから送信された前記アセットファイルを受信し、
受信した前記アセットファイルを前記第1端末へ送信する
ようにしてあり、
前記第2端末は、
前記第2端末のブラウザに表示されている前記ウェブページのデータを、前記情報処理装置を介して前記第1端末へ送信させる第2端末処理部を備え、
前記第1端末は、
前記第2端末から送信された前記ウェブページのデータを受信し、受信したデータに基づいて、前記ウェブページを再構成して表示させる第1端末処理部を備え、
前記第1端末処理部は、
受信したデータの前記ウェブページを構成する要素が属性値として第1のアセットファイルの所在を示す第1の所在情報を含む場合、該属性値を、前記情報処理装置に係るドメイン名と、前記第1の所在情報及び前記ヘッダ情報IDとを含む文字列に置換し、
前記第1の所在情報及び前記ヘッダ情報IDを含む第1のリクエストデータを前記情報処理装置へ送信し、
前記第1のリクエストデータに対するレスポンスとして前記情報処理装置から送信されたCSSファイルを受信した場合、前記CSSファイルのテキストが第2のアセットファイルの所在を示す第2の所在情報を含むとき、前記第2の所在情報のテキスト部分を、前記情報処理装置に係るドメイン名と、前記第2の所在情報及び前記ヘッダ情報IDとを含む文字列に置換し、
前記第2の所在情報及び前記ヘッダ情報IDを含む第2のリクエストデータを前記情報処理装置へ送信する
画面共有システム。
1 情報処理装置
2 エージェント端末
3 ゲスト端末
4 ウェブサーバ
5 記録媒体
11a API処理部
11b ソケット処理部
11c ファイル処理部
12a アカウント管理データベース
12b 画面共有管理データベース
12c 画面共有データ中継ストア
12d プログラムファイルストレージ
12e アセットファイルストレージ
B2 エージェントブラウザ
B3 ゲストブラウザ
2 エージェント端末
3 ゲスト端末
4 ウェブサーバ
5 記録媒体
11a API処理部
11b ソケット処理部
11c ファイル処理部
12a アカウント管理データベース
12b 画面共有管理データベース
12c 画面共有データ中継ストア
12d プログラムファイルストレージ
12e アセットファイルストレージ
B2 エージェントブラウザ
B3 ゲストブラウザ
Claims (6)
- 第1端末のブラウザと、第2端末のブラウザとの間で通信を行う通信部と、
前記第2端末のブラウザに表示されるウェブページを、前記第1端末のブラウザに表示する画面共有に係る処理を実行する処理部と、
前記ウェブページを表示している前記第2端末のブラウザが外部と通信を行う際に使用するヘッダ情報と、ヘッダ情報IDとを対応付けて記憶する記憶部と
を備え、
前記処理部は、
前記第1端末のブラウザから送信された、前記ウェブページを構成するアセットファイルの所在を示す所在情報と、前記ヘッダ情報IDとを含むリクエストデータを前記通信部にて受信した場合、該リクエストデータに含まれる前記ヘッダ情報IDに対応する前記ヘッダ情報を前記記憶部から取得し、
受信した前記リクエストデータに含まれる前記所在情報と、前記記憶部から取得した前記ヘッダ情報とを含むアセットリクエストデータを生成し、
前記通信部は、
生成された前記アセットリクエストデータを用いて、外部サーバに前記アセットファイルを要求し、
要求に応じて前記外部サーバから送信された前記アセットファイルを受信し、
受信した前記アセットファイルを前記第1端末へ送信する
情報処理装置。 - 請求項1に記載の情報処理装置と、通信網を介して前記情報処理装置に接続される第1端末及び第2端末とを備える画面共有システムであって、
前記第2端末は、
前記第2端末のブラウザに表示されている前記ウェブページのデータを、前記情報処理装置を介して前記第1端末へ送信させる第2端末処理部を備え、
前記第1端末は、
前記第2端末から送信された前記ウェブページのデータを受信し、受信したデータに基づいて、前記ウェブページを再構成して表示させる第1端末処理部を備え、
前記第1端末処理部は、
受信したデータの前記ウェブページを構成する要素が属性値として前記アセットファイルの所在を示す前記所在情報を含む場合、該属性値を、前記情報処理装置に係るドメイン名と、前記所在情報及び前記ヘッダ情報IDとを含む文字列に置換する
画面共有システム。 - 前記第2端末は、
前記第2端末の前記ウェブページを表示しているブラウザが外部と通信を行う際に使用する前記ヘッダ情報及び前記ヘッダ情報IDを、前記情報処理装置へ送信し、
前記情報処理装置は、
前記第2端末から送信された前記ヘッダ情報及び前記ヘッダ情報IDを受信し、受信した前記ヘッダ情報及び前記ヘッダ情報IDを対応付けて前記記憶部に記憶させる
請求項2に記載の画面共有システム。 - 前記情報処理装置に係る前記ドメイン名は、前記第1端末のブラウザに表示される前記ウェブページを再構成して表示するための画面共有表示領域要素の属性値として設定されたドメイン名と同一である
請求項2又は請求項3に記載の画面共有システム。 - 第2端末のブラウザに表示されるウェブページを、第1端末のブラウザに表示する画面共有方法であって、
前記ウェブページを表示している前記第2端末のブラウザが外部と通信を行う際に使用するヘッダ情報と、ヘッダ情報IDとを対応付けて記憶部に記憶し、
前記第1端末のブラウザから送信された、前記ウェブページを構成するアセットファイルの所在を示す所在情報と、前記ヘッダ情報IDとを含むリクエストデータを受信した場合、該リクエストデータに含まれる前記ヘッダ情報IDに対応する前記ヘッダ情報を前記記憶部から取得し、
受信した前記リクエストデータに含まれる前記所在情報と、前記記憶部から取得した前記ヘッダ情報とを含むアセットリクエストデータを生成し、
生成された前記アセットリクエストデータを用いて、外部サーバに前記アセットファイルを要求し、
要求に応じて前記外部サーバから送信された前記アセットファイルを受信し、
受信した前記アセットファイルを前記第1端末へ送信する
画面共有方法。 - 第2端末のブラウザに表示されるウェブページを、第1端末のブラウザに表示する画面共有に係る処理をコンピュータに実行させるためのコンピュータプログラムであって、
前記ウェブページを表示している前記第2端末のブラウザが外部と通信を行う際に使用するヘッダ情報と、ヘッダ情報IDとを対応付けて記憶部に記憶し、
前記第1端末のブラウザから送信された、前記ウェブページを構成するアセットファイルの所在を示す所在情報と、前記ヘッダ情報IDとを含むリクエストデータを受信した場合、該リクエストデータに含まれる前記ヘッダ情報IDに対応する前記ヘッダ情報を前記記憶部から取得し、
受信した前記リクエストデータに含まれる前記所在情報と、前記記憶部から取得した前記ヘッダ情報とを含むアセットリクエストデータを生成し、
生成された前記アセットリクエストデータを用いて、外部サーバに前記アセットファイルを要求し、
要求に応じて前記外部サーバから送信された前記アセットファイルを受信し、
受信した前記アセットファイルを前記第1端末へ送信する
処理を前記コンピュータに実行させるためのコンピュータプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022015206A JP2023113070A (ja) | 2022-02-02 | 2022-02-02 | 情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022015206A JP2023113070A (ja) | 2022-02-02 | 2022-02-02 | 情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023113070A true JP2023113070A (ja) | 2023-08-15 |
Family
ID=87565438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022015206A Pending JP2023113070A (ja) | 2022-02-02 | 2022-02-02 | 情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2023113070A (ja) |
-
2022
- 2022-02-02 JP JP2022015206A patent/JP2023113070A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9875314B2 (en) | Content request with HTTP request-header rendering template that is independent of content storage location | |
CN104094234B (zh) | 便利原生实体与虚拟机间通信的方法、系统及存储介质 | |
JP6051337B2 (ja) | クライアント側ページ処理 | |
US11233841B2 (en) | Systems and methods for configuration-based optimization by an intermediary | |
US8312170B2 (en) | Method and apparatus for managing a collection of portlets in a portal server | |
US20060075088A1 (en) | Method and System for Building a Client-Side Stateful Web Application | |
CA2406713C (en) | Method and apparatus for relaying session information from a portal server | |
US11842142B2 (en) | Systems and methods for co-browsing | |
US20140129920A1 (en) | Enhanced Document and Event Mirroring for Accessing Internet Content | |
JP2017504129A (ja) | ウェブブラウザにおいて表わされる状態表現の構築 | |
JP5151696B2 (ja) | ユニフォームリソースロケータ情報を書き換えるプログラム | |
JP5393242B2 (ja) | データ提供方法および中間サーバ装置 | |
JP2023113070A (ja) | 情報処理装置、画面共有システム、画面共有方法及びコンピュータプログラム | |
JP6358049B2 (ja) | ローカルストレージ同期方法、ローカルストレージ同期装置およびローカルストレージ同期プログラム | |
JP6128503B1 (ja) | 電子マニュアルに関連するサービスを提供するためのプログラム、サーバおよびシステム | |
Penberthy | Exam Ref 70-486 Developing ASP. NET MVC 4 Web Applications (MCSD): Developing ASP. NET MVC 4 Web Applications | |
JP2023120011A (ja) | 画面共有方法、画面共有システム及びコンピュータプログラム | |
JP5020355B2 (ja) | プロフィール表示装置、方法、プログラム及びシステム | |
Web | Programmable Web | |
JP4936413B1 (ja) | ウェブ表示プログラム変換システム、ウェブ表示プログラム変換方法、及び、ウェブ表示プログラム変換用プログラム | |
JP4226033B2 (ja) | 足跡提供装置、足跡提供システム | |
JP6544868B2 (ja) | 電子マニュアルに関連するサービスを提供するためのプログラム、サーバおよびシステム | |
KR100637801B1 (ko) | P2p 방식의 개인 홈페이지 서비스 시스템 | |
JP2024030990A (ja) | プログラム配信装置、プログラム配信システム、プログラム配信方法及びコンピュータプログラム | |
JP2009176176A (ja) | ウェブページ配信装置 |