(57)【要約】【課題】　画像形成装置に搭載されているメモリ資源を有効的に利用する画像形成装置、記憶領域確保方法を提供する。【解決手段】　画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスとを有する画像形成装置において、前記プロセスの処理の実行を制限させた状態であるオフライン状態に前記プロセスを移行させるオフライン手段と、前記オフライン状態に移行した前記プロセスが使用していた記憶領域を解放する記憶領域解放手段と、前記記憶領域解放手段が解放した記憶領域を、データを展開する記憶領域として使用するデータ展開手段とを有する。【選択図】　図８
2004114674.tif 000002
【特許請求の範囲】
【請求項１】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスとを有する画像形成装置において、
　前記プロセスの処理の実行を制限させた状態であるオフライン状態に前記プロセスを移行させるオフライン手段と、
　前記オフライン状態に移行した前記プロセスが使用していた記憶領域を解放する記憶領域解放手段と、
　前記記憶領域解放手段が解放した記憶領域を、データを展開する記憶領域として使用するデータ展開手段と
　を有することを特徴とする画像形成装置。
【請求項２】
前記データ展開手段は、前記記憶領域に前記データを展開する際に、前記オフライン手段により、前記プロセスをオフライン状態に移行させることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記データ展開手段は、前記オフライン手段が前記プロセスをオフライン状態に移行させると、前記記憶領域解放手段により、オフライン状態に移行した前記プロセスが使用していた記憶領域を解放させることを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記オフライン手段は、前記プロセスに対し、前記プロセスをオフライン状態に移行させるオフライン移行要求を通知して、前記プロセスをオフライン状態に移行させることを特徴とする請求項１に記載の画像形成装置。
【請求項５】
前記オフライン手段は、前記プロセスからの前記オフライン移行要求に対する応答に基づき、前記プロセスがオフライン状態に移行したかどうかを前記データ展開手段に通知することを特徴とする請求項４に記載の画像形成装置。
【請求項６】
前記オフライン手段は、前記オフライン移行要求を通知した全てのプロセスがオフライン状態に移行すると、前記データ展開手段に対し、前記プロセスがオフライン状態に移行したことを通知することを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記オフライン手段は、前記オフライン移行要求を通知した前記プロセスから、オフライン状態に移行できないことを通知されると、前記データ展開手段に対し、前記プロセスがオフライン状態に移行しなかったことを通知することを特徴とする請求項５に記載の画像形成装置。
【請求項８】
前記オフライン手段は、前記オフライン移行要求を通知した前記プロセスのうち、１つ以上のプロセスから、オフライン状態に移行できないことを通知されても、前記オフライン移行要求を通知した全てのプロセスからの応答を待ったのちに、前記データ展開手段に対し、前記プロセスがオフライン状態に移行しなかったことを通知することを特徴とする請求項５に記載の画像形成装置。
【請求項９】
前記オフライン手段は、前記オフライン移行要求を通知した前記プロセスのうち、１つのプロセスからオフライン状態に移行できないことを通知されると、前記オフライン移行要求を通知した他のプロセスからの応答を待たずに、前記データ展開手段に対し、前記プロセスがオフライン状態に移行しなかったことを通知することを特徴とする請求項５に記載の画像形成装置。
【請求項１０】
前記オフライン手段は、前記プロセスに前記オフライン移行要求を通知してからの時間を計測し、
　前記オフライン移行要求に対する前記プロセスの応答が、所定の時間が経過しても通知されない場合、前記データ展開手段に対し、前記プロセスがオフライン状態に移行したことを通知することを特徴とする請求項４に記載の画像形成装置。
【請求項１１】
オフライン状態にされた前記プロセスは、前記オフライン手段がオフライン状態を解除することにより、制限されていた処理の実行が可能となることを特徴とする請求項１に記載の画像形成装置。
【請求項１２】
前記オフライン状態に移行したプロセスが実行を制限される処理は、他のプロセスからの要求により実行される処理であることを特徴とする請求項１に記載の画像形成装置。
【請求項１３】
前記オフライン状態に移行したプロセスは、他のプロセスからの要求を保持しておくことを特徴とする請求項１２に記載の画像形成装置。
【請求項１４】
前記オフライン状態に移行したプロセスを消滅させるプロセス消滅手段をさらに有することを特徴とする請求項１に記載の画像形成装置。
【請求項１５】
前記プロセス消滅手段は、各プロセスに予め定められた順番で前記プロセスを消滅することを特徴とする請求項１４に記載の画像形成装置。
【請求項１６】
前記順番は、各プロセスに予め定められた優先度に応じて定まることを特徴とする請求項１５に記載の画像形成装置。
【請求項１７】
前記順番は、各プロセスに予め割り当てられた記憶領域のサイズに応じて定まることを特徴とする請求項１５に記載の画像形成装置。
【請求項１８】
前記順番は、前記プロセスに割り当てられた記憶領域の位置に応じて定まることを特徴とする請求項１５に記載の画像形成装置。
【請求項１９】
前記記憶領域解放手段は、前記プロセス消滅手段がプロセスを消滅させたことにより不要となった記憶領域を解放することを特徴とする請求項１４に記載の画像形成装置。
【請求項２０】
前記記憶領域解放手段は、展開される前記データのサイズに応じて、前記記憶領域を解放することを特徴とする請求項１９に記載の画像形成装置。
【請求項２１】
前記記憶領域解放手段は、前記記憶領域の解放を行うと、前記データ展開手段に対し、前記記憶領域の解放が完了したことを通知することを特徴とする請求項１に記載の画像形成装置。
【請求項２２】
前記データ展開手段が展開するデータは、前記プログラムを更新する更新プログラムであり、前記データ展開手段は、前記更新プログラムを通信手段を用いて取得することを特徴とする請求項１に記載に記載の画像形成装置。
【請求項２３】
前記データ展開手段からのプログラム更新開始要求により、前記プログラムを更新するプログラム更新手段をさらに有することを特徴とする請求項２２に記載の画像形成装置。
【請求項２４】
前記画像形成装置を操作するための入力手段を有し、
　前記プログラム更新手段は、前記プログラムを更新する際に、前記入力手段を無効化することを特徴とする請求項２３に画像形成装置。
【請求項２５】
前記プログラム更新手段は、前記プログラムの更新が終了すると、前記画像形成装置を再起動することを特徴とする請求項２３に記載の画像形成装置。
【請求項２６】
前記プログラム更新手段は、前記画像形成装置と通信可能な機器に対し、前記プログラムの更新状況を通知することを特徴とする請求項２３に記載の画像形成装置。
【請求項２７】
前記プログラム更新手段は、前記プログラムの更新状況を、オフライン状態に移行したプロセスを用いて通知することを特徴とする請求項２６に記載の画像形成装置。
【請求項２８】
前記記憶領域は、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムの管理外にあることを特徴とする請求項１に記載の画像形成装置。
【請求項２９】
画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、
　前記プロセスに対し、処理の実行を制限させるオフライン段階と、
　前記オペレーティングシステムの管理外にあり、前記オフライン段階で処理の実行が制限された前記プロセスが使用していた記憶領域を解放する記憶領域解放段階と
　前記記憶領域解放手段が解放した記憶領域に、データを展開するデータ展開段階と
　を有することを特徴とする記憶領域確保方法。
【請求項３０】
前記記憶領域解放段階で、前記プロセスがオフライン状態に移行した後、前記プロセスを消滅させるプロセス消滅段階をさらに有することを特徴とする請求項２９に記載の記憶領域確保方法。
【請求項３１】
前記データ展開段階で展開されるデータは、前記プログラムを更新する更新プログラムであることを特徴とする請求項２９に記載の記憶領域確保方法。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、画像形成装置に関し、特にメモリ資源を有効に利用する画像形成装置、記憶領域確保方法に関する。
【背景技術】
【０００２】
　近年、プリンタ、コピー、ファクシミリおよびスキャナなどの各装置の機能を１つの筐体内に収納した画像形成装置（以下、融合機という）が知られるようになった。この融合機は、１つの筐体内に表示部、印刷部および撮像部などを設けると共に、プリンタ、コピー、ファクシミリおよびスキャナにそれぞれ対応する４種類のアプリケーションを設け、そのアプリケーションを切り替えることより、プリンタ、コピー、ファクシミリおよびスキャナとして動作させるものである。
【０００３】
　このように、融合機は、プログラムに基づき処理を実行する種々のアプリケーションにより動作しているため、プログラムを更新することにより、新たな機能の追加などを行うことができる。
【０００４】
　このプログラムの更新処理は、パソコンなどでよく見られるように、インターネットなどのネットワークを介し、更新プログラムが格納されたサーバに接続し更新プログラムを取得（以下、ダウンロードと記す）することにより行われることがある。
【０００５】
　この場合、サーバからダウンロードした更新プログラムをメモリに展開し、フラッシュメモリなどのEEPROM(Electrically Erasable and Programmable ROM)に更新プログラムを書き込むことで、プログラムを更新することができる。
【０００６】
　このように、サーバからダウンロードした更新プログラムはメモリに展開されるため、メモリには更新プログラムを展開するための記憶領域（以下、メモリ領域と記す）が必要となっている。
【０００７】
　このメモリ領域は、アプリケーションなどが処理を実行する際に確保したり、解放を行うことにより使用される領域である。この確保や解放におけるメモリ領域の管理は、オペレーティングシステム（以下、ＯＳと記す）が行なっている。従って、例えばアプリケーションは、ＯＳが提供するシステムコールを用いてメモリの確保や解放を行っている。
【０００８】
　また、メモリは、コストなどを抑えるために、なるべく必要最小限の記憶容量で搭載されるのが一般的である。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
　従って、上述したプログラムの更新のような、さほど頻度の多くない処理を行うためのメモリを予め融合機に搭載することは、コストに反映され好ましくない。その一方で、画像形成装置は、比較的大きなデータである画像データを扱うため、メモリの記憶容量は多ければ多いほど良い。
【００１０】
　本発明はこのような問題点に鑑み、画像形成装置に搭載されているメモリ資源を有効的に利用する画像形成装置、記憶領域確保方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
　上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスとを有する画像形成装置において、前記プロセスの処理の実行を制限させた状態であるオフライン状態に前記プロセスを移行させるオフライン手段と、前記オフライン状態に移行した前記プロセスが使用していた記憶領域を解放する記憶領域解放手段と、前記記憶領域解放手段が解放した記憶領域を、データを展開する記憶領域として使用するデータ展開手段とを有することを特徴とする。
【００１２】
　また、上記課題を解決するために、本発明は、前記データ展開手段は、前記記憶領域に前記データを展開する際に、前記オフライン手段により、前記プロセスをオフライン状態に移行させることを特徴とする。
【００１３】
　また、上記課題を解決するために、本発明は、前記データ展開手段は、前記オフライン手段が前記プロセスをオフライン状態に移行させると、前記記憶領域解放手段により、オフライン状態に移行した前記プロセスが使用していた記憶領域を解放させることを特徴とする。
【００１４】
　また、上記課題を解決するために、本発明は、前記オフライン手段は、前記プロセスに対し、前記プロセスをオフライン状態に移行させるオフライン移行要求を通知して、前記プロセスをオフライン状態に移行させることを特徴とする。
【００１５】
　また、上記課題を解決するために、本発明は、前記オフライン手段は、前記プロセスからの前記オフライン移行要求に対する応答に基づき、前記プロセスがオフライン状態に移行したかどうかを前記データ展開手段に通知することを特徴とする。
【００１６】
　また、上記課題を解決するために、本発明は、前記オフライン手段は、前記オフライン移行要求を通知した全てのプロセスがオフライン状態に移行すると、前記データ展開手段に対し、前記プロセスがオフライン状態に移行したことを通知することを特徴とする。
【００１７】
　また、上記課題を解決するために、本発明は、前記オフライン手段は、前記オフライン移行要求を通知した前記プロセスから、オフライン状態に移行できないことを通知されると、前記データ展開手段に対し、前記プロセスがオフライン状態に移行しなかったことを通知することを特徴とする。
【００１８】
　また、上記課題を解決するために、本発明は、前記オフライン手段は、前記オフライン移行要求を通知した前記プロセスのうち、１つ以上のプロセスから、オフライン状態に移行できないことを通知されても、前記オフライン移行要求を通知した全てのプロセスからの応答を待ったのちに、前記データ展開手段に対し、前記プロセスがオフライン状態に移行しなかったことを通知することを特徴とする。
【００１９】
　また、上記課題を解決するために、本発明は、前記オフライン手段は、前記オフライン移行要求を通知した前記プロセスのうち、１つのプロセスからオフライン状態に移行できないことを通知されると、前記オフライン移行要求を通知した他のプロセスからの応答を待たずに、前記データ展開手段に対し、前記プロセスがオフライン状態に移行しなかったことを通知することを特徴とする。
【００２０】
　また、上記課題を解決するために、本発明は、前記オフライン手段は、前記プロセスに前記オフライン移行要求を通知してからの時間を計測し、前記オフライン移行要求に対する前記プロセスの応答が、所定の時間が経過しても通知されない場合、前記データ展開手段に対し、前記プロセスがオフライン状態に移行したことを通知することを特徴とする。
【００２１】
　また、上記課題を解決するために、本発明は、オフライン状態にされた前記プロセスは、前記オフライン手段がオフライン状態を解除することにより、制限されていた処理の実行が可能となることを特徴とする。
【００２２】
　また、上記課題を解決するために、本発明は、前記オフライン状態に移行したプロセスが実行を制限される処理は、他のプロセスからの要求により実行される処理であることを特徴とする。
【００２３】
　また、上記課題を解決するために、本発明は、前記オフライン状態に移行したプロセスは、他のプロセスからの要求を保持しておくことを特徴とする。
【００２４】
　また、上記課題を解決するために、本発明は、前記オフライン状態に移行したプロセスを消滅させるプロセス消滅手段をさらに有することを特徴とする。
【００２５】
　また、上記課題を解決するために、本発明は、前記プロセス消滅手段は、各プロセスに予め定められた順番で前記プロセスを消滅することを特徴とする。
【００２６】
　また、上記課題を解決するために、本発明は、前記順番は、各プロセスに予め定められた優先度に応じて定まることを特徴とする。
【００２７】
　また、上記課題を解決するために、本発明は、前記順番は、各プロセスに予め割り当てられた記憶領域のサイズに応じて定まることを特徴とする。
【００２８】
　また、上記課題を解決するために、本発明は、前記順番は、前記プロセスに割り当てられた記憶領域の位置に応じて定まることを特徴とする。
【００２９】
　また、上記課題を解決するために、本発明は、前記記憶領域解放手段は、前記プロセス消滅手段がプロセスを消滅させたことにより不要となった記憶領域を解放することを特徴とする。
【００３０】
　また、上記課題を解決するために、本発明は、前記記憶領域解放手段は、展開される前記データのサイズに応じて、前記記憶領域を解放することを特徴とする。
【００３１】
　また、上記課題を解決するために、本発明は、前記記憶領域解放手段は、前記記憶領域の解放を行うと、前記データ展開手段に対し、前記記憶領域の解放が完了したことを通知することを特徴とする。
【００３２】
　また、上記課題を解決するために、本発明は、前記データ展開手段が展開するデータは、前記プログラムを更新する更新プログラムであり、前記データ展開手段は、前記更新プログラムを通信手段を用いて取得することを特徴とする。
【００３３】
　また、上記課題を解決するために、本発明は、前記データ展開手段からのプログラム更新開始要求により、前記プログラムを更新するプログラム更新手段をさらに有することを特徴とする。
【００３４】
　また、上記課題を解決するために、本発明は、前記画像形成装置を操作するための入力手段を有し、前記プログラム更新手段は、前記プログラムを更新する際に、前記入力手段を無効化することを特徴とする。
【００３５】
　また、上記課題を解決するために、本発明は、前記プログラム更新手段は、前記プログラムの更新が終了すると、前記画像形成装置を再起動することを特徴とする。
【００３６】
　また、上記課題を解決するために、本発明は、前記プログラム更新手段は、前記画像形成装置と通信可能な機器に対し、前記プログラムの更新状況を通知することを特徴とする。
【００３７】
　また、上記課題を解決するために、本発明は、前記プログラム更新手段は、前記プログラムの更新状況を、オフライン状態に移行したプロセスを用いて通知することを特徴とする。
【００３８】
　また、上記課題を解決するために、本発明は、前記記憶領域は、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムの管理外にあることを特徴とする。
【００３９】
　また、上記課題を解決するために、本発明は、画像形成処理で使用されるハードウェア資源と、画像形成に係る処理をプログラムに基づき実行するプロセスと、前記プログラムの実行および前記ハードウェア資源を管理するオペレーティングシステムとを有する画像形成装置の記憶領域確保方法であって、前記プロセスに対し、処理の実行を制限させるオフライン段階と、前記オペレーティングシステムの管理外にあり、前記オフライン段階で処理の実行が制限された前記プロセスが使用していた記憶領域を解放する記憶領域解放段階と前記記憶領域解放手段が解放した記憶領域に、データを展開するデータ展開段階とを有することを特徴とする。
【００４０】
　また、上記課題を解決するために、本発明は、前記記憶領域解放段階で、前記プロセスがオフライン状態に移行した後、前記プロセスを消滅させるプロセス消滅段階をさらに有することを特徴とする。
【００４１】
　また、上記課題を解決するために、本発明は、前記データ展開段階で展開されるデータは、前記プログラムを更新する更新プログラムであることを特徴とする。
【発明の効果】
【００４２】
　本発明によれば、画像形成装置に搭載されているメモリ資源を有効的に利用する画像形成装置、記憶領域確保方法を提供できる。
【発明を実施するための最良の形態】
【００４３】
　以下、本発明の実施の形態について図面に基づいて説明する。
【実施例】
【００４４】
　図１は、本発明による画像形成装置である融合機の一実施例の構成図を示す。融合機１は、ソフトウェア群２と、融合機起動部３と、ハードウェア資源４とを含むように構成される。
【００４５】
　融合機起動部３は融合機１の電源投入時に最初に実行され、アプリケーション層５およびプラットホーム層６を起動する。例えば融合機起動部３は、アプリケーション層５およびプラットホーム層６のプログラムをハードディスク装置（以下、ＨＤＤという）などから読み出し、読み出した各プログラムをメモリ領域に転送して起動する。ハードウェア資源４は、スキャナ１１と、プロッタ１２と、ファクシミリなどからなるその他のハードウェアリソース１３とを含む。
【００４６】
　また、ソフトウェア群２は、ＵＮＩＸ（登録商標）などのオペレーティングシステム（以下、ＯＳという）上に起動されているアプリケーション層５とプラットホーム層６とを含む。アプリケーション層５は、プリンタ、コピー、ファックス、スキャナおよびネットファイルなどの画像形成にかかるユーザサービスにそれぞれ固有の処理を行うプログラムを含む。
【００４７】
　アプリケーション層５は、プリンタ用のアプリケーションであるプリンタアプリ２１と、コピー用アプリケーションであるコピーアプリ２２と、ファックス用アプリケーションであるファックスアプリ２３と、スキャナ用アプリケーションであるスキャナアプリ２４と、ネットワークを用いて文書のサービスを行うネットファイルアプリ２５を含む。
【００４８】
　また、プラットホーム層６は、アプリケーション層５からの処理要求を解釈してハードウェア資源４の獲得要求を発生するコントロールサービス層９と、１つ以上のハードウェア資源４の管理を行ってコントロールサービス層９からの獲得要求を調停するシステムリソースマネージャ（以下、ＳＲＭという）３９と、ＳＲＭ３９からの獲得要求に応じてハードウェア資源４の管理を行うハンドラ層１０とを含む。
【００４９】
　コントロールサービス層９は、ネットワークコントロールサービス（以下、ＮＣＳという）３１、デリバリーコントロールサービス（以下、ＤＣＳという）３２、オペレーションパネルコントロールサービス（以下、ＯＣＳという）３３、ファックスコントロールサービス（以下、ＦＣＳという）３４、エンジンコントロールサービス（以下、ＥＣＳという）３５、メモリコントロールサービス（以下、ＭＣＳという）３６、ユーザインフォメーションコントロールサービス（以下、ＵＣＳという）３７、システムコントロールサービス（以下、ＳＣＳという）３８、リモートサービス（以下、ＲＳという）４２、オンデマンドアップデートサービス（以下、ＯＵＳという）４３など、一つ以上のサービスモジュールを含むように構成されている。
【００５０】
　なお、プラットホーム層６は予め定義されている関数により、アプリケーション層５からの処理要求を受信可能とするＡＰＩ５３を有するように構成されている。ＯＳは、アプリケーション層５およびプラットホーム層６の各ソフトウェアをプロセスとして並列実行する。
【００５１】
　ＮＣＳ３１のプロセスは、ネットワークＩ／Ｏを必要とするアプリケーションに対して共通に利用できるサービスを提供するものであり、ネットワーク側から各プロトコルによって受信したデータを各アプリケーションに振り分けたり、各アプリケーションからのデータをネットワーク側に送信する際の仲介を行う。
【００５２】
　例えばＮＣＳ３１は、ネットワークを介して接続されるネットワーク機器とのデータ通信をｈｔｔｐｄ（HyperText Transfer
Protocol Daemon）により、ＨＴＴＰ（HyperText Transfer Protocol）で制御する。
【００５３】
　また、ＮＣＳ３１は、更新プログラムをネットワークからダウンロードするためにも用いられる。
【００５４】
　ＤＣＳ３２のプロセスは、蓄積文書の配信などの制御を行う。ＯＣＳ３３のプロセスは、オペレータと本体制御との間の情報伝達手段となるオペレーションパネルの制御を行う。また、このオペレーションパネルは、オペレータが融合機１を操作するための入力手段でもある。ＦＣＳ３４のプロセスは、アプリケーション層５からＰＳＴＮまたはＩＳＤＮ網を利用したファックス送受信、バックアップ用のメモリで管理されている各種ファックスデータの登録／引用、ファックス読み取り、ファックス受信印刷などを行うためのＡＰＩを提供する。
【００５５】
　ＥＣＳ３５のプロセスは、スキャナ１１、プロッタ１２、その他のハードウェアリソース１３などのエンジン部の制御を行う。ＭＣＳ３６のプロセスは、メモリの取得および解放、ＨＤＤの利用などのメモリ制御を行う。ＵＣＳ３７のプロセスは、ユーザ情報の管理を行うものである。ＲＳ４２のプロセスは、リモートサービスの制御を行うものである。ＯＵＳ４３のプロセスは、ダウンロードした更新プログラムをメモリに展開するなど、ダウンロードに関する種々の処理を行うものである。
【００５６】
　ＳＣＳ３８のプロセスは、アプリケーション管理、操作部制御、システム画面表示、ＬＥＤ表示、ハードウェア資源管理、割り込みアプリケーション制御などの処理を行う。
【００５７】
　ＳＲＭ３９のプロセスは、ＳＣＳ３８と共にシステムの制御およびハードウェア資源４の管理を行うものである。例えばＳＲＭ３９のプロセスは、スキャナ１１やプロッタ１２などのハードウェア資源４を利用する上位層からの獲得要求に従って調停を行い、実行制御する。
【００５８】
　具体的に、ＳＲＭ３９のプロセスは獲得要求されたハードウェア資源４が利用可能であるか（他の獲得要求により利用されていないかどうか）を判定し、利用可能であれば獲得要求されたハードウェア資源４が利用可能である旨を上位層に通知する。また、ＳＲＭ３９のプロセスは上位層からの獲得要求に対してハードウェア資源４を利用するためのスケジューリングを行い、要求内容（例えば、プリンタエンジンによる紙搬送と作像動作、メモリ確保、ファイル生成など）を直接実施している。
【００５９】
　また、ハンドラ層１０は後述するファックスコントロールユニット（以下、ＦＣＵという）の管理を行うファックスコントロールユニットハンドラ（以下、ＦＣＵＨという）４０と、プロセスに対するメモリの割り振り及びプロセスに割り振ったメモリ領域の管理を行う記憶領域管理手段であるイメージメモリハンドラ（以下、ＩＭＨという）４１とを含む。ＳＲＭ３９およびＦＣＵＨ４０は、予め定義されている関数によりハードウェア資源４に対する処理要求を送信可能とするエンジンＩ／Ｆ５４を利用して、ハードウェア資源４に対する処理要求を行う。
【００６０】
　融合機１は、各アプリケーションで共通的に必要な処理をプラットホーム層６で一元的に処理することができる。次に、融合機１のハードウェア構成について説明する。
【００６１】
　図２は、融合機１の一実施例のハードウェア構成図を示している。融合機１は、コントローラボード６０と、オペレーションパネル５２と、ＦＣＵ６８と、エンジン７９とを含む。また、ＦＣＵ６８は、Ｇ３規格対応ユニット６９と、Ｇ４規格対応ユニット７０とを有する。
【００６２】
　また、コントローラボード６０は、ＣＰＵ６１と、ＡＳＩＣ６６と、ＨＤＤ６５と、システムメモリ（ＭＥＭ−Ｐ）６３と、ローカルメモリ（ＭＥＭ−Ｃ）６４と、フラッシュメモリ８０と、ノースブリッジ（以下、ＮＢと記す）６２と、サウスブリッジ（以下、ＳＢと記す）７３と、ＮＩＣ１７４（Network Interface Card）と、ＵＳＢデバイス１７５と、ＩＥＥＥ１３９４デバイス１７６と、セントロニクスデバイス１７７とを含む。
【００６３】
　オペレーションパネル５２は、コントローラボード６０のＡＳＩＣ６６に接続されている。また、ＳＢ１７３と、ＮＩＣ１７４と、ＵＳＢデバイス１７５と、ＩＥＥＥ１３９４デバイス１７６と、セントロニクスデバイス１７７は、ＮＢ６２にＰＣＩバスで接続されている。
【００６４】
　また、ＦＣＵ６８と、エンジン７９と、コントローラボード６０のＡＳＩＣ６６にＰＣＩバスで接続されている。
【００６５】
　なお、コントローラボード６０は、ＡＳＩＣ６６にローカルメモリ６４、ＨＤＤ６５などが接続されると共に、ＣＰＵ６１とＡＳＩＣ６６とがＣＰＵチップセットのＮＢ６２を介して接続されている。このように、ＮＢ６２を介してＣＰＵ６１とＡＳＩＣ６６とを接続すれば、ＣＰＵ６１のインタフェースが公開されていない場合に対応できる。
【００６６】
　また、ＡＳＩＣ６６とＮＢ６２とはＰＣＩバスを介して接続されているのでなく、ＡＧＰ（Accelerated Graphics Port）６７を介して接続されている。このように、図２のアプリケーション層５やプラットホーム層６を形成する一つ以上のプロセスを実行制御するため、ＡＳＩＣ６６とＮＢ６２とを低速のＰＣＩバスでなくＡＧＰ６７を介して接続し、パフォーマンスの低下を防いでいる。
【００６７】
　ＣＰＵ６１は、融合機１の全体制御を行うものである。ＣＰＵ６１は、ＮＣＳ３１、ＤＣＳ３２、ＯＣＳ３３、ＦＣＳ３４、ＥＣＳ３５、ＭＣＳ３６、ＵＣＳ３７、ＲＳ４２、ＯＵＳ４３、ＳＣＳ３８、ＳＲＭ３９、ＦＣＵＨ４０、ＩＭＨ４１、ＭＥＵ４４をＯＳ上にそれぞれプロセスとして起動して実行させると共に、アプリケーション層５を形成するプリンタアプリ２１、コピーアプリ２２、ファックスアプリ２３、スキャナアプリ２４、ネットファイルアプリ２５を起動して実行させる。
【００６８】
　ＮＢ６２は、ＣＰＵ６１、システムメモリ６３、ＳＢ１７３およびＡＳＩＣ６６を接続するためのブリッジである。システムメモリ６３は、融合機１の描画用メモリなどとして用いるメモリである。ＳＢ１７３は、ＮＢ６２とＰＣＩバス、周辺デバイスとを接続するためのブリッジである。また、ローカルメモリ６４はコピー用画像バッファ、符号バッファとして用いるメモリである。フラッシュメモリ８０は、プログラムが格納されるメモリである。
【００６９】
　ＡＳＩＣ６６は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣである。ＨＤＤ６５は、画像の蓄積、文書データの蓄積、プログラムの蓄積、フォントデータの蓄積、フォームの蓄積などを行うためのストレージである。また、オペレーションパネル５２は、ユーザからの入力操作を受け付けると共に、ユーザに向けた表示を行う操作部である。
【００７０】
　次に、記憶領域を確保する処理を説明するために、更新プログラムをダウンロードする処理を例にして説明するが、その説明に先立ち、以下の説明で用いられるプロセスやアプリケーションなどの説明をしておく。
【００７１】
　本実施の形態においては、アプリケーション、モジュール、プロセスという表現が用いられている。このうちのプロセスは、一般的に実行中のプログラムを表すため、アプリケーションやモジュールはプロセスに含まれる。したがって、いずれの表現の場合も本質的な差はないが、本実施の形態では、説明内容に応じて適宜使い分ける。
【００７２】
　また、本実施の形態において、ダウンロードして取得したプログラムを更新プログラムとしているが、この更新プログラムは、融合機１が有する従来からのプログラム全体を更新するプログラムだけではなく、従来のプログラムとマージするプログラムや従来のプログラムの一部を更新する差分プログラムを含む。
【００７３】
　以下、メモリ領域を確保し、更新プログラムをダウンロードする処理を説明する。
【００７４】
　融合機１は、例えば融合機１の開発元などが提供するサーバから、プログラムの更新を開始する通知を受けると、プロセスが使用していたメモリ領域を解放することにより、更新プログラムを展開するためのメモリ領域を確保し、そのメモリ領域に更新プログラムを展開するという処理を行う。そこでまず、メモリ領域についての説明をする。
【００７５】
　メモリ領域の内容は、通常、メモリマップを用いて示される。このメモリマップとは、どの位置に何の情報を記憶するのかが示されたものである。
【００７６】
　このメモリマップを用いてメモリ領域について説明する。図３には、揮発性の記憶装置であるシステムメモリ６２のメモリマップ７１と、メモリマップ７１に示されている共有メモリを拡大したメモリマップ７２とメモリ領域ＶＭ７５とが示されている。これらのメモリマップ７１、７２に表示されているメモリ領域は、メモリ領域ＶＭ７５を除き、ＩＭＨ４１が管理している。メモリ領域ＶＭ７５は、ＯＳが管理するメモリ領域である。
【００７７】
　このようにＯＳの管理外にあるメモリ領域を用いることにより、融合機１を開発する側では、融合機１の仕様や特性に合わせたメモリ管理を行えるばかりではなく、メモリリークなど、不具合の発生原因を抑制することが可能となる。
【００７８】
　なお、以下の説明では、上述したＯＳの管理外にあるメモリ領域を用いた処理の説明となるが、ＯＳが管理するメモリ領域でも同様の処理は可能である。
【００７９】
　メモリマップ７１の説明をする。メモリマップ７１に示されるように、システムメモリ６２は、共有メモリ、プリンタエミュレーション作業用メモリ、ページメモリ、印字データ用、その他、というようにメモリ領域が区分けされている。
【００８０】
　このうち、共有メモリは、実行しているプログラムが展開されるとともに、プロセスが処理を行うために使用するメモリである。図３に示されているメモリマップ７２は、プログラムが展開する前の状態を示しているため、全て空き領域となっている。
【００８１】
　この状態から、プロセスが起動することにより、メモリマップは、図４に示されるようになる。図４に示されるメモリマップは、図３で空きだった共有メモリに、アプリケーションやモジュールが展開された様子を示すものである。このメモリマップ７３には、コピーアプリ、プリンタアプリなどのアプリケーションやサービス層のモジュールで使用される領域が、どの位置に展開されるのかが示されている。
【００８２】
　次に示す図５は、図４に示されるようにメモリ領域に展開されたプロセスの稼動状況を示す図である。図５に示される各プロセスの稼動状況は、プロセスを示す四角内に表示され、この図の場合、全てのプロセスが「通常」の処理を行なっている状況である。
【００８３】
　この稼働状況で、例えば、図６に示されるように、各アプリケーションや、サービス層モジュールの一部などのプロセスをオフライン状態にさせたとする。このオフライン状態とは、プロセスが、処理の実行を制限された状態であることを示している。具体的には、エンジン状態通知や、異常発生の通知などを受信することは可能であるが、対外的なイベントに対する実行動作を禁止した状態である。
【００８４】
　具体的に説明すると、それぞれのアプリケーションや、サービス層モジュールは、オフライン状態になると、図７に示される処理の実行を制限する。例えば、コピーアプリ２２は、読み取り・印刷・ＬＳ蓄積に係る処理を行わない。ＦＡＸアプリ２３は、送受信・ＬＳ蓄積・受信文書印刷に係る処理を行わない。プリンタアプリ２１は、印刷・ＬＳ蓄積に係る処理を行わない。スキャナアプリ２４は、読み取り・ＬＳ蓄積に係る処理を行わない。ネットファイルアプリ２５は、印刷・ＬＳ蓄積に係る処理を行わない。ＳＣＳ３８は、操作部イベントをマスクし、ジョブの実行要求を拒絶する。ＮＣＳ３１は、通信イベントを拒絶する。
【００８５】
　このようなオフライン状態を解除することは可能であり、その場合、プロセスは、制限されていた処理を実行することが可能となる。したがって、アプリケーションは、オフライン状態で動作している際にも、他のアプリケーションなどから通知された内容は保持しておき、処理の実行の制限を解除されたときに、保持していた内容に基づき処理を再開することが可能となっている。
【００８６】
　このように、オフライン状態における処理の実行の制限とは、その制限を解除することにより、制限されていた処理が再び実行可能となる範囲での制限である。したがって、制限する処理は、その範囲内で適宜定めることができる。
【００８７】
　プロセスをオフライン状態にさせたのち、ＳＣＳ３８は、プロセスが使用していたメモリ領域を解放させる。ここで、プロセスが使用していたメモリ領域について、図８のメモリマップ７４を用いて説明する。メモリマップ７４は、プロセスが使用していたメモリ領域を解放したメモリ領域の様子を示すメモリマップである。
【００８８】
　メモリマップ７３（図４参照）に示したように、それぞれのアプリケーションや、モジュールには、システムメモリ６３上に領域が割り当てられている。その割り当てられたメモリ領域は、さらに２つの領域で構成される。これらのメモリ領域を本実施の形態では、１つを固定エリアとし、もう１つを変動エリアとする。このうち、固定エリアとは、エンジン７９（図２参照）の状態通知を記憶しておくなど、各アプリケーションがジョブを実行するしないにかかわらず必要とする情報を記憶しておくエリアである。これらの情報のうち、例えばエンジン７９の状態が記憶されていない場合、オフライン状態が解除されて再びプロセスが処理を実行した際に、実際のエンジン７９の状態が把握できていないため、異常動作の原因となる可能性がある。
【００８９】
　また、変動エリアとは、プロセスが使用していたメモリ領域であり、各アプリケーションやモジュールが処理を実行する際に必要となるメモリ領域である。このメモリ領域が使用される例として画像情報の一時的な記憶や、現在の動作に関する情報の記憶に用いられる。
【００９０】
　このように、本実施の形態においては、上記のように変動エリアを定めているが、これはあくまでも一例であり、上述した処理の制限の範囲によって種々の定め方が存在する。
【００９１】
　図８の説明に戻り、上述した変動エリアが解放されると、図８に示されるような空きのメモリ領域が得られる。
【００９２】
　次に、固定エリアをさらに解放させるためのプロセスの消滅について説明する。一般的に、ある処理を実行する場合、ＯＳは、そのプログラムをメモリに展開し、プロセスとして登録して処理を実行させ、必要がなくなると、ＯＳは、プロセスとしての登録を抹消する。
【００９３】
　プロセスの消滅とは、本実施の形態において、プロセスとしての登録抹消を意味する。従って、プロセスが消滅させられると、展開されたプログラムを含むプロセスに割り当てられた領域は、実質的に空きとなる。本実施の形態の場合、このプロセスに割り当てられた領域が、上述した固定エリアである。
【００９４】
　プロセスを消滅させると、図５に示される稼働状況から図９に示される稼働状況となる。図９に示される稼働状況は、全てのアプリケーションを消滅させた場合の稼働状況を示す図であり、消滅したアプリケーションが点線で示されている。このとき、図１０のメモリマップ７８に示されるように、解放しなかったサービス層モジュールに割り当てられているメモリ領域以外は、全て空き領域となる。
【００９５】
　このようにして得られた空き領域を、ダウンロードした更新プログラムを展開するメモリ領域として用いることで、更新プログラムをダウンロードするためのメモリ領域を予め用意しなくても更新プログラムをダウンロードすることが可能となる。
【００９６】
　また、ダウンロードした更新プログラムは、新たなプログラムとしてフラッシュメモリ６９に格納される。
【００９７】
　次に、プロセスの消滅に伴う処理について、ＳＣＳ３８とアプリケーションを例にして説明する。図１１には、ＳＣＳ３８のプロセス２０１とアプリケーションを構成するプロセス２０４とが示されている。そして、ＳＣＳ３８のプロセス２０１には、ＳＣＳ３８のメインタスク２０２とアプリエラーハンドラ２０３とが示されている。また、アプリケーションを構成するプロセス２０４には、アプリメインタスク２０５とＳＣＳエラーハンドラ２０６とが示されている。
【００９８】
　プロセス２０１と、プロセス２０４は、図１１に示されるように、起動時に互いにエラーハンドラを登録する。これらエラーハンドラは、この場合、互いの存在を確認するものである。したがって、図１２に示されるように、プロセス２０４が消滅すると、ＳＣＳ３８のアプリエラーハンドラ２０３が、プロセス２０４が消滅したことを認識し、エラーが発生することになる。
【００９９】
　そこで、ＳＣＳ３８は、エラーを回避するため、図１３に示されるように、予めアプリエラーハンドラを停止してからアプリケーションのプロセスを消滅する。このようにすることで、ＳＣＳ３８は、アプリケーションのプロセスが消滅しても、アプリエラーハンドラは停止しているため、エラーの発生を回避することができる。なお、図中に示される「ＫＩＬＬ」は、プロセスを消滅させるコマンドを意味する。
【０１００】
　このように、プロセスを消滅させることで、そのプロセスに割り当てられた固定エリアと変動エリアは、実質的に空きとなる。従って、ＳＣＳ３８は、固定エリアと変動エリアを解放させることが可能となる。
【０１０１】
　このようにすることにより、応用ソフトウェアが管理を行うメモリ領域に、より多くのメモリ領域を確保することが可能となる。
【０１０２】
　そして、得られた空き領域は、ダウンロードした更新プログラムを展開するメモリ領域として用いられる。また、ダウンロードした更新プログラムは、新たなプログラムとしてフラッシュメモリ８０に格納される。
【０１０３】
　以下、メモリ領域を解放し、ダウンロードする処理について説明する。上述したように、メモリ領域の解放には、プロセスをオフライン状態して変動エリアを解放する場合と、プロセスを消滅することで固定エリアと変動エリアを解放する場合の２通りの処理がある。そのため、それぞれ分けて説明することとする。
【０１０４】
　まず、プロセスをオフライン状態して変動エリアを解放する場合の処理について説明する。
【０１０５】
　図１４は、融合機１が２つのアプリケーション（アプリＡ８１、アプリＢ８２）をオフライン状態にしてメモリ領域を解放し、更新プログラムをダウンロードし、フラッシュメモリ６９に格納されたプログラムを更新する処理を示すシーケンス図である。この処理は、通信手段に対応するＮＣＳ３１と、データ展開手段に対応するＯＵＳ４３と、記憶領域解放手段とオフライン手段とプロセス消滅手段とプログラム更新手段に対応するＳＣＳ３８と、エンジンファーム５５により行われる。なお、エンジンファームとは、エンジンに搭載されたファームウェアを示す。
【０１０６】
　以下、シーケンス図の説明をする。ステップＳ１０１で、ＮＣＳ３１は、プログラム更新開始をネットワークから通知され、ステップＳ１０２で、ＯＵＳ４３に、プログラムの更新開始を示すプログラム更新開始を通知する。通知を受けたＯＵＳ４３は、ステップＳ１０３で、ＳＣＳ３８に対し、アプリオフライン要求を通知する。このアプリオフライン要求とは、アプリケーションを上述したオフライン状態にさせる要求である。
【０１０７】
　また、このアプリオフライン要求は、ＳＣＳ３８を介してアプリケーションに通知されるが、この要求を通知されたアプリケーションは、アプリケーションとしての動作を行なっていない限り、オフライン状態に移行しならなければならない。
【０１０８】
　この「アプリケーションとしての動作」とは、例えばコピーアプリ２２を例にして説明すると、コピーの処理を実行する動作をいう。
【０１０９】
　従って、コピーアプリ２２がコピーの処理を実行していない限り、コピーアプリ２２は、オフライン状態で動作しならなければならない。
【０１１０】
　シーケンス図の説明に戻り、アプリオフライン要求をＯＵＳ４３から通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２にステップＳ１０４とステップＳ１０５でアプリオフライン移行要求を通知する。
【０１１１】
　アプリオフライン移行要求を通知されたアプリＡ８１、アプリＢ８２は、それぞれオフライン状態になることが可能である場合、ＳＣＳ３８に対し、オフライン状態に移行したことを示すアプリオフライン応答（ＯＫ）を通知する。このシーケンス図の場合、アプリＡ８１、アプリＢ８２ともにオフライン状態になることが可能であるため、アプリＡ８１、アプリＢ８２は、ステップＳ１０６、ステップＳ１０７で、それぞれアプリオフライン応答（ＯＫ）をＳＣＳ３８に通知している。
【０１１２】
　アプリオフライン応答（ＯＫ）を通知されたＳＣＳ３８は、ステップＳ１０８で、ＯＵＳ４３に対し、アプリケーションがオフライン状態になったことを示すアプリオフライン確定を通知する。
【０１１３】
　アプリケーションのオフライン確定を通知されたＯＵＳ４３は、ステップＳ１０９でＳＣＳ３８にオフライン状態に移行したアプリケーションの変動エリアを解放させるためにメモリ解放要求を通知する。
【０１１４】
　メモリ解放要求を通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２に対し、ステップＳ１１０とステップＳ１１１でメモリ解放要求を通知する。メモリ解放要求を通知されたアプリＡ８１、アプリＢ８２は、それぞれメモリを解放し、ステップＳ１１２、ステップＳ１１３で、ＳＣＳ３８にメモリ解放完了応答を通知する。
【０１１５】
　メモリ解放完了応答を通知されたＳＣＳ３８は、ＯＵＳ４３にステップＳ１１４でメモリ領域の解放が完了したことを示すメモリ解放完了応答を通知する。メモリ解放完了応答を受信したＯＵＳ４３は、更新プログラムをダウンロードし、メモリ領域の解放により得られたメモリ領域に更新プログラムを展開する。
【０１１６】
　そして、ＯＵＳ４３は、ステップＳ１１５で、プログラム更新開始要求であるリモートＲＯＭ更新開始要求をＳＣＳ３８に通知する。リモートＲＯＭ更新開始要求を通知されたＳＣＳ３８は、キーイベントのマスクを行う。このキーイベントのマスクとは、オペレーションパネル５２に表示されるキーが押下されたことにより発生するイベントを受け付けず、オペレーションパネル５２を無効化する処理である。
【０１１７】
　次に、ＳＣＳ３８は、プログラムの更新処理を行うために、ステップＳ１１６で、ダウンロードした更新プログラムをエンジンファーム５５に送信する。エンジンファーム５５は、プログラムの更新を行い、その結果をステップＳ１１７でＳＣＳ３８に通知する。
【０１１８】
　ＳＣＳ３８は、プログラムを更新した結果が通知されると、ステップＳ１１８で、エンジンファーム５５に対し、リブート準備要求を行う。そして、ステップＳ１１９で、エンジンファーム５５からリブート準備完了を通知されると、ＳＣＳ３８は、強制リブートを行い、プログラム更新処理を終了する。
【０１１９】
　以上のように、ＳＣＳ３８は、アプリケーションが使用するメモリ領域を解放し、ＯＵＳ４３は、プログラムを更新する更新プログラムを、ＮＣＳ３１を用いてダウンロードし、ＳＣＳ３８により解放されたメモリ領域に展開する。
【０１２０】
　以上説明したフローチャートにおけるステップＳ１０３からステップＳ１０８が、オフライン段階に対応し、ステップＳ１０９からステップＳ１１４が、記憶領域解放段階に対応し、ステップＳ１１４の後に実行されるＯＵＳ４３のダウンロードプログラムのメモリ展開が、データ展開段階に対応する。
【０１２１】
　次に、ＯＵＳ４３と、ＳＣＳ３８と、アプリケーションの処理の詳細を、フローチャートを用いて説明する。
【０１２２】
　最初に、ＯＵＳ４３の処理について、図１５のフローチャートを用いて説明する。ステップＳ２０１で、ＯＵＳ４３は、ＮＣＳ３１からプログラムの更新開始を示すプログラム更新開始通知を受信する。次のステップＳ２０２で、ＯＵＳ４３は、受信したプログラム更新開始通知自体が正常なデータであるかどうかをチェックするためのＳＵＭ値のチェックを実行し、プログラム更新開始通知が正常データでない場合は、ステップＳ２０３で、プログラムの更新処理を終了する。
【０１２３】
　ステップＳ２０２で、プログラム更新開始通知が正常なデータであると判断された場合、ＯＵＳ４３は、ステップＳ２０４で、ＳＣＳ３８にアプリケーションをオフライン状態にさせるアプリオフライン要求を通知する。アプリオフライン要求の応答であるアプリオフライン確定をステップＳ２０５で受信すると、ＯＵＳ４３は、ステップＳ２０６で、アプリオフラインが実行完了したかどうか判断する。このステップＳ２０６の処理は、アプリオフラインが確定しなかったことを通知された場合に、ステップＳ２０３で、プログラムの更新処理を終了するための処理である。
【０１２４】
　ステップＳ２０６で、ＯＵＳ４３が、アプリオフラインの実行が完了したと判断した場合、ステップＳ２０７で、ＳＣＳ３８にメモリ解放要求を行う。そして、ステップＳ２０８で、ＯＵＳ４３は、ＳＣＳ３８からメモリ解放完了を受信すると、ステップＳ２０９で、更新プログラムの展開に必要なメモリ領域が確保できたかどうか判断する。
【０１２５】
　ＯＵＳ４３が、メモリ領域が確保できなかったと判断した場合、ＯＵＳ４３は、ステップＳ２１０で、リブートを実行するかどうか判断する。ＯＵＳ４３が、リブートを実行しないと判断した場合、ＯＵＳ４３は、オフライン状態を解除するためにステップＳ２１１で、ＳＣＳ３８にオフライン解除要求を通知し、ステップＳ２１２でプログラム更新処理を終了する。
【０１２６】
　ステップＳ２１０で、ＯＵＳ４３はリブートを実行すると判断した場合、ＯＵＳ４３は、融合機１を再起動させるためにＳＣＳ３８にリブート要求を通知し、処理を終了する。
【０１２７】
　ステップＳ２０９の処理に戻り、プログラムの展開に必要なメモリを確保できた場合、ＯＵＳ４３は、ステップＳ２１４でダウンロードプログラムをメモリに展開する。そして、ステップＳ２１５で、ＯＵＳ４３は、プログラム更新開始要求であるリモートＲＯＭ更新開始要求をＳＣＳ３８に通知し、処理を終了する。
【０１２８】
　次に、ＳＣＳ３８の処理について、図１６のフローチャートを用いて説明する。ステップＳ３０１で、ＳＣＳ３８は、ＯＵＳ４３からアプリオフライン要求を受信する。アプリオフライン要求を受けたＳＣＳ３８は、ステップＳ３０２で、各アプリケーションにアプリオフライン移行要求を通知する。
【０１２９】
　次のステップＳ３０３で、ＳＣＳ３８は、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）ではなかった場合、ステップＳ３０４で、各アプリケーションに、アプリオフライン解除を通知する。これにより、アプリケーションは、オフライン状態が解除され、制限されていた処理の実行が可能となる。次に、ＳＣＳ３８は、ステップＳ３０５でＯＵＳ４３に対し、アプリケーションがオフラインに移行しなかったことを、アプリオフライン確定として通知し、処理を終了する。
【０１３０】
　ステップＳ３０３で、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）である場合、ＳＣＳ３８は、ステップＳ３０６でＯＵＳ４３にアプリオフライン確定を通知する。
【０１３１】
　次に、ＳＣＳ３８は、ステップＳ３０７で、ＯＵＳ４３からメモリ解放要求を受信すると、ステップＳ３０８でメモリ領域の解放処理を実行し、ステップＳ３０９でＯＵＳ４３にメモリ解放完了を通知する。
【０１３２】
　ＯＵＳ４３にメモリ解放完了を通知すると、ＳＣＳ３８は、ＯＵＳ４３の要求により処理が分岐する。まず、ＯＵＳ４３からオフライン解除要求を受信した場合、ＳＣＳ３８は、ステップＳ３１０からステップＳ３１１に分岐し、各アプリケーションアプリオフライン解除を通知し、処理を終了する。
【０１３３】
　ステップＳ３１０で、ＳＣＳ３８がＯＵＳ４３からオフライン解除要求を受信しなかった場合、ＳＣＳ３８は、ステップＳ３１２で、ＯＵＳ４３からリモートＲＯＭ更新開始要求を受信したかどうか判断する。ＳＣＳ３８がリモートＲＯＭ更新開始要求を受信した場合、ＳＣＳ３８は、ステップＳ３１５で、オペレーションパネル５２上のキー・タッチパネル操作イベントをマスクしてキーイベントのマスクを行う。
【０１３４】
　このように、プログラムを更新する際に、オペレーションパネル５２を無効化することにより、更新処理を迅速に行うことができるとともに、制限されていない機能は実行することができるため、例えば重要な機能をプログラム更新中にもかかわらず実行することができる。
【０１３５】
　次に、ＳＣＳ３８は、ステップＳ３１６で、プログラム更新処理を実行する。そして、ＳＣＳ３８は、ダウンロードの実行を開始したことやプログラムの更新状況などを、ＲＳ４２からネットワークを通してサービスセンタなどに通知し、ステップＳ３１８でリブートを実行し処理を終了する。なお、サービスセンタとは、例えば製造元に備えられた融合機１の保守や点検を行うためのサーバや、更新プログラムの配布元に備えられたサーバなどである。また、各アプリケーションやモジュールの状態情報をサービスセンタに送信してもよいし、サービスセンタではそのログを記録しておいてもよい。
【０１３６】
　ステップＳ３１２で、リモートＲＯＭ更新開始要求を受信しなかった場合、ステップＳ３１３で、ＳＣＳ３８は、ＯＵＳ４３からリブート要求を受信したかどうか判断する。ＳＣＳ３８がリブート要求を受信しなかった場合、ＳＣＳ３８は、再びステップＳ３１０の処理を行う。ＳＣＳ３８がリブート要求を受信した場合、ＳＣＳ３８は、ステップＳ３１４でダウンロードの実行が失敗し、リブート処理を行うことをＲＳ４２からネットワークを通してサービスセンタなどに通知し、ステップＳ３１８でリブートを行い処理を終了する。
【０１３７】
　次に、アプリＡ８１、アプリＢ８２などのアプリケーションの処理について、図１７のフローチャートを用いて説明する。ステップＳ４０１は、アプリケーションの起動を示す。次のステップＳ４０２で、アプリケーションは、上述した固定エリア用のメモリ領域を確保する。次に、ステップＳ４０３で、アプリケーションは、変動エリア用のメモリ領域を確保し、通常の処理を行う状態となる。
【０１３８】
　そして、ステップＳ４０４で、ＳＣＳ３８は、ＳＣＳ３８からオフライン要求を受信すると、ステップＳ４０５で、オフライン状態に移行することが可能かどうか判断する。オフライン状態に移行することが不可能であれば、アプリケーションは、再びステップＳ４０４の処理に戻る。オフライン状態に移行することが可能であれば、アプリケーションは、ステップＳ４０６で、オフライン状態に移行する。
【０１３９】
　オフライン状態に移行したアプリケーションは、ステップＳ４０７で、ＳＣＳ３８からメモリ解放要求を受信すると、ステップＳ４０８で変動エリア用のメモリ領域を解放する。メモリ領域を解放したアプリケーションは、ステップＳ４０９で、ＳＣＳ３８からオフライン解除要求を受信すると、ステップＳ４１０で、変動エリア用のメモリ領域を確保し、制限されていた処理を実行することが可能となる。
【０１４０】
　次に、アプリケーションが、オフライン状態に移行可能かどうかを判断する処理を図１８のフローチャートを用いて説明する。ステップＳ５０１で、アプリケーションは、ＳＣＳ３８からアプリオフライン移行要求を受信する。アプリケーションは、アプリオフライン移行要求を受信したことにより、所定の動作を実行中かどうかの判断を次のステップＳ５０２からステップＳ５０６まで行う。
【０１４１】
　このステップＳ５０２からステップＳ５０６までの動作のチェックは、印刷動作実行中、スキャン動作実行中、ＦＡＸ送受信動作実行中、ネットワーク通信動作実行中の順に行われ、１つでも実行中であれば、ステップＳ５０３で、アプリケーションは、ＳＣＳ３８にオフライン状態に移行できないことを示すアプリオフライン応答（ＮＧ）を通知し、処理を終了する。
【０１４２】
　ステップＳ５０２からステップＳ５０６までのチェックにより、いずれも実行中でないと判断された場合、ステップＳ５０７でアプリケーションは、オフライン状態に移行する。そして、ステップＳ５０８で、アプリケーションは、ＳＣＳ３８にアプリオフライン応答（ＯＫ）を通知する。
【０１４３】
　そして、オフライン状態に移行したアプリケーションは、ＳＣＳ３８からの要求待ちとなる。その要求待ちの状態において、アプリケーションは、ステップＳ５０９でＳＣＳ３８からメモリ解放要求を受信すると、ステップＳ５１０でメモリ解放処理を実行し、再び要求待ち状態となる。
【０１４４】
　アプリケーションは、ステップＳ５１１で、ＳＣＳ３８からオフライン解除要求を受信すると、ステップＳ５１２でオフライン状態を解除する。
【０１４５】
　次に、オフライン状態に移行した場合のアプリケーションのイベントに対する処理を図１９のフローチャートを用いて説明する。ステップＳ６０１からステップＳ６０４はイベントの発生であり、それぞれ、印刷イベント、スキャナイベント、ＦＡＸイベント、ネットワーク通信イベントが発生している。
【０１４６】
　次に、アプリケーションは、ステップＳ６０５で、オフライン状態かどうか判断する。アプリケーションがオフライン状態であれば、アプリケーションは、ステップＳ６１０からステップＳ６１３で、発生したイベントに対する処理の実行を拒絶する。
【０１４７】
　ステップＳ６０５で、アプリケーションがオフライン状態であれば、ステップＳ６０６からステップＳ６０９で、発生したイベントに対する処理を実行する。
【０１４８】
　次に、上述した処理におけるアプリケーション内部の処理を、スキャナアプリ２４を例にして説明する。図２０は、スキャナアプリ２４の内部構造の概略図である。この概略図には、ＳＣＳ３８とスキャナアプリ２４とが示されており、さらにスキャナアプリ２４内のプロセスであるＳＹＳＯＰプロセス８５と、配信プロセス８３と、ＴＷＡＩＮプロセス８４も示されている。
【０１４９】
　ＳＹＳＯＰプロセス８５は、外部のプロセスとのやり取りを行うプロセスであり、外部からの通知を適当なプロセスに振り分ける。配信プロセス８３は、画像データなどをネットワークを介して配信するプロセスである。ＴＷＡＩＮプロセス８４は、画像入力装置用ＡＰＩであるＴＷＡＩＮに関連する処理を行うプロセスである。
【０１５０】
　次に、これらのプロセス間で行われる処理を図２１のシーケンス図を用いて説明する。図２１のシーケンス図は、ＳＣＳ３８からアプリオフライン要求を受信したスキャナアプリ２４が、オフライン応答を返すまでのスキャナアプリ２４内の処理を示している。
【０１５１】
　ステップＳ７０１で、ＳＣＳ３８は、スキャナアプリ２４のＳＹＳＯＰプロセス８５にアプリオフライン要求を通知する。アプリオフライン要求を通知されたＳＹＳＯＰプロセス８５は、配信プロセス８３とＴＷＡＩＮプロセス８４に、ステップＳ７０２とステップＳ７０３で状態要求を通知する。状態要求を通知された配信プロセス８３とＴＷＡＩＮプロセス８４は、それぞれステップＳ７０４とステップＳ７０５で、状態応答をＯＫまたはＮＧとしてＳＹＳＯＰプロセス８５に通知する。
【０１５２】
　状態応答を通知されたＳＹＳＯＰプロセス８５は、配信プロセス８３とＴＷＡＩＮプロセス８４からの状態応答が、ともにＯＫである場合、ステップＳ７０６でＳＣＳ３８にオフライン応答（ＯＫ）を通知する。配信プロセス８３とＴＷＡＩＮプロセス８４からの状態応答で１つ以上ＮＧを通知された場合、ＳＹＳＯＰプロセス８５は、ステップＳ７０６でＳＣＳ３８にオフライン応答（ＮＧ）を通知する。
【０１５３】
　このように、他のアプリケーションも、アプリケーションを構成するプロセスが１つでもＮＧであれば、そのアプリケーションは、ＳＣＳ３８にオフライン応答（ＮＧ）を行うようになっている。
【０１５４】
　次に、オフライン状態の解除について、図２２を用いて説明する。ステップＳ８０１で、ＳＣＳ３８は、スキャナアプリ２４のＳＹＳＯＰプロセス８５にアプリオフライン解除要求を通知する。アプリオフライン解除要求を通知されたＳＹＳＯＰプロセス８５は、配信プロセス８３とＴＷＡＩＮプロセス８４に、ステップＳ８０２とステップＳ８０３で解除要求を通知する。解除要求を通知された配信プロセス８３とＴＷＡＩＮプロセス８４は、それぞれステップＳ８０４とステップＳ８０５で、常にＯＫである状態応答をＳＹＳＯＰプロセス８５に通知する。
【０１５５】
　ＯＫである状態応答を通知されたＳＹＳＯＰプロセス８５は、ステップＳ８０６でＳＣＳ３８にオフライン解除応答（ＯＫ）を通知する。
【０１５６】
　次に、スキャナアプリ２４が、例えば画像データを配信する配信要求を通知された場合に実行される処理を、図２３を用いて説明する。この図２３は、スキャナアプリ２４の処理とその関係を示した図であり、以下番号に従って説明する。ステップＳ１でスキャナアプリ２４は、スキャナアプリ２４の外部のプロセスから、配信要求を通知される。ステップＳ２とステップＳ３でスキャナアプリ２４は、要求解析処理において、スキャナアプリ２４の状態の判断処理を行う。
【０１５７】
　その結果、状態がオフライン状態の場合、ステップＳ４とステップＳ５でスキャナアプリ２４は、要求解析処理において、配信データを一時記憶する処理を行う。
【０１５８】
　また、オフライン状態ではない場合、スキャナアプリ２４は、通常の状態であるので、ステップＳ６とステップＳ７で配信処理を実行する。
【０１５９】
　そして、ステップＳ８とステップＳ９で、スキャナアプリ２４は、終了処理あるいは、オフライン状態では実行できない要求についてのエラー処理を行い、処理を終了する。
【０１６０】
　このように、オフライン状態のアプリケーションは、外部からの要求を保持または実行不可能な要求であればエラー処理を行う。
【０１６１】
　次に、アプリケーションがオフライン状態に移行できない場合の処理について説明する。
【０１６２】
　図２４は、ＳＣＳ３８が、１つ以上のアプリケーションからオフライン状態に移行できないことを通知されても、即座にＯＵＳ４３にその旨を通知せず、全てのアプリケーションからの応答を待ったのちにオフライン状態に移行しなかったことを通知する処理を示すシーケンス図である。
【０１６３】
　以下、シーケンス図の説明をする。ステップＳ９０１で、ＮＣＳ３１は、プログラム更新開始をネットワークから通知され、ステップＳ９０２で、ＯＵＳ４３に、プログラムの更新開始を示すプログラム更新開始を通知する。通知を受けたＯＵＳ４３は、ステップＳ９０３で、ＳＣＳ３８に対し、アプリオフライン要求を通知する。
【０１６４】
　オフライン要求をＯＵＳ４３から通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２にステップＳ９０４とステップＳ９０５でアプリオフライン移行要求を通知する。
【０１６５】
　アプリオフライン移行要求を通知されたアプリＢ８２は、オフライン状態に移行することができないため、ステップＳ９０６で、ＳＣＳ３８にアプリオフライン応答（ＮＧ）を通知する。また、アプリＡ８１はオフライン状態に移行することが可能なため、ステップＳ９０７でアプリオフライン応答（ＯＫ）を通知する。
【０１６６】
　次に、ＳＣＳ３８は、アプリＡ８１と、アプリＢ８２に、ステップＳ９０８とステップＳ９０９でアプリオフライン解除要求を通知する。そして、ＳＣＳ３８は、ＯＵＳ４３に対し、ステップＳ９１０でアプリケーションがオフラインに移行できなかったことを示すアプリオフライン確定（オフライン移行ＮＧ）を通知する。
【０１６７】
　このように、ＳＣＳ３８は、オフライン移行要求を通知したアプリケーションのうち、１つ以上のアプリケーションから、オフライン状態に移行できないことを通知されても、オフライン移行要求を通知した全てのアプリケーションからの応答を待ったのちに、ＯＵＳ４３に対し、アプリケーションがオフライン状態に移行しなかったことを通知する。
【０１６８】
　次に、上記処理とは別に、１つのアプリケーションからオフライン状態に移行できないことを通知されると、即座にＯＵＳ４３にアプリケーションがオフライン状態に移行しなかったことを通知する処理を、図２５のシーケンス図を用いて説明する。
【０１６９】
　ステップＳ１００１で、ＮＣＳ３１は、プログラム更新開始をネットワークから通知される。ステップＳ１００２で、ＮＣＳ３１は、ＯＵＳ４３に、プログラム更新開始を通知する。通知を受けたＯＵＳ４３は、ステップＳ１００３で、ＳＣＳ３８に対し、アプリオフライン要求を通知する。
【０１７０】
　オフライン要求をＯＵＳ４３から通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２に、ステップＳ１００４とステップＳ１００５でアプリオフライン移行要求を通知する。
【０１７１】
　アプリオフライン移行要求を通知されたアプリＢ８２は、オフライン状態に移行することができないため、ステップＳ１００６で、ＳＣＳ３８にアプリオフライン応答（ＮＧ）を通知する。
【０１７２】
　アプリＢ８２からオフライン状態に移行できないことを通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２に、ステップＳ１００７とステップＳ１００８でアプリオフライン解除要求を通知する。
【０１７３】
　そして、ＳＣＳ３８は、ＯＵＳ４３に対し、ステップＳ１００９でアプリケーションがオフラインに移行できなかったことを示すアプリオフライン確定（オフライン移行ＮＧ）を通知する。
【０１７４】
　このように、ＳＣＳ３８は、オフライン移行要求を通知したアプリケーションのうち、１つのアプリケーションからオフライン状態に移行できないことを通知されると、オフライン移行要求を通知した他のアプリケーションからの応答を待たずに、ＯＵＳ４３に対し、アプリケーションがオフライン状態に移行しなかったことを通知する。
【０１７５】
　次に、ＳＣＳ３８が、アプリケーションに対してオフライン移行要求を通知してから時間を計測し、所定の時間が経過すると、応答のあるなしに関わらず、ＯＵＳ４３にアプリオフライン確定を通知する処理について、図２６のシーケンス図を用いて説明する。
【０１７６】
　ステップＳ１１０１で、ＮＣＳ３１は、プログラム更新開始をネットワークから通知され、ステップＳ１１０２で、ＯＵＳ４３に、プログラム更新開始を通知する。通知を受けたＯＵＳ４３は、ステップＳ１１０３で、ＳＣＳ３８に対し、アプリオフライン要求を通知する。
【０１７７】
　オフライン要求をＯＵＳ４３から通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２に、ステップＳ１１０４とステップＳ１１０５でアプリオフライン移行要求を通知する。
【０１７８】
　アプリオフライン移行要求を通知されたアプリＢ８２は、オフライン状態に移行すること可能であるので、ステップＳ１１０６で、ＳＣＳ３８にアプリオフライン応答（ＯＫ）を通知する。
【０１７９】
　その後、所定の時間が経過したため、ＳＣＳ３８は、応答待ちのタイムアウトとし、アプリＡ８１からの応答を待たずに、ＳＣＳ３８は、ステップＳ１１０７で、ＯＵＳ４３にアプリオフライン確定を通知する。
【０１８０】
　オフライン確定を通知されたＯＵＳ４３は、ステップＳ１１０８でＳＣＳ３８に、オフライン状態に移行したアプリケーションが使用している変動エリアを解放させるためにメモリ解放要求を通知する。
【０１８１】
　メモリ解放要求を通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２に、ステップＳ１１０９とステップＳ１１１０でメモリ解放要求を通知する。メモリ解放要求を通知されたアプリＡ８１、アプリＢ８２は、それぞれメモリ領域を解放し、ステップＳ１１１１、ステップＳ１１１２で、ＳＣＳ３８にメモリ解放完了応答を通知する。
【０１８２】
　メモリ解放完了応答を通知されたＳＣＳ３８は、ＯＵＳ４３に、ステップＳ１１１３でメモリ領域の解放が完了したことを示すメモリ解放完了応答を通知する。
【０１８３】
　メモリ解放完了応答を通知されたＯＵＳ４３は、更新プログラムをダウンロードし、メモリ領域の解放により得られたメモリ領域に更新プログラムを展開する。
【０１８４】
　そして、ＯＵＳ４３は、ステップＳ１１１４で、リモートＲＯＭ更新開始要求をＳＣＳ３８に通知する。リモートＲＯＭ更新開始要求を通知されたＳＣＳ３８は、キーイベントのマスクを行う。
【０１８５】
　次に、ＳＣＳ３８は、プログラムの更新処理を行うために、ステップＳ１１１５で、ダウンロードした更新プログラムをエンジンファーム５５に送信する。エンジンファーム５５は、プログラムの更新を行い、その結果をステップＳ１１１６でＳＣＳ３８に通知する。
【０１８６】
　ＳＣＳ３８は、プログラムを更新した結果が通知されると、ステップＳ１１１７で、エンジンファーム５５に対し、リブート準備要求を通知する。そして、ステップＳ１１１８で、エンジンファーム５５からリブート準備完了を通知されると、ＳＣＳ３８は、強制リブートを行い、プログラム更新処理は終了する。
【０１８７】
　このように、ＳＣＳ３８は、アプリケーションに対し、オフライン移行要求を通知するとともに、時間を計測し、オフライン移行要求に対するアプリケーションの応答が、所定の時間が経過しても通知されない場合、ＯＵＳ４３に対し、アプリケーションがオフライン状態に移行したことを通知する。
【０１８８】
　次に、上述したタイムアウト処理と、アプリケーションから全ての応答を待ったのちにＯＵＳ４３に通知する処理とを行うＳＣＳ３８の処理について、図２７を用いて説明する。
【０１８９】
　ステップＳ１２０１で、ＳＣＳ３８は、各アプリケーションにアプリオフライン移行要求を通知する。次に、ＳＣＳ３８は、ステップＳ１２０２でタイムアウト時間が経過したかどうか判断する。
【０１９０】
　タイムアウト時間が経過している場合は、後述するステップＳ１２０７へ処理が進む。タイムアウト時間が経過していない場合、ＳＣＳ３８は、ステップＳ１２０３へ処理を進める。ステップＳ１２０３で、ＳＣＳ３８は、任意のアプリケーションからアプリオフライン応答を受信すると、ステップＳ１２０４で、アプリオフライン応答の受信結果を判断する。
【０１９１】
　受信結果がアプリオフライン応答（ＮＧ）の場合、ＳＣＳ３８は、アプリオフライン応答（ＮＧ）が発生したことを記憶しておき、ステップＳ１２０６へ処理を進める。
【０１９２】
　また、受信結果がオフライン応答（ＯＫ）の場合、ＳＣＳ３８は、ステップＳ１２０６へ処理を進める。
【０１９３】
　ステップＳ１２０６は、全てのアプリケーションからアプリオフライン応答を受信したかどうかをＳＣＳ３８が判断する処理である。全てのアプリケーションからアプリオフライン応答をＳＣＳ３８が受信していない場合、ＳＣＳ３８は、再びステップＳ１２０２の処理を行う。
【０１９４】
　全てのアプリケーションからアプリオフライン応答をＳＣＳ３８が受信した場合、ＳＣＳ３８は、ステップＳ１２０７の処理を行う。
【０１９５】
　ステップＳ１２０７の処理は、ＳＣＳ３８が、ここまでの処理でアプリアプリオフライン応答（ＮＧ）の通知があったかどうか判断する処理である。アプリオフライン応答（ＮＧ）の通知がなかった場合、ＳＣＳ３８は、ステップＳ１２０８でアプリケーションがオフライン状態に移行したことをＯＵＳ４３に通知し処理を終了する。
【０１９６】
　また、アプリオフライン応答（ＮＧ）の通知があった場合、ＳＣＳ３８は、ステップＳ１２０９でアプリケーションがオフライン状態に移行しなかったことをＯＵＳ４３に通知し処理を終了する。
【０１９７】
　次に、タイムアウト処理と、１つのアプリケーションからオフライン状態に移行できないことを通知されると、即座にＯＵＳ４３に通知する処理とを行うＳＣＳ３８の処理について、図２８を用いて説明する。
【０１９８】
　ステップＳ１３０１で、ＳＣＳ３８は、アプリケーションに対してアプリオフライン移行要求を行う。次に、ＳＣＳ３８は、ステップＳ１３０２でタイムアウト時間が経過したかどうか判断する。
【０１９９】
　タイムアウト時間が経過している場合は、後述するステップＳ１３０６へ処理が進む。タイムアウト時間が経過していない場合、ＳＣＳ３８は、ステップＳ１３０３へ処理を進める。ステップＳ１３０３で、ＳＣＳ３８は、任意のアプリケーションからアプリオフライン応答を受信すると、ステップＳ１３０４で、アプリオフライン応答の受信結果を判断する。
【０２００】
　受信結果がアプリオフライン応答（ＮＧ）の場合、ＳＣＳ３８は、ステップＳ１３０７で、アプリケーションがオフライン状態に移行しなかったことをＯＵＳ４３に即座に通知し処理を終了する。
【０２０１】
　また、受信結果がアプリオフライン応答（ＯＫ）の場合、ＳＣＳ３８は、ステップＳ１３０５へ処理を進める。
【０２０２】
　ステップＳ１２０５は、全てのアプリケーションからオフライン応答を受信したかどうかをＳＣＳ３８が判断する処理である。ＳＣＳ３８が、全てのアプリケーションからオフライン応答を受信していない場合、ＳＣＳ３８は、再びステップＳ１３０２の処理を行う。
【０２０３】
　ＳＣＳ３８が、全てのアプリケーションからオフライン応答を受信した場合、ＳＣＳ３８は、ステップＳ１３０６で、アプリケーションがオフライン状態に移行したことをＯＵＳ４３に通知し処理を終了する。
【０２０４】
　次に、ＩＭＨ４１が、アプリケーションが使用する変動エリアを解放する処理を説明する。
【０２０５】
　まず、図２９のシーケンス図を用いて、ＩＭＨ４１が、アプリケーションが使用する変動エリアを解放する場合の処理を説明する。
【０２０６】
　図２９に示されるシーケンス図は、図１４のシーケンス図において、ＩＭＨ４１の処理により変わる部分であるステップＳ１０９からステップＳ１１４までの間の処理を示したものである。
【０２０７】
　図２９のステップＳ１０９は、図１４と同様に、ＯＵＳ４３が、ＳＣＳ３８にメモリ解放要求を通知する。メモリ解放要求を通知されたＳＣＳ３８は、図１４と異なり、ＩＭＨ４１にステップＳ１１でメモリ解放要求を通知する。メモリ解放要求を通知されたＩＭＨ４１は、各アプリケーションの変動エリアを解放し、ステップＳ１２でＳＣＳ３８に、メモリ解放完了応答を通知する。ＩＭＨ４１からメモリ解放完了応答を通知されたＳＣＳ３８は、図１４と同様に、ステップＳ１１４で、ＯＵＳ４３に、メモリ解放完了応答を通知する。
【０２０８】
　次に、この処理を行うＩＭＨ４１のフローチャートを、図３０を用いて説明する。
【０２０９】
　ステップＳ１４０１で、アプリケーションが起動し、ステップＳ１４０２で、アプリケーションが固定エリア用のメモリを確保する。そのとき、ＩＭＨ４１は、ステップＳ１４０３で、記憶領域情報である固定エリア情報を保持する。
【０２１０】
　次に、アプリケーションがステップＳ１４０４で変動エリア用のメモリを確保すると、ＩＭＨ４１は、ステップＳ１４０５で、記憶領域情報である変動エリア情報を保持する。
【０２１１】
　変動エリアと固定エリアからなる記憶領域情報は、図３１に示される構造となっている。この図３１において、例えば、アプリＡの固定エリアの記憶領域情報は、固定エリア先頭アドレス0x100000と、固定エリア末尾アドレス0x1FFFFFと、変動エリア先頭アドレス0x200000と、固定エリア末尾アドレス0x24FFFFの４つの情報からなる。他のアプリケーションも同様である。なお、上記アドレスは、１６進表示となっている。また、固定エリアと変動エリアが連続する場合、変動エリア末尾アドレスは特に必要ない。さらに、各アプリケーションに割り当てられた領域が連続する場合、固定エリア末尾アドレスは特に必要ない。
【０２１２】
　このようにＩＭＨ４１は、上記記憶領域情報を保持しておくことによって、保持した記憶領域情報に基づき、アプリケーションが使用するメモリ領域を解放することができる。
【０２１３】
　フローチャートの説明に戻り、ＩＭＨ４１は、ステップＳ１４０６で、ＳＣＳ３８からのメモリ解放要求を受信すると、ステップＳ１４０７で、ＩＭＨ４１は、各アプリケーションの変動エリアを解放する。そして、ステップＳ１４０８で、ＩＭＨ４１は、ＳＣＳ３８にメモリ解放完了応答を通知する。
【０２１４】
　このように、変動エリアを解放した状態で、ＩＭＨ４１が、ステップＳ１４０９で、ＳＣＳ３８から、オンライン解除を受信すると、ＩＭＨ４１は、ステップＳ１４１０で、各アプリケーションの変動エリア情報を再び保持する。
【０２１５】
　以上が、プロセスをオフライン状態して変動エリアを解放する場合の処理についての説明である。次に、プロセスを消滅する場合の処理について説明する。
【０２１６】
　図３２は、融合機１が２つのアプリケーション（アプリＡ８１、アプリＢ８２）を消滅して更新プログラムをダウンロードし、フラッシュメモリ６９に格納されたプログラムを更新する処理を示すシーケンス図である。
【０２１７】
　以下、シーケンス図の説明をする。ステップＳ１５０１で、ＮＣＳ３１は、プログラム更新開始をネットワークから通知され、ステップＳ１５０２で、ＯＵＳ４３に、プログラム更新開始を通知する。プログラム更新開始を通知されたＯＵＳ４３は、ステップＳ１５０３で、ＳＣＳ３８にアプリオフライン要求を通知する。なお、このシーケンス図でのオフライン要求は、オフライン状態にしたのちに、さらにアプリケーションを消滅させる要求も含んでいる。
【０２１８】
　アプリオフライン要求をＯＵＳ４３から通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２にステップＳ１５０４とステップＳ１５０５でアプリオフライン移行要求を通知する。
【０２１９】
　アプリオフライン移行要求を通知されたアプリＡ８１、アプリＢ８２は、それぞれオフライン状態に移行することが可能である場合、ＳＣＳ３８に対し、アプリオフライン応答（ＯＫ）を通知する。このシーケンス図の場合、アプリＡ８１、アプリＢ８２ともにオフライン状態に移行することが可能であるため、アプリＡ８１、アプリＢ８２は、ステップＳ１５０６、ステップＳ１５０７で、それぞれアプリオフライン応答（ＯＫ）をＳＣＳ３８に通知している。
【０２２０】
　アプリオフライン応答（ＯＫ）を通知されたＳＣＳ３８は、アプリＡ８１、アプリＢ８２の消滅を実行する。この処理は、プロセス消滅段階に対応する。
【０２２１】
　アプリケーションの消滅を実行したＳＣＳ３８は、アプリケーションの消滅が完了したことを、ステップＳ１５０８で、アプリオフライン確定（プロセスＫＩＬＬ完了）としてＯＵＳ４３に通知する。アプリオフライン確定を通知されたＯＵＳ４３は、更新プログラムをダウンロードし、アプリケーションの消滅により得られたメモリ領域に更新プログラムを展開する。
【０２２２】
　次に、ＯＵＳ４３は、ステップＳ１５０９で、プログラム更新開始要求であるリモートＲＯＭ更新開始要求をＳＣＳ３８に通知する。リモートＲＯＭ更新開始要求を通知されたＳＣＳ３８は、キーイベントのマスクを行う。
【０２２３】
　次に、ＳＣＳ３８は、プログラムの更新処理を行うために、ステップＳ１５１０で、ダウンロードした更新プログラムをエンジンファーム５５に送信する。エンジンファーム５５は、プログラムの更新を行い、その結果をステップＳ１５１１でＳＣＳ３８に通知する。
【０２２４】
　ＳＣＳ３８は、プログラムを更新した結果が通知されると、ステップＳ１５１２で、エンジンファーム５５に対し、リブート準備要求を行う。そして、ステップＳ１５１３で、エンジンファーム５５からリブート準備完了を通知されると、ＳＣＳ３８は、強制リブートを行い、プログラム更新処理を終了する。
【０２２５】
　以上のように、ＳＣＳ３８は、プロセスに割り当てられたメモリ領域を解放し、ＯＵＳ４３は、プログラムを更新する更新プログラムを、ＮＣＳ３１を用いてダウンロードし、ＳＣＳ３８により解放されたメモリ領域に展開する。
【０２２６】
　次に、ＯＵＳ４３と、ＳＣＳ３８の処理の詳細を、フローチャートを用いて説明する。
【０２２７】
　最初に、ＯＵＳ４３の処理について、図３３のフローチャートを用いて説明する。ステップＳ１６０１で、ＯＵＳ４３は、ＮＣＳ３１からプログラム更新開始を通知される。次のステップＳ１６０２で、ＯＵＳ４３は、受信したプログラム更新開始通知自体が正常なデータであるかどうかをチェックするためのＳＵＭ値のチェックを実行し、プログラム更新開始通知が正常データでない場合は、ステップＳ１６０３で、プログラムの更新処理を終了する。
【０２２８】
　ステップＳ１６０２で、プログラム更新開始通知が正常なデータであると判定された場合、ＯＵＳ４３は、ステップＳ１６０４で、ＳＣＳ３８にアプリケーションをオフライン状態にさせ、消滅させるためのアプリオフライン要求を通知する。アプリオフライン要求の応答であるアプリオフライン確定をステップＳ１６０５で受信すると、ＯＵＳ４３は、ステップＳ１６０６で、アプリオフラインが実行完了したかどうか判断する。このステップＳ１６０６の処理は、アプリオフラインが確定しなかったことを通知された場合に、ステップＳ１６０３で、プログラムの更新処理を終了するための処理である。
【０２２９】
　ステップＳ１６０６で、ＯＵＳ４３は、アプリオフラインの実行が完了したと判断すると、ステップＳ１６０７で、アプリケーションを消滅することにより確保されたメモリ領域に、更新プログラムを展開することが可能かどうか判断する。
【０２３０】
　更新プログラムを展開することが不可能な場合、ＯＵＳ４３は、ステップＳ１６０９で、確保されたメモリ領域をクリアする。このクリアとは、メモリ領域をプログラムの更新を実行しない状態に設定することを意味する。そして、ＯＵＳ４３は、ステップＳ１６１０でＳＣＳ３８にプログラム更新開始要求であるリモートＲＯＭ更新開始要求を通知し、処理を終了する。なお、この場合、メモリ領域がプログラムの更新を実行しない状態に設定されているため、プログラムの更新処理は実行されない。
【０２３１】
　ステップＳ１６０７で、ＯＵＳ４３は、更新プログラムを展開することが可能であると判断すると、ステップＳ１６０８で、更新プログラムをメモリ領域に展開する。そして、ＯＵＳ４３は、ステップＳ１６１０でＳＣＳ３８にプログラム更新開始要求であるリモートＲＯＭ更新開始要求を通知し、処理を終了する。
【０２３２】
　次に、ＳＣＳ３８の処理について、図３４のフローチャートを用いて説明する。ステップＳ１７０１で、ＳＣＳ３８は、ＯＵＳ４３からのアプリオフライン要求を受信する。アプリオフライン要求を受信したＳＣＳ３８は、ステップＳ１７０２で、各アプリケーションにアプリオフライン移行要求を通知する。
【０２３３】
　次のステップＳ１７０３で、ＳＣＳ３８は、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）ではなかった場合、ステップＳ１７０４で、各アプリケーションに、アプリオフライン解除を通知する。これにより、アプリケーションは、制限されていた処理の実行が可能となる。次に、ＳＣＳ３８は、ステップＳ１７０５でアプリケーションがオフラインに移行しなかったことをＯＵＳ４３に通知し、処理を終了する。
【０２３４】
　ステップＳ１７０３で、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）である場合、ＳＣＳ３８は、ステップＳ１７０６で、アプリケーションを消滅させる。そして、ステップＳ１７０７で、ＳＣＳ３８は、ＯＵＳ４３にアプリオフライン確定を通知する。
【０２３５】
　次に、ＳＣＳ３８は、ＯＵＳ４３からステップＳ１７０８で、プログラム更新開始要求であるリモートＲＯＭ更新開始要求を受信すると、ステップＳ１７０９で、オペレーションパネル５２上のキー・タッチパネル操作イベントをマスクしてキーイベントのマスクを行う。
【０２３６】
　このように、プログラムを更新する際に、オペレーションパネル５２を無効化することにより、更新処理を迅速に行うことができるとともに、制限されていない機能は実行することができるため、例えば重要な機能をプログラム更新中にもかかわらず実行することができる。
【０２３７】
　次に、ＳＣＳ３８は、ステップＳ１７１０で、プログラム更新処理を実行し、融合機１を再起動させるためにステップＳ１７１１でリブートを実行し処理を終了する。
　次に、上記ステップＳ１７０６のプロセスを消滅する処理の詳細を図３５のフローチャートを用いて説明する。ステップＳ１８０１で、ＳＣＳ３８は、ＯＳの中核部分であるカーネルに用意されたプロセス消滅エラー検知処理をマスクする。そして、ＳＣＳ３８は、ステップＳ１８０２でプロセス間通信のエラー処理を停止する。そして、ステップＳ１８０３で、ＳＣＳ３８は、アプリケーションのプロセスを消滅する。次に、ＳＣＳ３８は、ステップＳ１８０４でＳＣＳ３８が記憶しているアプリケーションの登録情報を抹消し処理を終了する。
【０２３８】
　次に、上記処理とは別に、ＯＵＳ４３がダウンロードする更新プログラムのサイズに応じてアプリケーションを消滅する処理について、シーケンス図とフローチャートを用いて説明する。
【０２３９】
　図３６は、ダウンロードする更新プログラムのサイズに応じてアプリケーションを消滅する処理を示すシーケンス図である。
【０２４０】
　ステップＳ１９０１で、ＮＣＳ３１は、プログラム更新開始をネットワークから通知され、ステップＳ１９０２で、ＯＵＳ４３にプログラムの更新開始を示すプログラム更新開始を通知する。プログラム更新開始を通知されたＯＵＳ４３は、ステップＳ１９０３で、ＳＣＳ３８にアプリオフライン要求を通知する。
【０２４１】
　アプリオフライン要求をＯＵＳ４３から通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２にステップＳ１９０４とステップＳ１９０５でアプリオフライン移行要求を通知する。
【０２４２】
　アプリオフライン移行要求を通知されたアプリＡ８１、アプリＢ８２は、それぞれオフライン状態になることが可能である場合、ＳＣＳ３８に対し、アプリオフライン応答（ＯＫ）を通知する。このシーケンス図の場合、アプリＡ８１、アプリＢ８２ともにオフライン状態になることが可能であるため、アプリＡ８１、アプリＢ８２は、ステップＳ１９０６、ステップＳ１９０７で、それぞれアプリオフライン応答（ＯＫ）をＳＣＳ３８に対し通知している。
【０２４３】
　アプリオフライン応答（ＯＫ）を通知されたＳＣＳ３８は、ステップＳ１９０８で、ＯＵＳ４３にアプリケーションがオフライン状態になったことを示すアプリオフライン確定を通知する。
【０２４４】
　アプリケーションのオフライン確定を通知されたＯＵＳ４３は、ステップＳ１９０９でＳＣＳ３８に処理の実行を制限されたアプリケーションが使用するメモリ領域を解放させるためにメモリ解放要求を通知する。なお、このメモリ解放要求で解放要求されているメモリ領域は、変動エリアである。
【０２４５】
　メモリ解放要求を通知されたＳＣＳ３８は、アプリＡ８１と、アプリＢ８２に対し、ステップＳ１９１０とステップＳ１９１１でメモリ解放要求を通知する。メモリ解放要求を通知されたアプリＡ８１、アプリＢ８２は、それぞれメモリ領域を解放し、ステップＳ１９１２、ステップＳ１９１３で、ＳＣＳ３８に対してメモリ解放完了応答を通知する。
【０２４６】
　メモリ解放完了応答を通知されたＳＣＳ３８は、ステップＳ１９１４でＯＵＳ４３にメモリの解放が完了したことを示すメモリ解放完了応答を通知する。
【０２４７】
　メモリ解放完了応答を通知されたＯＵＳ４３は、メモリの空きをチェックするメモリサイズチェックを行う。そして、この時点では、ダウンロードする更新プログラムを展開する分のメモリの空きがまだ得られていないので、ＯＵＳ４３は、ステップＳ１９１５で、ＳＣＳ３８に対し、アプリケーションを構成するプロセスを消滅させるプロセスＫＩＬＬ要求を通知する。
【０２４８】
　プロセスＫＩＬＬ要求を通知されたＳＣＳ３８は、まずアプリＢ８２を消滅する。そして、ステップＳ１９１６で、ＳＣＳ３８は、ＯＵＳ４３に対し、プロセスＫＩＬＬ完了応答を行う。
【０２４９】
　そこで再びＯＵＳ４３は、メモリサイズのチェックを行う。しかし、ダウンロードする更新プログラムを展開する分のメモリの空きがまだ得られていないので、ＯＵＳ４３は、ステップＳ１９１７で、ＳＣＳ３８に再びプロセスＫＩＬＬ要求を通知する。
【０２５０】
　再びプロセスＫＩＬＬ要求を通知されたＳＣＳ３８は、アプリＡ８１を消滅する。そして、ステップＳ１９１８で、ＳＣＳ３８は、ＯＵＳ４３にプロセスＫＩＬＬ完了応答を通知する。
【０２５１】
　プロセスＫＩＬＬ完了応答を通知されたＯＵＳ４３は、メモリサイズのチェックを行う。アプリＡ８１の消滅により、ダウンロードする更新プログラムを展開する分の空きが得られたので、ＯＵＳ４３は、更新プログラムをダウンロードし、展開する。
【０２５２】
　そして、ＯＵＳ４３は、ステップＳ１９１９で、リモートＲＯＭ更新開始要求をＳＣＳ３８に通知する。リモートＲＯＭ更新開始要求を通知されたＳＣＳ３８は、キーイベントのマスクを行う。
【０２５３】
　次に、ＳＣＳ３８は、プログラムの更新処理を行うために、ステップＳ１９２０で、ダウンロードされた更新プログラムをエンジンファーム５５に送信する。エンジンファーム５５は、プログラムの更新を行い、その結果をステップＳ１９２１でＳＣＳ３８に通知する。
【０２５４】
　ＳＣＳ３８は、プログラムを更新した結果が通知されると、ステップＳ１９２２で、エンジンファーム５５に対し、リブート準備要求を行う。そして、ステップＳ１９２３で、エンジンファーム５５からリブート準備完了を通知されると、ＳＣＳ３８は、強制リブートを行い、プログラム更新処理は終了する。
【０２５５】
　このように、ＳＣＳ３８はダウンロードする更新プログラムのサイズに応じて、プロセスに割り当てられたメモリ領域を解放する。
【０２５６】
　次に、上述した処理におけるＯＵＳ４３、ＳＣＳ３８の処理の詳細を、フローチャートを用いて説明する。
【０２５７】
　最初に、ＯＵＳ４３の処理について、図３７のフローチャートを用いて説明する。ステップＳ２００１で、ＯＵＳ４３は、ＮＣＳ３１からプログラム更新開始通知を受信する。次のステップＳ２００２で、ＯＵＳ４３は、受信したプログラム更新開始通知自体が正常なデータであるかどうかをチェックするためのＳＵＭ値のチェックを実行し、プログラム更新開始通知が正常データでない場合は、ステップＳ２００３で、プログラムの更新処理を終了する。
【０２５８】
　ステップＳ２００２で、プログラム更新開始通知が正常なデータであると判断された場合、ＯＵＳ４３は、ステップＳ２００４で、ＳＣＳ３８にアプリオフライン要求を通知する。ステップＳ２００５で、ＯＵＳ４３は、アプリオフライン要求の応答であるアプリオフライン確定を受信すると、ステップＳ２００６で、アプリオフラインが実行完了したかどうか判断する。
【０２５９】
　ステップＳ２００６で、ＯＵＳ４３が、アプリオフラインが確定しなかったと判断した場合、ステップＳ２００３で、プログラムの更新処理を終了する。
【０２６０】
　ステップＳ２００６で、ＯＵＳ４３が、アプリオフラインの実行が完了したと判断した場合、ステップＳ２００７で、ＳＣＳ３８にメモリ解放要求を通知する。そして、ステップＳ２００８で、ＯＵＳ４３は、ＳＣＳ３８からメモリ解放完了を受信するとステップＳ２００９で、更新プログラムの展開に必要なメモリ領域が確保できたかどうか判断する。
【０２６１】
　ＯＵＳ４３が、メモリ領域が確保できなかったと判断した場合、ＯＵＳ４３は、ステップＳ２０１０で、規定の優先順にプロセスを消滅することが可能かどうか判断する。
【０２６２】
　なお、規定の優先順とは、予め定められた順番であり、図３８に示されるように、例えば融合機１におけるプロセスの優先度に応じて定めておいた「デフォルト」の順番か、プロセスに割り当てられたメモリ領域のサイズである「メモリサイズ」の大きい順番か、「共有メモリ」（図４参照）におけるプロセスに割り当てられたメモリ領域の先頭アドレスの位置で定まる順番などである。
【０２６３】
　このように、プロセスに割り当てられたメモリ領域をＳＣＳ３８が解放する順番を予め定めておくことにより、例えば「デフォルト」で定められた使用頻度が多く優先度が高いアプリケーションに割り当てられたメモリ領域は、最後まで解放されないため、プログラム更新中にも、そのアプリケーションを実行することが可能となる。
【０２６４】
　また、ＳＣＳ３８が解放する順番として、アプリケーションを消滅したのちに、アプリケーションが共通で使用することが多いコントロールサービス層９のモジュールを消滅しても良い。
【０２６５】
　上記いずれか順番でプロセスを消滅することが可能であれば、ＯＵＳ４３は、ステップＳ２０１１で、ＳＣＳ３８に対し、プロセスＫＩＬＬ要求を通知する。そして、ＯＵＳ４３は、ステップＳ２０１２で、ＳＣＳ３８からプロセスＫＩＬＬ完了を受信すると、再びステップＳ２００９の判断を行う。
【０２６６】
　ステップＳ２０１０の処理に戻り、ＯＵＳ４３が、規定の優先順でプロセスを消滅することが不可能であると判断した場合、ステップＳ２０１５で、ＯＵＳ４３はリブートを実行するかどうか判断する。このステップＳ２０１５の処理は、１回でもアプリケーションを消滅させたかどうかにより、リブートを実行するかどうか判断する処理である。
【０２６７】
　ＯＵＳ４３が、１回もアプリケーションを消滅していなければ、ステップＳ２０１７で、ＯＵＳ４３は、ＳＣＳ３８にアプリオフライン解除を通知し、処理を終了する。これにより、アプリケーションは、制限されていた処理の実行が可能な状態に復帰する。
【０２６８】
　ＯＵＳ４３が、１回以上アプリケーションを消滅していれば、ステップＳ２０１６で、ＯＵＳ４３は、ＳＣＳ３８にリブート要求を通知し、処理を終了する。
【０２６９】
　ステップＳ２００９の処理に戻り、ＯＵＳ４３が更新プログラムの展開に必要なメモリ領域が確保できた場合、ＯＵＳ４３は、ステップＳ２０１３で更新プログラムをメモリ領域に展開する。そして、ＯＵＳ４３は、ステップＳ２０１４でＳＣＳ３８にリモートＲＯＭ更新開始要求を通知し、処理を終了する。
【０２７０】
　次に、ＳＣＳ３８の処理について、図３９のフローチャートを用いて説明する。ステップＳ２１０１で、ＳＣＳ３８は、ＯＵＳ４３からアプリオフライン要求を受信する。アプリオフライン要求を受信したＳＣＳ３８は、ステップＳ２１０２で、各アプリケーションにアプリオフライン移行を要求する。
【０２７１】
　次のステップＳ２１０３で、ＳＣＳ３８は、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）ではなかった場合、ステップＳ２１０４で、各アプリケーションに、アプリオフライン解除を通知する。そして、ＳＣＳ３８は、ステップＳ２１０５で、ＯＵＳ４３にアプリケーションがオフラインに移行しなかったことを通知し、処理を終了する。
【０２７２】
　ステップＳ２１０３で、全てのアプリケーションからの応答が、アプリオフライン応答（ＯＫ）である場合、ＳＣＳ３８は、ステップＳ２１０６で、ＯＵＳ４３に対し、アプリオフライン確定を通知する。
【０２７３】
　次に、ＳＣＳ３８は、ステップＳ２１０７で、ＯＵＳ４３からメモリ解放要求を受信すると、ステップＳ２１０８でアプリケーションにメモリの解放処理を実行させ、ステップＳ２１０９でＯＵＳ４３にメモリ解放完了を通知する。
【０２７４】
　ＳＣＳ３８は、ＯＵＳ４３にメモリ解放完了を通知すると、ＯＵＳ４３の要求により処理が分岐する。まず、ＳＣＳ３８がＯＵＳ４３からプロセスＫＩＬＬ要求を通知された場合、ＳＣＳ３８は、ステップＳ２１１０からステップＳ２１１１に分岐し、アプリケーションを消滅する。そして、ＳＣＳ３８はステップＳ２１１２でＯＵＳ４３にプロセスＫＩＬＬ完了を通知し、再びステップＳ２１１０の処理を行う。
【０２７５】
　ステップＳ２１１０で、ＳＣＳ３８がプロセスＫＩＬＬ要求を通知されなかった場合、ＳＣＳ３８は、ステップＳ２１１０からステップＳ２１１３に分岐し、ＯＵＳ４３からリモートＲＯＭ更新開始要求を通知されたかどうか判断する。
【０２７６】
　ステップＳ２１１３でＳＣＳ３８がリモートＲＯＭ更新開始要求を通知された場合、ＳＣＳ３８は、ステップＳ２１１４で、キー・タッチパネル操作イベントをマスクしてキーイベントのマスクを行う。そして、ＳＣＳ３８は、ステップＳ２１１５プログラム更新処理を実行する。また、次のステップＳ２１１６で、ダウンロードの実行を開始したことやプログラムの更新状況などを、ＲＳ４２（図１参照）からネットワークを通してサービスセンタなどに通知し、ステップＳ２１１７でリブートを行い処理を終了する。
【０２７７】
　なお、サービスセンタとは、例えば融合機１の保守や点検を行うために製造元に備えられたサーバや、更新プログラムの配布元に備えられたサーバなどである。また、各アプリケーションやモジュールの状態情報をサービスセンタに送信してもよいし、サービスセンタではそのログを記録しておいてもよい。
【０２７８】
　ステップＳ２１１３で、ＳＣＳ３８がリモートＲＯＭ更新開始要求を受信しなかった場合、ＳＣＳ３８は、ステップＳ２１１８で、ＯＵＳ４３からリブート要求を受信したかどうか判断する。
【０２７９】
　ＯＵＳ４３からの通知がリブート要求ではない場合、ＳＣＳ３８は、再びステップＳ２１１０の処理を行う。ＯＵＳ４３からの通知がリブート要求の場合、ＳＣＳ３８は、ステップＳ２１１９でダウンロードの実行が失敗し、リブート処理を行うことをＲＳ４２からネットワークを通してサービスセンタなどに通知し、ステップＳ２１１７でリブートを行い、処理を終了する。
【図面の簡単な説明】
【０２８０】
【図１】本発明による融合機の一実施例の構成図である。
【図２】本発明による融合機の一実施例のハードウェア構成図である。
【図３】メモリマップを示す図である。
【図４】共有メモリのメモリマップを示す図である。
【図５】プロセス稼動状況を示す図である。
【図６】プロセスのオフライン状況を示す図である。
【図７】実行を制限された処理を示す図である。
【図８】解放されたメモリのメモリマップを示す図である。
【図９】プロセス消滅状況を示す図である。
【図１０】メモリマップを示す図である。
【図１１】エラーハンドラの登録の様子を示す図である。
【図１２】プロセスの消滅によるエラーを示す図である。
【図１３】エラーを回避した様子を示す図である。
【図１４】プログラムを更新する処理を示すシーケンス図である。
【図１５】ＯＵＳの処理を示すフローチャートである。
【図１６】ＳＣＳの処理を示すフローチャートである。
【図１７】アプリケーションの処理を示すフローチャートである。
【図１８】オフライン状態に移行する処理を示すフローチャートである。
【図１９】オフライン状態における処理を示すフローチャートである。
【図２０】スキャナアプリの内部構造の概略図である。
【図２１】スキャナアプリのオフライン処理イベントシーケンス図である。
【図２２】スキャナアプリのオフライン解除イベントシーケンス図である。
【図２３】スキャナアプリのオフライン状態説明図である。
【図２４】オフラインＮＧ時の処理を示すシーケンス図である。
【図２５】オフラインＮＧ時の処理を示すシーケンス図である。
【図２６】タイムアウト処理を示すシーケンス図である。
【図２７】ＳＣＳの処理を示すフローチャートである。
【図２８】ＳＣＳの処理を示すフローチャートである。
【図２９】ＩＭＨの処理を示すシーケンス図である。
【図３０】ＩＭＨの処理を示すフローチャートである。
【図３１】記憶領域情報を示す図である。
【図３２】プログラムを更新する処理を示すシーケンス図である。
【図３３】ＯＵＳの処理を示すフローチャートである。
【図３４】ＳＣＳの処理を示すフローチャートである。
【図３５】プロセスの消滅の処理を示すフローチャートである。
【図３６】プログラムを更新する処理を示すシーケンス図である。
【図３７】ＯＵＳの処理を示すフローチャートである。
【図３８】消滅順番を示す図である。
【図３９】ＳＣＳの処理を示すフローチャートである。
【符号の説明】
【０２８１】
　１　融合機
　２　ソフトウェア群
　３　融合機起動部
　４　ハードウェア資源
　５　アプリケーション層
　６　プラットホーム層
　９　コントロールサービス層
　１０　ハンドラ層
　１１　スキャナ
　１２　プロッタ
　１３　その他のハードウェアリソース
　２１　プリンタアプリ
　２２　コピーアプリ
　２３　ファックスアプリ
　２４　スキャナアプリ
　２５　ネットファイルアプリ
　３１　ネットワークコントロールサービス（ＮＣＳ）
　３２　デリバリーコントロールサービス（ＤＣＳ）
　３３　オペレーションパネルコントロールサービス（ＯＣＳ）
　３４　ファックスコントロールサービス（ＦＣＳ）
　３５　エンジンコントロールサービス（ＥＣＳ）
　３６　メモリコントロールサービス（ＭＣＳ）
　３７　ユーザインフォメーションコントロールサービス（ＵＣＳ）
　３８　システムコントロールサービス（ＳＣＳ）
　３９　システムリソースマネージャ（ＳＲＭ）
　４０　ファックスコントロールユニットハンドラ（ＦＣＵＨ）
　４１　イメージメモリハンドラ（ＩＭＨ）
　４２　リモートサービス（ＲＳ）
　４３　オンデマンドアップデートサービス（ＯＵＳ）
　５２　オペレーションパネル
　５３　アプリケーションプログラムインターフェース（ＡＰＩ）
　５４　エンジンＩ／Ｆ
　５５　エンジンファーム
　６０　コントローラボード
　６１　ＣＰＵ
　６２　ノースブリッジ（ＮＢ）
　６３　システムメモリ（ＭＥＭ−Ｐ）
　６４　ローカルメモリ（ＭＥＭ−Ｃ）
　６５　ハードディスク装置（ＨＤＤ）
　６６　ＡＳＩＣ
　６７　ＡＧＰ（Accelerated Graphics
Port）
　６８　ファックスコントロールユニット（ＦＣＵ）
　６９　Ｇ３対応ユニット
　７０　Ｇ４対応ユニット
　７１、７２、７３、７４、７８　メモリマップ
　７５　ＶＭ
　７９　エンジン
　８０　フラッシュメモリ
　８１　アプリＡ
　８２　アプリＢ
　８３　配信プロセス
　８４　ＴＷＡＩＮプロセス
　８５　ＳＹＳＯＰプロセス
　１７３　サウスブリッジ（ＳＢ）
　１７４　ＮＩＣ
　１７５　ＵＳＢデバイス
　１７６　ＩＥＥＥ１３９４デバイス
　１７７　セントロニクスデバイス
　２０１　ＳＣＳプロセス
　２０２　ＳＣＳメインタスク
　２０３　アプリエラーハンドル
　２０４　アプリプロセス
　２０５　アプリメインタスク
　２０６　アプリエラーハンドラ 
【図１】
2004114674.tif 000003
【図２】
2004114674.tif 000004
【図３】
2004114674.tif 000005
【図４】
2004114674.tif 000006
【図５】
2004114674.tif 000007
【図６】
2004114674.tif 000008
【図７】
2004114674.tif 000009
【図８】
2004114674.tif 000010
【図９】
2004114674.tif 000011
【図１０】
2004114674.tif 000012
【図１１】
2004114674.tif 000013
【図１２】
2004114674.tif 000014
【図１３】
2004114674.tif 000015
【図１４】
2004114674.tif 000016
【図１５】
2004114674.tif 000017
【図１６】
2004114674.tif 000018
【図１７】
2004114674.tif 000019
【図１８】
2004114674.tif 000020
【図１９】
2004114674.tif 000021
【図２０】
2004114674.tif 000022
【図２１】
2004114674.tif 000023
【図２２】
2004114674.tif 000024
【図２３】
2004114674.tif 000025
【図２４】
2004114674.tif 000026
【図２５】
2004114674.tif 000027
【図２６】
2004114674.tif 000028
【図２７】
2004114674.tif 000029
【図２８】
2004114674.tif 000030
【図２９】
2004114674.tif 000031
【図３０】
2004114674.tif 000032
【図３１】
2004114674.tif 000033
【図３２】
2004114674.tif 000034
【図３３】
2004114674.tif 000035
【図３４】
2004114674.tif 000036
【図３５】
2004114674.tif 000037
【図３６】
2004114674.tif 000038
【図３７】
2004114674.tif 000039
【図３８】
2004114674.tif 000040
【図３９】
2004114674.tif 000041