(57)【要約】【課題】イベントログのバッファリング処理において、不揮発性の記憶領域へのアクセス頻度を低減しつつ、揮発性の記憶領域と不揮発性の記憶領域とをより適切に併用する技術を提供する。【解決手段】データ構造化モジュール４０５は、ＭＦＰ１２０において行われる処理に関連して発生するデータを、イベントログとして収集する。バッファ制御モジュール４０７は、収集されたデータを、揮発性の記憶領域（メモリ領域）に保存した場合の当該メモリ領域内のデータの保存量が、当該メモリ領域に対して設定された保存上限を超えるか否かを判定する。バッファ制御モジュール４０７は、保存量が保存上限を超えないと判定した場合には、収集されたデータをメモリ領域に保存し、保存量が保存上限を超えると判定した場合には、当該データを不揮発性の記憶領域（不揮発領域）に保存することで、当該データをイベントログとしてバッファＤＢ４０９にバッファリングする。【選択図】図４
2019152901.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
前記情報処理装置において行われる処理に関連して発生するデータを収集する収集手段と、
前記収集手段によって収集されたデータを揮発性の第１記憶領域に保存した場合の前記第１記憶領域内のデータの保存量が、前記第１記憶領域に対して設定された保存上限を超えるか否かを判定する第１判定手段と、
前記第１判定手段によって、前記保存量が前記保存上限を超えないと判定された場合には、前記収集されたデータを前記第１記憶領域に保存し、前記保存量が前記保存上限を超えると判定された場合には、当該データを不揮発性の第２記憶領域に保存することによって、当該データを外部のサーバ装置への送信対象のイベントログとしてバッファリングするバッファリング手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記収集されたデータが前記第１記憶領域に保存される場合に、前記第２記憶領域に保存されたデータのうち、１つ以上のイベントログに対応する、前記第１記憶領域に移動可能なデータを判定する第２判定手段と、
前記第２判定手段によって判定されたデータを、前記第２記憶領域から前記第１記憶領域に移動させる第１移動手段と
を更に備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１移動手段は、前記収集されたデータの前記第１記憶領域への保存に連動して、前記判定されたデータを前記第２記憶領域から前記第１記憶領域に移動させる
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第２記憶領域を構成する記憶装置は、ジョブの実行によりアクセスされて動作している第１状態と、前記ジョブが実行されていない間における動作が停止した第２状態とを有し、
前記第１移動手段は、前記ジョブの実行により前記記憶装置が前記第２状態から前記第１状態へ移行してから、前記記憶装置が前記第２状態へ移行する前に、前記判定されたデータを前記第２記憶領域から前記第１記憶領域に移動させる
ことを特徴とする請求項２又は３に記載の情報処理装置。
【請求項５】
前記第２記憶領域は、磁気記憶装置の記憶領域であることを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項６】
前記収集されたデータが前記第２記憶領域に保存される場合に、前記第１記憶領域に保存されたデータのうち、１つ以上のイベントログに対応する、前記第２記憶領域に移動可能なデータを判定する第３判定手段と、
前記第３判定手段による判定されたデータを、前記第２記憶領域に移動させる第２移動手段と
を更に備えることを特徴とする請求項１から４のいずれか１項に記載の情報処理装置。
【請求項７】
前記第２移動手段は、前記バッファリング手段による、前記収集されたデータの前記第２記憶領域への保存と同時に、前記第３判定手段によって判定されたデータを前記第１記憶領域から前記第２記憶領域に移動させる
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記第２記憶領域は、半導体記憶装置の記憶領域であることを特徴とする請求項６又は７に記載の情報処理装置。
【請求項９】
前記第１判定手段は、前記保存量が前記保存上限を超えると判定した場合、前記収集されたデータを前記第２記憶領域に保存した場合の前記第２記憶領域内のデータの保存量が、前記第２記憶領域に対して設定された保存上限を超えるか否かを更に判定し、
前記バッファリング手段は、前記第２記憶領域内のデータの保存量が、前記第２記憶領域に対して設定された保存上限を超えないと判定された場合には、前記収集されたデータを前記第２記憶領域に保存し、当該保存量が当該保存上限を超えると判定された場合には、所定のエラー処理を行う
ことを特徴とする請求項１から８のいずれか１項に記載の情報処理装置。
【請求項１０】
情報処理装置の制御方法であって、
前記情報処理装置において行われる処理に関連して発生するデータを収集する収集工程と、
前記収集工程において収集されたデータを揮発性の第１記憶領域に保存した場合の前記第１記憶領域内のデータの保存量が、前記第１記憶領域に対して設定された保存上限を超えるか否かを判定する判定工程と、
前記判定工程において、前記保存量が前記保存上限を超えないと判定された場合には、前記収集されたデータを前記第１記憶領域に保存し、前記保存量が前記保存上限を超えると判定された場合には、当該データを不揮発性の第２記憶領域に保存することによって、当該データを外部のサーバ装置への送信対象のイベントログとしてバッファリングするバッファリング工程と
を含むことを特徴とする情報処理装置の制御方法。
【請求項１１】
請求項１０に記載の情報処理装置の制御方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
近年、複合機等の情報処理装置では、装置の状態を監視し、迅速な保守又は予兆予測、装置に搭載されている機能の改善等を行うことが求められている。このためには、情報処理装置の動作状況及びセンサ値等のデータをイベントログとして収集して、インターネットを通じてクラウド上のサーバに送信し、当該データをサーバで分析を行うことが必要となりうる。このような情報処理装置では、収集したデータを格納するために、ハードディスクドライブ（ＨＤＤ）、フラッシュメモリ、メモリーカード等の不揮発性記憶媒体が使用される。
【０００３】
不揮発性記憶媒体を使用する際には、障害の発生を避けるために、記憶媒体への負荷を軽減する処理が行われうる。特許文献１では、複数のＨＤＤが接続されたディスクアレイシステムにおいて、障害発生率が高いＨＤＤを検出し、障害発生率が高いＨＤＤに対しては、キャッシュメモリを利用してアクセスを制限する技術が提案されている。また、特許文献２では、メールシステムにおいて、メール及び関連情報を、不揮発性メモリ及び揮発性メモリに格納することにより、サーバ障害時のデータの紛失を防ぐ技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−９４４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のように、装置内で収集したデータ（イベントログ）をインターネット等のネットワークを通じてサーバへ送信する情報処理装置は、サーバへの送信が完了するまでの間、収集したデータをバッファリングしておく必要がある。データのバッファリングに不揮発性の記憶領域を使用する場合、当該記憶領域を構成する記憶装置へのアクセスが頻繁に発生し、これは記憶装置の故障率の増加を招く。一方で、揮発性の記憶領域のみにデータをバッファリングすると、メモリリソースの消費が大きくなり、情報処理装置における他の機能（コピーやプリント等）に割り当てられるメモリリソースの減少につながりうる。
【０００６】
本発明は、上述の問題に鑑みてなされたものである。本発明は、イベントログのバッファリング処理において、不揮発性の記憶領域へのアクセス頻度を低減しつつ、揮発性の記憶領域と不揮発性の記憶領域とをより適切に併用する技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係る情報処理装置は、情報処理装置であって、前記情報処理装置において行われる処理に関連して発生するデータを収集する収集手段と、前記収集手段によって収集されたデータを揮発性の第１記憶領域に保存した場合の前記第１記憶領域内のデータの保存量が、前記第１記憶領域に対して設定された保存上限を超えるか否かを判定する第１判定手段と、前記第１判定手段によって、前記保存量が前記保存上限を超えないと判定された場合には、前記収集されたデータを前記第１記憶領域に保存し、前記保存量が前記保存上限を超えると判定された場合には、当該データを不揮発性の第２記憶領域に保存することによって、当該データを外部のサーバ装置への送信対象のイベントログとしてバッファリングするバッファリング手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、イベントログのバッファリング処理において、不揮発性の記憶領域へのアクセス頻度を低減しつつ、揮発性の記憶領域と不揮発性の記憶領域とをより効果的に併用することが可能になる。
【図面の簡単な説明】
【０００９】
【図１】通信システムの構成例を示す図。
【図２】ＭＦＰのハードウェア構成例を示すブロック図。
【図３】情報処理コントローラのハードウェア構成例を示すブロック図。
【図４】ＭＦＰのソフトウェア構成例を示すブロック図。
【図５】管理サーバへの送信対象のイベントログ用のバッファの構成例を示す図。
【図６】イベントログのバッファリング処理の手順を示すフローチャート。
【図７】ジョブの実行とＨＤＤのロード／アンロード状態との関係の例を示す図。
【図８】イベントログのバッファリング処理の手順を示すフローチャート。
【図９】イベントログのバッファリング処理の例を示す図。
【図１０】イベントログのバッファリング処理の手順を示すフローチャート。
【図１１】イベントログのバッファリング処理の例を示す図。
【図１２】イベントログのバッファリング処理の例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。
【００１１】
以下の第１乃至第３実施形態では、画像形成装置に本発明を適用した例について説明する。なお、本発明は、情報処理装置であれば適用可能であり、例えば、印刷装置、複写機、複合機及びファクシミリ装置等の画像形成装置（画像処理装置）だけでなく、ＰＣ、サーバ装置等の情報機器にも適用可能である。
【００１２】
［第１実施形態］
＜システム構成＞
図１は、本発明の実施形態に係る通信システムの構成例を示す図である。図１に示す通信システムにおいて、イベントログ管理サーバ（以下では「管理サーバ」と称する。）１１０及び複合機（ＭＦＰ）１２０ａ，１２０ｂは、ネットワーク１００に接続されており、ネットワーク１００を介して互いに通信可能である。なお、ネットワーク１００は、例えば、有線ＬＡＮ（ローカルエリアネットワーク）及びインターネットで構成されうる。
【００１３】
管理サーバ１１０には、ＭＦＰ１２０ａ，１２０ｂ等のクライアント装置のイベントログを管理するサーバ装置である。管理サーバ１１０には、各クライアント装置で実行されたジョブ又はユーザ操作の履歴情報をイベントログとして収集し、収集したイベントログを分析するためのアプリケーションがインストールされている。このアプリケーションは、ネットワーク１００を介してＭＦＰ１２０ａ，１２０ｂから送信されるイベントログを収集及び分析する。また、管理サーバ１１０は、その分析結果に基づいて、ＭＦＰ１２０ａ，１２０ｂの設定管理アプリケーションと通信し、ＭＦＰの設定を書き換える動作を行いうる。
【００１４】
ＭＦＰ１２０（１２０ａ，１２０ｂ）は、プリント、コピー、スキャナ、ファクシミリ（ＦＡＸ）送信等の、複数の機能を有する情報機器である。ＭＦＰ１２０は、更に、各機能の実行履歴を保持する機能、各機能により使用される設定値を保持する機能、並びに、実行履歴及び設定値を管理サーバ１１０へ送信する機能を有している。
【００１５】
＜ＭＦＰの構成＞
図２は、本実施形態に係るＭＦＰ１２０のハードウェア構成例を示すブロック図である。ＭＦＰ１２０は、情報処理コントローラ２０１、プリンタコントローラ２０２、スキャナコントローラ２０３、プリンタ２０４、スキャナ２０５、及び操作部２０６を備えている。情報処理コントローラ２０１は、ＭＦＰ１２０の動作に関連する情報処理を制御する。情報処理コントローラ２０１は、プリンタコントローラ２０２、スキャナコントローラ２０３、及び操作部２０６と接続される。プリンタコントローラ２０２は、画像出力デバイスであるプリンタ２０４を制御する。スキャナコントローラ２０３は、画像入力デバイスであるスキャナ２０５を制御する。
【００１６】
図３は、情報処理コントローラ２０１のハードウェア構成例を示すブロック図である。情報処理コントローラ２０１は、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、及びＨＤＤ（ハードディスクドライブ）３０４を有する。情報処理コントローラ２０１は、更に、ネットワークインタフェース（Ｉ／Ｆ）３０５、操作部Ｉ／Ｆ３０６、画像処理部３０７、及びデバイスコントローラＩ／Ｆ３０８を有する。これらのデバイスは、システムバス３０９にそれぞれ接続されている。
【００１７】
ＣＰＵ３０１は、ＲＯＭ３０２に格納されているブートプログラムを実行してＯＳを起動する。ＲＯＭ３０２は、ｅＭＭＣ等のフラッシュメモリとそのコントローラとで構成されている。ＲＯＭ３０２には、ＣＰＵ３０１によって実行される制御プログラムが格納される。ＣＰＵ３０１は、ＯＳ上で、ＲＯＭ３０２又はＨＤＤ３０４に格納されているアプリケーションプログラムを実行することにより、各種処理を実行する。ＲＡＭ３０３は、ＣＰＵ３０１に対して作業領域を提供するとともに、画像データを一時的に格納するための画像メモリ領域を提供する。ＲＯＭ３０２又はＨＤＤ３０４には、上記の上記アプリケーションプログラム、画像データ、及び各種設定値が格納される。なお、ＨＤＤ３０４はＭＦＰ１２０に搭載されていない場合もある。
【００１８】
操作部Ｉ／Ｆ３０６は、操作部２０６とのインタフェースである。操作部２０６は、タッチパネル機能を有するディスプレイ（表示部）を備える。操作部Ｉ／Ｆ３０６は、操作部２０６に表示すべき画面の画面データを、操作部２０６に対して出力する。また、操作部Ｉ／Ｆ３０６は、操作部２０６を介してユーザにより入力された情報を、ＣＰＵ３０１へ送信する。
【００１９】
デバイスコントローラＩ／Ｆ３０８には、プリンタコントローラ２０２及びスキャナコントローラ２０３が接続される。デバイスコントローラＩ／Ｆ３０８は、画像データの同期系／非同期系の変換を行う。ネットワークＩ／Ｆ３０５は、ネットワーク１００に接続されており、ネットワーク１００を介して、管理サーバ１１０等の外部装置との通信（情報の入出力）を行う。画像処理部３０７は、プリンタ２０４へ出力する画像データ、及びスキャナ２０５から入力された画像データに対する画像処理を行う。画像処理部３０７は、例えば、画像回転、画像圧縮、解像度変換、色空間変換、階調変換等の処理を行う。
【００２０】
＜ＭＦＰのソフトウェア構成＞
図４は、本実施形態に係るＭＦＰ１２０上で動作するＭＦＰファームウェア４００のソフトウェア構成例を示すブロック図である。ＭＦＰファームウェア４００は、ＲＯＭ３０２、ＲＡＭ３０３、及びＨＤＤ３０４のいずれかの記憶装置に格納され、ＣＰＵ３０１によって実行される。ＭＦＰ１２０は、ＭＦＰファームウェア４００を有する。ＭＦＰファームウェア４００は、ジョブ受付モジュール４０１、操作部制御モジュール４０２、ジョブ実行モジュール４０３、ジョブ履歴ＤＢ（データベース）４０４、及びデータ構造化モジュール４０５、及びデータ受付モジュール４０６を有する。ＭＦＰファームウェア４００は、更に、バッファ制御モジュール４０７、データ保存モジュール４０８、バッファＤＢ４０９、バッファ通知モジュール４１０、データ変換モジュール４１１、送信モジュール４１２、及びフィルタリングモジュール４１３を有する。
【００２１】
ジョブ受付モジュール４０１は、ネットワークＩ／Ｆ３０５を介してネットワーク１００と接続されており、特定の通信プロトコルを用いてプリントジョブ等のジョブを外部装置から受け付ける。ジョブ受付モジュール４０１は、受け付けたジョブをジョブ実行モジュール４０３へ転送する。操作部制御モジュール４０２は、操作部Ｉ／Ｆ３０６を介して、コピージョブ又はスキャンジョブ等のジョブの実行を指示するためのユーザ操作を操作部２０６により受け付ける。操作部制御モジュール４０２は、ユーザから受け付けたユーザ操作の内容を、ジョブ実行モジュール４０３へ通知する。
【００２２】
ジョブ実行モジュール４０３は、ジョブ受付モジュール４０１から転送されたジョブを受信すると、受信したジョブを実行する。また、ジョブ実行モジュール４０３は、操作部制御モジュール４０２から通知を受信すると、受信した通知に従ってジョブを実行する。ジョブ実行モジュール４０３は、ジョブを実行した際に、当該ジョブの実行履歴をジョブ履歴ＤＢ４０４に保存するとともに、当該実行履歴をデータ構造化モジュール４０５に出力する。
【００２３】
ジョブ履歴ＤＢ４０４には、ジョブの実行履歴が格納される。実行履歴には、ジョブの開始日時及び終了日時、給紙枚数、排紙枚数、ステイプルの有無等の、ジョブの実行に関連する情報が含まれる。なお、ジョブ履歴ＤＢ４０４に格納されるジョブの実行履歴は、ＨＤＤ３０４に格納される。
【００２４】
データ構造化モジュール４０５は、ジョブの実行履歴を、分析が容易なイベントログのデータ形式に構造化した上で、中間データの形式に変換する。また、データ構造化モジュール４０５は、データ受付モジュール４０６に対して、イベントログの登録要求を行う。この登録要求は、管理サーバ１１０への送信対象のイベントログのバッファリングに用いられるバッファ（例えば、図５のバッファ５０１）へのイベントログの登録を求める要求である。なお、中間データには、ＣＢＯＲ（Concise Binary Object Representation）等の、バイナリデータに対応したデータ形式が用いられる。このようにして、データ構造化モジュール４０５は、ＭＦＰ１２０において行われる処理に関連して発生するデータをイベントログとして収集し、当該イベントログの登録要求を、データ受付モジュール４０６に対して行う。
【００２５】
データ受付モジュール４０６は、データ構造化モジュール４０５からイベントログの登録要求を受け付けると、当該要求をバッファ制御モジュール４０７へ通知する。バッファ制御モジュール４０７は、登録要求が行われたイベントログを、データ保存モジュール４０８を介してバッファＤＢ４０９に保存する。これにより、イベントログがバッファＤＢ４０９にバッファリングされる。また、バッファ制御モジュール４０７は、バッファＤＢ４０９にバッファリングされたイベントログ（中間データ）に関する通知を、バッファ通知モジュール４１０に指示する。
【００２６】
バッファ通知モジュール４１０は、バッファ制御モジュール４０７から指示を受けると、当該指示に関連するイベントログのデータ形式を、データ変換モジュール４１１を用いて、管理サーバ１１０への送信用のデータ形式に変換する。更に、バッファ通知モジュール４１０は、データ変換モジュール４１１による変換後のイベントログを、送信モジュール４１２へ通知する。本実施形態では、一例として、データ変換モジュール４１１による変換により生成されるイベントログのデータ形式は、ＪＳＯＮ（JavaScript(登録商標) Object Notation）形式である。ＪＳＯＮ形式は、一般的に、インターネット通信で広く用いられるデータ形式である。
【００２７】
送信モジュール４１２は、バッファ通知モジュール４１０からの通知を待ち受ける。送信モジュール４１２は、バッファ通知モジュール４１０から通知を受けると、データ変換モジュール４１１による変換後のデータを、ＭＦＰ１２０のイベントログとして、ネットワーク１００を介して管理サーバ１１０へ送信する。その際、送信モジュール４１２は、フィルタリングモジュール４１３を用いて、イベントログのうち、送信対象とすべきデータをフィルタによって抽出し、抽出したデータを管理サーバ１１０へ送信する。送信モジュール４１２は、管理サーバ１１０への送信の成功が確認できると、次のイベントログの通知を待ち受ける。
【００２８】
＜イベントログ用のバッファの構成例＞
図５は、本実施形態に係る、管理サーバ１１０への送信対象のイベントログ用のバッファの構成例を示す図である。本実施形態では、管理サーバ１１０への送信対象のイベントログのバッファリングに用いられるバッファ５０１は、バッファＤＢ４０９に対応している。バッファＤＢ４０９に格納（保存）されるイベントログは、登録要求が行われた順に、バッファ５０１に登録される。図５の例では、イベントログ５１１〜５１４が、順にバッファ５０１に登録されている。バッファ５０１は、ＦＩＦＯ（先入れ先出し）バッファで構成される。このため、バッファ５０１に登録されたイベントログは、バッファ５０１からの取り出し時には、登録順にバッファ５０１から取り出され、管理サーバ１１０へ送信される。
【００２９】
バッファＤＢ４０９は、ＲＡＭ３０３の一部の記憶領域（揮発性の第１記憶領域）であるメモリ領域５０２と、ＲＯＭ３０２又はＨＤＤ３０４の一部の記憶領域（不揮発性の第２記憶領域）である不揮発領域５０３とで構成される。なお、不揮発領域５０３がＲＯＭ３０２の記憶領域である場合には、ＲＯＭ３０２はフラッシュメモリ等の半導体記憶装置で構成される。メモリ領域５０２には、メモリ領域５０２内に保存されるデータの保存量の上限として、保存上限５０４が設定されている。また、不揮発領域５０３には、不揮発領域５０３内に保存されるデータの保存量の上限として、保存上限５０５が設定されている。
【００３０】
バッファ制御モジュール４０７は、登録要求が行われたイベントログをバッファ５０１へ登録する際、当該イベントログに対応するデータ（実データ）を、メモリ領域５０２及び不揮発領域５０３のいずれかに保存する。図５の例では、イベントログ５１１〜５１３にそれぞれ対応する実データ５２１〜５２３がメモリ領域５０２に保存され、イベントログ５１４に対応する実データ５２４が不揮発領域５０３に保存されている。なお、イベントログの実データの保存先の決定方法については、図６のフローチャートを用いて後述する。
【００３１】
＜イベントログのバッファリング処理の手順＞
図６は、本実施形態に係る、ＭＦＰ１２０におけるイベントログのバッファリング処理の手順を示すフローチャートである。本フローチャートの各ステップの処理は、ＲＯＭ３０２又はＨＤＤ３０４に格納されたコンピュータプログラムを、ＣＰＵ３０１が必要に応じてＲＡＭ３０３に展開して実行することによって実現されうる。
【００３２】
上述のように、データ構造化モジュール４０５は、ＭＦＰ１２０において行われる処理に関連して発生するデータをイベントログとして収集し、当該イベントログの登録要求を行う。データ受付モジュール４０６が、データ構造化モジュール４０５からイベントログの登録要求を受け付けて、バッファ制御モジュール４０７への通知を行うと、バッファ制御モジュール４０７は、本フローチャートの手順による処理を開始する。
【００３３】
Ｓ１０１で、バッファ制御モジュール４０７は、登録要求による登録対象のイベントログ（対象イベントログ）の実データのサイズを取得し、Ｓ１０２へ処理を進める。Ｓ１０２で、バッファ制御モジュール４０７は、対象イベントログを新たにメモリ領域５０２に保存した場合の当該メモリ領域内（第１記憶領域内）のデータの保存量が、保存上限５０４を超えるか否かを判定する。バッファ制御モジュール４０７は、保存量が保存上限５０４を超えないと判定した場合にはＳ１０３へ、超えると判定した場合にはＳ１０４へ処理を進める。
【００３４】
Ｓ１０３では、バッファ制御モジュール４０７は、対象イベントログをメモリ領域５０２に保存し、処理を終了する。一方、Ｓ１０４では、バッファ制御モジュール４０７は、対象イベントログを新たに不揮発領域５０３に保存した場合の当該不揮発領域内（第２記憶領域内）のデータの保存量が、保存上限５０５を超えるか否かを判定する。バッファ制御モジュール４０７は、保存量が保存上限５０５を超えないと判定した場合にはＳ１０５へ、超えると判定した場合にはＳ１０６へ処理を進める。
【００３５】
Ｓ１０５では、バッファ制御モジュール４０７は、対象イベントログをメモリ領域５０２に保存し、処理を終了する。一方、Ｓ１０６では、バッファ制御モジュール４０７は、イベントログをバッファリングできないことを示す登録エラーをバッファ制御モジュール４０７に通知する、所定のエラー処理を行い、処理を終了する。なお、エラー処理は、例えば、操作部２０６のディスプレイを用いてユーザにエラーを通知する処理を含んでもよい。
【００３６】
以上説明したように、本実施形態では、データ構造化モジュール４０５は、ＭＦＰ１２０において行われる処理に関連して発生するデータを、ＭＦＰ１２０のイベントログとして収集する。バッファ制御モジュール４０７は、データ構造化モジュール４０５によって収集されたデータを、外部の管理サーバ１１０への送信対象のイベントログとして、バッファＤＢ４０９にバッファリングする処理を行う。
【００３７】
具体的には、バッファ制御モジュール４０７は、収集されたデータを、メモリ領域５０２（揮発性の第１記憶領域）に保存した場合の当該メモリ領域内のデータの保存量が、当該メモリ領域に対して設定された保存上限５０４を超えるか否かを判定する。バッファ制御モジュール４０７は、保存量が保存上限５０４を超えないと判定した場合には、収集されたデータをメモリ領域５０２に保存する。一方、バッファ制御モジュール４０７は、当該保存量が保存上限５０４を超えると判定した場合には、当該データを不揮発領域５０３（不揮発性の第２記憶領域）に保存する。これにより、バッファ制御モジュール４０７は、収集されたデータをイベントログとしてバッファＤＢ４０９にバッファリングする。
【００３８】
このように本実施形態では、バッファリング対象のイベントログを、基本的には、ＲＡＭ３０３に確保されたメモリ領域５０２に保存することで、不揮発領域５０３を構成するＲＯＭ３０２又はＨＤＤ３０４へのアクセスを低減することが可能になる。また、イベントログのバッファリングにメモリ領域５０２と不揮発領域５０３とを必要に応じて併用することにより、イベントログをバッファリング可能な保存容量を十分に確保することが可能になる。
【００３９】
［第２実施形態］
第１実施形態では、メモリ領域５０２と不揮発領域５０３とを併用して、イベントログをバッファリング可能な保存容量を十分に確保しつつ、不揮発性の記憶装置（ＲＯＭ３０２又はＨＤＤ３０４）へのアクセスを低減している。第２実施形態では、不揮発領域５０３を構成する記憶装置に対する、不揮発領域５０３に保存されたデータの読み出しに伴うアクセスを低減する例について説明する。本実施形態では、ジョブ履歴ＤＢ４０４及びバッファＤＢ４０９のためにＨＤＤ３０４（磁気記憶装置）が使用され、かつ、不揮発領域５０３がＨＤＤ３０４に確保される場合について説明する。以下では、第１実施形態と共通する部分については説明を省略する。
【００４０】
＜ジョブの実行とＨＤＤの状態との関係＞
図７は、ＭＦＰ１２０におけるジョブの実行と、ＨＤＤ３０４のロード／アンロード状態との関係の例を示す図である。図７に示すように、ＨＤＤは、動作状態として、ロード状態（ヘッドがディスク上に存在し読み書きが可能な状態）と、アンロード状態（ヘッドがディスク上に存在せず読み書きができない状態）とを有する。一般的に、ＨＤＤの寿命は、ＨＤＤがロード状態となっている時間により影響を受ける。また、ＨＤＤは、アンロード状態からロード状態に移行すると、再びアンロード状態に戻るまでに数十秒程度の時間を要する。
【００４１】
本実施形態では、第１実施形態で説明したように、ジョブ実行モジュール４０３によってジョブが実行された場合に、ジョブの実行履歴がジョブ履歴ＤＢ４０４（即ち、ＨＤＤ３０４）に保存される。このため、ジョブの実行に伴って、ＨＤＤ３０４へのアクセスが行われる。これにより、ＨＤＤ３０４は、アンロード状態にあった場合にはロード状態へ移行する。なお、本実施形態では、ＨＤＤ３０４のロード状態は、ジョブの実行によりアクセスされて動作している第１状態に対応し、ＨＤＤ３０４のアンロード状態は、ジョブが実行されていない間における動作が停止した第２状態に対応する。
【００４２】
ここで、図７の７０１のように、ジョブの実行と連動してＨＤＤ３０４へのアクセスが行われる場合、ジョブの実行に起因したアクセスにより既にロード状態になっているＨＤＤ３０４に対して、更にアクセスが行われる。当該アクセスが完了してから数十秒後に、ＨＤＤ３０４はアンロード状態へ移行する。
【００４３】
一方、図７の７０２のように、ジョブの実行と連動しない（非連動の）アクセスが行われる場合、ジョブの実行に起因したアクセスによりロード状態に移行したＨＤＤ３０４が、アンロード状態に戻った後に、非連動のアクセスが行われる。この場合、非連動のアクセスに起因して、ＨＤＤ３０４は再びロード状態に移行し、アンロード状態に戻るまで数十秒程度の時間（図７の７０３）を要する。このように、ジョブの実行と連動しないアクセスが行われる場合、ジョブの実行と連動してアクセスが行われる場合よりも、ＨＤＤ３０４がロード状態になっている時間が長くなる。これは、ＨＤＤ３０４の故障率の増加につながる。即ち、ジョブの実行と連動しないＨＤＤ３０４へのアクセスを減らすことが、ＨＤＤ３０４の故障率の低減につながる。
【００４４】
＜イベントログのバッファリング処理の手順＞
図８は、本実施形態に係る、ＭＦＰ１２０におけるイベントログのバッファリング処理の手順を示すフローチャートである。本フローチャートの各ステップの処理は、ＲＯＭ３０２又はＨＤＤ３０４に格納されたコンピュータプログラムを、ＣＰＵ３０１が必要に応じてＲＡＭ３０３に展開して実行することによって実現されうる。なお、Ｓ１０１〜Ｓ１０６の処理は、第１実施形態（図６）と同様である。
【００４５】
本実施形態では、Ｓ１０３においてメモリ領域５０２への対象イベントログの保存が完了すると、バッファ制御モジュール４０７は、Ｓ２０１へ処理を進める。Ｓ２０１で、バッファ制御モジュール４０７は、不揮発領域５０３に保存されているデータ（イベントログ）が存在するか否かを判定し、存在しない場合には処理を終了し、存在する場合にはＳ２０２へ処理を進める。
【００４６】
Ｓ２０２で、バッファ制御モジュール４０７は、不揮発領域５０３に保存された、１つのイベントログに対応するデータを、メモリ領域５０２に移動可能であるか否かを判定する。ここでは、バッファ制御モジュール４０７は、１つのイベントログに対応するデータを、不揮発領域５０３からメモリ領域５０２に移動させても、メモリ領域５０２のデータ保存量が保存上限５０４を超えない場合には、データを移動可能であると判定する。バッファ制御モジュール４０７は、データを移動可能である場合にはＳ２０３へ処理を進め、移動可能ではない場合にはＳ２０４へ処理を進める。
【００４７】
Ｓ２０３で、バッファ制御モジュール４０７は、不揮発領域５０３に保存されたデータのうち、移動可能であると判定したデータを、不揮発領域５０３からメモリ領域５０２へ移動させ、Ｓ２０４へ処理を進める。Ｓ２０４で、バッファ制御モジュール４０７は、不揮発領域５０３に他のデータが存在するか否かを判定し、存在しない場合には処理を終了し、存在する場合にはＳ２０１へ処理を戻す。
【００４８】
このようにして、Ｓ２０１〜Ｓ２０４の処理を繰り返すことによって、バッファ制御モジュール４０７は、不揮発領域５０３に保存されたデータのうち、１つ以上のイベントログに対応するデータをメモリ領域５０２に移動可能であるか否かを判定する。更に、バッファ制御モジュール４０７は、その判定の結果に従って、移動可能なデータを不揮発領域５０３からメモリ領域５０２に移動させる。
【００４９】
これにより、ジョブの実行に起因して（ジョブの実行履歴の保存のために）ＨＤＤ３０４へのアクセスが行われるのに続けて、ＨＤＤ３０４（不揮発領域５０３）からのイベントログの移動が行われる。この移動は、ジョブの実行によりＨＤＤ３０４がアンロード状態からロード状態へ移行してから、ＨＤＤ３０４がアンロード状態へ移行する前に行われうる。これにより、不揮発領域５０３からメモリ領域５０２へ移動したイベントログについて、当該イベントログの読み出しのために、ジョブの実行と連動しないＨＤＤ３０４へのアクセスが行われることを防止できる。
【００５０】
＜イベントログのバッファリング処理の例＞
図９は、本実施形態に係る、イベントログのバッファリング処理の例を示す図である。同図では、図８のフローチャートの手順に従ったバッファリング処理を適用した場合の例を示している。
【００５１】
図９（Ａ）は、バッファ５０１に、イベントログ９１１〜９１４が登録された状態を示している。図９（Ｂ）では、図９（Ａ）の状態のバッファ５０１から、イベントログ９１１，９１２に対応する（メモリ領域５０２内の）実データ９２１，９２２が取り出されている。更に、新たなイベントログ９１５の登録要求が行われている。この状態において、イベントログ９１４に対応する実データ９２４が不揮発領域５０３から取り出される場合、ジョブの実行と連動せずに、不揮発領域５０３（ＨＤＤ３０４）へのアクセスが行われることになる。
【００５２】
図９（Ｃ）は、イベントログ９１５が登録された状態を示しており、イベントログ９１５に対応する実データ９２３が、Ｓ１０３の処理により、メモリ領域５０２に保存されている。その後、Ｓ２０１及びＳ２０２の処理により、不揮発領域５０３に存在する実データ９２４が、メモリ領域５０２に移動可能であると判定されると、Ｓ２０３の処理により、不揮発領域５０３からメモリ領域５０２へ実データ９２４の移動が行われる。その結果、バッファ５０１は、図９（Ｄ）に示す状態となる。
【００５３】
このように、ジョブの実行に連動して（イベントログのメモリ領域５０２への保存に連動して）、不揮発領域５０３からメモリ領域５０２への、移動可能なデータの移動が行われる。即ち、ジョブの実行に起因したＨＤＤ３０４へのアクセスにより、ＨＤＤ３０４がロード状態にある間に、不揮発領域５０３（ＨＤＤ３０４）からデータの移動が行われる。これにより、不揮発領域５０３からメモリ領域５０２へ移動したデータ（イベントログ）の取り出しに起因して、ジョブの実行と連動しない不揮発領域５０３へのアクセスが、その後に行われることを防止できる。
【００５４】
以上説明したように、本実施形態では、ＨＤＤ３０４へのアクセスを伴う、ジョブの実行と連動して、ＨＤＤ３０４がロード状態にある間に、ＨＤＤ３０４（不揮発領域５０３）からメモリ領域５０２へイベントログを移動させる。これにより、ジョブの実行と連動せずにバッファＤＢ４０９から当該イベントログが取り出される際に、不揮発領域５０３ではなくメモリ領域５０２から取り出しが行われることになる。したがって、ジョブの実行と連動しないＨＤＤ３０４へのアクセスが行われてＨＤＤ３０４がロード状態に移行する可能性を低減できる。これにより、ＨＤＤ３０４の消耗を低減することができ、ＨＤＤ３０４の故障率の低減を実現できる。
【００５５】
［第３実施形態］
第３実施形態では、イベントログのバッファリングに用いられる（ジョブ履歴ＤＢ４０４及びバッファＤＢ４０９のために使用される）不揮発領域５０３が、半導体記憶装置の一例であるＲＯＭ３０２に確保される場合について説明する。ＲＯＭ３０２は、例えばフラッシュメモリで構成される。フラッシュメモリの寿命は、データの書き込み回数による影響を受ける。このため、ＲＯＭ３０２の寿命が短くなることを防止するためには、ＲＯＭ３０２へのデータの書き込み回数をできるだけ低減する必要がある。本実施形態では、イベントログの保存に伴う、ＲＯＭ３０２の不揮発領域５０３へのデータのアクセスの回数を低減する手法について説明する。以下では、第１及び第２実施形態と共通する部分については説明を省略する。
【００５６】
＜イベントログのバッファリング処理の手順＞
図１０は、本実施形態に係る、ＭＦＰ１２０におけるイベントログのバッファリング処理の手順を示すフローチャートである。本フローチャートの各ステップの処理は、ＲＯＭ３０２又はＨＤＤ３０４に格納されたコンピュータプログラムを、ＣＰＵ３０１が必要に応じてＲＡＭ３０３に展開して実行することによって実現されうる。なお、Ｓ１０１〜Ｓ１０４，Ｓ１０６の処理は、第１実施形態（図６）と同様である。
【００５７】
本実施形態では、Ｓ１０４において、対象イベントログを不揮発領域５０３に保存した場合の当該不揮発領域内のデータの保存量が、保存上限５０５を超えないと判定した場合、バッファ制御モジュール４０７は、Ｓ３０１へ処理を進める。
【００５８】
Ｓ３０１で、バッファ制御モジュール４０７は、メモリ領域５０２に保存されたデータのうち、１つ以上のイベントログに対応する、不揮発領域５０３に移動可能なデータを判定（確認）する。ここでは、バッファ制御モジュール４０７は、対象イベントログの不揮発領域５０３への保存（格納）と同時に不揮発領域５０３に移動させても、不揮発領域５０３のデータ保存量が保存上限５０５を超えないデータを判定する。
【００５９】
その後Ｓ３０２で、バッファ制御モジュール４０７は、対象イベントログの不揮発領域５０３への保存と同時に、Ｓ３０１で判定した（１つ以上のイベントログに対応する）データを、メモリ領域５０２から不揮発領域５０３に移動させる。これにより、バッファ制御モジュール４０７は、対象イベントログの不揮発領域５０３への保存と同時に、可能な限り多くのデータを、メモリ領域５０２から不揮発領域５０３に移動させる。以上により、バッファ制御モジュール４０７は処理を終了する。
【００６０】
＜イベントログのバッファリング処理の例＞
図１１及び図１２は、イベントログのバッファリング処理の例を示す図である。図１１は、第１実施形態のバッファリング処理を適用した場合の例を示しており、図１２は、図１０のフローチャートの手順に従ったバッファリング処理を適用した場合の例を示している。
【００６１】
図１１（Ａ）は、イベントログ１１１１〜１１１３が登録された状態にあるバッファ５０１に対し、新たなイベントログ１１１４の登録が要求されていることを示している。この要求に従って、図１１（Ｂ）では、バッファ５０１にイベントログ１１０４が登録され、対応する実データ１１２４は、メモリ領域５０２に格納する場合の当該メモリ領域のデータ保存量が保存上限５０４を超えるため、不揮発領域５０３保存されている。その後、図１１（Ｃ）に示すように、イベントログ１１１５，１１１６の登録が新たに要求されると、図１１（Ｄ）に示すように、対応する実データ１１２５，１１２６は不揮発領域５０３に保存される。
【００６２】
図１１に示すバッファリング処理では、メモリ領域５０２にイベントログの実データが残っている状態で、新たにイベントログの登録が行われるごとに、不揮発領域５０３へのデータの書き込みが発生する。不揮発領域５０３がフラッシュメモリで構成されている場合、１ブロック当たりのデータの書き込み回数が、当該フラッシュメモリの寿命に影響する。このため、書き込み対象のデータのサイズが１ブロックのサイズで割り切れない場合、当該１ブロックから溢れるサイズの分だけ書き込み回数がかさむことになる。
【００６３】
そこで、本実施形態では、図１２（Ａ）に示すように、新たにイベントログ１１１４の登録が要求され、かつ、当該イベントログを不揮発領域５０３に保存する場合に（Ｓ１０４で「ＮＯ」）、図１２（Ｂ）に示す処理が行われる。具体的には、Ｓ３０１及びＳ３０２の処理により、メモリ領域５０２に保存されたデータのうち、不揮発領域５０３へ移動可能な実データ１１２１〜１１２３を、実データ１１２４の保存と同時に不揮発領域５０３に移動させる。
【００６４】
この処理により、複数のイベントログに対応するデータが同時に不揮発領域５０３に書き込まれるため、書き込み対象のデータのサイズが１ブロックのサイズで割り切れない場合が生じる可能性を最小限にできる。その後、図１２（Ｃ）に示すように、イベントログ１１１５，１１１６の登録が新たに要求されても、図１２（Ｄ）に示すように、対応する実データ１１２５，１１２６はメモリ領域５０２に保存される。即ち、不揮発領域５０３へのアクセスは発生しない。
【００６５】
以上説明したように、本実施形態では、不揮発領域５０３にイベントログを保存する際に、メモリ領域５０２に保存されたデータを同時に不揮発領域５０３に移動させる。これにより、不揮発領域５０３に書き込むブロックサイズ数を最小限にすることが可能となる。したがって、不揮発領域５０３へのデータの書き込み回数を減らし、ＲＯＭ３０２の消耗を抑えることが可能である。
【００６６】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６７】
１２０（１２０ａ，１２０ｂ）：ＭＦＰ、１１０：管理サーバ、１００：ネットワーク、２０１：情報処理コントローラ、２０２：プリンタコントローラ、２０３：スキャナコントローラ、３０１：ＣＰＵ
【図１】
2019152901.tif 000003
【図２】
2019152901.tif 000004
【図３】
2019152901.tif 000005
【図４】
2019152901.tif 000006
【図５】
2019152901.tif 000007
【図６】
2019152901.tif 000008
【図７】
2019152901.tif 000009
【図８】
2019152901.tif 000010
【図９】
2019152901.tif 000011
【図１０】
2019152901.tif 000012
【図１１】
2019152901.tif 000013
【図１２】
2019152901.tif 000014