(57)【要約】【課題】  サーバクライアント方式のシステムにおいて、利用者の利便性を損なわず、安全にデバイスを共有する機能を備えるデバイス管理システムを提供する。【解決手段】  クライアントへデバイスを接続し、接続されたデバイスにサーバからアクセスするにあたり、デバイスを接続するのみで、他の操作なしでサーバ側からクライアントに接続されたデバイスを使用可能とするために、クライアント側に、クライアントに接続されたデバイスとクライアントのアプリケーションとの間のデータの送受信と、前記デバイスとサーバとの間のデータの送受信と、を排他的に制御するフィルタ手段を設け、サーバ側に、クライアントとの通信手段とアプリケーションとの間で仮想的にデバイスドライバとして機能する擬似バスドライバ手段を設ける。【選択図】 図１
2011065679.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを実行するサーバと、前記サーバに前記アプリケーションプログラムの実行の指示を与え、当該サーバから実行結果を受け取るクライアントと、前記クライアントを認証する認証サーバとがネットワークで接続されたシステムにおいて、前記クライアントに接続されたデバイスを前記サーバから制御するデバイス管理システムであって、
前記クライアントは、当該クライアントに接続しているデバイスのデバイスドライバとの間でデータを送受信するとともに前記サーバとの間で当該データを送受信するデバイス管理手段を備え、
前記認証サーバは、当該デバイス管理システム内の各デバイスの利用権限を管理するデバイス情報保持利用権限管理手段を備え、
前記サーバは、当該サーバ内で動作するアプリケーションと前記デバイス管理手段との間で前記ネットワークを介して行われるデータの送受信を前記デバイス情報保持利用権限管理手段に保持されている前記利用権限に従って制御する仮想デバイス管理手段を備え、
前記デバイス管理手段は、前記デバイスドライバと当該クライアントのアプリケーションとのデータの送受信および前記デバイスドライバと前記サーバとのデータの送受信の間で排他制御を行うフィルタ手段を備える
ことを特徴とするデバイス管理システム。
【請求項２】
アプリケーションプログラムを実行するサーバと、前記サーバに前記アプリケーションプログラムの実行の指示を与え、当該サーバから実行結果を受け取るクライアントと、前記クライアントを認証する認証サーバとがネットワークで接続されたシステムにおいて、前記クライアントに接続されたデバイスを前記サーバから制御するデバイス管理システムであって、
前記クライアントは、当該クライアントに接続しているデバイスのデバイスドライバとデータを送受信するとともに前記サーバとの間で当該データを送受信するデバイス管理手段を備え、
前記認証サーバは、当該デバイス管理システム内の各デバイスの利用権限を管理するデバイス情報保持利用権限管理手段を備え、
前記サーバは、当該サーバ内で動作するアプリケーションと前記デバイス管理手段との間で前記ネットワークを介して行われるデータの送受信を前記デバイス情報保持利用権限管理手段に保持されている前記利用権限に従って制御する仮想デバイス管理手段を備え、
前記仮想デバイス管理手段は、前記クライアントに接続しているデバイスとの間で前記デバイス管理手段を介してデータを送受信し、前記サーバ内で動作するアプリケーションに対して当該デバイスのドライバとして動作する擬似バスドライバ手段を備える
ことを特徴とするデバイス管理システム。
【請求項３】
請求項２記載のデバイス管理システムであって、
前記擬似バスドライバ手段は、
前記デバイスが前記クライアントに接続すると生成され、当該デバイスを動作させる起動用デバイスオブジェクトと、
前記デバイスが接続された場合、当該デバイスに対応づけて前記起動用デバイスオブジェクトを生成し、当該デバイスの接続が解除された場合、当該デバイスに対応づけて生成した前記起動用デバイスオブジェクトを削除するエニュメレータと、を備える
ことを特徴とするデバイス管理システム。
【請求項４】
請求項２または３に記載のデバイス管理システムであって、
前記クライアントと前記サーバとはそれぞれ遠隔操作プログラムを備え、
前記デバイス管理手段と前記仮想デバイス管理手段とは、それぞれ前記遠隔操作プログラムを介して前記データの送受信を行う
ことを特徴とするデバイス管理システム。
【請求項５】
請求項２から４のいずれか１項に記載のデバイス管理システムであって、
前記擬似バスドライバ手段は、前記デバイス管理手段から前記クライアントに新規にデバイスが接続されたことを示す通知を受け取ると、前記サーバのＯＳ（Ｏｐｅｒａｔｉｏｎ Ｓｙｓｔｅｍ）との間で当該擬似デバイスドライバが前記新規に接続されたデバイスのデバイスドライバとして動作するために必要なデバイス情報の取得処理を行い、当該デバイス情報の取得処理が正常に完了した場合、前記デバイス管理手段に正常に完了したことを通知することを特徴とするデバイス管理システム。
【請求項６】
請求項２から５のいずれか１項に記載のデバイス管理システムであって、
前記サーバは表示手段を備え、
前記仮想デバイス管理手段は、前記デバイス管理手段から前記クライアントに既に接続されているデバイスとの接続が切断されたことを示す通知を受け取ると、当該デバイスを利用中のアプリケーションの有無を判別し、
前記擬似バスドライバ手段は、前記利用中のアプリケーションがないと判別された場合、前記デバイスのデバイスドライバとしての動作を終了するために必要な手続きを行い、当該手続きが正常に完了した場合、前記デバイス管理手段に正常に完了したことを通知し、前記手続きが正常に完了しなかった場合、前記表示手段にその旨を通知することを特徴とするデバイス管理システム。
【請求項７】
請求項１から６のいずれか１項に記載のデバイス管理システムであって、
前記仮想デバイス管理手段は、前記サーバが前記クライアントに接続されたデバイスを制御可能な状態となっているとき、当該サーバのＯＳから省電力のための休止状態となる旨の通知を受けると、前記サーバのＯＳにエラー通知をし、
前記デバイス管理手段は、前記サーバが前記クライアントに接続されたデバイスを制御可能な状態となっているとき、当該クライアントのＯＳから省電力のための休止状態となる旨の通知を受けると、前記クライアントのＯＳにエラー通知をすることを特徴とするデバイス管理システム。
【請求項８】
アプリケーションプログラムを実行するサーバと、前記サーバに前記アプリケーションプログラムの実行の指示を与え、当該サーバから実行結果を受け取るクライアントと、前記クライアントを認証する認証サーバとがネットワークで接続され、前記クライアントに接続されたデバイスを前記サーバから制御するデバイス管理システムにおける前記クライアントであって、
当該クライアントに接続しているデバイスのデバイスドライバとの間でデータを送受信するとともに前記サーバとの間で当該データを送受信するデバイス管理手段を備え、
前記デバイス管理手段は、前記デバイスドライバと当該クライアントのアプリケーションとのデータの送受信および前記デバイスドライバと前記サーバとのデータの送受信の間で排他制御を行うフィルタ手段を備えることを特徴とするクライアント。
【請求項９】
アプリケーションプログラムを実行するサーバと、前記サーバに前記アプリケーションプログラムの実行の指示を与え、当該サーバから実行結果を受け取るクライアントと、前記クライアントを認証する認証サーバとがネットワークで接続され、前記クライアントに接続されたデバイスを前記サーバから制御するデバイス管理システムにおける前記サーバであって、
前記サーバは、当該サーバ内で動作するアプリケーションと前記デバイス管理手段との間で前記ネットワークを介して行われるデータの送受信を前記認証サーバに保持されている前記デバイス管理システム内の各デバイスの利用権限に従って制御する仮想デバイス管理手段を備え、
前記仮想デバイス管理手段は、前記クライアントに接続しているデバイスとの間でデータを送受信し、前記サーバ内で動作するアプリケーションに対して当該デバイスのドライバとして動作する擬似バスドライバ手段を備えることを特徴とするサーバ。
【請求項１０】
アプリケーションプログラムを実行するサーバと、前記サーバに前記アプリケーションプログラムの実行の指示を与え、当該サーバから実行結果を受け取るクライアントと、前記クライアントを認証する認証サーバとがネットワークで接続されたデバイス管理システムにおいて、前記クライアントに接続されたデバイスを前記サーバから制御するために共有するデバイス共有方法であって、
前記クライアントは遠隔操作プログラムを介して前記サーバに利用開始を要求し、
前記サーバは、前記利用開始の要求を受け取ると、前記認証サーバにアクセスして要求元の前記クライアントを認証し、
認証が成功した場合、前記サーバは前記認証サーバにアクセスし、前記利用開始の要求元のクライアントが利用可能なデバイスを抽出し、
前記サーバは前記クライアントとの間に前記抽出したデバイスを利用可能とする通信路を形成するとともに、当該通信路を形成したことを前記認証サーバに通知することを特徴とするデバイス共有方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してサーバに接続するデバイスへのアクセスを管理する技術に関する。特に、デバイスがサーバに直接接続している場合と同様に、当該デバイスを仮想的に利用可能なシステムにおいて、安全かつ簡便に遠隔操作可能とする技術に関する。
【背景技術】
【０００２】
遠隔地にあるパーソナルコンピュータ（ＰＣ）やワークステーションなどのサーバをＰＣやパーソナルデジタルアシスタント（ＰＤＡ）、携帯電話などの手元の情報端末を用いてコントロールする手法が、一般的になっている。このような手法は、サーバクライアント方式と呼ばれる。サーバクライアント方式は、大規模なサーバを時分割等の手法でクライアント側の端末である手元の情報端末の間で分け合って利用する。クライアント側の端末の処理能力が低い場合やクライアント側の端末に一定のセキュリティが確保できない場合に利用されている。サーバクライアント方式ではサーバとクライアントとの間でインターネットやイントラネットを介した通信を行う。これらの通信に広帯域低料金のサービスが提供されるようになったことが、その普及の一因となっている。
【０００３】
サーバクライアント方式では、遠隔地にあるサーバを手元の情報端末（クライアント端末）からを制御するために、サーバには、サーバを制御するためのプログラムをサーバにインストールし、クライアント端末にサーバを制御した結果を表示するためのプログラムをインストールする。また、サーバとクライアント端末との間の通信路に盗聴改ざんなどの危険性がある場合は、通信路の暗号化のためにバーチャルプライベートネットワーク（ＶＰＮ）を構築するためのプログラムが利用される。サーバを制御する権限が、クライアント端末やそのクライアント端末を利用する利用者に与えられているか否かを確認するために、クライアント端末に特定の認証情報を格納したり、クライアント端末に認証情報を格納したデバイスを接続したり、利用者の生体認証情報をクライアント端末に入力し、クライアント端末やサーバ等で確認を行うことも一般的である。
【０００４】
サーバ及びクライアント端末を業務で利用する利用者は、オフィス内や自宅や車の中等のオフィス外の場所でクライアント端末にサーバを遠隔操作した結果を表示させ、サーバ上のプログラムを用いて業務を遂行する。また、業務以外であっても、例えば家庭内やデータセンタに設置したサーバとクライアント端末とを接続し、サーバ上に表示される画面をクライアント端末に表示し、サーバ上のプログラムを用いて、情報処理（例えば、電子メールの読み書きや、ブラウザプログラムを起動しＷＥＢ情報を閲覧する等）を行う。一連の動作の前に、サーバとクライアント端末との間の通信は、必要に応じて例えばＩＰｓｅｃ ＶＰＮやＳＳＬ−ＶＰＮといった暗号通信手法で保護される。
【０００５】
このようにサーバクライアント方式によるクライアント端末によるサーバの利用形態は、サーバクライアント方式のシステムを用いない場合に比べ、全体の機器コストや危機管理コストを削減できたり、情報の紛失の確率を低減したり、いつでもどこでも手元の情報端末の種別を問わずに必要な情報処理を可能にするという簡便さを提供したりするという特長を持つ。このような手元の情報端末によるサーバ利用形態の一例は、例えば特許文献１に述べられている。
【０００６】
サーバクライアント方式では、サーバは、クライアント端末から物理的に離れた場所に設置されているケースが大半である。この場合、利用者は、例えばサーバに直接接続されたＣＤ−ＲＯＭドライブなどの、情報機器に接続される周辺機器（以後、本明細書ではデバイスと呼ぶ。）をクライアントからサーバを経由して利用することは可能である。しかし、ＣＤ−ＲＯＭの取り出しなどの操作は容易ではなく、利用者はこの点に不便さを感じる。
【０００７】
これを解決するものとして、例えば、イントラネットなどのネットワーク上にＣＤ−ＲＯＭドライブ等の、ネットワーク上のいずれの情報機器からもアクセス可能な、いわゆる共有のデバイスを配置し、仮想的にサーバ上でＣＤ−ＲＯＭドライブを利用するものがある。例えば特許文献２、特許文献３は、このようなネットワーク上の第一の機器に接続されたデバイスを、ネットワーク上の第一の機器とは異なる第二の機器から利用する利用形態について開示している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−２３５１５９号公報
【特許文献２】ＵＳ６９０４４８９Ｂ２号米国特許公報
【特許文献３】ＵＳ２００５０２４０７１２号米国公開特許公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献２には、デバイスが接続されているネットワーク上の機器(上記の第一の機器)からデバイスを利用することは開示されていない。そのため、本文献に開示の方法によれば、サーバクライアント方式の構成に於けるサーバとクライアント、すなわち、上記の第一、第二、いずれの機器からでもデバイスを利用できるという構成が実現できない。
【００１０】
また、特許文献３に記載の方法では、サーバクライアント方式の構成に於いて、サーバとクライアント両方、すなわち、上記の第一、第二の機器両方から、当該デバイスを利用することを容易に実現できない。
【００１１】
画面転送型などのシンクライアントシステムにおいては、実際の処理装置はサーバであるため、利用者の手元にあるクライアントにデバイスを接続し、接続されたデバイスをサーバから容易に利用できることが望ましい。すなわち、クライアントが行うデバイスの接続や切り離し処理、および、クライアントが独自に行うデバイスの利用処理と、サーバが行うデバイスの利用処理と、を切り替えながら行う必要があり、クライアントとデバイス間の要求と返答の送受信と、サーバとデバイス間の要求と返答の送受信と、が正しく行われるよう、排他的に制御する必要があるとともに、これらの切り替え処理を、利用者の利便性を損なわないように行う必要がある。
【００１２】
本発明は、上記事情に鑑みてなされたもので、サーバクライアント方式においてデバイスを共有する場合、利用者の利便性を損なわず、システム内のセキュリティを向上させる。
【００１３】
本発明の前記並びにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
クライアントへデバイスを接続し、さらに、接続された該デバイスにサーバからアクセスするにあたり、デバイスを接続するのみで、他の操作なしでサーバ側からクライアントに接続されたデバイスを使用可能とするために、クライアント側に、クライアントに接続されたデバイスとクライアントのアプリケーションとの間のデータの送受信と、前記デバイスとサーバとの間のデータの送受信と、を排他的に制御するフィルタ手段を設け、サーバ側に、クライアントとの通信手段とアプリケーションとの間で仮想的にデバイスドライバとして機能する擬似バスドライバ手段を設ける。
【００１５】
具体的には、アプリケーションプログラムを実行するサーバと、前記サーバに前記アプリケーションプログラムの実行の指示を与え、当該サーバから実行結果を受け取るクライアントと、前記クライアントを認証する認証サーバとがネットワークで接続されたシステムにおいて、前記クライアントに接続されたデバイスを前記サーバから制御するデバイス管理システムであって、前記クライアントは、当該クライアントに接続しているデバイスのデバイスドライバとの間でデータを送受信するとともに前記サーバとの間で当該データを送受信するデバイス管理手段を備え、前記認証サーバは、当該デバイス管理システム内の各デバイスの利用権限を管理するデバイス情報保持利用権限管理手段を備え、前記サーバは、当該サーバ内で動作するアプリケーションと前記デバイス管理手段との間で前記ネットワークを介して行われるデータの送受信を前記デバイス情報保持利用権限管理手段に保持されている前記利用権限に従って制御する仮想デバイス管理手段を備え、前記デバイス管理手段は、前記デバイスドライバと当該クライアントのアプリケーションとのデータの送受信および前記デバイスドライバと前記サーバとのデータの送受信の間で排他制御を行うフィルタ手段を備えることを特徴とするデバイス管理システムを提供する。
【発明の効果】
【００１６】
本発明によれば、サーバクライアント方式においてデバイスを共有する場合、利用者の利便性を損なわず、システム内のセキュリティを向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】第一の実施形態のデバイス管理システムのブロック図である。
【図２】第一の実施形態のポリシーテーブルの一例である。
【図３】第一の実施形態のデバイス情報テーブルの一例を示す図である。
【図４】第一の実施形態の認証管理サーバが保持する利用者情報データベースの一例である。
【図５】第一の実施形態のブレードサーバが保持する、ＰＣ利用管理テーブルの一例である。
【図６】第一の実施形態のデバイス共有処理の処理フローである。
【図７】第一の実施形態のデバイス共有処理終了時の処理フローである。
【図８】第一の実施形態のデバイス管理マネージャ及び仮想デバイスマネージャとデバイスドライバ及びアプリケーションとの関係の説明図である。
【図９】第一の実施形態のデバイス利用時の動作を説明するフローである。
【図１０】第一の実施形態のデバイス利用時の動作を説明するフローである。
【図１１】管理アプリケーションにより表示されるログ管理画面の一例である。
【図１２】第一の実施形態の仮想デバイスマネージャのデバイス管理画面の一例である。
【図１３】第一の実施形態のＰＣ−Ａのハードウェア構成図である。
【図１４】第一の実施形態のフィルタドライバ及び通信プログラムのデバイス共有処理時の起動処理の説明図である。
【図１５】第一の実施形態の擬似バスドライバ及び通信プログラムのデバイス共有処理時の起動処理の説明図である。
【図１６】第一の実施形態の擬似バスドライバと通信プログラムとフィルタドライバとにおいてチャネルを生成する際の処理の説明図である。
【図１７】第一の実施形態のＰＣ−Ｄに新たなデバイスが接続された際の動作を説明するフローである。
【図１８】第一の実施形態のデバイスＡがＰＣ−Ｄからプラグアウトされた際の動作を説明するフローである。
【図１９】第二の実施形態のプログラムの通信を説明する図である。
【図２０】第二の実施形態のデバイス共有処理の処理フローである。
【図２１】第二の実施形態のデバイス共有終了処理の処理フローである。
【図２２】第一の実施形態のデバイス管理システムにおけるフィルタ開始時の各ドライバ間の処理および通信フローである。
【図２３】第一の実施形態の各ＰＣ間で送受信されるデータの変換を説明する図である。
【図２４】実施形態のＰＣ−Ｄにおいて電源が切断、もしくは休止状態もしくはサスペンド状態への移行が起こった場合のシーケンスを説明する図である。
【図２５】実施形態のＰＣ−Ａにおいて電源が切断、もしくは休止状態もしくはサスペンド状態への移行が起こった場合のシーケンスを説明する図である。
【図２６】実施形態のデバイス管理マネージャにて管理されている、デバイスＡの利用状態の状態遷移図である。
【図２７】実施形態のＰＣ−Ｄにおいて、デバイス管理マネージャが仮想デバイスマネージャとの通信においてタイムアウトを検出した場合のシーケンスを説明する図である。
【図２８】実施形態のＰＣ−Ａにおいて、仮想デバイスマネージャがデバイス管理マネージャとの通信においてタイムアウトを検出した場合のシーケンスを説明する図である。
【発明を実施するための形態】
【００１８】
本発明の実施の形態について、添付図面を参照しながら以下詳細に説明する。なお、図面中にて同一の参照番号を付したものは、同一の機能を有する構成要素を示し、説明の便宜上、その詳細な説明は省略する。
【００１９】
＜＜第一の実施形態＞＞
以下図面を用いて、本発明に係るデバイス管理システムの第一の実施形態を説明する。
【００２０】
図１は、本実施形態のデバイス管理システムの詳細なブロック図である。本実施形態のデバイス管理システムは、認証管理サーバ１０１、ネットワーク１０３、ブレードサーバ１０６を備える情報センタ１０２と、当該情報センタのネットワーク１０３に接続するＰＣ等のクライアント装置とを備える。
【００２１】
情報センタ１０２は、情報機器を管理するセンタで通常入退室を制限され、設置する機器が管理監視されているエリアである。情報センタ１０２の設置場所は、限定されない。例えば、利用者がクライアント装置などの端末を利用する場所に設置されても良いし、離れた場所に設置されていても良い。利用者が端末をオフィスなどで利用する場合、情報センタ１０２は利用者を管理する企業団体の建屋内に設置されてもよい。利用者が一般消費者で自宅やホテル、街頭などからサービス提供企業のサーバを利用する場合、情報センタ１０２はインターネットサービスプロバイダやサーバレンタル企業、アプリケーションサービスプロバイダ等の管理する建屋内に設置されていてもよい。また、利用者自宅やオフィスの一角にサーバを集中させたエリアであっても良い。
【００２２】
認証管理サーバ１０１は、デバイスや利用者の認証と管理とを行うサーバで、情報センタ１０２の管理者が管理する。認証管理サーバ１０１がこれらを実現するために保持する各種のデータについては、後述する。認証管理サーバ１０１は、通信インタフェース、ＣＰＵおよびメモリを備える情報処理装置で実現され、ＣＰＵがメモリに格納されたプログラムを実行することにより、各機能を実現する。なお、各機能を実現するプログラムは、記憶媒体、または、搬送波、デジタル信号、通信線を含む通信媒体を介して、他の装置から取得してもよい。
【００２３】
ブレードサーバ１０６は、内部に複数のサーバもしくはＰＣを有する機器であり、図示しない電源、内部機器とネットワーク１０３とを結線するインタフェース機能、管理装置などを備える。本実施形態では、ＰＣ−Ａ１１０、ＰＣ−Ｂ１１１、ＰＣ−Ｃ１１２を内部に備える場合を例にあげて説明する。もちろん、ブレードサーバ１０６の構成は、これに限られず、これら以外のＰＣやサーバを着脱可能である。
【００２４】
ネットワーク１０３は、認証管理サーバ１０１、ＰＣ−Ａ１１０、ＰＣ−Ｂ１１１、ＰＣ−Ｃ１１２等を相互に接続する。本実施形態では、ＴＣＰ／ＩＰプロトコルを用いて通信を行うネットワークとして以下に説明する。もちろん、それ以外のプロトコルに従った通信を行うものであっても良い。
【００２５】
なお、本実施形態の、ＰＣ−Ａ１１０、ＰＣ−Ｂ１１１、ＰＣ−Ｃ１１２は、ブレードサーバ１０６内部に構成されているが、ブレードサーバ１０６内部やさらには情報センタ１０２内に設置されていなくともネットワーク１０３上に存在していればよい。ＰＣ−Ａ１１０、ＰＣ−Ｂ１１１、ＰＣ−Ｃ１１２は、ＰＣと記述しているが、サーバでもワークステーションでも組み込み機器でも、記憶媒体に格納しているＯＳやアプリケーションをメモリとＣＰＵ上で実行する情報機器であれば特に限定されない。
【００２６】
図１３は、ＰＣ−Ａ１１０のハードウェア構成図である。ＰＣ−Ａ１１０は、ハードディスクドライブやフラッシュメモリなどのストレージ１６０とＣＰＵ１１０ａとメモリ１１０ｂと通信のためのインタフェースである通信インタフェース１１０ｃとを備える。ＰＣ−Ａ１１０においては、メモリ１１０ｂに読み込まれたプログラムがＣＰＵ１１０ａにより実行されることにより、各処理部が実現される。なお、各プログラムは、記憶媒体、または通信媒体を介して、他の装置から取得することも可能である。なお、通信媒体とは、搬送波、デジタル信号、通信線を含む。
【００２７】
ＰＣ−Ａ１１０は、利用者の指示に従って、演算を行う。演算結果はＰＣ−Ａ１１０またはブレードサーバ１０６に接続された図示しないディスプレィに表示される。ストレージ１６０には、後述する仮想デバイスマネージャ１２０が管理者によりインストールされている。ＰＣ−Ａ１１０が起動されるとストレージ１６０からＯＳがメモリ１１０ｂに読み込まれ、ＣＰＵ１１０ａにより実行されて利用可能状態になった後、仮想デバイスマネージャ１２０がメモリ１１０ｂに読み込まれ、ＣＰＵ１１０ａにより実行されて仮想デバイスが利用可能になる。
【００２８】
ここで言う仮想デバイスとは、ＰＣ−Ａ１１０にネットワーク１０３などを介して接続されているデバイスを、あたかもＰＣ−Ａ１１０に直接接続されているデバイスであるかのように利用可能とする仕組みである。本仕組みにより、離れた場所に接続されているデバイスが、ＰＣ−Ａ１１０に物理的に接続されているデバイスと同様に利用可能となる。
【００２９】
仮想デバイスマネージャ１２０は、ＰＣ−Ａ１１０にネットワーク１０３を介して接続されているデバイスＡ１５１との間でのデータの送受信を行うための制御を行うソフトウェアである。デバイスＡ１５１を、仮想的に、サーバに直接接続している場合と同様に使用可能にする機能を実現するものである。詳細については、後述のデバイス管理マネージャ１２３の動作とともに後述する。
【００３０】
また、ストレージ１６０には、仮想デバイスマネージャ１２０が送受信したデータおよび仮想デバイスマネージャ１２０で発生したイベントがログ１７０として蓄積される。ログ１７０の詳細については後述する。
【００３１】
ＰＣ−Ｂ１１１及びＰＣ−Ｃ１１２もＰＣ−Ａ１１０と同様の構成を備え、それぞれ内部にストレージ１６１、１６２を備えると共に、仮想デバイスマネージャ１２１、１２２がインストールされ、起動後に動作する。以後、特にＰＣ−Ａ１１０、ＰＣ−Ｂ１１１、ＰＣ−Ｃ１１２を区別する必要がない場合、ＰＣ−Ａ１１０を代表として説明する。
【００３２】
なお、ストレージ１６０〜１６２は、ブレードサーバ１０６内に存在せず、ネットワーク１０３上に存在していてもよい。
【００３３】
次に、クライアント装置としてネットワーク１０３に接続されている機器について説明する。
【００３４】
本実施形態では、クライアント装置として、ＰＣ−Ｄ１１３と、ＰＣ−Ｅ１１４と、ＰＣ−Ｆ１１５と、ハブ１１６と、ファイヤウォール１０５およびインターネット１０４を介して接続するＰＣ−Ｚ１１７とを備える場合を例に挙げて説明する。また、ＰＣ−Ｄ１１３にはデバイスＡ１５１が、ＰＣ−Ｆ１１５にはデバイスＢ１５２が、ハブ１１６にはデバイスＣ１５３およびデバイスＤ１５４が、ＰＣ−Ｚ１１７にはデバイスＺ１５５が接続される場合を例にあげて説明する。各クライアント装置およびデバイスの接続構成はこれに限られない。
【００３５】
ＰＣ−Ｄ１１３は、利用者の指示に従って演算を行い、必要に応じてデバイスを利用し、演算結果を利用者に提示する情報処理装置である。ハードウェア構成、各処理部の実現方法は、上記ＰＣ−Ａ１１０と基本的に同様である。ＰＣ−Ｄ１１３は、ネットワーク１０３に図示しないネットワークインタフェースを介して接続している。ＰＣ−Ｄ１１３は、ハードディスクドライブもしくはフラッシュメモリなどストレージ１６３及び図示しないメモリ及びＣＰＵを備え、利用者の指示によって演算を行う。演算結果は、ＰＣ−Ｄ１１３に接続されている図示しないディスプレィに表示される。利用者からの指示は図示しないキーボードやマウスといったユーザインタフェースを介してＰＣ−Ｄ１１３へ送信される。
【００３６】
また、ＰＣ−Ｄ１１３において、ストレージ１６３には、後述するデバイス管理マネージャ１２３がインストールされている。ＰＣ−Ｄ１１３が起動されるとストレージ１６３からＯＳがメモリに読み込まれ、ＣＰＵが実行することにより利用可能状態になった後、デバイス管理マネージャ１２３がメモリに読み込まれ、ＣＰＵが実行することにより、接続されたデバイスＡ１５１がＰＣ−Ａ１１０において仮想デバイスとして利用可能となる。また、ストレージ１６３には、デバイス管理マネージャ１２３が送受信したデータ等がログ１７３として蓄積される。ログ１７３の詳細については後述する。
【００３７】
デバイス管理マネージャ１２３は、ＰＣ−Ｄ１１３が、デバイスＡ１５１を、ブレードサーバ１０６のＰＣ−Ａ１１０の仮想デバイスとして利用するためのソフトウェアである。詳細については、仮想デバイスマネージャ１２０の動作とともに後述する。
【００３８】
ＰＣ−Ｅ１１４、ＰＣ−Ｆ１１５、ＰＣ−Ｚ１１７は基本的にＰＣ−Ｄ１１３と同様の構成を備え、それぞれ、ストレージ１６４、１６５、１６７を備える。また、デバイス管理マネージャ１２４、１２５、１２７が実現される。また、各ストレージには、ログ１７４、１７５、１７７がそれぞれ格納される。
【００３９】
さらに、ハブ１１６は、ＰＣ−Ｄ１１３から表示画面などの一般的なＰＣの機能の一部が削られたものである。すなわち、図示しないネットワークインタフェースを介してネットワーク１０３に接続し、ハードディスクドライブもしくはフラッシュメモリなどストレージ１６６及び図示しないメモリ及びＣＰＵを備え、演算を行う。ハードウェア構成、各処理部の実現方法は、ＰＣ−Ａ１１０と基本的に同様である。デバイス管理マネージャ１２６を実現するとともに、ストレージ１６６にはログ１７６を保持する。以後、特にＰＣ−Ｄ１１３、ＰＣ−Ｅ１１４、ＰＣ−Ｆ１１５、ＰＣ−Ｚ１１７、ハブ１１６を区別する必要がない場合、ＰＣ−Ｄ１１３を代表として説明する。
【００４０】
デバイスＡ１５１は、情報機器に接続される、例えば、ＣＤ−ＲＯＭやプリンタなどの周辺機器である。デバイスＡ１５１は、ＰＣ−Ｄ１１３とデバイス接続用のインタフェースを介して接続されている。デバイス接続用のインタフェースは、例えばユニバーサルシリアルバス（ＵＳＢ）、ワイヤレスＵＳＢ、近距離無線通信インタフェース、赤外線通信インタフェース、シリアルポートインタフェース、パラレルポートインタフェース、ＩＥＥＥ１３９４インタフェース、ＰＳ／２インタフェース（登録商標）、オーディオインタフェースといったデバイスをＰＣに接続するためのインタフェースが考えられる。本実施形態では、インタフェースがＵＳＢである場合を例にあげて説明を行うが、インタフェースはこれに限られない。
【００４１】
また、デバイスＡ１５１は、接続されているＰＣ−Ｄ１１３にインストールされているデバイス管理マネージャ１２３により、仮想デバイスとして本システムで用いられる。以後、デバイス管理マネージャ１２３を、デバイスＡ１５１を管理するデバイス管理マネージャと呼ぶ。
【００４２】
その他、各ＰＣおよびハブに接続されているデバイスＢ１５２、Ｃ１５３、Ｄ１５４もデバイスＡ１５１と同様の周辺機器であり、本実施形態では、一例としてＵＳＢインタフェースを介してＰＣまたはハブに接続されている。以後、特にデバイスＡ１５１、デバイスＢ１５２、デバイスＣ１５３、デバイスＤ１５４を区別する必要がない場合、デバイスＡ１５１を代表として説明する。
【００４３】
次に、ＰＣ−Ａ１１０の仮想デバイスマネージャ１２０と、ＰＣ−Ｄ１１３のデバイス管理マネージャ１２３との詳細な構成について説明する。
【００４４】
図８は、デバイス管理マネージャ１２３及び仮想デバイスマネージャ１２０とデバイスドライバ及びアプリケーションとの関係を説明するための図である。ここでは、ＰＣ−Ａ１１０とＰＣ−Ｄ１１３とにおいてデバイスＡ１５１を利用するために必要となるソフトウェアのスタックを中心に説明する。
【００４５】
ＰＣ−Ｄ１１３は、デバイス管理マネージャ１２３と、物理バスドライバ１５１５と、デバイスクラスドライバ１５１３と、上位ドライバ１５１２と、アプリケーション１５１１とを備える。また、デバイス管理マネージャ１２３は、フィルタドライバ１５１４と、通信プログラム１５１０と、ＧＵＩアプリケーション１５０９とを備える。なお、各ドライバについて、アプリケーション１５１１に近い側を上位、ＰＣ−Ｄ１１３に接続されるデバイスＡ１５１に近い側を下位と呼ぶ。ＰＣ−Ｄ１１３では、下位から順に、物理バスドライバ１５１５、フィルタドライバ１５１４、デバイスクラスドライバ１５１３、上位ドライバ１５１２、の順にスタックされている。
【００４６】
ＰＣ−Ａ１１０は、仮想デバイスマネージャ１２０と、デバイスクラスドライバ１５０３と、上位ドライバ１５０２と、アプリケーション１５０１と、を備える。仮想デバイスマネージャ１２０は、擬似バスドライバ１５０４と通信プログラム１５０８とＧＵＩアプリケーション１５０７とを備える。また、擬似バスドライバ１５０４は、起動用物理デバイスオブジェクト１５０５と、エニュメレータ機能デバイスオブジェクト１５０６（以下、エニュメレータ１５０６と呼ぶ。）とを備える。ＰＣ−Ａ１１０では、下位から順に、擬似バスドライバ１５０４、デバイスクラスドライバ１５０３、上位ドライバ１５０２の順にスタックされている。
【００４７】
物理バスドライバ１５１５は、ＰＣ−Ｄ１１３に接続された物理バス上に接続されたデバイスＡ１５１への通信を制御するプログラム（デバイスドライバ）である。バス上のデバイスＡ１５１の状態、接続、切断を監視する、デバイスＡ１５１からの割り込みをＯＳおよび上位のデバイスドライバに通知する、上位に位置するドライバであるデバイス管理マネージャ１２３内のフィルタドライバ１５１４から転送されたデータをデバイスＡ１５１に送信する、などの処理を行う。なお、ここでは、物理バスはユニバーサルシリアルバス（ＵＳＢ）とする。物理バスドライバ１５１５は、接続されるデバイスＡ１５１毎に用意される。
【００４８】
デバイスクラスドライバ１５１３は、デバイスＡ１５１の種別に対応して設けられているプログラム（デバイスドライバ）である。アプリケーション１５１１から上位ドライバ１５１２を介して送信された要求をデバイスＡ１５１が理解できる命令やデータに変換してデバイスフィルタドライバ１５１４および物理バスドライバ１５１５を介して送信する。また、デバイスＡ１５１から送信された割り込みおよび命令に対するレスポンスをＯＳおよび上位ドライバに送信する。
【００４９】
上位ドライバ１５１２は、デバイスＡ１５１の種別に対応して設けられている１以上のデバイスクラスドライバ１５１３をまとめる役割をするプログラム（デバイスドライバ）である。アプリケーション１５１１から送られた要求をデバイスクラスドライバ１５１３が理解できる命令やデータに変換してデバイスクラスドライバ１５１３に送信する。また、デバイスクラスドライバ１５１３およびその他のデバイスクラスドライバから送信された割り込みおよび命令に対するレスポンスをＯＳおよびアプリケーション１５１１に送信する。
【００５０】
フィルタドライバ１５１４は、デバイスＡ１５１がＰＣ−Ｄ１１３上のデバイスとして有効になった場合、ＰＣ−Ｄ１１３のメモリ上にロードされる。物理バスドライバ１５１５とデバイスクラスドライバ１５１３との間に配置され、デバイスクラスドライバ１５１３の下位のドライバとして動作する。
【００５１】
フィルタドライバ１５１４は、通信プログラム１５１０またはデバイスクラスドライバ１５１３より送信されるリクエストを物理バスドライバ１５１５に送信し、物理バスドライバ１５１５より送信されるレスポンスを通信プログラム１５１０またはデバイスクラスドライバ１５１３に返信する。また、通信プログラム１５１０、物理バスドライバ１５１５間のリクエスト及びレスポンスと、デバイスクラスドライバ１５１３、物理バスドライバ１５１５間のリクエスト及びレスポンスのいずれかを有効とし、いずれかを無効とする。どちらのリクエスト及びレスポンスを有効とするかは、ＧＵＩアプリケーション１５０７及びＧＵＩアプリケーション１５０９の指示に従って、または、デバイスＡ１５１のプラグイン、プラグアウト、イジェクトのタイミングもしくは、通信プログラム１５１０の起動、終了のタイミングで、変更される。ここで、プラグインは、デバイスＡ１５１をＰＣ−Ｄ１１３の物理バスに接続すること、プラグアウトは、デバイスＡ１５１とＰＣ−Ｄ１１３との接続を絶つこと、イジェクトはデバイスＡ１５１をＰＣ−Ｄ１１３から取り外したり、取り外すために動作を停止することをそれぞれ意味する。
【００５２】
フィルタドライバ１５１４は、デバイスクラスドライバ１５１３から物理バスドライバ１５１５へのリクエストを無効にする場合は、該当するリクエストがフィルタドライバ１５１４に入力されると、無効であるというレスポンスをデバイスクラスドライバ１５１３に返信する、または、「デバイスが有効では無い」「デバイスにメディアが挿入されていない」などの予め決められたエラーを含んだレスポンスをデバイスクラスドライバ１５１３に返信する。
【００５３】
同様に、フィルタドライバ１５１４は、通信プログラム１５１０から物理バスドライバ１５１５へのリクエストを無効にする場合は、該当するリクエストがフィルタドライバ１５１４に入力されると、無効であることを示すレスポンスを通信プログラム１５１０に返信する、あるいは、「デバイスが有効では無い」「デバイスにメディアが挿入されていない」などの予め決められたエラーを含んだレスポンスを通信プログラム１５１０に返信する。
【００５４】
フィルタドライバ１５１４は、デバイスＡ１５１に対応するデバイスクラスドライバ１５１３に対応してＰＣ−Ｄ１１３のメモリ上にロードされる。接続されているデバイスＡ１５１が複数の場合、各デバイスＡ１５１毎に、または、デバイスＡ１５１に対応して設けられる物理バスドライバ１５１５毎に、用意される。
【００５５】
ＰＣ−Ｄ１１３側の通信プログラム１５１０は、通信プログラム１５０８及びフィルタドライバ１５１４と通信を行う機能を持つ。通信プログラム１５１０は、通信プログラム１５０８及びフィルタドライバ１５１４の状態を常に監視し、フィルタドライバ１５１４との通信に異常が発生した場合は、通信プログラム１５０８に異常信号を送信する。フィルタドライバ１５１４との通信が予め定められた時間で復活しない場合、通信プログラム１５０８にさらに異常信号を送信させ、ＧＵＩアプリケーション１５０９に状態を表示させ、利用者の指示を受け付ける。例えば利用者の指示により、デバイスクラスドライバ１５１３からのリクエストを物理バスドライバ１５１５に送信するように変更を行い、通信プログラム１５１０とフィルタドライバ１５１４との通信を中断する。また、通信プログラム１５１０は、通信プログラム１５０８との通信が異常になった場合は、フィルタドライバ１５１４に異常信号を送信する。通信プログラム１５０８との通信がある程度の時間で復帰しない場合、フィルタドライバ１５１４にさらに異常信号を送信し、ＧＵＩアプリケーション１５０９に状態を表示させ、利用者の指示を受ける。例えば利用者の指示により、すべてのエニュメレータ１５０６や起動用物理デバイスオブジェクト１５０５を消滅させる要求を通信プログラム１５０８に送信する、通信プログラム１５１０自身を終了させる、などの処理を行う。通信プログラム１５１０は、通信プログラム１５０８と常に通信を行い、ＰＣ−Ｄ１１３に接続されたデバイスからプラグアウト、プラグイン、イジェクトの通知を受けるのを待つ。通信プログラム１５０８はデバイスＡ１５１のプラグイン、プラグアウト、イジェクトの通知を受けると、擬似バスドライバ１５０４が適切に動作するように通信プログラム１５０８に通知を行う。
【００５６】
擬似バスドライバ１５０４は、後述するＰＣ−Ｄ１１３上の物理バスドライバ１５１５に相当し、デバイスへの通信を制御するプログラム（デバイスドライバ）である。バス上のデバイスの状態および接続切断を監視し、デバイスからの割り込みをＯＳおよび上位のデバイスドライバに通知し、上位のデバイスドライバから転送されたデータをデバイスに送信する。擬似バスドライバ１５０４は、ＰＣ−Ａ１１０上で動作するアプリケーション１５０１から、ＰＣ−Ｄ１１３のバスに接続されたデバイスＡ１５１を、ＰＣ−Ａ１１０のバスに接続されたデバイスと同様に扱わせる。擬似バスドライバ１５０４は、ＰＣ−Ｄ１１３に接続されたデバイスＡ１５１を、ＰＣ−Ａ１１０の擬似バスとしてＯＳが認識するバスに接続されたデバイスとしてＰＣ−Ａ１１０のＯＳに認識させる。ＰＣ−Ａ１１０のＯＳにとって、擬似バスは前述したＰＣ−Ｄ１１３のバスと同様の機能を持つ。擬似バスドライバ１５０４は、ＰＣ−Ａ１１０のメモリにロードされると、その内部にエニュメレータ機能デバイスオブジェクト１５０６を作成する。
【００５７】
擬似バスドライバ１５０４は通信プログラム１５１０を介してデバイスＡ１５１がプラグインされたことを示す通知を受けると、エニュメレータ機能デバイスオブジェクト１５０６に該当するデバイスに対応する起動用物理デバイスオブジェクト１５０５を生成させ、ＰＣ−Ａ１１０からデバイスＡ１５１を利用できる状態にする。また、擬似バスドライバ１５０４は通信プログラム１５１０を介してデバイスＡ１５１がプラグアウトされたことを示す通知を受けると、エニュメレータ機能デバイスオブジェクト１５０６にプラグアウトの通知をする。擬似バスドライバ１５０４は、デバイスＡ１５１がイジェクトされたことを示す通知を受けた場合、エニュメレータ機能デバイスオブジェクト１５０６にイジェクトの通知をする。
【００５８】
また、擬似バスドライバ１５０４は、起動用物理デバイスオブジェクト１５０５がＰＣ−Ａ１１０のメモリからアンロード（以下、削除と略することがある）された場合、通信プログラム１５０８及び通信プログラム１５１０を通じて削除された状態をＰＣ−Ｄ１１３に通知する。ＰＣ−Ａ１１０のＯＳから擬似バスドライバ１５０４を削除するよう擬似バスドライバ１５０４に命令があった場合、すべての起動用物理デバイスオブジェクト１５０５を削除した後にエニュメレータ１５０６及び擬似バスドライバ１５０４自身を削除する。上記の各処理中にエラーが発生した場合、擬似バスドライバ１５０４は、エラーの内容を通信プログラム１５０８に送信する。通信プログラム１５０８への送信を行う際に通信内容に異常が発生した場合、擬似バスドライバ１５０４は、すべての起動用物理デバイスオブジェクト１５０５を削除するなどの初期化処理を行い、通信プログラム１５０８との通信状態の回復を待つ。
【００５９】
エニュメレータ機能デバイスオブジェクト１５０６は、擬似バスドライバ１５０４の内部に生成されるデバイスオブジェクトである。後述する起動用物理デバイスオブジェクト１５０５の生成、削除等の管理を行う。また、通信プログラム１５０８と通信を行う。エニュメレータ１５０６は、ＰＣ−Ｄ１１３から通信プログラム１５１０および通信プログラム１５０８を介して擬似バスドライバ１５０４からデバイスＡ１５１のプラグインを示す通知とともにプラグインされたデバイスＡ１５１のパラメータを受信すると、受け取ったパラメータを用いて、起動用物理デバイスオブジェクト１５０５を作成する。また、エニュメレータ１５０６は、ＰＣ−Ｄ１１３から通信プログラム１５１０及び通信プログラム１５０８を経由して擬似バスドライバ１５０４からデバイスＡ１５１のプラグアウトもしくはイジェクト通知を受信すると、プラグアウトまたはイジェクト通知を送信したデバイスＡ１５１に対応づけて生成された起動用物理デバイスオブジェクト１５０５を削除する。
【００６０】
起動用物理デバイスオブジェクト１５０５は、仮想デバイスドライバ１２０から仮想的にデバイスＡ１５１を動作させるためのドライバである。通信プログラム１５１０および通信プログラム１５０８を介してデバイスＡ１５１がプラグインされた通知をエニュメレータ１５０６が受ける毎に生成される。すなわち、起動用物理デバイスオブジェクト１５０５は、ＰＣ−Ｄ１１３に接続されてＰＣ−Ａ１１０上の擬似バスから制御されるデバイス１つに対し、１つ生成される。従って、起動用物理デバイスオブジェクト１５０５は、１以上のオブジェクトからなる。起動用物理デバイスオブジェクト１５０５は、ＰＣ−Ｄ１１３から後述するデバイスＡ１５１のプラグイン操作により送信されるデバイスＩＤ、シリアル番号などを用いて、デバイスと１対１に対応付けられ、エニュメレータ１５０６に管理される。
【００６１】
ＰＣ−Ａ１１０側の通信プログラム１５０８は、通信プログラム１５１０と擬似バスドライバ１５０４との間の通信を実現する。通信プログラム１５０８は、通信プログラム１５１０および擬似バスドライバ１５０４の状態を常に監視し、擬似バスドライバ１５０４との通信に異常が発生した場合は、通信プログラム１５１０に異常信号を送信する。擬似バスドライバ１５０４との通信が予め定められた時間内に復帰しない場合、通信プログラム１５１０にさらに異常信号を送信する。異常が発生した場合は、通信プログラム１５０８は、ＧＵＩアプリケーション１５０７に状態を表示させ、利用者の指示を受け付ける。例えば利用者の指示により、すべての起動用物理デバイスオブジェクト１５０５および擬似バスドライバ１５０４を消滅させる命令をＯＳに送信する、通信プログラム１５０８自身を終了させるなどの処理を行う。また、通信プログラム１５０８は、通信プログラム１５１０との通信に異常が発生した場合は、擬似バスドライバ１５０４に異常信号を送信する。通信プログラム１５１０との通信が予め定められた時間内に復帰しない場合、擬似バスドライバ１５０４にさらに異常信号を送信し、ＧＵＩアプリケーション１５０７に状態を表示させ利用者の指示を受け付ける。例えば利用者の指示により、すべての起動用物理デバイスオブジェクト１５０５や擬似バスドライバ１５０４を消滅させる命令をＰＣ−Ａ１１０のＯＳに送信する、自身を終了させるなどの処理を行う。通信プログラム１５０８は、通信プログラム１５１０と常に通信を行い、ＰＣ−Ｄ１１３に接続されたデバイスからプラグアウト、プラグイン、イジェクトの通知を受けるのを待つ。
【００６２】
デバイスクラスドライバ１５０３、上位ドライバ１５０２は、後述するデバイス管理マネージャ１２３の同名のものと基本的に同様の機能を有する。
【００６３】
次に認証管理サーバ１０１が保持する、ポリシーテーブル１４００、デバイス管理テーブル２００および利用者情報データベース３００について説明する。認証管理サーバ１０１は、仮想デバイスマネージャ１２０とデバイス管理マネージャ１２３とともに、各デバイスへのアクセスを制御する。
【００６４】
ポリシーテーブル１４００は、本システム内で管理者が管理するデバイスに関するアクセスポリシーが登録される。例えば、デバイス毎の利用権限、デバイスが接続されるクライアント装置に応じた利用権限などが登録される。本テーブルは、予め管理者などにより設定される。ポリシーテーブル１４００は、システムの管理者が自由に変更することが可能である。また、ポリシーテーブル１４００を設定しないことにより、自動的にはデバイス情報テーブル２００上のルールを変更できず、手動でのみ変更できるようにシステムを構成することも可能である。管理者は自分の管理するシステムに定めるべきポリシーにしたがってポリシーテーブル１４００を構成する。
【００６５】
図２にポリシーテーブル１４００の一例を示す。本図に示すように、ポリシーテーブル１４００は、ポリシー毎に、ポリシー番号１４０１、デバイス名１４０２、接続アプリケーションのアドレス１４０３、接続アプリケーションのネットワークインタフェースＩＤ１４０４、ベンダＩＤ１４０５、製品ＩＤ１４０６、シリアル番号１４０７、デバイス種別１４０８、排他制御１４０９、利用可否１４１０、利用可能ＩＤ１４１１が記録される。もちろん、その他の項目が記録されていてもよい。
【００６６】
ポリシー番号１４０１は、ポリシーテーブル１４０１に管理者によってポリシーが登録される際、各ポリシーに自動的に付与される識別番号である。本システム上で利用可能な機器やデバイスが増減したとき、ポリシーテーブル１４００に登録されているポリシーに従って後述するデバイス情報テーブル２００のレコードが生成される。複数のポリシーに当てはまる機器やデバイスがシステム上に増減したとき、ポリシーは、予め定められた優先順序で適用される。
【００６７】
デバイス名１４０２、接続アプリケーションのアドレス１４０３、接続アプリケーションのネットワークインタフェースＩＤ１４０４、ベンダＩＤ１４０５、製品ＩＤ１４０６、シリアル番号１４０７、デバイス種別１４０８は、後述するデバイス情報テーブル２００に記載される内容と同様で、機器もしくはデバイスの情報を示している。管理者は各々のポリシーごとに該当するデバイス名、接続アプリケーションのアドレス、接続アプリケーションのネットワークインタフェースＩＤ、ベンダＩＤ、製品ＩＤ、シリアル番号、デバイス種別の条件を設定する。これらの詳細は、デバイス情報テーブル２００の説明において説明する。
【００６８】
排他制御１４０９は、デバイスを利用者が利用するとき、他の利用者からの利用を禁止するか否かを定義する値である。「必須」「可能」「不要」「不問（＊）」の設定が可能である。「不問（＊）」の場合、基本的には不要と同様に扱うが、デバイスの種別、クラスごとに自動設定されるように構成してもよい。ここで、クラスとは、例えば、キーボード、ストレージ等、同一のデバイスドライバ（クラスドライバ）にて動作するデバイス種別のことである。
【００６９】
利用可否１４１０は、デバイスの利用許可を行う際の認証管理サーバ１０１の挙動を示すもので、「可能」「禁止」「警告」の設定が可能である。「可能」が設定されているポリシーは、該当する機器やデバイスを、後述する利用可能ＩＤ１４１１に記載されている利用者に自動的に利用可能とするポリシーである。「禁止」が設定されているポリシーは、該当する機器やデバイスを、後述する利用可能ＩＤ１４１１に記載されている利用者に自動的に利用不可能とするポリシーである。「警告」が設定されているポリシーは、該当する機器やデバイスを、後述する利用可能ＩＤ１４１１に記載されている利用者に警告表示後に自動的に利用可能とするポリシーである。警告表示はポリシーごとに設定可能である。
【００７０】
なお、図中の＊印は不問（定義なし）の意味であり、管理認証サーバ１０１は記述内容と実際の情報とのマッチングを行う。
【００７１】
例えば、図２では、ポリシー番号１４０１が１のポリシーは、デバイス名１４０２、接続アプリケーションのアドレス１４０３、接続アプリケーションのネットワークインタフェースＩＤ１４０４、シリアル番号１４０７、デバイス種別１４０８は不問のポリシーである。すなわち、ベンダＩＤ１４０５が「１００１」で、製品ＩＤ１４０６が「１００１」のデバイスについてのポリシーの問い合わせがあった場合、そのデバイス名、接続アプリケーションのアドレス、接続アプリケーションのネットワークインタフェースＩＤ、シリアル番号、デバイス種別に係わらず、排他制御１４０９は「不要」、利用可否１４１０「可能」、利用可能ＩＤ１４１１は２００００００１、２０００００１０等がデバイス情報テーブル２００に記録される。
【００７２】
また、ポリシー番号１４０１が２のポリシーは、ベンダＩＤが「１１０５」でデバイス種別が「Ｂ Ｌｔｄ．」より始まるデバイスのみに対し、自動的に排他制御「必須」で利用可能ＩＤは２０００００１１と設定されるポリシーである。
【００７３】
そして、ポリシー番号１４０１が３のポリシーは、接続アプリケーションのアドレス１４０３が１９２．１６８．１．１で接続アプリケーションのネットワークインタフェースＩＤ１４０４が「００：００：００：００：００：０１」のクライアント装置に接続されているデバイスに対して、自動的に排他制御１４０９は「不問」で利用可否１４１０については「警告」表示をしてすべてのユーザに利用可能と設定されるポリシーである。
【００７４】
また、ポリシー番号１４０１がｎのポリシーは、すべてのデバイスについて利用が禁止される設定のポリシーである。すなわち、ポリシーテーブル１４００に未登録のデバイスについての登録の依頼があった場合、認証管理サーバ１０１は、ポリシー番号１４０１がｎの欄を参照し、デバイス情報テーブル２００に排他制御１４０９は「不要」、利用可否１４１０は「禁止」と設定する。
【００７５】
次にデバイス情報テーブル２００について説明する。デバイス情報テーブル２００は、本システムに接続されている各デバイスのアクセスを管理するために必要な情報を管理するものである。登録される各レコードは、デバイス管理マネージャ１２３から、自身が管理しているデバイスを本システム内で共有可能にする要求（以後、デバイス接続要求と呼ぶ。）とともに送信されるデバイスを特定する各種の情報（以後、デバイス情報と呼ぶ。）に、ポリシーテーブル１４００に登録されているポリシーを加えたものに従って生成される。仮想デバイスマネージャ１２０は、デバイス情報テーブル２００を用いて、各デバイスの利用の可否を制御する。
【００７６】
デバイス管理マネージャ１２３からは、デバイスが接続された際、または、取り外された際、デバイス情報として、送信元のクライアント装置をネットワーク１０３上で特定する情報（本実施形態では、ＩＰアドレスとＭＡＣアドレス）と、当該デバイスを特定する情報（本実施形態では、ベンダＩＤと製品ＩＤとシリアル番号）と、接続されたか、または、取り外されたかを示す情報とが少なくとも送信される。認証管理サーバ１０１は、ポリシーテーブル１４００に従って、レコードを生成し、デバイス情報テーブル２００に登録する。
【００７７】
また、クライアント装置自体がネットワーク１０３から切り離される場合、当該クライアント装置を特定する情報と、切り離されたことを示す情報とが認証管理サーバ１０１に送信される。
【００７８】
認証管理サーバ１０１は、例えば、デバイスが増減した時、クライアント装置が切り離された時、システムを利用する利用者が増減したとき、ネットワークの構成が変更されたときなどの、認証管理サーバ１０１が管理するシステムの構成に変更があったとき、ポリシーテーブル１４００のレコードに変更があったとき、管理者からデバイス情報テーブル２００の更新の指示を受け付けたとき、デバイス情報テーブル２００を更新する。また、後述するように、ステータスについては、所定期間毎に更新される。
【００７９】
図３は、デバイス情報テーブル２００の一例を示す図である。本図に示すように、デバイス情報テーブル２００は、デバイスＩＤ２０１、デバイス名２０２、接続アプリケーションのアドレス２０３、接続アプリケーションのネットワークインタフェースＩＤ２０４、ベンダＩＤ２０５、製品ＩＤ２０６、シリアル番号２０７、デバイス種別２０８、排他制御２０９、ステータス２１０、利用可能ＩＤ２１１、利用ユーザＩＤ２１２を備える。
【００８０】
デバイスＩＤ２０１は、管理する各デバイスを一意に識別するためのもので、新たに登録の要求がある毎に自動的に作成される。また、認証管理サーバ１０１やデバイス管理マネージャ１２３の起動や終了、デバイスの挿抜などのたびに変更される可能性のある一時的なＩＤである。
【００８１】
デバイス名２０２は、デバイスを呼び易くするための名称であり、予め管理者または利用者が設定する。管理者が設定する場合は、ポリシーテーブル１４００にデバイス名を登録しておき、デバイス情報テーブル２００のレコードを生成する際にポリシーテーブル１４００から抽出して登録される。一方、利用者が設定する場合は、デバイス情報に含めて認証管理サーバ１０１に通知される。
【００８２】
接続アプリケーションのアドレス２０３は、デバイスが接続されているクライアント装置（デバイスＡ１５１の例ではＰＣ−Ｄ１１３）のＩＰアドレスが記録される。これらは、デバイス情報として通知される。このアドレスは上記クライアント装置がサブネット間を移動するなどした場合、利用中であっても適宜変更される可能性がある。
【００８３】
ネットワークインタフェースＩＤ２０４は、デバイスが接続されているクライアント装置（デバイスＡ１５１の例ではＰＣ−Ｄ１１３）のネットワークインタフェースのＩＤを示す番号が記録される。本実施形態のようにネットワークがＴＣＰ／ＩＰプロトコルを利用している場合、ネットワークインタフェースＩＤとしてＭＡＣアドレスが使われる。ネットワークインタフェースＩＤ２０４は、接続アプリケーションのアドレスと異なり、機器に固有のものであり、機器が変更にならなければ変更されない。
【００８４】
ベンダＩＤ２０５、製品ＩＤ２０６、シリアル番号２０７は、デバイス自体に予め付与されているデバイスの識別番号で、クライアント装置（デバイスＡ１５１の例ではＰＣ−Ｄ１１３）にデバイスが接続された際、デバイス情報として取得される。これらの情報は、デバイス情報としてクライアント装置から認証管理サーバ１０１に送信される。各デバイスは、ベンダＩＤ、製品ＩＤ、シリアル番号の組により識別される。ベンダＩＤ及び製品ＩＤは、ベンダ及び製品ごとに一意に付けられるＩＤである。また、シリアル番号は、製品一つ一つに個別に付けられる番号である。
【００８５】
デバイス種別２０８は、利用者の理解の為にベンダや管理者が付ける名称である。ベンダが付す場合は、デスクリプタのようなデバイス情報から抽出され、デバイス情報に含めて通知される。一方、管理者が付す場合は、ポリシーデータベース１４００に予め登録される。
【００８６】
排他制御２０９は、デバイスを利用者が利用するとき、他の利用者からの利用を禁止するか否かを示す定義情報である。排他制御２０９が「必須」となっている場合、デバイスの利用に関して排他制御がなされ、デバイスの利用開始から利用者が利用を終了するまで、当該デバイスは他の利用者のアクセスから守られる。排他制御２０９が「可能」となっている場合、デバイスへ情報を送受信している期間のみデバイスは他の利用者の利用から守られる。排他制御２０９が「不要」となっている場合は、排他制御は行われない。本情報は、ポリシーテーブル１４００から抽出され、登録される。
【００８７】
ステータス２１０は、デバイスの利用状況を示す情報である。本情報は、認証管理サーバ１０１が所定時間毎に各接続クライアント装置にポーリングを行い、取得する。ステータス２１０が「占有中」となっている場合、利用者が排他処理をしながら当該デバイスを利用している状態を示す。ステータス２１０が「利用中」となっている場合、利用者が排他処理は行わずに当該デバイスを利用している状態を示す。ステータス２１０が「通信中」となっている場合、利用者が、通信中のみ排他制御を利用し、通信が終了次第速やかに占有状態を解消する状況を示す。ステータス２１０が「不明」となっている場合、例えば、認証管理サーバ１０１への通知無しにデバイス管理マネージャ１２３が通信できなくなった状態を示す。ステータス２１０が「不明」状態になった場合、一定時間を過ぎると認証管理サーバ１０１は、該当するデバイス管理マネージャ１２３の停止と当該デバイス管理マネージャ１２３がインストールされているＰＣ−Ｄ１１３に接続されていたデバイスＡ１５１を停止するよう制御する。ステータス２１０が「切断」となっている場合、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３と通信は出来ているが、デバイス管理マネージャ１２３と当該デバイスＡ１５１との間の通信が出来ない状態を示す。また、ステータス２１０が「未使用」となっている場合は、どのクライアント装置も使用していない状態を示す。
【００８８】
利用可能ＩＤ２１１は、当該デバイスへ接続が許可される利用者もしくはグループのＩＤが記録される。本情報は、ポリシーテーブル１４００から抽出される。複数の利用者もしくはグループに当該デバイスへの接続が許可されている場合は、全ての許可されている利用者もしくはグループのＩＤが登録される。利用可能ＩＤ２１１は、未定義、すなわち、いずれのＩＤも登録されていない状態であってもよい。未定義の場合、いずれの利用者もしくはグループも、接続が許可される。
【００８９】
利用ユーザＩＤ２１２は、現在、当該デバイスを利用している利用者のＩＤが記録される。本情報は、認証管理サーバ１０１が所定時間毎に各接続機器にポーリングを行い、取得する。
【００９０】
次に、認証管理サーバ１０１が保持する利用者情報データベース３００について説明する。本データベース３００は、利用者がネットワーク１０３に接続されている情報センタ１０２外の機器から、情報センタ１０２内の機器への接続を要求した場合、接続を要求する利用者が許可可能な利用者権限を保持しているか否かを判定（認証）するために利用される。本データベースは、予め管理者により登録される。
【００９１】
図４は、認証管理サーバ１０１が保持する利用者情報データベース３００の一例である。本図に示すように、利用者情報データベース３００には、利用者ＩＤ３０１、利用者名３０２、所属グループ３０３、証明書３０４、有効期間３０５、証明書認証可３０６、暗号ハッシュ方式３０７、パスワード３０８、パスワード認証可否３０９の各項目が、ユーザごとに登録される。
【００９２】
利用者ＩＤ３０１は利用者を識別するためのＩＤであり、利用者ごとに予め付与される。利用者の利用権利が変更されなければ通常変更はされない。利用者名３０２は、利用者の名称を示す文字列である。利用者名３０２は、利用情報を表示する際に用いられる。所属グループ３０３は、利用者の所属するグループを示す情報である。本実施形態では、各種の利用権限はグループ単位で割り当てられるよう構成されている。所属グループ３０３は、各利用者が与えられている権限に該当するグループが示される。一人の利用者が複数のグループに所属、すなわち、所属グループ３０３に複数のグループが登録されていてもよい。また、所属グループは未定義であってもよい。未定義の場合、当該利用者には、いずれの利用権限が与えられていないこととなる。
【００９３】
証明書３０４は、利用者の認証に用いる公開鍵証明書を特定する情報である。証明書３０４として記録されている公開鍵証明書は、その有効性が認証管理サーバにおいて検証可能になっているものである必要がある。例えば、認証管理サーバ１０１内に認証局を持ち、その認証局が発行を行うよう構成してもよい。
【００９４】
有効期間３０５は、利用者が、ブレードサーバ１０６内のＰＣやデバイスを利用する権利を持つ期間である。有効期間３０５が未定義の場合、利用者はＰＣを利用する権利がない。有効期間は年、月、日などを用いた期間の設定のほかに毎週月曜日、毎日８時４５分から１７時１５分といった期間の設定も可能である。有効期間３０５は、証明書３０４に示される公開鍵証明書の有効期限とは独立に設定できる。
【００９５】
証明書認証可３０６は、証明書認証を認めるか否かを示す情報である。暗号ハッシュ方式３０７は、認める公開鍵インフラストラクチャを利用して認証する場合の暗号ハッシュの方式の記載である。暗号ハッシュ方式３０７が未定義の場合は、認証管理サーバから暗号ハッシュの方式についての制限はない。この場合であっても、クライアント（利用者が使用するＰＣ等）等に実装されていない方式では認証は行えない。パスワード３０８は、パスワードを利用して認証が行われる場合のパスワードである。パスワード３０８として、ハッシュ値や暗号化などが施された情報が記録される。パスワード認証可否３０９は、パスワードを利用して認証することが可能か不可能かを示す情報である。
【００９６】
ブレードサーバ１０６が認証管理サーバ１０１に認証情報を確認して認証を得るのは、利用者情報データベース３００に基づいたパスワードや公開鍵インフラストラクチャを用いた認証をへて、利用者がブレードサーバ１０６内のＰＣを利用可能な権限を取得した場合である。
【００９７】
本実施形態では、認証は、１）アクセスしてきた利用者が、ブレードサーバ１０６へのアクセスする権限を有する者であるか否か、そして、２）ブレードサーバ１０６内のＰＣ−Ａ１１０が割り当てられた後、当該ＰＣ−Ａ１１０の資源（プログラムや仮想デバイス）を利用する権限を有する者であるか否か、の２段階で行われる。いずれの場合も、利用者は利用者認証用情報を少なくとも含む認証要求をブレードサーバ１０６またはＰＣ−Ａ１１０に送信し、認証要求を受け取ったブレードサーバ１０６またはＰＣ−Ａ１１０は、認証管理サーバ１０１にアクセスし、利用者情報データベース３００に登録されているレコードと照合し、認証を行う。ここで、利用者認証用情報とは、利用者ＩＤおよびパスワード、もしくは、利用者毎に登録された公開鍵情報に対応する署名のことを言う。
【００９８】
次に、情報センタ１０２内の各ＰＣの利用状況の管理に用いられるＰＣ利用管理テーブル４００ついて説明する。図５は、ブレードサーバ１０６が保持する、ＰＣ利用管理テーブル４００の一例である。
【００９９】
ＰＣ利用管理テーブル４００には、情報センタ１０２内の各ＰＣ毎に、ＰＣ名４０１、ネットワーク名４０２、ＩＰアドレス４０３、ＭＡＣアドレス４０４、利用元端末４０５、利用元ネットワーク名４０６、利用元ＩＰアドレス４０７、利用元ＭＡＣアドレス４０８、利用者ＩＤ４０９、ステータス４１０、接続開始時刻４１１、接続終了時刻４１２、動作確認時刻４１３が登録される。
【０１００】
ＰＣ名４０１は、情報センタ１０２内のＰＣを識別するＰＣの名称である。これは、管理者が重複の無いよう予め定めて登録する。ネットワーク名４０２は、ネットワーク上でＰＣを識別する際に利用される名称である。これは、管理者が重複の無いように予め定めて登録する。各ＰＣについて、ネットワーク名４０２とＰＣ名４０１とは同じ名称が付与されても異なる名称が付与されてもよい。
【０１０１】
ＩＰアドレス４０３は、それぞれのＰＣに付与されたＩＰアドレスである。ＭＡＣアドレス４０４は、それぞれのＰＣ上のネットワークインタフェースに一意に定められているアドレスである。
【０１０２】
利用元端末４０５は、現時点でこの情報センタ１０２内のＰＣを遠隔操作しているクライアント装置の名称である。この名称も、管理者が重複の無いよう予め定めて登録する。管理者は名称を自由に設定、変更することができる。当該情報センタ１０２内のＰＣがクライアント装置によって利用されていない場合、利用元端末４０５は未定義となる。利用元ネットワーク名４０６は、ネットワーク１０３上で利用元を識別する際に利用される名称である。管理者が重複の無いよう予め定めて登録する。なお、利用元端末４０５および利用元ネットワーク名とは同じ名称であってもよい。
【０１０３】
利用元ＩＰアドレス４０７は、クライアント装置のＩＰアドレスである。利用元ＭＡＣアドレス４０８は、クライアント装置のネットワークインタフェースに一意に定められたアドレスである。
【０１０４】
利用者ＩＤ４０９は、クライアント装置を利用している利用者の利用者ＩＤである。クライアント装置が使用されていない場合、利用者ＩＤ４０９は未定義となる。
【０１０５】
ステータス４１０は、当該ＰＣが稼動中か否かを示す情報である。ステータス４１０に記録される情報には、「稼動中」、「確認中」、「待機中」の３種類がある。ステータス４１０が「稼動中」であるＰＣは、利用者ＩＤ４０９に登録されているＩＤを有する利用者が利用元端末４０５に特定されているクライアント装置を介して利用中であることを示す。ステータス４１０が「確認中」である場合、認証管理サーバ１０１においてクライアント装置がＰＣを利用しているか否かを確認中である状態、または、確認が完了していない状態であることを示す。ステータス４０８が「待機中」であるＰＣは、クライアント装置がＰＣの利用を待機している状態、すなわち、クライアント装置がＰＣを利用していない状態であることを示している。
【０１０６】
接続開始時刻４１１は、利用者ＩＤ４０９で特定される利用者が利用元端末４０５で特定されるクライアント装置を介してＰＣの操作を開始した時刻を示す。接続終了時刻４１２は、利用者ＩＤ４０９で特定される利用者が利用元端末４０５で特定されるクライアント装置を介して行うＰＣの操作を終了した時刻を示す。動作確認時刻４１３は、仮想デバイスマネージャ１２０から認証管理サーバ１０１に対してチャネルの生成、消滅等の発生した際に行われた通信の最終時刻を示す。
【０１０７】
ブレードサーバ１０６は、構成する各ＰＣの利用状況に変更がある度に、本データベースを更新する。
【０１０８】
次に、本実施形態のデバイス管理システムにおいて、デバイスを共有可能な状態に設定し、設定後にデバイスを共有する処理（以後、デバイス共有処理と呼ぶ。）について説明する。ここでは、利用者がクライアント装置であるＰＣ−Ｄ１１３を利用して情報センタ１０２内のブレードサーバ１０６を構成する機器のうちＰＣ−Ａ１１０を遠隔操作し、ＰＣ−Ｄ１１３に接続されているデバイスＡ１５１を共有可能とする場合を例にあげて説明する。もちろん、他の利用者端末、他のブレードサーバ１０６を構成する機器、他のデバイスであっても、デバイス共有処理の手順は同様である。
【０１０９】
ここでデバイス共有処理とは、下記の２つの状態において、デバイスＡ１５１を，排他的に利用可能にする処理である。
【０１１０】
第１の状態は、デバイスＡ１５１がＰＣ−Ｄ１１３から利用可能であるがＰＣ−Ａ１１０からは利用できない状態であり、第２の状態は、デバイスＡ１５１がネットワークを介してＰＣ−Ａ１１０から利用可能であるが，ＰＣ−Ｄ１１０からは利用できない状態である。
【０１１１】
第１の状態では、ＰＣ−Ａ１１０上で動作するアプリケーションは、デバイスを認識できないが、ＰＣ−Ｄ１１３上で動作するアプリケーションからデバイスＡ１５１へのリクエストは、デバイスＡ１５１に正常に送信され、デバイスＡ１５１からレスポンスが返信される。
【０１１２】
第２の状態では、ＰＣ−Ａ１１０上で動作するアプリケーションからデバイスＡ１５１へのリクエストは、デバイスＡ１５１に正常に送信され、デバイスＡ１５１からレスポンスが返信される。しかし、ＰＣ−Ｄ１１３上で動作するアプリケーションからデバイスＡ１５１へのリクエストは、デバイスに送信されず、デバイス管理マネージャ１２３からエラーを含んだレスポンスが返信される。
【０１１３】
システムが第１の状態で動作するか、第２の状態で動作するかは、利用者の指示により切り替えられる。また、デバイス管理マネージャ１２３と仮想デバイスマネージャ１２０の通信が切断された場合、デバイス管理マネージャ１２３は、システムが第１の状態で動作するよう処理を行う。
【０１１４】
以上に説明したデバイス共有処理により、利用者はＰＣ−Ａ１１０もしくはＰＣ−Ｄ１１３どちらかから独占的（排他的）にデバイスＡ１５１を利用することが可能である。上記のようなリクエストを排他制御する処理を行うことにより、デバイスＡ１５１は、アプリケーションからのリクエストのシーケンス管理を行っている場合や、デバイスの状態遷移の管理をデバイスドライバで行っている場合に、デバイスＡ１５１がデバイスドライバからの要求に誤動作を起さない。
【０１１５】
図６は、上記例におけるデバイス共有処理の処理フローである。
【０１１６】
利用者はＰＣ−Ｄ１１３に起動指示を行う（５０１）。利用者からの起動指示を受け付けたＰＣ−Ｄ１１３は、ストレージ１６３からＯＳやアプリケーションをロードし起動する（５０２）。ここで、ＯＳやアプリケーションは、ネットワーク上に存在するストレージからロードしても良い。このとき、デバイス管理マネージャ１２３も起動される。
【０１１７】
ステップ５０２で起動されたデバイス管理マネージャ１２３は、ＰＣ−Ｄ１１３に接続されているデバイスＡ１５１の情報を取得する（５０３）。接続されているデバイスの情報の取得は、起動時に、ホスト（本実施形態では、ＰＣ−Ｄ１１３）側からの要求に応えてデバイス側からホストにデバイス全体の情報に関するデータであるデスクリプタの情報が送信されることにより行なわれる（５０４）。デスクリプタには、例えば、デバイスの種別をあらわすコード、デバイスのクラスのコード、当該デバイスの製造ベンダのＩＤ、製品ＩＤ、シリアル番号などが含まれる。ＰＣ−Ｄ１１３ではステップ５０３で取得したデバイスの情報にデータに基づいてデバイスＡ１５１を駆動するデバイスドライバが読み込まれ、動作する。デバイス管理マネージャ１２３は、管理するデバイス（ここでは、デバイスＡ１５１）のドライバもしくはフィルタドライバの機能を実現することにより、本デバイスを本システム内で共有可能な状態とし、当該デバイスに送受信される情報を制御する。
【０１１８】
デバイス管理マネージャ１２３は、ＰＣ−Ｄ１１３に接続されているデバイスＡ１５１の動作を確認した後、デバイス接続要求とともにステップ５０３において取得したデバイスＡ１５１のデバイスの情報から抽出したデバイス情報を認証管理サーバ１０１に送信する（５０４）。認証管理サーバ１０１では、デバイス接続要求およびデバイス情報を受信すると、ポリシーテーブル１４００内のデータと照合し、デバイス接続要求のあったデバイスに関するポリシーをデバイス情報管理テーブル２００に登録する（５０５）。
【０１１９】
一方、ＰＣ−Ｄ１１３の起動が完了すると、ＰＣ−Ｄ１１３は、起動が完了した旨をディスプレィに表示する（５０６）。利用者は、起動が完了したことを確認すると、情報センタ１０２内のブレードサーバ１０６を構成するＰＣの利用を開始するよう指示を行う。本実施形態では、利用開始の指示は、利用者ＩＤおよびパスワードの入力である。
【０１２０】
ＰＣ−Ｄ１１３は、利用者から利用開始の指示を受け付ける（５０７）と、ブレードサーバ１０６を利用する要求（以後、サーバ利用開始要求と呼ぶ。）として、受け付けた利用者認証用情報をブレードサーバ１０６に送信する（５０８）。
【０１２１】
ブレードサーバ１０６は、サーバ利用開始要求を受け取ると、利用者がブレードサーバ１０６の適切な利用権限を持つかどうかの認証を行う（５０９）。具体的には、ブレードサーバ１０６は、利用開始要求に含まれる利用者ＩＤおよびパスワードを認証管理サーバ１０１に送信し、認証を依頼する（５１０）。認証管理サーバ１０１では、受け取った利用者認証用情報を利用者情報データベースと照合し、認証を行い、結果をブレードサーバ１０６に返信する。ここでは、利用者がブレードサーバ１０６自体にアクセス権限を有する者であるか否かを認証する。
【０１２２】
ブレードサーバ１０６が、認証管理サーバ１０１から認証成功の返信を受けた場合、ブレードサーバ１０６は、アクセスしてきた利用者がブレードサーバ１０６の利用を許可されたものと判断し、ブレードサーバ１０６を構成するＰＣの中から、当該利用者が利用すべきＰＣを決定する。ＰＣは、利用順序に応じて適切に割り当てられるか、予め利用者に１対１などに割り付けられるか、利用者に割り当てられた何らかの権限に応じて割り付けられるか、のいずれの形態であってもよい。いずれの形態を取るかは管理者が決定する。ここでは、ブレードサーバ１０６が、アクセスしてきた利用者にＰＣ−Ａ１１０を割り当てたものとして、説明する。他のＰＣを割り当てた場合も、処理は同様である。
【０１２３】
ブレードサーバ１０６は、ＰＣ−Ｄ１１３に割り当てるＰＣをＰＣ−Ａ１１０と決定すると、ＰＣ−Ａ１１０の起動状況の確認を行う（５１１）。ＰＣ−Ａ１１０が起動していない場合、ＰＣ−Ａ１１０を起動する要求をＰＣ−Ａ１１０に行う（５１２）。送信した要求に従ってＰＣ−Ａ１１０が起動すると（５１３）、ＰＣ−Ａ１１０は、起動完了を示す情報をブレードサーバ１０６に通知する（５１４）。なお、ＰＣ−Ａ１１０が既に起動している場合、例えば、ＰＣ−Ａ１１０がサーバ機能を持ち、複数人が同時に利用できる環境であり、常時通電されている場合など、ステップ５１１からのＰＣの起動操作は不要である。
【０１２４】
なお、ＰＣの稼動状況は、ＰＣ利用管理テーブル４００にアクセスし、該当するＰＣ名４０１のステータス４１０を確認することにより行う。起動後、割り当てたクライアント装置を、該当するＰＣ名４０１の利用元端末４０５として追記する。
【０１２５】
一方、ＰＣ−Ａ１１０が起動すると、ＰＣ−Ａ１１０内にインストールされている仮想デバイスマネージャ１２０は、利用可能なデバイスを確認する（５１５）。具体的には、仮想デバイスマネージャ１２０は、認証管理サーバ１０１に、仮想デバイスマネージャ１２０が稼動するＰＣ（ここでは、ＰＣ−Ａ１１０）が利用可能なデバイスの調査の要求（以後、利用可能デバイス調査要求と呼ぶ。）を送信する（５１６）。
【０１２６】
利用可能デバイス調査要求を受け取った認証管理サーバ１０１は、デバイスの調査と確認とを行う（５１７）。具体的には、利用可能デバイス調査要求を受け取った認証管理サーバ１０１は、まず、新規デバイスが新たに登録されているか否かを確認し、既に保持しているデバイス情報テーブル２００の更新を行う（５１８）。認証管理サーバ１０１は、利用可能デバイス調査要求を受けて、現時点でデバイス情報テーブル２００に登録されている各デバイスについて、当該デバイスが接続されているそれぞれのＰＣまたはハブなどのクライアント装置のデバイス管理マネージャに向けて、登録されている各デバイスが依然として利用可能か否かの問い合わせを行う（５１９）。
【０１２７】
認証管理サーバ１０１から問合せを受けた各クライアント装置のデバイス管理マネージャは、現時点での問合せを受けたデバイスの利用の可否を認証管理サーバ１０１に返信する（５２０）。なお、各デバイス管理マネージャは、利用の可否を示す情報として、当該デバイスが既に切断されていた場合は、切断されていることを、接続されている場合は、各デバイスの「占有中」、「利用中」、「通信中」といった現在のステータスを返信する。認証管理サーバ１０１は各デバイス管理マネージャから受け取った情報を用いて、デバイス情報テーブル２００を更新する。切断されているとの情報を受けた場合は、当該デバイスに関するレコードを削除する。
【０１２８】
そして、認証管理サーバ１０１は、デバイス情報テーブル２００に登録されているデバイスを現時点での利用可能デバイスとして、問合せ元の仮想デバイスマネージャ１２０に送信する（５２１）。
【０１２９】
次に、仮想デバイスマネージャ２００は、デバイス情報テーブル２００の情報に基づき、デバイスを共有する処理を行う。現時点では、仮想デバイスマネージャ１２０は、利用者の認証を行っていない状態なので、利用可能デバイスのチェックを行う際にデバイス情報テーブルにおいて利用可能ＩＤの制限のあるデバイスについては共有処理を行うことができない。従って、仮想デバイスマネージャ２００は、デバイス情報テーブル２００に登録されているデバイスであって、利用可能ＩＤ２１１が未定義のデバイスを抽出し、これらの利用可能なデバイスとの間で、チャネルを生成するなどの通信準備を行う（５２２、５２３）。なお、認証管理サーバ１０１は、仮想デバイスマネージャ１２０から利用可能デバイス調査要求を受けた場合（５１６）、各デバイス管理マネージャ１２３に問い合わせを行わず、その時点でデバイス情報テーブル２００に登録されているデバイスであって、利用可能ＩＤ２１１が未定義のデバイスを抽出し、問合せ元の仮想デバイスマネージャ１２０に返信するよう構成してもよい（５２１）。この場合、ステップ５１７〜５２０の処理は行われない。
【０１３０】
なお、チャネルの生成は、仮想デバイスマネージャ１２０が、ステップ５２１で利用可能デバイスとして受け取った各デバイスが接続されているクライアント装置が備えるデバイス管理マネージャとの間で、お互いのＩＰアドレスと認証管理サーバ１０１から与えられた情報とを元に相互認証、鍵交換を行い、暗号通信路を形成することにより行なわれる（５２３）。
【０１３１】
相互認証の方法の一例として、認証管理サーバ１０１が、デバイス管理マネージャ１２３についてはデバイス情報送受信時に、また仮想デバイスマネージャ１２０については利用デバイス返信時に、それぞれプリシェアードキー（事前共有鍵）を安全に送付しておき、その事前共有鍵を元に認証を行う方式が挙げられる。相互認証の方式は特に本方法に限らず、チャネルの生成を行っている相手が、特定のデバイス管理マネージャと仮想デバイスマネージャとであることが確認できれば良い。
【０１３２】
相互認証が終了した後、仮想デバイスマネージャ１２０とデバイス管理マネージャとの間でＩＤ情報およびデータをやり取りするための暗号用の鍵が交換される。以降、ここで交換された暗号用の鍵を用いてデバイス管理マネージャと仮想デバイスマネージャ１２０とが通信を行う。このため、第三者にはＩＤ情報およびデータをやり取りする通信は盗聴不可能になる。この暗号用の鍵は、固定値でもよいが、１回の利用ごともしくは一定の期間で破棄され、新たな暗号用の鍵が生成されるようにしてもよい。
【０１３３】
本実施形態では、このように仮想デバイスマネージャ１２０とデバイス管理マネージャ１２３との間でチャネルが生成された場合、当該デバイス管理マネージャ１２３が管理するデバイスが共有可能な状態となったと呼ぶ。このような第三者に盗聴不可能な通信路（チャネル）により、ＰＣ−Ａ１１０は、ＰＣ−Ａ１１０にデバイスＡ１５１が直接接続された場合と同様に、デバイスＡ１５１を制御することができる。
【０１３４】
すなわち、本実施形態において、「デバイスの共有」とは、ＰＣ−Ａ１１０にデバイスＡ１５１が直接接続された時と同様にＰＣ−Ａ１１０が処理を行うことができるようＰＣ−Ａ１１０が動作することである。例えば、ＰＣ−Ｄ１１３に接続されているデバイスＡ１５１について「デバイスの共有」が実現された場合、デバイスＡ１５１からデバイス管理マネージャ１２３、仮想デバイスマネージャ１２０を介してＰＣ−Ａ１１０がデバイスＡ１５１内に設定されている通信方式やデスクリプタを読み出したり、リセットしたりすることができる。
【０１３５】
なお、ＰＣ−Ａ１１０において、デバイスＡ１５１を過去に利用したことがない場合、必要なデバイスドライバをインストールする。一般的には、デバイスの共有が行われた際、ＰＣ−Ａ１１０上で動作しているオペレーティングシステムが新しく追加されたデバイスを自動的に認識し、当該デバイスの動作に必要なデバイスドライバのインストール作業を行う。このようなインストール作業は、ＰＣ−Ａ１１０において初めて使用するデバイスがＰＣ−Ａ１１０と他の機器との間で共有された際に発生し、過去に使用したデバイスであれば、既に必要なドライバがＰＣ−Ａ１１０にインストールされているため、発生しない。
【０１３６】
なお、ＰＣ−Ａ１１０上で動作しているオペレーティングシステムが上記のような自動的にデバイスを認識し、必要なデバイスドライバのインストールを行う機能を持たない場合は、管理者または利用者が手動でデバイスドライバのインストールを行い、デバイスが利用可能となるようＰＣ−Ａ１１０の設定を変更する。
【０１３７】
また、複数の利用者がデバイスＡ１５１を共有している場合、各利用者がそれぞれ独立にリセットを指示したり、通信したりする場合がある。このような場合は、デバイス管理マネージャ１２３は、リセットを受け付けないような手順に変更したり、すでにデバイスＡ１５１より取得し、デバイス管理マネージャ１２３内に保存していた情報を代わりに送信したりするよう構成する。具体的には、仮想デバイスマネージャ１２０からの特定の通信に対し、予め定められた応答を行う。
【０１３８】
なお、ここで生成されたチャネルの情報は、認証管理サーバ１０１に送信され（５９１）、認証管理サーバ１０１では、受け取った情報を用いてデバイス情報テーブル２００を更新する（５９２）。
【０１３９】
以上の処理によりＰＣ−Ａ１１０がＰＣ−Ｄ１１３の利用者により利用可能となる。
【０１４０】
次に、利用者がＰＣ−Ｄ１１３を介してＰＣ−Ａ１１０の利用を要求する。すなわち、ＰＣ−Ｄ１１３は利用者からＰＣ−Ａ１１０を利用する指示を受け付けると、ＰＣ−Ｄ１１３はＰＣを利用する要求（以後、ＰＣ利用要求と呼ぶ、）を生成し、それをＰＣ−Ａ１１０に送信する（５２４）。このＰＣ利用要求には、利用者を特定する情報、例えば、利用者ＩＤ、パスワードなどが含まれる。
【０１４１】
ＰＣ−Ａ１１０は、ＰＣ利用者要求を受け取り、ログイン処理を行う（５２５）。ログイン処理は、まず、ＰＣ−Ａ１１０は、利用者要求に含まれる利用者を特定する情報を認証管理サーバ１０１に送信する。認証管理サーバ１０１は、受け取った利用者を特定する情報と利用者情報データベース３００に格納されている情報とを対比し、利用者の認証を行い、結果をＰＣ−Ａ１１０に返信する。なお、予め、利用者情報データベース３００の中の項目のうち、ログイン時の利用者認証に必要な項目のみＰＣ−Ａ１１０も保持し、ログイン時の認証をＰＣ−Ａ１１０において行うよう構成してもよい。
【０１４２】
次に、仮想デバイスマネージャ１２０は、利用可能デバイスのチェックを行う。ここでは、仮想デバイスマネージャ１２０は、ログインした利用者についての利用可能デバイスを抽出する。利用可能デバイスを抽出する手順は、上記５１６で説明したものと基本的に同様である。ログインした利用者のＩＤも問い合わせ時に認証管理サーバ１０１に送信し、当該利用者のＩＤが利用可能ＩＤとして登録されているもののみの返信を受けてもよい。
【０１４３】
認証管理サーバ１０１は、上述の処理と同様に、デバイス情報テーブル２００に登録されているデバイス全てについて、当該デバイスが接続されているクライアント装置のデバイス管理マネージャに最新の情報を問い合わせ、返信を受け、デバイス情報テーブル２００を更新した後、問合せ元の仮想デバイスマネージャ１２０に返信する（５２９〜５３２）。なお、上述同様、認証管理サーバ１０１は、利用可能デバイス調査要求に応じ、デバイス情報テーブル２００を参照し、現時点で当該利用者に利用可能なものとして登録されているデバイスを、問合せ元の仮想デバイスマネージャ１２０に返信するよう構成してもよい（５３２）。
【０１４４】
初回の利用可能デバイスのチェック（５１６〜５２１）では、利用者が特定されていなかったので、利用可能ＩＤが限定されているデバイスについては、共有処理、すなわち、通信路を設定することができなかった。しかし、利用者のログイン（５２５）以降は、利用可能ＩＤの中に利用者のＩＤもしくは利用者の所属するグループのＩＤが入っているデバイスは利用が可能になる。従って、この時点で新たに利用が可能となったデバイスとの間で、上述と同様、通信路（チャネル）を開設する（５３３〜５３４）。
【０１４５】
なお、利用可能デバイスとの通信準備（５３３）の段階で、利用可能デバイスの一覧をＰＣ−Ａ１１０の画面、ＰＣ−Ｄ１１３、または、情報センタ１０２内の管理者が確認可能な画面に表示するよう構成してもよい。この場合、これらの画面には、現在共有されているデバイスと、接続可能なデバイスなどのリストが表示されることとなる。仮想デバイスマネージャ１２０が保持している前回終了時刻にデバイス共有リストにあり、現在利用可能なデバイスは利用者の指示無しにチャネルの生成を行うこと、すなわち、デバイスの共有を行うことができる。デバイスの共有を行うことが可能なデバイスについての共有設定を、利用者の指示無しに行うか否かは、管理者または利用者により設定できるよう構成することが可能である。
【０１４６】
生成されたチャネルの情報は、認証管理サーバ１０１に送信される（５９３）。認証管理サーバ１０１では、受け取ったチャネルの情報に従ってデバイス情報テーブル２００を更新する（５９４）。その後、ＰＣ−Ａ１１０の利用が開始される（５３５）。
【０１４７】
ここで、利用可能デバイスのチェック、利用可能デバイス調査要求、デバイスの調査と確認、デバイス利用可不可問合せ、デバイス情報取得、デバイス情報送信利用可能デバイス返信（５２６〜５３４）、チャネル生成情報の送信５９３、およびテーブルの更新５９４は、ＰＣの利用（５３５）の間中適宜繰り返し実行され、認証管理サーバ１０１の持つデバイス情報テーブルは常に最新の状態に更新され続ける。
【０１４８】
ここで、利用者がログインした後の仮想デバイスマネージャ１２０による利用可能デバイスのチェックは、定期的に行うことが望ましい。仮想デバイスマネージャ１２０は、定期的にデバイス情報テーブル２００を確認し、ステータスの変更による共有の可否の変化を確認する。
【０１４９】
一方デバイス情報テーブル２００は、デバイス管理マネージャ１２０により、デバイスの接続状況の変化、ステータスの変化など、デバイスに関する状態の変化が発生する毎に、変化後の状態を示す情報とともに更新するよう認証管理サーバ１０１に通知がなされる。
【０１５０】
以上の処理を経て、デバイス管理マネージャ１２３と仮想デバイスマネージャ１２０とが動作し、通信することによりデバイスＡ１５１は、ＰＣ−Ａ１１０のデバイスとして動作することが出来る。すなわち、デバイスＡ１５１について、デバイスの共有が実現する。
【０１５１】
次に、本実施形態のデバイス管理システムにおけるデバイス共有終了時の処理について説明する。図７は、本実施形態のデバイス共有処理終了時の処理フローである。
【０１５２】
本図に示す通り、利用者はＰＣ−Ｄ１１３を利用してＰＣ−Ａ１１０を遠隔操作し、デバイスＡ１５１の利用を終了し、他の利用者にデバイスＡ１５１を解放する。
【０１５３】
利用者は、ＰＣ−Ｄ１１３に対しデバイス利用終了指示を行う（６０１）。ＰＣ−Ｄ１１３は、利用者よりデバイス利用終了の指示を受け取ると、仮想デバイスマネージャ１２０にデバイス利用終了の要求（以後、デバイス利用終了要求と呼ぶ。）を送信する（６０２）。仮想デバイスマネージャ１２０は、デバイス利用終了要求を受け取ると、利用終了デバイスのチェックを行う（６０３）。具体的には、仮想デバイスマネージャ１２０は、ＰＣ−Ａ１１０において、デバイスの利用を終了してよいかどうか判断する。
【０１５４】
例えば、ＰＣ−Ａ１１０上のアプリケーションや他のクライアント装置がデバイス利用終了要求の対象デバイスを利用中である場合、利用は終了できない。この場合は、これらのアプリケーションや他のクライアント装置がデバイス利用終了要求の対象デバイスの利用を終了するまで終了処理を待つ。この場合、ＰＣ−Ｄ１１３に指示されたデバイスの終了はできない旨を通知する。ＰＣ−Ｄ１１３は受け取った通知を利用者に表示などにより通知する。
【０１５５】
なお、この通知は必ずしも行う必要はなく、例えば、所定時間以上待機後であっても利用終了が行えない場合のみ通知するよう構成してもよい。もちろん、利用終了デバイスのチェック（６０３）において、利用終了が可能な場合は、デバイスを特定する情報とともに、当該デバイスの利用を終了した旨の通知である利用終了デバイス送信を、認証管理サーバ１０１に行う（６０４）。
【０１５６】
次に、認証管理サーバ１０１は、利用終了デバイス送信を受けて、デバイスの調査と確認を行う（６０５）。具体的には、デバイス利用終了要求元のデバイス管理マネージャ１２３に、指示されたデバイスの利用が終了したことを示す情報であるデバイス解放情報送信を行う（６０６）。
【０１５７】
デバイス管理マネージャ１２３は、デバイスの調査と確認を行う（６０７）。ここでは、デバイスからの応答の有無を調べるなどの調査が行われる。応答がなければ、デバイス情報テーブル２００の該当するデバイスのステータスを「不明」とする。
【０１５８】
一方、デバイスから通常の応答が得られた場合は、デバイス管理マネージャ１２３は、仮想デバイスマネージャ１２０との間に確立されていたチャネルを破棄し（６０８）、チャネルの破棄に成功した場合、認証管理サーバ１０１にチャネルの破棄を終えたことを示す情報であるチャネル破棄情報を送信する（６０９）。
【０１５９】
認証管理サーバ１０１は、チャネル破棄情報を受け、デバイス情報テーブル２００の更新（６１０）を行う。すなわち、この時点で、認証管理サーバ１０１は、チャネルが破棄されたデバイスについて、デバイス情報テーブル２００のステータス２１０を、例えば、「占有中」、「利用中」、「通信中」などから、「未使用」に変更する。
【０１６０】
認証管理サーバ１０１、デバイス管理マネージャ１２３および仮想デバイスマネージャ１２０は、図６および図７を用いて説明した一連の動作において送信もしくは受信したデータを、それぞれログ１９１、１７３、１７０としてストレージ１９０、１６３、１６０に記録する。
【０１６１】
次に、本実施形態のデバイス管理システムのデバイス共有処理におけるＰＣ−Ａ１１０側の擬似バスドライバ１５０４および通信プログラム１５０８、ＰＣ−Ｄ１１３側の通信プログラム１５１０およびフィルタドライバ１５１４の処理の詳細について説明する。
【０１６２】
図１４は、本実施形態のデバイス共有処理の中のＰＣ−Ｄ１１３起動時(図６の５０２）のフィルタドライバ１５１４及び通信プログラム１５１０の処理を説明するための図である。
【０１６３】
利用者からＰＣ−Ｄ１１３の起動の指示を受け取ると、まず、デバイス管理マネージャ１２３は、通信プログラム１５１０をＰＣ−Ｄ１１３のメモリ上にロードして起動させる（１６０５）。また、同様にフィルタドライバ１５１４を起動する（１６０６）。通信プログラム１５１０は、フィルタドライバのオープン処理を行い（１６０７）、フィルタドライバ１５１４は、通信プログラム１５１０から利用可能な状態となる。次に通信プログラム１５１０からイベント待ち要求がフィルタドライバ１５１４に送信され（１６０８）、フィルタドライバ１５１４は、イベント待ち状態となる（１６０９）。
【０１６４】
イベント待ち状態においては、フィルタドライバ１５１４は、デバイスＡ１５１より発せられた割り込みを通信プログラム１５１０に送信することが可能であり、通信プログラム１５１０は、フィルタドライバ１５１４へ命令を送信することが可能である。なお、イベント待ち状態において、フィルタドライバ１５１４がＰＣ−Ｄ１１３上に保存されたデータを読み込むか、ＧＵＩアプリケーション１５０９より入力される利用者の指示を通信アプリケーション１５１０を介して受け取ることにより、デバイスＡ１５１より発せられた割り込みをデバイスクラスドライバ１５１３に送信する設定とすることが出来る。デバイスクラスドライバ１５１３に割込みを送信する設定の場合、図６の起動（５０２）後は、デバイスＡ１５１をＰＣ−Ｄ１１３より直接操作できる。ここで、通信プログラム１５１０がフィルタドライバ１５１４のオープンに失敗した場合、通信プログラム１５１０は、ＧＵＩアプリケーション１５０９にフィルタドライバ１５１４のオープンに失敗した旨を通知すると共に、ＰＣ−Ｄ１１３内のログにエラー情報を記録し、認証管理サーバ１０１にエラーを報告する。ＧＵＩアプリケーション１５０９は、フィルタドライバ１５１４のオープンに失敗した旨の通知を受けると、それを示す画面を図示しない表示装置に表示させる。
【０１６５】
次にＰＣ−Ａ１１０の起動時（図６の５１３）の擬似バスドライバ１５０４及び通信プログラム１５０８の処理について説明する。図１５は、本実施形態のデバイス共有処理の中のＰＣ−Ａ１１０起動時(図６の５１３）の擬似バスドライバ１５０４及び通信プログラム１５０８の処理を説明するための図である。
【０１６６】
利用者からＰＣ−Ａ１１０の起動の指示を受け取ると、仮想デバイスマネージャ１２０は、まず、擬似バスドライバ１５０４をＰＣ−Ａ１１０のメモリ上にロードして起動する（１６０１）。次に、擬似バスドライバ１５０４は、内部にエニュメレータ１５０６を作成する（１６０２）。次に、仮想デバイスマネージャ１２０は、通信プログラム１６０３をＰＣ−Ａ１１０のメモリ上にロードして起動する（１６０３）。通信プログラム１５０８は、擬似バスドライバ１５０４のオープン処理を行い（１６０４）、擬似バスドライバ１５０４は、通信プログラム１５０８から利用可能な状態となる。ここで、通信プログラム１５０８が擬似バスドライバ１５０４のオープンに失敗した場合、通信プログラム１５０８は、ＧＵＩアプリケーション１５０７に擬似バスドライバ１５０４のオープンに失敗した旨を通知すると共に、ＰＣ−Ａ１１０内のログにエラー情報を記録し、認証管理サーバ１０１にエラーを報告する。ＧＵＩアプリケーション１５０９は、フィルタドライバ１５１４のオープンに失敗した旨の通知を受けると、それを示す画面を図示しない表示装置に表示させる。
【０１６７】
次に、チャネル生成（図６の５２３および５３４）における擬似バスドライバ１５０４、通信プログラム１５０８、通信プログラム１５１０およびフィルタドライバ１５１４にてＰＣ−Ａ１１０の仮想デバイスマネージャ１２０とＰＣ−Ｄ１１３のデバイス管理マネージャ１２３との間にチャネルを生成する処理について説明する。図１６は、本実施形態のデバイス共有処理の中のチャネル生成時の擬似バスドライバ１５０４、通信プログラム１５０８、通信プログラム１５１０およびフィルタドライバ１５１４の処理を説明するための図である。
【０１６８】
チャネルの生成時は、まず通信プログラム１５０８が、チャネル生成要求を通信プログラム１５１０に送信する（１６１１）。次に通信プログラム１５１０がチャネル生成要求に対する応答を送信する（１６１２）。チャネル生成要求１６１１には、通信プログラム１５０８と通信プログラム１５１０との間で行う暗号通信に利用される鍵を選定するための情報が含まれる。また、チャネル生成要求に対する応答１６１２には、通信プログラム１５０８と通信プログラム１５１０との間で行う暗号通信に利用される鍵を決定するための情報が含まれる。
【０１６９】
チャネル生成要求１６１１及びチャネル生成要求に対する応答１６１２の送受信を経て通信プログラム１５０８及び通信プログラム１５１０は、２者の通信内容を傍受されても通信内容が露呈しないチャネル（暗号通信路）を生成し、通信を開始する。なお、チャネル生成要求１６１１及びチャネル生成要求に対する応答１６１２で用いられる暗号鍵情報として、通信プログラム１５０８及び通信プログラム１５１０で独自に生成する暗号鍵情報、ＧＵＩアプリケーション１５０７及びＧＵＩアプリケーション１５０９が独自に入手する暗号鍵情報、すでにＰＣ−Ａ１１０もしくはＰＣ−Ｄ１１３内に保存されている暗号鍵情報、認証管理サーバ１０１などが生成する暗号鍵情報を用いてもよい。
【０１７０】
チャネル生成要求１６１１および応答１６１２の送受信後、通信プログラム１５０８は、受信イベント待ち状態となる（１６１３）。また、通信プログラム１５１０は、フィルタドライバ１５１４にフィルタ開始要求１６１４を送信する。フィルタ開始要求をフィルタドライバ１５１４が受信した後は、フィルタ処理が開始され（１６１５）、フィルタドライバ１５１４は、物理バスドライバ１５１５を介して入出力されるデバイスＡ１５１のデータを独占的に通信プログラム１５１０が扱えるようにする。次に、通信プログラム１５１０は、受信イベント待ち（１６１６）状態となる。
【０１７１】
ここで、フィルタドライバ１５１４が、フィルタ開始要求を受信し、フィルタ処理を開始(１６１５)する際の、デバイスＡ１５１の初期化処理について説明する。
【０１７２】
フィルタ処理が開始されると、デバイスクラスドライバ１５０３からのリクエストが、フィルタドライバ１５１４を経てデバイスＡ１５１に送信され、ＰＣ−Ａ１１０よりデバイスＡ１５１が利用可能となる。フィルタドライバ１５１４がフィルタ開始要求を受信した際に、ＰＣ−Ｄ１１３がデバイスＡ１５１を利用中であると、処理の競合が生じる。これを避けるため、本実施形態のデバイス管理システムにおいては、フィルタドライバ１５１４がフィルタ処理を開始する際、以下に示すようにＰＣ−Ｄ１１３からのリクエストのキャンセル処理とデバイスＡ１５１の初期化処理とを行い、デバイスＡ１５１に対するＰＣ−Ａ１１０とＰＣ−Ｄ１１３とからのリクエストに競合が発生しないよう管理する。以下に、処理の詳細を説明する。
【０１７３】
図２２は、本実施形態のデバイス管理システムにおけるフィルタ開始時のＯＳおよび各デバイスドライバの処理及び通信を説明するフロー図である。
【０１７４】
フィルタ開始要求１７０４を受け、フィルタ処理を開始する際、フィルタドライバ１５１４は、デバイスＡ１５１に対する発行済みのリクエストのうち、処理が終了していないリクエストのキャンセル処理を行うため、キャンセル要求をデバイスクラスドライバ１５１３に送信する（２２０１）。
【０１７５】
全ての発行済みのリクエストのキャンセル処理が終わると、フィルタドライバ１５１４は、デバイスＡ１５１が通信プログラム１５１０から送信されるリクエストに対して正常に反応するように、デバイスＡ１５１の初期化を行う（２２０２）。
【０１７６】
初期化は、デバイスＡ１５１が抜き差しされたような通知をＯＳ１７０２に対して送信する、デバイスＡ１５１を一旦無効化した後に改めて有効化する命令を発行する、などの方法により行われる。
【０１７７】
フィルタドライバ１５１４がこの初期化を行うことにより、ＰＣ−Ｄ１１３上では、デバイスＡ１５１がＰＣ−Ｄ１１３から切断後に再接続された場合と同様の処理が行われる。具体的には、ＯＳ１７０２からデバイスクラスドライバ１５１３を介してＩＤ等データの要求（初期化要求）がデバイスＡ１５１に送信される（２２０３〜２２０５）。デバイスＡ１５１はすべてのＩＤ等データの要求に対する返答をデバイスクラスドライバ１５１３に対して送信する（２２０６〜２２０８）。なお、フィルタドライバ１５１４が初期化要求を受け取った際、受け取った初期化要求をデバイスＡ１５１に送信せずに保持しているデバイスＡ１５１のＩＤ等データを要求に対する返答としてフィルタドライバ１５１４からデバイスクラスドライバ１５１３に送信するよう構成してもよい。ここで、フィルタドライバ１５１４が保持しているデバイスＡ１５１のＩＤ等データは、前回のプラグイン処理時などに取得したものである。
【０１７８】
初期化要求の処理が終了した後、デバイスＡ１５１に対するリクエストがデバイスクラスドライバ１５１３から送信された場合（２２０９）、フィルタドライバ１５１４は、デバイスＡ１５１は存在しているが、処理が出来ないことを示すエラーデータをデバイスクラスドライバ１５１３に送信する（２２１０）。このエラーデータは、例えば、「デバイスＡ１５１内に適切なメディアが挿入されていない」、「デバイスＡ１５１が準備中である」といったものであり、デバイスＡ１５１の製造元、種別に対応したメッセージが選択される。
【０１７９】
処理２２１０が行われた以降は、フィルタドライバ１５１４は、デバイスクラスドライバ１５１３から送信されたリクエストに対して、処理できないことを示すエラーデータを含んだレスポンスをデバイスクラスドライバ１５１３に返信することにより、デバイスクラスドライバ１５１３からのリクエストの遮断を行う。
【０１８０】
以降、システムは前述した第２の状態（デバイスＡ１５１がＰＣ−Ａ１１０から利用可能であるが，ＰＣ−Ｄ１１３からは利用できない）で動作するように，制御が切り替わる。より具体的には，ＰＣ−Ａ１１０上で動作するアプリケーションからデバイスＡ１５１へのリクエストは、デバイスＡ１５１に送信されて処理され，デバイスＡ１５１からレスポンスが返信されるが、ＰＣ−Ｄ１１３上で動作するアプリケーションからデバイスＡ１５１へのリクエストは、デバイスに送信されず、デバイス管理マネージャ１２３からエラーを含んだレスポンスが返信されるようになる。
【０１８１】
フィルタドライバ１５１４がデバイスクラスドライバ１５１３からのリクエストの送信に対して適切なエラーを返答できる状態になると、フィルタドライバ１５１４は、擬似バスドライバ１５１４に対して、デバイスＡ１５１が接続された旨を通知する。この処理は、図１７に示す１７０４〜１７１９と同様の処理である。
【０１８２】
以上の処理をフィルタドライバ１５１４が行うことにより、ＰＣ−Ｄ１１３からのデバイスＡ１５１へのリクエストと独立して、デバイスＡ１５１をＰＣ−Ａ１１０に直接接続されているのと同様に利用者に利用させることが出来る。すなわち、物理バスドライバ１５１５を介して入出力されるデバイスＡ１５１のデータを独占的に通信プログラム１５１０が扱うことができるよう、制御することができる。
【０１８３】
なお、図６のチャネルの生成５２３及び５３４の処理では、ＰＣ−Ｄ１１３上の複数のデバイスがフィルタされる場合、図６の利用可能デバイス返信５２１もしくは利用可能デバイス返信５３２により利用可能デバイスであると仮想デバイスマネージャ１２０において判断されたデバイスに対応したフィルタドライバ１５１４だけに対してフィルタ開始の処理が行われ、ＰＣ−Ａ１１０からＰＣ−Ｄ１１３に接続されたデバイスが利用可能となる。
【０１８４】
次に、図６の処理を終え、デバイスＡ１５１が共有可能となりＰＣ−Ａ１１０のデバイスとして動作させることができるようになった後の、デバイス管理マネージャ１２３と仮想デバイスマネージャ１２０との間のデータの送受信制御の詳細について図８を用いて説明する。ここでは、ＰＣ−Ａ１１０およびＰＣ−Ｄ１１３がネットワーク１０３を介して通信を行っている状態で、ＰＣ−Ｄ１１３に接続されたデバイスＡ１５１を利用者がＰＣ−Ａ１１０から利用しようとしているものとする。
【０１８５】
ＰＣ−Ｄ１１３にデバイスＡ１５１が接続されると、デバイスＡ１５１が接続されているＰＣ−Ｄ１１３の物理バス（本実施形態ではＵＳＢバス）用の物理バスドライバ１５１５がデバイスＡ１５１を検知し、図示しないＯＳに対してデバイスＡ１５１に対応したデバイスドライバの利用準備を行うようにメモリ上にプログラム（デバイスドライバ）をロードするよう指示を出す。そして、ＯＳは予め定められたデバイスドライバ群をロードする。
【０１８６】
通常、アプリケーション１５１１とデバイスＡ１５１とのデータの送受信には、上位ドライバ１５１２、デバイスクラスドライバ１５１３、物理バスドライバ１５１５が介在する。しかし、利用者が、デバイスＡ１５１をＰＣ−Ａ１１０より利用する場合、ＰＣ−Ｄ１１３側ではデバイス管理マネージャ１２３の一部であるフィルタドライバ１５１４がメモリ上の適切な位置にロードされ、物理バスドライバ１５１５及びデバイスクラスドライバ１５１３の間に配置される。
【０１８７】
ＰＣ−Ｄ１１３が動作している間、デバイス管理マネージャ１２３がメモリ上にロードされて動作している場合は、デバイス管理マネージャ１２３が、デバイス種別や物理バスを適切に監視する。
【０１８８】
一般にＰＣ−Ｄ１１３のアプリケーション１５１１からデバイスＡ１５１を使用する場合、デバイス管理マネージャ１２３は、利用者の意図に応じて適切なデバイスクラスドライバ１５１３と物理バスドライバ１５１５との通信がフィルタドライバ１５１４を介して行われるように適切にデバイスクラスドライバ１５１３と物理バスドライバ１５１５とフィルタドライバ１５１４とを動作させる。
【０１８９】
しかし、ここでの前提のようにＰＣ−Ａ１１０からデバイスＡ１５１を利用する場合は、フィルタドライバ１５１は、物理バスドライバ１５１５とデバイスクラスドライバ１５１３との間の直接の通信を禁止する。すなわち、通信プログラム１５１０と物理バスドライバ１５１５との間のリクエスト及びレスポンスを有効とする。なお、デバイスＡ１５１がＰＣ−Ｄ１１３に接続された一連のデバイスドライバのメモリ上へのロード時にフィルタドライバ１５１４をロードし、デバイスクラスドライバ１５１３及び物理バスドライバの通信をすべてフィルタドライバ１５１４を介して行う。ただし、利用者の指示があったときに手動で行うよう構成してもよいし、ＰＣ−Ａ１１０上のアプリケーション１５０１から指示があった際に行うよう構成してもよい。
【０１９０】
なお、フィルタドライバ１５１４が通信するデバイスクラスドライバ１５１３及び物理バスドライバ１５１５は、それぞれ利用しようとするデバイスの種別および/またはデバイスが接続する物理バスが異なることにより異なる。このため、デバイスクラスドライバ１５１３及び物理バスドライバ１５１５がメモリ上にロードされるごとに適切に変更される。
【０１９１】
一方、ＰＣ−Ａ１１０内では、仮想デバイスマネージャ１２０が動作している。仮想デバイスマネージャ１２０は、ＧＵＩアプリケーション１５０７を介してデバイスＡ１５１を利用する指示を受け付けると、仮想デバイスマネージャ１２０は、すでに説明したようにＰＣ−Ａ１１０においてデバイスＡ１５１を利用可能か調査し、利用可能であれば、ＰＣ−Ａ１１０からデバイスＡ１５１が利用可能となるように処理を進める。
【０１９２】
ＰＣ−Ｄ１１３にデバイスＡ１５１が接続され、ＰＣ−Ａ１１０からデバイスＡ１５１を利用可能な条件が整うと、すでに通信路が構築されている通信プログラム１５０８及び通信プログラム１５１０を介してデバイスＡ１５１の情報が擬似バスドライバ１５０４に送信される。メモリにロードされた擬似バスドライバ１５０４は内部に起動用物理デバイスオブジェクト１５０５及びエニュメレータ１５０６の２つのプログラムを生成し動作させる。
【０１９３】
エニュメレータ１５０６は、通信プログラム１５０８と通信し、デバイスＡ１５１に対応したデバイスドライバの利用準備を行うため図示しないＯＳに対してメモリ上に起動用物理デバイスオブジェクト１５０５のロードを行うよう指示する。そしてＯＳは、指示に従ってロードする。
【０１９４】
ＰＣ−Ａ１１０上の利用者が利用するアプリケーション１５０１からデバイスＡ１５１への通信が行われる場合、データは、上位ドライバ１５０２、デバイスクラスドライバ１５０３、起動用物理デバイスオブジェクト１５０５、エニュメレータ１５０６、通信プログラム１５０８、通信プログラム１５１０、フィルタドライバ１５１４、物理バスドライバ１５１５を経てデバイスＡ１５１に送信される。また、送信データに対する返答や割込みは逆順で送信される。
【０１９５】
すなわち、デバイスクラスドライバ１５０３から発行されたデバイスＡ１５１に対するリクエストは、デバイスＡ１５１に対応した起動用物理デバイスオブジェクト１５０５からエニュメレータ１５０６に送信され、通信プログラム１５０８を経て、ＰＣ−Ｄ１１３に送信される。送信されたリクエストに対するレスポンスは、逆順にＰＣ−Ｄ１１３から、通信プログラム１５０８、エニュメレータ１５０６、起動用物理デバイスオブジェクト１５０５を経てデバイスクラスドライバ１５０３に送信される。送受信の間、デバイスＡ１５１に対するリクエストやレスポンスは、他のデバイスに対するリクエストやレスポンスと混同しないように通信プログラム１５１０および通信プログラム１５０８によってＩＤやリクエスト番号などの制御データが付加される。最終的にデバイスＡ１５１にリクエストが送信される段階もしくはデバイスクラスドライバ１５０３にレスポンスが戻される段階で付加した制御データは取り除かれる。
【０１９６】
前述したように、デバイスクラスドライバ１５０３より発行されたデバイスに対するリクエストは、擬似バスドライバ１５０４から通信プログラム１５０８をへて通信プログラム１５１０に送信される。また、送信されたリクエストに対するレスポンスは、逆順に通信プログラム１５１０から、通信プログラム１５０８、擬似バスドライバ１５０４を経てデバイスクラスドライバ１５０３に送信される。途中、デバイスに対するリクエストやレスポンスは、他のデバイスに対するリクエストやレスポンスと混同しないように通信プログラム１５１０及び通信プログラム１５０８でＩＤやリクエスト番号などの制御データが付加される。
【０１９７】
このとき、通信プログラム１５０８は、通信の内容を監視し、一部の通信に対しては、ネットワーク１０３を介して通信プログラム１５１０にリクエストを送信することなく通信プログラム１５０８自身で擬似バスドライバ１５０４にレスポンスをする、送信を遅らせる、などの対応を行うことにより通信プログラム１５０８と通信プログラム１５１０との間の通信量を削減する機能を持つ。
【０１９８】
具体的には、通信プログラム１５０８は、周期的に行われる生存確認等の予め返答が定まっているリクエスト等に対する返答を予め保持し、これらのリクエストを擬似バスドライバ１５０４から受信した場合、当該登録されている返答を自ら擬似バスドライバ１５０４に返信する。このような通信量を削減する機能の設定は、ＧＵＩアプリケーション１５０７またはＧＵＩアプリケーション１５０９を介して利用者から指示を受け付けて行われる。あるいは、認証管理サーバ１０１を介してシステムの管理者からの指示を受け付ける。
【０１９９】
ＰＣ−Ａ１１０及びＰＣ−Ｄ１１３が省電力のために休止またはサスペンド状態となる設定が成されている場合、デバイスＡ１５１がＰＣ−Ａ１１０から利用可能になっている状態で、休止またはサスペンド状態になることがある。このような場合、ＯＳは、休止やサスペンド状態になることを示す通知を通信プログラム１５０８、通信プログラム１５１０、フィルタドライバ１５１４、擬似バスドライバ１５０４に送信する。擬似バスドライバ１５０４、フィルタドライバ１５１４は、休止またはサスペンド状態にならないようそれぞれＰＣ−Ａ１１０とＰＣ−Ｄ１１３との画面上に警告を表示するようそれぞれＧＵＩアプリケーション１５０７と１５０９に指示を行い、ＯＳに対してエラーを送信する。エラーを受信したＯＳは、休止またはサスペンド状態になることを抑止する。
【０２００】
利用者の設定によっては、デバイスＡ１５１がＰＣ−Ａ１１０から利用可能になっている状態で、ＰＣ−Ａ１１０及びＰＣ−Ｄ１１３が休止またはサスペンド状態になる場合、休止またはサスペンド状態になることを示す通知をＯＳから受信した通信プログラム１５０８、通信プログラム１５１０、フィルタドライバ１５１４、擬似バスドライバ１５０４は、ＰＣ−Ａ１１０およびＰＣ−Ｄ１１３の画面上に警告を表示するようＧＵＩアプリケーション１５０７と１５０９に指示を行うと共に、擬似バスドライバ上のすべての起動用物理デバイスオブジェクト１５０５を削除し、通信プログラム１５０８、１５１０、フィルタドライバ１５１４、擬似バスドライバ１５０４相互間の通信を終了するよう処理を行う。なお、ここで終了した通信は、ＰＣ−Ａ１１０もしくはＰＣ−Ｄ１１３が休止もしくはサスペンド状態から復帰した際に、通常の再開手順で通信プログラム１５０８、１５１０、フィルタドライバ１５１４、擬似バスドライバ１５０４によって再度開始される。
【０２０１】
次に、ＰＣ−Ａ１１０からデバイスＡ１５１を利用する場合の、データ形式の変換について説明する。
【０２０２】
ＰＣ−Ｄ１１３上のアプリケーション１５１１から発生するデバイスＡ１５１へのリクエストは、上述のように上位ドライバ１５１２、デバイスクラスドライバ１５１３、フィルタドライバ１５１４、物理バスドライバ１５１５と、各種のプログラム間を介してデバイスＡ１５１に送信される。
【０２０３】
ところが、ＰＣ−Ａ１１０上で動作するアプリケーション１５０１においてデバイスＡ１５１へのリクエストを送受信する際、各プログラム間でやり取りするリクエストの中にはＰＣ−Ａ１１０に固有の情報が含まれている。このＰＣ−Ａ１１０固有の情報とは、例えば、ＤＭＡ(ダイレクトメモリアクセス）転送を行うメモリやバッファのアドレス情報等である。
【０２０４】
このようなＰＣ−Ａ１１０固有の情報を含むリクエストをＰＣ−Ｄ１１３上で動作する通信プログラム１５１０、フィルタドライバ１５１４、物理バスドライバ１５１などのプログラムにそのまま送信すると、ＰＣ−Ｄ１１３上の各プログラムが参照不能なアドレスへアクセスし、デバイス管理システムとしての正常な動作を行うことが出来ない。
【０２０５】
本実施形態のデバイス管理システムにおいては、上記問題を避けるため、各プログラム間で、リクエストや返答などの情報を送受信する際に、データ形式の変換を行い、リクエストや返答に含まれる情報が動作するＰＣによる依存しないよう管理する。以下に、処理の詳細を説明する。
【０２０６】
図２３は、擬似バスドライバ１５０４と通信プログラム１５０８との間で送受信されるデータ、通信プログラム１５０８と通信プログラム１５１０との間で送受信されるデータ、通信プログラム１５１０とフィルタドライバ１５１４との間で送受信されるデータのデータ構造と、データ構造の変換処理について説明するための図である。
【０２０７】
擬似バスドライバ１５０４が扱うリクエストおよびレスポンスは、構造体２３５１に示す構造体の形式を有する。構造体２３５１は、データＡ２３０１、データＢ２３０２、…、データＮ２３０３及び、ポインタＡ２３０４、ポインタＢ２３０５を備える。ポインタＡ２３０４及びポインタＢ２３０５は、ＰＣ−Ａ１１０上のメモリ２３５２に格納される情報のメモリアドレス（論理アドレス）を示す。格納される情報はそれぞれ、データＸ２３０６、データＹ２３０７である。なお、メモリ２３５２は、構造体２３５１がロードされているメモリ領域、もしくは、デバイスの処理用に特別に設けられたメモリ領域、もしくは、構造体２３５１がロードされているメモリとは性質の異なるデバイスバスを制御するコントローラドライバがＣＰＵを介さずダイレクトにアクセス可能である等デバイスの処理用に特別に設けられたメモリ領域である。
【０２０８】
一方、擬似バスドライバ１５０４と通信プログラム１５０８との間、通信プログラム１５０８と通信プログラム１５１０との間、通信プログラム１５１０とフィルタドライバ１５１４との間で送受信されるデータは、構造体２３５３に示す構造体形式を有する。構造体２３５３は、データＡ２３０８、データＢ２３０９、…、データＮ２３１０、データＸ２３１１、データＹ２３１２を備える。すなわち、ＰＣを超えて送受信される構造体には、ポインタの代わりに、データそのものが格納される。擬似バスドライバ１５０４、通信プログラム１５０８、通信プログラム１５１０、フィルタドライバ１５１４は、構造体２３５３の形式のデータを送受信することにより、お互いが要求するリクエストを送受信し、リクエストに対する返答を送受信する。
【０２０９】
擬似バスドライバ１５０４は、構造体２３５１に格納されたリクエストをデバイスクラスドライバ１５０３から受け取る。この構造体２３５１に格納されたリクエストは、デバイスクラスドライバ１５０３の上位のドライバである上位ドライバ１５０２もしくはアプリケーション１５０１から与えられる命令によりデバイスクラスドライバ１５０３が生成するものである。
【０２１０】
擬似バスドライバ１５０４は、構造体２３５１に格納されたリクエストを示すデータとメモリ２３５２に格納されたデータとを構造体２３５３の形式に変換し、変換した構造体２３５３の形式を有するデータを通信プログラム１５０８に送信する。また、擬似バスドライバ１５０４は、構造体２３５３の形式を有するデータを通信プログラム１５０８から受信し、構造体２３５１の形式に変換し、デバイスクラスドライバ１５０３および上位ドライバ１５０２を介してアプリケーション１５０１に送信する。このとき、例えばデータＸ２３０６、データＹ２３０７といったメモリ２３５２に格納すべきデータは、メモリ２３５２上に展開する。メモリ２３５２上に展開されたデータは、他のドライバやアプリケーション、ＯＳ１７０１に利用される。
【０２１１】
ＰＣ−Ｄ１１３側では、フィルタドライバ１５１４が扱うリクエストおよびレスポンスは、構造体２３５４に示すような構造体の形式を有する。
【０２１２】
構造体２３５４は、データＡ２３１３、データＢ２３１４、…、データＮ２３１５及び、ポインタＣ２３１６、ポインタＤ２３１７を格納する。ポインタＣ２３１６及びポインタＤ２３１７は、ＰＣ−Ｄ１１３上のメモリ２３５５に格納された情報のメモリアドレス（論理アドレス）を示し、格納された情報はそれぞれ、データＸ２３１８、データＹ２３１９である。メモリ２３５５は、構造体２３５４がロードされているメモリかもしくは構造体２３５４がロードされているメモリとは性質の異なる、デバイスバスを制御するコントローラドライバがＣＰＵを介さずダイレクトにアクセス可能である等デバイスの処理用に特別に設けられたメモリ領域である。
【０２１３】
フィルタドライバ１５１４は、通信プログラム１５１０から送信された構造体２３５３に格納されたリクエストを構造体２３５４の形式に変換し、フィルタドライバ１５１４内に保持する。このとき、例えばデータＸ２３１１、データＹ２３１２がメモリ２３５５に格納すべきデータである場合は、メモリ２３５５上に展開する。メモリ２３５５に展開されたデータは他のデバイスドライバやＯＳ１７０２に利用される。フィルタドライバ１５１４は、データＸ２３１８、データＹ２３１９をメモリ２３５５上に展開すべきか否かを、予め決められたポリシーに従って判断する。このポリシーは利用者により、設定および変更される。
【０２１４】
構造体２３５１、構造体２３５３、構造体２３５４、メモリ２３５２、および、メモリ２３５５に格納されるデータは、リクエストの長さ、番号などのヘッダ情報、送信するデータ本体、送信すべきデバイスの番号などの情報、送信すべきデバイスの内部のインタフェースの種別や番号、送信するリクエストの性質や種類、実行中のステータス情報等の情報である。
【０２１５】
擬似バスドライバ１５０４およびフィルタドライバ１５１４は、データ内に記録されているメモリアドレス情報とメモリアドレスが示すデータとが擬似バスドライバ１５０４とフィルタドライバ１５１４との間で正しく送受信されるよう、上述のように、それぞれ構造体２３５１と構造体２３５３との間、構造体２３５３と構造体２３５４との間でデータ構造を変換する。本変換を行うことにより、擬似バスドライバ１５０４およびフィルタドライバ１５１４との間で送受信するデータ内に存在するメモリアドレス情報が適切ではない機器上で参照されてエラーが発生することを避けることができる。
【０２１６】
ここで、改めて、擬似バスドライバ１５０４に送信されたリクエストに含まれる要求が、擬似バスドライバ１５０４からデバイスＡ１５１に，どのように送信され、リクエストに対するレスポンスが，どのように擬似バスドライバ１５０４に返信されるかを説明する。
【０２１７】
擬似バスドライバ１５０４に送信されたリクエストは、前述のように，ＰＣ−Ｄ１１３内のメモリを参照するポインタを持たない構造体２３５３に変換される。変換された構造体２３５３が、ネットワーク１０３にて利用可能なプロトコルの仕様にのっとっていない場合は、通信プログラム１５０８がネットワーク１０３上を伝送可能な形式である第二のリクエストに変換する。
【０２１８】
第二のリクエストとは、具体的には，構造体２３５３にネットワークプロトコルで必要なヘッダなどを付加したものである。例えば、ネットワーク１０３にてＴＣＰ／ＩＰプロトコルが利用可能である場合、第二のリクエストは、ヘッダ長とパケット長、識別子、フラグ、生存期間、プロトコル番号、ヘッダチェックサム、始点ＩＰアドレス、終点ＩＰアドレス、オプションとデータである構造体２３５３を含む。
【０２１９】
通信プログラム１５０８は，この第二のリクエストを、ネットワーク１０３を経由して通信プログラム１５１０に送信する。
【０２２０】
通信プログラム１５１０は、受信した第二のリクエストから構造体２３５３を取り出し、フィルタドライバ１５１４に送信する。フィルタドライバ１５１４は、構造体２３５３を前述のように構造体２３５４へ変換する。
【０２２１】
すなわち，フィルタドライバ１５１４は、メモリ２３５５にデータＸ２３１８、データＹ２３１９をコピーし、書き込み先のメモリアドレスをそれぞれ、ポインタＣ２３１６及びポインタＤ２３１７に格納する。ここで、フィルタドライバ１５１４は、データＸ２３１８及びデータＹ２３１９の容量がメモリ２３５５に記憶可能な容量以下であるか否かをチェックし、必要ならば容量の確保を行う。
【０２２２】
構造体２３５４の形式に変換されたリクエストは、フィルタドライバ１５１４により、物理バスドライバ１５１５を介してデバイスＡ１５１に送信される。
【０２２３】
デバイスＡ１５１は、図示しないバスコントローラ及びバスを介して物理バスドライバ１５１５から送信されるリクエストに対するレスポンスを物理バスドライバ１５１５に返信する。フィルタドライバ１５１４は、物理バスドライバ１５１５から受け取ったレスポンスがポインタＣ２３１６やポインタＤ２３１７を用いてデータＸ２３１８やデータＹ２３１９を参照していれば，前述のようにＰＣ−Ｄ１１３内のメモリを参照するポインタを持たず，データＸ２３１８やデータＹ２３１９そのものを含む構造体２３５３に変換し，変換した構造体２３５３を通信プログラム１５１０に送信する。
【０２２４】
通信プログラム１５１０は、送信された構造体２３５３の情報を用いて、ネットワーク１０３にて利用可能なプロトコルの仕様にのっとってネットワーク１０３上を伝送可能な形式の第二のレスポンスを作成する。第二のレスポンスとは、具体的には，構造体２３５３にネットワークプロトコルで必要なヘッダなどを付加したものである。例えば、ネットワーク１０３にてＴＣＰ／ＩＰプロトコルが利用可能である場合、第二のレスポンスは、ヘッダ長とパケット長、識別子、フラグ、生存期間、プロトコル番号、ヘッダチェックサム、始点ＩＰアドレス、終点ＩＰアドレス、オプションとデータである構造体２３５３を含む。
【０２２５】
通信プログラム１５１０は，この第二のレスポンスを、ネットワーク１０３を経由して通信プログラム１５０８に送信する。
【０２２６】
通信プログラム１５０８は、送信された第二のレスポンスから構造体２３５３を取り出し、擬似バスドライバ１５０４に送信する。擬似バスドライバ１５０４は、構造体２３５３を前述のように構造体２３５１へ変換する。
【０２２７】
すなわち，擬似バスドライバ１５０４は、メモリ２３５２にデータＸ２３０６、データＹ２３０７をコピー（又は移動）し、書き込み先のメモリアドレスをそれぞれ、ポインタＡ２３０４及びポインタＢ２３０５に格納する。ここで、擬似バスドライバ１５０４は、データＸ２３０６及びデータＹ２３０７のサイズがメモリ２３５２に記憶可能な領域の容量以下であるか否かをチェックし、必要ならば容量の確保を行う。
【０２２８】
前述のように、フィルタドライバ１５１４による構造体２３５３から構造体２３５４への変換における、メモリ２３５５へのデータＸ２３１８、データＹ２３１９のコピーまたは移動と，書き込み先のメモリアドレスのポインタＣ２３１６及びポインタＤ２３１７への格納は、予め決められたポリシーに従い行われる。このポリシーは、ＰＣ−Ｄ１１３のメモリ上にあり、フィルタドライバ１５１４が受け取った第二のリクエストを、物理バスドライバ１５１５に送信する際に用いられる。
【０２２９】
同様に，フィルタドライバ１５１４による構造体２３５４から，メモリ２３５５のデータＸ２３１８、データＹ２３１９を含んだ構造体２３５３への変換も、上記ポリシーに従い行われる。
【０２３０】
ポリシーは、利用者によりデバイスドライバやその他のプログラムがＰＣ−Ｄ１１３にインストールされるときや、デバイスを利用しているときなどに利用者により定められるか、認証管理サーバ１０１からＰＣ−Ｄ１１３に通知され、ＰＣ−Ｄ１１３のメモリに格納される。
【０２３１】
このポリシーは、デバイスＡ１５１のようなデバイスの種別（クラス）やデバイスの製造メーカ、デバイスの種類、デバイスの製造番号、デバイスの接続されているバスやコントローラの番号のいずれか１つ以上に従って、定められる。これら，デバイスの種別（クラス）やデバイスの製造メーカといった情報は、デバイスがＰＣ−Ｄ１１３に接続された際にデバイスの中に保持されている識別子をＰＣ−Ｄ１１３上のデバイスドライバ等のプログラムが読み出し、ＰＣ−Ｄ１１３上のメモリに保持する。
【０２３２】
フィルタドライバ１５１４による構造体２３５４から構造体２３５３への変換における、ポインタＣ２３１６及びポインタＤ２３１７が指し示すメモリ２３５５上のデータＸ２３１８及びデータＹ２３１９の、構造体２３５３へのコピーまたは移動は、予め決められたポリシーに従い行われる。このポリシーは、ＰＣ−Ｄ１１３のメモリ上にある予め決められたもので、フィルタドライバ１５１４が，物理バスドライバ１５１５から受け取ったレスポンスを，通信プログラム１５１０，１５０８を介して擬似バスドライバ１５０４に送信する際に用いられる。
【０２３３】
また、同様に擬似バスドライバ１５０４による構造体２３５３から構造体２３５１への変換における、メモリ２３５２へのデータＸ２３０６、データＹ２３０７のコピーまたは移動と，書き込み先のメモリアドレスのポインタＡ２３０４及びポインタＢ２３０５への格納も、予め決められたポリシーに従って行われる。このポリシーは、ＰＣ−Ａ１１０のメモリ上にあり、擬似バスドライバ１５０４が，受け取ったレスポンスをデバイスクラスドライバ１５０３に送信する際に用いられる。
【０２３４】
ＰＣ−Ａ１１０に格納されるポリシーは、利用者によりデバイスドライバやその他のプログラムがＰＣ−Ａ１１０にインストールされるときや、デバイスを利用しているときなどに利用者により定められるか、認証管理サーバ１０１からＰＣ−Ａ１１０上に送信され，ＰＣ−Ａ１１０上のメモリに格納される。
【０２３５】
同様に、ＰＣ−Ｄ１１３に格納されるポリシーは、利用者によりデバイスドライバやその他のプログラムがＰＣ−Ｄ１１３にインストールされるときや、デバイスを利用しているときなどに利用者により定められるか、認証管理サーバ１０１からＰＣ−Ｄ１１３上に送信され，ＰＣ−Ａ１１３上のメモリに格納される。
【０２３６】
このポリシーは、デバイスＡ１５１のようなデバイスの種別（クラス）やデバイスの製造メーカ、デバイスの種類、デバイスの製造番号、デバイスの接続されているバスやコントローラの番号に従って、定められる。これら，デバイスの種別（クラス）やデバイスの製造メーカといったＩＤ情報は、デバイスがＰＣ−Ｄ１１３に接続された際にデバイスの中に保持されている識別子をＰＣ−Ｄ１１３上のデバイスドライバ等のプログラム（例えば物理バスドライバ１５１５）が読み出し、ＰＣ−Ｄ１１３のメモリ上に保持すると共に，例えばフィルタドライバ１５１４が、通信アプリケーション１５１０及び通信アプリケーション１５０８を介して、擬似バスドライバ１５０４に通知する。
【０２３７】
デバイス管理マネージャ１２３は、ＰＣ−Ｄ１１３のメモリ上に保持されたＩＤ情報を読み出し、ＩＤ情報に適合したポリシーを特定し，利用する。また、デバイス管理マネージャ１２３は、読み出したＩＤ情報を，ネットワークを介して，ＰＣ−Ａ１１０の仮想デバイスマネージャ１２０に送信する。仮想デバイスマネージャ１２０は、受信したＩＤ情報に適合したポリシーを特定し，利用する。
【０２３８】
上記のように、仮想デバイスマネージャ１２０及びデバイス管理マネージャ１２３をそれぞれ動作させることにより、ＰＣ−Ｄ１１３上のアプリケーション及びＰＣ−Ａ１１０からデバイスＡ１５１を動作させることが可能となる。
【０２３９】
フィルタドライバ１５１４は、デバイスＡ１５１がＰＣ−Ｄ１１３のデバイスとして利用されるのか、ＰＣ−Ａ１１０のデバイスとして利用されるのかに応じて、通信プログラム１５１０と物理バスドライバ１５１５間の通信と，デバイスクラスドライバ１５１３及び物理バスドライバ１５１５間の通信と，の一方を遮断し，排他制御を行う。一方が利用できるように切り替えることにより、利用者にＰＣ−Ｄ１１３及びＰＣ−Ａ１１０からデバイスＢ１５２をあたかもＰＣとデバイスが接続されているように利用させる。フィルタドライバ１５１４での通信の切り替えは、自動的、通信プログラム１５１０，または，通信プログラム１５１０を介した通信プログラム１５０８からの指示で行われる。または，これらの通信プログラムに対する、ＧＵＩアプリケーション１５０７、ＧＵＩアプリケーション１５０９からの指示で行われる。
【０２４０】
切り替えが発生した際には、アプリケーション１５０１及びアプリケーション１５１１、上位ドライバ１５０２及び上位ドライバ１５１２、デバイスクラスドライバ１５０３及びデバイスクラスドライバ１５１３が正常に動作するように、各デバイスドライバやアプリケーションの初期化がＧＵＩアプリケーションまたは通信アプリケーションから行われる。例えば、デバイスＡ１５１が一度擬似的に活線挿抜されたような信号をＯＳ、各アプリケーション、各デバイスドライバに送信するよう構成する。このような各デバイスドライバやアプリケーションの初期化は、通信プログラム１５０８、通信プログラム１５１０間の通信の不正が検知される、各デバイスドライバやアプリケーションの動作が不正であることが検知される、などの場合に常に実行される。
【０２４１】
次に、図６に示したチャネルの生成（５２３及び５３４）が終了し、仮想デバイスマネージャ１２０がデバイスＡ１５１をコントロール可能になった後に、デバイスＡ１５１を利用する命令が仮想デバイスマネージャ１２０に与えられた場合の動作を説明する。図９は、本実施形態のデバイス管理システムにおけるデバイス利用時の、デバイス管理マネージャ１２３および仮想デバイスマネージャ１２０の動作を説明するフローである。ここでは、仮想デバイスマネージャ１２０側からトリガがかかった場合の処理について説明する。
【０２４２】
図６に示したチャネルの生成（５２３及び５３４）が終了し、仮想デバイスマネージャ１２０がデバイスＡ１５１をコントロール可能になった後に、デバイスＡ１５１を利用する命令が仮想デバイスマネージャ１２０に与えられると（開始７００）、仮想デバイスマネージャ１２０は、デバイスＡ１５１が動作するかどうかを確認する（７０１）。具体的には、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３に所定のコマンドを送信し、デバイスＡ１５１のステータスの取得の可否、通信可能な状態であるか否かを問い合わせる。または、通信経路が確保されている状態であるかを確認する。そして、デバイス管理マネージャ１２３からの返信内容により判断する。
【０２４３】
動作していない場合、デバイスＡ１５１が不正な状態にあることを認証管理サーバ１０１に通知し、認証サーバ１０１および仮想デバイスマネージャ１２０各々がログ１９１、１７０に記載する（７０２）。仮想デバイスマネージャ１２０は、ログ１７０への記載を終えると、与えられた命令に対する処理を不正終了する（７１６）。この際、仮想デバイスマネージャ１２０は、不正終了を示すエラーメッセージを利用者に通知してもよい。さらに、不正な状態にあることの通知を受けた際、自動的にデバイスＡ１５１との通信の終了処理を行うよう構成してもよい。また、動作確認の試行は複数回行い、複数回行ったとしても不正な状態であるとの通知が続く場合、７０２に進むよう構成してもよい。
【０２４４】
一方、ステップ７０１においてデバイスＡ１５１の動作が確認された場合、仮想デバイスマネージャ１２０は認証管理サーバ１０１およびデバイス管理マネージャ１２３に必要に応じて生存確認の為の通知を行う（７０３）。本処理により認証管理サーバ１０１およびデバイス管理マネージャ１２３はデバイスＡ１５１とのチャネルが確立していることの確認が可能になる。
【０２４５】
次に、仮想デバイスマネージャ１２０は、デバイスＡ１５１を利用するトリガとなる指示（例えばＰＣ−Ａ１１０から）を受けたか否かを判別する（７０４）。トリガとなる指示がないと判別された場合、ステップ７０１に戻る。
【０２４６】
一方、トリガとなる指示があったと判別された場合、仮想デバイスマネージャ１２０において、デバイスインタフェースプロトコルにのっとったトランザクションを生成する（７０５）。そして、生成されたトランザクションはネットワークプロトコルに規定されたプロトコルに変換されてデバイス管理マネージャ１２３に送信される（７０６）。
【０２４７】
次に、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３にトランザクション（データ）が正しく到達しているか、正しく到達していない場合その回数が予め指定した回数を超えていないかを判断する。
【０２４８】
具体的には、まず、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３にデータが正しく到達していない回数が指定回数に達しているか否かを判別する（７０７）。
【０２４９】
指定回数に達している場合、仮想デバイスマネージャ１２０は、通信が不正な状態にあると判断し、これを認証管理サーバ１０１に通知するとともに、ログ１７０に記録する。通信が不正な状態にあるとの情報は、認証管理サーバ１０１のログ１９１でも記録するよう構成してもよい。仮想デバイスマネージャ１２０は、ログ１７０への記載が終了した後、不正終了する（７０９）。仮想デバイスマネージャ１２０は、エラーを利用者に通知してもよいし、自動的にデバイスＡ１５１との通信の終了処理に入っても良い。
【０２５０】
一方、ステップ７０７において回数が指定回数に達していない場合、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３に正しくデータが届いているか否かのチェックを行う（７１０）。具体的には、送信したデータに対するレスポンスにより、不正と判断された場合、あるいは、所定の時刻までにレスポンスがない場合、正しく到達していないと判断する。そして、正しく到達していないと判断された場合、正しく到達していない回数を１インクリメントし、ステップ７０７に戻る。
【０２５１】
ステップ７１０において正しくデータが届いている場合、仮想デバイスマネージャ１２０は、送信してないトランザクションがあるか否かを確認する（７１１）。そして、未送信のトランザクションがある場合、ステップ７０６に戻り、処理を繰り返す。
【０２５２】
未送信のトランザクションがない場合、仮想デバイスマネージャ１２０は、受信すべきトランザクションがあるか否かのチェックを行う（７１２）。これは、両者間の通信路を設定した際に予め定められたデータ量分のデータの送信が終わったか否かにより判断する。
【０２５３】
受信すべきトランザクションがある場合、仮想デバイスマネージャ１２０は、受信したデータをデバイスインタフェースプロトコルに変換する（７１３）。次に抽出したデータをデバイスドライバに送信し（７１４）、ステップ７１２へ戻る。
【０２５４】
一方、ステップ７１２において受信すべきトランザクションがない場合、仮想デバイスマネージャ１２０は、処理を終了する（７１５）。
【０２５５】
なお、上記処理において、処理が不正終了した場合（ステップ７１６、７０９）、認証管理サーバ１０１、デバイス管理マネージャ１２３および仮想デバイスマネージャ１２０は、処理が不正終了した時点で、適切に利用できるデバイスを再確認し、認証管理サーバ１０１内のデバイス情報管理テーブル２００を更新する。すなわち、仮想デバイスドライバ１２０は、デバイスが再確認できれば、再び正常な通信を行い、チャネルの生成が可能であれば生成し、デバイス情報テーブル２００のステータスを「占有中」、「通信中」、「利用中」とする。
【０２５６】
次に、図６に示したチャネルの生成（５２３及び５３４）が終了し、デバイス管理マネージャ１２３がデバイスＡ１５１をコントロール可能になった後に、デバイスＡ１５１がデバイス管理マネージャ１２３に対し、情報を送信する場合の動作を説明する。図１０は、本実施形態のデバイス管理システムにおけるデバイス利用時のデバイス管理マネージャ１２３および仮想デバイスマネージャ１２０の動作を説明するフローである。ここでは、デバイスＡ１５１側からトリガがかかった場合の処理について説明する。
【０２５７】
図６に示したチャネルの生成（５２３及び５３４）が終了し、デバイス管理マネージャ１２３がデバイスＡ１５１をコントロール可能になった後に、デバイスＡ１５１がデバイス管理マネージャ１２３へ情報を送信すると（開始８００）、デバイス管理マネージャ１２３は、デバイスＡ１５１が動作するかどうかを確認する（８０１）。動作確認は、図９の処理と同様である。
【０２５８】
動作していない場合、デバイスＡ１５１が不正な状態にあることを認証管理サーバ１０１に通知し、認証サーバ１０１およびデバイス管理マネージャ１２３各々がログ１９１、１７３に記載する（８０２）。デバイス管理マネージャ１２３は、ログ１７３への記載を終えると、不正終了する（８１６）。この際、デバイス管理マネージャ１２３は、不正終了を示すエラーメッセージを利用者に通知してもよい。さらに、不正な状態にあることの通知を受けた際、自動的にデバイスＡ１５１との通信の終了処理を行うように構成してもよい。また、動作確認の試行は複数回行い、複数回行ったとしても不正な状態であるとの通知が続く場合、８０２に進むよう構成してもよい。
【０２５９】
一方、ステップ８０１においてデバイスＡ１５１の動作が確認された場合、デバイス管理マネージャ１２３は、認証管理サーバ１０１及び仮想デバイスマネージャ１２０に必要に応じて生存確認の為の通知を行う（８０３）。本処理により認証管理サーバ１０１及び仮想デバイスマネージャ１２０はデバイスＡ１５１とのチャネルが確立していることの確認が可能になる。
【０２６０】
次に、デバイス管理マネージャ１２３は、デバイスＡ１５１を利用するトリガとなる指示を（例えばＰＣ−Ａ１１０から）受けたか否かを判別する（８０４）。トリガとなる指示がないと判別された場合、ステップ８０１に戻る。
【０２６１】
一方、トリガとなる指示があったと判別された場合、デバイス管理マネージャ１２３において、デバイスインタフェースプロトコルにのっとったトランザクションを生成する（８０５）。そして、生成されたトランザクションはネットワークプロトコルで定義されたパケットに変換されて仮想デバイスマネージャ１２０に送信される（８０６）。
【０２６２】
次に、デバイス管理マネージャ１２３は、仮想デバイスマネージャ１２０に正しくトランザクション（データ）が到達しているか、正しく到達していない場合、その回数が予め指定した回数を超えていないかを判断する。
【０２６３】
具体的には、まず、デバイス管理マネージャ１２３は、仮想デバイスマネージャ１２０にデータが正しく到達していない回数が指定回数に達しているか否かを判別する（８０７）。
【０２６４】
指定回数に達している場合、デバイス管理マネージャ１２３は、通信が不正な状態にあると判断し、これを認証管理サーバに通知するとともに、ログ１７３に記録する。通信が不正な状態にあるとの情報は、認証管理サーバ１０１のログ１９１でも記録するよう構成してもよい。デバイス管理マネージャ１２３は、ログ１７３への記載が終了した後、不正終了する（８０９）。デバイス管理マネージャ１２３は、エラーを利用者に通知してもよいし、自動的にデバイスＡ１５１との通信の終了処理に入っても良い。
【０２６５】
一方、ステップ８０７において回数が指定回数に達しない場合、デバイス管理マネージャ１２３は、仮想デバイスマネージャ１２０に正しくデータが届いているか否かのチェックを行う（８１０）。ここで、正しく到達していないと判断された場合、正しく到達していない回数を１インクリメントし、ステップ８０７に戻る。
【０２６６】
ステップ８１０において正しくデータが届いている場合、デバイス管理マネージャ１２３は、送信してないトランザクションが残っているか否かのチェックを行う（８１１）。そして、未送信のトランザクションが残っている場合、ステップ８０６に戻り、処理を繰り返す。
【０２６７】
未送信のトランザクションが残っていない場合、デバイス管理マネージャ１２３は、受信すべきトランザクションがあるか否かのチェックを行う（８１２）。
【０２６８】
受信すべきトランザクションがある場合、デバイス管理マネージャ１２３は、受信したデータをデバイスインタフェースプロトコルに変換する（８１３）。そして、抽出したデータをデバイスドライバに送信し（８１４）、ステップ８１２へ戻る。
【０２６９】
一方、ステップ８１２において受信すべきトランザクションがない場合、デバイス管理マネージャ１２３は、処理を終了する（８１５）。
【０２７０】
なお、上記処理において、処理が不正終了した場合（ステップ８１６、８０９）、認証管理サーバ１０１、デバイス管理マネージャ１２３および仮想デバイスマネージャ１２０は、処理が不正終了した時点で、適切に利用できるデバイスを再確認し、認証管理サーバ１０１内のデバイス情報管理テーブル２００を更新する。すなわち、デバイス管理マネージャ１２０は、デバイスが再確認できれば、再び正常な通信を行い、チャネルの生成が可能であればチャネルを生成し、デバイス情報管理テーブル２００のステータスを「占有中」、「通信中」、「利用中」とする。
【０２７１】
以上の動作によって認証管理サーバ１０１及び仮想デバイスマネージャ１２０及びデバイス管理マネージャ１２３により蓄積されたログ１９１、１７０、１７３は、ネットワーク管理者により、認証管理サーバ１０１もしくはその他の管理機器にインストールされた管理アプリケーションによって表示される。
【０２７２】
図１１に管理アプリケーションにより表示されるログ管理画面の一例を示す。本図に示した管理ログは、認証管理サーバ１０１、仮想デバイスマネージャ１２０およびデバイス管理マネージャ１２３内に保存されたログ１９１、１７０、１７３を、認証管理サーバ１０１が収集し、自身のストレージ１９０もしくはメモリに蓄積したものを表示したものである。
【０２７３】
この表示のためのアプリケーション（管理アプリケーション）は、認証管理サーバ１０１以外にあっても良い。その場合、認証管理サーバ１０１からの許諾を受けて表示が行われる。情報センタ１０２およびブレードサーバ１０６が複数存在する構成では、管理アプリケーションは、認証管理サーバ１０１以外の認証管理サーバとその管理するアプリケーションとからログを収集し、集めたログを合わせたものを表示しても良い。
【０２７４】
デバイス管理画面１０００は、管理アプリケーションが表示するデバイスの管理を行うための画面である。デバイス管理画面１０００には、蓄積された各ログ１９１、１７０、１７３の、番号１００１、時刻１００２、デバイスＩＤ１００３、デバイス名１００４、アドレス（ソース）１００５、ネットワークインタフェースＩＤ（ソース）１００６、アプリケーションＩＤ１００７、アドレス（ホスト）１００８、ネットワークインタフェースＩＤ（ホスト）１００９、アプリケーションＩＤ１０１０、ベンダＩＤ１０１１、製品ＩＤ１０１２、シリアル番号１０１３、デバイス名１０１４、利用ユーザＩＤ１０１５、情報１０１６、備考１０１７の各項目が表示される。
【０２７５】
番号１００１は、ログを管理するための番号であり、ログが蓄積される毎に自動的に付与される。時刻１００２は、ログが記録された日時である。情報１０１６は、ログ１７０、１７３、１９１にログとして記録されたイベントの内容が詳細に表示される。
【０２７６】
アドレス（ソース）１００５、アドレス（ホスト）１００８は、ソース及びホスト（ディスティネーション）のアドレスを示す。ネットワークインタフェースＩＤ（ソース）１００６及びネットワークインタフェースＩＤ（ホスト）１００９は、ソース及びホスト（ディスティネーション）のネットワークインタフェースＩＤを示す。備考１０１７には、情報１０１６にて表示しきれない情報、例えば、管理者に注意を促す情報、情報１０１６を補足する情報が表示される。
【０２７７】
その他の項目は図２〜４を用いて説明したデバイス情報テーブル２００、利用者情報データベース３００、ＰＣ利用管理テーブル４００の同名の項目と同じものである。
【０２７８】
また、認証管理サーバ１０１は、デバイス管理画面１０００に表示される各情報を検索する機能を持った管理アプリケーションを搭載している。デバイス管理画面１０００に示す情報を管理アプリケーションが表示することにより、どの機器やデバイスがどのような状態であるのかを瞬時に把握することができ、システム全体の利便性が向上する。例えば、不正な認証が起こった場合の情報のみを検索して表示し、監視することにより、不正アクセスを発見し、その対策を講じることができる。また、適切にデバイスを利用できない場合の情報のみを検索して表示し、監視することにより、システム内で発生しているトラブルを早期発見し、対応することができる。さらに、管理アプリケーションによりログ全体を一覧することと比較して表示を見やすくすることにより、管理者のオペレーションミスを減らすことができる。これらにより、システム全体のセキュリティが向上するという効果が得られる。
【０２７９】
また、認証管理サーバ１０１が収集したログ１９１、１７０、１７３は、収集時に認証管理サーバ１０１とは別のサーバにコピーされ、改ざん防止の措置が行われる。この改ざん防止措置の行われたログは、企業内で情報漏えい等の不正が起こった際に、情報がどこでどのように不正に処理されたり、持ち出されたかなどの検証に用いることが出来る。この際、改ざん防止措置の行われたログの変更権限を認証管理サーバ等の機器及びシステム管理者に与えないことが必要となる。
【０２８０】
次に、図６に示したチャネルの生成（５２３及び５３４）が終了した後に、利用者によってＰＣ−Ａ１１０から利用可能な新たなデバイス（以後、デバイスＡ１５１ａと呼ぶ。）がＰＣ−Ｄ１１３に接続された際のプラグイン処理について説明する。図１７は、本実施形態のデバイス管理システムにおける新たなデバイスＡ１５１ａがＰＣ−Ｄ１１３に接続された際の動作を説明するフローである。
【０２８１】
新たなデバイスＡ１５１ａがＰＣ−Ｄ１１３に接続（プラグイン）されると、ＰＣ−Ｄ１１３上のＯＳ１７０２がプラグインを検知し、フィルタドライバ１５１４にプラグイン通知を行う（１７０３）。フィルタドライバ１５１４、通信プログラム１５１０、通信プログラム１５０８は、それぞれ通信プログラム１５１０、通信プログラム１５０８、擬似バスドライバ１５０４にプラグイン通知を順に送信する（１７０４〜１７０６）。
【０２８２】
ここで、仮想デバイスマネージャ１２０は、新しいデバイスＡ１５１ａを利用者が利用可能であるか否かの判断を行い、利用可能である場合、擬似バスドライバ１５０４内に起動用物理デバイスオブジェクト１５０５を生成する（１７０７）。上述したように、起動用物理デバイスオブジェクト１５０５は仮想デバイスマネージャ１２０内に複数作成することが可能で、原則として個々のデバイスに対応して作成される。
【０２８３】
擬似バスドライバ１５０４は、通信プログラム１５０８にイベント待ち要求を返信し（１７０８）、通信プログラム１５０８は、イベント待ち状態となる。
【０２８４】
擬似バスドライバ１５０４は、ＰＣ−Ａ１１０のＯＳ１７０１に対し、デバイス接続の有効無効確認を要求する（１７０９）。ＯＳ１７０１は、デバイス接続の有効無効確認のため、擬似バスドライバ１５０４及びその他のバスドライバに対し、オブジェクトのポインタ要求を行う（１７１０）。擬似バスドライバ１５０４及びその他のバスドライバは、自身の管理するドライバに対応する起動用物理デバイスオブジェクト１５０５やエニュメレータ１５０６等のオブジェクトポインタをＯＳ１７０１に送信する（１７１１）。次にＯＳ１７０１は、存在確認の完了したデバイスＡ１５１ａのデバイス名の要求を行う（１７１２）。これに応答して擬似バスドライバ１５０４及びその他のバスドライバは、自身の管理するデバイスＡ１５１ａのデバイス名をＯＳ１７０１に送信する（１７１３）。次にＯＳ１７０１は、存在確認の完了したデバイスＡ１５１ａのＩＤの要求を行う（１７１４）。これに応答して擬似バスドライバ１５０４及びその他のバスドライバは、自身の管理するデバイスＡ１５１ａのデバイスＩＤやデバイスの製造元ＩＤや製品ＩＤなどのＩＤ情報をＯＳ１７０１に送信する（１７１５）。以上の処理が正常に完了した際に、ＯＳ１７０１は、擬似バスドライバ１５０４にデバイスＡ１５１ａの利用開始を許可する（１７１６）。また、ここで返信するデバイス、ＩＤ等のデスクリプタは、フィルタドライバ１５１４が、デバイスＡ１５１ａから受け取った情報でありプラグイン通知（１７０４〜１７０６）により擬似バスドライバ１５０４に送信されている。
【０２８５】
１７１０〜１７１５のデバイス情報の取得処理（プラグイン処理）が正常に行われない場合は、ＯＳ１７０１は、利用者に対し、デバイスＡ１５１ａが正常に利用できない旨をグラフイカルユーザインターフェース（ＧＵＩ）アプリケーション１５０１等を通じて利用者に示すとともに、ＰＣ−Ａ１１０内や認証管理サーバ１０１のログに記録する。次に、擬似バスドライバ１５０４及び通信プログラム１５０８は、それぞれ通信プログラム１５１０及びフィルタドライバ１５１４にプラグイン完了通知を行う（１７１７、１７１８）。通信プログラム１５１０は、イベント待ち要求をフィルタドライバ１５１４に送信する（１７１９）。
【０２８６】
以上の処理により、新しくＰＣ−Ｄ１１３に接続されたデバイスがＰＣ−Ａ１１０より利用が可能となる。
【０２８７】
次に、図６に示したチャネルの生成（５２３及び５３４）が終了した後に、ＰＣ−Ａ１１０から利用可能であったデバイスＡ１５１が利用者によりＰＣ−Ｄ１１３から切断もしくは利用不能状態とされた際のプラグアウト処理について説明する。図１８は、本実施形態のデバイス管理システムにおいて、デバイスＡ１５１がＰＣ−Ｄ１１３から切断もしくは利用不能状態（プラグアウト）にされた際の動作を説明するフローである。
【０２８８】
デバイスＡ１５１がＰＣ−Ｄ１１３からプラグアウトされると、ＰＣ−Ｄ１１３上のＯＳ１７０２がプラグアウトを検知し、フィルタドライバ１５１４にプラグアウト通知を行う（１８０１）。フィルタドライバ１５１４及び通信プログラム１５１０及び通信プログラム１５０８は、それぞれ通信プログラム１５１０、通信プログラム１５０８、擬似バスドライバ１５０４にプラグアウト通知を順に送信する（１８０２〜１８０４）。
【０２８９】
ここで、仮想デバイスマネージャ１２０は、デバイスＡ１５１を利用中のアプリケーション等がないかなど、デバイスＡ１５１のプラグアウトの可否の判断を行う。
【０２９０】
プラグアウト可能である場合、擬似バスドライバ１５０４は、以下に述べる起動用物理デバイスオブジェクト１５０５を消滅させるための手続きを行う。
【０２９１】
まず、擬似バスドライバ１５０４は、通信プログラム１５０８にイベント待ち要求を送信する（１８０５）と共に、ＯＳ１７０１にデバイス接続の無効確認を要求する（１８０６）。
【０２９２】
ＯＳ１７０１は、デバイス接続の無効確認のため、擬似バスドライバ１５０４及びその他のバスドライバに対し、オブジェクトのポインタ要求を行う（１８０７）。擬似バスドライバ１５０４及びその他のバスドライバは、自身の管理するドライバに対応する起動用物理デバイスオブジェクト１５０５やエニュメレータ１５０６等のオブジェクトポインタをＯＳ１７０１に送信する。ここで、擬似バスドライバ１５０４は、デバイスＡ１５１に対応するオブジェクトポインタが無効である旨を送信する（１８０８）。
【０２９３】
以上の処理が正常に完了した際に、ＯＳ１７０１は、擬似バスドライバ１５０４にデバイスの終了を許可する（１８０９）。処理が正常に完了しない場合は、デバイスの終了が認められない。１８０６〜１８０８の手続きが正常に行われない場合は、擬似バスドライバ１５０４は、利用者に対し、デバイスＡ１５１が正常にプラグアウトできない旨を通信プログラム１５０８を介しＧＵＩアプリケーション１５０７に表示するよう指示し、利用者に示すとともに、ＰＣ−Ａ１１０内や認証管理サーバ１０１のログに記録する。
【０２９４】
次に、擬似バスドライバ１５０４及び通信プログラム１５０８は、それぞれ通信プログラム１５１０及びフィルタドライバ１５１４にプラグアウト完了通知を行う（１８１１、１８１２）。この時点でデバイスＡ１５１用に生成した起動用物理デバイスオブジェクト１５０５は消滅する（１８１０）。通信プログラム１５１０は、イベント待ち要求をフィルタドライバ１５１４に送信し（１８１３）、以上の処理により、デバイスＡ１５１がＰＣ−Ｄ１１３からプラグアウトされる。
【０２９５】
なお、１８０４後のプラグアウトの可否の判断において、プラグアウト不可（利用中）と判断された場合、プラグアウト完了通知の替わりにプラグアウト不可通知が同様に擬似バスドライバ１５０４から通信プログラム１５０８、通信プログラム１５１０を介してフィルタドライバ１５１４に送信される。
【０２９６】
図１７及び図１８を用いて説明した新しいデバイスのプラグイン及びプラグアウト時には、新規のフィルタドライバ１５１４のインストールやアンインストールは行われていない。このため、ＰＣ−Ｄ１１３が利用者に対してデバイスドライバのインストール権限を与えないシステムである場合、ＰＣ−Ｄ１１３のＯＳがシンクライアント用の限定的なものである場合などであっても、利用者は新しくプラグインされたデバイスをＰＣ−Ａ１１０から容易に利用することができるとともに、安全に取り外し（プラグアウト）することが出来る。
【０２９７】
次に、以上のように説明したプラグインの処理中やプラグイン後にデバイスを利用している間に、デバイスドライバにおいて通信エラーなどが発生した場合や、利用者が、デバイスをプラグアウトした場合のシステムの動作を、図２６を用いて説明する。
【０２９８】
図２６は、デバイス管理マネージャ１２３にて管理されている、デバイスＡ１５１の利用状態の状態遷移図である。デバイス管理マネージャ１２３は，デバイスＡ１５１の状態を以下の３状態のいずれかとして管理する。すなわち，
「ＰＣ−Ａ１１０から制御可であり、ＰＣ−Ｄ１１３へはエラー応答を返し、ＰＣ−Ａ１１０へ接続可能」である状態２６０１と、
「ＰＣ−Ａ１１０では検知できない状態であり、ＰＣ−Ｄ１１３から制御可であり、ＰＣ−Ａ１１０へ接続可能」である状態２６０２と、
「ＰＣ−Ａ１１０では検知できない状態であり、ＰＣ−Ｄ１１３から制御可であり、ＰＣ−Ａ１１０へ接続不可」である状態２６０３，である。
【０２９９】
デバイスＡ１５１がＰＣ−Ｄ１１３に接続された直後は、デバイスＡ１５１は、状態２６０２であるとデバイス管理マネージャ１２３内に記録される。この状態２６０２では、デバイスＡ１５１は、ＰＣ−Ｄ１１３上のアプリケーション等から利用が可能である。
【０３００】
この状態２６０２で、図１７を用いて説明したプラグイン動作が完了し、プラグイン完了通知１７１８をデバイス管理マネージャ１２３が受信した後、デバイスＡ１５１は、状態２６０１に遷移（２６１１）したとデバイス管理マネージャ１２３は認識し，記録する。この状態２６０１では、デバイスＡ１５１は、ＰＣ−Ａ１１０上のアプリケーション等から制御が可能な状態になっている。また、ＰＣ−Ｄ１１３上のアプリケーション等から送信されるデバイスＡ１５１へのリクエストは、フィルタドライバ１５１４からエラーを含むリクエストが返されるなどするため、デバイスＡ１５１へ到達せず，結果的に，ＰＣ−Ｄ１１３からは制御できない状態になっている。
【０３０１】
状態２６０１から、図１８を用いて説明したプラグアウト処理が行われると、デバイスＡ１５１の状態は、状態２６０２へ遷移（２６１２）し、遷移した状態は，デバイス管理マネージャ１２３が認識し，記録する。
【０３０２】
デバイスＡ１５１の状態が状態２６０１であって、仮想デバイスマネージャ１２０内でエラーが検知されるか、利用者の指示により、図１８を用いて説明したデバイスＡ１５１のプラグアウト処理が行われた場合、デバイスＡ１５１の状態は、状態２６０３へ遷移（２６１３）する。
【０３０３】
状態２６０３は、プラグアウトされたデバイスＡ１５１を一旦ＰＣ−Ａ１１０に再接続できない状態にするために設けている。この状態２６０３に遷移することにより、仮想デバイスマネージャ１２０内でデバイスＡ１５１に関するエラーが検知されて，または、デバイスＡ１５１が利用者の指示により，デバイスＡ１５１がプラグアウトされた場合に、デバイス管理マネージャ１２３がデバイスＡ１５１をプラグインし、再び同じエラーが起こるのを防ぐことが可能になる。
【０３０４】
状態２６０３は、デバイスＡ１５１を物理的にデバイスバスから切り離した後、再度物理的にデバイスバスに接続することにより状態２６０２に遷移（２６１４）する。利用者は、一度デバイス管理マネージャ１２３にて状態２６０３であると記憶されているデバイスを再びＰＣ−Ａ１２０上のアプリケーション等から利用するためには、物理的にデバイスバスから切り離す必要がある。
【０３０５】
次に、ＰＣ−Ｄ１１３またはＰＣ−Ａ１１０の電源が切断、もしくは休止状態もしくはサスペンド状態（省電力状態）への移行が起こった場合のシステムの動作について図２４及び図２５を用いて説明する。
【０３０６】
図２４は、ＰＣ−Ｄ１１３にて電源が切断されたか、もしくは休止状態もしくはサスペンド状態への移行が起こった場合のシーケンス図である。ＰＣ−Ｄ１１３のＯＳから電源の切断もしくは休止状態もしくはサスペンド状態への移行がデバイス管理マネージャ１２３に指示される（２４０１）と、デバイス管理マネージャ１２３は、認証管理サーバ１０１及び仮想デバイスマネージャ１２０に切断要求を送信する（２４０２，２４０３）。
【０３０７】
切断要求２４０２を受信した認証管理サーバ１０１は、テーブルの更新（６０１）を行い、システム内で接続されているデバイスと例えばＰＣ−Ａ１１０やＰＣ−Ｄ１１３のような機器との関係を示すテーブルの更新を行う。
【０３０８】
切断要求２４０３を受信した仮想デバイスマネージャ１２０は、仮想デバイスマネージャ１２０内で処理している、ＰＣ−Ｄ１１３に接続されているデバイスに関連する処理中のリクエストを完了する（２４０７）。完了の方法は、デバイスの種別に依存するが、例えば、リクエストに対して，タイムアウトが発生したなどのエラー情報を含んだ返答を送信する。次に仮想デバイスマネージャ１２０は、ＰＣ−Ｄ１１３に接続されているデバイスに関連するデバイスドライバの無効化を行う（２４０８）。次に、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３との間に構築した通信チャネルの破棄（セッションの切断）を行う（２４０９）。
【０３０９】
通信チャネルの破棄（セッションの切断）（２４０９）と処理中リクエストの完了（２４０７）やドライバの無効化（２４０８）を行う順序は、デバイスドライバがデバイス管理マネージャ１２３との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先に処理中リクエストの完了（２４０７）やドライバの無効化（２４０８）の処理を行い、その後にタイムアウトが起きてしまっている通信チャネルの破棄（セッションの切断）を行うことが望ましい。 切断要求を送信したデバイス管理マネージャ１２３は、全てのデバイスのプラグアウト処理を行い（２４０４）、プラグアウトに成功したデバイスのデバイスドライバは、ＰＣ−Ｄ１１３のメモリ上からアンロードされる（２４０５）。次にデバイス管理マネージャ１２３は、仮想デバイスマネージャ１２０との間に構築した全ての通信チャネルの破棄（セッションの切断）を行う（２４０６）。
【０３１０】
通信チャネルの破棄（セッションの切断）（２４０６）とデバイスのプラグアウト処理（２４０４）や再有効化（２４０５）を行う順序は、デバイスドライバやデバイスＡ１５１上で動作しているファームウェアが仮想デバイスマネージャ１２０との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先にデバイスのプラグアウト処理（２４０４）や再有効化（２４０５）の処理を行い、その後にタイムアウトが起きてしまっている通信チャネルの破棄（セッションの切断）（２４０６）を行うことが望ましい。
【０３１１】
図２５は、ＰＣ−Ａ１１０にて電源の切断処理が開始されたか、もしくは休止状態もしくはサスペンド状態への移行が起こった場合のシーケンス図である。ＰＣ−Ａ１１０のＯＳから電源の切断処理開始もしくは休止状態もしくはサスペンド状態への移行が仮想デバイスマネージャ１２０に指示される（２５０１）と、仮想デバイスマネージャ１２０は、認証管理サーバ１０１及びデバイス管理マネージャ１２３に切断要求を送信する（２５０２，２５０３）。
【０３１２】
切断要求２５０２を受信した認証管理サーバ１０１は、テーブルの更新（６０１）を行い、システム内で接続されているデバイスと例えばＰＣ−Ａ１１０やＰＣ−Ｄ１１３のような機器との関係を示すテーブルの更新を行う。
【０３１３】
切断要求２５０３を受信したデバイス管理マネージャ１２３は、ＰＣ−Ａ１１０に関連する全てのデバイスのプラグアウト処理を行い（２５０４）、プラグアウトに成功したデバイスのデバイスドライバは、再度有効化される（２５０５）。この再有効化処理２５０５の中で、デバイスＡ１５１には再起動用の信号が送信される。このため再有効化処理２５０５の後には、処理２２１０に示したデバイスクラスドライバ１５１３からのリクエストの遮断が解除され、デバイスＡ１５１は、ＰＣ−Ｄ１１３上のアプリケーションから利用可能となる。
【０３１４】
次にデバイス管理マネージャ１２３は、仮想デバイスマネージャ１２０との間に構築した通信チャネルの破棄（セッションの切断）を行う（２４０６）。
【０３１５】
通信チャネルの破棄（セッションの切断）（２４０６）とデバイスのプラグアウト処理（２５０４）や再有効化（２５０５）を行う順序は、デバイスドライバやデバイスＡ１５１上で動作しているファームウェアが仮想デバイスマネージャ１２０との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先にデバイスのプラグアウト処理（２５０４）や再有効化（２５０５）の処理を行い、後にタイムアウトが起きてしまっている通信チャネルの破棄（セッションの切断）（２４０６）を行うことが望ましい。
【０３１６】
無効化したデバイスドライバを再度有効化する処理２５０５を行う理由を説明する。デバイスＡ１５１のような周辺機器は、電源投入後から、接続されているＰＣ−Ｄ１１３のＯＳとデバイスドライバの指示により動作する。デバイスドライバがデバイスに送信するリクエストは、一般的にリクエストの順番が管理されている。よって、リクエストの遮断を解除する際、デバイスとデバイスドライバの無効化と再有効化を行うことにより、デバイスの状態を初期化し、新たにデバイスをＰＣ−Ｄ１１３上のアプリケーションから利用可能となる。
【０３１７】
切断要求を送信した仮想デバイスマネージャ１２０は、仮想デバイスマネージャ１２０内で処理している全てのデバイスに関連する処理中のリクエストを完了する（２５０７）。完了の方法は、デバイスの種別に依存するが、例えば、タイムアウトが発生したなどのエラー情報を含んだリクエストに対するレスポンスを送信する。次に仮想デバイスマネージャ１２０は、ＰＣ−Ｄ１１３に接続されているデバイスに関連するデバイスドライバの無効化を行う（２５０８）。次に、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３との間に構築した全ての通信チャネルの破棄（セッションの切断）を行う（２４０９）。
【０３１８】
通信チャネルの破棄（セッションの切断）（２４０９）と処理中リクエストの完了（２５０７）やドライバの無効化（２５０８）を行う順序は、デバイスドライバがデバイス管理マネージャ１２３との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先に処理中リクエストの完了（２５０７）やドライバの無効化（２５０８）の処理を行い、その後に通信チャネルの破棄（セッションの切断）（２４０９）を行うことが望ましい。
【０３１９】
ここで、認証管理サーバ１０１への切断要求の送信を行う手順２４０２及び２５０２は必須ではなく、ＰＣ−Ｄ１１３に接続されたデバイスが図１８を用いて説明した状態遷移の中で、どの状態になっているかを仮想デバイスマネージャ１２０及びデバイス管理マネージャ１２３が共有できていればよい。
【０３２０】
次に、仮想デバイスマネージャ１２０もしくは、デバイス管理マネージャ１２３において、通信のタイムアウトが検出され、仮想デバイスマネージャ１２０もしくは、デバイス管理マネージャ１２３が構築した通信チャネルを破棄（セッションを切断）する場合のシステムの動作について図２６、図２７を用いて説明する。
【０３２１】
図２７は、ＰＣ−Ｄ１１３において、デバイス管理マネージャ１２３が，予め定められた時間，仮想デバイスマネージャ１２０との通信を確認できず、タイムアウトと判断した場合のシーケンス図である。
【０３２２】
デバイス管理マネージャ１２３が、タイムアウトを検出する（２７０１）と、デバイス管理マネージャ１２３は、認証管理サーバ１０１にタイムアウトを検知したという検知結果を送信する（２７０２）。検知結果を受信した認証管理サーバ１０１は、テーブルの更新（６１０）を行い、システム内で接続されているデバイスと例えばＰＣ−Ａ１１０やＰＣ−Ｄ１１３のような機器との関係を示すテーブルの更新を行う。
【０３２３】
タイムアウトを検知したデバイス管理マネージャ１２３は、仮想デバイスマネージャ１２０に関連するＰＣ−Ｄ１１３上のデバイスのプラグアウト処理を行い（２５０４）、プラグアウトに成功したデバイスのデバイスドライバ，すなわち，上位ドライバ１５１２，デバイスクラスドライバ１５１３，フィルタドライバ１５１４を、再度有効化する（２５０５）。
【０３２４】
この再有効化処理２５０５の中で、フィルタドライバ１５１４は，デバイスＡ１５１に再起動用の信号を送信し，また，２２１０に示したデバイスクラスドライバ１５１３からのリクエストの遮断を解除する。これらの処理により、デバイスＡ１５１は、ＰＣ−Ｄ１１３上のアプリケーションから利用可能となる。
【０３２５】
次にデバイス管理マネージャ１２３は、仮想デバイスマネージャ１２０との間に構築した通信チャネルの破棄（セッションの切断）を行う（２４０６）。
【０３２６】
通信チャネルの破棄（セッションの切断）（２４０６）とデバイスのプラグアウト処理（２５０４）や再有効化（２５０５）を行う順序は、デバイスドライバやデバイスＡ１５１上で動作しているファームウェアが仮想デバイスマネージャ１２０との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先にデバイスのプラグアウト処理（２５０４）や再有効化（２５０５）の処理を行い、その後にタイムアウトが起きてしまっている通信チャネルの破棄（セッションの切断）（２４０６）を行うことが望ましい。
【０３２７】
図２８は、ＰＣ−Ａ１１０において、仮想デバイスマネージャ１２０が，予め定められた時間，デバイス管理マネージャ１２３との通信を確認できず、タイムアウトと判断した場合のシーケンス図である。仮想デバイスマネージャ１２０が、タイムアウトを検出する（２８０１）と、仮想デバイスマネージャ１２０は、認証管理サーバ１０１にタイムアウトを検知したという検知結果を送信する（２８０２）。検知結果を受信した認証管理サーバ１０１は、テーブルの更新（６１０）を行い、システム内で接続されているデバイスと例えばＰＣ−Ａ１１０やＰＣ−Ｄ１１３のような機器との関係を示すテーブルの更新を行う。
【０３２８】
タイムアウトを検知した仮想デバイスマネージャ１２０は、ＰＣ−Ｄ１１３上のデバイス管理マネージャ１２３に関連するデバイスに対して行っている処理中のリクエストを処理する（２４０７）。処理の方法は、デバイスの種別に依存するが、例えば、タイムアウトが発生したなどのエラー情報を含んだ，リクエストに対する返答を送信する。 次に仮想デバイスマネージャ１２０は、ＰＣ−Ｄ１１３に接続されているデバイスに関連するデバイスドライバの無効化を行う（２４０８）。次に、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３との間に構築した通信チャネルの破棄（セッションの切断）を行う（２４０９）。
【０３２９】
通信チャネルの破棄（セッションの切断）（２４０９）と処理中リクエストの完了（２４０７）やドライバの無効化（２４０８）を行う順序は、デバイスドライバがデバイス管理マネージャ１２３との通信が途絶えていることによって、ハングアップする可能性を極力低めるために、先に処理中リクエストの完了（２４０７）やドライバの無効化（２４０８）の処理を行い、その後にタイムアウトが起きてしまっている通信チャネルの破棄（セッションの切断）（２４０９）を行うことが望ましい。
【０３３０】
ここで、認証管理サーバ１０１への検知結果の送信を行う手順２７０２及び２８０２は必須ではない。ＰＣ−Ｄ１１３に接続されたデバイスが図１８を用いて説明した状態遷移の中で、どの状態になっているかを仮想デバイスマネージャ１２０もしくはデバイス管理マネージャ１２３が検知していれば良い。
【０３３１】
仮想デバイスマネージャ１２０とデバイス管理マネージャ１２３の通信が復旧した場合、ＰＣ−Ｄ１１３に接続されたデバイスの状態を仮想デバイスマネージャ１２０とデバイス管理マネージャ１２３の間で共有し、共有した結果は、認証管理サーバ１０１へ送信される。 次に、仮想デバイスマネージャ１２０が生成し表示させるデバイス管理画面の詳細について説明する。図１２は、仮想デバイスマネージャ１２０のデバイス管理画面の一例である。
【０３３２】
本図に示すように、デバイス管理画面９００は、認証管理サーバ表示部９０１と、接続ＰＣハブ表示部９０２、９０５、９０８、９１１と、デバイス表示部９０３、９０６、９０９、９１２と、接続切断指示部９０４、９０７、９１０、９１３とを備える。
【０３３３】
仮想デバイスマネージャ１２０は、起動されると予め指定されている認証管理サーバ１０１に、利用可能なデバイス情報を取得するよう要求を送る。
【０３３４】
認証管理サーバ１０１において、利用者の認証に成功した後、デバイス管理マネージャ１２３からデバイス管理情報が仮想デバイスマネージャ１２０に送付される。受け取ったデバイス管理情報に従って、仮想デバイスマネージャ１２０は、利用可能なデバイスの情報などを管理する。
【０３３５】
図１２において認証管理サーバ表示部９０１には、仮想デバイスマネージャ１２０が通信している認証管理サーバ１０１が表示される。図１２に示す例では仮想デバイスマネージャ１２０が認証管理サーバ１０１と通信に成功している様子が表示されている。ここで、１９２．１６８．０．１と表示されているのは、認証管理サーバ１０１のアドレスである。
【０３３６】
ステータス９２０には、認証管理サーバ１０１のステータスが表示される。ここでは、ステータスとして利用可能ユーザＩＤは何か、利用者名は何かなどが表示されている。図１２の例ではユーザＡが認証されている様子が表示されている。
【０３３７】
接続ＰＣハブ表示部９０２、９０５、９０８、９１１は、接続されているＰＣ、ハブの情報が表示される。また、利用者が現在使用中のデバイスが色分けされ表示されている。
【０３３８】
デバイス表示部９０３、９０６、９０９、９１２には、デバイスの名称やステータス、利用者ＩＤなどの情報が表示され、利用者がどのデバイスを使用可能なのかといった情報が分かり易く表示される。
【０３３９】
接続切断指示部９０４、９０７、９１０、９１３には、デバイスの利用や専有化、利用停止、予約など、利用者が指示を与えることの出来る選択肢を表示させる。仮想デバイスマネージャ１２０は、予約ボタンの押下を受け付けることにより、現在他者が利用中のデバイスの利用予約を行う。そして、デバイスが利用可能となった場合、認証管理サーバ１０１もしくはデバイス管理マネージャ１２３に利用可能となった旨の通知を行う。通知を受けたデバイス管理マネージャ１２３は、利用者に利用可能となった旨の通知を行う。図１２の例では、利用者が利用できるデバイスはハッチングで示され、また利用者が行うことが可能な操作は太字のボタンで示され、操作しやすくなるように配慮されている。
【０３４０】
以上、ＰＣ−Ｄ１１３を用いてブレードサーバ１０６内のＰＣ−Ａ１１０を利用するサーバクライアント方式について説明を行った。
【０３４１】
すでに説明した例と同様にネットワーク１０３及びインターネット１０４に接続されたクライアント装置から、ブレードサーバ１０６内のいずれかのＰＣを利用し、また、デバイスＡ１５１〜デバイスＺ１５５を使うことが可能である。
【０３４２】
ここで、ハブ１１６は、ＰＣとしての機能は持たないが、内部に管理マネージャ１２６およびストレージ１７６を持つ組み込み機器である。ＰＣ−Ｅ１１４のようにデバイスを接続していないＰＣを利用する場合も、ＰＣ−Ｄ１１３の例と同様に他のＰＣ等に接続されているデバイスを使用することが可能である。また、ハブ１１６のように複数台のデバイスを接続していても同様である。
【０３４３】
さらに、インターネット１０４及びファイヤウォール１０５を介したＰＣ−Ｚ１１７を利用してネットワーク１０３上のＰＣやデバイスを利用する場合も、基本的に同様である。ただし、この場合、ＰＣ−Ｚ１１７は、インターネット１０４上の通信を暗号化する暗号化アプリケーション１９０を内部に持ち、暗号化して通信を行うことが望ましい。
【０３４４】
以上説明したように、本実施形態のデバイス管理システムによれば、デバイス管理マネージャ１２３が稼動するＰＣ等の情報機器に接続されたデバイスをサーバ上にインストールされた仮想デバイスマネージャ１２０がサーバに仮想的に接続しているように設定する。従って、利用者が手元で操作するＰＣ、シンクライアントなどの手元の情報端末と利用者が手元の情報端末を利用する場所と隔たりのある場所に設置されたサーバとの間でデバイスを安全かつ簡便に共有することができ、利用者の利便性が向上する。また、デバイスを共有する手順の中で認証を行い、デバイスを利用者が利用できるかどうかをルール付けることにより、システム利用時のセキュリティの向上を図ることができる。
【０３４５】
また、本実施形態によれば、クライアント側にデバイスを動作させる物理バスドライバとのデータの送受信相手を排他制御するフィルタドライバを設け、サーバ側には通信プログラムとの間で擬似的に物理バスドライバと同様の動きをする擬似バスドライバを設けたため、デバイスを接続するのみで、他の操作なしでサーバ側からクライアントに接続されたデバイスを使用することができる（プラグアンドプレイ）。
【０３４６】
サーバとデバイスとが仮想的に接続されるため、操作したＰＣ等の情報機器に残る機密情報を低減することができ、サーバクライアント方式の情報処理システムにおいて、利用者の情報機器利用時のセキュリティを向上させることができる。
【０３４７】
また、本実施形態によれば、サーバ及びクライアント側に電源切断処理やサスペンドもしくは休止状態への移行が行われた際や、サーバとクライアントの間の通信が途絶えた際に、クライアント側でリクエストの遮断の解除やデバイスの無効化及び有効化を行い、クライアントに接続していながら，クライアントからの利用を禁止しサーバから利用可能としていたデバイスを，再度クライアントから利用可能とすることにより、利用者の利便性を向上させることができる。
【０３４８】
＜＜第二の実施形態＞＞
次に、本発明を適用した第二の実施形態について説明する。本実施形態は、基本的に上述の第一の実施形態と同様の構成を有する。ただし、第一の実施形態では、通信プログラム１５０８と通信プログラム１５１０とがネットワーク１０３を介して直接通信していたが、本実施形態では、遠隔操作プログラムを介して通信を行う。遠隔操作プログラムとは、２台のＰＣ上で動作する２つのプログラムがネットワークを介して通信を行い、一方のプログラムが動作するＰＣの画面上に他方のプログラムが動作するＰＣの画面の全部または一部を表示するものである。利用者は、遠隔操作プログラムが動作している間は一方のＰＣの画面上に他方のＰＣの画面を表示される。このとき、利用者が物理的に利用しているＰＣへのマウスやキーボード、マイク等を利用した入力操作は、すべて遠隔操作しているＰＣへ送信されるため、利用者は簡単に遠隔地からＰＣを遠隔操作することが出来る。
【０３４９】
以下に，第一の実施形態との相違点を説明する。その他の処理は，第一の実施形態と同様である。
【０３５０】
図１９は、本実施形態のデバイス管理システムにおける、第一の実施形態の図１に示すＰＣ−Ａ１１０とＰＣ−Ｄ１１３との間でのデバイス共有時のデータ送受信制御に必要となるソフトウェアを説明するための図である。
【０３５１】
第一の実施形態に示したデバイス管理システムでは、通信プログラム１５０８と通信プログラム１５１０とが直接ネットワーク１０３を介して通信している。一方、本実施形態では、通信プログラム１５０８は、ＰＣ−Ａ１１０のメモリ上にロードされた遠隔操作プログラム１９０１と通信を行い、ＰＣ−Ｄ１１３の通信プログラム１５１０は、ＰＣ−Ｄ１１３のメモリ上にロードされた遠隔操作プログラム１９０２と通信を行う。そして、遠隔操作プログラム１９０１と遠隔操作プログラム１９０２とが互いに通信を行う。
【０３５２】
遠隔操作プログラム１９０１及び遠隔操作プログラム１９０２は、利用者がＰＣ−Ｄ１１３からＰＣ−Ａ１１０にログインする、ＰＣ−Ａ１１０のメモリ上で動作するプログラムの処理結果をＰＣ−Ｄ１１３の画面上に表示させる、等の機能を実現するプログラムである。
【０３５３】
遠隔操作プログラム１９０１は、予め定められた認証を経て遠隔操作プログラム１９０２と接続を行っている。このため、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３に認証要求を行う必要がない。従って、ＰＣ−Ｄ１１３の内部に認証管理サーバ１０１にアクセスするために必要な認証管理サーバ１０１のＩＰアドレス情報等を保持する、あるいは、利用者に認証管理サーバ１０１にアクセスするための情報の入力を強いる必要がない。デバイスＡ１５１が接続されているか否かといった情報、接続されてよいデバイスの種別といったポリシーは、認証管理サーバ１０１から仮想デバイスマネージャ１２０を介してデバイス管理システムに送信される。このため、本実施形態では、ＰＣ−Ｄ１１３側が、例えば、シンクライアントのように、単純な機能のみを有する情報処理装置であってもよい。
【０３５４】
また、本実施形態においては、ＰＣ−Ｄ１１３のデバイス管理マネージャ１２３側から認証管理サーバ１０１にアクセスしないため、デバイス共有処理時の処理フローおよびデバイス共有終了処理の処理フローは、以下の通りである。
【０３５５】
図２０は、本実施形態のデバイス管理システムにおけるデバイス共有処理の処理フローである。ここでは、第一の実施形態の図６と同じ処理には同じ符号を付す。
【０３５６】
本実施形態では、デバイス管理マネージャ１２３及び仮想デバイスマネージャ１２０は、遠隔操作プログラム１９０１及び遠隔操作プログラム１９０２を介して通信を行う。
【０３５７】
本図に示すように、本実施形態のデバイス共有処理の処理フローは、基本的に第一の実施形態の図６に記載のものと同様である。しかし、本実施形態の処理フローでは第一の実施形態に示したデバイス共有処理の処理フローと異なり、図６の５０４、５０５、５１５〜５２３、５９１、５９２、５２９、５３０、５３１の処理が省略される。これは、上述したように、デバイス管理マネージャ１２３から認証サーバ１０１へのアクセスを行わないからである。
【０３５８】
また、第一の実施形態の処理フローと異なり、チャネル生成（５３４）の後に、生成されたチャネルの情報が仮想デバイスマネージャ１２０から遠隔操作プログラム１９０１を介して認証管理サーバ１０１に送信される（チャネル生成情報の送信の処理；２００１）。これは、デバイス管理マネージャ１２３は、遠隔操作プログラム１９０２経由で接続された仮想デバイスマネージャ１２０に対して、デバイス管理マネージャ１２３の管理下にあるすべてのデバイスの利用権限を付与することを意味する。
【０３５９】
次に図２１を用いて、本実施形態のデバイス管理システムにおけるデバイス共有終了処理の処理フローを説明する。ここでは、第一の実施形態の図７と同じ処理には同じ符号を付す。
【０３６０】
本実施形態のデバイス共有終了処理時の処理フローは基本的に第一の実施形態の図７に示す処理と同様である。ただし、本実施形態の場合、認証管理サーバ１０１からデバイス解放情報送信（６０６）を行わない。その替わり、仮想デバイスマネージャ１２０が、デバイス利用終了要求元のデバイス管理マネージャ１２３に、指示されたデバイスの利用が終了したことを示す情報であるデバイス解放情報送信を行う（２１０１）。また、仮想デバイスマネージャ１２０との間に確立されていたチャネルを破棄し、チャネルの破棄に成功した場合、デバイス管理マネージャ１２３から認証管理サーバ１０１へチャネル破棄情報の送信（６０９）を行わない。その替わり、仮想デバイスマネージャ１２０がチャネル破棄後（６０８）、認証管理サーバ１０１にチャネルの破棄を終えたことを示す情報であるチャネル破棄情報を送信する（２１０２）。これは、上述したように、デバイス管理マネージャ１２３から認証サーバ１０１へのアクセスを行わないからである。
【０３６１】
以上説明したように、図２０及び図２１にて示した処理フローにおいては、デバイス管理マネージャ１２３が認証管理サーバ１０１の例えばＩＰアドレスのようなアクセス先アドレスを示すデータを保持しなくても処理フローが成立する。
【０３６２】
以上説明したように、本実施形態のデバイス管理システムによれば、デバイス管理マネージャ１２３が稼動するＰＣ等の情報機器に接続されたデバイスをサーバ上にインストールされた仮想デバイスマネージャ１２０がサーバに仮想的に接続しているように設定する。従って、利用者が手元で操作するＰＣ、シンクライアントなどの手元の情報端末と利用者が手元の情報端末を利用する場所と隔たりのある場所に設置されたサーバとの間でデバイスを安全かつ簡便に共有することができ、利用者の利便性が向上する。また、デバイスを共有する手順の中で認証を行い、デバイスを利用者が利用できるかどうかをルール付けることにより、システム利用時のセキュリティの向上を図ることができる。
【０３６３】
また、本実施形態によれば、クライアント側にデバイスを動作させる物理バスドライバとのデータの送受信相手を排他制御するフィルタドライバを設け、サーバ側には通信プログラムとの間で擬似的に物理バスドライバと同様の動きをする擬似バスドライバを設けたため、デバイスを接続するのみで、他の操作なしでサーバ側からクライアントに接続されたデバイスを使用することができる（プラグアンドプレイ）。
【０３６４】
サーバとデバイスとが仮想的に接続されるため、操作したＰＣ等の情報機器に残る機密情報を低減することができ、サーバクライアント方式の情報処理システムにおいて、利用者の情報機器利用時のセキュリティを向上させることができる。
【０３６５】
さらに、本実施形態のデバイス管理システムにおいては、遠隔操作プログラム１９０１と遠隔操作プログラム１９０２とが通信を開始していないとデバイス管理マネージャ１２３及び仮想デバイスマネージャ１２０が接続されない。このため、仮想デバイスマネージャ１２０は、デバイス管理マネージャ１２３に認証要求を行う必要がなく、第一の実施形態のデバイス管理システムと比較し、デバイス処理のフローを簡略化することが可能になり、不必要な通信コストが発生しない。また、管理認証サーバ１０１とデバイス管理マネージャ１２３とが直接通信を行わないため、ネットワーク構成を簡略化することが可能となる。
【０３６６】
上記のように、第一及び第二の実施形態に示したデバイス管理システムは、仮想デバイスマネージャ１２０とデバイス管理マネージャ１２３と認証管理サーバ１０１とによりクライアント装置であるＰＣ−Ｄ１１３等を介してネットワーク１０３に接続されたデバイスを管理することにより、システム内でのデバイスの共有を、安全かつ利用者に使い勝手良く実現することができる。
【０３６７】
また、第一及び第二の実施形態によれば、他のクライアント装置に接続されているデバイスであっても、あたかもサーバ１０６に直接接続されたデバイスであるかのように使用することが可能となる。すなわち、デバイスが、他のクライアント装置に接続されている場合であっても、そのデバイスを使用するために、各クライアント装置には特別な構成が必要とならない。従って、デバイスを、仮想的にサーバに接続する場合も、直接サーバに接続する場合も、同じ構成をとることが可能となり、システム全体の製造コストを低減できる。
【０３６８】
また、第一及び第二の実施形態によれば、認証管理サーバ１０１により、デバイスの許可、不許可を管理し、許可されないデバイスは共有するデバイス（仮想デバイス）として利用できないように設定することができる。このため、ネットワーク１０３上に接続されるデバイスの適切な管理を行うことが出来、サーバクライアントシステムにおいて、遠隔地にあるサーバとの間で、デバイスを共有する場合の安全性を高めることができる。
【０３６９】
また、第一及び第二の実施形態においては、主なプログラムやデータをサーバ側に蓄積し、クライアント側は主にサーバに操作指示を与えるだけの構成を有するサーバクライアントシステムである。従って、操作側のクライアント装置内に残る機密情報を低減するといった特徴を残しつつ、クライアント利用時のセキュリティ及び利便性を向上させた情報処理システムを提供できる。
【０３７０】
また、第一及び第二の実施形態では、デバイスがあたかもサーバに接続されているように振舞うため、ウィルスチェッカ等のセキュリティツールやデバイスを動作させるためのプログラムなど、デバイスを利用し、管理するプログラムはサーバ側のみにインストールすればよく、クライアント側には当該プログラムをインストール不要である。このため、システム全体のコストをさらに低減する効果がある。
【０３７１】
なお、上記の第一及び第二の実施形態では、サーバやクライアントにあたる情報機器を共にＰＣとして説明を行ったが、一方及び両方がサーバ、Ｐｅｒｓｏｎａｌ Ｄｉｇｉｔａｌ Ａｓｓｉｓｔａｎｔｓ（ＰＤＡ）、ワークステーション、高機能複写機、現金自動支払機（ＡＴＭ）、携帯電話、デジタルスチルカメラ、音楽再生（録音）装置、販売時点商品管理システム、街角端末、Ｉｎｔｅｌｌｉｇｅｎｔ Ｔｒａｎｓｐｏｒｔ Ｓｙｓｔｅｍｓ（ＩＴＳ）用送信機、券売機、決済端末、自動販売機、入退室管理装置、ゲーム機、公衆電話、注文取り用携帯端等であってもよい。これらの場合も同様の効果が得られる。
【符号の説明】
【０３７２】
１０１：認証管理サーバ、１０２：情報センタ、１０３：ネットワーク、１０４：インターネット、１０５：ファイヤウォール、１０６：ブレードサーバ、１１０：ＰＣ−Ａ、１１１：ＰＣ−Ｂ、１１２：ＰＣ−Ｃ、１１３：ＰＣ−Ｄ、１１４：ＰＣ−Ｅ、１１５：ＰＣ−Ｆ、１１６：ハブ、１１７：ＰＣ−Ｚ、１２０：仮想デバイスマネージャ、１２１：仮想デバイスマネージャ、１２２：仮想デバイスマネージャ、１２３：デバイス管理マネージャ、１２４：デバイス管理マネージャ、１２５：デバイス管理マネージャ、１２６：デバイス管理マネージャ、１２７：デバイス管理マネージャ、１５１：デバイスＡ、１５２：デバイスＢ、１５３：デバイスＣ、１５４：デバイスＤ、１５５：デバイスＺ、１６０：ストレージ、１６１：ストレージ、１６２：ストレージ、１６３：ストレージ、１６４：ストレージ、１６５：ストレージ、１６７：ストレージ、１７０：ログ、１７１：ログ、１７２：ログ、１７３：ログ、１７４：ログ、１７５：ログ、１７６：ログ、１７７：ログ、１５０１：アプリケーション、１５０２：上位ドライバ、１５０３：デバイスクラスドライバ、１５０４：擬似バスドライバ、１５０５：起動用物理デバイスオブジェクト、１５０６：エニュメレータ機能デバイスオブジェクト、１５０７：ＧＵＩアプリケーション、１５０８：通信プログラム、１５０９：ＧＵＩアプリケーション、１５１０：通信プログラム、１５１１：アプリケーション、１５１２：上位ドライバ、１５１３：デバイスクラスドライバ、１５１４：フィルタドライバ、１５１５：物理バスドライバ
【図１】
2011065679.tif 000003
【図２】
2011065679.tif 000004
【図３】
2011065679.tif 000005
【図４】
2011065679.tif 000006
【図５】
2011065679.tif 000007
【図６】
2011065679.tif 000008
【図７】
2011065679.tif 000009
【図８】
2011065679.tif 000010
【図９】
2011065679.tif 000011
【図１０】
2011065679.tif 000012
【図１１】
2011065679.tif 000013
【図１２】
2011065679.tif 000014
【図１３】
2011065679.tif 000015
【図１４】
2011065679.tif 000016
【図１５】
2011065679.tif 000017
【図１６】
2011065679.tif 000018
【図１７】
2011065679.tif 000019
【図１８】
2011065679.tif 000020
【図１９】
2011065679.tif 000021
【図２０】
2011065679.tif 000022
【図２１】
2011065679.tif 000023
【図２２】
2011065679.tif 000024
【図２３】
2011065679.tif 000025
【図２４】
2011065679.tif 000026
【図２５】
2011065679.tif 000027
【図２６】
2011065679.tif 000028
【図２７】
2011065679.tif 000029
【図２８】
2011065679.tif 000030
【手続補正書】
【提出日】平成22年11月29日(2010.11.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
サーバ装置と、一つ以上のデバイスが接続されたクライアント装置と、管理サーバ装置と、が、互いにネットワークで接続されたクライアントサーバシステムにおいて、
前記クライアント装置は、
当該クライアント装置の利用者の識別情報を前記サーバ装置に送信する機能と、
前記サーバ装置へ、接続されている前記デバイスの種別情報を送信する機能と、
前記サーバ装置から、接続された前記デバイスのいずれか一つ以上を対象とする命令を受信し、受信した前記命令に従い、対象となる前記デバイスを制御する機能と、
を備えるクライアント側ドライバ手段を備え、
前記サーバ装置は、
前記利用者の識別情報と、前記デバイスの種別情報と、を前記クライアント装置から受信し、
前記利用者の識別情報と、前記デバイスの種別情報と、を含む判定用情報を前記管理サーバ装置へ送信し、
前記管理サーバ装置から、前記クライアント装置に接続された前記デバイスの利用可否に係わる判定結果を受信し、
前記判定結果に従って、前記クライアント側ドライバ手段への、前記デバイスを対象とする命令の送信を制御する管理手段と、
前記管理手段の制御により、当該サーバ装置上のアプリケーション手段の指示による前記デバイスのいずれか一つ以上を対象とする命令を生成し、前記クライアント側ドライバ手段へ前記命令を送信するサーバ側ドライバ手段と、を備え、
前記管理サーバ装置は、
前記クライアント装置の利用者の識別情報と、前記デバイスのうち前記利用者が利用可能なデバイスと、を対応付ける情報を保持する手段と、
受信した前記判定用情報と、自装置が保持する前記対応付ける情報と、に基づき、前記デバイスを利用可能であるか判定し、前記判定結果を前記サーバ装置へ送信する手段と、を備える
ことを特徴とするクライアントサーバシステム。
【請求項２】
サーバ装置と、一つ以上のデバイスが接続されたクライアント装置と、管理サーバ装置と、が、互いにネットワークで接続されたクライアントサーバシステムにおいて、
前記クライアント装置は、
当該クライアント装置の利用者の識別情報を前記サーバ装置に送信する機能と、
前記サーバ装置へ、当該クライアント装置の識別情報と、接続されている前記デバイスの種別情報と、を送信する機能と、
前記サーバ装置から、接続された前記デバイスのいずれか一つ以上を対象とする命令を受信し、受信した前記命令に従い、対象となる前記デバイスを制御する機能と、
を備えるクライアント側ドライバ手段を備え、
前記サーバ装置は、
前記利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を前記クライアント装置から受信し、
前記利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を含む判定用情報を前記管理サーバ装置へ送信し、
前記管理サーバ装置から、前記クライアント装置に接続された前記デバイスの利用可否に係わる判定結果を受信し、
前記判定結果に従って、前記クライアント側ドライバ手段への、前記デバイスを対象とする命令の送信を制御する管理手段と、
前記管理手段の制御により、当該サーバ装置上のアプリケーション手段の指示による前記デバイスのいずれか一つ以上を対象とする命令を生成し、前記クライアント側ドライバ手段へ前記命令を送信するサーバ側ドライバ手段と、を備え、
前記管理サーバ装置は、
前記クライアント装置の利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスのうち、前記クライアント装置において前記利用者が利用可能なデバイスと、を対応付ける情報を保持する手段と、
受信した前記判定用情報と、自装置が保持する前記対応付ける情報と、に基づき、前記デバイスを利用可能であるか判定し、前記判定結果を前記サーバ装置へ送信する手段と、を備える
ことを特徴とするクライアントサーバシステム。
【請求項３】
サーバ装置と、一つ以上のデバイスが接続されたクライアント装置と、管理サーバ装置と、が、互いにネットワークで接続されたクライアントサーバシステムにおいて、
前記クライアント装置は、
当該クライアント装置の利用者の識別情報を前記サーバ装置に送信する機能と、
前記サーバ装置へ、当該クライアント装置の識別情報と、接続されている前記デバイスの種別情報と、を送信する機能と、
前記サーバ装置から、接続された前記デバイスのいずれか一つ以上を対象とする命令を受信し、受信した前記命令に従い、対象となる前記デバイスを制御する機能と、
を備えるクライアント側ドライバ手段を備え、
前記サーバ装置は、
前記利用者の識別情報を受信せず、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を前記クライアント装置から受信した場合に、前記利用者の識別情報を含まず、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を含む第一の判定用情報を前記管理サーバ装置へ送信し、
前記管理サーバ装置から、前記第一の判定用情報に基づく、前記クライアント装置に接続された前記デバイスの利用可否に係わる第一の判定結果を受信し、
前記第一の判定用情報を前記サーバ装置に送信した後に、前記利用者の識別情報を前記クライアント装置から受信した場合に、前記利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスの種別情報と、を含む第二の判定用情報を前記管理サーバ装置へ送信し、
前記管理サーバ装置から、前記第二の判定用情報に基づく、前記クライアント装置に接続された前記デバイスの利用可否に係わる第二の判定結果を受信し、
前記第一の判定結果または前記第二の判定結果に従って、前記クライアント側ドライバ手段への、前記デバイスを対象とする命令の送信を制御する管理手段と、
前記管理手段の制御により、当該サーバ装置上のアプリケーション手段の指示による前記デバイスのいずれか一つ以上を対象とする命令を生成し、前記クライアント側ドライバ手段へ前記命令を送信するサーバ側ドライバ手段と、を備え、
前記管理サーバ装置は、
前記クライアント装置の、未定義の利用者を含む利用者の識別情報と、前記クライアント装置の識別情報と、前記デバイスのうち、前記クライアント装置において前記利用者が利用可能なデバイスと、を対応付ける情報を保持する手段と、
受信した前記第一の判定用情報または前記第二の判定用情報と、自装置が保持する前記対応付ける情報と、に基づき、前記デバイスを利用可能であるか判定し、前記第一の判定結果または第二の判定結果を前記サーバ装置へ送信する手段と、を備える
ことを特徴とするクライアントサーバシステム。