(57)【要約】      （修正有）【課題】所望の時刻に応じて、適切にサマリを生成する情報処理装置、情報処理方法、及びプログラムを提供する。【解決手段】情報処理装置は、動作に附随して生成される動作履歴を保存する保存手段と、動作履歴から、サマリを生成するサマリ生成手段とを備え、サマリ生成手段は、動作履歴のうち、所定の動作履歴に基づいて、簡易的なサマリを生成する簡易サマリ生成手段であって、所定の動作履歴は、簡易的なサマリがサマリの生成に許容される処理時間内に生成されるように設定される、簡易サマリ生成手段と、所定の動作履歴以外の動作履歴に基づいて、詳細なサマリを生成する詳細サマリ生成手段とを有し、簡易的なサマリの生成を詳細なサマリの生成よりも時間的に優先させて実行し、かつ、所定の動作履歴のデータ量がサマリの生成に許容される処理時間に基づいて設定される規定量より多い場合に、詳細なサマリの生成を遅延させて実行する。【選択図】図４
2020008936.tif 000002
【特許請求の範囲】
【請求項１】
動作に附随して生成される動作履歴を保存する保存手段と、
前記動作履歴から、サマリを生成するサマリ生成手段と
を備え、
前記サマリ生成手段は、
前記動作履歴のうち、所定の動作履歴に基づいて、簡易的なサマリを生成する簡易サマリ生成手段であって、前記所定の動作履歴は、前記簡易的なサマリが前記サマリの生成に許容される処理時間内に生成されるように設定される、簡易サマリ生成手段と、
前記所定の動作履歴以外の動作履歴に基づいて、詳細なサマリを生成する詳細サマリ生成手段と
を有し、
前記簡易的なサマリの生成を前記詳細なサマリの生成よりも時間的に優先させて実行し、かつ、前記所定の動作履歴のデータ量が前記サマリの生成に許容される処理時間に基づいて設定される規定量より多い場合に、前記詳細なサマリの生成を遅延させて実行することを特徴とする情報処理装置。
【請求項２】
前記サマリ生成手段は、前記所定の動作履歴のデータ量が前記サマリの生成に許容される処理時間に基づいて設定される規定量以下である場合に、前記詳細なサマリの生成を前記簡易的なサマリの生成と纏めて実行することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記詳細サマリ生成手段は、前記簡易的なサマリが生成された時刻までの前記所定の動作履歴以外の動作履歴を対象に、前記詳細なサマリを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記動作履歴のデータ量は、前記動作履歴のレコード数であることを特徴とする請求項１から３のいずれか１項に記載の情報処理装置。
【請求項５】
前記規定量は、前記サマリの生成に許容される処理時間を、前記動作履歴の１レコードあたりの処理時間で除算した値で設定されることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記所定の動作履歴は、前記情報処理装置の使用を継続することができるか否かを判定するための情報であることを特徴とする請求項１から５のいずれか１項に記載の情報処理装置。
【請求項７】
前記サマリ生成手段は、前記所定の動作履歴のデータ量が前記サマリの生成に許容される処理時間に基づいて設定される規定量より多い場合に、前記詳細なサマリの生成を所定のイベントが発生するまで遅延させて実行し、
前記所定のイベントは、ユーザジョブの実行に影響を与える可能性の低いイベントであることを特徴とする請求項１から６のいずれか１項に記載の情報処理装置。
【請求項８】
前記情報処理装置は、記録装置であって、
前記サマリ生成手段は、前記所定のイベントを検知する検知手段をさらに有し、
前記検知手段は、前記所定のイベントとして、前記記録装置が調整中に入ったことを示す調整中イベント、給紙の紙なしイベント、前記記録装置のジャム発生イベント、ユーザジョブが終了したことを示すジョブ終了イベント、及び前記記録装置が省電力状態に遷移するスリープ移行準備イベントの少なくともいずれかを検知対象とすることを特徴とする請求項１から７のいずれか１項に記載の情報処理装置。
【請求項９】
前記詳細サマリ生成手段は、前記検知手段により前記所定のイベントが所定の時間を経過しても検知されない場合に、前記詳細なサマリを生成することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記詳細サマリ生成手段は、前記簡易サマリ生成手段により前記簡易的なサマリが生成されている場合に、当該簡易的なサマリの生成が完了するまで前記詳細なサマリの生成を待機することを特徴とする請求項１から９のいずれか１項に記載の情報処理装置。
【請求項１１】
コンピュータを、請求項１から１０のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項１２】
動作に附随して生成される動作履歴を保存する保存手段を備えた情報処理装置における情報処理方法であって、
前記動作履歴のうち、所定の動作履歴に基づいて、簡易的なサマリを生成する簡易サマリ生成ステップであって、前記所定の動作履歴は、前記簡易的なサマリが前記サマリの生成に許容される処理時間内に生成されるように設定される、簡易サマリ生成ステップと、
前記所定の動作履歴以外の動作履歴に基づいて、詳細なサマリを生成する詳細サマリ生成ステップと
を含み、
前記簡易サマリ生成ステップは、前記詳細サマリ生成ステップよりも時間的に優先して実行され、かつ、前記詳細サマリ生成ステップは、前記所定の動作履歴のデータ量が前記サマリの生成に許容される処理時間に基づいて設定される規定量より多い場合に、遅延させて実行されることを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、情報処理装置、例えば、複合機等において、履歴情報を収集、分析し、さらに外部の管理サーバ等に送信して利用する技術が知られている。この技術において、管理サーバは、複合機の稼働状況を監視し、エラー情報や消耗品の残量情報から、複合機の故障サポート、消耗品の配送手配、さらに、ユーザ毎の利用状況を分析し、ユーザにより効率的な使い方を提案することを可能としている。
【０００３】
ここで、複合機等の情報処理装置の生成する動作ログは多量になることがあり、また、動作ログの中には収集、分析しても利用対象とならないログも含まれる。そのため、情報処理装置において、動作ログのうち、利用することが予定される動作ログのみのサマリを生成することで、装置内でのログ保存領域の節約、加えて、外部にログを送信するときの通信負荷を低減することが行われている。
【０００４】
例えば、特許文献１に開示された情報処理装置では、装置内で生成したログをレベル毎に分類し、重要度の高いレベルのログのみを、定期的に配信ホストにアップロードしている。また、その一方で、特許文献１に開示された情報処理装置では、稼働ログファイルの全てを詳細ログファイルとして新しいものを優先して保存し、配信ホストからの詳細ログのアップロード要求があれば、その要求に応じて、詳細ログをアップロードしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−２８７０１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、複合機においては、ユーザジョブが日中に実行され、その動作ログを深夜の時間帯にサマリとして集計し、外部の管理サーバに接続するアプリケーションによって外部に送信することが行われている。なお、これらの処理は、各々タイマによって定刻に実行される。
【０００７】
但し、ユーザジョブが日中に大量に実行され、その後に、サマリ生成処理が動作すると、集計対象とするログの量が多い場合に、サマリ生成に想定以上の時間がかかり、結果、外部の管理サーバにサマリを所望の時刻までに送信することができなくなる。この点、特許文献１に開示された情報処理装置においても同様に、動作ログの量が多くなった場合に、アップロード対象とするレベルのログの準備に時間がかかり、所望の時刻に間に合わなくなることが想定される。即ち、適切にサマリを生成することができないことが想定される。
【０００８】
本発明は、前記従来の問題に鑑みてなされたものであって、所望の時刻に応じて、適切にサマリを生成することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の情報処理装置は、動作に附随して生成される動作履歴を保存する保存手段と、前記動作履歴から、サマリを生成するサマリ生成手段とを備え、前記サマリ生成手段は、前記動作履歴のうち、所定の動作履歴に基づいて、簡易的なサマリを生成する簡易サマリ生成手段であって、前記所定の動作履歴は、前記簡易的なサマリが前記サマリの生成に許容される処理時間内に生成されるように設定される、簡易サマリ生成手段と、前記所定の動作履歴以外の動作履歴に基づいて、詳細なサマリを生成する詳細サマリ生成手段とを有し、前記簡易的なサマリの生成を前記詳細なサマリの生成よりも時間的に優先させて実行し、かつ、前記所定の動作履歴のデータ量が前記サマリの生成に許容される処理時間に基づいて設定される規定量より多い場合に、前記詳細なサマリの生成を遅延させて実行することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、所望の時刻に応じて、適切にサマリを生成することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る複合機の構成を示す概略ブロック図である。
【図２】本実施形態に係る複合機の情報処理コントローラユニットのハードウェア構成を示すブロック図である。
【図３】本実施形態に係る複合機の情報処理コントローラユニットのソフトウェア構成を示すブロック図である。
【図４】本実施形態に係る複合機の情報処理コントローラユニットで動作する履歴収集分析アプリケーションのソフトウェア構成を示すブロック図である。
【図５】履歴収集分析アプリケーションにおける処理の手順及びデータの流れを模式的に示した図である。
【図６】テンプレートの記述例である。
【図７】テンプレート管理部とテンプレート実行部における処理の手順を示すフローチャートである。
【図８】タイマ実行スレッドの処理の手順を示すフローチャートである。
【図９】イベント実行スレッドの処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は、本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。加えて、以下の実施形態では、動作の履歴を蓄積し、その履歴を利用する情報処理装置として、コピー機能、プリント機能、センド機能を搭載した複合機を例に説明する。
【００１３】
（第一の実施形態）
図１は、本実施形態に係る複合機１００の構成を示す概略ブロック図である。複合機１００は、図１に示されるように、情報処理コントローラユニット１０１、プリンタコントローラユニット１０２、スキャナコントローラユニット１０３、プリンタ１０４、スキャナ１０５、操作部１０６を備える。
【００１４】
情報処理コントローラユニット１０１は、複合機１００の動作（処理）に関連する情報処理制御を統括するコントローラである。情報処理コントローラユニット１０１には、画像出力デバイスであるプリンタ１０４を制御するプリンタコントローラユニット１０２、画像入力デバイスであるスキャナ１０５を制御するスキャナコントローラユニット１０３、及び操作部１０６が接続される。操作部１０６は、液晶ディスプレイ一体型のタッチパネル等を有する。
【００１５】
図２は、本実施形態に係る複合機１００の情報処理コントローラユニット１０１のハードウェア構成を示すブロック図である。情報処理コントローラユニット１０１は、ＣＰＵ２０１、ＲＯＭ２０２、ＲＡＭ２０３、ＨＤＤ２０４、ネットワークＩ／Ｆ２０５、操作部Ｉ／Ｆ２０６、画像処理部２０７、デバイスコントローラＩ／Ｆ２０８、システム時計２０９を有する。なお、Ｉ／Ｆは、インタフェースの略称である。また、これらのブロックは、システムバス２１０を介して接続される。
【００１６】
ＣＰＵ（Central Processing Unit）２０１は、ＲＯＭ（Read Only Memory）２０２に格納されているブートプログラムによりＯＳ（Operating System）を起動する。ＣＰＵ２０１は、このＯＳ上で、ＨＤＤ２０４に格納されているアプリケーションプログラムを実行し、これにより各種処理を実行する。
【００１７】
ＲＡＭ（Random Access Memory）２０３は、ＣＰＵ２０１の作業領域を提供するとともに、画像データを一時記憶するための画像メモリ領域を提供する。ＨＤＤ（Hard Disk Drive）２０４は、上述のアプリケーションプログラム、画像データ、各種設定値、動作に附随して生成される動作履歴（ログ)を記録したデータベース（ＤＢ）等を格納する。
【００１８】
ネットワークＩ／Ｆ２０５は、所定のネットワークに接続され、所定のネットワーク上の各装置との間で情報の入出力を行う。操作部Ｉ／Ｆ２０６は、液晶ディスプレイ一体型タッチパネルを有する操作部１０６とのインタフェースであり、操作部１０６において表示する画像データを操作部１０６に対して出力する。また、操作部Ｉ／Ｆ２０６は、操作部１０６においてユーザにより入力された情報をＣＰＵ２０１に送出する。
【００１９】
画像処理部２０７は、プリンタ１０４への出力画像処理、また、スキャナ１０５からの入力画像処理として、画像回転、画像圧縮、解像度変換、色空間変換、階調変換等の画像処理を実行する。デバイスコントローラＩ／Ｆ２０８は、図２に示されるように、プリンタコントローラユニット１０２及びスキャナコントローラユニット１０３に接続され、主に画像データの転送制御を行う。
【００２０】
システム時計２０９は、リアルタイムクロック回路及びバッテリーを備え、年・月・日・時・分・秒から成る時刻情報を保持又は更新する。なお、システム時計２０９は、時刻情報をＯＳから読み出し、変更することが可能であり、また、情報処理コントローラユニット１０１が停止している状態であっても、バッテリーから供給される電力により時刻情報を更新し続ける。
【００２１】
その他、情報処理コントローラユニット１０１は、画像処理アプリケーションを実行し、プリンタ１０４、スキャナ１０５、ネットワークＩ／Ｆ２０５を制御することで、コピー機能、プリント機能、センド機能を提供する。また、この画像処理アプリケーションは、アプリケーションの実行時における動作履歴を記録する機能を併せて具備している。さらに、情報処理コントローラユニット１０１では、実行したジョブやユーザの操作の履歴情報を収集し、分析する履歴収集分析アプリケーションを動作させることができる。
【００２２】
図３は、本実施形態に係る複合機１００の情報処理コントローラユニット１０１のソフトウェア構成を示すブロック図であり、図３では、ソフトウェア構成のうち、設定データ管理、履歴データ管理、システム時計管理に関するソフトウェア動作を示している。なお、ソフトウェアは、上述のＲＯＭ２０２、ＨＤＤ２０４のいずれかの記憶手段に記憶されており、ＣＰＵ２０１は、ＲＡＭ２０３上に作業領域を確保し、ソフトウェアを実行する。
【００２３】
設定データ管理部３１０は、動作に必要な設定データとしてログインユーザに紐づくユーザ設定値データベース（ユーザ設定値ＤＢ）３１１と、デバイスに紐づくデバイス設定値データベース（デバイス設定値ＤＢ）３１２を管理する。なお、ユーザ設定値ＤＢ３１１とデバイス設定値ＤＢ３１２は、ＨＤＤ２０４に保存される。
【００２４】
履歴データ管理部３２０は、ユーザによる操作や複合機１００内の処理の履歴を保持する履歴データベース（履歴ＤＢ）３２１を管理する。履歴ＤＢ３２１内には、個々の履歴情報（ログ）の内容とともに、ログの発生順序を一意に示すログＩＤが記録され、さらに、そのログの発生時刻を示す時刻情報が併せて記録される。
【００２５】
システム時計管理部３３０は、システム時計２０９内の時刻情報にアクセスし、現在時刻情報を読み出す処理、現在時刻を変更する処理を実行し、その機能を他のプログラムに提供する。
【００２６】
表示部３４０は、設定データ、履歴データ、また、時刻管理のための操作画面を操作部１０６に表示し、ユーザが閲覧又は操作するための表示アプリケーションである。ユーザ認証部３５０は、ユーザを識別するためのログイン処理を実行する。
【００２７】
また、複合機１００は、情報処理コントローラユニット１０１上で動作するアプリケーション３６０を複数、有する。このアプリケーション３６０には、コピー機能、プリント機能、センド機能等の処理を実行する画像処理アプリケーションや、後述の履歴収集分析アプリケーション４００がある。アプリケーション３６０は、設定データ管理部３１０を介して、設定値の読み込み又は書き込みを実行する。また、アプリケーション３６０は、履歴データ管理部３２０経由で、履歴ＤＢ３２１に対して、履歴に関する情報（動作履歴）や処理結果の読み込み又は書き込みを随時、実行する。具体的には、例えば、画像処理アプリケーションは、画像処理ジョブを実行する毎に、時刻情報を付与した形式で動作履歴を記録する。
【００２８】
図４は、本実施形態に係る複合機１００の情報処理コントローラユニット１０１で動作する履歴収集分析アプリケーション４００のソフトウェア構成を示すブロック図である。なお、履歴収集分析アプリケーション４００は、上述のようにＲＯＭ２０２、ＨＤＤ２０４のいずれかの記憶手段に記憶されており、また、ＣＰＵ２０１は、ＲＡＭ２０３上に作業領域を確保し、履歴収集分析アプリケーション４００を実行する。
【００２９】
履歴収集分析アプリケーション４００は、履歴データ管理部３２０にアクセスし、履歴データベース（履歴ＤＢ）３２１の読み書きを管理する。履歴収集分析アプリケーション４００は、図４に示されるように、テンプレート実行部４１０、テンプレート管理部４２０、サマリデータ管理部４３０、及び結果反映部４６０を有する。
【００３０】
テンプレート管理部４２０は、履歴データやサマリデータの収集、分析に必要な情報（テンプレート）が保持されたテンプレートデータベース（テンプレートＤＢ）４４０を管理する。具体的には、テンプレート管理部４２０は、テンプレートの登録・削除等を行う。なお、テンプレートＤＢ４４０には、複数のテンプレートの登録が可能である。また、テンプレートには、データベース言語ＳＱＬによりデータベース（ＤＢ）に対するデータの読み書き処理が記述され、スクリプト言語によりデータの解析及び集計加工に関する処理、並びに結果反映部４６０への通知処理が記述される。
【００３１】
テンプレート実行部４１０は、テンプレートＤＢ４４０に保持されたテンプレートに記述された処理記述を解釈し、その処理記述に応じた処理を実行する。サマリデータ管理部４３０は、サマリデータベース（サマリＤＢ）４５０の読み書きを管理する。具体的には、テンプレート実行部４１０によりテンプレートに基づいて履歴ＤＢ３２１の情報が分析されると、サマリデータ管理部４３０は、その分析した結果（分析結果）をサマリＤＢ４５０に書き込む。また、テンプレート実行部４１０は、その分析結果を結果反映部４６０に表示することで、ユーザや複合機１００のサポート業務を行う者に対して、その分析結果を迅速に通知することができる。
【００３２】
結果反映部４６０には、外部サーバが複数の複合機から収集したサマリデータを集計する時刻に合わせて、送信時刻設定がなされており、さらに、サマリＤＢ４５０の情報は、その設定された送信時刻に、結果反映部４６０経由で外部サーバに送信される。これにより、複合機１００のサポート業務を行う者は、ユーザ先の複合機１００の稼働状況を、設定した送信時刻（例えば、毎日のある特定の時刻）に収集することができる。
【００３３】
なお、上述のテンプレートＤＢ４４０及びサマリＤＢ４５０は、ＨＤＤ２０４に記憶される。また、補足として、複合機１００は、履歴ＤＢ３２１の情報を分析した結果に応じて、複合機１００の動作設定を自動的に変更することもできる。
【００３４】
図５は、履歴収集分析アプリケーション４００における処理の手順及びデータの流れを模式的に示した図である。以下、この図５を用いて、テンプレートを利用した動作ログの生成処理の流れについて説明する。なお、テンプレートは、後述の図６に示されるように、処理の実体を記述しているスクリプト記述部６０１と管理情報を記述しているマニフェスト記述部６０２から構成されている。
【００３５】
タイマ実行リスト５０１は、タイマの実行対象とするテンプレートのリストであり、テンプレート管理部４２０によりテンプレートＤＢ４４０内で管理されている。テンプレート実行部４１０は、タイマ実行スレッド５０２を生成し、タイマ実行リスト５０１の中から実行対象とするテンプレートを選択し、その実行内容及び実行予定時刻をタイマ実行スレッド５０２に指定する。
【００３６】
タイマ実行スレッド５０２は、実行予定時刻になると、指定されているテンプレートの記述に従って処理を実行する。そして、処理が実行されると（処理が完了すると）、タイマ実行リスト５０１の中から次に実行対象とするテンプレートを選択し、その実行内容及び実行予定時刻をタイマ実行スレッド５０２に指定する。
【００３７】
なお、テンプレート実行部４１０は、タイマ実行リスト５０１にテンプレートが１つだけ登録されている場合、同じテンプレートに関する実行内容と次回に実行を予定する時刻（実行予定時刻）をタイマ実行スレッド５０２に指定する。これにより、タイマ実行リスト５０１に登録されたテンプレートに記述された処理が繰り返し実行される。また、この際、テンプレートのマニフェスト記述部６０２の管理情報に従ってスクリプト記述部６０１に記述された処理を実行することで、履歴ＤＢ３２１からデータを読み込み、データを加工してサマリＤＢ４５０に書き込む。
【００３８】
ここで、（詳細は図６を用いて説明するが）テンプレートについて、簡単に説明を補足する。テンプレートは、上述のように、スクリプト記述部６０１とマニフェスト記述部６０２から構成される。さらに、スクリプト記述部６０１は、簡易処理（簡易サマリ生成処理）を実行するためのｂａｓｉｃ記述部６１０と、詳細処理（詳細サマリ生成処理）を実行するためのｄｅｔａｉｌ記述部６２０を含み、各々は、別々に構成される。タイマ実行スレッド５０２は、テンプレートを実行する際に、簡易処理と詳細処理を纏めて実行する場合と、簡易処理のみを実行し、詳細処理は別途非同期なスレッドで実行する場合がある。
【００３９】
ｂａｓｉｃ記述部６１０は、スクリプト記述のみで構成される。ｂａｓｉｃ記述部６１０には、日々のページ数、エラーログ、アラームログ、補給が必要な消耗品情報等を収集してＤＢに書き込むスクリプトが記述されている。なお、これらのログ情報は、ユーザが複合機１００を継続的に問題なく使用できているか否かを判定するための情報であり、遅延なく定期的に収集される。また、ｂａｓｉｃ記述部６１０に記述されるスクリプト（即ち、収集、分析の対象とする情報）は、簡易的なサマリの生成時間が処理終了（具体的には、外部サーバに送信する時刻）までに許容される処理時間内に収まることを前提に設定される。
【００４０】
ｄｅｔａｉｌ記述部６２０は、スクリプト記述にマニフェスト記述６２２を併記した構成であり、１つのテンプレートとして動作することができる。ｄｅｔａｉｌ記述部６２０には、カラー印刷と白黒印刷の利用割合、用いたファイルフォーマットの種類、消費電力、ユーザ情報と匿名化した上での統計情報等を収集、分析してＤＢに書き込むスクリプトが記述されている。即ち、ｄｅｔａｉｌ記述部６２０において、ｂａｓｉｃ記述部６１０において記述されたログ以外（動作履歴以外）のログが記述される。なお、これらのログ情報は、市場での利用傾向を知るために用いられたり、ユーザにより効率の良い利用方法を提案したりするために利用されるため、定期的に遅延なく収集する必要性は低い。
【００４１】
イベント実行リスト５１１は、イベントの実行対象とするテンプレートのリストであり、テンプレート管理部４２０によりテンプレートＤＢ４４０内で管理されている。タイマ実行スレッド５０２は、簡易処理のみを実行する場合、イベント実行リスト５１１にｄｅｔａｉｌ記述部６２０に併記されたマニフェスト記述６２２の内容を、テンプレートとして登録するようにテンプレート管理部４２０に要求する。さらに、テンプレート実行部４１０は、イベント実行スレッド５１２を生成し、イベント実行リスト５１１の中から実行対象とするテンプレートを選択し、イベントの検知を待機する。
【００４２】
イベント実行スレッド５１２は、複合機１００内で発生したイベントを検知すると、指定されているテンプレートのマニフェスト記述内容に従って、ｄｅｔａｉｌ記述部６２０のスクリプト記述に基づいた処理を実行する。処理が実行されると、テンプレート実行部４１０は、イベント実行リスト５１１の中から次に実行対象とするテンプレートを選択し、イベントの検知を待機する。
【００４３】
また、この際、テンプレートのｄｅｔａｉｌ記述部６２０に併記されたマニフェスト記述６２２に従ってｄｅｔａｉｌ記述部６２０のスクリプト処理を実行することで、履歴ＤＢ３２１からデータを読み込み、データを加工してサマリＤＢ４５０に追記する。このように、テンプレート実行部４１０は、タイマ実行リスト５０１に従って簡易処理のみを実行しつつ、詳細処理をタイマとは非同期で実行することができる（即ち、詳細処理を簡易処理に続いて実行せず、遅延させて実行することができる）。
【００４４】
図６は、テンプレートの記述例（正確には、記述例の一部）である。テンプレートは、処理の実体を記述しているスクリプト記述部６０１と管理情報のマニフェスト記述部６０２の２つのファイルから構成される。
【００４５】
スクリプト記述部６０１は、ＪａｖａＳｃｒｉｐｔ（登録商標）等のスクリプト言語で記述される。スクリプト記述部６０１には、上述のように、簡易処理を実行するためのｂａｓｉｃ記述部６１０と、詳細処理を実行するためのｄｅｔａｉｌ記述部６２０が含まれ、以下、各々について説明する。
【００４６】
ｂａｓｉｃ記述部６１０には、図６に示されるように、その先頭において、履歴ＤＢ３２１からのデータ読み出し処理（６１１）がＳＱＬ文で記述されている。ここでは、印刷実行履歴であるプリントジョブログからエラーＩＤと実行回数を読み込んでいる。
【００４７】
続いて、読み込んだデータを集計する処理（６１２）が記述される。ここでは、エラーＩＤ毎の実行回数の集計値を計算している。そして、符号６１３において、サマリＤＢ４５０への書き込み処理（より詳細には、エラーの類型毎に１レコードとして集計した実行回数を挿入する処理）が記述される。
【００４８】
さらに、符号６１４において、管理情報の書き込み処理が記述される。ここでは、どこまでログを読み出したかを記録するため、処理が完了した最終レコードをサマリＤＢ４５０に対して書き込む処理を記述している。これにより、次回のフィルタ処理時に参照し、同じ情報（ログ）の二度読みを回避する。
【００４９】
最後に、処理切替６１５において、レコード数が規定数よりも多いと判定すると（動作履歴のデータ量が規定量よりも多いと判定すると）、ｄｅｔａｉｌ記述部６２０のマニフェスト記述６２２をテンプレート管理部４２０に渡す。この場合、テンプレート管理部４２０は、イベント実行リスト５１１にテンプレート登録する。また、レコード数が規定数以下であると判定すると（動作履歴のデータ量が規定量以下であると判定すると）、後述のテンプレートのｄｅｔａｉｌ記述部６２０のスクリプト記述に従って、動作ログのサマリ生成の詳細処理を実行する。なお、処理切替を判定する上で用いられる規定数は、後述のマニフェスト記述部６０２に記述してある値である。また、レコード数は、上述の括弧書きで示したように、動作履歴のデータ量をその一例として示すものであり、動作履歴のデータ量を示すものであれば、必ずしもレコード数である必要はない。
【００５０】
ｄｅｔａｉｌ記述部６２０には、ＪａｖａＳｃｒｉｐｔ等のスクリプト言語の関数で、プリントジョブログからユーザＩＤと実行枚数を読み出す処理が記述されている。イベント実行スレッド５１２は、ｄｅｔａｉｌ記述部６２０をテンプレートとして実行制御する。なお、起動イベントとして、ユーザジョブが終了した直後を示すイベント、プリンタエンジン調整発生イベント、給紙紙なしイベント、プリンタジャム発生イベント、機器がスリープに入る条件が揃ったことを示すイベント等を指定することができる。また、ここで、ユーザジョブとは、ユーザの指示に基づいたジョブのことである。
【００５１】
ｄｅｔａｉｌ記述部６２０において、処理手順として、先ず、履歴ＤＢ３２１からのデータ読み出し処理がＳＱＬ文で記述され、次に、読み出したデータからユーザ毎の実行枚数を集計する処理が記述されている。そして、サマリＤＢ４５０への書き込み処理が記述され、さらに、管理情報の書き込み処理が記述されている。最後に、イベント実行リスト５１１から詳細処理のマニフェストを削除する処理６２１が記述されている。
【００５２】
なお、ｄｅｔａｉｌ記述部６２０において、ＪａｖａＳｃｒｉｐｔ関数名、読み出すＤＢ名、書き込むＤＢ名、起動イベント名、読み出すログの種類が、ＪＳＯＮ（JavaScript Object Notation）形式で記述されている。また、マニフェスト記述６２２には、ｄｅｔａｉｌ記述部６２０の処理をイベント実行リスト５１１にテンプレート登録する際に必要とされる管理情報が記述されている。
【００５３】
次に、マニフェスト記述部６０２について説明する。マニフェスト記述部６０２には、テンプレート管理部４２０において管理上必要とされる各種情報がＪＳＯＮ形式で記述されている。図６に示す例では、スクリプト記述部６０１が記述されたファイルのファイル名、読み出すＤＢ名、書き込むＤＢ名、起動日時、読み出すログの種類、及び処理切替を判定する上で用いられる規定のレコード数が記述されている。
【００５４】
補足として、処理切替を判定する上で用いられる規定のレコード数は、テンプレート処理内容及び許容される処理時間により、事前に設定される。判定の目安として、（処理終了までの許容時間）／（処理すべき１レコードあたりの処理時間）を想定しておき、処理切替を判定する上で用いられる規定のレコード数（規定量）として、この除算結果を設定する。なお、この規定のレコード数は、本実施形態において、マニフェスト記述部６０２に、「“MAXNUM_SUMMARY_ONCE” : 1000」として記述される。また、これらを用いて、タイマ実行スレッド５０２は、テンプレートの実行を制御する。
【００５５】
次に、図７、図８及び図９を用いて、情報処理コントローラユニット１０１のＣＰＵ２０１で動作する履歴収集分析アプリケーション４００が、履歴ＤＢ３２１の動作ログを用いて、サマリＤＢ４５０にサマリを記録するときの動作（処理）について説明する。
【００５６】
図７は、履歴収集分析アプリケーション４００のテンプレート管理部４２０がタイマ実行リスト５０１にテンプレートを登録し、テンプレート実行部４１０がタイマ実行スレッド５０２を生成する処理を説明するためのフローチャートである。なお、以下において、フローチャートの説明における記号「Ｓ」は、ステップを表すものとする。
【００５７】
テンプレート管理部４２０は、Ｓ７０１において、ＨＤＤ２０４の所定のディレクトリ内に保存されているテンプレートのマニフェスト記述ファイルを参照し、テンプレートＤＢ４４０内のタイマ実行リスト５０１に未登録のものがあるか否かを確認する。
【００５８】
ここで、未登録のマニフェスト記述ファイルがある場合には（Ｓ７０１ Ｙｅｓ）、Ｓ７０２において、テンプレート管理部４２０は、タイマ実行リスト５０１にマニフェスト記述ファイルを登録し、処理をＳ７０１に返す。
【００５９】
そして、Ｓ７０１において、テンプレート管理部４２０は、全てのマニフェスト記載ファイルが登録済みであることを確認すると、Ｓ７０３において、タイマ実行リスト５０１内の各テンプレートの管理情報からタイマ実行を行うべき時刻を参照する。図５に示す例では、タイマ実行リスト５０１内のテンプレート「template1」の管理情報のタイマ実行予定時刻として「*,*,*,00:00」と記載されており、テンプレート管理部４２０は、このタイマ実行予定時刻を参照する。なお、図５に示す例では、年、月、日の設定値が「*」であることからテンプレートを毎日実行し、さらに００時００分にタイマ実行を予定することが示されている。
【００６０】
次に、Ｓ７０４において、テンプレート管理部４２０は、システム時計管理部３３０から取得される現在時刻に基づいて、タイマ実行の対象とする、時刻のより早いテンプレートを選択する。さらに、Ｓ７０５において、テンプレート実行部４１０は、タイマ実行スレッド５０２を生成し、Ｓ７０４において選択されたテンプレートの実行内容及び実行予定時刻を設定する。
【００６１】
図８は、履歴収集分析アプリケーション４００のテンプレート実行部４１０により実行される、タイマ実行スレッド５０２の動作（処理）を説明するためのフローチャートである。Ｓ８０１において、タイマ実行スレッド５０２は、システム時計管理部３３０より現在時刻を取得する。Ｓ８０２において、タイマ実行スレッド５０２は、Ｓ７０５において設定された実行予定時刻と現在時刻を比較し、現在時刻が実行予定時刻を過ぎているか否かを確認する。
【００６２】
そして、タイマ実行スレッド５０２は、現在時刻が実行予定時刻に到達していない場合に（Ｓ８０２ Ｎｏ）、処理をＳ８０１に返す。また、タイマ実行スレッド５０２は、現在時刻が実行予定時刻に到達した場合（現在時刻が実行予定時刻を過ぎている場合）に（Ｓ８０２ Ｙｅｓ）、Ｓ７０４において選択されたテンプレートを実行する（Ｓ８０３）。ここで、テンプレートの実行例として、テンプレートの実行手順を、図８（ｂ）のフローチャートを用いて補足する。
【００６３】
Ｓ８０３１において、タイマ実行スレッド５０２は、先ず、テンプレートのｂａｓｉｃ記述部６１０の記述に従って、動作ログのサマリ生成の簡易処理を実行する。タイマ実行スレッド５０２は、次に、Ｓ８０３２において、簡易処理を実行した動作ログのレコード数を取得し、さらに、Ｓ８０３３において、レコード数が規定数よりも多いか否かを判定する。
【００６４】
そして、レコード数が規定数以下であると判定すると（Ｓ８０３３ Ｎｏ）、タイマ実行スレッド５０２は、テンプレートのｄｅｔａｉｌ記述部６２０のスクリプト記述に従って、動作ログのサマリ生成の詳細処理を実行する（Ｓ８０３４）。また、レコード数が規定数よりも多いと判定すると（Ｓ８０３３ Ｙｅｓ）、タイマ実行スレッド５０２は、ｄｅｔａｉｌ記述部６２０のマニフェスト記述６２２をテンプレート管理部４２０に渡す（Ｓ８０３５）。この場合、テンプレート管理部４２０は、マニフェスト記述６２２をイベント実行リスト５１１にテンプレートとして登録する。
【００６５】
このように、レコード数が規定数よりも多い場合でも、また、レコード数が規定数以下である場合でも、動作ログのサマリ生成の簡易処理は、動作ログのサマリ生成の詳細処理よりも時間的に優先して実行される。
【００６６】
図８（ａ）に戻り、テンプレートを実行すると（Ｓ８０３）、タイマ実行スレッド５０２は、Ｓ８０４において、図８（ｂ）に示したテンプレートの実行が完了したときの状態及び時刻を、タイマ実行リスト５０１の「resultTable」に記録する。なお、テンプレートの実行が完了したときの状態に関して、成功したことを示す「SUCCESS」と、何らかの要因で失敗したことを示す「FAIL」のいずれかで表される。
【００６７】
Ｓ８０５において、テンプレート管理部４２０は、タイマ実行リスト５０１内の各テンプレートの管理情報から次にタイマ実行を行うべき時刻を参照する。そして、Ｓ８０６において、テンプレート管理部４２０は、システム時計管理部３３０から取得される現在時刻に基づいて、タイマ実行の対象とする、時刻のより早いテンプレートを選択する。さらに、Ｓ８０７において、テンプレート実行部４１０は、タイマ実行スレッド５０２に対して、Ｓ８０６において選択されたテンプレートの実行内容及び実行予定時刻を設定する。
【００６８】
図９は、履歴収集分析アプリケーション４００のテンプレート実行部４１０により実行される、イベント実行スレッド５１２の動作（処理）を説明するためのフローチャートである。
【００６９】
イベント実行スレッド５１２は、複合機１００内のイベントを確認し（Ｓ９０１）、さらに、イベントが発生しているか否か、また、そのイベントが検知対象（即ち、テンプレートの実行対象）とするイベントに該当するか否かを判定する（Ｓ９０２）。なお、これに該当するイベントとして、例えば、プリンタ１０４が調整に入ったことを示す調整中イベント、プリンタ１０４の給紙トレイ紙なしイベント、プリンタ１０４のジャム発生イベント等がある。これらのイベントが発生するタイミングでは、ユーザジョブの実行が中断されている可能性が高いため、テンプレートが動作してＣＰＵ２０１の処理能力を一時的に占有したとしても、ユーザジョブの実行速度に影響を与える可能性は少ない。
【００７０】
加えて、その他の該当するイベントとして、ユーザによるコピー、プリント、センドのジョブが終了したことを示すジョブ終了イベント、また、複合機１００が省電力状態に遷移する準備を行うための、スリープ移行準備イベント等もある。これらのイベントが発生するタイミングでは、ユーザジョブの実行が既に完了しているため、テンプレートが動作してＣＰＵ２０１の処理能力を一時的に占有したとしても、ユーザジョブの実行に影響を与える可能性は少ない（影響を与える可能性が低い）。
【００７１】
イベント実行スレッド５１２は、Ｓ９０２において該当するイベントの発生を検知した場合（Ｓ９０２ Ｙｅｓ）、処理をＳ９０４に移行させる。また、Ｓ９０２において該当するイベントの発生を検知しなかった場合（Ｓ９０２ Ｎｏ）、さらに、イベントの発生していない状態が継続している時間を計測し、その計測した時間が所定時間を超えたか否か（経過したか否か）を判定する（Ｓ９０３）。
【００７２】
そして、イベント実行スレッド５１２は、イベントの発生していない状態が継続している時間が所定時間を超えていないと判定すると（Ｓ９０３ Ｎｏ）、処理をＳ９０１に返す。また、イベント実行スレッド５１２は、イベントの発生していない状態が継続している時間が所定時間を超えたと判定すると（Ｓ９０３ Ｙｅｓ）、処理をＳ９０４に移行させる。
【００７３】
これにより、該当イベントが長時間、発生しない場合であっても、定期的にテンプレートを実行することができる。また、Ｓ９０３において、イベントの発生していない状態が継続している時間が所定時間内である場合（即ち、所定時間を超えていない場合）、処理をＳ９０１に返すことで、イベント発生を検知するために継続して待機する。
【００７４】
Ｓ９０４において、イベント実行スレッド５１２は、タイマ実行スレッド５０２がテンプレートを実行中であるか否かを判定する。タイマ実行スレッド５０２がテンプレートを実行中である場合は、同時にテンプレートを実行することを回避するため、処理をＳ９０１に返すことで、イベント発生を検知するために継続して待機する。これにより、タイマ実行スレッド５０２のテンプレートの実行を優先させることができる。
【００７５】
イベント実行スレッド５１２は、Ｓ９０５において、イベント実行リスト５１１の先頭に登録されているテンプレートを選択する。さらに、イベント実行スレッド５１２は、Ｓ９０６において、そのｄｅｔａｉｌ記述部６２０が含まれていたテンプレートのｂａｓｉｃ記述部６１０が実行された時刻（最終実行時刻）を確認する。なお、この最終実行時刻は、タイマ実行リスト５０１の「resultTable」内に実行した実績時刻として記録されている。
【００７６】
Ｓ９０７において、イベント実行スレッド５１２は、ｂａｓｉｃ記述部６１０が実行された時刻までのログレコードを対象に、ｄｅｔａｉｌ記述部６２０のスクリプト記述に従って、動作ログのサマリ生成の詳細処理を実行する。その後、イベント実行スレッド５１２は、Ｓ９０８において、イベント実行リスト５１１から、実行完了したｄｅｔａｉｌ記述部６２０を含むテンプレートを削除し、処理をＳ９０１に返す。
【００７７】
なお、Ｓ９０７における処理の実行中に、タイマ実行スレッド５０２に設定された実行予定時刻になり、タイマ実行スレッド５０２が、テンプレートの実行を開始する場合も想定される。その場合には、イベント実行スレッド５１２は、処理を一時停止し、タイマ実行スレッド５０２によるテンプレートの実行が完了した後に、処理を再開する。
【００７８】
以上、説明したように、履歴収集分析アプリケーション４００の処理により、機器の動作ログが大量である場合であっても、機器内で動作履歴のデータ量を判定し、所望の時刻に応じて、特定の項目のみに関してログの収集とサマリ生成を行うことができる。そのため、サマリが利用される時刻が設定されている場合に、タイマ実行時にはサマリ生成対象とする動作ログ項目を必要な項目のみに限定することができ、ログ収集とサマリ生成の所要時間を定刻に間に合わせることができる。また、タイマ実行時に処理の対象から除外された処理は、イベント実行リストに登録されることにより、非同期で処理を行うことができる。
【００７９】
（その他の実施形態）
なお、本発明の目的は、以下の処理を実行することによっても達成することができる。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出す処理である。また、この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施の形態の機能を実現することになり、そのプログラムコード及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【００８０】
３２０…履歴データ管理部
３２１…履歴ＤＢ
４１０…テンプレート実行部
４２０…テンプレート管理部
４４０…テンプレートＤＢ
【図１】
2020008936.tif 000003
【図２】
2020008936.tif 000004
【図３】
2020008936.tif 000005
【図４】
2020008936.tif 000006
【図５】
2020008936.tif 000007
【図６】
2020008936.tif 000008
【図７】
2020008936.tif 000009
【図８】
2020008936.tif 000010
【図９】
2020008936.tif 000011