(57)【要約】【課題】アプリケーションサービスが純粋に利用するメモリをより正確に計測すること。【解決手段】画像形成装置１１０において、アプリケーションサービスから利用されるシステムサービスが、アプリケーションサービスが使用するシステムリソース（例えばメモリ）の計測処理が行われているか（ストレッサツールが起動しているか）どうかを検知し（Ｓ７１０）、アプリケーションサービスが使用するシステムリソースの計測処理が行われている（ストレッサツールが起動している）ことを検知した場合、システムサービスは、システムリソースを消費する挙動をしないモードに遷移する（Ｓ７２０）。【選択図】図６
2012064084.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
アプリケーションサービスを行うアプリケーションサービス手段と、
前記アプリケーションサービスからの要求に応じて動作するシステムサービス手段と、
前記アプリケーションサービス手段が使用する前記情報処理装置のシステムリソースを計測するための計測手段と、を有し、
前記システムサービス手段は、前記計測手段により前記システムリソースの計測が行われているか否かを検知し、前記計測手段により前記システムリソースの計測が行われていることを検知した場合、前記システムリソースを消費する挙動を行わないことを特徴とする情報処理装置。
【請求項２】
前記計測手段は、前記アプリケーションサービス手段が使用するメモリのサイズを計測するものであり、
前記計測手段は、前記アプリケーションサービス手段、及び前記システムサービス手段が使用するメモリ領域のうち、指定されたサイズのメモリ領域以外のメモリ領域を圧迫した状態で、前記アプリケーションサービスを動作させ、前記指定されたサイズのメモリ領域の使用状態を取得することで、前記アプリケーションサービスが使用するメモリのサイズを計測することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記計測手段は、前記指定されたサイズのメモリ領域以外のメモリ領域を圧迫した状態で前記アプリケーションサービス手段を動作させた場合に、メモリ不足を示すエラーが発生した場合、前記アプリケーションサービス手段が使用するメモリのサイズが前記指定されたサイズを超えていると判定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記計測手段は、前記アプリケーションサービス手段が使用するプロセッサリソースを計測することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記計測手段は、前記アプリケーションサービス手段が使用するファイルサイズを計測することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記計測手段は、前記アプリケーションサービス手段が使用するスレッド数を計測することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
前記情報処理装置は、画像形成装置であることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
情報処理装置の制御方法であって、
前記情報処理装置のプロセッサが、アプリケーションサービスを実行するステップと、
前記情報処理装置のプロセッサが、前記アプリケーションサービスからの要求に応じてシステムサービスを実行するシステムサービスステップと、
前記情報処理装置のプロセッサが、前記アプリケーションサービスが使用する前記情報処理装置のシステムリソースを計測する計測処理を行う計測ステップと、を有し、
前記システムサービスステップでは、前記計測処理が行われているか否かを検知し、前記計測処理が行われていることを検知した場合、前記システムリソースを消費する挙動を行わないことを特徴とする情報処理装置の制御方法。
【請求項９】
コンピュータを、請求項１乃至６のいずれか１項記載された情報処理装置の手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置におけるシステムリソースの消費量の計測に関するものである。
【背景技術】
【０００２】
コピー機能、プリンタ機能、スキャナ機能、ファクシミリ機能などの複数の機能を有するＭＦＰ（Multifunction Peripheral）には、上記各機能を実現するための、複数のデバイスと複数のアプリケーションサービスとが組み込まれている。各アプリケーションサービスは、各デバイスのうち、少なくとも１つ以上のデバイスを動作させて対応する機能を実現するものである。
【０００３】
画像処理装置の中には、データ記憶及び処理のためのコンピューティングリソース（例えばプロセッサ、ハードディスクドライブ、メモリ、及び、他のデバイス）を備えたものがある。画像処理装置にさらに特徴的構成や機能を付加すると、さらに高価に、そしてさらに複雑になる。
【０００４】
上記ＭＦＰに対しては、ＪＡＶＡ（登録商標）環境に代表されるようなアプリケーションサービス動作環境が提供されている。
ＪＡＶＡ（登録商標）の持つプログラムの可搬性を利用して、拡張可能なアプリケーションサービスを提供する技術が提案されている（特許文献１、非特許文献１を参照）。
ＭＦＰの機能向上、ユーザビィリティの向上等を図るために、上記ＪＡＶＡ（登録商標）環境等のような環境下で動作するアプリケーションサービスを作成し、ＭＦＰにインストールすれば、当該アプリケーションサービスにより所望の機能を実現することができる。
【０００５】
非特許文献１には、OSGi Service Platform（以下ＯＳＧｉと略）が開示されている。ＯＳＧｉは、アプリケーションサービスに追加されるソフトウェアモジュールをバンドルと呼び、バンドルのインストール／起動／終了／更新／アンインストールといったソフトウェアモジュールのライフサイクルを管理する仕様を定義している。
【０００６】
ＪＡＶＡ（登録商標）では一般に、パッケージはＪＡＲ（ＪａｖａＡｒｃｈｉｖｅ）という圧縮ファイルで用意される。このＪＡＲファイルにより、ＪＡＶＡ（登録商標）のｃｌａｓｓファイルなどの複数のファイルをまとめて扱うことができる。
【０００７】
なお、ＪＡＲファイルの中には、ＪＡＶＡ（登録商標）の仕様として、ＪＡＲファイルについての説明を行うマニフェストファイルが必要とされる。マニフェストのファイル名は"META-INF/MANIFEST.MF"で、マニフェスト内には属性の名前とその値のペアとして属性値が記述される。このマニフェストファイルには、アーカイブのメタ情報が格納されている。この中に、ＪＡＲファイルが使用するメモリ消費量やリソースについてなどを記述する仕様とすることも可能であり、例えば、メモリ消費量は、システム全体の消費メモリを確認する際に利用可能である。
【０００８】
このようにマニフェストファイルにメモリ消費量を記述する必要がある場合、アプリケーションサービス開発者は、メモリ消費量を、予め計測する必要が出てくる。
このメモリ消費量を計測する方法として、メモリヒープサイズを指定したサイズまで圧迫してストレスをかけた上で、残りのメモリ空間を利用できるかどうかでメモリ消費量を測るストレッサというツールを利用する方法がある。このストレッサツールについては、後ほど詳細を記述する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０００−２９７１３号公報
【非特許文献】
【００１０】
【非特許文献１】「OSGi Service Platform Specification Release 2」, OSGi, 200
【発明の概要】
【発明が解決しようとする課題】
【００１１】
一方、アプリケーションサービスによっては、複数のアプリケーションサービスが共通に利用するシステムサービスを利用することがある。システムサービスは、アプリケーションサービスからの要求により動作するプログラム（アプリケーションによって利用されるプログラム）である。
【００１２】
上述のマニフェストファイルには、そのアプリケーションサービスが利用する純粋なリソース値を記述することが望まれる。
しかし、上述のようなストレッサツールを用いた方法で行ったメモリ消費量の計測値は、システムサービスのメモリ分も含めた計測値となってしまう。そこで従来では、ストレッサツールを用いて計測したリソース値から、別途計測しておいたシステムサービスのリソース値の分を差し引くことで、アプリケーションサービス固有の純粋なリソース値としてきた。
【００１３】
しかしながら、この方法で得られたリソース値は、あくまで推定値となってしまうため、正確性という点で劣ることになる。特に、計測対象のアプリケーションサービスが、複数のアプリケーションサービスが共通に利用するシステムサービスを利用する場合、実際のリソース消費量と、推定値を用いた方法で得られたリソース消費量との誤差が大きくなってしまう。この場合、例えば、実際の消費量に関わらず、マニフェストファイルで宣言したメモリサイズを用いてシステム全体の消費メモリを推定する方法をとっていたとすると、メモリ消費量が正確でないことで、次の（１），（２）のようなデメリットがある。
【００１４】
（１）もし、マニフェストファイルに書かれている値が、実際に消費するメモリ量より大きい場合
この場合、マニフェストファイルに書かれているメモリ消費の合算値がシステム全体のリミットを越えてしまうと、それ以上アプリケーションサービスを入れられないようにするなどのシステムを保護する機能が働く。よって、システム全体として効率的に限られたリソースを利用することを考えた時、このマニフェストファイルに記載するメモリ消費量を、実際に利用する値に近づけ、無駄な量を計上しないことが重要になってくる。
【００１５】
（２）もし、マニフェストファイルに書かれている値が実際に消費するメモリ量より小さい場合
この場合、実際に消費しているメモリが、システムが保証するメモリサイズより多くなる可能性があり、システムが不安定になる可能性がある。
【００１６】
そのため、実際にアプリケーションサービスが純粋に消費しているシステムリソースの消費量を正確に計測する必要があるという課題があった。
本発明は、上記の問題点を解決するためになされたものである。本発明の目的は、アプリケーションサービスが純粋に利用するシステムリソースのサイズをより正確に計測することを可能にする仕組みを提供することである。
【課題を解決するための手段】
【００１７】
本発明は、情報処理装置であって、アプリケーションサービスを行うアプリケーションサービス手段と、前記アプリケーションサービスからの要求に応じて動作するシステムサービス手段と、前記アプリケーションサービス手段が使用する前記情報処理装置のシステムリソースを計測するための計測手段と、を有し、前記システムサービス手段は、前記計測手段により前記システムリソースの計測が行われているか否かを検知し、前記計測手段により前記システムリソースの計測が行われていることを検知した場合、前記システムリソースを消費する挙動を行わないことを特徴とする。
【発明の効果】
【００１８】
本発明によれば、アプリケーションサービスが純粋に利用するシステムリソースのサイズをより正確に計測することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の一実施例における画像形成装置を含む印刷システムの全体構成を示すブロック図である。
【図２】画像形成装置１１０のコントローラ２００の構成を説明するためのブロック図である。
【図３】ハードディスク２０４に保存されているソフトウェアの階層構造を示す図である。
【図４】ストレッサツールにおけるメモリ配置を示す図である。
【図５】システムサービスを利用する複数のアプリケーションサービスの構成を示す図である。
【図６】ストレッサツール利用時のシステムサービスの動作を示すフローチャートである。
【図７】ストレッサツールを利用したメモリの計測手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００２１】
図１は、本発明の一実施例における画像形成装置を含む印刷システムの全体構成を示すブロック図である。本実施例においては、画像形成装置として、具体的に後述される機能を有する複写機やプリンタや複合機などを用いるものとする。
【００２２】
図１に示すように、画像形成装置１１０は、クライアントコンピュータ１２０、サーバコンピュータ１３０とともに、イーサネット（登録商標）などからなるＬＡＮ１４０や図示しないＷＡＮに接続されている。ただし、本発明の印刷システムにおいては、システムに接続される機器はこれら接続数に限られることはない。
【００２３】
画像形成装置１１０は、コピー機能、ファクシミリ機能、電子メール送信機能を有するとともに、原稿画像を読み取り、該読み取って得られた画像データをＬＡＮ１４０上の各装置に送信するデータ送信機能を有する。
【００２４】
また、画像形成装置１１０は、後述するスキャナ部１１２などで読み取った画像や、ＬＡＮ１４０上に接続されているコンピュータから指示されたデータを、画像形成装置１１０内のハードディスク２０４の特定領域に保存することが可能である。また、画像形成装置１１０は、原稿画像を読み取り、ハードディスク２０４にデジタル画像として保存することも可能である。また、画像形成装置１１０は、ハードディスク領域に保存されたデジタル画像を印刷することが可能である。
【００２５】
画像形成装置１１０は、操作部１１１、スキャナ部１１２、プリンタ部１１３、ＦＡＸ送信部１１４、メール送信部１１５、コントローラ２００などから構成される。
スキャナ部１１２は、画像入力デバイスである。プリンタ部１１３は、画像出力デバイスである。ＦＡＸ送信部１１４は、ファクシミリ送信を行う。メール送信部１１５は、メール送信を行う。コントローラ２００は、画像形成装置１１０全体の動作制御を司る。
【００２６】
スキャナ部１１２は、原稿上の画像を露光走査して得られた反射光をＣＣＤに入力することで画像の情報を電気信号に変換する。さらに、スキャナ部１１２は、電気信号をＲ，Ｇ，Ｂ各色からなる輝度信号に変換し、当該輝度信号を画像データとしてコントローラ２００に対して出力する。なお、原稿は図示しない原稿フィーダにセットされる。ユーザが操作部１１１から読み取り開始を指示すると、コントローラ２００からスキャナ部１１２に原稿読み取り指示が与えられる。スキャナ部１１２は、この指示を受けると原稿フィーダから原稿を１枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は原稿フィーダによる自動送り方式ではなく、原稿を不図示のガラス面上に載せ、露光部を移動させることで原稿の走査を行う方法であってもよい。
【００２７】
プリンタ部１１３は、コントローラ２００から受取った画像データを用紙上に形成する画像形成デバイスである。
画像形成装置１１０は、後述するＯＳＧｉ仕様のプラットフォームを実装しており、該プラットフォーム上で動作するプログラム（アプリケーションサービス）を実行して、上述した各種機能を実現する情報処理装置である。なお、このＯＳＧｉ仕様のプラットフォームを実装した情報処理装置に対しては、該プラットフォーム上で動作するプログラム（アプリケーションサービス）を、ネットワークを介した遠隔のコンピュータからインストール・起動・停止・アンインストールできる。
【００２８】
サーバコンピュータ１３０では、オペレーティングシステム（以下ＯＳ）や上記プラットフォーム、各種のアプリケーションサービスプログラムがＣＰＵにより実行される。サーバコンピュータ１３０は、上記ＯＳや上記プラットフォームの管理下で、アプリケーションサービスを実行することで種々のデータ処理を行う。クライアントコンピュータ１２０についてもサーバコンピュータ１３０と同様である。
【００２９】
図２は、画像形成装置１１０のコントローラ２００の構成を説明するためのブロック図である。
図２に示すように、コントローラ２００は、スキャナ部１１２やプリンタ部１１３と電気的に接続されており、一方ではＬＡＮ１４０を介してクライアントコンピュータ１２０やサーバコンピュータ１３０と接続されている。これにより、コントローラ２００は、画像データやデバイス情報の入出力が可能となっている。
【００３０】
コントローラ２００において、ＣＰＵ２０１は、ＲＯＭ２０２に記憶された制御プログラム等に基づいて接続中の各種デバイスとのアクセスを統括的に制御すると共に、コントローラ内部で行われる各種処理についても統括的に制御する。ＲＯＭ２０２には、装置のブートプログラムなどが格納されている。
【００３１】
ＲＡＭ２０３は、ＣＰＵ２０１が動作するためのシステムワークメモリであり、かつ画像データを一時記憶するためのメモリでもある。このＲＡＭ２０３は、記憶した内容を電源ｏｆｆ後も保持しておくＳＲＡＭ、電源ｏｆｆ後には記憶した内容が消去されてしまうＤＲＡＭなどにより構成されている。
【００３２】
ＨＤＤ２０４はハードディスクドライブであり、システムソフトウェアや画像データを格納することが可能となっている。
操作部Ｉ／Ｆ２０５は、システムバス２１２と操作部１１１とを接続するためのインターフェース部である。この操作部Ｉ／Ｆ２０５は、操作部１１１に表示するための画像データをシステムバス２１２から受取り操作部１１１に出力すると共に、操作部１１１から入力された情報をシステムバス２１２へと出力する。
【００３３】
ネットワークＩ／Ｆ２０６は、ＬＡＮ１４０やＷＡＮ２５０、及びシステムバス２１２に接続し、情報の入出力を行う。
スキャナＩ／Ｆ２０８は、スキャナ部１１２から受取った画像データに対して、補正、加工、及び編集を行う。なお、スキャナＩ／Ｆ２０８は、受取った画像データがカラー原稿か白黒原稿か、文字原稿か写真原稿かなどを判定する。そして、スキャナＩ／Ｆ２０８は、その判定結果を画像データに付随させる。こうした付随情報を属性データと称する。
【００３４】
画像形成部２０９は、画像データの方向変換、画像圧縮、伸張部などをおこなう。
プリンタＩ／Ｆ２１０は、画像形成部２０９から送られた画像データを受取り、この画像データに付随させられている属性データを参照しながら画像データに画像形成を施す。画像形成後の画像データは、プリンタ部１１３に出力される。
【００３５】
ＦＡＸＩ／Ｆ２１１は、画像形成部２０９から送られた画像データを、指定された送信先にＦＡＸ送信部１１４、及びＬＡＮ１４０（又は、ＷＡＮ２５０）を通じて送信される。
【００３６】
電子メールＩ／Ｆ２０７は、画像形成部２０９から送られた画像データを、指定された送信先にメール送信部１１５及びＬＡＮ１４０（又は、ＷＡＮ２５０）を通じて送信される。
【００３７】
なお、画像形成装置１１０に対するユーザ指示やユーザへの情報提示は、例えば、操作部１１１を介して行うようにしてもよいし、ＬＡＮ１４０を介して接続されたクライアントコンピュータ１２０を介して行うようにしてもよい。
【００３８】
図３は、ハードディスク２０４に保存されているソフトウェアの階層構造を示す図である。
図３において、３００はオペレーティングシステム（ＯＳ）で、ソフトウェアやハードウェア資源を管理する。
３３０は、ソフトウェアモジュールを拡張することができるＪＡＶＡ（登録商標）言語で記述されたアプリケーションサービスであるＯＳＧｉ仕様を実装したプラットフォームである。
【００３９】
３１０は、プラットフォーム３３０を実行するためのＪＡＶＡ（登録商標）ＶＭで、ＪＡＶＡ（登録商標）言語を解釈・実行する仮想マシンである。
３４０は、プラットフォーム３３０上で実行可能なＪＡＶＡ（登録商標）言語で記述されたソフトウェアモジュール（以下、バンドルと呼称する）の集合であり、上述したアプリケーションサービスやシステムサービスもこれに該当する。
３２０は、ＪＡＶＡ（登録商標）ＶＭ３１０上でプラットフォーム３３０を実行するために必要なシステムライブラリである。
【００４０】
なお、上述のＪＡＶＡ（登録商標）ＶＭ（以下、ＶＭ）は、一般的なＰＣにおいては、複数利用されることにより効率的な実行を可能とする。しかしながら、このＶＭは、メモリなどのリソース資源を多く必要とする。このため、複合機などのリソース資源が限られた環境の場合、１つのＶＭで、その限られた資源を利用する形態であることが多い。よって、複合機などでは、１つのＶＭ上で、アプリケーションサービスやシステムサービスが動作することとなる。
【００４１】
次に、メモリの計測方法について述べる。
一般的にＯＳのメカニズムとして、プロセスごとのメモリをとることが可能である。ＶＭも１つのプロセスとして存在する。その１つのＶＭ上で複数のバンドルが動作している場合に、それぞれのバンドルがどれくらいのメモリを利用しているかを計測するのは難しい。そこで、前述したストレッサツールを利用する方法が考えられる。
【００４２】
ストレッサツールとは、マニフェストファイルに記載するリソース資源使用量を計測するツールである。メモリの計測においては、利用可能な資源を制限した状態でサービスが動作するかどうかを確認する方法、ストレス計測法で行う。
【００４３】
図４は、ストレッサツールにおけるメモリ配置を示す図である。
図４において、４００は、図３に示したＶＭ３１０が確保した全体のヒープサイズを示す。ストレッサ４１０は、指定されたサイズの空きメモリ（計測用メモリ４５０）を残してメモリを圧迫する。ストレスをかけるメモリが４４０で示される。この状態をストレスがかかっている状態と呼ぶ。
【００４４】
指定したサイズのメモリ（計測用メモリ４５０）を使用して、ターゲットサービス（計測対象のサービス）４２０やシステムサービス４３０が動作することとなる。なお、指定したサイズのメモリ（計測用メモリ４５０）でターゲットサービス（計測対象のサービス）４２０やシステムサービス４３０が動作できなかった場合には、OutOfMemoryErrorのエラーが発生する。OutOfMemoryErrorは、ＶＭ３１０がヒープメモリ不足により、オブジェクトにメモリを割り当てることが出来ず発生するエラーである。
【００４５】
また、これらのサービスが正常に動作（OutOfMemoryErrorの発生なく正常に動作）した場合、ターゲットサービスメモリ４６０及びシステムサービスメモリ４７０で埋まらなかった分を、空きメモリ４８０のサイズとして確認することができる。
【００４６】
よって、ターゲットサービスが上記のように正常に動作し、空きメモリ４８０のサイズが「０」に近い値となった場合、計測用メモリ４５０のサイズを、ターゲットサービス４２０とシステムサービス４３０とで消費するメモリサイズとして計測することができる。
【００４７】
即ち、ストレッサ４１０により、ターゲットサービス４２０及びシステムサービス４３０が使用するメモリ領域のうち、指定されたサイズのメモリ領域以外（計測用メモリ４５０以外）のメモリ領域を圧迫した状態で、ターゲットサービス４２０を動作させる。そして、ターゲットサービス４２０が正常に動作した後、指定されたサイズのメモリ領域（計測用メモリ４５０）の使用状態（空きメモリ４８０）を取得することで、ターゲットサービス４２０が使用するメモリのサイズを計測する。なお、指定されたサイズのメモリ領域以外のメモリ領域を圧迫した状態でターゲットサービス４２０を動作させ、メモリ不足を示すエラーが発生した場合、ターゲットサービス４２０が使用するメモリのサイズが前記指定されたサイズを超えていると判定できる。
【００４８】
上述したように、従来では、ストレッサツールを用いて計測したメモリサイズから、推定されるシステムサービス４３０のメモリサイズを差し引くことで、ターゲットサービス４２０のメモリサイズを求めていた。また、システムサービス４３０が消費するメモリサイズが小さい場合には、この値を無視し、ストレッサツールを用いて計測したメモリサイズを、ターゲットサービス４２０で消費するメモリサイズとすることもあった。
【００４９】
しかし、アプリケーションサービスによっては、図５に示すように複数のサービスで共通に利用されるシステムサービスを利用することがある。この場合について以下に考察する。
【００５０】
図５は、システムサービスを利用する複数のアプリケーションサービスの構成を示す図である。
ここで、例えば、システムサービスＡ６２０とは、各アプリケーションサービスが利用する設定値を管理する設定値管理サービスとする。即ち、システムサービスＡ６２０は、各アプリケーションサービスからの要求に応じて設定値管理サービスを行う。アプリケーションサービスＡ６００及びＢ６１０は、自分達で利用する設定値を、このシステムサービスＡ６２０を利用することで、サービスが管理するデータベース６３０に書き込んだり、参照したりすることが可能である。この状況でアプリケーションサービスＡ６００、及び、Ｂ６１０のメモリ消費量について考える。
【００５１】
このアプリケーションサービスＡ６００やＢ６１０のメモリ計測時に、ターゲットサービスが動作し、システムサービスＡ６２０へ、アプリケーションサービスＡ６００の設定値を書き込むと、このときシステムサービスＡ６２０のメモリが消費される。なお、メモリ消費量を簡単のために、仮にアプリケーションサービスＡ６００、及びＢ６１０が消費するメモリサイズをそれぞれ１Ｍ、システムサービスＡ６２０が消費するメモリサイズを１Ｍであると仮定する。
【００５２】
この場合、アプリケーションサービスＡ６００をターゲットサービスとして計測されるメモリ消費量は、アプリ自身が消費する１ＭとシステムサービスＡ６２０が設定値の書き込みのために消費する１Ｍの合計２Ｍとなる。
【００５３】
また、アプリケーションサービスＢ６１０をターゲットサービスとして計測されるメモリ消費量は、アプリ自身が消費する１ＭとシステムサービスＡ６２０が消費する１Ｍの合計２Ｍとなる。
この結果、システムサービスＡ６２０が消費する２Ｍ分が重複して、アプリケーションサービスが消費するメモリ消費量として計上されてしまう。
【００５４】
本来は、実際にアプリケーションサービスが消費している２Ｍ分だけを計上すればよいはずである。このように考えていくと、共通に利用されるシステムサービスを利用するアプリケーションサービスが増えれば、この重複は無視できないものになる。よって、従来のシステムサービスＡ６２０が消費するメモリサイズを推定する方法では、システムサービスを利用するアプリケーションサービスが増えれば、前記推定値と実際にシステムサービスＡ６２０が消費するメモリサイズとの誤差も積み重ねられていく。このため、この誤差が無視できないものになる。また、システムサービス４３０が消費するメモリサイズが小さい場合でも、システムサービスを利用するアプリケーションサービスが増えれば、このメモリサイズが積み重ねられていき、無視できないものになる。
これを解決するために、以下のような方法が考えられる。
【００５５】
以下、図６を用いて、本発明のシステムサービスのメモリ計測時の動作について説明する。
図６は、ストレッサツール利用時のシステムサービスの動作を示すフローチャートである。なお、このフローチャートの処理は、システムサービスが実行するものとする。即ち、ＣＰＵ２０１が、ＲＯＭ２０２等の記録媒体にコンピュータ読み取り可能に記録されたプログラムを実行することにより実現される。
【００５６】
上述したようにターゲットサービスから、システムサービスに対する操作が発生すると（Ｓ７００）、システムサービスは、Ｓ７１０において、ストレッサツールが起動しているかどうかを判定する。
【００５７】
そして、ストレッサツールが起動していることを検知したと判定した場合、即ち、アプリケーションサービスのメモリ消費量を計測している状態であると判定した場合（Ｓ７１０で起動していると判定した場合）、システムサービスは、Ｓ７２０に処理を移行させる。
【００５８】
Ｓ７２０では、システムサービスは、シミュレーションモードに移行する。ここで、シミュレーションモードとは、図５の例では、アプリケーションサービスから設定値の書き込み操作があった場合でも、システムサービスは、実際の設定値の書き込み処理等のメモリリソースを消費する挙動は行わないモードである。即ち、システムサービスがメモリリソースを全く消費しないようにしたモードである。つまり、アプリケーソンサービスからシステムサービスが利用されても、システムサービスが全くメモリを消費することがなく動作するモードである。これにより、アプリケーションサービスの挙動を全く変更することなく、システムサービスが消費するメモリの影響を受けずに、ストレッサツールにより、純粋にアプリケーションサービス自身に関わるメモリ消費計測が可能となる。なお、システムサービスはユーザが意識することがない部分で動いているため、メモリ計測を行うユーザがシステムサービスにより消費されるメモリまでも意識してメモリ計測を行うことは容易ではない。しかし、本発明では、ユーザにシステムサービスについて意識させることなく、ストレッサツールにより、アプリケーションサービス自身に関わるメモリ消費計測が可能となるで、容易にアプリケーションサービスのメモリ消費量を計測できる。
【００５９】
ただし、システムサービスがシミュレーションモードで動作しても、アプリケーションサービスが期待する動作になるために、メモリ計測前に予めアプリケーションサービスの設定値を、設定しておくなどの工夫をする必要がある場合もある。
【００６０】
一方、上記Ｓ７１０において、システムサービスがストレッサツールの起動を検出しないと判断した場合（Ｓ７１０で起動していないと判定した場合）、システムサービスは、Ｓ７３０に処理を移行させる。
Ｓ７３０では、システムサービスは、通常通りの動作を行う。この場合、システムサービス６２０は、メモリを通常通り消費する。
【００６１】
以下、ストレッサツールを利用したメモリの計測手順について説明する。
図７は、ストレッサツールを利用したメモリの計測手順の一例を示すフローチャートである。
まず、Ｓ５００において、ストレッサツールの実行を開始する。
次に、Ｓ５１０において、オペレータ（ユーザ）が操作部１１１等から指示を行い、一度、複合機（画像形成装置１１０）の再起動を行う。予めＳ５００において、ストレッサツールを開始しておいたのは、ストレッサツールを開始させるツールなどを開始して無駄な資源の消費を抑えるためである。なお、システムサービスは、複合機の再起動後に、自動で起動されるように構成されている。また、Ｓ５００で実行開始されたストレッサツールも、Ｓ５１０の複合機の再起動後に、自動で再起動されるように構成されている。
【００６２】
次に、Ｓ５２０において、ユーザが操作部１１１等から操作を行い、ストレッサツールに対して、計測用メモリ４５０のサイズ設定を行う。最初は、適当なサイズの計測用メモリ４５０を設定して、消費メモリサイズの計測を開始する。
【００６３】
Ｓ５３０において、ユーザが操作部１１１等から操作を行い、ストレッサツールのバンドル開始機能を使用して、計測対象のサービス（ターゲットサービス）を開始する。なお、ストレッサツールは、バンドルサービスを開始／停止をする機能を有する。
【００６４】
Ｓ５４０において、ユーザが操作部１１１等から操作を行い、計測対象のサービスを操作する。なお、ここで、ターゲットサービスからシステムサービスに対する操作が発生しても、図６に示しように、システムサービスはシミュレーションモードとなりメモリを消費しない。
【００６５】
次に、Ｓ５５０において、OutOfMemoryErrorを出すことなく計測対象のサービスが動作することをユーザが確認する。もしOutOfMemoryErrorが発生した場合は、ユーザは、Ｓ５１０から作業をやり直し、次回の空きメモリの設定を前回より大きめに設定して計測し直す。
【００６６】
一方、OutOfMemoryErrorが発生することなく計測対象のサービスが動作した場合は、Ｓ５６０において、ストレッサツールのコンソール（操作部１１１の表示部）上に出力される空きメモリ４８０のサイズをユーザが確認する。なお、上述したように、上記Ｓ５４０において、ターゲットサービスからシステムサービスに対する操作が発生しても、図６に示しように、システムサービスはメモリを消費しない。このため、Ｓ５６０で確認する空きメモリ４８０のサイズは、計測用メモリ４５０からターゲットサービスメモリ４６０を減算した値に非常に近いものとなる。よって、ここで確認する空きメモリが「０」に近い値であった場合、上記Ｓ５２０で設定した計測用メモリ４５０の値を、ターゲットサービスが動作するメモリサイズに確定することが可能となる。
【００６７】
次に、Ｓ５７０において、ユーザは、上記Ｓ５６０で確認した空きメモリ４８０のサイズが、閾値（０以上の所定の値）以下となったかどうかを判断する。
そして、未だ上記Ｓ５６０で確認した空きメモリ４８０のサイズが閾値以下となっていない、即ち、空きメモリ４８０に余裕があると判断した場合は、ユーザは、上記Ｓ５１０から作業をやり直す。この際、次回のＳ５２０のメモリサイズ設定を前記より小さめにする。
【００６８】
ユーザは、このようなＳ５１０〜Ｓ５７０の作業を幾度か行い、Ｓ５７０で空きメモリのサイズが閾値以下となったと判断した場合、この回に上記Ｓ５２０で設定した計測用メモリサイズの値を、サービスが動作する最小のメモリサイズに確定することができる。そして、この確定した計測対象のサービスメモリのサイズを、そのサービスメモリのマニフェスト値として採用することが可能となる。
【００６９】
＜他の計測手順＞
以下、図７に示したストレッサツールを利用したメモリの計測をプログラムにより自動で行う例について示す。
【００７０】
この場合、図７のフローチャートの各ステップ（Ｓ５００〜Ｓ５７０）は、ＣＰＵ２０１が、ＲＯＭ２０２等の記録媒体にコンピュータ読み取り可能に記録されたプログラムを実行することにより実行される。
【００７１】
まず、Ｓ５００において、ＣＰＵ２０１は、ストレッサツールの実行を開始する。
次に、Ｓ５１０において、ＣＰＵ２０１は、一度、複合機（画像形成装置１１０）の再起動を行う。予めＳ５００において、ストレッサツールを開始しておいたのは、ストレッサツールを開始させるツールなどを開始して無駄な資源の消費を抑えるためである。なお、システムサービスは、複合機の再起動後に、自動で起動されてシステムに常駐するように構成されている。また、Ｓ５００で実行開始されたストレッサツールも、Ｓ５１０の複合機の再起動後に、自動で再起動されるように構成されている。また、本フローチャートに対応するプログラム（本プログラム）も自動で再起動され、この続きから実行されるように構成されている。
【００７２】
次に、Ｓ５２０において、ＣＰＵ２０１は、計測用メモリ４５０のサイズ設定を行う。なお、Ｓ５２０の処理を最初に実行する場合には、予めユーザにより設定され不揮発性メモリ（ＲＡＭ２０３内のＳＲＡＭ又はＨＤＤ２０４）に登録されたサイズの計測用メモリ４５０を設定して、消費メモリサイズの計測を開始する。なお、Ｓ５２０の実行が２回目以降の場合には、複合機の再起動（Ｓ５１０）前に、ＣＰＵ２０１により不揮発性メモリ（ＲＡＭ２０３内のＳＲＡＭ又はＨＤＤ２０４）に登録されたサイズの計測用メモリ４５０を設定する。
【００７３】
次に、Ｓ５３０において、ＣＰＵ２０１は、ストレッサツールのバンドル開始機能を使用して、計測対象のサービス（ターゲットサービス）を開始する。なお、ストレッサツールは、バンドルサービスを開始／停止をすることが可能である。また、計測対象のサービス（ターゲットサービス）として、予めユーザにより設定されたアプリケーションサービス名が不揮発性メモリに記憶されているものとする。
【００７４】
次に、Ｓ５４０において、ＣＰＵ２０１は、計測対象のサービスを操作する。なお、ここで、ターゲットサービスからシステムサービスに対する操作が発生しても、図６に示しように、システムサービスはシミュレーションモードとなりメモリを消費しない。
【００７５】
次に、Ｓ５５０において、ＣＰＵ２０１は、OutOfMemoryErrorを出すことなく計測対象のサービスが動作するか否かを判定する。もしOutOfMemoryErrorが発生したと判定した場合、ＣＰＵ２０１は、ＲＡＭ２０３内のＳＲＡＭ（又はＨＤＤ２０４）に、次回にＳ５２０で設定する計測用メモリサイズ（前回より大きいサイズ）を登録しておき、Ｓ５１０に処理を戻す。これにより、次回Ｓ５２０を実行する際、この前回より大きいサイズが計測用メモリ４５０として設定されることになる。なお、ここで登録する次回の計測用メモリサイズは、前回のサイズより所定の割合（例えば、５パーセント）だけ大きいサイズとする。この割合は、固定であってもよいし、予めユーザにより設定され不揮発性メモリに記憶されていてもよい。また、メモリサイズを大きくする割合を設定するのではなく、大きくするメモリサイズの値を予め設定しておいてもよい。
【００７６】
一方、OutOfMemoryErrorが発生することなく動作したと判定した場合（Ｓ５５０でＮｏの場合）、Ｓ５６０において、ＣＰＵ２０１は、ストレッサツールから出力される空きメモリ４８０のサイズを確認する。なお、上述したように、上記Ｓ５４０において、ターゲットサービスからシステムサービスに対する操作が発生しても、図６に示しように、システムサービスはメモリを消費しない。このため、Ｓ５６０で確認する空きメモリ４８０のサイズは、計測用メモリ４５０のサイズからターゲットサービスメモリ４６０のサイズを減算した値に非常に近いものとなる。よって、ここで確認する空きメモリ４８０のサイズが「０」に近い値であった場合、上記Ｓ５２０で設定した計測用メモリ４５０の値を、ターゲットサービスが動作するメモリサイズに確定することが可能となる。
【００７７】
次に、Ｓ５７０において、ＣＰＵ２０１は、空きメモリ４８０のサイズが閾値以下である（空きメモリ４８０に余裕がない）か否かを判定する。なお、この閾値は、予め不揮発性メモリに記憶されている「０」以上の値で、予めユーザが設定するように構成してもよい。
【００７８】
そして、空きメモリ４８０のサイズが閾値より大きいと判定した場合、ＣＰＵ２０１は、ＲＡＭ２０３内のＳＲＡＭ（又はＨＤＤ２０４）に、次回Ｓ５２０で設定する計測用メモリサイズ（前回より小さいサイズ）を登録し、Ｓ５１０に処理を戻す。これにより、空きメモリ４８０に余裕がある場合、次回Ｓ５２０を実行する際、この前回より小さいサイズが計測用メモリ４５０として設定されることになる。なお、ここで登録する次回の計測用メモリサイズは、例えば、前回のサイズから、空きメモリと閾値との差分を減算した値とする（次回の計測用メモリサイズ＝前回の計測用メモリサイズ−（空きメモリ−閾値））。
【００７９】
そして、上記Ｓ５７０において、空きメモリ４８０のサイズが閾値以下になったと判定した場合、ＣＰＵ２０１は、現在の計測用メモリサイズを、計測対象のサービスが動作する最小の計測用メモリ４５０のサイズ（値）に確定し、該値を出力する。なお、確定した計測対象のサービスメモリのサイズの出力は、操作部１１１の表示部に出力するものでも、ＲＡＭ２０３内のＳＲＡＭ又はＨＤＤ２０４に出力するもでも、ネットワークを介して他の装置に出力するものでもよい。
【００８０】
以上説明したように、本発明によれば、計測対象のアプリケーションサービスが純粋に利用するメモリサイズをより正確に計測することを可能にする。また、本発明では、計測対象のアプリケーションサービスが利用するサービス（上述のシステムサービス等）をユーザに意識させることなく、ストレッサツールにより、計測対象のアプリケーションサービスが純粋に利用するメモリをより正確に計測可能となる。よって、容易にアプリケーションサービスのメモリ消費量を計測することが可能となる。
【００８１】
なお、本実施例では、アプリケーションサービスのメモリリソース消費量を計測する場合について説明した。しかし、メモリリソースに限らず、広くシステムリソース（例えばプロセッサ、ハードディスクドライブ、メモリ、及び、他のデバイス）消費量を計測する場合にも、本発明は適用可能である。
【００８２】
例えば、アプリケーションサービスのプロセッサリソース（ＣＰＵ２０１）消費量（例えばＣＰＵの使用率）を計測する場合にも、本発明は適用可能である。また、アプリケーションサービスの消費スレッド数を計測する場合、アプリケーションサービスの消費ファイルサイズを計測する場合等にも、本発明は適用可能である。また、アプリケーションサービスのデバイス（スキャナ部１１２、プリンタ部１１３、ネットワークＩ/Ｆ２０６等）の消費量を計測する場合にも、本発明は適用可能である。
【００８３】
このように、アプリケーションサービスのシステムリソース消費量を計測に本発明は適用する場合、システムサービス（計測対象のアプリケーションから利用されるサービス）を以下のような構成とする。システムサービスは、システムリソースの計測処理が行われているか否かを検知し、前記計測処理が行われていることを検知した場合、システムリソースを消費する挙動を行わないモードに移行する構成とする。
【００８４】
また、上記実施例では、本発明を複合機等の画像形成装置に適用する場合を説明したが、画像形成装置に限らず、アプリケーションサービスを実行可能な情報処理装置であれば、どのような情報処理装置にも本発明は適用可能である。例えば、サーバコンピュータ１３０、クライアントコンピュータ１２０や、携帯電話、スマートフォン、テレビ、ＤＶＤプレーヤー、ブルーレイプレーヤー、コンピュータを搭載した各種家電製品等にも適用可能である。
【００８５】
以上説明したように、本発明によれば、情報処理装置において、アプリケーションサービスが純粋に利用するシステムリソースのサイズをより正確に計測することが可能となる。
【００８６】
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。また、上述のフローチャートに示したステップのいくつかを抜き出したものも本発明に含まれるものである。
また、上記各実施例を組み合わせた構成も全て本発明に含まれるものである。
【００８７】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００８８】
また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。即ち、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【００８９】
１１０    画像形成装置
２０１    ＣＰＵ
２０２    ＲＯＭ
２０３    ＲＡＭ
２０４    ＨＤＤ
【図１】
2012064084.tif 000003
【図２】
2012064084.tif 000004
【図３】
2012064084.tif 000005
【図４】
2012064084.tif 000006
【図５】
2012064084.tif 000007
【図６】
2012064084.tif 000008
【図７】
2012064084.tif 000009