(57)【特許請求の範囲】
【請求項１】
履歴情報を送信する機能を有するエージェントが動作する複数のクライアント装置と通信する複数の履歴管理サーバーと、ファイルサーバーとを含むシステムであって、
前記ファイルサーバーは、
前記複数のクライアント装置のそれぞれで動作するエージェントごとに、該エージェントが管理対象であることを識別するための登録確認ファイルと、該エージェントの設定を含むエージェント情報が書き込まれるエージェント情報ファイルと、予備ファイルと、を管理する記憶手段を、有し、
前記複数の履歴管理サーバーのそれぞれは、
特定のエージェントのエージェント情報の書き込みの要求を受付けた場合に、書き込み先が前記ファイルサーバーかどうかを判断する第１の判断手段と、
書き込み先が前記ファイルサーバーであると判断された場合に、前記ファイルサーバーの前記記憶手段で管理される前記特定のエージェントに対応する登録確認ファイルのオープンに成功したかどうかを判断する第２の判断手段と、
前記登録確認ファイルのオープンに成功したと判断された場合に、前記書き込みが要求されたエージェント情報を、前記特定のエージェントに対応する予備ファイルに書き込む書き込み手段と、を有し、
前記書き込み手段は、前記予備ファイルに書き込まれた前記エージェント情報が読み込めた場合に、当該エージェント情報を、前記特定のエージェントに対応するエージェント情報ファイルに書き込み、
前記エージェント情報ファイルへの前記エージェント情報の書き込みの後に、前記登録確認ファイルがクローズされることを特徴とするシステム。
【請求項２】
前記書き込み手段は、前記登録確認ファイルのオープンに成功したと判断されなかった場合、前記書き込みが要求されたエージェント情報の前記予備ファイルへの書き込みを行わず、
前記書き込みの要求に対して書き込みの失敗が通知されることを特徴とする請求項１に記載のシステム。
【請求項３】
前記書き込み手段は、前記予備ファイルに書き込まれた前記エージェント情報が読み込めなかった場合に、当該エージェント情報の前記エージェント情報ファイルへの書き込みを行わないことを特徴とする請求項１または２に記載のシステム。
【請求項４】
書き込み先が前記履歴管理サーバーであると判断された場合に、前記書き込み手段は、前記書き込みが要求されたエージェント情報を、予備ファイルへの書き込みを行うことなく、新規作成したエージェント情報ファイルに書き込むことを特徴とする請求項１乃至３のいずれか１項に記載のシステム。
【請求項５】
前記ファイルサーバーで管理されたエージェント情報ファイルの読み込みの要求を受付けた際に、前記第２の判断手段により前記登録確認ファイルのオープンに成功したと判断された場合に、該エージェント情報ファイルの読み込みを行う読み込み手段を、更に有することを特徴とする請求項１乃至４のいずれか１項に記載のシステム。
【請求項６】
前記読み込み手段による前記エージェント情報ファイルの読み込みに失敗した場合に、該エージェント情報ファイルに代わって、前記予備ファイルの複製をエージェント情報ファイルとして前記ファイルサーバーの記憶手段で管理させ、
前記読み込み手段は、前記予備ファイルの複製を用いて作成されたエージェント情報ファイルの読み込みを行うことを特徴とする請求項５に記載のシステム。
【請求項７】
前記読み込み手段による前記エージェント情報ファイルの読み込みに成功した場合に、前記登録確認ファイルがクローズされることを特徴とする請求項５または６に記載のシステム。
【請求項８】
前記ファイルサーバーは前記記憶手段により、前記複数のクライアント装置のそれぞれで動作するエージェントごとに、該エージェントのステータスを識別するための生存確認ファイルをさらに管理し、
前記書き込み手段は、前記前記ファイルサーバーで管理された生存確認ファイルへの更新の要求を受付けた場合には、予備ファイルへの書き込みを行うことなく、該要求に係るエージェントの識別情報および該エージェントからの通知を受信した時間を示す情報を用いて、前記生存確認ファイルを更新することを特徴とする請求項１乃至７のいずれか１項に記載のシステム。
【請求項９】
履歴情報を送信する機能を有するエージェントが動作する複数のクライアント装置と通信する複数の履歴管理サーバーと、ファイルサーバーとを含むシステムにおける方法であって、
前記ファイルサーバーは、前記複数のクライアント装置のそれぞれで動作するエージェントごとに、該エージェントが管理対象であることを識別するための登録確認ファイルと、該エージェントの設定を含むエージェント情報ファイルと、予備ファイルと、を管理する記憶手段を、有し、
前記複数の履歴管理サーバーのそれぞれは、
特定のエージェントのエージェント情報の書き込みの要求を受付けた場合に、書き込み先が前記ファイルサーバーかどうかを判断する工程と、
書き込み先が前記ファイルサーバーであると判断された場合に、前記ファイルサーバーの前記記憶手段で管理される前記特定のエージェントに対応する登録確認ファイルのオープンに成功したかどうかを判断する工程と、
前記登録確認ファイルのオープンに成功したと判断された場合に、前記書き込みが要求されたエージェント情報を、前記特定のエージェントに対応する予備ファイルに書き込む工程と、
前記予備ファイルに書き込まれた前記エージェント情報が読み込めた場合に、当該エージェント情報を、前記特定のエージェントに対応するエージェント情報ファイルに書き込む工程と、を有し、
前記エージェント情報ファイルへの前記エージェント情報の書き込みの後に、前記登録確認ファイルがクローズされることを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置や情報処理装置などのクライアント装置上で動作するエージェントを管理する技術に関する。
【背景技術】
【０００２】
従来、課金、情報漏洩の抑止、情報漏洩者の追跡などを目的に、プリンターやＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）などが行った画像処理に関する履歴情報を収集する履歴管理システムが存在する（例えば、特許文献１）。
【０００３】
履歴管理システムは、ＭＦＰで処理され、記録されたジョブの履歴情報（ジョブ履歴）を収集する該ＭＦＰ内で動作するエージェントと、エージェントからジョブ履歴を受信して、管理する履歴管理サーバーと、から構成される。履歴管理サーバーは、収集したジョブ履歴に対して適宜変換や加工の処理を行ったり、その処理後のジョブ履歴を保管・監査するための監査システムに転送したりする。
【０００４】
また、複数の履歴管理サーバーが存在する場合には、連携する各エージェントの設定情報として、エージェントが動作するＭＦＰに関する情報などを共有フォルダー上で管理している。各履歴管理サーバーは、設定情報を用いて、管理対象とするエージェントからのジョブ履歴の受信制御や、各エージェントの稼働状況の管理などを行っている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−１８２６５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、エージェントの設定情報を共有フォルダー上でファイルに保存している場合、該設定情報の更新に係るファイルへの書き込み中に、該ファイルを管理するサーバーで予期せぬ電源断等が発生することで、そのファイルが破損して内容が失われてしまうということがある。ファイル内の設定情報が不正である場合には、履歴管理サーバーによりエージェントからのジョブ履歴の受信制御が正常に行われない、エージェントの稼働状況が不明となるといった問題が発生し得る。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために、本発明は、履歴情報を送信する機能を有するエージェントが動作する複数のクライアント装置と通信する複数の履歴管理サーバーと、ファイルサーバーとを含むシステムであって、
前記ファイルサーバーは、前記複数のクライアント装置のそれぞれで動作するエージェントごとに、該エージェントが管理対象であることを識別するための登録確認ファイルと、該エージェントの設定を含むエージェント情報が書き込まれるエージェント情報ファイルと、予備ファイルと、を管理する記憶手段を、有し、
前記複数の履歴管理サーバーのそれぞれは、特定のエージェントのエージェント情報の書き込みの要求を受付けた場合に、書き込み先が前記ファイルサーバーかどうかを判断する第１の判断手段と、書き込み先が前記ファイルサーバーであると判断された場合に、前記ファイルサーバーの前記記憶手段で管理される前記特定のエージェントに対応する登録確認ファイルのオープンに成功したかどうかを判断する第２の判断手段と、前記登録確認ファイルのオープンに成功したと判断された場合に、前記書き込みが要求されたエージェント情報を、前記特定のエージェントに対応する予備ファイルに書き込む書き込み手段と、を有し、前記書き込み手段は、前記予備ファイルに書き込まれた前記エージェント情報が読み込めた場合に、当該エージェント情報を、前記特定のエージェントに対応するエージェント情報ファイルに書き込み、前記エージェント情報ファイルへの前記エージェント情報の書き込みの後に、前記登録確認ファイルがクローズされることを特徴とする。
【発明の効果】
【０００８】
本発明に依れば、共有フォルダー上のファイルでエージェントの設定情報を管理する場合であっても、そのファイルが破損して内容が失われてしまうといったことを防止することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明におけるシステム構成の例を示す図
【図２】情報処理装置のハードウェア構成例を示す図
【図３】履歴管理サーバーのソフトウェア構成例を示す図
【図４】エージェント管理用のファイルの例を示す図
【図５】実施例１のエージェント情報ファイルの書き込み処理を説明するためのフローチャート
【図６】実施例１のエージェント情報ファイルの読み込み処理を説明するためのフローチャート
【図７】実施例１の生存確認ファイルに対する処理を説明するためのフローチャート
【図８】実施例２の要求処理部による処理を説明するためのフローチャート
【図９】実施例２のエージェント情報ファイルの読み込み処理を説明するためのフローチャート
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１１】
（実施例１）
図１は、本発明におけるネットワークシステム全体の構成例を示す。ネットワークシステム内には、履歴管理システム１００、およびそれと連携する監査システム１３１などが含まれている。
【００１２】
履歴管理システム１００は、複数台の画像処理装置としてのＭＦＰ１１１と、複数台の履歴管理サーバー１０１とが、負荷分散装置１５１を介して接続されている。また、ファイルサーバー１０２上の共有フォルダーが、複数台の履歴管理サーバー１０１からアクセスされる。なお、履歴管理サーバーに対して履歴情報を送信するエージェントが動作するクライアント装置の例として、本システムではＭＦＰ１１１を挙げている。しかしながら、本発明に適用できるクライアント装置としては、他にも、ネットワークカメラやデジタル医療機器などの画像処理装置や、スマートホンなどの携帯機器、デスクトップコンピュータ、家電製品、体重や血圧を計測する計測機器などがある。
【００１３】
履歴管理サーバー１０１は、ＭＦＰ１１１などのクライアント装置で動作するエージェントから受信した履歴情報を管理する。例えば、ＭＦＰ１１１で記録された画像処理（スキャンやプリントなど）に係るジョブの実行履歴を示すジョブ履歴を、履歴情報として管理する。ジョブ履歴は、ジョブの種別に応じて入力または出力される画像データと、該ジョブの実行日時や実行指示したユーザー情報などを含む属性情報などで構成される。さらに、履歴管理サーバー１０１は、必要に応じて、受信した履歴情報に含まれる属性情報の整形や、画像データの解像度変換などの処理を行う。そして、履歴管理サーバー１０１は、処理後の履歴情報を連携する監査システム１３１にエクスポートする。また、履歴管理サーバー１０１は、管理対象となるエージェントの設定値やステータスなどを示す設定情報をファイルサーバー１０２で管理する。
【００１４】
ファイルサーバー１０２は、ネットワークを介して、複数の履歴管理サーバー１０１からアクセスすることが可能なように構成されている。とくに、ファイルサーバー１０２は、各ＭＦＰ１１１上で動作しているエージェントの設定情報などを、ファイルとして共有フォルダー上に保持している。以降、特に断りがない場合、共有フォルダーと記載した場合は、ファイルサーバー１０２上の共有フォルダーを指すものとする。なお、ファイルサーバー１０２は、履歴管理サーバー１０１のいずれかが包含していても良い。
【００１５】
監査システム１３１は、履歴管理サーバー１０１からエクスポートされた履歴情報を保管し、監査するための検索の機能を備える。監査システム１３１は、履歴情報の監査専用に仕立てられたシステムであっても良いし、一般的なデータウェアハウスシステムや文書管理システムなどであっても良い。
【００１６】
負荷分散装置１５１は、各ＭＦＰ１１１のエージェントから履歴管理サーバー１０１に対する接続を振り分け、複数の履歴管理サーバー１０１間で負荷が分散されるようにする。負荷分散装置１５１は、必要に応じて設置されるものとする。
【００１７】
ＭＦＰ１１１では、ＭＦＰ１１１内で記録された履歴情報を収集して、その情報を定期的に負荷分散装置１５１を経由して履歴管理サーバー１０１に送信する機能を持つエージェントが動作している。エージェントは、自身のステータスを含む稼働情報などを外部に送信する機能も備え、それら機能はＭＦＰ１１１にインストールされた専用のエージェントプログラムによって実現されている。エージェントは、履歴情報の送信タイミングについて、未送信の履歴情報のサイズや時間帯などを条件にして、不定期に送信するといった機能も有している。また、送信すべき種類の履歴情報やその内容についても、任意に指定して送信対象とすることが可能である。また、各ＭＦＰ１１１で動作するエージェント（プログラム）には、それぞれユニークな識別情報（エージェントＩＤ）が割り当てられる。
【００１８】
図２は、履歴管理サーバー１０１やファイルサーバー１０２などの情報処理装置のハードウェア構成例を示すブロック図である。
【００１９】
ＣＰＵ２１１を含む制御部２１０は、サーバー機の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２やＨＤＤ２１４に記憶された制御プログラムを読み込んで、入力や出力といった各種制御処理や、演算処理を実行する。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリー、ワークエリアなどの一時記憶領域として用いられる。ＨＤＤ２１４は、ジョブ履歴や、後述する本発明に特有な処理を実現するための各種プログラムなどを記憶する。操作入力Ｉ／Ｆ２１５は、接続されたキーボードやマウスなどの操作デバイスからの信号入力を受け付ける。表示出力Ｉ／Ｆ２１６は、画面表示用のディスプレイ等への信号出力を行う。ネットワークＩ／Ｆ２１７は、制御部２１０をネットワークに接続し、ネットワーク上の別の装置との情報の送受信を行う。なお、２２０は、制御部２１０内の各ブロックを接続するバスである。
【００２０】
図３は、履歴管理サーバー１０１のソフトウェア構成例を示すブロック図である。
【００２１】
要求処理部３０１は、ＭＦＰ１１１上で動作するエージェントからのジョブ履歴の送信などの処理要求を受信し、必要に応じた処理を実行する。例えば、エージェントからジョブ履歴を受信した場合、ジョブ履歴に含まれる画像データに対し、ＯＣＲによるテキスト抽出や、画像形式変換および解像度変換などの処理を行う。また、画像データのサムネイルを作成したり、属性情報を整形したりすることも可能である。
【００２２】
さらに、要求処理部３０１は、監査システム１３１に対して、ジョブ履歴を、その履歴の送信元であるエージェントの設定情報とともに送信する。ジョブ履歴は、履歴管理サーバー１０１に対する事前設定に従い、ＨＤＤ２１４や外部のファイルサーバーなどにエクスポートするようにしても良い。
【００２３】
サーバー管理部３０２は、予め設定された間隔で、定期的にジョブ履歴に対する処理の中断の検出や、エージェントの停止検出を行う。サーバー管理部３０２は、アクセス部３１１を介して図４で後述する生存確認ファイル４０４を参照することで、各ＭＦＰ１１１上で動作するエージェントのそれぞれが停止していないかを確認する。サーバー管理部３０２は、確認の結果、機能停止中のエージェントを検出した場合に、生存確認ファイル４０４の更新などといった処理を行う。
【００２４】
ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）部３０３は、履歴管理サーバーやエージェントの状態を確認したり、設定値を変更したりするための操作画面などをシステム管理者などに提供する。例えば、システム管理者は、ＵＩ部３０３が提供する操作画面を介して、図４で後述するエージェント情報ファイル４０２に含まれる設定値を更新できる。本発明では、ＵＩ部３０３は、ウェブアプリケーションとして実装され、ウェブブラウザー上に操作画面を提供するものとするが、操作画面の提供方法はその方法に限らないものとする。
【００２５】
通知部３０４は、システム管理者によりＵＩ部３０３を介して予め設定されたメールアドレスなどの宛先情報に対し、必要に応じて、システム内で検出されたエラー等をメールで通知する。通知方法はメール以外にも、前述したウェブブラウザー上への通知画面の提供なども可能である。
【００２６】
アクセス部３１１は、共有フォルダー上で保持されたエージェント管理用のファイルに対して、作成、削除、更新（書き込み）、参照（読み込み）といった各種ファイルアクセスを行う。
【００２７】
図４は、履歴管理サーバー１０１がエージェントを管理するために共有フォルダー上に作成するファイル群の一例である。エージェント毎に、これらのファイルが作られるものとする。
【００２８】
登録確認ファイル４０１は、“エージェントＩＤ：０００１”で識別されるエージェントが履歴管理サーバーに管理対象として登録されていることを確認するために用いられる。登録確認ファイル４０１は、ファイル名にエージェントＩＤのみを持ち、その中身は空である。登録確認ファイル４０１は、エージェントが管理対象として登録されるときに作成され、削除されるまで更新されることはないものとする。ここで、要求処理部３０１は、基本的には、管理対象として登録されたエージェントから送信されてきた履歴情報に対して適宜処理を行うものとする。また、本実施例では、登録確認ファイル４０１は、アクセス部３１１が、同一エージェントのエージェント情報ファイル４０２や予備ファイル４０３にアクセスする場合の排他制御にも用いられる。
【００２９】
エージェント情報ファイル４０２は、エージェントの設定およびステータスを管理するためのファイルである。エージェント情報ファイル４０２は、ファイル名にエージェントＩＤと、エージェント情報ファイルであることを示す文字列を持つ。特定の設定値やステータスを持つファイルを見つける際の利便性のために、エージェント情報ファイル内の一部の情報をファイル名として含めてもよい。エージェント情報ファイル４０２は、エージェントが登録されるときに作成され、その後はエージェントの設定値更新やステータス更新の処理に応じて更新される。
【００３０】
エージェント情報ファイル４０２は、本実施例ではＸＭＬ形式のファイルとするが、ＣＳＶ等の形式であっても良い。なお、エージェント情報ファイル４０２は、処理の都合上、共有フォルダー上ではなく、履歴管理サーバー１０１内に必要になることがある。この場合、アクセス部３１１は、共有フォルダーではなく履歴管理サーバー１０１内で、エージェント情報ファイル４０２の書き込み、読み込み、削除を行う。
【００３１】
予備ファイル４０３は、エージェント情報ファイル４０２が破損した場合の復旧などを目的に用意されたファイルである。通常、エージェント情報ファイル４０２に書き込むべき内容と、同様の内容が書き込まれる。このため、予備ファイル４０３の形式は、エージェント情報ファイル４０２の形式に従うものとする。予備ファイル４０３のファイル名については、エージェント情報ファイル４０２と同様に、エージェントＩＤと、予備ファイルであることを示す文字列などを持つ。予備ファイル４０３は、エージェントが登録されるときに作成され、その後は共有フォルダー上のエージェント情報ファイル４０２の更新時に更新される。
【００３２】
生存確認ファイル４０４は、履歴管理サーバー１０１が、登録済みのエージェントが停止していないか否かを判断するために用いられる。生存確認ファイル４０４は、各エージェントから生存通知が初めて来たときにエージェント毎に共有フォルダー上に作成される。その後は、エージェントから送信されてくる生存通知や、サーバー管理部３０２による機能停止の検出に応じて更新される。ここで、生存通知は、エージェントから送信されてくるステータス情報の１つで、エージェントが稼働していることを履歴管理サーバー１０１に伝えるために定期的に（例えば５分間隔で）送られてくる通知である。
【００３３】
生存確認ファイル４０４は、ファイル名に生存通知日時、停止検出回数、エージェントＩＤを持ち、ファイルの中身は空とする。生存通知日時は、そのファイルに対応するエージェントからの最新の生存通知を受信した時間などを示す文字列（年月日時秒）である。停止検出回数は、サーバー管理部３０２が、そのエージェントを停止中と判断した回数であり、生存通知を受信するたびに、要求処理部３０１によって０に更新される。また、停止検出回数は、サーバー管理部３０２が停止中と判断した場合に、インクリメントされる。なお、停止検出回数が予め設定された回数に達した場合、サーバー管理部３０２は、通知部３０４を介して、所定の宛先に対してエージェントの停止を通知する。
【００３４】
例えば、生存通知日時が「２０１５年６月１５日２０時８分４３秒」、停止検出回数が「０」、エージェントＩＤが「０００１」の生存確認ファイル４０４のファイル名は、「２０１５０６１５２００８４３＿０＿０００１」となる。
【００３５】
なお、図４に示す各ファイルは、ＵＩ部３０３からエージェントの登録解除の操作が行われた場合に、そのエージェントのものについて、アクセス部３１１を介して削除されるものとする。
【００３６】
次に、図５で示すフローチャートを用いて、アクセス部３１１によるエージェント情報ファイル４０２への書き込み処理について説明する。図５のフローチャートに示す各ステップは、履歴管理サーバー１０１のＣＰＵ２１１がＲＯＭ２１２またはＨＤＤ２１４に記憶されているアクセス部３１１を実現するプログラムを実行することで実現される。また、ＣＰＵ２１１は、必要に応じて記憶領域としてＲＡＭ２１３やＨＤＤ２１４を利用する。以降で図示するフローチャートについても同様である。
【００３７】
図５の処理は、要求処理部３０１やサーバー管理部３０２、ＵＩ部３０３から、エージェント情報ファイル４０２の書き込み先のパスおよびファイル名や書き込むエージェント情報の内容を引数として呼び出されるものとする。具体的には、要求処理部３０１がエージェントからのエージェント登録要求やステータス通知を受信した際、ＵＩ部３０３で設定変更がなされた際、等に呼ばれる処理である。
【００３８】
Ｓ５０１において、アクセス部３１１は、書き込み先が共有フォルダー上のファイルか否かを判断する。共有フォルダーではない、すなわち、履歴管理サーバー１０１のローカルディスク上のフォルダーである場合にはＳ５０２に進み、共有フォルダーである場合にはＳ５０３に進む。
【００３９】
Ｓ５０２において、アクセス部３１１は、履歴管理サーバー１０１上の、引数で渡された書き込み先に、引数で渡されたエージェント情報の内容をエージェント情報ファイルとして書き込む。通常、この書き込みは、ファイルを新規作成することになる。また、エージェント情報の内容はエージェントに対する設定値およびステータスなどを示す。その後、本処理は終了する。
【００４０】
Ｓ５０３において、アクセス部３１１は、登録確認ファイル４０１を排他モードでオープンする。これは、登録確認ファイル４０１を排他モードでオープンしている間、他の履歴管理サーバー１０１からの同一のエージェント情報ファイル４０２、予備ファイル４０３へのアクセスを制限させるためである。ただし、排他の方法はこれに限るものではなく、これとは別な方法で排他を制御するようにしても良いし、排他が不要な場合は排他制御しなくても良い。Ｓ５０４において、アクセス部３１１は、Ｓ５０３の排他モードでのオープンが成功したか否かを判断する。排他モードでのオープンが成功した場合にはＳ５０５に進み、排他モードでのオープンが失敗した場合にはＳ５１３に進む。なお、排他モードでのオープンに失敗した場合は、所定の期間だけ待機した後に、再度排他モードでのオープンを試行するように設計することも可能である。
【００４１】
Ｓ５０５において、アクセス部３１１は、引数で渡されたエージェント情報の内容を共有フォルダー上の予備ファイル４０３に書き込む。このエージェント情報の内容は、エージェントに対する設定値およびステータスなどを示す。予備ファイル４０３の書き込み先のパスとファイルは、引数として渡された対応するエージェント情報ファイル４０２のパスとファイル名から生成するものとする。このとき、書き込み先の予備ファイルがない場合はそのファイルを新規作成し、書き込み先の予備ファイルが既に存在する場合には、そのファイルの内容を上書き更新する。ここで、書き込み先の予備ファイルがない場合とは、エージェントの（新規）登録に際して、本処理が実行されて、エージェント情報を書き込む場合である。
【００４２】
Ｓ５０６において、アクセス部３１１は、Ｓ５０５で予備ファイル４０３に対してエージェント情報が正しく書き込めたか否かを検証する。検証は、例えば、予備ファイル４０３がＸＭＬ形式で読み込めるか、エージェント情報ファイ４０２とファイルサイズが等しいかなどを確認することで行う。Ｓ５０７において、アクセス部３１１は、Ｓ５０６の検証結果が問題ないかどうかを判断する。検証結果として書き込みが成功しており、問題がないと判断された場合にはＳ５０８に進み、問題があったと判断された場合にはＳ５１２に進む。
【００４３】
Ｓ５０８において、アクセス部３１１は、引数で渡されたエージェント情報の内容を共有フォルダー上のエージェント情報ファイル４０２として書き込む。ここで書き込む内容は、Ｓ５０５と同じ内容である。このとき、書き込み先として指定されたファイルがない場合は指定されたファイルを新規作成し、指定されたファイルが既に存在する場合にはそのファイルを上書き更新する。ここで、書き込み先のエージェント情報ファイルがない場合とは、エージェントの（新規）登録に際して、本処理が実行されて、エージェント情報を書き込む場合である。Ｓ５０９において、アクセス部３１１は、Ｓ５０８でのエージェント情報ファイル４０２への書き込みについてＳ５０６と同様に検証する。Ｓ５１０において、アクセス部３１１は、Ｓ５０９の検証結果が問題ないかどうかを判断する。検証結果として書き込みが成功しており、問題がないと判断された場合にはＳ５１１に進み、問題があったと判断された場合にはＳ５１２に進む。
【００４４】
Ｓ５１１において、アクセス部３１１は、登録確認ファイル４０１をクローズして排他を解除する。その後、本処理を終了する。Ｓ５１２において、アクセス部３１１は、Ｓ５１１と同様に、登録確認ファイル４０１をクローズして排他を解除する。Ｓ５１３において、アクセス部３１１は、呼び出し元にエージェント情報のファイル書き込みの失敗を示す例外を通知して、本処理を終了する。
【００４５】
次に、図６で示すフローチャートを用いてアクセス部３１１が、エージェント情報ファイル４０２を読み込む処理について説明する。
【００４６】
図６の処理は、要求処理部３０１やサーバー管理部３０２、ＵＩ部３０３から、読み込み元のパスおよびファイル名を引数として呼び出されるものとする。具体的には、要求処理部３０１がエージェントからのステータス通知を受信した際、ＵＩ部３０３で設定やステータスを表示する際、等に呼ばれる処理である。
【００４７】
Ｓ６０１において、アクセス部３１１は、読み込み対象が共有フォルダー上のファイルか否かを判断する。共有フォルダーではない、すなわち、履歴管理サーバー１０１のローカルディスク上のフォルダーである場合にはＳ６０２に進み、共有フォルダーである場合にはＳ６０５に進む。
【００４８】
Ｓ６０２において、アクセス部３１１は、履歴管理サーバー１０１上の、本処理の呼び出しの際に指定された引数が示すエージェント情報ファイルを読み込む。そして、アクセス部３１１は、読み込んだエージェント情報ファイル４０２の内容を呼び出し元に返して、本処理を終了する。
【００４９】
Ｓ６０５において、アクセス部３１１は、Ｓ５０３と同様に、登録確認ファイル４０１を排他モードでオープンする。Ｓ６０６において、アクセス部３１１は、Ｓ６０５の排他モードでのオープンが成功したか否かを判断する。排他モードでのオープンが成功した場合にはＳ６０７に進み、排他モードでのオープンが失敗した場合にはＳ６１４に進む。なお、排他モードでのオープンに失敗した場合は、所定の期間だけ待機した後に、再度排他モードでのオープンを試行するように設計することも可能である。
【００５０】
Ｓ６０７において、アクセス部３１１は、共有フォルダー上の、本処理の呼び出しの際に指定された引数が示すエージェント情報ファイル４０２を読み込む。Ｓ６０８において、アクセス部３１１は、Ｓ６０７の読み込みが失敗したか否かを判断する。この判断は、例えば、読み込んだ内容がＸＭＬ形式になっているかなどで行われる。読み込みが成功だった場合にはＳ６０９に進み、読み込みが失敗だった場合にはＳ６１０に進む。
【００５１】
Ｓ６１０において、アクセス部３１１は、本処理の呼び出しの際に指定された引数が示すエージェント情報ファイルに対応する予備ファイル４０３を複製（コピー）して、既存のエージェント情報ファイル４０２と置換する。ここでの処理では、複製したファイルに対して、既存のエージェント情報ファイル４０２と同名のファイル名を設定して、ファイルの上書きが行われている。予備ファイル４０３の内容を既存のエージェント情報ファイル４０２に対して書き込むことで本ステップを実現してもよい。Ｓ６１１において、アクセス部３１１は、Ｓ６１０で予備ファイル４０３のコピーを用いて作成されたエージェント情報ファイル４０２を読み込む。
【００５２】
Ｓ６１２において、アクセス部３１１は、Ｓ６１１の読み込みが失敗したか否かを、Ｓ６０８と同様に判断する。読み込みが成功だった場合にはＳ６０９に進み、読み込みが失敗だった場合にはＳ６１３に進む。
【００５３】
Ｓ６０９において、アクセス部３１１は、登録確認ファイル４０１をクローズして排他を解除する。そして、アクセス部３１１は、読み込んだエージェント情報ファイル４０２の内容を呼び出し元に返して、本処理を終了する。
【００５４】
Ｓ６１３において、アクセス部３１１は、登録確認ファイル４０１をクローズして排他を解除する。そして、Ｓ６１４において、アクセス部３１１は、呼び出し元にエージェント情報ファイルの読み込みの失敗を示す例外を返して、本処理を終了する。
【００５５】
次に、図７で示すフローチャートを用いて、アクセス部３１１による生存確認ファイル４０４に対するアクセスに係る処理について説明する。
【００５６】
図７（Ａ）は、アクセス部３１１による生存確認ファイル４０４の読み込み処理を説明するためのフローチャートである。本処理は、要求処理部３０１やサーバー管理部３０２から、エージェントＩＤを引数として呼び出されるものとする。具体的には、エージェントからの生存通知を受信した際に、サーバー管理部３０２がエージェントの停止検出を行う際、などに呼ばれる処理である。
【００５７】
Ｓ７０１において、アクセス部３１１は、引数で指定されたエージェントＩＤの生存確認ファイル４０４のファイル名を読み込む。そして、Ｓ７０２において、アクセス部３１１は、読み込んだファイル名の生存通知日時と停止検出回数の部分を解析して、その情報を呼び出し元に返して本処理を終了する。なお、Ｓ７０２において、アクセス部３１１は、呼び出し元にファイル名をそのまま返してもよい。
【００５８】
図７（Ｂ）は、アクセス部３１１による生存確認ファイル４０４への書き込み処理を説明するためのフローチャートである。本処理は、要求処理部３０１やサーバー管理部３０２から、エージェントＩＤ、生存通知日時、停止検出回数を引数として呼び出されるものとする。具体的には、要求処理部３０１がエージェントからの生存通知を受信した際、サーバー管理部３０２がエージェントの停止検出を行ってそのエージェントを停止していると判断した際、等に呼ばれる処理である。
【００５９】
Ｓ７１１において、アクセス部３１１は、引数で渡されたエージェントＩＤ、生存通知日時、停止検出回数から、生存確認ファイル４０４の新たなファイル名を作成する。
【００６０】
Ｓ７１２において、アクセス部３１１は、共有フォルダー上に、引数で渡されたエージェントＩＤを含むファイル名が設定された生存確認ファイル４０４を検索する。検索の結果、該当するファイルが見つかった場合にはＳ７１３に進み、存在しない場合にはＳ７１５に進む。
【００６１】
Ｓ７１３において、アクセス部３１１は、Ｓ７１２で見つかった生存確認ファイル４０４のファイル名を、Ｓ７１１で作成したファイル名に変更する。Ｓ７１４でファイル名の変更に成功した場合には本処理を終了し、失敗した場合にはＳ７１３に戻り、ファイル名の変更を再度、試行する。
【００６２】
Ｓ７１５において、アクセス部３１１は、Ｓ７１１で作成したファイル名が設定された生存確認ファイルを新規に作成し、本終了する。
【００６３】
なお、本処理で説明した生存確認ファイル４０４の更新に際しては、図５、６などのエージェント情報ファイル４０２への操作の場合と異なり、予備ファイル４０３に相当する復旧用のファイルを用意しない。
【００６４】
以上説明したように、本実施例によれば、共有フォルダー上のエージェント情報ファイル４０２が壊れた場合には、予備ファイル４０３からその内容を復元することができる。
【００６５】
また、エージェント情報ファイル４０２の書き込み先（具体的には、履歴管理サーバー１０１）によっては、予備ファイル４０３への書き込みを行わないことで、冗長性が不要な場合の処理の負荷を軽減することができる。これは、共有フォルダー上のファイルはマスターとして保護すべきであるのに対し、履歴管理サーバー１０１上のファイルは壊れたとしても、履歴情報の管理が滞るような致命的な問題にはならないためである。
【００６６】
なお、図５、６におけるエージェント情報ファイル４０２に対する処理と予備ファイル４０３に対する処理とを入れ替えても良い。この場合、図５の処理はエージェント情報ファイル４０２に先に書き込みを行った後、予備ファイル４０３に書き込みを行うようになる。その場合、エージェント情報ファイル４０２が先に更新されているため、万が一予備ファイル４０３の更新ができなくても、図６の処理で最新の情報をエージェント情報ファイル４０２から読み込むことができる。
【００６７】
また、Ｓ６０７でエージェント情報ファイル４０２と予備ファイル４０３の更新日時を比較し、更新日時が新しい方のファイルの内容を読み込むようにしても良い。
【００６８】
また、Ｓ５０７で予備ファイル４０３の検証において問題があった場合、エージェント情報の内容に関して冗長性が失われたことになる。このため、Ｓ５０７で予備ファイル４０３の検証において問題があった場合、エージェント情報ファイル４０２から予備ファイル４０３を復元するようにしても良い。
【００６９】
同様に、Ｓ５０７で予備ファイル４０３の検証で問題があった場合、エージェント情報の内容に関して冗長性が失われたことになる。このため、以下のようにしても良い。
【００７０】
予備ファイル４０３への書き込みの際に、ファイル名に作成日時を表す文字列を付加してファイル名が異なるようにする。そして、Ｓ５０７で書き込んだ予備ファイル４０３の検証で問題がなかった場合、最新の作成日時の文字列を持つファイルのみを残して古い予備ファイル４０３を削除する。また、Ｓ５０７で書き込んだ予備ファイル４０３の検証で問題があった場合は、その際に書き込んだファイルを削除する。エージェント情報ファイル４０２を復元する場合には、最新の作成日時の文字列を持つ予備ファイル４０３を使用する。これにより、予備ファイル４０３への書き込みが正しく行われなくても、最後に正しく書き込むことができた予備ファイル４０３が残るため、エージェント情報の内容に関して冗長性が失われずに済む。
【００７１】
（実施例２）
実施例２では、エージェントから定期的に送られてくる情報で、永続的な管理が不要な情報によるエージェント情報ファイルへの書き込みに際しては、予備ファイルへの書き込みを省略する。よって、本実施例によれば、履歴管理サーバー１０１のアクセス部３１１によるファイルへの書き込み処理の負荷を低減することができる。なお、本実施例については、実施例１と重複する部分の説明は省略し、差分のみを説明する。
【００７２】
本実施例において、予備ファイルへの書き込みが省略される情報としては、エージェントから定期的に送信されてくるステータス情報を例に挙げる。エージェントのステータスは、例えば、エージェントが動作するクライアント装置のディスク空き容量不足、ディスク空き容量を示す数値情報、未送信のジョブ履歴の件数などがある。本実施例におけるエージェントは、このようなステータスを予め設定された間隔（例えば５分など）で、定期的に履歴管理サーバー１０１の要求処理部３０１に送信してくる。また、エージェントは、ステータスとは別に、ＭＦＰ１１１上で行われたエージェント自身の設定変更の内容を履歴管理サーバー１０１の要求処理部３０１に送信してくる。
【００７３】
図８、９で示すフローチャートを用いて、実施例２の履歴管理サーバー１０１によるエージェント情報の更新処理について説明する。なお、図８、９のフローチャートに示す各ステップは、履歴管理サーバー１０１のＣＰＵ２１１がＲＯＭ２１２またはＨＤＤ２１４に記憶されている要求処理部３０１を実現するプログラムを実行することで実現される。また、ＣＰＵ２１１は、必要に応じて記憶領域としてＲＡＭ２１３やＨＤＤ２１４を利用する。
【００７４】
図８（Ａ）は、要求処理部３０１によるエージェント情報の更新処理を示す。
【００７５】
Ｓ８０１において、要求処理部３０１は、エージェントから受信した要求に含まれるエージェント情報をファイルとしてローカルに書き出す。Ｓ８０２において、要求処理部３０１は、Ｓ８０１で書き出されたファイルを、アクセス部３１１を介してエージェント情報ファイルとして読み込む。この処理の詳細は、図６の処理と同じである。
【００７６】
Ｓ８０３において、要求処理部３０１は、受信した要求がエージェントのステータスの更新かどうかを判断する。ステータスの更新である場合にはＳ８０４に進み、ステータスの更新ではない、すなわち、エージェントの設定の更新である場合にはＳ８０５に進む。その後、本処理が終了する。
【００７７】
図８（Ｂ）は、履歴管理サーバー１０１における、前述のＳ８０４のエージェントのステータス更新処理の詳細を示す。
【００７８】
Ｓ８１０において、要求処理部３０１は、アクセス部３１１を介して共有フォルダー上のエージェント情報ファイルを読み込み、その内容を受け取る。このステップの詳細について、図９を用いて説明する。
【００７９】
図９で示すフローチャートを用いて、アクセス部３１１によるエージェント情報ファイルの読み込む処理について説明する。
【００８０】
なお、図９は、図６のＳ６１０が、Ｓ９０１からＳ９０３になる点だけが図６とは異なる。そのため、図６と同様なステップについては、図６と同一な符号をつけてその説明は省略し、Ｓ９０１からＳ９０３についてのみ説明する。
【００８１】
Ｓ９０１において、アクセス部３１１は、読み込みの対象となるエージェント情報ファイル４０２に対応する予備ファイル４０３を読み込む。Ｓ９０２において、アクセス部３１１は、Ｓ９０１で読み込んだ予備ファイル４０３の内容であるエージェント情報におけるステータスを、予備ファイル４０３から復元されたことを示すステータス情報（復元ステータス）で、更新する。これは、本実施例では、予備ファイル４０３の内容に記載されるステータスは、エージェントの最新のステータスとは異なる場合があるため、要求処理部３０１が予備ファイル４０３で復元されたことを検出できるようにするための処理である。Ｓ９０３において、アクセス部３１１は、Ｓ９０２で更新したエージェント情報の内容を、読み込み元のエージェント情報ファイル４０２として書き込む。これにより、ステータス以外は予備ファイル４０３の内容が復元されることになる。
【００８２】
図８（Ｂ）の説明に戻る。
【００８３】
Ｓ８１４において、要求処理部３０１は、更新すべきステータスを抽出する。具体的には、Ｓ８０２で読み込んだエージェント情報と、Ｓ８１０で読み込んだエージェント情報のステータスを比較し、Ｓ８０２で読み込んだエージェント情報にだけあるステータスを抽出する。Ｓ８１５において、要求処理部３０１は、Ｓ８１４で抽出されたステータスがある場合には、それをシステム管理者等に通知する必要があると判断してＳ８１６に進む。一方、Ｓ８１４で抽出されたステータスがない場合には通知が不要と判断して、Ｓ８１９に進む。
【００８４】
Ｓ８１６において、要求処理部３０１は、Ｓ８１０で読み込んだエージェント情報ファイルの内容の中に、復元ステータスがあるかどうかを判断する。復元ステータスがある場合にはＳ８１８に進み、復元ステータスがない場合にはＳ８１７に進む。Ｓ８１７において、要求処理部３０１は、Ｓ８１４で抽出されたステータスを示すメッセージを含む通知を、通知部３０４を介して予め設定された宛先（システム管理者宛て）に、電子メールなどで送信する。
【００８５】
Ｓ８１８において、要求処理部３０１は、予備ファイル４０３を用いたエージェント情報の復元によりエージェントの最新のステータスが不明であることを示すメッセージを含む通知を、通知部３０４を介して予め設定された宛先に送信する。
【００８６】
Ｓ８１９において、要求処理部３０１は、Ｓ８１０で読み込んだエージェント情報におけるステータスを、Ｓ８０２で読み込んだエージェント情報におけるステータスで更新し、ローカルにファイルとして書き出す。
【００８７】
Ｓ８２０において、アクセス部３１１は、Ｓ８１９で書き出したファイルに含まれるエージェント情報を、共有フォルダー上のエージェント情報ファイルに書き込む。Ｓ８２０の処理の詳細は、図５において、Ｓ５０５からＳ５０７の処理を除いたものであり、その説明は省略する。
【００８８】
図８（Ｃ）は、履歴管理サーバー１０１における、前述のＳ８０５のエージェントの設定更新処理の詳細を示す。
【００８９】
Ｓ８３０において、要求処理部３０１は、アクセス部３１１を介して共有フォルダー上のエージェント情報ファイルを読み込み、その内容を受け取る。このステップの詳細は図９で前述した通りである。
【００９０】
Ｓ８３１において、要求処理部３０１は、前述のＳ８１６と同様の判断を行う。復元ステータスがある場合にはＳ８３２に進み、復元ステータスがない場合にはＳ８３３に進む。Ｓ８３２において、予備ファイル４０３を用いたエージェント情報の復元によりエージェントの最新のステータスが不明であることを示すメッセージを含む通知を、通知部３０４を介して予め設定された宛先に送信する。Ｓ８３３において、要求処理部３０１は、Ｓ８３０で読み込んだエージェント情報の設定内容を、Ｓ８０２で読み込んだエージェント情報の内容で更新する。
【００９１】
Ｓ８３４において、アクセス部３１１は、Ｓ８３３で更新したエージェント情報を、アクセス部３１１を介してエージェント情報ファイルに書き込む。Ｓ８３４の処理の詳細は、図５に示す処理と同様である。
【００９２】
以上のように、実施例２では、エージェントのステータスを更新する場合には、Ｓ８２０において、予備ファイル４０３への書き込みと検証を行わない。これにより、ファイル更新の負荷を軽減することができる。
【００９３】
なお、本実施例では、ステータスをクリアして復元ステータスのみとする処理を、エージェント情報ファイル４０２を予備ファイル４０３から復旧する際に行ったが、予備ファイル４０３を作成する際に行っても良い。
【００９４】
（他の実施例）
本発明は、上述した実施形態を適宜組み合わせることにより構成された装置あるいはシステムやその方法も含まれるものとする。
【００９５】
ここで、本発明は、上述した実施形態の機能を実現する１以上のソフトウェア（プログラム）を実行する主体となる装置あるいはシステムである。また、その装置あるいはシステムで実行される上述した実施形態を実現するための方法も本発明の一つである。また、そのプログラムは、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給され、そのシステム或いは装置の１以上のコンピュータ（ＣＰＵやＭＰＵ等）によりそのプログラムが読み出され、実行される。つまり、本発明の一つとして、さらにそのプログラム自体、あるいは該プログラムを格納したコンピュータにより読み取り可能な各種記憶媒体も含むものとする。また、上述した実施形態の機能を実現する回路（例えば、ＡＳＩＣ）によっても、本発明は実現可能である。
【符号の説明】
【００９６】
１０１  履歴管理サーバー
１０２  ファイルサーバー
１１１  ＭＦＰ
【図１】
0006486227.tif 000002
【図２】
0006486227.tif 000003
【図３】
0006486227.tif 000004
【図４】
0006486227.tif 000005
【図５】
0006486227.tif 000006
【図６】
0006486227.tif 000007
【図７】
0006486227.tif 000008
【図８】
0006486227.tif 000009
【図９】
0006486227.tif 000010