(57)【要約】【課題】周辺装置の機能又はプログラムの使用権を適切に管理できる仕組みを提供する。【解決手段】アプリケーションＩＤや、ライセンスファイルＩＤを含むライセンスファイル（図２０）が開示される。そして、これらのＩＤを動的に管理するデータベースを導入し、ライセンスファイルＩＤやアプリケーションＩＤに基づいて、該ライセンスファイルの有効性を調べることを可能にする。【選択図】　　　図２０
2004139149.tif 000002
【特許請求の範囲】
【請求項１】
周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を管理する管理装置において、
使用権情報を識別するためのライセンス識別情報と、プログラムの使用権の変化量を示す使用権情報とを外部から取得する取得手段と、
既に組み込まれた使用権情報に対応するライセンス識別情報を管理する管理手段と、
使用権情報に対応するライセンス識別情報が前記管理手段に管理されているライセンス識別情報に含まれるか否かを判断する判断手段と、
前記使用権情報に対応するライセンス識別情報が、前記管理手段が管理するライセンス識別情報に含まれると前記判断手段が判断した場合に、前記管理手段が管理している前記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権の変化量として操作する操作手段とを有することを特徴とする管理装置。
【請求項２】
前記管理手段は、前記取得手段が取得した使用権情報の利用可能期間を示すインストール期限情報を管理するものであり、
前記使用権情報のインストール期限を監査する監査手段とを有することを特徴とする請求項１に記載の管理装置。
【請求項３】
前記管理手段は、既にインストールされたプログラムコードの暗号化鍵をプログラムの識別するためのプログラム識別情報と共に管理することを特徴とする請求項１又は２に記載の管理装置。
【請求項４】
前記使用権情報は、前記周辺装置に対応してユニークに与えられた暗号化鍵で暗号化されているものであり、
暗号化された前記使用権情報を複号する復号手段をさらに備えることを特徴とする請求項１乃至３のいずれかに記載の管理装置。
【請求項５】
前記操作手段は、前記取得手段が取得した使用権情報の変化量が使用権の増分を示している場合は、前記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権を増加させるよう操作し、前記操作手段は、前記取得手段が取得した使用権情報の変化量が使用権の減少量を示している場合は、前記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権を減少させるよう操作することを特徴とする請求項１乃至４のいずれかに記載の管理装置。
【請求項６】
前記管理手段は、証書情報として前記使用権情報を管理するものであり、
前記使用権情報は前記周辺装置に搭載されたプログラム又は機能を使用可能な量を示す使用権を保証する有価物として取り扱い可能なものであることを特徴とする請求項１乃至５のいずれかに記載の管理装置。
【請求項７】
周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を管理するための管理方法において、
使用権情報を識別するためのライセンス識別情報と、プログラムの使用権の変化量を示す使用権情報とを外部から取得する取得工程と、
既に組み込まれた使用権情報に対応するライセンス識別情報を管理する管理工程と、
使用権情報に対応するライセンス識別情報が前記管理工程に管理されているライセンス識別情報に含まれるか否かを判断する判断工程と、
前記使用権情報に対応するライセンス識別情報が、前記管理工程で管理されるライセンス識別情報に含まれると前記判断工程で判断された場合に、前記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権の変化量として操作する操作工程とを有することを特徴とする管理方法。
【請求項８】
前記管理工程は、前記取得工程が取得した使用権情報の利用可能期間を示すインストール期限情報を管理するものであり、
前記使用権情報のインストール期限を監査する監査工程とを有することを特徴とする請求項７に記載の管理方法。
【請求項９】
前記管理工程は、既にインストールされたプログラムコードの暗号化鍵をプログラムの識別するためのプログラム識別情報と共に管理することを特徴とする請求項７又は８に記載の管理方法。
【請求項１０】
前記使用権情報は、前記周辺装置に対応してユニークに与えられた暗号化鍵で暗号化されているものであり、
暗号化された前記使用権情報を複号する復号工程をさらに備えることを特徴とする請求項７乃至９のいずれかに記載の管理方法。
【請求項１１】
前記操作工程は、前記取得工程が取得した使用権情報の変化量が使用権の増分を示している場合は、前記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権を増加させるよう操作し、前記操作工程は、前記取得工程が取得した使用権情報の変化量が使用権の減少量を示している場合は、前記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権を減少させるよう操作することを特徴とする請求項７乃至１０のいずれかに記載の管理方法。
【請求項１２】
前記管理工程は、前記使用権情報は前記周辺装置に搭載されたプログラム又は機能を使用可能な量を示す使用権を保証する有価物として取り扱い可能なものであることを特徴とする請求項７乃至１１のいずれかに記載の管理方法。
【請求項１３】
周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を管理するための制御プログラムにおいて、
使用権情報を識別するためのライセンス識別情報と、プログラムの使用権の変化量を示す使用権情報とを外部から取得する取得工程と、
既に組み込まれた使用権情報に対応するライセンス識別情報を管理する管理工程と、
使用権情報に対応するライセンス識別情報が前記管理工程に管理されているライセンス識別情報に含まれるか否かを判断する判断工程と、
前記使用権情報に対応するライセンス識別情報が、前記管理手段が管理するライセンス識別情報に含まれると前記判断工程で判断された場合に、前記管理工程で管理される前記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権の変化量として操作する操作工程とをプロセッサに実行させることを特徴とする制御プログラム。
【請求項１４】
周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を生成可能な情報処理装置において、
所定の使用権情報を識別するためのライセンス識別情報を生成する手段と、
前記プログラムを識別するためのプログラム識別情報と前記使用可能量および機器の識別情報である機器識別情報を使用権情報に含ませ、前記生成手段にて生成されたライセンス識別情報を使用権情報に含ませるよう使用権情報を変更する変更手段とを有することを特徴とする情報処理装置。
【請求項１５】
前記変更手段は、使用権情報のインストール期限を使用権情報としてさらに前記使用権情報に含ませるよう使用権情報を変更することを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
前記変更手段は、プログラムコードの暗号化鍵をさらに使用権情報に含ませるよう使用権情報を変更することを有することを特徴とする請求項１４又は１５に記載の情報処理装置。
【請求項１７】
周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を生成するのに利用な情報処理方法において、
所定の使用権情報を識別するためのライセンス識別情報を生成する工程と、
前記プログラムを識別するためのプログラム識別情報と前記使用可能量および機器の識別情報である機器識別情報を使用権情報に含ませ、前記生成工程にて生成されたライセンス識別情報を使用権情報に含ませるよう使用権情報を変更する変更工程とを有することを特徴とする情報処理方法。
【請求項１８】
前記変更工程では、使用権情報のインストール期限を使用権情報としてさらに前記使用権情報に含ませるよう使用権情報を変更することを特徴とする請求項１７に記載の情報処理方法。
【請求項１９】
前記変更工程では、プログラムコードの暗号化鍵をさらに使用権情報に含ませるよう使用権情報を変更することを有することを特徴とする請求項１７又は１８に記載の情報処理方法。
【請求項２０】
周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を生成するのに利用な処理を実行する制御プログラムにおいて、
所定の使用権情報を識別するためのライセンス識別情報を生成する工程と、
前記プログラムを識別するためのプログラム識別情報と前記使用可能量および機器の識別情報である機器識別情報を使用権情報に含ませ、前記生成工程にて生成されたライセンス識別情報を使用権情報に含ませるよう使用権情報を変更する変更工程とプロセッサに実行させることを特徴とする制御プログラム。
【請求項２１】
プログラム又は機能の使用量をカウンタによって管理可能な周辺装置において、
前記周辺装置における所定の機能又はプログラムの使用可能量を取得する取得手段と、
前記取得手段が取得した使用可能量に基づき、周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を生成する手段と、
使用権情報の転送先を認識する認識手段と、
使用権情報として外部へ転送する転送手段とを有することを特徴とする周辺装置。
【請求項２２】
使用権情報を識別可能とするためのユニークなライセンス識別情報を生成する手段と、
前記生成手段により生成されたライセンス識別情報を使用権情報に含ませるよう前記使用権情報を変更する変更手段をさらに有することを特徴とする、請求項２１に記載の周辺装置。
【請求項２３】
前記変更手段は、使用権情報の有効期限を前記ライセンス情報として前記使用権情報に含ませるよう前記使用権情報を変更することを特徴とする、請求項２１又は２２に記載の周辺装置。
【請求項２４】
プログラムの暗号化鍵を取得する鍵取得手段をさらに備え、前記変更手段は、プログラムコードの暗号化鍵を使用権情報として含ませるよう前記使用権情報を変更することを特徴とする、請求項２１乃至２３のいずれかに記載の周辺装置。
【請求項２５】
プログラムを識別するためのプログラム識別情報に対応したカウンタ値とカウンタ上限値との差分からプログラム識別情報に対応したプログラムの使用権を示す値を取得する手段と、
前記値及び定義外の識別情報をライセンス情報として暗号化する暗号化手段と、
前記暗号化手段に暗号化されたライセンス情報を使用権情報として外部へ送出する送出手段と、
使用権情報を送出した分に対応する使用権の量に基づき、カウンタ値を更新する更新手段とを有することを特徴とする、請求項２１乃至２４のいずれかに記載の周辺装置。
【請求項２６】
プログラム又は機能の使用量をカウンタによって管理可能な周辺装置装置を制御可能な情報処理方法において、
前記周辺装置における所定の機能又はプログラムの使用可能量を取得する取得工程と、
前記取得工程が取得した使用可能量に基づき、周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を生成する工程と、
使用権情報の転送先を認識する認識工程と、
使用権情報として外部へ転送する転送工程とを有することを特徴とする情報処理方法。
【請求項２７】
使用権情報を識別可能とするためのユニークなライセンス識別情報を生成する工程と、
前記生成工程により生成されたライセンス識別情報を使用権情報に含ませるよう前記使用権情報を変更する変更工程をさらに有することを特徴とする、請求項２６に記載の情報処理方法。
【請求項２８】
前記変更工程は、使用権情報の有効期限を前記ライセンス情報として前記使用権情報に含ませるよう前記使用権情報を変更することを特徴とする、請求項２６又は２７に記載の情報処理方法。
【請求項２９】
プログラムの暗号化鍵を取得する鍵取得工程をさらに備え、前記変更工程は、プログラムコードの暗号化鍵を使用権情報として含ませるよう前記使用権情報を変更することを特徴とする、請求項２６乃至２８のいずれかに記載の情報処理方法。
【請求項３０】
前記周辺装置における所定のプログラムの使用可能量を取得する取得工程と、
前記取得工程取得した使用可能量に基づき、使用権情報を生成する工程と、
使用権情報の転送先を認識する認識工程と、
暗号化されたライセンス情報を使用権情報として外部へ転送する転送工程とをさらに備えることを特徴とする請求項２６乃至２９のいずれかに記載の情報処理方法。
【請求項３１】
プログラム又は機能の使用量をカウンタによって管理可能な周辺装置装置を制御する制御プログラムにおいて、
前記周辺装置における所定の機能又はプログラムの使用可能量を取得する取得工程と、
前記取得工程が取得した使用可能量に基づき、周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を生成する工程と、
使用権情報の転送先を認識する認識工程と、
使用権情報として外部へ転送する転送工程とをプロセッサに実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、周辺装置における処理を制御するプログラムが搭載された周辺装置、該周辺装置における方法、及び制御プログラムに関するものである。
【０００２】
【従来の技術】
従来、周辺装置の一例である画像形成装置の出力総数をカウントする機構としては、メカニカルな構造をもったハード・カウンタを用いることが一般的だったが、省コスト、省スペースで多数のカウンタを実現可能なソフト・カウンタが提案された。ソフト・カウンタとは、カウント値を半導体メモリに蓄えるソフト・カウンタである。従って、カウントしたい機能毎にソフト・カウンタを用意して、機能毎に正確なカウント情報を保持することが可能となった（特開２００１‐９２７７９号公報）。以下、ソフト・カウンタを単にカウンタと呼ぶ。本願発明においては、カウンタとは、例えば、周辺装置の好適な一例であるプリンタ、ファクシミリ、スキャナ、コピー、若しくはこれらの複合機内のプログラムの実行回数、これらの画像形成装置の動作回数、アプリケーションプログラムの使用時間など、各種使用量を計測・記憶することができる手段の総称として用いている。
【０００３】
一方、プリンタ機能やスキャナ機能と、これを利用するアプリケーションの組に基づいて課金を行う印刷システムが存在する（特開２００２−１１７１５７号公報）。
【０００４】
【特許文献１】
特開２００１−９２７７９号公報
【特許文献２】
特開２００２−１１７１５７号公報
【０００５】
【発明が解決しようとする課題】
上述のように、周辺装置が提供する処理を実現する各種ソフトウェアの追加・変更・削除などが容易になりつつある。また、アプリケーションごとに固定的にカウンタを設け、アプリケーションの実行回数をカウントするカウンタを備えた印刷装置が考えられつつある。
【０００６】
ここで、アプリケーションごとの、カウンタの利用方法のひとつとして、アプリケーションの使用量に応じた課金を行うことが考えられる。この場合は、アプリケーションごとのカウンタをアプリケーションの権利保有者またはサービスマンなどの代理人がカウンタ値を定期的に読み出し、これに応じてアプリケーション利用者に請求を行う必要がある。しかしこの場合は、特にアプリケーションの数が増えた場合に、管理が煩雑となり、またカウンタ値を読み出す人件費が問題となる。更に、カウンタ値を、ネットワークなどを介して自動的に読み出すシステムを構築した場合でも、高い信頼性を有するシステムを構築する必要があり、カウントの度に情報収集が必要となりネットワークに負荷がかかるという問題がある。
【０００７】
そこで、アプリケーションの使用量の上限値を使用権情報によって機器ごとに管理可能とし、予めアプリケーションの使用権情報を、例えば所定の認証局が正当なものであることを証明した証明書の形式や、後述する使用権情報やライセンスデータなどの形式で利用者に与えることが出来る手段を提供することが考え得る。
【０００８】
ここで、使用権情報の生成は、生成ツールを入手できたものは誰でも生成可能となってしまうという問題が生ずる。そこで、本発明では、アプリケーション又は周辺装置の機能の正当な使用権の権利保有者のみが正規の使用権情報を発行可能とする手段を提供することを目的の１つとする。
【０００９】
また、上述のような、有価証券・証書のような性質を持つ、機器にインストールしたアプリケーションの使用権情報を、機器の故障や交換などにより、他の機器に移動したい場合がある。さらに、一旦機器にインストールしたアプリケーションの使用権を、アプリケーションの使用中止の場合などに、アプリケーションの権利保有者に返却したい場合がある。
【００１０】
そこで、本発明は、画像形成装置内にインストールされたアプリケーションの動作可能回数を、使用権情報として装置外に取り出し可能な画像形成装置を提供することをさらに別の目的とする。さらに、本発明は、画像形成装置内にインストールされたアプリケーションの動作可能回数を、どの機器にもインストール不可能な使用権情報の形で装置外に取り出し可能な画像形成装置を提供することを別の目的とする。
【００１１】
【課題を解決するための手段】
上述の課題の少なくとも一つを解決するため、本願の実施形態においては、以下の解決手段が開示される。周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を管理する管理装置において、使用権情報を識別するためのライセンス識別情報と、プログラムの使用権の変化量を示す使用権情報とを外部から取得する取得手段と、既に組み込まれた使用権情報に対応するライセンス識別情報を管理する管理手段と、使用権情報に対応するライセンス識別情報が前記管理手段に管理されているライセンス識別情報に含まれるか否かを判断する判断手段と、前記使用権情報に対応するライセンス識別情報が、前記管理手段が管理するライセンス識別情報に含まれると前記判断手段が判断した場合に、前記管理手段が管理している前記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権の変化量として操作する操作手段とを有することを特徴とする管理装置が開示される。また、別の実施形態として、周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示す使用権情報を生成可能な情報処理装置において、所定の使用権情報を識別するためのライセンス識別情報を生成する手段と、前記プログラムを識別するためのプログラム識別情報と前記使用可能量および機器の識別情報である機器識別情報を使用権情報に含ませ、前記生成手段にて生成されたライセンス識別情報を使用権情報に含ませるよう使用権情報を変更する変更手段とを有することを特徴とする情報処理装置が開示される。また、別の実施形態として、プログラムの使用量をカウンタによって管理可能な周辺装置において、前記周辺装置における所定のプログラムの使用可能量を取得する取得手段と、前記取得手段取得した使用可能量に基づき、使用権情報を生成する手段と、使用権情報の転送先を認識する認識手段と、暗号化されたライセンス情報を使用権情報として外部へ転送する転送手段とを有することを特徴とする周辺装置が開示される。
【００１２】
【発明の実施の形態】
以下、本発明の実施形態を実施例に沿って図面に基づいて説明する。
【００１３】
（第一の実施形態）
図１は、第一の実施形態に係るシステム全体を示す構成図である。図１において、周辺装置の好適な一例である複合機１００は、スキャナ、プリンタ、コピー、ファックス機能一体型の複合機であり、ネットワークを介して外部情報処理装置の好適な一例であるネットワークサーバ１２、及び情報処理装置の好適な一例であるホストコンピュータ１１に接続されている。さらに、複合機１００は、公衆回線網を介して他の通信装置に接続されている。なお、複合機１００は図示例に限らず、デジタル複写機、コピー機能付プリンタ等でもよく、ネットワークに接続された周辺機器の数は、図示例に限られない。また、画像形成装置は、複合機１００に限らず、ファクシミリ、プリンタなどの印刷装置、スキャナ装置など、画像を形成可能な単機能の装置を含み、前記各装置に内蔵されるコントローラなどをも含む。また、カウンタは各種印刷装置のネットワークボード、例えばネットワークインタフェース部７等に取り付けられてもよい。
【００１４】
複合機１００は、主にリーダ部１、プリンタ部２、及び画像入出力制御部３で構成されている。リーダ部１は、プリンタ部２及び画像入出力制御部３に接続され、原稿の画像読み取りを行うとともに読み取った画像データをプリンタ部２又は画像入出力制御部３に出力する。プリンタ部２は、リーダ部１及び画像入出力制御部３から出力された画像データを記録紙に印刷する。画像入出力制御部３は、外部のネットワークや公衆回線網と接続し、画像データの入出力を行うと共に、ユーザが複合機１００を使用したときの使用量の蓄積等を行い、更にネットワークに接続されたホストコンピュータ１１からのジョブ（印刷命令等）の解析及び制御を行う。
【００１５】
画像入出力制御部３は、ファクシミリ部４、ファイル部５、取得手段の一例であるネットワークインタフェース部７、ＰＤＬフォーマッタ部８、及びコア部１０で構成される。ファクシミリ部４は、コア部１０及び公衆回線網に接続され、公衆回線網から受信した圧縮された画像データの伸長を行い、伸長した画像データをコア部１０へ送信する。また、コア部１０から送信された画像データを圧縮し、公衆回線を介して圧縮した画像データを公衆回線網に送信する。ファイル部５は、コア部１０及び記憶装置６に接続され、コア部１０から送信された画像データの圧縮を行い、圧縮した画像データを検索するためのキーワードと共に記憶装置６に記憶させる。本実施形態では記憶手段の好適な一例である記憶装置６にはハードディスクドライブを用いているが、もちろんこれに限定されるものではない。更に、ファイル部５は、コア部１０から送信されたキーワードに基づいて記憶装置６に記憶されている圧縮画像データを検索した後、その圧縮画像データを読み出して伸長を行い、コア部１０へ送信する。
【００１６】
ネットワークインタフェース部７は、外部のネットワークを介して接続されたホストコンピュータ１１及びネットワークサーバ１２とコア部１０間のインタフェースである。ホストコンピュータ１１（ホストコンピュータ３０００）からのジョブ制御データの受信、及び画像データ等のホストコンピュータ１１への送信には、ネットワークインタフェース部７を介して行う。ジョブ制御データとして、ＰＤＬデータと共に送信されるジョブ制御命令を含み、例えば、ＰＤＬデータを展開して画像データとして印刷した後、ステイプルソートして排紙させるものが挙げられる。ネットワークインタフェース部７にはＭＩＢ（Ｍａｎａｇｅｍｅｎｔ　Ｉｎｆｏｒｍａｔｉｏｎ　Ｂａｓｅ）と呼ばれるデータベースが構築されており、ＳＮＭＰ（Ｓｉｍｐｌｅ　Ｎｅｔｗｏｒｋ　Ｍａｎａｇｅｍｅｎｔ　Ｐｒｏｔｏｃｏｌ）を介してネットワーク上のホストコンピュータ１１と通信し、プリンタ部２の管理が可能となっている。また、ネットワークインタフェース部７は、画像形成装置上の各種機能を実現するアプリケーションのインストール要求・アンインストール要求・開始要求・停止要求等を受け付けるため、ネットワーク接続された他の機器が複合機１００内のアプリケーションの制御を行うことが可能となっている。
【００１７】
フォーマッタ部８は、コア部１０に接続され、ホストコンピュータ１１から送信されたＰＤＬデータをプリンタ部２でプリントできる画像データに展開するものである。
【００１８】
画像メモリ部９は、リーダ部１からの情報や、ネットワークインタフェース部を介しホストコンピュータ１１等から送られてきた情報を一時的に蓄積しておくためのものである。
【００１９】
記憶手段と解析手段を兼ねたユニットの好適な一例であるコア部１０は、上述したリーダ部１、ファクシミリ部４、ファイル部５、ネットワークインタフェース部７、ＰＤＬ（Ｐａｇｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ：ページ記述言語）フォーマッタ部８のそれぞれの間を流れるデータ等の制御とともにジョブ制御データの解析を行い、ユーザの使用状況・コピー枚数・印刷枚数・スキャン枚数等の情報を蓄積する。
【００２０】
ホストコンピュータ１１（情報処理装置）は、パーソナルコンピュータ又はワークステーション（ＰＣ／ＷＳ）であり、ネットワークサーバ１２は、ネットワーク全体を制御するサーバである。また、外部情報処理装置の一例である課金サーバ１３は複合機１００の課金情報を管理するためのサーバを含む。課金サーバ装置１３は、そのディスプレイに、複写機１００のカウンタによってカウントされる使用量を表示し、管理できる。なお、操作部１４は、操作パネルを含み、例えばタッチパネルを用いて実行するアプリケーション、アプリケーションに使用させる複写機の機能を選択し、入力出来る。また、アプリケーションの実行命令は、複写機１００の操作部１３からでも入力出来るが、外部情報処理装置の一例であるネットワークサーバ１２からでも実行命令を入力出来る。そして、実行されたアプリケーションの使用量は、複写機１００の後に詳しく述べるカウンタでカウントされる。
【００２１】
図２は、第一の実施形態における画像形成装置のソフトウェアモジュール階層の好適な一例を示した図である。ソフトウェアモジュールはオペレーティングシステム（ＯＳ）２０１を有している。ＯＳ２０１の上には、各種機器制御のためのコントローラモジュール２０２を有し、その上にプログラムを逐次実行するためのインタプリタモジュール２０３を有する。インタプリタモジュール２０３の上には、動的に着脱可能な複数のアプリケーション群を管理するためのアプリケーション管理モジュール２０４を有する。各種機能を実現するアプリケーション２０５は、このアプリケーション管理モジュール２０４の管理下で動作する。インタプリタモジュール２０３を介して複写機のサービスを提供するためのアプリケーションモジュールを動作させることができる。例えば、外部サーバ装置から取得したアプリケーションモジュールが画像形成装置内に組み込まれるのに応答して、アプリケーション管理モジュール２０４はアプリケーション２０５を管理対象として追加したり、画像形成装置内からアプリケーションプログラムが削除されるのに応答して、アプリケーション管理モジュール２０４はアプリケーション２０５を管理対象から外すことができる。
【００２２】
また、アプリケーション２０５のインストールやアンインストールを行うためのアプリケーションインストーラ２０６も、このアプリケーション管理モジュール２０４の上で動作させることができる。アプリケーションはプログラムの好適な一例であるが、画像形成装置と協働して各種処理をユーザに提供する。例えば、画像の加工、圧縮を行うアプリケーション、印刷制限などの部門管理を行うアプリケーションプログラム、アプリケーションの一部として組み込まれるプラグインモジュール、複写機の遠隔管理を行プログラム、複写機のフィニッシャなどのユニットを制御して製本を行わせるアプリケーション、特定の文書データの変換・解析プログラム、或いはいわゆるワープロソフトのような文書作成プログラム、スケジュール管理プログラム、表計算プログラム、データベース管理プログラム、さらにはインターネットを介したプリントサービスを実現するためのサーバプログラムなどが考え得る。
【００２３】
これらのソフトウェアはコア部１０内にあるＣＰＵ（図示省略）上で実行される。上記実施形態においてはインタプリタやＯＳを複写機内に組み込んでいる。もちろん、アプリケーション２０５が画像形成装置上で動作し、アプリケーション管理モジュール２０４が適切に動作する限り、上述のモジュール構成に限定されるものではない。
【００２４】
図３は複合機１００（複合機２７０２）にアプリケーションがインストールされる際の処理の流れを示すフローチャートを示す図である。次に、図３を利用して、ホストコンピュータ１１から複合機１００に新たなアプリケーションをインストールする場合のアプリケーションインストーラ２０６内の処理について説明する。ホストコンピュータ１１の操作画面において、指示入力手段の好適な一例であるポインティングデバイス（図示省略）によって、アプリケーションをインストールする旨の指示を入力すると図３の処理が開始される。まず、ステップＳ３０１においてホストコンピュータ１１からアプリケーション情報を受信する。アプリケーション情報は、例えば、プログラムの属性情報の好適な一例である、ベンダ名・アプリケーションＩＤ・アプリケーション名・使用メモリ・バージョン番号・最終更新日付を含む。このアプリケーション情報は、プログラムの好適な一例であるアプリケーションの使用量を管理するために用いられる。
【００２５】
ステップＳ３０１において前述したプログラムの属性情報の好適な一例であるアプリケーションＩＤを含むアプリケーション情報を受け取ると、アプリケーションインストーラ２０６は、ステップＳ３０２の処理を行う。Ｓ３０２では、アプリケーションインストーラ２０６は、既に同じアプリケーションがインストールされていないかどうかを判断する。アプリケーションインストーラ２０６は、ステップＳ３０１で受信したアプリケーション情報を取得し、既にインストールされているアプリケーションのアプリケーション情報と比較することにより、既に同じアプリケーションがインストールされているか否かを判断する。もし、アプリケーションインストーラ２０６が、ステップＳ３０２において同じアプリケーションが存在すると判断した場合は処理を終了し、同じアプリケーションが存在しないと判定された場合はステップＳ３０３へ進む。ステップＳ３０３では、判断手段の好適な一例であるアプリケーションインストーラ２０６は、変数ｎに０を代入し、ステップＳ３０４へ進む。ステップＳ３０４では、アプリケーションインストーラ２０６は、ｎ番目のアプリケーション用カウンタが使用中であるかどうか判断し、使用中でないならステップＳ３０５へ進む。ステップＳ３０５ではカウンタ番号−アプリケーションＩＤテーブルを更新してカウンタ番号ｎとアプリケーションＩＤとを対応付ける。本願においては、カウンタは、アプリケーションの使用量の一例である実行回数をカウントするカウンタを意味する。また、カウンタは、アプリケーションを立ち上げている時間の長さなどの使用時間をカウントして保持できる計測記憶手段も含む。
【００２６】
図４はカウンタ番号−アプリケーションＩＤテーブルの例を示す図である。カウンタ番号１番のカウンタがアプリケーションＩＤ１１番のアプリケーションに対応し、カウンタ番号３番のカウンタがアプリケーションＩＤ５１番のアプリケーションに対応し、その他のカウンタは未使用であることを示している。ステップＳ３０５においてテーブルの更新を行ったら次にステップＳ３０６へ進む。ステップＳ３０６では、ホストからアプリケーションプログラムのダウンロードを行って複合機１００内の記憶装置６に格納し、アプリケーションを利用できる状態にして、処理を終了する。一方、ステップＳ３０４においてカウンタｎが使用中と判定された場合は、ステップＳ３０７へ進む。ステップＳ３０７では変数ｎの値を１つ増加させ、ステップＳ３０８へ進む。ステップＳ３０８では、変数ｎの値が、複合機１００に用意されているアプリケーション別カウンタの総数Ｎよりも小さいかどうかを判定する。変数ｎの値がアプリケーション別カウンタの総数Ｎよりも小さい場合はステップＳ３０４へ戻り、そうでない場合は処理を終了する。
【００２７】
このようにしてインストールされたアプリケーションはジョブ処理を指示するコマンド群を実行することにより、リーダ部・プリンタ部等を制御することができ、種々の機能を実現することが可能となっている。
【００２８】
図５は、ジョブ処理を指示するコマンド群の一例である。ジョブ処理を指示するコマンド群は、ジョブ投入開始コマンド５０１、ジョブ属性設定コマンド５０２、ジョブデータ送信コマンド５０３、ジョブ投入完了コマンド５０４により構成される。ジョブ投入開始コマンド５０１は、コントローラにジョブ投入の開始を通知するコマンドであり、パラメータとしてモード５１１とモードに応じた付加情報５１２を含んでいる。コントローラは、ジョブ投入開始コマンド５０１の受け取りにより、ジョブ処理を行うための準備を開始する。ジョブ属性設定コマンド５０２は、ジョブの機能や状態を表す属性を設定するためのコマンドである。属性には、アプリケーションＩＤ・ジョブの名前・ジョブ種別・データ形式・用紙選択などといった情報があり、本コマンドでは複数の属性を連続して設定することができる。
【００２９】
ジョブデータ送信コマンド５０３は、画像データなどジョブ処理の対象となるデータを送信するコマンドである。ただし、ジョブの内容によっては、処理対象となるデータを必要としない場合もあるので、その場合は本コマンドを省略してもよい。ジョブ投入完了コマンド５０４は、ジョブ処理を指示するコマンド群がすべて送付されたことを示すためのコマンドである。ジョブ投入開始コマンド５０１からジョブ投入完了コマンド５０４までの一連のコマンド群が１つのジョブ処理指示として解釈される。コントローラは、ジョブ処理の指示が行われると、リーダ部１・プリンタ部２・ファイル部５等を制御し、与えられた属性により適切な処理を行い、ジョブ種別に応じて適切なカウンタ更新要求を出す。なお、ジョブ開始コマンドには、それを実行したアプリケーションのアプリケーションＩＤの情報も含まれるため、コントローラやカウンタ更新手段は、現在のジョブがどのアプリケーションから実行されたものかを判別することが可能となっている。
【００３０】
図６は、第一の実施形態においてカウンタの更新が行われる際のカウンタ更新手段における処理の流れを示すフローチャートを示す図である。図６のフローチャートを利用して、カウンタの更新が行われる際のカウンタ管理手段における処理の流れについて説明する。まず、ステップＳ６０１において、カウンタ更新要求を受け取り、ステップＳ６０２に進む。ステップＳ６０２では、更新要求元のアプリケーションＩＤを取得し、ステップＳ６０３に進む。ステップＳ６０３では変数ｎに０を代入し、ステップＳ６０４に進む。ステップＳ６０４ではテーブルを参照しｎ番のカウンタがステップＳ６０２で取得したアプリケーションＩＤのアプリケーションに割り当てられているかどうかチェックする。もし、ｎ番のカウンタがステップＳ６０２で取得したアプリケーションＩＤのアプリケーションに割り当てられていればステップＳ６０５へ進む。ステップＳ６０５では現在のジョブ種用のｎ番カウンタを更新し、ステップＳ６０６へ進む。ステップＳ６０６では総数カウント用のカウンタを更新し、処理を終了する。一方、ステップＳ６０４において、ｎ番カウンタがステップＳ６０２で取得したアプリケーションＩＤのアプリケーションに割り当てられていないと判定された場合は、ステップＳ６０７に進む。ステップＳ６０７では変数ｎがアプリケーション用カウンタの総数Ｎよりも小であるかどうかを判定する。もし、ｎ＜ＮであるならステップＳ６０８でｎの値を１つ増やしステップＳ６０４へ戻る。ステップＳ６０７においてｎ＜Ｎを満たさなかった場合はステップＳ６０６へ進み、総数カウント用カウンタだけを更新して処理を終了する。
【００３１】
図７は、複合機１００が有しているカウンタの例を示す図である。この例では、コピーカウンタ、プリントカウンタ、スキャンカウンタの３種類のカウンタがあり、そのそれぞれについてトータルカウント数を示す総数カウント用カウンタが１つとアプリケーション別カウンタがＮ個（カウンタ番号１からＮ）用意されていることを示している。コピージョブが処理される場合、１枚コピーする度にコピーカウンタがカウントアップされる。同様に、スキャンジョブでは１枚スキャンする度にスキャンカウンタがカウントアップされ、プリントジョブでは１枚プリントされる度にプリントカウンタがカウントアップされる。
【００３２】
カウンタ番号−アプリケーションＩＤテーブルの内容が図４のようになっている場合、図７（い）のカウンタがアプリケーションＩＤ１１番のアプリケーションに使用され、図７（ろ）のカウンタがアプリケーションＩＤ５１番のアプリケーションによって使用される。例えば、アプリケーションＩＤ１１番のアプリケーションがコピージョブを実行した場合、図７（は）のカウンタと総数カウント用カウンタがカウントアップされる。同様にプリントジョブを実行した場合は図７（に）のカウンタと総合カウンタが、スキャンジョブを実行した場合は図７（ほ）のカウンタと総合カウンタがカウントアップされる。また、リモートホストからプリントジョブ・スキャンジョブ・コピージョブなどが投入された場合、もしジョブの発行元のアプリケーションＩＤが既にテーブルに登録されていればアプリケーションＩＤに対応するカウンタと総数カウント用カウンタがカウントアップされる。ジョブ発行元のアプリケーションＩＤがテーブルに登録されていない場合にはそのジョブを拒否する。
【００３３】
このように、画像形成装置が提供する各機能と、各機能を利用するアプリケーションの組合わせの数だけのカウント値を管理し、また、それぞれのカウント値をアプリケーション毎、各機能ごとに合計してカウントすることが出来る。これにより、アプリケーションごとの課金はもちろんであるが、アプリケーションで画像形成装置の特定の機能を利用した処理を所定動作と呼ぶと、この所定動作ごとに、使用量をカウントすることができる。例えば、特定の画像加工アプリケーションがカウンタ番号６に対応付けられているとすると、この画像加工アプリケーションを用いて所定の画像処理、例えば電子透かしを入れ込んだむなどして、コピーを行った場合はカウンタ番号６に対応するコピー用カウンタがカウントアップされる。これにより、画像加工アプリケーションを用いてコピーを行うという所定動作の使用量を管理することが出来る。もちろん、アプリケーションとしては、画像加工アプリケーションだけではなく、ＸＭＬ文書を加工したり、所定の文書ファイルを加工するためのアプリケーションであってもよい。さらに、画像形成装置が提供する機能は、コピー、プリント、スキャンだけでなく、フィニッシング、製本、パンチ穴あけなどのいわゆる製本処理であってもよい。
【００３４】
次に、画像形成装置に既にインストールされてアプリケーションＩＤがあるカウンタに割り当てられているアプリケーションをアンインストールする際の処理について説明する。図８は複写機１００に既にインストールされているアプリケーションをアンインストールする際の処理の流れを示すフローチャートを示す図である。
【００３５】
まずステップＳ８０１において指定されたアプリケーションが動作中であるかどうかをチェックする。もし動作中であった場合は、何もせずにアンインストール処理を終了する。もし動作中でないならば安全にアンインストールすることができるので、ステップＳ８０２へ進む。ステップＳ８０２ではアンインストールするアプリケーションに関連付けられたカウンタの情報およびアプリケーション情報を課金サーバ１３に送信し、ステップＳ８０３に進む。ステップＳ８０３では送信した情報を課金サーバ１３が正しく受信できたかどうかチェックし、正しく受信されていた場合はステップＳ８０４へ進む。正しく受信されていなかった場合には実際にアンインストールを行わずに処理を終了する。ステップＳ８０４ではカウンタ番号−アプリケーションＩＤテーブルを更新し、アンインストールするアプリケーションのアプリケーションＩＤが割り当てられているカウンタを未使用の状態にする。ステップＳ８０５では、アプリケーションを記憶装置６の中から消去してアンインストールを行い、処理を終了する。
【００３６】
以上説明したように、本実施例によれば、アプリケーションのインストール時に利用されていないカウンタを動的に割り当て、カウンタアップを行う際にその処理を引き起こしたアプリケーションに対応するカウンタをカウントアップすることにより、アプリケーション毎にコピー・プリント・スキャンのカウント数を管理することが可能となっている。
【００３７】
また、アプリケーションのアンインストール時に、そのアプリケーション情報および利用していたカウンタの情報を課金サーバに保存することにより、カウント情報を損なうことなく、自由にアプリケーションのインストール・アンインストールを繰り返すことが可能となっている。
【００３８】
なお、本実施形態では、インストール時に既に同じアプリケーションがインストールされている場合、処理を終了するようになっているが、バージョン情報を判定し新しいバージョンであれば自動的にインストールするようにしても良いし、ユーザにインストール処理を継続するかどうか選択させるようにしても良い。
【００３９】
また、本実施形態では、アプリケーションインストーラ２０６は、アプリケーション管理モジュール２０４上で動作するアプリケーションの一種となっているが、コントローラ２０２に組み込まれたモジュールであってもよい。
【００４０】
また、本実施形態では、コピーカウンタ・プリントカウンタ・スキャンカウンタの３種類のカウンタを用意しているが、これに限られるものではなくカウンタの種類はいくつあっても良いし、同じ機能においても用紙サイズ等によりカウンタをより細かく区分しても構わない。
【００４１】
また、本実施形態では、カウンタ１セットにつき１つのアプリケーションを割り当てているが、グループＩＤ等を導入して、複数のアプリケーションで一つのカウンタセットを共用するようにしても良い。
【００４２】
また、本実施形態では、総数カウント用カウンタ以外のすべてのカウンタを動的に割り当てているが、画像形成装置にあらかじめ搭載されているアプリケーションについては固定的にカウンタを割り当てておいても良い。
【００４３】
また、本実施形態では、テーブルに登録されていないアプリケーションＩＤを持った外部からのジョブは拒否するようにしているが、総数カウント用カウンタのみをカウントアップするなどしてジョブを受け付けるようにしても良い。
【００４４】
（第二の実施形態）
次に、本発明にかかる画像形成装置の第二の実施形態について説明する。
【００４５】
図１は、第二の実施形態における画像形成装置の構成も示している。この図については第一の実施形態において詳細を説明したためここでは説明を省く。ただし、第二の実施形態においてホストコンピュータ１１はアプリケーションが蓄積されているファイルサーバとする。以下、第一の実施形態と特に異なる部分を示す。
【００４６】
図９は、第二の実施形態における複写機１００のソフトウェアモジュール階層の構成を示す図である。ソフトウェアモジュールはオペレーティングシステム（ＯＳ）９０１を有している。ＯＳ９０１の上には、各種機器制御のためのコントローラモジュール９０２を有し、その上にプログラムを逐次実行するためのインタプリタモジュール９０３と汎用カウンタ（後述）を制御するための汎用カウンタ制御アプリケーション・プログラム・インタフェース（以下、汎用カウンタ制御ＡＰＩ）９０４を有する。インタプリタモジュール９０３と汎用カウンタ制御ＡＰＩ９０４の上には動的に着脱可能なアプリケーション群を管理するためのアプリケーション管理モジュール９０５を有する。各種機能を実現するアプリケーション９０６は、このアプリケーション管理モジュール９０５（使用量管理手段）の管理下で動作する。アプリケーションをインストール・アンインストールするためのアプリケーションであるアプリケーションインストーラ９０７もアプリケーション管理モジュール９０５上で動作する。各アプリケーション９０６はアプリケーション管理モジュール９０５経由で汎用カウンタ制御ＡＰＩ９０４を利用することが可能である。なお、これらのソフトウェアはコア部１０内にあるＣＰＵ（図示省略）上で実行される。
【００４７】
次に図１０、並びに、図１１を利用してホストコンピュータ１１に蓄積されているアプリケーションを複合機１００にインストールする場合の、アプリケーションインストーラ９０７の処理について説明する。ホストコンピュータにはＷｅｂサーバが搭載され、所定のＵＲＬが有しているものとする。例えば、本実施形態においては、
「ｈｔｔｐ：／／ｗｗｗ．ｋａｉｓｈａ．ｃｏｍ／ａｐｐｆｉｌｅ」なるＵＲＬにアプリケーションが配置されており、複写機の操作部１４において、このＵＲＬを指定すると、ホストコンピュータ内の上記ＵＲＬに対応する記憶領域から指定したアプリケーションをダウンロードし、自動的にインストールを開始する。もちろん、操作部１４を用いる代わりに、外部のコンピュータ１２の操作画面から入力されたＵＲＬをネットワークへ送出して、ネットワークインタフェースを介して画像形成装置が受信してコア部１０に入力してもよい。
【００４８】
図１０は、第二の実施形態におけるアプリケーションインストーラのインストール時の画面の例を示す図である。この画面は、アプリケーションインストーラ９０７のメイン画面（図示省略）においてインストールを指定した場合に、複合機１００の操作部１４上に表示される。具体的には、テキストフィールド１００１にインストールしたいアプリケーション情報が保存されているホストコンピュータ１１を示すＵＲＬを入力し、１００２のＯＫボタンを押されるのに応答して、アプリケーションインストーラは、ホストコンピュータ１１からアプリケーションのダウンロードを開始し、インストール処理を行う。図１０の画面でキャンセルボタンを押すことでアプリケーションインストーラメイン画面（図示省略）に戻る。
【００４９】
図１１は、ＯＫボタン１００２が押されてからの処理の流れを示すフローチャートを示す図である。図１２は、第二の実施形態におけるカウンタ番号−アプリケーションＩＤテーブルの例でを示す図である。また、図１３は、第二の実施形態におけるアプリケーションインストール時のカウント単位警告ダイアログ画面の例を示す図である。以下、図１１乃至図１３を用いて、図１１に示すフローチャートを説明する。
【００５０】
ＯＫボタン１００２が押下されると、まず、アプリケーションインストーラ９０７は、ステップＳ１１０１においてテキストフィールド１００１で指定された場所にあるアプリケーションの情報を取得する。アプリケーション情報を構成する要素の例を図１４に示す。
【００５１】
図１４は第二の実施形態におけるアプリケーション情報の構成例を示す図である。ここではアプリケーション情報の一例として、ベンダ名、アプリケーションの識別子であるアプリケーションＩＤとアプリケーション名、バージョン、最終更新日付、使用カウンタ数、カウンタ種別、カウントアップ単位、使用メモリ、プログラムの入手先を示すアーカイブファイルＵＲＬが記載されている。
【００５２】
図１１に説明を戻す。ステップＳ１１０１において、アプリケーションインストーラ９０７は、プログラムの属性情報の好適な一例であるアプリケーション情報を取得することが出来れば、ステップＳ１１０２へ進む。もしアプリケーション情報を取得できなかったならば、処理を終了する。本願発明の認識手段の好適な一例であるアプリケーションインストーラ９０７は、ステップＳ１１０２では、アプリケーション情報を取得するのに応答して、アプリケーション情報で指定されている種別のカウンタで未使用のものを判断して認識する処理を行う。もし未使用のカウンタ番号、つまり、新たに追加された、例えば外部のホストコンピュータ１１などから複写機１００のネットワークインタフェース部（入力部）を介して入力されたプログラムの、使用量を管理することができるカウンタを認識できなければ処理を終了する。
【００５３】
一方、Ｓ１１０２で、アプリケーション情報に記述されているすべての種別について未使用カウンタを認識できれば、ステップＳ１１０３へ進む。ステップＳ１１０３ではアプリケーション情報に基づいて、カウントアップ単位についての確認ダイアログ（図１３）を操作部に表示する。例えば、アプリケーション名とこれを一度起動した場合にカウントアップされる使用料金などを表示する。次にステップＳ１１０４に進み、ダイアログ（図１３）上でどちらのボタンが押されたかを判断する。もし、中止ボタン１３０１が押されたと判断されたら処理を終了し、続行ボタン１３０２が押されたと判断されたらステップＳ１１０５に進む。ステップＳ１１０５ではアプリケーション情報に記述されているアーカイブファイルＵＲＬの情報をもとに、プログラムの本体のダウンロードを試みる。ステップＳ１１０５においてダウンロードに失敗したら処理を必要に応じてエラー表示を行い処理を終了する。一方、ダウンロードが成功したらステップＳ１１０６に進む。ステップＳ１１０６では、アプリケーションインストーラ（カウンタ管理手段）は、ステップＳ１１０５でダウンロードしたプログラムを記憶装置６に格納し、プログラムを利用できる状態にして、ステップＳ１１０７に進む。ステップＳ１１０７では、アプリケーションインストーラは、Ｓ１１０２で認識したカウンタ番号とアプリケーション情報に含まれるアプリケーションＩＤのペアを、カウンタ番号−アプリケーションＩＤテーブルに追加記憶して更新し、アプリケーション管理モジュール２０４が必要に応じてアプリケーションインストーラを認識したカウンタの使用量などを初期化し、終了する。なお、未使用カウンタが認識できない、即ち、アプリケーションインストーラは、カウンタが足りない場合には、新規アプリケーションに対応させるためのカウンタを新たに作成し、初期化して用いてもよい。
【００５４】
なお、図１３において、アプリケーション表示部に追加するアプリケーション名を表示し、このアプリケーションが複写機１００の提供する機能である、スキャン機能、コピー機能を利用した場合のカウントアップ情報（例えば、課金情報）をカウントアップ情報表示部１３０４に表示するので、ユーザは、このアプリケーションの実行に際して、機能を利用させるかに応じたカウントアップ情報を確認した上でアプリケーションをインストールすることが出来る。
【００５５】
図１２は第二の実施形態におけるカウンタ番号−アプリケーションＩＤテーブルの例であり、それぞれのカウンタに付与されるカウンタ番号と、アプリケーションの識別子の好適な一例であるアプリケーションＩＤ（アプリＩＤ）とを対応付けたテーブルが、モノクロプリンタ機能、カラープリンタ機能、モノクロコピー機能、カラーコピー機能、スキャナ機能毎に用意されている様子を示している。なお、画像形成装置が提供する機能はこれらに限定されるものではなく、例えば、ステイプル機能、製本機能など、フィニッシングに関する機能も含み、画像形成装置が提供する機能であって、各機能の使用量（例えば、使用回数、使用時間）を認識できるものであればどのようなものであってもの適用可能である。ここで、０ｘＦＦＦＦＦＦＦＦは、カウンタが使用されていない状態であることを示すコードである。この例では、図１４のアプリケーション情報を持つアプリケーションが一つだけ画像形成装置にインストールされている状況を示しており、カウンタ番号１のスキャンカウンタとカウンタ番号１の汎用カウンタが、アプリケーションＩＤが１１であるアプリケーションに割り当てられ、その他のカウンタは未使用であることを示している。このようなテーブルを持つことにより、特定のアプリケーションが画像形成装置の機能を利用して所定の動作（例えばスキャン機能の動作、コピー機能の動作、プリント機能の動作、フィニッシング機能の動作など）を引き起こした際に、上記テーブルによって定められたカウンタ番号を有するカウンタをカウントアップさせて、アプリケーション毎の使用量を管理することが出来る。
【００５６】
このように、複写機１００には、カウンタを用いて前記プログラムごとに使用量を管理するアプリケーション管理モジュール２０４が備えられている。そして、アプリケーションインストーラ２０６は、複写機１００に前記アプリケーションの属性を示す情報が入力されるのに応答して、追加されるプログラムの識別情報の一例であるアプリケーションＩＤに対応するアプリケーションの使用量を管理することができるカウンタを認識する。
【００５７】
そして、アプリケーション管理モジュールは、前記追加されたプログラムを、アプリケーションインストーラ２０６が認識したカウンタに対応づけて前記カウンタを管理する。
【００５８】
ここで、プログラムを識別するための情報とは、そのプログラムを識別できるすべての情報を含む。例えば、アプリケーションプログラムであれば、アプリケーションＩＤ，アプリケーション名、が考えられるが、ファイルの形で提供されるアプリケーションプログラムのモジュールそれ自体は、アプリケーションが格納されたモジュール名・ファイル名などを含む。もちろん、これらのファイル名・モジュール名なども当然プログラムの識別情報の範疇に含まれる。従って、アプリケーション情報と一体となったプログラムモジュール自体を、先に画像形成装置内にネットワークインターフェースを介して入力し、画像形成装置内の記憶装置に記憶するのに応答して、当該プログラムモジュールにカウンタを対応付けるか否かを判断することも考え得る。
【００５９】
インストールされたアプリケーションは、第一の実施形態と同様に、ジョブ処理を指示するコマンド群（図５）を実行することにより、リーダ部１・プリンタ部２、フィニッシャ部１５等を制御することができ、種々の複写機の提供する機能を実現することが可能となっている。詳細は第一の実施形態において説明したため、ここでは省略する。
【００６０】
図１５は、第二の実施形態において、アプリケーション管理モジュールにおける、カウントアップが行われる際のカウンタ更新手段における処理の流れを示すフローチャートを示す図である。以下、図１５のフローチャートを利用して各カウンタにカウントアップ要求がきた際の処理について説明する。まず、アプリケーション管理モジュールは、ステップＳ１５０１において、例えばコア部からカウントアップ要求を受け取り、ステップＳ１５０２に進む。ステップＳ１５０２では、更新要求元のアプリケーションＩＤを取得し、ステップＳ１５０３に進む。ステップＳ１５０３では変数ｎに０を代入し、ステップＳ１５０４に進む。ステップＳ１５０４ではテーブルを参照し、ｎ番のカウンタがステップＳ１５０２で取得したアプリケーションＩＤのアプリケーションに割り当てられているかどうかをチェックする。もし、ｎ番のカウンタがステップＳ１５０２で取得したアプリケーションＩＤのアプリケーションに割り当てられていればステップＳ１５０５へ進む。
【００６１】
ステップＳ１５０５では、アプリケーション管理手段は、アプリケーション情報から現在のジョブ種別におけるカウントアップ単位を取得する。つぎにステップＳ１５０６に進み、ｎ番のカウンタをステップＳ１５０５で取得した単位でカウントアップし、ステップＳ１５０９へ進む。ステップＳ１５０９では，アプリケーション管理手段は、総数カウント用のカウンタをアプリケーション情報で指定されている単位でカウントアップし、処理を終了する。一方、ステップＳ１５０４において、アプリケーション管理手段は、ｎ番カウンタがステップＳ１５０２で取得したアプリケーションＩＤのアプリケーションに割り当てられていないと判定した場合は、ステップＳ１５０７に進む。ステップＳ１５０７では変数ｎがアプリケーション用カウンタの総数Ｎよりも小であるかどうかを判定する。もし、ｎ＜ＮであるならステップＳ１５０８でｎの値を１つ増やしステップＳ１５０４へ戻る。ステップＳ１５０７においてｎ＜Ｎを満たさなかった場合はステップＳ１５０９へ進み、総数カウント用カウンタだけをアプリケーション情報で指定されている単位でカウントアップして処理を終了する。
【００６２】
図１６は、第二の実施形態における複写機が有しているカウンタの例を示す図である。この例では、コピーカウンタ（モノクロ）、スキャンカウンタ、プリントカウンタ（モノクロ）、カラーコピーカウンタ、カラープリントカウンタ、汎用カウンタの６種類のカウンタがあり、そのそれぞれについてトータルカウント数を示す総数カウント用カウンタが１つとアプリケーション別カウンタがＮ個（カウンタ番号１からＮ）用意されている。モノクロコピージョブが処理される場合、１枚コピーする度にコピーカウンタがカウントアップされる。なおこの時のカウンタの増分はアプリケーション情報の中で定義された分だけ増やされる。同様に、スキャンカウンタ、プリントカウンタ、カラーコピーカウンタ、カラープリントカウンタは、それぞれスキャンジョブ、モノクロプリントジョブ、カラーコピージョブ、カラープリントジョブが実行されたときに所定動作毎にコントローラによって自動的にカウントアップされる。汎用カウンタについては、アプリケーションが汎用カウンタ制御ＡＰＩを通じて指示を出すことにより、アプリケーションの都合の良いタイミングでカウントアップすることができる。
【００６３】
例えば、図１４の状況で、アプリケーションＩＤが１１のアプリケーションによりスキャンジョブが実行された場合、１枚スキャンする毎に図１６（い）のカウンタが１０ずつ増加していく。また、アプリケーションＩＤが１１のアプリケーションがジョブを発行するたびに汎用カウンタＡＰＩをコールすれば、アプリケーションＩＤが１１のアプリケーションがジョブを発行するたびに図１６（ろ）のカウンタが１ずつ増加することになる。
【００６４】
図１７は、第二の実施形態において、複写機にインストールされているアプリケーションをアンインストールする際の処理の流れを示すフローチャートを示す図である。以下、画像形成装置にインストールされているアプリケーションをアンインストールする際の処理について図１７のフローチャートを用いて説明する。アプリケーションインストーラ２０３は、まずステップＳ１７０１において指定されたアプリケーションが動作中であるかどうかをチェックする。もし動作中であった場合は、何もせずにアンインストール処理を終了する。もし動作中でないならば安全にアンインストールすることができるので、ステップＳ１７０２へ進む。アプリケーションインストーラ２０３（認識手段）は、ステップＳ１７０２ではアンインストールするアプリケーションに関連付けられたカウンタの情報およびアプリケーション情報を、カウンタ番号−アプリケーションＩＤテーブルを検索して認識し、画像形成装置内に備えられた不揮発メモリに保存し、ステップＳ１７０３に進む。
【００６５】
ステップＳ１７０３では不揮発メモリに正しく保存されたかどうかをチェックし、正しく保存できていればステップＳ１７０４へ進む。正しく保存できなかった場合には、実際にアンインストールを行わずに処理を終了する。アプリケーション管理モジュール２０４（カウンタ管理手段）は、ステップＳ１７０４ではカウンタ番号−アプリケーションＩＤテーブルを更新し、アンインストールするアプリケーションのアプリケーションＩＤが割り当てられているカウンタを解放して、未使用の状態にする。次にステップＳ１７０５でアプリケーションを記憶装置６の中から消去してアンインストールを行い、処理を終了する。
【００６６】
以上説明したように、本実施例によれば、アプリケーションインストール時にカウントアップ情報の警告ダイアログを出すことにより、ユーザは所定動作１回につきのカウントアップ単位を納得した上でアプリケーションをインストールすることが可能になる。また、汎用カウンタをアプリケーションから利用可能にすることによって、アプリケーション毎の使用回数や処理量などを管理することも可能になる。
【００６７】
また、アプリケーションのアンインストール時に、そのアプリケーション情報および利用していたカウンタの情報を機器内のメモリに保存することにより、カウント情報を損なうことなく、自由にアプリケーションのインストール・アンインストールを繰り返すことが可能となる。
【００６８】
アプリケーション毎、機能毎に設定されたカウンタの上限値により、アプリケーションの所定動作を制限する実施例を、図１８と図１９を使用して説明する。
【００６９】
図１８は、第一の実施形態においてカウンタの更新が行われる際のカウンタ更新手段とカウンタ上限管理手段における処理の流れを示すフローチャートを示す図である。尚、図１８は図６で示したカウンタ更新手段に上限管理手段を追加したものとなっている。図１８のフローチャートを利用して、カウンタの更新が行われる際のカウンタ管理手段とカウンタ上限値管理手段における処理の流れについて説明する。
【００７０】
まず、ステップＳ１８０１において、図１のコア部１０からカウンタ更新要求を受け取り、ステップＳ１８０２に進む。ステップＳ１８０２では、更新要求元のアプリケーションＩＤを取得し、ステップＳ１８０３に進む。ステップＳ１８０３では変数ｎに０を代入し、ステップＳ１８０４に進む。ステップＳ１８０４ではテーブルを参照しｎ番のカウンタがステップＳ１８０２で取得したアプリケーションＩＤのアプリケーションに割り当てられているかどうか検査する。もし、ｎ番のカウンタがステップＳ１８０２で取得したアプリケーションＩＤのアプリケーションに割り当てられていればステップＳ１８０５へ進む。ステップＳ１８０５では現在のジョブ種用のｎ番カウンタを更新し、ステップＳ１８０９へ進む。一方、ステップＳ１８０４において、ｎ番カウンタがステップＳ１８０２で取得したアプリケーションＩＤのアプリケーションに割り当てられていないと判定された場合は、ステップＳ１８０７に進む。ステップＳ１８０７では変数ｎがアプリケーション用カウンタの総数Ｎよりも小であるかどうかを判定する。もし、ｎ＜ＮであるならステップＳ１８０８でｎの値を１つ増やしステップＳ１８０４へ戻る。ステップＳ１８０７においてｎ＜Ｎを満たさなかった場合はステップＳ１８０６へ進み、ステップＳ１８０６において総数カウント用カウンタだけを更新して処理を終了する。
【００７１】
ステップＳ１８０９では、図１９で示されるカウンタ上限値表の現在のジョブ種用のｎ番上限値を参照し、ステップＳ１８０５で更新されたカウンタ値と比較する。比較した結果、カウンタ値が上限値を超えていない場合は、ステップＳ１８０６で総数カウンタを更新して処理を終了する。カウンタ値が上限値を超えている場合は、ステップＳ１８１０において図１のコア部１０に対してジョブの強制終了を指示し、ステップＳ１８１０に進む。ステップＳ１８１１では、ステップＳ１８０２で取得したアプリケーションＩＤに対応するジョブを発行したアプリケーション（図２の２０５）に対して、ジョブが強制終了されたことを表すイベントを送付することにより通知し、ステップＳ１８０５において総数カウンタを更新して処理を終了する。
【００７２】
本実施例ではステップＳ１８１０において、ジョブを強制終了しているが、他の実施例としてはジョブを強制終了することなく、単にステップジョブを発行したアプリケーションに対して、カウンタが上限値を超えたことを表すイベントを送付することにより通知するなど、アプリケーションが所定動作を引き起こすようにしても良い。所定動作として、通知を受けたアプリケーションは、それ以降の新規ジョブを発行しないか、あるいは、ユーザに対して、警告の報知、例えば、実行対象となったアプリケーションの使用権が不足している旨の表示、該アプリケーションについての新たに使用権情報の好適な一例であるライセンスファイルのインストールを促すダイアログ画面を複合機１００の操作部１４に表示、またはこれらの内容をコンピュータに備えられたスピーカ（図示省略）の音声で通知するなどの処理を行うことができるし、同様にダイアログ画面を表示するための表示情報をホストコンピュータやネットワークサーバに送信して、ネットワークサーバ又はホストコンピュータの表示画面に表示するようにしてもよい。
【００７３】
図１９は、複合機１００が有しているカウンタ上限値管理表の例を示す図である。この例では、コピーカウンタ、プリントカウンタ、スキャンカウンタの３種類のカウンタ上限値があり、そのそれぞれについてアプリケーション別カウンタがＮ個（カウンタ番号１からＮ）用意されていることを示している。
【００７４】
カウンタ番号−アプリケーションＩＤテーブルの内容が図４のようになっている場合、図１９（い）の上限値がアプリケーションＩＤ１１番のアプリケーションに参照され、図１９（ろ）の上限値がアプリケーションＩＤ５１番のアプリケーションによって参照される。例えば、アプリケーションＩＤ１１番のアプリケーションがコピージョブを実行した場合、図１９（は）の上限値が参照される。同様にプリントジョブを実行した場合は図１９（に）の上限値が、スキャンジョブを実行した場合は図７（ほ）の上限値が参照される。また、リモートホストからプリントジョブ・スキャンジョブ・コピージョブなどが投入された場合、もしジョブの発行元のアプリケーションＩＤが既にテーブルに登録されていればアプリケーションＩＤに対応する上限値が参照される。図７の説明で示したように、ジョブ発行元のアプリケーションＩＤがテーブルに登録されていない場合にはそのジョブを拒否されることになっているため、この場合の上限は登録する必要がない。例えば、画像から文字情報を認識し、抽出してＡＳＣＩＩコードなどコード化されたテキスト情報を含むデータを出力するＯＣＲアプリケーションと、ＯＣＲアプリケーションと関連付けられたスキャナ機能の組を考えることが出来る。複合機の機能と、この機能に付加価値を付けることのできるアプリケーションの組合せに基づき、使用量の制限や把握、課金などができる。つまり、アプリケーション管理モジュール９０５は、ＯＣＲアプリケーションのプログラムと、複写機１００のスキャナ機能との組合せにおいて複合機１００を利用できないよう上限値が設定されている場合に、ＡＰＩを介してコントローラを制御し、複合機１００の機能を制限するのである。他に、アプリケーションプログラムと複合機１００の機能の組合わせの例としては、高度な画像処理アプリケーションとプリンタ機能、画像処理アプリケーションとスキャナ機能、表計算や文書作成のためのオフィスアプリケーションとプリンタ、ファクシミリ、スキャナなどの組合せが考えられる。
【００７５】
このように、画像形成装置が提供する各機能と、各機能を利用するアプリケーションの組合わせの数だけのカウント値および上限値を管理し、また、それぞれのカウント値をアプリケーション毎、各機能ごとに合計してカウントし同時に上限値を管理することが出来る。これにより、アプリケーションの所定動作ごとに、使用量をカウントおよび上限値を管理することができる。
【００７６】
例えば、コピーアプリケーションがカウンタ番号６に対応付けられているとすると、このコピーアプリケーションの使用により、カウンタ番号６に対応するコピー用カウンタがカウントアップされ、カウンタ番号６に対応するコピー用上限値によって制限される。上限値の設定が、所定のライセンス管理機構により行われる場合、アプリケーションの使用可能回数をライセンスによって付与することが可能となり、アプリケーションの使用回数に応じた事前課金を行うことが可能となる。尚、画像形成装置が提供する機能は、コピー、プリント、スキャンだけでなく、ファックス送信・受信や、フィニッシング、製本、パンチ穴あけなどのいわゆる製本処理であってもよい。つまり、どのアプリケーションがどの機能を用いるかによって、つまり、所定のアプリケーションと、該アプリケーションによって操作される機能の組ごとに上限値を設けることができる。これにより、該アプリケーションによって所定の機能を制御することを制限したり、またアプリケーションがこれらの機能を制御することに基づいて発行されるジョブの出力を制限したり、強制的に消去したりすることが出来るのである。
【００７７】
図２０は、ライセンスファイルの内容を示している。ライセンスファイルは図２１の処理により、アプリケーション所有権者のホストコンピュータ（図示は省略するが、図２７のＰＣ２７０１同様のハードウェア構成である。）によって生成される。図２０において、ＬｉｃｅｎｓｅＦｉｌｅＩＤ属性（ライセンスファイルＩＤ属性）は図２１の処理により自動付与されるものであり、同じライセンスファイルが２つ以上存在しないように、各ライセンスファイル毎に別々の値が設定されるものである。
【００７８】
ＤｅｖｉｃｅＳｅｒｉａｌＮｏ属性は、当ライセンスファイルがインストール可能な複合機のシリアル番号を表している。シリアル番号はカンマで区切って、複数表すことが可能である。ＥｘｐｉｒａｔｉｏｎＤａｔｅ属性は、当ライセンスファイルのインストール期限を表している。ＡｐｐｌｉｃａｔｉｏｎＩＤ属性は、当ライセンスファイルにより使用権が与えられるアプリケーションのアプリケーションＩＤを表している。
【００７９】
ＶａｌｉｄａｔｅｄＰｅｒｉｏｄ属性は、当ライセンスファイルにより付与される、アプリケーションの使用可能期間の日数を表している。
ＡｐｐｌｉｃａｔｉｏｎＫｅｙ属性は、当ライセンスファイルにより使用権が与えら得るアプリケーションに対して正当な所有権をもつことを証明するためのものである。アプリケーションのコードはこの値によって暗号化されており、暗号の複合に成功するとインストールが完了する。インストールが完了した場合、復号に使用した鍵は図２４で示されるデータ構造により機器内に保持され、ライセンスファイルの正当性の検証に使用される。
【００８０】
ＭａｘＣｏｐｙ属性は、当ライセンスファイルにより使用権が与えられるアプリケーションにおけるコピー動作の最大回数を表している。ここで指定されている値は、図２２に示される処理により機器内のカウンタ上限値管理表（図１９）の該当する項目に設定される。この他に、プリント動作の最大回数を表すＭａｘＰｒｉｎｔ属性およびスキャン動作の最大回数を表すＭａｘＳｃａｎ属性がライセンスファイル内に設定可能である。
【００８１】
ＡｄｄｉｔｉｏｎａｌＰｒｉｎｔ属性は、当ライセンスファイルにより使用権が与えられるアプリケーションにおけるプリント動作の、動作可能回数の現在値からの増分を表している。ここで指定されている値は、図２２に示される処理により機器内のカウンタ上限値管理表（図１９）の該当する上限値に対して加算される。ＡｄｄｉｔｉｎｏａｌＳｃａｎ属性は、当ライセンスファイルにより使用権が与えられるアプリケーションにおけるスキャン動作の、動作可能回数の現在値からの増分を表している。
【００８２】
ライセンスファイルにはその他のジョブ種に関わる最大動作可能回数または動作可能回数の増分が含まれている。この他に、コピー動作の動作可能回数の現在地からの増分を表すＡｄｄｉｔｉｏｎａｌＣｏｐｙ属性がライセンスファイル内に設定可能である。
【００８３】
図２１は、アプリケーション所有権者のホストコンピュータによってライセンスファイルを生成する処理を示す図である。
【００８４】
ステップＳ２１０１において、ライセンス情報を入力する。入力するライセンス情報は、図２０におけるＬｉｃｅｎｓｅＦｉｌｅＩＤ属性を除く全てのものである。入力方法としては、あらかじめライセンス情報を含むテキストファイルを用意しておき、ファイルから入力する方法や、コマンドラインのオプション設定により指定する方法などがある。
【００８５】
ステップＳ２１０２では、ライセンスファイルＩＤ属性を生成する。生成されるライセンスファイルが全て異なるライセンスファイルＩＤ属性を有するようにするために、このＩＤはいわゆるＵＵＩＤ（Ｕｎｉｖｅｒｓａｌ　ＵｎｉｑｕｅＩＤ）を使用する。ＵＵＩＤは１２８ビットのデータ長を有し、生成に使用したホストコンピュータが有するネットワークの物理アドレス（ＭＡＣアドレス）３２ビットと、９６ビットで表される時間の２つの情報を元に生成する方法などが考えられる。他にもＣＲＣツールを用いて唯一性のある識別番号を生成し、一元管理することで、これを用いてもよい。
【００８６】
ステップＳ２１０３では、Ｓ２１０１で入力されたライセンス情報とＳ２１０２で生成されたライセンスファイルＩＤ属性とをあわせて暗号化する。暗号化は、複合機１００が有する秘密鍵に対応する公開鍵を使用したＲＳＡ方式などの公開鍵暗号方式により行う。別の実施例としては、複合機１００が有する秘密鍵を使用したＤＥＳなどの共通鍵暗号方式により暗号化を行っても良い。
【００８７】
ステップＳ２１０４では、暗号化したライセンス情報をライセンスファイルとして生成し、ファイルシステムに保存して終了する。以上の処理により生成されたライセンスファイルは、前述の通り複合機１００に装備されたＷｅｂサーバー機能または電子メール機能などによりインストール可能である。
【００８８】
図２２は、複合機１００にインストールされたライセンスファイルを処理し、図１９のカウンタ上限値管理表に上限値を設定するための処理を示す図である。図２２は、複合機１００の上で動作する処理である。ステップＳ２２０１において、インストールされたライセンスファイルを復号化する。復号化は複合機１００が有する秘密鍵により、公開鍵暗号方式によって行われる。別の実施例としては、複合機１００が有する秘密鍵を用いて共通鍵暗号方式により、行っても良い。
【００８９】
復号化されたライセンスファイルの内容を、ステップＳ２２０２においてインストール期限を検査する。インストール期限の検査は、図２０のライセンスファイル内のＥｘｐｉｒａｔｉｏｎＤａｔｅ属性の値を現在の日付と比較することにより行い、現在の日付がＥｘｐｉｒａｔｉｏｎＤａｔｅ属性より後の場合は、インストールをせずに処理を終了する。
【００９０】
次にステップＳ２２０３において、複合機のシリアル番号の検査を行う。シリアル番号の検査は、図２０のライセンスファイル内のＤｅｖｉｃｅＳｅｒｉａｌＮｏ属性の値と複合機１００の有するシリアル番号を比較することにより行う。ＤｅｖｉｃｅＳｅｒｉａｌＮｏ属性の中に複合機１００の有するシリアル番号が含まれていない場合は、インストールをせずに処理を終了する。
【００９１】
次にステップＳ２２０４において、既に同じライセンスファイルがインストール済みで無いかどうかを検査する。この検査は、図２０のライセンスファイル内のＬｉｃｅｎｓｅＦｉｌｅＩＤ属性の値と複合機１００で保持されているインストール済みのＬｉｃｅｎｓｅＦｉｌｅＩＤ属性を比較することにより行う。インストール済みのＬｉｃｅｎｓｅＦｉｌｅＩＤ属性は複合機１００の中で、図２３に示されるライセンスファイルＩＤ表として保持されている。ライセンスファイル内のＬｉｃｅｎｓｅＦｉｌｅＩＤの値がこの表の２３０１に存在する場合は、既にインストール済みであるとして、インストールをせずに処理を終了する。
【００９２】
同じライセンスファイルの２回以上のインストールを許可すると同じライセンスファイルを複数回インストールすることが可能となってしまい、ＶａｌｉｄａｔｅｄＰｅｒｉｏｄ属性で示されるアプリケーションの使用可能期間の延長日数や、ＡｄｄｉｔｉｏｎａｌＰｒｉｎｔ属性で示されるプリント動作の動作可能回数の増分について、ライセンス使用者がいくらでも増やすことが可能となってしまう。ステップＳ２２０４はこれを阻止するための処理である。
【００９３】
次にステップＳ２２０５において、ライセンスファイルの正当性を検査する。この検査は、図２０のライセンスファイル内のＡｐｐｌｉｃａｔｉｏｎＫｅｙ属性の値と、アプリケーションが正常にインストールされたときに保持される復号鍵とを比較して行う。インストール済みのアプリケーション鍵は複合機１００の中で、図２４に示されるアプリケーション鍵表として保持される。この表内の２４０１の列に、図２０のライセンスファイル内のＡｐｐｌｉｃａｔｉｏｎＩＤ属性の値が無い場合、またはあった場合にそれに該当するアプリケーション鍵２４０２が、ライセンスファイル内のＡｐｐｌｉｃａｔｉｏｎＫｅｙ属性の値と一致しない場合は、ライセンスは正当でないものとしてインストールをせずに処理を終了する。
【００９４】
次にステップＳ２２０６において、有効期限を設定する。有効期限の設定は、図２４に示されるアプリケーション鍵表において、ライセンスファイル内のＡｐｐｌｉｃａｔｉｏｎＩＤ属性の一致する列の該当する「期限」の項目（２４０３）の値を、ライセンスファイル内のＶａｌｉｄａｔｅｄＰｅｒｉｏｄ属性の値で書き換えることにより行う。この書き換えは、既に期限が設定されている場合は、現在の設定日付を読み出しＶａｌｉｄａｔｅｄＰｅｒｉｏｄ属性に設定されている値を足して得られた新たな日付を設定することにより行う。既に期限が設定されていない場合は、現在の日付にＶａｌｉｄａｔｅｄＰｅｒｉｏｄ属性に設定されている値を足して得られた日付を設定する。
【００９５】
次にステップＳ２２０８において、ＡｐｐｌｉｃａｔｉｏｎＩＤに対応する上限値を設定するためのカウンタ番号を特定する。カウンタ番号の特定は、図４のカウンタ番号―アプリケーションＩＤテーブルを使用して図６におけるステップＳ６０３、Ｓ６０４，Ｓ６０７，Ｓ６０８と同じ処理により行う。次に図１９のカウンタ上限値管理表に対して特定されたカウンタ番号に該当する行について、図２０のライセンスファイル内のＭａｘＣｏｐｙ属性、ＡｄｄｉｔｉｏｎａｌＰｒｉｎｔ属性、ＡｄｄｉｔｉｎｏａｌＳｃａｎ属性の値を設定する。設定する属性がＭａｘＣｏｐｙ属性の様に上限値（最大回数）設定属性の場合は、属性に設定されている値をそのまま上限値として設定する。ＡｄｄｉｔｉｏｎａｌＰｒｉｎｔ属性やＡｄｄｉｔｉｎｏａｌＳｃａｎ属性の様に増分設定の属性の場合は、現在上限値として設定されている値を取得し、属性に設定されている値を加算して得られた値を、新たな上限値として設定する。
【００９６】
最後に、ステップＳ２２０９において、ライセンスファイルＩＤ属性の値をライセンスファイルの期限と共に、図２３で示されるライセンスファイルＩＤ表に記録して処理を終了する。ライセンスファイルＩＤと期限の記録は、ライセンスファイルＩＤ表に新たなレコードを追加して行う。
【００９７】
このように、周辺装置の好適な一例である複合機において実行可能なプログラム又は該周辺装置の機能の一例であるプリント機能、スキャナ機能などを使用可能な使用量を示す使用権情報を管理する複写機において、使用権情報の一例であるライセンスファイルを識別するためのライセンス識別情報（ライセンスファイルＩＤ）と、プログラムの使用権の変化量を示すライセンスファイルとを外部から取得ネットワークインタフェースを介して取得し、既に組み込まれたライセンスファイルに対応するライセンスファイルＩＤを管理する管理プログラムが複写機内の外部ＨＤに記憶されている。対応するライセンスファイルＩＤが複写機内に管理されているライセンスファイルＩＤに含まれるか否かを判断し、ライセンスファイルに対応するライセンスファイルＩＤが、管理されているライセンスファイルＩＤに含まれると複写機が判断した場合に、複写機内の管理プログラムが管理してい記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権の変化量として操作する。例えば外部ＨＤに記憶されているライセンス管理プログラムは、ネットワークインタフェースを介して複写機が取得したライセンスファイルの利用可能期間を示すインストール期限情報を管理したり、ライセンスファイルのインストール期限を監査したり、既にインストールされたプログラムコードの暗号化鍵をプログラムの識別するためのアプリケーションＩＤと共に管理することもできる。さらには、ライセンスファイルは、複写機に対応してユニークに与えられた暗号化鍵で暗号化されているものであり、暗号化されたライセンスファイルを複号する復号プログラムを搭載していてもよい。管理プログラムは、ネットワークボードを介して取得したライセンスファイルの使用権の変化量が使用権の増分を示している場合は、プログラムの使用権の変化量を既に組み込まれたプログラムの使用権を増加させるよう操作し、また、管理プログラムは、ネットワークインタフェースを介して取得したライセンスファイルが示す使用量の変化量が使用権の減少量を示している場合は、前記プログラムの使用権の変化量を既に組み込まれたプログラムの使用権を減少させるよう複写機を制御するよう制御してもよい。また、管理プログラムは、証書情報としてライセンスファイルを管理するものであり、ライセンスファイルは複合機に搭載されたプログラム又は機能を使用可能な量を示す使用権を保証する有価物として取り扱い可能なものであるようにすることも考え得る。ここで、使用権とは、複合機の所定の機能、例えば、ファクシミリ、プリント、コピー、スキャナ、カラー印刷、ステイプル、フォトペーパー、インク、トナー、その他画像形成機能に関連する機能に関する使用権を全て含む。例えば、スキャナであれば、スキャン回数、コピー回数、フォトペーパーであれば、フォトペーパーで印刷可能な枚数、インクであれば使用可能な量を使用権として数値化、記号化して表すことになる。また、プログラムの使用権は、プログラムの実行回数、実行時間などを含む。そして、プログラムとプログラムと組合わせて動作するプログラム、例えば、スキャナ機能とＯＣＲプログラムの組などのように、機能とプログラムの組に対して、回数や時間で使用権を、ライセンスファイル内に設定することも考えられる。
【００９８】
図２３は複合機１００が有しているライセンスファイルＩＤ表を示す図である。ライセンスファイルＩＤ表は、ライセンスファイルＩＤ（２３０１）とそのインストール期限（２３０２）とを対とするレコードを複数保持している。新たなレコードは図２２で示した処理により追加される。複合機１００のコア部１０は定期的にライセンスファイルＩＤ表を検索し、既にインストール期限が切れているレコードを発見するとそのレコードを削除して再利用可能とする処理を行う。これにより、ライセンスファイルＩＤ表が無制限に増大することを防ぐ。
【００９９】
なお、本実施例では、インストール期限をライセンスファイルＩＤ表に保持することにより、ライセンスファイルＩＤの増加を防いでいるが、別の実施例ではインストール期限を保持せずに、インストールされたライセンスファイルのライセンスファイルＩＤを無期限に全て保持するようにしても良い。この場合は、ライセンスファイルＩＤ表があらかじめ決められた大きさに達する可能性がある。この可能性を危惧する場合は、ライセンスファイルＩＤ表が予め決められた大きさに達したと判断された場合に、新たなライセンスファイルのインストールを阻止又は制限する手段を持てば良い。
【０１００】
図２４は複合機１００が有しているアプリケーション鍵表を示す図である。アプリケーション鍵表は、アプリケーションＩＤ（２４０１）、アプリケーション鍵（２４０２）およびアプリケーションの有効期限（２４０３）を組とするレコードを複数保持している。新たなレコードはアプリケーションがインストールされた時に追加される。暗号化されたアプリケーションのインストールに成功した場合に、複合に使用した暗号鍵をアプリケーションＩＤと共に新たなレコード内に保持する。また、アプリケーションがアンインストールされた場合には、該当するレコードは削除される。
【０１０１】
以上のように、アプリケーションの動作可能な上限数をライセンスにより管理することにより、ライセンス発行者はアプリケーションの使用量をライセンスにより機器ごとに管理することが可能となる。さらに、ライセンスファイルＩＤを含むライセンスファイルを管理することにより、ライセンスの２重インストールが阻止され、これによりアプリケーションの動作可能回数を増分として与えることが可能となる。これによりライセンス発行者は、アプリケーションの最大使用量を機器ごとに管理することなく、ライセンスを付与することが可能となる。
【０１０２】
次に複合機１００内に保持されているライセンスを、ライセンスファイルとして機器外部に取り出す実施例を、図２５と図２６を使用して説明する。ライセンスファイルの取り出し指示は、複合機１００にネットワーク経由で接続されている、ホストコンピュータ（１１，２３，１３）または他の複合機（図省略）上で動作しているＷｅｂブラウザ上から、複合機１００に対して行う。ブラウザ上での表示例を図２６に示す。
【０１０３】
他の実施例としては、複合機１００が電子メール送受信機能を有し、複合機１００にネットワーク経由で接続されているホストコンピュータや他の複合機から、複合機１００に電子メールによる指示を行い、複合機１００により生成されたライセンスファイルを添付ファイルとする電子メールを、複合機１００が送り返しても良い。
【０１０４】
また他の実施例としては、複合機１００がライセンスファイル生成用のコマンドセットを解釈し、複合機１００にネットワーク経由で接続されているホストコンピュータや他の複合機から当コマンドセットを利用してライセンスファイル生成を指示、および取得しても良い。図２５は、図２６におけるライセンスファイル生成指示を、図２６に示すＷｅｂページからの指示、あるいは電子メールによる指示、あるいはライセンスファイル生成用コマンドセットによる指示により、複合機１００に保持されているライセンスをライセンスファイルとして機器外部に取り出す処理を示す図である。図２５の処理は、複合機１００の上で動作する。
【０１０５】
ステップＳ２５０１において、生成するライセンスファイルを使用する機器のシリアル番号を取得する。シリアル番号はライセンスファイル取り出し指示に含まれている。ライセンスの払い戻しのために、どのライセンスファイルを生成する機器を含めてどの機器にも使用させないライセンスファイルを生成する場合は、シリアル番号として存在し得ない番号（たとえば１）を使用する。図２６で示すＷｅｂページの場合は、２６０２のライセンスファイル払い戻しモードが有効な場合はシリアル番号１を使用し、２６０３のライセンスファイル転送モードが有効な場合は、２６０４のテキスト入力に入力されたシリアル番号を使用する。
【０１０６】
次にステップＳ２５０２において、ライセンスファイルを生成するために必要なアプリケーション情報を取得する。必要な情報はＡｐｐｌｉｃａｔｉｏｎＩＤ、ＡｐｐｌｉｃａｔｉｏｎＫｅｙおよび有効期間である。ＡｐｐｌｉａｔｉｏｎＩＤはライセンスファイル取り出し指示に含まれている。図２６で示すＷｅｂページの場合は、２６０１に現在インストールされているアプリケーション名がアプリケーションＩＤと共にリスト表示されており、この中からライセンスファイルを生成するアプリケーションを選択する。ＡｐｐｌｉｃａｔｉｏｎＩＤを取得したのちに、図２４のアプリケーション鍵表を参照して、ＡｐｐｌｉｃａｔｉｏｎＩＤに該当するＡｐｐｌｉｃａｔｉｏｎＫｅｙ（２４０２）を取得する。また、ＡｐｐｌｉｃａｔｉｏｎＩＤに該当する有効期限（２４０３）を取得し、現在の日付からＶａｌｉｄａｔｅｄＰｅｒｉｏｄを計算し、有効期限として現在の日付を設定する。もちろん図２６のユーザインタフェースは、複合機１００への操作パネル（図１の１４）に表示してもよい。
【０１０７】
次にステップＳ２５０３において、ＡｐｐｌｉｃａｔｉｏｎＩＤに対応するライセンス情報を収集する。まず、ＡｐｐｌｉｃａｔｉｏｎＩＤに対応する上限値を設定するためのカウンタ番号を特定する。カウンタ番号の特定は、図４のカウンタ番号―アプリケーションＩＤテーブルを参照し図６におけるステップＳ６０３、Ｓ６０４，Ｓ６０７，Ｓ６０８と同じ処理により行う。カウンタ番号が特定されると、図７のカウンタ表と図１９のカウンタ上限値管理表の対応する項目からコピー、プリント、スキャンの現在値および上限値を取得し、両者の差分を取ることにより残された動作可能回数を算出する。算出された動作可能回数は、それぞれＡｄｄｉｔｉｏｎａｌＣｏｐｙ、ＡｄｄｉｔｉｏｎａｌＰｒｉｎｔおよびＡｄｄｉｔｉｏｎａｌＳｃａｎの各属性の値として使用する。更に複合機１００内の該当アプリケーションのライセンスを無効とするために、図７のカウンタ表の該当カウンタの現在値として、図１９カウンタ上下値管理表の該当カウンタの上限値を設定する。
【０１０８】
次にステップＳ２５０４において、ライセンスファイルＩＤの生成を行う。この生成は図２１のステップＳ２１０１と同一である。ただし、生成に使用する物理アドレスは、図２５の処理が行われている複合機１００が有するものを使用する。
【０１０９】
以上のステップにより、ライセンスファイルを生成するためのライセンス情報が全てそろったので、ステップＳ２５０５において、ライセンス情報の暗号化を行う。なおライセンスファイルのインストール有効期限（ＥｘｐｉｒａｔｉｏｎＤａｔｅ）は固定値（例えば現在の日付から１年後）を使用する。暗号化は、転送先の複合機が有する秘密鍵に対応する公開鍵を使用した公開鍵暗号方式により行う。ただし、複合機が全て同じ秘密鍵を有する場合は、秘密鍵として複合機１００自身の有する秘密鍵を使用することができる。別の実施例としては、転送先の複合機が有する秘密鍵を使用した共通鍵暗号方式により暗号化を行っても良い。
【０１１０】
次にステップＳ２５０６において、ライセンスファイルの生成をし、ライセンスファイル取り出し指示を行ったものに対してライセンスファイルを送信して、処理を終了する。図２６で示すＷｅｂページの場合は、新たなＷｅｂページ（２６０７）をブラウザ上に表示し、この上でライセンスファイルを表すアイコン（２６０８）を表示してユーザにダウンロードを促すことにより、ライセンスファイルの送信を行う。
【０１１１】
図２６は、ライセンスファイル取り出し指示を行うためのＷｅｂページの例である。このＷｅｂページは複合機１００にネットワークで接続されたホストコンピュータ（１１）のＷｅｂブラウザ上に表示される。２６００はライセンスファイル取り出しを支持するためのＷｅｂページであり、このページ上において、２６０１でアプリケーションおよびアプリケーションＩＤの選択を行う。また２６０２または２６０３はライセンスファイルを払い戻しするのか、他の機器に転送するのかを選択する排他的なモードとなっており、他の機器に転送する場合は、２６０４のテキスト入力領域に、転送先機器のシリアル番号を入力する。
【０１１２】
全ての設定が完了し、２６０５のＯＫボタンを押すと、図２５に示した処理が複合機１００で動作する。ライセンスファイルが生成されると、２６０７のＷｅｂページが表示され、生成されたライセンスファイルのダウンロードが促される。ライセンスファイルのダウンロードはライセンスファイルを表すアイコン（２６０８）をクリックして保存することによりおこなう。
【０１１３】
以上のように、機器内に保持されているライセンス情報をライセンスファイルとして取り出すことを可能とすることにより、他の機器にライセンスを移動させることが可能となり、更にライセンスファイルを有価物として流通させることが可能となる。また、どの機器にもインストールできないライセンスファイルとして取り出して、ライセンス発行者に戻すことにより、ライセンス発行者はアプリケーション使用者がそれ以上ライセンスを使用しないことを確認することが可能となる。次に複数の機器にインストールされているライセンスを、ライセンス使用状況に応じて再配分して自動調整する実施例を図２７から図２９等を使用して説明する。
【０１１４】
図２７は本実施例が動作するシステム構成を示す図である。
【０１１５】
図２７において、本発明の管理装置の好適な一例であるホストコンピュータ２７０１と、画像形成装置の一例である複合機１（２７０２）、複合機２（２７０３）、およびプリンタ（２７０４）はネットワークで接続されている。ホストコンピュータ２７０１と複写機１などは内蔵のネットワークボード（通信制御手段）など備えており、それぞれ機器はのそれぞれのネットワークボードを介して各種データプログラムを送受信する。ここでは、管理装置はホストコンピュー２７０１自体であると想定しているが、管理装置は、もちろん、複写機２７０２などに組み込まれたコントローラ一体型装置や、内蔵ボード等であってもよい。
【０１１６】
以下、本発明に係る情報処理装置の一実施形態としてのホストコンピュータ３０００（図２７のＰＣ２７０１に相当する）について説明する。図３９は、本実施形態のコンピュータを含むプリンタ制御システムの構成を説明するブロック図である。なお、特に断らない限り、本発明の機能が実行されるのであれば、単体の機器であっても、複数の機器からなるシステムであっても、ＬＡＮ，ＷＡＮ等のネットワークを介して接続が為され処理が行われるシステムであっても本発明を適用できることは言うまでもない。図２７複写機２７０２と同様のものであり、ネットワーク３９２１を介して接続される他の複写機の図示は省略する。
【０１１７】
図において、３０００はホストコンピュータで、ＲＯＭ３９０３のプログラム用ＲＯＭあるいは外部メモリ３９１１に記憶された文書処理プログラム等に基づいて図形、イメージ、文字、表（表計算等を含む）等が混在した文書処理を実行するＣＰＵ１を備え、システムバス３９０４に接続される各デバイスをＣＰＵ３９０１が総括的に制御する。外部メモリ３９１１には、図２１、図２８、図３２、図３３、図３５、図３７に示す処理を実行可能なプログラムが格納され、ＣＰＵ３９０１によりＲＡＭに適宜ロードされ、実行される。
【０１１８】
また、プリンタ側では、例えば、外部メモリ３９１４に図１８、図２２、図２８、図３２、図３５、図３７等に記載された各処理がプリンタＣＰＵ３９１２により適宜ＲＡＭ３９１９に読み出され、実行される。たとえ、プリンタや、複写機２７０２であっても、サーバやホストコンピュータの機能を実行できるようにしても良いのである。
【０１１９】
また、このＲＯＭ３９０３のプログラム用ＲＯＭあるいは外部メモリ３９１１には、ＣＰＵ３９０１の制御プログラムであるオペレーティングシステムプログラム（以下ＯＳ）等を記憶し、ＲＯＭ３９０３のフォント用ＲＯＭあるいは外部メモリ３９１１には上記文書処理の際に使用するフォントデータ等を記憶し、ＲＯＭ３９０３のデータ用ＲＯＭあるいは外部メモリ３９１１には上記文書処理等を行う際に使用する各種データを記憶する。ＳＣ３９２１はスキャナユニット制御部であり、紙を光学系を用いて読み込んで電子データとしてＨＤ３９２０に格納し、印刷部３９１７にも出力可能である。
【０１２０】
３９０２はＲＡＭで、ＣＰＵ１の主メモリ、ワークエリア等として機能する。３９０５はキーボードコントローラ（ＫＢＣ）で、キーボード３９０９や不図示のポインティングデバイスからのキー入力を制御する。３９０６はＣＲＴコントローラ（ＣＲＴＣ）で、ＣＲＴディスプレイ（ＣＲＴ）３９１０の表示を制御する。３９０７はディスクコントローラ（ＤＫＣ）で、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、プリンタ制御コマンド生成プログラム（以下プリンタドライバ）等を記憶するハードディスク（ＨＤ）、フロッピー（Ｒ）ディスク（ＦＤ）等の外部メモリ１１とのアクセスを制御する。
【０１２１】
３９０８はプリンタコントローラ（ＰＲＴＣ）で、所定の双方向性インターフェース３９２１を介して複写機２７０２に接続されて、複写機２７０２との通信制御処理を実行する。なお、ＣＰＵ３９０１は、例えばＲＡＭ２上に設定された表示情報ＲＡＭへのアウトラインフォントの展開（ラスタライズ）処理を実行し、ＣＲＴ３９１０上でのＷＹＳＩＷＹＧを可能としている。
【０１２２】
また、ＣＰＵ３９０１は、ＣＲＴ３９１０上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。ユーザは印刷を実行する際、印刷の設定に関するウインドウを開き、プリンタの設定や、印刷モードの選択を含むプリンタドライバに対する印刷処理方法の設定を行える。
【０１２３】
複合機２７０２において、３９１２はプリンタＣＰＵで、ＲＯＭ３９１３のプログラム用ＲＯＭに記憶された制御プログラム等あるいは外部メモリ３９１４に記憶された制御プログラム等に基づいてシステムバス３９１５に接続される印刷部（プリンタエンジン）３９１７に出力情報としての画像信号を出力する。
【０１２４】
また、このＲＯＭ３９１３のプログラムＲＯＭには、ＣＰＵ３９１２の制御プログラム等を記憶する。ＲＯＭ３９１３のフォント用ＲＯＭには上記出力情報を生成する際に使用するフォントデータ等を記憶し、ＲＯＭ３９１３のデータ用ＲＯＭにはハードディスク等の外部メモリ３９１４がないプリンタの場合には、ホストコンピュータ上で利用される情報等を記憶している。
【０１２５】
ＣＰＵ３９１２は入力部３９１８を介してホストコンピュータとの通信処理が可能となっており、プリンタ内の情報等をホストコンピュータ３０００に通知可能に構成されている。３９１９はＣＰＵ３９１２の主メモリ、ワークエリア等として機能するＲＡＭで、図示しない増設ポートに接続されるオプションＲＡＭによりメモリ容量を拡張することができるように構成されている。なお、ＲＡＭ３９１９は、出力情報展開領域、環境データ格納領域、ＮＶＲＡＭ等に用いられる。前述したハードディスク（ＨＤ）、ＩＣカード等の外部メモリ１４は、メモリコントローラ（ＭＣ）３９２０によりアクセスを制御される。
【０１２６】
外部メモリ３９１４は、オプションとして接続され、フォントデータ、エミュレーションプログラム、フォームデータ等を記憶する。また、１８は前述した操作パネルで操作のためのスイッチおよびＬＥＤ表示器等が配されている。また、前述した外部メモリは１個に限らず、少なくとも１個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンタ制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。さらに、図示しないＮＶＲＡＭを有し、操作パネル１５０１からのプリンタモード設定情報を記憶するようにしてもよい。
【０１２７】
図２８はライセンスを再配分するための処理を示す図である。この処理は、ホストコンピュータ（２７０１）上で動作しても良いし、複合機（２７０２，２７０３）上またはプリンタ（２７０４）上で動作していても良い。複合機またはプリンタ上で図２８に示す処理が動作する場合は、図２７におけるホストコンピュータ（２７０１）は必要ない。
【０１２８】
図２８で示す処理は、定期的に（例えば１日又は１時間に１回等）、あるいは予め設定された時刻に行われる。
【０１２９】
まず、ステップＳ２８０１において、各機器における、周辺装置が備えたアプリケーションの使用権の残量を示す情報を含むアプリケーション使用状況を取得する。使用状況の取得は、ライセンス使用状況取得用コマンドを機器にネットワークを介して送付し、機器から返信を受け取ることにより行う。ライセンス使用状況取得コマンドを受信した機器は、図７のカウンタ表と図１９のカウンタ上限値管理表との差分から、周辺装置が備えたアプリケーションの使用権の残量の好適な一例であるアプリケーションＩＤ毎かつジョブ毎の使用可能回数を算出し返信する。各機器から受信した使用可能回数により、図２９で示す各機器のライセンス使用状況表をアプリケーションＩＤ毎に、図２８の処理が行われているホストコンピュータまたは機器内に作成する。
【０１３０】
ステップＳ２８０２からステップＳ２８１０までは、ステップＳ２８０１で収集されたシステム内に存在する全アプリケーションＩＤについて、繰り返し行う。
ステップＳ２８０３からステップＳ２８０５までは、全ジョブ種について繰り返し行い、繰り返し中のステップＳ２８０４でジョブ種中に使用可能回数が予め決められた閾値（例えば１００）以下になっている機器を選び出し一時記憶する。
【０１３１】
ステップＳ２８０６でステップ２８０４で選出された機器があるかどうかを検査し、なければステップＳ２８１０で現在のアプリケーションＩＤの処理を終了し、更に検証すべきアプリケーションＩＤが存在する場合には、ステップＳ２８０２から次のアプリケーションＩＤの処理を行う。Ｓ２８０４で、ジョブ種とは、アプリケーションと動作させる複写機の機能ごとに使用可能回数が予め決められた閾値以下になっている機器を認識してもよいが、機器に関係なく、アプリケーションに対して使用権が設定されている場合は、あるアプリケーションについて、所定の閾値以下の機器を選定するようにホストコンピュータ内のプログラムを設定しても良い。
【０１３２】
ステップＳ２８０６でステップ２８０４で選出された機器がある場合は、ステップＳ２８０７においてライセンスファイルを取り出すための機器を選定する。選定は図２９で示すライセンス使用状況表うち使用可能回数が全て０でないジョブ種（すなわち現在のアプリケーションＩＤで動作するジョブ種）の中から一番左のジョブ種について、使用可能回数を降順にソートし、数が大きい順からステップＳ２８０４で選出された機器の数だけ機器を選択することにより行う。これにより最もアプリケーションが使用されていない機器からライセンスを取り出すことになる。
【０１３３】
このように、ホストコンピュータ３０００内の管理プログラムが取得した使用権の残量を示す情報の一例である使用可能回数を示す情報に基づいて、該使用権の残量が所定量より多い周辺装置と使用権の残量が所定量より少ない周辺装置を選定して認識し、認識した使用権の残量が所定量より少ない周辺装置と、使用権の残量が所定量より多い周辺装置との使用権の残量の差が少なくなる様に各周辺装置に使用権を再配分し、前記周辺装置に対して使用権情報（使用権証明書）の好適な一例であるライセンスファイルを分配する。他の実施例としては、予めライセンスを取り出す機器の順番を決めておき、それに従って順次取り出す機器を選定しても良い。さらに、使用権の残量順に並べた複写機のうち、例えば、１０台複写機があるのであれば、ホストコンピュータから予め設定した５位以上を使用権の残量が所定量より多い複写機と認識し、５位に満たないものを使用権の残量が所定量より少ない複写機と判断しても良い。さらに、例えば、スキャナ機能を有する複写機がＯＣＲアプリを実行させる際、ユーザＡの、スキャナ機能とＯＣＲアプリを実行するライセンスファイルを管理対象が１０台であれば１０台の複写機から収集する。そして、ライセンスファイル配分後のそれぞれの複写機が有するライセンスファイルが証明する使用権の残量が、管理対象であるすべての複写機に残された使用権の残量の総和が例えば１２０であれば、複写機全体の台数１０で割った量１２になるように再配分するようにしてもよい。再配分する単位は、例えばプリンタ機能、スキャナ機能、などの特定の機能を選択しても良いし、あるいは全ての機能ライセンスファイルを再配分するよう設定できるようしてもよい。この際、同時にアプリケーションの使用権を再配分するようにしてもよいし、アプリケーションの使用権は再配分しないように設定出来るようにしても良い。さらに、アプリケーション並びに複写機が備えた機能、例えば、プリンタ、スキャナ、ファクシミリなどの機能の使用権を管理し、アプリケーションの使用権の再配分か、又は、複写機が備えた機能に係る使用権の再配分の、いずれか一方を行うよう前記分配手段を設定する設定できるようにしてもよい。
【０１３４】
次にステップＳ２８０８において、ステップＳ２８０７でライセンスファイル収集先として選定されたから現在のアプリケーションＩＤに関してのライセンスファイルを収集する。ライセンスファイルの収集は、選定された機器に対してアプリケーションＩＤを指定したライセンスファイル生成用コマンドを送付し、ライセンスファイルを対象機器から受け取ることにより行う。ライセンスファイル生成用コマンドを送付された機器は、図２５に示した処理フローによりライセンスファイルを生成する。
【０１３５】
次にステップＳ２８０９において、ステップＳ２８０４で選出された機器に対して、ステップＳ２８０８で収集したライセンスファイルを順次インストールしていく。ここでは、ホストコンピュータ３０００では、図３７の一連の処理を行なって、ライセンスＤＢを更新する。ステップＳ２８１０で現在のアプリケーションＩＤの処理を終了し、更に検証すべきアプリケーションＩＤが存在する場合には、ステップＳ２８０２から次のアプリケーションＩＤの処理を行い、なければ処理を終了する。
【０１３６】
図２９は、図２８のステップＳ２８０１にて作成された、システム内の各機器から収集されたアプリケーションＩＤごとのライセンス使用状況表を示す図である。このライセンス使用状況表は、図２８の処理が行われているホストコンピュータまたは機器の中にアプリケーションＩＤの数だけ生成される。
【０１３７】
２９０１はシステム内にある機器のネットワーク名称を表している。２９０２はシステム内にある機器のネットワークアドレスを表している。２９０３はシステム内にある各機器に対して、コピージョブ動作が可能な回数を表している。２９０４はシステム内にある機器のアプリケーションＩＤに対して、プリントジョブ動作が可能な回数を表している。２９０５はシステム内にある機器のアプリケーションＩＤに対して、スキャンジョブ動作が可能な回数を表している。なお、２９０５は全ての機器のスキャンジョブ動作の可能回数が０となっているが、これはこの表が対応するアプリケーションＩＤでは、スキャンジョブ動作を行う必要が無いことを表している。
【０１３８】
以上により、ネットワークシステム内に存在する複数の機器がライセンスによりアプリケーションの動作を制限されている場合、該当アプリケーションの使用量が最も多い機器群に対して、使用量が最も少ない機器群からライセンスを移動させることにより、ネットワークシステム内でのアプリケーションの使用効率を最大化することが可能となる。
【０１３９】
次に、ライセンスをアプリケーションの使用開始時に動的に機器にダウンロードすることにより、ライセンスを集中管理する実施例を図２７および図３０から図３４までを使用して説明する。
【０１４０】
図２７は本実施例が動作するシステム構成を示す図である。図２７において、ホストコンピュータ（２７０１）と複合機１（２７０２）、複合機２（２７０３）、およびプリンタ（２７０４）はネットワークで接続されている。ホストコンピュータ（２７０１）はライセンスを集中管理しており、複合機１（２７０２）、複合機２（２７０３）、およびプリンタ（２７０４）は、ユーザがアプリケーションを使用開始する時にホストコンピュータ（２７０１）に対してライセンスを要求して取得し、ユーザがアプリケーションを使用終了する時に、ホストコンピュータ２７０１（ホストコンピュータ３０００と同等のものである。）に対してライセンスを返却する。
【０１４１】
図３０は、複合機１または複合機２上動作する処理であり、アプリケーションをユーザが図１の操作部１４上で使用開始・終了したイベントにより、ライセンスをホストコンピュータに要求する処理を示す図である。
【０１４２】
操作部１４上には図３１に示すログイン画面（３１０６）またはアプリケーション操作画面（３１０１）が表示されている。図３０に示す処理は、ログインダイアログ（３１０７）が表示されており、ユーザがユーザ名をユーザ名入力領域（３１０８）に入力し、ＯＫボタン（３１０９）を押してログインに成功しログインダイアログ（３１０７）が閉じて予め設定されているアプリケーションが起動される直前、またはアプリケーション操作画面（３１０１）が表示されており、ユーザが他のアプリケーションに切り替えるためのボタン（３１０２または３１０３）を押した直後に、ユーザ名とこれから使用するアプリケーションに対応するアプリケーションＩＤとをパラメータとして起動される。
【０１４３】
ステップＳ３００１において、ユーザ名と使用するアプリケーションのアプリケーションＩＤ、および図３０の処理を実行している機器のシリアル番号をパラメータとして有するライセンスファイル発行要求コマンドをホストコンピュータ（２７０１）に送付し、ライセンスファイルの発行を要求する。この要求を受けて、ホストコンピュータ（２７０１）では図３２に示す処理を起動する。ステップＳ３００２において、ホストコンピュータ（２７０１）からのライセンスファイル送付を待機し、返信を受信する。
【０１４４】
ステップＳ３００３において、受信した返信にライセンスファイルが含まれているかどうかを検査し、エラー返信などでライセンスファイルが含まれていない場合は、ステップＳ３００４においてアプリケーションの使用が出来ないことを表すダイアログを操作部１４上に表示して終了する。ステップＳ３００４においては、エラーコードが、ユーザがアプリケーションを使用する権限が無いためにライセンスファイルが発行されないという意味であるかどうかを検証し、権限が無いというエラーコードであった場合は、操作部１３に権限が無いことを表すメッセージを表示する。
【０１４５】
ステップＳ３００３の検査の結果、ライセンスファイルが含まれている場合は、ステップＳ３００５に進み、受信したライセンスファイルをインストールする。ライセンスのインストールは、図２２で示した処理フローにより行われる。
【０１４６】
ライセンスのインストールが終了すると、ステップＳ３００６において、アプリケーションの起動を行い、ユーザにアプリケーションを使用させる。アプリケーション使用中には、図１８で示した処理フローが動作し、カウンタの値がライセンスファイルによって与えられた上限値に達した場合には、アプリケーションにジョブが強制終了されたことを通知され、アプリケーションはこれ以上使用できないことを表すダイアログを表示する。
【０１４７】
ステップＳ３００７において、ユーザのログアウトまたはアプリケーションの切り替えなどによりアプリケーションの終了がされたかどうかを定期的に検査し、アプリケーションが終了された場合は、ステップＳ３００８において、ライセンス返却用ライセンスファイルを生成し、ホストコンピュータ（２７０１）に対して生成されたライセンスファイルを含むライセンスファイル返却コマンドを送付して処理は終了する。ステップＳ３００８における、ライセンス返却用ライセンスファイルの生成は、図２５で示した処理フローにより行われる。ただし暗号化に使用する秘密鍵は転送先のホストコンピュータ（２７０１）が保有するものを使用する。ステップＳ３００８でホストコンピュータ（２７０１）に送付されたライセンスファイルは、図３３で示される処理フローによりホストコンピュータで処理される。
【０１４８】
図３２は、図３０のステップＳ３００１で発行された、機器からのライセンスファイル発行要求コマンドを受けてライセンスファイルを発行するための処理を示す図である。図３２の処理は、ホストコンピュータ（２７０１）上で動作する。
ステップＳ３２０１では、図３０の要求元の機器のシリアル番号、ユーザ名およびアプリケーションＩＤをライセンス発行要求コマンドのパラメータ内から取得する。
【０１４９】
ステップＳ３２０２において、図３４に示すアプリケーションライセンスデータベースの中からアプリケーションＩＤが一致するレコードを検索し、その中のユーザ名のリスト（３４０２）を取得する。ステップＳ３２０３において、取得したユーザ名のリストの中に、Ｓ３２０１で取得したユーザ名が存在するかどうか検査する。検査した結果、ユーザ名のリスト中にユーザが無い場合は、ステップＳ３２０４でエラーをコマンド送信送信先の機器に返信して処理を終了する。
【０１５０】
ユーザ名のリスト中にユーザがある場合は、ステップＳ３２０５において、ライセンスファイルを生成する。ここでライセンスファイルの生成は、図２１で示した処理フローに従って行われるが、ライセンス情報は図３４に示すアプリケーションライセンスデータベースから取得する。各ジョブ種の動作可能回数は、動作可能回数の現在値からの増分を表す属性（ＡｄｄｉｔｉｏｎａｌＰｒｉｎｔ，ＡｄｄｉｔｉｏｎａｌＳｃａｎ，ＡｄｄｉｔｉｏｎａｌＣｏｐｙ属性）として与える。データベース内にある該当アプリケーションの動作可能回数を全てライセンスファイル内に設定し、データベース内の動作可能回数を一時的に０に更新して、他の機器のために同一アプリケーション用のライセンスを発行できなくすることにより、アプリケーションの使用を制限する。
【０１５１】
ステップＳ３２０６において、ライセンスファイルが生成できたかどうかを検査する。アプリケーションライセンスデータベース内で動作可能回数が０になっていた場合や、要求されたアプリケーションＩＤに対応するレコードが同データベース内に存在していない場合は、ライセンスファイルが生成できないので、ステップＳ３２０７においてエラーをコマンド送信送信先の機器に返信して処理を終了する。
【０１５２】
生成されたライセンスファイルは、ステップＳ３２０８において、コマンド送信送信先の機器を認識し、認識した機器に返信して処理を終了する。
【０１５３】
このように、複写機内のＨＤに記憶されたプログラムを実行することにより、複写機１００における所定の機能又はプログラムの使用可能量を取得し、前記取得手段が取得した使用可能量に基づき、周辺装置において実行可能なプログラム又は該周辺装置の機能を使用可能な使用量を示すライセンスファイルを生成し、ライセンスファイルの転送先を認識し、ライセンスファイルとして外部へ転送する。さらに、ライセンスファイルを識別可能とするためのユニークなライセンスファイルＩＤを生成し、生成されたライセンスファイルに追加、又は、挿入、又は、書換えを行う。さらに、ライセンスファイルの有効期限を前記ライセンス情報としてライセンスファイルに追加、又は、挿入、又は、ライセンスファイルの書換えなどを行うと好適である。さらに、プログラムの暗号化鍵を取得し、プログラムコードの暗号化鍵をライセンスファイルに追加、又は、挿入、又は、ライセンスファイルの書換えなどを行ってもよい。さらに、プログラムを識別するためのＡｐｌｉｃａｔｉｏｎＩＤに対応したカウンタ値とカウンタ上限値との差分からプログラム識別情報に対応したプログラムの使用権を示す値を取得し、その値及び定義外の識別情報を暗号化し、暗号化されたライセンスファイルとして外部へ送出し、ライセンスファイルを送出した分に対応する使用権の量に基づき、カウンタ値を更新するようにしてもよい。
【０１５４】
図３３は、図３０のステップＳ３００８でホストコンピュータ（２７０１）に送付されたライセンスファイルを含むライセンス返却用コマンドの処理を示す図である。ホストコンピュータは図２４に示すライセンスファイルＩＤ表を保持しているものとする。なお、この図は機器から払い戻されたライセンスファイルをデータベースに戻す場合だけでなく、図２１の処理により新たに生成されたライセンスファイルを、ホストコンピュータ（２７０１）にインストールするときにも使用される。
【０１５５】
ステップＳ３３０１において、ライセンスファイル払い戻しコマンドに含まれるライセンスファイルを復号化する。復号化はホストコンピュータ２７０１が有する秘密鍵により、公開鍵暗号方式によって行われる。別の実施例としては、ホストコンピュータ２７０１が有する秘密鍵により、共通鍵暗号方式により行っても良い。
【０１５６】
復号化されたライセンスファイルの内容を、ステップＳ３３０２においてインストール期限を検査する。インストール期限の検査は、図２０のライセンスファイル内のＥｘｐｉｒａｔｉｏｎＤａｔｅ属性の値を現在の日付と比較することにより行い、現在の日付がＥｘｐｉｒａｔｉｏｎＤａｔｅ属性より後の場合は、インストールをせずに処理を終了する。
【０１５７】
次にステップＳ３３０３において、ホストコンピュータのシリアル番号の検査を行う。シリアル番号の検査は、図２０のライセンスファイル内のＤｅｖｉｃｅＳｅｒｉａｌＮｏ属性の値とホストコンピュータ（２７０１）の有するシリアル番号を比較することにより行う。ＤｅｖｉｃｅＳｅｒｉａｌＮｏ属性の中にホストコンピュータ（２７０１）の有するシリアル番号が含まれていない場合は、インストールをせずに処理を終了する。
【０１５８】
次にステップＳ３３０４において、既に同じライセンスファイルがインストール済みで無いかどうかを検査する。この検査は、図２０のライセンスファイル内の、ＬｉｃｅｎｓｅＦｉｌｅＩＤ属性の値とホストコンピュータ（２７０１）で保持されているインストール済みのＬｉｃｅｎｓｅＦｉｌｅＩＤ属性を比較することにより行う。インストール済みのＬｉｃｅｎｓｅＦｉｌｅＩＤ属性はホストコンピュータ（２７０１）の中で、図２３に示されるライセンスファイルＩＤ表として保持されている。ライセンスファイル内のＬｉｃｅｎｓｅＦｉｌｅＩＤの値がこの表の２３０１に存在する場合は、既にインストール済みであるとして、インストールをせずに処理を終了する。
【０１５９】
同じライセンスファイルの２回以上のインストールを許可すると同じライセンスファイルを複数回インストールすることが可能となってしまい、ＶａｌｉｄａｔｅｄＰｅｒｉｏｄ属性で示されるアプリケーションの使用可能期間の延長日数や、ＡｄｄｉｔｉｏｎａｌＰｒｉｎｔ属性で示されるプリント動作の動作可能回数の増分について、ライセンス使用者がいくらでも増やすことが可能となってしまう。ステップＳ３３０４はこれを阻止するための処理である。
【０１６０】
次にステップＳ３３０５において、ライセンスファイルの正当性を検査する。この検査は、図２０のライセンスファイル内のＡｐｐｌｉｃａｔｉｏｎＫｅｙ属性の値と、アプリケーションライセンスデータベース（図３４）のアプリケーションキー（３４０８）の値とを比較することにより行う。この表内の３４０１の列に、図２０のライセンスファイル内のＡｐｐｌｉｃａｔｉｏｎＩＤ属性の値が無い場合、またはあった場合にそれに該当するアプリケーションきー（３４０８）が、ライセンスファイル内のＡｐｐｌｉｃａｔｉｏｎＫｅｙ属性の値と一致しない場合は、ライセンスは正当でないものとしてインストールをせずに処理を終了する。
【０１６１】
次にステップＳ３３０６において、有効期限を設定する。有効期限の設定は、図３４に示されるアプリケーションライセンスデータベースにおいて、ライセンスファイル内のＡｐｐｌｉｃａｔｉｏｎＩＤ属性の一致するレコードの該当する項目（３４０３）の値を、ライセンスファイル内のＶａｌｉｄａｔｅｄＰｅｒｉｏｄ属性の値で書き換えることにより行う。この書き換えは、既に期限が設定されている場合は、現在の設定日付を読み出しＶａｌｉｄａｔｅｄＰｅｒｉｏｄ属性に設定されている値を足して得られた新たな日付を設定することにより行う。既に期限が設定されていない場合は、現在の日付にＶａｌｉｄａｔｅｄＰｅｒｉｏｄ属性に設定されている値を足して得られた日付を設定する。
【０１６２】
次にステップＳ３３０８において、ＡｐｐｌｉｃａｔｉｏｎＩＤに対応する上限値を設定する。上限値の設定は図２０のライセンスファイル内のＭａｘＣｏｐｙ属性、ＡｄｄｉｔｉｏｎａｌＰｒｉｎｔ属性、ＡｄｄｉｔｉｎｏａｌＳｃａｎ属性の値をアプリケーションライセンスデータベース（図３４）のアプリケーションＩＤの該当するレコードの該当する項目（３４０５，３４０６，３４０７）に設定することにより行う。設定する属性がＭａｘＣｏｐｙ属性の様に上限値（最大回数）設定属性の場合は、属性に設定されている値をそのまま上限値として設定する。ＡｄｄｉｔｉｏｎａｌＰｒｉｎｔ属性やＡｄｄｉｔｉｎｏａｌＳｃａｎ属性の様に増分設定の属性の場合は、現在上限値として設定されている値を取得し、属性に設定されている値を加算して得られた値を、新たな上限値として設定する。このステップによって図３０のステップＳ３００８で機器から戻されたライセンスがデータベースに戻されることになる。
【０１６３】
最後に、ステップＳ３３０９において、ライセンスファイルＩＤ属性の値をライセンスファイルの期限と共に、図２３で示されるライセンスファイルＩＤ表に記録して処理を終了する。ライセンスファイルＩＤと期限の記録は、ライセンスファイルＩＤ表に新たなレコードを追加して行う。
【０１６４】
図３４はホストコンピュータ（２７０１）が有している、アプリケーションライセンスデータベースを示す図である。このデータベースには図２７で示すネットワークシステム内で動作可能なアプリケーションのライセンス情報が集中管理されている。データベースはアプリケーションＩＤを主キーとするレコードを複数保持し、各レコードはアプリケーションＩＤ（３４０１）、アプリケーションを使用可能なユーザのユーザ名のリスト（３４０２）、アプリケーションの有効期限（３４０３）、アプリケーションの動作可能回数（３４０５，３４０６，３４０７）およびアプリケーションの暗号鍵（３４０８）から構成されている。
【０１６５】
以上のように、複数の機器により構成されるネットワークシステムにおいて、アプリケーションライセンスをホストコンピュータで集中管理し、ユーザがアプリケーションを使用開始する時にライセンスを付与し、使用終了と共に余ったライセンスを回収することにより、アプリケーションの使用ライセンスをユーザ毎の使用権も含めて、集中管理することが出来る。
【０１６６】
次に、アプリケーションのライセンスファイルを予め発行したライセンス証書を用いて発行する実施例を図３５および図３６を使用して説明する。
【０１６７】
ライセンス証書とはライセンス証書番号（ＩＤ）が記述された証書であり、ＣＤ−Ｒなどの記憶媒体に収められたアプリケーションコードと共に、紙の形でパッケージに含まれて使用者に販売される。さらに、ライセンス証書のみをパッケージとして使用者に販売される場合も考えられる。
【０１６８】
アプリケーション使用者はアプリケーションを使用する機器のシリアル番号とパッケージ内に含まれるライセンス証書番号（ＩＤ）を、ＦＡＸ，郵便、電話、電子メールなど何らかの形でライセンス発行者に伝え、ライセンス発行者はシリアル番号とライセンス証書番号（ＩＤ）とからライセンスファイルを生成し、フロッピー（Ｒ）ディスク、ＣＤ−Ｒ等の媒体に保存してアプリケーション使用者に送付する。
【０１６９】
ライセンス証書番号（ＩＤ）は、ライセンス発行者の持つホストコンピュータ内で図３６で示すデータベースで管理されている。ライセンス発行者は図３６で示すライセンス証書データベースを作成しておく。データベースの作成はマニュアルで行ってもよいし、何らかのツールを使用しても良い。図３６において、３６０１はランダムに生成されたライセンス証書番号（ＩＤ）である。２つ以上同じ番号が存在しなければ、任意の番号であってよい。３６０２はライセンス証書が既に使用者よって使用されているかどうか（ライセンスファイルが発行されているかどうか）を表すライセンス使用状態情報である。３６０３はアプリケーションＩＤであり、３６０４から３６０７までは、アプリケーションＩＤに対応するライセンス情報（有効日数、動作可能回数）を表す。ライセンス情報はライセンス発行者が任意に設定する。
【０１７０】
図３５は、アプリケーション使用者からライセンス証書番号（ＩＤ）と機器のシリアル番号を伝えられたときに、ライセンスファイルを発行する処理を示す図である。図３５の処理は図３６のライセンス証書データベースが存在するホストコンピュータ（図は省略するが、ハードウェア構成はＰＣ２７０１と同様である。）上で動作する。この処理はウィンドウベースまたはコマンドラインベースのユーザインターフェースを有し、ライセンス証書番号（ＩＤ）と機器のシリアル番号を入力できるようになっている。
【０１７１】
ステップＳ３５０１において入力されたライセンス証書番号（ＩＤ）を取得する。ステップＳ３５０２において、ライセンス証書データベース（図３６）を検索することにより、入力されたライセンス証書番号（ＩＤ）が存在するかどうかを検査する。検査の結果、ライセンス証書番号（ＩＤ）が存在していなかった場合は、偽のライセンス証書番号（ＩＤ）が送られてきたものとして処理を終了する。ライセンス証書番号（ＩＤ）が存在していた場合、ステップＳ３５０３において、ライセンス証書は未使用であるかどうか（すでにライセンスファイルが発行されていないかどうか）を検査する。検査は、ライセンス証書データベース（図３６）において、該当するライセンス証書番号（ＩＤ）のライセンス証書状態（３６０２）の値を取得することにより行う。ライセンスが使用済みであった場合は、処理を終了する。
【０１７２】
ライセンスが未使用であった場合は、ステップＳ３５０４でライセンス証書データベースの該当するライセンス証書番号（ＩＤ）に対応するライセンス情報（有効日数３６０４、コピーの動作可能回数３６０５、プリントの動作可能回数３６０６およびスキャンの動作可能回数３６０７）を取得する。次にステップＳ３５０５で、入力された機器のシリアル番号を取得する。次に今までのステップで得られたライセンス情報により、ステップＳ３５０６においてライセンスファイルの生成を行う。ライセンスファイルの生成は図２１に示した処理に従って行う。ただしライセンスファイルのインストール期限については、予め決められた固定値（例えば１年）を使用する。得られたライセンスファイルは、ファイルシステムに書き出し、後でライセンス発行者が取り出し可能としておく。次に、ライセンス証書データベースにおいて、該当するライセンス証書番号（ＩＤ）に対応するライセンス証書状態（３６０２）を「使用済み」に設定して、処理を終了する。
【０１７３】
なお、ライセンスファイルを識別するためのライセンスファイルＩＤを生成し、プログラムを識別するためのアプリケーションＩＤと使用可能量および機器の識別情報であるシリアル番号、生成されたライセンスファイルＩＤを使用権情報に挿入、又は、追加、又は、書き換えて追加すれば好適である。
【０１７４】
以上により、ライセンス証書データベースを予め構築し、これによって管理されているライセンス証書をパッケージとして流通させることを可能とすることにより、ライセンスファイルのインターネットによる直接購買以外のビジネス形態も可能となる。
【０１７５】
ライセンスをアプリケーションの使用開始時に動的に機器にダウンロードすることにより、ライセンスを集中管理する例を示す、図３２の実施例においては、データベース内にある該当アプリケーションの動作可能回数を全てライセンスファイル内に設定し、データベース内の動作可能回数を一時的に０に更新して、他の機器のために同一アプリケーション用のライセンスを発行できなくすることにより、アプリケーションの使用を制限していた。この処理の他の実施例としては、予め決められた最大動作回数（例えば１００）のみをライセンスファイルに設定し、この分をデータベース内の動作可能回数から引くことによりデータベースを一時的に更新しても良い。
【０１７６】
また他の実施例としては、アプリケーションの同時使用可能ユーザ数をアプリケーションのライセンス情報として設定し、これに従ったライセンスを生成しても良い。
この場合の実施例を、図３７および図３８を使用して説明する。
【０１７７】
図３７は、図３０のステップＳ３００１で発行された、機器からのライセンスファイル発行要求コマンドを受けてライセンスファイルを発行するための処理を示す図である。図３２の処理は、ホストコンピュータ（２７０１）上で動作する。
【０１７８】
ステップＳ３７０１では、図３０の要求元の機器のシリアル番号、ユーザ名およびアプリケーションＩＤをライセンス発行要求コマンドのパラメータ内から取得する。
【０１７９】
ステップＳ３７０２において、図３８に示すアプリケーションライセンスデータベースの中からアプリケーションＩＤが一致するレコードを検索し、その中の最大ユーザ数（３８０３）と現在アプリケーション使用中のユーザ数（３８０４）の差分から、アプリケーションを使用可能なユーザ数を算出する。
【０１８０】
ステップＳ３２０３において、アプリケーションを使用可能なユーザ数が０で無いかどうかを検査し、使用可能なユーザ数が０の場合は、ステップＳ３７０４でエラーをコマンド送信送信先の機器に返信して処理を終了する。
【０１８１】
使用可能なユーザ数が０でない場合は、ステップＳ３７０５において、ジョブ種毎の動作可能回数を使用可能なユーザ数で割る。
【０１８２】
ステップＳ３７０６において、ステップＳ３７０５において得られた商、および図３４アプリケーションライセンスデータベースからライセンスファイルを図２１で示した処理フローに従って生成する。ステップＳ３７０７において、ライセンスファイルが生成できたかどうかを検査する。アプリケーションライセンスデータベース内で動作可能回数が０になっていた場合や、要求されたアプリケーションＩＤに対応するレコードが同データベース内に存在していない場合は、ライセンスファイルが生成できないので、ステップＳ３７１０においてエラーをコマンド送信送信先の機器に返信して処理を終了する。
【０１８３】
ライセンスファイルが生成できた場合は、ステップＳ３７０８においてアプリケーションライセンスデータベースの更新を行う。更新は、アプリケーションＩＤが一致するレコードにおいて、現在使用中のユーザ数（３８０４）を１増やすこと、および、アプリケーションの動作可能回数（３８０５、３８０６、３８０７）から、ステップＳ３７０６で生成したライセンスファイル内に設定したアプリケーションの動作可能回数を差し引くことにより行う。
【０１８４】
最後にステップＳ３７０９において、コマンド送信送信先の機器に返信して処理を終了する。
【０１８５】
なお、図２８のＳ２８０９で、図３７の処理を行う。ライセンスファイルに含まれる使用権に係るユーザＩＤとアプリケーション、使用権の増分値を認識し、Ｓ３７０１で入力され、上述の処理が開始される。
【０１８６】
図３８はホストコンピュータ（２７０１）が有している、アプリケーションライセンスデータベースを示す図である。このデータベースには図２７で示すネットワークシステム内で動作可能なアプリケーションのライセンス情報が集中管理されている。データベースはアプリケーションＩＤを主キーとするレコードを複数保持し、各レコードはアプリケーションＩＤ（３８０１）、アプリケーションの有効期限（３４０２）、アプリケーションを使用可能な最大ユーザ数（３８０３）、アプリケーションを現在使用しているユーザ数（３８０４）、アプリケーションの動作可能回数（３４０５，３４０６，３４０７）およびアプリケーションの暗号鍵（３４０８）から構成されている。
【０１８７】
アプリケーションを使用可能な最大ユーザ数（３８０３）は、ライセンスファイル（図２０）のＭａｘＮｏＯｆＵｓｅｒｓ属性により与えられ、ホストコンピュータ（２７０１）上で行われる図２２の処理フローによりアプリケーションデータベース図３８に設定される。
【０１８８】
インターネットの利用が困難な環境においては、何らかの方法でライセンスファイル生成に必要な多くの情報をライセンス発行者に知らせてライセンスファイルを取得しなければならないという問題があったが、本実施形態によれば、あらかじめライセンスファイル生成に必要な情報をデータベースに登録しておき、これらに識別子をつけることにより、ユーザは最低限の情報をライセンス発行者に電話や手紙など電子的な方法によらなくても容易に伝達できるようにすることにより、あらゆる環境でライセンスファイルの取得を可能となる。
【０１８９】
（他の実施形態）
本願図面及び明細書中に示した各処理が、外部からインストールされるプログラムによって、情報処理装置、画像形成装置によって遂行される。そして、その場合、ＣＤ−ＲＯＭやフラッシュメモリやＦＤ等の記憶媒体により、あるいはネットワークを介して外部の記憶媒体から、プログラムを含む情報群を各情報処理装置、画像形成装置に供給される場合でも本発明は適用されるものである。
【０１９０】
以上のように、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【０１９１】
この場合、記憶媒体から読み出されたプログラムコード自体が本実施形態の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本実施形態を構成することになる。プログラムコードを供給するための記憶媒体としては、たとえば、フロッピィーディスク、ハードディスク、光ディスク、光磁気ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＥＥＰＲＯＭ等を用いることができる。
【０１９２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１９３】
本願発明の各実施形態によれば、画像形成装置上に複数のカウンタを用意し、アプリケーションとカウンタとの対応付けをアプリケーションのインストール時に動的に行い、アプリケーションのインストール時に未使用カウンタを動的に割り当てることができる。そして、アンインストール時にカウンタを解放することにより、アプリケーションの追加・削除が行われるような状況下においてもアプリケーション毎のカウント情報を適切に管理することが可能となる。また、これにより、画像形成装置上アプリケーションを開発したアプリケーションベンダに対して、アプリケーションの使用量に応じた課金を適切に分配することも可能になる。
【０１９４】
また、画像形成装置が提供するそれぞれのプログラムが提供する各処理について、カウント情報を個別に管理できるようにし、各プログラムの使用量を容易に管理できるような画像形成装置を提供することができる。
【０１９５】
さらに、画像形成装置が提供するそれぞれのプログラムが削除されるのに応じて、カウンタを解放するようにカウンタを管理するので、不必要なカウンタの増加を防ぎ、現在画像形成装置において実際に使用されている各プログラムの使用量を容易に管理できるような画像形成装置を提供することができる。
【０１９６】
さらに、画像形成装置が提供するそれぞれのプログラムの属性情報が追加されるに応じて、カウンタを解放するようにカウンタを管理するので、プログラムを確実にカウンタに対応付け、テーブルとして管理するので、現在画像形成装置において現に使用されている各プログラムの使用量を確実に取得・表示して管理できるような画像形成装置を提供することができる。
【０１９７】
さらに、各プログラムが利用する画像形成装置の機能ごとに使用量を管理するので、アプリケーションと、アプリケーションが提供する処理と複写機が提供する機能のよって付加された価値に応じて課金、又は、使用量管理ができるようになる。
【０１９８】
【発明の効果】
本発明の一つの実施形態によれば、アプリケーション又は周辺装置の機能の正当な使用権の権利保有者のみが正規の使用権情報を発行可能となる。
【０１９９】
また、本発明の別の実施形態によれば、有価証券・証書のような性質を持つ、機器にインストールしたアプリケーションの使用権情報を、機器の故障や交換などにより、他の機器に移動できる。また、別の側面によれば、一旦機器にインストールしたアプリケーションの使用権を、アプリケーションの使用中止の場合などに、アプリケーションの権利保有者に返却できる。
【０２００】
さらに、本発明の別の実施形態によれば、画像形成装置内にインストールされたアプリケーションの動作可能回数を、使用権情報として装置外に取り出し可能な周辺装置を提供することができる。
【図面の簡単な説明】
【図１】第一の実施形態に係るシステム全体を示す構成図である。
【図２】第一の実施形態における複写機のソフトウェアモジュール階層の好適な一例を示す図である。
【図３】第一の実施形態における図１に示す複合機にアプリケーションがインストールされる際の処理の流れを示すフローチャートを示す図である。
【図４】第一の実施形態におけるカウンタ番号−アプリケーションＩＤテーブルの例を示す図である。
【図５】ジョブ処理を指示するコマンド群の一例を示す図である。
【図６】第一の実施形態においてカウンタの更新が行われる際のカウンタ更新手段における処理の流れを示すフローチャートを示す図である。
【図７】第一の実施形態における複合機が有しているカウンタの例を示す図である。
【図８】第一の実施形態において、複写機に既にインストールされているアプリケーションをアンインストールする際の処理の流れを示すフローチャートを示す図である。
【図９】第二の実施形態における複写機のソフトウェアモジュール階層の構成を示した図である。
【図１０】第二の実施形態におけるアプリケーションインストーラのインストール時の画面の例を示す図である。
【図１１】第二の実施形態において、図１０のＯＫボタンが押されてからの処理の流れを示す不フローチャートを示す図である。
【図１２】第二の実施形態におけるカウンタ番号−アプリケーションＩＤテーブルの例でを示す図である。
【図１３】第二の実施形態におけるアプリケーションインストール時のカウント単位警告ダイアログ画面の一例を示す図である。
【図１４】第二の実施形態におけるアプリケーション情報の構成例を示す図である。
【図１５】第二の実施形態において、カウントアップが行われる際のカウンタ更新手段における処理の流れを示すフローチャートを示す図である。
【図１６】第二の実施形態における複写機が有しているカウンタの例を示す図である。
【図１７】第二の実施形態において、複写機にインストールされているアプリケーションをアンインストールする際の処理の流れを示すフローチャートを示す図である。
【図１８】アプリケーションごとのカウンタ更新手段とアプリケーションカウンタ上限管理手段における処理を示す図である。
【図１９】カウンタ上限値管理表を示す図である。
【図２０】ラインセンスファイルの内容を示す図である。
【図２１】ライセンスファイル生成処理を示す図である。
【図２２】ライセンスファイル処理を示す図である。
【図２３】ライセンスファイルＩＤ表を示す図である。
【図２４】アプリケーション鍵表を示す図である。
【図２５】アプリケーションの取り出し処理を示す図である。
【図２６】ライセンスファイル取り出し用ウェブページを示す図である。
【図２７】ライセンス自動配分またはライセンス集中管理の動作システム構成を示す図である。
【図２８】ライセンス自動配分処理を示す図である。
【図２９】ライセンス使用状況表を示す図である。
【図３０】ライセンス自動配分のための機器側のライセンス要求処理を示す図である。
【図３１】アプリケーション画面・ログイン画面例を示す図である。
【図３２】ライセンス自動配分のためのホスト側のライセンス発行処理を示す図である。
【図３３】ライセンス自動配分のための機器側のライセンス返却処理を示す図である。
【図３４】使用可能ユーザ数を制限した、アプリケーションライセンスデータベースを示す図である。
【図３５】ライセンス証書番号処理を示す図である。
【図３６】ライセンス証書データベースを示す図である。
【図３７】使用可能ユーザ数を制限した、ライセンス自動配分のためのホスト側のライセンス発行処理を示す図である。
【図３８】本実施形態のコンピュータを含むプリンタ制御システムの構成を説明するブロック図である。
【図３９】本実施形態のコンピュータを含むプリンタ制御システムの構成を説明するブロック図である。
【符号の説明】
１　リーダ部
２　プリンタ部
３　画像入出力制御部
４　ファクシミリ部
５　ファイル部
６　記憶装置
７　ネットワークインタフェース部
８　フォーマッタ部
９　画像メモリ部
１０　コア部
１１　ホストコンピュータ
１２　ネットワークサーバ
１３　課金サーバ
１４　操作部
１５　フィニッシャ部
１００　複合機
２０１　オペレーティングシステム
２０２　コントローラ
２０３　インタプリタ
２０４　アプリケーション管理
２０５　アプリケーションプログラム
２０６　アプリケーションインストーラ
５０１　ジョブ投入開始コマンド
５０２　ジョブ属性設定コマンド
５０３　ジョブデータ送信コマンド
５０４　ジョブ投入完了コマンド
５１１　モード
５１２　付加情報
９０１　オペレーティングシステム
９０２　コントローラ
９０３　インタプリタ
９０４　カウンタＡＰＩ
９０５　アプリケーション管理プログラム
９０６　アプリケーション
９０７　アプリケーションインストーラ
１００１　ＵＲＬ入力部
１００２　ＯＫボタン
１３０１　中止ボタン
１３０２　続行ボタン
１３０３　アプリケーション名表示部
１３０４　カウントアップ情報表示部
【図１】
2004139149.tif 000003
【図２】
2004139149.tif 000004
【図３】
2004139149.tif 000005
【図４】
2004139149.tif 000006
【図５】
2004139149.tif 000007
【図６】
2004139149.tif 000008
【図７】
2004139149.tif 000009
【図８】
2004139149.tif 000010
【図９】
2004139149.tif 000011
【図１０】
2004139149.tif 000012
【図１１】
2004139149.tif 000013
【図１２】
2004139149.tif 000014
【図１３】
2004139149.tif 000015
【図１４】
2004139149.tif 000016
【図１５】
2004139149.tif 000017
【図１６】
2004139149.tif 000018
【図１７】
2004139149.tif 000019
【図１８】
2004139149.tif 000020
【図１９】
2004139149.tif 000021
【図２０】
2004139149.tif 000022
【図２１】
2004139149.tif 000023
【図２２】
2004139149.tif 000024
【図２３】
2004139149.tif 000025
【図２４】
2004139149.tif 000026
【図２５】
2004139149.tif 000027
【図２６】
2004139149.tif 000028
【図２７】
2004139149.tif 000029
【図２８】
2004139149.tif 000030
【図２９】
2004139149.tif 000031
【図３０】
2004139149.tif 000032
【図３１】
2004139149.tif 000033
【図３２】
2004139149.tif 000034
【図３３】
2004139149.tif 000035
【図３４】
2004139149.tif 000036
【図３５】
2004139149.tif 000037
【図３６】
2004139149.tif 000038
【図３７】
2004139149.tif 000039
【図３８】
2004139149.tif 000040
【図３９】
2004139149.tif 000041