(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
他のプログラムに動的に処理を割り込ませることが可能な所定のプログラムをネットワークを介して受信する受信手段と、
前記所定のプログラムを前記他のプログラムに適用する適用手段と、
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際における前記所定のプログラムの前記他のプログラムへの再適用の要否の設定を受け付け、該要否を識別可能な再適用要否情報を前記所定のプログラムごとに記憶手段に記録する再適用要否設定手段と、
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、前記再適用要否情報に応じて自動的に前記所定のプログラムを前記他のプログラムに適用しなおす再適用手段とを有することを特徴とする情報処理装置。
【請求項２】
前記設定において前記再適用が要求された場合に、前記所定のプログラムを所定の記憶装置に保存する永続化手段と、
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、前記記憶装置より前記所定のプログラムを取得する取得手段とを有し、
前記再適用手段は、前記取得手段によって取得された前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、ネットワークを介して前記所定のプログラムを取得する取得手段を有し、
前記再適用手段は、前記取得手段によって取得された前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記再適用手段は、当該情報処理装置の電源が切られ、再び電源が供給された際に前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項１乃至３いずれか一項記載の情報処理装置。
【請求項５】
前記再適用手段は、無操作状態の継続により当該情報処理装置の電源の供給が部分的に停止され、再び電源が供給された際に前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項１乃至４いずれか一項記載の情報処理装置。
【請求項６】
前記再適用要否情報の削除要求の入力に応じ、前記再適用要否情報を前記記憶手段より削除する再適用解除手段を有することを特徴とする請求項１乃至５いずれか一項記載の情報処理装置。
【請求項７】
情報処理装置が実行する情報処理方法であって、
他のプログラムに動的に処理を割り込ませることが可能な所定のプログラムをネットワークを介して受信する受信手順と、
前記所定のプログラムを前記他のプログラムに適用する適用手順と、
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際における前記所定のプログラムの前記他のプログラムへの再適用の要否の設定を受け付け、該要否を識別可能な再適用要否情報を前記所定のプログラムごとに記憶手段に記録する再適用要否設定手順と、
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、前記再適用要否情報に応じて自動的に前記所定のプログラムを前記他のプログラムに適用しなおす再適用手順とを有することを特徴とする情報処理方法。
【請求項８】
前記設定において前記再適用が要求された場合に、前記所定のプログラムを所定の記憶装置に保存する永続化手順と、
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、前記記憶装置より前記所定のプログラムを取得する取得手順とを有し、
前記再適用手順は、前記取得手順において取得された前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項７記載の情報処理方法。
【請求項９】
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、ネットワークを介して前記所定のプログラムを取得する取得手順を有し、
前記再適用手順は、前記取得手順において取得された前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項７記載の情報処理方法。
【請求項１０】
前記再適用手順は、当該情報処理装置の電源が切られ、再び電源が供給された際に前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項７乃至９いずれか一項記載の情報処理方法。
【請求項１１】
前記再適用手順は、無操作状態の継続により当該情報処理装置の電源の供給が部分的に停止され、再び電源が供給された際に前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項７乃至１０いずれか一項記載の情報処理方法。
【請求項１２】
前記再適用要否情報の削除要求の入力に応じ、前記再適用要否情報を前記記憶手段より削除する再適用解除手順を有することを特徴とする請求項７乃至１１いずれか一項記載の情報処理方法。
【請求項１３】
情報処理装置に、
他のプログラムに動的に処理を割り込ませることが可能な所定のプログラムをネットワークを介して受信する受信手順と、
前記所定のプログラムを前記他のプログラムに適用する適用手順と、
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際における前記所定のプログラムの前記他のプログラムへの再適用の要否の設定を受け付け、該要否を識別可能な再適用要否情報を前記所定のプログラムごとに記憶手段に記録する再適用要否設定手順と、
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、前記再適用要否情報に応じて自動的に前記所定のプログラムを前記他のプログラムに適用しなおす再適用手順とを実行させるためのプログラム。
【請求項１４】
前記設定において前記再適用が要求された場合に、前記所定のプログラムを所定の記憶装置に保存する永続化手順と、
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、前記記憶装置より前記所定のプログラムを取得する取得手順とを有し、
前記再適用手順は、前記取得手順において取得された前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項１３記載のプログラム。
【請求項１５】
前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、ネットワークを介して前記所定のプログラムを取得する取得手順を有し、
前記再適用手順は、前記取得手順において取得された前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項１３記載のプログラム。
【請求項１６】
前記再適用手順は、当該情報処理装置の電源が切られ、再び電源が供給された際に前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項１３乃至１５いずれか一項記載のプログラム。
【請求項１７】
前記再適用手順は、無操作状態の継続により当該情報処理装置の電源の供給が部分的に停止され、再び電源が供給された際に前記所定のプログラムを前記他のプログラムに適用しなおすことを特徴とする請求項１３乃至１６いずれか一項記載のプログラム。
【請求項１８】
前記再適用要否情報の削除要求の入力に応じ、前記再適用要否情報を前記記憶手段より削除する再適用解除手順を有することを特徴とする請求項１３乃至１７いずれか一項記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関し、特に無操作状態の継続により少なくとも一部分に対する電源の供給が停止される情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
従来、特に組み込み機器等において動作するプログラムの障害解析（デバッグ等）の代表的な作業として、プログラムが出力するログの解析が行われている。すなわち、プログラムのソースコードには、プログラムが用いている変数の値や、プログラムが動作しているハードウェアの状態を示す情報等をログファイルに出力するための命令（例えば、Ｃ言語におけるｐｒｉｎｔｆ関数）が予め各所に埋め込まれている。障害が発生した際、斯かる命令（以下、「ログ出力命令」という。）に従って出力されたログファイルを解析することにより、障害の原因が推測又は特定される。
【０００３】
しかし、予め埋め込まれたログ出力命令に基づいて出力されるログファイル（最初に出力されるログファイル）では、詳細な解析を行うための情報として不十分な場合が多々ある。斯かる場合、最初に出力されるログファイルに基づいて、或る程度障害箇所が絞り込まれる。続いて、その障害箇所周辺について更に詳細なログを出力するように、プログラムのソースコードが修正され、コンパイル及びリンクが行われた上で、プログラムの置き換えが行われる。改めて出力されるログファイルによっても原因が特定できない場合は、更に、ソースコードにログ出力命令が埋め込まれ、上記作業が繰り返される。このように、ログに基づいて障害解析を行う場合、時として大変煩雑な作業が要求されていた。
【０００４】
そこで、従来、動作中のプログラムの任意の箇所（診断位置）に当該プログラムの診断用プログラムの処理を動的に（実行時に）割り込ませる技術が存在する。診断用プログラムでは、診断対象となるプログラムの変数の値等を参照することができる。診断用プログラムの処理の終了後は、診断対象となるプログラムについて診断用プログラムによって割り込まれた位置に処理が復帰する。斯かる技術によれば、診断対象となるプログラムのソースコードを修正することなく、診断用プログラムによって診断対象となるプログラムのログの出力が可能となる。
【特許文献１】特開２００４−１３９５７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記技術において、診断用のプログラムによって診断対象とされる機器は、診断用プログラムを管理するコンピュータ（以下、「管理サーバ」という。）とネットワークを介して接続されている必要がある。診断用プログラムは、管理サーバの制御によりネットワークを介して機器に対して送り込まれるからである。
【０００６】
一方で、機器に送り込まれた診断用プログラムはＲＡＭ上に展開されて実行される。したがって、機器の電源が落とされた後や、再度起動されたときは、機器内に診断用プログラムは存在しない。したがって、ユーザは、改めて診断用プログラムを管理サーバよりダウンロードし、診断対象のプログラムへ適用するための操作を行わなければならなかった。
【０００７】
特に、近年では省エネモードと呼ばれる動作モードを有する機器が多数存在する。省エネモードにおいては、無操作状態の継続によって電源の供給が部分的に停止されるが、ＲＡＭへの電源の供給も停止されるものがある。斯かる機器においては、診断用プログラムがＲＡＭ上から消去される頻度が高い。
【０００８】
なお、コンピュータの電源断前にＲＡＭ上のイメージを保存しておき、再起動後に当該イメージをＲＡＭ上に復元するといったことは一般的に行われている。但し、このような技術では、電源断前と全く同じ状態がＲＡＭ上に再現されるに過ぎない。したがって、このような技術では、コンピュータの再起動後に改めて診断プログラムを適用しなおした上で、診断対象のプログラムを最初から実行しなおすといった手順は自動的には実行されない。
【０００９】
本発明は、上記の点に鑑みてなされたものであって、他のプログラムに対して動的に処理を割り込ませることのできるプログラムの利用効率を向上させることのできる情報処理装置、情報処理方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【００１０】
そこで上記課題を解決するため、本発明は、情報処理装置であって、他のプログラムに動的に処理を割り込ませることが可能な所定のプログラムをネットワークを介して受信する受信手段と、前記所定のプログラムを前記他のプログラムに適用する適用手段と、前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際における前記所定のプログラムの前記他のプログラムへの再適用の要否の設定を受け付け、該要否を識別可能な再適用要否情報を記憶手段に記録する再適用要否設定手段と、前記所定のプログラムの適用後に当該情報処理装置の少なくとも一部に対する電源の供給が停止され、再び電源が供給された際に、前記再適用要否情報に応じて前記所定のプログラムを前記他のプログラムに適用しなおす再適用手段とを有することを特徴とする。
【００１１】
このような情報処理装置では、他のプログラムに対して動的に処理を割り込ませることのできるプログラムの利用効率を向上させることができる。
【発明の効果】
【００１２】
本発明によれば、他のプログラムに対して動的に処理を割り込ませることのできるプログラムの利用効率を向上させることのできる情報処理装置、情報処理方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における機器管理システムの構成例を示す図である。図１の機器管理システム１において、管理サーバ１０と、機器２０ａ、機器２０ｂ及び機器２０ｃ（以下、総称する場合「機器２０」という。）とは、オフィスにおけるＬＡＮ（Local Area Network）等のネットワーク５０（有線又は無線の別は問わない。）を介して接続されている。
【００１４】
機器２０は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置（複合機）である。機器２０は、ＣＰＵやメモリを備え、メモリに記録されたプログラムに従ったＣＰＵによる制御に基づいて各種の機能を実現する。なお、本実施の形態では、機器２０が情報処理装置の一例に相当する。
【００１５】
管理サーバ１０は、機器２０において利用されるプログラムに対して適用される追加プログラムの管理及び当該追加プログラムの機器２０への転送等を行うコンピュータである。本実施の形態において、追加プログラムとは、適用対象とされるプログラムの任意の箇所において、当該追加プログラムに定義された処理を動的に割り込ませることのできるプログラムをいう。
【００１６】
図２は、追加プログラムの概要を説明するための図である。図２において、５０１は、追加プログラム５０５が適用されるプログラムの仮想メモリ上における命令の配列を示す。プログラム５０１は、追加プログラム５０１が適用される前（通常実行時）は、命令１、２、３の順で処理を実行する。５０１ａは、プログラム５０１に追加プログラム５０１が適用された状態を示す。ここでは、命令１と命令２との間に追加プログラム５０５の処理を割り込ませる例が示されている。この場合、命令２がテーブル５０２への分岐命令に置き換えられる。テーブル５０２には、初期化処理、前処理（変数のスタックへの退避等）、追加プログラム５０５の呼び出し処理、後処理（スタックに退避されていた変数等の取り出し等）の後に命令２が実行され、プログラム５０１の命令３に戻るような定義がされている。
【００１７】
すなわち、追加プログラムが適用される場合、適用対象とされたプログラムの実行ステップが予め指定された箇所（追加位置）に到達すると、追加プログラムの処理が実行される。当該追加プログラムの処理が終了すると、適用対象とされたプログラムに処理制御が復帰する。その後、適用対象とされたプログラムは、追加位置より処理を再開する。なお、追加プログラムには、適用対象のプログラムに割り込ませる処理の他、追加位置を識別するための情報が含まれている。
【００１８】
追加プログラムの中では、適用対象とされるプログラムの変数等を参照可能である。したがって、追加プログラムによって、適用対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させるための処理や、新たな機能を実現するための処理を適用対象とされるプログラムに割り込ませることができる。
【００１９】
斯かる追加プログラムによれば、適用対象とされるプログラムについて、ソースコードの修正、コンパイル及びリンク、更に、再インストール等を行うことなく、ログ情報の出力や機能強化等を図ることができる。
【００２０】
図３は、本発明の実施の形態における機器のハードウェア構成の一例を示す図である。同図において、機器２０は、コントローラ６０１、オペレーションパネル６０２、ファクシミリコントロールユニット（ＦＣＵ）６０３、撮像部６０４、及び印刷部６０５等より構成される。
【００２１】
コントローラ６０１は、ＣＰＵ６１１、ＡＳＩＣ６１２、ＮＢ６２１、ＳＢ６２２、ＭＥＭ−Ｐ６３１、ＭＥＭ−Ｃ６３２、ＨＤＤ（ハードディスクドライブ）６３３、メモリカードスロット６３４、ＮＩＣ（ネットワークインタフェースコントローラ）６４１、ＵＳＢデバイス６４２、ＩＥＥＥ１３９４デバイス６４３、セントロニクスデバイス６４４により構成される。
【００２２】
ＣＰＵ６１１は、種々の情報処理用のＩＣである。ＡＳＩＣ６１２は、種々の画像処理用のＩＣである。ＮＢ６２１は、コントローラ６０１のノースブリッジである。ＳＢ６２２は、コントローラ６０１のサウスブリッジである。ＭＥＭ−Ｐ６３１は、機器２０のシステムメモリである。ＭＥＭ−Ｃ６３２は、機器２０のローカルメモリである。ＨＤＤ６３３は、機器２０のストレージである。メモリカードスロット６３４は、メモリカード６３５をセットするためのスロットである。ＮＩＣ６４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス６４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス６４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス６４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル６０２は、オペレータが機器２０に入力を行うためのハードウェア（操作部）であると共に、オペレータが機器２０から出力を得るためのハードウェア（表示部）である。
【００２３】
図４は、本発明の実施の形態における機器のソフトウェア構成例を示す図である。図４において、機器２０は、コピーアプリ２１ａ、ＦＡＸアプリ２１ｂ、プリンタアプリ２１ｃ、及びスキャナアプリ２１ｄ等のアプリケーション２１と、サービス層２２と、診断プログラム制御部２３と、ＯＳ２４と等を有する。これらのソフトウェアは、ＭＥＭ−Ｐ６３１におけるＲＡＭ上にロードされ、ＣＰＵ６１１に処理を実行させることによりその機能を実現させる。
【００２４】
コピーアプリ２１ａは、コピー機能を実現するアプリケーションである。ＦＡＸアプリ２１ｂは、ＦＡＸ機能を実現するアプリケーションである。プリンタアプリ２１ｃは、印刷機能を実現するアプリケーションである。スキャナアプリ２１ｄは、スキャナ機能を実現するアプリケーションである。本実施の形態では、これらのアプリケーション２１が追加プログラム２５の適用対象とされる。但し、サービス層２２のプログラムが追加プログラム２５の適用対象とされてもよい。
【００２５】
サービス層２２は、複数のアプリケーション２１によって共通に必要とされるサービス（機能）をアプリケーション２１に対して提供するプログラム群によって構成される。サービス層２２には、例えば、ネットワーク通信の仲介を行うプログラム、撮像部６０４や印刷部６０５等のハードウェアの制御を行うプログラム、メモリやハードディスクドライブ等の記憶装置の管理を行うプログラム、オペレーションパネル６０２の制御を行うプログラム等が存在する。
【００２６】
ＯＳ２４は、いわゆるＯＳ（Operating System）である。ＯＳ２４は、所定のものに限定されない。
【００２７】
追加プログラム制御部２３は、上述した追加プログラム（図中では、追加プログラム２５として示されている。）の実行環境を実現するソフトウェアである。図５は、追加プログラム制御部の機能構成例を示す図である。同図に示されるように追加プログラム制御部２３は、実行部２３１、リモートロード部２３２、永続化部２３３、ローカルロード部２３４、非永続化部２３５、及び管理テーブル２３６等を有する。
【００２８】
実行部２３１は、各アプリケーション２１について、ソースコード上の各ステップと、メモリ上におけるアドレス情報とのマッピング情報（対応情報）を管理している。実行部２３１は、当該マッピング情報に基づいて、アプリケーション２１に追加プログラム２５を適用する。より詳しくは、実行部２３１は、当該マッピング情報に基づいてメモリ上のアプリケーション２１における追加位置のアドレスを判定し、当該追加位置に追加プログラム２５への分岐命令を挿入する。追加プログラム２５が適用されたアプリケーション２１の実行ステップが追加位置に到達すると、図２において説明したようにＲＡＭ上にロードされている追加プログラム２５が実行される。リモートロード部２３２は、管理サーバ１０よりネットワークを介して追加プログラム２５を受信（取得）し、受信された追加プログラム２５を揮発性のメモリであるＲＡＭに記録（ロード）する。永続化部２３３は、リモードロード部２３３によって取得された追加プログラム２５を不揮発性の記憶装置（本実施の形態では、ＨＤＤ６３３）に保存（永続化）する。ローカルロード部２３４は、ＨＤＤ６３３に保存されている追加プログラム２５をＲＡＭに記録（ロード）する。非永続化部２３５は、ＨＤＤ６３３に保存されている追加プログラム２５を実行対象外（ＲＡＭへのロードの対象外）とする。管理テーブル２３６は、永続化されている追加プログラム２５を管理するためのテーブルであり、例えば、ＨＤＤ６３３に記録される。
【００２９】
図６は、本発明の実施の形態における管理サーバの機能構成例を示す図である。図６において、管理サーバ１０は、追加処理制御部１１及び追加プログラム管理部１２等を有する。これら各部は、管理サーバ１０にインストールされたプログラムがＣＰＵに実行させる処理によって実現される。
【００３０】
追加プログラム管理部１２は、管理サーバ１０の記憶装置に保存されている追加プログラムの管理を行う。追加処理制御部１１は、追加プログラム管理部１２によって管理されている追加プログラム１１の機器２０への転送等を行う。
【００３１】
以下、機器管理システム１の処理手順について説明する。図７は、第一の実施の形態における追加プログラムのリモートロード及び永続化時の処理手順を説明するためのシーケンス図である。図７における処理の開始時において、機器２０は、定常状態（アプリケーション２１等が利用可能な状態）であるとする。
【００３２】
ステップＳ１０１において、管理サーバ１０の追加処理制御部１１が、ユーザによって指定（選択）された追加プログラム２５を追加プログラム管理部１２より取得し、機器２０へ送信すると、機器２０のリモートロード部２３２は、当該追加プログラム２５を受信し、ＭＥＭ−Ｐ６３１におけるＲＡＭに記録する。追加プログラム２５が正常に受信されると、リモートロード部２３２は、その旨を追加処理制御部１１に応答する（Ｓ１０２）。
【００３３】
続いて、追加処理制御部１１より追加プログラム２５の有効化を指示するメッセージが受信されると（Ｓ１０３）、実行部２３１は、追加プログラム２５の追加位置を確認し、適用対象とされるアプリケーション２１のＲＡＭ上における追加位置に、追加プログラム２５への分岐命令の挿入等を行うことにより、追加プログラム２５を有効化する。有効化が正常に行われると、実行部２３１は、その旨を追加処理制御部１１に応答する（Ｓ１０４）。
【００３４】
続いて、追加処理制御部１１より追加プログラム２５の永続化を指示するメッセージが受信されると（Ｓ１０５）、永続化部２３３は、ＲＡＭ上に記録されている追加プログラム２５をＨＤＤ６３３に保存（永続化）する（Ｓ１０６）。この際、永続化部２３３は、新たに永続化された追加プログラム２５に関する情報を管理テーブル２３６に登録する。
【００３５】
図８は、管理テーブルの構成例を示す図である。同図に示されるように、管理テーブル２３６には永続化された追加プログラム２５ごとに、永続化フラグ及びプログラム名が登録されている。プログラム名は、ＨＤＤ６３３における各追加プログラム２５を識別するために用いられる。したがって、例えば、ファイル名であってもよい。
【００３６】
永続化フラグは、追加プログラム２５が実行対象として永続化されているか否かを示すフラグである。「１」は、利用対象として永続化されていることを示す。「０」は、利用対象ではないこと、又は永続化されていないことを示す。なお、初期値は「１」である。
【００３７】
なお、永続化部２３３による追加プログラム２５の永続化は、ステップＳ１０１における受信に応じて強制的に行われてもよい。この場合、追加処理制御部１１は、永続化の指示を送信する必要はない。
【００３８】
その後、適用対象のアプリケーション２１の実行ステップが追加位置に到達すると、当該追加位置に挿入されている分岐命令に従って追加プログラム２５が実行される。その結果、追加プログラム２５に実装された処理が当該アプリケーション２１の処理に挿入される。
【００３９】
続いて、機器２０において少なくともＲＡＭへの電源の供給が停止された後、再び電源が供給されたとする（Ｓ１０７）。この場合、揮発性のＲＡＭ上に記録されていた追加プログラム２５は、ＲＡＭ上より消去されてしまっている。そこで、アプリケーション２１等の起動の終了後、ローカルロード部２３４は、管理テーブル２３６を参照し、永続化フラグが「１」である追加プログラム２５の有無を確認する（Ｓ１０８）。永続化フラグが「１」である追加プログラム２５が存在する場合、ローカルロード部２３４は、管理テーブル２３６に記録されているプログラム名に基づいて、追加プログラム２５をＨＤＤ６３３からＲＡＭ上にロード（記録）する（Ｓ１０９）。また、追加プログラム制御部２３の実行部２３１は、適用対象のアプリケーション２１に対して追加プログラム２５を再適用する。
【００４０】
なお、永続化フラグを設けずに、ＨＤＤ６３３に保存されている追加プログラム２５を全て実行対象とするようにしてもよい。この場合、ローカルロード部２３４は、ステップＳ１０８において追加プログラム２５のファイルの有無をチェックすればよい。
【００４１】
続いて、Ｓ１０７において、再び電源が供給された際に機器２０において実行される処理の詳細について説明する。図９は、再び電源が供給されたときに機器において実行される処理手順を説明するためのフローチャートである。
【００４２】
機器２０に電源が供給されると（Ｓ３０１）、ブートローダが起動する（Ｓ３０２）。続いて、ブートローダは、ＯＳ２４のカーネルを起動させる（Ｓ３０３）。続いて、カーネルは、サービス層２２の各種プログラム、追加プログラム制御部２３、及び各アプリケーション２１をプロセスとして起動させる（Ｓ３０４〜Ｓ３０６）。
【００４３】
追加プログラム制御部２３のローカルロード部２３４は、起動されると、管理テーブル２３６を参照し、登録されている各永続化フラグの値をチェックする（Ｓ３０７）。続いて、のローカルロード部２３４は、永続化フラグの値に基づいて、追加プログラム２５の再適用の要否を判定する（Ｓ３０８）。すなわち、本実施の形態では、永続化フラグが再適用要否情報に相当する。
【００４４】
永続化フラグが「１」である追加プログラム２５が存在する場合（Ｓ３０８でＹｅｓ）、のローカルロード部２３４は、当該追加プログラム２５をＨＤＤ６３３からＲＡＭ上にロードする（Ｓ３０９）。続いて、追加プログラム制御部２３の実行部２３１は、当該追加プログラム２５を適用対象とされているアプリケーション２１に適用しなおす（Ｓ３１０）。より具体的には、適用対象とされているアプリケーション２１の追加位置に、当該追加プログラム２５への分岐命令を挿入する。
【００４５】
このように、本実施の形態における機器２０は、追加プログラム２５をローカルなＨＤＤ６３３に保存しておくことができる。また、機器２０の再起動後にＨＤＤ６３３に保存されている追加プログラム２５を自動的にＲＡＭ上にロードさせることができる。したがって、電源が切られ、ＲＡＭ上における追加プログラム２５が消去された後であっても、ユーザは、管理サーバ１０より改めて追加プログラム２５をダウンロードし直すための操作を行う必要はない。また、追加プログラム２５は、ローカルなＨＤＤ６３３に永続化されるため、その後において、管理サーバ１０が接続されていない環境又は状態でも追加プログラム２５を利用することが可能となる。
【００４６】
ところで、本実施の形態における機器２０は、一般的に省エネモードと呼ばれる動作モードを有する。具体的には、無操作状態が所定時間継続すると少なくとも一部分に対する電源の供給が停止される。図１０は、本発明の実施の形態の機器における電源の供給状態の遷移を説明するための図である。
【００４７】
同図において、電源ＯＦＦ状態Ｓ０は、メインスイッチが切られている状態（機器２０の電源が切られている状態）であり、図３に示される全てのハードウェアに電源が供給されていない状態である。電源ＯＦＦ状態Ｓ０においてメインスイッチがＯＮにされると（機器２０に電源が供給されると）電源ＯＮ状態Ｓ１に移行する。電源ＯＮ状態Ｓ１は、図３に示されるハードウェアのうち電源の供給が必要とされる全てのハードウェアに電源が供給されている状態である。電源ＯＮ状態Ｓ１において無操作状態が一定時間継続すると、機器２０は、省エネレベル１状態Ｓ２へ移行する。省エネレベル１状態Ｓ２では、オペレーションパネル６０２への電源の供給が停止される。但し、プリントジョブの実行は可能である。なお、無操作状態とは、ユーザによって人的に操作が行われない状態だけでなく、ネットワークを介してジョブの実行指示が入力されない状態をも含む。
【００４８】
省エネレベル１状態Ｓ２においてさらに無操作状態が一定時間継続すると、機器２０は、省エネレベル２状態Ｓ３に移行する。省エネレベル２状態Ｓ３では、オペレーションパネル６０２と、ＦＣＵ６０３、撮像部６０４、及び印刷部６０５等のいわゆるエンジン部とへの電源の供給が停止される
省エネレベル２状態Ｓ３においてさらに無操作状態が一定時間継続すると、機器２０は、省エネレベル３状態Ｓ４に移行する。省エネレベル３状態Ｓ４では、オペレーションパネル６０２と、エンジン部と、コントローラ６０１への電源の供給が停止される。
【００４９】
なお、省エネレベル２状態Ｓ３又は省エネレベル３状態Ｓ４においてプリントジョブが受信されると、機器２０は、省エネレベル１状態Ｓ２に移行する。また、省エネレベル１状態Ｓ２、省エネレベル２状態Ｓ３、又は省エネレベル３状態Ｓ４においてオペレーションパネル６０２の操作が行われると、機器２０は電源ＯＮ状態Ｓ１に移行する。また、いずれの状態においても、メインスイッチが切られると、機器２０は電源ＯＦＦ状態に移行する。
【００５０】
図１０に示される電源の供給状態において、電源ＯＦＦ状態Ｓ０及び省エネレベル３状態Ｓ４では、コントローラ６０１に含まれるＭＥＭ−Ｐ６３１への電源の供給が停止される。したがって、図７のステップＳ１０７における、ＲＡＭへの電源の供給の停止は、斯かる状態への移行によって行われる。また、ＲＡＭへの電源の供給の再開は、電源ＯＦＦ状態Ｓ０から電源ＯＮ状態Ｓ１への移行、又は省エネレベル３状態Ｓ４から省エネレベル１状態Ｓ２若しくは電源ＯＮ状態Ｓ１への移行によって行われる。
【００５１】
すなわち、ステップＳ１０８の処理は、省エネモードからの復帰時にも実行される。したがって、省エネモードによりＲＡＭへの電源の供給の停止が発生する頻度が相対的に高い機器２０の場合、本実施の形態のように、ローカルに永続化されている追加プログラム２５を利用できるようにすることで、ネットワークを介した追加プログラム２５のダウンロードの機会を大きく低減させることができる。
【００５２】
ところで、上記では全ての追加プログラム２５がそのダウンロード時において自動的に永続化の対象とされていた。以下では、永続化の要否を設定可能とした例を説明する。この場合、例えば、管理サーバ１０の追加処理制御部１１は、ステップＳ１０１においてユーザによって選択された追加プログラム２５に関して次のような処理を実行する。
【００５３】
図１１は、永続化の要否の設定処理を説明するためのフローチャートである。
【００５４】
ユーザによって追加プログラム２５が選択されると、追加処理制御部１１は、永続化設定画面を管理サーバ１０の表示装置に表示させる（Ｓ４０１）。
【００５５】
図１２は、永続化設定画面の表示例を示す図である。同図に示されるように、永続化設定画面５１０には、ユーザによって選択された追加プログラム２５の一覧が表示されている。また、追加プログラム２５ごとにチェックボタン５１１が配置されている。
【００５６】
続いて、ユーザによって、追加プログラム２５ごとに永続化の要否が設定される。すなわち、ユーザは、永続化が必要な追加プログラム２５については、チェックボタン５１１をチェック状態とする。永続化が不要な追加プログラム２５については、チェックボタン５１１を非チェック状態とする。なお、永続化の要否の設定とは、機器２０の再起動後に、改めて追加プログラム２５を適用し直す必要が有るか否かを設定することを意味する。
【００５７】
決定ボタン５１２が押下（クリック）されると、追加処理制御部１１は、ステップＳ１０１以降の処理を開始する。追加処理制御部１１は、永続化の指示を行う際、永続化設定画面５１０の設定内容に応じたメッセージを機器２０に送信する（Ｓ４０３）。すなわち、追加処理制御部１１は、チェックボタン５１１がチェックされた追加プログラム２５は、永続化が要求されたものと判定し、当該追加プログラム２５について永続化を要求する。なお、ステップＳ４０３は、図７のステップＳ１０５に対応する。
【００５８】
続いて、機器２０において、追加処理制御部１１より追加プログラム２５の永続化を指示するメッセージが受信されると、永続化部２３３は、ＲＡＭ上に記録されている追加プログラム２５のうち、永続化が要求されている追加プログラム２５のみをＨＤＤ６３３に保存（永続化）する。この際、永続化部２３３は、新たに永続化された追加プログラム２５に関する情報（永続化フラグ及びプログラム名）を管理テーブル２３６に登録する。
【００５９】
このように、追加プログラム２５の永続化の要否の設定を可能とすることにより、ユーザは、永続化を行わないという選択を行うことができる。本実施の形態によれば、機器２０の再起動後に追加プログラム２５が自動的に適用される。したがって、例えば、追加プログラム２５にバグが有り、適用対象とされたアプリケーション２１に異常動作が発生した場合に機器２０の電源を切ったとしても、機器２０の再起動後に追加プログラム２５の再適用により当該異常動作が繰り返される可能性がある。このようなことが予測される場合（例えば、追加プログラム２５の動作に関してテストが行われていない場合等）、永続化を不要としておくことで、異常動作が繰り返し発生することを回避することができる。機器２０の再起動後において、永続化が不要とされている追加プログラム２５については、自動的な適用は行われないからである。
【００６０】
続いて、不要となった追加プログラム２５の永続化を解除する際の処理手順について説明する。図１３は、第一の実施の形態における追加プログラムの永続化の解除処理を説明するためのシーケンス図である。
【００６１】
ステップＳ１０１において、管理サーバ１０の追加処理制御部１１が、ユーザによって指定された追加プログラム２５（追加プログラムＡ）の永続化の解除要求を機器２０へ送信すると（Ｓ２０１）、機器２０の非永続化部２３５は、追加プログラムＡの永続化を解除する（Ｓ２０２）。具体的には、管理テーブル２３６における追加プログラムＡに対する永続化フラグを「０」にする。また、追加プログラムＡの実体をＨＤＤ６３３より削除してもよい。永続化の解除が正常に終了すると、非永続化部２３５は、その旨を追加処理制御部１１に応答する（Ｓ２０３）。
【００６２】
続いて、機器２０の利用の終了等により、機器２０において少なくともＲＡＭへの電源の供給が停止された後、再び電源が供給されると（Ｓ２０４）、ローカルロード部２３４は、管理テーブル２３６を参照し、永続化フラグが「１」である追加プログラム２５の有無を確認する（Ｓ２０５）。ここで、追加プログラムＡは永続化が解除されているため、起動対象とはならない（Ｓ２０６）。
【００６３】
このように、不要となった追加プログラム２５の適用を適切に解除させることができる。なお、永続化の解除の指示は、オペレーションパネル６０２を介して入力させてもよい。この場合、管理サーバ１０と機器２０とはネットワークを介して接続されていなくてもよい。
【００６４】
次に、第二の実施の形態について説明する。第二の実施の形態において特に言及しない点については第一の実施の形態と同様でよい。図１４は、第二の実施の形態における追加プログラムのリモートロード及び永続化時の処理手順を説明するためのシーケンス図である。図１４中、図７と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。同図において、永続化サーバ３０は、機器２０とネットワークを介して接続するコンピュータである。
【００６５】
追加処理制御部１１より追加プログラム２５の永続化を指示するメッセージが受信されると（Ｓ１０５）、永続化部２３３は、ＲＡＭ上に記録されている追加プログラム２５のうち、永続化が要求されている追加プログラム２５のみを永続化サーバ３０に送信し、当該追加プログラムの永続化（保存）を要求する（Ｓ５０６）。永続化サーバ３０は、永続化を要求された追加プログラムを記憶装置に保存する。また、永続化サーバ３０は、新たに永続化された追加プログラム２５に関する情報を管理テーブル２３６に登録する。すなわち、第二の実施の形態では、永続化サーバ３０が管理テーブル２３６を備える。但し、第一の実施の形態と同様、機器２０が管理テーブル２３６を備えていてもよい。この場合。永続化部２３３が、新たに永続化された追加プログラム２５に関する情報を管理テーブル２３６に登録する。
【００６６】
続いて、機器２０において少なくともＲＡＭへの電源の供給が停止された後、再び電源が供給されると（Ｓ１０７）、ローカルロード部２３４は、永続化されている追加プログラム２５のダウンロード要求を永続化サーバ３０に送信する（Ｓ５０８）。永続化サーバ３０は、ダウンロード要求に応じ、永続化されている追加プログラム２５を追加プログラム制御部２３に送信する（Ｓ５０９）。追加プログラム制御部２３は、受信された追加プログラム２５をＲＡＭ上にロードし、適用対象のアプリケーションに対して再適用する。
【００６７】
上述したように、第二の実施の形態によれば、追加プログラム２５を機器２０の外部装置（永続化サーバ３０）に永続化させることができる。したがって、ハードウェアリソースの制限の厳しい機器２０におけるハードウェアリソースの消費量を抑制することができる。
【００６８】
なお、永続化サーバ３０は、管理サーバ１０であってもよい。この場合、ステップＳ５０６において必ずしも追加プログラム２５を送信する必要はない。追加プログラム２５は、管理サーバ１０において保存（管理）されているからである。但し、永続化の要否を管理サーバ１０に通知するようにしてもよい。管理サーバ１０側では、永続化が要求されている追加プログラム２５については、メンテナンス等において削除不可能とするようにするとよい。そうすることで、追加プログラム２５の再適用時において、当該追加プログラム２５が存在しないといった事態の発生を防止することができる。
【００６９】
また、第一及び第二の実施の形態では、管理テーブル２３６を用いた例を示したが、必ずしも管理テーブル２３６を用いなくてもよい。例えば、永続化される追加プログラム２５の保存位置を所定の場所（フォルダ）に決めておき、当該所定の場所に保存されている追加プログラム２５は再適用の対象とするようにしてもよい。この場合、再適用要否情報は、当該所定の場所に保存されている追加プログラム２５自体となる。
【００７０】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００７１】
【図１】本発明の実施の形態における機器管理システムの構成例を示す図である。
【図２】追加プログラムの概要を説明するための図である。
【図３】本発明の実施の形態における機器のハードウェア構成の一例を示す図である。
【図４】本発明の実施の形態における機器のソフトウェア構成例を示す図である。
【図５】追加プログラム制御部の機能構成例を示す図である。
【図６】本発明の実施の形態における管理サーバの機能構成例を示す図である。
【図７】第一の実施の形態における追加プログラムのリモートロード及び永続化時の処理手順を説明するためのシーケンス図である。
【図８】管理テーブルの構成例を示す図である。
【図９】再び電源が供給されたときに機器において実行される処理手順を説明するためのフローチャートである。
【図１０】本発明の実施の形態の機器における電源の供給状態の遷移を説明するための図である。
【図１１】永続化の要否の設定処理を説明するためのフローチャートである。
【図１２】永続化設定画面の表示例を示す図である。
【図１３】第一の実施の形態における追加プログラムの永続化の解除処理を説明するためのシーケンス図である。
【図１４】第二の実施の形態における追加プログラムのリモートロード及び永続化時の処理手順を説明するためのシーケンス図である。
【符号の説明】
【００７２】
１、２    機器管理システム
１０      管理サーバ
１１      追加処理制御部
１２      追加プログラム管理部
２０、２０ａ、２０ｂ、２０ｃ    機器
２１ａ    コピーアプリ
２１ｂ    ＦＡＸアプリ
２１ｃ    プリンタアプリ
２１ｄ    スキャナアプリ
２２      サービス層
２３      追加プログラム制御部
２４      ＯＳ
２５      追加プログラム
２３１    実行部
２３２    リモートロード部
２３３    永続化部
２３４    ローカルロード部
２３５    非永続化部
２３６    管理テーブル
６０４    撮像部
６０５    印刷部
６０１    コントローラ
６０２    オペレーションパネル
６０３    ファクシミリコントロールユニット
６１１    ＣＰＵ
６１２    ＡＳＩＣ
６２１    ＮＢ
６２２    ＳＢ
６３１    ＭＥＭ−Ｐ
６３２    ＭＥＭ−Ｃ
６３３    ＨＤＤ
６３４    メモリカードスロット
６３５    メモリカード
６４１    ＮＩＣ
６４２    ＵＳＢデバイス
６４３    ＩＥＥＥ１３９４デバイス
６４４    セントロニクスデバイス
【図１】
0005353169.tif 000002
【図２】
0005353169.tif 000003
【図３】
0005353169.tif 000004
【図４】
0005353169.tif 000005
【図５】
0005353169.tif 000006
【図６】
0005353169.tif 000007
【図７】
0005353169.tif 000008
【図８】
0005353169.tif 000009
【図９】
0005353169.tif 000010
【図１０】
0005353169.tif 000011
【図１１】
0005353169.tif 000012
【図１２】
0005353169.tif 000013
【図１３】
0005353169.tif 000014
【図１４】
0005353169.tif 000015