(57)【要約】【課題】本発明の課題は、効率的に機器のシステム資源を使用することができるようにすることである。【解決手段】上記課題を解決するために、本発明に係るアプリケーションプラットフォームは、インストール又は起動対象のアプリケーションをアプリケーションのアプリケーションプラットフォームでインストール又は起動するか否かを決定する決定手段を有するアプリケーションプラットフォームであって、決定手段がインストール又は起動対象のアプリケーションをインストール又は起動するか否かを決定するときに、既にインストール又は起動されている複数のアプリケーションの夫々の第１のリソース使用量と第２のリソース使用量と、インストール又は起動対象のアプリケーションの第１のリソース使用量と第２のリソース使用量とを参照し、インストール又は起動対象のアプリケーションの第１のリソース使用量は、インストール又は起動対象のアプリケーションの第２のリソース使用量より多いことを特徴とする。【選択図】図４
2010117838.tif 000002
【特許請求の範囲】
【請求項１】
インストール又は起動対象のアプリケーションを前記アプリケーションのアプリケーションプラットフォームでインストール又は起動するか否かを決定する決定手段を有するアプリケーションプラットフォームであって、
前記決定手段がインストール又は起動対象の前記アプリケーションをインストール又は起動するか否かを決定するときに、
既にインストール又は起動されている複数のアプリケーションの夫々の第１のリソース使用量と第２のリソース使用量と、インストール又は起動対象のアプリケーションの第１のリソース使用量と第２のリソース使用量とを参照し、
前記インストール又は起動対象のアプリケーションの第１のリソース使用量は、前記インストール又は起動対象のアプリケーションの第２のリソース使用量より多いことを特徴とするアプリケーションプラットフォーム。
【請求項２】
インストール又は起動対象のアプリケーションを前記アプリケーションのアプリケーションプラットフォームでインストール又は起動するか否かを決定する決定手段を有するアプリケーションプラットフォームであって、
前記決定手段がインストール又は起動対象の前記アプリケーションを決定するときに、
既にインストール又は起動されているＮ−１個のアプリケーションの夫々における、第１のリソース使用量と第２のリソース使用量と、１個のインストール又は起動対象のアプリケーションにおける、第１のリソース使用量と第２のリソース使用量とを参照し、合計でＮ個のアプリケーションのうち、ｋ個のアプリケーションにおける第１のリソース使用量の総和と、Ｎ−ｋ個のアプリケーションにおける第２のリソース使用量の総和との和が、前記Ｎ個のアプリケーションが前記アプリケーションプラットフォームで利用可能なリソース量を超えるか判定することを特徴とするアプリケーションプラットフォーム。
【請求項３】
前記第１のリソース使用量と、前記第２のリソース使用量とを宣言し、
前記第１のリソース使用量は、前記第２のリソース使用量より大きく、前記第１のリソース使用量と、前記第２のリソース使用量とが対象としているリソースは同じであり、
前記第１のリソース使用量は、アプリケーションが第１の状態の際に使用するリソースの量であり、前記第２のリソース使用量は、アプリケーションが第２の状態の際に使用するリソースの量であるアプリケーションをインストール又は起動できることを特徴とする請求項１又は請求項２に記載のアプリケーションプラットフォーム。
【請求項４】
前記第１のリソース使用量は、前記アプリケーションが使用するメモリの最大量である最大メモリ使用量であり、前記第２のリソース使用量は、前記アプリケーションがユーザにより操作されていない状態において必要とする最低限のメモリ使用量である最低限メモリ使用量であることを特徴とする請求項３に記載のアプリケーションプラットフォーム。
【請求項５】
前記第１の状態は、最大メモリ使用量を消費可能な状態であり、前記第２の状態は、最低限メモリ使用量を消費する状態であることを特徴とする請求項４に記載のアプリケーションプラットフォーム。
【請求項６】
複数のアプリケーションを管理するアプリケーションプラットフォームであって、
前記アプリケーションが使用するメモリの最大量である最大メモリ使用量を取得する手段と、
前記アプリケーションがユーザにより操作されていない状態において必要とする最低限のメモリ使用量である最低限メモリ使用量を取得する最低限メモリ使用量の取得手段と、
複数のアプリケーションのうち、１つ又は複数のアプリケーションの最大メモリ使用量とその他の１つ又は複数のアプリケーションの最低限メモリ使用量の総和の最大値を取得する手段と、
新規のアプリケーションをインストール又は起動する際に、前記取得された前記総和の最大値が前記アプリケーションプラットフォームで利用可能なメモリ総量を超えるか否かを判定する判定手段とを備え、
前記判定手段により、前記取得された前記総和の最大値が前記アプリケーションプラットフォームで利用可能なメモリ総量を超えないと判定される場合には前記新規のアプリケーションのインストール又は起動を実施することを特徴とするアプリケーションプラットフォーム。
【請求項７】
バックグラウンドのアプリケーションを、最低限メモリ使用量を消費する状態に遷移させる第１の遷移手段と、
フォアグラウンドのアプリケーションを、最大メモリ使用量を消費可能な状態に遷移させる第２の遷移手段とをさらに備えることを特徴とする請求項６に記載のアプリケーションプラットフォーム。
【請求項８】
前記第１の遷移手段によりアプリケーションが最低限メモリ使用量を消費する状態に遷移された場合には、前記アプリケーションのＧＵＩデータを削除する削除手段をさらに備えることを特徴とする請求項７に記載のアプリケーションプラットフォーム。
【請求項９】
前記最大メモリ使用量を取得する手段により取得された前記複数のアプリケーションの最大メモリ使用量の総和を取得する手段とを備え、
前記総和を取得する手段により取得された最大メモリ使用量の総和が利用可能なメモリ総量を超えない場合には、前記判定手段および、前記第１の遷移手段、前記第２の遷移手段、前記削除手段を実施しないことを特徴とする請求項８に記載のアプリケーションプラットフォーム。
【請求項１０】
前記削除手段により前記アプリケーションのＧＵＩデータが削除されるときに、前記ＧＵＩデータを保存する保存手段と、
前記保存手段により保存されたＧＵＩデータを復元する復元手段とを備えることを特徴とする請求項８に記載のアプリケーションプラットフォーム。
【請求項１１】
インストール又は起動対象のアプリケーションを前記アプリケーションのアプリケーションプラットフォームでインストール又は起動するか否かを決定する決定ステップを有するアプリケーションプラットフォームであって、
前記決定ステップがインストール又は起動対象の前記アプリケーションをインストール又は起動するか否かを決定するときに、
既にインストール又は起動されている複数のアプリケーションの夫々の第１のリソース使用量と第２のリソース使用量と、インストール又は起動対象のアプリケーションの第１のリソース使用量と第２のリソース使用量とを参照し、
前記インストール又は起動対象のアプリケーションの第１のリソース使用量は、前記インストール又は起動対象のアプリケーションの第２のリソース使用量より多いことを特徴とするアプリケーションプラットフォームの制御方法。
【請求項１２】
インストール又は起動対象のアプリケーションを前記アプリケーションのアプリケーションプラットフォームでインストール又は起動するか否かを決定する決定ステップを有するアプリケーションプラットフォームであって、
前記決定ステップがインストール又は起動対象の前記アプリケーションを決定するときに、
既にインストール又は起動されているＮ−１個のアプリケーションの夫々における、第１のリソース使用量と第２のリソース使用量と、１個のインストール又は起動対象のアプリケーションにおける、第１のリソース使用量と第２のリソース使用量とを参照し、合計でＮ個のアプリケーションのうち、ｋ個のアプリケーションにおける第１のリソース使用量の総和と、Ｎ−ｋ個のアプリケーションにおける第２のリソース使用量の総和との和が、前記Ｎ個のアプリケーションが前記アプリケーションプラットフォームで利用可能なリソース量を超えるか判定することを特徴とするアプリケーションプラットフォームの制御方法。
【請求項１３】
前記第１のリソース使用量と、前記第２のリソース使用量とを宣言し、
前記第１のリソース使用量は、前記第２のリソース使用量より大きく、前記第１のリソース使用量と、前記第２のリソース使用量とが対象としているリソースは同じであり、
前記第１のリソース使用量は、アプリケーションが第１の状態の際に使用するリソースの量であり、前記第２のリソース使用量は、アプリケーションが第２の状態の際に使用するリソースの量であるアプリケーションをインストール又は起動できることを特徴とする請求項１１又は請求項１２に記載のアプリケーションプラットフォームの制御方法。
【請求項１４】
前記第１のリソース使用量は、前記アプリケーションが使用するメモリの最大量である最大メモリ使用量であり、前記第２のリソース使用量は、前記アプリケーションがユーザにより操作されていない状態において必要とする最低限のメモリ使用量である最低限メモリ使用量であることを特徴とする請求項１３に記載のアプリケーションプラットフォームの制御方法。
【請求項１５】
前記第１の状態は、最大メモリ使用量を消費可能な状態であり、前記第２の状態は、最低限メモリ使用量を消費する状態であることを特徴とする請求項１４に記載のアプリケーションプラットフォームの制御方法。
【請求項１６】
請求項１１乃至１５のいずれかに記載のアプリケーションプラットフォームの制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションを管理するためのアプリケーションプラットフォーム、アプリケーションプラットフォームの制御方法、およびプログラムに関する。
【背景技術】
【０００２】
従来から、アプリケーションをインストール又は起動したり、アンインストールすることが可能な機器（例えば、複合機）が提案されている。機器ベンダーや提携するサードパーティのベンダーは、様々なアプリケーションを販売している。ユーザは、この中から所望のアプリケーションを購入しインストール又は起動することで、より個々のニーズにマッチした形態で複合機を運用することが可能となっている。
【０００３】
ところで、一般に、機器の設計にあたってはコストを最低限に押さえているため、メモリなどのシステム資源（リソース）が豊富に用意されている訳ではない。このため、アプリケーションをインストール又は起動する際には、当該アプリケーションが正しく動作するために必要なシステム資源を確保できるかどうかをチェックし、機器の障害や誤動作を防止する技術が提案されている（特許文献１）。
【０００４】
【特許文献１】特開２００４−５４１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述の従来技術では、アプリケーションを、機器でインストール又は起動する際にアプリケーションが動作するために必要なメモリの容量を解析し、この容量のメモリをその機器が提供できない場合にはインストール又は起動が行われない。ここで、アプリケーションが動作するために必要なメモリの容量とは、一般に、そのアプリケーションが消費するリソース（例えば、メモリ）のリソース使用量の最大量（最大メモリ使用量）である。すなわち、最大メモリ使用量とは、アプリケーションが使用するメモリの最大量であっても良い。
【０００６】
ここで、各アプリケーションの最大メモリ使用量を合計していくと、膨大な量になってしまい、すぐにその機器内のリソース（例えば、メモリ容量）を超えてしまう。その結果、機器でインストール又は起動できるアプリケーションの数は、少ない数に限定されてしまう。
【０００７】
本発明の目的は、上記の問題を解決することである。
【０００８】
機器でインストール又は起動できるアプリケーションの数を増やすために、インストール又は起動されているアプリケーションの全てが同時に最大メモリ使用量を使用しているわけではないという点に注目することができる。つまり、一部のアプリケーションは、多くの場合、最大メモリ使用量よりも極めて少ない使用量だけリソースを使用している。
【０００９】
例えば、通常、ユーザにより選択され、使用されているアプリケーションは、最大メモリ使用量を使用している。一方、ユーザにより選択されておらず、使用されていないアプリケーションは、最大メモリ使用量を使用していない。
【００１０】
つまり、アプリケーションの動作は、ユーザに対してＧＵＩを表示したり、機器や機器が実行する処理の状態の変化を受信し処理をする際により多くのメモリを消費する。
【００１１】
例えば、ユーザが複合機のタッチパネルより、コピーのアプリケーションを操作して仕上げや給紙段の指定などの設定を行う。この場合、コピーのアプリケーションは、出力イメージを表す図画や給紙段の位置を示すため複合機の外観を表す図画、あるいはボタンやリストなどの表示部品など様々な情報を表示する。近年の機器は、ユーザビリティの向上や機器の魅力の向上のために、表示部の大型化や表示コンテンツのリッチ化がなされている。従来より、一般的に、ＧＵＩの表示には大量のメモリを要する。加えて、昨今の機器では、ユーザビリティの向上や機器の魅力の向上のため表示部の大型化や表示コンテンツのリッチ化が成されており、消費するメモリ量はより多くなっている。
【００１２】
また、複合機におけるコピーや文書の生成、送信といった処理の際には、アプリケーションはこうした処理（ジョブ）の状態に応じて様々に動作する。このとき、一時データの記憶などのため、メモリを多く消費する状態となる。このように、ユーザにより選択され、使用されているアプリケーションは、最大メモリ使用量を使用している。
【００１３】
しかし、ユーザから操作がなされていないアプリケーションは、これに応じたＧＵＩを表示する必要がない。また、機器の状態の変化や機器による処理は、常に実行されているわけではない。よって、ユーザにより選択されておらず、使用されていないアプリケーションは、最大メモリ使用量のメモリを使用していない。
【課題を解決するための手段】
【００１４】
上記課題を解決するために、本発明に係るアプリケーションプラットフォームは、  インストール又は起動対象のアプリケーションをアプリケーションのアプリケーションプラットフォームでインストール又は起動するか否かを決定する決定手段を有するアプリケーションプラットフォームであって、決定手段がインストール又は起動対象のアプリケーションをインストール又は起動するか否かを決定するときに、  既にインストール又は起動されている複数のアプリケーションの夫々の第１のリソース使用量と第２のリソース使用量と、インストール又は起動対象のアプリケーションの第１のリソース使用量と第２のリソース使用量とを参照し、インストール又は起動対象のアプリケーションの第１のリソース使用量は、インストール又は起動対象のアプリケーションの第２のリソース使用量より多いことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、効率的に機器のシステム資源を使用することができる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１７】
＜実施形態１＞
図１は、本発明に係るアプリケーションプラットフォームがインストールされる機器の一例である画像形成装置の概略を示すブロック図である。
【００１８】
（画像形成装置１の説明）
画像形成装置１は、印刷装置１１と、画像処理装置１２とを有する。
【００１９】
画像処理装置１２は、ＣＰＵ１２１と、直接記憶部１２２（例えば、ＲＡＭ）と、間接記憶部１２３（例えば、ＨＤＤ）と、ユーザインターフェース１２４と、外部インターフェース１２５とを有する。
【００２０】
直接記憶部１２２は、ＣＰＵ１２１と直接データをやり取りする記憶部であり、間接記憶部１２３は、直接記憶部１２２を介してＣＰＵ１２１とデータをやり取りする記憶部である。直接記憶部１２２は、種々のアプリケーション及びプラットフォームプログラムを記憶する。また、直接記憶部１２２は、プラットフォーム部２０がアプリケーションを実行した際などに得られる情報を一時的に記憶する。
【００２１】
ユーザインターフェース１２４は、タッチパネルやキーボード、マウス、ディスプレイ等を有し、ユーザからの指示の受付け、データ（ＧＵＩデータ）の表示をすることができる。
【００２２】
外部インターフェース１２５は、外部装置からのデータの受信や外部装置へのデータの送信が可能となっている。例えば、外部装置には、外付けＨＤＤや外付けＵＳＢメモリ等の外付け記憶装置や、ネットワークを介して接続された別体のホストコンピュータや画像形成装置等の別体装置が含まれる。
【００２３】
なお、本実施形態では、印刷装置１１や画像処理装置１２が実行する画像形成処理や印刷処理をジョブと呼称する。
【００２４】
（プラットフォーム部２０の説明）
ＣＰＵ１２１は、間接記憶部１２３に記憶されたプラットフォームプログラムを直接記憶部１２２に移動する（記憶させる）ことができる。移動が完了すると、ＣＰＵ１２１がプラットフォームプログラムを実行することができる状態になる。本実施形態では、このように「ＣＰＵ１２１がプラットフォームプログラムを実行することができる状態になること」を、プラットフォーム部２０が起動すると称する。起動した後のプラットフォーム部２０のことを本実施形態において、アプリケーションプラットフォームと称することもある。
【００２５】
プラットフォーム部２０は、画像形成装置の各部の状態や、印刷装置１１や画像処理装置１２が実行するジョブの状態を検知し、これにより、後述のアプリケーションを実行する。
【００２６】
なお、本実施形態で、プラットフォーム部２０は、ＣＰＵ１２１を有しても良い。また、プラットフォーム部２０は、直接記憶部１２２のうちのプラットフォームプログラムを記憶している領域を有しても良い。また、プラットフォーム部２０は、ＣＰＵ１２１が上記プラットフォームプログラムを処理した際に得られる情報（計算結果等）を記憶する（直接記憶部１２２及び間接記憶部１２３の）領域を有しても良い。
【００２７】
（アプリケーションプログラムの説明）
プラットフォーム部２０は、外部インターフェース１２５を介して第１のアプリケーションプログラムを受信し、（プラットフォーム部２０の内部にある）間接記憶部１２３に記憶することができる。そして、後述する通り、プラットフォーム部２０は、間接記憶部１２３に記憶した後のアプリケーションプログラムを特定する情報を管理情報に追加する。本実施形態ではこのこと（アプリケーションプログラムの記憶、特定する情報の管理情報への追加）を、プラットフォーム部２０に第１のアプリケーションプログラムをインストールすると称する。なお、本実施形態においては、インストールされた後のアプリケーションプログラムをアプリケーションと称する。
【００２８】
プラットフォーム部２０は、間接記憶部１２３に記憶された第１のアプリケーションを直接記憶部１２２に移動する（記憶させる）ことができる。移動が完了すると、プラットフォーム部２０が第１のアプリケーションを実行することができる状態になる。本実施形態ではこのことを、プラットフォーム部２０が第１のアプリケーションを起動すると称する。
【００２９】
逆に、プラットフォーム部２０は、直接記憶部１２２に記憶された第１のアプリケーションを直接記憶部１２２から削除することができる。本実施形態ではこのことを、プラットフォーム部２０が第１のアプリケーションを停止すると称する。
【００３０】
逆に、プラットフォーム部２０は、間接記憶部１２３に記憶された第１のアプリケーションを間接記憶部１２３から削除し、さらに、上記管理情報から第１のアプリケーションを特定する情報を削除することができる。本実施形態ではこのことを、プラットフォーム部２０が第１のアプリケーションをアンインストールすると呼称する。
【００３１】
尚、プラットフォーム部２０が第１のアプリケーションをアンインストールする際に、第１のアプリケーションが起動している場合には、これを停止した後にアンインストールを行う。
【００３２】
また、プラットフォーム部２０が、第１のアプリケーションに実装された処理ステップを一つずつ行うことを、プラットフォーム部２０が第１のアプリケーションを実行する、と言う。
【００３３】
また、以上の説明は、第１のアプリケーションプログラムを例にして説明を行ったが、他のアプリケーションプログラム（例、第２のアプリケーションプログラム）であっても同様であることは当業者には明白であろう。
【００３４】
（ユーザインターフェースの説明）
図２は、ユーザインターフェース１２４の表示例を示す図である。
【００３５】
プラットフォーム部２０は、複数のアプリケーションを起動し、実行する。そしてこの結果、ＧＵＩデータを生じる。ユーザインターフェース１２４は、一時にたったひとつのアプリケーションのＧＵＩデータを表示する。ここで、「一時にたったひとつの」は、アプリケーションの修飾語であって、ＧＵＩデータへの修飾語ではない。一般に、本実施形態で対象としている画像形成装置のディスプレイは、大型化の傾向があるものの、コストを低く押さえるためにＰＣなどに比較して小さなサイズである。一時にたったひとつのアプリケーションのＧＵＩデータだけを表示することで、当該アプリケーションを利用するユーザに、必要な情報をより多く同時に表示することができる。
【００３６】
ユーザがユーザインターフェース１２４を介してタブ２０１および、タブ２０２、タブ２０３を指示すると、ユーザインターフェース１２４は、プラットフォーム部２０にこれを通知する。プラットフォーム部２０は、ＧＵＩデータを表示するアプリケーションを切り替える。そして、ユーザインターフェース１２４に、切り替え後のアプリケーションのデフォルトＧＵＩデータを表示するよう通知する。例えば、図２では、コピーアプリケーションのＧＵＩデータが表示されている。この状態で、ユーザインターフェース１２４を介してタブ２０２がユーザにより指示されると、送信／FAXアプリケーションのＧＵＩデータが表示されることになる。
【００３７】
なお、ＧＵＩデータを表示するようにプラットフォーム部２０がユーザインターフェース１２４に対して表示するように通知する場合には、以下のような処理行われても良い。すなわち、事前に、プラットフォーム部２０は起動中のアプリケーションを実行して、そのアプリケーションが有するＧＵＩデータが取り出されても良い。本実施形態では、このＧＵＩデータの取出し元と成ったアプリケーションのことを、ＧＵＩデータを表示するアプリケーションと称する。
【００３８】
領域２０４は、プラットフォーム部２０がアプリケーションを実行した結果生ずるＧＵＩデータを表示する領域である。
【００３９】
本実施形態では、ユーザインターフェース１２４がＧＵＩデータを表示しているアプリケーションを“アクティブなアプリケーション”と呼称する。逆に、ユーザインターフェース１２４がＧＵＩデータを表示していないアプリケーションを“非アクティブなアプリケーション”と呼称する。
【００４０】
（アプリケーションの管理情報の説明）
図３は、アプリケーションの管理情報を示す図である。
【００４１】
アプリケーション管理データ３００は、プラットフォーム部２０が記憶し管理する。
【００４２】
図３において、データ項目３０１は、アプリケーションの名称を示すデータ項目である。また、データ項目３０２は、アプリケーションのＩＤを示すデータ項目であり、アプリケーション管理データ３００において一意である。また、データ項目３０３は、アプリケーションの状態を示すデータ項目である。データ項目３０３は、値として、“起動”、“停止”のいずれかをとり得る。プラットフォーム部２０がアプリケーションを起動している場合は、データ項目３０３は“起動”である。プラットフォーム部２０がアプリケーションを停止している場合は、データ項目３０３は“停止”である。
【００４３】
図３において、データ項目３０４は、アプリケーションの最大メモリ使用量（そのアプリケーションが消費するリソース（例えば、メモリ）のリソース使用量の最大量）を示す項目である。最大メモリ使用量は、プラットフォーム部２０が起動中のアクティブなアプリケーションを実行する際に使用する容量（直接記憶部１２２中の容量）のうちの最大値である。
【００４４】
図３において、データ項目３０５は、アプリケーションの最低限メモリ使用量を示す項目である。最低限メモリ使用量とは、プラットフォーム部２０が起動中の非アクティブなアプリケーションを実行する際に使用する容量（直接記憶部１２２に占める容量）のうちの最大値である。すなわち、最低限メモリ使用量とは、アプリケーションがユーザにより操作されていない状態において必要とする最低限のメモリ使用量であっても良い。
【００４５】
図３のアプリケーション管理データ３００のひとつの行をレコードと呼称する。レコードは、データ項目３０１およびデータ項目３０２、データ項目３０３、データ項目３０４、データ項目３０５から成る。レコードはひとつのアプリケーションの管理情報を表す。
【００４６】
プラットフォーム部２０は、アプリケーションのインストールの中で、管理情報（アプリケーション管理データ３００）にレコードを追加する。このレコードには、データ項目３０１〜３０５が含まれている。そして、そのデータ項目３０１がアプリケーションを特定する情報である。そのため、上述した通り、この段階（インストール中）において、プラットフォーム部２０は、アプリケーションプログラムを特定する情報を管理情報に追加することになる。追加直後のレコードは、データ項目３０３は“停止”である。なお、このインストール中に、プラットフォーム部２０は、新しいアプリケーションのＩＤを生成し、追加したレコードのデータ項目３０２に入力する。このＩＤについては、アプリケーション管理データ３００の他のレコードのデータ項目３０２と重複しないように、プラットフォーム部２０が生成している。
【００４７】
プラットフォーム部２０は、外部インターフェース１２５を介して、アプリケーションプログラムと共に、当該アプリケーションの名称および最大メモリ使用量、最低限メモリ使用量を受信する。そして、受信した名称をデータ項目３０１に、最大メモリ使用量をデータ項目３０４に、最低限メモリ使用量をデータ項目３０５にそれぞれ入力する。これらの情報を入力することも、本実施形態では、インストールに含まれる。
【００４８】
プラットフォーム部２０は、アプリケーションをアンインストールした際に、アプリケーション管理データ３００の該当レコードを削除する。
【００４９】
プラットフォーム部２０は、アプリケーションを起動ないし停止した場合に、データ項目３０３を“起動”ないし“停止”に更新する。
【００５０】
（最大メモリ使用量と最低限メモリ使用量の説明）
以下で、アプリケーションで宣言される最大メモリ使用量と最低限メモリ使用量とについて説明する。
【００５１】
ユーザがユーザインターフェース１２４においてアプリケーションの実行指示を行うと、プラットフォーム部２０がアプリケーションを実行する。これにより多くのＧＵＩデータを生じ、直接記憶部１２２を大量に消費する。このような場合における直接記憶部１２２の消費量が、最大の値となる量が最大メモリ使用量である。最大メモリ使用量は、アプリケーション自体を記録する領域とＧＵＩデータが表示されるための領域、アプリケーションの実行領域（アプリケーションの実行により様々、発生する一時データを記録する領域）より成る。
【００５２】
前述のとおり、アクティブなアプリケーションの実行によって生じるＧＵＩデータは、ユーザインターフェース１２４における表示領域の大部分を使って表示する。このため、非アクティブなアプリケーションのＧＵＩデータは、ユーザインターフェース１２４に表示されない。よって、プラットフォーム部２０がユーザからの実行指示に応じて非アクティブなアプリケーションを実行することはなく、従って、プラットフォーム部２０は、アプリケーションの実行領域を直接記憶部１２２内に確保する必要がない。また、プラットフォーム部２０は、ＧＵＩデータが表示されるための領域を、直接記憶部１２２内に確保する必要がない。そのため、アプリケーションが非アクティブである場合には、そのアプリケーションのために確保すべき直接記憶部１２２内の領域の量が少ない。最低限メモリ使用量は、アプリ−ケーションが非アクティブである場合の直接記憶部１２２の消費量（即ち、非アクティブのアプリケーションのために確保されるべき領域のサイズ）であって最大の値となる量である。最低限メモリ使用量は、アプリケーション自体を記録する領域より成る。
【００５３】
従って、最大メモリ使用量−最低限メモリ使用量は、理論上、直接記憶部１２２内に確保されるべき上記アプリケーションの実行領域とアプリケーションのＧＵＩデータ表示領域の合計とに一致する。ただし、本実施形態では、こうした理論上の計算により二つの使用量を決定する場合ではなくて、実験により決定する場合を例に、両者の決定方法を以下に説明する。なお、当業者であれば、こうした理論上の計算により二つの使用量を決定することも可能であろう。一般に、最大メモリ使用量は、最低限メモリ使用量よりも多くなる。
【００５４】
最大メモリ使用量と最低限メモリ使用量は、アプリケーションの開発の段階で実験により決定する。
【００５５】
その開発の段階においては、アプリケーションをアクティブにし、直接記憶部１２２にダミーのデータを記録する。そして、プラットフォーム部２０によりアプリケーションを実行する。画像形成装置１が正しく動作可能な範囲で徐々にダミーデータの容量を増していき、ダミーデータの最大値を取得する。プラットフォーム部２０で利用可能な直接記憶部１２２の容量とダミーデータの最大値の差分を最大メモリ使用量とする。
【００５６】
また、アプリケーションを非アクティブにし、同様の作業を行う。この場合のダミーデータの最大値と、プラットフォーム部２０で利用可能な直接記憶部１２２の差分を最低限メモリ使用量とする。
【００５７】
尚、印刷装置１１や画像処理装置１２がジョブを実行すると、画像データなどの一時データが生成される。この一時データの記憶に要する直接記憶部１２２の容量は、各アプリケーションの最大メモリ使用量や最低限メモリ使用量には含まない。すなわち、各アプリケーションに共通の領域を直接記憶部１２２に確保するものとする。
【００５８】
（インストール時の処理の説明）
図４は、本実施形態における、プラットフォーム部２０がアプリケーションプログラムをインストールする際の処理手順を示すフローチャートである。
【００５９】
外部インターフェース１２５は、アプリケーションプログラムと当該アプリケーションの名称、最大メモリ使用量、最低限メモリ使用量を受信して取得し、プラットフォーム部２０に通知する。これにより、プラットフォーム部２０は以下の処理を実行する。
【００６０】
プラットフォーム部２０は、アプリケーション管理データ３００に登録されている全てのアプリケーションの最大メモリ使用量の総和と、インストール対象のアプリケーションの最大メモリ使用量と、の総和を計算する（Ｓ４０１）。通常は、アプリケーション管理データ３００に登録されている全てのアプリケーションの数は複数である。また、上記のインストール対象のアプリケーションとは、インストール対象のアプリケーションのインストールにより生じるアプリケーションである。
【００６１】
プラットフォーム部２０は、Ｓ４０１で計算された総和が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を越えるか否かを判定する（Ｓ４０２）。Ｓ４０１で計算された総和が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えると判定される場合には、Ｓ４０３に進む。一方、Ｓ４０１で計算された総和が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えないと判定される場合にはＳ４０５に進む。尚、プラットフォーム部２０は、この判定結果を直接記憶部１２２に記憶しておく。ところで、プラットフォーム部２０で利用可能な直接記憶部１２２の容量とは、直接記憶部１２２の全体の容量から、以下の（Ａ）〜（Ｃ）を差し引いた容量である。  
（Ａ）プラットフォームプログラムを記憶している領域。  
（Ｂ）ＣＰＵ１２１が上記プラットフォームプログラムを処理した際に得られる情報（計算結果等）を記憶する（直接記憶部１２２及び間接記憶部１２３のうちの）領域。  
（Ｃ）印刷装置１１、画像形成装置１２が動作する際に最大で使用する直接記憶部１２２の容量。  
【００６２】
プラットフォーム部２０は、アプリケーション管理データ３００に登録済みのアプリケーションとインストール対象のアプリケーションのそれぞれについて、次の値を計算する（Ｓ４０３）。すなわち、プラットフォーム部２０は、あるアプリケーションの最大メモリ使用量と、それ以外のアプリケーションの最低限メモリ使用量との総和を計算する。
【００６３】
プラットフォーム部２０は、Ｓ４０３で算出された総和のうちで最も大きな値が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量（メモリ総量）を越えるか否かを判定する（Ｓ４０４）。  
ここで、最大メモリ使用量と、最低限メモリ使用量との差が最も大きいアプリケーションを一つ選択し、選択したアプリケーションの最大メモリ使用量と、残りのアプリケーションの最低限メモリ使用量との総和を、Ｓ４０３で計算される総和としても良い。
【００６４】
例えば、以下のようなアプリケーション１〜３が存在するとする。この場合に、アプリケーション１では、最大メモリ使用量が１０で、最低限メモリ使用量が０であるとする。また、アプリケーション２では、最大メモリ使用量が１０で、最低限メモリ使用量が１であるとする。また、アプリケーション３では、最大メモリ使用量が１０で、最低限メモリ使用量が９であるとする。
【００６５】
このとき、最大メモリ使用量と、最低限メモリ使用量との差が、１０−０＝１０で、最大メモリ使用量と、最低限メモリ使用量との差が、最も大きいアプリケーションとして、アプリケーション１が選択される。そして、選択されたアプリケーション１の最大メモリ使用量（１０）と、残りアプリケーション２、３の最低限メモリ使用量（１及び９）を全て足し合わせて、Ｓ４０３で計算される総和は、１０＋１＋９＝２０となる。
【００６６】
Ｓ４０４で、Ｓ４０３で算出された総和が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えると判定される場合には、外部インターフェース１２５が受信したアプリケーションはインストールせずに処理を終了する。
【００６７】
Ｓ４０４で、Ｓ４０３で算出された総和が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えないと判定される場合にはＳ４０５に進む。
【００６８】
プラットフォーム部２０は、外部インターフェース１２５を介して受信したアプリケーションプログラムをインストールする（Ｓ４０５）。プラットフォーム部２０は、前述のとおり、アプリケーションプログラムのインストール時にアプリケーション管理データ３００にレコードを追加する。追加したレコードのデータ項目３０１およびデータ項目３０４、データ項目３０５には、アプリケーションの名称、最大メモリ使用量、最低限メモリ使用量が含まれる。
【００６９】
Ｓ４０２で、Ｓ４０１で計算された総和が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を越えないと判定された場合、直接記憶部１２２には余裕がある。
【００７０】
直接記憶部１２２に余裕がある場合、新しくインストールされたアプリケーションを含めて、全てのアプリケーションが、それぞれの最大メモリ使用量分ずつ直接記憶部１２２を使用することができる。
【００７１】
直接記憶部１２２に余裕がない場合（Ｓ４０２で超えると判定）、従来は新規のアプリケーションのインストールを抑制していた。しかし、本実施形態では、ただひとつだけアクティブなアプリケーションのみ、直接記憶部１２２を最大メモリ使用量の分、使用可能に制御する。更に、他のアプリケーションは、直接記憶部１２２を最低限メモリ使用量の分だけ使用可能に制御する。Ｓ４０４では、このように制御することで、新規のアプリケーションをインストールすることができるか否かを判定する処理である。  
【００７２】
（アプリケーションプラットフォームの制御の説明）
図５は、本実施形態において、アクティブなアプリケーションを切り替える際の、プラットフォーム部２０の（アプリケーションプラットフォーム）処理手順を示すフローチャートである。
【００７３】
ユーザにより、タブ２０１あるいはタブ２０２、タブ２０３が指示されると、ユーザインターフェース１２４はプラットフォーム部２０に対して、これを通知する。プラットフォーム部２０はこの通知を受けると、以下の処理を行う。
【００７４】
プラットフォーム部２０は、現在アクティブなアプリケーションを非アクティブにする（Ｓ５０１）。そして、プラットフォーム部２０は、アクティブであったアプリケーションのＧＵＩデータの表示の停止を、ユーザインターフェース１２４に通知する。
【００７５】
プラットフォーム部２０は、Ｓ４０３において直接記憶部１２２に記憶した総和がプラットフォーム部２０で利用可能な直接記憶部１２２の容量を越えるか否かの判定結果を取得する（Ｓ５０２）。
【００７６】
プラットフォーム部２０は、この判定結果を確認し（Ｓ５０３）、Ｓ４０３において直接記憶部１２２に記憶した総和がプラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えると判定される場合にはＳ５０４へ進む。一方、Ｓ４０３において直接記憶部１２２に記憶した総和がプラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えないと判定される場合にはＳ５０６へ進む。
【００７７】
プラットフォーム部２０は、Ｓ５０１で非アクティブにされたバックグラウンドのアプリケーションを、最低限メモリ使用量分だけ直接記憶部１２２を消費する状態（最低限メモリ使用量消費状態）に遷移させる（Ｓ５０４）。アプリケーションが、最低限メモリ使用量消費状態の際は、プラットフォーム部２０は、画像形成装置１の各部の状態やジョブの状態が変化しても、当該アプリケーションを実行しない。更に、最低限メモリ使用量消費状態に遷移させたアプリケーションのＧＵＩデータおよび一時データを記録している実行領域を削除する。
【００７８】
プラットフォーム部２０は、ユーザインターフェース１２４が通知したタブ（タブ２０１、タブ２０２、タブ２０３のいずれか）に関連付けられたフォアグラウンドのアプリケーションを、最大メモリ使用量消費可能状態へ遷移させる（Ｓ５０５）。ここで、最大メモリ使用量消費可能状態とは、最大メモリ使用量分の直接記憶部１２２を消費可能な状態である。アプリケーションが最大メモリ使用量消費可能状態の際は、プラットフォーム部２０は、画像形成装置１の各部やジョブの状態が変化した場合には、これに応じて、当該アプリケーションを実行する。
【００７９】
プラットフォーム部２０は、ユーザインターフェース１２４が通知したタブ（タブ２０１、タブ２０２、タブ２０３のいずれか）に関連付けられたアプリケーションをアクティブにする（Ｓ５０６）。そして、当該アクティブにしたアプリケーションのＧＵＩデータの表示の開始を、ユーザインターフェース１２４に通知する。
【００８０】
これにより、当該アプリケーションの最低限メモリ使用量を、より小さな容量とすることができる。そして、プラットフォーム部２０で利用可能な直接記憶部１２２の領域をより多く残すことができ、より多くのアプリケーションをインストールすることが可能となる。
【００８１】
先に、Ｓ４０４を説明した。これは、直接記憶部１２２に余裕がない場合に、アクティブなアプリケーションだけが直接記憶部１２２を最大メモリ使用量分使用可能とすることで、新規にアプリケーションをインストールすることができるかを判定するものであった。Ｓ５０５およびＳ５０６が、この当該制御を実現している。
【００８２】
尚、ジョブを発行した場合、プラットフォーム部２０がアプリケーションを実行して当該ジョブを監視・制御する必要がある。（例えば、ジョブが正常に進行しているか否かを監視したり、エラー終了した場合のＧＵＩデータを生成する。）このような状態の場合には、上記説明した処理（アプリケーションの切替）をプラットフォーム部２０は実施しないように制御することが望ましい。この場合、ユーザインターフェース１２４は、タブ２０１あるいはタブ２０２、タブ２０３を網掛けに表示（反転して指示できなよう表示）する。
【００８３】
このように、本実施形態によれば、非アクティブなアプリケーションをメモリ使用量の少ない状態に制御する。アプリケーションのインストール時には、最大で使用するメモリ量（最大メモリ使用量）に加えて、前記メモリ使用量の少ない状態のメモリ量（最低限メモリ使用量）を加味する。従来、全てのアプリケーションの最大メモリ使用量の総和（積算値）だけを参照してインストールを制限していたが、本実施形態によれば、より多くのアプリケーションをインストールし運用することができる。
【００８４】
尚、本実施形態では、ジョブの実行に伴い生ずる一時データ記憶に要する直接記憶部１２２の容量は、アプリケーションの最大メモリ使用量や最低限メモリ使用量には含まないものとして説明した。しかし、当該一時データの記憶に要する容量を、アプリケーションのメモリ使用量として計上する、すなわち最大メモリ使用量や最低限メモリ使用量に含めるようにしてもよい。
【００８５】
ユーザインターフェース１２４を介しユーザからジョブの開始指示を受信した場合には、プラットフォーム部２０はアプリケーションを実行して、印刷装置１１や画像処理装置１２にジョブを発行する。この場合、ジョブの実行に伴い生ずる一時データの容量は、当該アプリケーションの最大メモリ使用量に含めることができる。
【００８６】
また、ユーザ操作に関係なく、プラットフォーム部２０がアプリケーションを自動的あるいは定期的に実行する場合がある。例えば、外部インターフェース１２５を介して、定期的に別体の機器に情報を送信したり、あるいは別体の機器より文書を受信してこれを出力したりする。この場合、ジョブの実行に伴い生ずる一時データの容量は、当該アプリケーションの最低限メモリ使用量に含めることができる。
【００８７】
本実施形態を、上記のアプリケーションプラットフォームに限らず、アプリケーションプラットフォームを制御するアプリケーションとして実装しても良い。
【００８８】
また、本実施形態では、直接記憶部１２２に余裕がない場合には、直接記憶部１２２を最大メモリ使用量の分使用できるアプリケーションを、ただひとつにするよう制御する例を説明した。
【００８９】
上記の例は、あくまでも一例であり、直接記憶部１２２を最大メモリ使用量の分使用できるアプリケーションの数をｋ（複数）個とするよう制御しても良い。このような場合には、本実施形態において、以下のように処理が行われても良い。
【００９０】
すなわち、本実施形態において、ｋ個のアクティブなアプリケーションが、直接記憶部１２２を最大メモリ使用量の分、使用可能に制御されても良い。
【００９１】
また、Ｓ４０３において、プラットフォーム部２０が、総和を計算する際に、ｋ個のアプリケーションの最大メモリ使用量と、それ以外のアプリケーションの最低限メモリ使用量との総和が計算されても良い。
【００９２】
また、Ｓ４０３において、プラットフォーム部２０が、総和を計算する際に、以下のようにして、総和を計算しても良い。すなわち、まず、Ｓ４０３において、プラットフォーム部２０は、アプリケーションの最大メモリ使用量と最低限メモリ使用量との差が大きいものから順にｋ個のアプリケーションが選択される。そして、Ｓ４０３において、プラットフォーム部２０が、そのｋ個のアプリケーションの最大メモリ使用量と、それ以外のアプリケーションの最低限メモリ使用量との総和が計算されても良い。
【００９３】
例えば、以下のようなアプリケーション１〜３が存在するとする。この場合に、アプリケーション１では、最大メモリ使用量が１０で、最低限メモリ使用量が０であるとする。また、アプリケーション２では、最大メモリ使用量が１０で、最低限メモリ使用量が１であるとする。また、アプリケーション３では、最大メモリ使用量が１０で、最低限メモリ使用量が９であるとする。
【００９４】
このとき、アプリケーション１の最大メモリ使用量と、最低限メモリ使用量との差は、１０−０＝１０である。また、アプリケーション２の最大メモリ使用量と、最低限メモリ使用量との差は、１０−１＝９である。また、アプリケーション３の最大メモリ使用量と、最低限メモリ使用量との差は、１０−９＝１である。
【００９５】
このとき、アプリケーションの最大メモリ使用量と最低限メモリ使用量との差が大きいものから順にｋ＝２個のアプリケーション１とアプリケーション２が選択される。そして、Ｓ４０３において、そのｋ＝２個のアプリケーション１とアプリケーション２の最大メモリ使用量とそれ以外のアプリケーション３の最低限メモリ使用量との総和（１０＋１０＋９＝２９）が計算される。
【００９６】
上記の例は、あくまでも一例であり、直接記憶部１２２を最大メモリ使用量の分使用できるアプリケーションの数ｋ（複数）は、変動する値であっても良い。このような場合には、本実施形態において、以下のように処理が行われてｋの値が確定されても良い。
【００９７】
まず、ｋ＝Ｎ（Ｎは、アプリケーションの総数）−１とされる。そして、最大メモリ使用量と最低限メモリ使用量との差が最も大きいものから順にｋ個のアプリケーションが選択される。そして、選択されたｋ個のアプリケーションの最大メモリ使用量と、残りのアプリケーションの最低限メモリ使用量との和が計算されて総和とされる。この総和が、容量を超えていた場合には、ｋ＝Ｎ−２とされる。以上の処理が、計算される総和が、容量未満となるまで繰り返され、ｋが確定される。
【００９８】
例えば、以下のようなアプリケーション１〜３が存在するとする。この場合に、アプリケーション１では、最大メモリ使用量が１０で、最低限メモリ使用量が０であるとする。また、アプリケーション２では、最大メモリ使用量が１０で、最低限メモリ使用量が１であるとする。また、アプリケーション３では、最大メモリ使用量が１０で、最低限メモリ使用量が９であるとする。そして、Ｎ（アプリケーションの総数）＝３である。
【００９９】
このとき、アプリケーション１の最大メモリ使用量と、最低限メモリ使用量との差は、１０−０＝１０である。また、アプリケーション２の最大メモリ使用量と、最低限メモリ使用量との差は、１０−１＝９である。また、アプリケーション３の最大メモリ使用量と、最低限メモリ使用量との差は、１０−９＝１である。
【０１００】
このとき、まず、アプリケーションの最大メモリ使用量と最低限メモリ使用量との差が大きいものから順にｋ＝Ｎ−１＝３−１＝２個のアプリケーション１とアプリケーション２が選択される。そして、Ｓ４０３において、そのｋ＝２個のアプリケーション１とアプリケーション２の最大メモリ使用量とそれ以外のアプリケーション３の最低限メモリ使用量との総和（１０＋１０＋９＝２９）が計算される。この総和（＝２９）が、容量を超えている場合には、ｋ＝Ｎ−２＝３−２＝１個の最大メモリ使用量と最低限メモリ使用量との差が最も大きいアプリケーション１が選択される。そして、Ｓ４０３において、そのｋ＝１個のアプリケーション１の最大メモリ使用量と、それ以外のアプリケーション２とアプリケーション３の最低限メモリ使用量との総和（１０＋１＋９＝２０）が計算される。この総和（＝２０）が、容量を超えない（容量未満である）場合には、ｋ＝１と定められる。
【０１０１】
＜実施形態２＞
実施形態１では、アプリケーションのインストール時に、インストール対象のアプリケーションの最大メモリ使用量の総和が、プラットフォーム部２０で利用可能なメモリを超えると判定される場合に、以下の処理が行われる。すなわち、最低限メモリ使用量を考慮してインストール可否が判定される。
【０１０２】
本実施形態では、アプリケーションのインストール時ではなく、アプリケーションの起動時に、起動対象のアプリケーションの最低限メモリ使用量を考慮し、起動可否を判定する例を説明する。
【０１０３】
図６は、本実施形態において、プラットフォーム部２０がアプリケーションをインストールする際の処理手順を示したフローチャートである。
【０１０４】
図６のＳ６０１は、図４に示されているＳ４０５の処理と同様である。  
図７は、本実施形態において、プラットフォーム部２０がアプリケーションを起動する際の処理手順を示したフローチャートである。
【０１０５】
ユーザインターフェース１２４は、アプリケーションの起動指示を受信すると、プラットフォーム部２０に通知する。これにより、プラットフォーム部２０は、以下の処理を実行する。
【０１０６】
まず、プラットフォーム部２０は、アプリケーション管理データ３００のデータ項目３０３が“起動”であるアプリケーションと、起動させようとしているアプリケーション（起動対象のアプリケーション）の最大メモリ使用量の総和を計算する（Ｓ７０１）。
【０１０７】
次に、プラットフォーム部２０は、Ｓ７０１で計算された最大メモリ使用量の総和が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を越えるか否かを判定する（Ｓ７０２）。
【０１０８】
Ｓ７０２において、Ｓ７０１で計算された最大メモリ使用量の総和が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えると判定される場合には、Ｓ７０３に処理が進む。
【０１０９】
一方、Ｓ７０２において、Ｓ７０１で計算された最大メモリ使用量の総和が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えないと判定される場合には、Ｓ７０５に処理が進む。尚、プラットフォーム部２０は、Ｓ７０２の判定結果を直接記憶部１２２に記憶しておく。
【０１１０】
プラットフォーム部２０は、アプリケーション管理データ３００のデータ項目３０３が“起動”であるアプリケーションと、起動させようとしているアプリケーションのそれぞれについて、次の値を計算する（Ｓ７０３）。すなわち、プラットフォーム部２０は、あるアプリケーションの最大メモリ使用量とそれ以外のアプリケーションの最低限メモリ使用量の総和を計算する。ここで、Ｓ７０３で計算される総和は、図４のＳ４０３で計算される総和と同様に計算されても良い。
【０１１１】
プラットフォーム部２０は、Ｓ７０３で算出された総和のうちで最も大きな値が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量（メモリ総量）を越えるか否かを判定する（Ｓ７０４）。
【０１１２】
Ｓ７０４において、Ｓ７０３で算出された総和のうちで最も大きな値が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えると判定される場合には、当該アプリケーション起動させずに処理を終了する。
【０１１３】
一方、Ｓ７０４において、Ｓ７０３で算出された総和のうちで最も大きな値が、プラットフォーム部２０で利用可能な直接記憶部１２２の容量を超えないと判定される場合にはＳ７０５に処理が進む。
【０１１４】
次に、プラットフォーム部２０は、当該アプリケーションを起動する（Ｓ７０５）。
【０１１５】
このように、本実施形態によれば、メモリ容量に起因するアプリケーション導入の制限をアプリケーションの起動時に実施する。
【０１１６】
プラットフォーム部２０がインストールしたアプリケーションは、間接記憶部１２３に記憶される。間接記憶部１２３は、ＨＤＤ等により実現でき、低コストであって、直接記憶部１２２と比較してはるかに大容量にすることができる。このため、直接記憶部１２２の容量による制限を、アプリケーションのインストール時にではなく、アプリケーションの起動時に実施することができる。
【０１１７】
機器を運用する際、外部インターフェース１２５を介した別体の機器との通信を常設しない場合もある。例えば、初期設置時に、事前にアプリケーションのインストールまでを行っておき、後にメモリの増設を実施した後で当該アプリケーションを起動することができる。いちいち通信手段を設置する手間が省けるため、運用上の利便性を向上させることができる。
【０１１８】
上記の図４および図７に示されている処理によれば、インストール又は起動対象のアプリケーションを、アプリケーションのアプリケーションプラットフォームでインストール又は起動するか否かを決定することができる。また、上記の図４および図７に示されている処理によれば、インストール又は起動対象のアプリケーションを決定するときに、プラットフォーム部２０は、以下の処理を行うことができる。すなわち、プラットフォーム部２０は、既にインストール又は起動されている複数のアプリケーションの夫々の最大メモリ使用量と最低限メモリ使用量を参照することができる。さらに、プラットフォーム部２０は、インストール又は起動対象のアプリケーションの最大メモリ使用量と最低限メモリ使用量とを参照することができる。ここで、一般に、インストール又は起動対象のアプリケーションの最大メモリ使用量は、インストール又は起動対象のアプリケーションの最低限メモリ使用量より多い。
【０１１９】
また、上記の図４および図７に示されている処理によれば、インストール又は起動対象のアプリケーションを決定するときに、プラットフォーム部２０は、以下の処理を行うことができる。すなわち、プラットフォーム部２０は、既にインストール又は起動されているＮ−１個のアプリケーションの夫々の最大メモリ使用量と最低限メモリ使用量とを参照することができる。さらに、このとき、プラットフォーム部２０は、１個のインストール又は起動対象のアプリケーションの最大メモリ使用量と最低限メモリ使用量とを参照することができる。このとき、プラットフォーム部２０は、以下の処理を実行することができる。すなわち、合計でＮ（＝（Ｎ−１）＋１）個のアプリケーションのうち、ｋ個のアプリケーションにおける最大メモリ使用量の総和と、Ｎ−ｋ個のアプリケーションにおける最低限メモリ使用量の総和との和が、閾値を超えるかを判定することができる。ここで、閾値とは、例えば、Ｎ個のアプリケーションがプラットフォーム部２０で利用可能なリソース量である。
【０１２０】
また、本発明に係るプラットフォーム部２０で、インストール又は起動できるアプリケーションでは、最大メモリ使用量と、最低限メモリ使用量とを宣言することができる。
【０１２１】
また、本発明に係るプラットフォーム部２０で、インストール又は起動できるアプリケーションの最大メモリ使用量は、インストール又は起動できるアプリケーションの最低限メモリ使用量より多くても良い。また、本発明に係るプラットフォーム部２０で、インストール又は起動できるアプリケーションの最大メモリ使用量と、最低限メモリ使用量とが対象としているリソースは同じでも良い。
【０１２２】
本発明に係るプラットフォーム部２０で、インストール又は起動できるアプリケーションの最大メモリ使用量は、アプリケーションが最大メモリ使用量消費可能状態の際に使用するリソースの量であっても良い。
【０１２３】
また、本発明に係るプラットフォーム部２０で、インストール又は起動できるアプリケーションの最低限メモリ使用量は、アプリケーションが最低限メモリ使用量消費状態の際に使用するリソースの量であっても良い。
【０１２４】
＜実施形態３＞
前述の実施形態１では、図５のＳ５０４において、最低限メモリ使用量消費状態に遷移するアプリケーションのＧＵＩデータが直接記憶部１２２から削除される。これにより、直接記憶部１２２の空き容量をより多くすることができる。しかし、当該アプリケーションを再度、最大メモリ使用量消費可能状態（アクティブな状態）にする場合、ユーザインターフェース１２４には当該アプリケーションの初期状態の画面が表示される。
【０１２５】
本実施形態では、最低限メモリ使用量消費状態に遷移する際に削除されるＧＵＩデータを保存しておき、最大メモリ使用量消費可能状態に復帰する場合に、ユーザインターフェース１２４における画面表示が復元される。
【０１２６】
図８は、本実施形態における、アクティブなアプリケーションを切り替える際の、プラットフォーム部２０の処理手順を示すフローチャートである。
【０１２７】
Ｓ８０１とＳ５０１、Ｓ８０２とＳ５０２、Ｓ８０３とＳ５０３、Ｓ８０５とＳ５０４、Ｓ８０６とＳ５０５、Ｓ８０８とＳ５０６はそれぞれ同様の処理である。ただし、Ｓ８０５では、最低限メモリ使用量消費状態へ遷移させるアプリケーションのＧＵＩデータが、直接記憶部１２２から削除される。
【０１２８】
プラットフォーム部２０は、最大メモリ使用量消費可能状態から最低限メモリ使用量消費状態へ遷移させるアプリケーションのＧＵＩデータを、直接記憶部１２２から取得し間接記憶部１２３に保存する（Ｓ８０４）。このとき、間接記憶部１２３における当該ＧＵＩデータを保存された場所（ＧＵＩデータの保存場所）が、直接記憶部１２２に記憶される。ここで、ＧＵＩデータとは、ＧＵＩが表示する内容と、ＧＵＩの設定の内容とを含むデータである。
【０１２９】
プラットフォーム部２０は、最低限メモリ使用量消費状態から最大メモリ使用量消費可能状態へ遷移させるアプリケーションについて、以下の処理を実行する。すなわち、プラットフォーム部２０は、直接記憶部１２２に記憶されているＧＵＩデータの保存場所に基づいて、間接記憶部１２３より、ＧＵＩデータを取得する（Ｓ８０７）。そして、このＧＵＩデータが直接記憶部１２２に記録され、ＧＵＩデータが復元される。
【０１３０】
このように、本実施形態によれば、アプリケーションを最低限メモリ使用量消費状態へ遷移させる際に、当該アプリケーションのＧＵＩデータが削除されても、再度、最大メモリ使用量消費可能状態に遷移した場合に、元の状態に復元することができる。これにより、ユーザ利便性を損うことなく、メモリを効率的に利用することができる。
【０１３１】
尚、複合機の様に、認証管理を成すことが可能な機器においては、ユーザのログアウトが生じた場合、間接記憶部１２３に記憶した各アプリケーションのＧＵＩデータを削除することもできる。これにより、ユーザがユーザインターフェース１２４を操作した結果生じる画面（ＧＵＩデータ）を、他のユーザに見られてしまうことを防止する。
【０１３２】
＜実施形態４＞
前述の実施形態１では、印刷装置１１や画像処理装置１２がジョブを実行することにより生ずる一時データを記憶するための容量は、最大メモリ使用量や最低限メモリ使用量に含まれない。
【０１３３】
本実施形態では、ジョブの実行に伴い生ずる一時データが、アプリケーションの最大メモリ使用量や最低限メモリ使用量に含められる。
【０１３４】
ユーザインターフェース１２４を介しユーザからジョブの開始指示を受信した場合には、プラットフォーム部２０は、アプリケーションを実行して、印刷装置１１や画像処理装置１２にジョブを発行する。この場合、ジョブの実行に伴い生ずる一時データの容量は、当該アプリケーションの最大メモリ使用量に含まれる。
【０１３５】
また、ユーザ操作に関係なく、プラットフォーム部２０がアプリケーションを自動的あるいは定期的に実行する場合がある。例えば、外部インターフェース１２５を介して、定期的に別体の機器に情報を送信したり、あるいは別体の機器より文書を受信してこれを出力したりする。この場合、ジョブの実行に伴い生ずる一時データの容量は、当該アプリケーションの最低限メモリ使用量に含まれる。
【０１３６】
なお、上述した実施形態において、最大メモリ使用量や最低限メモリ使用量などのリソース使用量を区別するために、最大メモリ使用量や最低限メモリ使用量を「第１のリソース使用量」や「第２のリソース使用量」と呼んでも良い。
【０１３７】
また、上述した実施形態において、第１のリソース使用量は、アプリケーションが第１の状態の際に使用するリソースの量であっても良いし、第２のリソース使用量は、アプリケーションが第２の状態の際に使用するリソースの量であっても良い。
【０１３８】
また、上述した実施形態において、複数の遷移を区別するために、「第１の遷移」や「第２の遷移」と呼んでも良い。
【０１３９】
また、上述した実施形態において、「Ｎ個」、「Ｎ−１個」、「ｋ個」等の記載において、Ｎやｋは、任意の整数を意味する。
【０１４０】
＜上記以外の実施形態＞
本発明は、さらに、複数の機器（例えばコンピュータ、インターフェース機器、リーダ、プリンタなど）から構成されるシステムに適用することも、一つの機器からなる装置（複合機、プリンタ、ファクシミリ装置など）に適用することも可能である。
【０１４１】
また本発明の目的は、上述した実施形態で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、システムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が、そのプログラムコードを読出し実行することによっても達成される。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶／記録したコンピュータ読み取り可能な記憶媒体も本発明の一つを構成することになる。
【０１４２】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【０１４３】
また、前述した実施形態の機能は、コンピュータが、読み出したプログラムを実行することによって実現される。また、このプログラムの実行とは、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部または全部を行う場合も含まれる。
【０１４４】
さらに、前述した実施形態の機能は、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットによっても実現することもできる。この場合、まず、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行う。こうした機能拡張ボードや機能拡張ユニットによる処理によっても前述した実施形態の機能が実現される。
【図面の簡単な説明】
【０１４５】
【図１】画像形成装置を示す図である。
【図２】ユーザインターフェースの表示例を示す図である。
【図３】アプリケーションの管理情報を示す図である。
【図４】処理手順を示すフローチャートである。
【図５】処理手順を示すフローチャートである。
【図６】処理手順を示すフローチャートである。
【図７】処理手順を示すフローチャートである。
【図８】処理手順を示すフローチャートである。
【符号の説明】
【０１４６】
１  画像形成装置
１１  印刷装置
１２  画像処理装置
２０  プラットフォーム部
１２１  ＣＰＵ
１２３  間接記憶部
１２４  ユーザインターフェース
１２５  外部インターフェース
【図１】
2010117838.tif 000003
【図２】
2010117838.tif 000004
【図３】
2010117838.tif 000005
【図４】
2010117838.tif 000006
【図５】
2010117838.tif 000007
【図６】
2010117838.tif 000008
【図７】
2010117838.tif 000009
【図８】
2010117838.tif 000010