(57)【要約】【課題】  従来のプラグイン構成をもつデバイス管理アプリケーションにおけるリモートタスクの実行制御については、改善の余地があった。【解決手段】  ネットワーク上のネットワークデバイスを管理するための管理アプリケーションが実行される管理装置であって、前記管理アプリケーションにサービスを追加するためのプラグインの機能として、異なる優先度をもつリモートタスクを、当該優先度に従い、実行待ちタスクキューに登録して、前記実行待ちタスクキューに登録されている先頭のリモートタスクを、順次、実行することを特徴とする。【選択図】  図１５
2015114895.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上のネットワークデバイスを管理するための管理アプリケーションが実行される管理装置であって、
前記管理アプリケーションにサービスを追加するためのプラグインの機能として、当該プラグインで提供するサービスに前記ネットワークデバイスが対応しているかを判定するためのリモートタスクである第１のタスクを生成する第１の生成手段と、
前記プラグインの機能として、前記プラグインが提供する管理画面を介してユーザーによる操作に従い実行指示されるリモートタスクであって、前記第１のタスクよりも優先度が高いリモートタスクである第２のタスクを生成する生成手段と、
前記プラグインの機能として、前記第１のタスクよりも優先度が低いリモートタスクである第３のタスクを生成する第３の生成手段と、
前記プラグインの機能として、前記第１の生成手段、第２の生成手段、及び第３の生成手段により生成されたリモートタスクを、当該リモートタスクの優先度に従い、実行待ちタスクキューに登録する登録手段と、
前記プラグインの機能として、前記実行待ちタスクキューに登録されている先頭のリモートタスクを、順次、実行する実行手段と、を有し、
前記プラグインが提供する管理画面を介して前記第２のタスクの実行指示が行われた場合には、前記ユーザーによる実行指示から、前記第２のタスクが実行され、実行結果が当該プラグインで解析されるまで、前記管理画面を介した操作ができないように表示制御が行われることを特徴とする管理装置。
【請求項２】
前記第１の生成手段は、前記管理アプリケーションから前記プラグインに対する、前記プラグインが前記管理アプリケーションに追加された際の通知、管理対象となるネットワークデバイスが追加された際の通知、及び、管理対象となるネットワークデバイスの構成情報が変化した際の通知の少なくともいずれかの通知があった場合に、前記第１のタスクを生成することを特徴とする請求項１に記載の管理装置。
【請求項３】
前記第１のタスクは、ユーザーから管理画面を介した実行指示なしに生成されるリモートタスクであることを特徴とする請求項２に記載の管理装置。
【請求項４】
前記第３のタスクは、前記プラグインが提供する管理画面を介したユーザーの操作に従う、前記プラグインにより追加されるサービスを前記ネットワークデバイスに対して実行するためのリモートタスクであることを特徴とする請求項１乃至３のいずれか１項に記載の管理装置。
【請求項５】
前記プラグインの機能として、前記実行手段により実行された前記第１のタスクの実行結果が成功であった場合に、当該第１のタスクの対象となったネットワークデバイスのデバイス情報を、当該プラグインで提供するサービスに対応するサポートデバイスとして登録する管理手段を、さらに有し、
前記管理手段は、前記実行手段により実行された前記第１のタスクの実行結果が失敗で、かつ、当該第１のタスクの対象となったネットワークデバイスがサポートデバイスとして登録されていた場合に、当該サポートデバイスとして登録されていたデバイス情報を削除することを特徴とする請求項１乃至４のいずれか１項に記載の管理装置。
【請求項６】
前記管理手段は、前記実行手段により実行された前記第１のタスクの実行結果が失敗で、かつ、当該第１のタスクの対象となったネットワークデバイスがサポートデバイスとして登録されていた場合に、当該対象となったネットワークデバイスに対応して記憶されていた認証情報も、さらに削除することを特徴とする請求項５に記載の管理装置。
【請求項７】
前記管理手段は、前記プラグインのほかに前記管理アプリケーションに認証情報を利用するプラグインが追加されていない場合に、前記認証情報を削除することを特徴とする請求項６に記載の管理装置。
【請求項８】
前記登録手段は、第２のタスクを登録する際に、同じネットワークデバイスを対象とする第１のタスクが前記実行待ちタスクキューに登録されていた場合に、当該第１のタスクと第２のタスクとを連続して実行するための連結タスクを、当該第２のタスクと同じ優先度に従い、実行待ちタスクキューに登録し、
前記実行待ちタスクキューに登録されていた前記第１のタスクは削除されることを特徴とする請求項１乃至７のいずれか１項に記載の管理装置。
【請求項９】
前記第２のタスクは、ユーザーにより入力された認証情報を用いて、ネットワークデバイスに対して認証を行うためのリモートタスクであることを特徴とするる請求項１乃至８のいずれか１項に記載の管理装置。
【請求項１０】
ネットワーク上のネットワークデバイスを管理するための管理アプリケーションが実行される管理装置における方法であって、
前記管理アプリケーションにサービスを追加するためのプラグインの機能として、当該プラグインで提供するサービスに前記ネットワークデバイスが対応しているかを判定するためのリモートタスクである第１のタスクを生成する第１の生成工程と、
前記プラグインの機能として、前記プラグインが提供する管理画面を介してユーザーによる操作に従い実行指示されるリモートタスクであって、前記第１のタスクよりも優先度が高いリモートタスクである第２のタスクを生成する生成工程と、
前記プラグインの機能として、前記第１のタスクよりも優先度が低いリモートタスクである第３のタスクを生成する第３の生成工程と、
前記プラグインの機能として、前記第１の生成工程、第２の生成工程、及び第３の生成工程の少なくともいずれかで生成されたリモートタスクを、当該リモートタスクの優先度に従い、実行待ちタスクキューに登録する登録工程と、
前記プラグインの機能として、前記実行待ちタスクキューに登録されている先頭のリモートタスクを、順次、実行する実行工程と、を有し、
前記プラグインが提供する管理画面を介して前記第２のタスクの実行指示が行われた場合には、前記ユーザーによる実行指示から、前記第２のタスクが実行され、実行結果が当該プラグインで解析されるまで、前記管理画面を介した操作ができないように表示制御が行われることを特徴とする方法。
【請求項１１】
請求項１乃至９に記載の手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークデバイスを管理するための管理装置による管理手法に関する。
【背景技術】
【０００２】
従来から、ネットワークデバイスの管理に関する技術分野において、オフィスのネットワーク上に接続される複数のネットワークデバイスを管理するために、管理装置から複数のネットワークデバイスに対して様々なタスクを実行している。ここで、管理装置がネットワークを介してネットワークデバイスに対して実行する設定操作などの処理を、リモートタスクと呼ぶ。
【０００３】
また、Ｗｅｂアプリケーションサーバーが、プリントサーバーによるネットワークを介した印刷処理の順序を制御するといった従来技術が存在する（例えば、特許文献１）。Ｗｅｂアプリケーションサーバーは、データベース等でプリントサーバー上の印刷タスクの進捗状況を管理し、印刷タスクの優先度変更等のタスク制御を行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特願２００７−３２７５６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ネットワークデバイスを管理するための管理装置では、その管理を実現するためのデバイス管理アプリケーションが実行される。このデバイス管理アプリケーションでは、基本的にはネットワークデバイスの探索機能や状態取得などの機能が搭載されている。さらに、きめ細かな管理を実現するために、適宜、管理機能を追加するためのプラグイン（プログラム）を追加することが可能となっている。
【０００６】
上述した従来技術は、プラグインとして機能（サービス）追加された場合に該プラグインの管理機能のために必要なバックグラウンドで実行されるリモートタスクや、デバイス管理アプリケーションが実行するリモートタスクなどを考慮したタスク制御については考慮されていない。そのため、従来技術では、プラグインによる機能追加と管理対象のネットワークデバイスの台数の増加といった様々な変化によるタスクの正常な動作やユーザーの操作性に対する影響については適切に対応できない。
【０００７】
そこで、本発明は、プラグイン構成をもつデバイス管理アプリケーションにおけるリモートタスクの柔軟なタスク制御を実現するための手法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、ネットワーク上のネットワークデバイスを管理するための管理アプリケーションが実行される管理装置であって、前記管理アプリケーションにサービスを追加するためのプラグインの機能として、当該プラグインで提供するサービスに前記ネットワークデバイスが対応しているかを判定するためのリモートタスクである第１のタスクを生成する第１の生成手段と、前記プラグインの機能として、前記プラグインが提供する管理画面を介してユーザーによる操作に従い実行指示されるリモートタスクであって、前記第１のタスクよりも優先度が高いリモートタスクである第２のタスクを生成する生成手段と、前記プラグインの機能として、前記第１のタスクよりも優先度が低いリモートタスクである第３のタスクを生成する第３の生成手段と、前記プラグインの機能として、前記第１の生成手段、第２の生成手段、及び第３の生成手段により生成されたリモートタスクを、当該リモートタスクの優先度に従い、実行待ちタスクキューに登録する登録手段と、前記プラグインの機能として、前記実行待ちタスクキューに登録されている先頭のリモートタスクを、順次、実行する実行手段と、を有し、前記プラグインが提供する管理画面を介して前記第２のタスクの実行指示が行われた場合には、前記ユーザーによる実行指示から、前記第２のタスクが実行され、実行結果が当該プラグインで解析されるまで、前記管理画面を介した操作ができないように表示制御が行われることを特徴とする。
【発明の効果】
【０００９】
本発明によれは、プラグイン構成をもつデバイス管理アプリケーションにおけるリモートタスクの柔軟なタスク制御を実現するための手法を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明におけるネットワーク構成の一例を示す図である。
【図２】本発明の管理装置のハードウェア構成の一例を示す図である。
【図３】本発明の管理装置のソフトウェアのモジュール構成例を示す図である。
【図４】ネットワークデバイスのデバイス情報の一例を示す図である。
【図５】デバイス制御部４２がネットワークデバイスから取得したデバイス情報を示す図である。
【図６】プラグインタスク管理部５２におけるタスクの実行制御の一例を説明するための図である。
【図７】プラグインタスク管理部５２による実行待ちタスクキューに対するキューイング処理の例を説明するための図である。
【図８】プラグインリストを示す図である。
【図９】デバイス管理部３０により提供される管理画面の例を示す図である。
【図１０】プラグイン管理画面の一例を示す図である。
【図１１】プラグイン制御部５１が参照するサポートデバイスリストの例を示す図である。
【図１２】デバイス認証情報の設定画面の一例を示す図である。
【図１３】デバイス認証情報リストの一例を示す図である。
【図１４】プラグイン追加処理を詳細に説明するためのフローチャートを示す。
【図１５】実施例１でのプラグインタスク管理部５２の処理を詳細に説明するためのフローチャートを示す。
【図１６】実施例３でのプラグインタスク管理部５２の処理を詳細に説明するためのフローチャートを示す。
【図１７】実施例１でのプラグインタスク管理部５２のタスク終了処理を詳細に説明するためのフローチャートを示す。
【図１８】実施例２でのプラグインタスク管理部５２のタスク終了処理を詳細に説明するためのフローチャートを示す。
【発明を実施するための形態】
【００１１】
（実施例１）
図１は、本発明におけるネットワーク構成の一例を示す図である。本ネットワークシステムは、管理装置１０００と、ネットワークデバイス２０００（ＤｅｖＡ１〜ＤｅｖＡｘ）とから構成されている。管理装置１０００とネットワークデバイス２０００は、互いに通信回線３０００により接続されている。ネットワークデバイス２０００としては、プリンタや複写機やスキャナーなどの画像形成装置、ネットワークカメラ、携帯電話、カーナビなどといったネットワーク接続機器を示す。通信回線３０００は、有線または無線によるネットワーク接続を実現するためのものである。このネットワーク接続としては、ローカルエリアネットワークに限らず、インターネット環境とすることも可能である。
【００１２】
ここで、管理装置１０００は、ネットワークデバイス２０００を管理するための図３に示すデバイス管理部３０が稼働するサーバーであり、ウェブサービスサーバーとして実現されてもよい。つまり、管理装置１０００で実行されるデバイス管理アプリケーションがウェブアプリケーションとして動作することになる。この場合は、通信回線３０００のクライアント装置（不図示）で動作するウェブブラウザーにより管理装置１０００のウェブサーバーにアクセスすることで、クライアント装置のユーザーがネットワークデバイスの管理処理に係る操作を行うことになる。つまり、該ウェブブラウザーで管理装置１０００が提供する後述するような管理画面が表示され、当該管理画面を操作することで、管理装置１０００のよる管理処理が実行される。
【００１３】
図２は、管理装置１０００のハードウェア構成の一例を示す図である。
【００１４】
ＣＰＵ１０は、ＲＡＭ１２をワークエリアとして、ＲＯＭ１１、及びＨＤＤ１９に格納された各種プログラムを実行する。後述するデバイス管理部３０についても、１以上のプログラム（デバイス管理アプリケーション）を実行することで実現される機能の１つである。例えば、デバイス管理アプリケーションは、例えばＤｉｓｋＤｒｉｖｅ２０にマウント可能なＦＤ、ＣＤ−ＲＯＭ、ＤＶＤ、磁気テープ、ＩＣメモリカード等の記憶媒体により供給される。ＣＰＵ１０は、ビデオカード（ＶＣ）１４を介して、表示装置（ＣＲＴなど）１５にユーザインタフェース表示を行う。更に、ＣＰＵ１０は、キーボードコントローラ（ＫＢＣ）１６を介し、キーボード（ＫＢ）１７からのユーザインタフェースに対する入力指示に応じた制御を行う。入力装置として、キーボード以外にも、不図示のマウスなどのポインティングデバイス、タッチパネルを用いて、入力指示することも可能である。また、ＣＰＵ１０は、ネットワークインタフェースボード（ＮＩＣ）２１を介し、通信回線３０００上のネットワークデバイス２０００とのデータ通信を行う。
【００１５】
図３は、管理装置１０００のソフトウェアのモジュール構成例を示す図である。ここでは、本発明に係るプログラムを実行することで実現される機能を説明するために仮想的なモジュールの構成例を示している。
【００１６】
デバイス管理部３０は、フレームワーク部４０及び１以上のプラグイン部５０から構成される。また、フレームワーク部４０とプラグイン部５０で共有する管理装置内のデータ保管部３１もここでは併記している。データ保管部３１は、ＨＤＤ１９などの記憶領域が利用される。
【００１７】
フレームワーク部４０は、プラグイン管理部４１、デバイス制御部４２、タスク管理部４３、及び送信部４４を備えている。
【００１８】
プラグイン管理部４１は、デバイス管理アプリケーションに対してのプラグインプログラムによる機能（サービス）追加や削除などを管理する。プラグインプログラムによる機能（サービス）追加が行われる場合には、図３におけるプラグイン部５０の追加されることになる。管理装置１０００のユーザー（ネットワーク管理者など）により、プラグインプログラムの削除などの指示を受けて、プラグイン管理部４１は、プラグイン部５０の削除、及び開始／停止を管理する。
【００１９】
デバイス制御部４２は、ネットワーク上のネットワークデバイス２０００の探索機能や、デバイス情報の取得機能を制御する。これらの機能は、デバイス制御部４２がリモートタスクの一種として、探索タスクや監視タスクをデータ保管部３１に登録し、実行することが可能である。なお、機能情報としてはネットワークデバイス２０００の識別情報（ＩＰアドレスなど）や状態情報、機能情報、デバイス構成情報などが含まれ、デバイス制御部４２は様々なネットワークプロトコルに準拠したメッセージを利用して取得する。例えば、デバイス情報としてＭＩＢ（Ｍａｎａｇｅｎｅｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｂａｓｅ）情報を取得する。
【００２０】
ネットワークプロトコルの例としては、ＳＮＭＰ、ＩＰ  Ｂｒｏａｄｃａｓｔ、ＳＬＰ／Ｍｕｌｔｉｃａｓｔ、ＷＳＤ等が挙げられる。タスク管理部４３は、デバイス制御部４２が生成し、データ保管部３１に登録したリモートタスクの管理、実行などを制御する。タスク管理部４３は、リモートタスクの変更や削除のための管理画面や、実行結果などの表示装置に対する表示制御も行う。送信部４４は、リモートタスク実行の結果などに応じて、プラグイン部５０への更新通知を行う。
【００２１】
プラグイン部５０は、プラグイン制御部５１、プラグインタスク管理部５２、及び受信部５３を備えている。
【００２２】
プラグイン部５０として、デバイス管理アプリケーションに追加で提供される機能の一例を以下に示す。これら機能は、１つのプラグイン部５０により実現されてもよいし、１以上のプラグイン部５０によりそれぞれの機能が実現されるよう、プラグインプログラムが作成されてもよい。
（１）ネットワークデバイス２０００に対して、ファームウェア自体、またはファームウェアに関する情報を配信して、更新を指示する機能
（２）ネットワークデバイス２０００のデバイス詳細設定（デバイスコンフィグレーション）を取得、または配信する機能
（３）ネットワークデバイス２０００上で実行されるべきデバイスアプリケーション自体、またはデバイスアプリケーションに関する情報を配信し、動作設定を指示する機能
（４）ネットワークデバイス２０００に対する認証テストを実行する機能
ここで、プラグイン部５０による上記（１）〜（３）の機能により生成されるリモートタスクを、通常タスクと呼ぶ。一方、上記（４）の機能により生成されるリモートタスクは、管理装置が提供する画面上に配置されるボタンを、ユーザーが押下することに応じて生成され、即座に実行され、実行結果が求められるリモートタスクであり、本発明ではワンショットタスクと呼ぶ。
【００２３】
ワンショットタスクの一例であるネットワークデバイス２０００との認証テストのリモートタスクは、管理装置が提供する画面上のボタンをユーザーが押下した時点から、そのタスク結果が判明して通知できるまで、当該画面上の操作をロックする。これは、認証テストが成功しない限り、他の管理機能を操作、実行させないようにするためである。また、ワンショットタスクの実行後に、ネットワークの異常でその結果が判明しない場合などを想定して、タイムアウト機能が有効となる。このタイムアウト機能により、ユーザーのボタン押下から所定時間、経過した場合に、実行中のワンショットタスクをキャンセルする。
【００２４】
ワンショットタスクの一例としては、他にも、ネットワークデバイス２０００のファームウェアを管理するウェブサービスに対する通信テストを行うタスクが存在する。これは少なくとも上記（１）の機能をもつプラグイン部５０により生成されるリモートタスクになる。このリモートタスクも、通信テストの結果が判明し、通知できるまで、当該画面上の操作がロックされることになる。ここで、ファームウェアを管理するウェブサービスは、管理装置１０００とは別のネットワーク上のサーバー装置の機能として実現されてもよいし、管理装置１０００内に設けてもよい。
【００２５】
また、プラグイン部５０は、上記（１）〜（３）の通常タスクを実行するための特別なリモートタスクを生成する。この特別なリモートタスクとは、デバイス管理部３０の管理対象とするネットワークデバイス２０００がそれら通常タスクに対応する機能を備えるか否かを調査するためのタスク（以降、サブ探索タスクと呼ぶ）である。例えば、上記（１）の通常タスクのためのサブ探索タスクは、ファームウェアの更新指示を受けて、該ファームウェアを適用するための機能（デバイスアプリケーション）をネットワークデバイス２０００がもつか否かを判断するために生成され、実行される。サブ探索タスクは、ユーザーからの指示入力なしに、特定の条件を満たした場合にプラグイン部５０によりバックグラウンドで生成され、実行される。
【００２６】
サブ探索タスクは、探索タスクなどにより新たにネットワークデバイスが見つかった場合や、管理対象とするネットワークデバイスのデバイス構成情報に変化が生じたと判定された場合に、バックグラウンドでプラグイン部５０により生成され、実行される。他にも、サブ探索タスクは、例えば、プラグイン部５０の追加や開始のタイミングでも、バックグラウンドでプラグイン部５０により生成され、実行される。
【００２７】
このように、ネットワークデバイス２０００の管理を実現するためのリモートタスクには、上述の通常タスクに加え、通常タスクを確実に実行するための補助的なタスクであるサブ探索タスクやワンショットタスクがある。
【００２８】
受信部５３は、フレームワーク部４０の送信部４４から更新通知を受信すると、プラグインタスク管理部５２に対して内部的にタスク実行を指示する。更新通知の一例としては、新たにネットワークデバイスが見つかった旨の通知や、管理対象とするネットワークデバイスのデバイス構成情報に変化に関する通知がある。つまり、このような更新通知を受けて、受信部５３はプラグインタスク管理部５２に対してサブ探索タスクの生成、実行を指示することになる。
【００２９】
プラグインタスク管理部５２は、プラグイン制御部５１から実行が指示される通常タスク及びワンショットタスク、さらに受信部５３から実行が指示されるサブ探索タスクの実行を制御する。実行が指示されたリモートタスクは、データ保管部３１に一度登録され、順次実行されていく。プラグインタスク管理部５２は、登録されている各リモートタスクのタスク属性に従い、それらリモートタスクの実行の優先度を判定する。
【００３０】
次に、プラグインタスク管理部５２におけるタスク制御に関する処理について、図４〜７を用いて説明する。
【００３１】
図４は、ネットワークデバイス２０００（ＤｅｖＡ１〜Ａｘ）のそれぞれについてのデバイスのデバイス情報の一例を示す。図４では、デバイス情報として、デバイス名、製品名、アドレス情報、稼働状態、及び対応サービスが含まれることを示している。例えば、ネットワークデバイスＤｅｖＡ１は、デバイス名が「ＤｅｖＡ１」、製品名が「ＤｅｖＡ」、アドレス情報が「ＩＰ＿Ａ１」のネットワークデバイスである。更に、ネットワークデバイスＤｅｖＡ１は、稼働状態が「稼働中」であり、対応サービスとして「ｓＰＩＡ〜ｓＰＩＸ」に対応していることを示す。ここで、アドレス情報とは、例えば、デバイス管理部３０のフレームワーク部４０やプラグイン部５０との通信を行うことが出来るＩＰアドレスである。また、対応サービスとは、本実施例では、プラグイン部５０が提供する各機能に対応するための機能情報を示している。例えば、サービス「ｓＰＩＡ」は、プラグイン部５０を有するプラグインＡの機能に対応するためのサービスである。このサービスは、ネットワークデバイスにデバイスアプリケーションをインストールすることで実現される機能として提供されてもよい。
【００３２】
図５は、フレームワーク部４０のデバイス制御部４２が生成し、実行されたリモートタスクの実行結果を格納したテーブル（デバイスリスト）を示す図である。ここで実行されるリモートタスクとは、前述した探索タスクや監視タスクである。図５のテーブルに格納されるデバイス情報としては、デバイス名、製品名、アドレス情報、及び稼働状態がある。
【００３３】
例えば、ネットワークデバイスＤｅｖＡ１からタスク実行により取得されたデバイス情報としては、デバイス名が“ＤｅｖＡ１”、製品名が“ＤｅｖＡ”、アドレス情報が“ＩＰ＿Ａ１”であり、稼働状態が“稼働中”であることを示す情報が含まれている。
【００３４】
ここでは、デバイス制御部４２が生成し、実行されたリモートタスクでは、ネットワークデバイス２０００の対応サービスに関する情報を取得していない。これは、追加されるかどうか不明なプラグインプログラムによる機能についての情報を取得する必要が無いからである。ただし、例外的にデバイス制御部４２が生成し、実行されたリモートタスクで、それら対応サービスの情報を取得するよう設計されてもよい。
【００３５】
なお、図５のデバイス情報は、リモートタスクの実行以外にも、これら情報を含むようなファイルをデバイス管理部３０に対してインポートすることで実現しても構わない。
【００３６】
また、デバイス制御部４２は、送信部４４に、更新通知の送信を指示するか否かを、予め規定した条件から判断する機能を有する。前述したように、フレームワーク部４０のデバイス制御部４２は、ネットワーク探索の結果として新たにネットワークデバイスを見つけた場合や、管理対象とするネットワークデバイスの情報が削除指示された場合には、送信部４４に、更新通知の送信を指示する。デバイス制御部４２が更新通知の送信を指示する条件は他にも設定可能である。例えば、次のような場合が挙げられる。
・デバイス管理部３０に対するファイルインポートにより新たにネットワークデバイスが追加された
・既存の管理対象であるネットワークデバイスのデバイス構成情報を変更した
・プラグイン管理部４１が新たなプラグイン部５０の追加を検出した
また、これら条件は、フレームワーク部４０の機能として提供するデバイス管理画面の１つを用いてユーザーにより設定させてもよいし、デバイス制御部４２が参照可能な外部ファイルに定義された条件を読み込むことで設定されてもよい。
【００３７】
ここで、プラグイン部５０により生成される通常タスク、ワンショットタスク、及びサブ探索タスクについて、補足して説明を行う。
【００３８】
サブ探索タスクは、プラグイン部５０が提供する機能をネットワークデバイスがサポートしているかを判定するためのリモートタスクである。そのため、プラグイン部５０では、通常タスクや、ワンショットタスクよりも先に、サブ探索タスクが実行されることが望ましい。
【００３９】
更には、サブ探索タスクの実行は、プラグイン部５０が追加されてから、該プラグイン部５０の提供機能が利用可能となる開始処理までの間に完了されていることが望ましい。この場合には、少なくとも当初管理対象としていたネットワークデバイスに対しては、サブ探索タスクの結果に応じた通常タスクやワンショットタスクの実行が保証されるからである。ここで、サブ探索タスクは、図５に示すテーブル内のデバイスリストに登録されているネットワークデバイスの台数分だけリモートタスクが生成される。つまり、サブ探索タスクは、生成されるタスク数やその発生タイミングについて、フレームワーク部４０に依存する。
【００４０】
ワンショットタスクの一例である、デバイス認証タスクは、通常タスクを実行する際に必要となるデバイス認証を予め実行しておくためのリモートタスクである。サブ探索タスクにより、プラグイン部５０が提供する機能をサポートすると判定されたネットワークデバイスに対して行われることになる。デバイス認証タスクが成功した場合には、後に通常タスクの生成に際して、デバイス認証情報の設定を省くことが出来る。
【００４１】
通常タスクは、サブ探索タスクだけでなく、ワンショットタスクの実行結果を利用して生成、実行することも可能である。従って、通常タスクは、サブ探索タスクやワンショットタスクよりも、タスク実行における優先度を低く設定することが望ましいといえる。
【００４２】
本発明では、これら各タスクの特性を考慮した上で、タスク実行を制御する際の各タスクの優先度を判定する。具体的には、ワンショットタスクは「Ｈｉｇｈ」、サブ探索タスクは「Ｍｉｄｄｌｅ」、通常タスクは「Ｌｏｗ」と判定する。
【００４３】
図６は、プラグイン部５０のプラグインタスク管理部５２におけるタスクの実行制御の一例を説明するための図である。
【００４４】
図６では、プラグインタスク管理部５２によりデータ保管部３１に登録された複数のリモートタスクが、実行待ちタスクキューと実行中タスクキューにより管理されていることを示している。実行中タスクキューに格納されているリモートタスクが、ネットワークデバイス２０００に対して実行中のリモートタスクを示す。たとえば、実行中タスクキューに格納可能なタスクの上限を５つとする。これは、プラグイン部５０により並行して実行可能なタスク数が、最大５タスクであることを意味する。実行待ちタスクキューでは、実行中タスクキューのいずれかのリモートタスクの処理が完了した場合に、先頭のタスクから順次、実行中タスクキューに格納されていくことになる。なお、図６の例とは異なり、タスクの優先度毎に実行待ちタスクキューを準備して、タスク管理を行う形態であっても構わない。
【００４５】
図６（ａ）に示すように、実行待ちタスキキューでは、ネットワークデバイスＤｅｖＡ１〜ＤｅｖＡｘに対する優先度「Ｌｏｗ」である通常タスクと、ネットワークデバイスＤｅｖＡ６〜ＤｅｖＡｘに対する優先度「Ｍｉｄｄｌｅ」であるサブ探索タスクが管理されている。また、ネットワークデバイスＤｅｖＡ１〜ＤｅｖＡ５までのサブ探索タスクは、実行中タスクキューにて実行中である。
【００４６】
このような状態において、プラグインタスク管理部５２は、プラグイン制御部５１から、ネットワークデバイスＤｅｖＡｎとＤｅｖＡｍに対する２つのワンショットタスクの実行を指示されたとする。この場合、プラグインタスク管理部５２は、それらワンショットタスクについて、優先度「Ｈｉｇｈ」と判定することになる。その結果、プラグインタスク管理部５２は、図６（ｂ）に示すように、既に管理されていた実行待ちタスクキューのサブ探索タスクよりも優先して実行されるように２つのワンショットタスクを実行待ちタスクキューにキューイングする。この処理により、２つのワンショットタスクは、既存の実行待ちのサブ探索タスクよりも優先して、実行中タスクキューに格納され、実行されることになる。
【００４７】
図７は、プラグインタスク管理部５２が新規にリモートタスクを実行待ちタスクキューに対してキューイングする際の様々なケースを説明するための図である。
【００４８】
左端の列は、プラグインタスク管理部５２が既に実行待ちタスクキューで管理しているリモートタスクとその優先度を示している。また、上端の行は、プラグインタスク管理部５２に対して、新たに実行指示された新規のリモートタスクとその優先度を示している。
【００４９】
図７においては、図６で示した例は、４行目の状態で新規タスクとしてタスクＤの実行指示が行われた場合を示している。図７では、タスクＤが既存の実行待ちタスクよりも先頭にキューイングされることを示している。
【００５０】
ほかにも、図７では、１行目の状態で新規タスクとしてタスクＤの実行指示が行われた場合には、既存の優先度が「Ｈｉｇｈ」であるタスクＡの後に当該タスクＤが実行されるように、実行待ちタスクキューにキューイングされることを示している。
【００５１】
次に、プラグインタスク管理部５２による処理について図面を用いて説明を行う。
【００５２】
図８（ａ）は、プラグイン管理部４１が、データ保管部３１にて保管しているプラグインリストの一例である。図８（ａ）には、プラグイン名、バージョン、及びプラグインの稼働状態を示すプラグイン状態を示す情報が含まれる。例えば、プラグイン名が「プラグインＡ」で、バージョンが「ｖ１．０．０」であるプラグインは、稼働中であることを示す。一方、プラグイン名が「プラグインＢ」で、バージョンが「ｖ２．１．０」のプラグインは停止中であることを示す。
【００５３】
図９は、デバイス管理アプリケーションにより実現されるデバイス管理部３０により提供される管理画面の例を示す。管理画面６０は、メニュー６１とタスク作成領域６２から構成される。デバイス管理部３０は、管理画面６０を介してユーザーにより選択されたメニュー６１に応じて、タスク作成のための画面をタスク作成領域６２に表示するよう制御する。
【００５４】
図９（ａ）は、デバイス管理部３０が、フレームワーク部４０のみにより構成される場合の画面構成を示す。この場合のメニュー６１は、フレームワーク部４０が提供する探索機能や監視機能についてのリモートタスクを管理するための「デバイスの管理タスク」と、プラグインプログラムの追加などを管理するための「プラグイン管理」と、から構成される。「デバイスの管理タスク」メニューが選択された場合には、ネットワークデバイスの探索や監視等のための通常タスクを生成することができる。「プラグイン管理」メニューが選択された場合は、プラグインの追加、削除、及び開始／停止についての作業を指示できる。
【００５５】
図９（ｂ）は、プラグイン部５０としてのプラグインＡ〜Ｘを追加した場合の画面構成の例を示す。本図では、プラグインＡ〜Ｘのプラグイン部５０の機能を利用するためのメニュー項目が追加されている。例えば、プラグインＡでは、「デバイス認証情報のタスク」メニューが選択された際には、ワンショットタスクであるデバイス認証タスクの生成に係る操作が行える。また、プラグインＡ固有の通常タスクを生成する「プラグインＡの通常のタスク」メニューも用意されている。
【００５６】
ここで、ワンショットタスクであるデバイス認証タスクの生成に係る操作について、図を用いて説明する。プラグイン制御部５１は、「デバイス認証情報のタスク」メニューを選択されると、データ保管部３１に保管されている図１１に示すサポートデバイスリストを取得する。さらに、プラグイン制御部５１は、表示装置上のタスク作成領域６２に対して、デバイス認証情報の設定画面の表示制御を行う。
【００５７】
図１１は、各プラグイン部５０のプラグイン制御部５１が、データ保管部３１にて管理している各プラグインプログラムの提供機能に対応しているネットワークデバイスのリスト（サポートデバイスリスト）の一例を示す。サポートデバイスリストは、デバイス名、製品名、及びアドレス情報などのデバイス情報から構成される。プラグイン制御部５１により、サブ探索タスクの実行結果に従い、適時更新される。
【００５８】
図１２は、デバイス認証情報の設定画面の一例を示す。この設定画面では、デバイス情報、認証情報、及び認証テストの情報が提供される。
【００５９】
認証情報の表示部分では、設定／編集が可能なように、認証方式、ドメイン名、ユーザー名、及びパスワードの欄で構成されている。認証テストの表示部分では、認証テストを実行するための「認証」ボタンと、その実行結果の表示欄から構成されている。この画面を介して設定される認証情報とは、プラグインが提供する通常タスクを成功させるために必要となる、リモートタスクの対象となる機器との認証に関する情報である。この認証情報は、対象機器となるネットワークデバイス２０００などには予め設定されていることになる。
【００６０】
また、認証方式「ドメイン認証」ではネットワークデバイスとの認証でドメイン名、ユーザー名、及びパスワードを必要とし、「ローカルデバイス認証」ではユーザー名とパスワードを必要とする認証方式である。ここで、認証方式は、「ドメイン認証」や「ローカルデバイス認証」に限定されるものではなく、ネットワークデバイス２０００など、リモートタスクの対象となる機器がサポートしている認証方式をこの設定画面を介して柔軟に設定することが可能である。
【００６１】
更に、図１２で示す設定画面は、設定または編集した認証情報を保存するための「更新」ボタン、及び設定処理を中止するための「キャンセル」ボタンから構成される。
【００６２】
図１２で示す例では、ユーザーにより、ネットワークデバイスＤｅｖＡ１に対する認証情報として、認証方式「ドメイン認証」、ドメイン名「ＤｏｍａｉｎＡ」、ユーザー名「ＵｓｅｒＡ１」、及びパスワード「１２３」が設定される。ここで、パスワードは、秘匿性により、表示上は「●●●」と表示されている。そして、ネットワークデバイスＤｅｖＡ１に対する「認証」ボタンが押下された際には、プラグイン制御部５１は、プラグインタスク管理部５２にデバイス認証タスクの実行を指示する。また、この際には、図１２で示す設定画面に対するユーザーの操作を禁止するために、画面自体が操作不能な状態でロックされる。タスクの実行結果がプラグインタスク管理部５２より通知された場合に、プラグイン制御部５１は、図１２で示す認証テストの結果欄に、ワンショットタスクの実行結果を表示する。
【００６３】
図１３は、データ保管部３１に保管されたデバイス認証情報リストの一例である。このリストでは、デバイス名、製品名などのデバイス情報と、そのデバイス情報に対応して設定された認証方式、ドメイン名、ユーザー名、及びパスワードなどの認証情報が管理される。デバイス制御部５１は、図１２の設定画面を表示する際には、図１１及び図１３を参照する。
【００６４】
以上の操作により、ワンショットタスクであるデバイス認証タスクの実行指示が行われることになる。なお、この操作に従うプラグインタスク管理部５２よる処理の詳細については、図１５を用いて後述する。
【００６５】
次に、図１０を用いて、プラグインプログラムの管理について説明を行う。
【００６６】
図１０（ａ）は、「プラグイン管理」メニューが選択された場合にタスク作成領域６２に表示されるプラグイン管理画面の一例である。プラグイン管理部４１は、データ保管部３１に記憶されている図８（ａ）のプラグインリストを取得し、タスク作成領域６２に表示制御する。このプラグイン管理画面は、追加したプラグイン部５０に関するプラグイン名、バージョン、及びプラグイン状態の表示から構成される。
【００６７】
また、プラグイン状態を制御するための指示部として、「停止」ボタン及び「開始」ボタンの少なくともいずれかを表示する。また、停止中のプラグイン部５０の削除指示を行うための「削除」ボタンも表示している。更に、プラグイン管理画面には、プラグインプログラムを新規に追加するための画面をさらに表示するための「プラグインの追加」ボタン、及び本管理画面による作業を終了するための「終了」ボタンも表示される。
【００６８】
「プラグインの追加」ボタンが選択された場合には、図１０（ｂ）で示すプラグインの追加画面を表示する。プラグインの追加画面には、追加するプラグインプログラムが格納されているパスとファイルを指定するための編集ボックスが表示される。更に、追加指示を行うための「追加」ボタン、及び処理を中止するための「キャンセル」ボタンが表示される。ここで追加指示されたプラグインプログラムの情報は、プラグイン管理部４１により、データ保管部３１に新たに記憶されることになる。ここで、追加されたプラグインプログラムに対応するプラグイン部５０のプラグインタスク管理部５２から、サブ探索タスクの実行終了の通知を受けた場合に、プラグイン管理部４１は、プラグイン管理画面の情報を更新して、プラグインＹを含むプラグイン管理画面を表示する。
【００６９】
図１４は、プラグイン管理部４１及びプラグインタスク管理部５２における処理を説明するためのフローチャートを示す。
【００７０】
Ｓ１００では、プラグイン管理部４１は、指定されたプラグインプログラム（プラグイン部５０）の追加操作を受付け、追加処理を行う。そして、Ｓ１０１で、プラグイン管理部４１は、データ保管部３１に保管されている監視対象とするネットワークデバイスのデバイスリストを取得する。図１０で示す例では、プラグイン管理部４１は、図１０（ｂ）に示したプラグインＹに対して「追加」ボタンを押下した後に、図５に示したデバイスリストをデータ保管部３１から取得することになる。
【００７１】
Ｓ１０２で、プラグイン管理部４１は、取得したデバイスリストに、ネットワークデバイスが存在しているか否かを判定する。ここで、ネットワークデバイスが存在すると判定した場合にはＳ１０３に遷移し、存在しない場合には本処理を終了する。
【００７２】
Ｓ１０３で、プラグイン管理部４１は、プラグインの追加に従う更新通知を、送信部４４を介して、該追加されたプラグイン部５０の受信部５３に送信する。ここでは、ＤｅｖＡ１〜ＤｅｖＡｘのＸ台のネットワークデバイスに対するサブ探索タスクの実行のために、更新通知をプラグイン部５０の受信部５３に送信する。なお、更新通知は、図５で示したデバイス情報を含む通知をデバイス台数分通知されてもよい。この場合には、プラグイン部５０では、該通知を受ける度に対象となるネットワークデバイスに対するサブ探索タスクを生成することになる。
【００７３】
Ｓ１０４では、プラグイン部５０の受信部５３は、受信した更新通知に従うサブ探索タスクの生成、実行を、プラグインタスク管理部５２に指示する。Ｓ１０５では、プラグインタスク管理部５２は、生成されたＸ台分のサブ探索タスクを、プラグインタスク管理部５２が管理している実行待ちタスクキューに登録する。Ｓ１０５の処理の詳細については、図１５を用いて後述する。
【００７４】
Ｓ１０６で、プラグインタスク管理部５２は、図６に示す実行待ちタスクキューのリモートタスクを、実行中タスクキューに順次移動し、該リモートタスクを実行する。ここでは、Ｘ台のネットワークデバイス２０００に対するＸ個のサブ探索タスクが順次、実行される。Ｓ１０７で、プラグインタスク管理部５２は、Ｓ１０６で実行されたリモートタスクの実行結果に従い、タスクの終了処理を行う。Ｓ１０７の処理の詳細については、図１７を用いて後述する。
【００７５】
プラグイン管理部４１は、タスクの終了処理の結果に従い、データ保管部３１のプラグインリストに追加したプラグイン部５０のプラグイン情報を格納する。これにより、プラグインプログラムの追加処理が完了する。
【００７６】
図１５は、Ｓ１０５におけるプラグインタスク管理部５２の処理を詳細に説明するためのフローチャートを示す。なお、本処理は、図１５のようなプラグイン追加の従う場合に限らず、既存のプラグイン部５０が提供する管理画面を介したワンショットタスク及び通常タスクの実行操作や、他の条件でサブ探索タスクの実行が指示された場合にも共通に動作する処理となる。
【００７７】
Ｓ２０１では、プラグインタスク管理部５２は、実行指示されたリモートタスクの属性の解析を行う。具体的には、プラグインタスク管理部５２は、実行指示されたリモートタスクの属性を参照し、指示元が受信部５３であり、プラグイン部５０で提供する管理画面などのメニューを介した操作に起因して生成されたリモートタスクではないと解析できる。ここで、リモートタスクの属性から、実行の指示元を示す情報が解析できる。さらに、リモートタスクの属性から、プラグイン部５０で提供する管理画面などのメニューを介した操作に起因して生成されたか否か、実行指示に応じて管理画面などの操作をロックしてタイムアウト処理も行うリモートタスクか否か、といったことも解析できる。なお、プラグインタスク管理部５２による上記解析は、実行指示されたリモートタスクの優先度を判定するために利用される。しかしながら、このような属性をタスクに設定しなくとも、リモートタスクに優先度を設定して、それをプラグインタスク管理部５２で解析してもよい。
【００７８】
Ｓ２０２で、プラグインタスク管理部５２は、図６で例示した実行待ちタスクキューに格納されているリモートタスクの情報を取得する。具体的には、優先度別にリモートタスクが実行待ちタスクキューに格納されているか否かの情報を取得する。図１０に示す例では、新たに追加されたばかりのプラグインＹについての実行待ちタスクキューの情報取得になるので、プラグインタスク管理部５２はまだリモートタスクが格納されていないことが判別できる。
【００７９】
Ｓ２０３で、プラグインタスク管理部５２は、実行指示されたリモートタスクの優先度を判定する。判定された優先度が「Ｈｉｇｈ」である場合にはＳ２０４に遷移し、「Ｍｉｄｄｌｅ」の場合にはＳ２０６に遷移し、「Ｌｏｗ」である場合にはＳ２１０に遷移する。
【００８０】
Ｓ２０３の処理については、図１２で示した例でワンショットタスクの実行指示が行われた場合には、優先度「Ｈｉｇｈ」と判定されるので、その結果、Ｓ２０４に遷移することになる。また、図１０に示す例では、プラグインタスク管理部５２がプラグインＹの追加に伴うサブ探索タスクの実行指示がされた場合であり、優先度「Ｍｉｄｄｌｅ」と判定するので、その結果、Ｓ２０６に遷移することになる。
【００８１】
Ｓ２０４で、プラグインタスク管理部５２は、Ｓ２０２で取得した実行待ちタスクキューに格納済みのリモートタスクに、優先度「Ｈｉｇｈ」のリモートタスクが存在するかを判定する。存在する場合にはＳ２０８に遷移し、存在しない場合にはＳ２０５に遷移する。Ｓ２０５で、プラグインタスク管理部５２は、実行待ちタスクキューの先頭に、今回実行指示されたリモートタスクを追加で登録する。優先度が「Ｍｉｄｄｌｅ」や「Ｌｏｗ」であるリモートタスクが実行待ちタスクキューに格納済みの場合は、それらタスクより前に今回実行指示されたリモートタスクが追加で登録されることになる。
【００８２】
Ｓ２０８で、プラグインタスク管理部５２は、実行待ちタスクキューに格納済みであって、かつ、今回実行指示されたリモートタスクと同じ優先度の最後尾に登録されているリモートタスクを特定し、その次に今回実行指示されたリモートタスクが実行されるように追加登録を行う。例えば、今回実行指示されたリモートタスクの優先度が「Ｈｉｇｈ」で、実行待ちタスクキューに優先度が「Ｈｉｇｈ」、「Ｍｉｄｄｌｅ」、「Ｌｏｗ」であるリモートタスクが存在する場合を想定する。その場合は、優先度が「Ｍｉｄｄｌｅ」、「Ｌｏｗ」である格納済みのリモートタスクと、優先度が「Ｈｉｇｈ」である格納済みのリモートタスクとの間に、今回実行指示されたリモートタスクが追加で登録されることになる。
【００８３】
Ｓ２０６で、プラグインタスク管理部５２は、Ｓ２０２で取得した実行待ちタスクキューに格納済みのリモートタスクに、優先度「Ｍｉｄｄｌｅ」以上のタスクが存在するかを判断する。ここで、存在する場合にはＳ２０７に遷移し、存在しない場合にはＳ２１０に遷移する。
【００８４】
Ｓ２０７で、プラグインタスク管理部５２は、プラグインタスク管理部５２は、Ｓ２０２で取得した実行待ちタスクキューに格納済みのリモートタスクに、優先度「Ｍｉｄｄｌｅ」のリモートタスクが存在するかを判定する。存在する場合には前述したＳ２０８に遷移し、存在しない場合にはＳ２０９に遷移する。Ｓ２０９で、プラグインタスク管理部５２は、実行待ちタスクキューに格納済みであって、かつ、今回実行指示されたリモートタスクとより高い優先度の最後尾に登録されているリモートタスクを特定し、その次に今回実行指示されたリモートタスクが実行されるように追加登録を行う。
【００８５】
Ｓ２１０で、プラグインタスク管理部５２は、実行待ちタスクキューの先頭に、今回実行指示されたリモートタスクを追加で登録する。優先度が「Ｌｏｗ」であるリモートタスクが実行待ちタスクキューに格納済みの場合は、それらタスクより前に今回実行指示されたリモートタスクが追加で登録されることになる。また、図１０に示す例では、プラグインタスク管理部５２により、まず空の実行待ちタスクキューの先頭に１台目のネットワークデバイスを対象とするサブ探索タスクが登録される。
【００８６】
Ｓ２１１で、プラグインタスク管理部５２は、実行待ちタスクキューの最後尾に、今回実行指示されたリモートタスクを追加で登録する。これは、プラグイン制御部５１により通常タスクが実行指示された場合の処理となる。
【００８７】
図１７は、Ｓ１０７におけるプラグインタスク管理部５２のリモートタスクの終了処理を詳細に説明するためのフローチャートを示す。なお、本処理は、図１５のようなプラグイン追加の従う場合に限らず、既存のプラグイン部５０が提供する管理画面を介したワンショットタスク及び通常タスクの実行操作や、他の条件でサブ探索タスクの実行が指示された場合にも共通に動作する処理となる。
【００８８】
Ｓ３００で、プラグインタスク管理部５２は、前述のＳ１０６で実行されたリモートタスクに関して、処理対象となったネットワークデバイスのデバイス情報、タスクの成否、実行したリモートタスクのタスク属性の解析を行う。図１０で例示したプラグインＹの追加に伴うサブ探索タスクの実行結果の解析に際しては、プラグインタスク管理部５２が、対象となったネットワークデバイスから取得されたデバイス情報とプラグインＹに対応したサービス「ｓＰＩＹ」が稼働しているか否かの情報を参照する。ここで、サービス「ｓＰＩＹ」が稼働していた場合に、サブ探索タスクが成功していたと解析する。
【００８９】
Ｓ３０１で、プラグインタスク管理部５２は、実行されたリモートタスクの種別を判定する。サブ探索タスクの場合にはＳ３０２に遷移し、ワンショットタスクの場合にはＳ３０７に遷移し、通常タスクの場合にはＳ３０９に遷移する。
【００９０】
Ｓ３０２で、プラグインタスク管理部５２は、サブ探索タスクの処理対象となったネットワークデバイスが、対応サービスが稼働中であるサポートデバイスであったかどうかを判断する。サポートデバイスであった場合にはＳ３０３に遷移し、サポートデバイスであった場合にはＳ３０４に遷移する。
【００９１】
Ｓ３０３で、プラグインタスク管理部５２は、プラグイン制御部５１に対して、データ保管部３１のサポートデバイスリスト（図１１）に、サブ探索タスクの処理対象となったネットワークデバイスのデバイス情報の登録を要求する。
【００９２】
Ｓ３０４で、プラグインタスク管理部５２は、プラグイン制御部５１に対して、データ保管部３１のサポートデバイスリスト（図１１）から、サブ探索タスクの処理対象となったネットワークデバイスのデバイス情報の削除を要求する。さらに、Ｓ３０５で、プラグインタスク管理部５２は、データ保管部３１のデバイス認証情報リスト（図１３）に、サブ探索タスクの処理対象となったネットワークデバイスのデバイス認証情報が存在するか否かを判定する。ここで、存在する場合にはＳ３０６に遷移し、存在しない場合にはＳ３０９に遷移する。Ｓ３０６で、プラグインタスク管理部５２は、プラグイン制御部５１に対して、デバイス認証情報リストから、該当するデバイス認証情報の削除を要求する。
【００９３】
Ｓ３０７で、プラグインタスク管理部５２は、ワンショットタスクの成否を判断する。デバイス認証タスクの場合は、当該タスクの対象となったネットワークデバイスとの認証処理に成功した場合に、ワンショットタスクが成功していたと判定される。ここで、成功したと判定された場合にはＳ３０８に遷移し、失敗したと判定された場合にはＳ３０９に遷移する。Ｓ３０８で、プラグインタスク管理部５２は、プラグイン制御部５１に対して、ワンショットタスクの成功により確認された情報のデータ保管部３１への登録を要求する。デバイス認証タスクの場合は、プラグイン制御部５１により、当該タスクの対象となったネットワークデバイスのデバイス情報とタスク実行に用いた認証情報が、データ保管部３１のデバイス認証情報リスト（図１３）に登録されることになる。
【００９４】
Ｓ３０９で、プラグインタスク管理部５２は、リモートタスクの終了処理が完了したことを、当該タスクの成否を示す情報とともに、プラグイン管理部４１に通知する。例えば、ワンショットタスクとして、デバイス認証タスクが成功したと解析された場合には、前述の図１２の設定画面上の認証テストの結果を示す欄に「ＯＫ」と表示される。さらに、これに従い、管理画面に対する操作のロック状態も解除される。
【００９５】
（実施例２）
本実施例は、図１７に示した処理について、さらに改良した実施例を示す。
【００９６】
本実施例では、前提として、あるプラグイン部５０で利用するデバイス認証情報を、他の複数のプラグイン部で使いまわすことができることを前提としている。また、プラグイン部によって、デバイス認証機能を有しているものと、そうでないものが存在することを前提としている。
【００９７】
前述の図１７では、あるプラグイン部５０において、サブ探索タスクが実行された場合に、サポートデバイスではないと判断されたネットワークデバイスに対応して保管されていたデバイス認証情報を削除していた。しかしながら、上記前提を踏まえた場合には、別のプラグイン部が存在していた場合においては、当該別のプラグイン部により該当するデバイス認証情報が利用される可能性があり、削除する必要がない。
【００９８】
図１８は、上述を考慮した上での、前述の図１７で説明した処理の変形例である。図１８は、先の図１７のフローチャートに対して、Ｓ４００及びＳ４０１を追加したものである。図１７で説明した処理については、その説明を省略する。
【００９９】
Ｓ４００で、プラグインタスク管理部５２は、データ保管部３１の図８（ｂ）のプラグインリストを取得する。
【０１００】
図８（ｂ）は、プラグイン管理部４１が、データ保管部３１にて保管しているプラグインリストの一例である。このリストは、プラグイン名、バージョン、プラグインの稼働状態を示すプラグイン状態、及びデバイス認証機能のサポートの有無を示すデバイス認証などの項目欄から構成される。
【０１０１】
例えば、プラグインＡは、プラグイン名が「プラグインＡ」で、バージョンが「ｖ１．０．０」で、稼働状態が「稼働中」であり、更にデバイス認証機能をサポートしていることを示す。ここで、デバイス認証機能をサポートするプラグインは、図９で示したように、メニューのひとつに「デバイス認証情報のタスク」メニューを有している。
【０１０２】
Ｓ４０１で、プラグインタスク管理部５２は、Ｓ４００で取得したプラグインリストに、デバイス認証機能を有するプラグインが存在しているかを判定する。ここで、存在している場合にはＳ３０９に遷移し、存在していない場合にはＳ３０６に遷移する。Ｓ３０６では、デバイス認証情報リストから該当するデバイス認証情報が削除されることになる。
【０１０３】
このように、本実施例においては、デバイス認証情報を利用する他のプラグインが存在しない場合に限り、サポートデバイスではないとサブ探索タスクにより特定されたネットワークデバイスのデバイス認証情報が削除されるようになる。
【０１０４】
（実施例３）
本実施例は、図１５に示した処理について、さらに改良した実施例を示す。
【０１０５】
あるプラグイン部５０において、ワンショットタスクの実行が指示された場合に、対象となるネットワークデバイスに対するサブ探索タスクの実行が未処理の場合がある。これは、ネットワークデバイスに対するサブ探索タスクが実行待ちタスクキューで待機している際に、ワンショットタスクの実行が指示されたことを意味する。
【０１０６】
この際に、例えば、デバイス認証のためのワンショットタスクが実行され、成功した後に、サブ探索タスクが実行され、対象となったネットワークデバイスがサポートデバイスでなくなる場合がある。これは、対象となったネットワークデバイスに認証情報は設定済みだが、対応するサービスが停止されていたり、未インストールだったりした場合である。この場合には、少なくともこのプラグイン部５０では不要である、サポート対象ではないネットワークデバイスのデバイス認証タスクが実行されることになる。また、プラグイン制御部５１により、データ保管部３１のデバイス認証情報リスト（図１３）に不要な情報が登録されることにもつながる。
【０１０７】
したがって、例えば、処理対象が同じであるサブ探索タスクが実行待ちタスクキューで待機している際に、ワンショットタスクの実行指示が行われた場合には、サブ探索タスクの実行結果に従いワンショットタスクの実行を制御することが望ましい。
【０１０８】
また、実施例２でも説明したように、複数のプラグイン部によるデバイス認証情報を共有して利用する場合などを考慮すると、サブ探索タスクの前にワンショットタスクが実行されても無駄にならない場合などもあり得る。
【０１０９】
図１６は、上述を考慮した上での、前述の図１５で説明した処理の変形例である。図１６は、先の図１５のフローチャートに対して、Ｓ５００〜Ｓ５０２を追加したものである。図１５で説明した処理については、その説明を省略する。
【０１１０】
Ｓ５００で、プラグインタスク管理部５２は、データ保管部３１の図８（ａ）のプラグインリストを取得する。Ｓ５０１で、プラグインタスク管理部５２は、Ｓ５００で取得したプラグインリストに、他のプラグイン部が存在しているかを判定する。ここで、存在していない場合にはＳ５０２に遷移し、存在する場合にはＳ２０４に遷移する。
【０１１１】
Ｓ５０２で、プラグインタスク管理部５２は、優先度「Ｈｉｇｈ」を示すリモートタスクの対象となるネットワークデバイスを対象としたサブ探索タスクが、図６で示す実行待ちタスクキューに既に存在しているか否かを判定する。ここで、存在していると判定された場合にはＳ５０３に遷移し、存在していないと判定された場合にはＳ２０４に遷移する。
【０１１２】
Ｓ５０３では、プラグインタスク管理部５２は、優先度「Ｈｉｇｈ」を示すリモートタスクと、該当するサブ探索タスクとを連結した優先度「Ｈｉｇｈ」の連結タスクを生成する。この連結タスクは、同じネットワークデバイスに対して、サブ探索タスクと優先度「Ｈｉｇｈ」を示すリモートタスクとを連続で実行するためのタスクである。例えば、サブ探索タスクとデバイス認証タスクとにより連結タスクとして生成され、その際には実行待ちタスクキューに登録されていた当該サブ探索タスクは削除される。なお、連結タスクの実行に際して、サブ探索タスクの実行結果が失敗であった場合には、対象となるネットワークデバイスへのデバイス認証タスクはキャンセルされる。そして、Ｓ２０４以降では、この連結タスクについて処理を継続する。
【０１１３】
本実施例の制御により、無駄となるワンショットタスクの実行が抑制される。
【０１１４】
（他の実施例）
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
【０１１５】
ここで、本発明は、上述した実施形態の機能を実現する１以上のソフトウェア（プログラム）を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の１以上のコンピュータ（ＣＰＵやＭＰＵ等）によりプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピュータにより読み取り可能な各種記憶媒体も含むものとする。
【図１】
2015114895.tif 000003
【図２】
2015114895.tif 000004
【図３】
2015114895.tif 000005
【図４】
2015114895.tif 000006
【図５】
2015114895.tif 000007
【図６】
2015114895.tif 000008
【図７】
2015114895.tif 000009
【図８】
2015114895.tif 000010
【図９】
2015114895.tif 000011
【図１０】
2015114895.tif 000012
【図１１】
2015114895.tif 000013
【図１２】
2015114895.tif 000014
【図１３】
2015114895.tif 000015
【図１４】
2015114895.tif 000016
【図１５】
2015114895.tif 000017
【図１６】
2015114895.tif 000018
【図１７】
2015114895.tif 000019
【図１８】
2015114895.tif 000020