(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-28
(45)【発行日】2023-03-08
(54)【発明の名称】セッション管理方法、セッション管理装置、プログラム
(51)【国際特許分類】
G06F 9/50 20060101AFI20230301BHJP
H04L 47/125 20220101ALI20230301BHJP
【FI】
G06F9/50 150D
G06F9/50 120Z
H04L47/125
(21)【出願番号】P 2019042430
(22)【出願日】2019-03-08
【審査請求日】2022-02-02
(73)【特許権者】
【識別番号】000232092
【氏名又は名称】NECソリューションイノベータ株式会社
(74)【代理人】
【識別番号】100124811
【氏名又は名称】馬場 資博
(74)【代理人】
【識別番号】100088959
【氏名又は名称】境 廣巳
(74)【代理人】
【識別番号】100097157
【氏名又は名称】桂木 雄二
(74)【代理人】
【識別番号】100187724
【氏名又は名称】唐鎌 睦
(72)【発明者】
【氏名】泉 啓太
【審査官】坂東 博司
(56)【参考文献】
【文献】特開2013-105320(JP,A)
【文献】特開2016-162389(JP,A)
【文献】特開2002-351760(JP,A)
【文献】特開2016-015074(JP,A)
【文献】特開2003-178041(JP,A)
【文献】再公表特許第2013/011624(JP,A1)
【文献】特開2014-099036(JP,A)
【文献】米国特許出願公開第2015/0339145(US,A1)
【文献】米国特許出願公開第2017/0139738(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/50
H04L 47/125
(57)【特許請求の範囲】
【請求項1】
ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置が行うセッション管理方法であって、
前記ユーザと前記デバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集し、
収集した前記ネットワーク使用量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する
セッション管理方法。
【請求項2】
請求項1に記載のセッション管理方法であって、
前記ユーザと前記デバイスの組み合わせごとの前記ネットワーク使用量に基づいて、ネットワークの負荷を示す負荷ランクを前記ユーザと前記デバイスの組み合わせごとに算出し、
算出した前記負荷ランクに基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する
セッション管理方法。
【請求項3】
請求項2に記載のセッション管理方法であって、
前記ネットワーク使用量に基づいて所定期間における前記ネットワーク使用量の平均値を算出し、算出した平均値に基づいて前記負荷ランクを算出する
セッション管理方法。
【請求項4】
請求項2または請求項3に記載のセッション管理方法であって、
前記仮想マシンと接続を確立させた前記デバイスと当該デバイスを操作する前記ユーザの組み合わせに対応する前記負荷ランクに基づいて、前記仮想マシンを有するサーバの負荷を示す割り当て負荷量を算出し、
算出した前記割り当て負荷量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する
セッション管理方法。
【請求項5】
請求項4に記載のセッション管理方法であって、
前記割り当て負荷量が最も少ない前記サーバ上の前記仮想マシンと前記デバイスとの間で接続を確立させる
セッション管理方法。
【請求項6】
請求項4または請求項5に記載のセッション管理方法であって、
前記仮想マシンと前記デバイスとの間の接続を確立させた際、前記デバイスと当該デバイスを操作する前記ユーザの組み合わせに対応する前記負荷ランクを加算することで前記割り当て負荷量を算出する
セッション管理方法。
【請求項7】
請求項4から請求項6までのいずれか1項に記載のセッション管理方法であって、
前記仮想マシンと前記デバイスとの間の接続が切断すると、前記デバイスと当該デバイスを操作する前記ユーザの組み合わせに対応する前記負荷ランクを減算することで前記割り当て負荷量を算出する
セッション管理方法。
【請求項8】
ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置であって、
前記ユーザと前記デバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集するネットワーク使用量収集手段と、
前記ネットワーク使用量収集手段が収集した前記ネットワーク使用量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する管理手段と、
を有する
セッション管理装置。
【請求項9】
請求項8に記載のセッション管理装置であって、
前記ユーザと前記デバイスの組み合わせごとの前記ネットワーク使用量に基づいて、ネットワークの負荷を示す負荷ランクを前記ユーザと前記デバイスの組み合わせごとに算出するネットワーク負荷ランク算出手段を有し、
前記管理手段は、前記ネットワーク負荷ランク算出手段が算出した前記負荷ランクに基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する
セッション管理装置。
【請求項10】
ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置に、
前記ユーザと前記デバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集するネットワーク使用量収集手段と、
前記ネットワーク使用量収集手段が収集した前記ネットワーク使用量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する管理手段と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セッション管理方法、セッション管理装置、プログラムに関する。
【背景技術】
【0002】
遠隔地のサーバ上に仮想的な装置を構築し、手元の端末装置から接続する仮想化システムが知られている。
【0003】
このような仮想化システムでは、セッションブローカーなどのセッション管理装置を用いてセッションの振り分けを行うことで、適切な負荷分散を行うことがある。ここで、仮想化システムにおける負荷分散を行う際に用いられる技術の一例として、例えば、特許文献1がある。特許文献1には、ユーザの特性情報などに基づいてリソースの使用予定量を測定し、測定した結果に基づいてサーバの配置、ディスク領域の割り当てを最適化する負荷分散方法が記載されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載の技術の場合、ユーザの特性情報などに基づいて測定するリソースの使用予定量に基づいて負荷分散を行っている。ここで、端末装置には、スマートフォンやタブレット端末、デスクトップパソコンなど、様々な種類がある。また、使用する端末装置の種類によっては、もっぱらメールチェックのみを行うなどネットワーク通信量の少ない処理を行うこともあれば、CADを利用するなど帯域を広く利用することもある。このように、どの端末装置を使用するかなどユーザの利用形態によって通信量に差が出るおそれがあるものの、特許文献1に記載されているようなユーザの特性情報に基づく測定では端末装置の違いを考慮していない。そのため、特許文献1に記載されているような技術では、適切な負荷分散を行うことが出来ないおそれがあった。
【0006】
そこで、本発明の目的は、利用形態に応じた適切な負荷分散を行うことが難しい、という課題を解決するセッション管理方法、セッション管理装置、プログラムを提供することにある。
【課題を解決するための手段】
【0007】
かかる目的を達成するため本発明の一形態であるセッション管理方法は、
ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置が行うセッション管理方法であって、
前記ユーザと前記デバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集し、
収集した前記ネットワーク使用量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する
という構成をとる。
【0008】
また、本発明の他の形態であるセッション管理装置は、
ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置が、
前記ユーザと前記デバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集するネットワーク使用量収集手段と、
前記ネットワーク使用量収集手段が収集した前記ネットワーク使用量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する管理手段と、
を有する
という構成をとる。
【0009】
また、本発明の他の形態であるプログラムは、
ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置に、
前記ユーザと前記デバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集するネットワーク使用量収集手段と、
前記ネットワーク使用量収集手段が収集した前記ネットワーク使用量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する管理手段と、
を実現させるためのプログラムである。
【発明の効果】
【0010】
本発明は、以上のように構成されることにより、利用形態に応じた適切な負荷分散を行うことが難しい、という課題を解決するセッション管理方法、セッション管理装置、プログラムを提供することが可能となる。
【図面の簡単な説明】
【0011】
【
図1】本発明の第1の実施形態におけるシステムの全体の構成の一例を示すブロック図である。
【
図2】
図1で示すクライアントマシンの一例を示す図である。
【
図3】
図1で示すデータベースに格納されるテーブルの一例を示す図である。
【
図4】
図3で示すクライアント情報管理テーブルの一例を示す図である。
【
図5】
図3で示すネットワーク負荷実績管理テーブルの一例を示す図である。
【
図6】
図3で示すセッション情報管理テーブルの一例を示す図である。
【
図7】本発明の第1の実施形態においてネットワーク使用量を収集する際の処理の一例を示すフローチャートである。
【
図8】本発明の第1の実施形態において負荷ランクを算出する際の処理の一例を示すフローチャートである。
【
図9】本発明の第1の実施形態においてセッション割り当てを行う際の処理の一例を示すフローチャートである。
【
図10】システムの他の構成例を示すブロック図である。
【
図11】
図10で示すデータベースに格納されるテーブルの一例を示す図である。
【
図12】
図11で示すネットワーク環境管理テーブルの一例を示す図である。
【
図13】本発明の第2の実施形態において説明するセッション管理装置の構成の一例を示すブロック図である。
【発明を実施するための形態】
【0012】
[第1の実施形態]
本発明の第1の実施形態を
図1から
図11までを参照して説明する。
図1は、第1の実施形態におけるシステムの全体の構成の一例を示すブロック図である。
図2は、クライアントマシン100の一例を示す図である。
図3は、データベース210に格納されるテーブルの一例を示す図である。
図4は、クライアント情報管理テーブル211の一例を示す図である。
図5は、ネットワーク負荷実績管理テーブル212の一例を示す図である。
図6は、セッション情報管理テーブル213の一例を示す図である。
図7は、ネットワーク使用量を収集する際の処理の一例を示すフローチャートである。
図8は、負荷ランクを算出する際の処理の一例を示すフローチャートである。
図9は、セッション割り当てを行う際の処理の一例を示すフローチャートである。
図10は、システムの他の構成例を示すブロック図である。
図11は、データベース410に格納されるテーブルの一例を示す図である。
図12は、ネットワーク環境管理テーブル414の一例を示す図である。
【0013】
本発明の第1の実施形態においては、クライアントマシン100から仮想デスクトップマシン320への接続要求に対して、セッションブローカー220がセッションの振り分けを行うシステムについて説明する。本実施形態においては、クライアントマシン100と仮想デスクトップマシン320との間のセッション紐づけは流動的であり、接続要求のたびにセッションブローカー220によりセッションの振り分けが行われる。また、仮想デスクトップマシン320は、複数台の仮想デスクトップマシン格納用サーバ300に分散配置されている。本実施形態の場合、後述するように、セッションブローカー220は、ユーザ×デバイス単位で、データの転送量などを示すネットワーク使用量を収集する。そして、セッションブローカー220は、収集したユーザ×デバイス単位のネットワーク使用量に基づいて負荷ランクを算出し、算出した結果に基づいて仮想デスクトップマシン320を有する仮想デスクトップマシン格納用サーバ300の負荷を管理する。また、セッションブローカー220は、ユーザ×デバイス単位のネットワーク使用量に基づいて算出される負荷ランクに応じた管理の結果に基づいて、セッションの振り分けを行う。
【0014】
図1は、システム全体の構成の一例を示している。
図1を参照すると、システムは、クライアントマシン100と管理サーバ200と仮想デスクトップマシン格納用サーバ300とを有している。
図1で示すように、クライアントマシン100と管理サーバ200とは、互いに通信可能なよう接続されている。また、管理サーバ200と仮想デスクトップマシン格納用サーバ300とは、互いに通信可能なよう接続されている。また、クライアントマシン100と仮想デスクトップマシン格納用サーバ300とは、互いに通信可能なよう接続することが出来る。
【0015】
なお、
図1では、システム全体の構成の一例を示している。従って、システム全体の構成は、
図1で示す場合に限定されない。例えば、システムは、2以上の複数の仮想デスクトップマシン格納用サーバ300を有することが出来る。また、管理サーバ200の構成は、1台の情報処理装置により実現されても構わないし、複数台の情報処理装置により実現されても構わない。
【0016】
クライアントマシン100は、仮想デスクトップマシン320との接続を要求する接続要求を管理サーバ200に対して送信する情報処理装置、端末装置である。
【0017】
図2は、クライアントマシン100の一例を示している。
図2で示すように、クライアントマシン100は、ユーザ×デバイス(ユーザとデバイス)の組み合わせをシステムの利用単位と定義して構成される。従って、本実施形態の場合、例えば、同一のデバイスであったとしてもデバイスを使用するユーザが異なる場合、異なるクライアントマシン100であるものとする。同様に、同一のユーザであったとしても操作するデバイスが異なる場合、異なるクライアントマシン100であるものとする。つまり、
図2で示すように、ユーザAがデバイス1を使用している状態であるユーザA×デバイス1とユーザBがデバイス1を使用している状態であるユーザB×デバイス1とでは、異なるクライアントマシン100であるものとする。同様に、ユーザA×デバイス1とユーザA×デバイス2も異なるクライアントマシン100であるものとする。
【0018】
このように、本実施形態の場合、ユーザは1台以上の複数種類のデバイスを用いて仮想デスクトップマシン320にアクセスする。なお、デバイスには、スマートフォン、タブレット端末、デスクトップパソコン、その他の情報処理装置など既存の情報処理装置が含まれる。デバイスには、上記例示した以外のものを含んでも構わない。
【0019】
管理サーバ200は、クライアントマシン100と仮想デスクトップマシン格納用サーバ300との間の接続を管理するセッション管理装置である。
図1を参照すると、管理サーバ200は、セッション振り分けに利用する情報を管理するデータベース210と、クライアントマシン100から仮想デスクトップマシン320への接続要求に対してセッション振り分けを行うセッションブローカー220と、から構成される。
【0020】
データベース210は、管理サーバ200が有する記憶装置に構築されている。データベース210には、セッション振り分けに利用する情報が格納される。
図3は、データベース210に格納される情報の一例を示している。
図3を参照すると、データベース210には、例えば、クライアント情報管理テーブル211と、ネットワーク負荷実績管理テーブル212と、セッション情報管理テーブル213と、が含まれている。
【0021】
クライアント情報管理テーブル211は、ユーザ×デバイスの組み合わせごとにネットワークに与える負荷を示す負荷ランクを管理するテーブルである。クライアント情報管理テーブル211は、ネットワーク負荷ランク算出手段222が負荷ランクを算出した際などに更新される。
【0022】
図4は、クライアント情報管理テーブル211の一例を示している。
図4を参照すると、クライアント情報管理テーブル211では、例えば、識別情報であるIDと、ユーザ×デバイスの組み合わせを示す情報と、ネットワーク使用量の平均値を示す情報と、負荷ランクを示す情報と、が対応づけられている。具体的には、
図4の1行目では、ID「1」、組み合わせ「ユーザA×デバイス1」、ネットワーク使用量の平均値「30kbps」、負荷ランク「3」、が対応づけられている。これは、組み合わせ「ユーザA×デバイス1」のある週のネットワーク使用量の平均値が「30kbps」であり、負荷ランクが「3」であることを示している。
【0023】
ネットワーク負荷実績管理テーブル212は、ユーザ×デバイスの組み合わせごとに、クライアントマシン100と仮想デスクトップマシン320との間のネットワーク負荷の実績値を管理するテーブルである。ネットワーク負荷実績管理テーブル212は、ネットワーク使用量収集手段221がネットワーク使用量を収集した際などに更新される。
【0024】
図5は、ネットワーク負荷実績管理テーブル212の一例を示している。
図5を参照すると、ネットワーク負荷実績管理テーブル212では、例えば、識別情報であるIDと、ユーザ×デバイスの組み合わせを示す情報と、ネットワーク使用量を収集した日時を示す情報と、ネットワーク使用量を示す情報と、が対応づけられている。具体的には、
図5の1行目では、ID「1」、組み合わせ「ユーザA×デバイス1」、日時「2018/10/1 9:00」、ネットワーク使用量「30kbps」、が対応づけられている。これは、組み合わせ「ユーザA×デバイス1」の日時「2018/10/1 9:00」におけるネットワーク使用量が「30kbps」であったことを示している。
【0025】
セッション情報管理テーブル213は、仮想デスクトップマシン格納用サーバ300にかかっている負荷を示す割り当て負荷量を管理するテーブルである。セッション情報管理テーブル213は、セッション振り分け手段223がセッションを振り分けた際や、セッションが切断された際などに更新される。
【0026】
図6は、セッション情報管理テーブル213の一例を示している。
図6を参照すると、セッション情報管理テーブル213では、例えば、仮想デスクトップマシン格納用サーバ300を示す情報と、対応する仮想デスクトップマシン格納用サーバ300に割り当てられている負荷量を示す割り当て負荷量と、が対応づけられている。具体的には、
図6の1行目では、サーバ「1」、割り当て負荷量「10」、が対応づけられている。これは、「1」の仮想デスクトップマシン格納用サーバ300にかかっている負荷が「10」であることを示している。
【0027】
セッションブローカー220は、クライアントマシン100と仮想デスクトップマシン320との間の接続を管理する。例えば、セッションブローカー220は、クライアントマシン100からの接続要求に応じて、ユーザ×デバイス単位のネットワーク使用量に基づいて算出される負荷ランクに応じた管理の結果に基づいて、セッションの振り分けを行う。つまり、セッションブローカー220は、接続要求に応じてクライアントマシン100と接続する仮想デスクトップマシン320を選択して、クライアントマシン100と仮想デスクトップマシン320との間の接続を確立させる。
図1を参照すると、セッションブローカー220は、ネットワーク使用量収集手段221と、ネットワーク負荷ランク算出手段222と、セッション振り分け手段223と、を有している。
【0028】
例えば、管理サーバ200は、CPU(Central Processing Unit)などの演算装置と記憶装置とを有している。例えば、管理サーバ200は、記憶装置が記憶するプログラムを演算装置が実行することで、セッションブローカー220が有する各機能を実現する。
【0029】
ネットワーク使用量収集手段221は、クライアントマシン100、仮想デスクトップマシン320間のネットワーク使用量を収集する。そして、ネットワーク使用量収集手段221は、収集したネットワーク使用量をネットワーク負荷実績管理テーブル212に格納する。例えば、ネットワーク使用量収集手段221は、ネットワーク使用量を収集すると、ネットワーク使用量を収集したユーザ×デバイスの組み合わせを示す情報と、ネットワーク使用量を収集した日時を示す情報と、収集したネットワーク使用量を示す情報と、を対応づけて、ネットワーク負荷実績管理テーブル212に格納する。
【0030】
本実施形態の場合、ネットワーク使用量収集手段221は、ユーザ×デバイスのセッション単位でネットワーク使用量を収集する。例えば、ネットワーク使用量収集手段221は、クライアントマシン100がユーザA×デバイス1、ユーザA×デバイス2、ユーザB×デバイス1、…、それぞれの場合におけるネットワーク使用量を区別して収集する。
【0031】
なお、本実施形態においては、ネットワーク使用量収集手段221がネットワーク使用量を収集するタイミングは特に限定しない。例えば、ネットワーク使用量収集手段221は、ユーザがログインしてからログアウトするまで常にネットワーク使用量を収集し続けるよう構成しても構わない。また、ネットワーク使用量収集手段221は、例えば、ピーク時間帯など予め定められた時間帯のみネットワーク使用量を収集するよう構成しても構わない。このように、ネットワーク使用量収集手段221は、任意のタイミングでネットワーク使用量を収集するよう構成することが出来る。
【0032】
ネットワーク負荷ランク算出手段222は、ネットワーク使用量収集手段221が収取したネットワーク使用量に基づいて、ユーザ×デバイスの組み合わせごとに負荷ランクを算出する。例えば、ネットワーク負荷ランク算出手段222は、ネットワーク使用量収集手段221が収取したネットワーク使用量に基づいてネットワーク使用量の平均値を算出するとともに、算出した平均値に基づいて負荷ランクを算出する。そして、ネットワーク負荷ランク算出手段222は、収集した負荷ランクをクライアント情報管理テーブル211に格納する。例えば、ネットワーク負荷ランク算出手段222は、負荷ランクを算出したユーザ×デバイスの組み合わせを示す情報と、算出したネットワーク使用量の平均値を示す情報と、算出した負荷ランクを示す情報と、を対応づけて、クライアント情報管理テーブル211に格納する。
【0033】
例えば、ネットワーク負荷ランク算出手段222は、ネットワーク負荷実績管理テーブル212を参照して、所定期間(例えば、1週間など。任意の期間で構わない)のネットワーク使用量をユーザ×デバイスの組み合わせごとに取得する。そして、ネットワーク負荷ランク算出手段222は、任意の評価式を用いて負荷ランクを算出する。例えば、ネットワーク負荷ランク算出手段222は、所定期間のネットワーク使用量に基づいて、所定期間におけるネットワーク使用量の平均値を算出する。そして、ネットワーク負荷ランク算出手段222は、算出したネットワーク使用量の平均値に基づいて負荷ランクを算出する。例えば、ネットワーク負荷ランク算出手段222は、ネットワーク使用量の平均値の範囲と、範囲に対応する負荷ランクと、を対応づけた情報を有している。そして、ネットワーク負荷ランク算出手段222は、当該情報を参照して、算出したネットワーク使用量の平均値が属する範囲を特定するとともに、特定した範囲と対応付けられた負荷ランクを特定する。例えば、このような方法により、ネットワーク負荷ランク算出手段222は、ネットワーク使用量に基づいて負荷ランクを算出する。
【0034】
具体的には、例えば、ネットワーク使用量の平均値が「10kbps以上「0kbps未満」で負荷ランク「1」、「20kbps以上30kbps未満」で負荷ランク「2」、「30kbps以上」で負荷ランク「3」が対応づけられているとする。また、ネットワーク負荷ランク算出手段222は、例えば、「ユーザA×デバイス1」の組み合わせのネットワーク使用量の平均値として、「30kbps」を算出したとする。この場合、ネットワーク負荷ランク算出手段222は、算出した平均値が「30kbps以上」の範囲に属するため、負荷ランク「3」を特定する。
【0035】
なお、ネットワーク負荷ランク算出手段222の処理は、上記例示した場合に限定されない。例えば、ネットワーク負荷ランク算出手段222は、最頻値や中央値などの平均値以外の値を算出して負荷ランクを算出するよう構成しても構わない。また、ネットワーク負荷ランク算出手段222は、例えば、ネットワーク負荷実績管理テーブル212に含まれる情報のうち、ユーザがログインしてからログアウトするまでの全ての情報に基づいて平均値などを算出するよう構成しても構わないし、ピーク時間帯内の情報のみを抽出するなどネットワーク負荷実績管理テーブル212に含まれる情報の一部を抽出して平均値などを算出するよう構成しても構わない。また、ネットワーク負荷実績管理テーブル212は、例えば、予め定められた時間帯ごとの平均値などを算出し、時間帯ごとの負荷ランクを算出するよう構成しても構わない。また、ネットワーク負荷ランク算出手段222は、算出した平均値などをそのまま負荷ランクにするなど、例示した以外の方法により負荷ランクを算出するよう構成しても構わない。
【0036】
また、ネットワーク負荷ランク算出手段222は、任意のタイミングで負荷ランクを算出するよう構成して構わない。例えば、ネットワーク負荷ランク算出手段222は、予め定められた期間ごとに定期的に負荷ランクを算出するよう構成することが出来る。
【0037】
セッション振り分け手段223は、ネットワーク負荷状況を管理する管理手段として機能するとともに、ネットワーク負荷を考慮してセッションの振り分けを行う。例えば、セッション振り分け手段223は、ネットワーク負荷ランク算出手段222が算出した負荷ランクを用いて管理するネットワーク負荷を考慮してセッションの振り分けを行う。
【0038】
例えば、クライアントマシン100から接続要求を受信すると、セッション振り分け手段223は、セッション情報管理テーブル213を参照する。そして、セッション振り分け手段223は、セッション情報管理テーブル213に基づいて、割り当て負荷量が最も少ない仮想デスクトップマシン格納用サーバ300上の仮想デスクトップマシン320へセッションを割り当てることを決定する。これにより、クライアントマシン100と、セッション振り分け手段223が決定した仮想デスクトップマシン格納用サーバ300上の仮想デスクトップマシン320との間でセッションが確立する。
【0039】
また、セッション振り分け手段223は、クライアント情報管理テーブル211を参照して、接続要求送信元のクライアントマシン100(ユーザ×デバイス)に対応する負荷ランクを取得する。そして、セッション振り分け手段223は、セッション情報管理テーブル213にて、割り当てを決定した仮想デスクトップマシン格納用サーバ300に対応する割り当て負荷量に取得した負荷ランクを加算する。例えば、このように、セッション振り分け手段223は、クライアントマシン100(ユーザ×デバイス)に対応する負荷ランクに応じた値を加算することで、仮想デスクトップマシン格納用サーバ300の負荷を管理する。
【0040】
また、クライアントマシン100と仮想デスクトップマシン320との間のセッション断後、セッション振り分け手段223は、ユーザ×デバイスに対応する負荷ランクを、セッション情報管理テーブル213にて割り当てた仮想デスクトップマシン格納用サーバ300の割り当て負荷量から減算する。例えば、このように、セッション振り分け手段223は、セッションの切断に応じて加算した値を減算することで、セッションの状態に応じた管理を行う。
【0041】
なお、新たなユーザ×デバイスの組み合わせで接続要求があった場合などにおいて、クライアント情報管理テーブル211に対応する負荷ランクが格納されていない場合がある。この場合、セッション振り分け手段223は、任意の値を仮想デスクトップマシン格納用サーバ300に対応する割り当て負荷量に加算するよう構成して構わない。例えば、セッション振り分け手段223は、中間の負荷ランクの値を加算するよう構成することが出来る。または、セッション振り分け手段223は、同一のユーザでデバイスが異なる場合の負荷ランクや同一のデバイスでユーザが異なる場合の負荷ランクに基づいて(例えば、負荷ランクの平均値など)、加算処理を行うよう構成しても構わない。または、セッション振り分け手段223は、その他予め与えられた値などを加算するよう構成しても構わない。
【0042】
また、セッション振り分け手段223は、セッション情報管理テーブル213が示す情報とその他の情報とを組み合わせて、割り当てる仮想デスクトップマシン格納用サーバ300を決定するよう構成しても構わない。例えば、セッション振り分け手段223は、仮想デスクトップマシン格納用サーバ300のCPUの負荷を示す情報などその他負荷を情報と組み合わせて、割り当てる仮想デスクトップマシン格納用サーバ300を決定するよう構成しても構わない。
【0043】
また、セッション振り分け手段223は、負荷ランクそのものを加算するのではなく、負荷ランクの半分の値を加算するなど、負荷ランクに応じた値を加算するよう構成しても構わない。また、セッション振り分け手段223は、加算以外の方法により、負荷ランクに応じた負荷の状況を管理するよう構成しても構わない。
【0044】
仮想デスクトップマシン格納用サーバ300上には、ハイパーバイザー310を基盤として、複数の仮想デスクトップマシン320が構築される。本実施形態においては、仮想デスクトップマシン格納用サーバ300上に構築する仮想デスクトップマシン320の構築方法については特に限定しない。例えば、仮想デスクトップマシン320は、仮想デスクトップマシン格納用サーバ300上で動作するホストOS上に構築されても構わない。
【0045】
以上が、システムの構成の一例である。続いて、
図7から
図9までを参照して、管理サーバ200の動作の一例について説明する。
【0046】
まず、
図7を参照して、ネットワーク使用量収集手段221がネットワーク使用量を収集する際の動作の一例について説明する。なお、ネットワーク使用量収集手段221は、下記の動作をユーザ×デバイスのセッション単位で実施する。
【0047】
図7を参照すると、ネットワーク使用量収集手段221は、クライアントマシン100と仮想デスクトップマシン320の間のネットワーク使用量を収集する(ステップS101)。
【0048】
ネットワーク使用量収集手段221は、収集したデータをユーザ×デバイスと収集日時、ネットワーク使用量で関連付けして、ネットワーク負荷実績管理テーブル212に格納する(ステップS102)。
【0049】
所定時間の経過後、ステップS101の処理に戻る(ステップS103)。このように、ネットワーク使用量収集手段221は、上記の処理を所定時間(任意の時間で構わない)ごとに繰り返し行う。
【0050】
続いて、
図8を参照して、ネットワーク負荷ランク算出手段222が負荷ランクを算出する際の動作の一例について説明する。なお、ネットワーク負荷ランク算出手段222は、下記の動作をユーザ×デバイス単位で実施する。
【0051】
図8を参照すると、ネットワーク負荷ランク算出手段222は、データベース210のネットワーク負荷実績管理テーブル212から所定期間のユーザ×デバイスのネットワーク使用量を抽出する(ステップS201)。
【0052】
ネットワーク負荷ランク算出手段222は、任意の評価式を用いて抽出したネットワーク使用量からユーザ×デバイスの負荷ランクを計算する(ステップS202)。例えば、ネットワーク負荷ランク算出手段222は、ネットワーク使用量の平均値を算出するとともに、算出した平均値の属する範囲に基づいて負荷ランクを算出する。
【0053】
ネットワーク負荷ランク算出手段222は、算出した負荷ランクをユーザ×デバイスと関連付けしてデータベース210のクライアント情報管理テーブル211に格納する(ステップS203)。
【0054】
所定時間の経過後、ステップS201の処理に戻る(ステップS204)。このように、ネットワーク負荷ランク算出手段222は、上記の処理を所定時間(任意の時間で構わない)ごとに繰り返し行う。
【0055】
続いて、
図9を参照して、セッション振り分け手段223が接続要求を受信した際の動作の一例について説明する。
【0056】
図9を参照すると、セッション振り分け手段223は、クライアントマシン100から接続要求を受信する(ステップS301)。
【0057】
セッション振り分け手段223は、クライアント情報管理テーブル211から利用ユーザ×デバイスに対応する負荷ランクを取得する。また、セッション振り分け手段223は、セッション情報管理テーブル213から仮想デスクトップマシン格納用サーバ300の割り当て負荷量を示す情報を取得する(ステップS302)。
【0058】
セッション振り分け手段223は、最も割り当て負荷量が少ない仮想デスクトップマシン格納用サーバ300上の仮想デスクトップマシン320へセッションを割り当てる(ステップS303)。
【0059】
セッション振り分け手段223は、ユーザ×デバイスに対応する負荷ランクを、セッション情報管理テーブル213にて割り当てた仮想デスクトップマシン格納用サーバ300の割り当て負荷量に加算する(ステップS304)。
【0060】
その後、クライアントマシン100と仮想デスクトップマシン320との間のセッションが切断される。セッション切断後、セッション振り分け手段223は、ユーザ×デバイスに対応する負荷ランクを、セッション情報管理テーブル213にて割り当てた仮想デスクトップマシン格納用サーバ300の割り当て負荷量から減算する(ステップS305)。
【0061】
このように、セッションブローカー220は、ネットワーク使用量収集手段221とネットワーク負荷ランク算出手段222とセッション振り分け手段223とを有している。また、ネットワーク使用量収集手段221は、ユーザ×デバイスのセッション単位でネットワーク使用量を収集するよう構成されている。このような構成により、ネットワーク負荷ランク算出手段222は、ネットワーク使用量収集手段221が収集したユーザ×デバイス単位で負荷ランクを算出することが出来る。その結果、セッション振り分け手段223は、ネットワーク負荷ランク算出手段222が算出したユーザ×デバイス単位での負荷ランクを用いて管理するネットワーク負荷を考慮してセッションの振り分けを行うことが出来る。これにより、ユーザとデバイスの組み合わせの違いを考慮したセッション振り分けを行うことが可能となり、利用形態に応じた適切な負荷分散を行うことが可能となる。
【0062】
ここで、本実施形態で説明したシステムの他の構成例について説明する。
図10は、仮想デスクトップマシン格納用サーバ300がサーバごとに異なるネットワーク強度で構成されている場合の例を示している。
図10を参照すると、上記のような構成の場合、システムは、
図1を参照して説明した管理サーバ200の代わりに管理サーバ400を有している。
【0063】
管理サーバ400の構成は、概ね管理サーバ200と同等の構成を有しているが、データベース210の代わりにデータベース410を有している。
図11を参照すると、データベース410には、例えば、クライアント情報管理テーブル211と、ネットワーク負荷実績管理テーブル212と、セッション情報管理テーブル213と、ネットワーク環境管理テーブル414と、が含まれている。
【0064】
クライアント情報管理テーブル211と、ネットワーク負荷実績管理テーブル212と、セッション情報管理テーブル213と、は、既に説明したものと同一のテーブルである。ネットワーク環境管理テーブル414は、仮想デスクトップマシン格納用サーバ300ごとのネットワークの強度を示すネットワーク強度を格納するテーブルである。ネットワーク強度は、ネットワークの安定性、輻輳のしやすさ、速度、などに応じて予め算出されている。ネットワーク強度の具体的な算出方法は、本実施形態においては特に限定しない。
【0065】
図12は、ネットワーク環境管理テーブル414の一例を示している。
図12を参照すると、ネットワーク環境管理テーブル414では、例えば、仮想デスクトップマシン格納用サーバ300を示すサーバと、ネットワーク強度と、が対応づけられている。
【0066】
上記のような構成により、セッション振り分け手段223は、セッション割り当て後に負荷ランクを割り当て負荷量に加算する際、ネットワーク環境管理テーブル414に格納された対応するサーバのネットワーク強度を考慮することが出来る。例えば、セッション振り分け手段223は、負荷ランクとともにネットワーク強度を割り当て負荷量に応じた値を加算するよう構成しても構わないし、ネットワーク強度に基づいて調整した負荷ランクを割り当て負荷量に加算するよう構成しても構わない。このように、ネットワーク環境管理テーブル414を有することで、セッション振り分け手段223は、負荷ランクとネットワーク強度とに基づいて、ネットワーク負荷を管理してネットワーク負荷を分散せることが可能となる。
【0067】
[第2の実施形態]
次に、
図13を参照して、本発明の第2の実施形態について説明する。第2の実施形態では、セッション管理装置50の構成について説明する。
【0068】
セッション管理装置50は、ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理する。
図13は、セッション管理装置50の構成の一例を示している。
図13を参照すると、セッション管理装置50は、例えば、ネットワーク使用量収集手段51と、管理手段52と、を有している。
【0069】
例えば、セッション管理装置50は、CPUなどの演算装置と記憶装置とを有している。例えば、セッション管理装置50は、記憶装置が記憶するプログラムを演算装置が実行することで、上述した各手段を実現する。
【0070】
ネットワーク使用量収集手段51は、ユーザとデバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集する。つまり、ネットワーク使用量収集手段51は、同一のユーザでも使用するデバイスが異なる場合や同一のデバイスでも使用するユーザが異なる場合をそれぞれ区別して、ネットワーク使用量を収集する。
【0071】
管理手段52は、ネットワーク使用量収集手段51が収集したネットワーク使用量に基づいて、デバイスと仮想マシンとの間の接続を管理する。
【0072】
このように、セッション管理装置50は、ネットワーク使用量収集手段51と管理手段52とを有している。このような構成により、管理手段52は、ネットワーク使用量収集手段51がユーザとデバイスの組み合わせごとに収集したネットワーク使用量に基づいて、デバイスと仮想マシンとの間の接続を管理することが出来る。これにより、ユーザとデバイスの組み合わせの違いを考慮した接続の管理を行うことが可能となり、利用形態に応じた適切な負荷分散を行うことが可能となる。
【0073】
また、上述したセッション管理装置50は、当該セッション管理装置50に所定のプログラムが組み込まれることで実現できる。具体的に、本発明の他の形態であるプログラムは、ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置50に、ユーザとデバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集するネットワーク使用量収集手段51と、ネットワーク使用量収集手段51が収集したネットワーク使用量に基づいて、デバイスと仮想マシンとの間の接続を管理する管理手段52とを実現させるためのプログラムである。
【0074】
また、上述したセッション管理装置50により実行されるセッション管理方法は、ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置が行うセッション管理方法であって、ユーザとデバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集し、収集したネットワーク使用量に基づいて、デバイスと仮想マシンとの間の接続を管理する、という方法である。
【0075】
上述した構成を有する、プログラム、又は、セッション管理方法、の発明であっても、上述したセッション管理装置50と同様の作用・効果を有するために、上述した本発明の目的を達成することが出来る。
【0076】
<付記>
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるセッション管理方法などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【0077】
(付記1)
ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置が行うセッション管理方法であって、
前記ユーザと前記デバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集し、
収集した前記ネットワーク使用量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する
セッション管理方法。
(付記2)
付記1に記載のセッション管理方法であって、
前記ユーザと前記デバイスの組み合わせごとの前記ネットワーク使用量に基づいて、ネットワークの負荷を示す負荷ランクを前記ユーザと前記デバイスの組み合わせごとに算出し、
算出した前記負荷ランクに基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する
セッション管理方法。
(付記3)
付記2に記載のセッション管理方法であって、
前記ネットワーク使用量に基づいて所定期間における前記ネットワーク使用量の平均値を算出し、算出した平均値に基づいて前記負荷ランクを算出する
セッション管理方法。
(付記4)
付記2または付記3に記載のセッション管理方法であって、
前記仮想マシンと接続を確立させた前記デバイスと当該デバイスを操作する前記ユーザの組み合わせに対応する前記負荷ランクに基づいて、前記仮想マシンを有するサーバの負荷を示す割り当て負荷量を算出し、
算出した前記割り当て負荷量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する
セッション管理方法。
(付記5)
付記4に記載のセッション管理方法であって、
前記割り当て負荷量が最も少ない前記サーバ上の前記仮想マシンと前記デバイスとの間で接続を確立させる
セッション管理方法。
(付記6)
付記4または付記5に記載のセッション管理方法であって、
前記仮想マシンと前記デバイスとの間の接続を確立させた際、前記デバイスと当該デバイスを操作する前記ユーザの組み合わせに対応する前記負荷ランクを加算することで前記割り当て負荷量を算出する
セッション管理方法。
(付記7)
付記4から付記6までのいずれか1項に記載のセッション管理方法であって、
前記仮想マシンと前記デバイスとの間の接続が切断すると、前記デバイスと当該デバイスを操作する前記ユーザの組み合わせに対応する前記負荷ランクを減算することで前記割り当て負荷量を算出する
セッション管理方法。
(付記8)
ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置であって、
前記ユーザと前記デバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集するネットワーク使用量収集手段と、
前記ネットワーク使用量収集手段が収集した前記ネットワーク使用量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する管理手段と、
を有する
セッション管理装置。
(付記9)
付記8に記載のセッション管理装置であって、
前記ユーザと前記デバイスの組み合わせごとの前記ネットワーク使用量に基づいて、ネットワークの負荷を示す負荷ランクを前記ユーザと前記デバイスの組み合わせごとに算出するネットワーク負荷ランク算出手段を有し、
前記管理手段は、前記ネットワーク負荷ランク算出手段が算出した前記負荷ランクに基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する
セッション管理装置。
(付記10)
ユーザが操作するデバイスと、仮想マシンと、の間の接続を管理するセッション管理装置に、
前記ユーザと前記デバイスの組み合わせごとにネットワークの使用量を示すネットワーク使用量を収集するネットワーク使用量収集手段と、
前記ネットワーク使用量収集手段が収集した前記ネットワーク使用量に基づいて、前記デバイスと前記仮想マシンとの間の接続を管理する管理手段と、
を実現させるためのプログラム。
【0078】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【0079】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【0080】
100 クライアントマシン
200 管理サーバ
210 データベース
211 クライアント情報管理テーブル
212 ネットワーク負荷実績管理テーブル
213 セッション情報管理テーブル
220 セッションブローカー
221 ネットワーク使用量収集手段
222 ネットワーク負荷ランク算出手段
223 セッション振り分け手段
300 仮想デスクトップマシン格納用サーバ
310 ハイパーバイザー
320 仮想デスクトップマシン
400 管理サーバ
410 データベース
414 ネットワーク環境管理テーブル
50 セッション管理装置
51 ネットワーク使用量収集手段
52 管理手段