JP2004005612A - System and method for obtaining resource information - Google Patents

System and method for obtaining resource information Download PDF

Info

Publication number
JP2004005612A
JP2004005612A JP2003120251A JP2003120251A JP2004005612A JP 2004005612 A JP2004005612 A JP 2004005612A JP 2003120251 A JP2003120251 A JP 2003120251A JP 2003120251 A JP2003120251 A JP 2003120251A JP 2004005612 A JP2004005612 A JP 2004005612A
Authority
JP
Japan
Prior art keywords
application
information
resource
resources
image forming
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2003120251A
Other languages
Japanese (ja)
Inventor
Hiroyuki Tanaka
田中 浩行
Tsutomu Oishi
大石 勉
Kunihiro Akiyoshi
秋吉 邦洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2003120251A priority Critical patent/JP2004005612A/en
Priority to US10/422,759 priority patent/US20030218765A1/en
Publication of JP2004005612A publication Critical patent/JP2004005612A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To obtain information related to resources used for an application. <P>SOLUTION: This device is provided with the resources for executing applications. It comprises means to obtain resource information related to the resource used for the application while the application is executed, and store the resource information in a storage device. Usage quantity of the resource used for the application may be periodically obtained, the resource information is reproduced based on the usage quantity periodically obtained, to store the resource information. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
この発明は、アプリケーションが使用するリソースに関する情報を取得するための技術に関する。
【0002】
【従来の技術】
近年では、プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を1つの筐体内に収納した画像形成装置(以下、「複合機」という。)が知られている。この複合機は、1つの筐体内に表示部、印刷部および撮像部などを設けるとともに、プリンタ、コピーおよびファクシミリ装置にそれぞれ対応した3種類のソフトウェアを設け、これらのソフトウェアを切り替えることによって、当該装置をプリンタ、コピー、スキャナまたはファクシミリ装置として動作させるものである。
【0003】
このような従来の複合機では、メモリなどの限られたリソース(資源)の範囲内でプリンタ、コピー、ファクシミリ、スキャナなどの各機能単位ですべてのアプリケーションプログラムが起動される。言い換えれば、従来の複合機では、すべてのアプリケーションプログラムを起動できる程度のリソースを用意しており、アプリケーションプログラムが起動不可能になる状況が生じる場合は想定されていない。
【0004】
【特許文献1】
特開平11−112701号公報
【0005】
【発明が解決しようとする課題】
ところで、このような従来の複合機では、プリンタ、コピー、スキャナおよびファクシミリ装置に対応するソフトウェアをそれぞれ別個に設けているため、各ソフトウェアの開発に多大の時間を要する。このため、出願人は、表示部、印刷部および撮像部などの画像形成処理で使用されるハードウェア資源を有し、プリンタ、コピーまたはファクシミリなどの各ユーザサービスにそれぞれ固有の処理を行うアプリケーションを複数搭載し、これらのアプリケーションとハードウェア資源との間に介在して、ユーザサービスを提供する際に、アプリケーションの少なくとも2つが共通的に必要とするハードウェア資源の管理、実行制御並びに画像形成処理を行う各種コントロールサービスからなるプラットホームを備えた画像形成装置(複合機)を発明した。
【0006】
このような新規な複合機では、アプリケーションの少なくとも2つが共通的に必要とするサービスを提供するコントロールサービスをアプリケーションと別個に設けた構成となっているため、アプリケーションのサイズが従来の複合機で動作するアプリケーションプログラムのサイズに比べて小さなものとなっており、アプリケーションの起動および終了が頻繁に行われる。
【0007】
このため、複合機に搭載されているメモリなどのリソースの使用状況は頻繁に変化し、すべてのアプリケーションを起動した状態とすることができない場合も生じてくる。このような状況でアプリケーションを起動しても、アプリケーションが不正に終了してしまい、複合機の動作が不安定になるという問題がある。
【0008】
また、かかる新規な複合機は、アプリケーションとコントロールサービスとを別個に設けているため、複合機の出荷後にユーザもしくは第三者であるサードベンダが新規なアプリケーションを開発して複合機に搭載可能な構成となっている。このため、複合機には、その出荷時に搭載されるコピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるアプリケーションの他、従来の複合機と異なり、このようなユーザやサードベンダが開発した新規アプリケーションなど、アプリケーションが多数起動可能となっている。コピー、プリンタ、ファクシミリ、スキャナなどの複合機であらかじめ提供されるアプリケーションの場合、限りのあるリソースを意識した構造となっているが、第三者が開発する新規アプリケーションの場合には、開発するベンダによって必ずしもリソースを意識した構造となっていない場合も考えられる。このため、限りのあるリソースの範囲内で新規アプリケーションの起動を行うと複合機が不安定になる可能性が高いという従来の複合機では問題にならなかった新規な課題が生じてくる。
【0009】
このような課題を解決するには、アプリケーションが使用するリソースの種類や量と、複合機が実際に備えているリソースに基づき、必要に応じてアプリケーションの起動制限を行なうことが必要になる。このためには、アプリケーションが使用するリソースの種類や量を取得しておく必要がある。
【0010】
この発明は上記に鑑みてなされたもので、アプリケーションが使用するリソースに関する情報を取得する技術を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記の目的を達成するために、請求項1に記載の発明は、アプリケーションを実行させるためのリソースを備えた装置であって、前記アプリケーションの実行中に、該アプリケーションが使用するリソースに関するリソース情報を取得し、該リソース情報を記憶装置に格納する取得手段を有する。
【0012】
本発明によれば、アプリケーションが実行されている際に、そのアプリケーションが使用するリソースに関する情報を取得するので、例えば、アプリケーションの起動判断のための的確な情報を取得することができる。
【0013】
請求項2に記載の発明は、請求項1の記載において、前記取得手段は、前記アプリケーションが使用するリソースの使用量を定期的に取得し、定期的に取得した使用量に基づき前記リソース情報を生成し、該リソース情報を格納するものである。
【0014】
請求項3に記載の発明は、請求項2の記載において、前記リソース情報は、定期的に取得した使用量の平均値又は最大値であるとする。
【0015】
また、請求項4に記載の発明は、請求項3の記載において、前記アプリケーションの起動から終了までの期間における前記平均値又は最大値を、起動から終了まで毎に記録しておき、前記リソース情報として、起動から終了まで毎に記録した複数の平均値の平均値又は最大値、又は、起動から終了まで毎に記録した複数の最大値の平均値又は最大値を用いるものである。
【0016】
上記の発明によれば、定期的に取得した複数の値を用いるので、1回だけ取得した値に比べてリソースの使用量として妥当な値を取得することができる。
【0017】
請求項5に記載の発明は、請求項1ないし4のうちいずれか1項の記載において、前記取得手段は、前記装置におけるプロセスが使用するリソースに関する情報を保持するシステム情報から前記アプリケーションが使用するリソースに関する情報を前記リソース情報として取得するものである。本発明によれば、効率的にリソース情報を取得できる。
【0018】
請求項6に記載の発明は、請求項1の記載において、前記装置は、予め組み込まれたソフトウェアによりサービスを提供する組み込み装置であり、前記実行されるアプリケーションは、該予め組み込まれたソフトウェアとは別に前記装置に搭載されるアプリケーションであるとしたものである。
【0019】
本発明によれば、リソース情報を用いることにより、組み込み装置にアプリケーションを追加する際に、リソース量に応じた起動判断を行うことが可能となる。
【0020】
請求項7に記載の発明は、請求項6の記載において、前記装置は画像形成装置であり、該画像形成装置は、画像形成処理におけるハードウェアリソースと、該ハードウェアリソースの制御に関するサービスを複数のアプリケーションに共通に提供するコントロールサービス部と、該コントロールサービス部をサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービス部とを備え、仮想アプリケーションサービス部は、前記取得手段を有するものである。
【0021】
本発明によれば、リソース情報を用いることにより、画像形成装置にアプリケーションを追加する際に、リソース量に応じた起動判断を行うことが可能となる。
【0022】
請求項8に記載の発明は、アプリケーションを実行させるためのリソースを備えた装置であって、前記装置に取り付けられた前記リソースとしての各機器から機器構成情報を受信し、該機器構成情報を記憶装置に格納する手段を有する装置である。
【0023】
本発明によれば、前記装置の機器構成情報を取得することが可能となる。
【0024】
請求項9に記載の発明は、請求項8の記載において、前記機器構成情報を格納したことを通知するためのメッセージを、前記装置において実行されるソフトウエアモジュールに送信する手段を有するものである。
【0025】
本発明によれば、前記装置において実行されるソフトウエアモジュールが機器構成情報が格納されていることを認識できる。そして、ソフトウエアモジュールが上記記憶装置にアクセスすることにより機器構成情報を取得できる。
【0026】
請求項10に記載の発明は、アプリケーションを実行させるためのリソースを備えた装置であって、アプリケーションが使用するリソースに関する情報を含むアプリケーション管理ファイルと、該アプリケーションが起動する際に、該アプリケーションが使用する予定のリソースに関する情報を前記アプリケーション管理ファイルから取得する取得手段とを有する装置である。
【0027】
本発明によれば、アプリケーション管理ファイルにアクセスするだけでリソースに関する情報を取得できるようになる。
【0028】
請求項11に記載の発明は、請求項10の記載において、前記アプリケーション管理ファイルは、メモリ関連の情報と、前記装置の機器構成に関する情報とを含むものである。
【0029】
本発明によれば、アプリケーション管理ファイルにアクセスするだけでメモリ関連の情報と、前記装置の機器構成に関する情報とを取得できるようになる。
【0030】
請求項12に記載の発明は、請求項1の記載において、アプリケーションが使用するリソースに関する情報を含むアプリケーション管理ファイルを更に有し、該アプリケーションが起動する際に、該アプリケーションが固定的に使用するリソースに関する情報を前記アプリケーション管理ファイルから取得するようにしたものである。本発明によれば、アプリケーションが固定的に使用するリソースを効率的に取得できる。
【0031】
請求項13に記載の発明は、請求項10の記載において、前記アプリケーション管理ファイルにおける前記リソースに関する情報は、前記アプリケーションの起動時に該アプリケーションから取得される情報であるとしたものである。
【0032】
請求項14に記載の発明は、請求項10の記載において、前記装置は、予め組み込まれたソフトウェアによりサービスを提供する組み込み装置としたものである。また、請求項15に記載の発明は、請求項10の記載において、前記装置を画像形成装置としたものである。請求項16〜30に記載の発明は上記装置の発明に対応する方法の発明である。
【0033】
【発明の実施の形態】
以下に添付図面を参照して、本発明の実施の形態である画像形成装置について詳細に説明する。
(実施の形態1)
図1は、この発明の実施の形態1である画像形成装置(以下、「複合機」という)の構成を示すブロック図である。図1に示すように、複合機100は、白黒ラインプリンタ(B&W LP)101と、カラーラインプリンタ(Color LP)102と、スキャナ、ファクシミリ、ハードディスク、メモリ(RAM、ROMなど)、ネットワークインタフェースなどのハードウェアリソース103を有するとともに、プラットホーム120とアプリケーション130と仮想アプリケーションサービス(VAS:Vertial Application Service)140から構成されるソフトウェア群110とを備えている。
【0034】
仮想アプリケーションサービス(VAS)140は、アプリケーション130とプラットホーム120の間に配置される。VAS140は、アプリケーション130の各アプリが初めて起動されたときに、各アプリが使用するリソースの使用状況を取得して、リソース使用情報ファイルをハードディスク(HD)に生成する。取得するリソースとしては、メモリに確保されるテキストメモリ領域サイズ、ヒープ領域サイズ、スタック領域サイズである。ここで、テキストメモリ領域とは、アプリケーション130の各アプリのプログラムがロードされるメモリ領域である。ヒープ領域とは、各アプリが動的に確保するメモリ領域であり、各アプリが使用する作業領域を含む。スタック領域とは、各アプリが実行されるとき、または各アプリが内部のモジュールを呼び出すときに使用する引数などを格納するために確保される領域である。
【0035】
また、VAS140は、各アプリの起動が2回目以降の場合、リソース使用情報ファイルからアプリが必要とする各リソースの容量を取得するとともに、各リソースの残容量を取得して、両者を比較し、アプリの起動の可否を判断する。具体的には、リソースの残容量がアプリが必要とする各リソースの容量より小さい場合には、起動されたアプリに対して起動停止要求メッセージを送信する。
【0036】
なお、図1は、全てのアプリケーションに対してVAS140が配置される例を示しているが、図2に示すように、新規アプリケーションにのみに対してVAS140を配置するようにしてもよい。
【0037】
プラットホーム120は、アプリケーションからの処理要求を解釈してハードウェア資源の獲得要求を発生させるコントロールサービスと、一または複数のハードウェア資源の管理を行い、コントロールサービスからの獲得要求を調停するシステムリソースマネージャ(SRM)123と、汎用OS121とを有する。
【0038】
コントロールサービスは、複数のサービスモジュールから形成され、SCS(システムコントロールサービス)122と、ECS(エンジンコントロールサービス)124と、MCS(メモリコントロールサービス)125と、OCS(オペレーションパネルコントロールサービス)126と、FCS(ファックスコントロールサービス)127と、NCS(ネットワークコントロールサービス)128とから構成される。なお、このプラットホーム120は、あらかじめ定義された関数により前記アプリケーション130から処理要求を受信可能とするアプリケーションプログラムインタフェース(API)を有する。
【0039】
汎用OS121は、UNIX(登録商標)などの汎用オペレーティングシステムであり、プラットホーム120並びにアプリケーション130の各ソフトウェアをそれぞれプロセスとして並列実行する。
【0040】
SRM123のプロセスは、SCS122とともにシステムの制御およびリソースの管理を行うものである。SRM123のプロセスは、スキャナ部やプリンタ部などのエンジン、メモリ、HDDファイル、ホストI/O(セントロI/F、ネットワークI/F、IEEE1394 I/F、RS232C I/Fなど)のハードウェア資源を利用する上位層からの要求にしたがって調停を行い、実行制御する。
【0041】
具体的には、このSRM123は、要求されたハードウェア資源が利用可能であるか(他の要求により利用されていないかどうか)を判断し、利用可能であれば要求されたハードウェア資源が利用可能である旨を上位層に伝える。また、SRM123は、上位層からの要求に対してハードウェア資源の利用スケジューリングを行い、要求内容(例えば、プリンタエンジンにより紙搬送と作像動作、メモリ確保、ファイル生成など)を直接実施している。
【0042】
SCS122のプロセスは、アプリ管理、操作部制御、システム画面表示、LED表示、リソース管理、割り込みアプリ制御などを行う。
【0043】
ECS124のプロセスは、白黒ラインプリンタ(B&W LP)101、カラーラインプリンタ(Color LP)102、スキャナ、ファクシミリなどからなるハードウェアリソース103のエンジンの制御を行う。
【0044】
MCS125のプロセスは、画像メモリの取得および解放、ハードディスク装置(HDD)の利用、画像データの圧縮および伸張などを行う。
【0045】
FCS127のプロセスは、システムコントローラの各アプリ層からPSTN/ISDN網を利用したファクシミリ送受信、BKM(バックアップSRAM)で管理されている各種ファクシミリデータの登録/引用、ファクシミリ読みとり、ファクシミリ受信印刷、融合送受信を行うためのAPIを提供する。
【0046】
NCS128のプロセスは、ネットワークI/Oを必要とするアプリケーションに対して共通に利用できるサービスを提供するためのプロセスであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、アプリケーションからデータをネットワーク側に送信する際の仲介を行う。具体的には、ftpd、httpd、lpd、snmpd、telnetd、smtpdなどのサーバデーモンや、同プロトコルのクライアント機能などを有している。
【0047】
OCS126のプロセスは、オペレータ(ユーザ)と本体制御間の情報伝達手段となるオペレーションパネル(操作パネル)の制御を行う。OCS126は、オペレーションパネルからキー押下をキーイベントとして取得し、取得したキーに対応したキーイベント関数をSCS122に送信するOCSプロセスの部分と、アプリケーション130またはコントロールサービスからの要求によりオペレーションパネルに各種画面を描画出力する描画関数やその他オペレーションパネルに対する制御を行う関数などがあらかじめ登録されたOCSライブラリの部分とから構成される。このOCSライブラリは、アプリケーション130およびコントロールサービスの各モジュールにリンクされて実装されている。なお、OCS126のすべてをプロセスとして動作させるように構成しても良く、あるいはOCS126のすべてをOCSライブラリとして構成しても良い。
【0048】
アプリケーション130は、ページ記述言語(PDL)、PCLおよびポストスクリプト(PS)を有するプリンタ用のアプリケーションであるプリンタアプリ111と、コピー用アプリケーションであるコピーアプリ112と、ファクシミリ用アプリケーションであるファックスアプリ113と、スキャナ用アプリケーションであるスキャナアプリ114と、ネットワークファイル用アプリケーションであるネットファイルアプリ115と、工程検査用アプリケーションである工程検査アプリ116とを有している。これらの各アプリは、その起動時にVAS140に対して自プロセスのプロセスIDとともにアプリ登録要求メッセージを送信し、アプリ登録要求メッセージを受信したVAS140によって、起動したアプリに対する登録処理が行われるようになっている。なお、図2に示す構成の場合には、VAS140が配置されていないアプリケーションは、アプリ登録要求メッセージをSCS122に対して送信する。
【0049】
アプリケーション130の各プロセス、コントロールサービスの各プロセスは、関数呼び出しとその戻り値送信およびメッセージの送受信によってプロセス間通信を行いながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを実現している。
【0050】
このように、実施の形態1にかかる複合機100には、複数のアプリケーション130および複数のコントロールサービスが存在し、いずれもプロセスとして動作している。そして、これらの各プロセス内部には、一または複数のスレッドが生成されて、スレッド単位の並列実行が行われる。そして、コントロールサービスがアプリケーション130に対し共通サービスを提供しており、このため、これらの多数のプロセスが並列動作、およびスレッドの並列動作を行って互いにプロセス間通信を行って協調動作をしながら、コピー、プリンタ、スキャナ、ファクシミリなどの画像形成処理にかかるユーザサービスを提供するようになっている。また、複合機100には、サードベンダなどの第三者がコントロールサービス層の上のアプリケーション層に新規アプリ117,118を開発して搭載することが可能となっている。図1、図2では、この新規アプリ117,118を搭載した例を示している。
【0051】
なお、実施の形態1にかかる複合機100では、複数のアプリケーション130のプロセスと複数のコントロールサービスのプロセスとが動作しているが、アプリケーション130とコントロールサービスのプロセスがそれぞれ単一の構成とすることも可能である。また、各アプリケーション130は、アプリケーションごとに追加または削除することができる。
【0052】
図3は、実施の形態1にかかる複合機100のVAS140の構成と、VAS140と各アプリ、コントロールサービス層150および汎用OS121との関係を示すブロック図である。なお、図3では、アプリケーション130の例として、プリンタアプリ111、コピーアプリ112、新規アプリ117,118を示しているが、他のアプリでも同様の構成である。
【0053】
仮想アプリケーションサービス(VAS)140のプロセスには、ディスパッチャ144と、制御スレッド143と、リソース使用情報取得スレッド141と、アプリ起動判断スレッド142とが動作している。
【0054】
ディスパッチャ144は、アプリケーション130やコントロールサービスからのメッセージ受信を監視し、受信したメッセージに応じて制御スレッド143、リソース使用情報取得スレッド141、アプリ起動判断スレッド142に処理要求を行うものである。実施の形態1の複合機100では、ディスパッチャ144は、各アプリが起動する際にアプリからアプリ登録要求メッセージを受信したとき、受信したアプリ登録要求メッセージを制御スレッド143に送信するようになっている。
【0055】
制御スレッド143は、ディスパッチャ144からアプリ登録要求メッセージを受信してアプリ登録処理を行う。ここで、アプリ登録処理とは、RAM210にアプリ登録テーブル(図示せず)を生成し、アプリ登録要求メッセージを送信したアプリの識別情報であるアプリIDをアプリ登録テーブルに記録する処理をいう。
【0056】
また、制御スレッド143は、HD200に格納されたリソース使用情報ファイル201を参照して、アプリ登録要求を行ったアプリについて、リソース使用情報が記録されているか否かをチェックすることにより、アプリの起動が初回の起動か2回目以降の起動かを判断する。そして、初回の起動である場合にはリソース使用情報取得スレッド141に対してアプリID、アプリのプロセスIDとともにリソース使用情報取得処理要求を行い、2回目以降の起動である場合には、アプリ起動判断スレッド142に対してアプリID、アプリのプロセスIDとともにアプリ起動判断処理要求を行う。
【0057】
リソース使用情報取得スレッド141は、制御スレッド143からの処理要求を受けると、汎用OS121が管理するRAM210上のproc構造体211(またはu領域212)を参照して、各アプリが使用するテキストメモリ領域サイズ、ヒープ領域サイズ、スタック領域サイズ、CPU占有時間を取得して、リソース使用情報ファイル201としてハードディスクに生成する。かかるリソース使用情報はアプリごとのレコードとして記録される。なお、上記のCPU占有時間とは、例えば最近のCPU占有時間である。
【0058】
上記VAS140のプログラムは、ソフトウェア開発キット(SDK:Software Development Kit)等の一部または全部として、CD−ROMまたはFD(フレキシブルディスク)などの記憶媒体に実行可能な形式またはインストール可能な形式のファイルで提供される。また、このような実行可能な形式またはインストール可能な形式のVAS140のプログラムファイルを、ネットワーク経由で取得可能な方法で提供するようにしても良い。なお、複合機100にインストールされるアプリケーションについてもCD−ROMまたはFD(フレキシブルディスク)などの記憶媒体に格納して提供できる。更に、ネットワーク経由で取得可能な方法で提供するようにしても良い。
【0059】
図4は、HD200に格納されるリソース使用情報ファイル201の内容例を示す説明図である。図4に示すように、リソース使用情報ファイル201には、アプリIDごとに、テキストメモリサイズ、ヒープサイズ、スタックサイズ、CPU占有時間が記録されている。
【0060】
図5は、リソース使用情報取得スレッド141が参照するproc構造体211の一例を示す説明図である。図5に示すように、proc構造体211には、各プロセスごとに、プロセスID(p_pid)、CPU占有時間、テキストメモリサイズ、ヒープメモリサイズ、スタックサイズなどが格納されている。このproc構造体211は、プロセス実行時、プロセス終了時、およびプロセスの状態が変化したときに汎用OS121によって更新される。proc構造体211の各情報は、VAS140からのシステムコールによってVAS140が取得することができる。
【0061】
アプリ起動判断スレッド142は、アプリの起動が2回目以降である場合に、リソース使用情報ファイル201を参照して、アプリ登録要求を行ったアプリが必要とする各リソースの容量を取得する。また、アプリ起動判断スレッド142は、汎用OS121のシステムコールあるいはコントロールサービスで提供されるサービス関数呼び出しにより、proc構造体211を参照することにより、画像メモリ領域の残容量、ヒープ領域の残容量、スタック領域の残容量を取得する。そして、両者を比較して、アプリ起動の可否を判断する。また、アプリ起動判断スレッド142は、汎用OS121のシステムコールあるいはコントロールサービスで提供されるサービス関数呼び出しにより、CPU稼働率を取得する。
【0062】
そして、CPU稼働率が一定値を超えているか否か、およびCPU占有時間が一定時間を超えているか否かによってアプリ起動の可否を判断する。なお、CPU占有時間とCPU稼働率との関係、すなわち、CPU稼働率の値に応じてアプリ起動すべきと判断するCPU占有時間の関係は予め定めておくが、複合機100によって任意に定めることができる。
【0063】
アプリ起動判断スレッド142は、アプリ起動が可能と判断した場合には、アプリ登録要求をしたアプリに対して起動可能メッセージを送信する。一方、アプリ起動を続行すべきでないと判断した場合には、アプリ登録要求をしたアプリに対して起動終了要求メッセージを送信する。
【0064】
次に、このように構成された複合機100のVAS140によるアプリ起動判断処理について説明する。図6は、VAS140の制御スレッド143によるアプリ登録およびアプリ起動回数判断の処理手順を示すフローチャートである。
【0065】
ディスパッチャ144が起動する際に、アプリからアプリ登録要求メッセージを受信すると、アプリ登録要求メッセージをそのアプリのプロセスIDとともに制御スレッド143に受け渡す。制御スレッド143は、アプリ登録要求メッセージとプロセスIDをディスパッチャ144から受信すると(ステップS501)、アプリを識別するアプリIDを決定し、アプリ登録テーブル(図示せず)にアプリIDを記録することにより、アプリ登録を行う(ステップS502)。なお、アプリIDは、コピーアプリ112、プリンタアプリ111など既存のアプリケーションについては、予め定められており、各アプリIDをVAS140が内部で保持している。また、サードベンダなどが開発した新規アプリ117,118については、最初の起動時におけるアプリ登録処理の中で決定される。
【0066】
そして、制御スレッド143は、HD200に格納されているリソース使用情報ファイル201を参照し(ステップS503)、リソース使用情報ファイル201の中にアプリ登録処理で登録したアプリIDのリソース使用情報が格納されているか否かをチェックすることにより、アプリ登録要求を行ったアプリが最初の起動か、2回目以降の起動かを判断する(ステップS504)。
【0067】
そして、リソース使用情報ファイル201の中にアプリ登録要求を行ったアプリのアプリIDに対するリソース使用情報が格納されていない場合には(ステップS504:No)、初回の起動であると判断し、アプリが使用するリソースのリソース使用情報を取得するため、リソース使用情報取得スレッド141に対して、アプリIDおよびアプリのプロセスIDとともにリソース使用情報取得要求メッセージを送信する(ステップS505)。
【0068】
一方、リソース使用情報ファイル201の中にアプリ登録要求を行ったアプリのアプリIDに対するリソース使用情報が格納されている場合には(ステップS504:Yes)、2回目以降の起動であると判断し、アプリ起動の可否を判断するため、アプリ起動判断スレッド142に対し、アプリIDおよびアプリのプロセスIDとともにアプリ起動判断要求メッセージを送信する(ステップS506)。
【0069】
図7は、リソース使用情報取得スレッド141によるリソース使用情報取得の処理手順を示すフローチャートである。リソース使用情報取得スレッド141では、アプリの最初の起動時に次の処理が実行される。
【0070】
リソース使用情報取得スレッド141は、アプリID、プロセスIDとリソース使用情報取得要求メッセージを制御スレッド143から受信すると(ステップS601)、proc構造体211を参照して該当するアプリIDのプロセスIDのブロックの位置を検索する(ステップS602)。そして、検索されたプロセスIDのブロックから、テキストメモリ領域サイズ、ヒープ領域サイズ、スタック領域サイズおよびCPU占有時間のリソース使用情報を取得する(ステップS603)。そして、取得したこれらのリソース使用情報を、アプリIDとともにリソース使用情報ファイル201に記録する(ステップS604)。これにより、アプリが起動時に必要となるリソースの情報がリソース使用情報ファイル201に格納されることになる。
【0071】
図8は、アプリ起動判断スレッド142によるアプリ起動可否判断の処理手順を示すフローチャートである。アプリ起動判断スレッド142では、アプリの2回目以降の起動時に次の処理が実行される。
【0072】
アプリ起動判断スレッド142は、アプリID、プロセスIDとアプリ起動判断要求メッセージを制御スレッド143から受信すると(ステップS701)、HD200に格納されているリソース使用情報ファイル201から該当するアプリIDのリソース使用情報のレコードを検索し、テキストメモリ領域サイズ、ヒープ領域サイズ、スタック領域サイズおよびCPU占有時間を取得する(ステップS702)。次に、アプリ起動判断スレッド142は、システムコールあるいはコントロールサービス関数の呼び出しによって、proc構造体から各プロセスによるリソースの使用量を取得することにより、現在におけるメモリの残容量を得る(ステップS703)。このとき、取得される残容量は、テキストメモリ領域の残容量、ヒープ領域の残容量、スタック領域の残容量である。
【0073】
そして、アプリ起動判断スレッド142は、リソース使用情報ファイル201から取得したアプリ起動に必要なテキストメモリ領域サイズとテキストメモリ領域の残容量とを比較する(ステップS704)。比較の結果、テキストメモリ領域サイズがテキストメモリ領域の残容量より大きい場合には(ステップS704:No)、アプリを実行することができないと判断して、アプリに対してアプリ起動終了要求メッセージを送信する(ステップS709)。
【0074】
一方、テキストメモリ領域サイズがテキストメモリ領域の残容量以下の場合には(ステップS704:Yes)、アプリ実行に必要なテキストメモリ領域を現在の状況で確保できると判断する。そして、次に、リソース使用情報ファイル201から取得したアプリの実行に必要なヒープ領域サイズとヒープ領域の残容量とを比較する(ステップS705)。比較の結果、ヒープ領域サイズがヒープ領域の残容量より大きい場合には(ステップS705:No)、アプリを実行することができないと判断して、アプリに対してアプリ起動終了要求メッセージを送信する(ステップS709)。
【0075】
一方、ヒープ領域サイズがヒープ領域の残容量以下の場合には(ステップS705:Yes)、アプリ実行に必要なヒープ領域を現在の状況で確保できると判断する。そして、次に、リソース使用情報ファイル201から取得したアプリの実行に必要なスタック領域サイズとスタック領域の残容量とを比較する(ステップS706)。比較の結果、スタック領域サイズがスタック領域の残容量より大きい場合には(ステップS706:No)、アプリを実行することができないと判断して、アプリに対してアプリ起動終了要求メッセージを送信する(ステップS709)。
【0076】
一方、スタック領域サイズがスタック領域の残容量以下の場合には(ステップS706:Yes)、アプリ実行に必要なスタック領域を現在の状況で確保できると判断する。そして、次に、システムコールの発行によって、現在のCPU稼働率を取得する(ステップS707)。そして、予め定めたCPU稼働率に対して許容された時間内にCPU占有時間が含まれるか否かを判断する(ステップS708)。そして、許容された時間外である場合(ステップS708:No)、例えば、CPU稼働率50〜60%のとき、CPU占有時間が60ms以下の場合にはアプリ起動を続行する対応関係を定めている場合において、CPU稼働率55%で、かつCPU占有時間が80msである場合には、かかる状態でアプリを実行するとシステム全体が不安定になると判断して、アプリに対してアプリ起動終了要求メッセージを送信する(ステップS709)。
【0077】
一方、CPU占有時間が許容された時間内である場合(ステップS708:Yes)、たとえば上記例のCPU稼働率55%でCPU占有時間が40msの場合には、アプリ実行が安定動作すると判断する。これにより、すべてのリソースを確保できることがわかったので、次に、アプリ起動判断スレッド142は、アプリに対してアプリ起動可能通知メッセージを送信する(ステップS710)。
【0078】
なお、各アプリは、アプリ起動判断スレッド142からアプリ起動可能通知メッセージを受信すると、そのまま処理実行を継続する。一方、各アプリは、アプリ起動判断スレッド142からアプリ起動終了要求メッセージを受信すると、ただちにアプリの実行を終了する。また、アプリ起動終了要求メッセージを受信したアプリが、それまでに確保していたリソースを解放してから実行を停止するようにしてもよい。
【0079】
なお、アプリ起動判断スレッド142は、アプリの起動を停止すべきとの判断をした場合には、更に、MCS125などのコントロールサービスに対して、テキストメモリ領域、ヒープ領域あるいはスタック領域を増大して確保する旨の要求メッセージを送信して、アプリ起動に必要なサイズを確保してからアプリに対して起動可能通知メッセージを送信するように構成しても良い。この場合には、単にアプリ起動終了要求を行う場合に比べて、ユーザの利便性の向上を図ることができる。
【0080】
このように、実施の形態1にかかる複合機100では、仮想アプリケーションサービス140のリソース使用情報取得スレッド141によって、アプリケーション130が使用するリソースに関する情報を取得してリソース使用情報ファイル201を生成することが可能である。そして、アプリ起動判断スレッド142によって、アプリケーション130が起動されたときに、テキストメモリ領域残容量、ヒープ領域残容量、スタック領域残容量、CPU稼働率を取得し、取得したこれらのリソースの状態と、リソース使用情報ファイル201の中に記録されたアプリケーション130が使用するリソースの情報とに基づいてアプリケーション130の起動可否を判断することができる。これにより、リソースの状況によってアプリケーション130の実行ができなくなることを未然に回避して、複合機100のシステムの安定性を向上させることができる。また、サードベンダが開発した新規アプリ117,118がリソースの限界を意識した処理を行っていない場合でも、リソース不足に伴ってシステムが不安定になることを回避でき、複合機100のシステムの安定性を向上させることができる。
【0081】
なお、実施の形態1にかかる複合機100では、VAS140が全てのアプリケーション130に対してリソース使用情報取得処理、アプリ起動判断処理を行っているが、図2に示したように一部のアプリに対してのみかかる処理を行うように構成しても良い。例えば、新規アプリ117,118などサードベンダなどの第三者が開発したアプリにのみリソース使用情報取得処理、アプリ起動判断処理を行い、プリンタアプリ111やコピーアプリ112などの既存のアプリに対してはこのようなサービスを行わないように構成しても良い。
【0082】
また、上記のように初回の起動時のリソースの使用量をリソース使用情報ファイル201に記録して後の起動判断に用いる他、アプリケーションが実行されているその実行期間(起動から終了まで)の中で定期的にproc構造体を参照することによりリソースの使用量を複数回取得し、その中の平均値をリソース使用情報ファイル201に記録するようにしてもよい。また、複数回取得した中での最大値をリソース使用情報ファイル201に記録するようにしてもよい。
【0083】
また、上記の実施の形態のように、初回の実行時の値を求めて記録しておくことの他、アプリケーションの実行の度に上記の平均値を求め、その平均値が前回の平均値を超えた場合にリソース使用情報ファイル201を更新するようにしてもよい。また、アプリケーションの実行の度に上記の最大値を求め、その最大値が前回の最大値を超えた場合にリソース使用情報ファイル201を更新するようにしてもよい。更に、アプリケーションの実行毎の上記平均値を別に記録しておき、これらの中の平均値をリソース使用情報ファイル201に記録するようにしてもよい。また、アプリケーションの実行毎の上記最大値を別に記録しておき、これらの中の平均値又は最大値をリソース使用情報ファイル201に記録するようにしてもよい。
【0084】
(実施の形態2)
次に本発明の実施の形態2について説明する。実施の形態1では、VAS140がアプリケーションの起動可否を判断していたが、実施の形態2では、VAS140からリソース量に関する判定メッセージをアプリケーションが受信することにより、アプリケーションが起動の可否等を判断することも可能な構成としている。また、メモリやCPUのみでなく、複合機に接続されているユニットなどのシステム機器構成情報も取得することが可能であり、これを起動の判断に使用することが可能となっている。
【0085】
実施の形態2の構成は、図1、もしくは図2に示した実施の形態1の構成と同様である。また、以下説明するVAS140による処理は、図3に示したようにスレッドとして実行してもよいし、VAS140のプロセスとして実行してもよい。
【0086】
実施の形態1では、アプリの起動実績を記録したリソース使用情報ファイルをアプリケーションが使用を予定するリソース量を格納したファイルとして使用しているが、実施の形態2では、CPU使用量のように使用量が動的に変動するリソースについては実績を記録したリソース使用情報ファイルを使用し、メモリ領域のようにアプリケーションが固定的に使用するリソースについては、アプリケーションから起動時に申告される使用リソース情報を使用する。なお、この使用リソース情報は、アプリケーションの初回の起動時にVAS140がアプリケーションから(より詳細には所定のメモリ領域から)取得し、アプリケーション管理ファイルとして複合機のハードディスクに記録されるものである。なお、固定的に使用するリソースとは、アプリケーションの実行の度における使用量の変化がないか、変化が少ないリソースのことである。
【0087】
図9にアプリケーション管理ファイルの内容例を示す。同図に示すように、アプリケーション名、バージョンなどの情報と、メモリやシステム機器構成を含む使用リソース情報が記録されている。また、RAM(本実施の形態では複合機のNV−RAM(nonvolatile RAM)を使用する)にアプリケーション管理ファイルのHD200における場所を示す情報が格納される。
【0088】
図10に、新規アプリケーションに係るNV−RAMの構成例とHDの構成例を示す。なお、ここでいう新規アプリケーションとは、図1、図2におけるアプリケーション117、118に対応するものである。
【0089】
同図に示すように、NV−RAMには登録済みの新規アプリケーション毎に、アプリケーションのプロダクトID、使用NV−RAMサイズ、NV−RAMにおける使用領域の開始アドレスを示すオフセットなどが記録される。また、NV−RAMに記録されたプロダクトIDに対応してHD200に当該アプリケーション用の領域が設けられる。
【0090】
例えば、アプリケーション1に対応して、HD200にディレクトリが設けられ、その中に、アプリケーション1に対してシステム(VAS140)が使用する領域とアプリケーション1自身が使用する領域が設けられる。図9に示したアプリケーション管理ファイルはシステム使用領域の中に格納される。
【0091】
次に、アプリケーションの起動の際に、VAS140が実行する処理を図11のフローチャートを用いて説明する。
【0092】
実施の形態1と同様に、アプリケーションが起動する際に、VAS140がアプリ登録要求メッセージを受信すると(ステップS801)、当該アプリケーションに対応するアプリケーション管理ファイルがあるか否かをHD200にアクセスすることにより調べる(ステップS802)。アプリケーション管理ファイルがなければ、アプリケーションから申告される情報に基づきそれを作成する(ステップS803)。なお、アプリケーション管理ファイルがあるか否かはNV−RAMにアクセスすることにより判断してもよい。
【0093】
アプリケーション管理ファイルがあればそこから当該アプリケーションが使用する予定のリソース情報を取得する(ステップS804)。なお、アプリケーション管理ファイルを用いる代わりにアプリケーションから申告されるリソース情報を用いてもよい。また、CPU使用量(実績値)に関しては、実施の形態1で説明したような方法でCPU使用量に関するリソース使用情報ファイルを作成しておき、そこから取得する。すなわち、CPU使用量に関しては初回の起動時には判断に用いず、2回目以降の起動時に判断に用いる。なお、CPU使用量を起動の判断に用いないようにしてもよい。また、リソース使用情報ファイルの内容を、アプリケーション管理ファイルに記録するようにしてもよい。
【0094】
次に、現在の複合機100におけるリソース情報を取得する(ステップS805)。そして、メモリ容量などのリソースに関しては現在の複合機100における残容量を求めておく。そして、ステップS804にて取得した使用予定リソース量と現在のリソース量とを、使用予定リソースにおける個々のリソース毎に比較することにより、使用予定リソース量が現在のシステムリソース量を超えているか否かを調べる(ステップS806)。また、システム機器構成についてのリソース(ユニット等)については、アプリケーションが使用する予定のリソースが現在のリソースの中にあるか否かを調べる(ステップS806)。
【0095】
使用予定リソース量が現在のシステムリソース量を超えてらず、かつ、不足しているシステム機器構成リソースがない場合には、アプリケーションの起動を継続する(ステップS807)。使用予定リソース量が現在のシステムリソース量を超えているリソースがある場合、もしくは、不足しているシステム機器構成リソースがある場合、リソース判定結果通知メッセージをアプリケーションに対して送信する(ステップS808)。このメッセージの内容に基づき、アプリケーションは起動を継続するか否かの判断を行う。なお、本実施の形態ではリソース判定結果通知メッセージは、使用予定リソース毎に、アプリケーションが必要とするシステム機器構成(ユニットなど)上のリソースについては当該リソースの有無(有りの場合OK、無しの場合NG)、また、メモリ領域などのリソースについては使用予定リソース量が現在のシステムリソース量を超えていなければOK、超えていればNGを示す情報が含まれる。
【0096】
次に、リソース判定結果通知メッセージを受信したアプリケーションの動作について図12を参照して説明する。
【0097】
VAS140からリソース判定結果通知メッセージを受信すると(ステップS901)、メッセージに含まれる最初のリソースについて、当該リソースがNG判定か否かをチェックする(ステップS902)。
【0098】
NG判定でなければ次のリソースがあるか否かをチェックして(ステップS903)、あれば次のリソースについてのチェックを行う。ステップS902でNG判定であれば、当該リソースに関する制限モードがあれば当該リソースに関する使用不可フラグをアプリケーションに設定する(ステップS904のYES、ステップS905)。なお、制限モードとしては、一部のシステム機器構成における機器などを使用しないこと、もしくは、所定のメモリ領域の使用量を削減することなどがあるが、図12に示す例は、対象のリソースを使用しない場合について示している。
【0099】
この場合、アプリケーションが操作パネル上に当該リソースがNG判定であることを表示し、制限モードでの動作を許容するか否かをユーザに問い合わせ、ユーザが制限モードでの動作を許容する場合のみ制限付きで起動を続行するようにしてもよい。
【0100】
また、CPUパワーが不足しているとの判定結果に対しては、その旨を操作パネルに表示し、動作が遅くなることを許容するか否かをユーザに問い合わせ、許容する場合に起動を継続するといった処理も可能である。
【0101】
ステップS903において次のリソース情報がない場合には、アプリケーションの起動を継続するか、もしくは制限付き起動手続きを行う(ステップS906)。
【0102】
ステップS904において制限動作モードがない場合には、アプリケーション起動終了手続きを行う(ステップS907)。図13を用いてこの処理の手順について説明する。
【0103】
まず、操作部表示に関するリソースを開放する(ステップS1001)。そして、これまでに確保したメモリを開放し(ステップS1002)、VAS140に対してアプリケーション登録抹消要求を行う(ステップS1003)。次に、プロセス間通信の停止処理を行い(ステップS1004)、システムコールによる自プロセスの終了を行う(ステップS1005)。なお、必要に応じて上記の処理の前に、使用者への通知、スキャナ、プロッタの解放、ネットワークリソースの解放を行う。
【0104】
なお、図11に示したステップS806において、使用予定リソース量が現在のシステムリソース量を超えているリソースがある場合であって、当該リソースがアプリケーションにとって必須の固定的に使用するメモリ領域(テキストメモリ領域、ヒープ領域、スタック領域)である場合には、VAS140が当該アプリケーションは起動できないことを判断し、上記のリソース判定結果通知メッセージとして起動停止要求をアプリケーションに送信するようにしてもよい。この場合、アプリケーションはすぐに図13に示した処理を実行する。また、VAS140が、アプリケーションが制限付き起動をするかどうかを判断し、制限付き起動が可能と判断した場合には、その旨をアプリケーションに通知してもよい。この場合、VAS140がユーザに制限付き起動を問い合わせるようにすることができる。
【0105】
上記のように起動の判断におけるリソース情報として、図9の「システム構成関連」として示したシステム機器構成に関する情報も用いることにより、例えば、パンチやステープル機能を有する機器が複合機100に実装されていなければ使用できないアプリケーションを、そのような機器が複合機に取り付けられていないないにもかかわらず起動するといった無駄な起動を抑制できる。
【0106】
また、起動の判断に上記の情報に加えて機種情報を用いても良い。これにより、機種、モデルによる機能の差異に起因する機能不全や動作不良を抑制することが可能となる。
【0107】
なお、図11のフローにおいて、VAS140が、アプリケーションが使用を予定しているリソース情報の取得(ステップS804)を行わずに、アプリケーションに現状の機器構成情報と残存リソース量をそのままリソース判定結果通知メッセージとして送信し、アプリケーション側で必要リソースの判断を行うようにしてもよい。この場合、アプリケーションが保持する使用予定リソースを一つ一つリソース判定結果メッセージにおけるリソースと比較し、使用予定リソースの有無を判定し、起動の判断をアプリケーションが行う。
【0108】
また、図11に示す処理は、アプリケーションの起動時毎に行ってもよいし、当該アプリケーションのインストール時のみに行う事もできる。
【0109】
次に、図11のステップS805におけるVAS140による現在のリソース情報の取得手順について説明する。
【0110】
現在の複合機100のリソース情報の取得においては、システム機器構成に関する情報とメモリ領域等のシステムリソース量を取得する。ステップS805の処理手順を説明する前にシステム機器構成情報取得について説明する。
【0111】
システム機器構成情報は、コントロールサービス層のサービスモジュール(以下、例としてSCS122がシステム機器構成情報を取得する場合について説明する)が取得してシステム機器構成情報構造体に格納する。図14のフローチャートを参照してSCS122がシステム機器構成情報を取得する場合の手順について説明する。
【0112】
複合機100の主電源が投入されると(ステップS1101)、SCS122は複合機100の各ユニット接続センサ及び各ユニットから機器構成情報の通知を受ける(ステップS1102)。SCS122は通知されたシステム機器構成情報をシステム機器構成情報構造体に格納する(ステップS1103)。システム機器構成情報構造体の構成例を図15に示す。すなわち、図15に示す項目の情報をSCS122が取得し、システム機器構成情報構造体に格納する。
【0113】
その後、システム機器構成情報構造体を共有メモリ上(物理的にはRAM上)に配置し(ステップS1104)、SCS122に対して登録要求を行ったサービスモジュールやアプリケーションに対して、システム機器構成情報を取得したことを示すシステム機器構成情報通知メッセージを発行する(ステップS1105)。例えば、VAS140が起動されるときにシステム機器構成情報通知メッセージがSCS122からVAS140に通知される。
【0114】
上記のようにしてシステム機器構成情報構造体が共有メモリ上に配置されることにより他のモジュール(VASなど)がシステム機器構成情報構造体にアクセスしてシステム機器構成情報を取得することが可能となる。
【0115】
次に、図16を参照して、図11のステップS805におけるVAS140による現在のリソース情報の取得の処理手順について説明する。
【0116】
まず、VAS140はシステム機器構成情報通知メッセージを受信済みか否かをチェックする(ステップS1201)。受信済みでなければ所定の時間間隔で受信済みか否かのチェックを繰り返す。なお、所定の時間経過してもシステム機器構成情報通知受信を確認できない場合にはタイムアウトとなりシステムエラーとなる。
【0117】
システム機器構成情報通知メッセージを受信済みである場合には、システム機器構成情報構造体にアクセスすることによりシステム機器構成情報を取得する(ステップS1202)。続いて、proc構造体にアクセスすることによりシステムリソース量(メモリ領域など)を取得する(ステップS1203)。
【0118】
以上の処理により、使用予定リソースとの比較のために使用する現状のリソース情報を取得することが可能となる。
【0119】
(実施の形態3)
実施の形態1、2においては使用予定リソースとの比較のために、メモリ領域などの現在のリソース使用量をproc構造体から取得していたが、実施の形態3では、現在のリソース使用量を取得せず、予め新規アプリケーション用にリソースを割り当てておく。そして、割り当てたリソース量と、新規アプリケーションが使用しようとするリソース量とを比較して起動の判断を行うようにする。なお、予め割り当てたリソース量は例えばアプリケーション管理ファイルに記録しておく。
【0120】
すなわち、例えば、実施の形態1の図8のフローにおいて、現状のリソース使用量を取得する(ステップS703)代わりに、予め割り当てておいたリソース量を例えばアプリケーション管理ファイルから取得する。そして、そのリソース量とアプリケーションが使用するリソース量とを比較して起動の判断を行う。
【0121】
なお、複数の新規アプリケーションが起動される場合には、複数の新規アプリケーションに対してまとめて所定のリソース量を割り当ててもよいし、起動される可能性のある新規アプリケーション個々に対してそれぞれのリソース量を割り当ててもよい。
【0122】
前者の場合、まず1つの新規アプリケーションが起動したら、割り当てられたリソース総量から当該新規アプリケーションが使用を予定しているリソース量を減じ、次に起動した新規アプリケーションについては減じた結果のリソース量と使用予定リソース量とを比較して起動に関する判断を行う。これ以降に起動する新規アプリケーションについても同様である。
【0123】
また、後者の場合には、例えば新規アプリケーションが使用する予定のリソース量を調べてその量を割り当てる。また、複数の新規アプリケーションに対して等分に割り当ててもよい。
【0124】
上記の方法は、メモリ領域のようにアプリケーションが固定的に必要とするリソースに対して有効である。CPU使用量等予め割り当てができないリソースについては、判断に用いないか、実施の形態1、2の方法を用いて判断を行う。
【0125】
(実施の形態4)
実施の形態1にかかる複合機100は、VAS140が全アプリケーションに対して1つのみ存在するものであったが、この実施の形態4にかかる複合機では、各アプリごとに一つのVASが起動し、各VASは対応するアプリに対してのみリソース使用情報取得およびアプリ起動判断を行うものである。また、実施の形態4では実施の形態1の動作を例にとり説明するが、実施の形態2、3についてもVASの構成を実施の形態4のような構成にすることができる。
【0126】
図17は、実施の形態4にかかる複合機800の構成を示すブロック図である。図17に示すように、複合機800では、複数の仮想アプリケーションサービス(VAS)841〜848がアプリケーション130の各アプリごとに動作している点が、実施の形態1にかかる複合機100と異なっている。
【0127】
VAS841〜848は、プリンタアプリ111、コピーアプリ112、ファックスアプリ113、スキャナアプリ114、ネットファイルアプリ115、工程検査アプリ116、新規アプリ117および118に対応して、リソース使用情報取得処理およびアプリ起動判断処理を行うようになっている。なお、図18に示すように、新規アプリケーションに対してのみVASを備えるようにしてもよい。
【0128】
図19は、実施の形態4にかかる複合機800のVAS841〜848の構成と、VAS841〜848と各アプリ、コントロールサービス層150および汎用OS121との関係を示すブロック図である。なお、図17では、アプリケーション130として、プリンタアプリ111、コピーアプリ112、新規アプリ117,118の例を示し、更にこれら各アプリに対応したVAS841,842,847および848を例として示しているが、他のアプリの場合も同様の構成である。
【0129】
また、実施の形態4にかかる複合機800では、実施の形態1の複合機100と異なり、図19に示すように、各VAS841〜848と各アプリとの間にはVAS制御プロセス(デーモン)801が動作している。
【0130】
このVAS制御プロセス(デーモン)801は、各アプリからアプリ登録要求メッセージを受信してアプリ登録処理を行うとともに、アプリ登録要求を行ったアプリに対応したVAS841〜848を生成する。また、VAS制御プロセス801は、HD200に格納されたリソース使用情報ファイル201を参照して、アプリ登録要求を行ったアプリについて、リソース使用情報が記録されているか否かをチェックすることにより、アプリの起動が初回の起動か2回目以降の起動かを判断する。そして、初回の起動である場合にはアプリに対応するVAS841〜848に対してアプリID、アプリのプロセスIDとともにリソース使用情報取得処理要求を行い、2回目以降の起動である場合にはアプリに対応するVAS841〜848に対してアプリID、アプリのプロセスIDとともにアプリ起動判断処理要求を行うようになっている。
【0131】
仮想アプリケーションサービス(VAS)841〜848のプロセスには、ディスパッチャ144と、リソース使用情報取得スレッド141と、アプリ起動判断スレッド142とが動作している。
【0132】
ディスパッチャ144は、アプリケーション130やコントロールサービスからのメッセージ受信を監視し、受信したメッセージに応じてリソース使用情報取得スレッド141、アプリ起動判断スレッド142に処理要求を行うものである。実施の形態2の複合機800では、ディスパッチャ144は、VAS制御プロセス801から、アプリID、アプリのプロセスIDとともに、リソース使用情報取得処理要求メッセージまたはアプリ起動判断処理要求メッセージを受信するようになっている。ディスパッチャ144は、リソース使用情報取得処理要求メッセージを受信したときには、アプリID、アプリのプロセスIDとともに受信したリソース使用情報取得処理要求メッセージをリソース使用情報取得スレッド141に送信し、アプリ起動判断要求メッセージを受信したときには、アプリID、アプリのプロセスIDとともに受信したアプリ起動判断要求メッセージをアプリ起動判断スレッド142に送信するようになっている。
【0133】
リソース使用情報取得スレッド141は、ディスパッチャ144からのリソース使用情報取得要求メッセージを受信すると、実施の形態1におけるVAS140と同様に、アプリ起動に必要なリソースの情報を取得してリソース使用情報ファイル201をハードディスク(HD)200に生成する。
【0134】
アプリ起動判断スレッド142は、ディスパッチャ144からのアプリ起動判断要求メッセージを受信すると、実施の形態1におけるVAS140と同様に、リソース使用情報ファイル201を参照して、アプリ起動判断処理を行う。
【0135】
実施の形態4の複合機800におけるVAS841〜848のリソース使用情報取得スレッド141によって実行されるリソース使用情報取得処理、およびアプリ起動判断スレッド142によって実行されるアプリ起動判断処理については、実施の形態1の複合機100におけるVAS140の各スレッドによる処理と同様である。
【0136】
このように実施の形態4にかかる複合機800によれば、実施の形態1にかかる複合機100と同様に、複合機800のシステムの安定性を向上させることができる。
【0137】
また、実施の形態4にかかる複合機800では、VAS841〜848は起動されるアプリケーション130ごとに別個に起動されるので、複数のアプリケーション130の起動判断処理を、各アプリケーション130に対応するVAS841〜848で並列に実行することができ、アプリケーションの起動判断処理を効率的に行うことができる。
【0138】
なお、実施の形態4にかかる複合機800では、全てのアプリごとに別個にVAS841〜848を起動していたが、図18に示したように一部のアプリに対してのみVASを起動するように構成しても良い。例えば、新規アプリ117,118などサードベンダなどの第三者が開発したアプリに対してのみVAS847,848を起動してリソース使用情報の取得処理やアプリ起動判断処理を行い、プリンタアプリ111やコピーアプリ112などの既存のアプリに対してはこのようなサービスを行わないように構成することができる。
【0139】
また、実施の形態1および4にかかる複合機100,800では、リソースとして、テキストメモリ領域、ヒープ領域、スタック領域、CPU占有時間、CPU稼働率を利用してリソース使用情報取得およびアプリ起動判断を行っていたが、かかるリソースは一例であり、他のリソースを利用した構成としても良い。
【0140】
また、VASに構成として上記の構成の他、図20(a)〜(c)に示す構成のようにすることもできる。
【0141】
図20(a)は、各アプリケーションに対して起動されるVASを、親VASの子プロセスとする場合であり、親VAS自体は画面制御権(ユーザインターフェース)を持たない。図20(b)は、親VAS自体は画面制御権(ユーザインターフェース)を持つ場合である。図20(c)は、各アプリケーションに対応するVASの機能をスレッドとして提供する場合を示している。
【0142】
なお、本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【0143】
【発明の効果】
上記のように本発明によれば、アプリケーションが使用するリソースに関する情報を取得することが可能となる。また、このようにリソースに関する情報を取得することができることにより、アプリケーションが使用するリソースの量と、複合機が実際に備えているリソースの状態に基づき、必要に応じてアプリケーションの起動制限を行うか否かの判断を行なうことが可能となる。
【図面の簡単な説明】
【図1】実施の形態1にかかる複合機の構成を示すブロック図である。
【図2】実施の形態1にかかる複合機の構成の他の例を示すブロック図である。
【図3】実施の形態1にかかる複合機のVASの構成と、VASと各アプリ、コントロールサービス層および汎用OSとの関係を示すブロック図である。
【図4】実施の形態1にかかる複合機におけるリソース使用情報ファイルの内容例を示す説明図である。
【図5】実施の形態1にかかる複合機におけるVASのリソース使用情報取得スレッドが参照するproc構造体の一例を示す説明図である。
【図6】実施の形態1にかかる複合機におけるVASの制御スレッドよるアプリ登録およびアプリ起動回数判断の処理手順を示すフローチャートである。
【図7】実施の形態1にかかる複合機におけるVASのリソース使用情報取得スレッドによるリソース使用情報取得の処理手順を示すフローチャートである。
【図8】実施の形態1にかかる複合機におけるVASのアプリ起動判断スレッドによるアプリ起動可否判断の処理手順を示すフローチャートである。
【図9】実施の形態2にかかる複合機におけるアプリケーション管理ファイルの内容例を示す図である。
【図10】実施の形態2にかかる複合機におけるNV−RAMの構成例とHDの構成例を示す図である。
【図11】実施の形態2にかかる複合機におけるアプリケーションの起動の際に、VASが実行する処理を示すフローチャートである。
【図12】リソース判定結果通知メッセージを受信したアプリケーションの動作を示すフローチャートである。
【図13】アプリケーション起動終了手続きを示すフローチャートである。
【図14】実施の形態2にかかる複合機においてシステム機器構成情報を取得する手順を示すフローチャートである。
【図15】実施の形態2にかかる複合機におけるシステム機器構成情報構造体の構成例を示す図である。
【図16】実施の形態2にかかる複合機における現在のリソース情報の取得の処理手順を示すフローチャートである。
【図17】実施の形態4にかかる複合機の構成を示すブロック図である。
【図18】実施の形態4にかかる複合機の構成の他の例を示すブロック図である。
【図19】実施の形態4にかかる複合機のVASの構成と、VASと各アプリ、コントロールサービス層および汎用OSとの関係を示すブロック図である。
【図20】複合機におけるVASの構成を示す図である。
【符号の説明】
100 複合機
101 白黒ラインプリンタ
102 カラーラインプリンタ
103 ハードウェアリソース
110 ソフトウェア群
111 プリンタアプリ
112 コピーアプリ
113 ファックスアプリ
114 スキャナアプリ
115 ネットファイルアプリ
116 工程検査アプリ
117,118 新規アプリ
120 プラットホーム
121 汎用OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
130 アプリケーション
140,841〜848 仮想アプリケーションサービス(VAS)
141 リソース使用情報取得スレッド
142 アプリ起動判断スレッド
143 制御スレッド
144 ディスパッチャ
150 コントロールサービス層
200 ハードディスク(HD)
201 リソース使用情報ファイル
210 RAM
211 proc構造体
212 u領域
800 複合機
801 VAS制御プロセス
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a technique for acquiring information about resources used by an application.
[0002]
[Prior art]
2. Description of the Related Art In recent years, an image forming apparatus (hereinafter, referred to as a “multifunction peripheral”) in which functions of respective apparatuses such as a printer, a copier, a facsimile, and a scanner are housed in one housing has been known. This multifunction peripheral is provided with a display unit, a printing unit, an imaging unit, and the like in a single housing, and is provided with three types of software corresponding to a printer, a copying machine, and a facsimile machine, and by switching these softwares, Is operated as a printer, copier, scanner or facsimile machine.
[0003]
In such a conventional multifunction peripheral, all application programs are activated in units of functions such as a printer, a copy, a facsimile, and a scanner within a limited range of resources such as a memory. In other words, the conventional multifunction peripheral has resources enough to start all the application programs, and it is not assumed that a situation occurs in which the application programs cannot be started.
[0004]
[Patent Document 1]
JP-A-11-112701
[0005]
[Problems to be solved by the invention]
By the way, in such a conventional multifunction peripheral, software corresponding to a printer, a copier, a scanner, and a facsimile machine is separately provided, and therefore, it takes a lot of time to develop each software. For this reason, the applicant has an application that has hardware resources used in image forming processing such as a display unit, a printing unit, and an imaging unit and performs processing specific to each user service such as a printer, a copy or a facsimile. When providing a user service by interposing between a plurality of applications and hardware resources, management, execution control, and image forming processing of hardware resources required by at least two of the applications in common Invented an image forming apparatus (multifunction peripheral) equipped with a platform composed of various control services for performing the following.
[0006]
Such a new multifunction peripheral has a configuration in which a control service for providing a service commonly required by at least two of the applications is provided separately from the application. The size of the application program is smaller than that of the application program to be started, and the application is frequently started and terminated.
[0007]
For this reason, the use status of resources such as a memory mounted on the multifunction peripheral frequently changes, and it may occur that all applications cannot be activated. Even if the application is started in such a situation, there is a problem that the application is terminated improperly and the operation of the multifunction peripheral becomes unstable.
[0008]
In addition, since such a new multi-function device is provided with an application and a control service separately, a user or a third party as a third party can develop a new application and mount it on the multi-function device after shipment of the multi-function device. It has a configuration. For this reason, MFPs have applications that are installed at the time of shipment, such as copy, printer, scanner, and facsimile, and are different from conventional MFPs. Many applications, such as applications, can be started. Applications provided in advance by MFPs, such as copiers, printers, facsimile machines, and scanners, have a structure that is aware of limited resources, but new applications developed by third parties are developed by vendors. It may not always be a resource-aware structure. For this reason, if a new application is started within a limited resource range, there is a high possibility that the multifunction peripheral will become unstable.
[0009]
In order to solve such a problem, it is necessary to limit the activation of the application as necessary based on the type and amount of resources used by the application and the resources actually provided in the multifunction peripheral. For this purpose, it is necessary to obtain the types and amounts of resources used by the application.
[0010]
The present invention has been made in view of the above, and an object of the present invention is to provide a technique for acquiring information on resources used by an application.
[0011]
[Means for Solving the Problems]
In order to achieve the above object, the invention according to claim 1 is an apparatus provided with resources for executing an application, wherein during execution of the application, resource information on resources used by the application is stored. And acquiring means for acquiring the resource information and storing the resource information in a storage device.
[0012]
According to the present invention, when an application is executed, information on resources used by the application is acquired, so that, for example, accurate information for determining whether to start the application can be acquired.
[0013]
According to a second aspect of the present invention, in the first aspect, the obtaining unit periodically obtains a usage amount of a resource used by the application, and obtains the resource information based on the regularly obtained usage amount. Generate and store the resource information.
[0014]
According to a third aspect of the present invention, in the second aspect, the resource information is an average value or a maximum value of the usage amounts acquired periodically.
[0015]
According to a fourth aspect of the present invention, in the third aspect, the average value or the maximum value during a period from the start to the end of the application is recorded every time from the start to the end, and the resource information The average value or the maximum value of a plurality of average values recorded from the start to the end, or the average value or the maximum value of the plurality of maximum values recorded from the start to the end is used.
[0016]
According to the above invention, since a plurality of values acquired periodically are used, it is possible to acquire a value more appropriate as a resource usage amount than a value acquired only once.
[0017]
According to a fifth aspect of the present invention, in the first aspect of the present invention, the acquisition unit is used by the application based on system information holding information on resources used by a process in the device. Information about resources is acquired as the resource information. According to the present invention, resource information can be efficiently acquired.
[0018]
According to a sixth aspect of the present invention, in the first aspect, the device is an embedded device that provides a service using pre-installed software, and the application to be executed is It is another application that is installed in the device.
[0019]
According to the present invention, by using resource information, when adding an application to an embedded device, it is possible to make a start determination according to the resource amount.
[0020]
According to a seventh aspect of the present invention, in the sixth aspect, the apparatus is an image forming apparatus, and the image forming apparatus includes a plurality of hardware resources in an image forming process and a plurality of services related to control of the hardware resources. A virtual application service unit comprising: a control service unit commonly provided to the application; and a virtual application service unit operating as a client process using the control service unit as a server and operating as a server process using the application as a client. Has the acquisition means.
[0021]
According to the present invention, by using resource information, when adding an application to the image forming apparatus, it is possible to make a start determination according to the resource amount.
[0022]
The invention according to claim 8 is an apparatus provided with a resource for executing an application, receiving device configuration information from each device as the resource attached to the device, and storing the device configuration information. It is a device having means for storing in the device.
[0023]
According to the present invention, it is possible to acquire device configuration information of the device.
[0024]
According to a ninth aspect of the present invention, in the ninth aspect, there is provided means for transmitting a message for notifying that the device configuration information has been stored to a software module executed in the device. .
[0025]
According to the present invention, a software module executed in the device can recognize that device configuration information is stored. Then, the device configuration information can be acquired by the software module accessing the storage device.
[0026]
According to a tenth aspect of the present invention, there is provided an apparatus provided with resources for executing an application, the application management file including information on resources used by the application, and the application being used when the application is started. An acquisition unit for acquiring information on resources to be performed from the application management file.
[0027]
According to the present invention, it is possible to acquire information about resources only by accessing an application management file.
[0028]
According to an eleventh aspect, in the tenth aspect, the application management file includes memory-related information and information on a device configuration of the device.
[0029]
According to the present invention, it is possible to acquire information relating to memory and information relating to the device configuration of the device simply by accessing the application management file.
[0030]
According to a twelfth aspect of the present invention, in the first aspect, the program further comprises an application management file including information on resources used by the application, wherein the resource fixedly used by the application when the application is started Is obtained from the application management file. According to the present invention, it is possible to efficiently obtain resources that are fixedly used by an application.
[0031]
According to a thirteenth aspect, in the tenth aspect, the information on the resource in the application management file is information obtained from the application when the application is started.
[0032]
According to a fourteenth aspect of the present invention, in the tenth aspect, the device is an embedded device that provides a service by using software that is installed in advance. According to a fifteenth aspect, in the tenth aspect, the apparatus is an image forming apparatus. The invention according to claims 16 to 30 is a method invention corresponding to the invention of the above device.
[0033]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, an image forming apparatus according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
(Embodiment 1)
FIG. 1 is a block diagram illustrating a configuration of an image forming apparatus (hereinafter, referred to as a “multifunction peripheral”) according to a first embodiment of the present invention. As shown in FIG. 1, the MFP 100 includes a monochrome line printer (B & W LP) 101, a color line printer (Color LP) 102, a scanner, a facsimile, a hard disk, a memory (RAM, ROM, etc.), a network interface, and the like. It has a hardware resource 103, and has a platform 120, an application 130, and a software group 110 composed of a virtual application service (VAS: Virtual Application Service) 140.
[0034]
A virtual application service (VAS) 140 is located between the application 130 and the platform 120. When each application of the application 130 is activated for the first time, the VAS 140 acquires the usage status of the resource used by each application, and generates a resource usage information file on the hard disk (HD). The resources to be acquired include the size of the text memory area secured in the memory, the size of the heap area, and the size of the stack area. Here, the text memory area is a memory area into which a program of each application of the application 130 is loaded. The heap area is a memory area dynamically allocated by each application, and includes a work area used by each application. The stack area is an area reserved for storing arguments used when each application is executed or when each application calls an internal module.
[0035]
In addition, when each application is activated for the second time or later, the VAS 140 obtains the capacity of each resource required by the application from the resource usage information file, obtains the remaining capacity of each resource, and compares the two. Determine whether the application can be started. Specifically, when the remaining capacity of the resource is smaller than the capacity of each resource required by the application, a start stop request message is transmitted to the started application.
[0036]
FIG. 1 shows an example in which the VAS 140 is arranged for all applications. However, as shown in FIG. 2, the VAS 140 may be arranged only for a new application.
[0037]
The platform 120 interprets a processing request from an application to generate a hardware resource acquisition request, and a system resource manager that manages one or more hardware resources and arbitrates the acquisition request from the control service. (SRM) 123 and a general-purpose OS 121.
[0038]
The control service is formed from a plurality of service modules, and includes an SCS (system control service) 122, an ECS (engine control service) 124, an MCS (memory control service) 125, an OCS (operation panel control service) 126, and an FCS. (Fax control service) 127 and NCS (network control service) 128. The platform 120 has an application program interface (API) that enables a processing request from the application 130 to be received by a predefined function.
[0039]
The general-purpose OS 121 is a general-purpose operating system such as UNIX (registered trademark), and executes each software of the platform 120 and the application 130 in parallel as a process.
[0040]
The process of the SRM 123, together with the SCS 122, controls the system and manages resources. The process of the SRM 123 uses hardware resources such as an engine such as a scanner unit and a printer unit, a memory, an HDD file, and a host I / O (centro I / F, network I / F, IEEE1394 I / F, RS232C I / F, etc.). Arbitration is performed according to a request from the upper layer to be used, and execution is controlled.
[0041]
Specifically, the SRM 123 determines whether the requested hardware resource is available (whether it is not used by another request), and if it is available, the requested hardware resource is used. Inform the upper layer that it is possible. The SRM 123 also schedules use of hardware resources in response to a request from an upper layer, and directly implements the contents of the request (for example, paper transport and image forming operation, memory reservation, file generation, and the like by a printer engine). .
[0042]
The process of the SCS 122 performs application management, operation unit control, system screen display, LED display, resource management, interrupt application control, and the like.
[0043]
The process of the ECS 124 controls an engine of a hardware resource 103 including a monochrome line printer (B & W LP) 101, a color line printer (Color LP) 102, a scanner, a facsimile, and the like.
[0044]
The process of the MCS 125 performs acquisition and release of an image memory, use of a hard disk device (HDD), compression and decompression of image data, and the like.
[0045]
The process of the FCS 127 includes facsimile transmission / reception using PSTN / ISDN from each application layer of the system controller, registration / quotation of various facsimile data managed by a BKM (backup SRAM), facsimile reading, facsimile reception printing, fusion transmission / reception. Provides an API to do so.
[0046]
The process of the NCS 128 is a process for providing a service that can be used in common to applications requiring network I / O, and distributes data received from the network according to each protocol to each application, or distributes data from the application to the data. Mediation when sending to the network side. Specifically, it has server daemons such as ftpd, httpd, lpd, snmpd, telnetd, smtpd, and client functions of the same protocol.
[0047]
The process of the OCS 126 controls an operation panel (operation panel) serving as information transmission means between an operator (user) and main body control. The OCS 126 obtains a key press from the operation panel as a key event, and transmits a key event function corresponding to the obtained key to the SCS 122, and displays various screens on the operation panel in response to a request from the application 130 or the control service. A drawing function for drawing and outputting, a function for controlling the operation panel, and the like are configured from a part of the OCS library registered in advance. This OCS library is implemented by being linked to each module of the application 130 and the control service. Note that all of the OCS 126 may be configured to operate as a process, or all of the OCS 126 may be configured as an OCS library.
[0048]
The application 130 includes a printer application 111 that is a printer application having a page description language (PDL), PCL, and PostScript (PS), a copy application 112 that is a copy application, and a fax application 113 that is a facsimile application. , A scanner application 114 as a scanner application, a network file application 115 as a network file application, and a process inspection application 116 as a process inspection application. Each of these applications transmits an application registration request message to the VAS 140 together with the process ID of its own process at the time of activation, and the VAS 140 that has received the application registration request message performs registration processing for the activated application. I have. In the case of the configuration illustrated in FIG. 2, an application in which the VAS 140 is not arranged transmits an application registration request message to the SCS 122.
[0049]
Each process of the application 130 and each process of the control service realize user services related to image forming processing such as copy, printer, scanner, and facsimile while performing inter-process communication by transmitting a function call, transmitting a return value thereof, and transmitting and receiving a message. are doing.
[0050]
As described above, in the multifunction peripheral 100 according to the first embodiment, there are a plurality of applications 130 and a plurality of control services, all of which operate as processes. Then, one or a plurality of threads are generated inside each of these processes, and the threads are executed in parallel. The control service provides a common service to the application 130. For this reason, many of these processes perform parallel operation and thread parallel operation, perform inter-process communication with each other, and perform cooperative operation. User services related to image forming processes such as copying, printing, scanning, and facsimile are provided. In addition, the MFP 100 allows a third party such as a third vendor to develop and install new applications 117 and 118 in the application layer above the control service layer. 1 and 2 show examples in which the new applications 117 and 118 are mounted.
[0051]
In the multifunction peripheral 100 according to the first embodiment, a plurality of processes of the application 130 and a plurality of processes of the control service are operating, but the application 130 and the control service process each have a single configuration. Is also possible. Further, each application 130 can be added or deleted for each application.
[0052]
FIG. 3 is a block diagram illustrating a configuration of the VAS 140 of the multifunction peripheral 100 according to the first embodiment, and a relationship between the VAS 140, each application, the control service layer 150, and the general-purpose OS 121. Although FIG. 3 shows the printer application 111, the copy application 112, and the new applications 117 and 118 as examples of the application 130, other applications have the same configuration.
[0053]
In the process of the virtual application service (VAS) 140, a dispatcher 144, a control thread 143, a resource use information acquisition thread 141, and an application start determination thread 142 operate.
[0054]
The dispatcher 144 monitors the reception of a message from the application 130 or the control service, and issues a processing request to the control thread 143, the resource use information acquisition thread 141, and the application activation determination thread 142 according to the received message. In the multifunction peripheral 100 according to the first embodiment, the dispatcher 144 transmits the received application registration request message to the control thread 143 when receiving the application registration request message from the application when each application starts. .
[0055]
The control thread 143 receives an application registration request message from the dispatcher 144 and performs an application registration process. Here, the application registration process refers to a process of generating an application registration table (not shown) in the RAM 210 and recording an application ID, which is identification information of the application that transmitted the application registration request message, in the application registration table.
[0056]
In addition, the control thread 143 refers to the resource usage information file 201 stored in the HD 200 to check whether resource usage information is recorded for the application for which the application registration request has been issued, thereby starting the application. Is the first activation or the second or subsequent activation. Then, in the case of the first activation, a resource use information acquisition processing request is issued to the resource use information acquisition thread 141 together with the application ID and the process ID of the application. An application start determination processing request is issued to the thread 142 together with the application ID and the process ID of the application.
[0057]
Upon receiving a processing request from the control thread 143, the resource use information acquisition thread 141 refers to the proc structure 211 (or u area 212) on the RAM 210 managed by the general-purpose OS 121, and refers to the text memory area used by each application. The size, the heap area size, the stack area size, and the CPU occupation time are acquired and generated as a resource usage information file 201 on the hard disk. Such resource usage information is recorded as a record for each application. The above-mentioned CPU occupation time is, for example, the latest CPU occupation time.
[0058]
The program of the VAS 140 is a file in a format executable or installable on a storage medium such as a CD-ROM or FD (flexible disk) as a part or all of a software development kit (SDK: Software Development Kit) or the like. Provided. Further, the program file of the VAS 140 in such an executable format or an installable format may be provided by a method that can be obtained via a network. Note that the application installed in the multifunction peripheral 100 can also be provided by being stored in a storage medium such as a CD-ROM or an FD (flexible disk). Further, it may be provided by a method that can be obtained via a network.
[0059]
FIG. 4 is an explanatory diagram showing an example of the content of the resource usage information file 201 stored in the HD 200. As shown in FIG. 4, the resource usage information file 201 records a text memory size, a heap size, a stack size, and a CPU occupation time for each application ID.
[0060]
FIG. 5 is an explanatory diagram illustrating an example of the proc structure 211 referred to by the resource use information acquisition thread 141. As shown in FIG. 5, the proc structure 211 stores, for each process, a process ID (p_pid), a CPU occupation time, a text memory size, a heap memory size, a stack size, and the like. The proc structure 211 is updated by the general-purpose OS 121 at the time of executing the process, at the time of terminating the process, and when the state of the process changes. Each information of the proc structure 211 can be acquired by the VAS 140 by a system call from the VAS 140.
[0061]
When the application has been activated for the second time or later, the application activation determination thread 142 refers to the resource usage information file 201 and acquires the capacity of each resource required by the application that has made the application registration request. In addition, the application startup determination thread 142 refers to the proc structure 211 by a system call of the general-purpose OS 121 or a service function call provided by the control service, thereby obtaining the remaining capacity of the image memory area, the remaining capacity of the heap area, and the stack. Get the remaining capacity of the area. Then, the two are compared to determine whether the application can be activated. Further, the application activation determination thread 142 acquires the CPU operation rate by a system call of the general-purpose OS 121 or a service function call provided by a control service.
[0062]
Then, it is determined whether the application can be started based on whether the CPU operation rate exceeds a certain value and whether the CPU occupancy time exceeds a certain time. Note that the relationship between the CPU occupation time and the CPU operation rate, that is, the relation between the CPU occupation time for determining that the application should be started in accordance with the value of the CPU operation rate is determined in advance, but the relation between the CPU occupation time and the CPU occupancy is arbitrarily determined by the multifunction peripheral 100 Can be.
[0063]
When determining that the application can be started, the application start determination thread 142 transmits a startable message to the application that has made the application registration request. On the other hand, if it is determined that the application startup should not be continued, a startup end request message is transmitted to the application that made the application registration request.
[0064]
Next, an application startup determination process performed by the VAS 140 of the MFP 100 configured as described above will be described. FIG. 6 is a flowchart illustrating a procedure of processing for registering an application and determining the number of times of application activation by the control thread 143 of the VAS 140.
[0065]
Upon receiving the application registration request message from the application when the dispatcher 144 is activated, the application registration request message is passed to the control thread 143 together with the process ID of the application. Upon receiving the application registration request message and the process ID from the dispatcher 144 (step S501), the control thread 143 determines an application ID for identifying the application, and records the application ID in an application registration table (not shown). Application registration is performed (step S502). It should be noted that the application ID is predetermined for existing applications such as the copy application 112 and the printer application 111, and the VAS 140 holds each application ID internally. Further, new applications 117 and 118 developed by a third vendor or the like are determined in the application registration process at the time of the first activation.
[0066]
Then, the control thread 143 refers to the resource usage information file 201 stored in the HD 200 (step S503), and the resource usage information of the application ID registered in the application registration process is stored in the resource usage information file 201. It is determined whether the application that has made the application registration request is the first activation or the second or subsequent activation by checking whether or not the application has been activated (step S504).
[0067]
If the resource usage information file 201 does not store the resource usage information for the application ID of the application that made the application registration request (step S504: No), it is determined that the application has been started for the first time, and In order to obtain the resource usage information of the resource to be used, the resource usage information acquisition thread 141 transmits a resource usage information acquisition request message together with the application ID and the process ID of the application (step S505).
[0068]
On the other hand, if the resource usage information file 201 stores the resource usage information for the application ID of the application that has made the application registration request (step S504: Yes), it is determined that the activation is the second or later activation, In order to determine whether or not the application can be activated, an application activation determination request message is transmitted to the application activation determination thread 142 together with the application ID and the process ID of the application (step S506).
[0069]
FIG. 7 is a flowchart illustrating a processing procedure of resource use information acquisition by the resource use information acquisition thread 141. In the resource use information acquisition thread 141, the following processing is executed when the application is first started.
[0070]
When the resource use information acquisition thread 141 receives the application ID, the process ID, and the resource use information acquisition request message from the control thread 143 (step S601), the resource use information acquisition thread 141 refers to the proc structure 211 to check the process ID block of the corresponding application ID. A position is searched (step S602). Then, the resource use information of the text memory area size, the heap area size, the stack area size, and the CPU occupation time is acquired from the block of the retrieved process ID (step S603). Then, the obtained resource use information is recorded in the resource use information file 201 together with the application ID (step S604). As a result, information on resources required when the application is activated is stored in the resource usage information file 201.
[0071]
FIG. 8 is a flowchart illustrating a processing procedure for determining whether or not to start the application by the application start determination thread 142. In the application activation determination thread 142, the following processing is executed when the application is activated for the second time or later.
[0072]
Upon receiving the application ID, the process ID, and the application startup determination request message from the control thread 143 (step S701), the application startup determination thread 142 reads the resource usage information of the corresponding application ID from the resource usage information file 201 stored in the HD 200. And retrieves the text memory area size, the heap area size, the stack area size, and the CPU occupation time (step S702). Next, the application activation determination thread 142 obtains the current remaining capacity of the memory by acquiring the resource usage of each process from the proc structure by calling a system call or a control service function (step S703). At this time, the remaining capacity acquired is the remaining capacity of the text memory area, the remaining capacity of the heap area, and the remaining capacity of the stack area.
[0073]
Then, the application activation determination thread 142 compares the text memory area size required for application activation acquired from the resource usage information file 201 with the remaining capacity of the text memory area (step S704). As a result of the comparison, if the size of the text memory area is larger than the remaining capacity of the text memory area (step S704: No), it is determined that the application cannot be executed, and an application activation end request message is transmitted to the application. (Step S709).
[0074]
On the other hand, when the size of the text memory area is equal to or smaller than the remaining capacity of the text memory area (step S704: Yes), it is determined that the text memory area necessary for executing the application can be secured in the current situation. Next, the size of the heap area required for executing the application acquired from the resource usage information file 201 is compared with the remaining capacity of the heap area (step S705). As a result of the comparison, if the heap area size is larger than the remaining capacity of the heap area (step S705: No), it is determined that the application cannot be executed, and an application activation end request message is transmitted to the application ( Step S709).
[0075]
On the other hand, when the heap area size is equal to or less than the remaining capacity of the heap area (step S705: Yes), it is determined that the heap area necessary for executing the application can be secured in the current situation. Then, the stack area size necessary for executing the application acquired from the resource use information file 201 is compared with the remaining capacity of the stack area (step S706). As a result of the comparison, if the stack area size is larger than the remaining capacity of the stack area (step S706: No), it is determined that the application cannot be executed, and an application activation end request message is transmitted to the application ( Step S709).
[0076]
On the other hand, if the stack area size is equal to or smaller than the remaining capacity of the stack area (step S706: Yes), it is determined that the stack area necessary for executing the application can be secured in the current situation. Then, the current CPU operation rate is acquired by issuing a system call (step S707). Then, it is determined whether or not the CPU occupation time is included in the time allowed for the predetermined CPU operation rate (step S708). Then, when the time is outside the permitted time (step S708: No), for example, when the CPU operating rate is 50 to 60%, and when the CPU occupancy time is 60 ms or less, the correspondence to continue the application activation is determined. In this case, if the CPU operating rate is 55% and the CPU occupancy time is 80 ms, it is determined that the entire system becomes unstable if the application is executed in such a state, and an application activation end request message is sent to the application. The data is transmitted (step S709).
[0077]
On the other hand, if the CPU occupation time is within the allowable time (step S708: Yes), for example, if the CPU occupancy rate is 55% and the CPU occupation time is 40 ms in the above example, it is determined that the application execution is a stable operation. As a result, since it has been found that all resources can be secured, the application activation determination thread 142 transmits an application activation enable notification message to the application (step S710).
[0078]
When each application receives the notification message indicating that the application can be activated from the application activation determination thread 142, each application continues to execute the process. On the other hand, when each application receives the application activation end request message from the application activation determination thread 142, the application immediately terminates the execution of the application. Alternatively, the application that has received the application activation end request message may stop the execution after releasing the resources that have been reserved up to that time.
[0079]
If the application activation determination thread 142 determines that the activation of the application should be stopped, the application activation determination thread 142 further increases the text memory area, heap area, or stack area for a control service such as the MCS 125 and secures it. Alternatively, a request message to the effect that the application is activated may be transmitted, and after the size required for activating the application is secured, the activation start notification message may be transmitted to the application. In this case, the convenience of the user can be improved as compared with a case where the application activation end request is simply made.
[0080]
As described above, in the multifunction peripheral 100 according to the first embodiment, the resource use information acquisition thread 141 of the virtual application service 140 can acquire information on resources used by the application 130 and generate the resource use information file 201. It is possible. Then, when the application 130 is activated by the application activation determination thread 142, the text memory area remaining capacity, the heap area remaining capacity, the stack area remaining capacity, and the CPU operation rate are acquired, and the state of these acquired resources is It is possible to determine whether or not the application 130 can be activated based on information on resources used by the application 130 recorded in the resource usage information file 201. As a result, it is possible to prevent the application 130 from being unable to be executed due to the resource status, and to improve the stability of the system of the multifunction peripheral 100. In addition, even when the new applications 117 and 118 developed by the third vendor do not perform processing conscious of the resource limit, it is possible to prevent the system from becoming unstable due to resource shortage, and to stabilize the system of the multifunction peripheral 100. Performance can be improved.
[0081]
In the multifunction peripheral 100 according to the first embodiment, the VAS 140 performs resource use information acquisition processing and application startup determination processing for all applications 130. However, as shown in FIG. Such a process may be performed only for this. For example, resource use information acquisition processing and application start determination processing are performed only for an application developed by a third party such as a third vendor such as new applications 117 and 118, and for existing applications such as the printer application 111 and the copy application 112, Such a service may not be provided.
[0082]
Further, as described above, the resource usage amount at the time of the first startup is recorded in the resource usage information file 201 and is used for subsequent startup determination, and during the application execution period (from startup to termination). Alternatively, the resource usage may be acquired a plurality of times by periodically referring to the proc structure, and the average value of the resource usage may be recorded in the resource usage information file 201. Alternatively, the maximum value obtained during the multiple acquisitions may be recorded in the resource usage information file 201.
[0083]
Further, as in the above-described embodiment, in addition to obtaining and recording the value at the time of the first execution, the above-mentioned average value is obtained every time the application is executed, and the average value is obtained by comparing the previous average value with the previous average value. The resource usage information file 201 may be updated when it exceeds the limit. Further, the maximum value may be obtained every time the application is executed, and the resource usage information file 201 may be updated when the maximum value exceeds the previous maximum value. Further, the average value for each execution of the application may be separately recorded, and the average value among them may be recorded in the resource use information file 201. Alternatively, the maximum value for each execution of the application may be separately recorded, and the average value or the maximum value among them may be recorded in the resource usage information file 201.
[0084]
(Embodiment 2)
Next, a second embodiment of the present invention will be described. In the first embodiment, the VAS 140 determines whether the application can be started. In the second embodiment, the application determines whether the application can be started by receiving the determination message regarding the resource amount from the VAS 140. The configuration is also possible. Further, it is possible to acquire not only the memory and the CPU, but also system device configuration information such as units connected to the multifunction peripheral, and this can be used for determination of activation.
[0085]
The configuration of the second embodiment is the same as the configuration of the first embodiment shown in FIG. 1 or FIG. Further, the processing by the VAS 140 described below may be executed as a thread as shown in FIG. 3, or may be executed as a process of the VAS 140.
[0086]
In the first embodiment, the resource use information file that records the application start performance is used as a file that stores the resource amount that the application is to use, but in the second embodiment, the resource use information file is used like the CPU usage amount. For resource whose amount fluctuates dynamically, use the resource usage information file that records the performance, and for resources that are fixedly used by the application, such as the memory area, use the usage resource information declared by the application at startup. I do. The used resource information is obtained by the VAS 140 from the application (more specifically, from a predetermined memory area) when the application is started for the first time, and is recorded on the hard disk of the multifunction peripheral as an application management file. The resources that are fixedly used are resources that have no or little change in the amount of use each time the application is executed.
[0087]
FIG. 9 shows an example of the contents of the application management file. As shown in the figure, information such as an application name and a version, and used resource information including a memory and a system device configuration are recorded. In addition, information indicating the location of the application management file on the HD 200 is stored in a RAM (in this embodiment, a non-volatile RAM (NV-RAM) of the multifunction peripheral is used).
[0088]
FIG. 10 shows a configuration example of the NV-RAM and a configuration example of the HD according to the new application. Here, the new application corresponds to the applications 117 and 118 in FIGS.
[0089]
As shown in the drawing, the product ID of the application, the size of the used NV-RAM, the offset indicating the start address of the used area in the NV-RAM, and the like are recorded in the NV-RAM for each registered new application. Further, an area for the application is provided in the HD 200 in correspondence with the product ID recorded in the NV-RAM.
[0090]
For example, a directory is provided in the HD 200 corresponding to the application 1, and an area used by the system (the VAS 140) and an area used by the application 1 are provided for the application 1. The application management file shown in FIG. 9 is stored in the system use area.
[0091]
Next, the processing executed by the VAS 140 when the application is started will be described with reference to the flowchart in FIG.
[0092]
As in the first embodiment, when the application starts, the VAS 140 receives the application registration request message (step S801), and checks whether there is an application management file corresponding to the application by accessing the HD 200. (Step S802). If there is no application management file, it is created based on the information declared by the application (step S803). Note that whether or not there is an application management file may be determined by accessing the NV-RAM.
[0093]
If there is an application management file, resource information to be used by the application is acquired from the application management file (step S804). Instead of using the application management file, resource information declared by the application may be used. As for the CPU usage (actual value), a resource usage information file relating to the CPU usage is created in the same manner as described in the first embodiment, and is acquired therefrom. That is, the CPU usage is not used for the determination at the first startup, but is used for the determination at the second and subsequent startups. Note that the CPU usage may not be used to determine the activation. Further, the contents of the resource usage information file may be recorded in the application management file.
[0094]
Next, the resource information of the current MFP 100 is acquired (step S805). For the resources such as the memory capacity, the remaining capacity of the current multifunction peripheral 100 is obtained. Then, by comparing the scheduled resource amount acquired in step S804 with the current resource amount for each resource in the scheduled resource, it is determined whether the scheduled resource amount exceeds the current system resource amount. Is checked (step S806). As for the resources (units and the like) regarding the system device configuration, it is checked whether or not the resources to be used by the application are present in the current resources (step S806).
[0095]
If the planned resource amount does not exceed the current system resource amount and there is no insufficient system device configuration resource, the application is continued to be started (step S807). If there is a resource whose scheduled resource amount exceeds the current system resource amount, or if there is a shortage of system device configuration resources, a resource determination result notification message is transmitted to the application (step S808). Based on the content of this message, the application determines whether to continue the activation. In this embodiment, the resource determination result notification message indicates, for each resource to be used, whether or not the resource on the system device configuration (such as a unit) required by the application is present (OK if present, OK if not) NG), and information such as memory area includes information indicating OK if the scheduled resource amount does not exceed the current system resource amount, and NG if the resource amount exceeds the current system resource amount.
[0096]
Next, the operation of the application that has received the resource determination result notification message will be described with reference to FIG.
[0097]
When the resource determination result notification message is received from the VAS 140 (step S901), it is checked whether or not the first resource included in the message is NG determination (step S902).
[0098]
If it is not NG, it is checked whether there is a next resource (step S903), and if so, the next resource is checked. If the determination is NG in step S902, if there is a restriction mode for the resource, an unusable flag for the resource is set in the application (YES in step S904, step S905). Note that the restricted mode includes not using a device or the like in a part of the system device configuration, or reducing the usage amount of a predetermined memory area, but the example shown in FIG. The case where it is not used is shown.
[0099]
In this case, the application displays on the operation panel that the resource is NG determination, asks the user whether or not to permit the operation in the restricted mode, and restricts only when the user permits the operation in the restricted mode. Alternatively, the activation may be continued.
[0100]
If the CPU power is insufficient, a message is displayed on the operation panel, and the user is inquired whether or not to allow the operation to be delayed. It is also possible to perform such a process.
[0101]
If there is no next resource information in step S903, the application is continued to be activated, or a restricted activation procedure is performed (step S906).
[0102]
If there is no restricted operation mode in step S904, an application activation end procedure is performed (step S907). The procedure of this processing will be described with reference to FIG.
[0103]
First, resources related to the operation unit display are released (step S1001). Then, the memory secured so far is released (step S1002), and an application registration deletion request is made to the VAS 140 (step S1003). Next, a process of stopping inter-process communication is performed (step S1004), and the own process is terminated by a system call (step S1005). Before the above processing, notification to the user, release of the scanner and plotter, and release of network resources are performed as necessary.
[0104]
Note that in step S806 shown in FIG. 11, if there is a resource whose scheduled resource amount exceeds the current system resource amount, the resource is a memory area (text memory) that is indispensably used by the application and is fixedly used. If the application is an area, a heap area, or a stack area), the VAS 140 may determine that the application cannot be activated, and may transmit the activation stop request to the application as the resource determination result notification message. In this case, the application immediately executes the processing shown in FIG. Further, the VAS 140 may determine whether or not the application is to be activated with restriction, and when it is determined that the restricted activation is possible, the VAS 140 may notify the application to that effect. In this case, the VAS 140 can inquire the user of the restricted activation.
[0105]
As described above, by using the information related to the system device configuration shown as “system configuration related” in FIG. 9 as the resource information in the determination of startup, for example, a device having a punch or staple function is mounted on the multifunction peripheral 100. Unnecessary startup such as starting an application that cannot be used if it is not attached to the multifunction peripheral even if such a device is not installed can be suppressed.
[0106]
In addition, model information may be used in addition to the above-mentioned information in determining the activation. This makes it possible to suppress malfunctions and malfunctions caused by differences in functions between models and models.
[0107]
Note that, in the flow of FIG. 11, the VAS 140 does not acquire the resource information scheduled to be used by the application (step S804), and sends the current device configuration information and the remaining resource amount to the application as it is. , And the application may determine the necessary resources. In this case, the resources to be used held by the application are compared with the resources in the resource determination result message one by one, and the presence or absence of the resources to be used is determined, and the application determines the activation.
[0108]
The process shown in FIG. 11 may be performed each time the application is started, or may be performed only when the application is installed.
[0109]
Next, the procedure of acquiring the current resource information by the VAS 140 in step S805 in FIG. 11 will be described.
[0110]
In obtaining the current resource information of the multifunction peripheral 100, information on the system device configuration and the amount of system resources such as a memory area are obtained. Before describing the processing procedure of step S805, acquisition of system device configuration information will be described.
[0111]
The system device configuration information is acquired by a service module of the control service layer (hereinafter, a case where the SCS 122 acquires the system device configuration information will be described as an example) and stored in the system device configuration information structure. The procedure when the SCS 122 acquires the system device configuration information will be described with reference to the flowchart in FIG.
[0112]
When the main power of the MFP 100 is turned on (step S1101), the SCS 122 receives a notification of device configuration information from each unit connection sensor and each unit of the MFP 100 (step S1102). The SCS 122 stores the notified system device configuration information in the system device configuration information structure (step S1103). FIG. 15 shows a configuration example of the system device configuration information structure. That is, the SCS 122 acquires the information of the items shown in FIG. 15 and stores it in the system device configuration information structure.
[0113]
After that, the system device configuration information structure is arranged on the shared memory (physically on the RAM) (step S1104), and the system module configuration information is transmitted to the service module or the application that has issued the registration request to the SCS 122. A system device configuration information notification message indicating the acquisition is issued (step S1105). For example, when the VAS 140 is activated, the SCS 122 notifies the VAS 140 of a system device configuration information notification message.
[0114]
By arranging the system device configuration information structure on the shared memory as described above, another module (such as VAS) can access the system device configuration information structure and acquire the system device configuration information. Become.
[0115]
Next, with reference to FIG. 16, a description will be given of a processing procedure of acquiring the current resource information by the VAS 140 in step S805 of FIG.
[0116]
First, the VAS 140 checks whether a system device configuration information notification message has been received (step S1201). If it has not been received, it is repeatedly checked at predetermined time intervals whether or not it has been received. If the reception of the notification of the system device configuration information cannot be confirmed even after the elapse of a predetermined time, a timeout occurs and a system error occurs.
[0117]
If the system device configuration information notification message has been received, the system device configuration information is acquired by accessing the system device configuration information structure (step S1202). Subsequently, the system resource amount (memory area or the like) is obtained by accessing the proc structure (step S1203).
[0118]
Through the above processing, it is possible to acquire the current resource information used for comparison with the resource to be used.
[0119]
(Embodiment 3)
In the first and second embodiments, the current resource usage such as the memory area is obtained from the proc structure for comparison with the resource to be used. In the third embodiment, the current resource usage is obtained. Instead of acquiring them, resources are allocated in advance for the new application. Then, the activation determination is performed by comparing the allocated resource amount with the resource amount to be used by the new application. The resource amount allocated in advance is recorded in, for example, an application management file.
[0120]
That is, for example, in the flow of FIG. 8 of the first embodiment, instead of acquiring the current resource usage (step S703), a resource amount allocated in advance is obtained from, for example, an application management file. Then, the activation is determined by comparing the resource amount with the resource amount used by the application.
[0121]
When a plurality of new applications are started, a predetermined resource amount may be allocated to the plurality of new applications collectively, or each resource may be assigned to each of the new applications that may be started. A quantity may be assigned.
[0122]
In the former case, when one new application is started, the amount of resources scheduled to be used by the new application is subtracted from the total amount of allocated resources, and the resource amount and usage of the resulting new application are subtracted. The start-up decision is made by comparing the scheduled resource amount. The same applies to a new application started thereafter.
[0123]
In the latter case, for example, the amount of resources to be used by the new application is checked and the amount is allocated. Further, the application may be equally allocated to a plurality of new applications.
[0124]
The above method is effective for resources that the application needs fixedly, such as a memory area. Resources that cannot be allocated in advance, such as CPU usage, are not used in the determination or are determined using the methods of the first and second embodiments.
[0125]
(Embodiment 4)
In the multifunction peripheral 100 according to the first embodiment, only one VAS 140 exists for all applications, but in the multifunction peripheral according to the fourth embodiment, one VAS is activated for each application. Each VAS performs resource use information acquisition and application activation determination only for the corresponding application. In the fourth embodiment, the operation of the first embodiment will be described as an example. However, in the second and third embodiments, the configuration of the VAS may be the same as that of the fourth embodiment.
[0126]
FIG. 17 is a block diagram illustrating a configuration of a multifunction peripheral 800 according to the fourth embodiment. As shown in FIG. 17, the MFP 800 differs from the MFP 100 according to the first embodiment in that a plurality of virtual application services (VAS) 841 to 848 operate for each application of the application 130. I have.
[0127]
The VASs 841 to 848 correspond to the printer application 111, the copy application 112, the fax application 113, the scanner application 114, the net file application 115, the process inspection application 116, the new applications 117 and 118, and perform resource use information acquisition processing and application startup determination. Processing is performed. In addition, as shown in FIG. 18, VAS may be provided only for a new application.
[0128]
FIG. 19 is a block diagram illustrating a configuration of the VASs 841 to 848 of the multifunction peripheral 800 according to the fourth embodiment, and a relationship between the VASs 841 to 848 and each application, the control service layer 150, and the general-purpose OS 121. Note that FIG. 17 illustrates an example of the printer application 111, the copy application 112, and the new applications 117 and 118 as the applications 130, and further illustrates the VASs 841, 842, 847, and 848 corresponding to these applications as examples. Other applications have the same configuration.
[0129]
Further, in the MFP 800 according to the fourth embodiment, unlike the MFP 100 according to the first embodiment, as shown in FIG. 19, a VAS control process (daemon) 801 is provided between each VAS 841 to 848 and each application. Is working.
[0130]
The VAS control process (daemon) 801 receives an application registration request message from each application, performs an application registration process, and generates VASs 841 to 848 corresponding to the application that made the application registration request. Further, the VAS control process 801 refers to the resource usage information file 201 stored in the HD 200 and checks whether resource usage information is recorded for the application for which the application registration request has been issued, thereby determining It is determined whether the activation is the first activation or the second or subsequent activation. Then, in the case of the first activation, a resource use information acquisition processing request is issued to the VAS 841 to 848 corresponding to the application together with the application ID and the process ID of the application. The application start determination processing request is sent to the VASs 841 to 848 to be executed together with the application ID and the process ID of the application.
[0131]
In the processes of the virtual application services (VAS) 841 to 848, a dispatcher 144, a resource use information acquisition thread 141, and an application activation determination thread 142 operate.
[0132]
The dispatcher 144 monitors the reception of a message from the application 130 or the control service, and issues a processing request to the resource use information acquisition thread 141 and the application activation determination thread 142 according to the received message. In the MFP 800 according to the second embodiment, the dispatcher 144 receives a resource use information acquisition processing request message or an application start determination processing request message from the VAS control process 801 together with the application ID and the application process ID. I have. When the dispatcher 144 receives the resource use information acquisition process request message, the dispatcher 144 sends the received resource use information acquisition process request message together with the application ID and the process ID of the application to the resource use information acquisition thread 141, and transmits the application start determination request message. When received, the application start determination request message received together with the application ID and the process ID of the application is transmitted to the application start determination thread 142.
[0133]
Upon receiving the resource use information acquisition request message from the dispatcher 144, the resource use information acquisition thread 141 acquires resource information necessary for application activation and stores the resource use information file 201 in the same manner as the VAS 140 in the first embodiment. Generated on the hard disk (HD) 200.
[0134]
Upon receiving the application startup determination request message from the dispatcher 144, the application startup determination thread 142 performs an application startup determination process with reference to the resource usage information file 201, similarly to the VAS 140 in the first embodiment.
[0135]
The resource use information acquisition process executed by the resource use information acquisition thread 141 of the VAS 841 to 848 and the application activation determination process executed by the application activation determination thread 142 in the multifunction peripheral 800 according to the fourth embodiment are described in the first embodiment. Is the same as the processing by each thread of the VAS 140 in the multifunction peripheral 100.
[0136]
As described above, according to the MFP 800 according to the fourth embodiment, similarly to the MFP 100 according to the first embodiment, the system stability of the MFP 800 can be improved.
[0137]
Further, in the multifunction peripheral 800 according to the fourth embodiment, the VASs 841 to 848 are separately activated for each application 130 to be activated, so that the activation determination process of the plurality of applications 130 is performed by the VAS 841 to 848 corresponding to each application 130. Can be executed in parallel, and the process of determining whether to start an application can be performed efficiently.
[0138]
In the multifunction peripheral 800 according to the fourth embodiment, the VASs 841 to 848 are separately activated for all applications. However, as shown in FIG. May be configured. For example, the VASs 847 and 848 are activated only for applications developed by a third party such as a third vendor such as the new applications 117 and 118 to perform resource use information acquisition processing and application activation determination processing, and the printer application 111 and the copy application An existing application such as 112 can be configured not to provide such a service.
[0139]
Further, in the multifunction peripherals 100 and 800 according to the first and fourth embodiments, resource use information acquisition and application start determination are performed using a text memory area, a heap area, a stack area, a CPU occupation time, and a CPU operating rate as resources. However, such a resource is merely an example, and a configuration using another resource may be adopted.
[0140]
In addition to the above configuration, the VAS may be configured as shown in FIGS. 20A to 20C.
[0141]
FIG. 20A shows a case where the VAS started for each application is a child process of the parent VAS, and the parent VAS itself does not have a screen control right (user interface). FIG. 20B shows a case where the parent VAS itself has a screen control right (user interface). FIG. 20C shows a case where a VAS function corresponding to each application is provided as a thread.
[0142]
It should be noted that the present invention is not limited to the above embodiment, and various changes and applications are possible within the scope of the claims.
[0143]
【The invention's effect】
As described above, according to the present invention, it is possible to acquire information on resources used by an application. Also, by being able to acquire information on resources in this way, it is possible to limit application startup as necessary based on the amount of resources used by the application and the state of the resources actually provided by the MFP. It is possible to make a determination as to whether or not the answer is NO.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a configuration of a multifunction peripheral according to a first embodiment;
FIG. 2 is a block diagram illustrating another example of the configuration of the multifunction peripheral according to the first embodiment;
FIG. 3 is a block diagram illustrating a configuration of a VAS of the multifunction peripheral according to the first embodiment and a relationship between the VAS, each application, a control service layer, and a general-purpose OS.
FIG. 4 is an explanatory diagram of an example of the content of a resource usage information file in the multifunction peripheral according to the first embodiment;
FIG. 5 is an explanatory diagram of an example of a proc structure referred to by a VAS resource use information acquisition thread in the multifunction peripheral according to the first embodiment;
FIG. 6 is a flowchart illustrating a procedure of processing for registering an application and determining the number of activations of an application by a VAS control thread in the multifunction peripheral according to the first embodiment;
FIG. 7 is a flowchart of a process procedure of acquiring resource use information by a VAS resource use information acquisition thread in the multifunction peripheral according to the first embodiment;
FIG. 8 is a flowchart of a process procedure of determining whether or not to start an application by an application startup determination thread of the VAS in the multifunction peripheral according to the first embodiment;
FIG. 9 is a diagram illustrating an example of contents of an application management file in the multifunction peripheral according to the second embodiment;
FIG. 10 is a diagram illustrating a configuration example of an NV-RAM and a configuration example of an HD in the multifunction peripheral according to the second embodiment.
FIG. 11 is a flowchart illustrating a process executed by a VAS when an application is activated in the multifunction peripheral according to the second embodiment;
FIG. 12 is a flowchart illustrating an operation of an application that has received a resource determination result notification message.
FIG. 13 is a flowchart illustrating an application activation end procedure.
FIG. 14 is a flowchart illustrating a procedure for acquiring system device configuration information in the multifunction peripheral according to the second embodiment;
FIG. 15 is a diagram illustrating a configuration example of a system device configuration information structure in the multifunction peripheral according to the second embodiment;
FIG. 16 is a flowchart of a procedure of acquiring current resource information in the multifunction peripheral according to the second embodiment;
FIG. 17 is a block diagram illustrating a configuration of a multifunction peripheral according to a fourth embodiment;
FIG. 18 is a block diagram illustrating another example of the configuration of the multifunction peripheral according to the fourth embodiment.
FIG. 19 is a block diagram illustrating a configuration of a VAS of the multifunction peripheral according to the fourth embodiment and a relationship between the VAS, each application, a control service layer, and a general-purpose OS.
FIG. 20 is a diagram illustrating a configuration of a VAS in the multifunction peripheral.
[Explanation of symbols]
100 MFP
101 black and white line printer
102 color line printer
103 Hardware resources
110 software group
111 Printer App
112 Copy app
113 Fax App
114 Scanner App
115 Net File App
116 Process inspection application
117,118 New Apps
120 platform
121 General-purpose OS
122 SCS
123 SRM
124 ECS
125 MCS
126 OCS
127 FCS
128 NCS
130 Application
140, 841-848 Virtual Application Service (VAS)
141 Resource usage information acquisition thread
142 Application start judgment thread
143 control thread
144 dispatcher
150 Control Service Layer
200 Hard Disk (HD)
201 Resource usage information file
210 RAM
211 proc structure
212 u region
800 MFP
801 VAS control process

Claims (30)

アプリケーションを実行させるためのリソースを備えた装置であって、
前記アプリケーションの実行中に、該アプリケーションが使用するリソースに関するリソース情報を取得し、該リソース情報を記憶装置に格納する取得手段を有することを特徴とする装置。
An apparatus having resources for executing an application,
An apparatus comprising: an acquisition unit configured to acquire resource information on resources used by the application during execution of the application, and to store the resource information in a storage device.
前記取得手段は、前記アプリケーションが使用するリソースの使用量を定期的に取得し、定期的に取得した使用量に基づき前記リソース情報を生成し、該リソース情報を格納する請求項1に記載の装置。2. The apparatus according to claim 1, wherein the obtaining unit periodically obtains a usage amount of a resource used by the application, generates the resource information based on the regularly obtained usage amount, and stores the resource information. . 前記リソース情報は、定期的に取得した使用量の平均値又は最大値である請求項2に記載の装置。The apparatus according to claim 2, wherein the resource information is an average value or a maximum value of usage amounts acquired periodically. 前記アプリケーションの起動から終了までの期間における前記平均値又は最大値を、起動から終了まで毎に記録しておき、
前記リソース情報として、起動から終了まで毎に記録した複数の平均値の平均値又は最大値、又は、起動から終了まで毎に記録した複数の最大値の平均値又は最大値を用いる請求項3に記載の装置。
The average value or the maximum value during the period from the start to the end of the application is recorded every time from the start to the end,
The method according to claim 3, wherein, as the resource information, an average value or a maximum value of a plurality of average values recorded from start to end or an average value or a maximum value of a plurality of maximum values recorded from start to end is used. The described device.
前記取得手段は、前記装置におけるプロセスが使用するリソースに関する情報を保持するシステム情報から前記アプリケーションが使用するリソースに関する情報を前記リソース情報として取得することを特徴とする請求項1ないし4のうちいずれか1項に記載の装置。The method according to claim 1, wherein the obtaining unit obtains, as the resource information, information regarding resources used by the application from system information holding information regarding resources used by processes in the device. An apparatus according to claim 1. 前記装置は、予め組み込まれたソフトウェアによりサービスを提供する組み込み装置であり、
前記実行されるアプリケーションは、該予め組み込まれたソフトウェアとは別に前記装置に搭載されるアプリケーションである請求項1に記載の装置。
The device is an embedded device that provides a service using pre-installed software,
The apparatus according to claim 1, wherein the application to be executed is an application installed in the apparatus separately from the pre-installed software.
前記装置は画像形成装置であり、該画像形成装置は、
画像形成処理におけるハードウェアリソースと、
該ハードウェアリソースの制御に関するサービスを複数のアプリケーションに共通に提供するコントロールサービス部と、
該コントロールサービス部をサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービス部とを備え、
仮想アプリケーションサービス部は、前記取得手段を有する請求項6に記載の装置。
The apparatus is an image forming apparatus, and the image forming apparatus includes:
Hardware resources in the image forming process;
A control service unit that provides a service related to control of the hardware resources to a plurality of applications in common;
A virtual application service unit operating as a client process using the control service unit as a server, and operating as a server process using the application as a client,
The apparatus according to claim 6, wherein the virtual application service unit includes the acquisition unit.
アプリケーションを実行させるためのリソースを備えた装置であって、
前記装置に取り付けられた前記リソースとしての各機器から機器構成情報を受信し、該機器構成情報を記憶装置に格納する手段を有することを特徴とする装置。
An apparatus having resources for executing an application,
An apparatus comprising: means for receiving device configuration information from each device as the resource attached to the device, and storing the device configuration information in a storage device.
前記機器構成情報を格納したことを通知するためのメッセージを、前記装置において実行されるソフトウエアモジュールに送信する手段を有する請求項8に記載の装置。The apparatus according to claim 8, further comprising means for transmitting a message for notifying that the device configuration information has been stored to a software module executed in the apparatus. アプリケーションを実行させるためのリソースを備えた装置であって、
アプリケーションが使用するリソースに関する情報を含むアプリケーション管理ファイルと、
該アプリケーションが起動する際に、該アプリケーションが使用する予定のリソースに関する情報を前記アプリケーション管理ファイルから取得する取得手段と
を有することを特徴とする装置。
An apparatus having resources for executing an application,
An application management file that contains information about the resources used by the application;
An acquisition unit configured to acquire information on a resource to be used by the application from the application management file when the application is started.
前記アプリケーション管理ファイルは、メモリ関連の情報と、前記装置の機器構成に関する情報とを含む請求項10に記載の装置。The apparatus according to claim 10, wherein the application management file includes information related to a memory and information related to a device configuration of the apparatus. アプリケーションが使用するリソースに関する情報を含むアプリケーション管理ファイルを更に有し、
該アプリケーションが起動する際に、該アプリケーションが固定的に使用するリソースに関する情報を前記アプリケーション管理ファイルから取得する請求項1に記載の装置。
Further comprising an application management file containing information about resources used by the application,
The apparatus according to claim 1, wherein when the application is started, information on resources that are fixedly used by the application is acquired from the application management file.
前記アプリケーション管理ファイルにおける前記リソースに関する情報は、前記アプリケーションの起動時に該アプリケーションから取得される情報である請求項10に記載の装置。The apparatus according to claim 10, wherein the information on the resource in the application management file is information obtained from the application when the application is started. 前記装置は、予め組み込まれたソフトウェアによりサービスを提供する組み込み装置であり、
前記実行されるアプリケーションは、該予め組み込まれたソフトウェアとは別に前記装置に搭載されるアプリケーションである請求項10に記載の装置。
The device is an embedded device that provides a service using pre-installed software,
The apparatus according to claim 10, wherein the executed application is an application installed in the apparatus separately from the pre-installed software.
前記装置は画像形成装置であり、該画像形成装置は、
画像形成処理におけるハードウェアリソースと、
該ハードウェアリソースの制御に関するサービスを複数のアプリケーションに共通に提供するコントロールサービス部と、
該コントロールサービス部をサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービス部とを備え、
仮想アプリケーションサービス部は、前記取得手段を有する請求項14に記載の装置。
The apparatus is an image forming apparatus, and the image forming apparatus includes:
Hardware resources in the image forming process;
A control service unit that provides a service related to control of the hardware resources to a plurality of applications in common;
A virtual application service unit operating as a client process using the control service unit as a server, and operating as a server process using the application as a client,
The apparatus according to claim 14, wherein the virtual application service unit includes the acquisition unit.
アプリケーションを実行させるためのリソースを備えた装置における処理方法であって、
前記アプリケーションの実行中に、該アプリケーションが使用するリソースに関するリソース情報を取得し、該リソース情報を記憶装置に格納する取得ステップを有することを特徴とする方法。
A processing method in an apparatus having resources for executing an application,
A method of acquiring resource information about resources used by the application during execution of the application, and storing the resource information in a storage device.
前記取得ステップにおいて、前記装置は、前記アプリケーションが使用するリソースの使用量を定期的に取得し、定期的に取得した使用量に基づき前記リソース情報を生成し、該リソース情報を格納する請求項16に記載の方法。17. The device according to claim 16, wherein, in the obtaining step, the device periodically obtains a usage amount of a resource used by the application, generates the resource information based on the regularly obtained usage amount, and stores the resource information. The method described in. 前記リソース情報は、定期的に取得した使用量の平均値又は最大値である請求項17に記載の方法。18. The method according to claim 17, wherein the resource information is an average value or a maximum value of the usage amounts acquired periodically. 前記アプリケーションの起動から終了までの期間における前記平均値又は最大値を、起動から終了まで毎に記録しておき、
前記リソース情報として、起動から終了まで毎に記録した複数の平均値の平均値又は最大値、又は、起動から終了まで毎に記録した複数の最大値の平均値又は最大値を用いる請求項18に記載の方法。
The average value or the maximum value during the period from the start to the end of the application is recorded every time from the start to the end,
The resource information may be an average value or a maximum value of a plurality of average values recorded from start to end or an average value or a maximum value of a plurality of maximum values recorded from start to end. The described method.
前記取得ステップにおいて、前記装置は、前記装置におけるプロセスが使用するリソースに関する情報を保持するシステム情報から前記アプリケーションが使用するリソースに関する情報を前記リソース情報として取得することを特徴とする請求項16ないし19のうちいずれか1項に記載の方法。20. The method according to claim 16, wherein, in the obtaining step, the apparatus obtains, as the resource information, information on resources used by the application from system information holding information on resources used by processes in the apparatus. The method according to claim 1. 前記装置は、予め組み込まれたソフトウェアによりサービスを提供する組み込み装置であり、
前記実行されるアプリケーションは、該予め組み込まれたソフトウェアとは別に前記装置に搭載されるアプリケーションである請求項16に記載の方法。
The device is an embedded device that provides a service using pre-installed software,
17. The method according to claim 16, wherein the executed application is an application installed on the device separately from the pre-installed software.
前記装置は画像形成装置であり、該画像形成装置は、
画像形成処理におけるハードウェアリソースと、
該ハードウェアリソースの制御に関するサービスを複数のアプリケーションに共通に提供するコントロールサービス部と、
該コントロールサービス部をサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービス部とを備え、
仮想アプリケーションサービス部は、前記取得ステップを実行する請求項21に記載の方法。
The apparatus is an image forming apparatus, and the image forming apparatus includes:
Hardware resources in the image forming process;
A control service unit that provides a service related to control of the hardware resources to a plurality of applications in common;
A virtual application service unit operating as a client process using the control service unit as a server, and operating as a server process using the application as a client,
The method according to claim 21, wherein the virtual application service unit performs the obtaining step.
アプリケーションを実行させるためのリソースを備えた装置における処理方法であって、
前記装置に取り付けられた前記リソースとしての各機器から機器構成情報を受信し、該機器構成情報を記憶装置に格納するステップを有することを特徴とする方法。
A processing method in an apparatus having resources for executing an application,
Receiving a device configuration information from each device as the resource attached to the device, and storing the device configuration information in a storage device.
前記機器構成情報を格納したことを通知するためのメッセージを、前記装置において実行されるソフトウエアモジュールに送信するステップを更に有する請求項23に記載の方法。24. The method according to claim 23, further comprising transmitting a message to notify that the device configuration information has been stored to a software module executed in the device. アプリケーションを実行させるためのリソースを備えた装置における処理方法であって、
前記装置は、アプリケーションが使用するリソースに関する情報を含むアプリケーション管理ファイルを有し、
該アプリケーションが起動する際に、該アプリケーションが使用する予定のリソースに関する情報を前記アプリケーション管理ファイルから取得する取得ステップを有することを特徴とする方法。
A processing method in an apparatus having resources for executing an application,
The device has an application management file containing information about resources used by the application,
A method, comprising: acquiring information on resources to be used by the application from the application management file when the application is started.
前記アプリケーション管理ファイルは、メモリ関連の情報と、前記装置の機器構成に関する情報とを含む請求項25に記載の方法。26. The method according to claim 25, wherein the application management file includes memory-related information and information on a device configuration of the device. 前記装置はアプリケーションが使用するリソースに関する情報を含むアプリケーション管理ファイルを更に有し、
該アプリケーションが起動する際に、該アプリケーションが固定的に使用するリソースに関する情報を前記アプリケーション管理ファイルから取得する請求項16に記載の方法。
The device further comprises an application management file containing information about resources used by the application;
17. The method according to claim 16, wherein when the application is started, information on resources that are fixedly used by the application is obtained from the application management file.
前記アプリケーション管理ファイルにおける前記リソースに関する情報は、前記アプリケーションの起動時に該アプリケーションから取得される情報である請求項25に記載の方法。The method according to claim 25, wherein the information on the resource in the application management file is information obtained from the application when the application is started. 前記装置は、予め組み込まれたソフトウェアによりサービスを提供する組み込み装置であり、
前記実行されるアプリケーションは、該予め組み込まれたソフトウェアとは別に前記装置に搭載されるアプリケーションである請求項25に記載の方法。
The device is an embedded device that provides a service using pre-installed software,
26. The method according to claim 25, wherein the executed application is an application installed on the device separately from the pre-installed software.
前記装置は画像形成装置であり、該画像形成装置は、
画像形成処理におけるハードウェアリソースと、
該ハードウェアリソースの制御に関するサービスを複数のアプリケーションに共通に提供するコントロールサービス部と、
該コントロールサービス部をサーバとしたクライアントプロセスとして動作し、かつ前記アプリケーションをクライアントとしたサーバプロセスとして動作する仮想アプリケーションサービス部とを備え、
仮想アプリケーションサービス部は、前記取得ステップを実行する請求項29に記載の方法。
The apparatus is an image forming apparatus, and the image forming apparatus includes:
Hardware resources in the image forming process;
A control service unit that provides a service related to control of the hardware resources to a plurality of applications in common;
A virtual application service unit operating as a client process using the control service unit as a server, and operating as a server process using the application as a client,
The method according to claim 29, wherein the virtual application service unit performs the obtaining step.
JP2003120251A 2002-04-26 2003-04-24 System and method for obtaining resource information Pending JP2004005612A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003120251A JP2004005612A (en) 2002-04-26 2003-04-24 System and method for obtaining resource information
US10/422,759 US20030218765A1 (en) 2002-04-26 2003-04-25 Apparatus for controlling launch of application and method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002127079 2002-04-26
JP2003120251A JP2004005612A (en) 2002-04-26 2003-04-24 System and method for obtaining resource information

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2008265684A Division JP4504447B2 (en) 2002-04-26 2008-10-14 Image forming apparatus, application activation determination method, program, and recording medium

Publications (1)

Publication Number Publication Date
JP2004005612A true JP2004005612A (en) 2004-01-08

Family

ID=30447551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003120251A Pending JP2004005612A (en) 2002-04-26 2003-04-24 System and method for obtaining resource information

Country Status (1)

Country Link
JP (1) JP2004005612A (en)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004312711A (en) * 2003-03-25 2004-11-04 Ricoh Co Ltd Image forming apparatus and method for operating image forming apparatus by using remote application
JP2005229270A (en) * 2004-02-12 2005-08-25 Ricoh Co Ltd Image forming device and method of interface
WO2006046486A1 (en) * 2004-10-27 2006-05-04 Nec Corporation Resource management system, resource information providing method, and program
JP2006146678A (en) * 2004-11-22 2006-06-08 Hitachi Ltd Method for controlling program in information processor, information processor and program
JP2006148876A (en) * 2004-10-18 2006-06-08 Ricoh Co Ltd Image formation apparatus, information processing method, information processing program, and recording medium
JP2007251245A (en) * 2006-03-13 2007-09-27 Ricoh Co Ltd Image forming apparatus, file management method, and file management program
JP2007336076A (en) * 2006-06-13 2007-12-27 Ricoh Co Ltd Image forming apparatus, method and program for acquiring information
JP2009070208A (en) * 2007-09-14 2009-04-02 Ricoh Co Ltd Image processing unit and memory allocation method
JP2009110213A (en) * 2007-10-30 2009-05-21 Fujitsu Ltd Control program and method, and computer
JP2009253982A (en) * 2008-04-03 2009-10-29 Sharp Corp Method of altering internal task scheduling policies for multifunction printer
JP2010057186A (en) * 2003-03-25 2010-03-11 Ricoh Co Ltd Terminal device, method, and program
JP2012118777A (en) * 2010-12-01 2012-06-21 Ricoh Co Ltd Information processing system, information processing apparatus, method, program and recording medium
JP2013179610A (en) * 2004-02-17 2013-09-09 Ricoh Co Ltd Electronic device, image forming device, information processing method, information processing program, and recording medium
WO2014171002A1 (en) * 2013-04-19 2014-10-23 株式会社日立製作所 Memory management method, computer, and recording medium
JP2017167836A (en) * 2016-03-16 2017-09-21 コニカミノルタ株式会社 Image formation device, program

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004312711A (en) * 2003-03-25 2004-11-04 Ricoh Co Ltd Image forming apparatus and method for operating image forming apparatus by using remote application
JP2010057186A (en) * 2003-03-25 2010-03-11 Ricoh Co Ltd Terminal device, method, and program
JP4523991B2 (en) * 2003-03-25 2010-08-11 株式会社リコー Terminal device, method, system, and program
JP2005229270A (en) * 2004-02-12 2005-08-25 Ricoh Co Ltd Image forming device and method of interface
JP2013179610A (en) * 2004-02-17 2013-09-09 Ricoh Co Ltd Electronic device, image forming device, information processing method, information processing program, and recording medium
JP4597834B2 (en) * 2004-10-18 2010-12-15 株式会社リコー Image forming apparatus, information processing method, information processing program, and recording medium
JP2006148876A (en) * 2004-10-18 2006-06-08 Ricoh Co Ltd Image formation apparatus, information processing method, information processing program, and recording medium
WO2006046486A1 (en) * 2004-10-27 2006-05-04 Nec Corporation Resource management system, resource information providing method, and program
US8484650B2 (en) 2004-10-27 2013-07-09 Nec Corporation Resource management system, resource information providing method and program for providing resource information relating to a plurality of resources
US8191068B2 (en) 2004-10-27 2012-05-29 Nec Corporation Resource management system, resource information providing method and program
JP2006146678A (en) * 2004-11-22 2006-06-08 Hitachi Ltd Method for controlling program in information processor, information processor and program
US7886297B2 (en) 2004-11-22 2011-02-08 Hitachi, Ltd. Program control process for an information processing apparatus
JP2007251245A (en) * 2006-03-13 2007-09-27 Ricoh Co Ltd Image forming apparatus, file management method, and file management program
JP2007336076A (en) * 2006-06-13 2007-12-27 Ricoh Co Ltd Image forming apparatus, method and program for acquiring information
JP2009070208A (en) * 2007-09-14 2009-04-02 Ricoh Co Ltd Image processing unit and memory allocation method
JP2009110213A (en) * 2007-10-30 2009-05-21 Fujitsu Ltd Control program and method, and computer
JP2009253982A (en) * 2008-04-03 2009-10-29 Sharp Corp Method of altering internal task scheduling policies for multifunction printer
JP2012118777A (en) * 2010-12-01 2012-06-21 Ricoh Co Ltd Information processing system, information processing apparatus, method, program and recording medium
WO2014171002A1 (en) * 2013-04-19 2014-10-23 株式会社日立製作所 Memory management method, computer, and recording medium
JP2017167836A (en) * 2016-03-16 2017-09-21 コニカミノルタ株式会社 Image formation device, program

Similar Documents

Publication Publication Date Title
JP3679349B2 (en) Image forming apparatus, image forming method, image forming program, and application program
JP4276909B2 (en) Image forming apparatus and application activation control method
US20030218765A1 (en) Apparatus for controlling launch of application and method
JP2004005612A (en) System and method for obtaining resource information
JP2004030601A (en) Device and method of making application start judgment by resource information
JP6066006B2 (en) Image forming apparatus
JP4344203B2 (en) Image forming apparatus and information display method
JP4373742B2 (en) Image forming apparatus and application activation restriction method
JP4504447B2 (en) Image forming apparatus, application activation determination method, program, and recording medium
JP4153152B2 (en) Application execution control system, application execution control method, and computer-readable recording medium storing a program for causing a computer to execute the method
JP4394740B2 (en) Image forming apparatus, method, and program
JP4128506B2 (en) Image forming apparatus and application information acquisition method
JP4001531B2 (en) Image forming apparatus
JP2006311590A (en) Image forming apparatus and application installing method
JP4676977B2 (en) Image forming apparatus, application information acquisition method, and program
JP2006271005A (en) Image forming apparatus and method for installing application
JP2004164582A (en) Information processing apparatus and program generation method
JP3910992B2 (en) Image forming apparatus, image forming method, and image forming program
JP4677054B2 (en) Image forming apparatus, program, recording medium, and method
JP4485749B2 (en) Image forming apparatus
JP5063718B2 (en) Image forming apparatus and network system
JP2005229270A (en) Image forming device and method of interface
JP2006027277A (en) Image forming apparatus
JP2007156686A (en) Job management device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050822

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080121

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080513

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080714

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080812