(57)【要約】  本発明を適用した１システムは、ネットワークを介して、画像データの送信側となる情報処理装置と、その画像データの送信先となる端末装置とが接続可能となっている。その情報処理装置は、ネットワークを介した通信を可能にする通信手段と、内容が更新される画像の画像データを取得する画像取得手段と、画像取得手段が取得した画像データの送信先となる端末装置から、画像データの送信タイミングを特定するためのタイミング情報を取得する情報取得手段と、情報取得手段が取得したタイミング情報に基づいて、画像データの通信手段を用いた送信を管理する更新管理手段と、を有する。
2014045452.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介した通信を可能にする通信手段と、
内容が更新される画像の画像データを取得する画像取得手段と、
前記画像取得手段が取得した前記画像データの送信先となる端末装置から、前記画像データの送信タイミングを特定するためのタイミング情報を取得する情報取得手段と、
前記情報取得手段が取得した前記タイミング情報に基づいて、前記画像データの前記通信手段を用いた送信を管理する更新管理手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記タイミング情報は、前記端末装置における前記画像の表示設定状態によって決定される情報である、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
ネットワークを介した通信を可能にする通信手段と、
前記通信手段が受信した画像データを表示装置上に表示させる表示制御手段と、
前記通信手段が受信した画像データ別に、該画像データの表示設定状態を特定し、該特定した表示設定状態を基に、該画像データの送信タイミングを指定するタイミング情報を生成する情報生成手段と、
前記通信手段を用いて、前記情報生成手段が生成した前記タイミング情報を前記画像データの送信元の情報処理装置に送信させる通知手段と、
を有することを特徴とする端末装置。
【請求項４】
ネットワークを介した画像データの送信を管理するための方法であって、
前記画像データの受信側装置に、前記画像データの表示設定状態を特定させ、該特定させた表示設定状態を表す状態情報を、前記画像データの送信側装置に送信させ、
前記送信側装置に、前記状態情報に基づいて、前記画像データの送信間隔を管理させる、
ことを特徴とする画像送信管理方法。
【請求項５】
前記受信側装置に、前記状態情報を予め定めたタイミングで継続的に送信させ、
前記送信側装置に、前記状態情報の受信状況に基づいて、前記受信側装置が前記画像データを処理可能か否か判定させ、該判定結果を前記画像データの送信間隔の管理に反映させる、
ことを特徴とする請求項４記載の画像送信管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを用いて、画像データを送受信するための技術に関する。
【背景技術】
【０００２】
現在、ネットワークを介して様々な種類のデータが送受信される。その一つとして画像データがある。画像データにより表示される画像は、表示内容が固定のタイプと、表示内容が随時、更新されるタイプと、に大別することができる。以降、特に断らない限り、画像は表示内容が随時、更新されるタイプを指す意味で用いる。【０００３】
画像データの送信は、普通、表示のために行われる。表示内容が随時、更新される画像では、その画像データを送信し続けなければならない。画像データを送信した場合、その画像データの受信側は、受信した画像データを処理しなければならない。それにより、画像データの送信には、送信側、及び受信側ともに負荷が発生し、ネットワークのトラフィック量を増大させる。【０００４】
このことから、画像データの送信に用いられる従来の情報処理装置のなかには、画像が更新された場合にのみ、更新後の画像を表示させるための画像データの送信を行うようにしたものがある。画像の更新によって画像データを送信することにより、単位時間当たりの画像データの送信回数、つまり送信頻度は抑えることができる。受信側には、画像の更新間隔が異常に長くなるといった不具合は発生しない。このため、送信側、及び受信側ともに、その負荷も適切な形で抑えることができる。【０００５】
画像データの受信先となる情報処理装置（以降「端末装置」）では、受信した画像データはウィンドウ内に描画される。通常、端末装置は、複数のウィンドウを扱うことができ、実際に表示されるウィンドウは、ユーザが任意に変更することができる。また、ユーザは、複数のウィンドウの表示上の前後関係、及びウィンドウ毎の表示／非表示を任意に変更できるのが普通である。【０００６】
非表示と設定されたウィンドウでは、そのウィンドウ内に描画される画像は表示されない。これは、前に配置された別のウィンドウが全体を覆う形となるウィンドウでも同じである。【０００７】
画像データの送信側、及び受信側が共に、画像データの送信、或いは受信を行ううえで十分な負荷的な余裕があるとは限らない。ネットワークのトラフィック量は、より抑えるのが望ましい。これらのことを考慮する場合、画像データの送信頻度は、受信側に不具合が発生しない範囲でより抑えるのが望ましいと思われる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−７０５８７号公報
【特許文献２】特開２００４−２１３４１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
１側面では、本発明は、受信側での不具合の発生を抑えつつ、画像データの送信頻度をより抑えるための技術を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明を適用した１システムは、ネットワークを介した通信を可能にする通信手段と、内容が更新される画像の画像データを取得する画像取得手段と、画像取得手段が取得した画像データの送信先となる端末装置から、画像データの送信タイミングを特定するためのタイミング情報を取得する情報取得手段と、情報取得手段が取得したタイミング情報に基づいて、画像データの通信手段を用いた送信を管理する更新管理手段と、を有する。
【発明の効果】
【００１１】
本発明を適用した１システムでは、受信側での不具合の発生を抑えつつ、画像データの送信頻度をより抑えることができる。
【図面の簡単な説明】
【００１２】
【図１】本実施形態による情報処理装置、及び端末装置が適用された情報処理システムの構成例を表す図である。
【図２】サーバが提供するサービスを説明する図である。
【図３】サーバから送信される画像データを用いた画像の表示例を説明する図である。
【図４】サーバに用意された画面更新間隔情報に対応する仕組みの例を説明する図である。
【図５】画面更新間隔情報に応じて設定される画像の更新タイミングの例を説明する図である。
【図６】画面更新間隔情報送信処理のフローチャートである。
【図７】キーボード入力情報処理のフローチャートである。
【図８】退避域出力処理のフローチャートである。
【図９】画像出力処理のフローチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
図１は、本実施形態による情報処理装置、及び端末装置が適用された情報処理システムの構成例を表す図である。
【００１４】
情報処理システムは、図１に表すように、サーバ１と、複数台の端末装置２とをネットワーク４に接続した構成となっている。本実施形態による情報処理装置はサーバ１として実現され、複数台の端末装置２は全て、本実施形態による端末装置である。
【００１５】
サーバ１は、端末装置２から要求された処理を行い、その端末装置に処理結果を必要に応じて送信する情報処理装置である。そのサーバ１は、図１に表すように、複数のＣＰＵ（Central Processing Unit）１１（１１−０〜１１−Ｎ）、ノースブリッジ１２、複数のメモリ１３、ＰＣＩｅ（Peripheral Components Interconnect Express）スイッチ１３、ＮＩＣ（Network Interface Card）１５、ハードディスク駆動装置（ＨＤＤ：Hard Disk Drive）１６、及びＦＷＨ（Firm Ware Hub）１７を備えている。図１に表すサーバ２の構成は、１例であり、この構成に限定されない。
【００１６】
各ＣＰＵ１１（１１−０〜１１−Ｎ）は、メモリ１３に読み出されるプログラムを実行する演算処理装置である。１つのＣＰＵ１１に接続されたＦＷＨ１７には、各ＣＰＵ１１が実行するＢＩＯＳ（Basic Input/Output System）が格納されている。特には図示していないが、各ＣＰＵ１１は互いに接続されており、ＦＷＨ１７が接続されていない他のＣＰＵ１１は、ＣＰＵ１１間の通信により、そのＦＷＨ１７に格納されたＢＩＯＳを取得する。
【００１７】
各ＣＰＵ１１、及び各メモリ１３はノースブリッジ１２に接続されている。このノースブリッジ１２は、各ＣＰＵ１１の各メモリ１３へのアクセスを可能にさせ、各ＣＰＵ１１をＰＣＩｅスイッチ１３と接続させる機能を提供する。
【００１８】
ＮＩＣ１５は、ネットワーク４を介した通信を可能にする通信装置である。ハードディスク駆動装置１６は、各ＣＰＵ１１がＢＩＯＳ以外に実行するプログラム、及び各種データが格納された記憶装置である。
【００１９】
ＰＣＩｅスイッチ１３は、各種コントローラを搭載した入出力制御装置である。本実施形態では、ＮＩＣ１５及びハードディスク駆動装置１６がＰＣＩｅスイッチ１３と接続されている。それにより、各ＣＰＵ１１は、ノースブリッジ１２、及びＰＣＩｅスイッチ１３を介してＮＩＣ１５及びハードディスク駆動装置１６を制御することができる。
【００２０】
一方、各端末装置２は、図１に表すように、ＣＰＵ２１、ノースブリッジ２２、メモリ２３、ＲＯＭ（Read Only Memory）２４、ＧＣ（Graphics Controller）２５、ＬＣＤ（Liquid Crystal Display）２６、サウスブリッジ２７、ハードディスク駆動装置２８、ＯＤ（Optical Drive）２９、ＮＩＣ３０、キーボード３１、及びＰＤ（Pointing Device）３２を備えている。サーバ１と同様に、図１に表す端末装置２の構成は、１例であり、この構成に限定されない。例えばＬＣＤ２６、ＯＤ２９、キーボード３１及びＰＤ３２は何れも、端末装置２に搭載されていても良いが、接続させて用いても良い。
【００２１】
上記の構成において、ＲＯＭ２４にはＢＩＯＳが格納され、ＯＳ（Operating System）及び各種アプリケーション・プログラム（以降「アプリケーション」と略記）はハードディスク駆動装置２８に格納されている。ＣＰＵ２１は、起動時、ノースブリッジ２２を介してＲＯＭ２４からＢＩＯＳをメモリ２３上に読み出して実行し、その後、ＢＩＯＳの制御により、ノースブリッジ２２、及びサウスブリッジ２７を介してハードディスク駆動装置２８からＯＳをメモリ２３上に読み出して実行する。
【００２２】
ノースブリッジ２２に接続されたＧＣ２５は、ＬＣＤ２６上に画像を表示させる表示制御装置である。ＣＰＵ２１は、メモリ２３を用いて、表示させる画像の画像データを作成し、作成した画像データをＧＣ２５に送出することにより、ＬＣＤ２６上に画像を表示させる。
【００２３】
サウスブリッジ２７は、各種コントローラを搭載した入出力制御装置であり、図１に表す構成では、ハードディスク駆動装置２８、ＯＤ２９、ＮＩＣ３０、キーボード３１及びＰＤ３２が接続されている。これらのハードウェア資源は、ノースブリッジ２２、及びサウスブリッジ２７を介してＣＰＵ２１により制御される。
【００２４】
図２は、サーバが提供するサービスを説明する図である。
図１に表す構成のサーバ１では、複数のＶＭ（Virtual Machine）が作成される。図２に表す各ゲストＯＳ１５０は、それぞれ、作成されたＶＭで実行されるＯＳである。管理ＯＳ１００は、作成されたＶＭ上のゲストＯＳ１５０を管理するＯＳである。
【００２５】
特には図示しないが、管理ＯＳ１００、及び各ゲストＯＳ１５０は、仮想マシン・モニター上で動作する。管理ＯＳ１００は、ハードウェア資源にアクセスするための各種デバイス・ドライバを備え、ゲストＯＳ１５０からの要求は、仮想マシン・モニターを介して管理ＯＳ１００に通知される。それにより、管理ＯＳ１００は、ゲストＯＳ１５０からの要求に応じて、アクセスすべきハードウェア資源にアクセスする。この結果、各ＶＭは、管理ＯＳ１００の処理によってネットワーク４を介した端末装置２との通信を行うことができる。図２では、管理ＯＳ１００とその管理ＯＳ１００が要求を処理するゲストＯＳ１５０との関係を分かりやすくするために、各ゲストＯＳ１５０と管理ＯＳ１００とを線で結び、仮想マシン・モニターを省いている。
【００２６】
各ゲストＯＳ１５０では、搭載されたソフトウェアとして、ディスプレイドライバ１６０及びキーボードドライバ１７０のみを表している。管理ＯＳ１００では、搭載されたソフトウェアとして、ディスプレイエミュレータ１１０、ＶＮＣ（Virtual Network Computing）サーバ１２０、及びシリアルポートエミュレータ１３０のみを表している。
【００２７】
それぞれゲストＯＳ１５０が実行されるＶＭは、要求された処理結果として画像データを端末装置２に送信するサービスを提供する。画像データの生成は、ゲストＯＳ１５０自体、或いはそのゲストＯＳ１５０上で動作する不図示のアプリケーションにより行われる。ここでは、便宜的に、画像データの生成はアプリケーションが行うと想定する。図２では、画像は「画面」と表記している。
【００２８】
ゲストＯＳ１５０のディスプレイドライバ１６０は、アプリケーションが生成した画像データの出力を行うためのソフトウェアである。キーボードドライバ１７０は、サーバ１と接続された端末装置２のキーボード３１上に行われた操作に対応するためのソフトウェアである。ここでは、アプリケーションは、随時、表示内容が更新される画像の画像データを生成すると想定する。
【００２９】
管理ＯＳ１００に搭載されたＶＮＣサーバ１２０は、接続された端末装置２からの遠隔操作を可能にするソフトウェアである。ディスプレイエミュレータ１１０は、仮想マシン・モニターを介して、ゲストＯＳ１５０のディスプレイドライバ１６０が出力する画像データをＶＮＣサーバ１２０に対応の画像データに変換し、変換後の画像データをＶＮＣサーバ１２０に出力する。
【００３０】
シリアルポートエミュレータ１３０は、端末装置２で行われた操作内容を表すデータをＶＮＣサーバ１２０から受け取って処理し、そのデータを例えばキーボード３１上で操作されたと見なすキーを表すデータに変換する。ゲストＯＳ１５０上のキーボードドライバ１７０は、シリアルポートエミュレータ１３０によって変換された後のデータを受け取り、端末装置２上で行われた操作内容をゲストＯＳ１５０に通知する。その通知により、ゲストＯＳ１５０は端末装置２上で行われた操作を処理に反映させる。
【００３１】
端末装置２では、キーボード３１等への操作をゲストＯＳ１５０の処理に反映できるように、ＶＮＣビューア２００が実行される。このＶＮＣビューア２００は、サーバ１から受信した画像データをＬＣＤ２６上に表示させることができ、キーボード３１等にユーザが行った操作内容を表すデータを送信させることができる。このため、端末装置２のユーザは、所望の画像データをサーバ１に送信させることができる。
【００３２】
上記各ゲストＯＳ１５０、及び管理ＯＳ１００、つまり各ＶＭには、それぞれＣＰＵ１１が割り当てられる。このことから、図２では、各ＶＭに割り当てられたＣＰＵ１１を併せて表している。各ＶＭに割り当てたＣＰＵ１１の数は１例であり、割り当て方は特に限定されない。
【００３３】
図３は、サーバから送信される画像データを用いた画像の表示例を説明する図である。ゲストＯＳ１５０が実行される各ＶＭは、少なくとも1種類の画像データを送信することができる。各ＶＭによってサーバ１から送信された画像データは、端末装置２ではそれぞれ別のウィンドウによって表示される。図３では、サーバ１上の２つのＶＭによって送信された画像データを端末装置２が２つのウィンドウ２１０（２１０−１、２１０−２）上に表示させている様子を表している。
【００３４】
複数のウィンドウ２１０を表示させる場合、ウィンドウ２１０間の前後関係が設定される。前に位置するウィンドウ２１０が存在しないウィンドウ２１０は、アクティブ状態と呼ばれ、前に位置するウィンドウ２１０が存在するウィンドウ２１０は、非アクティブ状態と呼ばれる。各ウィンドウ２１０は、表示／非表示を切り換えることができる。アクティブ状態、及び非アクティブ状態は共に、表示状態に属するサブ状態である。前に位置するウィンドウ２１０が存在しない複数のウィンドウ２１０が存在する場合、その複数のウィンドウ２１０のうちの１つのみがアクティブ状態となる。ウィンドウ２１０内への操作は、アクティブ状態のウィンドウ２１０のみ有効となる。
【００３５】
非アクティブ状態のウィンドウ２１０の少なくとも一部は、アクティブ状態のウィンドウ２１０が重なって見ることはできない。少なくとも一部を見ることができないウィンドウ２０１内の画像を端末装置２のユーザが重要視している可能性は低いと云える。言い換えれば、端末装置２のユーザにとっての優先順位は、非アクティブ状態のウィンドウ２１０内の画像よりもアクティブ状態のウィンドウ２１０内の画像のほうが高いと云える。非表示状態としているウィンドウ２１０では、そのウィンドウ２１０内に表示される画像は見ることはできない。このようなことから、本実施形態では、端末装置２で表示対象としている画像（ウィンドウ２１０）毎に、その画像の更新タイミングを制御するようにしている。
【００３６】
画像の更新タイミングの制御は、更新の必要性が低いと考えられる画像ほど、更新間隔が長くなるように設定することで行っている。画像データの送信は、設定された更新間隔に従って行われる。そのため、各ＶＭが生成する画像の更新間隔が全て同じであったとしても、サーバ１から単位時間当たりに画像データが送信される回数、つまり送信頻度は、その画像データが送信される端末装置２の数の他に、その画像データによって表示される画像の表示状態に依存することになる。
【００３７】
複種類の画像データを受信する端末装置２では、受信した画像データにより画像が表示されるウィンドウ２１０が全てアクティブ状態となっているケースは少ない。例え１種類の画像データのみを受信する端末装置２でも、その画像データにより画像が表示されるウィンドウ２１０がアクティブ状態であるとは限らない。これは、何らかのアプリケーションにより表示されるウィンドウ２１０をアクティブ状態にして、画像が配置されるウィンドウ２１０を非アクティブ状態とする可能性が存在するからである。このようなことから、画像の更新タイミングの制御により、サーバ１における画像データの送信頻度を抑えることができる。
【００３８】
上記のようにサーバ１における画像データの送信頻度を抑えた場合、ネットワーク４上のトラフィック量も抑えられることとなる。また、送信された画像データを用いて非表示状態、或いは非アクティブ状態のウィンドウ２１０に画像を表示させる端末装置２では、単位時間当たりに画像データを受信する回数である受信頻度が低くなる。これは、画像データの受信に対応するための処理量が小さくなり、負荷が軽くなることを意味する。これらのことから、ネットワーク４、或いは／及び、端末装置２に要求される性能も抑えることができる。それにより、情報処理システムもより安価に構築できるようになる。
【００３９】
非表示状態のウィンドウ２１０の画像を端末装置２のユーザは見ることができない。非アクティブ状態のウィンドウ２１０の画像は、例え大部分を視認可能であっても、端末装置２のユーザにとってより優先順位の高い画像の存在から、比較的に注視されない可能性が高い。注視されなければ、意識する度合いも低いことから、画像の表示内容の変化には気付きにくい。このようなことから、本実施形態では、画像の更新タイミングは、非表示状態のウィンドウ２１０の画像では更新を行わず、非アクティブ状態のウィンドウ２１０の画像データでは予め定めた時間間隔としている。そのようなタイミングで画像を更新しても、端末装置２のユーザは不具合を感じないか、例え不具合を感じたとしても、その程度は非常に低く抑えることができる。アクティブ状態のウィンドウ２１０の画像は、リアルタイムで更新するようにしている。このため、端末装置２のユーザは、アクティブ状態のウィンドウ２１０の画像から不具合を感じることはない。
【００４０】
本実施形態では、ウィンドウ２１０は、非表示状態、アクティブ状態、及び非アクティブ状態の何れかに分類している。以降、これらの状態を「表示設定状態」と総称する。このような表示設定状態の分類は１例であり、分類はこれに限定されない。例えば非アクティブ状態のウィンドウ２１０のなかで全く視認できないウィンドウ２１０は、事実上、非表示状態と同じである。このことから、非表示状態は非アクティブ状態の一つとして扱っても良い。
【００４１】
サーバ１自体は、端末装置２で画像データが表示されるウィンドウ２１０の表示設定状態を認識することはできない。このため、本実施形態では、端末装置２から、画像データが表示されるウィンドウ２１０の表示設定状態を表す情報をサーバ１に送信させるようにしている。サーバ１に送信される情報は以降「画面更新間隔情報」と呼ぶことにする。
【００４２】
画面更新間隔情報の送信を可能とするために、本実施形態では、端末装置２に、図２に表す画面更新間隔設定プログラム２０１が組み込まれたＶＮＣビューア２００を実行させる。この画面更新間隔設定プログラム２０１は、ＶＮＣビューア２００によって画像が表示されるウィンドウ２１０毎に、その表示設定状態を特定し、その特定結果をキーボード３１上のキーの組み合わせに変換し、その変換結果を画面更新間隔情報として送信させる。この画面更新間隔情報の送信は、例えば予め定めた時間が経過する度に行う。それにより、画面更新間隔設定プログラム２０１は、各ウィンドウ２０１内に表示される画像データを、その表示設定状態に応じた送信頻度でサーバ１が送信するのを可能にさせる。
【００４３】
図５は、画面更新間隔情報に応じて設定される画像の更新タイミングの例を説明する図である。
図５では、項目名として、「設定値」及び「画面更新間隔情報」の２つを表記している。「設定値」項目は、設定される画像の更新タイミングに相当する。その更新タイミングとは、本実施形態では、画像の更新間隔、つまり画像の表示内容を更新するための画像データを送信する送信間隔としている。
【００４４】
この「設定値」項目では、データの内容として、「リアルタイム更新」「１秒」「２秒」「３秒」及び「非表示」を表記している。「リアルタイム更新」は、画像の更新をリアルタイムで反映させることを意味する。それにより、「リアルタイム更新」は、ウィンドウ２１０の表示設定状態としてアクティブ状態が特定されたことを表す。「１秒」「２秒」及び「３秒」は、画像の更新を１〜３秒ごとに反映させることを意味し、これらはウィンドウ２１０の表示設定状態として非アクティブ状態が特定されたことを表す。「非表示」は、画像の更新を反映させないことを意味し、これはウィンドウ２１０の表示設定状態として非表示状態が特定されたことを表す。
【００４５】
「画面更新間隔情報」項目では、データの内容として、「Ctrl+Alt+0」〜「Ctrl+Alt+@」を表記している。例えば「Ctrl+Alt+0」は、「Ctrl」キー、「Alt」キー、及び「0」キーの3種類のキーの組み合わせを表している。これは他でも同様である。
【００４６】
例えば、画面更新間隔設定プログラム２０１には、図５に表すように、ウィンドウ２１０の表示設定状態と、その表示設定状態で送信すべき画面更新間隔情報との対応関係を表すデータ（以降「更新間隔特定定義データ）が定義されている。それにより、この画面更新間隔通知プログラム１７１は、ウィンドウ２１０毎に、そのウィンドウ２１０の表示設定状態を用いて画面更新間隔特定定義データを参照することにより、送信すべき画面更新間隔情報を特定する。
【００４７】
サーバ１は、端末装置２から受信した画面更新間隔情報に従い、画像の更新タイミングを設定する。それにより、画面更新間隔情報は、画像の更新タイミングを直接的に指定するための情報として用いている。これは、非アクティブ状態のウィンドウ２１０での画像の更新タイミングを端末装置２のユーザが１〜３秒の間で任意に指定できるようにしたためである。非アクティブ状態のウィンドウ２１０での画像の更新間隔をユーザが任意に変更できる場合、ウィンドウ２１０の表示設定状態を特定するだけでは、非アクティブ状態のウィンドウ２１０の画像をユーザが所望する更新間隔で更新させることはできない。
【００４８】
なお、非アクティブ状態のウィンドウ２１０の画像の更新間隔を指定する画面更新間隔情報は、そのウィンドウ２１０全体のなかで表示される部分の割合に応じて自動的に決定するようにしても良い。画像の更新間隔を１〜３秒の3段階で変更可能にする場合、表示される部分の割合の値域（例えば０〜１）を３分割し、分割した各値域と各画面更新間隔情報との対応関係を設定し、実際に求めた割合に対応付けられた画面更新間隔情報を選択させれば良い。表示設定状態毎に設定可能な画像の更新間隔を一つとした場合、確認された表示設定状態をサーバ１に通知するようにしても良い。
【００４９】
図６は、画面更新間隔情報送信処理のフローチャートである。図６に表す画面更新間隔情報送信処理は、ＶＮＣビューア２００の画面更新間隔設定プログラム２０１をＣＰＵ２１が実行することで実現される処理である。この画面更新間隔情報送信処理は、ＶＮＣビューア２００によりウィンドウ２１０に画像を表示させている場合、上記のように、予め定めた時間が経過する度に実行される。図６では、便宜的に、ＶＮＣビューア２００によって画像が表示される１つのウィンドウ２１０を対象に実行される処理を抽出し、その流れを表している。ここで図６を参照し、この画面更新間隔情報送信処理について詳細に説明する。
【００５０】
先ず、ＣＰＵ２１は、対象として選択したウィンドウ２１０がアクティブ状態か否か判定する（Ｓ１）。そのウィンドウ２１０がアクティブ状態であった場合、Ｓ１の判定はＹｅｓとなり、次にＣＰＵ２１は、画像のリアルタイムでの更新を要求するための画面更新間隔情報を生成して送信させる（Ｓ２）。生成した画面更新間隔情報の送信は、その画面更新間隔情報と共に、サーバ２のＩＰアドレス、及び対象とするウィンドウ２１０に表示させている画像に対応するポート番号をノースブリッジ２２、及びサウスブリッジ２７を介してＣＰＵ２１がＮＩＣ３０に出力することで行われる。その送信を行った後、１ウィンドウ２１０分の画面更新間隔情報送信処理が終了する。
【００５１】
一方、対象とするウィンドウ２１０がアクティブ状態でなかった場合、Ｓ１の判定はＮｏとなる。この場合、次にＣＰＵ２１は、そのウィンドウ２１０が表示状態か否か判定する（Ｓ３）。そのウィンドウ２１０が非表示状態であった場合、Ｓ３の判定はＮｏとなり、次にＣＰＵ２１は、画像の非表示を要求するための画面更新間隔情報を生成して送信させる（Ｓ５）。そのウィンドウ２１０が表示状態であった場合、Ｓ３の判定はＹｅｓとなり、次にＣＰＵ２１は、１〜３秒間隔での画像の更新を要求するための画面更新間隔情報を生成して送信させる（Ｓ４）。Ｓ４、或いはＳ５での画面更新間隔情報の送信を行った後、１ウィンドウ２１０分の画面更新間隔情報送信処理が終了する。Ｓ３でのＹｅｓの判定は、対象とするウィンドウ２１０が非アクティブ状態であることを表している。
【００５２】
図４は、サーバに用意された画面更新間隔情報に対応する仕組みの例を説明する図である。
図２に表すように、端末装置２から送信された画面更新間隔情報は、サーバ１によって受信されると、ＶＮＣサーバ１２０によって処理される。この画面更新間隔情報は、キーボード３１上のキーに対してユーザが行った操作内容（図２、及び図４では「キーボード入力」と表記）を表す情報である。このため、ＶＮＣサーバ１２０は、画面更新間隔情報をシリアルポートエミュレータ１３０に渡す。以降、キーボード３１上のキーに対してユーザが行った操作内容を表す情報は「キーボード入力情報」と総称する。
【００５３】
端末装置２が画面更新間隔情報を送信する場合、画像データを送信するサーバ１のＩＰ（Internet Protocol）アドレス、及びＭＡＣ（Media Access Control）アドレスに加えて、その画像データを生成するＶＭに割り当てられたポート番号が用いられる。そのポート番号は、画面更新間隔情報と共にシリアルポートエミュレータ１３０に渡される。その結果、画面更新間隔情報は、シリアルポートエミュレータ１３０から、仮想マシン・モニターを介して、画像データを生成するＶＭのゲストＯＳ１５０に渡される。
【００５４】
ゲストＯＳ１５０に渡された画面更新間隔情報は、キーボード入力情報であることから、キーボードドライバ１７０に処理される。キーボードドライバ１７０には、画面更新間隔通知プログラム１７１が組み込まれている。この画面更新間隔通知プログラム１７１は、キーボード入力情報のなかから画面更新間隔情報を抽出し、抽出した画面更新間隔情報に応じて、画像データを送信する間隔である画面更新間隔を設定するためのプログラムである。
【００５５】
この画面更新間隔通知プログラム１７１には、図５に表すように、画面更新間隔情報に応じて設定すべき送信間隔を設定するためのデータ（以降「更新間隔設定定義データ」と表記）が定義されている。それにより、この画面更新間隔通知プログラム１７１は、その更新間隔設定定義データを参照し、キーボード入力情報が画面更新間隔情報か否かの判定、及び画面更新間隔情報と判定した場合に設定すべき更新間隔の特定を行う。特定された更新間隔を表す更新間隔データは、更新間隔格納域１６７に格納される。画面更新間隔情報と判定されなかったキーボード入力情報は、画像データを生成するアプリケーション１８０に渡される。
【００５６】
この更新間隔格納域１６７には、更新間隔データの他に、更新間隔データを最後に更新した時刻を表す格納時間データ、及び画像データの出力先を表す画面出力先データが格納される。格納時間データは、画面更新間隔通知プログラム１７１によって更新される。
【００５７】
図７は、キーボード入力情報処理のフローチャートである。このキーボード入力情報処理は、ゲストＯＳ１５０が実行されるＶＭに割り当てられた少なくとも１個のＣＰＵ１１が、キーボードドライバ１７０を実行することで実現される処理である。そのキーボードドライバ１７０は、管理ＯＳ１００のシリアルポートエミュレータ１３０からキーボード入力情報が渡されたことを契機に、ゲストＯＳ１５０によって実行される。ここで図７を参照し、そのキーボード入力情報処理について詳細に説明する。
【００５８】
先ず、ＣＰＵ１１は、管理ＯＳ１００のシリアルポートエミュレータ１３０から渡されたキーボード入力情報（図７中「キー入力値」と表記）を取得する（Ｓ１１）。次にＣＰＵ１１は、更新間隔設定定義データを用いて、取得したキーボード入力情報が画面更新間隔情報か否かを判定する（Ｓ１２）。そのキーボード入力情報が図５に表すような画面更新間隔情報のうちの一つであった場合、Ｓ１２の判定はＹｅｓとなる。その場合、ＣＰＵ１１は、更新間隔設定定義データを用いて、その画面更新間隔情報によって指定される更新間隔を特定し、特定した更新間隔を表す更新間隔データを更新間隔格納域１６７に上書きする。ＣＰＵ１１は、その更新間隔格納域１６７の格納時間データを、現在時刻を表すデータに更新する（以上Ｓ１３）。このような更新間隔格納域１６７の更新を行った後、このキーボード入力情報処理を終了する。
【００５９】
取得したキーボード入力情報が図５に表すような画面更新間隔情報の何れとも一致しない場合、Ｓ１２の判定はＮｏとなる。その場合、ＣＰＵ１１は、取得したキーボード入力情報を、アプリケーション１８０に通知するための処理を行う。その後、このキーボード入力情報処理を終了する。
【００６０】
このようにして、キーボード入力情報処理では、キーボード入力情報として画面更新間隔情報がシリアルポートエミュレータ１３０から渡された場合、渡された画面更新間隔情報により、更新間隔格納域１６７の更新を行う。それにより、端末装置２でのウィンドウ２１０の表示設定状態の変化に対応することができる。画面更新間隔通知プログラム１７１は、上記Ｓ１２、及びＳ１３の各処理に用いられる。
【００６１】
図４の説明に戻る。
図４では、更新間隔格納域１６７はディスプレイドライバ１６０内に表している。実際の更新間隔格納域１６７は、キーボードドライバ１７０及びディスプレイドライバ１６０が共に更新可能な配列変数、或いはＶＭに割り当てられたメモリ空間上に確保された領域である。ディスプレイドライバ１６０内に表す画面更新情報退避域１６５は、ＶＭに割り当てられたメモリ空間上に確保された領域である。ここでは、ディスプレイドライバ１６０の機能を説明する便宜上、更新間隔格納域１６７及び画面更新情報退避域１６５をそのディスプレイドライバ１６０内に表している。
【００６２】
ディスプレイドライバ１６０は、そのサブプログラムとして、画面出力プログラム１６１、及び退避域出力プログラム１６３を搭載している。
【００６３】
画面出力プログラム１６１は、更新間隔格納域１６７に格納されている画面出力先データを参照し、その画面出力先データによって指定される出力先に画像データを出力するためのプログラムである。画面出力先データによって指定される出力先は、管理ＯＳ１００のディスプレイエミュレータ１１０、或いは画面更新情報格納域１６５である。この画面更新情報格納域１６５は、画像データの送信を停止させている間に、アプリケーション１８０から出力された画像データを保存するためのバッファとして機能する。
【００６４】
表示内容が更新される画像を表示させるために送信される画像データは、１画像分か、或いは直前の画像との間の差分であるのが普通である。１画像分の画像データでは、アプリケーション１８０から出力された画像データを画面更新情報格納域１６５内の画像データに単に上書きすれば良い。差分の画像データでは、画像データの送信を停止させている間にアプリケーション１８０から出力される画像データを画面更新情報格納域１６５内の画像データに反映させなければならない。このようなことから、画面更新情報格納域１６５内に格納された画像データの扱いは、アプリケーション１８０が生成する画像データの内容によって異なる。しかし、アプリケーション１８０が生成する画像データの内容は特に限定されるものではない。ここでは、便宜的に、アプリケーション１８０は直前の画像との間の差分の画像データを出力すると想定する。
【００６５】
退避域出力プログラム１６３は、画面更新情報退避域１６５に格納された画像データを出力するためのプログラムである。この退避域出力プログラム１６３は、更新間隔格納域１６７に格納されている画面出力先データの更新を行う。その画面出力先データの更新を退避域出力プログラム１６３に行わせるのは、画面更新情報退避域１６５に未送信の画像データが存在する状況でその画像データより後に送信すべき画像データを送信するのを回避させるためである。
【００６６】
図８は、退避域出力処理のフローチャートである。この退避域出力処理は、画面更新情報退避域１６５に格納された画像データを送信させるための処理であり、ゲストＯＳ１５０が実行されるＶＭに割り当てられた少なくとも１個のＣＰＵ１１が、退避域出力プログラム１６３を実行することで実現される。この退避域出力処理は、ゲストＯＳ１５０の制御により、例えば予め定めた時間が経過する度に実行される。ここで図８を参照し、その退避域出力処理について詳細に説明する。
【００６７】
ＶＭが生成する画像データは、複数の端末装置２に送信される場合がある。その場合、更新間隔格納域１６７、及び画面更新情報退避域１６５は端末装置２毎に確保される。図８では、便宜的に、１台の端末装置２を対象に実行される処理を抽出して、その流れを表している。
【００６８】
先ず、ＣＰＵ１１は、更新間隔格納域１６７の格納時間データを参照し、更新間隔データが更新された時刻を判定する（Ｓ２１）。その更新時刻が現在時刻から５秒より前であった場合、Ｓ２１ではその旨が判定され、次にＣＰＵ１１は、更新間隔格納域１６７の画面出力先データが表す出力先を画面更新情報退避域１６５に更新する。その更新後、この退避域出力処理が終了する。その更新時刻が現在時刻から５秒以内であった場合、Ｓ２１ではその旨が判定され、Ｓ２３に移行する。
【００６９】
送信先となる端末装置２では、何らかの不具合の発生により、画像データを処理できなくなる可能性がある。ユーザがＶＮＣビューア２００を終了させても、端末装置２は画像データを処理できなくなる。このようなことから、上記Ｓ２１の判定は、送信先となる端末装置２が画像データを処理できる状態か否かを判定するために行われる。それにより本実施形態では、画面更新間隔情報が送信されなくなってから５秒より長い時間が経過した端末装置２は、画像データを処理できない状態になっていると見なすようにしている。このため、更新間隔格納域１６７の更新間隔データの内容に係わらず、画面出力先データが表す出力先は画面更新情報退避域１６５とされ、無駄になると考えられる画像データの送信は停止される。端末装置２に実行させるＶＮＣビューア２００に組み込まれている画面更新間隔設定プログラム２０１に、予め定めた時間が経過する度に画面更新間隔情報を送信させているのは、その端末装置２が画像データを処理できる状態か否かを判定できるようにする意味がある。
【００７０】
Ｓ２３では、ＣＰＵ１１は、更新間隔格納域１６７の更新間隔データの表す更新間隔の判定を行う。その更新間隔データの表す更新間隔が非表示であった場合、Ｓ１３ではその旨が判定され、上記Ｓ２２の処理が実行される。その更新間隔データの表す更新間隔が１〜３秒であった場合、Ｓ１３ではその旨が判定され、Ｓ２４に移行する。その更新間隔データの表す更新間隔がリアルタイムであった場合、Ｓ１３ではその旨が判定され、Ｓ２７に移行する。
【００７１】
Ｓ２４では、ＣＰＵ１１は、更新間隔格納域１６７の画面出力先データが表す出力先を画面更新情報退避域１６５に更新する。次にＣＰＵ１１は、画面更新情報退避域１６５に未送信の画像データが存在する場合、その画像データを送信すべきタイミングとなるまでの間、スリープ状態（待機状態）とする（Ｓ２５）。そのスリープ状態が解除されたＣＰＵ１１は、画面更新情報退避域１６５に格納されている画像データを管理ＯＳ１００のディスプレイエミュレータ１１０に処理させるための通知を行う（Ｓ２６）。その後、この退避域出力処理が終了する。
【００７２】
Ｓ２７では、ＣＰＵ１１は、画面更新情報退避域１６５に格納されている未送信の画像データを管理ＯＳ１００のディスプレイエミュレータ１１０に処理させるための通知を行う（Ｓ２７）。次にＣＰＵ１１は、更新間隔格納域１６７の画面出力先データが表す出力先をディスプレイエミュレータ１１０に更新する（Ｓ２８）。その後、この退避域出力処理が終了する。
【００７３】
図９は、画像出力処理のフローチャートである。この画像出力処理は、アプリケーション１８０から出力される画像データを出力すべき出力先に出力させるための処理であり、ゲストＯＳ１５０が実行されるＶＭに割り当てられた少なくとも１個のＣＰＵ１１が、画像出力プログラム１６１を実行することで実現される。この画像出力処理は、ゲストＯＳ１５０の制御により、アプリケーション１８０による画像データの生成を契機に実行される。次に図９を参照し、その画像出力処理について詳細に説明する。
【００７４】
上記のように、ＶＭが生成する画像データは、複数の端末装置２に送信される場合がある。その場合、更新間隔格納域１６７、及び画面更新情報退避域１６５は端末装置２毎に確保される。このことから、図９でも図８と同じく、便宜的に、１台の端末装置２を対象に実行される処理を抽出して、その流れを表している。
【００７５】
先ず、ＣＰＵ１１は、更新間隔格納域１６７の画面出力先データを参照し、その画面出力先データが表す出力先の判定を行う（Ｓ３１）。その画面出力先データが表す出力先がディスプレイエミュレータ１１０であった場合、Ｓ３１ではその旨が判定され、次にＣＰＵ１１は、生成された画像データ管理ＯＳ１００のディスプレイエミュレータ１１０に処理させるための通知を行う（Ｓ３２）。その後、この画面出力処理が終了する。
【００７６】
一方、画面出力先データが表す出力先が画面更新情報退避域１６５であった場合、Ｓ３１ではその旨が判定され、Ｓ３３に移行する。このＳ３３では、ＣＰＵ１１は、生成された画像データを画面更新情報退避域１６５に格納する。その後、この画面出力処理が終了する。
【００７７】
なお、本実施形態では、ＶＭ上で実行されるゲストＯＳ１５０に、画像データの送信間隔を制御する機能（画面出力プログラム１６１、及び退避域出力プログラム１６３）を搭載させているが、この機能は別のプログラムに搭載させても良い。この機能は、アプリケーション１８０、或いは管理ＯＳ１００に搭載させても良い。本実施形態において、この機能をゲストＯＳ１５０に搭載させたのは、ゲストＯＳ１５０上で動作させるアプリケーションの修正を回避できる、管理ＯＳ１００の負荷を軽減できる、といった利点のためである。画面出力プログラム１６１のようなプログラムをアプリケーション１８０に、退避域出力プログラム１６３のようなプログラムをゲストＯＳ１５０（ディスプレイドライバ１６０）に、といったように、機能を複数のプログラムに分散させても良い。つまり、機能の搭載方法は、サーバ１として、画像データの送信間隔を適切に管理できるのであれば、特に限定されない。
【図１】
2014045452.tif 000003
【図２】
2014045452.tif 000004
【図３】
2014045452.tif 000005
【図４】
2014045452.tif 000006
【図５】
2014045452.tif 000007
【図６】
2014045452.tif 000008
【図７】
2014045452.tif 000009
【図８】
2014045452.tif 000010
【図９】
2014045452.tif 000011
【手続補正書】
【提出日】平成28年4月22日(2016.4.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介した通信を可能にする通信手段と、
内容が更新される画像の画像データを取得する画像取得手段と、
前記画像取得手段が取得した前記画像データの送信先となる端末装置から、前記画像データの送信タイミングを特定するためのタイミング情報を取得する情報取得手段と、
前記情報取得手段が取得した前記タイミング情報であって、前記端末装置において前記画像データが描画される領域全体のなかで、表示される部分の割合に応じて決定された該タイミング情報に基づいて、前記画像データの前記通信手段を用いた送信を管理する更新管理手段と、
を有することを特徴とする情報処理装置。
【請求項２】
ネットワークを介した通信を可能にする通信手段と、
前記通信手段が受信した画像データを表示装置上に表示させる表示制御手段と、
前記通信手段が受信した画像データ別に、該画像データの表示設定状態を特定し、該特定した表示設定状態を基に、該画像データの送信タイミングを指定するタイミング情報であって、該画像データが描画される領域全体のなかで、表示される部分の割合に応じて決定される該タイミング情報を生成する情報生成手段と、
前記通信手段を用いて、前記情報生成手段が生成した前記タイミング情報を前記画像データの送信元の情報処理装置へ送信させる通知手段と、
を有することを特徴とする端末装置。
【請求項３】
ネットワークを介した画像データの送信を管理するための方法であって、
前記画像データの受信側装置に、前記画像データの表示設定状態を特定させ、該特定させた表示設定状態を基に、該画像データの送信タイミングを指定するタイミング情報であって、該画像データが描画される領域全体のなかで、表示される部分の割合に応じて決定される該タイミング情報を生成させ、生成したタイミング情報を、前記画像データの送信側装置へ送信させ、
前記送信側装置に、前記タイミング情報に基づいて、前記画像データの送信間隔を管理させる、
ことを特徴とする画像送信管理方法。
【請求項４】
ネットワークを介した通信を可能にする通信手段と、
内容が更新される画像の画像データの送信のタイミングを示すタイミング情報と、キーボード上のキーの組み合せとを対応付けた更新間隔設定定義情報を記憶する記憶手段と、
前記画像データを取得する画像取得手段と、
前記画像取得手段が取得した前記画像データの送信先となる端末装置から、前記タイミング情報に対応付けられているキーボード上のキーの組み合せを含む画面更新間隔情報を取得する情報取得手段と、
前記更新間隔設定定義情報と前記画面更新間隔情報に基づいて、前記画像データの送信のタイミングを特定し、特定した前記画像データの送信のタイミングに基づいて、前記画像データの前記通信手段を用いた送信を管理する更新管理手段と、
を有することを特徴とする情報処理装置。
【請求項５】
ネットワークを介した通信を可能にする通信手段と、
前記通信手段が受信した画像データを表示装置上に表示させる表示制御手段と、
前記通信手段が受信した画像データ別に、該画像データの表示設定状態を特定し、該特定した表示設定状態を基に、該画像データの送信タイミングを指定するタイミング情報に予め対応付けられているキーボード上のキーの組み合せを含む画面更新間隔情報を生成する情報生成手段と、
前記通信手段を用いて、前記情報生成手段が生成した前記画面更新間隔情報を前記画像データの送信元の情報処理装置に送信させる通知手段と、
を有することを特徴とする端末装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明を適用した１システムは、ネットワークを介した通信を可能にする通信手段と、内容が更新される画像の画像データを取得する画像取得手段と、画像取得手段が取得した画像データの送信先となる端末装置から、画像データの送信タイミングを特定するためのタイミング情報を取得する情報取得手段と、情報取得手段が取得したタイミング情報であって、端末装置において画像データが描画される領域全体のなかで、表示される部分の割合に応じて決定されたタイミング情報に基づいて、画像データの通信手段を用いた送信を管理する更新管理手段と、を有する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３５
【補正方法】変更
【補正の内容】
【００３５】
非アクティブ状態のウィンドウ２１０の少なくとも一部は、アクティブ状態のウィンドウ２１０が重なって見ることはできない。少なくとも一部を見ることができないウィンドウ２１０内の画像を端末装置２のユーザが重要視している可能性は低いと云える。言い換えれば、端末装置２のユーザにとっての優先順位は、非アクティブ状態のウィンドウ２１０内の画像よりもアクティブ状態のウィンドウ２１０内の画像のほうが高いと云える。非表示状態としているウィンドウ２１０では、そのウィンドウ２１０内に表示される画像は見ることはできない。このようなことから、本実施形態では、端末装置２で表示対象としている画像（ウィンドウ２１０）毎に、その画像の更新タイミングを制御するようにしている。
【国際調査報告】
2014045452.tif 000012
2014045452.tif 000013