(57)【要約】【課題】他のプログラムに動的に処理を割り込ませることが可能なプログラムの適切な適用を支援すること。【解決手段】ネットワークを介して接続される機器が有するプログラムに動的に処理を割り込ませることが可能な追加プログラムのうち、前記機器に送付済の前記追加プログラムの一覧情報を記憶した一覧情報記憶手段と、前記追加プログラムについて、有効化が可能となる組み合わせを示す組み合わせ情報を記憶した組み合わせ情報記憶手段と、前記一覧情報及び前記組み合わせ情報に基づいて、前記機器に送付済の前記追加プログラムの有効化の可否を判定する判定手段と、有効化は不可能であると判定された場合に、前記組み合わせ情報が示す組み合わせに対して不足している追加プログラムを前記機器に送信する送信手段とを有し、前記追加プログラムは、有効化されることにより適用対象とされたプログラムに対して動的に処理を割り込ませる。【選択図】図６
2011018133.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される機器が有するプログラムに動的に処理を割り込ませることが可能な追加プログラムのうち、前記機器に送付済の前記追加プログラムの一覧情報を記憶した一覧情報記憶手段と、
前記追加プログラムについて、有効化が可能となる組み合わせを示す組み合わせ情報を記憶した組み合わせ情報記憶手段と、
前記一覧情報及び前記組み合わせ情報に基づいて、前記機器に送付済の前記追加プログラムの有効化の可否を判定する判定手段と、
有効化は不可能であると判定された場合に、前記組み合わせ情報が示す組み合わせに対して不足している追加プログラムを前記機器に送信する送信手段とを有し、
前記追加プログラムは、有効化されることにより適用対象とされたプログラムに対して動的に処理を割り込ませる情報処理装置。
【請求項２】
有効化が可能であると判定された場合に、前記追加プログラムの有効化の指示を前記機器に送信する有効化指示手段を有する請求項１記載の情報処理装置。
【請求項３】
有効化が可能であると判定された場合に、ユーザによる、前記追加プログラムの有効化の指示入力を可能とする画面を表示させる表示制御手段を有し、
前記有効化指示手段は、前記画面を介した有効化の指示入力に応じ、前記追加プログラムの有効化の指示を前記機器の送信する請求項２記載の情報処理装置。
【請求項４】
コンピュータが実行する情報処理方法であって、
ネットワークを介して接続される機器が有するプログラムに動的に処理を割り込ませることが可能な追加プログラムのうち、前記機器に送付済の前記追加プログラムの一覧情報を記憶した一覧情報記憶手段と、前記追加プログラムについて、有効化が可能となる組み合わせを示す組み合わせ情報を記憶した組み合わせ情報記憶手段とに基づいて、前記機器に送付済の前記追加プログラムの有効化の可否を判定する判定手順と、
有効化は不可能であると判定された場合に、前記組み合わせ情報が示す組み合わせに対して不足している追加プログラムを前記機器に送信する送信手順とを有し、
前記追加プログラムは、有効化されることにより適用対象とされたプログラムに対して動的に処理を割り込ませる情報処理方法。
【請求項５】
有効化が可能であると判定された場合に、前記追加プログラムの有効化の指示を前記機器に送信する有効化指示手順を有する請求項４記載の情報処理方法。
【請求項６】
有効化が可能であると判定された場合に、ユーザによる、前記追加プログラムの有効化の指示入力を可能とする画面を表示させる表示制御手順を有し、
前記有効化指示手順は、前記画面を介した有効化の指示入力に応じ、前記追加プログラムの有効化の指示を前記機器の送信する請求項５記載の情報処理方法。
【請求項７】
コンピュータに、
ネットワークを介して接続される機器が有するプログラムに動的に処理を割り込ませることが可能な追加プログラムのうち、前記機器に送付済の前記追加プログラムの一覧情報を記憶した一覧情報記憶手段と、前記追加プログラムについて、有効化が可能となる組み合わせを示す組み合わせ情報を記憶した組み合わせ情報記憶手段とに基づいて、前記機器に送付済の前記追加プログラムの有効化の可否を判定する判定手順と、
有効化は不可能であると判定された場合に、前記組み合わせ情報が示す組み合わせに対して不足している追加プログラムを前記機器に送信する送信手順とを実行させ、
前記追加プログラムは、有効化されることにより適用対象とされたプログラムに対して動的に処理を割り込ませるプログラム。
【請求項８】
有効化が可能であると判定された場合に、前記追加プログラムの有効化の指示を前記機器に送信する有効化指示手順を有する請求項７記載のプログラム。
【請求項９】
有効化が可能であると判定された場合に、ユーザによる、前記追加プログラムの有効化の指示入力を可能とする画面を表示させる表示制御手順を有し、
前記有効化指示手順は、前記画面を介した有効化の指示入力に応じ、前記追加プログラムの有効化の指示を前記機器の送信する請求項８記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関し、特に他のプログラムに動的に処理を割り込ませるプログラムを機器に送信する情報処理装置、情報処理方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、特に組み込み機器等において動作するプログラムの障害解析（デバッグ等）の代表的な作業として、プログラムが出力するログの解析が行われている。すなわち、プログラムのソースコードには、プログラムが用いている変数の値や、プログラムが動作しているハードウェアの状態を示す情報等をログファイルに出力するための命令（例えば、Ｃ言語におけるｐｒｉｎｔｆ関数）が予め各所に埋め込まれている。障害が発生した際、斯かる命令（以下、「ログ出力命令」という。）に従って出力されたログファイルを解析することにより、障害の原因が推測又は特定される。
【０００３】
しかし、予め埋め込まれたログ出力命令に基づいて出力されるログファイル（最初に出力されるログファイル）では、詳細な解析を行うには情報として不十分な場合が多々ある。斯かる場合、最初に出力されるログファイルに基づいて、或る程度障害箇所が絞り込まれる。続いて、その障害箇所周辺について更に詳細なログを出力するように、プログラムのソースコードが修正され、コンパイル及びリンクが行われた上で、プログラムの置き換えが行われる。改めて出力されるログファイルによっても原因が特定できない場合は、更に、ソースコードにログ出力命令が埋め込まれ、上記作業が繰り返される。このように、ログに基づいて障害解析を行う場合、時として大変煩雑な作業が要求されていた。
【０００４】
そこで、従来、動作中のプログラムの任意の箇所（診断位置）に当該プログラムの診断用プログラムの処理を動的に（実行時に）割り込ませる技術が存在する。診断用プログラムでは、診断対象となるプログラムの変数の値等を参照することができる。診断用プログラムの処理の終了後は、診断対象となるプログラムについて診断用プログラムによって割り込まれた位置に処理が復帰する。斯かる技術によれば、診断対象となるプログラムのソースコードを修正することなく、診断用プログラムによって診断対象となるプログラムのログの出力が可能となる。これらの技術は、ソースコードを動的に修正することが出来るため、デバッグ用の診断プログラムだけではなく、プログラムの挙動を変えて、プログラムに新たな機能を追加したり、バグを修正したりすることが可能である。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、追加プログラムは複数の追加プログラムで一つの機能拡張を実現したり、あるいは、一つのバグの修正を実現したりする場合がある。この場合、当該複数の追加プログラの一部が不足していると、目的（機能拡張又はバグ修正等）を達成することができないばかりか、適用対象とされるプログラムの安定した動作が保証されなくなってしまう可能性がある。
【０００６】
本発明は、上記の点に鑑みてなされたものであって、他のプログラムに動的に処理を割り込ませることが可能なプログラムの適切な適用を支援することができる情報処理装置、情報処理方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【０００７】
そこで上記課題を解決するため、本発明は、ネットワークを介して接続される機器が有するプログラムに動的に処理を割り込ませることが可能な追加プログラムのうち、前記機器に送付済の前記追加プログラムの一覧情報を記憶した一覧情報記憶手段と、前記追加プログラムについて、有効化が可能となる組み合わせを示す組み合わせ情報を記憶した組み合わせ情報記憶手段と、前記一覧情報及び前記組み合わせ情報に基づいて、前記機器に送付済の前記追加プログラムの有効化の可否を判定する判定手段と、有効化は不可能であると判定された場合に、前記組み合わせ情報が示す組み合わせに対して不足している追加プログラムを前記機器に送信する送信手段とを有し、前記追加プログラムは、有効化されることにより適用対象とされたプログラムに対して動的に処理を割り込ませる。
【０００８】
このような情報処理装置では、他のプログラムに動的に処理を割り込ませることが可能なプログラムの適切な適用を支援することができる。
【発明の効果】
【０００９】
本発明によれば、他のプログラムに動的に処理を割り込ませることが可能なプログラムの適切な適用を支援することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態における機器管理システムの構成例を示す図である。
【図２】追加プログラムの概要を説明するための図である。
【図３】本発明の実施の形態における機器のハードウェア構成例を示す図である。
【図４】本発明の実施の形態における機器のソフトウェア構成例を示す図である。
【図５】本発明の実施の形態における管理サーバのハードウェア構成例を示す図である。
【図６】本発明の実施の形態における管理サーバの機能構成例を示す図である。
【図７】管理サーバによる処理手順を説明するためのフローチャートである。
【図８】状態情報記憶部の構成例を示す図である。
【図９】送付画面の表示例を示す図である。
【図１０】組み合わせ情報記憶部の構成例を示す図である。
【図１１】各フィルタと各追加プログラムとの関係を示す図である。
【図１２】有効化画面の表示例を示す図である。
【図１３】有効化画面の第二の表示例を示す図である。
【図１４】機器管理システムの処理手順を説明するためのシーケンス図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における機器管理システムの構成例を示す図である。図１の機器管理システム１において、管理サーバ１０と、機器２０ａ、機器２０ｂ及び機器２０ｃ（以下、総称する場合「機器２０」という。）とは、ＬＡＮ（Local Area Network）又はインターネット等のネットワーク５０（有線又は無線の別は問わない。）を介して接続されている。
【００１２】
機器２０は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置（複合機）である。機器２０は、ＣＰＵやメモリを備え、メモリに記録されたプログラムに従ったＣＰＵによる制御に基づいて各種の機能を実現する。
【００１３】
管理サーバ１０は、機器２０において利用されるプログラムに対して適用される追加プログラムの管理及び当該追加プログラムの機器２０への転送等を行うコンピュータである。本実施の形態において、追加プログラムとは、適用対象とされるプログラムの任意の箇所において、当該追加プログラムに定義された処理を動的に割り込ませることのできるプログラムをいう。
【００１４】
図２は、追加プログラムの概要を説明するための図である。図２において、５０１は、追加プログラム５０５が適用されるプログラムにおける仮想メモリ上における命令の配列を示す。プログラム５０１は、追加プログラム５０１が適用される前（通常実行時）は、命令１、２、３の順で処理を実行する。５０１ａは、プログラム５０１に追加プログラム５０１が適用された状態を示す。ここでは、命令１と命令２との間に追加プログラム５０５の処理を割り込ませる例が示されている。この場合、命令２がテーブル５０２への分岐命令に置き換えられる。テーブル５０２には、初期化処理、前処理（変数のスタックへの退避等）、追加プログラム５０５の呼び出し処理、後処理（スタックに退避されていた変数等の取り出し等）の後に命令２が実行され、プログラム５０１の命令３に戻るような定義がされている。
【００１５】
すなわち、追加プログラムが適用される場合、適用対象とされたプログラムの実行ステップが予め指定された箇所（追加位置）に到達すると、追加プログラムの処理が実行される。当該追加プログラムの処理が終了すると、適用対象とされたプログラムに処理制御が復帰する。その後、適用対象とされたプログラムは、追加位置より処理を再開する。なお、追加プログラムには、適用対象のプログラムに割り込ませる処理の他、適用対象とするプログラム及び追加位置を識別するための情報が含まれている。
【００１６】
追加プログラムの中では、適用対象とされるプログラムの変数等を参照可能である。したがって、追加プログラムによって、適用対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させるための処理や、バグを修正するための処理や、新たな機能を実現するための処理等を適用対象とされるプログラムに割り込ませることができる。
【００１７】
斯かる追加プログラムによれば、適用対象とされるプログラムについて、ソースコードの修正、コンパイル及びリンク、更に、再インストール等を行うことなく（すなわち、動的に）、ログ情報の出力、バグの修正、又は機能強化等を図ることができる。
【００１８】
なお、本実施の形態において、各追加プログラムは、機器２０ごとに、未送付、送付済、及び有効等の状態を有する。未送付とは、追加プログラムが、管理サーバ１０から機器２０へ送付（送信）されていない状態をいう。送付済とは、追加プログラムが、管理サーバ１０から機器２０へ送付された状態をいう。有効とは、追加プログラムの機能が有効である状態をいう。すなわち、有効とは、図２に示されるように、追加プログラムが適用対象のプログラムに適用され、処理の割り込みが可能な状態をいう。なお、送付済の追加プログラムを有効とすることを「有効化」という。
【００１９】
機器２０の詳細について説明する。図３は、本発明の実施の形態における機器のハードウェア構成例を示す図である。同図において、機器２０は、コントローラ６０１、オペレーションパネル６０２、ファクシミリコントロールユニット（ＦＣＵ）６０３、撮像部６０４、及び印刷部６０５等より構成される。
【００２０】
コントローラ６０１は、ＣＰＵ６１１、ＡＳＩＣ６１２、ＮＢ６２１、ＳＢ６２２、ＭＥＭ−Ｐ６３１、ＭＥＭ−Ｃ６３２、ＨＤＤ（ハードディスクドライブ）６３３、メモリカードスロット６３４、ＮＩＣ（ネットワークインタフェースコントローラ）６４１、ＵＳＢデバイス６４２、ＩＥＥＥ１３９４デバイス６４３、セントロニクスデバイス６４４により構成される。
【００２１】
ＣＰＵ６１１は、種々の情報処理用のＩＣである。ＡＳＩＣ６１２は、種々の画像処理用のＩＣである。ＮＢ６２１は、コントローラ６０１のノースブリッジである。ＳＢ６２２は、コントローラ６０１のサウスブリッジである。ＭＥＭ−Ｐ６３１は、機器２０のシステムメモリである。ＭＥＭ−Ｃ６３２は、機器２０のローカルメモリである。ＨＤＤ６３３は、機器２０のストレージである。メモリカードスロット６３４は、メモリカード６３５をセットするためのスロットである。ＮＩＣ６４１は、ＭＡＣアドレスによるネットワーク通信用のコントローラである。ＵＳＢデバイス６４２は、ＵＳＢ規格の接続端子を提供するためのデバイスである。ＩＥＥＥ１３９４デバイス６４３は、ＩＥＥＥ１３９４規格の接続端子を提供するためのデバイスである。セントロニクスデバイス６４４は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル６０２は、オペレータが機器２０に入力を行うためのハードウェア（操作部）であると共に、オペレータが機器２０から出力を得るためのハードウェア（表示部）である。
【００２２】
図４は、本発明の実施の形態における機器のソフトウェア構成例を示す図である。図４に示されるように、機器２０におけるソフトウェアは、アプリケーションメカニズム２１０、サービスメカニズム２２０、デバイスメカニズム２３０、及び運用部２４０等のレイヤによって構成される。図４におけるレイヤの上下関係は、レイヤ間の呼び出し関係に基づいている。すなわち、基本的に図中において上にあるレイヤが下のレイヤを呼び出す。
【００２３】
アプリケーションメカニズム２１０は、機器２０が提供する機能又は情報（データ）等の資源をユーザに利用させるためのソフトウェア部品（プログラム）群が実装されているレイヤである。この中で、「ＸＸＸフィルタ」という名前を有するソフトウェア部品は、「フィルタ」として総称される。各フィルタは、ジョブの一部を実行するソフトウェア部品である。すなわち、各フィルタは、単独では一つのジョブを実行することはできない。複数のフィルタが接続されることにより、一つのジョブを実行するアプリケーションが構築される。
【００２４】
画像データの入力を実現するフィルタを特に「入力フィルタ」という。画像データの加工を実現するフィルタを特に「加工フィルタ」という。画像データの出力を実現するフィルタを特に「出力フィルタ」という。なお、各フィルタは独立しており、フィルタ単位で追加（インストール）又は削除（アンインストール）が可能とされている。
【００２５】
図４において、アプリケーションメカニズム２１０には、入力フィルタとして、読取フィルタ２１１１、保管文書読出フィルタ２１１２、メール受信フィルタ２１１３、及びファクス受信フィルタ２１１４等が含まれている。
【００２６】
読取フィルタ２１１１は、スキャナ６０４による画像データの読み取りを制御し、読み取られた画像データを次に接続されたフィルタ（以下、「次のフィルタ」という。）に出力する。保管文書読出フィルタ２１１２は、機器２０の記憶装置に保管されている文書データ（画像データ）を読み出し、読み出されたデータを次のフィルタに出力する。メール受信フィルタ２１１３は、電子メールを受信し、当該電子メールに含まれているデータを次のフィルタに出力する。ファクス受信フィルタ２１１４は、ファクス受信を制御し、受信された印刷データを次のフィルタに出力する。
【００２７】
また、加工フィルタとしては、編集フィルタ２１２１及が示されている。編集フィルタ２１２１は、入力されたデータに所定の画像変換処理（集約、拡大、又は、縮小等）を施し、次のフィルタに出力する。
【００２８】
また、出力フィルタとしては、印刷フィルタ２１３１、保管文書登録フィルタ２１３２、メール送信フィルタ２１３３、及びファクス送信フィルタ２１３４等が示されている。
【００２９】
印刷フィルタ２１３１は、入力されたデータをプロッタに出力（印刷）させる。保管文書登録フィルタ２１３２は、入力されたデータを機器２０内の記憶装置、例えば、ＨＤＤ６３３に保存する。メール送信フィルタ２１３３は、入力されたデータを電子メールに添付して送信する。ファクス送信フィルタ２１３４は、入力されたデータをファクス送信する。
【００３０】
一方、「ＸＸＸアクティビティ」という名前を有するソフトウェア部品は、「アクティビティ」として総称される。アクティビティは、複数のフィルタをどの順番で接続するかを管理し、その順番でフィルタを実行させることによりジョブを実行するソフトウェア部品である。基本的に、一つのアクティビティによって一つのアプリケーションが実現される。なお、アクティビティ間で同一のフィルタを共用することが可能である。
【００３１】
図中には、アクティビティの一例として、コピーアクティビティ２１０１及びＳｃａｎＴｏＥｍａｉｌアクティビティ２１０２等が含まれる。例えば、コピーアクティビティ２１０１は、読取フィルタ２１１１と、編集フィルタ２１２１と、印刷フィルタ２１３１との組み合わせにより、コピージョブを実行する。ＳｃａｎＴｏＥｍａｉｌアクティビティ２１０２は、読取フィルタ２１１１と、編集フィルタ２１２１と、メース送信フィルタ２１３３との組み合わせにより、スキャン画像のメール転送ジョブを実行する。フィルタの組み合わせ次第では、その他多数のアクティビティの実装が可能であるが、本実施の形態では省略する。
【００３２】
サービスメカニズム２２０は、アクティビティ又はフィルタ等が利用するプリミティブなサービスが実装され、アプリケーションが機種等のハード的な仕様に対して、非依存となるための仕組みを提供するレイヤである。図中において、サービスメカニズム２２０には、セッション管理部２２１、リクエスト管理部２２２、通信部２２３、ＵＩ部２２４、及びデータ管理部２２５等が含まれている。
【００３３】
セッション管理部２２１は、ユーザの認証状態（ログイン状態）を管理する。例えば、セッション管理部２２１は、ユーザによって入力される認証情報（ユーザ名及びパスワード等）に基づいてユーザ認証を行い、ログイン中のユーザを認識する。リクエスト管理部２２２は、ジョブの管理を行う。通信部２２３は、ネットワーク通信の制御を行う。ＵＩ部２２４は、オペレーションパネル６０２に表示される操作画面を介して入力されるユーザ要求を解釈し、ユーザ要求に応じたジョブの実行をリクエスト管理部２２２に要求する。データ管理部２２５は、スキャンされ、ＨＤＤ６３３に保存されている画像データ及び当該画像データの書誌情報等を管理する。
【００３４】
デバイスメカニズム２３０は、機器２０が有するデバイス毎に設けられたデバイスを制御するドライバプログラム等を含む。
【００３５】
運用部２４０は、システムの運用管理に関するソフトウェア部品が実装される部分であり、アプリケーションメカニズム２１０、サービスメカニズム２２０、及びデバイスメカニズム２３０より横断的に利用される。図中において、運用部２４０には、プラグイン管理部２４１、アクセス制御部２４２、及び追加プログラム制御部２４３が含まれている。プラグイン管理部２４１は、アクティビティ又はフィルタ等、自由に抜き差し（インストール・アンインストール）可能なソフトウェア部品（プラグイン）の情報を管理する。アクセス制御部２４２は、利用権限情報に基づいて、ユーザごとに各種機能利用の許否（利用権限の有無）を判断する。ここで、利用権限情報とは、ユーザごとに、各種機能に対する利用権限の有無が記録（定義）された情報をいい、例えば、ＨＤＤ６３３に記録されている。追加プログラム制御部２４３は、上述した追加プログラムの実行制御等を行う。例えば、追加プログラム制御部２４３は、管理サーバ１０より転送される追加プログラムの受信、適用対象への適用（実行）等を行う。
【００３６】
続いて、管理サーバ１０の詳細について説明する。図５は、本発明の実施の形態における管理サーバのハードウェア構成例を示す図である。同図の管理サーバ１０は、それぞれバスBで相互に接続されているドライブ装置１００と、補助記憶装置１０２と、メモリ装置１０３と、ＣＰＵ１０４と、インタフェース装置１０５と、表示装置１０６と、入力装置１０７とを有する。
【００３７】
管理サーバ１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００３８】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って管理サーバ１０に係る機能を実現する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。表示装置１０６はプログラムによるＧＵＩ（Graphical User Interface）等を表示する。入力装置１０７はキーボード及びマウス等で構成され、様々な操作指示を入力させるために用いられる。
【００３９】
図６は、本発明の実施の形態における管理サーバの機能構成例を示す図である。同図において、管理サーバ１０は、状態情報取得部１１、ＵＩ制御部１２、有効化可否判定部１３、追加プログラム送信部１４、追加プログラム有効化部１５、状態情報記憶部１６、組み合わせ情報記憶部１７、及び追加プログラム記憶部１８等を有する。これら各部は、管理サーバ１０にインストールされたプログラムがＣＰＵ１０４に実行させる処理によって実現される。
【００４０】
状態情報取得部１１は、機器２０に送付されている追加プログラムの一覧情報を機器２０より取得し、状態情報記憶部１６に記録する。状態情報記憶部１６は、補助記憶装置１０２において、追加プログラムの一覧情報を記憶するために記憶領域（ファイル又はテーブル形式のデータ等）である。ＵＩ制御部１２は、追加プログラムに関する操作（機器２０への送付、有効化等）の指示を受け付けるための画面を表示させる。有効化可否判定部１３は、追加プログラムについて、有効化が可能となる（有効化する意義の有る）組み合わせを示す組み合わせ情報と、状態情報記憶部１６に記憶された情報とに基づいて、追加プログラムの有効化の可否を判定する。状態情報記憶部１６は、補助記憶装置１０２において、組み合わせ情報を記憶する記憶領域である。追加プログラム送信部１４は、ユーザによって指定された追加プログラムを機器２０に送付（送信）する。送付対象とされる追加プログラムは、追加プログラム記憶部１８に記録されている。すなわち、追加プログラム記憶部１８は、補助記憶装置１０２において、追加プログラムの実体を記憶するために記憶領域である。追加プログラム有効化部１５は、ユーザによって指定された追加プログラムの有効化の指示を機器２０に送信する。
【００４１】
以下、機器管理システム１の処理手順について説明する。図７は、管理サーバによる処理手順を説明するためのフローチャートである。
【００４２】
ステップＳ１０１において、ＵＩ制御部１２は、追加プログラムに関して操作対象とする機器２０の指定をユーザより受け付ける。操作対象とする機器２０の指定は、ＵＩ制御部１２が表示させる画面に、機器２０の識別情報（ホスト名又はＩＰアドレス等。以下「機器名」という。）を入力させてもよい。または、非図示の機器検索部がネットワーク５０上より機器２０を検索し、ＵＩ制御部１２が検索された機器２０の一覧を含む画面を表示させ、当該一覧の中から操作対象とする機器２０を選択させてもよい。いずれの場合であっても、ステップＳ１０１において、操作対象とする機器２０の機器名が特定される。ここでは、機器２０ａが操作対象として指定されたこととする。
【００４３】
続いて、状態情報取得部１１は、ステップＳ１０１において特定された識別情報に係る機器２０ａより、機器２０ａに既に送付（送信）され、機器２０ａのＨＤＤ６３３又はメモリ（ＭＥＭ−Ｐ６３１）内に保存されている追加プログラムの状態情報の一覧を取得し、取得された状態情報の一覧を状態情報記憶部１６に記録する（Ｓ１０２）。
【００４４】
図８は、状態情報記憶部の構成例を示す図である。同図に示されるように、状態情報記憶部１６には、送付済みの追加プログラムごとに、機器名、追加プログラム名、状態、プログラムＩＤ、及びバージョン等が記録される。
【００４５】
機器名は、追加プログラムが送付されている機器２０の機器名である。追加プログラム名は、追加プログラムの名前である。状態は、追加プログラムの状態である。プログラムＩＤは、追加プログラムごとに一意な識別子（ＩＤ）である。バージョンは、追加プログラムのバージョンである。
【００４６】
同図の例では、機器名が「ＡＡＡ」である機器２０ａには、「スキャン解像度向上パッチ」と「画像処理機能追加パッチ」との追加プログラムが送付済みであることが示されている。
【００４７】
続いて、ＵＩ制御部１２は、追加プログラム記憶部１８に保存されている追加プログラムの中から機器２０ａへ送付する追加プログラムを選択させるための画面（送付画面）を表示装置１０６に表示させる（Ｓ１０３）。
【００４８】
図９は、送付画面の表示例を示す図である。同図において、送付画面７１０は、追加プログラム記憶部１８に保存されている追加プログラムごとに、追加プログラム名、状態、及び送付ボタンが表示されている。状態は、追加プログラムの状態（未送付、送付済、又は有効）を示す。送付ボタンは、ユーザより追加プログラムの送付指示を受け付けるためのボタンである。同図において、有効化ボタン７１１及び７１２は、グレーアウトされ、操作不能な状態とされている。これは、「スキャン解像度向上パッチ」及び「画像処理機能追加パッチ」については、機器２０ａに既に送付済だからである。すなわち、ＵＩ制御部１２は、追加プログラム記憶部１８に保存されている追加プログラムの一覧と、状態情報記憶部１６に記録されている機器２０ａに係る状態情報とを照合することにより、各追加プログラムについて機器２０ａに送付済であるか否かを判定する。ＵＩ制御部１２は、送付済の追加プログラムについては、送付画面７１０における「状態」を「送付済」とし、送付ボタンをグレーアウトさせる。一方、未送付の追加プログラムについては、ＵＩ制御部１２は、送付画面７１０における「状態」を「未送付」とし、送付ボタンを操作可能（押下可能）とさせる。なお、追加プログラム記憶部１８には、追加プログラムの実体だけでなく、各追加プログラムの書誌情報（プログラム名、プログラムＩＤ等）も記録されている。
【００４９】
送付画面７１０は、また、有効化ボタン７１７を有する。例えば、ユーザによって有効化ボタン７１７が押下されると（Ｓ１０４で「有効化」）、有効化可否判定部１３は、組み合わせ情報記憶部１７に記録されている組み合わせ情報と、状態情報記憶部１６に記録されている状態情報とに基づいて、各追加プログラムの有効化の可否を判定する（Ｓ１０５）。
【００５０】
図１０は、組み合わせ情報記憶部の構成例を示す図である。同図に示されるように、組み合わせ情報記憶部１７には、目的ごとに（目的別に）、必要とされる追加プログラムの組み合わせを示す組み合わせ情報が記録されている。例えば、コピー解像度向上（コピーアクティビティ２１０１によって対応可能な解像度の向上）という目的（機能強化）を達成するためには、「スキャン解像度向上パッチ」、「画像処理機能追加パッチ」、及び「印刷機能追加パッチ」をセットで有効化する必要が有ることが示されている。また、ＳｃａｎＴｏＥｍａｉｌ解像度向上（ＳｃａｎＴｏＥｍａｉｌアクティビティ２１０２によって対応可能な解像度の向上）という目的（機能強化）を達成するためには、「スキャン解像度向上パッチ」、「画像処理機能追加パッチ」、及び「印刷機能追加パッチ」、及び「メール送信機能追加パッチ」をセットで有効化する必要が有ることが示されている。
【００５１】
したがって、有効化可否判定部１３は、必要とされる追加プログラムが全て送付済である目的については有効化は可能であると判定し、少なくとも一部の追加プログラムが未送付である目的については有効化は不可能であると判定する。なお、目的は、機能強化に限定されない。例えば、バグ修正であってもよい。
【００５２】
複数の追加プログラムをセットで有効化する必要性について図１１を用いて説明する。図１１は、各フィルタと各追加プログラムとの関係を示す図である。
【００５３】
同図（Ａ）に示されるように、コピーアクティビティ２１０１は、読取フィルタ２１１１、編集フィルタ２１２１、及び印刷フィルタ２１３１を利用する。コピーアクティビティ２１０１として対応可能な解像度を向上させるためには、コピーアクティビティ２１０２が利用する各フィルタが対応可能な解像度を向上させる必要がある。本実施の形態において、読取フィルタ２１１１を適用対象とし、読取フィルタ２１１１が対応可能な解像度を向上させる追加プログラムは、スキャン解像度向上パッチである。また、編集フィルタ２１２１を適用対象とし、編集フィルタ２１２１が対応可能な解像度を向上させる追加プログラムは、画像処理機能追加パッチである。また、印刷フィルタ２１３１を適用対象とし、印刷フィルタ２１３１が対応可能な解像度を向上させる追加プログラムは、画像処理機能追加パッチである。仮に、いずれか一つのフィルタに対して解像度を向上させるための追加プログラムが適用されない場合、他のフィルタに対する追加プログラムの処理は、意味の無いものとなってしまう。または、フィルタ間の処理に不整合が生じ、コピーアクティビティ２１０１全体としての処理が不安定なものとなってしまう可能性がある。各フィルタに適用される追加プログラムは、それぞれ、他の追加プログラムが適用されることを前提として実装されているからである。そこで、追加プログラム間の斯かる関係（依存関係）を判定可能とし、追加プログラムの意味の無い適用を回避するための情報が組み合わせ情報である。
【００５４】
また、図１１（Ｂ）には、ＳｃａｎＴｏＥｍａｉｌアクティビティ２１１２が利用する各フィルタと追加プログラムとの関係が示されている。読取フィルタ２１１１及び編集フィルタ２１２１についてはコピーアクティビティ２１０１の場合と同様である。メール送信フィルタ２１３３には、メール送信機能追加パッチが適用される。
【００５５】
なお、同図では、各追加プログラムの適用対象がそれぞれ異なる例について示されているが、各追加プログラムの適用対象が同一のプログラムであってもよい。すなわち、各追加プログラムが、同一のプログラムにおいて、それぞれ異なる箇所（ステップ）に処理を割り込ませる形態であってもよい。このような形態においても、各追加プログラムに依存関係が生じうるという事情に変わりはないからである。
【００５６】
続いて、ＵＩ制御部１２は、有効化可否判定部１３の判定結果を利用して、送付済の追加プログラムの有効化の指示を受け付けるための画面（有効化画面）を表示装置１０６に表示させる（Ｓ１０６）。
【００５７】
図１２は、有効化画面の表示例を示す図である。同図に示されるように、有効化画面７２０には、目的ごとに、当該目的の達成に必要とされる各追加プログラムの追加プログラム名及び状態が表示されている。また、目的ごとに（目的単位で）有効化ボタンが表示されている。例えば、有効化ボタン７２１は、コピー解像度向上のために必要とされる、三つの追加プログラムの有効化の指示を受け付けるためのボタンである。また、有効化ボタン７２２は、ＳｃａｎＴｏＥｍａｉｌ解像度向上のために必要とされる、三つの追加プログラムの有効化の指示を受け付けるためのボタンである。
【００５８】
なお、同図において、有効化ボタン７２１及び７２２は、いずれもグレーアウトされている。これは、有効化可否判定部１３による判定結果に基づくものである。すなわち、ボタン７２１については、印刷機能追加パッチが未送付であるため、コピー解像度向上に必要とされる追加プログラムの有効化は不可能であると判定された（有効化する意義は無いと判定された）からである。また、ボタン７２２については、メール送信機能追加パッチが未送付であるため、ＳｃａｎＴｏＥｍａｉｌ解像度向上に必要とされる追加プログラムの有効化は不可能であると判定された（有効化する意義は無いと判定された）からである。
【００５９】
所望の目的について追加プログラムの有向化が不可能な場合、ユーザは、送付ボタン７２５を押下する。送付ボタン７２５の押下に応じ（Ｓ１０７で「送付」）、ＵＩ制御部１２は、送付画面７１０を再度表示させる（Ｓ１０３）。例えば、コピー解像度向上を所望する場合、ユーザは、再度表示された送付画面７１０において、コピー解像度向上に関して不足している（すなわち、未送付の）追加プログラムである「印刷機能追加パッチ」に対する送付ボタン７１３を押下する。送付ボタン７１３の押下に応じ（Ｓ１０４で「送付」）、追加プログラム送信部１４は、印刷機能追加パッチを追加プログラムより取得し、機器２０ａに送信する（Ｓ１０８）。追加プログラム送信部１４は、追加プログラムの送付後、送付された追加プログラムに関するエントリを状態情報記憶部１６に追加する。当該エントリにおいて、機器名は機器２０ａの機器名とされ、状態は、「送付済」とされる。このように、状態情報記憶部１６内の情報は、追加プログラム送信部１４によって更新される。すなわち、機器２０ａの状態と状態情報記憶部１６の内容とは同期がとられている。したがって、状態情報取得部１１による状態情報の一覧の取得処理は、必ずしも必要ではない。但し、機器２０ａの状態と状態情報記憶部１６との同期が保証されない場合、例えば、管理サーバ１０が複数存在する場合等、状態情報取得部１１による状態情報の一覧の取得処理は必要である。
【００６０】
印刷機能追加パッチの送付後、ユーザによって有効化ボタン７１７が押下されると、ステップＳ１０５及びＳ１０６が再び実行され、ＵＩ制御部１２によって、有効化画面７２０が表示される。
【００６１】
図１３は、有効化画面の第二の表示例を示す図である。同図では、有効化ボタン７２１のグレーアウトが解除されている。印刷機能追加パッチが送付済となったことにより、コピー解像度向上に必要な全ての追加プログラムが送付済となり、有効化可否判定部１３によって、当該追加プログラムの有効化は可能であると判定されたためである。
【００６２】
そこで、ユーザによって有効化ボタン７２１が押下さると（Ｓ１０７で「有効化」）、追加プログラム有効化部１５は、有効化ボタン７２１に対応する三つの追加プログラムのプログラムＩＤを指定して、当該追加プログラム有効化の指示を、機器２０ａに送信する（Ｓ１０９）。追加プログラム有効化部１５は、有効化された追加プログラムについて、状態情報記憶部１６における「状態」の値を「有効化」に更新する。
【００６３】
続いて、図７の処理の実行に応じて、機器２０ａにおいて実行される処理手順について説明する。図１４は、機器管理システムの処理手順を説明するためのシーケンス図である。同図のステップ番号は、図７のステップ番号に対応している。
【００６４】
ステップＳ１０２−１において、管理サーバ１０が追加プログラムの状態情報の取得要求を機器２０ａに送信すると、機器２０ａの追加プログラム制御部２４３は、ＨＤＤ６３３又はメモリに記録されている各追加プログラムの状態情報の一覧を生成し、当該一覧を管理サーバ１０に返信する（Ｓ１０２−２）。
【００６５】
その後、管理サーバ１０の追加プログラム送信部１４が、追加プログラムを機器２０ａに送信すると（Ｓ１０８）、機器２０ａの追加プログラム制御部２４３は、受信された追加プログラムをメモリに記録する（Ｓ１０８−１）。続いて、追加プログラム制御部２４３は、追加プログラムを正常に受信したことを示すメッセージを管理サーバ１０に返信する（Ｓ１０８−２）。
【００６６】
その後、管理サーバ１０の追加プログラム有効化部１５が、有効化の対象とする追加プログラムのプログラムＩＤを指定して、当該追加プログラムの有効化の指示を機器２０ａに送信すると（Ｓ１０９）、機器２０ａの追加プログラム制御部は、指定されたプログラムＩＤに対応する追加プログラムを有効化する（Ｓ１０９−２）。続いて、追加プログラム制御部２４３は、追加プログラムを正常に有効化したことを示すメッセージを管理サーバ１０に返信する（Ｓ１０９−２）。
【００６７】
上述したように、本実施の形態における管理サーバ１０によれば、機器２０に送信された追加プログラムの一覧情報と、有効化が可能となる組み合わせを示す組み合わせ情報とに基づいて、追加プログラムの有効化の可否が自動的に判定される。したがって、追加プログラムの適切な適用を支援することができる。すなわち、依存関係を有する追加プログラムの一部のみが有効化されることによる、適用対象のプログラムの不正動作等を適切に防止することができる。
【００６８】
なお、有効化可否判定部１３によって、目的ごとに有効化が判定された後、有効化が不可能であると判定された目的に関する追加プログラムのうち未送付のもの（組み合わせに不足しているもの）は追加プログラム送信部１４が自動的に送信するようにしてもよい。
【００６９】
同様に、有効化可否判定部１３によって、目的ごとに有効化が判定された後、有効化が可能であると判定された目的に関する追加プログラムについて、追加プログラム有効化部１５は、自動的に有効化の指示を送信するようにしてもよい。
【００７０】
また、有効化は、機器２０側で行われてもよい。すなわち、管理サーバ１０からは有効化の指示は行われず、機器２０のオペレーションパネル６０２を介して有効化の指示が入力されてもよい。
【００７１】
また、本実施の形態では画像形成装置を機器の一例としたが、本発明を適用可能な機器は画像形成装置に限定されない。例えば、各種のデジタル家電、携帯機器、又は汎用的なコンピュータ等に対しても本発明は有効に適用されうる。
【００７２】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７３】
１            機器管理システム
１０          管理サーバ
１１          状態情報取得部
１２          ＵＩ制御部
１３          有効化可否判定部
１４          追加プログラム送信部
１５          追加プログラム有効化部
１６          状態情報記憶部
１７          組み合わせ情報記憶部
１８          追加プログラム記憶部
２０          機器
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１０６        表示装置
１０７        入力装置
２１０        アプリケーションメカニズム
２２０        サービスメカニズム
２２１        セッション管理部
２２２        リクエスト管理部
２２３        通信部
２２４        ＵＩ部
２２５        データ管理部
２３０        デバイスメカニズム
２４０        運用部
２４１        プラグイン管理部
２４２        アクセス制御部
２４３        追加プログラム制御部
６０１        コントローラ
６０２        オペレーションパネル
６０３        ファクシミリコントロールユニット
６０４        撮像部
６０５        印刷部
６１１        ＣＰＵ
６１２        ＡＳＩＣ
６２１        ＮＢ
６２２        ＳＢ
６３１        ＭＥＭ−Ｐ
６３２        ＭＥＭ−Ｃ
６３３        ＨＤＤ
６３４        メモリカードスロット
６３５        メモリカード
６４１        ＮＩＣ
６４２        ＵＳＢデバイス
６４３        ＩＥＥＥ１３９４デバイス
６４４        セントロニクスデバイス
２１０１      コピーアクティビティ
２１０２      ＳｃａｎＴｏＥｍａｉｌアクティビティ
２１１１      読取フィルタ
２１１２      保管文書読出フィルタ
２１１３      メール受信フィルタ
２１１４      ファクス受信フィルタ
２１２１      編集フィルタ
２１３１      印刷フィルタ
２１３２      保管文書登録フィルタ
２１３３      メール送信フィルタ
２１３４      ファクス送信フィルタ
Ｂ            バス
【先行技術文献】
【特許文献】
【００７４】
【特許文献１】特開２００８−２６９１６３号公報
【図１】
2011018133.tif 000003
【図２】
2011018133.tif 000004
【図３】
2011018133.tif 000005
【図４】
2011018133.tif 000006
【図５】
2011018133.tif 000007
【図６】
2011018133.tif 000008
【図７】
2011018133.tif 000009
【図８】
2011018133.tif 000010
【図９】
2011018133.tif 000011
【図１０】
2011018133.tif 000012
【図１１】
2011018133.tif 000013
【図１２】
2011018133.tif 000014
【図１３】
2011018133.tif 000015
【図１４】
2011018133.tif 000016