(58)【調査した分野】(Int.Cl.,DB名)
前記キャッシュデータを前記メモリ手段に記憶し、前記キャッシュデータを有効にするか否かを、前記記憶手段に記憶される前記ログ情報の項目毎に選択可能であることを特徴とする請求項1に記載の情報処理装置。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態を図面に基づいて説明する。
【0010】
(第1の実施形態)
本発明の第1の実施形態について説明する。以下に説明する第1の実施形態における情報処理装置は、装置に係るデータを格納するハードディスクドライブ等の不揮発性記憶メディアを有する。第1の実施形態における情報処理装置は、データへのアクセス頻度(問い合わせ頻度)やアクセス要求内容(問い合わせ内容)を基にキャッシュデータを生成し、生成したキャッシュデータを利用し不揮発性記憶メディアへのアクセスを低減させる。
【0011】
第1の実施形態における情報処理装置としての複合機100の構成例について説明する。
図1(A)は、第1の実施形態における複合機100の外観図である。第1の実施形態における複合機100は、例えば上部がスキャナ120で構成され、下部がプリンタ110で構成されている。
【0012】
図1(B)は、第1の実施形態における複合機100のハードウェア構成例を示すブロック図である。複合機100は、コントローラユニット130、操作部150、スキャナ120、及びプリンタ110を有する。コントローラユニット130には、操作部150が接続されるとともに、画像入力デバイスであるスキャナ120や画像出力デバイスであるプリンタ110が接続される。
【0013】
コントローラユニット130は、CPU(Central Processing Unit)132を有し、CPU132がROM136に格納されているプログラム(ソフトウェア)を読み出して実行することにより複合機100の動作を制御する。例えば、CPU132は、ROM136に格納されているブートプログラムによりオペレーティングシステム(OS:Operating System)を起動する。さらにCPU132は、このオペレーティングシステム上で、ROM136に格納されているアプリケーションプログラムを実行し、これによって各種処理を実行する。
【0014】
RAM(Random Access Memory)133は、CPU132の作業領域として用いられるとともに、データを記憶するためのキャッシュ領域として用いられるメモリである。ROM(Read Only Memory)136は、CPU132が実行するプログラム等を記憶する。装置に係るデータを格納する不揮発性記憶メディアとしてのハードディスクドライブ(HDD:Hard Disk Drive)135は、複合機100にて実行された印刷ジョブの履歴やFAX通信履歴等の処理履歴に係る各種ログデータを格納する。RAM133、HDD135、及びROM136は、システムバス140を介してCPU132に接続される。
【0015】
また、CPU132には、システムバス140を介して、操作部インタフェース131、デバイスインタフェース134、ネットワークインタフェース137、画像処理部138、及びMODEM/NCU139が接続される。操作部インタフェース131は、タッチパネルや操作ボタン等を有する操作部150とのインタフェースであり、例えば操作部150が有するタッチパネル等の表示部に表示すべき画像データを操作部150に対して出力する。デバイスインタフェース134には、スキャナ120及びプリンタ110が接続される。デバイスインタフェース134は、画像データの同期系/非同期系の変換を行う。
【0016】
ネットワークインタフェース137は、ネットワーク160に接続され、ネットワーク160を介してネットワーク160上の各装置との間で情報の入出力を行う。画像処理部138は、スキャナ120からの入力画像処理やプリンタ110への出力画像処理、画像回転、画像圧縮、解像度変換、色空間変換、階調変換等の処理を行う。MODEM/NCU139は、ファクシミリの送受信信号の変復調を行い、選択信号(ダイヤルパルス又はトーンダイヤラ)を公衆回線網170に送出する機能を有し、呼び出し信号の検出によるファクス着信動作も行う。
【0017】
図2は、第1の実施形態における複合機100でのソフトウェアの構成例を示す図である。
図2には、複合機100においてソフトウェアによりその機能が実現されるログ管理モジュール200とその関連モジュールを示している。ログ管理モジュール200は、複合機100内のログデータ210にアクセスするレポート制御モジュール230やジョブ制御モジュール240等の各種アプリケーションからの要求に従ってログデータ210の読み出しや書き込みを行う。ログデータ210は、複合機100にて実行された印刷ジョブの履歴やFAX通信履歴等の装置での処理履歴に係るデータであり、HDD135に格納される。
【0018】
ログ管理モジュール200は、インタフェース部201、生成部202、判定部203、解析部204、及びアクセス部205を有する。インタフェース部201は、ログ管理モジュール200の外部からのログデータ210の読み出し要求や書き込み要求を受け付ける。解析部204は、インタフェース部201が受け付けたログデータ210の読み出し要求(ログアクセス要求)を解析し、要求内容や要求頻度等からHDD135への負荷を算出する。また、解析部204は、算出したHDD135への負荷が所定の閾値より高いと判断した場合、読み出し要求に応じて供給するデータ(応答データ)に対応するキャッシュデータ220の生成が必要であると判断する。
【0019】
生成部202は、ログデータ210を基にキャッシュデータ220を生成する。生成部202により生成されたキャッシュデータ220は、RAM133に格納される。判定部203は、インタフェース部201が受け付けたログデータ210の読み出し要求に対して、キャッシュデータ220が有効であるか否かの判定をする。すなわち、判定部203は、ログデータ210の読み出し要求に係る応答データが、有効なキャッシュデータ220としてRAM133に存在するか否かを判定する。アクセス部205は、キャッシュデータ220が有効である場合、キャッシュデータ220にアクセスして応答データを取得し、そうでない場合、ログデータ210にアクセスして応答データを取得する。
【0020】
図3は、第1の実施形態における複合機100でのログデータのアクセス処理の例を示すフローチャートである。
図3に示すフローチャートの処理は、CPU132がROM136に格納されているプログラムを読み出して実行することにより、
図2に示したログ管理モジュール200の機能を実現し行われる。
【0021】
ステップS301にて、ログ管理モジュール200のインタフェース部201が、ログ管理モジュール200外のアプリケーションからのログアクセス要求(読み出し要求)を受信する。ステップS302にて、ログ管理モジュール200の解析部204は、インタフェース部201が受信したログアクセス要求を解析し、キャッシュを有効化すべきか、すなわちキャッシュデータ220の生成が必要であるかの判断を行う。
【0022】
ステップS302における処理では、例えば、表1に示すように、ステップS301において受け付けたログアクセス要求のアクセス要求内容毎に、解析部204がアクセス回数をカウントアップする。解析部204は、カウントしたアクセス回数を基にHDD135の稼働時間に対するログデータへのアクセス頻度を求め、アクセス頻度が閾値以上となった場合、そのアクセス要求内容に対してはキャッシュを有効化すべきと判断する。
【0023】
表1に示した例では、解析部204は、アクセス頻度が1分あたり1回以上である場合に、キャッシュを有効化すべきと判断している。なお、判断する際に使用する1分あたり1回以上といった閾値は、HDD135の性能や装置の耐用年数等に応じて変更可能であるとする。また、解析部204がアクセス要求内容毎にアクセス時間を計測し、HDD135の稼働時間に対するHDDへのアクセス時間を求め、閾値以上である場合、そのアクセス要求内容に対してはキャッシュを有効化すべきと判断するようにしても良い。
【0025】
また、ステップS302における処理では、アクセス頻度ではなく、例えば表2に示すように、予めキャッシュを有効化すべきアクセス要求内容を決めておき、それに従って解析部204がキャッシュを有効化すべきと判断するようにしても良い。表2に示した例では、アクセス要求内容が“未読のFAXジョブログのレコード数”である場合に対して、解析部204はキャッシュを有効化すべきとしている。
【0027】
次に、ステップS303にて、ログ管理モジュール200の判定部203は、インタフェース部201が受信したログアクセス要求に対して有効なキャッシュデータ220がRAM133に存在するか否かを判定する、キャッシュ有効無効の判定を行う。キャッシュ有効無効の判定は、表1や表2に示したようにアクセス要求内容に対するキャッシュ有効無効の情報に基づいて判定してもよいし、キャッシュデータ220の状態に基づいて判定してもよい。
【0028】
RAM133に有効なキャッシュデータが存在しない、すなわちキャッシュデータ220が無効であると判定部203が判定した場合、ステップS304へ進む。ステップS304にて、ログ管理モジュール200のアクセス部205は、HDD135へのアクセスを行いログデータ210にアクセスする。続く、ステップS305にて、ログ管理モジュール200の生成部202は、ステップS302においてキャッシュを有効化すべきと判断されたアクセス要求内容である場合、キャッシュデータ220を生成してRAM133に格納し、キャッシュを有効化する。すなわち表1又は表2でキャッシュ有効化すべきとなっている場合、生成部202は、キャッシュデータ220を生成してRAM133に格納し、キャッシュを有効化する。
【0029】
このとき、生成部202は、ステップS304において読み出されたログデータ210を基にアクセス要求内容に応じたキャッシュデータ220を生成する。また、生成部202は、読み出されたログデータ210の一部そのものではなく、ログ管理モジュール200にアクセスするレポート制御モジュール230等の要求に合わせてログデータ210を加工してキャッシュデータ220を生成する。表3にステップS305において生成されるキャッシュデータ220の例を示す。表3は、キャッシュデータ220として、ログデータ内の未読のFAXジョブログのレコード数をカウントした値である“1”を格納している例である。これによりキャッシュ化により使用するRAM133の記憶容量を抑えることができる。
【0031】
ステップS303での判定の結果、RAM133に有効なキャッシュデータが存在する、すなわちキャッシュデータ220が有効であると判定部203が判定した場合、ステップS306へ進む。ステップS306にて、アクセス部205は、RAM133のキャッシュ領域へのアクセスを行いキャッシュデータ220にアクセスする。ステップS307にて、ログ管理モジュール200は、ログアクセス要求の送信元であるアプリケーションに対して、ステップS304又はS306において取得したデータ(応答データ)をインタフェース部201等を介して送信し、アクセス処理を終了する。
【0032】
図4は、第1の実施形態における複合機100でのログデータの更新処理の例を示すフローチャートである。HDD135に格納するログデータ210が更新されると、RAM133に格納されているキャッシュデータ220との不整合が起きるため、ログデータ210の更新時には、RAM133に格納しているキャッシュデータ220を無効化する必要がある。
図4に示すログデータの更新処理は、CPU132がROM136に格納されているプログラムを読み出して実行することにより行われる。
【0033】
ステップS401にて、ログ管理モジュール200がログデータ210の更新要求を受信する。次に、ステップS402にて、ログ管理モジュール200は、キャッシュデータ220が有効であるか無効であるかを判定する、キャッシュ有効無効の判定を行う。キャッシュデータ220が有効であると判定した場合、ステップS403にて、ログ管理モジュール200は、RAM133に格納されているキャッシュデータ220を無効化する。キャッシュデータ220が無効であると判定した場合、ステップS403をスキップする。続いて、ステップS404にて、ログ管理モジュール200は、HDD135へのアクセスを行ってログデータ210を更新し、更新処理を終了する。
【0034】
第1の実施形態によれば、アプリケーションからのログアクセス要求を解析し、HDD135へのアクセス頻度やアクセス時間が閾値以上である場合、アクセス要求内容に応じたキャッシュデータを生成しRAM133に格納する。これにより、アクセス頻度やアクセス時間が大きいログアクセス要求に対して、HDD135へのアクセス回数を低減することができ、HDD135の消耗を抑制しHDD135の寿命を改善することができる。
【0035】
例えば、キャッシュデータを利用しない場合、表1に示したような“未読のFAXジョブログのレコード数”へのアクセスについては、1分あたり1回のHDD135へのアクセスが発生する。それに対し、本実施形態によれば、キャッシュデータ生成時にHDD135へアクセスするのみであるので、HDD135へのアクセス回数の低減が期待できる。また、すべての項目についてキャッシュするのではなく、アクセス頻度やアクセス時間が大きい一部の項目についてキャッシュするので、キャッシュ領域に使用する記憶容量を抑えることができる。
【0036】
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。第2の実施形態における情報処理装置は、装置に係るデータを格納するハードディスクドライブ等の不揮発性記憶メディアを有する。第2の実施形態では、データレコードのメンバー毎にキャッシュデータを生成するか否かを選択可能にし、選択されたメンバーをキャッシュすることで不揮発性記憶メディアへのアクセスを低減させる。なお、第2の実施形態における情報処理装置としての複合機の構成は、
図1(A)、
図1(B)、及び
図2に示した第1の実施形態と同様であるので説明は省略する。
【0037】
図5は、第2の実施形態における複合機100でのログデータのアクセス処理の例を示すフローチャートである。
図5に示すフローチャートの処理は、CPU132がROM136に格納されているプログラムを読み出して実行することにより、
図2に示したログ管理モジュール200の機能を実現し行われる。
【0038】
ステップS501にて、ログ管理モジュール200のインタフェース部201が、ログ管理モジュール200外のアプリケーションからのログアクセス要求(読み出し要求)を受信する。ステップS502にて、ログ管理モジュール200の判定部203は、インタフェース部201が受信したログアクセス要求に対して有効なキャッシュデータ220がRAM133に存在するか否かを判定する、キャッシュ有効無効の判定を行う。
【0039】
ステップS502でのキャッシュ有効無効の判定には、表4に示すようなテーブルを使用する。判定部203は、ログアクセス要求のアクセス要求内容から、キャッシュ有効無効の情報が有効となっているログデータのメンバーへのアクセスである場合、有効なキャッシュデータが存在する、すなわちキャッシュデータ220が有効であると判定する。例えば、表4に示す例では、判定部203は、キャッシュ有効無効の情報が有効となっているログIDとジョブ種と既読フラグへのアクセス要求である場合、キャッシュデータ220が有効であると判定する。
【0041】
有効なキャッシュデータが存在しない、すなわちキャッシュデータ220が無効であると判定部203が判定した場合、ステップS504にて、アクセス部205は、HDD135へのアクセスを行いログデータ210にアクセスする。一方、有効なキャッシュデータが存在する、すなわちキャッシュデータ220が有効であると判定部203が判定した場合、ステップS503にて、アクセス部205は、RAM133のキャッシュ領域へのアクセスを行いキャッシュデータ220にアクセスする。ステップS505にて、ログ管理モジュール200は、ログアクセス要求の送信元であるアプリケーションに対して、ステップS503又はS504において取得したデータ(応答データ)をインタフェース部201等を介して送信し、アクセス処理を終了する。
【0042】
図6は、第2の実施形態における複合機100でのキャッシュデータの生成処理の例を示すフローチャートである。キャッシュデータの生成処理は、CPU132がROM136に格納されているプログラムを読み出して実行することにより行われる。ステップS601にて、ログ管理モジュール200が、ログ管理モジュール200の外部、例えばレポート制御モジュール230等からのキャッシュデータ220の生成依頼を受信する。ステップS601においてキャッシュデータ220の生成依頼を受信すると、ステップS602にて、ログ管理モジュール200は、ログデータ210を基にキャッシュデータ220を生成してRAM133に格納し、キャッシュを有効化する。ここで、キャッシュデータ220は、データの指定に従ってログデータ210を加工することにより生成され、例えば、表4に示したようなテーブルの情報によりキャッシュを有効化するデータを指定できる。この指定はアプリケーションによって動的に切り替えられるようにしても良いし、静的に指定するようにしても良い。
【0043】
ここで、例えば、ログデータ210のデータが表5に示すデータであるとする。
【0045】
この場合、ログ管理モジュール200は、表6に示すように、表4でキャッシュ有効無効の情報が有効となっている一部のログデータのメンバーのみHDD135のログデータ210から取得し、キャッシュデータ220としてRAM133上に配置する。
【0047】
第2の実施形態によれば、ログデータのメンバーの内の選択された一部のメンバーのみキャッシュデータを生成することで、キャッシュ領域として使用するRAM133の記憶容量を抑えつつHDD135へのアクセス回数を低減することが可能となる。したがって、HDD135の消耗を抑制しHDD135の寿命を改善することができる。また、第2の実施形態では、キャッシュデータの生成処理を、複合機100の起動時や、ログ管理モジュール200にアクセスするアプリケーションが任意のタイミングで実行することが可能となる。
【0048】
(本発明の他の実施形態)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0049】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。