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