(57)【要約】【課題】  画像形成装置のハードウェア資源の変更を容易にするとともに、アプリケーションプログラムのインストールを容易にする。【解決手段】  画像形成装置は、ハードウェア資源を制御するＣＰＵ１１１を備え、ＣＰＵ１１１は、内部コマンドが入力されると、ハードウェア資源を制御するために、入力された内部コマンドに対して予め定められた処理を実行するＭＦＰ制御部８１と、アプリケーションプログラムを実行するアプリ実行部６１と、アプリ実行部６１が、ＭＦＰ制御部８１を制御するために公開されたアプリコマンドを出力する場合、出力されたアプリコマンドを内部コマンドに変換し、変換された内部コマンドをＭＦＰ制御部８１に出力するアプリケーション制御部７１と、を備える。【選択図】        図６
2014022926.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア資源を制御する制御手段を備えた画像処理装置であって、
前記制御手段は、
内部コマンドが入力されると、前記ハードウェア資源を制御するために、前記入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、
アプリケーションプログラムを実行するアプリ実行手段と、
前記アプリ実行手段が、前記内部制御手段を制御するために公開されたアプリコマンドを出力する場合、前記出力されたアプリコマンドを前記内部コマンドに変換し、変換された前記内部コマンドを前記内部制御手段に出力するアプリケーション制御手段と、を備えた画像形成装置。
【請求項２】
前記アプリ実行手段は、第１のアプリケーションプログラムを実行する第１カスタム手段と、
第２のアプリケーションプログラムを実行する第２カスタム手段と、を含み、
前記アプリケーション制御手段は、前記第１カスタム手段から第１のアプリコマンドが入力され、前記第２カスタム手段から第２のアプリコマンドが入力される場合、前記第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、前記第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かを判断する制御対象判断手段と、
前記制御対象判断手段による判断結果に基づいて、前記第１の内部コマンドおよび前記第２の内部コマンドを前記内部制御手段に出力するタイミングを制御する調停手段と、を含む、請求項１に記載の画像形成装置。
【請求項３】
前記アプリケーション制御手段は、前記ハードウェア資源に関するリソース情報を取得するリソース情報取得手段を、さらに含み、
前記調停手段は、前記制御対象判断手段により前記第１の内部コマンドと前記第２の内部コマンドとが同種のハードウェア資源を制御対象とすると判断される場合、前記取得されたリソース情報に基づいて、前記第１の内部コマンドと前記第２の内部コマンドそれぞれが制御対象とするハードウェア資源が単数か否かを判断するハードウェア判断手段と、
前記第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、前記第１の内部コマンドおよび前記第２の内部コマンドのいずれか一方を前記内部制御手段に出力し、前記内部制御手段による処理が完了した後に、前記第１の内部コマンドおよび前記第２の内部コマンドの他方を出力し、前記第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、前記第１の内部コマンドおよび前記第２の内部コマンドのいずれか一方を前記内部制御手段に出力し、前記内部制御手段による処理が実行されている最中に、前記第１の内部コマンドおよび前記第２の内部コマンドの他方を前記内部制御手段に出力する調停手段と、を含む、請求項２に記載の画像形成装置。
【請求項４】
前記調停手段は、前記第１カスタム手段から第１のアプリコマンドが入力された後に前記第２カスタム手段から第２のアプリコマンドが入力される場合、前記第１の内部コマンドを前記内部制御手段に出力した後に前記第２の内部コマンドを前記内部制御手段に出力する、請求項３に記載の画像形成装置。
【請求項５】
前記アプリケーション制御手段は、前記第１カスタム手段と前記第２カスタム手段の優先度を決定する優先度決定手段を、さらに含み、
前記調停手段は、前記第１カスタム手段が前記第２カスタム手段よりも優先度が高い場合は、前記第１の内部コマンドを前記内部制御手段に出力した後に前記第２の内部コマンドを前記内部制御手段に出力し、前記第１カスタム手段が前記第２カスタム手段よりも優先度が低い場合は、前記第２の内部コマンドを前記内部制御手段に出力した後に前記第１の内部コマンドを前記内部制御手段に出力する、請求項３に記載の画像形成装置。
【請求項６】
画像形成装置が備えるハードウェア資源を制御するコンピューターで実行されるアプリケーション制御方法であって、
前記コンピューターは、
内部コマンドが入力されると、前記ハードウェア資源を制御するために、前記入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、
アプリケーションプログラムを実行するアプリ実行手段と、を備え、
前記アプリ実行手段が、前記内部制御手段を制御するために公開されたアプリコマンドを出力する場合、前記出力されたアプリコマンドを前記内部コマンドに変換する変換ステップと、
変換された前記内部コマンドを前記内部制御手段に出力するステップと、を前記コンピューターに実行させる、アプリケーション制御方法。
【請求項７】
画像形成装置が備えるハードウェア資源を制御するコンピューターで実行されるアプリケーション制御プログラムであって、
前記コンピューターは、
内部コマンドが入力されると、前記ハードウェア資源を制御するために、前記入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、
アプリケーションプログラムを実行するアプリ実行手段と、を備え、
前記アプリ実行手段が、前記内部制御手段を制御するために公開されたアプリコマンドを出力する場合、前記出力されたアプリコマンドを前記内部コマンドに変換する変換ステップと、
変換された前記内部コマンドを前記内部制御手段に出力するステップと、を前記コンピューターに実行させるアプリケーション制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像形成装置、アプリケーション制御方法、およびアプリケーション制御プログラムに関し、特に、アプリケーションプログラムをインストール可能な画像形成装置、その画像形成装置で実行されるアプリケーション制御方法、およびアプリケーション制御プログラムに関する。
【背景技術】
【０００２】
近年、複合機（ＭＦＰ）で代表される画像形成装置において、アプリケーションプログラムをインストールすることが可能になっているものがあり、ユーザーは、使用形態に応じたアプリケーションプログラムをインストールすることによって、ＭＦＰをカスタマイズすることができる。
【０００３】
特開２００２−０８４３８３号公報には、各アプリケーションの共通部分を共通システムサービスとして括りだし、この共通システムサービスおよび汎用ＯＳによってプラットホームを形成し、該プラットホーム上にプリンタアプリ、コピーアプリおよび各種アプリを搭載する画像形成装置が記載されている。
【０００４】
従来の画像形成装置によれば、各アプリケーションの共通部分が、共通システムサービスとしてプラットホームに形成されるので、新たなアプリケーションプログラムが開発される場合に、プラットホーム自体を変更しなければならない場合があるといった問題がある。
【特許文献１】特開２００２−０８４３８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
この発明は上述した問題点を解決するためになされたもので、この発明の目的の１つは、ハードウェア資源の変更を容易にするとともに、アプリケーションプログラムのインストールを容易にした画像形成装置を提供することである。
【０００６】
この発明の他の目的は、画像形成装置のハードウェア資源の変更を容易にするとともに、アプリケーションプログラムのインストールを容易にしたアプリケーション制御方法を提供することである。
【０００７】
この発明のさらに他の目的は、画像形成装置のハードウェア資源の変更を容易にするとともに、アプリケーションプログラムのインストールを容易にしたアプリケーション制御プログラムを提供することである。
【課題を解決するための手段】
【０００８】
上述した目的を達成するためにこの発明のある局面によれば、画像形成装置は、ハードウェア資源を制御する制御手段を備えた画像処理装置であって、制御手段は、内部コマンドが入力されると、ハードウェア資源を制御するために、入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、アプリケーションプログラムを実行するアプリ実行手段と、アプリ実行手段が、内部制御手段を制御するために公開されたアプリコマンドを出力する場合、出力されたアプリコマンドを内部コマンドに変換し、変換された内部コマンドを内部制御手段に出力するアプリケーション制御手段と、を備える。
【０００９】
この局面に従えば、アプリケーションプログラムを実行するアプリ実行手段が、公開されたアプリコマンドを出力する場合、アプリコマンドが内部コマンドに変換され、変換された内部コマンドが内部制御手段に出力され、内部制御手段により内部コマンドに対して予め定められた処理を実行されて、ハードウェア資源が制御される。このため、新たなアプリコマンドが登場する場合であっても新たなアプリコマンドを既存の内部コマンドに変換することができるので、内部制御手段を変更する必要がない。また、アプリコマンドを自装置のハードウェア資源に対応する内部コマンドに変換することができるので、自装置とは異なるハードウェア資源の画像形成装置に対して開発されたアプリケーションプログラムをインストールすることができる。さらに、ハードウェア資源が変更される場合であっても、アプリコマンドを変更後のハードウェア資源に対応する内部コマンドに変換することができるので、アプリケーション制御手段を変更する必要がない。このため、ハードウェア資源の変更を容易にすることができる。その結果、ハードウェア資源の変更を容易にするとともに、アプリケーションプログラムのインストールを容易にした画像形成装置を提供することができる。
【００１０】
好ましくは、アプリ実行手段は、第１のアプリケーションプログラムを実行する第１カスタム手段と、第２のアプリケーションプログラムを実行する第２カスタム手段と、を含み、アプリケーション制御手段は、第１カスタム手段から第１のアプリコマンドが入力され、第２カスタム手段から第２のアプリコマンドが入力される場合、第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かを判断する制御対象判断手段と、制御対象判断手段による判断結果に基づいて、第１の内部コマンドおよび第２の内部コマンドを内部制御手段に出力するタイミングを制御する調停手段と、を含む。
【００１１】
この局面に従えば、第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かに基づいて、第１の内部コマンドおよび第２の内部コマンドを内部制御手段に出力するタイミングを制御する。このため、複数のアプリケーションプログラムが実行される場合であっても、ハードウェア資源を制御することができる。
【００１２】
好ましくは、アプリケーション制御手段は、ハードウェア資源に関するリソース情報を取得するリソース情報取得手段を、さらに含み、調停手段は、制御対象判断手段により第１の内部コマンドと第２の内部コマンドとが同種のハードウェア資源を制御対象とすると判断される場合、取得されたリソース情報に基づいて、第１の内部コマンドと第２の内部コマンドそれぞれが制御対象とするハードウェア資源が単数か否かを判断するハードウェア判断手段と、第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を内部制御手段に出力し、内部制御手段による処理が完了した後に、第１の内部コマンドおよび第２の内部コマンドの他方を出力し、第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を内部制御手段に出力し、内部制御手段による処理が実行されている最中に、第１の内部コマンドおよび第２の内部コマンドの他方を内部制御手段に出力する調停手段と、を含む。
【００１３】
この局面に従えば、第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を出力し、内部制御手段による処理が完了した後に他方を出力し、第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を内部制御手段に出力し、内部制御手段による処理が実行されている最中に他方を出力する。このため、複数のアプリケーションプログラムが実行される場合であっても、ハードウェア資源に対する制御が競合するのを回避することができる。
【００１４】
好ましくは、調停手段は、第１カスタム手段から第１のアプリコマンドが入力された後に第２カスタム手段から第２のアプリコマンドが入力される場合、第１の内部コマンドを内部制御手段に出力した後に第２の内部コマンドを内部制御手段に出力する。
【００１５】
好ましくは、アプリケーション制御手段は、第１カスタム手段と第２カスタム手段の優先度を決定する優先度決定手段を、さらに含み、調停手段は、第１カスタム手段が第２カスタム手段よりも優先度が高い場合は、第１の内部コマンドを内部制御手段に出力した後に第２の内部コマンドを内部制御手段に出力し、第１カスタム手段が第２カスタム手段よりも優先度が低い場合は、第２の内部コマンドを内部制御手段に出力した後に第１の内部コマンドを内部制御手段に出力する。
【００１６】
この発明の他の局面によれば、アプリケーション制御方法は、画像形成装置が備えるハードウェア資源を制御するコンピューターで実行されるアプリケーション制御方法であって、コンピューターは、内部コマンドが入力されると、ハードウェア資源を制御するために、入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、アプリケーションプログラムを実行するアプリ実行手段と、を備え、アプリ実行手段が、内部制御手段を制御するために公開されたアプリコマンドを出力する場合、出力されたアプリコマンドを内部コマンドに変換する変換ステップと、変換された内部コマンドを内部制御手段に出力するステップと、をコンピューターに実行させる。
【００１７】
この局面に従えば、画像形成装置のハードウェア資源の変更を容易にするとともに、アプリケーションプログラムのインストールを容易にしたアプリケーション制御方法を提供することができる。
【００１８】
この発明のさらに他の局面によれば、アプリケーション制御プログラムは、画像形成装置が備えるハードウェア資源を制御するコンピューターで実行されるアプリケーション制御プログラムであって、コンピューターは、内部コマンドが入力されると、ハードウェア資源を制御するために、入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、アプリケーションプログラムを実行するアプリ実行手段と、を備え、アプリ実行手段が、内部制御手段を制御するために公開されたアプリコマンドを出力する場合、出力されたアプリコマンドを内部コマンドに変換する変換ステップと、変換された内部コマンドを内部制御手段に出力するステップと、をコンピューターに実行させる。
【００１９】
この局面に従えば、画像形成装置のハードウェア資源の変更を容易にするとともに、アプリケーションプログラムのインストールを容易にしたアプリケーション制御プログラムを提供することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態の１つにおける画像形成システムの全体概要を示す図である。
【図２】本実施の形態の一つにおけるＭＦＰの外観を示す斜視図である。
【図３】操作パネルの一例を示す平面図である。
【図４】ＭＦＰのハードウェア構成の概要の一例を示すブロック図である。
【図５】ＭＦＰが備えるＣＰＵのソフトウェアアーキテクチャの一例を示す図である。
【図６】本実施の形態の一つにおけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。
【図７】リソース情報の一例を示す図である。
【図８】アプリケーション制御処理の時間的な流れの一例を示す第１の図である。
【図９】アプリケーション制御処理の時間的な流れの一例を示す第２の図である。
【図１０】アプリケーション制御処理の流れの一例を示すフローチャートである。
【図１１】内部コマンド変換処理の流れの一例を示すフローチャートである。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について図面を参照して説明する。以下の説明では同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００２２】
図１は、本発明の実施の形態の１つにおける画像形成システムの全体概要を示す図である。図１を参照して、画像形成システム１は、それぞれがネットワーク３に接続された複合機（以下、「ＭＦＰ」という）１００と、パーソナルコンピューター（以下、「ＰＣ」という）２００，２００Ａ、２００Ｂと、を含む。このため、ＭＦＰ１００、ＰＣ２００，２００Ａ、２００Ｂは、ネットワーク３を介して互いに通信可能である。
【００２３】
なお、図ではネットワーク３に、画像形成装置の一例として１台のＭＦＰ（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）１００が接続される例を示しているが、ＭＦＰの数はこれに限定されるものではなく、１台以上であればよい。また、ＭＦＰ１００に代えて、画像を処理する機能を備えた装置であれば、例えば、コンピューター、ファクシミリ、プリンタ等であってもよい。
【００２４】
図２は、本実施の形態の一つにおけるＭＦＰの外観を示す斜視図である。図３は、操作パネルの一例を示す平面図である。図２および図３を参照して、ＭＦＰ１００は、原稿を読み取るための原稿読取部１３０，１３０Ａと、原稿を原稿読取部１３０，１３０Ａのいずれかに搬送するための自動原稿搬送装置１２０と、原稿読取部１３０，１３０のいずれかが原稿を読み取って出力する画像データに基づいて用紙等に画像を形成するための画像形成部１４０と、画像形成部１４０に用紙を供給するための給紙部１５０と、ユーザーインターフェースとしての操作パネル１６０とを含む。
【００２５】
操作パネル１６０は、ＭＦＰ１００の上面に設けられる。操作パネル１６０は、表示部１６１と、表示部１６１に重畳して設けられ、透明な部材からなるタッチパネル１６５と、ハードキー部１６７とを含む。表示部１６１は、例えば、液晶表示装置（ＬＣＤ）であり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。ハードキー部１６７は、「ＢＯＸ」、「ＦＡＸ」、「ＣＯＰＹ」、「ＥＣＯ」の文字がそれぞれ表された４つのハードキー１６７Ａ〜１６７Ｄを含む複数のキーを備え、キーに対応するユーザーの操作による各種の指示、文字、数字などのデータの入力を受け付ける。タッチパネル１６５は、ＬＣＤ１６１の表示面中の位置を検出する。タッチパネル１６５は、ＬＣＤ１６１の上面または下面に設けられる。
【００２６】
自動原稿搬送装置１２０は、原稿給紙トレイ上にセットされた複数枚の原稿を１枚ずつ自動的に原稿読取部１３０，１３０Ａいずれかのプラテンガラス上に設定された所定の原稿読み取り位置まで搬送し、原稿読取部１３０，１３０Ａのいずれかにより原稿画像が読み取られた原稿を原稿排紙トレイ上に排出する。原稿読取部１３０，１３０Ａそれぞれは、原稿読取位置に搬送されてきた原稿に光を照射する光源と、原稿で反射した光を受光する光電変換素子とを含み、原稿のサイズに応じた原稿画像を走査する。光電変換素子は、受光した光を電気信号である画像データに変換して、画像形成部１４０に出力する。給紙部１５０は、給紙トレイに収納された用紙を画像形成部１４０に搬送する。
【００２７】
画像形成部１４０は、周知の電子写真方式により画像を形成するものであって、原稿読取部１３０，１３０Ａのいずれかから入力される画像データにシェーディング補正などの各種のデータ処理を施した、データ処理後の画像データまたは、外部から受信された画像データに基づいて、給紙部１５０により搬送される用紙に画像を形成する。
【００２８】
図４は、ＭＦＰのハードウェア構成の概要の一例を示すブロック図である。図４を参照して、ＭＦＰ１００は、メイン回路１１０を含む。メイン回路１１０は、ＣＰＵ１１１と、通信インターフェース（Ｉ／Ｆ）部１１２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１３と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１１４と、大容量記憶装置としてのハードディスクドライブ（ＨＤＤ）１１５と、第１ファクシミリ部１１６と、第２ファクシミリ部１１６Ａと、外部記憶装置１１７と、を含む。ＣＰＵ１１１は、自動原稿搬送装置１２０、原稿読取部１３０，１３０Ａ、画像形成部１４０、給紙部１５０および操作パネル１６０と接続され、ＭＦＰ１００の全体を制御する。
【００２９】
ＲＯＭ１１３は、ＣＰＵ１１１が実行するプログラム、またはそのプログラムを実行するために必要なデータを記憶する。ＲＡＭ１１４は、ＣＰＵ１１１がプログラムを実行する際の作業領域として用いられる。また、ＲＡＭ１１４は、原稿読取部１３０，１３０Ａのいずれかから連続的に送られてくる読取画像を一時的に記憶する。
【００３０】
第１ファクシミリ部１１６および第２ファクシミリ部１１６Ａそれぞれは、公衆交換電話網（ＰＳＴＮ）に接続され、ＰＳＴＮにファクシミリデータを送信する、またはＰＳＴＮからファクシミリデータを受信する。第１ファクシミリ部１１６および第２ファクシミリ部１１６Ａそれぞれは、受信したファクシミリデータを、ＨＤＤ１１５に記憶するか、または、画像形成部１４０でプリント可能なプリントデータに変換して、画像形成部１４０に出力する。これにより、画像形成部１４０は、第１ファクシミリ部１１６および第２ファクシミリ部１１６Ａのいずれかにより受信されたファクシミリデータの画像を用紙に形成する。また、第１ファクシミリ部１１６および第２ファクシミリ部１１６Ａそれぞれは、ＨＤＤ１１５に記憶されたデータをファクシミリデータに変換して、ＰＳＴＮに接続されたファクシミリ装置に送信する。
【００３１】
通信Ｉ／Ｆ部１１２は、ネットワークにＭＦＰ１００を接続するためのインターフェースである。通信Ｉ／Ｆ部１１２は、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）またはＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等の通信プロトコルで、ネットワークに接続された他のコンピューターと通信する。なお、通信のためのプロトコルは、特に限定されることはなく、任意のプロトコルを用いることができる。また、通信Ｉ／Ｆ部１１２が接続されるネットワークは、例えば、ローカルエリアネットワーク（ＬＡＮ）であり、接続形態は有線または無線を問わない。またネットワークは、ＬＡＮに限らず、ワイドエリアネットワーク（ＷＡＮ）、公衆交換電話網（Ｐｕｂｌｉｃ  Ｓｗｉｔｃｈｅｄ  Ｔｅｌｅｐｈｏｎｅ  Ｎｅｔｗｏｒｋｓ）を用いたネットワーク等であってもよい。さらに、ネットワークは、インターネットに接続されている。このため、ＭＦＰ１００は、インターネットに接続されたサーバー等のコンピューターと通信が可能である。
【００３２】
外部記憶装置１１７は、ＣＰＵ１１１により制御され、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１１８、または半導体メモリが装着される。ＣＰＵ１１１は、外部記憶装置１１７を介してＣＤ−ＲＯＭ１１８または半導体メモリにアクセス可能である。ＣＰＵ１１１は、外部記憶装置１１７に装表されたＣＤ−ＲＯＭ１１８または半導体メモリに記録されたプログラムをＲＡＭ１１４にロードして実行する。なお、ＣＰＵ１１１が実行するプログラムは、ＣＤ−ＲＯＭ１１８に記録されたプログラムに限られず、ＨＤＤ１１５に記憶されたプログラムをＲＡＭ１１４にロードして実行するようにしてもよい。この場合、通信Ｉ／Ｆ部１１２に接続されるネットワークを介して、ネットワークに接続された他のコンピューターが、ＭＦＰ１００のＨＤＤ１１５に記憶されたプログラムを書換える、または、新たなプログラムを追加して書き込むようにしてもよい。さらに、ＭＦＰ１００が、ネットワークに接続された他のコンピューターからプログラムをダウンロードして、そのプログラムをＨＤＤ１１５に記憶するようにしてもよい。ここでいうプログラムは、ＣＰＵ１１１が直接実行可能なプログラムだけでなく、ソースプログラム、圧縮処理されたプログラム、暗号化されたプログラム等を含む。
【００３３】
なお、ＣＰＵ１１１が実行するプログラムを記憶する媒体としては、ＣＤ−ＲＯＭ１１８に限られず、光ディスク（ＭＯ（Ｍａｇｎｅｔｉｃ  Ｏｐｔｉｃａｌ  Ｄｉｓｃ／ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）／ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ））、ＩＣカード、光カード、マスクＲＯＭ、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  ＥＰＲＯＭ）などの半導体メモリであってもよい。
【００３４】
操作パネル１６０は、表示部１６１と操作部１６３とを含む。表示部１６１は、液晶表示装置（ＬＣＤ）、有機ＥＬＤ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ  Ｄｉｓｐｌａｙ）等のディスプレイであり、ユーザーに対する指示メニューや取得した画像データに関する情報等を表示する。操作部１６３は、タッチパネル１６５と、複数のキーからなるハードキー部１６７と、を含む。ハードキー部１６７が含む複数のキーそれぞれは、接点スイッチを含み、ＣＰＵ１１１に接続される。ハードキーは、操作ユーザーにより押下されると接点を閉じて、ＣＰＵ１１１に接続される回路を閉じる。ハードキーは、ＭＦＰ１００を操作する操作ユーザーにより押下されている間は回路を閉じ、操作ユーザーにより押下されていない間は回路を開く。
【００３５】
操作部１６３は、ハードキー部１６７が有する複数のキーが押下されると、押下されたキーに対応する指示、文字、数字などのデータの入力を受け付ける。タッチパネル１６５は、表示部１６１の上面または下面に設けられ、操作ユーザーにより押下された位置の座標をＣＰＵ１１１に出力する。タッチパネル１６５は、操作ユーザーが指またはスタイラスペンで指示した位置を検出し、検出した位置の座標をＣＰＵ１１１に出力する。タッチパネル１６５は、表示部１６１の表示面と同じまたはそれ以上のサイズであるのが好ましい。タッチパネル１６５は、表示部１６１に重畳して設けられるので、タッチパネル１６５は、操作ユーザーが表示部１６１の表示面を指示すれば、表示部１６１の表示面中で操作ユーザーが指示した位置の座標をＣＰＵ１１１に出力する。タッチパネル１６５は、例えば、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式を用いることができ、その方式は限定されない。
【００３６】
操作部１６３が受け付け可能な操作は、ハードキー部１６７が有する複数のキーを押下する操作と、タッチパネル１６５を指示する操作とを含む。さらに、ハードキー部１６７は、「ＢＯＸ」、「ＦＡＸ」、「ＣＯＰＹ」、「ＥＣＯ」の文字がそれぞれ表された４つのハードキー１６７Ａ〜１６７Ｄを含む。「ＢＯＸ」、「ＦＡＸ」、「ＣＯＰＹ」の文字がそれぞれ表された３つのハードキー１６７Ａ，１６７Ｂ，１６７Ｃは、ＭＦＰ１００に実行させる処理の切り換えを指示するための処理切換操作が割り当てられた処理切換キーである。「ＥＣＯ」の文字が表されたハードキー１６７Ｄは、ＭＦＰ１００を、通常モードから通常モードよりも消費電力の低い省電力モードへの切換を指示するためのモード切換操作が割り当てられたモード切換キーである。操作部１６３は、ハードキー１６７Ａ，１６７Ｂ，１６７Ｃのいずれかが押下される場合、処理切換操作を受け付け、ハードキー１６７Ｄが押下される場合、モード切換操作を受け付ける。
【００３７】
図５は、ＭＦＰが備えるＣＰＵのソフトウェアアーキテクチャの一例を示す図である。図５を参照して、ＣＰＵ１１１には、オペレーティングシステム（ＯＳ）層が形成され、その上の階層に、ＭＦＰプロセス層が形成される。ＭＦＰプロセス層の上層に、アプリケーションプラットフォーム（ＰＦ）層、アプリケーション層の順に形成される。
【００３８】
ＯＳ層は、ＣＰＵ１１１がＯＳプログラムを実行するタスクが属する。ＯＳ層に属するタスクは、ＭＦＰ１００のハードウェア資源を制御する処理を実行する。ハードウェア資源は、ここでは、通信Ｉ／Ｆ部１１２、ＲＯＭ１１３、ＲＡＭ１１４、ＨＤＤ１１５、第１ファクシミリ部１１６、第２ファクシミリ部１１６Ａ、外部記憶装置１１７、自動原稿搬送装置１２０、原稿読取部１３０，１３０Ａ、画像形成部１４０、給紙部１５０、操作パネル１６０を含む。ＯＳ層に属するタスクは、ＭＦＰプロセス層から入力されるオペレーティングコマンドに従って、ハードウェア資源を制御する。
【００３９】
アプリケーション層は、ＣＰＵ１１１がアプリケーションプログラムを実行するタスクが属する。複数種類のアプリケーションプログラムがＭＦＰ１００にインストールされる場合、アプリケーション層に、複数種類のアプリケーションプログラムをそれぞれ実行する複数のタスクが属する場合がある。アプリケーションプログラムは、ＭＦＰ１００に、コピー処理、スキャン処理、プリント処理、ファクシミリ送受信処理、データ送受信処理等を実行させるために、ユーザーインターフェース等をカスタマイズするためのプログラムを含む。なお、アプリケーションプログラムは、これらに限定されることなく、これとは別のアプリケーションプログラムであってもよい。アプリケーションプログラムは、特に限定するものではないが、例えば、Ｐｙｔｈｏｎ等のプログラミング言語で記述される。
【００４０】
アプリケーションプログラムを実行するタスクは、アプリケーションプログラムによって定められた複数種類の処理を実行する。複数種類の処理は、ＭＦＰプロセス層において実行される処理をＭＦＰプロセス層に属するタスクに実行させる処理を含む。アプリケーションプログラムを実行するタスクは、ＭＦＰプロセス層に属するタスクに処理を実行させる場合、アプリコマンドを出力する。アプリコマンドは、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）として、公開されたコマンドである。このため、ＭＦＰ１００に処理を実行させるアプリケーションプログラムを容易に作成することができる。公開とは、ＭＦＰ１００を製造するメーカー以外の第三者が使用可能な状態をいう。このため、第三者は、アプリコマンドを用いてＭＦＰ１００にインストール可能なアプリケーションプログラムを開発することができる。
【００４１】
アプリケーションＰＦ層は、アプリケーション層とＭＦＰプロセス層との間に配置され、アプリケーション層に属する複数のタスクを調停するとともに、アプリケーション層に属する複数のタスクが出力するアプリコマンドを制御するタスクが属する。アプリケーションＰＦ層は、アプリケーション層に属する複数のタスクが出力するアプリコマンドを受け付け、アプリコマンドを内部コマンドに変換し、ＭＦＰプロセス層に出力する。
【００４２】
アプリコマンドと内部コマンドとは予め対応付けられている。例えば、コマンド対応テーブルを記憶しておくようにすればよい。アプリコマンドと内部コマンドとは、１対１に対応してもよいし、１つのアプリコマンドに２以上の内部コマンドの組が対応していてもよい。さらに、バージョンの異なる複数のアプリコマンドに対して、１つの内部コマンド、または複数の内部コマンドからなる１組が対応していてもよい。このため、複数のアプリケーションプログラム間で、バージョンが異なる場合等に対応することができる。内部コマンドは、ＭＦＰ１００のハードウェア資源に依存するコマンドである。内部コマンドは、通常は、公開されていないが、公開されていてもよい。
【００４３】
ＭＦＰプロセス層は、アプリケーションＰＦ層とＯＳ層との間に配置され、ＣＰＵ１１１がＭＦＰプロセスプログラムを実行するタスクが属する。ＭＦＰプロセス層は、アプリケーションＰＦ層に属するタスクが出力する内部コマンドを、ＯＳ層に属するタスクが解釈可能なオペレーティングコマンドに変換し、ハードウェア資源を制御するためにオペレーティングコマンドをＯＳ層に属するタスクに出力するタスクが属する。なお、実際には、内部コマンドを、ＯＳ層に属するタスクが実行可能な１以上のオペレーティングコマンドに変換する場合があるが、ここでは説明のために、内部コマンドとＯＳ層に属するタスクが実行可能な１以上のオペレーティングコマンドとの関係は１対１として、説明する。
【００４４】
図６は、本実施の形態の一つにおけるＭＦＰが備えるＣＰＵが有する機能の一例を示すブロック図である。図６に示す機能は、ＭＦＰ１００が備えるＣＰＵ１１１が、ＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶されたプログラムを実行することにより、ＣＰＵ１１１により実現される機能である。具体的には、ＣＰＵ１１１が、ＯＳプログラム、ＭＦＰ制御プログラム、アプリケーション制御プログラムおよびアプリケーションプログラムを実行することにより、ＣＰＵ１１１により実現される。
【００４５】
図６を参照して、ＣＰＵ１１１は、アプリ実行部６１と、アプリケーション制御部７１と、ＭＦＰ制御部８１と、を含む。アプリ実行部６１は、図５に示したソフトウェアアーキテクチャにおいて、アプリケーション層に属する。アプリ実行部６１は、ＣＰＵ１１１がアプリケーションプログラムを実行するタスクによって実現される機能である。
【００４６】
アプリケーションプログラムは、例えば、ＨＤＤ１１５が備える複数の記憶領域であるＢＯＸに記憶されているデータを管理する処理を実行するためのプログラム、ファクシミリデータを送信する処理を実行するためのプログラム、または、原稿を画像形成する処理を実行するためのプログラムである。なお、アプリケーションプログラムを、これらに限定するものではなく、別の種類の処理を実行するためのプログラムであってもよい。
【００４７】
ここでは、ＭＦＰ１００に、１つのアプリケーションプログラムがインストールされる場合を例に示す。アプリ実行部６１は、インストールされた１つのアプリケーションプログラムをそれぞれが実行する３つのタスクである第１〜第３カスタム部６３，６５，６７を含む。第１〜第３カスタム部６３，６５，６７それぞれは、アプリケーションプログラムにより定められたアプリコマンドをアプリケーション制御部７１に出力する。なお、ここでは、ＣＰＵ１１１が１つのアプリケーションプログラムを実行する場合を例に示したが、ＣＰＵ１１１が実行するアプリケーションプログラムの数は、これに限定されることなく、１以上であればよい。
【００４８】
アプリケーション制御部７１は、ＣＰＵ１１１がアプリケーション制御プログラムを実行するタスクによって実現される機能である。アプリケーション制御部７１は、図５に示したソフトウェアアーキテクチャにおいて、アプリケーションＰＦ層に属する。
【００４９】
アプリケーション制御部７１は、インストール部７２と、リソース情報取得部７３と、制御対象判断部７４と、ハードウェア判断部７５と、調停部７７と、優先度決定部７９と、を含む。インストール部７２は、ユーザーにより入力されるインストール指示に従って、アプリケーションプログラムをＭＦＰ１００にインストールする。インストール指示は、通信Ｉ／Ｆ部１１２がＰＣ２００，２００Ａ，２００Ｂのいずれかから受信する場合と、操作パネル１６０に入力される場合とがある。ユーザーが、操作パネル１６０を操作して、インストール指示を入力する場合、インストール部７２は、操作部１６３からインストール指示を受け付ける。ユーザーが、ＰＣ２００，２００Ａ，２００Ｂのいずれかを操作して、ＭＦＰ１００を遠隔操作し、インストール指示を入力する場合、インストール部７２は、通信Ｉ／Ｆ部１１２がＰＣ２００，２００Ａ，２００Ｂのいずれかから受信するインストール指示を受け付ける。
【００５０】
インストール部７２は、ユーザーにより指定されたアプリケーションプログラムを取得する。ユーザーが、ＭＦＰ１００にアプリケーションプログラムを読み取らせるために、アプリケーションプログラムを記憶したＣＤ−ＲＯＭ１１９を、外部記憶装置１１７に装着する場合、インストール部７２は、ＣＤ−ＲＯＭ１１９に記憶されタアプリケーションプログラムを外部記憶装置１１７を介して読み出すことにより取得する。また、ユーザーがネットワーク３に接続されたコンピューターに記憶されたアプリケーションプログラムをダウンロードする指示をＭＦＰ１００に入力する場合、インストール部７２は、通信Ｉ／Ｆ部１１２を介してアプリケーションプログラムをダウンロードすることによりアプリケーションプログラムを取得する。インストール部７２は、取得されたアプリケーションプログラムをＨＤＤ１１５に記憶する。上述したアプリ実行部６１は、インストール部７２によってＨＤＤ１１５に記憶されたアプリケーションプログラムをＲＡＭ１１４に読み出して、実行する。
【００５１】
優先度決定部７９は、アプリ実行部６１に含まれる第１〜第３カスタム部６３，６５，６７それぞれの優先度を決定する。具体的には、第１〜第３カスタム部６３，６５，６７は、アプリケーションプログラムを実行することによりＣＵ１１１に形成されるので、第１〜第３カスタム部６３，６５，６７それぞれが、アプリケーションプログラムを実行した時点で優先度を決定する。
【００５２】
例えば、ＭＦＰ１００を操作するユーザーであって、アプリケーションプログラムの実行を指示したユーザーによって優先度を決定するようにしてもよい。ＭＦＰ１００を操作するユーザーは、操作パネル１６０を操作する直接操作ユーザーと、ＰＣ２００，２００Ａ，２００Ｂのいずれかを操作してＭＦ１００を遠隔操作する遠隔操作ユーザーとを含む。ＭＦＰ１００を操作するユーザーに優先度を設定しておき、第１〜第３カスタム部６３，６５，６７それぞれが実行するアプリケーションプログラムの実行を指示したユーザーに設定された優先度と同じ優先度を、第１〜第３カスタム部６３，６５，６７それぞれの優先度に決定する。
【００５３】
また、優先度決定部７９は、第１〜第３カスタム部６３，６５，６７のうち、アプリコマンドを出力する順に高い優先度を設定するようにしてもよい。第１〜第３カスタム部６３，６５，６７のうち先にアプリコマンドを出力するものを、後にアプリコマンドを出力するものよりも高い優先度を決定する。優先度決定部７９は、第１〜第３カスタム部６３，６５，６７ごとに決定した優先度を、調停部７７に出力する。
【００５４】
調停部７７は、第１〜第３カスタム部６３，６５，６７のいずれかがが出力するアプリコマンドを、コマンド対応テーブルに従って内部コマンドに変換し、変換した内部コマンドをＭＦＰ制御部８１に出力する。コマンド対応テーブルは、１つのアプリコマンドに１以上の内部コマンドを対応付ける。コマンド対応テーブルに含まれるアプリコマンドは、バージョンの異なる同種類のアプリコマンドを含む場合があり、この場合、異なるバージョンのアプリコマンドそれぞれを１以上の内部コマンドに対応付ける。このため、異なるバージョンのアプリコマンドを記述したアプリケーションプログラムをインストールすることを可能としている。コマンド対応テーブルは、新しいアプリコマンドが登場する場合に、新たに登場したアプリコマンドに１以上の内部コマンドを対応付けたコマンド対応テーブルで更新される。このため、新しいアプリコマンドを記述したアプリケーションプログラムをインストールすることができる。
【００５５】
制御対象判断部７４は、第１〜第３カスタム部６３，６５，６７それぞれからアプリコマンドが入力される。制御対象判断部７４は、第１〜第３カスタム部６３，６５，６７のうち少なくとも２つからそれぞれ出力される２以上のアプリコマンドのうちに、それぞれに対応するハードウェア資源の種類が同じ２以上のアプリコマンドが存在するか否かを判断し、判断結果をハードウェア判断部７５および調停部７７に出力する。制御対象判断部７４が判断の対象とするアプリコマンドは、後述する調停部７７が、第１のアプリコマンドを内部コマンドに変換するまでの時間とするようにしてもよい。この場合、第１のアプリコマンドが入力されて、調停部７７が第１のアプリコマンドを内部コマンドに変換するまでに、第２のアプリコマンドが入力される場合に、第１のアプリコマンドと第２のアプリコマンドを判断の対象とする。さらに、調停部７７が第２のアプリコマンドを内部コマンドに変換するまでの間に、第３のアプリコマンドが入力される場合は、第１〜第３のアプリコマンドを判断の対象とする。
【００５６】
制御対象判断部７４による判断の結果は、第１〜第３カスタム部６３，６５，６７のうち少なくとも２つからそれぞれ出力される２以上のアプリコマンドのうちに、それぞれに対応するハードウェア資源の種類が同じ２以上のアプリコマンドが存在すると判断する判断結果と、そのようなアプリコマンドが存在しないと判断する判断結果とを含む。対応するハードウェア資源の種類が同じ２以上のアプリコマンドが存在すると判断する場合の判断結果は、そのハードウェア資源の種類を含み、対応するハードウェア資源の種類が同じ２以上のアプリコマンドが存在しないと判断する場合の判断結果は、不存在であることを示す信号を含む。
【００５７】
ハードウェア資源は、ＨＤＤ１１５、第１ファクシミリ部１１６、第２ファクシミリ部１１６Ａ、通信Ｉ／Ｆ部１１２、外部記憶装置１１７、自動原稿搬送装置１２０、第１原稿読取部１３０、第２原稿読取部１３０Ａ、画像形成部１４０、給紙部１５０および操作パネル１６０を含む。ハードウェア資源の種類は、ハードウェアが実行する機能を示し、ＨＤＤ１１５に対して内部データ管理機能、第１ファクシミリ部１１６および第２ファクシミリ部１１６Ａに対してファクシミリ送信機能、通信Ｉ／Ｆ部１１２に対してはデータ送信機能、外部記憶装置１１７に対して外部データ管理機能、自動原稿搬送装置１２０に対して原稿搬送機能、第１原稿読取部１３０及び第２原稿読取部１３０Ａに対して原稿読取機能、画像形成部１４０に対して画像形成機能、給紙部１５０に対して用紙搬送機能、操作パネル１６０に対してユーザーインターフェース機能である。内部コマンドが制御対象とするハードウェア資源の種類は、予め内部コマンドに対して定められている。
【００５８】
以下、具体的に説明するために第１カスタム部６３から第１のアプリコマンドが入力され、第２カスタム部６５から第２のアプリコマンドが入力される場合を例に説明する。制御対象判断部７４は、第１のアプリコマンドと第２のアプリコマンドとが同じならば、ハードウェア資源の種類が同じと判断する。また、制御対象判断部７４は、第１のアプリコマンドと第２のアプリコマンドとが異なる場合、それぞれを内部コマンドに変換し、変換された内部コマンドが制御対象とするハードウェア資源の種類を特定する。第１のアプリコマンドと第２のアプリコマンドとが異なる場合であっても、第１のアプリコマンドを変換した第１の内部コマンドと、第２のアプリコマンドを変換した第２の内部コマンドとが同じ場合がある。第１の内部コマンドと第２の内部コマンドとが同じ場合、第１の内部コマンドが制御対象とするハードウェア資源の種類と、第２の内部コマンドが制御対象ハードウェア資源の種類が同じと判断する。さらに、第１の内部コマンドと第２の内部コマンドとが異なる場合であっても、第１の内部コマンドが制御対象とするハードウェア資源の種類と、第２の内部コマンドが制御対象とするハードウェア資源の種類とが同じ場合がある。
【００５９】
また、１つのアプリコマンドが複数の内部コマンドンに変換される場合があり、この場合には、第１のアプリコマンドを変換した複数の第１の内部コマンドのいずれかが、第２のアプリコマンドを変換した複数の第２の内部コマンドのいずれかと同じ場合がある。
【００６０】
リソース情報取得部７３は、ＭＦＰ制御部８１からリソース情報を取得する。リソース情報は、ＭＦＰ１００が備えるハードウェア資源に関する情報であり、ハードウェア資源ごとに、ＭＦＰ１００が備える個数を含む。また、リソース情報は、ハードウェア資源が有する機能を含む。
【００６１】
リソース情報取得部７３は、ＭＦＰ１００に電源が投入されると、ＭＦＰ制御部８１からリソース情報を取得し、取得されたリソース情報をＨＤＤ１１５に格納するとともに、ハードウェア判断部７５に出力する。また、ＣＰＵ１１１がアプリケーションプログラムを実行することにより、アプリ実行部６１に第１〜第３カスタム部６３，６５，６７が形成されるので、リソース情報取得部７３は、ＣＰＵ１１１がアプリケーションプログラムを実行するごとに、第１〜第３カスタム部６３，６５，６７にリソース情報を出力する。なお、リソース情報取得部７３は、ＭＦＰ１００にアプリケーション制御プログラムがインストールされる段階で、ＭＦＰ制御部８１からリソース情報を取得するようにしてもよい。
【００６２】
図７は、リソース情報の一例を示す図である。図７を参照して、リソース情報は、ハードウェア資源ごとに接続数を定めるリソースレコードを含む。リソースレコードは、機能の項目と、ハードウェア資源名の項目と、接続数の項目と、を含む。ハードウェア資源名の項目には、ハードウェア資源に割り当てられた名称が設定され、機能の項目には、そのハードウェア資源が有する機能を識別するための機能識別情報が設定され、接続数の項目は、そのハードウェア資源が接続される個数を示す。ハードウェア資源名の項目に「原稿読取装置」が設定されたリソースレコードは、機能の項目に原稿読取機能の機能識別情報「原稿読取」が設定され、ＭＦＰ１００が第１原稿読取部１３０および第２原稿読取部１３０Ａを備えるため、接続数の項目に「２」が設定される。ハードウェア資源名の項目に「画像形成装置」が設定されたリソースレコードは、機能の項目に画像形成機能の機能識別情報「画像形成」が設定され、ＭＦＰ１００が画像形成部１４０を備えるため、接続数の項目に「１」が設定される。ハードウェア資源名の項目に「ファクシミリ装置」が設定されたリソースレコードは、機能の項目にファクシミリ送信機能の機能識別情報「ファクシミリ送信」が設定され、ＭＦＰ１００が第１ファクシミリ部１１６および第２ファクシミリ部１１６Ａを備えるため、接続数の項目に「２」が設定される。
【００６３】
ハードウェア判断部７５は、リソース情報取得部７３からリソース情報が入力され、制御対象判断部７４から判断結果が入力される。ハードウェア判断部７５は、制御対象判断部７４から入力される判断結果がハードウェア資源の種類を含む場合、リソース情報に基づいて、ハードウェア資源の種類で特定されるハードウェア資源が単数か否かを判断し、判断結果を調停部７７に出力する。ハードウェア判断部７５は、制御対象判断部７４から入力される判断結果が不存在信号を含む場合、調停部７７に何も出力しない。
【００６４】
図６に戻って、調停部７７は、第１〜第３カスタム部６３，６５，６７それぞれからアプリコマンドが入力され、優先度決定部７９から第１〜第３カスタム部６３，６５，６７それぞれの優先度が入力される。調停部７７は、第１〜第３カスタム部６３，６５，６７のうち少なくとも２つそれぞれからアプリコマンドが入力され、かつ、制御対象判断部７４からハードウェア資源の種類を含む判断結果が入力される場合、ハードウェア判断部７５から判断結果が入力される。調停部７７は、第１〜第３カスタム部６３，６５，６７のうち少なくとも２つそれぞれからアプリコマンドが入力され、かつ、制御対象判断部７４から不存在信号を含む判断結果が入力される場合、ハードウェア判断部７５から何も入力されない。
【００６５】
調停部７７は、第１〜第３カスタム部６３，６５，６７のうち少なくとも２つそれぞれから入力されるアプリコマンドを、内部コマンドに変換し、変換した内部コマンドを優先度決定部７９から入力される優先度に従ってＭＦＰ制御部８１に出力する。調停部７７は、２以上の内部コマンドをＭＦＰ８１に出力する際に、制御対象判断部７４から入力される判断結果と、ハードウェア判断部７５から入力される判断結果と、に基づいて、ハードウェア資源の種類を含む判断結果が入力される場合、ハードウェア判断部７５から入力される判断結果に基づいて、２以上の内部コマンドをＭＦＰ８１に出力するタイミングを制御する。
【００６６】
ＭＦＰ制御部８１は、ＣＰＵ１１１がＭＦＰ制御プログラムを実行するタスクによって実現される機能である。ＭＦＰ制御部８１は、図５に示したソフトウェアアーキテクチャにおいて、ＭＦＰプロセス層に属する。ＭＦＰ制御部８１は、アプリケーション制御部７１の調停部７７から内部コマンドが入力され、内部コマンドにより定まる処理を実行する。
【００６７】
内部コマンドにより定まる処理は、ＭＦＰ１００が備えるハードウェア資源を制御する処理と、データ処理とを含む。ＭＦＰ１００が備えるハードウェア資源は、ＨＤＤ１１５、第１ファクシミリ部１１６、第２ファクシミリ部１１６Ａ、通信Ｉ／Ｆ部１１２、外部記憶装置１１７、自動原稿搬送装置１２０、第１原稿読取部１３０、第２原稿読取部１３０Ａ、画像形成部１４０、給紙部１５０および操作パネル１６０を含む。データ処理は、特に限定するものではないが、画像データを処理するための先鋭化処理、合成処理、拡大処理、または縮小処理等である。
【００６８】
ＭＦＰ制御部８１は、ＭＦＰ１００が備えるハードウェア資源を制御する処理を実行する場合、内部コマンドを、オペレーティングコマンドに変換し、オペレーティングコマンドを、ＣＰＵ１１１がオペレーティングプログラムを実行するタスクに出力する。オペレーティングコマンドは、ＣＰＵ１１１がオペレーティングプログラムを実行するタスクが解釈可能なコマンドである。ＣＰＵ１１１がオペレーティングプログラムを実行するタスクは、図５に示したソフトウェアアーキテクチャにおいて、ＯＳ層に属する。
【００６９】
ここで、調停部７７による処理を具体的に説明するために、調停部７７に、第１カスタム部６３から第１のアプリコマンドが入力され、その後、第２カスタム部６５から第２のアプリコマンドが入力される場合を例に説明する。また、優先度決定部７９により第１カスタム部６３に対して決定された優先度が、第２カスタム部６５に対して決定された優先度よりも高い場合を説明する。
【００７０】
この場合、調停部７７には、制御対象判断部７４から判断結果が入力され、制御対象判断部７４から入力される判断結果がハードウェア資源の種類を含む場合は、ハードウェア判断部７５から判断結果が入力される。また、調停部７７に、制御対象判断部７４から判断結果が入力され、制御対象判断部７４から入力される判断結果が不存在信号を含む場合は、ハードウェア判断部７５から何も入力されない。
【００７１】
調停部７７は、第１のアプリコマンドを第１の内部コマンドに変換し、第２のアプリコマンドを第２の内部コマンドに変換し、優先度の最も高い第１の内部コマンドを出力した後、優先度が次に高い第２の内部コマンドをＭＦＰ制御部８１に出力するが、制御対象判断部７４から入力される判断結果と、ハードウェア判断部７５から入力される判断結果戸に基づいて、第２の内部コマンドを出力するタイミングを制御する。
【００７２】
調停部７７は、制御対象判断部７４から入力される判断結果がハードウェア資源の種類を含む場合、ハードウェア判断部７５から判断結果が入力される。調停部７７は、ハードウェア判断部７５から入力される判断結果がハードウェア資源が単数であることを示す場合、第１の内部コマンドをＭＦＰ制御部８１に出力し、ＭＦＰ制御部８１により第１の内部コマンドに対応する処理が完了した後に、第２の内部コマンドをＭＦＰ制御部８１に出力する。調停部７７は、ハードウェア判断部７５から入力される判断結果がハードウェア資源が複数であることを示す場合、第１の内部コマンドをＭＦＰ制御部８１に出力し、ＭＦＰ制御部８１により第１の内部コマンドに対応する処理が実行されている最中に、第２の内部コマンドをＭＦＰ制御部８１に出力する。
【００７３】
調停部７７は、制御対象判断部７４から入力される判断結果が不存在信号を含む場合、ハードウェア判断部７５から判断結果が入力されず、第１の内部コマンドをＭＦＰ制御部８１に出力し、ＭＦＰ制御部８１により第１の内部コマンドに対応する処理が実行されている最中に、第２の内部コマンドをＭＦＰ制御部８１に出力する。
【００７４】
図８は、アプリケーション制御処理の時間的な流れの一例を示す第１の図である。図８を参照して、上から下に時間の流れの示し、左側から順に、第１カスタム部６３、第２カスタム部６５、アプリケーション制御部７１、ＭＦＰ制御部８１、第１ファクシミリ部１１６、第２ファクシミリ部１１６Ａそれぞれに対応する時間軸を示す。図８においては、第１カスタム部６３が第１および第２ファクシミリ部１１６，１１６Ａのいずれかにファクシミリ送信させる第１アプリコマンドを出力し、第２カスタム部６５が第１および第２ファクシミリ部１１６，１１６Ａのいずれかにファクシミリ送信させる第２アプリコマンドを出力する場合を例に説明する。
【００７５】
まず、ＭＦＰ１００の起動時において、アプリケーション制御部７１は、ＭＦＰ制御部８１にリソース情報取得要求を出力する（Ｔ１）。リソース情報取得要求が入力されるＭＦＰ制御部８１は、オペレーティングシステムからリソース情報を収集する。そして、ＭＦＰ制御部８１は、リソース情報を含むリソース情報応答をアプリケーション制御部７１に出力する。アプリケーション制御部７１は、入力されるリソース情報をＨＤＤ１１５に記憶する。また、アプリケーションプログラムが実行され、第１カスタム部６３が起動すると、アプリケーション制御部７１は第１カスタム部６３にリソース情報を出力する（Ｔ３）。さらに、アプリケーションプログラムが実行され、第２カスタム部６５が起動すると、アプリケーション制御部７１は第２カスタム部６５にリソース情報を出力する（Ｔ４）。第１カスタム部６３および第２カスタム部６５それぞれは、リソース情報に基づいて、ＭＦＰ１００に実行させる処理の設定を決定する。例えば、原稿読取機能を実行させるための設定画面において、自動原稿搬送装置１２０が原稿反転機能を有すれば、両面読取の設定を有効にするが、自動原稿搬送装置１２０が原稿反転機能を有しなければ、両面読取の設定を無効にする。
【００７６】
その後、第１カスタム部６３が第１アプリコマンドを出力すると、アプリケーション制御部７１は、第１アプリコマンドを受け付け（Ｔ１１）、第２カスタム部６５が第２アプリコマンドを出力すると、アプリケーション制御部７１は、第２アプリコマンドを受け付ける（Ｔ１２）。
【００７７】
アプリケーション制御部７１は、第１アプリコマンドを第１内部コマンドに変換し、第２アプリコマンドを第２内部コマンドに変換する。第１内部コマンドおよび第２内部コマンドが、同じ種類のハードウェア資源である第１および第２ファクシミリ部１１６，１１６Ａに対応し、第１および第２ファクシミリ部１１６，１１６Ａが複数なので、第１内部コマンドをＭＦＰ制御部８１に出力し（Ｔ１３）、第２内部コマンドをＭＦＰ制御部８１に出力する（Ｔ１４）。
【００７８】
ＭＦＰ制御部８１は、第１内部コマンドが入力されることに応じて、第１ファクシミリ部１１６にファクシミリ送信させ（Ｔ１５）、第２内部コマンドが入力されることに応じて、第２ファクシミリ部１１６Ａにファクシミリ送信させる（Ｔ１６）。これにより、第１ファクシミリ部１１６と第２ファクシミリ部１１６Ａとが並列してファクシミリ送信する。第１ファクシミリ部１１６がファクシミリ送信を終了すると（Ｔ１７）、ＭＦＰ制御部８１は、第１送信結果をアプリケーション制御部７１に出力し（Ｔ１８）、アプリケーション制御部７１は、第１送信結果が入力されると、送信完了通知を第１カスタム部６３に出力する（Ｔ１９）。一方、第２ファクシミリ部１１６Ａがファクシミリ送信を終了すると（Ｔ２０）、ＭＦＰ制御部８１は、第２送信結果をアプリケーション制御部７１に出力し（Ｔ２１）、アプリケーション制御部７１は、第２送信結果が入力されると、送信結果を第２カスタム部６５に出力する（Ｔ２２）。なお、第１ファクシミリ部１１６によるファクシミリ送信が、第２ファクシミリ部１１６Ａによるファクシミリ送信よりも後に終了する場合は、Ｔ１７〜Ｔ１９が、Ｔ２０〜Ｔ２２よりも後になる。
【００７９】
図９は、アプリケーション制御処理の時間的な流れの一例を示す第２の図である。図９においては、ＭＦＰ１００が、ファクシミリ送信機能に対応するハードウェア資源として、第２ファクシミリ部１１６Ａを備えず、第１ファクシミリ部１１６のみを有する場合のアプリケーション制御処理の時間的な流れを示している。図９を参照して、図８と同様に、上から下に時間の流れの示し、左側から順に、第１カスタム部６３、第２カスタム部６５、アプリケーション制御部７１、ＭＦＰ制御部８１、第１ファクシミリ部１１６それぞれに対応する時間軸を示す。図９においては、第１カスタム部６３が第１ファクシミリ部１１６によるファクシミリ送信させる第１アプリコマンドを出力し、第２カスタム部６５が第１ファクシミリ部１１６にファクシミリ送信させる第２アプリコマンドを出力する場合を例に説明する。
【００８０】
Ｔ１〜Ｔ４までの処理は図８に示した処理と同じである。したがって、ここでは説明を繰り返さない。第１カスタム部６３が第１アプリコマンドを出力すると、アプリケーション制御部７１は、第１アプリコマンドを受け付け（Ｔ３１）、第２カスタム部６５が第２アプリコマンドを出力すると、アプリケーション制御部７１は、第２アプリコマンドを受け付ける（Ｔ３２）。
【００８１】
アプリケーション制御部７１は、第１アプリコマンドを第１内部コマンドに変換し、第２アプリコマンドを第２内部コマンドに変換し、第１内部コマンドをＭＦＰ制御部８１に出力する（Ｔ３３）。ＭＦＰ制御部８１は、第１内部コマンドが入力されることに応じて、第１ファクシミリ部１１６にファクシミリ送信させる（Ｔ３４）。これにより、第１ファクシミリ部１１６がファクシミリ送信を開始する。第１ファクシミリ部１１６がファクシミリ送信を終了すると（Ｔ３５）、ＭＦＰ制御部８１は、第１送信結果をアプリケーション制御部７１に出力し（Ｔ３６）、アプリケーション制御部７１は、第１送信結果が入力されると、送信完了通知を第１カスタム部６３に出力する（Ｔ３７）。
【００８２】
アプリケーション制御部７１は、ＭＦＰ制御部８１から第１送信結果が入力された後に、第２内部コマンドをＭＦＰ制御部８１に出力する（Ｔ３８）。ＭＦＰ制御部８１は、第２内部コマンドが入力されることに応じて、第１ファクシミリ部１１６にファクシミリ送信させる（Ｔ３９）。これにより、第１ファクシミリ部１１６がファクシミリ送信を開始する。第１ファクシミリ部１１６がファクシミリ送信を終了すると（Ｔ４０）、ＭＦＰ制御部８１は、第２送信結果をアプリケーション制御部７１に出力し（Ｔ４１）、アプリケーション制御部７１は、第２送信結果が入力されると、送信完了通知を第２カスタム部６５に出力する（Ｔ４２）。
【００８３】
図１０は、アプリケーション制御処理の流れの一例を示すフローチャートである。アプリケーション制御処理は、ＭＦＰ１００が備えるＣＰＵ１１１がＲＯＭ１１３、ＨＤＤ１１５またはＣＤ−ＲＯＭ１１８に記憶されたアプリケーション制御プログラムを実行することにより、ＣＰＵ１１１により実行される処理である。図１０を参照して、ＣＰＵ１１１は、インストール指示を受け付けたか否かを判断する（ステップＳ０１）。インストール指示を受け付けたならば（ステップＳ０１でＹＥＳ）、処理をステップＳ０２に進めるが、そうでなければ（ステップＳ０１でＮＯ）、処理をステップＳ０３に進める。ステップＳ０２においては、インストール指示とともに外部から入力されるアプリケーションプログラムを、ＨＤＤ１１５に格納し、処理をステップＳ０３に進める。
【００８４】
次のステップＳ０３においては、アプリケーションプログラムが起動したか否かを判断する。アプリケーションプログラムの起動を指示する操作を検出したならばアプリケーションプログラムが起動したと判断する。アプリケーションプログラムの起動を検出したならば処理をステップＳ０４に進めるが、そうでなければ処理をステップＳ０５に進める。ステップＳ０４においては、優先度を決定する。ステップＳ０３において、アプリケーションプログラムが起動されると、ＣＵ１１１にタスク（第１〜第３カスタム部６３，６５，６７のいずれか）が形成されるので、そのタスクに対して優先度を決定する。例えば、ＭＦＰ１００を操作するユーザーであって、アプリケーションプログラムの実行を指示したユーザーによって優先度を決定する。ＭＦＰ１００を操作するユーザーに優先度を予め設定しておき、アプリケーションプログラムを実行するタスクに対する優先度を、アプリケーションプログラムの実行を指示したユーザーに設定された優先度と同じ優先度に決定する。
【００８５】
ステップＳ０５においては、アプリコマンドを受け付けたか否かを判断する。アプリケーションプログラムを実行するタスク（第１〜第３カスタム部６３，６５，６７のいずれか）がアプリコマンドを出力する場合に、アプリコマンドを受け付ける。アプリコマンドを受け付けたならば処理をステップＳ０６に進めるが、そうでなければ処理をステップＳ０１に戻す。
【００８６】
ステップＳ０６においては、内部コマンド変換処理の実行を開始し、処理をステップＳ０７に進める。内部コマンド変換処理の詳細は後述するが、アプリコマンドを内部コマンドに変換する処理である。
【００８７】
ステップＳ０７においては、内部コマンドへの変換が完了したか否かを判断する。ステップＳ０６において開始された内部コマンド変換処理が終了したならば変換が完了したと判断する。内部コマンドへの変換が完了したならば処理をステップＳ１０に進めるが、そうでなければ処理をステップＳ０８に進める。ステップＳ０８においては、ステップＳ０５と同様に、アプリコマンドを受け付けたか否かを判断する。アプリコマンドを受け付けたならば処理をステップＳ０９に進めるが、そうでなければ処理をステップＳ０７に戻す。ステップＳ０９においては、内部コマンド変換処理の実行を開始し、処理をステップＳ０７に戻す。換言すれば、１つのアプリコマンドを内部コマンドに変換している間に、別のアプリコマンドを受け付ける場合には、別のアプリコマンドを内部コマンドに変換するまで、処理をステップＳ１０に進めない。
【００８８】
ステップＳ１０においては、ステップＳ０５またはステップＳ０８それぞれにおいて受け付けられたアプリコマンドが複数か否かを判断する。受け付けられたアプリコマンドが複数ならば処理をステップＳ１１に進めるが、そうでなければ処理をステップＳ１８に進める。ステップＳ１１においては、リソース情報を取得する。ＨＤＤ１１５に記憶されたリソース情報を読み出すことにより、リソース情報を取得する。そして、ステップＳ０６およびステップＳ０９それぞれにおいて実行が開始された内部コマンド変換処理において変換された複数の内部コマンドそれぞれのハードウェア資源の種類を特定する（ステップＳ１２）。そして、複数の内部コマンドそれぞれに対して特定されたハードウェア資源の種類が同一の２以上の内部コマンドが存在するか否かを判断する（ステップＳ１３）。ハードウェア資源の種類が同一の２以上の内部コマンドが存在するならば処理をステップＳ１４に進めるが、そうでなければ処理をステップＳ１８に進める。
【００８９】
ステップＳ１４においては、ステップＳ１１において取得されたリソース情報に基づいて、２以上の内部コマンド間で同一のハードウェア資源の種類に対するハードウェア資源を特定し、特定されたハードウェア資源が単数か否かを判断する。ハードウェア資源が単数ならば処理をステップＳ１５に進めるが、複数ならば処理をステップＳ１８に進める。ステップＳ１５においては、ＭＦＰ制御プログラムを実行するタスク（ＭＦＰ制御部８１）に、内部コマンドを出力する。そして、ＭＦＰ制御プログラムを実行するタスク（ＭＦＰ制御部８１）が、内部コマンドにより定まる処理を終了したか否かを判断する（ステップＳ１６）。内部コマンドにより定まる処理が終了するまで待機状態となり（ステップＳ１６でＮＯ）、内部コマンドにより定まる処理が終了すると（ステップＳ１６でＹＥＳ）、処理をステップＳ１７に進める。
【００９０】
ステップＳ１７においては、未だ出力されていない内部コマンドが存在するか否かを判断する。未だ出力されていない内部コマンドが存在するならば処理をステップＳ１５に戻すが、存在しなければ処理を終了する。
【００９１】
一方、ステップＳ１８においては、ＭＦＰ制御プログラムを実行するタスク（ＭＦＰ制御部８１）に、内部コマンドを出力する。そして、未だ出力されていない内部コマンドが存在するか否かを判断する（ステップＳ１９）。未だ出力されていない内部コマンドが存在するならば処理をステップＳ１８に戻すが、存在しなければ処理を終了する。
【００９２】
図１１は、内部コマンド変換処理の流れの一例を示すフローチャートである。内部変換処理は、図１０のステップＳ０６またはステップＳ０９において実行が開始される処理である。図１１を参照して、ステップＳ２１においては、ＨＤＤ１１５に記憶されているコマンド対応テーブルを読み出す。コマンド対応テーブルは、１つのアプリコマンドを１以上の内部コマンドと対応付ける。そして、コマンド対応テーブルを参照して、アプリコマンドを１以上の内部コマンドに変換する（ステップＳ２２）。
【００９３】
以上説明したように、本実施の形態におけるＭＦＰ１００は、アプリケーションプログラムを実行するアプリ実行部６１が、公開されたアプリコマンドを出力する場合、アプリケーション制御部７１がアプリコマンドを内部コマンドに変換し、変換された内部コマンドをＭＦＰ制御部８１に出力し、ＭＦＰ制御部８１が内部コマンドに対して予め定められた処理を実行し、ハードウェア資源を制御する。新たなアプリコマンドが登場する場合に、アプリコマンドと内部コマンドとは予め対応付けるコマンド対応テーブルを変更すれば、新たなアプリコマンドを既存の内部コマンドに変換することができるので、ＭＦＰ制御部８１を変更する必要がない。
【００９４】
また、コマンド対応テーブルによって、アプリコマンドをＭＦＰ１００のハードウェア資源に対応する内部コマンドに変換することができるので、ＭＦＰ１００とは異なるハードウェア資源の画像形成装置に対して開発されたアプリケーションプログラムをＭＦＰ１００にインストールすることができる。
【００９５】
さらに、ＭＦＰ１００のハードウェア資源が変更される場合であっても、コマンド対応テーブルを変更することによって、アプリコマンドを変更後のハードウェア資源に対応する内部コマンドに変換することができるので、アプリケーション制御部７１を変更する必要がない。このため、アプリケーション制御部プログラムを変更する必要がなく、ハードウェア資源の変更を容易にすることができる。また、ハードウェア資源の異なるＭＦＰに、同じアプリケーション制御プログラムをインストールすることができる。
【００９６】
また、第１カスタム部６３が第１のアプリコマンドを出力し、第２カスタム部６５が第２のアプリコマンドを出力する場合、制御対象判断部７４が第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かを判断し、調停部７７は、制御対象判断部７４により判断結果に基づいて、第１の内部コマンドおよび第２の内部コマンドをＭＦＰ制御部８１に出力するタイミングを制御する。このため、複数のアプリケーションプログラムが実行される場合であっても、ハードウェア資源を制御することができる。
【００９７】
また、調停部７７は、第１の内部コマンドと第２の内部コマンドとが同種のハードウェア資源を制御対象とする場合、第１の内部コマンドと第２の内部コマンドそれぞれが制御対象とするハードウェア資源が単数か否かを判断し、第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、第１の内部コマンドをＭＦＰ制御部８１に出力し、ＭＦＰ制御部８１による処理が完了した後に第２の内部コマンドを出力する。また、第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、第１の内部コマンドをＭＦＰ制御部８１に出力し、ＭＦＰ制御部８１による処理が実行されている最中に第２の内部コマンドをＭＦＰ制御部８１に出力する。このため、複数のアプリケーションプログラムが実行される場合であっても、ハードウェア資源に対する制御が競合するのを回避することができる。
【００９８】
なお、上述した実施の形態においては、画像処理装置の一例としてＭＦＰ１００について説明したが、図１０および図１１に示した処理を、ＭＦＰ１００に実行させるアプリケーション制御方法、また、そのアプリケーション制御方法をＭＦＰ１００を制御するＣＰＵ１１１に実行させるためのアプリケーション制御プログラムとして、発明を捉えることができるのは言うまでもない。
【００９９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１００】
１  画像形成システム、３  ネットワーク、６１  アプリ実行部、６３，６５，６７  第１〜第３カスタム部、７１  アプリケーション制御部、７２  インストール部、７３  リソース情報取得部、７４  制御対象判断部、７５  ハードウェア判断部、７７  調停部、７９  優先度決定部、８１  ＭＦＰ制御部、１１０  メイン回路、１１１  ＣＰＵ、１１２  通信Ｉ／Ｆ部、１１３  ＲＯＭ、１１４  ＲＡＭ、１１５  ＨＤＤ、１１６  第１ファクシミリ部、１１６Ａ  第２ファクシミリ部、１１７  外部記憶装置、１２０  自動原稿搬送装置、１３０  第１原稿読取部、１３０Ａ  第２原稿読取部、１４０  画像形成部、１５０  給紙部、１６０  操作パネル、１６１  表示部、１６３  操作部、１６５  タッチパネル、１６７  ハードキー部。
【図１】
2014022926.tif 000003
【図２】
2014022926.tif 000004
【図３】
2014022926.tif 000005
【図４】
2014022926.tif 000006
【図５】
2014022926.tif 000007
【図６】
2014022926.tif 000008
【図７】
2014022926.tif 000009
【図８】
2014022926.tif 000010
【図９】
2014022926.tif 000011
【図１０】
2014022926.tif 000012
【図１１】
2014022926.tif 000013
【手続補正書】
【提出日】平成25年6月26日(2013.6.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ハードウェア資源を制御する制御手段を備えた画像処理装置であって、
前記制御手段は、
内部コマンドが入力されると、前記ハードウェア資源を制御するために、前記入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、
アプリケーションプログラムを実行するアプリ実行手段と、
前記アプリ実行手段が、前記内部制御手段を制御するために公開されたアプリコマンドを出力する場合、前記出力されたアプリコマンドを前記内部コマンドに変換し、変換された前記内部コマンドを前記内部制御手段に出力するアプリケーション制御手段と、を備え、
前記アプリ実行手段は、第１のアプリケーションプログラムを実行する第１カスタム手段と、
第２のアプリケーションプログラムを実行する第２カスタム手段と、を含み、
前記アプリケーション制御手段は、前記第１カスタム手段から第１のアプリコマンドが入力され、前記第２カスタム手段から第２のアプリコマンドが入力される場合、前記第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、前記第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かを判断する制御対象判断手段と、
前記制御対象判断手段による判断結果に基づいて、前記第１の内部コマンドおよび前記第２の内部コマンドを前記内部制御手段に出力するタイミングを制御する調停手段と、を含む、画像形成装置。
【請求項２】
前記アプリケーション制御手段は、前記ハードウェア資源に関するリソース情報を取得するリソース情報取得手段を、さらに含み、
前記調停手段は、前記制御対象判断手段により前記第１の内部コマンドと前記第２の内部コマンドとが同種のハードウェア資源を制御対象とすると判断される場合、前記取得されたリソース情報に基づいて、前記第１の内部コマンドと前記第２の内部コマンドそれぞれが制御対象とするハードウェア資源が単数か否かを判断するハードウェア判断手段を含み、
前記第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、前記第１の内部コマンドおよび前記第２の内部コマンドのいずれか一方を前記内部制御手段に出力し、前記内部制御手段による処理が完了した後に、前記第１の内部コマンドおよび前記第２の内部コマンドの他方を前記内部制御手段に出力し、前記第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、前記第１の内部コマンドおよび前記第２の内部コマンドのいずれか一方を前記内部制御手段に出力し、前記内部制御手段による処理が実行されている最中に、前記第１の内部コマンドおよび前記第２の内部コマンドの他方を前記内部制御手段に出力する、請求項１に記載の画像形成装置。
【請求項３】
前記調停手段は、前記第１カスタム手段から第１のアプリコマンドが入力された後に前記第２カスタム手段から第２のアプリコマンドが入力される場合、前記第１の内部コマンドを前記内部制御手段に出力した後に前記第２の内部コマンドを前記内部制御手段に出力する、請求項２に記載の画像形成装置。
【請求項４】
前記アプリケーション制御手段は、前記第１カスタム手段と前記第２カスタム手段の優先度を決定する優先度決定手段を、さらに含み、
前記調停手段は、前記第１カスタム手段が前記第２カスタム手段よりも優先度が高い場合は、前記第１の内部コマンドを前記内部制御手段に出力した後に前記第２の内部コマンドを前記内部制御手段に出力し、前記第１カスタム手段が前記第２カスタム手段よりも優先度が低い場合は、前記第２の内部コマンドを前記内部制御手段に出力した後に前記第１の内部コマンドを前記内部制御手段に出力する、請求項２に記載の画像形成装置。
【請求項５】
画像形成装置が備えるハードウェア資源を制御するコンピューターで実行されるアプリケーション制御方法であって、
前記コンピューターは、
内部コマンドが入力されると、前記ハードウェア資源を制御するために、前記入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、
アプリケーションプログラムを実行するアプリ実行手段と、を備え、
前記アプリ実行手段が、前記内部制御手段を制御するために公開されたアプリコマンドを出力する場合、前記出力されたアプリコマンドを前記内部コマンドに変換する変換ステップと、
変換された前記内部コマンドを前記内部制御手段に出力するアプリケーション制御ステップと、を前記コンピューターに実行させ、
前記アプリ実行手段は、第１のアプリケーションプログラムを実行する第１カスタム手段と、
第２のアプリケーションプログラムを実行する第２カスタム手段と、を含み、
前記アプリケーション制御ステップは、前記第１カスタム手段から第１のアプリコマンドが入力され、前記第２カスタム手段から第２のアプリコマンドが入力される場合、前記第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、前記第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かを判断する制御対象判断ステップと、
前記制御対象判断ステップにおける判断結果に基づいて、前記第１の内部コマンドおよび前記第２の内部コマンドを前記内部制御手段に出力するタイミングを制御する調停ステップと、を含む、アプリケーション制御方法。
【請求項６】
前記アプリケーション制御ステップは、前記ハードウェア資源に関するリソース情報を取得するリソース情報取得ステップを、さらに含み、
前記調停ステップは、前記制御対象判断ステップにおいて前記第１の内部コマンドと前記第２の内部コマンドとが同種のハードウェア資源を制御対象とすると判断される場合、前記取得されたリソース情報に基づいて、前記第１の内部コマンドと前記第２の内部コマンドそれぞれが制御対象とするハードウェア資源が単数か否かを判断するハードウェア判断ステップと、
前記第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、前記第１の内部コマンドおよび前記第２の内部コマンドのいずれか一方を前記内部制御手段に出力し、前記内部制御手段による処理が完了した後に、前記第１の内部コマンドおよび前記第２の内部コマンドの他方を前記内部制御手段に出力するステップと、
前記第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、前記第１の内部コマンドおよび前記第２の内部コマンドのいずれか一方を前記内部制御手段に出力し、前記内部制御手段による処理が実行されている最中に、前記第１の内部コマンドおよび前記第２の内部コマンドの他方を前記内部制御手段に出力するステップと、を含む、請求項５に記載のアプリケーション制御方法。
【請求項７】
前記調停ステップは、前記第１カスタム手段から第１のアプリコマンドが入力された後に前記第２カスタム手段から第２のアプリコマンドが入力される場合、前記第１の内部コマンドを前記内部制御手段に出力した後に前記第２の内部コマンドを前記内部制御手段に出力するステップを含む、請求項６に記載のアプリケーション制御方法。
【請求項８】
前記アプリケーション制御ステップは、前記第１カスタム手段と前記第２カスタム手段の優先度を決定する優先度決定ステップを、さらに含み、
前記調停ステップは、前記第１カスタム手段が前記第２カスタム手段よりも優先度が高い場合は、前記第１の内部コマンドを前記内部制御手段に出力した後に前記第２の内部コマンドを前記内部制御手段に出力するステップと、
前記第１カスタム手段が前記第２カスタム手段よりも優先度が低い場合は、前記第２の内部コマンドを前記内部制御手段に出力した後に前記第１の内部コマンドを前記内部制御手段に出力するステップと、を含む請求項６に記載のアプリケーション制御方法。
【請求項９】
画像形成装置が備えるハードウェア資源を制御するコンピューターで実行されるアプリケーション制御プログラムであって、
前記コンピューターは、
内部コマンドが入力されると、前記ハードウェア資源を制御するために、前記入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、
アプリケーションプログラムを実行するアプリ実行手段と、を備え、
前記アプリ実行手段が、前記内部制御手段を制御するために公開されたアプリコマンドを出力する場合、前記出力されたアプリコマンドを前記内部コマンドに変換する変換ステップと、
変換された前記内部コマンドを前記内部制御手段に出力するアプリケーション制御ステップと、を前記コンピューターに実行させ、
前記アプリ実行手段は、第１のアプリケーションプログラムを実行する第１カスタム手段と、
第２のアプリケーションプログラムを実行する第２カスタム手段と、を含み、
前記アプリケーション制御ステップは、前記第１カスタム手段から第１のアプリコマンドが入力され、前記第２カスタム手段から第２のアプリコマンドが入力される場合、前記第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、前記第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かを判断する制御対象判断ステップと、
前記制御対象判断ステップにおける判断結果に基づいて、前記第１の内部コマンドおよび前記第２の内部コマンドを前記内部制御手段に出力するタイミングを制御する調停ステップと、を含む、アプリケーション制御プログラム。
【請求項１０】
前記アプリケーション制御ステップは、前記ハードウェア資源に関するリソース情報を取得するリソース情報取得ステップを、さらに含み、
前記調停ステップは、前記制御対象判断ステップにおいて前記第１の内部コマンドと前記第２の内部コマンドとが同種のハードウェア資源を制御対象とすると判断される場合、前記取得されたリソース情報に基づいて、前記第１の内部コマンドと前記第２の内部コマンドそれぞれが制御対象とするハードウェア資源が単数か否かを判断するハードウェア判断ステップと、
前記第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、前記第１の内部コマンドおよび前記第２の内部コマンドのいずれか一方を前記内部制御手段に出力し、前記内部制御手段による処理が完了した後に、前記第１の内部コマンドおよび前記第２の内部コマンドの他方を前記内部制御手段に出力するステップと、
前記第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、前記第１の内部コマンドおよび前記第２の内部コマンドのいずれか一方を前記内部制御手段に出力し、前記内部制御手段による処理が実行されている最中に、前記第１の内部コマンドおよび前記第２の内部コマンドの他方を前記内部制御手段に出力するステップと、を含む、請求項９に記載のアプリケーション制御プログラム。
【請求項１１】
前記調停ステップは、前記第１カスタム手段から第１のアプリコマンドが入力された後に前記第２カスタム手段から第２のアプリコマンドが入力される場合、前記第１の内部コマンドを前記内部制御手段に出力した後に前記第２の内部コマンドを前記内部制御手段に出力するステップを含む、請求項１０に記載のアプリケーション制御プログラム。
【請求項１２】
前記アプリケーション制御ステップは、前記第１カスタム手段と前記第２カスタム手段の優先度を決定する優先度決定ステップを、さらに含み、
前記調停ステップは、前記第１カスタム手段が前記第２カスタム手段よりも優先度が高い場合は、前記第１の内部コマンドを前記内部制御手段に出力した後に前記第２の内部コマンドを前記内部制御手段に出力するステップと、
前記第１カスタム手段が前記第２カスタム手段よりも優先度が低い場合は、前記第２の内部コマンドを前記内部制御手段に出力した後に前記第１の内部コマンドを前記内部制御手段に出力するステップと、を含む請求項１０に記載のアプリケーション制御プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００８
【補正方法】変更
【補正の内容】
【０００８】
上述した目的を達成するためにこの発明のある局面によれば、画像形成装置は、ハードウェア資源を制御する制御手段を備えた画像処理装置であって、制御手段は、内部コマンドが入力されると、ハードウェア資源を制御するために、入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、アプリケーションプログラムを実行するアプリ実行手段と、アプリ実行手段が、内部制御手段を制御するために公開されたアプリコマンドを出力する場合、出力されたアプリコマンドを内部コマンドに変換し、変換された内部コマンドを内部制御手段に出力するアプリケーション制御手段と、を備え、アプリ実行手段は、第１のアプリケーションプログラムを実行する第１カスタム手段と、第２のアプリケーションプログラムを実行する第２カスタム手段と、を含み、アプリケーション制御手段は、第１カスタム手段から第１のアプリコマンドが入力され、第２カスタム手段から第２のアプリコマンドが入力される場合、第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かを判断する制御対象判断手段と、制御対象判断手段による判断結果に基づいて、第１の内部コマンドおよび第２の内部コマンドを内部制御手段に出力するタイミングを制御する調停手段と、を含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】削除
【補正の内容】
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
また、第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かに基づいて、第１の内部コマンドおよび第２の内部コマンドを内部制御手段に出力するタイミングを制御する。このため、複数のアプリケーションプログラムが実行される場合であっても、ハードウェア資源を制御することができる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
好ましくは、アプリケーション制御手段は、ハードウェア資源に関するリソース情報を取得するリソース情報取得手段を、さらに含み、調停手段は、制御対象判断手段により第１の内部コマンドと第２の内部コマンドとが同種のハードウェア資源を制御対象とすると判断される場合、取得されたリソース情報に基づいて、第１の内部コマンドと第２の内部コマンドそれぞれが制御対象とするハードウェア資源が単数か否かを判断するハードウェア判断手段を含み、第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を内部制御手段に出力し、内部制御手段による処理が完了した後に、第１の内部コマンドおよび第２の内部コマンドの他方を内部制御手段に出力し、第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を内部制御手段に出力し、内部制御手段による処理が実行されている最中に、第１の内部コマンドおよび第２の内部コマンドの他方を内部制御手段に出力する。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
この発明の他の局面によれば、アプリケーション制御方法は、画像形成装置が備えるハードウェア資源を制御するコンピューターで実行されるアプリケーション制御方法であって、コンピューターは、内部コマンドが入力されると、ハードウェア資源を制御するために、入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、アプリケーションプログラムを実行するアプリ実行手段と、を備え、アプリ実行手段が、内部制御手段を制御するために公開されたアプリコマンドを出力する場合、出力されたアプリコマンドを内部コマンドに変換する変換ステップと、変換された内部コマンドを内部制御手段に出力するアプリケーション制御ステップと、をコンピューターに実行させ、アプリ実行手段は、第１のアプリケーションプログラムを実行する第１カスタム手段と、第２のアプリケーションプログラムを実行する第２カスタム手段と、を含み、アプリケーション制御ステップは、第１カスタム手段から第１のアプリコマンドが入力され、第２カスタム手段から第２のアプリコマンドが入力される場合、第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かを判断する制御対象判断ステップと、制御対象判断ステップにおける判断結果に基づいて、第１の内部コマンドおよび第２の内部コマンドを内部制御手段に出力するタイミングを制御する調停ステップと、を含む。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
この局面に従えば、画像形成装置のハードウェア資源の変更を容易にするとともに、アプリケーションプログラムのインストールを容易にしたアプリケーション制御方法を提供することができる。
好ましくは、アプリケーション制御ステップは、ハードウェア資源に関するリソース情報を取得するリソース情報取得ステップを、さらに含み、調停ステップは、制御対象判断ステップにおいて第１の内部コマンドと第２の内部コマンドとが同種のハードウェア資源を制御対象とすると判断される場合、取得されたリソース情報に基づいて、第１の内部コマンドと第２の内部コマンドそれぞれが制御対象とするハードウェア資源が単数か否かを判断するハードウェア判断ステップと、第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を内部制御手段に出力し、内部制御手段による処理が完了した後に、第１の内部コマンドおよび第２の内部コマンドの他方を内部制御手段に出力するステップと、第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を内部制御手段に出力し、内部制御手段による処理が実行されている最中に、第１の内部コマンドおよび第２の内部コマンドの他方を内部制御手段に出力するステップと、を含む。
好ましくは、調停ステップは、第１カスタム手段から第１のアプリコマンドが入力された後に第２カスタム手段から第２のアプリコマンドが入力される場合、第１の内部コマンドを内部制御手段に出力した後に第２の内部コマンドを内部制御手段に出力するステップを含む。
好ましくは、アプリケーション制御ステップは、第１カスタム手段と第２カスタム手段の優先度を決定する優先度決定ステップを、さらに含み、調停ステップは、第１カスタム手段が第２カスタム手段よりも優先度が高い場合は、第１の内部コマンドを内部制御手段に出力した後に第２の内部コマンドを内部制御手段に出力するステップと、第１カスタム手段が第２カスタム手段よりも優先度が低い場合は、第２の内部コマンドを内部制御手段に出力した後に第１の内部コマンドを内部制御手段に出力するステップと、を含む。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
この発明のさらに他の局面によれば、アプリケーション制御プログラムは、画像形成装置が備えるハードウェア資源を制御するコンピューターで実行されるアプリケーション制御プログラムであって、コンピューターは、内部コマンドが入力されると、ハードウェア資源を制御するために、入力された内部コマンドに対して予め定められた処理を実行する内部制御手段と、アプリケーションプログラムを実行するアプリ実行手段と、を備え、アプリ実行手段が、内部制御手段を制御するために公開されたアプリコマンドを出力する場合、出力されたアプリコマンドを内部コマンドに変換する変換ステップと、変換された内部コマンドを内部制御手段に出力するアプリケーション制御ステップと、をコンピューターに実行させ、アプリ実行手段は、第１のアプリケーションプログラムを実行する第１カスタム手段と、第２のアプリケーションプログラムを実行する第２カスタム手段と、を含み、アプリケーション制御ステップは、第１カスタム手段から第１のアプリコマンドが入力され、第２カスタム手段から第２のアプリコマンドが入力される場合、第１のアプリコマンドを変換した第１の内部コマンドが制御対象とするハードウェア資源と、第２のアプリコマンドを変換した第２の内部コマンドが制御対象とするハードウェア資源とが同種か否かを判断する制御対象判断ステップと、制御対象判断ステップにおける判断結果に基づいて、第１の内部コマンドおよび第２の内部コマンドを内部制御手段に出力するタイミングを制御する調停ステップと、を含む。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
この局面に従えば、画像形成装置のハードウェア資源の変更を容易にするとともに、アプリケーションプログラムのインストールを容易にしたアプリケーション制御プログラムを提供することができる。
好ましくは、アプリケーション制御ステップは、ハードウェア資源に関するリソース情報を取得するリソース情報取得ステップを、さらに含み、調停ステップは、制御対象判断ステップにおいて第１の内部コマンドと第２の内部コマンドとが同種のハードウェア資源を制御対象とすると判断される場合、取得されたリソース情報に基づいて、第１の内部コマンドと第２の内部コマンドそれぞれが制御対象とするハードウェア資源が単数か否かを判断するハードウェア判断ステップと、第１および第２の内部コマンドが制御対象とするハードウェア資源が単数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を内部制御手段に出力し、内部制御手段による処理が完了した後に、第１の内部コマンドおよび第２の内部コマンドの他方を内部制御手段に出力するステップと、第１および第２の内部コマンドが制御対象とするハードウェア資源が複数ならば、第１の内部コマンドおよび第２の内部コマンドのいずれか一方を内部制御手段に出力し、内部制御手段による処理が実行されている最中に、第１の内部コマンドおよび第２の内部コマンドの他方を内部制御手段に出力するステップと、を含む。
好ましくは、調停ステップは、第１カスタム手段から第１のアプリコマンドが入力された後に第２カスタム手段から第２のアプリコマンドが入力される場合、第１の内部コマンドを内部制御手段に出力した後に第２の内部コマンドを内部制御手段に出力するステップを含む。
好ましくは、アプリケーション制御ステップは、第１カスタム手段と第２カスタム手段の優先度を決定する優先度決定ステップを、さらに含み、調停ステップは、第１カスタム手段が第２カスタム手段よりも優先度が高い場合は、第１の内部コマンドを内部制御手段に出力した後に第２の内部コマンドを内部制御手段に出力するステップと、第１カスタム手段が第２カスタム手段よりも優先度が低い場合は、第２の内部コマンドを内部制御手段に出力した後に第１の内部コマンドを内部制御手段に出力するステップと、を含む。