説明

GUI処理装置、GUI処理方法およびGUI処理プログラム

【課題】異なる操作方法、レイアウト、デザインを有する複数のGUI画面を、表示データの整合性を維持しつつ、同期して表示できるようにする。
【解決手段】GUI処理装置は、第1のGUI表示装置のGUI画面を操作するための第1のGUI操作情報を受信する操作情報受信部と、前記第1のGUI表示装置のGUI画面を前記第1のGUI操作情報に基づいて操作した場合に、該GUI画面上の表示情報との整合性を維持した状態で、同期して操作されるGUI画面を有する第2のGUI表示装置用の第2のGUI操作情報を生成する同期制御部と、前記第2のGUI操作情報を前記第2のGUI表示装置に送信する操作情報送信部と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、GUI画面の操作を制御するGUI処理装置、GUI処理方法およびGUI処理プログラムに関する。
【背景技術】
【0002】
GUI画面を更新する際に、必要に応じて外部サーバにアクセスしてGUI情報を取得し、取得したGUI情報を用いて新たなGUI画面を合成する技術が知られている。
【0003】
しかしながら、この種の従来の技術では、機器によって異なる操作方法、レイアウト、デザインを有する複数のGUI画面を、表示データの整合性を維持しつつ、同期して表示させることはできない。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−159589号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明が解決しようとする課題は、異なる操作方法、レイアウト、デザインを有する複数のGUI画面を、表示データの整合性を維持しつつ、同期して表示させることが可能なGUI処理装置101、GUI処理方法およびGUI処理プログラムを提供することである。
【課題を解決するための手段】
【0006】
本実施形態によれば、第1のGUI表示装置のGUI画面を操作するための第1のGUI操作情報を受信する操作情報受信部と、
前記第1のGUI表示装置のGUI画面を前記第1のGUI操作情報に基づいて操作した場合に、該GUI画面上の表示情報との整合性を維持した状態で、同期して操作されるGUI画面を有する第2のGUI表示装置用の第2のGUI操作情報を生成する同期制御部と、
前記第2のGUI操作情報を前記第2のGUI表示装置に送信する操作情報送信部と、を備えることを特徴とするGUI処理装置が提供される。
【図面の簡単な説明】
【0007】
【図1】第1の実施形態に係るGUI処理装置101を備えたGUI処理システムの概略構成を示す機能ブロック図。
【図2】GUI情報記憶部305に記憶されるGUI情報のデータ構造例を示す図。
【図3】GUI状態情報記憶部305に記憶されるGUI状態情報のデータ構造例を示す図。
【図4】GUI同期情報記憶部307に記憶されるGUI状態情報のデータ構造例を示す図。
【図5】図1のGUI処理システムの処理手順の一例を示すシーケンス図。
【図6】GUI情報送信部301の処理手順の一例を示すフローチャート。
【図7】GUI画面の一例を示す図。
【図8】HTMLファイルの一例を示す図。
【図9】GUI画面の一例を示す図。
【図10】図5のステップS120におけるGUI同期制御部304の処理手順の一例を示すフローチャート。
【図11】GUI表示装置102,103がほぼ同時に操作情報をGUI処理装置101に送信する場合の同期処理のシーケンス図。
【図12】第2の実施形態に係るGUI処理装置101aを備えたGUI処理システムの概略構成を示す機能ブロック図。
【図13】第3の実施形態に係るGUI処理装置101を備えたGUI処理システムの概略構成を示す機能ブロック図。
【図14】第3の実施形態におけるGUI状態情報のデータ構造例を示す図。
【図15】第3の実施形態におけるGUI同期情報のデータ構造例を示す図。
【図16】第3の実施形態におけるGUI同期処理の基本概念の処理手順を示すシーケンス図。
【図17】第3の実施形態におけるGUI同期処理の基本概念の処理手順を示すシーケンス図。
【図18】第3の実施形態におけるGUI同期制御部304の処理手順の詳細を示すフローチャート。
【図19】第4の実施形態におけるGUI処理装置101を備えたGUI処理システムの概略構成を示す機能ブロック図。
【図20】第4の実施形態におけるGUI情報のデータ構造例を示す図。
【発明を実施するための形態】
【0008】
以下、図面を参照しながら、本発明の実施形態を説明する。
【0009】
(第1の実施形態)
図1は第1の実施形態に係るGUI処理装置101を備えたGUI処理システムの概略構成を示す機能ブロック図である。図1のGUI処理システムは、第1の実施形態に係るGUI処理装置101と、複数(例えば2個)のGUI表示装置102、103とを備えている。GUI処理装置101とGUI表示装置102、103は、ネットワーク201を介して無線または有線で通信を行う。
【0010】
GUI処理装置101は、機能的には、GUI情報送信部301と、操作情報受信部302と、操作情報送信部303と、GUI同期制御部304と、GUI情報記憶部305と、GUI状態情報記憶部306と、GUI同期情報記憶部307とを有する。
【0011】
図1に示したGUI処理装置101内の各部は、ハードウェアで構成することも可能だが、ソフトウェアで構成してもよい。ソフトウェアで構成する場合は、GUI処理装置101内のCPU(不図示)が所定のプログラムを実行することで、各部の処理動作が行われる。GUI処理装置101内の各部の処理動作は後に詳述する。
【0012】
GUI表示装置102、103は、基本的にはいずれも同一の内部構成を有する。GUI表示装置102、103のそれぞれは、機能的には、GUI情報受信部401と、GUI情報処理部402と、GUI表示部403と、GUI操作部404と、GUI実行部405とを有する。
【0013】
GUI表示装置102、103内の各部も、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合は、GUI表示装置102内のCPU(不図示)が所定のプログラムを実行することで、各部の処理動作が行われる。GUI表示装置102内の各部の処理動作は後に詳述する。
【0014】
GUI処理装置101とGUI表示装置102、103のハードウェア構成としては、不図示であるが、CPUと、主記憶を構成するRAMと、CPUが実行する各種プログラム等を記憶するROMと、GUI情報等の各種データや各種プログラムを記憶するHDD(Hard Disk Drive)等の補助記憶部と、これらを接続するバスと、各種インタフェース部とを備えておけばよい。なお、これらのすべては必須ではなく、具体的なハードウェア構成は、特に限定されない。
【0015】
GUI処理装置101は、例えば、ホームネットワーク上に存在するPC(Personal Computer)、ハードディスクレコーダ、ブロードバンドルータ、STB(Set Top Box)、パーソナルサーバ装置、あるいは、インターネット上に存在するサーバ装置である。
【0016】
GUI処理装置101とGUI表示装置102、103はいずれも、汎用のPC等のCPUを装備した電子機器で実現可能であるが、GUI表示装置102には、GUI情報を表示するGUI表示部403と、ユーザの指示入力を受け付けるキーボード等のGUI操作部404とが必須であるが、GUI処理装置101にはこれらは必須ではない。
【0017】
GUI表示装置102、103は、例えば、PC、デジタルTV、モバイル機器(スマートフォンなど)である。
【0018】
以下に説明する実施形態では、GUI処理装置101がデジタルTVで、GUI表示装置102、103がスマートフォンである例について説明する。
【0019】
GUI処理装置101とGUI表示装置102、103との間のネットワーク201は、例えば、有線又は無線のホームネットワーク、あるいは、インターネット、または、品質保証された閉域網であるNGN(Next Generation Network)などである。本実施形態では、ネットワーク201がホームネットワークを構成するLANであるとする。
【0020】
次に、図1に示すGUI処理装置101とGUI表示装置102、103の内部構成について説明する。GUI処理装置101内のGUI情報送信部301、操作情報受信部302、操作情報送信部303およびGUI同期制御部304は、CPUのプログラム実行時にRAMなどの主記憶部上に生成されるものである。
【0021】
GUI情報記憶部305、GUI状態情報記憶部306およびGUI同期情報記憶部307は、例えば、主記憶もしくは不図示の補助記憶部に構築されるデータベース管理システムである。これは、リレーショナルデータベースでもよいし、XML(eXtensible Markup Language)データベースでもよい。また、これは単一のデータベース管理システムで構築されている必要はなく、複数のデータベース管理システム、例えば、SQLite3、Oracle、MySQLなどを併用しても良い。また、1つの物理的な記憶部上に構築されてもよいし、NAS(Network Attached Storage)や、SAN(Storage Area Network)といった複数の物理的な補助記憶部で構成されるデータベース管理システムでもよい。また、データの格納領域は不揮発性でも揮発性でもよい。あるいは、各記憶部に各々記憶されるデータの単位情報(エントリ)を取得できる手段を備えていれば、CPUのプログラム実行時に主記憶上に生成されるリスト構造ベースの簡易なデータ管理モジュールでもよいし、CSV形式ファイルの管理モジュールでもよいし、Key/Valueストアで構成されていてもよい。
【0022】
一方、GUI表示装置102内のGUI情報受信部401、GUI情報処理部402、GUI表示部403およびGUI操作部404は、CPUのプログラム実行時にRAMなどの主記憶部上に生成されるものである。このうち、GUI表示部403は、液晶ディスプレイ等の表示デバイスへの出力処理を、GPU(Graphic Processing Unit)等の専用ハードウェアに対する命令セットとして構成するものでもよい。
【0023】
GUI実行部405は、GUI情報を実行することにより、動的に主記憶上に生成されるものであり、生成部501と、送信部502と、受信部503と、受信操作情報処理部504とを有する。
【0024】
GUI情報は、GUI表示部403が表示するGUI画面を生成し、GUI操作部404を介して入力されるユーザからの操作イベントをGUI画面に反映させるために必要な情報である。また、本実施形態のGUI情報は、複数の画面で同期させて表示する操作対象情報を含む。操作対象情報は、例えば、映像、音楽、ニュース記事などのマルチメディアコンテンツの一覧情報であるが、複数のGUI表示装置102間で同期表示される情報であればよく、情報の具体的な内容は問わない。
【0025】
GUI情報は、例えば、HTML(Hyper Text Markup Language)ファイルやJavaScriptファイル等で記述されたWebコンテンツでもよいし、Flashコンテンツでもよい。GUI情報は、既存のWebコンテンツに限定されるものではなく、XML、BML(Broadcast Markup Language)等の別のマークアップ言語と、JavaScript以外のプログラム記述言語をベースにしたGUI情報でもよい。
【0026】
したがって、GUI実行部405にて、GUI情報を実行することで得られる生成部501、送信部502、受信部503、受信操作情報処理部504は、例えば、GUI情報に含まれるJavaScriptプログラムとして記述され、実行時に、JavaScriptインタプリタによって生成される機能である。
【0027】
以下、まずGUI実行部405にてGUI情報を実行することで動的に主記憶上に生成される各部について、詳細に説明する。
【0028】
生成部501は、GUI情報処理部402を介してGUI操作部403から入力されるユーザからの操作イベントを受信し、操作情報を生成する。操作情報は、GUI画面に表示され得る操作対象情報の母集合から、操作の結果、GUI画面に表示される操作対象情報の部分集合を決定するための情報である。操作対象情報がマルチメディアコンテンツのリスト情報である場合、例えば、操作情報は、表示開始インデックス番号と表示件数とで構成されてもよい。また、コンテンツリストの表示順序を決定するソート条件を含むものでもよい。
【0029】
操作情報の具体例を挙げると、「更新日時の新しい順に1件目から10件」を表現するものとなる。また、操作情報は、操作対象情報の母集合から直接部分集合を決定する絶対値情報でもよいし、現在表示中の部分集合からの差分情報を求める相対値情報でもよい。後者の相対値情報の場合、操作対象情報がマルチメディアコンテンツのリスト情報である場合、操作情報は、表示開始インデックス番号の差分情報のみを含むものでもよい。
【0030】
送信部502は、生成部501が生成した操作情報を操作情報受信部302に送信する。受信部503は、操作情報送信部303から送信される、他のGUI表示装置102上で生成された操作情報を受信する。
【0031】
受信操作情報処理部504は、受信部503が受信した操作情報を処理し、表示する操作対象情報の部分集合を決定し、これを、GUI情報処理部を介してGUI表示部に送信し、GUI画面に反映させる。
【0032】
続いて、GUI処理装置101内の各部について詳細に説明する。GUI情報送信部301は、例えばGUI表示装置102のGUI情報受信部401からのGUI情報取得要求を受信し、要求内容に合致するGUI情報をGUI情報記憶部305から取得して、GUI情報受信部401に送信する。GUI情報受信部401からのGUI情報取得要求とは、具体的にはGUI情報識別子とGUI表示装置102の種別情報である。GUI情報識別子は、GUI情報を一意に識別する情報であり、例えば、URI(Uniform Resource Identifier)である。GUI表示装置102の種別情報は、GUI表示装置102に適したGUI画面を構成するために必要な情報であり、例えば、ディスプレイのサイズ、解像度、Webブラウザの識別(User-Agent)情報、GUI表示装置102の機種などである。GUI情報送信部301の一実現形態は、例えば、HTTP(Hypertext Transfer Protocol)サーバである。
【0033】
GUI情報記憶部305は、GUI情報を記憶して、GUI情報送信部301からの要求に含まれるGUI情報識別子と、GUI表示装置102の種別情報に合致するGUI情報を出力する。
【0034】
図2はGUI情報記憶部305に記憶されるGUI情報のデータ構造例を示す図である。GUI情報は、GUI表示装置102の種類に依存する表示装置依存情報と、GUI表示装置102の種類に依存しない表示装置非依存情報とに大別される。GUI情報記憶部305は、表示装置非依存情報に対応するGUI情報識別子を表示装置非依存情報と組にして記憶するとともに、表示装置依存情報に対応するGUI情報識別子および機器識別情報を、表示装置依存情報と組にして記憶する。
【0035】
表示装置依存情報は、例えば、CSS(Cascading Style Sheet)ファイルや画像データ等の表示用の部品ファイルであり、表示装置非依存情報は、例えば、HTMLファイルとJavaScriptファイルである。HTMLファイルは表示装置依存情報に分類されてもよく、これはGUI情報の構成手法、実現手法に依存する。
【0036】
操作情報受信部302は、GUI表示装置102上の操作情報の送信部502から操作情報を受信し、GUI同期制御部304に出力する。操作受信部302の実現形態は、例えば、HTTPサーバや、WebSocketサーバである。本実施形態において、操作情報受信部302は、WebSocketサーバであるとする。
【0037】
操作情報送信部303は、GUI同期制御部304から、操作情報と、操作情報を送信する1つ以上の受信部503の宛先情報とを受信し、該当する受信部503に対して、操作情報を送信する。操作情報受信部303の実現形態は、例えば、HTTPクライアント、HTTPサーバ、CometサーバやWebSocketサーバである。本実施形態において、操作情報送信部303は、WebSocketサーバであるとする。
【0038】
操作情報受信部302は、GUI表示装置102,103内のGUI実行部405にて生成される送信部502に対して通信接続を確立した後に、送信部502から送信されたGUI操作情報を受信し、GUI操作情報を受信し終わっても通信接続の確立を維持するか、あるいは、GUI操作情報を受信する都度、操作情報受信部302との間で通信接続を確立して、GUI操作情報の受信後に通信接続を終了する。
【0039】
操作情報送信部303は、GUI表示装置102,103内のGUI実行部405にて生成される受信部503に対して通信接続を確立した後にGUI操作情報を受信部503に送信し、GUI操作情報を送信し終わっても通信接続の確立を維持するか、あるいは、GUI操作情報を送信する都度、操作情報受信部302との間で通信接続を確立して、GUI操作情報の送信後に通信接続を終了する。
【0040】
GUI操作情報を送信し終わっても通信接続の確立を維持する場合は、通信先であるGUI表示装置が同じであることを条件とする。
【0041】
GUI同期制御部304は、操作情報受信部302から入力された操作情報に基づいて、いずれかのGUI表示装置内の受信部503に送信する操作情報を生成して、その操作情報を送信する受信部503を決定し、生成した操作情報と送信する受信部503の宛先情報とを操作情報送信部303に出力する。GUI同期制御部304は、操作情報の決定に、GUI状態情報記憶部306に記憶されたGUI状態情報を利用してもよいし、宛先の受信部503の決定に、GUI同期情報記憶部307に記憶されたGUI同期情報を利用してもよい。
【0042】
GUI状態情報記憶部306は、GUI状態情報を記憶する。GUI状態情報は、操作情報を同期しているGUI表示装置102または103上に表示された操作対象情報の部分集合を特定する情報である。図3はGUI状態情報記憶部305に記憶されるGUI状態情報のデータ構造例を示す図である。図3のGUI状態情報は、同期対象のGUI表示装置102との間に確立された通信コネクションを特定する識別情報(例えば、IPアドレス、ポート番号のペア)、GUI識別子、絶対値の操作情報、当該操作情報が同期済みか、未同期化を示す同期状態情報、および、登録日時で構成されているが、必ずしもこれらの情報に限定されない。例えば、GUI情報が予め1つに特定されている場合は、GUI識別情報を保持する必要はない。また、GUI画面を同期するGUI表示装置102のグループ(以下、同期グループ)の存在を複数許容する場合には、同期グループの識別情報を保持する必要がある。また、絶対値の操作情報ではなく、相対値の操作情報で状態情報を構成する場合には、現GUI画面に表示されている操作対象情報の部分集合を特定する情報を保持する必要がある。
【0043】
GUI同期情報記憶部307は、GUI同期情報を記憶する。GUI同期情報は、GUI画面を同期するGUI表示装置102のグループを特定するための情報である。図4はGUI同期情報記憶部307に記憶されるGUI状態情報のデータ構造例を示す図である。図4において、GUI同期情報は、通信コネクション識別情報、GUI情報識別子、および、登録日時とで構成されているが、必ずしもこれらの情報に限定されない。例えば、同期グループの存在を複数許容する場合には、同期グループ識別情報を保持する必要がある。
【0044】
図5は図1のGUI処理システムの処理手順の一例を示すシーケンス図である。まず、GUI表示装置102内のGUI情報受信部401が、GUI処理装置101内のGUI情報送信部301に対してGUI情報要求メッセージをHTTP GETメソッドで送信する(ステップS101)。このとき、HTTPのUser-Agentヘッダには、GUI表示装置102の機種を特定する情報が含まれている。また、HTTPのRequest-URIには、GUI表示装置102が表示するGUI情報識別子が含まれている。GUI処理装置101内のGUI情報送信部301は、この要求メッセージを受信し、User-Agentヘッダの値をキーに、機種に合致するGUI情報を決定し(ステップS102)、これをGUI情報受信部401へHTTP GETリクエストへのレスポンスとして送信する(ステップS103)。
【0045】
ここで、ステップS102におけるGUI情報送信部301の処理動作を、図6のフローチャートに従って説明する。GUI情報送信部301は、GUI情報受信部401からGUI情報要求メッセージを受信すると(ステップS1020)、まず、受信したUser-Agentヘッダ値を解析し、機種識別情報を抽出する(ステップS1021)。次に、機種非依存GUI情報が有る場合には(ステップS1022)、受信したRequest-URIに含まれるGUI情報識別子をキーに、機種非依存GUI情報を取得する(ステップS1023)。さらに、機種依存GUI情報が有る場合には(ステップS1024)、GUI情報識別子と機種識別情報をキーに機種依存GUI情報を取得し(ステップS1025)、取得したGUI情報を応答する(ステップS1026)。
【0046】
ステップS1026で応答したGUI情報は、図7に示すGUI画面を生成するのに必要な情報である。GUI情報に含まれる機種非依存GUI情報は、図8に示す<div>タグに映像コンテンツ情報の一覧を埋め込んだHTMLファイル(および、各映像コンテンツのサムネイル画像ファイル)であり、機種依存情報は、タッチパネル操作でカバーフローを実現するCSSファイルと、JavaScriptファイル、機種毎のデザインを構成する画像ファイル群であるものとする。
【0047】
次に、GUI情報受信部401は、受信したGUI情報をGUI情報処理部402に渡し、GUI情報処理部402は、GUI情報を表示装置の画面に表示するためのGUI情報のデコードを行う(ステップS104)。すなわち、HTMLファイル、CSSファイル、および画像ファイル群から、GUI表示部403へ出力するGUI画面イメージを生成する。また、GUI情報に含まれる生成部501、送信部502、受信部503、および、受信操作情報処理部404を含むJavaScriptコードを、インタプリタで、もしくはJIT(Just In Time)コンパイラで実行バイナリ化し、動作可能な状態にする。
【0048】
このとき、送信部502と受信部503は、GUI処理装置101上の操作情報受信部302に対して、操作情報を送受信するためのTCP(Transmission Control Protocol)コネクションの確立を要求する(ステップS105)。受信部502と送信部503が其々別々にコネクション確立を要求してもよいし、共用する1つのコネクション確立を要求してもよい。本実施形態では、後者に従って、共用する1コネクションの接続要求を行う。このとき、コネクション確立要求は、WebSocketプロトコルに従い、HTTP GETリクエストで実現する。
【0049】
操作情報受信部302は、コネクション確立要求を受けて、双方向通信で利用するTCPコネクションを確立し(ステップS106)、コネクション確立応答を行う(ステップS107)。このとき、既に別のGUI表示装置103が通信コネクションを確立している状態であれば(例えば、ステップS115)、操作情報受信部302は、その時点でのGUI状態情報を、GUI同期制御部401を介してGUI状態情報記憶部306から取得し、これを応答メッセージに含める。
【0050】
なお、本実施形態では、WebSocketを利用した通信コネクションの確立を行っているが、実現形態は、この限りではなく、送信用には、通常のHTTP通信を用い、受信用には、Comet等のHTTPロングポーリングを用いることも考えられるし、独自のプロトコルを利用しても構わない。また、上述したコネクション確立時のGUI状態情報の共有は、ステップS107、S115の応答メッセージに含めているが、GUI情報応答時(ステップS103、S111)に含めてもよく、実現形態はこの限りではない。
【0051】
操作情報の送受信用の通信コネクションが確立された後、GUI情報処理部402は、デコードしたGUI画面イメージをGUI表示部403に出力する。これにより、GUI表示装置102のタッチパネル上にGUI画面が表示される(ステップS108)。
【0052】
続いて、GUI表示装置103も、GUI表示装置102のステップS101からステップS108までと同様の処理を行ない、液晶パネル上に、図9に示すGUI画面を表示する(ステップS109〜S116)。
【0053】
ここで、ユーザが、GUI表示装置(例えばスマートフォン)102のGUI画面を操作する(ステップS117)。このとき、ユーザは、図7におけるカバーフロー形式のコンテンツ閲覧GUI画面において、タッチパネルを右から左へなぞることによって、「映像コンテンツ1」が中央に表示されている状態から、図7のとおり「映像コンテンツ2」が中央に表示されている状態へ、GUI画面を変化させたとする。この画面変化は、機種依存GUI情報(CSS、および、JavaScriptコード)によって実現される。
【0054】
生成部501は、表示されているコンテンツ集合を特定する情報を、操作情報として生成する(ステップS118)。例えば、JSON(JavaScript Object Notation)形式で以下のように表現する。
{“index”:2, “sortType”:, “sortOrder”:}
【0055】
ここで、indexは画面に表示されている中心コンテンツのID、sortTypeはソート条件、sortOrderはソート順序(昇順あるいは降順)であるとする。indexは図8のcontentListクラスのid属性値であり、ソートタイプとソート順序は、ここでは無指定であるものとする。ソートタイプは、例えば、映像コンテンツのタイトル順、制作日時順、公開日時順、コンテンツ尺順など、様々なユースケースが考えられる。なお、操作情報は、この3属性に限定されるものではなく、例えば、表示コンテンツ数など、その他の属性が追加されてもよいし、ソート条件が必要ない場合には、省略してもよい。
【0056】
生成部501は、生成した操作情報を送信部502に渡し、送信部502は、この操作情報を、GUI処理装置101上の操作情報受信部302に、ステップS105で確立した通信コネクションを利用して送信する(ステップS119)。操作情報受信部302は、受信した操作情報と、通信コネクションの識別情報(IPアドレスとポート番号のペア情報)をGUI同期制御部304に渡す。GUI同期制御部304は、操作情報と通信コネクション識別情報から、同期対象のGUI表示装置103(の受信部502との間に確立した通信コネクション)を特定し、GUIを同期するための、操作情報を生成する(ステップS120)。ここでは、GUI表示装置103においてユーザによるGUI操作が発生していないので、GUI表示装置102から渡された前記操作情報が、そのまま利用される。
【0057】
図10は図5のステップS120におけるGUI同期制御部304の処理手順の一例を示すフローチャートである。GUI同期制御部304は、操作情報受信部302から操作情報と、通信コネクション識別情報とを受信すると(ステップS1201)、まず、GUI状態情報を取得し(ステップS1202)、同期が必要な(「未同期」状態の)操作情報が存在するか否かを確認する(ステップS1203)。
【0058】
本実施形態では、GUI表示装置102からの操作情報受信時に、GUI表示装置102に未反映の、GUI表示装置103から受信した操作情報が存在するか否かを確認する。ここでは存在しないため、GUI同期制御部304は、当該操作情報を、GUI状態情報記憶部306に、状態を「未同期」として登録する(ステップS1204)。続いて、GUI同期情報記憶部307に蓄積された通信コネクション識別情報を全て取得する(ステップS1205)。ここでは、GUI表示装置103との間の通信コネクション識別情報のみが得られる。続いて、取得した全ての通信コネクション(本実施形態においては、GUI表示装置103に対するもののみ)に対して、登録した操作情報を送信するように操作情報送信部303に対して要求する(ステップS1206)。該当する全ての通信コネクションに対する送信が完了した後、GUI状態情報記憶部306に登録した操作情報の状態を「同期済」に変更する(ステップS1207)。このとき、GUI状態情報記憶部306に「未同期」の操作情報が残っているか否かを確認する(ステップS1208)。
【0059】
本実施形態では、この時点で未同期操作情報は存在しないので、GUI同期制御部304は、受信した操作情報に対する一連の処理を終了する(ステップS1210)。もし、未同期操作情報が残っている場合には、該当操作情報に対する通信コネクション識別情報の取得処理(ステップS1205)に戻る。
【0060】
操作情報送信部303は、GUI同期制御部304から未同期操作情報の送信要求を受け、ステップS114で確立された通信コネクションを利用して、GUI表示装置103の受信部503に対して操作情報を送信する(ステップS121)。
【0061】
続いて、GUI表示装置103上の受信部503は、受信した操作情報を受信操作情報処理部504に渡す。最後に、受信操作情報処理部504は、操作情報を解析し、その内容({“index”:2, “sortType”:, “sortOrder”:})に基づき、GUI画面のリストのトップに表示されている「映像コンテンツ1」を、図9に示す「映像コンテンツ2」へと変化させる。このとき、ステップS111で受信したGUI情報に基づいて、上向きのスクロール等の様々なアニメーション、エフェクトで、GUI画面の変更が行われてもよい。
【0062】
以上が、GUI表示装置102、103が、それぞれの機種用のGUI情報を取得し、GUI処理内容を同期するまでの基本的な処理手順である。
【0063】
次に、GUI表示装置102,103がほぼ同時に操作情報をGUI処理装置101に送信する場合の同期処理について説明する。この場合のシーケンス図は図11に示されている。ここで、同時に発生するとは、GUI処理装置101が一方のGUI表示装置102からの操作情報を受信した後、これを別のGUI表示装置103に送信する前に、他方のGUI表示装置103からの操作情報を受信することを指す。
【0064】
まず、GUI表示装置102上で、ユーザがGUI画面を操作したとする(ステップS121)。ここでは、図7のGUI画面をさらに左にスクロールさせ、映像コンテンツ10を中心に表示するように変化させる。この時、生成される操作情報は、{“index”:10, “sortType”:, “sortOrder”:}となる(ステップS122)。このとき、ほぼ同時に、GUI表示装置103上でも、ユーザがGUI画面を操作し(ステップS123)、映像コンテンツ1が中心に表示されるような操作を行ったとする(ステップS124)。このとき、操作情報は、{“index”:1, “sortType”:, “sortOrder”:}となる。
【0065】
GUI表示装置102、103内の各送信部502は、それぞれ操作情報受信部302に対して、生成した操作情報を送信する(ステップS125、S126)。GUI同期制御部304の処理はシリアライズされており、操作情報受信部302が、同時に双方の操作情報を受信したとしても、いずれか一方から排他的に処理されることになる。排他処理される範囲は、図10に示す処理フロー全体であってもよく、ステップS1201からS1208の未同期操作情報の登録処理まででもよい。GUI状態情報記憶部306に対する未同期操作情報の参照(ステップS1202)と登録(ステップS1204)に不整合が生じない限りにおいては、排他処理の範囲は、どのように設定されてもよい。
【0066】
ここでは、GUI表示装置102の操作情報が、先にGUI同期制御部304に処理されるものとする。このとき、GUI表示装置102の操作情報が、未同期操作情報として、GUI状態情報記憶部306に登録される(ステップS127)。続いて処理されるGUI表示装置103の操作情報は、既に別装置からの未同期操作情報が登録されているために、破棄される(ステップS128)。
【0067】
ここまでの処理手順を、図10を用いて説明する。GUI同期制御部304は、GUI表示装置103からの操作情報を処理する際に、ステップS1202において、直前に登録された未同期操作情報を取得する。これは、図11のステップS121において発生したGUI表示装置102の操作情報である。既に未同期操作情報が登録されており(ステップS1203)、かつ、これが登録済みの未同期操作情報と同じ装置から送信されたものでないことを確認すると(ステップS1209)、GUI同期制御部304は、そのまま処理を終了し(ステップS1210)、実質的に、当該操作情報は破棄されることになる。
【0068】
ステップS121の操作情報がGUI表示装置103に送信される前に、さらにGUI表示装置102上で、ユーザによる画面操作が発生したとする(ステップS129)。生成された操作情報(例えば、{“index”:20, “sortType”:, “sortOrder”:})は、GUI処理装置101の操作情報受信部302に送信され(ステップS130、S131)、GUI同期制御部304に渡される。
【0069】
本実施形態では、ステップS123の操作情報とは異なった処理を行う。つまり、GUI同期制御部304は、該当操作情報を破棄せずに、未同期操作情報としてGUI状態情報記憶部306に登録する(ステップS132)。これは、図10のフローチャートにおけるS1209の条件判定によって、当該操作情報が、登録済みの未同期操作情報と同じGUI表示装置102で生成されたものであると判定されることによる。操作情報は同一のGUI表示装置102上で連続して生成される可能性が高いため、このS1209の分岐処理は、連続的な操作情報の破棄を防止する目的で行われる。
【0070】
以上の3度の操作情報を受信した段階で、GUI同期制御部304は、ステップS127で登録した未同期操作情報を送信する通信コネクション識別情報を取得する。取得した通信コネクション識別情報は、GUI表示装置103に対するものである。GUI同期制御部304は、操作情報送信部303を介して、GUI表示装置103に対して操作情報を送信する(ステップS133)。ここで、GUI表示装置103は、受信した操作情報に合わせて、映像コンテンツ10をリストのトップに表示するように画面を更新する(ステップS134)。
【0071】
一方、GUI同期制御部304は、GUI状態情報記憶部306に登録した操作情報の状態を「同期済」に更新し(ステップS135)、GUI状態情報記憶部306に未同期操作情報が存在するか否かを確認する(図10におけるステップS1208)。この場合、ステップS129の操作情報が登録されているため、この操作情報に該当する通信コネクション識別情報を取得し、GUI表示装置103に対して操作情報を送信する(ステップS136)。GUI表示装置103は、受信した操作情報に合わせて、映像コンテンツ20をリストのトップに表示する(ステップS137)。最後に、該当操作情報の状態を「同期済」に更新し(ステップS138)、処理を終了する。
【0072】
最終的にGUI表示装置102の画面には、図7に示すように映像コンテンツ20を中心として前後3件、合計7件のコンテンツが表示されている。一方、GUI表示装置103の画面には、図9に示すように映像コンテンツ20をリストのトップに合計5件のコンテンツが表示されている。表示されているコンテンツの範囲は異なるものの、双方でハイライトされているコンテンツは一致しており、表示内容の整合性は保たれている。
【0073】
以上のように、第1の実施形態では、図7および図9に示すように、GUI処理装置101によって、異なる操作手法、レイアウト、デザインを有する2つのGUI画面を、画面に表示されるデータの整合性を保ちつつ同期化させることができる。具体的には、タッチパネルによる左右スクロールのカバーフローGUIにおける操作が、上下スクロールのリスト形式のGUI画面に反映できている。さらに、図11の通信シーケンスのような操作の競合が発生した場合であっても、最終的に双方の画面に表示されるデータの整合性を維持できる。また、一方のGUI表示装置102において連続的に発生したユーザ操作が、破棄されることなく、他方のGUI表示装置102に反映させることができる。
【0074】
<GUI情報送信部301の処理のバリエーション>
上述したGUI情報送信部301の処理手順は、図6に示したものに限定されない。まず、GUI表示装置102、103にGUI情報がプリイントールされていて、かつ、GUI処理装置101上の操作情報受信部・送信部への接続パスが、プリインストールされたGUI情報に直接埋め込まれている、もしくは、手動ないし自動で設定するインタフェースを有している場合には、GUI情報送信部301は省略可能である。
【0075】
また、機種非依存GUI情報が存在しない場合にも、ステップS1022、S1023は不要である。
【0076】
また、図6では該当GUI情報を一括応答するシーケンスを示したが、実現手法はこの限りではない。GUI画面を構成するデータは、画像、スタイルシート、JavaScriptコード等、複数のファイルで構成されていることが一般的である。GUI情報受信部401は、ファイル毎に、GUI情報取得要求メッセージを送信してもよく、受け付けるGUI情報送信部301も、要求メッセージに応じてGUI情報を分割して、機種に合致したGUI情報を応答するようにしてもよい。この場合、GUI情報要求メッセージのRequest-URIが、分割されたGUI情報を構成する1ファイルを示しており、このRequest-URIを機種毎に異なるように構成する場合には、GUI情報送信部401は、要求されたファイルを返すように構成すればよい。逆に、Request-URIを機種が異なっても同じになるように構成する場合には、User-Agentから機種識別子を抽出して、これに基づいて応答するファイルを決定するように構成すればよい。この両ポリシーを1つのGUI情報の応答処理において併用してもよいし、いずれか一方を用いてもよい。
【0077】
<GUI同期制御部304の処理のバリエーション>
上述したGUI同期制御部304の処理手順は、図10に示したものに限定されない。例えば、GUI状態情報記憶部306に対する処理として、「非同期」状態の登録と、「同期済」状態への更新を想定しているが、未同期操作情報の登録と削除であっても構わない。また、1つのGUI表示装置102上で発生する連続的な操作情報の破棄を防止する必要がなければ、ステップS1208、S1209の処理は省略しても構わない。
【0078】
さらに、ステップS1202からS1204までの処理についても様々なバリエーションをとり得る。本実施形態では、未同期操作情報が存在しない状態で、最初にGUI同期制御部304に入力された操作情報を他装置に反映させ、反映が完了するまでに受信した他の操作情報は、基本的に破棄するという戦略に則ったものになっているが、例えば、一定期間に入力される操作情報のうち最新のものを同期させるようにしてもよい。また、入力される全操作情報を同期させるようにしてもよい。この場合、GUI状態情報記憶部306に全ての非同期操作情報を登録し、逐次、GUI同期情報記憶部307に蓄積された全ての通信コネクション対し操作情報を送信し、表示内容を同期させることになる。
【0079】
(第2の実施形態)
以下に説明する第2の実施形態は、GUI処理装置101の内部にGUI表示装置102の機能を持たせたものである。以下では、第1の実施形態と共通する部分については説明を簡略化し、主に第1の実施形態との相違点を中心に説明する。
【0080】
図12は第2の実施形態に係るGUI処理装置101aを備えたGUI処理システムの概略構成を示す機能ブロック図である。図12のGUI表示装置102は図1のGUI表示装置102と同一であるが、図1のGUI処理装置101とGUI表示装置103を一つにまとめた、新たなGUI処理装置101aを備えている。具体的な構成の一例としては、デジタルTVが、GUI表示装置102の機能だけでなく、GUI処理装置101の機能も兼ねている場合が想定される。
【0081】
第1の実施形態では、GUI処理装置101とGUI表示装置103との間で、HTTPプロトコル、あるいは、WebSocketプロトコルを用いた通信として実現されていた処理が、本実施形態では、GUI処理装置101aの内部で行われる。該当処理は、GUI情報送信部301とGUI情報受信部401との間のGUI情報伝送処理、操作情報受信部302と送信部502との間、および、操作情報送信部303と受信部503との間の操作情報伝送処理である。これらの処理は、第1の実施形態と同様の通信処理として実現されてもよいし、メモリの参照渡しなど、同一装置内に配置されていることを生かした、より密な連携によって実現されてもよい。
【0082】
GUI表示装置102とGUI処理装置101aとの間のGUI画面の表示内容の同期処理は、第1の実施形態と同様に、図5および図11の通信シーケンスに則って実現される。但し、図5および図11におけるGUI表示装置103の処理は、GUI処理装置101aに内蔵されており、かつ、GUI表示装置102とGUI処理装置101a間の通信処理は、GUI処理装置101aの内部処理として実現される。操作情報送信部301およびGUI同期制御部304の処理手順も、それぞれ、図6、図10に従って行われる。
【0083】
このように、第2の実施形態では、GUI処理装置101aがGUI表示装置103の機能を有するため、図1のように、GUI処理装置101aとGUI表示装置103との間で所定のプロトコルを用いて通信を行うといった手間が不要となり、情報の送受を簡易且つ高速に行うことができる。また、第2の実施形態においても、第1の実施形態と同様に、異なる操作手法、レイアウト、デザインを有する2つのGUI画面を、画面に表示されるデータの整合性を保ちつつ同期することができる。
【0084】
(第3の実施形態)
以下に説明する第3の実施形態は、複数のGUI画面を任意のグループ単位で、データの整合性を保ちつつ同期化させて画面表示を行うものである。
【0085】
図13は第3の実施形態に係るGUI処理装置101を備えたGUI処理システムの概略構成を示す機能ブロック図である。図13では、第1および第2の実施形態との相違点を中心に説明する。
【0086】
図13のGUI表示装置102とGUI処理装置101のそれぞれの内部構成は、図1のGUI表示装置102とGUI処理装置101の内部構成と基本的に同一である。図13では、4つのGUI表示装置102が図示されているが、GUI表示装置102の数には特に制限はない。
【0087】
ただし、GUI処理装置101内のGUI同期制御部304、GUI状態情報記憶部306およびGUI同期情報記憶部307の処理内容が図1のGUI処理装置101とは異なる。以下、これらの相違点を中心に説明する。
【0088】
GUI状態情報記憶部306は、GUI状態情報を記憶する。図14は第3の実施形態におけるGUI状態情報のデータ構造例を示す図である。図14のGUI状態情報は、第1および第2の実施形態における図3のGUI状態情報に加えて、GUI画面を同期するGUI表示装置102のグループ(同期グループ)の識別子を記憶している。これにより、画面情報の同期を行う同期グループを指定し、かつ同期グループが複数存在することも許容する。
【0089】
GUI同期情報記憶部307は、GUI同期情報を記憶する。図15は本実施形態におけるGUI同期情報のデータ構造例を示す図である。図15のGUI同期情報は、第1および第2の実施形態における図4のGUI同期情報に加えて、同期グループ識別子を記憶している。これにより、複数の同期グループを併存させることが可能となる。
【0090】
GUI同期制御部304は、GUI状態情報記憶部306とGUI同期情報記憶部307に追加された同期グループ識別子に対応しており、操作情報受信部302から入力された操作情報から同期グループを特定し、同期グループに属するGUI表示装置102に対して、操作情報を送信する。
【0091】
次に、第3の実施形態に係るGUI処理装置101の処理動作を説明する。GUI情報記憶部305に記憶されるGUI情報は、第1および第2の実施形態と同様であり、例えば図2に示される。
【0092】
図16と図17は、第3の実施形態におけるGUI同期処理の基本概念の処理手順を示すシーケンス図である。以下では、図16と図17を用いて、各GUI表示装置102が、GUI情報を取得し、操作情報送受するための処理手順を説明する。第1の実施形態と重複する内容については説明を割愛する。
【0093】
GUI表示装置102、103、104、105上のそれぞれのGUI情報受信部401が、GUI処理装置101上のGUI情報送信部301から、GUI情報を取得し処理する手順(ステップS301〜S304)は、第1の実施形態におけるGUI情報処理(図5のステップS101〜S104)と同様である。
【0094】
ここで、GUI実行部405がGUI情報を実行して得られる送信部502が、操作情報受信部302に対して、HTTP GETメソッドで、GUI処理装置101上で管理されている同期グループ情報の取得要求を行う(ステップS305)。操作情報受信部302は、GUI同期制御部304を介して、GUI同期情報記憶部307から、現在管理されている同期グループ情報を取得し(ステップS306)、受信部503に対して取得結果を送信する(ステップS307)。
【0095】
このとき、GUI表示装置102、103、104、105の順で、GUI情報を取得するものとすると、GUI表示装置102が同期グループ取得要求を送信した段階においては、まだ、同期グループは存在していない。従って、同期グループ情報応答には、同期グループ情報が含まれていない。
【0096】
GUI表示装置102上での同期グループ決定処理は、新規生成するか否かを選択するものになる(ステップS308)。これは、ユーザに対して、同期グループを新規生成するか否かを求めるGUI画面を表示することによって実現してもよいし、同期グループが未だ存在していないために、自動で新規生成を求めるものでもよい。
【0097】
続いて、GUI表示装置103が同期グループ取得要求を送信する段階においては、GUI表示装置102が生成した同期グループが存在する。従って、ステップS308における同期グループ決定処理においては、ユーザに対して、GUI表示装置102と表示内容を同期させるか、あるいは、同期グループを新規生成してGUI表示装置102と独立して画面操作を行うか、を求めるGUI画面を表示することによって実現する。あるいは、何らかの基準に基づいて、いずれかの選択肢を自動決定するものであっても構わない。ここでは、GUI表示装置102との同期が選択されたものとする。
【0098】
続くGUI表示装置104も、ステップS308において、GUI表示装置103と同じ選択肢が提示されるが、ここでは、同期グループの新規生成が選択されたものとする。
【0099】
最後のGUI表示装置105においては、選択肢は、GUI表示装置102、103が含まれる同期グループと、GUI表示装置104のみが含まれる同期グループと、紳士生成の3択となる。ここでは、GUI表示装置104との同期が選択されたものとする。
【0100】
以上により、全てのGUI表示装置102がステップS308を終了した段階で、102、103が属する同期グループと、104、105が属する同期グループの2つが存在することになる。
【0101】
続くステップS309〜ステップS312までの通信コネクション確立処理は、第1の実施形態の該当処理(図5のステップS105〜S108)と同一であるため、説明を割愛する。
【0102】
次に、図17を用いて、複数の同期グループ間でのGUI画面表示内容の同期処理について説明する。まず、GUI表示装置102、103、104上で同時にGUI画面の操作が行われ、其々の操作情報が生成され、GUI処理装置101に操作情報が送信される(ステップS313〜S321)。第1の実施形態と同様、GUI同期制御部304の処理はシリアライズされており、操作情報受信部302が、同時に3つの操作情報を受信したとしても、いずれか一方から排他的に処理されることになる。
【0103】
ここで、GUI表示装置102の操作情報、103の操作情報、104の操作情報、の順で、GUI同期制御部304に処理されるものとする。
【0104】
まず、GUI表示装置102の操作情報が、未同期操作情報として、GUI状態情報記憶部306に登録される(ステップS322)。続いて処理されるGUI表示装置103の操作情報は、同じ同期グループに属する未同期操作情報が既に登録されているために、破棄される(ステップS323)。一方、GUI表示装置104の操作情報は、まだ同じ同期グループに属する未同期操作情報が登録されていないため、GUI状態情報記憶部306に登録される(ステップS324)。
【0105】
ここで、図18は第3の実施形態におけるGUI同期制御部304の処理手順の詳細を示すフローチャートである。GUI同期制御部304は、GUI表示装置103からの操作情報を処理する際に、まず操作情報の送信元が属する同期グループ識別子を取得する(ステップS3001)。続いて、同期グループ識別子をキーに、直前に登録された未同期操作情報を取得する(ステップS3002)。ここでは、図17のステップS313において発生した操作情報が取得される。既に未同期操作情報が登録されており(ステップS3003)、かつ、これが登録済みの未同期操作情報と同じ装置から送信されたものでないことを確認すると(ステップS3009)、GUI同期制御部304は、そのまま処理を終了し(ステップS3010)、実質的に、当該操作情報は破棄されることになる。一方で、GUI表示装置104からの操作情報を処理する際には、ステップS3001で取得した同期グループ識別子に属する未同期操作情報が取得できないため(ステップS3002)、ステップS3003の条件分岐の判定が偽となり、GUI状態情報記憶部306に、当該操作情報が登録されることになる(ステップS3004)。
【0106】
次に、GUI同期制御部304は、操作情報送信部303を介して、GUI表示装置103に対して、ステップS313で生成された操作情報を送信し(ステップS325)、GGUI状態情報記憶部306に登録した該当操作情報の状態を「同期済」に更新する(ステップS326)。同様に、GUI同期制御部304は、操作情報送信部303を介して、GUI表示装置105に対して、ステップS313で生成された操作情報を送信し(ステップS327)、GUI状態情報記憶部306に登録した該当操作情報の状態を「同期済」に更新し(ステップS328)、処理を終了する。
【0107】
最終的にGUI表示装置102と103、104と105、それぞれのGUI画面の表示内容の整合性は保たれる。
【0108】
以上のように、第3の実施形態によれば、複数のGUI表示装置102、103、104および105が存在する場合には、これらをグループ分けして、各グループごとに、異なる操作手法、レイアウト、デザインを有する複数のGUI画面をデータの整合性を維持しつつ同期化することができる。
【0109】
(第4の実施形態)
以下に説明する第4の実施形態は、操作対象情報の不足分を操作対象情報提供サーバ装置(操作対象情報提供手段)から適宜取得するものである。
【0110】
図19は第4の実施形態に係るGUI処理装置101を備えたGUI処理システムの概略構成を示す機能ブロック図である。図19では、第1〜第3の実施形態との相違点を中心に説明する。
【0111】
図19のGUI処理装置101は、図1のGUI処理装置101の構成に加えて、操作対象情報提供サーバ装置106を備えている。ハードウェア構成上は、この点だけが図1と図19の相違点である。
【0112】
図19のGUI表示装置102とGUI処理装置101のそれぞれの内部構成は、図1のGUI表示装置102とGUI処理装置101の内部構成とほぼ同一であるが、GUI表示装置102とGUI処理装置101内のGUI実行部405は、操作対象情報受信部505を有する。この操作対象情報受信部505は、操作対象情報提供サーバ装置106からの操作対象情報を受信するためのものである。
【0113】
操作対象情報提供サーバ装置106は、GUI画面に表示される操作対象情報を記憶し、提供するサーバ装置であり、具体的には、インターネット上でコンテンツ配信サービスを提供するサーバ装置、様々なインターネット上のコンテンツ配信サービスからコンテンツを収集しサービスを横断したコンテンツを提供する中間サーバ装置、あるいは、ホームネットワーク上に存在するDLNA(Digital Living Network Alliance)等の規格に準じたメディアサーバ装置などである。本実施形態においては、操作対象情報提供サーバ装置106は、ネットワーク201(ホームネットワークを構成するLAN)内に設置されたメディアサーバであるとする。
【0114】
操作対象情報提供サーバ装置106は、機能的には、操作対象情報送信部601と操作対象情報記憶部602を有する。
【0115】
GUI情報記憶部305は、GUI情報を記憶するものである。図20は第4の実施形態におけるGUI情報のデータ構造例を示す図である。図20のGUI情報は、第1および第2の実施形態におけるGUI情報に含まれていた操作対象情報(映像コンテンツリスト)に代わり、操作対象情報取得URIを含んでいる。図20のデータ構造を採用することによって、操作対象情報自体が、GUI処理装置101でサポートしない情報を取り得る。
【0116】
操作対象情報受信部505は、GUI情報に含まれる操作対象情報取得URIを利用して、操作対象情報送信部601から、操作対象情報を取得する。
【0117】
操作対象情報送信部601は、GUI情報に含まれる操作対象情報受信部505からの要求に従って、操作情報を提供する。操作対象情報送信部601の実現形態は、例えば、HTTPサーバ、CometサーバやWebSocketサーバである。本実施形態においては、HTTPサーバであるとする。
【0118】
操作対象情報記憶部602は、操作対象情報を記憶するものである。操作対象情報は、図8のHTML記述例に含まれるコンテンツリスト(Contentクラスの<div>データ)に該当する情報で構成される。
【0119】
本実施形態において、GUI表示装置102、103との間で行われるGUI情報の取得処理、および、表示内容同期処理については、第1の実施形態に示したとおりである。すなわち、装置間の通信シーケンスは、図5、15に従う。同様に、GUI情報送信部303の内部処理は図6に、GUI同期制御部304の内部処理は図10に従う。但し、GUI情報送信部301が提供するGUI情報に、操作対象情報(映像コンテンツリスト)が含まれない点が、第1〜3の実施形態と異なる。
【0120】
本実施形態では、GUI表示装置102は、GUI情報受信部401ではなく、操作対象情報受信部505で、操作対象情報を取得する。取得の仕方として、大きく分けて以下の第1の手法と第2の手法の2通りが存在する。
【0121】
第1の手法は、図5におけるGUI情報のデコード完了後(ステップS104)、操作対象情報受信部505が、GUI情報に含まれる操作対象情報取得URIに対して、操作対象情報要求(例えば、HTTP GETリクエスト)を送信する。操作対象情報送信部601は、要求を受けて、操作対象情報記憶部601から合致する操作対象情報を取得し、操作対象情報受信部505に応答メッセージ(例えば、HTTP GETレスポンス)を送信する。この時、操作対象情報(映像コンテンツ100件)を全て受信するものとする。
【0122】
第2の手法は、第1の手法と同様、図5におけるGUI情報のデコード完了後(ステップS104)、操作対象情報受信部505が操作対象情報を取得するが、第1の手法のように全ての操作対象情報を取得せず、表示に必要な情報のみを取得、キャッシュする点で異なる。例えば、GUI画面が、図9に示すものであれば、表示されるコンテンツは、5件であるから、操作対象情報受信部505は、まず5件のデータを取得し、これを表示する。さらに、図5における他装置からの操作情報受信後(ステップS120)、新たに必要になる操作対象情報を、操作対象情報提供サーバ装置106から適宜、取得する。必要な情報のみを取得するように構成してもよいし、表示するよりも広い範囲の操作対象情報を取得し、キャッシュしておくように構成してもよい。
【0123】
以上が、第1の実施形態との差分となる。
【0124】
ネット上の動画コンテンツを操作対象とするような場合、操作対象情報が非常に多いため、第1〜第3の実施形態で示した手法では、GUI情報取得時に、全操作対象情報を現実的な処理時間内に取得することが困難である。例えば、大規模な動画コンテンツ配信サービスでは、数万〜数億のコンテンツを扱っている。
【0125】
本実施形態に示した手法は、各GUI表示装置102が、操作対象情報提供サーバ装置106から、GUI画面の表示に必要な操作対象情報のみを収集する。このため、操作対象情報の母集合が非常に大きい場合であっても、現実的な処理時間内で、GUI表示装置102間で操作情報を共有し、表示内容の整合性を保つことができる。
【0126】
以上のように、第4実施形態によれば、本発明のGUI処理装置101によって、異なる操作手法、レイアウト、デザインを有する複数のGUI画面を、扱う操作対象情報の数が膨大な場合であっても、画面に表示されるデータの整合性を保ちつつ同期することが可能となっている。
【0127】
上述した実施形態で説明した情報処理システムの少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、情報処理システムの少なくとも一部の機能を実現するプログラムをフレキシブルディスクやCD−ROM等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【0128】
また、情報処理システムの少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線(無線通信も含む)を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【0129】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【0130】
101 GUI処理装置
102、103 GUI表示装置
301 GUI情報送信部
302 操作情報受信部
303 操作情報送信部
304 GUI同期制御部
305 GUI情報記憶部
306 GUI状態情報記憶部
307 GUI同期情報記憶部
401 GUI情報受信部
402 GUI情報処理部
403 GUI表示部
404 GUI操作部
405 GUI実行部
501 生成部
502 送信部
503 受信部
504 受信操作情報処理部
505 操作対象情報受信部

【特許請求の範囲】
【請求項1】
第1のGUI表示装置のGUI画面を操作するための第1のGUI操作情報を受信する操作情報受信部と、
前記第1のGUI表示装置のGUI画面を前記第1のGUI操作情報に基づいて操作した場合に、該GUI画面上の表示情報との整合性を維持した状態で、同期して操作されるGUI画面を有する第2のGUI表示装置用の第2のGUI操作情報を生成する同期制御部と、
前記第2のGUI操作情報を前記第2のGUI表示装置に送信する操作情報送信部と、を備えることを特徴とするGUI処理装置。
【請求項2】
前記第1および第2のGUI操作情報は、GUI画面に表示可能な全情報の中からGUI画面に実際に表示される情報を選択する選択指令情報と、選択した情報の表示順序を指定する表示順序指定情報とを含むことを特徴とする請求項1に記載のGUI処理装置。
【請求項3】
前記選択指令情報は、GUI画面を操作するための操作対象情報の母集合から、その一部に含まれる部分集合を直接選択指令する情報であるか、または、現在GUI画面に表示中の部分集合からの差分集合を選択指令する情報であることを特徴とする請求項1または2に記載のGUI処理装置。
【請求項4】
GUI画面に表示可能な全情報の中からGUI画面に実際に表示される情報を特定するためのGUI状態情報を記憶するGUI状態記憶部を備えることを特徴とする請求項2または3に記載のGUI処理装置。
【請求項5】
前記第2のGUI表示装置から前記第1のGUI表示装置のGUI画面の取得要求を受けた場合に、前記第1のGUI表示装置のGUI画面に表示されるGUI情報と前記GUI状態情報とを前記第2のGUI表示装置に送信するGUI情報送信部を備えることを特徴とする請求項4に記載のGUI処理装置。
【請求項6】
前記操作情報受信部は、前記第1のGUI表示装置に対して通信接続を確立した後に前記第1のGUI操作情報を受信し、前記第1のGUI操作情報の受信が完了しても該通信接続の確立を維持し続けるか、または前記第1のGUI操作情報の受信完了後に該通信接続を切断し、その後、新たに該通信接続を確立することを特徴とする請求項1乃至5のいずれかに記載のGUI処理装置。
【請求項7】
前記操作情報送信部は、前記第2のGUI表示装置に対して通信接続を確立した後に前記第2のGUI操作情報を送信し、前記第2のGUI操作情報の送信が完了しても該通信接続の確立を維持し続けるか、または前記第2のGUI操作情報の送信完了後に該通信接続を切断し、その後、新たに該通信接続を確立することを特徴とする請求項1乃至5のいずれかに記載のGUI処理装置。
【請求項8】
前記同期制御部は、
前記第1のGUI操作情報に同期する前記第2のGUI操作情報がまだ生成されていない場合は、未同期である旨の前記GUI状態情報を前記GUI状態記憶部に記憶する未同期情報登録部と、
前記第1のGUI操作情報に同期する前記第2のGUI操作情報を生成する操作情報生成部と、
前記第2のGUI操作情報が生成された場合には、同期済である旨の前記GUI状態情報を前記GUI状態記憶部に記憶する同期済情報登録部と、を有することを特徴とする請求項1乃至7のいずれかに記載のGUI処理装置。
【請求項9】
前記同期制御部は、前記操作情報受信部が前記第1および第2のGUI表示装置を含む複数のGUI表示装置からの前記第1のGUI操作情報を略同時に受信した場合には、そのうちの一つのGUI表示装置向けの前記第2のGUI操作情報を生成し、かつ他のGUI表示装置からの前記第1のGUI操作情報を破棄することを特徴とする請求項1乃至8のいずれかに記載のGUI処理装置。
【請求項10】
前記第1および第2のGUI表示装置を含む複数のGUI表示装置が、2以上のグループに分類され、各グループには2以上のGUI表示装置が含まれており、
前記同期制御部は、各グループごとに、同一グループ内のGUI表示装置用のGUI操作情報を生成し、
前記操作情報送信部は、各グループごとに、同一グループ内のGUI表示装置に対して、前記同期制御部が生成したGUI操作情報を送信することを特徴とする請求項1乃至9のいずれかに記載のGUI処理装置。
【請求項11】
前記同期制御部は、前記第2のGUI操作情報の少なくとも一部を、操作対象情報提供手段から取得して前記第2のGUI操作情報を生成することを特徴とする請求項1乃至10のいずれかに記載のGUI処理装置。
【請求項12】
第1のGUI表示装置のGUI画面を操作するための第1のGUI操作情報を受信し、
前記第1のGUI表示装置のGUI画面を前記第1のGUI操作情報に基づいて操作した場合に、該GUI画面上の表示情報との整合性を維持した状態で、同期して操作されるGUI画面を有する第2のGUI表示装置用の第2のGUI操作情報を生成し、
前記第2のGUI操作情報を前記第2のGUI表示装置に送信することを特徴とするGUI処理方法。
【請求項13】
第1のGUI表示装置のGUI画面を操作するための第1のGUI操作情報を受信するステップと、
前記第1のGUI表示装置のGUI画面を前記第1のGUI操作情報に基づいて操作した場合に、該GUI画面上の表示情報との整合性を維持した状態で、同期して操作されるGUI画面を有する第2のGUI表示装置用の第2のGUI操作情報を生成するステップと、
前記第2のGUI操作情報を前記第2のGUI表示装置に送信するステップと、をコンピュータに実行させることを特徴とするGUI処理プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate


【公開番号】特開2012−73673(P2012−73673A)
【公開日】平成24年4月12日(2012.4.12)
【国際特許分類】
【出願番号】特願2010−216005(P2010−216005)
【出願日】平成22年9月27日(2010.9.27)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FLASH
2.JavaScript
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】