JP2019164622A - 管理装置、管理装置の制御方法およびプログラム - Google Patents
管理装置、管理装置の制御方法およびプログラム Download PDFInfo
- Publication number
- JP2019164622A JP2019164622A JP2018052442A JP2018052442A JP2019164622A JP 2019164622 A JP2019164622 A JP 2019164622A JP 2018052442 A JP2018052442 A JP 2018052442A JP 2018052442 A JP2018052442 A JP 2018052442A JP 2019164622 A JP2019164622 A JP 2019164622A
- Authority
- JP
- Japan
- Prior art keywords
- agent
- task
- management
- processing
- management apparatus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
【課題】不要な多重管理を抑制しつつ、例外処理として有効なネットワークを利用できる管理装置を提供する。【解決手段】複数のエージェントとの通信を用いて複数のデバイスを管理する管理装置101は、各エージェントからのデバイスに対する探索結果に基づいてデバイスを担当するエージェントを決定する決定手段と、決定したデバイスを担当するエージェントに対してデバイスを処理対象として含む処理の依頼を実行する実行手段とを備え、複数の探索結果から同一のデバイスを検出し、当該検出デバイスを含む探索結果の送信元である複数のエージェントの中から決定した第1のエージェントに対する依頼に応じた処理が失敗した場合、検出デバイスを含む探索結果の送信元である複数の管理エージェントの中から第1のエージェントとは異なる第2のエージェントを決定して検出デバイスを処理対象に含む処理の依頼を実行する。【選択図】図8
Description
本発明は、管理装置、管理装置の制御方法およびプログラムに関する。
ネットワーク接続あるいはローカル接続されたデバイスを分散管理(監視)する管理システムがある。管理システムには、デバイスの管理を行う管理サーバが複数配置され、1台の親管理サーバが複数台の子管理サーバの設定を統括管理する。各子管理サーバは、自装置が属するサブネット内のデバイスを管理する。親管理サーバは、子管理サーバから各子管理サーバが管理しているデバイスの各種情報を取得し、各種情報をUIで表示する。特許文献1は、顧客のネットワーク環境においてデバイスを管理する子管理サーバと、子管理サーバからデバイスの利用状況などの情報を受信する管理サーバを含む管理システムにおいて、管理エージェントを追加導入できる構成を開示している。
ここで、デバイスの中には、ネットワークを複数動作させるものがある。例えば、有線LANカードの二枚差しや、有線LANと無線LANの同時動作が可能なデバイスである。1台のデバイスが有する複数のネットワークは、それぞれ異なるアドレス(例えば、IPアドレス、MACアドレス)を有するため、異なるサブネットワークから利用可能に構成される場合が多い。そのため、子管理サーバがネットワークごとのアドレスでデバイスを特定する場合は、複数のアドレスを有する1台のデバイスを、異なるサブネットワークにある複数の子管理サーバが重複して探索してしまい、多重管理を行ってしまう恐れがある。特許文献1では、現在の子管理サーバで通信を行えないデバイスに対して子管理サーバを追加するため、1台のデバイスの管理を1台の子管理サーバで行うことができる。
一方で、複数のアドレスを有する1台のデバイスを異なるネットワークにある複数の子管理サーバが重複して管理してる場合には、片方のネットワークだけ不調となっても、他方の正常なネットワークを利用して管理を続けることができる。しかしながら、特許文献1では、1台のデバイスに対して1台の子管理サーバしか対応していないため、片方のネットワークだけ不調の場合に、正常な他方のネットワークから処理を行うことができない。
本発明は、不要な多重管理を抑制しつつ、例外処理として有効なネットワークを利用できる管理装置を提供することを目的とする。
上記課題を解決するために、本発明の管理装置は、複数のエージェントとの通信を用いて、複数のデバイスを管理する管理装置であって、各エージェントからの管理対象のデバイスに対する探索結果を受信する受信手段と、前記探索結果に基づいて、デバイスを担当するエージェントを決定する決定手段と、デバイスを処理対象として含む処理に関するタスクを実行する際に、前記決定手段により決定されたデバイスを担当するエージェントに対して、前記処理の依頼を実行する実行手段と、を備える。前記決定手段は、複数の探索結果から同一のデバイスを検出した場合、当該検出デバイスを含む探索結果の送信元である複数のエージェントの中から、前記検出デバイスを担当する第1のエージェントを決定し、前記実行手段は、前記第1のエージェントに対して、前記検出デバイスを処理対象に含む処理の依頼を実行し、前記第1のエージェントに対する前記依頼に応じた前記処理が失敗した場合に、前記決定手段は、前記検出デバイスを含む探索結果の送信元である複数の管理エージェントの中から、前記第1のエージェントとは異なる第2のエージェントを決定し、前記実行手段は、前記第2のエージェントに対して、前記検出デバイスを処理対象に含む処理の依頼を実行する。
本発明によれば、不要な多重管理を抑制しつつ、例外処理として有効なネットワークを利用できる管理装置を提供することができる。
(第1実施形態)
図1は、第1実施形態におけるデバイス管理システムの構成を示す図である。デバイス管理システムは、親管理サーバである管理装置101、子管理サーバである管理エージェントアプリケーション(以下、エージェント)103〜105を備える。また、デバイス管理システムは、データベース112を備えていてもよい。デバイス管理システムが管理する対象となるデバイスが、デバイス109〜115である。
図1は、第1実施形態におけるデバイス管理システムの構成を示す図である。デバイス管理システムは、親管理サーバである管理装置101、子管理サーバである管理エージェントアプリケーション(以下、エージェント)103〜105を備える。また、デバイス管理システムは、データベース112を備えていてもよい。デバイス管理システムが管理する対象となるデバイスが、デバイス109〜115である。
管理装置101は、エージェント103〜105を介してデバイス109〜115の管理を集中的に行う管理装置である。管理装置101は、サーバ装置の他、サーバ装置を含むデータセンターにより提供されたリソースを利用した仮想マシンにより実現されてもよいし、アプリケーションにより実現されてもよい。データベース112は、管理装置101により管理されるデータを格納するデータベースである。
エージェントは、管理装置101に対して1つ以上配置され、各エージェントは1つ以上のデバイスに接続され、各デバイスを管理する。本実施形態の各エージェント103〜105は、管理装置101と連携し、管理装置101からの指示に基づいてデバイス109〜115を管理し、管理結果を管理装置101に送信する。管理結果を各エージェント103〜105から受信した管理装置101は、管理結果を必要に応じてデータベース112に格納する。また、管理装置101は、各エージェント103〜105と各デバイス109〜115を紐づけて管理する。本実施形態では、エージェント103は、デバイス109およびデバイス110と紐付けられている。エージェント104は、デバイス111〜デバイス113と紐付けられている。エージェント105は、デバイス114およびデバイス115と紐付けられている。エージェント103〜105は、例えば、管理エージェントプログラムがインストールされた、管理エージェントとして機能するコンピュータ等の情報処理装置やサーバである。また、各エージェントは、管理対象のデバイスの探索を行う際のネットワーク範囲、プロトコル、対象となる機種の少なくともいずれかを含む条件の少なくとも一部の設定がそれぞれ相違している。デバイス109〜デバイス115は、管理装置101により管理される、例えば、情報処理装置、画像形成装置などのデバイスである。
管理装置101と各エージェント103〜105は、ネットワーク102を介して接続されている。エージェント103は、デバイス109およびデバイス110と、ネットワーク106を介して接続されている。エージェント104は、デバイス111〜デバイス113と、ネットワーク107を介して接続されている。エージェント105は、デバイス114およびデバイス115と、ネットワーク108を介して接続されている。なお、ネットワーク106〜108は、それぞれ独立したネットワークでも、同一のネットワークでも構わない。
図2は、管理装置101等のハードウェア構成の一例を示す図である。エージェント103〜105およびデータベース112も、図2と同様のハードウェア構成を有するものとする。管理装置101は、CPU201、RAM202、ROM203、キーボードコントローラー(KBDC)204、ビデオコントローラー(VC)205、ディスクコントローラー(DC)206、NIC208および外部記憶装置207を備える。
CPU201は、ROM203または外部記憶装置207に記憶されたプログラムを読み出して実行することでシステムバス209に接続された各部を総括的に制御し、管理装置101の機能を実現する。RAM202は、CPU201の主メモリあるいはワークエリアとして機能し、CPU201の演算データや各種プログラムが記憶される。外部記憶装置207は、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)等の記憶装置である。外部記憶装置207は、ブートプログラム、オペレーティングシステム、認証サーバ、認証クライアント等を含む各種のアプリケーション、データベースデータ、ユーザファイル等を記憶する。KBDC204は、キーボードやポインティングデバイスからの入力情報をCPU201に送る。VC205は、液晶ディスプレイ等の表示装置の表示を制御する。DC206は、外部記憶装置207とのアクセスを制御する。NIC208は、通信コントローラーであり、ネットワーク102との接続を制御する。
ここで、データベース112に格納されるデータについて説明する。表1は、データベース112に格納された、管理装置101により管理されるエージェント103を表すエージェント情報の一例である。エージェント情報は、エージェントID、エージェント名、IPアドレスおよびデバイスアドレスを含む。
エージェントIDは、各エージェントを一意に識別するために管理装置101が付与した識別子である。本実施形態では、エージェントIDとしてUUIDを使用する。エージェント103のエージェントIDは、「e887bddb−f3a9−404a−a7b6−e27576d0975b」である。エージェント名は、各エージェントを識別するためにユーザが付けた任意の文字列である。エージェント103のエージェント名は、「Agent1」である。
IPアドレスは、各エージェントのIPアドレスである。エージェント103のIPアドレスは、「172.16.10.17」である。デバイスアドレスは、各エージェントに紐づく管理対象のデバイスのアドレスを指定する。デバイスアドレスは、複数の開始アドレスと終了アドレスをハイフンで区切った範囲(例えば、172.20.0.0−172.20.0.255)またはIPアドレス(例えば、172.20.1.10)をカンマで区切った文字列である。エージェント103のデバイスアドレスは、「172.16.0.0−172.16.255.255」であり、172.16.0.0から172.16.255.255までのIPアドレスを持つデバイスを指定している。
表2は、データベース112に格納された、管理装置101により管理されるデバイス109を表すデバイス情報(デバイスインスタンス)の一例である。デバイス情報は、デバイスID、エージェントID、デバイス名、製品名、IPアドレス、MACアドレス、シリアル番号、ステータスおよび参照デバイスIDを含む。なお、複数の探索結果から同一のデバイスを検出した場合、デバイス情報は、探索結果ごとに、即ち管理するエージェントごとに生成される。
デバイスIDは、各デバイスを一意に識別するために管理装置101が付与した識別子である。本実施形態では、デバイスIDとしてUUIDを使用する。デバイス109のデバイスIDは、「41124cd1−74f8−4191−8c39−f8027c9c05a2」である。エージェントIDは、デバイス情報で示されるデバイスに紐付いたエージェントのエージェントIDである。本実施形態では、デバイスに紐付いたエージェントは、デバイスの検出(探索)を行い、当該検出デバイスの探索情報の送信元のエージェントである。各デバイスは、エージェントのデバイスアドレスに基づいてエージェントに紐付いている。デバイス109にはエージェント103が紐付いているため、エージェントIDにはエージェント103のエージェントIDが格納されている。
デバイス名は、各デバイスを識別するためにユーザが付けた任意の文字列である。デバイス109のデバイス名は、「Device1」である。製品名は、デバイスの製品名である。なお、製品名は、ファームウェア更新などによって変更されることがある。デバイス109の製品名は、「MFP−3200」である。IPアドレスは、デバイスのIDアドレスである。なお、IPアドレスは、ネットワーク設定などによって変更されることがある。デバイス109のIPアドレスは、「172.16.10.124」である。MACアドレスは、デバイスのMACアドレスである。なお、MACアドレスは、NIC交換などにより変更されることがある。デバイス109のMACアドレスは、「F4:81:39:C4:CA:F7」である。
シリアル番号は、デバイス固有の番号である。シリアル番号は、通常変更されることはない。デバイス109のシリアル番号は、「abc065013579」である。ステータスは、デバイスの状態を示す。本実施形態では、ステータスとして、例えば、エラー状態(ERROR)もしくは非エラー状態(NO ERROR)が示される。参照デバイスIDは、同一デバイスが別のエージェントにより探索された場合に重複なく優先順に従って処理を可能にするための参照情報であり、設定方法については後述する。
以下では、管理装置101が複数の管理対象のデバイス109〜115に対して実行する処理を総称してタスクと呼ぶ。また、タスクを処理するに際して各エージェント103〜105が各デバイス109〜115に対して実行する処理をサブタスクと呼ぶ。すなわち、タスクは複数のサブタスクより構成される。タスクは、例えば、管理対象デバイスの探索処理、管理対象デバイスの状態の取得、設定値の一覧の取得、設定値の設定処理などである。
また、デバイスが画像形成装置である場合、タスクとして印刷枚数の取得などが行われる。印刷枚数には、例えば、総印刷枚数、カラー印刷枚数、モノクロ印刷枚数、両面印刷枚数、片面印刷枚数、両面カラー印刷枚数、両面モノクロ印刷枚数等の各種印刷枚数が含まれる。また、デバイスが画像形成装置である場合、デバイスの状態を取得するタスクでは、エラー状態、トナーや感光体などの消耗品情報、給紙部の用紙サイズや用紙残量などが取得される。
図3は、管理装置101の構成を示す図である。なお、図3では、管理装置101の管理下にあるエージェントの例としてエージェント103を図示している。ホストコンピュータ(以下、ホスト)305は、管理装置101が動作するホストコンピュータである。ホスト306は、エージェント103が動作するホストコンピュータである。ホスト307は、WEBブラウザ301が動作するホストコンピュータである。
管理装置101は、WEBサーバ302上で動作するWEBアプリケーション(以下、WEBアプリ)303とスケジューラ304を含む。WEBアプリ303は、ホスト307で動作するWEBブラウザ301経由でユーザからの要求を受信して応答を返すことにより、ユーザインターフェース(UI)を提供する。また、WEBアプリ303は、エージェント103からの各種データの送受信要求を処理する。なお、本実施形態では、管理装置101のユーザインターフェースを、WEBブラウザ301を用いて提供しているが、オペレーティングシステムの画面を用いたアプリケーションであっても構わない。
スケジューラ304は、定期的にデータベース112を走査し、実行予定時刻を経過した予約タスクの実行の準備を行い、エージェント103に対して、タスクの実行を指示する。予約タスクとは、実行するタスクの詳細に、実行スケジュールを付加したものである。実行スケジュールは、タスクを実行する日時や、定期的な実行計画(例えば毎週月曜日の8時等)である。
図4は、エージェント103の構成を示す図である。なお、エージェント104およびエージェント105も同様の構成を有している。図4では、エージェント103の管理下にあるデバイスの例として、デバイス109を図示している。エージェント103は、受信部401、デバイス管理部(以下、管理部)402、送信部403、タスク実行部404および通信部405を備えている。
受信部401は、管理装置101からの指示を受信する。受信部401は、例えば、HTTP/HTTPSサーバを内蔵し、管理装置101からのHTTP要求を受信して、要求のURLやメソッドにより所定の処理を実行する。管理部402は、エージェント103に紐づいているデバイスの情報を管理装置101から取得し、デバイスを管理する。例えば、管理部402は、デバイスIDを用いてデバイスの情報を検索する機能を有する。デバイスIDは、システム上でデバイスを特定するデバイス毎に固有の番号である。管理部402は、デバイスIDに基づいて、特定デバイスのアドレス情報を取得することが可能になる。また、管理部402は、通信部405がデバイスと通信する際の認証情報を管理する。例えば、管理部402は、SNMPバージョン3を用いてネットワークデバイスに接続する際のユーザ名、コンテキスト名、認証プロトコルおよびキー、暗号化プロトコルおよびキー等の情報を管理する。SNMPは、Simple Network Management Protocolの略称であり、ネットワークの管理・管理を行うためのプロトコルである。
送信部403は、指定されたデータを管理装置101の指定されたアドレス(URL)に送信する機能、管理装置101の指定されたアドレスに送信した要求に対する応答を送信依頼元に返す機能等を有する。タスク実行部404は、管理装置101から実行を通知されたタスクを実行する。通信部405は、タスク実行部404からの依頼によりデバイス109との通信を行う。通信部405は、例えば、デバイス109とSNMPやWEBサービス等を用いて通信を行う。
ここで、複数のエージェントからデバイスが探索される場合の探索処理の詳細を説明する。探索処理は、システムにあらかじめ設定された間隔で定期的に実行される予約タスクとして実行される。なお、探索処理が、ユーザ指定の実行日時に一時タスクとして実行されてもよい。
表3は、データベース112に保存された予約タスク情報の例である。表3では、予約タスクの例として、デバイス探索タスクを示している。予約タスク情報は、予約タスクID、タスククラス、タスク名、タスク詳細、スケジュール設定および開始日時を含む。なお、予約タスクの対象となるデバイスは、データベース112の別のテーブル(例えば、予約タスクIDとネットワークデバイスを一意に識別するIDとを列に持つテーブル)で管理されているものとする。
予約タスクIDは、各予約タスクを一意に識別するために管理装置101が付与した識別子である。本実施形態では、予約タスクIDとしてUUIDを使用している。タスククラス名は、予約タスクの作成、編集、実行等を処理するためのプログラム上のクラスの名前である。表3に示されるデバイス探索タスクのタスククラス名は、「Discovery」である。WEBアプリ303は、タスククラス名に基づいて、予約タスクの編集画面の操作のための処理を行う。スケジューラ304は、タスククラス名に基づいて、予約タスクから後述するタスク情報とサブタスク情報を作成する処理を行う。
タスク名は、ユーザがWEBアプリ303を介して入力した、各予約タスクを識別するための名前である。表3に示されるデバイス探索タスクのタスク名は、「Discover devices」である。タスク詳細は、タスクの詳細を各タスククラスが解釈できる形で保存したデータである。表3に示されるデバイス探索タスクのタスク詳細は、SNMPのバージョン1を利用してデバイスの探索を行う際のSNMPのバージョン1のコミュニティ名の配列となっている。デバイスの探索処理では、各エージェント103〜105が、タスク詳細に列挙されたコミュニティ名を用いて、デバイスとのSNMPのバージョン1の通信を試行する。
スケジュール設定は、タスクの実行スケジュールである。スケジュール設定には、タスク実行の繰り返しや、曜日、時刻等を設定することができる。表3に示された例では、毎週の繰り返しが設定されている。開始日時は、次に予約タスクを実行すべき日時であり、スケジュール設定に従って設定される。例えば、スケジュール設定に毎週金曜日の午前8時と設定されて、今日が水曜日の場合、開始日時は次の金曜日の午前8時となる。
スケジューラ304は、デバイス探索タスクの「スケジュール設定」に従って、対象となる全エージェントに対し、デバイス探索を指示する。デバイス探索の指示を受けたエージェントは、指定されたアドレス範囲で探索処理を実行し、探索結果を管理装置101に送信する。管理装置101は、探索結果に基づいて新規デバイスを検出する。エージェントによるデバイス探索では、「タスク詳細」で指定されたコミュニティ名を持つSNMPのバージョン1の要求を、指定したIPアドレスに送信し、要求に対する応答を確認することでデバイスの接続の有無を判断する。なお、SNMPのバージョン1のコミュニティ名は、タスク全体で共通であり、要求を送信するIPアドレスの範囲はエージェント毎に管理装置101が指定するものとする。
図5は、スケジューラ304がデータベース112の予約タスクを開始する処理(以下、タイマー処理)のフローチャートである。タイマー処理では、スケジューラ304はデータベース112の予約タスクの内、実行予定日時が現在時刻より以前の予約タスクを開始する。なお、スケジューラ304はタスクの種類に関係なく、全てのタスクのタイマー処理を同様に行う。
スケジューラ304は、起動時にオペレーティングシステムやアプリケーションの実行環境が提供するタイマーに対し、図5で示すタイマー処理を定期的に呼び出すように指示する。オペレーティングシステムやアプリケーションの実行環境は、例えば、「JRE(Java(登録商標) Runtime Environment)」、「.NET Framework」等である。
ステップS501にて、スケジューラ304は、データベース112から実行予定時日時が現在時刻より以前の予約タスクの一覧を取得する。ステップS502にて、スケジューラ304は、ステップS501で取得した予約タスクの一覧から予約タスクを1つ取り出す。ステップS503にて、スケジューラ304は、ステップS502で取り出した予約タスクが存在するかの確認を行う。予約タスクが存在しない場合、即ち、ステップS502での予約タスクの取り出しに失敗した場合は、全ての予約タスクの取り出しが終了したとして、タイマー処理を終了する。一方、予約タスクが存在する場合、即ちステップS502での予約タスクの取り出しが成功した場合、ステップS504に進む。
ステップS504にて、スケジューラ304は、ステップS502で取り出した予約タスクのタスククラスに従い、予約タスクの開始処理を実装したクラスのインスタンスを作成する。ステップS505にて、スケジューラ304は、作成したインスタンスの予約タスクの開始処理を呼び出す。予約タスクの開始処理については、図6を用いて後述する。
ステップS506にて、スケジューラ304は、予約タスクのスケジュール設定に従い次の実行予定日時を計算し、データベース112内の該予約タスクのデータを更新する。この際、一度限りの実行や定期実行の終了日が設定されている等の理由により次の実行予定日時が存在しない場合には、スケジューラ304は、遠い未来(例えば、9999年1月1日)を実行予定日時として設定する。予約タスクのデータの更新は、ステップS502に戻り、次の予約タスクに対してタイマー処理を行う。
図6は、図5のタイマー処理のステップS505で呼び出される、予約タスクの開始処理(以下、予約タスク開始処理)のフローチャートである。予約タスク開始用のクラスは、下記に示すTaskRunner抽象クラスを継承する。
public abstract class TaskRunner {
public void Start( ReservedTask task );
}
また、予約タスク開始用のクラスは、Startという関数を実装している。Start関数は予約タスク情報を引数に取る。
public abstract class TaskRunner {
public void Start( ReservedTask task );
}
また、予約タスク開始用のクラスは、Startという関数を実装している。Start関数は予約タスク情報を引数に取る。
ステップS601にて、スケジューラ304は、予約タスク情報から新規にタスク情報を作成し、データベース112に格納する。表4は、タスク情報の一例である。表4のタスク情報は、表3に示されるデバイスの探索の予約タスク情報に基づいて作成されたタスク情報である。タスク情報は、タスクID、予約タスクID、タスククラス、タスク名、タスク詳細、ステータス、開始日時および終了日時を含む。
タスクIDは、タスク情報を一意に識別するため予約タスク開始処理が付与した識別子である。本実施形態では、識別子としてUUIDを使用している。タスク情報の予約タスクID、タスククラス、タスク名およびタスク詳細は、予約タスク情報の予約タスクID、タスククラス、タスク名およびタスク詳細である。なお、予約タスクID、タスククラス、タスク名およびタスク詳細は、タスク情報の作成時点では予約タスク情報と同じものであるが、予約タスクはタスク情報作成後に変更や削除がなされることもあるため、タスク情報内に同データを持つ。
ステータスは、タスク情報により表現されるタスクの状態を示す。本実施形態におけるタスクの状態には「実行中(RUNNING)」、「正常(全ての対象のデバイスに対する処理が成功した)」、「失敗(処理に失敗したデバイスが存在する)」があり、「実行中」を初期状態とする。そのため、タスク情報作成時点ではステータスは「実行中」である。なお、タスク状態はこれに限られるものではなく、更に詳細なステータス制御をしてもよい。開始日時は、タスク情報が作成された日時を示す。終了日時は、タスク情報により表現されるタスクの実行が終了した日時を示す。タスク情報の作成時点では、終了日時は空である。
ステップS602にて、スケジューラ304は、タスクの処理対象がデバイスであるか否かを判定する。本実施形態では、タスククラスに基づいてタスクの処理対象を判定する。そのため、タスククラスは、タスククラスの属性としてタスクの処理対象が取得出来るよう構成される。例えば、表4では、タスククラス「Discovery」の処理対象はエージェントであり、ステップS602ではNoと判断される。ステップS602で処理対象がデバイスであると判定された場合は、ステップS603に進む。一方、処理対象がデバイスではないと判定された場合は、ステップS607に進む。
ステップS603にて、スケジューラ304は、予約タスクの対象となるデバイスの一覧を取得する。ステップS604にて、スケジューラ304は、ステップS603で取得したデバイス情報の一覧からデバイスを1つ取り出す。ステップS605にて、スケジューラ304は、デバイス情報の一覧からデバイスの取り出しが成功したかを確認する。デバイス情報の一覧に取り出すデバイスの情報が存在しない場合、即ちステップS604でのデバイスの取り出しに失敗した場合は、ステップS603で取得した全デバイスに対する処理が終了したとして、ステップS608に進む。一方、デバイスの取り出しに成功した場合、ステップS606に進む。ステップS606にて、スケジューラ304は、S604で取り出したデバイスの情報に対応するサブタスク情報を作成し、データベース112に格納する。サブタスクとは、タスクを、対象エージェント、或いは対象デバイスに対する処理に分解した処理の単位を示す。ステップS606でサブタスク情報の生成後、ステップS604に戻る。
ステップS602において、処理対象がデバイスでないと判定された場合、タスクの対象はエージェントである。ステップS607にて、スケジューラ304は、対象エージェント毎にサブタスクを生成する。ステップS608にて、スケジューラ304は、対象エージェントにタスクの開始要求を通知し、予約タスク開始処理を終了する。なお、エージェントへのタスクの開始要求については後述する。
ここで、ステップS606もしくはステップS607で生成されるサブタスク情報について説明する。表5および表6は、サブタスク情報の例である。表5および表6のサブタスク情報は、表4に示されるデバイスの探索のタスク情報に基づいて作成されたサブタスク情報である。サブタスク情報は、サブタスクID、タスクID、デバイスID、エージェントID、サブタスク詳細、ステータス、実行結果、開始日時および終了日時を含む。なお、表5は、エージェント103により実行されるデバイス探索処理のサブタスク情報であり、表6は、エージェント104により実行されるデバイス探索処理のサブタスク情報である。
サブタスクIDは、サブタスク情報を一意に識別するため予約タスク開始処理が付与した識別子である。本実施形態では、識別子としてUUIDを使用している。タスクIDは、サブタスクの元となるタスクのタスクIDである。また、表5および表6に示されるサブタスクは表4のタスクのサブタスクとして生成されるため、同一のタスクID(表4のタスクID)が設定される。
デバイスIDは、サブタスクで示される処理を行う対象のデバイスを識別するための識別子である。デバイスの探索処理の場合、指定アドレス範囲のデバイスを見つける処理であるためサブタスクの処理を実行する対象はエージェントとなる。そのため、表5および表6において、サブタスク情報のデバイスIDは空になっている。エージェントIDは、サブタスクで示される処理を行うエージェントを識別するための識別子である。表5のサブタスクは、エージェントID:e887bddb−f3a9−404a−a7b6−e27576d0975bのエージェント103であるエージェント103が処理する。表6のサブタスクは、エージェントID:c360532c−b38f−49f6−ba73−93afea90dff0のエージェント104であるエージェント104が処理する。
サブタスク詳細は、サブタスクの詳細を記載したデータである。デバイス探索処理の場合のサブタスク詳細は、エージェントが探索用のSNMPのバージョン1のパケットを送信する宛先である。探索処理では、サブタスク詳細に記載されたネットワークアドレスのそれぞれに対して、探索用のSNMPのバージョン1のパケットを送信することで、デバイスの探索を行う。表5の例では、172.16.0.0から172.16.255.255の合計65536個のIPアドレスのそれぞれに対してSNMPパケットを送信する。表6の例では、172.17.0.0から172.17.255.255の合計65536個のIPアドレスのそれぞれに対してSNMPパケットを送信する。
ステータスは、サブタスク情報で表現されるサブタスクの状態を示す。ステータスには「準備中」「実行中」「成功」「失敗」「例外(実行中に予期せぬエラーが発生した)」「キャンセル」がある。サブタスク情報作成時点では、サブタスクの実行は開始されていないため「準備中(Ready)」」である。実行結果は、サブタスクを処理する各クラスが解釈可能なサブタスクの実行結果である。作成時点では実行が開始されていないため、実行結果は空である。開始日時、終了日時はそれぞれサブタスクのエージェントによる実行の開始と終了の日時である。
図7は、デバイス管理システムの要求処理のシーケンスを示す図である。管理装置101によるタスクの開始処理から、エージェント103およびエージェント104によるタスクの実行と、管理装置101への結果の送信までの流れの概要を示している。ステップS701で、管理装置101は、図6の予約タスク開始処理を実行する。ステップS702で、管理装置101は、タスク開始要求をエージェント103に送信する。タスク開始要求は、予約タスク開始処理の一環として行われる処理であり、図6のステップS608に相当する処理である。タスク開始要求で送信する情報には、サブタスク情報も含まれる。ステップS703で、エージェント103はタスク開始要求を受信し、当該タスクおよびサブタスク処理のためのインスタンスを作成し、サブタスクを処理キューに積む。
ステップS704で、エージェント103は、処理キューに積まれたサブタスクを実行するサブタスク実行処理を行う。そして、ステップS705で、エージェント103は、サブタスク毎の実行処理で必要に応じてデバイスと通信し、サブタスク実行結果を作成する。ステップS706で、エージェント103は、管理装置101にサブタスク実行結果を通知する。デバイス探索タスクの場合は、サブタスク実行結果として探索されたデバイスの一覧が返される。なお、エージェント側のタスクおよびサブタスクの処理詳細は本実施形態の本質とは関係がないため、説明を省略する。
エージェント103からサブタスク実行結果を受信した管理装置101は、ステップS707でサブタスク実行結果受信処理を行う。サブタスク実行結果受信処理については、図8を用いてその詳細を説明する。サブタスク実行結果受信処理では、サブタスク実行結果に含まれるクラス名からサブタスク実行結果処理用クラスを生成する。そして、ステップS708で、管理装置101は、サブタスク実行結果処理(即ちHook関数)を行う。その後、サブタスク実行結果受信処理では、サブタスク実行結果処理のサブタスク実行結果の内容に基づいてデータベース112内のサブタスク情報を更新する。なお、管理装置101とエージェント103との通信に使用される各URLおよび各要求の受信処理は、タスクの種類に依らず共通である。
予約タスク開始処理において、ステップS702でエージェント103にタスク開始要求を送信したのと同様に、ステップS709でエージェント104にもタスク開始要求を送信する。エージェント104は、エージェント103と同様に、管理装置101に指示されたタスクおよびサブタスクを処理し、サブタスク実行結果を管理装置101へ送信する。エージェント104におけるステップS710〜ステップS712は、エージェント103におけるステップS703〜ステップS705と同様の処理である。エージェント104からサブタスク実行結果を受信した管理装置101は、ステップS714およびステップS715で、ステップS707およびステップS708と同様の処理を行う。これらの処理は、全てのエージェントに対し、同様に実行される。
図8は、サブタスク実行結果受信処理を示すフローチャートである。サブタスク実行結果受信処理は、管理装置101のWEBアプリ303がエージェントからサブタスク実行結果を受信した際の処理である。サブタスク実行結果を受信した管理装置101において、WEBアプリ303は、URLパス(例えば、「/api/v1/tasks/subtask/クラス名」)に対するPOSTメソッドのHTTP要求を受信する。HTTP要求を受信したWEBアプリ303は、「クラス名」と要求の本文に含まれるサブタスク実行結果を引数にして、サブタスク実行結果受信処理を呼び出す。以下、一例として「クラス名」が「Discovery」である場合について説明する。
ステップS801で、管理装置101は、引数で与えられたクラス名を用いて、サブタスク受信結果を処理可能なサブタスク実行結果処理用クラスのインスタンスを作成する。サブタスクの実行結果処理を実行するクラスは、以下に示すインターフェースを実装している。
public interface SubtaskResultHooker {
SubtaskInfo Hook(SubtaskInfo result);
}
サブタスク受信結果(SubtaskInfo)の中には少なくともサブタスクIDが含まれ、データベース112を参照することにより、サブタスク情報が取得可能である。なお、デバイスIDは、処理対象がデバイスであるサブタスクの場合は必須であるが、デバイス探索のように処理対象がエージェントである場合はデバイスIDが空であるか項目ごと含まれない。
public interface SubtaskResultHooker {
SubtaskInfo Hook(SubtaskInfo result);
}
サブタスク受信結果(SubtaskInfo)の中には少なくともサブタスクIDが含まれ、データベース112を参照することにより、サブタスク情報が取得可能である。なお、デバイスIDは、処理対象がデバイスであるサブタスクの場合は必須であるが、デバイス探索のように処理対象がエージェントである場合はデバイスIDが空であるか項目ごと含まれない。
ステップS802で、管理装置101は、サブタスク受信結果の処理対象がデバイスであるか否かを判定する。処理対象がデバイスである場合、ステップS803に進む。一方、処理対象がデバイスでない場合、ステップS807に進む。ステップS803で、管理装置101は、データベース112のデバイス情報テーブルから、デバイス情報の参照デバイスIDにサブタスク受信結果に含まれるデバイスIDが設定されたデバイスDnがあるか否かを判定する。参照デバイスIDは、同一デバイスが異なるエージェントにより探索された場合に設定されるため、ステップS803は、同一デバイスを担当する別のエージェントに処理を依頼できるかを判定するのと同義である。デバイス情報の参照デバイスIDにサブタスク受信結果に含まれるデバイスIDが設定されたデバイスDnがある場合、即ち別のエージェントに処理の依頼が可能である場合、ステップS804に進む。一方、デバイス情報の参照デバイスIDにサブタスク受信結果に含まれるデバイスIDが設定されたデバイスDnがない場合、即ち別のエージェントに処理の依頼ができない場合、ステップS807に進む。
ステップS804で、管理装置101は、エージェント変更対象エラーであるか否かを判定する。エージェント変更対象エラーとは、エージェントの変更で処理可能である失敗、即ち別のエージェントに処理を依頼することにより正常処理できる可能性のある失敗である。エージェント変更対象エラーには、例えば、通信タイムアウトのエラーがある。さらに。エージェント変更対象エラーには、IPアドレス/MACアドレスまたはIPアドレス/シリアル番号の組合せが不一致であることによるデバイス不一致エラーなど、デバイスを特定する情報が対象となるデバイスと異なる値であった場合がある。エージェント変更対象エラーである場合、即ち別のエージェントに処理を依頼することが有効である場合は、ステップS805に進む。一方、エージェント変更対象エラーで出ない場合は、ステップS807に進む。
ステップS805で、管理装置101は、同一のデバイスを担当する別のエージェントに処理を依頼するためのサブタスクを生成する。即ち、ステップS803で特定したデバイスDn用のサブタスクを生成する。サブタスクの生成においては、データベース112から、サブタスクIDの親タスクであるタスクIDを取得し、参照デバイスIDにより該当デバイスの管理を担当するエージェントIDを取得することにより、必要情報を特定し、エージェントを決定する。ステップS806で、管理装置101は、S805で生成したサブタスクの依頼先となる、デバイスDnを管理するエージェントにサブタスク実行を指示する。
ステップS807で、管理装置101は、ステップS801で作成したサブタスク実行結果処理用クラスのインスタンスのHook関数を呼び出し、結果を受け取る。サブタスク実行結果処理用クラスは、引数として渡されたサブタスク実行結果を元に各タスクに固有の処理を行い、必要に応じてサブタスク実行結果の内容を変更し、これを返して関数を終了する。各タスクに固有の後処理の例を、以下に示す。まず、デバイス探索処理タスクの場合について説明する。デバイス探索処理タスクの場合、管理エージェントから送信される実行結果の例は以下のようになる。
{”scanned”: 65025,
”discovered”: 4,
”devices”: [
{”ip”: ”172.16.10.124”, ”name”: ”MFP−3200”,
”mac”: ”F4:81:39:C4:CA:F7”, ”sn”: ”abc06501” },
{”ip”: ”172.16.110.181”, ”name”: ”SFP−2000”,
”mac”: ”F4:81:19:E2:B1:C9”, ”sn”: ”ssd11207” },
{”ip”: ”172.16.113.134”, ”name”: ”SFP−3500”,
”mac”: ”F4:81:23:AC:BF:45”, ”sn”: ”sfb11356” },
{”ip”: ”172.16.138.91”, ”name”: ”MFP−5500”,
”mac”: ”F4:81:92:BE:F1:1A”, ”sn”: ”abf05505” }
]
}
{”scanned”: 65025,
”discovered”: 4,
”devices”: [
{”ip”: ”172.16.10.124”, ”name”: ”MFP−3200”,
”mac”: ”F4:81:39:C4:CA:F7”, ”sn”: ”abc06501” },
{”ip”: ”172.16.110.181”, ”name”: ”SFP−2000”,
”mac”: ”F4:81:19:E2:B1:C9”, ”sn”: ”ssd11207” },
{”ip”: ”172.16.113.134”, ”name”: ”SFP−3500”,
”mac”: ”F4:81:23:AC:BF:45”, ”sn”: ”sfb11356” },
{”ip”: ”172.16.138.91”, ”name”: ”MFP−5500”,
”mac”: ”F4:81:92:BE:F1:1A”, ”sn”: ”abf05505” }
]
}
scannedは、その時点までに探索を施行したアドレスの数である。discoveredは、見つかったデバイスの数である。devicesは、前回送信から新たに見つかったデバイスの情報のリストである。デバイス情報には、ip、name、macおよびsnが含まれている。ipはIPアドレス、nameは製品名、macはMACアドレス、snはシリアル番号である。探索対象の全てのIPアドレスに対する処理が完了した場合、受信したサブタスク実行結果のステータスは「DONE」となっている。
デバイス探索処理の場合、ステップS807で呼び出される実行結果処理クラスの実行結果処理関数は、以下の動作をする。まず、サブタスクの実行結果から、探索されたデバイス情報の一覧(「devices」情報)を取り出す。次に、実行結果処理関数は、取り出したデバイス情報の其々に対し、データベース112内のデバイス情報のテーブルに同じデバイス情報が既に登録されているか否かを判定する。デバイス情報の判定のためには、シリアル番号(”sn”)もしくはMACアドレス(”mac”)を使用する。判定の結果、デバイス情報のテーブルに同じデバイス情報が登録されていない場合、実行結果受信関数は受信したデバイス情報を、新規にデータベース112のデバイス情報テーブルに追加する。一方、デバイス情報のテーブルに同じデバイス情報が既に登録されている場合、エージェントIDが同一であるか否かを判定する。エージェントIDが同一である場合、実行結果処理関数は、データベース112内のテーブル内の情報を受信した情報で更新する。一方、エージェントIDが異なる場合は、デバイス情報のテーブルに同じデバイス情報が登録されていない場合と同様に、受信したデバイス情報に基づいて新規にデバイス情報を生成する。そして、デバイス情報に参照デバイスIDを設定することにより、デバイス間のリンク情報を設定して、データベース112のデバイス情報テーブルに追加する。
図9は、デバイスのインスタンスの参照デバイスIDによるリンクを説明する図である。Device1〜3は、同一のシリアル番号を有する同一デバイスであるが、MACアドレス等が異なることにより、それぞれ異なるエージェントが管理を担当している。デバイス探索処理タスクの実行結果で見つかった先頭のデバイスは、Device1として登録されている。本実施形態では、先頭デバイスには参照デバイスIDを設定せず(NULL)、2番目以降のデバイスに一つ前のデバイスのデバイスIDを参照デバイスIDとして設定することで、デバイス間のリンク関係を保持する。
図9の例では、デバイス探索処理タスクの実行結果で見つかった2番目のデバイスはDevice3であり、Device3の参照デバイスIDとして、Device1のデバイスIDを設定する。デバイス探索処理タスクの実行結果で見つかった3番目のデバイスはDevice6であり、同様にDevice6の参照デバイスIDとして、Device3のデバイスIDを設定する。
また、エージェントIDから、Device1はエージェント103が、Device3はエージェント104が、Device6はエージェント105がそれぞれ管理を担当していることが分かる。Device1のインスタンスは、エージェント103用のデバイス109のインスタンスである。同様に、Device3のインスタンスは、エージェント104用のデバイス111のインスタンスであり、Device6のインスタンスは、エージェント105用のデバイス114のインスタンスである。
本実施形態において、デバイス間のリンクの順番はサブタスクの試行順番になる。デバイスに対するサブタスク処理を実施する際には、最初に先頭のデバイス(図9のDevice1)のみサブタスクを生成し、当該デバイスの管理を担当するエージェントに実行指示を出す。先頭のデバイスのサブタスク実行結果がステップS804でエージェント変更対象エラーと判断された場合に、次点のデバイス(図9のDevice3)を試行することになる。次点のデバイス(図9のDevice3)のサブタスク実行結果がステップS804でエージェント変更対象エラーと判断された場合は、さらに、次々点のデバイス(図9のDevice6)を試行することになる。デバイス間のリンクは、上位のデバイス情報から参照デバイスIDにデバイスIDを持つデバイスのインスタンスを参照することで辿ることができる。
なお、デバイスの登録順位について、デバイス探索処理タスクの実行結果で見つかった順に設定する例を説明したが、これに限られるものではなく、デバイス情報の生成順に設定してもよいし、他の優先条件に従って組み替えてもよい。受信した全てのデバイス情報に対する処理が完了したら、実行結果処理関数は、サブタスク実行結果を関数の呼び出し元に返す。
次に、各タスクに固有の後処理の例として、デバイスの状態の取得タスクの場合について説明する。デバイスの状態の取得タスクの後処理では、デバイスの現在の状態を格納するデータベース112内のテーブルの内容を更新し、前回の状態から新たにエラー状態が検出された場合、その旨をユーザが指定したメールアドレスに対してメール送信する。なお、デバイス情報更新処理については、図10を用いて後述する。
次に、各タスクに固有の後処理の例として、デバイスの利用状況の取得タスクの場合について説明する。デバイスの利用状況の取得タスクでは、例えば、デバイスが画像形成装置である場合、各種カウンタの値を取得する。デバイスの利用状況の取得タスクの後処理では、利用状況の統計を格納するデータベース112内のテーブルの内容を更新する。
図8の説明に戻る。ステップS808で、管理装置101は、Hook関数から返されたサブタスク実行結果に基づいて、表5および表6に示すデータベース112内のサブタスク情報を更新する。ステップS809で、管理装置101は、受信したサブタスク実行結果のタスクIDに紐づいたすべてのサブタスクが終了したか否か判定する。すべてのサブタスクが終了したか否かは、データベース112内の受信したサブタスクに紐づいたタスクIDと同じタスクIDを持つサブタスク情報のステータスが終了状態でないサブタスク情報があるか否かにより判定する。終了状態とは、成功、失敗、例外、キャンセルの何れかに該当する状態である。
すべてのサブタスクが終了していない場合、ステップS810に進む。一方、実行が終了していないサブタスク情報がある場合、即ちステータスが終了状態でないサブタスク情報がある場合は、本処理を終了する。ステップS810で、管理装置101は、表4に示すデータベース112内のタスク情報のステータスと終了日時を更新する。ステータスは、タスクIDを持つ全てのサブタスク情報のステータスが「成功」の場合は「成功」、そうでない場合は「失敗」となる。
図10は、デバイス情報更新処理を示すフローチャートである。デバイス情報更新処理は、図8のS807におけるサブタスク固有の後処理の一例である。図9のようにデバイス情報がリンクしていることにより、1つのデバイスで検出した情報更新を、リンクされた別のデバイス情報(デバイスインスタンス)に反映することが出来る。リンクされた別のデバイス情報にも更新された情報を反映することにより、例えば、UI表示おいてエージェント指定でデバイスリストのフィルタリングを行った場合でも、別エージェントが検出した最新のデバイス情報を表示することができる。
S1001において、管理装置101は、データベース112から更新対象デバイスDのデバイス情報を検索する。デバイス情報の検索は、ステップS807の実行処理関数の引数として、サブタスク受信結果(SubtaskInfo)に含まれているデバイスIDをキーに検索する。S1002において、管理装置101は、更新対象のデバイスDのデバイス情報をサブタスク受信結果(SubtaskInfo)に含まれている、最新のデバイス情報で更新する。管理装置101は、さらに、更新対象デバイスのデバイスIDを一時変数Dtとして、デバイスDのデバイスIDで初期化する。
S1003において、管理装置101は、データベース112よりデバイス情報のテーブルからデバイス情報の[参照デバイスID]にDtが設定されている参照元デバイスDcがあるか否かを判定する。[参照デバイスID]にDtが設定されている参照元デバイスDcがある場合、S1004に進む。一方、[参照デバイスID]にDtが設定されている参照元デバイスDcがない場合、ステップS906に進む。
ステップS1004において、管理装置101は、参照元デバイスDcのデバイス情報を、最新のデバイス情報で更新する。ステップS1005において、管理装置101は、次の優先順位のデバイスを検索するために、Dtを参照元デバイスDcのデバイスIDで初期化し、S1003へ戻る。
ステップS1006において、管理装置101は、データベース112より更新対象デバイスDのデバイス情報に含まれる[参照デバイスID]を取得し、一次変数Iとする。ステップS1007において、管理装置101は、Iが空であるか否か、即ち優先順位が上位のデバイスが存在するか否かを判定する。Iが空ではないと判定された場合、即ち優先順位が上位のデバイスが存在する場合は、ステップS1008に進む。一方、Iがからであると判定された場合、即ち優先順位が上位のデバイスが存在しない場合は、リンクされた全てのデバイス情報の更新が完了したため、本処理を終了する。
ステップS1008において、管理装置101は、データベース112よりデバイスIDがIである参照先デバイスDpのデバイス情報を、最新のデバイス情報で更新する。ステップS1009において、管理装置101は、上位の優先順位のデバイスを検索するために、IをDpのデバイスIDで初期化し、S1007へ戻る。
図11は、本実施形態のデバイスリストのUIの一例である。図11には、エージェント103〜105に対応するAgent1〜3で探索されたデバイスの一覧が表示されている。デバイスリストのUIには、デバイス情報として、デバイスID、デバイス名、製品名、製品シリアル番号、MACアドレス、デバイスのアドレス、エージェント名およびデバイス状態が表示されているが、これに限られるものではない。デバイスリストのUIには、デバイス情報として管理に必要な情報を表示する。
図9で例示した、複数のデバイス情報Device1、Device3、Device6として管理されている実体が一つのデバイスは、優先順位1番のDevice1としてUI上に表示されており、Device3およびDevice6は表示されていない。Device1に相当するデバイスが、3つのエージェントから管理されていることは、デバイスアイコン上の「3」で表現されている。なお、複数のエージェントから管理されていることの表示方法は、これに限られるものではない。また、デバイスリストのUIからDevice1の詳細なデバイス情報を表示すると、詳細デバイス情報としてDevice3としてエージェント104、Device6としてエージェント105でも管理されている旨を、表示するよう構成してもよい。
また、本実施形態では、図11に示されるFilterにより、エージェント指定でデバイスを限定表示することを想定している。FilterでAgent1を選択した場合には、Agent1(エージェント103)の管理デバイスのみを表示する。また、FilterでAgent2を選択した場合、全デバイス表示では表示していないDevice3のデバイス情報を表示する。同様に、FilterでAgent3を選択した場合も全デバイス表示では表示していないDevice6のデバイス情報を表示する。このように、Filterによりエージェント指定した場合には、各エージェントが管理するすべてのデバイスを表示する。本実施形態のデバイスリストのUIによると、管理装置101のユーザが管理操作を行う際に、実体が一つのデバイスが複数のエージェントに管理されていることを容易に認識することができる。
以上説明したように、本実施形態によると、不要な多重管理を抑制しつつ、例外処理として、第1のエージェントによる処理が失敗した場合に、有効なネットワークを有する第2のエージェントを利用することができる。
(第2実施形態)
第1実施の形態では、複数のエージェントが一つのデバイスを管理する時に、効果的に重複なく、管理に関わる処理を実行する方法に関して説明した。第1実施形態においてサブタスクが成功するまで、どのエージェントがサブタスクを実行し、どのエージェントで処理が成功したかが分かり、更に、其々のサブタスクに対して再試行の指示ができれば、ユーザビリティを向上させることができる。
第1実施の形態では、複数のエージェントが一つのデバイスを管理する時に、効果的に重複なく、管理に関わる処理を実行する方法に関して説明した。第1実施形態においてサブタスクが成功するまで、どのエージェントがサブタスクを実行し、どのエージェントで処理が成功したかが分かり、更に、其々のサブタスクに対して再試行の指示ができれば、ユーザビリティを向上させることができる。
例えば、デバイス設定の取得に関して、毎回第1のエージェントでエラーとなり第2のエージェントで成功している場合は、デバイスが第1のエージェントの管理範囲から、第2のエージェントの管理範囲へ移動した場合がある。デバイスの管理範囲の移動が、管理者が意図したものではなく、デバイス使用者が無断で移動する場合もある。また、デバイスが複数のネットワークカード等の通信インターフェースを持つ場合、その中の一つのアドレスのみ変更され、デバイスの管理範囲が移動するケースがある。例えば、DHCPサーバによりデバイスのIPアドレスが可変に構成されているケース等が考えられる。しかし、デバイスなどは管理効率を鑑みて、特定アドレスが割り当てられるように設定されていることも多く、アドレスの変更が管理者が意図しない設定に起因する場合も多い。
図12は、タスクログの一例を示す図である。図12に示されるタスクログは、デバイス設定タスクのログである。デバイス設定タスクのログには、タスク名、ログID,タスクID、タスクの対象、実行結果のステータス、タスク作成日時および完了日時を含む。さらに、タスクのログの下部にはタスクを構成するサブタスクの一覧が表示されている。図11のサブタスク一覧には、サブタスクをDevice1、Device3、Device6と試行し、Device1、Device3でエラーとなり、Device6で成功したことが示されている。これにより、Device1でのサブタスクの実行結果のエラーを受けてDevice3でサブタスクを実行し、さらに、Device3でのサブタスクの実行結果のエラーを受けてDevice6でサブタスクを実行し成功したことが分かる。また、サブタスクの左端にはチェックボックスを配置し、再試行したいサブタスクにチェックを付けて、「Retry Subtask」ボタンを押下すると、同一の管理内容で新しいサブタスクが生成され、再試行が可能である。
以上説明したように、本実施形態によると、第1実施形態より管理の視認性や操作性が向上し、更に効率的なデバイスの管理が実現できる。
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
Claims (12)
- 複数のエージェントとの通信を用いて、複数のデバイスを管理する管理装置であって、
各エージェントからの管理対象のデバイスに対する探索結果を受信する受信手段と、
前記探索結果に基づいて、デバイスを担当するエージェントを決定する決定手段と、
デバイスを処理対象として含む処理に関するタスクを実行する際に、前記決定手段により決定されたデバイスを担当するエージェントに対して、前記処理の依頼を実行する実行手段と、を備え、
前記決定手段は、複数の探索結果から同一のデバイスを検出した場合、当該検出デバイスを含む探索結果の送信元である複数のエージェントの中から、前記検出デバイスを担当する第1のエージェントを決定し、
前記実行手段は、前記第1のエージェントに対して、前記検出デバイスを処理対象に含む処理の依頼を実行し、
前記第1のエージェントに対する前記依頼に応じた前記処理が失敗した場合に、
前記決定手段は、前記検出デバイスを含む探索結果の送信元である複数の管理エージェントの中から、前記第1のエージェントとは異なる第2のエージェントを決定し、
前記実行手段は、前記第2のエージェントに対して、前記検出デバイスを処理対象に含む処理の依頼を実行する
ことを特徴とする管理装置。 - 前記各エージェントは、管理対象のデバイスの探索を行う際のネットワーク範囲、プロトコル、対象となる機種の少なくともいずれかを含む条件の少なくとも一部の設定がそれぞれ相違する
ことを特徴とする請求項1に記載の管理装置。 - 前記決定手段は、前記探索結果に含まれるデバイスを一意に識別するシリアル番号を用いて、同一のデバイスを検出する
ことを特徴とする請求項1または2に記載の管理装置。 - 前記決定手段は、前記第1のエージェントに対する前記依頼に応じた前記処理が失敗した場合に、前記失敗した処理がエージェントの変更で処理可能である場合に、前記第2のエージェントを決定する
ことを特徴とする請求項1乃至3のいずれか1項に記載の管理装置。 - 前記エージェントの変更で処理可能である失敗は、通信タイムアウトのエラー、もしくは、IPアドレス/MACアドレスまたはIPアドレス/シリアル番号の組合せが不一致であることによるデバイス不一致エラーである
ことを特徴とする請求項4に記載の管理装置。 - 前記探索結果に基づいて、各エージェント用のデバイスのインスタンスを生成する生成手段をさらに備え、
複数の探索結果から同一のデバイスを検出した場合、前記生成手段は、当該検出デバイスのインスタンスに、同一デバイスの他のインスタンスを紐づける
ことを特徴とする請求項1乃至5のいずれか1項に記載の管理装置。 - 前記インスタンスは、インスタンスごとにデバイスを特定するデバイスID、および、当該デバイスを担当するエージェントを示すエージェントIDを含み、
前記生成手段は、同一デバイスの他のインスタンスのデバイスIDを参照デバイスIDに設定することにより、同一デバイスの他のインスタンスを紐づける
ことを特徴とする請求項6に記載の管理装置。 - 前記第2のエージェント用の前記検出デバイスのインスタンスの参照デバイスIDには、前記第1のエージェント用の前記検出デバイスのインスタンスのデバイスIDが設定されている
ことを特徴とする請求項7に記載の管理装置。 - 前記決定手段は、前記第1のエージェントに対する前記依頼に応じた前記処理が失敗した場合、前記第1のエージェント用の前記検出デバイスのインスタンスのデバイスIDを参照デバイスIDに有するインスタンスを参照し、当該インスタンスを担当する第2のエージェントを決定する
ことを特徴とする請求項8に記載の管理装置。 - 前記実行手段は、前記デバイスのインスタンスを用いて当該デバイスを処理対象とするサブタスクをエージェントごとに生成し、処理の依頼を実行する際に前記サブタスクをエージェントに送信し、
前記第1のエージェントに対する前記依頼に応じた前記処理が失敗した場合に、前記実行手段は、前記第1のエージェント用の前記検出デバイスのインスタンスに紐づく、前記第2のエージェント用の前記検出デバイスのインスタンスを用いて前記検出デバイスを処理対象とするサブタスクを生成し、当該サブタスクを前記第2のエージェントに送信する
ことを特徴とする請求項6乃至9のいずれか1項に記載の管理装置。 - 複数のエージェントとの通信を用いて、複数のデバイスを管理する管理装置の制御方法であって、
各エージェントからの管理対象のデバイスに対する探索結果を受信する受信工程と、
複数の探索結果から同一のデバイスを検出した場合、当該検出デバイスを含む探索結果の送信元である複数のエージェントの中から、前記検出デバイスを担当する第1のエージェントを決定する第1の決定工程と、
前記第1のエージェントに対して、前記検出デバイスを処理対象に含む処理の依頼を実行する第1の実行工程と、
前記第1のエージェントに対する前記依頼に応じた前記処理が失敗した場合に、前記検出デバイスを含む探索結果の送信元である複数の管理エージェントの中から、前記第1のエージェントとは異なる第2のエージェントを決定する第2の決定工程と、
前記第2のエージェントに対して、前記検出デバイスを処理対象に含む処理の依頼を実行する第2の実行工程と、
を有することを特徴とする制御方法。 - 請求項1乃至10のいずれか1項に記載の各手段としてコンピュータを機能させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018052442A JP2019164622A (ja) | 2018-03-20 | 2018-03-20 | 管理装置、管理装置の制御方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018052442A JP2019164622A (ja) | 2018-03-20 | 2018-03-20 | 管理装置、管理装置の制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019164622A true JP2019164622A (ja) | 2019-09-26 |
Family
ID=68064981
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018052442A Pending JP2019164622A (ja) | 2018-03-20 | 2018-03-20 | 管理装置、管理装置の制御方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019164622A (ja) |
-
2018
- 2018-03-20 JP JP2018052442A patent/JP2019164622A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5582344B2 (ja) | 接続管理システム、及びシンクライアントシステムにおける接続管理サーバの連携方法 | |
US9398084B2 (en) | Information processing system | |
JP4956314B2 (ja) | イベント通知装置、イベント通知方法及びイベント通知プログラム | |
JP7013165B2 (ja) | 管理装置、管理装置の制御方法、及びプログラム | |
JP2003099230A (ja) | ネットワーク・デバイスのミミック・サポート | |
JP5459983B2 (ja) | 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム | |
JP2008181427A (ja) | シングルサインオンシステム、情報端末装置、シングルサインオンサーバ、プログラム | |
JP5352367B2 (ja) | 仮想マシン起動端末および仮想マシン起動プログラム | |
JP5929946B2 (ja) | 画像形成システム、中継サーバー、通信制御方法及びプログラム | |
EP2296317A2 (en) | Information processing apparatus for managing events upon identification of the event notification source, and control method and storage medium therefor | |
JP2016018339A (ja) | システム、及びシステムの制御方法 | |
JP6525761B2 (ja) | ウェブサーバ、管理システム、およびその制御方法 | |
JP6380453B2 (ja) | 画像形成システム、中継サーバー、通信制御方法及びプログラム | |
JP2013105237A (ja) | ジョブ処理システム、ジョブ処理装置、負荷分散装置、ジョブ処理プログラムおよび負荷分散プログラム | |
JP5287623B2 (ja) | 仮想サーバ管理システム、画像処理システム、仮想サーバ管理装置及び制御プログラム | |
US9250841B2 (en) | Print server, control method of print server, and storage medium | |
JP5524606B2 (ja) | 仮想化環境におけるモジュール間の通信方法、情報処理装置およびその制御方法、クライアント装置、情報処理システム、プログラム | |
JP2015176594A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP2019164622A (ja) | 管理装置、管理装置の制御方法およびプログラム | |
EP3266151A1 (en) | Methods and systems for requesting access to limited service instances | |
JP6292892B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
KR102221261B1 (ko) | 네트워크 기기와 그 방법 | |
WO2011083721A1 (en) | Control apparatus and processing method therefor | |
JP2007214916A (ja) | ネットワークデバイス管理装置及びその探索方法 | |
JP7022508B2 (ja) | 通信装置、通信方法、及びプログラム |