(57)【特許請求の範囲】
【請求項１】
複数のアプリケーションを電源投入時に起動される起動プログラムによって起動させることにより、前記アプリケーションの各種サービスを実現する情報処理装置であって、
予め前記複数のアプリケーションの起動時のログデータを解析し、解析した結果を用いて、再起動時における前記複数のアプリケーションの起動方式を変更する起動方式変更手段を備え、
前記起動方式変更手段は、
画面描画に対応する特定のアプリケーションに対する他のアプリケーションの依存関係を解析して、前記特定のアプリケーションに依存する第１のアプリケーション群と、前記特定のアプリケーションに依存しない第２のアプリケーション群とに分類し、前記第１のアプリケーション群を前記第２のアプリケーション群よりも先に再起動時に優先起動させるアプリケーション分類手段と、
前記アプリケーションの起動処理時間を解析して、所定の起動処理時間を超えるアプリケーションの起動処理時間から、前記所定の起動処理時間を超えるアプリケーションのサービスに依存するアプリケーションの起動前の待ち時間を算出し、再起動時に算出した前記待ち時間を、前記アプリケーションのサービスに依存するアプリケーションの起動前に挿入する起動待ち時間挿入手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記起動方式変更手段は、
前記複数のアプリケーション間の起動時におけるサービス依存関係を解析して、再起動時にサービスを開始すべきアプリケーションから順番に起動させるアプリケーション起動順序変更手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記起動方式変更手段は、
前記アプリケーションの起動に伴って使用するデバイスの使用開始順序を解析して、再起動時に前記アプリケーションの起動順に対応させてデバイスの初期化順序を変更するデバイス初期化順序変更手段を備えることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
複数のアプリケーションを電源投入時に起動される起動プログラムによって起動させることにより、前記アプリケーションの各種サービスを実現する情報処理装置において実行される情報処理方法であって、
予め前記複数のアプリケーションの起動時のログデータを解析し、解析した結果を用いて、再起動時における前記複数のアプリケーションの起動方式を変更する起動方式変更手順を備え、
前記起動方式変更手順は、
画面描画に対応する特定のアプリケーションに対する他のアプリケーションの依存関係を解析して、前記特定のアプリケーションに依存する第１のアプリケーション群と、前記特定のアプリケーションに依存しない第２のアプリケーション群とに分類し、前記第１のアプリケーション群を前記第２のアプリケーション群よりも先に再起動時に優先起動させるアプリケーション分類手順と、
前記アプリケーションの起動処理時間を解析して、所定の起動処理時間を超えるアプリケーションの起動処理時間から、前記所定の起動処理時間を超えるアプリケーションのサービスに依存するアプリケーションの起動前の待ち時間を算出し、再起動時に算出した前記待ち時間を、前記アプリケーションのサービスに依存するアプリケーションの起動前に挿入する起動待ち時間挿入手順とを備えることを特徴とする情報処理方法。
【請求項５】
複数のアプリケーションを電源投入時に起動される起動プログラムによって起動させることにより、前記アプリケーションの各種サービスを実現する情報処理プログラムであって、
コンピュータを、
予め前記複数のアプリケーションの起動時のログデータを解析し、解析した結果を用いて、再起動時における前記複数のアプリケーションの起動方式を変更する起動方式変更手段として機能させ、
前記起動方式変更手段は、
画面描画に対応する特定のアプリケーションに対する他のアプリケーションの依存関係を解析して、前記特定のアプリケーションに依存する第１のアプリケーション群と、前記特定のアプリケーションに依存しない第２のアプリケーション群とに分類し、前記第１のアプリケーション群を前記第２のアプリケーション群よりも先に再起動時に優先起動させるアプリケーション分類手段と、
前記アプリケーションの起動処理時間を解析して、所定の起動処理時間を超えるアプリケーションの起動処理時間から、前記所定の起動処理時間を超えるアプリケーションのサービスに依存するアプリケーションの起動前の待ち時間を算出し、再起動時に算出した前記待ち時間を、前記アプリケーションのサービスに依存するアプリケーションの起動前に挿入する起動待ち時間挿入手段とを備えることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及び情報処理プログラムに関する。
【背景技術】
【０００２】
従来から、プリンタ等の画像処理装置、あるいはパーソナルコンピュータに代表される端末装置等の情報処理装置においては、電源投入後にアプリケーションの起動処理が行なわれ、様々なサービスが使用可能となる。
【０００３】
このような情報処理装置の起動処理においては、例えば起動に必須となるアプリケーションを先行して起動させることで、見かけ上の起動時間を早めたり、プログラム間の依存関係を動的に検出して検出順に起動をかけたり、ヒントファイルをインストール前に準備しておくことで起動順序を決めている。
【０００４】
また、従来では、例えば基本プログラム及び各種機能の中で優先する機能を指定した優先モードの機能を実現するプログラムを先に起動させた後、未起動の機能プログラムを起動させることにより起動時間を短縮させる方法が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、上述した従来技術のうち、例えば起動するプログラム間の依存関係を検出してから起動する場合には、検出を開始してから起動するまでに時間がかかった。また、製品設計時における所定のアプリケーション構成のみ起動時間を最適化させる場合には、例えば市場においてインストール、アンインストールによるアプリケーションの構成変更が生じた場合に、構成変更に対応して起動時間を最適化することができなかった。
【０００６】
本発明は、上記の点に鑑みてなされたものであり、アプリケーションの構成に対応した高速起動を可能とし、アプリケーションの構成変更に対応して起動時間を最適化する情報処理装置、情報処理方法、及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記目的を達成するために、複数のアプリケーションを電源投入時に起動される起動プログラムによって起動させることにより、前記アプリケーションの各種サービスを実現する情報処理装置であって、予め前記複数のアプリケーションの起動時のログデータを解析し、解析した結果を用いて、再起動時における前記複数のアプリケーションの起動方式を変更する起動方式変更手段を備え、前記起動方式変更手段は、画面描画に対応する特定のアプリケーションに対する他のアプリケーションの依存関係を解析して、前記特定のアプリケーションに依存する第１のアプリケーション群と、前記特定のアプリケーションに依存しない第２のアプリケーション群とに分類し、前記第１のアプリケーション群を前記第２のアプリケーション群よりも先に再起動時に優先起動させるアプリケーション分類手段と、前記アプリケーションの起動処理時間を解析して、所定の起動処理時間を超えるアプリケーションの起動処理時間から、前記所定の起動処理時間を超えるアプリケーションのサービスに依存するアプリケーションの起動前の待ち時間を算出し、再起動時に算出した前記待ち時間を、前記アプリケーションのサービスに依存するアプリケーションの起動前に挿入する起動待ち時間挿入手段とを備える。
【０００８】
また、本発明は、複数のアプリケーションを電源投入時に起動される起動プログラムによって起動させることにより、前記アプリケーションの各種サービスを実現する情報処理装置において実行される情報処理方法であって、予め前記複数のアプリケーションの起動時のログデータを解析し、解析した結果を用いて、再起動時における前記複数のアプリケーションの起動方式を変更する起動方式変更手順を備え、前記起動方式変更手順は、画面描画に対応する特定のアプリケーションに対する他のアプリケーションの依存関係を解析して、前記特定のアプリケーションに依存する第１のアプリケーション群と、前記特定のアプリケーションに依存しない第２のアプリケーション群とに分類し、前記第１のアプリケーション群を前記第２のアプリケーション群よりも先に再起動時に優先起動させるアプリケーション分類手順と、前記アプリケーションの起動処理時間を解析して、所定の起動処理時間を超えるアプリケーションの起動処理時間から、前記所定の起動処理時間を超えるアプリケーションのサービスに依存するアプリケーションの起動前の待ち時間を算出し、再起動時に算出した前記待ち時間を、前記アプリケーションのサービスに依存するアプリケーションの起動前に挿入する起動待ち時間挿入手順とを備える。
【０００９】
また、本発明は、複数のアプリケーションを電源投入時に起動される起動プログラムによって起動させることにより、前記アプリケーションの各種サービスを実現する情報処理プログラムであって、コンピュータを、予め前記複数のアプリケーションの起動時のログデータを解析し、解析した結果を用いて、再起動時における前記複数のアプリケーションの起動方式を変更する起動方式変更手段として機能させ、前記起動方式変更手段は、画面描画に対応する特定のアプリケーションに対する他のアプリケーションの依存関係を解析して、前記特定のアプリケーションに依存する第１のアプリケーション群と、前記特定のアプリケーションに依存しない第２のアプリケーション群とに分類し、前記第１のアプリケーション群を前記第２のアプリケーション群よりも先に再起動時に優先起動させるアプリケーション分類手段と、前記アプリケーションの起動処理時間を解析して、所定の起動処理時間を超えるアプリケーションの起動処理時間から、前記所定の起動処理時間を超えるアプリケーションのサービスに依存するアプリケーションの起動前の待ち時間を算出し、再起動時に算出した前記待ち時間を、前記アプリケーションのサービスに依存するアプリケーションの起動前に挿入する起動待ち時間挿入手段とを備える。
【発明の効果】
【００１０】
本発明によれば、アプリケーションの構成に対応した情報処理装置の高速起動を可能とする。また、アプリケーションの構成変更に対応して情報処理装置の起動時間を最適化する。
【図面の簡単な説明】
【００１１】
【図１】本実施形態に係る情報処理装置の機能構成の一例を示す図である。
【図２】本実施形態に係るログ解析手段の機能構成を示す図である。
【図３】本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【図４】本実施形態に係る情報処理装置における処理概略図である。
【図５】本実施形態に係る情報処理装置の起動シーケンス図である。
【図６】本実施形態に係るアプリケーションの分類方法を説明するための図である。
【図７】本実施形態に係るアプリケーション分類処理のシーケンス図である。
【図８】本実施形態に係る起動順序変更処理について説明するための図である。
【図９】本実施形態に係る起動順序変更前のシーケンス図である。
【図１０】本実施形態に係る起動順序変更後のシーケンス図である。
【図１１】本実施形態に係る起動待ち時間挿入方法を説明するための図である。
【図１２】本実施形態に係る起動待ち時間挿入前のシーケンス図である。
【図１３】本実施形態に係る起動待ち時間挿入後のシーケンス図である。
【図１４】本実施形態に係るデバイス初期化順序変更処理について説明するための図である。
【図１５】本実施形態に係るデバイス初期化順序変更前のシーケンス図である。
【図１６】本実施形態に係るデバイス初期化順序変更後のシーケンス図である。
【図１７】本実施形態に係るアプリケーションの構成変更処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について詳細に説明する。
【００１３】
＜情報処理装置の機能構成＞
図１は、本実施形態に係る情報処理装置の機能構成の一例を示す図である。図１に示すように、情報処理装置１００は、入力手段１０と、出力手段２０と、制御手段３０と、ログ解析手段４０と、記録手段５０とを有するように構成される。
【００１４】
入力手段１０は、情報処理装置１００にて構成された各手段に各種処理を実行するときの実行指示等を入力する手段である。例えば入力手段１０は、制御手段３０が記録手段５０に記録された起動プログラムを読み出すときの実行指示、ログ解析手段４０が記録手段５０に記録されたログデータ等を解析するときの実行指示等を入力する。
【００１５】
出力手段２０は、各手段を実行したときの実行経過等、又はログ解析手段４０による解析結果等を例えばディスプレイ等の画面に表示する。
【００１６】
制御手段３０は、記録手段５０に記録されている起動プログラム５１を起動させたり、アプリケーション群５３を読み出して各種サービスを実行させる。
【００１７】
ログ解析手段４０は、記録手段５０に記録されているアプリケーション群５３の実行状況を記録したログデータ５６を読み出して解析する。なお、ログ解析手段４０については、後述する。
【００１８】
記録手段５０は、例えばアプリケーション群５３等を起動する起動プログラム５１と、アプリケーション群５３を起動させる起動順序を記載した起動スクリプト５２と、各種サービスを提供するアプリケーション群５３と、デバイスを初期化するためのデバイス初期化プログラム５４と、デバイスを初期化する順序を定義したデバイス初期化順序定義５５と、ログデータ５６とを格納する。
【００１９】
また、記録手段５０に記録されたこれらの各データは、制御手段３０からの指示により、必要に応じて所定のタイミングで記録手段５０から抽出又は格納することができる。
【００２０】
＜ログ解析手段の構成＞
図２は、本実施形態に係るログ解析手段の機能構成を示す図である。図２に示すように、ログ解析手段４０は、起動方式変更手段４１を備えており、起動方式変更手段４１は、アプリケーション分類手段４２と、アプリケーション順序変更手段４３と、起動待ち時間挿入手段４４と、デバイス初期化順序変更手段４５とを備える。
【００２１】
起動方式変更手段４１は、予め記録されているログデータ５６を用いて、情報処理装置１００におけるアプリケーション群５３の起動時のログデータを解析し、解析した解析結果に基づき、再起動時におけるアプリケーション群５３の起動方式を変更する。これにより、再起動時におけるアプリケーション起動方式の修正工程を自動的に行うことが可能となる。
【００２２】
具体的には、起動方式変更手段４１は、予めログデータ５６を用いて、例えば画面アプリ等の特定のアプリケーションに対するアプリケーション群５３それぞれの依存関係を解析する。また、起動方式変更手段４１は、アプリケーション分類手段４２によって、解析した結果に基づき、アプリケーション群５３のうち特定のアプリケーションに依存する第１のアプリケーション群と、特定のアプリケーションに依存しない第２のアプリケーション群とに分類する。更に、起動方式変更手段４１は、アプリケーション分類手段４２によって、再起動時に第１のアプリケーション群を第２のアプリケーション群よりも優先起動させる。
【００２３】
これにより、情報処理装置１００がアプリケーションの設計を認識することなく、画面描画等の特定のアプリケーションの起動に必須となるアプリケーション群を検出し、優先起動させるため、見かけ上の起動時間を短縮化することが可能となる。
【００２４】
また、起動方式変更手段４１は、予めログデータ５６を用いて、アプリケーション群５３のアプリケーション間の起動時におけるサービス依存関係を解析する。起動方式変更手段４１は、アプリケーション起動順序変更手段４３によって、解析した結果に基づき、アプリケーション群５３のうち再起動時にサービスを開始すべきアプリケーションから順番に起動させる。
【００２５】
これにより、情報処理装置１００が、アプリケーションの設計を認識することなく、サービスを開始するまでに生じる待ち合わせ処理を抑制し、起動時間を短縮することが可能となる。
【００２６】
また、起動方式変更手段４１は、予めログデータ５６を用いて、アプリケーション群５３のそれぞれのアプリケーションの起動処理時間を解析する。起動方式変更手段４１は、起動待ち時間挿入手段４４によって、解析した結果に基づき、再起動時に予め設定した所定の起動処理時間を超えるアプリケーションのサービスに依存するアプリケーションに対して起動前に待ち時間を挿入する。
【００２７】
このように、アプリケーションログを解析することで、所定の起動処理時間を超えるアプリケーションのサービスに依存するアプリケーションが起動するまでの適切な待ち時間を算出して、再起動時の所定の起動時間を超えるアプリケーション起動後に待ち時間を挿入する。これにより、例えば重い処理を行っていたアプリケーションのサービスの開始が早まり、情報処理装置１００全体の起動時間が短縮化される。
【００２８】
また、起動方式変更手段４１は、予めログデータ５６を用いて、アプリケーション群５３のそれぞれのアプリケーションが起動に伴って使用するデバイス群７０それぞれのデバイスの使用開始順序を解析する。起動方式変更手段４１は、デバイス初期化順序変更手段４５によって、解析した結果に基づき、再起動時にアプリケーション群５３の起動順に対応させてデバイス群７０の初期化順序を変更する。
【００２９】
これにより、アプリケーション群５３が起動するにあたり、アプリケーション群５３の要求にあった順番でデバイス群７０におけるデバイスの初期化が行なわれ、デバイスの初期化タイミングは再起動時に自動的に調整される。このように、アプリケーション群５３の起動順に対応させて早く必要となるデバイスほど先に初期化させることにより、情報処理装置１００全体の起動時間の短縮化を可能とする。
【００３０】
＜情報処理装置のハードウェア構成＞
図３は、本実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。なお、本実施形態は、以下に示す情報処理装置を用いて説明するが、本発明はこれに限らず、例えばプリンタ等の画像処理装置等であっても良い。
【００３１】
図３に示すように、情報処理装置１００は、入力装置６１と、出力装置６２と、ドライブ装置６３と、補助記憶装置６４と、メモリ装置６５と、演算処理装置６６と、ネットワーク接続装置６７と、記録媒体６８とを有するように構成されており、これらはシステムバスＢで相互に接続されている。
【００３２】
入力装置６１は、ユーザが操作するキーボード及びマウス等のポインティングデバイスや、ユーザが操作するタッチスクリーン等を有しており、ユーザからの起動プログラム、ログ解析プログラム等の各種プログラムの実行指示等、各種操作信号を入力する。
【００３３】
出力装置６２は、本実施形態の各種処理を行うために必要な各種ウィンドウやデータ等を表示するディスプレイを有し、演算処理装置６６が有する制御プログラムにより、起動プログラム、ログ解析プログラム等の実行経過や結果等を表示する。
【００３４】
ここで、本実施形態においてインストールされる各種プログラムは、例えばＣＤ−ＲＯＭ等の記録媒体６８により提供される。各種プログラムを記録した記録媒体６８は、ドライブ装置６３にセット可能であり、記録媒体６８に含まれる実行プログラムが、記録媒体６８からドライブ装置６３を介して補助記憶装置６４にインストールされる。
【００３５】
なお、記憶媒体６８は、上述したＣＤ−ＲＯＭの他、フレキシブルディスク、光磁気ディスクのように情報を光学的、電気的或いは磁気的に記録する記録媒体、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。
【００３６】
補助記憶装置６４は、ハードディスク等のストレージ手段であり、本実施形態におけるログ解析プログラム等の実行プログラムや、コンピュータに設けられた制御プログラム、各種データ等を蓄積し、必要に応じて入出力を行うことができる。
【００３７】
メモリ装置６５は、演算処理装置６６により補助記憶装置６４から読み出されたログ解析プログラム等の実行プログラムを格納する。なお、メモリ装置６５は、ＲＯＭやＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等からなる。
【００３８】
演算処理装置６６は、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等の制御プログラム、メモリ装置６５により格納されているログ解析プログラム等の実行プログラムに基づいて、各種演算や各ハードウェア構成部とのデータの入出力等、コンピュータ全体の処理を制御して各処理を実現することができる。また、プログラムの実行中に必要な各種情報は、補助記憶装置６４から取得することができ、また格納することもできる。
【００３９】
ネットワーク接続装置６７は、通信ネットワークと接続することにより、ログ解析プログラム等の実行プログラムを通信ネットワークに接続されている他の端末等から取得したり、プログラムを実行することで得られた実行結果又は本実施形態におけるログ解析プログラム等の実行プログラム自体を他の端末等に提供することができる。
【００４０】
＜情報処理装置における処理概略図＞
図４は、本実施形態に係る情報処理装置における処理概略図である。図４に示すように、情報処理装置１００は、起動プログラム５１と、起動スクリプト５２と、アプリケーション群５３と、デバイス初期化プログラム５４と、デバイス初期化順序定義５５と、ログデータ５６と、デバイス群７０と、ログ解析手段４０としてのログ解析プログラム８０とを備えるよう構成される。
【００４１】
情報処理装置１００は、図４に示す起動プロセスを実行する。すなわち、初期インストール状態の情報処理装置１００を起動させると、起動プログラム５１は、起動スクリプト５２を参照して、アプリケーション群５３を起動する。
【００４２】
起動プログラム５１によって起動されたアプリケーション群５３は、例えばＨＤＤ、ＵＳＢメモリ等のデバイス群７０を使用して動作する。なお、デバイス群７０は、デバイス初期化プログラム５４によって初期化されてはじめてアプリケーション群５３により使用可能となる。デバイス初期化プログラム５４は、デバイス初期化順序定義５５に定義された順にデバイス群７０の初期化を行う。
【００４３】
上述したアプリケーション群５３の起動時の実行状況は、例えばログデータ５６として記録される。なお、アプリケーション群５３のアプリケーション間には、例えばサービスの起動を待ち合わせる等の依存関係がある。
【００４４】
したがって、ログ解析プログラム８０は、ログデータ５６を解析することにより、例えばアプリケーション依存関係を示したグラフ等（例えば後述する図６に示すグループ分類された後に矢印で繋がれた有向グラフ等）を作成することができる。
【００４５】
ログ解析プログラム８０は、上述したグラフ等を用いて、後述する所定の条件に基づき、起動スクリプト５２を変更し、デバイス初期化順序定義７０のデバイス初期化順序を変更することにより、再起動時の起動方式の自動調整を可能とすると共に、情報処理装置１００における高速起動を可能とする。
【００４６】
＜画像形成装置の起動処理のシーケンス図＞
ここで、本実施形態における情報処理装置１００の起動シーケンスについて説明する。図５は、本実施形態に係る情報処理装置の起動シーケンス図である。
【００４７】
図５に示すように、起動プログラム５１は、起動スクリプト５２を参照し（Ｓ１０）、起動スクリプト５２に記載された順にアプリケーションを起動するにあたり、まずアプリケーションが動作に使用するデバイス群７０を初期化するデバイス初期化プログラム５４を起動する（Ｓ１１）。
【００４８】
次に、デバイス初期化プログラム５４は、デバイス初期化順序定義５５に定義されたデバイス初期化順序を参照する（Ｓ１２）。
【００４９】
次に、起動プログラム５１は、Ｓ１０の処理にて参照した起動順に、アプリケーション群５３のアプリケーションを起動し（Ｓ１３）、アプリケーションは、起動した状況をログデータ５６として記録する（Ｓ１４）。
【００５０】
次に、デバイス初期化プログラム５４は、Ｓ１２の処理にて参照したデバイス初期化順序にしたがい、デバイス群７０のデバイスを初期化する（Ｓ１５）。
【００５１】
また、Ｓ１３の処理において起動されたアプリケーションは、初期化されたデバイスを使用する（Ｓ１６）。
【００５２】
同様に、起動プログラム５１は、アプリケーション群５３のアプリケーションを起動し（Ｓ１７）、アプリケーションは、ログデータ５６として起動時の状況を記録する（Ｓ１８）と共に、デバイス群７０のデバイスを使用する（Ｓ１９）。
【００５３】
また、デバイス初期化プログラム５４は、デバイス群７０のデバイスを初期化し（Ｓ２０）、起動されたアプリケーション群５３のアプリケーションは、起動時のデバイス使用状況をログデータ５６として記録して（Ｓ２１）、デバイス群７０のデバイスを使用する（Ｓ２２）。
【００５４】
アプリケーション群５３に含まれるアプリケーションの起動が完了すると、起動プログラム５１に起動完了が通知され（Ｓ２３）、起動プログラム５１は、ログ解析プログラム８０を起動する（Ｓ２４）。
【００５５】
起動されたログ解析プログラム８０は、上述したアプリケーションの起動時における実行状況が記録されたログデータ５６を解析して（Ｓ２５）、解析した結果に基づき、起動スクリプト５２を変更し（Ｓ２６）、デバイス初期化順序定義５５を変更する（Ｓ２７）。
【００５６】
次に、上述したログデータ５６のアプリケーションログを解析することにより情報処理装置１００の高速起動を行う実施例１〜実施例５について以下に説明する。
【００５７】
＜実施例１：アプリケーションの分類方法＞
例えば、ユーザから見える情報処理装置１００の起動完了のタイミングは、画像描画完了のタイミングである。したがって、ログデータ５６から画像描画完了イベントを発行したアプリケーション（例えば「画面アプリ」等）を検出し、アプリケーション群５３のうち画面アプリの画像描画完了イベントに必須となるアプリケーションを優先起動させることにより、見かけ上の起動時間を短縮する。
【００５８】
ここで、図６を用いて、本実施形態に係るアプリケーション分類方法について説明する。図６は、本実施形態に係るアプリケーションの分類方法を説明するための図である。本実施形態では、アプリケーション群５３を、画面アプリの画像描画完了イベントに必須となるアプリケーションと、それ以外のアプリケーションに分類する。
【００５９】
例えば、図６に示すように、ログデータ５６には、起動プログラム５１の起動開始からの「時間（秒）」と、アプリケーション群５３のアプリケーション名である「アプリ名」と、「アプリ名」に関する「ログメッセージ」とが記録されている。具体的には、例えば起動プログラム５１が起動を開始してから「０．６６３７１２秒後」に、「画面アプリ」が、「アプリＡのサービス起動待ち」と記録され、アプリケーションそれぞれの起動状況が示されている。
【００６０】
起動方式変更手段４１は、このようなログが記録されているログデータ５６から、画面描画完了イベントを発行した画面アプリを検出し、画面アプリが画面描画完了イベントを発行するために、サービス起動待ちとなるアプリケーション間のサービス起動待ち合わせ関係を解析する。
【００６１】
例えば、ログデータ５６には、「画面アプリ」のログメッセージに「アプリＡのサービス起動待ち」、「アプリＡ」のログメッセージには「アプリＣの起動待ち」と「アプリＢの起動待ち」と記録されている。
【００６２】
したがって、これらのログデータから、起動方式変更手段４１は、アプリケーション分類手段４２によって、図６に示すように、画面アプリ５３Ａが、画面描画完了イベントを発行するために必要とされる画面アプリ依存グループ５３Ｂに属するアプリケーション「アプリＡ、アプリＢ、アプリＣ」と、画面アプリ５３Ａが、画面描画完了イベントを発行するのに必要とされない画面アプリ非依存グループ５３Ｃに属するアプリケーション「アプリＤ、アプリＥ、アプリＦ」の２種類に分類する。
【００６３】
＜アプリケーション分類処理のシーケンス図＞
図７は、本実施形態に係るアプリケーション分類処理のシーケンス図である。上述したように、アプリケーション分類手段４２によって分類した画面アプリ依存グループ５３Ｂと画面アプリ非依存グループ５３Ｃの結果に基づいて、起動方式変更手段４１は、起動スクリプト１０を変更する。具体的には、起動スクリプト１０の記載順を、画面アプリ依存グループ５３Ｂ、画面アプリ５３Ａ、画面アプリ非依存グループ５３Ｃの順番に記載する。
【００６４】
この状態で、情報処理装置１００を起動すると、図７に示すように、起動プログラム５１は、画面アプリ依存グループ５３Ｂに属するアプリケーションを読み込み、起動する（Ｓ３０）。
【００６５】
起動プログラム５１の起動により、画面アプリ依存グループ５３Ｂに属するアプリケーションは、例えばアプリケーションが使用する各種データの検出、使用するデバイス群７０のＨＤＤのパーティションチェック、更にアプリケーション間の接続処理等の初期化処理を行う（Ｓ３１）。次に、起動プログラム５１は、画面アプリ５３Ａを読み込み、起動する（Ｓ３２）と、画面アプリ５３Ａは、上述した初期化処理を行い（Ｓ３３）、終了後、画面描画完了通知を起動プログラム５１に対して発行する（Ｓ３４）。
【００６６】
起動プログラム５１は、画面アプリ５３Ａより画面描画完了通知を受け取ると、画面アプリ非依存グループ５３Ｃに属するアプリケーションを読み込み、起動し（Ｓ３５）、画面非依存グループ５３Ｃに属するアプリケーションは、上述した初期化処理を行う（Ｓ３６）。
【００６７】
上述したように、画面アプリ依存グループ５３Ｂのアプリケーションと画面アプリ５３Ａは、画面描画完了イベントが発行されるまで、優先的に処理が実行される。これにより、画面描画完了に必要となる処理が画面アプリ非依存グループ５３Ｃの実行により妨げられることがなく実行されることにより、情報処理装置１００の起動時間が短縮化される。
【００６８】
＜実施例２：アプリケーション起動順序変更方法＞
次に、図８を用いて、本実施形態に係る起動順序変更方法について説明する。図８は、本実施形態に係る起動順序変更方法を説明するための図である。
【００６９】
上述したように、起動プログラム５１は、起動スクリプト５２に記載された順にアプリケーションを起動するため、アプリケーション間にサービスの主従関係がある場合には、サービスの起動待ち合わせが発生し、その分起動時間が遅くなってしまう。
【００７０】
図８に示すように、例えば、起動スクリプト５２−１に「１：アプリＡを読み込み、２：アプリＡを実行、３：アプリＢを読み込み、４：アプリＢを実行、５：アプリＣを読み込み、６：アプリＣを実行」とアプリケーションの名称順に記載してある場合について説明する。
【００７１】
このように起動スクリプト５２に記載されている場合、例えば図８に示すログデータ５６−１に記録されているように、アプリＡは「アプリＣのサービス起動待ち」及び「アプリＢのサービス起動待ち」、アプリＢは「アプリＣのサービス起動待ち」が発生し、アプリＣのサービスが起動されてから、アプリＢのサービスが起動され、アプリＢのサービスが起動された後、アプリＡのサービスが起動される。
【００７２】
したがって、情報処理装置１００を起動して、アプリＡを実行するためには、アプリＢとアプリＣのサービスの起動を待たなければならないといった他のアプリケーションのサービス起動待ち合わせが発生してしまう。
【００７３】
上述したサービスの例としては、例えばＩＰＣ（プロセッサ間通信）によるクライアント−サーバ関係が挙げられる。
【００７４】
そこで、初期インストール状態の情報処理装置１００の起動が完了すると、予めログ解析プログラム８０を起動させて、起動方式変更手段４１は、ログデータ５６からサービス依存度合いの高いアプリケーションを解析する。
【００７５】
図８の例では、アプリＡとアプリＢは、アプリＣのサービス起動待ちをしているため、アプリＣが、最もサービス依存度合いの高いアプリケーションとなり、アプリＡは、アプリＢのサービス起動待ちをしているため、アプリＢが、次にサービス依存度合いの高いアプリケーションであると解析できる。
【００７６】
起動方式変更手段４１は、このように解析した結果を用いて、アプリケーション順序変更手段４３によって、サービス依存度合いの高いアプリケーションから順番に、起動スクリプト５２の起動順序を書き換える。
【００７７】
例えば図８に示すように、アプリケーション順序変更手段４３は、解析した結果を用いて、起動スクリプト５２−２に「１：アプリＣを読み込み、２：アプリＣを実行、３：アプリＢを読み込み、４：アプリＢを実行、５：アプリＡを読み込み、６：アプリＡを実行」とアプリケーションの起動順序を記載する。
【００７８】
この状態で、情報処理装置１００を再起動すると、例えば図８に示すログデータ５６−２に記録されているように、アプリＣが起動された後、アプリＢが起動されてアプリＣのサービスを使用開始した後、アプリＢのサービスを起動できる。また、アプリＡは、アプリＣのサービスとアプリＢのサービスが使用開始した後、アプリＡのサービスを起動することが可能となる。
【００７９】
これにより、各アプリケーションの起動にあたり、他のアプリケーションのサービス起動待ち合わせが発生しなくなるため、情報処理装置１００の起動時間が短縮される。
【００８０】
＜起動順序変更前のシーケンス図＞
ここで、図９を用いて、図８に示した起動順序変更前のシーケンスについて説明する。図９は、本実施形態に係る起動順序変更前のシーケンス図である。
【００８１】
図９に示すように、起動プログラム５１は、図８の起動スクリプト５２−１の記載順に、アプリＡを読み込み（Ｓ４０）、アプリＡを起動すると（Ｓ４１）、アプリＡにおいて、アプリＣのサービス起動待ちが発生する（Ｓ４２）。次に、起動プログラム５１は、アプリＢを読み込み（Ｓ４３）、アプリＢを起動すると（Ｓ４４）、アプリＢにおいて、アプリＣのサービス起動待ちが発生する（Ｓ４５）。
【００８２】
次に、起動プログラム５１は、アプリＣを読み込み（Ｓ４６）、アプリＣを起動すると（Ｓ４７）、アプリＡに対してアプリＣのサービスが起動し（Ｓ４８）、アプリＢに対してアプリＣのサービスが起動する（Ｓ４９）。
【００８３】
次に、アプリＡにおいて、アプリＢのサービス起動待ちが発生し（Ｓ５０）、アプリＡに対してアプリＢのサービスが起動すると（Ｓ５１）、アプリＡはサービスを起動する（Ｓ５２）。
【００８４】
上述したように、アプリＡの起動の後、アプリＡとアプリＢにおいてアプリＣのサービス起動待ちが発生し、アプリＡにおいて、アプリＢのサービス起動待ちが発生してしまい、アプリＣとアプリＢのサービスが起動されるのを待って、アプリＡが起動している。
【００８５】
＜起動順序変更後のシーケンス図＞
次に、図１０を用いて、図８に示した起動順序変更後のシーケンスについて説明する。図１０は、本実施形態に係る起動順序変更後のシーケンス図である。
【００８６】
図１０に示すように、起動プログラム５１は、図８の起動スクリプト５２−２の記載順に、アプリＣを読み込み（Ｓ６０）、アプリＣを起動すると（Ｓ６１）、アプリＣはサービスを起動する（Ｓ６２）。
【００８７】
次に、起動プログラム５１は、アプリＢを読み込み（Ｓ６３）、アプリＢを起動すると（Ｓ６４）、Ｓ６２の処理で、すでにアプリＣのサービスが起動しているため、アプリＢにおいて、アプリＣのサービスの使用が開始される（Ｓ６５）。
【００８８】
次に、起動プログラム５１は、アプリＡを読み込む（Ｓ６６）。アプリＢにおいてサービスが起動され（Ｓ６７）、アプリＡが起動すると（Ｓ６８）、アプリＡにおいて、アプリＣのサービスの使用が開始し（Ｓ６９）、続けてアプリＢのサービスの使用が開始され（Ｓ７０）、アプリＡのサービスが起動する（Ｓ７１）。
【００８９】
上述したように、アプリＡがサービスを使用開始する前に、アプリＡがサービスを使用するアプリＢ及びアプリＣ等の他のアプリケーションのサービスは起動完了となっている。このように、早めにサービスを開始すべきアプリケーションから順番に起動しているため、装置においてアプリケーションの設計を認識せずに、アプリケーション間のサービスの起動待ち合わせ状態を抑制し、情報処理装置１００の起動時間を短縮化する。
【００９０】
＜実施例３：起動待ち時間挿入方法＞
次に、図１１を用いて、本実施形態に係る起動待ち時間挿入方法について説明する。図１１は、本実施形態に係る起動待ち時間挿入方法を説明するための図である。
【００９１】
上述したようにアプリケーションの起動順序を変更することにより、サービス起動待ち合わせの発生を抑制し、サービス起動待ち合わせに伴う起動時間の遅れを排除することが可能となる。しかしながら、サービス起動前に重い処理を実行することによって、他のアプリケーションのサービスの起動に待ち合わせが発生する場合がある。
【００９２】
図１１に示すように、上述したサービスの依存順にアプリケーションの起動順序を変更して、起動スクリプト５２−３に「１：アプリＣを読み込み、２：アプリＣを実行、３：アプリＢを読み込み、４：アプリＢを実行、５：アプリＡを読み込み、６：アプリＡを実行」と記載してあるものとする。
【００９３】
このように起動スクリプト５２−３に記載されている場合であっても、例えば図１１に示すログデータ５６−３に記録されているように、アプリＢに「アプリＣのサービス起動待ち」が発生した後、アプリＣが「サービス起動」となっている。
【００９４】
このように、アプリＢのアプリケーションを実行する場合に、他のアプリケーションであるアプリＣのアプリケーションのサービス起動待ち合わせが発生している。
【００９５】
これは、上述したようにアプリＣが、サービス起動前に重い処理を実行することによって、アプリＣのサービスを使用するアプリＢの起動が早く開始されてしまうためである。
【００９６】
そこで、初期インストール状態の情報処理装置１００の起動が完了すると、ログ解析プログラム８０を起動させて、起動方式変更手段４１は、ログデータ５６から所定の起動処理時間を超える重い処理を実行していたと推測されるアプリケーションを検出し、ログデータ５６を解析することにより適切なｗａｉｔ時間（起動待ち時間）を算出する。
【００９７】
起動方式変更手段４１は、このように解析した結果を用いて、起動待ち時間挿入手段４４によって、起動スクリプト５２において、重い処理を実行していたと推測されるアプリケーションの実行文直後に、上述した算出に基づく適切な長さのｗａｉｔ命令を挿入する。
【００９８】
例えば図１１に示すように、起動待ち時間挿入手段４４は、解析した結果を用いて、起動スクリプト５２−４に「１：アプリＣを読み込み、２：アプリＣを実行、３：ｗａｉｔ、４：アプリＢを読み込み、５：アプリＢを実行、６：アプリＡを読み込み、７：アプリＡを実行」と適切な長さのｗａｉｔ命令を挿入する。
【００９９】
この状態で、情報処理装置１００を再起動すると、例えば図１１に示すログデータ５６−４に記録されているように、アプリＣが起動された後、重い処理が完了するのを待ってから、起動プログラム５１は、アプリＣのサービスに依存しているアプリＢを起動する。
【０１００】
これにより、重い処理の実行は、他のアプリケーションに妨げられることなく優先的に実行されることにより、重い処理の実行完了を早め、またサービス起動の待ち合わせも発生することなく、情報処理装置１００の起動時間が短縮される。
【０１０１】
＜起動待ち時間挿入前のシーケンス図＞
ここで、図１２を用いて、図１１に示した起動待ち時間挿入前のシーケンスについて説明する。図１２は、本実施形態に係る起動待ち時間挿入前のシーケンス図である。
【０１０２】
図１２に示すように、起動プログラム５１は、図１１の起動スクリプト５２−３の記載順に、アプリＣを読み込み（Ｓ８０）、アプリＣを起動すると（Ｓ８１）、アプリＣにおいて重い処理が実行される（Ｓ８２）。
【０１０３】
次に、起動プログラム５１は、アプリＢを読み込み（Ｓ８３）、アプリＢを起動すると（Ｓ８４）、アプリＢにおいてアプリＣのサービス起動待ちが発生する（Ｓ８５）。
【０１０４】
次に、起動プログラム５１は、アプリＡを読み込む。（Ｓ８６）
次に、アプリＢに対して、アプリＣのサービスが起動し（Ｓ８７）、アプリＢにおいてサービスが起動される（Ｓ８８）。
【０１０５】
次に、起動プログラム５１は、アプリＡを起動し（Ｓ８９）、アプリＡにおいて、アプリＣのサービスの使用が開始し（Ｓ９０）、続けてアプリＢのサービスの使用が開始され（Ｓ９１）、アプリＡのサービスが起動する（Ｓ９２）。
【０１０６】
＜起動待ち時間挿入後のシーケンス図＞
次に、図１３を用いて、図１１に示した起動待ち時間挿入後のシーケンスについて説明する。図１３は、本実施形態に係る起動待ち時間挿入後のシーケンス図である。
【０１０７】
図１３に示すように、起動プログラム５１は、図１１の起動スクリプト５２−４の記載順に、アプリＣを読み込み（Ｓ１００）、アプリＣを起動すると（Ｓ１０１）、アプリＣにおいて重い処理実行される（Ｓ１０２）。
【０１０８】
次に、起動プログラム５１において、起動待ち時間挿入手段４４によって挿入された起動スクリプト５２−４のｗａｉｔに基づき、待ち時間が追加され（Ｓ１０３）、Ｓ１０３の待ち時間の後、アプリＢを読み込むと（Ｓ１０４）、アプリＣにおいてサービスが起動される（Ｓ１０５）。
【０１０９】
次に、起動プログラム５１は、アプリＢを起動すると（Ｓ１０６）、Ｓ１０５の処理においてすでにアプリＣのサービスが起動されているため、アプリＢにおいてアプリＣのサービス起動待ちをすることなく、アプリＣのサービスの使用が開始される（Ｓ１０７）。
【０１１０】
次に、起動プログラム５１は、アプリＡを読み込む（Ｓ１０８）。アプリＢにおいてサービスが起動される（Ｓ１０９）。
【０１１１】
次に、起動プログラム５１は、アプリＡを起動し（Ｓ１１０）、アプリＡにおいて、アプリＣのサービスの使用が開始し（Ｓ１１１）、続けてアプリＢのサービスの使用が開始され（Ｓ１１２）、アプリＡのサービスが起動する（Ｓ１１３）。
【０１１２】
上述したように、アプリＢの読み込み前に、起動待ち時間が挿入されることにより、アプリＢによってアプリＣの重い処理の実行が邪魔されることなく、アプリＣの重い処理が優先的に実行されることにより、アプリＣの重い処理の実行完了を早める。これにより、アプリＣのサービスの開始を早めると共に、アプリＢにおけるアプリＣのサービス起動待ちを抑制することにより、情報処理装置１００全体の起動時間が短縮化される。
【０１１３】
＜実施例４：デバイス初期化順序変更方法＞
次に、図１４を用いて、本実施形態に係るデバイス初期化順序変更方法について説明する。図１４は、本実施形態に係るデバイス初期化順序変更方法を説明するための図である。
【０１１４】
上述した図４において説明したように、アプリケーション群５３は、ＨＤＤ、ＵＳＢメモリディスク等のデバイス群７０を使用して動作する。デバイス群７０は、デバイス初期化プログラム５４が、デバイス初期化順序定義５５に定義されたデバイス初期化順序にしたがって初期化処理することによりはじめてアプリケーションから使用可能な状態となる。
【０１１５】
しかしながら、デバイス群７０の初期化をデバイス位置順にデバイス初期化順序定義５５に記載した場合、デバイスの使用開始待ち合わせが発生する場合がある。
【０１１６】
図１４に示すように、例えば、デバイス初期化順序定義５５−１に「１：デバイスＡ初期化、２：デバイスＢ初期化、３：デバイスＣ初期化、４：デバイスＤ初期化」とデバイスの位置順に記載してある場合について説明する。
【０１１７】
このようにデバイス初期化順序定義５５−１に記載されている場合、例えば図１４に示すログデータ５６−５に記録されているように、デバイスＡからデバイスＤが順番に初期化されていく。一方、始めに起動されたアプリＣは、「デバイスＢを使用開始」、次に「デバイスＤを使用開始」している。
【０１１８】
したがって、例えばアプリＣがデバイスＢを使用開始する前にデバイスＢが初期化されていないときには、アプリＣはデバイスＢが初期化されるのを待たなければならず、アプリＣにおいて、デバイスＢを使用するためのデバイス使用開始待ち状態が発生する。
【０１１９】
そこで、初期インストール状態の情報処理装置１００の起動が完了すると、ログ解析プログラム８０を起動させて、起動方式変更手段４１は、ログデータ５６に出現するデバイスの使用開始イベントを解析する。例えば図１４の例では、ログデータ５６に「デバイスＢを使用開始」、「デバイスＤを使用開始」とあるため、デバイスの使用開始イベントは、デバイスＢ、デバイスＤ、デバイスＡ・・・であると解析できる。
【０１２０】
起動方式変更手段４１は、このように解析した結果を用いて、デバイス初期化順序変更手段４５によって、デバイス使用開始イベント順に、デバイス初期化順序定義５５の起動順序を書き換える。
【０１２１】
例えば図１４に示すように、デバイス初期化順序変更手段４５は、解析した結果を用いて、デバイス初期化順序定義５５−２に「１：デバイスＢ初期化、２：デバイスＤ初期化、３：デバイスＡ初期化、４：デバイスＣ初期化」とデバイス群７０の初期化順序を記載する。
【０１２２】
この状態で、情報処理装置１００を再起動すると、例えば図１４に示すログデータ５６−６に記録されているように、まずデバイスＢが初期化され、次にアプリＣがデバイスＢの使用を開始し、デバイスＤが初期化され、アプリＣがデバイスＤを使用開始することにより、アプリＣがサービスを起動するまでの時間が短縮化される。
【０１２３】
このように、アプリケーション群が必要とする順番でデバイス初期化が行なわれ、デバイスの使用開始待ち合わせにかかる時間が短縮化されるため、情報処理装置１００の起動時間が短縮化される。
【０１２４】
＜デバイス初期化順序変更前のシーケンス図＞
ここで、図１５を用いて、図１４に示したデバイス初期化順序変更前のシーケンスについて説明する。図１５は、本実施形態に係るデバイス初期化順序変更前のシーケンス図である。
【０１２５】
図１５に示すように、起動プログラム５１は、まず初期化プログラム５４を起動する（Ｓ１２０）。次に、起動スクリプト５２の記載順にしたがって、例えばアプリＣを起動すると（Ｓ１２１）、アプリＣは、デバイスＢを使用開始しようとする（Ｓ１２２）が、デバイスＢが初期化されていないため、例えば図１５の矢印Ａに示すようにアプリＣはデバイスＢの使用開始待ち状態となる。
【０１２６】
次に、デバイス初期化プログラム５４は、デバイス初期化順序定義５５−１にしたがって、まずデバイスＡを初期化し（Ｓ１２３）、次に、デバイスＢを初期化する（Ｓ１２４）。ここで、デバイスＢからアプリＣに対して使用開始完了が通知されて（Ｓ１２５）、アプリＣは、初めてデバイスＢを使用開始する。
【０１２７】
次に、アプリＣは、デバイスＤを使用開始しようとする（Ｓ１２６）が、デバイスＤは初期化されていないため、例えば図１５の矢印Ｂに示すようにアプリＣはデバイスＤの使用開始待ち状態となる。
【０１２８】
次に、デバイス初期化プログラム５４により、デバイスＣが初期化され（Ｓ１２７）、デバイスＤが初期化される（Ｓ１２８）。ここで、デバイスＤからアプリＣに対して使用開始完了が通知され（Ｓ１２９）、アプリＣは、初めてデバイスＤを使用開始し、アプリＣは、サービスを起動する（Ｓ１３０）。
【０１２９】
次に、起動プログラム５１は、アプリＢを起動し（Ｓ１３１）、アプリＢにおいてアプリＣのサービスを使用開始して（Ｓ１３２）、アプリＢは、サービスを起動する（Ｓ１３３）。次に、起動プログラム５１は、アプリＡを起動し（Ｓ１３４）、アプリＡにおいて、アプリＣのサービスを使用開始し（Ｓ１３５）、アプリＢのサービスを使用開始し（Ｓ１３６）、デバイスＡを使用開始しようとする（Ｓ１３７）。デバイスＡからアプリＡに対して使用開始完了が通知されると（Ｓ１３８）、アプリＡは、デバイスＡの使用を開始し、アプリＡは、サービスを起動する（Ｓ１３９）。
【０１３０】
＜デバイス初期化順序変更後のシーケンス図＞
次に、図１６を用いて、図１４に示したデバイス初期化順序変更後のシーケンスについて説明する。図１６は、本実施形態に係るデバイス初期化順序変更後のシーケンス図である。
【０１３１】
図１６に示すように、起動プログラム５１が、デバイス初期化プログラム５４を起動し（Ｓ１４０）、アプリＣを起動する（Ｓ１４１）。
【０１３２】
アプリＣは、デバイスＢを使用開始しようとして（Ｓ１４２）、図１６の矢印Ｃに示すようにアプリＣはデバイスＢの使用開始待ち合わせ状態となるが、デバイス初期化プログラム５４がデバイスＢから初期化するため（Ｓ１４３）、デバイスＢからアプリＣに対して使用開始完了が通知されて（Ｓ１４４）、アプリＣはすぐにデバイスＢを使用開始する。これにより、上述した図１５のＡに示した場合よりもデバイスの使用開始待ち合わせにかかる時間が短縮化される。
【０１３３】
同様に、アプリＣは、デバイスＤを使用開始しようとして（Ｓ１４５）、図１６の矢印Ｄに示すようにアプリＣはデバイスＤの使用開始待ち合わせ状態となるが、デバイス初期化プログラム５４が次にデバイスＤを初期化するため（Ｓ１４６）、デバイスＤからアプリＣに対して使用開始完了が通知されて（Ｓ１４７）、アプリＣにおいてすぐにデバイスＤを使用開始し、アプリＣは、サービスを起動する（Ｓ１４８）。
【０１３４】
このように、上述した図１５のＢに示した場合よりもデバイスの使用開始待ち合わせにかかる時間が短縮化される。また、アプリＣは、上述したようにデバイスＢ、デバイスＤの使用開始待ち合わせにかかる時間が短縮化されることにより、サービス起動までの時間がさらに短縮化される。
【０１３５】
したがって、次に、起動プログラム５１が、アプリＢを起動すると（Ｓ１４９）、アプリＢは、すぐにアプリＣのサービス使用を開始することができるため（Ｓ１５０）、アプリＢのサービスの起動（Ｓ１５１）も早くなる。
【０１３６】
次に、デバイス初期化プログラム５４は、デバイスＡを初期化し（Ｓ１５２）、起動プログラム５１は、アプリＡを起動すると（Ｓ１５３）、アプリＡは、アプリＣのサービス使用を開始し（Ｓ１５４）、アプリＢのサービス使用を開始する（Ｓ１５５）。また、アプリＡは、デバイスＡの使用を開始しようとして（Ｓ１５６）、デバイスＡから使用開始完了が通知されると（Ｓ１５７）、アプリＡは、サービスを起動する（Ｓ１５８）。次に、デバイス初期化プログラム５４は、デバイスＣを初期化する（Ｓ１５９）。
【０１３７】
上述したように、アプリケーション群５３がデバイスを必要とする順番にデバイス群７０の初期化が行なわれることにより、アプリケーションがデバイスを使用開始するための使用開始待ちにかかる時間を短縮化し、情報処理装置１００全体の起動時間が短縮化される。
【０１３８】
＜実施例５：アプリケーションの構成変更処理＞
次に、図１７を用いて、本実施形態に係るアプリケーション構成変更処理について説明する。図１７は、本実施形態に係るアプリケーション構成変更処理の流れを示すフローチャートである。
【０１３９】
上述した実施例１〜実施例４に示す起動方式の最適化は、情報処理装置１００においてインストールされているアプリケーションの構成が変化しないことを前提としている。
【０１４０】
したがって、例えば情報処理装置１００においてアプリケーションがインストール又はアンインストールされることにより、情報処理装置１００のアプリケーション構成が変化する場合、上述したアプリケーション間の依存関係が変化し、またデバイス使用開始タイミングが変化する。
【０１４１】
そこで、起動方式変更手段４１は、以下のようにアプリケーション構成変更処理を実行する。
【０１４２】
図１７に示すように、起動方式変更手段４１は、第１の起動ステップにおいて、上述した実施例１のアプリケーション分類処理により、アプリケーション分類手段４２を用いてアプリケーション群５３を分類し、起動スクリプト５２を変更する（Ｓ１６０）。これにより、アプリケーション群５３は、上述した起動に必須となるアプリケーションと、起動に必須ではないアプリケーションとに分類される。
【０１４３】
次に、起動方式変更手段４１は、インストール又はアンインストールによりアプリケーションの変更があったか否かを確認し（Ｓ１６１）、変更がないと判断した場合（Ｓ１６１において、ＮＯ）、再起動する。変更があったと判断した場合（Ｓ１６１において、ＹＥＳ）、Ｓ１６０の処理に戻る。
【０１４４】
次に、起動方式変更手段４１は、第２の起動ステップにおいて、上述した実施例２のアプリケーション順序変更処理により、アプリケーション順序変更手段４３を用いてアプリケーション群５３のアプリケーション起動順序を変更し、起動スクリプト５２を変更する（Ｓ１６２）。これにより、アプリケーションの起動順序を確定し、上述した実施例３及び４に基づく調整処理を有効にすることができる。
【０１４５】
次に、起動方式変更手段４１は、インストール又はアンインストールによりアプリケーションの変更があったか否かを確認し（Ｓ１６３）、変更がないと判断した場合（Ｓ１６３において、ＮＯ）、再起動する。変更があったと判断した場合（Ｓ１６３において、ＹＥＳ）、Ｓ１６０の処理に戻る。
【０１４６】
次に、起動方式変更手段４１は、第３の起動ステップにおいて、上述した実施例４のデバイス初期化順序変更処理により、デバイス初期化順序変更手段４５を用いてデバイス群７０のデバイス起動順序を変更し、デバイス初期化順序定義５５を変更する（Ｓ１６４）。
【０１４７】
これにより、Ｓ１６２の処理において決定したアプリケーションの起動順序に対応したデバイスの初期化順序が決定される。なお、アプリケーションの起動順序が決定すれば、それ以降、デバイス初期化順序が入れ替わることはない。
【０１４８】
次に、起動方式変更手段４１は、インストール又はアンインストールによりアプリケーションの変更があったか否かを確認し（Ｓ１６５）、変更がないと判断した場合（Ｓ１６５において、ＮＯ）、再起動する。変更があったと判断した場合（Ｓ１６５において、ＹＥＳ）、Ｓ１６０の処理に戻る。
【０１４９】
次に、起動方式変更手段４１は、第４の起動ステップにおいて、随時アプリケーションの処理時間をサービス起動タイミングから予測して、上述した実施例３の起動待ち時間挿入処理により、起動待ち時間挿入手段４４を用いて適切な起動待ち時間を起動スクリプト５２に挿入する（Ｓ１６７）。
【０１５０】
次に、起動方式変更手段４１は、インストール又はアンインストールによりアプリケーションの変更があったか否かを確認し（Ｓ１６８）、変更がないと判断した場合（Ｓ１６８において、ＮＯ）、再起動する。変更があったと判断した場合（Ｓ１６８において、ＹＥＳ）、Ｓ１６０の処理に戻る。
【０１５１】
上述したように、初期インストール状態の情報処理装置１００が起動する度に、起動方式変更手段４１によって、起動時間の最適化を実行し、途中、インストール、アンインストール等によりアプリケーションの構成が変更になる場合には、アプリケーション間のサービス依存関係が変更になる場合があるため、起動方式の最適化を第１のステップからやり直す。
【０１５２】
これにより、情報処理装置１００において、例えば製品出荷時に想定していなかったアプリケーション構成となった場合であっても、アプリケーションの構成変更に対応させた最適な起動時間を得ることができ、情報処理装置１００の起動時間を常時最短とすることが可能となる。
【０１５３】
なお、上述した実施例１〜実施例５は、再起動時の実行処理について説明したが、本発明においてはこれに限定されず、例えば情報処理装置１００をシャットダウンさせた後、次に起動させる場合にも、再起動時と同様の実行処理が適用される。
【０１５４】
上述したように、本実施形態によれば、アプリケーションログデータを解析することで、起動方式を自動調整して、アプリケーションの構成に対応した情報処理装置の高速起動を可能とすると共に、アプリケーションの構成変更に対応して情報処理装置の起動時間を最適化する。
【０１５５】
以上、本発明者によってなされた発明を好適な実施例に基づき具体的に説明したが、本
発明は上記実施例で説明したものに限定されるものではなく、その要旨を逸脱しない範囲
で種々変更可能である。
【符号の説明】
【０１５６】
１０  入力手段
２０  出力手段
３０  制御手段
４０  ログ解析手段
４１  起動方式変更手段
４２  アプリケーション分類手段
４３  アプリケーション順序変更手段
４４  起動待ち時間挿入手段
４５  デバイス初期化順序変更手段
５０  記録手段
５１  起動プログラム
５２  起動スクリプト
５３  アプリケーション群
５４  デバイス初期化プログラム
５５  デバイス初期化順序定義
５６  ログデータ
６１  入力装置
６２  出力装置
６３  ドライブ装置
６４  補助記憶装置
６５  メモリ装置
６６  演算処理装置
６７  ネットワーク接続装置
７０  デバイス群
８０  ログ解析プログラム
【先行技術文献】
【特許文献】
【０１５７】
【特許文献１】特開２００６−２５９８７３号公報
【図１】
0005391918.tif 000002
【図２】
0005391918.tif 000003
【図３】
0005391918.tif 000004
【図４】
0005391918.tif 000005
【図５】
0005391918.tif 000006
【図６】
0005391918.tif 000007
【図７】
0005391918.tif 000008
【図８】
0005391918.tif 000009
【図９】
0005391918.tif 000010
【図１０】
0005391918.tif 000011
【図１１】
0005391918.tif 000012
【図１２】
0005391918.tif 000013
【図１３】
0005391918.tif 000014
【図１４】
0005391918.tif 000015
【図１５】
0005391918.tif 000016
【図１６】
0005391918.tif 000017
【図１７】
0005391918.tif 000018