(57)【要約】【課題】ユーザが端末で使用しているアプリケーションに応じて、端末とサーバとの間の通信に関するパラメータを制御する。【解決手段】制御装置１８は、学習フェーズにおいて、リモートデスクトップシステムにおけるサーバに接続される端末で操作されるアプリケーションの情報と、端末での入力操作を示す操作情報とを用いて、操作情報を入力とし、アプリケーションの情報を出力とした操作モデル４８を生成する生成部３２と、運用フェーズにおいて、取得した端末毎の操作情報、及び操作モデル４８を用いて、操作情報に対応するアプリケーションの情報を特定する特定部３４と、特定されたアプリケーションの情報に応じて、端末とサーバとの間の通信に関するパラメータを制御する制御部３６と、を含む。【選択図】図３
2018028766.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
学習フェーズにおいて、リモートデスクトップシステムにおけるサーバに接続される端末で操作されるアプリケーションの情報と、前記端末での入力操作を示す操作情報とを用いて、前記操作情報を入力とし、前記アプリケーションの情報を出力とした操作モデルを生成し、
運用フェーズにおいて、取得した前記端末毎の前記操作情報、及び生成した前記操作モデルを用いて、前記操作情報に対応するアプリケーションの情報を特定し、
特定したアプリケーションの情報に応じて、前記端末と前記サーバとの間の通信に関するパラメータを制御する、
ことを含む処理を実行させる制御プログラム。
【請求項２】
前記学習フェーズにおいて、さらに、前記入力操作に応じて前記端末の表示部での表示が更新される描画領域のサイズを入力として、前記操作モデルを生成し、
前記運用フェーズにおいて取得した前記操作情報、前記描画領域のサイズ、及び生成した前記操作モデルを用いて、前記操作情報及び前記描画領域のサイズに対応するアプリケーションの情報を特定する、
請求項１に記載の制御プログラム。
【請求項３】
前記パラメータとして、前記サーバと前記端末との間の通信帯域、前記サーバと前記端末との間の通信データの優先度、前記サーバから前記端末へ送信される描画情報に含まれる画像データの容量、及び前記サーバから前記端末へ送信される描画情報の送信間隔の少なくとも一つを制御する、
請求項１又は請求項２に記載の制御プログラム。
【請求項４】
学習フェーズにおいて、リモートデスクトップシステムにおけるサーバに接続される端末で操作されるアプリケーションの情報と、前記端末での入力操作を示す操作情報とを用いて、前記操作情報を入力とし、前記アプリケーションの情報を出力とした操作モデルを生成する生成部と、
運用フェーズにおいて、取得した前記端末毎の前記操作情報、及び前記生成部により生成された前記操作モデルを用いて、前記操作情報に対応するアプリケーションの情報を特定する特定部と、
前記特定部により特定されたアプリケーションの情報に応じて、前記端末と前記サーバとの間の通信に関するパラメータを制御する制御部と、
を含む制御装置。
【請求項５】
コンピュータに、
学習フェーズにおいて、リモートデスクトップシステムにおけるサーバに接続される端末で操作されるアプリケーションの情報と、前記端末での入力操作を示す操作情報とを用いて、前記操作情報を入力とし、前記アプリケーションの情報を出力とした操作モデルを生成し、
運用フェーズにおいて、取得した前記端末毎の前記操作情報、及び生成した前記操作モデルを用いて、前記操作情報に対応するアプリケーションの情報を特定し、
特定したアプリケーションの情報に応じて、前記端末と前記サーバとの間の通信に関するパラメータを制御する、
ことを含む処理を実行させる制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
開示の技術は、制御プログラム、制御装置、及び制御方法に関する。
【背景技術】
【０００２】
従来、リモートデスクトップシステムにおいて、サーバが管理する画面情報に、端末のリソースに関するリソース情報を含ませて管理する技術が知られている。
【０００３】
また、業務システムの画面をオペレータに提示するシステムにおいて、アプリケーション上での操作、又はアプリケーションの状態の変化に基づいて、アプリケーションの画面の重要度を判定する技術が知られている。
【０００４】
また、リモートデスクトップシステムにおいて、端末の入力操作から該入力操作に応じた画面への描画処理までの応答時間を算出する技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２１９７９０号公報
【特許文献２】国際公開２０１３／０４２１８０号
【特許文献３】特開２０１５−０１１６５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ネットワークを介して端末とサーバとが接続されたリモートデスクトップシステムでは、ネットワークの通信帯域、輻輳状況、及びデータ転送量等によって、端末がリクエストを送信してからサーバのレスポンスを受信するまでの応答時間が変わる。すなわち、リモートデスクトップシステムでは、ネットワークの通信帯域、輻輳状況、及びデータ転送量等が、端末の操作性に影響を与える。
【０００７】
また、アプリケーションによって、求められる端末の操作性の高さが変わる。例えば、Computer-Aided Design（ＣＡＤ）アプリケーションでは、比較的高い画質と、比較的高い応答性と、比較的高い画面表示のなめらかさ（例えば、高いフレームレート）とが求められる。また、例えば、Ｗｅｂブラウザでは、比較的高い応答性が求められるが、求められる画質及び画面表示のなめらかさは、ＣＡＤアプリケーションより低い場合が多い。
【０００８】
また、例えば、動画を再生するためのアプリケーションでは、動画の再生を開始した後は、画面表示のなめらかさについては高いなめらかさが求められるが、応答性は比較的低くてもよい場合が多い。
【０００９】
従って、アプリケーションに応じて、端末とサーバとの間の通信に関するパラメータを制御することで、端末の操作性が高まることとなる。
【００１０】
開示の技術は、一つの側面として、ユーザが端末で使用しているアプリケーションに応じて、端末とサーバとの間の通信に関するパラメータを制御することを目的とする。
【課題を解決するための手段】
【００１１】
開示の技術は、一つの側面として、学習フェーズにおいて、リモートデスクトップシステムにおけるサーバに接続される端末で操作されるアプリケーションの情報と、前記端末での入力操作を示す操作情報とを用いて、以下に示す操作モデルを生成する。すなわち、前記アプリケーションの情報と、前記操作情報とを用いて、前記操作情報を入力とし、前記アプリケーションの情報を出力とした操作モデルを生成する。また、運用フェーズにおいて、取得した前記端末毎の前記操作情報、及び生成した前記操作モデルを用いて、前記操作情報に対応するアプリケーションの情報を特定する。そして、特定したアプリケーションの情報に応じて、前記端末と前記サーバとの間の通信に関するパラメータを制御する。
【発明の効果】
【００１２】
一つの側面として、ユーザが端末で使用しているアプリケーションに応じて、端末とサーバとの間の通信に関するパラメータを制御することができる、という効果を有する。
【図面の簡単な説明】
【００１３】
【図１】実施形態に係るリモートデスクトップシステムの概略構成を示すブロック図である。
【図２】端末とサーバとの間を送受信されるデータを説明するための図である。
【図３】実施形態に係る制御装置の機能ブロック図である。
【図４】操作ログの一例を示す図である。
【図５】端末での描画処理を説明するための図である。
【図６】使用アプリログの一例を示す図である。
【図７】コネクションリストの一例を示す図である。
【図８】学習用入力データの一例を示す図である。
【図９】操作モデルの一例を示す図である。
【図１０】特定用入力データの一例を示す図である。
【図１１】特定後アプリログの一例を示す図である。
【図１２】重要度リストの一例を示す図である。
【図１３】通信データの優先度を制御する処理を説明するための図である。
【図１４】実施形態に係る制御装置として機能するコンピュータの概略構成を示すブロック図である。
【図１５】実施形態に係る学習フェーズ処理の一例を示すフローチャートである。
【図１６】実施形態に係る運用フェーズ処理の一例を示すフローチャートである。
【図１７】変形例に係る端末とサーバとの間の通信帯域を制御する処理を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して、開示の技術に関する実施形態の例を詳細に説明する。
【００１５】
まず、図１を参照して、本実施形態に係るリモートデスクトップシステム１０の構成を説明する。図１に示すように、リモートデスクトップシステム１０は、端末１２、ネットワーク（ＮＷ）スイッチ１４、サーバ１６、制御装置１８、及び管理装置２０を含む。
【００１６】
端末１２及びＮＷスイッチ１４は、ネットワーク２２に接続される。また、サーバ１６、制御装置１８、及び管理装置２０は、ＮＷスイッチ１４に接続される。以上の構成により、端末１２と、サーバ１６、制御装置１８、及び管理装置２０とは、ＮＷスイッチ１４及びネットワーク２２を介して互いに通信可能とされる。また、サーバ１６、制御装置１８、及び管理装置２０は、ＮＷスイッチ１４を介して互いに通信可能とされる。
【００１７】
端末１２では、ユーザにより、例えば、キーボードによるキー入力、マウスの移動、マウスボタンのクリック等の入力操作が行われ、該入力操作を示す操作情報が端末１２からサーバ１６へ送信される。
【００１８】
サーバ１６は、端末１２から送信された操作情報を受信し、受信した操作情報が示す入力操作に応じた処理を実行し、処理結果を示す画面の描画処理の指示を示す描画情報を、端末１２に送信する。なお、上記入力操作に応じた処理としては、例えば、キー入力に応じた文字の表示、マウスの移動に伴うマウスポインタの移動、及び画面のスクロール等のコンピュータが入力操作に応じて実行する各種処理が挙げられる。
【００１９】
端末１２は、サーバ１６から送信された描画情報を受信し、受信した描画情報に基づいて描画処理を行うことによって、端末１２の画面の表示を更新する。以上の処理を繰り返すことにより、端末１２での入力操作を示す操作情報に従って、端末１２の画面の表示が更新される。
【００２０】
なお、リモートデスクトップシステム１０におけるリモートデスクトップの実現方式は、特に限定されない。例えば、リモートデスクトップの実現方式は、端末１２とサーバ１６とが１対１で対応付けられる方式でもよいし、端末１２とサーバ１６上で稼働する仮想マシンとが１対１で対応付けられる方式でもよい。また、例えば、リモートデスクトップの実現方式は、マイクロソフト（登録商標）社のRemote Desktop Services（ＲＤＳ）のように、サーバ１６上で稼働する１つのオペレーティングシステム（ＯＳ）に複数の端末１２が接続する方式でもよい。
【００２１】
ＮＷスイッチ１４は、ポートミラーリング機能を有し、端末１２とサーバ１６との間を送受信される通信データを、制御装置１８が接続されているポートへミラーリングする。制御装置１８は、ＮＷスイッチ１４によりミラーリングされた通信データを受信する。なお、制御装置１８の詳細については後述する。
【００２２】
管理装置２０は、Software Defined Networking（ＳＤＮ）コントローラ機能を有し、制御装置１８による制御によって、ＮＷスイッチ１４における端末１２とサーバ１６との間の通信に関する設定を行う。
【００２３】
次に、図２を参照して、端末１２とサーバ１６との間を送受信される通信データの一例について説明する。
【００２４】
図２に示す例において、下から上に向く矢印は、端末１２からサーバ１６に送信される通信データを示す。端末１２からサーバ１６に送信される通信データは、操作情報を含む。
【００２５】
一方、図２に示す例において、上から下に向く矢印は、サーバ１６から端末１２に送信される通信データを示す。サーバ１６から端末１２に送信される通信データは、描画情報を含む。描画情報は、画面の描画処理の内容を示すコマンドを含む。また、描画情報は、描画処理が新規画面の描画を伴う場合には、描画対象となる画像データを含む。ここで、描画情報は、コマンドが「フレーム送信完了」を示すフレーム送信完了データを含む。フレーム送信完了データは、画面１フレーム分を表示するための描画情報の送信が完了したことを示す。すなわち、１つのフレーム送信完了データと、その次のフレーム送信完了データとの間に送信される描画情報が、１フレーム分の画面を表示するための描画情報に相当する。
【００２６】
本実施形態では、サーバ１６は、端末１２で表示する画面に更新が発生しない場合は、フレーム送信完了データを送信しない。サーバ１６は、次に画面の更新が発生してフレーム送信完了データを送信する際に、フレーム送信完了データが送信されなかったフレーム数を、引数「NoChangeFrame」で指定して送信する。すなわち、引数「NoChangeFrame」は、直前に画面の更新が行われなかったフレーム数を示す。各フレームについてフレーム送信完了データが送信されている場合には、「NoChangeFrame」の値は０である。なお、端末１２とサーバ１６との間を送受信される通信データについては、特開２０１５−０１１６５３号公報に開示されているため、ここでの詳細な説明を省略する。
【００２７】
次に、図３を参照して、本実施形態に係る制御装置１８の機能的な構成を説明する。図３に示すように、制御装置１８は、取得部３０、生成部３２、特定部３４、及び制御部３６を含む。また、制御装置１８の所定の記憶領域には、操作ログ４０、使用アプリログ４２、コネクションリスト４４、学習用入力データ４６、操作モデル４８、特定用入力データ５０、特定後アプリログ５２、及び重要度リスト５４が記憶される。
【００２８】
なお、本実施形態に係る制御装置１８では、機械学習を行って操作モデル４８を生成し、生成した操作モデル４８を用いてアプリケーションの種別を特定する。以下では、機械学習を行って操作モデル４８を生成するフェーズを「学習フェーズ」といい、学習フェーズで生成した操作モデル４８を用いてアプリケーションの種別を特定するフェーズを「運用フェーズ」という。
【００２９】
取得部３０は、学習フェーズにおいて、端末１２とサーバ１６との間を送受信されて、ＮＷスイッチ１４によりミラーリングされた操作情報及び描画情報を取得する。本実施形態では、取得部３０は、学習フェーズとして予め定められた期間（例えば、１時間）の間、操作情報及び描画情報を取得し、操作ログ４０に蓄積して記憶する。
【００３０】
図４に、操作ログ４０の一例を示す。図４に示すように、操作ログ４０としては、日時、端末識別情報、サーバ識別情報、通信種別、コマンド、及びコマンド引数が記憶される。日時には、データが送信された日時が記憶され、端末識別情報には、端末１２のＩＰアドレス及びポート番号が記憶される。また、サーバ識別情報には、サーバ１６のＩＰアドレス及びポート番号が記憶される。また、通信種別には、端末１２からサーバ１６へのリクエスト（図４の例では、「ＲＥＱ」と表記）であるか、又はサーバ１６から端末１２へのレスポンス（図４の例では、「ＲＥＳ」と表記）であるかを示す情報が記憶される。また、コマンドには、データに含まれる指示であるコマンドの内容が記憶され、コマンド引数には、コマンドの引数が記憶される。
【００３１】
図４の例では、端末１２において、図５に示す入力操作及び描画処理が行われた場合の操作ログ４０を示している。なお、図５は、端末１２の表示部に描画された画像の一例を示す概略図である。図５に示すように、図４の例では、端末１２において、ユーザが、ＷｅｂブラウザによりＷｅｂサイトを閲覧している状態で、下矢印キーを押し下げた場合のログを示している。下矢印キーが押し下げられたことによるＷｅｂブラウザのスクロール量に従って、図５の一点鎖線で示す領域Ｒ１がコピーされて下矢印キーが押し下げられる前より上の位置に描画される。さらに、下矢印キーが押し下げられたことによるＷｅｂブラウザのスクロール量に従って、図５の二点鎖線に示す領域Ｒ２が新たに描画される。
【００３２】
また、取得部３０は、運用フェーズにおいても、端末１２とサーバ１６との間を送受信されて、ＮＷスイッチ１４によりミラーリングされた操作情報及び描画情報を取得する。また、取得部３０は、学習フェーズにおいて、所定期間毎に端末１２でユーザにより操作されているアプリケーションに関する情報をサーバ１６から取得する。本実施形態では、取得部３０は、上記アプリケーションに関する情報として、端末１２でアクティブなウィンドウ（例えば、最前面に表示されているウィンドウ）の名称を取得する。なお、取得部３０は、アクティブなウィンドウの名称を、端末１２から取得してもよいし、ＮＷスイッチ１４によりミラーリングされたデータから取得してもよい。
【００３３】
また、取得部３０は、例えば、予め記憶部に記憶しておいたウィンドウの名称とアプリケーションの種別とを対応付けるテーブル等を用いて、取得したウィンドウの名称に対応するアプリケーションの種別を特定する。そして、取得部３０は、端末識別情報及びサーバ識別情報の組み合わせ毎に、特定したアプリケーションの種別を対応付けて、使用アプリログ４２に記憶する。
【００３４】
図６に、使用アプリログ４２の一例を示す。図６に示すように、使用アプリログ４２としては、日時、端末識別情報、サーバ識別情報、及びアプリケーション種別が記憶される。日時には、サーバからアプリケーションに関する情報を取得した日時が記憶される。端末識別情報及びサーバ識別情報には、操作ログ４０の端末識別情報及びサーバ識別情報と同じ情報が記憶される。アプリケーション種別には、前述したように特定されたアプリケーションの種別が記憶される。また、図６の例では、端末識別情報及びサーバ識別情報の組み合わせ毎に、１秒毎にアプリケーションの種別が記憶される。
【００３５】
なお、アプリケーションの種別を特定する手法は、上記の例に限定されない。例えば、取得部３０は、所定間隔でサーバ１６から端末１２でユーザにより操作されているアプリケーションのプロセス名を取得する。そして、取得部３０は、取得したプロセス名に対応するアプリケーションの種別を特定してもよい。
【００３６】
生成部３２は、各フェーズにおいて、操作ログ４０から端末識別情報及びサーバ識別情報の組み合わせを抽出して、コネクションリスト４４に記憶する。生成部３２は、コネクションリスト４４に記憶する際、レコードが重複しないように端末識別情報及びサーバ識別情報の組み合わせを記憶する。図７に、コネクションリスト４４の一例を示す。図７に示すように、コネクションリスト４４としては、操作ログ４０に記憶された端末識別情報及びサーバ識別情報の組み合わせが重複せずに記憶される。なお、以下では、端末識別情報及びサーバ識別情報の組み合わせを「コネクション」ともいう。
【００３７】
また、生成部３２は、学習フェーズにおいて、操作ログ４０、使用アプリログ４２、及びコネクションリスト４４を用いて、学習用入力データ４６を生成する。図８に、学習用入力データ４６の一例を示す。
【００３８】
図８に示すように、生成部３２は、操作ログ４０のコマンド及びコマンド引数を、コネクションリスト４４のコネクション毎に所定期間毎（図８の例では１秒毎）に解析して集計し、キー操作、マウス操作、及び描画サイズを学習用入力データ４６に記憶する。
【００３９】
なお、キー操作は、端末１２でユーザにより所定期間内にキーボードの各キーが押し下げられた回数を示す。また、マウス操作は、端末１２でユーザによってマウスが移動されたことによる所定期間内のマウスカーソルの移動量、及びユーザにより所定期間内にマウスのボタンがクリックされた回数を含む。また、描画サイズは、端末１２での入力操作に応じて、所定期間内に端末１２の表示部で描画処理が行われて表示が更新された描画領域のサイズを示す。
【００４０】
さらに、生成部３２は、使用アプリログ４２を参照し、学習用入力データ４６のコネクション毎に、日時列に記憶された日時に操作されていたアプリケーションの種別を特定し、特定した種別を、学習用入力データ４６のアプリケーション種別に記憶する。
【００４１】
そして、生成部３２は、学習用入力データ４６を用いて機械学習を行うことにより、上記操作情報及び描画領域のサイズを入力とし、アプリケーションの種別を出力とした操作モデル４８を生成する。本実施形態では、一例として、生成部３２は、図８に示したキー操作、マウス操作、及び描画サイズを入力とし、アプリケーション種別を出力とした操作モデル４８を生成する。なお、上記機械学習によるモデル化の手法としては、例えば、ニューラルネットワーク、Support Vector Machine（ＳＶＭ）、ｋ近傍識別器、及びベイズ分類等の公知の手法を適用すればよいため、ここでの詳細な説明は省略する。
【００４２】
図９に、操作モデル４８の一例を示す。図９に示すように、操作モデル４８としては、キー操作、マウス操作、及び描画サイズを、アプリケーション種別に分類して出力するための情報が記憶される。
【００４３】
生成部３２は、運用フェーズにおいて、操作ログ４０及びコネクションリスト４４を用いて、特定用入力データ５０を生成する。図１０に、特定用入力データ５０の一例を示す。図１０に示すように、特定用入力データ５０としては、アプリケーション種別が記憶されない以外は、学習用入力データ４６と同様の情報が記憶される。
【００４４】
生成部３２は、学習フェーズと同様に、操作ログ４０のコマンド及びコマンド引数を、コネクションリスト４４のコネクション毎に所定期間毎に解析して集計し、キー操作、マウス操作、及び描画サイズを特定用入力データ５０に記憶する。
【００４５】
特定部３４は、運用フェーズにおいて、コネクションリスト４４に記憶されているコネクション毎で、かつ上記所定期間毎に、特定用入力データ５０を操作モデル４８に入力する。これにより、特定部３４は、コネクション毎で、かつ上記所定期間毎に、操作モデル４８から出力されたアプリケーション種別を、端末１２で操作されているアプリケーションの種別として特定する。
【００４６】
そして、一例として図１１に示すように、特定部３４は、コネクション毎で、かつ上記所定期間毎に、コネクションと、コネクションに対応する特定したアプリケーションの種別とを、特定後アプリログ５２に記憶する。
【００４７】
制御部３６は、特定部３４により特定されたアプリケーションの種別、及び重要度リスト５４に基づいて、端末１２とサーバ１６との間の通信に関するパラメータを制御する。これにより、制御部３６は、端末１２とサーバ１６との間の通信のQuality of Service（ＱｏＳ）を制御する。図１２に、重要度リスト５４の一例を示す。図１２に示すように、重要度リスト５４としては、アプリケーションの種別毎に予め定められた重要度が記憶される。図１２の例では、ＣＡＤアプリの重要度が電子メールアプリの重要度より高い場合を示している。
【００４８】
本実施形態では、制御部３６は、コネクション毎に、特定部３４により特定されたアプリケーションの種別が変わるたびに、該アプリケーションの種別に対応する重要度に応じて、端末１２とサーバ１６との間の通信に関するパラメータを制御する。具体的には、制御部３６は、上記重要度を端末１２とサーバ１６との間の通信データの優先度に設定することで、重要度の高い通信データが優先して送受信されるように制御する。
【００４９】
図１３に、制御部３６が、管理装置２０を介してＮＷスイッチ１４に設定する優先度を制御するコマンドの一例を示す。なお、図１３では、ＩＰアドレス及びポート番号の組み合わせが、「１０．０．０．１：１０００１」の端末１２から「１０．０．０．２：６０００」のサーバ１６へ送信される通信データの優先度を「９５」に制御するコマンドの例を示している。
【００５０】
制御装置１８は、例えば図１４に示すコンピュータ６０で実現することができる。コンピュータ６０は、Central Processing Unit（ＣＰＵ）６１、一時記憶領域としてのメモリ６２、及び不揮発性の記憶部６３を備える。また、コンピュータ６０は、表示装置及び入力装置等の入出力装置６４を備える。また、コンピュータ６０は、記録媒体６８に対するデータの読み込みと書き込みとを制御するＲｅａｄ／Ｗｒｉｔｅ（Ｒ／Ｗ）部６５、及びネットワークに接続されるネットワークＩ／Ｆ６６を備える。ＣＰＵ６１、メモリ６２、記憶部６３、入出力装置６４、Ｒ／Ｗ部６５、及びネットワークＩ／Ｆ６６は、バス６７を介して互いに接続される。
【００５１】
記憶部６３は、Hard Disk Drive（ＨＤＤ）、Solid State Drive（ＳＳＤ）、フラッシュメモリ等によって実現することができる。記憶媒体としての記憶部６３には、コンピュータ６０を制御装置１８として機能させるための制御プログラム７０が記憶される。制御プログラム７０は、取得プロセス７１、生成プロセス７２、特定プロセス７３、及び制御プロセス７４を有する。また、記憶部６３は、操作ログ４０、使用アプリログ４２、コネクションリスト４４、学習用入力データ４６、操作モデル４８、特定用入力データ５０、特定後アプリログ５２、及び重要度リスト５４が記憶される情報記憶領域７５を有する。
【００５２】
ＣＰＵ６１は、制御プログラム７０を記憶部６３から読み出してメモリ６２に展開し、制御プログラム７０が有するプロセスを実行する。ＣＰＵ６１は、取得プロセス７１を実行することで、図３に示す取得部３０として動作する。ＣＰＵ６１は、生成プロセス７２を実行することで、図３に示す生成部３２として動作する。ＣＰＵ６１は、特定プロセス７３を実行することで、図３に示す特定部３４として動作する。ＣＰＵ６１は、制御プロセス７４を実行することで、図３に示す制御部３６として動作する。これにより、制御プログラム７０を実行したコンピュータ６０が、制御装置１８として機能することになる。
【００５３】
また、制御プログラム７０により実現される機能は、例えば半導体集積回路、より詳しくはApplication Specific Integrated Circuit（ＡＳＩＣ）等で実現することも可能である。
【００５４】
次に、本実施形態に係る制御装置１８の作用を説明する。制御装置１８が制御プログラム７０を実行することで、図１５に示す学習フェーズ処理、及び図１６に示す運用フェーズ処理を実行する。図１５に示す学習フェーズ処理は、例えばユーザにより入出力装置６４の入力装置を介して実行開始の指示が入力された場合等にＣＰＵ６１により実行される。
【００５５】
例えば、ユーザは、記憶部６３に操作モデル４８が記憶されていない場合（すなわち、初回に操作モデル４８を作成する場合）に、上記実行開始の指示を入力する。また、例えば、ユーザは、新たな種別のアプリケーションが追加された場合、及び既存の種別のアプリケーションが削除された場合等、アプリケーションの種別に変更があった場合に、上記実行開始の指示を入力する。また、例えば、ユーザは、端末１２とサーバ１６との間のネットワークの通信帯域、及びサーバ１６の処理性能等に変更があった場合に、上記実行開始の指示を入力する。
【００５６】
また、図１６に示す運用フェーズ処理は、例えばユーザにより入出力装置６４の入力装置を介して実行開始の指示が入力された場合等にＣＰＵ６１により実行される。例えば、ユーザは、学習フェーズ処理の実行が完了した後に、上記実行開始の指示を入力する。なお、例えば、ＣＰＵ６１は、学習フェーズ処理の実行が完了した後に、自動的に運用フェーズ処理を実行してもよい。
【００５７】
図１５に示す学習フェーズ処理のステップＳ１０で、取得部３０は、端末１２とサーバ１６との間を送受信されて、ＮＷスイッチ１４によりミラーリングされた操作情報及び描画情報を取得する。そして、取得部３０は、取得した操作情報及び描画情報を操作ログ４０に記憶する。
【００５８】
次のステップＳ１２で、取得部３０は、前述したように、サーバ１６から端末１２でユーザにより操作されているアプリケーションに関する情報を取得する。そして、取得部３０は、取得したアプリケーションに関する情報に対応するアプリケーションの種別を特定し、端末識別情報及びサーバ識別情報の組み合わせ毎に、特定したアプリケーションの種別を対応付けて、使用アプリログ４２に記憶する。
【００５９】
上記ステップＳ１０及びステップＳ１２の処理が上記学習フェーズとして予め定められた期間の間繰り返されることで、該予め定められた期間の間の操作ログ４０及び使用アプリログ４２が記憶部６３に記憶される。本学習フェーズ処理の実行を開始してから上記学習フェーズとして予め定められた期間を経過するとステップＳ１４の判定が肯定判定となり、処理はステップＳ１６に移行する。
【００６０】
ステップＳ１６で、ステップＳ１０の繰り返し処理により記憶された操作ログ４０から端末識別情報及びサーバ識別情報の組み合わせを抽出して、コネクションリスト４４を生成する。次のステップＳ１８で、生成部３２は、前述したように、操作ログ４０のコマンド及びコマンド引数を、コネクションリスト４４のコネクション毎で、かつ所定期間毎に解析して集計し、キー操作、マウス操作、及び描画サイズを学習用入力データ４６に記憶する。そして、生成部３２は、使用アプリログ４２を参照し、学習用入力データ４６のコネクション毎に、日時列に記憶された日時毎に操作されていたアプリケーションの種別を特定し、特定した種別を、学習用入力データ４６のアプリケーション種別に記憶する。
【００６１】
以下のステップＳ２０の処理は、コネクションリスト４４に記憶された各コネクションを処理対象として繰り返し実行される。また、ステップＳ２０の処理が繰り返し実行される際には、それまでに処理対象としていなかったコネクションを処理対象とする。
【００６２】
ステップＳ２０で、生成部３２は、学習用入力データ４６から処理対象とするコネクションに対応するデータを抽出し、抽出したデータを用いて機械学習を行うことにより、前述した操作モデル４８を生成する。なお、生成部３２は、本ステップＳ２０が繰り返し処理の初回に実行される場合は、生成した操作モデル４８を記憶部６３に新たに記憶する。そして、生成部３２は、本ステップＳ２０が繰り返し処理の２回目以降に実行される場合は、生成した操作モデル４８を記憶部６３に記憶された操作モデル４８に追加して記憶する。
【００６３】
ステップＳ２２で、生成部３２は、コネクションリスト４４の全てのコネクションに対して、ステップＳ２０の処理を実行したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ２０に戻り、肯定判定となった場合は、本学習フェーズ処理が終了する。
【００６４】
一方、図１６に示す運用フェーズ処理のステップＳ３０で、取得部３０は、端末１２とサーバ１６との間を送受信されて、ＮＷスイッチ１４によりミラーリングされた操作情報及び描画情報を取得する。そして、取得部３０は、取得した操作情報及び描画情報を操作ログ４０に記憶する。
【００６５】
上記ステップＳ３０の処理が所定期間の間繰り返し実行されることで、該所定期間の間の操作ログ４０が記憶部６３に記憶される。本実施形態では、学習用入力データ４６が生成される際の集計間隔（本実施形態では１秒）の間、上記ステップＳ３０の処理が繰り返し実行される。ステップＳ３０の処理が所定期間の間繰り返し実行されると、ステップＳ３２の判定が肯定判定となり、処理はステップＳ３４に移行する。
【００６６】
ステップＳ３４で、生成部３２は、ステップＳ３０の繰り返し処理により記憶された操作ログ４０から端末識別情報及びサーバ識別情報の組み合わせを抽出して、コネクションリスト４４を生成する。ステップＳ３６で、生成部３２は、前述したように、操作ログ４０のコマンド及びコマンド引数を、コネクションリスト４４のコネクション毎に解析して集計し、キー操作、マウス操作、及び描画サイズを特定用入力データ５０に記憶する。
【００６７】
以下のステップＳ３８からステップＳ４２までの処理は、コネクションリスト４４に記憶された各コネクションを処理対象として繰り返し実行される。また、ステップＳ３８からステップＳ４２までの処理が繰り返し実行される際には、それまでに処理対象としていなかったコネクションを処理対象とする。
【００６８】
次のステップＳ３８で、特定部３４は、特定用入力データ５０から処理対象とするコネクションに対応するデータを抽出し、抽出したデータを、上記学習フェーズ処理で生成された操作モデル４８に入力する。また、特定部３４は、操作モデル４８から出力されたアプリケーションの種別を、処理対象とするコネクションに対応するアプリケーションの種別と特定する。そして、特定部３４は、日時と、処理対象とするコネクションと、該コネクションに対応する特定したアプリケーションの種別を、特定後アプリログ５２に記憶する。
【００６９】
次のステップＳ４０で、直前のステップＳ３８で特定されたアプリケーションの種別が、前回のステップＳ３８で特定されたアプリケーションの種別から変わっているか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ４４に移行し、肯定判定となった場合は、処理はステップＳ４２に移行する。
【００７０】
ステップＳ４２で、制御部３６は、重要度リスト５４を参照し、ステップＳ３８で特定されたアプリケーションの種別に対応する重要度を取得する。そして、制御部３６は、前述したように、取得した重要度に従って、処理対象とするコネクションの間を送受信される通信データの優先度を制御する。
【００７１】
ステップＳ４４で、制御部３６は、コネクションリスト４４の全てのコネクションに対して、ステップＳ３８からステップＳ４２までの処理を実行したか否かを判定する。この判定が否定判定となった場合は、処理はステップＳ３８に戻り、肯定判定となった場合は、処理はステップＳ３０に戻る。
【００７２】
以上説明したように、本実施形態によれば、学習フェーズにおいて、端末１２で操作されるアプリケーションの種別、及び端末１２での入力操作を示す操作情報を用いて、操作情報を入力とし、アプリケーションの種別を出力とした操作モデル４８を生成する。また、運用フェーズにおいて、取得した端末１２毎の操作情報、及び生成した操作モデル４８を用いて、操作情報に対応するアプリケーションの種別を特定する。そして、特定したアプリケーションの種別に応じて、端末１２とサーバ１６との間で送信される通信データの優先度を制御する。従って、ユーザが端末で使用しているアプリケーションの種別に応じて、端末とサーバとの間の通信に関するパラメータを制御することができる。
【００７３】
また、本実施形態によれば、さらに、入力操作に応じて端末１２の表示部での表示が更新される描画領域のサイズを入力として操作モデル４８を生成する。そして、運用フェーズにおいて取得した操作情報、描画領域のサイズ、及び生成した操作モデル４８を用いて、操作情報及び描画領域のサイズに対応するアプリケーションの種別を特定する。従って、操作情報及び操作モデル４８を用いてアプリケーションの種別を特定する場合に比較して、アプリケーションの種別を精度良く特定することができる。
【００７４】
なお、上記実施形態において、学習フェーズにおいて、描画領域のサイズを用いずに、操作情報及びアプリケーションの種別を用いて、操作情報を入力とし、アプリケーションの種別を出力とした操作モデル４８を生成してもよい。この場合、運用フェーズでは、取得した端末毎の操作情報、及び操作モデル４８を用いて、操作情報に対応するアプリケーションの種別を特定すればよい。
【００７５】
また、上記実施形態において、アプリケーションの種別に代えて、アプリケーションの名称、及びアプリケーションのプロセス名等のアプリケーションを特定可能な他のアプリケーションの情報を用いる形態としてもよい。この場合、アプリケーション毎に、端末１２とサーバ１６との間の通信に関するパラメータを制御する形態が例示される。
【００７６】
また、上記実施形態では、アプリケーションの種別の重要度に従って制御する端末１２とサーバ１６との間の通信に関するパラメータとして、端末１２とサーバ１６との間の通信データの優先度を適用した場合について説明したが、これに限定されない。例えば、上記パラメータとして、端末１２とサーバ１６との間の通信帯域を制御する形態としてもよい。この場合、例えば、重要度が高いアプリケーションほど、端末１２とサーバ１６との間の通信帯域を太くする形態が例示される。
【００７７】
具体的には、例えば、端末１２とサーバ１６とが、１２Megabit per second（Ｍｂｐｓ）及び１００Ｍｂｐｓの２つの通信帯域の通信回線で接続されているものとする。そして、この場合、例えば重要度が所定の閾値以上の種別のアプリケーションが操作されていると特定された端末１２とサーバ１６との間の通信については、１００Ｍｂｐｓの通信回線を使用するように制御する形態が例示される。一方、この場合、重要度が上記閾値未満の種別のアプリケーションが操作されていると特定された端末１２とサーバ１６との間の通信については、１２Ｍｂｐｓの通信回線を使用するように制御する形態が例示される。
【００７８】
図１７に、制御部３６が、管理装置２０を介して端末１２とサーバ１６との間の通信帯域を制御するコマンドの一例を示す。なお、図１７では、ＩＰアドレス及びポート番号の組み合わせが、「１０．０．０．１：１０００１」の端末１２から「１０．０．０．２：６０００」のサーバ１６へ送信される通信データが２番ポートを使用して送信されるよう制御するコマンドの例を示している。このように、例えば、上記通信データが何れの番号のポートを使用するかによって通信帯域が異なるように構成されている場合は、図１７の例のコマンドで、端末１２とサーバ１６間の通信帯域を制御することができる。なお、この場合のポート番号は、物理的なポートの番号でもよいし、仮想的なポートの番号でもよい。
【００７９】
また、例えば、上記パラメータとして、サーバ１６から端末１２へ送信される描画情報に含まれる画像データ、すなわち、端末１２の表示部に表示される画像データの容量を制御する形態としてもよい。この場合、例えば、重要度が高いアプリケーションほど、上記容量を大きくする形態が例示される。また、この場合、例えば、上記画像データの解像度、及び圧縮率等を制御することで、該画像データの容量を制御する形態が例示される。
【００８０】
また、例えば、上記パラメータとして、サーバ１６から端末１２へ送信される描画情報の送信間隔、すなわち、端末１２の表示部で表示される画面のフレームレートを制御する形態としてもよい。この場合、例えば、重要度が高いアプリケーションほど、上記送信間隔を短く、すなわち、上記フレームレートを高くする形態が例示される。
【００８１】
さらに、例えば、アプリケーションの種別の重要度に従って、上記の複数のパラメータのうちの２つ以上のパラメータを制御する形態としてもよい。
【００８２】
また、上記実施形態では、学習フェーズにおいて、コネクション毎に操作モデル４８を生成し、生成した操作モデル４８を蓄積することで１つの操作モデル４８とした場合について説明したが、これに限定されない。例えば、全ての端末１２で使用されるアプリケーションが同じ種別のアプリケーションである場合等には、全てのコネクションのデータが含まれる学習用入力データ４６を用いて機械学習を行うことで、１つの操作モデル４８を生成してもよい。
【００８３】
また、上記実施形態では、アプリケーションの種別毎に上記パラメータを制御する場合について説明したが、これに限定されない。例えば、アプリケーションの種別と、設計作業中、電子メールの作成中、及び電子メールの閲覧中等のアプリケーションを用いて行っている作業内容と、の組み合わせ毎に上記パラメータを制御する形態としてもよい。この場合、重要度リスト５４には、アプリケーションの種別及び作業内容の組み合わせ毎に重要度を記憶する形態が例示される。また、この場合、学習用入力データ４６には、作業内容も記憶する形態が例示される。
【００８４】
また、上記実施形態では、制御プログラム７０が記憶部６３に予め記憶（インストール）されている態様を説明したが、これに限定されない。制御プログラム７０は、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＵＳＢメモリ、メモリカード等の記録媒体に記録された形態で提供することも可能である。
【００８５】
以上の実施形態に関し、更に以下の付記を開示する。
【００８６】
（付記１）
コンピュータに、
学習フェーズにおいて、リモートデスクトップシステムにおけるサーバに接続される端末で操作されるアプリケーションの情報と、前記端末での入力操作を示す操作情報とを用いて、前記操作情報を入力とし、前記アプリケーションの情報を出力とした操作モデルを生成し、
運用フェーズにおいて、取得した前記端末毎の前記操作情報、及び生成した前記操作モデルを用いて、前記操作情報に対応するアプリケーションの情報を特定し、
特定したアプリケーションの情報に応じて、前記端末と前記サーバとの間の通信に関するパラメータを制御する、
ことを含む処理を実行させる制御プログラム。
【００８７】
（付記２）
前記学習フェーズにおいて、さらに、前記入力操作に応じて前記端末の表示部での表示が更新される描画領域のサイズを入力として、前記操作モデルを生成し、
前記運用フェーズにおいて取得した前記操作情報、前記描画領域のサイズ、及び生成した前記操作モデルを用いて、前記操作情報及び前記描画領域のサイズに対応するアプリケーションの情報を特定する、
付記１に記載の制御プログラム。
【００８８】
（付記３）
前記パラメータとして、前記サーバと前記端末との間の通信帯域、前記サーバと前記端末との間の通信データの優先度、前記サーバから前記端末へ送信される描画情報に含まれる画像データの容量、及び前記サーバから前記端末へ送信される描画情報の送信間隔の少なくとも一つを制御する、
付記１又は付記２に記載の制御プログラム。
【００８９】
（付記４）
学習フェーズにおいて、リモートデスクトップシステムにおけるサーバに接続される端末で操作されるアプリケーションの情報と、前記端末での入力操作を示す操作情報とを用いて、前記操作情報を入力とし、前記アプリケーションの情報を出力とした操作モデルを生成する生成部と、
運用フェーズにおいて、取得した前記端末毎の前記操作情報、及び前記生成部により生成された前記操作モデルを用いて、前記操作情報に対応するアプリケーションの情報を特定する特定部と、
前記特定部により特定されたアプリケーションの情報に応じて、前記端末と前記サーバとの間の通信に関するパラメータを制御する制御部と、
を含む制御装置。
【００９０】
（付記５）
前記生成部は、前記学習フェーズにおいて、さらに、前記入力操作に応じて前記端末の表示部での表示が更新される描画領域のサイズを入力として、前記操作モデルを生成し、
前記特定部は、前記運用フェーズにおいて取得した前記操作情報、前記描画領域のサイズ、及び前記生成部により生成された前記操作モデルを用いて、前記操作情報及び前記描画領域のサイズに対応するアプリケーションの情報を特定する、
付記４に記載の制御装置。
【００９１】
（付記６）
前記制御部は、前記パラメータとして、前記サーバと前記端末との間の通信帯域、前記サーバと前記端末との間の通信データの優先度、前記サーバから前記端末へ送信される描画情報に含まれる画像データの容量、及び前記サーバから前記端末へ送信される描画情報の送信間隔の少なくとも一つを制御する、
付記４又は付記５に記載の制御装置。
【００９２】
（付記７）
コンピュータに、
学習フェーズにおいて、リモートデスクトップシステムにおけるサーバに接続される端末で操作されるアプリケーションの情報と、前記端末での入力操作を示す操作情報とを用いて、前記操作情報を入力とし、前記アプリケーションの情報を出力とした操作モデルを生成し、
運用フェーズにおいて、取得した前記端末毎の前記操作情報、及び生成した前記操作モデルを用いて、前記操作情報に対応するアプリケーションの情報を特定し、
特定したアプリケーションの情報に応じて、前記端末と前記サーバとの間の通信に関するパラメータを制御する、
ことを含む処理を実行させる制御方法。
【００９３】
（付記８）
前記学習フェーズにおいて、さらに、前記入力操作に応じて前記端末の表示部での表示が更新される描画領域のサイズを入力として、前記操作モデルを生成し、
前記運用フェーズにおいて取得した前記操作情報、前記描画領域のサイズ、及び生成した前記操作モデルを用いて、前記操作情報及び前記描画領域のサイズに対応するアプリケーションの情報を特定する、
付記７に記載の制御方法。
【００９４】
（付記９）
前記パラメータとして、前記サーバと前記端末との間の通信帯域、前記サーバと前記端末との間の通信データの優先度、前記サーバから前記端末へ送信される描画情報に含まれる画像データの容量、及び前記サーバから前記端末へ送信される描画情報の送信間隔の少なくとも一つを制御する、
付記７又は付記８に記載の制御方法。
【００９５】
（付記１０）
コンピュータに、
学習フェーズにおいて、リモートデスクトップシステムにおけるサーバに接続される端末で操作されるアプリケーションの情報と、前記端末での入力操作を示す操作情報とを用いて、前記操作情報を入力とし、前記アプリケーションの情報を出力とした操作モデルを生成し、
運用フェーズにおいて、取得した前記端末毎の前記操作情報、及び生成した前記操作モデルを用いて、前記操作情報に対応するアプリケーションの情報を特定し、
特定したアプリケーションの情報に応じて、前記端末と前記サーバとの間の通信に関するパラメータを制御する、
ことを含む処理を実行させる制御プログラムを記憶した記憶媒体。
【符号の説明】
【００９６】
１０  リモートデスクトップシステム
１２  端末
１６  サーバ
１８  制御装置
３０  取得部
３２  生成部
３４  特定部
３６  制御部
４０  操作ログ
４２  使用アプリログ
４４  コネクションリスト
４６  学習用入力データ
４８  操作モデル
５０  特定用入力データ
５２  特定後アプリログ
５４  重要度リスト
６１  ＣＰＵ
６２  メモリ
６３  記憶部
６８  記録媒体
７０  制御プログラム
【図１】
2018028766.tif 000003
【図２】
2018028766.tif 000004
【図３】
2018028766.tif 000005
【図４】
2018028766.tif 000006
【図５】
2018028766.tif 000007
【図６】
2018028766.tif 000008
【図７】
2018028766.tif 000009
【図８】
2018028766.tif 000010
【図９】
2018028766.tif 000011
【図１０】
2018028766.tif 000012
【図１１】
2018028766.tif 000013
【図１２】
2018028766.tif 000014
【図１３】
2018028766.tif 000015
【図１４】
2018028766.tif 000016
【図１５】
2018028766.tif 000017
【図１６】
2018028766.tif 000018
【図１７】
2018028766.tif 000019