以下、図面に基づいて本発明の実施の形態を説明する。図1は、第一の実施の形態における情報処理システムの構成例を示す図である。図1に示される情報処理システムおいて、携帯端末10は、1以上のコンテンツサーバ30及び情報管理サーバ40等に、インターネット又はLAN(Local Area Network)等のネットワークを介して接続可能である。
携帯端末10は、携帯電話、スマートフォン、又はタブレット端末等の携帯型の端末である。携帯端末10は、コンテンツサーバ30からWebコンテンツをダウンロード(取得)し、Webコンテンツを表示する機能を有する。Webコンテンツとは、汎用的なWebブラウザによって閲覧可能な表示データである。Webコンテンツは、HTML(HyperText Markup Language)、CSS(Cascading Style Sheets)、及びスクリプト等を含む。CSS及びスクリプトは、HTMLファイルとは異なるファイルにおいて定義されてもよいし、HTMLファイル内に含まれてもよい。スクリプトは、例えば、JavaScript(登録商標)である。スクリプトによって、Webコンテンツの表示状態を動的なものとすることができる。すなわち、スクリプトによれば、新たなWebコンテンツをダウンロードすることなく(Webコンテンツを遷移させることなく)、各種のイベントの発生に応じて、Webコンテンツの表示状態を変化させることができる。Webコンテンツの表示状態とは、Webコンテンツに基づいて表示される画像(画面)の表示状態をいう。各種のイベントの一例として、Webコンテンツに基づいて表示される画像に対するユーザによる操作が挙げられる。どのようなイベントに応じてWebコンテンツの表示状態がどのように変化するのかについては、Webコンテンツの定義に依存する。なお、Webコンテンツは、Webアプリケーション又はWebページとも呼ばれる。
コンテンツサーバ30は、携帯端末10からのWebコンテンツのダウンロード要求に応じ、当該要求において指定されたURL(Uniform Resource Locator)に対応するWebコンテンツ返信するコンピュータである。なお、携帯端末10に予め保存されているWebコンテンツが、表示対象とされてもよい。
情報管理サーバ40は、携帯端末10のユーザのコンテキストに対応したWebコンテンツの提供を支援するための情報(以下、「アプリ情報」という。)を管理するコンピュータである。コンテキストとは、例えば、現在の場所、現在の日時、現在の天候、現在のユーザの心理状態等、ユーザの状況を示す概念である。アプリ情報は、コンテキストを示す情報(以下、「コンテキストID」という。)と、当該コンテキストに対応する又は当該コンテキストに適したWebコンテンツのURL(以下、「コンテンツURL」という。)と、当該Webコンテンツに関して、携帯端末10に処理を実行させるスクリプトのURL(以下、「スクリプトURL」という。)とを対応付けて記憶する。
図2は、第一の実施の形態における携帯端末のハードウェア構成例を示す図である。図2の携帯端末10は、それぞれバスBで相互に接続されている補助記憶装置102、メモリ装置103、CPU104、インタフェース装置105、表示装置106、及び入力装置107等を有する。
携帯端末10での処理を実現するプログラムは、補助記憶装置102にインストールされる。補助記憶装置102は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
メモリ装置103は、プログラムの起動指示があった場合に、補助記憶装置102からプログラムを読み出して格納する。CPU104は、メモリ装置103に格納されたプログラムに従って携帯端末10に係る機能を実現する。インタフェース装置105は、ネットワークに接続するためのインタフェースとして用いられる。表示装置106は、ディスプレイD1を備え、Webコンテンツに基づく画像等を表示する。入力装置107はボタン又はタッチパネル等であり、ユーザからの操作指示を受け付ける
なお、コンテンツサーバ30及び情報管理サーバ40も、図2と同様のハードウェアを有していてもよい。但し、コンテンツサーバ30及び情報管理サーバ40は、表示装置106及び入力装置107を有さなくてもよい。
図3は、第一の実施の形態における情報処理システムの機能構成例を説明するための図である。
図3において、コンテンツサーバ30は、コンテンツ管理部31及びコンテンツ記憶部32を有する。コンテンツ管理部31は、コンテンツサーバ30にインストールされた1以上のプログラムが、コンテンツサーバ30のCPUに実行させる処理により実現される。コンテンツ記憶部32は、例えば、コンテンツサーバ30の補助記憶装置等を用いて実現可能である。
コンテンツ記憶部32は、Webコンテンツを構成するファイル群を記憶する。コンテンツ管理部31は、携帯端末10からのWebコンテンツの取得要求に応じ、当該取得要求に指定されているURLに係るHTMLファイル等を、携帯端末10に返信する。
情報管理サーバ40は、アプリ情報管理部41及びアプリ情報記憶部42を有する。アプリ情報管理部41は、情報管理サーバ40にインストールされた1以上のプログラムが、情報管理サーバ40のCPUに実行させる処理により実現される。アプリ情報記憶部42は、例えば、情報管理サーバ40の補助記憶装置等を用いて実現可能である。
アプリ情報記憶部42は、アプリ情報を記憶する。アプリ情報管理部41は、携帯端末10からのアプリ情報の取得要求に応じ、当該取得要求に指定されているコンテキストIDに対応するアプリ情報を、携帯端末10に返信する。
携帯端末10は、アプリ情報取得部121、コンテンツ取得部111、挿入部122、及びコンテンツ描画部112等を有する。これら各部は、携帯端末10にインストールされた1以上のプログラム(例えば、Webブラウザプログラム)が、CPU104に実行させる処理により実現される。
アプリ情報取得部121は、携帯端末10のユーザの状況に対応したアプリ情報を、情報管理サーバ40から取得する。コンテンツ取得部111は、アプリ情報に含まれているコンテンツURLに係るWebコンテンツを構成するHTMLファイルを、コンテンツサーバ30から取得する。挿入部122は、コンテンツ取得部111によって取得されたHTMLファイルに対して、必要に応じて、アプリ情報に含まれているスクリプトURLへの参照情報を挿入する。スクリプトURLへの参照情報とは、当該スクリプトURLを含む<script>タグの定義(script要素)をいう。
コンテンツ描画部112は、当該HTMLファイルに関して描画処理を行う。描画処理の過程において、当該HTMLファイルから参照されているスクリプトファイルや、CSS(Cascading Style Sheets)ファイル等がダウンロードされる。したがって、挿入部122によって、スクリプトURLに関する参照情報が挿入されている場合、当該スクリプトURLに係るスクリプトファイルが携帯端末10にダウンロードされ、実行される。その結果、予めHTMLファイルに対して、スクリプトURLに係るスクリプトファイルへの参照情報が挿入されていなくても、当該HTMLファイルに係る表示要素に関して、当該スクリプトファイルに係るスクリプトを適用することができる。
以下、情報処理システムにおいて実行される処理手順について説明する。図4は、第一の実施の形態における情報処理システムが実行する処理手順の一例を説明するためのシーケンス図である。
ステップS501において、コンテンツ取得部111に対して、ユーザの状況に対応するコンテキストIDが通知される。コンテキストIDの通知は、ユーザによる入力に応じて行われてもよい。この場合、ユーザによって入力された情報が、コンテキストIDとなる。又は、携帯端末10に内蔵されたタイマ機能による日時の変更、GPS(Global Positioning System)機能による位置の変更、無線LANのアクセスポイントからの電波の受信、NFC(Near field communication)タグ若しくはバーコードの読み取り等に基づいて、コンテキストIDが通知されてもよい。この場合、日時、位置情報、無線LANのアクセスポイントの識別情報、NFCタグ若しくはバーコード等から読み取られた情報が、コンテキストIDとされてもよい。
なお、ユーザによって入力された情報、又は、日時、位置情報、無線LANのアクセスポイントの識別情報、NFCタグ若しくはバーコード等から読み取られた情報が、所定の形式に成形された情報が、コンテキストIDとされてもよい。
続いて、コンテンツ取得部111は、コンテキストIDを含む、アプリ情報の取得要求をアプリ情報取得部121に入力する(S502)。アプリ情報取得部121は、当該取得要求を、情報管理サーバ40に送信する(S503)。情報管理サーバ40のアプリ情報管理部41は、当該取得要求に含まれているコンテキストIDに対応付いているアプリ情報を、アプリ情報記憶部42から取得する(S504)。
図5は、アプリ情報記憶部の構成例を示す図である。図5に示されるように、アプリ情報記憶部42は、コンテキストIDに対応付けて、1つのコンテンツURL、1以上の第1層スクリプトURLを記憶する。また、アプリ情報記憶部42は、第1層スクリプトURLごとに、0以上の第2層スクリプトURLを記憶する。なお、1つのコンテキストIDに対応付けて、1以上のコンテンツURLが記憶され、あるコンテキストにおいて1以上のコンテンツが取得されるようにされてもよい。
コンテンツURLは、コンテキストIDに係るコンテキストに対応するHTMLファイルのURLである。HTMLファイルは、HTML5を使用して定義されていてもよい。第1層スクリプトURL及び第2層スクリプトURLは、前述のスクリプトURLの一例である。第1層スクリプトURLは、当該コンテキストにおいて、HTMLファイルから参照させることにより、当該HTMLファイルに定義されている各表示要素に関して、当該コンテキストに適した処理を携帯端末10に実行させるスクリプトのURLである。換言すれば、第1層スクリプトURLに係るスクリプト(以下、「第1層スクリプト」という。)を、コンテンツURLに係るHTMLファイルに連動又は連携させることにより、当該HTMLファイルに基づいて表示される画像の動作を、当該コンテキストにより適したものとすることができる。その結果、当該HTMLファイルに係るWebコンテンツの利便性を向上させることができる。
なお、第1層スクリプトは、コンテンツURLに係るHTMLファイルの初期状態において、当該HTMLファイルからは参照されていない。すなわち、当該HTMLファイルは、初期状態において、第1層スクリプトURLへの参照情報を含まない。但し、このことは、当該HTMLファイルが、<script>タグを全く含まないことを意味するものではない。コンテンツURLに係るHTMLファイルが、初期状態において、第1層スクリプトURLへの参照情報を含まない場合の一例として、既存のHTMLファイルに対して、新たにスクリプトを適用しようとする場合が挙げられる。または、同一のHTMLファイルに対して、コンテキストに応じて適用する第1層スクリプトを変更するために、当初からはHTMLファイルに参照させる第1層スクリプトURLを決定できない場合も挙げられる。すなわち、アプリ情報記憶部42において、相互に異なる各コンテキストIDに対して、同じコンテンツURLと、異なる第1層スクリプトURLとが対応付けられてもよい。
また、本実施の形態では、1つのコンテンツURLに対して複数の第1層スクリプトURLが対応付けられている場合、当該複数の第1層スクリプURLは、相互に排他的又は選択的な関係を有することとする。但し、複数の第1層スクリプトURLのそれぞれに係る第1層スクリプトが、同時に同一のHTMLファイルに適用可能とされてもよい。
第2層スクリプトURLは、前述のスクリプトURLの一例である。第2層スクリプトURLは、第1層スクリプトから利用される(参照される)スクリプト(以下、「第2層スクリプト」という。)のURLである。なお、第2層スクリプトURLについては、コンテンツURLに係るHTMLファイルから参照されている可能性は、完全には否定できない。
なお、アプリ情報は、ユーザごと又は携帯端末10ごとに設定されていてもよい。この場合、ステップS503におけるアプリ情報の取得要求には、携帯端末10に記憶されているユーザの識別情報(以下、「ユーザID」という。)又は当該携帯端末10の識別情報(以下、「端末ID」という。)等が含められてもよい。アプリ情報管理部41は、ステップS504において、当該ユーザID又は当該端末IDに対応するアプリ情報であって、かつ、当該取得要求に含まれるコンテキストIDに対応付けられているアプリ情報を取得してもよい。また、コンテキストIDとして、当該ユーザが携帯端末10で参照しようとしているHTMLファイルのURLが用いられるようにされてもよい。このとき、情報管理サーバ40に当該コンテンツURLが送信され、当該コンテンツURLと対応付けられている第1層スクリプトURLが当該HTMLファイルに適用可能とされる。
続いて、アプリ情報管理部41は、取得されたアプリ情報を、アプリ情報取得部121に返信する(S505)。アプリ情報取得部121は、アプリ情報を受信すると、当該アプリ情報を、コンテンツ取得部111に出力する(S506)。
続いて、コンテンツ取得部111は、当該アプリ情報に含まれているコンテンツURL宛に、HTMLファイルの取得要求を送信する(S507)。当該取得要求は、当該URLに係るコンテンツサーバ30のコンテンツ管理部31によって受信される。コンテンツ管理部31は、当該URLに係るHTMLファイルを、コンテンツ記憶部32から取得して、コンテンツ取得部111に返信する(S508)。
当該アプリ情報に複数の第1層スクリプトURLが含まれている場合、コンテンツ取得部111は、各第1層スクリプトURLを選択肢とする一覧画面を表示装置106に表示させ、HTMLファイルへの挿入対象とする一つの第1層スクリプトURLの選択をユーザから受け付ける(S509)。当該一覧画面には、いずれの第1層スクリプトURLをも挿入しない、という選択肢が含まれてよい。
なお、各第1層スクリプトURLの機能等に関する説明文が、第1層スクリプトURLの代わりに、又は第1層スクリプトURLと共に表示されてもよい。そうすることにより、第1層スクリプトURLの選択を支援することができる。斯かる説明文の一例として(「コンテンツの画像を目の前の大型ディスプレイに表示させることができます。」)等が挙げられる。当該説明文は、例えば、第1層スクリプトURLに対応付けられてアプリ情報に含まれていてもよい。
なお、各第1層スクリプトURLが排他的又は選択的でない場合、ユーザによる選択は実行されずに全ての第1層スクリプトが挿入対象とされてもよい。また、コンテンツ取得部111は、第1層スクリプトURLが一つである場合であっても、当該第1層スクリプトURLに係る第1層スクリプトの挿入の可否又は許否を、ユーザに選択させてもよい。
続いて、コンテンツ取得部111は、HTMLファイルに対するスクリプトURLの挿入を、挿入部122に要求する(S510)。当該要求には、HTMLファイル、及びステップS506において取得されたアプリ情報等が含まれる。
挿入部122は、当該要求に応じ、HTMLファイルに対するスクリプトURLの挿入処理を実行する(S511)。続いて、挿入部122は、挿入処理によってスクリプトURLが挿入されたHTMLファイルを、コンテンツ取得部111に出力する(S512)。
なお、対象スクリプトが無い場合、ステップS510〜S512は実行されない。対象スクリプトが無い場合とは、HTMLファイルのコンテンツURLに、第1層スクリプトURLが対応付けられていない場合、又はステップS509において、第1層スクリプトURLの挿入が、ユーザによって拒否された場合等である。
続いて、コンテンツ取得部111は、当該HTMLファイルの描画を、コンテンツ描画部112に要求する(S513)。コンテンツ描画部112は、当該要求に応じ、当該HTMLファイルに関して描画処理を実行する(S514)。描画処理の過程において、当該HTMLファイルから参照されているCSSファイル、画像ファイル、スクリプトファイル等がダウンロードされる。コンテンツ描画部112は、ダウンロードされたCSSファイルの定義や画像ファイル等をHTMLファイルの定義に適用して、画像を生成し、当該画像を表示装置106に表示させる。また、コンテンツ描画部112は、ダウンロードされたスクリプトファイルに含まれているスクリプトの定義に基づく処理を実行する。なお、スクリプト定義に基づく処理の実行タイミングは、スクリプト定義に依存する。
続いて、ステップS511の詳細について説明する。図6は、第一の実施の形態におけるスクリプトURLの挿入処理の処理手順の一例を説明するためのフローチャートである。
コンテンツ取得部111から、スクリプトURLの挿入が要求されると、挿入部122は、当該要求に含まれるアプリ情報から、第1層スクリプトURL及び第2層スクリプトURLを取得する(S521)。続いて、挿入部122は、取得された各第2層スクリプトURLを、暫定的に挿入対象とする(S522)。続いて、挿入部122は、HTMLファイルに含まれる全ての<script>タグを検索する(S523)。<script>タグが一つも検索されない場合(S524でNo)、ステップS529に進む。1以上の<script>タグが検索された場合(S524でYes)、挿入部122は、検索された<script>タグのうちの一つの<script>タグを処理対象とする(S525)。以下、処理対象とされた<script>タグを、「対象タグ」という。
続いて、挿入部122は、暫定的な挿入対象の第2層スクリプトURLの中に、対象タグにおいて参照されているスクリプトのURLと重複するもの(同じもの)が有るか否かを判定する(S526)。URLの重複は、完全一致によって判定されてもよい。また、対象タグにおいて参照されているスクリプトのURLが、相対パスである場合、当該相対パスを含む絶対パスの第2層スクリプトURLが、対象タグにおいて参照されているスクリプトのURLに重複していると判定されてもよい。
重複する第2層スクリプトURLが有る場合(S526でYes)、挿入部122は、当該第2層スクリプトURLを、挿入対象から除外する(S527)。既にHTMLファイルによって参照されているスクリプトのURLが有る場合に、当該URLと同じURLに係るスクリプトに対する参照情報が当該HTMLファイルに追加されると、当該HTMLファイルの描画処理時等に、同じスクリプトが2回以上実行されることになる。そうすると、当該スクリプトによって実行される処理が不安定になってしまう可能性が有るからである。すなわち、ステップS527は、一つのHTMLファイルにおける、同じスクリプトに対する2回以上の参照を回避するための処理である。
ステップS525以降は、HTMLファイルから検索された全ての<script>タグに関して実行される(S528)。全ての<script>タグに関して、ステップS525以降の実行が完了すると(S528でNo)、挿入部122は、この時点で挿入対象に含まれている第2層スクリプトURLへの参照情報を、HTMLファイルの</head>タグの直前に挿入する(S529)。続いて、挿入部122は、第1層スクリプトURLへの参照情報を、HTMLファイルの</head>タグの直前に挿入する(S530)。続いて、挿入部122は、スクリプトURLへの参照情報が挿入されたHTMLファイルを、コンテンツ取得部111に出力する(S531)。
図7は、第一の実施の形態におけるHTMLファイルへのスクリプトURLの挿入例を示す図である。図7において、HTMLファイルh1は、スクリプトURLの挿入前のHTMLファイルであり、HTMLファイルh2は、スクリプトURLの挿入後のHTMLファイルである。なお、図7の例は、コンテキストIDが「コンテキスト1」である場合であって、当該コンテキストIDに対応付けられている2つの第1層スクリプトURL(図5参照)のうち、「http://www.svrA.jp/scripts/jsA.js」が、挿入対象とされた場合に対応する。
この場合、第2層スクリプトURLは、「http://www.svrX.jp/scripts/jsX1.js」及び「http://www.svrY.jp/scripts/jsY1.js」である。このうち、「http://www.svrX.jp/scripts/jsX1.js」については、HTMLファイルh1の<script>タグt1において参照されているURLと重複する。したがって、この場合、HTMLファイルh2には、当該URLと重複しない「http://www.svrY.jp/scripts/jsY1.js」への参照情報である<script>タグt2と、第1層スクリプトURLである「http://www.svrA.jp/scripts/jsA.js」への参照情報である<script>タグt3とが、挿入される。
なお、本実施の形態において、HTMLファイルは、第1層スクリプトURLを含まないという前提に基づいているが、斯かる前提が保証されない場合は、第1層スクリプトURLについても、HTMLファイルから参照されているスクリプトのURLとの重複チェックが行われてもよい。重複チェックにおいて、重複していることが判明した場合、第1層スクリプトURLは、挿入対象から除外されてもよい。
また、HTMLファイル側でスクリプトが動的に読み込まれる場合に備えて、重複するスクリプトURLの検出処理を行う専用のスクリプトが用意されてもよい。携帯端末10は、当該スクリプトをHTMLファイルに挿入し、HTMLファイルに基づく描画処理を行った後、当該スクリプトによって重複する第2層スクリプトURLを特定して、重複しない第2層スクリプトURLをHTMLファイルに挿入する。重複するスクリプトURLの検出処理を行うスクリプトは、例えば、HTMLファイルによる動的なスクリプトの読み込みが完了すると考えられる時間(例えば、数秒)経過した後に実行されてもよい。
上述したように、第一の実施の形態によれば、ユーザのコンテキスト(状況)に対応したHTMLファイルが携帯端末10に配信される。また、当該HTMLファイルに対して、ユーザのコンテキストに対応したスクリプトへの参照情報が自動的に挿入される。その結果、ユーザの状況に応じてコンテンツの提供を可能とすることができる。
また、スクリプトへの参照が自動的に挿入されるため、本実施の形態を実施するために、既存のHTMLファイルの作成者が、既存のHTMLに対して改変を行う必要性を低減させることができる。
なお、Webコンテンツの表示要素は、HTMLファイル以外の形式によって定義されてもよい。例えば、XML(eXtensible Markup Language)形式によって、Webコンテンツの表示要素が定義されてもよい。また、表示データ以外のコンテンツに関して、本実施の形態が適用されてもよい。
次に、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第一の実施の形態と同様でもよい。
図8は、第二の実施の形態における情報処理システムの機能構成例を説明するための図である。図8中、図3と同一部分には同一符号を付し、その説明は省略する。
図8において、コンテンツサーバ30は、アプリ情報取得部33及び挿入部34を更に有する。アプリ情報取得部33は、携帯端末10からのWebコンテンツの取得要求に含まれているコンテキストIDに対応するアプリ情報を、情報管理サーバ40から取得する。挿入部34は、携帯端末10からのWebコンテンツの取得要求に係るHTMLファイルに、アプリ情報取得部33によって取得されたアプリ情報に含まれるスクリプトURLを挿入する。すなわち、第二の実施の形態では、HTMLファイルに対するスクリプトURLの挿入が、コンテンツサーバ30によって行われる。
したがって、第二の実施の形態において、携帯端末10は、アプリ情報取得部121を有していない。また、携帯端末10は、挿入部122の代わりに編集部123を有する。編集部123は、コンテンツサーバ30の挿入部34によって挿入されたスクリプトURLへの参照情報に関して、編集を行う。具体的には、挿入候補の第1層スクリプトURLが複数有る場合、コンテンツサーバ30の挿入部34がスクリプトURLを挿入する段階では、いずれを挿入対象とするのかについて、ユーザによる選択を受け付けることができない。そこで、挿入部34は、当該コンテキストに対応するアプリ情報に含まれる全ての第1層スクリプトURL及び第2層スクリプトURLを、コメントアウトされた状態でHTMLファイルに挿入する。換言すれば、当該アプリ情報が、当該HTMLファイルにコメントアウトされた状態で挿入される。編集部123は、HTMLファイルにコメントアウトされて含まれている複数の第1層スクリプトURLの中から挿入対象とする第1層スクリプトURLが決定された後に、HTMLファイルに含まれている不要な記述を削除する。不要な記述とは、挿入対象とされなかった第1層スクリプトURL及び当該第1層スクリプトURLから参照される第2層スクリプトURL等である。
図9は、第二の実施の形態における情報処理システムが実行する処理手順の一例を説明するためのシーケンス図である。
ステップS601において、ユーザによって入力又は選択された、Webコンテンツに対するURL(コンテンツURL)が、コンテンツ取得部111に通知される。続いて、コンテンツ取得部111は、当該コンテンツURL宛に、HTMLファイルの取得要求を送信する(S602)。当該取得要求には、コンテキストIDも含まれる。コンテキストIDは、例えば、WebコンテンツのURLの入力に伴ってユーザによって入力される情報、又は当該URLの入力時における日時、位置情報、無線LANのアクセスポイントの識別情報、又は当該入力時においてNFCタグ、バーコード、若しくは2次元コード等から読み取られた情報等である。
HTMLファイルの取得要求は、当該コンテンツURLに係るコンテンツサーバ30のコンテンツ管理部31によって受信される。コンテンツ管理部31は、当該取得要求に含まれているコンテキストID及びコンテンツURLを指定して、アプリ情報の取得を、アプリ情報取得部33に要求する。アプリ情報取得部33は、当該コンテキストID及び当該コンテンツURLに対応するアプリ情報の取得要求を、情報管理サーバ40に送信する(S603)。情報管理サーバ40のアプリ情報管理部41は、当該取得要求に含まれているコンテキストID及びコンテンツURLに対応付いているアプリ情報を、アプリ情報記憶部42から取得する(S604)。コンテンツ管理部31は、取得されたアプリ情報を、アプリ情報取得部33に返信する(S605)。
続いて、アプリ情報取得部33は、コンテンツURLに係るHTMLファイルをコンテンツ記憶部32から取得し、取得されたアプリ情報に含まれるスクリプトURLについて、当該HTMLファイルへの挿入を、挿入部34に要求する。挿入部34は、当該アプリ情報に含まれている第1層スクリプトURL及び第2層スクリプトURLを、コメントアウトされた状態で、当該HTMLファイルに挿入する(S606)。
図10は、第二の実施の形態におけるコンテンツサーバによるHTMLファイルへのスクリプトURLの挿入例を示す図である。図10中、図7と同一部分には同一符号を付し、その説明は省略する。また、図10の例は、コンテンツURLが「http://app.example.com/app」であり、コンテキストIDが「コンテキスト1」である場合に対応する。
図10において、HTMLファイルh3が、挿入部34によるスクリプトURLの挿入後のHTMLファイルである。HTMLファイルh3とHTMLファイルh1との比較から明らかなように、挿入部34は、重複マークm1、コメント開始記号c1、コメント終了記号c2、及び候補情報d1をHTMLファイルh1に挿入して、HTMLファイルh3を生成する。
候補情報d1は、コンテキストIDに対応するアプリ情報に含まれる、全ての第1層スクリプトURL及び第2層スクリプトURLを、JSON(JavaScript(登録商標) Object Notation)形式で含む。候補情報d1において、第1層スクリプトURLごとに、第2層スクリプトURLとの親子関係又は階層関係は維持されている。候補情報d1は、XML(eXtensible Markup Language)形式等、親子関係又は階層関係を容易に表現可能な他の形式によって記述されてもよい。なお、候補情報d1は、挿入されることが確定されたわけではなく、挿入の候補となるスクリプトURLが列挙されたものであるため、候補情報と呼ばれる。
コメント開始記号c1及びコメント終了記号c2は、候補情報d1をコメントアウトするための記号である。但し、本実施の形態において、コメント開始記号c1及びコメント終了記号c2は、挿入部34によって挿入されたスクリプトURLを識別可能とすることを目的として追加される。したがって、斯かる目的を達成可能であれば、コメント開始記号c1及びコメント終了記号c2以外の独自の記号が用いられてもよい。
重複マークm1は、候補情報d1に含まれるスクリプトURL群の中に、当初からHTMLファイルに含まれている<script>タグにおいて参照されているURLと重複するスクリプトURLが有る場合に、当該<script>タグt1の直前に追加される記号である。図10では、<script>タグt1に対して、重複マークm1が付与されている。図5を参照すると、コンテキスト1に対応する第2層スクリプトURLの中で、「http://www.svrX.jp/scripts/jsX1.js」は、<script>タグt1において参照されているURLと重複する。したがって、<script>タグt1に対して重複マークm1が付与されている。
一方、候補情報d1において、当該URLに該当する部分は、置換マークm2によって置換されている。ここで、重複マークm1と置換マークm2との値は、「$1」で一致する。それによって、置換マークm2の部分は、重複マークm1に対応する<script>タグt1によって参照されているURLに該当することが示される。仮に、HTMLファイルh1に、更に<script>タグが含まれており、当該<script>タグによって参照されるURLと、候補情報d1に含まれるいずれかのスクリプトURLが重複する場合、例えば、当該<script>タグには「$2」を値とする重複マークが付与され、当該スクリプトURLは、「$2」によって置換される。
なお、重複マーク及び置換マークは、候補情報d1が長くなるのを回避するための工夫である。したがって、置換マークm2の部分には、置換前のURLが、そのままの状態で含まれてもよい。この場合、重複マークm1は付与されなくてもよい。
挿入部34は、スクリプトURLの挿入処理が終了すると、スクリプトURL等が挿入されたHTMLファイルh3を、コンテンツ管理部31に出力する。コンテンツ管理部31は、HTMLファイルh3を、コンテンツ取得部111に返信する(S607)。
続いて、コンテンツ取得部111は、HTMLファイルh3の候補情報d1に含まれている、第1層スクリプトURLを選択肢とする一覧画面を表示装置106に表示させ、HTMLファイルへの挿入対象とする一つの第1層スクリプトURLの選択をユーザから受け付ける(S608)。当該一覧画面には、いずれの第1層スクリプトURLをも挿入しない、という選択肢が含まれてよい。
なお、各第1層スクリプトURLの機能等に関する説明文が、第1層スクリプトURLの代わりに、又は第1層スクリプトURLと共に表示されてもよい。当該説明文は、例えば、第1層スクリプトURLに対応付けられてアプリ情報に含まれており、アプリ情報から、候補情報d1に転記されてもよい。
なお、各第1層スクリプトURLが排他的又は選択的でない場合、ユーザによる選択は実行されずに全ての第1層スクリプトが挿入対象とされてもよい。また、コンテンツ取得部111は、第1層スクリプトURLが一つである場合であっても、当該第1層スクリプトURLに係る第1層スクリプトの挿入の可否又は許否を、ユーザに選択させてもよい。
続いて、コンテンツ取得部111は、HTMLファイルh3の編集を、編集部123に要求する(S610)。編集部123は、HTMLファイルh3を編集して、候補情報d1に含まれる第1層スクリプトURLのうち、挿入対象とされた第1層スクリプトURLへの参照情報と、当該第1層スクリプトURLに係る第2層スクリプトURLへの参照情報とを含むHTMLファイルを生成する。
ステップS611以降は、図4のステップ512以降と同様でよいため、その説明は省略する。
続いて、ステップS610の詳細について説明する。図11は、第二の実施の形態におけるHTMLファイルの編集処理の処理手順の一例を説明するためのフローチャートである。
ステップS621において、編集部123は、処理対象のHTMLファイルを走査して、候補情報を探索する。例えば、コメント内において、JSON形式で記載されているURL群が探索される。候補情報が無い場合(S622でNo)、ステップS629に進む。候補情報が有る場合(S622でYes)、ステップS623に進む。HTMLファイルh3には、候補情報d1が含まれている。したがって、この場合、ステップS623に進む。
ステップS623において、編集部123は、候補情報に置換マークが含まれているか否かを判定する(S623)。置換マークが含まれていない場合(S623でNo)、ステップS626に進む。置換マークが含まれている場合(S623でYes)、ステップ624に進む。HTMLファイルh3の候補情報h3には、置換マークm2が含まれている。したがって、この場合、ステップS624に進む。
ステップS624において、編集部123は、候補情報内の置換マークを、当該置換マークに対応する重複マークが付与されている<script>タグによって参照されているURLによって置換する(S624)。置換マークに対応する重複マークとは、当該置換マークと同じ値を有する重複マークをいう。HTMLファイルh3では、候補情報h3における置換マークm2の部分が、重複マークm1の付与されている<script>タグt1における「./jsX1.js」によって置換される。
続いて、編集部123は、置換された置換マークに対応する重複マークが付与されている<script>タグを削除する(S625)。同じスクリプトに対する2回以上の参照を回避するためである。HTMLファイルh3では、<script>タグt1が削除される。なお、当該重複マークを含むコメントも削除されてもよい。
続いて、ステップS626に進む。なお、重複マークと置換マークとの組が2以上有る場合、各組について、ステップS624及びS625が実行される。
ステップS626において、編集部123は、候補情報に含まれている第2層スクリプトURLのうち、挿入対象とされた第1層スクリプトURLに係る第2層スクリプトURLへの参照情報を、HTMLファイルの</head>タグの直前に挿入する。続いて、編集部123は、候補情報に含まれている第1層スクリプトURLのうち、挿入対象とされた第1層スクリプトURLへの参照情報を、HTMLファイルの</head>タグの直前に挿入する(S627)。続いて、編集部123は、HTMLファイルから候補情報を削除する(S628)。但し、候補情報が、コメントアウトされ、無効化されている場合、ステップS628は、実行されなくてもよい。
続いて、編集部123は、スクリプトURLへの参照情報が挿入されたHTMLファイルを、コンテンツ取得部111に出力する(S629)。
図11の処理によれば、例えば、HTMLファイルh3に基づいて、図7に示したHTMLファイルh2が生成される。
なお、コンテンツサーバ30が、HTMLファイルに当初から含まれている<script>タグにおいて参照されているURLと重複している第2層スクリプトURLについて、候補情報から除去するのではなく、置換マークに置き換えるのは、HTMLファイル内において、<script>タグの順番が、スクリプトの実行において重要である場合が有るからである。具体的には、スクリプト間の利用関係(呼び出し関係)において下層に有るスクリプトに係る<script>タグが先に記述されるのが望ましい。このような順序関係を維持可能とするために、重複する第2層スクリプトURLは、置換マークに置換されるのである。
上述したように、第二の実施の形態によれば、ユーザの状況に対応したスクリプトのURLは、コンテンツサーバ30においてHTMLファイルに挿入される。換言すれば、HTMLファイル内にアプリ情報が含められる。したがって、携帯端末10は、情報管理サーバ40の存在を意識せずとも、第一の実施の形態と同様の効果を得ることができる。
なお、挿入する第1層スクリプトURLを、携帯端末10のユーザに選択させる必要が無ければ、コンテンツサーバ30の挿入部34によって、HTMLファイルh1に基づいてHTMLファイルh2が生成されてもよい。すなわち、挿入部34は、第一の実施の形態における携帯端末10の挿入部122と同様の処理を実行してもよい。この場合、携帯端末10は、編集部123を有していなくてもよい。
なお、上記各実施の形態において、第2層スクリプトURLを含まないアプリ情報が有ってもよい。
次に、第三の実施の形態について説明する。第三の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及されない点については、第一の実施の形態と同様でもよい。
図12は、第三の実施の形態におけるシステム構成例を示す図である。図12において、携帯端末10は、更に、表示端末20L及び表示端末20Rの二つの表示端末20にネットワークを介して接続可能である。携帯端末10と表示端末20との通信は、移動体通信網、無線LAN、又は近距離無線通信等を用いて行われてもよい。
表示端末20は、スマートテーブル、デジタルサイネージ、又は壁掛けのディスプレイ等、大型ディスプレイを有する表示端末である。各表示端末20は、Webコンテンツの表示機能を有する。第三の実施の形態では、各表示端末20のディスプレイが左右に並べて配置されることにより、ユーザに対しては、各表示端末20のディスプレイの2倍の表示領域を有する一つのディスプレイ(以下、「統合ディスプレイ」という。)が提供される例について説明する。統合ディスプレイには、携帯端末10において表示されているWebコンテンツが、各表示端末20のディスプレイに跨って表示される。
図13は、統合ディスプレイにおけるWebコンテンツの表示イメージの一例を示す図である。図13において、ディスプレイD1は、携帯端末10のディスプレイである。ディスプレイD2Lは、表示端末20Lのディスプレイである。ディスプレイD2Rは、表示端末20Rのディスプレイである。図13に示されるように、ディスプレイD2LとディスプレイD2Rとが構成する統合ディスプレイD2には、ディスプレイD1において表示されている画像が、二つのディスプレイに跨って表示される。
なお、3つ以上の表示端末20のディスプレイが統合されてもよい。この場合、各表示端末20は、水平方向のみならず、垂直方向に配列されてもよい。例えば、4つの表示端末20を組み合わせる場合、図13に示される統合ディスプレイD2が、垂直方向に配列された構成が採用されてもよい。
または、携帯端末10に表示されている画像の全部が、各表示端末20に表示されてもよい。換言すれば、各表示端末20のそれぞれには、同じ画像が表示されてもよい。この場合、携帯端末10と表示端末20との関係は、1対1でもよい。
本実施の形態において、表示端末20は、ユーザからWebコンテンツの操作を受け付けるための手段を有する。例えば、表示端末20は、タッチパネルを備えていてもよい。したがって、表示端末20においても、Webコンテンツは操作される。Webコンテンツの操作とは、Webコンテンツに基づいて表示される画像の操作をいう。
携帯端末10において表示されているWebコンテンツを表示端末20に表示させる処理、すなわち、携帯端末10における表示状態と表示端末20における表示状態とを同期させる処理は、第一又は第二の実施の形態において説明した方法によってHTMLファイルから参照されるようになるスクリプトが携帯端末10に実行させる処理により実現される。すなわち、第三の実施の形態では、HTMLファイルに挿入されたスクリプトURLに係るスクリプトが、携帯端末10に実行させる処理の一例について、具体的に説明する。
図14は、第三の実施の形態における携帯端末及び表示端末の機能構成例を示す図である。図14中、図3と同一部分には同一符号を付し、その説明は省略する。
図14において、携帯端末10は、更に、イベントハンドラ抽出部113、スクリプト生成部114、DOM抽出部115、スタイル抽出部116、変更監視部117、データ配信部118、及びイベント受信部119等を有する。これら各部は、第一又は第二の実施の形態において説明した方法によって、HTMLファイルに挿入される参照情報に係るスクリプト(以下、「同期データ配信スクリプト」という。)が、CPU104に実行させる処理により実現される。同期データ配信スクリプトは、第1層スクリプトであってもよいし、第1層スクリプト及び第2層スクリプトの集合であってもよい。
第一の実施の形態において説明したように、コンテンツ描画部112は、Webコンテンツの描画処理を実行する。描画処理では、HTMLファイル及びCSSファイルの解析や、スクリプトファイルに定義されているスクリプトの実行等が行われる。HTMLファイルの解析により、DOMツリーが生成され、メモリ装置103に記憶される。DOMツリーとは、Webコンテンツの現在の状態(構造)を保持するオブジェクト群であり、HTMLの各要素に対するAPI(Application Program Interface)としても機能する。
図15は、HTML、DOM、CSS,及びスクリプトの関係を説明するための図である。図15では、HTMLによって、DOMツリーが初期化されることが示されている。すなわち、コンテンツサーバ30からダウンロードされるHTMLファイルは、Webコンテンツに基づいて表示される画像の初期状態を格納するものである。ユーザによる画像の操作等に応じて画像の表示状態が変化した場合、変化後の表示状態は、DOMツリーにおいて保持される。換言すれば、Webコンテンツの表示状態の変化は、DOM要素ツリーの変更によって実現される。なお、DOMツリーを構成する各要素を、DOM要素という。
CSSは、DOM要素の配置や修飾等に関する定義である。DOMツリーにCSSが適用されることにより、画像500が表示される。スクリプトは、DOM要素に対する操作を検知し、DOMツリーを書き換えることができる。
イベントハンドラ抽出部113は、Webコンテンツを構成するスクリプトの中からイベントハンドラを抽出する。スクリプト生成部114は、抽出されたイベントハンドラが監視対象とするイベントの発生を、Webコンテンツの表示先である表示端末20から携帯端末10に通知させるための定義がなされたスクリプト(以下、「イベント通知スクリプト」という。)を生成する。イベント通知スクリプトは、各表示端末20に配信され、各表示端末20をイベント送信部216として機能させる。
DOM抽出部115は、メモリ装置103にロードされているDOMツリーが文字列化されたデータ(以下、「DOMデータ」という。)を生成する。スタイル抽出部116は、CSSファイルの解析によりメモリ装置103にロードされているスタイル定義が文字列化されたデータ(以下、「スタイル定義データ」という。)を生成する。変更監視部117は、DOMツリーを構成するDOM要素の変更を監視する。
データ配信部118は、スクリプト生成部114によって生成されるイベント通知スクリプト、DOM抽出部115によって生成されるDOMデータ、スタイル抽出部116によって生成されるスタイル定義データ等を、各表示端末20に配信する。また、変更監視部117によってDOMツリーの変更が検知された場合、変更前後のDOMツリーの差分を示すデータ(以下、「差分データ」という。)も、データ配信部118によって各表示端末20に配信される。但し、差分データの代わりに、変更後のDOMツリーの全部が文字列化されたDOMデータが、配信されてもよい。
イベント受信部119は、イベント通知スクリプトに基づいて、各表示端末20から送信される、イベントの発生の通知を受信する。当該通知に基づいて、携帯端末10におけるDOMツリーが変更される。
表示端末20は、データ受信部211、表示領域生成部212、イベントハンドラ設定部213、表示状態適用部214、コンテンツ描画部215、及びイベント送信部216等を有する。これら各部は、表示端末20にインストールされるプログラム又は表示端末20に配信されるプログラムが、表示端末20のCPUに実行させる処理により実現される。
データ受信部211は、携帯端末10から配信されるデータを受信する。例えば、DOMデータ、スタイル定義データ、及びスクリプトデータが受信される。また、携帯端末10においてDOMツリーが変化した場合、差分データが、データ受信部211によって受信される。
表示領域生成部212は、Webコンテンツに基づく画像の表示領域を生成する。イベントハンドラ設定部213は、データ受信部211によって受信されるイベント通知スクリプトを、当該表示領域に関して設定する。表示状態適用部214は、データ受信部211によって受信されるDOMデータ及びスタイル定義データや、差分データを、当該表示領域に適用する。DOMデータ及びスタイル定義データの適用により、当該表示領域に画像が表示される。また、差分データの適用により、当該画像の表示状態が変化する。
コンテンツ描画部215は、基本的に、携帯端末10のコンテンツ描画部112と同様の機能を実現する。イベント送信部216は、当該表示領域において表示されている画像に対する操作に応じ、当該操作を示すイベントの通知を、携帯端末10に送信する。
なお、データ受信部211、表示領域生成部212、イベントハンドラ設定部213、及び表示状態適用部214は、スクリプトが、表示端末20のCPUに実行させる処理によって実現される。当該スクリプトを、以下「同期データ受信スクリプト」という。同期データ受信スクリプトは、例えば、予め表示端末20にインストールされている。
以下、携帯端末10及び表示端末20が実行する処理手順について説明する。図16は、スクリプトURLが挿入されたHTMLファイルに関して実行される処理手順の一例を説明するためのシーケンス図である。図16中、図S1と同一ステップには同一ステップ番号を付し、その説明は省略する。
表示端末20は、例えば、起動又はユーザによる所定の操作に応じ、同期データ受信スクリプトを読み込む(S101)。続いて、同期データ受信スクリプトに基づくデータ受信部211は、携帯端末10からのデータの受信を待機する(S102)。
一方、携帯端末10は、ステップS501〜S514を実行する。ステップS501〜S514において、コンテキストIDは、例えば、表示端末20に貼り付けられているNFCタグ、バーコード、若しくは2次元コード等から読み取られた情報であってもよい。又は、ステップS501の前における、携帯端末10と各表示端末20との通信によって、表示端末20から受信される情報であってもよい。第三の実施の形態では、このようにして特定されたコンテキストIDに対して、アプリ情報において対応付けられているスクリプトURLに係るスクリプトが、同期データ配信スクリプトである。すなわち、同期データ配信スクリプトは、携帯端末10のユーザが、表示端末20の近くに居るという状況に適したスクリプトの一例である。
ステップS514では、ステップS114〜S117が実行される。ステップS114において、コンテンツ描画部112は、HTMLファイルの定義内容を解析(パース)し、当該HTMLファイルに定義されている表示要素の構成(表示構成)等を示すDOMツリーを生成する。当該DOMツリーはメモリ装置103に記憶される。HTMLファイルの解析の進行に応じて、コンテンツ描画部112は、HTMLファイルから参照されているコンテンツ(以下、「参照コンテンツ」という。)の取得要求を、コンテンツサーバ30に送信する(S115)。参照コンテンツは、例えば、CSSファイルやスクリプトファイル等である。続いて、コンテンツサーバ30は、要求されたコンテンツを返信する(S116)。続いて、コンテンツ描画部112は、返信されたCSSファイル又はスクリプトファイルを解釈する(S117)。例えば、CSSファイルに基づいて、DOMツリーによって示される表示要素のレイアウト(配置位置)が特定される。なお、参照コンテンツには、静止画コンテンツや動画コンテンツ等が含まれてもよい。
ステップS115〜S117は、参照コンテンツ分繰り返される。全ての参照コンテンツに関してS115〜S117が実行されると、携帯端末10の表示装置106には、HTMLファイル及び参照コンテンツが構成するWebコンテンツに基づく画像が表示される。当該Webコンテンツの表示のためにメモリ装置103に読み込まれている情報を、以下、「コンテンツ表示情報」という。コンテンツ表示情報には、DOMツリー、スタイル定義、及びスクリプト定義等が含まれる。スタイル定義は、DOMツリーが示す表示要素のレイアウトに関する定義であり、CSSファイルから読み込まれる。スクリプト定義は、スクリプトファイルから読み込まれた、スクリプトに関する定義である。
なお、HTMLファイルには、ステップS501〜S513の実行によって、同期データ配信スクリプトへの参照情報が含まれている。したがって、ステップS115〜S116において、同期データ配信スクリプトも参照コンテンツの一つとして取得され、読み込まれる。その結果、携帯端末10は、イベントハンドラ抽出部113、スクリプト生成部114、DOM抽出部115、スタイル抽出部116、変更監視部117、データ配信部118、及びイベント受信部119として機能可能となる。
図17は、携帯端末における同期データ配信スクリプトの読み込みに応じて実行される処理手順の一例を説明するためのシーケンス図である。
ステップS121において、CPU104は、同期データ配信スクリプトをメモリ装置103に読み込む。同期データ配信スクリプトは、例えば、予め補助記憶装置102に記憶されている。また、同期データ配信スクリプトの読み込みは、例えば、携帯端末10に対する操作に応じて実行されてもよい。なお、図17において、ステップS121以降から伸びる、携帯端末10に対応付く白抜きの軸は、同期データ配信スクリプトが、CPU104に実行させることにより実現されるイベントハンドラ抽出部113、スクリプト生成部114、DOM抽出部115、スタイル抽出部116、変更監視部117、データ配信部118、及びイベント受信部119に対応する。
ステップS122において、コンテンツ描画部112によって管理されるコンテンツ表示情報から、DOMデータ、スタイル定義、及びイベントハンドラが抽出される。DOMデータは、メモリ装置103内のDOMツリーが文字列化されたものであり、DOM抽出部115によって抽出される。スタイル定義データは、メモリ装置103内のスタイル定義が文字列化されたものであり、スタイル抽出部116によって抽出される。イベントハンドラは、イベントハンドラ抽出部113によって、コンテンツ表示情報を構成するスクリプト定義から抽出される。イベントハンドラは、イベントの発生に応じて実行すべき処理がスクリプトによって定義されたものである。
図18は、DOMデータ及びスタイル定義データの例を示す図である。図18には、DOMデータm1及びスタイル定義データc1が示されている。図18より明らかなように、DOMデータm1は、HTMLの形式を有する。また、スタイル定義データc1は、CSSの形式を有する。したがって、DOMデータm1及びスタイル定義データc1は、一般的なWebブラウザによって解釈可能なデータ形式を有する。
続いて、スクリプト生成部114は、抽出されたイベントハンドラに基づいて、イベント通知スクリプトを生成する(S123)。イベント通知スクリプトは、監視対象とするイベントの検知に応じて、当該イベントの発生を、携帯端末10に通知させるための定義がなされたスクリプトをいい、表示端末20において利用される。すなわち、表示端末20において、Webコンテンツに関して定義されたイベントハンドラに対応するイベントが発生した場合、当該イベントハンドラに関して当初に定義された処理ではなく、当該イベントの発生を携帯端末10に通知するための処理が実行される。
図19は、イベントハンドラに基づくイベント通知スクリプトの生成例を示す図である。図19には、抽出されたイベントハンドラeh11及びeh12と、これらのイベントハンドラに基づいて生成されるイベント通知スクリプトsc1とが示されている。なお、イベントハンドラeh11及びeh12の定義内容は、便宜的なものである。
イベントハンドラeh11の定義内容は、「targetがクリックされたら、to要素にクリックされた座標値を表示する」というものである。イベントハンドラeh12の定義内容は、「form上でキーが押されたら、通信等を実行する」というものである。
イベント通知スクリプトsc1には、イベントハンドラeh11に基づいて、イベントハンドラeh21が含められ、イベントハンドラeh12に基づいて、イベントハンドラeh22が含められる。イベントハンドラeh21の定義内容は、「targetがクリックされたら、イベントが発生した要素及びイベントの内容を通知先に送信する」というものである。また、イベントハンドラeh22の定義内容は、「form上でキーが押されたら、イベントが発生した要素及びイベントの内容を通知先に送信する」というものである。このように、イベント通知スクリプトsc1には、スクリプト定義から抽出されたイベントハンドラごとに、当該イベントハンドラが監視対象とするイベントの発生を通知先に通知するイベントハンドラが含められる。
イベント通知スクリプトsc1には、また、通知先に関する定義d1も含められる。定義d1では、通知先(sender)のURLが設定されている。当該URLは、本実施の形態において、携帯端末10に対するものである。
イベント通知スクリプトsc1には、更に、form(フォーム)要素のうち、イベントハンドラが設定されていない要素に対するイベントハンドラeh23も含められる。イベントハンドラeh23の定義内容は、「当該要素に関するイベントを、通知先に送信する」というものである。イベントハンドラeh23は、例えば、表示端末20において表示されるWebコンテンツのフォーム上におけるテキストボックスに対する1文字ごとの入力を、携帯端末10における表示状態に反映させるためのものである。
続いて、データ配信部118は、コンテンツ識別子を生成する(S124)。コンテンツ識別子は、仮に、各表示端末20が、複数の携帯端末10のそれぞれからのWebコンテンツを並行して表示している場合に、各表示端末20が、各Webコンテンツと各携帯端末10との対応関係を識別可能とするための識別情報である。すなわち、表示端末20には、複数の携帯端末10に表示されているWebコンテンツが、同時期に表示されてもよい。この場合、表示端末20においては、一つのWebコンテンツが最前面に表示され、他のWebコンテンツが、裏側に隠れていてもよい。
続いて、データ配信部118は、各表示端末20に対して、コンテンツ識別子、DOMデータm1、スタイル定義データc1、イベント通知スクリプトsc1、及び表示位置情報等を配信する(S125)。コンテンツ識別子、DOMデータm1、及びスタイル定義データc1、及びイベント通知スクリプトsc1は、各表示端末20に対して同じものが送信される。表示位置情報とは、各表示端末20において、Webコンテンツに基づく画像が表示される表示領域の表示位置及びサイズを示す情報である。表示位置情報は、例えば、当該表示領域の左上頂点、幅、及び高さを含む。Webコンテンツの表示位置は、表示端末20ごとに異なる。換言すれば、各表示端末20の表示位置を異ならせることで、統合ディスプレイD2を実現することができる。したがって、表示位置情報は、表示端末20ごとに異なる。表示位置情報は、例えば、同期データ配信スクリプト内に定義されている。また、各表示端末20のアドレス情報も、同期データ配信スクリプト内に定義されていてもよい。
図20は、表示位置情報を説明するための図である。図20には、図13に示したディスプレイD2Rが示されている。すなわち、図20には、表示端末20Rに送信される表示位置情報の例が示されている。当該表示位置情報は、左上頂点の座標が(−200,100)であり、幅が400、高さが200である。ここで、左上頂点の座標が、ディスプレイD2Rの座標系の範囲外とされることにより、画像500の左半分は、ディスプレイD2Rにおいて非表示となる。その結果、ディスプレイD2Rには、画像500の右半分が表示される。同様の原理で、ディスプレイD2Lについては、画像500の左半分が表示されるように、表示位置が決定される。したがって、表示位置情報を調整することで、各表示端末20に、画像500の全部を表示させることもできる。または、各表示端末20に表示される画像の一部が、相互に重複するように、表示位置が決定されてもよい。
なお、ステップS125において送信されるDOMデータm1は、携帯端末10における現在のWebコンテンツの表示状態を示すものである。したがって、表示状態が変化している場合、DOMデータm1の内容は、当該Webコンテンツにおいて当初ダウンロードされたHTMLファイルの定義内容と異なる。すなわち、各表示端末20には、現在の表示状態を再現させるため、HTMLファイルではなく、DOMデータm1が送信される。一方、スタイル定義データは、固定的又は静的な情報を含む。したがって、スタイル定義データに関しては、当初ダウンロードされたものがそのまま表示端末20に送信されてもよい。
その後、変更監視部117は、メモリ装置103内のDOMツリーの変更を監視する。DOMツリーの変更は、Webコンテンツの表示状態の変化によって発生する。換言すれば、DOMツリーが変更されることにより、Webコンテンツの表示状態が変化する。したがって、変更監視部117は、Webコンテンツの表示状態の変化を監視しているともいえる。
一方、各表示端末20のデータ受信部211は、データ配信部118によって送信された、コンテンツ識別子、DOMデータm1、スタイル定義データc1、イベント通知スクリプトsc1、及び表示位置情報等を受信する。続いて、Webコンテンツの描画が、コンテンツ描画部215に要求される。当該要求には、コンテンツ識別子、表示位置情報、DOMデータm1、及びスタイル定義データc1が含まれる(S131)。コンテンツ描画部215は、表示位置情報の示す位置及びサイズの表示領域に、DOMデータm1及びスタイル定義c1に基づいて、コンテンツ描画部112と同様の解析処理を実行する。その結果、Webコンテンツに基づく画像が表示端末20のディスプレイに表示される。すなわち、携帯端末10に表示されている画像500が、表示端末20に表示される。但し、表示位置情報に応じて、画像500のうち、各表示端末20に表示される部分は異なりうる。なお、コンテンツ描画部215は、DOMデータm1に基づいてメモリ装置に生成されるDOMツリーに、コンテンツ識別子を関連付けておく。
続いて、イベントハンドラ設定部213は、イベント通知スクリプトsc1を実行する(S132)。その結果、イベント通知スクリプトs1に含まれる各イベントハンドラが、コンテンツ描画部215に設定される(S133)。
その後、携帯端末10及び表示端末20は、イベントの発生を待機する。例えば、各端末は、ユーザによる操作を待機する。
続いて、Webコンテンツに基づいて表示された画像に対するユーザによる操作に応じて実行される処理手順について説明する。図21は、Webコンテンツに基づいて表示された画像に対するユーザによる操作に応じて実行される処理手順の一例を説明するためのシーケンス図である。
例えば、いずれかの表示端末20のディスプレイ(タッチパネル)がタッチされる等により、表示されている画像が操作されると(S141)、コンテンツ描画部215は、当該操作に対応したイベントを発生させる(S142)。当該イベントは、当該イベントに対応するイベントハンドラによって検知(捕捉)される。イベントの検知に応じ、イベント送信部216は、当該イベントハンドラの定義に基づいて、イベントの対象とされたDOM要素及びイベントの種別を示す情報を含むイベント発生通知を、通知先(携帯端末10)に送信する(S143)。携帯端末10のイベント受信部119は、当該イベント発生通知を受信する。変更監視部117は、当該イベント発生通知の受信を検知すると、当該イベント発生通知によって通知されたイベントを、擬似的に発生させる(S144)。擬似的に発生されたイベントは、コンテンツ描画部112に通知される。
コンテンツ描画部112は、スクリプト定義に含まれているイベントハンドラの中で、擬似的に発生された当該イベントに対応するイベントハンドラの定義に基づいて、DOMツリーを変更する(S151)。DOMツリーの変更は、変更監視部117によって検知される(S152)。変更監視部117は、変更前後のDOMツリーの差分を示す情報を含む差分データを抽出する(S153)。
図22は、差分データの例を示す図である。図22に示される差分データdf1において、記述df11は、変更対象の要素(以下、「対象要素」という。)を示す。記述df12は、対象要素の5番目の子要素として、aタグが挿入されたことを示す。記述df13は、対象要素の3番目の子要素が削除されたことを示す。記述df14は、対象要素のsrc属性の値が、「./hoge.png」に変更されたことを示す。
続いて、データ配信部118は、DOMツリーが変更されたWebコンテンツに対するコンテンツ識別子と、差分データdf1とを、各表示端末20に配信する(S154)。各表示端末20のデータ受信部211は、当該コンテンツ識別子及び差分データdf1を受信する。
続いて、表示状態適用部214は、当該コンテンツ識別子及び差分データdf1をコンテンツ描画部215に適用する(S155)。コンテンツ描画部215は、当該コンテンツ識別子に関連付けられているDOMツリーを、差分データdf1に基づいて変更する。その結果、各表示端末20における表示状態も変化する。
なお、ステップS141〜S155は、表示端末20側において、画像が操作されるたびに実行される。したがって、表示端末20側における操作に応じて、携帯端末10における表示状態と、表示端末20における表示状態とが変化する。また、携帯端末10において、画像が操作されるたびに、ステップS151〜S155が実行される。すなわち、この場合、携帯端末10において、擬似的なイベントではなく、真のイベントが発生し、当該真のイベントに応じて、ステップS151以降が実行される。したがって、携帯端末10側において操作が行われた場合も、携帯端末10における表示状態と、表示端末20における表示状態とが変化する。このように、本実施の形態によれば、携帯端末10と各表示端末20とのいずれの端末において操作が行われた場合であっても、全ての端末間において、表示状態を同期させることができる。
続いて、携帯端末10及び表示端末20が実行する処理について、更に詳細に説明する。まず、携帯端末10が実行する処理について説明する。
図23は、携帯端末によるHTMLの解析処理の処理手順の一例を説明するためのフローチャートである。図23は、図16のステップS114以降に関して携帯端末10が実行する処理を詳細に示すものである。
ステップS203において、コンテンツ描画部112は、HTMLファイルの定義内容を解析(パース)し、DOMツリーを構築する。DOMツリーは、メモリ装置103に記憶される。
続いて、HTMLファイルから参照されている参照コンテンツごとに、ループ処理L1が実行される。ループ処理L1のステップS204において、コンテンツ描画部112は、参照コンテンツを取得する。続いて、コンテンツ取得部111aは、取得された参照コンテンツの種別に応じて処理を分岐させる(S205)。取得された参照コンテンツが、スクリプトファイルである場合、コンテンツ描画部112は、当該スクリプトファイルに定義されているスクリプトを実行する(S206)。一方、取得された参照コンテンツが、CSSファイルである場合、コンテンツ描画部112は、当該CSSファイルに含まれているスタイル定義を、既に取得されているスタイル定義に追加する(S207)。
ループL1が終了すると、コンテンツ描画部112は、DOMツリーを構成する表示要素を、スタイル定義にしたがって描画する(S208)。その結果、Webコンテンツに基づく画像が、表示装置106に表示される。
続いて、図17の処理に関して携帯端末10が実行する処理について詳細に説明する。図24は、同期データ配信スクリプトの読み込みに応じて携帯端末が実行する処理手順の一例を説明するためのフローチャートである。
ステップS214において、同期データ配信スクリプトは、初期情報生成処理をCPU104に実行させる。初期情報生成処理では、DOMデータm1、スタイル定義データc1、イベント通知スクリプトsc1、及びコンテンツ識別子等が生成される。
続いて、データ配信部118は、各表示端末20に対して、コンテンツ識別子、DOMデータm1、スタイル定義データc1、イベント通知スクリプトsc1、及び表示位置情報等を配信する(S215)。
続いて、変更監視部117は、DOMツリーを構成する全てのDOMに対して、DOMツリーの変更を監視するためのイベントハンドラを設定する(S216)。例えば、Web標準で規定されている、DOM変更時に発生するMutationEventを監視するイベントハンドラが設定されてもよい。例えば、DOM要素の追加又は削除等が発生した場合、MutationEventのうちDOMSubtreeModifiedイベントが発生する。また、DOM要素の属性が変更された場合、DOMAttrModifiedイベントが発生する。MutationEventについては、例えば、「https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Mutation_events」において詳細に説明されている。なお、定期的にDOMツリーをチェックし、差分の有無を判定することにより、DOMツリーの変更が検知されてもよい。
続いて、変更監視部117は、DOM要素のうちのフォーム要素に対して、フォーム値の変更を監視するためのイベントハンドラを設定する(S217)。続いて、変更監視部117は、DOM要素のうちのvideo要素に対して、動画コンテンツの再生状態の変更を監視するためのイベントハンドラを設定する(S217)。再生状態の変更とは、再生の開始、再生の一時停止、再生の停止、及びシーク等である。なお、video要素とは、HTML5において追加されたvideoタグに係る要素をいう。HTML5では、videoタグを使用することで、プラグイン等をインストールすることなく、動画コンテンツの再生等を行うことができる。
続いて、変更監視部117は、各表示端末20からのイベント発生通知の受信を監視するためのイベントハンドラを設定する(S219)。続いて、変更監視部117は、イベント待機処理を実行する(S220)。すなわち、変更監視部117は、ステップS216〜S219において設定したイベントハンドラに関するイベントの発生を待機する。
続いて、ステップS214の詳細について説明する。図25は、初期情報生成処理の処理手順の一例を説明するためのフローチャートである。
ステップS231において、DOM抽出部115は、コンテンツ描画部112を介して、コンテンツ表示情報からDOMツリーを抽出し、当該DOMツリーを文字列化してDOMデータm1を生成する。続いて、DOM抽出部115は、DOMツリーを構成するDOM要素の中に、video要素が有れば、DOMデータ内において、当該video要素に係るパス名を、絶対パス名に変換する(S232)。当該video要素に係るパス名とは、当該video要素のsrc属性の値として設定されているパス名、又は当該video要素内のsourceタグのsrc属性の値として設定されているパス名である。当該パス名が絶対パス名に変換されるのは、表示端末20において、当該パス名に係る動画コンテンツにアクセス可能とするためである。すなわち、動画コンテンツは、各表示端末20においてダウンロードされる。
続いて、スタイル抽出部116は、コンテンツ描画部112を介して、コンテンツ表示情報からスタイル定義を抽出し、当該スタイル定義を文字列化してスタイル定義データc1を生成する(S233)。
続いて、DOMツリーを構成するDOM要素ごとにループ処理L2が実行される。以下、ループ処理L2において処理対象とされているDOM要素を、「対象要素」という。
ステップS234において、イベントハンドラ抽出部113は、対象要素に設定されたイベントハンドラの監視対象イベントを抽出する(S234)。続いて、イベントハンドラ抽出部113は、対象要素がフォーム要素であるか否かによって処理を分岐させる(S235)。対象要素がフォーム要素である場合(S235でYes)、ステップS236に進む。対象要素がフォーム要素でない場合(S235でNo)、ステップS237に進む。
ステップS236において、イベントハンドラ抽出部113は、対象要素のフォーム値の変更を監視対象イベントとするイベントハンドラが対象要素に設定されていなければ、当該監視対象イベントを、ステップS234における抽出結果に追加する。ステップS236の実行後、ステップS239に進む。
ステップS237において、イベントハンドラ抽出部113は、対象要素がvideo要素であるか否かによって処理を分岐させる。対象要素がvideo要素である場合(S237でYes)、ステップS238に進む。対象要素がvideo要素でない場合(S237でNo)、ステップS239に進む。
ステップS238において、イベントハンドラ抽出部113は、対象要素における動画の再生状態の変更を示すイベント(再生の開始イベント、再生の一時停止イベント、再生の停止イベント、又はシークイベント等)を監視対象とするイベントハンドラが対象要素に設定されていなければ、当該監視対象イベントを、ステップS234における抽出結果に追加する。ステップS238の実行後、ステップS239に進む。
ステップS239において、スクリプト生成部114は、抽出結果に含まれている監視対象イベントを、携帯端末10に通知させるためのイベントハンドラを、イベント通知スクリプトsc1に追加する(S239)。
ループ処理L2が終了すると、データ配信部118は、コンテンツ識別子を生成する(S240)。コンテンツ識別子は、例えば、乱数を利用して生成されてもよい。又は、携帯端末10ごとの識別情報(例えば、アドレス情報等)を用いて生成されてもよい。また、携帯端末10において同時に表示可能なWebコンテンツが一つである場合、携帯端末10ごとの識別情報が、そのままコンテンツ識別子とされてもよい
続いて、図24のステップS220の詳細について説明する。図26は、イベント待機処理の処理手順の一例を説明するためのフローチャートである。
DOMツリーの変更を監視するためのイベントハンドラが呼び出されると(S251でYes)、変更監視部117は、当該イベントハンドラによって検知されたイベントに関する情報(以下、「変化通知情報」という。)から、差分データを抽出する(S252)。すなわち、MutationEvent内には、差分データが含まれている。
続いて、データ配信部118は、コンテンツ識別子及び差分データを、各表示端末20に配信する(S253)。
また、いずれかの表示端末20からのイベント発生通知の受信を監視するためのイベントハンドラが呼び出されると(S261でYes)、変更監視部117は、当該イベント発生通知によって通知された情報に基づいて、擬似的なイベントを生成する(S262)。続いて、当該イベント発生通知によって示されるイベントの対象とされたDOM要素に対して、生成したイベントを発生させる(S263)。その結果、携帯端末10側においてDOMツリーが変更される。当該DOMツリーの変更は、ステップS251において検知される。したがって、ステップS262に続いて、ステップS252以降が実行される。すなわち、ステップS251において検知されるDOMツリーの変更は、携帯端末10における操作に起因するものと、表示端末20における操作に起因するものとが有る。
また、フォーム要素のフォーム値の変更を監視するためのイベントハンドラが呼び出されると(S271でYes)、変更監視部117は、フォーム値が変化したフォーム要素(以下、「対象要素」という。)の識別子と、変更後のフォーム値とを対象要素から抽出する(S272)。フォーム要素の識別子は、フォーム上における何番目の要素であるかを示す値でもよい。又は、CSSのセレクタ若しくはxpath等が、当該識別子として用いられてもよい。続いて、データ配信部118は、フォーム値の変更命令を、各表示端末20に配信する(S273)。当該命令は、コンテンツ識別子、並びに対象要素の識別子及びフォーム値を含む。その結果、各表示端末20において、対象要素のフォーム値が変化する。
また、video要素の動画の再生状態の変更を監視するためのイベントハンドラが呼び出されると(S281でYes)、変更監視部117は、当該video要素(以下、「対象要素」という。)の識別子と、変更後の動画の再生状態を示す情報とを、対象要素から抽出する(S282)。続いて、データ配信部118は、動画の再生状態の変更命令を、各表示端末20に配信する(S283)。当該命令は、コンテンツ識別子、並びに対象要素の識別子及び動画の再生状態を示す情報等を含む。その結果、各表示端末20において、対象要素の動画の再生状態が変化する。
続いて、表示端末20が実行する処理について説明する。図27は、同期データ受信スクリプトが表示端末に実行させる処理手順の一例を説明するためのフローチャートである。図27では、同期データ受信スクリプトの読み込みは既に実行されていることとする。
データ受信部211は、携帯端末10からの情報の受信を待機している(S301)。携帯端末10から何らかの情報が受信されると(S301でYes)、データ受信部211は、受信された情報が初期情報であるか否かを判定する(S302)。初期情報は、図24のステップS215において、携帯端末10から各表示端末20に配信される、コンテンツ識別子、DOMデータm1、スタイル定義データc1、イベント通知スクリプトsc1、及び表示位置情報等である。
初期情報が受信された場合(S302でYes)、表示領域生成部212は、表示位置情報が示す位置及びサイズのインラインフレーム(iframe)を、コンテンツ描画部215に生成させる(S303)。すなわち、本実施の形態では、上記における表示領域の一例として、Webブラウザのウィンドウではなく、インラインフレームが用いられる。インラインフレームは、或るWebコンテンツの中に、別のWebコンテンツを表示するために用いられるフレームである。インラインフレーム内は、インラインフレーム外とは独立して画像を表示できるため、同じサイズのインラインフレームであれば、同じDOMデータ、スタイル定義データに基づいて同じ表示状態の画像が再現される。したがって、例えば、統合ディスプレイD2(図13)を実現する際に、各ディスプレイの画像を滑らかに接続できる可能性が高いという利点が有る。但し、インラインフレームの代わりに、Webブラウザのウィンドウが生成されてもよい。
続いて、表示状態適用部214は、コンテンツ識別子、DOMデータm1、及びスタイル定義c1を、コンテンツ描画部215(インラインフレーム)に適用する(S304)。その結果、Webコンテンツの画像が、インラインフレーム内に表示される。また、当該インラインフレームに、当該コンテンツ識別子が関連付けられる。なお、DOMデータm1に基づいて再現されるDOMツリーにvideo要素が含まれている場合、当該video要素に係る絶対パス名に基づいて、動画コンテンツが取得され、再生される。
続いて、イベントハンドラ設定部213は、イベント通知スクリプトsc1を実行する(S305)。イベント通知スクリプトsc1は、表示端末20を、イベント送信部216として機能させる。
一方、受信された情報が初期情報でない場合(S302でNo)、データ受信部211は、受信されたのがフォーム値の変更命令であるか否かを判定する(S306)。フォーム値の変更命令は、図26のステップS273において送信される。
フォーム値の変更命令が受信された場合(S306でYes)、表示状態適用部214は、当該変更命令に含まれているコンテンツ識別子に関連付けられているインラインフレームに表示されているフォーム要素のうち、当該変更命令に含まれている識別子に係るフォーム要素(以下、「対象要素」という。)に対する、フォーム値の変更を監視するためのイベントハンドラの設定を解除する(S307)。続いて、表示状態適用部214は、対象要素に対して、当該変更命令に含まれているフォーム値を適用する(S308)。なお、ステップS307の趣旨は、ステップS308の実行により、当該フォーム値の変更が、携帯端末10に通知され、更に、携帯端末10から当該フォーム値の変更が通知されるといった、イベント通知のループの発生を回避するためのである。
続いて、表示状態適用部214は、ステップS307において設定が解除されたイベントハンドラを、対象要素に再設定する(S309)。
動画コンテンツの再生状態の変更命令が受信された場合(S310でYes)、表示状態適用部214は、当該変更命令に含まれているコンテンツ識別子に関連付けられているインラインフレームに表示されているvideo要素のうち、当該変更命令に含まれている識別子に係るvideo要素(以下、「対象要素」という。)に対する、動画コンテンツの再生状態の変更を監視するためのイベントハンドラの設定を解除する(S311)。なお、ステップS311の趣旨は、ステップS307と同様である。続いて、表示状態適用部214は、対象要素に対して、当該変更命令に含まれている動画コンテンツの再生状態を適用する(S312)。
続いて、表示状態適用部214は、ステップS311において設定が解除されたイベントハンドラを、対象要素に再設定する(S313)。
また、受信された情報が、差分データである場合(S310でNo)、表示状態適用部214は、差分データと共に受信されたコンテンツ識別子に係るインラインフレームに対して、当該差分データを適用する(S314)。その結果、インラインフレーム内の画像の表示状態が、携帯端末10の表示状態に同期される。
図28は、イベント通知スクリプトが表示端末に実行させる処理手順の一例を説明するためのフローチャートである。
イベント送信部216は、イベントの発生を待機している(S321)。イベント通知スクリプトに含まれるいずれかのイベントハンドラが呼び出されると(S321でYes)、イベント送信部216は、当該イベントハンドラの定義に従って、通知先として指定されている携帯端末10に、イベント発生通知を送信する。イベント発生通知には、イベントの対象とされたDOM要素を示す情報及びイベントの種別を示す情報等が含まれる
なお、本実施の形態では、携帯端末10と各表示端末20とが直接的に通信する例について説明したが、携帯端末10と各表示端末20との通信は、シグナリングサーバ、STUN(Simple Traversal of UDP through NATs)サーバ、又はTURN(Traversal Using Relay NAT)サーバ等によって仲介又は中継されてもよい。
また、本実施の形態では、イベントハンドラ抽出部113によってイベントハンドラが抽出され、抽出されたイベントハンドラに基づいて、イベント通知スクリプトsc1が生成される例を示した。しかし、これらの処理は省略されてもよい。例えば、各表示端末20は、全てのDOM要素に対する全てのイベントを監視し、全てのイベントの発生を携帯端末10に通知するようにしてもよい。但し、この場合、全てのイベントが携帯端末10に通知されるため、通信量が増加する可能性が有る。換言すれば、イベントハンドラ抽出部113によってイベントハンドラが抽出されることにより、表示端末20から携帯端末10に通知されるイベントを、必要なものに限定することができ、通信量の増加を抑制することができる。
また、本実施の形態では、携帯端末10のスクリプト生成部114が、イベント通知スクリプトsc1を生成する例を示したが、当該スクリプトの生成は、表示端末20によって行われてもよい。この場合、携帯端末10は、イベント通知スクリプトsc1を生成するために必要な情報を、各表示端末20に配信するようにしてもよい。斯かる情報として、イベントハンドラ抽出部113による抽出結果が挙げられる。
また、本実施の形態では、説明の便宜上、携帯端末10と表示端末20との間でWebコンテンツの表示状態が同期される例を示したが、Webコンテンツが同期される装置は、同じ種類の装置であってもよい。例えば、表示端末20の代わりに携帯端末10が用いられてもよい。また、携帯端末10の代わりに、PC(Personal Computer)等が用いられてもよい。
また、携帯端末10としての位置付けの端末は、表示装置106を有していなくてもよい。すなわち、当該端末は、ユーザがWebコンテンツの閲覧に利用する端末でなくてもよい。斯かる場合であっても、複数の表示端末20間において、表示状態を同期させることができる。
上述したように、第三の実施の形態によれば、複数の端末間において、いずれの端末が操作対象とされた場合でも、同じWebコンテンツの表示状態の同期を可能とすることができる。
また、携帯端末10又は表示端末20において実行される処理は、同期データ配信スクリプト、同期データ受信スクリプト、又はイベント通知スクリプト等のスクリプトによって実現される。したがって、各端末は、汎用的なWebブラウザの機能を有していれば、本実施の形態を実施することができる。
また、本実施の形態によれば、VNC(Virtual Network Computing)等のリモートデスクトップ技術と異なり、ストリーミングによるデータ配信は行われず、DOMデータやスタイル定義等の構造データが配信される。したがって、データ処理やネットワーク通信の負荷の増加を抑制することができる。また、表示潰れ等、解像度の相違に基づく問題の発生の可能性を低減することができる。
また、一つのWebコンテンツに基づいて、表示端末20用のイベントハンドラが自動生成されるため、携帯端末10用と表示端末20用とのそれぞれのWebコンテンツを開発する必要性を低減することができる。
なお、第三の実施の形態は、第1層スクリプト及び第2層スクリプトの用途の一例に過ぎない。ユーザの状況に応じて、第三の実施の形態と異なる処理を携帯端末10に実行させるスクリプトの参照情報が、HTMLファイルに挿入されてもよい。
なお、上記各実施の形態において、携帯端末10は、情報処理端末の一例である。情報管理サーバ40は、情報管理装置の一例である。HTMLファイルは、コンテンツデータの一例である。アプリ情報取得部121は、受信部の一例である。コンテンツ取得部111は、取得部及び請求項4の第一の受信部の一例である。コンテンツURLは、第一のURLの一例である。第1層スクリプトURL及び第2層スクリプトURLは、第二のURLの一例である。コンテンツサーバ30は、コンテンツ管理装置の一例である。アプリ情報取得部33は、第二の受信部の一例である。コンテンツ管理部31は、返信部の一例である。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
以上の説明に関し、更に以下の項を開示する。
(付記1)
相互にネットワークを介して接続される情報処理端末と情報管理装置とを含む情報処理システムであって、
前記情報処理端末は、
当該情報処理端末に入力される情報又は当該情報処理端末によって検知される情報に基づく識別情報を前記情報管理装置に送信して、前記識別情報に対応付けられて前記情報管理装置に記憶されている第一のURLと、前記第一のURLに係るコンテンツデータに関する処理を前記情報処理端末に実行させるスクリプトに対する1以上の第二のURLとを、前記情報管理装置から受信する受信部と、
前記受信部によって受信された前記第一のURLに係るコンテンツデータを、ネットワークを介して取得する取得部と、
前記取得部によって取得されたコンテンツデータに、前記第二のURLへの参照情報を挿入する挿入部と、
を有することを特徴とする情報処理システム。
(付記2)
前記挿入部は、1以上の前記第二のURLのうち、前記取得部によって取得されたコンテンツデータに参照情報が含まれていない前記第二のURLへの参照情報を、当該コンテンツデータに挿入する、
ことを特徴とする付記1記載の情報処理システム。
(付記3)
前記挿入部は、前記受信部によって受信された1以上の前記第二のURLの中から、当該情報処理端末においてユーザによって選択された前記第二のURLへの参照情報を、前記取得部によって取得されたコンテンツデータに挿入する、
ことを特徴とする付記1又は2記載の情報処理システム。
(付記4)
相互にネットワークを介して接続される情報処理端末と、コンテンツ管理装置と、情報管理装置とを含む情報処理システムであって、
前記情報処理端末は、
当該情報処理端末に入力される情報又は当該情報処理端末によって検知される情報に基づく識別情報と、第一のURLとを前記コンテンツ管理装置に送信して、前記第一のURLに係るコンテンツデータを前記コンテンツ管理装置から受信する第一の受信部を有し、
前記コンテンツ管理装置は、
前記情報処理端末から受信した前記第一のURL及び前記識別情報を前記情報管理装置に送信して、前記識別情報及び前記第一のURLに対応付けられて前記情報管理装置に記憶されている、前記第一のURLに係るコンテンツデータに関する処理を前記情報処理端末に実行させるスクリプトに対する1以上の第二のURLを、前記情報管理装置から受信する第二の受信部と、
当該コンテンツ管理装置が記憶するコンテンツデータの中で、前記第一のURLに係るコンテンツデータに、前記第二のURLへの参照情報を挿入する挿入部と、
前記挿入部によって前記参照情報が挿入されたコンテンツデータを、前記情報処理端末に返信する返信部と、
を有することを特徴とする情報処理システム。
(付記5)
情報管理装置にネットワークを介して接続される情報処理端末であって、
当該情報処理端末に入力される情報又は当該情報処理端末によって検知される情報に基づく識別情報を前記情報管理装置に送信して、前記識別情報に対応付けられて前記情報管理装置に記憶されている第一のURLと、前記第一のURLに係るコンテンツデータに関する処理を前記情報処理端末に実行させるスクリプトに対する1以上の第二のURLとを、前記情報管理装置から受信する受信部と、
前記受信部によって受信された前記第一のURLに係るコンテンツデータを、ネットワークを介して取得する取得部と、
前記取得部によって取得されたコンテンツデータに、前記第二のURLへの参照情報を挿入する挿入部と、
を有することを特徴とする情報処理端末。
(付記6)
前記挿入部は、1以上の前記第二のURLのうち、前記取得部によって取得されたコンテンツデータに参照情報が含まれていない前記第二のURLへの参照情報を、当該コンテンツデータに挿入する、
ことを特徴とする付記5記載の情報処理端末。
(付記7)
前記挿入部は、前記受信部によって受信された1以上の前記第二のURLの中から、当該情報処理端末においてユーザによって選択された前記第二のURLへの参照情報を、前記取得部によって取得されたコンテンツデータに挿入する、
ことを特徴とする付記5又は6記載の情報処理端末。
(付記8)
情報処理端末と情報管理装置とにネットワークを介して接続されるコンテンツ管理装置であって、
前記情報処理端末から受信した、前記情報処理端末に入力される情報又は当該情報処理端末によって検知される情報に基づく識別情報と、第一のURLを前記情報管理装置に送信して、前記識別情報及び前記第一のURLに対応付けられて前記情報管理装置に記憶されている、前記第一のURLに係るコンテンツデータに関する処理を前記情報処理端末に実行させるスクリプトに対する1以上の第二のURLを、前記情報管理装置から受信する第二の受信部と、
当該コンテンツ管理装置が記憶するコンテンツデータの中で、前記第一のURLに係るコンテンツデータに、前記第二のURLへの参照情報を挿入する挿入部と、
前記挿入部によって前記参照情報が挿入されたコンテンツデータを、前記情報処理端末に返信する返信部と、
を有することを特徴とする情報処理システム。
(付記9)
相互にネットワークを介して接続される情報処理端末と情報管理装置とを含む情報処理システムにおける情報処理方法であって、
前記情報処理端末が、
当該情報処理端末に入力される情報又は当該情報処理端末によって検知される情報に基づく識別情報を前記情報管理装置に送信して、前記識別情報に対応付けられて前記情報管理装置に記憶されている第一のURLと、前記第一のURLに係るコンテンツデータに関する処理を前記情報処理端末に実行させるスクリプトに対する1以上の第二のURLとを、前記情報管理装置から受信し、
受信された前記第一のURLに係るコンテンツデータを、ネットワークを介して取得し、
取得されたコンテンツデータに、前記第二のURLへの参照情報を挿入する、
処理を実行することを特徴とする情報処理方法。
(付記10)
前記挿入する処理は、1以上の前記第二のURLのうち、前記取得されたコンテンツデータに参照情報が含まれていない前記第二のURLへの参照情報を、当該コンテンツデータに挿入する、
ことを特徴とする付記9記載の情報処方法。
(付記11)
前記挿入する処理は、前記受信する処理において受信された1以上の前記第二のURLの中から、当該情報処理端末においてユーザによって選択された前記第二のURLへの参照情報を、前記取得されたコンテンツデータに挿入する、
ことを特徴とする付記9又は10記載の情報処理方法。
(付記12)
相互にネットワークを介して接続される情報処理端末と、コンテンツ管理装置と、情報管理装置とを含む情報処理システムにおける情報処理方法であって、
前記情報処理端末が、
当該情報処理端末に入力される情報又は当該情報処理端末によって検知される情報に基づく識別情報と、第一のURLとを前記コンテンツ管理装置に送信して、前記第一のURLに係るコンテンツデータを前記コンテンツ管理装置から受信する第一の受信部を有し、
前記コンテンツ管理装置が、
前記情報処理端末から受信した前記第一のURL及び前記識別情報を前記情報管理装置に送信して、前記識別情報及び前記第一のURLに対応付けられて前記情報管理装置に記憶されている、前記第一のURLに係るコンテンツデータに関する処理を前記情報処理端末に実行させるスクリプトに対する1以上の第二のURLを、前記情報管理装置から受信し、
当該コンテンツ管理装置が記憶するコンテンツデータの中で、前記第一のURLに係るコンテンツデータに、前記第二のURLへの参照情報を挿入し、
前記参照情報が挿入されたコンテンツデータを、前記情報処理端末に返信する、
処理を実行することを特徴とする情報処理方法。