(57)【特許請求の範囲】
【請求項１】
第１のＧＵＩ表示装置のＧＵＩ画面を操作するための第１のＧＵＩ操作情報を受信する操作情報受信部と、
前記第１のＧＵＩ表示装置のＧＵＩ画面を前記第１のＧＵＩ操作情報に基づいて操作した場合に、該ＧＵＩ画面上の表示情報との整合性を維持した状態で、同期して操作され異なる操作手法、レイアウト、デザインを有するＧＵＩ画面を有する第２のＧＵＩ表示装置用の第２のＧＵＩ操作情報を生成する同期制御部と、
前記第２のＧＵＩ操作情報を前記第２のＧＵＩ表示装置に送信する操作情報送信部と、を備えることを特徴とするＧＵＩ処理装置。
【請求項２】
前記第１および第２のＧＵＩ操作情報は、ＧＵＩ画面に表示可能な全情報の中からＧＵＩ画面に実際に表示される情報を選択する選択指令情報と、選択した情報の表示順序を指定する表示順序指定情報とを含むことを特徴とする請求項１に記載のＧＵＩ処理装置。
【請求項３】
前記選択指令情報は、ＧＵＩ画面を操作するための操作対象情報の母集合から、その一部に含まれる部分集合を直接選択指令する情報であるか、または、現在ＧＵＩ画面に表示中の部分集合からの差分集合を選択指令する情報であることを特徴とする請求項１または２に記載のＧＵＩ処理装置。
【請求項４】
ＧＵＩ画面に表示可能な全情報の中からＧＵＩ画面に実際に表示される情報を特定するためのＧＵＩ状態情報を記憶するＧＵＩ状態記憶部を備えることを特徴とする請求項２または３に記載のＧＵＩ処理装置。
【請求項５】
前記第２のＧＵＩ表示装置から前記第１のＧＵＩ表示装置のＧＵＩ画面の取得要求を受けた場合に、前記第１のＧＵＩ表示装置のＧＵＩ画面に表示されるＧＵＩ情報と前記ＧＵＩ状態情報とを前記第２のＧＵＩ表示装置に送信するＧＵＩ情報送信部を備えることを特徴とする請求項４に記載のＧＵＩ処理装置。
【請求項６】
前記操作情報受信部は、前記第１のＧＵＩ表示装置に対して通信接続を確立した後に前記第１のＧＵＩ操作情報を受信し、前記第１のＧＵＩ操作情報の受信が完了しても該通信接続の確立を維持し続けるか、または前記第１のＧＵＩ操作情報の受信完了後に該通信接続を切断し、その後、新たに該通信接続を確立することを特徴とする請求項１乃至５のいずれかに記載のＧＵＩ処理装置。
【請求項７】
前記操作情報送信部は、前記第２のＧＵＩ表示装置に対して通信接続を確立した後に前記第２のＧＵＩ操作情報を送信し、前記第２のＧＵＩ操作情報の送信が完了しても該通信接続の確立を維持し続けるか、または前記第２のＧＵＩ操作情報の送信完了後に該通信接続を切断し、その後、新たに該通信接続を確立することを特徴とする請求項１乃至５のいずれかに記載のＧＵＩ処理装置。
【請求項８】
前記同期制御部は、
前記第１のＧＵＩ操作情報に同期する前記第２のＧＵＩ操作情報がまだ生成されていない場合は、未同期である旨の前記ＧＵＩ状態情報を前記ＧＵＩ状態記憶部に記憶する未同期情報登録部と、
前記第１のＧＵＩ操作情報に同期する前記第２のＧＵＩ操作情報を生成する操作情報生成部と、
前記第２のＧＵＩ操作情報が生成された場合には、同期済である旨の前記ＧＵＩ状態情報を前記ＧＵＩ状態記憶部に記憶する同期済情報登録部と、を有することを特徴とする請求項１乃至７のいずれかに記載のＧＵＩ処理装置。
【請求項９】
前記同期制御部は、前記操作情報受信部が前記第１および第２のＧＵＩ表示装置を含む複数のＧＵＩ表示装置からの前記第１のＧＵＩ操作情報を略同時に受信した場合には、そのうちの一つのＧＵＩ表示装置向けの前記第２のＧＵＩ操作情報を生成し、かつ他のＧＵＩ表示装置からの前記第１のＧＵＩ操作情報を破棄することを特徴とする請求項１乃至８のいずれかに記載のＧＵＩ処理装置。
【請求項１０】
前記第１および第２のＧＵＩ表示装置を含む複数のＧＵＩ表示装置が、２以上のグループに分類され、各グループには２以上のＧＵＩ表示装置が含まれており、
前記同期制御部は、各グループごとに、同一グループ内のＧＵＩ表示装置用のＧＵＩ操作情報を生成し、
前記操作情報送信部は、各グループごとに、同一グループ内のＧＵＩ表示装置に対して、前記同期制御部が生成したＧＵＩ操作情報を送信することを特徴とする請求項１乃至９のいずれかに記載のＧＵＩ処理装置。
【請求項１１】
第１のＧＵＩ表示装置のＧＵＩ画面を操作するための第１のＧＵＩ操作情報を受信し、
前記第１のＧＵＩ表示装置のＧＵＩ画面を前記第１のＧＵＩ操作情報に基づいて操作した場合に、該ＧＵＩ画面上の表示情報との整合性を維持した状態で、同期して操作され異なる操作手法、レイアウト、デザインを有するＧＵＩ画面を有する第２のＧＵＩ表示装置用の第２のＧＵＩ操作情報を生成し、
前記第２のＧＵＩ操作情報を前記第２のＧＵＩ表示装置に送信することを特徴とするＧＵＩ処理方法。
【請求項１２】
第１のＧＵＩ表示装置のＧＵＩ画面を操作するための第１のＧＵＩ操作情報を受信するステップと、
前記第１のＧＵＩ表示装置のＧＵＩ画面を前記第１のＧＵＩ操作情報に基づいて操作した場合に、該ＧＵＩ画面上の表示情報との整合性を維持した状態で、同期して操作され異なる操作手法、レイアウト、デザインを有するＧＵＩ画面を有する第２のＧＵＩ表示装置用の第２のＧＵＩ操作情報を生成するステップと、
前記第２のＧＵＩ操作情報を前記第２のＧＵＩ表示装置に送信するステップと、をコンピュータに実行させることを特徴とするＧＵＩ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ＧＵＩ画面の操作を制御するＧＵＩ処理装置、ＧＵＩ処理方法およびＧＵＩ処理プログラムに関する。
【背景技術】
【０００２】
ＧＵＩ画面を更新する際に、必要に応じて外部サーバにアクセスしてＧＵＩ情報を取得し、取得したＧＵＩ情報を用いて新たなＧＵＩ画面を合成する技術が知られている。
【０００３】
しかしながら、この種の従来の技術では、機器によって異なる操作方法、レイアウト、デザインを有する複数のＧＵＩ画面を、表示データの整合性を維持しつつ、同期して表示させることはできない。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５９５８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、異なる操作方法、レイアウト、デザインを有する複数のＧＵＩ画面を、表示データの整合性を維持しつつ、同期して表示させることが可能なＧＵＩ処理装置１０１、ＧＵＩ処理方法およびＧＵＩ処理プログラムを提供することである。
【課題を解決するための手段】
【０００６】
本実施形態によれば、第１のＧＵＩ表示装置のＧＵＩ画面を操作するための第１のＧＵＩ操作情報を受信する操作情報受信部と、
前記第１のＧＵＩ表示装置のＧＵＩ画面を前記第１のＧＵＩ操作情報に基づいて操作した場合に、該ＧＵＩ画面上の表示情報との整合性を維持した状態で、同期して操作されるＧＵＩ画面を有する第２のＧＵＩ表示装置用の第２のＧＵＩ操作情報を生成する同期制御部と、
前記第２のＧＵＩ操作情報を前記第２のＧＵＩ表示装置に送信する操作情報送信部と、を備えることを特徴とするＧＵＩ処理装置が提供される。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態に係るＧＵＩ処理装置１０１を備えたＧＵＩ処理システムの概略構成を示す機能ブロック図。
【図２】ＧＵＩ情報記憶部３０５に記憶されるＧＵＩ情報のデータ構造例を示す図。
【図３】ＧＵＩ状態情報記憶部３０５に記憶されるＧＵＩ状態情報のデータ構造例を示す図。
【図４】ＧＵＩ同期情報記憶部３０７に記憶されるＧＵＩ状態情報のデータ構造例を示す図。
【図５】図１のＧＵＩ処理システムの処理手順の一例を示すシーケンス図。
【図６】ＧＵＩ情報送信部３０１の処理手順の一例を示すフローチャート。
【図７】ＧＵＩ画面の一例を示す図。
【図８】ＨＴＭＬファイルの一例を示す図。
【図９】ＧＵＩ画面の一例を示す図。
【図１０】図５のステップＳ１２０におけるＧＵＩ同期制御部３０４の処理手順の一例を示すフローチャート。
【図１１】ＧＵＩ表示装置１０２，１０３がほぼ同時に操作情報をＧＵＩ処理装置１０１に送信する場合の同期処理のシーケンス図。
【図１２】第２の実施形態に係るＧＵＩ処理装置１０１ａを備えたＧＵＩ処理システムの概略構成を示す機能ブロック図。
【図１３】第３の実施形態に係るＧＵＩ処理装置１０１を備えたＧＵＩ処理システムの概略構成を示す機能ブロック図。
【図１４】第３の実施形態におけるＧＵＩ状態情報のデータ構造例を示す図。
【図１５】第３の実施形態におけるＧＵＩ同期情報のデータ構造例を示す図。
【図１６】第３の実施形態におけるＧＵＩ同期処理の基本概念の処理手順を示すシーケンス図。
【図１７】第３の実施形態におけるＧＵＩ同期処理の基本概念の処理手順を示すシーケンス図。
【図１８】第３の実施形態におけるＧＵＩ同期制御部３０４の処理手順の詳細を示すフローチャート。
【図１９】第４の実施形態におけるＧＵＩ処理装置１０１を備えたＧＵＩ処理システムの概略構成を示す機能ブロック図。
【図２０】第４の実施形態におけるＧＵＩ情報のデータ構造例を示す図。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら、本発明の実施形態を説明する。
【０００９】
（第１の実施形態）
図１は第１の実施形態に係るＧＵＩ処理装置１０１を備えたＧＵＩ処理システムの概略構成を示す機能ブロック図である。図１のＧＵＩ処理システムは、第１の実施形態に係るＧＵＩ処理装置１０１と、複数（例えば２個）のＧＵＩ表示装置１０２、１０３とを備えている。ＧＵＩ処理装置１０１とＧＵＩ表示装置１０２、１０３は、ネットワーク２０１を介して無線または有線で通信を行う。
【００１０】
ＧＵＩ処理装置１０１は、機能的には、ＧＵＩ情報送信部３０１と、操作情報受信部３０２と、操作情報送信部３０３と、ＧＵＩ同期制御部３０４と、ＧＵＩ情報記憶部３０５と、ＧＵＩ状態情報記憶部３０６と、ＧＵＩ同期情報記憶部３０７とを有する。
【００１１】
図１に示したＧＵＩ処理装置１０１内の各部は、ハードウェアで構成することも可能だが、ソフトウェアで構成してもよい。ソフトウェアで構成する場合は、ＧＵＩ処理装置１０１内のＣＰＵ（不図示）が所定のプログラムを実行することで、各部の処理動作が行われる。ＧＵＩ処理装置１０１内の各部の処理動作は後に詳述する。
【００１２】
ＧＵＩ表示装置１０２、１０３は、基本的にはいずれも同一の内部構成を有する。ＧＵＩ表示装置１０２、１０３のそれぞれは、機能的には、ＧＵＩ情報受信部４０１と、ＧＵＩ情報処理部４０２と、ＧＵＩ表示部４０３と、ＧＵＩ操作部４０４と、ＧＵＩ実行部４０５とを有する。
【００１３】
ＧＵＩ表示装置１０２、１０３内の各部も、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合は、ＧＵＩ表示装置１０２内のＣＰＵ（不図示）が所定のプログラムを実行することで、各部の処理動作が行われる。ＧＵＩ表示装置１０２内の各部の処理動作は後に詳述する。
【００１４】
ＧＵＩ処理装置１０１とＧＵＩ表示装置１０２、１０３のハードウェア構成としては、不図示であるが、ＣＰＵと、主記憶を構成するＲＡＭと、ＣＰＵが実行する各種プログラム等を記憶するＲＯＭと、ＧＵＩ情報等の各種データや各種プログラムを記憶するＨＤＤ（Hard Disk Drive）等の補助記憶部と、これらを接続するバスと、各種インタフェース部とを備えておけばよい。なお、これらのすべては必須ではなく、具体的なハードウェア構成は、特に限定されない。
【００１５】
ＧＵＩ処理装置１０１は、例えば、ホームネットワーク上に存在するＰＣ（Personal Computer）、ハードディスクレコーダ、ブロードバンドルータ、ＳＴＢ（Set Top Box）、パーソナルサーバ装置、あるいは、インターネット上に存在するサーバ装置である。
【００１６】
ＧＵＩ処理装置１０１とＧＵＩ表示装置１０２、１０３はいずれも、汎用のＰＣ等のＣＰＵを装備した電子機器で実現可能であるが、ＧＵＩ表示装置１０２には、ＧＵＩ情報を表示するＧＵＩ表示部４０３と、ユーザの指示入力を受け付けるキーボード等のＧＵＩ操作部４０４とが必須であるが、ＧＵＩ処理装置１０１にはこれらは必須ではない。
【００１７】
ＧＵＩ表示装置１０２、１０３は、例えば、ＰＣ、デジタルＴＶ、モバイル機器（スマートフォンなど）である。
【００１８】
以下に説明する実施形態では、ＧＵＩ処理装置１０１がデジタルＴＶで、ＧＵＩ表示装置１０２、１０３がスマートフォンである例について説明する。
【００１９】
ＧＵＩ処理装置１０１とＧＵＩ表示装置１０２、１０３との間のネットワーク２０１は、例えば、有線又は無線のホームネットワーク、あるいは、インターネット、または、品質保証された閉域網であるＮＧＮ（Next Generation Network）などである。本実施形態では、ネットワーク２０１がホームネットワークを構成するＬＡＮであるとする。
【００２０】
次に、図１に示すＧＵＩ処理装置１０１とＧＵＩ表示装置１０２、１０３の内部構成について説明する。ＧＵＩ処理装置１０１内のＧＵＩ情報送信部３０１、操作情報受信部３０２、操作情報送信部３０３およびＧＵＩ同期制御部３０４は、ＣＰＵのプログラム実行時にＲＡＭなどの主記憶部上に生成されるものである。
【００２１】
ＧＵＩ情報記憶部３０５、ＧＵＩ状態情報記憶部３０６およびＧＵＩ同期情報記憶部３０７は、例えば、主記憶もしくは不図示の補助記憶部に構築されるデータベース管理システムである。これは、リレーショナルデータベースでもよいし、ＸＭＬ（eXtensible Markup Language）データベースでもよい。また、これは単一のデータベース管理システムで構築されている必要はなく、複数のデータベース管理システム、例えば、ＳＱＬｉｔｅ３、Ｏｒａｃｌｅ、ＭｙＳＱＬなどを併用しても良い。また、１つの物理的な記憶部上に構築されてもよいし、ＮＡＳ（Network Attached Storage）や、ＳＡＮ（Storage Area Network）といった複数の物理的な補助記憶部で構成されるデータベース管理システムでもよい。また、データの格納領域は不揮発性でも揮発性でもよい。あるいは、各記憶部に各々記憶されるデータの単位情報（エントリ）を取得できる手段を備えていれば、ＣＰＵのプログラム実行時に主記憶上に生成されるリスト構造ベースの簡易なデータ管理モジュールでもよいし、ＣＳＶ形式ファイルの管理モジュールでもよいし、Ｋｅｙ／Ｖａｌｕｅストアで構成されていてもよい。
【００２２】
一方、ＧＵＩ表示装置１０２内のＧＵＩ情報受信部４０１、ＧＵＩ情報処理部４０２、ＧＵＩ表示部４０３およびＧＵＩ操作部４０４は、ＣＰＵのプログラム実行時にＲＡＭなどの主記憶部上に生成されるものである。このうち、ＧＵＩ表示部４０３は、液晶ディスプレイ等の表示デバイスへの出力処理を、ＧＰＵ（Graphic Processing Unit）等の専用ハードウェアに対する命令セットとして構成するものでもよい。
【００２３】
ＧＵＩ実行部４０５は、ＧＵＩ情報を実行することにより、動的に主記憶上に生成されるものであり、生成部５０１と、送信部５０２と、受信部５０３と、受信操作情報処理部５０４とを有する。
【００２４】
ＧＵＩ情報は、ＧＵＩ表示部４０３が表示するＧＵＩ画面を生成し、ＧＵＩ操作部４０４を介して入力されるユーザからの操作イベントをＧＵＩ画面に反映させるために必要な情報である。また、本実施形態のＧＵＩ情報は、複数の画面で同期させて表示する操作対象情報を含む。操作対象情報は、例えば、映像、音楽、ニュース記事などのマルチメディアコンテンツの一覧情報であるが、複数のＧＵＩ表示装置１０２間で同期表示される情報であればよく、情報の具体的な内容は問わない。
【００２５】
ＧＵＩ情報は、例えば、ＨＴＭＬ（Hyper Text Markup Language）ファイルやJavaScriptファイル等で記述されたＷｅｂコンテンツでもよいし、Ｆｌａｓｈコンテンツでもよい。ＧＵＩ情報は、既存のＷｅｂコンテンツに限定されるものではなく、ＸＭＬ、ＢＭＬ（Broadcast Markup Language）等の別のマークアップ言語と、JavaScript以外のプログラム記述言語をベースにしたＧＵＩ情報でもよい。
【００２６】
したがって、ＧＵＩ実行部４０５にて、ＧＵＩ情報を実行することで得られる生成部５０１、送信部５０２、受信部５０３、受信操作情報処理部５０４は、例えば、ＧＵＩ情報に含まれるJavaScriptプログラムとして記述され、実行時に、JavaScriptインタプリタによって生成される機能である。
【００２７】
以下、まずＧＵＩ実行部４０５にてＧＵＩ情報を実行することで動的に主記憶上に生成される各部について、詳細に説明する。
【００２８】
生成部５０１は、ＧＵＩ情報処理部４０２を介してＧＵＩ操作部４０３から入力されるユーザからの操作イベントを受信し、操作情報を生成する。操作情報は、ＧＵＩ画面に表示され得る操作対象情報の母集合から、操作の結果、ＧＵＩ画面に表示される操作対象情報の部分集合を決定するための情報である。操作対象情報がマルチメディアコンテンツのリスト情報である場合、例えば、操作情報は、表示開始インデックス番号と表示件数とで構成されてもよい。また、コンテンツリストの表示順序を決定するソート条件を含むものでもよい。
【００２９】
操作情報の具体例を挙げると、「更新日時の新しい順に１件目から１０件」を表現するものとなる。また、操作情報は、操作対象情報の母集合から直接部分集合を決定する絶対値情報でもよいし、現在表示中の部分集合からの差分情報を求める相対値情報でもよい。後者の相対値情報の場合、操作対象情報がマルチメディアコンテンツのリスト情報である場合、操作情報は、表示開始インデックス番号の差分情報のみを含むものでもよい。
【００３０】
送信部５０２は、生成部５０１が生成した操作情報を操作情報受信部３０２に送信する。受信部５０３は、操作情報送信部３０３から送信される、他のＧＵＩ表示装置１０２上で生成された操作情報を受信する。
【００３１】
受信操作情報処理部５０４は、受信部５０３が受信した操作情報を処理し、表示する操作対象情報の部分集合を決定し、これを、ＧＵＩ情報処理部を介してＧＵＩ表示部に送信し、ＧＵＩ画面に反映させる。
【００３２】
続いて、ＧＵＩ処理装置１０１内の各部について詳細に説明する。ＧＵＩ情報送信部３０１は、例えばＧＵＩ表示装置１０２のＧＵＩ情報受信部４０１からのＧＵＩ情報取得要求を受信し、要求内容に合致するＧＵＩ情報をＧＵＩ情報記憶部３０５から取得して、ＧＵＩ情報受信部４０１に送信する。ＧＵＩ情報受信部４０１からのＧＵＩ情報取得要求とは、具体的にはＧＵＩ情報識別子とＧＵＩ表示装置１０２の種別情報である。ＧＵＩ情報識別子は、ＧＵＩ情報を一意に識別する情報であり、例えば、ＵＲＩ（Uniform Resource Identifier）である。ＧＵＩ表示装置１０２の種別情報は、ＧＵＩ表示装置１０２に適したＧＵＩ画面を構成するために必要な情報であり、例えば、ディスプレイのサイズ、解像度、Ｗｅｂブラウザの識別（User-Agent）情報、ＧＵＩ表示装置１０２の機種などである。ＧＵＩ情報送信部３０１の一実現形態は、例えば、ＨＴＴＰ（Hypertext Transfer Protocol）サーバである。
【００３３】
ＧＵＩ情報記憶部３０５は、ＧＵＩ情報を記憶して、ＧＵＩ情報送信部３０１からの要求に含まれるＧＵＩ情報識別子と、ＧＵＩ表示装置１０２の種別情報に合致するＧＵＩ情報を出力する。
【００３４】
図２はＧＵＩ情報記憶部３０５に記憶されるＧＵＩ情報のデータ構造例を示す図である。ＧＵＩ情報は、ＧＵＩ表示装置１０２の種類に依存する表示装置依存情報と、ＧＵＩ表示装置１０２の種類に依存しない表示装置非依存情報とに大別される。ＧＵＩ情報記憶部３０５は、表示装置非依存情報に対応するＧＵＩ情報識別子を表示装置非依存情報と組にして記憶するとともに、表示装置依存情報に対応するＧＵＩ情報識別子および機器識別情報を、表示装置依存情報と組にして記憶する。
【００３５】
表示装置依存情報は、例えば、ＣＳＳ（Cascading Style Sheet）ファイルや画像データ等の表示用の部品ファイルであり、表示装置非依存情報は、例えば、ＨＴＭＬファイルとJavaScriptファイルである。ＨＴＭＬファイルは表示装置依存情報に分類されてもよく、これはＧＵＩ情報の構成手法、実現手法に依存する。
【００３６】
操作情報受信部３０２は、ＧＵＩ表示装置１０２上の操作情報の送信部５０２から操作情報を受信し、ＧＵＩ同期制御部３０４に出力する。操作受信部３０２の実現形態は、例えば、ＨＴＴＰサーバや、WebSocketサーバである。本実施形態において、操作情報受信部３０２は、WebSocketサーバであるとする。
【００３７】
操作情報送信部３０３は、ＧＵＩ同期制御部３０４から、操作情報と、操作情報を送信する１つ以上の受信部５０３の宛先情報とを受信し、該当する受信部５０３に対して、操作情報を送信する。操作情報受信部３０３の実現形態は、例えば、ＨＴＴＰクライアント、ＨＴＴＰサーバ、CometサーバやWebSocketサーバである。本実施形態において、操作情報送信部３０３は、WebSocketサーバであるとする。
【００３８】
操作情報受信部３０２は、ＧＵＩ表示装置１０２，１０３内のＧＵＩ実行部４０５にて生成される送信部５０２に対して通信接続を確立した後に、送信部５０２から送信されたＧＵＩ操作情報を受信し、ＧＵＩ操作情報を受信し終わっても通信接続の確立を維持するか、あるいは、ＧＵＩ操作情報を受信する都度、操作情報受信部３０２との間で通信接続を確立して、ＧＵＩ操作情報の受信後に通信接続を終了する。
【００３９】
操作情報送信部３０３は、ＧＵＩ表示装置１０２，１０３内のＧＵＩ実行部４０５にて生成される受信部５０３に対して通信接続を確立した後にＧＵＩ操作情報を受信部５０３に送信し、ＧＵＩ操作情報を送信し終わっても通信接続の確立を維持するか、あるいは、ＧＵＩ操作情報を送信する都度、操作情報受信部３０２との間で通信接続を確立して、ＧＵＩ操作情報の送信後に通信接続を終了する。
【００４０】
ＧＵＩ操作情報を送信し終わっても通信接続の確立を維持する場合は、通信先であるＧＵＩ表示装置が同じであることを条件とする。
【００４１】
ＧＵＩ同期制御部３０４は、操作情報受信部３０２から入力された操作情報に基づいて、いずれかのＧＵＩ表示装置内の受信部５０３に送信する操作情報を生成して、その操作情報を送信する受信部５０３を決定し、生成した操作情報と送信する受信部５０３の宛先情報とを操作情報送信部３０３に出力する。ＧＵＩ同期制御部３０４は、操作情報の決定に、ＧＵＩ状態情報記憶部３０６に記憶されたＧＵＩ状態情報を利用してもよいし、宛先の受信部５０３の決定に、ＧＵＩ同期情報記憶部３０７に記憶されたＧＵＩ同期情報を利用してもよい。
【００４２】
ＧＵＩ状態情報記憶部３０６は、ＧＵＩ状態情報を記憶する。ＧＵＩ状態情報は、操作情報を同期しているＧＵＩ表示装置１０２または１０３上に表示された操作対象情報の部分集合を特定する情報である。図３はＧＵＩ状態情報記憶部３０５に記憶されるＧＵＩ状態情報のデータ構造例を示す図である。図３のＧＵＩ状態情報は、同期対象のＧＵＩ表示装置１０２との間に確立された通信コネクションを特定する識別情報（例えば、ＩＰアドレス、ポート番号のペア）、ＧＵＩ識別子、絶対値の操作情報、当該操作情報が同期済みか、未同期化を示す同期状態情報、および、登録日時で構成されているが、必ずしもこれらの情報に限定されない。例えば、ＧＵＩ情報が予め１つに特定されている場合は、ＧＵＩ識別情報を保持する必要はない。また、ＧＵＩ画面を同期するＧＵＩ表示装置１０２のグループ（以下、同期グループ）の存在を複数許容する場合には、同期グループの識別情報を保持する必要がある。また、絶対値の操作情報ではなく、相対値の操作情報で状態情報を構成する場合には、現ＧＵＩ画面に表示されている操作対象情報の部分集合を特定する情報を保持する必要がある。
【００４３】
ＧＵＩ同期情報記憶部３０７は、ＧＵＩ同期情報を記憶する。ＧＵＩ同期情報は、ＧＵＩ画面を同期するＧＵＩ表示装置１０２のグループを特定するための情報である。図４はＧＵＩ同期情報記憶部３０７に記憶されるＧＵＩ状態情報のデータ構造例を示す図である。図４において、ＧＵＩ同期情報は、通信コネクション識別情報、ＧＵＩ情報識別子、および、登録日時とで構成されているが、必ずしもこれらの情報に限定されない。例えば、同期グループの存在を複数許容する場合には、同期グループ識別情報を保持する必要がある。
【００４４】
図５は図１のＧＵＩ処理システムの処理手順の一例を示すシーケンス図である。まず、ＧＵＩ表示装置１０２内のＧＵＩ情報受信部４０１が、ＧＵＩ処理装置１０１内のＧＵＩ情報送信部３０１に対してＧＵＩ情報要求メッセージをHTTP GETメソッドで送信する（ステップＳ１０１）。このとき、ＨＴＴＰのUser-Agentヘッダには、ＧＵＩ表示装置１０２の機種を特定する情報が含まれている。また、ＨＴＴＰのRequest-URIには、ＧＵＩ表示装置１０２が表示するＧＵＩ情報識別子が含まれている。ＧＵＩ処理装置１０１内のＧＵＩ情報送信部３０１は、この要求メッセージを受信し、User-Agentヘッダの値をキーに、機種に合致するＧＵＩ情報を決定し（ステップＳ１０２）、これをＧＵＩ情報受信部４０１へHTTP GETリクエストへのレスポンスとして送信する（ステップＳ１０３）。
【００４５】
ここで、ステップＳ１０２におけるＧＵＩ情報送信部３０１の処理動作を、図６のフローチャートに従って説明する。ＧＵＩ情報送信部３０１は、ＧＵＩ情報受信部４０１からＧＵＩ情報要求メッセージを受信すると（ステップＳ１０２０）、まず、受信したUser-Agentヘッダ値を解析し、機種識別情報を抽出する（ステップＳ１０２１）。次に、機種非依存ＧＵＩ情報が有る場合には（ステップＳ１０２２）、受信したRequest-URIに含まれるＧＵＩ情報識別子をキーに、機種非依存ＧＵＩ情報を取得する（ステップＳ１０２３）。さらに、機種依存ＧＵＩ情報が有る場合には（ステップＳ１０２４）、ＧＵＩ情報識別子と機種識別情報をキーに機種依存ＧＵＩ情報を取得し（ステップＳ１０２５）、取得したＧＵＩ情報を応答する（ステップＳ１０２６）。
【００４６】
ステップＳ１０２６で応答したＧＵＩ情報は、図７に示すＧＵＩ画面を生成するのに必要な情報である。ＧＵＩ情報に含まれる機種非依存ＧＵＩ情報は、図８に示す＜ｄｉｖ＞タグに映像コンテンツ情報の一覧を埋め込んだＨＴＭＬファイル（および、各映像コンテンツのサムネイル画像ファイル）であり、機種依存情報は、タッチパネル操作でカバーフローを実現するＣＳＳファイルと、JavaScriptファイル、機種毎のデザインを構成する画像ファイル群であるものとする。
【００４７】
次に、ＧＵＩ情報受信部４０１は、受信したＧＵＩ情報をＧＵＩ情報処理部４０２に渡し、ＧＵＩ情報処理部４０２は、ＧＵＩ情報を表示装置の画面に表示するためのＧＵＩ情報のデコードを行う（ステップＳ１０４）。すなわち、ＨＴＭＬファイル、ＣＳＳファイル、および画像ファイル群から、ＧＵＩ表示部４０３へ出力するＧＵＩ画面イメージを生成する。また、ＧＵＩ情報に含まれる生成部５０１、送信部５０２、受信部５０３、および、受信操作情報処理部４０４を含むJavaScriptコードを、インタプリタで、もしくはＪＩＴ（Just In Time）コンパイラで実行バイナリ化し、動作可能な状態にする。
【００４８】
このとき、送信部５０２と受信部５０３は、ＧＵＩ処理装置１０１上の操作情報受信部３０２に対して、操作情報を送受信するためのＴＣＰ（Transmission Control Protocol）コネクションの確立を要求する（ステップＳ１０５）。受信部５０２と送信部５０３が其々別々にコネクション確立を要求してもよいし、共用する１つのコネクション確立を要求してもよい。本実施形態では、後者に従って、共用する１コネクションの接続要求を行う。このとき、コネクション確立要求は、WebSocketプロトコルに従い、HTTP GETリクエストで実現する。
【００４９】
操作情報受信部３０２は、コネクション確立要求を受けて、双方向通信で利用するＴＣＰコネクションを確立し（ステップＳ１０６）、コネクション確立応答を行う（ステップＳ１０７）。このとき、既に別のＧＵＩ表示装置１０３が通信コネクションを確立している状態であれば（例えば、ステップＳ１１５）、操作情報受信部３０２は、その時点でのＧＵＩ状態情報を、ＧＵＩ同期制御部４０１を介してＧＵＩ状態情報記憶部３０６から取得し、これを応答メッセージに含める。
【００５０】
なお、本実施形態では、WebSocketを利用した通信コネクションの確立を行っているが、実現形態は、この限りではなく、送信用には、通常のＨＴＴＰ通信を用い、受信用には、Comet等のＨＴＴＰロングポーリングを用いることも考えられるし、独自のプロトコルを利用しても構わない。また、上述したコネクション確立時のＧＵＩ状態情報の共有は、ステップＳ１０７、Ｓ１１５の応答メッセージに含めているが、ＧＵＩ情報応答時（ステップＳ１０３、Ｓ１１１）に含めてもよく、実現形態はこの限りではない。
【００５１】
操作情報の送受信用の通信コネクションが確立された後、ＧＵＩ情報処理部４０２は、デコードしたＧＵＩ画面イメージをＧＵＩ表示部４０３に出力する。これにより、ＧＵＩ表示装置１０２のタッチパネル上にＧＵＩ画面が表示される（ステップＳ１０８）。
【００５２】
続いて、ＧＵＩ表示装置１０３も、ＧＵＩ表示装置１０２のステップＳ１０１からステップＳ１０８までと同様の処理を行ない、液晶パネル上に、図９に示すＧＵＩ画面を表示する（ステップＳ１０９〜Ｓ１１６）。
【００５３】
ここで、ユーザが、ＧＵＩ表示装置（例えばスマートフォン）１０２のＧＵＩ画面を操作する（ステップＳ１１７）。このとき、ユーザは、図７におけるカバーフロー形式のコンテンツ閲覧ＧＵＩ画面において、タッチパネルを右から左へなぞることによって、「映像コンテンツ１」が中央に表示されている状態から、図７のとおり「映像コンテンツ２」が中央に表示されている状態へ、ＧＵＩ画面を変化させたとする。この画面変化は、機種依存ＧＵＩ情報（ＣＳＳ、および、JavaScriptコード）によって実現される。
【００５４】
生成部５０１は、表示されているコンテンツ集合を特定する情報を、操作情報として生成する（ステップＳ１１８）。例えば、ＪＳＯＮ（JavaScript Object Notation）形式で以下のように表現する。
{“index”:2, “sortType”:, “sortOrder”:}
【００５５】
ここで、indexは画面に表示されている中心コンテンツのＩＤ、sortTypeはソート条件、sortOrderはソート順序（昇順あるいは降順）であるとする。indexは図８のcontentListクラスのid属性値であり、ソートタイプとソート順序は、ここでは無指定であるものとする。ソートタイプは、例えば、映像コンテンツのタイトル順、制作日時順、公開日時順、コンテンツ尺順など、様々なユースケースが考えられる。なお、操作情報は、この３属性に限定されるものではなく、例えば、表示コンテンツ数など、その他の属性が追加されてもよいし、ソート条件が必要ない場合には、省略してもよい。
【００５６】
生成部５０１は、生成した操作情報を送信部５０２に渡し、送信部５０２は、この操作情報を、ＧＵＩ処理装置１０１上の操作情報受信部３０２に、ステップＳ１０５で確立した通信コネクションを利用して送信する（ステップＳ１１９）。操作情報受信部３０２は、受信した操作情報と、通信コネクションの識別情報（ＩＰアドレスとポート番号のペア情報）をＧＵＩ同期制御部３０４に渡す。ＧＵＩ同期制御部３０４は、操作情報と通信コネクション識別情報から、同期対象のＧＵＩ表示装置１０３（の受信部５０２との間に確立した通信コネクション）を特定し、ＧＵＩを同期するための、操作情報を生成する（ステップＳ１２０）。ここでは、ＧＵＩ表示装置１０３においてユーザによるＧＵＩ操作が発生していないので、ＧＵＩ表示装置１０２から渡された前記操作情報が、そのまま利用される。
【００５７】
図１０は図５のステップＳ１２０におけるＧＵＩ同期制御部３０４の処理手順の一例を示すフローチャートである。ＧＵＩ同期制御部３０４は、操作情報受信部３０２から操作情報と、通信コネクション識別情報とを受信すると（ステップＳ１２０１）、まず、ＧＵＩ状態情報を取得し（ステップＳ１２０２）、同期が必要な（「未同期」状態の）操作情報が存在するか否かを確認する（ステップＳ１２０３）。
【００５８】
本実施形態では、ＧＵＩ表示装置１０２からの操作情報受信時に、ＧＵＩ表示装置１０２に未反映の、ＧＵＩ表示装置１０３から受信した操作情報が存在するか否かを確認する。ここでは存在しないため、ＧＵＩ同期制御部３０４は、当該操作情報を、ＧＵＩ状態情報記憶部３０６に、状態を「未同期」として登録する（ステップＳ１２０４）。続いて、ＧＵＩ同期情報記憶部３０７に蓄積された通信コネクション識別情報を全て取得する（ステップＳ１２０５）。ここでは、ＧＵＩ表示装置１０３との間の通信コネクション識別情報のみが得られる。続いて、取得した全ての通信コネクション（本実施形態においては、ＧＵＩ表示装置１０３に対するもののみ）に対して、登録した操作情報を送信するように操作情報送信部３０３に対して要求する（ステップＳ１２０６）。該当する全ての通信コネクションに対する送信が完了した後、ＧＵＩ状態情報記憶部３０６に登録した操作情報の状態を「同期済」に変更する（ステップＳ１２０７）。このとき、ＧＵＩ状態情報記憶部３０６に「未同期」の操作情報が残っているか否かを確認する（ステップＳ１２０８）。
【００５９】
本実施形態では、この時点で未同期操作情報は存在しないので、ＧＵＩ同期制御部３０４は、受信した操作情報に対する一連の処理を終了する（ステップＳ１２１０）。もし、未同期操作情報が残っている場合には、該当操作情報に対する通信コネクション識別情報の取得処理（ステップＳ１２０５）に戻る。
【００６０】
操作情報送信部３０３は、ＧＵＩ同期制御部３０４から未同期操作情報の送信要求を受け、ステップＳ１１４で確立された通信コネクションを利用して、ＧＵＩ表示装置１０３の受信部５０３に対して操作情報を送信する（ステップＳ１２１）。
【００６１】
続いて、ＧＵＩ表示装置１０３上の受信部５０３は、受信した操作情報を受信操作情報処理部５０４に渡す。最後に、受信操作情報処理部５０４は、操作情報を解析し、その内容（{“index”:2, “sortType”:, “sortOrder”:}）に基づき、ＧＵＩ画面のリストのトップに表示されている「映像コンテンツ１」を、図９に示す「映像コンテンツ２」へと変化させる。このとき、ステップＳ１１１で受信したＧＵＩ情報に基づいて、上向きのスクロール等の様々なアニメーション、エフェクトで、ＧＵＩ画面の変更が行われてもよい。
【００６２】
以上が、ＧＵＩ表示装置１０２、１０３が、それぞれの機種用のＧＵＩ情報を取得し、ＧＵＩ処理内容を同期するまでの基本的な処理手順である。
【００６３】
次に、ＧＵＩ表示装置１０２，１０３がほぼ同時に操作情報をＧＵＩ処理装置１０１に送信する場合の同期処理について説明する。この場合のシーケンス図は図１１に示されている。ここで、同時に発生するとは、ＧＵＩ処理装置１０１が一方のＧＵＩ表示装置１０２からの操作情報を受信した後、これを別のＧＵＩ表示装置１０３に送信する前に、他方のＧＵＩ表示装置１０３からの操作情報を受信することを指す。
【００６４】
まず、ＧＵＩ表示装置１０２上で、ユーザがＧＵＩ画面を操作したとする（ステップＳ１２１）。ここでは、図７のＧＵＩ画面をさらに左にスクロールさせ、映像コンテンツ１０を中心に表示するように変化させる。この時、生成される操作情報は、{“index”:10, “sortType”:, “sortOrder”:}となる（ステップＳ１２２）。このとき、ほぼ同時に、ＧＵＩ表示装置１０３上でも、ユーザがＧＵＩ画面を操作し（ステップＳ１２３）、映像コンテンツ１が中心に表示されるような操作を行ったとする（ステップＳ１２４）。このとき、操作情報は、{“index”:1, “sortType”:, “sortOrder”:}となる。
【００６５】
ＧＵＩ表示装置１０２、１０３内の各送信部５０２は、それぞれ操作情報受信部３０２に対して、生成した操作情報を送信する（ステップＳ１２５、Ｓ１２６）。ＧＵＩ同期制御部３０４の処理はシリアライズされており、操作情報受信部３０２が、同時に双方の操作情報を受信したとしても、いずれか一方から排他的に処理されることになる。排他処理される範囲は、図１０に示す処理フロー全体であってもよく、ステップＳ１２０１からＳ１２０８の未同期操作情報の登録処理まででもよい。ＧＵＩ状態情報記憶部３０６に対する未同期操作情報の参照（ステップＳ１２０２）と登録（ステップＳ１２０４）に不整合が生じない限りにおいては、排他処理の範囲は、どのように設定されてもよい。
【００６６】
ここでは、ＧＵＩ表示装置１０２の操作情報が、先にＧＵＩ同期制御部３０４に処理されるものとする。このとき、ＧＵＩ表示装置１０２の操作情報が、未同期操作情報として、ＧＵＩ状態情報記憶部３０６に登録される（ステップＳ１２７）。続いて処理されるＧＵＩ表示装置１０３の操作情報は、既に別装置からの未同期操作情報が登録されているために、破棄される（ステップＳ１２８）。
【００６７】
ここまでの処理手順を、図１０を用いて説明する。ＧＵＩ同期制御部３０４は、ＧＵＩ表示装置１０３からの操作情報を処理する際に、ステップＳ１２０２において、直前に登録された未同期操作情報を取得する。これは、図１１のステップＳ１２１において発生したＧＵＩ表示装置１０２の操作情報である。既に未同期操作情報が登録されており（ステップＳ１２０３）、かつ、これが登録済みの未同期操作情報と同じ装置から送信されたものでないことを確認すると（ステップＳ１２０９）、ＧＵＩ同期制御部３０４は、そのまま処理を終了し（ステップＳ１２１０）、実質的に、当該操作情報は破棄されることになる。
【００６８】
ステップＳ１２１の操作情報がＧＵＩ表示装置１０３に送信される前に、さらにＧＵＩ表示装置１０２上で、ユーザによる画面操作が発生したとする（ステップＳ１２９）。生成された操作情報（例えば、{“index”:20, “sortType”:, “sortOrder”:}）は、ＧＵＩ処理装置１０１の操作情報受信部３０２に送信され（ステップＳ１３０、Ｓ１３１）、ＧＵＩ同期制御部３０４に渡される。
【００６９】
本実施形態では、ステップＳ１２３の操作情報とは異なった処理を行う。つまり、ＧＵＩ同期制御部３０４は、該当操作情報を破棄せずに、未同期操作情報としてＧＵＩ状態情報記憶部３０６に登録する（ステップＳ１３２）。これは、図１０のフローチャートにおけるＳ１２０９の条件判定によって、当該操作情報が、登録済みの未同期操作情報と同じＧＵＩ表示装置１０２で生成されたものであると判定されることによる。操作情報は同一のＧＵＩ表示装置１０２上で連続して生成される可能性が高いため、このＳ１２０９の分岐処理は、連続的な操作情報の破棄を防止する目的で行われる。
【００７０】
以上の３度の操作情報を受信した段階で、ＧＵＩ同期制御部３０４は、ステップＳ１２７で登録した未同期操作情報を送信する通信コネクション識別情報を取得する。取得した通信コネクション識別情報は、ＧＵＩ表示装置１０３に対するものである。ＧＵＩ同期制御部３０４は、操作情報送信部３０３を介して、ＧＵＩ表示装置１０３に対して操作情報を送信する（ステップＳ１３３）。ここで、ＧＵＩ表示装置１０３は、受信した操作情報に合わせて、映像コンテンツ１０をリストのトップに表示するように画面を更新する（ステップＳ１３４）。
【００７１】
一方、ＧＵＩ同期制御部３０４は、ＧＵＩ状態情報記憶部３０６に登録した操作情報の状態を「同期済」に更新し（ステップＳ１３５）、ＧＵＩ状態情報記憶部３０６に未同期操作情報が存在するか否かを確認する（図１０におけるステップＳ１２０８）。この場合、ステップＳ１２９の操作情報が登録されているため、この操作情報に該当する通信コネクション識別情報を取得し、ＧＵＩ表示装置１０３に対して操作情報を送信する（ステップＳ１３６）。ＧＵＩ表示装置１０３は、受信した操作情報に合わせて、映像コンテンツ２０をリストのトップに表示する（ステップＳ１３７）。最後に、該当操作情報の状態を「同期済」に更新し（ステップＳ１３８）、処理を終了する。
【００７２】
最終的にＧＵＩ表示装置１０２の画面には、図７に示すように映像コンテンツ２０を中心として前後３件、合計７件のコンテンツが表示されている。一方、ＧＵＩ表示装置１０３の画面には、図９に示すように映像コンテンツ２０をリストのトップに合計５件のコンテンツが表示されている。表示されているコンテンツの範囲は異なるものの、双方でハイライトされているコンテンツは一致しており、表示内容の整合性は保たれている。
【００７３】
以上のように、第１の実施形態では、図７および図９に示すように、ＧＵＩ処理装置１０１によって、異なる操作手法、レイアウト、デザインを有する２つのＧＵＩ画面を、画面に表示されるデータの整合性を保ちつつ同期化させることができる。具体的には、タッチパネルによる左右スクロールのカバーフローＧＵＩにおける操作が、上下スクロールのリスト形式のＧＵＩ画面に反映できている。さらに、図１１の通信シーケンスのような操作の競合が発生した場合であっても、最終的に双方の画面に表示されるデータの整合性を維持できる。また、一方のＧＵＩ表示装置１０２において連続的に発生したユーザ操作が、破棄されることなく、他方のＧＵＩ表示装置１０２に反映させることができる。
【００７４】
＜ＧＵＩ情報送信部３０１の処理のバリエーション＞
上述したＧＵＩ情報送信部３０１の処理手順は、図６に示したものに限定されない。まず、ＧＵＩ表示装置１０２、１０３にＧＵＩ情報がプリイントールされていて、かつ、ＧＵＩ処理装置１０１上の操作情報受信部・送信部への接続パスが、プリインストールされたＧＵＩ情報に直接埋め込まれている、もしくは、手動ないし自動で設定するインタフェースを有している場合には、ＧＵＩ情報送信部３０１は省略可能である。
【００７５】
また、機種非依存ＧＵＩ情報が存在しない場合にも、ステップＳ１０２２、Ｓ１０２３は不要である。
【００７６】
また、図６では該当ＧＵＩ情報を一括応答するシーケンスを示したが、実現手法はこの限りではない。ＧＵＩ画面を構成するデータは、画像、スタイルシート、JavaScriptコード等、複数のファイルで構成されていることが一般的である。ＧＵＩ情報受信部４０１は、ファイル毎に、ＧＵＩ情報取得要求メッセージを送信してもよく、受け付けるＧＵＩ情報送信部３０１も、要求メッセージに応じてＧＵＩ情報を分割して、機種に合致したＧＵＩ情報を応答するようにしてもよい。この場合、ＧＵＩ情報要求メッセージのRequest-URIが、分割されたＧＵＩ情報を構成する１ファイルを示しており、このRequest-URIを機種毎に異なるように構成する場合には、ＧＵＩ情報送信部４０１は、要求されたファイルを返すように構成すればよい。逆に、Request-URIを機種が異なっても同じになるように構成する場合には、User-Agentから機種識別子を抽出して、これに基づいて応答するファイルを決定するように構成すればよい。この両ポリシーを１つのＧＵＩ情報の応答処理において併用してもよいし、いずれか一方を用いてもよい。
【００７７】
＜ＧＵＩ同期制御部３０４の処理のバリエーション＞
上述したＧＵＩ同期制御部３０４の処理手順は、図１０に示したものに限定されない。例えば、ＧＵＩ状態情報記憶部３０６に対する処理として、「非同期」状態の登録と、「同期済」状態への更新を想定しているが、未同期操作情報の登録と削除であっても構わない。また、１つのＧＵＩ表示装置１０２上で発生する連続的な操作情報の破棄を防止する必要がなければ、ステップＳ１２０８、Ｓ１２０９の処理は省略しても構わない。
【００７８】
さらに、ステップＳ１２０２からＳ１２０４までの処理についても様々なバリエーションをとり得る。本実施形態では、未同期操作情報が存在しない状態で、最初にＧＵＩ同期制御部３０４に入力された操作情報を他装置に反映させ、反映が完了するまでに受信した他の操作情報は、基本的に破棄するという戦略に則ったものになっているが、例えば、一定期間に入力される操作情報のうち最新のものを同期させるようにしてもよい。また、入力される全操作情報を同期させるようにしてもよい。この場合、ＧＵＩ状態情報記憶部３０６に全ての非同期操作情報を登録し、逐次、ＧＵＩ同期情報記憶部３０７に蓄積された全ての通信コネクション対し操作情報を送信し、表示内容を同期させることになる。
【００７９】
（第２の実施形態）
以下に説明する第２の実施形態は、ＧＵＩ処理装置１０１の内部にＧＵＩ表示装置１０２の機能を持たせたものである。以下では、第１の実施形態と共通する部分については説明を簡略化し、主に第１の実施形態との相違点を中心に説明する。
【００８０】
図１２は第２の実施形態に係るＧＵＩ処理装置１０１ａを備えたＧＵＩ処理システムの概略構成を示す機能ブロック図である。図１２のＧＵＩ表示装置１０２は図１のＧＵＩ表示装置１０２と同一であるが、図１のＧＵＩ処理装置１０１とＧＵＩ表示装置１０３を一つにまとめた、新たなＧＵＩ処理装置１０１ａを備えている。具体的な構成の一例としては、デジタルＴＶが、ＧＵＩ表示装置１０２の機能だけでなく、ＧＵＩ処理装置１０１の機能も兼ねている場合が想定される。
【００８１】
第１の実施形態では、ＧＵＩ処理装置１０１とＧＵＩ表示装置１０３との間で、ＨＴＴＰプロトコル、あるいは、WebSocketプロトコルを用いた通信として実現されていた処理が、本実施形態では、ＧＵＩ処理装置１０１ａの内部で行われる。該当処理は、ＧＵＩ情報送信部３０１とＧＵＩ情報受信部４０１との間のＧＵＩ情報伝送処理、操作情報受信部３０２と送信部５０２との間、および、操作情報送信部３０３と受信部５０３との間の操作情報伝送処理である。これらの処理は、第１の実施形態と同様の通信処理として実現されてもよいし、メモリの参照渡しなど、同一装置内に配置されていることを生かした、より密な連携によって実現されてもよい。
【００８２】
ＧＵＩ表示装置１０２とＧＵＩ処理装置１０１ａとの間のＧＵＩ画面の表示内容の同期処理は、第１の実施形態と同様に、図５および図１１の通信シーケンスに則って実現される。但し、図５および図１１におけるＧＵＩ表示装置１０３の処理は、ＧＵＩ処理装置１０１ａに内蔵されており、かつ、ＧＵＩ表示装置１０２とＧＵＩ処理装置１０１ａ間の通信処理は、ＧＵＩ処理装置１０１ａの内部処理として実現される。操作情報送信部３０１およびＧＵＩ同期制御部３０４の処理手順も、それぞれ、図６、図１０に従って行われる。
【００８３】
このように、第２の実施形態では、ＧＵＩ処理装置１０１ａがＧＵＩ表示装置１０３の機能を有するため、図１のように、ＧＵＩ処理装置１０１ａとＧＵＩ表示装置１０３との間で所定のプロトコルを用いて通信を行うといった手間が不要となり、情報の送受を簡易且つ高速に行うことができる。また、第２の実施形態においても、第１の実施形態と同様に、異なる操作手法、レイアウト、デザインを有する２つのＧＵＩ画面を、画面に表示されるデータの整合性を保ちつつ同期することができる。
【００８４】
（第３の実施形態）
以下に説明する第３の実施形態は、複数のＧＵＩ画面を任意のグループ単位で、データの整合性を保ちつつ同期化させて画面表示を行うものである。
【００８５】
図１３は第３の実施形態に係るＧＵＩ処理装置１０１を備えたＧＵＩ処理システムの概略構成を示す機能ブロック図である。図１３では、第１および第２の実施形態との相違点を中心に説明する。
【００８６】
図１３のＧＵＩ表示装置１０２とＧＵＩ処理装置１０１のそれぞれの内部構成は、図１のＧＵＩ表示装置１０２とＧＵＩ処理装置１０１の内部構成と基本的に同一である。図１３では、４つのＧＵＩ表示装置１０２が図示されているが、ＧＵＩ表示装置１０２の数には特に制限はない。
【００８７】
ただし、ＧＵＩ処理装置１０１内のＧＵＩ同期制御部３０４、ＧＵＩ状態情報記憶部３０６およびＧＵＩ同期情報記憶部３０７の処理内容が図１のＧＵＩ処理装置１０１とは異なる。以下、これらの相違点を中心に説明する。
【００８８】
ＧＵＩ状態情報記憶部３０６は、ＧＵＩ状態情報を記憶する。図１４は第３の実施形態におけるＧＵＩ状態情報のデータ構造例を示す図である。図１４のＧＵＩ状態情報は、第１および第２の実施形態における図３のＧＵＩ状態情報に加えて、ＧＵＩ画面を同期するＧＵＩ表示装置１０２のグループ（同期グループ）の識別子を記憶している。これにより、画面情報の同期を行う同期グループを指定し、かつ同期グループが複数存在することも許容する。
【００８９】
ＧＵＩ同期情報記憶部３０７は、ＧＵＩ同期情報を記憶する。図１５は本実施形態におけるＧＵＩ同期情報のデータ構造例を示す図である。図１５のＧＵＩ同期情報は、第１および第２の実施形態における図４のＧＵＩ同期情報に加えて、同期グループ識別子を記憶している。これにより、複数の同期グループを併存させることが可能となる。
【００９０】
ＧＵＩ同期制御部３０４は、ＧＵＩ状態情報記憶部３０６とＧＵＩ同期情報記憶部３０７に追加された同期グループ識別子に対応しており、操作情報受信部３０２から入力された操作情報から同期グループを特定し、同期グループに属するＧＵＩ表示装置１０２に対して、操作情報を送信する。
【００９１】
次に、第３の実施形態に係るＧＵＩ処理装置１０１の処理動作を説明する。ＧＵＩ情報記憶部３０５に記憶されるＧＵＩ情報は、第１および第２の実施形態と同様であり、例えば図２に示される。
【００９２】
図１６と図１７は、第３の実施形態におけるＧＵＩ同期処理の基本概念の処理手順を示すシーケンス図である。以下では、図１６と図１７を用いて、各ＧＵＩ表示装置１０２が、ＧＵＩ情報を取得し、操作情報送受するための処理手順を説明する。第１の実施形態と重複する内容については説明を割愛する。
【００９３】
ＧＵＩ表示装置１０２、１０３、１０４、１０５上のそれぞれのＧＵＩ情報受信部４０１が、ＧＵＩ処理装置１０１上のＧＵＩ情報送信部３０１から、ＧＵＩ情報を取得し処理する手順（ステップＳ３０１〜Ｓ３０４）は、第１の実施形態におけるＧＵＩ情報処理（図５のステップＳ１０１〜Ｓ１０４）と同様である。
【００９４】
ここで、ＧＵＩ実行部４０５がＧＵＩ情報を実行して得られる送信部５０２が、操作情報受信部３０２に対して、HTTP GETメソッドで、ＧＵＩ処理装置１０１上で管理されている同期グループ情報の取得要求を行う（ステップＳ３０５）。操作情報受信部３０２は、ＧＵＩ同期制御部３０４を介して、ＧＵＩ同期情報記憶部３０７から、現在管理されている同期グループ情報を取得し（ステップＳ３０６）、受信部５０３に対して取得結果を送信する（ステップＳ３０７）。
【００９５】
このとき、ＧＵＩ表示装置１０２、１０３、１０４、１０５の順で、ＧＵＩ情報を取得するものとすると、ＧＵＩ表示装置１０２が同期グループ取得要求を送信した段階においては、まだ、同期グループは存在していない。従って、同期グループ情報応答には、同期グループ情報が含まれていない。
【００９６】
ＧＵＩ表示装置１０２上での同期グループ決定処理は、新規生成するか否かを選択するものになる（ステップＳ３０８）。これは、ユーザに対して、同期グループを新規生成するか否かを求めるＧＵＩ画面を表示することによって実現してもよいし、同期グループが未だ存在していないために、自動で新規生成を求めるものでもよい。
【００９７】
続いて、ＧＵＩ表示装置１０３が同期グループ取得要求を送信する段階においては、ＧＵＩ表示装置１０２が生成した同期グループが存在する。従って、ステップＳ３０８における同期グループ決定処理においては、ユーザに対して、ＧＵＩ表示装置１０２と表示内容を同期させるか、あるいは、同期グループを新規生成してＧＵＩ表示装置１０２と独立して画面操作を行うか、を求めるＧＵＩ画面を表示することによって実現する。あるいは、何らかの基準に基づいて、いずれかの選択肢を自動決定するものであっても構わない。ここでは、ＧＵＩ表示装置１０２との同期が選択されたものとする。
【００９８】
続くＧＵＩ表示装置１０４も、ステップＳ３０８において、ＧＵＩ表示装置１０３と同じ選択肢が提示されるが、ここでは、同期グループの新規生成が選択されたものとする。
【００９９】
最後のＧＵＩ表示装置１０５においては、選択肢は、ＧＵＩ表示装置１０２、１０３が含まれる同期グループと、ＧＵＩ表示装置１０４のみが含まれる同期グループと、紳士生成の３択となる。ここでは、ＧＵＩ表示装置１０４との同期が選択されたものとする。
【０１００】
以上により、全てのＧＵＩ表示装置１０２がステップＳ３０８を終了した段階で、１０２、１０３が属する同期グループと、１０４、１０５が属する同期グループの２つが存在することになる。
【０１０１】
続くステップＳ３０９〜ステップＳ３１２までの通信コネクション確立処理は、第１の実施形態の該当処理（図５のステップＳ１０５〜Ｓ１０８）と同一であるため、説明を割愛する。
【０１０２】
次に、図１７を用いて、複数の同期グループ間でのＧＵＩ画面表示内容の同期処理について説明する。まず、ＧＵＩ表示装置１０２、１０３、１０４上で同時にＧＵＩ画面の操作が行われ、其々の操作情報が生成され、ＧＵＩ処理装置１０１に操作情報が送信される（ステップＳ３１３〜Ｓ３２１）。第１の実施形態と同様、ＧＵＩ同期制御部３０４の処理はシリアライズされており、操作情報受信部３０２が、同時に３つの操作情報を受信したとしても、いずれか一方から排他的に処理されることになる。
【０１０３】
ここで、ＧＵＩ表示装置１０２の操作情報、１０３の操作情報、１０４の操作情報、の順で、ＧＵＩ同期制御部３０４に処理されるものとする。
【０１０４】
まず、ＧＵＩ表示装置１０２の操作情報が、未同期操作情報として、ＧＵＩ状態情報記憶部３０６に登録される（ステップＳ３２２）。続いて処理されるＧＵＩ表示装置１０３の操作情報は、同じ同期グループに属する未同期操作情報が既に登録されているために、破棄される（ステップＳ３２３）。一方、ＧＵＩ表示装置１０４の操作情報は、まだ同じ同期グループに属する未同期操作情報が登録されていないため、ＧＵＩ状態情報記憶部３０６に登録される（ステップＳ３２４）。
【０１０５】
ここで、図１８は第３の実施形態におけるＧＵＩ同期制御部３０４の処理手順の詳細を示すフローチャートである。ＧＵＩ同期制御部３０４は、ＧＵＩ表示装置１０３からの操作情報を処理する際に、まず操作情報の送信元が属する同期グループ識別子を取得する（ステップＳ３００１）。続いて、同期グループ識別子をキーに、直前に登録された未同期操作情報を取得する（ステップＳ３００２）。ここでは、図１７のステップＳ３１３において発生した操作情報が取得される。既に未同期操作情報が登録されており（ステップＳ３００３）、かつ、これが登録済みの未同期操作情報と同じ装置から送信されたものでないことを確認すると（ステップＳ３００９）、ＧＵＩ同期制御部３０４は、そのまま処理を終了し（ステップＳ３０１０）、実質的に、当該操作情報は破棄されることになる。一方で、ＧＵＩ表示装置１０４からの操作情報を処理する際には、ステップＳ３００１で取得した同期グループ識別子に属する未同期操作情報が取得できないため（ステップＳ３００２）、ステップＳ３００３の条件分岐の判定が偽となり、ＧＵＩ状態情報記憶部３０６に、当該操作情報が登録されることになる（ステップＳ３００４）。
【０１０６】
次に、ＧＵＩ同期制御部３０４は、操作情報送信部３０３を介して、ＧＵＩ表示装置１０３に対して、ステップＳ３１３で生成された操作情報を送信し（ステップＳ３２５）、ＧＧＵＩ状態情報記憶部３０６に登録した該当操作情報の状態を「同期済」に更新する（ステップＳ３２６）。同様に、ＧＵＩ同期制御部３０４は、操作情報送信部３０３を介して、ＧＵＩ表示装置１０５に対して、ステップＳ３１３で生成された操作情報を送信し（ステップＳ３２７）、ＧＵＩ状態情報記憶部３０６に登録した該当操作情報の状態を「同期済」に更新し（ステップＳ３２８）、処理を終了する。
【０１０７】
最終的にＧＵＩ表示装置１０２と１０３、１０４と１０５、それぞれのＧＵＩ画面の表示内容の整合性は保たれる。
【０１０８】
以上のように、第３の実施形態によれば、複数のＧＵＩ表示装置１０２、１０３、１０４および１０５が存在する場合には、これらをグループ分けして、各グループごとに、異なる操作手法、レイアウト、デザインを有する複数のＧＵＩ画面をデータの整合性を維持しつつ同期化することができる。
【０１０９】
（第４の実施形態）
以下に説明する第４の実施形態は、操作対象情報の不足分を操作対象情報提供サーバ装置（操作対象情報提供手段）から適宜取得するものである。
【０１１０】
図１９は第４の実施形態に係るＧＵＩ処理装置１０１を備えたＧＵＩ処理システムの概略構成を示す機能ブロック図である。図１９では、第１〜第３の実施形態との相違点を中心に説明する。
【０１１１】
図１９のＧＵＩ処理装置１０１は、図１のＧＵＩ処理装置１０１の構成に加えて、操作対象情報提供サーバ装置１０６を備えている。ハードウェア構成上は、この点だけが図１と図１９の相違点である。
【０１１２】
図１９のＧＵＩ表示装置１０２とＧＵＩ処理装置１０１のそれぞれの内部構成は、図１のＧＵＩ表示装置１０２とＧＵＩ処理装置１０１の内部構成とほぼ同一であるが、ＧＵＩ表示装置１０２とＧＵＩ処理装置１０１内のＧＵＩ実行部４０５は、操作対象情報受信部５０５を有する。この操作対象情報受信部５０５は、操作対象情報提供サーバ装置１０６からの操作対象情報を受信するためのものである。
【０１１３】
操作対象情報提供サーバ装置１０６は、ＧＵＩ画面に表示される操作対象情報を記憶し、提供するサーバ装置であり、具体的には、インターネット上でコンテンツ配信サービスを提供するサーバ装置、様々なインターネット上のコンテンツ配信サービスからコンテンツを収集しサービスを横断したコンテンツを提供する中間サーバ装置、あるいは、ホームネットワーク上に存在するＤＬＮＡ（Digital Living Network Alliance）等の規格に準じたメディアサーバ装置などである。本実施形態においては、操作対象情報提供サーバ装置１０６は、ネットワーク２０１（ホームネットワークを構成するＬＡＮ）内に設置されたメディアサーバであるとする。
【０１１４】
操作対象情報提供サーバ装置１０６は、機能的には、操作対象情報送信部６０１と操作対象情報記憶部６０２を有する。
【０１１５】
ＧＵＩ情報記憶部３０５は、ＧＵＩ情報を記憶するものである。図２０は第４の実施形態におけるＧＵＩ情報のデータ構造例を示す図である。図２０のＧＵＩ情報は、第１および第２の実施形態におけるＧＵＩ情報に含まれていた操作対象情報（映像コンテンツリスト）に代わり、操作対象情報取得ＵＲＩを含んでいる。図２０のデータ構造を採用することによって、操作対象情報自体が、ＧＵＩ処理装置１０１でサポートしない情報を取り得る。
【０１１６】
操作対象情報受信部５０５は、ＧＵＩ情報に含まれる操作対象情報取得ＵＲＩを利用して、操作対象情報送信部６０１から、操作対象情報を取得する。
【０１１７】
操作対象情報送信部６０１は、ＧＵＩ情報に含まれる操作対象情報受信部５０５からの要求に従って、操作情報を提供する。操作対象情報送信部６０１の実現形態は、例えば、ＨＴＴＰサーバ、CometサーバやWebSocketサーバである。本実施形態においては、ＨＴＴＰサーバであるとする。
【０１１８】
操作対象情報記憶部６０２は、操作対象情報を記憶するものである。操作対象情報は、図８のＨＴＭＬ記述例に含まれるコンテンツリスト（Contentクラスの＜ｄｉｖ＞データ）に該当する情報で構成される。
【０１１９】
本実施形態において、ＧＵＩ表示装置１０２、１０３との間で行われるＧＵＩ情報の取得処理、および、表示内容同期処理については、第１の実施形態に示したとおりである。すなわち、装置間の通信シーケンスは、図５、１５に従う。同様に、ＧＵＩ情報送信部３０３の内部処理は図６に、ＧＵＩ同期制御部３０４の内部処理は図１０に従う。但し、ＧＵＩ情報送信部３０１が提供するＧＵＩ情報に、操作対象情報（映像コンテンツリスト）が含まれない点が、第１〜３の実施形態と異なる。
【０１２０】
本実施形態では、ＧＵＩ表示装置１０２は、ＧＵＩ情報受信部４０１ではなく、操作対象情報受信部５０５で、操作対象情報を取得する。取得の仕方として、大きく分けて以下の第１の手法と第２の手法の２通りが存在する。
【０１２１】
第１の手法は、図５におけるＧＵＩ情報のデコード完了後（ステップＳ１０４）、操作対象情報受信部５０５が、ＧＵＩ情報に含まれる操作対象情報取得ＵＲＩに対して、操作対象情報要求（例えば、HTTP GETリクエスト）を送信する。操作対象情報送信部６０１は、要求を受けて、操作対象情報記憶部６０１から合致する操作対象情報を取得し、操作対象情報受信部５０５に応答メッセージ（例えば、HTTP GETレスポンス）を送信する。この時、操作対象情報（映像コンテンツ１００件）を全て受信するものとする。
【０１２２】
第２の手法は、第１の手法と同様、図５におけるＧＵＩ情報のデコード完了後（ステップＳ１０４）、操作対象情報受信部５０５が操作対象情報を取得するが、第１の手法のように全ての操作対象情報を取得せず、表示に必要な情報のみを取得、キャッシュする点で異なる。例えば、ＧＵＩ画面が、図９に示すものであれば、表示されるコンテンツは、５件であるから、操作対象情報受信部５０５は、まず５件のデータを取得し、これを表示する。さらに、図５における他装置からの操作情報受信後（ステップＳ１２０）、新たに必要になる操作対象情報を、操作対象情報提供サーバ装置１０６から適宜、取得する。必要な情報のみを取得するように構成してもよいし、表示するよりも広い範囲の操作対象情報を取得し、キャッシュしておくように構成してもよい。
【０１２３】
以上が、第１の実施形態との差分となる。
【０１２４】
ネット上の動画コンテンツを操作対象とするような場合、操作対象情報が非常に多いため、第１〜第３の実施形態で示した手法では、ＧＵＩ情報取得時に、全操作対象情報を現実的な処理時間内に取得することが困難である。例えば、大規模な動画コンテンツ配信サービスでは、数万〜数億のコンテンツを扱っている。
【０１２５】
本実施形態に示した手法は、各ＧＵＩ表示装置１０２が、操作対象情報提供サーバ装置１０６から、ＧＵＩ画面の表示に必要な操作対象情報のみを収集する。このため、操作対象情報の母集合が非常に大きい場合であっても、現実的な処理時間内で、ＧＵＩ表示装置１０２間で操作情報を共有し、表示内容の整合性を保つことができる。
【０１２６】
以上のように、第４実施形態によれば、本発明のＧＵＩ処理装置１０１によって、異なる操作手法、レイアウト、デザインを有する複数のＧＵＩ画面を、扱う操作対象情報の数が膨大な場合であっても、画面に表示されるデータの整合性を保ちつつ同期することが可能となっている。
【０１２７】
上述した実施形態で説明した情報処理システムの少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、情報処理システムの少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【０１２８】
また、情報処理システムの少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【０１２９】
本発明の態様は、上述した個々の実施形態に限定されるものではなく、当業者が想到しうる種々の変形も含むものであり、本発明の効果も上述した内容に限定されない。すなわち、特許請求の範囲に規定された内容およびその均等物から導き出される本発明の概念的な思想と趣旨を逸脱しない範囲で種々の追加、変更および部分的削除が可能である。
【符号の説明】
【０１３０】
１０１  ＧＵＩ処理装置
１０２、１０３  ＧＵＩ表示装置
３０１  ＧＵＩ情報送信部
３０２  操作情報受信部
３０３  操作情報送信部
３０４  ＧＵＩ同期制御部
３０５  ＧＵＩ情報記憶部
３０６  ＧＵＩ状態情報記憶部
３０７  ＧＵＩ同期情報記憶部
４０１  ＧＵＩ情報受信部
４０２  ＧＵＩ情報処理部
４０３  ＧＵＩ表示部
４０４  ＧＵＩ操作部
４０５  ＧＵＩ実行部
５０１  生成部
５０２  送信部
５０３  受信部
５０４  受信操作情報処理部
５０５  操作対象情報受信部
【図１】
0005258861.tif 000002
【図２】
0005258861.tif 000003
【図３】
0005258861.tif 000004
【図４】
0005258861.tif 000005
【図５】
0005258861.tif 000006
【図６】
0005258861.tif 000007
【図７】
0005258861.tif 000008
【図８】
0005258861.tif 000009
【図９】
0005258861.tif 000010
【図１０】
0005258861.tif 000011
【図１１】
0005258861.tif 000012
【図１２】
0005258861.tif 000013
【図１３】
0005258861.tif 000014
【図１４】
0005258861.tif 000015
【図１５】
0005258861.tif 000016
【図１６】
0005258861.tif 000017
【図１７】
0005258861.tif 000018
【図１８】
0005258861.tif 000019
【図１９】
0005258861.tif 000020
【図２０】
0005258861.tif 000021