(57)【要約】【課題】記憶装置の利用状況の把握を支援すること。【解決手段】プログラムをインストール可能な機器であって、所定のインタフェースを介して前記プログラムより要求される、特定の第一の記憶手段の利用要求について、当該利用要求元の前記プログラムの識別情報を特定する特定部と、前記識別情報を、前記第一の記憶手段とは異なる第二の記憶手段に記録する記録手段を有する。【選択図】図３
2014170515.tif 000002
【特許請求の範囲】
【請求項１】
プログラムをインストール可能な機器であって、
所定のインタフェースを介して前記プログラムより要求される、特定の第一の記憶手段の利用要求について、当該利用要求元の前記プログラムの識別情報を特定する特定部と、
前記識別情報を、前記第一の記憶手段とは異なる第二の記憶手段に記録する記録手段を有する機器。
【請求項２】
前記識別情報は、記所定のインタフェースを介して呼び出しに応じて実行される処理のスレッドの名前、及びファイルのパス名のいずれかを含む請求項１記載の機器。
【請求項３】
前記特定部は、前記所定のインタフェースを介して呼び出しに応じて実行される処理のスレッドが属するスレッドグループの名前に基づいて、前記識別情報を特定する請求項１又は２記載の機器。
【請求項４】
前記特定部は、前記利用要求において操作対象として指定されたファイルのパス名に基づいて、前記識別情報を特定する請求項１又は２記載の機器。
【請求項５】
前記記録手段は、当該機器が省電力状態の場合、第三の記憶手段に、前記識別情報に記録する請求項１乃至４いずれか一項記載の機器。
【請求項６】
前記第二の記憶手段は、当該機器にネットワークを介して接続される請求項１乃至５いずれか一項記載の機器。
【請求項７】
プログラムをインストール可能な機器に、
所定のインタフェースを介して前記プログラムより要求される、特定の第一の記憶手段の利用要求について、当該利用要求元の前記プログラムの識別情報を特定する特定手順と、
前記識別情報を、前記第一の記憶手段とは異なる第二の記憶手段に記録する記録手順とを実行させる情報記録プログラム。
【請求項８】
プログラムをインストール可能な機器が、
所定のインタフェースを介して前記プログラムより要求される、特定の第一の記憶手段の利用要求について、当該利用要求元の前記プログラムの識別情報を特定する特定手順と、
前記識別情報を、前記第一の記憶手段とは異なる第二の記憶手段に記録する記録手順とを実行する情報記録方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器、情報記録プログラム、及び情報記録方法に関する。
【背景技術】
【０００２】
従来、公開されたＡＰＩ（Application Program Interface）を備えたアプリケーションプラットフォーム（以下、単に「プラットフォーム」という。）をインストール可能な画像形成装置が提供されている（例えば、特許文献１）。当該プラットフォームがインストールされた画像形成装置には、前記ＡＰＩを利用して作成されたアプリケーションプログラム（以下、単に「アプリケーション」という。）を、プラットフォーム上にインストールすることができる。
【０００３】
従来、プラットフォームは、ＳＤカード等の挿抜可能な記録媒体（以下、「外部記録媒体」という。）に記録された状態で配布されていた。
【０００４】
他方において、プラットフォーム上にインストールされるアプリケーションの中には、処理の実行過程において発生した情報を、ファイル等に書き込むものが有る。このようなファイルの保存先としては、従来、画像形成装置が備えるＨＤＤ（Hard Disk Drive）、又はプラットフォーム若しくは当該アプリケーションの配布に利用された外部記録媒体等が用いられていた。ＨＤＤは、記憶容量も大きいため、情報の書き込み先としては好適であるが、画像形成装置が省電力状態に遷移した場合、ＨＤＤへの電力供給は停止されてしまう。そこで、特に、省電力状態でも動作するアプリケーションについては、外部記録媒体が、情報の保存先として利用されていた。すなわち、外部記録媒体は、プラットフォームやアプリケーションの配布媒体としての役割と、情報の保存先としての役割とを担っていた。
【０００５】
なお、プラットフォームの不正コピーの防止等を目的として、当該外部記録媒体が画像形成装置に挿入されている場合に限って、プラットフォームの起動が許可されていた。したがって、プラットフォームが動作している状態では、外部記録媒体が挿入されている状態は保証される。したがって、アプリケーションは、外部記録媒体の存在を前提とすることができ、情報の保存先として外部記録媒体を利用することができた。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、プラットフォームを配布するための外部記録媒体の費用は、画像形成装置の販売者側によって負担されており、販売者にとって費用的に大きな負担となっていた。また、ユーザにとっては、外部記録媒体の保管等の作業的な負担が発生する。一般的な、プログラムの配布形態としては、インターネット上に配置された所定のサーバからのダウンロードが有る。しかし、画像形成装置をインターネット等に接続することに関して、抵抗を感じるユーザは多く、全てのユーザに対して、ダウンロードによってプラットフォーム等を配布するのは不可能である。
【０００７】
そこで、本願発明者は、画像形成装置に内蔵された記憶装置に、出荷前にプラットフォームを記憶させておくことを検討している。そうすることにより、外部記録媒体によるプラットフォームの配布や、インターネット等を介したプラットフォームの配布等を行わずとも、画像形成装置と共に、プラットフォームを配布することができる。また、画像形成装置に内蔵された記憶装置にプラットフォームが記憶されている場合、外部記録媒体に比べて、不正コピーが実行される可能性を低下させることができる。
【０００８】
但し、プラットフォームの配布に外部記録媒体が利用されない場合、プラットフォームの動作時に、外部記録媒体が画像形成装置に挿入されている状態が保証されなくなる。そうすると、アプリケーションに対して、情報の保存先として、画像形成装置に内蔵された記憶装置であって、かつ、省電力状態でも電力が供給される記憶装置を別途提供する必要が有る。
【０００９】
しかしながら、記憶装置には寿命が有る。外部記録媒体であれば、容易に交換可能であるが、画像形成装置に内蔵されている記憶装置は、他のハードウェアと共に一つのボードに搭載されている場合が有り、交換は容易ではない。また、内蔵されている記憶装置の寿命が短期間に尽きてしまっては、製品に対する信用を損ねてしまう可能性が有る。
【００１０】
記憶装置の寿命の長さは、書き込み回数に大きく依存する。そこで、記憶装置に対する書き込み頻度等に関してガイドラインを設け、当該ガイドラインを遵守してアプリケーションを開発して貰うことが考えられる。
【００１１】
しかし、例えば、当該ガイドラインの遵守をチェックできる機構が無ければ、当該ガイドラインの存在が有名無実なものとなってしまいかねない。このような問題は、記憶装置に対して書き込みを行うアプリケーションをインストール可能な各種の機器に共通のものであると考えられる。
【００１２】
本発明は、上記の点に鑑みてなされたものであって、記憶装置の利用状況の把握を支援することを目的とする。
【課題を解決するための手段】
【００１３】
そこで上記課題を解決するため、本発明は、プログラムをインストール可能な機器であって、所定のインタフェースを介して前記プログラムより要求される、特定の第一の記憶手段の利用要求について、当該利用要求元の前記プログラムの識別情報を特定する特定部と、前記識別情報を、前記第一の記憶手段とは異なる第二の記憶手段に記録する記録手段を有する。
【発明の効果】
【００１４】
記憶装置の利用状況の把握を支援すること。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図３】ＮＡＮＤ型フラッシュメモリへのアクセス状況のチェック機構に関する機能構成例を示す図である。
【図４】画像形成装置が実行する処理手順の一例を説明するためのシーケンス図である。
【図５】ログファイルに記録される情報の一例を説明するための図である。
【発明を実施するための形態】
【００１６】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。図１において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００１７】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、ＨＤＤ１１４、ＮＶＲＡＭ１１５、及びＮＡＮＤ（Not AND）型フラッシュメモリ１１６等が設置されたボードである。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記憶されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４やＮＡＮＤ型フラッシュメモリ１１６には、プログラムやプログラムが利用する各種のデータ等が記憶される。本実施の形態では、ＮＡＮＤ型フラッシュメモリ１１６を用いているがＮＡＮＤ型ではないフラッシュメモリや、その他の不揮発性のメモリが用いられてもよい。ＮＶＲＡＭ１１５には、例えば、ジョブの実行に応じて更新されるカウンタの値等が記憶される。
【００１８】
スキャナ１２は、原稿より画像データを読み取るためのハードウェア（画像読取手段）である。プリンタ１３は、印刷データを印刷用紙に印刷するためのハードウェア（印刷手段）である。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うためのボタン等の入力手段や、液晶パネル等の表示手段等を備えたハードウェアである。液晶パネルは、タッチパネル機能を有していてもよい。この場合、当該液晶パネルは、入力手段の機能をも兼ねる。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記憶されたプログラムを読み取るために利用される。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００１９】
なお、本実施の形態において、画像形成装置１０が省電力状態の場合、書き込み可能な不揮発性の記憶装置のうち、ＨＤＤ１１４には電力は供給されないこととする。一方、ＮＶＲＡＭ１１５、ＮＡＮＤ型フラッシュメモリ１１６、及びＳＤカードスロット１７（ＳＤカード８０）には、省電力状態であっても、電力は供給されることとする。但し、このような仕様は一例であり、他の仕様が適用されてもよい。また、省電力状態とは、一部のハードウェアへの電力供給が制限される状態をいう。省電力状態には、電力供給が制限されるハードウェアの数に応じて、複数の段階が設けられてもよい。
【００２０】
図２は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。図２において、画像形成装置１０は、標準アプリ１２１、ＳＤＫ（Software Development Kit）アプリ１２２、ＳＤＫプラットフォーム１２３、ＪＶＭ１２４、コントロールサービス１２５、及びＯＳ１２６等を有する。
【００２１】
標準アプリ１２１は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリケーションプログラムの集合である。同図では、スキャンアプリ１２１１、印刷アプリ１２１２、コピーアプリ１２１３、及びＦＡＸアプリ１２１４が例示されている。スキャンアプリ１２１１は、スキャナ１２等を利用したスキャンジョブを実行する。印刷アプリ１２１２は、プリンタ１３等を利用した印刷ジョブを実行する。コピーアプリ１２１３は、スキャナ１２及びプリンタ１３等を利用したコピージョブを実行する。ＦＡＸアプリ１２１４は、モデム１４等を利用したＦＡＸの送信ジョブ又は受信ジョブを実行する。なお、スキャナ１２、プリンタ１３、及びモデム１４等は、画像形成装置１０に固有のハードウェアの一例である。
【００２２】
コントロールサービス１２５は、各種のハードウェアリソース等を制御するための機能を、標準アプリ１２１やＳＤＫプラットフォーム１２３等の上位のプログラムに対して提供するソフトウェアモジュール群である。コントロールサービス１２５は、例えば、ネットワーク通信に関する機能、スキャナ１２の制御機能、プリンタ１３の制御機能、メモリの管理機能等を有する。
【００２３】
ＳＤＫアプリ１２２は、画像形成装置１０の出荷後において、画像形成装置１０の機能拡張を図るために追加的にインストールされるアプリケーションプログラム（又はプラグインともいう。）である。同図では、ＳＤＫアプリ１２２の一例として、アプリＡ１２２１及びアプリＢ１２２２等が例示されている。アプリＡ１２２１及びアプリＢ１２２２は、単なる例示であり、本実施の形態において、その機能については特定のものに限定されない。
【００２４】
ＳＤＫプラットフォーム１２３は、ＳＤＫアプリ１２２を開発するためのＡＰＩを備えると共に、ＳＤＫアプリ１２２の実行環境を提供する。ＡＰＩの形態は、例えば、関数であってもよいし、オブジェクト指向のクラス及びクラスのメソッド等であってもよい。本実施の形態では、Ｊａｖａ（登録商標）のクラス群によって、当該ＡＰＩが提供されることとする。以下、ＳＤＫプラットフォーム１２３が提供するＡＰＩを、「ＳＤＫＡＰＩ」という。例えば、ＳＤＫプラットフォーム１２３は、スキャン機能に関するＳＤＫＡＰＩ、印刷機能に関するＳＤＫＡＰＩ、コピー機能に関するＳＤＫＡＰＩ等をＳＤＫアプリ１２２に提供する。ＳＤＫＡＰＩは公開されており、サードベンダ等によってもＳＤＫアプリ１２２は開発されうる。
【００２５】
ＪＶＭ１２４は、Ｊａｖａ（登録商標）ＶＭ（Virtual Machine）である。本実施の形態において、ＳＤＫアプリ１２２は、Ｊａｖａ（登録商標）のアプリケーションとして実装される。ＳＤＫアプリ１２２やＳＤＫプラットフォーム１２３等は、ＪＶＭ１２４が備える、Ｊａｖａ（登録商標）標準のクラス群によって提供されるＡＰＩを利用することもできる。
【００２６】
ＯＳ１２６は、いわゆるＯＳ（Operating System）である。画像形成装置１０上の各ソフトウェアは、ＯＳ１２６上においてプロセス又はスレッドとして動作する。
【００２７】
本実施の形態において、図２に示される各ソフトウェアのプログラムファイルは、画像形成装置１０の出荷時において、ＮＡＮＤ型フラッシュメモリ１１６に記憶されていることとする。但し、これらのソフトウェアの一部又は全部は、ＨＤＤ１１４に記憶されていてもよい。また、出荷後にインストールされるＳＤＫアプリ１２２は、ＳＤカード８０に記憶されていてもよい。
【００２８】
本実施の形態では、ＳＤＫアプリ１２２によるＮＡＮＤ型フラッシュメモリ１１６へのアクセス（特に、書き込み）に関して、ガイドラインが設けられている状況を想定する。例えば、当該ガイドラインでは、単位時間当たりの書き込み回数及び書き込みサイズに対して上限値が規定されている。ＳＤＫアプリ１２２の開発者は、ＮＡＮＤ型フラッシュメモリ１１６へのアクセスが、当該上限値の範囲内に収まるようにＳＤＫアプリ１２２を実装することが求められる。
【００２９】
一方、本実施の形態の画像形成装置１０は、各ＳＤＫアプリ１２２が、上記ガイドラインを遵守して実装されているか否かのチェックを支援するための機構を有する。
【００３０】
図３は、ＮＡＮＤ型フラッシュメモリへのアクセス状況のチェック機構に関する機能構成例を示す図である。図３に示されているプログラム群は、Ｊ層及びＮ層に分類されている。Ｊ層は、Ｊａｖａ（登録商標）によって実装され、Ｊａｖａ（登録商標）バイトコード等、ＪＶＭ１２４上で動作可能な状態に変換されている層である。Ｎ層は、例えば、Ｃ言語やＣ＋＋等によって実装され、ネイティブコードに変換されている層である。
【００３１】
図３において、ＪＶＭ１２４は、ファイルクラス群１２４１を含む。ファイルクラス群１２４１は、Ｊａｖａ（登録商標）標準のクラス群のうち、ファイル操作（ファイルへのアクセス）に関するクラス群である。ファイル操作の一例として、ファイルのオープン、クローズ、書き込み、読み込み、フォルダ又はディレクトリの生成等が挙げられる。
【００３２】
ＪＶＭ１２４には、ログライブラリ１２７がリンクされている。ログライブラリ１２７は、ファイル関数群１２７１及びＪＮＩ関数１２７２等を含む。ファイル関数群１２７１は、ｏｐｅｎ関数、ｃｌｏｓｅ関数、及びｗｒｉｔｅ関数や、フォルダ（ディレクトリ）の生成用の関数等、ファイルへの書き込みを発生させる、Ｃ言語による標準のファイル操作用の関数群である。但し、ログライブラリ１２７に含まれるファイル関数群１２７１は、ファイル操作に関するログ情報を引数として、ＪＮＩ関数１２７２を呼び出すように改変されている。ファイル操作に関するオリジナルの関数群は、ログライブラリ１２７におけるファイル関数群１２７１によって置き換えられる。すなわち、ファイルクラス群１２４１による、ファイル操作に関する関数の呼び出しは、ファイル関数群１２７１にフックされるように構成されている。オリジナルの関数から改変された関数への呼び出し先の変更方法は、公知の方法に従えばよい。例えば、リンク方法を工夫することによって、関数の呼び出し先を変更することができる。
【００３３】
ＪＮＩ関数１２７２は、ＪＮＩ（Java（登録商標） Native Interface）の仕組みを利用して、Ｎ層におけるファイル関数群１２７１による呼び出しを、Ｊ層におけるログクラス１２３２に伝達するための関数である。
【００３４】
ＳＤＫプラットフォーム１２３は、ＳＤＫクラス群１２３１を含む。ＳＤＫクラス群１２３１は、ＳＤＫＡＰＩを提供するＪａｖａ（登録商標）のクラス群である。ＳＤＫクラス群１２３１の中には、ログクラス１２３２が含まれる。ログクラス１２３２は、ファイル操作に関するログ情報をＨＤＤ１１４に記録するクラスである。
【００３５】
図３において、ＳＤＫアプリ１２２からＳＤＫクラス群１２３１へ伸びる矢印は、ＳＤＫアプリ１２２によるＳＤＫＡＰＩの呼び出しを示す。ＳＤＫアプリ１２２からファイルクラス群１２４１へ伸びる矢印は、ＳＤＫアプリ１２２によるファイルクラス群１２４１の呼び出しを示す。
【００３６】
ＳＤＫクラス群１２３１からファイルクラス群１２４１へ伸びる矢印は、ＳＤＫクラス群１２３１によるファイルクラス群１２４１の呼び出しを示す。例えば、画像データ等、何らかの情報を生成し、生成された情報をファイルに保存するＳＤＫクラス群１２３１は、ファイルクラス群１２４１を利用して当該情報のファイルへの保存を実現する。なお、ＳＤＫクラス群１２３１によるファイルクラス群１２４１の呼び出しは、ＳＤＫアプリ１２２に対して隠蔽されている。すなわち、ＳＤＫアプリ１２２が明確にファイル操作を意識していない場合においても、ファイル操作が行われる可能性が有る。
【００３７】
ログクラス１２３２からファイルクラス群１２４１へ伸びる矢印は、ログクラス１２３２がログ情報を記録する際の、ファイルクラス群１２４１の呼び出しを示す。
【００３８】
ファイルクラス群１２４１からファイル関数群１２７１への矢印は、ファイルクラス群１２４１に対して要求されたファイル操作が、ファイル関数群１２７１に伝達されることを示す。ファイル関数群１２７１から、ＨＤＤ１１４、ＮＡＮＤ型フラッシュメモリ１１６、又はＳＤカード８０へ伸びる矢印は、ファイル関数群１２７１による、ファイル操作のための各記憶装置へのアクセスを示す。但し、厳密には、各記憶装置へのアクセスは、更に、ＯＳ１２６及び非図示のドライバプログラムを介して行われる。また、アクセス先がいずれの記憶装置であるかは、操作対象のファイルのパス名によって区別される。
【００３９】
以下、画像形成装置１０が実行する処理手順について説明する。図４は、画像形成装置が実行する処理手順の一例を説明するためのシーケンス図である。なお、図４の処理は、各プログラムが画像形成装置１０に実行させる処理であるが、便宜上、各プログラムを実行主体として説明する。
【００４０】
ステップＳ１０１において、アプリＡ１２２１は、何らかのＳＤＫＡＰＩを呼び出す（Ｓ１０１）。すなわち、アプリＡ１２２１は、ＳＤＫプラットフォーム１２３に対して何らかの処理要求を行う。その結果、ＳＤＫクラス群１２３１のうち、当該ＳＤＫＡＰＩに対応するクラスのメソッドが呼び出される。当該メソッド内の処理において、ファイル操作が必要となった場合、当該クラスは、ファイル関数群１２７１のうち、当該ファイル操作（例えば、オープン、書き込み、読み込み、クローズ、フォルダ生成等）に対応する関数を呼び出す（Ｓ１０３）。呼び出された関数を、以下、「対象関数」という。
【００４１】
対象関数は、当該対象関数に対応するファイル操作を実行する（Ｓ１０４）。その結果、ＨＤＤ１１４、ＮＡＮＤ型フラッシュメモリ１１６、又はＳＤカード８０へのアクセスが行われる。なお、ＳＤカード８０は、必ずしもＳＤカードスロット１７に挿入されていなくてもよい。
【００４２】
続いて、対象関数は、アクセス先の記憶装置が、ＮＡＮＤ型フラッシュメモリ１１６であるか否かを判定する（Ｓ１０５）。アクセス先の記憶装置は、アクセス先のファイルのパス名に基づいて判定可能である。記憶装置ごとに、パス名の先頭部分が異なるからである。なお、パス名は、対象関数が、ｏｐｅｎ関数であれば、引数に指定されている。ｏｐｅｎ関数以外であれば、引数にファイル識別子が指定される。したがって、ファイル識別子に基づいてパス名が判定可能とされてもよい。具体的には、ｏｐｅｎ関数内において、ファイル識別子とパス名との対応情報を、例えば、ＲＡＭ１１２に記憶しておく。ｏｐｅｎ関数以外の関数は、当該対応情報に基づいて、引数に指定されたファイル識別子に対応するパス名を特定することができる。
【００４３】
アクセス先がＮＡＮＤ型フラッシュメモリ１１６ある場合、ステップＳ１０６以降が実行される。ステップＳ１０６において、対象関数は、実行したファイル操作を示すログ情報を指定して、ＪＮＩ関数１２７２を呼び出す（Ｓ１０６）。ログ情報には、例えば、スレッド名、パス名、サイズ、操作種別名、及び日時情報等の項目に対する値が含まれる。
【００４４】
スレッド名は、現在の処理が属するスレッドのスレッド名である。パス名は、操作対象のファイルのパス名である。サイズは、操作対象のファイルへの書き込みサイズである。したがって、サイズの項目は、対象関数が、ｗｒｉｔｅ関数である場合に有効である。対象関数が、ｗｒｉｔｅ関数以外である場合、サイズの値は０とされてもよい。操作種別名は、ファイル操作の種別の識別名である。操作種別名は、例えば、対象関数の関数名でもよい。日時情報は、現在日時を示す文字列等である。なお、スレッド名及び日時情報は、例えば、ＯＳ１２６に問い合わせることにより取得することができる。
【００４５】
続いて、ＪＮＩ関数１２７２は、ログ情報を指定して、ログクラス１２３２の所定のメソッドを呼び出す（Ｓ１０７）。続いて、ログクラス１２３２は、ファイルの操作要求元のＳＤＫアプリ１２２の識別情報（以下、「アプリＩＤ」という。）を特定する（Ｓ１０８）。アプリＩＤの特定方法の一例については、後述される。ここでは、アプリＡ１２２１のアプリＩＤが得られる。続いて、ログクラス１２３２は、得られたアプリＩＤを、ログ情報に付加する（Ｓ１０９）。続いて、ログクラス１２３２は、ログファイルへのログ情報の書き込みを、ファイルクラス群１２４１に要求する（Ｓ１１０）。ファイルクラス群１２４１は、ログ情報の書き込みを、ファイル関数群１２７１に要求する（Ｓ１１１）。なお、ステップＳ１１０及びＳ１１１は、ログファイルのオープン、書き込み、及びクローズといったように、一つのログ情報に関して複数回実行される。続いて、ファイル関数群１２７１は、ログ情報を、ＨＤＤ１１４におけるログファイルに書き込む（Ｓ１１２）。
【００４６】
図５は、ログファイルに記録される情報の一例を説明するための図である。図５における１行は、１つのログ情報に対応する。図５に示されるように、ログファイルには、ログ情報ごとに、アプリＩＤ、スレッド名、パス名、サイズ、操作種別名、及び日時情報等が記録される。
【００４７】
続いて、ファイル関数群１２７１は、ステップＳ１０５と同様に、アクセス先の記憶装置が、ＮＡＮＤ型フラッシュメモリ１１６であるか否かを判定する（Ｓ１１３）。ログファイルは、ＨＤＤ１１４に保存されているため、アクセス先の記憶装置は、ＮＡＮＤ型フラッシュメモリ１１６ではない。したがって、ログ情報の書き込みの場合、ステップＳ１０６以降と同様の処理は実行されない。
【００４８】
なお、図４では、ＳＤＫクラス群１２３１を介してファイルクラス群１２４１が呼び出される形態について説明したが、アプリＡ１２２１等のＳＤＫアプリ１２２が、ファイルクラス群１２４１を直接呼び出してもよい。この場合に実行される処理手順は、図４のステップＳ１０３以降と同様である。
【００４９】
また、ステップＳ１１０は、ステップＳ１０７と同期的に実行されなくてもよい。例えば、ログクラス１２３２は、所定回数分又は所定量のログ情報を、ＲＡＭ１１２等にキャッシュしておいてもよい。キャッシュされているログ情報が、所定回数分又は所定量に達したタイミングで、ステップＳ１１０以降が実行されてもよい。また、ログクラス１２３２は、画像形成装置１０が省電力状態の場合には、所定回数分又は所定量とは関係なく、ログ情報のキャッシュを行ってもよい。省電力状態の場合、ログ情報の記録先であるＨＤＤ１１４への書き込みは出来ないからである。
【００５０】
続いて、ステップＳ１０８における、アプリＩＤの特定方法について説明する。
【００５１】
ＳＤＫアプリ１２２は、Ｊａｖａ（登録商標）アプリケーションである。したがって、例えば、Ｊａｖａ（登録商標）の標準クラスであるスレッドグループ（ＴｈｒｅａｄＧｒｏｕｐ）を用いて、各ＳＤＫアプリ１２２を識別することができる。スレッドグループとは、スレッド（Ｔｈｒｅａｄ）やスレッドグループの集合であり、一つ以上のＴｈｒｅａｄをＴｒｅａｄＧｒｏｕｐに関連付けることができる。また、スレッドグループには、名前（スレッドグループ名）を付加することができる。そして、Ｊ層内においては、スレッド名に基づいて、当該スレッド名に係るスレッドが属するスレッドグループのスレッドグループ名を取得することができる。
【００５２】
ＳＤＫプラットフォーム１２３は、１つのＳＤＫアプリ１２２に１つのスレッドグループを割り当て、各スレッドグループには、当該スレッドグループが対応するＳＤＫアプリ１２２のアプリＩＤをスレッドグループ名として設定する。そうすることにより、Ｊ層に属するログクラス１２３２は、ログ情報に含まれているスレッド名に基づいて、スレッドグループ名、すなわち、アプリＩＤを取得することができる。
【００５３】
すなわち、ログ情報の書き込みは、技術的には、ファイル関数群１２７１が行うことも可能である。この場合、ＪＮＩ関数１２７２やログクラス１２３２は不要となる。しかし、ファイル関数群１２７１は、Ｎ層に属するため、スレッド名に基づいてスレッドグループ名を取得することはできない。そこで、本実施の形態では、Ｎ層まで下りてきたファイルの操作要求に関して、Ｊ層におけるログクラス１２３２で、ログ情報を書き込むように構成されているのである。
【００５４】
但し、アプリＩＤは、異なる方法で特定されてもよい。例えば、ＨＤＤ１１４、ＮＡＮＤ型フラッシュメモリ１１６、及びＳＤカード８０等に関して、ＳＤＫアプリ１２２ごとに、作業領域が区切られてもよい。具体的には、ＳＤＫアプリ１２２ごとのフォルダ又はディレクトリが生成され、各ＳＤＫアプリ１２２は、当該ＳＤＫアプリ１２２に対応するフォルダ又はディレクトリ以下に情報を書き込むことができるようにしてもよい。
【００５５】
この場合、ファイル関数群１２７１は、操作対象のファイルのパス名に基づいて、アプリＩＤ等、各ＳＤＫアプリ１２２の識別情報を特定することができる。すなわち、各パス名には、ＳＤＫアプリ１２２を区別するためのフォルダ名又はディレクトリ名が含まれているはずである。当該フォルダ名又はディレクトリ名は、ＳＤＫアプリ１２２ごとに異なる値となるため、当該フォルダ名又はディレクトリ名に基づいて、各ＳＤＫアプリ１２２の識別情報を特定することができる。当該フォルダ名又はディレクトリ名は、各ＳＤＫアプリ１２２のアプリＩＤであってもよい。
【００５６】
ファイル関数群１２７１によってアプリＩＤを特定可能な場合は、ファイル関数群１２７１がログ情報をログファイルに書き込んでもよい。または、ＪＮＩ関数１２７２を介して、ログクラス１２３２が呼び出されてもよい。
【００５７】
上述したように、本実施の形態によれば、各ＳＤＫアプリ１２２を識別可能な状態で、ＮＡＮＤ型フラッシュメモリ１１６に対する操作ごとに、ログ情報が記録される。したがって、各ＳＤＫアプリ１２２による、ＮＡＮＤ型フラッシュメモリ１１６の利用状況の把握を支援することができる。例えば、ＳＤＫアプリ１２２の開発者は、ＳＤＫアプリ１２２のテスト時等において、ログファイルを確認することにより、当該ＳＤＫアプリ１２２によるＮＡＮＤ型フラッシュメモリ１１６の利用状況が、ガイドラインに則しているか否か等を確認することができる。
【００５８】
また、仮に、ＮＡＮＤ型フラッシュメモリ１１６に関して障害が発生した場合、ログファイルを確認することにより、当該障害の原因となったＳＤＫアプリ１２２を特定できる可能性を高めることができる。
【００５９】
また、本実施の形態は、ＳＤＫアプリ１２２に対するインタフェースに関して変更は必要とされない。したがって、本実施の形態は、ＳＤＫアプリ１２２の実装を変更することなく実施することができる。
【００６０】
なお、ログ情報の記録先は、画像形成装置１０が備える記憶装置でなくてもよい。例えば、画像形成装置１０にネットワークを介して接続される記憶装置が、ログ情報の記録先とされてもよい。
【００６１】
また、本実施の形態では、画像形成装置１０以外であって、アプリケーションをインストール可能な各種の機器に適用されてもよい。斯かる機器には、プロジェクタ、デジタルカメラ、テレビ会議システム等が含まれてもよい。
【００６２】
なお、本実施の形態において、ファイルの操作要求は、記憶手段の利用要求の一例である。また、ＪＶＭ１２４のファイルクラス群１２４１が有するＡＰＩや、ＳＤＫＡＰＩは、所定のインタフェースの一例である。また、ＮＡＮＤ型フラッシュメモリ１１６は、第一の記憶手段の一例である。また、ＨＤＤ１１４は、第二の記憶手段の一例である。また、ＲＡＭ１１２は、第三の記憶手段の一例である。また、ログクラス１２３２又はファイル関数群１２７１は、特定部の一例である。ログクラス１２３２は、記録手段の一例である。
【００６３】
また、本実施の形態では、公開されたＡＰＩを用いて開発されたアプリケーションが機器に処理を実行させる形態の一例として、ＳＤＫという提供形態を用いて説明したが、本発明は斯かる特定の提供形態に限定されるものではない。
【００６４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００６５】
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
８０          ＳＤカード
１１１        ＣＰＵ
１１２        ＲＡＭ
１１３        ＲＯＭ
１１４        ＨＤＤ
１１５        ＮＶＲＡＭ
１１６        ＮＡＮＤ型フラッシュメモリ
１２１        標準アプリ
１２２        ＳＤＫアプリ
１２３        ＳＤＫプラットフォーム
１２４        ＪＶＭ
１２５        コントロールサービス
１２６        ＯＳ
１２７        ログライブラリ
１２１１      スキャンアプリ
１２１２      印刷アプリ
１２１３      コピーアプリ
１２１４      ＦＡＸアプリ
１２２１      アプリＡ
１２２２      アプリＢ
１２３１      ＳＤＫクラス群
１２３２      ログクラス
１２４１      ファイルクラス群
１２７１      ファイル関数群
１２７２      ＪＮＩ関数
【先行技術文献】
【特許文献】
【００６６】
【特許文献１】特開２００６−０７９２１１号公報
【特許文献２】特開２００９−２９０４６４号公報
【図１】
2014170515.tif 000003
【図２】
2014170515.tif 000004
【図３】
2014170515.tif 000005
【図４】
2014170515.tif 000006
【図５】
2014170515.tif 000007