JP2018022998A - 情報処理装置、クライアント端末、情報処理方法、及び、情報処理プログラム - Google Patents

情報処理装置、クライアント端末、情報処理方法、及び、情報処理プログラム Download PDF

Info

Publication number
JP2018022998A
JP2018022998A JP2016152644A JP2016152644A JP2018022998A JP 2018022998 A JP2018022998 A JP 2018022998A JP 2016152644 A JP2016152644 A JP 2016152644A JP 2016152644 A JP2016152644 A JP 2016152644A JP 2018022998 A JP2018022998 A JP 2018022998A
Authority
JP
Japan
Prior art keywords
transmission
client terminal
rate
reception
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016152644A
Other languages
English (en)
Other versions
JP6747150B2 (ja
Inventor
真一 佐沢
Shinichi Sazawa
真一 佐沢
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016152644A priority Critical patent/JP6747150B2/ja
Publication of JP2018022998A publication Critical patent/JP2018022998A/ja
Application granted granted Critical
Publication of JP6747150B2 publication Critical patent/JP6747150B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】通信アプリケーションについて、ユーザが体感するレスポンスの低下を抑制する。【解決手段】単位時間当たりに生成された所定のクライアント端末宛ての送信データのデータ量である生成レートに係る情報を取得する第1の取得部と、単位時間当たりに送信処理がなされる所定のクライアント端末への送信データのデータ量である送信レートに係る情報を取得する第2の取得部と、所定のクライアント端末から、所定のクライアント端末が単位時間当たりに受信したデータの受信量である受信レートに係る情報を受信する受信部と、所定のクライアント端末宛ての送信データが生成された場合に、受信レート、送信レート、及び、生成レートに基づいて、所定のクライアント端末宛ての送信データを送信するか否かを制御する制御部と、を備える情報処理装置である。【選択図】図2

Description

本発明は、情報処理装置、クライアント端末、情報処理方法、及び、情報処理プログラムに関する。
インターネットなどのWAN(Wide Area Network)では、空き帯域が変動している。
WANを利用するアプリケーションの中には、ある程度の許容限度での応答性が望まれるアプリケーションがある。このような応答性が望まれるアプリケーションには、例えば、仮想デスクトップのアプリケーションがある。
仮想デスクトップは、クライアント端末のデスクトップ環境をサーバ上で稼働させる技術である。仮想デスクトップでは、クライアント端末とサーバとに、それぞれに応じたアプリケーションが実装される。仮想デスクトップでは、クライアント端末からサーバに対して、画面の操作内容が送信される。サーバからクライアント端末には、画面の操作内容に応じて更新された画面の差分データが送信される。画面の操作内容は様々であり、予め固定されていないため、サーバからクライアント端末へ送信される画面の更新データ量は、送信の度に変動する。その一方、画面を操作するユーザは、更新データ量によらず、ある程度の許容限度での応答性を期待する。
特開2014−147038号公報
ネットワークの空き帯域が少ないときに、例えば、仮想デスクトップのサーバがクライアント端末に更新データを送信すると、ネットワークが混雑して、更新データがクライアント端末までに届くのに時間がより多くかかる。この場合には、仮想デスクトップのクライアント端末の画面では画面遷移が滑らかでなくなったり、画面遷移が止まってしまったりして、ユーザにレスポンスの低下を感じさせてしまうことがある。
本発明は、通信アプリケーションについて、ユーザが体感するレスポンスの低下を抑制可能な情報処理装置、クライアント端末、情報処理方法、及び情報処理プログラムを提供することを目的とする。
本発明の態様の一つは、第1の取得部と、第2の取得部と、受信部と、制御部とを備える情報処理装置である。第1の取得部は、単位時間当たりに生成された所定のクライアント端末宛ての送信データのデータ量である生成レートに係る情報を取得する。第2の取得部は、単位時間当たりに送信処理がなされる所定のクライアント端末宛ての送信データのデータ量である送信レートに係る情報を取得する。受信部は、所定のクライアント端末から、所定のクライアント端末が単位時間当たりに受信したデータの受信量である受信レートに係る情報を受信する。制御部は、所定のクライアント端末宛ての送信データが生成された場合に、受信レート、送信レート、及び、生成レートに基づいて、所定のクライアント端末宛ての送信データを送信するか否かを制御する。
開示の情報処理装置、クライアント端末、情報処理方法、及び情報処理プログラムによれば、通信アプリケーションについて、ユーザが体感するレスポンスの低下を抑制することができる。
図1は、第1実施形態に係る情報処理システムのシステム構成の一例を示す図である。 図2は、第1実施形態に係るサーバの仮想デスクトップの1セッションに係る更新データの送信タイミングの制御方法の一例を示す図である。 図3は、クライアント端末のハードウェア構成の一例を示す図である。 図4は、クライアント端末の機能構成の一例を示す図である。 図5は、受信計測結果記録テーブルの一例である。 図6は、クライアント端末の受信帯域計測部の処理のフローチャートの一例である。 図7は、サーバのハードウェア構成の一例を示す図である。 図8は、サーバの機能構成の一例を示す図である。 図9は、画像更新テーブルの一例である。 図10は、送信計測結果記録テーブルの一例である。 図11は、サーバの受信帯域反映部の処理のフローチャートの一例である。 図12は、サーバの更新画像取得部の処理のフローチャートの一例である。 図13は、サーバの画像更新レート計測部の処理のフローチャートの一例である。 図14は、サーバの送信レート計測部の処理のフローチャートの一例である。 図15は、サーバの制御部の処理のフローチャートの一例である。 図16は、図15のOP45の送信判定処理のフローチャートの一例である。 図17は、第1実施形態に係るサーバとクライアント端末との仮想デスクトップのシミュレーション結果の画像更新レートを受信レートで割った値、送信レートを受信レートで割った値の時系列推移を示すグラフの一例である。 図18は、通常の仮想デスクトップの通信と、第1実施形態に係るサーバとクライアント端末との仮想デスクトップの通信と、シミュレーション結果の遅延を比較したグラフである。 図19は、UNAP(Universal Network Acceleration Protocol)のデータグラムのフォーマットを示す図である。 図20は、変形例に係るクライアント端末の受信計測結果記録テーブルの一例である。 図21は、変形例に係るクライアント端末の受信帯域計測部の処理のフローチャートの一例である。 図22は、変形例に係るサーバの送信計測結果記録テーブルの一例である。 図23は、変形例に係るサーバの送信レート計測部のフローチャートの一例である。
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
<第1実施形態>
図1は、第1実施形態に係る情報処理システムのシステム構成の一例を示す図である。情報処理システム100は、仮想デスクトップのサーバ1とクライアント端末2とを含む。サーバ1とクライアント端末2とは、WANを介して接続されている。サーバ1とクライアント端末2とは、それぞれ、仮想デスクトップのサーバ又はクライアントのアプリケーションを実行している。サーバ1とクライアント端末2との間には、仮想デスクトップのセッションが確立されている。
クライアント端末2は、ユーザによる画面の操作内容をサーバ2に送信する。サーバ1は、クライアント端末2からの画面の操作内容に応じて遷移した画面の画像データを生成し、クライアント端末2に送信済みの画面のうち最新の画面の画像データとの差分データを更新データとしてクライアント端末2に送信する。したがって、サーバ1が生成するクライアント端末2宛ての送信データのサイズは、送信の度に変動し、単位時間当たりのサーバ1のデータの生成量も変動する。
一方、サーバ1とクライアント端末2とが接続するWANは、複数のユーザによって共有されているので、空き帯域が変動する。空き帯域が変動することと、仮想デスクトップのサーバ1が生成する送信データ量が送信の度に変動することから、空き帯域が少ない場合にサーバ1がクライアント端末2にサイズの大きな更新データを送信すると、ネットワークが輻輳する可能性がある。ネットワークが輻輳すると遅延が発生するため、クライアント端末2において、操作レスポンスが低下する可能性がある。
仮想デスクトップの操作レスポンスが劣化すると、例えば、画面上のカーソルの動きが滑らかでなくなったりして、仮想デスクトップに対するユーザの体感品質を低下させることになる。
第1実施形態では、空き帯域と仮想デスクトップのサーバ1が生成する送信データ量とを考慮して、サーバ1は、空き帯域の少ない場合には更新データの送信を控え、帯域の空いているときに更新データを送信するようにして、送信タイミングを制御する。
図2は、第1実施形態に係るサーバ1の仮想デスクトップの1セッションに係る更新データの送信タイミングの制御方法の一例を示す図である。サーバ1は、クライアント端末2の受信レートと、サーバ1の送信レートと画像更新レートとを用いて、仮想デスクトップのクライアント端末2へのデータの送信タイミングを制御する。
画像更新レートとは、仮想デスクトップの更新データの生成速度である。第1実施形態では、画像更新レートは、未送信の更新データのサイズを未送信となってからの経過時間で割った値で定義される。送信レートとは、単位時間当たりにサーバ1が送信処理を行ったクライアント端末2宛ての送信データのサイズである。送信処理は、例えば、アプリケーション層では、仮想デスクトップのアプリケーションが下位の層とのデータの受け渡し用のバッファにデータを格納することである。また、送信処理は、アプリケーション層よりも下位の層では、アプリケーション層とのデータの受け渡し用のバッファに格納されたデータをパケットに変換し、当該パケットをネットワークに出力するまでの一連の処理の一部又は全部である。画像更新レート及び送信レートは、サーバ1によって計測される。画像更新レートは、「生成レート」の一例である。更新データは、「送信データ」の一例である。
受信レートとは、単位時間当たりにクライアント端末2がサーバ1から受信する仮想デスクトップのデータのサイズである。受信レートは、クライアント端末2によって計測さ
れ、サーバ1に通知される。
仮想デスクトップ側から見た、すなわち、アプリケーション層レベルでみた場合の送信タイミングの制御の指針は、第1実施形態では、画像更新レートを受信レートで割った値が増大する場合には、仮想デスクトップの更新データの送信をスキップすることである。画像更新レートを受信レートで割った値が増大する場合には、クライアント端末2の仮想デスクトップのデータを受信する速度に比べてサーバ1の仮想デスクトップの更新データの生成速度の方が早いことが示され、ネットワークの混雑を招くおそれがある。そこで、第1実施形態では、画像更新レートを受信レートで割った値が増大する場合には、仮想デスクトップの更新データの送信を保留し、遅延の発生又は増大を抑制する。
通信側から見た、すなわち、ネットワーク層レベルで見た送信タイミングの制御の指針は、第1実施形態では、送信レートを受信レートで割った値が増大する場合には、仮想デスクトップの更新データの送信をスキップすることである。WANに十分に空き帯域がある場合には、理論的には、送信レート=受信レートとなる。しかしながら、WANに空き帯域が少ない場合には、送信レート>受信レートとなる。そのため、送信レートを受信レートで割った値が増大する場合には、サーバ1が仮想デスクトップの更新データの送信を保留することで、遅延の増大を抑制する。
例えば、送信レートを受信レートで割った値が1に近く、空き帯域が十分にあることが示される場合には、画像更新レートを受信レートで割った値が大きいとしても、仮想デスクトップの更新データは送信されても問題ない。また、例えば、送信レートを受信レートで割った値が大きく、空き帯域が少ないことが示される場合には、画像更新レートを受信レートで割った値が小さい値であっても、仮想デスクトップの更新データが送信されると、遅延が増大するおそれがある。
すなわち、送信レートを受信レートで割った値と、画像更新レートを受信レートで割った値とは、トレードオフに似た関係にある。
そのため、第1実施形態では、アプリケーション層とネットワーク層との双方の送信タイミングの制御の指針を考慮し、仮想デスクトップの更新データの送信の可否を判別する判別関数を、x*y=βと定義する。xは、画像更新レート÷受信レートの値である。yは送信レート÷受信レートの値である。定数βは、0以上の正の値である。定数βは、例えば、1.8、5、10等の実測に基づいた値に、適宜、設定される。
図2では、判別関数を示すグラフが示されている。x*yの値が定数β未満である領域を送信可能領域、x*yの値が定数β以上である領域を送信スキップ領域とする。xとyとの値が送信可能領域にある場合には、仮想デスクトップの更新データを送信することが判定される。xとyとの値が送信スキップ領域にある場合には、仮想デスクトップの更新データを送信しないことが判定される。
仮想デスクトップの更新データを送信しないことが判定された場合には、第1実施形態では、当該更新データは廃棄される。例えば、廃棄された更新データが、時刻T1に生成された画面の画像データと、時刻T2(T1<T2)に生成された画面の画像データとの差分データであるとする。この場合、廃棄された更新データの次に生成される更新データは、時刻T1に生成された画面の画像データと時刻T3(T2<T3)に生成された画面の画像データとの差分データとなる。
例えば、xとyとの値が送信スキップ領域にあり、更新データの送信がスキップされると、単位時間当たりに送信処理が行われるデータのサイズが小さくなるので、送信レート
が低下する。送信レートが低下すると、送信レートを受信レートで割った値(=y)が低下する。したがって、更新データの送信がスキップ又は連続してスキップされると、送信レートを受信レートで割った値が次第に小さくなるので、xとyとの値が送信可能領域に入るようになり、遅延の少ない状態で仮想デスクトップの更新データがクライアント端末2に送信されるようになる。
例えば、時刻T1の画面の画像データと時刻T2の画面の画像データとの差分データである更新データの送信がスキップされ、その後、時刻T1の画面の画像データと時刻T3の画面の画像データとの差分データである更新データが送信されたことを仮定する。この場合、クライアント端末2の画面は、時刻T1の画面から時刻T3の画面へと遷移することとなる。クライアント端末2では時刻T2の画面は表示されないものの、時刻T1の画面の画像データと時刻T3の画面の画像データとの差分データが、遅延の少ない状態でクライアント端末2に送信されてくる。そのため、ネットワークの輻輳による遅延によって、カーソルの動きが滑らかでないなどの、レスポンスの低下をユーザに感じさせることは抑制される。
<クライアント端末の装置構成>
図3は、クライアント端末2のハードウェア構成の一例を示す図である。クライアント端末2は、例えば、PC(Personal Computer)等の汎用のコンピュータ、スマートフォ
ン及びタブレット端末等の無線情報処理端末、等である。図3のクライアント端末2のハードウェア構成は、PCが想定されている。
クライアント端末2は、ハードウェア構成要素として、CPU(Central Processing Unit)201、主記憶装置202、入力装置203、出力装置204、補助記憶装置20
5、ネットワークインタフェース207を備え、これらはバス209によって電気的に接続されている。
入力装置203は、例えば、キーボード、キーパッド、マウス等のポインティングデバイスである。クライアント端末2がスマートフォンである場合には、入力装置203は、タッチパネルや各種ボタンである。入力装置203から入力されたデータは、CPU 201に出力される。
補助記憶装置205は、様々なプログラムや、各プログラムの実行に際してCPU 201が使用するデータを格納する。補助記憶装置205は、例えば、EPROM(Erasable Programmable ROM)、フラッシュメモリ、又はハードディスクドライブ(Hard Disk Drive)等の不揮発性のメモリである。補助記憶装置205は、例えば、オペレーティングシステム(OS)、仮想デスクトップクライアントプログラム205P、その他様々なアプリケーションプログラムを保持する。仮想デスクトップクライアントプログラム205Pは、クライアント端末2を仮想デスクトップのクライアントとして動作させるためのプログラムである。
主記憶装置202は、CPU 201に、補助記憶装置205に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファ、一時メモリとして用いられたりする。主記憶装置202は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)のような半導体メモリを含む。
CPU 201は、補助記憶装置205に保持されたOSや様々なアプリケーションプログラムを主記憶装置202にロードして実行することによって、様々な処理を実行する。CPU 201は、1つに限られず、複数備えられてもよい。
ネットワークインタフェース207は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース207は、アクセスネットワークと接続しており、クライアント端末2は、アクセスネットワークを通じてWANに接続する。ネットワークインタフェース207は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース207は、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等である。ネットワークインタフェース17で受信されたデータ等は、CPU 201に出力される。
出力装置204は、CPU 201の処理の結果を出力する。出力装置204は、ディスプレイ、プリンタ、スピーカ等の音声出力装置を含む。
なお、図3に示されるクライアント端末2のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、クライアント端末2は、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、SDカード、miniSDカード、microSDカード、USB(Universal Serial Bus)フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、Blu−ray(登録商標) Disc、又はフラッシュメモリカードのような記録媒体である。
図4は、クライアント端末2の機能構成の一例を示す図である。クライアント端末2は、機能構成要素として、データ受信部21、受信帯域計測部22、受信帯域送信部23、画像解凍部24、画像表示部25を備える。これらの機能構成要素は、クライアント端末22のCPU 201が補助記憶装置205に格納されている仮想デスクトップクライアントプログラム205Pを実行することによって達成される機能構成である。
データ受信部21は、サーバ1からクライアント端末2に送信された仮想デスクトップの更新データを受信する。データ受信部21は、受信した更新データを受信帯域計測部22に出力する。データ受信部21は、「クライアント端末」の「受信部」の一例である。
受信帯域計測部22は、データ受信部21から、仮想デスクトップの更新データの入力を受ける。受信帯域計測部22は、所定周期で仮想デスクトップの受信データ量を計測しており、計測結果を、後述の受信計測記録テーブルに記録する。受信帯域計測部22は、更新データと計測結果情報の送信指示とを受信帯域送信部23に出力する。受信帯域計測部22の計測周期は、例えば、20ミリ秒である。ただし、受信帯域計測部22の計測周期は20ミリ秒に限定されない。受信帯域計測部22は、「クライアント端末」の「取得部」の一例である。
受信帯域送信部23は、受信帯域計測部22から更新データの入力を受け、当該更新データを画像解凍部24に出力する。また、受信帯域送信部23は、受信帯域計測部22から受信レート情報の送信指示の入力を受け、受信計測記録テーブルに記録されている受信レート情報を読み出し、サーバ1に送信する。受信レート情報の詳細については、後述される。受信帯域送信部23は、「クライアント端末」の「送信部」の一例である。
画像解凍部24は、受信帯域送信部23から、サーバ1から送信された仮想デスクトップの更新データの入力を受ける。第1実施形態では、更新データは所定の画像圧縮アルゴリズムによって圧縮されているため、画像解凍部24は、更新データを解凍する。画像解凍部24は、解凍した更新データを画像表示部25に出力する。
画像表示部25は、画像解凍部24から解凍された更新データの入力を受ける。画像表
示部25は、解凍された更新データと現在表示中の画面の画像データとから画面の画像データを生成する。更新データは、画面の画像データの差分データであるからである。画像表示部25は、生成した画面の画像データを、例えば、フレームバッファに書込み、出力装置204の一つであるディスプレイに表示させる。
なお、クライアント端末2の機能構成は、図4に示されるものに限定されない。第1実施形態では、図4に示される機能構成は、クライアント端末2のCPU 201が仮想デスクトップクライアントプログラム205Pを実行することによって達成されるものとして説明されたが、これに限定されない。例えば、データ受信部21、画像解凍部24、画像表示部25は、仮想デスクトップクライアントプログラム205Pによって達成され、受信帯域計測部22、受信帯域送信部23は、仮想デスクトップクライアントプログラム205Pとは異なるプログラムによって達成されてもよい。
図5は、受信計測結果記録テーブルの一例である。受信計測結果記録テーブルは、仮想デスクトップのデータの受信に関する計測結果を記録するテーブルである。受信計測結果記録テーブルは、例えば、クライアント端末2の主記憶装置202に格納されている。
受信計測結果記録テーブルの1エントリは、受信帯域計測部22の1計測周期の計測結果に相当する。受信計測結果記録テーブルのエントリは、受信帯域計測部22によって登録される。
受信計測結果記録テーブルの1エントリには、受信時刻、受信サイズ、受信時間の項目が含まれる。「受信時刻」は、計測周期の開始時刻である。「受信サイズ」は、当該計測周期中にクライアント端末2が受信した仮想デスクトップのデータのサイズである。「受信時間」は、当該計測周期の終了時刻から開始時刻を引いた値である。第1実施形態では、計測周期は20ミリ秒と固定値が想定されているので、「受信時間」に格納される値はほぼ20ミリ秒となる。
受信帯域送信部23は、計測結果情報の送信指示の入力を受けると、受信計測結果記録テーブルを参照し、最新のエントリを受信レート情報として読み出し、サーバ1に送信する。受信レート情報は、「受信レートに係る情報」の一例である。
図6は、クライアント端末2の受信帯域計測部22の処理のフローチャートの一例である。図6に示される処理は、クライアント端末2において仮想デスクトップクライアントプログラム205Pの起動を契機に開始される。図6に示される処理の主体は、仮想デスクトップクライアントプログラム205Pを実行するクライアント端末2のCPU 201であるが、便宜上、機能構成要素である受信帯域計測部22を主体として説明される。
OP1では、受信帯域計測部22は、計測周期を20ミリ秒、受信サイズを0に設定する。
OP2では、受信帯域計測部22は、データ受信部11からの仮想デスクトップのデータの入力を待機する。仮想デスクトップのデータがデータ受信部21から入力されると(OP2:YES)、処理がOP3に進む。仮想デスクトップのデータがデータ受信部21から入力されない場合には(OP2:NO)、処理がOP5に進む。
OP3では、受信帯域計測部22は、受信サイズが0である場合に、受信開始時刻を現在時刻に設定する。受信サイズが0でない場合には、OP3の処理は省略される。
OP4では、受信帯域計測部22は、受信サイズを更新する。受信サイズは、現在の受
信サイズの値に、受信したデータのサイズが加算されて更新される。
OP5では、受信帯域計測部22は、現在時刻から受信開始時刻を引いた値が、計測周期以上であるか否かを判定する。現在時刻から受信開始時刻を引いた値が計測周期以上である場合には(OP5:YES)、処理がOP6に進む。現在時刻から受信開始時刻を引いた値が計測周期未満である場合には(OP5:NO)、処理がOP2に進み、OP2からOP5の処理が繰り返し実行される。
OP6では、受信帯域計測部22は、受信計測結果記録テーブルに計測結果を記録する。受信計測結果記録テーブルのエントリの「受信時刻」には、受信開始時刻が記録される。受信計測結果記録テーブルのエントリの「受信サイズ」には、現在の受信サイズが記録される。受信計測結果記録テーブルのエントリの「受信時間」には、現在時刻から受信開始時刻を引いた値が記録される。
OP7では、受信帯域計測部22は、受信帯域送信部23に、受信レート情報の送信指示を出力する。受信帯域送信部23は、受信レート情報の送信指示を受けて、OP6において記録された受信計測結果記録テーブルの最新のエントリを受信レート情報としてサーバ1に送信する。
OP8では、受信帯域計測部22は、受信サイズを0にリセットする。次に処理がOP2に進み、OP2から処理が実行される。
なお、第1実施形態では、受信帯域送信部23は、受信帯域計測部22からの受信レート情報の送信指示の入力を受けて受信レート情報の送信を行うが、これに限定されない。例えば、受信帯域送信部23は、受信帯域計測部22からの送信指示に従うのではなく、受信帯域計測部22の計測周期と同じ周期で、受信計測結果記録テーブルを参照し、最新のエントリから受信レート情報を取得して送信するようにしてもよい。
<サーバの装置構成>
図7は、サーバ1のハードウェア構成の一例を示す図である。サーバ1は、専用又は汎用のコンピュータである。サーバ1は、ハードウェア構成要素として、CPU 101、主記憶装置102、入力装置103、出力装置104、補助記憶装置105、ネットワークインタフェース107を備え、これらはバス109によって電気的に接続されている。CPU、101、主記憶装置102、入力装置103、出力装置104、補助記憶装置105、ネットワークインタフェース107は、クライアント端末2のCPU 201、主記憶装置202、入力装置203、出力装置204、補助記憶装置205、ネットワークインタフェース207と、同様である。サーバ1は、「情報処理装置」の一例である。
サーバ1の補助記憶装置105には、仮想デスクトップサーバプログラム105Pが格納されている。仮想デスクトップサーバプログラム105Pは、サーバ1を仮想デスクトップのサーバとして動作させるためのプログラムである。
なお、サーバ1のハードウェア構成は、図7に示されるものに限定されない。サーバ1が専用のコンピュータである場合には、サーバ1は入力装置103、出力装置104を備えていなくとも良い。
図8は、サーバ1の機能構成の一例を示す図である。サーバ1は、機能構成要素として、画像生成部11、更新画像取得部12、送信済み画像バッファ13、画像圧縮部14、画像更新レート計測部15、受信帯域反映部16、制御部17、送信レート計測部18、画像送信部19を備える。図8に示されるサーバ1の機能構成要素は、例えば、サーバ1
のCPU 101が補助記憶装置105に格納されている仮想デスクトップサーバプログラム105Pを実行することによって達成される機能構成である。図8に示される機能構成が、サーバ1のCPU 101が仮想デスクトップサーバプログラム105Pを実行することによって達成される場合には、仮想デスクトップサーバプログラム105Pは、「情報処理プログラム」の一例である。
画像生成部11は、仮想デスクトップのクライアント端末2のディスプレイに表示される画面の画像データを生成する。画像生成部11は、クライアント端末2からの仮想デスクトップの操作内容を受信した場合には、操作内容に応じて画面を遷移させ、遷移後の画面の画像データを生成する。画像生成部11は、生成した画面の画像データを更新画像取得部12に出力する。
更新画像取得部12は、画像生成部11から画面の画像データの入力を受ける。更新画像取得部12は、画像生成部11から入力される画面の画像データを監視している。送信済み画像バッファ13には、クライアント端末2へ送信済みの画面の画像データのうち、最新の画面の画像データが格納されている。送信済み画像バッファ13は、サーバ1の主記憶装置102内に生成される。
更新画像取得部12は、画面の画像データに変更がある場合に、送信済みバッファに格納されている画面の画像データと、入力された画面の画像データとの差分データを更新データとして取得する。更新画像取得部12は、更新データを画像圧縮部14に出力する。
また、更新画像取得部12は、制御部17から、更新データの送信可否判定の結果の入力を受ける。更新データを送信することが判定された場合には、更新画像取得部12は、当該更新データに対応する入力された画面の画像データを送信済み画像バッファ13に格納して、クライアント端末2に送信済みの最新の画面の画像データを更新する。
更新データを送信しないことが判定された場合には、更新画像取得部12は、当該更新データに対応する入力された画面の画像データを廃棄する。
画像圧縮部14は、更新画像取得部12から、更新データの入力を受ける。画像圧縮部14は、入力された更新データを所定の画像圧縮アルゴリズムによって圧縮する。画像圧縮部14は、圧縮処理後の更新データを画像更新レート計測部15に出力する。
画像更新レート計測部15は、画像圧縮部14から圧縮された更新データの入力を受ける。画像更新レート計測部15は、更新データの入力を監視し、入力される更新データの情報を更新テーブルに記録する。画像更新レート計測部15は、更新データを制御部17に出力する。画像更新レート計測部15は、「情報処理装置」の「第1の取得部」の一例である。
受信帯域反映部16は、クライアント端末2から所定の周期で送信される受信レート情報を受信する。受信帯域反映部16は、受信レート情報を、受信レート情報テーブルに記録する。受信レート情報テーブルは、サーバ1の主記憶装置102に格納されており、クライアント端末2が保有する受信計測結果記録テーブルと同じデータ構造である。受信帯域反映部16は、「情報処理装置」の「受信部」の一例である。
制御部17は、画像更新レート計測部15から更新データの入力を受ける。制御部17は、更新データの送信タイミングを制御する。具体的には、制御部17は、更新データの入力を受けると、当該更新データの送信可否を判定する。更新データを送信することを判定した場合には、制御部17は、当該更新データを送信レート計測部18に出力する。更
新データを送信しないことを判定した場合には、制御部17は、当該更新データを廃棄する。また、制御部17は、更新データの送信可否の判定結果を更新画像取得部12に通知する。
制御部17の更新データの送信可否の判定は、例えば、受信レート、送信レート、画像更新レートに基づいて判定される。受信レートは、受信レート情報テーブルに基づいて取得される。送信レートは、後述の送信計測結果記録テーブルに基づいて取得される。画像更新レートは、後述の画像更新テーブルに基づいて取得される。
制御部17は、例えば、x=画像更新レートを受信レートで割った値、y=送信レートを受信レートで割った値を求め、x*yの値が定数β以上であるか否かを判定することによって、更新データの送信可否を判定する。ただし、更新データの送信可否の判定方法は、これに限定されない。例えば、送信レート、受信レート、画像更新レートは、複数の連続する計測周期の平均値であってもよい。制御部17は、「情報処理装置」の「制御部」の一例である。
送信レート計測部18は、制御部17から、送信することが判定された更新データの入力を受ける。送信レート計測部18は、更新データの入力を監視し、所定の計測周期で入力される更新データのサイズを計測する。送信レート計測部18の計測周期は、例えば、20ミリ秒である。ただし、送信レート計測部18の計測周期はこれに限定されない。送信レート計測部18は、計測結果を、後述の送信計測結果記録テーブルに記録する。送信レート計測部18は、更新データを画像送信部19に出力する。送信レート計測部18は、「情報処理装置」の「第2の取得部」の一例である。
画像送信部19は、送信レート計測部18から更新データの入力を受ける。画像送信部19は、クライアント端末2への更新データを送信バッファに格納する。画像送信部19は、アプリケーション層の機能構成要素であるので、下位のレイヤとのデータ受け渡し用のバッファに更新データを格納することによって、アプリケーション層以下の層に送信処理が移行され、ネットワークに更新データが出力される。
なお、サーバ1の機能構成は、図8に示されるものに限定されない。第1実施形態では、図8に示される機能構成は、サーバ1のCPU 101が仮想デスクトップサーバプログラム105Pを実行することによって達成されるものとして説明されたが、これに限定されない。例えば、画像生成部11、更新画像取得部12、送信済み画像バッファ13、画像圧縮部14、画像送信部19は、仮想デスクトップサーバプログラム105Pによって達成され、画像更新レート計測部15、受信帯域反映部16、制御部17、送信レート計測部18は、仮想デスクトップサーバプログラム105Pとは異なるプログラムによって達成されてもよい。画像更新レート計測部15、受信帯域反映部16、制御部17、送信レート計測部18が、仮想デスクトップサーバプログラム105Pとは異なるプログラムによって達成される場合には、当該プログラムは「情報処理プログラム」の一例である。
図9は、画像更新テーブルの一例である。画像更新テーブルは、更新データの生成レートに関する情報を格納するテーブルである。画像更新テーブルは、例えば、サーバ1の主記憶装置102に格納されている。
画像更新テーブルの1エントリには、経過時刻と未送信圧縮画像サイズの項目が含まれる。画像更新テーブルのエントリは、画像更新レート計測部15に更新データが入力された場合に、画像更新レート計測部15によって生成される。
「経過時間」の項目には、例えば、画像更新テーブルがクリアされてから当該更新データが画像更新レート計測部15に入力されるまでの経過時間が格納される。ただし、これに限らない。画像更新テーブルは、例えば、更新データを送信することが判定された場合に制御部17によってクリアされる。「未送信圧縮画像サイズ」には、更新データのサイズが格納される。
画像更新テーブルは、更新データを送信することが判定された場合に、制御部17によって、全エントリが削除されてクリアされる。したがって、画像更新テーブルには、更新データが最後に送信されて以降の、送信されないことが判定された更新データの情報が格納されていることになる。また、画像更新テーブルの最新のエントリの「経過時間」の値は、最後にクライアント端末2に更新データが送信されてからの、更新データの未送信時間を示すことになる。画像更新テーブルに格納される情報は、「生成レートに関する情報」の一例である。
図10は、送信計測結果記録テーブルの一例である。送信計測結果記録テーブルは、仮想デスクトップのクライアント端末2に送信することが判定された更新データに関する計測結果を記録するテーブルである。送信計測結果記録テーブルは、例えば、サーバ1の主記憶装置102に格納されている。
送信計測結果記録テーブルの1エントリは、送信レート計測部18の1計測周期の計測結果に相当する。送信計測結果記録テーブルのエントリは、送信レート計測部18によって生成される。
送信計測結果記録テーブルの1エントリには、送信時刻、送信サイズ、送信時間の項目が含まれる。「送信時刻」は、計測周期の開始時刻である。「送信サイズ」は、当該計測周期中に送信レート計測部18に入力されたクライアント端末2へ送信することが判定された更新データのサイズである。「送信時間」は、当該計測周期の終了時刻から開始時刻を引いた値である。第1実施形態では、計測周期は20ミリ秒と固定値が想定されているので、「送信時間」はほぼ20ミリ秒となる。送信計測結果記録テーブルに記録される情報は、「送信レートに関する情報」の一例である。
第1実施形態では、便宜上、サーバ1と1台のクライアント端末2との仮想デスクトップの通信について説明されている。サーバ1が複数台のクライアント端末2と仮想デスクトップのセッションを確立する場合には、サーバ1は、各クライアント端末2(各セッション)について、受信レート情報テーブル、送信計測結果記録テーブル、画像更新テーブルを備え、更新データの送信可否の判定処理を行う。なお、受信レート情報テーブル、送信計測結果記録テーブル、画像更新テーブルのデータ構造は、第1実施形態において図示されるものに限定されない。
図11は、サーバ1の受信帯域反映部16の処理のフローチャートの一例である。図11に示される処理は、仮想デスクトップサーバプログラム105Pが起動されるとともに開始される。図11に示される処理の主体は、仮想デスクトップサーバプログラム105Pを実行するCPU 101であるが、便宜上、機能構成要素である受信帯域反映部16を主体として説明する。以降のサーバ1の機能構成要素の処理のフローチャートについても同様とする。
OP11では、受信帯域反映部16は、クライアント端末2から受信レート情報の受信を待機する。クライアント端末2からの受信レート情報を受信すると(OP11:YES)、処理がOP12に進む。
OP12では、受信帯域反映部16は、受信した受信レート情報を、受信レート情報テーブルに反映する。その後、処理がOP11に進み、OP11からの処理が繰り返し実行される。
図12は、サーバ1の更新画像取得部12の処理のフローチャートの一例である。図12に示される処理は、仮想デスクトップサーバプログラム105Pが起動されるとともに開始される。図12に示される処理は、仮想デスクトップサーバプログラム105Pの稼働中、繰り返し実行される。
OP21では、更新画像取得部12は、画像生成部11からの画像データの入力を待機する。画像生成部11から画像データが入力された場合には(OP21:YES)、処理がOP22に進む。
OP22では、更新画像取得部12は、入力された画像データと、送信済み画像バッファ13に格納されている画像データとを比較し、差分があるか否かを判定する。入力された画像データと送信済み画像バッファ13に格納されている画像データとに差分がある場合には(OP22:YES)、処理がOP23に進む。入力された画像データと送信済み画像バッファ13に格納されている画像データとに差分がない場合には(OP22:NO)、処理がOP27に進む。
OP23では、更新画像取得部12は、入力された画像データと送信済み画像バッファ13に格納されている画像データとの差分データを更新データとして取得する。OP24では、更新画像取得部12は、更新データを画像圧縮部14に出力する。
OP25では、更新画像取得部12は、制御部17からの送信判定処理の判定結果の入力を受けて、更新データが送信されることが判定されたか否かを判定する。更新データが送信されることが判定された場合には(OP25:YES)、処理がOP26に進む。更新データが送信されないことが判定された場合には(OP25:NO)、処理がOP27に進む。
OP26では、更新画像取得部12は、OP21で入力された画像データで、送信済み画像バッファ13に格納されている画像データを上書きする。その後、図12に示される処理が終了する。
OP27では、更新画像取得部12は、OP21で入力された画像データを廃棄する。その後、図12に示される処理が終了する。
図13は、サーバ1の画像更新レート計測部15の処理のフローチャートの一例である。図13に示される処理は、仮想デスクトップサーバプログラム105Pが起動されるとともに開始される。
OP31では、画像更新レート計測部15は、更新データの入力を待機する。画像圧縮部14から更新データが入力されると(OP31:YES)、処理がOP32に進む。
OP32では、画像更新レート計測部15は、入力された更新データの情報を画像更新テーブルに反映させる。より具体的には、画像更新レート計測部15は、画像更新テーブルがクリアされてから更新データが入力されるまでの経過時間と更新データのサイズとを画像更新テーブルに記録する。その後、処理がOP31に進み、OP31からの処理が繰り返し実行される。
図14は、サーバ1の送信レート計測部18の処理のフローチャートの一例である。図14に示される処理は、仮想デスクトップサーバプログラム105Pが起動されるとともに開始される。
OP41では、送信レート計測部18は、計測周期を20ミリ秒、送信サイズを0に設定する。なお、サーバ1の送信レートの計測周期とクライアント端末2の受信レートの計測周期とは、同じであっても異なっていてもよい。第1実施形態では、サーバ1の送信レートの計測周期と、クライアント端末2の受信レートの計測周期とは、同じ値に設定されることを想定する。
OP42では、送信レート計測部18は、制御部17からの更新データの入力を待機する。送信レート計測部18に入力される更新データは、圧縮処理されており、クライアント端末2に送信することが判定されている更新データである。送信レート計測部18が更新データの入力を受けた場合には(OP42:YES)、処理がOP43に進む。送信レート計測部18が更新データの入力を受けない場合には(OP42:NO)、処理がOP45に進む。
OP43では、送信レート計測部18は、送信サイズの値が0である場合に、送信開始時刻を現在時刻に設定する。送信サイズの値が0でない場合には、OP43の処理は省略される。
OP44では、送信レート計測部18は、送信サイズに入力された更新データのサイズを加算して、送信サイズを更新する。
OP45では、送信レート計測部18は、現在時刻から送信開始時刻を引いた時間長が計測周期以上であるか否かを判定する。現在時刻から送信開始時刻を引いた時間長が計測周期以上である場合には(OP45:YES)、処理がOP46に進む。現在時刻から送信開始時刻を引いた時間長が計測周期未満である場合には(OP45:NO)、処理がOP42に進む。
OP46では、送信レート計測部18は、送信時刻、送信サイズ、送信時間を送信計測結果記録テーブルに記録する。送信計測結果記録テーブルの送信時刻には、送信開始時刻が格納される。送信計測結果記録テーブルの送信サイズには、現在の送信サイズの値が格納される。送信計測結果記録テーブルの送信時間には、現在時刻から送信開始時刻を引いた時間長が格納される。
OP47では、送信レート計測部18は、送信サイズを0にリセットする。その後、処理がOP42に進み、OP42の処理から繰り返し実行される。
図15は、サーバ1の制御部17の処理のフローチャートの一例である。図15に示される処理は、仮想デスクトップサーバプログラム105Pが起動されるとともに開始される。図15に示される処理は、仮想デスクトップサーバプログラム105Pが稼働中、繰り返し実行される。
OP51では、制御部17は、画像更新レート計測部15から更新データの入力を待機する。制御部17が更新データの入力を受けた場合には(OP51:YES)、処理がOP52に進む。
OP52では、制御部17は、直近のm周期分(mは正の整数)の受信レートを取得し、m周期分の受信レートの平均値を取得する。受信レート(r)は、受信サイズ/受信時
間で求められる。受信サイズと受信時間とは、受信レート情報テーブルの各エントリから取得される。制御部17は、受信レート情報テーブルの最新のm個のエントリそれぞれについて、受信レートを算出し、最新のm個のエントリの受信レートの平均値を取得する。以降、単に、受信レートという場合には、直近のm周期分の受信レートの平均値であるとする。
OP53では、制御部17は、直近のm周期分の送信レートを取得し、m周期分の送信レートの平均値を取得する。送信レート(s)は、送信サイズ/送信時間で求められる。送信サイズと送信時間とは、送信計測結果記録テーブルの各エントリから取得される。制御部17は、送信計測結果記録テーブルの最新のm個のエントリそれぞれについて、送信レートを算出し、最新のm個のエントリの送信レートの平均値を取得する。以降、単に、送信レートという場合には、直近のm周期分の送信レートの平均値であるとする。
OP54では、制御部17は、画像更新レートを取得する。画像更新レート(img)は、未送信の更新データサイズを未送信経過時間で割った値で求められる。制御部17は、未送信の更新データサイズとして、画像更新テーブルの最新のエントリの「未送信圧縮画像サイズ」の値を取得する。制御部17は、未送信経過時間として、画像更新テーブルの最新のエントリの「経過時間」の値を取得する。
OP55では、制御部17は、送信判定処理を行う。送信判定処理の詳細については、後述される。
OP56では、送信判定処理によって、更新データを送信することが判定された場合には(OP56:YES)、処理がOP57に進む。送信判定処理によって、更新データを送信しないことが判定された場合には(OP56:NO)、処理がOP58に進む。
OP57では、更新データを送信することが判定されたので、制御部17は、画像更新テーブルに格納されている全エントリを削除して、画像更新テーブルをクリアする。また、制御部17は、送信レート計測部18に更新データを出力する。
OP58では、更新データを送信しないことが判定されたので、制御部17は、更新データを廃棄する。
OP59では、制御部17は、更新データの送信の判定結果を更新画像取得部12に通知する。その後、図15に示される処理が終了する。
図16は、図15のOP55の送信判定処理のフローチャートの一例である。OP61では、制御部17は、s/r、すなわち、送信レートを受信レートで割った値が定数α以下であるか否かを判定する。定数αは、例えば、0≦α<2の範囲の値をとる。α=0である場合には、OP61の処理は省略される。
送信レート(s)を受信レート(r)で割った値が十分に小さい場合には、ネットワークに十分な空き帯域があることが示される。そのため、OP61では、ネットワークに十分な空き帯域が存在するか否かを判定している。
s/rが定数α以下である場合には(OP61:YES)、処理がOP64に進み、OP64では、制御部17は、更新データを送信することを判定する。その後、図16に示される処理が終了する。s/rが定数αより大きい場合には(OP61:NO)、処理がOP62に進む。
OP62では、制御部17は、以下の数式1が満たされるか否かを判定する。α=0である場合には、数式1は、送信レート(s)を受信レート(r)で割った値と画像更新レート(img)を受信レート(r)で割った値とを乗じるもの、すなわち、x*y<βになる。
Figure 2018022998
数式1が満たされる場合には(OP62:YES)、処理がOP64に進み、OP64では、制御部17は、更新データを送信することを判定する。その後、図16に示される処理が終了する。数式1が満たされない場合には(OP62:NO)、処理がOP63に進み、OP63では、制御部17は、更新データを送信しないことを判定する。その後、図16に示される処理が終了する。
なお、図15、図16の例では、受信レート、送信レートについて、m周期分の平均値を用いたが、これに限られず、最新の1周期分の受信レート、送信レートが用いられてもよい。
<第1実施形態の作用効果>
図17は、第1実施形態に係るサーバ1とクライアント端末2との仮想デスクトップのシミュレーション結果の画像更新レートを受信レートで割った値、送信レートを受信レートで割った値の時系列推移を示すグラフの一例である。図17に示されるグラフでは、x軸は画像更新レートを受信レートで割った値を示す。y軸は、送信レートを受信レートで割った値を示す。シミュレーションでは、α=0、β=1.8に設定されている。
図17のシミュレーション結果では、画像更新レートを受信レートで割った値、送信レートを受信レートで割った値が送信スキップ領域に含まれることになった場合でも、しばらくすると、再度、画像更新レートを受信レートで割った値、送信レートを受信レートで割った値が送信可能領域に戻っている。これは、更新データの送信がスキップされたことで、送信レートが低下し、送信レートを受信レートで割った値(=y)も低下したためである。
図18は、通常の仮想デスクトップの通信と、第1実施形態に係るサーバ1とクライアント端末2との仮想デスクトップの通信と、シミュレーション結果の遅延を比較したグラフである。図18の第1実施形態に係るサーバ1とクライアント端末2との仮想デスクトップの通信は、図17に示されるシミュレーションと同じ仮想デスクトップの通信である。また、図18の通常の仮想デスクトップの通信は、第1実施形態に係るサーバ1とクライアント端末2との仮想デスクトップの通信と、同じ条件下での通信である。同じ条件とは、例えば、サーバ1とクライアント端末2間の帯域変動及び通信遅延の変動、クライアント端末2から発生する操作内容及びサーバ1において生成される画面の画像データ、等が同じであることを示す。
図18では、実線が第1実施形態に係るサーバ1とクライアント端末2との仮想デスクトップの通信のシミュレーション結果を示す。点線が、通常の仮想デスクトップの通信のシミュレーション結果を示す。
図18の第1実施形態に係るサーバ1とクライアント端末2との仮想デスクトップの通信のシミュレーション結果の丸で囲まれている部分は、図17に示されるシミュレーション結果の丸で囲まれている送信スキップ領域内にx、yの値が入っている部分に相当する。すなわち、図18の丸で囲まれている部分は、サーバ1は更新データを送信していないので、遅延時間も0となっている。
図18に示されるように、第1実施形態に係るサーバ1とクライアント端末2との仮想デスクトップの通信では、通常の通信よりも遅延が小さくなる。
したがって、第1実施形態によれば、送信レート、受信レート、画像更新レートに基づいて、更新データの送信可否を判定することで、サーバ1からクライアント端末2への更新データの送信の遅延を小さくすることができる。これによって、ユーザの体感するレスポンスの低下を抑制することができる。
第1実施形態では、更新データの送信可否の判定の際に、送信レートを受信レートで割った値、画像更新レートを受信レートで割った値を用いた判別関数x*y=βを用いる。これによって、アプリケーション層から見た場合の送信タイミングの制御の指針とネットワーク層から見た場合の送信タイミングの制御の指針とのトレードオフに似た関係にある2つの指針を考慮し、より遅延が小さくなるように送信タイミングを制御することができる。
また、第1実施形態では、送信レートを受信レートで割った値が十分小さい、すなわち、空き帯域が十分にあることが推定される場合には、更新データを送信する。これによって、空き帯域が十分にある場合には、判別関数x*y=βを用いた送信可否判定を行わずに済む。
また、第1実施形態では、更新データをクライアント端末2に送信しないことが判定された場合には、当該更新データを廃棄する。これによって、廃棄された更新データに対応する画面の画像データはクライアント端末2には表示されないことになり、クライアント端末2では画面遷移が廃棄された更新データの画面分飛ばされることになる。しかしながら、更新データの遅延を少なくすることができるため、カーソルの動きが鈍い等のクライアント端末2のユーザの体感するレスポンスを低下させることは抑制できる。
<変形例>
第1実施形態では、一般的な仮想デスクトップ技術に対して、更新データの送信可否判定を適用する場合について説明された。仮想デスクトップのアプリケーションでは、トランスポート層のプロトコルとして、UDP(User Datagram Protocol)が用いられることが多い。変形例では、トランスポート層のプロトコルとして、UDPではなく、例えば、UNAP(Universal Network Acceleration Protocol)を用いる仮想デスクトップ技術
に更新データの送信可否判定を適用する場合について説明する。
変形例では、第1実施形態と共通する説明は省略される。変形例では、受信レート及び送信レートの計測方法が、第1実施形態と異なる。
図19は、UNAPのデータグラムのフォーマットを示す図である。UNAPのヘッダには、パケット番号が含まれている。パケット番号は、パケットを特定するための番号である。一方、UNAPのヘッダにはシーケンス番号も含まれている。シーケンス番号は、パケットの並びを特定するための番号であって、再送の際には、シーケンス番号は元の番号と同じ番号になる。パケット番号は、パケット自体を特定するための番号であるので、再送の際には、元のパケットの番号とは異なる番号が付与される。
そのため、UNAPのパケット番号を監視することによって、伝送途中で損失されたパケットを検出することができる。変形例では、サーバ1、クライアント端末2ともに、UNAPのパケット番号を監視し、伝送途中で損失されたパケットについても考慮して、送信レート、受信レートを算出する。
図20は、変形例に係るクライアント端末2の受信計測結果記録テーブルの一例である。変形例に係る受信計測結果記録テーブルは、第1実施形態に係る受信計測結果記録テーブルとは、データ構造が異なる。
変形例に係る受信計測結果記録テーブルのエントリには、区間番号、受信パケット数、受信サイズ、受信時間の項目が含まれる。「区間番号」には、計測区間の番号が格納される。計測区間は、パケット番号によって決められる。例えば、変形例では、計測区間のサイズは64パケットであり、パケット番号で64パケットごとに1区間となる。計測区間のサイズは、64パケットに限定されない。
「受信パケット数」には、当該計測区間で受信されたパケット数が格納される。「受信サイズ」には、当該計測区間で受信されたパケットの合計サイズが格納される。「受信時間」には、当該計測区間の時間長が格納される。
図21は、変形例に係るクライアント端末2の受信帯域計測部22の処理のフローチャートの一例である。図21に示される処理は、クライアント端末2において仮想デスクトップクライアントプログラム205Pの起動を契機に開始される。
OP71では、受信帯域計測部22は、区間番号を1、区間単位を64パケット、受信サイズを0、受信パケット数を0に設定する。区間単位は64パケットに限定されない。
OP72では、受信帯域計測部22は、仮想デスクトップのパケットの受信を待機する。受信帯域計測部22が仮想デスクトップのパケットを受信すると(OP72:YES)、処理がOP73に進む。受信帯域計測部22はアプリケーション層の機能構成要素であるので、実際には、受信帯域計測部22には、パケットではなく、パケットから復元されたデータが入力される。パケットの受信、受信パケットのサイズ、受信パケットのパケット番号等は、トランスポート層のUNAPからアプリケーション層の受信帯域計測部22に通知される。
OP73では、受信帯域計測部22は、受信パケット数が0である場合に、受信開始時刻を現在時刻に設定する。受信パケット数が0でない場合には、OP73の処理は省略される。
OP74では、受信帯域計測部22は、受信サイズと受信パケット数とを更新する。受信サイズは、現在の受信サイズの値に、受信したパケットのサイズが加算されて更新される。受信パケット数は、現在の受信パケット数の値に1が加算されて更新される。
OP75では、受信帯域計測部22は、受信パケットのパケット番号が区間番号に区間単位を乗じた値以上の値であるか否かを判定する。受信パケットのパケット番号が区間番号に区間単位を乗じた値以上の値である場合には(OP75:YES)、処理がOP76に進む。受信パケットのパケット番号が区間番号に区間単位を乗じた値未満の値である場合には(OP75:NO)、処理がOP72に進み、OP72からOP75の処理が繰り返し実行される。
OP76では、受信帯域計測部22は、受信計測結果記録テーブルに計測結果を記録する。受信計測結果記録テーブルのエントリの「区間番号」、「受信パケット数」、及び、「受信サイズ」には、それぞれ、現在の値が記録される。受信計測結果記録テーブルのエントリの「受信時間」には、現在時刻から受信開始時刻を引いた値が記録される。
OP77では、受信帯域計測部22は、受信帯域送信部23に、受信レート情報の送信指示を出力する。受信帯域送信部23は、受信レート情報の送信指示を受けて、OP76において記録された受信計測結果記録テーブルの最新のエントリを受信レート情報としてサーバ1に送信する。
OP78では、受信帯域計測部22は、現在の区間番号に1を加算して区間番号を更新する。また、受信帯域計測部22は、受信パケット数、受信サイズを0にリセットする。次に処理がOP72に進み、OP72から処理が実行される。
図22は、変形例に係るサーバ1の送信計測結果記録テーブルの一例である。変形例に係る送信計測結果記録テーブルは、第1実施形態に係る送信計測結果記録テーブルとは、データ構造が異なる。
変形例に係る送信計測結果記録テーブルのエントリには、区間番号、送信パケット数、送信サイズ、送信時間の項目が含まれる。「区間番号」には、計測区間の番号が格納される。「送信パケット数」には、当該計測区間で送信されたパケット数が格納される。「送信サイズ」には、当該計測区間で送信されたパケットの合計サイズが格納される。「送信時間」には、当該計測区間の時間長が格納される。なお、サーバ1とクライアント端末2とで、計測区間のサイズは、同じである。
変形例では、サーバ1の受信レート情報テーブルは、図20のクライアント端末2の受信計測結果記録テーブルと同じデータ構造である。
図23は、変形例に係るサーバ1の送信レート計測部18のフローチャートの一例である。図23に示される処理は、仮想デスクトップサーバプログラム105Pが起動されるとともに開始される。
OP81では、送信レート計測部18は、区間番号を1、区間単位を64パケット、送信サイズを0、送信パケット数を0に設定する。区間単位は64パケットに限定されない。
OP82では、送信レート計測部18は、仮想デスクトップのパケットの送信を待機する。送信レート計測部18がクライアント端末2へのパケットの送信を検出すると(OP82:YES)、処理がOP83に進む。パケットの送信は、更新データが送信キューに格納された以降のアプリケーション層よりも下位の層の処理である。そのため、変形例では、送信レート計測部18は、パケットの送信、送信パケットのサイズ、送信パケットのパケット番号等は、トランスポート層のUNAPからの通知によって取得する。
OP83では、送信レート計測部18は、送信パケット数の値が0である場合に、送信開始時刻を現在時刻に設定する。送信パケット数の値が0でない場合には、OP83の処理は省略される。
OP84では、送信レート計測部18は、送信サイズに送信されたパケットのサイズを加算して、送信サイズを更新する。また、送信レート計測部18は、送信パケット数に1を加算して、送信パケット数を更新する。
OP85では、送信レート計測部18は、送信パケットのパケット番号が区間番号に区間単位を乗じた値以上の値であるか否かを判定する。送信パケットのパケット番号が区間番号に区間単位を乗じた値以上の値である場合には(OP85:YES)、処理がOP86に進む。送信パケットのパケット番号が区間番号に区間単位を乗じた値未満の値である場合には(OP85:NO)、処理がOP82に進み、OP82からOP85の処理が繰り返し実行される。
OP86では、送信レート計測部18は、区間番号、送信パケット数、送信サイズ、送信時間を送信計測結果記録テーブルに記録する。送信計測結果記録テーブルの送信時間には、現在時刻から送信開始時刻を引いた時間長が格納される。
OP87では、送信レート計測部18は、区間番号に1を加算して区間番号を更新する。また、送信レート計測部18は、送信パケット数及び送信サイズを0にリセットする。その後、処理がOP82に進み、OP82の処理から繰り返し実行される。
変形例では、制御部17の処理は、第1実施形態とほぼ同様である。ただし、第1実施形態では、例えば、図15のOP52、OP53で、直近の過去のm周期分の受信レート、送信レートの平均値が求められていたが、変形例では、直近の過去のm区間分の受信レート、送信レートの平均値が求められる。それ以外の制御部17の処理は、第1実施形態と同様である。
変形例のように、パケットを特定するために付与されるパケット番号を利用して、受信レートを算出する場合には、伝送途中で損失されたパケットの存在を考慮することができる。具体的には、計測区間の単位が64パケットで、1つのパケットが損失されている場合でも、1つの計測区間の受信レートは、実際に受信された63パケットの合計サイズを64パケット受信されているはずの時間長で割って算出される。一方、1つの計測区間の送信レートは、実際に送信された64パケットの合計サイズを64パケット送信された時間長で割って算出される。そのため、パケットロスが発生している場合には、第1実施形態に比べて、変形例の方が、受信レートと送信レートの値の乖離が大きくなる。したがって、変形例によれば、より正確にネットワークの空き帯域を推定することができる。
なお、変形例は、UNAPに限定されず、パケットを特定するパケット番号のような、パケットロスを検出可能なトランスポート層のプロトコルであれば適用可能である。なお、変形例では、送信レート計測部18は、UNAPから通知されるパケット送信の情報に基づいて送信パケットを計測するので、UNAPによる送信処理が、「送信処理」の一例である。UNAPによる送信処理は、例えば、データグラムにUNAPヘッダを付与して下位層のプロトコル(例えば、UDP)にデータグラムを渡すこと等である。
<その他>
第1実施形態では、仮想デスクトップ技術に適用する場合について説明されたが、第1実施形態で説明された技術は、送信の度にデータ量が変動するような技術、アプリケーションについて適用可能である。また、第1実施形態では、クライアント端末2にデータを送信しないことが判定された場合に、サーバ1は当該データを廃棄するが、クライアント端末2にデータを送信しないことが判定された場合のサーバ1の処理はこれに限定されない。例えば、サーバ1は、クライアント端末2にデータを送信しないことが判定された場合に、当該データをバッファ等に保持して当該データの送信を保留し、次に、クライアント端末2へデータを送信することが判定された場合に、バッファ内のデータも送信してもよい。
<記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コ
ンピュータ等に固定された記録媒体としても利用可能である。
1 サーバ
2 クライアント端末
11 画像生成部
12 更新画像取得部
13 送信済み画像バッファ
14 画像圧縮部
15 画像更新レート計測部
16 受信帯域反映部
17 制御部
18 送信レート計測部
19 画像送信部
21 データ受信部
22 受信帯域計測部
23 受信帯域送信部
24 画像解凍部
25 画像表示部
101、201 CPU
102、202 主記憶装置
105、205 補助記憶装置
107、207 ネットワークインタフェース

Claims (14)

  1. 単位時間当たりに生成された所定のクライアント端末宛ての送信データのデータ量である生成レートに係る情報を取得する第1の取得部と、
    単位時間当たりに送信処理がなされる前記所定のクライアント端末宛ての送信データのデータ量である送信レートに係る情報を取得する第2の取得部と、
    前記所定のクライアント端末から、前記所定のクライアント端末が単位時間当たりに受信したデータの受信量である受信レートに係る情報を受信する受信部と、
    前記所定のクライアント端末宛ての送信データが生成された場合に、前記受信レート、前記送信レート、及び、前記生成レートに基づいて、前記所定のクライアント端末宛ての前記送信データを送信するか否かを制御する制御部と、
    を備える情報処理装置。
  2. 前記制御部は、前記送信レートを前記受信レートで割った値と、前記生成レートを前記受信レートで割った値と、を乗じた値が閾値未満である場合に、前記所定のクライアント端末宛ての前記送信データを送信することを判定する、
    請求項1に記載の情報処理装置。
  3. 前記制御部は、前記送信レートを前記受信レートで割った値が第2の閾値未満である場合に、前記所定のクライアント端末宛ての送信データを送信することを判定する、
    請求項1又は2に記載の情報処理装置。
  4. 前記制御部は、前記所定のクライアント端末宛ての前記送信データを送信しないことを判定した場合に、前記送信データについて前記送信処理を行わせない、
    請求項1から3のいずれか一項に記載の情報処理装置。
  5. 前記制御部は、前記所定のクライアント端末宛ての前記送信データを送信しないことを判定した場合に、前記送信データを廃棄する、
    請求項1から3のいずれか一項に記載の情報処理装置。
  6. 前記クライアント端末宛ての送信データを生成する生成部と、
    前記送信データについて送信処理を行う送信処理部と、
    をさらに備える請求項1から5のいずれか一項に記載の情報処理装置。
  7. 前記生成部は、前記所定のクライアント端末から画面の操作内容を受信し、前記所定のクライアント端末からの画面の操作内容に応じて更新された画面の画像データを生成し、前記所定のクライアント端末に送信済みの最新の画像データと前記生成した画像データとの差分データを前記送信データとして生成する、
    請求項6に記載の情報処理装置。
  8. 前記生成部は、前記生成した画像データについて生成した送信データについて前記送信処理が実行された場合には、前記生成した画像データを前記送信済みの最新の画像データとして保存し、前記生成した画像データについて生成した送信データを送信しないことが判定された場合には、前記生成した画像データを保存しない、
    請求項7に記載の情報処理装置。
  9. 前記送信データは、所定のアプリケーションによって生成される、
    請求項1から5のいずれか一項に記載の情報処理装置。
  10. 前記所定のアプリケーションは、前記所定のクライアント端末から画面の操作内容を受
    信し、前記所定のクライアント端末からの画面の操作内容に応じて更新された画面の画像データを生成し、前記所定のクライアント端末に送信済みの最新の画像データと前記生成した画像データとの差分データを前記送信データとして生成する、
    請求項9に記載の情報処理装置。
  11. サーバから自装置宛てのデータを受信する受信部と、
    単位時間当たりの前記サーバから受信されたデータの受信量である受信レートに係る情報を取得する取得部と、
    前記受信レートに係る情報を前記サーバに通知する通知部と、
    を備えるクライアント端末であって、
    前記サーバは、
    単位時間当たりに生成された前記クライアント端末宛ての送信データのデータ量である生成レートに係る情報を取得する第1の取得部と、
    単位時間当たりに送信処理がなされる前記クライアント端末宛ての送信データのデータ量である送信レートに係る情報を取得する第2の取得部と、
    前記クライアント端末から、前記受信レートに係る情報を受信する受信部と、
    前記所定のクライアント端末宛ての送信データが生成された場合に、前記所定のクライアント端末の受信レート、前記送信レート、及び、前記生成レートに基づいて、前記所定のクライアント端末宛ての前記送信データを送信するか否かを制御する制御部と、を備える、
    クライアント端末。
  12. 前記取得部は、受信されたパケットに連続して付与されているパケット番号を監視し、所定のパケット番号数で区切られる1区間に含まれる受信パケットの合計サイズと、当該1区間の時間長とを、前記受信レートに係る情報として、取得する、
    請求項11に記載のクライアント端末。
  13. 単位時間当たりに生成された所定のクライアント端末宛ての送信データのデータ量である生成レートに係る情報を取得し、
    単位時間当たりに送信処理がなされる前記所定のクライアント端末宛ての送信データのデータ量である送信レートに係る情報を取得し、
    前記所定のクライアント端末から、前記所定のクライアント端末が単位時間当たりに受信したデータの受信量である受信レートに係る情報を受信し、
    前記所定のクライアント端末宛ての送信データが生成された場合に、前記受信レート、前記送信レート、及び、前記生成レートに基づいて、前記所定のクライアント端末宛ての前記送信データを送信するか否かを制御する、
    情報処理方法。
  14. コンピュータに、
    単位時間当たりに生成された所定のクライアント端末宛ての送信データのデータ量である生成レートを計測させ、
    単位時間当たりに送信処理がなされる前記所定のクライアント端末宛ての送信データのデータ量である送信レートを計測させ、
    前記所定のクライアント端末から、前記所定のクライアント端末が単位時間当たりに受信したデータの受信量である受信レートに係る情報を受信させ、
    前記所定のクライアント端末宛ての送信データが生成された場合に、前記受信レート、前記送信レート、及び、前記生成レートに基づいて、前記所定のクライアント端末宛ての前記送信データを送信するか否かを制御させる、
    ための情報処理プログラム。
JP2016152644A 2016-08-03 2016-08-03 情報処理装置、情報処理方法、及び、情報処理プログラム Active JP6747150B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016152644A JP6747150B2 (ja) 2016-08-03 2016-08-03 情報処理装置、情報処理方法、及び、情報処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016152644A JP6747150B2 (ja) 2016-08-03 2016-08-03 情報処理装置、情報処理方法、及び、情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2018022998A true JP2018022998A (ja) 2018-02-08
JP6747150B2 JP6747150B2 (ja) 2020-08-26

Family

ID=61165895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016152644A Active JP6747150B2 (ja) 2016-08-03 2016-08-03 情報処理装置、情報処理方法、及び、情報処理プログラム

Country Status (1)

Country Link
JP (1) JP6747150B2 (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11308271A (ja) * 1998-04-21 1999-11-05 Canon Inc データ通信装置及び受信装置及び制御方法及び記憶媒体及びデータ通信システム
JP2001094625A (ja) * 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
WO2006054442A1 (ja) * 2004-11-17 2006-05-26 Sharp Kabushiki Kaisha 送信装置、受信装置及び通信システム
JP2008160302A (ja) * 2006-12-21 2008-07-10 Yamaha Corp 送信レート制御方法および送信レート制御装置並びに送信レート制御プログラム
JP2013105367A (ja) * 2011-11-15 2013-05-30 Hitachi Ltd シンクライアントシステムおよびサーバ装置
WO2013128623A1 (ja) * 2012-03-02 2013-09-06 富士通株式会社 画像送信方法、プログラム、及び装置
JP2015177446A (ja) * 2014-03-17 2015-10-05 日本電気株式会社 制御装置、画面送信サーバ、出力画面の品質制御方法および制御プログラム
JP2016033790A (ja) * 2014-07-31 2016-03-10 日本電信電話株式会社 画面転送サーバ装置、および画面転送方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11308271A (ja) * 1998-04-21 1999-11-05 Canon Inc データ通信装置及び受信装置及び制御方法及び記憶媒体及びデータ通信システム
JP2001094625A (ja) * 1999-09-27 2001-04-06 Canon Inc データ通信装置、データ通信方法及び記憶媒体
WO2006054442A1 (ja) * 2004-11-17 2006-05-26 Sharp Kabushiki Kaisha 送信装置、受信装置及び通信システム
JP2008160302A (ja) * 2006-12-21 2008-07-10 Yamaha Corp 送信レート制御方法および送信レート制御装置並びに送信レート制御プログラム
JP2013105367A (ja) * 2011-11-15 2013-05-30 Hitachi Ltd シンクライアントシステムおよびサーバ装置
WO2013128623A1 (ja) * 2012-03-02 2013-09-06 富士通株式会社 画像送信方法、プログラム、及び装置
JP2015177446A (ja) * 2014-03-17 2015-10-05 日本電気株式会社 制御装置、画面送信サーバ、出力画面の品質制御方法および制御プログラム
JP2016033790A (ja) * 2014-07-31 2016-03-10 日本電信電話株式会社 画面転送サーバ装置、および画面転送方法

Also Published As

Publication number Publication date
JP6747150B2 (ja) 2020-08-26

Similar Documents

Publication Publication Date Title
US11831566B2 (en) Method and apparatus for transmitting scene image of virtual scene, computer device, and computer-readable storage medium
JP5920006B2 (ja) 画面更新制御プログラム、画面更新制御方法、および情報処理装置
US8150357B2 (en) Smoothing filter for irregular update intervals
US9166915B2 (en) Communication device, communication method, and recording medium
JP5362801B2 (ja) データ送信方法及び装置
JP2017076334A (ja) 管理サーバ及び管理システム及び管理方法
KR20140009501A (ko) 플로우 제어를 통해 디바이스 성능을 향상시키기 위한 방법들 및 장치
US20170371614A1 (en) Method, apparatus, and storage medium
JP5780353B2 (ja) 画像送信方法、プログラム、及び装置
US20180219741A1 (en) Bandwidth throttling
TW201443662A (zh) 動態修改到用戶端裝置與執行於代表用戶端裝置的資料伺服器上的應用程式相關聯的資料傳輸之訊框率
US20160127213A1 (en) Information processing device and method
JP6747150B2 (ja) 情報処理装置、情報処理方法、及び、情報処理プログラム
EP3096231A1 (en) Image processing program, image processing method, and image processing device
JP2016012797A (ja) 描画システム、情報処理装置、端末装置、描画制御プログラム、描画プログラム、及び描画制御方法
US9626330B2 (en) Information processing apparatus, and information processing method
JP5786733B2 (ja) 監視装置、プログラム及び監視方法
KR102216125B1 (ko) 미디어 컨텐츠의 송수신을 스케쥴링 하는 방법, 장치 및 시스템
CN113439416B (zh) 连续校准的网络系统
US11356326B2 (en) Continuously calibrated network system
CN111131611A (zh) 一种用于解决手机游戏卡顿的提示方法、装置和移动终端
Vankeirsbilck et al. Network latency hiding in thin client systems through server-centric speculative display updating
CN117667613A (zh) 一种针对服务集群的容量评估方法、装置、电子设备和存储介质
JP6191421B2 (ja) 画像表示制御プログラム、情報処理システム、及び画像表示制御方法
WO2015107898A1 (ja) 送信装置、送信方法およびプログラム記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190513

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200225

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200410

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20200707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200720

R150 Certificate of patent or registration of utility model

Ref document number: 6747150

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150