(57)【特許請求の範囲】
【請求項１】
複数のプログラムを実装する電子機器であって、
前記複数のプログラムを起動する条件を格納する格納部から該条件を取得する条件取得部と、
前記条件取得部により取得された条件に従って、前記複数のプログラムの起動を制御し、前記複数のプログラムのうちの１以上のプログラムを起動させ、該１以上のプログラムの起動から一定時間以上遅延させて、該１以上のプログラム以外の他のプログラムを起動させる制御部と、
前記１以上のプログラムを起動させたときの起動時間を含む履歴情報を蓄積する蓄積部と、
前記蓄積部により蓄積された前記履歴情報に基づき、前記１以上のプログラムにより実現される機能に対して設定された前記他のプログラムを遅延起動させる時間間隔を補正する補正部とを含む、電子機器。
【請求項２】
前記他のプログラムを遅延起動させる時間間隔は、前記複数のプログラムにより実現される複数の機能の各々に対して設定されており、
前記制御部が、前記条件で指定された前記１以上のプログラムにより実現される機能に対して設定された前記時間間隔に基づき、前記他のプログラムを遅延させて起動させる、請求項１に記載の電子機器。
【請求項３】
前記１以上のプログラムにより動作するハードウェアに対して該ハードウェアの状態を問い合わせ、該状態を取得する状態取得部を含み、
前記補正部は、前記状態取得部により取得された前記状態に基づき、前記１以上のプログラムにより実現される機能に対して設定された前記他のプログラムを遅延起動させる時間間隔を補正する、請求項１または２に記載の電子機器。
【請求項４】
前記他のプログラムにより実現される機能の選択を受け付ける選択受付部を含み、
前記制御部が、前記一定時間が経過した後、前記選択受付部が前記機能の選択を受け付けたときに、前記他のプログラムを起動させる、請求項１〜３のいずれか１項に記載の電子機器。
【請求項５】
複数のプログラムの起動を制御する方法であって、
前記複数のプログラムを起動する条件を格納する格納部から該条件を取得するステップと、
取得された条件に従って、前記複数のプログラムの起動を制御するステップとを含み、
前記制御するステップが、
複数のプログラムのうちの１以上のプログラムを起動させるステップと、
前記１以上のプログラムの起動から少なくとも一定時間が経過するまで、該１以上のプログラム以外の他のプログラムの起動を待機するステップと、
前記一定時間が経過した後、前記他のプログラムを起動させるステップとを含み、
前記方法は、さらに、前記１以上のプログラムを起動させるステップの後であって、前記他のプログラムの起動を待機するステップの前に、前記１以上のプログラムの起動時間に応じて、前記１以上のプログラムを起動させたときの起動時間を含む履歴情報に基づき、前記１以上のプログラムにより実現される機能に対して設定された前記他のプログラムを遅延起動させる時間間隔を補正するステップを含む、起動制御方法。
【請求項６】
複数のプログラムの起動を制御する処理をコンピュータに実行させるための起動制御プログラムであって、
前記複数のプログラムを起動する条件を格納する格納部から該条件を取得するステップと、
取得された条件に従って、前記複数のプログラムの起動を制御するステップとを実行させ、
前記制御するステップにおいて、
複数のプログラムのうちの１以上のプログラムを起動させるステップと、
前記１以上のプログラムの起動から少なくとも一定時間が経過するまで、該１以上のプログラム以外の他のプログラムの起動を待機するステップと、
前記一定時間が経過した後、前記他のプログラムを起動させるステップとを実行させ、
前記起動制御プログラムは、さらに、前記１以上のプログラムを起動させるステップの後であって、前記他のプログラムの起動を待機するステップの前に、前記１以上のプログラムの起動時間に応じて、前記１以上のプログラムを起動させたときの起動時間を含む履歴情報に基づき、前記１以上のプログラムにより実現される機能に対して設定された前記他のプログラムを遅延起動させる時間間隔を補正するステップを実行させる、起動制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプログラムを実装する電子機器、該複数のプログラムの起動を制御する方法およびその制御をコンピュータに実行させるための起動制御プログラムに関する。
【背景技術】
【０００２】
MFP(Multi-Function Peripheral)やPC等の電子機器の起動時間は、カタログ等で公表する性能（カタログスペック）として扱われることから、短縮することが重要な項目となっている。
【０００３】
その起動時間を短縮する技術として、例えば、優先機能に設定されている機能に関連するプログラムを、他の機能を実現するためのプログラムよりも先に起動する技術が提案されている（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記の技術では、例えば、先にコピー機能を実現するためのプログラムが起動されたことを受けてコピーを実行したときに、そのプログラム以外のプログラムが次々に起動しているため、コピー動作が遅くなるという問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであり、優先して起動したプログラムにより実現される機能の動作が遅延することを防止することができる電子機器、起動制御方法および起動制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、複数のプログラムを実装する電子機器であって、複数のプログラムを起動する条件を格納する格納部から該条件を取得する条件取得部と、条件取得部により取得された条件に従って、複数のプログラムの起動を制御する制御部とを含み、制御部が、複数のプログラムのうちの１以上のプログラムを起動させ、該１以上のプログラムの起動から一定時間以上遅延させて、該１以上のプログラム以外の他のプログラムを起動させる、電子機器を提供する。
【発明の効果】
【０００７】
本発明によれば、優先して起動したプログラムにより実現される機能の動作が遅延することを防止することができる。
【図面の簡単な説明】
【０００８】
【図１】画像形成装置の全体構成を示した図。
【図２】画像形成装置のハードウェア構成を示した図。
【図３】起動制御モジュールの構成を示したブロック図。
【図４】画像形成装置により実行される処理の第１の実施例を示したシーケンス図。
【図５】画像形成装置により実行される処理の第２の実施例を示したシーケンス図。
【図６】画像形成装置により実行される処理の第３の実施例を示したシーケンス図。
【図７】画像形成装置により実行される処理の第４の実施例を示したシーケンス図。
【図８】画像形成装置により実行される処理の第５の実施例を示したシーケンス図。
【発明を実施するための形態】
【０００９】
図１は、電子機器の一例である画像形成装置の全体構成を示した図である。電子機器は、複数の機能を実現するためのプログラムを実装する機器であれば、MFPやPC等のいかなる機器であってもよいが、以下、MFP等の画像形成装置として説明する。
【００１０】
画像形成装置は、印刷、コピー、ファックス送受信、スキャン、通信等の複数の機能を有し、それらの機能を実現するためのプログラムとして複数のアプリケーションを実装している。具体的には、プリンタアプリ１０、コピーアプリ１１、ファックスアプリ１２、スキャナアプリ１３、ネットワークアプリ１４、SDK(Software Development Kit)アプリ１５を実装する。これらのアプリケーションは、各サービスを実現するアプリケーションで、アプリケーションモジュール層を構成している。
【００１１】
プリンタアプリ１０は、プリンタ機能を実現するためのアプリケーションで、コピーアプリ１１は、コピー機能を実現するためのアプリケーションである。ファックスアプリ１２は、ファックス機能を実現するためのアプリケーションで、スキャナアプリ１３は、スキャン機能を実現するためのアプリケーションである。ネットワークアプリ１４は、ネットワークを介した通信を実現するためのアプリケーションで、SDKアプリ１５は、アプリケーションを作成する開発ツールである。
【００１２】
画像形成装置は、後述するハードウェア９０と、OS層、サービスモジュール層、SRM(System Resource Manager)層、IMH(Image Memory Handler)層、起動制御モジュール層とを含んで構成される。アプリケーションモジュール層とサービスモジュール層とは、GW-API２０というインタフェースで機能接続され、サービスモジュール層とハードウェア９０とは、Rapi２１というインタフェースで接続される。
【００１３】
サービスモジュール層は、上記の各サービスを制御するプログラムとしてのモジュールを含む。そのモジュールとして、ECS(Engine Control Service)３０、MCS(Memory Control Service)３１、OCS(Ope-Pane Control Service)３２、FCS(Fax Control Service)３３、NCS(Network Control Service)３４を備える。また、DCS(Delivery Control Service)３５、UCS(User-Info Control Service)３６、CCS(Certification Control Service)３７、NRS(New Remote Service)３８、LCS(Log Control Service)３９を備える。さらに、MIRS(Machine Information Report Service)４０、SCS(System Control Service)４１を備える。
【００１４】
ECS３０は、ハードウェア９０を構成するプロッタ／スキャナエンジンを制御するモジュールである。MCS３１は、画像を保存する画像メモリの取得や開放、HDDの利用等のメモリを制御するモジュールである。OCS３２は、情報の入力の受け付け、表示等の操作パネルを制御するモジュールである。FCS３３は、ファクシミリ送受信、ファクシミリ読み取り、ファクシミリ受信印刷等のファクシミリ機能を実現するモジュールである。NCS３４は、ネットワークとアプリケーション層の各アプリケーションとの仲介処理を行うモジュールである。
【００１５】
DCS３５は、ハードウェア９０を構成するコントローラボード上のメモリに記憶している画像ファイルをSMTP(Simple Mail Transfer Protocol)やFTP(File Transfer Protocol)を用いて送受信するモジュールである。UCS３６は、画像形成装置を利用する利用者が登録したユーザ名等のユーザ情報を管理するモジュールである。CCS３７は、ユーザIDやパスワード等の認証情報を管理し、ユーザ認証を行うモジュールである。
【００１６】
NRS３８は、インターネット等のネットワークを経由して機器をリモート管理するモジュールである。管理する機器は、例えばプリンタやMFP(Multi-Function Peripheral)等である。LCS３９は、画像形成装置が実行した処理の処理内容や警告等の履歴情報（ログ）を記録し、蓄積する等のログを管理するモジュールである。MIRS４０は、印刷枚数等の機器情報を収集し、レポートを作成するモジュールである。SCS４１は、コマンドの内容に応じたアプリケーションモジュール層の各アプリケーションの起動や終了の管理を行うモジュールである。
【００１７】
SRM層を構成するSRM５０は、サービスモジュール層の各モジュールやアプリケーション層の各アプリケーションを実行させる処理を司り、システムの制御やリソースの管理を行うモジュールである。IMH層を構成するIMH６０は、一時的に画像ファイルを入れておくメモリを管理するモジュールである。起動制御モジュール層を構成する起動制御モジュール７０は、上記の各モジュールや各アプリケーションを起動する順番やタイミングを制御するモジュールである。この起動制御モジュール７０の詳細については後述する。
【００１８】
OS層を構成するOS８０は、画像形成装置全体を管理するLPUX等のオペレーティングシステムで、ファイルシステム８１、メモリコントロール８２、プロセスコントロール８３、プロトコルスタック８４、ハードウェアコントロール８５を含む。ファイルシステム８１は、HDD等に記憶されるファイルを管理し、メモリコントロール８２は、メモリの割り当てや開放等のメモリを管理し、プロセスコントロール８３は、各モジュールや各アプリケーションをプロセスとして実行する順序等を制御する。プロトコルスタック８４は、プロトコルの階層で、例えば、最下層のプロトコルはハードウェアとのやりとりを行う層とされ、最上層のプロトコルは各アプリケーションとのやりとりを行う層とされる。ハードウェアコントロール８５は、デバイスドライバであり、ハードウェア９０の動作を制御する。
【００１９】
図１を参照して画像形成装置の全体構成について説明してきたが、次に、図２を参照して画像形成装置が備えるハードウェア９０の具体的な構成について説明する。画像形成装置は、コントローラボード１００、操作部１１０、FCU(Facsimile Control Unit)１２０、USB(Universal Serial Bus)１３０、IEEE1394 I/F１４０、プロッタ／スキャナエンジン１５０、周辺機１６０を備える。
【００２０】
コントローラボード１００は、CPU(Central Processing Unit)１０１、ASIC(Application Specific Integrated Circuit)１０２、SDRAM(Synchronous Dynamic Random Access Memory)１０３、フラッシュメモリ１０４、PHY(Physical Layer)１０５、HDD１０６を備える。
【００２１】
CPU１０１は、ASIC１０２を介して各機能の制御を行い、また、画像形成装置の動作を統括的に制御する。CPU１０１は、この動作を、SDRAM１０３、フラッシュメモリ１０４、HDD１０６に格納されたプログラムを実行することで制御する。ASIC１０２は、CPU I/F、SDRAM I/F、ローカルバスI/F、PCI(Peripheral Component Interconnect)I/F、MAC(Media Access Controller)、HDD I/F等から構成される多機能デバイスボードである。ASIC１０２は、各種の画像処理を実行する。
【００２２】
SDRAM１０３は、OS８０を含む各種のプログラムを記憶するメモリである。また、SDRAM１０３は、CPU１０１が処理を実行する際に使用する作業領域としても使用される。ここでは、SDRAMを使用する構成を例示したが、DRAMやSRAMを使用してもよい。
【００２３】
フラッシュメモリ１０４は、各種のプログラムやOSイメージ、各種のデータを記憶するメモリである。データとしては、機種機番、IPアドレス等を挙げることができる。各種のプログラムには、画像形成装置を起動させるためのブートプログラム、ファームウェア、上記のアプリケーションやモジュール等が含まれる。
【００２４】
PHY１０５は、ネットワークを介して他の機器と接続するためのインタフェースである。HDD１０６は、画像ファイルを記憶し、フラッシュメモリ１０４内のアプリケーションやモジュール等を記憶することもできる。ここでは、HDD１０６を使用する例を示しているが、HDDに限られるものではなく、SSD(Solid State Drive)等であってもよい。
【００２５】
操作部１１０は、画像形成装置に対して操作を行うユーザのためのインタフェースで、各種操作キーやディスプレイ等を備え、情報の入力やジョブの実行等を受け付ける。また、操作部１１０は、入力された内容やユーザに通知する情報を表示する。操作部１１０は、上記の操作キーとディスプレイとを備えるものに限らず、タッチパネルを備えたものであってもよい。
【００２６】
FCU１２０は、ファクシミリ機能を有する外部機器との通信を制御し、該外部機器との間でファクシミリ制御信号を交換し、G3およびG4のファクシミリ通信手順を実行する。G3およびG4は、いずれも電話回線を使用してファクシミリ送受信を実行する規格で、G3は、アナログ回線に対応した規格で、G4は、デジタル回線に対応した規格である。
【００２７】
USB１３０は、USBデバイスと接続するためのシリアルバスである。USB１３０は、CPU１０１による制御の下で、接続されるUSBデバイスとの間で情報の授受を行う。IEEE1394 I/F１４０は、外部のスキャナやプロッタ等の接続に使用されるインタフェースである。
【００２８】
プロッタ／スキャナエンジン１５０は、ASIC１０２から受け取った画像データに基づき、用紙に画像を印刷し、また、原稿を読み取り、ASIC１０２に画像データとして出力する。周辺機１６０は、プロッタエンジンに接続されるフィニッシャやスキャナエンジンに接続される自動原稿送り装置(ADF)等である。フィニッシャは、ステープル、パンチ、中綴じ等の機能を有し、印刷物を後処理する装置である。
【００２９】
次に、図３を参照して起動制御モジュール７０の構成について説明する。起動制御モジュール７０は、条件取得部７１と制御部７２とを備える。条件取得部７１は、複数のアプリケーションやモジュール等のプログラムを起動する条件を、その条件を格納する格納部１７０から取得する。条件は、複数のプログラムを起動する順番やそのタイミング等を定義し、ユーザにより設定され、設定ファイル等としてフラッシュメモリ１０４やHDD１０６等の格納部１７０に格納されている。なお、格納部１７０は、画像形成装置内にあってもよいし、外部記憶装置やサーバ等の画像形成装置外にあってもよい。
【００３０】
制御部７２は、条件取得部７１に取得された条件に従って、複数のプログラムの起動を制御する。制御部７２は、優先的に起動する１以上のプログラムに対して起動を指示し、該１以上のプログラムを起動させる。そして、制御部７２は、上記１以上のプログラムの起動から一定時間以上遅延させて該複数のプログラムの残りに対して起動を指示し、該１以上のプログラム以外の他のプログラムを起動させる。
【００３１】
例えば、コピーに関係するプログラムを優先的に起動するプログラムとした場合、制御部７２は、画像形成装置の起動時に、コピーに関係するプログラムを起動させる。そして、制御部７２は、上記の一定時間として、コピーを１枚実行できる時間が経過するまで他のプログラムの起動を待機し、その時間が経過した後、他のプログラムを起動させる。
【００３２】
MFPでは、ウォームアップタイムが、主電源を投入してからすぐにコピー１枚排出するまでの時間とされている。このため、上記のようにしてコピーに関係のない上記の他のプログラムの起動を、そのコピー１枚が排出された後に開始することで、ウォームアップタイムを短縮することができる。
【００３３】
この起動制御モジュール７０を使用したコピー機能を優先して起動する処理を、図４に示すシーケンス図を参照して説明する。画像形成装置は、ハードウェアとして、電源ユニット２００を備え、その電源ユニット２００の電源スイッチが投入(ON)されたことを受けて、ブートプログラム２１０を起動する(S1)。ブートプログラム２１０は、OS２２０を検出し、OS２２０を起動させる(S2)。OS２２０は、起動制御モジュール７０を起動させ(S3)、条件で指定された優先的に起動する機能（優先機能）を確認する(S4)。
【００３４】
起動制御モジュール７０は、優先機能を実現するためのサービス層（コピー）２３０とアプリ（コピー）２６０とを起動させる(S5、S6)。サービス層２３０は、コピーに関係するモジュールにより構成され、このモジュールとしては、ECS３０、MCS３１、SCS４１が挙げられる。コピーに関係するモジュールとしては、SRM５０、IMH６０が含まれる。
【００３５】
起動制御モジュール７０は、サービス層２３０とアプリ２６０を起動させた後、一定時間以上遅延させるため、一定時間が経過するのを待つ(S7)。起動制御モジュール７０は、一定時間が経過した後、条件として設定されている順番に従って、他のプログラムであるサービス層２４０、２５０を起動させ（S8、S9）、アプリ２７０、２８０を起動させる(S10、S11)。
【００３６】
サービス層２４０とアプリ２７０は、例えば画像読み取りに関係するプログラムで、サービス層２５０とアプリ２８０は、例えばファクシミリ送受信に関係するプログラムである。この例では、サービス層を先に起動し、アプリをその後に起動しているが、その順序は逆であってもよい。
【００３７】
図４に示した例では、優先機能に関係なく一定時間遅延させた後に他のプログラムを起動させているが、これに限られるものではない。どの機能を優先機能にするかによって、遅延させたい時間は異なるからである。そこで、優先機能が何であるかによって待機時間を変えることができる。この場合の処理を、図５を参照して説明する。
【００３８】
電源ユニット２００の電源スイッチが投入されたことを受けて、ブートプログラム２１０を起動する(S1)。ブートプログラム２１０は、OS２２０を検出し、そのOS２２０を起動させる(S2)。OS２２０は、起動制御モジュール７０を起動させ(S3)、条件で指定された優先機能を確認する(S4)。起動制御モジュール７０は、優先機能を実現するためのサービス層２３０とアプリ２６０とを起動させる(S5、S6)。
【００３９】
起動制御モジュール７０は、各機能に対して設定されている機能毎の待機時間を読み出す(S7)。ここで読み出す待機時間は、上記の優先機能に対して設定されている、他のプログラムを遅延起動させる時間間隔である。すなわち、優先機能がコピー機能であれば、コピー機能に対して設定された待機時間で、優先機能がファックス機能であれば、ファックス機能に対して設定された待機時間である。
【００４０】
起動制御モジュール７０は、その待機時間が経過するまで待ち(S8)、待機時間が経過した後、条件に従って、他のプログラムを起動させる。図５に示す例では、短い待機時間が設定されている順に、サービス層２４０、２５０、アプリ２７０、２８０を起動させている(S9〜S12)。
【００４１】
このように機能毎に設定ファイル等で機能に応じた待機時間を保持することで、コピーなら１枚排出する時間、ファクシミリなら１枚送信する時間等、それぞれの機能に最適な時間を確保することができる。
【００４２】
図４および図５に示した例では、優先機能、例えばコピー機能を実現するためのプログラムを優先的に起動させ、一定時間遅延させて、他のプログラムを起動させている。しかしながら、優先機能に関係するプログラムはすぐに起動しても、その優先機能に関係するハードウェアがすぐに起動するとは限らない。例えば、ハードウェアの調整処理が必要で、通常より起動に時間を要する場合もあるからである。
【００４３】
すると、一定時間遅延させて、他のプログラムを起動させても、そのハードウェアが起動したときには、当該他のプログラムの起動が開始してしまっているという状況が発生する。これでは、コピー１枚とるのにも時間がかかってしまい、優先的にプログラムを起動させた意味がなくなってしまう。
【００４４】
そこで、優先機能に関係するハードウェアに対して該ハードウェアの状態を問い合わせ、その状態に基づき待機時間を変えることができる。このハードウェアは、優先機能を実現される１以上のプログラムにより動作するハードウェアである。これにより、エンジン等のハードウェアの状態を考慮し、最適な待機時間を設定することが可能となる。この場合の処理を、図６を参照して説明する。
【００４５】
電源ユニット２００の電源スイッチが投入されたことを受けて、ブートプログラム２１０を起動する(S1)。ブートプログラム２１０は、OS２２０を検出し、OS２２０を起動させる(S2)。OS２２０は、起動制御モジュール７０を起動させ(S3)、条件で指定された優先機能を確認する(S4)。起動制御モジュール７０は、優先機能を実現するためのサービス層２３０とアプリ２６０とを起動させる(S5、S6)。
【００４６】
起動制御モジュール７０は、ハードウェアとしてのエンジン２９０に対し、エンジン２９０の状態を問い合わせ、その状態を取得する(S7)。エンジン２９０の状態は、例えば通常の起動処理を実施中、OS８０から調整指示を受けて調整処理中といった状態である。調整処理は、印刷位置、色、濃度等を調整する処理である。起動制御モジュール７０は、取得した状態に基づき、通常の起動処理であれば、待機時間を補正せず、調整処理が必要で通常の起動処理よりも時間がかかる場合は、待機時間を補正する(S8)。このため、起動制御モジュール７０は、S7の処理を行う状態取得部、S8の処理を行う補正部をさらに備えることができる。
【００４７】
待機時間が５分に設定されていて、調整処理中いったエンジン２９０の状態を取得し、その調整にかかる時間が２分であった場合、起動制御モジュール７０は、５＋２＝７分と求め、待機時間を５分から７分に動的に補正する。例えば、印刷位置、色、濃度等の項目に応じて調整にかかる時間を設定しておき、状態の取得において項目を取得することで、対応する時間を取得し、その時間を加算して待機時間を補正することができる。これも、設定ファイルとして格納部１７０に格納することができる。
【００４８】
起動制御モジュール７０は、補正した待機時間が経過するまで、他のプログラムの起動を待つ(S9)。起動制御モジュール７０は、その待機時間が経過した後、条件に設定されている順に他のプログラムを起動させる。図６に示す例では、サービス層２４０、２５０、アプリ２７０、２８０の順に起動させている(S10〜S13)。
【００４９】
上記の例では、優先機能に関係するハードウェアの状態によって起動に時間がかかる場合に待機時間を補正することについて説明したが、待機時間の補正が必要なケースは、優先機能に関係するハードウェアに限られるものではない。例えば、前回の起動で、画像形成装置が暗号化設定されていて、起動に時間がかかっている場合を挙げることができる。このような場合においては、余計にかかった時間分を補正することが望ましい。
【００５０】
図７を参照して、前回の起動状態（起動時間）に応じて待機時間を補正する場合の処理について説明する。電源ユニット２００の電源スイッチが投入されたことを受けて、ブートプログラム２１０を起動する(S1)。ブートプログラム２１０は、OS２２０を検出し、OS２２０を起動させる(S2)。OS２２０は、起動制御モジュール７０を起動させ(S3)、条件で指定された優先機能を確認する(S4)。起動制御モジュール７０は、優先機能を実現するためのサービス層２３０とアプリ２６０とを起動させる(S5、S6)。
【００５１】
起動制御モジュール７０は、前回の起動時間を読み出し(S7)、補正する必要があるかどうかを判断する。前回の起動時間は、履歴情報であるログを管理するサービス層、具体的にはLCS３９を介して該ログを取得し、そのログから読み出すことができる。起動制御モジュール７０は、例えばログを取得して前回以前の起動時間も読み出し、その起動時間と前回の起動時間とを比較し、前回の起動時間が長くなっている場合に、補正する必要があると判断することができる。これは一例であるので、その他の方法で判断してもよい。なお、前回以前の起動時間が複数存在する場合は、それらの平均値を用いてもよいし、それらのうちのいくつかの平均値を用いてもよいし、前回の１つ前の起動時間を用いてもよい。このため、画像形成装置は、ログを蓄積する蓄積部を備え、起動制御モジュール７０は、前回の起動時間を含むログを取得するログ取得部、補正の有無を判断する判断部をさらに備えることができる。
【００５２】
起動制御モジュール７０は、補正する必要があると判断した場合、余分にかかる時間を加味し、待機時間を補正する(S8)。起動制御モジュール７０は、例えば前回の起動時間と前回以前の起動時間との差を求め、その差を加算して待機時間を補正することができる。この補正は、上述した補正部が行うことができる。
【００５３】
起動制御モジュール７０は、補正した待機時間が経過するまで他のプログラムの起動を一定時間待つ(S9)。起動制御モジュール７０は、その待機時間が経過した後、条件に設定されている順に他のプログラムを起動させる。図６に示す例では、サービス層２４０、２５０、アプリ２７０、２８０の順に起動させる(S10〜S13)。このように機器の設定等を考慮することで、最適な待機時間を設定することが可能となる。
【００５４】
これまで、他のプログラムは、待機時間が経過した後に、自動で起動することを説明してきた。しかしながら、他のプログラムは、ユーザの都合に合わせて、一定時間が経過した後であればいつ起動させてもよい。そこで、ユーザが、一定時間が経過した後、他のプログラムにより実現される機能を選択するまで待機し、その機能が選択された時点でその機能に関係するプログラムを起動させることができる。このため、選択されない機能については待機を継続し、選択されて始めてその機能に関係するプログラムを起動させることになる。
【００５５】
図８を参照して、他のプログラムをユーザが使用する時に起動させる場合の処理について説明する。電源ユニット２００の電源スイッチが投入されたことを受けて、ブートプログラム２１０を起動する(S1)。ブートプログラム２１０は、OS２２０を検出し、OS２２０を起動させる(S2)。OS２２０は、起動制御モジュール７０を起動させ(S3)、条件として設定されている優先機能を確認する(S4)。起動制御モジュール７０は、優先機能を実現するためのサービス層２３０とアプリ２６０とを起動させる(S5、S6)。
【００５６】
起動制御モジュール７０は、他のプログラムにより実現される機能が選択されるのを待つ(S7)。起動制御モジュール７０は、ユーザ３００からの機能の選択を受け付け(S8)、その機能に関係するプログラムを起動させる。図８に示す例では、起動制御モジュール７０は、サービス層２４０とアプリ２７０とを起動させている(S9、S10)。このため、起動制御モジュール７０は、当該他のプログラムにより実現される機能の選択を受け付ける選択受付部をさらに備えることができる。
【００５７】
このように、優先機能以外の機能をユーザが実際に使用するまで起動させないようにすることで、優先機能に一切の影響が出ないようにすることができる。
【００５８】
これまで本発明を、画像形成装置といった電子機器、起動制御方法および起動制御プログラムとして上述した実施の形態をもって説明してきた。しかしながら、本発明は上述した実施の形態に限定されるものではなく、他の実施の形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができるものである。また、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
【００５９】
したがって、上記の起動制御プログラムが記録されたCD-ROM、SDカード、USBメモリ等の記録媒体、その起動制御プログラムを提供するサーバ等も提供することができるものである。
【符号の説明】
【００６０】
１０…プリンタアプリ、１１…コピーアプリ、１２…ファックスアプリ、１３…スキャナアプリ、１４…ネットワークアプリ、１５…SDKアプリ、２０…GW-API、２１…Rapi、３０…ECS、３１…MCS、３２…OCS、３３…FCS、３４…NCS、３５…DCS、３６…UCS、３７…CCS、３８…NRS、３９…LCS、４０…MIRS、４１…SCS、５０…SRM、６０…IMH、７０…起動制御モジュール、７１…条件取得部、７２…制御部、８０…OS、８１…ファイルシステム、８２…メモリコントロール、８３…プロセスコントロール、８４…プロトコルスタック、８５…ハードウェアコントロール、９０…ハードウェア、１００…コントローラボード、１０１…CPU、１０２…ASIC、１０３…SDRAM、１０４…フラッシュメモリ、１０５…PHY、１０６…HDD、１１０…操作部、１２０…FCU、１３０…USB、１４０…IEEE1394 I/F、１５０…プロッタ／スキャナエンジン、１６０…周辺機、１７０…格納部、２００…電源ユニット、２１０…ブートプログラム、２２０…OS、２３０〜２５０…サービス層、２６０〜２８０…アプリ、２９０…エンジン、３００…ユーザ
【先行技術文献】
【特許文献】
【００６１】
【特許文献１】特開２０１１−１５１８０６号公報
【図１】
0006686481.tif 000002
【図２】
0006686481.tif 000003
【図３】
0006686481.tif 000004
【図４】
0006686481.tif 000005
【図５】
0006686481.tif 000006
【図６】
0006686481.tif 000007
【図７】
0006686481.tif 000008
【図８】
0006686481.tif 000009