(57)【要約】【課題】  システム起動時に優先して起動するように設定された優先アプリケーションによる機能が利用可能になるまでの時間を短縮する。【解決手段】  複合機１にインストールされた複数種類のアプリケーションプログラムを動作させるのに必要な複数のソフトウェアコンポーネントについて、ＨＤＤ３に、各ソフトウェアコンポーネント２０の起動順位に関する重み付き依存情報２３を保持し、起動部１１は、ＨＤＤ３に保持している各ソフトウェアコンポーネント２０の重み付き依存情報２３に基づいて各コンポーネントの起動順位を決定し、その決定した起動順位に従って各コンポーネントをそれぞれ起動する。【選択図】        図１
2011043932.tif 000002
【特許請求の範囲】
【請求項１】
複数のソフトウェアコンポーネントを有し、該各ソフトウェアコンポーネントを起動することによって各種の機能を実現する情報処理装置であって、
前記各ソフトウェアコンポーネントについて、それぞれ依存する下位のソフトウェアコンポーネントの起動順位に関する重み付き依存情報を保持する手段と、
前記保持している重み付き依存情報に基づいて前記各ソフトウェアコンポーネントの起動順位を決定する起動順位決定手段と、
前記決定した起動順位に従って前記各ソフトウェアコンポーネントをそれぞれ起動する起動手段とを備えたことを特徴とする情報処理装置。
【請求項２】
前記重み付き依存情報について、初期化に時間のかかる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他の下位のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも大きくすることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記重み付き依存情報について、ユーザ操作を実現するソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも大きくすることを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記重み付き依存情報について、起動しなくても上位のソフトウェアコンポーネントの基本機能を実現できる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも小さくすることを特徴とする請求項１記載の情報処理装置。
【請求項５】
前記下位のソフトウェアコンポーネントは、前記上位のソフトウェアコンポーネントの関連する付加機能として選択されるまでは起動しないようにしたことを特徴とする請求項４記載の情報処理装置。
【請求項６】
システム起動時に最初に起動するアプリケーションを設定する設定手段を設け、
前記起動順位決定手段は、前記各ソフトウェアコンポーネントの内、前記設定手段によって設定されたアプリケーションを動作させるために必要なソフトウェアコンポーネントを依存の起点とし、該依存の起点としたソフトウェアコンポーネントと依存する各ソフトウェアコンポーネントとについてそれぞれの重み付き依存情報に基づいて起動順位を決定し、前記起動手段は、前記依存の起点としたソフトウェアコンポーネントと依存する各ソフトウェアコンポーネントとを、その他のソフトウェアコンポーネントよりも先に起動するようにしたことを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記決定した起動順位を保存する保存手段を設け、前記起動手段は前記保存手段に保存された起動順位に従って前記各ソフトウェアコンポーネントをそれぞれ起動することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
コンポーネントのインストール，アンインストール，又はバージョンアップのタイミングで、前記保存手段に保存された起動順位を再決定して保存し直す手段を設けたことを特徴とする請求項７記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ファクシミリ装置，プリンタ，スキャナ，複写機，複合機等の画像形成装置，パーソナルコンピュータを含む情報処理装置に関する。
【背景技術】
【０００２】
情報処理装置においては、例えば、コピー，プリンタ，スキャナ，ファクシミリ（ＦＡＸ）などの多くの機能を備えたデジタル複合機は、汎用ＯＳ上にそれらの機能を実現するためのアプリケーションプログラム（「アプリ」と略称する）を動作させるのに必要なソフトウェアコンポーネントを搭載して構成されるため、システム起動に多くの時間を要する。
また、システム起動時に最初に起動するアプリを「優先アプリ」に設定すれば、その優先アプリで実現される機能を最初に表示することができ、その優先アプリを設定により変更することができるが、特に、主電源投入（主電源ＯＮ）から優先アプリの起動が完了するまでの時間はより短くすることが期待される。
【０００３】
従来、大容量記憶装置内に格納されたプログラムを主記憶に転送複写して起動するプログラム起動部を有するコンピュータシステムのプログラム起動方式において、大容量記憶装置内に、それぞれのプログラムの起動時に既に起動済でなければならない他のプログラムとの依存関係を示す起動順位設定情報を記憶し、プログラム起動部に、起動順位設定順に記述された依存関係に従ってプログラムを起動する起動手段を設け、プログラム起動時には起動手段が起動順位設定情報に記述された依存関係に従ってプログラムを起動することにより、コンピュータシステムの起動時間を最短にし、同時にシステム設計者の負担を軽くするようにした第１の情報処理装置（例えば、特許文献１参照）があった。
【０００４】
また、電子機器の起動が開始されると、ＲＯＭからユーザ操作に係わるコンポーネントのコンポーネント関係依存情報を読み出して、コンポーネント関係依存情報に関するコンポーネントを優先的に起動する。すなわち、ユーザ操作に係わる部分を優先的に起動するが、ＵＩ制御部は、ＵＩ管理部及びＵＩ要求受付部と依存関係があり、ＵＩ管理部が入力装置管理部及び出力装置管理部と依存関係があるので、まず、ＵＩ要求受付部，入力装置管理部，及び出力装置管理部の起動を開始し、ＵＩ要求受付部，入力装置管理部，及び出力装置管理部の全ての起動が完了したところでＵＩ管理部の起動を開始し、ＵＩ管理部の起動が終了したところで、ＵＩ制御部の起動を開始して、ＵＩ制御部の起動が終了したところで、ユーザ操作を可能にすることにより、プログラム起動時間を短縮すると共に、操作可能状態へ移行するまでの時間短縮を可能にした第２の情報処理装置（例えば、特許文献２参照）があった。
【０００５】
さらに、基本プログラム及び特定の機能を実現する機能プログラム（基本プログラム及びコピープログラム）を起動プログラムによって先に起動させ、特定の機能（コピー機能）が利用可能になった後、起動プログラムの動作開始から一定の時間が経過した場合に、未起動の機能プログラム（フォントプログラム及びプリンタプログラム）を起動させることにより、利用者が必要としている機能を提供するプログラムのみを先行して起動させ、利用者が必要としている機能を電源投入後すぐに利用できるようにすると共に、利用者が必要としている機能の起動に不要なプログラムが、利用者が必要としている機能を提供するプログラムの動作を邪魔しないことにより、見掛け上の起動時間を短くした第３の情報処理装置（例えば、特許文献３参照）があった。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した従来の第１の情報処理装置では、各コンポーネント間の依存関係を木構造の起動順位設定情報として保持し、木構造の末端（他のどのコンポーネントからも依存されないコンポーネント）から順に起動していくことで、最大限の並行処理を実現している。全てのコンポーネントの起動完了までに要する時間は最小化することができるが、コンポーネントの数が増大した場合に、特定の機能の起動時間は必ずしも早くならないし、木構造を解析する処理に要する時間が起動時間に影響を与え、起動時間が遅くなるという問題があった。
【０００７】
また、上述した従来の第２の情報処理装置では、ＵＩに関連するコンポーネントのみを先に起動することで、ユーザ操作可能になるまでの時間を短縮することはできるが、例えば、コピー機能においてスタートボタンを押下した時点では、ジョブ制御に関連するコンポーネントの起動が完了しておらず、ボタン押下からコピー開始までの時間は逆に遅くなる可能性があるという問題があった。なお、特定機能に関するコンポーネントのみのコンポーネント関係依存情報の作成方法、コンポーネント構成変更時のコンポーネント関係依存情報の更新方法については詳細が不明である。
【０００８】
一方、上述した従来の第３の情報処理装置では、優先アプリを先に起動することで、利用者が必要とする機能を短時間で利用可能にしているが、優先アプリを起動するために必要なコンポーネントについては、リストとして保持する方法、依存関係に基づいて動的，静的に解決する方法が取られているが、利用者にとって扱いやすい程度に分割できているか否かを示す目安の粒度についてみると、粒度の大きいソフトウェアコンポーネントで構成されているため、例えば必ず最初に起動する基本プログラムには、優先アプリには必要のない機能が含まれている可能性がある。また、より最適な起動時間を実現するためには、小粒度のコンポーネントに対して起動順位の制御を行う必要があるが十分とは言えないという問題があった。
【０００９】
この実施例の情報処理装置では、システム起動時に優先して起動するように設定された優先アプリケーションによる機能が利用可能になるまでの時間を短縮することを目的とする。
【課題を解決するための手段】
【００１０】
この発明は上記の目的を達成するため、複数のソフトウェアコンポーネントを有し、その各ソフトウェアコンポーネントを起動することによって各種の機能を実現する情報処理装置であって、上記各ソフトウェアコンポーネントについて、それぞれ依存する下位のソフトウェアコンポーネントの起動順位に関する重み付き依存情報を保持する手段と、上記保持している重み付き依存情報に基づいて上記各ソフトウェアコンポーネントの起動順位を決定する起動順位決定手段と、上記決定した起動順位に従って上記各ソフトウェアコンポーネントをそれぞれ起動する起動手段を備えた情報処理装置を提供する。
また、上記重み付き依存情報について、初期化に時間のかかる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他の下位のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも大きくするとよい。
【００１１】
さらに、上記重み付き依存情報について、ユーザ操作を実現するソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも大きくするとよい。
また、上記重み付き依存情報について、起動しなくても上位のソフトウェアコンポーネントの基本機能を実現できる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも小さくするとよい。
さらに、上記下位のソフトウェアコンポーネントを、上記上位のソフトウェアコンポーネントの関連する付加機能として選択されるまでは起動しないようにするとよい。
【００１２】
また、システム起動時に最初に起動するアプリケーションを設定する設定手段を設け、上記起動順位決定手段は、上記各ソフトウェアコンポーネントの内、上記設定手段によって設定されたアプリケーションを動作させるために必要なソフトウェアコンポーネントを依存の起点とし、その依存の起点としたソフトウェアコンポーネントと依存する各ソフトウェアコンポーネントとについてそれぞれの重み付き依存情報に基づいて起動順位を決定し、上記起動手段は、上記依存の起点としたソフトウェアコンポーネントと依存する各ソフトウェアコンポーネントとを、その他のソフトウェアコンポーネントよりも先に起動するようにするとよい。
【００１３】
さらに、上記決定した起動順位を保存する保存手段を設け、上記起動手段は前記保存手段に保存された起動順位に従って上記各ソフトウェアコンポーネントをそれぞれ起動するとよい。
さらにまた、コンポーネントのインストール，アンインストール，又はバージョンアップのタイミングで、上記保存手段に保存された起動順位を再決定して保存し直す手段を設けるとよい。
【発明の効果】
【００１４】
この発明による情報処理装置は、システム起動時に優先して起動するように設定された優先アプリケーションによる機能が利用可能になるまでの時間を短縮することができる。
【図面の簡単な説明】
【００１５】
【図１】この発明の情報処理装置の一実施例である複合機の機能構成を示すブロック図である。
【図２】図１に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの依存関係を示すグラフの図である。
【図３】図１に示す重み付き依存情報を定義したＸＭＬファイルの一例を示す説明図である。
【図４】図１に示す起動部におけるコンポーネントの起動順位を決定するための各コンポーネントの得点計算処理を示すフローチャート図である。
【００１６】
【図５】図１に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの重み付き依存情報に基づく決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
【図６】図１に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、初期化に時間のかかるコンポーネントの重み付き依存情報に大きな重みをつけた場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
【図７】図１に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、ユーザ操作を実現するコンポーネントに対する重み付き依存情報の重みを他よりも大きくした場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
【００１７】
【図８】図１に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、上位のコンポーネントの付加機能に関連する下位のコンポーネントに対する依存の重みを小さくした場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
【図９】図１に示す複合機にインストールされた複数種類のアプリケーションを動作させるのに必要な各コンポーネントの依存関係を示すグラフの図である。
【００１８】
【図１０】図１に示す複合機にインストールされたコピーアプリとスキャナアプリの２種類のアプリを動作させる際、コピーアプリが優先設定された場合に先に起動するコンポーネントを示すグラフの図である。
【図１１】図１に示す複合機にインストールされたコピーアプリとスキャナアプリの２種類のアプリを動作させる際、スキャナアプリが優先設定された場合に先に起動するコンポーネントを示すグラフの図である。
【図１２】起動順位情報の内容の一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
〔実施例〕
図１は、この発明の情報処理装置の一実施例である複合機の機能構成を示すブロック図である。
この複合機１は、スキャナ，プリンタ，コピー（複写）の各機能を備えた画像形成装置であり、ＣＰＵによって実現される制御部２と、大容量の記憶装置であるハードディスク装置（ＨＤＤ）３と、制御部２が実行するプログラムを記憶したＲＯＭ、及び制御部２がＲＯＭのプログラムを実行する際に作業領域として使用するＲＡＭのメモリ４と、ユーザが各種の操作情報を入力すると共に、ユーザに各種の作業画面やメッセージを表示する操作部５と、原稿の画像を読み取るスキャナユニット６と、画像データに基づく画像を用紙に印刷するプロッタユニット７と、インターネット，ローカルエリアネットワーク，公衆回線を含むネットワークと通信を行う通信ユニット８を備えている。
【００２０】
制御部２は、ＲＯＭのプログラムを実行することにより、コンポーネント管理部１０の機能を果たす。
コンポーネント管理部１０は、起動部１１，インストール部１２，アンインストール部１３，バージョンアップ部１４の各機能を果たす。
起動部１１は、システム起動時、この複合機１に搭載されている複数のソフトウェアコンポーネントをその起動順位に従って起動させる制御を司る。
インストール部１２は、この複合機１のシステムにコンポーネントをインストールする制御を司る。
アンインストール部１３は、この複合機１のシステムにインストールされたコンポーネントをアンインストールする制御を司る。
バージョンアップ部１４は、この複合機１のシステムにインストールされたコンポーネントをバージョンアップする制御を司る。
【００２１】
ＨＤＤ３は、汎用ＯＳ上にコピー，プリンタ，スキャナ，ファクシミリの機能を実現するためのアプリケーションプログラム（「アプリ」と略称する）を動作させるのに必要なソフトウェアコンポーネント（以下「コンポーネント」と略称する）２０のデータを記憶している。
各コンポーネント２０は、そのコンポーネントの機能を実現するプログラム２１と、名称，開発元情報，重み付き依存情報２３を含む属性情報２２と、設定値２４を含む。
起動順位情報２５は、起動部１１が各コンポーネント２０の重み付き依存情報２３から決定した各コンポーネント２０の起動順位である。
優先アプリ設定情報２６は、この複合機１のシステム起動時に優先して起動する（最初に起動して最も早い段階で利用可能にする）アプリを示す情報である。
【００２２】
この複合機１のシステムのソフトウェア（プログラム）は、後述するように複数のコンポーネントで構成されており、それらの各コンポーネント間には依存関係が存在する。
例えば、コンポーネントＡが動作するためにはコンポーネントＢが必要である場合、コンポーネントＡとＢには依存関係があり、コンポーネントＡはコンポーネントＢに依存しているという。
システム起動時には、コンポーネントＢがコンポーネントＡより先に起動していることが望ましい。このような依存関係を示すデータを依存情報と呼ぶ。
各コンポーネント間の依存関係は、依存する側のコンポーネント（上述の例ではコンポーネントＡ）の仕様により決定されるものであるため、依存情報は依存する側のコンポーネントの属性情報の１つである。
そして、全てのコンポーネントが保持する依存情報に基づいて各コンポーネントの依存関係をグラフで示すことができる。
【００２３】
まず、この実施例の参考となる技術として、通常の依存情報を用いた起動処理について説明する。
図２は、図１に示す複合機１で実行するコピーアプリケーションプログラム（以下「コピーアプリ」と略称する）を動作させるのに必要な各コンポーネントの依存関係を示すグラフの図である。
【００２４】
この複合機１は、コピーアプリケーションを動作させるために、コピーアプリケーションユーザインタフェース（ＵＩ）・コンポーネント（ＣＭＰ）３０，コピーアプリケーションコンポーネント（ＣＭＰ）３１，読取ユーザインタフェース（ＵＩ）・コンポーネント（ＣＭＰ）３２，印刷ユーザインタフェース（ＵＩ）・コンポーネント（ＣＭＰ）３３，蓄積ユーザインタフェース（ＵＩ）・コンポーネント（ＣＭＰ）３４，ユーザインタフェース（ＵＩ）制御コンポーネント（ＣＭＰ）３５，読取コンポーネント（ＣＭＰ）３６，印刷コンポーネント（ＣＭＰ）３７，蓄積コンポーネント（ＣＭＰ）３８，操作部コンポーネント（ＣＭＰ）３９，エンジンコンポーネント（ＣＭＰ）４０，メモリコンポーネント（ＣＭＰ）４１，ハードディスクドライブ（ＨＤＤ）コンポーネント（ＣＭＰ）４２の各機能を利用する。
【００２５】
この各コンポーネントは、制御部２のコンポーネント管理部１０の起動部１１が、ＨＤＤ３に記憶したそれぞれ対応するソフトウェアコンポーネント２０のプログラム２１を実行することによって実現される。
コピーアプリケーションＵＩ・ＣＭＰ（以下「コピーアプリＵＩ・ＣＭＰ」と略称する）３０は、この複合機１におけるコピー機能のユーザインターフェースであり、コピー動作の際の読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４間を連携させる制御を行う。
コピーアプリケーションＣＭＰ（以下「コピーアプリＣＭＰ」と略称する）３１は、読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４の各コンポーネントを利用してコピー機能を実現する制御を行う。
【００２６】
読取ＵＩ・ＣＭＰ３２は、原稿の画像を読み取る（スキャンする）際のパラメータ設定を行うためのユーザインターフェースの制御を行う。
印刷ＵＩ・ＣＭＰ３３は、印刷のパラメータ設定を行うためのユーザインターフェースの制御を行う。
蓄積ＵＩ・ＣＭＰ３４は、画像蓄積のパラメータ設定を行うためのユーザインターフェースの制御を行う。
ＵＩ制御ＣＭＰ３５は、コピーアプリＵＩ・ＣＭＰ３０，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４の各ＵＩコンポーネントを統括し、操作部ＣＭＰ３９を利用して操作部５に各種の作業画面とメッセージの表示と、ユーザからの各種の操作情報の入力を実現する制御を行う。
【００２７】
読取ＣＭＰ３６は、エンジンＣＭＰ４０の制御を介してスキャナユニット６を動作させて原稿の画像を読み取り、その画像データを作成し、メモリ４上にその画像データを展開する制御を行う。
印刷ＣＭＰ３７は、エンジンＣＭＰ４０の制御を介してプロッタユニット７を動作させて、メモリ４上の画像データを用紙に印刷する制御を行う。
蓄積ＣＭＰ３８は、ＨＤＤ・ＣＭＰ４２の制御を介して、メモリ４上の画像データをＨＤＤ３に蓄積する制御を行う。
操作部ＣＭＰ３９は、操作部５の入力及び表示のデバイス制御を行う。
エンジンＣＭＰ４０は、スキャナユニット６，プロッタユニット７の駆動制御を行う。
メモリＣＭＰ４１は、メモリ４へのデータの読み書きのメモリ管理の制御を行う。
ＨＤＤ・ＣＭＰ４２は、ＨＤＤ３へのデータの読み書きの制御を行う。
【００２８】
この複合機１では、参考技術の処理として、図２に示す依存関係にある各コンポーネントを起動する際、下位のコンポーネント（グラフの末端（依存される側）のコンポーネント）から順に起動することにより、システムを正常に起動することができる。
図２に示すコピーアプリを動作させるために必要な各コンポーネントの場合、依存関係を示すグラフの末端に位置する下位のコンポーネントは、操作部ＣＭＰ３９，エンジンＣＭＰ４０，メモリＣＭＰ４１，ＨＤＤ・ＣＭＰ４２であるから、それらの各コンポーネントを最初に起動し、それらの各コンポーネントについてそれぞれ依存関係を逆にたどるように上位のコンポーネントを順次起動していく。その際、複数のコンポーネントに依存するコンポーネントについては、それらの依存する全てのコンポーネントよりも後に起動する。例えば、読取ＵＩ・ＣＭＰ３２は、ＵＩ制御ＣＭＰ３５と読取ＣＭＰ３６より後に起動し、コピーアプリＣＭＰ３２は、読取ＣＭＰ３６，印刷ＣＭＰ３７，蓄積ＣＭＰ３８より後に起動する。
【００２９】
このように依存関係に基づき下位レイヤから上位レイヤの順に起動すると、最上位アプリケーションの起動が多くのコンポーネントの起動完了後となるため、アプリケーションが操作可能になるまでの時間が長くなる。
【００３０】
次に、この実施例の複合機１における重み付き依存情報に基づく起動処理について説明する。
この複合機１では、上記各依存関係に重みを持たせ、その重みに基づいて各コンポーネントの起動順位を決定することにより、起動時間の短縮や優先起動を実現している。
その重みとは、各コンポーネントの依存関係の起動に関する優先順位を表す値であり、値が大きいほど優先順位が高いものとする。
重みは、依存する側のコンポーネントが保持する重み付き依存情報２３に付与する。
上述の参考技術では、コンポーネント起動順位の決定方法において、依存関係に重みを付けていない場合であり、これは、全ての依存関係の重みが等しいということである。
重み付き依存情報２３は、依存する側のコンポーネントの属性情報として、例えば、図３に示すようなＸＭＬファイルで定義するとよい。
【００３１】
図３は、重み付き依存情報を定義したＸＭＬファイルの一例を示す説明図である。
このＸＭＬファイルでは、２行目の＜ｎａｍｅ＞タグが対象コンポーネントの名称を表しており、この例はコピーアプリケーションＵＩ・ＣＭＰの重み付き依存情報である。
コピーアプリケーションＵＩ・ＣＭＰが依存するコンポーネントは、＜ｄｅｐｅｎｄｅｎｃｉｅｓ＞タグ（３行目）の子要素＜ｄｅｐｅｎｄｅｎｃｙ＞のリストとして定義する。４〜７行目では、コピーアプリケーションＣＭＰへの重み付き依存情報が定義され、５行目の＜ｗｅｉｇｈｔ＞タグで重みが「１」であることを表現している。
８〜１１行目でも、同様にして、ＵＩ制御ＣＭＰへの重み付き依存情報で重みが「２」に定義されている。
【００３２】
図４は、図１に示す起動部１１におけるコンポーネントの起動順位を決定するための各コンポーネントの得点計算処理を示すフローチャート図である。
起動部１１は、各アプリケーションプログラム毎に、そのアプリを動作させるのに必要な複数のコンポーネント（ＣＭＰ）について、ステップ（図中「Ｓ」で示す）１で、ＨＤＤの全ＣＭＰの重み付き依存情報を参照し、ステップ２で、他のどのＣＭＰからも依存されないＣＭＰの得点を「０」に設定し、ステップ３で、得点計算の終わったＣＭＰだけから依存されるＣＭＰを探し、ステップ４で、探し出したＣＭＰについて依存元ＣＭＰの得点と重み付き依存情報から得点を計算し、ステップ５で、全ＣＭＰの得点計算を終了したか否かを判断し、終了しなければ、ステップ３へ戻って、次のＣＭＰについての得点計算を実施し、ステップ５の判断で、全ＣＭＰの得点計算を終了したら、この処理を終了する。
【００３３】
次に、この複合機１において、コピーアプリケーションを動作させるために必要な各コンポーネントの起動順位を、各コンポーネントの重み付き依存情報に基づく決定アルゴリズムについて詳しく説明する。
ここでは、コンポーネント管理部１０の起動部１１における起動順位の決定アルゴリズムの説明を分かり易くするため、コピーアプリケーションを動作させるために必要な各コンポーネントである、コピーアプリＵＩ・ＣＭＰ３０，コピーアプリＣＭＰ３１，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４，ＵＩ制御ＣＭＰ３５，読取ＣＭＰ３６，印刷ＣＭＰ３７，蓄積ＣＭＰ３８，操作部ＣＭＰ３９，エンジンＣＭＰ４０，メモリＣＭＰ４１，ＨＤＤ・ＣＭＰ４２の各重み付き依存情報の重みを全て同じ値の「１」にした場合を例にしている。
【００３４】
図５は、図１に示す複合機１で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの重み付き依存情報に基づく起動順位の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
この図では、各コンポーネントを表す矩形内に、そのコンポーネントの得点を括弧書きで記載し、その得点に基づいて決定された起動順位を矩形枠で記載している。
まず、コピーアプリケーションを動作させるために必要な各コンポーネントである、コピーアプリＵＩ・ＣＭＰ３０，コピーアプリＣＭＰ３１，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４，ＵＩ制御ＣＭＰ３５，読取ＣＭＰ３６，印刷ＣＭＰ３７，蓄積ＣＭＰ３８，操作部ＣＭＰ３９，エンジンＣＭＰ４０，メモリＣＭＰ４１，ＨＤＤ・ＣＭＰ４２の内、どのコンポーネントからも依存されないコンポーネント、すなわち、依存の起点となるコンポーネントとして、コピーアプリＵＩ・ＣＭＰ３０を選択し、その得点を「０」に設定する。
【００３５】
そして、その依存の起点となるコピーアプリＵＩ・ＣＭＰ３０の他の各コンポーネントについて、他のコンポーネントから依存されるコンポーネントの得点は、依存元の各コンポーネントの得点にそれぞれ重み付き依存情報の重みを加えた値の合計として計算する。
得点計算の方法としてはこれに限るものではなく、重みの値を０．５〜１．５の間として、依存元のコンポーネントの得点に掛けた値の合計を、依存されるコンポーネントの得点としてもよい。
次に、各コンポーネントの得点について説明する。
〔１〕コピーアプリＵＩ・ＣＭＰ３０は、各コンポーネントの依存の起点となるコンポーネントとして得点（０）である。
〔２〕コピーアプリＣＭＰ３１は、コピーアプリＵＩ・ＣＭＰ３０からのみ依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０の重み付き依存情報の重み（１）を加算し、得点（１）となる。
〔３〕読取ＵＩ・ＣＭＰ３２は、コピーアプリＵＩ・ＣＭＰ３０からのみ依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０の重み付き依存情報の重み（１）を加算し、得点（１）となる。
【００３６】
〔４〕印刷ＵＩ・ＣＭＰ３３は、コピーアプリＵＩ・ＣＭＰ３０からのみ依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０の重み付き依存情報の重み（１）を加算し、得点（１）となる。
〔５〕蓄積ＵＩ・ＣＭＰ３４は、コピーアプリＵＩ・ＣＭＰ３０からのみ依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０の重み付き依存情報の重み（１）を加算し、得点（１）となる。
〔６〕ＵＩ制御ＣＭＰ３５は、コピーアプリＵＩ・ＣＭＰ３０，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４の４つのコンポーネントから依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０の重み付き依存情報の重み（１）を加算した値（１）と、読取ＵＩ・ＣＭＰ３２の得点（１）に読取ＵＩ・ＣＭＰ３２の重み付き依存情報の重み（１）を加算した値（２）と、印刷ＵＩ・ＣＭＰ３３の得点（１）に印刷ＵＩ・ＣＭＰ３３の重み付き依存情報の重み（１）を加算した値（２）と、蓄積ＵＩ・ＣＭＰ３４の得点（１）に蓄積ＵＩ・ＣＭＰ３４の重み付き依存情報の重み（１）を加算した値（２）とを合計し、得点（７）となる。
【００３７】
〔７〕読取ＣＭＰ３６は、コピーアプリＣＭＰ３１と読取ＵＩ・ＣＭＰ３２の２つのコンポーネントから依存され、コピーアプリＣＭＰ３１の得点（１）にコピーアプリＣＭＰ３１の重み付き依存情報の重み（１）を加算した値（２）と、読取ＵＩ・ＣＭＰ３２の得点（１）に読取ＵＩ・ＣＭＰ３２の重み付き依存情報の重み（１）を加算した値（２）とを合計し、得点（４）となる。
〔８〕印刷ＣＭＰ３７は、コピーアプリＣＭＰ３１と印刷ＵＩ・ＣＭＰ３７の２つのコンポーネントから依存され、コピーアプリＣＭＰ３１の得点（１）にコピーアプリＣＭＰ３１の重み付き依存情報の重み（１）を加算した値（２）と、印刷ＵＩ・ＣＭＰ３３の得点（１）に印刷ＵＩ・ＣＭＰ３３の重み付き依存情報の重み（１）を加算した値（２）とを合計し、得点（４）となる。
【００３８】
〔９〕蓄積ＣＭＰ３８は、コピーアプリＣＭＰ３１と蓄積ＵＩ・ＣＭＰ３４の２つのコンポーネントから依存され、コピーアプリＣＭＰ３１の得点（１）にコピーアプリＣＭＰ３１の重み付き依存情報の重み（１）を加算した値（２）と、蓄積ＵＩ・ＣＭＰ３４の得点（１）に蓄積ＵＩ・ＣＭＰ３４の重み付き依存情報の重み（１）を加算した値（２）とを合計し、得点（４）となる。
〔１０〕操作部ＣＭＰ３９は、ＵＩ制御ＣＭＰ３５のみに依存され、ＵＩ制御ＣＭＰ３５の得点（７）にＵＩ制御ＣＭＰ３５の重み付き依存情報の重み（１）を加算し、得点（８）となる。
〔１１〕エンジンＣＭＰ４０は、読取ＣＭＰ３６と印刷ＣＭＰ３７の２つのコンポーネントから依存され、読取ＣＭＰ３６の得点（４）に読取ＣＭＰ３６の重み付き依存情報の重み（１）を加算した値（５）と、印刷ＣＭＰ３７の得点（４）に印刷ＣＭＰ３７の重み付き依存情報の重み（１）を加算した値（５）とを合計し、得点（１０）となる。
【００３９】
〔１２〕メモリＣＭＰ４１は、読取ＣＭＰ３６と印刷ＣＭＰ３７と蓄積ＣＭＰ３８の３つのコンポーネントから依存され、読取ＣＭＰ３６の得点（４）に読取ＣＭＰ３６の重み付き依存情報の重み（１）を加算した値（５）と、印刷ＣＭＰ３７の得点（４）に印刷ＣＭＰ３７の重み付き依存情報の重み（１）を加算した値（５）と、蓄積ＣＭＰ３８の得点（４）に蓄積ＣＭＰ３８の重み付き依存情報の重み（１）を加算した値（５）とを合計し、得点（１５）となる。すなわち、（４＋１）×３＝１５となる。
〔１３〕ＨＤＤ・ＣＭＰ４２は、蓄積ＣＭＰ３８のみから依存され、蓄積ＣＭＰ３８の得点（４）に蓄積ＣＭＰ３８の重み付き依存情報の重み（１）を加算し、得点（５）となる。
そして、起動順位は、上述のようにして求めたコンポーネントの得点の高い方から降順にする。
【００４０】
つまり、最も多い得点（１５）のメモリＣＭＰ４１の起動順位を「１番」にし、以下、起動順位「２番」をエンジンＣＭＰ４０にし、起動順位「３番」を操作部ＣＭＰ３９に、起動順位「４番」をＵＩ制御ＣＭＰ３５にし、起動順位「５番」をＨＤＤ・ＣＭＰ４２にする。
また、得点が同じであり、互いに依存関係がないコンポーネントである、読取ＣＭＰ３６，印刷ＣＭＰ３７，蓄積ＣＭＰ３８の３つのコンポーネントを並行に起動してもよいので、それぞれ起動順位を「６番」にする。
さらに、同じく得点が同じであり互いに依存関係がない、コピーアプリＣＭＰ３１，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４の４つのコンポーネントの起動順位「７番」とする。
そして、最も得点の少ないコピーアプリＵＩ・ＣＭＰ３０を最後の起動順位「８番」とする。
【００４１】
上述の説明では、重み付き依存情報に基づく各コンポーネントの起動順位の決定アルゴリズムの詳細を分かり易くするため、各コンポーネントの重みを全て同じにした場合を説明したが、このように各重みを全て同じにすると、重み付けなしの場合と等しく、すなわち、従来技術と同様に、下位レイヤから上位レイヤの順に、かつ多くのコンポーネントから依存されるコンポーネントから起動することになり、他のコンポーネントに依存するコンポーネントの起動が後になるため、アプリケーションが操作可能になるまでの時間が長くなる。
そこで、以降で説明する実施例の各コンポーネントの起動順位の決定アルゴリズムでは、各コンポーネントに付与する重みをうまく設定することにより、アプリケーションプログラムの実行に必要な互いに依存関係にある複数のコンポーネントを起動する際、依存の重みが大きいコンポーネントから順に効率よく起動することにより、アプリケーションが操作可能になるまでの時間を大幅に短縮することができる。
また、依存関係のないコンポーネントは並行に起動しても互いの起動に影響を及ぼさないので、例えば、起動順位「１番」のメモリＣＭＰ４１と、起動順位「２番」のエンジンＣＭＰ４０の間には依存関係がないから、メモリＣＭＰ４１の起動完了を待たずして、エンジンＣＭＰ４０を並行に起動してもよい。
さらに、各コンポーネントが保持する重み付き依存情報に基づいて汎用的なアルゴリズムで各コンポーネントの起動順位を決定する仕組みを備えたことにより、任意のコンポーネントをインストール又はアンインストールしても、起動順位を簡単に再構成することができる。
【００４２】
次に、上述のコピーアプリケーションを動作させるために必要な各コンポーネントの起動順位を決定する場合、操作部５，スキャナユニット６，プロッタユニット７，ＨＤＤ３のようなハードウェアを制御するコンポーネント、すなわち、操作部ＣＰＵ３９，エンジンＣＭＰ４０，ＨＤＤ・ＣＭＰ４２は、起動時にハードウェアの初期化を行うため、初期化に要する時間が大きい。
そのようなコンポーネントはなるべく早い段階で起動しておくことで、システム全体の起動時間をより短縮することができる。
そこで、初期化に時間のかかる下位のコンポーネントに対する重み付き依存情報の重みを、その他の下位のコンポーネントに対する重み付き依存情報の重みよりも大きくすることで、この制御を実現する。
【００４３】
図６は、図１に示す複合機１で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、初期化に時間のかかるコンポーネントの重み付き依存情報に大きな重みをつけた場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
この例では、操作部ＣＭＰ３９，エンジンＣＭＰ４０，ＨＤＤ・ＣＭＰ４２の各コンポーネントに対する依存により重みを付けるため、ＵＩ制御ＣＭＰ３５の操作部ＣＭＰ３９に対する重み付き依存情報の重みと、読取ＣＭＰ３６のエンジンＣＭＰ４０に対する重み付き依存情報の重みと、印刷ＣＭＰ３７のエンジンＣＭＰ４０に対する重み付き依存情報の重みと、蓄積ＣＭＰ３８のＨＤＤ・ＣＭＰ４２に対する重み付き依存情報の重みを、それぞれ「５」にしている。その他のコンポーネントの各重み付き依存情報の重みは上述と同じように「１」のままにしている。
【００４４】
次に、この重みに基づいて上述と同様に各コンポーネントの得点について説明する。
コピーアプリＵＩ・ＣＭＰ３０，コピーアプリＣＭＰ３１，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４，ＵＩ制御ＣＭＰ３５，読取ＣＭＰ３６，印刷ＣＭＰ３７，蓄積ＣＭＰ３８の得点は、上述の図５に示した値と同じなので、説明を省略する。
〔１〕操作部ＣＭＰ３９は、ＵＩ制御ＣＭＰ３５のみに依存され、ＵＩ制御ＣＭＰ３５の得点（７）にＵＩ制御ＣＭＰ３５の重み付き依存情報の重み（５）を加算し、得点（１２）となる。
〔２〕エンジンＣＭＰ４０は、読取ＣＭＰ３６と印刷ＣＭＰ３７の２つのコンポーネントから依存され、読取ＣＭＰ３６の得点（４）に読取ＣＭＰ３６のエンジンＣＭＰ４０に対する重み付き依存情報の重み（５）を加算した値（９）と、印刷ＣＭＰ３７の得点（４）に印刷ＣＭＰ３７のエンジンＣＭＰ４０に対する重み付き依存情報の重み（５）を加算した値（９）とを合計し、得点（１８）となる。
【００４５】
〔３〕メモリＣＭＰ４１は、読取ＣＭＰ３６と印刷ＣＭＰ３７と蓄積ＣＭＰ３８の３つのコンポーネントから依存され、読取ＣＭＰ３６の得点（４）に読取ＣＭＰ３６のメモリＣＭＰ４１に対する重み付き依存情報の重み（１）を加算した値（５）と、印刷ＣＭＰ３７の得点（４）に印刷ＣＭＰ３７のメモリＣＭＰ４１に対する重み付き依存情報の重み（１）を加算した値（５）と、蓄積ＣＭＰ３８の得点（４）に蓄積ＣＭＰ３８のメモリＣＭＰ４１に対する重み付き依存情報の重み（１）を加算した値（５）とを合計し、得点（１５）となる。すなわち、（４＋１）×３＝１５となる。
〔４〕ＨＤＤ・ＣＭＰ４２は、蓄積ＣＭＰ３８のみから依存され、蓄積ＣＭＰ３８の得点（４）に蓄積ＣＭＰ３８のＨＤＤ・ＣＭＰ４２に対する重み付き依存情報の重み（５）を加算し、得点（９）となる。
【００４６】
そして、起動順位は、上述と同様にしてコンポーネントの得点の高い方から降順にすると、最も多い得点（１８）のエンジンＣＭＰ４０の起動順位を「１番」にし、以下、起動順位「２番」をメモリＣＭＰ４１にし、起動順位「３番」を操作部ＣＭＰ３９に、起動順位「４番」をＨＤＤ・ＣＭＰ４２にし、起動順位「５番」をＵＩ制御ＣＭＰ３５にする。
以下、起動順位「６番」「７番」「８番」は上述の場合と同じである。
このようにして、初期化に時間のかかるＨＤＤ・ＣＭＰ４２の起動順位を、初期化に時間のかからないＵＩ制御ＣＭＰ３５よりも先に起動することができ、起動時間をより短縮することができる。
【００４７】
次に、上述のコピーアプリケーションを動作させるために必要な各コンポーネントの起動順位を決定する場合、見かけ上の起動時間を早くするためには、まずユーザ操作に関わるコンポーネント、すなわち、コピーアプリＵＩ・ＣＭＰ３０，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４，ＵＩ制御ＣＭＰ３５，操作部ＣＭＰ３９を他のコンポーネントよりも先に起動して、ロジック部の初期化を後に遅延させるのも有効である。
つまり、いち早くユーザ操作が可能な状態にして、設定等を入力している間に他のコンポーネントの初期化を行うのである。
【００４８】
そこで、ユーザ操作を実現するコンポーネントに対する重み付き依存情報の重みを、その他のコンポーネントに対する重み付き依存情報の重みよりも大きくすることで、この制御を実現する。
また、コピーアプリＵＩ・ＣＭＰ３０，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４は、それぞれ対応するロジックコンポーネントであるコピーアプリＣＭＰ３１，読取ＣＭＰ３６，印刷ＣＭＰ３７，蓄積ＣＭＰ３８に必ず依存するが、それらの重み付き依存情報の重みを他よりも小さくすることで、ロジックコンポーネントの遅延起動を実現する。
【００４９】
図７は、図１に示す複合機１で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、ユーザ操作を実現するコンポーネントに対する重み付き依存情報の重みを他よりも大きくした場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
この例では、コピーアプリＵＩ・ＣＭＰ３０のＵＩ制御ＣＭＰ３５，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４に対する各重み付き依存情報の重みをそれぞれ「２」にし、コピーアプリＣＭＰ３１に対する重み付き依存情報の重みは「−２」にしている。
また、読取ＵＩ・ＣＭＰ３２については、ＵＩ制御ＣＭＰ３５に対する重み付き依存情報の重みを「２」にし、読取ＣＭＰ３６に対する重み付き依存情報の重みを「−２」にしている。
【００５０】
さらに、印刷ＵＩ・ＣＭＰ３３については、ＵＩ制御ＣＭＰ３５に対する重み付き依存情報の重みを「２」にし、印刷ＣＭＰ３７に対する重み付き依存情報の重みを「−２」にしている。
また、蓄積ＵＩ・ＣＭＰ３４については、ＵＩ制御ＣＭＰ３５に対する重み付き依存情報の重みを「２」にし、蓄積ＣＭＰ３８に対する重み付き依存情報の重みを「−２」にしている。
さらに、ＵＩ制御ＣＭＰ３５については、操作部ＣＭＰ３９に対する重み付き依存情報の重みを「２」にしている。
その他は上述と同じように「１」のままである。
【００５１】
次に、この重みに基づいて上述と同様に各コンポーネントの得点について説明する。
〔１〕コピーアプリＵＩ・ＣＭＰ３０は、各コンポーネントの依存の起点となるコンポーネントとして得点（０）である。
〔２〕コピーアプリＣＭＰ３１は、コピーアプリＵＩ・ＣＭＰ３０からのみ依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０のコピーアプリＣＭＰ３１に対する重み付き依存情報の重み（−２）を加算し、得点（−２）となる。
〔３〕読取ＵＩ・ＣＭＰ３２は、コピーアプリＵＩ・ＣＭＰ３０からのみ依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０の読取ＵＩ・ＣＭＰ３２に対する重み付き依存情報の重み（２）を加算し、得点（２）となる。
〔４〕印刷ＵＩ・ＣＭＰ３３は、コピーアプリＵＩ・ＣＭＰ３０からのみ依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０の印刷ＵＩ・ＣＭＰ３３に対する重み付き依存情報の重み（２）を加算し、得点（２）となる。
【００５２】
〔５〕蓄積ＵＩ・ＣＭＰ３４は、コピーアプリＵＩ・ＣＭＰ３０からのみ依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０の蓄積ＵＩ・ＣＭＰ３４に対する重み付き依存情報の重み（２）を加算し、得点（２）となる。
〔６〕ＵＩ制御ＣＭＰ３５は、コピーアプリＵＩ・ＣＭＰ３０，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４の４つのコンポーネントから依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０のＵＩ制御ＣＭＰ３５に対する重み付き依存情報の重み（２）を加算した値（２）と、読取ＵＩ・ＣＭＰ３２の得点（２）に読取ＵＩ・ＣＭＰ３２のＵＩ制御ＣＭＰ３５に対する重み付き依存情報の重み（２）を加算した値（４）と、印刷ＵＩ・ＣＭＰ３３の得点（２）に印刷ＵＩ・ＣＭＰ３３のＵＩ制御ＣＭＰ３５に対する重み付き依存情報の重み（２）を加算した値（４）と、蓄積ＵＩ・ＣＭＰ３４の得点（２）に蓄積ＵＩ・ＣＭＰ３４のＵＩ制御ＣＭＰ３５に対する重み付き依存情報の重み（２）を加算した値（４）とを合計し、得点（１４）となる。
【００５３】
〔７〕読取ＣＭＰ３６は、コピーアプリＣＭＰ３１と読取ＵＩ・ＣＭＰ３２の２つのコンポーネントから依存され、コピーアプリＣＭＰ３１の得点（−２）にコピーアプリＣＭＰ３１の読取ＣＭＰ３６に対する重み付き依存情報の重み（１）を加算した値（−１）と、読取ＵＩ・ＣＭＰ３２の得点（２）に読取ＵＩ・ＣＭＰ３２の読取ＣＭＰ３６に対する重み付き依存情報の重み（−２）を加算した値（０）とを合計し、得点（−１）となる。
〔８〕印刷ＣＭＰ３７は、コピーアプリＣＭＰ３１と印刷ＵＩ・ＣＭＰ３７の２つのコンポーネントから依存され、コピーアプリＣＭＰ３１の得点（−２）にコピーアプリＣＭＰ３１の印刷ＣＭＰ３７に対する重み付き依存情報の重み（１）を加算した値（−１）と、印刷ＵＩ・ＣＭＰ３３の得点（２）に印刷ＵＩ・ＣＭＰ３３の印刷ＣＭＰ３７に対する重み付き依存情報の重み（−２）を加算した値（０）とを合計し、得点（−１）となる。
【００５４】
〔９〕蓄積ＣＭＰ３８は、コピーアプリＣＭＰ３１と蓄積ＵＩ・ＣＭＰ３４の２つのコンポーネントから依存され、コピーアプリＣＭＰ３１の得点（−２）にコピーアプリＣＭＰ３１の蓄積ＣＭＰ３８に対する重み付き依存情報の重み（１）を加算した値（−１）と、蓄積ＵＩ・ＣＭＰ３４の得点（２）に蓄積ＵＩ・ＣＭＰ３４の蓄積ＣＭＰ３８に対する重み付き依存情報の重み（−２）を加算した値（０）とを合計し、得点（−１）となる。
〔１０〕操作部ＣＭＰ３９は、ＵＩ制御ＣＭＰ３５のみに依存され、ＵＩ制御ＣＭＰ３５の得点（１４）にＵＩ制御ＣＭＰ３５の操作部ＣＭＰ３９に対する重み付き依存情報の重み（２）を加算し、得点（１６）となる。
〔１１〕エンジンＣＭＰ４０は、読取ＣＭＰ３６と印刷ＣＭＰ３７の２つのコンポーネントから依存され、読取ＣＭＰ３６の得点（−１）に読取ＣＭＰ３６のエンジンＣＭＰ４０に対する重み付き依存情報の重み（１）を加算した値（０）と、印刷ＣＭＰ３７の得点（−１）に印刷ＣＭＰ３７のエンジンＣＭＰ４０に対する重み付き依存情報の重み（１）を加算した値（０）とを合計し、得点（０）となる。
【００５５】
〔１２〕メモリＣＭＰ４１は、読取ＣＭＰ３６と印刷ＣＭＰ３７と蓄積ＣＭＰ３８の３つのコンポーネントから依存され、読取ＣＭＰ３６の得点（−１）に読取ＣＭＰ３６のメモリＣＭＰ４１に対する重み付き依存情報の重み（１）を加算した値（０）と、印刷ＣＭＰ３７の得点（−１）に印刷ＣＭＰ３７のメモリＣＭＰ４１に対する重み付き依存情報の重み（１）を加算した値（０）と、蓄積ＣＭＰ３８の得点（−１）に蓄積ＣＭＰ３８のメモリＣＭＰ４１に対する重み付き依存情報の重み（１）を加算した値（０）とを合計し、得点（０）となる。
〔１３〕ＨＤＤ・ＣＭＰ４２は、蓄積ＣＭＰ３８のみから依存され、蓄積ＣＭＰ３８の得点（−１）に蓄積ＣＭＰ３８のＨＤＤ・ＣＭＰ４２に対する重み付き依存情報の重み（１）を加算し、得点（０）となる。
【００５６】
そして、起動順位は、上述のようにして求めたコンポーネントの得点の高い方から降順にする。
つまり、最も多い得点（１６）の操作部ＣＭＰ３９の起動順位を「１番」にし、以下、起動順位「２番」をＵＩ制御ＣＭＰ３５にする。
また、得点が同じであり、互いに依存関係がないコンポーネントである、読取ＣＭＰ３６，印刷ＣＭＰ３７，蓄積ＣＭＰ３８の３つのコンポーネントを並行に起動してもよいので、それぞれ起動順位を「３番」にする。
さらに、同じく得点が同じである、コピーアプリＵＩ・ＣＭＰ３０，エンジンＣＭＰ４０，メモリＣＭＰ４１，ＨＤＤ・ＣＭＰ４２の４つのコンポーネント（エンジンＣＭＰ４０，メモリＣＭＰ４１，ＨＤＤ・ＣＭＰ４２については、互いに依存関係がない）の起動順位を「４番」とする。
【００５７】
また、同じく得点が同じであり互いに依存関係がない、読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，蓄積ＵＩ・ＣＭＰ３４の３つのコンポーネントの起動順位を「５番」とする。
そして、最も得点の少ないコピーアプリＣＭＰ３１を最後の起動順位「６番」とする。
こうして、ＵＩコンポーネントが依存するロジックコンポーネントの起動を、ＵＩコンポーネントの起動よりも遅延させ、ＵＩコンポーネントがロジックコンポーネントの機能を使う必要がある場合、ロジックコンポーネントの起動完了を待つようにする。
例えば、利用者がＵＩでの各設定を完了し、コピージョブ実行開始のためのスタートキーを押下した際に、コピーアプリＣＭＰ３１の起動が完了していなかったとすると、これが完了するまで待機する。
このようにして、操作部ＣＭＰ３９をいち早く起動してユーザ操作が可能な状態にするので、ユーザが操作可能になるまでの時間を短縮することができる。
【００５８】
次に、複雑な機能を備えたアプリケーションにおいては、いくつかの付加機能が使えない状態でも基本機能を使うことができることがある。
例えば、コピーアプリケーションにおいては、蓄積機能が使えない状態でも、プロッタに印刷する基本機能は動作可能である。
このようなケースでは、付加機能に関連する下位のコンポーネントに対する依存の重みを、他の下位のコンポーネントへの依存の重みよりも小さくする。
すなわち、起動しなくても上位のソフトウェアコンポーネントの基本機能を実現できる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも小さくすることにより、下位のコンポーネントの起動を待たずして、基本機能の利用を可能にすることができる。
【００５９】
図８は、図１に示す複合機１で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、上位のコンポーネントの付加機能に関連する下位のコンポーネントに対する依存の重みを小さくした場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
この例では、コピーアプリＵＩ・ＣＭＰ３０の蓄積ＵＩ・ＣＭＰ３４に対する重み付き依存情報の重みを「−２」にし、コピーアプリＣＭＰ３１の蓄積ＣＭＰ３８に対する重み付き依存情報の重みを「−２」にし、その他の重み付き依存情報の重みを「１」のままにしている。
【００６０】
次に、この重みに基づいて上述と同様に各コンポーネントの得点について説明する。
コピーアプリＵＩ・ＣＭＰ３０，コピーアプリＣＭＰ３１，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３，ＵＩ制御ＣＭＰ３５，読取ＣＭＰ３６，印刷ＣＭＰ３７，操作部ＣＭＰ３９，エンジンＣＭＰ４０の得点は、上述の図５に示した値と同じなので、説明を省略する。
〔１〕蓄積ＵＩ・ＣＭＰ３４は、コピーアプリＵＩ・ＣＭＰ３０からのみ依存され、コピーアプリＵＩ・ＣＭＰ３０の得点（０）にコピーアプリＵＩ・ＣＭＰ３０の蓄積ＵＩ・ＣＭＰ３４に対する重み付き依存情報の重み（−２）を加算し、得点（−２）となる。
〔２〕蓄積ＣＭＰ３８は、コピーアプリＣＭＰ３１と蓄積ＵＩ・ＣＭＰ３４の２つのコンポーネントから依存され、コピーアプリＣＭＰ３１の得点（１）にコピーアプリＣＭＰ３１の蓄積ＣＭＰ３８に対する重み付き依存情報の重み（−２）を加算した値（−１）と、蓄積ＵＩ・ＣＭＰ３４の得点（−２）に蓄積ＵＩ・ＣＭＰ３４の蓄積ＣＭＰ３８に対する重み付き依存情報の重み（１）を加算した値（−１）とを合計し、得点（−２）となる。
【００６１】
〔３〕メモリＣＭＰ４１は、読取ＣＭＰ３６と印刷ＣＭＰ３７と蓄積ＣＭＰ３８の３つのコンポーネントから依存され、読取ＣＭＰ３６の得点（４）に読取ＣＭＰ３６のメモリＣＭＰ４１に対する重み付き依存情報の重み（１）を加算した値（５）と、印刷ＣＭＰ３７の得点（４）に印刷ＣＭＰ３７のメモリＣＭＰ４１に対する重み付き依存情報の重み（１）を加算した値（５）と、蓄積ＣＭＰ３８の得点（−２）に蓄積ＣＭＰ３８のメモリＣＭＰ４１に対する重み付き依存情報の重み（１）を加算した値（−１）とを合計し、得点（９）となる。
〔４〕ＨＤＤ・ＣＭＰ４２は、蓄積ＣＭＰ３８のみから依存され、蓄積ＣＭＰ３８の得点（−２）に蓄積ＣＭＰ３８のＨＤＤ・ＣＭＰ４２に対する重み付き依存情報の重み（１）を加算し、得点（−１）となる。
そして、起動順位は、上述のようにして求めたコンポーネントの得点の高い方から降順にする。
【００６２】
つまり、最も多い得点（１６）のエンジンＣＭＰ４０の起動順位を「１番」にし、以下、起動順位「２番」をメモリＣＭＰ４１にし、起動順位「３番」を操作部ＣＭＰ３９にし、起動順位「４番」をＵＩ制御ＣＭＰ３５にする。
また、得点が同じであり、互いに依存関係がないコンポーネントである、読取ＣＭＰ３６と印刷ＣＭＰ３７の２つのコンポーネントを並行に起動してもよいので、それぞれ起動順位を「５番」にする。
さらに、同じく、コピーアプリＣＭＰ３１，読取ＵＩ・ＣＭＰ３２，印刷ＵＩ・ＣＭＰ３３の３つのコンポーネントの起動順位を「６番」とする。
また、コピーアプリＵＩ・ＣＭＰ３０の起動順位を「７番」とする。
そして、最も得点の少ないＨＤＤ・ＣＭＰ４２を最後の起動順位「８番」とする。
【００６３】
こうして、コピーアプリの基本機能実行には必要ない蓄積関連コンポーネントの起動がコピーアプリＵＩ・ＣＭＰ３０より後になるので、コピーの基本機能が実行できるようになるまでの起動時間を短縮することができる。
また、蓄積の機能が選択された場合は、蓄積に関連するコンポーネントの起動完了を待つようにする。
ところで、基本機能実行に必要ないコンポーネントの起動を遅延させることで起動時間の短縮は実現できるが、基本機能のＵＩ操作から実行までと並行して遅延されたコンポーネントが起動するため、起動直後のシステム負荷は高い状態となり、システム性能（例えば、コピー性能）に影響を与える恐れがある。
【００６４】
また、すぐに必要のない起動することでメモリ使用量が増え、同じくシステム性能に影響を与える恐れがある。
そのようなシステム性能への影響を低減するために、上記例で負の点数の得点となったコンポーネント、すなわち、蓄積ＵＩ・ＣＭＰ３４，蓄積ＣＭＰ３８，ＨＤＤ・ＣＭＰ４２の各コンポーネントは、システム起動時に起動しないようにするとよい。
そして、それらのコンポーネントは、コピーアプリ（ＵＩ）で蓄積の機能が選択された時に起動するようにする。
すなわち、下位のソフトウェアコンポーネントは、上位のソフトウェアコンポーネントの関連する付加機能として選択されるまでは起動しないようにするとよい。
このようにして、上位のコンポーネントの基本機能が利用可能になるまでの時間を短縮することができる。また、使用されない付加機能を起動しないので、メモリ効率が向上する。
【００６５】
次に、この複合機１には、複数種類のアプリケーションがインストールされている。
この複合機１にインストールされた複数種類のアプリケーションの中から、システム起動時や一定期間ユーザ操作がなかった場合に表示されるアプリケーションを選択して記憶させておくことができ、これを優先アプリ設定と呼ぶ。
そして、優先アプリ設定されたアプリケーションを動作させるために必要なコンポーネントを先に起動することにより、システム起動時に優先アプリが利用可能になるまでの時間を短縮することができる。
図９は、図１に示す複合機１にインストールされたコピーアプリとスキャナアプリの２種類のアプリを動作させるのに必要な各コンポーネントの依存関係を示すグラフの図である。
【００６６】
同図に示すように、コピーアプリについては、図５乃至図８に示したように、３０〜４２の各コンポーネントが必要であり、スキャナアプリについては、さらに、スキャナアプリケーションユーザインタフェースコンポーネント（スキャナアプリケーションＵＩ・ＣＭＰ）５０，スキャナアプリケーションコンポーネント（スキャナアプリケーションＣＭＰ）５１，送信ユーザインタフェースコンポーネント（送信ＵＩ・ＣＭＰ）５２，送信コンポーネント（送信ＣＭＰ）５３，ネットワーク制御部５４の各コンポーネントが必要である。
【００６７】
例えば、優先アプリ設定としてコピーアプリが選択された場合の例を示す。
図１０は、図１に示す複合機１にインストールされたコピーアプリとスキャナアプリの２種類のアプリを動作させる際、コピーアプリが優先設定された場合に先に起動するコンポーネントを示すグラフの図である。
操作部５からユーザによりシステム起動時に最初に起動するアプリケーションとしてコピーアプリが設定された場合、起動部１１は、コピーアプリとスキャナアプリの動作に必要な各コンポーネントの内、優先アプリ設定されたコピーアプリを動作させるために必要なコピーアプリケーションＵＩ・ＣＭＰ３０を依存の起点とし、その依存の起点としたコピーアプリケーションＵＩ・ＣＭＰ３０と依存する３１〜４２の各コンポーネントとについてそれぞれの重み付き依存情報に基づいて、上述のようにして起動順位を決定し、依存の起点としたコピーアプリケーションＵＩ・ＣＭＰ３０とそれに依存する３１〜４２の各コンポーネントとを、その他の５０〜５４の各コンポーネントよりも先に起動する。
【００６８】
すなわち、コピーアプリケーションＵＩ・ＣＭＰ３０を依存の頂点とする下位の各コンポーネントを先に起動し、それに含まれない他のコンポーネント（図中破線枠で示す各コンポーネント）の起動を遅延させる。
一方、優先アプリ設定としてスキャナアプリが選択された場合の例を示す。
図１１は、図１に示す複合機１にインストールされたコピーアプリとスキャナアプリの２種類のアプリを動作させる際、スキャナアプリが優先設定された場合に先に起動するコンポーネントを示すグラフの図である。
【００６９】
操作部５からユーザによりシステム起動時に最初に起動するアプリケーションとしてスキャナアプリが設定された場合、起動部１１は、コピーアプリとスキャナアプリの動作に必要な各コンポーネントの内、優先アプリ設定されたスキャナアプリを動作させるために必要なスキャナアプリケーションＵＩ・ＣＭＰ５０を依存の起点とし、その依存の起点としたスキャナアプリケーションＵＩ・ＣＭＰ５０と依存する５１〜５４の各コンポーネントとについてそれぞれの重み付き依存情報に基づいて、上述のようにして起動順位を決定し、依存の起点としたスキャナアプリケーションＵＩ・ＣＭＰ５０とそれに依存する５１〜５４の各コンポーネントと、３２，３５，３６，３９，４０，４１の各コンポーネントとを、その他の３０，３１，３３，３４，３７，３８，４２の各コンポーネントよりも先に起動する。
【００７０】
すなわち、スキャナアプリケーションＵＩ・ＣＭＰ５０を依存の頂点とする下位の各コンポーネントを先に起動し、それに含まれない他のコンポーネント（図中破線枠で示す各コンポーネント）の起動を遅延させる。
このようにして、ユーザが頻繁に利用するアプリとして優先アプリ設定したアプリの起動時間を短縮することができる。
【００７１】
次に、この複合機１では、上述したように、システム起動処理の最初の段階で各アプリについて各コンポーネントの起動順位の決定処理を実行して起動順位を決定し、その決定した起動順位に従ってコンポーネントを起動していくことで、システムを起動することができる。
しかし、上記決定した各コンポーネントの起動順位は、システムにインストールされたコンポーネントの構成や、優先アプリ設定の内容が変更されない限りは常に同じである。
従って、上記決定した各コンポーネントの起動順位の情報（「起動順位情報」と呼ぶ）を不揮発メモリ（例えば、図１に示すＨＤＤ３の起動順位情報２５）に記憶して永続化しておく。
【００７２】
図１２は、起動順位情報の内容の一例を示す図である。
同図に示すように、起動順位情報２５は、表形式のデータとして保存する。
そして、システム起動時にこの起動順位情報２５を参照してコンポーネントを起動することによって、システム起動毎に同じ計算を実行する処理を省くことができ、起動時間をより短縮することができる。
このようにして、コンポーネントの構成と優先アプリ設定の内容に変更がなければ、システム起動時の度にアプリの動作に必要な各コンポーネントの起動順位の決定処理を行わなくてすむので、２回目のシステム起動からは必要なアプリを使用できるまでの時間をより短縮することができる。
【００７３】
次に、コンポーネントをインストール，アンインストール，バージョンアップした場合、コンポーネント間の依存関係に変更が生じる。
従って、それらのタイミングで、起動順位を再計算し、起動順位情報２５の内容を更新するとよい。
したがって、各コンポーネントの重み付き依存情報を保持しておくだけで、システム起動時間を短縮するのに最適なコンポーネントの起動順位が自動的に計算されるため、コンポーネント構成の変更の度にユーザが起動順位をメンテナンスする必要がなくなる。
【００７４】
なお、上述の実施例では、コピーアプリを動作させるのに必要な各コンポーネントの起動順位を決定して順次起動する例を説明したが、スキャナアプリ，プリントアプリ，ＦＡＸアプリを含むその他の各種のアプリについても上述と同様にして各コンポーネントの重み付き依存情報に基づいて起動順位を決定して順次起動することにより、それぞれのアプリ起動までの時間を短縮することができる。
【００７５】
この実施例の情報処理装置では、ソフトウェアコンポーネント間の依存関係を解決し、優先起動設定されたアプリケーション（システム起動直後に表示されるアプリケーション、すなわち、優先アプリ）を起動するのに必要なコンポーネントを、優先的に起動することで、優先アプリ起動までの時間を短縮することができる。
また、互いに依存関係のある複数のソフトウェアコンポーネントについて、優先起動が設定された優先アプリケーションを起動するのに必要なコンポーネントを優先的に起動することにより、優先アプリケーションの起動までの時間を短縮することができる。
【産業上の利用可能性】
【００７６】
この発明による情報処理装置は、ファクシミリ装置，プリンタ，スキャナ，複写機，複合機等の画像形成装置，パーソナルコンピュータにおいて適用することができる。
【符号の説明】
【００７７】
１：複合機    ２：制御部    ３：ＨＤＤ    ４：メモリ    ５：操作部    ６：スキャナユニット    ７：プロッタユニット    １０：コンポーネント管理部    １１：起動部    １２：インストール部    １３：アンインストール部    １４：バージョンアップ部    ２１：プログラム    ２２：属性情報    ２３：重み付き依存情報    ２４：設定値    ２５：起動順位情報    ２６：優先アプリ設定情報    ３０：コピーアプリＵＩ・ＣＭＰ    ３１：コピーアプリＣＭＰ    ３２：読取ＵＩ・ＣＭＰ    ３３：印刷ＵＩ・ＣＭＰ    ３４：蓄積ＵＩ・ＣＭＰ    ３５：ＵＩ制御ＣＭＰ    ３６：読取ＣＭＰ    ３７：印刷ＣＭＰ    ３８：蓄積ＣＭＰ    ３９：操作部ＣＭＰ    ４０：エンジンＣＭＰ    ４１：メモリＣＭＰ    ４２：ＨＤＤ・ＣＭＰ
【先行技術文献】
【特許文献】
【００７８】
【特許文献１】特開平５−２５０１６８号公報
【特許文献２】特開２００６−２６８３７７号公報
【特許文献３】特開２００６−２５９８７３号公報
【図１】
2011043932.tif 000003
【図２】
2011043932.tif 000004
【図３】
2011043932.tif 000005
【図４】
2011043932.tif 000006
【図５】
2011043932.tif 000007
【図６】
2011043932.tif 000008
【図７】
2011043932.tif 000009
【図８】
2011043932.tif 000010
【図９】
2011043932.tif 000011
【図１０】
2011043932.tif 000012
【図１１】
2011043932.tif 000013
【図１２】
2011043932.tif 000014