(実施例1)
図1は、本実施形態のネットワークシステムの構成例を示す図である。顧客環境110には、監視対象となるネットワークデバイスである画像形成装置113と、画像形成装置113を監視する監視装置114とが、拠点ネットワークであるネットワーク112を介して接続されている。
画像形成装置113、監視装置114は、ネットワーク112、ゲートウェイ機器111を介してインターネット103に接続し、管理システム101と通信を行う。監視装置114は、画像形成装置113の稼動状態を示す稼動情報をネットワーク112経由で取得する。監視装置114は、取得した稼動情報を含むデバイス情報を、ネットワーク112、ゲートウェイ機器111、インターネット103、ゲートウェイ機器102を介して管理システム101に送信する。管理システム101は、監視装置114からデバイス情報を受信して管理することを通じて、画像形成装置113の監視サービスを実現する。管理システム101は、1以上のサーバ(データベースサーバも含む)から構成されるクラウドシステムとして実現することができる。なお、監視装置114が有する機能は、画像形成装置113が有するコンピュータプログラムで実現できるので、画像形成装置113に組み込むこともできる。画像形成装置113に監視装置114の機能を組み込んだ場合、監視装置114が存在しない構成でも本発明は実現可能である。
ゲートウェイ機器111は、ルーターやプロキシサーバー、ファイヤーウォール等で構成される。なお、本実施例では、インターネット103を介して各装置が通信を行う場合を説明しているが、各装置は、その一部または全てが同一ネットワーク内に接続されていてもよい。
監視会社環境120には、情報処理装置123が設けられている。情報処理装置123は、管理装置101の管理システム101の処理情報を閲覧、処理する。
情報処理装置123は、ネットワーク122、ゲートウェイ機器121を介してインターネット103に接続し、管理システム101と通信を行う。ゲートウェイ機器121は、ルーターやプロキシサーバー、ファイヤーウォール等で構成される。
次に、管理システム101について説明する。管理システム101は、例えば、1以上のサーバから構成されるクラウドシステムである。管理システム101は、ネットワーク104、ゲートウェイ機器102を介してインターネット103に接続し、監視装置114や情報処理装置123と通信を行う。ゲートウェイ機器102は、ルーターやプロキシサーバー、ファイヤーウォール等で構成される。
管理システム101は、監視装置114から受信したデバイス情報に対する各種処理を実行する。デバイス情報は、例えば、画像形成装置113の設定情報、画像形成装置113の一部または全体の稼動状態情報、消耗品の消耗度情報、カウンタ情報を含む。
設定情報は、例えば、IPアドレス、MACアドレス、シリアル番号、製品名、設置場所、インストールされているファームウェアの種類やバージョン、インストールされているアプリケーションの種類、バージョン等を含む。IPは、Internet Protocolの略称である。MACは、Media Access Controlの略称である。図11(A)は、設定情報の一例を示している。
稼動状態情報は、例えば、ハードディスクエラーや温度上昇、内部通信遮断等のハードエラーを含む。稼動状態情報が、紙ジャム等のエラー、消耗品切れ、ドアオープン、排紙トレイの紙積載超過等のユーザが回避できる事象に関する情報を含んでもよい。消耗品切れは、例えば、トナー切れ、用紙切れ、針切れを含む。監視装置114は、稼動状態情報として、例えば、RFC(Request For Comments)で定義されているMIB(Management Information Base )の値を画像形成装置から取得する。また、稼動状態情報に付与する情報として、情報取得日時、ユニット番号、重大度、トレーニングレベル、ユーザへの通知済みフラグを含むことができる。図11(B)は、稼動状態情報の一例を示している。
管理システム101は、複数台の画像形成装置113に関する情報を、画像形成装置113を一意に識別する管理識別子を用いて管理し、管理識別子と管理情報を紐づけて情報処理装置123に配信する。管理識別子は、例えば、ユニークな製造番号やMACアドレスあるいは本システムや他のシステムによって割り振られたユニークな識別子等である。図11(A),(B)に示す例では、「SerialNo.」列の値を管理識別子として利用している。「SerialNo.」列の値によって、図11(A)に示す設定情報と図11(B)に示す稼動状態情報とが紐付けられている。
図2は、画像形成装置のハードウェア構成の一例を示す図である。
図2中に示す画像形成装置113は、例えば、デジタル複合機、ファクシミリ装置、レーザービームプリンタ、インクジェットプリンタ、スキャナー装置等の装置であるものとする。
画像形成装置113は、CPU201、RAM202、ROM203、記憶装置204、ネットワークI/F(Interface)205、内部バス206、デバイス制御部207、印刷部208、入出力制御209を備える。CPUは、Central Processing Unitの略称である。RAMは、Random Access Memoryの略称である。ROMは、Read Only Memoryの略称である。
CPU201は、所定のプログラムを実行し画像形成装置113の各制御を指定するユニットである。CPU201は、内部バス206を介して、画像形成装置113が備える各デバイスを総括的に制御する。具体的には、CPU201は、ROM203に記憶された制御プログラムの実行処理を行う。
RAM202は、CPU201のメモリやワークエリアとして機能する。ネットワークI/F205は、ローカルエリアネットワーク112を介して、外部のネットワーク機器或いはパーソナルコンピュータ(PC)と片方向または双方向にデータをやりとりする。デバイス制御部207は、印刷部208を制御する。印刷部208は、定着器等を有しており、印刷処理を実行する。記憶装置204は、外部記憶装置として機能し、CPU201の指示にしたがって画像データ等を記憶するほか、RAM202に代わって、各種の管理情報を保存する。
なお、監視装置114が有する機能をプログラムとしてROM203に記憶させておき、CPU201が、このプログラムを実行するようにしてもよい。これにより、監視装置114の機能を有する画像形成装置を実現することができる。
図3は、監視装置のハードウェア構成の一例を示す図である。
監視装置114は、例えば、PC、サーバ等の情報処理装置に適用することができる。監視装置114は、CPU301、RAM302、ROM303、記憶装置304、ネットワークI/F305、内部バス306、入出力I/F307を備える。
CPU301は、ROM303に格納されている制御プログラムを実行し、内部バス306を介して、監視装置114内の各デバイスを総括的に制御する。内部バス306には、RAM302、ROM303、記憶装置304、ネットワークインターフェース305の各デバイスが接続されている。また、入出力I/F307は、例えば、PS2やUSB(Universal Serial Bus)インターフェース、アナログやデジタルのディスプレイインターフェースである。
外部機器として監視装置114に接続されている入出力装置308は、キーボードやマウス、CRTや液晶装置等である。CRTは、Cathode Ray Tubeの略称である。入出力装置308は、入出力I/F307を介して接続され、監視設定情報の登録・変更・削除・表示や管理情報の表示、ログファイルの表示等を行うことができる。
ネットワークI/F305は、ネットワーク112やゲートウェイ機器111を介してインターネット103に接続し、画像形成装置113や管理システム101、情報処理装置123と通信を行う。ゲートウェイ機器111は、ルーターやプロキシサーバー、ファイヤーウォール等で構成される。CPU301は、RAM302やROM303を制御してプログラムの実行処理を行うとともに、記憶装置304等の記録媒体に画像データを記録する処理を行う。記憶装置304は、外部記憶装置として機能し、各種の管理情報を記憶するほか、RAM302に代わって、システム情報及び処理情報を記憶することも可能である。
入出力装置308を外部機器として説明したが、もちろん、入出力装置308は、管理システム101や情報処理装置123にハードウェアとして内蔵されていても良い。なお、管理システム101や情報処理装置123についても、監視装置114と同様のハードウェア構成を適用することができる。
図4は、監視装置の機能ブロック図の一例である。監視装置114は、送信制御部401、デバイス情報取得部402、生成部403、データ送信部404、周期取得部405、記憶部406を備える。また、記憶部406は、デバイス情報管理部410、最新データ管理部411を備える。
送信制御部401は、定期送信、即時送信に関する処理を行う。定期送信は、所定の送信スケジュールにしたがってデバイス情報を送信する処理(スケジュール送信)である。即時送信は、即時に送信すべきデバイス情報を優先送信する処理である。送信制御部401は、デバイス情報に応じて、定期送信や即時送信を行う。各種情報の送信に関しては、情報の即時性、定期送信の要否などが異なるので、送信制御部401は、情報毎に異なるタイミングで管理システム101に送信する。
具体的には、送信制御部401は、定期送信の制御において、周期取得部405から送信設定情報を取得する。送信設定情報には、送信周期が含まれる。このために、周期取得部405が、管理システム101の周期設定部502から、送信設定情報を取得する。送信制御部401は、送信周期の設定情報に応じて、画像形成装置毎に管理システム101への送信スケジュールの設定を行う。送信制御部401は、送信周期の設定情報を、周期取得部405から取得しても良いし、監視装置114のUIもしくは初期設定ファイルにより、ユーザが送信周期を指示できるものであっても良い。
一方、即時送信の制御においては、監視装置114が監視対象の画像形成装置113から取得したデバイス情報を管理システム101に順次通知する。具体的な処理に関しては、図8と図9を用いて後述する。送信制御部401は、定期送信される稼動情報の送信制御のための予約リスト(図12)を管理して、その送信スケジュールを決定し、稼動情報の送信制御など行う。具体的には、送信制御部401は、予約リスト(図12)に登録されている稼動情報毎の送信周期情報に基づいて、予約された時間に間に合うように、定期送信の送信スケジュールを決定する。
デバイス情報取得部402は、監視対象の画像形成装置113のデバイス情報をポーリングやイベント通知により取得する。生成部403は、稼動情報の定期送信や即時送信に際して、デバイス情報管理部410から送信対象となるデバイス情報を取得し、所定の送信用フォーマットによる送信データを生成する。
データ送信部404は、送信制御部401により決定された送信開始時間に、生成部403によって生成された送信データを管理システム101に送信する。
デバイス情報管理部410は、画像形成装置113からの構成情報及び稼動情報の取得の制限を行ったり、取得したデバイス情報を記憶装置304に記憶したりする。
最新データ管理部411は、送信リストに現時点で追加されている各デバイス(画像形成装置)の最新の情報を含むデータを、監視対象となる複数のデバイスのそれぞれから取得した稼動情報に基づいて、各デバイスに対応付けて管理する。送信リストは、即時送信すべきデータ(通知)を管理するためのキュー(第1のキュー)である。送信リストにおいて管理されるデータは、画像形成装置113から取得された稼動情報に応じて決まる。当該管理されているデータが、管理システム101に通知されることになる。最新データ管理部411によって管理される最新のデータは、送信リストにデータが追加される毎、送信リストのデータの管理システム101への送信が成功する毎に更新される。すなわち、最新データ管理部411には、送信リストに存在するデータのうち、それぞれのデバイスの最新の情報を含むデータを、他のデータと別個に管理する。
図5は、管理システムの機能ブロック図の一例である。管理システム101は、記憶部500、周期設定部502、デバイス情報登録部503、デバイス情報通知部504、通知条件設定部505、通知制御部506を備える。
記憶部500は、デバイス情報保存部501を備える。デバイス情報保存部501は、監視装置114から受信したデバイス情報を格納する。例えば、デバイス情報保存部501は、管理DB(データベース)を有し、デバイス情報は、管理DBに格納される。周期設定部502は、監視装置114が取得したデバイス情報の種類に応じて、デバイス情報を元に生成されるデータを送信するタイミングを示す送信周期を設定する。
デバイス情報登録部503は、監視装置114から取得した監視対象のデバイス情報をデバイス情報保存部501に格納し登録する。デバイス情報通知部504は、監視装置114から取得したデバイス情報に応じて登録されている通知先に対して通知を行う。なお、管理システム101は、監視装置114から優先送信されてきたデバイス情報については、デバイス情報保存部501に格納せず、デバイス情報通知部504に指示して、通知先に即時に通知する。
本実施例では、デバイス情報通知部504は、画面UIに最新のデバイス情報を表示し、ユーザにより設定された通知条件に応じて障害の状況をメール通知する。なお、デバイス情報通知部504は、デバイス情報を画面UIに表示するだけでも、ユーザに設定された宛先にメール通知するだけでもよい。通知条件判定部505は、デバイス情報に応じて通知処理を行うか否かを判断する条件を設定する。通知制御部506は、デバイス情報通知部504によるデバイス情報の通知処理を制御する。
以下に、図6乃至図9を参照して、監視装置114の動作処理を説明する。図6乃至図9に示すフローチャートの各ステップの処理は、監視装置114のCPU301が、ROM303、ハードディスク等の不揮発性記憶装置に記憶された制御プログラムを読み込み実行することに応じて実現される。
図6は、監視装置におけるデバイス情報の送信制御処理の例を説明するフローチャートである。ここでは、デバイス情報については、画像形成装置113から適宜取得し、デバイス情報管理部410にて処理されているものとする。
まず、送信制御部401が、電源投入に伴うシステムの初期化を行う(ステップS601)。具体的には、送信制御部401は、既に登録済みのデバイス情報に関する情報テーブルの読み込みや変数の初期化などを行う。初期化終了後に、送信制御部401が、定期送信スレッド、即時送信スレッドを起動する(ステップS602)。定期送信スレッドは、定期送信処理を実行するためのスレッドである。即時送信スレッドは、即時送信処理を実行するためのスレッドである。初期化処理が完了後、監視装置114が外部からの要求及び画像形成装置113からの情報取得に関する処理を行うループに入る。
本実施例においては、監視装置114の処理能力に依存して外部装置に情報を送信するためのスレッドを複数起動できる。監視装置114は、起動された複数のスレッドを用いて、複数種類の情報の送信処理を並行して行うことが可能である。これにより、即時送信スレッドの処理が何らかの理由で遅延した場合であっても、即時性の必要な情報の送信を効果的に行うことを実現している。
次に、送信制御部401が、管理システム101への送信設定情報の変更要求があるかを判断する(ステップS603)。送信設定情報の変更要求は、例えば、定期送信のためのスケジュールの変更を求める要求である。送信設定情報の変更要求は、監視装置114または画像形成装置113のUIを介したユーザからの依頼に応じた要求であってもよい。
管理システム101への送信設定情報の変更要求がない場合は、処理がステップS601に進む。管理システム101への送信設定情報の変更要求がある場合は、周期取得部405が、周期設定部502から送信設定情報を取得する(ステップS604)。そして、周期取得部405が、送信設定情報の取得に成功したか否かを判断する(ステップS605)。
送信設定情報の取得に成功した場合は、送信制御部401が、定期送信スレッドに停止要求を行う(ステップS606)。そして、送信制御部401が、スレッドが停止したかを判断する(ステップS607)。スレッドが停止していない場合は、処理がステップS607に戻る。スレッドが停止した場合、送信制御部401が、再度、定期送信スレッドを起動し(ステップS608)、処理がステップS603へ戻る。
送信設定情報の取得に失敗した場合、周期取得部405が、送信設定情報の変更の要求元にエラーを返信して(ステップS609)、処理がステップS603へ戻る。定期送信スレッドの詳細な処理については、図7を用いて後述する。
ステップS610において、送信制御部401が、即時送信の対象となるデバイス情報を受信したかを判断する。即時送信の対象となるデバイス情報には、稼動状態情報が含まれる。稼動状態情報には、画像形成装置113から監視装置114へイベント通知される、もしくはポーリングによって取得されるサービスコール、ジャム/ アラート発生、トナー残量少などの障害情報が含まれる。
即時送信の対象となるデバイス情報を受信していない場合は、処理がステップS612に進む。即時送信の対象となるデバイス情報を受信した場合は、送信制御部401が、即時送信処理を行う(ステップS611)。即時送信処理の詳細な処理については図8を用いて後述する。
ステップS612において、送信制御部401が、システム停止要求を検出したかを判断する。システム停止要求を検出した場合は、送信制御部401が、起動されている全送信スレッドに停止要求を行う(ステップS613)。続いて、送信制御部401が、全スレッドが停止したかを判断する(ステップS614)。停止していないスレッドがある場合は、処理がステップS614に戻る。全スレッドが停止した場合は、送信制御部401が、その他終了処理を行い、本プログラムを終了する。
図7は、定期送信スレッドの処理の例を説明するフローチャートである。
定期送信スレッドは、本システム初期化時に起動され、システム停止時に終了する。
まず、定期送信スレッドが起動されると、スレッドの初期化処理を行う(ステップS701)。初期化処理の一環として、送信制御部401は、送信予約データを格納する予約リストを初期化する。予約リストは非循環双方向リストである。新たに予約リストに送信予約データを登録する際には、送信制御部401は、登録対象の送信予約データが、既に予約リストに登録されている予約送信データと重複するかを確認する。重複しない場合は、新たに予約リストに送信予約データを登録できる。また、予約リストは時系列で送信予約データが並んでおり、先頭のデータから処理され、処理された送信予約データは予約リストから削除される。
送信予約データが処理された場合、その送信予約データのデータ種別で指定される稼動情報などが管理システム101に定期送信されることになる。本実施例において定期送信のスケジュールの設定は主題ではないため詳細の説明は省く。
次に、ステップS702において、送信制御部401が、定期送信される送信情報の送信予約処理を行う。具体的には、送信制御部401が、周期取得部405から取得した送信周期を基に予約リストに送信データを追加する。予約リストに登録されている送信予約データは、図12に例示するように、少なくとも、データ種別、送信開始日時を属性情報として持つ。
次に、送信制御部401が、定期送信スケジュールにしたがう定期送信タイマーイベントが発生したか、すなわち、定期送信されるべき情報を定期送信する開始時間となったかを判断する(ステップS703)。定期送信タイマーイベントが発生していない場合は、処理がステップS711に進む。
定期送信タイマーイベントが発生した場合、送信制御部401が、予約リストの先頭の送信予約データを取得する(ステップS704)。続いて、生成部403が、送信制御部により取得された送信予約データで指定されるデータ種別のデバイス情報を、デバイス情報管理部410から取得する。そして、生成部403が、所定のスケジュール送信用のフォーマットに合わせて送信データを生成する(ステップS705)。
次に、ステップS706において、データ送信部404が、生成部403により生成された送信データを管理システム101に送信する(ステップS706)。そして、送信制御部401が、定期送信に成功したかを判断する(ステップS707)。定期送信に成功した場合は、送信制御部401が、次回の定期送信のために、最優先に定期送信される送信情報の送信予約処理を行う(ステップS708)。定期送信に失敗した場合は、送信制御部401が、送信に失敗した送信対象となった情報が、再送対象データであるかを判断する(ステップS709)。
送信に失敗した送信対象となった情報が、再送対象データである場合は、送信制御部401が、次回の定期送信のために、送信予約処理を行う(ステップS708)。次回の送信では、送信制御部401は、今回失敗したデータを含めたデータを送信する。もちろん、再送用のスレッドを用意するなどして、失敗した送信のリトライを行うような構成でもよい。
送信に失敗した送信対象となった情報が、再送対象データでない場合、送信制御部401が、エラーログを出力し(ステップS710)、処理がステップS703へ進む。
ステップS711において、送信制御部401が、スレッド停止要求が検出されたかを判断する。スレッド停止要求が検出されない場合は、処理がステップS703に戻る。スレッド停止要求が検出された場合、送信制御部401が、スレッドの終了処理を行い(ステップS712)、定期送信スレッドを終了する。
図8は、即時送信処理の例を説明するフローチャートである。
本実施例においては、即時送信すべきデータを送信リストで管理し、データ管理にキュー方式を用いている。送信制御部401が、送信リストを管理し、生成部403によって生成されたデータを送信リストに追加する。送信リストに追加された送信データは、図6のステップS602で起動された即時送信スレッドによって先頭の送信データから順次送信されることになる。
まず、送信制御部401が、即時通知、もしくは、監視装置114がポーリングにより画像形成装置113から取得したイベント情報を、デバイス情報管理部410に保存する(ステップS801)。
次に、送信制御部401が、最新データ管理部411に保持された情報を更新する。以下では、最新データ管理部411に格納されている、各デバイスの最新の情報を最新デバイス情報と記述する。送信制御部401は、デバイス情報取得時に取得した画像形成装置113の最新デバイス情報を、最新データ管理部411に保存する。送信リストへの送信データの追加・削除が行われる毎に最新デバイス情報が更新される。
図13は、最新データ管理部で管理される最新デバイス情報の一例を示す図である。最新デバイス情報は、例えば、監視対処の画像形成装置のシリアル番号、データの取得日時、画像形成装置からポーリングやイベント通知等で取得した最新のデバイス情報を含む。つまり、最新デバイス情報では、画像形成装置の現在の情報が保持される。なお、最新デバイス情報には、情報取得時に画像形成装置で発生している稼動状態が保持されるため、複数の稼動状態情報が含まれることもある。
図8に戻って、ステップ803において、送信制御部401が、ステップS801で取得したデバイス情報を送信リストに登録する。登録されたデバイス情報は、後述する即時送信スレッドにより順次管理システム101に送信される。
次に、送信制御部401が、送信リストの状況によって優先送信が必要であるかを判断する(ステップS804)。具体的には、送信制御部401は、送信リストに追加された送信データの数が閾値を超えたか否かによって、優先送信が必要であるか判断する。閾値については、管理システム101のUIで閾値の設定を行い、ステップS601の初期化時に設定値を読み込んでも良いし、監視装置114の設定ファイルやUIから閾値の設定をするようにしてもよい。
また、本実施例では、送信データの数が閾値を超えた場合に優先送信の判定を行うが、閾値をリストに追加された送信データの処理にかかる時間としても良い。例えば、監視装置114の設定ファイル等に監視装置114が管理システム101に送信データを送信するために必要な平均的な処理時間を保持しておく。そして、送信制御部401が、処理時間と送信リストに追加された送信データの数を基に、全ての送信にかかる時間を算出し、その時間が閾値を超えたか否かで、優先送信が必要であるかを判断する。
送信リストに送信データがあるにも関わらず、ある一定期間、送信処理が行わない場合に、送信制御部401が、優先送信すべきであると判断するようにしてもよい。ある一定期間、送信処理が行わない場合に、送信制御部401が、優先送信すべきであると判断するようにすることは、何らかの原因で監視装置114と管理システム101が通信できなくなった場合に有効である。ステップS804における判断処理は、上述した判断方法の何れかを用いたものでもよいし、複数の判断方法によって判断されても良い。
優先送信が必要であると判断された場合、送信制御部401が、優先送信フラグを立てて有効化する。この例では、優先送信フラグは、最新デバイス情報の通知を優先送信することを示すフラグである。優先送信フラグが、送信リスト内のいずれかのデータの通知に対して優先送信、つまり当該通知を他の通知より優先して送信することを示すフラグであってもよい。優先送信が必要でないと判断された場合は、処理を終了する。
図9は、即時送信スレッドの処理の例を説明するフローチャートである。
即時送信スレッドは、本システム初期化時に起動され、システム停止時に終了する。
まず、即時送信スレッドが起動されると、スレッドの初期化処理を行う(ステップS901)。続いて、送信制御部401が、優先送信フラグが立っているかを判断する(ステップS902)。優先送信フラグが立っていない場合は、処理がステップS909に進む。優先送信フラグが立っている場合は、送信制御部401が、最新データ管理部411から管理対象のデバイス全ての最新デバイス情報を取得する(ステップS903)。
次に、送信データ生成部404が、上記ステップS903で取得された、管理対象全ての最新デバイス情報を管理システム101に送信するための所定の即時送信用のフォーマットに合わせて送信データを生成する(ステップS904)。
図14は、送信データの一例を示す図である。送信データは、ヘッダー部1401とボディ部1402とで構成される。ヘッダー部1401には、管理システム101での認証情報や送信日時、バージョン情報などを含む。ボディ部1402には、図11(B)で例示したデバイス情報のデータと、優先送信されたかを示す情報が記載される。符号1403は、ボディ部1402に記載されるデバイス情報の例を示す。本実施例では、最新のデバイス情報をXML形式で保持する。
ボディ部1402に記載される情報の中には少なくとも以下の情報を持つ。
・SerialNo:管理対象の画像形成装置を一意に判断できるID
・Date:画像形成装置からデバイス情報を取得した日時
・PrioritySendFlag:優先送信されたか否かを表すフラグ(0:未送信、1:送信済)
・SendFlag:既に通知処理が行われたか否かを表すフラグ(0:未送信、1:送信済)
画像形成装置113で取得した稼動情報は、Statuses以下に記載される。Statusには、トナー切れ、用紙切れ等、何れかの稼動状態情報が記載される。稼動状態情報には、図11(B)で例示したように、SeverityLevelやTrainingLevel、Codeといった、RFCで定義されているMIBの値が入る。
図9に戻って、ステップS905において、データ送信部404が、管理システム101へ、ステップS904で作成された送信データを送信する(ステップS905)。送信データが優先送信されるデータである場合は、監視対象デバイスの稼動情報を、データの送信負荷が高い場合でもタイムリーに管理システムに送信することができる。
次に、送信制御部401が、送信が正常終了したかを判断する(ステップS906)。送信が正常終了しなかった場合は、処理がステップS903に戻る。送信が正常終了した場合は、送信制御部401が、デバイス情報管理部410が保持している情報に通知済みフラグを立てる。通知済みフラグは、管理システム101に送信データを送信済みであることを示すフラグである。
次に、送信制御部401が、最新データ管理部411が管理している最新デバイス情報を更新し(ステップS908)、処理がステップS902に戻る。優先送信完了後は、送信制御部401は、最新データ管理部411内の最新デバイス情報を全て削除する。
ステップS909において、送信制御部401が、送信リストに送信すべきデータがあるかを判断する。送信リストに送信すべきデータがない場合は、処理がステップS913に進む。送信リストに送信すべきデータがある場合は、送信制御部401が、送信リストから先頭のデータを取り出す(POP)。そして、送信データ生成部404が、取り出されたデータを含む送信データを所定の即時送信用のフォーマットに合わせて生成する(ステップS910)。
次に、データ送信部404が、監視サーバ101へ、ステップS910で生成された送信データを送信する(ステップS911)。続いて、送信制御部401が、送信が正常終了したかを判断する(ステップS912)。送信が正常終了していない場合は、処理がステップS910に戻る。送信が正常終了した場合は、処理がステップS908に進む。そして、送信制御部401が、最新データ管理部411が保持する最新デバイス情報を更新する。この更新処理は、上記ステップS911で送信したデバイスのデータが最新データ管理部411に保存されている情報と同じであった場合に、該当するデバイスの情報を最新データ管理部411から削除する処理である。
ステップS913において、送信制御部401が、スレッド停止要求が検出されたかを判断する。スレッド停止要求が検出されない場合は、処理がステップS902に戻る。スレッド停止要求が検出された場合は、送信制御部401がスレッドの終了処理を行い(ステップS914)、即時送信のスレッドを終了する。
図10は、管理システムにおけるイベント情報の受信からメール送信までの処理の例を説明するフローチャートである。
まず、管理システム101が、監視装置114からイベント情報(監視情報)を受信する(ステップS1001)。
次に、管理システム101が、受信した監視情報が、優先送信されてきた情報であるかを判断する(ステップS1002)。具体的には、管理システム101は、送信データのPrioritySendFlag(図14)が“1”である場合、監視情報が優先送信されてきた情報であると判断する。
監視情報が優先送信されてきた情報でない場合は、管理システム101が、監視情報をデバイス情報保存部501に格納する。これは、監視情報を参照して画面UIへの表示を行う必要があるためである。画面UIには、アラートの発生状況や発生・回復履歴、消耗品の消耗度情報などの表示を行うことができるが、本実施例では主題ではないので、説明を省く。なお、ステップS1003の処理は、後述のステップS1006の判断条件に合致した管理条件についてのみ行われても良い。つまり、管理システム101に合致する情報のみをデバイス情報保存部501に格納し、画面UIに表示することも可能である。
一方、監視情報が優先送信されてきた情報である場合は、処理がステップS1005に進む。これは、優先送信されてきた情報に関しては、即時に通知処理を行い、即時性の必要性が少ない情報については、デバイス情報保存部501が有する管理DBに登録を行うためである。即時送信スレッドが送信リストから取得した送信データを送信する場合、取得した順に順次ステータス情報が送られてくる。したがって、管理システム101は、意識しなくてもステータスを取得順に管理DBに登録することができる。もちろん、管理システム101が、優先送信された情報を管理DBに格納してもよい。管理システム101は、優先送信された情報を管理DBに格納した場合は、後で送られてくるステータス情報が重複して管理DBに保存されないように制御する。
本実施例において、ステータス変化に伴うユーザへの通知は、即時性の高い情報であるが、デバイス情報保存部501に保存する情報は、履歴情報など即時性の低いデータと考えられるので、優先送信されてきた情報の登録は行っていない。画面表示用に最新の情報を登録しておき、履歴情報は後で通常送信されたタイミングで登録するようにしてもよい。
次に、管理システム101が、監視装置114から受信した情報が通知済みの情報であるかを判断する(ステップS1004)。監視装置114から受信した情報が通知済みの情報である場合は、処理がステップS1008に進む。
次に、管理システム101が、障害情報として通知すべきデバイス情報があるかを判断する(ステップS1008)。障害情報として通知すべきデバイス情報がない場合は、処理を終了する。障害情報として通知すべきデバイス情報がある場合は、処理がステップS1007に進み、管理システム101が、デバイス情報の通知処理を実行する。ステップS1008で通知すべきと判断されるデバイス情報の例として、既に回復してしまったサービスコールエラー等がある。既に回復していたとしても重要度の高いデバイス情報は今後サービスを提供していくにあたり重要な情報となりえるので、ユーザの設定により回復済みのデバイス情報に対してもユーザへ通知するようにしてもよい。
監視装置114から受信した情報が通知済みの情報でない場合は、処理がステップS1005に進む。ステップS1005において、管理システム101が、管理システム101が、監視情報に含まれる画像形成装置113の管理識別子が、管理システム101に設定されている監視対象の画像形成装置のリストに含まれているかを判断する(ステップS1005)。監視情報に含まれる画像形成装置113の管理識別子が、管理システム101に設定されている監視対象の画像形成装置のリストに含まれていない場合は、処理を終了する。
監視情報に含まれる画像形成装置113の管理識別子が、管理システム101に設定されている監視対象の画像形成装置のリストに含まれている場合は、管理システム101が、以下の処理を実行する。管理システム101は、当該画像形成装置113がユーザに通知すべき画像形成装置であると判断する。そして、処理がステップS1006に進む。次に、管理システム101が、管理情報に含まれる画像形成装置のデバイス情報や消耗品の消耗頻度情報と管理システム設定情報に設定されている管理対象フィルタリング条件とが合致するか否かを判断する(ステップS1006)。
管理情報に含まれる画像形成装置のデバイス情報や消耗品の消耗頻度情報と管理対象フィルタリング条件とが合致しない場合は、処理を終了する。管理情報に含まれる画像形成装置のデバイス情報や消耗品の消耗頻度情報と管理対象フィルタリング条件とが合致する場合、管理システム101が、ユーザに通知すべき状態であると判断して、処理がステップS1007に進む。そして、管理システム101が、メール送信先に設定されたメールアドレス宛てにメールを送信し、一連の処理を終了する(ステップS1007)。
(実施例2)
実施例1では、送信リストに送信すべきデバイス情報が多くなり即時送信に遅延が発生した場合に優先送信を行った。しかしながら、監視装置114が優先送信を行った後も監視装置114が大量にデバイス情報を取得し続けてしまうと、常に優先送信が行われてしまうという状況も考えられる。実施例2では、優先送信が行われた時に送信リスト(第1のキュー内)にあるデータをまとめて定期送信スレッドで管理システム101への送信を行う。これにより、管理システムでの監視サービスに支障がないようにすることができる。優先送信によって最新デバイス情報を含むデータが送信された場合、監視装置114は、即時送信の送信リスト内のデータが含むデバイス情報をログ情報とし、即時に送信すべきデータとして扱わない。すなわち、監視装置114が、送信リストをクリアすることで、それ以降の即時送信を円滑に進める。実施例2について、説明の簡便化のため実施例1と異なる点のみ説明する。
図15は、実施例2における即時送信スレッドの処理の例を説明するフローチャートである。この例では、図9と異なる部分のみ説明する。ステップS906で優先送信が成功したと判断されると、送信制御部401が、未送信のデバイス情報に対して通知済みフラグを設定する(ステップS907)。
次に、送信制御部401が、送信リストにあるデータを取得する(ステップS1501)。ここで取得したデータに対し、データの圧縮を行っても良い。続いて、送信制御部401が、ステップS501で取得したデータを定期送信用のキュー(第2のキュー)である定期送信リストに追加することで、デバイス情報をまとめて管理する(ステップS1502)。そして、送信制御部401が、最新データ管理部411が管理している情報を更新して(ステップS908)、処理がステップS902に戻る。実施例2では、ステップS908において、送信制御部401は、さらに、まとめられたデバイス情報を送信リストから削除する。なお、定期送信リスト内(第2のキュー内)のデータの定期送信のタイミングは、送信可能な時間で可能な限り早い時間で送信するとしても良いし、ユーザにより設定されていても良い。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。