説明

電子機器、プログラム実行制御方法、及びプログラム

【課題】他のプログラムに動的に処理を割り込ませることが可能なプログラムの実行を適切に制限することのできる電子機器、プログラム実行制御方法、及びプログラムの提供を目的とする。
【解決手段】適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な第二のプログラムに関連付けられている第二のデータと、前記第一のプログラムに関連付けられている第一のデータとが予め定義された対応関係に合致するか否かに基づいて前記第二のプログラムの適用の可否を判定する判定手段と、前記判定手段の判定結果に応じて、前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手段とを有することにより上記課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器、プログラム実行制御方法、及びプログラムに関し、特に他のプログラムに動的に処理を割り込ませることが可能なプログラムの実行を制御する電子機器、プログラム実行制御方法、及びプログラムに関する。
【背景技術】
【0002】
従来、特に組み込み機器等において動作するプログラムの障害解析(デバッグ等)の代表的な作業として、プログラムが出力するログの解析が行われている。すなわち、プログラムのソースコードには、プログラムが用いている変数の値や、プログラムが動作しているハードウェアの状態を示す情報等をログファイルに出力するための命令(例えば、C言語におけるprintf関数)が予め各所に埋め込まれている。障害が発生した際、斯かる命令(以下、「ログ出力命令」という。)に従って出力されたログファイルを解析することにより、障害の原因が推測又は特定される。
【0003】
しかし、予め埋め込まれたログ出力命令に基づいて出力されるログファイル(最初に出力されるログファイル)では、詳細な解析を行うには情報として不十分な場合が多々ある。斯かる場合、最初に出力されるログファイルに基づいて、或る程度障害箇所が絞り込まれる。続いて、その障害箇所周辺について更に詳細なログを出力するように、プログラムのソースコードが修正され、コンパイル及びリンクが行われた上で、プログラムの置き換えが行われる。改めて出力されるログファイルによっても原因が特定できない場合は、更に、ソースコードにログ出力命令が埋め込まれ、上記作業が繰り返される。このように、ログに基づいて障害解析を行う場合、時として大変煩雑な作業が要求されていた。
【0004】
そこで、従来、動作中のプログラムの任意の箇所(診断位置)に当該プログラムの診断用プログラムの処理を動的に(実行時に)割り込ませる技術が存在する。診断用プログラムでは、診断対象となるプログラムの変数の値等を参照することができる。診断用プログラムの処理の終了後は、診断対象となるプログラムについて診断用プログラムによって割り込まれた位置に処理が復帰する。斯かる技術によれば、診断対象となるプログラムのソースコードを修正することなく、診断用プログラムによって診断対象となるプログラムのログの出力が可能となる。
【特許文献1】特開2004−139572号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、斯かる診断用プログラムはあらゆるプログラムに適用可能であるため、適用対象のプログラム(アプリケーション)の開発者又は保守担当者でない者によって作成された診断用プログラムが安易に適用される可能性がある。その結果、適用されたプログラム又は機器全体の動作が不安定となる可能性があるばかりか、セキュリティが適切に確保されない可能性が生じる。また、排他的な関係にある複数の診断用プログラムが同時に実行された場合、それぞれの診断用プログラムで意図した動作が得られない可能性がある。
【0006】
本発明は、上記の点に鑑みてなされたものであって、他のプログラムに動的に処理を割り込ませることが可能なプログラムの実行を適切に制限することのできる電子機器、プログラム実行制御方法、及びプログラムの提供を目的とする。
【課題を解決するための手段】
【0007】
そこで上記課題を解決するため、本発明は、適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な第二のプログラムに関連付けられている第二のデータと、前記第一のプログラムに関連付けられている第一のデータとが予め定義された対応関係に合致するか否かに基づいて前記第二のプログラムの適用の可否を判定する判定手段と、前記判定手段の判定結果に応じて、前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手段とを有することを特徴とする。
【0008】
このような電子機器では、他のプログラムに動的に処理を割り込ませることが可能なプログラムの実行を適切に制限することができる。
【発明の効果】
【0009】
本発明によれば、他のプログラムに動的に処理を割り込ませることが可能なプログラムの実行を適切に制限することのできる電子機器、プログラム実行制御方法、及びプログラムを提供することができる。
【発明を実施するための最良の形態】
【0010】
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における機器管理システムの構成例を示す図である。図1の機器管理システム1において、管理サーバ10と、機器20a、機器20b及び機器20c(以下、総称する場合「機器20」という。)とは、オフィスにおけるLAN(Local Area Network)等のネットワーク50(有線又は無線の別は問わない。)を介して接続されている。
【0011】
機器20は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置(複合機)である。機器20は、CPUやメモリを備え、メモリに記録されたプログラムに従ったCPUによる制御に基づいて各種の機能を実現する。なお、本実施の形態では、機器20が電子機器の一例に相当する。
【0012】
管理サーバ10は、機器20において利用されるプログラムに対して適用される追加プログラムの管理及び当該追加プログラムの機器20への転送等を行うコンピュータである。本実施の形態において、追加プログラムとは、適用対象とされるプログラムの任意の箇所において、当該追加プログラムに定義された処理を動的に割り込ませることのできるプログラムをいう。
【0013】
図2は、追加プログラムの概要を説明するための図である。図2において、501は、追加プログラム505が適用されるプログラムにおける仮想メモリ上における命令の配列を示す。プログラム501は、追加プログラム501が適用される前(通常実行時)は、命令1、2、3の順で処理を実行する。501aは、プログラム501に追加プログラム501が適用された状態を示す。ここでは、命令1と命令2との間に追加プログラム505の処理を割り込ませる例が示されている。この場合、命令2がテーブル502への分岐命令に置き換えられる。テーブル502には、初期化処理、前処理(変数のスタックへの退避等)、追加プログラム505の呼び出し処理、後処理(スタックに退避されていた変数等の取り出し等)の後に命令2が実行され、プログラム501の命令3に戻るような定義がされている。
【0014】
すなわち、追加プログラムが適用される場合、適用対象とされたプログラムの実行ステップが予め指定された箇所(追加位置)に到達すると、追加プログラムの処理が実行される。当該追加プログラムの処理が終了すると、適用対象とされたプログラムに処理制御が復帰する。その後、適用対象とされたプログラムは、追加位置より処理を再開する。なお、追加プログラムには、適用対象のプログラムに割り込ませる処理の他、適用対象とするプログラム及び追加位置を識別するための情報が含まれている。
【0015】
追加プログラムの中では、適用対象とされるプログラムの変数等を参照可能である。したがって、追加プログラムによって、適用対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させるための処理や、新たな機能を実現するための処理を適用対象とされるプログラムに割り込ませることができる。
【0016】
斯かる追加プログラムによれば、適用対象とされるプログラムについて、ソースコードの修正、コンパイル及びリンク、更に、再インストール等を行うことなく(すなわち、動的に)、ログ情報の出力や機能強化等を図ることができる。
【0017】
図3は、本発明の実施の形態における機器のハードウェア構成の一例を示す図である。同図において、機器20は、コントローラ601、オペレーションパネル602、ファクシミリコントロールユニット(FCU)603、撮像部604、及び印刷部605等より構成される。
【0018】
コントローラ601は、CPU611、ASIC612、NB621、SB622、MEM−P631、MEM−C632、HDD(ハードディスクドライブ)633、メモリカードスロット634、NIC(ネットワークインタフェースコントローラ)641、USBデバイス642、IEEE1394デバイス643、セントロニクスデバイス644により構成される。
【0019】
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から出力を得るためのハードウェア(表示部)である。
【0020】
図4は、本発明の実施の形態における機器のソフトウェア構成例を示す図である。図4において、機器20は、標準アプリケーション21と、SDKアプリケーション22と、サービス層23と、追加プログラム制御部24と、OS25と等を有する。これらのソフトウェアは、MEM−P631におけるRAM上にロードされ、CPU611に処理を実行させることによりその機能を実現させる。
【0021】
標準アプリケーション21は、機器20の出荷時より標準機能として組み込まれているアプリケーションである。同図では、標準アプリケーション21としてコピーアプリ21a、FAXアプリ21b、プリンタアプリ21c、及びスキャナアプリ21dが例示されている。
【0022】
コピーアプリ21aは、コピー機能を実現するアプリケーションである。FAXアプリ21bは、FAX機能を実現するアプリケーションである。プリンタアプリ21cは、印刷機能を実現するアプリケーションである。スキャナアプリ21dは、スキャナ機能を実現するアプリケーションである。
【0023】
SDKアプリ22は、機器20に専用のSDK(ソフトウェア開発キット)を使用して作成されたアプリケーションである。より詳しくは、サービス層23の一部のAPI(Application Program Interface)が公開されており、SDKアプリ22は、当該APIを用いてサードベンダによって作成されたアプリケーションである。同図では、SDKアプリケーション22として、SDKアプリ22a及び22bが例示されている。なお、各SDKアプリケーション22には、証明書(電子証明書)が添付されている(又は関連付けられている)。例えば、SDKアプリ22aには証明書221aが、SDKアプリ22bには証明書221bが添付されている(以下、これらの証明書を総称する場合、「証明書221」という。)。証明書221には、所有者情報、公開鍵、認証局の署名、及びプログラムID等が含まれている。このうち、所有者情報は、当該証明書221が添付されたSDKアプリケーション22の作成者(開発ベンダ)の識別情報(例えば、ID)である。また、プログラムIDは、各SDKアプリケーション22を一意に識別可能なIDである。
【0024】
サービス層23は、複数のアプリケーション21によって共通に必要とされるサービス(機能)をアプリケーション21に対して提供するプログラム群によって構成される。サービス層23には、例えば、ネットワーク通信の仲介を行うプログラム、撮像部604や印刷部605等のハードウェアの制御を行うプログラム、メモリやハードディスクドライブ等の記憶装置の管理を行うプログラム、オペレーションパネル602の制御を行うプログラム等が存在する。
【0025】
OS25は、いわゆるOS(Operating System)である。OS25は、所定のものに限定されない。
【0026】
追加プログラム制御部24は、上述した追加プログラム(図中では、追加プログラム26として示されている。)の実行制御等を行うソフトウェアである。例えば、追加プログラム制御部24は、追加プログラム26のダウンロード、適用対象への適用(実行)等を行う。なお、図示されるように、本実施の形態において各追加プログラム26には証明書261が添付されている。証明書261は、電子証明書であり、例えば、所有者情報、公開鍵、認証局の署名、及びプログラムID等が含まれている。このうち、所有者情報は、当該証明書261が添付された追加プログラム26の作成者(開発ベンダ)の識別情報(例えば、ID)である。また、プログラムIDは、各追加プログラム26を一意に識別可能なIDである。なお、斯かる証明書261の構成は、SDKアプリケーション22に対する証明書221と同じであるが、両者は必ずしも同じ構成である必要はない。
【0027】
以下、機器20の処理手順について説明する。図5は、第一の実施の形態における追加プログラムの適用処理を説明するためのフローチャートである。なお、同図では、既にユーザの認証は行われていることとする。すなわち、機器20の各プログラムは、現在操作中のユーザ(カレントユーザ)を識別することが可能である。
【0028】
オペレーションパネル602を介したユーザによる操作入力に応じ、追加プログラム制御部24は、管理サーバ10によって管理されている追加プログラム26の一覧情報を管理サーバ10より取得し、オペレーションパネル602に表示させる(S101)。
【0029】
ユーザによって、一覧情報の中から利用する追加プログラム26が選択されると(S102)、追加プログラム制御部24は、選択された追加プログラム26を管理サーバ10よりダウンロードし、当該追加プログラム26(以下「カレント追加プログラム26」という。)に対するカレントユーザの利用権限の有無を確認する(S103)。当該利用権限の確認の有無は、例えば、予め定義されている、追加プログラム26に対するアクセス制御情報等に基づいて行えばよい。当該アクセス制御情報には、追加プログラム26ごとに利用可能なユーザ名等が定義されていてもよいし、ユーザごとに利用可能な追加プログラム26のプログラム名(ファイル名)又はプログラムIDが定義されていてもよい。又は、単に、追加プログラム26を利用可能なユーザとそうでないユーザとを識別可能な情報であってもよい。また、当該アクセス制御情報は、機器20のHDD633に保存されていてもよいし、管理サーバ10に保存されていてもよい。
【0030】
カレントユーザに利用権限が有る場合(S103でYes)、追加プログラム制御部24は、カレント追加プログラム26が、当該機器20上で実行可能であるか否かを判定する(S104)。ここでの判定は、カレント追加プログラム26が当該機器20のプログラムの実行環境において実行可能であるか否かの判定に相当する。例えば、追加プログラム26の属性情報として、追加プログラム26が動作可能な機器20の機種、サービス層23のバージョン、OS25のバージョン等が含まれており、当該機器20における環境がそれらの情報(機種、バージョン等)に合致するか否かが判定される。なお、カレント追加プログラム26の属性情報は、カレント追加プログラム26と共に管理サーバ10よりダウンロードされる。
【0031】
カレント追加プログラム26が当該機器20上で実行可能である場合(S104でYes)、追加プログラム制御部24は、証明書261に基づいてカレント追加プログラム26の認証処理(正当性の検証)を行う(S105)。を電子証明書に基づくプログラムの認証は、一般的な方式に従えばよい。
【0032】
カレント追加プログラム26が認証されると(S105でYes)、追加プログラム制御部24は、カレント追加プログラム26の適用対象(適用先)のSDKアプリケーション22(ここでは、「SDKアプリ22a」であるとする。)の証明書221aより所有者情報を取得する(S106)。なお、カレント追加プログラム26の適用対象となるプログラムを識別するための情報は、追加プログラム制御部24が解釈可能な形式で追加プログラム26内に含まれている。したがって、斯かる情報に基づいて、追加プログラム制御部24は、適用対象がSDKアプリ22aであると判定することができる。
【0033】
続いて、追加プログラム制御部24は、カレント追加プログラム26の証明書261より所有者情報を取得する(S107)。続いて、追加プログラム制御部24は、図6に示されるように、適用対象の所有者情報とカレント追加プログラム26の所有者情報とを照合する(S108)。二つの所有者情報が一致する場合(S108でYes)、追加プログラム制御部24は、カレント追加プログラム261を適用対象のSDKアプリ22aに適用する(S109)。具体的には、SDKアプリ22aの実行ステップがカレント追加プログラム26内に指定された箇所(追加位置)に到達すると、追加プログラム制御部24は、追加プログラム26の処理を実行させる(割り込ませる)。
【0034】
一方、カレントユーザにカレント追加プログラム26の利用権限が無い場合(S103でNo)、カレント追加プログラム26が機器20上で実行可能でない場合(S104でNo)、カレント追加プログラム26の認証に失敗した場合(S105でNo)、又は適用対象の所有者情報とカレント追加プログラム26の所有者情報とが一致しない場合(S108でNo)、追加プログラム制御部24は、カレント追加プログラム26の適用を行わず、例えば、カレント追加プログラム26が利用できない旨を示すメッセージをオペレーションパネル602に表示させる(S110)。
【0035】
上述したように、第一の実施の形態によれば、適用対象の所有者情報と追加プログラム26の所有者情報とが一致しない場合は、追加プログラム26は実行されない。したがって、或る開発ベンダによって作成された追加プログラム26が、他の開発ベンダによって開発されたSDKアプリケーション22に対して安易に適用されることが防止される。
【0036】
続いて、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については第一の実施の形態と同様でよい。
【0037】
図7は、第二の実施の形態における追加プログラムの適用処理を説明するためのフローチャートである。図7中、図5と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
【0038】
同図では、ステップS106がステップS106aに、ステップS108がS108aに置き換わっている。ステップS106aにおいて、追加プログラム制御部24は、カレント追加プログラム26の適用対象のSDKアプリ22aの証明書221aよりプログラムIDを取得する。続いて、追加プログラム制御部24は、カレント追加プログラム26の証明書261より所有者情報を取得する(S107)。続いて、追加プログラム制御部24は、適用可否判定テーブルを参照してカレント追加プログラム26の適用の可否を判定する(S108a)。
【0039】
図8は、適用可否判定テーブルの構成例を示す図である。同図において、適用可否判定テーブル31は、SDKアプリケーション22のプログラムIDごとに(すなわち、SDKアプリケーション22ごとに)、いずれの所有者に係る追加プログラム26が適用可能であるかが定義(登録)されている。例えば、同図では、プログラムIDが「SDK−0001」であるSDKアプリケーション22に対しては、所有者情報が「AAA」、「BBB」、又は「CCC」である追加プログラム26の適用が可能であることが定義されている。なお、適用可否判定テーブル31は、機器20のHDD633に保存されていてもよいし、管理サーバ10に保存されていてもよい。また、適用可否判定テーブル31は、管理者等、所定の者に限って編集可能とすればよい。
【0040】
したがって、追加プログラム制御部24は、ステップS106aにおいて取得されたプログラムID(適用対象のプログラムID)を適用可否判定テーブル31に当てはめることにより適用可能な所有者情報を判定し、当該所有者情報に、ステップS107において取得されたカレント追加プログラム26の所有者情報が含まれているか否かによって、適用の可否を判定する。適用可能な所有者情報にカレント追加プログラム26の所有者情報が含まれている場合(S108aでYes)、追加プログラム制御部24は、カレント追加プログラム261を適用対象のSDKアプリ22aに適用する(S109)。
【0041】
適用可能な所有者情報にカレント追加プログラム26の所有者情報が含まれていない場合(S108aでNo)、追加プログラム制御部24は、カレント追加プログラム26の適用は行わない(S110)。
【0042】
上述したように、第二の実施の形態によれば、適用可否判定テーブル31に基づいて追加プログラム26の適用の可否が判定される。したがって、SDKアプリケーション22と追加プログラム26との所有者情報(開発ベンダ)が異なる場合であっても、追加プログラム26を適用させることができる。よって、第一の実施の形態に比べて、追加プログラム26の適用について柔軟性を向上させることができる。
【0043】
なお、適用可否判定テーブル31には、SDKアプリケーション22と追加プログラム26の所有者情報との対応関係ではなく、SDKアプリケーション22と追加プログラム26との対応関係を登録するようにしてもよい。具体的には、SDKアプリケーション22のプログラムIDごとに、適用可能な追加プログラム26のプログラムIDを登録するようにしてもよい。この場合、ステップS107では、カレント追加プログラム26のプログラムIDを証明書261より取得し、当該プログラムIDを用いてステップS108aにおける判定を行えばよい。但し、この場合、追加プログラム26が作成されるたびに適用可否判定テーブル31を更新する必要がある。したがって、適用可否判定テーブル31の安定性(保守作業の軽減)の観点からは、図8に示される形態の方が好ましい。
【0044】
斯かる観点を更に追求すれば、適用可否判定テーブル31には、SDKアプリケーション22の所有者情報と追加プログラム26の所有者情報との対応関係を登録するようにしてもよい。この場合、新たな所有者(開発ベンダ)が追加されなければ、適用可否判定テーブル31を変更する必要性は低いため、適用可否判定テーブル31の安定性をより高めることができる。
【0045】
続いて、第三の実施の形態について説明する。第三の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については第一の実施の形態と同様でよい。
【0046】
図9は、第三の実施の形態における追加プログラムの適用処理を説明するためのフローチャートである。図9中、図5と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。
【0047】
同図では、ステップS106〜S108が、それぞれステップS106b、107b、S108bに置き換わっている。ステップS106bにおいて、追加プログラム制御部24は、現在適用中(既に適用中)の追加プログラム26のプログラムIDの一覧を生成する。なお、追加プログラム制御部24は、追加プログラム26の実行を制御するプログラムであるため、現在適用中である追加プログラム26のプログラムIDを把握している。
【0048】
続いて、追加プログラム制御部24は、これから適用されるカレント追加プログラム26の証明書261よりプログラムIDを取得する(S107b)。続いて、追加プログラム制御部24は、排他関係管理テーブルを参照してカレント追加プログラム26の適用の可否を判定する(S108b)。
【0049】
図10は、排他関係管理テーブルの構成例を示す図である。同図において、排他関係管理テーブル32は、追加プログラム26のプログラムIDごとに(すなわち、追加プログラム26ごとに)、実行時期について排他的な関係にある(すなわち、同時に実行させることのできない又は同時に実行させることが好ましくない)追加プログラムのプログラムIDが定義(登録)されている。例えば、同図では、プログラムIDが「P0001」である追加プログラム26は、プログラムIDが「P0002」、「C0001」、「C0002」、及び「F0001」の追加プログラム26とは排他的な関係にあることが定義されている。なお、排他関係管理テーブル32は、機器20のHDD633に保存されていてもよいし、管理サーバ10に保存されていてもよい。また、排他関係管理テーブル32は、管理者等、所定の者に限って編集可能とすればよい。
【0050】
したがって、追加プログラム制御部24は、ステップS107bにおいて取得されたカレント追加プログラム26のプログラムIDに対して排他的な関係にある追加プログラム26のプログラムIDを排他関係管理テーブル32より取得し、取得されたプログラムIDの少なくともいずれか一つが、ステップS106bにおいて生成された現在適用中(実行中)の追加プログラム26のプログラムIDの一覧に含まれているか否かによって適用の可否を判定する。排他的な関係にあるプログラムIDのいずれかが現在実行中のプログラムIDに含まれていない場合(S108bでYes)、追加プログラム制御部24は、カレント追加プログラム261を適用対象のSDKアプリ22aに適用する(S109)。
【0051】
適排他的な関係にあるプログラムIDのいずれかが現在実行中のプログラムIDに含まれている場合(S108bでNo)、追加プログラム制御部24は、カレント追加プログラム26の適用は行わない(S110)。
【0052】
なお、上記では、排他関係管理テーブル32には排他的な関係を示す情報が管理されている例を示した。しかし、同時に実行可能な関係を示す情報を排他関係管理テーブル32において管理するようにしてもよい。この場合であっても排他的な関係を判定することが可能だからである。
【0053】
上述したように、第三の実施の形態によれば、排他的な関係にある追加プログラム26の並列的な実行(同時期の実行)を適切に回避することができる。したがって、排他的な関係にある追加プログラム26の並列的な実行による機器20の不正動作の発生を防止することができる。なお、排他的な関係とは、例えば、適用対象が同じである、機器20が備える同一のパラメータに対してアクセスする等の関係が挙げられる。但し、この条件が満たされることにより直ちに排他的な関係であると定義されることを意図するものではない。例えば、適用対象が同じであっても、お互いに干渉し合うことなく適用対象に処理を割り込ませることができるのであれば排他的な関係とはならない可能性もある。
【0054】
なお、第三の実施の形態を、第一又は第二の実施の形態と組み合わせて実施してもよい。そうすることにより、適用対象のプログラムと追加プログラム26との関係と、追加プログラム26間の関係との組み合わせに基づいて、追加プログラム26の適用及び実行を制限することができる。
【0055】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【0056】
【図1】本発明の実施の形態における機器管理システムの構成例を示す図である。
【図2】追加プログラムの概要を説明するための図である。
【図3】本発明の実施の形態における機器のハードウェア構成の一例を示す図である。
【図4】本発明の実施の形態における機器のソフトウェア構成例を示す図である。
【図5】第一の実施の形態における追加プログラムの適用処理を説明するためのフローチャートである。
【図6】所有者情報の照合を概念的に示す図である。
【図7】第二の実施の形態における追加プログラムの適用処理を説明するためのフローチャートである。
【図8】適用可否判定テーブルの構成例を示す図である。
【図9】第三の実施の形態における追加プログラムの適用処理を説明するためのフローチャートである。
【図10】排他関係管理テーブルの構成例を示す図である。
【符号の説明】
【0057】
1、2 機器管理システム
10 管理サーバ
11 追加処理制御部
12 追加プログラム管理部
20 機器
21 標準アプリケーション
21a コピーアプリ
21b FAXアプリ
21c プリンタアプリ
21d スキャナアプリ
22 SDKアプリケーション
22a、22b SDKアプリ
23 サービス層
24 追加プログラム制御部
25 OS
26 追加プログラム
221a、221b、261 証明書
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 セントロニクスデバイス

【特許請求の範囲】
【請求項1】
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な第二のプログラムに関連付けられている第二のデータと、前記第一のプログラムに関連付けられている第一のデータとが予め定義された対応関係に合致するか否かに基づいて前記第二のプログラムの適用の可否を判定する判定手段と、
前記判定手段の判定結果に応じて、前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手段とを有することを特徴とする電子機器。
【請求項2】
前記第一のデータ及び前記第二のデータはそれぞれが付加されているプログラムの作成者を示すデータであり、
前記判定手段は、前記第一のデータと前記第二のデータとが一致する場合に前記第二のプログラムの適用は可能であると判定することを特徴とする請求項1記載の電子機器。
【請求項3】
前記第一のデータは複数の前記第一のプログラムのそれぞれを識別するプログラム識別子であり、前記第二のデータは前記第二のプログラムの作成者を示すデータであり、
前記プログラム識別子と前記作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段を有し、
前記判定手段は、前記第一のデータと前記第二のデータと前記対応情報とに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項1記載の電子機器。
【請求項4】
前記第一のデータは複数の前記第一のプログラムのそれぞれを識別するプログラム識別子であり、前記第二のデータは複数の前記第二のプログラムのそれぞれを識別するプログラム識別子であり、
前記第一プログラムのプログラム識別子と前記第二のプログラムの識別子との適用可能な対応関係を判定可能な対応情報を管理する管理手段を有し、
前記判定手段は、前記第一のデータと前記第二のデータと前記対応情報とに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項1記載の電子機器。
【請求項5】
前記第一のデータ及び前記第二のデータはそれぞれが付加されているプログラムの作成者を示すデータであり、
前記第一プログラムの作成者と前記第二のプログラムの作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段を有し、
前記判定手段は、前記第一のデータと前記第二のデータと前記対応情報とに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項1記載の電子機器。
【請求項6】
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な複数の第二のプログラムについて実行時期の排他関係を判定可能な対応情報を管理する管理手段と、
既に適用中の前記第二のプログラムと、これから適用される前記第二のプログラムとが排他関係にあるか否かを前記対応情報に基づいて判定する判定手段と、
前記判定手段の判定結果に応じて、こらから適用される前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手段とを有することを特徴とする電子機器。
【請求項7】
電子機器が実行するプログラム実行制御方法であって、
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な第二のプログラムに関連付けられている第二のデータと、前記第一のプログラムに関連付けられている第一のデータとが予め定義された対応関係に合致するか否かに基づいて前記第二のプログラムの適用の可否を判定する判定手順と、
前記判定手順の判定結果に応じて、前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手順とを有することを特徴とするプログラム実行制御方法。
【請求項8】
前記第一のデータ及び前記第二のデータはそれぞれが付加されているプログラムの作成者を示すデータであり、
前記判定手順は、前記第一のデータと前記第二のデータとが一致する場合に前記第二のプログラムの適用は可能であると判定することを特徴とする請求項7記載のプログラム実行制御方法。
【請求項9】
前記第一のデータは複数の前記第一のプログラムのそれぞれを識別するプログラム識別子であり、前記第二のデータは前記第二のプログラムの作成者を示すデータであり、
前記判定手順は、前記プログラム識別子と前記作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項7記載のプログラム実行制御方法。
【請求項10】
前記第一のデータは複数の前記第一のプログラムのそれぞれを識別するプログラム識別子であり、前記第二のデータは複数の前記第二のプログラムのそれぞれを識別するプログラム識別子であり、
前記判定手順は、前記第一プログラムのプログラム識別子と前記第二のプログラムの識別子との適用可能な対応関係を判定可能な対応情報を管理する管理手手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項7記載のプログラム実行制御方法。
【請求項11】
前記第一のデータ及び前記第二のデータはそれぞれが付加されているプログラムの作成者を示すデータであり、
前記判定手順は、前記第一プログラムの作成者と前記第二のプログラムの作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項7記載のプログラム実行制御方法。
【請求項12】
電子機器が実行するプログラム実行制御方法であって、
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な複数の第二のプログラムについて実行時期の排他関係を判定可能な対応情報を管理する管理手段に基づいて、既に適用中の前記第二のプログラムと、これから適用される前記第二のプログラムとが排他関係にあるか否かを前記対応情報に基づいて判定する判定手順と、
前記判定手順の判定結果に応じて、こらから適用される前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手順とを有することを特徴とするプログラム実行制御方法。
【請求項13】
電子機器に、
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な第二のプログラムに関連付けられている第二のデータと、前記第一のプログラムに関連付けられている第一のデータとが予め定義された対応関係に合致するか否かに基づいて前記第二のプログラムの適用の可否を判定する判定手順と、
前記判定手順の判定結果に応じて、前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手順とを実行させるためのプログラム。
【請求項14】
前記第一のデータ及び前記第二のデータはそれぞれが付加されているプログラムの作成者を示すデータであり、
前記判定手順は、前記第一のデータと前記第二のデータとが一致する場合に前記第二のプログラムの適用は可能であると判定することを特徴とする請求項13記載のプログラム。
【請求項15】
前記第一のデータは複数の前記第一のプログラムのそれぞれを識別するプログラム識別子であり、前記第二のデータは前記第二のプログラムの作成者を示すデータであり、
前記判定手順は、前記プログラム識別子と前記作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項13記載のプログラム。
【請求項16】
前記第一のデータは複数の前記第一のプログラムのそれぞれを識別するプログラム識別子であり、前記第二のデータは複数の前記第二のプログラムのそれぞれを識別するプログラム識別子であり、
前記判定手順は、前記第一プログラムのプログラム識別子と前記第二のプログラムの識別子との適用可能な対応関係を判定可能な対応情報を管理する管理手手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項13記載のプログラム。
【請求項17】
前記第一のデータ及び前記第二のデータはそれぞれが付加されているプログラムの作成者を示すデータであり、
前記判定手順は、前記第一プログラムの作成者と前記第二のプログラムの作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項13記載のプログラム。
【請求項18】
電子機器に、
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な複数の第二のプログラムについて実行時期の排他関係を判定可能な対応情報を管理する管理手段に基づいて、既に適用中の前記第二のプログラムと、これから適用される前記第二のプログラムとが排他関係にあるか否かを前記対応情報に基づいて判定する判定手順と、
前記判定手順の判定結果に応じて、こらから適用される前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手順とを実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−271726(P2009−271726A)
【公開日】平成21年11月19日(2009.11.19)
【国際特許分類】
【出願番号】特願2008−121566(P2008−121566)
【出願日】平成20年5月7日(2008.5.7)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】