(57)【要約】【課題】フラグメントバンドルの様なアドインアプリケーションに対して、柔軟にカウンタを割り当てることができない。【解決手段】情報処理装置であって、プログラムのインストールを制御するインストール手段と、前記インストール手段にてプログラムをインストールする際に、当該プログラムの機能を利用する際に用いられるカウンタを生成し当該プログラムへ対応付ける生成手段とを備え、前記生成手段は、インストール対象のプログラムが既にインストールされているプログラムの機能を拡張するためのアドインプログラムである場合、当該アドインプログラムによるカウンタの利用の有無に応じて、カウンタを生成するか否かを制御する。【選択図】図５
2017010081.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを追加してインストール可能な情報処理装置であって、
プログラムのインストールを制御するインストール手段と、
前記インストール手段にてプログラムをインストールする際に、当該プログラムの機能を利用する際に用いられるカウンタを生成し当該プログラムへ対応付ける生成手段と
を備え、
前記生成手段は、インストール対象のプログラムが既にインストールされているプログラムの機能を拡張するためのアドインプログラムである場合、当該アドインプログラムによるカウンタの利用の有無に応じて、カウンタを生成するか否かを制御することを特徴とする情報処理装置。
【請求項２】
前記インストール手段は、インストール対象のプログラムがログイン機能に関するプログラムである場合、前記生成手段によるカウンタの生成を行わずにインストールを行うことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記インストール手段は、前記生成手段によりカウンタを生成しないように制御されるアドインプログラムに対しライセンスによる利用の制限が適用される場合、当該アドインプログラムのインストールを行わないことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記インストール手段は、インストール対象のアドインプログラムに対するインストール処理がアップデートである場合において、当該アップデートの前後においてカウンタの利用の有無の変更があるか否かを判定し、変更がある場合には、当該アドインプログラムのアップデートを行わないことを特徴とする請求項１乃至３のいずれか一項に記載の情報処理装置。
【請求項５】
前記生成手段は、
アドインプログラムをインストールする際に、当該アドインプログラムによる機能拡張の対象となるプログラムに対し、既にカウンタが対応付けられている他のアドインプログラムがインストールされているか否かを判定し、
当該他のアドインプログラムがインストールされている場合、新たにカウンタを生成せず、前記他のアドインプログラムに対応付けられているカウンタを共有させることを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
アドインプログラムは、他のアドインプログラムとの間でのカウンタの共有を許可するか否かの共有設定を有し、
前記生成手段は、前記共有設定に従って、カウンタの生成を制御することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記インストール手段は、カウンタが対応付けられたアドインプログラムをアンインストールする際に、当該アドインプログラムに対応付けられたカウンタを共有する他のアドインプログラムが存在する場合、当該カウンタを破棄せずに維持することを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
前記カウンタは、ライセンスによるプログラムの利用の制限を行う際に用いられることを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
インストールされているプログラムに関する管理画面を提供する表示手段を更に有し、
前記表示手段は、前記管理画面において、インストールされているプログラムのうち、カウンタが対応付けられていないプログラムについては、ライセンスに関する情報の表示およびライセンスに関する操作の受け付けを制限することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記情報処理装置にて利用可能なカウンタのリソースを管理する管理手段を更に有し、
前記生成手段は、前記利用可能なカウンタのリソースを超えて生成を行わないように制御することを特徴とする請求項１乃至９のいずれか一項に記載の情報処理装置。
【請求項１１】
プログラムを追加してインストール可能な情報処理装置の制御方法であって、
プログラムのインストールを制御するインストール工程と、
前記インストール工程にてプログラムをインストールする際に、当該プログラムの機能を利用する際に用いられるカウンタを生成し当該プログラムへ対応付ける生成工程と
を有し、
前記生成工程において、インストール対象のプログラムが既にインストールされているプログラムの機能を拡張するためのアドインプログラムである場合、当該アドインプログラムによるカウンタの利用の有無に応じて、カウンタを生成するか否かを制御することを特徴とする情報処理装置の制御方法。
【請求項１２】
コンピュータを、
プログラムのインストールを制御するインストール手段、
前記インストール手段にてプログラムをインストールする際に、当該プログラムの機能を利用する際に用いられるカウンタを生成し当該プログラムへ対応付ける生成手段
として機能させ、
前記生成手段は、インストール対象のプログラムが既にインストールされているプログラムの機能を拡張するためのアドインプログラムである場合、当該アドインプログラムによるカウンタの利用の有無に応じて、カウンタを生成するか否かを制御することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびその制御方法、並びにプログラムに関し、特にアドインアプリケーションに対するカウンタ割り当てに関する。
【背景技術】
【０００２】
従来の画像形成装置において、装置上で動作するアプリケーションは予め固定的に組み込まれていた。そのため、画像形成装置内において、アプリケーションの利用に応じてジョブの回数等を管理するカウンタについても専用化かつ固定化されていた。しかし、近年、ユーザニーズが多様化し、予め組み込まれたアプリケーションのみでは多様なユーザニーズに応えるのは困難な状況となってきている。これに伴い、アプリケーションプラットフォームのＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）が外部に公開され、画像形成装置の開発元以外のサードベンダー等によって開発されたアプリケーションを後からインストールして機能拡張することが可能になった。
【０００３】
しかしながら、従来はこうした後からインストールするアプリケーション（以下、後入れアプリケーション）に対して、動的にカウンタを割り当て、ジョブ回数等を管理する方法がなかった。そのため、アプリケーションの開発者が独自にカウンタに相当する機能を提供することになり、後入れアプリケーションの開発コストが増加してしまうという問題があった。
【０００４】
上記問題を解決するために、特許文献１では、後入れアプリケーションに対して、システムが動的にカウンタを提供し、アプリケーションが独自にカウンタ機能を実装することなく、ジョブ回数等を適切に管理する方法を提供している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２３７２７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の方法は、あくまでも単独で動作することを想定した後入れアプリケーションに対してのみ提供される技術である。近年、ホストとなるアプリケーションにアタッチすることで動作するアドインアプリケーションが提供されている。アドインアプリケーションは、それ単独では動作せず、ホストとなるアプリケーションにアタッチすることで機能を提供する。こうしたアドインアプリケーションの例としては、ＯＳＧｉ（Ｏｐｅｎ  Ｓｅｒｖｉｃｅｓ  Ｇａｔｅｗａｙ  ｉｎｉｔｉａｔｉｖｅ）フレームワークのフラグメントバンドルなどが挙げられる。こうしたアドインアプリケーションは、単なる言語リソースの追加から新規機能の追加まで、幅広い用途で利用される。このような状況において、画像形成装置の限られたリソースを有効活用するためには、用途に応じてアドインアプリケーション間でカウンタを共有するなど、より柔軟な選択肢が求められる。しかし、特許文献１の方法では、アドインアプリケーションを考慮した柔軟なカウンタ利用形態を提供できないという課題がある。
【０００７】
また、アプリケーションをインストールする際には、有効期限やジョブの利用回数制限などが記載されたライセンスを同時にインストールする場合がある。アドインアプリケーションのカウンタ利用形態が柔軟になる一方で、こうしたライセンスの内容との整合性にも配慮する必要が出てくる。しかし、特許文献１の方法には、カウンタ利用形態とライセンスの不整合を防ぐことができないという課題も存在する。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本願発明は以下の構成を有する。すなわち、プログラムを追加してインストール可能な情報処理装置であって、プログラムのインストールを制御するインストール手段と、前記インストール手段にてプログラムをインストールする際に、当該プログラムの機能を利用する際に用いられるカウンタを生成し当該プログラムへ対応付ける生成手段とを備え、前記生成手段は、インストール対象のプログラムが既にインストールされているプログラムの機能を拡張するためのアドインプログラムである場合、当該アドインプログラムによるカウンタの利用の有無に応じて、カウンタを生成するか否かを制御する。
【発明の効果】
【０００９】
本発明によれば、アドインアプリケーションに対して、柔軟にカウンタを割り当てることができる。また、ライセンスとの不整合を防ぐことができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る画像形成装置のシステム構成の例を示す図。
【図２】本実施形態に係る画像形成装置のハードウェア構成の例を示す図。
【図３】本実施形態に係る画像形成装置のソフトウェア構成の例を示す図。
【図４】本実施形態に係るカウンタの概念図。
【図５】本実施形態に係る拡張プログラムアドインをインストールする際のフローチャート。
【図６】本実施形態に係るアプリ情報ファイルの一例を示す図。
【図７】本実施形態に係るインストール時にカウンタを生成する際のフローチャート。
【図８】本実施形態に係るライセンスファイルの一例を示す図。
【図９】第二の実施形態に係るライセンス情報画面を表示する際のフローチャート。
【図１０】第二の実施形態に係るライセンス情報画面の一例を示す図。
【図１１】第三の実施形態に係る複数の拡張プログラムアドイン間でカウンタを共有する場合にカウンタを生成する際のフローチャート。
【図１２】第三の実施形態に係るアプリ情報ファイルの一例を示す図。
【図１３】第三の実施形態に係るカウンタを利用する際のフローチャート。
【図１４】第三の実施形態に係る拡張プログラムアドインをアンインストールする際のフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態の一例について図面を用いて説明する。
【００１２】
＜用語の定義＞
まず、本発明における用語の定義を行う。
【００１３】
「カウンタ」とは、カウント値を半導体メモリに蓄えるソフト・カウンタのことを指す。カウンタは、例えば、アプリケーションの利用回数や有効期限などをカウントする。
【００１４】
「拡張プログラム」とは、Ｊａｖａ（登録商標）アプリケーション等の、後から追加でインストール可能なプログラムを示す。拡張プログラムは、画像形成装置等を製造した会社だけでなく、サードベンダー等が開発したアプリケーションを含む。
【００１５】
「拡張プログラムアドイン」とは、後から追加でインストール可能なプログラムを示し、拡張プログラムとは異なり、単体で機能することはできず、ホストとなるプログラム（拡張プログラム）に付加されることで機能する機能拡張のためのプログラムである。拡張プログラムアドインは、アドインプログラムもしくはアドインアプリケーションとも称する。拡張プログラムアドインは、ホストとなるプログラムを製造した製造元の会社だけでなく、サードベンダー等が開発したアプリケーションを含む。
【００１６】
「アプリタイプ」とは、拡張プログラムのタイプを示す。本発明では、「ログインアプリ」と「一般アプリ」とに大別される。
【００１７】
「ログインアプリ」とは、拡張プログラムの一種であり、ログイン機能を提供し、画像形成装置の認証専用のアプリケーションを示す。ログインアプリは、認証専用のため、ジョブ回数の制限値や有効期限を設けないものとする。これは、有効期限が切れた場合に、システムにおいて、突然、認証機能が失われることを避けるためである。したがって、ログインアプリにはカウンタは不要である。
【００１８】
「一般アプリ」とは、拡張プログラムの一種であり、ログインアプリ以外の一般的なアプリケーション全般を示す。一般アプリは、その用途によって、ジョブ回数の制限値や有効期限を任意で設けることができる。
【００１９】
「アプリ情報ファイル」とは、アプリケーションに関連する情報が記載されたファイルを示す。アプリ情報ファイルの一例として、例えば、Ｊａｖａ（登録商標）アプリケーションのマニフェストファイルなどが挙げられる。
【００２０】
「ライセンス」とは、拡張プログラムのインストール時に利用する証明書であり、暗号化された拡張プログラムと合わせてインストールすることで、その拡張プログラムが利用可能になる。また、ライセンスには、拡張プログラムの有効期限やジョブ回数の制限値などを記載することができ、それらは画像形成装置内のカウンタで管理される。
【００２１】
以上が用語の説明となる。ここで説明した以外にも適宜用語の説明を行う。
【００２２】
＜第一の実施形態＞
本実施形態は、アドインアプリケーションがインストールされる場合の実施形態である。
【００２３】
［システム構成］
本実施形態に係るシステム構成の例について、図１を用いて説明する。本実施形態において、システムは、画像形成装置１０１、および外部装置１０４を含んで構成される。なお、図１では各装置をそれぞれ１台ずつを示しているが、これに限定するものではなく、それぞれ複数の装置を含むようにしてもよい。
【００２４】
画像形成装置１０１は、プリント機能、コピー機能、ファクシミリ機能、送信機能（Ｅ−ｍａｉｌ、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等）を統合した複合機（ＭＦＰ：Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）や、プリンタ、スキャナ、ファクシミリ等の画像形成装置である。また、画像形成装置１０１には、後からアプリケーションを追加して機能を拡張することができる。
【００２５】
ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０２は、画像形成装置１０１が位置するネットワークとしてのローカルエリアネットワークである。画像形成装置１０１は、ＬＡＮ１０２を介して他の画像形成装置（不図示）、情報処理装置（不図示）、もしくはインターネット１０３と接続可能である。
【００２６】
インターネット１０３は、ＬＡＮ１０２と接続された外部ネットワークであり、単一もしくは複数のＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ、アドホックネットワークなどのネットワークで実現してもよい。また、本実施形態におけるインターネット１０３は一例であり、他の通信ネットワーク、または、ネットワークの複合でもよい。
【００２７】
外部装置１０４は、情報処理装置であり、画像形成装置１０１にアプリケーションをインストールするための機器である。外部装置１０４は、例えば、パーソナルコンピュータ（以下、ＰＣ）などが考えられる。本実施形態では、外部装置１０４は、インターネット１０３を介して画像形成装置１０１と接続されているＰＣを想定しているが、ＬＡＮ１０２を介したイントラネット内で接続されるように構成されてもよい。
【００２８】
［ハードウェア構成］
本実施形態に係る画像形成装置１０１のハードウェア構成の例について、図２を用いて説明する。画像形成装置１０１は、制御部２０１、ディスプレイ２１２、操作部２１３、プリンタ２１４、およびスキャナ２１５を備える。
【００２９】
制御部２０１は、画像形成装置１０１を統括的に制御する。制御部２０１は、ＣＰＵ２０３、ＨＤＤ２０４、ＲＯＭ２０５、ＲＡＭ２０６、ディスプレイＩ／Ｆ２０７、操作部Ｉ／Ｆ２０８、プリンタＩ／Ｆ２０９、およびスキャナＩ／Ｆ２１０を備える。制御部２０１内の各要素は、内部バス２０２によりそれぞれ通信可能に接続される。
【００３０】
ＣＰＵ２０３は、ＲＯＭ２０５に格納された制御プログラムを実行する。ＨＤＤ２０４は、不揮発性記憶領域であり、画像形成装置１０１を制御する設定値や稼働ログ等を保持する。ＲＯＭ２０５は、読み出し専用の不揮発記憶領域であり、画像形成装置１０１の制御プログラムを保持する。ＲＡＭ２０６は、プログラムを実行するためのワークメモリエリアなど一時記憶領域として用いられる。ＲＡＭ２０６は、不揮発性のＳＲＡＭ（Ｓｔａｔｉｃ  ＲＡＭ）、ＦＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）や、揮発性のＤＲＡＭ（Ｄｙｎａｍｉｃ  ＲＡＭ）などにより構成される。本発明の特長であるカウンタはＦＲＡＭ上に生成されて保持されるものとする。
【００３１】
ディスプレイＩ／Ｆ２０７は、ディスプレイ２１２と制御部２０１とを接続するためのインターフェースである。操作部Ｉ／Ｆ２０８は、操作部２１３と制御部２０１とを接続するためのインターフェースである。プリンタＩ／Ｆ２０９は、プリンタ２１４と制御部２０１とを接続するためのインターフェースである。スキャナＩ／Ｆ２１０は、スキャナ２１５と制御部２０１とを接続するためのインターフェースである。ネットワークＩ／Ｆ２１１は、画像形成装置１０１とＬＡＮ１０２とを接続するためのインターフェース部である。ネットワークＩ／Ｆ２１１を介してＬＡＮ１０２に接続することで、画像形成装置１０１は、さらにその先に位置する他の画像形成装置（不図示）やインターネット１０３と通信を行うことができる。
【００３２】
ディスプレイ２１２は、ユーザの操作や画像形成装置１０１の状態に応じたエラー情報等を表示する。操作部２１３は、ユーザからの操作を受け付けるためのキー入力手段を備える。ユーザは、キー入力手段を用いた入力を通して、スキャナ読み取りやプリント出力に関する各種設定指示や、作動／停止指示を行う。なお、操作部２１３はタッチパネルのようなディスプレイ２１２上で直接操作するものであってもよく、これに限定するものではない。プリンタ２１４は、画像データの記録媒体（紙等）上への印刷を行う。プリンタ２１４で印刷すべき画像データは、制御部２０１からプリンタＩ／Ｆ２０９を介してプリンタ２１４へ転送される。スキャナ２１５は、原稿上の画像を読み取って画像データを生成し、その生成した画像データをスキャナＩ／Ｆ２１０を介して制御部２０１へ転送する。
【００３３】
［ソフトウェア構成］
本願発明に係る画像形成装置１０１のソフトウェア構成の例について、図３を用いて説明する。図３に示した各構成部はソフトウェアを表している。なお、画像形成装置１０１の各ソフトウェアはＲＯＭ２０５もしくはＨＤＤ２０４に保存され、ＣＰＵ２０３にて実行される。また、実行時に使用される各種情報は、ＲＡＭ２０６もしくはＨＤＤ２０４に保持しておき、ソフトウェア機能間での各種情報のやりとりを行う。さらに外部機器との通信は、ネットワークＩ／Ｆ２１１を用いて行う。
【００３４】
以下に各ソフトウェアを説明する。ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）３０１は、入出力機能、ディスクやメモリの管理など、多くのアプリケーションから共通して利用される基本的な機能を提供し、システム全体を管理するシステムソフトウェアである。拡張プログラム実行プラットフォーム３０２は、拡張プログラム３０５の動作に必要なＯＳ３０１上で動作するプラットフォームである。拡張プログラム実行プラットフォーム３０２を適用することで、ＯＳ３０１に依存せずに拡張プログラム３０５を動作させることができる。例えば、Ｊａｖａ（登録商標）アプリケーションが動作するＪａｖａＶＭ等が該当する。
【００３５】
組込プログラム３０３は、プリンタ、ファクシミリ、もしくはスキャナなどの画像形成装置１０１に従来から備わっている機能を制御するための制御プログラムである。拡張プログラムシステムサービス３０４は、拡張プログラム実行プラットフォーム３０２上で動作するプログラムである。拡張プログラムシステムサービス３０４は、拡張プログラム３０５に共通して有用なユーティリティライブラリである。拡張プログラム３０５から拡張プログラムシステムサービス３０４を呼び出すことで、必要に応じたサービスが利用可能となる。
【００３６】
拡張プログラム３０５は、拡張プログラム実行プラットフォーム３０２上で動作するプログラムである。拡張プログラム３０５は、拡張プログラム実行プラットフォーム３０２または拡張プログラムシステムサービス３０４を介してのみ、他の拡張プログラムやＲＡＭ２０６など画像形成装置１０１の各モジュールへアクセスすることができる。拡張プログラムアドイン３０６は、ホストとなる拡張プログラム３０５にアタッチすることで動作するアプリケーションである。拡張プログラムアドイン３０６は、それ単独では動作することができず、必ず、拡張プログラム３０５にアタッチして利用される。また、一つの拡張プログラム３０５に対して、複数の拡張プログラムアドイン３０６をアタッチすることができる。
【００３７】
拡張プログラムシステムサービス３０４が備えるインストール部３０７は、拡張プログラム３０５や拡張プログラムアドイン３０６をインストールするためのプログラムである。インストール部３０７は、拡張プログラム３０５や拡張プログラムアドイン３０６をインストールするためのユーザインターフェースを提供するサーブレット画面を有する。したがって、ユーザは外部装置１０４上のブラウザ（不図示）からインストール部３０７に接続することで、拡張プログラム３０５や拡張プログラムアドイン３０６をインストールすることができる。
【００３８】
組込プログラム３０３は、プリンタ制御部３１１、スキャナ制御部３１０、カウンタ管理部３０８、およびカウンタ保持部３０９を備える。プリンタ制御部３１１およびスキャナ制御部３１０はそれぞれ、画像形成装置１０１が備えるプリンタ２１４およびスキャナ２１５による動作を制御する。カウンタ管理部３０８は、本願発明に係るカウンタを管理する。カウンタ管理部３０８は、インストール部３０７の指示に基づいて、カウンタの生成・削除などを行う。また、カウンタ管理部３０８は、拡張プログラム３０５や拡張プログラムアドイン３０６からのジョブ実施指示を受けて、適切なカウンタをカウントアップする。カウンタ保持部３０９は、各種カウンタ情報を保持する。
【００３９】
ここで、図４を用いて、本願発明に係るカウンタについて説明する。図４は、カウンタの概念図を示す。カウンタ４００には、カウンタ名称４０１、アプリケーションＩＤ４０２、作成日時４０３、削除日時４０４、有効期限４０５、カウント値情報４０６、およびカウント制限値情報４０７などが含まれる。なお、カウンタに含まれる情報の項目はこれに限定するものではなく、必要に応じて項目が増減してよい。また、情報処理装置において、カウンタとして利用可能なリソース（記憶領域）が予め決められていてもよい。カウンタ情報としては、上記に示したように各種情報を含むため、際限なく生成した場合には、リソースを消費し、管理の負荷も高くなる。従って、カウンタを生成できる数は、例えば、“２０”といったように上限が予め決められているものとし、これを超える場合にはカウンタの割り当てを行えないようにしてもよい。
【００４０】
拡張プログラム３０５をインストールすると、その拡張プログラム３０５の識別子であるアプリケーションＩＤに対応付けてカウンタが生成される。アプリケーションＩＤには対応付けられたアプリケーションのＩＤが格納される。拡張プログラム３０５は、例えば、ジョブを実行する際に、自身のアプリケーションＩＤを付加した上でジョブを実行する。そして、拡張プログラム３０５が利用されることにより、その拡張プログラム３０５のアプリケーションＩＤに対応付けられたカウンタがカウントアップされる（カウント値情報４０６）。有効期限４０５やカウント制限値情報４０７は、例えば、アプリーションに対応するライセンスに設定された値が格納される。
【００４１】
拡張プログラム３０５をアンインストールすると、その拡張プログラム３０５のアプリケーションＩＤに対応付けられたカウンタが破棄される。ただし、実際にはカウンタ情報自体は破棄（削除）せずに、カウンタが破棄されているということを示すフラグ（不図示）を立てることとする。この構成により、同じアプリケーションＩＤを有する拡張プログラム３０５が再インストールされた場合に、カウンタを再利用することでカウンタ値を継続して利用できる。
【００４２】
［処理フロー］
図５は、本実施形態において、プログラムがインストールされる際の流れを説明するフローチャートである。各処理は、ＣＰＵ２０３が、ＨＤＤ２０４等に記憶された各種プログラムを読み出して実行することにより実現される。
【００４３】
Ｓ５０１にて、インストール部３０７は、インストール対象のアプリタイプを確認する。前述のとおり、本願発明に係るアプリタイプは「一般アプリ」と「ログインアプリ」に大別される。ログインアプリは認証専用のアプリであるため、ジョブ回数の制限値や有効期限を設けることができず、そもそもカウンタは不要である。従って、本処理により、アプリタイプを判定し、ログインアプリをカウンタ生成の対象から除外している。なお、アプリタイプの確認はアプリ情報ファイルを確認することで判定される。アプリタイプがログインアプリである場合は（Ｓ５０１にてＹＥＳ）Ｓ５１０へ遷移し、アプリタイプがログインアプリでない場合は（Ｓ５０１にてＮＯ）Ｓ５０２へ遷移する。
【００４４】
Ｓ５０２にて、インストール部３０７は、インストール対象が拡張プログラムアドインか否かを判定する。インストール対象が拡張プログラムアドインか否かの情報は、アプリ情報ファイルに記載されており、それを参照することで判定できる。インストール対象が拡張プログラムアドインである場合は（Ｓ５０２にてＮＯ）Ｓ５０３へ遷移し、インストール対象が拡張プログラムアドインでない場合は（Ｓ５０２にてＹＥＳ）Ｓ５０６へ遷移する。
【００４５】
Ｓ５０３にて、インストール部３０７は、インストール対象の拡張プログラムアドインのアプリ情報ファイルを確認し、カウンタ利用の有無を判定する。カウンタを利用する場合（５０３にてＹＥＳ）Ｓ５０４へ遷移し、カウンタを利用しない場合は（Ｓ５０３にてＮＯ）Ｓ５０７へ遷移する。
【００４６】
ここで、図６を用いて、アプリ情報ファイルの構成例について説明する。項目６０１は、カウンタの利用有無を示す項目である。カウンタを利用する場合は、項目６０１に示すＣｏｕｎｔｅｒＵｓａｇｅの値として“ｔｒｕｅ”が指定され、そうでない場合は“ｆａｌｓｅ”が指定される。なお、図６はアプリ情報ファイルの一例であり、これに限定されるものではない。
【００４７】
Ｓ５０４にて、インストール部３０７は、インストール対象の拡張プログラムアドインのインストール処理が、アップデートもしくは新規インストールのいずれであるかを判定する。アップデートの場合は、本実施形態では、アップデート前とアップデート後のカウンタ利用状況の整合性を取る必要があるため、その確認が行われる。処理がアップデートである場合は（Ｓ５０４にてＹＥＳ）Ｓ５０５へ遷移し、新規インストールである場合は（Ｓ５０４にてＮＯ）Ｓ５０６へ遷移する。
【００４８】
Ｓ５０５にて、インストール部３０７は、インストール対象の拡張プログラムアドインに対し、アップデート前後のカウンタ利用の有無の指定が同じであるか否かを確認する。アップデート前後でカウンタ利用の有無が異なる場合、アップデートすることでカウンタ情報が失われてしまうなどの問題が発生する可能性がある。そのため、アップデート時に、カウンタ利用の有無を変更することは許可されない。したがって、本工程において、アップデート前後のカウンタ利用状況が確認される。なお、アップデート前のカウンタ利用状況の確認についても、アプリ情報ファイルを使用する。インストール部３０７は、アップデート前の拡張プログラムアドインのアプリ情報ファイルを確認し、図６に示すＣｏｕｎｔｅｒＵｓａｇｅの値からカウンタの利用状況を確認する。カウンタの利用状況がアップデート前後で変化しない場合は（Ｓ５０５にてＹＥＳ）Ｓ５０６へ遷移し、変化する場合は（Ｓ５０５にてＮＯ）Ｓ５１１へ遷移する。
【００４９】
Ｓ５０６にて、インストール部３０７は、インストール対象に対応するカウンタを作成し、インストール対象をインストールする。インストール部３０７は、カウンタを生成する際に、カウンタ管理部３０８に働きかけて、インストール対象に対応するカウンタを生成する。その後、本処理フローを終了する。
【００５０】
ここで、図７を用いて、インストール時にカウンタが生成される際の流れを説明する。本処理は、図５のＳ５０６の工程に対応する。
【００５１】
Ｓ７０１にて、インストール部３０７は、カウンタ管理部３０８に対して、インストール対象のプログラムに対応するカウンタの生成を要求する。
【００５２】
Ｓ７０２にて、要求を受けたカウンタ管理部３０８は、インストール対象のプログラムに対応するカウンタを生成する。そして、本処理フローを終了する。
【００５３】
図５の説明に戻る。Ｓ５０７にて、インストール部３０７は、インストール対象の拡張プログラムアドインのライセンス内容を確認する。拡張プログラム３０５や拡張プログラムアドイン３０６をインストールする際には、ライセンスが一緒にインストールされる場合がある。ライセンスには対応するプログラムの有効期限やジョブ回数の上限値などを指定することができる。上限管理やジョブ回数の制御はカウンタを用いて行われるため、Ｓ５０３でカウンタを利用しないと宣言している場合、一緒にインストールされるライセンスに有効期限などの記載があると、これらの制御ができない。したがって、Ｓ５０７にて、ライセンス情報とカウンタ利用有無の整合性を確認する。ライセンスに有効期限やジョブ回数の上限が記載されている場合は（Ｓ５０７にてＹＥＳ）Ｓ５１１へ遷移し、記載されていない場合は（Ｓ５０７にてＮＯ）Ｓ５０８へ遷移する。
【００５４】
ここで、図８を用いてライセンスについて説明する。図８はライセンスの一例を示す。項目８０１は、プログラムの有効期限を示す。ライセンスに有効期限を記載することで、対応するプログラムを期限内のみ使用させるように制御できる。項目８０２は、ジョブ制限値である。図８の例では、白黒のプリント枚数を制限している。こうしたライセンスは、プログラムのインストール時にチェックされ、カウンタ生成時に図４における有効期限４０５やカウント制限値情報４０７に設定される。つまり、本願発明では、拡張プログラムアドインが、ライセンスによってその利用などが制限されているか否か応じて、カウンタの割当との整合性を判断する。
【００５５】
図５の説明に戻る。Ｓ５０８にて、インストール部３０７は、インストール対象の拡張プログラムアドインのインストール処理が、アップデートもしくは新規インストールのいずれであるかを判定する。ここでの処理は、Ｓ５０４と同様である。アップデートである場合は（Ｓ５０８にてＹＥＳ）Ｓ５０９へ遷移し、新規インストールである場合は（Ｓ５０８にてＮＯ）Ｓ５１０へ遷移する。
【００５６】
Ｓ５０９にて、インストール部３０７は、インストール対象の拡張プログラムアドインに対し、アップデート前後のカウンタ利用の有無の指定が同じであるか否かを確認する。ここでの処理は、Ｓ５０５と同様である。カウンタの利用状況がアップデート前後で変化しない場合は（Ｓ５０９にてＹＥＳ）Ｓ５１０へ遷移し、変化する場合は（Ｓ５０９にてＮＯ）Ｓ５１１へ遷移する。
【００５７】
Ｓ５１０にて、インストール部３０７は、拡張プログラムアドインを、カウンタを生成せずにインストールする。その後、本処理フローを終了する。
【００５８】
Ｓ５１１にて、インストール部３０７は、拡張プログラムアドインのインストールを行わずに処理を進める。前述のとおり、インストール対象の拡張プログラムアドイン３０６のカウンタの利用の有無とライセンス情報の記載に不整合がある場合や、アップデート前後でカウンタ利用形態が変更される場合はインストールを許可しない。その後、本処理フローを終了する。
【００５９】
以上により、プログラムのインストール時に、アプリ情報ファイルを確認して、カウンタの利用の有無を選択した上で、インストールを制御することができる。また、ライセンス情報と、カウンタの利用形態の不整合を防ぐこともできる。
【００６０】
＜第二の実施形態＞
本実施形態は、カウンタ利用無しで拡張プログラムアドイン３０６をインストールした後に、ユーザがライセンス情報を確認する場合の制御に関する実施形態である。
【００６１】
通常、拡張プログラムアドイン３０６をインストールした場合、ユーザは、インストール部３０７が提供する管理画面を利用して、拡張プログラムアドイン３０６の有効期限情報の確認などができる。ただし、カウンタを利用しない拡張プログラムアドイン３０６の場合、そもそも有効期限やジョブ回数の制限を制御できないため、上記のような管理画面に表示しないように制御する必要がある。以下、本実施形態について詳細に説明する。
【００６２】
本実施形態のシステム構成、ハードウェア構成、及びソフトウェア構成は、第一の実施形態と同様であるため、ここでの説明は省略する。
【００６３】
図９は、ユーザがインストール部３０７のサーブレット画面を用いて、拡張プログラムアドイン３０６のライセンス情報を確認する場合の流れを示すフローチャートである。本処理フローは、画像形成装置１０１のＣＰＵ２０３がＨＤＤ２０４等に格納されたプログラムを読み出して実行することにより実現される。
【００６４】
Ｓ９０１にて、インストール部３０７は、ユーザ指示に基づく外部装置１０４からの管理画面のリクエストを受信する。インストール部３０７は、拡張プログラム３０５の管理画面を提供するためのサーブレット機能を提供している。したがって、ユーザは、外部装置１０４上のブラウザ（不図示）を用いてインストール部３０７にアクセスすることで、管理画面を利用できる。
【００６５】
Ｓ９０２にて、インストール部３０７は、管理対象の拡張プログラムアドイン３０６のカウンタ利用状況を確認する。管理画面では、該当する拡張プログラムアドイン３０６の有効期限やジョブ回数などを確認することができる。しかしながら、カウンタを利用しない拡張プログラムアドイン３０６の場合は、そういった情報を管理していないため、管理画面上も表示させない。該当する拡張プログラムアドイン３０６がカウンタを利用している場合は（Ｓ９０２にてＹＥＳ）Ｓ９０３へ遷移し、カウンタを利用していない場合は（Ｓ９０２にてＮＯ）Ｓ９０４へ遷移する。
【００６６】
Ｓ９０３にて、インストール部３０７は、ライセンス情報を表示するように制御された管理画面のデータを送信する。該当する拡張プログラムアドイン３０６がカウンタを利用している場合は、インストール部３０７は、外部装置１０４に対しリクエストに応じた拡張プログラムのライセンス情報を表示するように制御された管理画面を提供する。その後、本処理フローを終了する。
【００６７】
Ｓ９０４にて、インストール部３０７は、ライセンス情報を表示しないように制御された管理画面のデータを送信する。その後、本処理フローを終了する。
【００６８】
図１０を用いて、管理画面の例について説明する。図１０は拡張プログラムアドイン３０６の情報を提供するための管理画面の一例である。図１０（Ａ）は、カウンタを利用しない拡張プログラムに対する管理画面の表示例を示す。図１０（Ｂ）は、カウンタを利用する拡張プログラムに対する管理画面の表示例を示す。ユーザは、インストール部３０７が提供するサーブレット画面にアクセスすることで、図１０の様な画面を、外部装置１０４のブラウザ上に表示できる。
【００６９】
図１０（Ａ）において、項目１００１は、カウンタを利用していない拡張プログラムアドイン３０６のライセンス情報に関する表示例である。カウンタを利用しない場合はライセンスの操作などが行えないため、有効期限やジョブ回数の制限値などのライセンスに関する詳細情報が非表示となっている。なお、図１０（Ａ）に示すように、例えば、ライセンスがインストール済みであるなどのカウンタとは直接は関係の無い簡易な情報のみを表示するようにしてもよい。
【００７０】
図１０（Ｂ）において、項目１００２は、カウンタを利用している拡張プログラムアドイン３０６のライセンス情報に関する表示例である。この場合、管理画面上で、拡張プログラムアドインに対する有効期限やカウンタの状態など、ライセンスに関する詳細な情報を確認することができる。
【００７１】
以上により、カウンタの利用形態に応じて管理画面の表示内容を変更し、ユーザビリティを向上させることができる。
【００７２】
＜第三の実施形態＞
本実施形態では、１つの拡張プログラム３０５に対して、複数の拡張プログラムアドイン３０６がアタッチされる場合に、拡張プログラムアドイン３０６間で１つのカウンタを共有する構成について説明する。本実施形態は、下記の３つのプロセスに分けて順に説明する。
【００７３】
（１）拡張プログラムアドインのインストール
（２）拡張プログラムアドインのカウンタの利用
（３）拡張プログラムアドインのアンインストール
本実施形態のシステム構成、ハードウェア構成、及びソフトウェア構成は、第一の実施形態と同様であるため、ここでは説明を省略する。
【００７４】
［拡張プログラムアドインのインストール］
図１１は、インストール時に複数の拡張プログラムアドイン３０６間でカウンタを共有する場合の流れを説明するフローチャートである。本処理フローは、画像形成装置１０１のＣＰＵ２０３がＨＤＤ２０４等に格納されたプログラムを読み出して実行することにより実現される。
【００７５】
Ｓ１１０１にて、インストール部３０７は、拡張プログラムアドイン３０６のインストールの指示を受け付ける。ここでは、拡張プログラムアドイン３０６がカウンタを共有する設定でインストールされると仮定する。その場合、既に、同じホストとなる拡張プログラム３０５にアタッチされた別の拡張プログラムアドイン３０６がカウンタを生成していれば、新規にカウンタを生成しない。ここでのインストール指示は、外部装置１０４を介して受信してもよいし、画像形成装置１０１の操作部２１３を介して受信してもよい。
【００７６】
ここで、図１２を用いて、本実施形態に係るカウンタの共有を指定するためのアプリ情報ファイルについて説明する。項目１２０１は、カウンタを他の拡張プログラムアドイン３０６と共有するか否かを指定する共有設定の項目である。カウンタを共有する場合は、ＣｏｕｎｔｅｒＳｈａｒｅにて示される項目１２０１の値に“ｔｒｕｅ”が指定される。また、共有しない場合は項目１２０１の値に“ｆａｌｓｅ”が指定される。なお、図１２はアプリ情報ファイルの一例であり、これに限定されるものではない。
【００７７】
図１１の説明に戻る。Ｓ１１０２にて、インストール部３０７は、ホストとなる拡張プログラム３０５に既に他の拡張プログラムアドイン３０６がアタッチされているか否かを確認する。既に他の拡張プログラムアドイン３０６がアタッチされている場合、それらの拡張プログラムアドイン３０６に対応付けて既にカウンタが生成されている可能性がある。生成されている場合はカウンタを共有することで新規にカウンタを生成する必要がない。既に拡張プログラムアドイン３０６がアタッチされている場合は（Ｓ１１０２にてＹＥＳ）Ｓ１１０３へ遷移し、アタッチされていない場合は（Ｓ１１０２にてＮＯ）Ｓ１１０５へ遷移する。
【００７８】
Ｓ１１０３にて、インストール部３０７は、ホストにアタッチされている他の拡張プログラムアドイン３０６が既にカウンタを生成しているか否かを確認する。インストール部３０７は、カウンタ管理部３０８に問い合わせ、カウンタの生成状況を確認する。既にカウンタが生成されている場合は（Ｓ１１０３にてＹＥＳ）Ｓ１１０４へ遷移し、生成されていない場合は（Ｓ１１０３にてＮＯ）Ｓ１１０５へ遷移する。
【００７９】
Ｓ１１０４にて、インストール部３０７は、カウンタを新規生成しないように制御する。既に他の拡張プログラムアドイン３０６がカウンタを生成しているため、ここではカウンタを生成しない。その後、本処理フローを終了する。
【００８０】
Ｓ１１０５にて、インストール部３０７は、カウンタを新規生成する。他に拡張プログラムアドイン３０６がアタッチされていない場合や、アタッチされているが、まだカウンタを生成していない場合などに、本工程にて、インストール部３０７は、新規にカウンタを生成する。インストール部３０７は、カウンタ管理部３０８にカウンタの生成を要求し、カウンタ管理部３０８がカウンタを生成する。その後、本処理フローを終了する。
【００８１】
以上により、インストール時に他の拡張プログラムアドイン３０６のカウンタ生成状況を確認した上で、必要な時のみカウンタを生成することができる。
【００８２】
［拡張プログラムアドインのカウンタの利用］
図１３は、拡張プログラムアドイン３０６が共有されているカウンタを利用する際の流れを説明したフローチャートである。本処理フローは、画像形成装置１０１のＣＰＵ２０３がＨＤＤ２０４等に格納されたプログラムを読み出して実行することにより実現される。
【００８３】
Ｓ１３０１にて、拡張プログラムアドイン３０６は、インストール部３０７に対して、カウンタの利用状況を確認する。本実施形態では、複数の拡張プログラムアドイン３０６間でカウンタを共有しているため、どれか１つの拡張プログラムアドイン３０６に代表してカウンタが対応付けて生成されている。そのため、拡張プログラムアドイン３０６は、どの拡張プログラムアドイン３０６に対応付けてカウンタが生成されているのかを確認する必要がある。
【００８４】
Ｓ１３０２にて、インストール部３０７は、問い合わせを行った拡張プログラムアドイン３０６に対し、共有するカウンタが対応付けられている拡張プログラムアドインに対応するアプリケーションＩＤを返却する。前述のとおり、カウンタを共有する場合は、どれか１つの拡張プログラムアドイン３０６に対応付けてカウンタが生成されている。そのため、インストール部３０７は、共有しているカウンタが対応付けられている拡張プログラムアドインのアプリケーションＩＤを返却する。
【００８５】
Ｓ１３０３にて、拡張プログラムアドイン３０６は、インストール部３０７から取得したアプリケーションＩＤを用いてジョブを実行する。ジョブを実行する際、拡張プログラムアドイン３０６は、ジョブにアプリケーションＩＤを付加して、カウンタ管理部３０８に対して実行指示を行う。指示を受けたカウンタ管理部３０８は、アプリケーションＩＤに対応するカウンタをカウントアップする。その後、本処理フローを終了する。
【００８６】
以上により、複数の拡張プログラムアドイン３０６間でカウンタを共有する場合にも、共有されたカウンタを適切に利用できる。
【００８７】
［拡張プログラムアドインのアンインストール］
図１４は、拡張プログラムアドインをアンインストールする際の処理の流れを説明するフローチャートである。本処理フローは、画像形成装置１０１のＣＰＵ２０３がＨＤＤ２０４等に格納されたプログラムを読み出して実行することにより実現される。
【００８８】
Ｓ１４０１にて、インストール部３０７は、アンインストール対象の拡張プログラムアドイン３０６に対応付けてカウンタが生成されているか否かを確認する。拡張プログラムアドイン３０６に対応付けてカウンタが生成されている場合は（Ｓ１４０１にてＹＥＳ）Ｓ１４０２へ、生成していない場合は（Ｓ１４０１にてＮＯ）Ｓ１４０４へ遷移する。
【００８９】
Ｓ１４０２にて、インストール部３０７は、同一ホストにアタッチされた他の拡張プログラムアドイン３０６が存在するか否かを確認する。他の拡張プログラムアドイン３０６がアタッチされている場合、アンインストール対象の拡張プログラムアドインに対応付けられたカウンタを破棄すると、他の拡張プログラムアドイン３０６のジョブ回数等をカウントできなくなる。そのため、他の拡張プログラムアドイン３０６が存在する場合はカウンタの破棄を行わず、そのカウンタに関する情報を維持する。他の拡張プログラムアドイン３０６が残っている場合は（Ｓ１４０２にてＹＥＳ）Ｓ１４０４へ遷移し、残っていない場合は（Ｓ１４０２にてＮＯ）Ｓ１４０４へ遷移する。
【００９０】
Ｓ１４０３にて、インストール部３０７は、アンインストール対象の拡張プログラムアドインに対応付けて生成されているカウンタを破棄する。その後、本処理フローを終了する。
【００９１】
Ｓ１４０４にて、インストール部３０７は、カウンタを破棄しないように制御する。これにより、他の拡張プログラムアドイン３０６は継続してカウンタを利用可能となる。このとき、アンインストール対象の拡張プログラムアドインがアンインストールされた場合でも、インストール部３０７は、その共有カウンタが対応付けられていた拡張プログラムアドインの情報（アプリケーションＩＤ）は保持し続けるものとする。これにより、図１３に示すＳ１３０２の処理において、共有カウンタに対応付けられていた拡張プログラムアドインがアンインストールされていたとしても、インストール部３０７は、そのアプリケーションＩＤを通知することができる。その後、本処理フローを終了する。
【００９２】
以上により、拡張プログラムアドイン３０６のアンインストール時に適切にカウンタの破棄を行える。
【００９３】
＜その他の実施形態＞
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９４】
１０１…画像形成装置
１０４…外部装置
３０５…拡張プログラム
３０６…拡張プログラムアドイン
３０８…カウンタ管理部
３０９…カウンタ保持部
【図１】
2017010081.tif 000003
【図２】
2017010081.tif 000004
【図３】
2017010081.tif 000005
【図４】
2017010081.tif 000006
【図５】
2017010081.tif 000007
【図６】
2017010081.tif 000008
【図７】
2017010081.tif 000009
【図８】
2017010081.tif 000010
【図９】
2017010081.tif 000011
【図１０】
2017010081.tif 000012
【図１１】
2017010081.tif 000013
【図１２】
2017010081.tif 000014
【図１３】
2017010081.tif 000015
【図１４】
2017010081.tif 000016