(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムの性能に関する検査を実行する手段と、
前記検査に合格した場合に、前記アプリケーションプログラムを特定するアプリケーションＩＤに関連付けた前記アプリケーションプログラムに固有の署名であって前記アプリケーションプログラムのインストール時に正当性の確認に用いられる署名を付した検査結果およびインタフェース利用可能リストを生成する手段と、
前記アプリケーションプログラム、検査結果およびインタフェース利用可能リストを出力する手段と
を備えたことを特徴とするアプリケーション開発装置。
【請求項２】
請求項１に記載のアプリケーション開発装置において、
前記検査は、前記アプリケーションプログラムのインタフェース実行中のメモリ使用量が予めシステムが既定するメモリ消費量以下に収まっていること、および、インタフェース実行後のメモリ消費量が増加していないことを確認する
ことを特徴とするアプリケーション開発装置。
【請求項３】
請求項１または２のいずれか一項に記載のアプリケーション開発装置において、
前記検査は、前記アプリケーションプログラムの処理時間および省エネ状態の遷移処理に要する時間が既定値以下に収まっていることを確認する
ことを特徴とするアプリケーション開発装置。
【請求項４】
アプリケーションプログラムと、当該アプリケーションプログラムを特定するアプリケーションＩＤに関連付けた前記アプリケーションプログラムに固有の署名を付した前記アプリケーションプログラムの性能に関する検査結果およびインタフェース利用可能リストとに基づき、前記署名の正当性が確認されることを条件としてインストールを行う手段と、
前記インタフェース利用可能リストに基づき、前記アプリケーションプログラムに対してインタフェースの利用を許可する手段と
を備えたことを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に追加されるアプリケーションプログラムの品質を保証する技術に関する。
【背景技術】
【０００２】
画像形成装置等の情報処理装置においては、装置の導入後にアプリケーションプログラムを動的に追加することで、装置購入者に最適な機能を提供するようにしているものがある。
【０００３】
この種の情報処理装置においては、追加されるアプリケーションプログラムの品質を保証する手段が必要となる。特に、メモリ、処理速度等のシステム要素は、アプリケーションプログラム単体の機能ロジックの品質保証以外に、システム全体で達成する必要があるが、従来、有効な保証方法が存在しなかった。
【０００４】
特許文献１には、アプリケーションプログラムのインストールにおける正当性確認の方法について開示されているが、アプリケーションプログラムの性能に関する検査については触れられていない。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、システム全体で達成する必要のあるメモリ、処理速度等については有効な保証方法が存在せず、アプリケーションプログラムを追加した場合に所望の性能が発揮できない等の不都合があった。
【０００６】
なお、メモリを拡張したり、高速なＣＰＵ（Central Processing Unit）を持ったＰＣ（Personal Computer）を購入したりすることで対応できるＰＣアプリの世界では、このような問題は重要ではないが、メモリ、処理速度に制約がある組み込み機器では特に問題となる。
【０００７】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、メモリ、処理速度等のシステム性能に影響を与えないアプリケーションプログラムの追加を可能とすることにある。
【課題を解決するための手段】
【０００８】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、アプリケーションプログラムの性能に関する検査を実行する手段と、前記検査に合格した場合に、前記アプリケーションプログラムを特定するアプリケーションＩＤに関連付けた前記アプリケーションプログラムに固有の署名であって前記アプリケーションプログラムのインストール時に正当性の確認に用いられる署名を付した検査結果およびインタフェース利用可能リストを生成する手段と、前記アプリケーションプログラム、検査結果およびインタフェース利用可能リストを出力する手段とを備えるアプリケーション開発装置を要旨としている。
【０００９】
また、請求項２に記載されるように、請求項１に記載のアプリケーション開発装置において、前記検査は、前記アプリケーションプログラムのインタフェース実行中のメモリ使用量が予めシステムが既定するメモリ消費量以下に収まっていること、および、インタフェース実行後のメモリ消費量が増加していないことを確認するようにすることができる。
【００１０】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載のアプリケーション開発装置において、前記検査は、前記アプリケーションプログラムの処理時間および省エネ状態の遷移処理に要する時間が既定値以下に収まっていることを確認するようにすることができる。
【００１１】
また、請求項４に記載されるように、アプリケーションプログラムと、当該アプリケーションプログラムを特定するアプリケーションＩＤに関連付けた前記アプリケーションプログラムに固有の署名を付した前記アプリケーションプログラムの性能に関する検査結果およびインタフェース利用可能リストとに基づき、前記署名の正当性が確認されることを条件としてインストールを行う手段と、前記インタフェース利用可能リストに基づき、前記アプリケーションプログラムに対してインタフェースの利用を許可する手段とを備える情報処理装置として構成することができる。
【発明の効果】
【００１２】
本発明のアプリケーション開発装置および情報処理装置にあっては、アプリケーションプログラムの検査を行い、検査に合格しシステム性能に影響ないことが証明されたアプリケーションプログラムのみを情報処理装置内で動作させる仕組みを持たせることで、メモリ、処理速度等のシステム性能に影響を与えないアプリケーションプログラムの追加を行うことができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態にかかるシステムの構成例を示す図である。
【図２】処理時間検査テーブルの例を示す図である。
【図３】メモリ検査テーブルの例を示す図である。
【図４】アプリケーションプログラムパッケージの構造例を示す図である。
【図５】処理時間の検査の処理例を示すシーケンス図である。
【図６】使用メモリの検査の処理例を示すシーケンス図である。
【図７】アプリケーションプログラムのインストールの処理例を示すシーケンス図である。
【図８】アプリケーションプログラムからのＩ／Ｆ呼び出しの処理例を示すシーケンス図である。
【発明を実施するための形態】
【００１４】
以下、本発明の好適な実施形態につき説明する。
【００１５】
＜構成＞
図１は本発明の一実施形態にかかるシステムの構成例を示す図である。
【００１６】
図１において、アプリケーション開発装置１から出力されたアプリケーションプログラム等は、アプリケーションダウンロード用サーバ２に蓄積され、もしくは、ディスク、メモリデバイス等のメディア３に記録され、情報処理装置４においてインストールされるようになっている。
【００１７】
アプリケーション開発装置１は、主としてソフトウェア（コンピュータプログラム）により構成される機能部として、アプリケーション開発処理部１１とアプリケーション検査処理部１４とプログラム等出力部１８とを備えている。
【００１８】
アプリケーション開発処理部１１は、開発者により操作され、アプリケーションプログラム１２を生成する。なお、アプリケーション開発処理部１１はアプリケーション開発装置１とは別体の装置に配置してもよい。
【００１９】
アプリケーション検査処理部１４は、アプリケーションプログラム１２と、情報処理装置４のプラットフォーム提供者により指定されるアプリケーションＩＤ１３とを入力し、アプリケーションプログラム１２の実行時におけるメモリ、処理速度等について検査を行い、アプリケーションプログラム１５と処理時間検査結果１６とＩ／Ｆ利用可能リスト１７とを出力する。処理時間検査結果１６は、所定の処理時間に対する検査項目に合格したことを示すデータ（ファイル）であり、後述する署名を含んでいる。Ｉ／Ｆ利用可能リスト１７は、アプリケーションＩＤで特定されるアプリケーションプログラムが利用可能なインタフェースのリストであり、後述する署名を含んでいる。
【００２０】
プログラム等出力部１８は、アプリケーションプログラム１５と処理時間検査結果１６とＩ／Ｆ利用可能リスト１７とをパッケージとして出力する。
【００２１】
一方、情報処理装置４は、主としてソフトウェアにより構成される機能部として、プラットフォーム部４１を備えている。
【００２２】
プラットフォーム部４１は、情報処理装置４における基本的機能を提供する複数のインタフェース（Ｉ／Ｆ）をアプリケーションプログラム４２に提供する。また、プラットフォーム部４１は、基本的機能の一つとして、アプリケーションダウンロード用サーバ２もしくはメディア３からアプリケーションプログラム等のインストールを行い、情報処理装置４内の記憶領域上にアプリケーションプログラム４２とＩ／Ｆ利用可能リスト４３とを配置する。アプリケーションプログラムパッケージに含まれる処理時間検査結果とＩ／Ｆ利用可能リストに付された署名は情報処理装置４にインストールしても構わないし、インストールしなくてもよい。署名の正当性チェックをインストール時だけではなく、アプリケーションプログラム４２の起動時にも実行するようにしておけば、さらに安全な装置を実現することができる。
【００２３】
図２はアプリケーション開発装置１のアプリケーション検査処理部１４において使用される処理時間検査テーブルの例を示す図である。この処理時間検査テーブルは、アプリケーション開発装置１内の記憶領域上に配置される。
【００２４】
処理時間検査テーブルは、「起動（電源オン）」「起動（省エネ復帰）」「省エネ（低電力）」「省エネ（電源オフ）」等の処理内容毎に、許容される時間が設定されている。「起動（電源オン）」とは、電源オンによりアプリケーションプログラムが動作可能となるまでの処理（プラットフォームからアプリケーションプログラムにプログラム起動を行ってからアプリケーションプログラムが起動完了応答を返すまでの処理）である。「起動（省エネ復帰）」とは、省エネモード（スリープモード）から復帰してアプリケーションプログラムが動作可能となるまでの処理（プラットフォームからアプリケーションプログラムに省エネ復帰の省エネ状態遷移要求が発生してからアプリケーションプログラムが省エネ状態遷移完了応答を返すまでの処理）である。「省エネ（低電力）」とは、省エネモードのうち低電力モードに移行できるようになるまでの処理（プラットフォームからアプリケーションプログラムに低電力モードへの省エネ状態遷移要求が発生してからアプリケーションプログラムが省エネ状態遷移完了応答を返すまでの処理）である。「省エネ（電源オフ）」とは、省エネモードのうち電源オフモードに移行できるようになるまでの処理（プラットフォームからアプリケーションプログラムに電源オフモードへの省エネ状態遷移要求が発生してからアプリケーションプログラムが省エネ状態遷移完了応答を返すまでの処理）である。
【００２５】
図３はアプリケーション開発装置１のアプリケーション検査処理部１４において使用されるメモリ検査テーブルの例を示す図である。このメモリ検査テーブルは、アプリケーション開発装置１内の記憶領域上に配置される。
【００２６】
メモリ検査テーブルは、プラットフォームのインタフェース毎に、呼び出し後計測時間と呼び出し応答後計測時間とメモリ消費量とが設定されている。呼び出し後計測時間と呼び出し応答後計測時間とメモリ消費量は、呼び出すインタフェースによって異なる。呼び出し後計測時間とは、インタフェースの呼び出し後に計測を開始するまでの待機時間である。呼び出し応答後計測時間とは、インタフェースからの呼び出し応答後に計測を開始するまでの待機時間である。メモリ消費量とは、計測時点で許容されるメモリの消費量である。
【００２７】
図４はアプリケーションダウンロード用サーバ２もしくはメディア３により配布されるアプリケーションプログラムパッケージの構造例を示す図である。アプリケーションプログラムパッケージは、アプリケーションプログラム本体とアプリケーションＩＤと起動時間検査結果とＩ／Ｆ利用可能リストとを含んでいる。アプリケーションＩＤは任意長の文字列を想定している。起動時間検査結果とＩ／Ｆ利用可能リストは、周知の暗号化技術を用いた署名を含んでいる。署名はアプリケーションＩＤを元にして生成されており、インストール対象のアプリケーションプログラムに固有のものである。なお、起動時間検査結果とＩ／Ｆ利用可能リストの両方に署名を含んだ例を示しているが、一方にのみ署名を付すものとしてもよい。
【００２８】
＜動作＞
図５はアプリケーション開発装置１のアプリケーション検査処理部１４における処理時間の検査の処理例を示すシーケンス図である。
【００２９】
図５において、アプリケーション検査処理部１４は、アプリケーションプログラム１２に対してプログラム起動を行い（ステップＳ１０１）、起動時の時刻を記録する。
【００３０】
アプリケーションプログラム１２は、起動が完了すると、アプリケーション検査処理部１４に対して起動完了応答を返す（ステップＳ１０２）。
【００３１】
アプリケーション検査処理部１４は、起動時の時刻と応答時の時刻の差からプログラム起動から起動完了応答までの時間を算出し、処理時間検査テーブル（図２）の「起動（電源オン）」に対応する許容時間（図２の例では「１０秒」）に収まっていることを確認する（ステップＳ１０３）。収まっている場合には当該項目の検査は合格となり、収まっていない場合には当該項目の検査は不合格となる。
【００３２】
次いで、アプリケーション検査処理部１４はアプリケーションプログラム１２に対して低電力モードへの省エネ状態遷移要求を行い（ステップＳ１０４）、要求時の時刻を記録する。
【００３３】
アプリケーションプログラム１２は、遷移が完了すると、アプリケーション検査処理部１４に対して省エネ状態遷移完了応答を返す（ステップＳ１０５）。
【００３４】
アプリケーション検査処理部１４は、要求時の時刻と応答時の時刻の差から省エネ状態遷移要求から省エネ状態遷移完了応答までの時間を算出し、処理時間検査テーブル（図２）の「省エネ（低電力）」に対応する許容時間（図２の例では「３秒」）に収まっていることを確認する（ステップＳ１０６）。収まっている場合には当該項目の検査は合格となり、収まっていない場合には当該項目の検査は不合格となる。
【００３５】
次いで、アプリケーション検査処理部１４は、アプリケーションプログラム１２に対して省エネ復帰の省エネ状態遷移要求を行い（ステップＳ１０７）、要求時の時刻を記録する。
【００３６】
アプリケーションプログラム１２はアプリケーション検査処理部１４に対して省エネ状態遷移完了応答を返す（ステップＳ１０８）。
【００３７】
アプリケーション検査処理部１４は、要求時の時刻と応答時の時刻の差から省エネ状態遷移要求から省エネ状態遷移完了応答までの時間を算出し、処理時間検査テーブル（図２）の「起動（省エネ復帰）」に対応する許容時間（図２の例では「３秒」）に収まっていることを確認する（ステップＳ１０９）。収まっている場合には当該項目の検査は合格となり、収まっていない場合には当該項目の検査は不合格となる。
【００３８】
次いで、アプリケーション検査処理部１４は、アプリケーションプログラム１２に対して電源オフモードへの省エネ状態遷移要求を行い（ステップＳ１１０）、要求時の時刻を記録する。
【００３９】
アプリケーションプログラム１２はアプリケーション検査処理部１４に対して省エネ状態遷移完了応答を返す（ステップＳ１１１）。
【００４０】
アプリケーション検査処理部１４は、要求時の時刻と応答時の時刻の差から省エネ状態遷移要求から省エネ状態遷移完了応答までの時間を算出し、処理時間検査テーブル（図２）の「省エネ（電源オフ）」に対応する許容時間（図２の例では「１０秒」）に収まっていることを確認する（ステップＳ１１２）。収まっている場合には当該項目の検査は合格となり、収まっていない場合には当該項目の検査は不合格となる。
【００４１】
次いで、アプリケーション検査処理部１４は、利用者から所定のユーザインタフェースによりアプリケーションＩＤ１３を取得し（ステップＳ１１３）、検査項目が全て確認できたら、アプリケーションＩＤ１３を元に署名を生成し、当該署名を付した処理時間検査結果１６を生成する（ステップＳ１１４）。
【００４２】
上記の例では起動時間と省エネ遷移時間の両方を検査するものとしたが、起動時間か省エネ遷移時間の一方のみでもよい。また、起動時間や省エネ遷移時間をさらに細分化し、電源オンや省エネからの復帰、省エネのレベルに応じた遷移時間を規定してもよい。より細く規定しておくほど安全な装置を実現することができる。
【００４３】
図６はアプリケーション開発装置１のアプリケーション検査処理部１４における使用メモリの検査の処理例を示すシーケンス図である。
【００４４】
図６において、利用者（開発者）はアプリケーション検査処理部１４を起動する（ステップＳ２０１）。
【００４５】
アプリケーション検査処理部１４の起動後に利用者がアプリケーションプログラム１２に所定の操作（例えば、画像形成装置の場合における「コピー実行」等）を行うと（ステップＳ２０２）、アプリケーションプログラム１２は内部処理を行い（ステップＳ２０３）、アプリケーション検査処理部１４に対してインタフェース呼び出しを行う（ステップＳ２０４）。
【００４６】
アプリケーション検査処理部１４は、メモリ検査テーブル（図３）を参照し、該当するインタフェースに対応付けられた「呼び出し後計測時間」の経過を待って、アプリケーションプログラム１２のメモリ消費量を測定する（ステップＳ２０５）。この測定で得られるのは、インタフェース実行中のメモリ消費量（動的なメモリ消費量）である。例えば、コピーを実行している最中のアプリケーションプログラムのＵＩ（User Interface）表示処理等でメモリが大量に使われていないかどうかを検査することができる。
【００４７】
その後、アプリケーション検査処理部１４は、アプリケーションプログラム１２に対してインタフェース呼び出し応答を行う（ステップＳ２０６）。
【００４８】
次いで、アプリケーション検査処理部１４は、メモリ検査テーブル（図３）を参照し、該当するインタフェースに対応付けられた「呼び出し応答後計測時間」の経過を待って、アプリケーションプログラム１２のメモリ消費量を測定する（ステップＳ２０７）。この測定で得られるのは、インタフェース実行後のメモリ消費量（静的なメモリ消費量）である。例えば、コピーを終了して元の状態に戻った後、アプリケーションプログラムがメモリを解放せずに確保したままになっていないかどうかを検査することができる。
【００４９】
次いで、アプリケーション検査処理部１４は、アプリケーションＩＤ１３を取得し（ステップＳ２０８）、インタフェース呼び出し後のメモリ消費量がメモリ検査テーブル（図３）の該当するインタフェースに対応付けられた「メモリ消費量」以下であれば、呼び出されたインタフェースを署名付きのＩ／Ｆ利用可能リスト１７に追加する（ステップＳ２０９）。
【００５０】
上記の例では動的なメモリ消費量と静的なメモリ消費量の両者について検査しているが、一方のみの検査としてもよい。
【００５１】
図７は情報処理装置４におけるアプリケーションプログラムのインストールの処理例を示すシーケンス図である。
【００５２】
図７において、情報処理装置４の管理者もしくはメーカの営業マンは、プラットフォーム部４１に対してアプリケーションプログラムのインストールを要求する（ステップＳ３０１）。
【００５３】
プラットフォーム部４１は、アプリケーションダウンロード用サーバ２もしくはメディア３から取得したアプリケーションプログラムパッケージからアプリケーションＩＤを取得し（ステップＳ３０２）、処理時間検査結果とＩ／Ｆ利用可能リストに付された署名の正当性を確認する（ステップＳ３０３、Ｓ３０４）。
【００５４】
次いで、プラットフォーム部４１は、署名の正当性が確認できたら、Ｉ／Ｆ利用可能リスト４３を情報処理装置４内の記憶領域に登録し、アプリケーションプログラム４２をインストールする（ステップＳ３０５）。
【００５５】
図８は情報処理装置４におけるアプリケーションプログラム４２からのＩ／Ｆ呼び出しの処理例を示すシーケンス図である。
【００５６】
図８において、アプリケーションプログラム４２は、処理の過程においてプラットフォーム部４１に対してインタフェース呼び出しを行う（ステップＳ４０１）。
【００５７】
プラットフォーム部４１は、Ｉ／Ｆ利用可能リスト４３（図１）を参照し（ステップＳ４０２）、呼び出されたインタフェースがＩ／Ｆ利用可能リスト４３に登録されているか否か確認し、登録されている場合にのみインタフェースの実行を行う（ステップＳ４０３）。インタフェース呼び出しを受け付けない場合、アプリケーションプログラムにエラーを応答することが望ましい。
【００５８】
＜総括＞
以上説明した実施形態によれば、次のような利点がある。
（１）アプリケーションプログラムの追加インストールによる、システムダウンをはじめとする異常動作を抑制することができる。
（２）アプリケーションプログラムの追加インストールによる、メモリ不足によるシステムダウンをはじめとする異常動作を抑制することができる。
（３）署名によってインストール時の正当性だけではなく、実行時の正当性も確認することで、テストされていないアプリケーションプログラムの利用を禁止することができ、より確実な品質保証が可能となる。
（４）アプリケーションプログラムの追加インストールによる、システム性能の低下を抑制することができる。
【００５９】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００６０】
１        アプリケーション開発装置
１１      アプリケーション開発処理部
１２      アプリケーションプログラム
１３      アプリケーションＩＤ
１４      アプリケーション検査処理部
１５      アプリケーションプログラム
１６      処理時間検査結果
１７      Ｉ／Ｆ利用可能リスト
１８      プログラム等出力部
２        アプリケーションダウンロード用サーバ
３        メディア
４        情報処理装置
４１      プラットフォーム部
４２      アプリケーションプログラム
４３      Ｉ／Ｆ利用可能リスト
【先行技術文献】
【特許文献】
【００６１】
【特許文献１】特開２００５−３０１９６８号公報
【図１】
0005516262.tif 000002
【図２】
0005516262.tif 000003
【図３】
0005516262.tif 000004
【図４】
0005516262.tif 000005
【図５】
0005516262.tif 000006
【図６】
0005516262.tif 000007
【図７】
0005516262.tif 000008
【図８】
0005516262.tif 000009