(57)【要約】【課題】処理サーバに問題が発生した際、収集エージェントの通信先を迅速に切り替え、かつ、問題が発生して通信できない収集エージェントの稼働状況も正しく把握すること。【解決手段】収集エージェント１１ａは、プライマリサーバ２０ａに第１登録要求、セカンダリサーバ２０ｂに第２登録要求を送信する。また、プライマリサーバ２０ａに対し、稼働情報を送信し、定期的に確認通知を送信する。さらに、所定の条件を満たす場合、稼働情報及び確認通知の送信先をセカンダリサーバ２０ｂに変更する。処理サーバ２０は、第１登録要求の送信元をプライマリエージェント、第２登録要求の送信元の１以上の収集エージェント１１をセカンダリエージェントとして管理する。また、いずれかのセカンダリエージェントから稼働情報又は確認通知を受信した場合、セカンダリエージェントとして管理する収集エージェント１１の全を確認通知の受信の履歴を用いて監視する。【選択図】図１２
2017091037.tif 000002
【特許請求の範囲】
【請求項１】
複数の管理装置と、前記管理装置に対して稼働情報を送信するためのエージェントがそれぞれで動作する複数のネットワークデバイスと、を含むシステムであって、
前記複数のネットワークデバイスのそれぞれは、
前記複数の管理装置の中の第１管理装置に対して、エージェント情報を含む第１登録要求を送信する第１登録手段と、
前記複数の管理装置の中の第２管理装置に対して、前記エージェント情報を含み、前記第１管理装置の代替装置としての第２登録要求を送信する第２登録手段と、
前記第１管理装置に対して、稼働情報を送信する送信手段と、
前記第１管理装置に対して、定期的に、確認通知を送信する第１通知手段と、
所定の条件を満たす場合に、前記送信手段による稼働情報の送信先、及び前記第１通知手段による確認通知の送信先を、前記第２管理装置に変更する第１変更手段と、を有し、
前記複数の管理装置のそれぞれは、
前記第１登録要求に含まれるエージェント情報を登録して管理する第１管理手段と、
前記第２登録要求に含まれるエージェント情報を登録して、１以上のネットワークデバイスを管理する第２管理手段と、
前記第２管理手段で管理されているネットワークデバイスからの確認通知の受信の履歴を用いた監視を行う監視手段と、
前記ネットワークデバイスから稼働情報、及び確認通知のいずれかを受信した場合に、送信元のネットワークデバイスが前記第２管理手段で管理されているか否かを判定する判定手段と、を有し、
前記監視手段は、前記判定手段により前記送信元のネットワークデバイスが第２管理手段で管理されていると判定された場合に、前記第２管理手段で管理されている、該送信元のネットワークデバイスを含む１以上のネットワークデバイスの全てについて、監視を行うことを特徴とするシステム。
【請求項２】
前記第１変更手段による変更を行う場合、前記第１管理手段の復旧状況を定期的に確認する確認手段と、
前記確認手段により前記第１管理装置の復旧が確認されたことに応じて、前記送信手段および前記第１通知手段の宛先を前記第１管理装置に変更する第２変更手段と、
を有することを特徴とする請求項１に記載のシステム。
【請求項３】
前記第２変更手段による変更を行う場合、前記第２管理装置に移行通知を送信する第２通知手段を有し、
前記監視手段は、前記移行通知を受信した場合に、前記第２管理手段で管理されている全てのネットワークデバイスの監視を停止することを特徴とする請求項２に記載のシステム。
【請求項４】
前記所定の条件を満たす場合とは、前記送信手段による稼働情報の送信、又は、前記第１通知手段による確認通知の送信においてエラーが発生した場合であることを特徴とする請求項１乃至３のいずれか１項に記載のシステム。
【請求項５】
前記監視手段は、前記監視を行っているネットワークデバイスのうち、前記確認通知を所定の通信間隔を超える時間受信していないネットワークデバイスを検出した場合には、その旨を管理者へ通知することを特徴とする請求項１乃至４のいずれか１項に記載のシステム。
【請求項６】
前記第２登録要求は、前記第１管理装置の情報を含み、
前記第２管理手段は、前記第２登録要求に含まれる前記第１管理装置の情報と関連付けて、１以上のネットワークデバイスを管理し、
前記監視手段は、前記判定手段により前記送信元のネットワークデバイスが第２管理手段で管理されていると判定された場合に、該送信元のネットワークデバイスと同一の第１管理装置の情報と関連付けられて前記第２管理手段で管理されている１以上のネットワークデバイスの全てについて監視を行うことを特徴とする請求項１乃至５のいずれか１項に記載のシステム。
【請求項７】
稼働情報を送信するためのエージェントがそれぞれで動作する複数のネットワークデバイスを管理する管理装置であって、
前記ネットワークデバイスから、エージェント情報を含む、第１管理装置のへの登録要求である第１登録要求を受信した場合に、前記第１登録要求に含まれるエージェント情報を登録して管理する第１管理手段と、
前記ネットワークデバイスから、エージェント情報を含む、前記第１管理装置の代替装置としての第２管理装置のへの登録要求である第２登録要求を受信した場合に、前記第２登録要求に含まれるエージェント情報を登録して、１以上のネットワークデバイスを管理する第２管理手段と、
前記第２管理手段で管理されているネットワークデバイスからの確認通知の受信の履歴を用いた監視を行う監視手段と、
前記ネットワークデバイスから稼働情報、及び確認通知のいずれかを受信した場合に、送信元のネットワークデバイスが前記第２管理手段で管理されているか否かを判定する判定手段と、を有し、
前記監視手段は、前記判定手段により前記送信元のネットワークデバイスが第２管理手段で管理されていると判定された場合に、前記第２管理手段で管理されている、該送信元のネットワークデバイスを含む１以上のネットワークデバイスの全てについて、監視を行うことを特徴とする管理装置。
【請求項８】
前記監視手段は、前記ネットワークデバイスから、該ネットワークデバイスが前記稼働情報及び前記確認通知の送信先を前記第２管理装置から前記第１管理装置に戻す場合に送信する移行通知を受信した場合、前記第２管理手段で管理されている全てのネットワークデバイスの監視を停止することを特徴とする請求項７に記載の管理装置。
【請求項９】
前記監視手段は、前記第２管理手段で管理されているネットワークデバイスのうち、前記確認通知を所定の通信間隔を超える時間受信していないネットワークデバイスを検出した場合には、その旨を管理者へ通知することを特徴とする請求項７又は８に記載の管理装置。
【請求項１０】
前記第２登録要求は、前記第１管理装置の情報を含み、
前記第２管理手段は、前記第２登録要求に含まれる前記第１管理装置の情報と関連付けて、１以上のネットワークデバイスを管理し、
前記監視手段は、前記判定手段により前記送信元のネットワークデバイスが第２管理手段で管理されていると判定された場合に、該送信元のネットワークデバイスと同一の第１管理装置の情報と関連付けられて前記第２管理手段で管理されている１以上のネットワークデバイスの全てについて監視を行うことを特徴とする請求項７乃至９のいずれか１項に記載の管理装置。
【請求項１１】
複数の管理装置と、前記管理装置に対して稼働情報を送信するためのエージェントがそれぞれで動作する複数のネットワークデバイスと、を含むシステムの制御方法であって、
前記複数のネットワークデバイスのそれぞれが実行する、
前記複数の管理装置の中の第１管理装置に対して、エージェント情報を含む第１登録要求を送信する第１登録ステップと、
前記複数の管理装置の中の第２管理装置に対して、前記エージェント情報を含み、前記第１管理装置の代替装置としての第２登録要求を送信する第２登録ステップと、
前記第１管理装置に対して、稼働情報を送信する送信ステップと、
前記第１管理装置に対して、定期的に、確認通知を送信する通知ステップと、
所定の条件を満たす場合に、前記送信ステップによる稼働情報の送信先、及び前記通知ステップによる確認通知の送信先を、前記第２管理装置に変更する変更ステップと、
前記複数の管理装置のそれぞれが実行する、
前記第１登録要求に含まれるエージェント情報を登録して第１管理手段で管理する第１管理ステップと、
前記第２登録要求に含まれるエージェント情報を登録して、１以上のネットワークデバイスを第２管理手段で管理する第２管理ステップと、
前記第２管理手段で管理されているネットワークデバイスからの確認通知の受信の履歴を用いた監視を行う監視ステップと、
前記ネットワークデバイスから稼働情報、及び確認通知のいずれかを受信した場合に、送信元のネットワークデバイスが前記第２管理手段で管理されているか否かを判定する判定ステップと、を有し、
前記監視ステップでは、前記判定ステップにより前記送信元のネットワークデバイスが第２管理手段で管理されていると判定された場合に、前記第２管理手段で管理されている、該送信元のネットワークデバイスを含む１以上のネットワークデバイスの全てについて、監視を行うことを特徴とするシステムの制御方法。
【請求項１２】
稼働情報を送信するためのエージェントがそれぞれで動作する複数のネットワークデバイスを管理する管理装置の制御方法であって、
前記ネットワークデバイスから、エージェント情報を含む、第１管理装置のへの登録要求である第１登録要求を受信した場合に、前記第１登録要求に含まれるエージェント情報を登録して第１管理手段で管理する第１管理ステップと、
前記ネットワークデバイスから、エージェント情報を含む、前記第１管理装置の代替装置としての第２管理装置のへの登録要求である第２登録要求を受信した場合に、前記第２登録要求に含まれるエージェント情報を登録して、１以上のネットワークデバイスを第２管理手段で管理する第２管理ステップと、
前記第２管理手段で管理されているネットワークデバイスからの確認通知の受信の履歴を用いた監視を行う監視ステップと、
前記ネットワークデバイスから稼働情報、及び確認通知のいずれかを受信した場合に、送信元のネットワークデバイスが前記第２管理手段で管理されているか否かを判定する判定ステップと、を有し、
前記監視ステップでは、前記判定ステップにより前記送信元のネットワークデバイスが第２管理手段で管理されていると判定された場合に、前記第２管理手段で管理されている、該送信元のネットワークデバイスを含む１以上のネットワークデバイスの全てについて、監視を行うことを特徴とする管理装置の制御方法。
【請求項１３】
コンピュータを、請求項７乃至１０のいずれか１項に記載の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の管理装置と、管理装置に対して稼働情報を送信するためのエージェントがそれぞれで動作する複数のネットワークデバイスとを含むシステム、管理装置、これらの制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来より、サーバ装置にインストールされ、１台以上の登録されたクライアントアプリケーションを監視するサーバアプリケーション（以下、処理サーバと呼ぶ）と、複合機やクライアントＰＣ（パーソナルコンピュータ）にインストールされ、複合機やクライアントＰＣが生成したデータを処理サーバに送信するクライアントアプリケーション（以下、収集エージェントと呼ぶ）から構成される情報処理システムが存在する。
【０００３】
なお、複合機が生成したデータの例としては、情報漏洩の抑止や、情報漏洩者を追跡する目的で、印刷、コピー、ＦＡＸ、電子メール送信などジョブの実行の際に、複合機が記憶装置に保存するジョブ履歴情報などが挙げられる。また、クライアントＰＣが生成したデータの例としては、プリンタドライバからの印刷実行時にプリンタドライバ等が記憶装置に保存したジョブ履歴情報などが挙げられる。
【０００４】
ジョブ履歴情報には、例えば、そのジョブを実行したユーザ情報、実行した日時情報、実行した複合機や印刷クライアントＰＣを特定する情報（ＩＰアドレス、シリアル番号、ＭＡＣアドレスなど）、実行したジョブの種類といったログ属性情報などが含まれる。さらに、ジョブ履歴情報には、複合機に対して入力された画像データや印刷クライアントＰＣでの印刷対象をデータ化した画像データ、該画像データを縮小した縮小画像データが含まれることもある。
【０００５】
まず、収集エージェントは、初期設定時に、自身の情報としてシリアル番号、ＭＡＣアドレス、エージェント名称等を指定して、処理サーバへ登録要求を行う。また、収集エージェントは、データを処理サーバに送信するためのスケジュール等の設定を、初期設定として運用開始前に処理サーバへ通知する。運用開始後の収集エージェントは、設定が変更された場合に、処理サーバへの設定変更通知や、一定期間ごとに収集エージェント情報取得要求を処理サーバへ送信する。該エージェント情報取得要求は、処理サーバが収集エージェントの稼働状況を判断するハートビートとして利用される。
【０００６】
一方、処理サーバは、収集エージェントからの登録要求に応じて、収集エージェントに対し、識別情報を発行する。そして、処理サーバは、識別情報と共に、収集エージェントに関する設定情報を、エージェント情報ファイルに保持する機能を有する。また、処理サーバは、収集エージェントからの一定期間ごとのエージェント情報取得要求（ハートビート通信）の受信状態を監視し、閾値を超える時間が経過してもエージェント情報取得要求を受信できない収集エージェントを異常状態と判断する機能を有する。
【０００７】
さらに、処理サーバは、画像処理機能、ジョブ履歴情報を記憶装置に保存する機能や、エージェント情報ファイルに保存した収集エージェントの情報を表示、設定するためのシステム管理機能も有する。
なお、処理サーバは、複数の処理サーバが存在する構成であっても、処理サーバ間での通信を行う機能は有していない。
【０００８】
このような情報処理システムにおいて、２台以上の処理サーバを構築しておき、１台目の処理サーバ（以下、プライマリ処理サーバと呼ぶ）が壊れた場合でも、システムを止めることなく運用することが求められる。この場合、収集エージェントのジョブ履歴情報の送信先を２台目以降の処理サーバ（以下、セカンダリ処理サーバ）に切り替えればよい。
【０００９】
特許文献１には、処理サーバの切り替え方法が開示されている。特許文献１では、物理的に独立しているサーバのうち、１台がマスターとして動作し（マスターサーバ）、もう１台が待機状態にある（待機サーバ）環境で、それぞれに異なるＩＰアドレスが割り振られており、クライアントがマスターサーバに処理を依頼した際、マスターサーバから応答がなかった場合に、クライアントは待機サーバに処理を再依頼する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００２−３２８８８５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
上記特許文献１の技術を用いれば、プライマリ処理サーバに故障等の問題が発生した場合に、収集エージェントの通信先をセカンダリ処理サーバに切り替えることは可能である。しかし、特許文献１の技術は、処理サーバによって収集エージェントを監視するものではない。そのため、プライマリ処理サーバの故障とほぼ同じタイミングで、たまたま問題（ネットワークの不具合により通信が出来なくなった等）が発生した収集エージェントが存在した場合には、その検知ができない。また、プライマリ処理サーバからセカンダリ処理サーバへの切り替え処理がうまく行えなかった収集エージェントに対しても同様に、その検知ができない。
【００１２】
一方、処理サーバによる収集エージェントの監視を行うため、予め２台の処理サーバに収集エージェントを登録しておき、前述のプライマリサーバと同じタイミングで問題が発生した収集エージェントを検知する方法も考えられる。
しかし、収集エージェントは、通常はプライマリ処理サーバへのハートビートのみを行うため、セカンダリ処理サーバは一定期間以上のハートビートを確認できない状況となる。これにより、本来、収集エージェントが正常稼動しているのにも関わらず、セカンダリ処理サーバは、収集エージェントが正常稼動していないと判断し、管理者へのエラー通知を行ってしまう。いずれにしても、従来の技術では、処理サーバに問題が発生した場合の切り替えと、ネットワークデバイスの監視の双方を適切に行うことはできなかった。
【００１３】
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、管理装置に問題が発生した場合、ネットワークデバイスの通信先を迅速に切り替え、且つ、切り替え先の管理装置でネットワークデバイスの監視を適切に行うことができるようになり、管理装置に問題が発生した際に、ネットワークの不具合等の問題で通信できないネットワークデバイスや、管理装置の切り替えに失敗したネットワークデバイス等についても、稼働状況を正確に把握することができる仕組みを提供することである。
【課題を解決するための手段】
【００１４】
本発明は、複数の管理装置と、前記管理装置に対して稼働情報を送信するためのエージェントがそれぞれで動作する複数のネットワークデバイスと、を含むシステムであって、前記複数のネットワークデバイスのそれぞれは、前記複数の管理装置の中の第１管理装置に対して、エージェント情報を含む第１登録要求を送信する第１登録手段と、前記複数の管理装置の中の第２管理装置に対して、前記エージェント情報を含み、前記第１管理装置の代替装置としての第２登録要求を送信する第２登録手段と、前記第１管理装置に対して、稼働情報を送信する送信手段と、前記第１管理装置に対して、定期的に、確認通知を送信する第１通知手段と、所定の条件を満たす場合に、前記送信手段による稼働情報の送信先、及び前記第１通知手段による確認通知の送信先を、前記第２管理装置に変更する第１変更手段と、を有し、前記複数の管理装置のそれぞれは、前記第１登録要求に含まれるエージェント情報を登録して管理する第１管理手段と、前記第２登録要求に含まれるエージェント情報を登録して、１以上のネットワークデバイスを管理する第２管理手段と、前記第２管理手段で管理されているネットワークデバイスからの確認通知の受信の履歴を用いた監視を行う監視手段と、前記ネットワークデバイスから稼働情報、及び確認通知のいずれかを受信した場合に、送信元のネットワークデバイスが前記第２管理手段で管理されているか否かを判定する判定手段と、を有し、前記監視手段は、前記判定手段により前記送信元のネットワークデバイスが第２管理手段で管理されていると判定された場合に、前記第２管理手段で管理されている、該送信元のネットワークデバイスを含む１以上のネットワークデバイスの全てについて、監視を行うことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、管理装置に問題が発生した場合、ネットワークデバイスの通信先を迅速に切り替え、且つ、切り替え先の管理装置でネットワークデバイスの監視を適切に行うことができる。この結果、管理装置に問題が発生した際に、ネットワークの不具合等の問題で通信できないネットワークデバイスや、管理装置の切り替えに失敗したネットワークデバイス等についても、稼働状況を正確に把握することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施例を示すジョブ履歴情報処理システムの全体構成図
【図２】複合機、処理サーバのハードウェア構成図
【図３】複合機、処理サーバのソフトウェア構成図
【図４】収集エージェントのエージェント登録要求送信処理のフローチャート
【図５】収集エージェントのエージェント情報取得処理のフローチャート
【図６】収集エージェントのジョブ履歴情報送信処理のフローチャート
【図７】収集エージェントのサーバ切り替え処理のフローチャート
【図８】収集エージェントの復旧確認処理のフローチャート
【図９】処理サーバのエージェント登録要求受信処理のフローチャート
【図１０】処理サーバのエージェント情報取得要求受信処理のフローチャート
【図１１】処理サーバのジョブ履歴情報受信処理のフローチャート
【図１２】処理サーバのセカンダリエージェント設定情報受信処理のフローチャート
【図１３】処理サーバのエージェント監視処理のフローチャート
【図１４】処理サーバの移行通知受信処理のフローチャート
【図１５】収集エージェントが保持するエージェント情報ファイルを例示する図
【図１６Ａ】処理サーバが保持するエージェント管理フォルダを例示する図
【図１６Ｂ】処理サーバが保持するエージェント管理フォルダを例示する図
【図１６Ｃ】処理サーバが保持するエージェント管理フォルダを例示する図
【図１７】処理サーバが保持するエージェント情報ファイルを例示する図
【図１８】処理サーバが保持する生存確認用フォルダを例示する図
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１８】
図１は、本発明の一実施例を示すジョブ履歴情報処理システムの全体構成を例示する図である。
図１に例示する本発明のジョブ履歴情報処理システムは、複数の管理装置と、管理装置に対して稼働情報を送信するためのエージェントがそれぞれで動作する複数のネットワークデバイスと、を含む管理システムである。図１の例では、ネットワーク３０に、上記ネットワークデバイスとしてのデジタル複合機１０（以下、複合機）と、上記管理装置としての処理サーバ２０がそれぞれ接続されている。また、この例では、複合機を４台記載しているが、複合機は１台でもよいし、４台に限らずより多くの台数がネットワーク上に接続されていてもよい。また、処理サーバを３台記載しているが、２台又は４台以上の処理サーバを接続していてもよい。即ち、１台以上の複合機と、２台以上の処理サーバがネットワーク３０に接続されていればよい。なお、ネットワーク３０は、ローカルネットワークでもよいし、イントラネット、インターネット等を介したネットワークでもよい。
【００１９】
複合機１０は、スキャン、プリント、コピー、電子メール、ＦＡＸなどの機能を有し、機器上で実行したジョブに関して、ジョブの実行と同時にジョブ履歴情報を記録する機能を有する。また、複合機１０には、クライアントアプリケーションとして、収集エージェント１１がインストールされている。収集エージェント１１は、処理サーバ２０に対して複合機の稼働情報を送信するためのエージェントである。
複合機１０は、ジョブが実行された場合、ジョブ履歴情報を複合機上の記憶領域に一時保存し、収集エージェント１１が送信指示を受信時または送信時間になり次第、該ジョブ履歴情報を処理サーバ２０に送信する。また、収集エージェント１１は、定期的に処理サーバ２０に対してエージェント情報取得要求を送信し、処理サーバ２０が保持する最新のエージェント情報を自身が保持する情報に反映する。
【００２０】
収集エージェント１１（例えば、１１ａ）は、通常は、ジョブ履歴情報やエージェント情報取得要求を、プライマリ処理サーバ（例えば、２０ａ）にのみ送信する。しかし、収集エージェント１１は、プライマリ処理サーバから応答が得られなかったり、エラーを検知したりした場合には、上記ジョブ履歴情報やエージェント情報取得要求を、プライマリ処理サーバの代替装置としてのセカンダリ処理サーバ（例えば、２０ｂ）に対して送信する。本実施例では、収集エージェント１１がインストールされているネットワークデバイスの実施例として複合機を用いて説明するが、プリンタへ印刷ジョブを投入できる画像形成装置（例えば、プリンタドライバの機能追加等によりジョブ履歴情報を取得・保持可能なパーソナルコンピュータ（ＰＣ））であってもかまわない。また、本実施例では、上述のような複合機や画像形成装置に、収集エージェント１１がインストールされている構成について説明する。しかし、収集エージェント１１を、上述の複合機や画像形成装置とは別の装置（ＰＣ等）にインストールし、該装置にインストールされた収集エージェント１１が上述の複合機や画像形成装置と通信してジョブ履歴情報を取得して処理サーバ２０に送信する構成であってもよい。
【００２１】
処理サーバ２０は、以下に詳述するような、受信機能、画像処理機能、保存機能、収集エージェントの設定管理機能、及び、収集エージェント監視機能を有している。
・受信機能は、収集エージェント１１からジョブ履歴情報や収集エージェントの設定情報、及びエージェント情報取得要求を受信する機能である。受信したジョブ履歴情報は、画像処理機能により後述のデータ変換処理が施された後に保存される。受信機能がエージェント情報取得要求を受信した際には、受信日時を記録する。
・画像処理機能は、受信機能によって受信したジョブ履歴情報に対し、データ変換処理を行う機能である。データ変換処理とは、画像データに対して、ＯＣＲ処理を行ってテキスト情報を抽出したり、画像データのフォーマットを変換したりする処理である。データ変換処理によって得られたテキスト情報は、ジョブ履歴情報と紐付けられて保存され、ジョブ履歴情報の検索に利用される。
【００２２】
・保存機能は、画像処理機能によってデータ変換されたジョブ履歴情報、ジョブ履歴情報に関連付けられたテキスト情報をファイル等に保存する機能である。なお、本実施例では処理サーバ２０上にある保存部として、フォルダを前提としているが、ジョブ履歴情報を保存できる手段であれば、データベースやミドルウェアなどであってもよい。
・設定管理機能は、受信機能によって受信した収集エージェントの設定情報を、エージェント情報ファイルに保存する機能である。受信機能により収集エージェントからエージェント登録要求を受信した場合、設定管理機能が、収集エージェントに対しユニークな識別情報を発行し、該識別情報を、該収集エージェントの設定情報の一部としてエージェント情報ファイルに保存する。
・監視機能は、受信機能が記録したエージェント情報取得要求の受信日時と、現在日時を比較し、一定期間（通信間隔）を超える場合に、該収集エージェントが異常状態であると判断し、管理者等へ通知を行う機能である。
【００２３】
なお、本実施例では、プライマリ処理サーバ、セカンダリ処理サーバを１台ずつの構成を想定した詳細説明を行うが、プライマリ処理サーバを１台、セカンダリ処理サーバを２台以上という構成でもよい。
図１の例では、複合機１０を４台、処理サーバ２０を３台を記載しており、複合機１０にインストールされた収集エージェント１１は、それぞれに異なるプライマリ処理サーバ、セカンダリ処理サーバを定義して、エージェント登録を実行している。以下に詳細を説明する。
【００２４】
複合機１０ａにインストールされた収集エージェント１１ａは、プライマリ処理サーバとして２０ａにエージェント登録をしており、プライマリ処理サーバのエージェント識別情報は「１」である。また、収集エージェント１１ａは、セカンダリ処理サーバとして２０ｂにエージェント登録をしており、セカンダリ処理サーバのエージェント識別情報は「１３」である。本実施例では、主に、該収集エージェント１１ａを例にあげて説明する。
複合機１０ｂにインストールされた収集エージェント１１ｂは、プライマリ処理サーバとして２０ｃにエージェント登録をしており、プライマリ処理サーバのエージェント識別情報は「２０」である。また、収集エージェント１１ｂは、セカンダリ処理サーバとして２０ｂにエージェント登録をしており、セカンダリ処理サーバのエージェント識別情報は「１５」である。
【００２５】
複合機１０ｃにインストールされた収集エージェント１１ｃは、プライマリ処理サーバとして２０ｃにエージェント登録をしており、プライマリ処理サーバのエージェント識別情報は「２１」である。また、収集エージェント１１ｃは、セカンダリ処理サーバとして２０ａにエージェント登録をしており、セカンダリ処理サーバのエージェント識別情報は「４」である。
複合機１０ｄにインストールされた収集エージェント１１ｄは、プライマリ処理サーバとして２０ａにエージェント登録をしており、プライマリ処理サーバのエージェント識別情報は「２」である。また、収集エージェント１１ｄは、セカンダリ処理サーバとして２０ｂにエージェント登録をしており、セカンダリ処理サーバのエージェント識別情報は「１４」である。
【００２６】
処理サーバ２０ａは、処理サーバを特定するための情報として、ＩＰアドレスは「123.456.789.000」であり、エージェント識別情報「１」及び「２」の通常のエージェントを管理している。また、処理サーバ２０ａは、エージェント識別情報「４」のセカンダリエージェントを管理している。
処理サーバ２０ｂは、ＩＰアドレス「987.654.321.000」であり、通常のエージェントは管理しておらず、エージェント識別情報「１３」、「１４」、及び「１５」のセカンダリエージェントを管理している。
処理サーバ２０ｃは、ＩＰアドレス「111.222.333.444」であり、エージェント識別情報「２０」及び「２１」の通常のエージェントを管理しており、セカンダリエージェントは管理していない。
【００２７】
図２（ａ）は、複合機１０のハードウェア構成を例示する図である。
図２（ａ）において、１００は、複合機１０のコントローラユニットである。コントローラユニット１００において、１０１はＣＰＵで、システム全体を制御するコントローラである。１０２はＲＡＭで、ＣＰＵ１０１が動作するためのシステムワークメモリであり、入力された画像データを一時記憶するための画像メモリ（バッファメモリ）でもある。１０３はＲＯＭで、ブートＲＯＭであり、システムのブートプログラムが保存されている。１０４はハードディスクドライブ（ＨＤＤ）で、システムソフトウェア、収集エージェント１１のプログラム、ジョブ履歴情報、ユーザボックス内の画像データなどを保存する。なお、ＨＤＤ１０４に保存されたプログラムは、ＲＡＭ１０２にロードされ、ＣＰＵ１０１により実行される。例えば、後述するフローチャートで示す収集エージェント１１の処理は、ＨＤＤ１０４に保存された収集エージェントプログラムをＣＰＵ１０１がＲＡＭ１０２にロードして実行することにより実現される。なお、ＨＤＤの代わりに又はＨＤＤと併設してＳＳＤ（ソリッドステートドライブ）等の他の記憶装置を備えていてもよい。
【００２８】
１０５は操作部Ｉ／Ｆで、操作部１２０とのインタフェース部であり、操作部１２０に表示するための画面データを操作部１２０に対して出力する。また、操作部Ｉ／Ｆ１０５は、操作部１２０からユーザが入力した情報を、ＣＰＵ１０１に伝える役割をする。なお、複合機１０のユーザインタフェースは操作部１２０に限定されるものではなく、複合機１０と通信可能なＰＣ上で実行されるウェブブラウザ（不図示）等を用い、複合機１０のリモートＵＩ機能に接続し、該ウェブブラウザ上に複合機１０のユーザインタフェースを実現する構成であってもよい。
【００２９】
１０６はネットワーク部（Ｎｅｔｗｏｒｋ）で、ネットワーク（ＬＡＮ／ＷＡＮ）１３０に接続し、画像データ、複合機情報、およびその他の情報の入出力を行う。１０７は画像処理部で、ＰＤＬコードをビットマップイメージに展開する処理や、入力画像データや出力画像データに対し補正，加工，編集を行う。具体的には、画像処理部１０７は、画像データの回転処理、圧縮伸長処理、解像度変換処理などを行う。１０８はデバイスＩ／Ｆ部で、画像入出力デバイスであるスキャナ部１４０，プリンタ部１４１とコントローラユニット１００を画像入力部インタフェース１４２，印刷部インタフェース１４３を介して接続し、画像データの変換を行う。以上の各部がシステムバス１１０上に配置される。
【００３０】
図２（ｂ）は、処理サーバ２０を構成するＰＣのハードウェア構成を例示する図である。図２（ｂ）に示すハードウェア構成図は一般的な情報処理装置のハードウェア構成図に相当するものとし、本実施形態のＰＣには一般的な情報処理装置のハードウェア構成を適用できる。
【００３１】
図２（ｂ）において、ＣＰＵ２００は、ＲＯＭ２０２のプログラム用ＲＯＭに記憶された、或いはハードディスクドライブ（ＨＤＤ）２０９からＲＡＭ２０１にロードされたオペレーティングシステムやアプリケーション等のプログラムを実行する。後述するフローチャートに示す処理サーバ２０の処理は、ＣＰＵ２００がこのプログラムを実行することにより実現可能である。ＲＡＭ２０１は、ＣＰＵ２００の主メモリ、ワークエリア等として機能する。キーボードコントローラ２０３は、キーボード２０７や図示しないポインティングデバイスからのキー入力を制御する。ディスプレイコントローラ２０４は、各種ディスプレイ２０８の表示を制御する。ディスクコントローラ２０５は、各種データを記憶するＨＤＤ２０９やＵＳＢ記憶メディア（不図示）等におけるデータアクセスを制御する。ネットワークカード（ＮＣ）２０６は、ネットワーク（ＬＡＮ／ＷＡＮ）１３０に接続され、ネットワークに接続された他の機器との通信制御処理を実行する。なお、ＨＤＤの代わりに又はＨＤＤと併設してＳＳＤ等の他の記憶装置を備えていてもよい。
【００３２】
図３は、複合機１０及び処理サーバ２０のソフトウェア構成を例示する図である。
まず、複合機１０のソフトウェア構成について説明する。
複合機１０のソフトウェアは、複合機コントローラ（不図示）と、収集エージェント１１などで構成される。複合機コントローラは、ＲＯＭ１０３及びＨＤＤ１０４に保存されたプログラム（システムソフトウェア）であり、複合機１０のシステム全体を制御する。複合機コントローラは、操作部Ｉ／Ｆ１０５を介して受信したユーザからの指示を基に、ジョブを実行する。ジョブ実行の際、複合機コントローラは、ジョブ履歴情報を生成し、該ジョブ履歴情報をＨＤＤ１０４へ保存する。
【００３３】
図３において複合機１０にインストールされた収集エージェント１１内に記載される各部は、各複合機１０のＣＰＵ１０１がＨＤＤ１０４等に記憶された、収集エージェントのプログラムを実行することにより実現されるものである。
収集エージェント１１において、メイン制御部１１００は、収集エージェント１１の全体を制御し、後述の各部に対する指示、管理を行う。例えば、メイン制御部１１００は、通信制御部１１０１への通信指示、ＵＩ制御部１１０２から得られるユーザ指示内容に従った設定制御部１１０３への設定制御指示、及び、ジョブ履歴情報制御部１１０４へのジョブ履歴情報制御指示を行う。
【００３４】
通信制御部１１０１は、処理サーバ２０に対しジョブ履歴情報や設定情報や処理要求を送信し、処理サーバ２０から応答を受信し、メイン制御部１１００へ渡す。
ＵＩ制御部１１０２は、収集エージェント１１におけるユーザ操作に関する処理を全般的に制御する。具体的には、ＵＩ制御部１１０２は、ユーザインタフェースを複合機１０の操作部１２０又は上述したリモートＵＩ上に表示し、ユーザから受け取った指示内容をメイン制御部１１００へ渡す。
【００３５】
設定制御部１１０３は、収集エージェント１１に関する動作条件の設定情報を制御する。設定制御部１１０３は、メイン制御部１１００を介して、ＵＩ制御部１１０２から動作条件の設定指示を受け取り、ファイル操作部１１０５を介して、設定情報の参照、保存を行い、また通信制御部１１０１を介して設定情報を処理サーバ２０へ送信する。ここで、設定制御部１１０３が参照、保存する設定情報としては、収集エージェント１１の識別情報、エージェント名称、ジョブが実行された複合機を特定するためのＭＡＣアドレスやシリアル番号などがある。また、設定情報には、ジョブ履歴情報、ステータス、エージェント情報取得要求を処理サーバ２０へ送信するスケジュールなどが含まれてもよい。この設定情報は、ＵＩ制御部１１０２を介してユーザから変更指示があった時に更新したり、収集エージェント１１が処理サーバ２０へ一定期間（一定の通信間隔）で最新情報を問い合わせたり等、所定のタイミングで更新を行う。
【００３６】
ジョブ履歴情報制御部１１０４は、メイン制御部１１００の指示に従い、ファイル操作部１１０５を介してジョブ履歴情報を取得し、通信制御部１１０１を介して処理サーバ２０へ送信する。ファイル操作部１１０５は、保存部１１０６内の設定情報、画像データ、及び、ジョブ履歴情報を入出力するための制御部であり、各部からの処理要求を受けて処理を実行する。保存部１１０６は、記憶装置であり、図２（ａ）で示すＨＤＤ１０４に、収集エージェント１１の設定情報、画像データ、及び、ジョブ履歴情報を保存する。
【００３７】
次に、処理サーバ２０のソフトウェア構成について説明する。
図３において処理サーバ２０内に記載される各部は、各処理サーバ２０のＣＰＵ２００がＨＤＤ２０９等に記憶された、処理サーバプログラムを実行することにより実現されるものである。
メイン制御部２０００は、処理サーバ２０の全体を制御し、後述の各部に対する指示、管理を行う。通信制御部２００１は、収集エージェント１１の通信制御部１１０１からジョブ履歴情報や設定情報を受信し、また、収集エージェントからの処理要求に対する応答を送信する。通信制御部２００１は、受信したジョブ履歴情報を保存部２００７へ保存し、該保存した旨をメイン制御部２０００へ通知する。通信制御部２００１は、受信した設定情報を、メイン制御部２０００を介して設定制御部２００３へ渡す。
【００３８】
ＵＩ制御部２００２は、ディスプレイ２０８にユーザインタフェース（ＵＩ）を表示し、キーボード２０７や図示しないポインティングデバイスを介してユーザからの指示を受け付ける。なお、ＵＩ制御部２００２が提供するユーザインタフェースは、処理サーバ２０と通信可能なＰＣ上のウェブブラウザ上に実現される構成であってもよい。ユーザがＵＩから指示可能な内容の例として、処理サーバ２０と、収集エージェント１１の各設定情報がある。ユーザがＵＩから指定した設定情報は、メイン制御部２０００、設定制御部２００３を介して、保存部２００７に保存される。
【００３９】
設定制御部２００３は、処理サーバ２０、及び、収集エージェント１１の、識別情報や動作に関する設定情報を制御する。設定制御部２００３は、メイン制御部２０００を介して、収集エージェント１１のシステムへの登録要求を受け取り、ユニークな識別情報を発行し、保存部２００７に収集エージェント１１の情報を保存する。また、設定制御部２００３は、メイン制御部２０００を介して、ユーザまたは収集エージェント１１からの動作設定指示を受け取り、保存部２００７に設定情報を保存する。
【００４０】
ジョブ履歴情報制御部２００４は、メイン制御部２０００を介して、ジョブ履歴情報参照、保存指示を受け付け、指示に従ったジョブ履歴情報の制御を行う。画像処理部２００５は、ジョブ履歴情報制御部２００４からの指示に従い、ジョブ履歴情報（画像データ）に対してＯＣＲ処理や、画像フォーマットの変換を行う。ファイル操作部２００６は、各制御部からの指示を受け付け、保存部２００７に対して、識別情報、設定情報、ジョブ履歴情報の参照、保存を行う。保存部２００７は、記憶装置であり、図２（ｂ）で示すＨＤＤ２０９に、処理サーバ２０の設定情報、収集エージェント１１の識別情報および設定情報、ジョブ履歴情報を保存する。
【００４１】
エージェント監視部２００８は、収集エージェントが稼動状況を監視する。エージェント監視部２００８は、例えば、通信制御部２００１から収集エージェント１１との最終通信日時情報を取得する。さらに、エージェント監視部２００８は、最終通信日時と現在時刻を比較し、設定制御部２００３を介して得られる設定情報等に定義された通信間隔が経過していると判断できた場合には、収集エージェントが正常稼動していないと判断し、管理者にエラー通知を行う。エラー通知は、ＵＩ制御部２００２を介してディスプレイ２０８にメッセージを表示してもよいし、図示しないメール制御部などにより指定されたメールアドレスへメール送信してもよい。
【００４２】
図４は、収集エージェント１１が行うエージェント登録要求送信処理を例示するフローチャートである。図４及び後述する図５〜図８に示す処理は、各複合機１０のＣＰＵ１０１がＨＤＤ１０４等に記憶された、収集エージェントに対応するプログラムを実行することにより実現されるものである。なお、図４に示すフローチャートは、収集エージェントを処理サーバに登録するため、手動によるユーザ指示を受けることを想定したものであるが、配信アプリケーションを用いて設定を配信するなど、これらを自動で行ってもよい。
【００４３】
Ｓ１００において、収集エージェントのＵＩ制御部１１０２は、メインで通信をすることになるプライマリ処理サーバの情報について、操作部１２０（又は上述したリモートＵＩ）を介してユーザから指示を受け付ける。プライマリ処理サーバの情報とは、例えば、Ｗｅｂサービスを提供するＵＲＬ等であり、少なくとも処理サーバを特定する情報（例えばＩＰアドレスやホスト名など）を含むものとする。本実施例では、収集エージェント１１ａのプライマリ処理サーバを特定する情報として、プライマリ処理サーバ２０ａのＩＰアドレスは「123.456.789.000」とする。
【００４４】
次に、Ｓ１０１において、ＵＩ制御部１１０２は、上記Ｓ１００と同様に、セカンダリ処理サーバの情報について、操作部１２０（又は上述したリモートＵＩ）を介してユーザから指示を受け付ける。セカンダリ処理サーバの情報の例は、Ｓ１００で説明した例と同様である。本実施例では、収集エージェント１１ａのセカンダリ処理サーバを特定する情報として、セカンダリ処理サーバ２０ｂのＩＰアドレスは「987.654.321.000」とする。
【００４５】
次に、Ｓ１０２において、ＵＩ制御部１１０２は、操作部１２０（又は上述したリモートＵＩ）を介してユーザから登録指示を受け付ける。具体的には、複合機に設置された画面やディスプレイ２０８を介して、上記Ｓ１００及びＳ１０１で指定された処理サーバの情報を提示すると同時に、「登録」ボタンを表示する。ユーザは表示された処理サーバの情報を確認し、「登録」ボタンを押下することにより、登録指示を発行する。
【００４６】
次に、Ｓ１０３において、通信制御部１１０１は、メイン制御部１１００を介して、ＵＩ制御部１１０２からの登録指示に従い、プライマリ処理サーバ、セカンダリ処理サーバのそれぞれに対し、エージェント登録要求を送信する。ここで、プライマリ処理サーバ、セカンダリ処理サーバを特定する情報には、上記Ｓ１００及びＳ１０１で入手した処理サーバの情報をそれぞれ使用する。セカンダリ処理サーバに対しては、セカンダリフラグ（セカンダリ処理サーバであることを示す情報）、及び、上記Ｓ１００で支持されたプライマリ処理サーバの情報（少なくともプライマリ処理サーバを特定できる情報）を、エージェント登録要求と共に送信する。なお、プライマリ処理サーバ、セカンダリ処理サーバへのエージェント登録要求は、複合機１０において複数スレッドを起動しそれぞれを並行して実行する方法が考えられる。また、プライマリ処理サーバ、セカンダリ処理サーバへのエージェント登録要求をそれぞれ別々に実行する方法でもよい。例えば、プライマリ処理サーバへのエージェント登録要求送信の直後に、セカンダリ処理サーバへのエージェント登録要求を送信するという方法でもよいし、逆の順序でもよい。
【００４７】
次に、Ｓ１０４において、通信制御部１１０１は、プライマリ処理サーバ、セカンダリ処理サーバのそれぞれからエージェント登録要求に対する応答を受信する。応答には、各処理サーバが発行するエージェント識別情報が含まれる。エージェント識別情報の発行処理は、図９において後述するが、プライマリ処理サーバ、セカンダリ処理サーバのそれぞれから得られる値が異なっていてもよい。また、プライマリ処理サーバ、セカンダリ処理サーバのそれぞれから得られる値が一致するまで各処理サーバと通信を行ってもよい。
【００４８】
次に、Ｓ１０５において、通信制御部１１０１は、上記Ｓ１０４で正しくエージェント識別情報が得られたか否かを確認する。そして、各処理サーバから応答が得られなかった場合や、不適切な値がエージェント識別情報として得られたと判定した場合（Ｓ１０５でＮｏの場合）、通信制御部１１０１は、Ｓ１０３に処理を戻す（Ｓ１００に戻ってもよい）。一方、各処理サーバから正しくエージェント識別情報が得られたと判定した場合（Ｓ１０５でＹｅｓの場合）、通信制御部１１０１は、Ｓ１０６へ処理を進める。
【００４９】
Ｓ１０６において、設定制御部１１０３は、通信制御部１１０１およびメイン制御部１１００を介して、以下の情報（１）〜（３）を取得し、ファイル操作部１１０５を介して、保存部１１０６へ設定ファイルとして保存する。
（１）Ｓ１００で指示されたプライマリ処理サーバの情報
（２）Ｓ１０１で指示されたセカンダリ処理サーバの情報
（３）Ｓ１０４で受信したエージェント識別情報の値
これらの情報は、具体的には、図１５に示す内容であり、＜ＰｒｉｍａｒｙＵＲＬ＞タグにプライマリ処理サーバの情報を、＜ＳｅｃｏｎｄａｒｙＵＲＬ＞タグにセカンダリ処理サーバの情報を保存する。また、＜ＰｒｉｍａｒｙＡｇｅｎｔＩＤ＞タグには、プライマリ処理サーバからの応答で得られたエージェント識別情報を、＜ＳｅｃｏｎｄａｒｙＡｇｅｎｔＩＤ＞タグにはセカンダリ処理サーバからの応答で得られたエージェント識別情報を保存する。
【００５０】
次に、Ｓ１０７において、通信制御部１１０１は、プライマリ処理サーバ、セカンダリ処理サーバへ、設定情報をそれぞれ送信する。このとき、上記Ｓ１０４で受信したエージェント識別情報を一緒に送信する。具体的には、プライマリ処理サーバに対しては、プライマリ処理サーバから受信したエージェント識別情報（図１５に示す＜ＰｒｉｍａｒｙＡｇｅｎｔＩＤ＞タグの値）を使用する。セカンダリ処理サーバに対しては、セカンダリ処理サーバから受信したエージェント識別情報（図１５に示す＜ＳｅｃｏｎｄａｒｙＡｇｅｎｔＩＤ＞タグの値）を使用する。なお、プライマリ処理サーバ、セカンダリ処理サーバへ送信する設定情報とは、ジョブ履歴情報を処理サーバに送信する時間の設定、ジョブ履歴情報を収集する時間帯や種類、エージェント情報取得処理を行う間隔などの情報である。該設定情報は、図示しないステップによりユーザが指定してもよいし、配信アプリケーションによる配信や、収集エージェントがデフォルトで保持する値であってもよい。また、プライマリ処理サーバ、セカンダリ処理サーバへのそれぞれの送信処理は、上記Ｓ１０３のように、並行で行っても、順次行ってもよい。
そして、Ｓ１０７の処理の後、収集エージェント１１は、本フローチャートの処理を終了する。
【００５１】
図５は、収集エージェント１１のエージェント情報取得処理を例示するフローチャートである。本実施例において、収集エージェントは定期的に通信先処理サーバに対しエージェント情報取得処理を行い、この通信の有無を処理サーバが監視することによって、収集エージェントの稼動状況を判断する。なお、通常時、上記通信先処理サーバは、プライマリ処理サーバであるが、プライマリ処理サーバのエラーを検知した後は、セカンダリ処理サーバとなる。また、図示しないが、収集エージェント１１は、本フローチャートの処理実行前に、通信先処理サーバがプライマリ処理サーバなのか、セカンダリ処理サーバなのかを認識しているものとし、処理実行前に通信先を確認してもよい。
【００５２】
Ｓ２００において、通信制御部１１０１は、一定期間経過したか否かを確認する。該確認の結果、まだ一定期間経過していないと判定した場合（Ｓ２００でＮｏの場合）、通信制御部１１０１は、Ｓ２００の処理を繰り返す。なお、一定期間の定義は、設定制御部１１０３、ファイル操作部１１０５を介して、保存部１１０６に保存された設定情報から取得することを想定しているが、予めプログラムに固定で保持される時間でもよい。また、本ステップでは定期的に一定期間が経過したかを確認しているが、一定期間が経過した場合にイベントを受信できるような形態であってもよい。
一方、上記Ｓ２００の確認の結果、一定期間経過したと判定した場合（Ｓ２００でＹｅｓの場合）、通信制御部１１０１は、Ｓ２０１に処理を進める。
【００５３】
Ｓ２０１において、通信制御部１１０１は、通信先処理サーバの通信制御部２００１に対し、エージェント情報取得要求を送信する。このとき、エージェントを特定するためのエージェント識別情報を合わせて送信する。本実施例では、処理サーバ側で収集エージェントの集中管理を実施するに当たって、収集エージェントの設定を処理サーバ上で変更できるようにしている。そのため、収集エージェントが設定情報を含むエージェント情報の取得を定期的に行うことで、最新の設定情報を得ることができる。
【００５４】
Ｓ２０２において、通信制御部１１０１は、上記Ｓ２０１の処理に対する応答を受信するまでに、エラーが発生したか否かを確認する。ここでは、エラー値を応答として受信できるケースや、応答が受信できないケースが想定される。エラーが発生せず、正常に応答が得られたと判定した場合（Ｓ２０２でＮｏの場合）、通信制御部１１０１は、本フローチャートの処理を終了する。
【００５５】
一方、エラーが発生しと判定した場合（Ｓ２０２でＹｅｓの場合）、通信制御部１１０１は、Ｓ２０３に処理を進める。
Ｓ２０３において、通信制御部１１０１は、リトライを行うか否かを判断する。例えば、応答として、処理サーバがビジー状態というエラーを得た場合、通信制御部１１０１は、リトライをするという判断を行う。また、応答が得られない、又は、処理サーバ側のＨＤＤ容量不足などの即時復旧が困難なエラーが得られた場合、通信制御部１１０１は、リトライをしないという判断を行う。なお、応答が得られない場合、所定回数まではリトライする、というような形態であってもよい。
そして、リトライすると判断した場合（Ｓ２０３でＹｅｓの場合）、通信制御部１１０１は、Ｓ２０１に処理を戻す。
【００５６】
一方、リトライしないと判断した場合（Ｓ２０３でＮｏの場合）、通信制御部１１０１は、Ｓ２０４に処理を進める。
Ｓ２０４において、通信制御部１１０１は、ジョブ履歴情報（稼働情報）、及び設定情報（確認通知）の送信先を、セカンダリ処理サーバへ切り替える。この処理の詳細は、図７にて後述する。
Ｓ２０４の処理の後、通信制御部１１０１は、本フローチャートの処理を終了する。なお、本フローチャートの処理は繰り返し実行されるものとする。
【００５７】
図６は、収集エージェント１１のジョブ履歴情報送信処理の詳細を例示するフローチャートである。本処理は、予め指定された送信スケジュール設定に従い実行されてもよいし、ＵＩからのユーザ指示に従って実行されてもよい。なお、通常時、通信先処理サーバは、プライマリ処理サーバであるが、プライマリ処理サーバのエラーを検知した後は、セカンダリ処理サーバとなる。図示しないが、処理実行前に、通信先処理サーバがプライマリ処理サーバなのか、セカンダリ処理サーバなのかを認識しているものとする。処理実行前に通信先を確認してもよい。
【００５８】
Ｓ３００において、ジョブ履歴情報制御部１１０４は、ファイル操作部１１０５を介して、保存部１１０６にジョブ履歴情報が生成されているか否かを確認する。該確認の結果、保存部１１０６にジョブ履歴情報が生成されていないと判定した場合（Ｓ３００でＮｏの場合）、ジョブ履歴情報制御部１１０４は、本フローチャートの処理を終了する。
一方、保存部１１０６にジョブ履歴情報が生成されていると判定した場合（Ｓ３００でＹｅｓの場合）、ジョブ履歴情報制御部１１０４は、Ｓ３０１へ処理を進める。
【００５９】
Ｓ３０１において、ジョブ履歴情報制御部１１０４は、メイン制御部１１００を介して、通信制御部１１０１へ、ジョブ履歴情報の送信を依頼する。この依頼に応じ、通信制御部１１０１は、通信先処理サーバの通信制御部２００１に対し、ジョブ履歴情報を送信する。
次に、Ｓ３０２において、通信制御部１１０１は、上記Ｓ３０１の処理に対する応答を受信するまでに、エラーが発生したか否かを確認する。この処理の詳細は、図５のＳ２０２と同様であるため、詳細な説明は省略する。そして、エラーが発生せず、正常に応答が得られたと判定した場合（Ｓ３０２でＮｏの場合）、通信制御部１１０１は、本フローチャートの処理を終了する。
【００６０】
一方、エラーが発生しと判定した場合（Ｓ３０２でＹｅｓの場合）、通信制御部１１０１は、Ｓ３０３に処理を進める。
Ｓ３０３において、通信制御部１１０１は、リトライを行うか否かを判断する。この処理の詳細は、図５のＳ２０３と同様であるため、詳細な説明は省略する。そして、リトライすると判断した場合（Ｓ３０３でＹｅｓの場合）、通信制御部１１０１は、Ｓ３０１に処理を戻す。
【００６１】
一方、リトライしないと判断した場合（Ｓ３０３でＮｏの場合）、通信制御部１１０１は、Ｓ３０４に処理を進める。Ｓ３０４において、通信制御部１１０１は、セカンダリ処理サーバへ通信先を切り替える。この処理の詳細は、図７にて後述する。Ｓ３０４の処理の後、通信制御部１１０１は、本フローチャートの処理を終了する。
【００６２】
なお、本実施例では詳細は記載しないが、この他に、収集エージェント１１は、図示しない通信を、通信先処理サーバと行っている。例えば、収集エージェント１１のユーザインタフェースを介して設定情報の変更が行われた場合に、処理サーバに設定情報を通知する設定変更通知処理がある。また、定期的に収集エージェント１１が自身のステータス情報を確認し、前回処理サーバに対して送信済みの情報と異なる点があれば、ステータス通知を行う。通知するステータスの例としては、エラーは発生していないか、処理サーバに未送信のジョブ履歴情報はどれくらいか、ＨＤＤ空き容量はどれくらいか、などがある。このような図示しない通信も、通常はプライマリ処理サーバ２０ａに対して行っている。このときもプライマリ処理サーバから応答を受信するまでにエラーが発生したか否かを確認したり、リトライをするか判断したりという図５のＳ２０２〜Ｓ２０４と同様の処理を行っている。なお、パフォーマンス向上等の目的のため、一部の通信においては、図５のＳ２０２〜Ｓ２０４と同様の処理を行わないものとしてもよい。
【００６３】
図７は、収集エージェント１１のサーバ切り替え処理を例示するフローチャートである。この処理は、プライマリ処理サーバとの通信でエラーが発生した場合に、稼働情報、及び確認通知の宛先を、プライマリ処理サーバからセカンダリ処理サーバへ切り替える処理であり、図５のＳ２０４、及び、図６のＳ３０４の処理の詳細に対応する。
【００６４】
Ｓ４００において、通信制御部１１０１は、プライマリ処理サーバ（ここでは２０ａとして説明する）に対して定期的に復旧確認するスレッドを起動する（即ち、プライマリ処理サーバに対する復旧チェック処理を開始する）。なお、スレッドではなく、外部ツール等でもよい。また、ジョブ履歴送信時、複合機１０の起動時など、何らかのタイミングでプライマリ処理サーバの復旧確認をするという手段でもよい。復旧チェック処理の処理内容に関しては、図８において後述する。なお、通信制御部１１０１は、上記Ｓ４００で開始した復旧チェック処理と、他の処理（例えばＳ４０１以降の処理）を並行して実行する。
【００６５】
Ｓ４０１において、セカンダリ処理サーバ（ここでは２０ｂとして説明する）の通信制御部２００１に対し、設定情報とエージェント識別情報を送信する。この処理は、図４のＳ１０７の処理と同様であるため、詳細な説明は省略する。
次に、Ｓ４０２において、通信制御部１１０１は、上記Ｓ４０１の応答を受信し、エラーが発生していないか否かを確認する。
【００６６】
そして、エラーが発生していると判定した場合（Ｓ４０２でＹｅｓの場合）、通信制御部１１０１は、Ｓ４０５に処理を進める。Ｓ４０５において、通信制御部１１０１は、エラー処理を行い、本フローチャートの処理を終了する。なお、エラー処理の例としては、通信制御部１１０１がログにエラー出力する方法や、通信制御部１１０１がメイン制御部１１００を介してＵＩ制御部１１０２にエラーメッセージ表示を依頼する方法などがある。
【００６７】
一方、エラーが発生していないと判定した場合（Ｓ４０２でＮｏの場合）、通信制御部１１０１は、Ｓ４０３に処理を進める。
Ｓ４０３において、通信制御部１１０１は、セカンダリ処理サーバ２０ｂの通信制御部２００１に対し、ステータス情報を送信する。ステータス情報は、設定制御部１１０３が自身のステータス情報を確認して得たステータスであり、例えば、エラーは発生していないか、処理サーバに未送信のジョブ履歴情報はどれくらいか、ＨＤＤ空き容量はどれくらいか、などである。これらを通知することによって、最新のステータス情報をセカンダリ処理サーバへ伝える。
【００６８】
次に、Ｓ４０４において、通信制御部１１０１は、上記Ｓ４０３に対する応答を受信し、エラーが発生していないか否かを確認する。そして、エラーが発生していると判定した場合（Ｓ４０４でＹｅｓの場合）、通信制御部１１０１は、Ｓ４０５において、上述のエラー処理を行い、本フローチャートの処理を終了する。
一方、エラーが発生していないと判定した場合（Ｓ４０４でＮｏの場合）、通信制御部１１０１は、ジョブ履歴情報（稼働情報）、及び設定情報（確認通知）の宛先（送信先）をセカンダリ処理サーバへ切り替え、本フローチャートの処理を終了する。
【００６９】
図８は、収集エージェント１１がセカンダリ処理サーバへ通信先を切り替え時に行うプライマリ処理サーバに対する定期的な復旧チェック処理を例示するフローチャートである。この処理は、図７のＳ４００で起動されたスレッドが行う処理である。
【００７０】
Ｓ５００において、通信制御部１１０１は、プライマリ処理サーバ（ここでは２０ａとして説明する）の通信制御部２００１に対し、復旧状況取得要求を送信する。ここで、プライマリ処理サーバ２０ａを特定する情報は、設定制御部１１０３を介して、保存部１１０６に保存された設定情報のうち、図４のＳ１００で指定されてＳ１０６で保存されたプライマリ処理サーバ情報を取得し、通信先として利用する。なお、メモリ上に同様の情報を保持し、メモリ参照を行ってもよい。また、復旧状況取得要求として、本実施例では、プライマリ処理サーバの稼働状況を確認する専用のＡＰＩを想定している。しかし、既存のＡＰＩ（例えば、エージェント情報取得処理や、ジョブ履歴情報送信処理のＡＰＩなど）を代用し、正常な応答が返ってくることで正常稼動している状態になった、と判断してもよい。
【００７１】
次に、Ｓ５０１において、通信制御部１１０１は、プライマリ処理サーバ２０ａの通信制御部２００１から復旧通知を受信できたか否かを確認する。該確認の結果、復旧通知を受信できなかったと判定した場合（Ｓ５０１でＮｏの場合）、通信制御部１１０１は、Ｓ５０２において、一定期間待機した後、Ｓ５００へ処理を移行する。なお、一定期間は、１分から数時間、最大でも数日程度の待機を想定しており（ただしこれに限定されない）、運用環境を鑑みて、ユーザによって変更可能にすることが望ましい。
【００７２】
一方、上記Ｓ５０１において、復旧通知を受信できたと判定した場合（Ｓ５０１でＹｅｓの場合）、通信制御部１１０１は、Ｓ５０３へ処理を進める。
Ｓ５０３において、通信制御部１１０１は、プライマリ処理サーバ２０ａの通信制御部２００１へ設定情報を送信する。この処理は、本当にプライマリ処理サーバが復旧したかを確認するためと、最新の設定情報を共有するための処理である。この処理は、通信先が異なるものの、図７のＳ４０１で行った処理と同様であるため、詳細な説明は省略する。
【００７３】
次に、Ｓ５０４において、通信制御部１１０１は、上記Ｓ５０３に対する応答を受信し、エラーが発生していないかを確認する。該確認の結果、エラーが発生していると判定した場合（Ｓ５０４でＹｅｓの場合）、通信制御部１１０１は、Ｓ５０２に移行し、一定時間待機した後、Ｓ５００へ移行する。
【００７４】
一方、上記Ｓ５０４において、エラーが発生していないと判定した場合（Ｓ５０４でＮｏの場合）、通信制御部１１０１は、Ｓ５０５に処理を進める。
Ｓ５０５において、通信制御部１１０１は、プライマリ処理サーバ２０ａの通信制御部２００１へステータス情報を送信する。この処理は、通信先が異なるものの、図７のＳ４０３で行った処理と同様であるため、詳細な説明は省略する。
【００７５】
次に、Ｓ５０６において、通信制御部１１０１は、上記Ｓ５０５に対する応答を受信し、エラーが発生していないか否かを確認する。該確認の結果、エラーが発生していると判定した場合（Ｓ５０６でＹｅｓの場合）、通信制御部１１０１は、Ｓ５０２に移行し、一定時間待機した後、Ｓ５００へ移行する。
【００７６】
一方、上記Ｓ５０６において、エラーが発生していないと判定した場合（Ｓ５０６でＮｏの場合）、通信制御部１１０１は、Ｓ５０７に処理を進める。
上記Ｓ５０３、Ｓ５０５においてプライマリ処理サーバ２０ａとの通信が確立したことを確認した通信制御部１１０１は、Ｓ５０７において、ジョブ履歴情報（稼働情報）、及び設定情報（確認通知）の宛先をプライマリ処理サーバへ切り替え、セカンダリ処理サーバ（ここでは２０ｂとして説明する）の通信制御部２００１へ移行通知を送信する。該移行通知は、セカンダリ処理サーバ２０ｂに対し、この後の通信はプライマリ処理サーバを対象とすることを通知するためのものであり、該収集エージェントをセカンダリ処理サーバのエージェント監視処理対象の対象外として扱うよう依頼することを意味する。
さらに、Ｓ５０８において、通信制御部１１０１は、図７のＳ４００で起動したスレッド（プライマリ処理サーバ２０ａに対して定期的に復旧確認するスレッド）を停止し、本フローチャートの処理を終了する。
【００７７】
図９は、処理サーバ２０が収集エージェント１１からのエージェント登録要求を受信した際の処理を示すフローチャートである。エージェント登録要求は、図４のＳ１０３において、収集エージェントの通信制御部１１０１が送信したものである。なお、図９及び後述する図１０〜図１４の処理は、処理サーバ２０のＣＰＵ２００がＨＤＤ２０９等に記憶された、処理サーバプログラムを実行することにより実現されるものである。
【００７８】
Ｓ６００において、通信制御部２００１は、収集エージェントの通信制御部１１０１からエージェント登録要求を受信する。該受信後、通信制御部２００１は、メイン制御部２０００を介して、設定制御部２００３にエージェント情報取得指示を行う。
Ｓ６０１において、設定制御部２００３は、エージェント識別情報を発行する。エージェント識別情報は、収集エージェントごとにユニークに割り振られる識別情報で、システムにおいてユニークに収集エージェントを識別できれば、数字でも文字列でもよく、その他の形式でもよい。例えば、ＧＵＩＤ（Globally Unique Identifier）と文字列等を組み合わせてもよいが、本実施例では、エージェント登録要求を受信した順番に数字をカウントアップして使用する。なお、発行済みエージェント識別情報を管理するため、設定制御部２００３を介して保存部２００７にエージェント識別情報管理情報として、発行済みの数字を保存する。
【００７９】
次に、Ｓ６０２において、通信制御部２００１は、上記Ｓ６００で受信したエージェント登録要求について、セカンダリフラグの有無、プライマリ処理サーバ情報の有無を確認する。そして、セカンダリフラグがあったと判定した場合（Ｓ６０２でＹｅｓ）、通信制御部２００１は、Ｓ６０３に処理を移行する。
Ｓ６０３において、通信制御部２００１は、メイン制御部２０００を介して、設定制御部２００３に対し、該収集エージェントのエージェント情報を生成するよう依頼する。例えば、セカンダリ処理サーバ２０ｂが収集エージェント１１ａからエージェント登録要求を受信したケースで上記Ｓ６０３が実行される。セカンダリ処理サーバ２０ｂの設定制御部２００３は、エージェント情報ファイルを生成し、ファイル操作部２００６を介して、保存部２００７に保存する。具体的には、上記Ｓ６０１で発行したエージェント識別情報と、その他の設定をデフォルト値（もしくは空の値）でファイルを生成する。該ファイルは、図１６Ｂの「エージェント情報管理フォルダ\セカンダリエージェント情報管理フォルダ\123.456.789.000」フォルダに、「0013.xml」として保存される。図１６Ｂは、セカンダリ処理サーバ２０ｂのエージェント管理フォルダ構成例である。「123.456.789.000」はプライマリ処理サーバ２０ａのサーバ情報に基づくフォルダ名になっており、セカンダリエージェントをプライマリ処理サーバ別に分類することが可能となる。エージェント情報ファイルの内容は、例えば図１７のようになっており、エージェント識別情報を示す＜ＡｇｅｎｔＩＤ＞タグの値は「１３」であり、エージェント名称は＜ＡｇｅｎｔＮａｍｅ＞タグに示す「ＡｇｅｎｔＸＹＺ」である。Ｓ６０３の処理の後、通信制御部２００１は、Ｓ６０５に処理を移行する。
【００８０】
一方、上記Ｓ６０２において、上記Ｓ６００で受信したエージェント登録要求についてセカンダリフラグがなかったと判定した場合（Ｓ６０２でＮｏ）、通信制御部２００１は、Ｓ６０４に処理を移行する。
Ｓ６０４において、通信制御部２００１は、メイン制御部２０００を介して、設定制御部２００３に対し、該収集エージェントのエージェント情報を生成するよう依頼し、ファイル操作部２００６を介して、保存部２００７に保存する。例えば、プライマリ処理サーバ２０ａが収集エージェント１１ａからのエージェント登録要求を受信したケースで上記Ｓ６０４が実行される。プライマリ処理サーバ２０ａの設定制御部２００３は、エージェント情報ファイルを生成し、ファイル操作部２００６を介して、保存部２００７に保存する。エージェント情報の内容は、上記Ｓ６０３の説明又は図１７と同様であるが、エージェント識別情報は処理サーバごとに発行されるため＜ＡｇｅｎｔＩＤ＞タグの値は異なる。また、生成したファイルを保存する場所は、プライマリ処理サーバ２０ａのエージェント管理フォルダ構成例である図１６Ａの「エージェント情報管理フォルダ」直下であり、「0001.xml」として保存される。Ｓ６０４の処理の後、通信制御部２００１は、Ｓ６０５に処理を移行する。
【００８１】
Ｓ６０５において、通信制御部２００１は、上記Ｓ６０１で発行したエージェント識別情報を収集エージェント１１に送信する。
次に、Ｓ６０６において、通信制御部２００１は、図４のＳ１０７で収集エージェント１１の通信制御部１１０１が送信した設定情報を受信する。
次に、Ｓ６０７において、通信制御部２００１は、上記Ｓ６０６で受信した設定情報を、メイン制御部２０００、設定制御部２００３、及び、ファイル操作部２００６を介して、保存部２００７に保存する。なお、本実施例では、エージェント情報の保存先としてフォルダ、ファイルを前提として記載しているが、データベースやミドルウェア等にエージェント情報を保存してもよい。そして、Ｓ６０７の処理の後、通信制御部２００１は、本フローチャートの処理を終了する。
【００８２】
図１０は、処理サーバ２０が収集エージェント１１から、エージェント情報取得要求を受信した際の処理を示すフローチャートである。収集エージェント１１のエージェント情報取得要求の送信処理の例は、図５のＳ２０１が該当する。
【００８３】
Ｓ７００において、通信制御部２００１は、収集エージェントの通信制御部１１０１からエージェント情報取得要求と共にエージェント識別情報を受信する。
次に、Ｓ７０１において、通信制御部２００１は、メイン制御部２０００、設定制御部２００３、ファイル操作部２００６を介して、保存部２００７に保存されたエージェント情報ファイルを特定する。特定方法としては、上記Ｓ７００で受信したエージェント識別情報を元に、保存部２００７に保存されているエージェント情報ファイルを検索して特定する。具体的には、図１６Ａ、図１６Ｂ又は図１６Ｃの「エージェント情報管理フォルダ」にあるエージェント情報ファイル、及び、「セカンダリエージェント情報管理フォルダ\＜処理サーバのＩＰアドレス＞」フォルダ内にあるエージェント情報ファイルを順次検索する。なお、別途、エージェント識別情報と、エージェント情報ファイルのリストを保持しておき、それを検索するという方法でもよい。
【００８４】
次に、Ｓ７０２において、通信制御部２００１は、ファイル操作部２００６を介して、保存部２００７に生存確認ファイルを作成する。具体的には、図１８に示す生存確認用のフォルダ構成を用いて説明する。例えば、図１５に示すエージェント情報ファイルを保持する収集エージェント１１ａの場合、プライマリ処理サーバ２０ａは、「ＡｇｅｎｔＩＤ＝１」ということで、図１８（ａ）のように、「生存確認用フォルダ」の下に「0001_20150901_103012.xml」を作成する。先頭の４文字は「ＡｇｅｎｔＩＤ＝１」を４桁で示しており、その後には上記Ｓ７００でエージェント情報取得要求を受信した通信日時が記録される。この例では、２０１５年９月１日１０時３０分１２秒であり、これが最終通信日時となる。生存確認ファイルは、ファイル名に情報が記されているため、ファイルの中身がゼロであってもよい。また、通信日時がファイル名ではなくファイルの中身に記されている形式でもよい。なお、セカンダリ処理サーバ２０ｂの場合、「ＡｇｅｎｔＩＤ＝１３」ということで、図１８（ｂ）に示すとおり、「生存確認用フォルダ\123.456.789.000」の下に「0013_20150901_102500.xml」を作成する。図１８に示す「生存確認用フォルダ」又は「生存確認用フォルダ\＜セカンダリ生存確認用フォルダ＞」にある生存確認ファイルは、エージェント監視部２００８によるエージェント稼動状況判断に使用される。つまり、生存確認ファイルがエージェントとの通信が正常に出来ているか（エージェントが正常稼動しているか）という判断の基準となる。エージェント監視部２００８の処理については、図１３で後述する。
【００８５】
次に、Ｓ７０３において、通信制御部２００１は、収集エージェント１１の通信制御部１１０１に対し、エージェント情報を応答として送信し、本フローチャートの処理を終了する。
【００８６】
図１１は、処理サーバ２０が収集エージェント１１から、ジョブ履歴情報を受信した際の処理を示すフローチャートである。収集エージェント１１のジョブ履歴情報送信処理の例は、図６のＳ３０１が該当する。
Ｓ８００において、通信制御部２００１は、収集エージェント１１の通信制御部１１０１からジョブ履歴情報を受信し、ファイル操作部２００６を介して、保存部２００７に保存する。
【００８７】
次に、Ｓ８０１において、通信制御部２００１は、メイン制御部２０００を介して、ジョブ履歴情報制御部２００４に対し、ジョブ履歴情報の変換処理要求を行う。ここで、変換処理要求を受けたジョブ履歴情報制御部２００４は、ファイル操作部２００６を介して、保存部２００７に保存されたジョブ履歴情報を取得し、画像処理部２００５に対して、変換処理を依頼する。画像処理部２００５は、ジョブ履歴情報の画像データに対して、ＯＣＲ処理や画像フォーマットの変換を行う。また、必要に応じて、ログ属性情報の文字コード変換や、縮小画像データ（サムネイル）の生成等を行ってもよい。
【００８８】
次に、Ｓ８０２において、通信制御部２００１は、収集エージェントの通信制御部１１０１に対し、ジョブ履歴情報受信の成否を応答として送信する。本フローチャートにおいても、Ｓ８０２の応答前に、図１０のＳ７０２と同様に、生存確認ファイルを作成し、最終通信日時を更新してもよい。Ｓ８０２の後、通信制御部２００１は、本フローチャートの処理を終了する。
【００８９】
なお、図６の最後に説明した設定変更通知、乃至、ステータス通知については、処理サーバのフローチャートは図示しない。設定変更通知、乃至、ステータス通知を受けた場合、通信制御部２００１は、メイン制御部２０００、設定制御部２００３、及び、ファイル操作部２００６を介して、保存部２００７のエージェント情報ファイルを更新する。具体的には、図１７の＜ＡｇｅｎｔＰｒｏｐｅｒｔｙ＞タグ、乃至、＜ＴｒａｎｓｆｅｒＳｃｈｅｄｕｌｅ＞タグが設定情報に該当し、＜ＡｇｅｎｔＳｔａｔｕｓ＞タグがステータス情報に該当する。これらの値を、収集エージェントから受信した情報で上書き保存する。これらの設定変更通知、乃至、ステータス通知を受けた場合にも、生存確認ファイルを作成し、最終通信日時を更新するとしてもよい。
【００９０】
図１２は、処理サーバ２０が収集エージェント１１から、設定情報を受信した際の処理を示すフローチャートである。収集エージェント１１の設定情報送信処理の例は、図７のＳ４０１が該当する。処理サーバ２０は、設定情報受信時に、セカンダリエージェントとして登録した収集エージェントか否かを確認する。
【００９１】
Ｓ９００において、通信制御部２００１は、収集エージェントの通信制御部１１０１からエージェントの設定情報と共にエージェント識別情報を受信する。
Ｓ９０１において、通信制御部２００１は、メイン制御部２０００を介して、設定制御部２００３にエージェントの設定情報更新指示を行う。設定制御部２００３は、ファイル操作部２００６を介して、上記Ｓ９００で受信したエージェント識別情報を元に、保存部２００７に保存されているエージェント情報ファイルを特定する。具体的な特定の手段としては、図１０のＳ７０１の説明と同じ手段であるため、説明は省略する。設定制御部２００３は、保存部２００７に保存されているエージェント情報ファイルを特定した後、上記Ｓ９００で受信した設定情報で、特定したエージェント情報ファイルの内容を更新する。
【００９２】
Ｓ９０２において、設定制御部２００３は、上記Ｓ９０１で特定したエージェント情報ファイルのパスを確認し、通常のエージェントとして登録しているエージェントか、セカンダリエージェントとして登録しているエージェントかを確認する。即ち、上記Ｓ９００で受信した設定情報の送信元のエージェントがセカンダリエージェントとして登録されているか判断する。上記Ｓ９０１で特定したエージェント情報ファイルが「セカンダリエージェント情報管理フォルダ\＜プライマリ処理サーバのＩＰアドレス＞」フォルダ内にあった場合には、セカンダリエージェントとして登録しているエージェントであると判断する。なお、セカンダリエージェントとして登録しているエージェントであると判断した場合の処理例は、セカンダリ処理サーバ（例えば２０ｂ）が行う処理（Ｓ９０４、Ｓ９０５）となる。一方、セカンダリエージェントとして登録しているエージェントでないと判断した場合の処理例は、プライマリ処理サーバ（例えば２０ａ）が行う処理（Ｓ９０６）となる。
【００９３】
セカンダリエージェントからの通信であると判断した場合（Ｓ９０２でＹｅｓの場合）、設定制御部２００３は、Ｓ９０３に処理を進める。
Ｓ９０３において、設定制御部２００３は、「セカンダリエージェント情報管理フォルダ\＜プライマリ処理サーバのＩＰアドレス＞」が空か否かを確認する。空であると判定した場合（Ｓ９０３でＹｅｓの場合）、設定制御部２００３は、Ｓ９０４に処理を進める。
【００９４】
Ｓ９０４において、設定制御部２００３は、上記Ｓ９００で受信した設定情報の送信元のエージェントと同一のプライマリ処理サーバを関連付けている全セカンダリエージェントの生存確認ファイルを生成する。これにより、エージェント監視部２００８は、同じプライマリ処理サーバを関連付けている全セカンダリエージェントを監視対象にすることが可能となる。該全セカンダリエージェントを監視対象にすることにより、従来検知できなかった以下のケース（１），（２）について、セカンダリ処理サーバ２０ｂによって異常状態を検知し、エラー通知することが可能となる効果がある。
（１）何らかの問題により、プライマリ処理サーバ２０ａと同じタイミングで収集エージェント１１ｄが通信できなくなった場合。
（２）プライマリ処理サーバ２０ａからセカンダリ処理サーバ２０ｂへの切り替え処理が正常に行えなかった収集エージェント１１ｄがいた場合。
【００９５】
以下、上記Ｓ９０２〜Ｓ９０４の具体例として図１６Ｂ及び図１８（ｂ）を用いて説明する。
Ｓ９００の設定情報受信前、図１８（ｂ）の「生存確認用フォルダ\123.456.789.000」が最初は空だったとする。そして、図１５に示すエージェント情報ファイルを保持する収集エージェント１１ａが、プライマリ処理サーバ２０ａのエラーを検知し、セカンダリ処理サーバ２０ｂへ通信先を切り替える処理（図７）を行ったとする。この場合、セカンダリ処理サーバ２０ｂにおいては、「ＡｇｅｎｔＩＤ＝１３」からの通信だったので、エージェント情報ファイルは図１６Ｂの「エージェント情報管理フォルダ\セカンダリエージェント情報管理フォルダ\123.456.789.000」に存在する。つまりは、上記切り替えのための通信は、セカンダリエージェントかの通信と判断できる（Ｓ９０２）。そのため、生存確認用フォルダも同様のフォルダ構成で、図１８（ｂ）の「生存確認用フォルダ\123.456.789.000」に生存確認ファイルを作成する。このとき、フォルダが空であるため、図１６Ｂの「エージェント情報管理フォルダ\セカンダリエージェント情報管理フォルダ\123.456.789.000」にエージェント情報ファイルが存在する全エージェントについて生存確認ファイルを生成する（Ｓ９０４）。その結果、図１８（ｂ）に示す通り「0013_20150901_102500.xml」、「0014_20150901_102500.xml」の２つのファイルが生成される。これらのファイル名に含まれる最終通信日時は仮として「ＡｇｅｎｔＩＤ＝１３」の通信日時とすることで、セカンダリ収集エージェントの稼働状況監視を実現する。
【００９６】
なお、本実施例では、Ｓ９０４において、同じプライマリ処理サーバを関連付けている全セカンダリエージェントの生存確認ファイルを生成している。しかし、プライマリ処理サーバの情報に拘らず、全セカンダリエージェントの生存確認ファイルを生成する構成でもよい。この構成の場合、図４のＳ１０３において、エージェント登録時に送信したプライマリ処理サーバの情報は、不要となる（収集エージェント１１はプライマリ処理サーバの情報を送信しなくてよい）。
【００９７】
一方、Ｓ９０３において、セカンダリ生存確認用フォルダは空ではなかったと判断した場合（Ｓ９０３でＮｏの場合）、設定制御部２００３は、Ｓ９０５に処理を進める。
Ｓ９０５において、設定制御部２００３は、上記Ｓ９０１で特定した収集エージェントについてのみ、生存確認ファイルを生成する。この場合、上記Ｓ９０２において、収集エージェントはセカンダリエージェントであると判断済みであるため、生存確認ファイルは、「セカンダリエージェント情報管理フォルダ\＜プライマリ処理サーバのＩＰアドレス＞」に生成される。具体的には、図１８（ｂ）の「生存確認用フォルダ\123.456.789.000」フォルダに生存確認ファイル「0013_20150901_102500.xml」のみを生成する。もし、既に該収集エージェントの生存確認ファイルがあった場合、該生存確認ファイルのファイル名の通信日時を更新することにより、上記生成を行うこととする。
【００９８】
一方、上記Ｓ９０２において、通常のエージェントとして登録しているエージェントと判断した場合（Ｓ９０２でＮｏの場合）、設定制御部２００３は、Ｓ９０６に処理を進める。
Ｓ９０６において、設定制御部２００３は、上記Ｓ９０１で特定した収集エージェントについてのみ、生存確認ファイルを生成する。この場合、上記Ｓ９０２において収集エージェントは通常のエージェントであると判断済みなので、「生存確認用フォルダ」直下に生存確認ファイルを生成する。例えば、図１８（ａ）の「0001_20150901_103012.xml」を生成する。もし、既に該収集エージェントの生存確認ファイルがあった場合、該生存確認ファイルのファイル名の通信日時を更新することにより、上記生成を行うこととする。
【００９９】
上記Ｓ９０４、Ｓ９０５又はＳ９０６の後、通信制御部２００１は、Ｓ９０７において、収集エージェントの通信制御部１１０１に対し、設定情報の受信成否を応答として送信し、本フローチャートの処理を終了する。
なお、例えば１台の収集エージェントが誤動作により、セカンダリ処理サーバに対して設定情報を送信してきた場合が考えられる。この対応策としては、例えば、上記Ｓ９０２において２台以上のセカンダリエージェントからの通信があったか否かを判断し、該当する場合にＳ９０３に移行するように構成してもよい。また、ユーザが運用に合わせて、この判定条件を変更可能であってもよい。例えば、該判定条件を、「３台以上のセカンダリエージェントからの通信があった場合」や「１台以上のセカンダリエージェントからの通信があった場合」等に変更可能にしてもよい。
また、図７で示したセカンダリへの切替処理では、収集エージェント１１は、Ｓ４０１の設定情報送信に続いて、Ｓ４０３でステータス情報も送信する。しかし、処理サーバ２０における、該ステータス情報の受信処理については、図示を省略する。
【０１００】
図１３は、処理サーバ２０のエージェント監視部２００８によるエージェント監視処理を示すフローチャートである。エージェント監視部２００８は、メイン制御部２０００によって定期的に起動されるスレッドとして実装されてもよいし、独立したプロセスやサービスとして自身で定期的に処理を実行してもよい。
【０１０１】
Ｓ１０００において、エージェント監視部２００８は、メイン制御部２０００、設定制御部２００３を介して、保存部２００７から設定情報である通信間隔情報を取得する。この通信間隔情報は、システムで１つの値を保持することを想定するが、収集エージェントごとに設定を持っていてもよい。また、複合機１０の電源が停止しているセカンダリエージェントを考慮し、３日間等の余裕を持った通信間隔情報であってもよい。この場合は、通常のエージェントとセカンダリエージェントの通信間隔情報の設定を分けて保持してもよい。本処理は、エージェント監視部２００８が起動時に１回だけ実行してもよいし、監視処理実行前に毎回実行してもよい。
【０１０２】
次に、Ｓ１００１において、エージェント監視部２００８は、生存確認用フォルダを検索する。まず、「生存確認用フォルダ」直下の生存確認ファイルの有無を確認し、Ｓ１００２へ処理を進める。
Ｓ１００２において、エージェント監視部２００８は、未処理のエージェント、つまり、未処理の生存確認ファイルが存在するか否かを確認する。そして、未処理のエージェントが存在すると判定した場合（Ｓ１００２でＹｅｓの場合）、エージェント監視部２００８は、未処理の生存確認ファイルを処理中の生存確認ファイルとし、Ｓ１００３に処理を進める。
【０１０３】
Ｓ１００３において、エージェント監視部２００８は、処理中の生存確認ファイルのファイル名から最終通信日時を取得する。
次に、Ｓ１００４において、エージェント監視部２００８は、上記Ｓ１００３で取得した前回の通信時間と、現在時間を比較する。
次に、Ｓ１００５において、エージェント監視部２００８は、上記Ｓ１００４の比較した結果、上記Ｓ１０００で取得した通信間隔設定を超える時間差があるか否かを確認する。
そして、通信間隔設定を超える時間差があると判定した場合（Ｓ１００５でＹｅｓの場合）、エージェント監視部２００８は、Ｓ１００６に処理を進める。
Ｓ１００６において、エージェント監視部２００８は、エージェントが正常稼動していないと判断し、エラー処理や、予め設定されている管理者のメールアドレスに対してエラー通知する処理などを実行し、Ｓ１００２に処理を戻す。なお、エラー通知には、正常稼動していないと判断されたエージェントを特定する情報が含まれているものとする。
【０１０４】
また、上記Ｓ１００２において、「生存確認用フォルダ」直下の生存確認ファイルの全てに対して処理を終えた（未処理のエージェントがない）と判断した場合（Ｓ１００２でＮｏの場合）、Ｓ１００７へ移行する。なお、上記Ｓ１００１の検索で、「生存確認用フォルダ」直下の生存確認ファイルが存在しなかった場合にも、Ｓ１００２でＮｏと判断する。
【０１０５】
Ｓ１００７において、エージェント監視部２００８は、セカンダリ生存確認用フォルダ下の生存確認ファイルの有無を確認する。そして、セカンダリ生存確認用フォルダ下に生存確認ファイルが存在しないと判定した場合（Ｓ１００７でＮｏの場合）、エージェント監視部２００８は、本フローチャートの処理を終了する。
一方、セカンダリ生存確認用フォルダ下に生存確認ファイルが存在すると判定した場合（Ｓ１００７でＹｅｓの場合）、エージェント監視部２００８は、Ｓ１００８へ処理を進める。なお、セカンダリ生存確認用フォルダの具体例は、処理サーバ２０ａの場合、図１８（ａ）の「生存確認用フォルダ\111.222.333.444」である。処理サーバ２０ｂの場合、図１８（ｂ）の「生存確認用フォルダ\123.456.789.000」及び「生存確認用フォルダ\111.222.333.444」である。
なお、Ｓ１００８〜Ｓ１０１２の処理は、処理対象となるフォルダが異なる（「生存確認用フォルダ」から「セカンダリ生存確認用フォルダ」になる）だけで、Ｓ１００２〜Ｓ１００６の処理と同じであるため、詳細な説明は省略する。即ち、Ｓ１００８〜Ｓ１０１２において、エージェント監視部２００８は、収集エージェントの生存確認通知としての設定情報を、通信間隔設定を超える時間受信していない収集エージェントの検出を行い、該検出した場合には、その旨を管理者へメール等で通知する。
【０１０６】
図１４は、処理サーバ２０が収集エージェント１１から移行通知（図８のＳ５０７）を受信した際の処理を例示するフローチャートである。移行通知は、収集エージェント１１（例えば１１ａ）がセカンダリ処理サーバ２０ｂからプライマリ処理サーバ２０ａへ通信先を切り替えた際に、セカンダリ処理サーバ２０ｂへ送信されるものである。該移行通知を受信したセカンダリ処理サーバ２０ｂは、収集エージェント１１ａのプライマリ処理サーバ２０ａと同じ処理サーバをプライマリ処理サーバに指定している全収集エージェントの生存確認ファイルを削除することで、エージェント監視処理を停止する。以下、詳細に説明する。
【０１０７】
Ｓ１１００において、通信制御部２００１は、収集エージェントの通信制御部１１０１から移行通知を受信する。
Ｓ１１０１において、通信制御部２００１は、移行通知を受け取った収集エージェントの生存確認ファイルを特定し、該特定された生存確認ファイルと同じフォルダにある全エージェントの生存確認ファイルを削除する。具体的には、図１５に示すエージェント情報ファイルを保持する収集エージェント１１ａの場合、「ＡｇｅｎｔＩＤ＝１３」としてセカンダリ処理サーバ２０ｂに登録されている。そのため、図１８（ｂ）の「生存確認用フォルダ\123.456.789.000」にある「0013_20150901_102500.xml」が対応する生存確認ファイルになる。図１５に示すエージェント情報ファイルを保持する収集エージェント１１ａから移行通知を受信した場合、処理サーバ２０ｂは、図１８（ｂ）の「生存確認用フォルダ\123.456.789.000」フォルダ内にある全ての生存確認ファイルを削除する。
【０１０８】
なお、上記Ｓ１１０１の処理は、１台の収集エージェントがプライマリ処理サーバの復旧を検知した場合、同じ処理サーバをプライマリ処理サーバと登録している他の収集エージェントも順次プライマリ処理サーバとの通信に切り替えることを想定した処理である。つまり、復旧したプライマリ処理サーバに紐付く収集エージェントに対するエージェント監視は不要になるため、生存確認ファイルを削除することで、エージェント監視部２００８の監視処理対象から外すことを目的としている。
次に、Ｓ１１０２において、通信制御部２００１は、移行通知に対する受信の成否を応答として送信し、本フローチャートの処理を終了する。
【０１０９】
図１５は、収集エージェント１１が保持するエージェント情報ファイルを例示する図である。
図１６Ａ〜図１６Ｃは、図１に示す構成の場合のエージェント管理フォルダの構成例を示す図である。以下、図１６Ａ〜図１６Ｃを用いて、各処理サーバのエージェント管理フォルダの構成について、詳細に説明する。
【０１１０】
図１６Ａは、処理サーバ２０ａのエージェント管理フォルダの構成例であり、「エージェント情報管理フォルダ」直下に、エージェント情報ファイル「0001.xml」及び「0002.xml」が存在する。該エージェント情報ファイルは、図１の収集エージェント１１ａ、及び１１ｄのエージェント情報ファイルである。また、「エージェント情報管理フォルダ\セカンダリエージェント情報管理フォルダ\111.222.333.444」フォルダに、エージェント情報ファイル「0004.xml」が存在する。該エージェント情報ファイルは、図１の収集エージェント１１ｃのエージェント情報ファイルであり、収集エージェント１１ｃはＩＰアドレス「111.222.333.444」の処理サーバ２０ｃをプライマリ処理サーバとしている。
【０１１１】
図１６Ｂは、処理サーバ２０ｂのエージェント管理フォルダの構成例であり、「エージェント情報管理フォルダ」直下には、エージェント情報ファイルは存在しない。「エージェント情報管理フォルダ\セカンダリエージェント情報管理フォルダ\123.456.789.000」フォルダに、エージェント情報ファイル「0013.xml」及び「0014.xml」が存在する。該エージェント情報ファイルは、図１の収集エージェント１１ａ及び１１ｄのエージェント情報ファイルであり、収集エージェント１１ａ、１１ｄはＩＰアドレス「123.456.789.000」の処理サーバ２０ａをプライマリ処理サーバとしている。また、「エージェント情報管理フォルダ\セカンダリエージェント情報管理フォルダ\111.222.333.444」フォルダに、エージェント情報ファイル「0015.xml」が存在する。該エージェント情報ファイルは、図１の収集エージェント１１ｂのエージェント情報ファイルであり、収集エージェント１１ｂはＩＰアドレス「111.222.333.444」の処理サーバ２０ｃをプライマリ処理サーバとしている。
【０１１２】
図１６Ｃは、処理サーバ２０ｃのエージェント管理フォルダの構成例であり、「エージェント情報管理フォルダ」直下に、エージェント情報ファイル「0020.xml」及び「0021.xml」が存在する。該エージェント情報ファイルは、図１の収集エージェント１１ｂ及び１１ｃのエージェント情報ファイルである。また、セカンダリエージェントが存在しないため、「エージェント情報管理フォルダ\セカンダリエージェント情報管理フォルダ」以下は存在しない。
【０１１３】
図１７は、処理サーバ２０が保持するエージェント情報ファイルを例示する図である。
図１８は、図１に示す構成の場合の、生存確認用フォルダの構成例を示す図である。以下、図１８を用いて、各処理サーバの生存確認用フォルダの構成について、詳細に説明する。
【０１１４】
図１８（ａ）は、処理サーバ２０ａの生存確認用フォルダの構成例であり、「生存確認用フォルダ」直下に、生存確認ファイル「0001_20150901_103012.xml」及び「0002_20150901_103135.xml」が存在する。これらの生存確認ファイルは、図１の収集エージェント１１ａ、１１ｄの生存確認ファイルである。また、「生存確認用フォルダ\111.222.333.444」フォルダに、生存確認ファイル「0004_20150901_103015.xml」が存在する。該生存確認ファイルは、図１の収集エージェント１１ｃの生存確認ファイルである。
【０１１５】
図１８（ｂ）は、処理サーバ２０ｂの生存確認用フォルダの構成例であり、「生存確認用フォルダ」直下に、生存確認ファイルは存在しない。「生存確認用フォルダ\123.456.789.000」フォルダに、生存確認ファイル「0013_20150901_102500.xml」及び「0014_20150901_102500.xml」が存在する。該生存確認ファイルは、図１の収集エージェント１１ａ、１１ｄの生存確認ファイルである。また、「生存確認用フォルダ\111.222.333.444」フォルダに、生存確認ファイル「0015_20150901_102810.xml」が存在する。該生存確認ファイルは、図１の収集エージェント１１ｂの情報ファイルである。
【０１１６】
図１８（ｃ）は、処理サーバ２０ｃの生存確認用フォルダの構成例であり、「生存確認用フォルダ」直下に、生存確認ファイル「0020_20150901_102754.xml」及び「0021_20150901_102805.xml」が存在する。該生存確認ファイルは、図１の収集エージェント１１ｂ、１１ｃの生存確認ファイルである。また、セカンダリ生存確認用フォルダは存在しない。
【０１１７】
以下、本実施例において、例えば、処理サーバ２０ａが故障し、収集エージェントとの通信が出来ない状態に陥った場合を説明する。
この場合、処理サーバ２０ａをプライマリ処理サーバとして登録していた収集エージェント１１ａ、１１ｄは、セカンダリ処理サーバである２０ｂに通信を切り替える（図７）。処理サーバ２０ｂが、収集エージェント１１ａ、１１ｄのどちらかから設定情報を受信した場合（図１２のＳ９００）の動作は次のようになる。
【０１１８】
この場合、「エージェント情報管理フォルダ\セカンダリエージェント情報管理フォルダ\123.456.789.000」フォルダ下にある収集エージェントに対応する生存確認ファイルを、「生存確認用フォルダ\123.456.789.000」フォルダに生成する。その後、これらの収集エージェントに対する監視を開始する。具体的には、図１３のＳ１００７〜Ｓ１０１２を実施する。つまり、生存確認ファイル「0013_20150901_102500.xml」及び「0014_20150901_102500.xml」に対し、ファイル名に記された時刻と、現在時刻との比較を行う。このとき、「生存確認用フォルダ\111.222.333.444」フォルダ以下に対しては、監視は行わない。
【０１１９】
一方、２０ｃが故障し、収集エージェントとの通信が出来ない状態に陥った場合について説明する。この場合、処理サーバ２０ｃをプライマリ処理サーバとして登録していた収集エージェント１１ｂ、１１ｃは、それぞれのセカンダリ処理サーバである２０ｂ、２０ａに通信を切り替える。
処理サーバ２０ｂは、収集エージェント１１ｂから設定情報を受信した場合、「生存確認用フォルダ\111.222.333.444」に１１ｂの生存確認ファイル「0015_20150901_102810.xml」を生成し、監視を開始する。この際、「生存確認用フォルダ\123.456.789.000」フォルダに関しては監視を行わない。
また、処理サーバ２０ａは、収集エージェント１１ｃから設定情報を受信した場合、「生存確認用フォルダ\111.222.333.444」フォルダに１１ｃの生存確認ファイル「0004_20150901_103015.xml」を生成し、監視を開始する。
【０１２０】
以上示したように、本実施例では、収集エージェント１１は、予め、２つの処理サーバ２０に登録しておく。その際、セカンダリサーバに対しては、セカンダリである旨の情報（セカンダリフラグ）と、プライマリサーバの情報を合わせて通知する。各処理サーバ２０は、自身がセカンダリサーバとして登録されていることを認識し、プライマリサーバの情報と関連付けて、収集エージェント１１の情報を保存する。各処理サーバ２０は、セカンダリとして登録された収集エージェント１１からの通信を受けた場合、同じプライマリサーバを持つ収集エージェント１１に対して、状態監視を開始する構成について説明した。この構成により、処理サーバ２０に問題が発生した場合、収集エージェント１１の通信先を迅速に切り替え、かつ、ネットワークの不具合等の問題が発生して通信できない（又は、切り替えに失敗した）収集エージェント１１の稼働状況も正しく把握することが可能となる。即ち、フェイルオーバーによる処理サーバの切替えが発生した際にも、管理対象のネットワークデバイス（収集エージェント）からの定期的な生存確認（ハートビート）通知が途切れた場合に管理者に異常を通知する監視の仕組みを適切に動作させることができる。
【０１２１】
上記実施例では、ネットワークデバイスとして複合機やＰＣ等を用いて説明したが、これらに限定されるものではない。本発明を適用可能なネットワークデバイスには、例えば、ネットワークカメラ、ナビゲーションシステム、テレビジョン、冷蔵庫、エアーコンディショナー等のネットワーク家電等も含まれるものである。
【０１２２】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されていてもよい。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【０１２３】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【図１】
2017091037.tif 000003
【図２】
2017091037.tif 000004
【図３】
2017091037.tif 000005
【図４】
2017091037.tif 000006
【図５】
2017091037.tif 000007
【図６】
2017091037.tif 000008
【図７】
2017091037.tif 000009
【図８】
2017091037.tif 000010
【図９】
2017091037.tif 000011
【図１０】
2017091037.tif 000012
【図１１】
2017091037.tif 000013
【図１２】
2017091037.tif 000014
【図１３】
2017091037.tif 000015
【図１４】
2017091037.tif 000016
【図１５】
2017091037.tif 000017
【図１６Ａ】
2017091037.tif 000018
【図１６Ｂ】
2017091037.tif 000019
【図１６Ｃ】
2017091037.tif 000020
【図１７】
2017091037.tif 000021
【図１８】
2017091037.tif 000022