以下、本発明の実施の形態について図面を参照しながら説明する。
(第1実施形態)
図1は本発明の第1実施形態に係る画像形成装置の全体構成を示すブロック図である。
画像形成装置100は、図1に示すように、画像形成装置全体を制御するためのコントローラ101と、通信部102と、スキャナエンジン103と、プリンタエンジン104と、FAXボード105と、操作部106とを備え、スキャナ、プリンタ、FAXなどの複数の機能を実現する複合機(MFP;Multi Function Peripheral)を構成する。
通信部102は、コントローラ101が外部機器と通信するためのものであり、例えば、イーサネット(登録商標)やIEE1284またはその他の通信機能を実現するものであればよく、またいずれか1つに限定されるものでもない。スキャナエンジン103は、コントローラ101によって制御される。プリンタエンジン104は、コントローラ101によって制御される。このプリンタエンジン104は、レーザビームプリンタ、インクジェットプリンタまたはその他のプリンタから構成されてもよい。FAXボード105は、画像の送受信時の通信制御などFAX機能を実現するためのものであり、コントローラ101によって制御される。操作部106は、後述のLCD(液晶表示器)などからなるディスプレイとキーボードなどを有する。この操作部106は、コントローラ101からの情報表示を行うとともに、ユーザからの指示をコントローラ101に伝える機能を有する。
以上のように構成された画像形成装置においては、スキャナエンジン103を選択することによって、スキャンジョブの発行が可能になる。また、プリンタエンジン104とスキャナエンジン103を選択することによって、コピージョブの発行が可能になる。また、プリンタエンジン104とスキャナエンジン103およびFAXボード105を選択することによって、FAX受信ジョブおよびFAX送信ジョブの発行が可能になる。
次に、コントローラ101の構成について図2を参照しながら説明する。図2は図1のコントローラ101の概略構成を示すブロック図である。
コントローラ101は、図2に示すように、CPU(中央演算処理装置)201と、RAM(ランダムアクセスメモリ)202と、ROM(リードオンリーメモリ)203と、DISK(記憶装置)204と、LCDインターフェース(以下I/F)205と、キーボードI/F206と、通信I/F207と、スキャナI/F208と、プリンタI/F209と、FAXI/F210と、時計212とを有し、それらはシステムバス211を介して相互に接続されている。ここで、DISK204は、ハードディスク装置などの記憶装置から構成される。
コントローラ101を制御するプログラムは、ROM203またはDISK204に格納されており、後述のプログラム管理手段501により必要なモジュールがRAM202に読み出され、CPU201によって実行される。また、ROM203およびDISK204には、制御プログラム以外にも画像形成装置や当該画像形成装置で処理されるジョブの機能および状態を示す属性情報や出力の対象となるジョブデータなどが格納されている。また、CPU201は操作部106とLCDI/F205を通して情報やメッセージなどの表示を行い、キーボードI/F206からユーザの指示を受ける。また、CPU201は通信I/F207を通じて外部機器と通信を行う。
本実施形態では、特に断らない限り、CPU201がシステムバス211を介してキーボードI/F206からユーザの入力を受け取り、RAM202と、ROM203と、DISK204と、LCDI/F205と、通信I/F207と、スキャナエンジンI/F208と、プリンタエンジンI/F209と、FAXボードI/F210とを制御して、ユーザの入力に応じたジョブを実施する。
次に、画像形成装置100が動作するネットワークシステムについて図3および図4を参照しながら説明する。図3は図1の画像形成装置が動作するネットワークシステムの構成例を示すブロック図、図4は図3のPCの構成を示すブロック図である。
本画像形成装置(MFP)100は、図3に示すように、複数のPC(パーソナルコンピュータ)302,303を収容するネットワーク305に接続されているとともに、PC304と接続される。ここで、画像形成装置100とネットワーク305経由で接続されるものは、ワークステーションであってもよいし、他の画像形成装置やその他の機器であってもよい。
上記各PC302,303,304は、図4に示すように、CPU401と、RAM402と、CRT(陰極線管)403と、キーボード404と、ポインティングデバイス405と、ROM406と、DISK(ハードディスク装置)407と、通信I/F408とを備え、これらはシステムバス409を介して相互に接続されている。
各PCを制御するプログラムは、ROM406またはDISK407に格納されており、必要に応じてRAM402に読み出され、CPU401によって実行される。また、CPU401がCRT403を通して表示を行い、キーボード404およびポインティングデバイス405からユーザの指示を受ける。また、CPU401が通信I/F408を通じて外部機器と通信を行う。
本実施形態のPCでは、特に断らない限り、CPU401がシステムバス409を介してキーボード404やポインティングデバイス405からユーザの入力を受け取り、RAM402と、CRT403と、ROM406と、DISK407と、通信I/F408とを制御して、ユーザの入力に応じた処理を実施する。
次に、画像形成装置100のコントローラ101を構成するソフトウエアブロックうち、その主要部(本発明に関わる部分)について図5および図6を参照しながら説明する。図5は画像形成装置100のコントローラ101を構成するソフトウエアブロックのうち、主要部(本発明に関わる部分)の構成を示すブロック図、図6は起動プログラム識別手段502が管理する起動プログラム管理データ600を示す図である。
コントローラ101を構成するソフトウエアブロックの主要部は、図5に示すように、プログラム管理手段501と、起動プログラム識別手段502と、ライセンス管理手段503と、使用資源集計手段504とを含む。ここで、プログラム管理手段501は、コントローラ101が起動された直後にCPU201により実行されるプログラムにより構成される。プログラム管理手段501は起動プログラム識別手段502が保持する情報に従い、起動すべきプログラムモジュールを順次起動するものである。起動プログラム識別手段502は、起動すべきプログラムモジュールの情報を管理するものである。ライセンス管理手段503は、操作部106または通信部102と通信し、所定の処理を行うものである。使用資源集計手段504は、スキャナエンジン103、プリンタエンジン104、FAXボード105で使用される資源をプログラムモジュール毎に集計するものである。
起動プログラム識別手段502は、図6に示すように、起動プログラム管理データテーブル600を保持する。この起動プログラム管理データテーブル600には、モジュールNo.601、モジュール名602、モジュールID603、起動フラグフィールド604、モジュール605の各レコードが設けられ、各レコードの記述情報によりそれぞれ対応するプログラムモジュールを管理する。モジュールNo.601は、レコード起動プログラム管理データとして管理するプログラムモジュールに対しシーケンシャルに付加された番号フィールドである。モジュール名602は、プログラムモジュールの名称を示すフィールドである。モジュールID603は、プログラムモジュールを一意に識別するためのものであり、本実施形態ではUUID(Universal Unique ID)が使用される。起動フラグフィールド604は、当該プログラムモジュールの起動の有無を識別する情報である。モジュール605は、当該プログラム・モジュールの実体への参照が格納されたフィールドであり、起動フラグ・フィールドの内容に従い、プログラム管理手段501により参照先のプログラムモジュールが実行される。
なお、本実施形態では、起動対象のプログラムモジュールの管理方法としてテーブルを使用しているが、関連するプログラムモジュールと起動の有無が識別可能な方法であれば、特に本実施形態の方法に限定するもではない。また、プログラムモジュールを一意に識別する情報として、本実施形態のUUIDに限定されることはない。
次に、ライセンス管理手段503の構成について図7および図8を参照しながら説明する。図7は図5のライセンス管理手段503の構成を示すソフトウエアブロック図、図8は図7のライセンス管理手段503のコア部701が管理する管理情報800を示す図である。
ライセンス管理手段503は、図7に示すように、コア部701と、通信I/F処理部702と、操作部I/F処理部703と、暗号解読部704と、秘密鍵705を含む。コア部701は、後述のフローチャート1500に従う処理を実行するものである。通信I/F処理部702は、通信部102との通信を行うものである。操作部I/F処理部703は、操作部106との通信を行うものである。暗号解読部704は、後述のライセンス情報905を解読するための復号化処理を行うものである。秘密鍵705は、暗号解読部704が解読時に使用する秘密鍵情報である。
なお、本実施形態では、ライセンス情報の暗号化、復号化に、公開鍵と秘密鍵を用いる方式を採用するが、これに限定されることはない。また、秘密鍵705は、後述の公開鍵903と対であることはいうまでもない。
ライセンス管理手段503のコア部701は、図8に示すように、管理情報80を管理する。管理情報80は、モジュールID81、ライセンスフラグ82、有効期限83、総印刷面数84、総原稿面数85を含む。モジュールID81は、プログラムモジュールを特定する情報であり、モジュールID603の内容が格納されている。ライセンスフラグ82は、モジュールID81に与えられているライセンス情報を識別するための識別情報であり、この識別情報により、データの各ビットが後述の各ライセンスのいずれかを使用するのかが示される。ここで、ビットがオンでないライセンス項目についてはライセンスが存在しないことを示す。ここで、有効期限a03は最上位ビット(0x8000)に、総印刷面数84はその次のビット(0x4000)という対応がなされているものとする。なお、識別情報の持ち方に関しては、本実施形態に限定されることはない。有効期限83は、有効期限を示すライセンス情報が格納されるフィールドである。本実施形態では、絶対日時(年月日)を用いるが、何日間有効であるなどの有効期間を用いてもよい。総印刷面数84は、使用可能な総印刷面数のライセンス情報が格納されるフィールドである。総原稿面数85は使用可能な総原稿面数のライセンス情報が格納されるフィールドである。なお、使用可能な資源の内容に関しては、特に本実施形態の内容に限定されることはなく、例えばネットワーク305上に送出するデータのバイト数などであってもよい。
次に、コントローラ101のRAM202、ROM203、DISK204などに保持される、機器を一意に識別する識別情報について図9を参照しながら説明する。図9はコントローラ101のRAM202、ROM203、DISK204などに保持される、機器を一意に識別する識別情報の一例を示す図である。
本実施形態においては、図9に示すように、コントローラ101のRAM202、ROM203、DISK204などに、機器を一意に識別する識別情報800が保持される。本実施形態では、上記識別情報800としてシリアル番号が使用されている。なお、上記識別情報800は、シリアル番号に限定するされることはなく、UUIDなど、機器を一意に識別可能なものであればよい。
次に、上記各PC302,303,304における、ライセンス情報を生成するためのツールについて図10および図11を参照しながら説明する。図10は図3の各PC302,303,304における、ライセンス情報生成手段のソフトウエア構成を示すブロック図、図11は図10のライセンス条件の内容の一部を示す図である。
各PC302,303,304には、図10に示すように、プログラムにより、ライセンス情報生成手段901が構成され、このライセンス情報生成手段901は、暗号化部902および公開鍵903を含む。暗号化部902は、公開鍵903を用いて入力されたライセンス条件904を暗号化してライセンス情報905を生成し、このライセンス情報905を出力する。上記公開鍵情報905は、上述した秘密鍵705と対になるものである。ライセンス条件904には、ライセンス情報を生成するために必要な情報が含まれている。ライセンス情報905は、所定のプログラム・モジュールの起動を制御するための情報として、画像形成装置100のライセンス管理手段503に渡される。
ライセンス条件904は、例えば図11に示すように、複数のデータ項目1001〜1006を含み、それぞれのデータ項目に対して対応する内容が記述されている。このライセンス条件904は、テキストデータで構成してもよいしバイナリデータで構成してもよく、特定のデータフォーマットで規定されるものではない。
データ項目1001はシリアル番号を示すデータ項目である。データ項目1001は画像形成装置100を一意に特定する情報であり、画像形成装置100が保持する識別情報800と同じ情報である。データ項目1002はモジュールIDであり、上述したモジュールID603と同じ情報である。本実施形態では、FAX用スキャンモジュールのモジュールIDを使用して説明を行うものとする。データ項目1003は、モジュールID1002に与えられているライセンス情報を識別するための識別情報であり、データの各ビットが後述の各ライセンスのいずれかを使用するのかが示されている。ビットがオンでないライセンス項目についてはライセンスが存在しないことを示す。本実施形態においては、有効期限1004が最上位ビット(0x8000)に、総印刷面数1005がその次のビット(0x4000)という対応がなされているものとする。なお、識別情報の持ち方に関しては、本実施形態に特に限定されるものではない。データ項目1004は、有効期限を示す項目であり、モジュールID1002で指定されるプログラムモジュールの利用可能期間を設定するものである。データ項目1005は、使用可能な総印刷面数のライセンス情報が格納されるフィールドである。本実施形態では、ライセンスフラグ1003により、このライセンスフィールドは参照されない。データ項目1006は、総原稿面数のライセンス情報が格納されるフィールドである。本実施形態では、1000000枚の原稿面数までの利用が可能であることを示している。なお、使用可能な資源の内容に関しては、特に本実施形態の内容に限定されるものではなく、例えばネットワーク上に送出するデータのバイト数などであってもよい。
本実施形態においては、ライセンス情報905は予め生成され、PC302のDISK407の所定領域に格納されているものとする。
次に、画像形成装置100の操作部106に表示される操作画面について図12を参照しながら説明する。図12は図1の画像形成装置100の操作部106に表示される操作画面例を示す図である。
操作部106は、上述したように、LCD(液晶表示器)などからなるディスプレイとキーボードなどを有する。このディスプレイの画面は、タッチパネルが貼り付けられており、この画面上にそれぞれ表示される機能の枠内を触れることにより、その機能が実行される。
操作部106のディスプレイには、例えば図12に示すような操作画面1100が表示される。この操作画面1100上で、各機能選択キー(コピーモードキー1123、送信モードキー1124、ボックスモードキー1125)のうち、コピーモードキー1123が押下された場合、コピーモードの画面1130が表示される。このコピーモードの画面1130上には、コピーモードに関する機能を選択して操作するための各種ソフトキーが表示される。ここで、送信モードキー1124は、ファックス送信などを行うときに押されるキーである。ボックスモードキー1125は、ボックスに格納されたデータをを操作するときに押されるキーである。
上記画面1130上では、拡張機能キー1101、画像モードキー1102、ユーザモードキー1103、応用ズームキー1104、M1キー1105、M2キー1106、M3キー1107、オプションキー1109、ソータキー1110、原稿混載キー1111、等倍キー1112、用紙選択キー1113、縮小キー1114、拡大キー1115、濃度キー1118,1120、AEキー1119、HiFiキー1121、文字強調キー1122、履歴キー1150などが表示される。
拡張機能キー1101は、両面複写、多重複写、移動、綴じ代の設定、枠消しの設定などのモードに移行するためのキーである。画像モードキー1102は、複写画像に対して網掛け、影付け、トリミング、マスキングを行うための設定モードに移行するためのキーである。ユーザモードキー1103は、モードメモリの登録、標準モード画面の設定を行うためのキーである。応用ズームキー1104は、原稿のX方向、Y方向を独立に変倍するモード、原稿サイズと複写サイズから変倍率を計算するズームプログラムのモードに移行するためのキーである。M1キー1105、M2キー1106、M3キー1107は、それぞれに登録されたモードメモリを呼び出す際に押されるキーである。オプションキー1109は、フィルムから直接複写するため、フィルムプロジェクタなどのオプション機能の設定を行うキーである。ソータキー1110は、ソート、ノンソート、グループの設定を行うキーである。原稿混載キー1111は、原稿フィーダにA4サイズとA3サイズ、またはB5サイズとB4サイズの原稿を一緒にセットする際に押されるキーである。等倍キー1112は、複写倍率を100%にする際に押されるキーである。用紙選択キー1113は、複写用紙の選択を行う際に押されるキーである。縮小キー1114、拡大キー1115は、定型の縮小、拡大を行う際に押されるキーである。濃度キー1118、1120は、濃度設定するためのキーであり、キー1118が押される毎に複写濃度が濃くなるように設定され、キー1120が押される毎に複写濃度が薄くなるように設定される。濃度キー1118、1120が押下される毎に、濃度表示1117が左右に変化し、これにより設定された濃度状態が表される。AEキー1119は、新聞のように地肌の濃い原稿を自動濃度調整複写するときに押されるキーである。HiFiキー1121は、写真原稿のように中間調の濃度が濃い原稿の複写の際に押されるキーである。文字強調キー1122は、文字原稿の複写で文字を際立たせる場合に押されるキーである。履歴キー1150は、印刷済みのジョブの履歴情報を表示する際に押されるキーであり、履歴情報として、例えば、印刷ジョブの、終了時刻、ユーザ名、ファイル名、印刷枚数などの情報が表示される。
また、ステータスライン1140が表示され、このステータスライン1140には、機器の状態や印刷情報を示すメッセージが表示される。本例では、コピー中であることを示している。
次に、画像形成装置100上でのライセンス情報の読込みについて図13ないし図17を参照しながら説明する。図13は図1の画像形成装置上でのライセンス情報の読込みを指示するための画面例を示す図、図14はライセンス情報読込みの処理結果を表す画面例を示す図、図15はライセンス情報読込み時のフローチャート、図16は図15のステップS1406のライセンス入力処理を示すフローチャート、図17は更新後の起動プログラム管理データテーブルを示す図、図18は更新後の管理情報を示す図である。
画像形成装置100でライセンス情報の読込みを行う際には、図12に示す画面上でサービスマンなどの特殊な操作者により、操作部106のテンキーが操作されて特殊な操作が行われる。これにより、画面が図13に示す画面1200に遷移する。ここで、本画面を制御するプログラムは、ライセンス管理手段503上で動作するものとする。
この画面1200には、図13に示すように、ライセンス情報を入力する入力フィールド1201と、ライセンス情報の読み込みを指示する「OK」ボタン1202と、本画面の処理を中断し所定の画面に戻ることを指示する「Cancel」ボタン1203とが表示される。本例では、フィールド1201に、ネットワーク305上のPC302のDISK407内にある所定のデータが指定されたものとする。このように所定のデータが指定された後に、「OK」ボタン1202が押下されると、後述の図15に示すフローチャートの処理が実行される。これに対し、「Cancel」ボタン1203が押下されると、本実施形態では、コピーモード画面1130に戻るものとする。
なお、ライセンス情報の指定方法に関しては、上記方法に限定されることはない。例えば、ネットワーク305上のPC302、PC303、PC305などを視覚的に並べ、かつPC内のDISK407の内容を視覚的に表示してライセンス情報を選択するようにしてもよい。また、ライセンス情報の格納先としてネットワーク305上のPC302を使用しているが、ローカルに接続されたPC304でもよいし、また図示していない取り外し可能な記憶デバイスであってもよいことはいうまでもない。
上記画面1200上で、「OK」ボタン1202が押されると、図15のフローチャートの処理が実行され、その処理結果に応じて、図14(a)に示す画面1301、または図14(b)に示す画面1303が表示される。ここで、画面1301は、図15のフローチャートの処理が成功した場合に表示される正常終了画面であり、この画面には、「ライセンスは正しく入力されました。」というメッセージとともに、画面1301を閉じるためのボタン1302が表示される。ボタン1302が押下されると、図13の画面に遷移する。画面1303は、処理が失敗した場合に表示されるエラー終了画面であり、「指定されたライセンスは無効です。」というメッセージとともに、画面1303を閉じるためのボタン1304が表示される。ボタン1304が押下されると、図12の画面に遷移する。
次に、上記画面1200上で「OK」ボタン1202が押された場合に開始される処理について説明する。
この処理では、図15に示すように、まずステップS1401において、入力フィールド1201で入力されたデータがチェックされ、入力されたデータが正しいか否かの判定が行われる。ここで、入力されたデータが正しい場合、ステップS1402において、入力フィールド1201に入力されたライセンス情報の格納先と通信を確立するための処理が行われる。ここでは、通信部102を用いて、ネットワーク305を介して、対応するPCの通信インターフェース408と接続される。そして、ステップS1403において、上記ステップS1402での通信確立でエラーが発生したか否かの判定が行われ、エラーが発生していないすなわち通信確立が正常に行われた場合、ステップS1404において、入力フィールド1201で入力されたライセンス情報が存在するか否かの判定が行われる。上記入力されたライセンス情報が存在する場合は、処理がステップ1405に進められる。
ステップS1405では、入力されたライセンス情報が存在する場所からライセンス情報が読み出される。ここでは、PC302のDISK407に格納されているライセンス情報が読み出され、画像形成装置100のRAM202またはDISK204に格納される。そして、ステップS1406において、上記ステップS1405で格納されたライセンス情報を実際に画像形成装置100に反映するためのライセンス入力処理を行う。このライセンス入力処理は、ライセンス管理手段503により行われる。このライセンス管理手段503の処理については、後述の図16を用いて詳述する。
次いで、ステップS1407において、上記ステップS1406でのライセンス入力処理が正常に終了したか否かを判定する。ここで、上記ライセンス入力処理が正常に終了した場合、ステップS1408において、正常終了画面1301が表示される。この正常終了画面1301上でボタン1302が押されると、本ステップが終了される。そして、ステップS1410において、上記ステップS1402で確立された通信が切断される。上記ステップS1407でライセンス入力処理が正常に終了しなかったと判定された場合、エラー終了画面1303が表示され、エラー終了画面1303上でボタン1304が押されると、本ステップが終了される。そして、ステップS1410で、通信が切断される。
上記ステップS1401で入力されたデータが正しくないと判定された場合、上記ステップS1403で通信確立でのエラーが発生したと判定された場合、または上記ステップS1404で入力されたライセンス情報が存在しないと判定された場合、ステップS1409で、エラー終了処理が行われ、ステップS1410で、通信が切断される。
上記ステップS1406でのライセンス入力処理の詳細について図16を参照しながら説明する。本処理は、ライセンス管理手段503のコア部701により実行されるものである。
ライセンス入力処理では、図16に示すように、ステップS1501において暗号解読を行う。ここでは、暗号解読部704において、上記ステップS1405で取得されたライセンス情報905を、秘密鍵705を用いて解読し、ライセンス条件904を取得する。そして、ステップS1502において、上記暗号解読が成功したか否かの判定が行われる。ここで、暗号解読が成功した場合、機器識別情報800と解読したライセンス条件1000の機器識別情報すなわちシリアル番号1001とが比較され、両者が一致したか否かの判定が行われる。
上記ステップS1503で機器識別情報800とライセンス条件1000とが一致したと判定された場合、ステップS1504において、起動プログラム識別手段502が保持する起動プログラム管理データ600の各モジュールIDとライセンス条件1000のモジュールID1002とが比較され、この比較結果に基づいて一致するモジュールIDがあるか否かの判定が行われる。
上記ステップS1504で一致するモジュールIDがあると判定された場合、ステップS1505において、起動プログラム識別手段502の起動プログラム管理データテーブル600のデータの更新が行われる。本例では、図17に示すように、ライセンス条件1000のモジュールID1002と一致するデータ、すなわちモジュールNo4のFax用スキャンモジュールを起動対象とするように、起動プログラム管理データテーブル600のデータが変更される。
次いで、ステップS1506において、ライセンス管理手段503により管理される管理情報80が更新される。本例では、図18に示すように、モジュールID1002と一致するデータがあれば、そのレコードが更新され、一致するデータがなければ、レコードが追加される。そして、ステップS1507において、本処理が正常に終了したことを示すステイタスが設定される。
上記ステップS1502で暗号解読が失敗したと判定された場合、上記ステップS1503で機器識別情報800とライセンス条件1000とが一致しないと判定された場合、上記ステップS1504で一致するモジュールIDがないと判定された場合、ステップS1508で、本処理が異常終了したことを示すステイタスが設定される。
本実施形態では、スキャナエンジン103、プリントエンジン104、FAXボード105において所定の処理が実行されて資源が消費される度に、使用資源集計手段504にモジュールIDと使用資源内容が通知され、使用資源集計テーブルに格納されるものとする。なお、通知されるタイミングや資源の種別については、本実施形態のものに限定されることはない。
具体的に、この使用資源の通知および使用資源集計テーブルについて図19および図20を参照しながら説明する。図19は図5の使用資源集計手段504が管理する使用資源集計テーブルの一例を示す図、図20は図5のライセンス管理手段503の判定動作を示すフローチャートである。
使用資源集計手段504は、図19に示す使用資源集計テーブル1800を管理する。使用集計管理テーブル1800には、モジュールID1801毎に、総印刷面数1802、総原稿面数1803、FAX送信ページ数1804の各集計データが記述されている。本実施形態では、モジュールID1801として、スキャナエンジン103、プリントエンジン104、FAXボード105を使用するモジュールのIDのみが管理されている。また、使用資源集計手段504が使用資源を集計する対象はスキャナエンジン103、プリントエンジン104、FAXボード105に限定されるものではなく、例えばネットワーク305上に送出するパケットのバイト数などを集計対象とするようにしてもよい。
総印刷面数1802は、プリンタエンジン104により使用された印刷面数の総計を表し、プリンタエンジン104からの通知によりカウントアップされるものである。総原稿面数1803は、スキャナエンジン103により読み取られた原稿面数の総計を表し、スキャナエンジン103からの通知によりカウントアップされるものである。FAX送信ページ数1804は、FAX送信ページ数の総計を表し、FAXボード105からの通知によりカウントアップされるものである。
起動プログラム管理データテーブル600で管理されている全てのプログラムモジュールは、資源を使用する処理を開始する前に、処理を開始してよいかの判定をライセンス管理手段503に依頼する。この際、依頼元のプログラムモジュールは、そのモジュールIDがライセンス管理手段503に送られる。
具体的には、ライセンス管理手段503において、図20に示すように、まずステップS1901で、ライセンス管理手段503により管理される管理情報80の各モジュールID81のうち、依頼元のプログラムモジュールから送られたモジュールIDに一致するモジュールIDがあるか否かの判定が行われる。ここで、一致するモジュールIDがある場合は、ステップS1902において、有効期限のチェックを行うか否かの判定が行われる。ここでは、管理情報80の対象のモジュールIDのライセンスフラグ81の最上位ビット(0x8000)がオンであるか否かの判定が行われる。対象のモジュールIDのライセンスフラグ81の最上位ビット(0x8000)がオンであれば、ステップ1903において、有効期限が過ぎているか否かの判定が行われる。ここでは、管理情報80の対象のモジュールIDの有効期限83と時計212の時刻情報(年月日を含む)とが比較され、その比較結果に基づいて対応するプログラムモジュールの有効期限が過ぎているか否かの判定が行われる。そして、対応するプログラムモジュールの有効期限が過ぎていなければ、ステップS1904に処理が進められる。
これに対し、上記ステップS1902で有効期限のチェックを行わないと判定された場合、上記ステップS1903がスキップされて、ステップS1904に処理が進められる。
ステップS1904では、総印刷面数のチェックを行うか否かの判定が行われる。ここでは、管理情報80の対象のモジュールID81のライセンスフラグ82の所定のビット(0x4000)がオンであるか否かの判定が行われ、オンであれば、ステップ1905において、総印刷面数が超過しているか否かの判定が行われる。ここでは、管理情報80の対象のモジュールIDの総印刷面数84と使用資源集計手段504が保持する使用資源集計テーブル1800の対象のモジュールIDの総印刷面数1802とが比較され、その比較結果に応じて総印刷面数が超過しているか否かが判定される。総印刷面数が超過していなければ、ステップ1906に処理を進める。
これに対し、上記ステップS1904で総印刷面数のチェックを行わないと判定された場合、上記ステップS1905がスキップされてステップS1906に処理が進められる。
ステップS1906では、総原稿面数のチェックを行うか否かの判定が行われる。ここでは、管理情報80の対象のモジュールIDのライセンスフラグ82の所定のビット(0x2000)がオンであるか否かの判定が行われる。オンであれば、総原稿面数のチェックを行うと判断され、ステップ1907において、総原稿面数が超過しているか否かの判定が行われる。ここでは、管理情報80の対象のモジュールIDの総印刷面数85と使用資源集計手段504が保持する使用資源集計テーブル1800の対象のモジュールIDの総原稿面数1803とが比較され、この比較結果に応じて総原稿面数が超過しているか否かが判定される。ここで、総原稿面数が超過している場合、ステップS1908において、本処理の正常終了を示すステイタスが設定される。
これに対し、上記ステップS1906で総原稿面数のチェックを行わないと判定された場合、上記ステップS1907がスキップされ、ステップS1908で、本処理の正常終了を示すステイタスが設定される。
上記ステップS1901で依頼元のプログラムモジュールから送られたモジュールIDに一致するモジュールIDがないと判定された場合、上記ステップS1903で対応するプログラムモジュールの有効期限が過ぎていると判定された場合、上記ステップS1905で総印刷面数が超過していると判定された場合、上記ステップS1907で総原稿面数が超過していると判定された場合、ステップS1910において、本処理の異常終了を示すステイタスが設定される。
なお、本実施形態では、処理開始前に本フローチャートにより有効期限や使用資源の超過を判定するよう構成されているが、使用資源集計手段504の使用資源集計テーブル1800が更新される度に上記処理を実行するように構成するようにしてもよい。
本実施形態では、時計212の日付けが更新されると、これに伴いライセンス管理手段503により有効期限確認処理が実行される。この有効期限確認処理について図21を参照しながら説明する。図21は時計212の日付けが更新されることに伴いライセンス管理手段503により実行される有効期限確認処理を示すフローチャートである。
上記有効期限確認処理では、図21に示すように、まずステップS2001において、ライセンス管理手段503が管理する管理情報80の最初のレコードが選択され、続くステップS2002において、有効期限のチェックを行うか否かの判定が行われる。ここでは、管理情報80の現在選択中のレコードのモジュールIDのライセンスフラグ82の最上位ビット(0x8000)がオンであるか否かの判定により、有効期限のチェックを行うか否かの判定が行われる。ここで、オンであれば、ステップ2003において、有効期限を超過しているか否かの判定が行われる。ここでは、管理情報80の現在選択中のモジュールIDの有効期限83と時計212の時刻情報とが比較され、この比較結果に応じて有効期限が超過しているか否かの判定が行われる。ここでは、時刻情報として年月日が有効期限とされる。有効期限を過ぎていれば、ステップS2004において、起動プログラム識別手段502の起動プログラム管理データテーブル600のデータを更新する。ここでは、現在選択中のモジュールID82と一致するデータの起動フラグ604を起動しない対象に変更する。そして、ステップS2005に処理が進められる。
ステップS2005では、全てのレコードに対する処理が終了したか否かの判定が行われる。ここで、全てのレコードに対する処理が終了していない場合、ステップS2006において、管理情報80の次のレコードが選択され、そして、上記ステップS2002に処理が戻される。これに対し、全てのレコードに対する処理が終了すると、本処理は終了される。
上記ステップS2002で有効期限のチェックを行わないと判定された場合、または上記ステップS2003で有効期限が過ぎていないと判定された場合、上記ステップS2003およびステップS2004、またはステップS2004がスキップされて、ステップS2005において、全てのレコードに対する処理が終了したか否かの判定が行われる。ここで、全てのレコードに対する処理が終了していない場合、ステップS2006において、管理情報80の次のレコードが選択され、そして、上記ステップS2002に処理が戻される。これに対し、全てのレコードに対する処理が終了すると、本処理は終了される。
なお、本実施形態では、年月日のみを対象とするが、これに限定されることはなく、時刻が対象であってもよく、またある時点からの経過時間であってもよい。
上述したように、使用資源集計手段504に保持されている使用資源集計テーブル1800が更新されると、これに伴いライセンス管理手段503により使用資源確認処理が実行される。この使用資源確認処理について図22を参照しながら説明する。図22は使用資源集計手段504に保持される使用資源集計テーブル1800が更新されることに伴いライセンス管理手段503により実行される使用資源確認処理を示すフローチャートである。
上記使用資源確認処理では、図22に示すように、まずステップS2101において、ライセンス管理手段503に保持されている管理情報80の最初のレコードがされる。そして、ステップS2102において、総印刷面数のチェックを行うか否かの判定が行われる。ここでは、管理情報80の現在選択中のレコードのモジュールIDのライセンスフラグ82の所定のビット(0x4000)がオンであるか否かの判定により、総印刷面数のチェックを行うか否かが判定される。ここで、オンであれば、ステップ2103において、総印刷面数が超過しているか否かの判定が行われる。ここでは、現在選択中のレコードの総印刷面数84と使用資源集計手段504が保持する使用資源集計テーブル1800の対応するモジュールIDの総印刷面数1802とを比較し、この比較結果に応じて総印刷面数が超過しているか否かが判定される。ここで、総印刷面数が超過している場合、ステップS2106に処理が進められる。
上記ステップS2102で総印刷面数のチェックを行わないと判定された場合、上記ステップS2103で総印刷面数が超過していると判定された場合、ステップS2104において、総原稿面数のチェックを行うか否かの判定が行われる。ここでは、現在選択中のレコードのモジュールIDのライセンスフラグ82の所定のビット(0x2000)がオンであるか否かの判定により、総原稿面数のチェックを行うか否かが判定される。ここで、オンであれば、ステップ2105において、総原稿面数が超過しているか否かの判定が行われる。ここでは、現在選択中のレコードのモジュールIDの総印刷面数85と使用資源集計手段504が保持する使用資源集計テーブル1800の対応するモジュールIDの総原稿面数1803とが比較され、この比較結果に応じて総原稿面数が超過しているか否かが判定される。ここで、総原稿面数が超過している場合、ステップS2106に処理が進められる。
ステップS2106では、起動プログラム識別手段502の起動プログラム管理データテーブル600のデータが更新される。そして、ステップS2107において、全てのレコードに対する処理が終了したか否かの判定が行われる。ここで、全てのレコードに対する処理が終了していない場合、ステップS2108において、起動プログラム管理データテーブル600の次のレコードが選択され、そして、上記ステップS2102に処理が戻される。これに対し、全てのレコードに対する処理が終了すると、本処理は終了される。
上記ステップS2104で総原稿面数のチェックを行わないと判定された場合、上記ステップS2105で総原稿面数が超過していないと判定された場合、ステップS2107において、全てのレコードに対する処理が終了したか否かの判定が行われる。ここで、全てのレコードに対する処理が終了していない場合、ステップS2108において、起動プログラム管理データテーブル600の次のレコードが選択され、そして、上記ステップS2102に処理が戻される。これに対し、全てのレコードに対する処理が終了すると、本処理は終了される。
なお、本実施形態では、総印刷面数、総原稿面数のみを対象とするが、これに限定されることはなく、他の資源を対象としてもよい。
このように、本実施形態では、余分なコストを掛けることなくオプション機能を実現するプログラムモジュールを有効化することができるとともに、オプション機能の有効化に対するセキュリティを向上させることができる。
また、ライセンス情報に有効期限や使用上限を設けることにより、オプション機能の長期に渡る不正使用を抑制することが可能となる。
(第2実施形態)
次に、本発明の第2実施形態について図23ないし図25を参照しながら説明する。図23は本発明の第2実施形態に係る画像形成装置のライセンス管理手段503の構成を示すブロック図、図24はPCのCRT403に表示されるホームページの一例を示す図、図25は図23のライセンス管理手段503のコア部2201により実行される処理の一部を示すフローチャートである。
本実施形態では、図23に示すように、操作部106からの操作ではなく、PC上のアプリケーションからの指示により第1実施形態と同等の処理を実現する。より具体的には、画像形成装置100において、ライセンス管理手段503に、通信部102を介して外部から通信するためのHTTPサーバモジュールを設け、PCに設けられた一般的なWebブラウザアプリケーションからライセンス情報905を画像形成装置100に送信することにより、第1実施形態と同等の処理が実現される。
本実施形態のライセンス管理手段503は、図23に示すように、後述の図25に示すフローチャートを実行するためのコア部2201と、HTTPサーバ2202と、通信I/F処理部2203と、暗号解読部2204と、秘密鍵2205とを有する。HTTPサーバ2202は、通信部102を介して接続されるPCからブラウザアプリケーションによるアクセスを可能とするものである。ここで、PCと通信を行うためのサーバモジュールとしては、HTTPサーバに限定されるものではない。通信I/F処理部2203は、通信部102との通信を行うものである。暗号解読部2204は、上記ライセンス情報905を解読するための復号化処理を行うものである。秘密鍵2205は、暗号解読部2204による解読時に使用される秘密鍵情報である。
なお、本実施形態では、ライセンス情報の暗号化、復号化には公開鍵と秘密鍵を用いる方式を採用するが、これに限定されるものではない。また、秘密鍵2205は、上記公開鍵903と対であることはいうまでもない。
本実施形態においては、DISK204にはホームページが格納されており、このホームページはHTTPサーバ2202により対応するPCに送信される。PCでは、送信されたホームページを受信し、PC上で動作するブラウザアプリケーションによりCRT403に表示する。例えばPCのCRT403には、図24に示すようなホームページ2300が表示される。このホームページ2300には、アドレス表示フィールド2301と、ライセンス情報入力フィールド2302と、ファイル検索画面表示フィールド2303と、「送信」ボタン2304と、「リセット」ボタン2305とが含まれる。
アドレス表示フィールド2301は、ホームページのアドレスを示すフィールドであり、本例では、MFP301(画像形成装置100)を指定していることを示している。ライセンス情報入力フィールド2302は、PCのDISK407の所定領域に格納されているライセンス情報を入力するためのフィールドである。ファイル検索画面表示フィールド2303は、ライセンス情報を容易に入力するためのファイル検索画面(図示せず)を表示するものである。「送信」ボタン2304は、ライセンス情報入力フィールド2302に入力されたライセンス情報を画像形成装置100に送信するためのボタンであり、本実施形態においては、DISK407からライセンス情報を読み出し、転送することを指示する。「リセット」ボタン2305は、ライセンス情報入力フィールド2302の内容をクリアするためのボタンである。
なお、PC上に表示される画面に関しては、図24に示す画面構成に限定されるものではない。
PCから上記ライセンス情報が送信されると、このライセンス情報は、HTTPサーバ2202により受信される。HTTPサーバ2202により上記ライセンス情報が受信されると、ライセンス管理手段503のコア部2201により処理が開始される。具体的には、図25に示すように、まずステップS2401において、HTTPサーバ2202により受信されたPCからのライセンス情報がRAM202またはDISK204に蓄積される。そして、ステップS2402において、上記ステップS2401で格納されたライセンス情報を実際に画像形成装置100に反映するためのライセンス入力処理が行われる。この処理は、ライセンス管理手段503により実行される図16のフローチャートで示す処理である。
次いで、ステップS2403において、上記ステップS2402の処理が正常に終了したか否かの判定が行われ、正常終了であれば、ステップS2404で、本処理の正常終了を示すステイタスが設定される。これに対し、異常終了であれば、ステップS2405において、本処理の異常終了を示すステイタスが設定される。
このように、本実施形態では、サービスマンが画像形成装置100の設置場所まで赴くことなくネットワーク305上のPCからオプション機能の有効化を行うことができ、さらなるコストの削減が可能となる。
(第3実施形態)
次に、本発明の第3実施形態について図26を参照しながら説明する。図26は本発明の第3実施形態に係る画像形成装置のライセンス管理手段503の構成を示すブロック図である。
上記第2実施形態では、PC上のアプリケーションからライセンス情報が入力されるが、本実施形態では、画像形成装置100からPCに対して定期的にライセンス情報の有無を調べ、ライセンス情報が存在する場合、このライセンス情報を取り出すことにより、上記第1実施形態と同等の処理を実現する。
より具体的には、画像形成装置100には電子メールのクライアントモジュールが設けられ、かつPC303上にはメールサーバが設けられている。上記クライアントモジュールは、上記メールサーバに定期的にメールの着信を問い合わせ、メールが着信していれば、そのメールを受信してライセンス情報905を取得する。ここで、ライセンス情報905はメールの添付ファイルとして画像形成装置100宛てに送信される。
本実施形態のライセンス管理手段503は、図26に示すように、コア部2501と、POPクライアント2502と、通信I/F処理部2503と、暗号解読部2504と、秘密鍵2505とを有する。
コア部2501は、後述の処理を実行するものである。POPクライアント2502は、通信部102を介して、ネットワーク305上のアカウントを有するメールサーバを搭載されるPC303にアクセスし、電子メールを受信することを可能とするものである。ここで、メールサーバPC303に対するアカウントの設定、およびPOPクライアント2502の設定などは、一般的な方法により事前に行われているものとする。通信I/F処理部2503は、通信部102との通信を行うものである。暗号解読部2504は、上記ライセンス情報905を解読するための復号化処理を行うものである。秘密鍵2505は、暗号解読部2504での解読時に使用される秘密鍵情報である。
なお、本実施形態では、ライセンス情報の暗号化、復号化には公開鍵と秘密鍵を用いる方式を採用するが、これに限定されるものではない。また、秘密鍵2505は、上述の公開鍵903と対であることはいうまでもない。さらに、PCなどと通信し、データを受信するための処理を行う手段としては、POPクライアントに限定されるものでないことはいうまでもない。
本実施形態では、POPクライアント2502がメールに添付されたライセンス情報を受信すると、ライセンス管理手段503のコア部2501により、処理が実行される。この処理は、上記第2実施形態における図25のフローチャートで示す処理とほぼ同じであるので、異なる点のみを図25を参照しながら説明する。
すなわち、本実施形態においては、メールサーバPC303から画像形成装置100宛てに、ライセンス情報905が添付されたメールが送信される。そして、POPクライアント2502が上記メールを受信すると、このメールに添付されたライセンス情報が取り出されてRAM202またはDISK204に蓄積されることになる(ステップS2401)。そして、以降は、図25に示すフローチャートに従って処理が実行される。
このように、本実施形態では、サービスマンが画像形成装置100の設置場所まで赴くことなくネットワーク305上のPCからオプション機能の有効化を行うことができ、さらなるコストの削減が可能となる。また、使い勝手を向上させることができる。
また、本実施の形態の画像形成装置によれば、外部から、装置特定情報と装置起動時に実行すべきプログラムとして指定された1つのプログラムを特定するためのプログラム特定情報とを含むライセンス情報を取得し、取得されたライセンス情報に含まれる装置特定情報と記憶手段に記憶されている装置識別情報とが一致し、ライセンス情報に含まれるプログラム特定情報で特定されたプログラムが複数のプログラムのいずれかに該当する場合、起動プログラム識別情報を参照して、プログラム特定情報で特定されたプログラムが装置起動時に実行すべきプログラムとして設定されているか否かを判定し、プログラム特定情報で特定されたプログラムが装置起動時に実行すべきプログラムとして設定されていないと判定された場合、プログラム特定情報で特定されたプログラムを装置起動時に実行すべきプログラムとして設定するように、起動プログラム識別情報を更新するので、余分なコストを掛けることなくオプション機能を実現するプログラムを有効化することができるとともに、オプション機能の有効化に対するセキュリティを向上させることができる。
なお、本発明の目的は、前述した各実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることはいうまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはうまでもない。
以下、本発明の実施態様を列挙する。
[実施態様1] 装置固有の装置識別情報およびオプション機能をそれぞれ実現するための複数のプログラムを記憶する記憶手段と、前記複数のプログラムに対して、それぞれが装置起動時に実行すべきプログラムとして設定されているか否かを示す起動プログラム識別情報を保持するプログラム管理手段と、前記複数のプログラムに対してそれぞれ使用許可を与えるライセンス管理手段とを備える画像形成装置であって、前記ライセンス管理手段は、外部から、装置特定情報と装置起動時に実行すべきプログラムとして指定された1つのプログラムを特定するためのプログラム特定情報とを含むライセンス情報を取得するライセンス情報取得手段と、前記ライセンス情報取得手段により取得されたライセンス情報に含まれる装置特定情報と前記記憶手段に記憶されている装置識別情報とが一致し、前記ライセンス情報に含まれるプログラム特定情報で特定されたプログラムが前記複数のプログラムのいずれかに該当する場合、前記プログラム管理手段に保持されている起動プログラム識別情報を参照して、前記プログラム特定情報で特定されたプログラムが装置起動時に実行すべきプログラムとして設定されているか否かを判定する判定手段と、前記判定手段により前記プログラム特定情報で特定されたプログラムが装置起動時に実行すべきプログラムとして設定されていないと判定された場合、前記プログラム特定情報で特定されたプログラムを装置起動時に実行すべきプログラムとして設定するように、前記プログラム管理手段に保持されている起動プログラム識別情報を更新する更新手段とを有することを特徴とする画像形成装置。
[実施態様2] オペレータの操作により情報を入力することが可能な入力手段と、前記ライセンス情報を保持する外部記憶装置とを備え、前記ライセンス情報取得手段は、前記オペレータにより前記入力手段を介して所定の指示情報が入力されると、前記外部記憶装置から前記ライセンス情報を読み出して取得することを特徴とする実施態様1記載の画像形成装置。
[実施態様3] オペレータの操作により前記ライセンス情報を入力する機能および前記オペレータの操作により入力された前記ライセンス情報を送信する機能を有する外部装置と通信するための通信手段を備え、前記ライセンス情報取得手段は、前記通信手段を介して前記外部装置から送信された前記ライセンス情報を受信して取得することを特徴とする実施態様1記載の画像形成装置。
[実施態様4] 前記ライセンス情報を保持することが可能な外部装置と通信するための通信手段と、前記通信手段を介して前記外部装置に前記ライセンス情報が保持されているか否かを定期的に問い合わせる問い合わせ手段とを備え、前記問い合わせに応答して前記外部装置から前記ライセンス情報が保持されていることが通知されると、前記ライセンス情報取得手段は、前記通信手段を介して前記外部装置から前記ライセンス情報を取得することを特徴とする実施態様1記載の画像形成装置。
[実施態様5] 時刻情報を出力する時計手段を備え、前記ライセンス情報には、該ライセンス情報により特定されたプログラムの有効期限が含まれ、前記ライセンス管理手段は、前記装置起動時に実行すべきプログラムとして設定されたプログラム毎のライセンス情報を保持するライセンス情報保持手段と、前記装置起動時に実行すべきプログラムとして設定されたプログラム毎にそのライセンス情報に含まれる有効期限と前記時計手段の時刻情報とを比較することにより有効期限が過ぎているか否かを判定する有効期限判定手段と、前記有効期限判定手段の判定結果に応じて前記装置起動時に実行すべきプログラムとして設定されたプログラム毎の実行を制限する制限手段とを有することを特徴とする請求項1ないし4のいずれかの1つに記載の画像形成装置。
[実施態様6] 前記プログラム毎にそれが動作した際に使用された装置資源の使用量を集計する集計手段を備え、前記ライセンス情報には、該ライセンス情報で特定されたプログラムにより使用可能な資源の上限値が含まれ、前記ライセンス管理手段は、前記装置起動時に実行すべきプログラムとして設定されたプログラム毎のライセンス情報を保持するライセンス情報保持手段と、前記装置起動時に実行すべきプログラムとして設定されたプログラム毎にその上限値にその装置資源の使用量が到達したか否かを判定する使用量判定手段と、前記使用量判定手段の判定結果に応じて前記装置起動時に実行すべきプログラムとして設定されたプログラム毎の実行を制限する制限手段とを有することを特徴とする請求項1ないし4のいずれかの1つに記載の画像形成装置。
[実施態様7] 前記ライセンス情報は暗号化されている情報からなり、前記ライセンス管理手段は、前記ライセンス情報を解読する暗号解読手段を有することを特徴とする請求項1ないし6のいずれか1つに記載の画像形成装置。
[実施態様8] 装置固有の装置識別情報およびオプション機能をそれぞれ実現するための複数のプログラムを記憶する記憶手段と、前記複数のプログラムに対して、それぞれが装置起動時に実行すべきプログラムとして設定されているか否かを示す起動プログラム識別情報を保持するプログラム管理手段とを備える画像形成装置の制御方法であって、外部から、装置特定情報と装置起動時に実行すべきプログラムとして指定されたプログラムを特定するためのプログラム特定情報とを含むライセンス情報を取得するライセンス情報取得工程と、前記ライセンス情報取得工程により取得されたライセンス情報に含まれる装置特定情報と前記記憶手段に記憶されている装置識別情報とが一致し、前記ライセンス情報に含まれるプログラム特定情報で特定されたプログラムが前記複数のプログラムのいずれかに該当する場合、前記プログラム管理手段に保持されている起動プログラム識別情報を参照して、前記プログラム特定情報で特定されたプログラムが装置起動時に実行すべきプログラムとして設定されているか否かを判定する判定工程と、前記判定工程により前記プログラム特定情報で特定されたプログラムが装置起動時に実行すべきプログラムとして設定されていないと判定された場合、前記プログラム特定情報で特定されたプログラムを装置起動時に実行すべきプログラムとして設定するように、前記プログラム管理手段に保持されている起動プログラム識別情報を更新する更新工程とを有することを特徴とする画像形成装置の制御方法。
[実施態様9] 装置固有の装置識別情報およびオプション機能をそれぞれ実現するための複数のプログラムを記憶する記憶手段と、前記複数のプログラムに対して、それぞれが装置起動時に実行すべきプログラムとして設定されているか否かを示す起動プログラム識別情報を保持するプログラム管理手段とを備える画像形成装置の制御プログラムであって、外部から、装置特定情報と装置起動時に実行すべきプログラムとして指定された1つのプログラムを特定するためのプログラム特定情報とを含むライセンス情報を取得するライセンス情報取得ステップと、前記ライセンス情報取得ステップにより取得されたライセンス情報に含まれる装置特定情報と前記記憶手段に記憶されている装置識別情報とが一致し、前記ライセンス情報に含まれるプログラム特定情報で特定されたプログラムが前記複数のプログラムのいずれかに該当する場合、前記プログラム管理手段に保持されている起動プログラム識別情報を参照して、前記プログラム特定情報で特定されたプログラムが装置起動時に実行すべきプログラムとして設定されているか否かを判定する判定ステップと、前記判定ステップにより前記プログラム特定情報で特定されたプログラムが装置起動時に実行すべきプログラムとして設定されていないと判定された場合、前記プログラム特定情報で特定されたプログラムを装置起動時に実行すべきプログラムとして設定するように、前記プログラム管理手段に保持されている起動プログラム識別情報を更新する更新ステップとを有することを特徴とする画像形成装置の制御プログラム。
[実施態様10] 実施態様9記載のプログラムをコンピュータ読み取り可能に格納したことを特徴とする記憶媒体。
[実施態様11] 通信媒体を介して外部機器と通信可能な画像形成装置であって、
前記画像形成装置上で実行可能な機能を提供するための複数のプログラムモジュールを記憶するプログラム記憶手段と、
前記複数のプログラムモジュールの中のそれぞれのプログラムモジュール特定するプログラム識別情報を記憶するプログラム識別情報記憶手段と、
前記画像形成装置を特定する装置識別情報と前記プログラムモジュールを特定する前記プログラム識別情報とを含むライセンス情報を取得するライセンス情報取得手段と、
前記画像形成装置の起動時に、前記プログラムモジュールを実行させるプログラム制御手段とを有し、
前記プログラム制御手段は、前記ライセンス情報取得手段による前記装置識別情報と前記プログラム識別情報とで特定された前記プログラムモジュールのライセンス情報の取得に対応して、前記画像形成装置の起動時に実行される前記プログラムモジュールの起動動作を制御し、
前記ライセンス情報は、前記プログラムモジュールが前記画像形成装置上で提供する前記機能の、有効期限、印刷可能枚数、スキャン可能枚数のうちの少なくとも1つを含むことを特徴とする画像形成装置。
[実施態様12]
前記ライセンス情報取得手段は、前記ライセンス情報を記憶している前記外部機器の記憶場所を指定して、前記外部機器から前記ライセンス情報を取得し、
前記ライセンス情報は暗号化されており、前記ライセンス情報取得手段は前記暗号化されたライセンス情報を復号する復号手段を有することを特徴とする実施態様11に記載の画像形成装置。
[実施態様13]
前記プログラム識別情報は、前記プログラムモジュールを一意に識別可能なUUIDであることを特徴とする実施態様11に記載の画像形成装置。
[実施態様14]
通信媒体を介して外部機器と通信可能な画像形成装置の制御方法であって、
前記画像形成装置上で実行可能な機能を提供するための複数のプログラムモジュールを記憶するプログラム記憶手段と、
前記複数のプログラムモジュールの中のそれぞれのプログラムモジュール特定するプログラム識別情報を記憶するプログラム識別情報記憶手段と、
前記画像形成装置を特定する装置識別情報と前記プログラムモジュールを特定する前記プログラム識別情報とを含むライセンス情報を取得するライセンス情報取得工程と、
前記画像形成装置の起動時に、前記プログラムモジュールを実行するプログラム制御工程とを有し、
前記プログラム制御工程において、前記装置識別情報と前記プログラム識別情報とで特定された前記プログラムモジュールのライセンス情報の取得に対応して、前記画像形成装置の起動時に実行される前記プログラムモジュールの起動動作を制御し、
前記ライセンス情報は、前記プログラムモジュールが前記画像形成装置上で提供する前記機能の、有効期限、印刷可能枚数、スキャン可能枚数のうちの少なくとも1つを含むことを特徴とする画像形成装置の制御方法。
[実施態様15]
前記ライセンス情報取得工程において、前記ライセンス情報を記憶している前記外部機器の記憶場所を指定して、前記外部機器から前記ライセンス情報を取得し、
前記ライセンス情報は暗号化されており、前記ライセンス情報取得工程において前記暗号化されたライセンス情報を復号することを特徴とする実施態様14に記載の画像形成装置の制御方法。
[実施態様16]
前記プログラム識別情報は、前記プログラムモジュールを一意に識別可能なUUIDであることを特徴とする実施態様14に記載の画像形成装置の制御方法。
[実施態様17]
実施態様14乃至のいずれか1項に記載の画像形成装置の制御方法を実行するためのプログラムを記憶したことを特徴とするコンピュータで読み出し可能な記憶媒体。