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