(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5738870
(24)【登録日】2015年5月1日
(45)【発行日】2015年6月24日
(54)【発明の名称】クライアントサーバシステム
(51)【国際特許分類】
G06F 13/00 20060101AFI20150604BHJP
G06F 9/46 20060101ALI20150604BHJP
G06F 9/50 20060101ALI20150604BHJP
【FI】
G06F13/00 510G
G06F9/46 350
G06F9/46 465A
【請求項の数】24
【全頁数】18
(21)【出願番号】特願2012-533163(P2012-533163)
(86)(22)【出願日】2010年11月5日
(65)【公表番号】特表2013-517541(P2013-517541A)
(43)【公表日】2013年5月16日
(86)【国際出願番号】JP2010070162
(87)【国際公開番号】WO2011089775
(87)【国際公開日】20110728
【審査請求日】2013年10月8日
(31)【優先権主張番号】1000874.6
(32)【優先日】2010年1月20日
(33)【優先権主張国】GB
(73)【特許権者】
【識別番号】314008976
【氏名又は名称】レノボ・イノベーションズ・リミテッド(香港)
(74)【代理人】
【識別番号】100084250
【弁理士】
【氏名又は名称】丸山 隆夫
(72)【発明者】
【氏名】フォック アー シュアン フレデリック
(72)【発明者】
【氏名】レクロアール ベノア
【審査官】
新田 亮
(56)【参考文献】
【文献】
米国特許出願公開第2008/0201414(US,A1)
【文献】
国際公開第2008/084826(WO,A1)
【文献】
特表2005−512407(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
G06F 9/46
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
クライアントサーバシステムであって、
異なった位置に分散して配置され、各々が複数のクライアント装置によって使用される仮想機械の上位装置として働く複数のサーバと、
前記複数のサーバのうちの選択された1つのサーバ上で動作する仮想機械を使用するように動作可能なクライアント装置と、
前記複数のクライアント装置によって使用される前記仮想機械の上位装置として働くサーバを選択するように動作可能なブローカーゲートウェイと、
を有し、
前記ブローカーゲートウェイは、
i)前記クライアント装置の現在の位置を示す位置データを取得し、ii)前記仮想機械の上位装置として働く前記サーバを、前記クライアント装置の取得された位置データと前記の複数のサーバの位置に基づいて選択し、iii)前記クライアント装置によって使用される仮想機械を、前記クライアント装置が前記仮想機械への接続を要求する前に、前記の選択されたサーバ上に構築することを要求する、ように動作可能であり、
前記クライアント装置の位置データを、前記クライアント装置が接続するアクセスネットワーク又は前記クライアント装置から送信されたデータから取得するように動作可能であり、
前記選択されたサーバ上で該サーバの配下となる前記仮想機械に接続するのに使用されるパラメータを前記クライアント装置に送るように動作可能であり、
前記仮想機械に自発的に接続するのに使用される前記パラメータを、該パラメータが変わるたびに、前記クライアント装置に送るように動作可能である
クライアントサーバシステム。
【請求項2】
クライアント装置によって使用される仮想機械の上位装置として働くサーバを選択するように動作可能であり、かつi)前記クライアント装置の現在の位置を示す位置データを取得し、ii)前記仮想機械の上位装置として働くサーバを、前記クライアント装置の取得された位置データに基づいて選択し、iii)前記クライアント装置によって使用される仮想機械を、前記クライアント装置が前記仮想機械への接続を要求する前に、前記の選択されたサーバ上に構築することを要求する、ように動作可能であり、
前記クライアント装置の位置データを、前記クライアント装置が接続するアクセスネットワーク又は前記クライアント装置から送信されたデータから取得するように動作可能であり、
前記選択されたサーバ上で該サーバの配下となる前記仮想機械に接続するのに使用されるパラメータを前記クライアント装置に送るように動作可能であり、
前記仮想機械に自発的に接続するのに使用される前記パラメータを、該パラメータが変わるたびに、前記クライアント装置に送るように動作可能である
ブローカーゲートウェイ。
【請求項3】
前記ブローカーゲートウェイは、
複数のサーバの位置を定める、格納されたデータを含み、かつ前記クライアント装置の位置データを、前記の格納されたサーバ位置データと比較し、比較結果に基づいて前記サーバを選択するように動作可能である、請求項2記載のブローカーゲートウェイ。
【請求項4】
前記クライアント装置の現在の位置に近く、前記クライアント装置の仮想機械の上位装置として働くサーバを選択するように動作可能である、請求項3記載のブローカーゲートウェイ。
【請求項5】
前記ブローカーゲートウェイは、ユーザプロファイルデータを含み、かつ前記ユーザプロファイルデータを、前記クライアント装置のために前記仮想機械を構築するために、前記の選択されたサーバのために送るように動作可能である、請求項2から4のいずれかに記載のブローカーゲートウェイ。
【請求項6】
前記パラメータは、前記仮想機械のためのまたは前記の選択されたサーバのためのネットワークアドレスデータを含む、請求項2から5のいずれか1項に記載のブローカーゲートウェイ。
【請求項7】
前記仮想機械に接続するのに使用される前記パラメータを、前記クライアント装置から受信した、前記パラメータに対する要求に応答して、前記クライアント装置に送るように動作可能である、請求項2から6のいずれか1項に記載のブローカーゲートウェイ。
【請求項8】
前記クライント装置の位置データを、前記クライアント装置が現在、登録されているアクセスポイントのネットワークアドレスに基づいて、または前記クライアント装置が現在、登録されている携帯電話ネットワークのネットワークコードに基づいて取得するように動作可能である、請求項2から7のいずれか1項に記載のブローカーゲートウェイ。
【請求項9】
サーバとブローカーゲートウェイと通信するように動作可能なクライアント装置であり、該クライアント装置は、前記ブローカーゲートウェイから仮想機械のパラメータを受信するように動作可能であり、かつ前記サーバが上位装置として働く前記仮想機械への接続を要求するように動作可能であり、前記クライアント装置は、前記仮想機械への接続を要求する前に、前記仮想機械のパラメータを取得するように動作可能であり、
前記ブローカーゲートウェイにより、前記クライアント装置の位置データが、前記クライアント装置が接続するアクセスネットワーク又は前記クライアント装置から送信されたデータから取得されると、
前記選択されたサーバ上で該サーバの配下となる前記仮想機械に接続するのに使用されるパラメータを受信するように動作可能であり、
前記仮想機械に自発的に接続するのに使用される前記パラメータを、該パラメータが変わるたびに、受信するように動作可能である
クライアント装置。
【請求項10】
前記仮想機械のパラメータデータの更新を前記ブローカーゲートウェイから受信するように動作可能である、請求項9記載のクライアント装置。
【請求項11】
前記仮想機械への前記接続を、ブローカーゲートウェイを介して接続することなく、直接、要求するように動作可能である、請求項9又は10に記載のクライント装置。
【請求項12】
前記仮想機械への最初の接続要求が失敗した場合に、前記自国のブローカーゲートウェイに更新されたパラメータを要求するように動作可能である、請求項9から11のいずれか1項記載のクライント装置。
【請求項13】
ブローカーゲートウェイによって実行される方法であって、
クライアント装置の現在の位置を示す位置データを取得することと、
仮想機械の上位装置として働くサーバを、前記クライアント装置の取得された位置データに基づいて選択することと、
前記クライアント装置によって使用される仮想機械の、選択されたサーバ上への構築を、前記クライアント装置が、前記仮想機械に接続する要求をする前に要求することと、
前記クライアント装置の位置データを、前記クライアント装置が接続するアクセスネットワーク又は前記クライアント装置から送信されたデータから取得することと、
前記選択されたサーバ上で該サーバの配下となる前記仮想機械に接続するのに使用されるパラメータを前記クライアント装置に送ることと、
前記仮想機械に自発的に接続するのに使用される前記パラメータを、該パラメータが変わるたびに、前記クライアント装置に送ることと、
を有する、ブローカーゲートウェイによって実行される方法。
【請求項14】
複数のサーバの位置を定めるデータを保持することと、前記クライアント装置の位置データを前記サーバの位置データと比較することと、比較結果に基づいて前記サーバを選択することと、を有する、請求項13に記載の方法。
【請求項15】
前記の選択するステップは、前記クライアント装置の現在の位置に近く、かつ前記クライアント装置の仮想機械の上位装置として働くサーバを選択する、請求項14に記載の方法。
【請求項16】
ユーザプロファイルデータを保持することと、前記ユーザプロファイルデータを前記クライアント装置のための仮想機械を構築するために前記の選択されたサーバに送ることと、を有する、請求項13から15のいずれか1項記載の方法。
【請求項17】
前記の選択されたサーバ上でその配下となる前記仮想機械に接続するのに使用される、前記クライアント装置のパラメータを送ることを有する、請求項13から16のいずれか1項記載の方法。
【請求項18】
前記パラメータは、前記仮想機械の、または前記の選択されたサーバのネットワークアドレスデータを含む、請求項17に記載の方法。
【請求項19】
前記仮想機械に接続するのに使用される前記パラメータを、前記クライアント装置から、前記パラメータに対する要求を受信するに応答して、前記クライアント装置に送ることを有する、請求項18に記載の方法。
【請求項20】
前記クライント装置の位置データを、前記クライアント装置が現在、登録されているアクセスポイントのネットワークアドレスに基づいて、または前記クライアント装置が現在、登録されている携帯電話ネットワークのネットワークコードに基づいて取得する、請求項13から19のいずれか1項に記載の方法。
【請求項21】
サーバとブローカーゲートウェイと通信するクライアント装置によって実行される方法であって、仮想機械のパラメータを前記ブローカーゲートウェイから受信することと、前記サーバが上位装置として働く前記仮想機械への接続を要求することと、を有し、前記の受信することは、前記仮想機械への接続を要求する前に行われ、
前記ブローカーゲートウェイにより、前記クライアント装置の位置データが、前記クライアント装置が接続するアクセスネットワーク又は前記クライアント装置から送信されたデータから取得されると、
前記選択されたサーバ上で該サーバの配下となる前記仮想機械に接続するのに使用されるパラメータを受信することと、
前記仮想機械に自発的に接続するのに使用される前記パラメータを、該パラメータが変わるたびに、受信することと、を有し、
クライアント装置によって実行される方法。
【請求項22】
前記仮想機械のパラメータデータの更新を前記ブローカーゲートウェイから受信することを有する、請求項21記載の方法。
【請求項23】
前記仮想機械への前記接続を、前記ブローカーゲートウェイを介して接続することなく、直接、要求することを有する、請求項21又は22に記載の方法。
【請求項24】
前記仮想機械への最初の接続要求が失敗した場合に、自国の基地局に更新されたパラメータを要求することを有する、請求項21から23のいずれか1項記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、クライアントサーバシステムおよび方法、並びにその構成部品に関する。本発明は、特に種々のクライアント装置のための仮想機械を提供するサーバシステムに関する。
【背景技術】
【0002】
1つまたは複数の中央サーバが、クライアントサーバネットワーク構造におけるいくつかのクライアント装置のために複数の仮想機械の起動を担う仮想化システムが知られている。これらのサーバのうちの1つのサーバ上で実行される仮想機械は、クライアント装置の処理の多くを扱い、ユーザ入力イベントはクライアント装置によって仮想機械に報告され、仮想機械によって生成された関連する出力は、ユーザへの出力のためにクライアント装置に返送される。したがって、最小の処理能力しか持たない装置をシンクライアントとして使用してもよいが、より大きな処理能力を有する装置をシンクライアントとして、それが実際に働くことができるときに、働くように構成してもよい。
【0003】
携帯型の情報処理装置や通信装置、特に携帯(セルラー)電話に対する人気が増大するにつれて、個人が、それらの携帯装置を、殆どの時間、身につけることが今や当たり前になっている。これらの装置は、種々の、短距離および/または広域の無線および有線の技術を用いて互いにおよび他のコンピュータ装置(パーソナルコンピュータ、ラップトップ、サーバなど)と通信する能力の点でますますフレキシブルになっている。
【0004】
今日、シンクライアントと仮想化の技術は、ユーザ装置のための仮想化された環境(たとえば、仮想機械上で実行されるPC画像)の動的な構成と起動を可能にしている。VMWare Inc及びCitrix Systems Incは、そのような仮想化システムを提供する会社である。プロファイルには、ユーザが属するグループ、ユーザのアプリケーションの好み、所与のアプリケーションに必要な処理能力、または要求されるCPU(2つ以上が利用できるならば)などを含むことができる。最初の接続確立時に、ユーザ装置は、該ユーザ装置をプロファイルと負荷バランスの情報を分析することによって仮想機械の上位装置として働く所与のサーバに導く責任を負う、ゲートウェイ(以下の記述ではブローカーゲートウェイと呼ぶ)にアクセスする。そのようなブローカーゲートウェイは、サーバ上に仮想化された遠隔のアプリケーションまたは遠隔のオペレーティングシステムへアクセスするために一般的である。サーバを、ユーザプロファイル情報と、サーバの可用性、ネットワーク負荷、利用可能なCPUなどの他の情報に基づいて選択することができ、仮想機械は、ユーザがそれにアクセスできる前に準備される必要がある。
【0005】
この技術は、ユーザ装置が、仮想化された環境の上位装置として働くサーバのかなり近くに位置する場所ではうまく働く。しかしながら、ユーザ装置が、仮想化された環境の上位装置として働くサーバからかなり遠隔に位置している場合、本システムは、サーバとユーザ装置間の距離によって引き起こされる遅延と相互作用待ち時間のためにうまく働かない。この問題を軽減するために、いくつかのスケーリング解決策は、ユーザを最も適切なサーバ(または仮想機械)に動的に向かわせるように、リソースとサーバ/ネットワーク負荷を監視することにある。
【0006】
携帯装置を使用して、ユーザはある位置から、そして異なった時点に他の位置から接続する可能性がある。したがって、ユーザが接続を切り、ユーザが新たな地理的領域へ(したがって他のアクセスネットワークを介して)移動した後に、その仮想機械に再接続する場合、最も近いサーバを選択することでネットワーク経路のコストを減らすことが最良である。サーバの選択には、負荷バランス技術に加えてユーザ装置の地理的位置を用いることができる。参照によってここにその内容が含まれる非特許文献1には、IPトンネルを構築することによるWANを通じた仮想機械のライブマイグレーション技術をより詳細に記載している。
【0007】
ユーザの仮想機械が存在しない、または未だ準備されていない場合、ユーザは、接続が確立する間、仮想機械が準備されるのを待たなければならない。ユーザの仮想機械が存在する場合、仮想機械を新たに選択されたサーバに乗り換えることが必要かも知れない。実際の乗り換えによって生ずるダウンタイムはかなり小さい可能性があるが、仮想機械を、選択された新たなサーバ上に乗り換えるために必要な時間がなお存在する。
【先行技術文献】
【非特許文献】
【0008】
【非特許文献1】「MAN/WANを通じての仮想機械の途切れのない実際の統合」フランコ トランボスチノ等のエルセビール次世代コンピュータコンピュータシステム 2006(Seamless Live Integration of Virtual Machines over the MAN/WAN,from Franco Travostino and al.,Elsevier Future Generation Computer Systems 2006)
【発明の概要】
【0009】
本発明は、理想的な実施態様では、ユーザが、仮想化された環境を直ちに利用できるように、接続の確立を最適化するようとしてなされたものである。一実施態様では、本発明は、分散配置された複数のサーバファーム(国毎の、または一国内の、または、分散配置された会議室等の、建物の事務所どうし間)上の適切な仮想化された環境の構成と選択を予想するためにユーザ装置の位置情報を使用する。他の実施態様では、選択された仮想化された環境の接続パラメータは、接続の確立をはやめるために、携帯装置に送られて格納され、ブローカーゲートウェイに格納された接続パラメータと同期させられる。仮想機械の接続パラメータを予測して知ることは、ユーザが、必要な接続の詳細を知る必要をなくし、必ずしもブローカーゲートウェイを通過することがない、仮想機械への接続確立を最適化する。
【0010】
一態様によれば、異なった位置に分散して配置され、各々が、複数のクライアント装置によって使用される仮想機械の上位装置として働く複数のサーバと、複数のサーバのうちの選択された1つのサーバ上で動作する仮想機械を使用するように動作可能なクライアント装置と、複数のクライアント装置によって使用される仮想機械の上位装置として働くサーバを選択するように動作可能なブローカーゲートウェイと、を有し、ブローカーゲートウェイは、クライアント装置の現在の位置を示す位置データを取得し、仮想機械の上位装置として働くサーバを、クライアント装置の取得された位置データと複数のサーバの位置に基づいて選択し、クライアント装置によって使用される仮想機械を、クライアント装置が仮想機械への接続を要求する前に、選択されたサーバ上に構築することを要求するように動作可能である、クライアントサーバシステムが提供される。
【0011】
他の態様によれば、ユーザの少なくとも1つの仮想機械の準備を予測し、該予測がクライアント装置の現在位置に基づき、仮想機械は、ブローカーゲートウェイによって接続されたサーバ下で動作し、準備は、クライアント装置が仮想機械への接続を要求する前に、ブローカーゲートウェイによってなされる方法が提供される。
【0012】
他の態様によれば、本方法は、ブローカーゲートウェイによってクライアント装置に現在まで送られた仮想機械接続パラメータを格納して保持するステップを有する。接続パラメータは、ブローカーゲートウェイへのアクセスを必ずしも要求することなく、仮想機械への接続を次に試みたときにクライアント装置によって使用されるのが有利である。
【0013】
他の態様によれば、本発明は、クライアント装置によって使用される仮想機械の上位装置として働くサーバを選択し、仮想機械の上位装置として働くサーバを、クライアント装置の現在位置に基づいて選択するように動作可能であり、クライアント装置によって使用される仮想機械を、クライアント装置が仮想機械への接続を要求する前に、選択されたサーバ上に構築するように動作可能である、ブローカーゲートウェイを提供する。
【0014】
一実施態様によれば、ブローカーゲートウェイは、複数のサーバの位置を定めるデータを格納し、クライアント装置の位置データを、格納されたサーバ位置データと比較し、比較結果に基づいてサーバを選択する。ブローカーゲートウェイは、クライアント装置の現在の位置に近く、クライアント装置の仮想機械の上位装置として働くサーバを選択してもよい。
【0015】
好適な実施態様では、クライアント装置の位置情報は、地理座標、セル情報(携帯電話国コード、携帯電話ネットワークコード)、ネットワークアクセスポイント名(WiFi AP名)、ネットワークアクセスポイントからの推定距離等の少なくとも1つであってよい。
【0016】
他の実施態様では、ブローカーゲートウェイは、ユーザプロファイルデータを含み、かつ該ユーザプロファイルデータを、クライアント装置のために仮想機械を構築する、選択されたサーバへ送る。ユーザプロファイルデータは、選択されたサーバへ直接または他のブローカーゲートウェイを介して送ってもよい。
【0017】
他の実施態様では、ブローカーゲートウェイは、所与の位置データの選択されたサーバを定めるデータを格納し、それをクライアント装置と同期させる。したがって、ブローカーゲートウェイは、クライアント装置が選択されたサーバ下で動作する仮想機械に接続するのに使用できるクライアント装置パラメータを送る。該パラメータには仮想機械または選択されたサーバのネットワークアドレスを含んでもよい。
【0018】
本発明では、サーバとブローカーゲートウェイと通信するように動作可能なクライアント装置であり、該クライアント装置は、仮想機械のパラメータをブローカーゲートウェイから受信し、かつサーバ下で動作する仮想機械への接続を要求し、仮想機械への接続を要求する前に、仮想機械のパラメータを取得する、クライアント装置も提供する。
【0019】
一実施態様では、クライアント装置は、今日までの仮想機械接続パラメータをブローカーゲートウェイと共に保持するように動作可能な同期化モジュールを有し、接続パラメータは、ユーザの現在位置に基づいてブローカーゲートウェイによって更新される。
【0020】
好適な実施態様では、クライアント装置は、仮想機械に接続するために、格納された仮想機械接続パラメータを使用する。接続が失敗すると、クライアント装置は、仮想機械に接続するために、ブローカーゲートウェイへの接続を要求し、仮想機械に接続する前に仮想機械接続パラメータを得る。接続の詳細はセキュアモジュール(携帯装置内、ユニバーサルサブスクライバーアイデンティーモジュール内の暗号化メモリ領域、または他のセキュア要素)内に格納され、処理できると有利である。
【0021】
本発明は、またブローカーゲートウェイおよびクライアント装置と通信するサーバであり、サーバは、クライアント装置によって使用される仮想機械を、ブローカーゲートウェイから受信した要求に応答してセットアップするように動作可能であり、かつクライアント装置から受信した接続要求に応答して仮想機械とクライアント装置を接続し、サーバは、クライアント装置から接続要求を受信する前に、クライアント装置のために仮想機械をセットアップするように構成されている、サーバを提供する。
【0022】
本発明は、また対応するユーザ通信装置またはネットワーク通信装置上で実行される、対応するコンピュータプログラムまたはコンピュータプログラムプロダクトを、開示された全ての方法について提供する。本発明は、また上記の方法およびその構成部品およびこれらを更新する方法を実施するように構成され、または動作可能なユーザ通信装置およびネットワーク通信装置を提供する。
【図面の簡単な説明】
【0023】
【
図1】
図1は、携帯ユーザ装置が、サーバファーム上で実行される仮想化ソフトウェアと共に動作するシンクライアントモジュールを含むクライアントサーバ仮想化システムを概略的に示し、ユーザ装置がフランスから日本に移動したときのサーバファームの変化を示している。
【
図2】
図2は、通信ネットワークを通じて通信するいくつかのクライアント装置、ブローカーゲートウェイ、サーバファームを概略的に示している。
【
図3】
図3は、
図2に示されたサーバファームの主な構成部品を示すブロック図である。
【
図4】
図4は、
図2に示されたブローカーゲートウェイの主な構成部品を示すブロック図である。
【
図5】
図5は、
図2に示されたクライアント装置の主な構成部品を示すブロック図である。
【
図6】
図6は、異なったユーザが、これらユーザが自国のブローカーゲートウェイに接続するアクセスポイント/ルータに基づいて異なったサーバファームに接続する実施形態を示している。
【
図7】
図7は、
図6の装置同士の間で行われる通信を示す信号流れ図である。
【
図8】
図8は、
図6に示された実施形態で、内部ネットワークと外部ネットワークを通じて行われるネットワーク接続を示している。
【
図9】
図9は、ブローカーゲートウェイが、仮想機械の上位装置として働くサーバを決定する際のポリシー制御を実行することができる方法を示す流れ図である。
【
図10】
図10は、他の実施形態において行われる通信を示す信号流れ図である。
【
図11】
図11は、ブローカーゲートウェイが、仮想機械の上位装置として働くサーバを決定する際のポリシー制御を実行することができる方法を示し、ブローカーゲートウェイがVMパラメータをクライアント装置と同期させる方法を示す流れ図である。
【
図12】
図12は、クライアント装置が、ブローカーゲートウェイに必ずしも接触することなく、その仮想機械にアクセスするためにVMパラメータを使用できる方法を示している。
【発明を実施するための形態】
【0024】
本発明のこれらおよび様々な他の態様は、例示としてのみ与えられ、かつ添付の図面を参照して説明される実施形態の以下の詳細な説明から明らかとなる。
(概要)
図1は、本発明の一実施形態のクライアントサーバシステムを概略的に示している。図示されているように、本システムは、たとえば、ユーザが仕事中に企業ネットワーク5と通信できるユーザ携帯装置3(たとえば携帯、すなわちセルラー電話)を含む。携帯装置3は、該携帯装置が企業ネットワーク5の近傍にあるときに、インターネットまたは自国(この例ではフランス)の携帯電話ネットワーク13と、自国のブローカーゲートウェイ11とを介して自国のサーバファーム9−hに接続できるシンクライアントモジュール7を含む。自国のサーバファーム9は、シンクライアントモジュール7のための仮想化技術を提供する。このことは、自国のサーバファーム9が、携帯装置3のためのソフトウェアを実行し、i)シンクライアントモジュール7が情報をユーザに出力するために用いる、シンクライアントモジュール7への出力データと、ii)シンクライアントモジュール7が、サーバファーム9上でその配下となる仮想機械に戻された応答を制御するために用いる、シンクライアントモジュール7への入力データと、を出力すること意味する。そのような仮想化技術の動作方法は当業者によく知られており、ここではさらに詳しくは説明しない。
【0025】
矢印15によって表されるように、ユーザ携帯装置3が企業ネットワーク5から出て、この例では日本に移動するとき、ユーザ携帯装置3は、自国のブローカーゲートウェイ11−h及び自国のサーバファーム9−hに、インターネットまたは日本における携帯電話ネットワーク17を介して接続することができる。この状況では、ユーザは、ユーザの携帯装置3と自国のサーバファーム9−hが大きく離れていることによって生ずる上記の遅延と待ち時間を経験することになる。本実施形態では、ユーザの携帯装置3の現在の位置についての情報が自国のブローカーゲートウェイ11−hに与えられ、自国のブローカーゲートウェイ11−hは、ユーザが、仮想化された環境に対するアクセスを要求する前に、該位置情報を用いてユーザのための仮想化された環境を準備する。この準備は、ユーザの携帯装置3の近くに位置する、外国のサーバファーム9−fへのユーザの既存の仮想機械の転送、または自国のブローカーゲートウェイ11−hに利用できるユーザプロファイル情報に基づき、外国のサーバファーム9−f上に新たな仮想機械を生成することであってよい。その後、ユーザがその携帯装置を用いて、仮想機械と相互に作用することを開始し、または継続するとき、ユーザは、直接または外国のブローカーゲートウェイ11−fを介して外国のサーバファーム9−fと相互に作用することを行う。このようにして、本システムは仮想機械を即座に利用することを可能にする。有利なことに、本システムは、上述した遅延と待ち時間の問題も防ぐ。
【0026】
好適な実施形態では、位置情報は、また仮想化された環境の最適な準備を保証するために、ポリシールールと結合されている。たとえば、ポリシールールは、仮想化された環境が特定の地理的領域どうしの間(たとえばフランスと日本の間)でのみ移動できるように定めてもよい。したがって、もしユーザがロンドン内を移動中で、利用できる地方のサーバファーム9があったとしても、仮想化された環境は準備されない。あるいは、大きな建物内では、サービスプロバイダーは、各会議室および各ユーザに対して異なった構成を要求する多数のフロアと多数の仮想機械の環境を有してもよい。ユーザの位置(ユーザがつながるどのデスク、どの無線アクセスポイントなど)に応じて、仮想化された環境を、サービスポリシールールに基づいて、ユーザ接続のセットアップの前に自動的にセットアップすることができる。したがって、中央のサーバファームを使用しないで、仮想化された環境を、全てのユーザの位置を予想しながらネットワーク負荷を分散させるためにセットアップし、または移し換えることができる。このようにして、多数のユーザが同じ部屋にいた場合、かれらの仮想機械を、それらが全て同じサーバ上でセットアップされた場合に起動時に発生するかもしれない予想される障害を避けるために、別々のサーバ上に前もってセットアップすることができる。
【0027】
図1は単一の携帯ユーザ装置3と自国および外国のサーバファーム9を示しているが、実際には、
図2に示すように多数のユーザ装置3と多数のサーバファーム9と多数のブローカーゲートウェイ11とが存在することがある。
図2に示すように、携帯装置3は、(インターネットと携帯電話ネットワークの少なくとも一方の部品を含んでもよい)ネットワーク21を通じてブローカーゲートウェイ11とサーバファーム9と通信する。ブローカーゲートウェイ11は、携帯装置3の位置を求めるためと、これに基づいてサーバファーム9の配下で動作する仮想機械の必要な構成を予測するために携帯装置3またはネットワーク21のいずれかと通信する。サーバファーム9と携帯装置3は、次に互いに通信して適宜構成された仮想化されたアプリケーションを携帯装置3上に生成する。
(サーバファーム)
サーバファーム9は基本的にコンピュータサーバの集まりである。
図3は、サーバファーム9の一部を構成する、複数のサーバ31のうちの1つのサーバの主要構成部品を示している。図示のように、サーバ31は、該サーバがネットワーク21を介してブローカーゲートウェイ11または携帯装置3と通信するのを可能にするネットワーク通信回路33を含んでいる。サーバ31は、メモリ37に格納されているソフトウェアにしたがってネットワーク通信回路33を用いて前記通信を制御する1つまたは複数のプロセッサ35を含んでいる。図示のように、メモリ37内のソフトウェアは、ブローカーゲートウェイ11および携帯装置3との通信を制御する通信制御モジュールを含んでいる。該ソフトウェアは複数の仮想機械43−1から43−Nを定めるソフトウェアを含んでいる。これらの仮想機械43は、ブローカーゲートウェイ11から受信したVM構成情報43に基づいて構成される。サーバ31がブローカーゲートウェイ11から新しい構成情報を受信すると、サーバ31は、仮想機械43を、携帯装置3が仮想機械43との接続を要求したときに、すぐに使用できるように構成する。
(ブローカーゲートウェイ)
ブローカーゲートウェイは基本的に(サーバ、ルータ、スイッチのような)ネットワークノードである。
図4は、この実施形態において使用される複数のブローカーゲートウェイ11の1つのゲートウェイの主要構成部品をより詳しく示している。図示のように、ブローカーゲートウェイ11は、ブローカーゲートウェイ11が携帯装置3およびサーバファーム9と通信するのを可能にするネットワーク通信回路53を含んでいる。ブローカーゲートウェイ11は、またメモリ57に格納されているソフトウェアにしたがってネットワーク通信回路53を用いて前記通信を制御する1つまたは複数のプロセッサ55を含んでいる。図示のように、メモリ57内のソフトウェアは、ブローカーゲートウェイ11および携帯装置3との通信を制御する通信制御モジュール59を含んでいる。該ソフトウェアは携帯装置3の位置情報を得るシンクライアント位置モジュール61を含んでいる。この位置情報は、携帯装置3の現在位置が与えられると、携帯装置3によって使用されるブローカーゲートウェイ11とサーバファーム9を選択するために、ゲートウェイ決定モジュール63によって使用される。この決定は、サーバファームネットワークデータ65内で保持される、異なったサーバファーム9の地理的位置に基づいて、ゲートウェイ決定モジュール63によってなされる。ブローカーゲートウェイ11は、また各ユーザ装置のユーザプロファイルデータ67を格納し、ゲートウェイ装置11は、ユーザのユーザプロファイルデータを、選択されたサーバに、選択されたユーザ携帯装置上に仮想機械を構築するために送る。
(携帯装置)
ユーザ携帯装置3は、手持ち式のパーソナルディジタルアシスタント(PDA)、電話機、ラップトップコンピュータなどである。
図5は、この実施形態において使用される携帯装置3の主要構成部品を示している。
図5でわかるように、携帯装置3は、携帯電話ネットワークまたはコンピュータネットワークを介してブローカーゲートウェイ11またはサーバファーム9に信号を送信し、かつこれらから信号を受信するように動作可能な送受信機回路71を含んでいる。携帯装置3は、携帯装置3の動作を制御し、かつ送受信機回路71、いくつかの出力装置75、およびいくつかの入力装置77に接続されている1つまた複数のプロセッサ73を含んでいる。出力装置75は、ラウドスピーカーを有するオーディオ出力装置79と、ディスプレイ出力装置81と、(バイブレータ装置やプリンタのような)他の出力装置83とを含んでよい。入力装置77は、オーディオ入力装置85(マイクロフォン)と、タッチパネル用のディスプレイセンサ87と、携帯装置3の現在の地理的位置用の位置データを出力するGPSモジュール89とを含んでいる。
【0028】
当該または各プロセッサ73は、メモリ91に格納されているソフトウェア命令にしたがって動作する。図示のように、これらのソフトウェア命令は、特に、オペッレーティングシステム93と、シンクライアントモジュール7と、通信制御モジュール95とを含んでいる。メモリ91は、また携帯装置で使用する、プログラムされた仮想機械を定める仮想機械(VM)パラメータ97を格納している。VMパラメータ97は、どのような所与の時間にも仮想機械43の上位装置として働くサーバファーム9のネットワークアドレスを(少なくとも一時的に)含んでいる。このネットワークアドレスは、自国のブローカーゲートウェイ11が携帯装置3の位置を取得するのに応答して自国のブローカーゲートウェイ11によって携帯装置3に与えられる。本実施形態では、携帯装置3は、GPSモジュール89から入力されたGPSデータを送ることでこの位置データを自国のゲートウェイ11に与える。しかしながら、当業者であれば理解できるが、位置データを自国のゲートウェイ11−hへ与えるには、他の技術を使用することもできる。たとえば、携帯装置3がアクセスポイントを介してネットワークと接続する場合、アクセスポイント(すなわち基地局)またはアクセスポイントが位置するサブネットワークのネットワークアドレスを、自国のブローカーゲートウェイ11−hへ与える位置情報として使用できる。自国のブローカーゲートウェイ11は、携帯装置が接続されている携帯電話ネットワークから位置情報を取得してもよい。この位置情報は、携帯装置3が現在登録されている国コード、携帯電話ネットワークコード、または携帯電話ネットワークのセルIDであってよい。
(動作)
次に、本実施形態の動作を、ユーザが新しいトレーニングセッションに参加することを希望し、ウェブサイトを介して該トレーニングセッションに登録する例のシナリオについて
図6から
図8を参照して説明する。
図6は、該シナリオで用いられる主要構成部品を示すブロック図、
図7は、
図6に示された装置どうし間で行われる通信を示す信号流れ図、
図8は内部ネットワークを通じて行われる通信と、外部ネットワークを通じた通信を必要とする通信とを示している。
【0029】
トレーニングセッションに登録するとき、ユーザは、複雑さの程度、その知識のレベル、その興味、予想されるエクササイズの種類、トレーニングの種類などのような詳細を記入する。ユーザは自分の携帯装置3を用いてこの登録動作を行う。登録時、ユーザには、VMパラメータデータ97に格納されている参加識別子が与えられる。ユーザによって与えられた登録情報は、自国のブローカーゲートウェイ11−hで格納されているユーザプロファイルデータ67に、ユーザの参加識別子と関連付けて格納される。ある時間が経過した後(たとえば1日または1週間後)、ユーザは会議室に到着し、そこでユーザは、その携帯装置3と、ローカルなコンピュータサブネットワーク103のアクセスポイント101との接続を確立する。この接続は、(NFCのような)短距離の無線通信技術を用いて無線接続パラメータが交換できるように、たとえば、ユーザがその携帯装置をアクセスポイント101に接触させることで確立されてもよい。多数の携帯装置3が同じアクセスポイントに接続することが可能であり、(多分、様々な部屋、様々な建物、または様々な国などの)様々なユーザが異なったアクセスポイント101を介して接続することができる。これは
図6に示されており、
図6では、部屋1内のアクセスポイント101−1に接続される携帯装置3−1及び3−2(ユーザAとBに対応)と、部屋2内のアクセスポイント101−2に接続される携帯装置3−3及び3−4(ユーザCとDに対応)の、4台の携帯装置3−1〜3−4を示している。
【0030】
携帯装置3がアクセスポイント101に一旦接続すると、携帯装置3内のシンクライアントモジュール7は、広域ネットワーク105(たとえば、インターネット)を介して、自国のブローカーゲートウェイ11−h(そのアドレスは携帯装置3のメモリ91に格納されている)に接続し、ユーザの参加識別子を出力し、それによって、ユーザが、アクセスポイントが位置する会議室に到着したことを自国のブローカーゲートウェイ11−hに通知する。自国のブローカーゲートウェイ11−hは複数の仮想機械43の割り当てる処理を担っている。ユーザがインターネットにアクセスしている間、自国のブローカーゲートウェイ11−hは(携帯装置3から送信された位置データからまたは携帯装置3が接続された特定のサブネットワーク103またはアクセスポイント101のネットワークアドレスから)、ユーザ装置の位置を取得し、該ユーザの仮想機械43を、ユーザプロファイルデータ67に格納されているユーザプロファイルデータにしたがって準備する。
【0031】
自国のブローカーゲートウェイ11−h内のゲートウェイ決定モジュール63は、次にユーザにトレーニングセッションを提供する仮想機械43の上位装置として働くサーバファーム9を、取得した位置情報を用いて識別する。
図6に示されているように、携帯装置Aを例として考えると、携帯装置Aは会議室1内に位置するアクセスポイント101−1に接続し、そのため自国のブローカーゲートウェイ11は、仮想機械43の上位装置として働く最適なサーバファーム9が外国のサーバファーム9−f1であると判定する。自国のブローカーゲートウェイ11−hは、次に準備された仮想機械のメッセージを、識別されたサーバファーム9−f1を管理する外国のブローカーゲートウェイ11−f1に送る。このメッセージでは、ユーザを識別し、登録の際にユーザによってもたらされた情報に関するユーザプロファイルデータを出力する。外国のブローカーゲートウェイ11−f1は、この要求を受け取り、ユーザによって定められた登録の詳細にしたがって、外国のサーバファーム9−f1上に適切な仮想機械43を準備する。仮想機械43が一旦準備されると、外国のブローカーゲートウェイ11−f1は実行命令を外国のサーバファーム9−f1に送る。外国のサーバファーム9−f1は、これに応答して、仮想機械43を起動し、それの準備ができたとき外国のブローカーゲートウェイに知らせる。準備信号を受信するのに応答して、外国のブローカーゲートウェイ11−f1は、ユーザのための仮想機械43の上位装置として働くサーバの詳細を自国のブローカーゲートウェイ9−hに送る。これによって、ユーザに近いサーバファーム9上に仮想機械43を構築する準備段階が終了する。
【0032】
全ての参加者が部屋に集合し、無線ネットワークに接続すると、トレーニングセッションが開始できる。このとき、各携帯装置3はトレーニングをもたらすそれらの仮想機械43への接続を開始する。本実施形態では、携帯装置は、自国のブローカーゲートウェイ9−hに、仮想機械のパラメータに対する要求を送ることによって、これを行う。これに応答して、自国のブローカーゲートウェイ11−hは、外国の各ブローカーゲートウェイ11−fによって与えられたパラメータを用いて該要求に応答する。該応答には、ユーザの仮想機械の上位装置として働く外国のサーバファーム9−fのネットワークアドレス(または仮想機械43それら自身のネットワークアドレス)を含む。携帯装置3は、次に受信したVMパラメータを用いて、対応する外国のサーバファーム9−fに、それらの仮想機械43との接続を確立する要求を送る。
【0033】
このようにして、各ユーザの仮想機械43は、既に準備され、構成され(アプリケーション、プレゼンテーション、トレーニングコース、エクササイズなど)、ユーザのためにパーソナライズされる(複雑さのレベル、トレーニングの種類など)。この例では、仮想化された環境の準備は、ユーザが部屋に入り、アクセスポイントに接続したときにのみ行われる。このことは、たとえば、ユーザが何らかの理由で会合に出席できない場合に、サーバファーム9内のサーバの余分なリソースと電力消費を防止する。
【0034】
図8からわかるように、上記したシステムは、仮想機械43をユーザの携帯装置の近傍でセットアップするのを可能にする。この例では、ローカルネットワークの一部を構成するサーバファーム9が仮想機械43の上位装置として働くことができる。これは、(破線で表される)外部ネットワークを通じてのトラヒックを減少させ、仮想機械43に、より早く、かつより安全に接続する。
【0035】
上術した予め定められたポリシールールに加えて、位置情報が仮想化された環境の、より最適化された準備を行うために使用される。自国のブローカーゲートウェイ11−hがそのようなメカニズムをどのようにして実行するかを示す流れ図が
図9に示されている。図示のように、ステップs1において、自国のブローカーゲートウェイ9−hは、ユーザの携帯装置3によって与えられた参加識別子を用いて、(登録時にユーザから得られた)ユーザプロファイル情報を検索する。次に、ステップs3において、自国のブローカーゲートウェイ11−hはユーザの携帯装置3の位置情報を検索する。ステップs5において、自国のブローカー装置11−hは、求めた位置が新たなサーバ位置を必要とするかどうか判定する。新たなサーバ位置が必要なければ、本方法は終了する。新たなサーバ位置が必要であれば、ステップs7において、自国のブローカーゲートウェイ11−hは、そのポリシールールを調べ、仮想化された環境を新たなサーバ位置に準備できるか否か判定する。該判定が否であれば、本方法は終了する。そうでなければ、自国のブローカーゲートウェイ11−hは、新たな仮想化された環境を構築するか、または既存の1つに移し替えることで、ユーザプロファイルに基づいて、仮想化された環境を新たな位置に準備する。
(他の実施形態)
上述した実施形態では、自国のブローカーゲートウェイ11−hが、携帯装置3の位置情報を取得し、携帯装置3の近くに位置するサーバファーム9上にユーザの仮想機械を準備した。この上述した実施形態では、自国のブローカーゲートウェイ11−hが、ユーザの仮想機械のVMパラメータを、ユーザがその仮想機械の使用開始を望み、ユーザが該パラメータを要求したときに発した。VMパラメータが、それが要求される前に携帯装置に与えられる第2の実施形態を次に説明する。この場合、携帯装置3は、ユーザがその仮想機械に接続することを望むと、直ちに正しいVMに、直接、接続できる。この方法は、ユーザの携帯装置が、その仮想機械に接続するのに必要な初期時間を早める。この実施形態の動作方法を、
図10から12を参照して説明する。
【0036】
特に、
図10は、本実施形態における、様々な装置どうし間の通信を示す信号流れ図である。図示のように、本実施形態では、自国のブローカーゲートウェイ11−hは、携帯装置3が自国のブローカーゲートウェイ11−hに接続するのを待つことなく、携帯装置3の位置情報を取得できるように、携帯装置3の位置を能動的に監視する。自国のブローカーゲートウェイ11−hは、携帯装置3が現在接続されているアクセスネットワークまたは携帯電話ネットワークを識別する情報リクエストをネットワーク21に送信することによって、これを行う。この位置情報に基づいて、自国のブローカーゲートウェイ11−hは、適切な外国のゲートウェイを(第1の実施形態と同様にして)決定し、ユーザのために仮想機械を準備する要求を外国のゲートウェイに送る。外国のゲートウェイ11−fと外国のサーバファーム9−fは、仮想機械をセットアップし、それからユーザの仮想機械がアクセスするサーバパラメータを自国のブローカーゲートウェイ11−hに送る。本実施形態の自国のブローカーゲートウェイ11−hは、これらのパラメータを受信すると、携帯装置に、該携帯装置がその仮想機械のために既に有しているVMパラメータを更新させる更新メッセージを送る。更新メッセージは、SMS PushまたはOMA Device Management方法のようなOver The Air技術を用いて送ることができる。このようにして、自国のブローカーゲートウェイは、携帯装置上に格納されているVMパラメータを、自国のブローカーゲートウェイ11−hに格納されているVMパラメータと同期した状態に保つことができる。
【0037】
その後、ユーザが、その仮想機械へのアクセスを要求する準備ができると、携帯装置3は、格納されたVMパラメータ97を用いて、その自国のブローカーゲートウェイ11−hに接続することなく、外国のサーバファーム9−f上のその仮想機械に対して接続を直接要求することができる。
【0038】
図11は、ユーザの仮想機械が実行される外国のサーバファーム9−fを選択するときに自国のブローカーゲートウェイがポリシールールを実行することができる方法を示す流れ図である。
図11に示されているように、新たなVMパラメータが取得された後、ステップs11において、自国のブローカーゲートウェイ11−hがVMパラメータを携帯装置に送り、VMパラメータがステップs13において携帯装置2によって受信され、ステップs15において携帯装置内に格納されることを除いて、処理は第1の実施形態におけるのと同じである。
【0039】
図12は、携帯装置3がこの実施形態で仮想機械に接続するように動作する方法を示す流れ図である。図示のように、ステップs21において、ユーザは、その携帯装置を動作させて、その遠隔のアプリケーションとの接続を(たとえば、携帯装置のユーザインタフェース上のボタンを押すことで)要求する。これに応答して、ステップs23において、通信制御モジュール95は、格納されているVMパラメータ97を、メモリまたはそのようなパラメータ情報を保持する選択マネージャから検索しようとする。該パラメータが存在すると、ステップs25において、通信制御モジュール95は、該パラメータを用いて仮想機械と直接接続しようとする。接続が失敗する、または携帯装置が格納されているVMパラメータを有していないと、ステップs27において、通信制御モジュール95は、第1の実施形態におけるのと同じように、該パラメータを自国のブローカーゲートウェイ11−hに要求する。
(修正および代替案)
幾つかの詳細な実施形態を前述した。当業者が理解するように、いくつかの修正および代替案を上記の実施形態に、そこに具体化された発明によってなお利益を得つつ行うことができる。
【0040】
上記の各実施形態では、携帯装置3、ブローカーゲートウェイ11およびサーバファーム9は各々ネットワーク通信回路を含んでいる。通常、この回路は専用のハードウェア回路によって構成される。しかしながら、いくつかの実施形態では、該回路の部品は、ソフトウェアにしたがって実行することで対応するプロセッサによって実現してもよい。
【0041】
上記の各実施形態では、いくつかのソフトウェアモジュールが記載された。当業者が理解するように、該ソフトウェアは、コンパイルされた形態またはコンパイルされていない形態で提供されてもよく、携帯装置3、ブローカーゲートウェイ11、サーバファーム9に、コンピュータネットワークを通じて信号として、または記録媒体で供給されてもよい。さらに、このソフトウェアの一部または全てによって実行される機能は、1つまたは複数の専用ハードウェア回路を用いて実行されてもよい。しかしながら、ソフトウェアモジュールの使用は、それが、装置の機能を更新するための装置更新を容易にするため好ましい。1つまたは複数のモジュールの機能は、単一のモジュールに統合されていてもよく、オペレーティングシステムに組み込まれていてもよい。
【0042】
携帯装置3、ブローカーゲートウェイ11、サーバファーム9の動作を、明確化のために流れ図(
図7と
図9)を参照して順番に説明した。しかしながら、ステップの多くは、順番に実行される必要はなく、他のステップと平行に実行されてもよい。
【0043】
携帯装置3とブローカーゲートウェイ11とサーバファーム9間の通信は、何らかの適切な無線または有線の通信プロトコルと、関連する技術を用いてよいことが理解されるであろう。たとえば、それぞれのネットワーク通信部分は、無線通信の場合にはBluetooth(登録商標)とWiFiの少なくとも一方のプロトコル、赤外線通信の場合はIrDA(Infrared Data Association)プロトコルと有線通信の場合のユニバーサルシリアルバス(USB)プロトコルの少なくとも一方を用いて通信用に構成されてもよい。携帯装置3、ブローカーゲートウェイ11、サーバファーム9は、長距離の仮想化を可能にするために、携帯電話ネットワークを介して(たとえば、基地局、無線ネットワークコントローラ、コアネットワークなどを介して)長距離通信用に構成されてもよい。
【0044】
携帯装置3が携帯電話(たとえばスマートフォン)として記載されているが、携帯装置3は、何らかの適切な装置、たとえばパーソナルディジタルアシスタント(PDA)、パームトップコンピュータ、またはノートブックコンピュータであってもよいことが理解される。
【0045】
様々な他の変形が当業者にとって明らかであり、ここではさらに詳しくは記載しない。