JP5684170B2 - 情報処理装置、クライアント管理システムおよびクライアント管理方法 - Google Patents

情報処理装置、クライアント管理システムおよびクライアント管理方法 Download PDF

Info

Publication number
JP5684170B2
JP5684170B2 JP2012041379A JP2012041379A JP5684170B2 JP 5684170 B2 JP5684170 B2 JP 5684170B2 JP 2012041379 A JP2012041379 A JP 2012041379A JP 2012041379 A JP2012041379 A JP 2012041379A JP 5684170 B2 JP5684170 B2 JP 5684170B2
Authority
JP
Japan
Prior art keywords
user
virtual machine
client terminal
user profile
virtual
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.)
Active
Application number
JP2012041379A
Other languages
English (en)
Other versions
JP2013178624A (ja
Inventor
敦史 浅山
敦史 浅山
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2012041379A priority Critical patent/JP5684170B2/ja
Priority to US13/609,784 priority patent/US9092252B2/en
Publication of JP2013178624A publication Critical patent/JP2013178624A/ja
Application granted granted Critical
Publication of JP5684170B2 publication Critical patent/JP5684170B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/188Virtual file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)

Description

本発明の実施形態は、複数のクライアント端末を管理するための情報処理装置、クライアント管理システムおよびクライアント管理方法に関する。
近年、各種企業においては、オフィス内の多数のクライアント端末をサーバによって管理するためのシステム(クライアント管理システム)の導入が検討されている。
クライアント管理システムでは、多数のクライアント端末のデスクトップ環境(オペレーティングシステム、アプリケーション)をクライアント管理システム内のサーバによって集中管理することができる。
さらに、各クライアント端末で使用されるユーザプロファイル(アプリケーションの各種設定、ユーザデータ、等)をサーバ上で集中管理するための技術も開発されている。
特開2000−330954号公報 特開2004−234345号公報 特開2010−205047号公報
ところで、最近では、ユーザが任意のクライアント端末を利用できるようにすることが要求されている。この場合、ユーザがどのクライアント端末を操作する場合でも、同じユーザ環境(同じユーザプロファイル)を容易に使用できるようにするための新たな機能の実現が必要となる。
本発明は、ユーザがどのクライアント端末を操作する場合でも同じユーザ環境を容易に使用することができる情報処理装置、クライアント管理システムおよびクライアント管理方法を提供することを目的とする。
実施形態によれば、情報処理装置はネットワーク上の複数のクライアント端末を管理するクライアント管理システムに適用される。この情報処理装置は、第1の制御手段と、第2の制御手段とを具備する。前記第1の制御手段は、第1のユーザがログオン操作を行った第1のクライアント端末に対応する第1の仮想マシンからの接続要求に応じて、前記第1のユーザの識別子に関連付けられた第1のユーザプロファイルを格納する前記ネットワーク上のストレージ内の第1の格納場所が前記第1の仮想マシンのファイルシステム上にマウントされるように、前記第1の格納場所へのパスを示す情報を、前記第1の仮想マシンに送信する。前記第2の制御手段は、前記第1のユーザが新たにログオン操作を行った第2のクライアント端末に対応する第2の仮想マシンからの接続要求に応じて、前記第1のユーザプロファイルが前記第1のクライアント端末によって使用中であるか否かを判定し、前記第1のユーザプロファイルが使用中である場合、前記第1の仮想マシンに前記第1の格納場所をアンマウントさせると共に、前記第1の格納場所が前記第2の仮想マシンのファイルシステム上にマウントされるように、前記第1の格納場所へのパスを示す情報を、前記第2の仮想マシンに送信する。
実施形態に係る情報処理装置を備えるクライアント管理システムの構成を示すブロック図。 図1のクライアント管理システムとリッチクライアント端末(仮想化クライアント端末)との間の通信手順の例を説明するため図。 図1のクライアント管理システムとシンクライアント端末との間の通信手順の例を説明するため図。 同実施形態に係る情報処理装置(コネクションブローカ)によって提供されるローミング機能を説明するため図。 同実施形態に係る情報処理装置(コネクションブローカ)の機能構成を説明するための図。 同実施形態の情報処理装置(コネクションブローカ)によって管理されるユーザプロファイルを説明するための図。 同実施形態の情報処理装置(コネクションブローカ)によって実行されるユーザプロファイルの排他制御処理を説明するための図。 同実施形態の情報処理装置(コネクションブローカ)の内部構成を示すブロック図。 同実施形態の情報処理装置(コネクションブローカ)で使用されるユーザプロファイル管理テーブルの構成を示す図。 同実施形態の情報処理装置(コネクションブローカ)で使用されるローミング通知要求テーブルの構成を示す図。 図1のクライアント管理システムにクライアント端末を接続するためのログオン処理の手順を示す図。 図1のクライアント管理システムからクライアント端末を切断するためのログオフ処理の手順を示す図。 同実施形態の情報処理装置(コネクションブローカ)によって実行される、ローミング通知要求に対する処理手順の概要を示す図。 同実施形態の情報処理装置(コネクションブローカ)によって実行される、ログオン要求に対する処理手順を示す図。 同実施形態の情報処理装置(コネクションブローカ)によって実行される、ローミング通知要求に対する処理手順を示す図。 同実施形態の情報処理装置(コネクションブローカ)内のサービスプログラムによって実行される、ユーザプロファイル状態を監視する処理の手順を示す図。 同実施形態の情報処理装置(コネクションブローカ)のユーザプロファイル管理処理が適用される4つの2重ログオンシナリオパターンを説明するための図。 第1の2重ログオンシナリオパターンにおいて同実施形態の情報処理装置(コネクションブローカ)によって実行される動作を説明するための図。 第2の2重ログオンシナリオパターンにおいて同実施形態の情報処理装置(コネクションブローカ)によって実行される動作を説明するための図。 第3の2重ログオンシナリオパターンにおいて同実施形態の情報処理装置(コネクションブローカ)によって実行される動作を説明するための図。 第4の2重ログオンシナリオパターンにおいて同実施形態の情報処理装置(コネクションブローカ)によって実行される動作を説明するための図。
以下、実施の形態について図面を参照して説明する。
図1は、一実施形態に係る情報処理装置を備えたクライアント管理システム1の構成を示す。このクライアント管理システム1は複数のクライアント端末を管理するためのサーバシステムである。クライアント管理システム1は1つのまたは複数のサーバ(物理サーバ)によって実現することができる。ここでは、このクライアント管理システム1が複数のサーバによって実件されている場合を想定する。
図1に示されているように、クライアント管理システム1は、管理サーバ21、仮想マシン管理サーバ22、ドメインコントローラ23、仮想イメージ作成&配信サーバ24、シンクライアント実行サーバ25、コネクションブローカ26、プロファイルストレージ27、および仮想イメージストレージ28等を備える。
管理サーバ21、仮想マシン管理サーバ22、ドメインコントローラ23、仮想イメージ作成&配信サーバ24、シンクライアント実行サーバ25、コネクションブローカ26、およびプロファイルストレージ27は、ネットワーク、例えばLAN、に接続されている。複数の第1タイプのクライアント11および複数の第2タイプのクライアント12も上述のネットワーク、例えばLAN、に接続されている。
さらに、管理サーバ21、仮想マシン管理サーバ22、仮想イメージ作成&配信サーバ24、およびシンクライアント実行サーバ25は、ストレージエリアネットワーク(SAN)のような別のネットワークを介して仮想イメージストレージ28にも接続されている。
クライアント管理システム1は例えばオフィス内に配置される。クライアント管理システム1は、オフィス内に配置された複数のクライアント端末を管理サーバ21によって集中管理する。さらに、このクライアント管理システム1では、複数のクライアント端末に適用される複数のユーザプロファイルは、プロファイルストレージ27に格納される。各ユーザプロファイルは、このユーザプロファイルが適用されるクライアント端末のユーザ環境を設定するための設定情報、例えば、各アプリケーションプログラムに関する各種設定情報、デスクトップ画面に関する各種設定情報を含む。さらに、各ユーザプロファイルは、ユーザがアプリケーションプログラムを用いて作成したドキュメントファイルのようなユーザデータも含む。
本実施形態では、クライアント管理システム1は、第1タイプ及び第2タイプの2種類のクライアント端末を管理することができる。図1に示される各クライアント端末11は第1タイプのクライアント端末である。第1タイプのクライアント端末は、いわゆる仮想化クライアント端末である。第1タイプのクライアント端末のローカルストレージには仮想マシンモニタ(ハイパーバイザ)が仮想化ソフトウェアとしてインストールされている。第1タイプのクライアント端末は、仮想化ソフトウェアと、システム1から配信される仮想イメージファイル内のOSおよびアプリケーションプログラムとを実行する。
すなわち、第1タイプのクライアント端末(以下、リッチクライアント端末と称する)11においては、CPU、メモリ、ストレージ、各種I/Oデバイスといった物理ハードウェア101上で仮想マシンモニタ102が実行される。仮想マシンモニタ102はハイパーバイザのような仮想化ソフトウェアであり、物理ハードウェア101のリソースをエミュレートすることによって、物理ハードウェア101上の仮想化層として機能する。仮想化層である仮想マシンモニタ102上では、幾つかの仮想マシンが実行される。図1では、2つの仮想マシン103、104が仮想マシンモニタ102上で実行される場合が想定されている。仮想マシン103は管理OS(ホストOS)201を実行するための仮想マシンである。一方、仮想マシン104は、システム1から配信される仮想イメージファイル内の仮想OS(ゲストOS)301およびアプリケーションプログラム302を実行する。仮想マシン104、つまり、仮想OS(ゲストOS)301およびアプリケーションプログラム302は、リッチクライアント端末11のデスクトップ環境として動作する。
管理OS(ホストOS)201は、仮想マシンモニタ102と共同して、仮想マシン104を制御することができる。管理OS(ホストOS)201は管理モジュール201Aを備える。管理モジュール201Aはシステム1内の仮想イメージ作成&配信サーバ24から仮想イメージファイルをダウンロードすることができる。仮想OS(ゲストOS)301はエージェント301Aを備える。エージェント301Aはシステム1とリッチクライアント端末11とを連携させる処理を実行するプログラムである。
第2タイプのクライアント端末は、シンクライアント端末である。これらシンクライアント端末12は、画面転送プロトコルを使用して、システム1内のシンクライアント実行サーバ25上で実行される仮想マシン504それぞれと通信する。換言すれば、複数のシンクライアント端末12は仮想デスクトップインフラストラクチャ(VDI)を使用してデスクトップ仮想化を実現するための端末(ベース端末)である。これらシンクライアント端末12それぞれのデスクトップ環境(OS、アプリケーション)は、仮想化サーバであるシンクライアント実行サーバ25によって一元管理される。各シンクライアント端末12には、シンクライアント実行サーバ25上の仮想マシン504の一つが割り当てられる。OS、アプリケーションは、シンクライアント端末12上では無く、シンクライアント実行サーバ25上の仮想マシン504によって実行される。
各シンクライアント端末12は、ユーザによる入力デバイス(例えばキーボード、マウス等)の操作に応じた入力情報をシンクライアント実行サーバ25内の対応する仮想マシンに送信する。また、各シンクライアント端末12は、シンクライアント実行サーバ25内の対応する仮想マシンから、入力情報を反映した画面情報を受信する。
すなわち、シンクライアント端末12においては、画面転送ソフトウェア403が実行される。画面転送ソフトウェア403は、画面転送プロトコルを使用して、シンクライアント実行サーバ25内の仮想マシンと通信するプログラムである。画面転送ソフトウェア403はOS上で動作するアプリケーションプログラムであってもよい。この場合、シンクライアント端末12においては、CPU、メモリ、各種I/Oデバイスといった物理ハードウェア401上でOS402が実行され、このOS402上で画面転送ソフトウェア403が実行される。
次に、クライアント管理システム1の各コンポーネントについて説明する。
管理サーバ21はクライアント管理システム1の動作を管理するためのサーバである。管理サーバ21は、LANに接続された図示しない管理者端末からの操作に応じて、クライアント管理システム1を使用可能な各ユーザの管理、および各リッチクライアント端末11に対応する仮想イメージの管理、等を実行することができる。
仮想マシン管理サーバ22はシンクライアント実行サーバ25を管理するためのサーバである。ドメインコントローラ23は、各ユーザおよび各クライアント端末を認証するためのサーバである。仮想イメージ作成&配信サーバ24は、OSおよびアプリケーションプログラムを各々が含む仮想イメージファイルを、複数のリッチクライアント端末11に配信する配信サーバとして機能する。仮想イメージ作成&配信サーバ24は、リッチクライアント端末11用の仮想イメージファイルのみならず、シンクライアント端末12用の仮想イメージファイルを作成することもできる。リッチクライアント端末11用の仮想イメージファイルは、各リッチクライアント端末11に配信される。一方、シンクライアント端末12用の仮想イメージファイルは、シンクライアント実行サーバ25に配信される。各仮想イメージファイルは、例えば、仮想ハードディスク(VHD)フォーマットのようなディスクイメージファイルである。
シンクライアント実行サーバ25は、複数のシンクライアント端末12と画面転送プロトコルを使用して通信するための複数の仮想マシンを実行するサーバである。シンクライアント実行サーバ25は、例えば、サーバ仮想化技術によって仮想化された1つの物理サーバによって実現してもよい。
このシンクライアント実行サーバ25においては、CPU、メモリ、ストレージ、各種I/Oデバイスといった物理ハードウェア501上で仮想マシンモニタ502が実行される。仮想マシンモニタ502はハイパーバイザのような仮想化ソフトウェアであり、物理ハードウェア501のリソースをエミュレートすることによって、物理ハードウェア501上の仮想化層として機能する。仮想マシンモニタ502上では、管理用の1つの仮想マシン503と、仮想デスクトップ環境を実行するための複数の仮想マシン504とが実行される。仮想マシン503は管理OS(ホストOS)503Aを実行する。一方、各仮想マシン504は、仮想イメージ作成&配信サーバ24から配信される仮想イメージファイル内の仮想OS(ゲストOS)601およびアプリケーションプログラム602を実行する。
管理OS(ホストOS)503は、仮想マシンモニタ502と共同して、各仮想マシン504を制御することができる。仮想OS(ゲストOS)601はエージェント601Aを備える。エージェント601Aは、リッチクライアント端末11の仮想マシン104内のエージェント301Aと同様に、システム1と各シンクライアント端末12とを連携させる処理を実行するプログラムである。
コネクションブローカ26は本実施形態の情報処理装置であり、ユーザプロファイルの管理等のためにクライアント管理システム1に適用される。コネクションブローカ26は一つの物理サーバによって実現することができる。
コネクションブローカ26は、複数のユーザそれぞれに対応する複数のユーザプロファイルを格納するプロファイルストレージ27を使用して、複数のユーザプロファイルを管理する。また、コネクションブローカ26は、シンクライアント端末12上でログオン操作を実行したユーザに対して、シンクライアント実行サーバ25上の使用可能な仮想マシンを割り当てるための機能も有している。さらに、コネクションブローカ26は、たとえ各ユーザがどのクライアント端末上でログオン操作を行っても、各ユーザが同じユーザ環境を利用できるようにするための機能(ローミング機能)を有している。
プロファイルストレージ27は、本システム1を使用可能な多数のユーザの識別子(ユーザID)にそれぞれ関連付けられた多数のユーザプロファイルを格納する。すなわち、プロファイルストレージ27は多数のユーザにそれぞれ対応するユーザプロファイルを格納するための多数の格納場所を備える。あるユーザがあるクライアント端末をシステム1に接続(ログオン)するためのログオン操作を行った場合には、そのクライアント端末に対応する仮想マシンのファイルシステムには、そのユーザのユーザIDに関連付けられたユーザプロファイルが自動的にマウントされる。例えば、リッチクライアント端末11のログオン処理においては、ログオン操作を行ったユーザに対応するユーザプロファイルは、そのリッチクライアント端末11内の仮想マシン104のファイルシステム上にマウントされる。リッチクライアント端末11内のローカルストレージにはユーザプロファイル(設定情報、ユーザデータ)の実体は存在せず、ユーザプロファイルの実体はシステム1内で管理される。したがって、リッチクライアント端末11のセキュリティ強化を図ることができる。
一方、シンライアント端末12のログオン処理においては、ログオン操作を行ったユーザのユーザIDに関連づけられたユーザプロファイルが、そのシンクライアント端末12に対応するシンクライアント実行サーバ25内の仮想マシン504のファイルシステム上に自動的にマウントされる。
これにより、各ユーザは、リッチクライアント端末11およびシンクライアント端末12のどちらを操作してシステム1にログオンした場合でも、同じユーザ環境(同じユーザプロファイル)を使用することができる。
仮想イメージストレージ28は仮想イメージ作成&配信サーバ24によって作成された仮想イメージファイルを格納するためのストレージである。なお、プロファイルサーバ27および仮想イメージストレージ28のどちらも、システム1内の図示しないファイルサーバ内のストレージによって実現してもよい。
次に、図2を参照して、リッチクライアント端末11の動作シーケンスについて説明する。
(1)リッチクライアント端末11内の管理モジュール201Aまたはエージェント301Aは、リッチクライアント端末11に適用すべき配信イメージ(仮想イメージファイル)が存在するか否かを管理サーバ21に問い合わせる。例えば、リッチクライアント端末11のローカルストレージに仮想イメージファイルが存在しない場合、あるいはリッチクライアント端末11に既に配信された仮想イメージファイルに対応する更新された仮想イメージファイルがシステム1内に存在するならば、管理サーバ21は、ダウンロードすべき仮想イメージファイルの識別子を管理モジュール201Aまたはエージェント301Aに通知する。
(2)管理モジュール201Aまたはエージェント301Aは、通知された識別子を有する仮想イメージファイルを仮想イメージ作成&配信サーバ24に要求し、その仮想イメージファイルを仮想イメージ作成&配信サーバ24からダウンロードする。リッチクライアント端末11が再起動することにより、ダウンロードされた仮想イメージファイル内のOS(仮想OS)301がスタートされる。
(3)仮想OS301によってログオン画面が表示される。ユーザは、ログオン画面上でログオン操作を行う。仮想OS301はドメインコントローラ23と共同してユーザ認証を行う。ユーザ認証が成功すると、仮想マシン104(エージェント301A)は、接続要求をコネクションブローカ26に送信して、ログオン操作を行ったユーザに対応するユーザプロファイルの格納場所をコネクションブローカ26に問い合わせる。接続要求はリッチクライアント端末11をシステム11に接続(ログオン)するためのリクエストであり、ログオン操作を行ったユーザのユーザカウント(ユーザID)を含む。ユーザIDはユーザを一意に識別するための識別子である。コネクションブローカ26は、このユーザのユーザIDに関連づけられたユーザプロファイルを格納する、プロファイルストレージ27内の格納場所(第1の格納場所)へのパスを示す情報、つまり、ストレージパスを、仮想マシン104(エージェント301A)に送信する。
(4)仮想マシン104(エージェント301A)は、プロファイルストレージ27内の上述のユーザプロファイルを、つまり上述の第1の格納場所を、仮想マシン104(仮想OS301)のファイルシステム上にマウントする。以降、仮想マシン104は、ユーザプロファイルをリードまたはライトするために、リッチクライアント端末11のローカルストレージではなく、プロファイルストレージ27内の第1の格納場所をアクセスする。
次に、図3を参照して、シンクライアント端末12の動作シーケンスについて説明する。
(1)シンクライアント12のOS402または画面転送ソフトウェア403は、使用可能な仮想マシンをコネクションブローカ26に問い合わせる。コネクションブローカ26は、シンクライアント端末12が使用可能なシンクライアント実行サーバ25上の仮想マシンを指定する情報を、シンクライアント端末12に送る。この場合、コネクションブローカ26は、シンクライアント端末12が使用可能な、シンクライアント実行サーバ25上の仮想マシンのリストをシンクライアント端末12に送ってもよい。例えば、コネクションブローカ26は、問い合わせに含まれるユーザIDに基づいて、このユーザに対応するデスクトップ環境を実行可能で、且つ現在使用されていない仮想マシンのリストを表示するための画面を、シンクライアント端末12に送ることができる。ユーザは、仮想マシンのリスト内からある仮想マシンを選択してもよい。
(2)OS402または画面転送ソフトウェア403は、コネクションブローカ26によって指定されたある仮想マシン504に、または仮想マシンのリストから選択されたある仮想マシン504に接続し、その接続された仮想マシン504を起動する。そして、仮想マシン504内の仮想OS601がスタートされる。
(3)仮想OS601によってログオン画面が表示される。ユーザは、ログオン画面上でログオン操作を行う。仮想OS601はドメインコントローラ23と共同してユーザ認証を行う。ユーザ認証が成功すると、仮想マシン504(エージェント601A)は、接続要求をコネクションブローカ26に送信して、ログオン操作を行ったユーザに対応するユーザプロファイルの格納場所をコネクションブローカ26に問い合わせる。接続要求はシンクライアント端末12をシステム11に接続(ログオン)するためのリクエストであり、ログオン操作を行ったユーザのユーザカウント(ユーザID)を含む。コネクションブローカ26は、このユーザのユーザIDに関連づけられたユーザプロファイルを格納する、プロファイルストレージ27内の格納場所へのパスを示す情報、つまり、ストレージパスを、仮想マシン504(エージェント601A)に通知する。
(4)仮想マシン504(エージェント601A)は、プロファイルストレージ27内の上述のユーザプロファイルを仮想マシン504(仮想OS601)のファイルシステム上に自動的にマウントする。以降、仮想マシン504は、ユーザプロファイルをリードまたはライトするために、シンクライアント実行サーバ25のローカルストレージではなく、プロファイルストレージ2内の格納場所をアクセスする。
次に、図4を参照して、コネクションブローカ26によって実行されるローミング機能について説明する。
このローミング機能は、各ユーザがどのリッチクライアント端末11を使用しても、あるいはどのシンクライアント端末12を使用しても、そのユーザに対応する同一のユーザプロファイルを利用できるようにする機能である。
ここで、各ユーザの席上にはリッチクライアント端末11が配置され、会議室またはパブリックスペースにはシンクライアント端末12が配置されている場合を想定する。各ユーザは、自分の席上のリッチクライアント端末11を操作してクライアント管理システム1にログオンすることができる。ユーザが会議室またはパブリックスペースに移動した場合には、ユーザはシンクライアント端末12を操作してクライアント管理システム1にログオンすることができる。この場合、ユーザがどのクライアント端末を使用する場合でも、ローミング機能は、それらクライアント端末に対応する仮想マシンに、同じユーザプロファイルを提供する。
ここで、リッチクライアント端末11上でログオン操作が行われた際にコネクションブローカ26によって実行される処理について説明する。
(1)ユーザ(user1)は、自分の席上のリッチクライアント端末11をシステム1に接続するためのログオン操作を行う。リッチクライアント端末11の仮想マシン104、例えばエージェント301Aは、コネクションブローカ26に接続要求を送信して、ログオン操作を行ったユーザ(user1)に対応するユーザプロファイルの格納場所をコネクションブローカ26に問い合わせる。
(2)コネクションブローカ26は、ユーザ(user1)のユーザプロファイルのストレージパスをリッチクライアント端末11の仮想マシン104に送信する。仮想マシン104は、ユーザ(user1)のユーザプロファイルを仮想マシン104のファイルシステム上にマウントする。仮想マシン104のファイルシステムは、仮想マシン104内の仮想OS301によって管理されるファイルシステムである。仮想OS301は、ファイルシステム上にマウントされたユーザプロファイルをプロファイルストレージ27からリードし、そのユーザプロファイル内の設定情報に基づいて、アプリケーションプログラムの設定およびデスクトップ環境の設定等を行うことができる。また、各種ドキュメントのようなユーザデータもユーザプロファイル内に存在する。仮想OS301は、ファイルシステム上にマウントされたユーザプロファイル内のユーザデータをプロファイルストレージ27からリードし、そのユーザデータをリッチクライアント端末11のディスプレイ上に表示することができる。さらに、更新されたユーザデータまたは設定情報等はリッチクライアント端末11のローカルストレージではなく、プロファイルストレージ27に格納される。
次に、シンクライアント端末12上でログオン操作が行われた際にコネクションブローカ26によって実行される処理について説明する。
(1)ユーザ(user1)は、例えばパブリックスペース等に設置されているシンクライアント端末12をシステム1に接続するためのログオン操作を行う。シンクライアント端末12に対応する、シンクライアント実行サーバ45上の仮想マシン504、例えばエージェント601Aは、コネクションブローカ26に接続要求を送信して、ログオン操作を行ったユーザ(user1)に対応するユーザプロファイルの格納場所をコネクションブローカ26に問い合わせる。
(2)コネクションブローカ26は、ユーザ(user1)のユーザプロファイルのストレージパスを、シンクライアント端末12に対応する、シンクライアント実行サーバ45上の仮想マシン504に送信する。仮想マシン504は、ユーザ(user1)のユーザプロファイルを仮想マシン504のファイルシステム上にマウントする。仮想マシン504のファイルシステムは、仮想マシン504内の仮想OS601によって管理されるファイルシステムである。仮想OS601は、ファイルシステム上にマウントされたユーザプロファイル内の設定情報に基づいて、アプリケーションプログラムの設定およびデスクトップ環境の設定等を行うことができる。
このように、各ユーザは、どのクライアント端末上でログオン操作を行っても、同じユーザ環境を利用することができる。
しかし、あるクライアント端末がシステム1にログオンしてプロファイルストレージ27上のユーザプロファイルを使用している間は、このユーザプロファイルは他のクライアント端末から使用することはできない。このため、あるユーザがあるクライアント端末を用いてシステム1に一旦ログオンした後は、そのクライアント端末上でユーザがログオフ操作またはシャットダウン操作を行わない限り、そのユーザが別のクライアント端末を用いてシステム1へログオンすることはできない。
ユーザは、自席のクライアント端末、例えばリッチクライアント端末11、を用いてシステム1にログオンした状態で、会議室や公共スペースに移動する場合がある。このユーザは、ドキュメントファイル等の自分のユーザデータ等を見るために、会議室や公共スペースに設置されたクライアント端末、例えばシンクライアント端末12を用いてシステム1へのログオンすることを希望する場合がある。しかし、このユーザの自席のリッチクライアント端末11はシステム1にログオンした状態であるので、このユーザのユーザプロファイルはリッチクライアント端末11によって使用中である。したがって、ユーザは、新たにログオン操作を行ったシンクライアント端末12を用いてシステム1に正常にログオンすることができない。
本実施形態では、コネクションブローカ26は、クライアント端末から接続要求が受信された際に、そのクライアント端末上でログオン操作を行ったユーザのユーザプロファイルが他のクライアント端末によって使用中であるか否かを判定する。そして、このユーザプロファイルが使用中であれば、コネクションブローカ26は、このユーザプロファイルを使用中のクライアント端末に対応する仮想マシンに、このユーザプロファイルをアンマウントさせる処理を自動的に実行する。換言すれば、コネクションブローカ26は、このユーザプロファイルを使用しているクライアント端末を、システム1から自動的にログオフさせる。これにより、ユーザは、例えば自席のクライアント端末を用いてシステム1にログオンしたままの状態で、会議室やパブリックスペースに移動した場合でも、その会議室やパブリックスペース内のクライアント端末を用いてシステム1にログオンすることができる。さらに、ユーザは、会議室やパブリックスペースのクライアント端末上においても、自席のクライアント端末と同じユーザ環境を使用できる。
図5は、コネクションブローカ26の機能構成を示している。コネクションブローカ26は第1の制御部261と第2の制御部262とを備える。
(1)第1の制御部261は、ユーザ(第1のユーザ)がログオン操作を行ったクライアント端末11に対応する仮想マシン104内のエージェント601Aからの要求(接続要求)を受信する。
(2)第1の制御部261は、第1のユーザのユーザIDに関連付けられた第1のユーザプロファイルを格納するプロファイルストレージ27内の格納場所(第1の格納場所)が仮想マシン104のファイルシステム上にマウントされるように、第1の格納場所へのパスを示す情報を仮想マシン104内のエージェント601Aに送信する。
プロファイルストレージ27内の各ユーザプロファイルは仮想ハードディスク(VHD)フォーマットのような仮想イメージファイルであってよい。この場合、ユーザプロファイルの仮想イメージファイルは、仮想マシン104のファイルシステム上の所定のマウントポイントにマウントされる。例えば、ユーザプロファイルを格納するための、ファイルシステム内の所定のディレクトリ(ユーザプロファイルディレクトリ)が、上述のマウントポイントとして使用される。この様子を図6に示す。図6に示すように、プロファイルストレージ27においては、複数のユーザID(ユーザID1、ユーザID2、…)に対応するフォルダ(ユーザID1¥、ユーザID2¥、…)が存在する。これらフォルダ(ユーザID1¥、ユーザID2¥、…)には、複数のユーザID(ユーザID1、ユーザID2、…)にそれぞれ関連づけられたユーザプロファイル(UserProfile1.VHD、UserProfile2.VHD、…)が格納されている。仮想マシン104のファイルシステム上のユーザプロファイルディレクトリ(ユーザID1)には、UserProfile1.VHDがマウントされる。
(3)第2の制御部262は、第1のユーザが新たにログオン操作を行ったクライアント端末に対応する仮想マシンから、例えば、クライアント端末12に対応する仮想マシン504内のエージェント601Aから、接続要求を受信する。第2の制御部262は、第1のユーザのユーザIDに関連付けられた上述の第1のユーザプロファイルが他のクライアント端末(ここでは、クライアント端末11)によって使用中であるか否かを判定する。
(4)第1のユーザプロファイルはクライアント端末11によって使用されている。したがって、第2の制御部262は、クライアント端末11に対応する仮想マシン104に、第1のユーザプロファイルつまりプロファイルストレージ27内の上述の第1の格納場所のアンマウントを指示し、仮想マシン104に第1のユーザプロファイルをアンマウントさせる。仮想マシン104に第1のユーザプロファイルをアンマウントさせるために、第2の制御部262は、仮想マシン104に、クライアント端末11をシステム1から切断するためのログオフ処理の実行を指示してもよい。
(5)第1のユーザプロファイルがアンマウントされたならば、第2の制御部262は、第1のユーザプロファイルが仮想マシン504のファイルシステム上にマウントされるように、換言すれば第1のユーザプロファイルを格納するプロファイルストレージ27内の第1の格納場所が仮想マシン504のファイルシステム上にマウントされるように、第1の格納場所へのパスを示す情報を仮想マシン504内のエージェント601Aに送信する。
ここでは、あるユーザがリッチクライアント端末11を用いてシステム1にログオンしている状態で、シンクライアント端末12に移動し、そのシンクライアント端末12を用いてシステム1へのログオンを新たに要求する場合、つまり移動元のクライアント端末がリッチクライアント端末11であり、移動先のクライアント端末がシンクライアント端末12である場合を説明した。しかし、移動元のクライアント端末がシンクライアント端末12で、移動先のクライアント端末がリッチクライアント端末11であってもよい。また、移動元のクライアント端末と移動先のクライアント端末が同じ種類のクライアント端末であってもよい。
以上のコネクションブローカ26の処理により、ユーザは、あるリッチクライアント端末から別のリッチクライアント端末へ、またはあるリッチクライアント端末からシンクライアント端末へ、またはあるシンクライアント端末から別のシンクライアント端末へと、使用するクライアント端末を変更することができ、さらに、移動元のクライアント端末をシステム1から切断するための操作を行うこと無く、移動元と移動先のクライアント端末で同じユーザ環境を使用することができる。
なお、第1のユーザプロファイルが他のクライアント端末によって使用中である場合、第2の制御部262は、接続要求を送信したクライアント端末12に対応する仮想マシン504に、クライアント端末12をシステム1に接続するか否かを確認するための画面(確認画面)をクライアント端末11のディスプレイ上に表示させてもよい。この画面には、クライアント端末11が既にログオン中であることを示すメッセージ、または接続を選択するとクライアント端末11がログオフされることを示すメッセージを表示してもよい。ユーザが画面上で接続(強制接続)を選択したならば、クライアント端末12に対応する仮想マシン504のエージェント601Aは、接続の実行を示す要求(ログオン要求)をコネクションブローカ26に送信する。このログオン要求が受信された際に、第2の制御部262は、仮想マシン104に第1のユーザプロファイルをアンマウントさせる。
ユーザが画面上で接続(強制接続)しないことを選択しなかったならば、クライアント端末12のログオン処理は終了される。クライアント端末11はログオン状態を維持する。よって、必要に応じて、新たにログオン操作したクライアント端末のログオン処理を中断できるので、ユーザが使用するクライアント端末を安全に変更することができる。
次に、図7を参照して、コネクションブローカ26によって実行されるユーザプロファイル排他制御処理を説明する。
図7はユーザプロフィルの状態遷移を表している。コネクションブローカ26は、各ユーザプロファイルが使用中であるか否かを、データベース(DB)を用いて管理する。ユーザが初めてログオン操作を行った場合、コネクションブローカ26内のDBには、このユーザのユーザIDに関連づけられたユーザプロファイルの状態「未使用(false)」が登録される。ユーザがログオン操作を行ったクライアント端末(第1のクライアント端末)に対応する仮想マシンのエージェントは、コネクションブローカ26によって指定されたプロファイルストレージ27上の格納場所に、ユーザプロファイルを作成する。そしてエージェントはこのユーザプロファイルをマウントし、これによって第1のクライアント端末はシステム1にログオンすることができる。第1のクライアント端末がシステム1にログオンすると、第1のクライアント端末に対応する仮想マシンのエージェントはログオン通知をコネクションブローカ26に送信する。このログオン通知が受信された際に、コネクションブローカ26は、上述のユーザプロファイルの状態を「使用中(true)」に設定する。
第1のクライアント端末上でユーザによってログオフ操作が行われると、第1のクライアント端末に対応する仮想マシンのエージェントは、コネクションブローカ26にログオフ通知を送信する。このログオフ通知が受信された際に、コネクションブローカ26は、ユーザプロファイルの状態を「未使用(false)」に設定する。
ユーザが第1のクライアント端末を用いてシステム1にログオンしている状態で、このユーザが他のクライアント端末(第2のクライアント端末)上でログオン操作を行うと、第2のクライアント端末に対応する仮想マシンのエージェントは、ユーザプロファイルの格納場所を問い合わせるために、コネクションブローカ26に接続要求を送信する。コネクションブローカ26は、第2のクライアント端末に上述の確認画面を表示するための処理を実行する。この確認画面には、「他のクライアントがログオン中ですが、ログオンしますか?」といったメッセージが表示される。ユーザによって「Yes」が選択された場合は、第2のクライアント端末に対応する仮想マシンのエージェントは、ログオン要求(強制接続要求)をコネクションブローカ26に送信する。ログオン要求の受信に応答して、コネクションブローカ26は、第1のクライアント端末に対応する仮想マシンにユーザプロファイルをアンマウントさせる。
ユーザプロファイルがアンマウントされると、コネクションブローカ26は、ユーザプロファイルの状態を「未使用(false)」に設定する。ユーザプロファイルの状態が「未使用(false)」に設定された後、コネクションブローカ26は、ユーザプロファイルへのパスを示す情報を、ログオン要求を送信したエージェントに返す。第2のクライアント端末に対応する仮想マシンがプロファイルストレージ27内のユーザプロファイルをマウントしてシステム1にログオンすると、第2のクライアント端末に対応する仮想マシンのエージェントはログオン通知をコネクションブローカ26に送信する。このログオン通知が受信された際に、コネクションブローカ26は、上述のユーザプロファイルの状態を「使用中(true)」に設定する。
次に、図8を参照して、コネクションブローカ26の内部構成について説明する。
各クライアント端末のエージェント301Aまたは601Aとコネクションブローカ26との間の通信は、HTTPのようなプロトコルを用いて実行される。一方、エージェント301Aまたは601Aとプロファイルストレージ27との間の通信は、SMB(Server Message Block)のような、ファイル共有のためのプロトコルを用いて実行される。
コネクションブローカ26は、Webサーバ701、サービスプログラム702、およびデータベース(DB)703を備える。Webサーバ701は各クライアント端末のエージェントと通信するためのソフトウェアであり、ユーザ管理モジュール701Aを備える。ユーザ管理モジュール701Aは上述の第1の制御部261の機能を実行する。さらに、ユーザ管理モジュール701Aは、サービスプログラム702と共同して、上述の第2の制御部262の機能を実行する。
データベース(DB)703は、ユーザプロファイル管理テーブル703Aとローミング通知要求テーブル703Bとを備える。ユーザ管理モジュール701Aは、データベース(DB)703を用いて各ユーザプロファイルの使用状態を管理する処理と、エージェント301Aまたは601Aにユーザプロファイルのストレージパスを通知する処理などを実行する。サービスプログラム702は、プロファイルストレージ27内の個々のユーザプロファイルがアンマウントされたか否かをチェックするための処理を実行する。
ユーザプロファイル管理テーブル703Aは、図9に示すように、複数のユーザプロファイルに対応する複数のエントリを含む。各エントリは、プロファイルID、ユーザID、使用中フラグ、マシンID、及びストレージパスを格納する。プロファイルIDは、ユーザプロファイルを一意に識別するためのプライマリーキーである。ユーザIDは、システム1への接続を要求したユーザの識別子を示す。使用中フラグは、このユーザIDに関連づけられたユーザプロファイルが使用中であるか否かを示す。使用中フラグはtrueまたはfalseのいずれかに設定される。使用中フラグ=trueは、ユーザプロファイルが使用中であることを示す。使用中フラグ=falseは、ユーザプロファイルが使用中でないことを示す。マシンIDは、このマシンIDと同じエントリ内のユーザIDを有するユーザによって現在使用されているクライアント端末の識別子である。ストレージパスは、そのユーザIDに関連づけられたユーザプロファイルの格納場所を示す。
ローミング通知要求テーブル703Bの各エントリは、図10に示すように、ローミングID、ユーザID、マシンID、リクエストマシンIDを格納する。ローミングIDは、ログオン要求(強制接続要求)を一意に識別するためのプライマリーキーである。ユーザIDはログオン要求(強制接続要求)を送信したユーザの識別子、つまりログオンユーザIDである。マシンIDは、ユーザプロファイルを現在使用中のクライアント端末の識別子である。リクエストマシンIDはログオン要求(強制接続要求)を送信したクライアント端末の識別子である。
以下、図11〜図16のシーケンス図を用いて、コネクションブローカ26の一連の動作を説明する。
図11は、クライアント端末をシステム1に接続するためのログオン処理のシーケンス図を示している。
ユーザはクライアント端末上でログオン操作を行い、クライアント端末の画面上にユーザアカウント情報(ユーザID、パスワード等)を入力する(ステップS1)。クライアント端末は、ドメインコントローラ23と共同して、ログオン認証を行う(ステップS2)。ログオン認証が成功、つまり正当なユーザであることが確認されると、クライアント端末に対応する仮想マシン内のエージェントは、コネクションブローカ26に接続要求を送信し、これによってユーザプロファイルの状態および格納場所をコネクションブローカ26に問い合わせる(ステップS3)。この問い合わせはHTTPリクエストを用いて実行される。コネクションブローカ26は、ユーザプロファイルの状態(使用中(true)または未使用(false))と、ユーザプロファイルの格納場所(ストレージパス)とを示すレスポンスを、クライアント端末に対応する仮想マシン内のエージェントに返す。なお、コネクションブローカ26は、ユーザプロファイルが使用中(true)ならば、ユーザプロファイルが使用中(true)であることを示すレスポンスをクライアント端末に対応する仮想マシン内のエージェントに返し、ユーザプロファイルが未使用中(false)ならば、ストレージパスを示すレスポンスをクライアント端末に対応する仮想マシン内のエージェントに返すようにしてもよい。
エージェントは、ユーザプロファイルが使用中であれば、上述の確認画面をクライアント端末のディスプレイに表示する。この確認画面には、ユーザプロファイルを使用中の他のクライアント端末のID(マシンID)を表示してもよい。この場合、「マシンID=xxxでシステムに接続している可能性がありますが、接続しますか?」といったメッセージが表示される。ユーザプロファイルを使用中のクライアント端末のマシンIDを示す情報は、上述のレスポンス内に含めることができる。
ユーザが接続を選択した場合は、エージェントは、ログオン要求(強制接続要求)をコネクションブローカ26に送信する(ステップS4)。また、ユーザが初めて、ログオンする場合は、コネクションブローカ26のプロファイル管理テーブル(Profileテーブル)703AにそのユーザのユーザIDが登録されていないため、コネクションブローカ26は、そのユーザのユーザIDに対応するユーザプロファイルの格納場所を決定して、そしてその格納場所をレスポンスとして返す。するとエージェントは、プロファイルストレージ27内のこのその格納場所にユーザプロファイルを作成する(ステップS5)。
ユーザプロファイルがすでに作成されており、且つユーザプロファイルが未使用であれば、エージェントは、コネクションブローカ26からストレージパスを受信することができる。そして、エージェントは、そのユーザプロファイルの格納場所にアクセスして、ユーザプロファイルを、そのエージェントに対応する仮想マシンのファイルシステムにマウントする(ステップS6)。そして、エージェントは、エージェントに対応するクライアント端末がシステム1にログオンしたことをコネクションブローカ26に通知するために、ユーザIDおよびクライアント端末のマシンIDを含むログオン通知をコネクションブローカ26に送信する(ステップS7)。コネクションブローカ26は、ログオン通知を受けると、Profileテーブル703Aをアクセスして、ログオン通知に含まれるユーザIDに関連づけられたユーザプロファイルの使用中フラグを、使用中(true)にセットする。
その後、エージェントは、ローミング通知要求をコネクションブローカ26に送信する。ローミング通知要求は、2重ログオンの発生をエージェントに通知すべきことをコネクションブローカ26に対して要求するHTTPリクエストである。ローミング通知要求に対する処理シーケンス(ステップS8)の内容は図13、図15を参照して後述する。
図12は、クライアント端末をシステム1から切断するためのログオフ処理のシーケンスを示している。
ユーザがクライアント端末上でログオフ操作を行うと(ステップS11)、そのクライアント端末のエージェントは、クライアント端末をシステム1から切断するためのログオフ処理を行う。このログオフ処理では、エージェントは、ユーザプロファイルをアンマウントする(ステップS12)。クライアント端末がシステム1から切断(ログオフ)されると、エージェントは、コネクションブローカ26に対して、ログオフ通知を送信する(ステップS13)。このログオフ通知には、ユーザのユーザID、クライアント端末のマシンIDが含まれている。コネクションブローカ26は、ログオフ通知を受けると、Profileテーブル703A内の使用中フラグを未使用(false)にセットする。
図13は、ローミング通知要求処理のシーケンス図を示している。
クライアント端末がシステム1にログオンした後、クライアント端末のエージェントは、ローミング通知要求をコネクションブローカ26に送信する(ステップS21)。ローミング通知要求は、上述したように、2重ログオンの発生を通知すべきことをコネクションブローカ26に対して要求するHTTPリクエストである。ローミング通知要求を受信すると、コネクションブローカ26は、システム1にすでにログオンしているユーザが別のクライアント端末を用いてシステム1への新たなログオンを要求するという2重ログオンが発生するかどうかを判定する。ローミング通知要求が受信されてから所定のタイムアウト時間(例えば15分)内に2重ログオンが発生しなかったならば、コネクションブローカ26は、タイムアウトを示すレスポンスをエージェントに返す。エージェントアプリは、再度、ローミング通知要求をコネクションブローカ26に送信する(ステップS22)。
所定のタイムアウト時間(例えば15分)内に2重ログオンが発生したならば、コネクションブローカ26は、ローミング通知要求を送信したクライアント端末のエージェントにユーザプロファイルのアンマウントを指示するために、ローミング通知要求の成功を示すレスポンスをエージェントに返す。成功のレスポンスを受け取ると、エージェントは、ユーザプロファイルをアンマウントする処理を含むログオフ処理を行う(ステップS23)。
図14は、ログオン要求(強制接続要求)が受信された際に実行される、コネクションブローカ26の内部シーケンスを示している。
エージェントからログオン要求(強制接続要求)を受けると、ユーザ管理モジュール701Aは、Roamingテーブル703Bに新たなエントリを追加し、そのエントリに、ログオンユーザIDと、ログオンユーザIDによって要求されたユーザプロファイルを現在使用中のクライアント端末のマシンIDと、ログオン要求を出したクライアント端末のマシンID(リクエストマシンID)とを格納する(ステップS31)。ステップS31では、もしすでに同じログオンユーザIDのエントリがRoamingテーブル703Bに存在するならば、そのエントリ内のリクエストマシンIDが、ログオン要求を出したクライアント端末のマシンIDに変更される。Roamingテーブル703Bにエントリを追加した後に、ユーザ管理モジュール701Aは、リクエストマシンIDに関連づけられた監視タスクを起動する(ステップS32)。
この監視タスクは、Profileテーブル703Aを参照して、ログオン要求によって要求されたユーザプロファイルが未使用(false)となったかどうかを判定する処理を、例えば30秒間隔で定期的に繰り返す。ユーザプロファイルが未使用(false)となったならば、監視タスクは、ユーザ管理モジュール701Aと共同して、ユーザプロファイルのストレージパスを示すレスポンスを、ログオン要求を送信したクライアント端末のエージェントに返す。
もし所定のタイムアウト時間(例えば5分)内にユーザプロファイルが未使用(false)とならなかったならば、ユーザ管理モジュール701Aは、ログオン要求を送信したクライアント端末のエージェントにタイムアウトを送信する。エージェントは、再度、ログオン要求をコネクションブローカ26に送信してもよい。
以下、監視タスクの動作を説明する。
監視タスクは、まず、Roamingテーブル703B内の情報の一覧を取得し(ステップS33)、追加されたエントリ内のリクエストマシンIDが変更されているかどうか、つまり、追加されたエントリ内のリクエストマシンIDが、監視タスクに関連づけられたリクエストマシンIDと異なるかどうかを判定する(ステップS34)。追加されたエントリ内のリクエストマシンIDが、監視タスクに関連づけられたリクエストマシンIDと異なる場合には、監視タスクが起動された後に、同じユーザがさらに別のクライアント端末を操作することによって別のログオン要求が受信された可能性がある。同じユーザからの複数のログオン要求が存在する場合には、最も後のログオン要求が有効となる。たとえば、あるユーザがクライアント端末(PC1)をシステム1にログオンしたまま、別のクライアント端末(PC2)を用いてシステム1へのログオンを試行し、さらに別のクライアント端末(PC3)を用いてシステム1へのログオンを試行した場合(3重ログオン)には、クライアント端末(PC3)からのログオン要求が、クライアント端末(PC2)のログオン要求よりも優先され、クライアント端末(PC3)のログオン要求が有効となる。クライアント端末(PC2)のログオン要求は、ログオン要求の衝突により、無効化される。
追加されたエントリ内のリクエストマシンIDが、監視タスクに関連づけられたリクエストマシンIDと異なるならば、監視タスクは、ログオン要求の衝突が発生したことを示すメッセージをユーザ管理モジュール701Aに送信する(ステップS35)。ユーザ管理モジュール701Aは、ログオン要求の衝突の発生を示す内部フラグ(conflict)をセットし、ログオン要求の衝突の発生によってログオン要求が失敗したことを示すレスポンスを、ログオン要求を送信したクライアント端末のエージェントに返す(ステップS36)。
追加されたエントリ内のリクエストマシンIDが、監視タスクに関連づけられたリクエストマシンIDと一致するならば、監視タスクは、Profileテーブル703Bから、ログオン要求したユーザIDに対応する情報を取得する(ステップS37)。そして、監視タスクは、ログオン要求したユーザIDに関連づけられたユーザプロファイルの使用中フラグの値をチェックし、このユーザプロファイルが未使用(false)となったかどうかを判定する(ステップS38)。未使用となったならば、つまり、使用中フラグ=falseであるならば、監視タスクは、サービスプログラム702に対して(あるいはユーザ管理モジュール701Aに対して)、Roamingテーブル703Bに追加されたエントリの削除を要求する(ステップS39)。そして、監視タスクは、このエントリが削除されたかどうかを定期的にチェックする(ステップS34)。このエントリが削除されたことが確認されたならば、監視タスクは、ログオン要求の成功を示すメッセージをユーザ管理モジュール701Aに送信する(ステップS41)。ユーザ管理モジュール701Aは、ログオン要求の成功を示すレスポンスをエージェントに返し、これによってユーザプロファイルのストレージパスをエージェントに通知する(ステップS42)。ユーザプロファイルが未使用(false)となってから、あるタイムアウト時間内に、上述のエントリが削除されなかったならば、監視タスクは、ログオン要求の失敗を示すメッセージをユーザ管理モジュール701Aに送信してもよい(ステップS43)。ユーザ管理モジュール701Aは、ログオン要求を送信したクライアント端末のエージェントにタイムアウトを示すレスポンスを返してもよい(ステップS43)。
監視タスクの起動から所定のタイムアウト時間内にユーザプロファイルが未使用(false)とならなかったならば、監視タスクは、ログオン要求の失敗を示すメッセージをユーザ管理モジュール701Aに送信する(ステップS45)。ユーザ管理モジュール701Aは、ログオン要求を送信したクライアント端末のエージェントにタイムアウトを示すレスポンスを返す(ステップS46)。
図15は、ローミング通知要求が受信された際に実行される、コネクションブローカ26の内部シーケンスを示している。
ローミング通知要求をクライアント端末に対応するエージェントから受けると、ユーザ管理モジュール701Aは、監視タスクを起動する(ステップS51)。監視タスクは、Roamingテーブル703Bを参照して、ローミング通知要求を送信したユーザIDと同じユーザIDを有するログオン要求が発生したがどうかを判定する処理を、例えば30秒間隔で定期的に繰り返す。ローミング通知要求を送信したユーザIDと同じユーザIDを有するログオン要求が発生したならば、監視タスクは、ユーザ管理モジュール701Aと共同して、ローミング通知要求を送信したクライアント端末のエージェントにログオフを指示し、これによってエージェントにユーザプロファイルをアンマウントさせる。
もし所定のタイムアウト時間(例えば15分)内に、ローミング通知要求を送信したユーザIDと同じユーザIDを有するログオン要求が発生しなかったならば、ユーザ管理モジュール701Aは、ローミング通知要求を送信したクライアント端末のエージェントにタイムアウトを送信する。エージェントは、再度、ローミング通知要求をコネクションブローカ26に送信してもよい。
以下、監視タスクの動作を説明する。
監視タスクは、ローミング通知要求を送信したクライアント端末が強制シャットダウン処理等によって既にログオフ状態であるか否かを判定する。すなわち、監視タスクは、ローミング通知要求を送信したユーザIDに対応するプロファイル情報をProfileテーブル703Aから取得し(ステップS52)、ローミング通知要求を送信したユーザIDに対応する使用中フラグが未使用(false)となっているかどうかを判定する(ステップS53)。使用中フラグが未使用(false)であるならば、ローミング通知要求を送信したクライアント端末は既にログオフされていると認識することができる。したがって、使用中フラグが未使用(false)であるならば、監視タスクは、ログオフを検出したことを示すメッセージをユーザ管理モジュール701Aに返す(ステップS54)。これに応答して、ユーザ管理モジュール701Aは、例えばコンフリクトのメッセージ等を、ローミング通知要求に対するレスポンスとしてエージェントに送信してもよい(ステップS55)。
ローミング通知要求を送信したユーザIDに対応する使用中フラグが使用中(true)である場合には、監視タスクは、以下の処理を実行する。
すなわち、監視タスクは、まず、Roamingテーブル703B内の情報の一覧を取得し(ステップS56)、ローミング通知要求を出したユーザIDと同じユーザIDのエントリがRoamingテーブル703Bに追加されたかどうか、つまり、ローミング通知要求を出したユーザIDとログオン要求を出したユーザIDが一致するかどうかを判定する(ステップS57)。ローミング通知要求を出したユーザIDとログオン要求を出したユーザIDが一致する場合、監視タスクは、ローミング通知要求の成功を示すメッセージ(true)をユーザ管理モジュール701Aに送信する(ステップS58)。ユーザ管理モジュール701Aは、ローミング通知要求の成功を示すレスポンスをエージェントに返し、エージェントに対して、ユーザプロファイルをアンマウントすべきこと、つまりシステム1からログオフすべきことを指示する(ステップS59)。
所定のタイムアウト時間内に、ローミング通知要求を出したユーザIDと同じユーザIDのエントリがRoamingテーブル703Bに追加されなかったならば、監視タスクは、ローミング通知要求の失敗を示すメッセージをユーザ管理モジュール701Aに送信する(ステップS60A)。ユーザ管理モジュール701Aは、ローミング通知要求を送信したクライアント端末のエージェントにタイムアウトを示すレスポンスを返す(ステップS60B)。
このように、本実施形態では、HTTPのリクエスト(ローミング通知要求、ログオン要求)はコネクションブローカ26側で保持され、適切なタイミングでレスポンスがエージャントに返される。したがって、ユーザが、使用中のクライアント端末(移動元のクライアント端末)をログオフすることなく別のクライアント端末(移動先のクライアント端末)に移動し、移動先のクライアント端末上でログオン操作を行った場合に、移動元のクライアント端末をシステム1から自動的にログオフさせることができ、さらに移動元のクライアント端末がシステム1からログオフした後に移動先のクライアント端末にユーザプロファイルをマウントさせることができる。
図16は、コネクションブローカ26のサービスプログラム702の内部シーケンスを示している。サービスプログラム702は、ログオン要求によって要求されたユーザプロファイルを使用しているクライアント端末に対応する仮想マシン内のエージェントに、ユーザプロファイルをアンマウントさせるために、ユーザプロファイルが別のクライアント端末によって要求されていることを示す通知ファイルを、そのユーザプロファイルが存在する、ユーザプロファイルストレージ27上のフォルダに格納する。たとえエージェントとコネクションブローカ26との間の通信(HTTPプロトコルを使用した通信)に障害が発生した場合でも、通知ファイルは、ログオン要求によって要求されたユーザプロファイルを使用中のクライアント端末のエージェントにユーザプロファイルをアンマウントさせることができる。
さらに、サービスプログラム702は、ユーザプロファイルストレージ27をアクセスして、ログオン要求によって要求されたユーザプロファイルの仮想イメージファイル(Userprofile.vhd)がオープンできるか否かを判定する。ユーザプロファイルが使用中であれば、ユーザプロファイルをオープンすることはできない。したがって、ユーザプロファイルをオープンできたならば、ユーザプロファイルがアンマウントされたと判定することができる。これにより、たとえエージェントとコネクションブローカ26との間の通信に障害が発生した場合でも、ログオン要求によって要求されたユーザプロファイルがアンマウントされたか否かを正しく判定することができる。
コネクションブローカ26のOSが起動されると、このOSによってサービスプログラム702が自動的に起動される(ステップS61)。サービスプログラム702が起動された際に、サービスプログラム702は、ワーカースレッドを起動する(ステップS62)。ワーカースレッドは、ユーザプロファイル状態を監視するためのタイマースレッドを、定期的に(例えば30s間隔で)繰り返し実行する(ステップS63)。
タイマースレッドは、Roamingテーブル703Bの各エントリの情報を取得し(ステップS64)、ログオン要求が存在すれば、ユーザプロファイルストレージ27内のフォルダに、上述の通知ファイルを作成する(ステップS65)。たとえばログオン要求を出したユーザIDに関連づけられたユーザプロファイルが図6のUserProfile1.vhdである場合には、通知ファイルは、ユーザプロファイルストレージ27内のフォルダ(ユーザID1¥)に格納される。通知ファイルのファイル名には、移動元のクライアント端末のマシンID、つまり、ログオン要求によって要求されたユーザプロファイル(UserProfile1.vhd)を現在使用しているクライアント端末のマシンIDを使用してもよい。これにより、ユーザプロファイル(UserProfile1.vhd)を現在使用しているクライアント端末のエージェントに、自身が使用中のユーザプロファイル(UserProfile1.vhd)が他のクライアント端末から要求されていることを正しく通知することができる。また、ユーザプロファイル(UserProfile1.vhd)を使用中のクライアント端末のマシンID、ドメイン名およびコンピュータ名をファイル名に使用してもよい。この場合、ファイル名は、(マシンID).(ドメイン名).(コンピュータ名)であってもよい。
タイマースレッドは、ログオン要求を出したユーザIDに関連づけられたユーザプロファイルのオープンを試行し、ユーザプロファイルがオープンできるか否かに応じて、このユーザプロファイルが使用中であるか否かを判定する(ステップS66)。ユーザプロファイルを使用中のクライアント端末のエージェントがこのユーザプロファイルをアンマウントすると、このユーザプロファイルをオープンすることが可能となる。
ユーザプロファイルをオープンできた場合には、タイマースレッドは、オープンできたユーザプロファイルが存在するフォルダ内の通知ファイルを削除する(ステップS67)。そして、タイマースレッドは、オープンできたユーザプロファイルに対応する、Roamingテーブル703B内のエントリを削除する(ステップS68)。さらに、タイマースレッドは、オープンできたユーザプロファイルに対応する、Profileテーブル703A内の使用中フラグを未使用(false)にセットする処理を行う(ステップS69)。
図17はコネクションブローカ26のユーザプロファイル管理処理が適用される4つの2重ログオンシナリオパターンを示している。どのシナリオパターンにおいても、ユーザ(User1)がクライアント端末(PC1)を使用してシステム1にログオンしている状態で、ユーザ(User1)が別のクライアント端末(PC2)を使用してシステム1にログオンしようとした場合が想定されている。以下、各パターンにおける処理について説明する。
図18は、2重ログオンシナリオパターン1の場合のコネクションブローカ26の動作を示している。
(1)ユーザ(User1)がPC1上でログオン操作を行う。PC1に対応する仮想マシン(エージェント)は接続要求をコネクションブローカ26に送信する。コネクションブローカ26は、PC1に対応する仮想マシンに、ユーザ(User1)に関連づけられたユーザプロファイルが格納されているプロファイルストレージ27内の第1の格納場所を示すストレージパスを通知して、PC1に対応する仮想マシンに、ユーザプロファイルを、つまりプロファイルストレージ27内の第1の格納場所を、仮想マシンのファイルシステム上にマウントさせる。
(2)PC1に対応する仮想マシンはコネクションブローカ26にログオン通知を送信する。コネクションブローカ26は、ユーザ(User1)に関連づけられたユーザプロファイルに対応する使用中フラグの状態を使用中にセットする。
(3)PC1に対応する仮想マシンはコネクションブローカ26にローミング通知要求を送信する。
(4)ユーザ(User1)は、PC1がシステム1にログオンされている状態で、PC2に移動する。そして、ユーザ(User1)がPC2上でログオン操作を行う。
(5)PC2に対応する仮想マシン(エージェント)は接続要求をコネクションブローカ26に送信する。コネクションブローカ26は、ユーザ(User1)に関連づけられたユーザプロファイルが他のクライアント端末によって使用されているか否かを判定する。ここでは、ユーザ(User1)に関連づけられたユーザプロファイルはPC1によって使用されているので、コネクションブローカ26は、ユーザプロファイルが使用中であることを示すレスポンスをPC2に対応する仮想マシンに返し、PC2に対応する仮想マシンに、上述の確認画面をPC2のディスプレイ上に表示させる。
(6)ユーザ(User1)が確認画面上のYESを選択すると、PC2に対応する仮想マシンは、接続の実行を示すログオン要求(強制接続要求)をコネクションブローカ26に送信する。コネクションブローカ26は、Roamingテーブル703Bにエントリを追加する。この追加されたエントリには、ユーザID=User1、マシンID=PC1、リクエストマシンID=PC2というように情報が格納される。
(7)コネクションブローカ26は、ローミング通知要求に対するレスポンスをPC1に返して、PC1に対応する仮想マシンに、ユーザ(User1)に関連づけられたユーザプロファイルのアンマウントを指示する。
(8)PC1に対応する仮想マシンは、ログオフ処理を開始し、ユーザ(User1)に関連づけられたユーザプロファイルを、つまりプロファイルストレージ27内の第1の格納場所をアンマウントする。
(9)ログオフ処理が完了すると、つまりプロファイルストレージ27内の第1の格納場所がアンマウントされると、PC1に対応する仮想マシンは、ログオフ通知をコネクションブローカ26に送信する。ログオフ通知が受信された際、コネクションブローカ26は、ユーザ(User1)に関連づけられたユーザプロファイルに対応する使用中フラグの状態を未使用(false)にセットする。また、コネクションブローカ26内では、上述のサービスプログラム702もバックグラウンドで動作する。このサービスプログラム702は、Roamingテーブル703BへのUser1のエントリの追加を検出すると、通知ファイルを作成すると共に、およびUser1のユーザプロファイルが開けるかのチェックを行う。ユーザプロファイルが開けることを確認したら、サービスプログラム702は、Roamingテーブル703BのUser1のエントリを削除すると共に、User1のユーザプロファイルに対応する使用中フラグの状態を未使用(false)にセットする。
(10)User1のユーザプロファイルに対応する使用中フラグの状態が未使用(false)にセットされると、コネクションブローカ26は、PC2に対応する仮想マシンに、ユーザ(User1)に関連づけられたユーザプロファイルが格納されているプロファイルストレージ27内の第1の格納場所を示すストレージパスを通知して、PC2に対応する仮想マシンに、ユーザプロファイルを、つまりプロファイルストレージ27内の第1の格納場所を、その仮想マシンのファイルシステム上にマウントさせる。
図19は、2重ログオンシナリオパターン2の場合のコネクションブローカ26の動作を示している。
(1)〜(7)の処理はシナリオパターン1と同じである。シナリオパターン2では、PC1とプロファイルストレージ27との間の通信が障害によって切断された場合を想定している。この場合、PC1に対応する仮想マシンは正常にログオフ処理を実行できない可能性がある。しかし、PC1とプロファイルストレージ27との間の通信が障害によって切断された場合には、User1のユーザプロファイルを開くことができる。サービスプログラム702は、User1のユーザプロファイルを開くことができることを確認すると、Roamingテーブル703BのUser1のエントリを削除すると共に、User1のユーザプロファイルに対応する使用中フラグの状態を未使用(false)にセットする。
よって、たとえPC1とプロファイルストレージ27との間の通信が障害によって切断されても、User1のユーザプロファイルに対応する使用中フラグの状態を未使用(false)にセットできるので、コネクションブローカ26は、PC2に対応する仮想マシンに、ユーザ(User1)に関連づけられたユーザプロファイルが格納されているプロファイルストレージ27内の第1の格納場所を示すストレージパスを通知することができる((10))。
図20は、2重ログオンシナリオパターン3の場合のコネクションブローカ26の動作を示している。
(1)〜(6)の処理はシナリオパターン1と同じである。シナリオパターン3では、(6)の処理の後に、PC1とコネクションブローカ26との間の通信が障害によって切断された場合を想定している。この場合、ローミング通知要求に対するレスポンスをコネクションブローカ26からPC1に送信することができなくなる可能性がある。サービスプログラム702は、通知ファイルを作成し、その通知ファイルを、第1の格納場所が存在する、プロファイルストレージ27内のフォルダに格納する。また、PC1に対応する仮想マシン(その仮想マシン内のエージェント)は、コネクションブローカ26とその仮想マシンとの間の接続が切断されたのを検出すると、第1の格納場所が存在する、プロファイルストレージ27内のフォルダに通知ファイルが作成されたかの監視を定期的に行う。仮想マシンは、例えば、PC1のマシンIDをファイル名として含む通知ファイルがフォルダ内に存在するかどうかを判定する。通知ファイルが存在する場合には、仮想マシンは、ログオフ処理を開始し、ユーザ(User1)に関連づけられたユーザプロファイルを、つまりプロファイルストレージ27内の第1の格納場所をアンマウントする((8))。サービスプログラム702は、User1のユーザプロファイルが開けるかのチェックを行う。ユーザプロファイルが開けることを確認したら、サービスプログラム702は、Roamingテーブル703BのUser1のエントリを削除すると共に、User1のユーザプロファイルに対応する使用中フラグの状態を未使用(false)にセットする。
よって、たとえPC1とコネクションブローカ26との間の通信の障害によって、ローミング通知要求に対するレスポンスをPC1に送信できない場合でも、PC1にUser1のユーザプロファイルをアンマウントさせることができ、さらに、User1のユーザプロファイルに対応する使用中フラグの状態を未使用(false)にセットできる。よって、コネクションブローカ26は、PC2に対応する仮想マシンに、ユーザ(User1)に関連づけられたユーザプロファイルが格納されているプロファイルストレージ27内の第1の格納場所を示すストレージパスを通知することができる((10))。
図21は、2重ログオンシナリオパターン4の場合のコネクションブローカ26の動作を示している。
(1)〜(6)の処理はシナリオパターン1と同じである。シナリオパターン4では、(6)の処理の後に、PC1とコネクションブローカ26との間の通信が障害によって切断された場合を想定している。シナリオパターン4では、さらに、PC1とプロファイルストレージ27との間の通信が障害によって切断された場合を想定している。この場合、PC1に対応する仮想マシンは通知ファイルを検出できない可能性がある。しかし、PC1とプロファイルストレージ27との間の通信が障害によって切断された場合には、User1のユーザプロファイルを開くことができる。サービスプログラム702は、User1のユーザプロファイルを開くことができることを確認すると、Roamingテーブル703BのUser1のエントリを削除すると共に、User1のユーザプロファイルに対応する使用中フラグの状態を未使用(false)にセットする。
よって、コネクションブローカ26は、PC2に対応する仮想マシンに、ユーザ(User1)に関連づけられたユーザプロファイルが格納されているプロファイルストレージ27内の第1の格納場所を示すストレージパスを通知することができる((10))。
なお、以上の説明では、ユーザが移動先のクライアント端末の確認画面上でYESを選択した場合にログオン要求がコネクションブローカ26に送信される場合を説明したが、ユーザによる移動先のクライアント端末上でのログオン操作に応じてコネクションブローカ26に送信される接続要求の受信時に、移動先のクライアント端末の仮想マシンにユーザプロファイルをアンマウントさせるようにしてもよい。
以上のように、本実施形態によれば、第1のユーザがログオン操作を行った第1のクライアント端末に対応する第1の仮想マシンからの接続要求に応じて、第1のユーザの識別子に関連付けられた第1のユーザプロファイルを格納するネットワーク上のプロファイルストレージ17内の第1の格納場所が第1のクライアント端末に対応する第1の仮想マシンのファイルシステム上にマウントされるように、第1の格納場所へのパスを示す情報が、第1のクライアント端末に対応する第1の仮想マシンに送信される。そして、第1のユーザが新たにログオン操作を行った第2のクライアント端末に対応する第2の仮想マシンからの接続要求に応じて、第1のユーザプロファイルが第1のクライアント端末によって使用中であるか否かが判定される。第1のユーザプロファイルが使用中である場合には、第1のクライアント端末に対応する第1の仮想マシンに第1の格納場所をアンマウントさせるための処理が実行される。そして、第1の格納場所が第2のクライアント端末に対応する第2の仮想マシンのファイルシステム上にマウントされるように、第1の格納場所へのパスを示す情報が、第2のクライアント端末に対応する第2の仮想マシンに送信される。
したがって、ユーザが第1のクライアント端末を使用してシステムにログオンしたまま、第2のクライアント端末上でログオン操作をした場合には、第1のクライアント端末に自動的に第1のユーザプロファイルをアンマウントさせることができるので、ユーザがどのクライアント端末を操作する場合でも同じユーザ環境を容易に使用することができる。
例えば、ユーザは、例えば自席のクライアント端末を用いてシステム1にログオンしたままの状態で、会議室やパブリックスペースに移動した場合でも、その会議室やパブリックスペース内のクライアント端末を用いてシステム1にログオンすることができる。さらに、ユーザは、会議室やパブリックスペースのクライアント端末上においても、自席のクライアント端末と同じユーザ環境を使用できる。
なお、本実施形態の処理の手順は全てソフトウェアによって実行することができるので、本実施形態の処理の手順を実行するプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのプログラムを、サーバコンピュータのようなコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
11…リッチクライアント端末、12…シンクライアント端末、24…仮想イメージ作成&配信サーバ、25…シンクライアント実行サーバ、26…コネクションブローカ、27…プロファイルストレージ、104…リッチクライアント端末に対応する仮想マシン、504…シンクライアント端末に対応する仮想マシン、261…第1の制御部、262…第2の制御部。

Claims (8)

  1. クライアント管理システムからネットワークを介して配信される仮想イメージファイル内のオペレーティングシステムおよびアプリケーションプログラムを実行する複数の仮想化リッチクライアント端末と、画面転送プロトコルを使用してシンクライアント実行サーバと通信する複数のシンクライアント端末とを管理する前記クライアント管理システムに適用される情報処理装置であって、
    ユーザの識別子、前記ユーザに対応するユーザプロファイルの識別子、前記ユーザプロファイルが使用中であるか否かを示すフラグ、及び前記ユーザプロファイルの格納場所へのパスを示す情報、を関連付けて記憶する記憶手段と、
    第1のユーザがログオン操作を行った仮想化リッチクライアント端末に対応する第1の仮想マシンからの接続要求であって、前記第1のユーザの識別子を含む前記接続要求に応じて、前記第1のユーザの識別子に関連付けられた第1のユーザプロファイルを格納する前記ネットワーク上のストレージ内の第1の格納場所が前記第1の仮想マシンのファイルシステム上にマウントされるように、前記記憶手段に記憶された前記第1の格納場所へのパスを示す情報を、前記第1の仮想マシンに送信し、前記第1の仮想マシンから第1のユーザの識別子を含むログオン通知を受けると、前記記憶手段にアクセスして前記ログオン通知に含まれる第1のユーザの識別子に関連付けられた前記フラグを、前記使用中であることを示す状態にセットする第1の制御手段と、
    前記シンクライアント実行サーバ内の複数の仮想マシンのうちの使用可能な仮想マシンの問い合わせをシンクライアント端末から受けると、前記使用可能な第2の仮想マシンを指定する情報を前記シンクライアント端末に送信し、前記シンクライアント端末に起動された前記第2の仮想マシンであって前記第1のユーザが新たにログオン操作を行った前記シンクライアント端末に対応する前記第2の仮想マシンからの接続要求に応じて、前記第1のユーザプロファイルが前記仮想化リッチクライアント端末によって使用中であるか否かを判定し、前記第1のユーザプロファイルが使用中である場合、前記第1の仮想マシンに前記第1の格納場所をアンマウントさせ、前記第1の仮想マシンから第1のユーザの識別子を含むログオフ通知を受けると、前記記憶手段にアクセスして前記ログオフ通知に含まれる第1のユーザの識別子に関連付けられた前記フラグを、未使用であることを示す状態にセットすると共に、前記第1の格納場所が前記第2の仮想マシンのファイルシステム上にマウントされるように、前記第1の格納場所へのパスを示す情報を、前記第2の仮想マシンに送信し、前記第2の仮想マシンから第1のユーザの識別子を含むログオン通知を受けると、前記記憶手段にアクセスして前記ログオン通知に含まれる第1のユーザの識別子に関連付けられた前記フラグを、前記使用中であることを示す状態にセットする第2の制御手段とを具備し、
    前記第2の仮想マシンは、前記シンクライアント端末と画面転送プロトコルを使用して通信するための仮想マシンであって、前記仮想イメージファイル内の前記オペレーティングシステム及び前記アプリケーションプログラムを実行する、
    情報処理装置。
  2. 前記第2の制御手段は、前記第1のユーザプロファイルが使用中である場合、前記第2の仮想マシンに、前記シンクライアント端末を前記クライアント管理システムに接続するか否かを確認するための画面を前記シンクライアント端末のディスプレイ上に表示させ、前記第2の仮想マシンから前記接続の実行を示す要求を受信した場合、前記第1の仮想マシンに前記第1の格納場所をアンマウントさせる請求項1記載の情報処理装置。
  3. 前記第2の制御手段は、前記第1の仮想マシンに前記第1の格納場所をアンマウントさせるために、前記第1の仮想マシンに、前記仮想化リッチクライアント端末を前記クライアント管理システムから切断するためのログオフ処理の実行を指示する請求項1記載の情報処理装置。
  4. 前記第2の制御手段は、前記第1の仮想マシンに前記第1の格納場所をアンマウントさせるために、前記第1のユーザプロファイルが別のクライアント端末によって要求されていることを示す通知ファイルを、前記第1の格納場所が存在する、前記ストレージ上のフォルダに格納する請求項1記載の情報処理装置。
  5. ネットワークを介して配信される仮想イメージファイル内のオペレーティングシステムおよびアプリケーションプログラムを実行する複数の仮想化リッチクライアント端末と、画面転送プロトコルを使用してシンクライアント実行サーバと通信する複数のシンクライアント端末とを管理するクライアント管理システムであって、
    前記ネットワーク上の複数のシンクライアント端末と画面転送プロトコルを使用して通信するための複数の仮想マシンのうち、前記シンクライアント端末に接続された仮想マシンであって、前記仮想イメージファイル内の前記オペレーティングシステム及び前記アプリケーションプログラムを実行する前記仮想マシンを実行するシンクライアント実行サーバと、
    仮想化ソフトウェアを実行する前記ネットワーク上の複数の仮想化リッチクライアント端末に、前記ペレーティングシステムおよび前記アプリケーションプログラムを含む前記仮想イメージファイルを配信する配信サーバと、
    複数のユーザそれぞれに対応する複数のユーザプロファイルを格納するストレージを使用して、前記複数のユーザプロファイルを管理するプロファイル管理手段とを具備し、
    前記プロファイル管理手段は、
    ユーザの識別子、前記ユーザに対応するユーザプロファイルの識別子、前記ユーザプロファイルが使用中であるか否かを示すフラグ、及び前記ユーザプロファイルの格納場所へのパスを示す情報、を関連付けて記憶する記憶手段と、
    第1のユーザがログオン操作を行った仮想化リッチクライアント端末に対応する第1の仮想マシンからの接続要求であって、前記第1のユーザの識別子を含む前記接続要求に応じて、前記第1のユーザの識別子に関連付けられた第1のユーザプロファイルを格納する前記ストレージ内の第1の格納場所が前記第1の仮想マシンのファイルシステム上にマウントされるように、前記記憶手段に記憶された前記第1の格納場所へのパスを示す情報を、前記第1の仮想マシンに送信し、前記第1の仮想マシンから第1のユーザの識別子を含むログオン通知を受けると、前記記憶手段にアクセスして前記ログオン通知に含まれる第1のユーザの識別子に関連付けられた前記フラグを、前記使用中であることを示す状態にセットする第1の制御手段と、
    前記シンクライアント実行サーバ内の複数の仮想マシンのうちの使用可能な仮想マシンの問い合わせをシンクライアント端末から受けると、前記使用可能な第2の仮想マシンを指定する情報を前記シンクライアント端末に送信し、前記シンクライアント端末に起動された前記第2の仮想マシンであって前記第1のユーザが新たにログオン操作を行った前記シンクライアント端末に対応する前記第2の仮想マシンからの接続要求に応じて、前記第1のユーザプロファイルが前記仮想化リッチクライアント端末によって使用中であるか否かを判定し、前記第1のユーザプロファイルが使用中である場合、前記第1の仮想マシンに前記第1の格納場所をアンマウントさせ、前記第1の仮想マシンから第1のユーザの識別子を含むログオフ通知を受けると、前記記憶手段にアクセスして前記ログオフ通知に含まれる第1のユーザの識別子に関連付けられた前記フラグを、未使用であることを示す状態にセットすると共に、前記第1の格納場所が前記第2の仮想マシンのファイルシステム上にマウントされるように、前記第1の格納場所へのパスを示す情報を、前記第2の仮想マシンに送信し、前記第2の仮想マシンから第1のユーザの識別子を含むログオン通知を受けると、前記記憶手段にアクセスして前記ログオン通知に含まれる第1のユーザの識別子に関連付けられた前記フラグを、前記使用中であることを示す状態にセットする第2の制御手段とを具備する、クライアント管理システム。
  6. 前記第2の制御手段は、前記第1のユーザプロファイルが使用中である場合、前記第2の仮想マシンに、前記シンクライアント端末を前記クライアント管理システムに接続するか否かを確認するための画面を前記シンクライアント端末のディスプレイ上に表示させ、前記第2の仮想マシンから前記接続の実行を示す要求を受信した場合、前記第1の仮想マシンに前記第1の格納場所をアンマウントさせる請求項記載のクライアント管理システム。
  7. ネットワークを介して配信される仮想イメージファイル内のオペレーティングシステムおよびアプリケーションプログラムを実行する複数の仮想化リッチクライアント端末と、画面転送プロトコルを使用してシンクライアント実行サーバと通信する複数のシンクライアント端末とを管理するクライアント管理方法であり、ユーザの識別子、前記ユーザに対応するユーザプロファイルの識別子、前記ユーザプロファイルが使用中であるか否かを示すフラグ、及び前記ユーザプロファイルの格納場所へのパスを示す情報、を関連付けて記憶する記憶手段を用いる前記クライアント管理方法であって、
    第1のユーザがログオン操作を行った仮想化リッチクライアント端末に対応する第1の仮想マシンからの接続要求であって、前記第1のユーザの識別子を含む前記接続要求に応じて、前記第1のユーザの識別子に関連付けられた第1のユーザプロファイルを格納する前記ネットワーク上のストレージ内の第1の格納場所が前記第1の仮想マシンのファイルシステム上にマウントされるように、前記記憶手段に記憶された前記第1の格納場所へのパスを示す情報を、前記第1の仮想マシンに送信し、
    前記第1の仮想マシンから第1のユーザの識別子を含むログオン通知を受けると、前記記憶手段にアクセスして前記ログオン通知に含まれる第1のユーザの識別子に関連付けられた前記フラグを、前記使用中であることを示す状態にセットし、
    前記シンクライアント実行サーバ内の複数の仮想マシンのうちの使用可能な仮想マシンの問い合わせをシンクライアント端末から受けると、前記使用可能な第2の仮想マシンを指定する情報を前記シンクライアント端末に送信し、
    前記シンクライアント端末に起動された前記第2の仮想マシンであって前記第1のユーザが新たにログオン操作を行った前記シンクライアント端末に対応する前記第2の仮想マシンからの接続要求に応じて、前記第1のユーザプロファイルが前記仮想化リッチクライアント端末によって使用中であるか否かを判定し、
    前記第1のユーザプロファイルが使用中である場合、前記第1の仮想マシンに前記第1の格納場所をアンマウントさせ、前記第1の仮想マシンから第1のユーザの識別子を含むログオフ通知を受けると、前記記憶手段にアクセスして前記ログオフ通知に含まれる第1のユーザの識別子に関連付けられた前記フラグを、未使用であることを示す状態にセットすると共に、前記第1の格納場所が前記第2の仮想マシンのファイルシステム上にマウントされるように、前記第1の格納場所へのパスを示す情報を、前記第2の仮想マシンに送信し、前記第2の仮想マシンから第1のユーザの識別子を含むログオン通知を受けると、前記記憶手段にアクセスして前記ログオン通知に含まれる第1のユーザの識別子に関連付けられた前記フラグを、前記使用中であることを示す状態にセットし、
    前記第2の仮想マシンが、前記仮想イメージファイル内の前記オペレーティングシステム及び前記アプリケーションプログラムを実行すると共に、前記シンクライアント端末と画面転送プロトコルを使用して通信するクライアント管理方法。
  8. 前記第1のユーザプロファイルが使用中である場合、前記第2の仮想マシンに、前記シンクライアント端末を前記クライアント管理システムに接続するか否かを確認するための画面を前記シンクライアント端末のディスプレイ上に表示させることをさらに具備し、
    前記アンマウントさせることは、
    前記第2の仮想マシンから前記接続の実行を示す要求を受信した場合、前記第1の仮想マシンに前記第1の格納場所をアンマウントさせることを具備する請求項記載のクライアント管理方法。
JP2012041379A 2012-02-28 2012-02-28 情報処理装置、クライアント管理システムおよびクライアント管理方法 Active JP5684170B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012041379A JP5684170B2 (ja) 2012-02-28 2012-02-28 情報処理装置、クライアント管理システムおよびクライアント管理方法
US13/609,784 US9092252B2 (en) 2012-02-28 2012-09-11 Information processing apparatus, client management system, and client management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012041379A JP5684170B2 (ja) 2012-02-28 2012-02-28 情報処理装置、クライアント管理システムおよびクライアント管理方法

Publications (2)

Publication Number Publication Date
JP2013178624A JP2013178624A (ja) 2013-09-09
JP5684170B2 true JP5684170B2 (ja) 2015-03-11

Family

ID=49004757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012041379A Active JP5684170B2 (ja) 2012-02-28 2012-02-28 情報処理装置、クライアント管理システムおよびクライアント管理方法

Country Status (2)

Country Link
US (1) US9092252B2 (ja)
JP (1) JP5684170B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009145274A1 (ja) * 2008-05-29 2009-12-03 株式会社シー・オー・コンヴ ネットワークブートシステム
CN103034453B (zh) * 2011-09-30 2015-11-25 国际商业机器公司 管理虚拟机实例中预安装应用的持久数据的方法和装置
EP2709006A1 (en) * 2012-09-14 2014-03-19 Alcatel Lucent Peripheral interface for residential IaaS
US9172747B2 (en) * 2013-02-25 2015-10-27 Artificial Solutions Iberia SL System and methods for virtual assistant networks
US9860116B1 (en) * 2013-06-18 2018-01-02 Cisco Technology, Inc. Physical network orchestration for data centers
US10476809B1 (en) * 2014-03-12 2019-11-12 Amazon Technologies, Inc. Moving virtual machines using migration profiles
US10057325B2 (en) * 2014-03-31 2018-08-21 Nuvestack, Inc. Remote desktop infrastructure
JP6386804B2 (ja) * 2014-06-16 2018-09-05 キヤノン株式会社 機器設定装置、その制御方法、及びプログラム
JP2016018387A (ja) * 2014-07-08 2016-02-01 富士通株式会社 情報処理システム、制御方法及び制御プログラム
CN104239122B (zh) * 2014-09-04 2018-05-11 华为技术有限公司 一种虚拟机迁移方法和装置
JP6547332B2 (ja) * 2015-02-26 2019-07-24 日本電気株式会社 仮想情報処理システム、及びその仮想情報処理方法
JP6582445B2 (ja) * 2015-03-05 2019-10-02 日本電気株式会社 シンクライアントシステム、接続管理装置、仮想マシン稼働装置、方法、および、プログラム
US10481938B2 (en) 2015-05-06 2019-11-19 Centurylink Intellectual Property Llc System and method for implementing network experience shifting
CN107026875A (zh) * 2015-06-25 2017-08-08 中兴通讯股份有限公司 多个虚拟桌面架构的融合方法及装置
CN106775924B (zh) * 2016-11-07 2018-08-07 北京百度网讯科技有限公司 虚拟机启动方法和装置
US10866821B2 (en) * 2017-08-14 2020-12-15 Honeywell International Inc. Computer systems, computer implemented methods and computer executable code configured to provide secure PC solutions based on a virtual desktop infrastructure (VDI), including IPTV via VDI
JP6973619B2 (ja) * 2018-03-23 2021-12-01 三菱電機株式会社 報知システム
US20190327159A1 (en) * 2018-04-20 2019-10-24 Nutanix, Inc. Systems and methods for identifying and displaying logon duration metrics
US11138274B2 (en) 2018-05-03 2021-10-05 Citrix Systems, Inc. Virtualization environment providing user-based search index roaming and related methods
US11782731B1 (en) * 2018-12-03 2023-10-10 Amazon Technologies, Inc. Persisting user settings for non-persistent application streaming environments

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5339427A (en) * 1992-03-30 1994-08-16 International Business Machines Corporation Method and apparatus for distributed locking of shared data, employing a central coupling facility
KR100382851B1 (ko) 1999-03-31 2003-05-09 인터내셔널 비지네스 머신즈 코포레이션 분산형 데이터 처리 시스템에서 클라이언트 컴퓨터를관리하기 위한 방법 및 장치
JP2004234345A (ja) 2003-01-30 2004-08-19 Ntt Docomo Inc アプリケーションプログラム実行装置およびプログラム
JP4206828B2 (ja) * 2003-05-30 2009-01-14 日本電気株式会社 サービスローミング対応システム、およびサービスローミング対応プログラム
JP2005056301A (ja) * 2003-08-07 2005-03-03 Fujitsu Ltd 端末管理方法、プログラム及び装置
US7810092B1 (en) * 2004-03-02 2010-10-05 Symantec Operating Corporation Central administration and maintenance of workstations using virtual machines, network filesystems, and replication
US20060112428A1 (en) * 2004-11-23 2006-05-25 Nokia Corporation Device having a locking feature and a method, means and software for utilizing the feature
US8972534B2 (en) * 2006-04-12 2015-03-03 International Business Machines Corporation Adjusting software settings
US7653794B2 (en) * 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
US20080051081A1 (en) * 2006-08-24 2008-02-28 Sony Ericsson Mobile Communications Profile tracker for portable communication device
JP4293234B2 (ja) * 2006-12-05 2009-07-08 日本電気株式会社 シンクライアントにおける接続管理方法及び接続管理サーバ
WO2008111448A1 (ja) * 2007-03-09 2008-09-18 Nec Corporation サーバ機能切替え装置、方法及びプログラム、並びにシンクライアントシステム及びサーバ装置
US8064590B2 (en) * 2007-03-29 2011-11-22 Dealmap Inc. Campaign in a geo-spatial environment
US20090132537A1 (en) * 2007-11-16 2009-05-21 Daron Denton System and Method for Managing Storage and Access of Data Files
US7792934B2 (en) * 2008-01-02 2010-09-07 Citrix Systems International Gmbh Loading of server-stored user profile data
US8413210B2 (en) * 2008-12-09 2013-04-02 Microsoft Corporation Credential sharing between multiple client applications
US8112392B1 (en) * 2009-02-13 2012-02-07 Symantec Corporation Methods and systems for creating snapshots of virtualized applications
JP4780487B2 (ja) 2009-03-04 2011-09-28 日本電気株式会社 業務環境生成システム、業務環境生成方法、及び業務環境生成用プログラム
US9015283B2 (en) * 2009-12-18 2015-04-21 Microsoft Technology Roaming profiles and application compatibility in multi-user systems
US9477531B2 (en) * 2010-01-27 2016-10-25 Vmware, Inc. Accessing virtual disk content of a virtual machine without running a virtual desktop
US8392838B2 (en) * 2010-01-27 2013-03-05 Vmware, Inc. Accessing virtual disk content of a virtual machine using a control virtual machine
JP5493976B2 (ja) * 2010-02-18 2014-05-14 富士通株式会社 情報処理装置、計算機システム及びプログラム
US8438564B2 (en) * 2010-03-30 2013-05-07 Lenovo (Singapore) Pte. Ltd. Systems and methods for minimizing client computer system set-up time
WO2012002971A1 (en) * 2010-07-01 2012-01-05 Hewlett-Packard Development Company, L.P. User management framework for multiple environments on a computing device
US20120054742A1 (en) * 2010-09-01 2012-03-01 Microsoft Corporation State Separation Of User Data From Operating System In A Pooled VM Environment
WO2012053393A1 (ja) * 2010-10-19 2012-04-26 株式会社日立製作所 仮想計算機を配置する方法及び装置
KR101591371B1 (ko) * 2010-12-09 2016-02-18 한국전자통신연구원 클라우드 컴퓨팅 기반 가상 머신의 개인화 정보를 관리하기 위한 시스템 및 그 방법
JP2012155600A (ja) * 2011-01-27 2012-08-16 Fujitsu Ltd 情報処理装置、制御方法、および制御プログラム

Also Published As

Publication number Publication date
JP2013178624A (ja) 2013-09-09
US20130227564A1 (en) 2013-08-29
US9092252B2 (en) 2015-07-28

Similar Documents

Publication Publication Date Title
JP5684170B2 (ja) 情報処理装置、クライアント管理システムおよびクライアント管理方法
US11522701B2 (en) Generating and managing a composite identity token for multi-service use
JP6630792B2 (ja) コンピューティングセッションの管理
US10205760B2 (en) Task coordination in distributed systems
US10558407B2 (en) Availability of devices based on location
US10133525B2 (en) Autonomous secure printing
JP4434168B2 (ja) オンデマンドクライアントサービスシステム、その管理方法、及びプログラム
JP6307159B2 (ja) コンピューティングセッションの管理
US20140337493A1 (en) Client/server network environment setup method and system
KR101840222B1 (ko) 컴퓨팅 세션의 관리
JP2007334686A (ja) セッション管理システム、セッション管理サーバ、シンクライアント端末、プログラム
JP2010282447A (ja) 仮想計算機システム、そのアクセス制御方法及び通信装置
JP2005128731A (ja) 記憶装置を複数の計算機で共用する計算機システム
CN111108736B (zh) 用于计算设备的自动地址故障切换的方法和***
US20180368123A1 (en) Optimized Caching of Data in a Network of Nodes
JP5493976B2 (ja) 情報処理装置、計算機システム及びプログラム
US11057777B2 (en) Distance based session roaming
JP2013186793A (ja) 情報処理装置、イメージファイル作成方法およびプログラム
CN106792843B (zh) 一种设备管理方法及装置
JP5554946B2 (ja) シンクライアントシステム、セッション管理方法、及びプログラム
JP2013254337A (ja) 仮想化装置、仮想化制御方法、仮想化装置制御プログラム
JP2015103827A (ja) 管理装置、方法及びプログラム
CN115150191B (zh) 一种跨区域云管平台信息交互方法及相关组件
CN116204269A (zh) 部署和管理租户集群中的服务的具有集成服务的管理集群
KR20150117424A (ko) 네트워킹된 서버-클라이언트 pc의 관리 시스템장치

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131205

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131212

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131219

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20131226

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140109

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140912

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: 20141216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150114

R151 Written notification of patent or utility model registration

Ref document number: 5684170

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350