(57)【要約】      （修正有）【課題】主処理手段や副処理手段を異なる機種の情報処理装置間で共用して円滑に所定処理を行う。【解決手段】  主処理制御プログラム８４は、各々予め定められた処理を実行する副処理プログラムを所定の処理順序で用いて所定処理を行う、ＨＤＤは、各々副処理手段副処理プログラムに関する固有の情報を示す属性情報を記憶しており、ＣＰＵ４０は、記憶された前記属性情報に基づいて前記主処理制御プログラム８４により行われる前記所定処理を適正化している。【選択図】図３
2006268575.tif 000002
【特許請求の範囲】
【請求項１】
各々予め定められた処理を実行する複数の副処理手段と、
所定の処理順序で前記副処理手段を用いて所定処理を行う主処理手段と、
前記副処理手段に関する固有の情報を示す属性情報を記憶する記憶手段と、
前記記憶手段に記憶された前記属性情報に基づいて前記主処理手段により行われる前記所定処理を適正化する適正化手段と、
を備えた情報処理装置。
【請求項２】
前記属性情報を、前記副処理手段の処理性能を示す処理性能情報とし、
前記適正化手段は、前記処理性能情報を用いて前記所定処理の処理時間に関する適正化を行う
請求項１記載の情報処理装置。
【請求項３】
前記記憶手段は、並列処理が可能な前記副処理手段の組み合わせを示す並列処理情報をさらに記憶し、
前記適正化手段は、前記主処理手段により行われる前記所定処理で用いられる前記複数の副処理手段に対応する前記処理性能情報に基づいて当該所定処理の処理時間を算出し、算出した前記所定処理の処理時間が所定時間よりも長い場合に、前記並列処理情報に基づいて前記所定処理で用いられる前記副処理手段の処理の何れかを並列処理に変更することにより前記最適化を行う
請求項２記載の情報処理装置。
【請求項４】
前記主処理手段は、当該主処理手段が前記副処理手段を用いる際の制御情報を副処理手段に対応させて置換するための置換コードが予め含まれたものとし、
前記属性情報を、対応する前記副処理手段の前記制御情報と前記置換コードとを対応付けた情報とし、
前記適正化手段は、前記主処理手段に含まれる前記置換コードを当該置換コードに対応する前記副処理手段の前記制御情報に置換することにより前記適正化を行う
請求項１記載の情報処理装置。
【請求項５】
前記属性情報を、前記副処理手段のバージョンを示すバージョン情報とし、
前記適正化手段は、前記バージョン情報に基づいて前記副処理手段のバージョンを前記所定処理で用いられるバージョンにバージョンアップする適正化を行う
請求項１記載の情報処理装置。
【請求項６】
前記主処理手段に対する機能的に改定されたバージョンへの更新の要求指示を取得する取得手段と、
前記主処理手段及び前記副処理手段の更新後のバージョンを示す更新バージョン情報を取得する更新情報取得手段と、をさらに備え、
前記属性情報を、前記副処理手段の現在のバージョンを示すバージョン情報とし、
前記記憶手段は、前記主処理手段の現在のバージョンを示すバージョン情報をさらに記憶し、
前記適正化手段は、前記取得手段により前記要求指示が取得されたときに、前記主処理手段により用いられる前記副処理手段の現在のバージョンが前記更新バージョン情報により示されるバージョン未満である副処理手段が存在する場合に、当該副処理手段の現在のバージョンを前記更新バージョン情報により示される更新後のバージョン以上となるように当該副処理手段に対してバージョンアップを要求し、これにより各前記副処理手段のバージョンが更新バージョン情報に示されたバージョン以上となったときに、前記主処理手段をバージョンアップする
請求項１記載の情報処理装置。
【請求項７】
前記副処理手段に対する新たな処理の追加の要求指示を取得する取得手段をさらに備え、
前記記憶手段は、前記新たな処理の処理手順を示す情報又は前記新たな処理を行う他の副処理手段の呼出処理手順を示す情報をさらに記憶し、
前記適正化手段は、前記取得手段により前記要求指示が取得されたときに、当該要求指示により新たな処理の追加が要求された前記副処理手段に対応する前記属性情報として当該新たな処理の処理手順を示す情報又は当該新たな処理を行う他の副処理手段の呼出処理手順を示す情報を記憶させることにより前記適正化を行い、
前記副処理手段は、前記新たな処理を行う場合に当該副処理手段に対応する前記属性情報として記憶された前記新たな処理の処理手順を示す情報に基づく処理又は新たな処理を行う他の副処理手段の呼出処理手順を示す情報に基づく呼出処理を行う
請求項１記載の情報処理装置。
【請求項８】
各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行う情報処理方法であって、
前記副処理手段に関する固有の情報を示す属性情報を記憶手段に予め記憶しておき、
前記記憶手段に記憶された前記属性情報に基づいて前記所定処理を適正化する
情報処理方法。
【請求項９】
各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行う情報処理プログラムであって、
記憶手段に記憶された前記副処理手段に関する固有の情報を示す属性情報に基づいて前記所定処理を適正化する適正化ステップ
をコンピュータに実行させる情報処理プログラム。
【請求項１０】
ネットワークを介して接続された情報処理装置に記憶され、各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行う主処理手段と、
前記副処理手段に関する固有の情報を示す属性情報を記憶する記憶手段と、
前記記憶手段に記憶された前記属性情報に基づいて前記主処理手段により行われる前記所定処理を適正化する適正化手段と、
を備えた情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、主処理手段により複数の副処理手段を所定の順序で用いることにより一連の処理を実行する情報処理装置に関するものである。
【背景技術】
【０００２】
従来から複写機能、プリンタ機能等の複数の機能を備えたデジタル複合機が知られている。この種のデジタル複合機は、一般に装置本体に備えられたスキャナにより取得した画像データ、あるいはネットワークを介してプリントデータとして受信した画像データを用いて画像形成エンジン部による画像形成処理を行って記録用紙に画像をプリントしている。
【０００３】
ところで、以上のようなデジタル複合機も含め、各種情報処理装置には、情報処理装置に装備された機器（例えば、デジタル複合機の場合は、スキャナ、ネットワークカード、給紙装置、画像形成エンジン部等）を個別に制御する機器制御プログラム（所謂、デバイスドライバ）を備えているものがあり、この種の情報処理装置は、当該機器制御プログラムを所定の主処理制御プログラムから所定の順序で実行して一連の処理を実行するようにしているものが多い。
【０００４】
この種の情報処理装置においてアプリケーションの開発を容易にすることを目的として、特許文献１には、画像処理アプリケーションの開発において、各々個別の画像処理を行うコンポーネントを組み合わせて画像処理のアプリケーションを開発する技術が開示されている。
【特許文献１】特表２００３−５２６１６８公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、主処理制御プログラムや機器制御プログラムを異なる機種の情報処理装置間で共用することが困難な場合があった。すなわち、情報処理装置では、機種が異なると異なる機器が装備されている場合が多い。一方、機器制御プログラムは機器の仕様に依存する機器固有の処理（例えば、異常動作に対応する処理）を含んでいる場合が多く、機器の仕様毎に機器制御プログラムが異なる場合が多い。このため、主処理制御プログラムは、機器制御プログラムの機器固有の処理に対応する必要があり、異なる機種間で共用することが困難であった。なお、特許文献１の技術は、主処理制御プログラム（アプリケーションに相当）を開発を容易にすることができるものの、異なる機種間で主処理制御プログラムの共用化することは考慮されておらず、この問題に対しては無力である。
【０００６】
本発明は上記事実に鑑みてなされたものであり、主処理手段（主処理制御プログラム）や副処理手段（機器制御プログラム）を異なる機種の情報処理装置間で共用して円滑に所定処理を行うことができる情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、請求項１に記載の発明は、各々予め定められた処理を実行する複数の副処理手段と、所定の処理順序で前記副処理手段を用いて所定処理を行う主処理手段と、前記副処理手段に関する固有の情報を示す属性情報を記憶する記憶手段と、
前記記憶手段に記憶された前記属性情報に基づいて前記主処理手段により行われる前記所定処理を適正化する適正化手段と、を備えている。
【０００８】
請求項１に記載の発明は、主処理手段は各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行う。記憶手段は各々前記副処理手段に関する固有の情報を示す属性情報を記憶する。適正化手段は前記記憶手段に記憶された前記属性情報に基づいて前記主処理手段により行われる前記所定処理を適正化する。
【０００９】
このように請求項１記載の発明によれば、主処理手段は各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行っており、各々前記副処理手段に関する固有の情報を示す属性情報が記憶手段に記憶され、記憶された前記属性情報に基づいて前記主処理手段により行われる前記所定処理が適正化されるので、主処理手段や副処理手段を異なる機種の情報処理装置間で共用して円滑に所定処理を行うことができる。
【００１０】
また、請求項１記載の発明、請求項２記載の発明のように、前記属性情報を、前記副処理手段の処理性能を示す処理性能情報とし、前記適正化手段は、前記処理性能情報を用いて前記所定処理の処理時間に関する適正化を行うものとしてもよい。
【００１１】
さらに、請求項２記載の発明、請求項３記載の発明のように、前記記憶手段は、並列処理が可能な前記副処理手段の組み合わせを示す並列処理情報をさらに記憶し、
前記適正化手段は、前記主処理手段により行われる前記所定処理で用いられる前記複数の副処理手段に対応する前記処理性能情報に基づいて当該所定処理の処理時間を算出し、算出した前記所定処理の処理時間が所定時間よりも長い場合に、前記並列処理情報に基づいて前記所定処理で用いられる前記副処理手段の処理の何れかを並列処理に変更することにより前記最適化を行うことが好ましい。
【００１２】
また、請求項１の発明は、請求項４記載の発明のように、前記主処理手段は、当該主処理手段が前記副処理手段を用いる際の制御情報を副処理手段に対応させて置換するための置換コードが予め含まれたものとし、前記属性情報を、対応する前記副処理手段の前記制御情報と前記置換コードとを対応付けた情報とし、前記適正化手段は、前記主処理手段に含まれる前記置換コードを当該置換コードに対応する前記副処理手段の前記制御情報に置換することにより前記適正化を行うものとしてもよい。
【００１３】
また、請求項１の発明は、請求項５記載の発明のように、前記属性情報を、前記副処理手段のバージョンを示すバージョン情報とし、前記適正化手段は、前記バージョン情報に基づいて前記副処理手段のバージョンを前記所定処理で用いられるバージョンにバージョンアップする適正化を行うものとしてもよい。
【００１４】
また、請求項１の発明は、請求項６記載の発明のように、前記主処理手段に対する機能的に改定されたバージョンへの更新の要求指示を取得する取得手段と、前記主処理手段及び前記副処理手段の更新後のバージョンを示す更新バージョン情報を取得する更新情報取得手段と、をさらに備え、前記属性情報を、前記副処理手段の現在のバージョンを示すバージョン情報とし、前記記憶手段は、前記主処理手段の現在のバージョンを示すバージョン情報をさらに記憶し、前記適正化手段は、前記取得手段により前記要求指示が取得されたときに、前記主処理手段により用いられる前記副処理手段の現在のバージョンが前記更新バージョン情報により示されるバージョン未満である副処理手段が存在する場合に、当該副処理手段の現在のバージョンを前記更新バージョン情報により示される更新後のバージョン以上となるように当該副処理手段に対してバージョンアップを要求し、これにより各前記副処理手段のバージョンが更新バージョン情報に示されたバージョン以上となったときに、前記主処理手段をバージョンアップするものとすることが好ましい。
【００１５】
これにより、処理手段が他の処理手段を用いるという階層構造が複数階層とされ、上位階層の処理手段に対して自身が副処理手段となり、下位階層の処理手段に対して自身が主処理手段となっている場合であっても、下位階層から順次バージョンアップが行われて上位階層に伝播し、最終的に全ての階層の処理手段を円滑に更新することができる。
【００１６】
また、請求項１の発明は、請求項７記載の発明のように、前記副処理手段に対する新たな処理の追加の要求指示を取得する取得手段をさらに備え、前記記憶手段は、前記新たな処理の処理手順を示す情報又は前記新たな処理を行う他の副処理手段の呼出処理手順を示す情報をさらに記憶し、前記適正化手段は、前記取得手段により前記要求指示が取得されたときに、当該要求指示により新たな処理の追加が要求された前記副処理手段に対応する前記属性情報として当該新たな処理の処理手順を示す情報又は当該新たな処理を行う他の副処理手段の呼出処理手順を示す情報を記憶させることにより前記適正化を行い、前記副処理手段は、前記新たな処理を行う場合に当該副処理手段に対応する前記属性情報として記憶された前記新たな処理の処理手順を示す情報に基づく処理又は新たな処理を行う他の副処理手段の呼出処理手順を示す情報に基づく呼出処理を行うものとしてもよい。
【００１７】
一方、上記目的を達成するために、請求項８に記載の情報処理方法は、各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行う情報処理方法であって、前記副処理手段に関する固有の情報を示す属性情報を記憶手段に予め記憶しておき、前記記憶手段に記憶された前記属性情報に基づいて前記所定処理を適正化する。
【００１８】
従って、請求項８に記載の情報処理方法は、請求項１と同様の作用を生じさせることができるので、請求項１記載と同様に、主処理手段や副処理手段を異なる機種の情報処理装置間で共用して円滑に所定処理を行うことができる。
【００１９】
一方、上記目的を達成するために、請求項９に記載の情報処理プログラムは、各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行う情報処理プログラムであって、記憶手段に記憶された前記副処理手段に関する固有の情報を示す属性情報に基づいて前記所定処理を適正化する適正化ステップ、を含んでいる。
【００２０】
従って、請求項９に記載の情報処理プログラムは、コンピュータに対して請求項１と同様の作用を生じさせることができるので、主処理手段や副処理手段を異なる機種の情報処理装置間で共用して円滑に所定処理を行うことができる。
【００２１】
一方、上記目的を達成するために、請求項１０に記載の情報処理装置は、ネットワークを介して接続された情報処理装置に記憶され、各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行う主処理手段と、前記副処理手段に関する固有の情報を示す属性情報を記憶する記憶手段と、前記記憶手段に記憶された前記属性情報に基づいて前記主処理手段により行われる前記所定処理を適正化する適正化手段と、を備えている。
【００２２】
このように請求項１０記載の発明によれば、主処理手段は、ネットワークを介して接続された情報処理装置に記憶され、各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行っており、各々前記副処理手段に関する固有の情報を示す属性情報が記憶手段に記憶され、記憶された前記属性情報に基づいて前記主処理手段により行われる前記所定処理が適正化されるので、主処理手段や副処理手段を異なる機種の情報処理装置間で共用して円滑に所定処理を行うことができる。
【発明の効果】
【００２３】
以上説明したように、本発明によれば、主処理手段は各々予め定められた処理を実行する複数の副処理手段を所定の処理順序で用いて所定処理を行っており、各々前記副処理手段に関する固有の情報を示す属性情報が記憶手段に記憶され、記憶された前記属性情報に基づいて前記主処理手段により行われる前記所定処理が適正化されるので、主処理手段や副処理手段を異なる機種の情報処理装置間で共用して円滑に所定処理を行うことができる、という優れた効果を有する。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して、本発明の実施の形態について詳細に説明する。
（第１の実施の形態）
図１には、本実施の形態に係る画像形成装置１０が示されている。
【００２５】
同図に示すように、この画像形成装置１０は、所定の読込位置に載置された原稿画像から画像を読み込み、当該画像を示す画像データを取得するスキャナ１１と、スキャナ１１により取得した画像データや外部から取得した画像データ等の各種画像データを用いて画像形成処理を行う装置本体１２と、給紙トレイ１３Ａに搭載された記録用紙を装置本体１２へ１枚ずつ搬送する給紙装置１３と、操作メニューやメッセージ等を表示すると共に表面に透過型のタッチパネルが一体的に設けられたタッチパネル・ディスプレイ（以下、「ディスプレイ」という。）１４と、を有している。
【００２６】
なお、上記スキャナ１１は、原稿画像が載置される載置部に読み取り対象とする原稿画像のサイズに応じた複数のセンサを備え、載置された原稿画像のサイズを検出することができる。
【００２７】
また、給紙装置１３は、各給紙トレイ１３Ａに搭載された記録用紙のサイズをユーザにより設定するスイッチが備えられており、画像形成装置１０は各給紙トレイ１３Ａに搭載された記録用紙のサイズを特定することができる。
【００２８】
また、上記タッチパネルは感圧方式のものとされており、ユーザがディスプレイ１４の表示面に指先にて接触する（タッチ操作する）ことにより、画像形成装置１０に対して各種の動作を指示することができる。
【００２９】
さらに、装置本体１２の内部には、感光体ドラム、当該感光体ドラムを帯電させる帯電器、画像データに基づきレーザービームを制御して帯電した感光体ドラム上に静電潜像を形成する光走査系、形成された静電潜像をトナーによって現像する現像器、及び現像されたトナー像を記録用紙へ転写する転写器等、を含んで構成された画像形成処理を行うための画像形成エンジン部１５（図１では図示省略。図２参照。）が備えられている。
【００３０】
一方、本実施の形態に係る画像形成装置１０は、ネットワーク２０に接続されている。なお、本実施の形態では、ネットワーク２０としてインターネットを適用しており、ネットワーク２０を介して外部のサーバーコンピュータと通信可能となっている。なお、これに限らず、イントラネット、ＬＡＮ（Local Area Network）、エコーネット（ECHONET）、ＨｏｍｅＰＮＡ等の各種ネットワークを単独又は組み合わせて適用することもできる。
【００３１】
このネットワーク２０にはパーソナル・コンピュータ、ワークステーション等の端末装置２２が接続されており、画像形成装置１０と端末装置２２とはネットワーク２０を介して互いに通信可能となっている。
【００３２】
次に、図２を参照して、画像形成装置１０の電気系の要部構成を説明する。
【００３３】
画像形成装置１０は、装置全体の動作を司るＣＰＵ（中央処理装置）４０と、後述する処理順序適正化処理プログラムや各種パラメータ等が予め記憶されたＲＯＭ４２と、各種データを一時的に記憶するＲＡＭ４８と、後述する各種プログラムや各種データを記憶するＨＤＤ（ハードディスク・ドライブ）５６と、ディスプレイ１４への各種情報の表示を制御するディスプレイ制御部４４と、ディスプレイ１４のタッチ操作を検出する操作入力検出部４６と、を備えている。
【００３４】
また、画像形成装置１０は、スキャナ１１による光学的な画像の読み取りを制御するスキャナ制御部５０と、ネットワーク２０に接続されるコネクタ５９に接続され、コネクタ５９を介してネットワーク２０に接続された端末装置２２との間でデータの送受信するネットワークＩ／Ｆ（インタフェース）部６０と、給紙装置１３からの記録用紙の搬送を制御する用紙搬送制御部５５と、前述した画像形成エンジン部１５を制御する画像形成エンジン制御部５４と、を備えている。
【００３５】
ＣＰＵ４０、ＲＡＭ４８、ＲＯＭ４２、ＨＤＤ５６、ディスプレイ制御部４４、操作入力検出部４６、スキャナ制御部５０、画像形成エンジン制御部５４、用紙搬送制御部５５、ネットワークＩ／Ｆ部６０は、システムバスＢＵＳを介して相互に接続されている。
従って、ＣＰＵ４０は、ＲＡＭ４８、ＲＯＭ４２、ＨＤＤ５６へのアクセス、ディスプレイ制御部４４を介したディスプレイ１４への各種情報の表示、を各々行うことができる。また、操作入力検出部４６に対するユーザのタッチ操作による操作指示を常時把握できる。
【００３６】
次に、図３を参照して、画像形成装置１０のプログラムの構成を説明する。
【００３７】
本実施の形態に係る画像形成装置１０は、スキャナ制御部５０を制御するスキャナ機器制御プログラム７０Ａと、ネットワークＩ／Ｆ部６０を制御する通信機器制御プログラム７０Ｂと、給紙装置１３の記録用紙の搬送を制御する用紙搬送機器制御プログラム７０Ｃと、画像形成エンジン部１５による画像形成処理を制御する画像形成機器制御プログラム７０Ｄと、画像データをソフトウェア的に伸張又は圧縮する伸張／圧縮処理プログラム６８と、画像データをソフトウェア的に拡大又は縮小する拡大／縮小処理プログラム６９と、が備えられており、それぞれＨＤＤ５６に記憶されている。
【００３８】
また、本実施の形態に係る画像形成装置１０では、各々のプログラムにそれぞれ対応付けられた属性情報データが備えられており、ＨＤＤ５８に記憶されている。図４には、上述した各属性情報データのデータ構造の１例が示されている。
【００３９】
属性情報データ８０Ａには、スキャナ１１の原稿画像のサイズに応じた画像読み込みの処理時間が設定されている。属性情報データ８０Ｂには、ネットワークＩ／Ｆ部６０のタイムアウトするまでを時間が処理時間として設定されている。属性情報データ８０Ｃには、各給紙トレイ１３Ａから記録用紙が画像形成エンジン部１５へ搬送される搬送時間が記録用紙のサイズに応じて設定されている。属性情報データ８０Ｄには、記録用紙のサイズに応じた画像形成エンジン部１５の画像形成処理の処理時間が設定されている。属性情報データ８０Ｅには、画像データのサイズ毎に当該画像データを拡大又は縮小した拡大縮小率に応じた拡大／縮小処理プログラム６９の拡大処理、縮小処理の処理時間が設定されている。この属性情報データ８０Ｅには、拡大／縮小処理プログラム６９が処理対象となる画像データの読み込み及び書き込みの処理時間が必要なため、拡大縮小率が１倍であっても処理時間が定義されている。なお、主処理制御プログラム８４において拡大縮小率が１倍の場合に拡大／縮小処理プログラム６９をスルーして拡大縮小処理行わない場合は、拡大縮小処理の処理時間を全体での処理時間に含めない。一方、属性情報データ８０Ｆには、伸張／圧縮処理プログラム６８の画像データのサイズに応じた伸張処理、圧縮処理の処理時間が設定されている。
【００４０】
なお、属性情報データ８０Ｆに設定された圧縮処理、伸張処理の処理時間は、画像データにより示される画像の絵柄や文字の状態に応じて実際の処理時間が異なるため、伸張／圧縮処理プログラム６８が実際に圧縮処理、伸張処理を行った処理時間をＨＤＤ５６に一定回数分（例えば、１万回）記憶しておき、一定回数の処理時間の最大値を属性情報データ８０Ｆに設定している。
【００４１】
また、本実施の形態に係る画像形成装置１０では、各機器制御プログラム、伸張／圧縮処理プログラム６８及び拡大／縮小処理プログラム６９の各処理のうち並列処理可能な処理の組み合わせが予め定められて並列処理情報テーブル８２としてＨＤＤ５６に記憶されている。図５には、上述した並列処理情報テーブル８２のデータ構造の１例が示されている。
【００４２】
ここで、本実施の形態に係る画像形成装置１０では、ユーザが所定処理を行うために各機器制御プログラム、伸張／圧縮処理プログラム６８及び拡大／縮小処理プログラム６９の実行順序を定めた主処理制御プログラム８４を作成して登録することが可能となっており、登録された主処理制御プログラム８４はＨＤＤ５６に記憶される。この主処理制御プログラム８４は、例えば、スクリプト言語等のプログラム言語により記述されており、画像データを処理対象とする場合、当該画像データが記憶されている領域の情報（例えば、画像データのファイルパス情報）が記述されている。また、スキャナ１１から原稿画像を読み込む場合は、解像度がスキャナ機器制御プログラム７０Ａの処理条件として設定されている。また、主処理制御プログラム８４には、画像データを記録用紙にプリントする場合は、記録用紙のサイズが用紙搬送機器制御プログラム７０Ｃや画像形成機器制御プログラム７０Ｄの処理条件として設定されている。また、画像データを圧縮処理あるいは伸張処理する場合は、圧縮するか伸張するかが伸張／圧縮処理プログラム６８の処理条件として設定されており、画像データを拡大あるいは縮小する場合は、変更する画像のサイズが拡大／縮小処理プログラム６９の処理条件として設定される。なお、以降、主処理制御プログラム８４から実行される各機器制御プログラム、伸張／圧縮処理プログラム６８及び拡大／縮小処理プログラム６９を特に区別しない場合、副処理プログラムいう。
【００４３】
次に、本実施の形態の係る画像形成装置１０において主処理制御プログラム８４を実行する際の動作を簡単に説明する。
【００４４】
画像形成装置１０は、ユーザによる所定操作による主処理制御プログラム８４の実行が指示されると、主処理制御プログラム８４に対して後述する処理順序適正化処理が実行される。処理順序適正化処理では、主処理制御プログラム８４から呼び出される各副処理プログラムの処理時間を求め、当該主処理制御プログラム８４の全体での処理時間を算出する。そして、処理順序適正化処理は、算出された全体の処理時間が所定の処理時間（例えば、１０秒）以上の場合に、副処理プログラムを実行する順序の変更を行う。なお、この所定の処理時間は予め定めておいてもよい。また、主処理制御プログラム８４毎に所定の処理時間を定めるようにしてもよい。
【００４５】
次に、図６を参照しつつ、本実施の形態の係る処理順序適正化処理を実行する際の作用を説明する。なお、図４は、ＣＰＵ４０によって実行される処理順序適正化処理プログラムの流れを示すフローチャ−トであり、当該プログラムは、ＲＯＭ４２の所定の領域に予め記憶されている。
【００４６】
同図のステップ１００では、実行が指示された主処理制御プログラム８４を読み込み、主処理制御プログラム８４を解析して主処理制御プログラム８４から実行される副処理プログラム、及びその副処理プログラムを実行する際に指定された条件を特定する。
【００４７】
次のステップ１０１では、主処理制御プログラム８４の処理対象がＨＤＤ５８やネットワーク２０を介して接続された端末装置２２に記憶されている画像データである場合、当該画像データにアクセスし、当該画像データのサイズ情報を取得する。また、主処理制御プログラム８４の処理対象がスキャナ１１から読み込んだ原稿画像である場合、スキャナ１１から原稿画像のサイズを取得し、スキャナ機器制御プログラム７０Ａの処理条件として設定されている解像度から、原稿画像を読み込んだ際の画像データのサイズ情報を算出する。
【００４８】
また、主処理制御プログラム８４から伸張／圧縮処理プログラム６８、拡大／縮小処理プログラム６９が実行されている場合は、伸張／圧縮処理プログラム６８、拡大／縮小処理プログラム６９の処理条件から主処理制御プログラム８４で定められた処理順序で処理を行った際の各処理での画像データのサイズ情報の変化を予測する。
【００４９】
さらに、主処理制御プログラム８４から画像データをプリントするために用紙搬送機器制御プログラム７０Ｃや画像形成機器制御プログラム７０Ｄが実行されている場合は、用紙搬送機器制御プログラム７０Ｃや画像形成機器制御プログラム７０Ｄの処理条件として設定された記録用紙のサイズを取得し、当該サイズの記録用紙が搭載された給紙トレイ１３Ａを特定する。
【００５０】
次のステップ１０２では、各副処理プログラムの属性情報データから処理対象の画像データのサイズ情報及び処理条件に応じた処理時間を読み込む。次のステップ１０４では、主処理制御プログラム８４における各副処理プログラムを用いて各機器を制御した際の全体の処理時間を算出する。
【００５１】
次のステップ１０６では、算出した全体の処理時間が上述した所定の処理時間以内であるか否かを判定し、肯定判定の場合はステップ１１０へ移行し、否定判定の場合はステップ１０８へ移行する。次のステップ１０８では、ＨＤＤ５６から並列処理情報テーブル８２を読み出す。そして、主処理制御プログラム８４から実行される各副処理プログラムの処理が、その副処理プログラムが実行される直前に実行される副処理プログラムの処理と並列処理が可能である否かを判定し、肯定判定の場合はステップ１１２へ移行し、否定判定の場合はステップ１１０へ移行する。ステップ１１０では、主処理制御プログラム８４で指定された順に各副処理プログラムを実行して処理終了となる。
【００５２】
一方、ステップ１１２では、並列処理が可能な処理が存在するため、図７に示される処理順序変更処理を実行する。
【００５３】
次に、図７を参照しつつ、本実施の形態の係る処理順序変更処理を実行する際の作用を説明する。なお、図７は、ＣＰＵ４０によって実行される処理順序変更処理プログラムの流れを示すフローチャ−トであり、当該プログラムは、ＲＯＭ４２の所定の領域に予め記憶されている。
【００５４】
図７のステップ１５０では、主処理制御プログラム８４における処理順に副処理プログラムを実行する回数をカウントして副処理プログラム実行回数Ｍを求める。ここで、図８は、主処理制御プログラム８４が実行される際の全体の処理時間と各副処理プログラムの処理時間の１例を示している。なお、図８では、主処理制御プログラム８４において副処理プログラムが実行される処理順に副処理プログラムの処理に擬似的に番号を付している。図８のＡでは、主処理制御プログラム８４が４回副処理プログラムを実行しているため、副処理プログラム実行回数Ｍ＝４となる。次のステップ１５２では、変数ｍに副処理プログラム実行回数Ｍをセット（ｍ＝Ｍ）し、変数ｎに初期値１をセット（ｎ＝１）する。
【００５５】
次のステップ１５４では、ＨＤＤ５６から読み込んだ並列処理情報テーブル８２に基づいてｍ番目の副処理プログラムの処理とｍ−ｎ番目の副処理プログラムの処理との並列処理が可能であるか否かを判別し、肯定判定の場合はステップ１５６へ移行し、否定判定の場合はステップ１６０へ移行する。なお、ステップ１５６では、ｍ番目の副処理プログラムの処理がｍ＋１番目以降の副処理プログラムの処理と既に並列処理に変更されている場合、ｍ番目の副処理プログラムの処理とｍ−ｎ番目の副処理プログラムの処理とが並列処理可能であるか否かと共に、ｍ番目の副処理プログラムの処理と既に並列処理に変更されているｍ＋１番目以降の副処理プログラムの処理もｍ−ｎ番目の副処理プログラムの処理との並列処理が可能であるか否か判別し、共に並列処理が可能である場合に肯定判定となり、何れかで並列処理が不可の場合に否定判定となる。例えば、図８のＢに示されるように３番目と４番目の副処理プログラムの処理が既に並列処理に変更されている場合、３番目の副処理プログラムの処理が２番目の副処理プログラムの処理を並列処理が可能であるかを判別すると共に４番目の副処理プログラムの処理が２番目の副処理プログラムの処理を並列処理が可能であるか判別する。
【００５６】
ステップ１５６では、並列処理が可能であるため、ｍ番目の副処理プログラムの処理の処理時間とｍ−１番目からｍ−ｎ番目までの副処理プログラムの処理の処理時間とを比較してｍ番目の副処理プログラムの処理の処理時間の方が長いか否かを判定し、肯定判定の場合はステップ１６２へ移行し、否定判定の場合はステップ１５８へ移行する。ステップ１５８では、ｎをカウントアップしてステップ１５４へ移行する。すなわち、例えば、図８のＤに示されるように、３番目の副処理プログラムの処理を２番目の副処理プログラムの処理とを並列処理する場合、２番目の副処理プログラムの処理の処理時間の方が短いため、再度、ステップ１５４へ移行する。そして、３番目の副処理プログラムの処理が１番目の副処理プログラムの処理とを並列処理ができるか否かを判定する（ステップ１５４の処理）。肯定判定の場合は、後述するステップ１６２において、図８のＥに示すように、３番目の副処理プログラムの処理を２番目及び１番目の副処理プログラムの処理が並列処理となる。
【００５７】
一方、ステップ１６０では、ｎ＝１であるか否かを判別し、肯定判定の場合はステップ１６４へ移行し、否定判定の場合はステップ１６２へ移行する。これは、ｎ＝１の場合、ステップ１５４においてｍ番目の副処理プログラムの処理がｍ−１番目の副処理プログラムの処理と並列処理ができないと判定できるためである。
【００５８】
一方、ステップ１６２では、ｍ番目の副処理プログラムの処理をｍ−ｎ番目からｍ−１番目までの副処理プログラムの処理と並列可能なように処理順序を変更する。次のステップ１６４では、変数ｍを１デクリメント（ｍ＝ｍ−１）し、変数ｎを初期化（ｎ＝１）する。
【００５９】
次のステップ１６６では、変数ｍ＝１となったか否かを判定しており、否定判定の場合はステップ１５４へ移行してｍ番目の副処理プログラムの処理に対する処理を継続し、肯定判定の場合はリターンへ移行する。処理順序変更処理ではリターンへ移行すると図６のステップ１１４へ移行する。
【００６０】
図６のステップ１１４では、上述した処理順序変更処理により変更した処理順序で主処理制御プログラム８４を実行する。
【００６１】
このように第１の実施の形態に係る画像形成装置１０は、処理順序適正化処理により主処理制御プログラム８４から実行される各副処理プログラムの処理の処理時間を属性情報データに定められた性能情報に基づいて予測し、並列処理が可能な副処理プログラムの処理を並列処理が行われるように処理の順序を変更して適正化するため、全体の処理時間を短縮することができる。よって、ユーザは機種毎に各副処理プログラムの処理の処理時間を考慮して個別に主処理制御プログラム８４を作成する必要がなく、各副処理プログラムが異なる画像形成装置１０であっても同一の主処理制御プログラム８４を用いて円滑に所定処理を行うことができ、主処理制御プログラム８４の再利用性を高めることもできる。
【００６２】
以上のように第１の実施の形態に係る画像形成装置１０では、主処理手段（ここでは、主処理制御プログラム８４）は、各々予め定められた処理を実行する複数の副処理手段（ここでは、副処理プログラム）を所定の処理順序で用いて所定処理を行っており、各々前記副処理手段に関する固有の情報を示す属性情報が記憶手段（ここでは、ＨＤＤ５６）に記憶され、適正化手段（ここでは、ＣＰＵ４０）は、記憶された前記属性情報に基づいて前記主処理手段により行われる前記所定処理が適正化するので、主処理手段や副処理手段を異なる機種の情報処理装置間で共用して円滑に所定処理を行うことができる。
【００６３】
また、前記属性情報を、前記副処理手段の処理性能を示す処理性能情報とし、前記適正化手段は、前記処理性能情報を用いて前記所定処理の処理時間に関する適正化を行っているので、異なる機種の情報処理装置間においても処理時間を適正化できるため、主処理手段の再利用性を高めることもできる。
【００６４】
さらに、前記記憶手段は、並列処理が可能な前記副処理手段の組み合わせを示す並列処理情報（並列処理情報テーブル８２）をさらに記憶し、前記適正化手段は、前記主処理手段により行われる前記所定処理で用いられる前記複数の副処理手段に対応する前記処理性能情報に基づいて当該所定処理の処理時間を算出し、算出した前記所定処理の処理時間が所定時間よりも長い場合に、前記並列処理情報に基づいて前記所定処理で用いられる前記副処理手段の処理の何れかを並列処理に変更することにより前記最適化を行っているので、主処理手段の処理時間を短縮でき、処理時間を所定時間以内に抑えることができる。
【００６５】
なお、第１の実施の形態では、並列処理に変更した場合にプログラムの処理の開始時期を共通とした場合について説明したが、本発明はこれに限定されるものではなく、処理順序を変更する際に、並列に行われる処理の終了時期を同じとしてもよい、あるいは、開始時期を同じとするか終了時期を同じとするか設定を処理毎に並列処理情報テーブル８２に設定してもよい。
【００６６】
また、第１の実施の形態では、処理順序変更処理により並列処理可能な処理を全て並列に処理とする場合について説明したが、本発明はこれに限定されるものではなく、全体の処理時間が所定の処理時間以内となるまで並列可能な処理を並列処理に変更するようにしてもよい。
【００６７】
（第２の実施の形態）
次に、第２の実施の形態について説明する。第２の実施の形態の特徴は、主処理制御プログラムに予め定めたアクセスコード（置換コード）を記述し、また、各副処理プログラムの属性情報データにアクセスコードに対応させて当該副処理プログラムの固有の処理を記憶させておき、主処理制御プログラムを実行した際に主処理制御プログラムに記述されたアクセスコードを属性情報データに記憶された副処理プログラムの固有の処理と置換する点にある。
【００６８】
第２の実施の形態に係る画像形成装置１０の構成及び電気系の要部構成は、第１の実施の形態の図１及び図２と同様であるため説明を省略する。
【００６９】
図９に示すように、ユーザは、主処理制御プログラム８４の各副処理プログラムの固有の処理とする部分に予め定めたアクセスコード（図９の「＃１」〜「＃５」）を記述しておく。また、図１０に示すように、主処理制御プログラム８４から呼び出される各副処理プログラムの属性情報データにアクセスコードに対応した固有の処理を含んでいる。
【００７０】
第２の実施の形態に係る画像形成装置１０は、主処理制御プログラム８４を実行する際に後述する置換処理を行って主処理制御プログラム８４に記述されたアクセスコードを抽出し、アクセスコードに対応する固有の処理を各副処理プログラムの属性情報データから読み込み、アクセスコードと副処理プログラムの固有の処理とを置き換えて主処理制御プログラム８４を実行する。
【００７１】
次に、図１１を参照しつつ、本実施の形態の係る置換処理を実行する際の作用を説明する。なお、図１１は、ＣＰＵ４０によって実行される置換処理プログラムの流れを示すフローチャ−トであり、当該プログラムは、ＲＯＭ４２の所定の領域に予め記憶されている。
【００７２】
同図のステップ２００では、主処理制御プログラム８４を読み込む。次のステップ２０２では、読み込んだ主処理制御プログラム８４に記述されたアクセスコードを特定する。次のステップ２０４では、各副処理プログラムの属性情報データからアクセスコードに対応する固有の処理を抽出する。次のステップ２０６では、各アクセスコードと抽出した固有の処理とを置き換える。次のステップ２０８では、各副処理プログラムに固有の処理を挿入した主処理制御プログラム８４を実行して処理終了となる。
【００７３】
このように第２の実施の形態に係る画像形成装置１０によれば、各副処理プログラムの固有の処理として、例えば、副処理プログラムでの異常処理が発生した際の復旧処理や、また、異常処理が発生した際の当該副処理プログラム固有のメッセージなどの副処理プログラムを用いる際の制御情報を主処理制御プログラム８４側に予め記述しておく必要がなくなる。よって、ユーザは機種毎に固有の処理を記述した主処理制御プログラム８４を作成する必要がなく、同一の主処理制御プログラム８４を用いることができる。
【００７４】
以上のように第２の実施の形態に係る画像形成装置１０では、前記主処理手段（ここでは、主処理制御プログラム８４）は、当該主処理手段が前記副処理手段を用いる際の制御情報を副処理手段に対応させて置換するための置換コードが予め含まれたものとし、前記属性情報を、対応する前記副処理手段の前記制御情報と前記置換コードとを対応付けた情報とし、前記適正化手段は、前記主処理手段に含まれる前記置換コードを当該置換コードに対応する前記副処理手段の前記制御情報に置換することにより前記適正化を行っているので、主処理制御プログラム８４の再利用性を高めることができる。
【００７５】
なお、本実施の形態では、アクセスコードと属性情報データに記憶された固有の処理とを置換する場合について説明したが、本発明はこれに限定されるものではなく、主処理制御プログラム８４がアクセスコードを引数に設定して副処理プログラムの処理を呼び出し、副処理プログラム側で引数に設定されたアクセスコードに応じた固有の情報（例えば、表示メッセージ等）を主処理制御プログラム８４へ渡し、主処理制御プログラム８４側で固有の情報に基づいて固有の処理を行うようにすることもできる。この場合も、本実施の形態と同様の効果を奏することができる。
【００７６】
（第３の実施の形態）
次に、第３の実施の形態について説明する。第３の実施の形態の特徴は、例えば、主処理制御プログラムを新しいバージョンに更新（バージョンアップ）する場合に主処理制御プログラムで用いられている各副処理プログラムを適正なバージョンに更新した後に主処理制御プログラムを更新する点にある。
【００７７】
第３の実施の形態に係る画像形成装置１０の構成及び電気系の要部構成は、第１の実施の形態の図１及び図２と同様であるため説明を省略する。
【００７８】
図１２に示すように、第３の実施の形態に係る主処理制御プログラム８４は、属性情報データ８０Ｉと対応付けられており、主処理制御プログラム８４及び各副処理プログラムの属性情報データは、バージョン番号を含んでいる。なお、図１２では、副処理プログラムの例として伸張／圧縮処理プログラム６８のみを記載している。このバージン番号は値が大きいほどより新しく、機能的に改定されていることを示している。また、第３の実施の形態に係る画像形成装置１０では、複数のルーチンを備えた共通プログラム８６Ａと共通プログラム８６ＢとがＨＤＤ５８に記憶されている。この共通プログラム８６Ａ、８６Ｂは属性情報データ８０Ｇ、８０Ｈと対応付けられており、属性情報データ８０Ｇ、８０Ｈにはバージョン番号が含まれている。
【００７９】
主処理制御プログラム８４は、伸張／圧縮処理プログラム６８を実行して所定処理を行っている。伸張／圧縮処理プログラム６８は、その処理において共通プログラム８６Ａを実行している。共通プログラム８６Ａはその処理においてさらに共通プログラム８６Ｂを実行している。また、共通プログラム８６Ｂはその処理において共通プログラム８６Ａをさらに実行している。すなわち、本実施の形態では、プログラムが他のプログラムから呼び出される場合は他のプログラムに対して副処理プログラムとなり、他のプログラムを呼び出す場合は主処理処理プログラムとなるという階層構造が形成されている。
【００８０】
ここで、第３の実施の形態に係る画像形成装置１０の主処理制御プログラム８４、各副処理プログラム及び共通プログラム８６Ａ、８６Ｂには、後述するプログラム更新処理のルーチン（所謂、メソッド）が含まれている。なお、以降、主処理制御プログラム８４、各副処理プログラム及び共通プログラム８６Ａ、８６Ｂを特に区別しない場合、単にプログラムという。
【００８１】
また、第３の実施の形態では、画像形成装置１０の新しいバージョンのプログラム及び属性情報データ一式と後述する更新バージョン定義ファイル８８がネットワーク２０を介して接続された外部の図示しないサーバーコンピュータの記憶装置に記憶されている。画像形成装置１０は、ユーザによって所定操作が行われるとサーバーコンピュータにアクセスし、サーバーコンピュータの記憶装置に記憶された新しいバージョンのプログラム及び属性情報データ一式と更新バージョン定義ファイル８８とをネットワークＩ／Ｆ部６０を介してダウンロードしてＨＤＤ５６のプログラムが記憶されている領域と異なる所定領域に記憶する。そして、ユーザによりＨＤＤ５６の所定領域に記憶された新しいプログラム一式に含まれる更新制御プログラム８９（所謂、インストーラ）が実行されると、更新制御プログラム８９から主処理制御プログラム８４の後述するプログラム更新処理のルーチンが実行される。このプログラム更新処理のルーチンは引数を有しており、プログラム更新処理のルーチンを呼び出す際に引数として呼び出し元のプログラム名を設定する。なお、プログラムにおいてプログラム更新処理のルーチンが実行される際、当該プログラムはＨＤＤ５６から読み出されＲＡＭ４８に記憶されてＣＰＵ４０により実行される。
【００８２】
次に、図１３を参照しつつ、本実施の形態の係るプログラム更新処理のルーチンを実行する際の作用を説明する。なお、図１３は、ＣＰＵ４０によって実行されるプログラム更新処理の流れを示すフローチャ−トである。
【００８３】
同図のステップ３００では、引数に設定されている呼び出し元のプログラム名を記憶する。次のステップ３０２では、呼び出し元プログラム名に当該プログラム更新処理のルーチンを実行しているプログラム自身のプログラム名が存在するか否かを判定し、否定判定の場合はステップ３０４へ移行し、肯定判定の場合はステップ３２４へ移行する。これは、プログラム更新処理では、後述する３１２において本プログラムが使用している他のプログラムのプログラム更新処理を呼び出しており、他のプログラムから再度本プログラムのプログラム更新処理が実行された場合に循環が発生したことを検出するためである。例えば、図１２に示す共通プログラム８６Ａが引数に共通プログラム８６Ａのプログラム名を設定して共通プログラム８６Ｂのプログラム更新処理を呼び出す（後述するステップ３１２）。そして、共通プログラムＡは、共通プログラム８６Ｂのプログラム更新処理の終了待ちとなる（後述するステップ３１４）。ここで、共通プログラム８６Ｂは、共通プログラム８６Ａを使用してたとすると、共通プログラム８６Ｂが引数に共通プログラム８６Ｂと共に共通プログラム８６Ａのプログラム名を設定して共通プログラム８６Ａのプログラム更新処理を呼び出す。このとき、共通プログラム８６Ａでは、再度プログラム更新処理が実行されるが、引数に共通プログラム８６Ａのプログラム名が存在することから循環が発生したことを検出することができる。
【００８４】
ステップ３０４では、ＨＤＤ５６の所定領域に記憶された更新バージョン定義ファイル８８を読み込む。ここで、図１５には、ＨＤＤ５６の所定領域に記憶された更新バージョン定義ファイル８８のデータ構造の１例が示されている。この更新バージョン定義ファイル８８は、図１５に示されるように、更新するプログラムの更新バージョン番号を含んでいる。また、更新バージョン定義ファイル８８は、更新するプログラムで使用しているプログラム名とバージョン番号とを含んでいる。なお、このバージョン番号は、更新するプログラムを正常に動作させるために、使用しているプログラムでの求められるバージョン番号となっている。
【００８５】
次のステップ３０６では、ＨＤＤ５６に記憶された当該プログラム更新処理のルーチンを実行しているプログラム自身の属性情報データと読み込む。
【００８６】
次のステップ３０８では、プログラム自身の更新バージョン定義ファイル８８に示された更新バージョン番号が属性情報データに示されたバージョン番号よりもバージョン番号が新しいか否かを判定し、肯定判定の場合は、プログラム自身の更新が必要であるため、ステップ３１０へ移行し、否定判定の場合はステップ３２４へ移行する。
【００８７】
ステップ３１０では、更新バージョン定義ファイル８８に使用しているプログラムが存在するか否かを判定し、肯定判定の場合はステップ３１２へ移行し、否定判定の場合はステップ３１８へ移行する。ステップ３１２では、ステップ３００で記憶した呼び出し元のプログラム名とプログラム自身のプログラム名を引数に設定して使用している全てのプログラムのプログラム更新処理を呼び出す。これにより、使用している全てのプログラムでプログラム更新処理が実行される。
【００８８】
次のステップ３１４では、全ての使用しているプログラムでプログラム更新処理が終了したか否かを判定し、肯定判定の場合はステップ３１６へ移行し、否定判定の場合は再度ステップ３１４へ移行する。
【００８９】
ステップ３１６では、各使用しているプログラムのプログラム更新処理の復帰値に基づいて、全ての使用しているプログラムでプログラム更新処理が正常に終了したか否かを判定し、肯定判定の場合はステップ３１８へ移行し、否定判定の場合はステップ３２６へ移行する。ステップ３１８では、ＨＤＤ５６に記憶されているプログラム自身及び当該プログラム自身に対応する属性情報データの電子化ファイルを他の所定領域に移動して退避させる。次のステップ３２０では、ステップ３１８におけるプログラム自身及び当該プログラム自身に対応する属性情報データの電子化ファイルの移動前の領域にプログラム自身当該プログラム自身に対応する属性情報データの新しいバージョンの電子化ファイルを記憶させる。
【００９０】
次のステップ３２２では、移動前の領域への新しいバージョンの電子化ファイルの記憶が正常に終了したか否かを判定しており、肯定判定の場合はステップ３２４へ移行し、否定判定の場合はステップ３２６へ移行する。ステップ３２４では、プログラム更新処理の復帰値に正常終了したことを示す値を設定して処理終了となる。
【００９１】
一方、ステップ３２６では、ステップ３１６あるいはステップ３２２において更新が正常に行えなかったため、ステップ３１２で使用しているプログラムのうち正常に処理が終了したプログラムに対して、ステップ３００で記憶した呼び出し元のプログラム名とプログラム自身のプログラム名を引数に設定してプログラム更新中止処理のルーチンを実行する。
【００９２】
次に、図１４を参照しつつ、本実施の形態の係るプログラム更新中止処理のルーチンを実行する際の作用を説明する。なお、図１４は、ＣＰＵ４０によって実行されるプログラム更新中止処理の流れを示すフローチャ−トである。
【００９３】
同図のステップ３５０では、引数に設定されている呼び出し元のプログラム名を記憶する。次のステップ３５２では、呼び出し元プログラム名に当該プログラム更新中止処理のルーチンを実行しているプログラム自身のプログラム名が存在するか否かを判定し、否定判定の場合はリターンへ移行し、肯定判定の場合はステップ３５４へ移行する。これは、上述したステップ３０２と同様に当該プログラム更新中止処理が循環して実行されることを検出するためである。
【００９４】
ステップ３５４では、ＨＤＤ５６の所定領域に記憶された更新バージョン定義ファイル８８を読み込む。次のステップ３５６では、更新バージョン定義ファイル８８から更新中止処理のルーチンを実行しているプログラム自身が使用している全てのプログラムを特定する。そして、ステップ３５０で記憶した呼び出し元のプログラム名とプログラム自身のプログラム名を引数に設定して特定したプログラムのプログラム更新中止処理のルーチンを実行する。次のステップ３５８では、全ての使用しているプログラムでプログラム更新中止処理が終了したか否かを判定し、肯定判定の場合はステップ３６０へ移行し、否定判定の場合は再度ステップ３５８へ移行する。
【００９５】
ステップ３６０では、ＨＤＤ５６の他の所定領域に記憶されている退避させた更新前のプログラム自身及び当該プログラム自身に対応する属性情報データの電子化ファイルを新しいバージョンの電子化ファイルに上書きして記憶させ、リターンへ移行する。これにより、プログラム自身の更新前の状態に戻すことができる。プログラム更新中止処理はリターンとなる図１３に示すプログラム更新処理のステップ３２８へ移行する。
【００９６】
図１３のステップ３２８では、全てのプログラム更新中止処理が終了したか否かを判定し、肯定判定の場合はステップ３３０へ移行し、否定判定の場合は再度ステップ３２８へ移行する。
【００９７】
次のステップ３３０では、ＨＤＤ５６の他の所定領域に記憶されているプログラム更新処理を実行しているプログラム自身及び当該プログラム自身に対応する属性情報データの更新前の電子化ファイルをステップ３２０で記憶させた新しいバージョンの電子化ファイルに上書きして記憶させる。
【００９８】
次のステップ３３４では、プログラム更新処理の復帰値に正常終了しなかったことを示す値を設定して処理終了となる。
【００９９】
更新制御プログラム８９は、主処理制御プログラム８４のプログラム更新処理が終了すると復帰値を受け取り、復帰値が正常終了しなかったことを示す値である場合、ディスプレイ１４にバージョンの更新が失敗した旨のメッセージを表示し、復帰値が正常終了したことを示す値である場合、ディスプレイ１４にバージョンの更新が成功した旨のメッセージを表示する。そして、更新制御プログラム８９は、プログラム更新処理のステップ３１８でＨＤＤ５６の他の所定領域に移動させて退避させていた電子化ファイルを全て削除する。
【０１００】
このように第３の実施の形態に係る画像形成装置１０は、階層構造を形成している各プログラムがプログラム自身をバージョンアップする際に、使用しているプログラムのバージョンが適正なバージョンであるを判断し、使用しているプログラムが適正なバージョンである場合に、プログラム自身をバージョンアップしているので、バージョンの不整合による異常の発生を防止することができる。これにより、バージョンの不整合による異常の発生が防止できるため、主処理制御プログラム８４、各副処理プログラム及び共通プログラム８６Ａ、８６Ｂの連携による所定処理を円滑に行わせることができる。
【０１０１】
以上のように第３の実施の形態に係る画像形成装置１０では、取得手段（ここでは、更新制御プログラム８９）は、前記主処理手段に対する機能的に改定されたバージョンへの更新の要求指示を取得し、更新情報取得手段（ここでは、ネットワークＩ／Ｆ部６０）は、前記主処理手段及び前記副処理手段の更新後のバージョンを示す更新バージョン情報を取得する。また、前記属性情報を、前記副処理手段の現在のバージョンを示すバージョン情報とし、前記記憶手段は、前記主処理手段の現在のバージョンを示すバージョン情報をさらに記憶している。そして、適正化手段は、前記取得手段により前記要求指示が取得されたときに、前記主処理手段により用いられる前記副処理手段の現在のバージョンが前記更新バージョン情報により示されるバージョン未満である副処理手段が存在する場合に、当該副処理手段の現在のバージョンを前記更新バージョン情報により示される更新後のバージョン以上となるように当該副処理手段に対してバージョンアップを要求し、これにより各前記副処理手段のバージョンが更新バージョン情報に示されたバージョン以上となったときに、前記主処理手段をバージョンアップしているので、階層構造とされた処理手段（プログラム）のバージョンアップの処理を円滑に行うことができる。
【０１０２】
なお、第３の実施の形態では、引数や復帰値を用いて呼び出し元のプログラム名の情報や正常終了、異常終了の情報をプログラム間で交換した場合について説明したが、本発明はこれに限定されるものではなく、例えば、プロパティを用いて情報を交換するようにしてもよく、また、情報を電子化ファイルとして記憶させ、プログラムで電子化ファイルの情報を読み込むことで情報を交換することもできる。この場合も、本実施の形態と同様の効果を奏することができる。
【０１０３】
（第４の実施の形態）
次に、第４の実施の形態について説明する。第４の実施の形態の特徴は、副処理プログラムの属性情報データに制御コードを記述できるようにして副処理プログラムに新たな機能（処理）を追加できるようにした点にある。
【０１０４】
第４の実施の形態に係る画像形成装置１０の構成及び電気系の要部構成は、第１の実施の形態の図１及び図２と同様であるため説明を省略する。
【０１０５】
図１６（Ａ）に示すように、第４の実施の形態に係る伸張／圧縮処理プログラム６８は、所定の圧縮方式（本実施の形態では、ＭＨ圧縮とＪＰＥＧ圧縮）での圧縮処理をソフトウェアで行っている。伸張／圧縮処理プログラム６８に対応した属性情報データには、圧縮機能として処理可能な圧縮方式がコードと対応付けられて設定されており、さらに圧縮方式毎の処理時間がコードに対応付けられて設定されている。
【０１０６】
一方、第４の実施の形態に係る画像形成装置１０は、ＨＤＤ５６に圧縮条件指定プログラム９０が記憶されている。この圧縮条件指定プログラム９０は、ＨＤＤ５６に記憶した画像データの圧縮を制御するプログラムとなっている。圧縮条件指定プログラム９０は、ＣＰＵ４０によって実行されると、属性情報データの圧縮機能として示された圧縮方式を読み取り、ディスプレイ制御部４４を制御して圧縮可能な圧縮方式をディスプレイ１４に表示する制御を行う。また、圧縮条件指定プログラム９０は、ユーザによりディスプレイ１４に表示した何れかの圧縮方式が選択されると、選択された圧縮方式に対応する属性情報データに記述された圧縮方式を示すコードを引数に設定して伸張／圧縮処理プログラム６８を呼び出す。伸張／圧縮処理プログラム６８は、属性情報データに記述された圧縮方式を示すコードを引数に設定して呼び出されると、ＨＤＤに記憶された画像データを読み込み、引数に設定されたコードに対応した圧縮方式で画像データの圧縮処理を行う。
【０１０７】
ここで、第４の実施の形態では、副処理プログラム（第４の実施の形態では、伸張／圧縮処理プログラム６８）を更新する更新制御プログラム８９及び後述する追加制御コード情報９２がネットワーク２０を介して接続された外部の図示しないサーバーコンピュータの記憶装置に記憶されている。画像形成装置１０は、ユーザによって所定操作が行われるとサーバーコンピュータにアクセスし、サーバーコンピュータの記憶装置に記憶された更新制御プログラム８９及び後述する追加制御コード情報９２をダウンロードしてＨＤＤ５６の所定領域に記憶する。そして、ユーザによりＨＤＤ５６の所定領域に記憶された更新制御プログラム８９が実行されると、更新制御プログラム８９が実行される。
【０１０８】
更新制御プログラム８９は、各副処理プログラムの属性情報データに、例えば、スクリプト言語等により記述された新たな圧縮方式の制御コードを追加する。また、追加した制御コードの圧縮方式を新たなコードに対応付けて圧縮機能に追加し、圧縮方式毎の処理時間を追加する。
【０１０９】
次に、図１７を参照しつつ、第４の実施の形態の係る更新制御プログラム８９のプログラム更新処理を実行する際の作用を説明する。なお、図１７は、ＣＰＵ４０によって実行されるプログラム更新処理の流れを示すフローチャ−トである。
【０１１０】
同図のステップ４００では、ＨＤＤ５６の所定領域に記憶された追加制御コード情報９２を読み込む。ここで、この追加制御コード情報９２には、追加処理を行う副処理プログラム名、追加処理を行う制御コード、機能名、処理時間等の情報が定められている。次のステップ４０２では、追加制御コード情報９２に定められた追加処理を行う副処理プログラムの属性情報データをＨＤＤ５６から読み込む。次のステップ４０４では、読み込んだ属性情報データに追加制御コード情報９２で定められた制御コード、機能名、処理時間等の追加を行う。図１６（Ｂ）には、伸張／圧縮処理プログラム６８の属性情報データに対して追加を行った結果の１例が示されている。
【０１１１】
次に、図１８を参照しつつ、第４の実施の形態の係る圧縮条件指定プログラム９０による圧縮条件指定処理を実行する際の作用を説明する。なお、図１８は、ＣＰＵ４０によって実行される圧縮条件指定処理の流れを示すフローチャ−トである。
【０１１２】
同図のステップ４５０では、伸張／圧縮処理プログラム６８に対応した属性情報データを読み込む。次のステップ４５２では、読み込んだ属性情報データの圧縮機能に示された機能名を読み出して、ディスプレイ１４に表示する。次のステップ４５４では、ユーザにより圧縮方式が指定されたか否かを判定し、肯定判定の場合はステップ４５６へ移行し、否定判定の場合は再度ステップ４５４へ移行してユーザによる圧縮方式の指定待ちを行う。ステップ４５６では、指定された圧縮方式に対応するコートを伸張／圧縮処理プログラム６８の属性情報データから求めて、当該コードを引数に設定し、伸張／圧縮処理プログラム６８の呼び出して処理終了となる。
【０１１３】
次に、図１９を参照しつつ、第４の実施の形態の係る設定し、伸張／圧縮処理プログラム６８による圧縮処理を実行する際の作用を説明する。なお、図１９は、ＣＰＵ４０によって実行される設定し、伸張／圧縮処理プログラム６８の流れを示すフローチャ−トである。
【０１１４】
同図のステップ５００では、引数として設定された値に対応する圧縮処理がロジックとして記述されているか否かを判定し、肯定判定の場合はステップ５０２へ移行し、否定判定の場合はステップ５０４へ移行する。すなわち、設定し、伸張／圧縮処理プログラム６８は、所定の圧縮方式のソフトウェアによって実現しているため、予め圧縮方式に応じたロジックが記述され、予め処理可能な圧縮方式が定まっている。従って、引数に処理可能な圧縮方式以外の圧縮方式に対応する値が設定されている場合、否定判定となり、引数に処理可能な圧縮方式に対応する値が設定されている場合、肯定判定となる。
【０１１５】
ステップ５０２では、設定し、伸張／圧縮処理プログラム６８で予め対応している圧縮方式であるため、記述された圧縮ロジックでの画像データの圧縮処理を行って処理終了となる。
【０１１６】
一方、ステップ５０４では、設定し、伸張／圧縮処理プログラム６８で予め対応していない圧縮方式であるため、設定し、伸張／圧縮処理プログラム６８に対応した属性情報データを読み込む。次のステップ５０６では、設定された引数に対応する属性情報データに記述された制御コードの処理を実行して処理終了となる。これにより制御コードによる制御に従って新しい圧縮方式での圧縮を行うことができる。この制御コードは、例えば、スクリプト言語等の処理ロジックが記述可能な形式で記述することによって新しい圧縮方式での処理を行うこともでき、また、他の新たな副処理プログラムへの呼び出し他の副処理プログラムによって新しい圧縮処理を実行させることもできる。
【０１１７】
なお、属性情報データに圧縮方式毎の処理時間を追加しているため、当該処理時間に基づいて追加した圧縮処理に対しても第１の実施の形態に係る処理順序適正化処理を実行することもできる。
【０１１８】
このように第４の実施の形態に係る画像形成装置１０は、副処理プログラムの属性情報データに制御コードを追加し、副処理プログラムが属性情報データの追加された制御コードに基づく処理を実行できるようにしたことにより、副処理プログラムの新しい処理の追加が容易となる。
【０１１９】
以上のように第４の実施の形態に係る画像形成装置１０では、取得手段（ここでは、更新制御プログラム８９）は、前記副処理手段に対する新たな処理の追加の要求指示を取得し、前記記憶手段は、前記新たな処理の処理手順を示す情報又は前記新たな処理を行う他の副処理手段の呼出処理手順を示す情報をさらに記憶し、前記適正化手段は、前記取得手段により前記要求指示が取得されたときに、当該要求指示により新たな処理の追加が要求された前記副処理手段に対応する前記属性情報として当該新たな処理の処理手順を示す情報又は当該新たな処理を行う他の副処理手段の呼出処理手順を示す情報を記憶させることにより前記適正化を行い、前記副処理手段は、前記新たな処理を行う場合に当該副処理手段に対応する前記属性情報として記憶された前記新たな処理の処理手順を示す情報に基づく処理又は新たな処理を行う他の副処理手段の呼出処理手順を示す情報に基づく呼出処理を行うので、新たな処理を追加が容易となり、副処理プログラムの再利用性を高めることができる。
【０１２０】
なお、第１〜４の実施の形態では、主処理制御プログラム８４及び副処理プログラムが各々画像形成装置１０に記憶されている場合について説明したが、本発明はこれに限定されるものではなく、例えば、副処理プログラムが画像形成装置１０とネットワークを介して接続されたサーバーコンピュータ等の情報処理装置に記憶されており、当該主処理制御プログラム８４が情報処理装置に記憶された副処理プログラムをネットワークを介して呼び出して所定処理を実行する構成においても本発明を適用することができる。
【０１２１】
また、本実施の形態で説明した画像形成装置１０の構成（図１〜図２参照。）は、一例であり、本発明の主旨を逸脱しない範囲内において適宜変更可能であることは言うまでもない。
【０１２２】
また、第１〜第４実施の形態で説明した処理順序適正化処理、処理順序変更処理、置換処理、プログラム更新処理、プログラム更新中止処理、プログラム更新処理、圧縮条件指定処理、圧縮処理の流れ（図６、図７、図１１、図１３、図１４、図１７〜１９参照。）も一例であり、本発明の主旨を逸脱しない範囲内において適宜変更可能であることは言うまでもない。
【０１２３】
さらに、第１〜第４実施の形態で説明した属性情報データ（図４、図１０、図１２、図１６参照。）も一例であり、また、第３実施の形態で説明した更新バージョン定義ファイル（図１５）も一例であり、本発明の主旨を逸脱しない範囲内において適宜変更可能であることは言うまでもない。
【図面の簡単な説明】
【０１２４】
【図１】第１の実施の形態に係る画像形成装置の構成図である。
【図２】第１の実施の形態に係る画像形成装置の電気系の要部構成を示すブロック図である。
【図３】第１の実施の形態に係るプログラム構成の１例を示すブロック図である。
【図４】第１の実施の形態に係る属性データを示す図である。
【図５】第１の実施の形態に係る並列処理情報テーブルを示す図である。
【図６】第１の実施の形態に係る処理順序適正化処理の処理の流れを示すフローである。
【図７】第１の実施の形態に係る処理順序変更処理の処理の流れを示すフローである。
【図８】第１の実施の形態に係る主処理制御プログラムの全体の処理時間と各副処理プログラムの処理時間との１例を示す図である。
【図９】第２の実施の形態に係るプログラム構成の１例を示すブロック図である。
【図１０】第２の実施の形態に係る属性データを示す図である。
【図１１】第２の実施の形態に係る置換処理の処理の流れを示すフローである。
【図１２】第３の実施の形態に係るプログラム構成の１例を示すブロック図である。
【図１３】第３の実施の形態に係るプログラム更新処理の処理の流れを示すフローである。
【図１４】第３の実施の形態に係るプログラム更新中止処理の処理の流れを示すフローである。
【図１５】第３の実施の形態に係る属性データを示す図である。
【図１６】第４の実施の形態に係るプログラム構成の１例を示すブロック図である。
【図１７】実施の形態に係るプログラム更新処理の処理の流れを示すフローである。
【図１８】実施の形態に係る圧縮条件指定処理の処理の流れを示すフローである。
【図１９】実施の形態に係る圧縮処理の処理の流れを示すフローである。
【符号の説明】
【０１２５】
１０  画像形成装置
４０  ＣＰＵ
５６  ＨＤＤ
８２  並列処理情報テーブル
８４  主処理制御プログラム
８９  更新制御プログラム
【図１】
2006268575.tif 000003
【図２】
2006268575.tif 000004
【図３】
2006268575.tif 000005
【図４】
2006268575.tif 000006
【図５】
2006268575.tif 000007
【図６】
2006268575.tif 000008
【図７】
2006268575.tif 000009
【図８】
2006268575.tif 000010
【図９】
2006268575.tif 000011
【図１０】
2006268575.tif 000012
【図１１】
2006268575.tif 000013
【図１２】
2006268575.tif 000014
【図１３】
2006268575.tif 000015
【図１４】
2006268575.tif 000016
【図１５】
2006268575.tif 000017
【図１６】
2006268575.tif 000018
【図１７】
2006268575.tif 000019
【図１８】
2006268575.tif 000020
【図１９】
2006268575.tif 000021