JP4720959B2 - デバイス管理システム - Google Patents
デバイス管理システム Download PDFInfo
- Publication number
- JP4720959B2 JP4720959B2 JP2010264485A JP2010264485A JP4720959B2 JP 4720959 B2 JP4720959 B2 JP 4720959B2 JP 2010264485 A JP2010264485 A JP 2010264485A JP 2010264485 A JP2010264485 A JP 2010264485A JP 4720959 B2 JP4720959 B2 JP 4720959B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- client
- user
- server
- driver
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Description
本発明は、ネットワークを介してサーバに接続するデバイスへのアクセスを管理する技術に関する。特に、デバイスがサーバに直接接続している場合と同様に、当該デバイスを仮想的に利用可能なシステムにおいて、安全かつ簡便に遠隔操作可能とする技術に関する。
遠隔地にあるパーソナルコンピュータ(PC)やワークステーションなどのサーバをPCやパーソナルデジタルアシスタント(PDA)、携帯電話などの手元の情報端末を用いてコントロールする手法が、一般的になっている。このような手法は、サーバクライアント方式と呼ばれる。サーバクライアント方式は、大規模なサーバを時分割等の手法でクライアント側の端末である手元の情報端末の間で分け合って利用する。クライアント側の端末の処理能力が低い場合やクライアント側の端末に一定のセキュリティが確保できない場合に利用されている。サーバクライアント方式ではサーバとクライアントとの間でインターネットやイントラネットを介した通信を行う。これらの通信に広帯域低料金のサービスが提供されるようになったことが、その普及の一因となっている。
サーバクライアント方式では、遠隔地にあるサーバを手元の情報端末(クライアント端末)からを制御するために、サーバには、サーバを制御するためのプログラムをサーバにインストールし、クライアント端末にサーバを制御した結果を表示するためのプログラムをインストールする。また、サーバとクライアント端末との間の通信路に盗聴改ざんなどの危険性がある場合は、通信路の暗号化のためにバーチャルプライベートネットワーク(VPN)を構築するためのプログラムが利用される。サーバを制御する権限が、クライアント端末やそのクライアント端末を利用する利用者に与えられているか否かを確認するために、クライアント端末に特定の認証情報を格納したり、クライアント端末に認証情報を格納したデバイスを接続したり、利用者の生体認証情報をクライアント端末に入力し、クライアント端末やサーバ等で確認を行うことも一般的である。
サーバ及びクライアント端末を業務で利用する利用者は、オフィス内や自宅や車の中等のオフィス外の場所でクライアント端末にサーバを遠隔操作した結果を表示させ、サーバ上のプログラムを用いて業務を遂行する。また、業務以外であっても、例えば家庭内やデータセンタに設置したサーバとクライアント端末とを接続し、サーバ上に表示される画面をクライアント端末に表示し、サーバ上のプログラムを用いて、情報処理(例えば、電子メールの読み書きや、ブラウザプログラムを起動しWEB情報を閲覧する等)を行う。一連の動作の前に、サーバとクライアント端末との間の通信は、必要に応じて例えばIPsec VPNやSSL−VPNといった暗号通信手法で保護される。
このようにサーバクライアント方式によるクライアント端末によるサーバの利用形態は、サーバクライアント方式のシステムを用いない場合に比べ、全体の機器コストや危機管理コストを削減できたり、情報の紛失の確率を低減したり、いつでもどこでも手元の情報端末の種別を問わずに必要な情報処理を可能にするという簡便さを提供したりするという特長を持つ。このような手元の情報端末によるサーバ利用形態の一例は、例えば特許文献1に述べられている。
サーバクライアント方式では、サーバは、クライアント端末から物理的に離れた場所に設置されているケースが大半である。この場合、利用者は、例えばサーバに直接接続されたCD−ROMドライブなどの、情報機器に接続される周辺機器(以後、本明細書ではデバイスと呼ぶ。)をクライアントからサーバを経由して利用することは可能である。しかし、CD−ROMの取り出しなどの操作は容易ではなく、利用者はこの点に不便さを感じる。
これを解決するものとして、例えば、イントラネットなどのネットワーク上にCD−ROMドライブ等の、ネットワーク上のいずれの情報機器からもアクセス可能な、いわゆる共有のデバイスを配置し、仮想的にサーバ上でCD−ROMドライブを利用するものがある。例えば特許文献2、特許文献3は、このようなネットワーク上の第一の機器に接続されたデバイスを、ネットワーク上の第一の機器とは異なる第二の機器から利用する利用形態について開示している。
しかし、特許文献2には、デバイスが接続されているネットワーク上の機器(上記の第一の機器)からデバイスを利用することは開示されていない。そのため、本文献に開示の方法によれば、サーバクライアント方式の構成に於けるサーバとクライアント、すなわち、上記の第一、第二、いずれの機器からでもデバイスを利用できるという構成が実現できない。
また、特許文献3に記載の方法では、サーバクライアント方式の構成に於いて、サーバとクライアント両方、すなわち、上記の第一、第二の機器両方から、当該デバイスを利用することを容易に実現できない。
画面転送型などのシンクライアントシステムにおいては、実際の処理装置はサーバであるため、利用者の手元にあるクライアントにデバイスを接続し、接続されたデバイスをサーバから容易に利用できることが望ましい。すなわち、クライアントが行うデバイスの接続や切り離し処理、および、クライアントが独自に行うデバイスの利用処理と、サーバが行うデバイスの利用処理と、を切り替えながら行う必要があり、クライアントとデバイス間の要求と返答の送受信と、サーバとデバイス間の要求と返答の送受信と、が正しく行われるよう、排他的に制御する必要があるとともに、これらの切り替え処理を、利用者の利便性を損なわないように行う必要がある。
本発明は、上記事情に鑑みてなされたもので、サーバクライアント方式においてデバイスを共有する場合、利用者の利便性を損なわず、システム内のセキュリティを向上させる。
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
クライアントへデバイスを接続し、さらに、接続された該デバイスにサーバからアクセスするにあたり、デバイスを接続するのみで、他の操作なしでサーバ側からクライアントに接続されたデバイスを使用可能とするために、クライアント側に、クライアントに接続されたデバイスとクライアントのアプリケーションとの間のデータの送受信と、前記デバイスとサーバとの間のデータの送受信と、を排他的に制御するフィルタ手段を設け、サーバ側に、クライアントとの通信手段とアプリケーションとの間で仮想的にデバイスドライバとして機能する擬似バスドライバ手段を設ける。
具体的には、アプリケーションプログラムを実行するサーバと、前記サーバに前記アプリケーションプログラムの実行の指示を与え、当該サーバから実行結果を受け取るクライアントと、前記クライアントを認証する認証サーバとがネットワークで接続されたシステムにおいて、前記クライアントに接続されたデバイスを前記サーバから制御するデバイス管理システムであって、前記クライアントは、当該クライアントに接続しているデバイスのデバイスドライバとの間でデータを送受信するとともに前記サーバとの間で当該データを送受信するデバイス管理手段を備え、前記認証サーバは、当該デバイス管理システム内の各デバイスの利用権限を管理するデバイス情報保持利用権限管理手段を備え、前記サーバは、当該サーバ内で動作するアプリケーションと前記デバイス管理手段との間で前記ネットワークを介して行われるデータの送受信を前記デバイス情報保持利用権限管理手段に保持されている前記利用権限に従って制御する仮想デバイス管理手段を備え、前記デバイス管理手段は、前記デバイスドライバと当該クライアントのアプリケーションとのデータの送受信および前記デバイスドライバと前記サーバとのデータの送受信の間で排他制御を行うフィルタ手段を備えることを特徴とするデバイス管理システムを提供する。
本発明によれば、サーバクライアント方式においてデバイスを共有する場合、利用者の利便性を損なわず、システム内のセキュリティを向上させることができる。
本発明の実施の形態について、添付図面を参照しながら以下詳細に説明する。なお、図面中にて同一の参照番号を付したものは、同一の機能を有する構成要素を示し、説明の便宜上、その詳細な説明は省略する。
<<第一の実施形態>>
以下図面を用いて、本発明に係るデバイス管理システムの第一の実施形態を説明する。
以下図面を用いて、本発明に係るデバイス管理システムの第一の実施形態を説明する。
図1は、本実施形態のデバイス管理システムの詳細なブロック図である。本実施形態のデバイス管理システムは、認証管理サーバ101、ネットワーク103、ブレードサーバ106を備える情報センタ102と、当該情報センタのネットワーク103に接続するPC等のクライアント装置とを備える。
情報センタ102は、情報機器を管理するセンタで通常入退室を制限され、設置する機器が管理監視されているエリアである。情報センタ102の設置場所は、限定されない。例えば、利用者がクライアント装置などの端末を利用する場所に設置されても良いし、離れた場所に設置されていても良い。利用者が端末をオフィスなどで利用する場合、情報センタ102は利用者を管理する企業団体の建屋内に設置されてもよい。利用者が一般消費者で自宅やホテル、街頭などからサービス提供企業のサーバを利用する場合、情報センタ102はインターネットサービスプロバイダやサーバレンタル企業、アプリケーションサービスプロバイダ等の管理する建屋内に設置されていてもよい。また、利用者自宅やオフィスの一角にサーバを集中させたエリアであっても良い。
認証管理サーバ101は、デバイスや利用者の認証と管理とを行うサーバで、情報センタ102の管理者が管理する。認証管理サーバ101がこれらを実現するために保持する各種のデータについては、後述する。認証管理サーバ101は、通信インタフェース、CPUおよびメモリを備える情報処理装置で実現され、CPUがメモリに格納されたプログラムを実行することにより、各機能を実現する。なお、各機能を実現するプログラムは、記憶媒体、または、搬送波、デジタル信号、通信線を含む通信媒体を介して、他の装置から取得してもよい。
ブレードサーバ106は、内部に複数のサーバもしくはPCを有する機器であり、図示しない電源、内部機器とネットワーク103とを結線するインタフェース機能、管理装置などを備える。本実施形態では、PC−A110、PC−B111、PC−C112を内部に備える場合を例にあげて説明する。もちろん、ブレードサーバ106の構成は、これに限られず、これら以外のPCやサーバを着脱可能である。
ネットワーク103は、認証管理サーバ101、PC−A110、PC−B111、PC−C112等を相互に接続する。本実施形態では、TCP/IPプロトコルを用いて通信を行うネットワークとして以下に説明する。もちろん、それ以外のプロトコルに従った通信を行うものであっても良い。
なお、本実施形態の、PC−A110、PC−B111、PC−C112は、ブレードサーバ106内部に構成されているが、ブレードサーバ106内部やさらには情報センタ102内に設置されていなくともネットワーク103上に存在していればよい。PC−A110、PC−B111、PC−C112は、PCと記述しているが、サーバでもワークステーションでも組み込み機器でも、記憶媒体に格納しているOSやアプリケーションをメモリとCPU上で実行する情報機器であれば特に限定されない。
図13は、PC−A110のハードウェア構成図である。PC−A110は、ハードディスクドライブやフラッシュメモリなどのストレージ160とCPU110aとメモリ110bと通信のためのインタフェースである通信インタフェース110cとを備える。PC−A110においては、メモリ110bに読み込まれたプログラムがCPU110aにより実行されることにより、各処理部が実現される。なお、各プログラムは、記憶媒体、または通信媒体を介して、他の装置から取得することも可能である。なお、通信媒体とは、搬送波、デジタル信号、通信線を含む。
PC−A110は、利用者の指示に従って、演算を行う。演算結果はPC−A110またはブレードサーバ106に接続された図示しないディスプレィに表示される。ストレージ160には、後述する仮想デバイスマネージャ120が管理者によりインストールされている。PC−A110が起動されるとストレージ160からOSがメモリ110bに読み込まれ、CPU110aにより実行されて利用可能状態になった後、仮想デバイスマネージャ120がメモリ110bに読み込まれ、CPU110aにより実行されて仮想デバイスが利用可能になる。
ここで言う仮想デバイスとは、PC−A110にネットワーク103などを介して接続されているデバイスを、あたかもPC−A110に直接接続されているデバイスであるかのように利用可能とする仕組みである。本仕組みにより、離れた場所に接続されているデバイスが、PC−A110に物理的に接続されているデバイスと同様に利用可能となる。
仮想デバイスマネージャ120は、PC−A110にネットワーク103を介して接続されているデバイスA151との間でのデータの送受信を行うための制御を行うソフトウェアである。デバイスA151を、仮想的に、サーバに直接接続している場合と同様に使用可能にする機能を実現するものである。詳細については、後述のデバイス管理マネージャ123の動作とともに後述する。
また、ストレージ160には、仮想デバイスマネージャ120が送受信したデータおよび仮想デバイスマネージャ120で発生したイベントがログ170として蓄積される。ログ170の詳細については後述する。
PC−B111及びPC−C112もPC−A110と同様の構成を備え、それぞれ内部にストレージ161、162を備えると共に、仮想デバイスマネージャ121、122がインストールされ、起動後に動作する。以後、特にPC−A110、PC−B111、PC−C112を区別する必要がない場合、PC−A110を代表として説明する。
なお、ストレージ160〜162は、ブレードサーバ106内に存在せず、ネットワーク103上に存在していてもよい。
次に、クライアント装置としてネットワーク103に接続されている機器について説明する。
本実施形態では、クライアント装置として、PC−D113と、PC−E114と、PC−F115と、ハブ116と、ファイヤウォール105およびインターネット104を介して接続するPC−Z117とを備える場合を例に挙げて説明する。また、PC−D113にはデバイスA151が、PC−F115にはデバイスB152が、ハブ116にはデバイスC153およびデバイスD154が、PC−Z117にはデバイスZ155が接続される場合を例にあげて説明する。各クライアント装置およびデバイスの接続構成はこれに限られない。
PC−D113は、利用者の指示に従って演算を行い、必要に応じてデバイスを利用し、演算結果を利用者に提示する情報処理装置である。ハードウェア構成、各処理部の実現方法は、上記PC−A110と基本的に同様である。PC−D113は、ネットワーク103に図示しないネットワークインタフェースを介して接続している。PC−D113は、ハードディスクドライブもしくはフラッシュメモリなどストレージ163及び図示しないメモリ及びCPUを備え、利用者の指示によって演算を行う。演算結果は、PC−D113に接続されている図示しないディスプレィに表示される。利用者からの指示は図示しないキーボードやマウスといったユーザインタフェースを介してPC−D113へ送信される。
また、PC−D113において、ストレージ163には、後述するデバイス管理マネージャ123がインストールされている。PC−D113が起動されるとストレージ163からOSがメモリに読み込まれ、CPUが実行することにより利用可能状態になった後、デバイス管理マネージャ123がメモリに読み込まれ、CPUが実行することにより、接続されたデバイスA151がPC−A110において仮想デバイスとして利用可能となる。また、ストレージ163には、デバイス管理マネージャ123が送受信したデータ等がログ173として蓄積される。ログ173の詳細については後述する。
デバイス管理マネージャ123は、PC−D113が、デバイスA151を、ブレードサーバ106のPC−A110の仮想デバイスとして利用するためのソフトウェアである。詳細については、仮想デバイスマネージャ120の動作とともに後述する。
PC−E114、PC−F115、PC−Z117は基本的にPC−D113と同様の構成を備え、それぞれ、ストレージ164、165、167を備える。また、デバイス管理マネージャ124、125、127が実現される。また、各ストレージには、ログ174、175、177がそれぞれ格納される。
さらに、ハブ116は、PC−D113から表示画面などの一般的なPCの機能の一部が削られたものである。すなわち、図示しないネットワークインタフェースを介してネットワーク103に接続し、ハードディスクドライブもしくはフラッシュメモリなどストレージ166及び図示しないメモリ及びCPUを備え、演算を行う。ハードウェア構成、各処理部の実現方法は、PC−A110と基本的に同様である。デバイス管理マネージャ126を実現するとともに、ストレージ166にはログ176を保持する。以後、特にPC−D113、PC−E114、PC−F115、PC−Z117、ハブ116を区別する必要がない場合、PC−D113を代表として説明する。
デバイスA151は、情報機器に接続される、例えば、CD−ROMやプリンタなどの周辺機器である。デバイスA151は、PC−D113とデバイス接続用のインタフェースを介して接続されている。デバイス接続用のインタフェースは、例えばユニバーサルシリアルバス(USB)、ワイヤレスUSB、近距離無線通信インタフェース、赤外線通信インタフェース、シリアルポートインタフェース、パラレルポートインタフェース、IEEE1394インタフェース、PS/2インタフェース(登録商標)、オーディオインタフェースといったデバイスをPCに接続するためのインタフェースが考えられる。本実施形態では、インタフェースがUSBである場合を例にあげて説明を行うが、インタフェースはこれに限られない。
また、デバイスA151は、接続されているPC−D113にインストールされているデバイス管理マネージャ123により、仮想デバイスとして本システムで用いられる。以後、デバイス管理マネージャ123を、デバイスA151を管理するデバイス管理マネージャと呼ぶ。
その他、各PCおよびハブに接続されているデバイスB152、C153、D154もデバイスA151と同様の周辺機器であり、本実施形態では、一例としてUSBインタフェースを介してPCまたはハブに接続されている。以後、特にデバイスA151、デバイスB152、デバイスC153、デバイスD154を区別する必要がない場合、デバイスA151を代表として説明する。
次に、PC−A110の仮想デバイスマネージャ120と、PC−D113のデバイス管理マネージャ123との詳細な構成について説明する。
図8は、デバイス管理マネージャ123及び仮想デバイスマネージャ120とデバイスドライバ及びアプリケーションとの関係を説明するための図である。ここでは、PC−A110とPC−D113とにおいてデバイスA151を利用するために必要となるソフトウェアのスタックを中心に説明する。
PC−D113は、デバイス管理マネージャ123と、物理バスドライバ1515と、デバイスクラスドライバ1513と、上位ドライバ1512と、アプリケーション1511とを備える。また、デバイス管理マネージャ123は、フィルタドライバ1514と、通信プログラム1510と、GUIアプリケーション1509とを備える。なお、各ドライバについて、アプリケーション1511に近い側を上位、PC−D113に接続されるデバイスA151に近い側を下位と呼ぶ。PC−D113では、下位から順に、物理バスドライバ1515、フィルタドライバ1514、デバイスクラスドライバ1513、上位ドライバ1512、の順にスタックされている。
PC−A110は、仮想デバイスマネージャ120と、デバイスクラスドライバ1503と、上位ドライバ1502と、アプリケーション1501と、を備える。仮想デバイスマネージャ120は、擬似バスドライバ1504と通信プログラム1508とGUIアプリケーション1507とを備える。また、擬似バスドライバ1504は、起動用物理デバイスオブジェクト1505と、エニュメレータ機能デバイスオブジェクト1506(以下、エニュメレータ1506と呼ぶ。)とを備える。PC−A110では、下位から順に、擬似バスドライバ1504、デバイスクラスドライバ1503、上位ドライバ1502の順にスタックされている。
物理バスドライバ1515は、PC−D113に接続された物理バス上に接続されたデバイスA151への通信を制御するプログラム(デバイスドライバ)である。バス上のデバイスA151の状態、接続、切断を監視する、デバイスA151からの割り込みをOSおよび上位のデバイスドライバに通知する、上位に位置するドライバであるデバイス管理マネージャ123内のフィルタドライバ1514から転送されたデータをデバイスA151に送信する、などの処理を行う。なお、ここでは、物理バスはユニバーサルシリアルバス(USB)とする。物理バスドライバ1515は、接続されるデバイスA151毎に用意される。
デバイスクラスドライバ1513は、デバイスA151の種別に対応して設けられているプログラム(デバイスドライバ)である。アプリケーション1511から上位ドライバ1512を介して送信された要求をデバイスA151が理解できる命令やデータに変換してデバイスフィルタドライバ1514および物理バスドライバ1515を介して送信する。また、デバイスA151から送信された割り込みおよび命令に対するレスポンスをOSおよび上位ドライバに送信する。
上位ドライバ1512は、デバイスA151の種別に対応して設けられている1以上のデバイスクラスドライバ1513をまとめる役割をするプログラム(デバイスドライバ)である。アプリケーション1511から送られた要求をデバイスクラスドライバ1513が理解できる命令やデータに変換してデバイスクラスドライバ1513に送信する。また、デバイスクラスドライバ1513およびその他のデバイスクラスドライバから送信された割り込みおよび命令に対するレスポンスをOSおよびアプリケーション1511に送信する。
フィルタドライバ1514は、デバイスA151がPC−D113上のデバイスとして有効になった場合、PC−D113のメモリ上にロードされる。物理バスドライバ1515とデバイスクラスドライバ1513との間に配置され、デバイスクラスドライバ1513の下位のドライバとして動作する。
フィルタドライバ1514は、通信プログラム1510またはデバイスクラスドライバ1513より送信されるリクエストを物理バスドライバ1515に送信し、物理バスドライバ1515より送信されるレスポンスを通信プログラム1510またはデバイスクラスドライバ1513に返信する。また、通信プログラム1510、物理バスドライバ1515間のリクエスト及びレスポンスと、デバイスクラスドライバ1513、物理バスドライバ1515間のリクエスト及びレスポンスのいずれかを有効とし、いずれかを無効とする。どちらのリクエスト及びレスポンスを有効とするかは、GUIアプリケーション1507及びGUIアプリケーション1509の指示に従って、または、デバイスA151のプラグイン、プラグアウト、イジェクトのタイミングもしくは、通信プログラム1510の起動、終了のタイミングで、変更される。ここで、プラグインは、デバイスA151をPC−D113の物理バスに接続すること、プラグアウトは、デバイスA151とPC−D113との接続を絶つこと、イジェクトはデバイスA151をPC−D113から取り外したり、取り外すために動作を停止することをそれぞれ意味する。
フィルタドライバ1514は、デバイスクラスドライバ1513から物理バスドライバ1515へのリクエストを無効にする場合は、該当するリクエストがフィルタドライバ1514に入力されると、無効であるというレスポンスをデバイスクラスドライバ1513に返信する、または、「デバイスが有効では無い」「デバイスにメディアが挿入されていない」などの予め決められたエラーを含んだレスポンスをデバイスクラスドライバ1513に返信する。
同様に、フィルタドライバ1514は、通信プログラム1510から物理バスドライバ1515へのリクエストを無効にする場合は、該当するリクエストがフィルタドライバ1514に入力されると、無効であることを示すレスポンスを通信プログラム1510に返信する、あるいは、「デバイスが有効では無い」「デバイスにメディアが挿入されていない」などの予め決められたエラーを含んだレスポンスを通信プログラム1510に返信する。
フィルタドライバ1514は、デバイスA151に対応するデバイスクラスドライバ1513に対応してPC−D113のメモリ上にロードされる。接続されているデバイスA151が複数の場合、各デバイスA151毎に、または、デバイスA151に対応して設けられる物理バスドライバ1515毎に、用意される。
PC−D113側の通信プログラム1510は、通信プログラム1508及びフィルタドライバ1514と通信を行う機能を持つ。通信プログラム1510は、通信プログラム1508及びフィルタドライバ1514の状態を常に監視し、フィルタドライバ1514との通信に異常が発生した場合は、通信プログラム1508に異常信号を送信する。フィルタドライバ1514との通信が予め定められた時間で復活しない場合、通信プログラム1508にさらに異常信号を送信させ、GUIアプリケーション1509に状態を表示させ、利用者の指示を受け付ける。例えば利用者の指示により、デバイスクラスドライバ1513からのリクエストを物理バスドライバ1515に送信するように変更を行い、通信プログラム1510とフィルタドライバ1514との通信を中断する。また、通信プログラム1510は、通信プログラム1508との通信が異常になった場合は、フィルタドライバ1514に異常信号を送信する。通信プログラム1508との通信がある程度の時間で復帰しない場合、フィルタドライバ1514にさらに異常信号を送信し、GUIアプリケーション1509に状態を表示させ、利用者の指示を受ける。例えば利用者の指示により、すべてのエニュメレータ1506や起動用物理デバイスオブジェクト1505を消滅させる要求を通信プログラム1508に送信する、通信プログラム1510自身を終了させる、などの処理を行う。通信プログラム1510は、通信プログラム1508と常に通信を行い、PC−D113に接続されたデバイスからプラグアウト、プラグイン、イジェクトの通知を受けるのを待つ。通信プログラム1508はデバイスA151のプラグイン、プラグアウト、イジェクトの通知を受けると、擬似バスドライバ1504が適切に動作するように通信プログラム1508に通知を行う。
擬似バスドライバ1504は、後述するPC−D113上の物理バスドライバ1515に相当し、デバイスへの通信を制御するプログラム(デバイスドライバ)である。バス上のデバイスの状態および接続切断を監視し、デバイスからの割り込みをOSおよび上位のデバイスドライバに通知し、上位のデバイスドライバから転送されたデータをデバイスに送信する。擬似バスドライバ1504は、PC−A110上で動作するアプリケーション1501から、PC−D113のバスに接続されたデバイスA151を、PC−A110のバスに接続されたデバイスと同様に扱わせる。擬似バスドライバ1504は、PC−D113に接続されたデバイスA151を、PC−A110の擬似バスとしてOSが認識するバスに接続されたデバイスとしてPC−A110のOSに認識させる。PC−A110のOSにとって、擬似バスは前述したPC−D113のバスと同様の機能を持つ。擬似バスドライバ1504は、PC−A110のメモリにロードされると、その内部にエニュメレータ機能デバイスオブジェクト1506を作成する。
擬似バスドライバ1504は通信プログラム1510を介してデバイスA151がプラグインされたことを示す通知を受けると、エニュメレータ機能デバイスオブジェクト1506に該当するデバイスに対応する起動用物理デバイスオブジェクト1505を生成させ、PC−A110からデバイスA151を利用できる状態にする。また、擬似バスドライバ1504は通信プログラム1510を介してデバイスA151がプラグアウトされたことを示す通知を受けると、エニュメレータ機能デバイスオブジェクト1506にプラグアウトの通知をする。擬似バスドライバ1504は、デバイスA151がイジェクトされたことを示す通知を受けた場合、エニュメレータ機能デバイスオブジェクト1506にイジェクトの通知をする。
また、擬似バスドライバ1504は、起動用物理デバイスオブジェクト1505がPC−A110のメモリからアンロード(以下、削除と略することがある)された場合、通信プログラム1508及び通信プログラム1510を通じて削除された状態をPC−D113に通知する。PC−A110のOSから擬似バスドライバ1504を削除するよう擬似バスドライバ1504に命令があった場合、すべての起動用物理デバイスオブジェクト1505を削除した後にエニュメレータ1506及び擬似バスドライバ1504自身を削除する。上記の各処理中にエラーが発生した場合、擬似バスドライバ1504は、エラーの内容を通信プログラム1508に送信する。通信プログラム1508への送信を行う際に通信内容に異常が発生した場合、擬似バスドライバ1504は、すべての起動用物理デバイスオブジェクト1505を削除するなどの初期化処理を行い、通信プログラム1508との通信状態の回復を待つ。
エニュメレータ機能デバイスオブジェクト1506は、擬似バスドライバ1504の内部に生成されるデバイスオブジェクトである。後述する起動用物理デバイスオブジェクト1505の生成、削除等の管理を行う。また、通信プログラム1508と通信を行う。エニュメレータ1506は、PC−D113から通信プログラム1510および通信プログラム1508を介して擬似バスドライバ1504からデバイスA151のプラグインを示す通知とともにプラグインされたデバイスA151のパラメータを受信すると、受け取ったパラメータを用いて、起動用物理デバイスオブジェクト1505を作成する。また、エニュメレータ1506は、PC−D113から通信プログラム1510及び通信プログラム1508を経由して擬似バスドライバ1504からデバイスA151のプラグアウトもしくはイジェクト通知を受信すると、プラグアウトまたはイジェクト通知を送信したデバイスA151に対応づけて生成された起動用物理デバイスオブジェクト1505を削除する。
起動用物理デバイスオブジェクト1505は、仮想デバイスドライバ120から仮想的にデバイスA151を動作させるためのドライバである。通信プログラム1510および通信プログラム1508を介してデバイスA151がプラグインされた通知をエニュメレータ1506が受ける毎に生成される。すなわち、起動用物理デバイスオブジェクト1505は、PC−D113に接続されてPC−A110上の擬似バスから制御されるデバイス1つに対し、1つ生成される。従って、起動用物理デバイスオブジェクト1505は、1以上のオブジェクトからなる。起動用物理デバイスオブジェクト1505は、PC−D113から後述するデバイスA151のプラグイン操作により送信されるデバイスID、シリアル番号などを用いて、デバイスと1対1に対応付けられ、エニュメレータ1506に管理される。
PC−A110側の通信プログラム1508は、通信プログラム1510と擬似バスドライバ1504との間の通信を実現する。通信プログラム1508は、通信プログラム1510および擬似バスドライバ1504の状態を常に監視し、擬似バスドライバ1504との通信に異常が発生した場合は、通信プログラム1510に異常信号を送信する。擬似バスドライバ1504との通信が予め定められた時間内に復帰しない場合、通信プログラム1510にさらに異常信号を送信する。異常が発生した場合は、通信プログラム1508は、GUIアプリケーション1507に状態を表示させ、利用者の指示を受け付ける。例えば利用者の指示により、すべての起動用物理デバイスオブジェクト1505および擬似バスドライバ1504を消滅させる命令をOSに送信する、通信プログラム1508自身を終了させるなどの処理を行う。また、通信プログラム1508は、通信プログラム1510との通信に異常が発生した場合は、擬似バスドライバ1504に異常信号を送信する。通信プログラム1510との通信が予め定められた時間内に復帰しない場合、擬似バスドライバ1504にさらに異常信号を送信し、GUIアプリケーション1507に状態を表示させ利用者の指示を受け付ける。例えば利用者の指示により、すべての起動用物理デバイスオブジェクト1505や擬似バスドライバ1504を消滅させる命令をPC−A110のOSに送信する、自身を終了させるなどの処理を行う。通信プログラム1508は、通信プログラム1510と常に通信を行い、PC−D113に接続されたデバイスからプラグアウト、プラグイン、イジェクトの通知を受けるのを待つ。
デバイスクラスドライバ1503、上位ドライバ1502は、後述するデバイス管理マネージャ123の同名のものと基本的に同様の機能を有する。
次に認証管理サーバ101が保持する、ポリシーテーブル1400、デバイス管理テーブル200および利用者情報データベース300について説明する。認証管理サーバ101は、仮想デバイスマネージャ120とデバイス管理マネージャ123とともに、各デバイスへのアクセスを制御する。
ポリシーテーブル1400は、本システム内で管理者が管理するデバイスに関するアクセスポリシーが登録される。例えば、デバイス毎の利用権限、デバイスが接続されるクライアント装置に応じた利用権限などが登録される。本テーブルは、予め管理者などにより設定される。ポリシーテーブル1400は、システムの管理者が自由に変更することが可能である。また、ポリシーテーブル1400を設定しないことにより、自動的にはデバイス情報テーブル200上のルールを変更できず、手動でのみ変更できるようにシステムを構成することも可能である。管理者は自分の管理するシステムに定めるべきポリシーにしたがってポリシーテーブル1400を構成する。
図2にポリシーテーブル1400の一例を示す。本図に示すように、ポリシーテーブル1400は、ポリシー毎に、ポリシー番号1401、デバイス名1402、接続アプリケーションのアドレス1403、接続アプリケーションのネットワークインタフェースID1404、ベンダID1405、製品ID1406、シリアル番号1407、デバイス種別1408、排他制御1409、利用可否1410、利用可能ID1411が記録される。もちろん、その他の項目が記録されていてもよい。
ポリシー番号1401は、ポリシーテーブル1401に管理者によってポリシーが登録される際、各ポリシーに自動的に付与される識別番号である。本システム上で利用可能な機器やデバイスが増減したとき、ポリシーテーブル1400に登録されているポリシーに従って後述するデバイス情報テーブル200のレコードが生成される。複数のポリシーに当てはまる機器やデバイスがシステム上に増減したとき、ポリシーは、予め定められた優先順序で適用される。
デバイス名1402、接続アプリケーションのアドレス1403、接続アプリケーションのネットワークインタフェースID1404、ベンダID1405、製品ID1406、シリアル番号1407、デバイス種別1408は、後述するデバイス情報テーブル200に記載される内容と同様で、機器もしくはデバイスの情報を示している。管理者は各々のポリシーごとに該当するデバイス名、接続アプリケーションのアドレス、接続アプリケーションのネットワークインタフェースID、ベンダID、製品ID、シリアル番号、デバイス種別の条件を設定する。これらの詳細は、デバイス情報テーブル200の説明において説明する。
排他制御1409は、デバイスを利用者が利用するとき、他の利用者からの利用を禁止するか否かを定義する値である。「必須」「可能」「不要」「不問(*)」の設定が可能である。「不問(*)」の場合、基本的には不要と同様に扱うが、デバイスの種別、クラスごとに自動設定されるように構成してもよい。ここで、クラスとは、例えば、キーボード、ストレージ等、同一のデバイスドライバ(クラスドライバ)にて動作するデバイス種別のことである。
利用可否1410は、デバイスの利用許可を行う際の認証管理サーバ101の挙動を示すもので、「可能」「禁止」「警告」の設定が可能である。「可能」が設定されているポリシーは、該当する機器やデバイスを、後述する利用可能ID1411に記載されている利用者に自動的に利用可能とするポリシーである。「禁止」が設定されているポリシーは、該当する機器やデバイスを、後述する利用可能ID1411に記載されている利用者に自動的に利用不可能とするポリシーである。「警告」が設定されているポリシーは、該当する機器やデバイスを、後述する利用可能ID1411に記載されている利用者に警告表示後に自動的に利用可能とするポリシーである。警告表示はポリシーごとに設定可能である。
なお、図中の*印は不問(定義なし)の意味であり、管理認証サーバ101は記述内容と実際の情報とのマッチングを行う。
例えば、図2では、ポリシー番号1401が1のポリシーは、デバイス名1402、接続アプリケーションのアドレス1403、接続アプリケーションのネットワークインタフェースID1404、シリアル番号1407、デバイス種別1408は不問のポリシーである。すなわち、ベンダID1405が「1001」で、製品ID1406が「1001」のデバイスについてのポリシーの問い合わせがあった場合、そのデバイス名、接続アプリケーションのアドレス、接続アプリケーションのネットワークインタフェースID、シリアル番号、デバイス種別に係わらず、排他制御1409は「不要」、利用可否1410「可能」、利用可能ID1411は20000001、20000010等がデバイス情報テーブル200に記録される。
また、ポリシー番号1401が2のポリシーは、ベンダIDが「1105」でデバイス種別が「B Ltd.」より始まるデバイスのみに対し、自動的に排他制御「必須」で利用可能IDは20000011と設定されるポリシーである。
そして、ポリシー番号1401が3のポリシーは、接続アプリケーションのアドレス1403が192.168.1.1で接続アプリケーションのネットワークインタフェースID1404が「00:00:00:00:00:01」のクライアント装置に接続されているデバイスに対して、自動的に排他制御1409は「不問」で利用可否1410については「警告」表示をしてすべてのユーザに利用可能と設定されるポリシーである。
また、ポリシー番号1401がnのポリシーは、すべてのデバイスについて利用が禁止される設定のポリシーである。すなわち、ポリシーテーブル1400に未登録のデバイスについての登録の依頼があった場合、認証管理サーバ101は、ポリシー番号1401がnの欄を参照し、デバイス情報テーブル200に排他制御1409は「不要」、利用可否1410は「禁止」と設定する。
次にデバイス情報テーブル200について説明する。デバイス情報テーブル200は、本システムに接続されている各デバイスのアクセスを管理するために必要な情報を管理するものである。登録される各レコードは、デバイス管理マネージャ123から、自身が管理しているデバイスを本システム内で共有可能にする要求(以後、デバイス接続要求と呼ぶ。)とともに送信されるデバイスを特定する各種の情報(以後、デバイス情報と呼ぶ。)に、ポリシーテーブル1400に登録されているポリシーを加えたものに従って生成される。仮想デバイスマネージャ120は、デバイス情報テーブル200を用いて、各デバイスの利用の可否を制御する。
デバイス管理マネージャ123からは、デバイスが接続された際、または、取り外された際、デバイス情報として、送信元のクライアント装置をネットワーク103上で特定する情報(本実施形態では、IPアドレスとMACアドレス)と、当該デバイスを特定する情報(本実施形態では、ベンダIDと製品IDとシリアル番号)と、接続されたか、または、取り外されたかを示す情報とが少なくとも送信される。認証管理サーバ101は、ポリシーテーブル1400に従って、レコードを生成し、デバイス情報テーブル200に登録する。
また、クライアント装置自体がネットワーク103から切り離される場合、当該クライアント装置を特定する情報と、切り離されたことを示す情報とが認証管理サーバ101に送信される。
認証管理サーバ101は、例えば、デバイスが増減した時、クライアント装置が切り離された時、システムを利用する利用者が増減したとき、ネットワークの構成が変更されたときなどの、認証管理サーバ101が管理するシステムの構成に変更があったとき、ポリシーテーブル1400のレコードに変更があったとき、管理者からデバイス情報テーブル200の更新の指示を受け付けたとき、デバイス情報テーブル200を更新する。また、後述するように、ステータスについては、所定期間毎に更新される。
図3は、デバイス情報テーブル200の一例を示す図である。本図に示すように、デバイス情報テーブル200は、デバイスID201、デバイス名202、接続アプリケーションのアドレス203、接続アプリケーションのネットワークインタフェースID204、ベンダID205、製品ID206、シリアル番号207、デバイス種別208、排他制御209、ステータス210、利用可能ID211、利用ユーザID212を備える。
デバイスID201は、管理する各デバイスを一意に識別するためのもので、新たに登録の要求がある毎に自動的に作成される。また、認証管理サーバ101やデバイス管理マネージャ123の起動や終了、デバイスの挿抜などのたびに変更される可能性のある一時的なIDである。
デバイス名202は、デバイスを呼び易くするための名称であり、予め管理者または利用者が設定する。管理者が設定する場合は、ポリシーテーブル1400にデバイス名を登録しておき、デバイス情報テーブル200のレコードを生成する際にポリシーテーブル1400から抽出して登録される。一方、利用者が設定する場合は、デバイス情報に含めて認証管理サーバ101に通知される。
接続アプリケーションのアドレス203は、デバイスが接続されているクライアント装置(デバイスA151の例ではPC−D113)のIPアドレスが記録される。これらは、デバイス情報として通知される。このアドレスは上記クライアント装置がサブネット間を移動するなどした場合、利用中であっても適宜変更される可能性がある。
ネットワークインタフェースID204は、デバイスが接続されているクライアント装置(デバイスA151の例ではPC−D113)のネットワークインタフェースのIDを示す番号が記録される。本実施形態のようにネットワークがTCP/IPプロトコルを利用している場合、ネットワークインタフェースIDとしてMACアドレスが使われる。ネットワークインタフェースID204は、接続アプリケーションのアドレスと異なり、機器に固有のものであり、機器が変更にならなければ変更されない。
ベンダID205、製品ID206、シリアル番号207は、デバイス自体に予め付与されているデバイスの識別番号で、クライアント装置(デバイスA151の例ではPC−D113)にデバイスが接続された際、デバイス情報として取得される。これらの情報は、デバイス情報としてクライアント装置から認証管理サーバ101に送信される。各デバイスは、ベンダID、製品ID、シリアル番号の組により識別される。ベンダID及び製品IDは、ベンダ及び製品ごとに一意に付けられるIDである。また、シリアル番号は、製品一つ一つに個別に付けられる番号である。
デバイス種別208は、利用者の理解の為にベンダや管理者が付ける名称である。ベンダが付す場合は、デスクリプタのようなデバイス情報から抽出され、デバイス情報に含めて通知される。一方、管理者が付す場合は、ポリシーデータベース1400に予め登録される。
排他制御209は、デバイスを利用者が利用するとき、他の利用者からの利用を禁止するか否かを示す定義情報である。排他制御209が「必須」となっている場合、デバイスの利用に関して排他制御がなされ、デバイスの利用開始から利用者が利用を終了するまで、当該デバイスは他の利用者のアクセスから守られる。排他制御209が「可能」となっている場合、デバイスへ情報を送受信している期間のみデバイスは他の利用者の利用から守られる。排他制御209が「不要」となっている場合は、排他制御は行われない。本情報は、ポリシーテーブル1400から抽出され、登録される。
ステータス210は、デバイスの利用状況を示す情報である。本情報は、認証管理サーバ101が所定時間毎に各接続クライアント装置にポーリングを行い、取得する。ステータス210が「占有中」となっている場合、利用者が排他処理をしながら当該デバイスを利用している状態を示す。ステータス210が「利用中」となっている場合、利用者が排他処理は行わずに当該デバイスを利用している状態を示す。ステータス210が「通信中」となっている場合、利用者が、通信中のみ排他制御を利用し、通信が終了次第速やかに占有状態を解消する状況を示す。ステータス210が「不明」となっている場合、例えば、認証管理サーバ101への通知無しにデバイス管理マネージャ123が通信できなくなった状態を示す。ステータス210が「不明」状態になった場合、一定時間を過ぎると認証管理サーバ101は、該当するデバイス管理マネージャ123の停止と当該デバイス管理マネージャ123がインストールされているPC−D113に接続されていたデバイスA151を停止するよう制御する。ステータス210が「切断」となっている場合、仮想デバイスマネージャ120は、デバイス管理マネージャ123と通信は出来ているが、デバイス管理マネージャ123と当該デバイスA151との間の通信が出来ない状態を示す。また、ステータス210が「未使用」となっている場合は、どのクライアント装置も使用していない状態を示す。
利用可能ID211は、当該デバイスへ接続が許可される利用者もしくはグループのIDが記録される。本情報は、ポリシーテーブル1400から抽出される。複数の利用者もしくはグループに当該デバイスへの接続が許可されている場合は、全ての許可されている利用者もしくはグループのIDが登録される。利用可能ID211は、未定義、すなわち、いずれのIDも登録されていない状態であってもよい。未定義の場合、いずれの利用者もしくはグループも、接続が許可される。
利用ユーザID212は、現在、当該デバイスを利用している利用者のIDが記録される。本情報は、認証管理サーバ101が所定時間毎に各接続機器にポーリングを行い、取得する。
次に、認証管理サーバ101が保持する利用者情報データベース300について説明する。本データベース300は、利用者がネットワーク103に接続されている情報センタ102外の機器から、情報センタ102内の機器への接続を要求した場合、接続を要求する利用者が許可可能な利用者権限を保持しているか否かを判定(認証)するために利用される。本データベースは、予め管理者により登録される。
図4は、認証管理サーバ101が保持する利用者情報データベース300の一例である。本図に示すように、利用者情報データベース300には、利用者ID301、利用者名302、所属グループ303、証明書304、有効期間305、証明書認証可306、暗号ハッシュ方式307、パスワード308、パスワード認証可否309の各項目が、ユーザごとに登録される。
利用者ID301は利用者を識別するためのIDであり、利用者ごとに予め付与される。利用者の利用権利が変更されなければ通常変更はされない。利用者名302は、利用者の名称を示す文字列である。利用者名302は、利用情報を表示する際に用いられる。所属グループ303は、利用者の所属するグループを示す情報である。本実施形態では、各種の利用権限はグループ単位で割り当てられるよう構成されている。所属グループ303は、各利用者が与えられている権限に該当するグループが示される。一人の利用者が複数のグループに所属、すなわち、所属グループ303に複数のグループが登録されていてもよい。また、所属グループは未定義であってもよい。未定義の場合、当該利用者には、いずれの利用権限が与えられていないこととなる。
証明書304は、利用者の認証に用いる公開鍵証明書を特定する情報である。証明書304として記録されている公開鍵証明書は、その有効性が認証管理サーバにおいて検証可能になっているものである必要がある。例えば、認証管理サーバ101内に認証局を持ち、その認証局が発行を行うよう構成してもよい。
有効期間305は、利用者が、ブレードサーバ106内のPCやデバイスを利用する権利を持つ期間である。有効期間305が未定義の場合、利用者はPCを利用する権利がない。有効期間は年、月、日などを用いた期間の設定のほかに毎週月曜日、毎日8時45分から17時15分といった期間の設定も可能である。有効期間305は、証明書304に示される公開鍵証明書の有効期限とは独立に設定できる。
証明書認証可306は、証明書認証を認めるか否かを示す情報である。暗号ハッシュ方式307は、認める公開鍵インフラストラクチャを利用して認証する場合の暗号ハッシュの方式の記載である。暗号ハッシュ方式307が未定義の場合は、認証管理サーバから暗号ハッシュの方式についての制限はない。この場合であっても、クライアント(利用者が使用するPC等)等に実装されていない方式では認証は行えない。パスワード308は、パスワードを利用して認証が行われる場合のパスワードである。パスワード308として、ハッシュ値や暗号化などが施された情報が記録される。パスワード認証可否309は、パスワードを利用して認証することが可能か不可能かを示す情報である。
ブレードサーバ106が認証管理サーバ101に認証情報を確認して認証を得るのは、利用者情報データベース300に基づいたパスワードや公開鍵インフラストラクチャを用いた認証をへて、利用者がブレードサーバ106内のPCを利用可能な権限を取得した場合である。
本実施形態では、認証は、1)アクセスしてきた利用者が、ブレードサーバ106へのアクセスする権限を有する者であるか否か、そして、2)ブレードサーバ106内のPC−A110が割り当てられた後、当該PC−A110の資源(プログラムや仮想デバイス)を利用する権限を有する者であるか否か、の2段階で行われる。いずれの場合も、利用者は利用者認証用情報を少なくとも含む認証要求をブレードサーバ106またはPC−A110に送信し、認証要求を受け取ったブレードサーバ106またはPC−A110は、認証管理サーバ101にアクセスし、利用者情報データベース300に登録されているレコードと照合し、認証を行う。ここで、利用者認証用情報とは、利用者IDおよびパスワード、もしくは、利用者毎に登録された公開鍵情報に対応する署名のことを言う。
次に、情報センタ102内の各PCの利用状況の管理に用いられるPC利用管理テーブル400ついて説明する。図5は、ブレードサーバ106が保持する、PC利用管理テーブル400の一例である。
PC利用管理テーブル400には、情報センタ102内の各PC毎に、PC名401、ネットワーク名402、IPアドレス403、MACアドレス404、利用元端末405、利用元ネットワーク名406、利用元IPアドレス407、利用元MACアドレス408、利用者ID409、ステータス410、接続開始時刻411、接続終了時刻412、動作確認時刻413が登録される。
PC名401は、情報センタ102内のPCを識別するPCの名称である。これは、管理者が重複の無いよう予め定めて登録する。ネットワーク名402は、ネットワーク上でPCを識別する際に利用される名称である。これは、管理者が重複の無いように予め定めて登録する。各PCについて、ネットワーク名402とPC名401とは同じ名称が付与されても異なる名称が付与されてもよい。
IPアドレス403は、それぞれのPCに付与されたIPアドレスである。MACアドレス404は、それぞれのPC上のネットワークインタフェースに一意に定められているアドレスである。
利用元端末405は、現時点でこの情報センタ102内のPCを遠隔操作しているクライアント装置の名称である。この名称も、管理者が重複の無いよう予め定めて登録する。管理者は名称を自由に設定、変更することができる。当該情報センタ102内のPCがクライアント装置によって利用されていない場合、利用元端末405は未定義となる。利用元ネットワーク名406は、ネットワーク103上で利用元を識別する際に利用される名称である。管理者が重複の無いよう予め定めて登録する。なお、利用元端末405および利用元ネットワーク名とは同じ名称であってもよい。
利用元IPアドレス407は、クライアント装置のIPアドレスである。利用元MACアドレス408は、クライアント装置のネットワークインタフェースに一意に定められたアドレスである。
利用者ID409は、クライアント装置を利用している利用者の利用者IDである。クライアント装置が使用されていない場合、利用者ID409は未定義となる。
ステータス410は、当該PCが稼動中か否かを示す情報である。ステータス410に記録される情報には、「稼動中」、「確認中」、「待機中」の3種類がある。ステータス410が「稼動中」であるPCは、利用者ID409に登録されているIDを有する利用者が利用元端末405に特定されているクライアント装置を介して利用中であることを示す。ステータス410が「確認中」である場合、認証管理サーバ101においてクライアント装置がPCを利用しているか否かを確認中である状態、または、確認が完了していない状態であることを示す。ステータス408が「待機中」であるPCは、クライアント装置がPCの利用を待機している状態、すなわち、クライアント装置がPCを利用していない状態であることを示している。
接続開始時刻411は、利用者ID409で特定される利用者が利用元端末405で特定されるクライアント装置を介してPCの操作を開始した時刻を示す。接続終了時刻412は、利用者ID409で特定される利用者が利用元端末405で特定されるクライアント装置を介して行うPCの操作を終了した時刻を示す。動作確認時刻413は、仮想デバイスマネージャ120から認証管理サーバ101に対してチャネルの生成、消滅等の発生した際に行われた通信の最終時刻を示す。
ブレードサーバ106は、構成する各PCの利用状況に変更がある度に、本データベースを更新する。
次に、本実施形態のデバイス管理システムにおいて、デバイスを共有可能な状態に設定し、設定後にデバイスを共有する処理(以後、デバイス共有処理と呼ぶ。)について説明する。ここでは、利用者がクライアント装置であるPC−D113を利用して情報センタ102内のブレードサーバ106を構成する機器のうちPC−A110を遠隔操作し、PC−D113に接続されているデバイスA151を共有可能とする場合を例にあげて説明する。もちろん、他の利用者端末、他のブレードサーバ106を構成する機器、他のデバイスであっても、デバイス共有処理の手順は同様である。
ここでデバイス共有処理とは、下記の2つの状態において、デバイスA151を,排他的に利用可能にする処理である。
第1の状態は、デバイスA151がPC−D113から利用可能であるがPC−A110からは利用できない状態であり、第2の状態は、デバイスA151がネットワークを介してPC−A110から利用可能であるが,PC−D110からは利用できない状態である。
第1の状態では、PC−A110上で動作するアプリケーションは、デバイスを認識できないが、PC−D113上で動作するアプリケーションからデバイスA151へのリクエストは、デバイスA151に正常に送信され、デバイスA151からレスポンスが返信される。
第2の状態では、PC−A110上で動作するアプリケーションからデバイスA151へのリクエストは、デバイスA151に正常に送信され、デバイスA151からレスポンスが返信される。しかし、PC−D113上で動作するアプリケーションからデバイスA151へのリクエストは、デバイスに送信されず、デバイス管理マネージャ123からエラーを含んだレスポンスが返信される。
システムが第1の状態で動作するか、第2の状態で動作するかは、利用者の指示により切り替えられる。また、デバイス管理マネージャ123と仮想デバイスマネージャ120の通信が切断された場合、デバイス管理マネージャ123は、システムが第1の状態で動作するよう処理を行う。
以上に説明したデバイス共有処理により、利用者はPC−A110もしくはPC−D113どちらかから独占的(排他的)にデバイスA151を利用することが可能である。上記のようなリクエストを排他制御する処理を行うことにより、デバイスA151は、アプリケーションからのリクエストのシーケンス管理を行っている場合や、デバイスの状態遷移の管理をデバイスドライバで行っている場合に、デバイスA151がデバイスドライバからの要求に誤動作を起さない。
図6は、上記例におけるデバイス共有処理の処理フローである。
利用者はPC−D113に起動指示を行う(501)。利用者からの起動指示を受け付けたPC−D113は、ストレージ163からOSやアプリケーションをロードし起動する(502)。ここで、OSやアプリケーションは、ネットワーク上に存在するストレージからロードしても良い。このとき、デバイス管理マネージャ123も起動される。
ステップ502で起動されたデバイス管理マネージャ123は、PC−D113に接続されているデバイスA151の情報を取得する(503)。接続されているデバイスの情報の取得は、起動時に、ホスト(本実施形態では、PC−D113)側からの要求に応えてデバイス側からホストにデバイス全体の情報に関するデータであるデスクリプタの情報が送信されることにより行なわれる(504)。デスクリプタには、例えば、デバイスの種別をあらわすコード、デバイスのクラスのコード、当該デバイスの製造ベンダのID、製品ID、シリアル番号などが含まれる。PC−D113ではステップ503で取得したデバイスの情報にデータに基づいてデバイスA151を駆動するデバイスドライバが読み込まれ、動作する。デバイス管理マネージャ123は、管理するデバイス(ここでは、デバイスA151)のドライバもしくはフィルタドライバの機能を実現することにより、本デバイスを本システム内で共有可能な状態とし、当該デバイスに送受信される情報を制御する。
デバイス管理マネージャ123は、PC−D113に接続されているデバイスA151の動作を確認した後、デバイス接続要求とともにステップ503において取得したデバイスA151のデバイスの情報から抽出したデバイス情報を認証管理サーバ101に送信する(504)。認証管理サーバ101では、デバイス接続要求およびデバイス情報を受信すると、ポリシーテーブル1400内のデータと照合し、デバイス接続要求のあったデバイスに関するポリシーをデバイス情報管理テーブル200に登録する(505)。
一方、PC−D113の起動が完了すると、PC−D113は、起動が完了した旨をディスプレィに表示する(506)。利用者は、起動が完了したことを確認すると、情報センタ102内のブレードサーバ106を構成するPCの利用を開始するよう指示を行う。本実施形態では、利用開始の指示は、利用者IDおよびパスワードの入力である。
PC−D113は、利用者から利用開始の指示を受け付ける(507)と、ブレードサーバ106を利用する要求(以後、サーバ利用開始要求と呼ぶ。)として、受け付けた利用者認証用情報をブレードサーバ106に送信する(508)。
ブレードサーバ106は、サーバ利用開始要求を受け取ると、利用者がブレードサーバ106の適切な利用権限を持つかどうかの認証を行う(509)。具体的には、ブレードサーバ106は、利用開始要求に含まれる利用者IDおよびパスワードを認証管理サーバ101に送信し、認証を依頼する(510)。認証管理サーバ101では、受け取った利用者認証用情報を利用者情報データベースと照合し、認証を行い、結果をブレードサーバ106に返信する。ここでは、利用者がブレードサーバ106自体にアクセス権限を有する者であるか否かを認証する。
ブレードサーバ106が、認証管理サーバ101から認証成功の返信を受けた場合、ブレードサーバ106は、アクセスしてきた利用者がブレードサーバ106の利用を許可されたものと判断し、ブレードサーバ106を構成するPCの中から、当該利用者が利用すべきPCを決定する。PCは、利用順序に応じて適切に割り当てられるか、予め利用者に1対1などに割り付けられるか、利用者に割り当てられた何らかの権限に応じて割り付けられるか、のいずれの形態であってもよい。いずれの形態を取るかは管理者が決定する。ここでは、ブレードサーバ106が、アクセスしてきた利用者にPC−A110を割り当てたものとして、説明する。他のPCを割り当てた場合も、処理は同様である。
ブレードサーバ106は、PC−D113に割り当てるPCをPC−A110と決定すると、PC−A110の起動状況の確認を行う(511)。PC−A110が起動していない場合、PC−A110を起動する要求をPC−A110に行う(512)。送信した要求に従ってPC−A110が起動すると(513)、PC−A110は、起動完了を示す情報をブレードサーバ106に通知する(514)。なお、PC−A110が既に起動している場合、例えば、PC−A110がサーバ機能を持ち、複数人が同時に利用できる環境であり、常時通電されている場合など、ステップ511からのPCの起動操作は不要である。
なお、PCの稼動状況は、PC利用管理テーブル400にアクセスし、該当するPC名401のステータス410を確認することにより行う。起動後、割り当てたクライアント装置を、該当するPC名401の利用元端末405として追記する。
一方、PC−A110が起動すると、PC−A110内にインストールされている仮想デバイスマネージャ120は、利用可能なデバイスを確認する(515)。具体的には、仮想デバイスマネージャ120は、認証管理サーバ101に、仮想デバイスマネージャ120が稼動するPC(ここでは、PC−A110)が利用可能なデバイスの調査の要求(以後、利用可能デバイス調査要求と呼ぶ。)を送信する(516)。
利用可能デバイス調査要求を受け取った認証管理サーバ101は、デバイスの調査と確認とを行う(517)。具体的には、利用可能デバイス調査要求を受け取った認証管理サーバ101は、まず、新規デバイスが新たに登録されているか否かを確認し、既に保持しているデバイス情報テーブル200の更新を行う(518)。認証管理サーバ101は、利用可能デバイス調査要求を受けて、現時点でデバイス情報テーブル200に登録されている各デバイスについて、当該デバイスが接続されているそれぞれのPCまたはハブなどのクライアント装置のデバイス管理マネージャに向けて、登録されている各デバイスが依然として利用可能か否かの問い合わせを行う(519)。
認証管理サーバ101から問合せを受けた各クライアント装置のデバイス管理マネージャは、現時点での問合せを受けたデバイスの利用の可否を認証管理サーバ101に返信する(520)。なお、各デバイス管理マネージャは、利用の可否を示す情報として、当該デバイスが既に切断されていた場合は、切断されていることを、接続されている場合は、各デバイスの「占有中」、「利用中」、「通信中」といった現在のステータスを返信する。認証管理サーバ101は各デバイス管理マネージャから受け取った情報を用いて、デバイス情報テーブル200を更新する。切断されているとの情報を受けた場合は、当該デバイスに関するレコードを削除する。
そして、認証管理サーバ101は、デバイス情報テーブル200に登録されているデバイスを現時点での利用可能デバイスとして、問合せ元の仮想デバイスマネージャ120に送信する(521)。
次に、仮想デバイスマネージャ200は、デバイス情報テーブル200の情報に基づき、デバイスを共有する処理を行う。現時点では、仮想デバイスマネージャ120は、利用者の認証を行っていない状態なので、利用可能デバイスのチェックを行う際にデバイス情報テーブルにおいて利用可能IDの制限のあるデバイスについては共有処理を行うことができない。従って、仮想デバイスマネージャ200は、デバイス情報テーブル200に登録されているデバイスであって、利用可能ID211が未定義のデバイスを抽出し、これらの利用可能なデバイスとの間で、チャネルを生成するなどの通信準備を行う(522、523)。なお、認証管理サーバ101は、仮想デバイスマネージャ120から利用可能デバイス調査要求を受けた場合(516)、各デバイス管理マネージャ123に問い合わせを行わず、その時点でデバイス情報テーブル200に登録されているデバイスであって、利用可能ID211が未定義のデバイスを抽出し、問合せ元の仮想デバイスマネージャ120に返信するよう構成してもよい(521)。この場合、ステップ517〜520の処理は行われない。
なお、チャネルの生成は、仮想デバイスマネージャ120が、ステップ521で利用可能デバイスとして受け取った各デバイスが接続されているクライアント装置が備えるデバイス管理マネージャとの間で、お互いのIPアドレスと認証管理サーバ101から与えられた情報とを元に相互認証、鍵交換を行い、暗号通信路を形成することにより行なわれる(523)。
相互認証の方法の一例として、認証管理サーバ101が、デバイス管理マネージャ123についてはデバイス情報送受信時に、また仮想デバイスマネージャ120については利用デバイス返信時に、それぞれプリシェアードキー(事前共有鍵)を安全に送付しておき、その事前共有鍵を元に認証を行う方式が挙げられる。相互認証の方式は特に本方法に限らず、チャネルの生成を行っている相手が、特定のデバイス管理マネージャと仮想デバイスマネージャとであることが確認できれば良い。
相互認証が終了した後、仮想デバイスマネージャ120とデバイス管理マネージャとの間でID情報およびデータをやり取りするための暗号用の鍵が交換される。以降、ここで交換された暗号用の鍵を用いてデバイス管理マネージャと仮想デバイスマネージャ120とが通信を行う。このため、第三者にはID情報およびデータをやり取りする通信は盗聴不可能になる。この暗号用の鍵は、固定値でもよいが、1回の利用ごともしくは一定の期間で破棄され、新たな暗号用の鍵が生成されるようにしてもよい。
本実施形態では、このように仮想デバイスマネージャ120とデバイス管理マネージャ123との間でチャネルが生成された場合、当該デバイス管理マネージャ123が管理するデバイスが共有可能な状態となったと呼ぶ。このような第三者に盗聴不可能な通信路(チャネル)により、PC−A110は、PC−A110にデバイスA151が直接接続された場合と同様に、デバイスA151を制御することができる。
すなわち、本実施形態において、「デバイスの共有」とは、PC−A110にデバイスA151が直接接続された時と同様にPC−A110が処理を行うことができるようPC−A110が動作することである。例えば、PC−D113に接続されているデバイスA151について「デバイスの共有」が実現された場合、デバイスA151からデバイス管理マネージャ123、仮想デバイスマネージャ120を介してPC−A110がデバイスA151内に設定されている通信方式やデスクリプタを読み出したり、リセットしたりすることができる。
なお、PC−A110において、デバイスA151を過去に利用したことがない場合、必要なデバイスドライバをインストールする。一般的には、デバイスの共有が行われた際、PC−A110上で動作しているオペレーティングシステムが新しく追加されたデバイスを自動的に認識し、当該デバイスの動作に必要なデバイスドライバのインストール作業を行う。このようなインストール作業は、PC−A110において初めて使用するデバイスがPC−A110と他の機器との間で共有された際に発生し、過去に使用したデバイスであれば、既に必要なドライバがPC−A110にインストールされているため、発生しない。
なお、PC−A110上で動作しているオペレーティングシステムが上記のような自動的にデバイスを認識し、必要なデバイスドライバのインストールを行う機能を持たない場合は、管理者または利用者が手動でデバイスドライバのインストールを行い、デバイスが利用可能となるようPC−A110の設定を変更する。
また、複数の利用者がデバイスA151を共有している場合、各利用者がそれぞれ独立にリセットを指示したり、通信したりする場合がある。このような場合は、デバイス管理マネージャ123は、リセットを受け付けないような手順に変更したり、すでにデバイスA151より取得し、デバイス管理マネージャ123内に保存していた情報を代わりに送信したりするよう構成する。具体的には、仮想デバイスマネージャ120からの特定の通信に対し、予め定められた応答を行う。
なお、ここで生成されたチャネルの情報は、認証管理サーバ101に送信され(591)、認証管理サーバ101では、受け取った情報を用いてデバイス情報テーブル200を更新する(592)。
以上の処理によりPC−A110がPC−D113の利用者により利用可能となる。
次に、利用者がPC−D113を介してPC−A110の利用を要求する。すなわち、PC−D113は利用者からPC−A110を利用する指示を受け付けると、PC−D113はPCを利用する要求(以後、PC利用要求と呼ぶ、)を生成し、それをPC−A110に送信する(524)。このPC利用要求には、利用者を特定する情報、例えば、利用者ID、パスワードなどが含まれる。
PC−A110は、PC利用者要求を受け取り、ログイン処理を行う(525)。ログイン処理は、まず、PC−A110は、利用者要求に含まれる利用者を特定する情報を認証管理サーバ101に送信する。認証管理サーバ101は、受け取った利用者を特定する情報と利用者情報データベース300に格納されている情報とを対比し、利用者の認証を行い、結果をPC−A110に返信する。なお、予め、利用者情報データベース300の中の項目のうち、ログイン時の利用者認証に必要な項目のみPC−A110も保持し、ログイン時の認証をPC−A110において行うよう構成してもよい。
次に、仮想デバイスマネージャ120は、利用可能デバイスのチェックを行う。ここでは、仮想デバイスマネージャ120は、ログインした利用者についての利用可能デバイスを抽出する。利用可能デバイスを抽出する手順は、上記516で説明したものと基本的に同様である。ログインした利用者のIDも問い合わせ時に認証管理サーバ101に送信し、当該利用者のIDが利用可能IDとして登録されているもののみの返信を受けてもよい。
認証管理サーバ101は、上述の処理と同様に、デバイス情報テーブル200に登録されているデバイス全てについて、当該デバイスが接続されているクライアント装置のデバイス管理マネージャに最新の情報を問い合わせ、返信を受け、デバイス情報テーブル200を更新した後、問合せ元の仮想デバイスマネージャ120に返信する(529〜532)。なお、上述同様、認証管理サーバ101は、利用可能デバイス調査要求に応じ、デバイス情報テーブル200を参照し、現時点で当該利用者に利用可能なものとして登録されているデバイスを、問合せ元の仮想デバイスマネージャ120に返信するよう構成してもよい(532)。
初回の利用可能デバイスのチェック(516〜521)では、利用者が特定されていなかったので、利用可能IDが限定されているデバイスについては、共有処理、すなわち、通信路を設定することができなかった。しかし、利用者のログイン(525)以降は、利用可能IDの中に利用者のIDもしくは利用者の所属するグループのIDが入っているデバイスは利用が可能になる。従って、この時点で新たに利用が可能となったデバイスとの間で、上述と同様、通信路(チャネル)を開設する(533〜534)。
なお、利用可能デバイスとの通信準備(533)の段階で、利用可能デバイスの一覧をPC−A110の画面、PC−D113、または、情報センタ102内の管理者が確認可能な画面に表示するよう構成してもよい。この場合、これらの画面には、現在共有されているデバイスと、接続可能なデバイスなどのリストが表示されることとなる。仮想デバイスマネージャ120が保持している前回終了時刻にデバイス共有リストにあり、現在利用可能なデバイスは利用者の指示無しにチャネルの生成を行うこと、すなわち、デバイスの共有を行うことができる。デバイスの共有を行うことが可能なデバイスについての共有設定を、利用者の指示無しに行うか否かは、管理者または利用者により設定できるよう構成することが可能である。
生成されたチャネルの情報は、認証管理サーバ101に送信される(593)。認証管理サーバ101では、受け取ったチャネルの情報に従ってデバイス情報テーブル200を更新する(594)。その後、PC−A110の利用が開始される(535)。
ここで、利用可能デバイスのチェック、利用可能デバイス調査要求、デバイスの調査と確認、デバイス利用可不可問合せ、デバイス情報取得、デバイス情報送信利用可能デバイス返信(526〜534)、チャネル生成情報の送信593、およびテーブルの更新594は、PCの利用(535)の間中適宜繰り返し実行され、認証管理サーバ101の持つデバイス情報テーブルは常に最新の状態に更新され続ける。
ここで、利用者がログインした後の仮想デバイスマネージャ120による利用可能デバイスのチェックは、定期的に行うことが望ましい。仮想デバイスマネージャ120は、定期的にデバイス情報テーブル200を確認し、ステータスの変更による共有の可否の変化を確認する。
一方デバイス情報テーブル200は、デバイス管理マネージャ120により、デバイスの接続状況の変化、ステータスの変化など、デバイスに関する状態の変化が発生する毎に、変化後の状態を示す情報とともに更新するよう認証管理サーバ101に通知がなされる。
以上の処理を経て、デバイス管理マネージャ123と仮想デバイスマネージャ120とが動作し、通信することによりデバイスA151は、PC−A110のデバイスとして動作することが出来る。すなわち、デバイスA151について、デバイスの共有が実現する。
次に、本実施形態のデバイス管理システムにおけるデバイス共有終了時の処理について説明する。図7は、本実施形態のデバイス共有処理終了時の処理フローである。
本図に示す通り、利用者はPC−D113を利用してPC−A110を遠隔操作し、デバイスA151の利用を終了し、他の利用者にデバイスA151を解放する。
利用者は、PC−D113に対しデバイス利用終了指示を行う(601)。PC−D113は、利用者よりデバイス利用終了の指示を受け取ると、仮想デバイスマネージャ120にデバイス利用終了の要求(以後、デバイス利用終了要求と呼ぶ。)を送信する(602)。仮想デバイスマネージャ120は、デバイス利用終了要求を受け取ると、利用終了デバイスのチェックを行う(603)。具体的には、仮想デバイスマネージャ120は、PC−A110において、デバイスの利用を終了してよいかどうか判断する。
例えば、PC−A110上のアプリケーションや他のクライアント装置がデバイス利用終了要求の対象デバイスを利用中である場合、利用は終了できない。この場合は、これらのアプリケーションや他のクライアント装置がデバイス利用終了要求の対象デバイスの利用を終了するまで終了処理を待つ。この場合、PC−D113に指示されたデバイスの終了はできない旨を通知する。PC−D113は受け取った通知を利用者に表示などにより通知する。
なお、この通知は必ずしも行う必要はなく、例えば、所定時間以上待機後であっても利用終了が行えない場合のみ通知するよう構成してもよい。もちろん、利用終了デバイスのチェック(603)において、利用終了が可能な場合は、デバイスを特定する情報とともに、当該デバイスの利用を終了した旨の通知である利用終了デバイス送信を、認証管理サーバ101に行う(604)。
次に、認証管理サーバ101は、利用終了デバイス送信を受けて、デバイスの調査と確認を行う(605)。具体的には、デバイス利用終了要求元のデバイス管理マネージャ123に、指示されたデバイスの利用が終了したことを示す情報であるデバイス解放情報送信を行う(606)。
デバイス管理マネージャ123は、デバイスの調査と確認を行う(607)。ここでは、デバイスからの応答の有無を調べるなどの調査が行われる。応答がなければ、デバイス情報テーブル200の該当するデバイスのステータスを「不明」とする。
一方、デバイスから通常の応答が得られた場合は、デバイス管理マネージャ123は、仮想デバイスマネージャ120との間に確立されていたチャネルを破棄し(608)、チャネルの破棄に成功した場合、認証管理サーバ101にチャネルの破棄を終えたことを示す情報であるチャネル破棄情報を送信する(609)。
認証管理サーバ101は、チャネル破棄情報を受け、デバイス情報テーブル200の更新(610)を行う。すなわち、この時点で、認証管理サーバ101は、チャネルが破棄されたデバイスについて、デバイス情報テーブル200のステータス210を、例えば、「占有中」、「利用中」、「通信中」などから、「未使用」に変更する。
認証管理サーバ101、デバイス管理マネージャ123および仮想デバイスマネージャ120は、図6および図7を用いて説明した一連の動作において送信もしくは受信したデータを、それぞれログ191、173、170としてストレージ190、163、160に記録する。
次に、本実施形態のデバイス管理システムのデバイス共有処理におけるPC−A110側の擬似バスドライバ1504および通信プログラム1508、PC−D113側の通信プログラム1510およびフィルタドライバ1514の処理の詳細について説明する。
図14は、本実施形態のデバイス共有処理の中のPC−D113起動時(図6の502)のフィルタドライバ1514及び通信プログラム1510の処理を説明するための図である。
利用者からPC−D113の起動の指示を受け取ると、まず、デバイス管理マネージャ123は、通信プログラム1510をPC−D113のメモリ上にロードして起動させる(1605)。また、同様にフィルタドライバ1514を起動する(1606)。通信プログラム1510は、フィルタドライバのオープン処理を行い(1607)、フィルタドライバ1514は、通信プログラム1510から利用可能な状態となる。次に通信プログラム1510からイベント待ち要求がフィルタドライバ1514に送信され(1608)、フィルタドライバ1514は、イベント待ち状態となる(1609)。
イベント待ち状態においては、フィルタドライバ1514は、デバイスA151より発せられた割り込みを通信プログラム1510に送信することが可能であり、通信プログラム1510は、フィルタドライバ1514へ命令を送信することが可能である。なお、イベント待ち状態において、フィルタドライバ1514がPC−D113上に保存されたデータを読み込むか、GUIアプリケーション1509より入力される利用者の指示を通信アプリケーション1510を介して受け取ることにより、デバイスA151より発せられた割り込みをデバイスクラスドライバ1513に送信する設定とすることが出来る。デバイスクラスドライバ1513に割込みを送信する設定の場合、図6の起動(502)後は、デバイスA151をPC−D113より直接操作できる。ここで、通信プログラム1510がフィルタドライバ1514のオープンに失敗した場合、通信プログラム1510は、GUIアプリケーション1509にフィルタドライバ1514のオープンに失敗した旨を通知すると共に、PC−D113内のログにエラー情報を記録し、認証管理サーバ101にエラーを報告する。GUIアプリケーション1509は、フィルタドライバ1514のオープンに失敗した旨の通知を受けると、それを示す画面を図示しない表示装置に表示させる。
次にPC−A110の起動時(図6の513)の擬似バスドライバ1504及び通信プログラム1508の処理について説明する。図15は、本実施形態のデバイス共有処理の中のPC−A110起動時(図6の513)の擬似バスドライバ1504及び通信プログラム1508の処理を説明するための図である。
利用者からPC−A110の起動の指示を受け取ると、仮想デバイスマネージャ120は、まず、擬似バスドライバ1504をPC−A110のメモリ上にロードして起動する(1601)。次に、擬似バスドライバ1504は、内部にエニュメレータ1506を作成する(1602)。次に、仮想デバイスマネージャ120は、通信プログラム1603をPC−A110のメモリ上にロードして起動する(1603)。通信プログラム1508は、擬似バスドライバ1504のオープン処理を行い(1604)、擬似バスドライバ1504は、通信プログラム1508から利用可能な状態となる。ここで、通信プログラム1508が擬似バスドライバ1504のオープンに失敗した場合、通信プログラム1508は、GUIアプリケーション1507に擬似バスドライバ1504のオープンに失敗した旨を通知すると共に、PC−A110内のログにエラー情報を記録し、認証管理サーバ101にエラーを報告する。GUIアプリケーション1509は、フィルタドライバ1514のオープンに失敗した旨の通知を受けると、それを示す画面を図示しない表示装置に表示させる。
次に、チャネル生成(図6の523および534)における擬似バスドライバ1504、通信プログラム1508、通信プログラム1510およびフィルタドライバ1514にてPC−A110の仮想デバイスマネージャ120とPC−D113のデバイス管理マネージャ123との間にチャネルを生成する処理について説明する。図16は、本実施形態のデバイス共有処理の中のチャネル生成時の擬似バスドライバ1504、通信プログラム1508、通信プログラム1510およびフィルタドライバ1514の処理を説明するための図である。
チャネルの生成時は、まず通信プログラム1508が、チャネル生成要求を通信プログラム1510に送信する(1611)。次に通信プログラム1510がチャネル生成要求に対する応答を送信する(1612)。チャネル生成要求1611には、通信プログラム1508と通信プログラム1510との間で行う暗号通信に利用される鍵を選定するための情報が含まれる。また、チャネル生成要求に対する応答1612には、通信プログラム1508と通信プログラム1510との間で行う暗号通信に利用される鍵を決定するための情報が含まれる。
チャネル生成要求1611及びチャネル生成要求に対する応答1612の送受信を経て通信プログラム1508及び通信プログラム1510は、2者の通信内容を傍受されても通信内容が露呈しないチャネル(暗号通信路)を生成し、通信を開始する。なお、チャネル生成要求1611及びチャネル生成要求に対する応答1612で用いられる暗号鍵情報として、通信プログラム1508及び通信プログラム1510で独自に生成する暗号鍵情報、GUIアプリケーション1507及びGUIアプリケーション1509が独自に入手する暗号鍵情報、すでにPC−A110もしくはPC−D113内に保存されている暗号鍵情報、認証管理サーバ101などが生成する暗号鍵情報を用いてもよい。
チャネル生成要求1611および応答1612の送受信後、通信プログラム1508は、受信イベント待ち状態となる(1613)。また、通信プログラム1510は、フィルタドライバ1514にフィルタ開始要求1614を送信する。フィルタ開始要求をフィルタドライバ1514が受信した後は、フィルタ処理が開始され(1615)、フィルタドライバ1514は、物理バスドライバ1515を介して入出力されるデバイスA151のデータを独占的に通信プログラム1510が扱えるようにする。次に、通信プログラム1510は、受信イベント待ち(1616)状態となる。
ここで、フィルタドライバ1514が、フィルタ開始要求を受信し、フィルタ処理を開始(1615)する際の、デバイスA151の初期化処理について説明する。
フィルタ処理が開始されると、デバイスクラスドライバ1503からのリクエストが、フィルタドライバ1514を経てデバイスA151に送信され、PC−A110よりデバイスA151が利用可能となる。フィルタドライバ1514がフィルタ開始要求を受信した際に、PC−D113がデバイスA151を利用中であると、処理の競合が生じる。これを避けるため、本実施形態のデバイス管理システムにおいては、フィルタドライバ1514がフィルタ処理を開始する際、以下に示すようにPC−D113からのリクエストのキャンセル処理とデバイスA151の初期化処理とを行い、デバイスA151に対するPC−A110とPC−D113とからのリクエストに競合が発生しないよう管理する。以下に、処理の詳細を説明する。
図22は、本実施形態のデバイス管理システムにおけるフィルタ開始時のOSおよび各デバイスドライバの処理及び通信を説明するフロー図である。
フィルタ開始要求1704を受け、フィルタ処理を開始する際、フィルタドライバ1514は、デバイスA151に対する発行済みのリクエストのうち、処理が終了していないリクエストのキャンセル処理を行うため、キャンセル要求をデバイスクラスドライバ1513に送信する(2201)。
全ての発行済みのリクエストのキャンセル処理が終わると、フィルタドライバ1514は、デバイスA151が通信プログラム1510から送信されるリクエストに対して正常に反応するように、デバイスA151の初期化を行う(2202)。
初期化は、デバイスA151が抜き差しされたような通知をOS1702に対して送信する、デバイスA151を一旦無効化した後に改めて有効化する命令を発行する、などの方法により行われる。
フィルタドライバ1514がこの初期化を行うことにより、PC−D113上では、デバイスA151がPC−D113から切断後に再接続された場合と同様の処理が行われる。具体的には、OS1702からデバイスクラスドライバ1513を介してID等データの要求(初期化要求)がデバイスA151に送信される(2203〜2205)。デバイスA151はすべてのID等データの要求に対する返答をデバイスクラスドライバ1513に対して送信する(2206〜2208)。なお、フィルタドライバ1514が初期化要求を受け取った際、受け取った初期化要求をデバイスA151に送信せずに保持しているデバイスA151のID等データを要求に対する返答としてフィルタドライバ1514からデバイスクラスドライバ1513に送信するよう構成してもよい。ここで、フィルタドライバ1514が保持しているデバイスA151のID等データは、前回のプラグイン処理時などに取得したものである。
初期化要求の処理が終了した後、デバイスA151に対するリクエストがデバイスクラスドライバ1513から送信された場合(2209)、フィルタドライバ1514は、デバイスA151は存在しているが、処理が出来ないことを示すエラーデータをデバイスクラスドライバ1513に送信する(2210)。このエラーデータは、例えば、「デバイスA151内に適切なメディアが挿入されていない」、「デバイスA151が準備中である」といったものであり、デバイスA151の製造元、種別に対応したメッセージが選択される。
処理2210が行われた以降は、フィルタドライバ1514は、デバイスクラスドライバ1513から送信されたリクエストに対して、処理できないことを示すエラーデータを含んだレスポンスをデバイスクラスドライバ1513に返信することにより、デバイスクラスドライバ1513からのリクエストの遮断を行う。
以降、システムは前述した第2の状態(デバイスA151がPC−A110から利用可能であるが,PC−D113からは利用できない)で動作するように,制御が切り替わる。より具体的には,PC−A110上で動作するアプリケーションからデバイスA151へのリクエストは、デバイスA151に送信されて処理され,デバイスA151からレスポンスが返信されるが、PC−D113上で動作するアプリケーションからデバイスA151へのリクエストは、デバイスに送信されず、デバイス管理マネージャ123からエラーを含んだレスポンスが返信されるようになる。
フィルタドライバ1514がデバイスクラスドライバ1513からのリクエストの送信に対して適切なエラーを返答できる状態になると、フィルタドライバ1514は、擬似バスドライバ1514に対して、デバイスA151が接続された旨を通知する。この処理は、図17に示す1704〜1719と同様の処理である。
以上の処理をフィルタドライバ1514が行うことにより、PC−D113からのデバイスA151へのリクエストと独立して、デバイスA151をPC−A110に直接接続されているのと同様に利用者に利用させることが出来る。すなわち、物理バスドライバ1515を介して入出力されるデバイスA151のデータを独占的に通信プログラム1510が扱うことができるよう、制御することができる。
なお、図6のチャネルの生成523及び534の処理では、PC−D113上の複数のデバイスがフィルタされる場合、図6の利用可能デバイス返信521もしくは利用可能デバイス返信532により利用可能デバイスであると仮想デバイスマネージャ120において判断されたデバイスに対応したフィルタドライバ1514だけに対してフィルタ開始の処理が行われ、PC−A110からPC−D113に接続されたデバイスが利用可能となる。
次に、図6の処理を終え、デバイスA151が共有可能となりPC−A110のデバイスとして動作させることができるようになった後の、デバイス管理マネージャ123と仮想デバイスマネージャ120との間のデータの送受信制御の詳細について図8を用いて説明する。ここでは、PC−A110およびPC−D113がネットワーク103を介して通信を行っている状態で、PC−D113に接続されたデバイスA151を利用者がPC−A110から利用しようとしているものとする。
PC−D113にデバイスA151が接続されると、デバイスA151が接続されているPC−D113の物理バス(本実施形態ではUSBバス)用の物理バスドライバ1515がデバイスA151を検知し、図示しないOSに対してデバイスA151に対応したデバイスドライバの利用準備を行うようにメモリ上にプログラム(デバイスドライバ)をロードするよう指示を出す。そして、OSは予め定められたデバイスドライバ群をロードする。
通常、アプリケーション1511とデバイスA151とのデータの送受信には、上位ドライバ1512、デバイスクラスドライバ1513、物理バスドライバ1515が介在する。しかし、利用者が、デバイスA151をPC−A110より利用する場合、PC−D113側ではデバイス管理マネージャ123の一部であるフィルタドライバ1514がメモリ上の適切な位置にロードされ、物理バスドライバ1515及びデバイスクラスドライバ1513の間に配置される。
PC−D113が動作している間、デバイス管理マネージャ123がメモリ上にロードされて動作している場合は、デバイス管理マネージャ123が、デバイス種別や物理バスを適切に監視する。
一般にPC−D113のアプリケーション1511からデバイスA151を使用する場合、デバイス管理マネージャ123は、利用者の意図に応じて適切なデバイスクラスドライバ1513と物理バスドライバ1515との通信がフィルタドライバ1514を介して行われるように適切にデバイスクラスドライバ1513と物理バスドライバ1515とフィルタドライバ1514とを動作させる。
しかし、ここでの前提のようにPC−A110からデバイスA151を利用する場合は、フィルタドライバ151は、物理バスドライバ1515とデバイスクラスドライバ1513との間の直接の通信を禁止する。すなわち、通信プログラム1510と物理バスドライバ1515との間のリクエスト及びレスポンスを有効とする。なお、デバイスA151がPC−D113に接続された一連のデバイスドライバのメモリ上へのロード時にフィルタドライバ1514をロードし、デバイスクラスドライバ1513及び物理バスドライバの通信をすべてフィルタドライバ1514を介して行う。ただし、利用者の指示があったときに手動で行うよう構成してもよいし、PC−A110上のアプリケーション1501から指示があった際に行うよう構成してもよい。
なお、フィルタドライバ1514が通信するデバイスクラスドライバ1513及び物理バスドライバ1515は、それぞれ利用しようとするデバイスの種別および/またはデバイスが接続する物理バスが異なることにより異なる。このため、デバイスクラスドライバ1513及び物理バスドライバ1515がメモリ上にロードされるごとに適切に変更される。
一方、PC−A110内では、仮想デバイスマネージャ120が動作している。仮想デバイスマネージャ120は、GUIアプリケーション1507を介してデバイスA151を利用する指示を受け付けると、仮想デバイスマネージャ120は、すでに説明したようにPC−A110においてデバイスA151を利用可能か調査し、利用可能であれば、PC−A110からデバイスA151が利用可能となるように処理を進める。
PC−D113にデバイスA151が接続され、PC−A110からデバイスA151を利用可能な条件が整うと、すでに通信路が構築されている通信プログラム1508及び通信プログラム1510を介してデバイスA151の情報が擬似バスドライバ1504に送信される。メモリにロードされた擬似バスドライバ1504は内部に起動用物理デバイスオブジェクト1505及びエニュメレータ1506の2つのプログラムを生成し動作させる。
エニュメレータ1506は、通信プログラム1508と通信し、デバイスA151に対応したデバイスドライバの利用準備を行うため図示しないOSに対してメモリ上に起動用物理デバイスオブジェクト1505のロードを行うよう指示する。そしてOSは、指示に従ってロードする。
PC−A110上の利用者が利用するアプリケーション1501からデバイスA151への通信が行われる場合、データは、上位ドライバ1502、デバイスクラスドライバ1503、起動用物理デバイスオブジェクト1505、エニュメレータ1506、通信プログラム1508、通信プログラム1510、フィルタドライバ1514、物理バスドライバ1515を経てデバイスA151に送信される。また、送信データに対する返答や割込みは逆順で送信される。
すなわち、デバイスクラスドライバ1503から発行されたデバイスA151に対するリクエストは、デバイスA151に対応した起動用物理デバイスオブジェクト1505からエニュメレータ1506に送信され、通信プログラム1508を経て、PC−D113に送信される。送信されたリクエストに対するレスポンスは、逆順にPC−D113から、通信プログラム1508、エニュメレータ1506、起動用物理デバイスオブジェクト1505を経てデバイスクラスドライバ1503に送信される。送受信の間、デバイスA151に対するリクエストやレスポンスは、他のデバイスに対するリクエストやレスポンスと混同しないように通信プログラム1510および通信プログラム1508によってIDやリクエスト番号などの制御データが付加される。最終的にデバイスA151にリクエストが送信される段階もしくはデバイスクラスドライバ1503にレスポンスが戻される段階で付加した制御データは取り除かれる。
前述したように、デバイスクラスドライバ1503より発行されたデバイスに対するリクエストは、擬似バスドライバ1504から通信プログラム1508をへて通信プログラム1510に送信される。また、送信されたリクエストに対するレスポンスは、逆順に通信プログラム1510から、通信プログラム1508、擬似バスドライバ1504を経てデバイスクラスドライバ1503に送信される。途中、デバイスに対するリクエストやレスポンスは、他のデバイスに対するリクエストやレスポンスと混同しないように通信プログラム1510及び通信プログラム1508でIDやリクエスト番号などの制御データが付加される。
このとき、通信プログラム1508は、通信の内容を監視し、一部の通信に対しては、ネットワーク103を介して通信プログラム1510にリクエストを送信することなく通信プログラム1508自身で擬似バスドライバ1504にレスポンスをする、送信を遅らせる、などの対応を行うことにより通信プログラム1508と通信プログラム1510との間の通信量を削減する機能を持つ。
具体的には、通信プログラム1508は、周期的に行われる生存確認等の予め返答が定まっているリクエスト等に対する返答を予め保持し、これらのリクエストを擬似バスドライバ1504から受信した場合、当該登録されている返答を自ら擬似バスドライバ1504に返信する。このような通信量を削減する機能の設定は、GUIアプリケーション1507またはGUIアプリケーション1509を介して利用者から指示を受け付けて行われる。あるいは、認証管理サーバ101を介してシステムの管理者からの指示を受け付ける。
PC−A110及びPC−D113が省電力のために休止またはサスペンド状態となる設定が成されている場合、デバイスA151がPC−A110から利用可能になっている状態で、休止またはサスペンド状態になることがある。このような場合、OSは、休止やサスペンド状態になることを示す通知を通信プログラム1508、通信プログラム1510、フィルタドライバ1514、擬似バスドライバ1504に送信する。擬似バスドライバ1504、フィルタドライバ1514は、休止またはサスペンド状態にならないようそれぞれPC−A110とPC−D113との画面上に警告を表示するようそれぞれGUIアプリケーション1507と1509に指示を行い、OSに対してエラーを送信する。エラーを受信したOSは、休止またはサスペンド状態になることを抑止する。
利用者の設定によっては、デバイスA151がPC−A110から利用可能になっている状態で、PC−A110及びPC−D113が休止またはサスペンド状態になる場合、休止またはサスペンド状態になることを示す通知をOSから受信した通信プログラム1508、通信プログラム1510、フィルタドライバ1514、擬似バスドライバ1504は、PC−A110およびPC−D113の画面上に警告を表示するようGUIアプリケーション1507と1509に指示を行うと共に、擬似バスドライバ上のすべての起動用物理デバイスオブジェクト1505を削除し、通信プログラム1508、1510、フィルタドライバ1514、擬似バスドライバ1504相互間の通信を終了するよう処理を行う。なお、ここで終了した通信は、PC−A110もしくはPC−D113が休止もしくはサスペンド状態から復帰した際に、通常の再開手順で通信プログラム1508、1510、フィルタドライバ1514、擬似バスドライバ1504によって再度開始される。
次に、PC−A110からデバイスA151を利用する場合の、データ形式の変換について説明する。
PC−D113上のアプリケーション1511から発生するデバイスA151へのリクエストは、上述のように上位ドライバ1512、デバイスクラスドライバ1513、フィルタドライバ1514、物理バスドライバ1515と、各種のプログラム間を介してデバイスA151に送信される。
ところが、PC−A110上で動作するアプリケーション1501においてデバイスA151へのリクエストを送受信する際、各プログラム間でやり取りするリクエストの中にはPC−A110に固有の情報が含まれている。このPC−A110固有の情報とは、例えば、DMA(ダイレクトメモリアクセス)転送を行うメモリやバッファのアドレス情報等である。
このようなPC−A110固有の情報を含むリクエストをPC−D113上で動作する通信プログラム1510、フィルタドライバ1514、物理バスドライバ151などのプログラムにそのまま送信すると、PC−D113上の各プログラムが参照不能なアドレスへアクセスし、デバイス管理システムとしての正常な動作を行うことが出来ない。
本実施形態のデバイス管理システムにおいては、上記問題を避けるため、各プログラム間で、リクエストや返答などの情報を送受信する際に、データ形式の変換を行い、リクエストや返答に含まれる情報が動作するPCによる依存しないよう管理する。以下に、処理の詳細を説明する。
図23は、擬似バスドライバ1504と通信プログラム1508との間で送受信されるデータ、通信プログラム1508と通信プログラム1510との間で送受信されるデータ、通信プログラム1510とフィルタドライバ1514との間で送受信されるデータのデータ構造と、データ構造の変換処理について説明するための図である。
擬似バスドライバ1504が扱うリクエストおよびレスポンスは、構造体2351に示す構造体の形式を有する。構造体2351は、データA2301、データB2302、…、データN2303及び、ポインタA2304、ポインタB2305を備える。ポインタA2304及びポインタB2305は、PC−A110上のメモリ2352に格納される情報のメモリアドレス(論理アドレス)を示す。格納される情報はそれぞれ、データX2306、データY2307である。なお、メモリ2352は、構造体2351がロードされているメモリ領域、もしくは、デバイスの処理用に特別に設けられたメモリ領域、もしくは、構造体2351がロードされているメモリとは性質の異なるデバイスバスを制御するコントローラドライバがCPUを介さずダイレクトにアクセス可能である等デバイスの処理用に特別に設けられたメモリ領域である。
一方、擬似バスドライバ1504と通信プログラム1508との間、通信プログラム1508と通信プログラム1510との間、通信プログラム1510とフィルタドライバ1514との間で送受信されるデータは、構造体2353に示す構造体形式を有する。構造体2353は、データA2308、データB2309、…、データN2310、データX2311、データY2312を備える。すなわち、PCを超えて送受信される構造体には、ポインタの代わりに、データそのものが格納される。擬似バスドライバ1504、通信プログラム1508、通信プログラム1510、フィルタドライバ1514は、構造体2353の形式のデータを送受信することにより、お互いが要求するリクエストを送受信し、リクエストに対する返答を送受信する。
擬似バスドライバ1504は、構造体2351に格納されたリクエストをデバイスクラスドライバ1503から受け取る。この構造体2351に格納されたリクエストは、デバイスクラスドライバ1503の上位のドライバである上位ドライバ1502もしくはアプリケーション1501から与えられる命令によりデバイスクラスドライバ1503が生成するものである。
擬似バスドライバ1504は、構造体2351に格納されたリクエストを示すデータとメモリ2352に格納されたデータとを構造体2353の形式に変換し、変換した構造体2353の形式を有するデータを通信プログラム1508に送信する。また、擬似バスドライバ1504は、構造体2353の形式を有するデータを通信プログラム1508から受信し、構造体2351の形式に変換し、デバイスクラスドライバ1503および上位ドライバ1502を介してアプリケーション1501に送信する。このとき、例えばデータX2306、データY2307といったメモリ2352に格納すべきデータは、メモリ2352上に展開する。メモリ2352上に展開されたデータは、他のドライバやアプリケーション、OS1701に利用される。
PC−D113側では、フィルタドライバ1514が扱うリクエストおよびレスポンスは、構造体2354に示すような構造体の形式を有する。
構造体2354は、データA2313、データB2314、…、データN2315及び、ポインタC2316、ポインタD2317を格納する。ポインタC2316及びポインタD2317は、PC−D113上のメモリ2355に格納された情報のメモリアドレス(論理アドレス)を示し、格納された情報はそれぞれ、データX2318、データY2319である。メモリ2355は、構造体2354がロードされているメモリかもしくは構造体2354がロードされているメモリとは性質の異なる、デバイスバスを制御するコントローラドライバがCPUを介さずダイレクトにアクセス可能である等デバイスの処理用に特別に設けられたメモリ領域である。
フィルタドライバ1514は、通信プログラム1510から送信された構造体2353に格納されたリクエストを構造体2354の形式に変換し、フィルタドライバ1514内に保持する。このとき、例えばデータX2311、データY2312がメモリ2355に格納すべきデータである場合は、メモリ2355上に展開する。メモリ2355に展開されたデータは他のデバイスドライバやOS1702に利用される。フィルタドライバ1514は、データX2318、データY2319をメモリ2355上に展開すべきか否かを、予め決められたポリシーに従って判断する。このポリシーは利用者により、設定および変更される。
構造体2351、構造体2353、構造体2354、メモリ2352、および、メモリ2355に格納されるデータは、リクエストの長さ、番号などのヘッダ情報、送信するデータ本体、送信すべきデバイスの番号などの情報、送信すべきデバイスの内部のインタフェースの種別や番号、送信するリクエストの性質や種類、実行中のステータス情報等の情報である。
擬似バスドライバ1504およびフィルタドライバ1514は、データ内に記録されているメモリアドレス情報とメモリアドレスが示すデータとが擬似バスドライバ1504とフィルタドライバ1514との間で正しく送受信されるよう、上述のように、それぞれ構造体2351と構造体2353との間、構造体2353と構造体2354との間でデータ構造を変換する。本変換を行うことにより、擬似バスドライバ1504およびフィルタドライバ1514との間で送受信するデータ内に存在するメモリアドレス情報が適切ではない機器上で参照されてエラーが発生することを避けることができる。
ここで、改めて、擬似バスドライバ1504に送信されたリクエストに含まれる要求が、擬似バスドライバ1504からデバイスA151に,どのように送信され、リクエストに対するレスポンスが,どのように擬似バスドライバ1504に返信されるかを説明する。
擬似バスドライバ1504に送信されたリクエストは、前述のように,PC−D113内のメモリを参照するポインタを持たない構造体2353に変換される。変換された構造体2353が、ネットワーク103にて利用可能なプロトコルの仕様にのっとっていない場合は、通信プログラム1508がネットワーク103上を伝送可能な形式である第二のリクエストに変換する。
第二のリクエストとは、具体的には,構造体2353にネットワークプロトコルで必要なヘッダなどを付加したものである。例えば、ネットワーク103にてTCP/IPプロトコルが利用可能である場合、第二のリクエストは、ヘッダ長とパケット長、識別子、フラグ、生存期間、プロトコル番号、ヘッダチェックサム、始点IPアドレス、終点IPアドレス、オプションとデータである構造体2353を含む。
通信プログラム1508は,この第二のリクエストを、ネットワーク103を経由して通信プログラム1510に送信する。
通信プログラム1510は、受信した第二のリクエストから構造体2353を取り出し、フィルタドライバ1514に送信する。フィルタドライバ1514は、構造体2353を前述のように構造体2354へ変換する。
すなわち,フィルタドライバ1514は、メモリ2355にデータX2318、データY2319をコピーし、書き込み先のメモリアドレスをそれぞれ、ポインタC2316及びポインタD2317に格納する。ここで、フィルタドライバ1514は、データX2318及びデータY2319の容量がメモリ2355に記憶可能な容量以下であるか否かをチェックし、必要ならば容量の確保を行う。
構造体2354の形式に変換されたリクエストは、フィルタドライバ1514により、物理バスドライバ1515を介してデバイスA151に送信される。
デバイスA151は、図示しないバスコントローラ及びバスを介して物理バスドライバ1515から送信されるリクエストに対するレスポンスを物理バスドライバ1515に返信する。フィルタドライバ1514は、物理バスドライバ1515から受け取ったレスポンスがポインタC2316やポインタD2317を用いてデータX2318やデータY2319を参照していれば,前述のようにPC−D113内のメモリを参照するポインタを持たず,データX2318やデータY2319そのものを含む構造体2353に変換し,変換した構造体2353を通信プログラム1510に送信する。
通信プログラム1510は、送信された構造体2353の情報を用いて、ネットワーク103にて利用可能なプロトコルの仕様にのっとってネットワーク103上を伝送可能な形式の第二のレスポンスを作成する。第二のレスポンスとは、具体的には,構造体2353にネットワークプロトコルで必要なヘッダなどを付加したものである。例えば、ネットワーク103にてTCP/IPプロトコルが利用可能である場合、第二のレスポンスは、ヘッダ長とパケット長、識別子、フラグ、生存期間、プロトコル番号、ヘッダチェックサム、始点IPアドレス、終点IPアドレス、オプションとデータである構造体2353を含む。
通信プログラム1510は,この第二のレスポンスを、ネットワーク103を経由して通信プログラム1508に送信する。
通信プログラム1508は、送信された第二のレスポンスから構造体2353を取り出し、擬似バスドライバ1504に送信する。擬似バスドライバ1504は、構造体2353を前述のように構造体2351へ変換する。
すなわち,擬似バスドライバ1504は、メモリ2352にデータX2306、データY2307をコピー(又は移動)し、書き込み先のメモリアドレスをそれぞれ、ポインタA2304及びポインタB2305に格納する。ここで、擬似バスドライバ1504は、データX2306及びデータY2307のサイズがメモリ2352に記憶可能な領域の容量以下であるか否かをチェックし、必要ならば容量の確保を行う。
前述のように、フィルタドライバ1514による構造体2353から構造体2354への変換における、メモリ2355へのデータX2318、データY2319のコピーまたは移動と,書き込み先のメモリアドレスのポインタC2316及びポインタD2317への格納は、予め決められたポリシーに従い行われる。このポリシーは、PC−D113のメモリ上にあり、フィルタドライバ1514が受け取った第二のリクエストを、物理バスドライバ1515に送信する際に用いられる。
同様に,フィルタドライバ1514による構造体2354から,メモリ2355のデータX2318、データY2319を含んだ構造体2353への変換も、上記ポリシーに従い行われる。
ポリシーは、利用者によりデバイスドライバやその他のプログラムがPC−D113にインストールされるときや、デバイスを利用しているときなどに利用者により定められるか、認証管理サーバ101からPC−D113に通知され、PC−D113のメモリに格納される。
このポリシーは、デバイスA151のようなデバイスの種別(クラス)やデバイスの製造メーカ、デバイスの種類、デバイスの製造番号、デバイスの接続されているバスやコントローラの番号のいずれか1つ以上に従って、定められる。これら,デバイスの種別(クラス)やデバイスの製造メーカといった情報は、デバイスがPC−D113に接続された際にデバイスの中に保持されている識別子をPC−D113上のデバイスドライバ等のプログラムが読み出し、PC−D113上のメモリに保持する。
フィルタドライバ1514による構造体2354から構造体2353への変換における、ポインタC2316及びポインタD2317が指し示すメモリ2355上のデータX2318及びデータY2319の、構造体2353へのコピーまたは移動は、予め決められたポリシーに従い行われる。このポリシーは、PC−D113のメモリ上にある予め決められたもので、フィルタドライバ1514が,物理バスドライバ1515から受け取ったレスポンスを,通信プログラム1510,1508を介して擬似バスドライバ1504に送信する際に用いられる。
また、同様に擬似バスドライバ1504による構造体2353から構造体2351への変換における、メモリ2352へのデータX2306、データY2307のコピーまたは移動と,書き込み先のメモリアドレスのポインタA2304及びポインタB2305への格納も、予め決められたポリシーに従って行われる。このポリシーは、PC−A110のメモリ上にあり、擬似バスドライバ1504が,受け取ったレスポンスをデバイスクラスドライバ1503に送信する際に用いられる。
PC−A110に格納されるポリシーは、利用者によりデバイスドライバやその他のプログラムがPC−A110にインストールされるときや、デバイスを利用しているときなどに利用者により定められるか、認証管理サーバ101からPC−A110上に送信され,PC−A110上のメモリに格納される。
同様に、PC−D113に格納されるポリシーは、利用者によりデバイスドライバやその他のプログラムがPC−D113にインストールされるときや、デバイスを利用しているときなどに利用者により定められるか、認証管理サーバ101からPC−D113上に送信され,PC−A113上のメモリに格納される。
このポリシーは、デバイスA151のようなデバイスの種別(クラス)やデバイスの製造メーカ、デバイスの種類、デバイスの製造番号、デバイスの接続されているバスやコントローラの番号に従って、定められる。これら,デバイスの種別(クラス)やデバイスの製造メーカといったID情報は、デバイスがPC−D113に接続された際にデバイスの中に保持されている識別子をPC−D113上のデバイスドライバ等のプログラム(例えば物理バスドライバ1515)が読み出し、PC−D113のメモリ上に保持すると共に,例えばフィルタドライバ1514が、通信アプリケーション1510及び通信アプリケーション1508を介して、擬似バスドライバ1504に通知する。
デバイス管理マネージャ123は、PC−D113のメモリ上に保持されたID情報を読み出し、ID情報に適合したポリシーを特定し,利用する。また、デバイス管理マネージャ123は、読み出したID情報を,ネットワークを介して,PC−A110の仮想デバイスマネージャ120に送信する。仮想デバイスマネージャ120は、受信したID情報に適合したポリシーを特定し,利用する。
上記のように、仮想デバイスマネージャ120及びデバイス管理マネージャ123をそれぞれ動作させることにより、PC−D113上のアプリケーション及びPC−A110からデバイスA151を動作させることが可能となる。
フィルタドライバ1514は、デバイスA151がPC−D113のデバイスとして利用されるのか、PC−A110のデバイスとして利用されるのかに応じて、通信プログラム1510と物理バスドライバ1515間の通信と,デバイスクラスドライバ1513及び物理バスドライバ1515間の通信と,の一方を遮断し,排他制御を行う。一方が利用できるように切り替えることにより、利用者にPC−D113及びPC−A110からデバイスB152をあたかもPCとデバイスが接続されているように利用させる。フィルタドライバ1514での通信の切り替えは、自動的、通信プログラム1510,または,通信プログラム1510を介した通信プログラム1508からの指示で行われる。または,これらの通信プログラムに対する、GUIアプリケーション1507、GUIアプリケーション1509からの指示で行われる。
切り替えが発生した際には、アプリケーション1501及びアプリケーション1511、上位ドライバ1502及び上位ドライバ1512、デバイスクラスドライバ1503及びデバイスクラスドライバ1513が正常に動作するように、各デバイスドライバやアプリケーションの初期化がGUIアプリケーションまたは通信アプリケーションから行われる。例えば、デバイスA151が一度擬似的に活線挿抜されたような信号をOS、各アプリケーション、各デバイスドライバに送信するよう構成する。このような各デバイスドライバやアプリケーションの初期化は、通信プログラム1508、通信プログラム1510間の通信の不正が検知される、各デバイスドライバやアプリケーションの動作が不正であることが検知される、などの場合に常に実行される。
次に、図6に示したチャネルの生成(523及び534)が終了し、仮想デバイスマネージャ120がデバイスA151をコントロール可能になった後に、デバイスA151を利用する命令が仮想デバイスマネージャ120に与えられた場合の動作を説明する。図9は、本実施形態のデバイス管理システムにおけるデバイス利用時の、デバイス管理マネージャ123および仮想デバイスマネージャ120の動作を説明するフローである。ここでは、仮想デバイスマネージャ120側からトリガがかかった場合の処理について説明する。
図6に示したチャネルの生成(523及び534)が終了し、仮想デバイスマネージャ120がデバイスA151をコントロール可能になった後に、デバイスA151を利用する命令が仮想デバイスマネージャ120に与えられると(開始700)、仮想デバイスマネージャ120は、デバイスA151が動作するかどうかを確認する(701)。具体的には、仮想デバイスマネージャ120は、デバイス管理マネージャ123に所定のコマンドを送信し、デバイスA151のステータスの取得の可否、通信可能な状態であるか否かを問い合わせる。または、通信経路が確保されている状態であるかを確認する。そして、デバイス管理マネージャ123からの返信内容により判断する。
動作していない場合、デバイスA151が不正な状態にあることを認証管理サーバ101に通知し、認証サーバ101および仮想デバイスマネージャ120各々がログ191、170に記載する(702)。仮想デバイスマネージャ120は、ログ170への記載を終えると、与えられた命令に対する処理を不正終了する(716)。この際、仮想デバイスマネージャ120は、不正終了を示すエラーメッセージを利用者に通知してもよい。さらに、不正な状態にあることの通知を受けた際、自動的にデバイスA151との通信の終了処理を行うよう構成してもよい。また、動作確認の試行は複数回行い、複数回行ったとしても不正な状態であるとの通知が続く場合、702に進むよう構成してもよい。
一方、ステップ701においてデバイスA151の動作が確認された場合、仮想デバイスマネージャ120は認証管理サーバ101およびデバイス管理マネージャ123に必要に応じて生存確認の為の通知を行う(703)。本処理により認証管理サーバ101およびデバイス管理マネージャ123はデバイスA151とのチャネルが確立していることの確認が可能になる。
次に、仮想デバイスマネージャ120は、デバイスA151を利用するトリガとなる指示(例えばPC−A110から)を受けたか否かを判別する(704)。トリガとなる指示がないと判別された場合、ステップ701に戻る。
一方、トリガとなる指示があったと判別された場合、仮想デバイスマネージャ120において、デバイスインタフェースプロトコルにのっとったトランザクションを生成する(705)。そして、生成されたトランザクションはネットワークプロトコルに規定されたプロトコルに変換されてデバイス管理マネージャ123に送信される(706)。
次に、仮想デバイスマネージャ120は、デバイス管理マネージャ123にトランザクション(データ)が正しく到達しているか、正しく到達していない場合その回数が予め指定した回数を超えていないかを判断する。
具体的には、まず、仮想デバイスマネージャ120は、デバイス管理マネージャ123にデータが正しく到達していない回数が指定回数に達しているか否かを判別する(707)。
指定回数に達している場合、仮想デバイスマネージャ120は、通信が不正な状態にあると判断し、これを認証管理サーバ101に通知するとともに、ログ170に記録する。通信が不正な状態にあるとの情報は、認証管理サーバ101のログ191でも記録するよう構成してもよい。仮想デバイスマネージャ120は、ログ170への記載が終了した後、不正終了する(709)。仮想デバイスマネージャ120は、エラーを利用者に通知してもよいし、自動的にデバイスA151との通信の終了処理に入っても良い。
一方、ステップ707において回数が指定回数に達していない場合、仮想デバイスマネージャ120は、デバイス管理マネージャ123に正しくデータが届いているか否かのチェックを行う(710)。具体的には、送信したデータに対するレスポンスにより、不正と判断された場合、あるいは、所定の時刻までにレスポンスがない場合、正しく到達していないと判断する。そして、正しく到達していないと判断された場合、正しく到達していない回数を1インクリメントし、ステップ707に戻る。
ステップ710において正しくデータが届いている場合、仮想デバイスマネージャ120は、送信してないトランザクションがあるか否かを確認する(711)。そして、未送信のトランザクションがある場合、ステップ706に戻り、処理を繰り返す。
未送信のトランザクションがない場合、仮想デバイスマネージャ120は、受信すべきトランザクションがあるか否かのチェックを行う(712)。これは、両者間の通信路を設定した際に予め定められたデータ量分のデータの送信が終わったか否かにより判断する。
受信すべきトランザクションがある場合、仮想デバイスマネージャ120は、受信したデータをデバイスインタフェースプロトコルに変換する(713)。次に抽出したデータをデバイスドライバに送信し(714)、ステップ712へ戻る。
一方、ステップ712において受信すべきトランザクションがない場合、仮想デバイスマネージャ120は、処理を終了する(715)。
なお、上記処理において、処理が不正終了した場合(ステップ716、709)、認証管理サーバ101、デバイス管理マネージャ123および仮想デバイスマネージャ120は、処理が不正終了した時点で、適切に利用できるデバイスを再確認し、認証管理サーバ101内のデバイス情報管理テーブル200を更新する。すなわち、仮想デバイスドライバ120は、デバイスが再確認できれば、再び正常な通信を行い、チャネルの生成が可能であれば生成し、デバイス情報テーブル200のステータスを「占有中」、「通信中」、「利用中」とする。
次に、図6に示したチャネルの生成(523及び534)が終了し、デバイス管理マネージャ123がデバイスA151をコントロール可能になった後に、デバイスA151がデバイス管理マネージャ123に対し、情報を送信する場合の動作を説明する。図10は、本実施形態のデバイス管理システムにおけるデバイス利用時のデバイス管理マネージャ123および仮想デバイスマネージャ120の動作を説明するフローである。ここでは、デバイスA151側からトリガがかかった場合の処理について説明する。
図6に示したチャネルの生成(523及び534)が終了し、デバイス管理マネージャ123がデバイスA151をコントロール可能になった後に、デバイスA151がデバイス管理マネージャ123へ情報を送信すると(開始800)、デバイス管理マネージャ123は、デバイスA151が動作するかどうかを確認する(801)。動作確認は、図9の処理と同様である。
動作していない場合、デバイスA151が不正な状態にあることを認証管理サーバ101に通知し、認証サーバ101およびデバイス管理マネージャ123各々がログ191、173に記載する(802)。デバイス管理マネージャ123は、ログ173への記載を終えると、不正終了する(816)。この際、デバイス管理マネージャ123は、不正終了を示すエラーメッセージを利用者に通知してもよい。さらに、不正な状態にあることの通知を受けた際、自動的にデバイスA151との通信の終了処理を行うように構成してもよい。また、動作確認の試行は複数回行い、複数回行ったとしても不正な状態であるとの通知が続く場合、802に進むよう構成してもよい。
一方、ステップ801においてデバイスA151の動作が確認された場合、デバイス管理マネージャ123は、認証管理サーバ101及び仮想デバイスマネージャ120に必要に応じて生存確認の為の通知を行う(803)。本処理により認証管理サーバ101及び仮想デバイスマネージャ120はデバイスA151とのチャネルが確立していることの確認が可能になる。
次に、デバイス管理マネージャ123は、デバイスA151を利用するトリガとなる指示を(例えばPC−A110から)受けたか否かを判別する(804)。トリガとなる指示がないと判別された場合、ステップ801に戻る。
一方、トリガとなる指示があったと判別された場合、デバイス管理マネージャ123において、デバイスインタフェースプロトコルにのっとったトランザクションを生成する(805)。そして、生成されたトランザクションはネットワークプロトコルで定義されたパケットに変換されて仮想デバイスマネージャ120に送信される(806)。
次に、デバイス管理マネージャ123は、仮想デバイスマネージャ120に正しくトランザクション(データ)が到達しているか、正しく到達していない場合、その回数が予め指定した回数を超えていないかを判断する。
具体的には、まず、デバイス管理マネージャ123は、仮想デバイスマネージャ120にデータが正しく到達していない回数が指定回数に達しているか否かを判別する(807)。
指定回数に達している場合、デバイス管理マネージャ123は、通信が不正な状態にあると判断し、これを認証管理サーバに通知するとともに、ログ173に記録する。通信が不正な状態にあるとの情報は、認証管理サーバ101のログ191でも記録するよう構成してもよい。デバイス管理マネージャ123は、ログ173への記載が終了した後、不正終了する(809)。デバイス管理マネージャ123は、エラーを利用者に通知してもよいし、自動的にデバイスA151との通信の終了処理に入っても良い。
一方、ステップ807において回数が指定回数に達しない場合、デバイス管理マネージャ123は、仮想デバイスマネージャ120に正しくデータが届いているか否かのチェックを行う(810)。ここで、正しく到達していないと判断された場合、正しく到達していない回数を1インクリメントし、ステップ807に戻る。
ステップ810において正しくデータが届いている場合、デバイス管理マネージャ123は、送信してないトランザクションが残っているか否かのチェックを行う(811)。そして、未送信のトランザクションが残っている場合、ステップ806に戻り、処理を繰り返す。
未送信のトランザクションが残っていない場合、デバイス管理マネージャ123は、受信すべきトランザクションがあるか否かのチェックを行う(812)。
受信すべきトランザクションがある場合、デバイス管理マネージャ123は、受信したデータをデバイスインタフェースプロトコルに変換する(813)。そして、抽出したデータをデバイスドライバに送信し(814)、ステップ812へ戻る。
一方、ステップ812において受信すべきトランザクションがない場合、デバイス管理マネージャ123は、処理を終了する(815)。
なお、上記処理において、処理が不正終了した場合(ステップ816、809)、認証管理サーバ101、デバイス管理マネージャ123および仮想デバイスマネージャ120は、処理が不正終了した時点で、適切に利用できるデバイスを再確認し、認証管理サーバ101内のデバイス情報管理テーブル200を更新する。すなわち、デバイス管理マネージャ120は、デバイスが再確認できれば、再び正常な通信を行い、チャネルの生成が可能であればチャネルを生成し、デバイス情報管理テーブル200のステータスを「占有中」、「通信中」、「利用中」とする。
以上の動作によって認証管理サーバ101及び仮想デバイスマネージャ120及びデバイス管理マネージャ123により蓄積されたログ191、170、173は、ネットワーク管理者により、認証管理サーバ101もしくはその他の管理機器にインストールされた管理アプリケーションによって表示される。
図11に管理アプリケーションにより表示されるログ管理画面の一例を示す。本図に示した管理ログは、認証管理サーバ101、仮想デバイスマネージャ120およびデバイス管理マネージャ123内に保存されたログ191、170、173を、認証管理サーバ101が収集し、自身のストレージ190もしくはメモリに蓄積したものを表示したものである。
この表示のためのアプリケーション(管理アプリケーション)は、認証管理サーバ101以外にあっても良い。その場合、認証管理サーバ101からの許諾を受けて表示が行われる。情報センタ102およびブレードサーバ106が複数存在する構成では、管理アプリケーションは、認証管理サーバ101以外の認証管理サーバとその管理するアプリケーションとからログを収集し、集めたログを合わせたものを表示しても良い。
デバイス管理画面1000は、管理アプリケーションが表示するデバイスの管理を行うための画面である。デバイス管理画面1000には、蓄積された各ログ191、170、173の、番号1001、時刻1002、デバイスID1003、デバイス名1004、アドレス(ソース)1005、ネットワークインタフェースID(ソース)1006、アプリケーションID1007、アドレス(ホスト)1008、ネットワークインタフェースID(ホスト)1009、アプリケーションID1010、ベンダID1011、製品ID1012、シリアル番号1013、デバイス名1014、利用ユーザID1015、情報1016、備考1017の各項目が表示される。
番号1001は、ログを管理するための番号であり、ログが蓄積される毎に自動的に付与される。時刻1002は、ログが記録された日時である。情報1016は、ログ170、173、191にログとして記録されたイベントの内容が詳細に表示される。
アドレス(ソース)1005、アドレス(ホスト)1008は、ソース及びホスト(ディスティネーション)のアドレスを示す。ネットワークインタフェースID(ソース)1006及びネットワークインタフェースID(ホスト)1009は、ソース及びホスト(ディスティネーション)のネットワークインタフェースIDを示す。備考1017には、情報1016にて表示しきれない情報、例えば、管理者に注意を促す情報、情報1016を補足する情報が表示される。
その他の項目は図2〜4を用いて説明したデバイス情報テーブル200、利用者情報データベース300、PC利用管理テーブル400の同名の項目と同じものである。
また、認証管理サーバ101は、デバイス管理画面1000に表示される各情報を検索する機能を持った管理アプリケーションを搭載している。デバイス管理画面1000に示す情報を管理アプリケーションが表示することにより、どの機器やデバイスがどのような状態であるのかを瞬時に把握することができ、システム全体の利便性が向上する。例えば、不正な認証が起こった場合の情報のみを検索して表示し、監視することにより、不正アクセスを発見し、その対策を講じることができる。また、適切にデバイスを利用できない場合の情報のみを検索して表示し、監視することにより、システム内で発生しているトラブルを早期発見し、対応することができる。さらに、管理アプリケーションによりログ全体を一覧することと比較して表示を見やすくすることにより、管理者のオペレーションミスを減らすことができる。これらにより、システム全体のセキュリティが向上するという効果が得られる。
また、認証管理サーバ101が収集したログ191、170、173は、収集時に認証管理サーバ101とは別のサーバにコピーされ、改ざん防止の措置が行われる。この改ざん防止措置の行われたログは、企業内で情報漏えい等の不正が起こった際に、情報がどこでどのように不正に処理されたり、持ち出されたかなどの検証に用いることが出来る。この際、改ざん防止措置の行われたログの変更権限を認証管理サーバ等の機器及びシステム管理者に与えないことが必要となる。
次に、図6に示したチャネルの生成(523及び534)が終了した後に、利用者によってPC−A110から利用可能な新たなデバイス(以後、デバイスA151aと呼ぶ。)がPC−D113に接続された際のプラグイン処理について説明する。図17は、本実施形態のデバイス管理システムにおける新たなデバイスA151aがPC−D113に接続された際の動作を説明するフローである。
新たなデバイスA151aがPC−D113に接続(プラグイン)されると、PC−D113上のOS1702がプラグインを検知し、フィルタドライバ1514にプラグイン通知を行う(1703)。フィルタドライバ1514、通信プログラム1510、通信プログラム1508は、それぞれ通信プログラム1510、通信プログラム1508、擬似バスドライバ1504にプラグイン通知を順に送信する(1704〜1706)。
ここで、仮想デバイスマネージャ120は、新しいデバイスA151aを利用者が利用可能であるか否かの判断を行い、利用可能である場合、擬似バスドライバ1504内に起動用物理デバイスオブジェクト1505を生成する(1707)。上述したように、起動用物理デバイスオブジェクト1505は仮想デバイスマネージャ120内に複数作成することが可能で、原則として個々のデバイスに対応して作成される。
擬似バスドライバ1504は、通信プログラム1508にイベント待ち要求を返信し(1708)、通信プログラム1508は、イベント待ち状態となる。
擬似バスドライバ1504は、PC−A110のOS1701に対し、デバイス接続の有効無効確認を要求する(1709)。OS1701は、デバイス接続の有効無効確認のため、擬似バスドライバ1504及びその他のバスドライバに対し、オブジェクトのポインタ要求を行う(1710)。擬似バスドライバ1504及びその他のバスドライバは、自身の管理するドライバに対応する起動用物理デバイスオブジェクト1505やエニュメレータ1506等のオブジェクトポインタをOS1701に送信する(1711)。次にOS1701は、存在確認の完了したデバイスA151aのデバイス名の要求を行う(1712)。これに応答して擬似バスドライバ1504及びその他のバスドライバは、自身の管理するデバイスA151aのデバイス名をOS1701に送信する(1713)。次にOS1701は、存在確認の完了したデバイスA151aのIDの要求を行う(1714)。これに応答して擬似バスドライバ1504及びその他のバスドライバは、自身の管理するデバイスA151aのデバイスIDやデバイスの製造元IDや製品IDなどのID情報をOS1701に送信する(1715)。以上の処理が正常に完了した際に、OS1701は、擬似バスドライバ1504にデバイスA151aの利用開始を許可する(1716)。また、ここで返信するデバイス、ID等のデスクリプタは、フィルタドライバ1514が、デバイスA151aから受け取った情報でありプラグイン通知(1704〜1706)により擬似バスドライバ1504に送信されている。
1710〜1715のデバイス情報の取得処理(プラグイン処理)が正常に行われない場合は、OS1701は、利用者に対し、デバイスA151aが正常に利用できない旨をグラフイカルユーザインターフェース(GUI)アプリケーション1501等を通じて利用者に示すとともに、PC−A110内や認証管理サーバ101のログに記録する。次に、擬似バスドライバ1504及び通信プログラム1508は、それぞれ通信プログラム1510及びフィルタドライバ1514にプラグイン完了通知を行う(1717、1718)。通信プログラム1510は、イベント待ち要求をフィルタドライバ1514に送信する(1719)。
以上の処理により、新しくPC−D113に接続されたデバイスがPC−A110より利用が可能となる。
次に、図6に示したチャネルの生成(523及び534)が終了した後に、PC−A110から利用可能であったデバイスA151が利用者によりPC−D113から切断もしくは利用不能状態とされた際のプラグアウト処理について説明する。図18は、本実施形態のデバイス管理システムにおいて、デバイスA151がPC−D113から切断もしくは利用不能状態(プラグアウト)にされた際の動作を説明するフローである。
デバイスA151がPC−D113からプラグアウトされると、PC−D113上のOS1702がプラグアウトを検知し、フィルタドライバ1514にプラグアウト通知を行う(1801)。フィルタドライバ1514及び通信プログラム1510及び通信プログラム1508は、それぞれ通信プログラム1510、通信プログラム1508、擬似バスドライバ1504にプラグアウト通知を順に送信する(1802〜1804)。
ここで、仮想デバイスマネージャ120は、デバイスA151を利用中のアプリケーション等がないかなど、デバイスA151のプラグアウトの可否の判断を行う。
プラグアウト可能である場合、擬似バスドライバ1504は、以下に述べる起動用物理デバイスオブジェクト1505を消滅させるための手続きを行う。
まず、擬似バスドライバ1504は、通信プログラム1508にイベント待ち要求を送信する(1805)と共に、OS1701にデバイス接続の無効確認を要求する(1806)。
OS1701は、デバイス接続の無効確認のため、擬似バスドライバ1504及びその他のバスドライバに対し、オブジェクトのポインタ要求を行う(1807)。擬似バスドライバ1504及びその他のバスドライバは、自身の管理するドライバに対応する起動用物理デバイスオブジェクト1505やエニュメレータ1506等のオブジェクトポインタをOS1701に送信する。ここで、擬似バスドライバ1504は、デバイスA151に対応するオブジェクトポインタが無効である旨を送信する(1808)。
以上の処理が正常に完了した際に、OS1701は、擬似バスドライバ1504にデバイスの終了を許可する(1809)。処理が正常に完了しない場合は、デバイスの終了が認められない。1806〜1808の手続きが正常に行われない場合は、擬似バスドライバ1504は、利用者に対し、デバイスA151が正常にプラグアウトできない旨を通信プログラム1508を介しGUIアプリケーション1507に表示するよう指示し、利用者に示すとともに、PC−A110内や認証管理サーバ101のログに記録する。
次に、擬似バスドライバ1504及び通信プログラム1508は、それぞれ通信プログラム1510及びフィルタドライバ1514にプラグアウト完了通知を行う(1811、1812)。この時点でデバイスA151用に生成した起動用物理デバイスオブジェクト1505は消滅する(1810)。通信プログラム1510は、イベント待ち要求をフィルタドライバ1514に送信し(1813)、以上の処理により、デバイスA151がPC−D113からプラグアウトされる。
なお、1804後のプラグアウトの可否の判断において、プラグアウト不可(利用中)と判断された場合、プラグアウト完了通知の替わりにプラグアウト不可通知が同様に擬似バスドライバ1504から通信プログラム1508、通信プログラム1510を介してフィルタドライバ1514に送信される。
図17及び図18を用いて説明した新しいデバイスのプラグイン及びプラグアウト時には、新規のフィルタドライバ1514のインストールやアンインストールは行われていない。このため、PC−D113が利用者に対してデバイスドライバのインストール権限を与えないシステムである場合、PC−D113のOSがシンクライアント用の限定的なものである場合などであっても、利用者は新しくプラグインされたデバイスをPC−A110から容易に利用することができるとともに、安全に取り外し(プラグアウト)することが出来る。
次に、以上のように説明したプラグインの処理中やプラグイン後にデバイスを利用している間に、デバイスドライバにおいて通信エラーなどが発生した場合や、利用者が、デバイスをプラグアウトした場合のシステムの動作を、図26を用いて説明する。
図26は、デバイス管理マネージャ123にて管理されている、デバイスA151の利用状態の状態遷移図である。デバイス管理マネージャ123は,デバイスA151の状態を以下の3状態のいずれかとして管理する。すなわち,
「PC−A110から制御可であり、PC−D113へはエラー応答を返し、PC−A110へ接続可能」である状態2601と、
「PC−A110では検知できない状態であり、PC−D113から制御可であり、PC−A110へ接続可能」である状態2602と、
「PC−A110では検知できない状態であり、PC−D113から制御可であり、PC−A110へ接続不可」である状態2603,である。
「PC−A110から制御可であり、PC−D113へはエラー応答を返し、PC−A110へ接続可能」である状態2601と、
「PC−A110では検知できない状態であり、PC−D113から制御可であり、PC−A110へ接続可能」である状態2602と、
「PC−A110では検知できない状態であり、PC−D113から制御可であり、PC−A110へ接続不可」である状態2603,である。
デバイスA151がPC−D113に接続された直後は、デバイスA151は、状態2602であるとデバイス管理マネージャ123内に記録される。この状態2602では、デバイスA151は、PC−D113上のアプリケーション等から利用が可能である。
この状態2602で、図17を用いて説明したプラグイン動作が完了し、プラグイン完了通知1718をデバイス管理マネージャ123が受信した後、デバイスA151は、状態2601に遷移(2611)したとデバイス管理マネージャ123は認識し,記録する。この状態2601では、デバイスA151は、PC−A110上のアプリケーション等から制御が可能な状態になっている。また、PC−D113上のアプリケーション等から送信されるデバイスA151へのリクエストは、フィルタドライバ1514からエラーを含むリクエストが返されるなどするため、デバイスA151へ到達せず,結果的に,PC−D113からは制御できない状態になっている。
状態2601から、図18を用いて説明したプラグアウト処理が行われると、デバイスA151の状態は、状態2602へ遷移(2612)し、遷移した状態は,デバイス管理マネージャ123が認識し,記録する。
デバイスA151の状態が状態2601であって、仮想デバイスマネージャ120内でエラーが検知されるか、利用者の指示により、図18を用いて説明したデバイスA151のプラグアウト処理が行われた場合、デバイスA151の状態は、状態2603へ遷移(2613)する。
状態2603は、プラグアウトされたデバイスA151を一旦PC−A110に再接続できない状態にするために設けている。この状態2603に遷移することにより、仮想デバイスマネージャ120内でデバイスA151に関するエラーが検知されて,または、デバイスA151が利用者の指示により,デバイスA151がプラグアウトされた場合に、デバイス管理マネージャ123がデバイスA151をプラグインし、再び同じエラーが起こるのを防ぐことが可能になる。
状態2603は、デバイスA151を物理的にデバイスバスから切り離した後、再度物理的にデバイスバスに接続することにより状態2602に遷移(2614)する。利用者は、一度デバイス管理マネージャ123にて状態2603であると記憶されているデバイスを再びPC−A120上のアプリケーション等から利用するためには、物理的にデバイスバスから切り離す必要がある。
次に、PC−D113またはPC−A110の電源が切断、もしくは休止状態もしくはサスペンド状態(省電力状態)への移行が起こった場合のシステムの動作について図24及び図25を用いて説明する。
図24は、PC−D113にて電源が切断されたか、もしくは休止状態もしくはサスペンド状態への移行が起こった場合のシーケンス図である。PC−D113のOSから電源の切断もしくは休止状態もしくはサスペンド状態への移行がデバイス管理マネージャ123に指示される(2401)と、デバイス管理マネージャ123は、認証管理サーバ101及び仮想デバイスマネージャ120に切断要求を送信する(2402,2403)。
切断要求2402を受信した認証管理サーバ101は、テーブルの更新(601)を行い、システム内で接続されているデバイスと例えばPC−A110やPC−D113のような機器との関係を示すテーブルの更新を行う。
切断要求2403を受信した仮想デバイスマネージャ120は、仮想デバイスマネージャ120内で処理している、PC−D113に接続されているデバイスに関連する処理中のリクエストを完了する(2407)。完了の方法は、デバイスの種別に依存するが、例えば、リクエストに対して,タイムアウトが発生したなどのエラー情報を含んだ返答を送信する。次に仮想デバイスマネージャ120は、PC−D113に接続されているデバイスに関連するデバイスドライバの無効化を行う(2408)。次に、仮想デバイスマネージャ120は、デバイス管理マネージャ123との間に構築した通信チャネルの破棄(セッションの切断)を行う(2409)。
通信チャネルの破棄(セッションの切断)(2409)と処理中リクエストの完了(2407)やドライバの無効化(2408)を行う順序は、デバイスドライバがデバイス管理マネージャ123との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先に処理中リクエストの完了(2407)やドライバの無効化(2408)の処理を行い、その後にタイムアウトが起きてしまっている通信チャネルの破棄(セッションの切断)を行うことが望ましい。 切断要求を送信したデバイス管理マネージャ123は、全てのデバイスのプラグアウト処理を行い(2404)、プラグアウトに成功したデバイスのデバイスドライバは、PC−D113のメモリ上からアンロードされる(2405)。次にデバイス管理マネージャ123は、仮想デバイスマネージャ120との間に構築した全ての通信チャネルの破棄(セッションの切断)を行う(2406)。
通信チャネルの破棄(セッションの切断)(2406)とデバイスのプラグアウト処理(2404)や再有効化(2405)を行う順序は、デバイスドライバやデバイスA151上で動作しているファームウェアが仮想デバイスマネージャ120との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先にデバイスのプラグアウト処理(2404)や再有効化(2405)の処理を行い、その後にタイムアウトが起きてしまっている通信チャネルの破棄(セッションの切断)(2406)を行うことが望ましい。
図25は、PC−A110にて電源の切断処理が開始されたか、もしくは休止状態もしくはサスペンド状態への移行が起こった場合のシーケンス図である。PC−A110のOSから電源の切断処理開始もしくは休止状態もしくはサスペンド状態への移行が仮想デバイスマネージャ120に指示される(2501)と、仮想デバイスマネージャ120は、認証管理サーバ101及びデバイス管理マネージャ123に切断要求を送信する(2502,2503)。
切断要求2502を受信した認証管理サーバ101は、テーブルの更新(601)を行い、システム内で接続されているデバイスと例えばPC−A110やPC−D113のような機器との関係を示すテーブルの更新を行う。
切断要求2503を受信したデバイス管理マネージャ123は、PC−A110に関連する全てのデバイスのプラグアウト処理を行い(2504)、プラグアウトに成功したデバイスのデバイスドライバは、再度有効化される(2505)。この再有効化処理2505の中で、デバイスA151には再起動用の信号が送信される。このため再有効化処理2505の後には、処理2210に示したデバイスクラスドライバ1513からのリクエストの遮断が解除され、デバイスA151は、PC−D113上のアプリケーションから利用可能となる。
次にデバイス管理マネージャ123は、仮想デバイスマネージャ120との間に構築した通信チャネルの破棄(セッションの切断)を行う(2406)。
通信チャネルの破棄(セッションの切断)(2406)とデバイスのプラグアウト処理(2504)や再有効化(2505)を行う順序は、デバイスドライバやデバイスA151上で動作しているファームウェアが仮想デバイスマネージャ120との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先にデバイスのプラグアウト処理(2504)や再有効化(2505)の処理を行い、後にタイムアウトが起きてしまっている通信チャネルの破棄(セッションの切断)(2406)を行うことが望ましい。
無効化したデバイスドライバを再度有効化する処理2505を行う理由を説明する。デバイスA151のような周辺機器は、電源投入後から、接続されているPC−D113のOSとデバイスドライバの指示により動作する。デバイスドライバがデバイスに送信するリクエストは、一般的にリクエストの順番が管理されている。よって、リクエストの遮断を解除する際、デバイスとデバイスドライバの無効化と再有効化を行うことにより、デバイスの状態を初期化し、新たにデバイスをPC−D113上のアプリケーションから利用可能となる。
切断要求を送信した仮想デバイスマネージャ120は、仮想デバイスマネージャ120内で処理している全てのデバイスに関連する処理中のリクエストを完了する(2507)。完了の方法は、デバイスの種別に依存するが、例えば、タイムアウトが発生したなどのエラー情報を含んだリクエストに対するレスポンスを送信する。次に仮想デバイスマネージャ120は、PC−D113に接続されているデバイスに関連するデバイスドライバの無効化を行う(2508)。次に、仮想デバイスマネージャ120は、デバイス管理マネージャ123との間に構築した全ての通信チャネルの破棄(セッションの切断)を行う(2409)。
通信チャネルの破棄(セッションの切断)(2409)と処理中リクエストの完了(2507)やドライバの無効化(2508)を行う順序は、デバイスドライバがデバイス管理マネージャ123との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先に処理中リクエストの完了(2507)やドライバの無効化(2508)の処理を行い、その後に通信チャネルの破棄(セッションの切断)(2409)を行うことが望ましい。
ここで、認証管理サーバ101への切断要求の送信を行う手順2402及び2502は必須ではなく、PC−D113に接続されたデバイスが図18を用いて説明した状態遷移の中で、どの状態になっているかを仮想デバイスマネージャ120及びデバイス管理マネージャ123が共有できていればよい。
次に、仮想デバイスマネージャ120もしくは、デバイス管理マネージャ123において、通信のタイムアウトが検出され、仮想デバイスマネージャ120もしくは、デバイス管理マネージャ123が構築した通信チャネルを破棄(セッションを切断)する場合のシステムの動作について図26、図27を用いて説明する。
図27は、PC−D113において、デバイス管理マネージャ123が,予め定められた時間,仮想デバイスマネージャ120との通信を確認できず、タイムアウトと判断した場合のシーケンス図である。
デバイス管理マネージャ123が、タイムアウトを検出する(2701)と、デバイス管理マネージャ123は、認証管理サーバ101にタイムアウトを検知したという検知結果を送信する(2702)。検知結果を受信した認証管理サーバ101は、テーブルの更新(610)を行い、システム内で接続されているデバイスと例えばPC−A110やPC−D113のような機器との関係を示すテーブルの更新を行う。
タイムアウトを検知したデバイス管理マネージャ123は、仮想デバイスマネージャ120に関連するPC−D113上のデバイスのプラグアウト処理を行い(2504)、プラグアウトに成功したデバイスのデバイスドライバ,すなわち,上位ドライバ1512,デバイスクラスドライバ1513,フィルタドライバ1514を、再度有効化する(2505)。
この再有効化処理2505の中で、フィルタドライバ1514は,デバイスA151に再起動用の信号を送信し,また,2210に示したデバイスクラスドライバ1513からのリクエストの遮断を解除する。これらの処理により、デバイスA151は、PC−D113上のアプリケーションから利用可能となる。
次にデバイス管理マネージャ123は、仮想デバイスマネージャ120との間に構築した通信チャネルの破棄(セッションの切断)を行う(2406)。
通信チャネルの破棄(セッションの切断)(2406)とデバイスのプラグアウト処理(2504)や再有効化(2505)を行う順序は、デバイスドライバやデバイスA151上で動作しているファームウェアが仮想デバイスマネージャ120との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先にデバイスのプラグアウト処理(2504)や再有効化(2505)の処理を行い、その後にタイムアウトが起きてしまっている通信チャネルの破棄(セッションの切断)(2406)を行うことが望ましい。
図28は、PC−A110において、仮想デバイスマネージャ120が,予め定められた時間,デバイス管理マネージャ123との通信を確認できず、タイムアウトと判断した場合のシーケンス図である。仮想デバイスマネージャ120が、タイムアウトを検出する(2801)と、仮想デバイスマネージャ120は、認証管理サーバ101にタイムアウトを検知したという検知結果を送信する(2802)。検知結果を受信した認証管理サーバ101は、テーブルの更新(610)を行い、システム内で接続されているデバイスと例えばPC−A110やPC−D113のような機器との関係を示すテーブルの更新を行う。
タイムアウトを検知した仮想デバイスマネージャ120は、PC−D113上のデバイス管理マネージャ123に関連するデバイスに対して行っている処理中のリクエストを処理する(2407)。処理の方法は、デバイスの種別に依存するが、例えば、タイムアウトが発生したなどのエラー情報を含んだ,リクエストに対する返答を送信する。 次に仮想デバイスマネージャ120は、PC−D113に接続されているデバイスに関連するデバイスドライバの無効化を行う(2408)。次に、仮想デバイスマネージャ120は、デバイス管理マネージャ123との間に構築した通信チャネルの破棄(セッションの切断)を行う(2409)。
通信チャネルの破棄(セッションの切断)(2409)と処理中リクエストの完了(2407)やドライバの無効化(2408)を行う順序は、デバイスドライバがデバイス管理マネージャ123との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先に処理中リクエストの完了(2407)やドライバの無効化(2408)の処理を行い、その後にタイムアウトが起きてしまっている通信チャネルの破棄(セッションの切断)(2409)を行うことが望ましい。
ここで、認証管理サーバ101への検知結果の送信を行う手順2702及び2802は必須ではない。PC−D113に接続されたデバイスが図18を用いて説明した状態遷移の中で、どの状態になっているかを仮想デバイスマネージャ120もしくはデバイス管理マネージャ123が検知していれば良い。
仮想デバイスマネージャ120とデバイス管理マネージャ123の通信が復旧した場合、PC−D113に接続されたデバイスの状態を仮想デバイスマネージャ120とデバイス管理マネージャ123の間で共有し、共有した結果は、認証管理サーバ101へ送信される。 次に、仮想デバイスマネージャ120が生成し表示させるデバイス管理画面の詳細について説明する。図12は、仮想デバイスマネージャ120のデバイス管理画面の一例である。
本図に示すように、デバイス管理画面900は、認証管理サーバ表示部901と、接続PCハブ表示部902、905、908、911と、デバイス表示部903、906、909、912と、接続切断指示部904、907、910、913とを備える。
仮想デバイスマネージャ120は、起動されると予め指定されている認証管理サーバ101に、利用可能なデバイス情報を取得するよう要求を送る。
認証管理サーバ101において、利用者の認証に成功した後、デバイス管理マネージャ123からデバイス管理情報が仮想デバイスマネージャ120に送付される。受け取ったデバイス管理情報に従って、仮想デバイスマネージャ120は、利用可能なデバイスの情報などを管理する。
図12において認証管理サーバ表示部901には、仮想デバイスマネージャ120が通信している認証管理サーバ101が表示される。図12に示す例では仮想デバイスマネージャ120が認証管理サーバ101と通信に成功している様子が表示されている。ここで、192.168.0.1と表示されているのは、認証管理サーバ101のアドレスである。
ステータス920には、認証管理サーバ101のステータスが表示される。ここでは、ステータスとして利用可能ユーザIDは何か、利用者名は何かなどが表示されている。図12の例ではユーザAが認証されている様子が表示されている。
接続PCハブ表示部902、905、908、911は、接続されているPC、ハブの情報が表示される。また、利用者が現在使用中のデバイスが色分けされ表示されている。
デバイス表示部903、906、909、912には、デバイスの名称やステータス、利用者IDなどの情報が表示され、利用者がどのデバイスを使用可能なのかといった情報が分かり易く表示される。
接続切断指示部904、907、910、913には、デバイスの利用や専有化、利用停止、予約など、利用者が指示を与えることの出来る選択肢を表示させる。仮想デバイスマネージャ120は、予約ボタンの押下を受け付けることにより、現在他者が利用中のデバイスの利用予約を行う。そして、デバイスが利用可能となった場合、認証管理サーバ101もしくはデバイス管理マネージャ123に利用可能となった旨の通知を行う。通知を受けたデバイス管理マネージャ123は、利用者に利用可能となった旨の通知を行う。図12の例では、利用者が利用できるデバイスはハッチングで示され、また利用者が行うことが可能な操作は太字のボタンで示され、操作しやすくなるように配慮されている。
以上、PC−D113を用いてブレードサーバ106内のPC−A110を利用するサーバクライアント方式について説明を行った。
すでに説明した例と同様にネットワーク103及びインターネット104に接続されたクライアント装置から、ブレードサーバ106内のいずれかのPCを利用し、また、デバイスA151〜デバイスZ155を使うことが可能である。
ここで、ハブ116は、PCとしての機能は持たないが、内部に管理マネージャ126およびストレージ176を持つ組み込み機器である。PC−E114のようにデバイスを接続していないPCを利用する場合も、PC−D113の例と同様に他のPC等に接続されているデバイスを使用することが可能である。また、ハブ116のように複数台のデバイスを接続していても同様である。
さらに、インターネット104及びファイヤウォール105を介したPC−Z117を利用してネットワーク103上のPCやデバイスを利用する場合も、基本的に同様である。ただし、この場合、PC−Z117は、インターネット104上の通信を暗号化する暗号化アプリケーション190を内部に持ち、暗号化して通信を行うことが望ましい。
以上説明したように、本実施形態のデバイス管理システムによれば、デバイス管理マネージャ123が稼動するPC等の情報機器に接続されたデバイスをサーバ上にインストールされた仮想デバイスマネージャ120がサーバに仮想的に接続しているように設定する。従って、利用者が手元で操作するPC、シンクライアントなどの手元の情報端末と利用者が手元の情報端末を利用する場所と隔たりのある場所に設置されたサーバとの間でデバイスを安全かつ簡便に共有することができ、利用者の利便性が向上する。また、デバイスを共有する手順の中で認証を行い、デバイスを利用者が利用できるかどうかをルール付けることにより、システム利用時のセキュリティの向上を図ることができる。
また、本実施形態によれば、クライアント側にデバイスを動作させる物理バスドライバとのデータの送受信相手を排他制御するフィルタドライバを設け、サーバ側には通信プログラムとの間で擬似的に物理バスドライバと同様の動きをする擬似バスドライバを設けたため、デバイスを接続するのみで、他の操作なしでサーバ側からクライアントに接続されたデバイスを使用することができる(プラグアンドプレイ)。
サーバとデバイスとが仮想的に接続されるため、操作したPC等の情報機器に残る機密情報を低減することができ、サーバクライアント方式の情報処理システムにおいて、利用者の情報機器利用時のセキュリティを向上させることができる。
また、本実施形態によれば、サーバ及びクライアント側に電源切断処理やサスペンドもしくは休止状態への移行が行われた際や、サーバとクライアントの間の通信が途絶えた際に、クライアント側でリクエストの遮断の解除やデバイスの無効化及び有効化を行い、クライアントに接続していながら,クライアントからの利用を禁止しサーバから利用可能としていたデバイスを,再度クライアントから利用可能とすることにより、利用者の利便性を向上させることができる。
<<第二の実施形態>>
次に、本発明を適用した第二の実施形態について説明する。本実施形態は、基本的に上述の第一の実施形態と同様の構成を有する。ただし、第一の実施形態では、通信プログラム1508と通信プログラム1510とがネットワーク103を介して直接通信していたが、本実施形態では、遠隔操作プログラムを介して通信を行う。遠隔操作プログラムとは、2台のPC上で動作する2つのプログラムがネットワークを介して通信を行い、一方のプログラムが動作するPCの画面上に他方のプログラムが動作するPCの画面の全部または一部を表示するものである。利用者は、遠隔操作プログラムが動作している間は一方のPCの画面上に他方のPCの画面を表示される。このとき、利用者が物理的に利用しているPCへのマウスやキーボード、マイク等を利用した入力操作は、すべて遠隔操作しているPCへ送信されるため、利用者は簡単に遠隔地からPCを遠隔操作することが出来る。
次に、本発明を適用した第二の実施形態について説明する。本実施形態は、基本的に上述の第一の実施形態と同様の構成を有する。ただし、第一の実施形態では、通信プログラム1508と通信プログラム1510とがネットワーク103を介して直接通信していたが、本実施形態では、遠隔操作プログラムを介して通信を行う。遠隔操作プログラムとは、2台のPC上で動作する2つのプログラムがネットワークを介して通信を行い、一方のプログラムが動作するPCの画面上に他方のプログラムが動作するPCの画面の全部または一部を表示するものである。利用者は、遠隔操作プログラムが動作している間は一方のPCの画面上に他方のPCの画面を表示される。このとき、利用者が物理的に利用しているPCへのマウスやキーボード、マイク等を利用した入力操作は、すべて遠隔操作しているPCへ送信されるため、利用者は簡単に遠隔地からPCを遠隔操作することが出来る。
以下に,第一の実施形態との相違点を説明する。その他の処理は,第一の実施形態と同様である。
図19は、本実施形態のデバイス管理システムにおける、第一の実施形態の図1に示すPC−A110とPC−D113との間でのデバイス共有時のデータ送受信制御に必要となるソフトウェアを説明するための図である。
第一の実施形態に示したデバイス管理システムでは、通信プログラム1508と通信プログラム1510とが直接ネットワーク103を介して通信している。一方、本実施形態では、通信プログラム1508は、PC−A110のメモリ上にロードされた遠隔操作プログラム1901と通信を行い、PC−D113の通信プログラム1510は、PC−D113のメモリ上にロードされた遠隔操作プログラム1902と通信を行う。そして、遠隔操作プログラム1901と遠隔操作プログラム1902とが互いに通信を行う。
遠隔操作プログラム1901及び遠隔操作プログラム1902は、利用者がPC−D113からPC−A110にログインする、PC−A110のメモリ上で動作するプログラムの処理結果をPC−D113の画面上に表示させる、等の機能を実現するプログラムである。
遠隔操作プログラム1901は、予め定められた認証を経て遠隔操作プログラム1902と接続を行っている。このため、仮想デバイスマネージャ120は、デバイス管理マネージャ123に認証要求を行う必要がない。従って、PC−D113の内部に認証管理サーバ101にアクセスするために必要な認証管理サーバ101のIPアドレス情報等を保持する、あるいは、利用者に認証管理サーバ101にアクセスするための情報の入力を強いる必要がない。デバイスA151が接続されているか否かといった情報、接続されてよいデバイスの種別といったポリシーは、認証管理サーバ101から仮想デバイスマネージャ120を介してデバイス管理システムに送信される。このため、本実施形態では、PC−D113側が、例えば、シンクライアントのように、単純な機能のみを有する情報処理装置であってもよい。
また、本実施形態においては、PC−D113のデバイス管理マネージャ123側から認証管理サーバ101にアクセスしないため、デバイス共有処理時の処理フローおよびデバイス共有終了処理の処理フローは、以下の通りである。
図20は、本実施形態のデバイス管理システムにおけるデバイス共有処理の処理フローである。ここでは、第一の実施形態の図6と同じ処理には同じ符号を付す。
本実施形態では、デバイス管理マネージャ123及び仮想デバイスマネージャ120は、遠隔操作プログラム1901及び遠隔操作プログラム1902を介して通信を行う。
本図に示すように、本実施形態のデバイス共有処理の処理フローは、基本的に第一の実施形態の図6に記載のものと同様である。しかし、本実施形態の処理フローでは第一の実施形態に示したデバイス共有処理の処理フローと異なり、図6の504、505、515〜523、591、592、529、530、531の処理が省略される。これは、上述したように、デバイス管理マネージャ123から認証サーバ101へのアクセスを行わないからである。
また、第一の実施形態の処理フローと異なり、チャネル生成(534)の後に、生成されたチャネルの情報が仮想デバイスマネージャ120から遠隔操作プログラム1901を介して認証管理サーバ101に送信される(チャネル生成情報の送信の処理;2001)。これは、デバイス管理マネージャ123は、遠隔操作プログラム1902経由で接続された仮想デバイスマネージャ120に対して、デバイス管理マネージャ123の管理下にあるすべてのデバイスの利用権限を付与することを意味する。
次に図21を用いて、本実施形態のデバイス管理システムにおけるデバイス共有終了処理の処理フローを説明する。ここでは、第一の実施形態の図7と同じ処理には同じ符号を付す。
本実施形態のデバイス共有終了処理時の処理フローは基本的に第一の実施形態の図7に示す処理と同様である。ただし、本実施形態の場合、認証管理サーバ101からデバイス解放情報送信(606)を行わない。その替わり、仮想デバイスマネージャ120が、デバイス利用終了要求元のデバイス管理マネージャ123に、指示されたデバイスの利用が終了したことを示す情報であるデバイス解放情報送信を行う(2101)。また、仮想デバイスマネージャ120との間に確立されていたチャネルを破棄し、チャネルの破棄に成功した場合、デバイス管理マネージャ123から認証管理サーバ101へチャネル破棄情報の送信(609)を行わない。その替わり、仮想デバイスマネージャ120がチャネル破棄後(608)、認証管理サーバ101にチャネルの破棄を終えたことを示す情報であるチャネル破棄情報を送信する(2102)。これは、上述したように、デバイス管理マネージャ123から認証サーバ101へのアクセスを行わないからである。
以上説明したように、図20及び図21にて示した処理フローにおいては、デバイス管理マネージャ123が認証管理サーバ101の例えばIPアドレスのようなアクセス先アドレスを示すデータを保持しなくても処理フローが成立する。
以上説明したように、本実施形態のデバイス管理システムによれば、デバイス管理マネージャ123が稼動するPC等の情報機器に接続されたデバイスをサーバ上にインストールされた仮想デバイスマネージャ120がサーバに仮想的に接続しているように設定する。従って、利用者が手元で操作するPC、シンクライアントなどの手元の情報端末と利用者が手元の情報端末を利用する場所と隔たりのある場所に設置されたサーバとの間でデバイスを安全かつ簡便に共有することができ、利用者の利便性が向上する。また、デバイスを共有する手順の中で認証を行い、デバイスを利用者が利用できるかどうかをルール付けることにより、システム利用時のセキュリティの向上を図ることができる。
また、本実施形態によれば、クライアント側にデバイスを動作させる物理バスドライバとのデータの送受信相手を排他制御するフィルタドライバを設け、サーバ側には通信プログラムとの間で擬似的に物理バスドライバと同様の動きをする擬似バスドライバを設けたため、デバイスを接続するのみで、他の操作なしでサーバ側からクライアントに接続されたデバイスを使用することができる(プラグアンドプレイ)。
サーバとデバイスとが仮想的に接続されるため、操作したPC等の情報機器に残る機密情報を低減することができ、サーバクライアント方式の情報処理システムにおいて、利用者の情報機器利用時のセキュリティを向上させることができる。
さらに、本実施形態のデバイス管理システムにおいては、遠隔操作プログラム1901と遠隔操作プログラム1902とが通信を開始していないとデバイス管理マネージャ123及び仮想デバイスマネージャ120が接続されない。このため、仮想デバイスマネージャ120は、デバイス管理マネージャ123に認証要求を行う必要がなく、第一の実施形態のデバイス管理システムと比較し、デバイス処理のフローを簡略化することが可能になり、不必要な通信コストが発生しない。また、管理認証サーバ101とデバイス管理マネージャ123とが直接通信を行わないため、ネットワーク構成を簡略化することが可能となる。
上記のように、第一及び第二の実施形態に示したデバイス管理システムは、仮想デバイスマネージャ120とデバイス管理マネージャ123と認証管理サーバ101とによりクライアント装置であるPC−D113等を介してネットワーク103に接続されたデバイスを管理することにより、システム内でのデバイスの共有を、安全かつ利用者に使い勝手良く実現することができる。
また、第一及び第二の実施形態によれば、他のクライアント装置に接続されているデバイスであっても、あたかもサーバ106に直接接続されたデバイスであるかのように使用することが可能となる。すなわち、デバイスが、他のクライアント装置に接続されている場合であっても、そのデバイスを使用するために、各クライアント装置には特別な構成が必要とならない。従って、デバイスを、仮想的にサーバに接続する場合も、直接サーバに接続する場合も、同じ構成をとることが可能となり、システム全体の製造コストを低減できる。
また、第一及び第二の実施形態によれば、認証管理サーバ101により、デバイスの許可、不許可を管理し、許可されないデバイスは共有するデバイス(仮想デバイス)として利用できないように設定することができる。このため、ネットワーク103上に接続されるデバイスの適切な管理を行うことが出来、サーバクライアントシステムにおいて、遠隔地にあるサーバとの間で、デバイスを共有する場合の安全性を高めることができる。
また、第一及び第二の実施形態においては、主なプログラムやデータをサーバ側に蓄積し、クライアント側は主にサーバに操作指示を与えるだけの構成を有するサーバクライアントシステムである。従って、操作側のクライアント装置内に残る機密情報を低減するといった特徴を残しつつ、クライアント利用時のセキュリティ及び利便性を向上させた情報処理システムを提供できる。
また、第一及び第二の実施形態では、デバイスがあたかもサーバに接続されているように振舞うため、ウィルスチェッカ等のセキュリティツールやデバイスを動作させるためのプログラムなど、デバイスを利用し、管理するプログラムはサーバ側のみにインストールすればよく、クライアント側には当該プログラムをインストール不要である。このため、システム全体のコストをさらに低減する効果がある。
なお、上記の第一及び第二の実施形態では、サーバやクライアントにあたる情報機器を共にPCとして説明を行ったが、一方及び両方がサーバ、Personal Digital Assistants(PDA)、ワークステーション、高機能複写機、現金自動支払機(ATM)、携帯電話、デジタルスチルカメラ、音楽再生(録音)装置、販売時点商品管理システム、街角端末、Intelligent Transport Systems(ITS)用送信機、券売機、決済端末、自動販売機、入退室管理装置、ゲーム機、公衆電話、注文取り用携帯端等であってもよい。これらの場合も同様の効果が得られる。
101:認証管理サーバ、102:情報センタ、103:ネットワーク、104:インターネット、105:ファイヤウォール、106:ブレードサーバ、110:PC−A、111:PC−B、112:PC−C、113:PC−D、114:PC−E、115:PC−F、116:ハブ、117:PC−Z、120:仮想デバイスマネージャ、121:仮想デバイスマネージャ、122:仮想デバイスマネージャ、123:デバイス管理マネージャ、124:デバイス管理マネージャ、125:デバイス管理マネージャ、126:デバイス管理マネージャ、127:デバイス管理マネージャ、151:デバイスA、152:デバイスB、153:デバイスC、154:デバイスD、155:デバイスZ、160:ストレージ、161:ストレージ、162:ストレージ、163:ストレージ、164:ストレージ、165:ストレージ、167:ストレージ、170:ログ、171:ログ、172:ログ、173:ログ、174:ログ、175:ログ、176:ログ、177:ログ、1501:アプリケーション、1502:上位ドライバ、1503:デバイスクラスドライバ、1504:擬似バスドライバ、1505:起動用物理デバイスオブジェクト、1506:エニュメレータ機能デバイスオブジェクト、1507:GUIアプリケーション、1508:通信プログラム、1509:GUIアプリケーション、1510:通信プログラム、1511:アプリケーション、1512:上位ドライバ、1513:デバイスクラスドライバ、1514:フィルタドライバ、1515:物理バスドライバ
Claims (3)
- サーバ装置と、一つ以上のデバイスが接続されたクライアント装置と、管理サーバ装置と、が、互いにネットワークで接続されたクライアントサーバシステムにおいて、
前記クライアント装置は、
当該クライアント装置の利用者の識別情報を前記サーバ装置に送信する機能と、
前記サーバ装置へ、接続されている前記デバイスの種別情報を送信する機能と、
前記サーバ装置から、接続された前記デバイスのいずれか一つ以上を対象とする命令を受信し、受信した前記命令に従い、対象となる前記デバイスを制御する機能と、
を備えるクライアント側ドライバ手段を備え、
前記サーバ装置は、
前記利用者の識別情報と、前記デバイスの種別情報と、を前記クライアント装置から受信し、
前記利用者の識別情報と、前記デバイスの種別情報と、を含む判定用情報を前記管理サーバ装置へ送信し、
前記管理サーバ装置から、前記クライアント装置に接続された前記デバイスの利用可否に係わる判定結果を受信し、
前記判定結果に従って、前記クライアント側ドライバ手段への、前記デバイスを対象とする命令の送信を制御する管理手段と、
前記管理手段の制御により、当該サーバ装置上のアプリケーション手段の指示による前記デバイスのいずれか一つ以上を対象とする命令を生成し、前記クライアント側ドライバ手段へ前記命令を送信するサーバ側ドライバ手段と、を備え、
前記管理サーバ装置は、
前記クライアント装置の利用者の識別情報と、前記デバイスのうち前記利用者が利用可能なデバイスと、を対応付ける情報を保持する手段と、
受信した前記判定用情報と、自装置が保持する前記対応付ける情報と、に基づき、前記デバイスを利用可能であるか判定し、前記判定結果を前記サーバ装置へ送信する手段と、を備える
ことを特徴とするクライアントサーバシステム。 - サーバ装置と、一つ以上のデバイスが接続されたクライアント装置と、管理サーバ装置と、が、互いにネットワークで接続されたクライアントサーバシステムにおいて、
前記クライアント装置は、
当該クライアント装置の利用者の識別情報を前記サーバ装置に送信する機能と、
前記サーバ装置へ、当該クライアント装置の識別情報と、接続されている前記デバイスの種別情報と、を送信する機能と、
前記サーバ装置から、接続された前記デバイスのいずれか一つ以上を対象とする命令を受信し、受信した前記命令に従い、対象となる前記デバイスを制御する機能と、
を備えるクライアント側ドライバ手段を備え、
前記サーバ装置は、
前記利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を前記クライアント装置から受信し、
前記利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を含む判定用情報を前記管理サーバ装置へ送信し、
前記管理サーバ装置から、前記クライアント装置に接続された前記デバイスの利用可否に係わる判定結果を受信し、
前記判定結果に従って、前記クライアント側ドライバ手段への、前記デバイスを対象とする命令の送信を制御する管理手段と、
前記管理手段の制御により、当該サーバ装置上のアプリケーション手段の指示による前記デバイスのいずれか一つ以上を対象とする命令を生成し、前記クライアント側ドライバ手段へ前記命令を送信するサーバ側ドライバ手段と、を備え、
前記管理サーバ装置は、
前記クライアント装置の利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスのうち、前記クライアント装置において前記利用者が利用可能なデバイスと、を対応付ける情報を保持する手段と、
受信した前記判定用情報と、自装置が保持する前記対応付ける情報と、に基づき、前記デバイスを利用可能であるか判定し、前記判定結果を前記サーバ装置へ送信する手段と、を備える
ことを特徴とするクライアントサーバシステム。 - サーバ装置と、一つ以上のデバイスが接続されたクライアント装置と、管理サーバ装置と、が、互いにネットワークで接続されたクライアントサーバシステムにおいて、
前記クライアント装置は、
当該クライアント装置の利用者の識別情報を前記サーバ装置に送信する機能と、
前記サーバ装置へ、当該クライアント装置の識別情報と、接続されている前記デバイスの種別情報と、を送信する機能と、
前記サーバ装置から、接続された前記デバイスのいずれか一つ以上を対象とする命令を受信し、受信した前記命令に従い、対象となる前記デバイスを制御する機能と、
を備えるクライアント側ドライバ手段を備え、
前記サーバ装置は、
前記利用者の識別情報を受信せず、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を前記クライアント装置から受信した場合に、前記利用者の識別情報を含まず、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を含む第一の判定用情報を前記管理サーバ装置へ送信し、
前記管理サーバ装置から、前記第一の判定用情報に基づく、前記クライアント装置に接続された前記デバイスの利用可否に係わる第一の判定結果を受信し、
前記第一の判定用情報を前記サーバ装置に送信した後に、前記利用者の識別情報を前記クライアント装置から受信した場合に、前記利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を含む第二の判定用情報を前記管理サーバ装置へ送信し、
前記管理サーバ装置から、前記第二の判定用情報に基づく、前記クライアント装置に接続された前記デバイスの利用可否に係わる第二の判定結果を受信し、
前記第一の判定結果または前記第二の判定結果に従って、前記クライアント側ドライバ手段への、前記デバイスを対象とする命令の送信を制御する管理手段と、
前記管理手段の制御により、当該サーバ装置上のアプリケーション手段の指示による前記デバイスのいずれか一つ以上を対象とする命令を生成し、前記クライアント側ドライバ手段へ前記命令を送信するサーバ側ドライバ手段と、を備え、
前記管理サーバ装置は、
前記クライアント装置の、未定義の利用者を含む利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスのうち、前記クライアント装置において前記利用者が利用可能なデバイスと、を対応付ける情報を保持する手段と、
受信した前記第一の判定用情報または前記第二の判定用情報と、自装置が保持する前記対応付ける情報と、に基づき、前記デバイスを利用可能であるか判定し、前記第一の判定結果または第二の判定結果を前記サーバ装置へ送信する手段と、を備える
ことを特徴とするクライアントサーバシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010264485A JP4720959B2 (ja) | 2006-05-24 | 2010-11-29 | デバイス管理システム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006143586 | 2006-05-24 | ||
JP2006143586 | 2006-05-24 | ||
JP2010264485A JP4720959B2 (ja) | 2006-05-24 | 2010-11-29 | デバイス管理システム |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007196886A Division JP2008004110A (ja) | 2006-05-24 | 2007-07-30 | デバイス管理システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011065679A JP2011065679A (ja) | 2011-03-31 |
JP4720959B2 true JP4720959B2 (ja) | 2011-07-13 |
Family
ID=43951773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010264485A Expired - Fee Related JP4720959B2 (ja) | 2006-05-24 | 2010-11-29 | デバイス管理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4720959B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141318B2 (en) | 2013-07-25 | 2015-09-22 | Fuji Xerox Co., Ltd | Information processing system, information processor, non-transitory computer readable medium, and information processing method for establishing a connection between a terminal and an image processor |
US9286010B2 (en) | 2013-07-25 | 2016-03-15 | Fuji Xerox Co., Ltd | Information processing system, information processor, non-transitory computer readable medium, and information processing method |
US9563443B2 (en) | 2014-08-22 | 2017-02-07 | Renesas Electronics Corporation | Information processing device, peripheral device control method, and non-transitory computer readable medium storing filter driver for controlling a power state of a peripheral device |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201437803A (zh) * | 2013-03-21 | 2014-10-01 | Hon Hai Prec Ind Co Ltd | 計算設備硬體功能擴充系統及方法 |
JP6373245B2 (ja) * | 2015-12-10 | 2018-08-15 | 日本電信電話株式会社 | 情報処理装置、接続デバイス識別方法およびプログラム |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7912987B2 (en) * | 2005-01-14 | 2011-03-22 | Microsoft Corporation | USB devices in application server environments |
-
2010
- 2010-11-29 JP JP2010264485A patent/JP4720959B2/ja not_active Expired - Fee Related
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9141318B2 (en) | 2013-07-25 | 2015-09-22 | Fuji Xerox Co., Ltd | Information processing system, information processor, non-transitory computer readable medium, and information processing method for establishing a connection between a terminal and an image processor |
US9286010B2 (en) | 2013-07-25 | 2016-03-15 | Fuji Xerox Co., Ltd | Information processing system, information processor, non-transitory computer readable medium, and information processing method |
US9483219B2 (en) | 2013-07-25 | 2016-11-01 | Fuji Xerox Co., Ltd. | Information processing system, information processor, non-transitory computer readable medium, and information processing method |
US9563443B2 (en) | 2014-08-22 | 2017-02-07 | Renesas Electronics Corporation | Information processing device, peripheral device control method, and non-transitory computer readable medium storing filter driver for controlling a power state of a peripheral device |
Also Published As
Publication number | Publication date |
---|---|
JP2011065679A (ja) | 2011-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4127315B2 (ja) | デバイス管理システム | |
JP4741292B2 (ja) | デバイス管理システム | |
JP4168052B2 (ja) | 管理サーバ | |
JP2008015786A (ja) | アクセス制御システム及びアクセス制御サーバ | |
US20090178110A1 (en) | Communication Control Device, Communication Control System, Communication Control Method, and Communication Control Program | |
RU2526754C2 (ru) | Система и способ подбора функций управления мобильными устройствами | |
US9875354B1 (en) | Apparatus and method for enhancing security of data on a host computing device and a peripheral device | |
US20130125249A1 (en) | Remote Access Control Of Storage Devices | |
EP1569407B1 (en) | Computer system for allocating storage area to a computer based on a security level | |
US20080130899A1 (en) | Access authentication system, access authentication method, and program storing medium storing programs thereof | |
JP4720959B2 (ja) | デバイス管理システム | |
JP2003069573A (ja) | 情報記録媒体を用いたネットワーク機器の管理システム及び方法 | |
JPWO2009087702A1 (ja) | 仮想マシン実行プログラム、ユーザ認証プログラムおよび情報処理装置 | |
KR100788256B1 (ko) | 네트워크를 이용한 웹서버 위변조 모니터링 시스템 및모니터링 방법 | |
JP2008004110A (ja) | デバイス管理システム | |
JP2006279321A (ja) | 移動端末のためのセキュリティソフトウェア及びセキュリティ通信システム | |
US20060294249A1 (en) | Communication system, communication terminal comprising virtual network switch, and portable electronic device comprising organism recognition unit | |
KR100591554B1 (ko) | 네트워크 자원 관리 정책에 따른 통신 제어 방법 | |
JP2011108183A (ja) | 通信制御システム、中央装置、端末装置及びコンピュータプログラム | |
JP2003258795A (ja) | コンピュータ集合体運用方法及びその実施システム並びにその処理プログラム | |
WO2003034687A1 (en) | Method and system for securing computer networks using a dhcp server with firewall technology | |
JP2008040590A (ja) | コンピュータシステムおよびコンピュータへのアクセス制御方法 | |
JP5733387B2 (ja) | 管理装置、管理プログラムおよび管理方法 | |
JP3808663B2 (ja) | 計算機ネットワークシステムおよびそのアクセス制御方法 | |
JP2011221704A (ja) | ネットワークの自動管理システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110308 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110321 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140415 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140415 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |