以下、本発明の好適な実施の形態(以下、「実施形態」という。)について、図面を用いて詳細に説明する。
[第1の実施形態]
<システム構成>
では、本実施形態に係る機器管理システムの構成について説明する。図1は、本発明の第1の実施形態に係る機器管理システム1の構成例を示す図である。
図1に示すように、機器管理システム1は、MFP(Multifunction Peripheral)やLP(Laser Printer)と言った少なくとも1台以上の自社が製造した機器(以下、「自社管理対象機器」と言う。)200及び/又は他社が製造した機器(以下、「他社管理対象機器」と言う。)300と、少なくとも1台以上のクライアントPC(Personal Computer)400(以下、単に「PC」と言う。)と、機器管理装置100とが、ネットワークなどのデータ伝送路90で相互に接続されている。
このようなシステム構成により、機器管理装置100は、当該装置において動作する機器管理機能によって自社管理対象機器200及び/又は他社管理対象機器300の状態監視や情報収集(例えば、「状態」や「ジョブ履歴」などの各種情報。)などを行い、各機器を管理している。また、PC300に対しては、自社管理対象機器200及び/又は他社管理対象機器300の状態に関する各種情報を提供する。
<ハードウェア構成>
次に、上記機器管理システム1において、機器管理を行う機器管理装置100のハードウェア構成について説明する。図2は、本発明の第1の実施形態に係る機器管理装置100のハードウェア構成例を示す図である。
図2に示すように、機器管理装置100は、入力装置101と、表示装置102と、ドライブ装置103と、RAM(Random Access Memory)104と、ROM(Read Only Memory)105と、CPU(Central Processing Unit)106と、インタフェース装置107と、HDD(Hard Disk Drive)108とから構成され、それぞれがバスで相互に接続されている。
入力装置101は、キーボード及びマウスなどで構成され、機器管理装置100に各操作信号を入力するのに用いられる。表示装置102は、ディスプレイなどで構成され、機器管理装置100による処理結果(例えば「自社管理対象機器200及び/又は他社管理対象機器300から取得した状態に関する各種情報」)などを表示する。
インタフェース装置107は、機器管理装置100をネットワークなどのデータ伝送路90に接続するインタフェースである。上記システム構成において説明を行ったように、機器管理装置100は、インタフェース装置107を介して、自社管理対象機器200及び/又は他社管理対象機器300やPC400などとのデータ通信を行う。
HDD108は、機器管理装置100全体を制御し情報処理システム(例えば「Windows(登録商標)」や「UNIX(登録商標)」などの基本ソフトウェアであるOS(Operating System))を提供するなどのプログラムやデータ、情報処理システム上において各種機能(例えば「機器管理機能」や「データ通信機能」)を提供するなどのプログラムやデータ(例えば「アプリケーションプログラム」や「アプリケーションデータ」)などを格納している不揮発性の記憶装置である。また、HDD108は、格納している上記プログラムやデータを、所定のファイルシステムやDB(Data Base)により管理している。
なお、上記プログラムやデータは、例えばCD(Compact Disk)などの記録媒体103aによって機器管理装置100に提供されるか、ネットワークなどのデータ伝送路90からインタフェース装置107を介してダウンロードされる。例えば、記録媒体103aから提供される場合は、記録媒体103aを読み取り可能なドライブ装置103を介してHDD108にインストールされる。
ROM105は、電源を切っても内部データを保持することができる不揮発性の半導体メモリ(記憶装置)である。ROM105には、機器管理装置100が起動されるときに実行されるBIOS(Basic Input/Output System)や、機器管理装置100のシステム設定やネットワーク関連の設定などのデータが格納されている。
RAM104は、上記各種記憶装置から読み出されたプログラムやデータを一時保持する揮発性の半導体メモリ(記憶装置)であり、CPU106は、このRAM104上に読み出したプログラムを実行することにより、機器管理装置100の全体制御や機器管理装置100が搭載する各種機能を動作させる。
このようなハードウェア構成により、機器管理装置100は、例えば、HDD108からRAM104上に読み出した機器管理機能を実現するためのプログラムをCPU106により実行し、自社管理対象機器200及び/又は他社管理対象機器300の状態監視や各種情報の収集、またPC400への情報提供を行ったりすることができる。
<機器管理機能>
ここからは、上記ハードウェア構成上で動作する本実施形態に係る機器管理機能について簡単に説明する。図3は、本発明の第1の実施形態に係る機器管理機能の構成例を示す図である。
機器管理機能は、自社管理対象機器200及び/又は他社管理対象機器300から、例えばMIB情報などの状態情報を含む機器に関する情報(以下、便宜上「機器情報」と言う。)を取得し、取得した機器情報31を基に状態を監視し、各機器を管理する機能である。よって、図3に示すような複数の機能部から構成される状態管理機能部群20を有している。
(状態管理機能部群)
状態管理機能部群20は、機器状態監視部21及び機器情報管理部22を有している。
機器状態監視部21は、ネットワークなどのデータ伝送路90を介して、自社管理対象機器200及び/又は他社管理対象機器300から機器情報31を取得し、各機器の状態を監視する。また、機器状態監視部21は、機器情報31の取得を、予め決められた監視間隔(動作タイミング)に従ったポーリング処理により行う。
また、機器情報管理部22は、機器状態監視部21が取得した機器情報31を保持し、自社管理対象機器200及び/又は他社管理対象機器300ごとに管理する。なお、機器情報管理部22では、機器情報31を、機器管理装置100が備える記憶装置(例えば「HDD108」など。)の所定の記憶領域に格納することで管理する。
このように、本実施形態に係る機器管理機能は、上記状態管理機能部群20の動作により機能する。なお、状態管理機能部群20の動作は、主に、機器管理装置100に搭載(インストール)される機器管理コンポーネント(アプリケーション)の機器管理機能に関するソフトウェア部品により実現される。
そこで問題となるのが、本発明が解決する課題として前述したように、従来技術では、自社管理対象機器200と同様に、他社管理対象機器300から詳細な機器情報31(拡張MIB)を取得することができない点である。
そのため、現在の機器管理システム1が導入される環境下において、他社管理対象機器300が自社管理対象機器200に比べて少ない(簡易な)情報に基づき管理されることとなり、ユーザに適切な機器管理機能を提供することができていない。
そこで、本実施形態に係る機器管理装置100では、管理対象とする機器の種類を識別する情報(以下、「機種識別情報」と言う。)を取得し、取得した機種識別情報を基に機器のベンダ(製造元)を判別し、機器から機器情報31を取得するための取得プログラムや、ベンダごとに取得する機器情報31を指定するパラメータ(機器が実装しているMIBのオブジェクトID(以下、「OID」と言う。))などの機器情報31を取得するための情報が定義された定義ファイル(定義情報)から、判別したベンダの機器(自社管理対象機器200又は他社管理対象機器300)から機器情報31を取得する際に用いるパラメータを特定し、特定したパラメータを取得プログラムに設定し実行する機器情報取得機能を有している。
これによって、本実施形態に係る機器管理装置100では、機器管理システム1において、自社管理対象機器200と同様に、他社管理対象機器300からも詳細な機器情報31を取得することができ、異なるベンダの機器が混在するネットワーク環境下であっても、ベンダを問わず詳細な機器情報31を基に機器管理を行うことができ、好適な機器管理機能をユーザへ提供することができる。
では、上記機器情報取得機能の構成とその動作について詳しく説明する。
<機器情報取得機能>
《機能構成》
機器情報取得機能は、上記機器管理機能を構成する機器状態監視部21が有する機能である。よって、機器状態監視部21は、図4に示すような複数の機能部を有している。図4は、本発明の第1の実施形態に係る機器情報取得機能の構成例を示す図である。
図4に示すように、機器情報取得機能は、機器情報取得部211と、ベンダ判別情報取得部212と、実行プログラム情報取得部213と、プログラム実行部214とから構成される。
機器情報取得部211は、自社管理対象機器200及び/又は他社管理対象機器300から機器情報31を取得する機能である。
機器情報取得部211は、まず、情報取得の指示を受け付けると、後述するベンダ判別情報取得部212により取得したベンダ(機器の製造元)を判別する情報(以下、「ベンダ判別情報」と言う。)を基に、機器から機器情報31を取得するための取得プログラムや、ベンダごとに取得する機器情報31を指定するパラメータ(機器が実装しているMIBのOID)などの機器情報31を取得するための情報が定義された定義ファイルである定義情報41を参照し、機器のベンダに対応した機器情報31を取得する際に用いるパラメータを特定する。すなわち、機器情報取得部211は、定義情報41から、ベンダ判別情報に対応付けて(自社及び他社の機器ごとに)定義された、取得する機器情報31を指定するパラメータ(機器が実装しているMIBのOID)を取得する。なお、定義情報41は、予め機器管理装置100が備える記憶装置(例えば「HDD108」など)の所定の記憶領域に格納されている。
ここで、OIDについて簡単に説明する。OIDとは、機器が実装するMIBの中から、特定の機器情報31を指定するための識別コードである。
MIBは、木構造のデータ構造をしており、全てのノードが一意に番号付けされている。この番号がノードの識別子となる。機器が実装するMIBの中から、特定の機器情報31を指定するためには、木構造の頂点に位置するノードから指定される情報までの複数のノードの識別子により行える。これが上記識別コードである。
なお、上記MIBの構造は、管理情報構造(SMI:Structure of Management Information)と呼ばれ、RFC1155「Structure and Identification of Management Information for TCP/IP-based Internets」で規定されている。またこの中で、SNMPで管理される機器が標準的に備えている標準MIBの詳細な構造については、RFC1213「Management Information Base for Network Management of TCP/IP-based Internets:MIB−II」に規定されている。
このようなOIDにより、機器に対して取得したい機器情報31を指定することが可能で、OIDが、取得したい機器情報31を指定するパラメータとなる。なお、ここで言うパラメータとは、ソフトウェアを実行したりプログラム内で関数を呼び出したりするときに、その動作を指定するために外部から与える設定値を意味する。
機器情報取得部211は、定義情報41内からパラメータ(OID)を特定(取得)すると、後述するプログラム実行部214へ、定義情報41に定義される取得プログラムの実行を指示する。
実行指示された取得プログラムでは、特定されたパラメータ(sysObjectIDを指定するOID)により指定された機器情報31を、実行結果として受け取り、受け取った実行結果を、実行を指示した機器情報取得部211へと返す。
その結果、機器情報取得部211は、特定(取得)したパラメータにより指定した機器情報31を、取得プログラムの実行結果として受け取る。
ベンダ判別情報取得部212は、自社管理対象機器200及び/又は他社管理対象機器300のベンダ判別情報を取得する機能である。
ベンダ判別情報取得部212は、情報取得の指示を受け付けると、まず、後述するプログラム実行部214へ、定義情報41に定義される取得プログラムの実行を指示する。定義情報41には、上記機器情報31を取得するための取得プログラムのほか、機種識別情報(sysObjectID[MIB-II RCF1213]の値)を取得する取得プログラムも定義されている。
実行指示された取得プログラムでは、まず、所定のパラメータにより指定された機種識別情報を、実行結果として受け取り、実行結果として受け取った機種識別情報を基に、定義情報41を参照し、機種識別情報に対応するベンダ判別情報を特定する。すなわち、定義情報41から、機種識別情報に対応付けて定義されたベンダ判別情報を取得する。取得されたベンダ判別情報は、実行を指示したベンダ判別情報取得部212へと返される。
その結果、ベンダ判別情報取得部212は、ベンダ判別情報を、取得プログラムの実行結果として受け取る。つまり、ベンダ判別情報取得部212は、自社管理対象機器200及び他社管理対象機器300において共通して取得可能な標準MIBである機種識別情報を取得し、さらに、取得した機種識別情報を基に、機器の製造元であるベンダを判別する情報を特定(取得)する。
実行プログラム情報取得部213は、上記機器情報取得部211又は上記ベンダ判別情報取得部212で実行を指示する各種情報の取得プログラムに関する情報(以下、「実行プログラム情報」と言う。)を取得する機能である。
実行プログラム情報取得部213は、上記機器情報取得部211又は上記ベンダ判別情報取得部212からの情報取得指示を受け付けると、定義情報41を参照し、取得情報に対応する実行プログラム情報を特定する。すなわち、定義情報41から、取得情報に対応付けて定義された実行プログラム情報を取得する。
その結果、実行プログラム情報取得部213は、取得した実行プログラム情報を基に、実行する取得プログラムのアドレス値を求め、情報取得を要求した上記機器情報取得部211又は上記ベンダ判別情報取得部212に、求めたアドレス値を情報取得結果として応答する。
プログラム実行部214は、上記機器情報取得部211又は上記ベンダ判別情報取得部212から実行が指示される各種情報の取得プログラムを実行する機能である。
プログラム実行部214は、上記機器情報取得部211又は上記ベンダ判別情報取得部212からの実行指示を受け付けると、実行プログラム情報取得部213により求められたアドレス値を基に、取得プログラムを実行する。また、このとき、取得プログラムには、例えば「外部変数への設定」や「関数引数への設定」などにより、取得したい各種情報を指定するパラメータ(機器が実装しているMIBのOID)が設定され、実行される。
また、プログラム実行部214は、各取得プログラムからの実行結果に関する情報を、所定のデータにまとめて結果情報を生成し、実行を指示した上記機器情報取得部211又は上記ベンダ判別情報取得部212へ、生成した結果情報を返す。
では、上記に説明を行った各機能部による機器情報取得の連携動作について説明し、本実施形態に係る機器情報取得機能の詳細を明らかにする。
《機能動作》
機器情報取得機能は、上記各機能部が連携動作することで機能し、機器管理装置100に搭載される機器管理機能における機器情報取得を実現するためのソフトウェア部品が、CPU106により格納先(例えば「ROM105」など)からRAM104に読み出され、以下の処理が実行されることで実現される。
(機器情報取得処理:その1)
図5は、本発明の第1の実施形態に係る機器情報取得の処理手順例(その1)を示すシーケンス図である。また、図6は、本発明の第1の実施形態に係る機器情報31を取得するための定義情報41(その1)のデータ例を示す図である。
本実施形態に係る機器情報取得の処理手順では、主に、管理対象の機器のベンダを判別するためのベンダ判別情報を取得する「ベンダ判別情報の取得処理」と、取得したベンダ判別情報を基に判別したベンダの機器(自社管理対象機器200又は他社管理対象機器300)から機器情報31を取得する際に用いるパラメータ(OID)を、定義情報41内から特定し、特定したパラメータを用いて、機器からの機器情報31を取得する「機器情報の取得処理」とが行われる。
なお、以下の説明では、各機能部が行う処理の中で、どのように定義情報41が用いられているかについて分かりやすく説明を行うため、具体的な参照データの一例として図6を用いて説明を行う。また、以下の説明では、機器管理装置100が処理の中で機器情報を取得する相手を他社管理対象装置300として説明を行う。
まず、図5に示すように、機器管理装置100は、「機器情報31の取得処理」を行う前に、「ベンダ判別情報の取得処理」を行う。
機器管理装置100は、スケジューラSから機器情報取得部211へ、ベンダ判別情報の取得が指示される(ステップS101)。
機器情報取得部211は、ベンダ判別情報取得の指示を受け付けると、ベンダ判別情報取得部212へ、ベンダ判別情報の初期化を指示する(ステップS102)。
ベンダ判別情報取得部212は、初期化を行った後に、実行プログラム情報取得部213へ、ベンダ判別の基となる機種識別情報を取得する実行プログラム情報の取得を指示する(ステップS103)。
実行プログラム情報取得部213は、実行プログラム情報取得の指示を受け付けると、図6(A)に示す定義情報411を参照し、「<param>タグ」により、最終的に取得する"VendorID"(ベンダ判別情報)に対応付けて定義された"VendorIDParamController"(実行プログラム情報)を取得する。実行プログラム情報取得部213は、取得した"VendorIDParamController"を基に、実行する取得プログラムのアドレス値を求め、情報取得を要求したベンダ判別情報取得部212に、求めたアドレス値を情報取得結果として応答する。
ベンダ判別情報取得部212は、機種識別情報の取得プログラムのアドレス値を受け取ると、プログラム実行部214に取得プログラムの実行を指示する(ステップS104)。
プログラム実行部214は、実行指示を受け付けると、ステップS103において求められたアドレス値を基に、機種識別情報の取得プログラムを実行する。
このとき、取得プログラムは、図6(A)に示す定義情報411において、"sysObjectID"(機種識別情報)に対応付けて定義されたパラメータ"1.3.6.1.2.1.1.2"(取得する機種識別情報を指定するパラメータ(OID))が設定され実行される。その結果、他社管理対象機器300から機種識別情報(sysObjectID)を取得する。
続いて、取得プログラムは、図6(A)の参照符号411aに示す「<reslutTable>タグ」により、機種識別情報に対応付けて定義されたベンダ判別情報の候補(resultValueに対応付けられたVendorIDの値)を参照し、取得した機種識別情報に対応するベンダ判別情報を特定(取得)する。
例えば、取得した機種識別情報が「sysObjectID = "1.3.6.1.4.20000.1.2.3.0"」であった場合には、定義されたベンダ判別情報の候補のうち、取得した機種識別情報の値と一致する"resultValue"の値に対応するベンダ判別情報「VendorID ID = "XCompany"」が、ベンダ判別情報として特定(取得)される。また、取得した機種識別情報が「sysObjectID = "1.3.6.1.4.30000.1.1.1.1.0"」であった場合には、定義されたベンダ判別情報の候補のうち、ベンダ判別情報「VendorID ID = "YCompany"」が、ベンダ判別情報として特定(取得)される。
プログラム実行部214は、このようにして特定(取得)されたベンダ判別情報を、実行結果に関する情報として所定のデータにまとめて結果情報を生成し(ステップS106)、生成した結果情報を、実行を指示したベンダ判別情報取得部212へ返す。
ベンダ判別情報取得部212は、受け取った結果情報をメモリ(RAM104)上に保持し、受け取った旨を、機器情報取得部211へ返し、さらに機器情報取得部211は、スケジューラSへと返す。
続いて、機器管理装置100は、スケジューラSから機器情報取得部211へ、機器情報の取得が指示される(ステップS107)。
機器情報取得部211は、ベンダ判別情報取得部212にベンダ判別情報の取得を要求する(ステップS108)。その結果、ベンダ判別情報取得部212は、ステップS106において生成されメモリ上に保持したおいた結果情報の中からベンダ判別情報(VendorID)を抽出し、抽出データ(VendorIDの値)を、要求元に返す。
例えば、取得したベンダ判別情報が「VendorID ID = "XCompany"」の場合には、抽出データとして"XCompany"が返される。
続いて、機器情報取得部211は、取得したベンダ判別情報を基に、図6(B)に示す定義情報412を参照する。このとき、機器情報取得部211は、図6(B)の参照符号412a及び412bに示す「<vendorID>タグ」により、ベンダごとに対応付けて定義された、機器から機器情報31を取得するための取得プログラム(controller)と、ベンダごとに取得する機器情報31を指定するパラメータ(機器が実装しているMIBのOID(value))を参照し、取得したベンダ判別情報に対応するパラメータを特定(取得)する(ステップS109)。
例えば、取得したベンダ判別情報"XCompany"の場合には、「<vendorID>タグ」により定義された"XCompany"に対応する定義情報412a「<vendorID name = "XCompany"> ・・・・ </vendorID>」から、機器情報31であるX−DeviceName(X社の機器名称)を指定するパラメータ「value = "1.3.6.1.4.1.20000.1.2.3.4"」を特定(取得)する。また、取得したベンダ判別情報"YCompany"の場合には、「<vendorID>タグ」により定義された"YCompany"に対応する定義情報412b「<vendorID name = "YCompany"> ・・・・ </vendorID>」から、機器情報31であるY−DeviceName(Y社の機器名称)を指定するパラメータ「value = "1.3.6.1.4.1.30000.3.1.3.4"」を特定(取得)する。
機器情報取得部211は、このようにして特定(取得)したパラメータとベンダ判別情報とを、実行プログラム情報取得部213へ渡し、指定された機器情報31を取得する実行プログラム情報の取得を指示する(ステップS110)。
実行プログラム情報取得部213は、実行プログラム情報取得の指示を受け付けると、ベンダ判別情報(VendorID)を基に図6(B)に示す定義情報412a及び412bに示す「<vendorID>タグ」により定義された、機器から機器情報31を取得するための取得プログラム(controller)を参照し、取得する機器情報31に対応付けて定義された取得プログラムの情報(実行プログラム情報)を取得する。実行プログラム情報取得部213は、取得した実行プログラム情報を基に、実行する取得プログラムのアドレス値を求め、情報取得を要求した機器情報取得部211に、求めたアドレス値を情報取得結果として応答する。
例えば、ベンダ判別情報"XCompany"の場合には、「<vendorID>タグ」により定義された"XCompany"に対応する定義情報412a「<vendorID name = "XCompany"> ・・・・ </vendorID>」から、取得する"DeviceName"(機器情報31)に対応付けて定義された"StringParamController"(実行プログラム情報)を取得し、取得した"StringParamController"を基に、実行する取得プログラムのアドレス値を求め、求めたアドレス値を情報取得結果として応答する。
また、ベンダ判別情報"YCompany"の場合には、「<vendorID>タグ」により定義された"YCompany"に対応する定義情報412b「<vendorID name = "YCompany"> ・・・・ </vendorID>」から、取得する"DeviceName"(機器情報31)に対応付けて定義された"StringParamController"(実行プログラム情報)を取得し、取得した"StringParamController"を基に、実行する取得プログラムのアドレス値を求め、求めたアドレス値を情報取得結果として応答する。
機器情報取得部211は、機器情報31の取得プログラムのアドレス値を受け取ると、プログラム実行部214に取得プログラムの実行を指示する(ステップS111)。
プログラム実行部214は、実行指示を受け付けると、ステップS110において求められたアドレス値を基に、機器情報31の取得プログラムを実行する。
このとき、取得プログラムは、ステップS109において取得されたパラメータ"1.3.6.1.4.1.20000.1.2.3.4"(取得する機器情報31を指定するOID)が設定され実行される。その結果、他社管理対象機器300から機器情報31(DeviceName)を取得する。
プログラム実行部214は、このようにして取得された機器情報31を、実行結果に関する情報として所定のデータにまとめて結果情報を生成し(ステップS113)、生成した結果情報を、実行を指示した機器情報取得部211へ返す。
機器情報取得部211は、受け取った結果情報をスケジューラSへと返す。
(機器情報の取得処理:その2)
上記に説明を行った処理手順は、機器管理装置100に搭載される機器管理機能を実現する既存ソフトウェア部品群により実行されるものである。しかし、機器管理システム1における機器管理環境の変化(例えば、新たなベンダの機器を管理対象として追加するなど)によっては、既存のソフトウェア部品以外に、独自のソフトウェア部品を開発し、後に追加することも想定される。
ここで言う独自のソフトウェア部品とは、例えば、新規の機器情報31や拡張された機器情報31などを取得する取得プログラムをDLL化したファイルデータ(DLLファイル)を意味する。
DLLとは、Windows(登録商標)において、複数のアプリケーションソフトが共通して利用するような汎用性の高いプログラムを部品化してファイルとして保存しておき、必要に応じてメモリに呼び出して利用する手法で、そのようにして利用されるプログラム部品のことである。
このことから、情報を取得する機能部をDLL化しておくことで、機器管理装置100が搭載する各アプリケーションから共通して利用することができる。
以下に、上記独自のソフトウェア部品を用いて、どのように機器情報31の取得が行われるのかについて説明する。図7は、本発明の第1の実施形態に係る機器情報取得の処理手順例(その2)を示すシーケンス図である。また、図8は、本発明の第1の実施形態に係る機器情報を取得するための定義情報(その2)のデータ例を示す図である。
なお、以下の説明では、図5を用いて説明を行った「機器情報の取得処理」の処理手順と異なる点についてのみ説明を行う。
図7に示すように、機器管理装置100は、機器情報取得部211が、図5のステップS109の処理手順同様、取得する機器情報31を指定するパラメータを定義情報41から取得後(ステップS203)、実行プログラム情報取得部213へ、DLLファイルの読み込みを指示する(ステップS204)。
実行プログラム情報取得部213は、実行プログラム情報取得の指示を受け付けると、ベンダ判別情報を基に図8に示す定義情報412a及び412bを参照し、取得する機器情報31に対応付けて定義された取得プログラム(実行プログラム)がDLL化されたDLLファイルを読み込み(ステップS205)、その結果を応答する。
例えば、ベンダ判別情報が"XCompany"の場合には、「<vendorID>タグ」により定義された"XCompany"に対応する定義情報412a「<vendorID name = "XCompany"> ・・・・ </vendorID>」から、取得する"DeviceName"(機器情報31)に対応付けて定義された"XStringChangeParamController"(実行プログラム)がDLL化された"XModule.dll"を読み込む。
また、ベンダ判別情報が"YCompany"の場合には、「<vendorID>タグ」により定義された"YCompany"に対応する定義情報412b「<vendorID name = "YCompany"> ・・・・ </vendorID>」から、取得する"DeviceName"(機器情報31)に対応付けて定義された"YStringChangeParamController"(実行プログラム)がDLL化された"YModule.dll"を読み込む。
続いて、機器情報取得部211は、パラメータとベンダ判別情報とを、実行プログラム情報取得部213へ渡し、指定された機器情報31を取得する実行プログラム情報の取得を指示する(ステップS206)。
実行プログラム情報取得部213は、実行プログラム情報取得の指示を受け付けると、ベンダ判別情報を基に図8に示す定義情報412a及び412bに示す「<vendorID>タグ」により定義された、機器から機器情報31を取得するための取得プログラム(controller)を参照し、取得する機器情報31に対応付けて定義された取得プログラムの情報(実行プログラム情報)を取得する。実行プログラム情報取得部213は、取得した実行プログラム情報を基に、実行する取得プログラムのアドレス値を求め(ステップS207)、情報取得を要求した機器情報取得部211に、求めたアドレス値を情報取得結果として応答する。
機器情報取得部211は、図5のステップS111の処理手順と同様に、機器情報31の取得プログラムのアドレス値を受け取ると、プログラム実行部214に取得プログラムの実行を指示する(ステップS208)。以降のステップS209及ぶS210は、図6のステップS112及ぶS113と同様である。
<まとめ>
以上のように、本発明の第1の実施形態によれば、本実施形態に係る機器管理装置100は、まず、ベンダ判別情報取得部212が、管理対象とする機器(自社管理対象装置200及び/又は他社管理対象装置300)の機種識別情報(sysObjectID)を取得し、取得した機種識別情報を基に機器のベンダを判別する(ベンダ判別情報(VendorID)を取得し)。
続いて、機器情報取得部211が、機器から機器情報31を取得するための取得プログラム(controller)や、ベンダごとに取得する機器情報31を指定するパラメータ(機器が実装しているMIBのOID(value))などの機器情報31を取得するための情報が定義された定義情報41から、判別したベンダの機器(自社管理対象機器200又は他社管理対象機器300)から機器情報31を取得する際に用いるパラメータを特定(取得)する。
その結果、特定(取得)されたパラメータとベンダ判別情報とを基に、実行プログラム情報取得部213が、取得プログラムのアドレス値を求め、プログラム実行部214が、求められたアドレス値を基に、特定したパラメータを取得プログラムに設定し実行する。
これによって、機器管理装置100では、機器管理システム1において、自社管理対象機器200と同様に、他社管理対象機器300からも詳細な機器情報31(拡張MIB)を取得することができる。また、機器情報31の取得に関する情報(定義情報41)を、データファイルとしたことにより、開発時の仕様変更や運用時の保守など、拡張性の高い機器情報取得機能を実現することができる。
以上のことから、本実施形態に係る機器管理システム1では、異なるベンダの機器が混在するネットワーク環境下であっても、ベンダを問わず詳細な機器情報31を基に機器管理を行うことができ、好適な機器管理機能をユーザへ提供することができる。
[第2の実施形態]
第1の実施形態では、自社管理対象機器と同様に、他社管理対象機器からも詳細な機器情報を取得する構成について説明を行った。
このような場合、機器情報を管理する機器管理装置では、自社の機器情報と同様に、他社の仕様に従った形式の機器情報を管理しなければならない。つまり、異なった形式のデータを管理しなければならない。
そのため、機器情報を基にした機器管理を汎用的にかつ効率よく行うためには、機器情報を管理する上で、例えば、取得した自社及び他社(異なるベンダ)の機器情報を共通して取り扱う必要がある。
そこで、本実施形態に係る機器管理装置が有する機器管理機能における機器情報取得機能では、取得した他社の機器情報を自社の機器情報と共通して取り扱えるようにデータ変換を行う機能(データ変換機能)をさらに有し、上記問題点を解決するものである。
以下に、上記本実施形態に係る機器管理装置について説明するが、本実施形態に係る機器管理装置と、第1の実施形態に係る機器管理装置との違いは、上記データ変換機能のみであることから、それ以外の技術的事項については、第1の実施形態と同じ図面と符号を参照し説明を省略する。
<機器情報取得機能>
《機能構成》
図9は、本発明の第2の実施形態に係る機器情報取得機能の構成例を示す図である。図9に示すように、本実施形態に係る機器情報取得機能を構成する各機能部は、第1の実施形態に係る機器情報取得機能と同様である。
機能構成において、第1の実施形態と異なる点は、定義情報41内に、自社の機器情報31を基に他社の機器情報31をデータ変換する手続き(変換テーブル(データ変換部)51)が定義されている点と、プログラム実行部214が、この変換テーブル51に基づき、他社の機器情報31を、自社の機器情報31と同様に取り扱えるようにデータ変換を実施する点である。
では、以降に、その変換テーブル51を用いた機能動作の詳細について説明する。
《機能動作》
図10は、本発明の第2の実施形態に係る結果情報を生成する処理手順例を示すフローチャートである。
他社の機器情報31を、自社の機器情報31と同様に取り扱えるようにするためには、他社管理対象機器300から機器情報31を取得後、機器情報31の取得を指示した情報取得要求元に取得結果を応答するまでの間に行う必要がある。
そのため、本実施形態では、図5のステップS113や図7のステップS210で説明を行った、取得後の機器情報31を基に結果情報を生成する段階でデータ変換を行う。
図10(A)には、その際に行われる処理手順の一例が示されており、図10(B)には、さらにその処理の中で行われるデータ変換処理の一例が示されている。
(結果情報生成処理)
図10(A)に示すように、機器管理装置100は、プログラム実行部214が、実行指示を受け付けると(ステップS301)、取得する機器情報31を取得する取得プログラムのアドレス値を基に、機器情報31の取得プログラムを実行し、他社管理対象機器300から機器情報31を取得する(ステップS302)。
続いて、プログラム実行部214は、定義情報41を参照し(ステップS303)、定義情報41から、データを変換する変換プログラムの情報(実行プログラム情報)が取得できるか否か(実行プログラム情報が定義されているか否か)を判定する(ステップS304)。
ステップS304において、実行プログラム情報が取得可能と判定された場合、すなわち、実行プログラム情報が定義されていると判定された場合(ステップS304:YES)には、実行プログラム情報を取得し(ステップS305)、取得した情報を基に、実行する変換プログラムのアドレス値を求める。
プログラム実行部241は、求められたアドレス値を基に、データを変換する変換プログラムを実行し、データ変換処理を行う(ステップS306)。
プログラム実行部214は、このようにしてデータ変換された値を、実行結果に関する情報として所定のデータにまとめて結果情報を生成する(ステップS307)。
このようにして生成された結果情報は、実行を指示した機器情報取得部211へと返される。
一方、ステップS304において、実行プログラム情報が取得不可能と判定された場合、すなわち、実行プログラム情報が定義されていないと判定された場合(ステップS304:NO)には、他社管理対象機器300から取得した機器情報31が、データ変換を行う必要がないものと判断し、図に示す処理を終了する。
(データ変換処理)
以下に説明する処理手順は、上記ステップS306において変換プログラムが実行されることにより行われるデータ変換処理の詳細である。
図10(B)に示すように、実行された変換プログラムは、まず、取得した他社の機器情報31と、機器情報31の情報種とを基に、定義情報41内に「<reslutTable>タグ」により定義された、取得した機器情報31の値と変換後の値とが対応付けられた変換テーブル51を検索し(ステップS401)、他社の機器情報31の値に対応する変換後の値が定義されているか否かを判定する(ステップS402)。
ステップS402において、変換テーブル51に、変換後の値が定義されている場合(ステップS402:YES)には、該当する変換後の値を取得し、他社の機器情報31を変換する(他社の機器情報31の値を、取得した変換後の値に置き換える)(ステップS403)。
一方、ステップS402において、変換テーブル51に、変換後の値が定義されていない場合(ステップS402:NO)には、図に示す処理を終了する。
本実施形態に係る機器管理装置100は、上記処理手順により、機器情報取得機能におけるデータ変換処理を行っている。
ここからは、本実施形態に係るデータ変換機能について、変換テーブル51のデータ例を基に、より具体的に説明する。
例えば、データ変換機能を動作させる場面には、以下のようなものが想定される。
(1)自社の拡張MIBの値と他社の拡張MIBの値との整合をとる場面
(2)標準MIBにおいてベンダ独自に定義された値に対応する場面
(3)取得プログラムによる機器情報の出力内容に新たな情報を追加する場面
(4)ベンダ独自のTrapMIBに対応する場面
以降の説明では、上記各場面を例に順に説明する。
(1)自社の拡張MIBの値と他社の拡張MIBの値との整合をとる場面
図11は、本発明の第2の実施形態に係る機器情報31を取得するための定義情報41(その1)のデータ例を示す図である。
本実施形態に係る機器情報取得機能において、ベンダ判別情報"XCompany"を基に、図11に示す定義情報4121を参照した場合、「<vendorID>タグ」により定義されたベンダ判別情報"XCompany"に該当する情報から、プログラム実行部214が、「<param>タグ」により定義された機器情報31を取得する"CopyStatusParamController"の取得プログラムに、パラメータ「value = "1.3.6.1.4.1.20000.4.3.2.1"」を設定し、"X-CopyStatusSummary"を取得し、さらに、パラメータ「value = "1.3.6.1.4.1.20000.4.5.6.1"」を設定し、"X-EnageStatusSummary"を取得する。
続いて、プログラム実行部214は、「<resultTable>タグ」により定義された情報が存在するか否かを基に、変換プログラムの情報(実行プログラム情報)が取得可能か否かを判定する。
プログラム実行部214は、「<resultTable>タグ」により定義された情報が存在する場合に、変換プログラム情報が取得可能であると判断し、「"controller"="ValueChangeController"」から、変換プログラム(ValueChangeController)を特定し、実行する。
このようにして実行された変換プログラム(ValueChangeController)は、図中の変換テーブル511aを参照し、取得プログラム(CopyStatusParamController)により取得した"X-CopyStatusSummary"及び"X-EnageStatusSummary"の値を変換する。
ここで、変換テーブル51の構成について説明する。自社の拡張MIB(自社の機器情報31)の値と他社の拡張MIB(他社の機器情報31)の値との整合をとる場面で用いられる変換テーブル51では、1つのデータ変換の手続きが、1つの「<result>タグ」により定義されている。また、「<result>タグ」では、機器情報31の種類を表す情報種(valueID)と、変換前(取得した他社の機器情報31)の値(value)と、変換後の値(resultValue)とが1つずつ対応付けられて定義される構成となっている。よって、変換テーブル51には、変換対象となる他社の機器情報31の数だけ、「<result>タグ」によりデータ変換の手続きが定義されている。
このような構成の変換テーブル51を用いてデータ変換を行う場合には、以下の手順により変換処理される。
(手順1)変換テーブル511aの「valueID」を参照し、取得した他社の機器情報31の情報種に対応する「<result>タグ」を絞り込む。機器情報31の情報種は、取得する機器情報31を指定するパラメータ(value)と同じ「<obj>タグ」に、"valueID"の値として定義されており、この値は、取得される他社の機器情報31の名称(name)やパラメータ(value)に対応付けられている。
(手順2)絞り込まれた1つ以上の「<result>タグ」の情報の中から、取得した他社の機器情報31の値と一致する"value"の値が定義された「<result>タグ」を特定する。
(手順3)特定した「<result>タグ」の情報に定義される"resultValue"の値を、変換後の値として取得する。
例えば、取得した他社の機器情報31が"X-CopyStatusSummary"で、その値が"0x0100"であった場合に、図中の変換テーブル511aを用いてデータ変換を行うと、図中の定義情報4121では、"X-CopyStatusSummary"の情報種が、「valueID = "1"」と定義されていることから、変換テーブル511a内において「valueID = "1"」が定義された「<result>タグ」の情報が、データ変換の手続き候補として絞り込まれる。
次に、絞り込まれた1つ以上の「<result>タグ」の情報の中から、"X-CopyStatusSummary"の値"0x0100"と一致する"value"の値が定義された「<result>タグ」を特定し、特定した「<result>タグ」の情報に定義される"resultValue"の値"0x0020"を、変換後の値として取得する。
また、取得した他社の機器情報31が"X-EnageStatusSummary"で、その値が"0x1000"であった場合には、図中の定義情報4121では、"X-EnageStatusSummary"の情報種が、「valueID = "2"」と定義されていることから、変換テーブル511a内において「valueID = "2"」が定義された「<result>タグ」の情報が、データ変換の手続き候補として絞り込まれる。
次に、絞り込まれた1つ以上の「<result>タグ」の情報の中から、"X-EnageStatusSummary"の値"0x0001"と一致する"value"の値が定義された「<result>タグ」を特定し、特定した「<result>タグ」の情報に定義される"resultValue"の値"0x1000"を、変換後の値として取得する。
また、図中の定義情報4121には、取得した他社の機器情報31が文字列であった場合に、その文字列に対応する自社の機器情報31のコード値に変換する変換テーブル511bの例が示されている。このように、データ形式が異なる場合であっても、整合をとることが可能である。
このようにして取得した変換後の値は、プログラム実行部214により、実行結果に関する情報として所定のデータにまとめられ、結果情報が生成される。これにより、変換後の値を用いて生成した結果情報が、情報取得要求元である機器情報取得部211へと返される。
なお、上記データ変換処理を行う際に、変換テーブル51に該当する情報種や変換前の値が存在しない場合には、例えば、図中の変換テーブル511a及び511bに示すように、所定の変換値("0xFFFF")に変換する。
(2)標準MIBにおいてベンダ独自に定義された値に対応する場面
図12は、本発明の第2の実施形態に係る機器情報31を取得するための定義情報41(その2)のデータ例を示す図である。
例えば、標準MIBには、Printer−MIB(prtAlertLocation)と言った、ベンダ独自に定義可能な情報がある。このように、ベンダごとに共通性がなく、拡張性の高い機器情報31に対しては、自社と他社との間で共通化する必要がある。
そのため、図12に示すような変換テーブル512が定義された定義情報4122を基に、取得した他社の機器情報31を、自社の仕様に合わせて変換する。
本実施形態に係る機器情報取得機能において、図12に示す定義情報4122を参照した場合、「<vendorID>タグ」により定義された情報から、プログラム実行部214が、「<param>タグ」により定義された機器情報31を取得する"StringParamController"の取得プログラムに、パラメータ「value = "1.3.6.1.4.1.43.18.1.1.6.1"」を設定し、"prtAletLocation"を取得する。
続いて、プログラム実行部214は、「<resultTable>タグ」により定義された情報が存在するか否かを基に、変換プログラムの情報(実行プログラム情報)が取得可能か否かを判定する。
プログラム実行部214は、「<resultTable>タグ」により定義された情報が存在する場合に、変換プログラム情報が取得可能であると判断し、「"controller"="PrinterAlertCodeValueController"」から、変換プログラム(PrinterAlertCodeValueController)を特定し、実行する。
このようにして実行された変換プログラム(PrinterAlertCodeValueController)は、図中の変換テーブル512を参照し、取得プログラム(StringParamController)により取得した"prtAletLocation"の値を変換する。
ここで、変換テーブル51の構成について説明する。標準MIBにおいてベンダ独自に定義された値に対応する場面で用いられる変換テーブル51では、1つのデータ変換の手続きが、1つの「<result>タグ」により定義されている。また、「<result>タグ」では、機器情報31の種類を表す情報種(valueID)と、変換前(取得した他社の機器情報31)の値(value)と、変換後の値(resultValue)と、ベンダ判別情報(vendorID)とが1つずつ対応付けられて定義される構成となっている。よって、変換テーブル51には、変換対象となる他社の機器情報31の数だけ、「<result>タグ」によりデータ変換の手続きが定義されている。
このような構成の変換テーブル51を用いてデータ変換を行う場合には、以下の手順により変換処理される。
(手順1)変換テーブル511aの「valueID」を参照し、取得した他社の機器情報31の情報種に対応する「<result>タグ」を絞り込む。機器情報31の情報種は、取得する機器情報31を指定するパラメータ(value)と同じ「<obj>タグ」に、"valueID"の値として定義されており、この値は、取得される他社の機器情報31の名称(name)やパラメータ(value)に対応付けられている。
(手順2)絞り込まれた1つ以上の「<result>タグ」の情報の中から、さらにベンダ判別情報を基に、該当する「<result>タグ」を絞り込む。
(手順3)絞り込まれた1つ以上の「<result>タグ」の情報の中から、取得した他社の機器情報31の値と一致する"value"の値が定義された「<result>タグ」を特定する。
(手順4)特定した「<result>タグ」の情報に定義される"resultValue"の値を、変換後の値として取得する。
例えば、判別されたベンダ判別情報が"XCompany"で、取得した他社の機器情報31"prtAletLocation"の値が"10022"であった場合に、図中の変換テーブル512を用いてデータ変換を行うと、図中の定義情報4122では、"prtAletLocation"の情報種が、「valueID = "1"」と定義されていることから、変換テーブル512内において「valueID = "1"」が定義された「<result>タグ」の情報が、データ変換の手続き候補として絞り込まれる。
次に、絞り込まれた1つ以上の「<result>タグ」の情報の中から、さらにベンダ判別情報"XCompany"を基に、「vendorID = "XCompany"」が定義され該当する「<result>タグ」を絞り込む。
次に、絞り込まれた1つ以上の「<result>タグ」の情報の中から、"prtAletLocation"の値"10022"と一致する"value"の値が定義された「<result>タグ」を特定し、特定した「<result>タグ」の情報に定義される"resultValue"の値"10123"を、変換後の値として取得する。
また、判別されたベンダ判別情報が"YCompany"で、取得した他社の機器情報31"prtAletLocation"の値が"30123"であった場合に、図中の変換テーブル512を用いてデータ変換を行うと、図中の定義情報4122では、"prtAletLocation"の情報種が、「valueID = "1"」と定義されていることから、変換テーブル512内において「valueID = "1"」が定義された「<result>タグ」の情報が、データ変換の手続き候補として絞り込まれる。
次に、絞り込まれた1つ以上の「<result>タグ」の情報の中から、さらにベンダ判別情報"YCompany"を基に、「vendorID = "YCompany"」が定義され該当する「<result>タグ」を絞り込む。
次に、絞り込まれた1つ以上の「<result>タグ」の情報の中から、"prtAletLocation"の値"30123"と一致する"value"の値が定義された「<result>タグ」を特定し、特定した「<result>タグ」の情報に定義される"resultValue"の値"20010"を、変換後の値として取得する。
また、図中の定義情報4122には、「<result>タグ」により、機器情報31の種類を表す情報種(valueID)と、変換前(取得した他社の機器情報31)の値(value)と、変換後の値(resultValue)とを対応付けて定義されるデータ変換の手続きに従って、取得した他社の機器情報31を、自社の仕様に合わせて変換する変換テーブル512の例が示されている。このように、ベンダ判別情報(VendorID)に依存せず、他社の機器に共通して(「X社」と「Y社」の各機器に共通して)データ変換を行うことも可能である。
このようにして取得した変換後の値は、プログラム実行部214により、実行結果に関する情報として所定のデータにまとめられ、結果情報が生成される。これにより、変換後の値を用いて生成した結果情報が、情報取得要求元である機器情報取得部211へと返される。
なお、上記データ変換処理を行う際に、変換テーブル51に該当する情報種や変換前の値が存在しない場合には、例えば、図中の変換テーブル511a及び511bに示すように、所定の変換値("0xFFFF")に変換する。
(3)取得プログラムによる機器情報の出力内容に新たな情報を追加する場面
図13は、本発明の第2の実施形態に係る機器情報31を取得するための定義情報41(その3)のデータ例を示す図である。
例えば、図13に示す定義情報4123に、「<param>タグ」により定義された取得プログラム"CopyStatusParamController"を用いて、機器情報31(CopyStatus)を取得する場合、出力内容(CopyStatusに関する取得可能な情報)が決まっている。なぜなら、取得プログラムは、自社により開発されたプログラムであるため、開発時の仕様に従った内容でしか出力できないためである。
このような取得プログラムを用いて他社の機器情報31を取得する場合、他社が提供する新たな情報を、自社の仕様に従って取得できるようにしたい。
そのため、図13に示すような変換テーブル513a及び513bが定義された定義情報4123を基に、取得した他社の機器情報31を基に、他社が提供する新たな情報を自社の仕様に合わせて変換する。
なお、上記データ変換機能において、「取得プログラムによる情報取得」、「変換プログラムの実行」、「変換テーブルの構成」、及び「データ変換の手順」については、上記(1)で説明を行った内容と同様であることから、ここでの説明を省略し、図13に示す変換テーブル513a及び513bを用いて行われる具体的な変換処理についてのみ説明を行う。
例えば、取得した他社の機器情報31"X-CopyStatusSummary"の値が、他社が提供する新たな値"0x0040"であった場合に、図中の変換テーブル513aを用いてデータ変換を行うと、図中の定義情報4123では、"X-CopyStatusSummary"の情報種が、「valueID = "1"」と定義されていることから、変換テーブル513a内において「valueID = "1"」が定義された「<result>タグ」の情報が、データ変換の手続き候補として絞り込まれる。
次に、絞り込まれた1つ以上の「<result>タグ」の情報の中から、"X-CopyStatusSummary"の値"0x0040"と一致する"value"の値が定義された「<result>タグ」を特定し、特定した「<result>タグ」の情報に定義される"resultValue"の値"Toner empty (Cyan)"を、変換後の値(自社の仕様に従った所定の文字列)として取得する。
また、取得した他社の機器情報31"X-EnageStatusSummary"の値が、他社が提供する新たな値"0x0001"であった場合には、図中の定義情報4123では、"X-EnageStatusSummary"の情報種が、「valueID = "2"」と定義されていることから、変換テーブル513a内において「valueID = "2"」が定義された「<result>タグ」の情報が、データ変換の手続き候補として絞り込まれる。
次に、絞り込まれた1つ以上の「<result>タグ」の情報の中から、"X-EnageStatusSummary"の値"0x0001"と一致する"value"の値が定義された「<result>タグ」を特定し、特定した「<result>タグ」の情報に定義される"resultValue"の値"Energy Saver Mode"を、変換後の値(自社の仕様に従った所定の文字列)として取得する。
このようにして取得した変換後の値は、プログラム実行部214により、実行結果に関する情報として所定のデータにまとめられ、結果情報が生成される。これにより、変換後の値を用いて生成した結果情報が、情報取得要求元である機器情報取得部211へと返される。
なお、上記データ変換処理を行う際に、変換テーブル51に該当する情報種や変換前の値が存在しない場合には、例えば、図中の変換テーブル513a及び513bに示すように、所定の変換値("Other Error")に変換する。
(4)ベンダ独自のTrapMIBに対応する場面
図14は、本発明の第2の実施形態に係る機器情報31を取得するための定義情報41(その4)のデータ例を示す図である。
まず、Trapについて簡単に説明する。Trapとは、自社管理対象機器200や他社管理対象機器300に、エラーが発生したり、設定が変更されたり、何らかの変化が発生した場合に、予め指定しておいた宛先(例えば「機器管理装置100」など)に状態情報を含む機器情報31を通知する機能である。
このようにして取得される機器情報31には、変化が発生した機器のIPアドレスと、発生したイベント(発生障害や設定変更)を識別するイベント識別情報(イベントID)と、発生時刻と、OIDと、そのOIDの値が含まれる。
このうち、OIDには、主に標準MIBのOIDが設定されているが、場合によっては、他社の拡張MIBのOIDが設定されており、このような場合には、他社の拡張MIBのOIDとそのOIDの値を自社の仕様に従って変換し、アプリケーションが利用できるようにしたい。
そのため、図14に示すような変換テーブル514が定義された定義情報4124を基に、取得した他社の機器情報31を基に、他社が提供する情報を自社の仕様に合わせて変換する。
本実施形態に係る機器情報取得機能において、TrapMIBにより機器情報31(OID"1.3.6.1.4.1.20000.4.3.2.1")を取得し、図14に示す定義情報4124を参照した場合、プログラム実行部214が、「<param>タグ」により定義された機器情報31を変換する"TrapParamController"の変換プログラムにより、取得したOID"1.3.6.1.4.1.20000.4.3.2.1"を基に、「<obj>タグ」により定義された情報を参照し、機器情報31の名称"name"の値"X-CopyStatusSummary"及び機器情報31の種類を表す情報種"valueID"の値"11"を取得する。
続いて、プログラム実行部214は、「<resultTable>タグ」により定義された情報の中に、取得した情報種"valueID"の値"11"に対応する情報が存在するか否かを基に、他社の拡張MIBに対応する変換プログラム(以下、「他社拡張MIB対応変換プログラム」と言う。)の情報(実行プログラム情報)が取得可能か否かを判定する。
プログラム実行部214は、「<resultTable>タグ」により定義された情報が存在する場合に、他社拡張MIB対応変換プログラム情報が取得可能であると判断し、「"controller"="TrapCodeValueController"」から、他社拡張MIB対応変換プログラム(ValueChangeController)を特定し、実行する。
このようにして実行された他社拡張MIB対応変換プログラム(TrapCodeValueController)は、図中の変換テーブル514を参照し、変換プログラム(TrapParamController)により取得した"X-CopyStatusSummary"の値を変換する。
ここで、変換テーブル51の構成について説明する。自社の拡張MIB(自社の機器情報31)の値と他社の拡張MIB(他社の機器情報31)の値との整合をとる場面で用いられる変換テーブル51では、1つのデータ変換の手続きが、1つの「<result>タグ」により定義されている。また、「<result>タグ」では、機器情報31の種類を表す情報種(before_valueID,after_valueID)と、変換前(取得した他社の機器情報31)の値(value)と、変換後の値(resultValue)とが1つずつ対応付けられて定義される構成となっている。よって、変換テーブル51には、変換対象となる他社の機器情報31の数だけ、「<result>タグ」によりデータ変換の手続きが定義されている。
また、変換テーブル51には、取得した他社の機器情報31の値(value)だけでなく、機器情報31の種類を表す情報種に基づき、他社の機器情報31の名称(name)を自社の仕様に合わせるために変換する必要がある。
そのため、機器情報31の種類を表す情報種の変換前の値(before_valueID)と、変換後の値(after_valueID)とが対応付けられて定義されている。
このような構成の変換テーブル51を用いてデータ変換を行う場合には、以下の手順により変換処理される。
(手順1)変換テーブル511aの「before_valueID」を参照し、取得した他社の機器情報31の情報種に対応する「<result>タグ」を絞り込む。機器情報31の情報種は、取得する機器情報31を指定するパラメータ(value)と同じ「<obj>タグ」に、"valueID"の値として定義されており、この値は、取得される他社の機器情報31の名称(name)やOIDの値(value)に対応付けられている。
(手順2)絞り込まれた1つ以上の「<result>タグ」の情報の中から、取得した他社の機器情報31の値と一致する"value"の値が定義された「<result>タグ」を特定する。
(手順3)特定した「<result>タグ」の情報に定義される"after_valueID"の値と、"resultValue"の値を、変換後の値として取得する。
(手順4)さらに、「<obj>タグ」の情報の中から、機器情報31の種類を表す情報種の変換後の値(after_valueID)に対応付けて定義された機器情報31の名称(name)を取得する。
例えば、取得した他社の機器情報31(TrapMIB)が、OID"1.3.6.1.4.1.20000.4.3.2.1"の"X-CopyStatusSummary"で、その値が"0x0100"であった場合に、図中の変換テーブル514を用いてデータ変換を行うと、図中の定義情報4124では、"X-CopyStatusSummary"の情報種が、「valueID = "11"」と定義されていることから、変換テーブル514内において「before_valueID = "11"」が定義された「<result>タグ」の情報が、データ変換の手続き候補として絞り込まれる。
次に、絞り込まれた1つ以上の「<result>タグ」の情報の中から、"X-CopyStatusSummary"の値"0x0100"と一致する"value"の値が定義された「<result>タグ」を特定し、特定した「<result>タグ」の情報に定義される"after_valueID"の値"9"と、"resultValue"の値"0x0020"を、変換後の値として取得する。
このようにして変換された機器情報31の種類を表す情報種の変換後の値"after_valueID"の値"9"を基に、「<obj>タグ」の情報の中から、一致する"valueID"の値が定義された「<obj>タグ」を特定し、特定した「<obj>タグ」の情報に定義される機器情報31の名称"name"の値"MyCompanyCopyAlertCodeOrg"を、変換後の機器情報31の名称として取得する。
また、図中の定義情報4124には、取得した他社の機器情報31が文字列であった場合に、その文字列に対応する自社の機器情報31のコード値に変換する変換テーブル514の例が示されている。このように、データ形式が異なる場合であっても、整合をとることが可能である。
このようにして取得した変換後の値は、プログラム実行部214により、実行結果に関する情報として所定のデータにまとめられ、結果情報が生成される。これにより、変換後の値を用いて生成した結果情報が、情報取得要求元である機器情報取得部211へと返される。
なお、上記データ変換処理を行う際に、変換テーブル51に該当する情報種や変換前の値が存在しない場合には、例えば、図中の変換テーブル514に示すように、所定の変換値("0xFFFF")に変換する。
<まとめ>
以上のように、本発明の第2の実施形態によれば、本実施形態に係る機器管理装置100は、第1の実施形態と同様の機器情報取得機能を実現している。
さらに、機器管理装置100では、プログラム実行部214により、取得プログラムを実行後、取得した他社の機器情報31がデータ変換を行うデータか否かを判断し、データ変換を行うデータであった場合に変換プログラムを実行する。
その結果、変換プログラムが、変換テーブル51が定義されている定義情報41を基に、取得した他社の機器情報31を自社の仕様に従ってデータ変換を行う。
これによって、機器管理装置100では、第1の実施形態と同様の効果を奏するとともに、機器管理システム1において、他社の機器情報31を自社の機器情報31と共通して取り扱うことができる。
以上のことから、本実施形態に係る機器管理システム1では、異なるベンダの機器が混在するネットワーク環境下であっても、ベンダを問わず詳細な機器情報31を基に、効率よく機器管理を行うことができ、好適な機器管理機能をユーザへ提供することができる。
ここまで、上記実施形態に基づき本発明の説明を行ってきたが、上記各実施形態に係る機器管理装置100が有する「機器情報取得機能」は、図を用いて説明を行った各処理手順を、動作環境(プラットフォーム)にあったプログラミング言語でコード化したプログラムとしてCPU108により実行することで実現される。よって、上記プログラムは、コンピュータが読み取り可能な記録媒体103aに格納することができる。
また、上記プログラムは、フロッピー(登録商標)ディスク、CD、DVD(Digital Versatile Disk)などの記録媒体103aに記憶させることによって、これらの記録媒体103aを読み取り可能なドライブ装置103を介して機器管理装置100にインストールすることができる。また、機器管理装置100は、インタフェース装置107を備えていることから、インターネットなどの電気通信回線を用いて上記プログラムをダウンロードし、インストールすることもできる。
ところで、上記各実施形態では、機器管理装置100が備える記憶装置の所定の記憶領域に、機器情報31や定義情報41を保持する構成について説明を行ったが、本発明がこの構成に限定されるものではない。
例えば、上記各種情報を外部の記録媒体103aに保持する構成や、データ伝送路90を介して接続された外部機器が備える記憶装置に保持する構成であってもよく、必ずしも、機器管理装置100が備える記憶装置に保持する構成でなくてもよい。上記各種情報の格納先については、これらの情報を管理・参照する各機能部により制御される構成であればよい。
また、上記各実施形態では、XML(Extensible Markup Language)データによる定義情報41を例が説明を行ったが、本発明がこのデータ形式に限定されるものではない。
定義情報41は、機器情報取得機能における、ベンダ判別情報、機器情報31を取得する取得プログラムの情報(実行プログラム情報)、及び取得する機器情報31を指定するパラメータ(OID)、並びにデータ変換機能における変換プログラムの情報(実行プログラム情報)及び変換後の値など、それぞれの情報が特定(取得)される構成であればよい。
上記各実施形態において、定義情報41のデータ形式にXMLを用いた理由は、XMLデータの場合、データを解析し定義内容を解釈する汎用プログラム(XMLパーサ)が存在するため機能実現を容易に行える点や、定義内容をテキストで入力可能なため開発や保守が容易に行える点などが上げられる。
最後に、上記実施形態に挙げた形状や構成に、その他の要素との組み合わせなど、ここで示した要件に、本発明が限定されるものではない。これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。