(57)【要約】【課題】実行対象となるアプリのうち、動作の保証がないアプリの実行状況を利用者に提示する。【解決手段】操作画面が表示部１６の第２表示階層１６２に表示されているときに、利用者がアプリを指定すると、ＣＰＵ１１はこれが外部アプリであるか否かを判断する。指定されたアプリが外部アプリでない場合には、ＣＰＵ１１は操作画面を追い出し、指定された内部アプリを実行してその要求に応じた画像を第２表示階層１６２に表示させる。外部アプリである場合には、ＣＰＵ１１は操作画面を表示する第２表示階層１６２よりも視認方向手前側の第１表示階層１６１にこの外部アプリの実行を試行していることを示す試行画像を表示させる。ＣＰＵ１１は、指定された外部アプリの実行を試行するとともに表示要求が無い期間を計測し、この期間が閾値を超えた場合には、第１表示階層１６１に表示されている試行画像を消去してエラー画像を表示させる。【選択図】図１
2010081183.tif 000002
【特許請求の範囲】
【請求項１】
自装置において実行可能なことを識別する識別情報と対応付けられた第１のアプリケーションプログラムと、前記識別情報と対応付けられていない第２のアプリケーションプログラムとを取得するアプリケーションプログラム取得手段と、
実行対象として指定されたアプリケーションプログラムを実行し、実行中の当該アプリケーションプログラムからの要求に応じた画像を表示手段に表示させる実行手段と、
前記表示手段において利用者の視認方向手前側から奥側に亘って区分された複数の表示階層の各々に画像を表示させる表示制御手段であって、
前記第１または第２のアプリケーションプログラムが実行中であるときに、実行中の当該アプリケーションプログラムとは異なる前記第２のアプリケーションプログラムが実行対象として指定されると、前記実行中の第１または第２のアプリケーションプログラムからの要求に応じた画像が表示されている表示階層よりも前記視認方向手前側の表示階層において、実行対象として指定された第２のアプリケーションプログラムの実行を試行していることを示す試行画像を表示させ、
実行対象として指定された前記第２のアプリケーションプログラムから前記表示手段に対する表示の要求の無い期間が閾値を超えた場合には、前記試行画像を消去する表示制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記表示制御手段は、実行が試行されている前記第２のアプリケーションプログラムから前記表示手段に対する表示の要求の無い期間が閾値を超えた場合には、前記試行画像を消去するとともに、前記実行手段による当該第２のアプリケーションプログラムの実行の試行を中断させる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示制御手段は、
前記第２のアプリケーションプログラムのそれぞれについて、その実行が利用者によって既に了承されているか否かを示す了承状態を取得する了承状態取得手段を具備し、
前記第１または第２のアプリケーションプログラムが実行中であるときに、実行対象として指定された前記第２のアプリケーションプログラムについて前記了承状態取得手段が取得した了承状態が、前記実行が了承されていないことを示す場合には、前記実行中の第１または第２のアプリケーションプログラムからの要求に応じた画像が表示されている表示階層よりも前記視認方向手前側の表示階層において、当該第２のアプリケーションプログラムの実行を了承するか否かを利用者に問い合わせるための画像を表示させ、
前記実行手段は、利用者による了承が得られると、当該第２のアプリケーションプログラムの実行を試行する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
請求項１から３のいずれかに記載の情報処理装置と、
前記情報処理装置が前記第１または前記第２のアプリケーションプログラムを実行した結果を用いて、記録媒体に画像を形成する画像形成手段と
を備えることを特徴とする画像形成装置。
【請求項５】
コンピュータを、
自装置において実行可能なことを識別する識別情報と対応付けられた第１のアプリケーションプログラムと、前記識別情報と対応付けられていない第２のアプリケーションプログラムとを取得するアプリケーションプログラム取得手段と、
実行対象として指定されたアプリケーションプログラムを実行し、実行中の当該アプリケーションプログラムからの要求に応じた画像を表示手段に表示させる実行手段と、
前記表示手段において利用者の視認方向手前側から奥側に亘って区分された複数の表示階層の各々に画像を表示させる表示制御手段であって、
前記第１または第２のアプリケーションプログラムが実行中であるときに、実行中の当該アプリケーションプログラムとは異なる前記第２のアプリケーションプログラムが実行対象として指定されると、前記実行中の第１または第２のアプリケーションプログラムからの要求に応じた画像が表示されている表示階層よりも前記視認方向手前側の表示階層において、実行対象として指定された第２のアプリケーションプログラムの実行を試行していることを示す試行画像を表示させ、
実行対象として指定された前記第２のアプリケーションプログラムから前記表示手段に対する表示の要求の無い期間が閾値を超えた場合には、前記試行画像を消去する表示制御手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画像形成装置およびプログラムに関する。
【背景技術】
【０００２】
近年、ファクシミリ、複写機およびネットワーク印刷機など複数の機能を有する画像形成装置が実用化されている。画像形成装置ではこれら複数の機能をそれぞれ実現させるために種々のアプリケーションプログラム（以下、アプリという）が用いられる。ところで画像形成装置には、その装置と同じ機種の画像形成装置においてのみ実行可能なアプリである第１のアプリと、これ以外のアプリである第２のアプリとが実装されている場合がある。前者は、例えばその画像形成装置の製造メーカが開発した組み込みアプリであり、後者は、その製造メーカ以外の、サードパーティなどと呼ばれる第３者が開発した汎用アプリである。このようなサードパーティによるアプリ開発は、画像形成装置に限らず、その他の情報処理装置においても同様に活発である。
【０００３】
画像形成装置では、アプリの実行に使用するリソースの機能を最大限に活用するために、組み込みアプリによってユーザインタフェースを構築していることが多い。そして、組み込みアプリは、実際にこれが使用される画像形成装置を用いて開発され、テストされているため、一般に動作が保証されている。しかし、組み込みアプリは、その画像形成装置においてのみ実行可能に構成されているので、汎用性・再利用性に乏しく、開発環境が限定され開発に携わる人数も限られてしまい、開発に時間がかかる場合がある。
一方、汎用コンピュータ等において開発される汎用アプリは、開発環境が限定されないため、開発人口も多く、迅速に完成する場合がある。しかし、汎用アプリは、様々なリソース構成の装置において実行可能な場合があるものの、必ずしも全ての画像形成装置において安全に動作するという保証はない。
【０００４】
アプリ開発の負荷を低減させるための技術として、例えば、特許文献１には、プリンタ、コピーおよびファクシミリ装置などに対応する各アプリを効率よく開発するために共通アプリ部分を共通化する技術が開示されている。
アプリの実行を制限する技術として、例えば、特許文献２には、アプリの実行可否を判断するためにアプリの使用するリソース情報と装置側のリソース情報を比較し、実行可能か判断する技術が開示されている。
【特許文献１】特開２００２−８２８０６号公報
【特許文献２】特開２００４−３０６０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで、画像形成装置を含む情報処理装置の表示部は、並行して二つ以上のアプリからの表示要求を受け付けず、実行中の一つのアプリからの表示要求のみを受け付けるように構成されている場合がある。このような情報処理装置において、動作の保証のない汎用アプリの実行を試みたときに、この汎用アプリが正常に動作しない場合には、実行対象となる汎用アプリからの表示要求を待ち続けることになる。このとき、情報処理装置の表示部には、この汎用アプリの実行を開始したときの直前の画像が表示され続けることとなる。これでは、情報処理装置の利用者が、表示部の表示内容を見ただけでは、汎用アプリが実行中であることを知りえないということが起こり得る。
本発明の課題は、情報処理装置において実行対象となるアプリケーションプログラムのうち、特にその情報処理装置における動作の保証がなされていないアプリケーションプログラムの実行状況を利用者に提示することである。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明の請求項１に係る情報処理装置は、自装置において実行可能なことを識別する識別情報と対応付けられた第１のアプリケーションプログラムと、前記識別情報と対応付けられていない第２のアプリケーションプログラムとを取得するアプリケーションプログラム取得手段と、実行対象として指定されたアプリケーションプログラムを実行し、実行中の当該アプリケーションプログラムからの要求に応じた画像を表示手段に表示させる実行手段と、前記表示手段において利用者の視認方向手前側から奥側に亘って区分された複数の表示階層の各々に画像を表示させる表示制御手段であって、前記第１または第２のアプリケーションプログラムが実行中であるときに、実行中の当該アプリケーションプログラムとは異なる前記第２のアプリケーションプログラムが実行対象として指定されると、前記実行中の第１または第２のアプリケーションプログラムからの要求に応じた画像が表示されている表示階層よりも前記視認方向手前側の表示階層において、実行対象として指定された第２のアプリケーションプログラムの実行を試行していることを示す試行画像を表示させ、実行対象として指定された前記第２のアプリケーションプログラムから前記表示手段に対する表示の要求の無い期間が閾値を超えた場合には、前記試行画像を消去する表示制御手段とを備えることを特徴とする。
【０００７】
また、本発明の請求項２に係る情報処理装置は、請求項１に係る態様において、前記表示制御手段は、実行が試行されている前記第２のアプリケーションプログラムから前記表示手段に対する表示の要求の無い期間が閾値を超えた場合には、前記試行画像を消去するとともに、前記実行手段による当該第２のアプリケーションプログラムの実行の試行を中断させることを特徴とする。
【０００８】
また、本発明の請求項３に係る情報処理装置は、請求項１または２に係る態様において、前記表示制御手段は、前記第２のアプリケーションプログラムのそれぞれについて、その実行が利用者によって既に了承されているか否かを示す了承状態を取得する了承状態取得手段を具備し、前記第１または第２のアプリケーションプログラムが実行中であるときに、実行対象として指定された前記第２のアプリケーションプログラムについて前記了承状態取得手段が取得した了承状態が、前記実行が了承されていないことを示す場合には、前記実行中の第１または第２のアプリケーションプログラムからの要求に応じた画像が表示されている表示階層よりも前記視認方向手前側の表示階層において、当該第２のアプリケーションプログラムの実行を了承するか否かを利用者に問い合わせるための画像を表示させ、前記実行手段は、利用者による了承が得られると、当該第２のアプリケーションプログラムの実行を試行することを特徴とする。
【０００９】
また、本発明の請求項４に係る画像形成装置は、請求項１から３のいずれかの情報処理装置と、前記情報処理装置が前記第１または前記第２のアプリケーションプログラムを実行した結果を用いて、記録媒体に画像を形成する画像形成手段とを備えることを特徴とする。
【００１０】
また、本発明の請求項５に係るプログラムは、コンピュータを、自装置において実行可能なことを識別する識別情報と対応付けられた第１のアプリケーションプログラムと、前記識別情報と対応付けられていない第２のアプリケーションプログラムとを取得するアプリケーションプログラム取得手段と、実行対象として指定されたアプリケーションプログラムを実行し、実行中の当該アプリケーションプログラムからの要求に応じた画像を表示手段に表示させる実行手段と、前記表示手段において利用者の視認方向手前側から奥側に亘って区分された複数の表示階層の各々に画像を表示させる表示制御手段であって、前記第１または第２のアプリケーションプログラムが実行中であるときに、実行中の当該アプリケーションプログラムとは異なる前記第２のアプリケーションプログラムが実行対象として指定されると、前記実行中の第１または第２のアプリケーションプログラムからの要求に応じた画像が表示されている表示階層よりも前記視認方向手前側の表示階層において、実行対象として指定された第２のアプリケーションプログラムの実行を試行していることを示す試行画像を表示させ、実行対象として指定された前記第２のアプリケーションプログラムから前記表示手段に対する表示の要求の無い期間が閾値を超えた場合には、前記試行画像を消去する表示制御手段として機能させるためのプログラムである。
【発明の効果】
【００１１】
本発明の請求項１に係る情報処理装置によれば、実行対象となるアプリケーションプログラムのうち、特にその情報処理装置における動作の保証がなされていないアプリケーションプログラムの実行状況を利用者に提示することができる。
本発明の請求項２に係る情報処理装置によれば、実行対象となるアプリケーションプログラムのうち、特にその情報処理装置における動作の保証がなされていないアプリケーションプログラムの実行状況を利用者に提示するとともに、そのアプリケーションプログラムの実行を中断させることができる。
本発明の請求項３に係る情報処理装置によれば、利用者による了承状態に応じて動作の保証がなされていないアプリケーションプログラムの実行を試行するか否かを決定することができる。
本発明の請求項４に係る画像形成装置によれば、実行対象となるアプリケーションプログラムのうち、特にその画像形成装置における動作の保証がなされていないアプリケーションプログラムの実行状況を利用者に提示することができる。
本発明の請求項５に係るプログラムによれば、実行対象となるアプリケーションプログラムのうち、特に動作の保証がなされていないアプリケーションプログラムの実行状況を利用者に提示することができる。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施の形態を説明する。
（Ａ：構成）
（Ａ−１：全体構成）
図１は、実施形態に係る画像形成装置１の全体構成を示すブロック図である。図１に示すＣＰＵ（Central Processing Unit）１１は、バス１９を介してＲＯＭ（Read Only Memory）１２に記憶されているブートローダや記憶部１４に記憶されているアプリを読み出して実行することにより画像形成装置１の各部を制御する制御手段である。ＲＯＭ１２は半導体素子等で構成された読み出し専用の不揮発性記憶装置である。このＲＯＭ１２には、記憶部１４に記憶されている基本ＯＳ（Operating System）をＲＡＭ（Random Access Memory）１３にロードするためのブートローダやＢＩＯＳ（Basic Input/Output System）などが記憶されている。ＲＡＭ１３は半導体素子等で構成された揮発性の記憶手段であり、ＣＰＵ１１がアプリを実行する際のワークエリアとして利用される。また、上記の基本ＯＳの機能により、ＲＡＭ１３には、実行中のアプリの管理を行うための実行アプリテーブル１３１と、後述する表示部１６の表示階層の管理を行うための表示階層テーブル１３２が生成される。
【００１３】
記憶部１４はハードディスクドライブなどの大容量の記憶手段であり、ＣＰＵ１１に読み込まれる上記基本ＯＳや複数のアプリを記憶している。記憶部１４に記憶されるアプリには、画像形成装置１と同じ機種の画像形成装置においてのみ実行可能な第１のアプリである内部アプリと、内部アプリ以外の第２のアプリである外部アプリとがある。また、各外部アプリには、外部アプリ設定ファイルが対応付けられて記憶部１４に記憶されている。以下、記憶部１４に記憶される複数の内部アプリを内部アプリ群１４１と、複数の外部アプリを外部アプリ群１４２と、複数の外部アプリ設定ファイルを外部アプリ設定ファイル群１４３という。
【００１４】
記憶部１４は、各アプリをその名称と対応付けて記憶しており、ＣＰＵ１１は、各アプリの名称をもとに記憶部１４からこれらのアプリを取得する。内部アプリには、そのヘッダ部にこの画像形成装置１と同じ機種の画像形成装置において実行可能なアプリであることを示す記号（識別情報）が記述されている。この記号は、外部アプリのヘッダ部には記述されていないので、ＣＰＵ１１等は、このヘッダ部に上記の記号が記述されているか否かによって、外部アプリと内部アプリとを区別する。すなわち、ＣＰＵ１１は、自装置において実行可能なことを識別する識別情報と対応付けられた第１のアプリと、この識別情報と対応付けられていない第２のアプリとを取得するアプリケーションプログラム取得手段の一例である。
【００１５】
表示部１６は、液晶ディスプレイと、液晶ディスプレイを駆動する駆動回路と、例えばビットマップ形式の画像データを記憶するＶＲＡＭ（Video RAM）とを備えている。このＶＲＡＭには、少なくとも上記の液晶ディスプレイの２画面分の画像データを記憶する記憶領域が存在する。ＣＰＵ１１は、このＶＲＡＭの記憶領域を液晶ディスプレイの１画面分ごとに区分けし、区分けされた各記憶領域を実行中のアプリとそれぞれ対応付ける。これにより、ＣＰＵ１１は、実行中のアプリからの要求に応じた画像を、各記憶領域にそれぞれ記憶させる。また、ＣＰＵ１１は、ＲＡＭ１３に生成された表示階層テーブル１３によって各記憶領域を、液晶ディスプレイにおける利用者の視認方向手前側から奥側に亘って区分された複数の表示階層と対応付ける。そして、ＣＰＵ１１は駆動回路を駆動し、液晶ディスプレイのこれら各表示階層に、対応するＶＲＡＭの各記憶領域に記憶された画像を表示させる。すなわち、ＣＰＵ１１とＲＡＭ１３と表示部１６は、実行対象として指定されたアプリを実行し、実行中のアプリからの要求に応じた画像を表示手段に表示させる実行手段の一例である。また、ＣＰＵ１１とＲＡＭ１３と表示部１６は、表示部１６において視認方向手前側から奥側に亘って区分された複数の表示階層に各画像を表示させる表示制御手段の一例である。本実施形態においては、複数の表示階層の一例として、２層の表示階層である第１表示階層１６１および第２表示階層１６２を有する表示部１６を用いる。
【００１６】
操作部１５は各種の指示を入力するための座標取得部１５１や操作ボタン１５２を備えており、利用者による操作を受け付けてその操作内容に応じた信号をＣＰＵ１１に供給する。ここで、座標取得部１５１とは、表示部１６の液晶ディスプレイの上（すなわち、その表示領域の前面側）に重ねて設けられた透明感圧型タッチパネルであり、指により押圧された位置を取得して、取得した位置情報をＣＰＵ１１に供給する。操作ボタン１５２は、押下されるとＣＰＵ１１にこれが押下されたことを示す信号を供給するスイッチである。この操作部１５は、複数の機能のいずれかを選択する選択手段の一例である。
【００１７】
像形成部１７は、電子写真方式で画像を形成する画像形成手段の一例である。具体的には、像形成部１７は、用紙等の記録媒体を搬送する搬送装置や、ＣＰＵ１１の制御の下で送信される画像データに対応する潜像を形成する感光体と、潜像を現像するための現像剤を感光体に供給する現像剤供給装置と、現像された像を記録媒体に転写する転写装置と、記録媒体の表面に転写された像を定着させる定着装置など、記録媒体に画像を形成するための構成を備えている。さらに、像形成部１７は、画像を記録した記録媒体等の表面に光を照射し、その反射光の受光強度に応じた撮像画像データを生成する光学読取装置など、画像データを生成するための構成を備えている。通信部１８は、外部機器とデータの遣り取りを行うための通信手段の一例であり、例えば各種のモデムやIMT-2000に準拠した無線通信回路、あるいは、ＵＳＢ（Universal Serial Bus）規格に準拠したシリアルインタフェースや、ＩｒＤＡ（Infrared Data Association）、Bluetooth（登録商標）などに準拠した無線インタフェースなどで構成される。通信部１８により外部機器から画像データを取得し、取得した画像データに応じた画像を、像形成部１７により記録材等に形成することで、画像形成装置１はファクシミリとして機能する。また、像形成部１７に備えられた光学読取装置により画像データを取得することで、画像形成装置１はスキャナとして機能する。すなわち、この像形成部１７および通信部１８は、画像データを取得する画像データ取得手段の一例である。
【００１８】
（Ａ−２：操作部および表示部の外観構成）
図２は、操作部１５および表示部１６の外観の一例を示す図である。画像形成装置１には、液晶ディスプレイである表示部１６の横に、操作ボタン１５２として、テンキーや矢印ボタン、「ヘルプ」「リセット」「決定」などの文字が書かれたボタンなどが備えられている。利用者は、表示部１６の表示内容を見ながら、操作ボタン１５２を操作したり、表示部１６に重ねて設けられた透明感圧型タッチパネルである座標取得部１５１を操作したりして、画像形成装置１に指示を与える。
【００１９】
図３は、表示部１６における表示階層を説明するための概念図である。この表示部１６には矢線Ｖ３に示す視認方向、すなわち、手前側から奥側へ向かう方向に第１表示階層１６１および第２表示階層１６２が重ねられて存在している。第１表示階層１６１は、液晶ディスプレイの視認方向手前側の表示階層であり、第２表示階層１６２は、液晶ディスプレイの視認方向奥側の表示階層である。これにより利用者は、手前側の第１表示階層１６１に表示がされている場合には、奥側の第２表示階層１６２に表示されている内容を視認せず、第１表示階層１６１に表示されている内容のみを視認する。一方、手前側の第１表示階層１６１に表示がされていない場合には、利用者は、奥側の第２表示階層１６２に表示されている内容のみを視認する。なお、本実施形態においては、ＣＰＵ１１が表示部１６のＶＲＡＭとＲＡＭ１３の表示階層テーブル１３２を参照して表示部１６の駆動回路を駆動させることにより、表示部１６にこの２層の表示階層が仮想的に存在するように構成されている。
【００２０】
図４は、表示部１６に表示される操作画面の一例を示す図である。図４に示すように、表示部１６の上段には、画像形成装置１の状態などを表した文章を表示する領域Ｂが設けられている。図４に示す例では、この領域Ｂに「実行するアプリを選択してください」という文章が表示されている。表示部１６の下段には、アプリの名称を示す文字列Ｔ１〜Ｔ６と、そのアプリの実行を指示するための画像Ａ１〜Ａ６とがそれぞれ対応付けられて表示されている。さらに、画像Ａ５〜Ａ６には、それらの画像が示すアプリが、上述した外部アプリであることを示す識別画像Ｃ５，Ｃ６が重ねられて表示されている。
【００２１】
（Ａ−３：機能構成）
図５は、画像形成装置１のソフトウェア構成を示したブロック図である。この図において、最もリソースに近い下位層に、画像形成装置１の表示部１６、像形成部１７および通信部１８等のリソースを制御するためのリソース・プラットフォーム１１００がある。このリソース・プラットフォーム１１００は、例えばデバイスドライバ等である。カーネル１１０１は、上述した基本ＯＳの中核となる部分であり、リソース・プラットフォーム１１００を介して画像形成装置１のリソースを管理する。またカーネル１１０１は、利用者により実行対象として指定されたアプリの各種属性を、実行アプリテーブル１３１に記述して管理する。このカーネル１１０１は、複数のアプリを並列して処理する機能を有しており、実行アプリテーブル１３１には、並列して処理される複数のアプリが記述される。なお、並列処理は様々な方法が適用可能であるが、この例では、タイムシェアリングによる並列処理を行う。
【００２２】
内部アプリ実行環境１１０２は、内部アプリを実行するための環境であり、カーネル１１０１を基礎として構築される。一方、外部アプリ実行環境１１０４は、外部アプリを実行するための環境であり、外部アプリ制御デーモンプロセス１１０３を基礎として構築される。この外部アプリ制御デーモンプロセス１１０３は、カーネル１１０１と外部アプリ実行環境１１０４との間を仲介する機能を有しており、例えば、外部アプリが要求するシステムコールを画像形成装置１のカーネル１１０１が有するシステムコールへ変換するなどの処理を行う。この外部アプリ制御デーモンプロセス１１０３には、外部アプリの制御を行う外部アプリ制御バックエンド１１１５が含まれる。
【００２３】
図５に示すメニューアプリ１１１１は、内部アプリの一種であり、上述した図４の操作画面を図１に示した表示部１６の第２表示階層１６２に表示させ、利用者の操作を受け付ける。メニューアプリ１１１１は利用者から指定された外部アプリ１１１６を、図１に示した記憶部１４の外部アプリ群１４２から読み出して、これを実行するよう、外部アプリ制御フロントエンド１１１２に指示する。外部アプリ制御フロントエンド１１１２は、内部アプリの一種である。外部アプリ制御フロントエンド１１１２は、この指示を受け取ると、外部アプリ１１１６に対応する外部アプリ設定ファイルを、記憶部１４の外部アプリ設定ファイル群１４３から読み出す。そして、外部アプリ制御フロントエンド１１１２は、読み出した外部アプリ設定ファイルに基づいて外部アプリ１１１６を対象とする試行画像表示アプリ１１１７を実行する。この試行画像表示アプリ１１１７は内部アプリの一種であり、外部アプリ１１１６の実行を試行していることを示す試行画像を表示部１６のＶＲＡＭに生成する。また、外部アプリ制御フロントエンド１１１２は、試行画像表示アプリ１１１７と外部アプリ１１１６をそれぞれ実行アプリテーブル１３１に追加するとともに、試行画像表示アプリ１１１７によって生成された試行画像が記憶されているＶＲＡＭ上のアドレスを、第１表示階層１６１に対応する使用ＶＲＡＭ領域のアドレスとして表示階層テーブル１３２に書き込む。これにより、カーネル１１０１は、生成された試行画像を図１に示した表示部１６の第１表示階層１６１に表示する。さらに、外部アプリ制御フロントエンド１１１２は、外部アプリ１１１６を実行するよう、外部アプリ制御バックエンド１１１５に制御要求をする。
【００２４】
制御要求を受け取った外部アプリ制御バックエンド１１１５は、指定された外部アプリ１１１６を外部アプリ実行環境１１０４に組み入れてこれを制御する。そして、外部アプリ制御バックエンド１１１５は、この外部アプリ１１１６が処理の進行に従って行う様々な要求を受け取り、これをカーネル１１０１が実行可能なように変換してカーネル１１０１に送る。外部アプリ制御フロントエンド１１１２は、外部アプリ制御バックエンド１１１５の動作を監視することにより、外部アプリ１１１６の動作を監視する。また、外部アプリ制御フロントエンド１１１２は、外部アプリ制御バックエンド１１１５に対し、外部アプリ１１１６の制御要求をした時刻を記憶しており、この時刻からの経過時間を試行期間として計測する。
【００２５】
（Ａ−４：外部アプリ設定ファイルの構成）
図６は、上述した外部アプリ設定ファイルの一例を示す図である。外部アプリ設定ファイルは、ＸＭＬ（Extensible Markup Language）などの拡張可能なマークアップ言語によって記述されている。図に示す部分ｐには、この外部アプリ設定ファイルに対応する外部アプリの情報が記述されている。この例によると、例えば、「ｖｅｎｄｏｒＮａｍｅ」というタグに対応する設定値は「ＸＸＸ株式会社」であり、「ａｐｐｌｉｃａｔｉｏｎＮａｍｅ」というタグに対応する設定値は「ＸＸＸブラウザ」である。これらの設定値はＣＰＵ１１に読み込まれると、この外部アプリそのものや、この外部アプリの動作の保証に関する情報として用いられる。例えば、上述した「ａｐｐｌｉｃａｔｉｏｎＮａｍｅ」というタグに対応する設定値「ＸＸＸブラウザ」は、この外部アプリの名称として用いられる。また、上述した「ｖｅｎｄｏｒＮａｍｅ」というタグに対応する設定値「ＸＸＸ株式会社」は、この外部アプリを開発したベンダの名称として用いられる。なお、ここでは、上記の情報として、文字列そのものが用いられるが、文字列によってデータファイルの格納場所が示されている場合には、上記の情報としてそのデータファイルが示す画像や動画、音声などが用いられてもよい。
【００２６】
（Ａ−５：実行アプリテーブルの構成）
図７は、実行アプリテーブル１３１の一例を示した図である。カーネル１１０１は、画像形成装置１のＣＰＵ１１の処理時間を実行中の複数のアプリごとに分割するタイムシェアリング処理によって、並列処理を行う。「ＰＩＤ」とは、各アプリが具体的に実行される際のプロセスを一意に示す識別子である。「種別」とは、実行中のアプリが、内部アプリであるか外部アプリであるかを示す項目である。「使用ＶＲＡＭ領域」とは、アプリが使用するＶＲＡＭの領域のアドレスを示している。「アプリ名」とは、アプリの名称である。対象ＰＩＤとは、上述した試行画像表示アプリ１１１７に対してのみ書き込まれる項目であり、試行画像表示アプリ１１１７が対象とするアプリのＰＩＤを示す。したがって、それ以外のアプリについては、対象ＰＩＤの項目は無視される。ここでは、試行画像表示アプリ１１１７以外のアプリにおける対象ＰＩＤの項目には、それが存在しないことを意味する「−」が書き込まれることとする。
【００２７】
（Ａ−６：表示階層テーブルの構成）
図８は、表示階層テーブル１３２の例を示した図である。表示階層テーブル１３２の項目は表示階層と使用ＶＲＡＭ領域であり、表示階層には、第１表示階層および第２表示階層が書き込まれている。そして、使用ＶＲＡＭ領域にはこれらの表示階層の表示に使用するＶＲＡＭのアドレスが書き込まれる。この表示階層テーブル１３２を参照したカーネル１１０１は、まず、第１表示階層の使用ＶＲＡＭ領域を読み出す。そして、読み出した第１表示階層の使用ＶＲＡＭ領域が、存在しないことを意味する「−」である場合には、駆動回路を駆動させることなく第２表示階層の使用ＶＲＡＭ領域を読み出す。そして、駆動回路を駆動し、読み出した第２表示階層の使用ＶＲＡＭ領域に記憶された内容を液晶ディスプレイ上に表示させる。一方、読み出した第１表示階層の使用ＶＲＡＭ領域が「−」でない場合には、カーネル１１０１は第２表示階層の使用ＶＲＡＭ領域は読み出さず、駆動回路を駆動し、読み出した第１表示階層の使用ＶＲＡＭ領域に記憶された内容を液晶ディスプレイ上に表示させる。
【００２８】
例えば、図８（ａ）に示す表示階層テーブル１３２には、第１表示階層に対応する使用ＶＲＡＭ領域として、それが存在しないことを意味する「−」が書き込まれ、第２表示階層に対応する使用ＶＲＡＭ領域として「ＡＤ８１１」が書き込まれている。この場合には、カーネル１１０１は「ＡＤ８１１」で示されるＶＲＡＭ領域に記憶された内容、すなわち、第２表示階層１６２に表示されている内容を液晶ディスプレイ上に表示させる。一方、図８（ｂ）に示す表示階層テーブル１３２には、第１表示階層に対応する使用ＶＲＡＭ領域として「ＡＤ８１２」が書き込まれ、第２表示階層に対応する使用ＶＲＡＭ領域として「ＡＤ８１１」が書き込まれている。この場合には、カーネル１１０１は、第２表示階層に対応づけられた「ＡＤ８１１」は用いず、第１表示階層に対応づけられた「ＡＤ８１２」で示されるＶＲＡＭ領域に記憶された内容、すなわち、第１表示階層１６１に表示されている内容を液晶ディスプレイ上に表示させる。
【００２９】
（Ｂ：動作）
次に、画像形成装置１の動作について説明する。
図９は、利用者によりアプリの実行が指示されたときの動作の流れを示すフロー図である。利用者が操作部１５を操作すると、図示しない電源ユニットから画像形成装置１の各構成に電力が供給される。電力を供給されたＣＰＵ１１は、ＲＯＭ１２からＢＩＯＳを読み出し、続いて記憶部１４に記憶された基本ＯＳを読み出して、読み出した基本ＯＳを実行する。基本ＯＳに含まれるカーネル１１０１により、ＲＡＭ１３に実行アプリテーブル１３１と表示階層テーブル１３２が生成される。そして、ＣＰＵ１１は、利用者によるアプリの指定を受け付ける内部アプリであるメニューアプリ１１１１を実行する。これにより、表示部１６には、図４に示した操作画面が表示される（ステップＳ１０１）。
【００３０】
まず、ＣＰＵ１１は、操作部１５から送られる操作信号を検出して、利用者からアプリの実行指示を受けたか否かを判断する（ステップＳ１０２）。具体的には、利用者が、図４に示した操作画面において画像Ａ１〜Ａ６が表示されている領域を指などで押下すると、座標取得部１５１がこの操作を検出し、押下された位置に対応する操作信号をＣＰＵ１１に送る。ＣＰＵ１１は、この操作信号を受け取ると利用者からアプリの実行指示を受けたと判断する。ＣＰＵ１１は、利用者からアプリの実行指示を受けたと判断するまで（ステップＳ１０２；ＮＯ）、この判断をし続ける。
【００３１】
利用者からアプリの実行指示を受けたと判断すると（ステップＳ１０２；ＹＥＳ）、ＣＰＵ１１は、予め定められた画像Ａ１〜Ａ６の位置とこの操作信号が示す押下された位置とを比較して押下された画像に対応するアプリ、すなわち利用者により実行対象として指定されたアプリの名称を特定する。そして、ＣＰＵ１１は、この特定した名称に基づいて記憶部１４から指定されたアプリを読み出し、そのヘッダ部に上記の記号が記述されているか否かを検査することにより、外部アプリであるか否かを判断する（ステップＳ１０３）。
【００３２】
指定されたこのアプリが外部アプリではないと判断すると（ステップＳ１０３；ＮＯ）、ＣＰＵ１１は、メニューアプリからの表示要求によって表示されている操作画面を第２表示階層１６２から追い出し、指定されたアプリ（すなわち内部アプリ）を実行する（ステップＳ１０４）。具体的には、ＣＰＵ１１は、ＲＡＭ１３の実行アプリテーブル１３１に指定された内部アプリのレコードを書き込むとともに、ＲＡＭ１３の表示階層テーブル１３２の第２表示階層１６２に対応する使用ＶＲＡＭ領域を、メニューアプリの使用ＶＲＡＭ領域のアドレスからこの内部アプリの使用ＶＲＡＭ領域のアドレスに書き換える。これにより、書き換えられたこの表示階層テーブル１３２をカーネル１１０１が参照するので、メニューアプリの表示内容は第２表示階層１６２から消去され（すなわち、追い出され）、替わりに利用者により指定された内部アプリからの要求に応じた画像が第２表示階層１６２に表示される。
【００３３】
図１０は、画像形成装置１においてメニューアプリからアプリが指定されたときの実行アプリテーブル１３１の例を示す図である。また、図１１は、画像形成装置１における表示階層テーブル１３２の遷移の例を示す図である。上述したように、指定されたアプリが外部アプリではない、すなわち、内部アプリであった場合、例えば、図１０（ａ）に示すように実行アプリテーブル１３１には、内部アプリを示すレコードが追加される。この場合、利用者により実行対象となる内部アプリとしてアプリ名が「スキャンＰＣ」の内部アプリが指定されており、この内部アプリのＰＩＤは「８１４」である。また、この内部アプリが使用する使用ＶＲＡＭ領域は「ＡＤ８１４」である。このとき、表示階層テーブル１３２は図１１（ａ）に示すように遷移する。すなわち、内部アプリである「スキャンＰＣ」が実行対象として指定されたとき、表示階層テーブル１３２の第２表示階層１６２に対応する使用ＶＲＡＭ領域は、メニューアプリの使用ＶＲＡＭ領域「ＡＤ８１１」から「スキャンＰＣ」の使用ＶＲＡＭ領域「ＡＤ８１４」に書き換えられる。そして、「スキャンＰＣ」の終了が指示されたとき、第２表示階層１６２に対応する使用ＶＲＡＭ領域は、「スキャンＰＣ」の使用ＶＲＡＭ領域「ＡＤ８１４」からメニューアプリの使用ＶＲＡＭ領域「ＡＤ８１１」に戻される。
【００３４】
図９に戻って説明を続ける。一方、実行対象として指定されたアプリが、外部アプリであると判断した場合は（ステップＳ１０３；ＹＥＳ）、ＣＰＵ１１は、指定された外部アプリに先立って、この外部アプリを対象とする試行画像表示アプリを実行する。具体的には、ＣＰＵ１１は実行アプリテーブル１３１に、上述の試行画像表示アプリを示すレコードを書き込み、この試行画像表示アプリをＲＡＭ１３にロードする。次に、ＲＡＭ１３にロードされた試行画像表示アプリに従って、ＣＰＵ１１は、記憶部１４の外部アプリ設定ファイル群１４３から、指定された外部アプリに対応する外部アプリ設定ファイルを特定し、特定した外部アプリ設定ファイルから実行対象の外部アプリの名称とこれを開発したベンダの名称およびそのベンダの連絡先を示す文字列をそれぞれ取得する（ステップＳ１０５）。そして、ＣＰＵ１１は、取得したこれらの文字列に基づいて、指定された外部アプリの実行を試行していることを示す試行画像をＶＲＡＭ上に生成する。試行画像がＶＲＡＭ上に生成されると、ＣＰＵ１１は、ＲＡＭ１３の表示階層テーブル１３２において、第１表示階層１６１に対応する使用ＶＲＡＭ領域として、上述の試行画像表示アプリの使用ＶＲＡＭ領域のアドレスを書き込む。これにより、この外部アプリの実行を試行していることを示す試行画像が第１表示階層１６１に表示される（ステップＳ１０６）。
【００３５】
次に、ＣＰＵ１１はこの外部アプリの実行を試行する（ステップＳ１０７）。具体的には、ＣＰＵ１１は実行アプリテーブル１３１に、この外部アプリのレコードを書き込む。このとき、ＣＰＵ１１は、この外部アプリの試行開始からの経過時間を試行期間として計測する。そしてＣＰＵ１１は、この外部アプリによる表示要求があるか否かを判断する（ステップＳ１０８）。ＣＰＵ１１はこの外部アプリからの表示要求があると判断した場合には（ステップＳ１０８；ＹＥＳ）、表示階層テーブル１３２の第２表示階層１６２に対応する使用ＶＲＡＭ領域を、メニューアプリの使用ＶＲＡＭ領域のアドレスから指定された外部アプリの使用ＶＲＡＭ領域のアドレスに書き換える（ステップＳ１０９）。そして、ＣＰＵ１１は、第１表示階層１６１に表示されている試行画像を消去する（ステップＳ１１０）。具体的には、ＣＰＵ１１は、ＲＡＭ１３の表示階層テーブル１３２において、第１表示階層１６１に対応する使用ＶＲＡＭ領域として、それが存在しないことを意味する「−」を書き込む。これにより、表示部１６において、第１表示階層１６１の表示は消去され、第２表示階層１６２に対応する使用ＶＲＡＭ領域に生成された画像が表示される。
【００３６】
外部アプリからの表示要求がないと判断した場合には（ステップＳ１０８；ＮＯ）、ＣＰＵ１１は、計測している試行期間が予め記憶部１４に記憶されていた閾値を超えたか否かを判断する（ステップＳ１１１）。そして試行期間、すなわちここでは外部アプリから表示部１６に対する表示の要求が無い期間が閾値を超えていないと判断した場合には（ステップＳ１１１；ＮＯ）、ＣＰＵ１１は処理をステップ１０８に戻す。試行期間が閾値を超えたと判断した場合には（ステップＳ１１１；ＹＥＳ）、ＣＰＵ１１は、第１表示階層１６１に表示されている試行画像を消去し（ステップＳ１１２）、エラー画像を第１表示階層１６１に表示する（ステップＳ１１３）。なお、ＣＰＵ１１は、ステップＳ１１２またはステップＳ１１３に伴って、外部アプリの実行の試行を中断させてもよい。
【００３７】
上述したように、指定されたアプリが外部アプリであった場合、例えば、図１０（ｂ）に示すように実行アプリテーブル１３１には、外部アプリを示すレコードと、これを対象とする試行画像表示アプリを示すレコードとが追加される。ここでは、利用者により外部アプリとしてアプリ名が「ＸＸＸブラウザ」の外部アプリが指定されているとする。そして、この外部アプリのＰＩＤは「８１３」であり、この外部アプリが使用する使用ＶＲＡＭ領域は「ＡＤ８１３」である。また、この外部アプリを対象とする試行画像表示アプリのＰＩＤは「８１２」であり、この試行画像表示アプリが使用する使用ＶＲＡＭ領域は「ＡＤ８１２」である。なお、試行画像表示アプリを示すレコードは、対象ＰＩＤの項目が「８１３」であり、上述した「ＸＸＸブラウザ」に関連付けられている。
【００３８】
このとき、表示階層テーブル１３２は図１１（ｂ）または図１１（ｃ）に示すように遷移する。すなわち、外部アプリである「ＸＸＸブラウザ」が実行対象として指定されたとき、第１表示階層１６１には、この外部アプリの実行を試行していることを示す試行画像が表示される。図１２は、この試行画像の一例を示す図である。図１２に示すように、表示部１６には、「外部アプリを実行中です（ＸＸＸブラウザ）」という文字列が表示され、その下には、外部アプリ名、ベンダ名および連絡先が表示される。
【００３９】
そして、ＣＰＵ１１はこの外部アプリからの表示要求を待つ。予め定められた閾値を超えない期間にこの外部アプリから表示要求を受け取ると、ＣＰＵ１１は、図１１（ｂ）に示すように、表示階層テーブル１３２の第２表示階層１６２に対応する使用ＶＲＡＭ領域の項目を「ＸＸＸブラウザ」の使用ＶＲＡＭ領域に書き換える。これにより、第２表示階層１６２において、メニューアプリによる操作画面が追い出され、「ＸＸＸブラウザ」からの要求に応じた画像が表示される。これとともにＣＰＵ１１は、表示階層テーブル１３２から試行画像表示アプリの使用ＶＲＡＭ領域を消去する。これにより、第１表示階層１６１において上述した試行画像は消去されるので、表示部１６は、第２表示階層１６２の表示内容を表示する。そして、ＣＰＵ１１は、実行アプリテーブル１３１から上述した試行画像表示アプリを消去することにより、この試行画像表示アプリを終了させる。したがって、このときの実行アプリテーブル１３１は、図１０（ｃ）に示したようになる。この後、この外部アプリの終了が指示されるまで、表示部１６には、この外部アプリからの要求に応じた画像が表示される。
【００４０】
一方、この外部アプリから表示部１６に対する表示要求の無い期間が、上述した閾値を超えると、ＣＰＵ１１は、図１１（ｃ）に示すように、試行画像表示アプリにより試行画像を消去させて、エラー画像を表示部１６の第１表示階層１６１に表示させる。図１３は、このエラー画像の一例を示す図である。図１３に示すように、このエラー画像においては、表示部１６に「外部アプリを実行できませんでした（ＸＸＸブラウザ）」という文字列が表示され、その下に「設定情報をご確認の上、下記にお問い合わせ下さい」という文字列とともに、外部アプリ名、ベンダ名および連絡先が表示される。なお、この場合には、表示階層テーブル１３２において第２表示階層１６２に対応する使用ＶＲＡＭ領域には、メニューアプリの使用ＶＲＡＭ領域「ＡＤ８１１」が書き込まれたままの状態となる。
【００４１】
以上の動作により、画像形成装置１は、指定されたアプリが内部アプリであるか外部アプリであるかを判断し、外部アプリである場合にはその実行の試行をするとともに、その外部アプリの実行を試行していることを示す試行画像をメニューアプリの表示階層よりも手前の表示階層に表示させる。
【００４２】
（Ｃ：変形例）
上述の実施形態を以下のように変形してもよい。また、以下のように変形した態様を組み合わせてもよい。
（Ｃ−１：変形例１）
上述の実施形態において、外部アプリが実行対象として指定されたときに、ＣＰＵ１１は、外部アプリの実行を試行するとともに試行画像を第１表示階層１６１に表示させていたが、指定された外部アプリの実行を試行する前に、利用者に実行の確認を促すようにしてもよい。また、この確認画像において、指定された外部アプリについての免責事項を表示してもよい。図１４は、この変形例１における画像形成装置１の動作を表すフロー図である。図１４には、上述の実施形態と共通する処理について図９と同じ符号を付しており、これらの処理の説明を省略する。この変形例１において、上述の実施形態と異なる処理は、図９に示したステップＳ１０３の後に、実行確認処理（ステップＳ２００）を行う点である。図１５は、この実行確認処理の詳細を説明するためのフロー図である。ＣＰＵ１１は、指定された外部アプリに対応する外部アプリ設定ファイルからこの外部アプリの名称とこれを開発したベンダの名称およびそのベンダの連絡先を示す文字列をそれぞれ取得すると（ステップＳ１０５）、この外部アプリを実行することがすでに了承されているか否かを確認する（ステップＳ２０１）。この確認は具体的には以下のように行われる。例えば、記憶部１４には、外部アプリのそれぞれについて、その外部アプリの実行が利用者によって既に了承されているか否かを示す了承状態を記述する実行確認テーブルが記憶されている。ＣＰＵ１１は、この実行確認テーブルを参照し、実行対象として指定された外部アプリの実行が利用者によって既に了承済みであるか否かを判断する。すなわち、ＣＰＵ１１は、第２のアプリのそれぞれについて、その実行が利用者によって既に了承されているか否かを示す了承状態を取得する了承状態取得手段の一例である。そして、既にこの外部アプリの実行が了承済みであると判断した場合には（ステップＳ２０１；ＹＥＳ）、ＣＰＵ１１は、処理をステップＳ１０６に進める。一方、この外部アプリの実行が了承済みではないと判断した場合には（ステップＳ２０１；ＮＯ）、ＣＰＵ１１は、試行画像表示アプリに従って、取得した各種設定値に基づいてこの外部アプリの実行についての確認を促す画像（以下、実行確認画像という）をＶＲＡＭ上に生成する。実行確認画像がＶＲＡＭ上に生成されると、ＣＰＵ１１は、ＲＡＭ１３の表示階層テーブル１３２において、第１表示階層１６１に対応する使用ＶＲＡＭ領域として、指定された外部アプリを対象とする試行画像表示アプリの使用ＶＲＡＭ領域のアドレスを書き込む。これにより、利用者に対し、この外部アプリの実行についての確認を促す実行確認画像が第１表示階層１６１に表示される（ステップＳ２０２）。ここで、このステップＳ２０２の直前において、既に実行中の内部アプリであるメニューアプリにより、第２表示階層１６２に操作画面が表示されている。しかし、このステップＳ２０２を経ることにより、第２表示階層１６２よりも視認方向手前側の第１表示階層１６１において、指定された外部アプリの実行を了承するか否かを利用者に問い合わせるための実行確認画像が表示されるので、表示部１６は操作画面ではなく、この実行確認画像を表示することとなる。なお、「実行についての確認」とは、利用者に対してこの外部アプリの動作についての問合せ先としてその開発元（すなわち、ベンダ）の連絡先を報知した上で、その外部アプリの実行を今後ずっと了承するか、今回のみ了承するか、了承しないか（すなわち、実行を中止するか）を判断させることである。
【００４３】
図１６は、この変形例１における実行確認画像の一例を示す図である。図１６に示すように、表示部１６には、「外部アプリの実行を確認中です（ＸＸＸブラウザ）」という文字列が表示され、その下には、画像形成装置１のメーカー（文中において「弊社」と表記する）が、この外部アプリの動作を保証しないことを示す文章と、この外部アプリの外部アプリ名と、この外部アプリの動作の問合せ先として、ベンダ名および連絡先が表示される。そして、表示部１６には、その表示に隣接して３つのボタンが表示される。この３つのボタンとは「了承する（今後この画像を表示しない）」という文字が記述されたボタン（以下、このボタンを押下する操作を「今回以降了承」という）と、「了承する（次回もこの画像を表示する）」という文字が記述されたボタン（以下、このボタンを押下する操作を「今回のみ了承」という）と、「了承しない」という文字が記述されたボタンである。
【００４４】
そして、ＣＰＵ１１は、操作部１５を監視することにより、上述した３つのボタンのいずれかを押下する操作が有るか否かを判断し（ステップＳ２０３）、操作が有るまで待ち続ける（ステップＳ２０３；ＮＯ）。そして、操作が有ると判断すると（ステップＳ２０３；ＹＥＳ）、ＣＰＵ１１は、上述した実行確認画像を消去する（ステップＳ２０４）。具体的には、ＣＰＵ１１は、ＲＡＭ１３の表示階層テーブル１３２において、第１表示階層１６１に対応する使用ＶＲＡＭ領域として、それが存在しないことを意味する「−」を書き込む。これにより、表示部１６において、第１表示階層１６１の表示は消去され、第２表示階層１６２に対応する使用ＶＲＡＭ領域に生成された画像が表示される。
【００４５】
次に、ＣＰＵ１１は、操作の内容に応じて処理を行う。すなわち、ＣＰＵ１１は、まず操作が「今回以降了承」であるか否かを判断し（ステップＳ２０５）、操作が「今回以降了承」であると判断した場合には（ステップＳ２０５；ＹＥＳ）、記憶部１４に記憶されている実行確認テーブルにこの外部アプリの実行が了承済みであることを書き込み（ステップＳ２０６）、処理をステップＳ１０５に進める。一方、操作が「今回以降了承」でないと判断した場合には（ステップＳ２０５；ＮＯ）、ＣＰＵ１１は、操作が「今回のみ了承」であるか否かを判断する（ステップＳ２０７）。そして、操作が「今回のみ了承」であると判断した場合には（ステップＳ２０７；ＹＥＳ）、ＣＰＵ１１は、そのまま処理をステップＳ１０６に進め、操作が「今回のみ了承」でないと判断した場合には（ステップＳ２０７；ＮＯ）、ＣＰＵ１１は、「了承しない」という文字が記述されたボタンが押下されたものと判断し、処理を終了する。これにより、利用者は、動作が保証されていない外部アプリについて、実行の直前に実行してよいか否かを確認する。また、画像形成装置１は、実行対象として指定された外部アプリについての免責事項を利用者に意識させる。さらに、既に実行することを了承している外部アプリについては、この確認を行わないので、利用者が一度了承した外部アプリの実行について再度了承を求められることはない。
【００４６】
（Ｃ−２：変形例２）
上述の実施形態において、表示部１６には、２層の表示階層が備えられていたが、表示階層は３層以上であってもよい。要するに実行中のアプリからの要求に応じた画像が既に表示されている表示階層よりも視認方向手前側の表示階層において、実行対象として新たに指定された外部アプリの実行を試行していることを示す試行画像が表示されればよい。
また、上述の実施形態において、実行対象として指定された内部アプリまたは外部アプリによって追い出されるのは必ずメニューアプリであったが、メニューアプリ以外のアプリが追い出されるように構成されていてもよい。
【００４７】
この変形例２について、表示部１６に３層の表示階層を備える画像形成装置１を例に挙げて説明する。３層の表示階層は、表示部１６の視認方向手前から奥側に向けて第１表示階層→第２表示階層→第３表示階層の順に並んでいる。まず、画像形成装置１のＣＰＵ１１は、表示部１６の第２表示階層にメニューアプリからの要求に応じた画像を表示する。これにより、第２表示階層には図４に示したような操作画面が表示される。そして、利用者がいずれかのアプリを実行対象となるアプリとして指定すると、ＣＰＵ１１は、操作部１５を介してこの指定を解釈し、指定されたアプリを特定して記憶部１４から読み出す。そして、指定されたアプリが内部アプリである場合には、ＣＰＵ１１は、この内部アプリからの表示要求に基づいて表示部１６の最も奥側に存在する第３表示階層に表示させる。このとき、既に実行中のアプリがある場合には、第３表示階層にそのアプリの要求に応じた画像が表示されているが、ＣＰＵ１１はこの画像を追い出して、第３表示階層に新たに指定された内部アプリの要求に応じた画像を表示する。そして、ＣＰＵ１１は、第２表示階層に表示されていたメニューアプリによる画像、すなわち操作画面を消去する。これにより、表示部１６の第１表示階層および第２表示階層には何も表示されなくなるため、表示部１６は、第３表示階層により内部アプリからの要求に応じた画像を表示する。
【００４８】
一方、指定されたアプリが外部アプリである場合には、ＣＰＵ１１は、上述した実施形態と同様、この外部アプリからの表示要求を待つとともに、表示部１６の最も手前に存在する第１表示階層に、この外部アプリを対象とする試行画像を表示させる。そして、外部アプリからの表示要求があると、ＣＰＵ１１は、この表示要求に応じた画像を、メニューアプリからの要求に応じた画像が表示されている第２表示階層ではなく、表示部１６の最も奥側に存在する第３表示階層に第３表示階層に表示させる。このとき、既に実行中のアプリがある場合には、ＣＰＵ１１は上述と同様にこの画像を追い出して、第３表示階層に新たに指定された外部アプリの要求に応じた画像を表示する。そして、第３表示階層にこの画像が表示されると、ＣＰＵ１１は、第２表示階層に表示されていたメニューアプリの操作画面と、第１表示階層に表示されていたこの外部アプリを対象とする試行画像とをそれぞれ消去する。これにより、表示部１６の第１表示階層および第２表示階層には何も表示されなくなるため、表示部１６は、第３表示階層により内部アプリからの要求に応じた画像を表示する。
また、外部アプリから表示部１６に対する表示要求が無い期間が予め定めた閾値を超えた場合には、ＣＰＵ１１は、実行対象として指定された外部アプリが正常に動作していないものと判断し、第１表示階層に表示されていた試行画像のみを消去する。これにより、表示部１６には、第２表示階層の表示内容であるメニューアプリの操作画面が表示される。
【００４９】
なお、表示部１６がｎ（ｎは２以上の整数）層の表示階層を有する場合には、ＲＡＭ１３の表示階層テーブル１３２には、表示階層ごとにそれぞれ使用ＶＲＡＭ領域が割り当てられるようにすればよい。ＣＰＵ１１は、この表示階層テーブル１３２に割り当てられた使用ＶＲＡＭ領域を、第１表示階層→第２表示階層→…→第ｎ表示階層の順に参照し、最初に「−」でないアドレスを読み込んだときに、これを表示部１６に表示させればよい。
【００５０】
（Ｃ−３：変形例３）
上述の実施形態において、ＣＰＵ１１は、実行アプリテーブル１３１に、実行中のアプリをそのアプリを実行した利用者ごとに記述していなかったが、利用者ごとに記述してもよい。この場合、画像形成装置１はログイン画面などを表示し、ログインした利用者のみにアプリの実行を許可すればよい。ＣＰＵ１１は、アプリの実行を指示する利用者をユーザ名などによって識別することができるため、実行アプリテーブル１３１に追加するアプリのレコードにそのアプリを実行するユーザ名を含ませればよい。
なお、ログイン画面により画像形成装置１を使用する利用者を識別する場合には、ＣＰＵ１１は、外部アプリを実行対象として指定する利用者を識別可能であり、上述した変形例１においても、外部アプリを了承する利用者を識別可能である。したがって、この場合いは、変形例１における実行確認テーブルを、利用者ごとに記憶するようにしてもよい。これにより、複数の利用者が使用する画像形成装置等において、外部アプリの了承の状態は、利用者ごとに異なるようになる。
【００５１】
（Ｃ−４：変形例４）
上述の実施形態において、表示部１６が備える複数の表示階層は、ＣＰＵ１１が表示部１６のＶＲＡＭとＲＡＭ１３の表示階層テーブル１３２を参照することにより、仮想的に存在するように構成されていたが、物理的にこれら複数の表示階層が存在するように構成されていてもよい。例えば、表示部１６は、複数の表示板を物理的に積層してもよい。この複数の表示板は、例えば、電流・電圧の印加により可逆的に透過率が変化する材料を用いたエレクトロクロミック素子や、温度により透過率が変化する材料を用いたサーモクロミック素子などでできており、照射された光を反射または拡散させる状態と透過させる状態とを相互に切り替える制御が可能なように構成されている。そして、各表示板の表示面に対しては、その側面から画像表示のための光線を照射するプロジェクタがそれぞれ備えられている。これにより、この表示板は、複数の階調（例えば、白・黒の２階調など）を視認方向に表示できるほか、視認方向に光を透過させ得る状態になることができる。そして、この表示板が、表示階層テーブル１３２によりＶＲＡＭの記憶領域と結び付けられているときには、結び付けられた記憶領域に応じて不透明の画像を表示する。そのため、この表示板よりも奥側に配置されている表示板の表示内容は利用者からは視認されない。一方、表示階層テーブル１３２によりＶＲＡＭの記憶領域と結び付けられていないときには、この表示板は透明の状態となる。これにより、この表示板よりも奥側に配置されている表示板の表示内容が利用者によって視認される。
【００５２】
（Ｃ−５：変形例５）
上述の実施形態において、記憶部１４は、内部アプリと外部アプリおよび各外部アプリに対応する外部アプリ設定ファイルを記憶していたが、画像形成装置１は、これらを通信部１８によって取得してもよい。具体的には、例えば、画像形成装置１の通信部１８はインターネット等の通信回線に接続している。そして、画像形成装置１のＣＰＵ１１は、通信部１８を介してこの通信回線上に設けられたサーバにアクセスし、サーバに対してこれらのアプリや設定ファイル等を要求することにより、サーバからこれらを取得すればよい。
【００５３】
（Ｃ−６：変形例６）
上述の実施形態において、ＣＰＵ１１は、実行対象として指定されたアプリが外部アプリである場合には、この外部アプリを対象とする試行画像表示アプリを実行していたが、指定された外部アプリの実行を試行していることを示す試行画像は、試行画像表示アプリを実行する以外の方法によって表示させてもよい。例えば、カーネル１１０１が直接、実行対象として指定された外部アプリに対応する外部アプリ設定ファイルを特定し、試行画像を生成してもよい。
また、上述の実施形態において、エラー画像は試行画像表示アプリによって表示されていたが、試行画像表示アプリとは別の内部アプリによって表示されてもよい。この場合、エラー画像を表示するエラー画像表示アプリを試行画像表示アプリとは別に実行させ、第１表示階層１６１から試行画像表示アプリの要求に応じた画像（すなわち、試行画像）を追い出して、エラー画像表示アプリの要求に応じた画像（すなわち、エラー画像）を表示させるようにすればよい。なお、変形例１において、実行確認画像は試行画像表示アプリによって表示されていたが、実行確認画像においても同様に、試行画像表示アプリとは別の内部アプリによって表示されてもよい。
【００５４】
（Ｃ−７：変形例７）
上述の実施形態において、内部アプリには、そのヘッダ部に画像形成装置１と同じ機種の画像形成装置において実行可能なアプリであることを示す記号（識別情報）が記述されていたが、この記号は、内部アプリのヘッダ部以外に記述されていてもよい。また、ＣＰＵ１１等は、この記号以外によって、外部アプリと内部アプリとを区別してもよい。例えば、各アプリ名を内部アプリと外部アプリとに区別するテーブルを記憶部１４に記憶し、これにより区別してもよい。またＣＰＵ１１等は、アプリを記憶部１４の内部アプリ群１４１と外部アプリ群１４２のいずれから読み出したかによって、区別してもよい。これらの場合においては、内部アプリには上述した記号が記述されていなくてもよい。要するに、内部アプリが自装置において実行可能なことを識別する識別情報と対応付けられていればよい。
【００５５】
（Ｃ−８：変形例８）
上述の実施形態において、画像形成装置１のＣＰＵ１１によって実行されるカーネル１１０１や外部アプリ制御デーモンプロセス１１０３等のアプリは、磁気テープや磁気ディスクなどの磁気記録媒体、光ディスクなどの光記録媒体、光磁気記録媒体、半導体メモリなどの、コンピュータ装置が読み取り可能な記録媒体に記憶された状態で提供し得る。また、このアプリを、インターネットのようなネットワーク経由でダウンロードさせることも可能である。なお、このような制御を行う制御手段としてはＣＰＵ以外にも種々の装置を適用することができ、例えば、専用のプロセッサなどを用いてもよい。
【図面の簡単な説明】
【００５６】
【図１】実施形態に係る画像形成装置の全体構成を示すブロック図である。
【図２】操作部および表示部の外観の一例を示す図である。
【図３】表示部における表示階層を説明するための概念図である。
【図４】表示部に表示される操作画面の一例を示す図である。
【図５】像形成装置のソフトウェア構成を示したブロック図である。
【図６】外部アプリ設定ファイルの一例を示す図である。
【図７】実行アプリテーブルの一例を示した図である。
【図８】表示階層テーブルの例を示した図である。
【図９】アプリの実行が指示されたときの動作の流れを示すフロー図である。
【図１０】アプリが指定されたときの実行アプリテーブルの例を示す図である。
【図１１】画像形成装置における表示階層テーブルの遷移の例を示す図である。
【図１２】試行画像の一例を示す図である。
【図１３】エラー画像の一例を示す図である。
【図１４】変形例１における画像形成装置の動作を表すフロー図である。
【図１５】実行確認処理の詳細を説明するためのフロー図である。
【図１６】変形例１における実行確認画像の一例を示す図である。
【符号の説明】
【００５７】
１…画像形成装置、１１…ＣＰＵ、１１００…リソース・プラットフォーム、１１０１…カーネル、１１０２…内部アプリ実行環境、１１０３…外部アプリ制御デーモンプロセス、１１０４…外部アプリ実行環境、１１１１…メニューアプリ、１１１２…外部アプリ制御フロントエンド、１１１５…外部アプリ制御バックエンド、１１１６…外部アプリ、１１１７…試行画像表示アプリ、１２…ＲＯＭ、１３…ＲＡＭ、１３１…実行アプリテーブル、１３２…表示階層テーブル、１４…記憶部、１４１…内部アプリ群、１４２…外部アプリ群、１４３…外部アプリ設定ファイル群、１５…操作部、１５１…座標取得部、１５２…操作ボタン、１６…表示部、１６１…第１表示階層、１６２…第２表示階層、１７…像形成部、１８…通信部、１９…バス。
【図１】
2010081183.tif 000003
【図２】
2010081183.tif 000004
【図３】
2010081183.tif 000005
【図４】
2010081183.tif 000006
【図５】
2010081183.tif 000007
【図６】
2010081183.tif 000008
【図７】
2010081183.tif 000009
【図８】
2010081183.tif 000010
【図９】
2010081183.tif 000011
【図１０】
2010081183.tif 000012
【図１１】
2010081183.tif 000013
【図１２】
2010081183.tif 000014
【図１３】
2010081183.tif 000015
【図１４】
2010081183.tif 000016
【図１５】
2010081183.tif 000017
【図１６】
2010081183.tif 000018