JP2015125472A - 管理装置、管理装置の制御方法及びプログラム - Google Patents

管理装置、管理装置の制御方法及びプログラム Download PDF

Info

Publication number
JP2015125472A
JP2015125472A JP2013267432A JP2013267432A JP2015125472A JP 2015125472 A JP2015125472 A JP 2015125472A JP 2013267432 A JP2013267432 A JP 2013267432A JP 2013267432 A JP2013267432 A JP 2013267432A JP 2015125472 A JP2015125472 A JP 2015125472A
Authority
JP
Japan
Prior art keywords
script
network device
management
information
web
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.)
Granted
Application number
JP2013267432A
Other languages
English (en)
Other versions
JP6265732B2 (ja
JP2015125472A5 (ja
Inventor
豪 中川原
Takeshi Nakagawara
豪 中川原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013267432A priority Critical patent/JP6265732B2/ja
Priority to US14/580,075 priority patent/US20150180955A1/en
Publication of JP2015125472A publication Critical patent/JP2015125472A/ja
Publication of JP2015125472A5 publication Critical patent/JP2015125472A5/ja
Application granted granted Critical
Publication of JP6265732B2 publication Critical patent/JP6265732B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Abstract

【課題】ネットワーク機器の構成が変更された場合でも継続してネットワーク機器の管理を行うことができる仕組みを提供する。
【解決手段】管理アプリケーション200は、MFP150への操作のために必要な該MFP150の提供するウェブページを介した命令をスクリプトとして管理し、該スクリプトを用いて、MFP150の提供するウェブページを介して、該ネットワーク機器への操作を実行する。また、管理アプリケーション200は、MFP150の構成情報を取得し、該取得されたMFP150の構成情報に基づき、管理しているスクリプトの修正が必要か否かを判定し、修正が必要であると判定した場合、該スクリプトの修正を行い、修正されたスクリプトを管理する。
【選択図】図2

Description

本発明は、ネットワーク機器を管理する技術に関する。
従来、管理サーバ等から画像形成装置等のネットワーク機器の管理する場合、機器の製造元(以下、ベンダ)の独自プロトコルが使用されていた。
特許文献1では、ネットワーク機器を管理するソフトウェアに、各ベンダ用に用意されたDLL化されたプログラムを適用する技術が開示されている。
特開2010−72758号公報
しかし、近年、ベンダの独自プロトコルを利用することなくネットワーク機器を管理する技術、例えばWebスクレイピング技術を利用してネットワーク機器を管理する技術が注目されており、このような技術について改良が望まれている。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、ネットワーク機器の構成が変更された場合でも継続してネットワーク機器の管理を行うことができる仕組みを提供することである。
本発明は、ネットワーク機器への操作のために必要な該ネットワーク機器の提供するウェブページを介した命令をスクリプトとして管理する管理手段と、前記管理手段により管理されているスクリプトを用いて、前記ネットワーク機器の提供するウェブページを介して、該ネットワーク機器への操作を実行する実行手段と、前記ネットワーク機器の構成情報を取得する取得手段と、前記取得手段により取得された前記ネットワーク機器の構成情報に基づき、前記管理手段に管理されているスクリプトの修正が必要か否かを判定する判定手段と、前記判定手段により前記管理手段に管理されているスクリプトの修正が必要であると判定された場合に、該スクリプトの修正を行う修正手段と、を有し、前記管理手段は、前記修正手段により修正されたスクリプトを管理することを特徴とする。
本発明によれば、ネットワーク機器の構成が変更された場合でも継続してネットワーク機器の管理を行うことができる。
本実施例のネットワークシステムのハードウェア構成を例示する図。 本実施例のネットワークシステムのソフトウェア構成を例示する図。 本実施例におけるテーブル構成を例示する図。 本実施例におけるテーブル構成を例示する図。 本実施例におけるテーブル構成を例示する図。 本実施例におけるスクリプトの記述を例示する図。 実施例1におけるアプリケーションサーバの動作を例示するフローチャート。 本実施例におけるスクリプトの修正画面を例示する図。 本実施例におけるWebUI操作画面を例示する図 実施例2におけるアプリケーションサーバの動作を例示するフローチャート。 実施例3におけるアプリケーションサーバの動作を例示するフローチャート。
以下、本発明を実施するための形態について図面を用いて説明する。
以下、本発明に係るネットワーク機器を管理する管理装置を含むネットワークシステムの一実施例について説明する。ここでは、管理装置の一例としてアプリケーションサーバを取り上げて説明する。また、ネットワーク機器の一例として、本実施例ではMFP、すなわちMultifunction Peripheral、複合機を取り上げて説明する。ネットワーク機器には、プリンタ、FAXなどのMFP以外のものも含む。
また、本明細書では、プログラムがネットワーク機器のWebUIを操作、解析、情報抽出することを、Webスクレイピングという言葉を用いて説明する。本明細書においてWebスクレイピングとは、スクリプトの記述手順に従ってWebUIを操作し、HTMLを解析してネットワーク機器の情報を抽出すること、及び、マウス操作やキーボード操作等の入力処理をシミュレートし、WebUIを操作することを意味する。
Webスクレイピングの用途の例として、ネットワーク機器の種々の設定を任意の値に変更したり、ファイルのアップロード機能を利用して特定のアプリケーションや証明書等のライセンスファイルを配布しインストールする等の用途が挙げられる。また、ネットワーク機器の各種ステータスをWebUIから定期的に取得し、ネットワーク機器の状態監視を行うことも可能である。もちろん、それ以外の用途でもよい。
図1は、本発明の一実施例を示す管理装置を含むネットワークシステムのシステム構成およびハードウェア構成の一例を示すブロック図である。
ネットワークシステムは、ネットワーク170により接続されるアプリケーションサーバ100、1又は複数のクライアントコンピュータ120および1又は複数のMFP150(ネットワーク機器)を有する。なお、アプリケーションサーバ100およびクライアントコンピュータ120は、汎用コンピュータの構成を有する。クライアントコンピュータ120のハードウェア構成についてはアプリケーションサーバ100と同様のため、説明を省略する。
アプリケーションサーバ100において、101はCPUであり、ROM103あるいは外部メモリ111に記憶されたアプリケーションプログラム等に基づいて処理を実行する。さらに、CPU101は、システムバス112に接続される各デバイスを総括的に制御する。また、CPU101は、ディスプレイ109上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のアプリケーションウィンドウを開き、種々のデータ処理を実行する。
102はRAMであり、CPU101の主メモリ、ワークエリア等として機能する。103はROMであり、基本I/Oプログラム等の記憶領域として機能する読み出し専用のメモリである。このROM103あるいは外部メモリ111には、CPU101の制御プログラムであるオペレーティングシステムプログラム(以下OS)等が記憶される。さらに、ROM103あるいは外部メモリ111には、上記アプリケーションプログラム等に基づく処理の際に使用するファイルやその他各種データを記憶する。
104はネットワークI/Fであり、ネットワーク170へ接続しネットワーク通信を行う。105は入力I/Fであり、キーボード106やマウス等のポインティングデバイス107からの入力を制御する。108はディスプレイI/Fであり、ディスプレイ109の表示を制御する。110は外部メモリI/Fであり、ハードディスク(HD)やソリッドステートドライブ(solid state drive、SSD)等の外部メモリ111とのアクセスを制御する。111は外部メモリであり、ブートプログラム、各種のアプリケーション、ユーザファイル、編集ファイル等を記憶する。
アプリケーションサーバ100は、CPU101がROM103や外部メモリ111に書き込まれた基本I/OプログラムおよびOSを実行している状態で動作する。基本I/OプログラムはROM103に書き込まれており、OSはROM103もしくは外部メモリ111に書き込まれている。そしてコンピュータの電源がONされたときに、基本I/Oプログラム中のイニシャルプログラムロード機能により、ROM103もしくは外部メモリ111からOSがRAM102に書き込まれ、OSの動作が開始される。112はシステムバスであり、各デバイスを接続する。
MFP150において、151はネットワークI/Fであり、ネットワーク170へ接続しネットワーク通信を行う。152はCPUであり、制御プログラム等に基づいてシステムバス165に接続されるプリンタI/F157を介してプリンタ158に出力情報としての画像信号を出力する。なお、制御プログラムは、ROM154や外部メモリ162等に記憶される。
また、CPU152は、ネットワークI/F151を介してコンピュータとの通信処理が可能となっており、MFP150内の情報等をアプリケーションサーバ100に通知可能なように構成されている。さらに、CPU152は、ROM154あるいは外部メモリ162に記憶されたアプリケーションプログラム等に基づいて処理を実行する。
153はRAMであり、CPU152の主メモリ、ワークエリア等として機能し、図示しない増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。なお、RAM153は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。
154はROMであり、162はハードディスク(HD)、ソリッドステートドライブ(SSD)ICカード等の外部メモリである。このROM154あるいは外部メモリ162には、CPU152の制御プログラムやアプリケーションプログラムおよび上記出力情報を生成する際に使用するフォントデータ、MFP150上で利用される情報等が記憶される。また、ROM154あるいは外部メモリ162には、MFP150のアプリケーションインストール時にアプリケーションが一時的に格納される。
155は操作部I/Fであり、操作部156との間のインターフェースをつかさどり、表示すべき画像データを操作部156に対して出力する。また、ユーザが操作部156を介して入力した情報の受信も行う。156は操作部であり、操作のためのスイッチおよびLED表示器等が配されている操作パネル等に相当する。
157はプリンタI/Fであり、プリンタ158(プリンタエンジン)に出力情報としての画像信号を出力する。159はスキャナI/Fであり、スキャナ160(スキャナエンジン)からの入力情報として画像信号を受信する。
161は外部メモリI/F(メモリコントローラ)であり、外部メモリ162へのアクセスを制御する。また、外部メモリ162は1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないNVRAMを有し、操作部156からのプリンタモード設定情報を記憶するようにしてもよい。
163はオプション機器I/Fであり、フィニッシャ、カセットユニット等のオプション機器164へのアクセスを制御する。オプション機器は、フィニッシャやカセットユニットの他に、カメラやICカードリーダ等のMFPの機能及び機構を拡張する周辺機器でもよい。165はシステムバスであり、各デバイスを接続する。
図2は、本実施例の管理装置を含むネットワークシステムのソフトウェア構成の一例を示すブロック図である。
まず、アプリケーションサーバ100のソフトウェア構成を示す。
アプリケーションサーバ100において、管理アプリケーション200および各モジュール201〜203は、アプリケーションサーバ100の外部メモリ111に保存されたファイルとして存在する。これらは実行時に、CPU101により実行されるOSやそのモジュールを利用するモジュールによって、RAM102にロードされて実行され、アプリケーションサーバ100に機能を提供するプログラムモジュールである。なお、管理アプリケーション200は、外部メモリ111の不図示のCD−ROM、あるいはネットワーク170を経由して外部メモリ111のHDに追加することが可能となっている。
201はネットワークモジュールであり、任意の通信プロトコルを使用してクライアントコンピュータ120やMFP150とのネットワーク通信を行う。
管理アプリケーション200は、アプリケーションサーバ100とネットワーク170で接続されたMFP150を管理するアプリケーションである。管理アプリケーション200は、例えば、後述するWebサーバサービスモジュール205が提供するWebページへのリクエストに応答して処理を実行するプログラムとして実装される。上記のように、管理アプリケーション200はWebサーバサービスモジュール205とともに、MFP150を管理するWebアプリケーションを実現している。
管理アプリケーション200において、205はWebサーバサービスモジュールであり、クライアントコンピュータ120のWebブラウザ221からのHTTPリクエストを受け取るとHTTPレスポンスを応答するサービスを提供する。応答するHTTPレスポンスの例として、後述するUIモジュール204にHTTPレスポンスの生成を要求してもよし、外部メモリ111に保存されたWebページデータを返信してもよい。
204はUIモジュールであり、Webサーバサービスモジュール205からの要求に応じてHTTPレスポンスを生成する。また、UIモジュール204は、クライアントコンピュータ120のWebブラウザ221から送信されたユーザ入力情報を受信し、必要に応じて各モジュールを呼び出す。UIモジュール204が呼び出すモジュールとしては、例えば、Webサーバサービスモジュール205、探索モジュール206、Webスクレイピング管理モジュール207、機器構成管理モジュール209などがある。また、UIモジュール204がこれら以外のモジュールを呼び出してもよい。
206は探索モジュールであり、アプリケーションサーバ100とネットワーク170で接続されたMFP150を、任意の通信プロトコルを使って探索する。探索モジュール206が探索に使用する通信プロトコルの例としては、SNMP(Simple Network Management Protocol)やSLP(Service Location Protocol)等が挙げられる。他にもWS−Discovery(Web Services Dynamic Discovery)などの通信プロトコルを使用してもよい。探索モジュール206は、MFP150を探索したら、MFP150から機器情報を取得して、後述するデータベースサーバサービスモジュール202の機器管理テーブル305(図3)へ格納する。
207はWebスクレイピング管理モジュールであり、ネットワーク170を経由しMFP150に対してHTTPリクエストを行い、MFP150に任意のデータを送信することができる。また、Webスクレイピング管理モジュール207は、MFP150のWebサーバサービスモジュール231が生成するHTTPレスポンスを受信し、HTML記述を解析することで、特定の情報の抽出を行うことができる。
また、Webスクレイピング管理モジュール207は、後述のデータベースサーバサービスモジュール202のタスク管理テーブル306(図3)からタスク情報を取得し、タスク情報を元に後述のデータベースサーバサービスモジュール202もしくはファイルサーバサービスモジュール203に格納されたスクリプト(一例を図4に示す)を取得する。さらに、Webスクレイピング管理モジュール207は、取得したスクリプトを読み取り、スクリプトに記述された命令に従ってMFP150のWebサーバサービスモジュール231によって提供されるWebUIを操作することができる。WebUIの操作とは、例えばURL指定によるWebページ遷移や、入力フォームでのキーボード入力やマウスのクリック操作、そして、HTML記述から特定の文字列を検索、比較し、特定の情報を抽出する等の操作が挙げられる。
図4は、本実施例におけるスクリプトの記述を例示する図である。
図4のスクリプトは、前述の操作命令をJSON(JavaScript Object Notation)形式で記述した例である。JSON形式の他にも、XML(Extensible Markup Language)等の他の記述形式で記述してもよい。Webスクレイピング管理モジュール207は、図4に示すようなスクリプトの記述を読み取り、WebUI操作を実行することができる。なお、スクリプトでは、各操作間の待ち時間を指定可能であり、任意のタイミングで操作を実行できてもよい。
208は機器操作モジュールであり、ユーザからの入力を元にMFP150への設定変更操作を実行する。設定変更操作とは、例えば、MFP150のファームウェアをアップデートする操作、MFP150にアプリケーションをインストール、もしくはアンインストールする操作、デバイスに搭載された種々の機能を無効化、もしくは有効化する操作等が挙げられる。もちろん、MFP150の設定を変更する操作であれば、前述の操作以外の操作でもよい。
なお、上記ファームウェアのアップデート及びアプリケーションのインストール、アンインストール等の処理は、実行日時指定のタスク処理として実行してもよい。この場合、機器操作モジュール208は、後述のデータベースサーバサービスモジュール202のアプリケーション管理テーブル302(図3)および不図示のアプリケーションインストールタスク管理テーブル等からタスク情報を取得する。また、ファームウェアアップデート及びアプリケーションのインストール等に必要なデータは、後述のファイルサーバサービスモジュール203に格納されているものとする。
203はファイルサーバサービスモジュールであり、ファイルを管理し、他モジュールからの要求に合わせてファイルの格納と取り出しを行う。ファイルサーバサービスモジュール203は、管理アプリケーション200からアクセス可能であれば、アプリケーションサーバ100とは別の機器上にあってもよい。この場合、ネットワーク170経由でのファイル送受信にはFTP(File Transfer Protocol)やWebDAV(Web-based Distributed Authoring and Versioning)等のプロトコルを使用してもよい。
202はデータベースサーバサービスモジュールであり、データを管理し、他モジュールからの要求に合わせてデータの格納と取り出しを行う。データベースサーバサービスモジュール202は、管理アプリケーション200からアクセス可能であれば、アプリケーションサーバ100とは別の機器上にあってもよい。
209は機器構成管理モジュールであり、MFP150の構成情報を管理する。MFP150の構成情報としては、例えばMFP150の製品名やベンダ情報、MFP150のファームウェアのバージョン情報、MFP150にインストールされているアプリケーションの識別名称やバージョン情報、MFP150に接続されているオプション機器の製品名やベンダ情報等が挙げられる。MFP150の構成情報は、MFP150を構成するハードウェア及びソフトウェアの情報であれば、それ以外の構成情報であってもよい。
また、MFP150の構成情報は、後述する図3に示すような、データベースサーバサービスモジュール202のベンダ管理テーブル300、製品機種管理テーブル301、アプリケーション管理テーブル302、オプション機器管理テーブル303、機器管理テーブル305等に格納されている。これらのテーブル情報を読み書きすることで、機器構成管理モジュール209はMFP150の構成情報を管理する。
図3A〜図3Cは、データベースサーバサービスモジュール202内のテーブル構成の一例を示す図である。なお、図3A〜図3Cのテーブル構成はあくまで一例であり、本例とは異なるテーブル構成であってもよい。
300はベンダ管理テーブルであり、管理アプリケーション200が管理するMFP150の製造ベンダ名等のベンダ情報を管理するためのテーブルである。ベンダ管理テーブル300で管理する情報としては、例えばベンダ識別子、ベンダ名等が挙げられる。ここで、ベンダ識別子は、ベンダを一意に識別する識別子である。また、MFP150に接続されたオプション機器、及びMFP150にインストールされたアプリケーションのベンダ情報も、同一のベンダ管理テーブル300で管理することができる。なお、MFP、オプション機器、アプリケーション等の専用のベンダ管理テーブルを作成してもよい。
301は製品機種管理テーブルであり、管理アプリケーション200が管理するMFP150の製品情報を管理するためのテーブルである。製品機種管理テーブル301で管理する情報としては、例えば製品機種識別子、ベンダ識別子、製品識別名称、ファームウェアバージョン等が挙げられる。ここで、製品機種識別子は、製品機種を一意に識別する識別子である。
302はアプリケーション管理テーブルであり、機器構成管理モジュール209が、MFP150にインストールされているアプリケーションの情報を管理するためのテーブルである。アプリケーション管理テーブル302で管理する情報としては、例えばアプリケーション識別子、アプリケーション名、ベンダ識別子、バージョン等が挙げられる。ここで、アプリケーション識別子は、アプリケーションを一意に識別する識別子である。またベンダ識別子とは、ベンダ管理テーブル300におけるベンダ識別子を指しており、ベンダ情報を関連付けるための識別子である。
303はオプション機器管理テーブルであり、機器構成管理モジュール209が、MFP150に接続されているオプション機器の情報を管理するためのテーブルである。オプション機器管理テーブル303で管理する情報としては、例えばオプション機器識別子、アベンダ識別子、オプション製品名称等が挙げられる。ここで、オプション機器識別子は、オプション機器を一意に識別する識別子である。またベンダ識別子とは、ベンダ管理テーブル300におけるベンダ識別子を指しており、ベンダ情報を関連付けるための識別子である。
304はスクリプト管理テーブルであり、Webスクレイピング管理モジュール207が、MFP150に対してWebスクレイピングを実行するための操作命令を記述したスクリプトを管理するためのテーブルである。スクリプト管理テーブル304で管理する情報としては、例えばスクリプト識別子、スクリプト名称、製品機種識別子、オプション機器識別子、アプリケーション識別子、スクリプトデータ、目的識別子等が挙げられる。
ここで、スクリプト識別子とは、スクリプトを一意に識別する識別子である。製品機種識別子とは、製品機種管理テーブル301における製品機種識別子を指しており、MFP150の機種情報を関連付けるための識別子である。オプション機器識別子とは、オプション機器管理テーブル303におけるオプション機器識別子を指しており、MFP150に接続されたオプション機器情報を関連付けるための識別子である。アプリケーション識別子とは、アプリケーション管理テーブル302におけるアプリケーション識別子を指しており、MFP150にインストールされているアプリケーション情報を関連付けるための識別子である。
スクリプトデータとは、スクリプト(図4のような)のファイル本体が格納されているファイルサーバサービスモジュール203上のパスを示す情報である。または、スクリプトファイルをデータベースにバイナリデータ形式として保存してもよい。さらに、種々のスクリプトをデータベースで管理することも可能であり、一つのバイナリデータ形式で管理しなくてもよいものとする。
目的識別子とは、スクリプトの目的を一意に識別する識別子である。スクリプトの目的とは、例えば、MFP150の設定変更、MFP150へのアプリケーションやライセンスファイルのインストール、MFP150のステータスの取得等がある。なお、スクリプトの目的は、例えば、スクリプトの登録時にカテゴライズされ登録されるものとする。
スクリプト管理テーブル304では、ネットワーク機器と該ネットワーク機器に接続されたオプション機器、そしてインストールされているアプリケーション等の構成条件情報と、各構成条件に対応したスクリプトデータ及び目的識別子が予め登録されているものとする。なお、スクリプト管理テーブル304に目的識別子を登録することなく、必要に応じて、スクリプトの記述から判断するようにしてもよい。例えば、スクリプトに記述される、ページ遷移フロー、扱うファイル、取得したデータの格納先等により、必要なタイミングで目的を判断するようにしてもよい。
305は機器管理テーブルであり、管理アプリケーション200が管理するMFP150に関する情報を管理するテーブルである。機器管理テーブル305で管理する情報としては、例えばネットワーク機器識別子、機器名称、ユーザアカウント、パスワード、製品機種識別子、オプション機器識別子、アプリケーション識別子、IPアドレス、HTTPポート番号、シリアルナンバー、最終探索日時(不図示)等が挙げられる。
ここで、ネットワーク機器識別子とは、MFP150を一意に識別する識別子である。製品機種識別子とは、製品機種管理テーブル301における識別子を指しており、MFP150の機種情報を関連付けるための識別子である。ユーザアカウントとは、MFP150のユーザ認証に必要なログイン情報であり、MFP150にログイン可能なユーザ名である。またパスワードもユーザ認証に用いるものとする。
オプション機器識別子とは、オプション機器管理テーブル303におけるオプション機器識別子を指しており、MFP150に接続されているオプション機器情報を関連付けるための識別子である。アプリケーション識別子とは、アプリケーション管理テーブル302におけるアプリケーション識別子を指しており、MFP150にインストールされているアプリケーション情報を関連付けるための識別子である。最終探索日時(不図示)は、管理アプリケーション200の探索モジュール206がMFP150を最後に探索した日時の情報である。
306はタスク管理テーブルであり、Webスクレイピング管理モジュール207がMFP150に対してWebスクレイピングを実行するためのタスク情報を管理するテーブルである。タスク管理テーブル306で管理する情報としては、例えばタスク識別子、タスク種別、タスク実行間隔、次回実行日時、ネットワーク機器識別子、次回実行スクリプト識別子等が挙げられる。
ここで、タスク識別子とは、タスクを一意に識別する識別子である。タスク種別は、タスク実行周期を指定する。例えば、一定時間間隔、もしくは年毎、月毎、週毎などで指定可能な、定期的に実行するという種別もあれば、指定の日時に1回のみ実行するという種別も挙げられる。タスク実行間隔では、前述のタスクの実行間隔を指定するものとする。次回実行日時では、次回のタスク実行予定日時が指定されており、この日時にタスクを実行する。ネットワーク機器識別子とは、機器管理テーブル305におけるネットワーク機器識別子を指しており、特定のMFP150を関連付けるための識別子である。ここで関連付けられたMFP150に対して、タスクを実行する。次回実行スクリプト識別子とは、スクリプト管理テーブル304におけるスクリプト識別子を指しており、次回実行時に使用するスクリプトを関連付けるための識別子である。
307は実行結果管理テーブルであり、Webスクレイピング管理モジュール207が、MFP150に対してWebスクレイピングタスクを実行した際のタスク実行結果情報を管理するテーブルである。実行結果管理テーブル307で管理する情報としては、例えばタスク実行結果識別子、タスク識別子、実行日時、タスク実行結果、実行スクリプト識別子、実行ログデータ、スクリプト修正実施フラグ、スクリプト修正結果等が挙げられる。
ここで、タスク実行結果識別子とは、タスク実行結果を一意に識別する識別子である。タスク識別子とは、タスク管理テーブル306におけるタスク識別子を指しており、Webスクレイピングの実行に用いられたタスク情報を関連付けるための識別子である。実行スクリプト識別子とは、スクリプト管理テーブル304におけるスクリプト識別子を指しており、タスク実行時に使用したスクリプトを関連付けるための識別子である。
実行ログデータとは、Webスクレイピング実行時に出力されるログファイルのことであり、ここでは、ログファイルが格納されているファイルサーバサービスモジュール203上のパスを示す。ログファイルに出力されるログ情報は、例えばネットワーク機器情報、WebUIページ遷移情報、HTML情報、各コマンドの実行結果、各種パラメータ、スクリプト実行エラー情報等が挙げられる。ログファイルは、ファイル形式でなく、データベース上で管理されてもよく、ログファイルをデータベースにバイナリデータ形式として保存してもよい。さらに、種々のログデータをデータベースで管理することも可能であり、一つのバイナリデータ形式で管理しなくてもよいものとする。
308は、ウェブページのページ構成情報(WebUI情報)を管理するWebUI情報管理テーブルである。WebUI情報管理テーブル308は、Webスクレイピング管理モジュール207が、MFP150のWebUIにアクセスして取得したWebUI情報(WebUIのページ階層情報と各ページのHTML情報等)を管理するテーブルである。WebUI情報管理テーブル308で管理する情報(WebUI情報)としては、例えばWebUI情報識別子、WebUI階層データ、WebUIHTMLデータ、取得日時、ネットワーク機器識別子等が挙げられる。
ここで、WebUI情報識別子とは、WebUI情報を一意に識別する識別子である。WebUI階層データとは、WebUIページの階層情報を示すデータである。WebUIHTMLデータとは、WebUIページのHTML情報を示すデータである。取得日時とは、WebUI情報を取得した日時を示す。ネットワーク機器識別子とは、機器管理テーブル305におけるネットワーク機器識別子を指しており、特定のMFP150を関連付けるための識別子である。
なお、Webスクレイピング管理モジュール207により新たなWebUI情報が取得された場合には、新たなレコードがWebUI情報管理テーブル308に追加され、該取得されたWebUI情報が格納される。このように、WebUI情報管理テーブル308では、ネットワーク機器のWebUI情報の履歴を管理可能である。
次に、再び図2を用いて、クライアントコンピュータ120のソフトウェア構成を示す。なお、クライアントコンピュータ120を構成する各モジュールはそれぞれROM103もしくは外部メモリ111に保存されたファイルとして存在するプログラムモジュールである。そして、実行時に、クライアントコンピュータ120のCPU101で実行されるOSやそのモジュールを利用するモジュールによってRAM102にロードされ実行され、クライアントコンピュータ120に機能を提供するプログラムモジュールである。
220はネットワークモジュールであり、任意の通信プロトコルを使用してアプリケーションサーバ100およびMFP150とのネットワーク通信を行う。221はWebブラウザであり、ネットワークモジュール220を介してHTTPリクエストメッセージを送信し、HTTPレスポンスメッセージを受信して表示する。Webブラウザ221は、クライアントコンピュータ120からアプリケーションサーバ100へのアクセスはWebブラウザ221を通じて行われる。
続いて、MFP150のソフトウェア構成を示す。
MFP150において、各種モジュールは、ROM154あるいは外部メモリ162に保存されたファイルとして存在し、実行時にCPU152によりRAM153にロードされて実行され、MFP150に機能を提供する。
230はネットワークモジュールであり、任意の通信プロトコルを使用してアプリケーションサーバ100やクライアントコンピュータ120とのネットワーク通信を行う。
231はWebサーバサービスモジュールであり、管理アプリケーション200のWebスクレイピング管理モジュール207、及びクライアントコンピュータ120のWebブラウザ221からのHTTPリクエストを受信し、HTTPレスポンスを返信する。返信するHTTPレスポンスは、例えば、外部メモリ162に保存されたWebページデータを返信してもよいし、管理アプリケーション200のUIモジュール204にHTTPレスポンスの生成を要求してもよい。
232は自機構成管理モジュールであり、MFP150のハードウェア構成情報の管理を行う。ハードウェア構成情報とは、例えば、自機の製造番号や製造地等の自機固有情報、MFP150に接続されたオプション機器の製品情報や使用状態等が挙げられる。オプション機器の例としては、フィニッシャやカセットユニット等が挙げられる。オプション機器内部にトナーやヒンジ等の消耗摩耗品が使用されている場合、自機構成管理モジュール232は、これらの消耗状態及び摩耗状態も取得し、ネットワークモジュール230及びネットワーク170を通して管理アプリケーション200に通知する。
また、自機構成管理モジュール232は、管理アプリケーション200の機器操作モジュール208から送信されたファームウェアのアップデート要求を受信する。また、アプリケーションのインストール要求をネットワークモジュール230経由で受信し、自機のファームウェアアップデート及びアプリケーションのインストールを実行する。
233はアプリケーション管理モジュールであり、MFP150のソフトウェア構成情報の管理を行う。ソフトウェア構成情報とは、例えばMFP150のファームウェア情報、インストールされているアプリケーション情報等が挙げられる。
234はUIモジュールであり、MFP150の操作部156に表示されるUIの描画および操作部156上でユーザのUI操作により入力されたユーザ入力値の受信を行う。
以上示したように、管理装置としてのアプリケーションサーバ100の管理アプリケーション200が、ネットワーク機器としてのMFP150(デバイス)のウェブサーバの提供するウェブページを介した作業(デバイス情報の取得や設定変更)の操作内容をスクレイピングしておくことで、デバイスベンダの独自プロトコルや環境設定以外でも、デバイスの管理が可能となる。管理アプリケーション200は、デバイスのウェブサーバの提供するウェブページに対する各操作のためのブラウザ操作命令の手順を、スクリプトに書き出し、デバイス別にスクリプトを管理する。
なお、上述したスクリプトは、MFP150の構成が変更され、WebUI構成が変化した場合には実行できなくなる可能性がある。この場合、該構成が変更されたMFP150の管理を継続して行うことができなくなってしまうケースが考えられる。例えば、MFP150のファームウェアアップデートによる機能追加により、WebUIのページ階層やページ毎のHTMLが変更される場合が挙げられる。そのため、該MFP150に紐付けられたスクリプトに記述された各種コマンドが部分的もしくは全体的に無効化されてしまい、結果としてタスクが失敗する可能性が考えられる。これでは継続したMFP150の管理が行えなくなってしまう。しかし、管理アプリケーション200は、このようなMFP150に構成変更等が発生した場合でも、該MFP150を継続して管理することができる構成を有する。管理アプリケーション200は、デバイスのファームウェア更新やオプション変更などの要因によるウェブページの変更に合わせて、上記管理しているスクリプトを適切に更新する構成を有する。以下、この構成について詳細に説明する。
以下、図5を用いて、アプリケーションサーバ100が、ネットワーク機器の設定が変更されたことを検知し、MFP150のハードウェア及びソフトウェアの構成状況に応じて動的にスクリプトを修正する動作について述べる。
図5は、実施例1におけるアプリケーションサーバ100の動作の一例を示すフローチャートである。このフローチャートの処理は、管理アプリケーション200が実行する。即ち、アプリケーションサーバ100のCPU101が外部メモリ111等に格納されたプログラムを読み出して実行することにより実現される。
S400において、管理アプリケーション200の機器操作モジュール208は、ユーザ入力によるネットワーク機器の設定変更操作を監視する。設定変更操作としては、例えば管理アプリケーション200を介してMFP150のファームウェアをアップデートする操作、MFP150のアプリケーションをアンインストールする操作、その他種々の設定値を変更する操作等が挙げられる。もちろん、機器操作モジュール208がユーザ入力を受け付けてMFP150の設定を変更する操作であれば、前述の操作以外の操作でもよい。
次に、S401において、管理アプリケーション200は、上記S400の監視結果に基づいて、ユーザ入力によって前述の設定変更操作が行われたか(該設定変更操作を検知したか)否かを判断する。そして、設定変更が行われていないと判断した場合(S401でNoの場合)、管理アプリケーション200は、S400に処理を戻し、ユーザ入力による設定変更操作の監視を継続する。一方、設定変更操作が行われたと判断した場合(S401でYesの場合)、S402に処理を進める。
S402では、機器構成管理モジュール209は、データベースサーバサービスモジュール202の機器管理テーブル305から、上記S401で設定変更操作が行われたと判断されたMFP150(以下、「対象MFP」という)の最新の構成情報を取得する。
次に、S403において、Webスクレイピング管理モジュール207は、データベースサーバサービスモジュール202のタスク管理テーブル306からS404以降の処理を行っていないタスク情報を1つ取得する。
S404において、Webスクレイピング管理モジュール207は、上記S403で取得したタスク情報の内容から、対象MFPが該タスク情報に対応するWebスクレイピングタスクの実行対象か否かを判断する。具体的には、上記S403で取得したタスク情報内のネットワーク機器識別子と、対象MFPのネットワーク機器識別子を比較することにより判断する。
そして、対象MFPが上記S403で取得したタスク情報に対応するWebスクレイピングの実行対象でないと判断した場合(S404でNoの場合)、管理アプリケーション200は、そのままS415に処理を進める。一方、対象MFPが上記S403で取得したタスク情報に対応するWebスクレイピングタスクの実行対象であると判断した場合(S404でYesの場合)、Webスクレイピング管理モジュール207は、S405に処理を移行させる。
S405では、Webスクレイピング管理モジュール207は、上記S403で取得したタスク情報の次回スクリプト識別子に基づき、データベースサーバサービスモジュール202のスクリプト管理テーブル304から、上記次回スクリプト識別子に対応するスクリプト及び該スクリプトと目的識別子が同一のスクリプトの、ネットワーク機器の構成条件情報とスクリプト情報を取得する。なお、ネットワーク機器の構成条件情報とは、スクリプト管理テーブル304内の製品機種識別子、オプション機器識別子、アプリケーション識別子等を示す。なお、スクリプト管理テーブル304に目的識別子が登録されていない場合には、各スクリプトの記述からスクリプトの目的を判断するようにしてもよい。例えば、スクリプトに記述される、ページ遷移フロー、扱うファイル、取得したデータの格納先等により、必要なタイミングで目的を判断するようにしてもよい。
次に、S406において、Webスクレイピング管理モジュール207は、上記S405で取得したスクリプトのネットワーク機器の構成条件情報に、上記S402で取得した対象MFPの最新の構成と合致するものが存在するかどうかを判断する。そして、対象MFPの最新の構成に合致するものが存在すると判断した場合(S406でYesの場合)、Webスクレイピング管理モジュール207は、S407に処理を進める。
S407では、Webスクレイピング管理モジュール207は、タスク管理テーブル306内の上記S403で取得したタスク情報の次回実行スクリプト識別子を、上記S406で対象MFPの最新の構成条件に合致すると判断した構成条件を有するスクリプト情報のスクリプト識別子に書き換えて、S415に処理を進める。これにより次回タスク実行時に対象MFPの現在の構成によって変更されたWebUIのページ階層及び各ページのHTMLに対応したスクリプトを読み込み、Webスクレイピングを実行することができる。
一方、対象MFPの最新の構成に合致するものが存在しないと判断した場合(S406でNoの場合)、Webスクレイピング管理モジュール207は、S408に処理を進める。
S408では、Webスクレイピング管理モジュール207は、対象MFPのWebUIにアクセスして、WebUI構成情報(WebUIのページ階層情報と各ページのHTML情報等)を以下の方法を用いて取得する。
まず、Webスクレイピング管理モジュール207は、機器管理テーブル305から、対象MFPのアドレス情報を取得して、対象MFPのWebサーバサービスモジュール231に対してHTTPリクエストを行う。次に、そのHTTPレスポンスのページURLをトップページとして、トップページのHTMLに含まれる別ページへのURLを、HTMLのリンクタグ、またはURLの正規表現検索によって取得し、各URLの文字列差分から各ページの階層情報を取得する。そして、取得したURLに対してHTTPリクエストを行っていき、前述の処理を各ページで再帰的に実行することで、WebUIのページ階層情報と、各ページのHTML情報を取得する。またその他にも、対象MFPのWebサーバサービスモジュール231が提供するサイトマップファイル等を利用して、WebUIのページ階層情報と、各ページのHTML情報を取得する手法がある。その場合は、Webスクレイピング管理モジュール207が当該ファイルを取得し、ファイルの情報を元に各ページのHTML情報を再帰的に取得することができる。もちろん、その他の手法を用いて、WebUIのページ階層情報と、各ページのHTML情報を取得してもよい。なお、S408で取得したWebUI情報は、WebUI情報管理テーブル308に追加されるものとする。
次に、S409において、Webスクレイピング管理モジュール207は、上記S408で取得したWebUIのページ階層情報とHTML情報を元に、スクリプトの動的な修正が可能かどうかを判断する。
スクリプトの動的修正が可能かどうかの判断方法として、例えばWebスクレイピング管理モジュール207がデータベースサーバサービスモジュール202のWebUI情報管理テーブル308から、対象MFPの構成変更前のページ階層情報を取得する。続いて、取得したページ階層情報と上記S408で取得した最新のWebUIページ階層情報との階層ツリーを比較することによって、Webスクレイピングの対象となるページが別のURL階層に移動していた場合にどの階層に移動したかを判別することができる。また、同様にして、各ページのHTML情報も過去のHTML情報と比較することで、HTMLのどの要素が変更されたかが分かる。例えば、各ページのHTMLをDOM(Document Object Model)ツリーに変換し、各DOM要素の位置情報、タグ名称、ID等の属性値、タグで囲まれた値等の差分を抽出することができる。これにより、特定のDOM要素が別の要素内に移動された場合でもHTML中のどの箇所に移動したかを判別することができる。そして、上記URL階層の移動とHTMLの要素の変更が判別できた場合にスクリプトの動的修正が可能と判断し、判別できなかった場合にスクリプトの動的修正が不可能と判断するものとする。もちろん、前述の手法以外の判断方法でスクリプトの動的な修正が可能かどうかを判断してもよい。
そして、スクリプトの動的な修正が可能であると判断した場合(S409でYesの場合)、Webスクレイピング管理モジュール207は、S410に処理を進める。
S410では、Webスクレイピング管理モジュール207は、データベースサーバサービスモジュール202のスクリプト管理テーブル、もしくはファイルサーバサービスモジュール203からスクリプトデータを取得し、スクリプトの修正を行う。スクリプトの修正の例としては、例えばWebUIのページ階層情報とHTML情報から得た差分情報を元に、スクリプト内のURL文字列やHTMLの要素位置を示すパス文字列等の修正が挙げられる。スクリプトの修正が完了したら、Webスクレイピング管理モジュール207は、S411に処理を進める。
S411では、Webスクレイピング管理モジュール207は、データベースサーバサービスモジュール202のスクリプト管理テーブル、もしくはファイルサーバサービスモジュール203に修正済みのスクリプトを上書きして保存する。もちろん、スクリプト管理テーブル304にスクリプト情報を新規に追加するなどして、修正済みのスクリプトを別名で保存してもよい。スクリプトの保存が完了したら、Webスクレイピング管理モジュール207は、S415に処理を進める。
また、上記S409において、スクリプトの動的な修正が不可能であると判断した場合(S409でNoの場合)、Webスクレイピング管理モジュール207は、S412に処理を進める。
S412では、Webスクレイピング管理モジュール207は、データベースサーバサービスモジュール202のタスク管理テーブル306、実行結果管理テーブル307からタスク情報を取得する。その後、図6に示すようなスクリプトの修正画面を、上記S401で判断された設定変更操作が行われたクライアントコンピュータ120のWebブラウザ221(クライアント画面)に表示制御する。
図6は、本実施例におけるスクリプト修正画面の一例を示す図である。
図6において、450はWebブラウザ画面であり、ここではスクリプト修正画面を表示している。451はメッセージ表示領域であり、スクリプトの修正が必要である旨のメッセージを表示している。452はテキスト編集領域であり、予めスクリプトの内容が出力されている。453はスクリプトのエラーメッセージ表示領域であり、スクリプト内のエラー箇所にポップアップで表示される。エラーメッセージには、スクリプトの修正が必要な箇所情報及び、どのような修正を行えばよいかのメッセージや図、そしてエラーログ情報等の種々のWebページへ遷移するためのリンクを表示する。また、エラーメッセージは、スクリプト修正画面とは別ページ又は別フレーム等の他の表示方法を用いて表示してもよい。
454はスクリプトの保存ボタンであり、このボタンがクリックされると、その旨がWebスクレイピング管理モジュール207に通知される。Webスクレイピング管理モジュール207は、この通知に応じて、テキスト編集領域452の入力状態を記憶した状態で、S413に処理を進める。
455はキャンセルボタンであり、このボタンがクリックされると、その旨がWebスクレイピング管理モジュール207に通知される。Webスクレイピング管理モジュール207は、この通知に応じて、スクリプトの修正処理をキャンセルして、S415に処理を進める。もちろん、テキスト編集領域452の入力状態を一時的に保存しておき、後で再度スクリプト修正画面を表示し、スクリプトの修正を再開できるようにしてもよい。
456はスクリプトファイルのアップロードボタンであり、このボタンがクリックされると、ファイル選択画面が表示され、スクリプトが記述されたテキストファイル等をアップロードすることができる。該アップロードが行われると、Webスクレイピング管理モジュール207は、該アップロードされたスクリプトデータをファイルサーバサービスモジュール203に一時的に保存し、S413に処理を進める。
457は、後述する対象MFPのWebUI操作画面(図7)への遷移ボタンであり、このボタンがクリックされると、WebUI操作画面(図7)が表示される。
以上で図6の説明を終了する。
続いて、図7のWebUI操作画面について説明する。
図7は、図6の遷移ボタン457をクリックした場合にWebブラウザ画面に表示される対象MFPのWebUI操作画面を例示する図である。
図7のWebUI操作画面では、Webブラウザがユーザによる対象MFPのWebUI操作を記録し、記録された操作情報を元にスクリプトを修正する。例えば、スクリプトの動的修正が失敗した箇所をエラーメッセージとしてユーザに提示して、修正が失敗した箇所まで部分的にスクリプトを読み込み、Webスクレイピング処理をユーザにページ遷移の過程を表示しながら実行する。その後、ユーザに目的とするWebUIの入力操作を実行してもらい、Webブラウザがその操作を記録する。
入力操作の例としては、例えばキーボード入力やマウスのクリック操作、ファイルのアップロード操作、文字列の選択等が挙げられる。Webブラウザはこれらの入力操作情報をアプリケーションサーバ100に非同期に送信し、Webスクレイピング管理モジュール207が入力操作情報を元に、スクリプトの修正を行う。このとき、入力操作をアプリケーションサーバ100に送信せず、アプレット等を使用してWebブラウザと連携するプログラムがスクリプトを動的に修正してもよい。
図7において、460はWebブラウザ画面である。461は、Webブラウザ画面460の内部に対象MFPのWebUIを表示するWebUI画面である。対象MFPのWebUI画面461は、HTMLのインラインフレーム要素及びJavaScript(登録商標)等のWebブラウザで利用可能なスクリプト言語を用いて対象MFPのWebUIを表示する。またMFP150のWebUI画面461は、別ウィンドウに表示してもよく、Webブラウザのアプレットを用いて、表示処理や操作記録処理等を行なってもよい。アプレットの例としては、Adobe Flash(登録商標)、Microsoft Silverlight(登録商標)、Microsoft DirectX(登録商標)、JavaApplet(登録商標)等が挙げられる。もちろん、それ以外の手法を用いて対象MFPのWebUIを表示し、種々の入力操作を記録してもよい。
462はスクリプトのエラーメッセージ表示領域であり、WebUI内のエラー関連箇所にスクリプトのエラー箇所を示すメッセージがポップアップ表示される。これは図6のエラーメッセージ表示領域453と同様のため、詳細な説明は省略する。463は対象MFPのWebUI操作を終了してスクリプトを保存するボタンであり、このボタンがクリックされると、その旨がWebスクレイピング管理モジュール207に通知される。Webスクレイピング管理モジュール207は、この通知に応じて、S413に処理を進める。
464はキャンセルボタンであり、このボタンがクリックされると、その旨がWebスクレイピング管理モジュール207に通知される。Webスクレイピング管理モジュール207は、この通知に応じて、スクリプトの修正処理をキャンセルして、S415に処理を進める。
以上で図7の説明を終了する。
以下、図5のフローチャートの説明に戻る。
S413において、Webスクレイピング管理モジュール207は、図6のスクリプト修正画面及び図7の対象MFPのWebUI操作画面を介して取得したスクリプト情報の内容と対象MFPのWebUI操作情報から、スクリプトを保存するどうかを判断する。
例えば、Webスクレイピング管理モジュール207は、取得したスクリプト情報の内容からWebスクレイピングを実行可能かどうか判断し、実行不可能と判断した場合は、スクリプトデータを保存しないと判断し(S413でNoと判断し)、S415に処理を進める。なお、このとき、S413でNoの場合、S412に戻り、再度スクリプトの修正画面を表示してもよい。
一方、Webスクレイピング管理モジュール207は、取得したスクリプト情報の内容からWebスクレイピングを実行可能と判断した場合は、スクリプトデータを保存すると判断し(S413でYesと判断し)、S414に処理を進める。
S414では、Webスクレイピング管理モジュールは、図6,図7で修正したスクリプトをデータベースサーバサービスモジュール202のスクリプト管理テーブル304又はファイルサーバサービスモジュール203に保存し、S415に処理を進める。
S415では、Webスクレイピング管理モジュールは、タスク管理テーブル306内の全てのタスク情報についてS404以降の処理を終了したか否かを判断する。そして、まだ終了していないと判断した場合(S415でNoの場合)、Webスクレイピング管理モジュールは、S403に処理を戻し、未だ処理していない次のタスク情報に処理を移す。
一方、全てのタスク情報についてS404以降の処理を終了したと判断した場合(S415でYesの場合)、Webスクレイピング管理モジュール207は、本フローチャートの処理を終了する。
以上の処理により、ユーザによるMFP150の設定変更操作を検知した管理アプリケーション200が、それら変更操作によって変更されたMFP150の構成に応じて、動的にスクリプトを修正したり、スクリプトを切り替えることが可能となる。その結果、管理アプリケーション200は、MFP150の設定変更もWebスクレイピングタスクを継続して実行することができるようになる。
従って、ネットワーク機器の構成が変更された場合でも継続してネットワーク機器の管理を行うことが可能となる。
上記実施例1では、管理アプリケーション200を介してMFP150の設定変更を行った場合に、MFP150の構成に応じて動的にスクリプトを修正する構成を示した。実施例2では更に、MFP150の操作パネル、及び外部のアプリケーションによってMFP150の設定が変更された場合に、MFP150の最新の構成情報を取得し、構成の変更を検知して動的にスクリプトを修正する構成を説明する。
実施例2におけるクライアント・サーバシステムのシステム構成およびハードウェア構成・ソフトウェア構成については、実施例1の図1、図2および図3と同様のため説明を省略する。
以下、図8を用いて、アプリケーションサーバ100がMFP150の最新の構成情報を取得し、構成の変更を検知して動的にスクリプトを修正する際のアプリケーションサーバ100の動作について述べる。なお、実施例1の図5と同様のステップについては説明を省略する。
図8は、実施例2におけるアプリケーションサーバ100の動作の一例を示すフローチャートである。このフローチャートの処理は、管理アプリケーション200が実行する。即ち、アプリケーションサーバ100のCPU101が外部メモリ111等に格納されたプログラムを読み出して実行することにより実現される。なお、このフローチャートに示す処理は、アプリケーションサーバ100が管理するネットワーク機器ごと(すなわちMFP150ごと)に実行されるものとする。以下、この処理で対象とするMFP150を「対象MFP」という。
まず、S500において、機器構成管理モジュール209は、ネットワーク170を介して対象MFPの自機構成管理モジュール232及びアプリケーション管理モジュール233に対して、構成情報取得要求を行い、自機構成管理モジュール232及びアプリケーション管理モジュール233から最新の構成情報を取得する。またこの処理は、タスクとして定期的に実行される処理である。もちろん、任意の日時で実行してもよい。
次に、S501において、機器構成管理モジュール209は、データベースサーバサービスモジュール202の機器管理テーブル305から対象MFPの構成情報を取得する。
次に、S502において、機器構成管理モジュール209は、上記S500で取得した対象MFPの最新の構成情報と、上記S501で取得した対象MFPの構成情報とを比較し、対象MFPの構成が変更されているかどうかを判断する。
そして、機器構成管理モジュール209が対象MFPの構成が変更されていると判断した場合(S502でYesの場合)、Webスクレイピング管理モジュール207が、S403以降の処理を実行する。なお、S403以降の処理は図5と同一なので説明は省略する。ただし、図8のS412では、図6、図7に示したような画面を、例えば、この時点でアプリケーションサーバ100に接続している全てのクライアントのWebブラウザに対して表示するものとする。なお、ユーザアカウント別に設定変更可否が設定されている場合は、設定変更を行える上位権限を持ったユーザアカウントでログインしているクライアントのWebブラウザに対して表示するものとする。また、予め登録してある管理等のメールアドレスに、スクリプト修正のためにログインを促すメールを送信し、該管理等からログインがあった場合に、上記画面を表示するようにしてもよい。
一方、機器構成管理モジュール209が対象MFPの構成が変更されていないと判断した場合(S502でNoの場合)、機器構成管理モジュール209は、そのまま本フローチャートの処理を終了する
以上の処理を定期的なタスクとして、管理アプリケーション200が管理するMFP150ごとに実行することで、管理アプリケーション200がMFP150の設定変更を検知して、動的にスクリプトを修正することが可能となる。その結果、管理アプリケーション200を介さずMFP150の構成が変更された場合でも、管理アプリケーション200がその後のWebスクレイピングタスクを継続して実行することができるようになる。
上記実施例1では、管理アプリケーション200を介してMFP150の設定変更を行った場合に、MFP150の構成に応じて動的にスクリプトを修正する構成を示した。また、実施例2では、MFP150の操作パネルや管理アプリケーション200以外の外部アプリケーションによってMFP150の設定が変更された場合にも、MFP150の構成変更を検知して動的にスクリプトを修正する構成を示した。実施例3では更に、Webスクレイピングタスクが失敗した場合に、動的にスクリプトを修正する構成について説明する。
実施例3におけるクライアント・サーバシステムのシステム構成およびハードウェア構成・ソフトウェア構成については、実施例1の図1、図2および図3と同様のため説明を省略する。
以下、図9を用いて、アプリケーションサーバ100がWebスクレイピングタスクの実行が失敗したことを検知し、動的にスクリプトを修正する際のアプリケーションサーバ100の動作について述べる。なお、実施例1の図5と同様のステップについては説明を省略する。
図9は、実施例3におけるアプリケーションサーバ100の動作の一例を示すフローチャートである。このフローチャートの処理は、管理アプリケーション200が実行する。即ち、アプリケーションサーバ100のCPU101が外部メモリ111等に格納されたプログラムを読み出して実行することにより実現される。なお、このフローチャートに示す処理は、アプリケーションサーバ100がタスクを実行する場合に実行されるものとする。
まず、S600において、Webスクレイピング管理モジュール207は、データベースサーバサービスモジュール202のタスク管理テーブル306から、タスク情報を取得する。次に、S601において、Webスクレイピング管理モジュール207は、上記S600で取得したタスク情報の次回実行スクリプト識別子に対応するスクリプトデータを、スクリプト管理テーブル304から取得する。
次に、S602において、Webスクレイピング管理モジュール207は、上記S601で取得したスクリプトデータの記述に従い、上記S601で取得したタスクの対象となるMFP150(以下、「対象MFP」という)のWebサーバサービスモジュール231が提供するWebUIに対してWebスクレイピング処理を実行する。
次に、S603において、Webスクレイピング管理モジュール207は、上記S602で実行したWebスクレイピング処理が失敗したかどうかを判断する。なお、Webスクレイピング処理が失敗したかどうかの判断方法として、例えばスクリプトに記述された種々のWebUI操作コマンドが最後まで実行されたかどうかなどの判断方法が挙げられる。具体的には、各コマンドにおいて操作対象となるWebUIページやHTML要素が見つからない場合、MFP150のWebUIへの通信が遮断した場合、WebUIにログインするためのアカウント情報が変更されて実行できなかった場合等が挙げられる。
そして、上記S602で実行したWebスクレイピング処理が失敗しなかった(成功した)と判定した場合(S603でNoの場合)、Webスクレイピング管理モジュール207は、そのまま本フローチャートの処理を終了する。
一方、上記S602で実行したWebスクレイピング処理が失敗したと判定した場合(S603でYesの場合)、Webスクレイピング管理モジュール207は、S604に処理を進める。
S604では、Webスクレイピング管理モジュール207は、対象MFPとのネットワーク通信に問題がある(即ち、S603のWebスクレイピング処理の失敗の原因が通信エラー)か否かを判断する。ネットワーク通信に問題がある(通信エラー)か否かの判断方法としては、例えば対象MFPのWebサーバサービスモジュール231に対してHTTPリクエストを行い、HTTPレスポンスを確認する方法などが挙げられる。もちろん、その他の確認方法でもよい。
そして、対象MFPとのネットワーク通信に問題がある(通信エラー)と判定した場合(S604でYesの場合)、Webスクレイピング管理モジュール207は、そのまま本フローチャートの処理を終了する。なお、この場合、管理アプリケーション200が、ユーザに対するネットワーク通信に問題が発生しWebスクレイピングタスクが失敗した旨のメッセージを管理アプリケーション200のUI画面、もしくは予め登録されているメールアドレスに対してメール等で通知してもよい。
一方、対象MFPとのネットワーク通信に問題がない(通信エラーでない)と判定した場合(S604でNoの場合)、Webスクレイピング管理モジュール207は、S605に処理を進める。
S605では、Webスクレイピング管理モジュール207は、機器構成管理モジュール209に指示し、ネットワーク170を介して対象MFPの自機構成管理モジュール232及びアプリケーション管理モジュール233に対して、構成情報取得要求を行い、自機構成管理モジュール232及びアプリケーション管理モジュール233から最新の構成情報を取得する。なお、この処理は、図8のS500と同様の処理であるので詳細は省略する。
次に、S606において、Webスクレイピング管理モジュール207は、上記S600で取得したタスク情報の次回スクリプト識別子に基づき、データベースサーバサービスモジュール202のスクリプト管理テーブル304から、上記次回スクリプト識別子に対応するスクリプト及び該スクリプトと目的識別子が同一のスクリプトの、ネットワーク機器の構成条件情報とスクリプト情報を取得する。なお、ネットワーク機器の構成条件情報とは、スクリプト管理テーブル304内の製品機種識別子、オプション機器識別子、アプリケーション識別子等を示す。
次に、Webスクレイピング管理モジュール207は、S406以降の処理を実行する。なお、S406以降の処理は図5と同一なので説明は省略する。ただし、図9のS412の処理は、図8のS412の処理と同様とする。また、図9では、S407、S411、S414の後、Webスクレイピング管理モジュール207は、図9のフローチャートの処理を終了する。
以上の処理を定期的なタスクとして実行することで、管理アプリケーション200がWebスクレイピングタスクの失敗を検知して、動的にスクリプトを修正することができるようになる。その結果、構成が変更されたMFP150に対して、実施例2の処理を実行する前にWebスクレイピングタスクを実行した場合でも、管理アプリケーション200がその後のWebスクレイピングタスクを継続して実行できるようになる。
以上示したように、各実施例によれば、ネットワーク機器の構成変化等によりWebUIのページ階層及び各ページのHTMLが変更された場合でも、ネットワーク機器及びWebUIの構成変化を検知し、動的にスクリプトを切り替えることで、ネットワーク機器の管理タスクを継続して実行することができる。すなわち、ベンダの独自プロトコルを利用することなく、ネットワーク機器の構成が変更された場合でも、継続してネットワーク機器の管理を行うことができる。よって、WebUI変更の度に管理者がスクリプトの手動修正を行うといった煩雑な管理作業を減らし、管理者の負荷を軽減することができる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
(他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施例の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。

Claims (14)

  1. ネットワーク機器への操作のために必要な該ネットワーク機器の提供するウェブページを介した命令をスクリプトとして管理する管理手段と、
    前記管理手段により管理されているスクリプトを用いて、前記ネットワーク機器の提供するウェブページを介して、該ネットワーク機器への操作を実行する実行手段と、
    前記ネットワーク機器の構成情報を取得する取得手段と、
    前記取得手段により取得された前記ネットワーク機器の構成情報に基づき、前記管理手段に管理されているスクリプトの修正が必要か否かを判定する判定手段と、
    前記判定手段により前記管理手段に管理されているスクリプトの修正が必要であると判定された場合に、該スクリプトの修正を行う修正手段と、を有し、
    前記管理手段は、前記修正手段により修正されたスクリプトを管理することを特徴とする管理装置。
  2. 前記判定手段は、前記スクリプトの修正がユーザの操作なしに可能か否かをさらに判定し、
    前記管理装置は、前記判定手段により前記スクリプトの修正がユーザの操作なしに可能でないと判定された場合に、ユーザの操作により該スクリプトの修正を行うための修正画面の表示制御を行う表示制御手段を、さらに有し、
    前記管理手段は、前記修正画面を介して修正されたスクリプトを管理することを特徴とする請求項1に記載の管理装置。
  3. 前記修正画面を介した前記スクリプトの修正は、前記修正画面に表示される前記スクリプトをユーザ入力により修正することを特徴とする請求項2に記載の管理装置。
  4. 前記修正画面を介した前記スクリプトの修正は、前記修正画面から行われるユーザによる前記ネットワーク機器の提供するウェブページへの操作の記録に基づいて修正することを特徴とする請求項2に記載の管理装置。
  5. 前記表示制御手段は、前記修正画面に、前記スクリプトのエラー箇所を表示することを特徴とする請求項2乃至4のいずれか1項に記載の管理装置。
  6. 前記実行手段が前記管理されたスクリプトを用いたネットワーク機器への操作に失敗し、かつ、該失敗の原因が通信エラーによる失敗ではない場合に、前記取得手段が前記ネットワーク機器の構成情報を取得し、前記判定手段が前記管理手段に管理されているスクリプトの修正が必要か否かを判定することを特徴とする請求項1乃至5のいずれか1項に記載の管理装置。
  7. 前記ネットワーク機器に対する構成変更の操作を検知する検知手段を有し、
    前記検知手段により前記ネットワーク機器に対する構成変更の操作が検知された場合に、前記取得手段が前記ネットワーク機器の構成情報を取得し、前記判定手段が前記管理手段に管理されているスクリプトの修正が必要か否かを判定することを特徴とする請求項1乃至5のいずれか1項に記載の管理装置。
  8. 前記ネットワーク機器への操作は、該ネットワーク機器に情報を設定する操作、または該ネットワーク機器から情報を取得する操作であることを特徴とする請求項1乃至7のいずれか1項に記載の管理装置。
  9. 前記管理手段は、前記スクリプトと、前記スクリプトの実行対象となるネットワーク機器とを紐付けたタスク情報も管理するものであり、
    前記タスク情報においてネットワーク機器に紐付けされるスクリプトを、前記管理手段に管理されているスクリプトの中から前記取得手段により取得された当該ネットワーク機器の構成情報に合致すると判断されたスクリプトに切り替える切り替え手段をさらに有することを特徴とする請求項1乃至8のいずれか1項に記載の管理装置。
  10. 前記ネットワーク機器の構成情報は、該ネットワーク機器の設定情報、該ネットワーク機器に接続されたオプション機器情報、該ネットワーク機器にインストールされたアプリケーション情報の少なくともいずれかを含むことを特徴とする請求項1乃至9のいずれか1項に記載の管理装置。
  11. 前記管理手段は、前記ネットワーク機器の提供するウェブページのページ構成情報の履歴も管理するものであり、
    前記判定手段は、前記ネットワーク機器の提供するウェブページの現在のページ構成情報と過去のページ構成情報との差分に基づいて、前記スクリプトの修正がユーザの操作なしに可能か否かを判定するものであり、
    前記修正手段は、前記ウェブページのページ構成情報の差分に基づいて、前記スクリプトの修正を行うことを特徴とする請求項1乃至10のいずれか1項に記載の管理装置。
  12. 前記ウェブページのページ構成情報は、前記ウェブページのページ階層情報と前記ウェブページのHTML情報を含むことを特徴とする請求項11に記載の管理装置。
  13. ネットワーク機器への操作のために必要な該ネットワーク機器の提供するウェブページを介した命令をスクリプトとして管理する管理手段と、前記管理手段により管理されているスクリプトを用いて、前記ネットワーク機器の提供するウェブページを介して、該ネットワーク機器への操作を実行する実行手段とを有する管理装置の制御方法であって、
    前記ネットワーク機器の構成情報を取得する取得ステップと、
    前記取得ステップにより取得された前記ネットワーク機器の構成情報に基づき、前記管理手段に管理されているスクリプトの修正が必要か否かを判定する判定ステップと、
    前記判定ステップにより前記管理手段に管理されているスクリプトの修正が必要であると判定された場合に、該スクリプトの修正を行う修正ステップと、
    前記修正ステップにより修正されたスクリプトを前記管理手段で管理するステップと、
    を有することを特徴とする管理装置の制御方法。
  14. コンピュータを、請求項1乃至12のいずれか1項に記載された手段として機能させるためのプログラム。
JP2013267432A 2013-12-25 2013-12-25 管理装置、管理装置の制御方法及びプログラム Expired - Fee Related JP6265732B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013267432A JP6265732B2 (ja) 2013-12-25 2013-12-25 管理装置、管理装置の制御方法及びプログラム
US14/580,075 US20150180955A1 (en) 2013-12-25 2014-12-22 Management apparatus and control method therefor for managing a network device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013267432A JP6265732B2 (ja) 2013-12-25 2013-12-25 管理装置、管理装置の制御方法及びプログラム

Publications (3)

Publication Number Publication Date
JP2015125472A true JP2015125472A (ja) 2015-07-06
JP2015125472A5 JP2015125472A5 (ja) 2017-02-09
JP6265732B2 JP6265732B2 (ja) 2018-01-24

Family

ID=53401433

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013267432A Expired - Fee Related JP6265732B2 (ja) 2013-12-25 2013-12-25 管理装置、管理装置の制御方法及びプログラム

Country Status (2)

Country Link
US (1) US20150180955A1 (ja)
JP (1) JP6265732B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020013400A (ja) * 2018-07-19 2020-01-23 株式会社野村総合研究所 装置およびコンピュータプログラム

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9893910B2 (en) * 2016-02-22 2018-02-13 Brother Kogyo Kabushiki Kaisha Non-transitory computer-readable medium storing instructions
JP6833421B2 (ja) * 2016-09-20 2021-02-24 キヤノン株式会社 情報処理装置及びその制御方法、並びにプログラム
CN112491586B (zh) * 2020-11-05 2022-11-25 中国建设银行股份有限公司 网络设备驱动方法、装置、存储介质及计算机设备
US11281730B1 (en) * 2021-07-08 2022-03-22 metacluster lt, UAB Direct leg access for proxy web scraping
CN116305093A (zh) * 2021-11-19 2023-06-23 荣耀终端有限公司 小应用程序的操作方法和电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006092099A (ja) * 2004-09-22 2006-04-06 Fuji Xerox Co Ltd 画像形成方法及び画像形成装置
JP2006526843A (ja) * 2003-04-08 2006-11-24 ジュニパー ネットワークス, インコーポレイテッド クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム
JP2008015709A (ja) * 2006-07-04 2008-01-24 Fujitsu Ltd テスト支援プログラム、テスト支援装置、およびテスト支援方法
JP2008257335A (ja) * 2007-04-02 2008-10-23 Canon Inc 制御装置、プログラム作成方法、及びプログラム
JP2009151534A (ja) * 2007-12-20 2009-07-09 Canon Inc マクロ配信サーバ装置、およびその制御方法、プログラム、記憶媒体
JP2011087181A (ja) * 2009-10-16 2011-04-28 Canon Inc 画像処理装置、および画像処理装置におけるスクリプト補正方法
JP2011159277A (ja) * 2010-01-05 2011-08-18 Ricoh Co Ltd 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2012039478A (ja) * 2010-08-09 2012-02-23 Canon Inc 情報処理装置、情報処理システム、情報処理装置の制御方法及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689665B2 (en) * 2007-04-27 2010-03-30 Microsoft Corporation Dynamically loading scripts
US10326645B2 (en) * 2011-11-11 2019-06-18 Level 3 Communications, Llc System and methods for configuration management
US9639507B2 (en) * 2012-11-26 2017-05-02 Intuit Inc. Method and system for providing a net effect platform for developing and correcting screen scraping parser scripts

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006526843A (ja) * 2003-04-08 2006-11-24 ジュニパー ネットワークス, インコーポレイテッド クライアントリダイレクトによるプライベートネットワークへの安全なアクセス提供方法およびシステム
JP2006092099A (ja) * 2004-09-22 2006-04-06 Fuji Xerox Co Ltd 画像形成方法及び画像形成装置
JP2008015709A (ja) * 2006-07-04 2008-01-24 Fujitsu Ltd テスト支援プログラム、テスト支援装置、およびテスト支援方法
JP2008257335A (ja) * 2007-04-02 2008-10-23 Canon Inc 制御装置、プログラム作成方法、及びプログラム
JP2009151534A (ja) * 2007-12-20 2009-07-09 Canon Inc マクロ配信サーバ装置、およびその制御方法、プログラム、記憶媒体
JP2011087181A (ja) * 2009-10-16 2011-04-28 Canon Inc 画像処理装置、および画像処理装置におけるスクリプト補正方法
JP2011159277A (ja) * 2010-01-05 2011-08-18 Ricoh Co Ltd 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP2012039478A (ja) * 2010-08-09 2012-02-23 Canon Inc 情報処理装置、情報処理システム、情報処理装置の制御方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020013400A (ja) * 2018-07-19 2020-01-23 株式会社野村総合研究所 装置およびコンピュータプログラム

Also Published As

Publication number Publication date
JP6265732B2 (ja) 2018-01-24
US20150180955A1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
JP6265732B2 (ja) 管理装置、管理装置の制御方法及びプログラム
US8817281B2 (en) Print setting server, document processing server, print system, and print setting method
US10015326B2 (en) Image forming apparatus, automatic installation method for efficiently installing an image forming apparatus, and storage medium
US10809993B2 (en) System, management device, information processing device, control method for management device, control method for information processing device, and computer-readable storage medium
JP2015219890A (ja) 管理装置、その制御方法およびプログラム
JP6890938B2 (ja) 情報処理装置
US10430130B2 (en) Information processing system, information processing method
JP5553670B2 (ja) 管理装置、その制御方法およびプログラム
US20110176170A1 (en) Printing apparatus, printing system, and control method
JP2019101866A (ja) アプリケーションの更新方法およびプログラム
US9965299B2 (en) Information processing apparatus, method for controlling the same, and storage medium
US7904613B2 (en) Network device, network device management method, network device management system
US10878055B2 (en) Web server
JP2018097619A (ja) 情報処理装置、その方法及びプログラム
US20070006221A1 (en) Software install environment constructing apparatus
JP2018084893A (ja) 情報処理装置、制御方法およびプログラム
US8452194B2 (en) System, image processing apparatus, image forming apparatus, and method thereof
JP2011253294A (ja) 情報処理装置および制御方法およびプログラム
JP2010146324A (ja) 定型書式データ管理サーバ装置、定型文書作成システム
JP2015121887A (ja) 情報処理装置及びその制御方法、およびプログラム
US11789683B2 (en) Storage medium, computer, and method related to application for providing print setting screen
JP2012221152A (ja) 管理装置および管理方法
JP4626336B2 (ja) 印刷装置および参照先更新方法およびプログラム
JP2009301168A (ja) 情報管理装置、情報管理システム、情報管理方法、情報管理プログラム及び記録媒体
JP7106870B2 (ja) プログラム更新システム、及びプログラム更新方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161221

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161221

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20161221

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171113

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20171121

R151 Written notification of patent or utility model registration

Ref document number: 6265732

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees