(57)【要約】【課題】データに応じてアクセス対象とする記憶媒体を適切に選択すること。【解決手段】情報処理装置は、データの第一の識別名ごとに、該第一の識別名に対応する第一の記憶媒体とは異なる第二の記憶媒体に対応した第二の識別名を記憶した規則情報記憶手段と、プログラムからのデータの書き込み要求に応じ、該書き込み要求において指定された前記第一の識別名に対応する前記第二の識別名に基づいて、前記第二の記憶媒体に該データを書き込む書き込み手段とを有する。【選択図】図２
2010277184.tif 000002
【特許請求の範囲】
【請求項１】
データの第一の識別名ごとに、該第一の識別名に対応する第一の記憶媒体とは異なる第二の記憶媒体に対応した第二の識別名を記憶した規則情報記憶手段と、
プログラムからのデータの書き込み要求に応じ、該書き込み要求において指定された前記第一の識別名に対応する前記第二の識別名に基づいて、前記第二の記憶媒体に該データを書き込む書き込み手段とを有する情報処理装置。
【請求項２】
前記書き込み要求とは非同期に、前記第二の記憶媒体に書き込まれたデータを前記第一の識別名に基づいて前記第一の記憶媒体に記録する退避手段を有する請求項１記載の情報処理装置。
【請求項３】
データの第一の識別名ごとに、該第一の識別名に対応する第一の記憶媒体とは異なる第二の記憶媒体に対応した第二の識別名を記憶した規則情報記憶手段と、
プログラムからのデータの読み込み要求に応じ、該読み込み要求において指定された前記第一の識別名に基づいて前記第一の記憶媒体より該データを読み込む読み込み手段と、
前記読み込み手段が読み込み対象としたデータを、前記読み込み要求において指定された前記第一の識別名に対応する前記第二の識別名に基づいて、前記第二の記憶媒体に記録する複製手段とを有し、
前記読み込み手段は、前記読み込み要求において指定された前記第一の識別名に対応する前記第二の識別名に係るデータが存在するときは、前記第二の識別名に基づいて前記第二の記憶媒体より該データを読み込む情報処理装置。
【請求項４】
前記複製手段は、前記読み込み手段が読み込み対象としたデータの前記第二の記憶媒体への記録を、前記読み込み要求とは非同期に実行する請求項３記載の情報処理装置。
【請求項５】
前記複製手段は、同一の前記第一の識別名に基づくデータの読み込み回数と閾値との比較に応じて、前記読み込み手段が読み込み対象としたデータの前記第二の記憶媒体への記録を実行する請求項３又は４記載の情報処理装置。
【請求項６】
コンピュータが実行する情報処理方法であって、
データの第一の識別名ごとに、該第一の識別名に対応する第一の記憶媒体とは異なる第二の記憶媒体に対応した第二の識別名を記憶した規則情報記憶手段を用いて、プログラムからのデータの書き込み要求に応じ、該書き込み要求において指定された前記第一の識別名に対応する前記第二の識別名に基づいて、前記第二の記憶媒体に該データを書き込む書き込み手順を有する情報処理方法。
【請求項７】
前記書き込み要求とは非同期に、前記第二の記憶媒体に書き込まれたデータを前記第一の識別名に基づいて前記第一の記憶媒体に記録する退避手順を有する請求項６記載の情報処理方法。
【請求項８】
コンピュータが実行する情報処理方法であって、
データの第一の識別名ごとに、該第一の識別名に対応する第一の記憶媒体とは異なる第二の記憶媒体に対応した第二の識別名を記憶した規則情報記憶手段を用いて、プログラムからのデータの読み込み要求に応じ、該読み込み要求において指定された前記第一の識別名に基づいて前記第一の記憶媒体より該データを読み込む読み込み手順と、
前記読み込み手段が読み込み対象としたデータを、前記読み込み要求において指定された前記第一の識別名に対応する前記第二の識別名に基づいて、前記第二の記憶媒体に記録する複製手順とを有し、
前記読み込み手順は、前記読み込み要求において指定された前記第一の識別名に対応する前記第二の識別名に係るデータが存在するときは、前記第二の識別名に基づいて前記第二の記憶媒体より該データを読み込む情報処理方法。
【請求項９】
前記複製手順は、前記読み込み手段が読み込み対象としたデータの前記第二の記憶媒体への記録を、前記読み込み要求とは非同期に実行する請求項８記載の情報処理方法。
【請求項１０】
前記複製手順は、同一の前記第一の識別名に基づくデータの読み込み回数と閾値との比較に応じて、前記読み込み手段が読み込み対象としたデータの前記第二の記憶媒体への記録を実行する請求項８又は９記載の情報処理方法。
【請求項１１】
コンピュータに、
データの第一の識別名ごとに、該第一の識別名に対応する第一の記憶媒体とは異なる第二の記憶媒体に対応した第二の識別名を記憶した規則情報記憶手段を用いて、プログラムからのデータの書き込み要求に応じ、該書き込み要求において指定された前記第一の識別名に対応する前記第二の識別名に基づいて、前記第二の記憶媒体に該データを書き込む書き込み手順を実行させるための情報処理プログラム。
【請求項１２】
前記書き込み要求とは非同期に、前記第二の記憶媒体に書き込まれたデータを前記第一の識別名に基づいて前記第一の記憶媒体に記録する退避手順を有する請求項１１記載の情報処理プログラム。
【請求項１３】
コンピュータに、
データの第一の識別名ごとに、該第一の識別名に対応する第一の記憶媒体とは異なる第二の記憶媒体に対応した第二の識別名を記憶した規則情報記憶手段を用いて、プログラムからのデータの読み込み要求に応じ、該読み込み要求において指定された前記第一の識別名に基づいて前記第一の記憶媒体より該データを読み込む読み込み手順と、
前記読み込み手段が読み込み対象としたデータを、前記読み込み要求において指定された前記第一の識別名に対応する前記第二の識別名に基づいて、前記第二の記憶媒体に記録する複製手順とを実行させ、
前記読み込み手順は、前記読み込み要求において指定された前記第一の識別名に対応する前記第二の識別名に係るデータが存在するときは、前記第二の識別名に基づいて前記第二の記憶媒体より該データを読み込む情報処理プログラム。
【請求項１４】
前記複製手順は、前記読み込み手段が読み込み対象としたデータの前記第二の記憶媒体への記録を、前記読み込み要求とは非同期に実行する請求項１３記載の情報処理プログラム。
【請求項１５】
前記複製手順は、同一の前記第一の識別名に基づくデータの読み込み回数と閾値との比較に応じて、前記読み込み手段が読み込み対象としたデータの前記第二の記憶媒体への記録を実行する請求項１３又は１４記載の情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関し、特に記憶媒体へのデータの書き込み又は記憶媒体からのデータの読み込みを実行する情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
ＰＣ（Personal Computer）等の汎用的なコンピュータの場合、記憶媒体としてＨＤＤ（Hard Disk Drive）が使用されることが多い。ＨＤＤは、大容量であると共にアクセス速度がさほど遅くないためである。しかし、汎用的なコンピュータと違い、スキャナやプリンタ等の組み込み機器の場合、物理的な筐体の制限やコスト削減のため、記憶媒体としてＳＤカードやＵＳＢ経由のフラッシュメモリ（ＵＳＢメモリ）を使用することが多い。但し、フラッシュメモリを使用する場合（特にＵＳＢバスを経由する場合）、データの入出力（読み書き）の速度が制限される。そのため、データの入出力の完了を待機する必要がある処理については、処理全体が遅延してしまう。そこで、従来、メモリディスク又はＲＡＭディスク（以下、「メモリディスク」で統一する。）と呼ばれるメモリ装置を使用する方法がある。
【０００３】
メモリディスクは、電気的にデータを読み書きするため、入出力の速度がフラッシュメモリと比較して非常に高い。このため、プログラムにおけるデータの入出力時に、処理全対の遅延が発生しにくい。特に、記憶媒体への入出力がプログラムの処理におけるボトルネックとなっていた場合、メモリディスクを記録媒体の一部として利用することにより、システム全体の処理速度を向上させることができる。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、機器のコストアップを抑制するためには、メモリディスクは小容量にせざるを得ない。また、メモリディスクは揮発性であるため、機器の電源を切断した場合に記憶されているデータは消去されてしまう。
【０００５】
但し、データの用途等に応じて記憶媒体に対して要求される性能は異なる。例えば、消失は許容されないがアクセス速度は遅くて構わないデータもあれば、高いアクセス速度が要求されるが消失は許容されるデータもある。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、データに応じてアクセス対象とする記憶媒体を適切に選択することのできる情報処理装置、情報処理方法、及び情報処理プログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、本発明は、データの第一の識別名ごとに、該第一の識別名に対応する第一の記憶媒体とは異なる第二の記憶媒体に対応した第二の識別名を記憶した規則情報記憶手段と、プログラムからのデータの書き込み要求に応じ、該書き込み要求において指定された前記第一の識別名に対応する前記第二の識別名に基づいて、前記第二の記憶媒体に該データを書き込む書き込み手段とを有する。
【０００８】
このような情報処理装置では、データに応じてアクセス対象とする記憶媒体を適切に選択することができる。
【発明の効果】
【０００９】
データに応じてアクセス対象とする記憶媒体を適切に選択することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のソフトウエア構成例を示す図である。
【図３】データの書き込み時の処理手順を説明するためのシーケンス図である。
【図４】書き込みルールの例を示す図である。
【図５】管理情報の構成例を示す図である。
【図６】退避レベルを説明するための図である。
【図７】退避処理によって更新された管理情報の例を示す図である。
【図８】データの読み込み時の処理手順を説明するためのシーケンス図である。
【図９】読み込み処理によって更新された管理情報の例を示す図である。
【図１０】読み込みルールの例を示す図である。
【図１１】複製レベルを説明するための図である。
【図１２】複製処理によって更新された管理情報の例を示す図である。
【図１３】ファイルシステム管理部が隠蔽される構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。本実施の形態では、画像形成装置を情報処理装置の具体例として説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図１において、画像形成装置１０は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、ＨＤＤ１０４、スキャナ１０５、プリンタ１０６、操作パネル１０７、ＳＤカードスロット１０８、及びＵＳＢポート１０９等のハードウェアを有する。
【００１２】
ＲＯＭ１０３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１０２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１０１は、ＲＡＭ１０２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１０４には、プログラムやプログラムが利用する各種のデータ等が記録される。スキャナ１０５は、原稿より画像データを読み取るためのハードウェアである。プリンタ１０６は、画像データを印刷用紙に印刷するためのハードウェアである。操作パネル１０７は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段を備えたハードウェアである。ＳＤカードスロット１０８は、ＳＤカード５０に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１０３に記録されたプログラムだけでなく、ＳＤカード５０に記録されたプログラムもＲＡＭ１０２にロードされ、実行されうる。ＵＳＢポート１０９は、ＵＳＢ（Universal Serial Bus）インタフェース用の接続口（コネクタ）である。本実施の形では、ＵＳＢメモリ６０が接続される。その他、画像形成装置１０は、ネットワーク（有線又は無線の別は問わない。）を接続するためのネットワーク用のインタフェース等も有するが、図１では便宜上省略されている。
【００１３】
図２は、本発明の実施の形態における画像形成装置のソフトウエア構成例を示す図である。
【００１４】
同図において、画像形成装置１０は、アプリ１１ａ、アプリ１１ｂ、及びアプリ１１ｃ（以下、それぞれを区別しない場合、「アプリ１１」という。）、ファイルシステム管理部１２、並びにファイルシステム１６等を有する。これらは、ＲＡＭ１０２にロードされたプログラムがＣＰＵ１０１に実行させる処理によって実現される。
【００１５】
アプリ１１は、本実施の形態において所定のデータ（例えば、スキャナ１０５によって原稿より読み取られた画像データ）を利用した処理を実行するアプリケーションプログラムである。当該処理の過程において、アプリ１１は、ファイルシステム管理部１２を介して記憶媒体へのデータの書き込みや、記憶媒体からのデータの読み込み等を実行する。
【００１６】
ファイルシステム管理部１２は、アプリ１１からのデータ書き込み要求又はデータの読み込み要求に応じ、管理ルール１３又は管理情報１４等に基づいていずれの記憶媒体をデータの書き込み先又はデータの読み込み先とするかを判定する。ファイルシステム管理部１２は、判定結果に応じた書き込み先へのデータの記録、又は判定結果に応じた読み込み先からのデータの読み込みを実行する。すなわち、アプリ１１が利用するデータの所在は、アプリ１１から隠蔽され、ファイルシステム管理部１２によって管理される。本実施の形態において、データの所在位置の候補としての記憶媒体は、ＲＡＭ１０２及びＵＳＢメモリ６０である。ＲＡＭ１０２は、高速にアクセス可能であるが小容量である記憶媒体の一例である。ＵＳＢメモリ６０は、アクセス速度は低いが大容量である記憶媒体の一例である。
【００１７】
ファイルシステム管理部１２は、ファイルシステム１６を介してＲＡＭ１０２及びＵＳＢメモリ６０へのアクセス（書き込み又は読み込み）を行う。ファイルシステム１６は、ＯＳ（Operating System）１５によって提供される、いわゆるファイルシステムである。ファイルシステム１６によって、ＲＡＭ１０２はメモリディスク（ＲＡＭディスク）として利用されうる。また、ＵＳＢメモリ６０は、フラッシュディスクとして利用されうる。すなわち、ＲＡＭ１０２及びＵＳＢメモリ６０に記録されたデータは、ＨＤＤ１０４に記録されたファイルと同様に扱うことが可能となる。具体的には、ＲＡＭ１０２及びＵＳＢ６０に記録されたデータは、パス名によって識別することができる。
【００１８】
管理ルール１３は、データの書き込み又は読み込みに関する規則情報が定義されたデータである。管理情報１４は、ファイルシステム管理部１２によって操作（書き込み又は読み込み）されたデータの位置情報等を含む情報である。すなわち、管理ルール１３は、予め設定される静的な情報であるのに対し、管理情報１４は、データに対するアクセスに応じて更新される動的な情報である。管理ルール１３及び管理情報１４は、例えば、ＨＤＤ１０４に記録されている。
【００１９】
ファイルシステム管理部１２は、複数のアプリ１１から利用されうる。但し、アプリ１１ｃのように、ファイルシステム管理部１２を介さずに直接ＯＳ１５を介してデータを利用するアプリ１１が存在してもよい。この場合、データの所在は、アプリ１１ｃから隠蔽されない。例えば、直接的にファイルの所在を管理したいアプリ１１に関しては、アプリ１１ｃのように直接ＯＳ１５を介してファイルを操作すればよい。
【００２０】
ファイルシステム管理部１２は、書き込み部１２１、退避部１２２、読み込み部１２３、及び複製部１２４等を有する。書き込み部１２１は、アプリ１１よりデータの書き込み要求を受け付け、管理ルール１３に従った記憶場所への書き込みを実行する。退避部１２２は、管理ルール１３に従った記憶場所に書き込まれたデータを、所定のタイミングで他の記憶場所に退避（保存）する。読み込み部１２３は、アプリ１１よりデータの読み込み要求を受け付け、管理ルール１３に従った記憶場所からのデータの読み込みを実行する。複製部１２４は、同一データへの読み込み処理が管理ルール１３に指定された回数に達したときに、当該データの複製を管理ルール１３に指定された記憶場所に生成する。なお、書き込み部１２１及び読み込み部１２３は、データ書き込み用の関数又はデータ読み込み用の関数又はメソッドとして実装される。一方、退避部１２２及び複製部１２４は、プロセス又はスレッドとして起動される。本実施の形態において、退避部１２２及び複製部１２４はプロセスとして起動されることとする。但し、各部の具体的な実装形態は、特定のものに限定されない。
【００２１】
以下、画像形成装置１０の処理手順について説明する。図３は、データの書き込み時の処理手順を説明するためのシーケンス図である。
【００２２】
ステップＳ１０１において、アプリ１１は、書き込み対象のデータと書き込み先のパス名を指定して、当該データの書き込み要求を書き込み部１２１に入力する。当該書き込み要求において、アプリ１１は、データの書き込み先として、「／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」を指定したとする。なお、本実施の形態において、「／ｒｏｏｔ」以下は、ＵＳＢメモリ６０に対応付けられている。
【００２３】
続いて、書き込み部１２１は、管理ルール１３内の書き込みルール１３１を参照し、書き込み対象とされたデータの書き込み先を判定する（Ｓ１０２）。
【００２４】
図４は、書き込みルールの例を示す図である。同図において書き込みルール１３１は、「対象データ」、「書き込み先」、「書き込み条件」、「退避レベル」、及び「退避条件」等の項目を含む。「対象データ」は、書き込み要求において指定されるパス名（第一の識別名）である。「書き込み先」は、書き込み要求に係るデータについて実際に書き込み先とされたパス名（第二の識別名）である。「書き込み先」の設定は任意に行うことが可能である。データに対するアクセスを高速化したい場合、本実施の形態ではＲＡＭ１０２（メモリディスク）のパス名が「書き込み先」に設定される。なお、本実施の形態において、「／ｒａｍ」以下は、ＲＡＭ１０２の一部の記憶領域（メモリディスク）に対応付けられている。但し、ＲＡＭ１０２に書き込めない程の大きなサイズであることが既知であるデータについては、「書き込み先」として大容量の記憶媒体のパス名を指定すればよい。一方、アプリ１１の実行時にサイズが決定するデータや中程度のサイズのデータであればＲＡＭ１０２を書き込み先としてもよい。
【００２５】
「書き込み条件」は、「書き込み先」への書き込みが許可される条件を示す情報である。同図では、「書き込み先」への空き容量が足りる（書き込み対象のデータ分有る）ことが「書き込み条件」とされている。その他、書き込み可能なデータのサイズの閾値（上限）を「書き込み条件」としてもよいし、書き込み先への書き込みが失敗した場合の対処方法が「書き込み条件」とされてもよい。
【００２６】
「退避レベル」は、「書き込み先」へ書き込まれたデータを「対象データ」のパスへ退避させる方法を区別するためのレベルである。すなわち、「退避レベル」によって、「書き込み先」へ書き込まれたデータの退避の方法が異なる。
【００２７】
「退避条件」は、退避処理に関する各種の条件である。例えば、退避はデータの移動であるか複製の生成であるかを示す情報や、退避処理を実行する条件を示す情報等である。図４では、退避処理を実行する条件として、書き込み先（ＲＡＭ１０２）の空き容量が２０％以下になることが設定されている。
【００２８】
なお、図４は、一つのデータに対する書き込みルール１３１である。すなわち、書き込みルール１３１は、ファイルシステム管理部１２によって書き込み先を変化させたいデータごとに定義される。
【００２９】
ステップＳ１０２では、書き込み部１２１は、「／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」を「対象データ」とする書き込みルール１３１を管理ルール１３より検索し、検索された書き込みルール１３１の「書き込み先」（「／ｒａｍ／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」）を実際の書き込み先として判定する。なお、「／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」に対応する書き込みルール１３１が存在しない場合、書き込み部１２１は、アプリ１１から指定されたパス名を実際の書き込み先として判定する。
【００３０】
続いて、書き込み部１２１は、判定された書き込み先（「／ｒａｍ／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」）へデータを書き込む（Ｓ１０３）。「／ｒａｍ／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」は、ＲＡＭ１０２に対応するパス名であるため、データは、ＲＡＭ１０２に高速に書き込まれる。すなわち、各アプリ１１からは、書き込み要求において指定したデータは、当該要求において指定したパス名に書き込まれるように見えるが、当該データは書き込みルール１３１に応じて実際には異なるパス名に書き込まれることもある。なお、書き込み部１２１は、書き込みルール１３１における「書き込み条件」が満たされるか否かを判定し、満たされる場合に「書き込み先」への書き込みを実行する。
【００３１】
「書き込み先」への書き込みが行われた場合、書き込み部１２１は、書き込まれたデータに関するレコードを管理情報１４に生成する（Ｓ１０４）。
【００３２】
図５は、管理情報の構成例を示す図である。同図において、管理情報１４は、「対象データ」ごとに「アクセス位置」、「存在フラグ」、及び「読み込み回数」等を含む。「アクセス位置」は、「対象データ」についてアクセスすべきパス名（「対象データ」が実際に存在するパス名）である。すなわち、ステップＳ１０４において、書き込み部１２１は、アプリ１１より指定されたパス名を「対象データ」に記録し、実際にデータを書き込んだパス名を「アクセス位置」に記録する。「存在フラグ」は、「対象データ」のパス名にデータが存在するか（ｔｒｕｅ）否か（ｆａｌｓｅ）を示す情報である。この時点では、「対象データ」のパス名にデータは書き込まれていないため、「存在フラグ」の値は「ｆａｌｓｅ」とされている。「読み込み回数」については、後述する。
【００３３】
なお、「書き込み先」となりうるパスに各アプリ１１からのアクセスを許可するとデータの管理が複雑になってしまう。アプリ１１によって「書き込み先」のデータが削除等されてしまった場合、管理情報１４と実際のデータの所在との間に不整合が生じてしまうからである。したがって、「書き込み先」へのアクセスは、ファイルシステム管理部１２のみ可能とし、各アプリ１１による直接のアクセスは不可能にしておくとよい。
【００３４】
続いて、書き込み部１２１は、管理ルール１３に設定されている「退避レベル」に応じて、書き込んだデータ（以下、「カレントデータ」という。）の退避処理を実行させるための退避部１２２をプロセスとして起動する（Ｓ１０５）。退避部１２２の起動に際し、書き込み部１２１から退避部１２２には、アプリ１１より指定されたパス名（「／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」）が通知される。すなわち、退避部１２２の一つのプロセスは、一つのデータに対応する。退避処理の要否及び退避部１２２のプロセスの優先度は、「退避レベル」に応じて決定されるからである。ここでいう優先度は、ＯＳ１５のプロセス管理における優先度（すなわち、ＣＰＵの使用に関する優先度）である。
【００３５】
図６は、退避レベルを説明するための図である。同図では、退避のレベルは０〜３の４段階とされている。「退避レベル」０の場合、退避処理は実行されない。したがって、この場合、書き込み部１２１はカレントデータに対する退避部１２２のプロセスは起動しない。「退避レベル」１、２、３の場合、退避部１２２のプロセスは、それぞれ低優先度、中優先度、高優先度によって起動される。本実施の形態において、カレントデータに対応する「退避レベル」は「３」であるため、カレントデータに対する退避部１２２のプロセスは、高優先度で起動される。なお、図６の内容は、書き込み部１２１にロジックとして組み込まれていてもよいし、外部ファイル化されていてもよい。
【００３６】
続いて、書き込み部１２１は、ステップＳ１０１の書き込み要求に対する応答をアプリ１１に行う（Ｓ１０７）。当該応答には、例えば、書き込みの成否を示す情報が含まれる。本実施の形態では、ＵＳＢメモリ６０に係るパス名に対して書き込みが要求されたにも拘わらず、実際にはＲＡＭ１０２に書き込みが行われた。したがって、書き込み要求から当該応答までの時間は、ＵＳＢメモリ６０に対して書き込みが行われる場合に比べて短い。よって、当該応答を待機していたアプリ１１は、その後の処理に高速に移行することができる。
【００３７】
一方、起動された退避部１２２は、書き込み部１２１より通知されたパス名を「対象データ」とする書き込みルール１３１（図４）を参照し、「退避条件」を確認する（Ｓ１１１）。続いて、退避部１２２は、「退避条件」が満たされるまで退避処理の実行を待機する（Ｓ１１２）。退避条件」が満たされたか否かの確認は、ポーリングのように定期的に行われてもよいし、退避部１２２のプロセスが待ち状態から実行状態へ遷移したときに行われてもよい。本実施の形態では、退避部１２２は、ＲＡＭ１０２の空き容量が２０％以下になるまで待機する（図４参照）。
【００３８】
「退避条件」が満たされると、退避部１２２は、書き込み部１２１より通知されたパス名を「対象データ」とするレコードを管理情報１４より検索する（Ｓ１１３）。続いて、退避部１２２は、検索されたレコードの「アクセス位置」に記録されているパス名（「／ｒａｍ／ｒｏｏｔ／ｗｉｒｔｅＤａｔａ．ｄａｔ」）に係るファイルよりデータを取得し（Ｓ１１４）、書き込み部１２１より指定されたパス名（「／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」）に係るファイルに当該データの複製を記録する（Ｓ１１５）。したがって、当該複製は、ＵＳＢメモリ６０内に生成される。続いて、退避部１２２は、管理情報１４において、書き込み部１２１より指定されたパス名を「対象データ」とするレコードの「存在フラグ」の値を「ｔｒｕｅ」に更新する（Ｓ１１６）。続いて、退避部１２２は、自らのプロセスを終了させる。このように、退避処理によってアプリ１１が希望したパス名にデータが記録される。また、退避処理はアプリ１１からの書き込み要求とは非同期に実行される。したがって、書き込み要求に対する書き込み部１２１による応答性能の劣化を回避することができる。
【００３９】
図７は、退避処理によって更新された管理情報の例を示す図である。同図では、「対象データ」「／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」の「存在フラグ」の値が「ｔｒｕｅ」に更新されている。退避処理により、「対象データ」が示すパス名によるデータの複製が生成されたからである。なお、退避対象のデータが移動された場合は、「アクセス位置」に記録されていたパス名は削除される。
【００４０】
ところで、「退避レベル」は、次のような考え方を参考に定めればよい。
【００４１】
例えば、アプリ１１が実行中に一時的に（作業用に）生成するデータ等、電源が切断された場合等に失われてしまっても構わないデータについては、「退避レベル」を０に設定することで、不揮発性の記憶媒体への退避を行わないようにしてもよい。
【００４２】
また、失われてしまう可能性をできるだけ小さくしたいデータについては、「退避レベル」を３とすることにより高い優先度のプロセスに退避処理を実行させることができる。その結果、退避処理が確実に実行される可能性を高めることができる。但し、この場合、ＣＰＵ１０１等のシステムリソースへの負荷が高くなり、アプリ１１の処理速度に影響が出る可能性も否定できないため、注意を要する。
【００４３】
また、たとえ高優先度のプロセスによる退避処理であっても、退避処理の実行前に電源が切断されてしまい、その結果、データが失われてしまう可能性も完全には否定できない。したがって、画像形成装置１０の課金情報やＦＡＸの送信情報等が記録された重要なデータについては、書き込み速度が十分でなかったとしても、最初から不揮発性の記憶媒体（「対象データ」のパス名）に直接書き込みを行う方が運用上良い場合もある。よって、このようなデータについては、書き込みルール１３１を定義しなければよい。
【００４４】
なお、実際に電源の切断は、通常はユーザの操作に基づくものである。したがって、退避部１２２は、ＣＰＵ１０１の負荷が低下したとき退避処理を実行し、退避処理の完了に応じて操作パネル１０７に「データＸＸＸＸの退避が完了しました。」というメッセージを出力するようにしてもよい。こうすることで、電源の切断によるデータの損失の可能性を低下させることができる。
【００４５】
上述したように、本実施の形態によれば、書き込みルール１３１においてデータごとに書き込み先を設定することができ、各データは当該設定に従った書き込み先へ書き込まれる（記録される）。したがって、データの用途や特性等に応じて適切な記憶媒体を書き込み先として選択することができる。
【００４６】
特に、本実施の形態のように、データの書き込み先をアクセス速度の高い記憶媒体とすることで、プログラム（本実施の形態におけるアプリ１１）の処理性能の向上を期待することができる。
【００４７】
また、書き込み先の選択は、ファイルシステム管理部１２によって一元的に行われるため、各プログラムは書き込み先の選択について複雑な制御を行う必要はない。
【００４８】
また、書き込みルール１３１の設定を調節することで、システム全体の処理性能の適切化（又は最適化）を図ることもできる。例えば、元々高速な記憶媒体にデータを書き込んでいたプログラムＡと、低速な記憶媒体にデータを書き込んでいたプログラムＢがあったとする。プログラムＡのみの性能を考慮すれば、プログラムＡによるデータの書き込み先はそのまま高速な記憶媒体としておくべきである。しかし、プログラムＡとプログラムＢとの協働によって実現される機能において、プログラムＢに高速な記憶媒体を優先的に使用させた方が当該機能全体の性能の向上が図れることもある。このような場合においては、プログラムＢによるデータの書き込み先を高速な記憶媒体とし、プログラムＡによるデータの書き込み先を低速な記憶媒体とするように書き込みルール１３１を定義すればよい。
【００４９】
続いて、データの読み込み時の処理手順について説明する。図８は、データの読み込み時の処理手順を説明するためのシーケンス図である。
【００５０】
ステップＳ２０１において、アプリ１１は、読み込み対象のデータのパス名を指定して、当該データの読み込み要求を読み込み部１２３に入力する。当該読み込み要求において、アプリ１１は、読み込み対象のパス名として、「／ｒｏｏｔ／ｒｅａｄＤａｔａ．ｄａｔ」を指定したとする。すなわち、ＵＳＢメモリ６０に記録されているデータである。
【００５１】
続いて、読み込み部１２３は、読み込み対象として指定されたパス名を「対象データ」とするレコードを管理情報１４（図７参照）より検索する（Ｓ２０２）。ここでは、指定されたパス名を「対象データ」とするレコードは存在しないため、読み込み部１２３は、指定されたパス名に係るファイルよりデータを読み込む（Ｓ２０３）。なお、指定されたパス名を「対象データ」とするレコードが管理情報１４に存在する場合、読み込みデータは、当該レコードの「アクセス位置」に記録されているパス名に係るファイルよりデータを読み込む。
【００５２】
データの読み込みに成功した場合、読み込み部１２３は、読み込まれたデータに関するレコードを管理情報１４に生成する（Ｓ２０４）。
【００５３】
図９は、読み込み処理によって更新された管理情報の例を示す図である。同図において２番目のレコードがステップＳ２０４において生成されたものである。「対象データ」及び「アクセス位置」には、読み込み対象として指定されたパス名が記録されている。「存在フラグ」の値は「ｔｒｕｅ」とされている。「対象データ」によって示されるパスにデータが存在するからである。また、「読み込み回数」の値は「１」とされている。すなわち、「読み込み回数」は、「対象データ」について読み込み処理が行われた回数を記録するための項目である。
【００５４】
続いて、読み込み部１２３は、管理ルール１３内の読み込みルール１３２を参照し、複製部１２４の起動の要否を判定する（Ｓ２０５）。
【００５５】
図１０は、読み込みルールの例を示す図である。同図において読み込みルール１３２は、「対象データ」、「複製先」、「複製閾値」、「複製レベル」、及び「複製条件」等の項目を含む。「対象データ」は、読み込み要求において指定されるパス名（第一の識別名）である。「複製先」は、読み込み対象とされたデータの複製を生成するパス名（第二の識別名）である。複製が行われた後は、「複製先」に示されるパス名が「対象データ」に対する読み込み先となる。したがって、読み込み処理の高速化を望む場合、「複製先」のパス名に対応する記憶媒体は、「対象データ」のパス名に対応する記憶媒体よりアクセス速度が高いものを設定するとよい。本実施の形態では、「対象データ」にはアクセス速度の低いＵＳＢメモリ６０に対応するパス名（「／ｒｏｏｔ／ｒｅａｄＤａｔａ．ｄａｔ」）が、「複製先」にはアクセス速度が高いＲＡＭ１０２（メモリディスク）に対応するパス名（「／ｒａｍ／ｒｏｏｔ／ｒｅａｄＤａｔａ．ｄａｔ」）が設定されている。
【００５６】
「複製閾値」は、読み込み処理が行われた回数によって複製の実行タイミングを示す値である。「複製閾値」が示す回数の読み込み処理が行われたら複製を実行することを示す。アプリ１１の実行状況によって、各データは「読み込み回数」が変わることもある。そこで、実行状況に応じて読み込み頻度の高いデータは複製が実行されるように、「複製閾値」に適当な値を設定しておけばよい。また、例えば、頻繁に読み込まれることが確定的なデータについては、「複製閾値」を０回に（画像形成装置１０の起動時に複製を実行）にしておくとよい。
【００５７】
「複製レベル」は、複製を実行する複製部１２４のプロセスの優先度に対応付けられた値である。高い優先度のプロセスの方がＣＰＵ１０１の占有率が高くなるため他の処理に負荷をかける可能性があるが、早いタイミングで複製を実行することができる。「複製条件」は、複製の実行が許可される条件である。本実施の形態では、「複製先」の空き容量が２０％以上であることが「複製条件」とされている。
【００５８】
ステップＳ２０５では、読み込み部１２３は、読み込みルール１３２の「複製閾値」を参照し、「複製閾値」を管理情報１４の「読み込み回数」と比較することで今回読み込んだデータ（以下、「カレントデータ」という。）の複製の要否を判定する。本実施の形態において「複製閾値」は「１」であり、「読み込み回数」は「１」である。したがって、読み込み部１２３は、カレントデータの複製は必要であると判定し、複製部１２４のプロセスを起動する（Ｓ２０６）。なお、「読み込み回数」が「複製閾値」に達していない場合、複製部１２４の起動は行われない。
【００５９】
複製部１２４の起動に際し、読み込み部１２３から複製部１２４には、アプリ１１より指定されたパス名（／ｒｏｏｔ／ｒｅａｄＤａｔａ．ｄａｔ）が通知される。すなわち、複製部１２４の一つのプロセスは、一つのデータに対応する。また、複製部１２４のプロセスの優先度は、「複製レベル」に応じて決定される。
【００６０】
図１１は、複製レベルを説明するための図である。同図では、複製のレベルは０〜２の３段階とされている。「複製レベル」０、１、２の場合、複製部１２４のプロセスは、それぞれ低優先度、中優先度、高優先度によって起動される。本実施の形態において、カレントデータに対応する「複製レベル」は「０」であるため、カレントデータに対する複製部１２４のプロセスは、低優先度で起動される。なお、図１１の内容は、読み込み部１２３にロジックとして組み込まれていてもよいし、外部ファイル化されていてもよい。
【００６１】
続いて、読み込み部１２３は、読み込んだデータをアプリ１１に出力する（Ｓ２０７）。
【００６２】
一方、起動された複製部１２４は、読み込み部１２３より通知されたパス名を「対象データ」とする読み込みルール１３２（図１０）を参照し、当該読み込みルール１３２より「複製条件」及び「複製先」を取得する（Ｓ２１１）。続いて、複製部１２４は、「複製条件」が満たされているか否かを判定する（Ｓ２１２）。本実施の形態では、「複製先」（ＲＡＭ１０２）の空き容量が２０％以上であるか否かが判定される。「複製条件」が満たされていない場合、複製部１２４は、「複製条件」が満たされるまで待機する。
【００６３】
「複製条件」が満たされている場合、複製部１２４は、読み込み部１２３より通知されたパス名（「／ｒｏｏｔ／ｒｅａｄＤａｔａ．ｄａｔ」）に係るファイルよりデータを取得し（Ｓ２１３）、「複製先」に指定されているパス名（「／ｒａｍ／ｒｏｏｔ／ｒｅａｄＤａｔａ．ｄａｔ」）に係るファイルに当該データの複製を記録する（Ｓ２１４）。したがって、当該複製は、ＲＡＭ１０２（メモリディスク）内に生成される。続いて、複製部１２４は、管理情報１４において、読み込み部１２３より通知されたパス名を「対象データ」とするレコードの「アクセス位置」を更新する（Ｓ２１５）。具体的には、「アクセス位置」の内容を「複製先」のパス名（「／ｒａｍ／ｒｏｏｔ／ｒｅａｄＤａｔａ．ｄａｔ」）によって書き換える。続いて、複製部１２４は、自らのプロセスを終了させる。このように、複製処理はアプリ１１からの読み込み要求とは非同期に実行される。したがって、読み込み要求に対する読み込み部１２３による応答性能の劣化を回避することができる。
【００６４】
図１２は、複製処理によって更新された管理情報の例を示す図である。同図では、２番目のレコードの「アクセス位置」が、「／ｒａｍ／ｒｏｏｔ／ｒｅａｄＤａｔａ．ｄａｔ」に更新されている。
【００６５】
その後、アプリ１１がステップＳ２０１と同じパス名（「／ｒｏｏｔ／ｒｅａｄＤａｔａ．ｄａｔ」）を指定してデータの読み込み要求を読み込み部１２３に入力したとする（Ｓ２２１）。なお、ステップＳ２２１のアプリ１１とステップＳ２０１のアプリ１１とは同じものでもよいし、異なるものでもよい。続いて、読み込み部１２３は、読み込み対象として指定されたパス名を「対象データ」とするレコードを管理情報１４（図１２参照）より検索する（Ｓ２２２）。ここでは、２番目のレコードが検索される。そこで、読み込み部１２３は、検索されたレコードの「アクセス位置」に記録されているパス名に係るファイルよりデータを読み込む（Ｓ２２３）。続いて、読み込み部１２３は、読み込んだデータをアプリ１１に出力する（Ｓ２２４）。ここで、アプリ１１からはＵＳＢメモリ６０に係るパスに対して読み込みが要求されたにも拘わらず、実際にはＲＡＭ１０２より読み込みが行われた。したがって、読み込み要求から読み込んだデータの出力までの時間は、ＵＳＢメモリ６０に対して読み込みが行われる場合に比べて短い。よって、当該データの読み込みを待機していたアプリ１１は、その後の処理に高速に移行することができる。なお、ステップＳ２２１において読み込み対象とされたデータについては既に複製が実行されているため、「読み込み回数」のインクリメントや複製部１２４の起動等は不要である。
【００６６】
なお、上記した通り、「複製閾値」が０に設定された場合は、画像形成装置１０の起動時に複製が実行される。具体的には、画像形成装置１０の起動時において複製部１２４が起動されればよい。複製部１２４は、各読み込みルール１３２を参照し、「複製閾値」が０である「対象データ」について複製を実行する。したがって、起動時に複製されたデータについては、アプリ１１から初めて読み込み要求を受けた場合であっても高速に読み込み処理が実行される。
【００６７】
続いて、書き込み部１２１によって書き込まれたデータを読み込み部１２３によって読み込む処理について説明する。すなわち、図３の処理によって「／ｒａｍ／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」としてＲＡＭ１０２に書き込まれたデータを読み込む処理である。
【００６８】
この場合、アプリ１１は当該データのパスを「／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」として認識している。したがって、図８のステップＳ２０１では、「／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」が指定されて読み込み要求が読み込み部１２３に入力される。続いて、読み込み部１２３は、図７又は図１２の状態の管理情報１４より、「対象データ」が「／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」であるレコードを検索する（Ｓ２０２）。ここで、１番目のレコードが検索されるため、読み込み部１２３は、当該レコードの「アクセス位置」に記録されているパス名（「／ｒａｍ／ｒｏｏｔ／ｗｒｉｔｅＤａｔａ．ｄａｔ」）に係るファイルよりデータを読み込む。
【００６９】
このように、書き込み部１２１によって書き込み処理が行われたデータについても、読み込み部１２３によって高速に読み込むことができる。
【００７０】
上述したように、本実施の形態によれば、読み込みルール１３２においてデータごとに複製先を設定することができ、一度複製されたデータは、当該複製先から読み込まれる。したがって、データの用途や特性等に応じて適切な記憶媒体を複製先（すなわち、読み込み先）として選択することができる。
【００７１】
特に、本実施の形態のように、データの複製先（読み込み先）をアクセス速度の高い記憶媒体とすることで、プログラム（本実施の形態におけるアプリ１１）の処理性能の向上を期待することができる。
【００７２】
また、複製先の選択は、ファイルシステム管理部１２によって一元的に行われるため、各プログラムは複製先の選択について複雑な制御を行う必要はない。
【００７３】
ところで、上記では、ファイルシステム管理部１２が各アプリ１１から直接利用可能な例について説明した。但し、ファイルシステム管理部１２をＯＳ１５内に包含することにより、ファイルシステム管理部１２をアプリ１１から隠蔽するようにしてもよい。
【００７４】
図１３は、ファイルシステム管理部が隠蔽される構成例を示す図である。図１３中、図２と同一部分には同一符号を付している。
【００７５】
図１３の場合、各アプリ１１はＯＳ１５によって提供されているＡＰＩを介して各ファイルを操作する場合であっても、ファイルシステム管理部１２の使用が強制される。このことは、ソースコードを修正しなくても、既存のアプリ１１はファイルシステム管理部１２の便益を享受可能なことを意味する。但し、図２のアプリ１１ｃのように、ファイルシステム管理部１２を介さずに、直接的にファイルの所在を管理することは困難となる。
【００７６】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７７】
１０          画像形成装置
１１、１１ａ、１１ｂ、１１ｃ    アプリ、
１２          ファイルシステム管理部
１３          管理ルール
１４          管理情報
１５          ＯＳ
１６          ファイルシステム
１０１        ＣＰＵ
１０２        ＲＡＭ
１０３        ＲＯＭ
１０４        ＨＤＤ
１０５        スキャナ
１０６        プリンタ
１０７        操作パネル
１０８        ＳＤカードスロット
１０９        ＵＳＢポート
１２１        書き込み部
１２２        退避部
１２３        読み込み部
１２４        複製部
【先行技術文献】
【特許文献】
【００７８】
【特許文献１】特開２００５−２８６８７号公報
【図１】
2010277184.tif 000003
【図２】
2010277184.tif 000004
【図３】
2010277184.tif 000005
【図４】
2010277184.tif 000006
【図５】
2010277184.tif 000007
【図６】
2010277184.tif 000008
【図７】
2010277184.tif 000009
【図８】
2010277184.tif 000010
【図９】
2010277184.tif 000011
【図１０】
2010277184.tif 000012
【図１１】
2010277184.tif 000013
【図１２】
2010277184.tif 000014
【図１３】
2010277184.tif 000015