(57)【要約】【課題】異なる機種の画像形成装置において実行可能な外部アプリケーションプログラムを、それ自身を変更することなく実行可能か否か判断し、実行可能である場合には実行する。【解決手段】ＣＰＵ１１は、選択されたアプリケーションプログラムが、外部アプリケーションであるか否かを判断する。外部アプリケーションプログラムであると判断した場合は、ＣＰＵ１１は、記憶部１４の外部アプリケーション設定ファイル群１４３から、これに対応する外部アプリケーション設定ファイルを特定し、最大実行数を取得する。ＣＰＵ１１は、実行アプリケーションテーブル１３１を参照して、外部アプリケーションプログラムの実行数を取得し、この実行数と最大実行数とを比較する。実行数が最大実行数を上回っていると判断した場合には、ＣＰＵ１１は、外部アプリケーション設定ファイルの設定に応じた処理を行う。【選択図】図１
2010050569.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）などの拡張可能なマークアップ言語によって記述されている。図に示す部分ｐには、この外部アプリケーション設定ファイルに対応する外部アプリケーションプログラムの情報が記述されている。この例によると、例えば、「ｒｅｑｕｉｒｅｄＸＲｅｓｏｌｕｔｉｏｎ」というタグに対応する設定値は「６４０」である。この情報はＣＰＵ１１に読み込まれると、外部アプリケーションプログラムの要求するリソースの情報として用いられる。例えば、上述した「ｒｅｑｕｉｒｅｄＸＲｅｓｏｌｕｔｉｏｎ」というタグは、表示装置の水平解像度に予め対応付けられているため、この外部アプリケーションプログラムが、水平解像度が６４０の表示領域を要求していると解釈される。
【００２０】
ここで、図に示した「ｌｉｍｉｔＰｅｒＳｅｓｓｉｏｎ」というタグは、この外部アプリケーションプログラムを並列して実行することができる最大の数（以下、最大実行数という）を表している。この例においては、この設定値が「７」であるから、並列して７つまで、この外部アプリケーションプログラムを実行することができることがわかる。また、「ｌａｓｔＰｒｏｃｅｓｓＮａｍｅ」というタグは、上記の最大実行数を超えて実行の指示がされた場合の処理手段を表している。この例ではこの設定値は「ｅｘｅｃ」であり、上述の場合に、この外部アプリケーションプログラムを「再起動」することを意味している。他にも、外部アプリケーション設定ファイルには、終了の手順等が設定されている。
なお、最大実行数が「１」の場合には、その外部アプリケーションプログラムは、２以上、並列して実行することができないということを意味する。すなわち、この外部アプリケーションプログラムは、実行中であるか否かの２通りとなる。
【００２１】
（Ａ−５：実行アプリケーションテーブルの構成）
図６は、実行アプリケーションテーブル１３１の一例を示した図である。カーネル１１０１は、画像形成装置１のＣＰＵ１１の処理時間を実行中の複数のアプリケーションプログラム毎に分割するタイムシェアリング処理によって、並列処理を行う。「ＰＩＤ」とは、各アプリケーションプログラムが具体的に実行される際のプロセスを一意に示す識別子である。「ユーザ名」とは、そのアプリケーションプログラムの実行を指示したユーザの識別子である。なお、カーネルやデーモンなどは、特定のユーザが実行を指示したものではなく、基本ＯＳが実行しているものであるから、操作部１５を介してパスワードとともに入力されたユーザ名とは異なる特別なユーザ名として「ｒｏｏｔ」が記述されている。「種別」とは、実行中のアプリケーションプログラムが、内部アプリケーションプログラムであるか外部アプリケーションプログラムであるかを示す項目である。「使用表示部」とは、アプリケーションプログラムが使用する表示部を示している。「処理名」とは、アプリケーションプログラムの名前である。図に示すように、カーネル１１０１は、各アプリケーションプログラムを、その実行を指示したユーザ毎に記述して管理する。
【００２２】
（Ｂ：動作）
次に、画像形成装置１の動作について説明する。
（Ｂ−１：起動動作）
ユーザが操作部１５を操作すると、図示しない電源ユニットから画像形成装置１の各構成に電力が供給される。電力を供給されたＣＰＵ１１は、ＲＯＭ１２からＢＩＯＳを読み出し、続いて記憶部１４に記憶された基本ＯＳを読み出して、読み出した基本ＯＳを実行する。基本ＯＳに含まれるカーネル１１０１により、ＲＡＭ１３に実行アプリケーションテーブル１３１が生成される。そして、ＣＰＵ１１は、ユーザのユーザ名およびパスワードを受け付ける内部アプリケーションプログラムである「ログインプログラム」を実行する。これにより、主表示部１６１には、ユーザ名およびパスワードを入力するテキストボックスが表示される。そして、操作部１５は、ユーザによるユーザ名およびパスワードの入力を受け付ける。入力されたユーザ名およびパスワードはＲＡＭ１３に記憶され、記憶部１４に予め記憶されたユーザ名およびパスワードと照合される。そして、これらが一致した場合には、ＣＰＵ１１は、そのユーザに対する画像形成装置１の使用を許可する。これをユーザのログインという。そして、ＣＰＵ１１は、図４に示したメニューアプリケーション１１１１を実行する。そして、ログインプログラムにより、ＣＰＵ１１は、上記の「ユーザ名およびパスワードを入力するテキストボックス」を補助表示部１６２に表示させ、操作部１５により、他のユーザによるユーザ名およびパスワードの入力を受け付ける。
これにより、主表示部１６１には、図３に示した操作画面が表示される。
【００２３】
図７は、ユーザによりアプリケーションプログラムの実行が指示されたときの動作の流れを示すフロー図である。
まず、ＣＰＵ１１は、操作部１５から送られる操作信号を検出して、ユーザがサービスを示す画像を押下したか否かを判断する（ステップＳ１０１）。具体的には、ユーザが、図３に示した操作画面において画像Ａ１〜Ａ８が表示されている領域を指などで押下すると、座標取得部１５１がこの操作を検出し、押下された位置に対応する操作信号をＣＰＵ１１に送る。ＣＰＵ１１は、予め定められた画像Ａ１〜Ａ８の位置とこの操作信号が示す押下された位置とを比較し、ユーザの選択したサービスを特定する。ＣＰＵ１１は、ユーザがサービスを示す画像を押下したことを検出するまで（ステップＳ１０１；ＮＯ）、この判断をし続ける。
【００２４】
ユーザがサービスを示す画像を押下したと判断すると（ステップＳ１０１；ＹＥＳ）、ＣＰＵ１１は、押下されたサービスに対応するアプリケーションプログラム、すなわち実行を指示されたアプリケーションプログラムの識別子を特定する。そして、ＣＰＵ１１は、この特定した識別子に基づいて記憶部１４から指示されたアプリケーションプログラムを読み出し、そのヘッダ部に上記の記号が記述されているか否かを検査することにより、外部アプリケーションプログラムであるか否かを判断する（ステップＳ１０２）。
指示されたこのアプリケーションプログラムは外部アプリケーションプログラムではないと判断すると（ステップＳ１０２；ＮＯ）、ＣＰＵ１１は、指定されたサービスに対応するアプリケーションプログラムを実行する（ステップＳ１０３）。一方、実行を指示されたアプリケーションプログラムが、外部アプリケーションプログラムであると判断した場合は（ステップＳ１０２；ＹＥＳ）、ＣＰＵ１１は、記憶部１４の外部アプリケーション設定ファイル群１４３から、指示された外部アプリケーションプログラムに対応する外部アプリケーション設定ファイルを特定し、特定したファイルから実行対象の外部アプリケーションプログラムが使用するリソースについての情報等を取得する（ステップＳ１０４）。次に、ＣＰＵ１１は、ＲＡＭ１３に生成されている実行アプリケーションテーブル１３１を参照して、指示された外部アプリケーションプログラムと同一の外部アプリケーションプログラムが実行されている数（以下、実行数という）を取得する（ステップＳ１０５）。
【００２５】
そして、ＣＰＵ１１は、取得した実行数に実行対象となる外部アプリケーションプログラムの数（ここでは１）を加えた数と、特定した外部アプリケーション設定ファイルから取得した最大実行数とを比較し、実行数に１を加えた数が最大実行数を上回るか否かを判断する（ステップＳ１０６）。実行数に１を加えた数が最大実行数を上回っていないと判断した場合には（ステップＳ１０６；ＮＯ）、ＣＰＵ１１は、この外部アプリケーションプログラムを実行する（ステップＳ１０７）。このとき、ＣＰＵ１１は、実行アプリケーションテーブル１３１の内容を更新する。具体的には、この外部アプリケーションプログラムの実行に対し、カーネル１１０１が割り当てたプロセスの識別子を「ＰＩＤ」として、この外部アプリケーションプログラムの実行を指示したユーザ名に対応するユーザの識別子を「ユーザ」として記述する。また、「種別」には「外部」を、「処理名」にはこの外部アプリケーションプログラムの識別子を記述する。
【００２６】
一方、実行数に１を加えた数が最大実行数を上回ると判断した場合には（ステップＳ１０６；ＹＥＳ）、ＣＰＵ１１は、外部アプリケーション設定ファイルにおいて「再起動」が設定されているか否かを判断する（ステップＳ１０８）。「再起動」が設定されていると判断した場合（ステップＳ１０８；ＹＥＳ）、ＣＰＵ１１は、実行中の外部アプリケーションプログラムを終了させ（ステップＳ１０９）、これらを終了したことを確認するための表示を主表示部１６１または補助表示部１６２により表示し（ステップＳ１１０）、ユーザによって実行対象として新たに指定された外部アプリケーションプログラムを改めて起動する（ステップＳ１１１）。一方、「再起動」が設定されていないと判断した場合（ステップＳ１０８；ＮＯ）、ＣＰＵ１１は、実行アプリケーションテーブル１３１を参照して、すでに実行されている同一の外部アプリケーションプログラムの中から一つを選び、これを主表示部１６１または補助表示部１６２で再表示させる（ステップＳ１１２）。
【００２７】
例えば、画像形成装置１に電力が供給されてから初めてユーザがログインした場合であって、ユーザによる外部アプリケーションプログラムの実行が初めて指示された場合には、この外部アプリケーションプログラムの実行数は「０」であるから、この実行数に１を加えた数は「１」である。そして、この外部アプリケーションプログラムの最大実行数が「７」と設定されている場合には、「１＜７」であり、ステップＳ１０６の判断は否となるため（ステップＳ１０６；ＮＯ）、ＣＰＵ１１は、指示された外部アプリケーションプログラムを実行し（ステップＳ１０７）、実行アプリケーションテーブル１３１には、この外部アプリケーションプログラムのプロセスが記述される。
そして、このユーザや、新たにログインした他のユーザが、上記の外部アプリケーションプログラムを実行することにより、外部アプリケーションプログラムの実行数は増加し、実行数が「７」となったとする。ここで、また同一の外部アプリケーションの実行がユーザにより指示されたとすると、この実行数の１を加えた数は「８」であり、最大実行数「７」を上回る。したがって、ステップＳ１０６の判断は是となり（ステップＳ１０６；ＹＥＳ）、ＣＰＵ１１は、処理をステップＳ１０８に進める。
【００２８】
以上の動作により、画像形成装置１は、外部アプリケーションプログラムに予め定められた最大実行数などの実行条件を読み出し、外部アプリケーションプログラムの実行状況に応じて指示された外部アプリケーションプログラムの実行を調整する。
例えば、ブラウザなどの外部アプリケーションプログラムの場合には、外部アプリケーションプログラムであるブラウザが表示する内容は、その都度指示したｗｅｂサイトのページなどである。そして、このブラウザを実行した後に他のアプリケーションプログラムを実行し、このブラウザの表示が隠れてしまった場合には、そのｗｅｂサイトのページが表示されたままとなる。ユーザにとって、この表示はすでに関心がなくなっている場合に、このブラウザを実行しているプロセスを探し出して終了させることは煩雑である。また、ブラウザはその都度、ユーザが見たいページを指示するものであるから、初期状態で実行することが望ましい。したがって、外部アプリケーションプログラムがブラウザの場合には、外部アプリケーション設定ファイルにより、「再起動」が設定されていることが望ましい。
一方、外部アプリケーションプログラムの中には、指示した処理が終了すると初期画面に復帰するものも有る。例えば、サードパーティによって製造されたコピーやＦＡＸなどの外部アプリケーションプログラムである。コピーやＦＡＸなどは、指示した枚数の複写を行ったり、画像読取装置に設置した記録材を読み取って送信したりした後は、初期状態に戻ってユーザの指示を待ち受ける状態になる。この場合には、ユーザにこの外部アプリケーションプログラムの機能を利用させるためには、すでに実行中の外部アプリケーションプログラムを再表示させるだけでよい。したがって、これらの外部アプリケーションプログラムには「再起動」を設定しないことが望ましい。
【００２９】
（Ｂ−２：ログアウト動作）
図８は、ユーザがログアウトする際の動作の流れを示したフロー図である。ＣＰＵ１１は、画像形成装置１を使用するユーザがログアウトしたか否かを判断する（ステップＳ２０１）。ここで、ログアウトとは、ログインしたユーザ名による画像形成装置１の使用を終了することをいう。ログアウトは具体的には、主表示部１６１等の表示領域に表示されたログアウトを示すアイコンなどを押下することにより行われる。ＣＰＵ１１は、新たにログアウトが検出されるまで待ち続ける（ステップＳ２０１；ＮＯ）。
【００３０】
ログアウトが検出されると（ステップＳ２０１；ＹＥＳ）、ＣＰＵ１１は、実行アプリケーションテーブル１３１から、このログアウトしたユーザ名が記述されているレコードのＰＩＤを抽出することにより、ログアウトしたユーザが起動したアプリケーションプログラムの情報を取得する（ステップＳ２０２）。そして、ＰＩＤの小さいものから順に、そのアプリケーションプログラムが外部アプリケーションプログラムであるか否かを、「種別」を参照することで判断する（ステップＳ２０３）。調査したＰＩＤのアプリケーションプログラムが外部アプリケーションプログラムではないと判断した場合には（ステップＳ２０３；ＮＯ）、ＣＰＵ１１は、後述するステップＳ２０９へ処理を移動させる。
【００３１】
一方、外部アプリケーションプログラムであると判断した場合には（ステップＳ２０３；ＹＥＳ）、ＣＰＵ１１は、記憶部１４の外部アプリケーション設定ファイル群１４３から、この外部アプリケーションプログラムに対応する外部アプリケーション設定ファイルを特定し、この外部アプリケーションプログラムの終了手順を取得する（ステップＳ２０４）。そして、ＣＰＵ１１は、取得した終了手順に従って、この外部アプリケーションプログラムを終了する旨の終了命令を行う（ステップＳ２０５）。その後、ＣＰＵ１１は、この外部アプリケーションプログラムが終了したか否かを判断し（ステップＳ２０６）、終了していると判断した場合には（ステップＳ２０６；ＹＥＳ）、処理をステップＳ２０９へ進める。この外部アプリケーションプログラムが終了していないと判断した場合には（ステップＳ２０６；ＮＯ）、ログアウトが行われてから経過した経過時間と予め定められた閾値とを比較し、経過時間が閾値を超えているか否か、すなわちタイムアウトになっているか否かを判断する（ステップＳ２０７）。なお、経過時間は、ログアウトが行われてから計測してもよいが、最初に終了命令が行われたときから計測してもよい。
【００３２】
ここで、まだタイムアウトになっていないと判断した場合には（ステップＳ２０７；ＮＯ）、ＣＰＵ１１は処理をステップＳ２０４戻し、外部アプリケーション設定ファイルに記述された終了手順を試みる（ステップＳ２０５〜Ｓ２０６）。一方、タイムアウトになっていると判断した場合には（ステップＳ２０７；ＹＥＳ）、ＣＰＵ１１は、この外部アプリケーションプログラムを強制終了する（ステップＳ２０８）。その後、ＣＰＵ１１は、ステップＳ２０９に処理を進め、このユーザ名が記述されているアプリケーションプログラムが全て終了したか否かを判断する（ステップＳ２０９）。終了していないと判断した場合には（ステップＳ２０９；ＮＯ）、ＣＰＵ１１は、処理をステップＳ２０３に戻し、ログアウトしたユーザにより実行中の外部アプリケーションプログラムのうち、終了していないものについて、終了処理を行う（ステップＳ２０４〜Ｓ２０８）。一方、全て終了していると判断した場合には（ステップＳ２０９；ＹＥＳ）、ＣＰＵ１１は処理を終了する。
【００３３】
以上の動作により、画像形成装置１は、ユーザが実行した外部アプリケーションプログラムのうち、そのユーザがログアウトする前に終了しなかった外部アプリケーションプログラムを、予め定めた手順に従って終了させることを試み、また、これにより終了しなかった場合には、この外部アプリケーションプログラムを強制終了させる。
【００３４】
（Ｃ：変形例）
上述の実施形態を以下のように変形してもよい。また、以下のように変形した態様を適宜組み合わせてもよい。
（Ｃ−１）上述の実施形態において、外部アプリケーションプログラムの実行条件として最大実行数を用いたが、実行条件はこれに限られない。例えば、使用するリソースの条件を用いてもよい。例えば、表示装置の画面サイズや色数（カラー数）などの属性や機能をリソースの条件としてもよい。具体例として、図５に示したように「ｒｅｑｕｉｒｅｄＣｏｌｏｒＲｅｓｏｌｕｔｉｏｎ」というタグが「８」の場合を挙げて説明する。このタグは、外部アプリケーションプログラムが表示装置に求める色数を、１画素の色を表すために使用される記憶領域のビット数によって表している。したがってこの数が「８」であるということは、２５６色の色数が使えることを要求していることとなる。そして、ＣＰＵ１１は、表示制御部１６を介して主表示部１６１および補助表示部１６２がそれぞれ有する色数を取得する。ここで、主表示部１６１はモノクロの表示装置であるため、色数は白色と黒色の２色である。したがって、上述のビット数は「１」である。一方、補助表示部１６２は、色数が２５６色のカラー液晶ディスプレイである。そのため、上述のビット数は「８」である。ＣＰＵ１１は、表示制御部１６からこれらの値を得て、外部アプリケーションプログラムが表示装置に求める上述の色数と比較し、この外部アプリケーションプログラムは主表示部１６１を使用できないと判断する。この判断の結果、ＣＰＵ１１は、この外部アプリケーションプログラムに補助表示部１６２を割り当ててもよいし、この外部アプリケーションプログラムの実行を中断してもよい。
【００３５】
（Ｃ−２）上述の実施形態において、ＣＰＵ１１は、実行アプリケーションテーブル１３１に、実行中のアプリケーションプログラムをユーザ毎に記述したが、ユーザ毎に記述しなくてもよい。すなわち、実行アプリケーションテーブル１３１には、実行中のアプリケーションプログラムが内部アプリケーションプログラムなのか外部アプリケーションプログラムなのかが識別可能なように記述されていればよい。
【００３６】
（Ｃ−３）上述の実施形態において、外部アプリケーションプログラムには、複数の外部アプリケーションプログラムの並列処理を行うものや、並列処理を模擬したものを想定していなかったが、このような外部アプリケーションプログラムを用いてもよい。そして、並列処理または擬似並列処理を行うこのような外部アプリケーションプログラムを他の外部アプリケーションプログラムと区別して処理してもよい。例えば、ＨＴＴＰなどのマークアップ言語で記述されたｗｅｂサイトの文書を閲覧するためにブラウザを用いる場合がある。このブラウザは、タブ付きのファイルを模した表示を用いることにより、複数の閲覧先のうち、一つを表示させるとともに、それ以外の閲覧先をあたかもその表示の裏に表示されているかのようにタブ部分だけ表示させるものである。こういった外部アプリケーションプログラムは、その実行中に同一の外部アプリケーションプログラムの起動したことをカーネルから通知されると、その外部アプリケーションプログラムが起動時に取得している、閲覧先についてのパラメータをカーネルから受け取り、すでに実行中の外部アプリケーションプログラム内でこのパラメータに応じたプロセスを生成し、これに応じた表示を行う。そして、カーネル１１０１に対し、実行中の外部アプリケーションプログラムへ上記のパラメータを受け渡した外部アプリケーションプログラムを終了させる旨の指示をする。カーネル１１０１はこの指示を受けて、その外部アプリケーションプログラムを終了させる。これにより、あたかもユーザが指示した外部アプリケーションプログラムが起動したかのような表示が行われる。この場合、外部アプリケーション設定ファイルには、対応する外部アプリケーションプログラムが、このような擬似並列処理を行うものであることを記述しておくことで、カーネル１１０１は、外部アプリケーションプログラムが擬似並列処理を行うものであるか否かを判断し、擬似並列処理を行うものである場合には、上述のパラメータ受け渡し処理を行う。また、実行アプリケーションテーブル１３１に、各外部アプリケーションプログラムが、擬似並列処理を行っているプロセスの数を記載する項目を設けてもよい。カーネル１１０１は、上述したパラメータ受け渡し処理を行った場合には、実行アプリケーションテーブル１３１を参照し、その外部アプリケーションプログラムの擬似並列処理数を読み出して、これに実行対象となる外部アプリケーションプログラムの数である１を加えた数値によって上書きする（すなわち、インクリメントする）ようにしてもよい。
【００３７】
（Ｃ−４）上述の実施形態において、外部アプリケーション設定ファイルに「再起動」が設定されていないと判断した場合、ＣＰＵ１１は、実行アプリケーションテーブル１３１を参照して、すでに実行されている同一の外部アプリケーションプログラムの中から一つを選び、これを主表示部１６１または補助表示部１６２で再表示させていたが、再表示以外の方法により、ユーザに実行中の外部アプリケーションプログラムがあることを知らせてもよい。例えば、「そのプログラムはすでに実行中です」という文字列を表示させてもよいし、すでに実行中の外部アプリケーションプログラムを再表示させる操作方法を記載した説明文を表示させてもよい。また、ＣＰＵ１１とバス１９を介して接続された図示しない音源と放音手段を用いて、ユーザに実行中の外部アプリケーションプログラムがあることを知らせるための予め定められた警告音を放音させてもよい。すなわち、ＣＰＵ１１は、実行中の外部アプリケーションプログラムの数に、実行対象となる第２のアプリケーションプログラムの数を加えた数が、実行条件記憶手段に記憶された最大実行数を上回っている場合には、この実行対象となるアプリケーションプログラムを実行せずに、実行中の第２のアプリケーションプログラムがあることを報知すればよい。
【００３８】
（Ｃ−５）上述の実施形態において、実行対象となる外部アプリケーションプログラムの数は１であったが、２以上であってもよい。すなわち、ＣＰＵ１１は、実行中の外部アプリケーションプログラムの数に、実行対象となる外部アプリケーションプログラムの数を加えた数が、外部アプリケーション設定ファイルに記憶された最大実行数を上回っているか否かを判断すればよい。
【００３９】
（Ｃ−６）上述の実施形態において、画像形成装置１のＣＰＵ１１によって実行されるカーネル１１０１や外部アプリケーション制御デーモンプロセス１１０３等のプログラムは、磁気テープや磁気ディスクなどの磁気記録媒体、光ディスクなどの光記録媒体、光磁気記録媒体、半導体メモリなどの、コンピュータ装置が読み取り可能な記録媒体に記憶された状態で提供し得る。また、このプログラムを、インターネットのようなネットワーク経由でダウンロードさせることも可能である。なお、このような制御を行う制御手段としてはＣＰＵ以外にも種々の装置を適用することができ、例えば、専用のプロセッサなどを用いてもよい。
【図面の簡単な説明】
【００４０】
【図１】実施形態に係る画像形成装置の全体構成を示すブロック図である。
【図２】操作部および主表示部の外観の一例を示す図である。
【図３】主表示部に表示される操作画面の一例を示す図である。
【図４】画像形成装置を機能構成毎に示した機能ブロック図である。
【図５】上述した外部アプリケーション設定ファイルの一例を示す図である。
【図６】実行アプリケーションテーブルの一例を示した図である。
【図７】アプリケーションの実行が指示されたときの動作の流れを示すフロー図である。
【図８】ユーザがログアウトする際の動作の流れを示したフロー図である。
【符号の説明】
【００４１】
１…画像形成装置、１１…ＣＰＵ、１１００…リソース・プラットフォーム、１１０１…カーネル、１１０２…内部アプリケーション実行環境、１１０３…外部アプリケーション制御デーモンプロセス、１１０４…外部アプリケーション実行環境、１１１１…メニューアプリケーション、１１１２…外部アプリケーション制御フロントエンド、１１１５…外部アプリケーション制御バックエンド、１１１６…外部アプリケーションプログラム、１２…ＲＯＭ、１３…ＲＡＭ、１３１…実行アプリケーションテーブル、１４…記憶部、１４１…内部アプリケーションプログラム群、１４２…外部アプリケーションプログラム群、１４３…外部アプリケーション設定ファイル群、１５…操作部、１５１…座標取得部、１５２…操作ボタン、１６…表示制御部、１６１…主表示部、１６２…補助表示部、１７…像形成部、１８…通信部、１９…バス。
【図１】
2010050569.tif 000003
【図２】
2010050569.tif 000004
【図３】
2010050569.tif 000005
【図４】
2010050569.tif 000006
【図５】
2010050569.tif 000007
【図６】
2010050569.tif 000008
【図７】
2010050569.tif 000009
【図８】
2010050569.tif 000010