(57)【特許請求の範囲】
【請求項１】
アプリケーションプログラムをインストール可能な画像形成装置であって、
当該画像形成装置が有する第一のプログラムに対して動的に処理を割り込ませることが可能な第二のプログラムを選択させる第一の画面を表示手段に表示させ、該第一の画面において選択された前記第二のプログラムを外部記憶手段より取得する取得手段と、
ユーザからの指示に応じ、取得された前記第二のプログラムの前記第一のプログラムへの適用を、当該画像形成装置に実行させる有効化手段とを有し、
前記アプリケーションプログラムのうちの一部のアプリケーションプログラムが、当該画像形成装置を前記取得手段及び前記有効化手段として機能させる画像形成装置。
【請求項２】
取得された前記第二のプログラムの一覧を含む第二の画面を前記表示手段に表示させる管理手段を有し、
前記有効化手段は、前記一覧において選択された前記第二のプログラムを前記第一のプログラムに適用する請求項１記載の画像形成装置。
【請求項３】
前記有効化手段は、前記第一のプログラムに適用された前記第二のプログラムについて、適用されたことを示す状態情報を記憶手段に記録し、
前記管理手段は、前記状態情報に基づいて、前記一覧に含まれる前記第二のプログラムごとに前記第一のプログラムへの適用又は適用の解除を指示させる表示部品を前記第二の画面に表示させる請求項２記載の画像形成装置。
【請求項４】
前記表示部品を介して前記適用の解除が指示された前記第二のプログラムについて、前記第一のプログラムへの適用を解除する無効化手段を有する請求項３記載の画像形成装置。
【請求項５】
アプリケーションプログラムをインストール可能な画像形成装置が実行するプログラム操作方法であって、
当該画像形成装置が有する第一のプログラムに対して動的に処理を割り込ませることが可能な第二のプログラムを選択させる第一の画面を表示手段に表示させ、該第一の画面において選択された前記第二のプログラムを外部記憶手段より取得する取得手順と、
ユーザからの指示に応じ、取得された前記第二のプログラムを前記第一のプログラムに適用する有効化手順とを有し、
前記アプリケーションプログラムのうちの一部のアプリケーションプログラムが、当該画像形成装置に前記取得手順及び前記有効化手順を実行させるプログラム操作方法。
【請求項６】
取得された前記第二のプログラムの一覧を含む第二の画面を前記表示手段に表示させる管理手順を有し、
前記有効化手順は、前記一覧において選択された前記第二のプログラムを前記第一のプログラムに適用する請求項５記載のプログラム操作方法。
【請求項７】
前記有効化手順は、前記第一のプログラムに適用された前記第二のプログラムについて、適用されたことを示す状態情報を記憶手段に記録し、
前記管理手順は、前記状態情報に基づいて、前記一覧に含まれる前記第二のプログラムごとに前記第一のプログラムへの適用又は適用の解除を指示させる表示部品を前記第二の画面に表示させる請求項６記載のプログラム操作方法。
【請求項８】
前記表示部品を介して前記適用の解除が指示された前記第二のプログラムについて、前記第一のプログラムへの適用を解除する無効化手順を有する請求項７記載のプログラム操作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置及びプログラム操作方法に関し、特にプログラムの制御によって機能を実現する画像形成装置及びプログラム操作方法に関する。
【背景技術】
【０００２】
従来、特に組み込み機器等において動作するプログラムの障害解析（デバッグ等）の代表的な作業として、プログラムが出力するログの解析が行われている。すなわち、プログラムのソースコードには、プログラムが用いている変数の値や、プログラムが動作しているハードウェアの状態を示す情報等をログファイルに出力するための命令（例えば、Ｃ言語におけるｐｒｉｎｔｆ関数）が予め各所に埋め込まれている。障害が発生した際、斯かる命令（以下、「ログ出力命令」という。）に従って出力されたログファイルを解析することにより、障害の原因が推測又は特定される。
【０００３】
しかし、予め埋め込まれたログ出力命令に基づいて出力されるログファイル（最初に出力されるログファイル）では、詳細な解析を行うには情報として不十分な場合が多々ある。斯かる場合、最初に出力されるログファイルに基づいて、或る程度障害箇所が絞り込まれる。続いて、その障害箇所周辺について更に詳細なログを出力するように、プログラムのソースコードが修正され、コンパイル及びリンクが行われた上で、プログラムの置き換えが行われる。改めて出力されるログファイルによっても原因が特定できない場合は、更に、ソースコードにログ出力命令が埋め込まれ、上記作業が繰り返される。このように、ログに基づいて障害解析を行う場合、時として大変煩雑な作業が要求されていた。
【０００４】
そこで、従来、動作中のプログラムの任意の箇所（診断位置）に他のプログラム（以下、「追加プログラム」という。）の処理を動的に割り込ませる技術が存在する（例えば、特許文献１、特許文献２）。追加プログラムでは、診断対象となるプログラムの変数の値等を参照することができる。追加プログラムの処理の終了後は、診断対象となるプログラムについて追加プログラムによって割り込まれた位置に処理が復帰する。斯かる技術によれば、診断対象となるプログラムのソースコードを修正することなく、追加プログラムによって診断対象となるプログラムのログの出力が可能となる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１及び２等に記載されたシステムでは、管理サーバが必要とされる。各機器は、追加プログラムの操作に関して受動的な機能しか備えておらず、各機器への追加プログラムの導入や、各機器に導入された追加プログラムの操作は、管理サーバから指示される必要があるからである。当該管理サーバは、ユーザが所有するＰＣ（Personal Computer）又は機器の提供者側が所有するＰＣによって構築されるのが一般的であると考えられるが、いずれの場合であってもユーザにとってはあまり好ましい状況であるとはいえない。
【０００６】
すなわち、ユーザが所有するＰＣによって管理サーバが構築される場合、ユーザは、管理サーバとして利用するＰＣのコストを負担しなければならない。一方、機器の提供者側が所有するＰＣによって管理サーバが構築されるのは、セキュリティ上の観点よりユーザには抵抗が有る。
【０００７】
本発明は、上記の点に鑑みてなされたものであって、他のプログラムに対して動的に処理を割り込ませることのできるプログラムを操作させるためのシステム構成を簡素化することのできる画像形成装置及びプログラム操作方法の提供を目的とする。
【課題を解決するための手段】
【０００８】
そこで上記課題を解決するため、本発明は、画像形成装置であって、当該画像形成装置が有する第一のプグラムに対して動的に処理を割り込ませることが可能な第二のプログラムを選択させる画面を表示手段に表示させ、該画面において選択された前記第二のプログラムを外部記憶手段より取得する取得手段と、取得された前記第二のプログラムを前記第一のプログラムに適用する有効化手段とを有する。
【０００９】
このような画像形成装置では、他のプログラムに対して動的に処理を割り込ませることのできるプログラムを操作させるためのシステム構成を簡素化することができる。
【発明の効果】
【００１０】
本発明によれば、他のプログラムに対して動的に処理を割り込ませることのできるプログラムを操作させるためのシステム構成を簡素化することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。
【図２】本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。
【図３】追加プログラムを説明するための図である。
【図４】追加プログラム管理アプリの機能構成例を示す図である。
【図５】画像形成装置内における追加プログラムの状態遷移を説明するための図である。
【図６】追加プログラム管理アプリのインストール処理を説明するためのフローチャートである。
【図７】アプリ情報ファイルの例を示す図である。
【図８】追加プログラム管理アプリが実行させる画像形成装置の処理手順を説明するためのシーケンス図である。
【図９】ログイン画面の表示例を示す図である。
【図１０】管理画面の表示例を示す図である。
【図１１】状態記憶部の構成例を示す図である。
【図１２】ダウンロード画面の表示例を示す図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における画像形成装置のハードウェア構成例を示す図である。同図において、画像形成装置１０は、コントローラ１１、スキャナ１２、プリンタ１３、モデム１４、操作パネル１５、ネットワークインタフェース１６、及びＳＤカードスロット１７等のハードウェアを有する。
【００１３】
コントローラ１１は、ＣＰＵ１１１、ＲＡＭ１１２、ＲＯＭ１１３、及びＨＤＤ１１４等を有する。ＲＯＭ１１３には、各種のプログラムやプログラムによって利用されるデータ等が記録されている。ＲＡＭ１１２は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。ＣＰＵ１１１は、ＲＡＭ１１２にロードされたプログラムを処理することにより、各種の機能を実現する。ＨＤＤ１１４には、プログラムやプログラムが利用する各種のデータ等が記録される。
【００１４】
スキャナ１２は、原稿より画像データを読み取るためのハードウェアである。プリンタは１３、印刷データを印刷用紙に印刷するためのハードウェアである。モデム１４は、電話回線に接続するためのハードウェアであり、ＦＡＸ通信による画像データの送受信を実行するために用いられる。操作パネル１５は、ユーザからの入力の受け付けを行うめのボタン等の入力手段や、液晶パネル等の表示手段を備えたハードウェアである。ネットワークインタフェース１６は、ＬＡＮ等のネットワーク（有線又は無線の別は問わない。）に接続するためのハードウェアである。ＳＤカードスロット１７は、ＳＤカード８０に記録されたプログラムを読み取るために利用される。すなわち、画像形成装置１０では、ＲＯＭ１１３に記録されたプログラムだけでなく、ＳＤカード８０に記録されたプログラムもＲＡＭ１１２にロードされ、実行されうる。なお、他の記録媒体（例えば、ＣＤ−ＲＯＭ又はＵＳＢ（Universal Serial Bus）メモリ等）によってＳＤカード８０が代替されてもよい。すなわち、ＳＤカード８０の位置付けに相当する記録媒体の種類は、所定のものに限定されない。この場合、ＳＤカードスロット１７は、記録媒体の種類に応じたハードウェアによって代替されればよい。
【００１５】
図２は、本発明の実施の形態における画像形成装置のソフトウェア構成例を示す図である。同図において、画像形成装置１０は、標準アプリ１２１、ＳＤＫアプリ１２２、ＳＤＫプラットフォーム１２３、アプリ管理サービス１２４、追加プログラム制御部１２５、コントロールサービス１２６、及びＯＳ１２７等を有する。
【００１６】
ＯＳ１２７は、いわゆるＯＳ（Operating System）である。画像形成装置１０上の各ソフトウェアは、ＯＳ１２７上においてプロセス又はスレッドとして動作する。
【００１７】
コントロールサービス１２６は、上位ソフトウェアモジュール群より共通に利用されるサービス提供するソフトウェアモジュール群である。同図ではコントロールサービス１２６の一部として認証処理部１２６１が例示されている。認証処理部１２６１は、ユーザ名及びパスワードの入力に応じ、認証処理を実行するといったサービスを提供する。なお、その他、ネットワーク通信に関するサービス、スキャナの制御に関するサービス、プリンタの制御に関するサービス、メモリの管理に関するサービス等を提供するソフトウェアモジュールがコントロールサービス１２６に含まれる。
【００１８】
標準アプリ１２１は、画像形成装置１０に標準的に（出荷時に予め）実装されているアプリケーションの集合である。同図では、スキャンアプリ１２１１、印刷アプリ１２１２、コピーアプリ１２１３、及びＦＡＸアプリ１２１４が例示されている。スキャンアプリ１２１１は、スキャンジョブを実行する。印刷アプリ１２１２は印刷ジョブを実行する。コピーアプリ１２１３は、コピージョブを実行する。ＦＡＸアプリ１２１４は、ＦＡＸの送信ジョブ又は受信ジョブを実行する。
【００１９】
ＳＤＫアプリ１２２は、画像形成装置１０の出荷後において、画像形成装置１０の機能拡張を図るためのプラグインとして随時インストール又はアンインストール可能なアプリケーションである。同図では、ＳＤＫアプリ１２２として、追加プログラム管理アプリ１２２１が例示されている。追加プログラム管理アプリ１２２１は、追加プログラムを操作させるためのインタフェースをユーザに提供するＳＤＫアプリ１２２である。
【００２０】
ＳＤＫプラットフォーム１２３は、ＳＤＫアプリ１２２の実行環境を提供する。各ＳＤＫアプリ１２２は、ＳＤＫプラットフォーム１２３が提供するＡＰＩ（Application Program Interface）（以下、「ＳＤＫＡＰＩ」という。）を利用して開発される。例えば、ＳＤＫプラットフォーム１２３は、スキャン機能を利用させるためのＳＤＫＡＰＩ、印刷機能を利用させるためのＳＤＫＡＰＩ、コピー機能を利用させるためのＳＤＫＡＰＩ等をＳＤＫアプリ１２２に提供する。ＳＤＫプラットフォーム１２３は、ＳＤＫＡＰＩの呼び出しに応じ、コントロールサービス１２６によって提供されている機能を利用することにより、当該ＳＤＫＡＰＩに応じたサービスを実現する。すなわち、ＳＤＫプラットフォーム１２３は、コントロールサービス１２６のインタフェースを隠蔽し、より分かり易いＡＰＩをＳＤＫアプリ１２２の開発者に提供するという役割も担う。なお、ＳＤＫＡＰＩは公開されており、サードベンダ等によってもＳＤＫアプリ１２２は開発されうる。
【００２１】
アプリ管理サービス１２４は、ＳＤＫアプリ１２２の管理を行う。具体的には、アプリ管理サービス１２４は、ＳＤＫアプリ１２２のインストール、アンインストールを実行する。アプリ管理サービス１２４は、また、ＨＤＤ１１４を用いて、インストールされているＳＤＫアプリ１２２の一覧情報を管理する。
【００２２】
追加プログラム制御部１２５は、追加プログラム管理アプリ１２２１からの指示に応じ、追加プログラムの動作を制御する。
【００２３】
追加プログラムについて説明する。図３は、追加プログラムを説明するための図である。
【００２４】
図３において、５０１は、追加プログラム５０５が適用されるプログラムにおける仮想メモリ上における命令の配列を示す。プログラム５０１は、追加プログラム５０１が適用される前（通常実行時）は、命令１、２、３の順で処理を実行する。５０１ａは、プログラム５０１に追加プログラム５０１が適用された状態を示す。ここでは、命令１と命令２との間に追加プログラム５０５の処理を割り込ませる例が示されている。この場合、命令２がテーブル５０２への分岐命令に置き換えられる。テーブル５０２には、初期化処理、前処理（変数のスタックへの退避等）、追加プログラム５０５の呼び出し処理、後処理（スタックに退避されていた変数等の取り出し等）の後に命令２が実行され、プログラム５０１の命令３に戻るような定義がされている。
【００２５】
すなわち、追加プログラムが適用される場合、適用対象とされたプログラムの実行ステップが予め指定された箇所（追加位置）に到達すると、追加プログラムの処理が実行される。当該追加プログラムの処理が終了すると、適用対象とされたプログラムに処理制御が復帰する。その後、適用対象とされたプログラムは、追加位置より処理を再開する。なお、追加プログラムには、適用対象のプログラムに割り込ませる処理の他、適用対象とするプログラム及び追加位置を識別するための情報が含まれている。
【００２６】
追加プログラム内では、適用対象とされるプログラムの変数等を参照可能である。したがって、追加プログラムによって、適用対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させるための処理や、バグを修正するための処理や、新たな機能を実現するための処理等を適用対象とされるプログラムに割り込ませることができる。
【００２７】
斯かる追加プログラムによれば、適用対象とされるプログラムについて、ソースコードの修正、コンパイル及びリンク、更に、再インストール等を行うことなく（すなわち、動的に）、ログ情報の出力、バグの修正、又は機能強化等を図ることができる。
【００２８】
なお、本実施の形態において、追加プログラムを適用対象のプログラムに適用し、実行可能な状態とすること、すなわち、追加プログラムをメモリ上にロードし、適用対象のプログラムにロードされた追加プログラムの分岐命令を挿入することを追加プログラムの「有効化」という。すなわち、追加プログラムは、画像形成装置１０内に保存されているだけでは機能せず、有効化されることにより適用対象のプログラムに処理を割り込ませることができる。
【００２９】
追加プログラム管理アプリ１２２１の詳細について説明する。図４は、追加プログラム管理アプリの機能構成例を示す図である。同図において、追加プログラム管理アプリ１２２１は、認証制御部２１、管理部２２、取得部２３、送信部２４、有効化部２５、無効化部２６、削除部２７、及び状態記憶部２８等を含む。
【００３０】
認証制御部２１は、操作者が追加プログラム管理アプリ１２２１の利用権限を有するか否かを判定するための処理を制御する。認証制御部２１によって利用権限が有ることが確認された場合、操作者は、追加プログラム管理アプリ１２２１の利用が許可される。管理部２２は、追加プログラムに関する操作指示を受け付けるための画面を操作パネル１５に表示させ、当該画面を介して入力される操作指示に応じた処理を起動させる。
【００３１】
取得部２３は、追加プログラムを外部記憶媒体３０より取得（ダウンロード）する。外部記憶媒体３０は、画像形成装置１０にセットされたＳＤカード又はＵＳＢメモリ等の携帯型の記憶媒体であってもよいし、画像形成装置１０とネットワークを介して接続されるＰＣ（Personal Computer）等のコンピュータであってもよい。いずれの形態の外部記憶媒体３０においても、各追加プログラムはその識別子（追加プログラムＩＤ）と関連付けられて記憶されている。なお、取得部２３によって取得された追加プログラムは、追加プログラムＩＤと関連付けられてＨＤＤ１１４に保存される。
【００３２】
送信部２４は、取得部２３によって取得された追加プログラム（ＨＤＤ１１４に保存されている追加プログラム）を追加プログラム制御部１２５に送信する。有効化部２５は、ユーザによる指示入力に応じ、追加プログラムの有効化を追加プログラム制御部１２５に指示する。無効化部２６は、ユーザによる指示入力に応じ、追加プログラムの無効化を追加プログラム制御部１２５に指示する。無効化とは、追加プログラムの適用を解除することをいう。削除部２７は、ユーザによる指示入力に応じ、ＨＤＤ１１４に保存されている追加プログラムを削除する。状態記憶部２８は、ＨＤＤ１１４において、追加プログラムの状態を示す情報（状態情報）を記憶する記憶領域（例えば、ファイル又はデータベース等）である。
【００３３】
本実施の形態において、追加プログラムの状態は、図５に示されるように遷移する。図５は、画像形成装置内における追加プログラムの状態遷移を説明するための図である。同図に示されるように、追加プログラムは、画像形成装置１０内において未受信状態、受信済み状態、又は有効状態のうちのいずれかの状態にある。
【００３４】
未受信状態は、追加プログラムが外部記憶媒体３０から受信（ダウンロード）されていない状態（すなわち、画像形成装置１０内に存在していない状態）である。画像形成装置１０へダウンロードされると、追加プログラムの状態は受信済み状態へ遷移（変化）する。受信済み状態の追加プログラムは、単にメモリＨＤＤ１１４に保存されているだけであり、適用対象のプログラムには適用されていない。したがって、受信済み状態の追加プログラムは実行されることはない。受信済み状態において有効化が指示されると、追加プログラムの状態は有効状態へ遷移する。有効状態の追加プログラムは、適用対象のプログラムの実行ステップが追加位置に到達すると、当該適用対象のプログラムに対して処理を割り込ませる。
【００３５】
有効状態において無効化が指示されると、追加プログラムの状態は受信済み状態へ戻る。有効状態又は受信済み状態において、追加プログラムが削除されると、追加プログラムの状態は、未受信状態へ戻る。但し、有効状態において削除された場合、追加プログラムは、無効化された後、削除される。
【００３６】
なお、各状態の遷移は、ユーザによる操作指示の入力に応じて発生する。換言すれば、図５における各矢印は、追加プログラムに対してユーザが入力可能な操作指示に相当する。
【００３７】
以下、画像形成装置１０の処理手順について説明する。図６は、追加プログラム管理アプリのインストール処理を説明するためのフローチャートである。すなわち、図６の開始時においては、追加プログラム管理アプリ１２２１は画像形成装置１０にインストールされていない。
【００３８】
ステップＳ１０１において、アプリ管理サービス１２４は、インストール画面を操作パネル１５に表示させる。インストール画面では、インストール対象とするＳＤＫアプリ１２２（ここでは、追加プログラム管理アプリ１２２１）が記憶されている場所が指定される。当該場所は、例えば、画像形成装置１０にセットされているＳＤカードや、画像形成装置１０とネットワークを介して接続されているコンピュータ等である。
【００３９】
インストール対象の記憶場所の指定に応じ、アプリ管理サービス１２４は、当該記憶場所に記憶されている追加プログラム管理アプリ１２２１の書庫ファイルを取得する（Ｓ１０２）。続いて、アプリ管理サービス１２４は、書庫ファイルを解凍し、当該書庫ファイル内に格納されている追加プログラム管理アプリ１２２１の実行ファイルのインストールを実行する（Ｓ１０３）。インストール処理の一環として、アプリ管理サービス１２４は、当該書庫ファイルに格納されているアプリ情報ファイルをＨＤＤ１１４の所定の記憶位置に保存する。なお、アプリ情報ファイルは、各ＳＤＫアプリ１２２について共通の形式によって記述される。
【００４０】
図７は、アプリ情報ファイルの例を示す図である。同図のアプリ情報ファイルは、＜ａｐｐｌｉｃａｔｉｏｎ＞タグで囲まれたａｐｐｌｉｃａｔｉｏｎ要素をルート要素とするＸＭＬ（eXtensible Markup Language）形式によって記載されている。
【００４１】
ａｐｐｌｉｃａｔｉｏｎ要素の各子要素は、ＳＤＫアプリ１２２の属性項目に相当する。すなわち、ｐｒｏｄｕｃｔｉｄ要素の値は、追加プログラム管理アプリ１２２１のプロダクトＩＤの値を示す。プロダクトＩＤは、ＳＤＫアプリ１２２の製品単位（種別単位）に一意なＩＤである。ｎａｍｅ要素の値は、アプリケーション名を示す。ｄｅｓｃｒｉｐｔｉｏｎ要素の値は、ＳＤＫアプリ１２２に関する説明を示す。ｖｅｒｓｉｏｎ要素の値は、ＳＤＫアプリ１２２のバージョンを示す。ｖｅｎｄｏｒ要素の値は、ＳＤＫアプリ１２２の開発ベンダを示す。ｅ−ｍａｉｌ要素、ｔｅｌ要素、及びｆａｘ要素のそれぞれの値は、当該開発ベンダのｅ−ｍａｉｌアドレス、電話番号、ＦＡＸ番号を示す。ｉｎｓｔａｌｌｍｅｓｓａｇｅ要素の値は、インストールが成功したときに表示させるメッセージである。
【００４２】
なお、ＳＤＫアプリ１２２のインストールに応じてアプリ情報ファイルがＨＤＤ１１４の所定の記憶位置に保存されることにより、画像形成装置１０にインストールされているＳＤＫアプリ１２２の一覧等の把握が可能となる。
【００４３】
インストールが完了すると、アプリ管理サービス１２４は、アプリ情報ファイルのｉｎｓｔａｌｌｍｅｓｓａｇｅ要素の値を操作パネル１５に表示させる（Ｓ１０４）。ここでは、「追加プログラム管理アプリのインストールによって他のプログラムの動作の動的な改変が可能となります。」といったメッセージが表示される。当該メッセージにより、画像形成装置１０が有するプログラムに関するセキュリティについて、ユーザの注意を喚起することができる。すなわち、追加プログラムは適用対象のプログラムの振る舞いを動的に変更することができるという利便性を有するが、斯かる利便性は、セキュリティの劣化という副作用を伴う可能性が有るからである。
【００４４】
追加プログラム管理アプリ１２２１がインストールされることにより、追加プログラム制御部１２５の機能は実質的に有効となる。追加プログラム管理アプリ１２２１によって利用されることにより、追加プログラム制御部１２５は機能するからである。
【００４５】
続いて、追加プログラム管理アプリ１２２１がインストールされた後の画像形成装置１０の処理について説明する。
【００４６】
図８は、追加プログラム管理アプリが実行させる画像形成装置の処理手順を説明するためのシーケンス図である。
【００４７】
ステップＳ２０１において、操作者によって操作パネル１５上の所定のハードキーが押下されると、当該ハードキーの押下イベントがアプリ管理サービス１２４に通知される。なお、操作パネル１５には、標準アプリ１２１ごとにハードキー（アプリケーションの選択キー）が配置されている。標準アプリ１２１は、画像形成装置１０に組み込まれているため、その存在は固定的なものだからである。一方、ＳＤＫアプリ１２２の存在は流動的である。したがって、ＳＤＫアプリ１２２については、その集合に対して一つのハードキー（ＳＤＫアプリ選択キー）が割り当てられている。ステップＳ２０１では、当該ＳＤＫアプリ選択キーが押下される。
【００４８】
アプリ管理サービス１２４は、ＳＤＫアプリ選択キーの押下に応じ、ＳＤＫアプリ一覧画面を操作パネル１５に表示させる（Ｓ２０２）。ＳＤＫアプリ一覧画面では、画像形成装置１０にインストールされているＳＤＫアプリ１２２ごとに起動ボタンが表示される。したがって、本実施の形態では、追加プログラム管理アプリ１２２１の起動ボタンも表示される。なお、アプリ管理サービス１２４は、ＨＤＤ１１４に記録されているアプリ情報ファイル群に基づいて、ＳＤＫアプリ一覧画面を表示させる。
【００４９】
ＳＤＫアプリ一覧画面において追加プログラム管理アプリ１２２１のボタンが選択されると（Ｓ２０３）、アプリ管理サービス１２４は、追加プログラム管理アプリ１２２１を操作対象として起動させる（Ｓ２０４）。追加プログラム管理アプリ１２２１の認証制御部２１は、起動に応じ、ログイン画面を操作パネル１５に表示させる（Ｓ２０５）。
【００５０】
図９は、ログイン画面の表示例を示す図である。同図に示されるように、ログイン画面７１０は、ユーザ名及びパスワードの入力欄を有する。
【００５１】
ログイン画面７１０に対してユーザ名及びパスワード等の認証情報が入力され、ログインボタン７１１が押下されると（Ｓ２０６）、認証制御部２１は、認証処理部１２６１にユーザ名及びパスワードを入力し、認証の実行を要求する（Ｓ２０７）。認証制御部２１は、入力されたユーザ名及びパスワードを、予めＨＤＤ１１４に記録されているユーザ情報に含まれているユーザ名及びパスワードと照合することにより認証を行い（Ｓ２０８）、認証結果を認証制御部２１に出力する（Ｓ２０９）。
【００５２】
認証処理部１２６１より出力された認証結果が認証の成功を示すものである場合、追加プログラム管理アプリ１２２１の管理部２２は、管理画面を操作パネル１５に表示させる（Ｓ２１０）。
【００５３】
図１０は、管理画面の表示例を示す図である。同図において、管理画面７２０は、全選択ボタン７２１、全選択解除ボタン７２２、削除ボタン７２３、ダウンロードボタン７２４、及び追加プログラム一覧テーブル７２５等を有する。
【００５４】
追加プログラム一覧テーブル７２５には、画像形成装置１０に既にダウンロードされている追加プログラムごとに、チェックボタン、追加プログラムＩＤ、追加プログラム名、及び操作ボタン等が表示される。チェックボタンは、操作対象の追加プログラムを選択させるためのボタンである。操作ボタンは、追加プログラムの有効化又は無効化の指示入力を受け付けるためのボタンである。有効状態の追加プログラムについては、操作ボタンのラベルには「無効化」という文字列が表示される。受信済み状態の追加プログラム（すなわち、有効化されている追加プログラム）の操作ボタンのラベルには「有効化」という文字列が表示される。すなわち、操作ボタンの押下に応じて実行される処理は、当該操作ボタンに対応する追加プログラムの状態に応じて異なる。なお、管理部２２は、状態記憶部２８に記録されている情報に基づいて追加プログラム一覧テーブル７２５の内容を表示させる。
【００５５】
図１１は、状態記憶部の構成例を示す図である。同図において、状態記憶部２８は、追加プログラムごとに、追加プログラムＩＤ、追加プログラム名、及び状態等を記憶している。
【００５６】
図１０に戻る。全選択ボタン７２１は、追加プログラム一覧テーブル７２５に含まれている全てのチェックボタンを選択させるためのボタンである。全選択解除ボタン７２２は、追加プログラム一覧テーブル７２５に含まれている全てのチェックボタンの選択状態を解除させるためのボタンである。削除ボタン７２３は、追加プログラム一覧テーブル７２５においてチェックボタンが選択状態となっている追加プログラムの削除指示を受け付けるためのボタンである。ダウンロードボタン７２４は、外部記憶媒体３０からの追加プログラムのダウンロード指示を受け付けるためのボタンである。
【００５７】
管理画面７２０において、ダウンロードボタン７２４が押下されると（Ｓ２１１）、追加プログラム管理アプリ１２２１の取得部２３は、ダウンロード画面を操作パネル１５に表示させる（Ｓ２１２）。
【００５８】
図１２は、ダウンロード画面の表示例を示す図である。同図において、ダウンロード画面７３０は、参照ボタン７３１、テキストボックス７３２、ダウンロードボタン７３３、及びリセットボタン７３４等を有する。
【００５９】
参照ボタン７３１が押下されると、取得部２３は、外部記憶媒体３０に記憶されている追加プログラムのファイルの一覧を表示させるファイルダイアログを操作パネル１５に表示させる。ファイルダイアログにおいて所望の追加プログラムが選択されると、取得部２３は、選択された追加プログラムをダウンロード対象として認識し、ファイルダイアログを非表示にした後に当該追加プログラムのファイル名をテキストボックス７３２に表示させる。リセットボタン７３４が押下されると、取得部２３は、テキストボックス７３２の内容（すなわち、ダウンロード対象の追加プログラムのファイル名）をクリアする。
【００６０】
ダウンロードボタン７３３が押下されると（Ｓ２１３）、取得部２３は、テキストボックス７３２にファイル名が表示されている追加プログラムを外部記憶媒体３０よりダウンロードし、ダウンロードされた追加プログラムをＨＤＤ１１４に保存する（Ｓ２１４、Ｓ２１５）。ダウンロードに応じ、取得部２３は、ダウンロードされた追加プログラムに関するレコードを状態記憶部２８に追加する。この際、当該レコードの状態には「受信済み」が記録される。
【００６１】
ダウンロードが完了すると、管理部２２は、改めて管理画面７２０を操作パネル１１５に表示させる（Ｓ２１６）。このときの管理画面７２０の表示内容は、更新後の状態記憶部２８に基づくため、ステップＳ２１０における表示内容と異なる。すなわち、新たにダウンロードされた追加プログラムに関する行が追加プログラム一覧テーブル７２５に追加されている。
【００６２】
続いて、管理画面７２０の追加プログラム一覧テーブル７２５において、ラベルが「有効化」である操作ボタンが押下されると（Ｓ２１７）、送信部２４は、押下された操作ボタンに対応する追加プログラムをＨＤＤ１１４より取得し、追加プログラム制御部１２５に送信する（Ｓ２１８）。追加プログラム制御部１２５は、受信した追加プログラムを実行可能なようにメモリ上にロードする。続いて、追加プログラム管理アプリ１２２１の有効化部２５は、送信部２４によって送信された追加プログラムの追加プログラムＩＤを指定して、当該追加プログラムの有効化の指示を追加プログラム制御部１２５に送信する（Ｓ２１９）。有効化の指示に応じ、追加プログラム制御部１２５は、指定された追加プログラムＩＤに対応する追加プログラムを有効化する（Ｓ２２０）。すなわち、当該追加プログラムへの分岐命令が適用対象のプログラム（標準アプリ１２１やＳＤＫアプリ１２２等）に挿入される。したがって、以降において、当該適用対象のプログラムの追加位置が実行される際には、追加プログラムが実行される。その結果、追加プログラムに組み込まれている機能（例えば、ログの出力、バグの修正、又は機能拡張等）が適用対象のプログラムに追加される。
【００６３】
続いて、追加プログラム制御部１２５は、有効化の実行結果（成否）を有効化部２５に返信する（Ｓ２２１）。有効化部２５は、当該実行結果を示すメッセージを操作パネル１５に表示させる（Ｓ２２２）。有効化に成功した場合、有効化部２５は、有効化された追加プログラムについて、状態記憶部２８に記憶されている状態の値を「有効」に更新する。
【００６４】
一方、管理画面７２０の追加プログラム一覧テーブル７２５において、ラベルが「無効化」である操作ボタンが押下されると（Ｓ２３１）、無効化部２６は、押下された操作ボタンに対応する追加プログラムの追加プログラムＩＤを指定して、当該追加プログラムの無効化の指示を追加プログラム制御部１２５に送信する（Ｓ２３２）。無効化の指示に応じ、追加プログラム制御部１２５は、指定された追加プログラムＩＤに対応する追加プログラムを無効化する（Ｓ２３３）。すなわち、当該追加プログラムの適用対象のプログラムへの適用が解除される。より具体的には、当該追加プログラムへの分岐命令が適用対象のプログラムから除去される。その結果、適用対象のプログラムの振る舞いは本来のものに戻る。なお、無効化に成功した場合、無効化部２６は、無効化された追加プログラムについて、状態記憶部２８に記憶されている状態の値を「受信済み」に更新する。
【００６５】
また、管理画面７２０において削除ボタン７２３が押下されると（Ｓ２４１）、追加プログラム管理アプリ１２２１の削除部２７は、追加プログラム一覧テーブル７２５においてチェックボタンが選択状態となっている追加プログラムをＨＤＤ１１４より削除する（Ｓ２４２）。削除に成功した場合、削除部２７は、削除された追加プログラムについて、状態記憶部２８に記憶されている状態の値を「未受信」に更新する。
【００６６】
上述したように、本実施の形態の画像形成装置１０は、特許文献１等に記載された管理サーバが有している機能を実現する追加プログラム管理アプリ１２２１を内包する。したがって、追加プログラムに関する操作を一台の画像形成装置１０において独立して行わせることができる。その結果、管理サーバの設置等は不要となり、より簡素なシステム構成によって追加プログラムを利用することが可能となる。
【００６７】
また、追加プログラム管理アプリ１２２１を、ＳＤＫアプリ１２２の一つとして実装することにより、画像形成装置１０が有する認証機能等をそのまま追加プログラム管理アプリ１２２１に共用させることができる。その結果、画像形成装置１０が有するアクセス制御機能に応じて、追加プログラム管理アプリ１２２１の利用制限を行うことが可能となる。
【００６８】
また、システム構成が簡素化されることにより、追加プログラムの操作に関して各画像形成装置１０の独立性を向上させることができる。具体的には、複数の画像形成装置１０に対して一台の管理サーバを設置する場合、当該管理サーバに障害が発生すると、全ての画像形成装置１０に対して追加プログラムの操作が行えなくなる。一方、本実施の形態のように、画像形成装置１０ごとに追加プログラムの操作が行われることにより、そのような不都合の発生を回避することができる。
【００６９】
また、追加プログラム管理アプリ１２２１は、ユーザの任意によってインストール又はアンインストールが可能なアプリケーションである。したがって、追加プログラム管理アプリ１２２１をインストールすることによる利便性と不利益とを比較考量した上で、追加プログラムの適用を可能な環境とするか否かを画像形成装置１０ごとにユーザに判断させることができる。追加プログラム管理アプリ１２２１をインストールすることによる利便性とは、画像形成装置１０に組み込まれている又はインストールされているプログラムの振る舞いを動的に変化させることが可能となることである。追加プログラム管理アプリ１２２１をインストールすることによる不利益とは、画像形成装置１０に組み込まれている又はインストールされているプログラムの振る舞いを動的に変化させることが可能となることにより、例えば、Ｐ２６００等、セキュリティに関する認証の対象外となる可能性があることである。
【００７０】
なお、追加プログラム管理アプリ１２２１の各種画面は、Ｗｅｂページ（ＨＴＭＬ（HyperText Markup Language）データ）としてネットワーク上において流通可能としてもよい。そうすることにより、操作パネル１５のみではなく、画像形成装置１０とネットワークを介して接続するＰＣ（Personal Computer）等のＷｅｂブラウザより追加プログラム管理アプリ１２２１の操作を行わせることができる。
【００７１】
また、本実施の形態では画像形成装置を電子機器の一例としたが、本発明を適用可能な電子機器は画像形成装置に限定されない。例えば、各種のデジタル家電、携帯機器、又は汎用的なコンピュータ等に対しても本発明は有効に適用されうる。
【００７２】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７３】
１０          画像形成装置
１１          コントローラ
１２          スキャナ
１３          プリンタ
１４          モデム
１５          操作パネル
１６          ネットワークインタフェース
１７          ＳＤカードスロット
２１          認証制御部
２２          管理部
２３          取得部
２４          送信部
２５          有効化部
２６          無効化部
２７          削除部
２８          状態記憶部
３０          外部記憶媒体
１２１        標準アプリ
１２２        ＳＤＫアプリ
１２３        ＳＤＫプラットフォーム
１２４        アプリ管理サービス
１２５        追加プログラム制御部
１２６        コントロールサービス
１２７        及びＯＳ
１２２１      追加プログラム管理アプリ
１２６１      認証処理部
【先行技術文献】
【特許文献】
【００７４】
【特許文献１】特開２００９−１４６３８７号公報
【特許文献２】特開２００８−２６９１６３号公報
【図１】
0005471277.tif 000002
【図２】
0005471277.tif 000003
【図３】
0005471277.tif 000004
【図４】
0005471277.tif 000005
【図５】
0005471277.tif 000006
【図６】
0005471277.tif 000007
【図７】
0005471277.tif 000008
【図８】
0005471277.tif 000009
【図９】
0005471277.tif 000010
【図１０】
0005471277.tif 000011
【図１１】
0005471277.tif 000012
【図１２】
0005471277.tif 000013