(57)【特許請求の範囲】
【請求項１】
デバイスと通信し、対象デバイスに対して遠隔操作を行うためのタスクを実行するタスク実行装置であって、
複数のタスクを実行する実行手段と、
前記実行手段による実行に失敗したタスクを、前記実行手段により再実行するためのリカバリのためのタスクを生成する生成手段と、
前記実行手段によるタスクの実行が失敗した際に、当該失敗した要因を取得する取得手段と、
前記実行手段によるタスクの実行が失敗した際に、前記取得手段により取得された要因に基づく表示を行うための表示制御手段と、
を有し、
前記取得手段は、実行に失敗した前記タスクの対象デバイスがセキュリティモードに対応しているか否かと、非セキュリティモードによる当該対象デバイスに対する情報の読み出しと書き出しの成否とに基づき判断される要因を取得することを特徴とするタスク実行装置。
【請求項２】
前記生成手段は、前記実行手段による実行に失敗したタスクが周期的に繰り返し実行されるタスクである場合には、当該周期的に繰り返し実行されるタスクの最新の実行結果に基づいて、前記リカバリのためのタスクを生成することを特徴とする請求項１に記載のタスク実行装置。
【請求項３】
前記生成手段は、前記リカバリのためのタスクを生成する際に、タスクの対象デバイスに未実装のパラメータを遠隔操作のために使用しないようにすることを特徴とする請求項１又は２に記載のタスク実行装置。
【請求項４】
前記取得手段は、実行に失敗した前記タスクの対象デバイスがセキュリティモードに対応しており、かつ、非セキュリティモードによる当該対象デバイスに対する情報の書き出しに失敗した場合に、当該対象デバイスのセキュリティレベルによる失敗である旨を示す要因を取得することを特徴とする請求項１乃至３のいずれか１項に記載のタスク実行装置。
【請求項５】
デバイスと通信し、対象デバイスに対して遠隔操作を行うためのタスクを実行するタスク実行方法であって、
複数のタスクをタスク実行装置が有する実行手段により実行する実行ステップと、
前記実行ステップによる実行に失敗したタスクを、前記実行ステップにより再実行するためのリカバリのためのタスクをタスク実行装置が有する生成手段により生成する生成ステップと、
前記実行ステップによるタスクの実行が失敗した際に、当該失敗した要因をタスク実行装置が有する取得手段により取得する取得ステップと、
前記実行ステップによるタスクの実行が失敗した際に、前記取得ステップにより取得された要因に基づく表示を行うための表示制御をタスク実行装置が有する表示制御手段により実行する表示制御ステップと、
を有し、
前記取得ステップは、実行に失敗した前記タスクの対象デバイスがセキュリティモードに対応しているか否かと、非セキュリティモードによる当該対象デバイスに対する情報の読み出しと書き出しの成否とに基づき判断される要因を取得することを特徴とするタスク実行方法。
【請求項６】
前記生成ステップは、前記実行ステップによる実行に失敗したタスクが周期的に繰り返し実行されるタスクである場合には、当該周期的に繰り返し実行されるタスクの最新の実行結果に基づいて、前記リカバリのためのタスクを生成することを特徴とする請求項５に記載のタスク実行方法。
【請求項７】
前記生成ステップは、前記リカバリのためのタスクを生成する際に、タスクの対象デバイスに未実装のパラメータを遠隔操作のために使用しないようにすることを特徴とする請求項５又は６に記載のタスク実行方法。
【請求項８】
前記取得ステップは、実行に失敗した前記タスクの対象デバイスがセキュリティモードに対応しており、かつ、非セキュリティモードによる当該対象デバイスに対する情報の書き出しに失敗した場合に、当該対象デバイスのセキュリティレベルによる失敗である旨を示す要因を取得することを特徴とする請求項５乃至７のいずれか１項に記載のタスク実行方法。
【請求項９】
請求項５乃至８のいずれか１項に記載のタスク実行方法の各ステップをコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タスク実行装置、タスク実行方法、及びコンピュータプログラムに関し、特に、複数のデバイスに対して一括してタスクを実行するために用いて好適なものである。
【背景技術】
【０００２】
近年、コンピュータ及びプリンタをはじめとする各種の周辺デバイスは、その資産を多くのユーザが共有できるようにするために、ローカルエリアネットワーク（ＬＡＮ）によって相互に接続されることが一般的になってきた。
このようなネットワーク環境では、ホストコンピュータからの要求を一括して処理するために、サーバと呼ばれるコンピュータが設置される。例えばプリンタの場合、複数のホストコンピュータからの印刷要求を一括して管理するためにプリンタサーバが設けられる。プリンタサーバは、複数のプリンタが共有するサービスを提供するコンピュータであり、クライアントからの要求に応じてプリンタの動作の設定や変更を行う機能を有するものである。
【０００３】
プリンタサーバの導入以前には、プリンタの動作状態を確認するためには、操作パネルを参照する以外に方法はなかった。しかしながら、多くのユーザで共有するプリンタは、必ずしもユーザが操作するコンピュータの近くに設置されているものではなかった。更に、プリンタの操作パネルは、一般的に表示情報が限られていることや、情報の表示領域が小さいことから、プリンタの操作パネルでは、プリンタの状態を正確に把握することは難しかった。
【０００４】
これらの問題を解決するために、ネットワークに接続されたデバイスの動作を把握することができるネットワークデバイス管理プログラムが導入されるようになってきた（特許文献１を参照）。
ネットワークデバイス管理プログラムの一例としては、ユーザが操作するコンピュータ上で稼動し、画面上からプリンタの操作パネルを確認したり、プリンタの障害発生時にユーザに通知したりするようなソフトウェアが挙げられる。
【０００５】
しかしながら、このようなソフトウェアは、コンピュータ毎にインストールする必要がある。このため、例えば、ネットワークの管理者が複数のユーザのコンピュータを一括して管理している場合には、ソフトウェアのバージョンの管理等に時間かかるといった重大な問題があった。
【０００６】
そこで、最近ではＷＷＷサーバにインストールされ、遠隔地のワークエリアに設置されたデバイスを統合的に管理することが可能なネットワークデバイス管理プログラムも一般的となってきている。
このようなＷＷＷシステムに基づいたネットワークデバイス管理プログラムでは、多数の管理対象デバイスから一括して情報を取得する機能や、多数のデバイスに対して一括して情報を配信する機能を持つものが一般的である。
また、複数デバイスに対して一括して情報を配信する機能を有するネットワークデバイス管理プログラムでは、一部のデバイスに対する処理が失敗した場合、任意のタイミングで処理を再実行することが一般的である。
【０００７】
【特許文献１】特開２０００−１９６６６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、前述した従来のネットワークデバイス管理プログラムにおいて失敗した処理を再実行する場合、次のような問題点があった。
まず、従来のネットワークデバイス管理プログラムでは、任意の複数のデバイスを選択することが可能であるため、機種に依存した情報をデバイスに配信してしまう場合があった。このような場合、自機種に対応しない情報が配信されると、デバイスは、再実行した処理についても必ず失敗してしまうことになる。
【０００９】
また、近年のデバイスには、セキュリティを考慮して、情報の取得（読み取り）は可能であるが、配信（書き込み）を抑止するモード（以下、セキュリティモードと称する）を備えるものもある。このようなデバイスの場合、情報の取得が可能であるため、ネットワークデバイス管理プログラムによるデバイスの探索処理には応答するが、情報を配信することはできない。したがって、このようなデバイスに対して配信処理を再実行した場合は必ず失敗することになる。
【００１０】
更に、従来のネットワークデバイス管理プログラムには、デバイスに対する配信処理を予め設定したスケジュールに従って周期的に実行できるがものがある。このようなネットワークデバイス管理プログラムの場合、周期毎の実行結果が異なるため、各周期の実行結果を元に再実行処理のための情報を生成しても、有効な再実行処理にならないケースがあるといった問題があった。
【００１１】
本発明は、このような問題点に鑑みてなされたものであり、複数のデバイスに対して一括して行ったタスクの実行に失敗し、その実行に失敗したデバイスに対してタスクを再実行するに際し、無駄なタスクが再実行されることを可及的に防止することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のタスク実行装置は、デバイスと通信し、対象デバイスに対して遠隔操作を行うためのタスクを実行するタスク実行装置であって、複数のタスクを実行する実行手段と、前記実行手段による実行に失敗したタスクを、前記実行手段により再実行するためのリカバリのためのタスクを生成する生成手段と、前記実行手段によるタスクの実行が失敗した際に、当該失敗した要因を取得する取得手段と、前記実行手段によるタスクの実行が失敗した際に、前記取得手段により取得された要因に基づく表示を行うための表示制御手段と、を有し、前記取得手段は、実行に失敗した前記タスクの対象デバイスがセキュリティモードに対応しているか否かと、非セキュリティモードによる当該対象デバイスに対する情報の読み出しと書き出しの成否とに基づき判断される要因を取得することを特徴とする。
【００１３】
本発明のタスク実行方法は、デバイスと通信し、対象デバイスに対して遠隔操作を行うためのタスクを実行するタスク実行方法であって、複数のタスクをタスク実行装置が有する実行手段により実行する実行ステップと、前記実行ステップによる実行に失敗したタスクを、前記実行ステップにより再実行するためのリカバリのためのタスクをタスク実行装置が有する生成手段により生成する生成ステップと、前記実行ステップによるタスクの実行が失敗した際に、当該失敗した要因をタスク実行装置が有する取得手段により取得する取得ステップと、前記実行ステップによるタスクの実行が失敗した際に、前記取得ステップにより取得された要因に基づく表示を行うための表示制御をタスク実行装置が有する表示制御手段により実行する表示制御ステップと、を有し、前記取得ステップは、実行に失敗した前記タスクの対象デバイスがセキュリティモードに対応しているか否かと、非セキュリティモードによる当該対象デバイスに対する情報の読み出しと書き出しの成否とに基づき判断される要因を取得することを特徴とする。
【００１４】
本発明のコンピュータプログラムは、前記タスク実行方法の各ステップをコンピュータに実行させることを特徴とする。
【発明の効果】
【００１５】
本発明によれば、実行に失敗したデバイスに対してタスクを再実行するに際し、無駄なタスクが再実行されることを可及的に防止することができる。
【発明を実施するための最良の形態】
【００１６】
以下に、図面を参照しながら、本発明の一実施形態について説明する。
尚、本実施形態では、情報の配信又は取得のターゲットとなるターゲットデバイスと、デバイスに配信する（又はデバイスから取得する）情報と、実行スケジュールとを含んで構成される処理の単位をタスクと称する。また、タスクの処理に失敗したターゲットデバイスに対する再実行のためのタスクをリカバリタスクと称する。
【００１７】
図１は、ネットワークデバイス管理プログラムを含むネットワークデバイス管理システムの構成の一例を示す図である。
図１において、ローカルエリアネットワーク（ＬＡＮ）１００には、ネットワークデバイス管理サーバ１１０と、クライアントＰＣ１２０と、プリンタ１３０と、複合機能デバイス１４０とが接続されている。デバイス管理サーバ１１０は、タスク実行装置の好適な一例である。デバイス管理サーバ１１０は、デバイスの一例であるプリンタ１３０と通信する。デバイス管理サーバ１１０は、様々なタスクを実行することにより、プリンタ１３０に対してネットワークを介した遠隔操作を行う。
ネットワークデバイス管理サーバ１１０には、ネットワークデバイス管理プログラム１１１とＷＷＷサーバプログラム１１２とがインストールされており、クライアントＰＣ１２０には、ＷＷＷブラウザプログラム１２１がインストールされている。
【００１８】
ネットワークデバイス管理サーバ１１０は、プリンタ１３０と複合機能デバイス１４０とを管理対象としている。ユーザは、クライアントＰＣ１２０を操作して、ネットワークデバイス管理サーバ１１０にアクセスする。
ネットワークデバイス管理プログラム１１１と、プリンタ１３０及び複合機能デバイス１４０との間では、ＳＮＭＰ（Simple Network Management Protocol）を利用して通信が行われるものとする。一方、クライアントＰＣ１２０にインストールされているＷＷＷブラウザプログラム１２１とネットワークデバイス管理プログラム１１１との間では、ＨＴＴＰ（HyperText Transfer Protocol）を利用して通信が行われるものとする。尚、以下の説明では、ネットワークデバイス管理サーバ１１０を、デバイス管理サーバ１１０と称し、ネットワークデバイス管理プログラム１１１をデバイス管理プログラム１１１と略称する。更に、プリンタ１３０と複合機能デバイス１４０とを必要に応じてデバイスと総称する。
【００１９】
図２は、デバイス管理プログラム１１１が稼動可能なデバイス管理サーバ１１０のハードウェアの構成の一例を示す図である。尚、本実施形態では、デバイス管理サーバ１１０は、ＰＣ（Personal Computer）を用いて実現することができる。
デバイス管理サーバ１１０は、ＲＯＭ２０１若しくはハードディスク（ＨＤ）２１０に記憶されたデバイス管理プログラム１１１を実行するＣＰＵ２００を備える。ＣＰＵ２００は、システムバス２０３に接続された各デバイスを総括的に制御する。
ＲＡＭ２０２は、ＣＰＵ２００の主メモリやワークエリア等として機能する。
【００２０】
キーボードコントローラ（ＫＢＣ）２０４は、キーボード（ＫＢ）２０８や不図示のポインティングデバイス等からの指示入力を制御する。ＣＲＴコントローラ（ＣＲＴＣ）２０５は、ディスプレイ（ＣＲＴ）２０９への表示を制御する。
ディスクコントローラ（ＤＫＣ）２０６は、ハードディスク（ＨＤ）２１０、フレキシブルディスクコントローラ（ＦＤ）２１１、及びＣＤ−ＲＯＭドライブ（ＣＤ）２１２とのアクセスを制御する。
ネットワークインタフェースカード（ＮＩＣ）２０７は、ＬＡＮ１００を介して、クライアントＰＣ１２０、或いはプリンタ１３０や複合機能デバイス１４０と双方向にデータを授受する。
【００２１】
次に、ネットワークデバイス管理プログラム１１１の構成の一例について説明する。
また、後述する全ての説明において、特に断りのない限り、ハードウェア上の実行の主体はＣＰＵ２００である。一方、ソフトウェア上の制御の主体は、ハードディスク（ＨＤ）２１０に格納されたデバイス管理プログラム１１１である。尚、ＯＳ（Operating System）は、例えば、ウィンドウズ（登録商標）を想定しているが、ＯＳはこれに限るものではない。
また、ネットワークデバイス管理プログラム１１１は、ＣＤ−ＲＯＭ等の記憶媒体に格納された形で供給されても良い。その場合に、ネットワークデバイス管理プログラム１１１は、ＣＤ−ＲＯＭドライブ２１２等によってＣＤ−ＲＯＭ等の記憶媒体から読み取られ、ハードディスク（ＨＤ）２１０にインストールされる。
【００２２】
図３は、デバイス管理サーバ１１０上で動作するデバイス管理プログラム１１１のモジュールの構成の一例を示す図である。
図３において、デバイス管理プログラム１１１は、ＷＷＷサーバプログラム１１２上で稼動し、クライアントＰＣ１２０上のＷＷＷブラウザプログラム１２１とＨＴＴＰを利用して通信を行う。一方、デバイス管理プログラム１１１と、プリンタ１３０及び複合機能デバイス１４０とはＳＮＭＰを利用して通信する。
【００２３】
全体制御モジュール３００は、ＷＷＷサーバプログラム１１２から受信したコマンドを解析する。更に、全体制御モジュール３００は、コマンドを解析した結果に応じて、スケジューラモジュール３０１、タスク管理モジュール３０２、デバイス管理モジュール３０５、デバイス探索モジュール３０８、又はユーザ管理モジュール３１０に制御を振り分ける。また、全体制御モジュール３００は、これらのモジュール３０１、３０２、３０５、３０８、３１０で生成されたＨＴＭＬデータをＷＷＷサーバプログラムに１１２に送信する。
【００２４】
スケジューラモジュール３０１は、デバイス管理プログラム１１１において登録可能な処理の単位であるタスクをユーザの設定に応じて起動及び停止するためのモジュールである。
タスク管理モジュール３０２は、タスクの登録、編集、削除等の制御と、タスクの状態の管理を行うためのモジュールである。また、タスク管理モジュール３０２は、登録タスクリストモジュール３０３によって登録されているタスクの一覧表示を行う。更に、タスク管理モジュール３０２は、実行タスクリストモジュール３０４によって実行されているタスクの実行状態の一覧表示を行う。
【００２５】
デバイス管理モジュール３０５は、管理対象のデバイスから情報を取得したり、管理対象のデバイスに対して設定を行ったりするためのタスクの生成と、そのタスクの生成に関連するＵＩの表示等の制御を行うためのモジュールである。また、デバイス管理モジュール３０５は、デバイスから情報を取得するタスクを生成するために、デバイス設定取得モジュール３０６を制御する。更に、デバイス管理モジュール３０５は、デバイスに情報を配信するタスクを生成するために、デバイス設定配信モジュール３０７を制御する。
【００２６】
デバイス探索モジュール３０８は、ＬＡＮ１００等のネットワークに接続されたデバイスの探索を行うタスクの生成と、そのタスクの生成に関連するＵＩの表示等の制御を行うためのモジュールである。デバイス探索モジュール３０８は、デバイスリストモジュール３０９を制御し、探索したデバイスの一覧表示、情報更新、削除等を行うためのデバイスリストを表示する。
ユーザ管理モジュール３１０は、デバイス管理プログラム１１１にアクセスすることが可能なユーザの登録、編集、及び削除を行うためのモジュールである。
ＳＮＭＰモジュール３１１は、デバイス管理モジュール３０５やデバイス探索モジュール３０８の指示によるＳＮＭＰコマンドの送信と、デバイスからのＳＮＭＰによるレスポンスの受信を行うためモジュールである。
データベース３１２には、各種のタスク情報と、ユーザ情報と、デバイス管理プログラム１１１が動作するために必要なシステム情報等が格納される。尚、タスクの作成時、及びタスクの実行時に作成するデータテーブルに関する情報の詳細については後述する。
【００２７】
図４は、デバイスを管理するタスクを生成する際のデバイス管理プログラム１１１における動作の一例を説明するフローチャートである。
まず、ステップＳ４００において、デバイス管理モジュール３０５は、ユーザの操作に基づいて、生成するタスクのタイプを決定して、ステップＳ４０１に移行する。
本実施形態では、ユーザは、デバイスに情報を配信するタスク（以下、デバイス設定配信タスクと称する）と、デバイスから情報を取得するタスク（以下、デバイス設定取得タスクと称する）との何れか一方を選択することが可能である。
尚、ステップＳ４００においてデバイス設定配信タスクが、生成するタスクとして決定された場合、デバイス管理モジュール３０５を介して、デバイス設定配信モジュール３０７においてタスクの生成が行われる。一方、ステップＳ４００においてデバイス設定取得タスクが生成するタスクとして決定された場合、デバイス管理モジュール３０５を介して、デバイス設定取得モジュール３０６においてタスクの生成が行われる。
【００２８】
次に、ステップＳ４０１において、デバイス管理モジュール３０５は、デバイス探索モジュール３０８において探索され、データベース３１２に格納されているデバイスから任意のターゲットデバイスを、ユーザの操作に基づいて決定する。そして、ステップＳ４０２に移行する。
図５は、デバイス選択画面の一例を示す図である。このデバイス選択画面は、図４のステップＳ４０１においてデバイスを選択するためのものであり、デバイス管理プログラム１１１の動作によって表示される。
図５において、ターゲットデバイスリスト表示部６００には、デバイス探索モジュール３０８によって探索され、データベース３１２に格納されている選択対象のデバイスの情報が一覧表示される。
ターゲットデバイスリスト表示部６００には、選択対象のデバイスの名称であるデバイス名と、製品名と、ＩＰアドレスと、ＭＡＣアドレスと、デバイスの情報の更新日時とが表示される。ユーザは、デバイス選択チェックボックス６０１をチェックすることによって任意の複数のデバイスを選択することができる。
【００２９】
次に、ステップＳ４０２において、デバイス管理モジュール３０５は、ステップＳ４００で決定されたタスクがデバイス設定配信タスクであるか否かを判定する。この判定の結果、ステップＳ４００で決定されたタスクがデバイス設定配信タスクである場合（ＹＥＳの場合）にはステップＳ４０３に移行する。一方、ステップＳ４００で決定されたタスクがデバイス設定配信タスクでなく、デバイス設定取得タスクである場合（ＮＯの場合）にはステップＳ４０５に移行する。
【００３０】
ステップＳ４０３に進むと、デバイス管理モジュール３０５は、デバイスに情報を配信するために必要な認証情報を設定し、ステップＳ４０４に移行する。
次に、ステップＳ４０４において、デバイス設定配信モジュール３０７は、デバイスに配信する情報の編集を行い、ステップＳ４０６に移行する。
【００３１】
図６は、デバイス設定編集画面の一例を示す図である。このデバイス設定編集画面は、図４のステップＳ４０４においてデバイスに配信する情報を編集するためのものであり、デバイス管理プログラム１１１の動作によって表示される。
図６おいて、配信情報入力部７００には、デバイス名、設置場所、管理者名、管理者連絡先、管理者コメント、サービス担当者名、サービス担当者連絡先、サービス担当者コメント等、デバイスに配信する情報を入力することが可能である。尚、デバイス設定編集画面では、ユーザが情報選択チェックボックス７０１をチェックすることによって配信する情報を選択することが可能である。
【００３２】
図４の説明に戻り、ステップＳ４０５に進むと、デバイス設定取得モジュール３０６は、デバイスから取得する情報を選択し、ステップＳ４０６に移行する。
【００３３】
ステップＳ４０６に進むと、スケジューラモジュール３０１は、ステップＳ４０３、Ｓ４０４で生成された配信情報、又はステップＳ４０５で生成された取得情報に対する実行スケジュールを設定して、図４のフローチャートによる処理を終了する。
【００３４】
図７は、タスク登録設定画面の一例を示す図である。このタスク登録設定画面は、図４のステップＳ４０６において、スケジュールの設定をはじめとした"タスクの登録時に必要な情報"を設定するためのものであり、デバイス管理プログラム１１１の動作によって表示される
図７において、タスク設定入力部８００には、タスクの名称として任意の文字列が設定可能である。また、タスク設定入力部８００には、タスクに対するコメントを入力できる。
スケジュール設定部８０１には、タスクを実行する実行スケジュールを設定することができる。本実施形態では、デバイス管理プログラム１１１は、実行スケジュールとして、予め決められた日時だけでなく登録したタスクを繰り返し実行する周期実行の設定も可能である。
実行結果通知先入力部８０２には、タスクの終了を通知する電子メールアドレスを入力することができる。本実施形態では、デバイス管理プログラム１１１は、タスクの終了時に実行結果通知先入力部８０２で指定した宛先に対してタスクの実行結果を通知することができる。
【００３５】
尚、図４のフローチャートで生成されたタスクは、タスク管理モジュール３０２を介して登録タスクリストモジュール３０３により登録タスクリストに登録される。更に、登録されたタスクは、ステップＳ４０６で設定された実行スケジュールに従って、スケジューラモジュール３０１から起動され、実行タスクリストモジュール３０４により実行タスクリストに追加される。また、タスクが完了すると、タスクは、タスク管理モジュール３０２により実行タスクリストモジュール３０４を介してデータベース３１２に格納される。
【００３６】
図８は、タスクを登録するときにデバイス管理プログラム１１１によって生成されるデータテーブルの一例を示す図である。
図８（ａ）は、ユーザ管理モジュール３１０によって生成されるユーザ管理テーブルの一例を示す図である。ユーザ管理テーブルは、ユーザＩＤ５００とユーザ名５０１とから構成される。ユーザ名５０１はユーザによって入力される任意の文字列であり、ユーザＩＤ５００はユーザ管理モジュール３１０によって割り当てられる識別子である。
図８（ｂ）は、登録タスクテーブルの一例を示す図である。登録タスクテーブルは、デバイス設定取得モジュール３０６やデバイス設定配信モジュール３０７によって生成されるＵＩ（User Interface）に対してユーザが行う操作に基づいて生成される。
【００３７】
登録タスクテーブルにおいて、タスクＩＤ５０３は、デバイス設定取得モジュール３０６やデバイス設定配信モジュール３０７により生成された情報に対してタスク管理モジュール３０２が割り当てる識別子である。
ユーザＩＤ５０４には、図８（ａ）に示すユーザ管理テーブルに登録されているユーザＩＤ５００の中から、タスクを生成したユーザのユーザＩＤが登録される。
タスクタイプ５０５には、生成したタスクのタイプに応じた識別子（デバイス設定配信（＝１）、デバイス設定取得（＝２）等）が設定される。
【００３８】
タスク名５０６には、図７に示したタスク設定入力部８００においてタスクの名称として入力された文字列が登録される。また、コメント５０７には、図７に示したタスク設定入力部８００においてタスクに対するコメントとして入力された文字列が登録される。更に、電子メールアドレス５０８には、図７に示した実行結果通知先入力部８０２において入力された"タスクの実行結果を通知するための電子メールアドレス"が登録される。
データ５１０、５１１は、図６に示したデバイス設定編集画面において入力され、タスクを実行することによりデバイスに設定される値が登録される。尚、デバイスから設定を取得するタスクの場合、このデータ５１０、５１１の値にはＮＵＬＬが登録される。
【００３９】
図８（ｃ）は、ターゲットデバイス管理テーブルの一例を示すである。図５に示したデバイス選択画面において選択された各タスクのターゲットデバイスを管理するテーブルである。
ターゲットデバイス管理テーブルにおいて、タスクＩＤ５１２は、図８（ｂ）に示す登録タスクテーブルに登録されているタスクＩＤ５０３と同意のものである。
デバイスＩＤ５１３は、デバイスの識別子であり、図５に示すデバイス選択画面においてタスク作成時に選択されたデバイスを識別するためのものである。尚、図８（ｃ）に示す例では、例えば、「０１」のタスクＩＤが割り当てられたタスクのターゲットデバイスとしてデバイスＩＤが「１０００」、「１００１」によって識別されるデバイスが選択されたことになる。すなわち、デバイスＩＤが「１０００」、「１００１」によって識別されるデバイスに対して一括してタスクが実行される。
【００４０】
図９は、配信に失敗したタスクを再実行するためのリカバリタスクを生成する際のデバイス管理プログラム１１１における動作の一例を説明するフローチャートである。
まず、ステップＳ９００において、デバイス管理モジュール３０５は、ユーザによる操作に基づいて、リカバリの対象となるタスクを決定し、ステップＳ９０１に移行する。具体的に説明すると、図１６に示す実行タスクリスト画面において任意のタスクの［リカバリ＞＞］リンクがユーザによって押下されることによりリカバリの対象となるタスクが選択され、ステップＳ９０１に移行する。図１６の詳細については後述する。
【００４１】
次に、ステップＳ９０１において、デバイス管理モジュール３０５は、ステップＳ９００で決定したタスクが、周期的に繰り返し実行する周期実行タスクであるか否かを判定する。この判定の結果、ステップＳ９００で決定したタスクが周期実行タスクである場合（ＹＥＳの場合）にはステップＳ９０２に移行する。一方、ステップＳ９００で決定したタスクが周期実行タスク以外の場合（ＮＯの場合）にはステップＳ９０４に移行する。
ステップＳ９０２に進むと、デバイス管理モジュール３０５は、ステップＳ９００で決定され、ステップＳ９０１で周期実行タスクであると判定されたタスクの実行結果が最新の周期実行タスクの結果であるか否かを判定する。
【００４２】
この判定の結果、該当するタスクの実行結果が最新の実行結果である場合（ＹＥＳの場合）にはステップＳ９０４に移行する。一方、該当するタスクの実行結果が最新の実行結果以外の場合（ＮＯの場合）にはステップＳ９０３に移行する。
ステップＳ９０３に進むと、デバイス管理モジュール３０５は、ステップＳ９００で決定したタスクの最も新しい周期実行の結果を参照して、ステップＳ９０４に移行する。
ステップＳ９０４に進むと、デバイス管理モジュール３０５は、ステップＳ９００で決定したタスクの実行結果、又はステップＳ９０３で参照したタスクの実行結果を参照し、タスクの処理に失敗したデバイスの台数（ｎ台）を検出して記憶する。
【００４３】
次に、ステップＳ９０５において、デバイス管理モジュール３０５は、ステップＳ９０４で検出した"タスクの処理に失敗したデバイス"が１台以上存在するか否かを判定する。この判定の結果、タスクの処理に失敗したデバイスが１台以上存在する場合（ＹＥＳの場合）にはステップＳ９０６に移行する。一方、タスクの処理に失敗したデバイスが存在しない場合（ＮＯの場合）には、図９のフローチャートによる処理を終了する。
【００４４】
ステップＳ９０６に進むと、デバイス管理モジュール３０５は、タスクの処理に失敗したデバイスをカウントするためのインデックスｉを０で初期化し、ステップＳ９０７に移行する。
次に、ステップＳ９０７において、デバイス管理モジュール３０５は、インデックスｉが、タスクの処理に失敗したバイスの数ｎよりも小さいか否かを判定する。この判定の結果、インデックスｉが、タスクの処理に失敗したバイスの数ｎよりも小さい場合（ＹＥＳの場合）には、ステップＳ９０８に移行する。一方、インデックスｉが、タスクの処理に失敗したバイスの数ｎ以上である場合（ＮＯの場合）には、図９のフローチャートによる処理を終了する。
【００４５】
ステップＳ９０８に進むと、デバイス管理モジュール３０５は、配信できなかったバラメータがデバイスに実装されているものか否かを判断し、実装されていない場合には、そのパラメータを含むタスクをリカバリの対象外とする。そして、ステップＳ９０９に移行する。このステップＳ９０８の詳細については、図１０を用いて後述する。
次に、ステップＳ９０９において、デバイス管理モジュール３０５は、リカバリの対象となるタスクのタイプがデバイスに情報を配信するタスクであるか否かを判定する。この判定の結果、リカバリの対象となるタスクのタイプがデバイスに情報を配信するタスクである場合には、ステップＳ９１０に移行する。一方、リカバリの対象となるタスクのタイプがデバイスに情報を配信するタスク以外の場合にはステップＳ９１１に移行する。
次に、ステップＳ９１０において、デバイス管理モジュール３０５は、デバイスがセキュリティモードに対応している場合の処理を行う。このステップＳ９１０の詳細については、図１１を用いて後述する。
次に、ステップＳ９１１において、デバイス管理モジュール３０５は、インデックスｉをインクリメントしてステップＳ９０７に戻る。
【００４６】
図１０は、デバイスが実装していない情報を含むタスクをリカバリの対象外とするように制御する際のデバイス管理プログラムにおける動作の一例を説明するフローチャートである。この図１０のフローチャートは、図９のステップＳ９０８を詳細に説明するものである。
まず、ステップＳ１０００において、デバイス管理モジュール３０５は、全体制御モジュール３００を介してデータベース３１２に格納されたタスク単位の実行結果を参照する。
次に、ステップＳ１００１において、デバイス管理モジュール３０５は、ステップＳ１０００で参照したタスクの実行結果が成功であるか否かを判定する。この判定の結果、ステップＳ１０００で参照したタスクの実行結果が成功である場合（ＹＥＳの場合）には、図１０のフローチャートによる処理を終了する。一方、ステップＳ１０００で参照したタスクの実行結果が失敗である場合（ＮＯの場合）には、ステップＳ１００２に移行する。
【００４７】
ステップＳ１００２に進むと、デバイス管理モジュール３０５は、ステップＳ１０００で参照したタスクの実行結果に基づいて、タスクの処理に失敗したデバイス（ｎ台）を検出して記憶する。
次に、ステップＳ１００３において、デバイス管理モジュール３０５は、タスクの処理に失敗したデバイスの数をカウントするためのインデックスｉを０で初期化する。
次に、ステップＳ１００４において、デバイス管理モジュール３０５は、インデックスｉが、タスクの処理に失敗したデバイスの数（ｎ台）以下であるか否かを判定する。この判定の結果、インデックスｉが、タスクの処理に失敗したデバイスの数（ｎ台）以下である場合（ＹＥＳの場合）にはステップＳ１００５に移行する。一方、インデックスｉが、タスクの処理に失敗したデバイスの数（ｎ台）よりも大きい場合（ＮＯの場合）には、図１０のフローチャートによる処理を終了する。
【００４８】
ステップＳ１００５に進むと、デバイス管理モジュール３０５は、ｉ番目のデバイスに対する配信に失敗した情報（パラメータ）の数（ｌ個）を検出する。
次に、ステップＳ１００６において、デバイス管理モジュール３０５は、配信に失敗した情報をカウントするためのインデックスｊを０で初期化する。
次に、ステップＳ１００７において、デバイス管理モジュール３０５は、インデックスｊが、配信に失敗した情報の数ｌ個以下であるか否かを判定する。この判定の結果、インデックスｊが、配信に失敗した情報の数ｌ個以下である場合（ＹＥＳの場合）にはステップＳ１００９に移行する。一方、インデックスｊが、配信に失敗した情報の数ｌ個よりも大きい場合（ＮＯの場合）にはステップＳ１００８に移行する。
【００４９】
ステップＳ１００８に進むと、デバイス管理モジュール３０５は、タスクの処理に失敗したデバイスの数をカウントするためのインデックスｉをインクリメントし、ステップＳ１００４に戻る。
一方、ステップＳ１００９に進むと、デバイス管理モジュール３０５は、ｊ番目の情報における"配信に失敗した要因（未配信の要因）"を、例えば、後述する図１９（ｂ）のタスク実行結果管理テーブルを参照して確認する。
次に、ステップＳ１０１０において、デバイス管理モジュール３０５は、ステップＳ１００９における確認の結果に基づいて、ｊ番目の情報が、デバイスに実装されていない情報であるか否か（リカバリが可能であるか否か）を判定する。
【００５０】
この判定の結果、ｊ番目の情報が、デバイスに実装している情報である場合（ＮＯの場合）には、ステップＳ１０１１に移行する。一方、ｊ番目の情報が、デバイスに実装されていない情報である場合（ＹＥＳの場合）には、ステップＳ１０１２に移行する。
尚、情報がデバイスに実装されているかどうかを判定する手段としては、例えば、図１４を用いて後述するＳＮＭＰ Ｖ１パケットのエラーステータスのフィールド１４０２を参照することにより可能である。すなわち、情報の配信のレスポンスとしてデバイスから受け取るＳＮＭＰ Ｖ１パケットのエラーステータスのフィールド１４０２にNoSuchNameが設定されていた場合は情報がデバイスに実装されていないと判断できる。
【００５１】
ステップＳ１０１１に進むと、デバイス管理モジュール３０５は、ステップＳ１０１０でデバイスに実装していると判断した情報をリカバリタスクの対象とする。そしてステップＳ１０１３に移行する。
一方、ステップＳ１０１２に進むと、デバイス管理モジュール３０５は、ステップＳ１０１０でデバイスに実装していないと判断した情報をリカバリタスクの対象外とする。
次に、ステップＳ１０１３において、デバイス管理モジュール３０５は、配信に失敗した情報をカウントするためのインデックスｊをインクリメントして、ステップ１００７に戻る。
【００５２】
図１１は、デバイスに情報を配信するタスクのリカバリタスクを生成する際のデバイス管理プログラム１１１における動作の一例を説明するフローチャートである。この図１１のフローチャートは、セキュリティモードに対応したデバイスに対するリカバリタスクを生成する動作を示すフローチャートであり、図９のステップＳ９１０の動作を詳細に説明するものである。
尚、本実施形態においては、セキュリティモードに対応したデバイスの製品名の一覧が、データベース３１２に予め保存されているものとする。
【００５３】
まず、ステップＳ１１００において、デバイス管理モジュール３０５は、情報を配信するタスクの処理に失敗したデバイス（ｎ台）を検出する。
次に、ステップＳ１１０１において、デバイス管理モジュール３０５は、タスクの処理に失敗したデバイスの数をカウントするためのインデックスｉを０で初期化する。
次に、ステップＳ１１０２において、デバイス管理モジュール３０５は、インデックスｉが、タスクの処理に失敗したデバイスの数（ｎ台）以下であるか否かを判定する。この判定の結果、インデックスｉが、タスクの処理に失敗したデバイスの数（ｎ台）以下である場合（ＹＥＳの場合）には、ステップＳ１１０３に移行する。一方、インデックスｉが、タスクの処理に失敗したデバイスの数（ｎ台）よりも大きい場合には、図１１のフローチャートによる処理を終了する。
【００５４】
ステップＳ１１０３に進むと、デバイス管理モジュール３０５は、ｉ番目のデバイスの製品名を取得する。
次に、ステップＳ１１０４において、デバイス管理モジュール３０５は、ｉ番目のデバイスがセキュリティモードに対応しているか否かを判断するために、データベース３１２に格納されているセキュリティモードに対応した製品名の一覧を参照する。
次に、ステップＳ１１０５において、デバイス管理モジュール３０５は、ｉ番目のデバイスがセキュリティモードに対応しているか否かを判定する。具体的にデバイス管理モジュール３０５は、例えば、ステップＳ１１０３で取得した製品名が、ステップＳ１１０４で参照した"セキュリティモードに対応した製品名の一覧"に含まれているか否かを確認する。
【００５５】
この判定の結果、ｉ番目のデバイスがセキュリティモードに対応している場合（ＹＥＳの場合）には、ステップＳ１１０６に移行する。一方、ｉ番目のデバイスがセキュリティモードに対応していない場合（ＮＯの場合）には、ステップＳ１１０７に移行する。
ステップＳ１１０６に進むと、デバイス管理モジュール３０５は、ｉ番目のデバイスにセキュリティモード属性を割り当ててステップＳ１１０７に移行する。尚、セキュリティモード属性とは、デバイスがセキュリティモードに対応していることを示す属性である。
ステップＳ１１０７に進むと、デバイス管理モジュール３０５は、インデックスｉをインクリメントし、ステップＳ１１０２に戻る。
【００５６】
図１２は、セキュリティモード属性が与えられたデバイスに対してリカバリタスクを実行する際のネットワークデバイス管理システムにおける動作の一例を説明するフローチャートである。
図２０は、セキュリティモードのデバイスの仕様の一例を示した図である。
ネットワーク機器の遠隔操作及び管理を行うネットワーク管理プロトコルには、SNMPV1とSNMPV3とがある。本実施形態では、SNMPV3をセキュリティモードであると規定する。
それぞれのセキュリティレベルにおいて、SNMPV1及びSNMPV3のそれぞれのプロトコルで出来る操作が定義されている。セキュリティレベルが高い場合は、SNMPV1でのデバイス管理サーバからデバイスへの操作を完全に禁止し、SNMPV3でのデバイス管理サーバからデバイスへのMIBの読み書きを許す。セキュリティレベルが中位であれば、SNMPV1でのデバイスからのMIBの読み出しを許可し、SNMPV3での読み書きを許可する。セキュリティレベルが低い場合には、SNMPV1及びSNMPV3でのデバイスへのMIBの読み書きを許可する。このように、デバイスは、様々なセキュリティレベルに設定されうる。
【００５７】
まず、ステップＳ１２００において、タスク管理モジュール３０２は、図１１に示した動作を経てデータベース３１２に格納されたセキュリティモード属性に関する情報を参照する。
次に、ステップＳ１２０１において、タスク管理モジュール３０２は、ステップＳ１２００における参照の結果に基づいて、対象となる情報を配信するデバイスがセキュリティモードに対応しているか否かを判定する。
この判定の結果、対象となる情報を配信するデバイスがセキュリティモードに対応している場合（Ｙｅｓの場合）には、ステップＳ１２０２に移行する。一方、対象となる情報を配信するデバイスがセキュリティモードに対応していない場合には、後述するステップＳ１２０８に移行する。
【００５８】
ステップＳ１２０２に進むと、タスク管理モジュール３０２は、図６に示したデバイス設定編集画面において配信のために指定された情報を、デバイス（例えば、複合機能デバイス１４０）から読み出すための処理を行う。すなわち、ＳＮＭＰモジュール３１１は、GetRequestパケットをデバイスに送信する。
次に、ステップＳ１２０３において、デバイスは、ステップＳ１２０２で送信されたGetRequestパケットを受信する。
次に、ステップＳ１２０４において、デバイスは、GetRequestパケットに応答するため、指定されたＭＩＢ（Management Information Base）オブジェクトの値をデバイス管理サーバ１１０に通知する。この通知は、GetResponseパケットをデバイス管理サーバ１１０に送信することにより行われる。
【００５９】
次に、ステップＳ１２０５において、ＳＮＭＰモジュール３１１は、ステップＳ１２０４で送信されたGetResponseを受信する。
次に、ステップＳ１２０６において、ＳＮＭＰモジュール３１１は、ステップＳ１２０５で受信したGetResponseパケットを解析し、エラーステータスのフィールドを確認する。この確認により、デバイスから情報を正常に受信できたかどうかの判定が行われる。
【００６０】
ここでＳＮＭＰ Ｖ１パケットについて説明する。図１３は、ＳＮＭＰ Ｖ１パケットの構成の一例を示す図である。
図１３において、フィールド１４００には、ＰＤＵ（Protocol Data Unit）タイプに応じた値が設定される。
GetRequestの場合には「０」が、GetNextRequestの場合には「１」が、GetResponseの場合には「２」が、SetRequestの場合には「３」が、このフィールド１４００に設定される。
【００６１】
フィールド１４０１には、リクエスト識別子が格納される。リクエスト識別子とは、ＳＮＭＰの要求パケットと応答パケットとを一意に識別するための値である。
フィールド１４０２には、エラーステータスが格納される。ＳＮＭＰ Ｖ１の場合、エラーステータスとして、５つのステータスが定義されている。このうち、NoSuchNameは、要求されたＭＩＢの情報がデバイスに実装されていない場合の応答であり、本実施形態では、該当する情報がデバイスに実装されているか否かを判定するために用いられる。
フィールド１４０３には、エラー位置番号が格納される。エラー位置番号とは、エラーが発生したＭＩＢオブジェクトを特定するための情報である。
フィールド１４０４には、管理情報が格納される。このフィールド１４０４には、ＭＩＢオブジェクトとその値とが複数格納される。
【００６２】
図１２の説明に戻り、ステップＳ１２０６において、エラーステータスのフィールド１４０２の確認の結果、デバイスから情報を正常に受信できず、デバイスからの情報の取得に失敗したと判定した場合（ＮＯの場合）には、ステップＳ１２０７に移行する。一方、デバイスから情報を正常に受信でき、デバイスからの情報の取得に成功した場合（ＹＥＳの場合）には、ステップＳ１２０８に移行する。
ステップＳ１２０７に進むと、タスク管理モジュール３０２は、ステップＳ１２０６における検出結果に応じたエラー情報をデータベース３１２に格納し、図１２のフローチャートによる処理を終了する。
【００６３】
一方、ステップＳ１２０８に進むと、ＳＮＭＰモジュール３１１は、ステップＳ１２０６において取得が成功したと判定した情報を図６に示したデバイス設定編集画面で入力した値に変更するために、SetRequestパケットをデバイスに送信する。そして、ステップＳ１２０９に移行する。
次に、ステップＳ１２０９において、デバイスは、ステップＳ１２０８で送信されたSetRequestパケットを受信する。
次に、ステップＳ１２１０において、デバイスは、ステップＳ１２０９で受信したSetRequestパケットに対するGetResponseパケットをデバイス管理サーバ１１０に送信する。
【００６４】
次に、ステップＳ１２１１において、ＳＮＭＰモジュール３１１は、ステップＳ１２１０で送信されたGetResponseパケットを受信する。
次に、ステップＳ１２１２では、ＳＮＭＰモジュール３１１は、ステップＳ１２１１で受信したGetResponseパケットのエラーステータスのフィールド１４０２を確認する。この確認により、デバイスへの情報の配信に成功したか否かを判定する。この判定の結果、情報の配信に失敗した場合（ＮＯの場合）には、ステップ１２１５に移行する。
尚、前述したSetRequest、及び、GetRequest等のコマンドは全て、非セキュリティモード（SNMPV1）にて送信されるものとする。
【００６５】
ステップＳ１２１５に進むと、タスク管理モジュール３０２は、ステップＳ１２０１において、対象となる情報を配信するデバイスがセキュリティモードに対応していると判定されたか否か（ＹＥＳの判断がされたか否か）を判定する。この判定の結果、ステップＳ１２０１においてＹＥＳの判断がされたと判定した場合には、ステップＳ１２１３に進む。デバイスがセキュリティモードに対応しているので、セキュリティモードではフルアクセスが許されており、非セキュリティモードでは読みだしは許されているが、書き込みが許されていないはずであると判定されるためである。
【００６６】
一方、ステップＳ１２０１においてＮＯの判断がされたと判定した場合には、ステップＳ１２０７へ進む。そもそも、デバイスはセキュリティモードに対応していないため、セキュリティモードとセキュリティレベルとを要因とするエラーであるとは考えられないためである。
すなわち、実行したタスクの操作対象となるデバイスが以下の場合には、実行したタスクはセキュリティ上の原因で失敗したと判定することになる。すなわち、セキュリティモードに対応しており、尚且つ非セキュリティモードにおける設定値であるＭＩＢの書き込みは失敗し、尚且つ非セキュリティモードにおけるＭＩＢの読み出しが成功したら、実行したタスクはセキュリティ上の原因で失敗したと判定される。
一方、ステップＳ１２１２において情報の配信に成功した場合（ＹＥＳの場合）には、ステップＳ１２１４に移行する。
【００６７】
ステップＳ１２１３に進むと、ステップＳ１２０６において情報の取得には成功しているが、ステップＳ１２１２において情報の配信に失敗していることになる。そこで、タスク管理モジュール３０２は、デバイスがセキュリティモードで稼動している可能性があると判断し、図１２のフローチャートによる処理を終了する。
一方、ステップＳ１２１４に進むと、タスク管理モジュール３０２は、情報の配信が成功したと判断し、情報の配信が成功したことを、タスクの実行結果としてデータベース３１２に記録し、図１２のフローチャートによる処理を終了する。
尚、ステップＳ１２１３、Ｓ１２１４における判断の結果は、データベース３１２に格納され、後述する図１８に示す個別デバイス詳細表示画面のサブウィンドウのタスク実行結果表示領域１８００に表示されるメッセージに反映される。
【００６８】
図１４は、周期的に繰り返し実行される周期実行タスクのリカバリタスクを生成する際のデバイス管理プログラム１１１における動作の一例を説明するフローチャートである。この図１４のフローチャートは、図９におけるステップＳ９００からステップＳ９０３の処理の流れを詳細に説明するものである。
【００６９】
まず、ステップＳ１３００において、タスク管理モジュール３０２は、データベース３１２に格納されたタスクの実行スケジュールを参照する。
次に、ステップＳ１３０１において、タスク管理モジュール３０２は、ステップＳ１３００で参照した実行スケジュールに基づいて、リカバリの対象となるタスクが周期実行タスクであるか否かを判定する。この判定の結果、リカバリの対象となるタスクが周期実行タスクである場合（ＹＥＳの場合）にはステップＳ１３０２に移行する。一方、リカバリの対象となるタスクが周期実行タスクでない場合（ＮＯの場合）には、図１４のフローチャートによる処理を終了する。
【００７０】
ステップＳ１３０２に進むと、タスク管理モジュール３０２は、リカバリの対象となるタスクの登録時に割り当てられたタスクＩＤと同じＩＤを持つタスクの実行結果を検出することで、リカバリの対象となるタスクの各周期の実行結果を検出する。
次に、ステップＳ１３０３において、タスク管理モジュール３０２は、ステップＳ１３０２で検出した各周期の実行結果の完了時刻を比較し、最新の実行結果を検出する。
次に、ステップＳ１３０４において、タスク管理モジュール３０２は、タスクの実行結果を参照することで、タスクの処理に失敗したターゲットデバイスがあるか否かを判定する。この判定の結果、タスクの処理に失敗したターゲットデバイスがある場合（ＹＥＳの場合）には、ステップＳ１３０５に移行する。一方、タスクの処理に失敗したターゲットデバイスがない場合（ＮＯの場合）には、図１４のフローチャートによる処理を終了する。
ステップＳ１３０５に進むと、タスク管理モジュール３０２は、周期実行タスクの最新の実行結果に基づいてリカバリタスクを生成し、図１４のフローチャートによる処理を終了する。
【００７１】
図１５は、登録タスクリスト画面の一例を示す図である。この登録タスクリスト画面は、タスク管理モジュール３０２が登録タスクリストモジュール３０３を制御することにより生成される
図１５において、登録タスク情報リスト表示部１５００には、デバイス管理モジュール３０５やデバイス探索モジュール３０８などにより生成され、データベース３１２に格納されている登録済みの全てのタスク情報が一覧表示される。
タスク名表示部１５０１には、図７に示したタスク登録設定画面のタスク設定入力部８００に入力されたタスクの名称が表示される。タスク名表示部１５０１には、［編集＞＞］リンクが表示され、このリンクがユーザによって押下されることにより、図５に示したデバイス選択画面が表示される。尚、［編集＞＞］リンクの押下により表示されたデバイス選択画面の初期状態では、タスク作成時に選択したデバイスが選択済みとなっている。
【００７２】
前述したように、本実施形態におけるデバイス管理プログラム１１１の場合、ユーザは、デバイス設定配信タスクとデバイス設定取得タスクと称するとの何れか一方を選択することができる。よって、機能名表示部１５０２には、「デバイス設定配信」又は「デバイス設定取得」が表示される。
登録者表示部１５０３には、ユーザ管理モジュール３１０によって管理されているユーザのうち、タスクを作成したユーザの名称が表示される。
実行日時表示部１５０４には、スケジューラモジュール３０１によってタスクが起動された日時、又は、タスクが起動される予定の日時が表示される。
実行状態表示部１５０５には、タスクの登録状態に応じて「実行待ち」、「実行済み」、「一時停止中」等が表示される。
【００７３】
図１６は、実行タスクリスト画面の一例を示す図である。この実行タスクリスト画面は、タスク管理モジュール３０２が実行タスクリストモジュール３０４を制御することにより生成される。
図１６において、実行タスク情報リスト表示部１６００には、デバイス設定取得モジュール３０６やデバイス設定配信モジュール３０７等により生成されたタスクのうち、実行済み、又は実行中のタスクが一覧表示される。
タスク名表示部１６０１には、図７に示したタスク登録設定画面のタスク設定入力部８００において入力されたタスクの名称が表示される。
【００７４】
実行状態表示部１６０２には、タスクの実行状態に応じて、「実行中」、「中止終了」、「正常終了」、「エラー終了」等の実行状態を示す文字列が表示される。実行状態表示部１６０２において表示される"実行状態を示す文字列"にはリンクが張られており、このリンクを押下することにより、図１７に示す実行タスク詳細表示画面がサブウィンドウにて表示される。また、実行状態を示す文字列が「エラー終了」の場合、右側に［リカバリ＞＞］リンクが表示される。このリンクがユーザによって押下されることにより、図５に示すデバイス選択画面が表示される。
［リカバリ＞＞］リンクの押下により表示されたデバイス選択画面では、タスクの実行に失敗したデバイスのうち、図９に示した処理を経て、リカバリの対象となったデバイスが初期状態で選択済みとなっている。
【００７５】
前述したように、本実施形態におけるデバイス管理プログラム１１１の場合、ユーザは、デバイス設定配信タスクとデバイス設定取得タスクと称するとの何れか一方を選択することができる。よって、機能名表示部１６０３には、「デバイス設定配信」又は「デバイス設定取得」が表示される。
登録者表示部１６０４には、ユーザ管理モジュール３１０によって管理されているユーザのうち、タスクを作成したユーザの名称が表示される。
実行日時表示部１６０５には、スケジューラモジュール３０１によってタスクが起動された日時が表示される。
【００７６】
図１７は、実行タスク詳細表示画面の一例を示す図である。この実行タスク詳細表示画面は、図１６に示した実行タスクリスト画面の実行状態表示部１６０２の"実行状態を示す文字列"が押下されることにより、サブウィンドウにて表示される。
【００７７】
図１７において、タスク実行結果表示領域１７００には、タスク全体の実行結果が表示される。
タスク情報表示部１７０１には、図７に示したタスク登録設定画面のタスク設定入力部８００に入力されたタスク名やコメントの他に、タスクの登録者、タスクの開始日時、及び終了日時が表示される。
対象デバイス実行状態表示部１７０２には、タスクの実行の対象となるデバイスの個別の実行状態が一覧表示される。
対象デバイス実行状態表示部１７０２では、対象となるデバイスのデバイス名、製品名、設置場所、ＩＰアドレス、ＭＡＣアドレスの他、デバイス単位のタスクの実行状態をデバイス単位実行状態表示部１７０３に表示する。このデバイス単位実行状態表示部１７０３には、デバイス個別のタスクの実行状態として、「未実行」、「実行中」、「正常終了」、「エラー終了」等が表示される。
デバイス単位実行状態表示部１７０３に表示される"状態を示す文字列"にはリンクが張られており、このリンクがユーザによって押下されることにより、図１８に示す個別デバイス詳細表示画面がサブウィンドウにて表示される。
【００７８】
図１８は、個別デバイス詳細表示画面の一例を示す図である。この個別デバイス詳細表示画面は、図１７に示す実行タスク詳細表示画面のデバイス単位実行状態表示部１７０３の"状態を示す文字列"が押下されることにより、サブウィンドウに表示される。
図１８において、タスク実行結果表示領域１８００には、デバイス単位のタスクの実行結果が表示される。
デバイス情報表示部１８０１には、デバイスに関する情報が表示される。デバイス情報表示部１８０１では、デバイス名、製品名、設置場所、ＩＰアドレス、及びＭＡＣアドレス等の情報が表示される。
また、図１８には示していないが、例えばデバイスから情報を取得する場合には、この個別デバイス詳細表示画面に、詳細な取得情報が表示されるようにする。
【００７９】
図１９は、タスク実行時にデバイス管理プログラム１１１によって生成されるデータテーブルの一例を示す図である。
図１９（ａ）は、実行タスクテーブルの一例を示す図である。図１９（ａ）の実行タスクテーブルは、デバイス管理モジュール３０５がタスク管理モジュール３０２を介して登録したタスクがスケジューラモジュール３０１により起動されたタイミングで生成される。実行タスクテーブルは、タスクＩＤ１９００と、実行タスクＩＤ１９０１と、タスク実行結果１９０２と、タスク開始日時１９０３と、タスク終了日時１９０４とから構成される。
【００８０】
タスクＩＤ１９００は、図８に示した登録タスクテーブルに登録されているタスクＩＤ５０３と同意である。実行タスクＩＤ１９０１は、タスクの実行時にタスクＩＤ１９００に対して割り当てる識別子である。周期実行タスクの場合、同一のタスクＩＤ１９００に対して、周期毎に実行タスクＩＤ１９０１が割り当てられる。
タスク実行結果１９０２には、夫々のタスクの実行結果が登録される。図１６に示した実行タスクリスト画面の実行状態表示部１６０２には、このタスク実行結果１９０２の内容が表示される。
【００８１】
図１９（ｂ）は、タスク実行結果管理テーブルの一例を示す図である。このタスク実行結果管理テーブルには、実行したタスクの結果をデバイス単位で管理するための情報が格納される。
タスク実行結果管理テーブルにおいて、実行タスクＩＤ１９０５は、図１９（ａ）に示した実行タスクテーブルの実行タスクＩＤ１９０１と同意である。デバイスＩＤ１９０６は、図８に示したターゲットデバイス管理タスクテーブルのデバイスＩＤ５１３と同意である。
デバイス単位実行結果１９０７には、デバイス単位での実行結果が登録される。図１７に示した実行タスク詳細表示画面のデバイス単位実行状態表示部１７０３には、このデバイス単位実行結果１９０７の内容が表示される。
データ１９０８、１９１０には、タスクを実行することによりデバイスに配信した（又はデバイスから取得した）データが登録される。例えば、デバイスに未実装のデータを配信した場合、データ１９０８、１９１０には「未実装」を意味する情報が格納される。
データ単位実行結果１９０９、１９１１には、タスクで配信した情報単位で実行結果が登録される。
【００８２】
以上のように本実施形態では、複数のデバイスに対してタスクを一括して実行し、そのタスクの実行に失敗したデバイスを検出し、その実行に失敗した要因を取得する。そして、失敗した要因に基づいて、検出したデバイスに対してそのタスクを再度実行するか否かを判定し、再度実行すると判定した場合に限り、検出したデバイスに対してタスクを再度実行する。したがって、再実行しても必ず失敗する情報を再実行する対象から外すことが可能となる。よって、複数のデバイスに一括して行った情報の配信に失敗し、その配信に失敗したデバイスに情報を再配信するに際し、無駄な情報が再配信されることを可及的に防止することができる。
【００８３】
また、本実施形態では、周期的に繰り返し実行される周期実行タスクについては、最新の実行結果に基づいて、再度実行するタスクを生成するようにした。したがって、従来よりも効率よくタスクを再実行することが可能になる。
【００８４】
更に、本実施形態では、情報の取得（読み出し）は可能であるが、配信（書き込み）を抑止するセキュリティモードに対応したセキュリティモードデバイスを予め記憶しておく。そして、セキュリティモードデバイスに対してタスクを再実行する場合には、まず、セキュリティモードデバイスから情報を正常に受信できたか否かを判定する。そして、情報を正常に受信できた場合に情報の配信を実行し、情報の配信を正常に行えたか否かを判定する。そして、情報の配信を正常に行えなかった場合には、セキュリティモードデバイスであるためにタスクの実行に失敗したと判定する。したがって、デバイスがセキュリティモードで動作しているためにタスクの実行（情報の配信）に失敗したことをユーザに通知することが可能になる。
【００８５】
（本発明の他の実施形態）
前述した本発明の実施形態におけるタスク実行装置を構成する各手段、並びにタスク実行方法の各ステップは、コンピュータのＲＡＭやＲＯＭなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
【００８６】
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
【００８７】
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム（実施形態では図４、図９〜図１２、図１４に示すフローチャートに対応したプログラム）を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【００８８】
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【００８９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【００９０】
プログラムを供給するための記録媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【００９１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【００９２】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【００９３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【００９４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【００９５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【００９６】
尚、本実施形態では、タスクが、デバイス設定配信タスクとデバイス設定取得タスクとの何れか一方である場合を例に挙げて説明したが、タスクはこれらに限定されるものではない。
【００９７】
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【図面の簡単な説明】
【００９８】
【図１】本発明の実施形態を示し、ネットワークデバイス管理システムの構成の一例を示す図である。
【図２】本発明の実施形態を示し、デバイス管理サーバのハードウェアの構成の一例を示す図である。
【図３】本発明の実施形態を示し、デバイス管理プログラムのモジュールの構成の一例を示す図である。
【図４】本発明の実施形態を示し、デバイスを管理するタスクを生成する際のデバイス管理プログラムにおける動作の一例を説明するフローチャートである。
【図５】本発明の実施形態を示し、デバイス選択画面の一例を示す図である。
【図６】本発明の実施形態を示し、デバイス設定編集画面の一例を示す図である。
【図７】本発明の実施形態を示し、タスク登録設定画面の一例を示す図である。
【図８】本発明の実施形態を示し、タスクを登録するときにデバイス管理プログラムによって生成されるデータテーブルの一例を示す図である。
【図９】本発明の実施形態を示し、配信に失敗したタスクを再実行するためのリカバリタスクを生成する際のデバイス管理プログラムにおける動作の一例を説明するフローチャートである。
【図１０】本発明の実施形態を示し、デバイスが実装していない情報を含むタスクをリカバリの対象外とするように制御する際のデバイス管理プログラムにおける動作の一例を説明するフローチャートである。
【図１１】本発明の実施形態を示し、リカバリタスクを生成する際のデバイス管理プログラムにおける動作の一例を説明するフローチャートである。
【図１２】本発明の実施形態を示し、リカバリタスクを実行する際のネットワークデバイス管理システムにおける動作の一例を説明するフローチャートである。
【図１３】本発明の実施形態を示し、ＳＮＭＰ Ｖ１パケットの構成の一例を示す図である。
【図１４】本発明の実施形態を示し、周期的に繰り返し実行される周期実行タスクのリカバリタスクを生成する際のデバイス管理プログラムにおける動作の一例を説明するフローチャートである。
【図１５】本発明の実施形態を示し、登録タスクリスト画面の一例を示す図である。
【図１６】本発明の実施形態を示し、実行タスクリスト画面の一例を示す図である。
【図１７】本発明の実施形態を示し、実行タスク詳細表示画面の一例を示す図である。
【図１８】本発明の実施形態を示し、個別デバイス詳細表示画面の一例を示す図である。
【図１９】本発明の実施形態を示し、タスク実行時にデバイス管理プログラムによって生成されるデータテーブルの一例を示す図である。
【図２０】本発明の実施形態を示し、セキュリティモードのデバイスの仕様の一例を示した図である。
【符号の説明】
【００９９】
１００  ＬＡＮ
１１０  ネットワークデバイス管理サーバ
１１１  ネットワークデバイス管理プログラム
１１２  ＷＷＷサーバプログラム
１２０  クライアントＰＣ
１２１  ＷＷＷブラウザプログラム
１３０  プリンタ
１４０  複合機能デバイス
【図１】
0005235402.tif 000002
【図２】
0005235402.tif 000003
【図３】
0005235402.tif 000004
【図４】
0005235402.tif 000005
【図５】
0005235402.tif 000006
【図６】
0005235402.tif 000007
【図７】
0005235402.tif 000008
【図８】
0005235402.tif 000009
【図９】
0005235402.tif 000010
【図１０】
0005235402.tif 000011
【図１１】
0005235402.tif 000012
【図１２】
0005235402.tif 000013
【図１３】
0005235402.tif 000014
【図１４】
0005235402.tif 000015
【図１５】
0005235402.tif 000016
【図１６】
0005235402.tif 000017
【図１７】
0005235402.tif 000018
【図１８】
0005235402.tif 000019
【図１９】
0005235402.tif 000020
【図２０】
0005235402.tif 000021