(57)【要約】【課題】外部から受信した受信ファイルをより確実に情報処理装置上に格納する。【解決手段】情報処理装置は、ファイルを格納するファイル格納部を有している。この情報処理装置は、ファイル格納部に新たに格納すべきファイルを外部から受信するファイル受信部と、受信ファイルをファイル格納部に格納する格納処理部とを備えている。ファイル格納部には、情報処理装置により使用され、受信ファイルに関連付けられている関連ファイルが格納されている。格納処理部による受信ファイルの前記ファイル格納部への格納に先だって、ファイル格納部の空容量を拡大する処理が行われる。空容量を拡大する処理は、関連ファイルに関連付けられた選択情報に応じて、ファイル格納部の空容量を拡大するための互いに異なる複数のアルゴリズムのうちから選択されたアルゴリズムに従って行われる。【選択図】図２
2008071031.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置であって、
前記情報処理装置上で使用されるファイルを格納するファイル格納部と、
前記ファイル格納部に新たに格納すべきファイルを外部から受信するファイル受信部と、
前記ファイル受信部により受信された受信ファイルを前記ファイル格納部に格納する格納処理部と、
前記格納処理部による前記受信ファイルの前記ファイル格納部への格納に先だって、前記ファイル格納部の空容量を拡大する処理を行う空容量拡大処理部と、
を備え、
前記ファイル格納部には、前記情報処理装置により使用され、前記受信ファイルに関連付けられている関連ファイルが格納されており、
前記空容量拡大処理部は、前記関連ファイルに関連付けられた選択情報に応じて、前記ファイル格納部の空容量を拡大するための互いに異なる複数のアルゴリズムのうちから選択されたアルゴリズムに従って前記空容量を拡大する処理を実行する、
情報処理装置。
【請求項２】
請求項１記載の情報処理装置であって、
前記関連ファイルは、前記情報処理装置上で稼働するプログラムであり、
前記受信ファイルは、前記ファイル格納部に格納された前記プログラムにより使用されるデータファイル、または、前記ファイル格納部に格納された前記プログラムを更新するために使用されるファイルである、
情報処理装置。
【請求項３】
請求項１または２記載の情報処理装置であって、
前記空容量を拡大する処理は、ファイル格納部の空容量を拡大するための１つ以上の基本処理を適用順序に従って順次に実行することにより実行され、
前記アルゴリズムの選択は、前記適用順序を変更することにより行われる、
情報処理装置。
【請求項４】
請求項３記載の情報処理装置であって、
前記空容量拡大処理部は、前記１つ以上の基本処理のうちの１つの基本処理を前記適用順序に従って順次に実行することによって前記ファイル格納部の空容量が十分大きくなった場合には、次の基本処理の実行を中止する、
情報処理装置。
【請求項５】
請求項１ないし４のいずれか記載の情報処理装置であって、
前記選択情報は、前記ファイル格納部に予め格納された属性情報を含む、情報処理装置。
【請求項６】
請求項１ないし５のいずれか記載の情報処理装置であって、さらに、
前記格納処理部による前記受信ファイルの前記ファイル格納部への格納に先だって、外部から前記空容量拡大処理部による前記空容量を拡大する処理を制御する制御情報を受信する制御情報受信部を備え、
前記選択情報は、前記制御情報を含む、情報処理装置。
【請求項７】
情報処理装置上で使用されるファイルをファイル格納部に格納するファイル格納方法であって、
（ａ）前記ファイル格納部に新たに格納すべきファイルを外部から受信する工程と、
（ｂ）前記工程（ａ）において受信された受信ファイルを前記ファイル格納部に格納する工程と、
（ｃ）前記工程（ｂ）における前記受信ファイルの前記ファイル格納部への格納に先だって、前記ファイル格納部の空容量を拡大する処理を行う工程と、
を備え、
前記ファイル格納部には、前記情報処理装置により使用され、前記受信ファイルに関連付けられている関連ファイルが格納されており、
前記工程（ｃ）は、前記関連ファイルに関連付けられた選択情報に応じて、前記ファイル格納部の空容量を拡大するための互いに異なる複数のアルゴリズムのうちから選択されたアルゴリズムに従って前記空容量を拡大する処理を実行する工程を含む、
ファイル格納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ファイルを情報処理装置に格納する技術に関する。
【背景技術】
【０００２】
ネットワークプリンタ等のネットワークデバイスでは、その機能を実現するためのプログラム（「ファームウェア」と呼ばれる）がフラッシュメモリ等の不揮発性メモリに格納される。ファームウェアは、ネットワークデバイスの機能の向上等を図るため、必要に応じて更新される。ファームウェアの更新は、通常、パーソナルコンピュータ等のネットワークに接続された端末から、更新のためのファイル（更新ファイル）がネットワークを介してネットワークデバイスに送信される。ネットワークデバイスのファームウェアは、この更新ファイルを用いて更新される。
【０００３】
【特許文献１】特開２０００−２４２５０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
このとき、ネットワークデバイスの不揮発性メモリには、更新前のファームウェアと更新ファイルとが格納される。そのため、不揮発性メモリに十分な空容量がなく、更新ファイルの格納ができない場合等、ファームウェアの更新ができない場合が存在する。また、不揮発性メモリの空容量を確保するために不揮発性メモリ上のデータを削除すると、削除したデータによってはファームウェアが動作し得なくなる等、ファームウェアの稼働に障害を与えるおそれがある。この問題は、ネットワークデバイスのファームウェア更新の場合の他、ネットワークやその他の通信チャンネルを介して外部からファイルを受信し、受信ファイルを格納する情報処理装置一般に共通する。
【０００５】
本発明は、上述した従来の課題を解決するためになされたものであり、外部から受信した受信ファイルをより確実に情報処理装置上に格納するとともに、情報処理装置による格納されたファイルの使用に対する障害の発生を抑制することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的の少なくとも一部を達成するために、本発明の情報処理装置は、前記情報処理装置上で使用されるファイルを格納するファイル格納部と、前記ファイル格納部に新たに格納すべきファイルを外部から受信するファイル受信部と、前記ファイル受信部により受信された受信ファイルを前記ファイル格納部に格納する格納処理部と、前記格納処理部による前記受信ファイルの前記ファイル格納部への格納に先だって、前記ファイル格納部の空容量を拡大する処理を行う空容量拡大処理部と、を備え、前記ファイル格納部には、前記情報処理装置により使用され、前記受信ファイルに関連付けられている関連ファイルが格納されており、前記空容量拡大処理部は、前記関連ファイルに関連付けられた選択情報に応じて、前記ファイル格納部の空容量を拡大するための互いに異なる複数のアルゴリズムのうちから選択されたアルゴリズムに従って前記空容量を拡大する処理を実行することを特徴とする。
【０００７】
この構成によれば、情報処理装置は、受信したファイルをファイル格納部に格納するに先だって、ファイル格納部の空容量を拡大することができる。ファイル格納部の空容量を拡大することにより、情報処理装置は受信ファイルをより確実にファイル格納部内に格納することが可能となる。また、この空容量を拡大する処理は、ファイル格納部に格納された関連ファイルに関連付けられた選択情報に応じて選択された方法により実行される。そのため、情報処理装置による関連ファイルの使用に対する障害の発生を抑制することが可能となる。
【０００８】
前記関連ファイルは、前記情報処理装置上で稼働するプログラムであり、前記受信ファイルは、前記ファイル格納部に格納された前記プログラムにより使用されるデータファイル、または、前記ファイル格納部に格納された前記プログラムを更新するために使用されるファイルであるものとしても良い。
【０００９】
この構成によれば、ファイル格納部に格納されたプログラムに適応した方法によりファイル格納部の空容量を拡大することができる。そのため、空容量を拡大する処理により、プログラムの稼働に支障が生じるおそれをより低減することが可能となる。
【００１０】
前記空容量を拡大する処理は、ファイル格納部の空容量を拡大するための１つ以上の基本処理を適用順序に従って順次に実行することにより実行され、前記アルゴリズムの選択は、前記適用順序を変更することにより行われるものとしても良い。
【００１１】
この構成によれば、基本処理を適用順序に従って順次実行することにより、よりファイル格納部の空容量を大きくすることができる。そのため、情報処理装置は、より確実に受信ファイルをファイル格納部に格納することが可能となる。
【００１２】
前記空容量拡大処理部は、前記１つ以上の基本処理のうちの１つの基本処理を前記適用順序に従って順次に実行することによって前記ファイル格納部の空容量が十分大きくなった場合には、次の基本処理の実行を中止するものとしても良い。
【００１３】
ファイル格納部の空容量が十分大きくなった場合に、基本処理の実行を中止することにより、少なくとも一部の基本処理の実行を省略することができる。
【００１４】
前記選択情報は、前記ファイル格納部に予め格納された属性情報を含む、情報処理装置。
【００１５】
この構成によれば、ファイル格納部に格納された関連ファイルに対応して予めファイル格納部に格納された属性情報に応じてアルゴリズムを選択することにより、関連ファイルにより適合したアルゴリズムを選択することが可能となる。
【００１６】
前記情報処理装置は、さらに、前記格納処理部による前記受信ファイルの前記ファイル格納部への格納に先だって、外部から前記空容量拡大処理部による前記空容量を拡大する処理を制御する制御情報を受信する制御情報受信部を備え、前記選択情報は、前記制御情報を含むものとしても良い。
【００１７】
この構成によれば、アルゴリズムの選択に外部から供給される制御情報が反映される。そのため、ファイルの送信側から選択されるアルゴリズムを変更することが可能となる。
【００１８】
なお、本発明は、種々の態様で実現することが可能である。例えば、情報処理装置および情報処理装置におけるファイルの格納方法、情報処理装置の制御装置および制御方法、これらの情報処理装置、情報処理装置の制御装置と制御方法および情報処理装置におけるファイルの格納方法の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、そのコンピュータプログラムを含み搬送波内に具現化されたデータ信号、等の態様で実現することができる。
【発明を実施するための最良の形態】
【００１９】
次に、本発明の実施の形態を実施例に基づいて以下の順序で説明する。
Ａ．実施例：
Ｂ．変形例：
【００２０】
Ａ．実施例：
図１は、本発明の一実施例におけるネットワークシステム１０の構成を示す説明図である。このネットワークシステム１０では、プリンタ１００とパーソナルコンピュータ（ＰＣ）２００とが、ローカルエリアネットワーク（ＬＡＮ）を介して互いに接続されている。
【００２１】
プリンタ１００は、中央処理装置（ＣＰＵ）１１０と、ＲＯＭ１２０と、ＲＡＭ１３０と、ネットワークインターフェース（ネットワークＩ／Ｆ）１４０と、プリントエンジン１５０と、フラッシュメモリ１６０と、を備えている。ＣＰＵ１１０は、ＲＯＭ１２０およびフラッシュメモリ１６０に格納されたプログラム（ファームウェア）を実行することにより、プリンタ１００が有する種々の機能を実現する。ＲＡＭ１３０は、ＣＰＵ１１０において実行されるプログラムやＣＰＵ１１０における演算処理結果その他のデータを一時的に格納する。
【００２２】
ＲＯＭ１２０には、ＣＰＵ１１０により実行可能なプログラムであるアプリケーションインストーラ１２２が格納されている。このアプリケーションインストーラ１２２については、後述する。ＲＯＭ１２０には、アプリケーションインストーラ１２２の他、フラッシュメモリ１６０上のファイルを管理するファイル管理プログラム、印刷用フォント（いずれも図示しない）等の種々のプログラムやデータが格納されている。
【００２３】
フラッシュメモリには、ＣＰＵ１１０で実行され、プリンタ１００における印刷処理や課金処理を行うためのプログラム（以下、「アプリケーションプログラム」あるいは単に「アプリケーション」ともよぶ）が格納されたアプリケーションファイル１６２と、アプリケーションにより使用される種々のデータファイル１６４とが格納されている。本実施例では、上述のように、アプリケーションインストーラ１２２をＲＯＭ１２０に格納しているが、アプリケーションインストーラ１２２は、アプリケーションファイル１６２の一部として、フラッシュメモリ１６０に格納することも可能である。
【００２４】
ネットワークインターフェース１４０は、ＬＡＮを介して接続された外部の装置とプリンタ１００との間のデータの授受を行う。プリントエンジン１５０は、与えられた印刷データに応じて印刷を実行する印刷機構である。プリントエンジン１５０に供給される印刷データは、ＣＰＵ１１０が、ネットワークインターフェース１４０を介して接続された外部の装置から供給される受信データを解釈し、色変換やハーフトーン処理を実行することにより生成される。プリントエンジン１５０に供給される印刷データは、図示しないメモリカードスロットに挿入されたメモリカードに格納された画像データや、図示しないＵＳＢコネクタを介して供給される受信データから生成することも可能である。
【００２５】
パーソナルコンピュータ２００は、ＣＰＵ２１０と、ＲＯＭ２２０と、ＲＡＭ２３０と、ネットワークインターフェース２４０と、外部記憶装置２６０と、を備えている。ＣＰＵ２１０は、ＲＯＭ２２０および外部記憶装置２６０に格納された種々のプログラムを実行する。ＲＡＭ２３０は、ＣＰＵ２１０において実行されるプログラムやＣＰＵ２１０における演算処理結果、その他のデータを一時的に格納する。ネットワークインターフェース２４０は、プリンタ１００等のＬＡＮを介して接続された装置とパーソナルコンピュータ２００の間のデータの授受を行う。
【００２６】
外部記憶装置２６０には、アプリケーション更新プログラム２６２が格納されている。アプリケーション更新プログラム２６２は、プリンタ１００のフラッシュメモリ１６０に格納されたアプリケーションファイル１６２をＬＡＮを介して更新するための、パーソナルコンピュータ２００上で稼働するプログラムである。
【００２７】
アプリケーション更新プログラム２６２は、アプリケーション属性２６６と、更新ファイル２６８と、を含んでいる。更新ファイル２６８は、プリンタ１００のアプリケーションファイル１６２を更新するためのファイルである。アプリケーション属性２６６は、更新ファイル２６８により更新された後のアプリケーション（新アプリケーション）に関する種々の情報を含んでいる。アプリケーション更新プログラム２６２は、例えば、パーソナルコンピュータ２００のユーザが所定のＷｅｂページからダウンロードすることにより、外部記憶装置２６０に格納することができる。
【００２８】
更新ファイル２６８は、アプリケーションの更新によりアプリケーションファイル１６２として格納されるファイルを圧縮したファイルである。ここでファイルの圧縮とは、１つ以上の複数のファイルから単一のファイルを生成するとともに、所定の符号化（例えば、ハフマン符号化）を行うことによりファイルに格納されたデータの大きさを低減することをいう。更新ファイル２６８の圧縮形式としては、ｚｉｐ形式やｌｚｈ形式等の種々の圧縮形式とすることができる。
【００２９】
パーソナルコンピュータ２００のユーザの指示により、ＣＰＵ２１０がアプリケーション更新プログラム２６２を実行すると、ＣＰＵ２１０は、ネットワークインターフェース２４０とＬＡＮとを介して、プリンタ１００にアプリケーションファイル１６２の更新を指示するメッセージ（更新要求）を送信する。プリンタ１００は、パーソナルコンピュータ２００から受信した更新要求を、ネットワークインターフェース１４０を介して受信する。プリンタ１００のＣＰＵ１１０は、更新要求の受信に応じて、アプリケーションインストーラ１２２を実行する。
【００３０】
なお、パーソナルコンピュータ２００は、後述するアップデート情報をパーソナルコンピュータ２００がプリンタ１００に送信することによって、プリンタ１００にアプリケーションファイル１６２の更新を指示することができる。例えば、プリンタ１００がＦＴＰ（File Transfer Protocol）サーバ機能を持っている場合、パーソナルコンピュータ２００は、アップデート情報を予め定められたファイル名のファイルとしてプリンタ１００に格納することを要求する。プリンタ１００は、予め定められたファイル名を指定してファイルの格納を要求するメッセージをアプリケーションの更新要求として解釈し、アプリケーションインストーラ１２２を実行することができる。
【００３１】
図２は、プリンタ１００のＣＰＵ１１０がアプリケーションインストーラ１２２を実行することにより、プリンタ１００側で実行されるインストール実行ルーチンを示すフローチャートである。図３は、パーソナルコンピュータ２００のＣＰＵ２１０がアプリケーション更新プログラム２６２を実行することにより、パーソナルコンピュータ２００側で実行されるアプリケーション更新ルーチンを示すフローチャートである。
【００３２】
図３のステップＳ２１０において、パーソナルコンピュータ２００は、アプリケーション更新プログラム２６２に含まれるアプリケーション属性２６６と、パーソナルコンピュータ２００の設定とに基づいてアップデート情報を生成する。そして、生成したアップデート情報をプリンタ１００に送信する。パーソナルコンピュータ２００から送信されたアップデート情報は、図２のステップＳ１１０において、プリンタ１００により受信される。
【００３３】
図４は、外部記憶装置２６０に格納されたアプリケーション属性２６６と、パーソナルコンピュータ２００により生成されたアップデート情報と、の一例を示す表である。なお、図４は、プリンタ１００において課金処理を行うためのアプリケーションのアプリケーション属性とアップデート情報とを示している。
【００３４】
図４（ａ）に示すように、アプリケーション属性は、アプリケーションのファイルサイズに関する情報（ファイルサイズ）と、アプリケーションの特性を表す情報（アプリケーション特性）とを含んでいる。ファイルサイズに関する情報は、アプリケーションの圧縮時におけるファイルサイズ、すなわち、更新ファイルの大きさと、更新ファイルを展開した状態でのアプリケーションのファイルサイズと、を含んでいる。ここで、展開とは、ファイルを圧縮することにより生成されるファイルから、圧縮前の元のファイルを復元することをいう。なお、アプリケーション属性は、アプリケーションに関連付けられた情報であるともいえる。
【００３５】
アプリケーション特性は、「バックアップ」と、「結合ファイル」と、「圧縮ファイル」と、「ファイル削除」との４つの項目を含んでいる。これらの各項目の値は、いずれも２値のデータである。「バックアップ」の項目は、新アプリケーションがさらに更新された場合に、新アプリケーションファイルをバックアップして新アプリケーションがインストールされた状態に戻す必要があるか否かを指定する。「結合ファイル」の項目は、新アプリケーションが結合ファイル（後述する）をそのまま使用可能であるか否かを指定する。「圧縮ファイル」の項目は、新アプリケーションが圧縮ファイル（後述する）をそのまま使用可能であるか否かを指定する。また、「ファイル削除」の項目は、新アプリケーションがさらに更新された場合に、新アプリケーションで使用されていたファイルが削除可能であるか否かを指定する。
【００３６】
図４（ａ）は、更新されるアプリケーションが課金処理を行うためのアプリケーションの例を示している。このような課金処理のためのアプリケーションは、常時稼働する必要がある。そのため、アプリケーションの更新の失敗や、更新後のアプリケーションの不具合等、更新後のアプリケーションが正常に動作しない場合に、更新前の状態に戻すためのバックアップが必要である。そこで、図４（ａ）の例では、「バックアップの項目」はバックアップが必要であることを表す値「要」となっている。
【００３７】
「ファイル削除」の項目は、課金処理に使用されるログファイルが削除されることによる情報の喪失を防ぐため、新アプリケーションで使用されていたファイルが削除不可能であることを表す「不可」となっている。
【００３８】
図４（ａ）の例では、また、「結合ファイル」の項目が「使用可」に設定されており、「圧縮ファイル」の項目が「使用不可」に設定されている。これは、新アプリケーションが、結合ファイルは使用可能であるが、圧縮ファイルは使用不可能であることを表している。
【００３９】
図４（ｂ）は、図４（ａ）に示すアプリケーション属性に基づいて、パーソナルコンピュータ２００が生成したアップデート情報を示している。アップデート情報は、アプリケーション属性に制御情報が付加された情報である。図４（ｂ）の例では、アップデート情報に付加される制御情報は、「ＰＣ待避」の２値の情報である。「ＰＣ待避」の項目は、アプリケーションの更新に際して、プリンタ１００のフラッシュメモリ１６０格納されている更新前のアプリケーション（旧アプリケーション）のファイル１６２がパーソナルコンピュータ２００に待避可能か否かを指定する。
【００４０】
図４（ｂ）の例では、パーソナルコンピュータ２００がＬＡＮから送信されるファイルを、外部記憶装置２６０に格納できないようにセキュリティが設定されている。そのため、パーソナルコンピュータ２００は、プリンタ１００から送信されるファイルを保持できないので「ＰＣ待避」の項目が「不可」に設定されている。このようなセキュリティの設定状態は、パーソナルコンピュータ２００の外部記憶装置２６０に格納されている設定ファイル（レジストリ）を参照することにより取得することができる。ただし、「ＰＣ待避」の項目は、ユーザがパーソナルコンピュータ２００の表示装置（図示しない）上に表示されるダイアログボックスを操作することにより設定するものとしても良い。ただし、セキュリティの設定がプリンタ１００から送信されるファイルを保持できない場合には、ユーザの設定を許容しないものとするのがより好ましい。
【００４１】
なお、パーソナルコンピュータ２００に旧アプリケーションファイルを待避できない場合としては、上述のようにパーソナルコンピュータ２００のセキュリティが設定されている場合の他、パーソナルコンピュータ２００が外部記憶装置を有さない（このようなパーソナルコンピュータ２００は、「シンクライアント」と呼ばれる）場合等がある。この場合、パーソナルコンピュータ２００で実行されるアプリケーション更新プログラム２６２は、外部記憶装置２６０に代えてＬＡＮに接続されたファイルサーバ等に格納される。
【００４２】
図２のステップＳ１２０において、プリンタ１００は、ステップＳ１１０において受信したアップデート情報と、旧アプリケーションのアプリケーション特性と、に基づいて、プリンタ１００のフラッシュメモリ１６０の空容量を拡大するための種々の空容量拡大処理のうち、アプリケーションの更新の際に適用可能な空容量拡大処理を登録する。
【００４３】
図５は、フラッシュメモリ１６０の空容量を拡大するための空容量拡大処理の一例を示す表である。表の第１列は、個々の空容量拡大処理に割り当てられた処理番号を示している。表の第２列は、空容量拡大処理の対象を示している。表の第３列は、空容量拡大処理の内容を示している。ただし、空容量拡大処理は、図５に示される物に限定される物ではない、プリンタ１００が実行可能な空容量拡大処理は、プリンタ１００の構成やアプリケーションインストーラ１２２の動作方法によって、適宜追加あるいは削除される。なお、第２列の処理番号は、説明のために付した番号であり、一般には、空容量拡大処理の個々の処理（基本処理）が特定できればよい。
【００４４】
第１の空容量拡大処理では、データファイルの結合が行われる。具体的には、更新対象のアプリケーションが複数のデータファイルを使用している場合、複数のデータファイルは、１つのデータファイル（結合ファイル）に結合される。そして、旧アプリケーションで使用されていた複数のデータファイルは、フラッシュメモリ１６０から削除される。
【００４５】
通常、データファイルで使用される領域は、フラッシュメモリ１６０を所定の容量毎に分割した領域（クラスタ）を単位として割り当てられる。そのため、データファイルに割り当てらたクラスタのうち、データファイルの最後の部分に相当するクラスタ（最終クラスタ）は、その一部のみがデータの格納に使用され、残りの部分はデータの格納に使用されない不要な領域となる。そのため、ファイルを結合することにより、複数のデータファイルのそれぞれについて生じる不要な領域を低減することにより、フラッシュメモリ１６０の空容量を拡大することが可能となる。
【００４６】
第２の空容量拡大処理では、更新対象のアプリケーションが使用しているデータファイルが圧縮され、圧縮ファイルが生成される。なお、上述のように、データファイルの結合が行われた場合には、結合されたデータファイルが圧縮される。
【００４７】
第３の空容量拡大処理では、旧アプリケーションで使用されていたデータファイルを削除する。なお、上述のように、データファイルの結合が行われた場合には、結合ファイルが削除され、データファイルの圧縮が行われた場合には、圧縮ファイルが削除される。
【００４８】
第４の空容量拡大処理では、旧アプリケーションファイルがパーソナルコンピュータ２００上に待避され、待避の後、旧アプリケーションファイルが削除される。第５の空容量拡大処理では、旧アプリケーションファイルがプリンタ１００が有するＲＡＭ１３０上に待避され、待避の後、旧アプリケーションファイルが削除される。なお、パーソナルコンピュータ２００あるいはＲＡＭ１３０に旧アプリケーションファイルを待避する場合には、旧アプリケーションファイルを圧縮することが好ましい。
【００４９】
第６の空容量拡大処理では、旧アプリケーションファイルが圧縮され、圧縮されたファイルがフラッシュメモリ１６０上に格納される。そして、圧縮ファイルの格納の後、旧アプリケーションファイルが削除される。
【００５０】
第７の空容量拡大処理では、更新ファイルがＲＡＭ１３０に格納される。具体的には、更新ファイルをＲＡＭ１３０に格納するフラグ（ＲＡＭ格納フラグ）がセットされ、プリンタ１００は、後述する書換処理ルーチンにおいて、パーソナルコンピュータ２００から送信される更新ファイルをＲＡＭ１３０に格納する。
【００５１】
図６は、ステップＳ１２０において実行される空容量拡大処理の登録ルーチンを示すフローチャートである。
【００５２】
ステップＳ１２２において、プリンタ１００は、空容量拡大処理の登録テーブル（以下、「処理登録テーブル」とも呼ぶ）を初期化する。処理登録テーブルは、例えば、空容量拡大処理を行うサブルーチン（関数）のエントリポイントを表す値（ポインタ）を個々の要素とするポインタ配列とすることが可能である。この場合、ポインタの配列中のそれぞれの要素に関数が割り当てられていないことを表す「０」を代入することにより、処理登録テーブルの初期化が行われる。
【００５３】
ステップＳ１２４において、プリンタ１００は、旧アプリケーションのアプリケーション特性（以下、「旧アプリケーション特性」とも呼ぶ）を取得する。旧アプリケーション特性は、例えば、フラッシュメモリ１６０に格納されている。なお、旧アプリケーション特性は、旧アプリケーションがプリンタ１００にインストールされた時、すなわち、更新の対象となるアプリケーションが最初にインストール、あるいは、アプリケーションが旧アプリケーションに更新された際に、フラッシュメモリ１６０に格納される。
【００５４】
ステップＳ１２６において、プリンタ１００は、適用処理テーブルを参照することにより、ステップＳ１２４で取得した旧アプリケーション特性と、ステップＳ１１０（図２）で受信したアップデート情報中の制御情報と、に対応する空容量拡大処理の適用順序（適用シーケンス）を取得する。図７は、ステップＳ１２６において、プリンタ１００が参照する適用処理テーブルの一部を示す表である。
【００５５】
図７に示すように、適用処理テーブルは、旧アプリケーション特性のうちの「バックアップ」および「ファイル削除」の２つの項目の値と、制御情報の「ＰＣ待避」の値と、に対して、空容量拡大処理を適用する順序（適用シーケンス）を対応付ける表となっている。空容量拡大のために適用される処理の順序を、その処理番号（図５）で表している。
【００５６】
図６のステップＳ１２８において、プリンタ１００は、適用処理テーブルに登録された適用シーケンスの順に、処理登録テーブルに空容量拡大処理を登録する。図４に示すアプリケーションを更新する場合には、適用シーケンスは太枠で囲まれた「１→２→６」となる。そのため、処理登録テーブルには、以下の順で空容量拡大処理が登録される。
・第１の空容量拡大処理：ファイルの結合
・第２の空容量拡大処理：ファイルの圧縮
・第６の空容量拡大処理：旧アプリケーションファイルの圧縮
【００５７】
なお、上述のように、処理登録テーブルを関数ポインタを個々の要素とするポインタ配列とした場合、処理登録テーブルへの登録は、空容量拡大処理を行う関数のポインタを、適用シーケンス順にポインタ配列の要素に代入することにより行うことができる。ステップＳ１２８における空容量拡大処理の登録の後、制御は、インストール実行ルーチンに戻される。
【００５８】
図２のステップＳ１３０において、プリンタ１００は、アプリケーションの更新を行うため、更新対象のアプリケーションを停止する。なお、複数のアプリケーションがプリンタ１００で稼働している場合、更新対象でないアプリケーションによりフラッシュメモリ１６０が使用される可能性があるので、更新対象のアプリケーションを含む複数のアプリケーションの全てを停止するのがより好ましい。
【００５９】
ステップＳ１４２において、プリンタ１００は、フラッシュメモリ１６０の空容量がアプリケーションの更新のために十分か否かを判断する。具体的には、以下の式（１）と式（２）とのいずれもが満たされた場合にフラッシュメモリ１６０の空容量が十分であると判断される。フラッシュメモリ１６０の空容量が十分であると判断された場合には、制御はステップＳ１６０に移される。一方、フラッシュメモリ１６０の空容量が不十分であると判断された場合には、制御はステップＳ１５０に移される。
【００６０】
ＳFR≧ＳUD      …（１）
ＳFR≧ＳAPN−ＳAPO＋ＳUD      …（２）
【００６１】
ここで、ＳFRは、フラッシュメモリ１６０の空容量である。ＳAPOとＳAPNとは、旧アプリケーションと新アプリケーションとのそれぞれのファイルサイズである。また、ＳUDは、圧縮状態における新アプリケーションファイル、すなわち、更新ファイルの大きさである。なお、更新ファイルがＲＡＭ１３０に格納される場合には、更新ファイルの大きさＳUDは、０として取り扱われる。新アプリケーションのファイルサイズＳAPNと、更新ファイルの大きさＳUDには、いずれも、図２のステップＳ１１０で受信されたアップデート情報（図４）に含まれるファイルサイズに関する情報が用いられる。
【００６２】
図８は、アプリケーション更新に使用されるフラッシュメモリ１６０上の記憶領域（更新使用領域）へのアプリケーションファイル等の格納状況を示す説明図である。なお、アプリケーション更新のより具体的な処理の流れについては、後述する。
【００６３】
図８（ａ）に示すように、アプリケーションの更新には、フラッシュメモリ１６０上の記憶領域のうち、旧アプリケーションファイルＡＰＯが格納されている領域と、空領域と、が使用される。このとき、更新使用領域には、旧アプリケーションファイルＡＰＯのみが格納されている。
【００６４】
図８（ｂ）に示すように、本実施例のアプリケーションの更新では、まず、更新ファイルＵＤがフラッシュメモリ１６０に格納される。図８（ｂ）に示すように、アプリケーションの更新の際には、更新使用領域には、旧アプリケーションファイルＡＰＯと、更新ファイルＵＤとが格納される。そのため、アプリケーションを更新するためには、空容量ＳFRが更新ファイルＵＤのファイルサイズＳUD以上であるという上述の式（１）の条件が満たされる必要がある。更新ファイルＵＤのフラッシュメモリ１６０への格納の後、図８（ｃ）に示すように、旧アプリケーションファイルＡＰＯが削除される。
【００６５】
次に、図８（ｄ）に示すように、新アプリケーションファイルＡＰＮ１，ＡＰＮ２が更新ファイルから展開される。図８の例では、新アプリケーションのファイルサイズが旧アプリケーションのファイルサイズよりも大きくなっている。そのため、図８（ｄ）に示すように、新アプリケーションファイルＡＰＮ１，ＡＰＮ２は、２つの領域に分割されてフラッシュメモリ１６０に格納される。そのため、アプリケーションを更新するためには、空容量ＳFRが、第２の領域に格納された新アプリケーションファイルの一部ＡＰＮ２のサイズ（ＳAPN−ＳAPO）と、更新ファイルＵＤのファイルサイズＳUDと、の和以上であるという上述の式（２）の条件が満たされる必要がある。新アプリケーションファイルＡＰＮ１，ＡＰＮ２の展開の後、図８（ｅ）に示すように、更新ファイルＵＤが削除される。
【００６６】
図２のステップＳ１４４において、プリンタ１００は、処理登録テーブルに登録された全ての空容量拡大処理を実行したか否かを判断する。全ての空容量拡大処理を実行したと判断された場合、制御はステップＳ１４４に移される。一方、全ての空容量拡大処理が実行されていないと判断された場合、制御はステップＳ１４６に移される。
【００６７】
ステップＳ１４６において、プリンタ１００は、処理登録テーブルに登録された未実行の空容量拡大処理のうち、適用シーケンスの最も先頭に登録された空容量拡大処理を実行する。そして、空容量拡大処理を実行した後、制御はステップＳ１４２に戻される。このように、空容量拡大処理の実行により、フラッシュメモリ１６０の空容量がアプリケーションの更新に十分な大きさになったと判断されるまで、処理登録テーブルに登録された空容量拡大処理の少なくとも一部が順次実行される。
【００６８】
上記の説明から明らかなように、適用シーケンスは、空容量を拡大するための処理の実行手順を示すアルゴリズムであるとも言える。また、アップデート情報は、複数のアルゴリズムから空容量拡大処理の実行手順を選択（切替）するための選択情報であるとも言える。
【００６９】
ステップＳ１４６において、旧アプリケーションファイルをＰＣに待避する第６の空容量拡大処理（図５）が実行された場合、プリンタ１００は、パーソナルコンピュータ２００にファイルの待避を要求する応答（待避要求）を送信する。待避要求の送信の後、プリンタ１００は、旧アプリケーションファイルをパーソナルコンピュータ２００に送信する。
【００７０】
パーソナルコンピュータ２００は、図３のステップＳ２２０においてプリンタ１００から送信された応答を受信する。次いで、ステップＳ２３０において、プリンタ１００から受信した応答の種別を判断する。プリンタ１００からの応答が、待避要求であった場合には、制御はステップＳ２３２に移される。なお、他の応答であった場合については、後述する。
【００７１】
ステップＳ２３２において、パーソナルコンピュータ２００は、プリンタ１００から送信される旧アプリケーションファイル（待避データ）を受信し、外部記憶装置２６０に格納する。待避データの格納の後、制御はステップＳ２２０に戻される。
【００７２】
図２のステップＳ１４２において、フラッシュメモリ１６０の空容量が十分であると判断された場合、ステップＳ１６０において、プリンタ１００は、アプリケーションが更新可能であることを表す応答をパーソナルコンピュータ２００に送信する。次いで、ステップＳ１７０において、アプリケーションの書換処理を実行する。図９は、ステップＳ１７０において実行されるアプリケーション書換ルーチンを示すフローチャートである。
【００７３】
パーソナルコンピュータ２００は、図３のステップＳ２２０においてプリンタ１００から送信された応答を受信する。そして、ステップＳ２３０においてプリンタ１００からの応答が更新可能であることを表す応答であると判断され、制御はステップＳ２４０に移される。
【００７４】
ステップＳ２４０において、パーソナルコンピュータ２００は、更新ファイルをプリンタ１００に送信する。プリンタ１００は、図９のステップＳ３１０において、パーソナルコンピュータ２００から送信された更新ファイルを受信する。
【００７５】
ステップＳ３２０において、プリンタ１００は、更新ファイルをＲＡＭ１３０に格納するか否かを判断する。具体的には、第７の空容量拡大処理の実行により、ＲＡＭ格納フラグがセットされているか否かを判断する。ＲＡＭ格納フラグがセットされている場合には、制御はステップＳ３２４に移され、ステップＳ３１０で受信された更新ファイルはＲＡＭ１３０に格納される。一方、ＲＡＭ格納フラグがセットされていない場合には、制御はステップＳ３２２に移され、ステップＳ３１０で受信された更新ファイルはフラッシュメモリ１６０に格納される。
【００７６】
ステップＳ３３０において、プリンタ１００は、旧アプリケーションファイルがフラッシュメモリ１６０に残存しているか否かを判断する。具体的には、旧アプリケーションファイルを削除する第４ないし第６の空容量拡大処理（図５）が実行されたか否かを判断する。これらの空容量拡大処理が実行されていない場合には、旧アプリケーションファイルがフラッシュメモリ１６０に残存していると判断され、制御はステップＳ３３２に移される。そして、ステップＳ３３２において、プリンタ１００は、フラッシュメモリ１６０乗の旧アプリケーションファイルを削除する。一方、第４ないし第６の空容量拡大処理が実行されていない場合には、旧アプリケーションファイルは残存していないと判断され、制御はステップＳ３４０に移される。
【００７７】
ステップＳ３４０において、プリンタ１００は、フラッシュメモリ１６０あるいはＲＡＭ１３０に格納された更新ファイルを展開することにより、新アプリケーションファイルをフラッシュメモリ１６０に格納する。
【００７８】
ステップＳ３５０において、プリンタ１００は、データファイルの復元が必要か否かを判断する。具体的には、データファイルを結合する第１の空容量拡大処理（図５）と、データファイルを圧縮する第２の空容量拡大処理（図５）と、のいずれもが実行されていない場合には、データファイルの復元が不要と判断される。データファイルの結合あるいは圧縮が行われている場合には、新アプリケーションのアプリケーション特性（図４）を参照することによりデータファイルの復元の要否が判断される。
【００７９】
データファイルが結合されており、アプリケーション特性の「結合ファイル」の項目が「使用不可」であった場合には、データファイルの復元が必要と判断される。同様に、データファイルが圧縮されており、アプリケーション特性の「圧縮ファイル」の項目が「使用不可」であった場合にも、データファイルの復元が必要と判断される。
【００８０】
図４に示す課金処理を行うためのアプリケーションの例では、処理登録テーブル（図７）には、第１、第２、および、第６の空容量拡大処理（図５）が登録されている。そのため、空容量拡大処理が実行されなかった場合と、ファイル結合を行う第１の空容量拡大処理のみが実行された場合には、データファイルの復元は不要と判断される。一方、第２の空容量拡大処理が実行された場合には、データファイルの復元が必要と判断される。
【００８１】
ステップＳ３５０において、データファイルの復元が不要と判断された場合には、制御はステップＳ３６０に移される。一方、データファイルの復元が必要と判断された場合には、制御はステップＳ３５２に移される。ステップＳ３５２では、データファイルが圧縮されている場合には、圧縮ファイルを展開することによりデータファイルが復元される。データファイルが結合されている場合には、結合ファイルを分離することによりデータファイルが復元される。
【００８２】
ステップＳ３６０において、プリンタ１００は、旧アプリケーションファイルを待避したか否かを判断する。具体的には、旧アプリケーションファイルを待避する第４または第５の空容量拡大処理（図５）が実行されたか否かを判断する。旧アプリケーションファイルが待避されなかったと判断された場合には、制御は図２に示すインストール実行ルーチンに戻される。一方、旧アプリケーションファイルが待避されたと判断された場合には、制御はステップＳ３６２に戻される。
【００８３】
ステップＳ３６２では、旧アプリケーションファイルがＲＡＭ１３０に待避された場合には、ＲＡＭ１３０から旧アプリケーションファイルがフラッシュメモリ１６０に移される。一方、旧アプリケーションファイルがパーソナルコンピュータ２００に待避された場合には、プリンタ１００は、パーソナルコンピュータ２００からの待避データの送信を待つ。そして、パーソナルコンピュータ２００から待避データを受信した後、受信した待避データをフラッシュメモリ１６０に格納する。待避データの格納の後、制御は図２に示すインストール実行ルーチンに戻される。
【００８４】
パーソナルコンピュータ２００は、図３のステップＳ２５０において、データを待避したか否かを判断する。プリンタ１００が第４の空容量拡大処理（図５）を実行した場合、パーソナルコンピュータ２００は、ステップＳ２３２においてプリンタ１００から待避データを受信し、外部記憶装置２６０に待避データを格納している。そのため、ステップＳ２５０では、データの待避を行ったと判断され、制御はステップＳ２５２に移される。そして、ステップＳ２５２において、外部記憶装置２６０に格納された待避データをプリンタ１００に送信する。パーソナルコンピュータ２００から送信された待避データは、上述のように、図９のステップＳ３６２において、フラッシュメモリ１６０に格納される。
【００８５】
一方、プリンタ１００が第４の空容量拡大処理を実行していない場合、パーソナルコンピュータ２００は、プリンタ１００から待避データを受信していないので、図３のステップＳ２５０では、データの待避を行っていないと判断され、制御はステップＳ２６０に移される。
【００８６】
ステップＳ２６０において、パーソナルコンピュータ２００は、図２のステップＳ１８０においてプリンタ１００から送信されるアプリケーションの更新完了を通知するメッセージ（完了通知）を待機する。そして、完了通知を受信した後、アプリケーションの更新が完了したことをユーザに通知する。具体的には、パーソナルコンピュータ２００は、図示しない表示装置上に、アプリケーションの更新が完了したことを表すメッセージを表示する。そして、ユーザへの通知の後、図３のアプリケーション更新ルーチンは終了する。
【００８７】
プリンタ１００は、図２のステップＳ１８０における完了通知の送信の後、ステップＳ１９０において、更新されたアプリケーションを起動する。そして、図２のインストール実行ルーチンは終了する。なお、ステップＳ１３０において、更新対象のアプリケーションの他、更新対象でないアプリケーションも停止した場合、更新対象のアプリケーションの起動とともに、ステップＳ１３０で停止されたアプリケーションも起動される。
【００８８】
ステップＳ１４４において処理登録テーブルに登録された全ての空容量拡大処理が実行されたと判断された場合、プリンタ１００は、ステップＳ１５０において、アプリケーションの更新が不可能であることを表す応答をパーソナルコンピュータ２００に送信する。パーソナルコンピュータ２００は、図３のステップＳ２２０においてプリンタ１００から送信された応答を受信する。そして、ステップＳ２３０においてプリンタ１００からの応答が更新が不可能であることを表す応答であると判断され、制御はステップＳ２７０に移される。
【００８９】
ステップＳ２７０において、パーソナルコンピュータ２００は、アプリケーションの更新が不可能であることをユーザに通知する。具体的には、パーソナルコンピュータ２００は、図示しない表示装置上に、アプリケーションの更新が不可能であることを表すメッセージを表示する。そして、ユーザへの通知の後、図３のアプリケーション更新ルーチンは終了する。
【００９０】
このように、本実施例によれば、アプリケーションの更新の際、アプリケーションの特性等の情報に基づいて空容量拡大処理の適用シーケンスが決定される。そのため、プリンタ１００は、アプリケーションに適した空容量拡大処理を行うことが可能となり、アプリケーションに伴う障害の発生を抑制することが可能になるとともに、空容量拡大処理でフラッシュメモリ１６０の空容量が大きくなることによりアプリケーションの更新をより確実に行うことが可能となる。
【００９１】
Ｂ．変形例：
なお、この発明は上記実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば次のような変形も可能である。
【００９２】
Ｂ１．変形例１：
上記実施例では、パーソナルコンピュータ２００は、制御情報として旧アプリケーションファイルをパーソナルコンピュータ２００上に待避可能か否かを指定する情報（ＰＣ待避）をアプリケーション属性に付加しているが、他の情報を制御情報として付加することも可能である。一般に、制御情報としては、空容量拡大処理の手順の決定に使用される情報であれば、任意の情報を使用することができる。例えば、ファイルサーバ名等の旧アプリケーションファイルの待避先を特定するための情報や、空容量拡大処理の適用シーケンスを変更するための情報等を制御情報とすることも可能である。
【００９３】
また、パーソナルコンピュータ２００は、制御情報を付加することなくアプリケーション属性のみをアップデート情報としてプリンタ１００に送信することもできる。このようにしても、プリンタ１００は、旧アプリケーションのアプリケーション特性に応じて空容量拡大処理の適用シーケンスを決定することができるので、アプリケーションに適した空容量拡大処理を行うことが可能である。
【００９４】
Ｂ２．変形例２：
上記実施例では、更新ファイルの受信（図９のステップＳ３１０）に先だって空容量拡大処理が実行されているが、空容量拡大処理は、少なくとも更新ファイルのフラッシュメモリ１６０への格納に先だって行われていればよい。
【００９５】
Ｂ３．変形例３：
上記実施例では、適用シーケンスに従って複数の空容量拡大処理（基本処理）が累積的に順次実行されているが、複数の基本処理を個別に実行するものとしても良い。具体的には、ある基本処理を実行した後、フラッシュメモリ１６０の空容量が十分でないと判断された場合には、その基本処理が実行される前の状態に復元され、その後、別の基本処理が実行される。なお、データファイルの圧縮と旧アプリケーションファイルの圧縮等、複数の基本処理を合わせて実行するものとしても良い。この場合、複数の基本処理を合わせた処理は、１つの基本処理として取り扱われる。
【００９６】
また、旧アプリケーションファイルのファイル圧縮など、空容量拡大処理によりフラッシュメモリ１６０の空容量の変化量が事前に推定できる場合には、空容量拡大処理後のフラッシュメモリ１６０の空容量を推定し、推定された空容量が十分であった場合には、その空容量拡大処理を実行することも可能である。この場合、個々の空容量拡大処理が、空容量を拡大するためのアルゴリズムに従っているということができる。
【００９７】
Ｂ４．変形例４：
上記実施例では、本発明をアプリケーションの更新に適用しているが、本発明は、プリンタ１００にファイルを送信し、プリンタ１００のフラッシュメモリ１６０にファイルを格納する場合にも適用することができる。フラッシュメモリ１６０に格納されるファイルは、フラッシュメモリ１６０上のアプリケーションファイル１６２やデータファイル１６４に関連付けられたファイルであれば任意のファイルとすることができる。本発明は、例えば、プリンタ１００の構成情報や監視内容を特定する情報等、プリンタ１００の課金管理を行うアプリケーションに使用されるファイルにも適用することが可能である。なお、フラッシュメモリ１６０に格納されたアプリケーションファイル１６２やデータファイル１６４は、いずれも、プリンタ１００により受信されるファイル（受信ファイル）に関連付けられたファイル（関連ファイル）であるともいえる。
【００９８】
Ｂ５．変形例５：
上記各実施例では、本発明をネットワークに接続されたプリンタに適用しているが、本発明は、任意のネットワークデバイスや、任意の通信チャンネルで外部と接続された情報処理装置にも適用することができる。本発明は、一般に、外部からファイルを受信し、受信したファイル内部に格納する任意の情報処理装置（例えば、ルータ、プリンタ、デジタルスチルカメラ）に適用することができる。
【図面の簡単な説明】
【００９９】
【図１】本発明の一実施例におけるネットワークシステム１０の構成を示す説明図。
【図２】インストール実行ルーチンのフローチャート。
【図３】アプリケーション更新ルーチンのフローチャート。
【図４】アプリケーション属性とアップデート情報との一例を示す表。
【図５】フラッシュメモリ１６０の空容量を拡大するための空容量拡大処理の一例を示す表。
【図６】空容量拡大処理の登録ルーチンを示すフローチャート。
【図７】適用処理テーブルの一部を示す表。
【図８】更新使用領域へのアプリケーションファイル等の格納状況を示す説明図。
【図９】アプリケーション書換ルーチンを示すフローチャート。
【符号の説明】
【０１００】
１０…ネットワークシステム
１００…プリンタ
１１０…ＣＰＵ
１２０…ＲＯＭ
１２２…アプリケーションインストーラ
１３０…ＲＡＭ
１４０…ネットワークインターフェース
１５０…プリントエンジン
１６０…フラッシュメモリ
１６２…アプリケーションファイル
１６４…データファイル
２００…パーソナルコンピュータ
２１０…ＣＰＵ
２２０…ＲＯＭ
２３０…ＲＡＭ
２４０…ネットワークインターフェース
２６０…外部記憶装置
２６２…アプリケーション更新プログラム
２６６…アプリケーション属性
２６８…更新ファイル
【図１】
2008071031.tif 000003
【図２】
2008071031.tif 000004
【図３】
2008071031.tif 000005
【図４】
2008071031.tif 000006
【図５】
2008071031.tif 000007
【図６】
2008071031.tif 000008
【図７】
2008071031.tif 000009
【図８】
2008071031.tif 000010
【図９】
2008071031.tif 000011