(57)【要約】【課題】ネットワーク通信可能になっていることが前提となるようなアプリが情報処理装置にインストールされている場合に、情報処理装置の初期化処理を短時間かつ確実に行うことができない。【解決手段】本発明では、情報処理装置にインストールされているアプリに応じて、情報処理装置がネットワーク通信可能になるまで待つ処理を実行するかどうかを判断する。これにより、必要な場合のみネットワーク通信待ちを行うことが可能となるため、情報処理装置の初期化処理を短時間かつ確実に実行することが可能となる。【選択図】図３
2018120310.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークと接続でき、アプリケーションをインストール可能な情報処理装置であって、
前記情報処理装置の起動に応じて、前記アプリケーションがインストールされているか否かを判定する判定手段と、
前記アプリケーションがインストールされていると前記判定手段により判定された場合には、前記通信ネットワークと接続されることを待機する待機手段と、
前記待機手段により待機した場合にはその後で、前記アプリケーションを初期化する初期化手段と
を有することを特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記待機手段は、前記アプリケーションがインストールされていると前記判定手段により判定された場合には、前記通信ネットワークと接続されているか否かを判定し、接続されていないと判定された場合に、前記通信ネットワークと接続されることを待機することを特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置であって、
前記待機手段は、前記アプリケーションがインストールされていると前記判定手段により判定された場合には、インストールされているアプリケーションごとに、当該アプリケーションが、初期化処理において前記通信ネットワークに接続されているべきか否かを判定し、接続されているべきと判定された場合に前記通信ネットワークと接続されているか否かを判定し、接続されていないと判定された場合に、前記通信ネットワークと接続されることを待機することを特徴とする情報処理装置。
【請求項４】
請求項１乃至３のいずれか一項に記載の情報処理装置であって、
前記判定手段による判定の前に、前記情報処理装置が通常モードで動作しているか判定する手段をさらに有し、
前記通常モードではないと判定された場合には、前記アプリケーションの初期化を行わないことを特徴とする情報処理装置。
【請求項５】
請求項２または３に記載の情報処理装置であって、
前記通信ネットワークと接続されているか否かの判定において、ＩＰアドレスを取得済みであれば前記通信ネットワークと接続されていると判定することを特徴とする情報処理装置。
【請求項６】
請求項１乃至５のいずれか一項に記載の情報処理装置であって、
前記判定手段は、インストール済みのアプリケーションを登録した表に基づいて、前記アプリケーションがインストールされているか否かを判定することを特徴とする情報処理装置。
【請求項７】
請求項３に記載の情報処理装置であって、
前記判定手段は、インストール済みのアプリケーションごとに登録した、アプリケーションの識別情報と、アプリケーションの種類と、前記通信ネットワークを利用するか否かを示す情報とを含む表に基づいて、前記アプリケーションがインストールされているか否かを判定し、
前記待機手段は、前記アプリケーションの種類および前記通信ネットワークを利用するか否かを示す情報に基づいて、前記アプリケーションが、初期化処理において前記通信ネットワークに接続されているべきか否かを判定することを特徴とする情報処理装置。
【請求項８】
請求項１乃至７のいずれか一項に記載の情報処理装置であって、
画像形成手段と、
画像読取手段と
をさらに有することを特徴とする情報処理装置。
【請求項９】
請求項６または７に記載の情報処理装置であって、
前記表は、前記アプリケーションのインストールのときに、前記アプリケーションに関連づけられた設定に基づいて登録されることを特徴とする情報処理装置。
【請求項１０】
請求項１乃至９のいずれか一項に記載の情報処理装置としてコンピュータを機能させるためのプログラム。
【請求項１１】
通信ネットワークと接続でき、アプリケーションをインストール可能な情報処理装置の制御方法であって、
前記情報処理装置の起動に応じて、前記アプリケーションがインストールされているか否かを判定し、
前記アプリケーションがインストールされていると判定された場合には、前記通信ネットワークと接続されることを待機し、
前記通信ネットワークと接続されることを待機した場合にはその後で、前記アプリケーションを初期化する
ことを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法に関し、特に起動処理の技術に関する。
【背景技術】
【０００２】
情報処理装置の電源を入れて起動すると、情報処理装置上で動作するモジュールやアプリケーション(以下、アプリ)の初期化処理を開始する。そして、これらの初期化処理が全て完了すると、情報処理装置は初期化完了となり、ユーザが情報処理装置を利用可能となる。そのため、情報処理装置の初期化に必要な初期化時間を短縮することは、ユーザの利便性向上に繋がる。なお、情報処理装置には後から必要に応じてアプリをインストールすることが可能であり、後からインストールしたアプリの初期化も情報処理装置の初期化処理の一部として行う。後からインストールするアプリはサードパーティによって開発されるものもあり、アプリの初期化処理を正常に行うためには、情報処理装置がネットワーク通信可能になっている等の条件が必要なことがある。そのため、情報処理装置が必要な条件を満たしていない場合、アプリの初期化処理に失敗してしまう。
【０００３】
このための解決手段として、特許文献１のように、情報処理装置を起動してログを取得し、このログを解析してモジュールやアプリの起動順を変更しておくことで、次回起動時の情報処理装置の初期化を短時間かつ確実に行う技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2011-39745号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１の先行技術を用いた方法では、情報処理装置に新しくアプリをインストールすると、情報処理装置を再起動してログの取得と解析を行う必要があり、時間と手間がかかってしまうという課題がある。なお近年では、情報処理装置がネットワーク通信可能になっていることを初期化の前提条件にしているアプリが多い。そのため、このようなアプリが情報処理装置にインストールされている場合でも、情報処理装置の初期化を短時間かつ確実に行うことが求められている。
【０００６】
本発明は上記従来例に鑑みて成されたもので、情報処理装置の状況に関わらず情報処理装置の初期化処理を短時間かつ確実に行うことを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は以下の構成を有する。
【０００８】
本発明の一態様によれば、本発明は、通信ネットワークと接続でき、アプリケーションをインストール可能な情報処理装置であって、
前記情報処理装置の起動に応じて、前記アプリケーションがインストールされているか否かを判定する判定手段と、
前記アプリケーションがインストールされていると前記判定手段により判定された場合には、前記通信ネットワークと接続されることを待機する待機手段と、
前記待機手段により待機した場合にはその後で、前記アプリケーションを初期化する初期化手段とを有する。
【発明の効果】
【０００９】
本発明によれば、情報処理装置の状況に関わらず情報処理装置の初期化処理を短時間かつ確実に行うことが可能となる。これにより、ユーザの利便性が向上する。
【図面の簡単な説明】
【００１０】
【図１】本発明の各実施形態に共通する画像形成装置１００のコントローラユニット１１９を表すブロック図である。
【図２】本発明の各実施形態に共通するコントローラユニット１１９のソフトウエア構成を表すブロック図である。
【図３】本発明の各実施形態に共通する画像形成装置１００の初期化処理を表すフローチャート図である。
【図４】本発明の各実施形態に共通するシステムモジュール初期化テーブルのイメージ図である。
【図５】本発明の各実施形態に共通するユーザアプリ管理テーブルのイメージ図である。
【図６】本発明の第２実施形態の画像形成装置１００の初期化処理を表すフローチャート図である。
【図７】本発明の第３実施形態の画像形成装置１００の初期化処理を表すフローチャート図である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について、図面を用いて説明する。
【００１２】
［第１の実施形態］
最初に、情報処理装置の一実施例である画像形成装置のコントローラユニットの説明を行う。
＜画像形成装置のコントローラユニットの構成＞
図1は、本発明の各実施形態に係る画像形成装置１００のコントローラユニットの内部構造を示すブロック図である。画像形成装置１００はたとえば多機能周辺機器（ＭＦＰ）などであり、その情報処理能力に着目して情報処理装置と呼ぶこともある。
【００１３】
コントローラユニット１１９は、各種制御プログラムを実行するCPU１０１を有する。CPU１０１は、ROM１０３に格納されているブートプログラムに基づきシステムを起動し、このシステム上でHDD(ハードディスク装置)１０４に格納されている制御プログラムを読み出してRAM１０２をワークエリアとして所定の処理を実行する。この制御プログラムにより、Java（登録商標）プログラムなどの所定の制御を実行することが可能である。HDD１０４には、上記各種制御プログラムが格納されるとともに、画像データや後述するネットワーク部１０７が有するすべての通信手段に関する情報を格納する。CPU１０１には、RAM１０２、ROM１０３、HDD１０４がシステムバス１１１を介して接続されている。さらに操作部I/F１０５、ネットワーク部１０７、イメージバスI/F１０９、電源管理部１０９がシステムバス１１１を介して接続されている。
【００１４】
操作部Ｉ／Ｆ１０５は、操作部（例えばタッチパネルなど、ディスプレイも備えている）１０６との間のインターフェイス部であり、操作部１０６に表示する画像データをＲＡＭ１０２から取得して転送する処理や、操作部１０６で発生した信号をＣＰＵ１０１へ転送する処理などを行う。操作部１０６は、ユーザが操作可能なボタンなどの対象物を表示するための表示処理と、表示処理に表示された情報をユーザが操作した信号(入力信号)を検知する入力処理を行う。
【００１５】
電源管理部１０９は、画像形成装置１００の電源OFFと電源ONの管理を行う。なお電源ONを検知した場合、上述のように、CPU１０１は、ROM１０３のブートプログラムに基づきシステムを起動し、このシステム上でHDD１０４に格納されている制御プログラムを実行することで、画像形成装置１００の初期化処理を行う。
【００１６】
ネットワーク部１０７は、LAN１０８に接続され、LAN１０８を介した情報の入出力を行う。LAN回線にwebサーバが接続されている場合は、そのサーバからLAN１０８を介して情報を取得することが可能である。また、LAN回線内のプロキシサーバなどを介して、インターネットに接続し、インターネット上のwebサーバからwebコンテンツを取得することも可能である。
【００１７】
イメージバスI/F１１０は、システムバス１１１と、画像バス１１２とを接続し、データ構造を変換するバスブリッジである。画像バス１１２は、画像データを高速で転送可能なPCIバスまたはIEEE１３９４規定に従うバスから構成される。画像バス１１２には、デバイスI/F１１４および画像処理部１１３が接続されている。
【００１８】
デバイスI/F１１４は、画像読取デバイスであるスキャナ１１６や画像形成デバイスであるプリンタ１１８（まとめて画像入出力デバイスとも呼ぶ）とコントローラユニット１１９とを接続し、画像データの同期系／非同期系の変換を行う。ここでは、デバイスI/F１１４とスキャナ１１６とがケーブル１１５を介して、デバイスI/F１１４とプリンタ１１８とがケーブル１１７を介してそれぞれ接続されている。
【００１９】
画像処理部１１３は、多値画像データに対してJPEG、二値画像データに対して、JBEG、MMR、MHなどの圧縮伸張処理を行う。また、入力画像データや出力画面に対して、プリンタの補正や解像度変換などの補正、加工、編集を行う。
【００２０】
このように、コントローラユニット１１９のCPU１０１は、各制御プログラムに基づき、システムバス１１０に接続される各種デバイスとのアクセスを総括的に制御するととともに、デバイスI/F１１４を介してスキャナ１１６から画像情報を読み込む。また、読み込んだ画像情報に対して所定の処理を施した後に該画像情報をデバイスI/F１１４を介してプリンタ１１８に出力するなどの制御を行う。さらに、ネットワーク部１０７を通じて取得した文字データや画像データの解析・変換処理を行い、HDD１０４へ保存あるいは操作部１０６での表示制御を行う。
【００２１】
＜ソフトウエアのモジュール構成＞
次に、図２のモジュール構成図を用いて、画像形成装置１００のCPU１０１やHDD１０４などの各ハードウエア上で動作するソフトウエアのモジュール構成を説明する。なお、これらの各モジュールにおける処理は、CPU１０１により、ROM１０３やHDD１０４に記憶されているプログラムを読み出して実行し、RAM１０２をワークエリアとして所定の処理を実行することで実現している。また、所定の処理を実行することで生成される全ての情報は、RAM１０２もしくはHDD１０４に記憶する。なお、このような各モジュールにおける処理は以降でも同様であるため、以降では記載を省略する。
【００２２】
初期化処理制御部２０１は、画像形成装置１００の初期化処理全体の制御を行う。初期化処理制御部２０１は、各システムモジュールの初期化とユーザアプリ（ユーザアプリケーション）の初期化を実行するための制御を行う。なおユーザアプリは、後入れされたアプリケーションであり、後入れアプリとも呼ぶ。またシステムモジュールをシステムと呼ぶのに対して、単にアプリケーションやアプリと呼ぶこともある。
【００２３】
コピーモジュール２０２およびネットワークモジュール２０３は、システムモジュールの例である。システムモジュールとは、画像形成装置１００上で実行可能な機能を実現するためのモジュールやアプリの総称である。その一例として、コピー機能を実現するためのコピーモジュール２０２、スキャン機能を実現するためのスキャンモジュール（不図示）、ネットワーク通信を可能とするためのネットワークモジュール２０３などがある。これらのシステムモジュールは、ユーザ(管理者含む)が画像形成装置１００に後から追加でインストールすることはできず、画像形成装置１００にあらかじめ(工場出荷前に)インストールされているモジュールである。これらのシステムモジュールは、画像形成装置１００の起動処理実行中に初期化処理制御部２０１からの初期化要求を受信すると、モジュール内の初期化処理を実行する。システムモジュールは、画像形成装置１００がどのような状態でも、正常動作している限り初期化処理が成功するようなモジュールである。なお、画像形成装置１００には多数のシステムモジュールが存在するが、ここでは記載を省略し、３つのみ記載している。
【００２４】
ユーザアプリ制御モジュール２０４は、後述するユーザアプリ全体を制御する。ユーザアプリ制御モジュールは、画像形成装置１００の起動処理実行中に初期化処理制御部２０１からの初期化要求を受信すると、ユーザアプリの初期化処理を実行する。
【００２５】
ユーザアプリ２０５〜２０７は、ユーザが目的に応じて、画像形成装置１００に後から(工場出荷後に)インストールしたアプリである。すなわち、ユーザアプリ（ユーザアプリケーション）は、後入れでインストール可能なアプリケーションである。これらのユーザアプリは、画像形成装置１００の起動処理実行中にユーザアプリ制御モジュール２０４からの初期化要求を受信すると、システムモジュールと同じく、ユーザアプリ内の初期化処理を実行する。なお、画像形成装置１００には多数のユーザアプリをインストールすることが可能であるが、ここでは記載を省略し、３つのみ記載している。なおユーザアプリは、システムモジュールと違い、動作するために所定の条件が満たされていることが必要なものもあり、この前提条件を満たしていない場合、ユーザアプリは動作(初期化処理含む)に失敗する。本実施例では、ネットワーク通信が利用可能になっていることを前提に動作するユーザアプリが１つ以上存在することとする。
【００２６】
ネットワーク判断部２０８は、ネットワーク部１０７を用いて外部とネットワーク通信可能になっているかどうかの判断を行う。ネットワーク通信可能かどうかを判断する方法は多数の方法が知られているが、本実施例ではネットワーク通信時に必要なIPアドレスを画像形成装置１００に設定したかどうかで判断する。より具体的には、画像形成装置１００のネットワーク部１０７がWAN１０８経由でDHCPサーバと通信し、DHCPサーバからIPアドレスを取得する。なお、これは一般的な技術であるため、ここでの説明は省略する。そして取得したIPアドレスを、HDD１０４に記憶することでIPアドレスを設定したこととなる。なお、情報処理装置の初期化処理実行前のデフォルト状態のIPアドレスは、HDD１０４に何も設定されていないこととする。ネットワーク通信可能の判定をこのようにIPアドレスが取得済みか否かを基準として行う。このため、画像形成装置１００がネットワーク通信可能になっていないのは、DHCPサーバからIPアドレスを取得するのに時間がかかっていることが原因となることがある。また、ネットワークケーブルが物理的に画像形成装置１００に接続されていない場合も、ネットワーク通信可能になっていない原因となる。以上が、モジュール構成図の説明である。
【００２７】
なお、ユーザが画像形成装置１００を利用可能になる前にシステムモジュールやユーザアプリの初期化処理を行うのは、ユーザが画像形成装置１００で利用できる機能の明示化やユーザが画像形成装置１００を操作したときの応答時間を短縮するためである。具体的には、ユーザが操作部１０６で選択可能な機能がどのようなものかを初期化処理中に判断し、選択可能な機能のみを操作部１０６で表示することが可能となる。また、操作部１０６でユーザが操作してから開始する処理を初期化処理中に実行しておくことで、操作部１０６でユーザが操作してからの処理時間(ユーザへの応答時間)を短縮することができる。このように、画像形成装置１００の起動時に初期化処理を行うことで、ユーザの操作性を向上することができる。
【００２８】
＜システムモジュールの初期化処理＞  続いて、画像形成装置１００の初期化処理の説明を、フローチャート図３を用いて説明する。図３は、ハードウエア上はＣＰＵ１０１により実行され、ソフトウェアモジュールではステップ３０１は初期化処理制御部２０１により、ステップ３０２以降はユーザアプリ制御モジュール２０４により実行される。
【００２９】
初期化処理制御部２０１は、電源管理部１０９を用いて画像形成装置１００の電源をONにしたことを検知すると、あらかじめ決められた順番で各システムモジュールに初期化処理の実行要求を送信し、各システムモジュールは初期化処理を行う(ステップ３０１)。このシステムモジュールの初期化処理は、初期化処理制御部２０１がシステムモジュール初期化テーブルを用いて行う。ここで、システムモジュール初期化テーブルの具体例を、図４を用いて説明する。なお、図４の情報すなわちシステムモジュール初期化テーブルはあらかじめROM１０３に記憶されていることとする。図４は、初期化処理制御部２０１が呼び出すシステムモジュールの順番と、システムモジュールの名称（固有の識別情報であればよい）と、初期化処理を行うために初期化処理制御部２０１が呼び出す初期化関数(システムモジュール内にある関数)とを関連付けた表である。図４のシステムモジュール初期化テーブルは、８つのシステムモジュールからなる。最初に初期化を行うシステムモジュールは、名称が「OS」というモジュールであり、この「OS」モジュールを初期化するために初期化処理制御部２０１が実行する初期化関数は「os_init()」関数である。この初期化関数を実行することで、「OS」モジュールの初期化処理を行うが、具体的な初期化処理の内容としては、画像形成装置１００のOSの起動やKernelの起動などである。初期化処理制御部２０１は、「OS」モジュールの初期化関数os_init()を実行すると、この実行結果を待たずに、次に初期化するモジュールの初期化関数を実行する。ここでは「コピー」モジュール(図２のコピーモジュール２０２)の初期化関数「printer_init()」を実行することで、「コピー」モジュールの初期化処理を行う。具体的な初期化処理の内容としては、画像処理部１１３やプリンタ１１８と通信可能であることの確認やコピー準備要求(定着温度上昇やトナー撹拌など)をプリンタ１１８へ送信することである。このようにして、初期化処理制御部２０１は、最後の「ネットワーク」モジュール(図２のネットワークモジュール２０３)まで各システムモジュールの初期化関数を呼び出すことを繰り返して、初期化処理を行う。なお本実施例では、「ネットワーク」モジュールの初期関数「network_init()」を呼び出すことで、画像形成装置１００のIPアドレスがたとえば「192.168.123.456」と設定され、ネットワーク通信可能になることとする。なお、ネットワーク通信可能になるタイミングは、最後のユーザアプリ(後述の「スキャン」アプリ２０７)の初期化処理の途中であることとする。
【００３０】
以上が、システムモジュールの初期化処理（ステップＳ３０１）の説明である。続いて、ユーザアプリの初期化処理の説明を行う。
【００３１】
＜ユーザアプリの初期化処理＞
ユーザアプリの初期化処理は、初期化前チェック処理(ステップ３０２〜３０６)と、初期化実行処理(ステップ３０７)の２つの処理からなる。まず最初に、初期化前チェック処理の説明を行う。
【００３２】
初期化処理制御部２０１は、システムモジュールの初期化が完了すると、ユーザアプリ制御モジュール２０４に初期化実行要求を送信する。これを受信したユーザアプリ制御モジュール２０４は、ユーザアプリが画像形成装置１００にインストールされているかの判断を、ユーザアプリ管理テーブルを用いて行う(ステップ３０２)。ここで、ユーザアプリ管理テーブルの具体例を、図５を用いて説明する。図５は、ユーザアプリ制御モジュール２０４が呼び出すユーザアプリの順番と、ユーザアプリの名称と、ユーザアプリの種類と、ネットワーク通信の利用有無を示す情報とを関連付けた表である。また図５には、初期化処理を行うためにユーザアプリ制御モジュール２０４が呼び出す初期化関数(ユーザアプリ内にある関数)も含む。なお図５の情報は、アプリ内に含まれる設定ファイル内に記載されている情報であり、画像形成装置１００にユーザアプリをインストールしたときにHDD１０４に記憶することとする。設定される各項目の値は、たとえば予めアプリケーションのインストールファイルに設定しておいてもよいし、マニフェストファイルの一部として設定しておいてもよいし、インストールの都度、ユーザが入力するなどしてもよい。この設定ファイルの具体例としては、ユーザアプリがJava（登録商標）アプリの場合、MANIFESTファイルである。例えばアプリAのマニフェストファイルには、その名称と種類、ネットワーク利用の有無、初期化関数名が登録されており、アプリAをインストールすることで、それら項目がユーザアプリ管理テーブルに登録される。項目「順番」の値は、たとえばインストールされた順序などであってもよい。
【００３３】
図５のユーザアプリ管理テーブルは、３つのユーザアプリからなる。最初に初期化を行うユーザアプリは、名称が「アプリA」というアプリ(図２のユーザアプリ２０５)であり、アプリの種類は「コピー」、ネットワーク通信の利用は「なし」である。またこの「アプリA」アプリの初期化を実行するためにユーザアプリ制御モジュール２０４が呼び出す初期化関数は「copy_init()」である。アプリ名称が「アプリB」のアプリ(図２の２０６)は、アプリの種類は「ログイン」、ネットワーク通信の利用は「あり」、初期化関数は「login_init ()」である。また、アプリ名称が「アプリC」のアプリ(図２の２０７)は、アプリの種類は「スキャン」、ネットワーク通信の利用は「あり」、初期化関数は「scan_init ()」である。以上が、ユーザアプリ管理テーブルの説明である。
【００３４】
ユーザアプリ制御モジュール２０４は、このようなユーザアプリ管理テーブルを用いて、ユーザアプリが少なくとも１つは画像形成装置１００にインストールされているかどうかを判断する。たとえばユーザアプリ管理テーブルに登録されているユーザアプリがなければ、インストールされているユーザアプリは無いものと判断できる。ユーザアプリ管理テーブルにユーザアプリが一つでも登録されていれば、ユーザアプリがインストールされているものと判断できる。ここで、ユーザアプリが１つもインストールされていないと判断すると、ユーザアプリ制御モジュール２０４は、初期化処理制御部２０１にユーザアプリの初期化処理の終了通知を送信する。そして、これを受信した初期化処理制御部２０１は、画像形成装置１００の初期化処理を完了する。一方、ユーザアプリが１つ以上インストールされていると判断すると、ユーザアプリ制御モジュール２０４は、各ユーザアプリに対して順次着目し、後述のステップ３０３〜３０６の処理をユーザアプリ毎に繰り返す。
【００３５】
まずユーザアプリ制御モジュール２０４は、ユーザアプリがネットワーク通信を利用するかどうかを判断する(ステップ３０３)。ここではユーザアプリ管理テーブルのネットワーク通信の利用有無を参照することで判断する。この結果、ユーザアプリ制御モジュール２０４は、ネットワーク通信を利用しないユーザアプリであると判断すると、ユーザアプリ管理テーブルを参照し、次のユーザアプリがあればそのチェックに進む(ステップ３０３の判断に戻る)。一方、ネットワーク通信を利用するユーザアプリであると判断すると、ユーザアプリ制御モジュール２０４は、アプリの種類がログインであるかどうかを判断する(ステップ３０４)。ここでは、アプリの種類がログインであるかどうかは、ユーザアプリ管理テーブルのアプリの種類を参照することで判断する。なおアプリの種類がログインであるかどうかを判断するのは、ログインアプリを特別扱いするためであり、ログインアプリは画像形成装置１００がネットワーク通信可能になっていない場合も初期化に必ず成功するアプリであることとしているためである。後入れのログインアプリは、画像形成装置の初期化終了後に最初にUI画面を出す必要があり、そのUI画面からユーザがログインすることができる。ログインアプリは、後入れアプリであってもネットワーク接続済みの確認前に初期化処理を行っている。そのため、後入れのログインアプリはネットワーク接続済みが前提になっておらず、ネットワーク未接続でも初期化が成功するようなアプリの実装になっている。そこでログインアプリは、例外的な扱いとしている。ステップ３０４での判定の結果、ユーザアプリの種類がログインであると判断すると、ユーザアプリ制御モジュール２０４は、ユーザアプリ管理テーブルを参照し、次のユーザアプリのチェックに進む(ステップ３０３の判断に戻る)。ステップ３０３と３０４とをまとめて、判定対象の着目アプリが、初期化処理において通信ネットワークに接続されているべきアプリか否かを判定しているといってもよい。
【００３６】
一方、ユーザアプリの種類がログインではないと判断すると、ユーザアプリ制御モジュール２０４は、画像形成装置１００がネットワーク通信可能になっているかどうかを、ネットワーク判断部２０８を用いて判断する(ステップ３０５)。この結果、ネットワーク通信可能になっていると判断すると、ユーザアプリ制御モジュール２０４は、ユーザアプリ管理テーブルを参照し、次のユーザアプリのチェックに進む(ステップ３０３の判断に戻る)。一方、ネットワーク通信可能になっていないと判断すると、ネットワーク通信が可能になるのを待つ(ステップ３０６)。具体的には、たとえば画像形成装置１００のIPアドレスが取得されたことを所定の周期でチェックし、IPアドレスが取得されるのを待機する。この場合IPアドレスが取得されると、通信ネットワークと接続可能となったものと判断する。このような処理を、ユーザアプリ管理テーブルの全てのアプリもしくはネットワーク通信可能になるまで実施する。なお、物理的にネットワークケーブルが接続されていない等の理由により、ネットワーク通信可能にならない場合もある。この場合、画像形成装置１００の初期化が止まってしまうため、ステップ３０６ではあらかじめ決めておいた所定のタイムアウト時間まで待ち、タイムアウト時間になったらネットワーク通信可能であると判断しても良い。
【００３７】
なおステップ３０５においてネットワーク通信可能であると判定された場合には、それ以降のユーザアプリを対象としてステップ３０３から処理を繰り返さず、ステップ３０７に分岐してユーザアプリの初期化処理を実行してもよい。本例ではＩＰアドレスを取得済みであればネットワーク通信可能と判断しているためで、いったんあるユーザアプリについてネットワーク通信可能を判断した場合、それ以降のユーザアプリで通信可能でないと判定される可能性は低いと考えられるからである。
【００３８】
以上が、ユーザアプリの初期化前チェック処理の説明である。この手順によって、インストール済みのユーザアプリの中に、種別がログインのアプリを除いて、ネットワークを用いるものがあり、かつ、ネットワーク通信可能でない場合にはネットワーク通信が可能になるのを待つ。そしてそれ以外の場合には、ユーザアプリの初期化を直ちに実行する。ここで、初期化前チェック処理の具体例を説明する。なお、ユーザアプリ管理テーブルは図５であるとする。
【００３９】
＜具体例＞
まずユーザアプリ制御モジュール２０４は、ユーザアプリがインストールされているので、アプリ名称「アプリA」のユーザアプリに対し、ネットワーク通信を利用するかどうかの判断を行う(ステップ３０３)。ここでは、「アプリA」のユーザアプリはネットワーク通信を利用しないため、次のユーザアプリであるアプリ名称「アプリB」のユーザアプリのチェックをユーザアプリ制御モジュール２０４で行う。
【００４０】
次にユーザアプリ制御モジュール２０４は、「アプリB」のユーザアプリに対し、ネットワーク通信を利用するかどうかの判断を行う(ステップ３０３)。ここでは、「アプリB」のユーザアプリはネットワーク通信を利用するため、アプリの種類が「ログイン」かどうかをユーザアプリ制御モジュール２０４で判断する(ステップ３０４)。ここでは、「アプリB」のアプリの種類は「ログイン」であるため、次のユーザアプリであるアプリ名称「アプリC」のユーザアプリのチェックをユーザアプリ制御モジュール２０４で行う。
【００４１】
最後にユーザアプリ制御モジュール２０４は、「アプリC」のユーザアプリに対し、ネットワーク通信を利用するかどうかの判断を行う (ステップ３０３)。ここでは、「アプリC」のユーザアプリはネットワーク通信を利用するため、アプリの種類が「ログイン」かどうかをユーザアプリ制御モジュール２０４で判断する(ステップ３０４)。ここでは、「アプリC」のアプリの種類は「ログイン」ではないため、ネットワーク通信可能になっているかどうかの判断を行う(ステップ３０５)。ここでは、まだネットワーク通信可能になっていないため、ネットワーク通信可能になるのを待つ(ステップ３０６)。なおここでは所定時間、たとえば500msec待つことでネットワーク通信可能になるとし、500msec後にユーザアプリ制御モジュール２０４は初期化前チェック処理を終了する。以上が図５を用いた具体例の説明であり、これで初期化前チェック処理の説明を終える。次に、初期化実行処理の説明を行う。
【００４２】
＜ユーザアプリの初期化処理＞
初期化前チェック処理が終了すると、ユーザアプリ制御モジュール２０４は、初期化実行処理を行う。この初期化実行処理は、ユーザアプリ制御モジュール２０４が、ユーザアプリ管理テーブルを参照し、各ユーザアプリの初期化関数を実行することで行う (ステップ３０７)。そして、具体的には図５の場合、ユーザアプリ制御モジュール２０４は、各ユーザアプリの初期化関数である「copy_init()」「scan_init()」「login_init()」関数を実行する。これにより、それぞれの関数内で各ユーザアプリの初期化処理が行われる。なお、ユーザアプリの初期化処理が全て完了すると、ユーザアプリ制御モジュール２０４は、初期化処理制御部２０１にユーザアプリの初期化処理の終了通知を送信し、これを受信した初期化処理制御部２０１は画像形成装置１００の初期化処理を完了する。以上が初期化実行処理の説明であり、これで、フローチャート図３の説明を終える。
【００４３】
本実施形態により、ユーザアプリごとにネットワーク通信可能になるまで待つ必要があるかどうかを判断し、待つ必要がある場合のみネットワーク通信可能になるまで待ってからユーザアプリの初期化を行うことが可能となる。これにより、不要なネットワーク通信待ちを避けることが可能となり、短時間かつ確実に画像形成装置１００の初期化処理を行うことができ、ユーザの利便性が向上する。
【００４４】
［第２の実施形態］
第１の実施形態では、画像形成装置１００の初期化処理において、ネットワーク通信可能になるまで待つ必要があるかどうかをユーザアプリごとに判断した。しかし、多数のユーザアプリが画像形成装置１００にインストールされている場合、各ユーザアプリの情報を調べるのに時間がかかり、画像形成装置１００の初期化処理に時間がかかってしまう場合もある。そのため、少しでも速く画像形成装置１００の初期化処理を完了するために、ネットワーク通信可能になるまで待つかどうかを別の条件で判断しても良い。
【００４５】
本実施形態では、ユーザアプリが１つでもインストールされているかどうかによってネットワーク通信可能になるまで待つかどうかを判断する実施形態を、フローチャート図６を用いて説明する。なお、基本的な処理や制御は第１の実施形態と同じであるため、第１の実施形態と異なる点のみを説明する。各システムモジュールの初期化処理 (ステップ３０１)とユーザアプリがインストールされているかどうかの判断(ステップ３０２)までは、第1の実施形態と同じであるため、説明を省略する。
【００４６】
ユーザアプリ制御モジュール２０４は、ステップ３０２でユーザアプリが１つもインストールされていないと判断すると、初期化処理制御部２０１にユーザアプリの初期化処理の終了通知を送信する。そして、これを受信した初期化処理制御部２０１は、画像形成装置１００の初期化処理を完了する。一方、ユーザアプリ制御モジュール２０４は、ステップ３０２でユーザアプリが１つでもインストールされていると判断すると、画像形成装置１００がネットワーク通信可能になっているかどうかを、ネットワーク判断部２０８を用いて判断する(ステップ３０５)。このように本実施形態では、図６のステップ３０２でアプリがインストールされている判定されると、図３に示したステップ３０３および３０４をスキップしてステップ３０５に分岐する。またステップ３０５の判定もアプリごとに行わず、ただ一回行われる。ステップ３０５の結果、ネットワーク通信可能になっていると判断すると、ユーザアプリの初期化前チェック処理を終了する。一方、ネットワーク通信可能になっていないと判断すると、ユーザアプリ制御モジュール２０４は、ネットワーク通信が可能になるのを待ち(ステップ３０６)、初期化前チェック処理を終了する。
【００４７】
初期化前チェックが終了すると、ユーザアプリ制御モジュール２０４は、各ユーザアプリの初期化実行処理を行う(ステップ３０７)。この処理は第１の実施形態と同じであるため、記載を省略する。以上がフローチャート図６の説明である。
【００４８】
本実施形態により、ユーザアプリが画像形成装置１００に１つでもインストールされている場合は、ネットワーク通信が可能になるのを待ってからユーザアプリの初期化を行うことが可能となる。このため、多数のユーザアプリがインストールされている場合においても、短時間かつ確実に画像形成装置１００の初期化を行うことができる。これによりユーザの画像形成装置１００の起動待ち時間を減らすことができ、ユーザの利便性が向上する。
【００４９】
［第３の実施形態］
第１の実施形態や第２の実施形態では、画像形成装置１００の初期化処理において、ユーザアプリのインストール有無やユーザアプリの情報に応じて、ネットワーク通信可能になるまで待つ処理を行うかどうかを判断した。しかし画像形成装置１００の状況によっては、ユーザアプリをユーザが利用しない場合もあり、この場合は画像形成装置１００の初期化処理を少しでも短時間で終了し、画像形成装置１００をユーザが利用可能にすることが求められる。本実施例では、状況に応じてユーザアプリの初期化前チェックと初期化実行処理を行わない実施形態を、フローチャート図７を用いて説明する。なお、基本的な処理や制御は第１の実施形態と同じであるため、第１の実施形態と異なる点のみを説明する。具体的には、フローチャート図３のステップ３０１の各システムモジュールの初期化後に、画像形成装置１００が特殊な状況で起動しているかどうかによって、ユーザアプリの初期化実行処理を行うかどうかを判断する。
【００５０】
各システムモジュールの初期化処理(ステップ３０１)は、第1の実施形態と同じである。この後にユーザアプリ制御モジュール２０４は、画像形成装置１００が通常モードかどうかを判断する(ステップ７０１)。ここで、通常モードと特殊モードの説明を行う。画像形成装置１００には、複数のモードがあり、通常モードではないモードをまとめて特殊モードと呼ぶこととする。通常モードとは、たとえばユーザが画像形成装置をその本来の目的、たとえば複写や印刷、スキャンなどのために使用するモードである。一方特殊モードは、画像形成装置１００を特別な状況で使うためにユーザが設定するモードであり、この特殊モードのときに画像形成装置１００にインストールされているユーザアプリを利用することはない。特殊モードとは例えば、画像形成装置１００の工場組み立て時の工場確認用モードや、サービスマンが画像形成装置１００のメンテナンスを行う時のサービス確認用モードなど、装置の組み立てや保守のために使用されるモードである。そのため通常モード及び特殊モードをそれぞれ、運用モード及び保守モードなどと呼んでもよい。このような特殊モードに切り替える方法は様々な方法があるが、本実施例ではHDD１０４に記憶された現在のモードの値を参照することで判断することとする。このHDD１０４の現在のモードの値は、操作部１０６で所定の操作を行うことで、HDD１０４に現在のモードが特殊モード中であることの情報を記憶することとする。そのため、ユーザアプリ制御モジュール２０４は、HDD１０４のモードの値を参照することで、画像形成装置１００が通常モードかどうかを判断する。この結果（ステップ７０１の結果）、ユーザアプリ制御モジュール２０４は、画像形成装置１００が通常モードではないと判断すると、初期化処理制御部２０１にユーザアプリの初期化処理の終了通知を送信する。そして、これを受信した初期化処理制御部２０１は、画像形成装置１００の初期化処理を完了する。そのため、第１の実施形態のように各ユーザアプリの初期化処理（ステップ３０７）を実施することはない。
【００５１】
なお、ステップ７０１で画像形成装置１００が通常モードであると判断すると、ユーザアプリ制御モジュール２０４は、第１の実施形態と同じくステップ３０２〜３０７の処理を行うが、この説明は省略する。以上がフローチャート図７の説明である。
【００５２】
本実施形態により、画像形成装置１００が特殊モードで、すなわち通常の使用状況とは異なる特殊な状況で起動している場合は、ユーザアプリの初期化を行う前に画像形成装置１００の初期化処理を完了とすることが可能となる。これにより、画像形成装置１００の初期化処理を高速に行うことができ、ユーザの利便性が向上する。以上が、第３の実施形態の説明である。
【００５３】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５４】
１０１  CPU、１０２  RAM、  １０３  ROM、  １０４  HDD
【図１】
2018120310.tif 000003
【図２】
2018120310.tif 000004
【図３】
2018120310.tif 000005
【図４】
2018120310.tif 000006
【図５】
2018120310.tif 000007
【図６】
2018120310.tif 000008
【図７】
2018120310.tif 000009