(57)【特許請求の範囲】
【請求項１】
画面における更新領域の画像を表す画面更新情報を生成する画面更新生成部と、
クライアント端末と通信する第１〜第Ｎ（Ｎは２以上の整数）の送信部と、
前記画面更新生成部により生成された画面更新情報を、前記第１〜第Ｎの送信部から選択した送信部に分配する分配部と、
前記画面更新生成部による前記画面更新情報の生成履歴を格納する画面更新履歴格納部と、
前記画面更新情報の生成履歴に基づき、画面更新情報Ｘおよび画面更新情報Ｙを特定し、前記画面更新情報Ｘは前記画面更新情報Ｙより先に生成され、前記画面更新情報Ｙの画像は、前記画面更新情報Ｘの画像よりも先に表示することが許容される、先行可能判断部と、を備え、
前記分配部は、前記画面更新情報Ｙを、前記画面更新情報Ｘとは異なる送信部に分配し、
前記第１〜第Ｎの送信部は、前記分配部により分配された画面更新情報を前記クライアント端末に送信する
サーバ端末。
【請求項２】
前記画面更新履歴格納部は、前記画面更新情報の生成履歴として、前記更新領域の履歴を格納し、
前記先行可能判断部は、前記画面更新情報の更新領域の位置関係に基づき、前記画面更新情報Ｘおよび前記画面更新情報Ｙを特定する
請求項１に記載のサーバ端末。
【請求項３】
前記先行可能判断部は、前記画面更新情報の更新領域が互いに重複しない画面更新情報を、前記画面更新情報Ｘおよび前記画面更新情報Ｙとして特定する
請求項２に記載のサーバ端末。
【請求項４】
前記先行可能判断部は、前記画面更新情報Ｘの更新領域が、前記画面更新情報Ｙの更新領域に包含されるように、前記画面更新情報Ｘおよび前記画面更新情報Ｙを特定する
請求項２に記載のサーバ端末。
【請求項５】
前記画面更新情報が生成されたアプリケーションの種別を取得するＡＰＰ種別取得部をさらに備え、
前記画面更新履歴格納部は、前記アプリケーションの種別を、前記画面更新情報に対応づけて格納し、
前記先行可能判断部は、前記画面更新情報Ｘが、前記画面更新情報Ｙと異なるアプリケーションに属するように、前記画面更新情報Ｘおよび前記画面更新情報Ｙを特定する
請求項１ないし４のいずれか一項に記載のサーバ端末。
【請求項６】
前記画面更新履歴格納部は、前記画面更新情報が生成されたウィンドウの階層情報を記憶し、
前記先行可能判断部は、前記画面更新情報Ｘが、前記画面更新情報Ｙが属するウィンドウよりも後面のウィンドウに属するように、前記画面更新情報Ｘおよび前記画面更新情報Ｙを特定する
請求項１ないし５のいずれか一項に記載のサーバ端末。
【請求項７】
前記第１〜第Ｎの送信部への前記画面更新情報の分配履歴を記憶する分配履歴格納部をさらに備え、
前記分配部は、画面更新情報Ｙの分配先を、前記画面更新情報Ｘとは異なる送信部のうち、前記分配履歴における前記画面更新情報の分配数が最も少ない送信部に決定する
請求項１ないし６のいずれか一項に記載のサーバ端末。
【請求項８】
前記第１〜第Ｎの送信部への前記画面更新情報の分配履歴と、前記画面更新情報が表す画像のサイズとを記憶する分配履歴格納部をさらに備え、
前記分配部は、前記画面更新情報Ｙの分配先を、前記画面更新情報Ｘとは異なる送信部のうち、前記分配履歴における前記画面更新情報の画像のサイズの総和が最も小さい送信部に決定する
請求項１ないし６のいずれか一項に記載のサーバ端末。
【請求項９】
前記分配部は、前記画面更新情報Ｙの分配先を、前記画面更新情報Ｘとは異なる送信部のうち、当該送信部の通信状態に基づいて決定する
請求項１ないし６のいずれか一項に記載のサーバ端末。
【請求項１０】
前記分配部は、前記画面更新情報Ｙの分配先を、輻輳ウィンドウの値が最大の送信部に決定する
請求項９に記載のサーバ端末。
【請求項１１】
前記分配部は、前記画面更新情報Ｙの分配先を、送信バッファの空き容量が最大の送信部に決定する
請求項９に記載のサーバ端末。
【請求項１２】
前記画面更新生成部により生成された画面更新情報にシーケンス番号を設定するシーケンス番号設定部を有し、
前記第１〜第Ｎの送信部は、前記画面更新情報Ｙとともに、前記画面更新情報Ｙのシーケンス番号と、前記画面更新情報Ｘのシーケンス番号を含む先行可能情報とを送信する
請求項１ないし１１のいずれか一項に記載のサーバ端末。
【請求項１３】
請求項１〜１１のいずれか一項に記載のサーバ端末と、前記クライアント端末とを備え、
前記クライアント端末は、
前記第１〜第Ｎの送信部から、前記画面更新情報を受信する第１〜第Ｎの受信部と、
前記第１〜第Ｎの受信部により受信された前記画面更新情報の画像を表示する表示部と、
を有する
画面転送システム。
【請求項１４】
前記サーバ端末は、前記画面更新生成部により生成された画面更新情報にシーケンス番号を設定するシーケンス番号設定部を有し、
前記サーバ端末の前記第１〜第Ｎの送信部は、前記画面更新情報Ｙとともに、前記画面更新情報Ｙのシーケンス番号と、前記画面更新情報Ｘのシーケンス番号を含む先行可能情報とを送信し、
前記クライアント端末は、前記画面更新情報Ｙのシーケンス番号と前記先行可能情報に基づいて、前記第１〜第Ｎ受信部により受信された画面更新情報の画像を表示する順序を決定する
請求項１３に記載の画面転送システム。
【請求項１５】
前記クライアント端末は、前記画面更新情報Ｙよりシーケンス番号が小さい未受信の画面更新情報が存在し、かつ前記未受信の画面更新情報のシーケンス番号がすべて前記先行可能情報に含まれるときは、前記画面更新情報Ｙの画像を前記未受信の画面更新情報よりも先に表示する
請求項１４に記載の画面転送システム。
【請求項１６】
画面における更新領域の画像を表す画面更新情報を生成する画面更新生成ステップと、
前記画面更新生成ステップにより生成された画面更新情報を、第１〜第Ｎ（Ｎは２以上の整数）の送信部から選択した送信部に分配する分配ステップと、
前記画面更新情報の生成履歴を画面更新履歴格納部に格納するステップと、
前記画面更新情報の生成履歴に基づき、画面更新情報Ｘ、Ｙを特定し、画面更新情報Ｘは画面更新情報Ｙより先に生成され、画面更新情報Ｙの画像は、画面更新情報Ｘの画像よりも先に表示することが許容される、先行可能判断ステップと、
前記画面更新情報Ｙを、前記画面更新情報Ｘとは異なる送信部に分配するステップと、
前記第１〜第Ｎの送信部に分配された画面更新情報を、前記第１〜第Ｎの送信部からクライアント端末に送信するステップと、
を備えた画面転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ端末、画面転送システムおよび画面転送方法に関する。
【背景技術】
【０００２】
ネットワークを介して接続されたサーバ端末から、クライアント端末に対して、サーバ端末の画面の情報をパケット化してリアルタイムで配信する「画面転送システム」がある。
【０００３】
クライアント端末は、サーバ端末が保持する画面領域の一部または全部の領域における画面情報を受け取り、表示する。また、クライアント端末でなされたユーザの操作に関する情報は、サーバ端末に伝送される。これによれば、遠隔のサーバ端末の画面の情報を手元の端末で表示し、参照できるようになることから、本システムは、例えば遠隔監視システムなど、様々な用途での応用が期待される。
【０００４】
画面転送システムを構築する際には、サーバ端末が保持する画面領域全体の内容を一定時間おきにパケット化して、各クライアント端末に向けて配信するという方法と、画面領域において描画状態に変化が生じるごとに、その差分となる情報のみを変化が生じた領域の情報とともに配信するという方法がある。差分を配信する後者の方法では、描画状態の変化に応じて、必要な部分のみのデータ生成が行われるため、前者の方法と比較して、ネットワーク帯域を効率的に利用することができるほか、単位時間当たりの描画コマ数を大きくできるなどといった利点がある。したがって、一般には後者の構成によるサービスが提供されることが多い。
【０００５】
画面領域において最新の描画状態を得るための上述の差分を、画面更新情報と呼ぶ。直前の描画状態が記憶されたフレームバッファに対し、画面更新情報を反映させることにより、最新の描画状態を得ることができる。
【０００６】
また画面転送システムでは、伝送プロトコルにＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）を使用することが一般的である。ＴＣＰはサーバ端末とクライアント端末との間でコネクション型の通信を実現し、再送によるデータ転送の信頼性と順序性を保証する。画面転送システムでは描画状態の差分のみを配信するのが一般的であり、もしデータ転送に信頼性や順序性が保証されないと、データ転送に欠落や順序入れ替わりが生じた際に、サーバ端末とクライアント端末の間の描画状態の不一致が発生することになり、使用感に支障が生じる。したがってこの点で信頼性や順序性を保証するＴＣＰは利点がある。またＴＣＰには、ＵＤＰ（Ｕｓｅｒ  Ｄａｔａｇｒａｍ  Ｐｒｏｔｏｃｏｌ）など他の伝送プロトコルと比べて、導入先ネットワークのセキュリティポリシーに適合しやすいという利点がある。こうした理由から、画面転送システムではＴＣＰが用いられることが多い。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−１０９２６９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
さて、画面転送システムでは、十分な応答性を提供することが重要な課題である。応答性とは、クライアント端末でクリック等の操作がなされてから、その操作に対応するサーバ端末上の画面変化がクライアント端末に反映されるまでの時間（応答時間）に相当する画面転送の品質である。応答性が十分でない（応答時間が大きい）と、ユーザは操作の結果を確認するまで待機しなければならず、作業効率が著しく劣化したり、誤操作を引き起こしたりといった弊害がある。
【０００９】
しかしながら、ＴＣＰを利用した画面転送システムでは、転送中のパケットに欠落が生じた際に、応答性が低下する可能性がある。これはＴＣＰがデータ転送の順序性を保証することが原因である。ある画面更新に対するパケットが欠落したとき、クライアント端末は、このパケットに対する再送が完了するまでの間、受信した画面更新情報に基づく描画処理を行うことができない。よってこの間、再送が終わるまでクライアント端末では描画が一時的にストップし、表示に遅れが生じて見える。
【００１０】
そこで本発明の一側面は、転送中のパケットに欠落が生じた場合にも応答性の低下を引き起こさないことを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様としてのサーバ端末は、画面更新生成部と、第１〜第Ｎ（Ｎは２以上の整数）の送信部と、分配部と、画面更新履歴格納部と、先行可能判断部と、を備える。
【００１２】
前記画面更新生成部は、画面における更新領域の画像を表す画面更新情報を生成する。
【００１３】
前記第１〜第Ｎの送信部は、クライアント端末と通信する。
【００１４】
前記分配部は、前記画面更新生成部により生成された画面更新情報を、前記第１〜第Ｎの送信部から選択した送信部に分配する。
【００１５】
前記画面更新履歴格納部は、前記画面更新生成部による前記画面更新情報の生成履歴を格納する。
【００１６】
前記先行可能判断部は、前記画面更新情報の生成履歴に基づき、前記画面更新生成部により生成された画面更新情報の画像が先行表示されることを許容する画面更新情報Ｘを、前記画面更新情報より前に生成された画面更新情報の中から特定する。
【００１７】
前記分配部は、前記画面更新生成部により生成された画面更新情報を、前記画面更新情報Ｘとは異なる送信部に分配する。
【００１８】
前記第１〜第Ｎの送信部は、前記分配部により分配された画面更新情報を前記クライアント端末に送信する
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態としてのサーバ端末を備えた画面転送システムの構成を示す図。
【図２】画面更新情報の例を示す図。
【図３】矩形情報の例を示す図。
【図４】履歴格納部に格納された情報の例を示す図。
【図５】先行可能情報の例を示す図。
【図６】分配履歴格納部に格納される情報を示す図。
【図７】分配先の決定方法を説明する図。
【図８】画面更新情報を分割する例を示す図。
【図９】クライアント端末の動作のフローチャートを示す図。
【図１０】クライント端末における動作例を示す図。
【図１１】図１０に続く図。
【図１２】図１１に続く図。
【図１３】図１２に続く図。
【図１４】図１３に続く図。
【発明を実施するための形態】
【００２０】
以下に、添付図面を参照しながら、本発明の実施形態を説明する。
【００２１】
図１は、本発明の実施形態としてのサーバ端末を備えた画面転送システムの構成を示す。本構成は、サーバとして機能する情報処理端末（サーバ端末）１と、クライアントとして機能する情報処理端末（クライアント端末）２とが、ネットワーク３を介して接続されている。
【００２２】
［サーバ端末の構成］
サーバ端末１は、その構成要素として、画面更新生成部１０１と、先行可能判断部１０２と、分配部１０３と、送信部１０４Ａ、Ｂ，Ｃと、ＡＰＰ種別取得部１０５と、画面更新履歴格納部１０６と、分配履歴格納部１０７を含む。
【００２３】
画面更新生成部１０１は、サーバ端末１でのオペレーティングシステムやアプリケーションの実行状態に応じて、画面更新情報を生成する。画面更新情報とは、画面の描画状態を変化させるための情報である。
【００２４】
図２に画面更新情報の例を示す。画面更新情報は、当該の画面更新の時間的順序を表すシーケンス番号と、更新する領域の位置を表す領域情報と、対応する領域の画像情報からなる。シーケンス番号は０から開始する３２ビット整数である。領域情報は、画面領域における画像情報の表示位置を示す数値である。
【００２５】
例えば図３に示すように、画面領域の左上角を（０，０）、右下角を（Ｗｉｄｔｈ，Ｈｅｉｇｈｔ）としたときの、表示位置の左上座標（Ｌｅｆｔ，Ｔｏｐ）と右下座標（Ｒｉｇｈｔ，Ｂｏｔｔｏｍ）からなる矩形情報で示される。画像情報は、領域情報に対応する領域の更新後のビットマップデータ（矩形の各画素におけるＲＧＢ３色の値など）である。
【００２６】
先行可能判断部１０２は、ある画面更新情報による画面更新を他の画面更新情報に先行して行って良いか否かを判断する。本来、サーバ端末１の画面更新生成部１０１において生成された画面更新情報は、クライアント端末２において、生成された順番の通り（シーケンス番号の順番の通り）に表示処理が施される必要がある。もし順序に入れ違いが起きると、サーバ端末とクライアント端末で描画状態に不一致が生じ、使用感に支障が生じるためである。したがって、任意の画面更新情報による画面更新は、それよりも時間的に古い（シーケンス番号の小さい）画面更新情報に先行して表示することは原則として許されない。
【００２７】
しかしながら、ある状況においては、ある二つの画面更新情報について、表示処理に順序の入れ違いが起きたとしても、利用者の使用感への支障の度合いが比較的小さい場合が考えられる。例えば、ある画面更新情報がそれ以前の画面更新情報と異なるアプリケーションのウィンドウ上で発生した場合などである（他の具体例は後述する）。このような場合は、当該の画面更新情報による画面更新をそれよりも時間的に古い画面更新情報に先行して行ったところで、利用者の目に違和感はほとんどない。
【００２８】
そこで先行可能判断部１０２では、画面更新履歴格納部１０６を用いて、ある画面更新情報に対して先行表示することを許容する画面更新情報を、当該ある画面更新情報より前に生成された古い画面更新情報の中から特定する（先行可能判断処理）。そして、当該ある画面更新情報に対し、先行して表示しても良い古い画面更新情報を識別する情報（先行可能情報）を付加する。なお、当該ある画面更新情報の画像が先行表示されることを許容する古い画面更新情報を、画面更新情報Ｘと呼び、当該画面更新情報Ｘに基づく画面更新を画面更新Ｘと呼ぶことがある。また、当該古い画面更新情報に対し先行表示可能な当該ある画面更新情報を画面更新情報Ｙと呼び、当該画面更新情報Ｙに基づく画面更新を画面更新Ｙと呼ぶことがある。
【００２９】
分配部１０３は、画面更新生成部１０１で生成された画面更新情報を複数の送信部１０４Ａ、Ｂ、Ｃから選択した送信部に分配する。先行可能な画面更新情報（画面更新情報Y）を送信する際には、先行の対象となる画面更新情報Ｘと異なる送信部１０４へと分配する。
【００３０】
送信部１０４は、分配部１０３から分配された画面更新情報の送信処理を行う。分配部１０３から入力された画面更新情報をネットワーク上において伝送可能な形式に変換して、クライアント端末２に対し送信する。伝送プロトコルにはＴＣＰ／ＩＰを使用する。
【００３１】
ＡＰＰ種別取得部１０５は、画面更新が行われるウィンドウ（つまり画面更新情報が生成されたウィンドウ）のアプリケーションの種別（以下ＡＰＰ種別）を取得する。
【００３２】
画面更新履歴格納部１０６は、画面更新の履歴、つまり画面更新情報の生成履歴を格納する。画面更新が発生し、先行可能判断部１０２で上述の先行可能判断処理が行われるごとに、新たに発生した画面更新に関する情報が、画面更新履歴格納部１０６に格納される。
【００３３】
図４に、画面更新履歴格納部１０６に格納された履歴の例を示す。この例では、画面更新に関する情報として、シーケンス番号と領域情報、ＡＰＰ種別の情報が記憶される。
【００３４】
［クライアント端末の構成］
クライアント端末２は、その構成要素として、受信部２０１Ａ，Ｂ，Ｃと、収集部２０２と、表示部２０３を含む。
【００３５】
受信部２０１Ａ，Ｂ，Ｃは、ネットワーク３を介して、サーバ端末１から画面更新情報を受信する。
【００３６】
収集部２０２は、複数の受信部２０１Ａ，Ｂ，Ｃから画面更新情報を収集する。
【００３７】
表示部２０３は、画面領域全体の画面情報を格納するための記憶領域（フレームバッファ）を有している。表示部２０３は、画面更新情報を受け取ると、領域情報が示す記憶領域上の情報を画像情報で上書き更新する。表示部２０３は、記憶領域のデータを画面に提示することで、ユーザに対し画面情報を提示する。
【００３８】
［処理の流れ］
次に、本実施形態に係る画面転送システムにより行われる処理について、図面を適宜参照しながら説明する。サーバ端末１とクライアント端末２がネットワーク３を介して物理的に接続されている。本実施形態では、ネットワークはＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）ネットワークであるとする。
【００３９】
［処理の流れ（画面更新の生成）］
画面転送の実行が開始されると、画面更新生成部１０１は、サーバ端末１のオペレーティングやアプリケーションの実行状態に応じて画面を更新し、画面更新情報を生成する。画面更新情報の構成は図２に示した通りである。また画面更新生成部１０１は現在のシーケンス番号の値（ゼロ開始）を格納するカウンタを有しており、画面更新情報を生成するごとにカウンタの値を当該の画面更新情報に付加し、その後、カウンタの値を１インクリメントする。画面更新情報は先行可能判断部１０２へ出力される。
【００４０】
［処理の流れ（先行可能か否かの判断）］
先行可能判断部１０２は、画面更新情報を受け取ると、当該の画面更新情報が以前の画面更新情報に先行可能であるか否かを判断する。ここで、ある画面更新情報Ｙが別の画面更新情報Ｘに対し先行可能であるとは、クライアント端末２において、画面更新情報Ｙの画面更新を画面更新情報Xよりも先に行っても利用者の目に違和感がほとんどないことを意味する。先行可能判断部１０２は、画面更新履歴格納部１０６に格納された画面更新の履歴、およびＡＰＰ種別取得部１０５から取得したＡＰＰ種別の情報を利用して先行可能か否かを判断する。
【００４１】
はじめに先行可能判断部１０２は、ＡＰＰ種別取得部１０５に対し、受け取った画面更新の領域情報を渡し、ＡＰＰ種別の取得を依頼する。ＡＰＰ種別取得部１０５は、渡された領域情報が属するＡＰＰ種別を、任意の方法で取得し、先行可能判断部１０２に返す。
【００４２】
次に先行可能判断部１０２は、画面更新履歴格納部１０６に格納された履歴のうち、最も新しい情報を読み出す。そして画面更新生成部１０１から受け取った画面更新情報が、画面更新履歴格納部１０６より読み出した情報に対し先行可能であるか否かを判断する。具体的な判断手順は後述する。
【００４３】
判断の結果、先行可能であると判断した場合、先行可能判断部１０２は、画面更新履歴格納部１０６に格納された履歴のうち、次に新しい情報を読み出す。そして同様に、画面更新生成部１０１から受け取った画面更新情報が、画面更新履歴格納部１０６より読み出した情報に対し先行可能であるか否かを判断する。こうした判断処理を、先行可能でないと判断するまで、新しい履歴から順番に繰り返し行う。先行可能でないものに当たった場合、先行可能判断部１０２は、画面更新生成部１０１より受け取った画面更新情報に対して、先行可能の対象となる画面更新の個数と、そのシーケンス番号のリストを付加する。
【００４４】
上記の例を挙げる。いま、画面更新履歴格納部１０６に、シーケンス番号１〜４の四つの画面更新の履歴が格納されており、先行可能判断部１０２が画面更新生成部１０１からシーケンス番号５の画面更新情報を受け取ったとする。
【００４５】
はじめに先行可能判断部１０２は、シーケンス番号５の画面更新情報に対応するＡＰＰ種別をＡＰＰ種別取得部１０５から取得した後で、シーケンス番号４の履歴情報を画面更新履歴格納部１０６から読み出し、シーケンス番号５の画面更新がシーケンス番号４に先行可能であるか否かを判断する。先行可能だったと仮定する。
【００４６】
次に先行可能判断部１０２は、シーケンス番号３の履歴情報を画面更新履歴格納部１０６から読み出し、シーケンス番号５の画面更新がシーケンス番号３に先行可能であるか否かを同様に判断する。先行可能だったと仮定する。
【００４７】
次に先行可能判断部１０２は、シーケンス番号２の履歴情報を画面更新履歴格納部１０６から読み出し、シーケンス番号５の画面更新がシーケンス番号２に先行可能であるか否かを判断する。先行可能でなかったと仮定する。
【００４８】
ここで先行可能判断部１０２は、シーケンス番号５の画面更新情報に、先行可能の対象となる画面更新の個数として「２」という値と、そのシーケンス番号である「３」「４」の値を付加する（図５（ａ））。この二種類の情報の組を「先行可能情報」と呼ぶ。もし先行可能の対象となる画面更新が存在しなかった場合は、個数として「０」のみを先行可能情報として付加する（図５（ｂ））。
【００４９】
先行可能情報の付加が終わると、先行可能判断部１０２は画面更新に関する情報を画面更新履歴格納部１０６に出力し、履歴の記憶を依頼する。例えば図４で例示したように、シーケンス番号、領域情報、ＡＰＰ種別の情報の組を記憶する。最後に、先行可能判断部１０２は、先行可能情報が付加された画面更新情報を分配部１０３に出力する。
【００５０】
先行可能か否かの判断処理の例を示す。いま、画面更新履歴格納部１０６に格納された履歴が、図４に示した状態であるときに、先行可能判断部１０２が、シーケンス番号５、領域情報（Ｌｅｆｔ，Ｔｏｐ）−（Ｒｉｇｈｔ，Ｂｏｔｔｏｍ）＝（４００，３００）−（５６０，４２０）の画面更新情報を受け取り、ＡＰＰ種別取得部１０５に問い合わせた結果、ＡＰＰ種別が表計算であったと仮定する。
【００５１】
判断処理の第一の例では、次の全ての条件が成立する場合に、画面更新ＹがＸに対し先行可能であると判断する。  
・画面更新ＹとＸのＡＰＰ種別が異なる。  
・画面更新ＹとＸの領域情報が重なりを持たない。
【００５２】
はじめにシーケンス番号５の画面更新がシーケンス番号４の画面更新に先行可能であるか否かを判断する。シーケンス番号５の画面更新のＡＰＰ種別（表計算）と、シーケンス番号４の画面更新のＡＰＰ種別（文書編集）は異なるうえ、シーケンス番号５の画面更新の領域情報（４００，３００）−（５６０，４２０）と、シーケンス番号４の画面更新の領域情報（１６０，１２０）−（３２０，２４０）とは重なりを持たない。したがってシーケンス番号５の画面更新がシーケンス番号４の画面更新に先行可能である。
【００５３】
次にシーケンス番号５の画面更新がシーケンス番号３の画面更新に先行可能であるか否かを判断する。シーケンス番号５の画面更新のＡＰＰ種別（表計算）とシーケンス番号３の画面更新のＡＰＰ種別（文書編集）は異なるうえ、シーケンス番号５の画面更新の領域情報（４００，３００）−（５６０，４２０）と、シーケンス番号３の画面更新の領域情報（８０，６０）−（２４０，１８０）とは重なりを持たない。したがってシーケンス番号５の画面更新がシーケンス番号３の画面更新に先行可能である。
【００５４】
次にシーケンス番号５の画面更新がシーケンス番号２の画面更新に先行可能であるか否かを判断する。シーケンス番号５の画面更新のＡＰＰ種別（表計算）とシーケンス番号２の画面更新のＡＰＰ種別（表計算）は同じである。さらに、シーケンス番号５の画面更新の領域情報（４００，３００）−（５６０，４２０）と、シーケンス番号２の画面更新の領域情報（３２０，２４０）−（６４０，４８０）とは重なりを持つ。したがって上記の条件は成立しておらず、シーケンス番号５の画面更新はシーケンス番号２の画面更新に先行可能でない。
【００５５】
このように、二つの画面更新が異なるＡＰＰ種別を持ち、領域に重なりを持たない場合、両方の画面更新に意味的な関連は小さいと考えられる。そのような場合に、時間的に新しい画面更新の表示を（古い画面更新の表示を待たずに）先行して行ったとしても、利用者の見た目的には違和感はほとんどなく、作業効率への影響は軽微であると言える。先行可能判断部１０２は、上記の例でいう「シーケンス番号５の画面更新は、シーケンス番号３および４の画面更新より先行して行われたとしても構わない」という情報（先行可能情報）を付加した上で、次の処理部である分配部１０３へ受け渡す。
【００５６】
なお、本実施形態では、先行可能判断部１０２において、画面更新ＹとＸのＡＰＰ種別が異なり、かつ領域情報が重なりを持たない場合に先行可能と判断していたが、必ずしもこれに限らなくともよい。時間的に古い画面更新を先行して行ったとしても、利用者への違和感が軽微であると判断される任意の方法で判断してもよい。
【００５７】
例えば、画面更新Ｙの領域がＸの領域を完全に包含していればＹはＸに先行可能であると判断してもよい。このように、新しい画面更新が別の以前の画面更新を完全に包含する場合、そのような画面更新は利用者にとって情報としての価値が高いと考えられるため、先行可能であると判断する。ただしこの場合、包含する新しい画面更新情報Ｙによる画面更新を先行して行ったとき、後から到着した古い画面更新情報Ｘによる画面更新を行ってしまうと、表示内容に誤りが生じてしまう。そこで収集部２０２において、過去に表示処理を行った画面更新のシーケンス番号と領域情報の組を履歴として記憶しておき、ある画面更新情報を表示部２０３へ渡す直前に、この履歴の領域と比較を行い、その画面更新情報の領域を、先行して行った画面更新が完全に包含するか否かを調べる。包含する場合、その画面更新情報を表示部２０３に渡す処理をスキップする。このような手続きを追加することで、表示内容の誤りを回避することが可能になる。
【００５８】
また例えば、ウィンドウシステムにおいて各画面更新が属するウィンドウの前後関係を表す階層情報（Ｚオーダー）に基づいて先行可能か否かを判断してもよい（たとえば同じアプリが複数のウィンドウを開く場合）。例えば、画面更新Ｙが属するウィンドウが、Xが属するウィンドウより前面にある場合に、画面更新Yは画面更新Ｘに先行可能であると判断する。一般に、前面にあるウィンドウに対し利用者が注目している可能性は高いと考えられるため、そのようなウィンドウに属する画面更新を先行的に行ったところで利用者への違和感は少ない。この場合、履歴には、各画面更新に対応するウィンドウの前後関係の情報の記憶させておく。
【００５９】
［処理の流れ（分配）］
次に、画面更新情報を受け取ったときの分配部１０３の処理を説明する。分配部１０３は、先行可能判断部１０２から、先行可能情報の付加された画面更新情報を受け取ると、複数の送信部１０４Ａ，Ｂ，Ｃに分配する。分配に当たっては、付加された先行可能情報と、分配履歴格納部１０７に格納された過去の分配の履歴情報を利用して、複数の送信部１０４のうちどれをつかって送信を行うかを決定する。分配部１０３は、先行可能判断部１０２から受け取った画面更新情報に対し、先行可能の対象となる画面更新情報Ｘと重複しないような送信部１０４を選び、これを用いて画面更新情報を送信する。具体的には、以下の手順に従って、分配先の送信部１０４を決定する（図７）。
【００６０】
はじめに、先行可能の対象となる画面更新が履歴に含まない送信部１０４が存在するかを調べる（ステップＳ１００１）。もし存在していれば、そのような送信部１０４のうちで履歴の画面更新の個数が最も少ないものを選択する（ステップＳ１００２）。もし存在していなければ、すべての送信部１０４のうちで、履歴の画面更新の個数が最も少ないものを選択する（ステップＳ１００３）。
【００６１】
第一の動作例を示す。いま、分配履歴格納部１０７に格納される情報が図６であったとする。この図では、三つ存在する送信部１０４Ａ，Ｂ，Ｃのうち、送信部１０４Ａでシーケンス番号１と４の画面更新情報を送信し、送信部１０４Ｂでシーケンス番号２の画面更新情報を送信し、送信部１０４Ｃでシーケンス番号３の画面更新情報を送信したことを示している。この状態で、先行可能判断部１０２からシーケンス番号５の画面更新情報を受け取ったとする。シーケンス番号５の画面更新情報による画面更新は、シーケンス番号３および４の画面更新に対し先行可能であるとする。このとき、分配部１０３は、分配履歴格納部１０７から取得した図６の情報を参照し、先行可能の対象であるシーケンス番号３と４の画面更新を履歴に含まない送信部１０４が存在するかを調べる。そのような送信部１０４はＢのみである。したがって、分配部１０３は、シーケンス番号５の画面更新情報の分配先として送信部１０４Ｂを選択し、当該画面更新情報（領域情報と画像情報）にシーケンス番号と先行可能情報を付加して、送信部１０４Ｂに渡して分配処理を終了する。
【００６２】
さらにその次に、シーケンス番号６の画面更新情報を先行可能判断部１０２から受け取ったとする。シーケンス番号６の画面更新もシーケンス番号３と４の画面更新に先行可能であると仮定する。このとき、分配部１０３は、上述と同様の判断を行い、シーケンス番号６の画面更新情報の分配先として送信部１０４Ｂを選択する。
【００６３】
第二の動作例を示す。いま、第一の動作例と同様、分配履歴格納部１０７に格納される情報が図６であったとする。この状態で、先行可能判断部１０２からシーケンス番号５の画面更新情報を受け取ったとする。シーケンス番号５の画面更新は、シーケンス番号３の画面更新に対しのみ先行可能であるとする。このとき、分配部１０３は、ステップＳ１００１において、シーケンス番号３の画面更新を履歴に含まない送信部１０４が存在するかを調べる。そのような送信部１０４はＡとＢである。また、送信部１０４Ａは履歴を２個含み、送信部１０４Ｂは履歴を１個含んでいる。したがって、分配部１０３は、シーケンス番号５の画面更新情報の分配先として送信部１０４Ｂを選択する。
【００６４】
第三の動作例を示す。いま、第一の動作例と同様、分配履歴格納部１０７に格納される情報が図６であったとする。この状態で、先行可能判断部１０２からシーケンス番号５の画面更新情報を受け取ったとする。シーケンス番号５の画面更新は、シーケンス番号２と３と４の画面更新に対しのみ先行可能であるとする。このとき、分配部１０３は、ステップＳ１００１において、シーケンス番号２と３と４の画面更新を履歴に含まない送信部１０４が存在するかを調べる。そのような送信部１０４は存在しない。また、送信部１０４Ａは履歴を２個含み、送信部１０４ＢとＣは履歴を１個ずつ含んでいる。したがって、分配部１０３は、シーケンス番号５の画面更新情報の分配先として送信部１０４ＢまたはＣをランダムに選択する。
【００６５】
このように、先行可能の対象となる画面更新を履歴に含まない送信部１０４を選択して送信を行うことにより、他の送信部１０４でパケットの欠落が生じたとしても、その再送完了を待つことなく、当該の画面更新情報をクライアント端末２へ送信を完了させることが可能になる。
【００６６】
なお、本実施形態では、分配された画面更新情報の個数を用いて分配先の選択を行ったが、必ずしも画面更新情報の個数にもとづく必要はない。先行可能の対象となる画面更新情報と重複する送信部１０４を避けるという方針に基づく限りにおいて、任意の方法で分配先を決定してよい。
【００６７】
例えば、分配された画面更新情報の個数の代わりに、画面更新のデータサイズの総和を利用してもよい。この場合、図７のステップＳ１００２およびＳ１００３において、分配履歴格納部１０７は、送信部１０４ごとの画面更新の画像データサイズを履歴として格納し、分配部１０３は、送信部１０４ごとに履歴の画面更新のデータサイズの総和を算出し、その総和が最小となる送信部１０４を分配先として選択する、という処理が可能である。
【００６８】
例えば、画面更新の個数やデータサイズだけでなく、各送信部１０４の任意のステータス値を利用してもよい。図７のステップＳ１００２およびＳ１００３において、例えば各送信部１０４のＴＣＰの輻輳ウィンドウの値を取得し、その値が最大となる送信部１０４を分配先として選択する、という処理が可能である。また例えば、各送信部１０４のＴＣＰの送信バッファの空き容量の値を取得し、その値が最大となる送信部１０４を分配先として選択する、という処理が可能である。
【００６９】
このように、分配された画面更新情報の個数やデータサイズ、あるいはＴＣＰの輻輳ウィンドウの値を利用することで、先行可能な画面更新情報に、クライアント端末２への送信がすみやかに完了する可能性が高い送信部１０４を優先的に割り当てることが可能となる。
【００７０】
なお、本実施形態では、画面更新情報と送信部１０４とが一対一で対応づけられるよう分配を行っていたが、必ずしも一対一に限る必要はなく、一つの画面更新情報に分割処理を施した上で、二以上の送信部１０４に割り当ててもよい。
【００７１】
例えば、画面更新情報を二つに分割した上で、それぞれを異なる送信部１０４に分配しても良い。分割の例を図８に示す。この図では、分割された第一の画面更新情報に、分割に関する情報（分割情報）として、二分割したうちの一つ目であることを示す「１／２」を付加し、分割された第二の画面更新情報に、分割情報として、二分割したうちの二つ目であることを示す「２／２」を付加している。さらに分配部１０３は、第一、第二の画面更新情報に対し、それぞれ図７で示したものと同様の分配の手続きを行う。このように画面更新情報を分割することで、複数の送信部１０４に渡されるデータサイズが均等化される。これにより、画面更新情報の送信完了に要する時間を短縮することが可能になる。
【００７２】
また例えば、画面更新情報の複製を作成した上で、それぞれを異なる送信部１０４に分配してもよい。この場合も、１０３は、複製された画面更新情報のそれぞれに対し、図７で示したものと同様の分配の手続きを行う。これにより、複製の一方の画面更新情報にパケットの欠落が生じたとしても、もう一方が欠落なく到達していた場合に表示の遅れを回避することが可能になる。
【００７３】
なお、本実施形態では、分配部１０３が行う分配の手続きにおいて、全ての送信部１０４が使用されるよう分配を行っていたが、必ずしもこれに限らなくともよい。例えば、一部の送信部１０４を、先行可能な画面更新情報Yの専用としてもよい。すなわち、先行可能な画面更新を持たない画面更新情報については、当該専用の送信部１０４と異なる送信部１０４を使用するように分配先を選択する。このように、先行可能な画面更新情報Yを専用の送信部１０４を用いることで、速やかに表示させることが可能になる。
【００７４】
なお、本実施形態では、画面更新情報に含まれる画像情報に対し、画像圧縮などの変換処理を施していないが、必ずしもこれに限らなくともよい。ＪＰＥＧやＺＬＩＢなど、任意の画像圧縮処理を施してもよい。また、先行可能であるか否かに応じて画像圧縮の方式や圧縮率などを変更してもよい。例えば、先行可能である場合に圧縮率を通常より高く設定することで、画面更新情報のデータサイズを小さくして送信に要する時間を短くし、速やかに表示させることが可能になる。
【００７５】
以上のように、分配部１０３は、画面更新情報Ｙの分配先として、先行可能の対象となる画面更新情報Ｘと重複しない送信部１０４を選択し、この送信部を用いて当該画面更新情報Ｙを送信する。画面更新情報を受け取った送信部１０４は、対応する受信部２０１との間で、確認応答（ＡＣＫ）や再送制御などの処理を通じてデータ転送を行う。
【００７６】
［処理の流れ（受信から表示）］
クライアント端末２の受信部２０１Ａ，Ｂ，Ｃは、それぞれ対応する送信部１０４から画面更新情報を受信する。一対の送信部１０４と受信部２０１の間では、コネクション型の通信が行われており、送信部１０４に渡された画面更新情報は順序通りに欠落なく受信部２０１に到着する。各受信部２０１は、受信した画面更新情報を収集部２０２に渡す。
【００７７】
受信された画面更新情報は、収集部２０２にて収集される。収集部２０２の処理を図９を用いて説明する。収集部２０２は、表示処理が未実施である画面更新情報のリストを格納するための記憶領域を持つ。このリストはシーケンス番号順でソートされた状態で画面更新情報を記憶する。また収集部２０２は現在のシーケンス番号の値（ゼロ開始）を格納するカウンタを有している。
【００７８】
はじめに収集部２０２は、受け取った画面更新情報をリストに追加する（ステップＳ１１０１）。リストに格納される情報の例を図１０に示す。図では説明のために、領域情報と画像情報の記載を省略している。
【００７９】
次に、リストの先頭の要素から順番に選択し、表示部２０３に表示可能な画面更新情報が存在するか否かを調べる（ステップＳ１１０２）。選択した画面更新情報のシーケンス番号が、カウンタの値に等しいか否かを調べ（ステップＳ１１０３）、等しければ、当該の画面更新情報は表示可能と判断し、表示部２０３に出力した上でリストから削除したうえで（ステップＳ１１０４）、カウンタの値を、未表示のうちもっとも古い画面更新情報のシーケンス番号を指すよう修正する（ステップＳ１１０５）。
【００８０】
もし選択した画面更新情報が、カウンタの値より新しい順序の（シーケンス番号の大きい）画面更新情報の場合（ステップＳ１１０６）であった場合は、選択した画面更新情報が、それ以前の全ての未表示の画面更新情報に先行可能であれば（ステップＳ１１０７）、当該の画面更新情報は表示可能と判断し、表示部２０３に出力した上でリストから削除する。
【００８１】
もし選択した画面更新情報が、カウンタの値より古い順序の（シーケンス番号の小さい）画面更新情報の場合（ステップＳ１１０８）であった場合は、選択した画面更新情報を破棄する。
【００８２】
以上の処理が、リストの先頭の画面更新情報について終わったら、次の画面更新情報を選択し（ステップＳ１１１０）、同様の処理を繰り返す。
【００８３】
具体例を示す。いま、リストの状態が図１０である状況において、収集部２０２は、シーケンス番号が５、また先行可能情報として、個数が３、シーケンス番号が２、３、４であるような画面更新情報を受け取ったとする。またこのときのカウンタの値を２とする。受け取った画面更新情報をリストに追加した直後の状態を図１１に示す。
【００８４】
ここでリストの先頭の画面更新情報から順に、表示部２０３に表示か可能か否かを調べる。カウンタ値が２であることから、シーケンス番号２の画面更新情報はまだ到着していない状態である。またシーケンス番号３および４の画面更新情報は、先行可能な画面更新情報の個数が０である。つまりいずれの画面更新情報に対しても先行的に表示処理を行うことができない。したがって、シーケンス番号３および４の画面更新情報はこの時点では表示不可である。
【００８５】
次にシーケンス番号５の画面更新情報を調べる。シーケンス番号５の画面更新は、２，３，４の画面更新に対して先行可能である。この画面更新情報は、５以前の全ての未表示の画面更新情報に対し先行可能であるため、表示可能であると判断する。したがって、この画面更新情報は表示部２０３へ出力され、リストから削除される。リストは図１２の状態となる。なお、リストの情報とは別に、収集部２０２は、先行的に表示を行った画面更新情報のシーケンス番号の値を記憶している。ここでは５の値を記憶する。
【００８６】
次に、シーケンス番号６の画面更新情報を調べる。シーケンス番号６の画面更新は、２，３，４の画面更新に対して先行可能である。シーケンス番号６の画面更新情報は、６より前の全ての未表示の画面更新情報に対し先行可能であるため、表示可能であると判断する。したがって、この画面更新情報は表示部２０３へ出力され、リストから削除される。リストは図１３の状態となる。先行的に表示を行った画面更新情報として、５と６の値が記憶される。リストの次の要素は存在しないため、図９の処理は終了する。
【００８７】
さらにこの後で、受信部２０１からシーケンス番号２の画面更新情報を受け取ったと仮定し、このときの収集部２０２の処理を説明する。シーケンス番号２の画面更新情報は、いずれの画面更新情報にも先行しないと仮定する。リストに追加された直後のリストの状態は図１４のようになる。ここでリストの先頭から順に、表示可能かどうかが調べられる。リストの先頭の画面更新情報のシーケンス番号とカウンタの値はいずれも２で一致するので、この画面更新情報は表示部２０３に出力され、リストから削除される。またカウンタの値は、未表示のうちもっとも古い画面更新情報のシーケンス番号である３へ修正される。リストの次の要素であるシーケンス番号３の画面更新情報についても同様の判断が行われる。シーケンス番号３の画面更新情報は表示部２０３へ出力され、リストから削除される。カウンタの値は３→４へと変わる。シーケンス番号４の画面更新情報についても同様の判断が行われる。シーケンス番号４の画面更新情報は表示部２０３へ出力され、リストから削除される。カウンタの値は４→７へと変わる。
【００８８】
［効果とまとめ］
以上のように本実施の形態によれば、あるＴＣＰのコネクション（一対の送信部１０４と受信部２０１の間の通信）でパケットの欠落が生じたとしても、その再送完了を待つことなく、他のＴＣＰのコネクションを通じて送受信した画面更新情報の画像を先行的に表示させることが可能になる。これにより表示の遅れを回避し、応答性の低下を引き起こさないことが可能になる。また、先行的に表示しても利用者の違和感が少ないと判断された画面更新情報の画像を選択的に先行して表示することで、応答性の低下の回避と、利用者の使用感への支障の回避とを両立することが可能になる。
【００８９】
なお、本実施形態では、画面更新履歴格納部１０６および分配履歴格納部１０７に格納された情報を永続的に残るものとしていたが、必ずしもこれに限らなくともよい。例えば、情報を格納した時点から規定時間以上経過した情報を削除してもよい。このように不要な情報を適宜削除することで記憶容量の節約が図れる。あるいは例えば、送信部１０４で画面更新情報の送信を完了したタイミング送信部１０４から画面更新履歴格納部１０６および分割履歴格納部１０７へその旨を通知して対応する要素を削除してもよい。これにより直近の状況に関する情報に基づいてより的確な判断および分配が可能となる。
【００９０】
なお、以上に説明した本実施形態におけるサーバ端末およびクライアント端末は、例えば、汎用のコンピュータ装置を基本ハードウェアとして用いることで実現することが可能である。すなわち、サーバ端末およびクライアント端末の各処理部は、上記のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、サーバ端末およびクライアント端末は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、CD-ROMなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。また、サーバ端末およびクライアント端末内の各格納部は、装置内もしくは外付けのメモリ装置およびハードディスク、あるいは、CD-R, CD-RW, DVD-RAM, DVD-R 等の記録媒体によって構成されてもよい。
【００９１】
以上、具体的な手順を挙げながら、本発明の実施形態について説明を行った。なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。その一例は上記手順中においていくつか述べてきた。
【図１】
0005613710.tif 000002
【図２】
0005613710.tif 000003
【図３】
0005613710.tif 000004
【図４】
0005613710.tif 000005
【図５】
0005613710.tif 000006
【図６】
0005613710.tif 000007
【図７】
0005613710.tif 000008
【図８】
0005613710.tif 000009
【図９】
0005613710.tif 000010
【図１０】
0005613710.tif 000011
【図１１】
0005613710.tif 000012
【図１２】
0005613710.tif 000013
【図１３】
0005613710.tif 000014
【図１４】
0005613710.tif 000015