(57)【特許請求の範囲】
【請求項１】
第１サーバ装置と第２サーバ装置とを備え、
前記第１サーバ装置は、
受信した画面情報に応じた画像を表示するクライアント装置により受け付けられた操作を示す操作情報を受信する第１受信部と、
前記第１受信部により受信された操作情報が示す操作に応じた複数の処理を、前記クライアント装置毎に独立したプロセスによって並列に実行する処理実行部と、
前記複数の処理の各々について、前記処理実行部による当該処理の実行後に表示される画像を表す画面情報を生成するための演算処理を規定した処理情報を送信する第１送信部と
を有し、
前記第２サーバ装置は、
前記第１送信部により送信された処理情報を受信する第２受信部と、
前記第２受信部により受信された前記複数の処理の各々に対応する前記処理情報に従って順番に演算処理を実行し、前記画面情報を生成する画面情報生成部と、
前記画面情報生成部により生成された画面情報を前記クライアント装置宛てに送信する第２送信部と
を有することを特徴とするシンクライアントサーバシステム。
【請求項２】
前記処理実行部は、
前記複数の処理を仮想マシンで実行されたオペレーティングシステム上で実行する
ことを特徴とする請求項１に記載のシンクライアントサーバシステム。
【請求項３】
前記画面情報生成部による前記画面情報の生成、及び前記第２送信部による当該画面情報の送信が、仮想化技術を用いないで行われる
ことを特徴とする請求項２に記載のシンクライアントサーバシステム。
【請求項４】
前記第１サーバ装置を複数有し、
前記クライアント装置から前記第１サーバ装置に送信されるデータを中継するクライアント管理サーバを備え、
前記クライアント管理サーバは、
前記クライアント装置のユーザを識別するユーザＩＤと、いずれか１の前記第１サーバ装置を識別する第１サーバＩＤとを対応付けて記憶する第１記憶部と、
前記クライアント装置により送信された操作情報を受信する第３受信部と、
前記第３受信部により受信された操作情報の送信元であるクライアント装置の前記ユーザＩＤに対応付けて、前記第１記憶部に第１サーバＩＤが記憶された前記第１サーバ装置宛てに、当該操作情報を送信する第３送信部と
を有し、
前記第１受信部は、前記第３送信部により送信された操作情報を受信する
ことを特徴とする請求項１から請求項３のいずれか１項に記載のシンクライアントサーバシステム。
【請求項５】
前記第２サーバ装置を複数有し、
前記クライアント管理サーバは、更に、前記第１サーバ装置から前記第２サーバ装置に送信されるデータを中継し、
前記ユーザＩＤと、いずれか１の前記第２サーバ装置を識別する第２サーバＩＤとを対応付けて記憶する第２記憶部と、
前記第１送信部により送信された処理情報を受信する第４受信部と、
前記画面情報の送信先となるクライアント装置の前記ユーザＩＤに対応付けて、前記第２記憶部に第２サーバＩＤが記憶された前記第２サーバ装置宛てに、前記第４受信部が受信した処理情報を送信する第４送信部と
を有することを特徴とする請求項４に記載のシンクライアントサーバシステム。
【請求項６】
前記処理実行部は、
前記クライアント装置で動作するプロセッサと同じ種類のプロセッサを用いて処理を実行する
ことを特徴とする請求項１から請求項５のいずれか１項に記載のシンクライアントサーバシステム。
【請求項７】
前記オペレーティングシステムは、前記クライアント装置が有するプロセッサで動作するオペレーティングシステムである
ことを特徴とする請求項２又は請求項３に記載のシンクライアントサーバシステム。
【請求項８】
請求項１から７のいずれか１項に記載のシンクライアントサーバシステムと、クライアント装置とを備える通信システムであって、
前記クライアント装置は、
前記シンクライアントサーバシステムと通信する通信部と、
画像を表示する表示部と、
自装置に対して行われた操作を受け付ける受付部と、
前記受付部が受け付けた操作を示す操作情報を前記通信部により送信する送信制御部と、
前記送信制御部の制御により送信された操作情報に基づいて前記シンクライアントサーバシステムにより生成されて前記第２送信部により送信された画面情報が、前記通信部により受信されると、受信された画面情報に応じて前記表示部に画像を表示させる表示制御部と
を有することを特徴とする通信システム。
【請求項９】
第１サーバ装置と第２サーバ装置とを備えるシンクライアントサーバシステムの画面情報送信方法であって、
前記第１サーバ装置が、受信した画面情報に応じた画像を表示するクライアント装置により受け付けられた操作を示す操作情報を受信する第１受信ステップと、
前記第１サーバ装置が、前記第１受信ステップで受信した操作情報が示す操作に応じた複数の処理を、前記クライアント装置毎に独立したプロセスによって並列に実行する処理実行ステップと、
前記第１サーバ装置が、前記複数の処理の各々について、前記処理実行ステップでの当該処理の実行後に表示される画像を表す画面情報を生成するための演算処理を規定した処理情報を送信する第１送信ステップと、
前記第２サーバ装置が、前記第１送信ステップで送信された処理情報を受信する第２受信ステップと、
前記第２サーバ装置が、前記第２受信ステップで受信した前記複数の処理の各々に対応する前記処理情報に従って順番に演算処理を実行し、前記画面情報を生成する画面情報生成ステップと、
前記第２サーバ装置が、前記画面情報生成ステップで生成した画面情報を前記クライアント装置宛てに送信する第２送信ステップと
を有することを特徴とする画面情報送信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクライアントを利用して画面表示を行う技術に関する。
【背景技術】
【０００２】
シンクライアントを利用してクライアント装置の画面表示を行う技術では、シンクライアントサーバが、ユーザによりクライアント装置に対して行われた操作を示す操作情報を受信して、受信した操作情報が示す操作に応じた処理を実行して画面情報を生成し、生成した画面情報をクライアント装置宛に送信する、という複数の処理を繰り返し実行する。このような技術では、クライアント装置に行われた操作に対して画面表示が遅延することがある。画面表示の遅延は、クライアント装置においてユーザの誤操作の原因となったり、画面表示を見るユーザに違和感を与える原因となったりする。特許文献１から特許文献３は、シンクライアントを利用したシステムにおいて、画面表示の遅延による影響を抑えるための技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２８５３０号公報
【特許文献２】特開２００８−２１１６３９号公報
【特許文献３】特開２００８−２１０１１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、特許文献１に記載された発明は、画面表示の遅延の影響による画面上のボタン押下間違いを抑えるために、ポインタ座標を補正するものであるが、クライアント装置での画面表示の遅延を継続して抑えるものではない。特許文献２及び特許文献３に記載された発明では、一台のシンクライアントサーバで、操作情報の受信、操作情報が示す操作に応じた処理の実行、画面情報の生成及び画面情報の送信という一連の処理が実行されるとともに、更に、画面情報を複数のブロックに分割するための画像処理も実行される。
【０００５】
以上の特許文献１から特許文献３に記載された発明では、一台のシンクライアントサーバに様々な処理に起因する負荷が集中する。よって、一台のシンクライアントサーバが、画面表示の遅延を抑制しつつ、多数のクライアント装置に対して個別の画面表示を行わせる処理を並行して行うことが困難であった。
これに対し、本発明は、クライアント装置での画面表示の遅延を抑制しうるようにシンクライアントサーバの負荷分散を実現することである。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明のシンクライアントサーバシステムは、  第１サーバ装置と第２サーバ装置とを備え、前記第１サーバ装置は、受信した画面情報に応じた画像を表示するクライアント装置により受け付けられた操作を示す操作情報を受信する第１受信部と、前記第１受信部により受信された操作情報が示す操作に応じた複数の処理を、前記クライアント装置毎に独立したプロセスによって並列に実行する処理実行部と、前記複数の処理の各々について、前記処理実行部による当該処理の実行後に表示される画像を表す画面情報を生成するための演算処理を規定した処理情報を送信する第１送信部とを有し、前記第２サーバ装置は、前記第１送信部により送信された処理情報を受信する第２受信部と、前記第２受信部により受信された前記複数の処理の各々に対応する前記処理情報に従って順番に演算処理を実行し、前記画面情報を生成する画面情報生成部と、前記画面情報生成部により生成された画面情報を前記クライアント装置宛てに送信する第２送信部とを有することを特徴とする。
【０００７】
本発明のシンクライアントサーバシステムにおいて、前記処理実行部は、前記複数の処理を仮想マシンで実行されたオペレーティングシステム上で実行してもよい。
【０００８】
本発明のシンクライアントサーバシステムにおいて、前記画面情報生成部による前記画面情報の生成、及び前記第２送信部による当該画面情報の送信が、仮想化技術を用いないで行われてもよい。
【０００９】
本発明のシンクライアントサーバシステムにおいて、前記第１サーバ装置を複数有し、前記クライアント装置から前記第１サーバ装置に送信されるデータを中継するクライアント管理サーバを備え、前記クライアント管理サーバは、前記クライアント装置のユーザを識別するユーザＩＤと、いずれか１の前記第１サーバ装置を識別する第１サーバＩＤとを対応付けて記憶する第１記憶部と、前記クライアント装置により送信された操作情報を受信する第３受信部と、前記第３受信部により受信された操作情報の送信元であるクライアント装置の前記ユーザＩＤに対応付けて、前記第１記憶部に第１サーバＩＤが記憶された前記第１サーバ装置宛てに、当該操作情報を送信する第３送信部とを有し、前記第１受信部は、前記第３送信部により送信された操作情報を受信してもよい。
このシンクライアントサーバシステムにおいては、前記第２サーバ装置を複数有し、前記クライアント管理サーバは、更に、前記第１サーバ装置から前記第２サーバ装置に送信されるデータを中継し、前記ユーザＩＤと、いずれか１の前記第２サーバ装置を識別する第２サーバＩＤとを対応付けて記憶する第２記憶部と、前記第１送信部により送信された処理情報を受信する第４受信部と、前記画面情報の送信先となるクライアント装置の前記ユーザＩＤに対応付けて、前記第２記憶部に第２サーバＩＤが記憶された前記第２サーバ装置宛てに、前記第４受信部が受信した処理情報を送信する第４送信部とを有してもよい。
また、本発明のシンクライアントサーバシステムにおいては、前記処理実行部は、前記クライアント装置で動作するプロセッサと同じ種類のプロセッサを用いて処理を実行してもよい。また、このシンクライアントサーバシステムにおいて、前記オペレーティングシステムは、前記クライアント装置が有するプロセッサで動作するオペレーティングシステムであってもよい。
【００１０】
本発明の通信システムは、上記いずれかの構成のシンクライアントサーバシステムと、クライアント装置とを備える通信システムであって、前記クライアント装置は、前記シンクライアントサーバシステムと通信する通信部と、画像を表示する表示部と、自装置に対して行われた操作を受け付ける受付部と、前記受付部が受け付けた操作を示す操作情報を前記通信部により送信する送信制御部と、前記送信制御部の制御により送信された操作情報に基づいて前記シンクライアントサーバシステムにより生成されて前記第２送信部により送信された画面情報が、前記通信部により受信されると、受信された画面情報に応じて前記表示部に画像を表示させる表示制御部とを有することを特徴とする。
【００１１】
本発明の画面情報送信方法は、第１サーバ装置と第２サーバ装置とを備えるシンクライアントサーバシステムの画面情報送信方法であって、前記第１サーバ装置が、受信した画面情報に応じた画像を表示するクライアント装置により受け付けられた操作を示す操作情報を受信する第１受信ステップと、前記第１サーバ装置が、前記第１受信ステップで受信した操作情報が示す操作に応じた複数の処理を、前記クライアント装置毎に独立したプロセスによって並列に実行する処理実行ステップと、前記第１サーバ装置が、前記複数の処理の各々について、前記処理実行ステップでの当該処理の実行後に表示される画像を表す画面情報を生成するための演算処理を規定した処理情報を送信する第１送信ステップと、前記第２サーバ装置が、前記第１送信ステップで送信された処理情報を受信する第２受信ステップと、前記第２サーバ装置が、前記第２受信ステップで受信した前記複数の処理の各々に対応する前記処理情報に従って順番に演算処理を実行し、前記画面情報を生成する画面情報生成ステップと、前記第２サーバ装置が、前記画面情報生成ステップで生成した画面情報を前記クライアント装置宛てに送信する第２送信ステップとを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、クライアント装置での画面表示の遅延を抑制しうるようにシンクライアントサーバの負荷分散を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】通信システムの全体構成を示す図。
【図２】第１サーバ装置のハードウェア構成を示す図。
【図３】第２サーバ装置のハードウェア構成を示す図。
【図４】クライアント管理サーバのハードウェア構成を示す図。
【図５】第１管理テーブルのデータ構造を示す図。
【図６】第２管理テーブルのデータ構造を示す図。
【図７】クライアント装置のハードウェア構成を示す図。
【図８】通信システムの機能的構成を示す機能ブロック図。
【図９】通信システムのソフトウェア構成を示す図。
【図１０】通信システムの処理の流れを示すシーケンスチャート。
【図１１】第１管理テーブル及び第２管理テーブルの更新の様子を示す説明図。
【図１２】通信システムの処理の流れを示すシーケンスチャート。
【図１３】通信システムのソフトウェア構成を示す図。
【図１４】従来のシンクライアントサーバのソフトウェア構成を示す図。
【発明を実施するための形態】
【００１４】
以下、図面を参照しつつ本発明の実施形態を説明する。
図１は、通信システム１００の全体構成を示す図である。
通信システム１００は、シンクライアントサーバシステム１と、クライアント装置４０とを備えるクライアント−サーバシステムである。通信システム１００では、シンクライアントサーバシステム１で管理されるソフトウェア資源等に基づく画面表示を、クライアント装置４０に行わせるためのサービスが提供される。シンクライアントサーバシステム１は、詳細には、第１サーバ装置１０と、第２サーバ装置２０と、クライアント管理サーバ３０という複数サーバの組み合わせで構成される。シンクライアントサーバシステム１が、どのようなソフトウェア資源に関する画面表示をクライアント装置４０に行わせるかについては、本実施形態においては特に問わない。
【００１５】
図１には、第１サーバ装置１０のうち第１サーバ装置１０ａ，１０ｂのみを図示し、第２サーバ装置２０のうち第２サーバ装置２０ａ，２０ｂのみを図示しているが、実際にはより多数存在している。また、図１には、クライアント装置４０を１台のみ図示しているが、実際より多数存在している。クライアント装置４０は、ネットワークＮＷ経由で、第２サーバ装置２０及びクライアント管理サーバ３０と通信可能に接続されている。ネットワークＮＷは、ここでは、移動体通信網、ゲートウェイ及びインターネットを含む通信網である。また、クライアント管理サーバ３０は専用の通信路を介して、第１サーバ装置１０及び第２サーバ装置２０と通信可能に接続されている。
【００１６】
第１サーバ装置１０及び第２サーバ装置２０は、クライアント装置４０での画面表示に必要な処理を実行するが、それぞれ異なる処理を実行する。クライアント管理サーバ３０は、クライアント装置４０と、第１サーバ装置１０と、第２サーバ装置２０との間でデータを中継する中継サーバとして機能する。クライアント装置４０は、ここでは移動機たるスマートフォンであり、通信システム１００においてサービスの提供を受けるための加入契約を行ったユーザにより所有される。
【００１７】
図２は、第１サーバ装置１０のハードウェア構成を示すブロック図である。図２に示すように、第１サーバ装置１０は、制御部１１と、通信部１２と、記憶部１３とを備える。
制御部１１は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、及びＲＡＭ（Random Access Memory）を備えるマイクロプロセッサである。ＣＰＵは、ＲＯＭや記憶部１３に記憶されたプログラムをＲＡＭに読み出して実行することにより、第１サーバ装置１０の各部を制御する。ここでは、ＣＰＵは、移動機向けに作成されたプロセッサであり、要するに、クライアント装置４０で動作するプロセッサである。通信部１２は、ネットワークＮＷに接続するためのインタフェースである。記憶部１３は、例えばハードディスク装置を備え、ホストＯＳ（Operating System）１３１やゲストＯＳ１３２を含むソフトウェアを記憶する。ホストＯＳ１３１は、制御部１１のプロセッサで動作し、第１サーバ装置１０において仮想マシン上でソフトウェアを動作させる基盤となるＯＳである。ゲストＯＳ１３２は、ホストＯＳ１３１の実行により第１サーバ装置１０において仮想マシンが動作させられたときに、仮想マシン上で実行されるＯＳである。ゲストＯＳ１３２は、ここでは移動機向けに作成されたＯＳであり、クライアント装置４０が有するプロセッサでも動作する。
【００１８】
図３は、第２サーバ装置２０のハードウェア構成を示すブロック図である。図３に示すように、第２サーバ装置２０は、制御部２１と、ネットワーク通信部２２と、サーバ通信部２３と、記憶部２４と、ＧＰＵ（Graphics Processing Unit）２５とを備える。
制御部２１は、ＣＰＵ、ＲＯＭ、及びＲＡＭを備えるマイクロプロセッサである。ＣＰＵは、ＲＯＭや記憶部２４に記憶されたプログラムをＲＡＭに読み出して実行することにより、第２サーバ装置２０の各部を制御する。ネットワーク通信部２２は、ネットワークＮＷに接続するためのインタフェースである。サーバ通信部２３は、クライアント管理サーバ３０に接続するためのインタフェースである。記憶部２４は、例えばハードディスク装置を備え、ＯＳ２４１を含むソフトウェアを記憶する。ＯＳ２４１は、第２サーバ装置２０でソフトウェアを動作させる基盤となるＯＳである。ＧＰＵ２５は、画像処理に関する演算処理を行うプロセッサであり、第２サーバ装置２０で実行される画像処理を司る。
【００１９】
図４は、クライアント管理サーバ３０は、制御部３１と、ネットワーク通信部３２と、第１サーバ通信部３３と、第２サーバ通信部３４と、記憶部３５とを備える。
制御部３１は、ＣＰＵ、ＲＯＭ、及びＲＡＭを備えるマイクロプロセッサである。ＣＰＵは、ＲＯＭや記憶部３５に記憶されたプログラムをＲＡＭに読み出して実行することにより、クライアント管理サーバ３０の各部を制御する。ネットワーク通信部３２は、ネットワークＮＷに接続するためのインタフェースである。第１サーバ通信部３３は、第１サーバ装置１０に接続するためのインタフェースである。第２サーバ通信部３４は、第２サーバ装置２０に接続するためのインタフェースである。
【００２０】
記憶部３５は、例えばハードディスク装置を備え、各種ソフトウェアのほか、第１管理テーブル３５１及び第２管理テーブル３５２を記憶する。第１管理テーブル３５１及び第２管理テーブル３５２は、それぞれ、クライアント管理サーバ３０がデータの転送先を選択する際に参照される。より詳細には、第１管理テーブル３５１には、データの転送先とする第１サーバ装置１０を定める情報が記述されている。第２管理テーブル３５２には、データの転送先とする第２サーバ装置２０を定める情報が記述されている。
なお、第１管理テーブル３５１及び第２管理テーブル３５２には、シンクライアントサーバシステム１によるサービスの提供中にデータが記述され、このサービスが提供されていない期間にはデータは記述されていないものとする。第１管理テーブル３５１を記憶する記憶部３５が第１記憶部に相当する。また、第２管理テーブル３５２を記憶する記憶部３５が第２記憶部に相当する。
【００２１】
図５は、第１管理テーブル３５１のデータ構造を示す図である。
図５に示すように、第１管理テーブル３５１は、「ユーザＩＤ」と、「第１サーバＩＤ」と、「プロセスＩＤ」とで示される各情報が対応付けられたデータテーブルである。ユーザＩＤは、各クライアント装置４０のユーザを識別する識別情報であるが、ここでは、各クライアント装置４０を識別する識別情報でもある。本実施形態のユーザＩＤは、クライアント装置４０に割り当てられた電話番号であるが、例えば、ＳＩＭ（Subscriber Identity Module）カードから特定される端末識別情報や、各ユーザに排他的に付与された識別番号であってもよい。第１サーバＩＤは、各第１サーバ装置１０を識別する識別情報である。プロセスＩＤは、クライアント装置４０毎に独立して実行される処理の各プロセスを識別する識別情報である。
なお、本実施形態において、クライアント装置４０のユーザＩＤは「090aaaa0001」である。第１サーバ装置１０ａの第１サーバＩＤは「００１」であり、第１サーバ装置１０ｂの第１サーバＩＤは「００２」である。また、各第１サーバＩＤは、それぞれ対応する第１サーバ装置１０にも予め記憶されている。また、第１サーバＩＤは、第１サーバ装置１０に割り当てられたＩＰ（Internet Protocol）アドレス等の通信アドレス等で代用することもできる。
【００２２】
図６は、第２管理テーブル３５２のデータ構造を示す図である。
図６に示すように、第１管理テーブル３５１は、「ユーザＩＤ」と、「第２サーバＩＤ」とで示される各情報が対応付けられたデータテーブルである。ユーザＩＤは、第１管理テーブル３５１に記述されたユーザＩＤと同じである。第２サーバＩＤは、各第２サーバ装置２０を識別する識別情報である。
なお、本実施形態において、第２サーバ装置２０ａの第２サーバＩＤは「００ａ」であり、第２サーバ装置２０ｂの第２サーバＩＤは「００ｂ」である。第２サーバＩＤは、第２サーバ装置２０に割り当てられたＩＰアドレス等の通信アドレス等で代用することもできる。
【００２３】
図７は、クライアント装置４０のハードウェア構成を示すブロック図である。図７に示すように、クライアント装置４０は、制御部４１と、音声入出力部４２と、無線通信部４３と、ＵＩ（User Interface）部４４と、記憶部４５とを備える。
制御部４１は、ＣＰＵ、ＲＯＭ、及びＲＡＭを備えるマイクロプロセッサである。ＣＰＵは、移動機向けに作成されたプロセッサであり、例えば低消費電力化に優れたものが用いられる。ＣＰＵは、ＲＯＭや記憶部４５に記憶されたソフトウェアをＲＡＭに読み出して実行することにより、クライアント装置４０の各部を制御する。音声入出力部４２は、受話音声等を収音するマイクロホンと送話音声を放音するスピーカとを備え、音声の入出力に関する機能を実現する。無線通信部４３は、無線通信回路やアンテナを備え、ネットワークＮＷに無線通信により接続するためのインタフェースである。ＵＩ部４４は、画像を表示する表示面と、表示面に重ねられたタッチパネルとを備え、ＧＵＩ（Graphical User Interface）を提供する。すなわち、ＵＩ部４４は、タッチパネルのようなユーザによって操作される操作部と、表示面に表示する画像により情報を報知する表示部としての機能を実現する。記憶部４５は、例えばＥＥＰＲＯＭ（Electronically Erasable and Programmable ROM）を備え、ＯＳ４５１を含むソフトウェアを記憶する。ＯＳ４５１は、移動機向けに作成されたＯＳであり、ここではゲストＯＳ１３２と同じオペレーティングシステムである。
なお、クライアント装置４０は、操作部と表示部とが別々のハードウェアデバイスで構成されていてもよい。また、クライアント装置４０は、ユーザにより行われた操作を受け付けるためのハードウェアデバイスとして、上記以外に、クライアント装置４０を傾けたり振動させたりする等の筐体に対する操作を受け付けるための加速度センサを有している。
【００２４】
図８は、通信システム１００の機能的構成を示す機能ブロック図である。まず、クライアント装置４０の機能的構成を説明する。
クライアント装置４０の制御部４１は、プログラムを実行することにより、受付部４１１と、送信制御部４１２と、表示制御部４１３とに相当する機能を実現する。
受付部４１１は、クライアント装置４０に対する操作を受け付ける。受付部４１１は、ＵＩ部４４を用いて行われた操作のほか、クライアント装置４０を傾けたり振動させたりする等のクライアント装置４０の筐体に対して行われた操作、音声入出力部４２を介した音声入力で行われた操作等を含む。要するに、受付部４１１は、クライアント装置４０に対してユーザにより行われたあらゆる操作を受け付ける。
送信制御部４１２は、受付部４１１が受け付けた操作を示す操作情報を、無線通信部４３により送信する。ここでは、送信制御部４１２は、クライアント管理サーバ３０宛てに操作情報を送信する。操作情報は、クライアント装置４０に対して行われた操作の識別機能を持った情報である。
表示制御部４１３は、送信制御部４１２の制御により送信された操作情報に基づいてシンクライアントサーバシステム１で生成された画面情報が、無線通信部４３により受信されると、受信された画面情報に応じてＵＩ部４４に画像を表示する。
クライアント装置４０の機能的構成の説明は以上である。次に、クライアント管理サーバ３０及び第１サーバ装置１０の機能的構成を説明する。
【００２５】
クライアント管理サーバ３０は、第３受信部３０１と、第１サーバ選択部３０２と、第３送信部３０３と、第４受信部３０４と、第２サーバ選択部３０５と、第４送信部３０６とに相当する機能を実現する。第１サーバ装置１０は、第１受信部１０１と、処理実行部１０２と、第１送信部１０３とに相当する機能を実現する。
第３受信部３０１は、クライアント装置４０により送信された操作情報を受信する。
第１サーバ選択部３０２は、第１管理テーブル３５１を参照して、第３受信部３０１により受信された操作情報の送信先（転送先）を選択する。具体的には、第１サーバ選択部３０２は、操作情報の送信元であるクライアント装置４０のユーザＩＤに対応付けて、第１管理テーブル３５１に第１サーバＩＤが記憶された第１サーバ装置１０を選択する。
第３送信部３０３は、第３受信部３０１が受信した操作情報を、第１サーバ選択部３０２により選択された第１サーバ装置１０宛てに送信する。
なお、第３送信部３０３は、第１サーバ選択部３０２により第１管理テーブル３５１から取得されたプロセスＩＤを送信することがある。
【００２６】
第１受信部１０１は、第３送信部３０３により送信された操作情報を受信する。
処理実行部１０２は、第１受信部が受信した操作情報が示す操作に応じた処理を実行する。ここでは、処理実行部１０２は、クライアント装置４０に画面表示を行わせるサービスの提供に必要な処理（以下、「プロセス処理」という。）を操作情報が示す操作に応じて実行する。
第１送信部１０３は、処理実行部１０２による処理の実行後にクライアント装置４０で表示される画像を表す画面情報を生成するための処理情報を送信する。処理情報は、画面情報を生成するために実行すべき演算処理を規定したデータで、演算処理のアルゴリズムが記述されている。
【００２７】
第４受信部３０４は、第１送信部１０３により送信された処理情報を受信する。
第２サーバ選択部３０５は、第２管理テーブル３５２を参照して、第４受信部３０４により受信された処理情報の送信先（転送先）を選択する。具体的には、第２サーバ選択部３０５は、処理情報の送信元であるクライアント装置４０のユーザＩＤに対応付けて、第２管理テーブル３５２に第２サーバＩＤが記憶された第２サーバ装置２０を選択する。
第４送信部３０６は、第４受信部３０４が受信した処理情報を、第２サーバ選択部３０５により選択された第２サーバ装置２０宛てに送信する。
クライアント管理サーバ３０及び第１サーバ装置１０の機能的構成の説明は以上である。次に、第２サーバ装置２０の機能的構成を説明する。
【００２８】
第２サーバ装置２０は、第２受信部２０１と、画面情報生成部２０２と、第２送信部２０３に相当する機能を実現する。
第２受信部２０１は、第４送信部３０６より送信された処理情報を受信する。
画面情報生成部２０２は、第２受信部２０１により受信された処理情報に従って演算処理を実行し、画面情報を生成する。画面情報生成部２０２は、例えば、処理情報を解釈して画像処理を含む演算処理を実行することにより、画面情報を生成する。
第２送信部２０３は、画面情報生成部２０２により生成された画面情報をクライアント装置４０宛てに送信（転送）する。第２送信部２０３は、画面情報生成部２０２により生成された画面情報に圧縮処理及びエンコード処理を施してから、画面情報を送信する。第２送信部２０３が送信した画面情報は、クライアント装置４０の無線通信部４３によって受信される。
第２サーバ装置２０の機能的構成の説明は以上である。次に、通信システム１００のソフトウェア構成を説明する。
【００２９】
図９は、通信システム１００のソフトウェア構成を示す図である。詳細には、図９には、第１サーバ装置１０、第２サーバ装置２０及びクライアント装置４０のソフトウェア構成が図示されている。
まず、第１サーバ装置１０のソフトウェア構成を説明する。
ホストＯＳ１３１は、第１サーバ装置１０における基本的な機能を提供し、第１サーバ装置１０全体を管理する基本ソフトウェアである。仮想化ソフトウェア１３３は、ホストＯＳ１３１上で動作し、第１サーバ装置１０上に仮想マシン１３４を形成するためのソフトウェアである。仮想マシンとは、物理的に単一のコンピュータ装置内に仮想的に形成されるコンピュータ環境をいう。仮想マシン１３４は、仮想化ソフトウェア１３３上で複数並列して動作する（図９には４つの仮想マシン１３４を示す。）。詳細には、仮想マシン１３４は、仮想化ソフトウェア１３３上で動作するゲストＯＳ１３２と、ゲストＯＳ１３２上で動作するサービスプロセス１３５とを動作させる。各仮想マシン１３４は、１のクライアント装置４０に対応するプロセス処理をサービスプロセス１３５により実行する。サービスプロセス１３５は、画面情報の生成に必要な演算処理を規定した処理情報を供給するためのソフトウェアである。
更に、ホストＯＳ１３１には、処理情報ＩＦ（Interface）１３１ａの機能が実装されている。処理情報ＩＦ１３１ａは、サービスプロセス１３５により供給された処理情報を、第２サーバ装置２０に転送するためのソフトウェアインタフェースである。
次に、第２サーバ装置２０のソフトウェア構成を説明する。
【００３０】
ＯＳ２４１は、第２サーバ装置２０における基本的な機能を提供し、第２サーバ装置２０全体を管理する基本ソフトウェアである。画面情報生成プロセス２４２は、ＯＳ２４１上で動作し、処理情報に従って演算処理を実行するプロセスを実現するソフトウェアである。図９に示すように、ＯＳ２４１にはＧＰＵＩＦ２４１ａの機能が実装されている。ＧＰＵＩＦ２４１ａは、画面情報生成プロセス２４２で画面情報が生成される際に、ＧＰＵ２５との間でデータの授受を行うためのソフトウェアインタフェースである。画面転送プロセス２４３は、ＯＳ２４１上で動作し、画面情報生成プロセス２４２で生成された画面情報を、クライアント装置４０に転送するプロセスを実現するソフトウェアである。画面転送プロセス２４３は、例えば、画面情報生成プロセス２４２から供給された画面情報に圧縮処理及びエンコード処理を施して転送するものである。
次に、クライアント装置４０のソフトウェア構成を説明する。
【００３１】
ＯＳ４５１は、クライアント装置４０における基本的な機能を提供し、クライアント装置４０全体を管理する基本ソフトウェアである。画像ビューア４５２は、ＯＳ４５１上で動作し、第２サーバ装置２０から転送された画面情報に応じた画像を表示するためのソフトウェアである。
以上が、通信システム１００のソフトウェア構成の説明である。
【００３２】
上述したように、シンクライアントサーバシステム１では、第１サーバ装置１０が、主操作情報の受信、操作情報が示す操作に応じたプロセス処理の実行、及び処理情報の送信という処理を司り、第２サーバ装置２０が、処理情報に従った画面情報の生成、及び画面情報の転送という処理を司る。このように、シンクライアントサーバシステム１では、サービスの提供に必要な処理の一部と残りとが、それぞれ異なるサーバで実行される。このようにして、シンクライアントサーバシステム１では、サービスの提供に起因して生じる処理負荷が複数サーバに分散されるわけであるが、このような仕組みにより効率良く負荷分散が実現される、という知見を発明者は得た。この根拠について、図１４に示す従来のシンクライアントサーバのソフトウェア構成と対比しつつ説明する。
【００３３】
図１４に示すように、従来の通信システムでは、通信システム１００と同様、ホストＯＳ上で仮想化ソフトウェアが動作し、仮想化ソフトウェア上でゲストＯＳ及びサービスプロセスを動作させる仮想マシンが動作する。このサービスプロセスは、シンクライアントサーバシステム１とは異なり、操作情報が示す操作に応じた処理のほか、画面情報を生成する処理も含む。更に、従来の通信システムでは、仮想化ソフトウェアとは別に、ホストＯＳ上で画面転送プロセスが動作する。この画面転送プロセスは、画面情報の圧縮処理及びエンコード処理、更に、画面情報の転送を実現するものである。このように、仮想化技術を用いたサービスプロセスと、画面転送プロセスとが同一ハードウェア上で実現された場合に、これら両プロセスの処理負荷の集中が問題となる、という知見を発明者は得た。このような問題点に対し、一台のシンクライアントサーバでこれらの両プロセスが実現された場合には、各プロセスでハードウェアを分離することが不可能である。その具体例として、仮想化技術では、複数の仮想マシンでＧＰＵを共有するのが困難と言われていて、シンクライアントサーバのＣＰＵで画面情報の生成を行わなければならず、処理効率が低くなる（つまり、処理負荷の高さに対して実行可能な演算処理量が少なくなる）原因となる。
以上のような理由から、従来の通信システムでは、一台のシンクライアントサーバが多数のクライアント装置を相手としてサービスを提供することが困難であった。
【００３４】
これに対し、シンクライアントサーバシステム１では、サービスプロセスと画面転送プロセスとが、それぞれ異なるハードウェアで実現されるように、第１サーバ装置１０と第２サーバ装置２０とに分離されている。すなわち、処理負荷が相対的に高いプロセスが同一のハードウェア上で実現されないから、効果的に処理負荷を分散させることができるというわけである。例えば、第１サーバ装置１０が処理情報を第２サーバ装置２０に転送するための処理負荷は、画面情報を生成するための処理負荷や画面情報を転送するための処理負荷よりも十分に低い。
【００３５】
更に、このように第１サーバ装置１０と第２サーバ装置２０とに分離されることで、サービスプロセスと画面転送プロセスとのそれぞれに適したハードウェアを選定して、シンクライアントサーバシステム１に実装することが容易になる。例えば、第１サーバ装置１０では、操作情報が示す操作に応じたプロセス処理を実行するが、画面情報の生成及び転送を行わなくてよい。よって、例えば、ＣＰＵは、移動機向けに作成されたプロセッサであり、１台のシンライアントサーバでサービスの提供に係る全処理を実現する場合、移動機向けのプロセッサをシンクライアントサーバに実装することが難しい。これでは、シンクライアントサーバで移動機向けのＯＳを動作させるのが困難であり、処理効率の低下の原因になりうる。これに対し、シンクライアントサーバシステム１では、第１サーバ装置１０が第２サーバ装置２０から分離されているので、このような移動機向けのプロセッサを第１サーバ装置１０に実装することを妨げる事情がない。よって、クライアント装置４０とシンクライアントサーバシステム１とのＯＳの相違に起因して処理効率が低下することを抑制することができる。
【００３６】
更に、第２サーバ装置２０では、仮想化技術を用いていないし、クライアント装置４０毎に独立したプロセスの処理を実行していない。よって、例えば、第２サーバ装置２０では、一のクライアント装置４０に関する画像処理を、ＧＰＵ２５を占有して実行することもできる。また、第１サーバ装置１０と同じ理由により、第２サーバ装置２０のハードウェアとして、画像処理の実行に適したハードウェア（プロセッサ）を適用することも容易である。よって、クライアント装置４０とシンクライアントサーバシステム１とのプロセッサの相違に起因して処理効率が低下することも抑制することができる。
【００３７】
以上が、シンクライアントサーバシステム１における負荷分散の仕組みが、効果的に負荷分散を実現できることの根拠の説明である。仮に、シンクライアントサーバシステム１を構成するサーバ装置を３台以上にすれば、各装置に強いられる処理負荷が分散される。しかしながら、以上の根拠に基づけば２台のサーバ装置に分離すれば十分な負荷分散の効果を奏するので、シンクライアントサーバシステム１によれば、サーバの台数を無駄に増加させなくて済むので、ハードウェア資源の節約にもなる。
次に、通信システム１００の動作を説明する。
【００３８】
図１０は、通信システム１００においてサービスの提供を開始するときの処理の流れを示す。図１１は、第１管理テーブル３５１及び第２管理テーブル３５２の更新の様子を説明する図である。
クライアント装置４０の制御部４１は、ＵＩ部４４によりユーザにより利用したサービスを指定する操作を受け付けると、記憶部４５から必要なソフトウェアを読み出して実行することにより、サービスを起動する（ステップＳＡ１）。サービスを起動するということは、クライアント装置４０がサービスの提供を受けるための動作状態になることを意味する。そこで、制御部４１は、まず、サービスの起動を指示するための起動指示を、無線通信部４３によりクライアント管理サーバ３０宛てに送信する（ステップＳＡ２）。この起動指示は、クライアント装置４０のユーザがサービスの起動を開始させるための操作を行ったことを示すデータであり、送信元のクライアント装置４０のユーザＩＤ（ここでは、「090aaaa0001」）を含む。
【００３９】
クライアント管理サーバ３０の制御部３１は、ネットワーク通信部３２によりクライアント装置４０から起動指示を受信すると、サービスの提供に用いられる第１サーバ装置１０を選択する（ステップＳＡ３）。制御部３１は、例えば、現時点で利用中のクライアント装置４０数が最も少ない第１サーバ装置１０を選択したり、予め決められた選択順に従って第１サーバ装置１０を選択したりすればよく、この選択方法については特に問わない。ここでは、制御部３１は、第１サーバ装置１０ａを選択したものとする。
【００４０】
ところで、一般にシンクライアントサーバでは、例えばユーザの認証に必要な認証情報やアプリケーションプログラムの実行に用いられる情報等の、ユーザ毎に個別に管理されるユーザデータが保持されている。本実施形態のシンクライアントサーバシステム１には、プロセス処理を実行する第１サーバ装置１０が複数含まれているが、以下のような仕組みでユーザデータが保持されていればよい。例えば、シンクライアントサーバシステム１に含まれるすべての第１サーバ装置１０が、全ユーザのユーザデータを記憶部１３に保持する。また、ユーザデータを一括して保持する管理サーバが別途設けられ、各第１サーバ装置１０がこの管理サーバにアクセスしてユーザデータを取得してもよい。また、特定の第１サーバ装置１０だけがユーザデータを記憶部１３に保持し、且つ、このユーザデータを保持する第１サーバ１０を特定するための所在情報をすべての第１サーバ装置１０が記憶部１３に保持する構成であってもよい。この場合、ステップＳＡ３の処理で、クライアント装置４０のユーザのユーザデータを保持しない第１サーバ装置１０が選択されたときには、選択された第１サーバ装置１０が所在情報に基づいてユーザデータを保持する第１サーバ装置１０を特定し、特定した第１サーバ装置１０にアクセスしてユーザデータを取得すればよい。
【００４１】
図１０に戻って説明する。
次に、制御部３１は、記憶部３５に記憶された第１管理テーブル３５１を更新する（ステップＳＡ４）。ここでは、制御部３１は、図１１（ａ）に示すようにして、起動指示に含まれるユーザＩＤ「090aaaa0001」と、ステップＳＡ３の処理で選択した第１サーバ装置１０ａに割り当てられた第１サーバＩＤ「００１」とを対応付けて、第１管理テーブル３５１に新たに記述する。ただし、制御部３１は、ここではプロセスＩＤの更新を行わず、第１管理テーブル３５１をブランク（図１１では「−」（ハイフン）で図示。）にしておく。
【００４２】
次に、制御部３１は、第１管理テーブル３５１を参照して、ステップＳＡ３の処理で選択した第１サーバ装置１０宛てに、第１サーバ通信部３３によりサービスの起動指示を送信する（ステップＳＡ５）。ここでは、制御部３１は、第１サーバ装置１０ａ宛てに起動指示を送信する。
【００４３】
第１サーバ装置１０ａの制御部１１は、通信部１２により起動指示を受信すると、受信した起動指示に従ってサービスを起動する（ステップＳＡ６）。ここでサービスを起動するということは、第１サーバ装置１０ａがサービスを提供するための動作状態になることを意味する。そこで、制御部１１は、まず、未使用のプロセスＩＤを起動指示の送信元のクライアント装置４０に割り当て、サービスの提供に必要なソフトウェアを記憶部１３から読み出して実行する。これにより、第１サーバ装置１０ａでは、起動指示の送信元のクライアント装置４０に対応して、図９に示したようなソフトウェア構成が実現される。
【００４４】
次に、制御部１１は、起動完了したことを示す起動応答を、通信部１２によりクライアント管理サーバ３０宛てに送信する（ステップＳＡ７）。起動応答には、ステップＳＡ６の処理で制御部１１が割り当てたプロセスＩＤが含まれる。
クライアント管理サーバ３０の制御部３１は、第１サーバ通信部３３により起動応答を受信すると、受信した起動応答に応じて第１管理テーブル３５１を更新する（ステップＳＡ８）。ここでは、制御部３１は、起動応答に含まれていたプロセスＩＤを、起動指示の送信元であるクライアント装置４０のユーザＩＤに対応付けて、第１管理テーブル３５１に記述する。ここでは、制御部３１は、図１１（ｂ）に示すようにして、第１管理テーブル３５１に記憶されたユーザＩＤ「090aaaa0001」と、第１サーバＩＤ「００１」とに対応付けて、プロセスＩＤ「０００１」を新たに記述する。
【００４５】
次に、第１サーバ装置１０ａの制御部１１は、起動指示に応じたプロセス処理を実行する（ステップＳＡ９）。ここでは、制御部１１は、プロセスＩＤ「０００１」が示すプロセスについて、ユーザにより行われた操作情報が示す操作（ここでは、サービスの起動を指示する操作）に応じた処理を実行する。ここでのプロセス処理は、例えば、クライアント装置４０に表示させる画像の画面情報を生成するための演算処理を規定した処理情報を供給する処理を含む。そして、制御部１１は、この処理情報と、自装置に割り当てられた第１サーバＩＤ（ここでは、「００１」）と、プロセスＩＤとのセット（ここでは、「０００１」）を、通信部１２によりクライアント管理サーバ３０宛てに送信する（ステップＳＡ１０）。送信完了すると、制御部１１は、送信完了したこと旨の応答を、処理情報ＩＦ１３１ａの機能によって取得することができる。
【００４６】
クライアント管理サーバ３０の制御部３１は、ステップＳＡ１０の処理で送信されたデータのセットを第１サーバ通信部３３により受信すると、第１管理テーブル３５１に記述された、起動指示の送信元となったクライアント装置４０のユーザＩＤを参照する（ステップＳＡ１１）。ここでは、制御部３１は、第１管理テーブル３５１に記述されたユーザＩＤ「090aaaa0001」を参照する。
【００４７】
次に、制御部３１は、サービスの提供に用いられる第２サーバ装置２０を選択する（ステップＳＡ１２）。制御部３１は、例えば、現時点で利用中のクライアント装置４０数が最も少ない第２サーバ装置２０を選択したり、予め決められた選択順に従って第２サーバ装置２０を選択したりすればよいが、この選択方法については特に問わない。ここでは、制御部３１は、第２サーバ装置２０ａを選択したものとする。
【００４８】
次に、制御部３１は、記憶部３５に記憶された第２管理テーブル３５２を更新する（ステップＳＡ１３）。ここでは、制御部３１は、図１１（ｃ）に示すようにして、起動指示に含まれていたユーザＩＤ「090aaaa0001」と、ステップＳＡ１２の処理で選択した第２サーバ装置２０ａに割り当てられた第１サーバＩＤ「００ａ」とを対応付けて、第２管理テーブル３５２に新たに記述する。
【００４９】
次に、制御部３１は、第２管理テーブル３５２を参照して、処理情報とユーザＩＤとのセットを、このユーザＩＤに対応付けられた第２サーバＩＤの第２サーバ装置２０宛てに、第２サーバ通信部３４により送信する（ステップＳＡ１４）。ここでは、制御部３１は、処理情報とユーザＩＤ「090aaaa0001」とのセットを、第２サーバ装置２０ａ宛てに送信させる。
【００５０】
第２サーバ装置２０ａの制御部２１は、ステップＳＡ１４の処理で送信されたデータのセットをサーバ通信部２３により受信すると、受信した処理情報が示す演算処理を実行し、画面情報を生成する（ステップＳＡ１５）。ここでは、制御部２１は、処理情報が示す演算処理としてＧＰＵ２５を用いた画像処理（例えば、レンダリング処理）を実行して、例えばビットマップ形式の画像情報を生成する。
なお、画面情報は、クライアント装置４０が画像の表示に用いることのできる形式のデータであればよい。
【００５１】
次に、制御部２１は、ステップＳＡ１５の処理で生成した画面情報に圧縮処理及びエンコード処理を施す（ステップＳＡ１６）。そして、制御部２１は、処理後の画面情報を、ネットワーク通信部２２によりクライアント装置４０宛てに送信する（ステップＳＡ１７）。ここでは、制御部２１は、ユーザＩＤで識別されるクライアント装置４０宛に画面情報を送信すればよい。
【００５２】
クライアント装置４０の制御部４１は、無線通信部４３により画面情報を受信すると、受信した画面情報にデコード処理や伸張処理を施す（ステップＳＡ１８）。そして、制御部４１は、画面情報に応じた画像をＵＩ部４４に表示させる（ステップＳＡ１９）。
以上が、サービスの提供を開始するときの通信システム１００での処理の流れの説明である。次に、通信システム１００でのサービスの提供中における処理の流れを、図１２を参照しつつ説明する。
【００５３】
図１２は、通信システム１００においてサービスの提供中における処理の流れを示すシーケンス図である。
クライアント装置４０の制御部４１は、ユーザにより行われた操作をＵＩ部４４等によって受け付けると（ステップＳＢ１）、受け付けた操作を示す操作情報と、自装置のユーザのユーザＩＤとのセットを、無線通信部４３によりクライアント管理サーバ３０宛てに送信する（ステップＳＢ２）。ここでは、制御部４１は、操作情報とユーザＩＤ「090aaaa0001」とのセットを送信させる。
【００５４】
クライアント管理サーバ３０の制御部３１は、ステップＳＢ２の処理で送信されたデータのセットをネットワーク通信部３２により受信すると、第１サーバ装置１０を選択する（ステップＳＢ３）。制御部３１は、受信したユーザＩＤに第１管理テーブル３５１において対応付けられた第１サーバＩＤを特定し、特定した第１サーバＩＤの第１サーバ装置１０を選択する。制御部３１は、ユーザＩＤ「090aaaa0001」を受信したから、ここでは、第１サーバ装置１０ａを選択する。
次に、制御部３１は、操作情報と、第１管理テーブル３５１においてユーザＩＤに対応付けられたプロセスＩＤとのセットを、第１サーバ通信部３３により、ステップＳＢ３の処理で選択した第１サーバ装置１０宛てに送信する（ステップＳＢ４）。ここでは、制御部３１は、操作情報とプロセスＩＤ「０００１」とのセットを、第１サーバ装置１０ａ宛てに送信させる。
【００５５】
第１サーバ装置１０ａの制御部１１は、ステップＳＢ４の処理で送信されたデータのセットを通信部１２により受信すると、これらの情報に応じてプロセス処理を実行する（ステップＳＢ５）。具体的には、制御部１１は、プロセスＩＤで識別されるプロセスにおいて、操作情報が示す操作に応じた処理を実行する。次に、制御部１１は、ステップＳＢ５の処理の実行後に表示される画像を表す画面情報を生成するための演算処理を規定した処理情報と、自装置の第１サーバＩＤ（ここでは、「００１」）と、プロセスＩＤ（ここでは、「０００１」）とのセットを、通信部１２によりクライアント管理サーバ３０宛てに送信する（ステップＳＢ６）。
【００５６】
クライアント管理サーバ３０の制御部３１は、ステップＳＢ６の処理で送信されたデータのセットを第１サーバ通信部３３により受信すると、第１管理テーブル３５１に記述された、操作情報の送信元となったクライアント装置４０のユーザＩＤを参照する（ステップＳＢ７）。ここでは、制御部３１は、第１管理テーブル３５１のユーザＩＤ「090aaaa0001」を参照する。
【００５７】
次に、制御部３１は、サービスの提供に用いられる第２サーバ装置２０を選択する（ステップＳＢ８）。ここでは、制御部３１は、受信したユーザＩＤに第２管理テーブル３５２において対応付けられた第２サーバＩＤを特定し、特定した第２サーバＩＤの第２サーバ装置２０を選択する。ここでは、制御部３１は、第２サーバ装置２０ａを選択する。
次に、制御部３１は、第２管理テーブル３５２を参照して、処理情報とユーザＩＤとのセットを、このユーザＩＤに対応付けられた第２サーバＩＤの第２サーバ装置２０宛てに、第２サーバ通信部３４により送信する（ステップＳＢ９）。ここでは、制御部３１は、第２サーバ装置２０ａ宛てに処理情報とユーザＩＤとのセットを送信させる。
【００５８】
第２サーバ装置２０ａの制御部２１は、ステップＳＢ９の処理で送信されたデータのセットをサーバ通信部２３により受信すると、処理情報に従って演算処理を実行し画面情報を生成する（ステップＳＢ１０）。次に、制御部２１は、生成した画面情報に圧縮処理及びエンコード処理を施す（ステップＳＢ１１）。そして、制御部２１は、処理後の画面情報をネットワーク通信部２２によりクライアント装置４０宛てに送信する（ステップＳＢ１２）。
【００５９】
クライアント装置４０の制御部４１は、無線通信部４３により画面情報を受信すると、受信した画面情報にデコード処理や伸張処理等の処理を施す（ステップＳＢ１３）。そして、制御部４１は、画面情報に応じた画像をＵＩ部４４に表示させる（ステップＳＢ１４）。以上のステップＳＢ９からＳＢ１４までの各処理ステップは、上述したステップＳＡ１４からＳＡ１９までの各処理ステップと同じ方法で実行される。
以上が、通信システム１００でのサービスの提供の開始後における処理の流れの説明である。以上の処理ステップは、クライアント装置４０がユーザにより行われた操作を受け付けるたびに実行される。また、サービスの提供を受けるクライアント装置４０は、クライアント管理サーバ３０の管理により、サービスを受けている期間中は、同一の第１サーバ装置１０及び同一の第２サーバ装置２０を経由してデータの授受を行うこととなる。
【００６０】
以上説明した実施形態によれば、シンクライアントサーバシステム１においては、プロセス処理を実行する第１サーバ装置１０と、画面情報の生成及び画面情報の転送を行う第２サーバ装置２０とが分離されるので、効果的にシンクライアントサーバの負荷分散を実現することができる。通信システム１００によれば、第１サーバ装置１０と第２サーバ装置２０とのそれぞれにおいて、実行すべき処理に適した設備設計が可能となるし、前掲した複数の作用の協働によって、クライアント装置４０における画面表示の遅延を抑制しつつ、多数のクライアント装置４０に個別の画面表示を行わせるための処理を並行して行うことができる。
【００６１】
第１サーバ装置１０のプロセッサ（ＣＰＵ）として、クライアント装置４０で動作するプロセッサでなく、一般のサーバ向けに作成されたプロセッサを適用した場合、仮想マシンにおいてはこのプロセッサで動作するＯＳが適用されることにより、前掲の作用効果を同等に奏する。
したがって、シンクライアントサーバステム１では、第１サーバ装置１０に適用するプロセッサの種類に応じて、プロセス処理によって提供可能なサービスの幅が、従来構成のシンクライアントサーバよりも広がることも期待できる。
【００６２】
また、通信システム１００によれば、クライアント装置４０におけるバッファ機能が実質的に不要である。これによりバッファリングされたデータをファイル化するアプリケーションプログラムが用いられても、画面情報がファイル化されることがないので、著作物の保護の観点からも好適である。
また、通信システム１００において、クライアント装置４０よりも高品質なハードウェア資源やソフトウェア資源をシンクライアントサーバシステム１に実装することで、クライアント装置４０を安価で提供しつつ、クライアント装置４０に高いサービスを提供することができる。
【００６３】
［変形例］
本発明は、上述した実施形態と異なる形態で実施することが可能である。本発明は、例えば、以下のような形態で実施することも可能である。また、以下に示す変形例は、各々を適宜に組み合わせてもよい。
［変形例１］
上述した実施形態では、第１サーバ装置１０は仮想マシンを動作させて、クライアント装置４０毎のプロセス処理を実行していた。これに代えて、第１サーバ装置１０が仮想化技術を用いないようにしてもよい。
図１３は、仮想化技術を用いない場合の通信システム１００のソフトウェア構成の一例を示す図である。図１３（ａ）は、この変形例の通信システム１００のソフトウェア構成を示し、図１３（ｂ）は従来の通信システムのソフトウェア構成を示す。
図１３（ａ）に示すように、この変形例のソフトウェア構成は、図９（ａ）に示すものから、仮想化ソフトウェア１３３及びゲストＯＳ１３２に相当するものがなく、ＯＳ上で各ソフトウェアが動作する構成に等しい。一方、図１３（ｂ）に示すように、従来の通信システムのソフトウェア構成にあっては、やはり、一台のサーバにおいて、画面情報を生成するまでのプロセスと画面転送プロセスとが実現される。このような仕組みでも、やはり、画面情報の生成及び画面転送プロセスに係る処理負荷が高いが故に、画面表示の遅延の原因になる。これに対し、本変形例では、シンクライアントサーバシステム１において、操作情報が示す操作に応じてプロセス処理を実行する第１サーバ装置１０と、画面情報の生成及び画面情報の転送を行う第２サーバ装置２０とが分離されている。よって、上述した実施形態と同等の作用により、クライアント装置４０での画面表示の遅延を抑制しうるようにシンクライアントサーバの負荷分散を実現することができる。
本変形例ような第１サーバ装置１０に仮想化技術を用いない構成は、第１サーバ装置１０全体を管理するＯＳ（サーバＯＳ）上でサービス処理を行う場合に適用することができる。もちろん、本変形例においても、第１サーバ装置１０のプロセッサとして、クライアント装置４０で動作するプロセッサ、及びサーバ向けに作成されたプロセッサのどちらも適用することができる。
なお、一台の第１サーバ装置１０において、仮想化マシンを用いたプロセス処理と、仮想マシンを用いないプロセス処理とが並列して実現されてもよい。
【００６４】
［変形例２］
上述した実施形態では、クライアント管理サーバ３０は、ステップＳＡ１２の処理で選択した第２サーバ装置２０を、サービスが提供される期間中において継続して利用していた。これに代えて、クライアント管理サーバ３０は、このような継続利用をしなくてもよい。第２サーバ装置２０では、受信した処理情報に従って画面情報を生成しそれを転送すればよく、クライアント装置４０毎のプロセスを管理する必要がないからである。そこで、クライアント管理サーバ３０は、処理情報を受信すると、いずれか１の第２サーバ装置２０を選択するという具合に、ユーザにより操作が行われるたびに第２サーバ装置２０を選択してもよい。
この構成であっても、上述した第１実施形態と同等の効果を奏する。また、この構成では、第２管理テーブル３５２が不要である。
【００６５】
［変形例３］
上述した実施形態で、クライアント管理サーバ３０は、サービスの提供のたびにステップＳＡ３の処理で第１サーバ装置１０を選択していた。これに代えて、各クライアント装置４０と第１サーバ装置１０との関係を予め決めておいてもよい。この構成であれば、クライアント管理サーバ３０は、ステップＳＡ４の処理で第１管理テーブル３５１を更新しなくてよい。同様に、クライアント管理サーバ３０は、サービスの提供のたびにステップＳＡ１２の処理で第２サーバ装置２０を選択していた。これに代えて、各クライアント装置４０と第２サーバ装置２０との対応関係を予め決めておいてもよい。この構成であれば、クライアント管理サーバ３０は、ステップＳＡ１２の処理で第２管理テーブル３５２を更新しなくてよい。
上述した実施形態では、第１サーバ装置１０は、ステップＳＡ７の処理で、起動応答にプロセスＩＤを含めてクライアント管理サーバ３０宛てに送信していた。これに代えて、第１サーバ装置１０は、ステップＳＡ１０の処理で、処理情報及びプロセスＩＤのセットを送信してもよい。また、クライアント管理サーバ３０は、ステップＳＡ５の処理でプロセスＩＤを送信して、起動指示の送信元のクライアント装置４０に対応したプロセスを実現させてもよいし、実現させるプロセスの内容を指定したデータを送信してもよい。
【００６６】
［変形例４］
上述した実施形態では、シンクライアントサーバシステム１は、第１サーバ装置１０と、第２サーバ装置２０と、クライアント管理サーバ３０とにより構成されていたが、クライアント管理サーバ３０を有しない構成としてもよい。この場合、クライアント装置４０が、起動指示や操作情報をいずれか１の第１サーバ装置１０宛てに送信する。そして、第１サーバ装置１０は、操作情報が示す操作に応じてプロセス処理を実行し、画面情報を生成するための処理情報を、第２サーバ装置２０宛てに送信する。そして、第２サーバ装置２０は、処理情報で規定される演算処理を実行して画面情報を生成し、起動指示の送信元のクライアント装置４０宛てに画面情報を送信する。
このように、シンクライアントサーバシステム１においては、操作情報が示す操作に応じてプロセス処理を実行する第１サーバ装置と、画面情報の生成及び画面情報の転送を行う第２サーバ装置とに分離されていれば、上述の実施形態と同等の効果を奏する。
なお、シンクライアントサーバシステム１では、第１サーバ装置１０と、第２サーバ装置２０とがそれぞれ少なくとも１台ずつあればよい。
【００６７】
［変形例５］
上述した実施形態において、シンクライアントサーバシステム１では、第１サーバ装置１０と第２サーバ装置２０とに分離されていた。上述した発明者の知見によれば、シンクライアントサーバシステム１にあっては、プロセス処理を実行するハードウェア資源と、画面情報の生成及び転送を実行するハードウェア資源とが分離されていればよいと考えられる。よって、図８を用いれば、少なくとも処理実行部１０２構成するハードウェア資源は、画面情報生成部２０２及び第２送信部２０３を構成するハードウェア資源とが分離されていればよいとも言える。ここでハードウェア資源が分離されているということは、例えば、上記機能ブロックの実現において、共通するハードウェアデバイスが用いられないことである。
また、通信システム１００において、上述した第１サーバ装置１０と第２サーバ装置２０とが同一筐体内に設けられたシンクライアントサーバシステム１が構成されてもよい。
【００６８】
［変形例６］
上述した実施形態において、第１サーバ装置１０が実行するＯＳと、クライアント装置４０が実行するＯＳとが同一でなくてもよい。また、第１サーバ装置１０のプロセッサは、必ずしもクライアント装置４０で動作するように作成されたものでなくてもよいが、プロセス処理の実行に適したプロセッサであることが好ましい。
また、本発明は、ＯＳ上で各プロセスを実現することを必須とするものでない。
また、第２サーバ装置２０でＧＰＵ２５が画像処理を司る画像処理部として機能していたが、他のプロセッサが用いられてもよい。
【００６９】
［変形例７］
クライアント装置４０はスマートフォンに限らず、例えば携帯電話端末やタブレット端末、パーソナルコンピュータ、ＰＤＡ（Personal Digital Assistant）等の他のクライアント装置であってもよく、移動機であるか否かも問わない。
また、第１サーバ装置１０、第２サーバ装置２０、クライアント管理サーバ３０及びクライアント装置４０の制御部４１が実現する各機能は、複数のプログラムの組み合わせによって実現され、又は、複数のハードウェア資源の協働によって実現されうる。
【符号の説明】
【００７０】
１…シンクライアントサーバシステム、１０，１０ａ，１０ｂ…第１サーバ装置、１００…通信システム、１０１…第１受信部、１０２…処理実行部、１０３…第１送信部、１１…制御部、１２…通信部、１３…記憶部、１３１…ホストＯＳ、１３１ａ…処理情報ＩＦ、１３２…ゲストＯＳ、１３３…仮想化ソフトウェア、１３４…サービスプロセス、１３５…仮想マシン、２０，２０ａ，２０ｂ…第２サーバ装置、２０１…第２受信部、２０２…画面情報生成部、２０３…第２送信部、２１…制御部、２２…ネットワーク通信部、２３…サーバ通信部、２４…記憶部、２４１…ＯＳ、２４１ａ…ＧＰＵＩＦ、２４２…画面情報生成プロセス、２４３…画面転送プロセス、３０…クライアント管理サーバ、３０１…第３受信部、３０２…第１サーバ選択部、３０３…第３送信部、３０４…第４受信部、３０５…第２サーバ選択部、３０６…第４送信部、３１…制御部、３２…ネットワーク通信部、３３…第１サーバ通信部、３４…第２サーバ通信部、３５…記憶部、１３１…第１管理テーブル、１３２…第２管理テーブル、４０…クライアント装置、４１…制御部、４１１…受付部、４１２…送信制御部、４１３…表示制御部、４２…音声入出力部、４３…無線通信部、４４…ＵＩ部、４５…記憶部、４５１…ＯＳ
【図１】
0005850660.tif 000002
【図２】
0005850660.tif 000003
【図３】
0005850660.tif 000004
【図４】
0005850660.tif 000005
【図５】
0005850660.tif 000006
【図６】
0005850660.tif 000007
【図７】
0005850660.tif 000008
【図８】
0005850660.tif 000009
【図９】
0005850660.tif 000010
【図１０】
0005850660.tif 000011
【図１１】
0005850660.tif 000012
【図１２】
0005850660.tif 000013
【図１３】
0005850660.tif 000014
【図１４】
0005850660.tif 000015