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