(58)【調査した分野】(Int.Cl.,DB名)
前記動作判断部は、各動作モードにおいて、動作可能なプログラムの数だけ、前記応用プログラムのリソース量のうち上位の使用量を合算した値が、前記リソース情報取得部で取得した値以下である場合に、前記動作させたい応用プログラムをインストール又は起動可能と判断することを特徴とする請求項1に記載の情報処理装置。
前記動作判断部は、新たな応用プログラムをインストールするときに前記応用プログラムが動作するか否かを判断し、当該新たな応用プログラムをインストールするか否かを決定することを特徴とする請求項3に記載の情報処理装置。
情報処理装置に新たな応用プログラムをインストールする際に、当該新たな応用プログラムおよび当該情報処理装置に既にインストールされている応用プログラムについて、使用者が当該情報処理装置の操作を行なう操作部を使用して動作するときと当該操作部を使用しないで動作するときとで必要なリソース量を取得するリソース情報取得部と、
取得した前記リソース量を基にして、前記新たな応用プログラムおよび前記情報処理装置に既にインストールされている応用プログラムが動作するか否かを判断する動作判断部と、
を備え、
前記動作判断部は、前記応用プログラムの各々が前記操作部を使用して動作するときに使用するリソース量のうち最大値と、全ての応用プログラムが当該操作部を使用しないで動作するときに使用するリソース量との総計が、前記情報処理装置で使用可能なリソース量以下である場合に、当該応用プログラムがインストール又は起動可能と判断することを特徴とする応用プログラム導入装置。
【発明を実施するための形態】
【0015】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【0016】
図1は、本実施の形態の情報処理装置の一例である画像形成装置のハードウェア構成例を示した図である。
図示するように、画像形成装置10は、CPU11と、RAM(Random Access Memory)12と、ROM(Read Only Memory)13と、HDD(Hard Disk Drive)14と、操作パネル15と、画像読取部16と、画像形成部17と、通信I/F18とを備える。
【0017】
CPU11は、ROM13、HDD14等に記憶された各種アプリケーションプログラム(応用プログラム)をRAM12にロードして実行することにより、画像形成装置10が有するコピー機能やファクシミリ機能等の各機能を実現する。
RAM12は、CPU11の作業用メモリ等として用いられるメモリである。本実施の形態では、RAM12は、アプリケーションプログラムを記憶する記憶部として機能する。
ROM13は、CPU11が実行する各種プログラム等を記憶するメモリである。
HDD14は、画像読取部16が読み取った画像データや画像形成部17における画像形成にて用いる画像データ等を記憶する例えば磁気ディスク装置である。本実施の形態では、CPU11によりアプリケーションプログラムのインストール(導入)が行なわれると、HDD14にこのアプリケーションプログラムが記憶される。
詳しくは後述するが、本実施の形態では、CPU11、RAM12、ROM13、HDD14は、画像形成装置10を動作させるためのアプリケーションプログラムについて、動作しているアプリケーションプログラムおよび動作させたいアプリケーションプログラムについて、複数の動作モード毎に使用する必要なリソース量を取得する応用プログラム情報取得部として機能する。また取得したリソース量を基にして、アプリケーションプログラムが動作するか否かを判断する動作判断部として機能する。取得するリソース量は、例えば、操作パネル15を使用して動作するときと操作パネル15を使用しないで動作するときに必要なリソース量である。
【0018】
操作パネル15は、各種情報の表示やユーザからの操作入力の受付を行う例えばタッチパネルである。本実施の形態では、操作パネル15は、自装置の操作を行なう操作部として機能する。
画像読取部16は、画像情報を読み取る画像情報読み取り手段の一例であり、紙等の記録媒体に記録された画像を読み取る。ここで、画像読取部16は、例えばスキャナであり、光源から原稿に照射した光に対する反射光をレンズで縮小してCCD(Charge Coupled Devices)で受光するCCD方式や、LED光源から原稿に順に照射した光に対する反射光をCIS(Contact Image Sensor)で受光するCIS方式のものを用いるとよい。
【0019】
画像形成部17は、記録媒体(記録材、用紙)に画像の形成を行なう印刷機構の一例である。ここで、画像形成部17は、例えばプリンタであり、感光体に付着させたトナーを記録媒体に転写して像を形成する電子写真方式や、インクを記録媒体上に吐出して像を形成するインクジェット方式のものを用いるとよい。
通信I/F18は、直接またはネットワークを介して他の装置との間で各種情報の送受信を行う。ここでネットワークは、例えば、LAN(Local Area Network)やインターネットである。
【0020】
ここで近年、組み込み機器である画像形成装置10に対しても、アプリケーションプログラムを追加インストールする仕組みが導入され始めている。アプリケーションプログラムを追加インストールすることで、画像形成装置10の機能を後から拡張することができる。この機能は、例えば、ユーザを認証する認証機能や、外部Webサービスにアクセスする機能などである。
しかし複数のアプリケーションを使用する場合、組み込み機器ゆえにRAM12等のリソース上の制約からアプリケーションプログラムが動作しない場合がある。またアプリケーションプログラムを起動(動作)させることで、メモリ不足が生じて画像形成装置10の動作が不安定になり、画像形成装置10の本来の機能であるコピー機能やファクシミリ機能等の動作に影響を与える場合がある。
【0021】
そこで本実施の形態では、アプリケーションプログラムの動作モードによって、画像形成装置10で使用するRAM12のリソース量が大きく変化することに着目し、以下の方法により上記問題が生じるのを抑制し、ユーザの利便性の向上を図っている。動作モードとしては、例えば、アプリケーションプログラムが操作パネル15を使用して動作する場合と操作パネル15を使用せずにバックグラウンドで動作する場合とのように機能差によるモードや、アプリケーションの処理速度が高速の場合、通常の場合、低速の場合のように処理速度(動作速度)差によるモード等がある。ここで本実施の形態では、動作判断部が、アプリケーションプログラムをインストールするか否かを決定する。
【0022】
[第1の実施の形態]
図2は、第1の実施の形態における動作判断部の機能構成例を示したブロック図である。ここで
図2では、動作判断部が有する種々の機能のうちアプリケーションプログラムをインストールするか否かを決定する機能に関する部分について図示している。
図示するように動作判断部は、追加のアプリケーションプログラム(新たなアプリケーションプログラム)をインストールする要求を受け付けるインストール受付部101と、画像形成装置10のリソース情報を取得するリソース情報取得部102と、既にインストールされている各アプリケーションプログラムおよび追加のアプリケーションプログラムに関する情報を取得するアプリケーションプログラム情報取得部103と、画像形成装置10のリソース情報とアプリケーションプログラムに関する情報を基にして、アプリケーションプログラムが動作するか否かを判断し、追加のアプリケーションプログラムをインストールするか否かを決定する判断部104と、判断部104により決定された決定結果を送信する判断結果送信部105と、インストールが可能であると判断された場合にインストール処理を実行するインストール実行部106とを備える。
【0023】
次に、第1の実施の形態における動作判断部の動作について説明する。
図3は、第1の実施の形態における動作判断部の動作例を示したフローチャートである。
以下、
図2、
図3を使用して第1の実施の形態における動作判断部の動作の説明を行なう。
【0024】
ここでは、アプリケーションプログラムの動作モードが3つあり、各動作モード(それぞれ動作モード1、動作モード2、動作モード3とする)で同時に動作可能なアプリケーションプログラムの数が、動作モード1では2つ、動作モード2では3つ、動作モード3では数に制限が無い、という場合について例示して説明する。なお、1つのアプリケーションプログラムが同時に複数動作する場合はないものとする。このような動作モードの例としては、アプリケーションプログラムの処理速度が、高速で動作する場合(動作モード1)、通常の速度で動作する場合(動作モード2)、低速で動作する場合(動作モード3)のような場合である。一般にRAM12等のリソースの使用量を多くするほど、処理速度は速くなる。また、RAM12等のリソース資源が限られていることから、上位のモード(より高速のモード)で動作するアプリケーションプログラムの数は少なく制限される。
【0025】
今、アプリケーションプログラムB、アプリケーションプログラムC、アプリケーションプログラムD、アプリケーションプログラムE、アプリケーションプログラムF、アプリケーションプログラムG、アプリケーションプログラムH(以下、それぞれ「アプリB」、「アプリC」、「アプリD」、「アプリE」、「アプリF」、「アプリG」、「アプリH」と言う)がインストール済みであり、アプリケーションプログラムA(以下、「アプリA」と言う)を追加してインストールする場合について例示する。なお以下、それぞれのアプリケーションプログラムを区別しないときは、単に「アプリ」と言うことがある。
【0026】
まずインストール受付部101が、インストーラから追加したいアプリAをインストールする要求を受け付ける(ステップ301)。このときインストール受付部101は、アプリAのインストールの要求とともにアプリAの実行ファイルと定義ファイルを受け取る。このインストーラは、本実施の形態では、通信I/F18(
図1参照)に接続されるパーソナルコンピュータ(PC)等の外部装置で動作するプログラムである。ただし画像形成装置10で動作するアプリの1つとすることもできる。
【0027】
次にリソース情報取得部102が、画像形成装置10においてアプリを動作させるためのリソース情報を取得する(ステップ302)。具体的には、リソース情報としてリソース情報取得部102は、アプリケーションフレームワークバージョン(以下、「FW−ver」と記載する)を取得する。またリソース情報取得部102は、さらに画像形成装置10のRAM12においてアプリを動作させるために使用できる最大のメモリサイズ(以下、「FW−mem」と記載する)を取得する。つまり、「FW−mem」は、アプリAのインストール要求があったときにアプリを動作させるために用意できる最大のメモリサイズである。
【0028】
そしてアプリケーションプログラム情報取得部103が、アプリAの情報を取得する(ステップ303)。具体的には、アプリAの情報として、アプリケーションプログラム情報取得部103は、アプリAの定義ファイルからアプリAが動作可能なアプリケーションフレームワークバージョン(以下、「A−enableFW−ver」と記載する)を取得する。さらにアプリケーションプログラム情報取得部103は、アプリAの定義ファイルから、アプリAの各動作モードでのRAM12の使用量を取得する。
【0029】
次に判断部104が、「FW−ver」と「A−enableFW−ver」とを比較し、アプリAが動作可能なバージョンであるか否かを判断する(ステップ304)。具体的には、「FW−ver」≧「A−enableFW−ver」であるか否かを判断する。
【0030】
そして「FW−ver」<「A−enableFW−ver」であった場合(アプリAが動作可能なバージョンでない場合)(ステップ304でNo)、判断部104は、アプリAがインストール不可であると決定し、インストーラに対し、判断結果送信部105を通じ、アプリAがインストール不可である旨を送信する(ステップ305)。
【0031】
一方、「FW−ver」≧「A−enableFW−ver」であった場合(アプリAが動作可能なバージョンである場合)(ステップ304でYes)、アプリケーションプログラム情報取得部103は、インストール済みのアプリの情報を取得する(ステップ306)。具体的には、アプリケーションプログラム情報取得部103は、インストール済みのアプリB、アプリC、アプリD、アプリE、アプリF、アプリG、アプリHについてそれぞれの定義ファイルを取得し、各アプリの各動作モードでのRAM12の最大使用量を取得する。RAM12での最大使用量とは、アプリが各動作モードで動作している間のメモリ消費量のうち予想される最大値(ピーク値)のことである。
【0032】
そして判断部104は、取得した各アプリの情報を基にして、アプリAがインストール可能であるか否かを判断する(ステップ307)。
より具体的には、以下の処理を行なう。
【0033】
まずアプリAを含めた全てのアプリについて、RAM12の最大使用量が多い上位のものを各動作モードにおいて予め定められた数だけ選択し、そして選択されたアプリの各動作モードにおけるRAM12の最大使用量の合計値を算出する。
【0034】
これにはまず動作モード1でのRAM12の最大使用量が多い上位2つのアプリについて、RAM12の最大使用量の合計値を算出する。即ちこの場合、RAM12の最大使用量が多い上位のアプリを動作モード1において動作可能な数だけ選択し、そして選択されたアプリの動作モード1におけるRAM12の最大使用量の合計値を算出する。
今、アプリBとアプリCの動作モード1でのRAM12の最大使用量が、それぞれ「B−mem−mode1」と「C−mem−mode1」で、これらが上位2つであった場合、合計値である「B−mem−mode1」+「C−mem−mode1」を「Max−mem−mode1」とする。
【0035】
次に動作モード2について、動作モード2でのRAM12の最大使用量が多い上位3つ(動作モード2で動作可能なアプリの数)のアプリについて、RAM12の最大使用量の合計値を算出する。
今、アプリAとアプリB、それにアプリEが動作モード2での上位3つであった場合は、それらの合計値を、「Max−mem−mode2」(=「A−mem−mode2」+「B−mem−mode2」+「E−mem−mode2」)とする。
【0036】
次に動作モード3について、RAM12の最大使用量が多いアプリを全てのアプリの数から動作モード1と動作モード2で動作できるアプリの数を引いた数だけ選択し、これらのアプリについて、RAM12の最大使用量の合計値を算出する。今の例の場合、全アプリの数が8つで、動作モード1で動作できるアプリの数が2つ、動作モード2では3つであるので、選択するアプリの数は、8−(2+3)=3となる。よって動作モード3でのRAM12の最大使用量が多い上位3つのアプリについて、RAM12の最大使用量を合算する。今、アプリAとアプリBとアプリEが上位の3つであった場合は、それらの合計値を「Max−mem−mode3」(=「A−mem−mode3」+「B−mem−mode3」+「E−mem−mode3」)とする。
【0037】
そして、算出された「Max−mem−mode1」、「Max−mem−mode2」、「Max−mem−mode3」を基に、アプリAがインストール可能であるか否かを判断する。
具体的には、各動作モードで動作する最大のRAM12の使用量の合計がFW−mem以下であるかを判断する。即ち、「Max−mem−mode1」+「Max−mem−mode2」+「Max−mem−mode3」≦「FW−mem」であるか否かを判断する。
【0038】
そして「Max−mem−mode1」+「Max−mem−mode2」+「Max−mem−mode3」≦「FW−mem」であった場合(インストール可能である場合)(ステップ307でYes)、判断部104は、アプリAがインストール可能であると決定し、インストール実行部106がアプリAのインストール処理を行なう(ステップ308)。そしてインストール処理が終了すると、インストーラに対し、判断結果送信部105を通じ、アプリAのインストールが終了した旨を送信する(ステップ309)。
【0039】
一方、「Max−mem−mode1」+「Max−mem−mode2」+「Max−mem−mode3」>「FW−mem」であった場合(インストール不可である場合)(ステップ307でNo)、判断部104は、アプリAがインストール不可であると決定し、インストーラに対し、判断結果送信部105を通じ、アプリAがインストール不可である旨を送信する(ステップ305)。
【0040】
なお上述した場合は動作モードが3つの場合であったが、動作モードがそれ以上存在する場合でも同様な方法で判断することができる。
【0041】
[第2の実施の形態]
第2の実施の形態では、アプリの動作モードとして動作モード1と動作モード2があり、1つのアプリが動作モード1で動作するときには、他のアプリは、動作モード2でしか動作できないものとする。ただし、1つのアプリは複数の動作モードで同時に動作するものとする。つまり、1つのアプリが動作モード1と動作モード2で同時に動く場合もあるとする。このような動作モードの一例として、以下ではアプリが、操作パネル15を使用して動作するとき(動作モード1)と、使用しないでバックグラウンドで動作するとき(動作モード2)、という例で説明する。操作パネル15が1つであることから、操作パネル15を使用した動作モード1のアプリは1つしか動作しない。また、各動作モードでの使用最大メモリ量が各アプリの定義ファイルに記述されているものとする。
【0042】
以下、第2の実施の形態における動作判断部の動作について説明する。
なお第2の実施の形態における動作判断部の機能構成は、
図2の場合と同様である。また第2の実施の形態における動作判断部の動作例についても
図3と同様である。
以下、
図2、
図3を使用して第2の実施の形態における動作判断部の動作の説明を行なう。
【0043】
第2の実施の形態において、ステップ301〜305は、第1の実施の形態と同様である。なおステップ303において、アプリケーションプログラム情報取得部103は、アプリAの定義ファイルから、アプリAの各動作モードでのRAM12の使用量を取得する。このとき取得するRAM12の使用量は、アプリAが、操作パネル15を使用して動作するときのRAM12の使用量(以下、「A−mem−full」と記載する)と、操作パネル15を使用しないで動作するとき(バックグラウンドで動作するとき)のRAM12の使用量(以下、「A−mem−limited」と記載する)である。
【0044】
以下、ステップ306以降の処理について説明を行なう。
「FW−ver」≧「A−enableFW−ver」であった場合(アプリAが動作可能なバージョンである場合、アプリケーションプログラム情報取得部103は、(ステップ304でYes)、インストール済みのアプリの情報を取得する(ステップ306)。具体的には、アプリケーションプログラム情報取得部103は、既にインストールされている各アプリの定義ファイルを取得する。ここでは、既にインストールされているアプリとして「アプリB」、「アプリC」、「アプリD」の3つがあるとし、このアプリB、アプリC、アプリDについての定義ファイルを取得する。
【0045】
そしてアプリケーションプログラム情報取得部103は、取得した定義ファイルから既にインストールされている各アプリについて、操作パネル15を使用して動作するときのRAM12の使用量と、操作パネル15を使用しないで動作するときのRAM12の使用量を取得する。
ここでは、アプリB、アプリC、アプリDについて、操作パネル15を使用して動作するときのRAM12の使用量をそれぞれ「B−mem−full」、「C−mem−full」、「D−mem−full」とする。またアプリB、アプリC、アプリDについて、操作パネル15を使用しないで動作するときのRAM12の使用量をそれぞれ「B−mem−limited」、「C−mem−limited」、「D−mem−limited」とする。
【0046】
そして判断部104は、取得したアプリの情報を基にして、アプリAがインストール可能であるか否かを判断する(ステップ307)。
より具体的には、以下の処理を行なう。
【0047】
次に判断部104が、「A−mem−full」、「B−mem−full」、「C−mem−full」、「D−mem−full」の中から最大のものを判断する。ここではこれを「max−mem−full」とする。
【0048】
判断部104は、「max−mem−full」と、「A−mem−limited」、「B−mem−limited」、「C−mem−limited」、「D−mem−limited」の総和が「FW−mem」以下である否かを判断する。即ち、「max−mem−full」+「A−mem−limited」+「B−mem−limited」+「C−mem−limited」+「D−mem−limited」≦「FW−mem」であるか否かを判断する。
【0049】
そして「max−mem−full」+「A−mem−limited」+「B−mem−limited」+「C−mem−limited」+「D−mem−limited」≦「FW−mem」であった場合(インストール可能である場合)(ステップ307でYes)、判断部104は、アプリAがインストール可能であると決定し、インストール実行部106がアプリAのインストール処理を行なう(ステップ308)。そしてインストール処理が終了すると、インストーラに対し、判断結果送信部105を通じ、アプリAのインストールが終了した旨を送信する(ステップ309)。
【0050】
一方、「max−mem−full」+「A−mem−limited」+「B−mem−limited」+「C−mem−limited」+「D−mem−limited」>「FW−mem」であった場合(インストール不可である場合)(ステップ307でNo)、判断部104は、アプリAがインストール不可であると決定し、インストーラに対し、判断結果送信部105を通じ、アプリAがインストール不可である旨を送信する(ステップ305)。
【0051】
なおインストーラは、判断結果送信部105からアプリAのインストールが終了した旨を受信したときは、ユーザに対し、アプリAのインストールが成功したことを通知する。また判断結果送信部105からアプリAがインストール不可である旨を受信したときは、ユーザに対し、アプリAのインストールが失敗したことを通知する。またこの際に動作判断部からインストールが失敗した理由を取得し、この理由を併せてユーザに通知してもよい。
【0052】
このように第2の実施の形態では、判断部104は、ステップ307において、アプリAがRAM12を使用する上で、動作可能であるかをチェックする。ここで操作パネル15を使用して動作するアプリは、操作パネル15が1つの場合、1つとなる。また他のアプリは、バックグラウンドで動作する。そして1つのアプリが動作するとき、この1つのアプリのRAM12の使用量は、最大で、「max−mem−full」となる。そしてその他の全てのアプリを、操作パネル15を使用しないで動作(バックグラウンドで動作)させた場合でも、バックグラウンドで動作するアプリによるRAM12の使用量は、「A−mem−limited」+「B−mem−limited」+「C−mem−limited」+「D−mem−limited」を超えることはない。即ち、これらの総計である「max−mem−full」+「A−mem−limited」+「B−mem−limited」+「C−mem−limited」+「D−mem−limited」が、「FW−mem」以下であれば、「アプリA」、「アプリB」、「アプリC」、「アプリD」を全て動作させたとしてもRAM12に不足が生じることはない。
【0053】
よって、「max−mem−full」+「A−mem−limited」+「B−mem−limited」+「C−mem−limited」+「D−mem−limited」≦「FW−mem」であれば、アプリAを追加でインストールしてもRAM12が不足し、アプリが動作しない状況が生じないことがわかる。
【0054】
以上説明したように、動作判断部は、画像形成装置10を動作させるためのアプリを動作させるために必要なリソース量に関する情報を取得する。そして動作判断部は、新たなアプリをインストールするときに、操作パネル15を使用して動作するときと操作パネル15を使用しないで動作するときのリソース量を基にして、アプリが動作するか否かを判断し、新たなアプリをインストールするか否かを決定する。
【0055】
なおこのとき動作判断部は、アプリが操作パネル15を使用して動作する場合と操作パネル15を使用せずにバックグラウンドで動作する場合の例では、アプリの各々が操作パネル15を使用して動作するときに使用するリソース量のうち最大値と、全てのアプリが操作パネル15を使用しないで動作するときに使用するリソース量との総計が、画像形成装置10で使用可能なリソース量以下である場合に、アプリが動作すると判断する。
【0056】
[第3の実施の形態]
上述した例では、動作判断部において追加のアプリのインストールの可否を判断していたが、これに限られるものではなく、例えば、まずインストールを行い、その後、アプリを動作させるときに、アプリが動作できるか否かを判断してもよい。
図4は、第3の実施の形態における動作判断部の機能構成例を示したブロック図である。
図示するように本実施の形態の動作判断部は、アプリケーションプログラムを起動する要求を受け付ける起動要求受付部107と、画像形成装置10のリソース情報を取得するリソース情報取得部102と、インストールされている各アプリケーションプログラムに関する情報を取得するアプリケーションプログラム情報取得部103と、画像形成装置10のリソース情報とアプリケーションプログラムに関する情報を基にして、起動要求されたアプリケーションプログラムが動作するか否かを判断する判断部104と、判断部104により決定された決定結果を送信する判断結果送信部105とを備える。
図4の動作判断部の構成は、
図2の動作判断部の構成に比較して、インストール実行部106がなく、またインストール受付部101の替わりに起動要求受付部107が存在する。
【0057】
次に、第3の実施の形態における動作判断部の動作について説明する。
図5は、第3の実施の形態における動作判断部の動作例を示したフローチャートである。
以下、
図4、
図5を使用して第3の実施の形態における動作判断部の動作の説明を行なう。ここでは、アプリの動作モードとして、動作モード1、動作モード2、および動作モード3の3つがあり、各動作モードでアプリが動作可能な数として、動作モード1では1つ、動作モード2では2つ、動作モード3では数に制限が無い場合について例示して説明する。なお、1つのアプリは同時に複数動作する場合はないものとする。
【0058】
まず起動要求受付部107が、既にインストールされているアプリの1つ(以下、「アプリA」と記載する)をどの動作モードで起動するかの要求を受け付ける(ステップ501)。ここでアプリAは、動作モード2で動作するものとする。
【0059】
次のステップ502〜ステップ504は、
図3で説明したステップ302〜ステップ304と同様である。
【0060】
またステップ505以降は、動作判断部は、以下のような処理を行なう。
「FW−ver」<「A−enableFW−ver」であった場合(アプリAが動作可能なバージョンでない場合)(ステップ504でNo)、判断部104は、アプリAが起動不可であると決定する。そして操作パネル15に対し、判断結果送信部105を通じ、アプリAが起動不可である旨を送信する(ステップ505)。
【0061】
一方、「FW−ver」≧「A−enableFW−ver」であった場合(アプリAが動作可能なバージョンである場合)(ステップ504でYes)、アプリケーションプログラム情報取得部103は、既に起動済みの各アプリの情報を取得する(ステップ506)。具体的には、既に起動済みのアプリとして「アプリB」、「アプリC」、「アプリD」、「アプリE」、「アプリF」の5つがあるとし、さらにアプリBは動作モード1で、アプリCは動作モード2で、アプリD、アプリE、アプリFは動作モード3で動作しているものとする。この場合、アプリケーションプログラム情報取得部103は、アプリB、アプリC、アプリD、アプリE、アプリFについての定義ファイルを取得する。
【0062】
そしてアプリケーションプログラム情報取得部103は、取得した定義ファイルから既に起動済みの各アプリについて、各動作モードでのRAM12の最大使用量を取得する。
本実施の形態では、起動済みのアプリB、アプリC、アプリD、アプリE、アプリFについて、動作している各動作モードでのRAM12の最大使用量をそれぞれ取得する。ここでアプリBの動作モード1での最大使用メモリ量を、「B−mode1−mem」とし、アプリCの動作モード2での最大使用メモリ量を、「C−mode2−mem」とし、アプリD、アプリE、アプリFの動作モード3での最大使用メモリ量を、それぞれ「D−mode3−mem」、「E−mode3−mem」、「F−mode3−mem」とする。
【0063】
そして、上記のようにして取得したアプリB、アプリC、アプリD、アプリE、アプリFのRAM12の最大使用量とアプリAの動作モード2でのRAM12の最大使用量の合計が、アプリの動作可能最大メモリ量(FW−mem)以下か否かで起動可否を判断する(ステップ507)。即ち、
図3で説明したステップ307と同様である。今の例だと、「A−mode2−mem」+「B−mode1−mem」+「C−mode2−mem」+「D−mode3−mem」+「E−mode3−mem」+「F−mode3−mem」≦「FW−mem」であるか否かで起動可否を判断する。また、動作モード2で動作しているアプリが既に2つあった場合は、起動不可と判断する。
【0064】
そして「A−mode2−mem」+「B−mode1−mem」+「C−mode2−mem」+「D−mode3−mem」+「E−mode3−mem」+「F−mode3−mem」≦「FW−mem」の場合(起動可能である場合)(ステップ507でYes)、判断部104は、アプリAが起動可能であると決定し、アプリAの起動が行なわれる(ステップ508)。そして起動が終了すると、操作パネル15に対し、判断結果送信部105を通じ、アプリAの起動が終了した旨を送信する(ステップ509)。
【0065】
一方、「A−mode2−mem」+「B−mode1−mem」+「C−mode2−mem」+「D−mode3−mem」+「E−mode3−mem」+「F−mode3−mem」>「FW−mem」であった場合(起動不可である場合)(ステップ507でNo)、判断部104は、アプリAが起動不可であると決定し、操作パネル15に対し、判断結果送信部105を通じ、アプリAが起動不可である旨を送信する(ステップ505)。
【0066】
なお操作パネル15は、判断結果送信部105からアプリAの起動が完了した旨を受信したときは、ユーザに対し、アプリAの起動が成功したことを通知表示する。また判断結果送信部105からアプリAが起動不可である旨を受信したときは、ユーザに対し、アプリAの起動が失敗したことを通知表示する。
【0067】
なお上述した場合で、起動要求受付部107が、アプリを起動する要求を受け付けるのは、アプリの機能を有効にしたいときである。またユーザが操作パネル15から特定のアプリの機能を使用する操作をした場合などもある。さらに画像形成部17などの要求により特定のアプリの機能を使用したい場合などもある。
【0068】
上記の例では、起動させるアプリAの動作モードはアプリ起動時に決定しているものとしていたが、この限りではない。例えば、上位の動作モードから順に起動が可能かを試していくようなやり方をしても良い。その場合は、まず上位の動作モードである動作モード1で動作しているアプリが決められた数以下か否かを判断し、次に順次下位の動作モードで起動可能か否かを判断していき、最終的に起動可能な動作モードでメモリが足りているかを判断すれば良い。また、上位の動作モードでメモリ不足だった場合も、下位の動作モードで起動した場合はどうかを追加で判断するようなやり方をしても良い。このようなやり方は、動作モードが処理速度で決められているような場合に好適である。
【0069】
[第4の実施の形態]
第1の実施の形態では、画像形成装置10側において追加のアプリケーションプログラムのインストールの可否を判断していたが、これに限られるものではなく、例えば、インストーラの側で同様の判断を行なうこともできる。
図6は、第4の実施の形態における動作判断部の機能構成例を示したブロック図である。
図示するように本実施の形態のインストーラは、追加のアプリケーションプログラムをインストールする要求を送信するインストール要求部108と、画像形成装置10のリソース情報を取得するリソース情報取得部102と、既にインストールされている各アプリケーションプログラムおよび追加のアプリケーションプログラムに関する情報を取得するアプリケーションプログラム情報取得部103と、画像形成装置10のリソース情報とアプリケーションプログラムに関する情報を基にして、アプリケーションプログラムが動作するか否かを判断し、追加のアプリケーションプログラムをインストールするか否かを決定する判断部104と、判断部104により決定された決定結果を送信する判断結果送信部105とを備える。
図6の動作判断部の構成は、
図2の動作判断部の構成に比較して、インストール実行部106がなく、またインストール受付部101の替わりにインストール要求部108が存在する。
【0070】
次に、第4の実施の形態における動作判断部の動作について説明する。
図7は、第4の実施の形態におけるインストーラの動作例を示したフローチャートである。
以下、
図6、
図7を使用して第4の実施の形態における動作判断部の動作の説明を行なう。
【0071】
まずインストール要求部108が、追加したいアプリ(以下、「アプリA」と記載する)をインストールする要求を画像形成装置10に送信する(ステップ701)。
【0072】
次のステップ702〜ステップ704は、
図3で説明したステップ302〜ステップ304と同様である。ただし、ステップ702では、画像形成装置10から「FW−ver」と「FW−mem」を取得する。またステップ703では、インストーラの中にあるアプリAの定義ファイルから情報を取得する。
【0073】
またステップ705以降は、インストーラは、以下のような処理を行なう。
「FW−ver」<「A−enableFW−ver」であった場合(ステップ704でNo)、判断部104は、アプリAがインストール不可であると決定する(ステップ705)。
【0074】
次のステップ706〜ステップ707は、
図3で説明したステップ306〜ステップ307と同様である。ただし、ステップ706では、画像形成装置10に対してインストール済みアプリの情報取得要求を行い、情報を取得する。
【0075】
またステップ708以降は、インストーラは、以下のような処理を行なう。
インストール可であった場合(ステップ707でYes)、判断部104は、アプリAがインストール可能であると決定し、画像形成装置10にアプリAのインストール処理を要求する(ステップ708)。そして画像形成装置10でインストール処理が終了すると、インストール要求の戻りとしてインストーラ側にインストール成功が通知される(ステップ709)。
【0076】
一方、インストール不可であった場合(ステップ707でNo)、判断部104は、アプリAがインストール不可であると決定する(ステップ705)。
【0077】
なおインストーラが動作するパーソナルコンピュータ等は、アプリAのインストールが終了した旨を画像形成装置10から受信したときは、ユーザに対し、アプリAのインストールが完了したことを通知表示する。またインストーラが、アプリAがインストール不可である旨を決定したときは、ユーザに対し、アプリAのインストールが失敗したことを通知表示する。
【実施例】
【0078】
なお本発明は、その要旨を越えない限りこれらの実施例により限定されるものではない。
【0079】
(実施例1)
第2の実施の形態の場合と同様に、アプリB、アプリC、アプリDが既にインストールされており、アプリAを追加でインストールする場合を考える。
このとき、画像形成装置10のRAM12においてアプリを動作させることができる最大のメモリサイズである「FW−mem」は、100Mbyteであったとする。
またアプリA、アプリB、アプリC、アプリDについて、操作パネル15を使用して動作するときのRAM12の使用量である「A−mem−full」、「B−mem−full」、「C−mem−full」、「D−mem−full」は、以下の表1の「操作パネル使用」に示す値であったとする。さらにアプリA、アプリB、アプリC、アプリDについて、操作パネル15を使用しないで動作するときのRAM12の使用量である「A−mem−limited」、「B−mem−limited」、「C−mem−limited」、「D−mem−limited」は、以下の表1の「操作パネル不使用」に示す値であったとする。
なおアプリDについて、「D−mem−limited」が0Mbyteであるのは、アプリDが、操作パネル15を必ず使用するアプリであって、バックグラウンドで動作することはないことを意味する。
【0080】
【表1】
【0081】
ここで判断部104は、次のような計算を行なう。
つまり「max−mem−full」は、「C−mem−full」の40Mbyteであるので、「max−mem−full」+「A−mem−limited」+「B−mem−limited」+「C−mem−limited」+「D−mem−limited」=40+10+15+10+0=75Mbyteとなる。
一方、「FW−mem」=100Mbyteであるので、「max−mem−full」+「A−mem−limited」+「B−mem−limited」+「C−mem−limited」+「D−mem−limited」≦「FW−mem」の関係が成り立つ。
よってこの場合、判断部104は、アプリAがインストール可能である決定をする。
【0082】
(比較例1)
ここで各アプリが全ての機能を発揮するときのRAM12の使用量を、単に加算することで判断する従来技術の方式では、この総計は、「A−mem−full」、「B−mem−full」、「C−mem−full」、「D−mem−full」の合計となる。
よってこの総計は、30+30+40+20=120Mbyteとなるため、アプリAは、インストール不可であるという結論となる。しかしながら上述の通りアプリAをインストールしても、アプリを動作させるときに支障は生じない。よってこの方法によりアプリのインストール可否を判断するのは、ユーザに対し利便性の低下を招く結果となる。
【0083】
よって実施例1に例示される本実施の形態では、追加のアプリプログラムのインストール後に、アプリが動作しないという状況が生じにくくなる。さらに追加のアプリが動作することが保証できない場合、本実施の形態では、これをインストール不可としてインストールを中止する。そのためユーザにとっては、そうでない場合より対処がより容易であり、アプリのインストールやアンインストールを繰り返すことも生じにくくなる。よってユーザの利便性が向上する。
【0084】
なお以上詳述した例では、各アプリについて、各動作モードでのRAM12の使用量をそれぞれ取得できることが前提となっていたが、アプリの定義ファイルにRAM12の使用量が1通りしか記載されない場合もある。この場合は、全ての動作モードでこの値をRAM12の使用量として計算すれば良い。
【0085】
さらにアプリの定義ファイルにRAM12の使用量が記載されていない場合もある。これに対処する1つの方法として各動作モードでのRAM12の使用量を予め調査しておく。そしてアプリにIDを付し、そしてこのIDに対し、動作モード毎のRAM12の使用量を関連付ける対応表を作成しておく。アプリケーションプログラム情報取得部103は、アプリの定義ファイルにRAM12の使用量が記載されていない場合は、この対応表を参照してRAM12の使用量を取得する。
【0086】
または、動作モード毎のRAM12の使用量を予め定められた値として用意しておき、この値を適用することも考えられる。この予め定められた値としては、なるべく大きめの値とすることが好ましい。例えば、画像形成装置10を動作させるのに作成した過去のアプリの中で、RAM12の使用量が最大のものを、予め定められた値として選択することが考えられる。
【0087】
また、上述した例では各アプリの各動作モードでのRAM12の最大使用量を定義ファイルから取得したが、これに限られるものではない。例えば、各アプリのAPI(Application Program Interface)から各動作モードでのRAM12の最大使用量を取得する等の方法もある。
また、各動作モードで動作するアプリの数については、あらかじめ決められた数をプログラム内に保持しておいても良いし、後から変更できるように例えばHDD14内に保持しておき、その値を参照するようにしても良い。
【0088】
また上述した例では、判断部104は、ステップ306において、「FW−ver」と「A−enableFW−ver」とを比較し、「FW−ver」が「A−enableFW−ver」より新しいバージョンであるか否かを判断した。これによりまずアプリAがアプリケーションフレームワークバージョン上、動作可能であるかがチェックされる。しかし、本処理はアプリケーションフレームワークのバージョンが複数存在する場合に好適であるが、必須な処理ではない。
【0089】
なお上述した例では、リソース量は、RAM12の容量や使用量であったが、これに限られるものではなく、例えばHDD14の容量や使用量であってもよい。また、CPU11のCPUコアの使用数や使用時間等であってもよい。
また上述した例では、情報処理装置の一例として、画像形成装置10を例示して説明を行なったが、これに限られるものではなく、本実施の形態は、応用プログラムが動作する画像処理装置に対し、動作させたい応用プログラムがインストール又は起動可能か否かを判断する必要がある場合に適用が可能である。
【0090】
なお本実施の形態における動作判断部が行なう処理は、例えば、CPU11が、ROM13やHDD14に記憶された各種プログラムをRAM12にロードして実行することにより行なわれる。
【0091】
よって動作判断部が行なう処理は、コンピュータに、動作している応用プログラムおよび動作させたい応用プログラムについて、複数の動作モード毎に使用するリソース量を取得する応用プログラム情報取得機能と、取得したリソース量を基にして、動作させたい応用プログラムがインストール又は起動可能か否かを判断する動作判断機能と、を実現させ、動作判断機能の結果に基づいて動作させたい応用プログラムをインストール又は起動させることを特徴とするプログラムとして捉えることもできる。
また動作判断部が行なう処理は、コンピュータに、情報処理装置を動作させるための応用プログラムについて、操作部を使用して動作するときと操作部を使用しないで動作するときとで必要なリソース量を取得する機能と、取得したリソース量を基にして応用プログラムがインストール又は起動可能か否かを判断する機能と、を実現させるプログラムとして捉えることもできる。
【0092】
なお、本実施の形態を実現するプログラムは、通信手段により提供することはもちろん、CD−ROM等の記録媒体に格納して提供することも可能である。