JP2009271726A - Electronic device, method of controlling program execution, and program - Google Patents
Electronic device, method of controlling program execution, and program Download PDFInfo
- Publication number
- JP2009271726A JP2009271726A JP2008121566A JP2008121566A JP2009271726A JP 2009271726 A JP2009271726 A JP 2009271726A JP 2008121566 A JP2008121566 A JP 2008121566A JP 2008121566 A JP2008121566 A JP 2008121566A JP 2009271726 A JP2009271726 A JP 2009271726A
- Authority
- JP
- Japan
- Prior art keywords
- program
- data
- creator
- identifier
- correspondence information
- 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.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
Description
本発明は、電子機器、プログラム実行制御方法、及びプログラムに関し、特に他のプログラムに動的に処理を割り込ませることが可能なプログラムの実行を制御する電子機器、プログラム実行制御方法、及びプログラムに関する。 The present invention relates to an electronic device, a program execution control method, and a program, and more particularly, to an electronic device, a program execution control method, and a program that control execution of a program that can dynamically cause another program to interrupt processing.
従来、特に組み込み機器等において動作するプログラムの障害解析(デバッグ等)の代表的な作業として、プログラムが出力するログの解析が行われている。すなわち、プログラムのソースコードには、プログラムが用いている変数の値や、プログラムが動作しているハードウェアの状態を示す情報等をログファイルに出力するための命令(例えば、C言語におけるprintf関数)が予め各所に埋め込まれている。障害が発生した際、斯かる命令(以下、「ログ出力命令」という。)に従って出力されたログファイルを解析することにより、障害の原因が推測又は特定される。 Conventionally, analysis of a log output by a program has been performed as a typical operation for failure analysis (debugging and the like) of a program operating in an embedded device or the like. That is, the source code of the program includes an instruction (for example, a printf function in C language) for outputting a variable value used by the program, information indicating the status of the hardware on which the program is operating, etc. to a log file. ) Are embedded in advance. When a failure occurs, the cause of the failure is estimated or specified by analyzing a log file output according to such a command (hereinafter referred to as a “log output command”).
しかし、予め埋め込まれたログ出力命令に基づいて出力されるログファイル(最初に出力されるログファイル)では、詳細な解析を行うには情報として不十分な場合が多々ある。斯かる場合、最初に出力されるログファイルに基づいて、或る程度障害箇所が絞り込まれる。続いて、その障害箇所周辺について更に詳細なログを出力するように、プログラムのソースコードが修正され、コンパイル及びリンクが行われた上で、プログラムの置き換えが行われる。改めて出力されるログファイルによっても原因が特定できない場合は、更に、ソースコードにログ出力命令が埋め込まれ、上記作業が繰り返される。このように、ログに基づいて障害解析を行う場合、時として大変煩雑な作業が要求されていた。 However, in many cases, the log file output based on the log output command embedded in advance (the log file output first) is insufficient as information for performing detailed analysis. In such a case, the failure location is narrowed down to some extent based on the log file output first. Subsequently, the source code of the program is corrected, compiled and linked so that a more detailed log is output around the faulty part, and then the program is replaced. If the cause cannot be identified by the newly output log file, a log output command is further embedded in the source code, and the above operation is repeated. As described above, when performing failure analysis based on logs, sometimes very complicated work is required.
そこで、従来、動作中のプログラムの任意の箇所(診断位置)に当該プログラムの診断用プログラムの処理を動的に(実行時に)割り込ませる技術が存在する。診断用プログラムでは、診断対象となるプログラムの変数の値等を参照することができる。診断用プログラムの処理の終了後は、診断対象となるプログラムについて診断用プログラムによって割り込まれた位置に処理が復帰する。斯かる技術によれば、診断対象となるプログラムのソースコードを修正することなく、診断用プログラムによって診断対象となるプログラムのログの出力が可能となる。
しかしながら、斯かる診断用プログラムはあらゆるプログラムに適用可能であるため、適用対象のプログラム(アプリケーション)の開発者又は保守担当者でない者によって作成された診断用プログラムが安易に適用される可能性がある。その結果、適用されたプログラム又は機器全体の動作が不安定となる可能性があるばかりか、セキュリティが適切に確保されない可能性が生じる。また、排他的な関係にある複数の診断用プログラムが同時に実行された場合、それぞれの診断用プログラムで意図した動作が得られない可能性がある。 However, since such a diagnostic program can be applied to any program, a diagnostic program created by a person who is not a developer or a person in charge of maintenance of the program (application) to be applied may be easily applied. . As a result, the operation of the applied program or the entire device may become unstable, and security may not be appropriately ensured. In addition, when a plurality of diagnostic programs having an exclusive relationship are executed simultaneously, there is a possibility that the intended operation of each diagnostic program may not be obtained.
本発明は、上記の点に鑑みてなされたものであって、他のプログラムに動的に処理を割り込ませることが可能なプログラムの実行を適切に制限することのできる電子機器、プログラム実行制御方法、及びプログラムの提供を目的とする。 The present invention has been made in view of the above points, and an electronic apparatus and a program execution control method capable of appropriately restricting the execution of a program capable of dynamically interrupting another program. And to provide a program.
そこで上記課題を解決するため、本発明は、適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な第二のプログラムに関連付けられている第二のデータと、前記第一のプログラムに関連付けられている第一のデータとが予め定義された対応関係に合致するか否かに基づいて前記第二のプログラムの適用の可否を判定する判定手段と、前記判定手段の判定結果に応じて、前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手段とを有することを特徴とする。 Therefore, in order to solve the above-described problem, the present invention provides second data associated with a second program capable of dynamically interrupting processing to the first program to be applied; A determination unit that determines whether or not the second program can be applied based on whether or not the first data associated with the one program matches a predefined correspondence relationship; and a determination by the determination unit According to the result, it has execution control means for applying the second program to the first program and executing it.
このような電子機器では、他のプログラムに動的に処理を割り込ませることが可能なプログラムの実行を適切に制限することができる。 In such an electronic device, it is possible to appropriately limit the execution of a program capable of dynamically interrupting another program.
本発明によれば、他のプログラムに動的に処理を割り込ませることが可能なプログラムの実行を適切に制限することのできる電子機器、プログラム実行制御方法、及びプログラムを提供することができる。 According to the present invention, it is possible to provide an electronic device, a program execution control method, and a program that can appropriately limit the execution of a program that can dynamically interrupt the processing of another program.
以下、図面に基づいて本発明の実施の形態を説明する。図1は、本発明の実施の形態における機器管理システムの構成例を示す図である。図1の機器管理システム1において、管理サーバ10と、機器20a、機器20b及び機器20c(以下、総称する場合「機器20」という。)とは、オフィスにおけるLAN(Local Area Network)等のネットワーク50(有線又は無線の別は問わない。)を介して接続されている。
Hereinafter, embodiments of the present invention will be described with reference to the drawings. FIG. 1 is a diagram illustrating a configuration example of a device management system according to an embodiment of the present invention. In the device management system 1 of FIG. 1, the
機器20は、コピー、ファクシミリ、プリンタ、及びスキャナ等の複数の機能を一台の筐体において実現する画像形成装置(複合機)である。機器20は、CPUやメモリを備え、メモリに記録されたプログラムに従ったCPUによる制御に基づいて各種の機能を実現する。なお、本実施の形態では、機器20が電子機器の一例に相当する。
The
管理サーバ10は、機器20において利用されるプログラムに対して適用される追加プログラムの管理及び当該追加プログラムの機器20への転送等を行うコンピュータである。本実施の形態において、追加プログラムとは、適用対象とされるプログラムの任意の箇所において、当該追加プログラムに定義された処理を動的に割り込ませることのできるプログラムをいう。
The
図2は、追加プログラムの概要を説明するための図である。図2において、501は、追加プログラム505が適用されるプログラムにおける仮想メモリ上における命令の配列を示す。プログラム501は、追加プログラム501が適用される前(通常実行時)は、命令1、2、3の順で処理を実行する。501aは、プログラム501に追加プログラム501が適用された状態を示す。ここでは、命令1と命令2との間に追加プログラム505の処理を割り込ませる例が示されている。この場合、命令2がテーブル502への分岐命令に置き換えられる。テーブル502には、初期化処理、前処理(変数のスタックへの退避等)、追加プログラム505の呼び出し処理、後処理(スタックに退避されていた変数等の取り出し等)の後に命令2が実行され、プログラム501の命令3に戻るような定義がされている。
FIG. 2 is a diagram for explaining the outline of the additional program. In FIG. 2,
すなわち、追加プログラムが適用される場合、適用対象とされたプログラムの実行ステップが予め指定された箇所(追加位置)に到達すると、追加プログラムの処理が実行される。当該追加プログラムの処理が終了すると、適用対象とされたプログラムに処理制御が復帰する。その後、適用対象とされたプログラムは、追加位置より処理を再開する。なお、追加プログラムには、適用対象のプログラムに割り込ませる処理の他、適用対象とするプログラム及び追加位置を識別するための情報が含まれている。 That is, when the additional program is applied, when the execution step of the program to be applied reaches a predetermined location (additional position), the processing of the additional program is executed. When the process of the additional program is completed, the process control returns to the application program. Thereafter, the program to be applied resumes processing from the additional position. Note that the additional program includes information for identifying a program to be applied and an additional position, in addition to processing to interrupt the program to be applied.
追加プログラムの中では、適用対象とされるプログラムの変数等を参照可能である。したがって、追加プログラムによって、適用対象とされるプログラムの任意の箇所における変数の値等を示すログ情報を出力させるための処理や、新たな機能を実現するための処理を適用対象とされるプログラムに割り込ませることができる。 In the additional program, it is possible to refer to variables of the program to be applied. Therefore, the program for which processing for outputting log information indicating the value of a variable or the like at an arbitrary position of the program to be applied by the additional program or processing for realizing a new function is applied to the program to be applied. Can be interrupted.
斯かる追加プログラムによれば、適用対象とされるプログラムについて、ソースコードの修正、コンパイル及びリンク、更に、再インストール等を行うことなく(すなわち、動的に)、ログ情報の出力や機能強化等を図ることができる。 According to such an additional program, the log information is output and the function is enhanced without modifying (ie, dynamically), re-installing, etc. the source code for the program to be applied. Can be achieved.
図3は、本発明の実施の形態における機器のハードウェア構成の一例を示す図である。同図において、機器20は、コントローラ601、オペレーションパネル602、ファクシミリコントロールユニット(FCU)603、撮像部604、及び印刷部605等より構成される。
FIG. 3 is a diagram illustrating an example of the hardware configuration of the device according to the embodiment of the present invention. In the figure, the
コントローラ601は、CPU611、ASIC612、NB621、SB622、MEM−P631、MEM−C632、HDD(ハードディスクドライブ)633、メモリカードスロット634、NIC(ネットワークインタフェースコントローラ)641、USBデバイス642、IEEE1394デバイス643、セントロニクスデバイス644により構成される。
The
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から出力を得るためのハードウェア(表示部)である。
The
図4は、本発明の実施の形態における機器のソフトウェア構成例を示す図である。図4において、機器20は、標準アプリケーション21と、SDKアプリケーション22と、サービス層23と、追加プログラム制御部24と、OS25と等を有する。これらのソフトウェアは、MEM−P631におけるRAM上にロードされ、CPU611に処理を実行させることによりその機能を実現させる。
FIG. 4 is a diagram illustrating a software configuration example of the device according to the embodiment of the present invention. 4, the
標準アプリケーション21は、機器20の出荷時より標準機能として組み込まれているアプリケーションである。同図では、標準アプリケーション21としてコピーアプリ21a、FAXアプリ21b、プリンタアプリ21c、及びスキャナアプリ21dが例示されている。
The
コピーアプリ21aは、コピー機能を実現するアプリケーションである。FAXアプリ21bは、FAX機能を実現するアプリケーションである。プリンタアプリ21cは、印刷機能を実現するアプリケーションである。スキャナアプリ21dは、スキャナ機能を実現するアプリケーションである。
The
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である。
The
サービス層23は、複数のアプリケーション21によって共通に必要とされるサービス(機能)をアプリケーション21に対して提供するプログラム群によって構成される。サービス層23には、例えば、ネットワーク通信の仲介を行うプログラム、撮像部604や印刷部605等のハードウェアの制御を行うプログラム、メモリやハードディスクドライブ等の記憶装置の管理を行うプログラム、オペレーションパネル602の制御を行うプログラム等が存在する。
The
OS25は、いわゆるOS(Operating System)である。OS25は、所定のものに限定されない。
The
追加プログラム制御部24は、上述した追加プログラム(図中では、追加プログラム26として示されている。)の実行制御等を行うソフトウェアである。例えば、追加プログラム制御部24は、追加プログラム26のダウンロード、適用対象への適用(実行)等を行う。なお、図示されるように、本実施の形態において各追加プログラム26には証明書261が添付されている。証明書261は、電子証明書であり、例えば、所有者情報、公開鍵、認証局の署名、及びプログラムID等が含まれている。このうち、所有者情報は、当該証明書261が添付された追加プログラム26の作成者(開発ベンダ)の識別情報(例えば、ID)である。また、プログラムIDは、各追加プログラム26を一意に識別可能なIDである。なお、斯かる証明書261の構成は、SDKアプリケーション22に対する証明書221と同じであるが、両者は必ずしも同じ構成である必要はない。
The additional
以下、機器20の処理手順について説明する。図5は、第一の実施の形態における追加プログラムの適用処理を説明するためのフローチャートである。なお、同図では、既にユーザの認証は行われていることとする。すなわち、機器20の各プログラムは、現在操作中のユーザ(カレントユーザ)を識別することが可能である。
Hereinafter, the processing procedure of the
オペレーションパネル602を介したユーザによる操作入力に応じ、追加プログラム制御部24は、管理サーバ10によって管理されている追加プログラム26の一覧情報を管理サーバ10より取得し、オペレーションパネル602に表示させる(S101)。
In response to an operation input by the user via the
ユーザによって、一覧情報の中から利用する追加プログラム26が選択されると(S102)、追加プログラム制御部24は、選択された追加プログラム26を管理サーバ10よりダウンロードし、当該追加プログラム26(以下「カレント追加プログラム26」という。)に対するカレントユーザの利用権限の有無を確認する(S103)。当該利用権限の確認の有無は、例えば、予め定義されている、追加プログラム26に対するアクセス制御情報等に基づいて行えばよい。当該アクセス制御情報には、追加プログラム26ごとに利用可能なユーザ名等が定義されていてもよいし、ユーザごとに利用可能な追加プログラム26のプログラム名(ファイル名)又はプログラムIDが定義されていてもよい。又は、単に、追加プログラム26を利用可能なユーザとそうでないユーザとを識別可能な情報であってもよい。また、当該アクセス制御情報は、機器20のHDD633に保存されていてもよいし、管理サーバ10に保存されていてもよい。
When the user selects an
カレントユーザに利用権限が有る場合(S103でYes)、追加プログラム制御部24は、カレント追加プログラム26が、当該機器20上で実行可能であるか否かを判定する(S104)。ここでの判定は、カレント追加プログラム26が当該機器20のプログラムの実行環境において実行可能であるか否かの判定に相当する。例えば、追加プログラム26の属性情報として、追加プログラム26が動作可能な機器20の機種、サービス層23のバージョン、OS25のバージョン等が含まれており、当該機器20における環境がそれらの情報(機種、バージョン等)に合致するか否かが判定される。なお、カレント追加プログラム26の属性情報は、カレント追加プログラム26と共に管理サーバ10よりダウンロードされる。
If the current user has usage authority (Yes in S103), the additional
カレント追加プログラム26が当該機器20上で実行可能である場合(S104でYes)、追加プログラム制御部24は、証明書261に基づいてカレント追加プログラム26の認証処理(正当性の検証)を行う(S105)。を電子証明書に基づくプログラムの認証は、一般的な方式に従えばよい。
When the current
カレント追加プログラム26が認証されると(S105でYes)、追加プログラム制御部24は、カレント追加プログラム26の適用対象(適用先)のSDKアプリケーション22(ここでは、「SDKアプリ22a」であるとする。)の証明書221aより所有者情報を取得する(S106)。なお、カレント追加プログラム26の適用対象となるプログラムを識別するための情報は、追加プログラム制御部24が解釈可能な形式で追加プログラム26内に含まれている。したがって、斯かる情報に基づいて、追加プログラム制御部24は、適用対象がSDKアプリ22aであると判定することができる。
When the
続いて、追加プログラム制御部24は、カレント追加プログラム26の証明書261より所有者情報を取得する(S107)。続いて、追加プログラム制御部24は、図6に示されるように、適用対象の所有者情報とカレント追加プログラム26の所有者情報とを照合する(S108)。二つの所有者情報が一致する場合(S108でYes)、追加プログラム制御部24は、カレント追加プログラム261を適用対象のSDKアプリ22aに適用する(S109)。具体的には、SDKアプリ22aの実行ステップがカレント追加プログラム26内に指定された箇所(追加位置)に到達すると、追加プログラム制御部24は、追加プログラム26の処理を実行させる(割り込ませる)。
Subsequently, the additional
一方、カレントユーザにカレント追加プログラム26の利用権限が無い場合(S103でNo)、カレント追加プログラム26が機器20上で実行可能でない場合(S104でNo)、カレント追加プログラム26の認証に失敗した場合(S105でNo)、又は適用対象の所有者情報とカレント追加プログラム26の所有者情報とが一致しない場合(S108でNo)、追加プログラム制御部24は、カレント追加プログラム26の適用を行わず、例えば、カレント追加プログラム26が利用できない旨を示すメッセージをオペレーションパネル602に表示させる(S110)。
On the other hand, if the current user is not authorized to use the current additional program 26 (No in S103), the current
上述したように、第一の実施の形態によれば、適用対象の所有者情報と追加プログラム26の所有者情報とが一致しない場合は、追加プログラム26は実行されない。したがって、或る開発ベンダによって作成された追加プログラム26が、他の開発ベンダによって開発されたSDKアプリケーション22に対して安易に適用されることが防止される。
As described above, according to the first embodiment, when the owner information to be applied and the owner information of the
続いて、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については第一の実施の形態と同様でよい。 Next, a second embodiment will be described. In the second embodiment, differences from the first embodiment will be described. Accordingly, the points not particularly mentioned may be the same as those in the first embodiment.
図7は、第二の実施の形態における追加プログラムの適用処理を説明するためのフローチャートである。図7中、図5と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。 FIG. 7 is a flowchart for explaining an additional program application process according to the second embodiment. In FIG. 7, the same steps as those in FIG. 5 are denoted by the same step numbers, and description thereof will be omitted as appropriate.
同図では、ステップS106がステップS106aに、ステップS108がS108aに置き換わっている。ステップS106aにおいて、追加プログラム制御部24は、カレント追加プログラム26の適用対象のSDKアプリ22aの証明書221aよりプログラムIDを取得する。続いて、追加プログラム制御部24は、カレント追加プログラム26の証明書261より所有者情報を取得する(S107)。続いて、追加プログラム制御部24は、適用可否判定テーブルを参照してカレント追加プログラム26の適用の可否を判定する(S108a)。
In the figure, step S106 is replaced with step S106a, and step S108 is replaced with S108a. In step S106a, the additional
図8は、適用可否判定テーブルの構成例を示す図である。同図において、適用可否判定テーブル31は、SDKアプリケーション22のプログラムIDごとに(すなわち、SDKアプリケーション22ごとに)、いずれの所有者に係る追加プログラム26が適用可能であるかが定義(登録)されている。例えば、同図では、プログラムIDが「SDK−0001」であるSDKアプリケーション22に対しては、所有者情報が「AAA」、「BBB」、又は「CCC」である追加プログラム26の適用が可能であることが定義されている。なお、適用可否判定テーブル31は、機器20のHDD633に保存されていてもよいし、管理サーバ10に保存されていてもよい。また、適用可否判定テーブル31は、管理者等、所定の者に限って編集可能とすればよい。
FIG. 8 is a diagram illustrating a configuration example of an applicability determination table. In the figure, an applicability determination table 31 is defined (registered) for each program ID of the SDK application 22 (that is, for each SDK application 22) which
したがって、追加プログラム制御部24は、ステップS106aにおいて取得されたプログラムID(適用対象のプログラムID)を適用可否判定テーブル31に当てはめることにより適用可能な所有者情報を判定し、当該所有者情報に、ステップS107において取得されたカレント追加プログラム26の所有者情報が含まれているか否かによって、適用の可否を判定する。適用可能な所有者情報にカレント追加プログラム26の所有者情報が含まれている場合(S108aでYes)、追加プログラム制御部24は、カレント追加プログラム261を適用対象のSDKアプリ22aに適用する(S109)。
Therefore, the additional
適用可能な所有者情報にカレント追加プログラム26の所有者情報が含まれていない場合(S108aでNo)、追加プログラム制御部24は、カレント追加プログラム26の適用は行わない(S110)。
When the owner information of the current
上述したように、第二の実施の形態によれば、適用可否判定テーブル31に基づいて追加プログラム26の適用の可否が判定される。したがって、SDKアプリケーション22と追加プログラム26との所有者情報(開発ベンダ)が異なる場合であっても、追加プログラム26を適用させることができる。よって、第一の実施の形態に比べて、追加プログラム26の適用について柔軟性を向上させることができる。
As described above, according to the second embodiment, whether or not the
なお、適用可否判定テーブル31には、SDKアプリケーション22と追加プログラム26の所有者情報との対応関係ではなく、SDKアプリケーション22と追加プログラム26との対応関係を登録するようにしてもよい。具体的には、SDKアプリケーション22のプログラムIDごとに、適用可能な追加プログラム26のプログラムIDを登録するようにしてもよい。この場合、ステップS107では、カレント追加プログラム26のプログラムIDを証明書261より取得し、当該プログラムIDを用いてステップS108aにおける判定を行えばよい。但し、この場合、追加プログラム26が作成されるたびに適用可否判定テーブル31を更新する必要がある。したがって、適用可否判定テーブル31の安定性(保守作業の軽減)の観点からは、図8に示される形態の方が好ましい。
In addition, in the applicability determination table 31, not the correspondence relationship between the
斯かる観点を更に追求すれば、適用可否判定テーブル31には、SDKアプリケーション22の所有者情報と追加プログラム26の所有者情報との対応関係を登録するようにしてもよい。この場合、新たな所有者(開発ベンダ)が追加されなければ、適用可否判定テーブル31を変更する必要性は低いため、適用可否判定テーブル31の安定性をより高めることができる。
If such a viewpoint is further pursued, the correspondence relationship between the owner information of the
続いて、第三の実施の形態について説明する。第三の実施の形態では第一の実施の形態と異なる点について説明する。したがって、特に言及しない点については第一の実施の形態と同様でよい。 Subsequently, a third embodiment will be described. In the third embodiment, differences from the first embodiment will be described. Accordingly, the points not particularly mentioned may be the same as those in the first embodiment.
図9は、第三の実施の形態における追加プログラムの適用処理を説明するためのフローチャートである。図9中、図5と同一ステップには同一ステップ番号を付し、その説明は適宜省略する。 FIG. 9 is a flowchart for explaining an additional program application process according to the third embodiment. In FIG. 9, the same steps as those in FIG. 5 are denoted by the same step numbers, and the description thereof is omitted as appropriate.
同図では、ステップS106〜S108が、それぞれステップS106b、107b、S108bに置き換わっている。ステップS106bにおいて、追加プログラム制御部24は、現在適用中(既に適用中)の追加プログラム26のプログラムIDの一覧を生成する。なお、追加プログラム制御部24は、追加プログラム26の実行を制御するプログラムであるため、現在適用中である追加プログラム26のプログラムIDを把握している。
In the figure, steps S106 to S108 are replaced with steps S106b, 107b, and S108b, respectively. In step S106b, the additional
続いて、追加プログラム制御部24は、これから適用されるカレント追加プログラム26の証明書261よりプログラムIDを取得する(S107b)。続いて、追加プログラム制御部24は、排他関係管理テーブルを参照してカレント追加プログラム26の適用の可否を判定する(S108b)。
Subsequently, the additional
図10は、排他関係管理テーブルの構成例を示す図である。同図において、排他関係管理テーブル32は、追加プログラム26のプログラムIDごとに(すなわち、追加プログラム26ごとに)、実行時期について排他的な関係にある(すなわち、同時に実行させることのできない又は同時に実行させることが好ましくない)追加プログラムのプログラムIDが定義(登録)されている。例えば、同図では、プログラムIDが「P0001」である追加プログラム26は、プログラムIDが「P0002」、「C0001」、「C0002」、及び「F0001」の追加プログラム26とは排他的な関係にあることが定義されている。なお、排他関係管理テーブル32は、機器20のHDD633に保存されていてもよいし、管理サーバ10に保存されていてもよい。また、排他関係管理テーブル32は、管理者等、所定の者に限って編集可能とすればよい。
FIG. 10 is a diagram illustrating a configuration example of the exclusive relationship management table. In the figure, the exclusive relationship management table 32 has an exclusive relationship with respect to execution time for each program ID of the additional program 26 (that is, for each additional program 26) (that is, it cannot be executed simultaneously or is executed simultaneously). The program ID of the additional program is defined (registered). For example, in the figure, the
したがって、追加プログラム制御部24は、ステップS107bにおいて取得されたカレント追加プログラム26のプログラムIDに対して排他的な関係にある追加プログラム26のプログラムIDを排他関係管理テーブル32より取得し、取得されたプログラムIDの少なくともいずれか一つが、ステップS106bにおいて生成された現在適用中(実行中)の追加プログラム26のプログラムIDの一覧に含まれているか否かによって適用の可否を判定する。排他的な関係にあるプログラムIDのいずれかが現在実行中のプログラムIDに含まれていない場合(S108bでYes)、追加プログラム制御部24は、カレント追加プログラム261を適用対象のSDKアプリ22aに適用する(S109)。
Therefore, the additional
適排他的な関係にあるプログラムIDのいずれかが現在実行中のプログラムIDに含まれている場合(S108bでNo)、追加プログラム制御部24は、カレント追加プログラム26の適用は行わない(S110)。
If any of the program IDs having an appropriate exclusive relationship is included in the currently executing program ID (No in S108b), the additional
なお、上記では、排他関係管理テーブル32には排他的な関係を示す情報が管理されている例を示した。しかし、同時に実行可能な関係を示す情報を排他関係管理テーブル32において管理するようにしてもよい。この場合であっても排他的な関係を判定することが可能だからである。 In the above description, the exclusive relationship management table 32 shows an example in which information indicating an exclusive relationship is managed. However, information indicating relationships that can be executed simultaneously may be managed in the exclusive relationship management table 32. This is because even in this case, the exclusive relationship can be determined.
上述したように、第三の実施の形態によれば、排他的な関係にある追加プログラム26の並列的な実行(同時期の実行)を適切に回避することができる。したがって、排他的な関係にある追加プログラム26の並列的な実行による機器20の不正動作の発生を防止することができる。なお、排他的な関係とは、例えば、適用対象が同じである、機器20が備える同一のパラメータに対してアクセスする等の関係が挙げられる。但し、この条件が満たされることにより直ちに排他的な関係であると定義されることを意図するものではない。例えば、適用対象が同じであっても、お互いに干渉し合うことなく適用対象に処理を割り込ませることができるのであれば排他的な関係とはならない可能性もある。
As described above, according to the third embodiment, parallel execution (simultaneous execution) of the
なお、第三の実施の形態を、第一又は第二の実施の形態と組み合わせて実施してもよい。そうすることにより、適用対象のプログラムと追加プログラム26との関係と、追加プログラム26間の関係との組み合わせに基づいて、追加プログラム26の適用及び実行を制限することができる。
Note that the third embodiment may be implemented in combination with the first or second embodiment. By doing so, application and execution of the
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。 As mentioned above, although the Example of this invention was explained in full detail, this invention is not limited to such specific embodiment, In the range of the summary of this invention described in the claim, various deformation | transformation・ Change is possible.
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
26
612 ASIC
621 NB
622 SB
631 MEM-P
632 MEM-C
633 HDD
634
642
Claims (18)
前記判定手段の判定結果に応じて、前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手段とを有することを特徴とする電子機器。 Second data associated with a second program capable of dynamically interrupting processing to the first program to be applied, and first data associated with the first program Determining means for determining whether or not the second program can be applied based on whether or not matches a predefined correspondence relationship;
An electronic apparatus comprising: an execution control unit that applies the second program to the first program and executes the second program according to a determination result of the determination unit.
前記判定手段は、前記第一のデータと前記第二のデータとが一致する場合に前記第二のプログラムの適用は可能であると判定することを特徴とする請求項1記載の電子機器。 The first data and the second data are data indicating the creator of the program to which each is added,
The electronic device according to claim 1, wherein the determination unit determines that the application of the second program is possible when the first data matches the second data.
前記プログラム識別子と前記作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段を有し、
前記判定手段は、前記第一のデータと前記第二のデータと前記対応情報とに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項1記載の電子機器。 The first data is a program identifier for identifying each of the plurality of first programs, the second data is data indicating the creator of the second program,
Management means for managing correspondence information capable of determining an applicable correspondence relationship between the program identifier and the creator;
The electronic device according to claim 1, wherein the determination unit determines whether the second program can be applied based on the first data, the second data, and the correspondence information.
前記第一プログラムのプログラム識別子と前記第二のプログラムの識別子との適用可能な対応関係を判定可能な対応情報を管理する管理手段を有し、
前記判定手段は、前記第一のデータと前記第二のデータと前記対応情報とに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項1記載の電子機器。 The first data is a program identifier that identifies each of the plurality of first programs, and the second data is a program identifier that identifies each of the plurality of second programs,
Management means for managing correspondence information capable of determining an applicable correspondence relationship between the program identifier of the first program and the identifier of the second program;
The electronic device according to claim 1, wherein the determination unit determines whether the second program can be applied based on the first data, the second data, and the correspondence information.
前記第一プログラムの作成者と前記第二のプログラムの作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段を有し、
前記判定手段は、前記第一のデータと前記第二のデータと前記対応情報とに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項1記載の電子機器。 The first data and the second data are data indicating the creator of the program to which each is added,
Management means for managing correspondence information capable of determining an applicable correspondence relationship between the creator of the first program and the creator of the second program;
The electronic device according to claim 1, wherein the determination unit determines whether the second program can be applied based on the first data, the second data, and the correspondence information.
既に適用中の前記第二のプログラムと、これから適用される前記第二のプログラムとが排他関係にあるか否かを前記対応情報に基づいて判定する判定手段と、
前記判定手段の判定結果に応じて、こらから適用される前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手段とを有することを特徴とする電子機器。 A management means for managing correspondence information capable of determining an exclusive relationship of execution times for a plurality of second programs capable of dynamically interrupting processing to the first program to be applied;
Determination means for determining whether or not the second program already applied and the second program to be applied are in an exclusive relationship based on the correspondence information;
An electronic apparatus comprising: an execution control unit that applies the second program applied from here to the first program according to a determination result of the determination unit.
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な第二のプログラムに関連付けられている第二のデータと、前記第一のプログラムに関連付けられている第一のデータとが予め定義された対応関係に合致するか否かに基づいて前記第二のプログラムの適用の可否を判定する判定手順と、
前記判定手順の判定結果に応じて、前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手順とを有することを特徴とするプログラム実行制御方法。 A program execution control method executed by an electronic device,
Second data associated with a second program capable of dynamically interrupting processing to the first program to be applied, and first data associated with the first program A determination procedure for determining whether or not the second program can be applied based on whether or not matches a predefined correspondence relationship;
An execution control procedure for executing the second program by applying the second program to the first program according to a determination result of the determination procedure.
前記判定手順は、前記第一のデータと前記第二のデータとが一致する場合に前記第二のプログラムの適用は可能であると判定することを特徴とする請求項7記載のプログラム実行制御方法。 The first data and the second data are data indicating the creator of the program to which each is added,
8. The program execution control method according to claim 7, wherein the determination procedure determines that the application of the second program is possible when the first data and the second data match. .
前記判定手順は、前記プログラム識別子と前記作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項7記載のプログラム実行制御方法。 The first data is a program identifier for identifying each of the plurality of first programs, the second data is data indicating the creator of the second program,
The determination procedure is based on management means for managing correspondence information capable of determining an applicable correspondence relationship between the program identifier and the creator, and the second data based on the first data and the second data. 8. The program execution control method according to claim 7, wherein the applicability of the program is determined.
前記判定手順は、前記第一プログラムのプログラム識別子と前記第二のプログラムの識別子との適用可能な対応関係を判定可能な対応情報を管理する管理手手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項7記載のプログラム実行制御方法。 The first data is a program identifier that identifies each of the plurality of first programs, and the second data is a program identifier that identifies each of the plurality of second programs,
The determination procedure includes management means for managing correspondence information capable of determining an applicable correspondence relationship between the program identifier of the first program and the identifier of the second program, the first data, and the second data 8. The program execution control method according to claim 7, wherein whether or not the second program can be applied is determined on the basis of the data.
前記判定手順は、前記第一プログラムの作成者と前記第二のプログラムの作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項7記載のプログラム実行制御方法。 The first data and the second data are data indicating the creator of the program to which each is added,
The determination procedure includes: management means for managing correspondence information capable of determining an applicable correspondence relationship between the creator of the first program and the creator of the second program; the first data; and the second data 8. The program execution control method according to claim 7, wherein whether or not the second program can be applied is determined on the basis of the data.
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な複数の第二のプログラムについて実行時期の排他関係を判定可能な対応情報を管理する管理手段に基づいて、既に適用中の前記第二のプログラムと、これから適用される前記第二のプログラムとが排他関係にあるか否かを前記対応情報に基づいて判定する判定手順と、
前記判定手順の判定結果に応じて、こらから適用される前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手順とを有することを特徴とするプログラム実行制御方法。 A program execution control method executed by an electronic device,
Already applied based on the management means that manages the correspondence information that can determine the exclusive relationship of execution time for multiple second programs that can dynamically interrupt the processing of the first program to be applied A determination procedure for determining whether or not the second program in the second program to be applied is exclusive based on the correspondence information;
A program execution control method, comprising: an execution control procedure for applying the second program applied from here to the first program according to a determination result of the determination procedure.
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な第二のプログラムに関連付けられている第二のデータと、前記第一のプログラムに関連付けられている第一のデータとが予め定義された対応関係に合致するか否かに基づいて前記第二のプログラムの適用の可否を判定する判定手順と、
前記判定手順の判定結果に応じて、前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手順とを実行させるためのプログラム。 Electronic equipment,
Second data associated with a second program capable of dynamically interrupting processing to the first program to be applied, and first data associated with the first program A determination procedure for determining whether or not the second program can be applied based on whether or not matches a predefined correspondence relationship;
A program for executing an execution control procedure for applying the second program to the first program and executing the second program according to a determination result of the determination procedure.
前記判定手順は、前記第一のデータと前記第二のデータとが一致する場合に前記第二のプログラムの適用は可能であると判定することを特徴とする請求項13記載のプログラム。 The first data and the second data are data indicating the creator of the program to which each is added,
14. The program according to claim 13, wherein the determination procedure determines that the application of the second program is possible when the first data matches the second data.
前記判定手順は、前記プログラム識別子と前記作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項13記載のプログラム。 The first data is a program identifier for identifying each of the plurality of first programs, the second data is data indicating the creator of the second program,
The determination procedure is based on management means for managing correspondence information capable of determining an applicable correspondence relationship between the program identifier and the creator, and the second data based on the first data and the second data. 14. The program according to claim 13, wherein the applicability of the program is determined.
前記判定手順は、前記第一プログラムのプログラム識別子と前記第二のプログラムの識別子との適用可能な対応関係を判定可能な対応情報を管理する管理手手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項13記載のプログラム。 The first data is a program identifier that identifies each of the plurality of first programs, and the second data is a program identifier that identifies each of the plurality of second programs,
The determination procedure includes management means for managing correspondence information capable of determining an applicable correspondence relationship between the program identifier of the first program and the identifier of the second program, the first data, and the second data 14. The program according to claim 13, wherein whether or not the second program is applicable is determined based on the data.
前記判定手順は、前記第一プログラムの作成者と前記第二のプログラムの作成者との適用可能な対応関係を判定可能な対応情報を管理する管理手段と、前記第一のデータ及び前記第二のデータとに基づいて前記第二のプログラムの適用の可否を判定することを特徴とする請求項13記載のプログラム。 The first data and the second data are data indicating the creator of the program to which each is added,
The determination procedure includes: management means for managing correspondence information capable of determining an applicable correspondence relationship between the creator of the first program and the creator of the second program; the first data; and the second data 14. The program according to claim 13, wherein whether or not the second program is applicable is determined based on the data.
適用対象とされた第一のプログラムに動的に処理を割り込ませることが可能な複数の第二のプログラムについて実行時期の排他関係を判定可能な対応情報を管理する管理手段に基づいて、既に適用中の前記第二のプログラムと、これから適用される前記第二のプログラムとが排他関係にあるか否かを前記対応情報に基づいて判定する判定手順と、
前記判定手順の判定結果に応じて、こらから適用される前記第二のプログラムを前記第一のプログラムに適用して実行させる実行制御手順とを実行させるためのプログラム。 Electronic equipment,
Already applied based on the management means that manages the correspondence information that can determine the exclusive relationship of execution time for multiple second programs that can dynamically interrupt the processing of the first program to be applied A determination procedure for determining whether or not the second program in the second program to be applied is in an exclusive relationship based on the correspondence information;
A program for executing an execution control procedure for causing the second program applied from here to be applied to the first program in accordance with a determination result of the determination procedure.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008121566A JP2009271726A (en) | 2008-05-07 | 2008-05-07 | Electronic device, method of controlling program execution, and program |
US12/410,539 US20090249346A1 (en) | 2008-03-27 | 2009-03-25 | Image forming apparatus, information processing apparatus and information processing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008121566A JP2009271726A (en) | 2008-05-07 | 2008-05-07 | Electronic device, method of controlling program execution, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009271726A true JP2009271726A (en) | 2009-11-19 |
Family
ID=41438221
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008121566A Pending JP2009271726A (en) | 2008-03-27 | 2008-05-07 | Electronic device, method of controlling program execution, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009271726A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713570B2 (en) | 2009-07-07 | 2014-04-29 | Ricoh Company, Ltd. | Electronic device, information processing method, and storage medium |
JP2014170366A (en) * | 2013-03-04 | 2014-09-18 | Ricoh Co Ltd | Apparatus, information processing system, information processing method, and program |
JP2021105979A (en) * | 2019-12-26 | 2021-07-26 | グニテック コーポレーション | Firmware updating method and firmware updating system therefor |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0546432A (en) * | 1991-06-24 | 1993-02-26 | Nec Corp | Controller automatically incorporating program debugging function |
JPH11327892A (en) * | 1998-05-15 | 1999-11-30 | Nec Corp | Object access control system by designer information |
JP2002244921A (en) * | 2001-02-19 | 2002-08-30 | Sony Corp | Data processing device |
JP2006011987A (en) * | 2004-06-28 | 2006-01-12 | Ricoh Co Ltd | Debugging system and debugging method |
JP2007140620A (en) * | 2005-11-15 | 2007-06-07 | Sophia Systems Co Ltd | Microcomputer and debugging device connected to this microcomputer |
-
2008
- 2008-05-07 JP JP2008121566A patent/JP2009271726A/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0546432A (en) * | 1991-06-24 | 1993-02-26 | Nec Corp | Controller automatically incorporating program debugging function |
JPH11327892A (en) * | 1998-05-15 | 1999-11-30 | Nec Corp | Object access control system by designer information |
JP2002244921A (en) * | 2001-02-19 | 2002-08-30 | Sony Corp | Data processing device |
JP2006011987A (en) * | 2004-06-28 | 2006-01-12 | Ricoh Co Ltd | Debugging system and debugging method |
JP2007140620A (en) * | 2005-11-15 | 2007-06-07 | Sophia Systems Co Ltd | Microcomputer and debugging device connected to this microcomputer |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8713570B2 (en) | 2009-07-07 | 2014-04-29 | Ricoh Company, Ltd. | Electronic device, information processing method, and storage medium |
JP2014170366A (en) * | 2013-03-04 | 2014-09-18 | Ricoh Co Ltd | Apparatus, information processing system, information processing method, and program |
JP2021105979A (en) * | 2019-12-26 | 2021-07-26 | グニテック コーポレーション | Firmware updating method and firmware updating system therefor |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101752082B1 (en) | Development-environment system, development-environment device, and development-environment provision method and computer readable medium recording program | |
US8006241B2 (en) | Automatic software installation and cleanup | |
US8990561B2 (en) | Pervasive package identifiers | |
US20130160126A1 (en) | Malware remediation system and method for modern applications | |
JP4844102B2 (en) | Subprogram and information processing apparatus for executing the subprogram | |
JP5091925B2 (en) | How to install the license file | |
US10291620B2 (en) | Information processing apparatus, terminal apparatus, program, and information processing system for collaborative use of authentication information between shared services | |
JP2015046075A (en) | Information processor, control method therefor, and computer program | |
JP5631940B2 (en) | Information processing apparatus, method, and program | |
US8401973B1 (en) | Method and system for managing a license for an add-on software component | |
JP5463762B2 (en) | Electronic device, information processing method, and program | |
JP2013239098A (en) | System, device, and program for processing information | |
JP2006338554A (en) | Service using method and terminal | |
US20090249346A1 (en) | Image forming apparatus, information processing apparatus and information processing method | |
JP2009271726A (en) | Electronic device, method of controlling program execution, and program | |
AU2014276026B2 (en) | Information processing device, information processing method, and program | |
US20230161604A1 (en) | Automatic machine deployment and configuration | |
JP5293462B2 (en) | Electronic device, information processing method, and information processing program | |
JP5310324B2 (en) | Information processing apparatus, information processing method, and program | |
JP2021077971A (en) | Information processing apparatus, file ensuring method, and file ensuring program | |
JP2017183930A (en) | Server management system, server device, server management method, and program | |
US20150169852A1 (en) | Controlling Execution of a Software Application on an Execution Platform in a Local Network | |
CN111353150B (en) | Trusted boot method, trusted boot device, electronic equipment and readable storage medium | |
JP2007041694A (en) | Upgrade method of firmware | |
JP2007094673A (en) | Apparatus and use restriction program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20101220 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120326 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120508 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120620 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130305 |