(57)【要約】      （修正有）【課題】既存の拡張プログラムに手を加えずに、拡張プログラムを期限付きで一定期間もしくは一定回数だけ使用できる情報処理装置を提供する。【解決手段】情報処理装置の拡張手段は、外部サーバーからダウンロードが可能な拡張プログラムの情報を提供する紹介プログラムをダウンロードし、紹介プログラムのインストールの制御を行う手段と、ダウンロードが可能な拡張プログラムの情報をインストールされた紹介プログラムから取得する手段と、ダウンロードが可能な拡張プログラムのインストールの指示を受け付けたことに応じて、拡張プログラムを外部サーバーからダウンロードし、拡張プログラムのインストールの制御を行う手段と、紹介プログラムから取得された情報に含まれる記拡張プログラムの期限情報に基づいて、拡張プログラムのアンインストールの制御を行う手段とを有する。【選択図】図５
2016035714.tif 000002
【特許請求の範囲】
【請求項１】
機能を拡張するための拡張プログラムを外部サーバーからダウンロードし、インストールの制御を行う拡張手段を備える情報処理装置であって、
前記拡張手段は、
前記外部サーバーからダウンロードが可能な拡張プログラムの情報を提供する紹介プログラムを前記外部サーバーからダウンロードし、前記紹介プログラムのインストールの制御を行う第一のインストール制御手段と、
ダウンロードが可能な拡張プログラムの情報を前記インストールされた紹介プログラムから取得する取得手段と、
前記ダウンロードが可能な拡張プログラムのインストールの指示を受け付けたことに応じて、前記取得手段により前記紹介プログラムから取得された情報を基に前記拡張プログラムを前記外部サーバーからダウンロードし、前記拡張プログラムのインストールの制御を行う第二のインストール制御手段と、
前記取得手段により前記紹介プログラムから取得された情報に含まれる前記拡張プログラムの期限情報に基づいて、インストールされた前記拡張プログラムのアンインストールの制御を行うアンインストール制御手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記期限情報に基づいて前記アンインストール制御手段によりアンインストールの制御が行われる際に、期限切れによりアンインストールされる旨を通知するための通知画面を表示する表示手段を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記表示手段により表示される画面は、前記拡張プログラムのタイプに応じて、表示の方法が切り替えられることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記拡張プログラムのタイプは、アプレットタイプ、サーブレットタイプ、およびエスプレットタイプの少なくともいずれかであることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記期限情報は、拡張プログラムの使用回数もしくはインストールからの経過日数の少なくともいずれかに基づく制限が定義されていることを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記期限情報は、拡張プログラムが使用する機能ごとに使用回数の制限が定義されていることを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記期限情報は、拡張プログラムが期限切れである際に前記表示手段による前記通知画面を表示せずに当該拡張プログラムのアンインストールの制御を行うか否かの設定を含み、
前記表示手段は、前記設定に基づいて前記通知画面の表示の切り替えを行うことを特徴とする請求項２に記載の情報処理装置。
【請求項８】
ユーザーからのインストールの指示を受け付けた拡張プログラムが、前記期限情報に定義された制限に達した場合、自ら停止する機能を備える拡張プログラムである場合、前記アンインストール制御手段は、当該拡張プログラムに対するアンインストールの制御は行わないことを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
機能を拡張するための拡張プログラムを外部サーバーからダウンロードし、インストールの制御を行う拡張手段を備える情報処理装置におけるプログラム管理方法であって、
前記拡張手段において、
前記外部サーバーからダウンロードが可能な拡張プログラムの情報を提供する紹介プログラムを前記外部サーバーからダウンロードし、前記紹介プログラムのインストールの制御を行う第一のインストール制御工程と、
ダウンロードが可能な拡張プログラムの情報を前記インストールされた紹介プログラムから取得する取得工程と、
前記ダウンロードが可能な拡張プログラムのインストールの指示を受け付けたことに応じて、前記取得工程にて前記紹介プログラムから取得された情報を基に前記拡張プログラムを前記外部サーバーからダウンロードし、前記拡張プログラムのインストールの制御を行う第二のインストール制御工程と、
前記取得工程にて前記紹介プログラムから取得された情報に含まれる前記拡張プログラムの期限情報に基づいて、インストールされた前記拡張プログラムのアンインストールの制御を行うアンインストール制御工程と
を有することを特徴とする情報処理装置におけるプログラム管理方法。
【請求項１０】
コンピュータを、
外部サーバーからダウンロードが可能な拡張プログラムの情報を提供する紹介プログラムを前記外部サーバーからダウンロードし、前記紹介プログラムのインストールの制御を行う第一のインストール制御手段、
ダウンロードが可能な拡張プログラムの情報を前記インストールされた紹介プログラムから取得する取得手段、
前記ダウンロードが可能な拡張プログラムのインストールの指示を受け付けたことに応じて、前記取得手段により前記紹介プログラムから取得された情報を基に前記拡張プログラムを前記外部サーバーからダウンロードし、前記拡張プログラムのインストールの制御を行う第二のインストール制御手段、
前記取得手段により前記紹介プログラムから取得された情報に含まれる前記拡張プログラムの期限情報に基づいて、インストールされた前記拡張プログラムのアンインストールの制御を行うアンインストール制御手段
として機能させるためのプログラム。
【請求項１１】
請求項１乃至８のいずれか一項に記載の情報処理装置と、前記情報処理装置からの要求に応じて拡張プログラムを配信する外部サーバーとを含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置におけるプログラム管理方法、プログラム、およびシステムに関する。
【背景技術】
【０００２】
近年、オフィスに設置される画像形成装置には、機能拡張用のプログラムをインストールして、動的に画像形成装置の機能を拡張できるシステムが普及している。この種のシステムとしては、例えば、キヤノン株式会社のＭＥＡＰ（登録商標）などが挙げられる。
【０００３】
また、管理対象のアプリケーションのライセンス情報や稼働状況を監視し、アプリケーションの不正利用を防止する技術が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−８４１３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したシステムにおいて、有償の機能拡張用のプログラムをある条件の下、無償で使用させることを想定した場合、機能拡張用のプログラムを変更し、無償で使用可能な条件を保持し、条件に応じて機能拡張用のプログラムを停止する機能を持たせる必要がある。また、今後開発する機能拡張用のプログラムにおいても、ある条件によって停止する機能拡張用プログラムと、通常の機能拡張用プログラムの二重開発、二重管理が必要となり、メンテナンス及び開発コストが高くなってしまうという課題がある。
【０００６】
また、特許文献１のようにアプリケーションを監視し、利用を停止させる機能を用いても、後からインストールする機能拡張用プログラムの無償で使用可能な条件を監視手段に追加する必要があり、画像形成装置の機能拡張が必要となってしまう。そのため、メンテナンスの負荷がかかってしまう。
【０００７】
本発明は上記課題に鑑み、容易且つ低コストに機能拡張用プログラムの期限管理を行い、期限付きで機能拡張用プログラムを使用可能とする手段を有する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するために本願発明は以下の構成を有する。すなわち、機能を拡張するための拡張プログラムを外部サーバーからダウンロードし、インストールの制御を行う拡張手段を備える情報処理装置であって、前記拡張手段は、前記外部サーバーからダウンロードが可能な拡張プログラムの情報を提供する紹介プログラムを、前記外部サーバーからダウンロードし、インストールの制御を行う第一のインストール制御手段と、ダウンロードが可能な拡張プログラムの情報を前記インストールされた紹介プログラムから取得する取得手段と、前記ダウンロードが可能な拡張プログラムを、ユーザーからのインストールの指示を受け付けたことに応じて前記外部サーバーからダウンロードし、インストールの制御を行う第二のインストール制御手段と、前記取得手段にて取得された拡張プログラムの情報に含まれる期限情報に基づいて、前記インストールされた拡張プログラムのアンインストールの制御を行うアンインストール制御手段とを有する。
【発明の効果】
【０００９】
本発明によれば、既存の拡張プログラムに手を加えずに、拡張プログラムを期限付きで一定期間もしくは一定回数だけ使用することが実現できる情報処理装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】本願発明に係る配信システムの構成例を示す図。
【図２】本願発明に係る画像形成装置の主要部の構成例を示す図。
【図３】本願発明に係る画像形成装置のソフトウェアの構成例を示す図。
【図４】本願発明に係る画像形成装置のメインメニュー画面の構成例を示す図。
【図５】本願発明に係る配信システムの機能構成例を示す図。
【図６】本願発明に係る配信可能拡張プログラム一覧画面の例を示す図。
【図７】本願発明に係る配信可能拡張プログラム詳細画面の例を示す図。
【図８】本願発明に係る拡張プログラムの期限切れを通知する画面の例を示す図。
【図９】本願発明に係る紹介プログラムの機能構成の例を示す図。
【図１０】本願発明に係る配信可能拡張プログラム情報構成の例を示す図。
【図１１】本願発明に係る配信可能拡張プログラム情報に含まれる情報の例を示す図。
【図１２】本願発明に係る配信可能拡張プログラム情報に含まれる情報の例を示す図。
【図１３】本願発明に係る配信可能拡張プログラム情報に含まれる情報の例を示す図。
【図１４】本願発明に係る配信可能拡張プログラム情報に含まれる情報の例を示す図。
【図１５】本願発明に係る配信可能拡張プログラム情報に含まれる情報の例を示す図。
【図１６】本願発明に係る配信可能拡張プログラム情報に含まれる情報の例を示す図。
【図１７】本願発明に係る配信可能拡張プログラム情報に含まれる情報の例を示す図。
【図１８】本願発明に係る拡張プログラム期限管理テーブルの例を示す図。
【図１９】本願発明に係る紹介プログラムのダウンロード処理を示す図。
【図２０】本願発明に係る紹介プログラムの更新処理を示す図。
【図２１】本願発明に係る拡張プログラムのダウンロード処理を示す図。
【図２２】本願発明に係るダウンロードボタンのアイコン切り替え処理を示す図。
【図２３】本願発明に係る拡張プログラムのインストール処理を示す図。
【図２４】本願発明に係る拡張プログラムの期限管理処理を示す図。
【図２５】本願発明に係る拡張プログラムの停止処理を示す図。
【発明を実施するための形態】
【００１１】
＜第一の実施形態＞
［システム構成］
以下、本発明に係る一実施形態について図面を用いて説明する。図１は、本願発明に係るプログラム管理方法を適用可能な画像形成装置を含む配信システムの機器構成の例を示す図である。本願発明の画像形成装置を含む配信システムは、画像形成装置１０１、ネットワーク１０２、および配信サーバー１０３によって構成される。なお、不図示ではあるが画像形成装置１０１はクライアントとも接続されており、クライアントからの指示に応じて所定の処理を実行するものである。クライアント（不図示）はＷｅｂブラウザーを有し、ＷｅｂブラウザーはリクエストをＨＴＴＰ形式で画像形成装置１０１のＷｅｂサーバーシステムに送信する。本願発明に係るアプリケーションについてはＷｅｂブラウザーと連携するものなど複数のタイプが存在するがこのタイプについての詳細は後述する。
【００１２】
画像形成装置１０１は、スキャナ、プリンタ、ファクシミリ、ファイル送信機能等、複数の機能を統合した複合機（ＭＦＰ：Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌ）である。また、画像形成装置１０１は、ネットワーク１０２に接続している。ネットワーク１０２は、いわゆるコンピューターネットワークであり、接続されている機器間で自由に情報交換することができる通信網である。ネットワーク１０２は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットといったように様々な規模のものが存在するが、本実施形態においては、どのような規模のものであっても良い。配信サーバー１０３は、拡張プログラムを保持、管理し、画像形成装置１０１等の他の機器からの要求に応じて拡張プログラムを配信することができる外部サーバーである。また、配信サーバー１０３は、ネットワーク１０２に接続している。画像形成装置１０１と配信サーバー１０３は、共にネットワーク１０２に接続されているため、自由に情報交換することができる。
【００１３】
なお、図１においては、画像形成装置１０１は１台が示されているが、複数含まれていてもよい。また、配信サーバー１０３の処理は、物理的に複数の情報処理装置にて分散処理されても構わない。また、本実施形態においては、機能拡張を行う装置として、画像形成装置を例に挙げているが、ＰＣなど他の情報処理装置であっても構わない。
【００１４】
［画像形成装置］
図２は、画像形成装置１０１の主要部の構成例を示すブロック図である。画像形成装置１０１はコントローラユニット２００を含む。コントローラユニット２００には、画像入力デバイスであるスキャナ２７０、画像出力デバイスであるプリンタ２９５、および操作部２１２が接続される。コントローラユニット２００は、スキャナ２７０で読み取られた画像データをプリンタ２９５により印刷出力するコピー機能を実現するための制御を行う。
【００１５】
コントローラユニット２００は、ＣＰＵ２０１を有する。ＣＰＵ２０１は、ＲＯＭ２０３に格納されているブートプログラムによりＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を立ち上げる。ＣＰＵ２０１は、ＯＳ上で、ＨＤＤ（ハードディスクドライブ）２０４に格納されているプログラムを実行し、これによって各種処理を実行する。ＲＡＭ２０２は、作業領域を提供するとともに、画像データを一時記憶するための画像メモリー領域を提供する。ＲＡＭ２０２は、ＣＰＵ２０１の作業領域としても用いられる。ＨＤＤ２０４は、不揮発性の記憶領域であり、各種プログラムや画像データを格納する。
【００１６】
ＣＰＵ２０１には、システムバス２０７を介して、ＲＯＭ２０３、ＲＡＭ２０２、操作部Ｉ／Ｆ（インターフェース）２０６、ネットワークＩ／Ｆ２１０、ＵＳＢホストＩ／Ｆ２１３、および画像バスＩ／Ｆ２０５が接続される。操作部Ｉ／Ｆ２０６は、タッチパネルを有する操作部２１２とのインターフェースであり、操作部２１２に表示すべき画像データを操作部２１２に対して出力する。また、操作部Ｉ／Ｆ２０６は、操作部２１２においてユーザーにより入力された情報をＣＰＵ２０１に送出する。
【００１７】
ネットワークＩ／Ｆ２１０は、画像形成装置１０１をネットワーク１０２に接続するためのインターフェースである。ＵＳＢホストＩ／Ｆ２１３は、ＵＳＢストレージ２１４と通信するインターフェースである。ＵＳＢホストＩ／Ｆ２１３は、ＨＤＤ２０４に格納されているデータをＵＳＢストレージ２１４に出力する。また、ＵＳＢホストＩ／Ｆ２１３は、ＵＳＢストレージ２１４に格納されているデータを取得し、ＣＰＵ２０１に渡す。ＵＳＢホストＩ／Ｆ２１３には、ＵＳＢストレージ２１４を含む複数のＵＳＢデバイスが接続可能である。ＵＳＢストレージ２１４は、データを格納する外部記憶装置であり、ＵＳＢホストＩ／Ｆ２１３に対して着脱可能である。
【００１８】
画像バスＩ／Ｆ２０５は、システムバス２０７と、画像データを高速で転送する画像バス２０８とを接続し、データ形式を変換するためのバスブリッジである。画像バス２０８は、ＰＣＩバスまたはＩＥＥＥ１３９４等によって構成される。画像バス２０８上には、デバイスＩ／Ｆ２２０、スキャナ画像処理部２８０、およびプリンタ画像処理部２９０が設けられる。デバイスＩ／Ｆ２２０には、スキャナ２７０およびプリンタ２９５が接続され、デバイスＩ／Ｆ２２０は、画像データの同期系／非同期系の変換を行う。スキャナ画像処理部２８０は、入力画像データに対し補正、加工、編集を行う。プリンタ画像処理部２９０は、プリント出力画像データに対してプリンタ２９５に応じた補正、解像度変換などを行う。
【００１９】
［ソフトウェア構成］
図３は、画像形成装置１０１のソフトウェアの構成例を示す図である。ＯＳ３０１上には、プリンタやＦＡＸ、スキャナなどの制御用プログラムであるネイティブプログラム３０２、拡張プログラム３０５を実行するためのプラットフォームである拡張プログラム実行プラットフォーム３０３が動作している。拡張プログラム実行プラットフォーム３０３は、例えば、ＯＳＧｉ（Ｏｐｅｎ  Ｓｅｒｖｉｃｅ  Ｇａｔｅｗａｙ  ｉｎｉｔｉａｔｉｖｅ）フレームワークを実装した、プログラムの動的な追加及び削除を実現するためのプログラムである。拡張プログラムシステムサービス３０４は、拡張プログラム３０５に共通して用いられる機能を提供するサービスである。拡張プログラム３０５から拡張プログラムシステムサービス３０４の機能を呼び出すことにより、拡張プログラム３０５が利用する共通機能を開発する手間を省くことができる。
【００２０】
拡張プログラム３０５は、拡張プログラム実行プラットフォーム３０３上で動作する画像形成装置１０１の機能を拡張するためのプログラムであり、必要に応じてインストール／アンインストールが可能である。また、拡張プログラム３０５は、必要に応じて開始／停止が可能であるとし、停止されている場合には処理のためのリソースは消費せず、サービスや機能は提供しない。拡張プログラム３０５は、拡張プログラム実行プラットフォーム３０３または拡張プログラムシステムサービス３０４を介してのみ、他の拡張プログラムやＲＡＭ２０２など画像形成装置１０１の各モジュールへアクセスすることができる。また、ＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）を持つ拡張プログラム３０５は、画像形成装置１０１の操作部２１２に表示されるメインメニュー画面にアイコンを表示することができる。操作部Ｉ／Ｆ２０６は、ユーザーが操作部２１２を介してアイコンを選択したことを検知すると、その旨をＣＰＵ２０１に送信する。その旨を受け取ったＣＰＵ２０１は、ユーザーに選択された拡張プログラムのＵＩを操作部２１２に表示する。
【００２１】
拡張プログラム３０５には、図５を用いて後述するダウンロードプログラム５００が含まれてもよい。なお、ダウンロードプログラム５００は、それ自身が拡張プログラム３０５をダウンロードし、画像形成装置１０１にインストールさせる機能を有している。そのため、本実施形態では、他の拡張プログラムとは別の方法で画像形成装置１０１にインストールされるものとする。別の方法とは例えば、画像形成装置１０１が標準機能として備える、マニュアル操作により拡張プログラムをインストールする機能による方法等が挙げられる。また、拡張プログラム３０５の一種として、紹介プログラム９００が挙げられる。紹介プログラム９００の詳細は後述するが、紹介プログラム９００もダウンロードプログラム５００によってインストール制御がなされる。本明細書において、便宜上、紹介プログラム９００のインストールを制御することを「第一のインストール制御」とも称し、紹介プログラム９００以外の拡張プログラム３０５のインストールを制御することを「第二のインストール制御」とも称する。
【００２２】
尚、図３に示すソフトウェア構成は基本的な部分のみ記載したものであり、実施環境によっては他のサービス等が含まれていても良い。また設定を制限するなどの理由により、不要なサービスは無くても良い。
【００２３】
［メインメニュー画面］
図４は、画像形成装置１０１の操作部２１２に表示されるメインメニュー画面４００の構成例を示す図である。メインメニュー画面４００は、プログラムアイコン表示エリア４０１、標準プログラムアイコン４０２、および拡張プログラムアイコン４０３を有する。プログラムアイコン表示エリア４０１は、画像形成装置１０１で現在操作可能なプログラム（機能）のアイコンを表示するエリアである。標準プログラムアイコン４０２は、画像形成装置１０１の制御プログラムが備える標準機能を操作するためのＵＩ（不図示）を表示させるためのアイコンである。拡張プログラムアイコン４０３は、画像形成装置１０１にインストールされた拡張プログラム３０５を操作するためのＵＩ（不図示）を表示させるためのアイコンである。メインメニュー画面４００は、例えば、電源投入時や指示された処理が完了或いは中断された場合などに表示される。
【００２４】
［ダウンロードプログラム及び拡張プログラムシステムサービス］
以下、本実施形態に係るダウンロードプログラム５００及び拡張プログラムの期限管理に使用する拡張プログラムシステムサービス３０４について説明する。図５は、ダウンロードプログラム５００及び拡張プログラムシステムサービス３０４の機能構成の例を示す図である。ＣＰＵ２０１が各機能に応じたプログラムを実行することにより、各機能は実現される。
【００２５】
本実施形態において、拡張プログラム３０５は３つのタイプに分類されるものとして説明する。拡張プログラムは、Ｊａｖａ（登録商標）プログラムで記述され、画像形成装置に対して動的に追加および削除することが可能なアプリケーションプログラムである。第１のタイプは、操作部２１２にユーザインタフェースを表示するアプリケーションであるアプレットタイプである。アプレットタイプのアプリケーションは、画像形成装置１０１のＷｅｂブラウザーにダウンロードされ、そのＷｅｂブラウザーに埋め込まれて実行されるアプリケーションである。なお、Ｗｅｂブラウザーに埋め込まれずとも、単独でＵＩ表示や処理を行うタイプのアプリケーションもアプレットタイプに含まれる。アプレットタイプのアプリケーションの起動および実行の指示は、画像形成装置１０１の操作画面を介して行われる。
【００２６】
第２のタイプは、ネットワークにアクセス可能なクライアントのＷｅｂブラウザー（不図示）上にユーザインタフェースを表示するサーブレットタイプである。サーブレットタイプのアプリケーションは、Ｗｅｂサーバー上で実行されるモジュールであり、クライアントのＷｅｂブラウザーからの指示に従い処理を行い、その結果をクライアントへ返すタイプとなる。サーブレットタイプのアプリケーションは、クライアントのＷｅｂブラウザーにそのアプリケーションのＷｅｂサーバー（例えば、５０８）のＵＲＬを入力することで送信されるリクエストに応じて起動する。そして、クライアント側からの要求に応じて、サーバー側で処理を行い、その処理結果をクライアントに応答するものである。
【００２７】
第３のタイプは、独自のユーザインタフェースを持たないエスプレットタイプであり、アプレット、またはサーブレットタイプのアプリケーション等からの指示に応じて起動、実行を行うタイプである。よって、エスプレットタイプのアプリケーションはＵＩを表示する機能がなく、アプリケーションに関する特定の情報を表示するためには別のプログラムとの連携が必要になる。
【００２８】
上記に示すように各アプリケーションは、そのタイプに応じてユーザインタフェースの構成や情報の提示方法が異なる。そのため、本願発明では、タイプに応じた処理結果の提示方法（アプリケーションの期限切れの通知等）を切り替える。その具体的な方法については、フローチャート等と共に後述する。なお、アプレットやサーブレットの例として、Ｊａｖａ（登録商標）アプレット、Ｊａｖａ（登録商標）サーブレットなどが挙げられる。
【００２９】
ダウンロードプログラム５００は、拡張プログラム情報管理部５０１、拡張プログラムダウンロード部５０２、拡張プログラム情報表示制御部５０３、拡張プログラム期限管理部５０４、経過時間管理部５０５、および使用回数管理部５０６を有する。拡張プログラム情報管理部５０１は、配信サーバー１０３からダウンロードすることができる拡張プログラム３０５の情報を管理するための機能部である。拡張プログラム情報管理部５０１は、図９を用いて後述する紹介プログラム９００の識別情報および紹介プログラム９００をダウンロードする際に必要となるキー情報、および期限情報等を予め保持する。また、拡張プログラム情報管理部５０１は、拡張プログラムダウンロード部５０２に対し、紹介プログラム９００のダウンロードを指示する機能を有する。ダウンロードの指示は、紹介プログラム９００の識別情報に基づいて行う。更に、拡張プログラム情報管理部５０１は、紹介プログラムとの情報のやり取りをするための機能も有する。尚、識別情報とは、配信サーバー１０３において、拡張プログラムを一意に識別するための情報である。また、認証情報に対応付けられたキー情報は、具体的には、ライセンスキーやプロダクトキー、ライセンスアクセス番号などが該当する。このキー情報は、アプリケーションのダウンロードやインストール、もしくはインストール可能なアプリケーションを閲覧する際に必要となるものである。本実施形態では、画像形成装置１０１は、拡張プログラム３０５それぞれのキー情報は、紹介プログラム９００に含まれているものとする。
【００３０】
拡張プログラムダウンロード部５０２は、紹介プログラム９００に保持されているキー情報等を用いて配信サーバー１０３から拡張プログラム３０５をダウンロードし、インストールさせる。拡張プログラム情報表示制御部５０３は、配信サーバー１０３からダウンロード可能な拡張プログラムの情報を、拡張プログラム情報管理部５０１から取得し、その情報に基づいて画面を構成し、操作部２１２を介してユーザーに提供する。更に、拡張プログラム情報表示制御部５０３は、提供した画面を介してユーザー操作を受け付ける。
【００３１】
拡張プログラム期限管理部５０４は、経過時間管理部５０５及び使用回数管理部５０６によって拡張プログラム３０５の機能を使用した時間や使用した回数をカウントし、管理する。更に、拡張プログラム期限管理部５０４は、インストールした拡張プログラムの期限管理を行う。
【００３２】
拡張プログラムシステムサービス３０４は、使用回数管理部５０７、Ｗｅｂサーバー５０８、およびアプレット登録部５０９を有する。使用回数管理部５０７は、拡張プログラムが登録した機能を画像形成装置１０１が使用した回数を管理する。例えば、拡張プログラム３０５がカラーコピー機能を使用した回数に応じて、拡張プログラム３０５の使用を制限する場合、ダウンロードプログラム５００は、拡張プログラムシステムサービス３０４の使用回数管理部５０７にカラーコピー機能を管理する旨を登録する。使用回数管理部５０７は、拡張プログラムがカラーコピー機能を使用する度に機能を使用した回数をカウントアップすることで管理を行う。なお、管理される機能は、画像形成装置１０１に標準で搭載されている機能でも良いし、他の拡張プログラム３０５によって提供される機能であってもよい。
【００３３】
Ｗｅｂサーバー５０８は、拡張プログラム３０５がサーブレットタイプである場合に、拡張プログラム３０５が動作するＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）を登録する。アプレット登録部５０９は、拡張プログラム３０５を表す拡張プログラムアイコン１００８と拡張プログラムの名称を登録することにより、操作部２１２上に拡張プログラム３０５を開始するための拡張プログラムアイコンを表示する。拡張プログラム３０５がアプレットタイプである場合に、アプレット登録部５０９にアプレットの登録が行われる。各タイプに応じた登録処理については、図２５にて説明する。
【００３４】
［紹介プログラム］
以下、本実施形態に係る紹介プログラム９００について説明する。図９は、紹介プログラム９００の機能構成例を示す図である。ＣＰＵ２０１が各機能に応じたプログラムを読み出して実行することにより、各機能は実現される。
【００３５】
紹介プログラム９００は、拡張プログラム情報管理部９０１を有する。拡張プログラム情報管理部９０１は、ダウンロードプログラム５００に対して、配信サーバー１０３から配信可能な拡張プログラムの情報（以下、配信可能拡張プログラム情報）が更新されたことを通知する。また、拡張プログラム情報管理部９０１は、ダウンロードプログラム５００に対して、配信可能拡張プログラム情報１０００を提供する。
【００３６】
［配信可能拡張プログラム情報］
以下、本実施形態に係る配信可能拡張プログラム情報について説明する。図１０は、配信可能拡張プログラム情報１０００の構成例を示す図である。
【００３７】
配信可能拡張プログラム情報１０００は、設定情報１００１、および１または複数の拡張プログラム情報１００２を含む。設定情報１００１は、配信可能拡張プログラム情報１０００のバージョン情報や配信可能拡張プログラム情報１０００に含まれる拡張プログラム３０５の識別情報等が記載される設定ファイルである。拡張プログラム情報１００２は、配信可能拡張プログラム情報１０００に含まれる拡張プログラム３０５それぞれの情報であり、ここでは３つの配信可能な拡張プログラムが示されている。拡張プログラム情報１００２は、設定情報１００１に記載される識別情報によって区別される情報である。また、拡張プログラム情報１００２はそれぞれ、説明情報１００３、ロゴ情報１００５、マニフェスト情報１００９、概要情報１０１１、および期限情報１０１４を含む。
【００３８】
説明情報１００３は、１または複数の説明画像１００４を含む。説明画像１００４は、例えば、拡張プログラム３０５の特徴や使い方が描かれた、図７に示す詳細情報表示パネル７０３で表示される画像データである。説明画像１００４は、例えば、ファイル名に自然数による通し番号を付与することで、表示される順番を指定することができる。なお、本実施形態では、配信可能拡張プログラム情報１０００に含まれる画像データのファイル形式としてＰＮＧ形式の例を示しているがこれに限定するものではない。
【００３９】
ロゴ情報１００５は、一覧画面ボタンロゴ１００６、詳細画面タイトルロゴ１００７、および拡張プログラムアイコン１００８を含む。一覧画面ボタンロゴ１００６は、図６に示す拡張プログラム情報ボタン６０２で表示される画像データである。詳細画面タイトルロゴ１００７は、図７に示すタイトル画像７０２で表示される画像データである。拡張プログラムアイコン１００８は、拡張プログラム３０５をインストールした後に、図４に示すメインメニュー画面４００に表示される拡張プログラムアイコン４０３に対応する。
【００４０】
マニフェスト情報１００９は、マニフェストファイル１０１０を含む。マニフェストファイル１０１０は、拡張プログラム３０５に同梱されるファイルを抜き出したものである。マニフェストファイル１０１０には、拡張プログラム３０５を生成したツールのバージョン、拡張プログラム３０５が実行された際に使用するメモリー使用量などのリソースに関する情報、及びサーブレットを呼び出すＵＲＬ等の情報などが記載されたファイルである。マニフェストファイル１０１０の詳細は図１４を用いて後述する。
【００４１】
概要情報１０１１は、デフォルト概要情報ファイル１０１２、および１または複数のローカライズ概要情報ファイル１０１３を含む。デフォルト概要情報ファイル１０１２およびローカライズ概要情報ファイル１０１３は、拡張プログラムの概要説明文や拡張プログラム名称等、マニフェストファイル１０１０には記載されない情報が記載される。ローカライズ概要情報ファイル１０１３は、画像形成装置１０１の表示言語設定に応じて表示内容を変更したい場合に作成される。ローカライズ概要情報ファイル１０１３のファイル名には、対応する言語のロケール情報（例えば、日本語であれば「ｊａ」、ドイツ語であれば「ｄｅ」）が記載される。画像形成装置１０１の表示言語に対応するローカライズ概要情報ファイル１０１３が存在しない場合は、デフォルト概要情報ファイル１０１２のデータが使用される。
【００４２】
期限情報１０１４は、期限情報ファイル１０１５および期限詳細情報ファイル１０１６を含む。期限情報ファイル１０１５には、拡張プログラム３０５を使用可能な日数、各機能を使用可能な回数、使用可能回数に制限がある機能の種類、及び使用可能な回数を制限する場合に機能が自動停止するか否かの情報などが記載される。なお、「機能が自動停止する」とは、拡張プログラム自身が機能の使用回数の情報を参照し、一定の回数使用した場合に自動的に停止する機能を持つことを示す。「ａｕｔｏｍａｔｉｃ−ｓｔｏｐ」１６０３に「ｔｒｕｅ」が設定されている場合には、一定の回数使用した場合にはその拡張プログラム３０５は自動的に停止される。期限詳細情報ファイル１０１６には、拡張プログラム３０５のアプリケーションタイプ１７０１が記載される。尚、拡張プログラム３０５のアプリケーションタイプは、マニフェストファイル１０１０に含まれていてもよい。
【００４３】
図１１は、設定情報１００１の構成例を示す図である。設定情報１００１は、バージョン情報１１０１、リスト情報１１０２、およびキー情報１１０３を含む。バージョン情報１１０１は、配信可能拡張プログラム情報１０００のバージョンを示す情報である。リスト情報１１０２は、配信可能拡張プログラム情報１０００に含まれる拡張プログラムの識別情報を列挙した情報である。図６に示す拡張プログラム一覧画面６００において、リスト情報１１０２に記載されている順に、拡張プログラム情報ボタン６０２が並ぶことになる。キー情報１１０３は、配信サーバー１０３に保持されている拡張プログラム３０５を一意に識別するための識別情報に対応付けられたキー情報である。配信サーバー１０３から拡張プログラム３０５をダウンロードする際に、各識別情報に対応付けられたキー情報１１０３の値を指定する。キー情報１１０３には、リスト情報１１０２に列挙されている識別情報すべてに対応するキー情報が記載されている。例えば、識別情報「８２ｂｆｆｆ３ｂ−０１２ａ−１０００−ｂ１ｅｆ−００ｅ０００ｃ４ａｅ６ｆ」に対応する識別情報のキーとして「ＬｉｃｅｎｓｅＡｃｃｅｓｓＮｕｍｂｅｒ−８２ｂｆｆｆ３ｂ−０１２ａ−１０００−ｂ１ｅｆ−００ｅ０００ｃ４ａｅ６ｆ」が示され、その値は「１１１１２２２２３３３３７７７７」である。
【００４４】
図１２は、説明画像１００４の例を示す図である。ここでの画像データはＰＮＧ形式であり、そのファイル名を示している。
【００４５】
図１３は、ロゴ情報１００５の例を示す図である。図１３（ａ）は、一覧画面ボタンロゴ１００６の例を示す図である。図１３（ｂ）は、詳細画面タイトルロゴ１００７の例を示す図である。図１３（ｃ）は、アプレットタイプの拡張プログラムをインストールした際に、メインメニュー画面４００に拡張プログラムアイコン４０３を表示するアイコンの例を示す図である。ここでの画像データはＰＮＧ形式であり、そのファイル名を示している。
【００４６】
図１４は、マニフェストファイル１０１０の構成例を示す図である。マニフェストファイル１０１０は、プログラム情報部１４０１、およびリソース情報部１４０２の２つの領域を含む。プログラム情報部１４０１は、拡張プログラム３０５に関する情報が記載される。プログラム情報部１４０１には、拡張プログラム３０５を一意に識別するためのＡｐｐｌｉｃａｔｉｏｎ−Ｉｄ、拡張プログラムの名称を示すＢｕｎｄｌｅ−Ｎａｍｅ、およびバージョン情報を示すＢｕｎｄｌｅ−Ｖｅｒｓｉｏｎ等が含まれる。Ａｐｐｌｉｃａｔｉｏｎ−Ｉｄは、設定情報１００１に含まれる識別情報に対応する。リソース情報部１４０２には、拡張プログラムが使用するリソース量が記載される。リソース情報部１４０２には、拡張プログラムの最大メモリー使用量（ＭａｘｉｍｕｍＭｅｍｏｒｙＵｓａｇｅ）、最大スレッド使用量（ＭａｘｉｍｕｍＴｈｒｅａｄＵｓａｇｅ）、および最大ファイルスペース使用量（ＭａｘｉｍｕｍＦｉｌｅｓｐａｃｅＵｓａｇｅ）等が含まれる。
【００４７】
図１４（ｂ）はサーブレットタイプの拡張プログラム３０５のマニフェストファイル１０１０の例を示す。サーブレットタイプの拡張プログラム３０５のマニフェストファイル１０１０には、サーブレット情報部１４０３としての領域が更に含まれる。サーブレット情報部１４０３には、サーブレットタイプの拡張プログラム３０５が自身のサーブレットで利用するＵＲＬが記載される。なお、複数のＵＲＬを持つ場合は、各ＵＲＬはカンマ区切りで記載される。なお、マニフェストファイル１０１０に含まれる情報は、ここで示した情報に限定されるものではなく、拡張プログラム３０５をダウンロードおよびインストールする際に要する情報を更に含んでも良い。
【００４８】
図１５は、概要情報１０１１の構成例を示す図である。図１５（ａ）は、デフォルト概要情報ファイル１０１２の例を示す図である。図１５（ｂ）は、ローカライズ概要情報ファイル１０１３における日本語用の概要情報ファイルの例を示す図である。概要情報１０１１は、拡張プログラム名称情報１５０１、および拡張プログラム概要情報１５０２を含む。
【００４９】
図１６は、期限情報ファイル１０１５の構成例を示す図である。図１６（ａ）及び図１６（ｂ）は、拡張プログラム３０５の機能に対する使用可能な回数制限の定義を示す。図１６（ａ）は、コピー機能を１００回使用することが可能であることを示す。図１６（ｂ）は、スキャン機能を１００回使用することが可能であることを示す。また、「ａｕｔｏｍａｔｉｃ−ｓｔｏｐ」１６０３の値が「ｔｒｕｅ」と記載されている。この指定は、期限情報ファイル１０１５に対応する拡張プログラム３０５は、スキャン機能を１００回使用すると停止されることを意味する。この制御は、拡張プログラムシステムサービス３０４の使用回数管理部５０７を介して実行される。
【００５０】
図１６（ｃ）及び図１６（ｄ）は、拡張プログラム３０５に対する使用可能な日数制限が定義されていることを示す。図１６（ｃ）に示す設定の場合、拡張プログラム３０５を使用可能な日数が１００日であることを示す。図１６（ｄ）は、使用可能な日数制限が指定されていない例を示す。ここでは、「ａｖａｉｌａｂｌｅ−ｄａｙｓ」１６０５の値が「ｆａｌｓｅ」と記載されている。尚、使用可能な回数制限や使用可能な日数制限を指定しない場合は、期限情報ファイル１０１５に何も記載していない状態、もしくは期限情報ファイル１０１５自体を持たない構成でも良い。
【００５１】
図１７は、期限詳細情報ファイル１０１６の構成例を示す図である。図１７（ａ）は、拡張プログラム３０５がアプレットタイプであることを示す。図１７（ｂ）は、拡張プログラム３０５がサーブレットタイプであることを示す。図１７（ｃ）は、拡張プログラム３０５がエスプレットタイプであることを示す。
【００５２】
図１０に示す配信可能拡張プログラム情報１０００の構成およびその中に含まれるデータの例を述べたが、これらは上記に限定するものではない。例えば、画像の表示やレイアウトについて、更に詳細に定義するようにしてもよい。
【００５３】
図１８（ａ）は、拡張プログラム情報管理部５０１において、配信可能拡張プログラム情報１０００を管理する情報管理テーブル１８００である。情報管理テーブル１８００は、Ａｐｐｌｉｃａｔｉｏｎ−Ｉｄ１８０１、Ｂｕｎｄｌｅ−Ｎａｍｅ１８０２、アプリケーションタイプ１８０３、拡張プログラムを使用可能な日数１８０４、拡張プログラムを使用可能な回数１８０５、および拡張プログラム３０５が使用可能な回数を制限する機能の機能種別１８０６を含む。
【００５４】
図１８（ｂ）は、拡張プログラム期限管理部５０４において、配信可能拡張プログラム情報１０００のＡｐｐｌｉｃａｔｉｏｎ−ｉｄに基づいて期限情報や拡張プログラム３０５の状態を管理する期限管理テーブル１８１０である。期限管理テーブル１８１０は、Ａｐｐｌｉｃａｔｉｏｎ−Ｉｄ１８０１、拡張プログラムを開始後の経過日数１８０７、拡張プログラムの機能を使用した使用回数１８０８、および拡張プログラムの状態１８０９を含む。
【００５５】
期限管理テーブル１８１０の経過日数１８０７は、拡張プログラム３０５がインストールされてからの日数が経過するごとにその値がカウントされる。また、使用回数１８０８は、拡張プログラム３０５が機能種別１８０６にて指定された機能を使用するごとにその値がカウントされる。状態１８０９は、拡張プログラムを開始すると「開始」状態となり、期限切れの場合は「期限切れ」状態となる。なお、インストールの状態などに応じて他のステータスを設定できるようにしても構わない。
【００５６】
［拡張プログラムダウンロード処理］
ダウンロードプログラム５００は、ユーザーからの指示を受け付けた際に、配信サーバー１０３から拡張プログラム３０５をダウンロードし、インストールの制御を行う。以下、図２１を用いて拡張プログラム３０５のダウンロード処理について説明する。Ｓ２１０１〜Ｓ２１０４は各ステップを表す。
【００５７】
Ｓ２１０１において、ダウンロードプログラム５００は、配信サーバー１０３に対して、拡張プログラム情報管理部５０１で保持する紹介プログラム９００の識別情報およびキー情報１１０３を用いて、拡張プログラム３０５を要求する。
【００５８】
Ｓ２１０２において、配信サーバー１０３は、要求を受け付けると、その応答として、識別情報およびキー情報１１０３に対応する拡張プログラム３０５をダウンロードプログラム５００に返信する。
【００５９】
Ｓ２１０３において、ダウンロードプログラム５００は、拡張プログラム実行プラットフォーム３０３に対して、配信サーバー１０３から受信した拡張プログラム３０５のインストールを指示する。
【００６０】
Ｓ２１０４において、拡張プログラム実行プラットフォーム３０３は、指定された拡張プログラム３０５のインストールを実行し、そのインストール結果をダウンロードプログラム５００に対して通知する。そして、本処理フローは終了する。
【００６１】
なお、Ｓ２１０１の処理の前に、ダウンロードプログラム５００は、配信サーバー１０３に対し、識別情報およびキー情報１１０３を用いてユーザーから指示された拡張プログラム３０５について問い合わせを行い、その応答に基づいて、拡張プログラム３０５が問題なくダウンロードおよびインストール可能か否かを判定する処理を行ってもよい。
【００６２】
［紹介プログラムのダウンロード処理］
ダウンロードプログラム５００は、初回起動時や予め定められた日時に達した時、ユーザーからの更新指示（図６の更新ボタン６０４の押下）を受け付けた時などに、配信サーバー１０３に紹介プログラム９００の情報を問い合わせる。そして、ダウンロードプログラム５００は、必要に応じて配信サーバー１０３から紹介プログラム９００をダウンロードし、インストールさせる。以下、図１９を用いて紹介プログラム９００ダウンロード処理について説明する。Ｓ１９０１〜Ｓ１９０７は各ステップを表す。
【００６３】
Ｓ１９０１において、ダウンロードプログラム５００は、配信サーバー１０３に対して、拡張プログラム情報管理部５０１で保持する紹介プログラム９００の識別情報およびキー情報１１０３を用いて、紹介プログラム９００の情報を要求する。ここで要求される情報は、配信可能な紹介プログラム９００のバージョン情報が含まれる。
【００６４】
Ｓ１９０２において、配信サーバー１０３は、要求を受け付けると、その応答として、識別情報およびキー情報１１０３に対応する拡張プログラム情報（即ち、紹介プログラム９００のバージョン情報を含む情報）をダウンロードプログラム５００に返信する。
【００６５】
Ｓ１９０３において、ダウンロードプログラム５００は、現在インストールされている紹介プログラム９００のバージョン情報と配信サーバー１０３から受信した紹介プログラム９００の情報に含まれるバージョン情報とを比較する。バージョン情報が異なる場合は、新たなバージョンの紹介プログラム９００をダウンロード可能として、ダウンロードプログラム５００は、Ｓ１９０４を実行する。一方、バージョン情報が一致する場合は、最新の紹介プログラム９００がインストールされているため、ダウンロードプログラム５００は、配信サーバー１０３からの紹介プログラム９００のダウンロードは不要と判定し、本処理フローを終了する。
【００６６】
Ｓ１９０４において、ダウンロードプログラム５００は、配信サーバー１０３に対して、紹介プログラム９００の識別情報およびキー情報１１０３を用いて、最新の紹介プログラム９００を要求する。
【００６７】
Ｓ１９０５において、配信サーバー１０３は、要求を受け付けると、その応答として、識別情報およびキー情報１１０３に対応する紹介プログラム９００をダウンロードプログラム５００に返信する。
【００６８】
Ｓ１９０６において、ダウンロードプログラム５００は、拡張プログラム実行プラットフォーム３０３に対して、配信サーバー１０３から受信した紹介プログラム９００のインストールを指示する。
【００６９】
Ｓ１９０７において、拡張プログラム実行プラットフォーム３０３は、紹介プログラム９００のインストールを実行し、そのインストール結果をダウンロードプログラム５００に対して通知する。そして、本処理フローを終了する。
【００７０】
［更新処理］
紹介プログラム９００は、自身が開始される際に、ダウンロードプログラム５００に対して、配信可能拡張プログラム情報１０００が更新されたことを通知する。ダウンロードプログラム５００は、紹介プログラム９００からの更新通知に起因して、紹介プログラム９００から配信可能拡張プログラム情報１０００を取得する。以下、図２０を用いて紹介プログラム９００の更新処理について説明する。Ｓ２００１〜Ｓ２００７は各ステップを表す。
【００７１】
Ｓ２００１において、拡張プログラム実行プラットフォーム３０３は、紹介プログラム９００を生成する。ここでの生成とは、ダウンロードした紹介プログラム９００を画像形成装置１０１内において実行可能なように配置、構成することを指す。これにより、紹介プログラム９００はＲＡＭ２０２にロードされ、ＣＰＵ２０１において実行可能な状態になる。
【００７２】
Ｓ２００２において、拡張プログラム実行プラットフォーム３０３は、紹介プログラム９００の開始を指示する。
【００７３】
Ｓ２００３において、紹介プログラム９００は、ダウンロードプログラム５００に対して、配信可能拡張プログラム情報１０００が更新された旨の通知を行う。
【００７４】
Ｓ２００４において、ダウンロードプログラム５００は、紹介プログラム９００からの更新通知を受け付けると、その応答として、紹介プログラム９００に対して、配信可能拡張プログラム情報１０００の取得要求を行う。
【００７５】
Ｓ２００５において、紹介プログラム９００は、ダウンロードプログラム５００からの要求を受け付けると、その応答として、配信可能拡張プログラム情報１０００を、ダウンロードプログラム５００に送信する。ここで送信する配信可能拡張プログラム情報１０００は、更新された差分のみを送信するようにしてもよいし、更新後の配信可能拡張プログラム情報１０００全体を送信するようにしてもよい。
【００７６】
Ｓ２００６において、ダウンロードプログラム５００は、紹介プログラム９００から更新後の配信可能拡張プログラム情報１０００を受信すると、紹介プログラム９００に対して更新処理の結果を送信する。
【００７７】
Ｓ２００７において、紹介プログラム９００は、ダウンロードプログラム５００から配信可能拡張プログラム情報１０００の更新処理の結果を受信すると、拡張プログラム実行プラットフォーム３０３に対し、開始処理の結果を送信する。そして、本処理フローを終了する。
【００７８】
［拡張プログラム情報表示］
図６及び図７を用いてダウンロードプログラム５００が操作部２１２に表示する画面について説明する。
【００７９】
図６は、ダウンロードプログラム５００が操作部２１２に表示する拡張プログラム一覧画面の例を示す図である。拡張プログラム一覧画面６００は、ボタン表示パネル６０１、拡張プログラム情報ボタン６０２、切り替えボタン６０３、および更新ボタン６０４を有する。ボタン表示パネル６０１は、拡張プログラム情報ボタン６０２をまとめて扱うためパネルである。ボタン表示パネル６０１は、拡張プログラム情報ボタン６０２の数に応じて複数用意される場合がある。拡張プログラム情報ボタン６０２は、配信可能な拡張プログラム３０５の概要を画像と文字を組み合わせて表示するボタンである。ダウンロードプログラム５００は、拡張プログラム情報ボタン６０２が押下されたことを検知すると、図７を用いて後述する詳細情報画面７００を表示する。切り替えボタン６０３は、ボタン表示パネル６０１が複数ある場合に、表示するボタン表示パネル６０１を切り替えるためのボタンである。更新ボタン６０４は、ダウンロードプログラム５００が保持する配信可能拡張プログラム情報１０００を更新するためのボタンである。つまり、更新ボタン６０４が押下された際には、図１９に示す処理フローが実行される。
【００８０】
図７は、ダウンロードプログラム５００が操作部２１２に表示する詳細情報画面７００の例を示す図である。図７（ａ）は、表示している拡張プログラム３０５が問題なくダウンロードおよびインストールできる場合の画面の構成例を示す。図７（ｂ）は、表示している拡張プログラム３０５をダウンロードおよびインストールが制限されている場合の画面である。ここでのダウンロード等が制限されている理由としては、すでにダウンロード済みである場合や、インストールの期限が切れている場合などが挙げられる。
【００８１】
図７（ａ）と図７（ｂ）とでは、ダウンロードボタン７０１のアイコンが異なる。ダウンロードボタン７０１のアイコンを切り替える処理については後述する。詳細情報画面７００は、ダウンロードボタン７０１、タイトル画像７０２、詳細情報表示パネル７０３、および切り替えボタン７０４を有する。ダウンロードボタン７０１は、詳細情報を表示している拡張プログラム３０５のダウンロードおよびインストールを指示するためのボタンである。
【００８２】
タイトル画像７０２は、拡張プログラム３０５のタイトルとなる画像である。詳細情報表示パネル７０３は、拡張プログラム３０５の特徴や使い方が描かれた画像を表示するためのパネルである。詳細情報表示パネル７０３は、特徴や使い方が描かれた画像の数に応じて複数用意される場合がある。詳細情報表示パネル７０３は、図１２に示した説明画像１００４に対応する。詳細情報表示パネル切り替えボタン７０４は、詳細情報表示パネル７０３が複数ある場合に、表示する詳細情報表示パネル７０３を切り替えるためのボタンである。
【００８３】
［ボタン表示切り替え処理］
図２２は、ダウンロードボタン７０１の切り替え処理の例を示すフローチャートである。Ｓ２２０１〜Ｓ２２０３は各ステップを表す。
【００８４】
Ｓ２２０１において、ダウンロードプログラム５００は、配信可能な拡張プログラムがダウンロード済み、もしくは期限切れであるか否かを判定する。拡張プログラム３０５がダウンロード済み、もしくは期限切れである場合は（Ｓ２２０１にてＹＥＳ）、Ｓ２２０２に遷移し、そうで無い場合は（Ｓ２２０１にてＮＯ）、Ｓ２２０３に遷移する。
【００８５】
Ｓ２２０２において、ダウンロードプログラム５００は、ダウンロードプログラム５００が保持するダウンロードボタン７０１のデフォルトアイコン（すなわち、図７（ａ）に示す画像）を取得し、ダウンロードボタン７０１のアイコンとして設定する。
【００８６】
Ｓ２２０３において、ダウンロードプログラム５００は、無効用のアイコン（すなわち、図７（ｂ）に示す画像）を取得し、ダウンロードボタン７０１のアイコンとして設定する。そして、本処理フローは終了する。
【００８７】
［拡張プログラムのダウンロード及びインストール］
ダウンロードプログラム５００は、詳細情報画面７００を介してダウンロードボタン７０１が押下されたことを検知すると、指示された拡張プログラム３０５を配信サーバー１０３からダウンロードし、拡張プログラム実行プラットフォーム３０３にインストールさせる。以下、図２３を用いて拡張プログラムダウンロード及びインストール処理について説明する。Ｓ２３０１〜Ｓ２３１５は各ステップを表す。
【００８８】
Ｓ２３０１において、ダウンロードプログラム５００は、配信サーバー１０３からユーザーにより指定された拡張プログラム３０５を、紹介プログラム９００から取得した識別情報およびキー情報１１０３を用いてダウンロードする。Ｓ２３０２において、ダウンロードプログラム５００は、配信サーバー１０３からダウンロードした拡張プログラムをインストールさせる。
【００８９】
Ｓ２３０３において、ダウンロードプログラム５００は、保持している配信可能拡張プログラム情報１０００からインストールした拡張プログラム３０５の期限情報１０１４を取得する。Ｓ２３０４において、ダウンロードプログラム５００は、期限情報１０１４に機能の使用回数制限があるか否かを判定する。具体的には、期限情報ファイル１０１５が含まれ、期限に関する設定がなされているか否かを判定する。期限情報１０１４に機能の使用回数制限がある場合は（Ｓ２３０４にてＹＥＳ）、Ｓ２３０５に遷移し、そうでない場合は（Ｓ２３０４にてＮＯ）Ｓ２３０６に遷移する。
【００９０】
Ｓ２３０５において、ダウンロードプログラム５００は、インストールした拡張プログラム３０５の使用可能回数に制限のある機能を判定し、拡張プログラムシステムサービス３０４の使用回数管理部５０７に指定された機能の使用可能回数を登録する。例えば、コピー機能の使用可能回数が１００回に制限されている場合、拡張プログラムシステムサービス３０４の使用回数管理部５０７に、コピー機能の制限回数を１００回と登録する。
【００９１】
Ｓ２３０６において、ダウンロードプログラム５００は、インストールした拡張プログラム３０５を開始する。そして、本処理フローを終了する。
【００９２】
［拡張プログラム期限管理］
ダウンロードプログラム５００は、拡張プログラム３０５を開始すると、拡張プログラム３０５の期限管理を開始する。以下、図２４を用いて拡張プログラムの期限管理処理について説明する。Ｓ２４０１〜Ｓ２４２２は各ステップを表す。
【００９３】
Ｓ２４０１において、ダウンロードプログラム５００は、開始した拡張プログラム３０５のうち、期限付きの拡張プログラムがあるか否かを判定する。期限があるか否かは、情報管理テーブル１８００を参照し、機能の使用可能回数及び拡張プログラム３０５を使用可能な日数に制限があるか否かで判定することができる。機能の使用可能回数及び使用可能な日数に制限のある拡張プログラム３０５が存在しない場合は（Ｓ２４０１にてＮＯ）、インストールされている拡張プログラム３０５の期限管理をする必要がないため、本処理フローを終了する。機能の使用可能回数及び使用可能な日数に制限のある拡張プログラム３０５が存在する場合は（Ｓ２４０１にてＹＥＳ）、Ｓ２４０２及びＳ２４０７それぞれに遷移し、拡張プログラム３０５の期限管理を行う。Ｓ２４０２〜Ｓ２４０６は、使用回数に制限がある場合の処理であり、Ｓ２４０７〜Ｓ２４１１は、使用日数に制限がある場合の処理である。尚、Ｓ２４０２及びＳ２４０７は、拡張プログラム３０５に対して並列に処理され、拡張プログラム３０５に対して設定された制限情報に応じた期限管理を実施する。
【００９４】
Ｓ２４０２において、ダウンロードプログラム５００は、拡張プログラム情報管理部５０１が保持する期限情報１０１４を参照し、機能の使用可能回数に制限があるか否かを判定するする。機能の使用可能回数に制限がある場合（Ｓ２４０２にてＹＥＳ）、Ｓ２４０３に遷移する。
【００９５】
Ｓ２４０３において、ダウンロードプログラム５００は、期限管理対象の拡張プログラム３０５が機能の使用回数を判定し、使用可能回数制限に達した時に自動で停止する拡張プログラムであるか否かを判定する。具体的には、図１６（ｂ）に示すように、期限情報ファイル１０１５に含まれる「ａｕｔｏｍａｔｉｃ−ｓｔｏｐ」１６０３を参照し、値が「ｔｒｕｅ」であるか否かを判定する。自動で停止する拡張プログラム３０５である場合は（Ｓ２４０３にてＹＥＳ）、期限が来た場合には自動的に停止されるため期限管理が不要であるとし、Ｓ２４０１に遷移する。自動で停止しない拡張プログラム３０５である場合は（Ｓ２４０３にてＮＯ）Ｓ２４０４に遷移する。
【００９６】
Ｓ２４０４において、ダウンロードプログラム５００は、拡張プログラムシステムサービス３０４の使用回数管理部５０７を介して、指定された機能を拡張プログラム３０５が使用した回数を取得する。つまり、自動停止が設定されていない拡張プログラム３０５に対してはその使用回数の情報について定期的にポーリングを行い監視することとなる。
【００９７】
Ｓ２４０５において、ダウンロードプログラム５００は、Ｓ２４０４で取得した機能の使用回数が、拡張プログラム３０５が使用可能な回数以上であるか否かを判定する。拡張プログラム３０５が機能を使用した回数が、使用可能な回数以上である場合（Ｓ２４０５にてＹＥＳ）、拡張プログラム３０５は期限切れであるため、Ｓ２４０６に遷移する。Ｓ２４０６の処理については後述する。拡張プログラム３０５が機能を使用した回数が使用可能な回数未満である場合（Ｓ２４０５にてＮＯ）、継続して拡張プログラム３０５の期限管理を実施するため、Ｓ２４０１に遷移する。
【００９８】
一方、Ｓ２４０７において、ダウンロードプログラム５００は、拡張プログラム情報管理部５０１が保持する期限情報１０１４を参照し、使用可能日数に制限があるか否かを判定する。使用可能日数に制限がある場合（Ｓ２４０７にてＹＥＳ）、Ｓ２４０８に遷移する。
【００９９】
Ｓ２４０８において、ダウンロードプログラム５００は、一定時間が経過した後にタイマーの割込みを検知する。ここでの割り込みは、１日単位で発生してもよいし、他の時間単位で発生するようにしてもよい。
【０１００】
Ｓ２４０９において、ダウンロードプログラム５００は、拡張プログラム３０５の使用経過時間に、Ｓ２４０８にて検知した経過時間を加算する。
【０１０１】
Ｓ２４１０において、ダウンロードプログラム５００は、Ｓ２４０９にて算出した経過時間が、拡張プログラム３０５の使用可能日数を超えているか否かを判定する。拡張プログラム３０５の使用可能日数を超えている場合（Ｓ２４１０にてＹＥＳ）、Ｓ２４１１に遷移する。Ｓ２４１１の処理については後述する。拡張プログラム３０５の使用可能日数を超えていない場合（Ｓ２４１０にてＮＯ）、継続して拡張プログラム３０５の期限管理を実施するため、Ｓ２４０１に遷移する。
【０１０２】
ダウンロードプログラム５００は、使用可能日数や使用可能回数を超えた拡張プログラム３０５に対して期限切れ時の処理（Ｓ２４０６およびＳ２４１１）を実施し、拡張プログラム３０５のアンインストール制御を行う。なお、期限管理が必要な他の拡張プログラム３０５が開始されている場合、別プロセスでＳ２４０１〜Ｓ２４１１の処理を継続して実施し、その他の拡張プログラム３０５の期限管理を継続する。
【０１０３】
［拡張プログラム期限切れ処理］
Ｓ２４０６およびＳ２４１１において、ダウンロードプログラム５００は、拡張プログラム３０５を使用可能な期限が切れたと判定すると、拡張プログラム３０５の期限切れ処理を開始する。ダウンロードプログラム５００は、拡張プログラムダウンロード部５０２に期限切れの拡張プログラム３０５のアンインストールを指示する。拡張プログラムダウンロード部５０２は、指示を受けた拡張プログラム３０５を停止し、アンインストールの実行を拡張プログラム実行プラットフォーム３０３に指示する。
【０１０４】
以上、本実施形態により、既存の拡張プログラムに手を加えずに、拡張プログラムを期限付きで一定期間もしくは一定の回数だけ使用することが実現できる。
【０１０５】
＜第二の実施形態＞
本願発明に係る別の実施形態について説明する。第一の実施形態では、拡張プログラムの期限管理を行い、期限切れの拡張プログラムを使用不可とするために、ユーザーに通知することなくアンインストールする例を示した。しかしながら、システムが自動的に拡張プログラムをアンインストールしてしまうと、ユーザーが拡張プログラムを突然使用できなくなってしまい、使用不可能となった理由に気付かない可能性がある。そこで、本実施形態では、期限切れとなった拡張プログラムをユーザーに通知する手段について説明する。
【０１０６】
［期限通知手段指定］
エスプレットタイプの拡張プログラム３０５は、操作部２１２上にも、クライアントのＷｅｂブラウザー（不図示）上にもＵＩを持たないため、期限切れを通知する手段を期限詳細情報ファイル１０１６に指定する。図１７（ｃ）に示すように、拡張プログラム３０５の期限切れの通知手段を「ｓｔａｔｕｓｌｉｎｅ」と指定した場合、拡張プログラムの期限が切れた際に、メインメニュー画面４００のステータスラインに期限切れを表示する（図８（ｃ））。通知手段に何も指定されていない場合は、詳細情報画面７００にのみ期限切れを表示する。なお、ここで設定される通知手段は、メインメニュー画面４００のステータスラインに表示することに限定するものではなく、他の位置や他の画面に表示できるように通知手段を設定できるようにしてもよい。
【０１０７】
［拡張プログラム期限切れ情報表示］
ダウンロードプログラム５００の拡張プログラム情報表示制御部５０３は、拡張プログラムが期限切れの際、期限切れである旨を通知する情報を画面として構成し、操作部２１２やネットワークＩ／Ｆ２１０を介してユーザーに提供する機能を持つ。
【０１０８】
以下は、図８を用いて拡張プログラム３０５が期限切れの際に操作部２１２やクライアントのＷｅｂブラウザー（不図示）上に表示する通知画面について説明する。図８は、ダウンロードプログラム５００が拡張プログラム３０５の使用が期限切れの際に、ユーザーに期限切れを通知する画面の構成例を示す図である。
【０１０９】
図８（ａ）は、アプレットタイプの拡張プログラム３０５が期限切れした際に、操作部２１２上にユーザーに期限切れを通知する画面の構成例である。図８（ａ）に示す期限切れ通知画面８００は、期限切れを確認後に画面を閉じるための確認ボタン８０１、および期限切れ通知表示パネル８０２を有する。期限切れ通知画面８００は、拡張プログラム３０５の名称と共にアプリケーションの期限切れを通知するメッセージを、拡張プログラム３０５のアプリケーションタイプに応じてユーザーに通知する。
【０１１０】
図８（ｂ）は、サーブレットタイプの拡張プログラム３０５が期限切れした際に、サーブレットが動作するＵＲＬにアクセスしたＷｅｂブラウザー上に表示される、ユーザーに期限切れを通知する画面の構成例である。ユーザーは拡張プログラム３０５を使用する際にＷｅｂブラウザーを用いてアクセスするＵＲＬ上で拡張プログラムの期限切れを確認することが可能である。図８（ｂ）に示す期限切れ通知画面８００においても、期限切れを確認後に画面から遷移するための確認ボタン８０１、および期限切れ通知表示パネル８０２を有する。
【０１１１】
図８（ｃ）は、エスプレットタイプの拡張プログラム３０５が期限切れした際に、その拡張プログラム３０５に対応する期限詳細情報ファイル１０１６に「ｓｔａｔｕｓｌｉｎｅ」が指定されていた場合に、ユーザーに期限切れを通知する画面の例である。エスプレットタイプについては、操作部２１２に表示されるメインメニュー画面４００のステータスライン８０３に期限切れである旨が表示されることで、ユーザーに通知される。
【０１１２】
図８（ｄ）は、詳細情報画面７００を表示する際に、表示している拡張プログラム３０５が期限切れの場合にその旨を通知するための画面である。図８（ｄ）に示す詳細情報画面７００では、ダウンロードボタン８０４が選択できないように制御され、また、図７の詳細情報表示パネル７０３に示したような詳細情報の代わりに、期限切れである旨の情報が表示される。図８（ｄ）に示す画面は、期限切れがいずれのタイプの拡張プログラム３０５に生じた場合でも表示できる。
【０１１３】
［拡張プログラム期限切れ処理］
ダウンロードプログラム５００は、拡張プログラム３０５が使用可能な期限が切れたと判定すると、拡張プログラムの期限切れ処理として、期限切れをユーザーに通知する処理を開始する。以下、図２５を用いて拡張プログラム３０５の期限切れ処理について説明する。Ｓ２５０１〜Ｓ２５１４は各ステップを表す。
【０１１４】
Ｓ２５０１において、ダウンロードプログラム５００は、拡張プログラムダウンロード部５０２により期限切れと判定された拡張プログラム３０５を停止させる。
【０１１５】
Ｓ２５０２において、ダウンロードプログラム５００は、停止した拡張プログラム３０５の名称情報を拡張プログラム情報管理部５０１が管理する情報管理テーブル１８００から取得する。
【０１１６】
Ｓ２５０３において、ダウンロードプログラム５００は、停止した拡張プログラム３０５のアプリケーションタイプを拡張プログラム情報管理部５０１が管理する情報管理テーブル１８００から取得する。
【０１１７】
Ｓ２５０４において、ダウンロードプログラム５００は、Ｓ２５０３にて取得した拡張プログラム３０５のアプリケーションタイプに基づき、停止した拡張プログラム３０５のアプリケーションタイプを判定する。停止した拡張プログラム３０５のアプリケーションタイプがアプレットタイプである場合、Ｓ２５０５に遷移する。停止した拡張プログラム３０５のアプリケーションタイプがサーブレットタイプである場合、Ｓ２５０８に遷移する。停止した拡張プログラム３０５のアプリケーションタイプがエスプレットである場合、Ｓ２５１１に遷移する。
【０１１８】
拡張プログラム３０５がアプレットタイプである場合、Ｓ２５０５において、ダウンロードプログラム５００は、拡張プログラム情報管理部５０１から拡張プログラムアイコン１００８を取得する。
【０１１９】
Ｓ２５０６において、ダウンロードプログラム５００は、Ｓ２５０２にて取得した拡張プログラム３０５の名称情報と、Ｓ２５０５にて取得した拡張プログラム３０５のアイコンとを関連付けてアプレット登録部５０９に登録する。
【０１２０】
Ｓ２５０７において、ダウンロードプログラム５００は、アプレット登録部５０９に登録した拡張プログラム３０５の名称情報と、アプレット登録部５０９に登録したアイコンが押下された時に表示するデータ（例えば、図８（ａ）の期限切れ通知表示パネル８０２に示すメッセージ）との関連付けを記憶する。アプレット登録部５０９に拡張プログラム３０５の名称情報とアイコンとを関連付けて登録することにより、メインメニュー画面４００上に表示されている拡張プログラム３０５のアイコンと拡張プログラム３０５の名称情報とが登録される。これにより、停止した拡張プログラム３０５のアイコンがユーザーにより押下されると、ダウンロードプログラム５００は、登録された情報を用いて図８（ａ）のような期限切れを通知する画面を操作部２１２上に表示することとなる。
【０１２１】
拡張プログラムがサーブレットタイプである場合、Ｓ２５０８において、ダウンロードプログラム５００は、拡張プログラム情報管理部５０１からサーブレットタイプの拡張プログラム３０５を利用する際のＵＲＬを取得する。
【０１２２】
Ｓ２５０９において、ダウンロードプログラム５００は、Ｓ２５０２にて取得した拡張プログラム３０５の名称情報と、Ｓ２５０８にて取得したＵＲＬとを拡張プログラムシステムサービス３０４のＷｅｂサーバー５０８に登録する。
【０１２３】
Ｓ２５１０において、ダウンロードプログラム５００は、拡張プログラムシステムサービス３０４のＷｅｂサーバー５０８に登録した拡張プログラムの名称情報と、サーブレットタイプの拡張プログラム３０５のＵＲＬにアクセスされた時にＷｅｂブラウザー上に表示するデータとの関連付けを記憶する。これにより、サーブレットタイプの拡張プログラム３０５のＵＲＬにユーザーがアクセスすると、ダウンロードプログラム５００は、登録された情報を用いて図８（ｂ）のように拡張プログラム３０５の名称情報と期限切れを通知する画面を表示することとなる。
【０１２４】
拡張プログラムがエスプレットタイプの場合、Ｓ２５１１において、ダウンロードプログラム５００は、拡張プログラム３０５が期限切れである旨を通知する手段が指定されているか否かを判定する。つまり、図１７（ｃ）に示すような、「ｓｔａｔｕｓｌｉｎｅ」のような手段が設定されているか否かを判定する。拡張プログラムが期限切れである旨を通知する手段が指定されていない場合は（Ｓ２５１１にてＮＯ）、Ｓ２５１３に遷移する。拡張プログラム３０５が期限切れである旨を通知する手段が指定されている場合は（Ｓ２５１１にてＹＥＳ）、Ｓ２５１２に遷移する。
【０１２５】
Ｓ２５１２において、ダウンロードプログラム５００は、拡張プログラム情報表示制御部５０３により操作部２１２に拡張プログラムが期限切れである旨を表示する。エスプレットタイプの拡張プログラム３０５はＵＩを持たないため、例えば、Ｓ２５１１にて「ｓｔａｔｕｓｌｉｎｅ」と設定されていた場合、図８（ｃ）のようにメインメニュー画面４００の下部のステータスライン８０３に拡張プログラムの名称情報と、期限切れである旨を表示する。
【０１２６】
Ｓ２５１３において、ダウンロードプログラム５００は、詳細情報画面７００に、期限切れである旨を表示する。本実施形態では、エスプレットタイプの拡張プログラム３０５のような期限切れを通知する手段を指定しない拡張プログラム３０５であっても、詳細情報画面７００を表示することによって、期限切れで使用不可能であることをユーザーが確認することが可能である。
【０１２７】
Ｓ２５１４において、ダウンロードプログラム５００は、期限切れの拡張プログラム３０５のアンインストールを指示する。その後、本処理フローを終了する。
【０１２８】
本フローチャートを実施することにより、期限切れの拡張プログラムを使用不可とし、拡張プログラムを使用していたユーザーに期限切れであることを通知することが可能となる。
【０１２９】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【０１３０】
１０１…画像形成装置、１０３…配信サーバー、３０３…拡張プログラム実行プラットフォーム、３０５…拡張プログラム、５００…ダウンロードプログラム、９００…紹介プログラム
【図１】
2016035714.tif 000003
【図２】
2016035714.tif 000004
【図３】
2016035714.tif 000005
【図４】
2016035714.tif 000006
【図５】
2016035714.tif 000007
【図６】
2016035714.tif 000008
【図７】
2016035714.tif 000009
【図８】
2016035714.tif 000010
【図９】
2016035714.tif 000011
【図１０】
2016035714.tif 000012
【図１１】
2016035714.tif 000013
【図１２】
2016035714.tif 000014
【図１３】
2016035714.tif 000015
【図１４】
2016035714.tif 000016
【図１５】
2016035714.tif 000017
【図１６】
2016035714.tif 000018
【図１７】
2016035714.tif 000019
【図１８】
2016035714.tif 000020
【図１９】
2016035714.tif 000021
【図２０】
2016035714.tif 000022
【図２１】
2016035714.tif 000023
【図２２】
2016035714.tif 000024
【図２３】
2016035714.tif 000025
【図２４】
2016035714.tif 000026
【図２５】
2016035714.tif 000027