(57)【要約】【課題】　リソースの状況に基づき、アプリケーションを起動制限することを可能とする。【解決手段】　複数のアプリケーションを搭載可能に構成された画像形成装置において、あるアプリケーションを実行するために必要な必要リソースの情報と、前記画像形成装置において使用できる使用可能リソースの情報とを取得する情報取得手段と、前記必要リソースの情報と前記使用可能リソースの情報とを比較し、比較の結果に基づき、前記アプリケーションに対する起動制限処理を行う起動制限手段とを備える。【選択図】　図６　
2004122773.tif 000002
【特許請求の範囲】
【請求項１】
　複数のアプリケーションを搭載可能に構成された画像形成装置において、
　あるアプリケーションを実行するために必要な必要リソースの情報と、前記画像形成装置において使用できる使用可能リソースの情報とを取得する情報取得手段と、
　前記必要リソースの情報と前記使用可能リソースの情報とを比較し、比較の結果に基づき、前記アプリケーションに対する起動制限処理を行う起動制限手段と
　を備えたことを特徴とする画像形成装置。
【請求項２】
　前記情報取得手段は、前記アプリケーションの実行ファイルに含まれる必要リソース情報を取得する請求項１に記載の画像形成装置。
【請求項３】
　前記情報取得手段は、前記アプリケーションを仮起動することにより、前記必要リソース情報を取得する請求項２に記載の画像形成装置。
【請求項４】
　前記情報取得手段は、前記必要リソースの情報として、前記アプリケーションが実行された際に使用したリソース量の実績値を取得する請求項１に記載の画像形成装置。
【請求項５】
　前記情報取得手段は、前記実績値を、プロセスが使用するリソースに関する情報を保持するシステム情報から取得する請求項４に記載の画像形成装置。
【請求項６】
　前記情報取得手段は、前記必要リソースの情報として、前記アプリケーションが使用するメモリ領域容量を取得する請求項１ないし５のうちいずれか１項に記載の画像形成装置。
【請求項７】
　前記メモリ領域容量はヒープ領域容量である請求項６に記載の画像形成装置。
【請求項８】
　前記起動制限手段は、前記使用可能リソースのうち前記必要リソースの占める割合を、前記画像形成装置におけるオペレーションパネルに表示する請求項１に記載の画像形成装置。
【請求項９】
　前記起動制限手段は、前記起動制限処理として、前記必要リソースの量が前記使用可能リソースの量を超える場合に、前記画像形成装置におけるオペレーションパネルに警告を表示する請求項１に記載の画像形成装置。
【請求項１０】
　前記起動制限手段は、前記アプリケーションが、前記使用可能リソースとは異なるリソースを、前記使用可能リソースの代わりに使用することができる場合には、アプリケーションに当該異なるリソースを使用させる請求項９に記載の画像形成装置。
【請求項１１】
　前記必要リソースは、前記アプリケーションが使用する機器であり、前記起動制限手段は、当該機器が前記画像形成装置に備えられていないときに、前記起動制限処理を行う請求項１に記載の画像形成装置。
【請求項１２】
　画像形成処理で使用されるハードウェア資源と、
　ハードウェア資源の制御を行うコントロールサービスと、
　コントロールサービスをサーバとしたクライアントプロセスとして動作し、前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを有する請求項１ないし１１のうちいずれか１項に記載の画像形成装置。
【請求項１３】
　前記仮想アプリケーションサービスは前記情報取得手段及び前記起動制限手段を含む請求項１２に記載の画像形成装置。
【請求項１４】
　複数のアプリケーションを搭載可能に構成された画像形成装置におけるアプリケーションの起動制限方法であって、
　あるアプリケーションを実行するために必要な必要リソースの情報と、前記画像形成装置において使用できる使用可能リソースの情報とを取得する情報取得ステップと、
　前記必要リソースの情報と前記使用可能リソースの情報とを比較し、比較の結果に基づき、前記アプリケーションに対する起動制限処理を行う起動制限ステップと
　を備えたことを特徴とする起動制限方法。
【請求項１５】
　前記情報取得ステップにおいて、前記画像形成装置は、前記アプリケーションの実行ファイルに含まれる必要リソース情報を取得する請求項１４に記載の起動制限方法。
【請求項１６】
　前記情報取得ステップにおいて、前記画像形成装置は、前記アプリケーションを仮起動することにより、前記必要リソース情報を取得する請求項１５に記載の起動制限方法。
【請求項１７】
　前記情報取得ステップにおいて、前記画像形成装置は、前記必要リソースの情報として、前記アプリケーションが実行された際に使用したリソース量の実績値を取得する請求項１４に記載の起動制限方法。
【請求項１８】
　前記画像形成装置は、前記実績値を、プロセスが使用するリソースに関する情報を保持するシステム情報から取得する請求項１７に記載の起動制限方法。
【請求項１９】
　前記情報取得ステップにおいて、前記画像形成装置は、前記必要リソースの情報として、前記アプリケーションが使用するメモリ領域容量を取得する請求項１４ないし１８のうちいずれか１項に記載の起動制限方法。
【請求項２０】
　前記メモリ領域容量はヒープ領域容量である請求項１９に記載の起動制限方法。
【請求項２１】
　前記起動制限ステップにおいて、前記画像形成装置は、前記使用可能リソースのうち前記必要リソースの占める割合を、前記画像形成装置におけるオペレーションパネルに表示する請求項１４に記載の起動制限方法。
【請求項２２】
　前記起動制限ステップにおいて、前記画像形成装置は、前記起動制限処理として、前記必要リソースの量が前記使用可能リソースの量を超える場合に、前記画像形成装置におけるオペレーションパネルに警告を表示する請求項１４に記載の起動制限方法。
【請求項２３】
　前記起動制限ステップにおいて、前記画像形成装置は、前記アプリケーションが、前記使用可能リソースとは異なるリソースを、前記使用可能リソースの代わりに使用することができる場合には、アプリケーションに当該異なるリソースを使用させる請求項２２に記載の起動制限方法。
【請求項２４】
　前記必要リソースは、前記アプリケーションが使用する機器であり、前記起動制限ステップにおいて、前記画像形成装置は、当該機器が前記画像形成装置に備えられていないときに、前記起動制限処理を行う請求項１４に記載の起動制限方法。
【請求項２５】
　前記画像形成装置は、
　画像形成処理で使用されるハードウェア資源と、
　ハードウェア資源の制御を行うコントロールサービスと、
　コントロールサービスをサーバとしたクライアントプロセスとして動作し、前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを有する請求項１４ないし２４のうちいずれか１項に記載の起動制限方法。
【請求項２６】
　前記情報取得ステップ及び前記起動制限ステップは、前記仮想アプリケーションサービスにより実行される請求項２５に記載の起動制限方法。
【請求項２７】
　複数のアプリケーションを搭載可能に構成された画像形成装置を、
　あるアプリケーションを実行するために必要な必要リソースの情報と、前記画像形成装置において使用できる使用可能リソースの情報とを取得する情報取得手段、
　前記必要リソースの情報と前記使用可能リソースの情報とを比較し、比較の結果に基づき、前記アプリケーションに対する起動制限処理を行う起動制限手段、
　として機能させるプログラム。
【請求項２８】
　請求項２７に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
　
　
　
【発明の詳細な説明】
【技術分野】
【０００１】
　この発明は、コピー、プリンタ、スキャナおよびファクシミリなどの画像形成処理にかかるユーザサービスを提供するアプリケーションのリソース使用量に応じてアプリケーションの起動の制限を行う画像形成装置および起動制限方法に関するものである。
【背景技術】
【０００２】
　近年では、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、「複合機」という。）が知られている。この複合機は、１つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応した３種類のソフトウェアを設け、これらのソフトウェアを切り替えることによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【０００３】
　このような従来の複合機では、メモリなどの限られたリソース（資源）の範囲内でプリンタ、コピー、ファクシミリ、スキャナなどの各機能単位ですべてのアプリケーションプログラムが起動される。言い換えれば、従来の複合機では、すべてのアプリケーションプログラムを起動できる程度のリソースが用意されており、アプリケーションプログラムが起動不可能になる状況が生じる場合は想定されていなかった。
【特許文献１】特開２００２−８２８０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
　ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも２つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置（複合機）を発明した。
【０００５】
　このような新規な複合機では、アプリケーションの少なくとも２つが共通的に必要とするサービスを提供するコントロールサービスをアプリケーションと別個に設けた構成となっているため、アプリケーションのサイズが従来の複合機で動作するアプリケーションプログラムのサイズに比べて小さなものとなっており、アプリケーションの起動および終了が頻繁に行われる。
【０００６】
　このため、複合機に搭載されているメモリなどのリソースの使用状況は頻繁に変化し、すべてのアプリケーションを起動した状態とすることができない場合も生じてくる。このような状況でアプリケーションを起動しても、アプリケーションが不正に終了してしまい、複合機の動作が不安定になるという問題がある。
【０００７】
　また、かかる新規な複合機は、アプリケーションとコントロールサービスとを別個に設けているため、複合機の出荷後にユーザもしくは第三者であるサードベンダが新規なアプリケーションを開発して複合機に搭載可能な構成となっている。このため、かかる複合機では、出荷時に搭載されているコピー、プリンタ、スキャナ、ファクシミリといった画像形成装置特有のアプリケーション以外に、従来の複合機とは異なるユーザやサードベンダが開発した新規アプリケーションなども多数起動可能となっている。このように、コピー、プリンタ、ファクシミリ、スキャナなど複合機であらかじめ提供されている特有のアプリケーションは、限りのあるリソースを意識して開発されている。一方、第三者が開発する新規アプリケーションの場合は、開発するベンダによって必ずしもリソースを意識して開発されていない。従って、リソース使用量のわからない新規アプリケーションを起動させた場合、複合機の動作が不安定となる可能性が高く、さらに、アプリケーションが使用するリソース量が複合機で使用可能な残リソース量を越えた場合は、リソース不足により複合機の動作が停止するという従来の複合機では問題にならなかった新規な課題が生じてくる。
　この発明は上記に鑑みてなされたもので、画像形成装置で使用可能なリソース量情報と、起動しようとするアプリケーションが必要とする必要リソース量とに基づいて、アプリケーションを起動制限することを可能とする画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
　上記目的を達成するため、請求項１に記載の発明は、複数のアプリケーションを搭載可能に構成された画像形成装置において、あるアプリケーションを実行するために必要な必要リソースの情報と、前記画像形成装置において使用できる使用可能リソースの情報とを取得する情報取得手段と、前記必要リソースの情報と前記使用可能リソースの情報とを比較し、比較の結果に基づき、前記アプリケーションに対する起動制限処理を行う起動制限手段とを備える。
【０００９】
　本発明によれば、必要リソース情報と、使用可能リソース情報とを比較して起動制限処理を行うこととしたため、リソースが不足しているにもかかわらずアプリケーションを起動することを防止でき、画像形成装置のシステムの安定性を向上させることができる。
【００１０】
　請求項２に記載の発明は、請求項１の記載において、前記情報取得手段は、前記アプリケーションの実行ファイルに含まれる必要リソース情報を取得するものである。また、請求項３に記載の発明は、請求項２の記載において、前記情報取得手段は、前記アプリケーションを仮起動することにより、前記必要リソース情報を取得するものである。
【００１１】
　本発明によれば、アプリケーションの作成時に実行ファイルに含められた必要リソース情報を取得できる。
【００１２】
　請求項４に記載の発明は、請求項１の記載において、前記情報取得手段は、前記必要リソースの情報として、前記アプリケーションが実行された際に使用したリソース量の実績値を取得する。　
　本発明によれば、実績値を取得するので、正確な必要リソースの情報を取得できる。
【００１３】
　請求項５に記載の発明は、請求項４の記載において、前記情報取得手段は、前記実績値を、プロセスが使用するリソースに関する情報を保持するシステム情報から取得するものである。
【００１４】
　本発明によれば、正確な必要リソースの情報を取得できる。
【００１５】
　請求項６に記載の発明は、請求項１ないし５のうちいずれか１項の記載において、前記情報取得手段は、前記必要リソースの情報として、前記アプリケーションが使用するメモリ領域容量を取得するものである。
【００１６】
　本発明によれば、メモリ領域が不足しているか否かのチェックを行うことができる。
【００１７】
　請求項７に記載の発明は、請求項６の記載において、前記メモリ領域容量はヒープ領域容量であるとするものである。
【００１８】
　本発明によれば、ヒープ領域が不足しているか否かのチェックを行うことができる。
【００１９】
　請求項８に記載の発明は、請求項１の記載において、前記起動制限手段は、前記使用可能リソースのうち前記必要リソースの占める割合を、前記画像形成装置におけるオペレーションパネルに表示するものである。
【００２０】
　本発明によれば、起動しようとするアプリケーションが使用するリソース量が、使用可能リソース量の中で占める割合をユーザが把握することができる。
【００２１】
　請求項９に記載の発明は、請求項１の記載において、前記起動制限手段は、前記起動制限処理として、前記必要リソースの量が前記使用可能リソースの量を超える場合に、前記画像形成装置におけるオペレーションパネルに警告を表示するものである。本発明によれば、ユーザがリソース不足を知ることができる。
【００２２】
　請求項１０に記載の発明は、請求項９の記載において、前記起動制限手段は、前記アプリケーションが、前記使用可能リソースとは異なるリソースを、前記使用可能リソースの代わりに使用することができる場合には、アプリケーションに当該異なるリソースを使用させるものである。
【００２３】
　本発明によれば、あるリソースが不足している場合でも、他のリソースを用いることにより、アプリケーションを実行することができる。
【００２４】
　請求項１１に記載の発明は、請求項１の記載において、前記必要リソースは、前記アプリケーションが使用する機器であり、前記起動制限手段は、当該機器が前記画像形成装置に備えられていないときに、前記起動制限処理を行うものである。
【００２５】
　本発明によれば、例えば、ＡＤＦを使用するアプリケーションを、ＡＤＦを装着していない画像形成装置で起動しようとしたときに、起動制限処理を行うことができる。
【００２６】
　請求項１２に記載の発明は、請求項１ないし１１の記載において、画像形成処理で使用されるハードウェア資源と、ハードウェア資源の制御を行うコントロールサービスと、コントロールサービスをサーバとしたクライアントプロセスとして動作し、前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービスを有するものである。また、請求項１３に記載の発明は、請求項１２の記載において、前記仮想アプリケーションサービスは前記情報取得手段及び前記起動制限手段を含むものである。
【００２７】
　請求項１４〜２６に記載の発明は、上記の画像形成装置に適した方法の発明であり、請求項２７、２８に記載の発明は、上記の画像形成装置に適したプログラム、記録媒体の発明である。これらの発明によっても、上記の画像形成装置の発明と同様の作用効果を奏する。
【発明の効果】
【００２８】
　本発明によれば、必要リソース情報と、使用可能リソース情報とを比較して起動制限処理を行うこととしたため、リソースが不足しているにもかかわらずアプリケーションを起動することを防止でき、画像形成装置のシステムの安定性を向上させることができる。
【発明を実施するための最良の形態】
【００２９】
　以下に添付図面を参照して、この発明にかかる画像形成装置およびアプリ起動制限方法の好適な実施の形態を詳細に説明する。
【００３０】
　（実施の形態１） 
　図１は、この発明の実施の形態１である画像形成装置（以下、「複合機」という）の構成を示すブロック図である。図１に示すように、複合機１００は、白黒レーザプリンタ（B&W LP）１０１と、カラーレーザプリンタ（Color LP）１０２と、スキャナ、ファクシミリ、ハードディスク、メモリ、ネットワークインタフェースなどのハードウェアリソース１０３を有するとともに、プラットホーム１２０とアプリケーション（以下、アプリともいう）１３０と仮想アプリケーションサービス（ＶＡＳ：Ｖｉｒｔｕａｌ　Ａｐｐｌｉｃａｔｉｏｎ　Ｓｅｒｖｉｃｅ）１４０から構成されるソフトウェア群１１０とを備えている。
【００３１】
　一般のパーソナルコンピュータの場合、多数のアプリを順次起動していくと、リソース不足が生じてストールする可能性がある。一方、本発明のような複合機の場合は、複合機に予めインストールされている複合機特有のコピー、プリンタ、スキャナ、ファクシミリといったアプリに関しては、ストールして利用できなくなることない。
【００３２】
　しかし、ユーザやサードベンダなどが開発した新規アプリが搭載可能な複合機の場合、複数のアプリケーションが起動設定されている状態で、更に新規のアプリケーションを起動設定した場合、リソース不足が生じることが考えられる。
【００３３】
　なお、起動設定とは、インストールされているアプリケーションを、複合機の電源投入時に起動するように設定することである。すなわち、本実施の形態の複合機では、アプリケーションをインストールしただけではアプリケーションは起動せず、起動させるには、起動設定をする必要がある。なお、起動設定をすることにより、当該アプリケーションを起動させる旨を示す情報が複合機の記憶装置に記憶される。そして、電源投入時に、その情報が参照され、そのアプリケーションが起動される。
【００３４】
　なお、起動設定という方法をとらずに、アプリを随時起動できるように複合機を構成することも可能である。
【００３５】
　複合機１００における仮想アプリケーションサービス（ＶＡＳ）１４０は、アプリ１３０とプラットホーム１２０との間に配置されている。このＶＡＳ１４０は、アプリの使用するリソース使用量に関する使用予定リソース情報（必要リソース情報ともいう）を例えばアプリケーションから取得して、リソース使用情報ファイルをハードディスク（ＨＤ）に生成する（後述する図２のＨＤ２００）。取得する使用予定リソース情報としては、メモリに確保されるテキストメモリ領域サイズ、ヒープ領域サイズ、スタック領域サイズがある。ここで、テキストメモリ領域とは、各アプリのプログラムがロードされるメモリ領域である。ヒープ領域とは、各アプリが動的に確保するメモリ領域である。スタック領域とは、各アプリが実行されるとき、または各アプリが内部のモジュールを呼び出すときに使用する引数などを格納するために確保される領域である。
【００３６】
　アプリケーションから使用予定リソース量を取得する場合、アプリケーションの開発時に、アプリケーションの実行ファイル中にアプリケーションが使用するリソースに関する情報を含めておく。そして、ＶＡＳ１４０はアプリケーションを、後述する仮起動することにより、プロセス間通信によりアプリケーションからリソースに関する情報を取得する。
【００３７】
　また、アプリケーションとは別のファイルに当該アプリケーションが使用するリソースに関する情報を記録しておくことにより、ＶＡＳ１４０は当該ファイルを参照することによっても使用予定リソース量を取得できる。
【００３８】
　また、当該アプリが実際に複合機で実行されたことがある場合には、当該アプリのリソース使用実績値を取得することにより、当該アプリが必要とするリソース量を取得できる。
【００３９】
　また、ＶＡＳ１４０は、既に起動設定されているアプリ及びシステムプログラムのリソース使用量と、複合機が有する総リソース量とから、複合機で使用可能なリソース量を取得する。既に起動設定されているアプリ及びシステムプログラムのリソース使用量として、例えば、これらのプログラムが複合機で実行されることにより複合機に記録される実績値を用いることができる。また、既に起動設定されているアプリ及びシステムプログラムのリソース使用量をリソース使用情報ファイルに記録しておき、これを参照するようにしてもよい。このリソース使用量を、複合機の総リソース量から引くことにより、複合機で使用可能なリソース量を求めることができる。
【００４０】
　そして、ＶＡＳ１４０は、あるアプリに対する起動設定時に、当該アプリの使用予定リソース量と、複合機で使用可能なリソース量とを比較する。そして、リソースが不足していれば、起動制限する。すなわち、起動設定しない。また、起動設定しないことの他、アプリが制限起動モードを有している場合には、アプリが制限起動モードで起動されるように設定を行う。なお、制限起動モードとは、例えば、メモリ領域が不足している場合に、メモリの代わりにハードディスクを使用して実行させるモードのことである。
【００４１】
　また、上記のように、起動設定時ではなく、起動設定されたアプリが起動するときにＶＡＳ１４０がリソースチェックを行い、起動制限を行うことも可能である。
【００４２】
　プラットホーム１２０は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ（ＳＲＭ）１２３と、汎用ＯＳ１２１とを有している。
【００４３】
　コントロールサービスは、複数のサービスモジュールから形成され、ＳＣＳ（システムコントロールサービス）１２２と、ＥＣＳ（エンジンコントロールサービス）１２４と、ＭＣＳ（メモリコントロールサービス）１２５と、ＯＣＳ（オペレーションパネルコントロールサービス）１２６と、ＦＣＳ（ファックスコントロールサービス）１２７と、ＮＣＳ（ネットワークコントロールサービス）１２８とから構成されている。なお、このプラットホーム１２０は、あらかじめ定義された関数により前記アプリケーション１３０から処理要求を受信可能とするアプリケーションプログラムインタフェース（ＡＰＩ）を有している。
【００４４】
　汎用ＯＳ１２１は、ＵＮＩＸ（登録商標）などの汎用オペレーティングシステムであり、プラットホーム１２０並びにアプリケーション１３０の各ソフトウェアをそれぞれプロセスとして並列実行する。
【００４５】
　ＳＲＭ１２３のプロセスは、ＳＣＳ１２２とともにシステムの制御およびリソースの管理を行うものである。ＳＲＭ１２３のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、ＨＤＤファイル、ホストＩ／Ｏ（セントロＩ／Ｆ、ネットワークＩ／Ｆ、ＩＥＥＥ１３９４　Ｉ／Ｆ、ＲＳ２３２Ｃ　Ｉ／Ｆなど）のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【００４６】
　具体的には、このＳＲＭ１２３は、要求されたハードウェア資源が使用可能であるか（他の要求により利用されていないかどうか）を判断し、使用可能であれば要求されたハードウェア資源が使用可能である旨を上位層に伝える。また、ＳＲＭ１２３は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容（例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００４７】
　ＳＣＳ１２２のプロセスは、アプリ管理、操作部制御、システム画面表示、ＬＥＤ表示、リソース管理、割り込みアプリ制御などを行う。
【００４８】
　ＥＣＳ１２４のプロセスは、白黒レーザプリンタ（B&W LP）１０１、カラーレーザプリンタ（Color LP）１０２、スキャナ、ファクシミリなどからなるハードウェアリソース１０３のエンジンの制御を行う。
【００４９】
　ＭＣＳ１２５のプロセスは、画像メモリの取得および解放、ハードディスク装置（ＨＤＤ）の利用、画像データの圧縮および伸張などを行う。
【００５０】
　ＦＣＳ１２７のプロセスは、システムコントローラの各アプリ層からＰＳＴＮ／ＩＳＤＮ網を利用したファクシミリ送受信、ＢＫＭ（バックアップＳＲＡＭ）で管理されている各種ファクシミリデータの登録／引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのＡＰＩを提供する。
【００５１】
　ＮＣＳ１２８のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
【００５２】
　ＯＣＳ１２６のプロセスは、オペレータ（ユーザ）と本体制御間の情報伝達手段となるオペレーションパネル（操作パネル）の制御を行う。ＯＣＳ１２６は、オペレーションパネルからキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をＳＣＳ１２２に送信するＯＣＳプロセスの部分と、アプリケーション１３０またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたＯＣＳライブラリの部分とから構成される。このＯＣＳライブラリは、アプリケーション１３０およびコントロールサービスの各モジュールにリンクされて実装されている。なお、ＯＣＳ１２６のすべてをプロセスとして動作させるように構成しても良く、あるいはＯＣＳ１２６のすべてをＯＣＳライブラリとして構成しても良い。
【００５３】
　アプリケーション１３０は、ページ記述言語（ＰＤＬ）、ＰＣＬおよびポストスクリプト（ＰＳ）を有するプリンタ用のアプリケーションであるプリンタアプリ１１１と、コピー用アプリケーションであるコピーアプリ１１２と、ファクシミリ用アプリケーションであるファックスアプリ１１３と、スキャナ用アプリケーションであるスキャナアプリ１１４と、ネットワークファイル用アプリケーションであるネットファイルアプリ１１５と、工程検査用アプリケーションである工程検査アプリ１１６とを有している。これらの各アプリは、複合機特有（画像形成装置特有）のアプリであり、起動時にＶＡＳ１４０に対して自プロセスのプロセスＩＤとともにアプリ登録要求メッセージを送信し、アプリ登録要求メッセージを受信したＶＡＳ１４０によって、起動したアプリに対する登録処理が行われる。
【００５４】
　アプリケーション１３０の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【００５５】
　このように、実施の形態１にかかる複合機１００には、複数のアプリケーション１３０および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション１３０に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。また、複合機１００には、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に新規アプリ１１７，１１８を開発して搭載することが可能となっている。図１では、この新規アプリ１１７，１１８を搭載した例を示している。この新規アプリ１１７，１１８は、複合機特有のアプリ以外のアプリに相当するものである。
【００５６】
　なお、実施の形態１にかかる複合機１００では、複数のアプリケーション１３０のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション１３０とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション１３０は、アプリケーションごとに追加または削除することができる。
【００５７】
　図２に複合機１００のハードウェア構成例を示す。
【００５８】
　複合機１００は、コントローラ１６０と、オペレーションパネル１７５と、ファックスコントロールユニット（ＦＣＵ）１７６と、プリンタ等の画像形成処理に特有のハードウェア資源であるエンジン部１７７とを含む。コントローラ１６０は、ＣＰＵ１６１と、システムメモリ１６２と、ノースブリッジ（ＮＢ）１６３と、サウスブリッジ（ＳＢ）１６４と、ＡＳＩＣ１６６と、ローカルメモリ１６７と、ＨＤＤ１６８と、ネットワークインターフェースカード（ＮＩＣ）１６９と、ＳＤカード用スロット１７０と、ＵＳＢデバイス１７１と、ＩＥＥＥ１３９４デバイス１７２と、セントロニクス１７３とを含む。なお、メモリ１６２、１６７はＲＡＭ、ＲＯＭ等を含む。ＦＣＵ１７６およびエンジン部１７７は、コントローラ１６０のＡＳＩＣ１６６にＰＣＩバス１７８で接続されている。
【００５９】
　ＣＰＵ１６１が、複合機１００にインストールされるアプリケーション、コントロールサービス等のプログラムを、メモリから読み出して実行する。
【００６０】
　図３は、実施の形態１にかかる複合機１００のＶＡＳ１４０の構成と、ＶＡＳ１４０と各アプリ、コントロールサービス層１５０および汎用ＯＳ１２１との関係を示すブロック図である。
【００６１】
　仮想アプリケーションサービス（ＶＡＳ）１４０のプロセスには、ディスパッチャ１４４と、制御スレッド１４３と、リソース使用情報取得スレッド１４１と、アプリ起動制限手段としてのアプリ起動制限スレッド１４２とが動作している。
【００６２】
　ディスパッチャ１４４は、アプリケーション１３０やコントロールサービスからのメッセージ受信を監視し、受信したメッセージに応じて制御スレッド１４３、リソース使用情報取得スレッド１４１、アプリ起動制限スレッド１４２に対して処理要求を行うものである。
【００６３】
　アプリケーションを起動する場面において、実施の形態１の複合機１００では、ディスパッチャ１４４は、コントロールサービスからアプリ起動要求メッセージを受信したとき、受信したアプリ起動要求メッセージを制御スレッド１４３に送信し、制御スレッド１４３からリソース使用情報取得スレッド１４１とアプリ起動制限スレッド１４２に対して処理要求を行う。
【００６４】
　また、起動設定の場面でも、例えば、ディスパッチャ１４４が処理要求メッセージを制御スレッド１４３に送信し、制御スレッド１４３からリソース使用情報取得スレッド１４１とアプリ起動制限スレッド１４２に対して処理要求を行う。
【００６５】
　制御スレッド１４３は、ディスパッチャ１４４からの処理要求メッセージを受信して、リソース使用情報取得処理およびアプリ起動制限処理を行う。ここで、アプリ起動制限処理とは、必ずアプリ起動制限を行うものではなく、起動するアプリのリソース使用量に応じて、アプリを制限的に起動する場合も含む。
【００６６】
　また、制御スレッド１４３は、ＨＤ２００に格納されたリソース使用情報ファイル２０１を参照することにより、インストールされたアプリの中でリソース使用量に関するリソース使用情報が記録されていないアプリの有無を判別することができる。そして、制御スレッド１４３は、リソース使用情報取得スレッドからリソース使用情報を取得して、アプリ起動制限スレッド１４２に送信する。なお、アプリ起動制限スレッド１４２が、リソース使用情報ファイル２０１を参照してもよい。アプリ起動制限スレッド１４２では、複合機の総リソース量から既に起動設定されているアプリが使用するリソースを除いた使用可能なリソース量情報と、これから起動設定、もしくは、これから起動しようとする新規アプリが使用する予定の使用予定リソース量とを比較して、使用予定リソース量の方が使用可能なリソース量を越えている場合は、起動制限処理を行う。
【００６７】
　リソース使用情報取得スレッド１４１は、制御スレッド１４３から処理要求を受けると、汎用ＯＳ１２１が管理するＲＡＭ２１０上のｐｒｏｃ構造体２１１（またはｕ領域２１２）を参照して、起動しようとするアプリが使用するテキストメモリ領域サイズ、ヒープ領域サイズ、スタック領域サイズを取得して、リソース使用情報ファイル２０１としてハードディスク（ＨＤ）２００に生成する。かかるリソース使用情報は、アプリごとのレコードとして記録される。また、前述したように、リソース使用情報取得スレッド１４１は、アプリの実行ファイル中に含まれる当該アプリの使用予定リソース情報を取得し、それをリソース使用情報ファイル２０１に記録してもよい。
【００６８】
　また、リソース使用情報取得スレッド１４１は、複合機における使用可能リソース量を算出するために必要な、現在のプロセスが使用しているリソース量もｐｒｏｃ構造体２１１から取得できる。
【００６９】
　上記のように各スレッドが処理を行う代わりに、ＶＡＳ１４０が１プロセスで処理を行うようにしてもよい。
【００７０】
　上記ＶＡＳ１４０のプログラムは、ソフトウェア開発キット（ＳＤＫ：Ｓｏｆｔｗａｒｅ　Ｄｅｖｅｌｏｐｍｅｎｔ　Ｋｉｔ）等の一部または全部として、ＣＤ−ＲＯＭまたはＦＤ（フレキシブルディスク）などの記憶媒体に実行可能な形式またはインストール可能な形式のファイルで提供される。また、このような実行可能な形式またはインストール可能な形式のＶＡＳ１４０のプログラムファイルを、ネットワーク経由で取得可能な方法で提供するようにしても良い。
【００７１】
　図４は、ＨＤ２００に格納されるリソース使用情報ファイル２０１の内容例を示す説明図である。図４に示すように、リソース使用情報ファイル２０１には、アプリＩＤ（プロダクトＩＤともいう）ごとに、テキストメモリ領域サイズ、ヒープ領域サイズ、スタック領域サイズなどが記録されている。
【００７２】
　なお、このファイルにアプリが使用する機器（ＡＤＦなど）を記録しておいてもよい。これにより、複合機における実際の機器構成により起動制限を行うことも可能になる。
【００７３】
　図５は、リソース使用情報取得スレッド１４１が参照するｐｒｏｃ構造体２１１の一例を示す説明図である。図５に示すように、ｐｒｏｃ構造体２１１には、各プロセスごとに、プロセスＩＤ（ｐ＿ｐｉｄ）、テキストメモリ領域サイズ、ヒープメモリ領域サイズ、スタック領域サイズなどが格納されている。このｐｒｏｃ構造体２１１は、プロセス実行時、プロセス終了時、およびプロセスの状態が変化したときに汎用ＯＳ１２１によって更新される。
【００７４】
　また、リソース使用情報取得スレッド１４１は、汎用ＯＳ１２１のシステムコールあるいはコントロールサービスで提供されるサービス関数呼び出しによって、ｐｒｏｃ構造体２１１から、既に起動設定されているアプリやシステムが使用するリソース量を取得し、総リソース量からそのリソース量を除いた使用可能な残リソース量（例えば、テキストメモリ領域の残容量、ヒープ領域の残容量、スタック領域など）を取得する。
【００７５】
　アプリ起動制限スレッド１４２は、コントロールサービス層１５０から新規アプリの起動要求があった場合、もしくは起動設定要求があった場合、リソース使用情報ファイル２０１を参照して、その新規アプリが使用するリソース使用量に関する情報を取得する。また、アプリ起動制限スレッド１４２は、前記の残リソース量を、例えば、リソース使用情報取得スレッド１４１から取得する。そして、両者を比較して、アプリの起動を制限する必要があるか否かを判断する。
【００７６】
　起動設定においては、アプリ起動制限スレッド１４２は、アプリ起動制限が必要と判断すると、画面に後述するような警告を表示する。
【００７７】
　また、実際の起動の場面においては、アプリ起動制限スレッド１４２は、アプリ起動制限が必要と判断すると、アプリ起動要求のあったアプリに対して起動制限要求メッセージを送信する。一方、アプリ起動制限をすべきでないと判断した場合は、アプリ起動要求のあったアプリに対して起動要求メッセージを送信して、アプリの通常起動処理が行われる。
【００７８】
　図６は、複合機のオぺレーションパネル上にユーザアプリの起動制限レベルをヒストグラムで表示した図である。この図は、起動設定時に表示されるものである。図６に表示されるヒストグラムは、コピーアプリなどの複合機特有のアプリやシステムプログラムが使用するリソースを除いた使用可能な残リソース量のみを示したものである。すなわち、残リソースを複数のユーザアプリ（新規アプリ）でどのように分配して利用すれば良いかをユーザが視覚的に判断できるようにしたものである。ヒストグラムの内訳は、１番目に起動設定したユーザアプリ２２１のリソース使用量と、２番目に起動設定したユーザアプリ２２２のリソース使用量とがそれぞれ表示され、これから起動設定しようとする３番目のユーザアプリ２２３の場合は、予想リソース使用量を示している。図６の例では、３番目のユーザアプリ２２３を起動すると残リソース量が危険レベルに達するので、起動設定できない。ここでは、残リソース量をヒストグラムで表すだけでなく、起動制限レベルを安全（青）、注意（黄）、危険（赤）の３段階に色分け表示して、さらに視認効果を向上させている。なお、これ以外にも、危険レベルになると表示を点滅させたり、音声ガイダンスや警告音を発するようにしても勿論良い。
【００７９】
　上記のようなヒストグラムを含む、起動設定時にオペレーションパネルに表示される画面の例を次に示す。なお、これから説明する画面は、例えば、ＶＡＳ１４０が表示を行う。
【００８０】
　図７は、「簡易スキャナ」と「簡易コピー」が既に起動設定されている場合の起動設定画面を示す図である。同図に示すように、「簡易スキャナ」と「簡易コピー」が使用するメモリ消費量が右側のヒストグラム２５１に表示される。
【００８１】
　ここで、次に「簡易プリント」を起動設定するためにこれを選択すると、図８に示すように、「簡易プリント」の部分が数秒間ブリンクする。そして、メモリ消費量は１００パーセントとなり、これもブリンクする。
【００８２】
　その後、図９又は図１０に示す画面が表示される。図９は、他のアプリケーションの選択を促す画面である。ＯＫを押すことにより、図７の画面に戻る。図１０は、メモリ不足でも起動設定を可能とする画面の例である。なお、キーが割り付けられていないアプリケーションを選択した場合には、図１１に示す画面が表示される。
【００８３】
　図７の状態から、「簡易スキャナ」を選択し、起動設定が完了すると、図１２の画面を経て、図１３に示す画面が表示される。図１３に示すように、「簡易スキャナ」の予定メモリ消費量の分だけ、ヒストグラムの表示値が増加（２５２）する。
【００８４】
　あるアプリの起動設定を解除する際には図１４〜図１８に示す画面が表示される。
【００８５】
　図１４の状態から、起動設定解除しようとする「簡易スキャナ」を指定し、ＯＫを押すと、図１５に示すように、「簡易スキャナ」がブリンク表示される。ここでＯＫを押すことにより、図１６の画面が表示され、ＯＫを押すことにより、図１７の画面を経て図１８の画面が表示される。図１８に示すように、「簡易スキャナ」の分のメモリ消費量の分がヒストグラムから減少する。
【００８６】
　次に、複合機１００のＶＡＳ１４０によるアプリ起動制限処理について図１９のフローチャートを参照して説明する。図１９に示す処理は、起動設定時におけるＶＡＳ１４０による処理を示すフローチャートである。
【００８７】
　まず、ＶＡＳ１４０があるアプリに対する起動設定要求を受信すると（ステップＳ６０１）、ＶＡＳ１４０は、そのアプリに対するリソース使用情報ファイルが作成されているか否かをＨＤ２００を参照して判断する（ステップＳ６０２）。
【００８８】
　リソース使用情報ファイルが作成されている場合、ＶＡＳ１４０は、リソース使用情報をリソース使用情報ファイル２０１から取得する（ステップＳ６０３）。また、上記ステップＳ６０２で、新規アプリのリソース使用情報ファイルが作成されていなかった場合は、ＶＡＳ１４０は、リソース使用情報ファイルを作成する（ステップＳ６０４）。これは、例えば、制御スレッド１４３が、リソース使用情報取得スレッド１４１に対してリソース使用情報ファイルを作成するように処理要求することにより、リソース使用情報取得スレッド１４１が作成を行う。
【００８９】
　ステップＳ６０４のリソース使用情報ファイルの作成処理の詳細なサブルーチンは、後述する図２１のフローチャートを用いて説明する。このリソース使用情報ファイルが作成処理されると、上記したステップＳ６０３の処理が行われる。
【００９０】
　続いて、ＶＡＳ１４０は、既に起動設定されているアプリおよびシステムプログラムが使用するリソースを除いた使用可能なリソース量情報を取得する（ステップＳ６０５）。既に起動設定されているアプリおよびシステムプログラムが使用するリソースは、汎用ＯＳ１２１のシステムコールあるいはコントロールサービス層１５０で提供されるサービス関数呼び出しを用いることにより、ｐｒｏｃ構造体から取得できる。なお、既に起動設定されているアプリのうち、リソース使用情報ファイルにリソース情報を有するものに対しては、リソース使用情報ファイルからリソース情報を取得してもよい。
【００９１】
　続いて、ＶＡＳ１４０は、起動設定しようとするアプリが使用する予定の使用予定リソース量に関する情報と、使用可能なリソース量情報とを比較する（ステップＳ６０６）。ここで、アプリ起動制限スレッド１４２は、使用予定リソース量が使用可能リソース量を越えているか否かを判断し（ステップＳ６０７）、越えている場合は、図９に示したような画面を表示して、ユーザに警告を行う（ステップＳ６０８）。越えていない場合、通常のアプリ起動設定処理が行われる（ステップＳ６０９）。
【００９２】
　なお、起動設定しようとするアプリケーションが、メモリの代わりにハードディスクを使用して実行できるモードを有している場合には、図９に示した警告に代えて、そのモードを使用するか否かをユーザに尋ねる画面を表示してもよい。ユーザがそのモードを使用することを選択した場合には、起動時にそのモードでアプリが起動される。なお、そのモードを有していることは、ＶＡＳ１４０がアプリ情報を取得するときに把握し、その旨をリソース使用情報ファイルに記録しておくことができる。
【００９３】
　図２０は、起動設定したアプリを起動する場合に、起動制限処理を行う場合のフローチャートである。
【００９４】
　まず、ディスパッチャ１４４がコントロールサービス層１５０からアプリ起動要求メッセージを受信すると、アプリ起動要求メッセージをそのアプリのプロセスＩＤとともに制御スレッド１４３に受け渡す。制御スレッド１４３は、アプリ起動要求メッセージとプロセスＩＤとをディスパッチャ１４４から受信すると、起動要求のあったアプリが複合機特有のアプリか否かを判断する（ステップＳ７０１）。複合機特有のアプリ以外のアプリの場合、すなわち、新規アプリに対する起動要求があった場合（ステップＳ７０２）、制御スレッド１４３は、そのアプリのリソース使用情報ファイルが作成されているか否かをＨＤ２００を参照して判断する（ステップＳ７０３）。
【００９５】
　リソース使用情報ファイルが作成されている場合、制御スレッド１４３は、起動要求のあった新規アプリのリソース使用情報をリソース使用情報ファイル２０１からアプリ起動制限スレッド１４２へ送る（ステップＳ６０４）。また、上記ステップＳ７０３で、新規アプリのリソース使用情報ファイルが作成されていなかった場合は、制御スレッド１４３は、リソース使用情報取得スレッド１４１に対してリソース使用情報ファイルを作成するように処理要求する（ステップＳ７０５）。このリソース使用情報ファイルが作成処理されると、上記したステップＳ７０４の処理が行われる。
【００９６】
　続いて、ＶＡＳ１４０は、図１９と同様に、使用可能な残リソース量を取得する（ステップＳ７０６）。
【００９７】
　また、アプリ起動制限スレッド１４２では、起動要求のあった新規アプリが使用する使用予定リソース量に関する情報と、複合機で使用可能なリソース量情報とを比較する（ステップＳ７０７）。
【００９８】
　ここで、アプリ起動制限スレッド１４２は、リソース使用量がリソース量を越えているか否かを判断し（ステップＳ７０８）、越えている場合、画面に警告を表示して当該アプリの起動を制限する。（ステップＳ７０９）。また、新規アプリが起動制限モードを有している場合には、そのモードを使用するか否かをユーザに問い合わせる画面を表示し、そのモードで実行することが許可された場合にのみ、そのモードでアプリを起動するようにしてもよい。使用予定リソース量が使用可能リソース量を越えていない場合、アプリ起動制限処理は行わず、通常のアプリ起動処理が行われる（ステップＳ７１０）。このステップＳ７１０の通常のアプリ起動処理は、図２０の最初のステップＳ６０１において、複合機特有のアプリに対する起動要求があった場合も同様に行われる。本発明において、複合機特有のアプリの場合は、使用するリソースがあらかじめ確保されているため、何時起動処理を行ってもリソース不足が生じない。
【００９９】
　図２１は、リソース使用情報ファイルの作成処理の動作を説明するフローチャートである。
【０１００】
　まず、リソース使用情報を得たいアプリをＶＡＳ１４０が仮起動させる（ステップＳ８０１）。そして、プロセス間通信によりリソース情報をアプリから取得する（ステップＳ８０２）。仮起動させることにより得たリソース情報に基づき、ＨＤ２００内のリソース使用情報ファイル２０１に各アプリ単位でリソース使用情報ファイルを作成する（ステップＳ８０３）。図４は、作成されたリソース使用情報ファイルの一例を示したものであるが、アプリＩＤごとに、その使用リソースとして、テキストメモリ領域サイズ、ヒープ領域サイズ、スタック領域サイズごとにリソース量が格納されている。
【０１０１】
　また、起動設定しようとするアプリが既に実行されたことがあり、リソース使用量の実績値がｐｒｏｃ構造体２１１にある場合には、アプリからリソース情報を取得することに代えて、当該実績値を取得してもよい。この実績値を用いて、リソース使用情報ファイルをアプリが起動されるたびに更新すれば、学習機能を持たせたのと同様に常に正確なリソース使用情報を得ることができる。なお、取得する度に実績リソース量が変動する場合は、実績値の平均値、あるいは、最大値（ＭＡＸ）を、リソース使用情報ファイルに記録するリソース情報として使用できる。
【０１０２】
　このＲＡＭ２１０のｐｒｏｃ構造体２１１のリソース使用情報を使ってリソース使用情報ファイルを作成する場合は、リソース使用情報取得スレッド１４１がアプリＩＤ、プロセスＩＤとリソース使用情報取得要求メッセージを制御スレッド１４３から受信すると、ＲＡＭ２１０のｐｒｏｃ構造体２１１を参照して該当するアプリＩＤのプロセスＩＤのブロックの位置を検索する。そして、検索されたプロセスＩＤのブロックから、テキストメモリ領域サイズ、ヒープ領域サイズ、スタック領域サイズのリソース使用情報を取得し、アプリＩＤとともにリソース使用情報ファイル２０１に記録する。
【０１０３】
　次に、アプリケーションの仮起動について説明する。仮起動は、複合機のリソースを使用することになるアプリの通常起動（アプリ本来の機能を奏するための起動を通常起動と呼ぶ）とは別の起動である。仮起動では、アプリはアプリ本来の動作に必要なメモリ確保等のリソース取得を行わず、ＶＡＳ１４０とのプロセス間通信処理のみを行う。そして、アプリは、リソース情報をＶＡＳ１４０に提供する。仮起動したアプリのプロセスは、ＶＡＳ１４０との通信処理が終了すれば終了する。また、アプリの仮起動に関する機能は、アプリ本来の機能によらず、本実施の形態における複合機１００で動作するアプリに共通する機能である。従って、例えば、ベンダーがアプリを開発する場合、ベンダーに、仮起動の機能を含むプログラムテンプレートを提供し、そのプログラムテンプレートを用いてベンダーが複合機用のアプリを開発することができる。なお、アプリにリソース情報を含めるには、例えば、ベンダーが、使用予定リソース情報を記録したインクルードファイルを作成し、アプリのコンパイル時にインクルードする。
【０１０４】
　図２２に、仮起動の機能を含むアプリのプログラム記述（メイン関数）の概要を示す。なお、この記述を上記のプログラムテンプレートとして提供する。
【０１０５】
　図２２に示すように、このプログラム記述は、アプリケーションを仮起動するか通常起動するかを引数（−ｖ）によって指定する。これにより、ＶＡＳがアプリを起動する際に、通常起動と仮起動とを容易に使い分けることができる。すなわち、引数（−ｖ）を使って仮起動を指定すると、仮起動が実行され、アプリ情報提供処理がなされる。また、仮起動が指定されていない場合は、通常起動を行って、アプリ本来の動作を行う。
【０１０６】
　このように、実施の形態１にかかる複合機１００では、アプリが使用するリソース使用量に関する情報を取得してリソース使用情報ファイル２０１を生成し、複合機で使用可能なリソース量と、起動設定要求された新規アプリの使用予定リソース量とを比較して、使用予定リソース量が使用可能リソース量を越えている場合は、新規アプリの起動を制限するので、リソース不足により動作が不安定になったり、ストールする心配がなくなり、ユーザやサードベンダが開発した新規アプリを自由に搭載して起動させることができる。
【０１０７】
　また、実施の形態１にかかる複合機１００では、新規アプリのリソース使用状況によって複合機特有のアプリの実行ができなくなることを未然に回避して、複合機１００のシステムの安定性を向上させることができる。
【０１０８】
　なお、実施の形態１にかかる複合機１００では、ＶＡＳ１４０が全てのアプリケーション１３０に対してリソース使用情報取得処理、アプリ起動制限処理を行っているが、一部のアプリに対してのみかかる処理を行うように構成しても良い。例えば、新規アプリ１１７，１１８などサードベンダなどの第三者が開発したアプリにのみリソース使用情報取得処理、アプリ起動制限処理を行い、プリンタアプリ１１１やコピーアプリ１１２などの既存のアプリに対してはこのようなサービスを行わないように構成しても良い。
【０１０９】
　また、新規アプリのリソース使用量が変動することを考えると、使用予定リソース量が使用可能リソース量を越えないまでも、一定の範囲内にある場合は、新規アプリの起動を制限するようにしてもよい。
【０１１０】
　（実施の形態２） 
　実施の形態１にかかる複合機１００は、ＶＡＳ１４０が全アプリケーションに対して１つのみ存在するものであったが、この実施の形態２にかかる複合機では、各アプリごとに一つのＶＡＳが起動し、各ＶＡＳは対応するアプリに対してのみリソース使用情報取得およびアプリ起動制限を行うものである。
【０１１１】
　図２３は、実施の形態２にかかる複合機８００の構成を示すブロック図である。図２３に示すように、複合機８００では、複数の仮想アプリケーションサービス（ＶＡＳ）８４１〜８４８がアプリケーション１３０の各アプリごとに動作している点が、実施の形態１にかかる複合機１００と異なっている。
【０１１２】
　ＶＡＳ８４１〜８４８は、プリンタアプリ１１１、コピーアプリ１１２、ファックスアプリ１１３、スキャナアプリ１１４、ネットファイルアプリ１１５、工程検査アプリ１１６、新規アプリ１１７および１１８に対応して、リソース使用情報取得処理およびアプリ起動制限処理を行う。
【０１１３】
　図２４は、実施の形態２にかかる複合機８００のＶＡＳ８４１〜８４８の構成と、ＶＡＳ８４１〜８４８と各アプリ、コントロールサービス層１５０および汎用ＯＳ１２１との関係を示すブロック図である。
【０１１４】
　また、実施の形態２にかかる複合機８００では、実施の形態１の複合機１００と異なり、図２４に示すように、各ＶＡＳ８４１〜８４８と各アプリとの間にはＶＡＳ制御プロセス（デーモン）８０１が動作している。
【０１１５】
　このＶＡＳ制御プロセス（デーモン）８０１は、各アプリに対応したＶＡＳ８４１〜８４８を生成する。また、ＶＡＳ制御プロセス８０１は、ＨＤ２００に格納されたリソース使用情報ファイル２０１を参照して、起動要求もしくは起動設定要求が行われたアプリについて、リソース使用情報ファイル２０１にリソース使用情報が記録されているか否かをチェックして、リソース使用情報ファイルを作成する必要があるか否かを判断する。そして、アプリのリソース使用情報が記録されていない場合は、リソース使用情報取得スレッド１４１がリソース使用情報を取得して、アプリ起動制限スレッド１４２に送るとともに、リソース使用情報ファイル２０１を作成する。また、アプリのリソース使用情報が記録されている場合は、リソース使用情報ファイル２０１からリソース使用情報を読み出してアプリ起動制限スレッド１４２に送る。
【０１１６】
　仮想アプリケーションサービス（ＶＡＳ）８４１〜８４８のプロセスには、ディスパッチャ１４４と、リソース使用情報取得スレッド１４１と、アプリ起動制限スレッド１４２とが動作している。これらの各スレッドの機能は、実施の形態１における対応するスレッドの機能と同様である。
【０１１７】
　このように実施の形態２にかかる複合機８００によれば、実施の形態１にかかる複合機１００と同様に、複合機８００のシステムの安定性を向上させることができる。
【０１１８】
　また、実施の形態２にかかる複合機８００では、ＶＡＳ８４１〜８４８は起動されるアプリケーション１３０ごとに別個に起動されるので、複数のアプリケーション１３０に対する起動制限処理を各アプリケーション１３０に対応したＶＡＳ８４１〜８４８によって並列に実行できることから、起動アプリケーションに対する起動制限処理を効率的に行うことができる。
【０１１９】
　なお、実施の形態２にかかる複合機８００では、全てのアプリごとに別個にＶＡＳ８４１〜８４８を起動していたが、一部のアプリに対してのみＶＡＳを起動するように構成しても良い。例えば、新規アプリ１１７，１１８などサードベンダなどの第三者が開発したアプリに対してのみＶＡＳ８４７，８４８を起動してリソース使用情報の取得処理やアプリ起動制限処理を行い、プリンタアプリ１１１やコピーアプリ１１２などの既存のアプリに対してはこのようなサービスを行わないように構成することができる。
【０１２０】
　また、実施の形態１および２にかかる複合機１００，８００では、リソースとして、テキストメモリ領域、ヒープ領域、スタック領域などを利用してリソース使用情報取得およびアプリ起動制限を行っていたが、かかるリソースは一例であって、これ以外のリソースを利用した構成としても勿論良い。
【図面の簡単な説明】
【０１２１】
【図１】実施の形態１にかかる複合機の構成を示すブロック図である。
【図２】実施の形態１にかかる複合機のハードウェア構成図である。
【図３】実施の形態１にかかる複合機のＶＡＳの構成と、ＶＡＳと各アプリ、コントロールサービス層および汎用ＯＳとの関係を示すブロック図である。
【図４】実施の形態１にかかる複合機におけるリソース使用情報ファイルの内容例を示す説明図である。
【図５】実施の形態１にかかる複合機におけるＶＡＳのリソース使用情報取得スレッドが参照するｐｒｏｃ構造体の一例を示す説明図である。
【図６】複合機のオぺレーションパネル上にユーザアプリの起動制限レベルをヒストグラムで表示した図である。
【図７】「簡易スキャナ」と「簡易コピー」が既に起動設定されている場合の起動設定画面を示す図である。
【図８】「簡易プリント」を選択した場合の画面である。
【図９】他のアプリケーションの選択を促す画面である。
【図１０】メモリ不足でも起動設定を可能とする画面の例である。
【図１１】キーが割り付けられていないアプリケーションを選択した場合の画面である。
【図１２】起動設定が完了したことを示す画面である。
【図１３】「簡易スキャナ」の起動設定が完了した後の画面である。
【図１４】起動設定済みのアプリケーションを示す画面である。
【図１５】「簡易スキャナ」を選択した場合の画面である。
【図１６】起動設定解除を確認する画面である。
【図１７】解除が完了したことを示す画面である。
【図１８】解除後の画面である。
【図１９】起動設定時における起動制限処理手順を示すフローチャートである。
【図２０】起動時における起動制限処理手順を示すフローチャートである。
【図２１】リソース使用情報ファイルの作成処理のフローチャートである。
【図２２】仮起動の機能を含むアプリのプログラム記述（メイン関数）の概要を示す図である。
【図２３】実施の形態２にかかる複合機の構成を示すブロック図である。
【図２４】実施の形態２にかかる複合機のＶＡＳの構成と、ＶＡＳと各アプリ、コントロールサービス層および汎用ＯＳとの関係を示すブロック図である。
【符号の説明】
【０１２２】
　１００　複合機
　１０１　白黒レーザプリンタ
　１０２　カラーレーザプリンタ
　１０３　ハードウェアリソース
　１１０　ソフトウェア群
　１１１　プリンタアプリ
　１１２　コピーアプリ
　１１３　ファックスアプリ
　１１４　スキャナアプリ
　１１５　ネットファイルアプリ
　１１６　工程検査アプリ
　１１７，１１８　新規アプリ
　１２０　プラットホーム
　１２１　汎用ＯＳ 
　１２２　ＳＣＳ 
　１２３　ＳＲＭ 
　１２４　ＥＣＳ 
　１２５　ＭＣＳ 
　１２６　ＯＣＳ 
　１２７　ＦＣＳ 
　１２８　ＮＣＳ 
　１３０　アプリケーション
　１４０，８４１〜８４８　仮想アプリケーションサービス（ＶＡＳ） 
　１４１　リソース使用情報取得スレッド
　１４２　アプリ起動制限スレッド
　１４３　制御スレッド
　１４４　ディスパッチャ
　１５０　コントロールサービス層
　２００　ハードディスク（ＨＤ）
　２０１　リソース使用情報ファイル
　２１０　ＲＡＭ 
　２１１　ｐｒｏｃ構造体
　２１２　ｕ領域
　２２１　ユーザアプリ
　２２２　ユーザアプリ
　２２３　ユーザアプリ
　８００　複合機
　８０１　ＶＡＳ制御プロセス（デーモン） 
【図１】
2004122773.tif 000003
【図２】
2004122773.tif 000004
【図３】
2004122773.tif 000005
【図４】
2004122773.tif 000006
【図５】
2004122773.tif 000007
【図６】
2004122773.tif 000008
【図７】
2004122773.tif 000009
【図８】
2004122773.tif 000010
【図９】
2004122773.tif 000011
【図１０】
2004122773.tif 000012
【図１１】
2004122773.tif 000013
【図１２】
2004122773.tif 000014
【図１３】
2004122773.tif 000015
【図１４】
2004122773.tif 000016
【図１５】
2004122773.tif 000017
【図１６】
2004122773.tif 000018
【図１７】
2004122773.tif 000019
【図１８】
2004122773.tif 000020
【図１９】
2004122773.tif 000021
【図２０】
2004122773.tif 000022
【図２１】
2004122773.tif 000023
【図２２】
2004122773.tif 000024
【図２３】
2004122773.tif 000025
【図２４】
2004122773.tif 000026