(57)【要約】【課題】画面転送方式による無線でのデータ転送に遅延が生じたことを検出可能な、シンクライアントサーバ及びクライアント端末を提供する。【解決手段】通信ネットワーク(NET)を介してクライアント端末(200)と接続されるシンクライアントサーバ(100)は、プログラムを実行するプログラム実行部(113)、プログラムの実行に基づいてクライアント端末(200)で表示すべき画面に関する表示データと、表示データを識別する表示識別情報とを生成する表示データ生成部(111)、表示データと表示識別情報とを、クライアント端末(200)へ送信するとともに、プログラムへの入力データと当該入力データに付加された表示識別情報とをクライアント端末(200)から受信する通信部(130)、受信した入力データに付加されている表示識別情報に基づいて、入力データの有効性を解析する入力データ解析部(112)を備え、プログラム実行部(113)は、有効と解析された入力データに基づいてプログラムを実行する。【選択図】図１
2010257186.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介してクライアント端末と接続されるシンクライアントサーバであって、
前記クライアント端末に対するアプリケーションのプログラムを実行するプログラム実行部と、
該プログラム実行部による前記プログラムの実行に基づいて、前記クライアント端末で表示される画面に関する表示データを生成する表示データ生成部と、
該表示データ生成部が生成した前記表示データを、前記通信ネットワークを介して前記クライアント端末へ送信するとともに、前記プログラムへの入力データを、前記通信ネットワークを介して前記クライアント端末から受信する通信部と、
該通信部を介して前記クライアント端末から受信した前記入力データを解析する入力データ解析部と、を備え、
前記表示データ生成部は、前記生成した表示データに当該表示データを識別する表示識別情報を生成して前記表示データに付加し、
前記通信部は、前記表示識別情報が付加された表示データを、前記通信ネットワークを介して前記クライアント端末へ送信するとともに、表示識別情報が付加された入力データを、前記通信ネットワークを介して前記クライアント端末から受信し、
前記入力データ解析部は、前記入力データに付加された表示識別情報に基づいて、前記入力データの有効性を解析し、
前記プログラム実行部は、前記入力データ解析部によって有効と解析された入力データに基づいてプログラムを実行する、
ことを特徴とするシンクライアントサーバ。
【請求項２】
請求項１に記載のシンクライアントサーバにおいて、
前記入力データ解析部は、
前記入力データに付加された前記表示識別情報が、前記通信部によって前記クライアント端末に送信された、最新の表示識別情報と一致する場合に、当該入力データを有効と判定する、
ことを特徴とするシンクライアントサーバ。
【請求項３】
請求項１又は２に記載のシンクライアントサーバにおいて、
前記入力データ生成部は、
前記クライアント端末に対して前記プログラムが複数実行される場合、前記表示識別情報を、前記プログラム毎に生成する、
ことを特徴とするシンクライアントサーバ。
【請求項４】
通信ネットワークを介してシンクライアントサーバと接続されるクライアント端末であって、
前記シンクライアントサーバによって実行される自端末に対するアプリケーションのプログラムに基づいて自端末で表示すべき画面に関する表示データと、当該表示データを識別する表示識別情報とを、前記シンクライアントサーバから受信する受信部と、
該受信部を介して受信した前記表示データに基づく画面を表示する表示部と、
該表示部に表示された画面に対する入力操作を受け付ける操作部と、
該操作部での入力操作に基づいた入力データを生成する入力データ生成部と、
該入力データ生成部が生成した入力データと、該入力データを生成した際の表示データに対応する表示識別情報とを、前記通信ネットワークを介して前記シンクライアントサーバへ送信する送信部と、
を備えることを特徴とするクライアント端末。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、シンクライアントサーバ及びクライアント端末に関し、特に、シンクライアントサーバとクライアント端末との間の画面転送方式に関する。
【背景技術】
【０００２】
シンクライアント（Ｔｈｉｎ  ｃｌｉｅｎｔ）とは、ユーザが使用するクライアント端末にて必要最小限の処理をさせ、ほとんどの処理をサーバ側に集中させたシステムアーキテクチャのことである。シンクライアント端末の利点として、以下のことが挙げられる。
【０００３】
第一に、クライアント端末に高いスペックが必要とされないため、端末を低価格にすることができる。第二に、スペックが低くても長期間使用することができるため、端末の買い替えコストを低減することができる。第三に、データを端末側に残さずサーバ側で管理するため、情報漏洩問題の対策に効果的である。第四に、端末側にデータが保存されないため、データに含まれることがよくあるスパイウェアやウィルスに感染するおそれがない。第五に、端末側の処理負荷が軽い為、低消費電力を実現することができる。さらに、ソフトウェアの更新、パッチ適用作業などはシンクライアントサーバ側で行うのみであるため、ＯＳやアプリケーションの管理が容易である。
【０００４】
シンクライアントの実装方式としては、代表的なものに、ネットワークブート方式、サーバベース方式、ブレードＰＣ方式及び仮想ＰＣ方式の４つがある。このうち、サーバベース方式、ブレードＰＣ方式及び仮想ＰＣ方式の３つは、画面転送方式と総称される。なお、それら３つの方式を簡単に説明する。
・サーバベース方式：アプリケーションの実行など全ての処理をサーバ上で行い、端末側は遠隔操作端末としての役割のみを担う方式。サーバから端末には画面情報が転送され、端末からサーバへはキーやマウスの入力情報が転送される。
・ブレードＰＣ方式：サーバベース方式でのサーバと端末の通信方式はそのままに、サーバではなく、たくさんのＰＣブレード（刃のように薄いパソコン）を並べてＰＣブレード上でクライアントＯＳを動作させる方式。
・仮想ＰＣ方式：サーバベース方式とブレードＰＣ方式と折衷とも言える方式で、サーバＯＳ中で、複数の仮想マシンを実行させる方式。端末側からはブレードＰＣ方式のように複数のクライアントＯＳが見える。
【０００５】
これまでのシンクライアントは、有線で接続されたＰＣを中心とした普及に留まっていたが、ＬＴＥ（Long Term Evolution）やＵＭＢ（Ultra Mobile Broadband）の様に、高速、大容量かつ低遅延の無線通信方式の普及により、無線通信の分野でもシンクライアントが普及すると考えられる。しかしながら、無線通信の場合、通信経路上に遅延等の障害が発生しやすい。この問題に対処するため、例えば、従来技術に、シンクライアントシステムにおいて、接続を切断したクライアント装置とサーバ装置とを再接続する際、無駄なデータ通信量を減らすことにより、短時間で再接続が可能なサーバベースコンピューティングシステムが開示されている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−７１０９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、シンクライアントを無線で実現した場合、有線と比較して、通信経路上の遅延や通信障害等が発生しやすくなる。従って、シンクライアントの実装方式として主流となっている画面転送方式を無線通信環境上で動作させる場合、通信経路上の遅延や通信障害等により、サーバ側から送信された画面情報がクライアント側で受信できなかったり大幅に遅れて受信したりする状況が発生するおそれがある。すると、クライアント側では、サーバ側でのアプリケーションの進捗状況と比較して古い画面を見ながらユーザが操作を行ってしまう可能性があり、その様な状況で操作された入力データがサーバ側に送信されると、アプリケーション上でユーザの意図しない処理が行われてしまう危険性がある。従来技術では、通信するデータ量を低減することにより遅延に対処しているが、データ量を低減することができない状況も考えられる。そして、遅延して届いた際に生じる上記のような問題に対処することができない。
【０００８】
従って、本発明の目的は、上述の諸課題を解決し、シンクライアントサーバとクライアント端末との間の画面転送方式によるデータ転送に遅延等何らかの障害が生じたことを検出可能な、シンクライアントサーバ及びクライアント端末を提供することにある。
【課題を解決するための手段】
【０００９】
上述した諸課題を解決すべく、本発明によるシンクライアントサーバは、
通信ネットワークを介して（１つ以上の）クライアント端末と接続されるシンクライアントサーバであって、
前記クライアント端末に対するアプリケーションのプログラムを実行するプログラム実行部と、
該プログラム実行部による前記プログラムの実行に基づいて、前記クライアント端末で表示される画面に関する表示データ（画面を構成する表示要素に関するデータ）を生成する表示データ生成部と、
該表示データ生成部が生成した前記表示データを、前記通信ネットワークを介して前記クライアント端末へ送信するとともに、前記プログラムへの入力データを、前記通信ネットワークを介して前記クライアント端末から受信する通信部と、
該通信部を介して前記クライアント端末から受信した前記入力データを解析する入力データ解析部と、を備え、
前記表示データ生成部は、前記生成した表示データに当該表示データを識別する表示識別情報を生成して前記表示データに付加し、
前記通信部は、前記表示識別情報が付加された表示データを、前記通信ネットワークを介して前記クライアント端末へ送信するとともに、表示識別情報が付加された入力データを、前記通信ネットワークを介して前記クライアント端末から受信し、
前記入力データ解析部は、前記入力データに付加された表示識別情報に基づいて、前記入力データの有効性を解析し、
前記プログラム実行部は、前記入力データ解析部によって有効と解析された入力データに基づいてプログラムを実行する、
ことを特徴とする。
【００１０】
また、本発明の一実施態様によるシンクライアントサーバは、
前記入力データ解析部は、
前記入力データに付加された前記表示識別情報が、前記通信部によって前記クライアント端末に送信された、最新の表示識別情報と一致する場合に、当該入力データを有効と判定する、
ことを特徴とする。
【００１１】
さらに、本発明の他の実施態様によるシンクライアントサーバは、
前記入力データ生成部は、
前記クライアント端末に対して前記プログラムが複数実行される場合、前記表示識別情報を、前記プログラム毎に生成する、
ことを特徴とする。
【００１２】
また、本発明の一実施態様によるクライアント端末は、
通信ネットワークを介してシンクライアントサーバと接続されるクライアント端末であって、
前記シンクライアントサーバによって実行される自端末に対するアプリケーションのプログラムに基づいて自端末で表示すべき画面に関する表示データと、当該表示データを識別する表示識別情報とを、前記シンクライアントサーバから受信する受信部と、
該受信部を介して受信した前記表示データに基づく画面を表示する表示部と、
該表示部に表示された画面に対する（ユーザの）入力操作を受け付ける操作部と、
該操作部での入力操作に基づいた入力データを生成する入力データ生成部と、
該入力データ生成部が生成した入力データと、該入力データを生成した際の表示データに対応する表示識別情報とを、前記通信ネットワークを介して前記シンクライアントサーバへ送信する送信部と、
を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、シンクライアントサーバとクライアント端末との間の画面転送方式によるデータ転送に遅延が生じたことを検出することが可能となり、シンクライアントサーバ側のアプリケーション上でユーザの意図しない処理が行われる事を防ぐことができる。
【図面の簡単な説明】
【００１４】
【図１】無線で実現した画面転送方式によるシンクライアントシステムの概略構成図である。
【図２】本発明の一実施例によるシンクライアントサーバの概略機能ブロック図である。
【図３】本発明の一実施態様によるクライアント端末の概略機能ブロック図である。
【図４】シンクライアントサーバにおける表示データ生成処理の一例を示すフローチャートである。
【図５】クライアント端末による表示データ解析処理の一例を示すフローチャートである。
【図６】クライアント端末による入力データ生成処理の一例を示すフローチャートである。
【図７】シンクライアントサーバにおける入力データ解析処理の一例を示すフローチャートである。
【図８】クライアント端末とシンクライアントサーバとの間で行われる動作のシーケンス図である。
【図９】無線によるシンクライアントシステムにおいて生じる遅延の問題を説明するシーケンス図である。
【発明を実施するための形態】
【００１５】
以降、諸図面を参照しながら、本発明の実施形態を詳細に説明する。図１は、無線で実現した画面転送方式によるシンクライアントシステムの概略構成図である。図１に示すように、シンクライアントシステムは、シンクライアントサーバ１００、クライアント端末２００、基地局３００、通信ネットワークＮＥＴ及びデータベースＤＢを含む。なお、図１では、一例として、クライアント端末２００を携帯電話として示している。シンクライアントサーバ１００とクライアント端末２００は、通信ネットワークＮＥＴと基地局３００を介して画面転送方式で通信（データ（画面）転送）を行う。
【００１６】
本発明の説明に入る前に、本発明が解決すべき課題とする、図１に示すシンクライアントシステムにおいて生じる通信障害の問題について説明する。図９は、シンクライアントシステムにおいて生じる遅延の問題を説明するシーケンス図である。図９のシーケンスにおいて、シンクライアントサーバ１００とクライアント２００とが、アプリケーションの実行に伴うデータのやり取りを行っている。まず、シンクライアントサーバ１００は、クライアント２００から要求を受けたアプリケーションを起動する（ステップＴ１１）。そして、アプリケーションの画面（アプリ画面）Ａ−１の表示データを作成し、クライアント２００へ送信する（ステップＴ１２）。クライアント２００では、受信した表示データに基づく画面Ａ−１が表示される（ステップＴ１３）。クライアント２００において、画面Ａ−１に対するユーザ操作（００１）が行われ、入力データ（００１）がシンクライアントサーバ１００へ送信される（ステップＴ１４）。シンクライアントサーバ１００は、入力データ（００１）のアプリケーションへの入力処理を行う（ステップＴ１５）。さらに、シンクライアントサーバ１００は、入力データ（００１）に対応するアプリ画面Ｂ−１を作成し、アプリ画面Ｂ−１に基づく表示データをクライアント２００へ送信する（ステップＴ１６）。クライアント２００では、アプリ画面Ｂ−１が表示され（ステップＴ１７）、アプリ画面Ｂ−１に対して行われたユーザ操作（００２）による入力データ（００２）がシンクライアントサーバ１００へ送信される（ステップＴ１８）。
【００１７】
シンクライアントサーバ１００は、入力データ（００２）の入力処理（ステップＴ１９）、入力データ（００２）に対応するアプリ画面Ｃ−１の作成を行い、アプリ画面Ｃ−１に基づく表示データをクライアント２００へ送信する（ステップＴ２０）。このとき、図９に示すように、クライアント２００とシンクライアントサーバ１００との間の無線通信に障害が発生すると、表示データがクライアント２００へ到達しない。従って、クライアント２００では、アプリ画面Ｂ−１が更新されず表示され続ける（ステップＴ２１）。クライアント２００において、ユーザは、入力データ（００２）を送信したにも関わらず、時間が経過しても画面Ｂ−１が更新されないため、アプリ画面Ｂ−１に対する入力操作（００２）を再度行う。それに伴い、入力データ（００２）が再度シンクライアントサーバ１００へ送信される（ステップＴ２２）。すると、入力データ（００２）を受信したシンクライアントサーバ１００は、入力データ（００２）を、アプリ画面Ｃ−１に対する入力として処理してしまう（ステップＴ２３）。そして、シンクライアントサーバ１００は、アプリ画面Ｃ−１に対する入力データ（００２）の入力に対するアプリ画面Ｄ−１を生成し、クライアント２００へ送信する（ステップＴ２４）。従って、クライアント２００では、アプリ画面Ｄ−１が表示されてしまい（ステップＴ２５）、アプリ画面Ｃ−１が表示されるものと想定していたクライアント２００のユーザを混乱させることになる。本発明は、上述のような問題を解決するものである。
【００１８】
まず、シンクライアントサーバについて説明する。図２は、本発明の一実施例によるシンクライアントサーバの概略機能ブロック図である。図２に示すように、シンクライアントサーバ（サーバ）１００は、制御部１１０、データベースインタフェース１２０及び通信部１３０を備える。制御部１１０は、表示データ生成部１１１、入力データ解析部１１２及びプログラム実行部１１３をさらに備える。
【００１９】
各部の機能について説明する。プログラム実行部１１３は、クライアント端末２００に対するアプリケーションプログラムの実行を司る。表示データ生成部１１１は、プログラム実行部１１３によるプログラムの実行に基づいて、クライアント端末２００で表示される画面に関する表示データを生成する。さらに、表示データ生成部１１１は、生成した表示データを識別する表示識別情報を生成し、表示データに付加する。通信部１３０は、表示データ生成部１１１が生成した表示データと、その表示データの表示識別情報とを、通信ネットワークＮＥＴを介してクライアント端末２００へ送信するとともに、プログラムへの入力データと、その入力データに付加された表示識別情報（後述するカレント表示識別情報）とを、通信ネットワークＮＥＴを介してクライアント端末２００から受信する。入力データ解析部１１２は、通信部１３０を介してクライアント端末２００から受信した入力データを解析する。また、入力データ解析部１１２は、クライアント端末２００から受信した入力データに付加された表示識別情報（カレント表示識別情報）に基づいて、その入力データの有効性を判定する。さらに、入力データ解析部１１２は、有効と判定した入力データに基づくプログラムの実行を、プログラム実行部１１３へ指示する。プログラム実行部１１３は、入力データ解析部１１２によって有効と判定された入力データに基づいて、プログラムを実行する。制御部１１０は、各機能部の制御を司る。
【００２０】
次に、本発明の一実施態様によるクライアント端末を説明する。図３に、本発明の一実施態様によるクライアント端末の概略機能ブロック図を示す。図３に示すように、クライアント端末２００は、制御部２１０、通信部２２０、表示部２３０、操作部２４０及びアンテナＡＮＴを備える。制御部２１０は、入力データ生成部２１１、表示データ解析部２１２及び計時部２１３をさらに備える。通信部２２０は、受信部２２２及び送信部２２４をさらに備える。
【００２１】
各部の機能を説明する。制御部２１０は、クライアント端末２００全体の制御を司る。受信部２２２は、シンクライアントサーバ１００によって実行される自端末に対するアプリケーションのプログラムに基づいて、自端末で表示すべき画面に関する表示データと、その表示データを識別する表示識別情報とを、通信ネットワークＮＥＴを介してシンクライアントサーバ１００から受信する。表示部２３０は、受信部２２２を介してシンクライアントサーバ１００から受信した表示データに基づいた画面を表示する。操作部２４０は、例えば、キーパッド、キーボタン又はタッチパネル等で構成され、表示部２３０に表示された画面に対するユーザの入力操作を受け付ける。入力データ生成部２１１は、操作部２４０での入力操作に基づく入力データを生成する。表示データ解析部２１２は、受信部２２２で受信された表示データと、その表示データを識別する表示識別情報とを解析する。送信部２２４は、入力データ生成部２１１が生成した入力データと、入力データを生成した際の表示データに対応する表示識別情報（カレント表示識別情報）とを、通信ネットワークＮＥＴを介してシンクライアントサーバ１００へ送信する。
【００２２】
以下に、シンクライアントサーバ１００及びクライアント端末２００における動作について説明する。まず、シンクライアントサーバ１００で表示データを生成する処理について説明する。図４は、シンクライアントサーバ１００における表示データ生成処理の一例を示すフローチャートである。なお、本フローに先立ち、シンクライアントサーバ１００は、クライアント端末２００から接続要求を受け、接続要求を行うクライアント端末２００のユーザ認証を行い、ユーザ認証が成功したクライアント端末２００に対して接続許可を送信している。その際、接続許可を受けたクライアント端末２００は、自端末の画面表示能力（画面サイズ、サイクロイド機構の有無等）、処理能力及び装備する入力操作デバイス（タッチパネル、キーボタン等）などのスペック情報をシンクライアントサーバ１００に通知する。なお、これらのスペック情報は、クライアント端末２００からの接続要求と同時にシンクライアントサーバ１００に送信してもよい。また、サーバ１００自体が過去に取得したスペック情報を保持しても良いし、端末の型番などからスペック情報を判断しても良い。シンクライアントサーバ１００は、クライアント端末２００から受信したスペック情報を、内部の記憶部（図示せず）又はデータベースＤＢに格納し、少なくとも、クライアント端末２００との通信が終了するまで保持する。
【００２３】
まず、制御部１１０は、クライアント端末２００からアプリケーション起動要求があるか否かを判定し、起動要求があると、プログラム実行部１１３が、要求されたアプリケーションをデータベースＤＢから読み込んで起動する（ステップＳ１１）。なお、クライアント端末２００からのアプリケーション起動要求に先立ち、シンクライアントサーバ１００は、シンクライアントサーバ１００においてクライアント端末２００が利用可能なサービスのメニューに関する表示データを生成し、クライアント端末２００へ送信してもよい。この際、シンクライアントサーバ１００は、クライアント端末２００のスペック情報に応じて、クライアント端末２００の画面表示能力や処理能力を考慮したデータを生成する。サービスメニューに関する表示データを受け取ったクライアント端末２００では、表示データに応じたサービスメニュー画面が表示される。その後、クライアント端末２００にてサービスの選択操作が行われると、ステップＳ１１のように、選択されたサービスのアプリケーションを起動する。
【００２４】
ステップＳ１１にて、プログラム実行部１１３によってアプリケーションが起動されると、表示データ生成部１１１は、起動されたアプリケーションに応じた表示データを生成する（ステップＳ１２）。表示データとは、クライアント端末２００に表示される画面を構成する表示要素に関するデータである。次に、表示データ生成部１１１は、生成した表示データに対応する表示識別情報を生成する（ステップＳ１３）。なお、表示識別情報のフォーマットとしては様々なものが考えられるが、起動中のアプリケーションを示す情報、送信先のクライアントを識別する情報、また、現在時刻等を含み、ＵＩ（User Interface：ユーザインタフェース）的に異なる画面に対する表示データに対して、生成するのが好適である。例えば、クライアント端末２００において複数のアプリケーションプログラムが実行され、表示部２３０に複数のアプリケーション画面が表示される場合、表示データ生成部１１１は、アプリケーションプログラム毎に異なる表示識別情報を生成してもよい。
【００２５】
さらに、表示データ生成部１１１は、生成した表示識別情報を対応する表示データに付加し、表示データと、その表示データに対応する表示識別情報とを、通信部１３０へ出力する（ステップＳ１４）。通信部１３０は、表示データにその表示データに対応する表示識別情報を付加し、クライアント端末２００へと出力する（ステップＳ１５）。そして、制御部１１０は、クライアント端末２００からアプリ終了要求があるか否かを判定する（ステップＳ１６）。また、制御部１１０は、起動中のアプリケーションにおいて画面の更新が発生したか否かを判定する（ステップＳ１７）。画面の更新は、例えば、クライアント端末２００から入力データを受信した場合等に行われる。制御部１１０は、画面の更新がない間はステップＳ１６及びＳ１７の判定を繰り返す。また、制御部１１０は、画面の更新が発生した場合は、ステップＳ１２へ戻り、新たな表示データ及びその表示データに対応する、新たな表示識別情報の生成を行う（ステップＳ１２〜Ｓ１５）。シンクライアントサーバ１００は、ステップＳ１６にてアプリ終了と判定されるまで、ステップＳ１２〜Ｓ１７を繰り返す。
【００２６】
次に、図４のフローチャートによって生成された表示データ及び表示識別情報を受信したクライアント端末２００の動作（表示データ解析処理）について説明する。図５は、クライアント端末２００による表示データ解析処理の一例を示すフローチャートである。まず、制御部２１０は、受信部２２２にてシンクライアントサーバ１００から表示データを受信したか否かを判定する（ステップＳ２１）。表示データを受信すると、表示データ解析部２１２は、表示データに付加されている表示識別情報を分離して取得し（ステップＳ２２）、表示データを表示部２３０へ出力する（ステップＳ２３）。表示部２３０は、表示データに基づいた画面を表示する。制御部２１０は、表示部２３０に画面が正常に表示されたか否かを判定する（ステップＳ２４）。制御部２１０は、画面が表示部２３０に正常に表示されると、ステップＳ２２で分離した表示識別情報を、現在、表示部２３０に表示中の画面の識別情報（カレント表示識別情報）としてデータベースＤＢに格納する（ステップＳ２５）。このとき、これ以前の表示画面に対するカレント表示識別情報が既にデータベースＤＢに格納されている場合は、新たなカレント表示識別情報により上書きする。なお、ステップＳ２４にて表示部２３０に画面が正常に表示されなかった場合は、処理を終える。
【００２７】
クライアント端末２００において、図５のフローチャートを経て表示部２３０にアプリケーション画面が表示されると、そのアプリケーション画面に対してユーザが入力操作を行う。入力操作とは、例えば、画面に複数の選択ボタンが表示されている場合にそのうちの１つをユーザが選択する操作等である。このように、ユーザの入力操作が行われた場合の、クライアント端末２００の動作（入力データ生成処理）について以下に説明する。図６は、クライアント端末２００による入力データ生成処理の一例を示すフローチャートである。まず、制御部２１０は、操作部２４０においてユーザの入力操作（ユーザ操作）が発生したか否かを判定する（ステップＳ３１）。入力データ生成部２１１は、ユーザ操作が発生すると、そのユーザ操作に基づいた入力データを生成する（ステップＳ３２）。入力データとは、上述の例で言えば、「ボタン１が選択された」等を示すデータである。さらに、入力データ生成部２１１は、その時点で表示部２３０に表示されていたアプリケーション画面に対応するカレント表示識別情報を入力データに付加する（ステップＳ３３）。そして、入力データ生成部２１１は、入力データとカレント表示識別情報とを送信部２２０へ渡す（ステップＳ３４）。送信部２２０は、シンクライアントサーバ１００へ、入力データとカレント表示識別情報とを送信する。
【００２８】
次に、図６のフローチャートによってクライアント端末２００によって生成された入力データ及びカレント表示識別情報を受信したシンクライアントサーバ１００の動作（入力データ解析処理）について説明する。図７は、シンクライアントサーバ１００における入力データ解析処理の一例を示すフローチャートである。まず、制御部１１０は、クライアント端末２００から入力データを受信したか否かを判定する（ステップＳ４１）。入力データを受信すると、入力データ解析部１１２は、入力データの種別（入力操作の種類や、どのアプリケーションプログラムに対する入力操作かを示すデータ）や、入力データに付加されたカレント表示識別情報を確認する（ステップＳ４２）。そして、入力データ解析部１１２は、入力データの有効性を判定する（ステップＳ４３，Ｓ４４）。すなわち、シンクライアントサーバ１００からクライアント端末２００へ送信された、入力データが対象とするアプリケーションプログラムに関する最新の表示データに付加した表示識別情報と、入力データに付加されたカレント表示識別情報とを比較し、一致していた場合には入力データを有効と判定する。入力データが有効であると判定された場合は、プログラム実行部１１３は、受信した入力データ（入力操作）に対応するアプリケーションプログラムを実行する。ステップＳ４４にて入力データが有効でないと判定された場合、処理を終了する。なお、入力データが有効でないと判定された場合は、クライアント端末２００で最新の表示データが取得できていない事になる。従って、シンクライアントサーバ１００において、最新の表示データを再送信する処理を行うように表示データ生成部１１１を制御してもよい。
【００２９】
次に、図４〜図７を用いて説明したクライアント端末２００とシンクライアントサーバ１００との間で行われる動作のシーケンスを説明する。図８は、クライアント端末２００とシンクライアントサーバ１００との間で行われる動作のシーケンス図である。なお、クライアント端末２００とシンクライアントサーバ１００との間でデータのやり取りを行うにあたって、シンクライアントサーバ１００は、クライアント端末２００から接続要求を受け、接続要求を行うクライアント端末２００のユーザ認証を行い、ユーザ認証が成功したクライアント端末２００に対して接続許可を送信している。
【００３０】
まず、シンクライアントサーバ１００は、ユーザ認証が成功したクライアント端末２００に対するアプリケーションを起動する（ステップＰ１１）。そして、アプリケーションの画面（アプリ画面）Ａ−１の表示データを作成し、クライアント２００へ送信する（ステップＰ１２）。このとき、表示データが画面Ａ−１に関するものであることを識別するための表示識別情報（Ａ−１）が表示データとともに送信される。クライアント２００では、受信した表示データに基づき、アプリケーション画面Ａ−１が表示される（ステップＰ１３）。また、クライアント端末２００では、アプリケーション画面Ａ−１が表示されたため、カレント表示識別情報が、ステップＰ１２でシンクライアントサーバ１００から送信された表示識別情報（Ａ−１）で上書きされる。その後、アプリケーション画面Ａ−１に対するユーザ操作（００１）が行われる（ステップＰ１４）。そして、クライアント端末２００は、ユーザ操作（００１）に関する入力データ（００１）にカレント表示識別情報（Ａ−１）を付加して、シンクライアントサーバ１００へ送信する（ステップＰ１４）。シンクライアントサーバ１００は、入力データ（００１）が有効であるか否かを、クライアント端末２００から受信したカレント表示識別情報と、直前にステップＰ１２で送信した最新の表示識別情報とを比較することで判定する（ステップＰ１５）。図８の例では、それらが同一の（Ａ−１）であり有効であると判定され、シンクライアントサーバ１００は、入力データをアプリケーションで処理する（ステップＰ１６）。さらに、シンクライアントサーバ１００は、入力データ（００１）に応じたアプリケーション画面Ｂ−１を作成し、アプリケーション画面Ｂ−１に対応する表示データと、新たに生成した表示識別情報（Ｂ−１）とをクライアント２００へ送信する（ステップＰ１７）。クライアント２００では、アプリケーション画面Ｂ−１が表示され（ステップＰ１８）、カレント表示識別情報（Ａ−１）が、新たにシンクライアントサーバ１００から受信した表示識別情報（Ｂ−１）で上書きされる。その後、アプリケーション画面Ｂ−１に対して行われたユーザ操作（００２）による入力データ（００２）が、カレント表示識別情報（Ｂ−１）とともにシンクライアントサーバ１００へ送信される（ステップＰ１９）。
【００３１】
シンクライアントサーバ１００は、入力データ（００２）の有効性の判定（ステップＰ２０）、入力データのプログラムへの入力処理（ステップＰ２１）、入力データ（００２）に対応するアプリケーション画面Ｃ−１とアプリケーション画面Ｃ−１に対する新たな表示識別情報（Ｃ−１）の作成を行い、表示データＣ−１と新たな表示識別情報（Ｃ−１）とをクライアント２００へ送信する（ステップＰ２２）。このとき、図８に示すように、クライアント２００とシンクライアントサーバ１００との間の通信に障害が発生すると、表示データ及び表示識別情報（Ｃ−１）がクライアント２００へ到達しない。従って、クライアント２００では、アプリケーション画面Ｂ−１が更新されずに表示され続ける（ステップＰ２３）。クライアント２００では、時間が経過しても画面表示Ｂ−１が更新されないため、ユーザが、アプリケーション画面Ｂ−１に対する入力操作（００２）を再度行うと、入力データ（００２）とカレント表示識別情報（Ｂ−１）とが再度シンクライアントサーバ１００へ送信される（ステップＰ２４）。すると、シンクライアントサーバ１００では、送信した最新の表示識別情報（Ｃ−１）とクライアント端末２００から受信したカレント表示識別情報（Ｂ−１）とが異なると判定され、入力データが無効であると判定される（ステップＰ２５）。このようにすれば、従来技術と異なり、入力データ（００２）を受信したシンクライアントサーバ１００は、入力データ（００２）を、アプリケーション画面Ｃ−１に対する入力として処理してしまうことがない。
【００３２】
従来であれば、クライアント２００におけるアプリケーションに対する操作が行われ、その入力データがシンクライアントサーバ１００へ送信されると、入力データを受信したシンクライアントサーバ１００はただちにアプリケーションにて入力処理が行われる。それに対し、本発明の一実施態様によれば、シンクライアントサーバ１００によって、入力データの有効性がまず判定され、有効と判定された入力データのみがアプリケーションにて処理される。従って、シンクライアントサーバ１００とクライアント２００との間のデータの送受信に障害が発生した場合でも、ユーザの入力データが意図しないアプリケーションへの入力データとしてシンクライアントサーバ１００で処理されてしまうことがない、という効果を得ることができる。
【００３３】
なお、上述では、アプリケーション画面の更新が生じた場合に、シンクライアントサーバ１００からクライアント２００へ、更新された画面全体に対する表示データが送信される例について説明した。しかしながら、シンクライアントサーバ１００は、フレーム間予測符号化や動き補償予測等のように、アプリケーション画面の更新が生じた場合に、既にクライアント２００へ送信済みの表示データと、新たな画面の表示データとの差分データを生成してクライアント２００へ送信してもよい。差分データを受け取ったクライアント２００は、差分データに従って画面表示を更新することができる。
【００３４】
また、クライアント２００による入力操作に拠らずに、アプリケーションの画面が更新されることも起こり得る。しかしながら、更新前後でＵＩ（User Interface：ユーザインタフェース）的に差異の無い画面変化（例えば、画面上でアイコンの点滅が継続している場合や、動画再生中に動画のみが更新される場合等）であっても、画面が変化する度に新しい表示識別情報を生成することは、シンクライアントサーバ１００の処理負荷や、通信量の増加に繋がり好ましくない。従って、シンクライアントサーバ１００は、表示識別情報を生成する際に、まず、既にクライアント２００へ送信済みの最新のアプリケーション画面と、これから送信するアプリケーション画面とに含まれるオブジェクト（表示要素）について、表示位置やオブジェクトの種別、状態を比較し、ＵＩ的にアプリケーション画面が等しいか否かを判定する。この判定結果により、ＵＩ的に表示画面が一致すると判定された場合には、直前に送信したものと同一の表示識別情報を送信し、一致しないと判定された場合には、新たな表示識別情報を生成して送信するようにしてもよい。
【００３５】
なお、例えば、クライアント端末２００がサイクロイド機構を備える場合には、表示部を回転させて縦長又は横長にすることができる。従って、アプリケーション画面も、表示部の状態に応じて表示方向を縦長又は横長に変更する必要がある。このように、アプリケーション画面の表示方向が変更された場合に、シンクライアントサーバ１００は、新たなアプリケーション画面に対する表示データと表示識別情報とを、クライアント端末２００へ送信する。
【００３６】
なお、ユーザは、クライアント２００において、連続して入力操作を行うことが考えられる。例えば、画面のスクロール、拡大／縮小、フォーカス移動等である。従って、シンクライアントサーバ１００において、クライアント２００から受信する入力データが連続入力か否かを考慮した上で、入力データの有効性を判定することが好ましい。その方法としては、例えば、シンクライアントサーバ１００において、入力データの種別を判定し、連続入力する可能性がある種別の入力であれば、それ以前に処理済みの入力データと同じ内容かどうかをチェックする。そして、シンクライアントサーバ１００は、入力データの内容が同じであれば、さらに、入力操作の発生時間の間隔を考慮して、ユーザが最初から意図的に連続入力した場合の入力データなのか、又は、入力操作後に画面表示が変化しないことに対して困惑した結果としてユーザが再び同じ操作を行った際の入力データなのかを判定することができる。
【００３７】
本発明の利点を再度述べる。本発明によれば、シンクライアントサーバとクライアント端末との間の画面転送方式による無線でのデータ転送に遅延が生じたことを検出することが可能となり、シンクライアントサーバ側のアプリケーション上でユーザの意図しない処理が行われる事を防ぐことができる。
【００３８】
本発明を諸図面や実施例に基づき説明してきたが、当業者であれば本開示に基づき種々の変形や修正を行うことが容易であることに注意されたい。従って、これらの変形や修正は本発明の範囲に含まれることに留意されたい。例えば、各部、各ステップ等に含まれる機能等は論理的に矛盾しないように再配置可能であり、複数の構成部やステップ等を１つに組み合わせたり、或いは分割したりすることが可能である。例えば、上述の実施例では、クライアント端末として携帯電話を例に説明したが、本発明はこれに限られるものではなく、クライアント端末としては、携帯ゲーム機などの携帯電子機器でもよい。また、上述の実施例では無線でシンクライアントシステムを実現する例について説明したが、本発明を有線でのシンクライアントシステムに適用することも可能である。
【符号の説明】
【００３９】
１００  シンクライアントサーバ
１１０  制御部
１１１  表示データ生成部
１１２  入力データ解析部
１１３  プログラム実行部
１２０  データベースインタフェース
１３０  通信部
２００  クライアント端末
２１０  制御部
２１１  入力データ生成部
２１２  表示データ解析部
２１３  計時部
２２０  通信部
２２２  受信部
２２４  送信部
２３０  表示部
２４０  操作部
３００  基地局
ＡＮＴ  アンテナ
ＮＥＴ  通信ネットワーク
ＤＢ  データベース
【図１】
2010257186.tif 000003
【図２】
2010257186.tif 000004
【図３】
2010257186.tif 000005
【図４】
2010257186.tif 000006
【図５】
2010257186.tif 000007
【図６】
2010257186.tif 000008
【図７】
2010257186.tif 000009
【図８】
2010257186.tif 000010
【図９】
2010257186.tif 000011