JP2011043932A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2011043932A
JP2011043932A JP2009190676A JP2009190676A JP2011043932A JP 2011043932 A JP2011043932 A JP 2011043932A JP 2009190676 A JP2009190676 A JP 2009190676A JP 2009190676 A JP2009190676 A JP 2009190676A JP 2011043932 A JP2011043932 A JP 2011043932A
Authority
JP
Japan
Prior art keywords
cmp
component
weighted
information
components
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009190676A
Other languages
English (en)
Inventor
Hiroyuki Matsushima
弘幸 松島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009190676A priority Critical patent/JP2011043932A/ja
Publication of JP2011043932A publication Critical patent/JP2011043932A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】 システム起動時に優先して起動するように設定された優先アプリケーションによる機能が利用可能になるまでの時間を短縮する。
【解決手段】 複合機1にインストールされた複数種類のアプリケーションプログラムを動作させるのに必要な複数のソフトウェアコンポーネントについて、HDD3に、各ソフトウェアコンポーネント20の起動順位に関する重み付き依存情報23を保持し、起動部11は、HDD3に保持している各ソフトウェアコンポーネント20の重み付き依存情報23に基づいて各コンポーネントの起動順位を決定し、その決定した起動順位に従って各コンポーネントをそれぞれ起動する。
【選択図】 図1

Description

この発明は、ファクシミリ装置,プリンタ,スキャナ,複写機,複合機等の画像形成装置,パーソナルコンピュータを含む情報処理装置に関する。
情報処理装置においては、例えば、コピー,プリンタ,スキャナ,ファクシミリ(FAX)などの多くの機能を備えたデジタル複合機は、汎用OS上にそれらの機能を実現するためのアプリケーションプログラム(「アプリ」と略称する)を動作させるのに必要なソフトウェアコンポーネントを搭載して構成されるため、システム起動に多くの時間を要する。
また、システム起動時に最初に起動するアプリを「優先アプリ」に設定すれば、その優先アプリで実現される機能を最初に表示することができ、その優先アプリを設定により変更することができるが、特に、主電源投入(主電源ON)から優先アプリの起動が完了するまでの時間はより短くすることが期待される。
従来、大容量記憶装置内に格納されたプログラムを主記憶に転送複写して起動するプログラム起動部を有するコンピュータシステムのプログラム起動方式において、大容量記憶装置内に、それぞれのプログラムの起動時に既に起動済でなければならない他のプログラムとの依存関係を示す起動順位設定情報を記憶し、プログラム起動部に、起動順位設定順に記述された依存関係に従ってプログラムを起動する起動手段を設け、プログラム起動時には起動手段が起動順位設定情報に記述された依存関係に従ってプログラムを起動することにより、コンピュータシステムの起動時間を最短にし、同時にシステム設計者の負担を軽くするようにした第1の情報処理装置(例えば、特許文献1参照)があった。
また、電子機器の起動が開始されると、ROMからユーザ操作に係わるコンポーネントのコンポーネント関係依存情報を読み出して、コンポーネント関係依存情報に関するコンポーネントを優先的に起動する。すなわち、ユーザ操作に係わる部分を優先的に起動するが、UI制御部は、UI管理部及びUI要求受付部と依存関係があり、UI管理部が入力装置管理部及び出力装置管理部と依存関係があるので、まず、UI要求受付部,入力装置管理部,及び出力装置管理部の起動を開始し、UI要求受付部,入力装置管理部,及び出力装置管理部の全ての起動が完了したところでUI管理部の起動を開始し、UI管理部の起動が終了したところで、UI制御部の起動を開始して、UI制御部の起動が終了したところで、ユーザ操作を可能にすることにより、プログラム起動時間を短縮すると共に、操作可能状態へ移行するまでの時間短縮を可能にした第2の情報処理装置(例えば、特許文献2参照)があった。
さらに、基本プログラム及び特定の機能を実現する機能プログラム(基本プログラム及びコピープログラム)を起動プログラムによって先に起動させ、特定の機能(コピー機能)が利用可能になった後、起動プログラムの動作開始から一定の時間が経過した場合に、未起動の機能プログラム(フォントプログラム及びプリンタプログラム)を起動させることにより、利用者が必要としている機能を提供するプログラムのみを先行して起動させ、利用者が必要としている機能を電源投入後すぐに利用できるようにすると共に、利用者が必要としている機能の起動に不要なプログラムが、利用者が必要としている機能を提供するプログラムの動作を邪魔しないことにより、見掛け上の起動時間を短くした第3の情報処理装置(例えば、特許文献3参照)があった。
しかしながら、上述した従来の第1の情報処理装置では、各コンポーネント間の依存関係を木構造の起動順位設定情報として保持し、木構造の末端(他のどのコンポーネントからも依存されないコンポーネント)から順に起動していくことで、最大限の並行処理を実現している。全てのコンポーネントの起動完了までに要する時間は最小化することができるが、コンポーネントの数が増大した場合に、特定の機能の起動時間は必ずしも早くならないし、木構造を解析する処理に要する時間が起動時間に影響を与え、起動時間が遅くなるという問題があった。
また、上述した従来の第2の情報処理装置では、UIに関連するコンポーネントのみを先に起動することで、ユーザ操作可能になるまでの時間を短縮することはできるが、例えば、コピー機能においてスタートボタンを押下した時点では、ジョブ制御に関連するコンポーネントの起動が完了しておらず、ボタン押下からコピー開始までの時間は逆に遅くなる可能性があるという問題があった。なお、特定機能に関するコンポーネントのみのコンポーネント関係依存情報の作成方法、コンポーネント構成変更時のコンポーネント関係依存情報の更新方法については詳細が不明である。
一方、上述した従来の第3の情報処理装置では、優先アプリを先に起動することで、利用者が必要とする機能を短時間で利用可能にしているが、優先アプリを起動するために必要なコンポーネントについては、リストとして保持する方法、依存関係に基づいて動的,静的に解決する方法が取られているが、利用者にとって扱いやすい程度に分割できているか否かを示す目安の粒度についてみると、粒度の大きいソフトウェアコンポーネントで構成されているため、例えば必ず最初に起動する基本プログラムには、優先アプリには必要のない機能が含まれている可能性がある。また、より最適な起動時間を実現するためには、小粒度のコンポーネントに対して起動順位の制御を行う必要があるが十分とは言えないという問題があった。
この実施例の情報処理装置では、システム起動時に優先して起動するように設定された優先アプリケーションによる機能が利用可能になるまでの時間を短縮することを目的とする。
この発明は上記の目的を達成するため、複数のソフトウェアコンポーネントを有し、その各ソフトウェアコンポーネントを起動することによって各種の機能を実現する情報処理装置であって、上記各ソフトウェアコンポーネントについて、それぞれ依存する下位のソフトウェアコンポーネントの起動順位に関する重み付き依存情報を保持する手段と、上記保持している重み付き依存情報に基づいて上記各ソフトウェアコンポーネントの起動順位を決定する起動順位決定手段と、上記決定した起動順位に従って上記各ソフトウェアコンポーネントをそれぞれ起動する起動手段を備えた情報処理装置を提供する。
また、上記重み付き依存情報について、初期化に時間のかかる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他の下位のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも大きくするとよい。
さらに、上記重み付き依存情報について、ユーザ操作を実現するソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも大きくするとよい。
また、上記重み付き依存情報について、起動しなくても上位のソフトウェアコンポーネントの基本機能を実現できる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも小さくするとよい。
さらに、上記下位のソフトウェアコンポーネントを、上記上位のソフトウェアコンポーネントの関連する付加機能として選択されるまでは起動しないようにするとよい。
また、システム起動時に最初に起動するアプリケーションを設定する設定手段を設け、上記起動順位決定手段は、上記各ソフトウェアコンポーネントの内、上記設定手段によって設定されたアプリケーションを動作させるために必要なソフトウェアコンポーネントを依存の起点とし、その依存の起点としたソフトウェアコンポーネントと依存する各ソフトウェアコンポーネントとについてそれぞれの重み付き依存情報に基づいて起動順位を決定し、上記起動手段は、上記依存の起点としたソフトウェアコンポーネントと依存する各ソフトウェアコンポーネントとを、その他のソフトウェアコンポーネントよりも先に起動するようにするとよい。
さらに、上記決定した起動順位を保存する保存手段を設け、上記起動手段は前記保存手段に保存された起動順位に従って上記各ソフトウェアコンポーネントをそれぞれ起動するとよい。
さらにまた、コンポーネントのインストール,アンインストール,又はバージョンアップのタイミングで、上記保存手段に保存された起動順位を再決定して保存し直す手段を設けるとよい。
この発明による情報処理装置は、システム起動時に優先して起動するように設定された優先アプリケーションによる機能が利用可能になるまでの時間を短縮することができる。
この発明の情報処理装置の一実施例である複合機の機能構成を示すブロック図である。 図1に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの依存関係を示すグラフの図である。 図1に示す重み付き依存情報を定義したXMLファイルの一例を示す説明図である。 図1に示す起動部におけるコンポーネントの起動順位を決定するための各コンポーネントの得点計算処理を示すフローチャート図である。
図1に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの重み付き依存情報に基づく決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。 図1に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、初期化に時間のかかるコンポーネントの重み付き依存情報に大きな重みをつけた場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。 図1に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、ユーザ操作を実現するコンポーネントに対する重み付き依存情報の重みを他よりも大きくした場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
図1に示す複合機で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、上位のコンポーネントの付加機能に関連する下位のコンポーネントに対する依存の重みを小さくした場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。 図1に示す複合機にインストールされた複数種類のアプリケーションを動作させるのに必要な各コンポーネントの依存関係を示すグラフの図である。
図1に示す複合機にインストールされたコピーアプリとスキャナアプリの2種類のアプリを動作させる際、コピーアプリが優先設定された場合に先に起動するコンポーネントを示すグラフの図である。 図1に示す複合機にインストールされたコピーアプリとスキャナアプリの2種類のアプリを動作させる際、スキャナアプリが優先設定された場合に先に起動するコンポーネントを示すグラフの図である。 起動順位情報の内容の一例を示す図である。
以下、この発明を実施するための形態を図面に基づいて具体的に説明する。
〔実施例〕
図1は、この発明の情報処理装置の一実施例である複合機の機能構成を示すブロック図である。
この複合機1は、スキャナ,プリンタ,コピー(複写)の各機能を備えた画像形成装置であり、CPUによって実現される制御部2と、大容量の記憶装置であるハードディスク装置(HDD)3と、制御部2が実行するプログラムを記憶したROM、及び制御部2がROMのプログラムを実行する際に作業領域として使用するRAMのメモリ4と、ユーザが各種の操作情報を入力すると共に、ユーザに各種の作業画面やメッセージを表示する操作部5と、原稿の画像を読み取るスキャナユニット6と、画像データに基づく画像を用紙に印刷するプロッタユニット7と、インターネット,ローカルエリアネットワーク,公衆回線を含むネットワークと通信を行う通信ユニット8を備えている。
制御部2は、ROMのプログラムを実行することにより、コンポーネント管理部10の機能を果たす。
コンポーネント管理部10は、起動部11,インストール部12,アンインストール部13,バージョンアップ部14の各機能を果たす。
起動部11は、システム起動時、この複合機1に搭載されている複数のソフトウェアコンポーネントをその起動順位に従って起動させる制御を司る。
インストール部12は、この複合機1のシステムにコンポーネントをインストールする制御を司る。
アンインストール部13は、この複合機1のシステムにインストールされたコンポーネントをアンインストールする制御を司る。
バージョンアップ部14は、この複合機1のシステムにインストールされたコンポーネントをバージョンアップする制御を司る。
HDD3は、汎用OS上にコピー,プリンタ,スキャナ,ファクシミリの機能を実現するためのアプリケーションプログラム(「アプリ」と略称する)を動作させるのに必要なソフトウェアコンポーネント(以下「コンポーネント」と略称する)20のデータを記憶している。
各コンポーネント20は、そのコンポーネントの機能を実現するプログラム21と、名称,開発元情報,重み付き依存情報23を含む属性情報22と、設定値24を含む。
起動順位情報25は、起動部11が各コンポーネント20の重み付き依存情報23から決定した各コンポーネント20の起動順位である。
優先アプリ設定情報26は、この複合機1のシステム起動時に優先して起動する(最初に起動して最も早い段階で利用可能にする)アプリを示す情報である。
この複合機1のシステムのソフトウェア(プログラム)は、後述するように複数のコンポーネントで構成されており、それらの各コンポーネント間には依存関係が存在する。
例えば、コンポーネントAが動作するためにはコンポーネントBが必要である場合、コンポーネントAとBには依存関係があり、コンポーネントAはコンポーネントBに依存しているという。
システム起動時には、コンポーネントBがコンポーネントAより先に起動していることが望ましい。このような依存関係を示すデータを依存情報と呼ぶ。
各コンポーネント間の依存関係は、依存する側のコンポーネント(上述の例ではコンポーネントA)の仕様により決定されるものであるため、依存情報は依存する側のコンポーネントの属性情報の1つである。
そして、全てのコンポーネントが保持する依存情報に基づいて各コンポーネントの依存関係をグラフで示すことができる。
まず、この実施例の参考となる技術として、通常の依存情報を用いた起動処理について説明する。
図2は、図1に示す複合機1で実行するコピーアプリケーションプログラム(以下「コピーアプリ」と略称する)を動作させるのに必要な各コンポーネントの依存関係を示すグラフの図である。
この複合機1は、コピーアプリケーションを動作させるために、コピーアプリケーションユーザインタフェース(UI)・コンポーネント(CMP)30,コピーアプリケーションコンポーネント(CMP)31,読取ユーザインタフェース(UI)・コンポーネント(CMP)32,印刷ユーザインタフェース(UI)・コンポーネント(CMP)33,蓄積ユーザインタフェース(UI)・コンポーネント(CMP)34,ユーザインタフェース(UI)制御コンポーネント(CMP)35,読取コンポーネント(CMP)36,印刷コンポーネント(CMP)37,蓄積コンポーネント(CMP)38,操作部コンポーネント(CMP)39,エンジンコンポーネント(CMP)40,メモリコンポーネント(CMP)41,ハードディスクドライブ(HDD)コンポーネント(CMP)42の各機能を利用する。
この各コンポーネントは、制御部2のコンポーネント管理部10の起動部11が、HDD3に記憶したそれぞれ対応するソフトウェアコンポーネント20のプログラム21を実行することによって実現される。
コピーアプリケーションUI・CMP(以下「コピーアプリUI・CMP」と略称する)30は、この複合機1におけるコピー機能のユーザインターフェースであり、コピー動作の際の読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34間を連携させる制御を行う。
コピーアプリケーションCMP(以下「コピーアプリCMP」と略称する)31は、読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34の各コンポーネントを利用してコピー機能を実現する制御を行う。
読取UI・CMP32は、原稿の画像を読み取る(スキャンする)際のパラメータ設定を行うためのユーザインターフェースの制御を行う。
印刷UI・CMP33は、印刷のパラメータ設定を行うためのユーザインターフェースの制御を行う。
蓄積UI・CMP34は、画像蓄積のパラメータ設定を行うためのユーザインターフェースの制御を行う。
UI制御CMP35は、コピーアプリUI・CMP30,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34の各UIコンポーネントを統括し、操作部CMP39を利用して操作部5に各種の作業画面とメッセージの表示と、ユーザからの各種の操作情報の入力を実現する制御を行う。
読取CMP36は、エンジンCMP40の制御を介してスキャナユニット6を動作させて原稿の画像を読み取り、その画像データを作成し、メモリ4上にその画像データを展開する制御を行う。
印刷CMP37は、エンジンCMP40の制御を介してプロッタユニット7を動作させて、メモリ4上の画像データを用紙に印刷する制御を行う。
蓄積CMP38は、HDD・CMP42の制御を介して、メモリ4上の画像データをHDD3に蓄積する制御を行う。
操作部CMP39は、操作部5の入力及び表示のデバイス制御を行う。
エンジンCMP40は、スキャナユニット6,プロッタユニット7の駆動制御を行う。
メモリCMP41は、メモリ4へのデータの読み書きのメモリ管理の制御を行う。
HDD・CMP42は、HDD3へのデータの読み書きの制御を行う。
この複合機1では、参考技術の処理として、図2に示す依存関係にある各コンポーネントを起動する際、下位のコンポーネント(グラフの末端(依存される側)のコンポーネント)から順に起動することにより、システムを正常に起動することができる。
図2に示すコピーアプリを動作させるために必要な各コンポーネントの場合、依存関係を示すグラフの末端に位置する下位のコンポーネントは、操作部CMP39,エンジンCMP40,メモリCMP41,HDD・CMP42であるから、それらの各コンポーネントを最初に起動し、それらの各コンポーネントについてそれぞれ依存関係を逆にたどるように上位のコンポーネントを順次起動していく。その際、複数のコンポーネントに依存するコンポーネントについては、それらの依存する全てのコンポーネントよりも後に起動する。例えば、読取UI・CMP32は、UI制御CMP35と読取CMP36より後に起動し、コピーアプリCMP32は、読取CMP36,印刷CMP37,蓄積CMP38より後に起動する。
このように依存関係に基づき下位レイヤから上位レイヤの順に起動すると、最上位アプリケーションの起動が多くのコンポーネントの起動完了後となるため、アプリケーションが操作可能になるまでの時間が長くなる。
次に、この実施例の複合機1における重み付き依存情報に基づく起動処理について説明する。
この複合機1では、上記各依存関係に重みを持たせ、その重みに基づいて各コンポーネントの起動順位を決定することにより、起動時間の短縮や優先起動を実現している。
その重みとは、各コンポーネントの依存関係の起動に関する優先順位を表す値であり、値が大きいほど優先順位が高いものとする。
重みは、依存する側のコンポーネントが保持する重み付き依存情報23に付与する。
上述の参考技術では、コンポーネント起動順位の決定方法において、依存関係に重みを付けていない場合であり、これは、全ての依存関係の重みが等しいということである。
重み付き依存情報23は、依存する側のコンポーネントの属性情報として、例えば、図3に示すようなXMLファイルで定義するとよい。
図3は、重み付き依存情報を定義したXMLファイルの一例を示す説明図である。
このXMLファイルでは、2行目の<name>タグが対象コンポーネントの名称を表しており、この例はコピーアプリケーションUI・CMPの重み付き依存情報である。
コピーアプリケーションUI・CMPが依存するコンポーネントは、<dependencies>タグ(3行目)の子要素<dependency>のリストとして定義する。4〜7行目では、コピーアプリケーションCMPへの重み付き依存情報が定義され、5行目の<weight>タグで重みが「1」であることを表現している。
8〜11行目でも、同様にして、UI制御CMPへの重み付き依存情報で重みが「2」に定義されている。
図4は、図1に示す起動部11におけるコンポーネントの起動順位を決定するための各コンポーネントの得点計算処理を示すフローチャート図である。
起動部11は、各アプリケーションプログラム毎に、そのアプリを動作させるのに必要な複数のコンポーネント(CMP)について、ステップ(図中「S」で示す)1で、HDDの全CMPの重み付き依存情報を参照し、ステップ2で、他のどのCMPからも依存されないCMPの得点を「0」に設定し、ステップ3で、得点計算の終わったCMPだけから依存されるCMPを探し、ステップ4で、探し出したCMPについて依存元CMPの得点と重み付き依存情報から得点を計算し、ステップ5で、全CMPの得点計算を終了したか否かを判断し、終了しなければ、ステップ3へ戻って、次のCMPについての得点計算を実施し、ステップ5の判断で、全CMPの得点計算を終了したら、この処理を終了する。
次に、この複合機1において、コピーアプリケーションを動作させるために必要な各コンポーネントの起動順位を、各コンポーネントの重み付き依存情報に基づく決定アルゴリズムについて詳しく説明する。
ここでは、コンポーネント管理部10の起動部11における起動順位の決定アルゴリズムの説明を分かり易くするため、コピーアプリケーションを動作させるために必要な各コンポーネントである、コピーアプリUI・CMP30,コピーアプリCMP31,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34,UI制御CMP35,読取CMP36,印刷CMP37,蓄積CMP38,操作部CMP39,エンジンCMP40,メモリCMP41,HDD・CMP42の各重み付き依存情報の重みを全て同じ値の「1」にした場合を例にしている。
図5は、図1に示す複合機1で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの重み付き依存情報に基づく起動順位の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
この図では、各コンポーネントを表す矩形内に、そのコンポーネントの得点を括弧書きで記載し、その得点に基づいて決定された起動順位を矩形枠で記載している。
まず、コピーアプリケーションを動作させるために必要な各コンポーネントである、コピーアプリUI・CMP30,コピーアプリCMP31,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34,UI制御CMP35,読取CMP36,印刷CMP37,蓄積CMP38,操作部CMP39,エンジンCMP40,メモリCMP41,HDD・CMP42の内、どのコンポーネントからも依存されないコンポーネント、すなわち、依存の起点となるコンポーネントとして、コピーアプリUI・CMP30を選択し、その得点を「0」に設定する。
そして、その依存の起点となるコピーアプリUI・CMP30の他の各コンポーネントについて、他のコンポーネントから依存されるコンポーネントの得点は、依存元の各コンポーネントの得点にそれぞれ重み付き依存情報の重みを加えた値の合計として計算する。
得点計算の方法としてはこれに限るものではなく、重みの値を0.5〜1.5の間として、依存元のコンポーネントの得点に掛けた値の合計を、依存されるコンポーネントの得点としてもよい。
次に、各コンポーネントの得点について説明する。
〔1〕コピーアプリUI・CMP30は、各コンポーネントの依存の起点となるコンポーネントとして得点(0)である。
〔2〕コピーアプリCMP31は、コピーアプリUI・CMP30からのみ依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30の重み付き依存情報の重み(1)を加算し、得点(1)となる。
〔3〕読取UI・CMP32は、コピーアプリUI・CMP30からのみ依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30の重み付き依存情報の重み(1)を加算し、得点(1)となる。
〔4〕印刷UI・CMP33は、コピーアプリUI・CMP30からのみ依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30の重み付き依存情報の重み(1)を加算し、得点(1)となる。
〔5〕蓄積UI・CMP34は、コピーアプリUI・CMP30からのみ依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30の重み付き依存情報の重み(1)を加算し、得点(1)となる。
〔6〕UI制御CMP35は、コピーアプリUI・CMP30,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34の4つのコンポーネントから依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30の重み付き依存情報の重み(1)を加算した値(1)と、読取UI・CMP32の得点(1)に読取UI・CMP32の重み付き依存情報の重み(1)を加算した値(2)と、印刷UI・CMP33の得点(1)に印刷UI・CMP33の重み付き依存情報の重み(1)を加算した値(2)と、蓄積UI・CMP34の得点(1)に蓄積UI・CMP34の重み付き依存情報の重み(1)を加算した値(2)とを合計し、得点(7)となる。
〔7〕読取CMP36は、コピーアプリCMP31と読取UI・CMP32の2つのコンポーネントから依存され、コピーアプリCMP31の得点(1)にコピーアプリCMP31の重み付き依存情報の重み(1)を加算した値(2)と、読取UI・CMP32の得点(1)に読取UI・CMP32の重み付き依存情報の重み(1)を加算した値(2)とを合計し、得点(4)となる。
〔8〕印刷CMP37は、コピーアプリCMP31と印刷UI・CMP37の2つのコンポーネントから依存され、コピーアプリCMP31の得点(1)にコピーアプリCMP31の重み付き依存情報の重み(1)を加算した値(2)と、印刷UI・CMP33の得点(1)に印刷UI・CMP33の重み付き依存情報の重み(1)を加算した値(2)とを合計し、得点(4)となる。
〔9〕蓄積CMP38は、コピーアプリCMP31と蓄積UI・CMP34の2つのコンポーネントから依存され、コピーアプリCMP31の得点(1)にコピーアプリCMP31の重み付き依存情報の重み(1)を加算した値(2)と、蓄積UI・CMP34の得点(1)に蓄積UI・CMP34の重み付き依存情報の重み(1)を加算した値(2)とを合計し、得点(4)となる。
〔10〕操作部CMP39は、UI制御CMP35のみに依存され、UI制御CMP35の得点(7)にUI制御CMP35の重み付き依存情報の重み(1)を加算し、得点(8)となる。
〔11〕エンジンCMP40は、読取CMP36と印刷CMP37の2つのコンポーネントから依存され、読取CMP36の得点(4)に読取CMP36の重み付き依存情報の重み(1)を加算した値(5)と、印刷CMP37の得点(4)に印刷CMP37の重み付き依存情報の重み(1)を加算した値(5)とを合計し、得点(10)となる。
〔12〕メモリCMP41は、読取CMP36と印刷CMP37と蓄積CMP38の3つのコンポーネントから依存され、読取CMP36の得点(4)に読取CMP36の重み付き依存情報の重み(1)を加算した値(5)と、印刷CMP37の得点(4)に印刷CMP37の重み付き依存情報の重み(1)を加算した値(5)と、蓄積CMP38の得点(4)に蓄積CMP38の重み付き依存情報の重み(1)を加算した値(5)とを合計し、得点(15)となる。すなわち、(4+1)×3=15となる。
〔13〕HDD・CMP42は、蓄積CMP38のみから依存され、蓄積CMP38の得点(4)に蓄積CMP38の重み付き依存情報の重み(1)を加算し、得点(5)となる。
そして、起動順位は、上述のようにして求めたコンポーネントの得点の高い方から降順にする。
つまり、最も多い得点(15)のメモリCMP41の起動順位を「1番」にし、以下、起動順位「2番」をエンジンCMP40にし、起動順位「3番」を操作部CMP39に、起動順位「4番」をUI制御CMP35にし、起動順位「5番」をHDD・CMP42にする。
また、得点が同じであり、互いに依存関係がないコンポーネントである、読取CMP36,印刷CMP37,蓄積CMP38の3つのコンポーネントを並行に起動してもよいので、それぞれ起動順位を「6番」にする。
さらに、同じく得点が同じであり互いに依存関係がない、コピーアプリCMP31,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34の4つのコンポーネントの起動順位「7番」とする。
そして、最も得点の少ないコピーアプリUI・CMP30を最後の起動順位「8番」とする。
上述の説明では、重み付き依存情報に基づく各コンポーネントの起動順位の決定アルゴリズムの詳細を分かり易くするため、各コンポーネントの重みを全て同じにした場合を説明したが、このように各重みを全て同じにすると、重み付けなしの場合と等しく、すなわち、従来技術と同様に、下位レイヤから上位レイヤの順に、かつ多くのコンポーネントから依存されるコンポーネントから起動することになり、他のコンポーネントに依存するコンポーネントの起動が後になるため、アプリケーションが操作可能になるまでの時間が長くなる。
そこで、以降で説明する実施例の各コンポーネントの起動順位の決定アルゴリズムでは、各コンポーネントに付与する重みをうまく設定することにより、アプリケーションプログラムの実行に必要な互いに依存関係にある複数のコンポーネントを起動する際、依存の重みが大きいコンポーネントから順に効率よく起動することにより、アプリケーションが操作可能になるまでの時間を大幅に短縮することができる。
また、依存関係のないコンポーネントは並行に起動しても互いの起動に影響を及ぼさないので、例えば、起動順位「1番」のメモリCMP41と、起動順位「2番」のエンジンCMP40の間には依存関係がないから、メモリCMP41の起動完了を待たずして、エンジンCMP40を並行に起動してもよい。
さらに、各コンポーネントが保持する重み付き依存情報に基づいて汎用的なアルゴリズムで各コンポーネントの起動順位を決定する仕組みを備えたことにより、任意のコンポーネントをインストール又はアンインストールしても、起動順位を簡単に再構成することができる。
次に、上述のコピーアプリケーションを動作させるために必要な各コンポーネントの起動順位を決定する場合、操作部5,スキャナユニット6,プロッタユニット7,HDD3のようなハードウェアを制御するコンポーネント、すなわち、操作部CPU39,エンジンCMP40,HDD・CMP42は、起動時にハードウェアの初期化を行うため、初期化に要する時間が大きい。
そのようなコンポーネントはなるべく早い段階で起動しておくことで、システム全体の起動時間をより短縮することができる。
そこで、初期化に時間のかかる下位のコンポーネントに対する重み付き依存情報の重みを、その他の下位のコンポーネントに対する重み付き依存情報の重みよりも大きくすることで、この制御を実現する。
図6は、図1に示す複合機1で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、初期化に時間のかかるコンポーネントの重み付き依存情報に大きな重みをつけた場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
この例では、操作部CMP39,エンジンCMP40,HDD・CMP42の各コンポーネントに対する依存により重みを付けるため、UI制御CMP35の操作部CMP39に対する重み付き依存情報の重みと、読取CMP36のエンジンCMP40に対する重み付き依存情報の重みと、印刷CMP37のエンジンCMP40に対する重み付き依存情報の重みと、蓄積CMP38のHDD・CMP42に対する重み付き依存情報の重みを、それぞれ「5」にしている。その他のコンポーネントの各重み付き依存情報の重みは上述と同じように「1」のままにしている。
次に、この重みに基づいて上述と同様に各コンポーネントの得点について説明する。
コピーアプリUI・CMP30,コピーアプリCMP31,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34,UI制御CMP35,読取CMP36,印刷CMP37,蓄積CMP38の得点は、上述の図5に示した値と同じなので、説明を省略する。
〔1〕操作部CMP39は、UI制御CMP35のみに依存され、UI制御CMP35の得点(7)にUI制御CMP35の重み付き依存情報の重み(5)を加算し、得点(12)となる。
〔2〕エンジンCMP40は、読取CMP36と印刷CMP37の2つのコンポーネントから依存され、読取CMP36の得点(4)に読取CMP36のエンジンCMP40に対する重み付き依存情報の重み(5)を加算した値(9)と、印刷CMP37の得点(4)に印刷CMP37のエンジンCMP40に対する重み付き依存情報の重み(5)を加算した値(9)とを合計し、得点(18)となる。
〔3〕メモリCMP41は、読取CMP36と印刷CMP37と蓄積CMP38の3つのコンポーネントから依存され、読取CMP36の得点(4)に読取CMP36のメモリCMP41に対する重み付き依存情報の重み(1)を加算した値(5)と、印刷CMP37の得点(4)に印刷CMP37のメモリCMP41に対する重み付き依存情報の重み(1)を加算した値(5)と、蓄積CMP38の得点(4)に蓄積CMP38のメモリCMP41に対する重み付き依存情報の重み(1)を加算した値(5)とを合計し、得点(15)となる。すなわち、(4+1)×3=15となる。
〔4〕HDD・CMP42は、蓄積CMP38のみから依存され、蓄積CMP38の得点(4)に蓄積CMP38のHDD・CMP42に対する重み付き依存情報の重み(5)を加算し、得点(9)となる。
そして、起動順位は、上述と同様にしてコンポーネントの得点の高い方から降順にすると、最も多い得点(18)のエンジンCMP40の起動順位を「1番」にし、以下、起動順位「2番」をメモリCMP41にし、起動順位「3番」を操作部CMP39に、起動順位「4番」をHDD・CMP42にし、起動順位「5番」をUI制御CMP35にする。
以下、起動順位「6番」「7番」「8番」は上述の場合と同じである。
このようにして、初期化に時間のかかるHDD・CMP42の起動順位を、初期化に時間のかからないUI制御CMP35よりも先に起動することができ、起動時間をより短縮することができる。
次に、上述のコピーアプリケーションを動作させるために必要な各コンポーネントの起動順位を決定する場合、見かけ上の起動時間を早くするためには、まずユーザ操作に関わるコンポーネント、すなわち、コピーアプリUI・CMP30,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34,UI制御CMP35,操作部CMP39を他のコンポーネントよりも先に起動して、ロジック部の初期化を後に遅延させるのも有効である。
つまり、いち早くユーザ操作が可能な状態にして、設定等を入力している間に他のコンポーネントの初期化を行うのである。
そこで、ユーザ操作を実現するコンポーネントに対する重み付き依存情報の重みを、その他のコンポーネントに対する重み付き依存情報の重みよりも大きくすることで、この制御を実現する。
また、コピーアプリUI・CMP30,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34は、それぞれ対応するロジックコンポーネントであるコピーアプリCMP31,読取CMP36,印刷CMP37,蓄積CMP38に必ず依存するが、それらの重み付き依存情報の重みを他よりも小さくすることで、ロジックコンポーネントの遅延起動を実現する。
図7は、図1に示す複合機1で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、ユーザ操作を実現するコンポーネントに対する重み付き依存情報の重みを他よりも大きくした場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
この例では、コピーアプリUI・CMP30のUI制御CMP35,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34に対する各重み付き依存情報の重みをそれぞれ「2」にし、コピーアプリCMP31に対する重み付き依存情報の重みは「−2」にしている。
また、読取UI・CMP32については、UI制御CMP35に対する重み付き依存情報の重みを「2」にし、読取CMP36に対する重み付き依存情報の重みを「−2」にしている。
さらに、印刷UI・CMP33については、UI制御CMP35に対する重み付き依存情報の重みを「2」にし、印刷CMP37に対する重み付き依存情報の重みを「−2」にしている。
また、蓄積UI・CMP34については、UI制御CMP35に対する重み付き依存情報の重みを「2」にし、蓄積CMP38に対する重み付き依存情報の重みを「−2」にしている。
さらに、UI制御CMP35については、操作部CMP39に対する重み付き依存情報の重みを「2」にしている。
その他は上述と同じように「1」のままである。
次に、この重みに基づいて上述と同様に各コンポーネントの得点について説明する。
〔1〕コピーアプリUI・CMP30は、各コンポーネントの依存の起点となるコンポーネントとして得点(0)である。
〔2〕コピーアプリCMP31は、コピーアプリUI・CMP30からのみ依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30のコピーアプリCMP31に対する重み付き依存情報の重み(−2)を加算し、得点(−2)となる。
〔3〕読取UI・CMP32は、コピーアプリUI・CMP30からのみ依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30の読取UI・CMP32に対する重み付き依存情報の重み(2)を加算し、得点(2)となる。
〔4〕印刷UI・CMP33は、コピーアプリUI・CMP30からのみ依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30の印刷UI・CMP33に対する重み付き依存情報の重み(2)を加算し、得点(2)となる。
〔5〕蓄積UI・CMP34は、コピーアプリUI・CMP30からのみ依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30の蓄積UI・CMP34に対する重み付き依存情報の重み(2)を加算し、得点(2)となる。
〔6〕UI制御CMP35は、コピーアプリUI・CMP30,読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34の4つのコンポーネントから依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30のUI制御CMP35に対する重み付き依存情報の重み(2)を加算した値(2)と、読取UI・CMP32の得点(2)に読取UI・CMP32のUI制御CMP35に対する重み付き依存情報の重み(2)を加算した値(4)と、印刷UI・CMP33の得点(2)に印刷UI・CMP33のUI制御CMP35に対する重み付き依存情報の重み(2)を加算した値(4)と、蓄積UI・CMP34の得点(2)に蓄積UI・CMP34のUI制御CMP35に対する重み付き依存情報の重み(2)を加算した値(4)とを合計し、得点(14)となる。
〔7〕読取CMP36は、コピーアプリCMP31と読取UI・CMP32の2つのコンポーネントから依存され、コピーアプリCMP31の得点(−2)にコピーアプリCMP31の読取CMP36に対する重み付き依存情報の重み(1)を加算した値(−1)と、読取UI・CMP32の得点(2)に読取UI・CMP32の読取CMP36に対する重み付き依存情報の重み(−2)を加算した値(0)とを合計し、得点(−1)となる。
〔8〕印刷CMP37は、コピーアプリCMP31と印刷UI・CMP37の2つのコンポーネントから依存され、コピーアプリCMP31の得点(−2)にコピーアプリCMP31の印刷CMP37に対する重み付き依存情報の重み(1)を加算した値(−1)と、印刷UI・CMP33の得点(2)に印刷UI・CMP33の印刷CMP37に対する重み付き依存情報の重み(−2)を加算した値(0)とを合計し、得点(−1)となる。
〔9〕蓄積CMP38は、コピーアプリCMP31と蓄積UI・CMP34の2つのコンポーネントから依存され、コピーアプリCMP31の得点(−2)にコピーアプリCMP31の蓄積CMP38に対する重み付き依存情報の重み(1)を加算した値(−1)と、蓄積UI・CMP34の得点(2)に蓄積UI・CMP34の蓄積CMP38に対する重み付き依存情報の重み(−2)を加算した値(0)とを合計し、得点(−1)となる。
〔10〕操作部CMP39は、UI制御CMP35のみに依存され、UI制御CMP35の得点(14)にUI制御CMP35の操作部CMP39に対する重み付き依存情報の重み(2)を加算し、得点(16)となる。
〔11〕エンジンCMP40は、読取CMP36と印刷CMP37の2つのコンポーネントから依存され、読取CMP36の得点(−1)に読取CMP36のエンジンCMP40に対する重み付き依存情報の重み(1)を加算した値(0)と、印刷CMP37の得点(−1)に印刷CMP37のエンジンCMP40に対する重み付き依存情報の重み(1)を加算した値(0)とを合計し、得点(0)となる。
〔12〕メモリCMP41は、読取CMP36と印刷CMP37と蓄積CMP38の3つのコンポーネントから依存され、読取CMP36の得点(−1)に読取CMP36のメモリCMP41に対する重み付き依存情報の重み(1)を加算した値(0)と、印刷CMP37の得点(−1)に印刷CMP37のメモリCMP41に対する重み付き依存情報の重み(1)を加算した値(0)と、蓄積CMP38の得点(−1)に蓄積CMP38のメモリCMP41に対する重み付き依存情報の重み(1)を加算した値(0)とを合計し、得点(0)となる。
〔13〕HDD・CMP42は、蓄積CMP38のみから依存され、蓄積CMP38の得点(−1)に蓄積CMP38のHDD・CMP42に対する重み付き依存情報の重み(1)を加算し、得点(0)となる。
そして、起動順位は、上述のようにして求めたコンポーネントの得点の高い方から降順にする。
つまり、最も多い得点(16)の操作部CMP39の起動順位を「1番」にし、以下、起動順位「2番」をUI制御CMP35にする。
また、得点が同じであり、互いに依存関係がないコンポーネントである、読取CMP36,印刷CMP37,蓄積CMP38の3つのコンポーネントを並行に起動してもよいので、それぞれ起動順位を「3番」にする。
さらに、同じく得点が同じである、コピーアプリUI・CMP30,エンジンCMP40,メモリCMP41,HDD・CMP42の4つのコンポーネント(エンジンCMP40,メモリCMP41,HDD・CMP42については、互いに依存関係がない)の起動順位を「4番」とする。
また、同じく得点が同じであり互いに依存関係がない、読取UI・CMP32,印刷UI・CMP33,蓄積UI・CMP34の3つのコンポーネントの起動順位を「5番」とする。
そして、最も得点の少ないコピーアプリCMP31を最後の起動順位「6番」とする。
こうして、UIコンポーネントが依存するロジックコンポーネントの起動を、UIコンポーネントの起動よりも遅延させ、UIコンポーネントがロジックコンポーネントの機能を使う必要がある場合、ロジックコンポーネントの起動完了を待つようにする。
例えば、利用者がUIでの各設定を完了し、コピージョブ実行開始のためのスタートキーを押下した際に、コピーアプリCMP31の起動が完了していなかったとすると、これが完了するまで待機する。
このようにして、操作部CMP39をいち早く起動してユーザ操作が可能な状態にするので、ユーザが操作可能になるまでの時間を短縮することができる。
次に、複雑な機能を備えたアプリケーションにおいては、いくつかの付加機能が使えない状態でも基本機能を使うことができることがある。
例えば、コピーアプリケーションにおいては、蓄積機能が使えない状態でも、プロッタに印刷する基本機能は動作可能である。
このようなケースでは、付加機能に関連する下位のコンポーネントに対する依存の重みを、他の下位のコンポーネントへの依存の重みよりも小さくする。
すなわち、起動しなくても上位のソフトウェアコンポーネントの基本機能を実現できる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも小さくすることにより、下位のコンポーネントの起動を待たずして、基本機能の利用を可能にすることができる。
図8は、図1に示す複合機1で実行するコピーアプリケーションプログラムを動作させるのに必要な各コンポーネントの起動順位を決定する際、上位のコンポーネントの付加機能に関連する下位のコンポーネントに対する依存の重みを小さくした場合の決定アルゴリズムの説明に供する各コンポーネントの依存関係を示すグラフの図である。
この例では、コピーアプリUI・CMP30の蓄積UI・CMP34に対する重み付き依存情報の重みを「−2」にし、コピーアプリCMP31の蓄積CMP38に対する重み付き依存情報の重みを「−2」にし、その他の重み付き依存情報の重みを「1」のままにしている。
次に、この重みに基づいて上述と同様に各コンポーネントの得点について説明する。
コピーアプリUI・CMP30,コピーアプリCMP31,読取UI・CMP32,印刷UI・CMP33,UI制御CMP35,読取CMP36,印刷CMP37,操作部CMP39,エンジンCMP40の得点は、上述の図5に示した値と同じなので、説明を省略する。
〔1〕蓄積UI・CMP34は、コピーアプリUI・CMP30からのみ依存され、コピーアプリUI・CMP30の得点(0)にコピーアプリUI・CMP30の蓄積UI・CMP34に対する重み付き依存情報の重み(−2)を加算し、得点(−2)となる。
〔2〕蓄積CMP38は、コピーアプリCMP31と蓄積UI・CMP34の2つのコンポーネントから依存され、コピーアプリCMP31の得点(1)にコピーアプリCMP31の蓄積CMP38に対する重み付き依存情報の重み(−2)を加算した値(−1)と、蓄積UI・CMP34の得点(−2)に蓄積UI・CMP34の蓄積CMP38に対する重み付き依存情報の重み(1)を加算した値(−1)とを合計し、得点(−2)となる。
〔3〕メモリCMP41は、読取CMP36と印刷CMP37と蓄積CMP38の3つのコンポーネントから依存され、読取CMP36の得点(4)に読取CMP36のメモリCMP41に対する重み付き依存情報の重み(1)を加算した値(5)と、印刷CMP37の得点(4)に印刷CMP37のメモリCMP41に対する重み付き依存情報の重み(1)を加算した値(5)と、蓄積CMP38の得点(−2)に蓄積CMP38のメモリCMP41に対する重み付き依存情報の重み(1)を加算した値(−1)とを合計し、得点(9)となる。
〔4〕HDD・CMP42は、蓄積CMP38のみから依存され、蓄積CMP38の得点(−2)に蓄積CMP38のHDD・CMP42に対する重み付き依存情報の重み(1)を加算し、得点(−1)となる。
そして、起動順位は、上述のようにして求めたコンポーネントの得点の高い方から降順にする。
つまり、最も多い得点(16)のエンジンCMP40の起動順位を「1番」にし、以下、起動順位「2番」をメモリCMP41にし、起動順位「3番」を操作部CMP39にし、起動順位「4番」をUI制御CMP35にする。
また、得点が同じであり、互いに依存関係がないコンポーネントである、読取CMP36と印刷CMP37の2つのコンポーネントを並行に起動してもよいので、それぞれ起動順位を「5番」にする。
さらに、同じく、コピーアプリCMP31,読取UI・CMP32,印刷UI・CMP33の3つのコンポーネントの起動順位を「6番」とする。
また、コピーアプリUI・CMP30の起動順位を「7番」とする。
そして、最も得点の少ないHDD・CMP42を最後の起動順位「8番」とする。
こうして、コピーアプリの基本機能実行には必要ない蓄積関連コンポーネントの起動がコピーアプリUI・CMP30より後になるので、コピーの基本機能が実行できるようになるまでの起動時間を短縮することができる。
また、蓄積の機能が選択された場合は、蓄積に関連するコンポーネントの起動完了を待つようにする。
ところで、基本機能実行に必要ないコンポーネントの起動を遅延させることで起動時間の短縮は実現できるが、基本機能のUI操作から実行までと並行して遅延されたコンポーネントが起動するため、起動直後のシステム負荷は高い状態となり、システム性能(例えば、コピー性能)に影響を与える恐れがある。
また、すぐに必要のない起動することでメモリ使用量が増え、同じくシステム性能に影響を与える恐れがある。
そのようなシステム性能への影響を低減するために、上記例で負の点数の得点となったコンポーネント、すなわち、蓄積UI・CMP34,蓄積CMP38,HDD・CMP42の各コンポーネントは、システム起動時に起動しないようにするとよい。
そして、それらのコンポーネントは、コピーアプリ(UI)で蓄積の機能が選択された時に起動するようにする。
すなわち、下位のソフトウェアコンポーネントは、上位のソフトウェアコンポーネントの関連する付加機能として選択されるまでは起動しないようにするとよい。
このようにして、上位のコンポーネントの基本機能が利用可能になるまでの時間を短縮することができる。また、使用されない付加機能を起動しないので、メモリ効率が向上する。
次に、この複合機1には、複数種類のアプリケーションがインストールされている。
この複合機1にインストールされた複数種類のアプリケーションの中から、システム起動時や一定期間ユーザ操作がなかった場合に表示されるアプリケーションを選択して記憶させておくことができ、これを優先アプリ設定と呼ぶ。
そして、優先アプリ設定されたアプリケーションを動作させるために必要なコンポーネントを先に起動することにより、システム起動時に優先アプリが利用可能になるまでの時間を短縮することができる。
図9は、図1に示す複合機1にインストールされたコピーアプリとスキャナアプリの2種類のアプリを動作させるのに必要な各コンポーネントの依存関係を示すグラフの図である。
同図に示すように、コピーアプリについては、図5乃至図8に示したように、30〜42の各コンポーネントが必要であり、スキャナアプリについては、さらに、スキャナアプリケーションユーザインタフェースコンポーネント(スキャナアプリケーションUI・CMP)50,スキャナアプリケーションコンポーネント(スキャナアプリケーションCMP)51,送信ユーザインタフェースコンポーネント(送信UI・CMP)52,送信コンポーネント(送信CMP)53,ネットワーク制御部54の各コンポーネントが必要である。
例えば、優先アプリ設定としてコピーアプリが選択された場合の例を示す。
図10は、図1に示す複合機1にインストールされたコピーアプリとスキャナアプリの2種類のアプリを動作させる際、コピーアプリが優先設定された場合に先に起動するコンポーネントを示すグラフの図である。
操作部5からユーザによりシステム起動時に最初に起動するアプリケーションとしてコピーアプリが設定された場合、起動部11は、コピーアプリとスキャナアプリの動作に必要な各コンポーネントの内、優先アプリ設定されたコピーアプリを動作させるために必要なコピーアプリケーションUI・CMP30を依存の起点とし、その依存の起点としたコピーアプリケーションUI・CMP30と依存する31〜42の各コンポーネントとについてそれぞれの重み付き依存情報に基づいて、上述のようにして起動順位を決定し、依存の起点としたコピーアプリケーションUI・CMP30とそれに依存する31〜42の各コンポーネントとを、その他の50〜54の各コンポーネントよりも先に起動する。
すなわち、コピーアプリケーションUI・CMP30を依存の頂点とする下位の各コンポーネントを先に起動し、それに含まれない他のコンポーネント(図中破線枠で示す各コンポーネント)の起動を遅延させる。
一方、優先アプリ設定としてスキャナアプリが選択された場合の例を示す。
図11は、図1に示す複合機1にインストールされたコピーアプリとスキャナアプリの2種類のアプリを動作させる際、スキャナアプリが優先設定された場合に先に起動するコンポーネントを示すグラフの図である。
操作部5からユーザによりシステム起動時に最初に起動するアプリケーションとしてスキャナアプリが設定された場合、起動部11は、コピーアプリとスキャナアプリの動作に必要な各コンポーネントの内、優先アプリ設定されたスキャナアプリを動作させるために必要なスキャナアプリケーションUI・CMP50を依存の起点とし、その依存の起点としたスキャナアプリケーションUI・CMP50と依存する51〜54の各コンポーネントとについてそれぞれの重み付き依存情報に基づいて、上述のようにして起動順位を決定し、依存の起点としたスキャナアプリケーションUI・CMP50とそれに依存する51〜54の各コンポーネントと、32,35,36,39,40,41の各コンポーネントとを、その他の30,31,33,34,37,38,42の各コンポーネントよりも先に起動する。
すなわち、スキャナアプリケーションUI・CMP50を依存の頂点とする下位の各コンポーネントを先に起動し、それに含まれない他のコンポーネント(図中破線枠で示す各コンポーネント)の起動を遅延させる。
このようにして、ユーザが頻繁に利用するアプリとして優先アプリ設定したアプリの起動時間を短縮することができる。
次に、この複合機1では、上述したように、システム起動処理の最初の段階で各アプリについて各コンポーネントの起動順位の決定処理を実行して起動順位を決定し、その決定した起動順位に従ってコンポーネントを起動していくことで、システムを起動することができる。
しかし、上記決定した各コンポーネントの起動順位は、システムにインストールされたコンポーネントの構成や、優先アプリ設定の内容が変更されない限りは常に同じである。
従って、上記決定した各コンポーネントの起動順位の情報(「起動順位情報」と呼ぶ)を不揮発メモリ(例えば、図1に示すHDD3の起動順位情報25)に記憶して永続化しておく。
図12は、起動順位情報の内容の一例を示す図である。
同図に示すように、起動順位情報25は、表形式のデータとして保存する。
そして、システム起動時にこの起動順位情報25を参照してコンポーネントを起動することによって、システム起動毎に同じ計算を実行する処理を省くことができ、起動時間をより短縮することができる。
このようにして、コンポーネントの構成と優先アプリ設定の内容に変更がなければ、システム起動時の度にアプリの動作に必要な各コンポーネントの起動順位の決定処理を行わなくてすむので、2回目のシステム起動からは必要なアプリを使用できるまでの時間をより短縮することができる。
次に、コンポーネントをインストール,アンインストール,バージョンアップした場合、コンポーネント間の依存関係に変更が生じる。
従って、それらのタイミングで、起動順位を再計算し、起動順位情報25の内容を更新するとよい。
したがって、各コンポーネントの重み付き依存情報を保持しておくだけで、システム起動時間を短縮するのに最適なコンポーネントの起動順位が自動的に計算されるため、コンポーネント構成の変更の度にユーザが起動順位をメンテナンスする必要がなくなる。
なお、上述の実施例では、コピーアプリを動作させるのに必要な各コンポーネントの起動順位を決定して順次起動する例を説明したが、スキャナアプリ,プリントアプリ,FAXアプリを含むその他の各種のアプリについても上述と同様にして各コンポーネントの重み付き依存情報に基づいて起動順位を決定して順次起動することにより、それぞれのアプリ起動までの時間を短縮することができる。
この実施例の情報処理装置では、ソフトウェアコンポーネント間の依存関係を解決し、優先起動設定されたアプリケーション(システム起動直後に表示されるアプリケーション、すなわち、優先アプリ)を起動するのに必要なコンポーネントを、優先的に起動することで、優先アプリ起動までの時間を短縮することができる。
また、互いに依存関係のある複数のソフトウェアコンポーネントについて、優先起動が設定された優先アプリケーションを起動するのに必要なコンポーネントを優先的に起動することにより、優先アプリケーションの起動までの時間を短縮することができる。
この発明による情報処理装置は、ファクシミリ装置,プリンタ,スキャナ,複写機,複合機等の画像形成装置,パーソナルコンピュータにおいて適用することができる。
1:複合機 2:制御部 3:HDD 4:メモリ 5:操作部 6:スキャナユニット 7:プロッタユニット 10:コンポーネント管理部 11:起動部 12:インストール部 13:アンインストール部 14:バージョンアップ部 21:プログラム 22:属性情報 23:重み付き依存情報 24:設定値 25:起動順位情報 26:優先アプリ設定情報 30:コピーアプリUI・CMP 31:コピーアプリCMP 32:読取UI・CMP 33:印刷UI・CMP 34:蓄積UI・CMP 35:UI制御CMP 36:読取CMP 37:印刷CMP 38:蓄積CMP 39:操作部CMP 40:エンジンCMP 41:メモリCMP 42:HDD・CMP
特開平5−250168号公報 特開2006−268377号公報 特開2006−259873号公報

Claims (8)

  1. 複数のソフトウェアコンポーネントを有し、該各ソフトウェアコンポーネントを起動することによって各種の機能を実現する情報処理装置であって、
    前記各ソフトウェアコンポーネントについて、それぞれ依存する下位のソフトウェアコンポーネントの起動順位に関する重み付き依存情報を保持する手段と、
    前記保持している重み付き依存情報に基づいて前記各ソフトウェアコンポーネントの起動順位を決定する起動順位決定手段と、
    前記決定した起動順位に従って前記各ソフトウェアコンポーネントをそれぞれ起動する起動手段とを備えたことを特徴とする情報処理装置。
  2. 前記重み付き依存情報について、初期化に時間のかかる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他の下位のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも大きくすることを特徴とする請求項1記載の情報処理装置。
  3. 前記重み付き依存情報について、ユーザ操作を実現するソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも大きくすることを特徴とする請求項1記載の情報処理装置。
  4. 前記重み付き依存情報について、起動しなくても上位のソフトウェアコンポーネントの基本機能を実現できる下位のソフトウェアコンポーネントに対する重み付き依存情報の重みを、その他のソフトウェアコンポーネントに対する重み付き依存情報の重みよりも小さくすることを特徴とする請求項1記載の情報処理装置。
  5. 前記下位のソフトウェアコンポーネントは、前記上位のソフトウェアコンポーネントの関連する付加機能として選択されるまでは起動しないようにしたことを特徴とする請求項4記載の情報処理装置。
  6. システム起動時に最初に起動するアプリケーションを設定する設定手段を設け、
    前記起動順位決定手段は、前記各ソフトウェアコンポーネントの内、前記設定手段によって設定されたアプリケーションを動作させるために必要なソフトウェアコンポーネントを依存の起点とし、該依存の起点としたソフトウェアコンポーネントと依存する各ソフトウェアコンポーネントとについてそれぞれの重み付き依存情報に基づいて起動順位を決定し、前記起動手段は、前記依存の起点としたソフトウェアコンポーネントと依存する各ソフトウェアコンポーネントとを、その他のソフトウェアコンポーネントよりも先に起動するようにしたことを特徴とする請求項1乃至5のいずれか一項に記載の情報処理装置。
  7. 前記決定した起動順位を保存する保存手段を設け、前記起動手段は前記保存手段に保存された起動順位に従って前記各ソフトウェアコンポーネントをそれぞれ起動することを特徴とする請求項1乃至6のいずれか一項に記載の情報処理装置。
  8. コンポーネントのインストール,アンインストール,又はバージョンアップのタイミングで、前記保存手段に保存された起動順位を再決定して保存し直す手段を設けたことを特徴とする請求項7記載の情報処理装置。
JP2009190676A 2009-08-20 2009-08-20 情報処理装置 Pending JP2011043932A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009190676A JP2011043932A (ja) 2009-08-20 2009-08-20 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009190676A JP2011043932A (ja) 2009-08-20 2009-08-20 情報処理装置

Publications (1)

Publication Number Publication Date
JP2011043932A true JP2011043932A (ja) 2011-03-03

Family

ID=43831329

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009190676A Pending JP2011043932A (ja) 2009-08-20 2009-08-20 情報処理装置

Country Status (1)

Country Link
JP (1) JP2011043932A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128838A1 (ja) 2012-03-01 2013-09-06 日本電気株式会社 システム構築手順生成装置、システム構築手順生成方法、及び、プログラム
US9235793B2 (en) 2012-12-25 2016-01-12 Ricoh Company, Ltd. Information processing apparatus, storage medium, and information processing system
JP2017520856A (ja) * 2014-07-10 2017-07-27 ハーマン インターナショナル インダストリーズ インコーポレイテッド オペレーティングシステム起動加速
JP2017521789A (ja) * 2014-07-10 2017-08-03 ハーマン インターナショナル インダストリーズ インコーポレイテッド オペレーティングシステム起動加速
JP2017521785A (ja) * 2014-07-10 2017-08-03 ハーマン インターナショナル インダストリーズ インコーポレイテッド オペレーティングシステム起動加速

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250168A (ja) * 1992-03-06 1993-09-28 Fujitsu Ltd プログラム起動方式及びプログラムインストール方式
JPH07334466A (ja) * 1994-06-14 1995-12-22 Hitachi Ltd 分散システムおよび分散システムの自動運転スケジュールの作成方法
JPH08292892A (ja) * 1995-04-24 1996-11-05 Ricoh Co Ltd 複写システム
JP2001325240A (ja) * 2000-05-12 2001-11-22 Fujitsu Ltd 制御システム及び制御するためのプログラムを記憶した記録媒体
JP2005301797A (ja) * 2004-04-14 2005-10-27 Seiko Epson Corp 起動候補制御装置、起動候補制御方法および起動候補制御プログラム
JP2006259873A (ja) * 2005-03-15 2006-09-28 Ricoh Co Ltd 情報処理装置、画像形成装置、起動プログラムおよび記憶媒体
JP2006268377A (ja) * 2005-03-23 2006-10-05 Fuji Xerox Co Ltd プログラム起動制御装置及びプログラム起動制御方法
JP2007219977A (ja) * 2006-02-20 2007-08-30 Fuji Xerox Co Ltd 情報処理装置
JP2008283623A (ja) * 2007-05-14 2008-11-20 Canon Inc デジタル複合機
JP2009048231A (ja) * 2007-08-13 2009-03-05 Mitsubishi Electric Corp 多機能情報機器及び多機能情報機器の起動方法
JP2009098789A (ja) * 2007-10-15 2009-05-07 Canon Inc 情報処理装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05250168A (ja) * 1992-03-06 1993-09-28 Fujitsu Ltd プログラム起動方式及びプログラムインストール方式
JPH07334466A (ja) * 1994-06-14 1995-12-22 Hitachi Ltd 分散システムおよび分散システムの自動運転スケジュールの作成方法
JPH08292892A (ja) * 1995-04-24 1996-11-05 Ricoh Co Ltd 複写システム
JP2001325240A (ja) * 2000-05-12 2001-11-22 Fujitsu Ltd 制御システム及び制御するためのプログラムを記憶した記録媒体
JP2005301797A (ja) * 2004-04-14 2005-10-27 Seiko Epson Corp 起動候補制御装置、起動候補制御方法および起動候補制御プログラム
JP2006259873A (ja) * 2005-03-15 2006-09-28 Ricoh Co Ltd 情報処理装置、画像形成装置、起動プログラムおよび記憶媒体
JP2006268377A (ja) * 2005-03-23 2006-10-05 Fuji Xerox Co Ltd プログラム起動制御装置及びプログラム起動制御方法
JP2007219977A (ja) * 2006-02-20 2007-08-30 Fuji Xerox Co Ltd 情報処理装置
JP2008283623A (ja) * 2007-05-14 2008-11-20 Canon Inc デジタル複合機
JP2009048231A (ja) * 2007-08-13 2009-03-05 Mitsubishi Electric Corp 多機能情報機器及び多機能情報機器の起動方法
JP2009098789A (ja) * 2007-10-15 2009-05-07 Canon Inc 情報処理装置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128838A1 (ja) 2012-03-01 2013-09-06 日本電気株式会社 システム構築手順生成装置、システム構築手順生成方法、及び、プログラム
JPWO2013128838A1 (ja) * 2012-03-01 2015-07-30 日本電気株式会社 システム構築手順生成装置、システム構築手順生成方法、及び、プログラム
US9235793B2 (en) 2012-12-25 2016-01-12 Ricoh Company, Ltd. Information processing apparatus, storage medium, and information processing system
JP2017520856A (ja) * 2014-07-10 2017-07-27 ハーマン インターナショナル インダストリーズ インコーポレイテッド オペレーティングシステム起動加速
JP2017521789A (ja) * 2014-07-10 2017-08-03 ハーマン インターナショナル インダストリーズ インコーポレイテッド オペレーティングシステム起動加速
JP2017521785A (ja) * 2014-07-10 2017-08-03 ハーマン インターナショナル インダストリーズ インコーポレイテッド オペレーティングシステム起動加速
US10423430B2 (en) 2014-07-10 2019-09-24 Harman International Industries, Incorporated Operating system startup acceleration

Similar Documents

Publication Publication Date Title
JP5724344B2 (ja) 画像形成装置、カスタマイズ制御方法及びカスタマイズ制御プログラム
JP4039439B2 (ja) 画像形成装置及び画像形成装置の機能追加方法
US20150149759A1 (en) Electronic Device Including a Memory Technology Device
JP2007325251A (ja) 画像形成装置及びアプリケーション実行方法
JP6015429B2 (ja) 情報処理装置、プログラム、情報処理システム
JP4974546B2 (ja) 画像処理装置及びその制御方法とプログラム
JP2008041057A (ja) 画像処理装置、画像形成装置、プログラム管理方法及びプログラムを管理する管理プログラム
JP2011043932A (ja) 情報処理装置
JP2007251517A (ja) 画像形成装置、画像形成方法、その方法をコンピュータに実行させるプログラム
JP2010092458A (ja) 画像処理装置、プログラム起動方法
JP2008162206A (ja) 画像形成装置、ジョブ処理方法、記憶媒体、プログラム
JP5458838B2 (ja) 画像形成装置と画像形成装置の障害復旧方法とプログラム
JP5116539B2 (ja) ジョブ処理装置、ジョブ処理装置の制御方法、記憶媒体及びプログラム
JP6961412B2 (ja) 画像形成装置、画像形成装置の制御方法、およびプログラム
JP2012160129A (ja) 画像形成装置、編集制御方法及び編集制御プログラム
JP5821318B2 (ja) 画像処理装置、マクロ名称決定方法及びマクロ名称決定プログラム
JP5169718B2 (ja) 情報処理装置、表示画面起動方法、及びプログラム
JP6669101B2 (ja) 電子機器及び起動シーケンス生成プログラム
JP2005269439A (ja) 画像形成装置、情報処理方法、情報処理プログラム、及び記録媒体
JP5353771B2 (ja) 画像形成装置、画像処理装置、画像処理システム、画像処理方法、プログラム、及び記録媒体
JP6987530B2 (ja) 画像形成装置、情報処理方法及びプログラム
JP6024782B2 (ja) 画像形成装置、カスタマイズ制御方法及びカスタマイズ制御プログラム
JP2007279988A (ja) 情報処理装置およびドライバプログラム
JP2010218469A (ja) 情報処理装置、情報処理方法、プログラムおよび記録媒体
JP5442090B2 (ja) ジョブ処理装置、ジョブ処理装置の制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120612

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130725

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130820

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130919

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131210