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