(57)【要約】      （修正有）【課題】ネットワーク機器の構成が変更された場合でも継続してネットワーク機器の管理を行うことができる仕組みを提供する。【解決手段】管理アプリケーション２００は、ＭＦＰ１５０への操作のために必要な該ＭＦＰ１５０の提供するウェブページを介した命令をスクリプトとして管理し、該スクリプトを用いて、ＭＦＰ１５０の提供するウェブページを介して、該ネットワーク機器への操作を実行する。また、管理アプリケーション２００は、ＭＦＰ１５０の構成情報を取得し、該取得されたＭＦＰ１５０の構成情報に基づき、管理しているスクリプトの修正が必要か否かを判定し、修正が必要であると判定した場合、該スクリプトの修正を行い、修正されたスクリプトを管理する。【選択図】図２
2015125472.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク機器への操作のために必要な該ネットワーク機器の提供するウェブページを介した命令をスクリプトとして管理する管理手段と、
前記管理手段により管理されているスクリプトを用いて、前記ネットワーク機器の提供するウェブページを介して、該ネットワーク機器への操作を実行する実行手段と、
前記ネットワーク機器の構成情報を取得する取得手段と、
前記取得手段により取得された前記ネットワーク機器の構成情報に基づき、前記管理手段に管理されているスクリプトの修正が必要か否かを判定する判定手段と、
前記判定手段により前記管理手段に管理されているスクリプトの修正が必要であると判定された場合に、該スクリプトの修正を行う修正手段と、を有し、
前記管理手段は、前記修正手段により修正されたスクリプトを管理することを特徴とする管理装置。
【請求項２】
前記判定手段は、前記スクリプトの修正がユーザの操作なしに可能か否かをさらに判定し、
前記管理装置は、前記判定手段により前記スクリプトの修正がユーザの操作なしに可能でないと判定された場合に、ユーザの操作により該スクリプトの修正を行うための修正画面の表示制御を行う表示制御手段を、さらに有し、
前記管理手段は、前記修正画面を介して修正されたスクリプトを管理することを特徴とする請求項１に記載の管理装置。
【請求項３】
前記修正画面を介した前記スクリプトの修正は、前記修正画面に表示される前記スクリプトをユーザ入力により修正することを特徴とする請求項２に記載の管理装置。
【請求項４】
前記修正画面を介した前記スクリプトの修正は、前記修正画面から行われるユーザによる前記ネットワーク機器の提供するウェブページへの操作の記録に基づいて修正することを特徴とする請求項２に記載の管理装置。
【請求項５】
前記表示制御手段は、前記修正画面に、前記スクリプトのエラー箇所を表示することを特徴とする請求項２乃至４のいずれか１項に記載の管理装置。
【請求項６】
前記実行手段が前記管理されたスクリプトを用いたネットワーク機器への操作に失敗し、かつ、該失敗の原因が通信エラーによる失敗ではない場合に、前記取得手段が前記ネットワーク機器の構成情報を取得し、前記判定手段が前記管理手段に管理されているスクリプトの修正が必要か否かを判定することを特徴とする請求項１乃至５のいずれか１項に記載の管理装置。
【請求項７】
前記ネットワーク機器に対する構成変更の操作を検知する検知手段を有し、
前記検知手段により前記ネットワーク機器に対する構成変更の操作が検知された場合に、前記取得手段が前記ネットワーク機器の構成情報を取得し、前記判定手段が前記管理手段に管理されているスクリプトの修正が必要か否かを判定することを特徴とする請求項１乃至５のいずれか１項に記載の管理装置。
【請求項８】
前記ネットワーク機器への操作は、該ネットワーク機器に情報を設定する操作、または該ネットワーク機器から情報を取得する操作であることを特徴とする請求項１乃至７のいずれか１項に記載の管理装置。
【請求項９】
前記管理手段は、前記スクリプトと、前記スクリプトの実行対象となるネットワーク機器とを紐付けたタスク情報も管理するものであり、
前記タスク情報においてネットワーク機器に紐付けされるスクリプトを、前記管理手段に管理されているスクリプトの中から前記取得手段により取得された当該ネットワーク機器の構成情報に合致すると判断されたスクリプトに切り替える切り替え手段をさらに有することを特徴とする請求項１乃至８のいずれか１項に記載の管理装置。
【請求項１０】
前記ネットワーク機器の構成情報は、該ネットワーク機器の設定情報、該ネットワーク機器に接続されたオプション機器情報、該ネットワーク機器にインストールされたアプリケーション情報の少なくともいずれかを含むことを特徴とする請求項１乃至９のいずれか１項に記載の管理装置。
【請求項１１】
前記管理手段は、前記ネットワーク機器の提供するウェブページのページ構成情報の履歴も管理するものであり、
前記判定手段は、前記ネットワーク機器の提供するウェブページの現在のページ構成情報と過去のページ構成情報との差分に基づいて、前記スクリプトの修正がユーザの操作なしに可能か否かを判定するものであり、
前記修正手段は、前記ウェブページのページ構成情報の差分に基づいて、前記スクリプトの修正を行うことを特徴とする請求項１乃至１０のいずれか１項に記載の管理装置。
【請求項１２】
前記ウェブページのページ構成情報は、前記ウェブページのページ階層情報と前記ウェブページのＨＴＭＬ情報を含むことを特徴とする請求項１１に記載の管理装置。
【請求項１３】
ネットワーク機器への操作のために必要な該ネットワーク機器の提供するウェブページを介した命令をスクリプトとして管理する管理手段と、前記管理手段により管理されているスクリプトを用いて、前記ネットワーク機器の提供するウェブページを介して、該ネットワーク機器への操作を実行する実行手段とを有する管理装置の制御方法であって、
前記ネットワーク機器の構成情報を取得する取得ステップと、
前記取得ステップにより取得された前記ネットワーク機器の構成情報に基づき、前記管理手段に管理されているスクリプトの修正が必要か否かを判定する判定ステップと、
前記判定ステップにより前記管理手段に管理されているスクリプトの修正が必要であると判定された場合に、該スクリプトの修正を行う修正ステップと、
前記修正ステップにより修正されたスクリプトを前記管理手段で管理するステップと、
を有することを特徴とする管理装置の制御方法。
【請求項１４】
コンピュータを、請求項１乃至１２のいずれか１項に記載された手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク機器を管理する技術に関する。
【背景技術】
【０００２】
従来、管理サーバ等から画像形成装置等のネットワーク機器の管理する場合、機器の製造元（以下、ベンダ）の独自プロトコルが使用されていた。
特許文献１では、ネットワーク機器を管理するソフトウェアに、各ベンダ用に用意されたＤＬＬ化されたプログラムを適用する技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−７２７５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、近年、ベンダの独自プロトコルを利用することなくネットワーク機器を管理する技術、例えばＷｅｂスクレイピング技術を利用してネットワーク機器を管理する技術が注目されており、このような技術について改良が望まれている。
【０００５】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ネットワーク機器の構成が変更された場合でも継続してネットワーク機器の管理を行うことができる仕組みを提供することである。
【課題を解決するための手段】
【０００６】
本発明は、ネットワーク機器への操作のために必要な該ネットワーク機器の提供するウェブページを介した命令をスクリプトとして管理する管理手段と、前記管理手段により管理されているスクリプトを用いて、前記ネットワーク機器の提供するウェブページを介して、該ネットワーク機器への操作を実行する実行手段と、前記ネットワーク機器の構成情報を取得する取得手段と、前記取得手段により取得された前記ネットワーク機器の構成情報に基づき、前記管理手段に管理されているスクリプトの修正が必要か否かを判定する判定手段と、前記判定手段により前記管理手段に管理されているスクリプトの修正が必要であると判定された場合に、該スクリプトの修正を行う修正手段と、を有し、前記管理手段は、前記修正手段により修正されたスクリプトを管理することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ネットワーク機器の構成が変更された場合でも継続してネットワーク機器の管理を行うことができる。
【図面の簡単な説明】
【０００８】
【図１】本実施例のネットワークシステムのハードウェア構成を例示する図。
【図２】本実施例のネットワークシステムのソフトウェア構成を例示する図。
【図３Ａ】本実施例におけるテーブル構成を例示する図。
【図３Ｂ】本実施例におけるテーブル構成を例示する図。
【図３Ｃ】本実施例におけるテーブル構成を例示する図。
【図４】本実施例におけるスクリプトの記述を例示する図。
【図５】実施例１におけるアプリケーションサーバの動作を例示するフローチャート。
【図６】本実施例におけるスクリプトの修正画面を例示する図。
【図７】本実施例におけるＷｅｂＵＩ操作画面を例示する図
【図８】実施例２におけるアプリケーションサーバの動作を例示するフローチャート。
【図９】実施例３におけるアプリケーションサーバの動作を例示するフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１０】
以下、本発明に係るネットワーク機器を管理する管理装置を含むネットワークシステムの一実施例について説明する。ここでは、管理装置の一例としてアプリケーションサーバを取り上げて説明する。また、ネットワーク機器の一例として、本実施例ではＭＦＰ、すなわちMultifunction Peripheral、複合機を取り上げて説明する。ネットワーク機器には、プリンタ、ＦＡＸなどのＭＦＰ以外のものも含む。
【００１１】
また、本明細書では、プログラムがネットワーク機器のＷｅｂＵＩを操作、解析、情報抽出することを、Ｗｅｂスクレイピングという言葉を用いて説明する。本明細書においてＷｅｂスクレイピングとは、スクリプトの記述手順に従ってＷｅｂＵＩを操作し、ＨＴＭＬを解析してネットワーク機器の情報を抽出すること、及び、マウス操作やキーボード操作等の入力処理をシミュレートし、ＷｅｂＵＩを操作することを意味する。
【００１２】
Ｗｅｂスクレイピングの用途の例として、ネットワーク機器の種々の設定を任意の値に変更したり、ファイルのアップロード機能を利用して特定のアプリケーションや証明書等のライセンスファイルを配布しインストールする等の用途が挙げられる。また、ネットワーク機器の各種ステータスをＷｅｂＵＩから定期的に取得し、ネットワーク機器の状態監視を行うことも可能である。もちろん、それ以外の用途でもよい。
【００１３】
図１は、本発明の一実施例を示す管理装置を含むネットワークシステムのシステム構成およびハードウェア構成の一例を示すブロック図である。
【００１４】
ネットワークシステムは、ネットワーク１７０により接続されるアプリケーションサーバ１００、１又は複数のクライアントコンピュータ１２０および１又は複数のＭＦＰ１５０（ネットワーク機器）を有する。なお、アプリケーションサーバ１００およびクライアントコンピュータ１２０は、汎用コンピュータの構成を有する。クライアントコンピュータ１２０のハードウェア構成についてはアプリケーションサーバ１００と同様のため、説明を省略する。
【００１５】
アプリケーションサーバ１００において、１０１はＣＰＵであり、ＲＯＭ１０３あるいは外部メモリ１１１に記憶されたアプリケーションプログラム等に基づいて処理を実行する。さらに、ＣＰＵ１０１は、システムバス１１２に接続される各デバイスを総括的に制御する。また、ＣＰＵ１０１は、ディスプレイ１０９上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のアプリケーションウィンドウを開き、種々のデータ処理を実行する。
【００１６】
１０２はＲＡＭであり、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。１０３はＲＯＭであり、基本Ｉ／Ｏプログラム等の記憶領域として機能する読み出し専用のメモリである。このＲＯＭ１０３あるいは外部メモリ１１１には、ＣＰＵ１０１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等が記憶される。さらに、ＲＯＭ１０３あるいは外部メモリ１１１には、上記アプリケーションプログラム等に基づく処理の際に使用するファイルやその他各種データを記憶する。
【００１７】
１０４はネットワークＩ／Ｆであり、ネットワーク１７０へ接続しネットワーク通信を行う。１０５は入力Ｉ／Ｆであり、キーボード１０６やマウス等のポインティングデバイス１０７からの入力を制御する。１０８はディスプレイＩ／Ｆであり、ディスプレイ１０９の表示を制御する。１１０は外部メモリＩ／Ｆであり、ハードディスク（ＨＤ）やソリッドステートドライブ（solid state drive、ＳＳＤ）等の外部メモリ１１１とのアクセスを制御する。１１１は外部メモリであり、ブートプログラム、各種のアプリケーション、ユーザファイル、編集ファイル等を記憶する。
【００１８】
アプリケーションサーバ１００は、ＣＰＵ１０１がＲＯＭ１０３や外部メモリ１１１に書き込まれた基本Ｉ／ＯプログラムおよびＯＳを実行している状態で動作する。基本Ｉ／ＯプログラムはＲＯＭ１０３に書き込まれており、ＯＳはＲＯＭ１０３もしくは外部メモリ１１１に書き込まれている。そしてコンピュータの電源がＯＮされたときに、基本Ｉ／Ｏプログラム中のイニシャルプログラムロード機能により、ＲＯＭ１０３もしくは外部メモリ１１１からＯＳがＲＡＭ１０２に書き込まれ、ＯＳの動作が開始される。１１２はシステムバスであり、各デバイスを接続する。
【００１９】
ＭＦＰ１５０において、１５１はネットワークＩ／Ｆであり、ネットワーク１７０へ接続しネットワーク通信を行う。１５２はＣＰＵであり、制御プログラム等に基づいてシステムバス１６５に接続されるプリンタＩ／Ｆ１５７を介してプリンタ１５８に出力情報としての画像信号を出力する。なお、制御プログラムは、ＲＯＭ１５４や外部メモリ１６２等に記憶される。
【００２０】
また、ＣＰＵ１５２は、ネットワークＩ／Ｆ１５１を介してコンピュータとの通信処理が可能となっており、ＭＦＰ１５０内の情報等をアプリケーションサーバ１００に通知可能なように構成されている。さらに、ＣＰＵ１５２は、ＲＯＭ１５４あるいは外部メモリ１６２に記憶されたアプリケーションプログラム等に基づいて処理を実行する。
【００２１】
１５３はＲＡＭであり、ＣＰＵ１５２の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ１５３は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。
【００２２】
１５４はＲＯＭであり、１６２はハードディスク（ＨＤ）、ソリッドステートドライブ（ＳＳＤ）ＩＣカード等の外部メモリである。このＲＯＭ１５４あるいは外部メモリ１６２には、ＣＰＵ１５２の制御プログラムやアプリケーションプログラムおよび上記出力情報を生成する際に使用するフォントデータ、ＭＦＰ１５０上で利用される情報等が記憶される。また、ＲＯＭ１５４あるいは外部メモリ１６２には、ＭＦＰ１５０のアプリケーションインストール時にアプリケーションが一時的に格納される。
【００２３】
１５５は操作部Ｉ／Ｆであり、操作部１５６との間のインターフェースをつかさどり、表示すべき画像データを操作部１５６に対して出力する。また、ユーザが操作部１５６を介して入力した情報の受信も行う。１５６は操作部であり、操作のためのスイッチおよびＬＥＤ表示器等が配されている操作パネル等に相当する。
【００２４】
１５７はプリンタＩ／Ｆであり、プリンタ１５８（プリンタエンジン）に出力情報としての画像信号を出力する。１５９はスキャナＩ／Ｆであり、スキャナ１６０（スキャナエンジン）からの入力情報として画像信号を受信する。
【００２５】
１６１は外部メモリＩ／Ｆ（メモリコントローラ）であり、外部メモリ１６２へのアクセスを制御する。また、外部メモリ１６２は１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを有し、操作部１５６からのプリンタモード設定情報を記憶するようにしてもよい。
【００２６】
１６３はオプション機器Ｉ／Ｆであり、フィニッシャ、カセットユニット等のオプション機器１６４へのアクセスを制御する。オプション機器は、フィニッシャやカセットユニットの他に、カメラやＩＣカードリーダ等のＭＦＰの機能及び機構を拡張する周辺機器でもよい。１６５はシステムバスであり、各デバイスを接続する。
【００２７】
図２は、本実施例の管理装置を含むネットワークシステムのソフトウェア構成の一例を示すブロック図である。
【００２８】
まず、アプリケーションサーバ１００のソフトウェア構成を示す。
アプリケーションサーバ１００において、管理アプリケーション２００および各モジュール２０１〜２０３は、アプリケーションサーバ１００の外部メモリ１１１に保存されたファイルとして存在する。これらは実行時に、ＣＰＵ１０１により実行されるＯＳやそのモジュールを利用するモジュールによって、ＲＡＭ１０２にロードされて実行され、アプリケーションサーバ１００に機能を提供するプログラムモジュールである。なお、管理アプリケーション２００は、外部メモリ１１１の不図示のＣＤ−ＲＯＭ、あるいはネットワーク１７０を経由して外部メモリ１１１のＨＤに追加することが可能となっている。
【００２９】
２０１はネットワークモジュールであり、任意の通信プロトコルを使用してクライアントコンピュータ１２０やＭＦＰ１５０とのネットワーク通信を行う。
【００３０】
管理アプリケーション２００は、アプリケーションサーバ１００とネットワーク１７０で接続されたＭＦＰ１５０を管理するアプリケーションである。管理アプリケーション２００は、例えば、後述するＷｅｂサーバサービスモジュール２０５が提供するＷｅｂページへのリクエストに応答して処理を実行するプログラムとして実装される。上記のように、管理アプリケーション２００はＷｅｂサーバサービスモジュール２０５とともに、ＭＦＰ１５０を管理するＷｅｂアプリケーションを実現している。
【００３１】
管理アプリケーション２００において、２０５はＷｅｂサーバサービスモジュールであり、クライアントコンピュータ１２０のＷｅｂブラウザ２２１からのＨＴＴＰリクエストを受け取るとＨＴＴＰレスポンスを応答するサービスを提供する。応答するＨＴＴＰレスポンスの例として、後述するＵＩモジュール２０４にＨＴＴＰレスポンスの生成を要求してもよし、外部メモリ１１１に保存されたＷｅｂページデータを返信してもよい。
【００３２】
２０４はＵＩモジュールであり、Ｗｅｂサーバサービスモジュール２０５からの要求に応じてＨＴＴＰレスポンスを生成する。また、ＵＩモジュール２０４は、クライアントコンピュータ１２０のＷｅｂブラウザ２２１から送信されたユーザ入力情報を受信し、必要に応じて各モジュールを呼び出す。ＵＩモジュール２０４が呼び出すモジュールとしては、例えば、Ｗｅｂサーバサービスモジュール２０５、探索モジュール２０６、Ｗｅｂスクレイピング管理モジュール２０７、機器構成管理モジュール２０９などがある。また、ＵＩモジュール２０４がこれら以外のモジュールを呼び出してもよい。
【００３３】
２０６は探索モジュールであり、アプリケーションサーバ１００とネットワーク１７０で接続されたＭＦＰ１５０を、任意の通信プロトコルを使って探索する。探索モジュール２０６が探索に使用する通信プロトコルの例としては、ＳＮＭＰ（Simple Network Management Protocol）やＳＬＰ（Service Location Protocol）等が挙げられる。他にもＷＳ−Ｄｉｓｃｏｖｅｒｙ（Web Services Dynamic Discovery）などの通信プロトコルを使用してもよい。探索モジュール２０６は、ＭＦＰ１５０を探索したら、ＭＦＰ１５０から機器情報を取得して、後述するデータベースサーバサービスモジュール２０２の機器管理テーブル３０５（図３）へ格納する。
【００３４】
２０７はＷｅｂスクレイピング管理モジュールであり、ネットワーク１７０を経由しＭＦＰ１５０に対してＨＴＴＰリクエストを行い、ＭＦＰ１５０に任意のデータを送信することができる。また、Ｗｅｂスクレイピング管理モジュール２０７は、ＭＦＰ１５０のＷｅｂサーバサービスモジュール２３１が生成するＨＴＴＰレスポンスを受信し、ＨＴＭＬ記述を解析することで、特定の情報の抽出を行うことができる。
【００３５】
また、Ｗｅｂスクレイピング管理モジュール２０７は、後述のデータベースサーバサービスモジュール２０２のタスク管理テーブル３０６（図３）からタスク情報を取得し、タスク情報を元に後述のデータベースサーバサービスモジュール２０２もしくはファイルサーバサービスモジュール２０３に格納されたスクリプト（一例を図４に示す）を取得する。さらに、Ｗｅｂスクレイピング管理モジュール２０７は、取得したスクリプトを読み取り、スクリプトに記述された命令に従ってＭＦＰ１５０のＷｅｂサーバサービスモジュール２３１によって提供されるＷｅｂＵＩを操作することができる。ＷｅｂＵＩの操作とは、例えばＵＲＬ指定によるＷｅｂページ遷移や、入力フォームでのキーボード入力やマウスのクリック操作、そして、ＨＴＭＬ記述から特定の文字列を検索、比較し、特定の情報を抽出する等の操作が挙げられる。
【００３６】
図４は、本実施例におけるスクリプトの記述を例示する図である。
図４のスクリプトは、前述の操作命令をＪＳＯＮ（JavaScript Object Notation）形式で記述した例である。ＪＳＯＮ形式の他にも、ＸＭＬ（Extensible Markup Language）等の他の記述形式で記述してもよい。Ｗｅｂスクレイピング管理モジュール２０７は、図４に示すようなスクリプトの記述を読み取り、ＷｅｂＵＩ操作を実行することができる。なお、スクリプトでは、各操作間の待ち時間を指定可能であり、任意のタイミングで操作を実行できてもよい。
【００３７】
２０８は機器操作モジュールであり、ユーザからの入力を元にＭＦＰ１５０への設定変更操作を実行する。設定変更操作とは、例えば、ＭＦＰ１５０のファームウェアをアップデートする操作、ＭＦＰ１５０にアプリケーションをインストール、もしくはアンインストールする操作、デバイスに搭載された種々の機能を無効化、もしくは有効化する操作等が挙げられる。もちろん、ＭＦＰ１５０の設定を変更する操作であれば、前述の操作以外の操作でもよい。
【００３８】
なお、上記ファームウェアのアップデート及びアプリケーションのインストール、アンインストール等の処理は、実行日時指定のタスク処理として実行してもよい。この場合、機器操作モジュール２０８は、後述のデータベースサーバサービスモジュール２０２のアプリケーション管理テーブル３０２（図３）および不図示のアプリケーションインストールタスク管理テーブル等からタスク情報を取得する。また、ファームウェアアップデート及びアプリケーションのインストール等に必要なデータは、後述のファイルサーバサービスモジュール２０３に格納されているものとする。
【００３９】
２０３はファイルサーバサービスモジュールであり、ファイルを管理し、他モジュールからの要求に合わせてファイルの格納と取り出しを行う。ファイルサーバサービスモジュール２０３は、管理アプリケーション２００からアクセス可能であれば、アプリケーションサーバ１００とは別の機器上にあってもよい。この場合、ネットワーク１７０経由でのファイル送受信にはＦＴＰ（File Transfer Protocol）やＷｅｂＤＡＶ（Web-based Distributed Authoring and Versioning）等のプロトコルを使用してもよい。
【００４０】
２０２はデータベースサーバサービスモジュールであり、データを管理し、他モジュールからの要求に合わせてデータの格納と取り出しを行う。データベースサーバサービスモジュール２０２は、管理アプリケーション２００からアクセス可能であれば、アプリケーションサーバ１００とは別の機器上にあってもよい。
【００４１】
２０９は機器構成管理モジュールであり、ＭＦＰ１５０の構成情報を管理する。ＭＦＰ１５０の構成情報としては、例えばＭＦＰ１５０の製品名やベンダ情報、ＭＦＰ１５０のファームウェアのバージョン情報、ＭＦＰ１５０にインストールされているアプリケーションの識別名称やバージョン情報、ＭＦＰ１５０に接続されているオプション機器の製品名やベンダ情報等が挙げられる。ＭＦＰ１５０の構成情報は、ＭＦＰ１５０を構成するハードウェア及びソフトウェアの情報であれば、それ以外の構成情報であってもよい。
【００４２】
また、ＭＦＰ１５０の構成情報は、後述する図３に示すような、データベースサーバサービスモジュール２０２のベンダ管理テーブル３００、製品機種管理テーブル３０１、アプリケーション管理テーブル３０２、オプション機器管理テーブル３０３、機器管理テーブル３０５等に格納されている。これらのテーブル情報を読み書きすることで、機器構成管理モジュール２０９はＭＦＰ１５０の構成情報を管理する。
【００４３】
図３Ａ〜図３Ｃは、データベースサーバサービスモジュール２０２内のテーブル構成の一例を示す図である。なお、図３Ａ〜図３Ｃのテーブル構成はあくまで一例であり、本例とは異なるテーブル構成であってもよい。
【００４４】
３００はベンダ管理テーブルであり、管理アプリケーション２００が管理するＭＦＰ１５０の製造ベンダ名等のベンダ情報を管理するためのテーブルである。ベンダ管理テーブル３００で管理する情報としては、例えばベンダ識別子、ベンダ名等が挙げられる。ここで、ベンダ識別子は、ベンダを一意に識別する識別子である。また、ＭＦＰ１５０に接続されたオプション機器、及びＭＦＰ１５０にインストールされたアプリケーションのベンダ情報も、同一のベンダ管理テーブル３００で管理することができる。なお、ＭＦＰ、オプション機器、アプリケーション等の専用のベンダ管理テーブルを作成してもよい。
【００４５】
３０１は製品機種管理テーブルであり、管理アプリケーション２００が管理するＭＦＰ１５０の製品情報を管理するためのテーブルである。製品機種管理テーブル３０１で管理する情報としては、例えば製品機種識別子、ベンダ識別子、製品識別名称、ファームウェアバージョン等が挙げられる。ここで、製品機種識別子は、製品機種を一意に識別する識別子である。
【００４６】
３０２はアプリケーション管理テーブルであり、機器構成管理モジュール２０９が、ＭＦＰ１５０にインストールされているアプリケーションの情報を管理するためのテーブルである。アプリケーション管理テーブル３０２で管理する情報としては、例えばアプリケーション識別子、アプリケーション名、ベンダ識別子、バージョン等が挙げられる。ここで、アプリケーション識別子は、アプリケーションを一意に識別する識別子である。またベンダ識別子とは、ベンダ管理テーブル３００におけるベンダ識別子を指しており、ベンダ情報を関連付けるための識別子である。
【００４７】
３０３はオプション機器管理テーブルであり、機器構成管理モジュール２０９が、ＭＦＰ１５０に接続されているオプション機器の情報を管理するためのテーブルである。オプション機器管理テーブル３０３で管理する情報としては、例えばオプション機器識別子、アベンダ識別子、オプション製品名称等が挙げられる。ここで、オプション機器識別子は、オプション機器を一意に識別する識別子である。またベンダ識別子とは、ベンダ管理テーブル３００におけるベンダ識別子を指しており、ベンダ情報を関連付けるための識別子である。
【００４８】
３０４はスクリプト管理テーブルであり、Ｗｅｂスクレイピング管理モジュール２０７が、ＭＦＰ１５０に対してＷｅｂスクレイピングを実行するための操作命令を記述したスクリプトを管理するためのテーブルである。スクリプト管理テーブル３０４で管理する情報としては、例えばスクリプト識別子、スクリプト名称、製品機種識別子、オプション機器識別子、アプリケーション識別子、スクリプトデータ、目的識別子等が挙げられる。
【００４９】
ここで、スクリプト識別子とは、スクリプトを一意に識別する識別子である。製品機種識別子とは、製品機種管理テーブル３０１における製品機種識別子を指しており、ＭＦＰ１５０の機種情報を関連付けるための識別子である。オプション機器識別子とは、オプション機器管理テーブル３０３におけるオプション機器識別子を指しており、ＭＦＰ１５０に接続されたオプション機器情報を関連付けるための識別子である。アプリケーション識別子とは、アプリケーション管理テーブル３０２におけるアプリケーション識別子を指しており、ＭＦＰ１５０にインストールされているアプリケーション情報を関連付けるための識別子である。
【００５０】
スクリプトデータとは、スクリプト（図４のような）のファイル本体が格納されているファイルサーバサービスモジュール２０３上のパスを示す情報である。または、スクリプトファイルをデータベースにバイナリデータ形式として保存してもよい。さらに、種々のスクリプトをデータベースで管理することも可能であり、一つのバイナリデータ形式で管理しなくてもよいものとする。
【００５１】
目的識別子とは、スクリプトの目的を一意に識別する識別子である。スクリプトの目的とは、例えば、ＭＦＰ１５０の設定変更、ＭＦＰ１５０へのアプリケーションやライセンスファイルのインストール、ＭＦＰ１５０のステータスの取得等がある。なお、スクリプトの目的は、例えば、スクリプトの登録時にカテゴライズされ登録されるものとする。
【００５２】
スクリプト管理テーブル３０４では、ネットワーク機器と該ネットワーク機器に接続されたオプション機器、そしてインストールされているアプリケーション等の構成条件情報と、各構成条件に対応したスクリプトデータ及び目的識別子が予め登録されているものとする。なお、スクリプト管理テーブル３０４に目的識別子を登録することなく、必要に応じて、スクリプトの記述から判断するようにしてもよい。例えば、スクリプトに記述される、ページ遷移フロー、扱うファイル、取得したデータの格納先等により、必要なタイミングで目的を判断するようにしてもよい。
【００５３】
３０５は機器管理テーブルであり、管理アプリケーション２００が管理するＭＦＰ１５０に関する情報を管理するテーブルである。機器管理テーブル３０５で管理する情報としては、例えばネットワーク機器識別子、機器名称、ユーザアカウント、パスワード、製品機種識別子、オプション機器識別子、アプリケーション識別子、ＩＰアドレス、ＨＴＴＰポート番号、シリアルナンバー、最終探索日時（不図示）等が挙げられる。
【００５４】
ここで、ネットワーク機器識別子とは、ＭＦＰ１５０を一意に識別する識別子である。製品機種識別子とは、製品機種管理テーブル３０１における識別子を指しており、ＭＦＰ１５０の機種情報を関連付けるための識別子である。ユーザアカウントとは、ＭＦＰ１５０のユーザ認証に必要なログイン情報であり、ＭＦＰ１５０にログイン可能なユーザ名である。またパスワードもユーザ認証に用いるものとする。
【００５５】
オプション機器識別子とは、オプション機器管理テーブル３０３におけるオプション機器識別子を指しており、ＭＦＰ１５０に接続されているオプション機器情報を関連付けるための識別子である。アプリケーション識別子とは、アプリケーション管理テーブル３０２におけるアプリケーション識別子を指しており、ＭＦＰ１５０にインストールされているアプリケーション情報を関連付けるための識別子である。最終探索日時（不図示）は、管理アプリケーション２００の探索モジュール２０６がＭＦＰ１５０を最後に探索した日時の情報である。
【００５６】
３０６はタスク管理テーブルであり、Ｗｅｂスクレイピング管理モジュール２０７がＭＦＰ１５０に対してＷｅｂスクレイピングを実行するためのタスク情報を管理するテーブルである。タスク管理テーブル３０６で管理する情報としては、例えばタスク識別子、タスク種別、タスク実行間隔、次回実行日時、ネットワーク機器識別子、次回実行スクリプト識別子等が挙げられる。
【００５７】
ここで、タスク識別子とは、タスクを一意に識別する識別子である。タスク種別は、タスク実行周期を指定する。例えば、一定時間間隔、もしくは年毎、月毎、週毎などで指定可能な、定期的に実行するという種別もあれば、指定の日時に１回のみ実行するという種別も挙げられる。タスク実行間隔では、前述のタスクの実行間隔を指定するものとする。次回実行日時では、次回のタスク実行予定日時が指定されており、この日時にタスクを実行する。ネットワーク機器識別子とは、機器管理テーブル３０５におけるネットワーク機器識別子を指しており、特定のＭＦＰ１５０を関連付けるための識別子である。ここで関連付けられたＭＦＰ１５０に対して、タスクを実行する。次回実行スクリプト識別子とは、スクリプト管理テーブル３０４におけるスクリプト識別子を指しており、次回実行時に使用するスクリプトを関連付けるための識別子である。
【００５８】
３０７は実行結果管理テーブルであり、Ｗｅｂスクレイピング管理モジュール２０７が、ＭＦＰ１５０に対してＷｅｂスクレイピングタスクを実行した際のタスク実行結果情報を管理するテーブルである。実行結果管理テーブル３０７で管理する情報としては、例えばタスク実行結果識別子、タスク識別子、実行日時、タスク実行結果、実行スクリプト識別子、実行ログデータ、スクリプト修正実施フラグ、スクリプト修正結果等が挙げられる。
【００５９】
ここで、タスク実行結果識別子とは、タスク実行結果を一意に識別する識別子である。タスク識別子とは、タスク管理テーブル３０６におけるタスク識別子を指しており、Ｗｅｂスクレイピングの実行に用いられたタスク情報を関連付けるための識別子である。実行スクリプト識別子とは、スクリプト管理テーブル３０４におけるスクリプト識別子を指しており、タスク実行時に使用したスクリプトを関連付けるための識別子である。
【００６０】
実行ログデータとは、Ｗｅｂスクレイピング実行時に出力されるログファイルのことであり、ここでは、ログファイルが格納されているファイルサーバサービスモジュール２０３上のパスを示す。ログファイルに出力されるログ情報は、例えばネットワーク機器情報、ＷｅｂＵＩページ遷移情報、ＨＴＭＬ情報、各コマンドの実行結果、各種パラメータ、スクリプト実行エラー情報等が挙げられる。ログファイルは、ファイル形式でなく、データベース上で管理されてもよく、ログファイルをデータベースにバイナリデータ形式として保存してもよい。さらに、種々のログデータをデータベースで管理することも可能であり、一つのバイナリデータ形式で管理しなくてもよいものとする。
【００６１】
３０８は、ウェブページのページ構成情報（ＷｅｂＵＩ情報）を管理するＷｅｂＵＩ情報管理テーブルである。ＷｅｂＵＩ情報管理テーブル３０８は、Ｗｅｂスクレイピング管理モジュール２０７が、ＭＦＰ１５０のＷｅｂＵＩにアクセスして取得したＷｅｂＵＩ情報（ＷｅｂＵＩのページ階層情報と各ページのＨＴＭＬ情報等）を管理するテーブルである。ＷｅｂＵＩ情報管理テーブル３０８で管理する情報（ＷｅｂＵＩ情報）としては、例えばＷｅｂＵＩ情報識別子、ＷｅｂＵＩ階層データ、ＷｅｂＵＩＨＴＭＬデータ、取得日時、ネットワーク機器識別子等が挙げられる。
【００６２】
ここで、ＷｅｂＵＩ情報識別子とは、ＷｅｂＵＩ情報を一意に識別する識別子である。ＷｅｂＵＩ階層データとは、ＷｅｂＵＩページの階層情報を示すデータである。ＷｅｂＵＩＨＴＭＬデータとは、ＷｅｂＵＩページのＨＴＭＬ情報を示すデータである。取得日時とは、ＷｅｂＵＩ情報を取得した日時を示す。ネットワーク機器識別子とは、機器管理テーブル３０５におけるネットワーク機器識別子を指しており、特定のＭＦＰ１５０を関連付けるための識別子である。
【００６３】
なお、Ｗｅｂスクレイピング管理モジュール２０７により新たなＷｅｂＵＩ情報が取得された場合には、新たなレコードがＷｅｂＵＩ情報管理テーブル３０８に追加され、該取得されたＷｅｂＵＩ情報が格納される。このように、ＷｅｂＵＩ情報管理テーブル３０８では、ネットワーク機器のＷｅｂＵＩ情報の履歴を管理可能である。
【００６４】
次に、再び図２を用いて、クライアントコンピュータ１２０のソフトウェア構成を示す。なお、クライアントコンピュータ１２０を構成する各モジュールはそれぞれＲＯＭ１０３もしくは外部メモリ１１１に保存されたファイルとして存在するプログラムモジュールである。そして、実行時に、クライアントコンピュータ１２０のＣＰＵ１０１で実行されるＯＳやそのモジュールを利用するモジュールによってＲＡＭ１０２にロードされ実行され、クライアントコンピュータ１２０に機能を提供するプログラムモジュールである。
【００６５】
２２０はネットワークモジュールであり、任意の通信プロトコルを使用してアプリケーションサーバ１００およびＭＦＰ１５０とのネットワーク通信を行う。２２１はＷｅｂブラウザであり、ネットワークモジュール２２０を介してＨＴＴＰリクエストメッセージを送信し、ＨＴＴＰレスポンスメッセージを受信して表示する。Ｗｅｂブラウザ２２１は、クライアントコンピュータ１２０からアプリケーションサーバ１００へのアクセスはＷｅｂブラウザ２２１を通じて行われる。
【００６６】
続いて、ＭＦＰ１５０のソフトウェア構成を示す。
ＭＦＰ１５０において、各種モジュールは、ＲＯＭ１５４あるいは外部メモリ１６２に保存されたファイルとして存在し、実行時にＣＰＵ１５２によりＲＡＭ１５３にロードされて実行され、ＭＦＰ１５０に機能を提供する。
【００６７】
２３０はネットワークモジュールであり、任意の通信プロトコルを使用してアプリケーションサーバ１００やクライアントコンピュータ１２０とのネットワーク通信を行う。
【００６８】
２３１はＷｅｂサーバサービスモジュールであり、管理アプリケーション２００のＷｅｂスクレイピング管理モジュール２０７、及びクライアントコンピュータ１２０のＷｅｂブラウザ２２１からのＨＴＴＰリクエストを受信し、ＨＴＴＰレスポンスを返信する。返信するＨＴＴＰレスポンスは、例えば、外部メモリ１６２に保存されたＷｅｂページデータを返信してもよいし、管理アプリケーション２００のＵＩモジュール２０４にＨＴＴＰレスポンスの生成を要求してもよい。
【００６９】
２３２は自機構成管理モジュールであり、ＭＦＰ１５０のハードウェア構成情報の管理を行う。ハードウェア構成情報とは、例えば、自機の製造番号や製造地等の自機固有情報、ＭＦＰ１５０に接続されたオプション機器の製品情報や使用状態等が挙げられる。オプション機器の例としては、フィニッシャやカセットユニット等が挙げられる。オプション機器内部にトナーやヒンジ等の消耗摩耗品が使用されている場合、自機構成管理モジュール２３２は、これらの消耗状態及び摩耗状態も取得し、ネットワークモジュール２３０及びネットワーク１７０を通して管理アプリケーション２００に通知する。
【００７０】
また、自機構成管理モジュール２３２は、管理アプリケーション２００の機器操作モジュール２０８から送信されたファームウェアのアップデート要求を受信する。また、アプリケーションのインストール要求をネットワークモジュール２３０経由で受信し、自機のファームウェアアップデート及びアプリケーションのインストールを実行する。
【００７１】
２３３はアプリケーション管理モジュールであり、ＭＦＰ１５０のソフトウェア構成情報の管理を行う。ソフトウェア構成情報とは、例えばＭＦＰ１５０のファームウェア情報、インストールされているアプリケーション情報等が挙げられる。
【００７２】
２３４はＵＩモジュールであり、ＭＦＰ１５０の操作部１５６に表示されるＵＩの描画および操作部１５６上でユーザのＵＩ操作により入力されたユーザ入力値の受信を行う。
【００７３】
以上示したように、管理装置としてのアプリケーションサーバ１００の管理アプリケーション２００が、ネットワーク機器としてのＭＦＰ１５０（デバイス）のウェブサーバの提供するウェブページを介した作業（デバイス情報の取得や設定変更）の操作内容をスクレイピングしておくことで、デバイスベンダの独自プロトコルや環境設定以外でも、デバイスの管理が可能となる。管理アプリケーション２００は、デバイスのウェブサーバの提供するウェブページに対する各操作のためのブラウザ操作命令の手順を、スクリプトに書き出し、デバイス別にスクリプトを管理する。
【００７４】
なお、上述したスクリプトは、ＭＦＰ１５０の構成が変更され、ＷｅｂＵＩ構成が変化した場合には実行できなくなる可能性がある。この場合、該構成が変更されたＭＦＰ１５０の管理を継続して行うことができなくなってしまうケースが考えられる。例えば、ＭＦＰ１５０のファームウェアアップデートによる機能追加により、ＷｅｂＵＩのページ階層やページ毎のＨＴＭＬが変更される場合が挙げられる。そのため、該ＭＦＰ１５０に紐付けられたスクリプトに記述された各種コマンドが部分的もしくは全体的に無効化されてしまい、結果としてタスクが失敗する可能性が考えられる。これでは継続したＭＦＰ１５０の管理が行えなくなってしまう。しかし、管理アプリケーション２００は、このようなＭＦＰ１５０に構成変更等が発生した場合でも、該ＭＦＰ１５０を継続して管理することができる構成を有する。管理アプリケーション２００は、デバイスのファームウェア更新やオプション変更などの要因によるウェブページの変更に合わせて、上記管理しているスクリプトを適切に更新する構成を有する。以下、この構成について詳細に説明する。
【００７５】
以下、図５を用いて、アプリケーションサーバ１００が、ネットワーク機器の設定が変更されたことを検知し、ＭＦＰ１５０のハードウェア及びソフトウェアの構成状況に応じて動的にスクリプトを修正する動作について述べる。
図５は、実施例１におけるアプリケーションサーバ１００の動作の一例を示すフローチャートである。このフローチャートの処理は、管理アプリケーション２００が実行する。即ち、アプリケーションサーバ１００のＣＰＵ１０１が外部メモリ１１１等に格納されたプログラムを読み出して実行することにより実現される。
【００７６】
Ｓ４００において、管理アプリケーション２００の機器操作モジュール２０８は、ユーザ入力によるネットワーク機器の設定変更操作を監視する。設定変更操作としては、例えば管理アプリケーション２００を介してＭＦＰ１５０のファームウェアをアップデートする操作、ＭＦＰ１５０のアプリケーションをアンインストールする操作、その他種々の設定値を変更する操作等が挙げられる。もちろん、機器操作モジュール２０８がユーザ入力を受け付けてＭＦＰ１５０の設定を変更する操作であれば、前述の操作以外の操作でもよい。
【００７７】
次に、Ｓ４０１において、管理アプリケーション２００は、上記Ｓ４００の監視結果に基づいて、ユーザ入力によって前述の設定変更操作が行われたか（該設定変更操作を検知したか）否かを判断する。そして、設定変更が行われていないと判断した場合（Ｓ４０１でＮｏの場合）、管理アプリケーション２００は、Ｓ４００に処理を戻し、ユーザ入力による設定変更操作の監視を継続する。一方、設定変更操作が行われたと判断した場合（Ｓ４０１でＹｅｓの場合）、Ｓ４０２に処理を進める。
【００７８】
Ｓ４０２では、機器構成管理モジュール２０９は、データベースサーバサービスモジュール２０２の機器管理テーブル３０５から、上記Ｓ４０１で設定変更操作が行われたと判断されたＭＦＰ１５０（以下、「対象ＭＦＰ」という）の最新の構成情報を取得する。
【００７９】
次に、Ｓ４０３において、Ｗｅｂスクレイピング管理モジュール２０７は、データベースサーバサービスモジュール２０２のタスク管理テーブル３０６からＳ４０４以降の処理を行っていないタスク情報を１つ取得する。
【００８０】
Ｓ４０４において、Ｗｅｂスクレイピング管理モジュール２０７は、上記Ｓ４０３で取得したタスク情報の内容から、対象ＭＦＰが該タスク情報に対応するＷｅｂスクレイピングタスクの実行対象か否かを判断する。具体的には、上記Ｓ４０３で取得したタスク情報内のネットワーク機器識別子と、対象ＭＦＰのネットワーク機器識別子を比較することにより判断する。
【００８１】
そして、対象ＭＦＰが上記Ｓ４０３で取得したタスク情報に対応するＷｅｂスクレイピングの実行対象でないと判断した場合（Ｓ４０４でＮｏの場合）、管理アプリケーション２００は、そのままＳ４１５に処理を進める。一方、対象ＭＦＰが上記Ｓ４０３で取得したタスク情報に対応するＷｅｂスクレイピングタスクの実行対象であると判断した場合（Ｓ４０４でＹｅｓの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ４０５に処理を移行させる。
【００８２】
Ｓ４０５では、Ｗｅｂスクレイピング管理モジュール２０７は、上記Ｓ４０３で取得したタスク情報の次回スクリプト識別子に基づき、データベースサーバサービスモジュール２０２のスクリプト管理テーブル３０４から、上記次回スクリプト識別子に対応するスクリプト及び該スクリプトと目的識別子が同一のスクリプトの、ネットワーク機器の構成条件情報とスクリプト情報を取得する。なお、ネットワーク機器の構成条件情報とは、スクリプト管理テーブル３０４内の製品機種識別子、オプション機器識別子、アプリケーション識別子等を示す。なお、スクリプト管理テーブル３０４に目的識別子が登録されていない場合には、各スクリプトの記述からスクリプトの目的を判断するようにしてもよい。例えば、スクリプトに記述される、ページ遷移フロー、扱うファイル、取得したデータの格納先等により、必要なタイミングで目的を判断するようにしてもよい。
【００８３】
次に、Ｓ４０６において、Ｗｅｂスクレイピング管理モジュール２０７は、上記Ｓ４０５で取得したスクリプトのネットワーク機器の構成条件情報に、上記Ｓ４０２で取得した対象ＭＦＰの最新の構成と合致するものが存在するかどうかを判断する。そして、対象ＭＦＰの最新の構成に合致するものが存在すると判断した場合（Ｓ４０６でＹｅｓの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ４０７に処理を進める。
【００８４】
Ｓ４０７では、Ｗｅｂスクレイピング管理モジュール２０７は、タスク管理テーブル３０６内の上記Ｓ４０３で取得したタスク情報の次回実行スクリプト識別子を、上記Ｓ４０６で対象ＭＦＰの最新の構成条件に合致すると判断した構成条件を有するスクリプト情報のスクリプト識別子に書き換えて、Ｓ４１５に処理を進める。これにより次回タスク実行時に対象ＭＦＰの現在の構成によって変更されたＷｅｂＵＩのページ階層及び各ページのＨＴＭＬに対応したスクリプトを読み込み、Ｗｅｂスクレイピングを実行することができる。
【００８５】
一方、対象ＭＦＰの最新の構成に合致するものが存在しないと判断した場合（Ｓ４０６でＮｏの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ４０８に処理を進める。
【００８６】
Ｓ４０８では、Ｗｅｂスクレイピング管理モジュール２０７は、対象ＭＦＰのＷｅｂＵＩにアクセスして、ＷｅｂＵＩ構成情報（ＷｅｂＵＩのページ階層情報と各ページのＨＴＭＬ情報等）を以下の方法を用いて取得する。
【００８７】
まず、Ｗｅｂスクレイピング管理モジュール２０７は、機器管理テーブル３０５から、対象ＭＦＰのアドレス情報を取得して、対象ＭＦＰのＷｅｂサーバサービスモジュール２３１に対してＨＴＴＰリクエストを行う。次に、そのＨＴＴＰレスポンスのページＵＲＬをトップページとして、トップページのＨＴＭＬに含まれる別ページへのＵＲＬを、ＨＴＭＬのリンクタグ、またはＵＲＬの正規表現検索によって取得し、各ＵＲＬの文字列差分から各ページの階層情報を取得する。そして、取得したＵＲＬに対してＨＴＴＰリクエストを行っていき、前述の処理を各ページで再帰的に実行することで、ＷｅｂＵＩのページ階層情報と、各ページのＨＴＭＬ情報を取得する。またその他にも、対象ＭＦＰのＷｅｂサーバサービスモジュール２３１が提供するサイトマップファイル等を利用して、ＷｅｂＵＩのページ階層情報と、各ページのＨＴＭＬ情報を取得する手法がある。その場合は、Ｗｅｂスクレイピング管理モジュール２０７が当該ファイルを取得し、ファイルの情報を元に各ページのＨＴＭＬ情報を再帰的に取得することができる。もちろん、その他の手法を用いて、ＷｅｂＵＩのページ階層情報と、各ページのＨＴＭＬ情報を取得してもよい。なお、Ｓ４０８で取得したＷｅｂＵＩ情報は、ＷｅｂＵＩ情報管理テーブル３０８に追加されるものとする。
【００８８】
次に、Ｓ４０９において、Ｗｅｂスクレイピング管理モジュール２０７は、上記Ｓ４０８で取得したＷｅｂＵＩのページ階層情報とＨＴＭＬ情報を元に、スクリプトの動的な修正が可能かどうかを判断する。
【００８９】
スクリプトの動的修正が可能かどうかの判断方法として、例えばＷｅｂスクレイピング管理モジュール２０７がデータベースサーバサービスモジュール２０２のＷｅｂＵＩ情報管理テーブル３０８から、対象ＭＦＰの構成変更前のページ階層情報を取得する。続いて、取得したページ階層情報と上記Ｓ４０８で取得した最新のＷｅｂＵＩページ階層情報との階層ツリーを比較することによって、Ｗｅｂスクレイピングの対象となるページが別のＵＲＬ階層に移動していた場合にどの階層に移動したかを判別することができる。また、同様にして、各ページのＨＴＭＬ情報も過去のＨＴＭＬ情報と比較することで、ＨＴＭＬのどの要素が変更されたかが分かる。例えば、各ページのＨＴＭＬをＤＯＭ（Document Object Model）ツリーに変換し、各ＤＯＭ要素の位置情報、タグ名称、ＩＤ等の属性値、タグで囲まれた値等の差分を抽出することができる。これにより、特定のＤＯＭ要素が別の要素内に移動された場合でもＨＴＭＬ中のどの箇所に移動したかを判別することができる。そして、上記ＵＲＬ階層の移動とＨＴＭＬの要素の変更が判別できた場合にスクリプトの動的修正が可能と判断し、判別できなかった場合にスクリプトの動的修正が不可能と判断するものとする。もちろん、前述の手法以外の判断方法でスクリプトの動的な修正が可能かどうかを判断してもよい。
【００９０】
そして、スクリプトの動的な修正が可能であると判断した場合（Ｓ４０９でＹｅｓの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ４１０に処理を進める。
【００９１】
Ｓ４１０では、Ｗｅｂスクレイピング管理モジュール２０７は、データベースサーバサービスモジュール２０２のスクリプト管理テーブル、もしくはファイルサーバサービスモジュール２０３からスクリプトデータを取得し、スクリプトの修正を行う。スクリプトの修正の例としては、例えばＷｅｂＵＩのページ階層情報とＨＴＭＬ情報から得た差分情報を元に、スクリプト内のＵＲＬ文字列やＨＴＭＬの要素位置を示すパス文字列等の修正が挙げられる。スクリプトの修正が完了したら、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ４１１に処理を進める。
【００９２】
Ｓ４１１では、Ｗｅｂスクレイピング管理モジュール２０７は、データベースサーバサービスモジュール２０２のスクリプト管理テーブル、もしくはファイルサーバサービスモジュール２０３に修正済みのスクリプトを上書きして保存する。もちろん、スクリプト管理テーブル３０４にスクリプト情報を新規に追加するなどして、修正済みのスクリプトを別名で保存してもよい。スクリプトの保存が完了したら、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ４１５に処理を進める。
【００９３】
また、上記Ｓ４０９において、スクリプトの動的な修正が不可能であると判断した場合（Ｓ４０９でＮｏの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ４１２に処理を進める。
【００９４】
Ｓ４１２では、Ｗｅｂスクレイピング管理モジュール２０７は、データベースサーバサービスモジュール２０２のタスク管理テーブル３０６、実行結果管理テーブル３０７からタスク情報を取得する。その後、図６に示すようなスクリプトの修正画面を、上記Ｓ４０１で判断された設定変更操作が行われたクライアントコンピュータ１２０のＷｅｂブラウザ２２１（クライアント画面）に表示制御する。
【００９５】
図６は、本実施例におけるスクリプト修正画面の一例を示す図である。
図６において、４５０はＷｅｂブラウザ画面であり、ここではスクリプト修正画面を表示している。４５１はメッセージ表示領域であり、スクリプトの修正が必要である旨のメッセージを表示している。４５２はテキスト編集領域であり、予めスクリプトの内容が出力されている。４５３はスクリプトのエラーメッセージ表示領域であり、スクリプト内のエラー箇所にポップアップで表示される。エラーメッセージには、スクリプトの修正が必要な箇所情報及び、どのような修正を行えばよいかのメッセージや図、そしてエラーログ情報等の種々のＷｅｂページへ遷移するためのリンクを表示する。また、エラーメッセージは、スクリプト修正画面とは別ページ又は別フレーム等の他の表示方法を用いて表示してもよい。
【００９６】
４５４はスクリプトの保存ボタンであり、このボタンがクリックされると、その旨がＷｅｂスクレイピング管理モジュール２０７に通知される。Ｗｅｂスクレイピング管理モジュール２０７は、この通知に応じて、テキスト編集領域４５２の入力状態を記憶した状態で、Ｓ４１３に処理を進める。
【００９７】
４５５はキャンセルボタンであり、このボタンがクリックされると、その旨がＷｅｂスクレイピング管理モジュール２０７に通知される。Ｗｅｂスクレイピング管理モジュール２０７は、この通知に応じて、スクリプトの修正処理をキャンセルして、Ｓ４１５に処理を進める。もちろん、テキスト編集領域４５２の入力状態を一時的に保存しておき、後で再度スクリプト修正画面を表示し、スクリプトの修正を再開できるようにしてもよい。
【００９８】
４５６はスクリプトファイルのアップロードボタンであり、このボタンがクリックされると、ファイル選択画面が表示され、スクリプトが記述されたテキストファイル等をアップロードすることができる。該アップロードが行われると、Ｗｅｂスクレイピング管理モジュール２０７は、該アップロードされたスクリプトデータをファイルサーバサービスモジュール２０３に一時的に保存し、Ｓ４１３に処理を進める。
【００９９】
４５７は、後述する対象ＭＦＰのＷｅｂＵＩ操作画面（図７）への遷移ボタンであり、このボタンがクリックされると、ＷｅｂＵＩ操作画面（図７）が表示される。
以上で図６の説明を終了する。
【０１００】
続いて、図７のＷｅｂＵＩ操作画面について説明する。
図７は、図６の遷移ボタン４５７をクリックした場合にＷｅｂブラウザ画面に表示される対象ＭＦＰのＷｅｂＵＩ操作画面を例示する図である。
【０１０１】
図７のＷｅｂＵＩ操作画面では、Ｗｅｂブラウザがユーザによる対象ＭＦＰのＷｅｂＵＩ操作を記録し、記録された操作情報を元にスクリプトを修正する。例えば、スクリプトの動的修正が失敗した箇所をエラーメッセージとしてユーザに提示して、修正が失敗した箇所まで部分的にスクリプトを読み込み、Ｗｅｂスクレイピング処理をユーザにページ遷移の過程を表示しながら実行する。その後、ユーザに目的とするＷｅｂＵＩの入力操作を実行してもらい、Ｗｅｂブラウザがその操作を記録する。
【０１０２】
入力操作の例としては、例えばキーボード入力やマウスのクリック操作、ファイルのアップロード操作、文字列の選択等が挙げられる。Ｗｅｂブラウザはこれらの入力操作情報をアプリケーションサーバ１００に非同期に送信し、Ｗｅｂスクレイピング管理モジュール２０７が入力操作情報を元に、スクリプトの修正を行う。このとき、入力操作をアプリケーションサーバ１００に送信せず、アプレット等を使用してＷｅｂブラウザと連携するプログラムがスクリプトを動的に修正してもよい。
【０１０３】
図７において、４６０はＷｅｂブラウザ画面である。４６１は、Ｗｅｂブラウザ画面４６０の内部に対象ＭＦＰのＷｅｂＵＩを表示するＷｅｂＵＩ画面である。対象ＭＦＰのＷｅｂＵＩ画面４６１は、ＨＴＭＬのインラインフレーム要素及びJavaScript（登録商標）等のＷｅｂブラウザで利用可能なスクリプト言語を用いて対象ＭＦＰのＷｅｂＵＩを表示する。またＭＦＰ１５０のＷｅｂＵＩ画面４６１は、別ウィンドウに表示してもよく、Ｗｅｂブラウザのアプレットを用いて、表示処理や操作記録処理等を行なってもよい。アプレットの例としては、Adobe Flash（登録商標）、Microsoft Silverlight（登録商標）、Microsoft DirectX（登録商標）、JavaApplet（登録商標）等が挙げられる。もちろん、それ以外の手法を用いて対象ＭＦＰのＷｅｂＵＩを表示し、種々の入力操作を記録してもよい。
【０１０４】
４６２はスクリプトのエラーメッセージ表示領域であり、ＷｅｂＵＩ内のエラー関連箇所にスクリプトのエラー箇所を示すメッセージがポップアップ表示される。これは図６のエラーメッセージ表示領域４５３と同様のため、詳細な説明は省略する。４６３は対象ＭＦＰのＷｅｂＵＩ操作を終了してスクリプトを保存するボタンであり、このボタンがクリックされると、その旨がＷｅｂスクレイピング管理モジュール２０７に通知される。Ｗｅｂスクレイピング管理モジュール２０７は、この通知に応じて、Ｓ４１３に処理を進める。
【０１０５】
４６４はキャンセルボタンであり、このボタンがクリックされると、その旨がＷｅｂスクレイピング管理モジュール２０７に通知される。Ｗｅｂスクレイピング管理モジュール２０７は、この通知に応じて、スクリプトの修正処理をキャンセルして、Ｓ４１５に処理を進める。
以上で図７の説明を終了する。
【０１０６】
以下、図５のフローチャートの説明に戻る。
Ｓ４１３において、Ｗｅｂスクレイピング管理モジュール２０７は、図６のスクリプト修正画面及び図７の対象ＭＦＰのＷｅｂＵＩ操作画面を介して取得したスクリプト情報の内容と対象ＭＦＰのＷｅｂＵＩ操作情報から、スクリプトを保存するどうかを判断する。
【０１０７】
例えば、Ｗｅｂスクレイピング管理モジュール２０７は、取得したスクリプト情報の内容からＷｅｂスクレイピングを実行可能かどうか判断し、実行不可能と判断した場合は、スクリプトデータを保存しないと判断し（Ｓ４１３でＮｏと判断し）、Ｓ４１５に処理を進める。なお、このとき、Ｓ４１３でＮｏの場合、Ｓ４１２に戻り、再度スクリプトの修正画面を表示してもよい。
【０１０８】
一方、Ｗｅｂスクレイピング管理モジュール２０７は、取得したスクリプト情報の内容からＷｅｂスクレイピングを実行可能と判断した場合は、スクリプトデータを保存すると判断し（Ｓ４１３でＹｅｓと判断し）、Ｓ４１４に処理を進める。
【０１０９】
Ｓ４１４では、Ｗｅｂスクレイピング管理モジュールは、図６，図７で修正したスクリプトをデータベースサーバサービスモジュール２０２のスクリプト管理テーブル３０４又はファイルサーバサービスモジュール２０３に保存し、Ｓ４１５に処理を進める。
【０１１０】
Ｓ４１５では、Ｗｅｂスクレイピング管理モジュールは、タスク管理テーブル３０６内の全てのタスク情報についてＳ４０４以降の処理を終了したか否かを判断する。そして、まだ終了していないと判断した場合（Ｓ４１５でＮｏの場合）、Ｗｅｂスクレイピング管理モジュールは、Ｓ４０３に処理を戻し、未だ処理していない次のタスク情報に処理を移す。
【０１１１】
一方、全てのタスク情報についてＳ４０４以降の処理を終了したと判断した場合（Ｓ４１５でＹｅｓの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、本フローチャートの処理を終了する。
【０１１２】
以上の処理により、ユーザによるＭＦＰ１５０の設定変更操作を検知した管理アプリケーション２００が、それら変更操作によって変更されたＭＦＰ１５０の構成に応じて、動的にスクリプトを修正したり、スクリプトを切り替えることが可能となる。その結果、管理アプリケーション２００は、ＭＦＰ１５０の設定変更もＷｅｂスクレイピングタスクを継続して実行することができるようになる。
従って、ネットワーク機器の構成が変更された場合でも継続してネットワーク機器の管理を行うことが可能となる。
【実施例２】
【０１１３】
上記実施例１では、管理アプリケーション２００を介してＭＦＰ１５０の設定変更を行った場合に、ＭＦＰ１５０の構成に応じて動的にスクリプトを修正する構成を示した。実施例２では更に、ＭＦＰ１５０の操作パネル、及び外部のアプリケーションによってＭＦＰ１５０の設定が変更された場合に、ＭＦＰ１５０の最新の構成情報を取得し、構成の変更を検知して動的にスクリプトを修正する構成を説明する。
実施例２におけるクライアント・サーバシステムのシステム構成およびハードウェア構成・ソフトウェア構成については、実施例１の図１、図２および図３と同様のため説明を省略する。
【０１１４】
以下、図８を用いて、アプリケーションサーバ１００がＭＦＰ１５０の最新の構成情報を取得し、構成の変更を検知して動的にスクリプトを修正する際のアプリケーションサーバ１００の動作について述べる。なお、実施例１の図５と同様のステップについては説明を省略する。
図８は、実施例２におけるアプリケーションサーバ１００の動作の一例を示すフローチャートである。このフローチャートの処理は、管理アプリケーション２００が実行する。即ち、アプリケーションサーバ１００のＣＰＵ１０１が外部メモリ１１１等に格納されたプログラムを読み出して実行することにより実現される。なお、このフローチャートに示す処理は、アプリケーションサーバ１００が管理するネットワーク機器ごと（すなわちＭＦＰ１５０ごと）に実行されるものとする。以下、この処理で対象とするＭＦＰ１５０を「対象ＭＦＰ」という。
【０１１５】
まず、Ｓ５００において、機器構成管理モジュール２０９は、ネットワーク１７０を介して対象ＭＦＰの自機構成管理モジュール２３２及びアプリケーション管理モジュール２３３に対して、構成情報取得要求を行い、自機構成管理モジュール２３２及びアプリケーション管理モジュール２３３から最新の構成情報を取得する。またこの処理は、タスクとして定期的に実行される処理である。もちろん、任意の日時で実行してもよい。
【０１１６】
次に、Ｓ５０１において、機器構成管理モジュール２０９は、データベースサーバサービスモジュール２０２の機器管理テーブル３０５から対象ＭＦＰの構成情報を取得する。
【０１１７】
次に、Ｓ５０２において、機器構成管理モジュール２０９は、上記Ｓ５００で取得した対象ＭＦＰの最新の構成情報と、上記Ｓ５０１で取得した対象ＭＦＰの構成情報とを比較し、対象ＭＦＰの構成が変更されているかどうかを判断する。
【０１１８】
そして、機器構成管理モジュール２０９が対象ＭＦＰの構成が変更されていると判断した場合（Ｓ５０２でＹｅｓの場合）、Ｗｅｂスクレイピング管理モジュール２０７が、Ｓ４０３以降の処理を実行する。なお、Ｓ４０３以降の処理は図５と同一なので説明は省略する。ただし、図８のＳ４１２では、図６、図７に示したような画面を、例えば、この時点でアプリケーションサーバ１００に接続している全てのクライアントのＷｅｂブラウザに対して表示するものとする。なお、ユーザアカウント別に設定変更可否が設定されている場合は、設定変更を行える上位権限を持ったユーザアカウントでログインしているクライアントのＷｅｂブラウザに対して表示するものとする。また、予め登録してある管理等のメールアドレスに、スクリプト修正のためにログインを促すメールを送信し、該管理等からログインがあった場合に、上記画面を表示するようにしてもよい。
【０１１９】
一方、機器構成管理モジュール２０９が対象ＭＦＰの構成が変更されていないと判断した場合（Ｓ５０２でＮｏの場合）、機器構成管理モジュール２０９は、そのまま本フローチャートの処理を終了する
【０１２０】
以上の処理を定期的なタスクとして、管理アプリケーション２００が管理するＭＦＰ１５０ごとに実行することで、管理アプリケーション２００がＭＦＰ１５０の設定変更を検知して、動的にスクリプトを修正することが可能となる。その結果、管理アプリケーション２００を介さずＭＦＰ１５０の構成が変更された場合でも、管理アプリケーション２００がその後のＷｅｂスクレイピングタスクを継続して実行することができるようになる。
【実施例３】
【０１２１】
上記実施例１では、管理アプリケーション２００を介してＭＦＰ１５０の設定変更を行った場合に、ＭＦＰ１５０の構成に応じて動的にスクリプトを修正する構成を示した。また、実施例２では、ＭＦＰ１５０の操作パネルや管理アプリケーション２００以外の外部アプリケーションによってＭＦＰ１５０の設定が変更された場合にも、ＭＦＰ１５０の構成変更を検知して動的にスクリプトを修正する構成を示した。実施例３では更に、Ｗｅｂスクレイピングタスクが失敗した場合に、動的にスクリプトを修正する構成について説明する。
実施例３におけるクライアント・サーバシステムのシステム構成およびハードウェア構成・ソフトウェア構成については、実施例１の図１、図２および図３と同様のため説明を省略する。
【０１２２】
以下、図９を用いて、アプリケーションサーバ１００がＷｅｂスクレイピングタスクの実行が失敗したことを検知し、動的にスクリプトを修正する際のアプリケーションサーバ１００の動作について述べる。なお、実施例１の図５と同様のステップについては説明を省略する。
図９は、実施例３におけるアプリケーションサーバ１００の動作の一例を示すフローチャートである。このフローチャートの処理は、管理アプリケーション２００が実行する。即ち、アプリケーションサーバ１００のＣＰＵ１０１が外部メモリ１１１等に格納されたプログラムを読み出して実行することにより実現される。なお、このフローチャートに示す処理は、アプリケーションサーバ１００がタスクを実行する場合に実行されるものとする。
【０１２３】
まず、Ｓ６００において、Ｗｅｂスクレイピング管理モジュール２０７は、データベースサーバサービスモジュール２０２のタスク管理テーブル３０６から、タスク情報を取得する。次に、Ｓ６０１において、Ｗｅｂスクレイピング管理モジュール２０７は、上記Ｓ６００で取得したタスク情報の次回実行スクリプト識別子に対応するスクリプトデータを、スクリプト管理テーブル３０４から取得する。
【０１２４】
次に、Ｓ６０２において、Ｗｅｂスクレイピング管理モジュール２０７は、上記Ｓ６０１で取得したスクリプトデータの記述に従い、上記Ｓ６０１で取得したタスクの対象となるＭＦＰ１５０（以下、「対象ＭＦＰ」という）のＷｅｂサーバサービスモジュール２３１が提供するＷｅｂＵＩに対してＷｅｂスクレイピング処理を実行する。
【０１２５】
次に、Ｓ６０３において、Ｗｅｂスクレイピング管理モジュール２０７は、上記Ｓ６０２で実行したＷｅｂスクレイピング処理が失敗したかどうかを判断する。なお、Ｗｅｂスクレイピング処理が失敗したかどうかの判断方法として、例えばスクリプトに記述された種々のＷｅｂＵＩ操作コマンドが最後まで実行されたかどうかなどの判断方法が挙げられる。具体的には、各コマンドにおいて操作対象となるＷｅｂＵＩページやＨＴＭＬ要素が見つからない場合、ＭＦＰ１５０のＷｅｂＵＩへの通信が遮断した場合、ＷｅｂＵＩにログインするためのアカウント情報が変更されて実行できなかった場合等が挙げられる。
【０１２６】
そして、上記Ｓ６０２で実行したＷｅｂスクレイピング処理が失敗しなかった（成功した）と判定した場合（Ｓ６０３でＮｏの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、そのまま本フローチャートの処理を終了する。
【０１２７】
一方、上記Ｓ６０２で実行したＷｅｂスクレイピング処理が失敗したと判定した場合（Ｓ６０３でＹｅｓの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ６０４に処理を進める。
【０１２８】
Ｓ６０４では、Ｗｅｂスクレイピング管理モジュール２０７は、対象ＭＦＰとのネットワーク通信に問題がある（即ち、Ｓ６０３のＷｅｂスクレイピング処理の失敗の原因が通信エラー）か否かを判断する。ネットワーク通信に問題がある（通信エラー）か否かの判断方法としては、例えば対象ＭＦＰのＷｅｂサーバサービスモジュール２３１に対してＨＴＴＰリクエストを行い、ＨＴＴＰレスポンスを確認する方法などが挙げられる。もちろん、その他の確認方法でもよい。
【０１２９】
そして、対象ＭＦＰとのネットワーク通信に問題がある（通信エラー）と判定した場合（Ｓ６０４でＹｅｓの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、そのまま本フローチャートの処理を終了する。なお、この場合、管理アプリケーション２００が、ユーザに対するネットワーク通信に問題が発生しＷｅｂスクレイピングタスクが失敗した旨のメッセージを管理アプリケーション２００のＵＩ画面、もしくは予め登録されているメールアドレスに対してメール等で通知してもよい。
【０１３０】
一方、対象ＭＦＰとのネットワーク通信に問題がない（通信エラーでない）と判定した場合（Ｓ６０４でＮｏの場合）、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ６０５に処理を進める。
【０１３１】
Ｓ６０５では、Ｗｅｂスクレイピング管理モジュール２０７は、機器構成管理モジュール２０９に指示し、ネットワーク１７０を介して対象ＭＦＰの自機構成管理モジュール２３２及びアプリケーション管理モジュール２３３に対して、構成情報取得要求を行い、自機構成管理モジュール２３２及びアプリケーション管理モジュール２３３から最新の構成情報を取得する。なお、この処理は、図８のＳ５００と同様の処理であるので詳細は省略する。
【０１３２】
次に、Ｓ６０６において、Ｗｅｂスクレイピング管理モジュール２０７は、上記Ｓ６００で取得したタスク情報の次回スクリプト識別子に基づき、データベースサーバサービスモジュール２０２のスクリプト管理テーブル３０４から、上記次回スクリプト識別子に対応するスクリプト及び該スクリプトと目的識別子が同一のスクリプトの、ネットワーク機器の構成条件情報とスクリプト情報を取得する。なお、ネットワーク機器の構成条件情報とは、スクリプト管理テーブル３０４内の製品機種識別子、オプション機器識別子、アプリケーション識別子等を示す。
【０１３３】
次に、Ｗｅｂスクレイピング管理モジュール２０７は、Ｓ４０６以降の処理を実行する。なお、Ｓ４０６以降の処理は図５と同一なので説明は省略する。ただし、図９のＳ４１２の処理は、図８のＳ４１２の処理と同様とする。また、図９では、Ｓ４０７、Ｓ４１１、Ｓ４１４の後、Ｗｅｂスクレイピング管理モジュール２０７は、図９のフローチャートの処理を終了する。
【０１３４】
以上の処理を定期的なタスクとして実行することで、管理アプリケーション２００がＷｅｂスクレイピングタスクの失敗を検知して、動的にスクリプトを修正することができるようになる。その結果、構成が変更されたＭＦＰ１５０に対して、実施例２の処理を実行する前にＷｅｂスクレイピングタスクを実行した場合でも、管理アプリケーション２００がその後のＷｅｂスクレイピングタスクを継続して実行できるようになる。
【０１３５】
以上示したように、各実施例によれば、ネットワーク機器の構成変化等によりＷｅｂＵＩのページ階層及び各ページのＨＴＭＬが変更された場合でも、ネットワーク機器及びＷｅｂＵＩの構成変化を検知し、動的にスクリプトを切り替えることで、ネットワーク機器の管理タスクを継続して実行することができる。すなわち、ベンダの独自プロトコルを利用することなく、ネットワーク機器の構成が変更された場合でも、継続してネットワーク機器の管理を行うことができる。よって、ＷｅｂＵＩ変更の度に管理者がスクリプトの手動修正を行うといった煩雑な管理作業を減らし、管理者の負荷を軽減することができる。
【０１３６】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１３７】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図１】
2015125472.tif 000003
【図２】
2015125472.tif 000004
【図３Ａ】
2015125472.tif 000005
【図３Ｂ】
2015125472.tif 000006
【図３Ｃ】
2015125472.tif 000007
【図４】
2015125472.tif 000008
【図５】
2015125472.tif 000009
【図６】
2015125472.tif 000010
【図７】
2015125472.tif 000011
【図８】
2015125472.tif 000012
【図９】
2015125472.tif 000013