(57)【特許請求の範囲】
【請求項１】
ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムにおいて、
前記サーバ装置は、
予め定められた複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段と、
前記クライアント装置により表示される画面が前記複数の画面のうち何れかの画面に切り替えられる場合、前記第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記クライアント装置へ送信する操作リスト送信手段と、
前記操作リスト送信手段により送信される前記操作リストに対応する画面を示す画面情報を送信する画面情報送信手段と、
前記クライアント装置に入力されたユーザ操作を示す操作情報を、前記クライアント装置により決定されたプロトコルで前記クライアント装置から受信する操作情報受信手段であって、前記操作リスト送信手段により送信された前記操作リストに含まれるプロトコル情報のうち、前記操作情報に対応するプロトコル情報が示すプロトコルを用いて前記操作情報を受信する操作情報受信手段と、
前記操作情報受信手段により受信された前記操作情報が示すユーザ操作に応じた処理を実行する処理手段と、
を備え、
前記クライアント装置は、
前記サーバ装置から前記操作リストを受信する操作リスト受信手段と、
前記操作リスト受信手段により受信された前記操作リストを記憶する第２記憶手段と、
前記サーバ装置から送信された前記画面情報を受信する画面情報受信手段と、
前記画面情報受信手段により受信された前記画面情報が示す画面を表示する表示手段と、
ユーザ操作が入力される入力手段と、
前記第２記憶手段に記憶された前記操作リストから、前記入力手段を用いて入力された前記ユーザ操作を示す操作情報に対応するプロトコル情報を取得する取得手段と、
前記入力されたユーザ操作を示す操作情報を、前記複数のプロトコルのうち前記取得手段により取得された前記プロトコル情報が示すプロトコルを用いて前記サーバ装置へ送信する操作情報送信手段と、
を備えることを特徴とする通信システム。
【請求項２】
前記クライアント装置は、
前記操作リスト受信手段、前記第２記憶手段、前記入力手段、前記取得手段、前記操作情報送信手段を備える第１クライアント装置と、
前記画面情報受信手段及び前記表示手段を備える第２クライアント装置と、
を含むことを特徴とする請求項１に記載の通信システム。
【請求項３】
前記クライアント装置はシンクライアントであることを特徴とする請求項２に記載の通信システム。
【請求項４】
ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムに含まれる前記サーバ装置において、
予め定められた複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段と、
前記クライアント装置により表示される画面が前記複数の画面のうち何れかの画面に切り替えられる場合、前記第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記クライアント装置へ送信する操作リスト送信手段と、
前記操作リスト送信手段により送信される前記操作リストに対応する画面を示す画面情報を送信する画面情報送信手段と、
前記クライアント装置に入力されたユーザ操作を示す操作情報を、前記クライアント装置により決定されたプロトコルで前記クライアント装置から受信する操作情報受信手段であって、前記操作リスト送信手段により送信された前記操作リストに含まれるプロトコル情報のうち、前記操作情報に対応するプロトコル情報が示すプロトコルを用いて前記操作情報を受信する操作情報受信手段と、
前記操作情報受信手段により受信された前記操作情報が示すユーザ操作に応じた処理を実行する処理手段と、
を備えることを特徴とするサーバ装置。
【請求項５】
前記複数のプロトコルは、前記サーバ装置が前記クライアント装置から前記操作情報を受信した場合に前記サーバ装置から前記クライアント装置へ確認応答が送信される第１プロトコルと、前記確認応答が送信されない第２プロトコルとを少なくとも含むことを特徴とする請求項４に記載のサーバ装置。
【請求項６】
前記操作情報受信手段は、前記クライアント装置により送信される操作情報のうち前記第１プロトコルを用いて送信される第１操作情報が送信されるごとに更新される番号が付加された前記操作情報を受信し、
前記クライアント装置から送信された操作情報のうち前記第２プロトコルを用いて送信された第２操作情報が前記操作情報受信手段により受信された場合、前記第２操作情報に付加された番号と一致する番号が付加された前記第１操作情報が前記操作情報受信手段により受信されているかを判定する判定手段を更に備え、
前記処理手段は、前記判定手段により前記第１操作情報が受信されていないと判定された場合、前記操作情報受信手段により前記第１操作情報が受信されることに応じて前記第１操作情報が示すユーザ操作に応じた処理を実行した後、前記第２操作情報が示すユーザ操作に応じた処理を実行することを特徴とする請求項５に記載のサーバ装置。
【請求項７】
前記第１プロトコルは、ＴＣＰであり、
前記第２プロトコルは、ＵＤＰであることを特徴とする請求項５又は６に記載のサーバ装置。
【請求項８】
前記複数のプロトコルは、前記クライアント装置により暗号化された前記操作情報が前記クライアント装置から前記サーバ装置へ送信される第３プロトコルと、暗号化されない前記操作情報が前記クライアント装置から前記サーバ装置へ送信される第４プロトコルとを少なくとも含むことを特徴とする請求項１乃至７の何れか１項に記載のサーバ装置。
【請求項９】
前記第３プロトコルはＳＳＬであることを特徴とする請求項８に記載のサーバ装置。
【請求項１０】
ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムに含まれる前記サーバ装置に含まれるコンピュータに、
前記クライアント装置により表示される画面が、予め定められた複数の画面のうち何れかの画面に切り替えられる場合、前記複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記クライアント装置へ送信する操作リスト送信ステップと、
前記操作リスト送信ステップにより送信される前記操作リストに対応する画面を示す画面情報を送信する画面情報送信ステップと、
前記クライアント装置に入力されたユーザ操作を示す操作情報を、前記クライアント装置により決定されたプロトコルで前記クライアント装置から受信する操作情報受信ステップであって、前記操作リスト送信ステップにより送信された前記操作リストに含まれるプロトコル情報のうち、前記操作情報に対応するプロトコル情報が示すプロトコルを用いて前記操作情報を受信する操作情報受信ステップと、
前記操作情報受信ステップにより受信された前記操作情報が示すユーザ操作に応じた処理を実行する処理ステップと、
を実行させることを特徴とするプログラム。
【請求項１１】
ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムに含まれる前記クライアント装置において、
前記クライアント装置により表示される画面が、予め定められた複数の画面のうち何れかの画面に切り替えられる場合、予め定められた複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記サーバ装置から受信する操作リスト受信手段と、
前記操作リスト受信手段により受信された前記操作リストを記憶する第２記憶手段と、
ユーザ操作が入力される入力手段と、
前記第２記憶手段に記憶された前記操作リストから、前記入力手段を用いて入力された前記ユーザ操作を示す操作情報に対応するプロトコル情報を取得する取得手段と、
前記入力されたユーザ操作を示す操作情報を、前記複数のプロトコルのうち前記取得手段により取得された前記プロトコル情報が示すプロトコルを用いて前記サーバ装置へ送信する操作情報送信手段と、
を備えることを特徴とするクライアント装置。
【請求項１２】
ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムに含まれる前記クライアント装置に含まれるコンピュータに、
前記クライアント装置により表示される画面が、予め定められた複数の画面のうち何れかの画面に切り替えられる場合、前記複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記サーバ装置から受信する操作リスト受信ステップと、
前記操作リスト受信ステップにより受信された前記操作リストを第２記憶手段に記憶させる第２記憶ステップと、
前記第２記憶手段に記憶された前記操作リストから、入力手段を用いて入力されたユーザ操作を示す操作情報に対応するプロトコル情報を取得する取得ステップと、
前記入力されたユーザ操作を示す操作情報を、前記複数のプロトコルのうち前記取得ステップにより取得された前記プロトコル情報が示すプロトコルを用いて前記サーバ装置へ送信する操作情報送信ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置に入力されたユーザ操作をクライアント装置がネットワークを介してサーバ装置へ通知し、サーバ装置がユーザ操作に応じた処理を実行する通信システムの技術分野に関する。
【背景技術】
【０００２】
従来、例えばシンクライアント等のクライアント装置に入力されたユーザ操作に応じた処理をサーバ装置が実行するシステムが知られている。クライアント装置は、入力されたユーザ操作を所定のプロトコルを用いてサーバへ通知する。サーバ装置は、通知されたユーザ操作に応じた処理の実行結果等に基づいて、画面を示す情報をクライアント装置へ送信する。クライアント装置は、サーバ装置から受信した情報に基づいて、画面をディスプレイに表示する。例えば、特許文献１には、クライアントはサーバにＴＣＰを利用して接続し、遠隔操作が行われた場合、クライアントはＵＤＰを利用して入力イベントをサーバへ送信することが開示されている（段落［００５８］）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−４９６４１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、同一画面において様々なユーザ操作が可能であることが一般的である。その場合に、クライアント装置が、全てのユーザ操作に対して単一のプロトコルのみを用いてユーザ操作を通知することは妥当ではない場合がある。例えば、特許文献１に開示された技術のようにユーザ操作をＵＤＰで通知する場合、サーバ装置がユーザ操作を受理したか否かをクライアント装置が認識することができない。一方、ユーザ操作をＴＣＰで通知する場合、サーバ装置はユーザ操作を受理したときにクライアント装置へ確認応答を送信する。クライアント装置は確認応答を受信することで、サーバ装置がユーザ操作を受理したことを認識する。しかしながら、クライアント装置は確認応答を受信してから次のユーザ操作を通知するパケットを送信することとなる。そのため、ユーザ操作に対する応答時間が長くなる。ＵＤＰの場合は確認応答の送受信が行われないため、ＴＣＰの場合よりも応答時間は短くなる。
【０００５】
本発明は、以上の点に鑑みてなされたものであり、複数のプロトコルの中から、同一画面において可能な複数のユーザ操作のそれぞれに適したプロトコルを用いて、クライアント装置がサーバ装置へユーザ操作を通知することを可能とする通信システム、サーバ装置、クライアント装置、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、請求項１に記載の発明は、 ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムにおいて、前記サーバ装置は、予め定められた複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段と、前記クライアント装置により表示される画面が前記複数の画面のうち何れかの画面に切り替えられる場合、前記第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記クライアント装置へ送信する操作リスト送信手段と、前記操作リスト送信手段により送信される前記操作リストに対応する画面を示す画面情報を送信する画面情報送信手段と、前記クライアント装置に入力されたユーザ操作を示す操作情報を、前記クライアント装置により決定されたプロトコルで前記クライアント装置から受信する操作情報受信手段であって、前記操作リスト送信手段により送信された前記操作リストに含まれるプロトコル情報のうち、前記操作情報に対応するプロトコル情報が示すプロトコルを用いて前記操作情報を受信する操作情報受信手段と、前記操作情報受信手段により受信された前記操作情報が示すユーザ操作に応じた処理を実行する処理手段と、を備え、前記クライアント装置は、前記サーバ装置から前記操作リストを受信する操作リスト受信手段と、前記操作リスト受信手段により受信された前記操作リストを記憶する第２記憶手段と、前記サーバ装置から送信された前記画面情報を受信する画面情報受信手段と、前記画面情報受信手段により受信された前記画面情報が示す画面を表示する表示手段と、ユーザ操作が入力される入力手段と、前記第２記憶手段に記憶された前記操作リストから、前記入力手段を用いて入力された前記ユーザ操作を示す操作情報に対応するプロトコル情報を取得する取得手段と、前記入力されたユーザ操作を示す操作情報を、前記複数のプロトコルのうち前記取得手段により取得された前記プロトコル情報が示すプロトコルを用いて前記サーバ装置へ送信する操作情報送信手段と、を備えることを特徴とする。
【０００７】
請求項２に記載の発明は、前記クライアント装置は、前記操作リスト受信手段、前記第２記憶手段、前記入力手段、前記取得手段、前記操作情報送信手段を備える第１クライアント装置と、前記画面情報受信手段及び前記表示手段を備える第２クライアント装置と、を含むことを特徴とする。
【０００８】
請求項３に記載の発明は、前記クライアント装置はシンクライアントであることを特徴とする。
【０００９】
請求項４に記載の発明は、ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムに含まれる前記サーバ装置において、予め定められた複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段と、前記クライアント装置により表示される画面が前記複数の画面のうち何れかの画面に切り替えられる場合、前記第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記クライアント装置へ送信する操作リスト送信手段と、前記操作リスト送信手段により送信される前記操作リストに対応する画面を示す画面情報を送信する画面情報送信手段と、前記クライアント装置に入力されたユーザ操作を示す操作情報を、前記クライアント装置により決定されたプロトコルで前記クライアント装置から受信する操作情報受信手段であって、前記操作リスト送信手段により送信された前記操作リストに含まれるプロトコル情報のうち、前記操作情報に対応するプロトコル情報が示すプロトコルを用いて前記操作情報を受信する操作情報受信手段と、前記操作情報受信手段により受信された前記操作情報が示すユーザ操作に応じた処理を実行する処理手段と、を備えることを特徴とする。
【００１０】
請求項５に記載の発明は、前記複数のプロトコルは、前記サーバ装置が前記クライアント装置から前記操作情報を受信した場合に前記サーバ装置から前記クライアント装置へ確認応答が送信される第１プロトコルと、前記確認応答が送信されない第２プロトコルとを少なくとも含むことを特徴とする。
【００１１】
請求項６に記載の発明は、前記操作情報受信手段は、前記クライアント装置により送信される操作情報のうち前記第１プロトコルを用いて送信される第１操作情報が送信されるごとに更新される番号が付加された前記操作情報を受信し、前記クライアント装置から送信された操作情報のうち前記第２プロトコルを用いて送信された第２操作情報が前記操作情報受信手段により受信された場合、前記第２操作情報に付加された番号と一致する番号が付加された前記第１操作情報が前記操作情報受信手段により受信されているかを判定する判定手段を更に備え、前記処理手段は、前記判定手段により前記第１操作情報が受信されていないと判定された場合、前記操作情報受信手段により前記第１操作情報が受信されることに応じて前記第１操作情報が示すユーザ操作に応じた処理を実行した後、前記第２操作情報が示すユーザ操作に応じた処理を実行することを特徴とする。
【００１２】
請求項７に記載の発明は、前記第１プロトコルは、ＴＣＰであり、前記第２プロトコルは、ＵＤＰであることを特徴とする。
【００１３】
請求項８に記載の発明は、前記複数のプロトコルは、前記クライアント装置により暗号化された前記操作情報が前記クライアント装置から前記サーバ装置へ送信される第３プロトコルと、暗号化されない前記操作情報が前記クライアント装置から前記サーバ装置へ送信される第４プロトコルとを少なくとも含むことを特徴とする。
【００１４】
請求項９に記載の発明は、前記第３プロトコルはＳＳＬであることを特徴とする。
【００１５】
請求項１０に記載の発明は、ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムに含まれる前記サーバ装置に含まれるコンピュータに、前記クライアント装置により表示される画面が、予め定められた複数の画面のうち何れかの画面に切り替えられる場合、前記複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記クライアント装置へ送信する操作リスト送信ステップと、前記操作リスト送信ステップにより送信される前記操作リストに対応する画面を示す画面情報を送信する画面情報送信ステップと、前記クライアント装置に入力されたユーザ操作を示す操作情報を、前記クライアント装置により決定されたプロトコルで前記クライアント装置から受信する操作情報受信ステップであって、前記操作リスト送信ステップにより送信された前記操作リストに含まれるプロトコル情報のうち、前記操作情報に対応するプロトコル情報が示すプロトコルを用いて前記操作情報を受信する操作情報受信ステップと、前記操作情報受信ステップにより受信された前記操作情報が示すユーザ操作に応じた処理を実行する処理ステップと、を実行させることを特徴とする。
【００１６】
請求項１１に記載の発明は、ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムに含まれる前記クライアント装置において、前記クライアント装置により表示される画面が、予め定められた複数の画面のうち何れかの画面に切り替えられる場合、予め定められた複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記サーバ装置から受信する操作リスト受信手段と、前記操作リスト受信手段により受信された前記操作リストを記憶する第２記憶手段と、ユーザ操作が入力される入力手段と、前記第２記憶手段に記憶された前記操作リストから、前記入力手段を用いて入力された前記ユーザ操作を示す操作情報に対応するプロトコル情報を取得する取得手段と、前記入力されたユーザ操作を示す操作情報を、前記複数のプロトコルのうち前記取得手段により取得された前記プロトコル情報が示すプロトコルを用いて前記サーバ装置へ送信する操作情報送信手段と、を備えることを特徴とする。
【００１７】
請求項１２に記載の発明は、ユーザ操作が入力されるクライアント装置と、前記クライアント装置がネットワークを介して接続可能なサーバ装置であって、前記ユーザ操作に応じた処理を実行するサーバ装置とを備える通信システムに含まれる前記クライアント装置に含まれるコンピュータに、前記クライアント装置により表示される画面が、予め定められた複数の画面のうち何れかの画面に切り替えられる場合、前記複数の画面に対応する複数の操作リストを記憶する第１記憶手段であって、対応する画面に応じた複数のユーザ操作のそれぞれごとに、ユーザ操作を示す操作情報と、予め定められた複数のプロトコルのうち前記ユーザ操作に対応するプロトコルを示すプロトコル情報とを含む操作リストを記憶する第１記憶手段に記憶された前記複数の操作リストのうち、切り替え後の画面に対応する操作リストを前記サーバ装置から受信する操作リスト受信ステップと、前記操作リスト受信ステップにより受信された前記操作リストを第２記憶手段に記憶させる第２記憶ステップと、前記第２記憶手段に記憶された前記操作リストから、入力手段を用いて入力されたユーザ操作を示す操作情報に対応するプロトコル情報を取得する取得ステップと、前記入力されたユーザ操作を示す操作情報を、前記複数のプロトコルのうち前記取得ステップにより取得された前記プロトコル情報が示すプロトコルを用いて前記サーバ装置へ送信する操作情報送信ステップと、を実行させることを特徴とする。
【発明の効果】
【００１８】
請求項１、３、４、１０乃至１２のそれぞれに記載の発明によれば、１つの画面に対応する複数のユーザ操作のそれぞれごとにプロトコルを定義する操作リストが、複数の画面について第１記憶手段に記憶される。クライアント装置に表示される画面が切り替えられる場合、サーバ装置は、切り替え後の画面に対応する操作リストをクライアント装置へ送信する。クライアント装置は、サーバ装置から受信された操作リストに基づいて、複数のプロトコルのうち入力されたユーザ操作に対応するプロトコルを用いて、操作情報を送信する。従って、複数のプロトコルの中から、同一画面において可能な複数のユーザ操作のそれぞれに適したプロトコルを用いて、クライアント装置がサーバ装置へユーザ操作を通知することができる。
【００１９】
請求項２に記載の発明によれば、ユーザ操作に応じて操作情報を送信する処理と、画面を表示する処理が別々のクライアント装置により実行される。従って、ユーザインターフェースに関する処理負荷を２つのクライアント装置に分散することができる。
【００２０】
請求項５に記載の発明によれば、クライアント装置は、サーバ装置が確実に受理したか否かを確認可能な第１プロトコルと、第１プロトコルよりも応答時間が短い第２プロトコルとを、通知するユーザ操作に応じて使い分けることができる。
【００２１】
請求項６及び７のそれぞれに記載の発明によれば、クライアント装置は、番号を付加した操作情報をサーバ装置へ送信する。クライアント装置は、第１プロトコルを用いて操作情報を送信するごとに、付加される番号を更新する。クライアント装置は、第２プロトコルを用いて操作情報を送信する場合、付加される番号を更新しない。サーバ装置は、第２プロトコルを用いて操作情報を受信したものの、この操作情報に付加された番号と一致する番号が付加された操作情報を、第１プロトコルを用いてまだ受信していない場合、第２プロトコルを用いて受信した操作情報が示すユーザ操作に応じた処理の実行を保留する。サーバ装置は、同じ番号が付加された操作情報を、第１プロトコルを用いて受信したとき、この操作情報が示すユーザ操作に応じた処理を先に実行し、保留しておいた処理をその後に実行する。そのため、第１プロトコルを用いて通知されるユーザ操作に応じた処理と、第２プロトコルを用いて通知されたユーザ操作に応じた処理との間で、処理の順序を、ユーザ操作が行われた順序に一致させることができる。 
【００２２】
請求項８及び９のそれぞれに記載の発明によれば、クライアント装置は、秘匿する必要があるユーザ操作を暗号化してサーバ装置へ通知することができる。また、クライアント装置は、秘匿しなくてもよいユーザ操作を暗号化せずに通知することで、暗号化するよりも応答時間を短くすることができる。
【図面の簡単な説明】
【００２３】
【図１】（Ａ）は、一実施形態の通信システムＳの概要構成例を示す図である。（Ｂ）は、一実施形態のアプリケーションサーバ１の概要構成例を示す図である。（Ｃ）は、本実施形態のコントローラ２の概要構成例を示す図である。
【図２】（Ａ）は、重要度表ＤＢ６の構成例を示す図である。（Ｂ）は、状態遷移表の構成例を示す図である。
【図３】通信システムＳの動作例を示すシーケンス図である。
【図４】（Ａ）は、コントローラ２におけるコントローラ受信処理の一例を示すフローチャートである。（Ｂ）は、コントローラ２におけるユーザ操作処理の一例を示すフローチャートである。
【図５】（Ａ）は、アプリケーションサーバ１におけるＴＣＰ受信処理の一例を示すフローチャートである。（Ｂ）は、アプリケーションサーバ１におけるＵＤＰ受信処理の一例を示すフローチャートである。
【図６】アプリケーションサーバ１における操作順序ソート処理の一例を示すフローチャートである。
【図７】アプリケーションサーバ１におけるステートマシン処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２４】
以下、本発明の実施形態を図面に基づいて説明する。
【００２５】
［１．通信システムの構成］
図１（Ａ）は、本実施形態の通信システムＳの概要構成例を示す図である。図１（Ａ）に示すように、通信システムＳは、アプリケーションサーバ１、複数のコントローラ２、及び複数のレンダラ３を含んで構成される。アプリケーションサーバ１は、本発明のサーバ装置の一例である。コントローラ２は、本発明の第１クライアント装置の一例である。レンダラ３は、本発明の第２クライアント装置の一例である。アプリケーションサーバ１、コントローラ２、及びレンダラ３は、それぞれネットワーク１０に接続される。ネットワーク１０は、例えば、インターネット等により構成される。
【００２６】
コントローラ２及びレンダラ３はシンクライアントであってもよい。コントローラ２及びレンダラ３は、基本的にはユーザインターフェースに関する処理のみを実行する。アプリケーションサーバ１は、その他の大部分の処理を実行する。コントローラ２は、ユーザの操作に関する処理を実行する。レンダラ３は、アプリケーションサーバ１による処理結果を示す動画を表示する。コントローラ２及びレンダラ３がユーザインターフェースに関する処理を分担することで、処理負荷を分散することができる。
【００２７】
アプリケーションサーバ１は、コントローラ２からの要求に応じてアプリケーションプログラムを実行する。アプリケーションプログラムの例として、メニュー、お絵描き、カラオケ、ゲーム、情報検索、オンラインショッピング等のアプリケーションプログラムが挙げられる。アプリケーションサーバ１は、コントローラ２から通知されるユーザ操作に応じた処理を、アプリケーションプログラムに従って実行する。また、アプリケーションサーバ１は、実行するアプリケーションプログラムに対応する画面をレンダラ３に表示させる。具体的に、アプリケーションサーバ１は、アプリケーションプログラムの実行に応じた動画及び音声のうち少なくとも動画を、ＵＤＰを用いたストリーミングでレンダラ３へ送信する。１つのアプリケーションプログラムに対応する画面は１つであってもよいし複数あってもよい。例えば、メニューのアプリケーションプログラムは、複数のアプリケーションプログラムの中から実行させるアプリケーションプログラムをユーザが選択するためのプログラムである。メニューのアプリケーションプログラムが起動すると、選択可能なアプリケーションプログラムの名称がメニュー項目として選択可能に表示される。例えばメニュー項目として、情報検索、カラオケ、オンラインショッピング、ゲーム、お絵描きがあるとする。この場合、メニューのアプリケーションプログラムに対応する画面として、情報検索の項目の上にカーソルが表示されている画面、カラオケの項目の上にカーソルが表示されている画面、オンラインショッピングの項目の上にカーソルが表示されている画面、ゲームの項目の上にカーソルが表示されている画面、お絵描きの項目にカーソルが表示されている画面がある。アプリケーションサーバ１は、コントローラ２から通知されるユーザ操作によって、レンダラ３に表示される画面を切り替える場合がある。
【００２８】
アプリケーションサーバ１は、アプリケーションＤＢ（DataBase）５及び重要度表ＤＢ６にアクセス可能に構成されている。例えば、アプリケーションサーバ１と、アプリケーションＤＢ５及び重要度表ＤＢ６とがＬＡＮ（Local Area Network）等のネットワークにより接続されてもよい。或いは、アプリケーションサーバ１が、アプリケーションＤＢ５及び重要度表ＤＢ６を備えてもよい。アプリケーションＤＢ５は、１又は複数のアプリケーションプログラムが登録されている。重要度表ＤＢ６には、複数の重要度表が登録されている。重要度表は、本発明の操作リストの一例である。アプリケーションＤＢ５に登録されているアプリケーションプログラムをアプリケーションサーバ１が実行することによりレンダラ３が表示可能な画面ごとに、重要度表が重要度表ＤＢ６に登録されている。重要度表には、ユーザ操作に対応する重要度が定義される。重要度は、コントローラ２がアプリケーションサーバ１と通信するときに用いられるプロトコルを示す。重要度は、本発明のプロトコル情報の一例である。レンダラ３により表示される画面が切り替えられるとき、アプリケーションサーバ１は、切り替え後の画面に対応する重要度表をコントローラ２へ送信する。重要度表の詳細は後述する。
【００２９】
コントローラ２は、ユーザによる操作を受け付ける。コントローラ２は、受け付けたユーザ操作を、ネットワーク１０を介してアプリケーションサーバ１へ通知する。具体的に、コントローラ２は、ユーザ操作を識別するキーＩＤを含むユーザ操作をアプリケーションサーバ１へ送信する。このとき、コントローラ２は、アプリケーションサーバ１から受信しておいた重要度表を参照して、ユーザ操作に対応する重要度を取得する。コントローラ２は、取得した重要度が示すプロトコルを用いてユーザ操作を送信する。従って、アプリケーションサーバ１は、コントローラ２が用いたプロトコルと同じプロトコルを用いてユーザ操作を受信する。重要度表により、ユーザ操作に応じた適切なプロトコルでそのユーザ操作がアプリケーションサーバ１に通知される。コントローラ２の例として、ネットワーク１０に接続可能なリモートコントローラ、スマートフォン、携帯電話機、携帯用ゲーム機等が挙げられる。
【００３０】
レンダラ３は、アプリケーションサーバ１から、アプリケーションプログラムの実行結果を示す動画及び音声のうち少なくとも動画を受信する。実行結果を示す動画を受信した場合、レンダラ３は、受信した動画をディスプレイに表示させる。実行結果を示す音声を受信した場合、レンダラ３は、受信した音声をスピーカにより出力させる。レンダラ３の例として、スマートテレビ等のテレビ受像機、パーソナルコンピュータ、カラオケ装置等が挙げられる。
【００３１】
ユーザは、コントローラ２とレンダラ３との組み合わせにより、アプリケーションプログラムを利用する。すなわち、ユーザは、コントローラ２を操作することにより、アプリケーションサーバ１によりアプリケーションプログラムを実行させ、レンダラ３を利用して、アプリケーションプログラムの実行結果を確認する。
【００３２】
なお、通信システムＳは、コントローラ２とレンダラ３との機能を兼ね備える一体型クライアント４を含んでもよいし、含まなくてもよい。一体型クライアント４の例として、テレビ受像機、パーソナルコンピュータ等が挙げられる。
【００３３】
［２．アプリケーションサーバ１の構成］
次に、図１（Ｂ）を参照して、アプリケーションサーバ１の構成について説明する。図１（Ｂ）は、本実施形態のアプリケーションサーバ１の概要構成例を示す図である。図１（Ｂ）に示すように、アプリケーションサーバ１は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、記憶部１４及び通信部１５等を備えて構成される。これらの構成要素は、バス１６に接続されている。通信部１５は、ネットワーク１０に接続される。記憶部１４は、例えばハードディスクドライブにより構成される。記憶部１４には、複数の動画データが記憶される。各動画データは、レンダラ３により表示される画面を表す動画を表示するためのデータである。各動画データは動画ＩＤに対応付けて記憶される。動画ＩＤは、動画データを識別する識別情報である。また、記憶部１４には、状態遷移表が記憶される。状態遷移表の詳細については後述する。記憶部１４に、アプリケーションＤＢ５及び重要度表ＤＢ６の少なくとも何れか一方が記憶されていてもよい。また、記憶部１４には、ＯＳ、及びサーバプログラム等が記憶されている。サーバプログラムは、コンピュータとしてのＣＰＵ１１に、重要度表の送信、アプリケーションプログラムの実行、アプリケーションプログラムの実行結果を示す動画の送信等の処理を実行させるプログラムである。サーバプログラム等は、例えばネットワーク１０等を介して他のサーバ等からダウンロードされてもよい。或いは、サーバプログラム等は、例えば光ディスク、磁気テープ、メモリカード等の記録媒体に記録されてドライブ装置を介して記憶部１４に読み込まれてもよい。
【００３４】
［３．コントローラ２の構成］
次に、図１（Ｃ）を参照して、コントローラ２の構成について説明する。図１（Ｃ）は、本実施形態のコントローラ２の概要構成例を示す図である。図１（Ｃ）に示すように、コントローラ２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、記憶部２４、通信部２５、入力部２６、及び表示部２７等を備えて構成される。これらの構成要素は、バス２８に接続されている。通信部２５は、ネットワーク１０に接続される。入力部２６は、ユーザ操作を入力するための入力デバイスである。入力部２６は、例えばボタン、キー、タッチパネル、キーボード等の少なくとも１つにより構成されてもよい。表示部２７は、例えば液晶パネル、有機ＥＬパネル等により構成されるディスプレイである。ＲＡＭ２３は、本発明の第２記憶手段の一例である。ＲＡＭ２３には、コントローラ２がアプリケーションサーバ１から受信した重要度表が記憶される。記憶部２４は、例えばフラッシュメモリ又はハードディスクドライブ等により構成される。記憶部２４には、ＯＳ、及びコントローラプログラム等が記憶されている。コントローラプログラムは、コンピュータとしてのＣＰＵ２１に、重要度表の受信及び記憶、操作画面の表示、ユーザの操作に応じた処理の実行、アプリケーションサーバ１への要求の送信等の処理を実行させるプログラムである。コントローラプログラム等は、例えばネットワーク１０等を介してアプリケーションサーバ１等のサーバ装置からダウンロードされてもよい。或いは、コントローラプログラム等は、例えば光ディスク、磁気テープ、メモリカード等の記録媒体に記録されてドライブ装置を介して記憶部２４に読み込まれてもよい。或いは、コントローラプログラム等は、コントローラ２に予めインストールされていてもよい。
【００３５】
［４．重要度表、状態遷移表］
図２（Ａ）は、重要度表ＤＢ６の構成例を示す図である。重要度表には、ユーザ操作に対応する重要度が定義される。重要度表ＤＢ６には、レンダラ３が表示可能な画面ごとに重要度表が登録されている。ユーザ操作に応じてレンダラ３により表示される画面が別の画面に切り替わる場合がある。本実施形態においては、ユーザ操作に対するアプリケーションサーバ１の振る舞いのモデルとしてステートマシンが定義される。そして、ステートマシンにおける状態の遷移により画面が切り替わると定義されている。従って状態と画面は１対１で対応するので、重要度表は状態ごとに登録される。１つのアプリケーションプログラムについて、１つの状態のみ（すなわち１つの画面のみ）が存在してもよいし、複数の状態（すなわち複数の画面）が存在してもよい。重要度表は、例えば通信システムＳの管理者により作成される。
【００３６】
図２（Ａ）に示すように、重要度表ＤＢ６に登録される各重要度表は状態ＩＤを含む。状態ＩＤは、ステートマシンにおける状態を識別する識別情報であるとともに、その状態に対応する画面を識別する識別情報である。
【００３７】
各重要度表は更に複数のキーＩＤを含む。キーＩＤは、本発明のユーザ操作情報の一例である。キーＩＤは、対応する状態ＩＤが示す画面でユーザが可能なユーザ操作を識別する識別情報である。重要度表に載っていないキーＩＤが示すユーザ操作は無効となる。基本的に１つの画面で複数種類のユーザ操作が可能である。本実施形態において、キーＩＤはユーザに押されるキーを示す。このキーは、例えばコントローラ２が備えるキーであってもよい。また例えばこのキーは、コントローラ２の表示部２７に表示されるキーであってもよい。ユーザは例えばタッチパネル、マウス又はキーボード等を操作することにより、表示部２７に表示されているキーを押すことができる。
【００３８】
更に各重要度表は、キーＩＤごとに、重要度を含む。重要度は、対応するキーＩＤを含むパケットをコントローラ２がアプリケーションサーバ１へ送信するために用いられるプロトコルを示す。プロトコルは、例えばトランスポート層のプロトコル、アプリケーション層のプロトコル等であってもよい。パケットの送信に使用可能な複数のプロトコルが通信システムＳの管理者により予め定められてもよい。
【００３９】
例えば複数のプロトコルは、アプリケーションサーバ１がコントローラ２からキーＩＤを受信した場合にアプリケーションサーバ１からコントローラ２へＡＣＫ（確認応答）が送信される第１プロトコルと、ＡＣＫが送信されない第２プロトコルとを少なくとも含んでもよい。この場合、コントローラ２は、アプリケーションサーバ１が確実に受理したか否かを確認可能な第１プロトコルと、第１プロトコルよりも応答時間が短い第２プロトコルとを、通知するユーザ操作に応じて使い分けることができる。例えば、応答時間の短さよりもアプリケーションサーバ１が確実に通知を受信することが優先されるユーザ操作について、第１プロトコルが設定される。アプリケーションサーバ１が確実に通知を受信することよりも応答時間の短さが優先されるユーザ操作について、第２プロトコルが設定される。第１プロトコルは例えばＴＣＰ（Transmission Control Protocol：トランスミッションコントロールプロトコル）であってもよい。第２プロトコルは例えばＵＤＰ（User Datagram Protocol：ユーザデータグラムプロトコル）であってもよい。
【００４０】
例えば複数のプロトコルは、コントローラ２により暗号化されたキーＩＤがコントローラ２からアプリケーションサーバ１へ送信される第３プロトコルと、暗号化されないキーＩＤがコントローラ２からアプリケーションサーバ１へ送信される第４プロトコルとを少なくとも含んでもよい。これにより、コントローラ２は、秘匿する必要があるユーザ操作を暗号化して通知することができる。また、コントローラ２は、秘匿しなくてもよいユーザ操作を暗号化せずに通知することで、暗号化するよりも応答時間を短くすることができる。例えば、暗証番号を入力する画面において、暗証番号を入力して送信するための「０」〜「９」の各数字キー、暗証番号を確定するための入力キー、及びメニューを表示するためのメニューキーを押すことが可能であるとする。この場合、各数字キーには第３プロトコルが設定されてもよい。入力キー及びメニューキーには第４プロトコルが設定されてもよい。第３プロトコルは例えばＳＳＬ（Secure Socket Layer：セキュアソケットレイヤー）であってもよい。ここでのＳＳＬは、より詳しくは、Secure Socket Layer Over Transmission Control Protocol を表している。第４プロトコルは、例えばアプリケーション層のプロトコルが暗号化プロトコルではないＴＣＰやＵＤＰ等であってもよい。
【００４１】
図２（Ａ）に示す重要度表の例においては、重要度として「０」又は「１」が設定される。例えば重要度「０」はＵＤＰを示し、重要度「１」はＴＣＰを示す。なお、３種類以上のプロトコルが設定可能であってもよい。例えば、重要度「０」はＵＤＰを示し、重要度「１」はＴＣＰを示し、重要度「２」はＳＳＬを示してもよい。
【００４２】
上述したような重要度表により、複数のプロトコルの中から、同一画面において可能な複数のユーザ操作のそれぞれに適したプロトコルを用いて、コントローラ２がアプリケーションサーバ１へユーザ操作を通知することができる。
【００４３】
図２（Ｂ）は、状態遷移表の構成例を示す図である。状態遷移表は、ステートマシンにおいて、状態遷移が起こる条件となるユーザ操作を、遷移前の状態と遷移後の状態との組み合わせごとに定義する。
【００４４】
図２（Ｂ）に示すように、状態遷移表の第１列の各セルには前状態ＩＤが設定されている。前状態ＩＤは、遷移前の状態、すなわち現在状態を示す状態ＩＤである。状態遷移表の第１行の各セルには後状態ＩＤが設定されている。後状態ＩＤは、遷移後の状態を示す状態ＩＤである。これらのセルを除いた他のセルのうち一部のセルには、キーＩＤ及び動画ＩＤが設定される。注目するセルに設定されているキーＩＤは、注目するセルの行に対応する前状態ＩＤが示す状態から、注目するセルの列に対応する後状態ＩＤが示す状態へ遷移するための条件に相当するユーザ操作を示す。図２（Ｂ）の例において、キーＩＤ「操作なし」は、何らの操作も行われなかった場合を示す。注目するセルに設定されている動画ＩＤは、注目するセルの行に対応する前状態ＩＤが示す状態から、注目するセルの列に対応する後状態ＩＤが示す状態へ遷移するときにレンダラ３に表示される動画を示す。本実施形態においては、動画データに基づいて動画がレンダラ３に表示される。そのため、実際には全く動かない映像も動画と称している。しかしながら、動画ＩＤが示す映像が全く動かない場合、その映像は静止画であってもよい。
【００４５】
例えば、図２（Ｂ）において、状態ＳＴ１を示す前状態ＩＤと状態ＳＴ１を示す後状態ＩＤに対応するセルには、操作なしを示すキーＩＤ、動画１の動画ＩＤが設定されている。これは、現在状態がＳＴ１であるときにユーザが何も操作を行わなかった場合、実質的には状態遷移は起こらず、動画１がレンダラ３に表示されることを示す。動画１は、状態ＳＴ１に対応する画面を表す。状態ＳＴ１を示す前状態ＩＤと状態ＳＴ２を示す後状態ＩＤに対応するセルには、右キーを示すキーＩＤ、動画Ａの動画ＩＤが設定されている。これは、現在状態がＳＴ１であるときにユーザが右キーを押した場合、現在状態が状態ＳＴ１から状態ＳＴ２に遷移し、動画Ａがレンダラ３に表示されることを示す。動画Ａは、状態ＳＴ１に対応する画面から状態ＳＴ２に対応する画面へ画面が変化する様子を表す動画である。状態ＳＴ１を示す前状態ＩＤと状態ＳＴ３を示す後状態ＩＤに対応するセルには、キーＩＤ及び動画ＩＤは設定されていない。従って、状態ＳＴ１から状態ＳＴ３へは直接遷移しない。
【００４６】
［５．第１プロトコル、第２プロトコルを用いた場合の通信方法］
次に、第１プロトコルと第２プロトコルを用いた場合におけるアプリケーションサーバ１とコントローラ２との間の通信方法の一例について説明する。第１プロトコルの例としてＴＣＰを用い、第２プロトコルの例としてＵＤＰを用いる。また重要度表において、ＵＤＰの重要度を「０」とし、ＴＣＰの重要度を「１」とする。
【００４７】
ユーザ操作を通知するとき、コントローラ２は、そのユーザ操作を示すキーＩＤを含むパケットをアプリケーションサーバ１へ送信する。このとき、コントローラ２は、送信されるキーＩＤに、全体シーケンス番号及びＴＣＰシーケンス番号を付加してもよい。
【００４８】
全体シーケンス番号は、ＴＣＰ及びＵＤＰの何れを用いるかにかかわらずコントローラ２がキーＩＤを送信するたびに更新される番号である。例えば、全体シーケンス番号は１ずつ増加してもよい。全体シーケンス番号は、ユーザ操作がコントローラ２に入力された順序を示す。
【００４９】
ＴＣＰシーケンス番号は、ＴＣＰを用いてコントローラ２がキーＩＤを送信するたびに更新される番号である。例えば、ＴＣＰシーケンス番号は１ずつ増加してもよい。ＴＣＰシーケンス番号は、重要度「１」に対応するユーザ操作がアプリケーションサーバ１によって処理されるべき順番を示す。コントローラ２は、重要度「１」に対応するユーザ操作を示すキーＩＤを、ＴＣＰを用いて送信してから、キーＩＤの送信に対応するＡＣＫをアプリケーションサーバ１から受信するまでの間は、重要度「１」に対応するユーザ操作の入力を受け付けない。これにより、重要度「１」に対応するユーザ操作が処理される順序が保たれる。ＵＤＰを用いてキーＩＤが送信されてもＴＣＰシーケンス番号は更新されない。コントローラ２は、重要度「１」に対応するユーザ操作を示すキーＩＤを送信した後、これに対するＡＣＫを受信しなくても、重要度「０」に対応するユーザ操作の入力を受け付ける。そして、コントローラ２は、受け付けたユーザ操作を示すキーＩＤを、ＵＤＰを用いてアプリケーションサーバ１へ送信する。これにより応答時間を短くすることができる。しかしながら、アプリケーションサーバ１は、後に送信された重要度「０」に対応するユーザ操作を示すキーＩＤを、先に送信された重要度「１」に対応するユーザ操作を示すキーＩＤよりも先に受信する可能性がある。そのため、アプリケーションサーバ１が、キーＩＤを受信した順にユーザ操作を処理すると、重要度「１」に対応するユーザ操作と重要度「０」に対応するユーザ操作との間の処理の順序を保つことができない。
【００５０】
そこで、アプリケーションサーバ１は、受信したキーＩＤに付加されたＴＣＰシーケンス番号を利用する。具体的に、アプリケーションサーバ１は、ＵＤＰを用いて送信されたキーＩＤを受信した場合、このキーＩＤに付加されたＴＣＰシーケンス番号と同一のＴＣＰシーケンス番号が付加されたキーＩＤが既にＴＣＰを用いて受信されているか否かを判定する。同一のＴＣＰシーケンス番号が付加されたキーＩＤがＴＣＰを用いて受信されている場合、アプリケーションサーバ１は、ＵＤＰを用いて受信されたキーＩＤが示すユーザ操作に応じた処理を直ちに実行する。同一のＴＣＰシーケンス番号が付加されたキーＩＤがＴＣＰを用いて受信されていない場合、アプリケーションサーバ１は、ＵＤＰを用いて受信されたキーＩＤが示すユーザ操作に応じた処理を保留する。アプリケーションサーバ１は、同一のＴＣＰシーケンス番号が付加されたキーＩＤがＴＣＰを用いて受信すると、受信したキーＩＤが示すユーザ操作に応じた処理を実行する。この後、アプリケーションサーバ１は、保留された、ＵＤＰを用いて受信されたキーＩＤが示すユーザ操作に応じた処理を実行する。これにより、重要度「１」に対応するユーザ操作と重要度「０」に対応するユーザ操作との間の処理の順序を保つことができる。処理が保留されたユーザ操作が複数存在する場合、アプリケーションサーバ１は、全体シーケンス番号の順に、保留された処理を実行してもよい。この場合、重要度「０」に対応するユーザ操作間の処理の順序が保たれる。なお、重要度「０」に対応するユーザ操作間の処理の順序は保たれなくてもよい。
【００５１】
重要度「１」に対応するユーザ操作が行われた場合、ステートマシンにおける状態が変化し、重要度「０」に対応するユーザ操作が行われた場合、状態は変化しないように状態遷移表が作成されているものとする。従って、重要度「１」に対応するユーザ操作が行われた場合にのみ、画面が切り替わる。
【００５２】
図３は、本実施形態の通信システムＳの動作例を示すシーケンス図である。例えばコントローラ２がアプリケーションサーバ１にＴＣＰを用いて接続すると、アプリケーションサーバ１は、現在状態を初期状態に設定する。初期状態は、例えばアプリケーションプログラムを選択するためのメニュー画面に対応する状態である。アプリケーションサーバ１は、現在状態に対応する重要度表をコントローラ２へ送信する（ステップＳ１）。この重要度表において、上、下、左及び右の各方向キーと、丸印キー及びバツ印キーが定義されている。メニュー画面において、方向キーは、メニュー上のカーソルを移動させるためのキーである。丸印キーは、現在カーソルが位置するメニュー項目に対応するアプリケーションプログラムを起動させるためのキーである。バツ印キーは、メニュー画面を終了させるためのキーである。各キーに対して重要度「１」が設定されている。こうした重要度の設定は、メニューに対する操作は順番通りに確実にアプリケーションサーバ１により処理される必要があるという思想に基づく。アプリケーションサーバ１は、例えば情報検索を示すメニュー項目上にカーソルが表示されるメニュー画面の動画のレンダラ３への送信を開始する（ステップＳ２）。レンダラ３はメニュー画面を表示する。動画の送信開始後、アプリケーションサーバ１は、コントローラ２からの接続に対するＡＣＫをコントローラ２へ送信する（ステップＳ３）。
【００５３】
ＡＣＫの受信後、ユーザはコントローラ２の左キーを押下する。すると、コントローラ２は、全体シーケンス番号「１」、ＴＣＰシーケンス番号「１」、キーＩＤ「左」を含むパケットを、ＴＣＰを用いてアプリケーションサーバ１へ送信する（ステップＳ４）。アプリケーションサーバ１は、左キーに対応して、状態遷移表に従って状態を遷移させる。遷移後の状態は、例えば情報検索を示すメニュー項目の１つ左にあるカラオケを示すメニュー項目上にカーソルが表示されるメニュー画面に対応する状態である。全てのメニュー画面において、重要度表の内容は一致する。すなわち、メニュー画面間においては、メニュー上のカーソルの位置が異なるものの、入力可能なユーザ操作及びユーザ操作に対する重要度は一致する。従って、状態が遷移しても重要度表の内容が変化しない場合、アプリケーションサーバ１は、コントローラ２へ重要度表を送信しなくてもよい。アプリケーションサーバ１は、左キーに対応して、メニュー上に表示されるカーソルが左へ移動する動画をレンダラ３へ送信する（ステップＳ５）。アプリケーションサーバ１は、ＡＣＫをコントローラ２へ送信する（ステップＳ６）。次いで、アプリケーションサーバ１は、カーソル移動後のメニュー画面の動画送信を継続する。
【００５４】
ＡＣＫの受信後、ユーザは再度左キーを押下する。すると、コントローラ２は、全体シーケンス番号「２」、ＴＣＰシーケンス番号「２」、キーＩＤ「左」を含むパケットを、ＴＣＰを用いてアプリケーションサーバ１へ送信する（ステップＳ７）。アプリケーションサーバ１は、左キーに対応して、状態遷移表に従って状態を遷移させる。遷移後の状態は、例えばカラオケを示すメニュー項目の１つ左にあるお絵描きを示すメニュー項目上にカーソルが表示されるメニュー画面に対応する状態である。アプリケーションサーバ１は、メニュー上に表示されるカーソルが更に左へ移動する動画をレンダラ３へ送信する（ステップＳ８）。そして、アプリケーションサーバ１は、ＡＣＫをコントローラ２へ送信し（ステップＳ９）。
【００５５】
ＡＣＫの受信後、ユーザは丸印キーを押下する。すると、コントローラ２は、全体シーケンス番号「３」、ＴＣＰシーケンス番号「３」、キーＩＤ「マル」を含むパケットを、ＴＣＰを用いてアプリケーションサーバ１へ送信する（ステップＳ１０）。アプリケーションサーバ１は、状態遷移表に従って状態を遷移させる。遷移後の状態は、例えばお絵描き画面に対応する状態である。アプリケーションサーバ１は、遷移後の状態に対応する重要度表をコントローラ２へ送信する（ステップＳ１１）。この重要度表において、上、下、左及び右の各方向キーと、バツ印キー及び三角印キーが定義されている。更に重要度表には、上キーと丸印キーの同時押し、下キーと丸印キーの同時押し、左キーと丸印キーの同時押し、及び右キーと丸印キーの同時押しが定義されている。お絵描き画面において、方向キーはカーソルを移動させるためのキーである。方向キーと丸印キーの同時押しは、カーソルを移動させながらカーソルの位置に線を描くための操作である。三角印キーは、線を引くための色を変更するためのキーである。バツ印キーはお絵描きを終了するためのキーである。バツ印キー及び三角印キーに対して重要度「１」が設定されている。その他のキーに対して重要度「０」が設定されている。こうした重要度の設定は、お絵描きにおけるカーソルの移動及び描画の操作は、順番が入れ多少替わったり、処理されない操作が一部あったりしたとしても大きな影響はなく、応答時間の短縮を優先するという思想に基づく。重要度の送信後、アプリケーションサーバ１は、お絵描きのアプリケーションプログラムを起動する。またアプリケーションサーバ１は、メニュー画面から、例えば線を描画するために現在選択されている色が白であるお絵描き画面に切り替わる動画をレンダラ３へ送信する（ステップＳ１２）。そして、アプリケーションサーバ１は、ＡＣＫをコントローラ２へ送信する（ステップ１３）。
【００５６】
ユーザは左キーと丸印キーを同時に押下する。この操作に対応する重要度は「０」である。コントローラ２は、全体シーケンス番号「４」、ＴＣＰシーケンス番号「３」、キーＩＤ「左＋マル」を含むパケットを、ＵＤＰを用いてアプリケーションサーバ１へ送信する（ステップＳ１４）。ＵＤＰのため、ＴＣＰシーケンス番号は更新されない。また、現在状態は変化しない。従って、アプリケーションサーバ１は、引き続きお絵描き画面の動画をレンダラ３へ送信する（ステップＳ１５）。ただし、アプリケーションサーバ１は、お絵描き画面において、カーソルが左へ移動して線が引かれる動画をレンダラ３へ送信するがＵＤＰでキーＩＤを受信したので、アプリケーションサーバ１は、ＡＣＫを送信しない。
【００５７】
次いで、ユーザは上キーと丸印キーを同時に押下する。この操作に対応する重要度は「０」である。コントローラ２は、全体シーケンス番号「５」、ＴＣＰシーケンス番号「３」、キーＩＤ「上＋マル」を含むパケットを、ＵＤＰを用いてアプリケーションサーバ１へ送信する（ステップＳ１６）。アプリケーションサーバ１は、カーソルが上へ移動して線が引かれるお絵描き画面の動画をレンダラ３へ送信する（ステップＳ１７）。
【００５８】
次いで、ユーザは三角印キーを押下する。この操作に対応する重要度は「１」である。コントローラ２は、全体シーケンス番号「６」、ＴＣＰシーケンス番号「４」、キーＩＤ「サンカク」を含むパケットを、ＴＣＰを用いてアプリケーションサーバ１へ送信する（ステップＳ１８）。次いで、ユーザは右キーと丸印キーを同時に押下する。この操作に対応する重要度は「０」である。コントローラ２は、全体シーケンス番号「７」、ＴＣＰシーケンス番号「４」、キーＩＤ「右＋マル」を含むパケットを、ＵＤＰを用いてアプリケーションサーバ１へ送信する（ステップＳ１９）。
【００５９】
ここで、アプリケーションサーバ１は、キーＩＤ「サンカク」を含むパケットとキーＩＤ「右＋マル」を含むパケットのうちキーＩＤ「右＋マル」を含むパケットの方を先に受信した。このキーＩＤに付加されたＴＣＰシーケンス番号は「４」である。アプリケーションサーバ１は、ＴＣＰシーケンス番号「１」〜「３」が付加されたキーＩＤを、ＴＣＰを用いてそれぞれステップＳ４、Ｓ７、Ｓ１０で受信している。しかしながら、アプリケーションサーバ１は、ＴＣＰシーケンス番号「４」が付加されたキーＩＤ「サンカク」を、ＴＣＰを用いて受信していない。そこで、アプリケーションサーバ１は、カーソルを右へ移動させて線を引く処理を保留する。
【００６０】
その後、アプリケーションサーバ１は、キーＩＤ「サンカク」を受信する。すると、アプリケーションサーバ１は、状態遷移表に従って状態を遷移させる。遷移後の状態は、赤の線を引くためのお絵描き画面に対応する状態である。アプリケーションサーバ１は、線の描画に用いられる色が白から赤に変化するお絵描き画面の動画をレンダラ３へ送信する（ステップＳ２０）。次いで、アプリケーションサーバ１は、ＡＣＫをコントローラ２へ送信する（ステップ２１）。次いで、アプリケーションサーバ１は、カーソルが左へ移動して線が引かれるお絵描き画面の動画をレンダラ３へ送信する（ステップＳ２２）。
【００６１】
ユーザはバツ印キーを押下する。すると、コントローラ２は、全体シーケンス番号「８」、ＴＣＰシーケンス番号「５」、キーＩＤ「バツ」を含むパケットを、ＴＣＰを用いてアプリケーションサーバ１へ送信する（ステップＳ２３）。アプリケーションサーバ１は、状態遷移表に従って状態を遷移させる。遷移後の状態は、メニュー画面に対応する状態である。アプリケーションサーバ１は、遷移後の状態に対応する重要度表をコントローラ２へ送信する（ステップＳ２４）。次いで、アプリケーションサーバ１は、お絵描き画面からメニュー画面に切り替わる動画をレンダラ３へ送信する（ステップＳ２５）。そして、アプリケーションサーバ１は、ＡＣＫをコントローラ２へ送信する（ステップ２６）。
【００６２】
［６．通信システムＳの動作］
次に、図４乃至図７を参照して、本実施形態の通信システムＳの動作について説明する。図４（Ａ）は、コントローラ２におけるコントローラ受信処理の一例を示すフローチャートである。コントローラプログラムが起動すると、コントローラ２のＣＰＵ２１はコントローラ受信処理を実行する。先ずＣＰＵ２１は、ＴＣＰソケットを生成し、次いで、アプリケーションサーバ１側のＴＣＰソケットに接続する（ステップＳ３１）。また、ＣＰＵ２１は、ＵＤＰソケットを生成する。次いで、ＣＰＵ２１は、全体シーケンス番号を１に設定し（ステップＳ３２）。ＴＣＰシーケンス番号を１に設定する（ステップＳ３３）。次いで、ＣＰＵ２１は、コントローラプログラムが終了するか否かを判定する（ステップＳ３４）。このとき、ＣＰＵ２１は、コントローラプログラムが終了しないと判定した場合には（ステップＳ３４：ＮＯ）、ステップＳ３５に進む。
【００６３】
ステップＳ３５において、ＣＰＵ２１は、ＴＣＰソケットから、アプリケーションサーバ１から送信されてきたデータを読み出す。次いで、ＣＰＵ２１は、読み出したデータが重要度表であるか否かを判定する（ステップＳ３６）。このとき、ＣＰＵ２１は、読み出したデータが重要度表であると判定した場合には（ステップＳ３６：ＹＥＳ）、ステップＳ３７に進む。一方、ＣＰＵ２１は、読み出したデータが重要度表ではないと判定した場合には（ステップＳ３６：ＮＯ）、ステップＳ３８に進む。
【００６４】
ステップＳ３７において、ＣＰＵ２１は、重要度表を更新する。具体的に、ＣＰＵ２１は、ＲＡＭ２３に古い重要度表が記憶されている場合にはその重要度表を削除する。ＣＰＵ２１は、今回受信した重要度表をＲＡＭ２３に記憶させる。この処理を終えると、ＣＰＵ２１は、ステップＳ３４に進む。
【００６５】
ステップＳ３８において、ＣＰＵ２１は、読み出したデータがＡＣＫであるか否かを判定する。このとき、ＣＰＵ２１は、読み出したデータがＡＣＫであると判定した場合には（ステップＳ３８：ＹＥＳ）、ステップＳ３９に進む。一方、ＣＰＵ２１は、読み出したデータがＡＣＫではないと判定した場合には（ステップＳ３８：ＮＯ）、ステップＳ３４に進む。
【００６６】
ステップＳ３９において、ＣＰＵ２１は、キー操作送信中フラグをＦＡＬＳＥに設定する。次いで、ＣＰＵ２１は、ステップＳ３４に進む。ステップＳ３４において、ＣＰＵ２１は、コントローラプログラムが終了すると判定した場合には（ステップＳ３４：ＹＥＳ）、コントローラ受信処理を終了させる。
【００６７】
図４（Ｂ）は、コントローラ２におけるユーザ操作処理の一例を示すフローチャートである。コントローラプログラムが起動すると、コントローラ２のＣＰＵ２１はユーザ操作処理を実行する。先ずＣＰＵ２１は、コントローラプログラムが終了するか否かを判定する（ステップＳ４１）。このとき、ＣＰＵ２１は、コントローラプログラムが終了しないと判定した場合には（ステップＳ４１：ＮＯ）、ステップＳ４２に進む。
【００６８】
ステップＳ４２において、ＣＰＵ２１は、入力部２６に入力されたユーザ操作として、ユーザが押したキーのキーＩＤを取得する。次いで、ＣＰＵ２１は、ＲＡＭ２３に記憶されている重要度表から、取得したキーＩＤに対応する重要度を取得する（ステップＳ４３）。次いで、ＣＰＵ２１は、取得した重要度が「１」であるか否かを判定する（ステップＳ４４）。このとき、ＣＰＵ２１は、重要度が「１」であると判定した場合には（ステップＳ４４：ＹＥＳ）、ステップＳ４５に進む。一方、ＣＰＵ２１は、重要度が「１」ではないと判定した場合には（ステップＳ４４：ＮＯ）、ステップＳ４９に進む。
【００６９】
ステップＳ４５において、ＣＰＵ２１は、キー操作送信中フラグがＦＡＬＳＥであるか否かを判定する。このとき、ＣＰＵ２１は、キー操作送信中フラグがＦＡＬＳＥであると判定した場合には（ステップＳ４５：ＹＥＳ）、ステップＳ４６に進む。一方、ＣＰＵ２１は、キー操作送信中フラグがＦＡＬＳＥではないと判定した場合には（ステップＳ４５：ＮＯ）、ステップＳ４１に進む。
【００７０】
ステップＳ４６において、ＣＰＵ２１は、キー操作送信中フラグをＴＲＵＥに設定する。次いで、ＣＰＵ２１は、ＴＣＰソケットに、取得したキーＩＤ、全体シーケンス番号及びＴＣＰシーケンス番号を書き込む（ステップＳ４７）。これにより、ＣＰＵ２１は、ＴＣＰを用いてキーＩＤ、全体シーケンス番号及びＴＣＰシーケンス番号を含むパケットをアプリケーションサーバ１へ送信する。次いで、ＣＰＵ２１は、ＴＣＰシーケンス番号を１増加させて（ステップＳ４８）、ステップＳ５０に進む。
【００７１】
ステップＳ４９において、ＣＰＵ２１は、ＵＤＰソケットに、取得したキーＩＤ、全体シーケンス番号及びＴＣＰシーケンス番号を書き込む。これにより、ＣＰＵ２１は、ＵＤＰを用いてキーＩＤ、全体シーケンス番号及びＴＣＰシーケンス番号を含むパケットをアプリケーションサーバ１へ送信する。次いで、ＣＰＵ２１は、ステップＳ５０に進む。
【００７２】
ステップＳ５０において、ＣＰＵ２１は、全体シーケンス番号を１増加させて、ステップＳ４１に進む。ステップＳ４１において、ＣＰＵ２１は、コントローラプログラムが終了すると判定した場合には（ステップＳ４１：ＹＥＳ）、ユーザ操作処理を終了させる。
【００７３】
図５（Ａ）は、アプリケーションサーバ１におけるＴＣＰ受信処理の一例を示すフローチャートである。サーバプログラムが起動すると、サーバプログラム１のＣＰＵ１１はＴＣＰ受信処理を実行する。先ずＣＰＵ１１は、ＴＣＰソケットを生成し、コントローラ２からの接続を待ち受ける準備処理を実行する（ステップＳ５１）。次いで、ＣＰＵ１１は、コントローラ２から接続を待ち受ける（ステップＳ５２）。次いでコントローラ２と接続すると、ＣＰＵ１１は、ＴＣＰソケットから、コントローラ２から受信されたパケットのデータを読み出す（ステップＳ５３）。次いで、ＣＰＵ１１は、読み出したパケットを、後述する操作順序ソート処理へ転送する（ステップＳ５４）。次いで、ＣＰＵ１１は、サーバプログラムが終了するか否かを判定する（ステップＳ５５）。このとき、ＣＰＵ１１は、サーバプログラムが終了しないと判定した場合には（ステップＳ５５：ＮＯ）、ステップＳ５３に進む。一方、ＣＰＵ１１は、サーバプログラムが終了すると判定した場合には（ステップＳ５５：ＹＥＳ）、ＴＣＰ受信処理を終了させる。
【００７４】
図５（Ｂ）は、アプリケーションサーバ１におけるＵＤＰ受信処理の一例を示すフローチャートである。サーバプログラムが起動すると、サーバプログラム１のＣＰＵ１１はＵＤＰ受信処理を実行する。先ずＣＰＵ１１は、ＵＤＰソケットを生成する（ステップＳ６１）。次いで、ＣＰＵ１１は、ＵＤＰソケットから、コントローラ２から送信されたパケットのデータを読み出す（ステップＳ６２）。次いで、ＣＰＵ１１は、読み出したパケットを、操作順序ソート処理へ転送する（ステップＳ６３）。次いで、ＣＰＵ１１は、サーバプログラムが終了するか否かを判定する（ステップＳ６４）。このとき、ＣＰＵ１１は、サーバプログラムが終了しないと判定した場合には（ステップＳ６４：ＮＯ）、ステップＳ６２に進む。一方、ＣＰＵ１１は、サーバプログラムが終了すると判定した場合には（ステップＳ６４：ＹＥＳ）、ＵＤＰ受信処理を終了させる。
【００７５】
図６は、アプリケーションサーバ１における操作順序ソート処理の一例を示すフローチャートである。サーバプログラムが起動すると、サーバプログラム１のＣＰＵ１１は操作順序ソート処理を実行する。先ずＣＰＵ１１は、ＴＣＰパケットの最新のＴＣＰシーケンス番号ｔを１に設定する（ステップＳ７１）。次いで、ＣＰＵ１１は、サーバプログラムが終了するか否かを判定する（ステップＳ７２）。このとき、ＣＰＵ１１は、サーバプログラムが終了しないと判定した場合には（ステップＳ７２：ＮＯ）、ステップＳ７３に進む。ステップＳ７３において、ＣＰＵ１１は、ＴＣＰ受信処理又はＵＤＰ受信処理からパケットが転送されてくるまで待機する。パケットが転送されてくると、ＣＰＵ１１は、転送されてきたパケットがＵＤＰパケットであるか否かを判定する。パケットのＩＰヘッダに基づいて、パケットがＵＤＰパケットであるか否かの判定が可能である。ＣＰＵ１１は、転送されてきたパケットがＵＤＰパケットであると判定した場合には（ステップＳ７３：ＹＥＳ）、ステップＳ７４に進む。一方、ＣＰＵ１１は、転送されてきたパケットがＵＤＰパケットではないと判定した場合には（ステップＳ７３：ＮＯ）、ステップＳ７７に進む。
【００７６】
ステップＳ７４において、ＣＰＵ１１は、パケットに含まれるＴＣＰシーケンス番号がｔと一致するか否かを判定する。このとき、ＣＰＵ１１は、ＴＣＰシーケンス番号がｔと一致すると判定した場合には（ステップＳ７４：ＹＥＳ）、ステップＳ７５に進む。一方、ＣＰＵ１１は、ＴＣＰシーケンス番号がｔと一致しないと判定した場合には（ステップＳ７４：ＮＯ）、ステップＳ７６に進む。
【００７７】
ステップＳ７５において、ＣＰＵ１１は、取得したパケットに含まれるキーＩＤを後述するステートマシン処理に入力して、ステップＳ７２に進む。ステップＳ７６において、ＣＰＵ１１は、パケットをＲＡＭ１３に確保されたキューに追加して、ステップＳ７２に進む。
【００７８】
ステップＳ７７において、ＣＰＵ１１は、ｔを、パケットに含まれるＴＣＰシーケンス番号に設定する。次いで、ＣＰＵ１１は、取得したパケットに含まれるキーＩＤを後述するステートマシン処理に入力する（ステップＳ７８）。次いで、ＣＰＵ１１は、キューに追加されているパケットのうち、パケットに含まれるＴＣＰシーケンス番号がｔと一致するパケットを取得する（ステップＳ７９）。次いで、ＣＰＵ１１は、取得したパケットに含まれるキーＩＤをステートマシン処理に入力する（ステップＳ８０）、複数のパケットを取得した場合、ＣＰＵ１１は、パケットに含まれる全体シーケンス番号の順に、これらのパケットをステートマシン処理に入力する。そして、ＣＰＵ１１は、ステップＳ７２に進む。ステップＳ７２において、ＣＰＵ１１は、サーバプログラムが終了すると判定した場合には（ステップＳ７２：ＹＥＳ）、操作順序ソート処理を終了させる。
【００７９】
図７は、アプリケーションサーバ１におけるステートマシン処理の一例を示すフローチャートである。サーバプログラムが起動すると、サーバプログラム１のＣＰＵ１１はステートマシン処理を実行する。先ずＣＰＵ１１は、サーバプログラムが終了するか否かを判定する（ステップＳ８１）。このとき、ＣＰＵ１１は、サーバプログラムが終了しないと判定した場合には（ステップＳ８１：ＮＯ）、ステップＳ８２に進む。ステップＳ８２において、ＣＰＵ１１は、操作順序ソート処理から入力されてきたキーＩＤを取得する。操作順序ソート処理からキーＩＤが入力されていない場合、ＣＰＵ１１は、キーＩＤ「操作なし」を取得する。次いで、ＣＰＵ１１は、前状態ＳＡの状態ＩＤとして、現在状態の状態ＩＤを取得する（ステップＳ８３）。次いで、ＣＰＵ１１は、状態ＳＡの状態ＩＤに対応する重要度表ＴＡを、重要度表ＤＢ６から取得する（ステップＳ８４）。次いで、ＣＰＵ１１は、状態遷移表から、前状態ＳＡの状態ＩＤと、取得したパケットに含まれるキーＩＤに対応する後状態ＳＢを特定する。そして、ＣＰＵ１１は、現在状態を状態ＳＡから状態ＳＢに遷移させる（ステップＳ８５）。次いで、ＣＰＵ１１は、状態ＳＡと状態ＳＢとが一致するか否かを判定する（ステップＳ８６）。このとき、ＣＰＵ１１は、状態ＳＡと状態ＳＢとが一致すると判定した場合には（ステップＳ８６：ＹＥＳ）、ステップＳ８７に進む。一方、ＣＰＵ１１は、状態ＳＡと状態ＳＢとが一致しないと判定した場合には（ステップＳ８６：ＮＯ）、ステップＳ８８に進む。
【００８０】
ステップＳ８７において、ＣＰＵ１１は、状態遷移表から、前状態ＳＡと後状態ＳＢとに対応する動画ＩＤを取得する。そして、ＣＰＵ１１は、動画ＩＤに対応する動画をストリーミングでレンダラ３へ送信する（ステップＳ８７）。このとき、ＣＰＵ１１は、必要な場合には、ユーザ操作に応じた処理を実行する。例えば、お絵描き画面においてユーザがカーソルを移動したり線を引いたりすると、ＣＰＵ１１は、カーソルが移動し又は線が引かれる様子が表示されるように、レンダラ３へ送信される動画に画像を追加する。また、ＣＰＵ１１は、ユーザが描いている絵のデータを記憶部１４に記憶させる。ステップＳ８７を終えると、ＣＰＵ１１はステップＳ８１に進む。
【００８１】
ステップＳ８８において、ＣＰＵ１１は、状態ＳＢに対応する重要度表ＴＢを、重要度表ＤＢ６から取得する。次いで、ＣＰＵ１１は、重要度表ＴＡの内容と重要度表ＴＢの内容とが完全に一致するか否かを判定する（ステップＳ８９）。このとき、ＣＰＵ１１は、重要度表ＴＡの内容と重要度表ＴＢの内容とが完全に一致すると判定した場合には（ステップＳ８９：ＹＥＳ）、ステップＳ９１に進む。一方、ＣＰＵ１１は、少なくとも一部において重要度表ＴＡの内容と重要度表ＴＢの内容とが異なると判定した場合には（ステップＳ８９：ＮＯ）、ステップＳ９０に進む。
【００８２】
ステップＳ９０において、ＣＰＵ１１は、重要度表ＴＢをコントローラ２へ送信して、ステップＳ９１に進む。ステップＳ９１において、ＣＰＵ１１は、状態遷移表から、前状態ＳＡと後状態ＳＢとに対応する動画ＩＤを取得する。そして、ＣＰＵ１１は、動画ＩＤに対応する動画をストリーミングでレンダラ３へ送信する（ステップＳ９２）。次いで、ＣＰＵ１１は、ステップＳ８１に進む。ステップＳ８１において、ＣＰＵ１１は、サーバプログラムが終了すると判定した場合には（ステップＳ８１：ＹＥＳ）、ステートマシン処理を終了させる。
【００８３】
以上説明したように、上記実施形態によれば、アプリケーションサーバ１は、レンダラ３により表示される画面が複数の画面のうち何れかの画面に切り替えられる場合、重要度表ＤＢ６に記憶された複数の重要度表のうち、切り替え後の画面に対応する重要度表をコントローラ２へ送信する。また、アプリケーションサーバ１は、送信される重要度表に対応する画面を示す動画をレンダラ３へ送信する。また、アプリケーションサーバ１が、コントローラ２に入力されたユーザ操作を示すキーＩＤを、予め定められた複数のプロトコルのうちコントローラ２により決定されたプロトコルでコントローラ２から受信する。このとき、アプリケーションサーバ１は、送信された重要度表に含まれる重要度のうち、キーＩＤに対応する重要度が示すプロトコルを用いてキーＩＤを受信する。また、アプリケーションサーバ１が、受信されたキーＩＤが示すユーザ操作に応じた処理を実行する。
【符号の説明】
【００８４】
１  アプリケーションサーバ
２  コントローラ
３  レンダラ
４  一体型クライアント
５  アプリケーションＤＢ
６  重要度表ＤＢ
１０  ネットワーク
１１、２１、７１  ＣＰＵ
１２、２２、７２  ＲＯＭ
１３、２３、７３  ＲＡＭ
１４、２４、７４  記憶部
１５、２５、７５  通信部
２６  入力部
２７  表示部
Ｓ  通信システム
【図１】
0006344370.tif 000002
【図２】
0006344370.tif 000003
【図３】
0006344370.tif 000004
【図４】
0006344370.tif 000005
【図５】
0006344370.tif 000006
【図６】
0006344370.tif 000007
【図７】
0006344370.tif 000008