JP5293462B2 - 電子機器、情報処理方法、及び情報処理プログラム - Google Patents

電子機器、情報処理方法、及び情報処理プログラム Download PDF

Info

Publication number
JP5293462B2
JP5293462B2 JP2009161105A JP2009161105A JP5293462B2 JP 5293462 B2 JP5293462 B2 JP 5293462B2 JP 2009161105 A JP2009161105 A JP 2009161105A JP 2009161105 A JP2009161105 A JP 2009161105A JP 5293462 B2 JP5293462 B2 JP 5293462B2
Authority
JP
Japan
Prior art keywords
state
program
additional program
electronic device
additional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009161105A
Other languages
English (en)
Other versions
JP2011018134A (ja
Inventor
麻由 近藤
秀彦 渡辺
孫涛 厳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2009161105A priority Critical patent/JP5293462B2/ja
Priority to US12/829,719 priority patent/US20110010718A1/en
Publication of JP2011018134A publication Critical patent/JP2011018134A/ja
Application granted granted Critical
Publication of JP5293462B2 publication Critical patent/JP5293462B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0733Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Description

本発明は、本発明は、電子機器、情報処理方法、及び情報処理プログラムに関し、特にプログラムを実行可能な電子機器、情報処理方法、及び情報処理プログラムに関する。
従来、特に組み込み機器等において動作するプログラムの障害解析(デバッグ等)の代表的な作業として、プログラムが出力するログの解析が行われている。すなわち、プログラムのソースコードには、プログラムが用いている変数の値や、プログラムが動作しているハードウェアの状態を示す情報等をログファイルに出力するための命令(例えば、C言語におけるprintf関数)が予め各所に埋め込まれている。障害が発生した際、斯かる命令(以下、「ログ出力命令」という。)に従って出力されたログファイルを解析することにより、障害の原因が推測又は特定される。
しかし、予め埋め込まれたログ出力命令に基づいて出力されるログファイル(最初に出力されるログファイル)では、詳細な解析を行うには情報として不十分な場合が多々ある。斯かる場合、最初に出力されるログファイルに基づいて、或る程度障害箇所が絞り込まれる。続いて、その障害箇所周辺について更に詳細なログを出力するように、プログラムのソースコードが修正され、コンパイル及びリンクが行われた上で、プログラムの置き換えが行われる。改めて出力されるログファイルによっても原因が特定できない場合は、更に、ソースコードにログ出力命令が埋め込まれ、上記作業が繰り返される。このように、ログに基づいて障害解析を行う場合、時として大変煩雑な作業が要求されていた。
そこで、従来、動作中のプログラムの任意の箇所(診断位置)に当該プログラムの診断用プログラムの処理を動的に(実行時に)割り込ませる技術が存在する。診断用プログラム内では、適用対象(割り込み対象)となるプログラムの変数の値等を参照することができる。診断用プログラムの処理の終了後は、適用対象となるプログラムについて診断用プログラムによって割り込まれた位置に処理が復帰する。斯かる技術によれば、適用対象となるプログラムのソースコードを修正することなく、診断用プログラムによって適用対象となるプログラムのログの出力、バグの修正、又は機能拡張等が可能となる。また、診断用プログラムの利用者は、診断用プログラムをネットワークを介して適用対象のプログラムが動作する機器等に送信し、ネットワークを介して診断用プログラムの実行制御等を行うことが可能である。斯かる遠隔操作が可能な点においても、利用者(障害解析担当者等)にとって斯かる診断用プログラムは非常に便利である。
しかしながら、上記のような診断用プログラムは、適用対象のプログラムがいかなる状態であるかに拘わらず適用可能であるため、適用のタイミングによって適用対象のプログラム自体の動作や、適用対象のプログラムによって制御される機器自体の動作が不安定になる可能性もある。例えば、機器においてジョブが実行されている最中に、当該ジョブの実行に関わるプログラムに対して、ジョブの実行中には不適切な処理を割り込ませる診断用プログラムが適用された場合、当該ジョブに関する処理は不安定なものとなる可能性がある。
一方、ジョブの実行中に適用されなければ意味のない診断用プログラムも存在する。例えば、適用対象のプログラムについてジョブの実行中におけるログを記録するような診断用プログラムである。
本発明は、上記の点に鑑みてなされたものであって、他のプログラムに動的に処理を割り込ませることのできるプログラムの適用を当該電子機器の状態に応じて適切に制御することのできる電子機器、情報処理方法、及び情報処理プログラムの提供を目的とする。
そこで上記課題を解決するため、本発明は、電子機器であって、当該電子機器の状態の変化を検知し、該状態を認識する状態管理手段と、他のプログラムに対して動的に処理を割り込ませることのできる追加プログラムの有効化要求の入力に応じ、当該追加プログラムを当該電子機器のプログラムに適用させる追加プログラム制御手段と、機器の状態に応じて前記追加プログラムの適用の可否を示す適用可否情報を記憶した適用可否記憶手段とを有し、前記追加プログラム制御手段は、前記有効化要求が入力されたときに前記状態管理手段が認識している当該電子機器の状態と前記適応可否情報とに基づいて、当該有効化要求に係る前記追加プログラムの適用の可否を判定する。
このような電子機器では、他のプログラムに動的に処理を割り込ませることのできるプログラムの適用を当該電子機器の状態に応じて適切に制御することができる。
本発明によれば、他のプログラムに動的に処理を割り込ませることのできるプログラムの適用を電子機器の状態に応じて適切に制御することができる。
本発明の実施の形態における機器管理システムの構成例を示す図である。 追加プログラムの概要を説明するための図である。 本発明の実施の形態における機器のハードウェア構成例を示す図である。 本発明の実施の形態における機器のソフトウェア構成例を示す図である。 本実施の形態の機器におけるコピージョブ実行時の処理手順を説明するためのシーケンス図である。 第一の実施の形態における追加プログラム制御部の処理手順を説明するためのフローチャートである。 第一の実施の形態におけるジョブ実行中適用可否管理テーブルの構成例を示す図である。 ジョブ実行中にECSを適用対象とする追加プログラムの有効化が要求された場合の第一の処理手順を説明するためのシーケンス図である。 ジョブ実行中にECSを適用対象とする追加プログラムの有効化が要求された場合の第二の処理手順を説明するためのシーケンス図である。 ジョブ実行中にECSを適用対象とする追加プログラムの有効化が要求された場合の第三の処理手順を説明するためのシーケンス図である。 オフライン状態への遷移処理の処理手順を説明するためのシーケンス図である。 オフライン状態の各モードを説明するための図である。 第二の実施の形態における追加プログラム制御部の処理手順を説明するためのフローチャートである。 第二の実施の形態におけるオフラインモード適用可否管理テーブルの構成例を示す図である。 第二の実施の形態におけるオフライン取得元適用可否管理テーブルの構成例を示す図である。 オフライン状態中に追加プログラムの有効化が要求された場合の第一の処理手順を説明するためのシーケンス図である。 オフライン状態中に追加プログラムの有効化が要求された場合の第二の処理手順を説明するためのシーケンス図である。 第三の実施の形態における機器の電力状態の状態遷移例を示す図である。 静音状態から通常電力状態への遷移時の処理手順を説明するためのシーケンス図である。 第四の実施の形態における追加プログラム制御部の処理手順を説明するためのフローチャートである。 第四の実施の形態における有効化条件管理テーブルの構成例を示す図である。 機器の状態変化に応じた追加プログラムの有効化処理の第一の処理手順を説明するためのシーケンス図である。 機器の状態変化に応じた追加プログラムの有効化処理の第二の処理手順を説明するためのシーケンス図である。
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における機器管理システムの構成例を示す図である。図1の機器管理システム1において、管理サーバ10と、機器20a、機器20b及び機器20c(以下、総称する場合「機器20」という。)とは、LAN(Local Area Network)又はインターネット等のネットワーク50(有線又は無線の別は問わない。)を介して接続されている。
機器20は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置(複合機)である。機器20は、CPUやメモリを備え、メモリに記録されたプログラムに従ったCPUによる制御に基づいて各種の機能を実現する。なお、本実施の形態では、機器20が電子機器の一例に相当する。
管理サーバ10は、機器20において利用されるプログラムに対して適用される追加プログラムの管理及び当該追加プログラムの機器20への転送等を行うコンピュータである。本実施の形態において、追加プログラムとは、適用対象とされるプログラムの任意の箇所において、当該追加プログラムに定義された処理を動的に割り込ませることのできるプログラムをいう。
図2は、追加プログラムの概要を説明するための図である。図2において、501は、追加プログラム505が適用されるプログラムにおける仮想メモリ上における命令の配列を示す。プログラム501は、追加プログラム501が適用される前(通常実行時)は、命令1、2、3の順で処理を実行する。501aは、プログラム501に追加プログラム501が適用された状態を示す。ここでは、命令1と命令2との間に追加プログラム505の処理を割り込ませる例が示されている。この場合、命令2がテーブル502への分岐命令に置き換えられる。テーブル502には、初期化処理、前処理(変数のスタックへの退避等)、追加プログラム505の呼び出し処理、後処理(スタックに退避されていた変数等の取り出し等)の後に命令2が実行され、プログラム501の命令3に戻るような定義がされている。
すなわち、追加プログラムが適用される場合、適用対象とされたプログラムの実行ステップが予め指定された箇所(追加位置)に到達すると、追加プログラムの処理が実行される。当該追加プログラムの処理が終了すると、適用対象とされたプログラムに処理制御が復帰する。その後、適用対象とされたプログラムは、追加位置より処理を再開する。なお、追加プログラムには、適用対象のプログラムに割り込ませる処理の他、適用対象とするプログラム及び追加位置を識別するための情報が含まれている。
追加プログラムの中では、適用対象とされるプログラムの変数等を参照可能である。したがって、追加プログラムによって、適用対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させるための処理や、バグを修正するための処理や、新たな機能を実現するための処理等を適用対象とされるプログラムに割り込ませることができる。
斯かる追加プログラムによれば、適用対象とされるプログラムについて、ソースコードの修正、コンパイル及びリンク、更に、再インストール等を行うことなく(すなわち、動的に)、ログ情報の出力、バグの修正、又は機能強化等を図ることができる。
なお、本実施の形態において、追加プログラムを適用対象のプログラムに適用し、実行可能な状態とすること(図2に示される状態にすること)を追加プログラムの「有効化」という。すなわち、追加プログラムは、機器20内に保存されているだけでは機能せず、有効化されることにより処理を割り込ませることができる。
機器20の詳細について説明する。図3は、本発明の実施の形態における機器のハードウェア構成例を示す図である。同図において、機器20は、コントローラ601、オペレーションパネル602、ファクシミリコントロールユニット(FCU)603、スキャナ604、及びプロッタ605等より構成される。
コントローラ601は、CPU611、ASIC612、NB621、SB622、MEM−P631、MEM−C632、HDD(ハードディスクドライブ)633、メモリカードスロット634、NIC(ネットワークインタフェースコントローラ)641、USBデバイス642、IEEE1394デバイス643、セントロニクスデバイス644により構成される。
CPU611は、種々の情報処理用のICである。ASIC612は、種々の画像処理用のICである。NB621は、コントローラ601のノースブリッジである。SB622は、コントローラ601のサウスブリッジである。MEM−P631は、機器20のシステムメモリである。MEM−C632は、機器20のローカルメモリである。HDD633は、機器20のストレージである。メモリカードスロット634は、メモリカード635をセットするためのスロットである。NIC641は、MACアドレスによるネットワーク通信用のコントローラである。USBデバイス642は、USB規格の接続端子を提供するためのデバイスである。IEEE1394デバイス643は、IEEE1394規格の接続端子を提供するためのデバイスである。セントロニクスデバイス644は、セントロニクス仕様の接続端子を提供するためのデバイスである。オペレーションパネル602は、オペレータが機器20に入力を行うためのハードウェア(操作部)であると共に、オペレータが機器20から出力を得るためのハードウェア(表示部)である。スキャナ604は、原稿より画像データを読み取るハードウェアである。プロッタ605は、画像を印刷用紙に転写するハードウェアである。
図4は、本発明の実施の形態における機器のソフトウェア構成例を示す図である。
同図において、機器20が有するプログラムは、アプリケーション131とプラットフォーム132とに大別される。これらのプログラムは、UNIX(登録商標)等のOS(オペレーティングシステム)153によりプロセス単位で並列的に実行される。
アプリケーション131としては、コピー用のアプリケーションであるコピーアプリ141、プリンタ用のアプリケーションであるプリンタアプリ142、スキャナ用のアプリケーションであるスキャナアプリ143、ファクシミリ用のアプリケーションであるファクシミリアプリ144、ネットワークファイル用のアプリケーションであるネットワークファイルアプリ145が存在する。
アプリケーション131は、専用のSDK(ソフトウェア開発キット)を使用して開発することができる。SDKを使用して開発したアプリケーション131をSDKアプリと呼ぶ。専用のSDKとしては、C言語でアプリケーション131を開発するための「CSDK」や、Java(登録商標)言語でアプリケーション131を開発するための「JSDK」が提供される。CSDKを使用して開発したアプリケーション131を「CSDKアプリ」と呼び、JSDKを使用して開発したアプリケーション131を「JSDKアプリ」と呼ぶ。図4の機器20にも、CSDKアプリ146と、JSDKアプリ147が存在する。図4の機器20にはさらに、Java(登録商標)言語で記述されたJSDKアプリ147とC言語で記述された他のソフトウェアとの仲介を行うソフトウェアとして、JSDKプラットフォーム148が存在する。すなわち、JSDKプラットフォーム148は、コントロールサービス151等によって提供させる機能をJSDKアプリ147に提供するためのAPI(Application Program Interface)を備えたプラットフォームである。換言すれば、JSDKプラットフォーム147は、複数のJSDKアプリ147に対して共通の機能を提供する手段である。
プラットフォーム132は、種々のコントロールサービス151、及びシステムリソースマネージャ(SRM)152等を含む。コントロールサービス151には、ネットワークコントロールサービス(NCS)161、ファクシミリコントロールサービス(FCS)162、デリバリコントロールサービス(DCS)163、エンジンコントロールサービス(ECS)164、メモリコントロールサービス(MCS)165、オペレーションパネルコントロールサービス(OCS)166、サーティフィケーションコントロールサービス(CCS)167、ユーザディレクトリコントロールサービス(UCS)168、システムコントロールサービス(SCS)169、及び追加プログラム制御部170等が含まれる。
NCS161は、ネットワーク通信の仲介を行う。FCS162は、ファクシミリのAPIを提供する。DCS163は、蓄積文書の配信処理に関する制御を行う。ECS164は、スキャナ604やプロッタ605等を利用したジョブの制御を行う。アプリケーション131は、ECS164を介してジョブを実行する。MCS165は、メモリやハードディスクドライブに関する制御を行う。OCS166は、オペレーションパネルに関する制御を行う。CCS167は、認証処理や課金処理に関する制御を行う。UCS168は、ユーザ情報の管理に関する制御を行う。SCS169は、状態管理手段の一例であり、機器20の状態の変化(遷移)を検知し、機器20が当該状態であることを認識する。例えば、SCS169には、機器20自体の状態の変化や、各コントロールサービス151の状態の変化等のイベントが通知される。SCS169は、通知されたイベントを、当該イベントの通知を必要としている他のプログラムモジュールに通知する。追加プログラム制御部170は、上述した追加プログラムの実行環境を実現するソフトウェアである。例えば、追加プログラム制御部170は、管理サーバ10より転送される追加プログラムの受信、適用対象のプログラムへの適用(有効化)等を行う。
SRM152は、エンジンインタフェース134を介して、ハードウェア資源の管理を行う。具体的には、SRM152は、コントロールサービス151からのハードウェア資源の利用要求を調停する。エンジンインタフェース134は、スキャナ604やプロッタ605やその他のハードウェア資源に対するインタフェースである。
また、アプリケーション131とプラットフォーム132の仲介を行うソフトウェアとして、仮想アプリケーションサービス(VAS)135が存在する。VAS135は、アプリケーション131をクライアントとするサーバプロセスとして動作すると共に、プラットフォーム132をサーバとするクライアントプロセスとして動作する。VAS135は、アプリケーション131から見てプラットフォーム132のAPI133を隠蔽するラッピング機能を備え、プラットフォーム132のAPI133のバージョンアップに伴う変更を吸収する役割等を担う。
以下、機器20の処理手順について説明する。第一の実施の形態では、機器20におけるジョブの実行状態に応じた追加プログラムの取り扱いについて説明する。
まず、第一の実施の形態の前提として、機器20においてジョブが実行される際の典型的な処理手順について説明する。図5は、本実施の形態の機器におけるコピージョブ実行時の処理手順を説明するためのシーケンス図である。
ユーザによって、コピー元の原稿が機器20の所定の位置(ADF(Auto Document Feeder)等)にセットされ、オペレーションパネル602におけるスタートキーが押下されると(S101)、コピーアプリ141は、ジョブオープンをECS164に通知する(S102)。ECS164は、コピーアプリ141によるジョブオープンをSCS169に通知する(S103)。ジョブオープンは、これからジョブを開始することの宣言である。ジョブオープンがSCS169に通知されることにより、SCS169は、機器20のジョブの実行状態が、アイドル状態(待機状態)からジョブ実行中状態に遷移したことを認識する。認識とは、例えば、ジョブの実行状態を識別する情報をメモリ(MEM−P631)に記録することをいう。
続いて、コピーアプリ141は、ジョブエントリーをECS164に要求する(S104)。当該要求は、コピージョブを実行対象としてジョブキューにエントリさせるための登録要求を意味する。また、当該要求には、コピージョブに対する設定情報(実行条件)、コピージョブが必要とするハードウェア資源(スキャナ604,プロッタ605等)を示す情報が指定される。ECS164は、コピーアプリ141からのジョブエントリーの要求をSCS169に通知する(S105)。SCS169は、当該ジョブエントリーの要求をSRM152に通知する(S106)。
SRM152は、ジョブエントリーの要求に応じ、コピージョブが必要とするスキャナ604及びプロッタ605等の状態を確認し(S107、S108)、それぞれについて利用の可否をSCS169に通知する(S109、S110)。当該通知は、SCS169及びECS164を経てコピーアプリ141に伝達される(S111〜S114)。
スキャナ604及びプロッタ605の双方が利用可能である場合、コピーアプリ141は、コピージョブのスタート(開始)をECS164に要求する(S115)。ECS164は、コピージョブのスタートをSCS169に通知する(S116)。その後、ECS1164によって、SCS169及びSRM152等を介してスキャナ604及びプロッタ605が制御され、原稿のコピーが実行される(S117)。より詳しくは、スキャナ604より画像が読み取られ、当該画像に対して所定の画像処理が実行され、画像処理の結果として得られる画像がプロッタ605によって印刷用紙に転写(印刷)される。原稿が複数枚有るときは、複数枚についてコピーが実行される。
全ての原稿について処理が完了すると、ECS164は、ジョブエンド(ジョブの終了)をコピーアプリ141及びSCS169に通知する(S118、S119)。SCS169は、ジョブエンドをSRM152に通知する(S120)。
ジョブエンドの通知に応じ、コピーアプリ141は、ジョブクローズをECS164に要求する(S121)。ECS164は、コピーアプリ141によるジョブクローズをSCS169に通知する(S122)。ジョブクローズは、ジョブの終了の宣言を意味する。ジョブクローズがSCS169に通知されることにより、SCS169は、機器20におけるジョブの実行状態が、ジョブ実行中状態からアイドル状態(待機状態)に遷移したことを認識する。
続いて、図5において説明したように変化(遷移)する、機器20におけるジョブの実行状態に応じた追加プログラム制御部170による追加プログラムの取り扱い(制御)について説明する。
図6は、第一の実施の形態における追加プログラム制御部の処理手順を説明するためのフローチャートである。
ステップS201において、追加プログラム制御部170は、管理サーバ10より追加プログラムを受信し、受信された追加プログラムをメモリ(MEM−P631)に記録する。なお、追加プログラムには、適用対象とされるプログラム(以下、「対象プログラム」という。)の識別情報(対象プログラムID)、及び追加プログラムの識別情報(追加プログラムID)等が添付又は記録されている。
続いて、追加プログラム制御部170は、有効化対象とする追加プログラムの追加プログラムIDが指定された追加プログラムの有効化要求を管理サーバ10より受信する(S202)。なお、管理サーバ10から機器20(追加プログラム制御部170)への追加プログラムの転送、及び有効化要求の転送は、管理サーバ10主導で行われる。すなわち、管理サーバ10の操作者によって転送対象又は有効化対象とする追加プログラムが選択され、当該選択に応じて追加プログラムの転送又は有効化要求の転送が行われる。また、追加プログラムの転送と有効化要求の転送とは、必ずしもペアで行われる必要はない。予め追加プログラムの転送のみが実行され、その後の適当なタイミングにおいて既に転送済みの追加プログラムに対する有効化要求が転送されてもよい。
有効化要求に応じ、追加プログラム制御部170は、SCS169よりジョブの実行状態を取得する(SCS169にジョブの実行状態を問い合わせる)(S203)。図5において説明したように、ジョブの実行状態の遷移を検知し、現在のジョブの実行状態を認識しているのはSCS169だからである。
ジョブの実行状態がジョブ実行中でない場合(S204でNO)、追加プログラム制御部170は、有効化要求において指定されている追加プログラムIDに対応する追加プログラム(ここでは、ステップS201において受信された追加プログラムであるとする。)を有効化する(S208)。これによって、当該追加プログラムは、対象プログラムに適用される。その結果、対象プログラムの処理内容は、当該追加プログラムの処理によって改変される。続いて、追加プログラム制御部170は、追加プログラムが正常に有効化されたことを示す応答を管理サーバ10に送信する(S209)。
一方、ジョブの実行状態がジョブ実行中である場合(S204でYES)、追加プログラム制御部170は、ジョブ実行中適用可否管理テーブルを参照して、追加プログラムの適用の可否を判定する(S205)。
図7は、第一の実施の形態におけるジョブ実行中適用可否管理テーブルの構成例を示す図である。同図に示されるように、ジョブ実行中適用可否管理テーブル181には、機器20が有するプログラムのプログラムIDごとに、ジョブの実行状態がジョブ実行中である場合に追加プログラムを適用可能であるか否かが記録(登録)されている。図中「○」は適用可能であることを示し、「×」は適用不可能であることを示す。なお、ジョブ実行中可否管理テーブル181は、HDD633等の不揮発性の記憶媒体に予め記録されている。
したがって、追加プログラム制御部170は、追加プログラムに添付されている対象プログラムIDをジョブ実行中適用可否管理テーブル181に当てはめることにより、追加プログラムの適用の可否を判定する。判定の結果、適用可能である場合(S206でYES)、上述したステップS208が実行される。適用不可能である場合(S206でNO)、追加プログラム制御部170は、一定時間待機して、ステップS203以降を繰り返す。したがって、この場合、ジョブ実行中状態からアイドル状態への遷移に応じて追加プログラムの有効化(S208)が実行される。
図6の処理手順を、より具体的なケースに当てはめて説明する。図8は、ジョブ実行中にECSを適用対象とする追加プログラムの有効化が要求された場合の第一の処理手順を説明するためのシーケンス図である。図8中、図6と同一ステップには同一ステップ番号を付している。
ステップS202において、追加プログラム制御部170は、ECS169のプログラムIDを対象プログラムIDとする追加プログラムの有効化要求を管理サーバ10より受信する。なお、図8では、追加プログラムの受信ステップについては省略されている。この点は、以降のシーケンス図及びフローチャートにおいても同様である。
続いて、追加プログラム制御部170は、ジョブの実行状態をSCS169に問い合わせる(S203−1)。当該問い合わせに応じ、SCS169は、ジョブ実行中であることを示す応答を返信する(S203−2)。そこで、追加プログラム制御部170は、ジョブ実行中におけるECS169に対する追加プログラムの適用の可否をジョブ実行中適用可否管理テーブル181を参照して判定する(S205)。図7より、ジョブ実行中におけるECS169に対する追加プログラムの適用は不可能と判定される。したがって、追加プログラム制御部170は、ステップS203以降を繰り返す(リトライする)。その後、リトライされたSCS169に対するジョブ状態の問い合わせに対して(S203−n1)、ジョブ実行中ではない(アイドル状態である)ことを示す応答が返信されると(S203−n2)、追加プログラム制御部170は、ECS169に対する追加プログラムを有効化する(S208)。続いて、追加プログラム制御部170は、追加プログラムが正常に有効化されたことを示す応答を管理サーバ10に送信する(S209)。
続いて、図8の変形例について説明する。図9は、ジョブ実行中にECSを適用対象とする追加プログラムの有効化が要求された場合の第二の処理手順を説明するためのシーケンス図である。図9中、図8と同一ステップには同一ステップ番号を付し、その説明は省略する。
図9では、ステップS205において適用が不可能であると判定された場合のリトライの制御が管理サーバ10によって行われる点が図8と異なる。すなわち、ステップS205において適用が不可能であると判定されると、追加プログラム制御部170は、有効化は不可能(NG)であることを示す応答を管理サーバ10に送信する(S211)。そこで、管理サーバ10は、一定時間待機後、ECS169に対する追加プログラムの有効化要求を再送信する。再送信された有効化要求の受信時においてジョブ実行中だった場合、追加プログラム制御部170は、有効化は不可能(NG)であることを示す応答を管理サーバ10に再び送信する。
再送信されたECS169に対する追加プログラムの有効化要求がジョブ実行中でないときに受信されると(S202−n)、ステップS208以降が実行され、追加プログラムが有効化される。
続いて、図8及び図9の変形例について説明する。図10は、ジョブ実行中にECSを適用対象とする追加プログラムの有効化が要求された場合の第三の処理手順を説明するためのシーケンス図である。図10中、図8又は図9と同一ステップには、同一ステップ番号を付し、その説明は適宜省略する。
図10では、ジョブの実行状態の遷移が、追加プログラム制御部170が問い合わせなくてもSCS169から追加プログラム制御部170に通知される点が、図8及び図9と異なる。
SCS169は、ジョブの実行状態についてジョブ実行中への遷移を検知すると、追加プログラム制御部170に対してジョブ実行中への遷移を通知する(S221)。当該通知に応じ、追加プログラム制御部170は、現在はジョブ実行中であることを認識する。
したがって、その後、管理サーバ10よりECS169に対する追加プログラムの有効化要求が受信されると、追加プログラム制御部170は、ジョブ実行中適用可否管理テーブル181に基づいて追加プログラムの適用の可否を判定する(S205)。適用が不可能であると判定され場合、追加プログラム制御部170は、ジョブ実行中が解除されるまで待機する。
続いて、ジョブが完了したことを検知したSCS169より、ジョブの実行状態についてアイドル状態への遷移が通知されると(S222)、追加プログラム制御部170は、追加プログラムを有効化する(S208)。
なお、図10のような形態の場合、追加プログラム制御部170は、自らがプロセスとして起動される際(通常は機器20の起動時)に、自らの識別情報をジョブ状態の変更の通知先としてSCS169に登録しておけばよい。SCS169は、登録された識別情報に基づいてステップS221及びS222の通知を行えばよい。そうすることにより、SCS169の振る舞いを動的なものとすることができる。
上述したように、第一の実施の形態によれば、ジョブ実行中適用可否管理テーブル181に基づいて、ジョブ実行中における追加プログラムの適用(有効化)を適切に制御することができる。したがって、例えば、ジョブ実行中に適用されると不都合な対象プログラムに対する追加プログラムの適用を回避することができる。
次に、第二の実施の形態について説明する。第二の実施の形態では、ジョブの実行状態とは異なった観点(異なったカテゴリ)における機器20の状態であるオフライン状態に応じた追加プログラムの取り扱いについて説明する。
一般的に「オフライン」とは、ネットワークに接続されていないことをいうが、本実施の形態におけるオフライン状態の「オフライン」は、一般的な用語における「オフライン」とは意味が異なる。本実施の形態において、オフライン状態とは、機器20内の或るプログラム又は機能の都合により他のプログラム又は機能の実行が制限される状態をいう。ここで、或るプログラム等の都合とは、当該或るプログラムがユーザによる指示に応じて複数のプログラムの動作に影響を与えるようなパラメータの設定を行う場合や、当該設定を有効とするために機器20全体の再起動若しくは一部のプロセス群の再起動を行う場合等が相当する。すなわち、オフライン状態における「オフライン」とは、各プログラム等が有効に機能しないことを意味する。なお、オフライン状態に相対する通常の状態をオンライン状態という。
まず、第二の実施の形態の前提として、機器20がオフライン状態へ遷移する際の処理手順を説明する。図11は、オフライン状態への遷移処理の処理手順を説明するためのシーケンス図である。同図において、アプリ131Aは、オフライン状態への遷移の原因となるプログラムである。アプリ131Bは、オフライン状態への遷移の影響を受けるプログラム又はプログラム群である。
アプリ131Aは、パラメータの設定指示等、オフライン状態への遷移が必要となる処理の実行指示の入力をオペレーションパネル602又はネットワーク等を介して受け付けると、SCS169に対してオフライン要求(オフライン状態への遷移要求)を入力する(S301)。SCS169は、オフライン要求に応じ、アプリ131Bにオフライン状態への遷移の可否を問い合わせる(S302)。なお、ここで問い合わせ対象とされるアプリ131Bは、予め(例えば、アプリ131Bの起動時)に、オフライン状態の影響を受けるプログラムとて自らの識別情報がSCS169に登録されているものである。アプリ131Bは、自らの状態に応じてSCS169に対する応答を行う(S303)。例えば、アプリ131Bが中断できない処理の実行中である場合、アプリ131Bは、オフライン状態への遷移は不可能であることを示す応答をする。一方、アプリ131Bの実行中の処理が中断可能である場合又はアプリ131Bが処理を実行中で無い場合、アプリ131Bは、オフライン状態への遷移は可能であることを示す応答をする。
アプリ131Bからの応答が、オフライン状態への遷移が可能であることを示す場合、SCS169は、オフライン要求元のアプリ131Aと、オフライン状態への遷移の通知先として予め登録されている追加プログラム制御部170及びアプリ131Bにオフライン確定通知を入力する(S304〜S306)。オフライン確定通知には、オフライン状態への遷移の原因となったプログラム(アプリ131A)のプログラムIDも含まれる。
これにより、機器20はオフライン状態へ遷移したことになる。なお、オフライン確定通知を受けた各プログラムの振る舞い(すなわち、オフライン状態における各プログラムの振る舞い)は、各プログラムの実装に依存する。
また、オフライン状態の解除(オンライン状態への復帰)は、オフラインの原因となったアプリA131からのオンライン要求に応じ、図11と同様の処理手順が実行されることにより実現される。すなわち、アプリA131は、パラメータの設定やリブート等の完了後にSCS169に対しオンライン要求を入力する。
ところで、上記において単にオフライン状態と呼んでいた状態には複数の種類(オフラインモード)が存在する(オフライン状態は、複数のモードに細分化される)。図12は、オフライン状態の各モードを説明するための図である。
同図は、オンライン状態とオフライン状態との状態遷移が示されている。オンライン状態において「オフライ取得」が行われると、機器20はオフライン状態へ遷移する。ここで、「オフライン取得」の主体は、オフライン要求を行ったプログラムである。すなわち、本実施の形態において、図11におけるアプリ131Aが機器20をオフライン状態へ遷移させることを、「アプリ131Aがオフラインを取得する」と表現する。
図12において、オフライン状態には、SPモード、UPモード、リモート要求、システムリブート、NCSリブート等のモード(オフラインモード)が存在する。
SPモードは、サービスマン(機器20のメーカーの保守作業者)によって利用される設定画面が表示中である状態をいう。UPモードは、エンドユーザによって利用される初期設定画面が表示中である状態をいう。リモート要求は、ネットワークを介して設定情報(パラメータ)の更新が行われている状態をいう。システムリブートは、機器20自体の再起動が行われる状態をいう。NCSリブートは、NCS161のプロセスの再起動が行われる状態をいう。
したがって、図11において、アプリ131Aは、オフライン状態のモードを指定してSCS169にオフライン要求を行う。オフライン状態への遷移の可否の問い合わせを受けたアプリ131Bは、当該モードのオフライン状態への遷移の可否を判定し、その判定結果をSCS169に応答する。また、オフライン確定通知をうけた各プログラムは、当該モードに応じた振る舞いを行う。
続いて、以上のようなオフライン状態に応じた追加プログラム制御部170による追加プログラムの取り扱いについて説明する。
図13は、第二の実施の形態における追加プログラム制御部の処理手順を説明するためのフローチャートである。
ステップS401において、追加プログラム制御部170は、有効化対象とする追加プログラムの追加プログラムIDが指定された追加プログラムの有効化要求を管理サーバ10より受信する。有効化要求に応じ、オフライン状態でない場合(S402でNO)、追加プログラム制御部170は、有効化要求において指定されている追加プログラムIDに対応する追加プログラムを有効化する(S408)。続いて、追加プログラム制御部170は、追加プログラムが正常に有効化されたことを示す応答を管理サーバ10に送信する(S409)。なお、オフライン状態であるか否かは、SCS169からオフライン確定通知を受けているか否かによって判定可能である。
オフライン状態である場合(S402でYES)、追加プログラム制御部170は、オフラインモード適用可否管理テーブルを参照して、追加プログラムの適用の可否を判定する(S403)。
図14は、第二の実施の形態におけるオフラインモード適用可否管理テーブルの構成例を示す図である。同図に示されるように、オフラインモード適用可否管理テーブル182には、機器20において対象プログラムとなりうるプログラムのプログラムIDごとに、かつ、オフラインモードごとに追加プログラムを適用可能であるか否かが記録(登録)されている。図中「○」は適用可能であることを示し、「×」は適用不可能であることを示す。なお、オフラインモード可否管理テーブル182は、HDD633等の不揮発性の記憶媒体に予め記録されている。
したがって、追加プログラム制御部170は、追加プログラムに添付されている対象プログラムIDと現在のオフラインモードをオフラインモード可否管理テーブル182に当てはめることにより、追加プログラムの適用の可否を判定する。判定の結果、適用可能である場合(S404でYES)、追加プログラム制御部170は、オフライン取得元適用可否管理テーブルを参照して、追加プログラムの適用の可否を判定する(S405)。
図15は、第二の実施の形態におけるオフライン取得元適用可否管理テーブルの構成例を示す図である。同図に示されるように、オフライン取得元適用可否管理テーブル183には、機器20において対象プログラムとなりうるプログラムのプログラムIDごとに、かつ、オフライン取得元(オフラインを取得したプログラム)のプログラムIDごとに追加プログラムを適用可能であるか否かが記録(登録)されている。図中「○」は適用可能であることを示し、「×」は適用不可能であることを示す。なお、オフライン取得元可否管理テーブル183は、HDD633等の不揮発性の記憶媒体に予め記録されている。
したがって、追加プログラム制御部170は、追加プログラムに添付されている対象プログラムIDとオフラインモードの取得元のプログラムIDとをオフライン取得元適用可否管理テーブル183に当てはめることにより、追加プログラムの適用の可否を判定する。判定の結果、適用可能である場合(S406でYES)、上述したステップS408及びS409が実行される。
一方、ステップS403又はS405の判定において適用不可能であると判定された場合(S404でNO、又はS406でNO)追加プログラム制御部170は、追加プログラムの有効化の失敗を示す応答を管理サーバ10に返信する(S407)。なお、第一の実施の形態では、ジョブ実行中からアイドル状態へ遷移するまで待機したのに対し、第二の実施の形態では、オフライン状態が解除されるまで待機は行わないのは、オフライン状態の特性による。すなわち、オフライン状態は、ユーザによって各種のパラメータの設定が行われていたり、リブート等が行われていたりする状態である。ユーザによる設定作業については、その終了時期が予測できず、長期間に及ぶ可能性がある。したがって、オフライン状態の解除まで追加プログラムの有効化を待機するのは適切ではないからである。また、リブートが行われる場合は、管理サーバ10とのセッションが切断されてしまい、その後の管理サーバ10とのやりとりの継続が困難だからである。
図13の処理手順を、より具体的なケースに当てはめて説明する。図16は、オフライン状態中に追加プログラムの有効化が要求された場合の第一の処理手順を説明するためのシーケンス図である。図16中、図11又は図13と同一ステップには同一ステップ番号を付している。図16では、アプリ131Aに対してOCS166を当てはめ、アプリ131Bに対してECS164を当てはめている。したがって、図16では、OCS166がオフラインを取得し、オフライン状態となっている。
斯かる状態において、追加プログラム制御部170が、OCS166のプログラムIDを対象プログラムIDとする追加プログラムの有効化要求を管理サーバ10より受信したとする(S401)。有効化要求に応じ、追加プログラム制御部170は、追加プログラムの適用の可否を判定する(S403、S405)。ここでは、少なくとも、オフライン取得元適用可否テーブル183を用いた判定によって、適用は不可能であると判定される。すなわち、図15のオフライン取得元適用可否テーブル183において、オフライン取得元がOCS166である場合に対象プログラムがOCS166である追加プログラムの適用は「×」とされているからである。したがって、追加プログラム制御部170は、追加プログラムの有効化の失敗を示す応答を管理サーバ10に返信する(S407)。
また、図17は、オフライン状態中に追加プログラムの有効化が要求された場合の第二の処理手順を説明するためのシーケンス図である。図17中、図16と同一ステップには同一ステップ番号を付し、その説明は省略する。
図17では、ステップS401の有効化要求に含まれている対象プログラムIDが、ECS164のプログラムIDである点が図16と異なる。したがって、オフラインモードがシステムリブートでなければ(図14参照)、追加プログラムの適用は可能であると判定される。すなわち、図15のオフライン取得元適用可否テーブル183において、オフライン取得元がOCS166である場合に対象プログラムがECS164である追加プログラムの適用は「○」とされているからである。したがって、この場合、追加プログラム制御部170は、追加プログラムを有効化する(S408)。すなわち、当該追加プログラムはECS164に適用される。続いて、追加プログラム制御部170は、追加プログラムが正常に有効化されたことを示す応答を管理サーバ10に送信する(S409)。
上述したように、第二の実施の形態によれば、オフライン適用可否管理テーブル182及びオフライン取得元適用可否管理テーブル183に基づいて、オフライン状態における追加プログラムの適用(有効化)を適切に制御することができる。したがって、例えば、オフライン状態において適用されると不都合な対象プログラムに対する追加プログラムの適用を回避することができる。
次に、第三の実施の形態について説明する。第三の実施の形態では、第一の実施の形態又は第二の実施の形態における機器20の状態と異なるカテゴリにおける機器20の状態である、電力状態(電力の供給状態)に応じた追加プログラムの取り扱いについて説明する。
図18は、第三の実施の形態における機器の電力状態の状態遷移例を示す図である。同図には、機器20の電力状態として、通常電力状態、予熱状態、低電力状態、静音状態、及びエンジンOFF状態等が例示されている。通常電力状態は、いわゆる通常の電力状態であり、各種のジョブを即座に実行可能な状態である。通常電力状態において、オペレーションパネル602の予熱キーが押下された場合、又は所定時間の無操作状態が継続した場合、機器20の電力状態は、予熱状態へ遷移する。予熱状態は、通常電力状態よりも消費電力が抑制された状態である。例えば、予熱状態では、プリンタ605の定着ユニットの温度が下げられる。予熱状態が無操作のまま所定時間継続した場合、機器20の電力状態は低電力状態→静音状態といったように徐々に消費電力が少ない状態へ遷移する。静音状態では、例えば、定着ユニットへの電源の供給が停止される。但し、HDD633へのアクセスは可能である。また、通常電力状態において電源キーが押下された場合も静音状態への遷移が発生する。電源キーは、電源スイッチとは異なる。電源スイッチは、機器20の電源をON/OFFするためのスイッチである。電源キーは、機器20の電力状態について通常電力状態と静音状態との切り替えを行うためのキー(ボタン)である。静音状態が無操作のまま所定時間継続した場合、機器20の電力状態はエンジンOFF状態へと遷移する。エンジンOFF状態では、消費電力が最小とされる。このような、電力状態の遷移についても、SCS169に通知される。したがって、SCS169は、常に現在の電力状態がどの状態であるのかを把握(認識)している。
なお、通常電力状態以外の状態において、キー操作等の入力が行われた場合、機器20の電力状態は通常電力状態へと遷移する。
例えば、図19は、静音状態から通常電力状態への遷移時の処理手順を説明するためのシーケンス図である。同図において、アプリ131Cは、電力状態の遷移の通知先として予めSCS169に登録されているプログラム又はプログラム群である。
例えば、静音状態において、ネットワークを介して接続されているPC(Personal Computer)からの印刷要求が受信されると、プリンタアプリ142は、ジョブオープンをSCS169に通知する(S501)。なお、図5において説明した通り、ジョブオープンは、ECS164を介してSCS169に通知されるが、図19では便宜上、ECS164の介在については省略されている。
ジョブオープンの通知に応じ、SCS169は、機器20の電力状態を静音状態から通常状態へ遷移させる必要があることを判断する。そこで、SCS169は、電力状態の遷移時の問い合わせ先として予めSCS169に登録されている追加プログラム制御部170及びアプリ131Cに静音状態から通常電力状態への変更(遷移)の可否を問い合わせる(S502、S503)。問い合わせを受けた追加プログラム制御部170及びアプリ131Cは、それぞれの状態に応じてSCS169に対する応答を行う(S504、S505)。
問い合わせ先からの全ての応答が、通常電力状態への遷移が可能であることを示す場合、SCS169の制御に基づいて、機器20の電力状態が物理的に通常電力状態となる。
続いて、SCS169は、電力状態の遷移の通知先として予めSCS169に登録されている、プリンタアプリ142、追加プログラム制御部170、及びアプリC131Cに通常電力状態へ遷移したこと示す電力状態確定通知を入力する(S506〜S508)。
なお、図19は、静音状態から通常電力状態への遷移について説明したが、電力状態に関する他の遷移もついても同様の処理手順が実行される。したがって追加プログラム制御部170は、ステップS507の通知により、現在の電力状態を常に把握することができる。
斯かる電力状態の遷移に応じた追加プログラムの取り扱いについては、第二の実施の形態と同様でよい。すなわち、第三の実施の形態における追加プログラム制御部170は、図13と同様の処理手順を実行すればよい。この場合、オフラインモード適用可否テーブル182の代わりに電力状態適用可否テーブルを利用すればよい。電力状態適用可否テーブルの列方向は、オフラインモードの代わりに電力状態とすればよい。したがって、電力状態適用可否テーブルによれば、電力状態ごとに各対象プログラムに対する追加プログラムの適用の可否を判定することができる。
一方、オフライン取得元テーブル183に対応するテーブルは、必ずしも必要ではない。したがって、第三の実施の形態では、図13中、ステップS405及びS406に対応するステップは省略されてもよい。
上述したように、第三の実施の形態によれば、電力状態適用可否管理テーブルに基づいて、各電力状態における追加プログラムの適用(有効化)を適切に制御することができる。したがって、例えば、静音状態において適用されても意味の無い対象プログラムに対する追加プログラムの適用を回避することができる。
次に、第四の実施の形態について説明する。第一から第三の実施の形態の追加プログラム制御部170は、管理サーバ10からの追加プログラムの有効化要求の受信に応じて追加プログラムの有効化の可否(適用の可否)を判定するというものであった。一方、第四の実施の形態の追加プログラム制御部170は、機器20の状態の変化を検知に応じて当該状態に適合した追加プログラムを自動的又は能動的に有効化する。なお、第四の実施の形態における機器20の「状態」としては、ジョブの実行状態、オフライン状態、及び電力状態の全てが対象となりうる。
図20は、第四の実施の形態における追加プログラム制御部の処理手順を説明するためのフローチャートである。
追加プログラム制御部170は、機器20の状態の変化を検知すると、有効化条件管理テーブルに未処理の追加プログラムが残っている否かを判定し、残っていれば、未処理の追加プログラムのうちの一つを処理対象とする(S601)。ここで、状態の変化の検知は、オフライン状態であれば、図11のステップS305における、SCS169からのオフライン確定通知に基づいて行われる。また、電力状態の変化であれば、図19のステップS507の通知における、SCS169からの電力状態確定通知に基づいて行われる。また、ジョブの実行状態については、追加プログラム制御部170がSCS169に対してジョブの実行状態に関するポーリングを行ってもよいし、図10のケースであれば、ステップS221におけるSCS169からの通知に基づいて検知されてもよい。
図21は、第四の実施の形態における有効化条件管理テーブルの構成例を示す図である。同図において、有効化条件管理テーブル190には、追加プログラムごとに有効化の条件が記録(登録)されている。条件は、電力状態、オフライン状態、及びジョブの実行状態(ジョブ状態)によって指定される。同図の例では、追加プログラムA〜追加プログラムDまでの4つの追加プログラムが登録されている。追加プログラムAの有効化の条件は、電力状態がエンジンOFF状態であることである。追加プログラムBの有効化の条件は、電力状態が静音状態であることである。追加プログラムCの有効化の条件は、システムリブート状態であることである。追加プログラムDの有効化の条件は、ジョブ実行中であることである。なお、二つ以上の状態の組み合わせによって条件が指定されてもよい。有効化条件管理テーブル190は、HDD633等の不揮発性の記憶媒体に予め記録されている。
ステップS602が最初に実行される際には、追加プログラムAが処理対象とされる。以下、処理対象とされた追加プログラムを「カレント追加プログラム」という
続いて、追加プログラム制御部170は、ステップS601において検知された状態が、カレント追加プログラムに対する有効化の条件に合致するか否かを判定する(S603)。検知された状態が有効化の条件に合致する場合、追加プログラム制御部170は、カレント追加プログラムが既に有効化されているか否かを判定する(S604)。追加プログラム制御部170は、追加プログラムを有効化する主体であるため、現在有効化されている追加プログラムの一覧を把握している(例えば、現在有効化されている追加プログラムの追加プログラムIDの一覧をメモリに記録している)。したがって、追加プログラム制御部170は、各追加プログラムが有効化されているか否かの判定が可能である。
カレント追加プログラムが有効化されていない場合(S604でNO)、追加プログラム制御部170は、カレント追加プログラムを有効化する(S605)。カレント追加プログラムが既に有効化されている場合(S604でYES)、追加プログラム制御部170は、カレント追加プログラムについては何もせずに、有効化条件管理テーブル190において次に登録されている追加プログラムをカレント追加プログラムとする。
一方、検知された状態がカレント追加プログラムの有効化の条件に合致しない場合(S603でNO)、追加プログラム制御部170は、検知された状態が、カレント追加プログラムの有効化の条件に指定されている状態と同一カテゴリに属する状態であるか否かを判定する(S606)。例えば、追加プログラムAであれば、検知された状態がエンジンOFF状態以外の電力状態であれば当該判定は肯定される。一方、検知された状態がオフライン状態又はジョブ状態に関するものであれば当該判定は否定される。
検知された状態が、カレント追加プログラムの有効化の条件に指定されている状態と同一カテゴリに属する場合(S606でYES)、追加プログラム制御部170は、カレント追加プログラムが既に有効化されているか否かを判定する(S607)。有効化されている場合(S607でYES)、追加プログラム制御部170は、カレント追加プログラムを無効化する(S608)。無効化とは、対象プログラムに対する追加プログラムの適用(すなわち、割り込み命令の挿入)を解除することをいう。無効化によって、対象プログラムの処理手順は本来のものに戻る。
一方、検知された状態が、カレント追加プログラムの有効化の条件に指定されている状態と同一カテゴリに属さない場合(S606でNO)、又はカレント追加プログラムが有効化されていない場合(S607でNO)、追加プログラム制御部170は、カレント追加プログラムについては何もせずに、有効化条件管理テーブル190において次に登録されている追加プログラムをカレント追加プログラムとする。
ステップS602以降が、有効化条件管理テーブル170に登録されている全ての追加プログラムについて完了したら図20の処理は終了する。
図20の処理手順を、より具体的なケースに当てはめて説明する。図22は、機器の状態変化に応じた追加プログラムの有効化処理の第一の処理手順を説明するためのシーケンス図である。図22中、図20と同一ステップには同一ステップ番号を付している。
例えば、追加プログラム制御部170は、エンジンOFF状態に遷移したことを示す電力状態確定通知をSCS169より受信すると(S601−1)、図21の有効化条件管理テーブル190に基づいて、追加プログラムAを有効化する(S605−1)。
その後、追加プログラムAが有効化された状態において、静音状態に遷移したことを示す電力状態確定通知がSCS169より受信されると(S601−2)、追加プログラム制御部170は、有効化条件管理テーブル190に基づいて、追加プログラムAを無効化し(S608)、更に、追加プログラムBを有効化する(S605−2)。
続いて、図22の変形例について説明する。図23は、機器の状態変化に応じた追加プログラムの有効化処理の第二の処理手順を説明するためのシーケンス図である。図23中、図22と同一ステップには同一ステップ番号を付している。また、図23において、有効化条件管理テーブル190は、管理サーバ10が有している。
例えば、追加プログラム制御部170は、エンジンOFF状態に遷移したことを示す電力状態確定通知をSCS169より受信すると(S601−1)、当該電力状態の遷移を管理サーバ10に通知する(S701)。管理サーバ10は、当該通知に応じて図20に示される処理を実行し、追加プログラムAの有効化要求を追加プログラム制御部170に送信する(S702)。追加プログラム制御部170は当該有効化要求に応じて追加プログラムAを有効化する。なお、図中では省略されているが、有効化に成功した場合、追加プログラム制御部170は、追加プログラムAの有効化に成功したことを管理サーバ10に通知する。これによって、管理サーバ10は、追加プログラムAが有効化されていることを認識することができる。
その後、追加プログラムAが有効化された状態において、静音状態に遷移したことを示す電力状態確定通知がSCS169より受信されると(S601−2)、追加プログラム制御部170は、当該電力状態の遷移を管理サーバ10に通知する(S703)。管理サーバ10は、当該通知に応じて図20に示される処理を実行し、追加プログラムAの無効化要求と、追加プログラムBの有効化要求とを追加プログラム制御部170に送信する(S704、S705)。追加プログラム制御部170は、管理サーバ10からの要求に応じ、追加プログラムAを無効化し、追加プログラムBを有効化する。
このように、有効化条件管理テーブル190は、管理サーバ10が有していてもよい。この場合、図20の処理は、管理サーバ10が実行すればよい。
上述したように、第四の実施の形態によれば、有効化条件管理テーブル190に基づいて、機器20の状態に応じて追加プログラムの有効化又は無効化を自動的に制御することができる。したがって、追加プログラムが適用されるタイミングを適切なものとすることができる。
なお、第四の実施の形態と第一から第三の実施の形態とを組み合わせてもよい。この場合、第四の実施の形態における処理によって有効化すべきと判定された追加プログラムの有効化の可否を、第一から第三の実施の形態における処理によって判定すればよい。また、第一から第四の実施の形態を任意に組み合わせて実施してもよい。
また、本実施の形態では画像形成装置を電子機器の一例としたが、本発明を適用可能な電子機器は画像形成装置に限定されない。例えば、各種のデジタル家電、携帯機器、又は汎用的なコンピュータ等に対しても本発明は有効に適用されうる。
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
1 機器管理システム
10 管理サーバ
20 機器
131 アプリケーション
132 プラットフォーム
133 アプリケーションプログラムインタフェース
134 エンジンインタフェース
135 仮想アプリケーションサービス
141 コピーアプリ
142 プリンタアプリ
143 スキャナアプリ
144 ファクシミリアプリ
145 ネットワークファイルアプリ
146 CSDKアプリ
147 JSDKアプリ
147a、147b アプリ
148 JSDKプラットフォーム
151 コントロールサービス
152 システムリソースマネージャ
153 OS
161 ネットワークコントロールサービス
162 ファクシミリコントロールサービス
163 デリバリコントロールサービス
164 エンジンコントロールサービス
165 メモリコントロールサービス
166 オペレーションパネルコントロールサービス
167 サーティフィケーションコントロールサービス
168 ユーザディレクトリコントロールサービス
169 システムコントロールサービス
170 追加プログラム制御部
601 コントローラ
602 オペレーションパネル
603 ファクシミリコントロールユニット
604 スキャナ
605 プロッタ
611 CPU
612 ASIC
621 NB
622 SB
631 MEM−P
632 MEM−C
633 HDD
634 メモリカードスロット
635 メモリカード
641 NIC
642 USBデバイス
643 IEEE1394デバイス
644 セントロニクスデバイス
特開2008−269163号公報

Claims (15)

  1. 電子機器であって、
    当該電子機器の状態の変化を検知し、該状態を認識する状態管理手段と、
    他のプログラムに対して動的に処理を割り込ませることのできる追加プログラムの有効化要求の入力に応じ、当該追加プログラムを当該電子機器のプログラムに適用させる追加プログラム制御手段と、
    電子機器の状態に応じて前記追加プログラムの適用の可否を示す適用可否情報を記憶した適用可否記憶手段とを有し、
    前記追加プログラム制御手段は、前記有効化要求が入力されたときに前記状態管理手段が認識している当該電子機器の状態と前記適可否情報とに基づいて、当該有効化要求に係る前記追加プログラムの適用の可否を判定する電子機器。
  2. 前記追加プログラム制御手段は、前記追加プログラムに適用が不可能であると判定された場合は、当該電子機器の状態が当該追加プログラムの適用の可能な状態となるまで待機した後、当該追加プログラムを当該電子機器のプログラムに適用させる請求項1記載の電子機器。
  3. 前記電子機器の状態は、ジョブの実行状態、当該電子機器のプログラムの処理の実行が制限される状態、又は当該電子機器の電力状態である請求項1又は2記載の電子機器。
  4. 前記追加プログラムを有効化させる条件が当該電子機器の状態によって指定された有効化条件情報を記憶した有効化条件記憶手段を有し、
    前記追加プログラム制御手段は、前記状態管理手段による当該電子機器の状態の変化の検知に応じ、検知された状態において有効化すべき前記追加プログラムを前記有効化条件情報に基づいて判定し、判定された前記追加プログラムを当該電子機器のプログラムに適用させる請求項1乃至3いずれか一項記載の電子機器。
  5. 前記追加プログラムを有効化させる条件が当該電子機器の状態によって指定された有効化条件情報を記憶した有効化条件記憶手段を有するコンピュータとネットワークを介して接続され、
    前記追加プログラム制御手段は、前記状態管理手段によって検知される当該電子機器の状態の変化を前記コンピュータに通知し、前記コンピュータによる、該状態の変化の通知と前記有効化条件記憶手段とに基づく判定結果を前記コンピュータより受信し、該判定結果に指定された前記追加プログラムを当該電子機器のプログラムに適用させる請求項1乃至3いずれか一項記載の電子機器。
  6. 電子機器が実行する情報処理方法であって、
    当該電子機器の状態の変化を検知し、該状態を認識する状態管理手順と、
    他のプログラムに対して動的に処理を割り込ませることのできる追加プログラムの有効化要求の入力に応じ、当該追加プログラムを当該電子機器のプログラムに適用させる追加プログラム制御手順とを有し、
    前記追加プログラム制御手順は、前記有効化要求が入力されたときに前記状態管理手順において認識されている当該電子機器の状態と、電子機器の状態に応じて前記追加プログラムの適用の可否を示す適用可否情報を記憶した適用可否記憶手段とに基づいて、当該有効化要求に係る前記追加プログラムの適用の可否を判定する情報処理方法。
  7. 前記追加プログラム制御手順は、前記追加プログラムに適用が不可能であると判定された場合は、当該電子機器の状態が当該追加プログラムの適用の可能な状態となるまで待機した後、当該追加プログラムを当該電子機器のプログラムに適用させる請求項6記載の情報処理方法。
  8. 前記電子機器の状態は、ジョブの実行状態、当該電子機器のプログラムの処理の実行が制限される状態、又は当該電子機器の電力状態である請求項6又は7記載の情報処理方法。
  9. 前記追加プログラム制御手順は、前記状態管理手順における当該電子機器の状態の変化の検知に応じ、検知された状態において有効化すべき前記追加プログラムを、前記追加プログラムを有効化させる条件が当該電子機器の状態によって指定された有効化条件情報を記憶した有効化条件記憶手段に基づいて判定し、判定された前記追加プログラムを当該電子機器のプログラムに適用させる請求項6乃至8いずれか一項記載の情報処理方法。
  10. 当該電子機器は、前記追加プログラムを有効化させる条件が当該電子機器の状態によって指定された有効化条件情報を記憶した有効化条件記憶手段を有するコンピュータとネットワークを介して接続され、
    前記追加プログラム制御手順は、前記状態管理手順において検知される当該電子機器の状態の変化を前記コンピュータに通知し、前記コンピュータによる、該状態の変化の通知と前記有効化条件記憶手段とに基づく判定結果を前記コンピュータより受信し、該判定結果に指定された前記追加プログラムを当該電子機器のプログラムに適用させる請求項6乃至8いずれか一項記載の情報処理方法。
  11. 電子機器に、
    当該電子機器の状態の変化を検知し、該状態を認識する状態管理手順と、
    他のプログラムに対して動的に処理を割り込ませることのできる追加プログラムの有効化要求の入力に応じ、当該追加プログラムを当該電子機器のプログラムに適用させる追加プログラム制御手順とを実行させ、
    前記追加プログラム制御手順は、前記有効化要求が入力されたときに前記状態管理手順において認識されている当該電子機器の状態と、電子機器の状態に応じて前記追加プログラムの適用の可否を示す適用可否情報を記憶した適用可否記憶手段とに基づいて、当該有効化要求に係る前記追加プログラムの適用の可否を判定する情報処理プログラム。
  12. 前記追加プログラム制御手順は、前記追加プログラムに適用が不可能であると判定された場合は、当該電子機器の状態が当該追加プログラムの適用の可能な状態となるまで待機した後、当該追加プログラムを当該電子機器のプログラムに適用させる請求項11記載の情報処理プログラム。
  13. 前記電子機器の状態は、ジョブの実行状態、当該電子機器のプログラムの処理の実行が制限される状態、又は当該電子機器の電力状態である請求項11又は12記載の情報処理プログラム。
  14. 前記追加プログラム制御手順は、前記状態管理手順における当該電子機器の状態の変化の検知に応じ、検知された状態において有効化すべき前記追加プログラムを、前記追加プログラムを有効化させる条件が当該電子機器の状態によって指定された有効化条件情報を記憶した有効化条件記憶手段に基づいて判定し、判定された前記追加プログラムを当該電子機器のプログラムに適用させる請求項11乃至13いずれか一項記載の情報処理プログラム。
  15. 当該電子機器は、前記追加プログラムを有効化させる条件が当該電子機器の状態によって指定された有効化条件情報を記憶した有効化条件記憶手段を有するコンピュータとネットワークを介して接続され、
    前記追加プログラム制御手順は、前記状態管理手順において検知される当該電子機器の状態の変化を前記コンピュータに通知し、前記コンピュータによる、該状態の変化の通知と前記有効化条件記憶手段とに基づく判定結果を前記コンピュータより受信し、該判定結果に指定された前記追加プログラムを当該電子機器のプログラムに適用させる請求項11乃至13いずれか一項記載の情報処理プログラム。
JP2009161105A 2009-07-07 2009-07-07 電子機器、情報処理方法、及び情報処理プログラム Expired - Fee Related JP5293462B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009161105A JP5293462B2 (ja) 2009-07-07 2009-07-07 電子機器、情報処理方法、及び情報処理プログラム
US12/829,719 US20110010718A1 (en) 2009-07-07 2010-07-02 Electronic device, information processing method, and computer program product having computer-readable information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009161105A JP5293462B2 (ja) 2009-07-07 2009-07-07 電子機器、情報処理方法、及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2011018134A JP2011018134A (ja) 2011-01-27
JP5293462B2 true JP5293462B2 (ja) 2013-09-18

Family

ID=43428442

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009161105A Expired - Fee Related JP5293462B2 (ja) 2009-07-07 2009-07-07 電子機器、情報処理方法、及び情報処理プログラム

Country Status (2)

Country Link
US (1) US20110010718A1 (ja)
JP (1) JP5293462B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012221032A (ja) * 2011-04-05 2012-11-12 Toyota Motor Corp 車両データ取得システム及び車両データ取得方法
JP5544339B2 (ja) * 2011-08-30 2014-07-09 京セラドキュメントソリューションズ株式会社 電子機器及び画像形成装置
JP6123799B2 (ja) * 2012-05-31 2017-05-10 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
JP7358800B2 (ja) * 2019-06-27 2023-10-11 京セラドキュメントソリューションズ株式会社 電子機器及びその制御プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1185689A (ja) * 1997-09-05 1999-03-30 Nec Corp ソフトウェア自動配信システム
US8533702B2 (en) * 2002-06-27 2013-09-10 International Business Machines Corporation Dynamically resolving fix groups for managing multiple releases of multiple products on multiple systems
CA2465151A1 (en) * 2003-04-16 2004-10-16 Novadigm, Inc. Method and system for patch management
JP2004334793A (ja) * 2003-05-12 2004-11-25 Canon Inc 周辺装置およびサーバ装置およびクライアントデバイスおよびネットワークデバイスシステムおよびデバイス検索方法およびコンピュータが読取り可能なプログラムを格納した記憶媒体およびプログラム
EP1678609A1 (en) * 2003-10-27 2006-07-12 American Power Conversion Corporation System and method for updating a software program
US20060288341A1 (en) * 2005-06-15 2006-12-21 Microsoft Corporation Patch-impact assessment through runtime insertion of code path instrumentation
JP4979220B2 (ja) * 2005-10-12 2012-07-18 キヤノン株式会社 画像処理装置及びその制御方法
JP2007310783A (ja) * 2006-05-22 2007-11-29 Sharp Corp 画像形成装置におけるファームウェアのアップデート方法、プログラム、記録媒体
US8209676B2 (en) * 2006-06-08 2012-06-26 Hewlett-Packard Development Company, L.P. Device management in a network
JP4342576B2 (ja) * 2006-07-25 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ 複数オペレーティングシステム切替制御装置及びコンピュータシステム
JP4905165B2 (ja) * 2007-02-07 2012-03-28 富士通株式会社 監視支援プログラム、監視方法および監視システム
JP4898536B2 (ja) * 2007-04-18 2012-03-14 株式会社リコー 障害解析支援装置、障害解析支援方法及び障害解析支援プログラム
JP5089250B2 (ja) * 2007-06-06 2012-12-05 株式会社リコー 情報処理装置
US8464273B2 (en) * 2007-11-19 2013-06-11 Ricoh Company, Ltd. Information processing apparatus, information processing method, and computer-readable program
US20090249346A1 (en) * 2008-03-27 2009-10-01 Toru Harada Image forming apparatus, information processing apparatus and information processing method

Also Published As

Publication number Publication date
JP2011018134A (ja) 2011-01-27
US20110010718A1 (en) 2011-01-13

Similar Documents

Publication Publication Date Title
EP2093690A1 (en) Authentication control apparatus and authentication control method
JP5463762B2 (ja) 電子機器、情報処理方法、及びプログラム
JP6476541B2 (ja) 画像形成装置、印刷要求削除方法及びプログラム
JP5293462B2 (ja) 電子機器、情報処理方法、及び情報処理プログラム
US20160261759A1 (en) Information processing system, information processing method and information processing apparatus
US20070083629A1 (en) Data processing system, data managing apparatus, and computer product
JP2009037589A (ja) プログラム判定装置、プログラム判定方法及びプログラム
US20090249346A1 (en) Image forming apparatus, information processing apparatus and information processing method
US10542181B2 (en) Data processing system, data processing apparatus, server, and recording medium
JP5065805B2 (ja) 電子機器、サービス提供方法及びプログラム
JP2009020609A (ja) 画像形成装置、プログラム制御方法及びプログラム
JP2014045461A (ja) アップロードプログラム、画像読取装置及び画像形成装置
JP4809272B2 (ja) 遠隔管理システムおよび管理情報取得制御方法
JP5793872B2 (ja) 画像形成装置、プログラム管理方法、プログラム管理プログラム、及び記録媒体
JP2009137165A (ja) 画像形成装置、情報処理方法及びプログラム
JP4976329B2 (ja) 追加プログラムを実行可能な装置、障害解析支援方法、及び障害解析支援プログラム
JP5011502B2 (ja) 電子機器、サービス提供方法及びプログラム
JP7119433B2 (ja) 機器、情報処理システム、情報処理方法及びプログラム
JP5310324B2 (ja) 情報処理装置、情報処理方法、及びプログラム
US20130027745A1 (en) Image forming apparatus, control method thereof and operational panel printed circuit board assembly
JP4378338B2 (ja) 情報処理装置、デバイス設定方法、記憶媒体、プログラム
JP6424538B2 (ja) 情報処理装置、情報処理システム及びプログラム
JP6728590B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
JP6089794B2 (ja) 機器、情報処理システム、情報処理方法、及びプログラム
US20220413774A1 (en) Print system and print method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120525

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130402

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130424

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130527

R151 Written notification of patent or utility model registration

Ref document number: 5293462

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

LAPS Cancellation because of no payment of annual fees