(57)【要約】      （修正有）【課題】過去の履歴を反映した動作をデバイスに行わせる情報処理装置を提供する。【解決手段】管理サーバで動作する履歴収集分析アプリケーション７００は、履歴蓄積ＤＢ７４０の履歴蓄積データを用いて複合機に対する指示を行うための処理を行うテンプレートとしてフィルタテンプレートと解析テンプレートとを用いる。フィルタテンプレートは、履歴蓄積ＤＢの履歴蓄積データのフィルタリングを行うことにより、サマリデータを生成してサマリＤＢ７４１に保存することが記載されたテンプレートである。解析テンプレートは、サマリデータを解析することにより、複合機に対する指示の内容を決定することが記載されたテンプレートである。【選択図】図７
2018060285.tif 000002
【特許請求の範囲】
【請求項１】
デバイスの第１の履歴情報を記憶する第１の記憶手段と、
デバイスの履歴情報を取得することと、前記履歴情報のデータ量を削減した履歴情報を生成することと、前記データ量が削減された履歴情報を記憶することとを含む処理を実行することが示された第１の情報を記憶する第２の記憶手段と、
前記データ量が削減された履歴情報を取得することと、前記データ量が削減された履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された第２の情報を前記第１の情報とは別に記憶する第３の記憶手段と、
前記第１の情報および前記第２の情報に示された処理を実行する実行手段と、を有し、
前記第２の記憶手段は、前記第１の情報として、前記第１の履歴情報を取得することと、前記第１の履歴情報のデータ量を削減した第２の履歴情報を生成することと、前記第２の履歴情報を記憶することとを含む処理を実行することが示された情報を記憶し、
前記第３の記憶手段は、前記第２の情報として、前記第２の履歴情報を取得することと、前記第２の履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された情報を記憶することを特徴とする情報処理装置。
【請求項２】
前記第２の記憶手段は、複数の前記第１の情報を記憶することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の記憶手段は、前記第１の情報として、前記第２の履歴情報を取得することと、前記第２の履歴情報のデータ量を削減した第３の履歴情報を生成することと、前記第３の履歴情報を記憶することとを含む処理を実行することが示された情報を更に記憶し、
前記第３の記憶手段は、前記第２の情報として、前記第３の履歴情報を取得することと、前記第３の履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された情報を更に記憶することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記複数の第１の情報に従う前記処理において前記第１の履歴情報を取得する必要がなくなると、前記第１の履歴情報のうち、当該取得する必要がなくなった第１の履歴情報を、削除対象の第１の履歴情報として決定する決定手段を更に有することを特徴とする請求項２または３に記載の情報処理装置。
【請求項５】
前記第１の情報は、前記複数の第１の情報に従う前記処理において前記第１の履歴情報を取得する必要がなくなると、前記第１の履歴情報のうち、当該取得する必要がなくなった第１の履歴情報を、削除対象の第１の履歴情報として決定することを更に示す情報であり、
前記実行手段は、前記決定手段を有することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記第３の記憶手段は、複数の前記第２の情報を記憶することを特徴とする請求項１〜５の何れか１項に記載の情報処理装置。
【請求項７】
前記データ量が削減された履歴情報は、１つのファイルとして記憶されることを特徴とする請求項２〜６の何れか１項に記載の情報処理装置。
【請求項８】
前記第１の情報は、当該第１の情報に従って実行される前記処理の内容が記載された第１の部分と、当該処理が実行される際に前記実行手段により参照される情報が記載された第２の部分とを含み、
前記第２の情報は、当該第２の情報に従って実行される前記処理の内容が記載された第１の部分と、当該処理が実行される際に前記実行手段により参照される情報が記載された第２の部分とを含むことを特徴とする請求項１〜７の何れか１項に記載の情報処理装置。
【請求項９】
前記第１の情報は、前記第１の情報に従って前記処理が実行される際に前記実行手段により参照される情報として、前記履歴情報の取得元を特定するための情報と、前記データ量が削減された履歴情報の記憶先を特定するための情報とを含み、
前記第２の情報は、前記第１の情報に従って前記処理が実行される際に前記実行手段により参照される情報として、前記データ量が削減された履歴情報の取得元を特定するための情報を含むことを特徴とする請求項１〜８の何れか１項に記載の情報処理装置。
【請求項１０】
前記第２の情報は、前記第１の情報に従って前記処理が実行される際に前記実行手段により参照される情報として、前記デバイスに対する指示の内容の記憶先がないことを示す情報を更に含むことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記デバイスに対する指示の内容は、前記デバイスの設定値の変更の指示を含むことを特徴とする請求項１〜１０の何れか１項に記載の情報処理装置。
【請求項１２】
前記第１の履歴情報は、複数の項目についての前記デバイスの履歴情報を有し、
前記データ量が削減された履歴情報は、前記複数の項目の一部の項目についての前記デバイスの履歴情報を有することを特徴とする請求項１〜１１の何れか１項に記載の情報処理装置。
【請求項１３】
デバイスの第１の履歴情報を記憶媒体または記憶装置に記憶する第１の記憶工程と、
デバイスの履歴情報を取得することと、前記履歴情報のデータ量を削減した履歴情報を生成することと、前記データ量が削減された履歴情報を記憶することとを含む処理を実行することが示された第１の情報を記憶媒体または記憶装置に記憶する第２の記憶工程と、
前記データ量が削減された履歴情報を取得することと、前記データ量が削減された履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された第２の情報を前記第１の情報とは別に記憶媒体または記憶装置に記憶する第３の記憶工程と、
前記第１の情報および前記第２の情報に示された処理を実行する実行工程と、を有し、
前記第２の記憶工程は、前記第１の情報として、前記第１の履歴情報を取得することと、前記第１の履歴情報のデータ量を削減した第２の履歴情報を生成することと、前記第２の履歴情報を記憶することとを含む処理を実行することが示された情報を記憶し、
前記第３の記憶工程は、前記第２の情報として、前記第２の履歴情報を取得することと、前記第２の履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された情報を記憶することを特徴とする情報処理方法。
【請求項１４】
請求項１〜１２の何れか１項に記載の情報処理装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、およびプログラムに関し、特に、デバイスに対する指示を行うために用いて好適なものである。
【背景技術】
【０００２】
デバイスの履歴情報を収集・分析または利用する技術がある。特許文献１に記載の情報処理装置は、画像形成装置におけるジョブの履歴を収集し画像形成装置の詳細な消費電力の推移を可視化する。特許文献２に記載の情報処理装置は、印刷設定の履歴を印刷ジョブの種別と関連付けて記憶し、その後に投入された印刷ジョブの種別に関連付けられた過去の印刷設定の履歴に基づいて、推奨される印刷設定の変更を提示する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−５３４９９号公報
【特許文献２】特開２０１５−１５０７０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の技術では、デバイスにおける動作履歴の可視化すること、および、デバイスにおける動作履歴に関連付けられている設定を再現することが行われるに留まる。従って、従来の技術では、例えば、デバイスに対して過去に適用した設定と比較してユーザがデバイスをより使いやすくなる別の設定が存在するとしても、当該より使いやすくなる設定をユーザに提供することが容易でない。ここで、ユーザには、デバイスを利用するユーザのみならず、デバイスを含むシステムの管理者等も含まれる。
【０００５】
本発明は、このような問題点に鑑みてなされたものであり、過去の履歴を反映した動作をデバイスに行わせることができるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の情報処理装置は、デバイスの第１の履歴情報を記憶する第１の記憶手段と、デバイスの履歴情報を取得することと、前記履歴情報のデータ量を削減した履歴情報を生成することと、前記データ量が削減された履歴情報を記憶することとを含む処理を実行することが示された第１の情報を記憶する第２の記憶手段と、前記データ量が削減された履歴情報を取得することと、前記データ量が削減された履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された第２の情報を前記第１の情報とは別に記憶する第３の記憶手段と、前記第１の情報および前記第２の情報に示された処理を実行する実行手段と、を有し、前記第２の記憶手段は、前記第１の情報として、前記第１の履歴情報を取得することと、前記第１の履歴情報のデータ量を削減した第２の履歴情報を生成することと、前記第２の履歴情報を記憶することとを含む処理を実行することが示された情報を記憶し、前記第３の記憶手段は、前記第２の情報として、前記第２の履歴情報を取得することと、前記第２の履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された情報を記憶することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、過去の履歴を反映した動作をデバイスに行わせることができる。
【図面の簡単な説明】
【０００８】
【図１】情報処理システムの構成を示す図である。
【図２】管理サーバのハードウェアの構成を示す図である。
【図３】複合機のハードウェアの構成を示す図である。
【図４】複合機の情報処理コントローラユニットの構成を示す図である。
【図５】マスターデータの構成を示す図である。
【図６】設定値管理アプリケーションのソフトウェアの構成を示す図である。
【図７】履歴収集分析アプリケーションのソフトウェア構成を示す図である。
【図８】複合機側のクライアントモジュールのソフトウェア構成を示す図である。
【図９】履歴収集分析アプリケーションにおけるデータの流れを示す図である。
【図１０】フィルタテンプレートの内容の一部を示す図である。
【図１１】解析テンプレートの内容の一部を示す図である。
【図１２−１】テンプレートのインストール時の第１の処理を示す図である。
【図１２−２】テンプレートのインストール時の第２の処理を示す図である。
【図１３−１】履歴情報の保存時の処理を示す図である。
【図１３−２】複合機の設定の変更時の処理を示す図である。
【図１４】図１３−２のステップＳ１３０３の詳細を示す図である。
【発明を実施するための形態】
【０００９】
以下、実施形態について図面を用いて説明する。本実施形態では、管理サーバと通信するクライアントとなるデバイスが複合機である場合を例に挙げて説明する。ただし、デバイスは、複合機に限定されない。例えば、デバイスは、複合機が有するそれぞれの機能を個別に実現する電子機器（例えば、プリンタ、コピー機、ＦＡＸ）であってもよい。また、デバイスは、ユーザが持ち運びをできる電子機器（例えば、タブレット端末、携帯電話）であってもよい。
【００１０】
図１は、情報処理システムの構成の一例を示す図である。情報処理システムは、ネットワーク１００、管理サーバ１１０、および複数の複合機１２０ａ、１２０ｂを有する。ネットワーク１００には、管理サーバ１１０、複合機１２０ａ、１２０ｂが接続される。図１では、表記の都合上、２つの複合機１２０ａ、１２０ｂを示す。しかしながら、複合機１２０ａ、１２０ｂの数は、２つに限定されない。尚、以下の説明では、複合機１２０ａ、１２０ｂを総称する場合、これらを複合機１２０と表記する。
【００１１】
管理サーバ１１０は、情報処理装置の一例である。管理サーバ１１０は、履歴収集分析アプリケーションと、設定値管理アプリケーションとを有する。履歴収集分析アプリケーションは、複合機１２０で実行されたジョブの履歴情報や、複合機１２０に対するユーザの操作の履歴情報を収集し分析する。設定値管理アプリケーションは、複合機１２０で利用される設定値群を管理する。設定値管理アプリケーションは、複合機１２０の設定を変更すべきと判断した場合に、当該設定を複合機１２０に反映させる。本実施形態では、これらの２つのアプリケーションが、同一の管理サーバ１１０に搭載されている場合を例に挙げて説明する。しかしながら、これらの２つのアプリケーション同士の通信が可能な環境であれば、これらの２つのアプリケーションは、互いに別のサーバで動作しても構わない。
【００１２】
履歴収集分析アプリケーションは、ネットワーク１００を介して複合機１２０から送付されてくる履歴情報（ログ情報）を収集し、分析する。履歴収集分析アプリケーションは、履歴情報の分析の結果を受けて設定値管理アプリケーションと通信する。設定値管理アプリケーションは、履歴収集分析アプリケーションとの通信の結果に基づいて、複合機１２０ａ、１２０ｂのうち、設定の変更が必要な複合機の設定を変更する。
【００１３】
設定値管理アプリケーションは、管理サーバ１１０のデータベース（ＤＢ）の保持内容に変更があった場合、当該変更に合わせて複合機１２０のデータベース（ＤＢ）を更新する。また、設定値管理アプリケーションは、複合機１２０のデータベース（ＤＢ）の保持内容に変更があった場合、当該変更に合わせて管理サーバ１１０のデータベース（ＤＢ）を更新する。
【００１４】
複合機１２０は、複数種類の機能（例えば、プリント、コピー、ＦＡＸ）を実現する電子機器である。複合機１２０は、それらの機能の実行時の履歴を保持する機能と、それらの機能の実行時に利用された設定値を保持する機能と、管理サーバ１１０と通信する機能（それらの履歴や設定値を送信する機能等）とを有する。
【００１５】
図２は、管理サーバ１１０のハードウェアの構成の一例を示すブロック図である。管理サーバ１１０は、コンピュータとディスプレイとを有する一般的なＰＣ（Ｐｅｒｓｏｎａｌ Ｃｏｍｕｔｅｒ）でも良いし、複合機１２０と同様の複合機でも良い。管理サーバ１１０は、コントローラユニット２００、操作部２０９、および表示部２１０を含む。
【００１６】
コントローラユニット２００は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）２０１を有する。ＣＰＵ２０１は、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）２０２に格納されているブートプログラムによりＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）を起動する。ＣＰＵ２０１は、このＯＳ上で、ＨＤＤ（Ｈａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ）２０４に格納されているアプリケーションプログラムを実行する。ＣＰＵ２０１は、アプリケーションプログラムの実行によって各種処理を実現する。ＣＰＵ２０１の作業領域としてはＲＡＭ（Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）２０２が用いられる。ＨＤＤ２０４は、アプリケーションプログラムおよびマスターデータ等を格納する。マスターデータの管理方法に関する詳細については後述する。
【００１７】
ＣＰＵ２０１は、システムバス２０８を介して、ＲＯＭ２０２、ＲＡＭ２０３、操作部Ｉ／Ｆ２０５、表示部Ｉ／Ｆ２０６、およびネットワークＩ／Ｆ２０７と相互に接続される。操作部Ｉ／Ｆ２０５は、操作部２０９とのインタフェースである。操作部Ｉ／Ｆ２０５は、操作部２０９によってユーザにより入力された情報をＣＰＵ２０１に送出する。操作部２０９は、マウスおよびキーボード等を有する。表示部Ｉ／Ｆ２０６は、表示部２１０に表示すべき画像データを表示部２１０に対して出力する。表示部２１０は、コンピュータディスプレイを有する。ネットワークＩ／Ｆ２０７は、ネットワーク１００に接続される。ネットワークＩ／Ｆ２０７は、ネットワーク１００を介して、ネットワーク１００に接続された各装置との間で情報の入出力を行う。
【００１８】
図３は、複合機１２０のハードウェアの構成の一例を示すブロック図である。複合機１２０は、情報処理コントローラユニット３０１、プリンタコントローラユニット３０２、スキャナコントローラユニット３０３、プリンタ３０４、スキャナ３０５、および操作部３０６を含む。情報処理コントローラユニット３０１は、複合機１２０の動作に係る情報処理制御を統括するコントローラである。情報処理コントローラユニット３０１には、プリンタコントローラユニット３０２、スキャナコントローラユニット３０３、および操作部３０６が接続される。プリンタコントローラユニット３０２は、画像出力デバイスであるプリンタ３０４を制御する。スキャナコントローラユニット３０３は、画像入力デバイスであるスキャナ３０５を制御する。操作部３０６は、タッチパネルおよび各種のボタン等を有する。
【００１９】
図４は、複合機１２０の情報処理コントローラユニット３０１の構成の一例を示すブロック図である。情報処理コントローラユニット３０１は、ＣＰＵ４０１を有する。ＣＰＵ４０１は、ＲＯＭ４０２に格納されているブートプログラムによりＯＳを起動する。ＣＰＵ４０１は、このＯＳ上で、ＨＤＤ４０４に格納されているアプリケーションプログラムを実行する。ＣＰＵ４０１は、アプリケーションプログラムの実行によって各種処理を実現する。ＣＰＵ４０１の作業領域としてはＲＡＭ４０３が用いられる。また、ＲＡＭ４０３は、作業領域を提供すると共に、画像データを一時記憶するための画像メモリ領域を提供する。ＨＤＤ４０４は、アプリケーションプログラム、画像データ、および各種の設定値を格納する。複合機１２０における設定値の管理方法については後述する。
【００２０】
ＣＰＵ４０１は、システムバス４０９を介して、ＲＯＭ４０２、ＲＡＭ４０３、操作部Ｉ／Ｆ４０６、デバイスコントローラＩ／Ｆ４０８、ネットワークＩ／Ｆ４０５、および画像処理部４０７と相互に接続される。操作部Ｉ／Ｆ４０６は、操作部３０６とのインタフェースである。操作部Ｉ／Ｆ４０６は、操作部３０６が有するタッチパネルに合わせて表示すべき画像データを操作部３０６に対して出力する。また、操作部Ｉ／Ｆ４０６は、操作部３０６によってユーザにより入力された情報をＣＰＵ４０１に送出する。デバイスコントローラＩ／Ｆ４０８には、プリンタコントローラユニット３０２およびスキャナコントローラユニット３０３が接続される。デバイスコントローラＩ／Ｆ４０８は、画像データの同期系／非同期系の変換を行う。ネットワークＩ／Ｆ４０５は、ネットワーク１００に接続される。ネットワークＩ／Ｆ４０５は、ネットワーク１００を介して、ネットワーク１００に接続された各装置との間で情報の入出力を行う。画像処理部４０７は、画像処理、画像回転、画像圧縮、解像度変換、色空間変換、および階調変換などの処理を行う。尚、これらの処理は、プリンタ３０４に出力する画像データ、および、スキャナ３０５から入力された画像データに対して行われる。
【００２１】
図５は、管理サーバ１１０で動作する設定値管理アプリケーションによって管理されるマスターデータの構成の一例を示すブロック図である。図５に示すように、マスターデータ５０１は以下のものを有する。
設定値仕様管理ＤＢ５１０は、複合機１２０に対する設定の仕様を管理する。表示リソースＤＢ５１１は、複合機１２０の設定値を編集する際に表示する画面の表示リソースの情報を管理する。デバイス管理ＤＢ５１２は、管理サーバ１１０に登録されている複合機１２０の情報を管理する。デバイス構成情報管理ＤＢ５１３は、管理サーバ１１０に登録されている複合機１２０のオプション構成等の情報を管理する。
【００２２】
デバイス共通設定値ＤＢ５２１は、管理サーバ１１０に登録されている複数の複合機１２０に対して共通して設定される設定値を管理する。デバイス個別設定値ＤＢ５２０は、管理サーバ１１０に登録されている複数の複合機１２０に対して個別に設定される設定値を管理する。ユーザ設定値ＤＢ５３０は、管理サーバ１１０にログインするユーザの単位で複合機１２０に設定される設定値を管理する。デバイス共通設定値ＤＢ５２１、デバイス個別設定値ＤＢ５２０、およびユーザ設定値ＤＢ５３０は、何れもＫｅｙ−Ｖａｌｕｅの組み合わせで表現されるデータを持つ。デバイス共通設定値ＤＢ５２１、デバイス個別設定値ＤＢ５２０、ユーザ設定値ＤＢ５３０で管理される設定値は、それぞれ、管理サーバ１１０に登録されている全ての複合機１２０、１つの複合機１２０、管理サーバ１１０にログインするユーザに紐づく。
【００２３】
図６は、管理サーバ１１０で動作する設定値管理アプリケーション６００のソフトウェアの構成の一例を示すブロック図である。本実施形態では、設定値管理アプリケーション６００は、ＲＡＭ２０３、ＨＤＤ２０４、およびＲＯＭ２０２の何れかの記憶手段に記憶され、ＣＰＵ２０１により実行されるものとする。設定値管理アプリケーション６００は、設定データ管理部６１０、通信制御部６２０、および設定データ編集部６３０を有する。設定データ管理部６１０は、管理サーバ１１０に記憶されているマスターデータ５０１のうち、デバイス個別設定値ＤＢ５２０、デバイス共通設定値ＤＢ５２１、およびユーザ設定値ＤＢ５３０の読み書きを管理する。デバイス個別設定値ＤＢ５２０は、管理サーバ１１０で管理される設定値と同期して設定値が設定される複合機１２０の数だけ存在する。設定データ管理部６１０が管理するデバイス共通設定値ＤＢ５２１、デバイス個別設定値ＤＢ５２０、およびユーザ設定値ＤＢ５３０は、例えば、ＨＤＤ２０４に保存される。
【００２４】
通信制御部６２０は、ネットワークＩ／Ｆ２０７を介した外部装置との通信の制御を行う。通信制御部６２０は、制御部６２１と、通信処理部６２２とを有する。制御部６２１は、複合機１２０との設定値の同期処理を制御する。通信処理部６２２は、ネットワークＩ／Ｆ２０７を介した外部装置との通信処理を行う。
【００２５】
通信制御部６２０は、管理サーバ１１０と複合機１２０との間で行われる、設定値の同期通信を制御する。制御部６２１は、通信処理部６２２が複合機１２０から設定値更新情報を受信すると、設定値更新情報を設定データ管理部６１０に通知する。設定データ管理部６１０は、通信制御部６２０が複合機１２０より設定値更新情報を受信すると、デバイス共通設定値ＤＢ５２１、デバイス個別設定値ＤＢ５２０、およびユーザ設定値ＤＢ５３０内の設定値に、当該設定値更新情報を反映させる。
【００２６】
制御部６２１は、通信処理部６２２が複合機１２０より設定値更新要求を受信すると、設定データ管理部６１０に、設定値更新要求を通知する。これにより、設定データ管理部６１０は、複合機１２０に対して送信すべき設定値更新情報を作成し、制御部６２１に通知する。制御部６２１は、設定データ管理部６１０より通知された設定値更新情報を複合機１２０に送信するよう通信処理部６２２に指示する。通信処理部６２２は、先述した複合機１２０との通信処理を実行する。
【００２７】
設定データ編集部６３０は、ネットワーク１００経由で、設定値の閲覧および編集を可能にする通信機能を有する。設定データ編集部６３０は、一般的なＰＣやタブレット等のウェブブラウザから管理サーバ１１０にアクセスするために必要な機能を有する。設定データ編集部６３０は、ブラウザＵＩに設定値編集画面を表示して設定値の閲覧を可能にすると共に、設定値編集画面に対するユーザによる操作に基づいて設定値を編集する。設定データ編集部６３０は、このようにして設定値の閲覧および編集を実行するために、設定値仕様管理ＤＢ５１０および表示リソースＤＢ５１１に保持されている情報を利用する。また、管理サーバ１１０に登録されている複合機１２０の情報は、デバイス管理ＤＢ５１２に保持されている。複合機１２０のライセンスやハード構成等の情報は、デバイス構成情報管理ＤＢ５１３に保持されている。設定データ編集部６３０は、設定値編集画面に対し、設定値の表示・非表示の設定や編集禁則条件の設定等を行うために、デバイス管理ＤＢ５１２およびデバイス構成情報管理ＤＢ５１３を参照する。設定データ編集部６３０は、ブラウザＵＩ経由の指示を受けて設定データ管理部６１０を介して各ＤＢの値を読み書きすることができる。
【００２８】
図７は、管理サーバ１１０で動作する履歴収集分析アプリケーション７００のソフトウェア構成の一例を示すブロック図である。本実施形態では、履歴収集分析アプリケーション７００は、ＲＡＭ２０３、ＨＤＤ２０４、およびＲＯＭ２０２の何れかの記憶手段に記憶され、ＣＰＵ２０１により実行されるものとする。履歴収集分析アプリケーション７００は、履歴データ管理部７１０、サマリデータ管理部７１１、通信制御部７２０、テンプレート管理部７３０、テンプレート実行部７３１、および結果反映部７３２を有する。
【００２９】
履歴データ管理部７１０は、履歴蓄積ＤＢ７４０の読み書きを管理する。サマリデータ管理部７１１は、サマリＤＢ７４１の読み書きを管理する。テンプレート管理部７３０は、テンプレートＤＢ７５０の管理を行う。テンプレートＤＢ７５０は、履歴情報やサマリデータの分析に必要な情報が記述されたテンプレートを保持する。テンプレート実行部７３１は、テンプレートＤＢ７５０に保持されたテンプレートに従って処理を実施する。
【００３０】
本実施形態では、テンプレートには、ＤＢに対するデータの読み書きと、スクリプトによるデータの解析と、データの集計や加工等と、結果反映部７３２への通知とを含む処理を行うことがＳＱＬで記載される。テンプレートには、フィルタテンプレートと解析テンプレートの２種類がある。フィルタテンプレートは、履歴蓄積ＤＢ７４０の履歴情報を取得して分析し、分析した結果を示す情報を、サマリＤＢ７４１に書き込むことを含む処理を行うことが記載された情報である。本実施形態では、履歴蓄積ＤＢ７４０が、デバイスの第１の履歴情報を記憶する第１の記憶手段の一例である。また、フィルタテンプレートが、デバイスの履歴情報を取得することと、前記履歴情報のデータ量を削減した履歴情報を生成することと、前記データ量が削減された履歴情報を記憶することとを含む処理を実行することが示された第１の情報の一例である。また、テンプレートＤＢ７５０が、第１の情報を記憶する第２の記憶手段の一例である。
【００３１】
解析テンプレートは、フィルタテンプレートによってサマリＤＢ７４１に書き込まれた情報を取得して分析し、分析した結果に応じて、複合機１２０の設定値の変更を結果反映部７３２に指示することを含む処理を行うことが記載された情報である。結果反映部７３２は、複合機１２０の設定値の変更を、設定値管理アプリケーション６００に通知する。尚、以下の説明では、フィルタテンプレートと解析テンプレートを必要に応じてテンプレートと総称する。また、本実施形態では、解析テンプレートが、データ量が削減された履歴情報を取得することと、前記データ量が削減された履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された第２の情報の一例である。また、テンプレートＤＢ７５０が、第２の情報を記憶する第３の記憶手段の一例である。
【００３２】
本実施形態では、複数のテンプレートが、テンプレートＤＢ７５０に同時に登録され得る。テンプレート管理部７３０は、テンプレートのインストールやアクティベートを管理する。テンプレート管理部７３０は、テンプレートの新規登録時、動作停止時、およびインストール時に、当該テンプレートと、テンプレートＤＢ７５０に登録されている他のテンプレートとが動作か可能か否か等の判断を行う。テンプレートの詳細については図９を参照しながら後述する。
【００３３】
通信制御部７２０は、ネットワークＩ／Ｆ２０７を介した外部装置との通信の制御を行う。通信制御部７２０は、制御部７２１と、通信処理部７２２とを有する。制御部７２１は、複合機１２０から送信される履歴情報を解釈する。通信処理部７２２は、ネットワークＩ／Ｆ２０７を介した外部装置との通信処理を行う。
【００３４】
図８は、複合機１２０側のクライアントモジュール８００のソフトウェア構成の一例を示すブロック図である。
複合機１２０は、クライアントデバイスである。複合機１２０は、ユーザ設定値ＤＢ８１２と、デバイス設定値ＤＢ８１３と、履歴ＤＢ８２２とを有する。ユーザ設定値ＤＢ８１２は、複合機１２０の動作に必要な設定値のうち、複合機１２０にログインするユーザに紐づく設定値を保持する。デバイス設定値ＤＢ８１３は、複合機１２０の動作に必要な設定値のうち、複合機１２０に紐づく設定値を保持する。設定データ管理部８１０は、ユーザ設定値ＤＢ８１２およびデバイス設定値ＤＢ８１３に保持されるデータを管理する。履歴ＤＢ８２２は、複合機１２０に対して実施された操作や処理の履歴を保持する。履歴データ管理部８２０は、履歴ＤＢ８２２に保持されるデータを管理する。
【００３５】
ユーザ設定値ＤＢ８１２およびデバイス設定値ＤＢ８１３に保持される設定値は、設定値管理アプリケーション６００のＤＢに保持される設定値と同期がとられる。このため、設定データ同期処理部８１１は、その同期をとるための処理を、通信処理部８３０を用いて行う。一方、履歴ＤＢ８２２に保持される設定値は、履歴収集分析アプリケーション７００に送信される。この送信を実現するため、履歴データ送付部８２１は、履歴ＤＢ８２２に保持される設定値を、通信処理部８３０を通して、管理サーバ１１０（履歴収集分析アプリケーション７００）に通信する。
【００３６】
複合機１２０は、ユーザ認証部８４０および表示部８６０を有する。表示部８６０は、複合機１２０の設定値や履歴情報を操作部３０６に表示して閲覧するための表示アプリケーションを有する。ユーザ認証部８４０は、複合機１２０を操作するユーザを識別するためのログイン処理を実行する。
アプリケーション８５０は、実際に設定データ管理部８１０を通して設定値を読み書きしたり、履歴データ管理部８２０を通して処理結果を書き込んだりするアプリケーションである。アプリケーション８５０は、複数存在する。アプリケーション８５０は、例えば、コピー、ＦＡＸ、ＳＥＮＤ、プリント等のジョブを実行するアプリケーションである。
【００３７】
図９は、履歴収集分析アプリケーション７００におけるデータの流れの一例を示す図である。図９を参照しながら、フィルタテンプレートと解析テンプレートを利用して、複合機１２０の履歴情報の分析を行う際の処理の流れの一例について説明する。
フィルタテンプレート９０１、９０２、９２１および解析テンプレート９１１、９１２、９１３、９２２は、何れもテンプレートＤＢ７５０に別々のデータベースファイルとして保持される。フィルタテンプレート９０１、９０２、９２１および解析テンプレート９１１、９１２、９１３、９２２は、テンプレート管理部７３０によって管理される。テンプレート実行部７３１は、それぞれのテンプレートの記載に従って処理を実行する。
【００３８】
この際、テンプレート実行部７３１は、フィルタテンプレート９０１、９０２、９２１の記載に従って、履歴蓄積ＤＢ７４０やサマリ９３２から履歴情報を読み出す。そして、テンプレート実行部７３１は、読み出した履歴情報の集計や加工等を行い、その結果を示す履歴情報をサマリＤＢ７４１に書き込む。本実施形態では、テンプレート実行部７３１が、前記第１の情報および前記第２の情報に示された処理を実行する実行手段の一例である。
【００３９】
以下の説明では、履歴蓄積ＤＢ７４０に記憶される履歴情報を必要に応じて履歴蓄積データと称する。また、サマリＤＢ７４１に蓄積される履歴情報を必要に応じてサマリデータと称する。サマリデータは、テンプレート実行部７３１が、履歴蓄積データをフィルタリングすることによって得られる。
また、本実施形態では、履歴蓄積データは、フィルタテンプレート９０１、９０２によって、その内容が書き換えられることはないものとする。これに対し、サマリデータは、フィルタテンプレート９０１、９０２、９２１によって、その内容が書き換えられることがあるものとする。
テンプレート実行部７３１は、解析テンプレートの記載に従って、サマリＤＢ７４１からサマリデータを読み出して解析し、その解析の結果を結果反映部７３２に通知する。
【００４０】
次に、解析テンプレート９１１が実行されるまでの履歴収集分析アプリケーション７００における処理の一例を説明する。まず、テンプレート実行部７３１は、フィルタテンプレート９０１の記載に従って、履歴蓄積ＤＢ７４０から必要な履歴蓄積データを読み出して、集計や加工等、履歴蓄積データをフィルタリングするための処理を行うことにより、サマリデータを生成する。そして、テンプレート実行部７３１は、フィルタテンプレート９０１の記載に従って、サマリデータを、サマリ９３１という１つのデータベースファイルとしてサマリＤＢ７４１に保存する。尚、テンプレート実行部７３１は、フィルタテンプレート９０１の最初の実行時に、フィルタテンプレート９０１の記載に従って、サマリ９３１となるデータベースファイルを生成する。テンプレート実行部７３１は、フィルタテンプレート９０１の２回目以降の実行時には、既に生成したサマリ９３１の内容を書き換える。このことは、サマリ９３１以外のサマリについても同じである。
【００４１】
解析テンプレート９１１は、サマリ９３１を読み出すように書かれているテンプレートである。テンプレート実行部７３１は、解析テンプレート９１１の記載に従って、サマリ９３１からサマリデータを読み出して解析する。そして、テンプレート実行部７３１は、解析テンプレート９１１の記載に従ってサマリ９３１のサマリデータを解析した結果から、複合機１２０にフィードバックが必要な内容があると判定すると、その内容を結果反映部７３２に通知する。このように本実施形態では、テンプレート実行部７３１は、フィルタテンプレート９０１の記載に従って、履歴蓄積ＤＢ７４０に集められた履歴蓄積データを一度フィルタリングし、解析しやすいように変更する。その後、テンプレート実行部７３１は、解析テンプレート９１１の記載に従って、別途、解析処理を実行する。
【００４２】
また、解析テンプレート９１２にも、解析テンプレート９１１と同様に、サマリ９３１からデータを読み出す処理が記載されている。このように、テンプレート実行部７３１は、複数の解析テンプレート９１１、９１２の記載に基づき、１つのサマリを読み出すことも可能である。また、図９では図示を省略するが、テンプレート実行部７３１は、１つの解析テンプレートの記載に基づき、複数のサマリのそれぞれからサマリデータを読み出すことも可能である。即ち、複数のフィルタテンプレートでそれぞれ生成された複数のサマリ―データを１つの解析テンプレートが読み出して解析することも可能である。
【００４３】
また、テンプレート実行部７３１は、フィルタテンプレート９０２の記載に従って、集計や加工等、履歴蓄積データをフィルタリングするための処理を行うことにより、サマリデータを生成し、サマリ９３２に保存する。さらに、テンプレート実行部７３１は、フィルタテンプレート９２１の記載に従って、サマリ９３２からサマリデータを読み出す。そして、テンプレート実行部７３１は、フィルタテンプレート９２１の記載に従って、サマリデータに対して集計や加工等、サマリデータをフィルタリングするための処理を行うことにより、サマリデータをさらに生成し、サマリ９３３に保存する。テンプレート実行部７３１は、解析テンプレート９２２の記載に従って、サマリ９３３からサマリデータを読み出して解析する。そして、テンプレート実行部７３１は、解析テンプレート９２２の記載に従ってサマリ９３３のサマリデータを解析した結果から、複合機１２０にフィードバックが必要な内容があると判定すると、その内容を結果反映部７３２に通知する。
【００４４】
例えば、解析テンプレート９１３が利用するサマリ９３２のサマリデータは、１時間周期で集計されるデータであるのに対して、解析テンプレート９２２が利用するサマリ９３３のサマリデータは、１日周期で集計されるデータであるとする。このような場合、元のデータ（履歴蓄積データ）が同じであっても、サマリ９３２のサマリデータをさらにフィルタリングしたサマリ９３３を解析テンプレート９２２が利用できるようフィルタテンプレート９０２、９２１を多段に配置するのが好ましい。解析テンプレート９２２に従う解析が行い易くなるためである。
【００４５】
ここでフィルタテンプレート９０１、９０２が、前記第１の履歴情報を取得することと、前記第１の履歴情報のデータ量を削減した第２の履歴情報を生成することと、前記第２の履歴情報を記憶することとを含む処理を実行することが示された情報の一例である。また、フィルタテンプレート９２１が、前記第２の履歴情報を取得することと、前記第２の履歴情報のデータ量を削減した第３の履歴情報を生成することと、前記第３の履歴情報を記憶することとを含む処理を実行することが示された情報の一例である。また、解析テンプレート９１１〜９１３が、前記第２の履歴情報を取得することと、前記第２の履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された情報の一例である。また、解析テンプレート９２２が、前記第３の履歴情報を取得することと、前記第３の履歴情報に基づいてデバイスに対する指示の内容を決定することとを含む処理を実行することが示された情報の一例である。
【００４６】
図１０は、フィルタテンプレートの内容の一部の一例を示す図である。具体的に図１０（ａ）は、スクリプト記載部１００１の一部の一例を示す図である。図１０（ｂ）は、マニュフェスト記載部１００２の一部の一例を示す図である。図１０に示す例では、フィルタテンプレートは、スクリプト記載部１００１と、マニュフェスト記載部１００２との２つのファイルを有する。スクリプト記載部１００１には、フィルタテンプレートに従って行われる処理の実体が記載される。マニュフェスト記載部１００２には、テンプレート管理部７３０がフィルタテンプレートを管理するために必要とする各種の管理情報が記載される。スクリプト記載部１００１は、様々なサーバ環境で実行できるようＪａｖａＳｃｒｉｐｔ（登録商標）のような汎用的なスクリプト言語で記載されることが望ましい。
【００４７】
図１０に示す例では、フィルタテンプレートの記載に従って処理される履歴蓄積データが、表１に示すようなプリントジョブログであることを想定している。表１に示す例では、プリントジョブログには、少なくとも、ログ種、プリントジョブの実行日、開始時刻、および終了時刻と、印刷ファイル名と、ユーザ名と、カラーモノクロの別と、印刷枚数と、終了ステータスとが表形式で保存される。尚、表１では、プリントジョブログを示すので、ログ種（Ｔｙｐｅ）は、全てプリントジョブログとなる。ただし、異なるログ種が履歴蓄積ＤＢ７４０に保存されてもよい。この場合、ログ種には、履歴蓄積データの種類を識別する情報が記載される。
【００４８】
【表１】
2018060285.tif 000003
【００４９】
以下、テンプレート実行部７３１が、スクリプト記載部１００１およびマニュフェスト記載部１００２の記載に基づいて次の処理を行うことを想定して説明する。即ち、ここでは、テンプレート実行部７３１は、履歴蓄積ＤＢ７４０に保存されているプリントジョブログからプリントジョブログのデータを抽出し、表２に示すように、１日毎の出力枚数の集計データを生成してサマリＤＢ７４１に保存することを想定する。
【００５０】
【表２】
2018060285.tif 000004
【００５１】
スクリプト記載部１００１には、まず、データ読み出し処理１０１１がＳＱＬ文で記載される。データ読出し処理１０１１には、履歴蓄積ＤＢ７４０からデータを読み出すことが記載される。図１０（ａ）に示す例ではデータ読み出し処理１０１１には、プリントジョブログから、日付と出力枚数とを読み出すことが記載される。続いて、スクリプト記載部１００１には、集計処理１０１２が記載される。集計処理１０１２には、データ読み出し処理１０１１によって読み出されたデータを集計することが記載される。図１０（ａ）に示す例では集計処理１０１２には、1日あたりの出力枚数の集計値を計算することが記載される。続いて、スクリプト記載部１００１には、書き込み処理１０１３が記載される。書き込み処理１０１３には、集計処理１０１２に従う集計の結果をサマリＤＢ７４１へ書き込むことが記載される。図１０（ａ）に示す例では書き込み処理１０１３には、１日あたりの集計枚数を１レコードとして挿入することが記載される。
【００５２】
テンプレート実行部７３１が、スクリプト記載部１００１に記載された処理を実行すると、表２に示すサマリデータが生成される。表２に示すサマリデータには、表１に示すプリントジョブログの項目のうち、実行日（Ｄａｔｅ）および出力枚数（Ｃｏｕｎｔ）以外の項目（開始時刻、終了時刻、印刷ファイル名、ユーザ名、カラーモノクロの別、終了ステータス等）の情報は含まれない。従って、サマリデータのデータ量は、履歴蓄積データのデータ量よりも少なくなる。
【００５３】
また、スクリプト記載部１００１には、書き込み処理１０１４が記載される。書き込み処理１０１４には、サマリＤＢ７４１に管理情報を書き込む処理が記載される。図１０（ａ）に示す例では書き込み処理１０１４には、テンプレート実行部７３１がプリントジョブログをどこまで読み出したかを記録するため、プリントジョブログのレコードのうち、処理を終えた最終レコードをサマリＤＢ７４１に書き込むことが記載される。テンプレート実行部７３１は、フィルタテンプレート（スクリプト記載部１００１）の記載に従う次回の処理時に、この最終レコードを参照する。従って、テンプレート実行部７３１は、同じ情報の２度読みを行わないようにすることができる。
【００５４】
マニュフェスト記載部１００２には、テンプレート管理部７３０がフィルタテンプレートを管理するために必要とする各種の管理情報と、テンプレート管理部７３０が実際にフィルタテンプレートを実行するために必要な各種情報が記載される。このようにマニュフェスト記載部１００２には、テンプレート実行部７３１がスクリプト記載部１００１に記載される処理を実行するために参照する情報が含まれる。マニュフェスト記載部１００２は、ＪＳＯＮのような汎用データ構造の表現が可能なフォーマットで記載されるのが好ましい。図１０（ｂ）に示す例ではマニュフェスト記載部１００２には、スクリプト記載部１００１を有するファイルのファイル名（JSFilename）が記載される。また、マニュフェスト記載部１００２には、スクリプト記載部１００１の記載に従って読み出すデータを有するデータベースファイル（履歴蓄積ＤＢ７４０内のデータベースファイルやサマリ９３２）のファイル名（FromDBFilename）が記載される。また、マニュフェスト記載部１００２には、スクリプト記載部１００１の記載に従ってサマリデータを書き込むデータベースファイル（サマリ９３１、９３２、９３３）のファイル名（ToDBFilename）が記載される。また、マニュフェスト記載部１００２には、スクリプト記載部１００１に従う処理の初期起動日時（StartTime）および起動周期（RepeatFreq）が記載される。マニュフェスト記載部１００２には、スクリプト記載部１００１に従う処理において読み出されるログの種類（ReadLogType）が記載される。テンプレート実行部７３１は、スクリプト記載部１００１の記載に従う処理を実行する際に、これらを参照する。
【００５５】
本実施形態では、表１に示すプリントジョブログ（表履歴蓄積データ）が、複数の項目についての履歴情報を有する第１の履歴情報の一例である。表２に示す表サマリデータが、前記複数の項目の一部の項目についての履歴情報を有する、データ量が削減された履歴情報の一例である。また、スクリプト記載部１００１が、第１の情報の第１の部分の一例である。また、マニュフェスト記載部１００２が、第１の情報の第２の部分の一例である。また、FromDBFilenameが、前記履歴情報の取得元を特定するための情報の一例である。また、ToDBFilenameが、前記データ量が削減された履歴情報の記憶先を特定するための情報の一例である。
【００５６】
尚、この例では、フィルタテンプレートに従う処理の実行周期として、マニュフェスト記載部１００２に、初期起動日時と起動周期とが記載される場合を例に挙げて説明した。しかしながら、必ずしもこのようにする必要はない。フィルタテンプレートに従う処理は、例えば、フィルタテンプレートに従う処理の対象となるログ種の履歴情報が、履歴蓄積ＤＢ７４０に書き込まれる度に行われるようにしてもよい。また、フィルタテンプレートに従う処理は、このような履歴情報が履歴蓄積ＤＢ７４０に１０回書き込まれる度に行われるようにしてもよい。このように、フィルタテンプレート（スクリプト記載部１００１）に従う処理は、イベントドリブンで起動してもよい。
【００５７】
図１１は、解析テンプレートの内容の一部の一例を示す図である。具体的に図１１（ａ）は、スクリプト記載部１１０１の一部の一例を示す図である。図１１（ｂ）は、マニュフェスト記載部１１０２の一部の一例を示す図である。図１１に示す例では、解析テンプレートは、フィルタテンプレート同様に、スクリプト記載部１１０１と、マニュフェスト記載部１１０２の２つのファイルを有する。スクリプト記載部１１０１には、解析テンプレートに従って行われる処理の実体が記載される。マニュフェスト記載部１１０２には、テンプレート管理部７３０が解析テンプレートを管理するために必要とする各種の管理情報が記載される。スクリプト記載部１１０１は、様々なサーバ環境で実行できるようＪａｖａＳｃｒｉｐｔ（登録商標）のような汎用的なスクリプト言語で記載されることが望ましい。
【００５８】
スクリプト記載部１１０１には、まず、データ読み出し処理１１１１がＳＱＬ文で記載される。データ読み出し処理１１１１には、サマリＤＢ７４１からデータを読み出すことが記載される。図１１（ａ）に示す例ではデータ読出し処理１１１１には、図１０のフィルタテンプレートに従う処理によって生成されたサマリデータから、１日毎の出力枚数の情報（表２を参照）を取得することが記載される。続いて、スクリプト記載部１１０１には、集計処理１１１２が記載される。集計処理１１１２には、データ読み出し処理１１１１に従って取得されたデータを集計することが記載される。図１１（ａ）に示す例では集計処理１１１２には、期間内の出力枚数の１日あたり平均値を計算することが記載される。続いて、スクリプト記載部１１０１には、反映処理１１１３が記載される。反映処理１１１３は、集計処理１１１２に従う集計の結果を複合機１２０に反映させるための処理の内容が記載される。図１１（ａ）に示す例では反映処理１１１３には、期間内の出力枚数の１日あたり平均値が閾値以上であれば、複合機１２０の特定の設定を変更するという処理が記載される。テンプレート実行部７３１は、反映処理１１１３に従う処理の結果を、結果反映部７３２に通知する。結果反映部７３２は、複合機１２０の特定の設定を変更することを、設定値管理アプリケーション６００に指示する。
【００５９】
マニュフェスト記載部１１０２には、テンプレート管理部７３０が解析テンプレートを管理するために必要とする各種の管理情報と、テンプレート管理部７３０が実際に解析テンプレートを実行するために必要な各種情報が記載される。このようにマニュフェスト記載部１１０２には、テンプレート実行部７３１がスクリプト記載部１１０１に記載される処理を実行するために参照する情報が含まれる。マニュフェスト記載部１１０２は、ＪＳＯＮのような汎用データ構造の表現が可能なフォーマットで記載されるのが望ましい。図１１（ｂ）に示す例ではマニュフェスト記載部１１０２には、スクリプト記載部１１０１を有するファイルのファイル名（JSFilename）が記載される。また、マニュフェスト記載部１１０２には、スクリプト記載部１１０１の記載に従って読み出すデータを有するデータベースファイル（サマリ９３１、９３２、９３３）のファイル名（FromDBFilename）が記載される。また、マニュフェスト記載部１１０２には、スクリプト記載部１１０１に従う処理の初期起動日時（StartTime）および起動周期（RepeatFreq）が記載される。また、マニュフェスト記載部１１０２には、スクリプト記載部１１０１の記載に従って読み出すデータベースファイル（サマリ９３１、９３２、９３３）の最初のレコード（FirstRecord）と最後のレコード（LastRecord）が記載される。また、マニュフェスト記載部１１０２には、スクリプト記載部１１０１の記載に従う処理で使用する閾値（Threshold）が記載される。この閾値は、スクリプト記載部１１０１の記載に従う処理の結果として得られる値と比較されるものである。テンプレート実行部７３１は、スクリプト記載部１１０１の記載に従う処理を実行する際に、これらを参照する。これらのうち、最初のレコード、最後のレコード、および閾値は、解析テンプレートの中で参照される値になり、解析テンプレートのインストール後の動作微調整として編集することも可能なデータである。また、解析テンプレート（スクリプト記載部１１０１）に従う処理は、フィルタテンプレートと同様に、周期的に起動するものではなく、イベントドリブンで起動してもよい。
【００６０】
スクリプト記載部１１０１が、第２の情報の第１の部分の一例である。また、マニュフェスト記載部１１０２が、第２の情報の第２の部分の一例である。また、FromDBFilenameが、前記データ量が削減された履歴情報の取得元を特定するための情報の一例である。また、ToDBFilenameが、前記前記デバイスに対する指示の内容の記憶先を特定するための情報の一例である。
解析テンプレートの記載に従う処理では、フィルタテンプレートと異なり、処理の結果は、データベースファイル（サマリ９３１、９３２、９３３）に書き込まれない。従って、マニュフェスト記載部１１０２には、スクリプト記載部１１０１の記載に従ってデータを書き込むデータベースファイルのファイル名（ToDBfilename）の欄には"ＮＵＬＬ"が記載される。このようにスクリプト記載部１１０１にファイル名（ToDBfilename）の欄を設け、この欄に"ＮＵＬＬ"を設定する。このようにすることによって、フィルタテンプレートと解析テンプレートとを同じフォーマットのものとし、これらを区別することなく作成することができる。
【００６１】
図１０、図１１の例では、テンプレート実行部７３１は、フィルタテンプレートの記載に従って、履歴情報から日付と印刷枚数とを取り出した後、解析テンプレートの記載に従って、日付毎の印刷枚数を集計し、集計値が閾値を超えたか否かを判定する。テンプレート実行部７３１は、集計値が閾値を超えた場合、複合機１２０の特定キーの値を制御することを結果反映部７３２に通知する。しかしながら、フィルタテンプレートおよび解析テンプレートの内容は、このようなものに限定されない。例えば、以下のようなユースケースを実現することができる。
【００６２】
第１の例として、テンプレート実行部７３１は、曜日ごとや時間帯ごとに印刷枚数を集計するフィルタテンプレートを実行する。図１０、図１１の例と同様に、このようなテンプレートにより、サマリデータには、表１に示すプリントジョブログの項目のうち、実行日（Ｄａｔｅ）および出力枚数（Ｃｏｕｎｔ）以外の項目の情報は含まれない。即ち、サマリデータには、開始時刻、終了時刻、印刷ファイル名、ユーザ名、カラーモノクロの別、および終了ステータス等の情報は含まれない。従って、サマリデータのデータ量は、履歴蓄積データのデータ量よりも少なくなり削減される。
【００６３】
テンプレート実行部７３１は、解析テンプレートの記載に従い、特定の曜日や時間帯の印刷枚数が閾値を超えたか否かを判定する。テンプレート実行部７３１は、特定の曜日や時間帯の印刷枚数が閾値を超えていない場合、その曜日や時間帯に複合機１２０をスリープ状態に移行せずに即印刷可能なように待機させることを結果反映部７３２に通知する。テンプレート実行部７３１は、このようにせずに、その曜日や時間帯だけ印刷の速度を変更前よりも高速にして印刷を可能にすることを結果反映部７３２に通知するようにしてもよい。このようにすれば、複合機１２０における印刷物の生産性の向上を狙うテンプレートを作成することが可能である。
【００６４】
第２の例として、テンプレート実行部７３１は、ユーザ毎にログ種を集計するフィルタテンプレートを実行する。このケースでは、テンプレート実行部７３１は、ログ種（Ｔｙｐｅ）とユーザ名（Ｕｓｅｒ）の情報を抽出する。このため、サマリデータには、表１に示すプリントジョブログの項目のうち、ログ種（Ｔｙｐｅ）およびユーザ名（Ｕｓｅｒ）以外の項目の情報は含まれない。即ち、サマリデータには、実行日、出力枚数、開始時刻、終了時刻、印刷ファイル名、カラーモノクロの別、終了ステータス等の情報は含まれない。従って、サマリデータのデータ量は、履歴蓄積データのデータ量よりも少なくなり削減される。
【００６５】
テンプレート実行部７３１は、解析テンプレートの記載に従い、ユーザごとにログ種を集計し、その結果に基づいて、特定のジョブ（例えばＳＥＮＤ）の実行回数が閾値を超えるユーザがいるか否かを判定する。テンプレート実行部７３１は、特定のジョブ（例えばＳＥＮＤ）の実行回数が閾値を超えるユーザがいる場合、そのユーザのログイン後の初期画面を、そのジョブを実行するアプリケーションが起動している状態に変更することを結果反映部７３２に通知する。このようにすることによって、ユーザの複合機１２０の使い勝手の向上を狙うテンプレートを作成することが可能である。
【００６６】
第３の例として、テンプレート実行部７３１は、プリントジョブログから特定のユーザの印刷ファイル名と印刷した時間とを抽出するフィルタテンプレートを実行する。このケースでは、テンプレート実行部７３１は、ログ種（Ｔｙｐｅ）、ユーザ名（Ｕｓｅｒ）、印刷ファイル名（ＦｉｌｅＮａｍｅ）、実行日（Ｄａｔｅ）、および終了時刻（ＥｎｄＴｉｍｅ）の情報を抽出する。このため、サマリデータには、表１に示すプリントジョブログの項目のうち、ログ種（Ｔｙｐｅ）、ユーザ名（Ｕｓｅｒ）、印刷ファイル名（ＦｉｌｅＮａｍｅ）、実行日（Ｄａｔｅ）、および終了時刻（ＥｎｄＴｉｍｅ）以外の項目の情報は含まれない。即ち、サマリデータには、出力枚数、開始時刻、カラーモノクロの別、および終了ステータス等の情報は含まれない。従って、サマリデータのデータ量は、履歴蓄積データのデータ量よりも少なくなり削減される。
【００６７】
テンプレート実行部７３１は、解析テンプレートの記載に従い、ユーザごとに、印刷ファイル名、ログ種、実行日、および終了時刻を集計する。そして、テンプレート実行部７３１は、その結果に基づいて、同一名称のファイルを所定の時間内に複数回印刷することを一定回数（閾値を上回る回数）だけ指示しているユーザがいるか否かを判定する。テンプレート実行部７３１は、同一名称のファイルを所定の時間内に複数回印刷することを一定回数だけ指示しているユーザがいる場合、そのユーザは印刷のやり直しが多いユーザであると判断する。そして、テンプレート実行部７３１は、印刷時に設定内容の確認画面を表示することを結果反映部７３２に通知する。このようにすることによって、ユーザのミスオペレーションの防止を狙うテンプレートを作成することが可能である。
【００６８】
以上のように本実施形態では、管理サーバ１１０は、複合機１２０の履歴情報（ジョブログ、操作ログ、エラーログ等）を履歴蓄積ＤＢ７４０に集め、それを元に、テンプレートを数多く作って投入する。このようにすることによって、複合機１２０の使い勝手を向上する設定状態を作ることができる。
【００６９】
続いて図１２−１、図１２−２のフローチャートを参照しながら、テンプレート管理部７３０がテンプレートをインストールする際の処理の一例について説明する。図１２−１は、解析テンプレートをインストールする際のテンプレート管理部７３０の処理の一例を説明するフローチャートである。図１２−２は、フィルタテンプレートをインストールする際のテンプレート実行部７３１の処理の一例を説明するフローチャートである。図１２−１および図１２−２のフローチャートの処理は、例えば、管理サーバ１１０のＣＰＵ２０１を用いることによって実現される。
【００７０】
まず、図１２−１のフローチャートを参照しながら、解析テンプレートをインストールする際のテンプレート管理部７３０の処理の一例を説明する。
テンプレート管理部７３０は、複数のテンプレートの実行を制御するためにテンプレートに用意されたマニュフェスト記載部１００２、１１０２に記載の内容に従ってテンプレートのインストールを行う。
【００７１】
テンプレート管理部７３０は、解析の対象となるサマリデータが存在しない場合、解析テンプレートをインストールできない。このため、テンプレート管理部７３０は、解析テンプレートのインストールの前に、解析テンプレートで解析の対象となるサマリデータの存在を確認する。
テンプレート管理部７３０は、ステップＳ１２０１において、解析テンプレートのインストールの開始の依頼を受けると、ステップＳ１２０２において、インストールの対象の解析テンプレートのマニュフェスト記載部１１０２を読み出す。次に、ステップＳ１２０３において、テンプレート管理部７３０は、マニュフェスト記載部１１０２から、データベースファイルのファイル名（FromDBFilename）を読み出す。そして、テンプレート管理部７３０は、マニュフェスト記載部１１０２から読み出したファイル名のフィルタテンプレートが、テンプレートＤＢ７５０に存在しているか否か（インストールされているか否か）を判定する。
【００７２】
この判定の結果、テンプレートＤＢ７５０にフィルタテンプレートが存在している場合、処理は、ステップＳ１２０４に進む。そして、テンプレート管理部７３０は、インストールの対象の解析テンプレートの動作を実行するための処理を行う。例えば、テンプレート管理部７３０は、マニュフェスト記載部１１０２に記載のタイミングで処理を起動できるように、当該解析テンプレートの実行のタイミングをスケジューリングすることを含むインストール処理を行う。一方、テンプレートＤＢ７５０にフィルタテンプレートが存在していない場合、処理は、ステップＳ１２０５に進む。ステップＳ１２０５において、テンプレート管理部７３０は、テンプレートのインストールをエラーとし、そのことを示す情報を表示部２１０に表示する。
【００７３】
続いて、図１２−２のフローチャートを参照しながら、フィルタテンプレートをインストールする際のテンプレート管理部７３０の処理の一例を説明する。
テンプレート管理部７３０は、ステップＳ１２１１において、フィルタテンプレートのインストールの開始の依頼を受けると、ステップＳ１２１２において、インストールの対象のフィルタテンプレートのマニュフェスト記載部１００２を読み出す。次に、ステップＳ１２１３において、テンプレート管理部７３０は、マニュフェスト記載部１１０２から、ログの種類（ReadLogType）を読み出す。そして、テンプレート管理部７３０は、マニュフェスト記載部１１０２から読み出したログの種類と同一のログ種を読み出す他のフィルタテンプレートがテンプレートＤＢ７５０に存在しているか否かを判定する。この判定の結果、同一のログ種を読み出す他のフィルタテンプレートがテンプレートＤＢ７５０に存在している場合、同一のレコードの読み出しが行われる。このため、管理サーバ１１０は、当該レコードを削除するタイミングを制御する必要がある。よって、処理は、ステップＳ１２１４に進む。一方、同一のログ種を読み出す他のフィルタテンプレートがテンプレートＤＢ７５０に存在していない場合、処理は、ステップＳ１２１４を省略して後述するステップＳ１２１５に進む。
【００７４】
ステップＳ１２１４において、テンプレート管理部７３０は、インストールの対象のフィルタテンプレートが、同一のログ種を読み出すフィルタテンプレートの中で、最長の起動周期（RepeatFreq）のフィルタテンプレートであるか否かを判定する。この判定の結果、インストールの対象のフィルタテンプレートの起動周期が最長である場合、処理は、ステップＳ１２１５に進む。一方、インストールの対象のフィルタテンプレートの起動周期が最長でない場合、処理は、ステップＳ１２１５を省略して後述するステップＳ１２１６に進む。
【００７５】
ステップＳ１２１５において、テンプレート管理部７３０は、インストールの対象のフィルタテンプレートを、当該フィルタテンプレートが読み出すログ種についての代表テンプレートとする。本実施形態では、フィルタテンプレートの起動周期を使って、レコードの削除制御がログ種ごとに行われる。代表テンプレートの挙動の一例については後述する。
次に、ステップＳ１２１６において、テンプレート管理部７３０は、インストールの対象のフィルタテンプレートの動作を実行させるための処理を行う。例えば、テンプレート管理部７３０は、マニュフェスト記載部１１０２に記載のタイミングで処理を起動できるように、当該フィルタテンプレートの実行のタイミングをスケジューリングすることを含む処理を行う。
【００７６】
本実施形態では、テンプレート実行部７３１が削除する対象となるレコードは、履歴蓄積ＤＢ７４０に蓄積されているレコードであるものとする。従って、マニュフェスト記載部１００２のファイル名（FromDBFilename）として、履歴蓄積ＤＢ７４０に存在するデータベースファイルのファイル名が記載されているフィルタテンプレートが、代表テンプレートになる。言い換えると、フィルタテンプレート９２１のように、サマリを読み出すことが記載されているフィルタテンプレートは、代表テンプレートにならない。また、インストールの対象のフィルタテンプレートと同一のログ種を読み出すことが記載されているフィルタテンプレートでも、サマリを読み出すことが記載されているフィルタテンプレートは、ステップＳ１２１３の処理で他のフィルタテンプレートにならない。図９に示す例では、フィルタテンプレート９２１は、ステップＳ１２１３の処理で他のフィルタテンプレートにならない。
【００７７】
次に、複合機１２０の履歴情報が集め、複合機１２０の制御が実施する際の情報処理システムの一連の処理の一例を、図１３−１、図１３−２のフローチャートを参照しながら説明する。
【００７８】
図１３−１は、履歴情報を履歴蓄積ＤＢ７４０に保存する際の情報処理システムの動作概要の一例を説明するフローチャートである。図１３−２は、複合機１２０の設定を変更する際の情報処理システムの動作の一例を説明するフローチャートである。図１３−１および図１３−２のフローチャートの処理は、例えば、管理サーバ１１０のＣＰＵ２０１と、複合機１２０のＣＰＵ４０１とを用いることによって実現される。
【００７９】
ステップＳ１３２１において、複合機１２０のアプリケーション８５０は、ジョブを実行する。ジョブは、例えば、コピー、ＦＡＸ、ＳＥＮＤ、プリント等のジョブを含む。その後、ステップＳ１３２２において、複合機１２０のアプリケーション８５０は、ステップＳ１３２１で実行したジョブの履歴情報を履歴ＤＢ８２２に書き込む。この後、ステップＳ１３２３において、複合機１２０の履歴データ送付部８２１は、履歴収集分析アプリケーション７００に対し、ステップＳ１３２２で書き込まれた履歴情報を送付する。
ステップＳ１３０１において、履歴収集分析アプリケーション７００の履歴データ管理部７１０は、履歴情報を受信すると、当該履歴情報を履歴蓄積ＤＢ７４０に保存する。
【００８０】
テンプレート実行部７３１では、テンプレート管理部７３０の指示でテンプレート毎にマニュフェスト記載部１００２、１１０２に記載された起動タイミングが来たら動作するようタスクが準備されている。本実施形態では、起動タイミングは、初期起動日時および起動周期により特定される。また、起動タイミングは、時刻によるタイマ発火や対象ログの書き込み等により特定されるようにしてもよい。ステップＳ１３０２において、テンプレート実行部７３１は、各テンプレートについて、テンプレートを実行するタイミングになるまで待機する。実行するタイミングになると、処理は、ステップＳ１３０３に進む。ステップＳ１３０３において、テンプレート実行部７３１は、テンプレート内のスクリプト記載部１００１、１１０１に記載された処理を実施する。
【００８１】
テンプレート実行部７３１は、フィルタテンプレートを実行する場合、サマリデータを作成する。また、テンプレート実行部７３１は、解析テンプレートを実行する場合、複合機１２０の設定値の変更処理の指示を伴うことがある。その場合、結果反映部７３２は、テンプレート実行部７３１からの指示に従って、複合機１２０の設定値の変更を指示する。ここで、複合機１２０の設定値の変更を行うアクションの記載が解析テンプレートにある場合、結果反映部７３２は、複合機１２０の設定値の変更を設定値管理アプリケーション６００に通知する。ステップＳ１３１１において、設定データ管理部６１０は、複合機１２０の設定値の変更の通知を受ける。そして、設定データ管理部６１０は、その通知に示されている設定値に応じて、デバイス個別設定値ＤＢ５２０、デバイス共通設定値ＤＢ５２１、およびユーザ設定値ＤＢ５３０の何れかのＤＢを更新する。
【００８２】
一方、複合機１２０の設定データ同期処理部８１１は、自身に定義されたタイミングで設定値管理アプリケーション６００の設定データ管理部６１０に対して、複合機１２０の設定値の更新が無いかを問い合わせる。設定データ同期処理部８１１は、例えば、定期的なポーリングにより、この問い合わせを行ったり、ユーザのログインがあった場合に、この問い合わせを行ったりすることができる。ステップＳ１３２４以降は、この問い合わせ以降の情報処理システムの動作の流れの一例である。
【００８３】
ステップＳ１３２４において、複合機１２０の設定データ同期処理部８１１は、最終同期時刻以降に、複合機１２０の設定値の変更が無いか否かを設定値管理アプリケーション６００に問い合わせる。即ち、複合機１２０の設定データ同期処理部８１１は、当該複合機１２０の設定値の更新の有無を確認する。そして、ステップＳ１３１２において、設定値管理アプリケーション６００の制御部６２１は、設定データ同期処理部８１１からの問い合わせを受信する。次に、ステップＳ１３１３において、制御部６２１は、前回のステップＳ１３２４の問い合わせの時点における複合機１２０の設定値と、今回のステップＳ１３２４の問い合わせの時点における複合機１２０の設定値との違う部分（更新差分）を抽出する。そして、通信処理部６２２は、複合機１２０の設定データ同期処理部８１１に更新差分を返却する。
【００８４】
次に、設定データ同期処理部８１１は、ステップＳ１３２５において、更新差分を受信し、ステップＳ１３２６において、対象のデータで、ユーザ設定値ＤＢ８１２またはデバイス設定値ＤＢ８１３の何れかを更新する。
以上のように本実施形態の情報処理システムは、管理サーバ１１０での履歴情報の収集および解析と、管理サーバ１１０での設定値の変更指示と、管理サーバ１１０と同期した複合機１２０の設定値の変更処理とを行う。これによって、解析テンプレートに記載の特定パターンの履歴情報が確認できた場合に、これと連動して複合機１２０の各種の設定値を自動的に変更させることができる。
【００８５】
次に、図１４のフローチャートを参照しながら、図１３−２のステップＳ１３０３の詳細の一例を説明する。
ステップＳ１４０１において、テンプレート実行部７３１は、テンプレートのスクリプト記載部１００１、１１０１に記載の内容をそのまま実行する。ステップＳ１４０２において、テンプレート実行部７３１は、ステップＳ１４０１で実行したフィルタテンプレートが、インストール時（図１２−２のステップＳ１２１５）に代表テンプレートとして記録されたテンプレートであるか否かを判定する。フィルタテンプレートが代表テンプレートの場合、処理は、ステップＳ１４０３に進む。ステップＳ１４０３において、テンプレート実行部７３１は、履歴蓄積ＤＢ７４０内の履歴蓄積データのレコードのうち、今回のフィルタテンプレートの実行時に読み出したレコードよりも以前に読み出したレコードについて削除可能とするフラグを立てる。本実施形態では、テンプレート実行部７３１が、前記複数の第１の情報に従う前記処理において前記第１の履歴情報を取得する必要がなくなると、当該取得する必要がなくなった第１の履歴情報を、削除対象の第１の履歴情報として決定する決定手段の一例である。
一方、ステップＳ１４０１で実行したフィルタテンプレートが代表テンプレートではない場合、テンプレート実行部７３１は、ステップＳ１４０３の処理を実施せずに、図１４のフローチャートによる処理を終了する。
【００８６】
履歴データ管理部７１０は、履歴蓄積ＤＢ７４０のサイズの肥大化を抑えるために周期的または特定のトリガが発生したタイミングなどで、履歴蓄積ＤＢ７４０の履歴蓄積データのレコードを削除する。履歴データ管理部７１０は、ステップＳ１４０３で削除フラグが立っているレコードのデータを削除する。これにより、テンプレートが読み出したいデータを読み出す前にデータが削除されることを極力防ぐことができる。
【００８７】
本実施形態では、起動周期が最長であるフィルタテンプレートを代表テンプレートとし、代表テンプレートの今回の実行時に前回の実行時までに読み出したレコードを削除する場合を例に挙げて説明した。しかしながら、履歴蓄積ＤＢ７４０のレコードの読み出しを必要とする全てのフィルタテンプレートについて、当該レコードの読み出しが行われたことが特定できるようにしていれば、必ずしもこのようにする必要はない。例えば、テンプレート実行部７３１は、各フィルタテンプレートの実行時に読み出したレコードを記憶しておいてもよい。この場合、テンプレート実行部７３１は、このようにして記憶したレコードの情報から、履歴蓄積ＤＢ７４０のレコードの読み出しを必要とする全てのフィルタテンプレートについて、当該レコードの読み出しが行われたことを特定することができる。
【００８８】
ここで、本実施形態の効果の一例について説明する。
例えば従来技術では、情報処理システムにおいてある設定がなされている状況で複合機１２０のユーザが操作ミスを繰り返す場合に、当該操作ミスを防止するような設定に変更することができなかった。また、例えば従来技術では、システム管理者にとってシステムの管理をより行いやすくするための設定の変更を複合機１２０に対して行うことができなかった。さらに従来技術では、画像形成装置のようなハード動作を伴うような情報処理システムにおいて、その動作環境下において最適な挙動（例えば画質や電力制御）設定を導き出すことができなかった。
【００８９】
これに対し本実施形態では、管理サーバ１１０は、履歴蓄積ＤＢ７４０の履歴蓄積データを用いて複合機１２０に対する指示を行うための処理を行うテンプレートとしてフィルタテンプレートと解析テンプレートとを用いる。フィルタテンプレートは、履歴蓄積ＤＢ７４０の履歴蓄積データのフィルタリングを行うことによりサマリデータを生成してサマリＤＢ７４１に保存することが記載されたテンプレートである。解析テンプレートは、サマリデータを解析することにより、複合機１２０に対する指示の内容を決定することが記載されたテンプレートである。従って、管理サーバ１１０がフィルタテンプレートと解析テンプレートとを用いて複合機１２０の設定値を変更することにより、複合機１２０は、過去の履歴を反映した動作を行うことができる。具体的には、複合機１２０の稼働状況やユーザの操作や傾向を分析し、その結果に基づいて、システムの最適な設定やユーザの利便性を向上させることができる。
【００９０】
また、分析するユーザの傾向や複合機１２０に反映する設定は、複数の種類や組み合わせが存在するため、複数の制御を同時に実行することは必須である。そこで、解析シナリオであるテンプレートをいくつも用意することで多様な処理を実現する情報処理システムに対して細かく制御を実施することができる。また、データの保持や分析を動作させるサーバを導入できずに複合機１２０で動作させる場合もある。この場合は、ストレージやＣＰＵなどのリソースに制約が生じることになる。これに対し、本実施形態では、複数のテンプレートを用いるため、テンプレートの記載に従う処理が重くなることを抑制することができる。また、全てのフィルタテンプレートの処理で必要なデータが履歴蓄積ＤＢ７４０から読み出されると、当該データを削除するので、履歴蓄積ＤＢ７４０に保存するデータのデータ量を削減することができる。また、フィルタテンプレートを多段（直列）に配置するので、解析テンプレートに従う処理における情報の抽出が複雑になることを抑制することができる。
【００９１】
尚、前述した実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【００９２】
（その他の実施例）
本発明は、以下の処理を実行することによっても実現される。即ち、まず、以上の実施形態の機能を実現するソフトウェア（コンピュータプログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）が当該コンピュータプログラムを読み出して実行する。
【符号の説明】
【００９３】
１００：ネットワーク、１１０：管理サーバ、１２０：複合機
【図１】
2018060285.tif 000005
【図２】
2018060285.tif 000006
【図３】
2018060285.tif 000007
【図４】
2018060285.tif 000008
【図５】
2018060285.tif 000009
【図６】
2018060285.tif 000010
【図７】
2018060285.tif 000011
【図８】
2018060285.tif 000012
【図９】
2018060285.tif 000013
【図１０】
2018060285.tif 000014
【図１１】
2018060285.tif 000015
【図１２−１】
2018060285.tif 000016
【図１２−２】
2018060285.tif 000017
【図１３−１】
2018060285.tif 000018
【図１３−２】
2018060285.tif 000019
【図１４】
2018060285.tif 000020