(57)【特許請求の範囲】
【請求項１】
複数のマネージャ装置のそれぞれからＳＮＭＰの設定命令を受け付ける受付部と、
前記設定命令が管理情報とその設定値を指定する場合、自装置における前記管理情報を前記設定値で更新する設定処理部と、
前記複数のマネージャ装置のそれぞれから受け付けた設定命令を、前記管理情報の更新前の値と対応づけ、かつ、送信元のマネージャ装置の識別が可能な態様で保持する設定履歴保持部と、
を備え、
前記設定処理部は、あるマネージャ装置から受け付けた設定命令がアンドゥを指定する場合、当該マネージャ装置からの過去の設定命令により更新した管理情報を更新前の値に戻すアンドゥ処理を実行することを特徴とするＳＮＭＰのエージェント装置。
【請求項２】
前記設定処理部は、前記設定命令が設定命令単位のアンドゥを指定する場合、最近の設定命令から設定命令単位にアンドゥ処理を実行することを特徴とする請求項１に記載のＳＮＭＰのエージェント装置。
【請求項３】
前記設定処理部は、前記設定命令が設定命令単位のアンドゥの回数をさらに指定する場合、最近の当該回数分の設定命令に対してアンドゥ処理を実行することを特徴とする請求項２に記載のＳＮＭＰのエージェント装置。
【請求項４】
前記設定処理部は、前記設定命令が複数の管理情報とそれぞれの設定値を指定する場合、自装置における前記複数の管理情報をそれぞれの設定値で順次更新し、
前記設定処理部は、前記設定命令が管理情報単位のアンドゥを指定する場合、最近更新した管理情報から管理情報単位にアンドゥ処理を実行することを特徴とする請求項１から３のいずれかに記載のＳＮＭＰのエージェント装置。
【請求項５】
前記設定処理部は、前記設定命令が管理情報単位のアンドゥの回数をさらに指定する場合、最近更新した当該回数分の管理情報に対してアンドゥ処理を実行することを特徴とする請求項４に記載のＳＮＭＰのエージェント装置。
【請求項６】
アンドゥ処理が失敗した場合、前記設定命令に対応するＳＮＭＰの応答メッセージにより、その失敗をマネージャ装置へ通知する結果通知部をさらに備えることを特徴とする請求項１から５のいずれかに記載のＳＮＭＰのエージェント装置。
【請求項７】
設定履歴提供部をさらに備え、
前記受付部は、ＳＮＭＰの状態取得命令をマネージャ装置からさらに受け付け、
前記設定履歴提供部は、前記状態取得命令が管理情報の設定履歴を指定する場合、前記設定履歴保持部に保持された過去の設定命令に関する情報をマネージャ装置へ提供することを特徴とする請求項１から６のいずれかに記載のＳＮＭＰのエージェント装置。
【請求項８】
前記設定履歴提供部は、前記過去の設定命令に関する情報として、過去の設定命令により更新した管理情報の更新前の値を提供することを特徴とする請求項７に記載のＳＮＭＰのエージェント装置。
【請求項９】
ＳＮＭＰのエージェント装置により実行される方法であって、
複数のマネージャ装置のそれぞれからＳＮＭＰの設定命令を受け付けるステップと、
前記設定命令が管理情報とその設定値を指定する場合、自装置における前記管理情報を前記設定値で更新するステップと、
前記複数のマネージャ装置のそれぞれから受け付けた設定命令を、前記管理情報の更新前の値と対応づけ、かつ、送信元のマネージャ装置の識別が可能な態様で所定の記憶領域に格納するステップと、
あるマネージャ装置から受け付けた設定命令がアンドゥを指定する場合、当該マネージャ装置からの過去の設定命令により更新した管理情報を更新前の値に戻すアンドゥ処理を実行するステップと、
を備えることを特徴とする設定アンドゥ方法。
【請求項１０】
ＳＮＭＰのエージェント装置に、
複数のマネージャ装置のそれぞれからＳＮＭＰの設定命令を受け付ける機能と、
前記設定命令が管理情報とその設定値を指定する場合、自装置における前記管理情報を前記設定値で更新する機能と、
前記複数のマネージャ装置のそれぞれから受け付けた設定命令を、前記管理情報の更新前の値と対応づけ、かつ、送信元のマネージャ装置の識別が可能な態様で所定の記憶領域に格納する機能と、
あるマネージャ装置から受け付けた設定命令がアンドゥを指定する場合、当該マネージャ装置からの過去の設定命令により更新した管理情報を更新前の値に戻すアンドゥ処理を実行する機能と、
を実現させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、データ処理技術に関し、特に、機器の動作状態をＳＮＭＰ（Simple Network Management Protocol）により管理する技術に関する。
【背景技術】
【０００２】
現在、機器の動作状態をＳＮＭＰにより管理するＳＮＭＰ管理システムが構築されることがある。本出願人は、以下の特許文献１において、ＳＮＭＰマネージャが複数存在し、ＳＮＭＰエージェントにおいて複数のマネージャからの要求が競合した場合でも、エラーの詳細要因を正しく読み出すことができる技術を提案している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３０２５３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＳＮＭＰマネージャは、ＳＮＭＰエージェントに対してｓｅｔＲｅｑｕｅｓｔメッセージ（以下、「設定命令」とも呼ぶ。）を発行することにより、ＳＮＭＰエージェントのＭＩＢ（Management Information Base）を更新することがある。設定命令の内容が誤っていた場合等、過去に発行した設定命令を取り消して、ＭＩＢの状態を元に戻すことが必要になった場合、ＳＮＭＰマネージャは更新前のＭＩＢの値を指定した設定命令を新たに発行する必要があった。このことは、ＳＮＭＰ管理システムの管理者の負担を増大させる要因となり、また、管理者が更新前のＭＩＢの値を知らなければＭＩＢの状態を元に戻せないという危険性をはらんでいたと本発明者は考えた。
【０００５】
本発明は、本発明者の上記課題認識に基づいてなされたものであり、その主たる目的は、ＳＮＭＰマネージャからＳＮＭＰエージェントに対して過去発行された設定命令を取り消す利便性を向上させるための技術を提供することである。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様のＳＮＭＰのエージェント装置は、ＳＮＭＰの設定命令をマネージャ装置から受け付ける受付部と、設定命令が管理情報とその設定値を指定する場合、自装置における管理情報を設定値で更新する設定処理部と、設定命令を管理情報の更新前の値と対応づけて保持する設定履歴保持部と、を備える。設定処理部は、設定命令がアンドゥを指定する場合、過去の設定命令により更新した管理情報を更新前の値に戻すアンドゥ処理を実行する。
【０００７】
本発明の別の態様は、設定アンドゥ方法である。この方法は、ＳＮＭＰのエージェント装置により実行される方法であって、ＳＮＭＰの設定命令をマネージャ装置から受け付けるステップと、設定命令が管理情報とその設定値を指定する場合、自装置における管理情報を設定値で更新するステップと、設定命令を管理情報の更新前の値と対応づけて所定の記憶領域に格納するステップと、設定命令がアンドゥを指定する場合、過去の設定命令により更新した管理情報を更新前の値に戻すステップと、を備える。
【０００８】
なお、以上の構成要素の任意の組合せ、本発明の表現を装置、方法、システム、プログラム、プログラムを格納した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００９】
本発明によれば、ＳＮＭＰマネージャからＳＮＭＰエージェントに対して過去発行された設定命令を取り消す利便性を向上させることができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態であるＳＮＭＰ管理システムの構成を示す図である。
【図２】図１のエージェント装置の機能構成を示すブロック図である。
【図３（ａ）】設定履歴保持部に保持される履歴テーブルの構成を示す図である。
【図３（ｂ）】設定履歴保持部に保持されるポインタを模式的に示す図である。
【図４】ＭＩＢのＯＩＤの構成を示す図である。
【図５】エージェント装置の動作を示すフローチャートである。
【図６】図５のＳ１４の履歴抽出処理を詳細に示すフローチャートである。
【図７】図５のＳ１６の管理情報更新処理を詳細に示すフローチャートである。
【図８】図７のＳ４０の命令単位アンドゥ処理を詳細に示すフローチャートである。
【図９】図７のＳ４２のオブジェクト単位アンドゥ処理を詳細に示すフローチャートである。
【発明を実施するための形態】
【００１１】
実施の形態では、ＳＮＭＰエージェントにおいてアンドゥ処理を実現する技術を提案する。本実施の形態のＳＮＭＰエージェントは、ＳＮＭＰマネージャからアンドゥ要求を受け付けると、過去にＳＮＭＰマネージャから受け付けた設定命令（ｓｅｔＲｅｑｕｅｓｔ）により更新したＭＩＢを更新前の状態に戻す。アンドゥ要求ではアンドゥ後のＭＩＢの状態を指定する必要はなく、過去受け付けた設定命令の履歴にもとづくＭＩＢの自動バックデートが実現される。これにより、ＳＮＭＰマネージャからＳＮＭＰエージェントに対して過去発行した設定命令を取り消すべき際の利便性を向上させる。
【００１２】
図１は、本発明の実施の形態であるＳＮＭＰ管理システムの構成を示す。ＳＮＭＰ管理システム１０は、マネージャ装置１４で総称される第１のマネージャ装置１４ａ、第２のマネージャ装置１４ｂ、第３のマネージャ装置１４ｃと、エージェント装置１２とを備える。エージェント装置１２とマネージャ装置１４は、ＬＡＮ・ＷＡＮ・インターネット等、公知の通信手段を含む通信網１６を介して接続される。
【００１３】
エージェント装置１２は、ＳＮＭＰ管理システム１０において監視対象の情報処理装置である。例えば、スイッチやルータ等の通信制御機器であってもよい。エージェント装置１２にはＳＮＭＰエージェントソフトウェアが搭載されてもよく、そのソフトウェアと同様の機能を提供する電子回路等のハードウェアが搭載されてもよい。マネージャ装置１４は、ＳＮＭＰに則ってエージェント装置１２を監視する情報処理装置である。ＳＮＭＰマネージャソフトウェアが搭載されたＰＣやサーバであってもよい。
【００１４】
図２は、図１のエージェント装置１２の機能構成を示すブロック図である。エージェント装置１２は、各種データの記憶領域であるデータ保持部２０と、各種データ処理を実行するデータ処理部としての命令受付部２６と、設定処理部２８と、結果通知部３０と、情報提供部３２とを備える。
【００１５】
本明細書のブロック図において示される各ブロックは、ハードウェア的には、コンピュータのＣＰＵやメモリ、ＨＤＤをはじめとする素子や電子回路、機械装置で実現でき、ソフトウェア的にはコンピュータプログラム等によって実現されるが、ブロック図においては、それらの連携によって実現される機能ブロックを描いている。したがって、これらの機能ブロックはハードウェア、ソフトウェアの組合せによっていろいろなかたちで実現できることは、当業者には理解されるところである。例えば、図２の各機能ブロックはプログラムモジュールとしてリムーバブル記録媒体に格納されて、エージェント装置１２へインストールされてもよい。また、図１のデータ処理部に関する各機能ブロックは、エージェント装置１２のメモリへ適宜ロードされて、ＣＰＵにより実行されることにより、その機能が実現されてもよい。
【００１６】
データ保持部２０は、ＭＩＢ２２と設定履歴保持部２４を含む。ＭＩＢ２２は、マネージャ装置１４から照会や設定が可能なエージェント装置１２に関する各種管理情報のデータベースである。それぞれの管理情報にはオブジェクト識別子（以下、「ＯＩＤ」とも呼ぶ。）が割り当てられ、ＯＩＤにより一意に特定される。
【００１７】
設定履歴保持部２４は、マネージャ装置１４から受け付けられた設定命令の履歴を保持する。具体的には、マネージャ装置１４から過去受け付けられた設定命令の内容を、その設定命令により更新された管理情報の更新前の値と対応づけて保持する。
【００１８】
図３（ａ）は、設定履歴保持部２４に保持される履歴テーブルの構成を示す。履歴テーブルでは、設定命令単位にレコードが記録される。各レコードには、レコードを一意に識別するための管理番号と、設定命令の発行元であるマネージャ装置１４のＩＤ（ここではＩＰアドレス）が記録される。さらに、１つの設定命令で指定された１以上のオブジェクト（ＯＩＤと設定値の組み合わせ）に関する情報が記録される。管理番号は、受付日時が早い設定命令から昇順にインクリメントされて設定される。オブジェクト情報としては、設定対象のＯＩＤと、マネージャ装置１４により指定された設定値、言い換えれば、更新後の設定値と、更新前の設定値とが記録される。
【００１９】
図３（ｂ）は、設定履歴保持部２４に保持されるポインタを模式的に示す。管理番号ポインタは、マネージャ装置１４から最後に受け付けられた設定命令、言い換えれば、最新の設定命令の管理番号を保持する。オブジェクト番号ポインタは、管理番号ポインタが指し示す設定命令における最後に位置するオブジェクト、言い換えれば、設定順序が最後のオブジェクトの番号を保持する。
【００２０】
図４は、ＭＩＢ２２のＯＩＤの構成を示す。同図は、ＭＩＢ２２に保持される情報の一部として、本実施の形態に特徴的な６種類のコマンドに対するＯＩＤの割り当て状況を示している。図４では図示しないが、ＭＩＢ２２は、上記コマンド以外の種々の記録情報（以下、単に「管理情報」とも呼ぶ。）を保持することはもちろんである。
【００２１】
命令単位アンドゥコマンド５０は、マネージャ装置１４から受け付けられた設定命令単位、言い換えれば、履歴テーブルのレコード単位のアンドゥ処理を指定する際に用いられる。命令単位アンドゥコマンド５０はＯＩＤ「１．３．６．１．４．１．１．１」により一意に特定される。オブジェクト単位アンドゥコマンド５２は、設定命令内のオブジェクト単位、言い換えれば、設定命令により更新された管理情報単位のアンドゥ処理を指定する際に用いられる。
【００２２】
命令単位履歴抽出コマンド５４は、過去の設定命令に関する設定命令単位の履歴抽出処理を指定する際に用いられる。命令単位履歴提供コマンド５６は、過去の設定命令に対する設定命令単位の履歴提供処理を指定する際に用いられる。オブジェクト単位履歴抽出コマンド５８は、過去の設定命令に関するオブジェクト単位の履歴抽出処理を指定する際に用いられる。オブジェクト単位履歴提供コマンド６０は、過去の設定命令に関するオブジェクト単位の履歴提供処理を指定する際に用いられる。
【００２３】
後述するように、命令単位アンドゥコマンド５０、オブジェクト単位アンドゥコマンド５２、命令単位履歴抽出コマンド５４、およびオブジェクト単位履歴抽出コマンド５８は、マネージャ装置１４からの設定命令において、そのＯＩＤが指定される。命令単位履歴提供コマンド５６およびオブジェクト単位履歴提供コマンド６０は、マネージャ装置１４からのｇｅｔＲｅｑｕｅｓｔ（以下、「状態取得命令」とも呼ぶ。）において、そのＯＩＤが指定される。
【００２４】
なお、命令単位履歴抽出コマンド５４および命令単位履歴提供コマンド５６は、マネージャ装置１４が設定命令の履歴を取得する際に一体的に使用される。具体的には、マネージャ装置１４は、命令単位履歴抽出コマンド５４を指定した設定命令を発行することにより、エージェント装置１２に過去の設定命令データを抽出させる。そして、マネージャ装置１４は、命令単位履歴提供コマンド５６を指定した状態取得命令を発行することにより、エージェント装置１２にその過去の設定命令データを提供させる。
【００２５】
同様に、オブジェクト単位履歴抽出コマンド５８およびオブジェクト単位履歴提供コマンド６０は、マネージャ装置１４が設定命令の履歴を取得する際に一体的に使用される。具体的には、マネージャ装置１４は、オブジェクト単位履歴抽出コマンド５８を指定した設定命令を発行することにより、エージェント装置１２に過去のオブジェクトデータを抽出させる。そして、マネージャ装置１４は、オブジェクト単位履歴提供コマンド６０を指定した状態取得命令を発行することにより、エージェント装置１２にその過去のオブジェクトデータを提供させる。
【００２６】
図２に戻り、命令受付部２６は、マネージャ装置１４からＳＮＭＰメッセージを受信する。本実施の形態では、設定命令もしくは状態取得命令を受け付けることとする。結果通知部３０は、設定命令に対する処理結果を、ＳＮＭＰのｇｅｔＲｅｓｐｏｎｓｅデータとしてマネージャ装置１４へ送信する。
【００２７】
設定処理部２８は、命令受付部２６により設定命令が取得された場合、その設定命令が内包するオブジェクトに関する設定処理を実行し、データ保持部２０を適宜更新する。１つの設定命令内に複数のオブジェクトが内包される場合は、最初に指定されたオブジェクトから順次設定処理を実行する。また、設定命令がアンドゥ要求を示す場合は、アンドゥ処理として、設定履歴保持部２４の履歴テーブルに保持された更新前の値でＭＩＢ２２の管理情報を更新することにより、ＭＩＢ２２の管理情報を更新前の状態に戻す。
【００２８】
情報提供部３２は、命令受付部２６により状態取得命令が取得された場合、その状態取得命令で指定された管理情報に関するデータをデータ保持部２０から取得して、ＳＮＭＰのｇｅｔＲｅｓｐｏｎｓｅデータとしてマネージャ装置１４へ送信する。情報提供部３２は、設定履歴提供部３４を含む。設定履歴提供部３４は、状態取得命令において履歴提供処理が指定された場合、過去に受け付けられた設定命令に関する情報を、ＳＮＭＰのｇｅｔＲｅｓｐｏｎｓｅデータとしてマネージャ装置１４へ送信する。
【００２９】
ここで、エージェント装置１２がマネージャ装置１４から受け付けるＳＮＭＰメッセージの典型例と、各メッセージに対する処理内容を説明する。
（例１）ｓｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［管理情報のＯＩＤ］，Ｖａｌｕｅ＝ｉｎｔｅｇｅｒ，１２３）
例１は通常の設定命令である。設定処理部２８は、指定されたＯＩＤに対応するＭＩＢ２２の管理情報を、指定された整数値「１２３」で更新する。
【００３０】
（例２）ｓｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［命令単位アンドゥコマンド５０のＯＩＤ］，Ｖａｌｕｅ＝ｉｎｔｅｇｅｒ，０）
（例３）ｓｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［命令単位アンドゥコマンド５０のＯＩＤ］，Ｖａｌｕｅ＝ｉｎｔｅｇｅｒ，３）
例２および例３は設定命令単位でのアンドゥ処理を要求する設定命令である。命令単位アンドゥコマンド５０のパラメータとしてアンドゥ回数が指定される。例３では３回のアンドゥ処理を要求している。例２は、マネージャ装置１４においてアンドゥ回数が明示的に指定されなかった場合であり、アンドゥ回数「１」が指定された場合と同じ意味を持つ。設定処理部２８は、設定履歴保持部２４の履歴テーブルを参照して、最新の設定命令から遡ってアンドゥ回数分の設定命令を特定し、新しいものから設定命令単位に順次アンドゥ処理を実行する。
【００３１】
（例４）ｓｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［オブジェクト単位アンドゥコマンド５２のＯＩＤ］，Ｖａｌｕｅ＝ｉｎｔｅｇｅｒ，０）
（例５）ｓｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［オブジェクト単位アンドゥコマンド５２のＯＩＤ］，Ｖａｌｕｅ＝ｉｎｔｅｇｅｒ，４）
例４および例５はオブジェクト単位でのアンドゥ処理を要求する設定命令である。オブジェクト単位アンドゥコマンド５２のパラメータとしてアンドゥ回数が指定される。例５では４回のアンドゥ処理を要求している。例４は、マネージャ装置１４においてアンドゥ回数が明示的に指定されなかった場合であり、アンドゥ回数「１」が指定された場合と同じ意味を持つ。設定処理部２８は、設定履歴保持部２４の履歴テーブルを参照して、最新の設定命令の最後のオブジェクトから遡ってアンドゥ回数分のオブジェクトを特定する。そして、各オブジェクトが示す管理情報（すなわち過去更新された管理情報）について、新しいものからオブジェクト単位（すなわち管理情報単位）に順次アンドゥ処理を実行する。
【００３２】
（例６）ｇｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［管理情報のＯＩＤ］，Ｖａｌｕｅ＝ｉｎｔｅｇｅｒ，０）
例６は通常の状態取得命令である。情報提供部３２は、指定されたＯＩＤの管理情報の値（この例では整数値）を含むｇｅｔＲｅｓｐｏｎｓｅデータをマネージャ装置１４へ送信する。
【００３３】
（例７）ｓｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［命令単位履歴抽出コマンド５４のＩＤ］，Ｖａｌｕｅ＝ｉｎｔｅｇｅｒ，５）
例７は、設定命令単位での履歴抽出処理を要求する設定命令である。命令単位履歴抽出コマンド５４のパラメータとして、抽出対象の設定命令が、何回前に発行された設定命令であるかを示す値が指定される。例７では、５回前に発行された設定命令の抽出を要求している。設定処理部２８は、設定履歴保持部２４の履歴テーブルを参照して、最新の設定命令からパラメータ値分遡った設定命令を特定し、その内容を過去の設定命令データとしてデータ保持部２０の所定のバッファに格納する。過去の設定命令データは、履歴テーブルに保持された１つの設定命令レコードに含まれる各オブジェクトでの設定内容を示す。例えば、「オブジェクト１で指定されたＯＩＤ，オブジェクト１で指定された設定値，オブジェクト２で指定されたＯＩＤ，オブジェクト２で指定された設定値，・・・」が記述された文字列データでもよい。
【００３４】
（例８）ｇｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［命令単位履歴提供コマンド５６のＩＤ］，Ｖａｌｕｅ＝ＯＣＴＥＴ  ＳＴＲＩＮＧ，ｎｕｌｌ）
例８は、設定命令単位での履歴の提供を要求する状態取得命令である。命令単位履歴提供コマンド５６のパラメータには、可変長の履歴情報を取得するために「ＯＣＴＥＴ  ＳＴＲＩＮＧ」が設定される。設定履歴提供部３４は、命令単位履歴抽出コマンド５４により抽出され、データ保持部２０の所定のバッファに格納された過去の設定命令データを取得する。そして、そのデータを含むｇｅｔＲｅｓｐｏｎｓｅデータをマネージャ装置１４へ送信する。
【００３５】
なお、上記の例７および例８に関する変形例として、設定処理部２８は、各オブジェクトで指定された設定値に代えて、もしくは設定値とともに、各オブジェクトで指定された管理情報の更新前の値を過去の設定命令データに含めてもよい。設定履歴提供部３４は、各オブジェクトで指定された設定値に代えて、もしくは設定値とともに、各オブジェクトで指定された管理情報の更新前の値を過去の設定命令データとしてマネージャ装置１４へ提供してもよい。この変形例によれば、管理情報の更新前の状態を管理者に提示可能となり、管理者によるアンドゥ態様の決定を支援できる。
【００３６】
（例９）ｓｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［オブジェクト単位履歴抽出コマンド５８のＩＤ］，Ｖａｌｕｅ＝ｉｎｔｅｇｅｒ，５）
例９は、オブジェクト単位での履歴抽出処理を要求する設定命令である。オブジェクト単位履歴抽出コマンド５８のパラメータとして、抽出対象のオブジェクトが、最後に設定されたオブジェクトを起点として何回前に設定されたオブジェクトであるかを示す値が指定される。例９では、最後のオブジェクトの５回前のオブジェクトを指定して、その抽出を要求している。設定処理部２８は、設定履歴保持部２４の履歴テーブルを参照して、最新の設定命令において最後に設定されたオブジェクトからパラメータ値分遡ったオブジェクトを特定し、その内容を過去のオブジェクトデータとしてデータ保持部２０の所定のバッファに格納する。過去のオブジェクトデータは、履歴テーブルに保持された１つのオブジェクトでの設定内容を示す。例えば、「特定のオブジェクトで指定されたＯＩＤ，特定のオブジェクトで指定された設定値」が記述された文字列データでもよい。
【００３７】
（例１０）ｇｅｔＲｅｑｕｅｓｔ（ＯＩＤ＝［命令単位履歴提供コマンド５６のＩＤ］，Ｖａｌｕｅ＝ＯＣＴＥＴ  ＳＴＲＩＮＧ，ｎｕｌｌ）
例１０は、オブジェクト単位での履歴の提供を要求する状態取得命令である。オブジェクト単位履歴提供コマンド６０のパラメータには、可変長の履歴情報を取得するために「ＯＣＴＥＴ  ＳＴＲＩＮＧ」が設定される。設定履歴提供部３４は、オブジェクト単位履歴抽出コマンド５８により抽出され、データ保持部２０の所定のバッファに格納された過去のオブジェクトデータを取得する。そして、そのデータを含むｇｅｔＲｅｓｐｏｎｓｅデータをマネージャ装置１４へ送信する。
【００３８】
なお、上記の例９および例１０に関する変形例として、設定処理部２８は、オブジェクトで指定された設定値に代えて、もしくは設定値とともに、オブジェクトで指定された管理情報の更新前の値を過去のオブジェクトデータに含めてもよい。設定履歴提供部３４は、オブジェクトで指定された設定値に代えて、もしくは設定値とともに、オブジェクトで指定された管理情報の更新前の値を過去のオブジェクトデータとしてマネージャ装置１４へ提供してもよい。この変形例によれば、管理情報の更新前の状態を管理者に提示可能となり、管理者によるアンドゥ態様の決定を支援できる。
【００３９】
また一部既述したが、１つの設定命令には複数のオブジェクト（複数種類のＯＩＤと設定値の組み合わせ）が指定され得る。例えば、１つの設定命令にアンドゥ要求と管理情報の設定要求が混在する場合もあり、複数種類のアンドゥ要求が混在する場合もある。詳細な動作は後のフローチャートで説明するが、設定処理部２８は、先頭のオブジェクトから最後のオブジェクトに向かって、それぞれの要求を順次ＭＩＢ２２へ反映する。アンドゥ処理においては逆に、過去の設定命令における最後のオブジェクトから先頭のオブジェクトに向かって順次実行する。
【００４０】
以上の構成による動作を以下説明する。
図５は、エージェント装置１２の動作を示すフローチャートである。マネージャ装置１４から設定命令を受信すると（Ｓ１０のＹ）、命令受付部２６はその設定命令を設定処理部２８へ送出し、設定処理部２８はその設定命令で指定されたＯＩＤを確認（ＭＩＢ２２と照合）する。設定命令において履歴抽出要求（命令単位履歴抽出コマンド５４もしくはオブジェクト単位履歴抽出コマンド５８）のＯＩＤが指定されている場合（Ｓ１２のＹ）、設定処理部２８は履歴抽出処理を実行する（Ｓ１４）。設定命令において履歴抽出要求のＯＩＤが指定されていなければ、例えば管理情報や、命令単位アンドゥコマンド５０、オブジェクト単位アンドゥコマンド５２のＯＩＤが指定されている場合（Ｓ１２のＮ）、設定処理部２８は管理情報更新処理を実行する（Ｓ１６）。設定命令が未受信であれば（Ｓ１０のＮ）、Ｓ１２〜Ｓ１６はスキップされる。
【００４１】
マネージャ装置１４から状態取得命令を受信すると（Ｓ１８のＹ）、命令受付部２６はその設定命令を情報提供部３２へ送出し、情報提供部３２はその状態取得命令で指定されたＯＩＤを確認する。状態取得命令において命令単位履歴提供コマンド５６のＯＩＤが指定されている場合（Ｓ２０のＹ）、設定履歴提供部３４は先の命令単位履歴抽出コマンド５４にもとづき抽出された過去の設定命令データを取得して、マネージャ装置１４へ提供する（Ｓ２２）。同様に、状態取得命令においてオブジェクト単位履歴提供コマンド６０のＯＩＤが指定されている場合（Ｓ２０のＹ）、設定履歴提供部３４は先のオブジェクト単位履歴抽出コマンド５８にもとづき抽出された過去のオブジェクトデータを取得して、マネージャ装置１４へ提供する（Ｓ２２）。
【００４２】
状態取得命令において履歴提供要求のＯＩＤが指定されていなければ、言い換えれば、管理情報のＯＩＤが指定されている場合（Ｓ２０のＮ）、情報提供部３２は指定された管理情報の現在値を、ＭＩＢ２２から取得してマネージャ装置１４へ提供する（Ｓ２４）。状態取得命令が未受信であれば（Ｓ１８のＮ）、Ｓ２０〜Ｓ２４はスキップされる。
【００４３】
図６は、図５のＳ１４の履歴抽出処理を詳細に示すフローチャートである。履歴抽出要求として命令単位履歴抽出コマンド５４とパラメータ値とが指定された場合（Ｓ１２０のＹ）、設定処理部２８は履歴テーブルを参照して、最新の設定命令からパラメータ値分だけ遡った過去の設定命令を履歴テーブルにおいて特定する（Ｓ１２２）。そして、そのデータを所定のバッファへ格納する（Ｓ１２６）。履歴抽出要求としてオブジェクト単位履歴抽出コマンド５８とパラメータ値とが指定された場合（Ｓ１２０のＮ）、設定処理部２８は、最新の設定命令における最後のオブジェクトからパラメータ値分だけ遡ったオブジェクトを履歴テーブルにおいて特定する（Ｓ１２４）。そして、そのデータを所定のバッファへ格納する（Ｓ１２６）。結果通知部３０は、履歴抽出処理が完了した旨の結果メッセージ（ｇｅｔＲｅｓｐｏｎｓｅ）をマネージャ装置１４へ送信する（Ｓ１２８）。
【００４４】
図７は、図５のＳ１６の管理情報更新処理を詳細に示すフローチャートである。設定処理部２８は、設定命令内でアンドゥを指定するオブジェクトの前に他の要求を指定するオブジェクトが存在するか否かを判定する。具体的には、命令単位アンドゥコマンド５０もしくはオブジェクト単位アンドゥコマンド５２のＯＩＤを指定するオブジェクトの前に管理情報のＯＩＤを指定するオブジェクトが存在するか否かを判定する。存在する場合（Ｓ３０のＹ）、設定処理部２８は、以降の設定処理をスキップする。そして、他の要求を指定するオブジェクトの直後でアンドゥを指定するオブジェクトについて、その設定命令内での位置を示すオブジェクト番号を結果通知部３０へ通知する。結果通知部３０は、エラーステータスフィールドに「ｇｅｎＥｒｒ」を設定し、エラーインデックスフィールドにオブジェクト番号を設定することによりｇｅｔＲｅｓｐｏｎｓｅを設定し（Ｓ５２）、そのデータをマネージャ装置１４へ送信する（Ｓ５４）。
【００４５】
ここで、上記Ｓ３０に係る判定処理が必要な理由を説明する。１つの設定命令内で、管理情報の設定（ここでは「第１処理」と呼ぶ。）後にアンドゥ処理が行われる場合、後のアンドゥ処理により過去の設定命令のアンドゥが行われる一方で、第１処理の結果は残存することになる。アンドゥは、管理情報の設定順序とは逆順に行われるべきものであり、古いものが先にアンドゥされてしまうことは望ましくない。したがって、このような事態を回避するために上記Ｓ３０の判定処理が実行される。
【００４６】
設定命令内でアンドゥを指定するオブジェクトの前に他の要求を指定するオブジェクトが存在しない場合（Ｓ３０のＮ）、設定処理部２８は、設定命令内の全オブジェクトの実行が可能か否かを判定する。例えば、各オブジェクトで指定されたＯＩＤがＭＩＢ２２で規定されたものか否か、設定値の値範囲や型が予め定められた条件と合致するか否かを判定する。少なくとも１つのオブジェクトが実行不可能である場合（Ｓ３２のＮ）、設定処理部２８は、以降の設定処理をスキップし、実行が不可能なオブジェクトの番号を結果通知部３０へ通知する。結果通知部３０は、エラーステータスフィールドに所定のエラー種別を設定し、エラーインデックスフィールドにオブジェクト番号を設定することによりｇｅｔＲｅｓｐｏｎｓｅを設定し（Ｓ５２）、そのデータをマネージャ装置１４へ送信する（Ｓ５４）。
【００４７】
設定命令内の全オブジェクトの実行が可能であり（Ｓ３２のＹ）、設定命令内で前からＭ番目（Ｍの初期値は１）のオブジェクトがアンドゥ要求でなければ（Ｓ３４のＮ）、設定処理部２８は、オブジェクトで指定された管理情報を適宜更新する（Ｓ３６）。設定処理部２８は、管理番号ポインタ値の次の管理番号のレコードが存在しなければ新規にレコード（以下、「新規レコード」とも呼ぶ。）を作成する。そして、その新規レコードに対してオブジェクトに関するデータ、本実施の形態ではオブジェクト番号（Ｍの値）・ＯＩＤ・設定値・更新前の値を記録する（Ｓ４４）。設定命令内で前からＭ番目のオブジェクトがアンドゥ要求であり（Ｓ３４のＹ）、命令単位アンドゥコマンド５０のＯＩＤを指定する場合（Ｓ３８のＹ）、設定処理部２８は命令単位アンドゥ処理を実行する（Ｓ４０）。オブジェクト単位アンドゥコマンド５２のＯＩＤを指定する場合は（Ｓ３８のＮ）、オブジェクト単位アンドゥ処理を実行する（Ｓ４２）。
【００４８】
いずれのアンドゥ処理が終了した場合でも、設定処理部２８は、アンドゥ処理を指定するオブジェクトに関するデータを新規レコードへ追加する（Ｓ４４）。この場合、ＯＩＤとしては、命令単位アンドゥコマンド５０もしくはオブジェクト単位アンドゥコマンド５２のＯＩＤを設定する。また、設定値としては、アンドゥ処理を要求する設定命令において命令単位アンドゥコマンド５０もしくはオブジェクト単位アンドゥコマンド５２のＯＩＤに対応づけられたＶａｌｕｅ値を設定する。これにより、マネージャ装置１４側では、設定命令の履歴を取得することにより、過去のアンドゥ要求において指定したアンドゥ回数を判別可能になる。なお、更新前の値としては「０」を設定する。
【００４９】
未完了のオブジェクトが残存する場合（Ｓ４６のＮ）、Ｍをインクリメントし（Ｓ４８）、Ｓ３４へ戻る。全オブジェクトの処理が完了すると（Ｓ４６のＹ）、設定処理部２８は、管理番号ポインタの値をインクリメントする、すなわち新規レコードの分として１増加させる。それとともに、設定命令のオブジェクト数、すなわち設定命令内で最後のオブジェクト番号（Ｍの値）をオブジェクト番号ポインタへ設定する（Ｓ５０）。
【００５０】
続いて、設定処理部２８は、設定処理が正常に完了した旨を結果通知部３０へ通知する。結果通知部３０は、エラーステータスフィールドに「ｎｏＥｒｒ」を設定し、エラーインデックスフィールドに「０」を設定することによりｇｅｔＲｅｓｐｏｎｓｅを設定し（Ｓ５２）、そのデータをマネージャ装置１４へ送信する（Ｓ５４）。
【００５１】
図８は、図７のＳ４０の命令単位アンドゥ処理を詳細に示すフローチャートである。ここでは、命令単位アンドゥコマンド５０で指定されたアンドゥ回数をＸとする（Ｓ６０）。上述したようにアンドゥ回数が未設定もしくは０が設定された場合は、Ｘ＝１とする。管理番号ポインタが示す設定命令をアンドゥ対象命令とし（Ｓ６２）、そのアンドゥ対象命令に内包されるオブジェクト数をＹとする（Ｓ６４）。オブジェクト番号ポインタが示す番号をＹとしてもよい。
【００５２】
設定処理部２８は、履歴テーブルを参照して、アンドゥ対象命令の前からＹ番目のオブジェクト（以下、「オブジェクトＹ」とも呼ぶ。）がアンドゥ要求か否か、言い換えれば、オブジェクトＹが管理情報のＯＩＤを指定するものか否かを判定する。オブジェクトＹがアンドゥ要求でなければ、言い換えれば、管理情報のＯＩＤを指定するものであれば（Ｓ６６のＮ）、設定処理部２８は、オブジェクトＹで指定されたＯＩＤについて、ＭＩＢ２２に保持されたそのＯＩＤに対応する管理情報を特定する。そして、その現在の設定値（更新後の値）を、履歴テーブルのオブジェクトＹ欄に保持された更新前の値に置き換える（Ｓ６８）。オブジェクトＹがアンドゥ要求であれば、言い換えれば、命令単位アンドゥコマンド５０もしくはオブジェクト単位アンドゥコマンド５２のＯＩＤを指定するものであれば（Ｓ６６のＹ）、Ｓ６８はスキップされる。
【００５３】
続いて、設定処理部２８はＹをデクリメントし（Ｓ７０）、依然としてＹが１以上であれば（Ｓ７２のＮ）、Ｓ６６に戻る。Ｙが１未満になると（Ｓ７２のＹ）、アンドゥ対象命令のレコードを履歴テーブルから削除する（Ｓ７４）。設定処理部２８は、管理ポインタが示す番号をデクリメントするとともに、オブジェクト番号ポインタが示す値を、管理番号ポインタが新たに指し示す設定命令のオブジェクト数（最後のオブジェクト番号）に更新する（Ｓ７６）。さらに、Ｘ（アンドゥ回数）もデクリメントし（Ｓ７８）、依然としてＸが１以上であれば（Ｓ８０のＮ）、Ｓ６２に戻り、Ｘが１未満になると（Ｓ８０のＹ）、本図のフローを終了する。
【００５４】
図９は、図７のＳ４２のオブジェクト単位アンドゥ処理を詳細に示すフローチャートである。ここでは、オブジェクト単位アンドゥコマンド５２で指定されたアンドゥ回数をＸとする（Ｓ９０）。上述したようにアンドゥ回数が未設定もしくは０が設定された場合は、Ｘ＝１とする。管理番号ポインタが示す設定命令をアンドゥ対象命令とし（Ｓ９２）、オブジェクト番号ポインタが示す番号をＹとする（Ｓ９４）。
【００５５】
設定処理部２８は、履歴テーブルを参照して、アンドゥ対象命令のオブジェクトＹがアンドゥ要求か否かを判定する。オブジェクトＹがアンドゥ要求でなければ（Ｓ９６のＮ）、設定処理部２８は、オブジェクトＹで指定されたＯＩＤについて、ＭＩＢ２２に保持されたそのＯＩＤに対応する管理情報を特定する。そして、その現在の設定値（更新後の値）を、履歴テーブルのオブジェクトＹ欄に保持された更新前の値に置き換える（Ｓ９８）。オブジェクトＹがアンドゥ要求であれば、（Ｓ９６のＹ）、Ｓ９８はスキップされる。設定処理部２８は、アンドゥ対象命令のオブジェクトＹを履歴テーブルから削除し（Ｓ１００）、Ｙ（オブジェクト番号ポインタが示す値）をデクリメントする（Ｓ１０２）。
【００５６】
Ｙが１未満になると（Ｓ１０４のＹ）、設定処理部２８は、アンドゥ対象命令のレコードそのものを履歴テーブルから削除する（Ｓ１０６）。それとともに、管理番号ポインタが示す値をデクリメントし、オブジェクト番号ポインタが示す値を、管理番号ポインタが新たに指し示す設定命令のオブジェクト数（最後のオブジェクト番号）に更新する（Ｓ１０８）。Ｙが１以上であれば（Ｓ１０４のＮ）、Ｓ１０６およびＳ１０８はスキップされる。設定処理部２８は、Ｘ（アンドゥ回数）をデクリメントし（Ｓ１１０）、依然としてＸが１以上であれば（Ｓ１１２のＮ）、Ｓ９２に戻り、Ｘが１未満になると（Ｓ１１２のＹ）、本図のフローを終了する。
【００５７】
本実施の形態のエージェント装置１２は、アンドゥ要求を受け付けた場合、過去の設定命令により更新されたＭＩＢ２２の管理情報について、その更新前の値を保持する履歴テーブルを参照して、ＭＩＢ２２の管理情報を更新前の状態に復元する。したがって、過去に発行した設定命令を取り消してＭＩＢ２２の管理情報を元の状態に戻したい管理者は、単にアンドゥコマンドのＯＩＤを指定した設定命令をマネージャ装置１４から発行すればよい。これにより、管理者の負担を低減でき、人為的なミスの発生も抑制できる。
【００５８】
またエージェント装置１２によれば、設定命令単位のアンドゥ、オブジェクト単位のアンドゥ、およびアンドゥの回数を管理者が容易に指定できる。これにより、管理者の意向に沿った柔軟なアンドゥ処理を実現できる。
【００５９】
さらにエージェント装置１２によれば、アンドゥ処理の成否がマネージャ装置１４に通知されるため、その成否を管理者が容易に確認できる。例えば、アンドゥ要求を発行後、エラーステータスが「ｇｅｎＥｒｒ」で、エラーインデックスにオブジェクト番号が設定されたｇｅｔＲｅｓｐｏｎｓｅデータをエージェント装置１２から受け付けたとする。この場合、設定命令における当該オブジェクト番号の箇所が誤っているためアンドゥ処理が失敗したことを管理者は認識でき、設定命令を迅速に修正できる。
【００６０】
さらにまたエージェント装置１２によれば、過去の設定命令の内容をマネージャ装置１４側で取得可能になる。これにより、アンドゥ対象とすべき過去の設定命令の決定を支援でき、また適切なアンドゥ回数の決定も支援できる。
【００６１】
以上、本発明を実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下変形例を示す。
【００６２】
第１の変形例を説明する。設定処理部２８は、あるマネージャ装置１４から受け付けたアンドゥ要求によりアンドゥ対象とする設定命令は、そのマネージャ装置１４から受け付けた設定命令に限定してもよい。例えば、第１のマネージャ装置１４ａからアンドゥ要求を受け付けた場合、設定処理部２８は、履歴テーブルにおいて第１のマネージャ装置１４ａのＩＰアドレスと対応づけられた設定命令の中からアンドゥ対象とする設定命令やオブジェクトを特定してもよい。
【００６３】
同様に設定処理部２８は、あるマネージャ装置１４から受け付けた履歴抽出要求により抽出対象とする設定命令は、そのマネージャ装置１４から受け付けた設定命令に限定してもよい。例えば、第１のマネージャ装置１４ａから履歴抽出要求を受け付けた場合、設定処理部２８は、履歴テーブルにおいて第１のマネージャ装置１４ａのＩＰアドレスと対応づけられた設定命令の中から抽出対象とする設定命令やオブジェクトを特定してもよい。この結果、設定履歴提供部３４もまた、過去の設定命令データおよび過去のオブジェクトデータを、その送信元の装置に限定して提供する。
【００６４】
第１の変形例の好適な態様として、設定履歴保持部２４は、複数のマネージャ装置１４のそれぞれについて、各装置に対応する履歴テーブル・管理番号ポインタ・オブジェクト番号ポインタを別個に保持してもよい。例えば、設定処理部２８は、第１のマネージャ装置１４ａから受け付けた設定命令に関する履歴を、第１のマネージャ装置１４ａ用に設けられた履歴テーブルに格納してもよい。第１のマネージャ装置１４ａからアンドゥ回数が指定された場合、設定処理部２８は、第１のマネージャ装置１４ａ用に設けられた履歴テーブルを参照して、アンドゥの対象とする設定命令やオブジェクトを特定してもよい。
【００６５】
第１のマネージャ装置１４ａがエージェント装置１２の管理情報を更新後、第２のマネージャ装置１４ｂが同一の管理情報を更新した場合、その後、第１のマネージャ装置１４ａがアンドゥ要求を発行しても、上記管理情報が第１のマネージャ装置１４ａの管理者の意図通りに復元されないことがある。第１の変形例によれば、第１のマネージャ装置１４ａからのアンドゥ要求をトリガとして、第１のマネージャ装置１４ａが過去発行した設定命令に対するアンドゥ処理が実行され、管理情報はその設定命令の発行時点における状態に復元される。したがって、各マネージャ装置の管理者にとって意図通りのアンドゥを実現しやすくなる。
【００６６】
第２の変形例を説明する。上記実施の形態では、結果通知部３０は、設定命令内でアンドゥ要求が他の要求よりも後に設定された場合に、アンドゥ処理が失敗したことを示すエラー通知をマネージャ装置１４へ提供することとした。変形例として、結果通知部３０は、アンドゥ処理においてＭＩＢ２２の更新に失敗した場合等、アンドゥ処理における様々なタイミングで発生したエラーに関する情報を設定処理部２８から受け付けてもよい。そして、アンドゥ処理に失敗した旨をマネージャ装置１４へ通知してもよい。
【００６７】
第３の変形例を説明する。上記実施の形態では、マネージャ装置１４から過去受け付けられた設定命令に対して、新しいものから順次アンドゥ対象とすることとした。この場合、個々のアンドゥ処理で参照される履歴テーブルの１つのレコードについて、そのオブジェクト欄に記録された設定値は管理情報の現在値と原則同じになる。しかし、何らかの要因でオブジェクト欄の設定値と管理情報の現在値とが異なってしまう場合が考えられる。例えば、緊急の対応や、不正な操作として、設定命令を介さずにＭＩＢ２２が更新された場合である。このような場合、アンドゥ処理による管理情報の復元を回避して、その旨を管理者に通知した方がよいともいえる。
【００６８】
これを実現するために、設定処理部２８は、アンドゥ処理において管理情報を更新前の値で置き換える前に、管理情報の現在値がオブジェクト欄の設定値と一致するか否かを判定してもよい。不一致の場合は、以降の設定処理をスキップして、この不一致の旨を結果通知部３０へ通知してもよい。結果通知部３０は、この不一致のためにアンドゥ処理を中止した旨をマネージャ装置１４へ通知してもよい。
【００６９】
第４の変形例を説明する。上記実施の形態ではＳＮＭＰｖ１に則り、設定命令内に複数のオブジェクトが存在する場合、その中の１つでも実行できないときには、設定処理部２８は、全てのオブジェクトを実行しないこととした。変形例ではＳＮＭＰｖ２ｃに則り、設定命令内に複数のオブジェクトが存在する場合、実行できないオブジェクトがあっても、それ以外のオブジェクトについては実行することとしてもよい。
【００７０】
第５の変形例を説明する。上記実施の形態では言及していないが、マネージャ装置１４は、管理者により指定されたエージェント装置１２への要求種別に応じて自動的にＯＩＤを選択し、そのＯＩＤを設定した設定命令や状態取得命令をエージェント装置１２へ送信する手段を備えてもよい。また、管理者より過去の設定命令に関する情報取得が要求された場合、エージェント装置１２へ履歴抽出要求を含む設定命令を発行し、エージェント装置１２からその結果メッセージを受信したことをトリガとして、自動的に履歴提供要求を含む状態取得命令を発行する手段を備えてもよい。
【００７１】
上述した実施の形態および変形例の任意の組み合わせもまた本発明の実施の形態として有用である。組み合わせによって生じる新たな実施の形態は、組み合わされる実施の形態および変形例それぞれの効果をあわせもつ。
【００７２】
請求項に記載の各構成要件が果たすべき機能は、実施の形態および変形例において示された各構成要素の単体もしくはそれらの連携によって実現されることも当業者には理解されるところである。
【符号の説明】
【００７３】
１０  ＳＮＭＰ管理システム、  １２  エージェント装置、  １４  マネージャ装置、  ２２  ＭＩＢ、  ２４  設定履歴保持部、  ２６  命令受付部、  ２８  設定処理部、  ３０  結果通知部、  ３２  情報提供部、  ３４  設定履歴提供部。
【図１】
0005507368.tif 000002
【図２】
0005507368.tif 000003
【図３（ａ）】
0005507368.tif 000004
【図３（ｂ）】
0005507368.tif 000005
【図４】
0005507368.tif 000006
【図５】
0005507368.tif 000007
【図６】
0005507368.tif 000008
【図７】
0005507368.tif 000009
【図８】
0005507368.tif 000010
【図９】
0005507368.tif 000011