以下、本発明の実施の形態について、図面を参照して詳細に説明する。
(第1の実施の形態)
本発明の第1の実施の形態としての情報処理システム1の構成を図1に示す。図1において、情報処理システム1は、資源管理装置10と、周辺機器実装装置20と、コンピュータ装置30と、ネットワーク中継装置40とを含む。周辺機器実装装置20は、1つ以上の周辺機器90を実装することが可能な装置である。また、ネットワーク中継装置40は、資源管理装置10と、周辺機器実装装置20と、コンピュータ装置30との間の通信を中継するよう配置される。なお、図1において、資源管理装置10と、周辺機器実装装置20と、コンピュータ装置30と、ネットワーク中継装置40とを1つずつ示したが、本発明の情報処理システムが備える各装置の数を限定するものではない。また、図1において、3つの周辺機器90を示したが、本発明の周辺機器実装装置に実装される周辺機器の数を限定するものではない。
ここで、図2に示すように、資源管理装置10は、CPU(Central Processing Unit)1001と、RAM(Random Access Memory)1002と、ROM(Read Only Memory)1003と、ハードディスク等の記憶装置1004と、ネットワークインタフェース1005と、周辺機器ネットワーク接続インタフェース1006とによって構成可能である。
また、図2に示すように、周辺機器実装装置20は、周辺機器90を実装する1つ以上のスロット2009と、各スロット2009に対応した周辺機器ネットワーク接続インタフェース2006とによって構成可能である。
また、図2に示すように、コンピュータ装置30は、CPU3001と、RAM3002と、ROM3003と、ハードディスク等の記憶装置3004と、ネットワークインタフェース3005と、周辺機器ネットワーク接続インタフェース3006と、入力装置3007と、出力装置3008とによって構成可能である。
なお、周辺機器ネットワーク接続インタフェース1006、2006、および、3006は、例えば、ExpEtherボードであってもよい。ExpEtherとは、前述のように、PCI ExpressバスをEthernet上に拡張する技術である。ExpEtherボードは、Ethernetネットワークを介して周辺機器およびコンピュータ装置との間で接続用のEtherフレームを送受信することにより、周辺機器およびコンピュータ装置を接続する。
また、図2に示すように、ネットワーク中継装置40は、例えば、仮想ネットワークを生成可能なレイヤ2スイッチによって構成可能である。ネットワーク中継装置40は、接続ポートに基づく仮想ネットワークの他、ネットワーク識別情報に基づく仮想ネットワークを生成可能な装置であればよい。
図2において、ネットワーク中継装置40には、資源管理装置10のネットワークインタフェース1005と、周辺機器ネットワーク接続インタフェース1006とが接続される。また、ネットワーク中継装置40には、周辺機器実装装置20の各周辺機器ネットワーク接続インタフェース2006が接続される。また、ネットワーク中継装置40には、コンピュータ装置30のネットワークインタフェース3005と、周辺機器ネットワーク接続インタフェース3006とが接続される。
次に、情報処理システム1を構成する各装置の機能ブロックを図3に示す。図3において、資源管理装置10は、周辺機器ネットワーク接続部11と、第1の仮想ネットワーク生成部12と、周辺機器ネットワーク識別情報取得部13と、デバイスドライバ適用部14と、周辺機器詳細情報取得部15と、資源情報生成部16と、第2の仮想ネットワーク生成部17とを備える。
ここで、周辺機器ネットワーク接続部11は、周辺機器ネットワーク接続インタフェース1006と、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001とによって構成される。また、第1の仮想ネットワーク生成部12および第2の仮想ネットワーク生成部17は、ネットワークインタフェース1005と、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001とによって構成される。また、周辺機器ネットワーク識別情報取得部13、デバイスドライバ適用部14、周辺機器詳細情報取得部15および資源情報生成部16は、ROM1003および記憶装置1004に記憶されたコンピュータ・プログラムおよび各種データをRAM1002に読み込んで実行するCPU1001によって構成される。
また、図3において、周辺機器実装装置20は、1つ以上の周辺機器ネットワーク接続部21を備える。
ここで、各周辺機器ネットワーク接続部21は、スロット2009と、周辺機器ネットワーク接続インタフェース2006とによって構成される。
また、図3において、コンピュータ装置30は、周辺機器ネットワーク接続部31と、接続要求部32と、デバイスドライバ適用部34とを備える。
ここで、周辺機器ネットワーク接続部31は、周辺機器ネットワーク接続インタフェース3006と、ROM3003および記憶装置3004に記憶されたコンピュータ・プログラムおよび各種データをRAM3002に読み込んで実行するCPU3001とによって構成される。また、接続要求部32は、ネットワークインタフェース3005と、入力装置3007と、出力装置3008と、ROM3003および記憶装置3004に記憶されたコンピュータ・プログラムおよび各種データをRAM3002に読み込んで実行するCPU3001とによって構成される。また、デバイスドライバ適用部34は、ROM3003および記憶装置3004に記憶されたコンピュータ・プログラムおよび各種データをRAM3002に読み込んで実行するCPU3001によって構成される。
なお、情報処理システム1を構成する各装置およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
次に、資源管理装置10の各機能ブロックの詳細について説明する。
周辺機器ネットワーク接続部11は、ネットワーク上に配置された周辺機器実装装置20に実装される周辺機器90をネットワークを介して検出し自装置に接続する機能を有する。本実施の形態では、周辺機器ネットワーク接続部11は、後述の第1の仮想ネットワークを介して周辺機器90を検出する。そして、周辺機器ネットワーク接続部11は、その周辺機器90に対応する周辺機器ネットワーク接続部21との間で、第1の仮想ネットワークを介して所定の仕様に則った接続用通信情報を送受信する。これにより、周辺機器ネットワーク接続部11は、検出した周辺機器90を接続する。例えば、所定の仕様とは、前述のExpEtherであってもよい。
第1の仮想ネットワーク生成部12は、周辺機器ネットワーク接続部11および周辺機器実装装置20の間に、第1の仮想ネットワークを生成するようネットワーク中継装置40を制御する。具体的には、第1の仮想ネットワーク生成部12は、ネットワーク中継装置40において、自装置の周辺機器ネットワーク接続インタフェース1006の接続ポートと、周辺機器実装装置20の各周辺機器ネットワーク接続インタフェース2006の接続ポートとに、第1の仮想ネットワークを割り当てるようにすればよい。
周辺機器ネットワーク識別情報取得部13は、第1の仮想ネットワークを介して周辺機器ネットワーク接続部11および周辺機器実装装置20の間で送受信される接続用通信情報に基づいて、周辺機器90に対応するネットワーク識別情報を取得する。なお、接続用通信情報は、周辺機器ネットワーク接続部11によって第1の仮想ネットワークを介して周辺機器90が検出されると送受信が開始される。
ここで、周辺機器90に対応するネットワーク識別情報とは、周辺機器実装装置20においてその周辺機器90が実装されているスロット2009に対応する周辺機器ネットワーク接続インタフェース2006のネットワーク識別情報である。また、ネットワーク識別情報とは、例えば、MAC(Media Access Control Access)アドレスであってもよい。
また、周辺機器ネットワーク識別情報取得部13は、周辺機器90に対応するネットワーク識別情報に加えて、自装置での接続位置を示す接続位置情報を取得してもよい。ここで、接続位置情報とは、周辺機器90がPCI Expressデバイスである場合、PCIツリーにおいて接続位置を識別する情報(Bus番号/Device番号/Function番号)であってもよい。
ここで、各装置の周辺機器ネットワーク接続インタフェース1006、2006および3006がExpEtherボードである場合の接続用通信情報のデータ構造の一例を図4に示す。図4は、接続の過程で、周辺機器実装装置20の周辺機器ネットワーク接続部21から送信されるExpEtherのEtherフレームである。
図4において、このEtherフレームには、MAC_SAフィールドと、PCIeTLP Frameフィールドとが含まれる。MAC_SAフィールドは、送信元のMACアドレスを示す。PCIeTLP Frameフィールドは、Requester IDを含み、このRequester IDには、「Bus番号/Device番号/Function番号」によって表される接続位置情報が含まれている。
そこで、このネットワーク識別情報および接続位置情報の取得処理において、周辺機器ネットワーク識別情報取得部13は、周辺機器ネットワーク接続部21から送信される図4のEtherフレームをキャプチャし、MAC_SAフィールドとPCIeTLP Frameフィールドとを抽出すればよい。これにより、周辺機器ネットワーク識別情報取得部13は、周辺機器90に対応するネットワーク識別情報および接続位置情報を取得可能となる。そして、周辺機器ネットワーク識別情報取得部13は、取得したネットワーク識別情報および接続位置情報の対応関係を、例えば図5に示すように、一時的なテーブルとして記憶してもよい。
デバイスドライバ適用部14は、周辺機器ネットワーク接続部11によって第1の仮想ネットワークを介して周辺機器90が接続されると、接続された周辺機器90に対応するデバイスドライバを適用する。例えば、デバイスドライバ適用部14は、記憶装置1004に記憶されたデバイスドライバの中から、接続された周辺機器90に適合するデバイスドライバを選択し、適用してもよい。また、デバイスドライバ適用部14は、周辺機器ネットワーク接続部11による接続の際に周辺機器90から得られた基本的な情報(デバイス番号、ベンダ名など)に基づいて、適合するデバイスドライバを選択すればよい。また、デバイスドライバ適用部14は、適合するデバイスドライバを見つけられない場合、出力装置(図示せず)等を介してデバイスドライバを要求するメッセージを出力してもよい。そして、この場合、デバイスドライバ適用部14は、入力装置(図示せず)等を介して得られる情報に基づいてデバイスドライバを選択してもよい。
周辺機器詳細情報取得部15は、デバイスドライバを介して周辺機器90の詳細情報を取得する。このとき、周辺機器詳細情報取得部15は、周辺機器90の詳細情報に加えて、周辺機器90について上述の接続位置情報を取得してもよい。具体的には、周辺機器詳細情報取得部15は、周辺機器90に適用されたデバイスドライバのOS(Operating System)上での管理情報を参照することにより、その周辺機器90の種別や名称等の詳細情報および接続位置情報を取得してもよい。そして、周辺機器詳細情報取得部15は、取得した詳細情報および接続位置情報の対応関係を、例えば図6に示すように、一時的なテーブルとして記憶してもよい。
資源情報生成部16は、周辺機器ネットワーク識別情報取得部13および周辺機器詳細情報取得部15によって取得された情報に基づいて、周辺機器90に対応するネットワーク識別情報および詳細情報を含む資源情報を生成する。そして、資源情報生成部16は、生成した資源情報を、資源情報テーブルに登録する。
例えば、周辺機器ネットワーク識別情報取得部13によって取得された情報が図5に示すような一時テーブルとして記憶され、周辺機器詳細情報取得部15によって取得された情報が図6に示すような一時テーブルとして記憶されているとする。この場合、資源情報生成部16は、これらの接続位置情報を照合することにより、図7に示すような資源情報を生成してもよい。
また、資源情報生成部16は、周辺機器実装装置20に実装されている各周辺機器90について資源情報の生成を完了したことを、周辺機器ネットワーク接続部11および第1の仮想ネットワーク生成部12に通知する。周辺機器ネットワーク接続部11は、資源情報生成完了の通知に応じて、該当する周辺機器90の論理的な接続を解除する。また、第1の仮想ネットワーク生成部12は、資源情報生成完了の通知に応じて、周辺機器ネットワーク接続部11および周辺機器実装装置20の間に生成された第1の仮想ネットワークから自装置を除外するようネットワーク中継装置40を制御する。
また、資源情報生成部16は、後述の第2の仮想ネットワークを介して周辺機器90がコンピュータ装置30に接続されたことを検出すると、その周辺機器90を示す資源情報に、割り当て済みを表す情報を付加して資源情報テーブルを更新してもよい。図8に、割り当て済みを表す情報が付加された資源情報の一例を示す。この例では、割り当て済みを表す情報として、割り当てられたコンピュータ装置30を表す情報が付加されている。
第2の仮想ネットワーク生成部17は、周辺機器90をコンピュータ装置30に接続するよう要求されると、該当する周辺機器90およびコンピュータ装置30の間に、第2の仮想ネットワークを生成するようネットワーク中継装置40を制御する。
このとき、第2の仮想ネットワーク生成部17は、周辺機器90に対応するネットワーク識別情報と、コンピュータ装置30における周辺機器ネットワーク接続部31のネットワーク識別情報との間が通信可能となるよう、第2の仮想ネットワークを生成する。ここで、周辺機器90に対応するネットワーク識別情報は、資源情報テーブルから得られる。また、コンピュータ装置30における周辺機器ネットワーク接続部31のネットワーク識別情報は、例えば、コンピュータ装置30から通知される。このようにして、第2の仮想ネットワーク生成部17は、接続させる周辺機器90およびコンピュータ装置30の組み合わせ毎に、異なる第2の仮想ネットワークを生成することになる。
例えば、第2の仮想ネットワーク生成部17は、周辺機器90に接続したいコンピュータ装置30から、資源情報テーブルの参照要求を受信すると、そのコンピュータ装置30に対して資源情報テーブルを送信してもよい。そして、第2の仮想ネットワーク生成部17は、コンピュータ装置30から、資源情報テーブルに基づいて選択された周辺機器90を表す情報を受信すると、その周辺機器90およびコンピュータ装置30の間に第2の仮想ネットワークを生成するようにしてもよい。
次に、周辺機器実装装置20の機能ブロックの詳細について説明する。
周辺機器ネットワーク接続部21は、対応するスロット2009に実装される周辺機器90を、ネットワークを介してコンピュータ装置30に接続する。具体的には、周辺機器ネットワーク接続部21は、対応するスロット2009に周辺機器90が実装されると、所定の仕様に則って、接続を知らせる接続用通信情報をネットワーク上にブロードキャストする。そして、周辺機器ネットワーク接続部21は、応答のあったコンピュータ装置30との間で所定の仕様に則った接続用通信情報を送受信することにより、応答元のコンピュータ装置30と、該当する周辺機器90とを接続する。例えば、周辺機器ネットワーク接続インタフェース2006がExpEtherボードである場合、周辺機器ネットワーク接続部21は、その仕様に則ったEtherフレームを送受信する。
次に、コンピュータ装置30の各機能ブロックの詳細について説明する。
周辺機器ネットワーク接続部31は、周辺機器実装装置20に実装される周辺機器90をネットワークを介して検出して自装置に接続する機能を有する。本実施の形態では、周辺機器ネットワーク接続部31は、第2の仮想ネットワークが生成されると、第2の仮想ネットワークを介して周辺機器90を検出する。そして、周辺機器ネットワーク接続部31は、その周辺機器90に対応する周辺機器実装装置20の周辺機器ネットワーク接続部21との間で、第2の仮想ネットワークを介して所定の仕様に則った接続用通信情報を送受信する。これにより、周辺機器ネットワーク接続部31は、検出した周辺機器90を接続する。例えば、所定の仕様とは、前述のExpEtherであってもよい。
接続要求部32は、資源管理装置10によって生成された資源情報テーブルに登録されている資源情報の示す周辺機器90に対する接続を、資源管理装置10に対して要求する。このとき、接続要求部32は、自装置の周辺機器ネットワーク接続部31のネットワーク識別情報を、資源管理装置10に対して併せて通知する。
具体的には、例えば、接続要求部32は、資源情報テーブルの参照要求とネットワーク識別情報とを、資源管理装置10に対して送信してもよい。そして、この場合、接続要求部32は、資源管理装置10から送信される資源情報テーブルに基づき接続要求可能な周辺機器90の一覧を、出力装置3008を介して選択可能に出力してもよい。そして、接続要求部32は、一覧のうちいずれかの周辺機器90を表す情報を入力装置3007を介して取得すると、その周辺機器90に対する接続要求を、資源管理装置10に送信してもよい。なお、接続要求部32と資源管理装置10との通信は、ネットワークインタフェース3005および1005を介して行われる。
デバイスドライバ適用部34は、接続された周辺機器90に適合するデバイスドライバを適用する。デバイスドライバ適用部34の構成の詳細については、資源管理装置10のデバイスドライバ適用部14と略同様であるため、詳細な説明を省略する。
以上のように構成された情報処理システム1の動作について、図面を参照して詳細に説明する。なお、以下の動作の説明では、周辺機器ネットワーク接続インタフェース1006、2006および3006が、ExpEtherボードである例を中心に説明する。
まず、情報処理システム1において、資源管理装置10が、情報処理システム1内でネットワーク上に配置される周辺機器90を管理する動作を、図10に示す。なお、以下の動作の開始時には、周辺機器実装装置20には、どのコンピュータ装置30にも割り当てられていない周辺機器90は、実装されていないものとする。また、資源管理装置10の記憶装置1004には、あらかじめ、必要となるデバイスドライバが格納されているものとする。また、資源管理装置10は、これらのデバイスドライバについて、例えば図9に示すような詳細情報を保持しているものとする。
図10において、まず、第1の仮想ネットワーク生成部12は、ネットワーク中継装置40を制御して、周辺機器ネットワーク接続部11および周辺機器実装装置20の間に、第1の仮想ネットワークを生成する(ステップS1)。
具体的には、前述したように、第1の仮想ネットワーク生成部12は、ネットワーク中継装置40において、自装置の周辺機器ネットワーク接続インタフェース1006の接続ポートと、周辺機器実装装置20の各周辺機器ネットワーク接続インタフェース2006の接続ポート間が通信可能になる第1の仮想ネットワークを生成すればよい。第1の仮想ネットワークが生成された状態を、模式的に図11に示す。これにより、周辺機器実装装置20に今後実装される周辺機器90が、ネットワーク中継装置40に接続される他のコンピュータ装置30から参照されることがない。
次に、周辺機器ネットワーク接続部11は、周辺機器実装装置20に実装された周辺機器90を、第1の仮想ネットワークを介して検出するまで待機する(ステップS2でNo)。
例えば、周辺機器ネットワーク接続部11は、第1の仮想ネットワーク上にブロードキャストされる接続用通信情報を受信するまで待機してもよい。ここで、周辺機器実装装置20の周辺機器ネットワーク接続部21は、対応するスロット2009における周辺機器90の物理的な実装または電源オンを検知すると、第1の仮想ネットワーク上に接続用通信情報をブロードキャストする。また、周辺機器90には、ホットプラグレジスタのオンオフ機能を有するものがある。この場合、周辺機器ネットワーク接続部21は、対応するスロット2009に実装されていた周辺機器90のホットプラグレジスタがオンに操作されたことを検知すると、第1の仮想ネットワーク上に接続用通信情報をブロードキャストする。したがって、周辺機器ネットワーク接続部11は、第1の仮想ネットワーク上にブロードキャストされる接続用通信情報を受信すると、周辺機器実装装置20に実装された周辺機器90を検出したと判断できる。
次に、周辺機器90を検出すると(ステップS2でYes)、周辺機器ネットワーク接続部11は、第1の仮想ネットワークを介して、その周辺機器90を接続する(ステップS3)。
詳細には、前述のように、周辺機器ネットワーク接続部11は、第1の仮想ネットワークを介して、該当する周辺機器90に対応する周辺機器ネットワーク接続部21との間で、所定の仕様に則った接続用通信情報を送受信する。これにより、周辺機器ネットワーク接続部11は、該当する周辺機器90を論理的に接続する。
次に、周辺機器ネットワーク識別情報取得部13は、ステップS3において、周辺機器ネットワーク接続部11および21の間で送受信される接続用通信情報に基づいて、該当する周辺機器90に対応するネットワーク識別情報を取得する(ステップS4)。
前述のように、周辺機器ネットワーク識別情報取得部13は、これらの接続用通信情報に基づいて、さらに、該当する周辺機器90の接続位置情報を取得してもよい。例えば、前述のように、周辺機器ネットワーク識別情報取得部13は、送受信されるEtherフレームから、MAC_SAフィールドと、PCIeTLP Frameフィールに含まれるRequestID情報とを抽出する。そして、周辺機器ネットワーク識別情報取得部13は、抽出した情報に基づいて、周辺機器90のネットワーク識別情報および接続位置情報を、図5に示したような一時的なテーブルとして記憶する。
次に、デバイスドライバ適用部14は、ステップS4で接続された周辺機器90に適合するデバイスドライバを適用する(ステップS5)。
前述のように、デバイスドライバ適用部14は、記憶装置1004から適合するデバイスドライバを検索し、適用すればよい。
次に、周辺機器詳細情報取得部15は、ステップS5で適用されたデバイスドライバに基づいて、該当する周辺機器90の詳細情報を取得する(ステップS6)。
前述のように、周辺機器詳細情報取得部15は、周辺機器90の接続位置情報をさらに取得してもよい。また、周辺機器詳細情報取得部15は、デバイスドライバを適用したOSの管理情報を参照することにより、これらの情報を取得してもよい。ここでは、周辺機器詳細情報取得部15は、周辺機器90の詳細情報および接続位置情報を、図6に示したような一時的なテーブルとして記憶する。
次に、資源情報生成部16は、ステップS4およびステップS6で取得された情報に基づいて、周辺機器90について、ネットワーク識別情報および詳細情報を対応付けた資源情報を生成し、資源情報テーブルに登録する(ステップS7)。
例えば、前述のように、資源情報生成部16は、接続位置情報を照合することにより、ネットワーク識別情報および詳細情報を対応付けた資源情報を生成してもよい。ここでは、例えば、図7に示した資源情報が生成されたものとする。資源情報生成部16は、資源情報テーブルへの登録を完了すると、ステップS4およびS6で記憶された一時的なテーブルを破棄してもよい。
次に、周辺機器ネットワーク接続部11は、周辺機器実装装置20に実装された他の周辺機器90を第1の仮想ネットワークを介して検出した場合(ステップS8でYes)、ステップS3からの動作を繰り返す。
一方、他の周辺機器90が検出されない場合(ステップS8でNo)、周辺機器ネットワーク接続部11は、各周辺機器90を論理的に切り離す(ステップS9)。
次に、第1の仮想ネットワーク生成部12は、第1の仮想ネットワークから、自装置の周辺機器ネットワーク接続部11を除外するようネットワーク中継装置40を制御する(ステップS10)。
以上で、資源管理装置10は、情報処理システム1内でネットワーク上に配置される周辺機器90の管理動作を終了する。
以上の動作の結果、資源管理装置10は、ネットワーク上に配置された各周辺機器90を、資源管理装置10およびコンピュータ装置30のいずれからもアクセスできないセキュリティ面からみて安全な状態を保ちながら、割り当て可能状態で待機させることができる。また、資源管理装置10は、それらの周辺機器90を管理するための資源情報テーブルを生成して保持することができる。この状態を、模式的に図12に示す。
次に、情報処理システム1において、資源管理装置10が、管理している周辺機器90のコンピュータ装置30への接続を制御する動作を、図13に示す。なお、図13において、左図は資源管理装置10の動作を示し、右図はコンピュータ装置30の動作を示し、左右を結ぶ破線の矢印は、データの流れを示すものとする。
図13では、まず、コンピュータ装置30の接続要求部32は、資源管理装置10に対して、資源情報テーブルに含まれる資源情報の示すいずれかの周辺機器90に対する接続要求を送信する(ステップS21)。
詳細には、まず、コンピュータ装置30の接続要求部32は、資源情報テーブルの参照要求とともに、自装置の周辺機器ネットワーク接続部31のネットワーク識別情報を、資源管理装置10に対して通知する。そして、資源管理装置10は、参照要求の受信に応じて、自装置で保持される資源情報テーブルを、コンピュータ装置30に対して送信する。そして、コンピュータ装置30の接続要求部32は、受信した資源情報テーブルのうち割り当て可能な周辺機器90を選択可能に出力する。なお、接続要求部32は、資源情報テーブルのうち、後述のステップS25において割り当て済みを表す情報が既に付加されている資源情報については、出力対象に含めなくてよい。そして、接続要求部32は、入力情報の示す周辺機器90に対する接続要求を、資源管理装置10に対して送信すればよい。
次に、資源管理装置10の第2の仮想ネットワーク生成部17は、周辺機器90に対する接続要求を受信すると、対象の周辺機器90およびコンピュータ装置30の間を通信可能とする第2の仮想ネットワークを生成するよう、ネットワーク中継装置40を制御する(ステップS22)。
このとき、第2の仮想ネットワーク生成部17は、対象の周辺機器90に対応するネットワーク識別情報、および、コンピュータ装置30から通知されたネットワーク識別情報に基づいて、第2の仮想ネットワークを生成すればよい。なお、対象の周辺機器90に対応するネットワーク識別情報は、資源情報テーブルから得られる。
これにより、コンピュータ装置30は、第2の仮想ネットワークを介して接続要求対象の周辺機器90と通信可能となる。第2の仮想ネットワークが生成された状態を、模式的に図14に示す。
次に、コンピュータ装置30の周辺機器ネットワーク接続部31は、第2の仮想ネットワークを介して、接続要求対象の周辺機器90を接続する(ステップS23)。
詳細には、周辺機器ネットワーク接続部31は、第2の仮想ネットワークを介して、該当する周辺機器90を検出する。なお、周辺機器ネットワーク接続部31は、第2の仮想ネットワーク上にブロードキャストされる接続用通信情報を受信すると、その送信元である周辺機器実装装置20に実装された周辺機器90を検出したと判断する。前述のように、周辺機器実装装置20の周辺機器ネットワーク接続部21は、実装されている周辺機器90のホットプラグレジスタがオンに操作されたこと等を検知すると、第2の仮想ネットワーク上に接続用通信情報をブロードキャストしてもよい。そして、周辺機器ネットワーク接続部31は、検出した周辺機器90に対応する周辺機器ネットワーク接続部21との間で、所定の仕様に則った接続用通信情報を送受信する。これにより、周辺機器ネットワーク接続部31は、該当する周辺機器90を論理的に接続する。
次に、デバイスドライバ適用部34は、ステップS23で接続された周辺機器90に適合するデバイスドライバを適用する(ステップS24)。デバイスドライバ適用部34は、記憶装置3004から適合するデバイスドライバを検索し、適用すればよい。
これにより、コンピュータ装置30は、対象の周辺機器90を他の装置からは参照されないセキュリティ的に安全な状態で利用可能となる。そして、コンピュータ装置30は、資源管理装置10に対して、対象の周辺機器90を利用可能に接続したことを通知する。
次に、資源管理装置10の資源情報生成部16は、対象の周辺機器90に関する資源情報に、割り当て済みを示す情報を付加して資源情報テーブルを更新する(ステップS25)。
以上で、資源管理装置10による周辺機器90の接続制御動作の説明を終了する。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としての情報処理システムは、ネットワーク上に配置される周辺機器に対するアクセスコントロールを実現し、周辺機器をリソースプールとして管理することができる。
その理由は、資源管理装置の第1の仮想ネットワーク生成部が、自装置の周辺機器ネットワーク接続部と周辺機器実装装置との間に第1の仮想ネットワークを生成するからである。また、周辺機器ネットワーク接続部が、第1の仮想ネットワークを介して周辺機器実装装置に実装される周辺機器を接続し、デバイスドライバ適用部が、接続した周辺機器に適合するデバイスドライバを適用するからである。そして、周辺機器ネットワーク識別情報取得部が、周辺機器ネットワーク接続部によって送受信される接続用通信情報に基づいて、周辺機器に対応するネットワーク識別情報を取得し、周辺機器詳細情報取得部が、デバイスドライバを介して周辺機器の詳細情報を取得するからである。さらに、資源情報生成部が、周辺機器についてネットワーク識別情報および詳細情報を対応付けた資源情報を生成して資源情報テーブルに登録するからである。そして、第2の仮想ネットワーク生成部が、コンピュータ装置の接続要求部から、資源情報テーブルを参照して選択した対象の周辺機器に対する接続要求およびコンピュータ装置の周辺機器ネットワーク接続部のネットワーク識別情報を受信するからである。さらに、第2の仮想ネットワーク生成部が、対象の周辺機器とコンピュータ装置との間に、各ネットワーク識別情報に基づき第2の仮想ネットワークを生成するからである。この結果、コンピュータ装置の周辺機器ネットワーク接続部は、第2の仮想ネットワークを介して対象の周辺機器を接続し、デバイスドライバ適用部は、接続した周辺機器に適合するデバイスドライバを適用する。
これにより、本実施の形態における資源管理装置は、ネットワーク上に配置される各周辺機器について、同一のネットワーク内の他の装置から参照されないセキュリティ的に安全な状態で、その資源情報を取得することができリソースプールとして管理することができる。また、本実施の形態は、ネットワーク上に配置される各周辺機器を、いずれの装置からもアクセスできないセキュリティ面からみて安全な状態で、割り当て可能状態で待機させることができる。また、本実施の形態は、周辺機器をコンピュータ装置に割り当てる際に、その周辺機器を他の装置から参照されないセキュリティ的に安全な状態で、要求元のコンピュータ装置に対して割り当て可能となる。
また、割り当て済みを表す情報を付加して資源情報テーブルを更新する場合、資源管理装置は、周辺機器の割り当て状況を管理することができる。また、資源情報テーブルのうち、割り当て済みを表す情報が付加されていない資源情報をコンピュータ装置に選択させる。これにより、次の効果が得られる。すなわち、本実施の形態は、周辺機器の重複割り当てを防止することができるとともに、意図しない割り当て変更に伴う仮想ネットワークの変更による通信障害等を防止することができる。
なお、本実施の形態は、周辺機器実装装置に初めて周辺機器が実装される場合だけでなく、周辺機器が空スロットに追加して実装される場合にも適用可能である。この場合、資源管理装置は、割り当て済みの周辺機器およびコンピュータ装置間の第2の仮想ネットワークの設定を維持したまま、自装置の周辺機器ネットワーク接続部に第1の仮想ネットワークを再度設定すればよい。そして、資源管理装置は、第1の仮想ネットワークを介して追加された周辺機器を検出し、以降、同様に動作すればよい。
また、本実施の形態において、コンピュータ装置および周辺機器を1対1で対応付けて割り当てを行う例を中心に説明した。この他、本実施の形態は、コンピュータ装置および周辺機器を、1対多、多対1、多対多等で対応付けて割り当てる場合にも適用可能である。なお、多対1、多対多で対応付ける場合、周辺機器が、Multi Root IOV(複数のデバイスからのアクセスをサポートする機能)をサポートしている必要がある。この場合、第2の仮想ネットワーク生成部は、1対1、1対多、多対1、多対多等のコンピュータ装置および周辺機器のグループごとに、通信を可能とする第2の仮想ネットワークをそれぞれ生成すればよい。また、この場合、資源情報生成部は、割り当て済みを示す情報に、グループ情報も含めて資源情報テーブルを更新すればよい。
(第2の実施の形態)
次に、本発明の第2の実施の形態について図面を参照して詳細に説明する。なお、本実施の形態の説明において参照する各図面において、本発明の第1の実施の形態と同一の構成および同様に動作するステップには同一の符号を付して本実施の形態における詳細な説明を省略する。
本発明の第2の実施の形態としての情報処理システム2の構成を図15に示す。図15において、情報処理システム2は、本発明の第1の実施の形態としての情報処理システム1に対して、資源管理装置10に替えて資源管理装置50を備え、さらに、デバイスドライバ格納装置60と、システム管理装置70とを備える点が異なる。また、デバイスドライバ格納装置60およびシステム管理装置70は、ネットワーク中継装置40に接続される。なお、図15には、各装置を1つずつ示したが、本発明の情報処理システムが備える各装置の数を限定するものではない。
デバイスドライバ格納装置60は、デバイスドライバを格納するストレージ装置である。
システム管理装置70は、コンピュータ装置30の個性情報(MACアドレス、UUID(Universally Unique Identifier)など)をリソースプールとして管理し、個性の反映・変更を行う装置である。具体的には、システム管理装置70は、リソースプールに基づいて個性反映用のテンプレートを作成し、作成したテンプレートを、コンピュータ装置30に対して反映させる。
ここで、図16に示すように、デバイスドライバ格納装置60は、CPU6001と、RAM6002と、ROM6003と、ハードディスク等の記憶装置6004と、ネットワークインタフェース6005とによって構成可能である。また、システム管理装置70は、CPU7001と、RAM7002と、ROM7003と、ハードディスク等の記憶装置7004と、ネットワークインタフェース7005と、入力装置7007と、出力装置7008とによって構成可能である。
次に、情報処理システム2を構成する各装置の機能ブロック構成を、図17に示す。
図17において、デバイスドライバ格納装置60は、各種のデバイスドライバを格納する。デバイスドライバ格納装置60には、情報処理システム2においてネットワーク上に配置される各種の周辺機器90に適合するデバイスドライバが格納される。また、新たな周辺機器90が追加される際に、適合するデバイスドライバが格納されていなければ、適合するデバイスドライバが適宜追加されるものとする。
また、図17において、システム管理装置70は、リソースプール格納部71と、テンプレート作成部72と、テンプレート反映部73とを備える。ここで、リソースプール格納部71は、記憶装置7004によって構成される。また、テンプレート作成部72は、入力装置7007と、出力装置7008と、ROM7003および記憶装置7004に記憶されたコンピュータ・プログラムおよび各種データをRAM7002に読み込んで実行するCPU7001とによって構成される。また、テンプレート反映部73は、ネットワークインタフェース7005と、ROM7003および記憶装置7004に記憶されたコンピュータ・プログラムおよび各種データをRAM7002に読み込んで実行するCPU7001とによって構成される。
なお、情報処理システム2を構成する各装置およびその各機能ブロックのハードウェア構成は、上述の構成に限定されない。
リソースプール格納部71は、資源管理装置50から資源情報テーブルを取得して、周辺機器90のリソースプールとして格納する。この他、リソースプール格納部71は、ネットワーク識別情報のリソースプール、UUIDのリソースプール、コンピュータ装置30のリソースプール、IPアドレスのリソースプール等、各種のリソースプールを格納していてもよい。
テンプレート作成部72は、リソースプールに登録されているリソースのうち、任意のコンピュータ装置30へ割り当てるリソースを指定する個性反映のためのテンプレートを作成する。ここで、テンプレート作成部72は、リソースプール格納部71に格納されているリソースプールの示すリソースのうち、割り当て可能なものを提示することによりテンプレートを作成するユーザインタフェースを提供するよう構成されていてもよい。この場合、テンプレート作成部72は、リソースプールのうち、資源情報テーブルにおいて割り当て済みを示す情報が付加されていたリソースについては、割り当てできないように提示してもよい。また、テンプレート作成部72によって作成されるテンプレートには、コンピュータ装置30が有する周辺機器ネットワーク接続部31に割り当てるネットワーク識別情報が含まれていてもよい。
例えば、テンプレートの一例を図18に示す。図18に示すテンプレートでは、識別名称「AAAA」のコンピュータ装置30に割り当てる各種のリソースが指定されている。図示されているリソースのうち、「ExpEtherMAC」の項目は、このコンピュータ装置30のExpEtherボード(周辺機器ネットワーク接続部31)に割り当てるネットワーク識別情報を示している。また、「ExpEtherDev」の項目は、このコンピュータ装置30にExpEtherを介して割り当てる周辺機器90を示している。
テンプレート反映部73は、テンプレートを、反映対象のコンピュータ装置30に反映する処理を行う。このとき、テンプレート反映部73は、資源管理装置50を用いて、テンプレートの示すリソースである周辺機器90を、反映対象のコンピュータ装置30に割り当てる。具体的には、テンプレート反映部73は、資源管理装置50に対して、該当する周辺機器90および反映対象のコンピュータ装置30間を接続するための、第2の仮想ネットワークを生成するよう要求すればよい。
また、テンプレート反映部73は、該当する周辺機器90および反映対象のコンピュータ装置30間に第2の仮想ネットワークが生成されると、コンピュータ装置30を起動する。そして、テンプレート反映部73は、テンプレートに含まれるリソースである周辺機器90に適合するデバイスドライバを、デバイスドライバ格納装置60から検索してコンピュータ装置30に配布してもよい。これにより、コンピュータ装置30の周辺機器ネットワーク接続部31およびデバイスドライバ適用部34は、本発明の第1の実施の形態と同様に動作し、該当する周辺機器90を検出して利用可能に接続することができる。
なお、テンプレート反映部73が、テンプレートに含まれる周辺機器90以外のリソースをコンピュータ装置30に反映する技術については、各種公知の技術を適用可能である。
資源管理装置50は、本発明の第1の実施の形態における資源管理装置10に対して、デバイスドライバ適用部14に替えてデバイスドライバ適用部54と、資源情報生成部16に替えて資源情報生成部56と、第2の仮想ネットワーク生成部17に替えて第2の仮想ネットワーク生成部57とを備える点が異なる。
デバイスドライバ適用部54は、該当する周辺機器90に適合するデバイスドライバを、デバイスドライバ格納装置60から検索する。それ以外の点については、デバイスドライバ適用部54は、本発明の第1の実施の形態におけるデバイスドライバ適用部14と同様に構成される。
資源情報生成部56は、本発明の第1の実施の形態における資源情報生成部16と同様に構成されることに加えて、システム管理装置70に対して、保持している資源情報テーブルを送信する。例えば、資源情報生成部56は、資源情報テーブルを更新する度に、更新した資源情報テーブルをシステム管理装置70に対して送信してもよい。また、資源情報生成部56は、所定のスケジュールにしたがって、資源情報テーブルをシステム管理装置70に対して送信してもよい。また、資源情報生成部56は、システム管理装置70からの要求に応じて、資源情報テーブルをシステム管理装置70に対して送信してもよい。
第2の仮想ネットワーク生成部57は、システム管理装置70から、周辺機器90およびコンピュータ装置30の接続を要求されると、本発明の第1の実施の形態における第2の仮想ネットワーク生成部17がコンピュータ装置30から接続要求を受信したときと略同様に動作する。具体的には、第2の仮想ネットワーク生成部57は、システム管理装置70から、接続要求として、テンプレートで指定されている周辺機器90を特定する情報と、反映対象のコンピュータ装置30が有する周辺機器ネットワーク接続部31のネットワーク識別情報とを受信する。そして、第2の仮想ネットワーク生成部57は、該当する周辺機器90に対応するネットワーク識別情報と、反映対象のコンピュータ装置30が有する周辺機器ネットワーク接続部31のネットワーク識別情報との間が通信可能となるよう、第2の仮想ネットワークを生成する。
以上のように構成された情報処理システム2の動作について、図面を参照して説明する。なお、情報処理システム2の周辺機器管理動作については、図10のステップS5において、デバイスドライバ適用部54が、デバイスドライバをデバイスドライバ格納装置60から取得する点以外は、本発明の第1の実施の形態における管理動作と略同様である。また、情報処理システム2の周辺機器接続制御動作については、図13を参照して説明した本発明の第1の実施の形態としての情報処理システム1と略同様である。このため、これらの動作については、本実施の形態における詳細な説明を省略する。
ここでは、情報処理システム2におけるテンプレート反映動作について、図19を参照して説明する。なお、図19において、左図は資源管理装置50の動作を示し、中図はシステム管理装置70の動作を示し、右図はコンピュータ装置30の動作を示すものとする。
まず、システム管理装置70のリソースプール格納部71は、資源管理装置50から資源情報テーブルを取得し、取得した資源情報テーブルに基づいて、周辺機器90のリソースプールを格納する(ステップS31)。
次に、テンプレート作成部72は、リソースプールに基づいて、コンピュータ装置30に反映させるリソースのテンプレートを作成する(ステップS32)。
前述のように、テンプレート作成部72は、リソースプールに基づきコンピュータ装置30のテンプレートを作成するユーザインタフェースを管理者等の利用者に提供することにより、テンプレートを作成してもよい。
次に、テンプレート反映部73は、テンプレートに含まれる周辺機器90以外の各種リソースを、反映対象のコンピュータ装置30に割り当てる(ステップS33)。前述のように、このステップでは、公知の各種技術を適用する。
次に、テンプレート反映部73は、資源管理装置50に対して、テンプレートに含まれるリソースである周辺機器90と、反映対象のコンピュータ装置30との接続要求を送信する(ステップS34)。送信する情報には、要求対象の周辺機器90を特定する情報と、反映対象のコンピュータ装置30における周辺機器ネットワーク接続部31のネットワーク識別情報とが含まれる。このネットワーク識別情報は、テンプレートで指定されている情報であってもよい。
次に、資源管理装置50の第2の仮想ネットワーク生成部57は、接続要求対象の周辺機器90に対応するネットワーク識別情報を、資源情報テーブルから取得する。そして、第2の仮想ネットワーク生成部57は、周辺機器90に対応するネットワーク識別情報と、コンピュータ装置30における周辺機器ネットワーク接続部31のネットワーク識別情報との間を通信可能とする第2の仮想ネットワークを生成する(ステップS35)。
そして、第2の仮想ネットワーク生成部57は、第2の仮想ネットワークの生成完了を、システム管理装置70に対して通知する。
次に、システム管理装置70のテンプレート反映部73は、該当する周辺機器90に適合するデバイスドライバを、デバイスドライバ格納装置60から取得し、反映対象のコンピュータ装置30を起動して配布する(ステップS36)。
起動されたコンピュータ装置30は、図13に示したステップS23〜S24まで本発明の第1の実施の形態と同様に動作することにより、第2の仮想ネットワークを介して、テンプレートで指定されていた周辺機器90に接続し、デバイスドライバを適用する。また、資源管理装置50は、図13に示したステップS25を実行し、資源情報テーブルを更新する。
以上で、情報処理システム2のテンプレート反映動作の説明を終了する。
次に、本発明の第2の実施の形態の効果について述べる。
本発明の第2の実施の形態としての情報処理システムは、ネットワーク上に配置される周辺機器に対するアクセスコントロールを実現し、周辺機器をリソースプールとして管理する。したがって、第2の実施の形態によれば、情報処理システムを構成するコンピュータ装置に対する個性反映にかかる運用コストを削減することができる。
その理由は、システム管理装置のリソースプール格納部が、資源管理装置によって作成される資源情報テーブルに基づき周辺機器のリソースプールを格納するからである。また、テンプレート作成部が、リソースプールに含まれるリソースからコンピュータ装置に割り当てるリソースを指定したテンプレートを作成するからである。さらに、テンプレート反映部が、テンプレートをコンピュータ装置に反映させる際に、テンプレートに含まれるリソースである周辺機器については、その周辺機器と反映対象のコンピュータ装置との間の接続を資源管理装置に要求することにより、資源管理装置に対し次の制御を実施するからである。すなわち、資源管理装置は、反映対象のコンピュータ装置が、指定された周辺機器を第2の仮想ネットワークを介して接続できるよう制御するからである。
なお、本実施の形態において、リソースプール格納部が、周辺機器のリソースプールの他に格納するリソースプールとして、ネットワーク識別情報、UUID、コンピュータ装置、IPアドレス等の各リソースプールを例示した。しかしながら、本実施の形態において、リソースプール格納部が格納するリソースプールの種類および数は、これらに限定されるものではない。
また、上述した本発明の各実施の形態において、資源管理装置、周辺機器実装装置、および、コンピュータ装置が備える周辺機器ネットワーク接続インタフェースが、ExpEtherである例を中心に説明した。この他、各実施の形態において、周辺機器ネットワーク接続インタフェースは、その他の仕様により周辺機器をネットワークに接続するインタフェースであってもよい。
また、上述した本発明の各実施の形態において、各装置の各機能ブロックが、記憶装置またはROMに記憶されたコンピュータ・プログラムを実行するCPUによって実現される例を中心に説明したが、各機能ブロックの一部、全部、または、それらの組み合わせが専用のハードウェアにより実現されていてもよい。
また、上述した本発明の各実施の形態において、各装置の各機能ブロックは、複数の装置に分散されて実現されてもよい。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した各装置の動作を、本発明のコンピュータ・プログラムとしてコンピュータ装置の記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコードあるいは記憶媒体によって構成される。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。