(57)【要約】【課題】リソースの消費を抑えると同時に、ユーザの要望によって速やかに拡張プログラムが使用できるようにインストールする手段を提供する。【解決手段】インストールの一部の工程を先行して行うことによって、リソース消費を抑えつつ、拡張プログラムをユーザに使用可能なように見せる。ユーザが拡張プログラムを実際に使用する時に、残りのインストール工程を行い、拡張プログラムを実行する。【選択図】  図７
2019070884.tif 000002
【特許請求の範囲】
【請求項１】
拡張プログラムを実行可能な情報処理装置（１０１）において、前記情報処理装置は前記拡張プログラムを管理する管理手段（５１０、５３０）を有し、
さらに、前記管理手段は、
拡張プログラムのインストール指示を受け取ったときに、指示のあった拡張プログラムが通常バンドルであるか仮バンドルであるかを判断するバンドルタイプ判別手段（Ｓ７０４）と、
前記バンドルタイプ判断手段によって通常バンドルであると判別した場合に、前記情報処理装置に通常バンドルとして登録する通常バンドル登録手段（Ｓ７１１〜Ｓ７１３）と、
前記バンドルタイプ判断手段によって仮バンドルであると判別した場合に、前記情報処理装置に仮バンドルとして登録する仮バンドル登録手段（Ｓ７４０）を有し、
さらに前記通常バンドル登録手段は、
前記インストール指示のあった拡張プログラムを実行するために必要なリソースが情報処理装置に存在するかを確認するリソース確認手段（Ｓ７０３）と、
前記インストール指示のあった拡張プログラムの実行ファイルを前記情報処理装置に配置する実行ファイル配置手段（Ｓ７１１）と、
前記実行ファイル配置手段によって配置された実行ファイルを、前記リソース確認手段によって確認したリソースを確保したうえで開始するバンドル開始手段（Ｓ７１２）と、
前記バンドル開始手段によって開始された実行ファイルをユーザが呼び出せるようにインターフェースに登録する通常バンドルインターフェース登録手段（Ｓ７１３）を有することを特徴とし、
さらに前記仮バンドル登録手段は、
前記リソース確認手段（Ｓ１１０５）と、
前記インストール指示のあった拡張プログラムをユーザが呼び出したときに、前記拡張プログラムの実行ファイルの配置やダウンロードを行うように仮バンドルの実行ファイルの状況を確認する実行ファイル状態確認手段（Ｓ１１０６、Ｓ１１０７）と、
前記拡張プログラムの実行ファイルの配置と開始を行うようにインターフェースに登録する仮バンドルインターフェース登録手段（Ｓ１１０８）を有することを特徴とし、
さらに前記管理手段は、
前記仮バンドルインターフェース登録手段によって登録された仮バンドルがユーザによって呼び出された場合に、呼び出された仮バンドルの実行ファイルを前記情報処理装置に配置（Ｓ１００８）して、前記リソース確認手段によって確認したリソースを確保したうえで開始する（１００９）こと
を特徴とする情報処理装置。
【請求項２】
請求項１に記載の情報処理装置において、前記バンドルタイプ判断手段は、
インストール指示のあった拡張プログラムに含まれるマニフェストファイルを読み込んで、定義されたバンドルタイプ（６１３、６３３、６５３）によって拡張プログラムが通常バンドルであるか仮バンドルであるかを判断することを特徴とする情報処理装置。
【請求項３】
請求項１に記載の情報処理装置において、前記通常バンドルインターフェース登録手段と前記仮バンドルインターフェース登録手段は、
バンドルに含まれるアイコン画像をメインメニューへの登録するアプリボタン登録手段（Ｓ７４０、Ｓ１１０８）と、
サーブレットの持つバンドルをサーブレットサービス管理部に登録するサーブレット登録手段（Ｓ７４０、Ｓ１１０８）
を有することを特徴とする情報処理装置。
【請求項４】
請求項１に記載の情報処理装置において、前記仮バンドル登録手段は、
前記バンドルタイプ判別手段によって仮バンドルであると判別した後に、仮バンドルが実行ファイルの持つかを判断する実行ファイル存在判別手段（Ｓ７２１）と、
前記実行ファイル存在判別手段によって実行ファイルを持つと判別した場合、前記情報処理装置に実行ファイルを保存する実行ファイル保存手段（Ｓ７２２）と、
前記実行ファイル存在判別手段によって仮バンドルが実行ファイルを持たないと判別した場合、前記実行ファイルのダウンロードコマンドを発生する実行ファイルダウンロードコマンド発生手段（Ｓ１２０４）
を有することを特徴とする情報処理装置。
【請求項５】
請求項１に記載の情報処理装置において、前記管理手段は、
前記実行ファイルダウンロードコマンド発生手段によってダウンロードコマンドを受ける場合、前記実行ファイルをダウンロードする実行ファイルダウンロード手段（Ｓ１２０４）
を有することを特徴とする情報処理装置。
【請求項６】
請求項１に記載の情報処理装置において、前記管理手段は、
前記実行ファイル存在判別手段によって仮バンドルが実行ファイルを持たないと判断する、かつ前記実行ファイル状態確認手段によって実行ファイルのダウンロードを行えないと判断する場合、
或いは、前記リソース確認手段によって前記仮バンドルの実行ファイル開始必要なリソースが確保できない場合、
前記仮バンドルインターフェース登録手段によって登録された仮バンドルを削除する仮バンドルインターフェース削除手段（Ｓ１１２０）
を有することを特徴とする情報処理装置。
【請求項７】
請求項１に記載の情報処理装置において、前記管理手段は
前記仮バンドル登録手段によって登録した仮バンドルのアプリボタンＩＤ、サーブレット、配置用実行ファイル状態、本体状態と仮バンドルの紐づけ情報を保持する紐づけ情報保持手段（Ｓ７４０）と、
前記リソース確認手段と前記実行ファイル状態確認手段によって取得した情報を前記紐づけ情報に更新する紐づけ情報更新手段（Ｓ１１０９）と、
前記実行ファイルダウンロード手段によってダウンロードの状態を前記紐づけ情報に更新する紐づけ情報更新手段（Ｓ１２０７）と、
前記仮バンドルインターフェース登録手段によって登録された仮バンドルがユーザによって呼び出された場合に、呼び出された仮バンドルを特定する仮バンドル特定手段（Ｓ１００３、Ｓ１１０３）と、
前記仮バンドル特定手段によって特定された仮バンドルの実行ファイルを前記情報処理装置に配置と開始する後に紐づけ情報を削除する仮バンドル紐づけ情報削除手段（Ｓ１０１２）
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張プログラムを実行可能な情報処理装置に関するものである。
【背景技術】
【０００２】
近年、情報処理装置の一例として、アプリケーションソフトウェアを機能拡張プログラムとして追加できる機能を備えた画像形成装置が普及している。機能拡張プログラム（以下、拡張プログラム）は工場出荷時だけでなく、設置後の運用段階でも追加することが可能である。追加された拡張プログラムは画像形成装置に最初から備わっているプログラム（以下、基本プログラム）と同じように画像形成装置の機能としてメニュー（以下、メインメニュー）に表示される。
【０００３】
また、ユーザが選択した拡張プログラムを外部サーバからダウンロードし、インストールすることで、画像形成装置の機能の拡張を可能とする技術が知られている（例えば、特許文献１）。
【０００４】
一方で、近年のＭＦＰ（Ｍｕｌｔｉ Ｆｕｎｃｔｉｏｎ Ｐｅｒｉｐｈｅｒａｌ）と呼ばれる画像形成装置は、基本的なコピー機能に加えて、スキャン機能、プリント機能、ＦＡＸ送受信機能、電子メール送受信機能等を１台で有するようになっている。それぞれの機能を使うために、ＭＦＰに拡張プログラムを追加して、複数人で共用している。そのため、ＭＦＰの拡張プログラムは、一般的には、管理者がインストールして、一般ユーザが使うという運用が行われている。また、ＭＦＰは、一般的にメモリやストレージなどのリソースが豊富ではない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４０３９４３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ユーザが便利に拡張プログラムを使うため、管理者は事前に拡張プログラムをインストールしておきたい。しかし、事前に拡張プログラムをインストールしておくと、その拡張プログラムはユーザに使用されなくても、デバイスのリソース（メモリやストレージなど）を消費してしまう。
【０００７】
ＭＦＰのリソースには限りがあるので、使わない拡張プログラムのためにリソースをできるだけ消費したくない。一方で、ユーザの要望があったときには、速やかに拡張プログラムを使えるようにしておきたいという課題があった。
【課題を解決するための手段】
【０００８】
拡張プログラムを実行可能な情報処理装置（１０１）において、前記情報処理装置は前記拡張プログラムを管理する管理手段（５１０、５３０）を有し、
さらに、前記管理手段は、
拡張プログラムのインストール指示を受け取ったときに、指示のあった拡張プログラムが通常バンドルであるか仮バンドルであるかを判断するバンドルタイプ判別手段（Ｓ７０４）と、
前記バンドルタイプ判断手段によって通常バンドルであると判別した場合に、前記情報処理装置に通常バンドルとして登録する通常バンドル登録手段（Ｓ７１１〜Ｓ７１３）と、
前記バンドルタイプ判断手段によって仮バンドルであると判別した場合に、前記情報処理装置に仮バンドルとして登録する仮バンドル登録手段（Ｓ７４０）を有し、
さらに前記通常バンドル登録手段は、
前記インストール指示のあった拡張プログラムを実行するために必要なリソースが情報処理装置に存在するかを確認するリソース確認手段（Ｓ７０３）と、
前記インストール指示のあった拡張プログラムの実行ファイルを前記情報処理装置に配置する実行ファイル配置手段（Ｓ７１１）と、
前記実行ファイル配置手段によって配置された実行ファイルを、前記リソース確認手段によって確認したリソースを確保したうえで開始するバンドル開始手段（Ｓ７１２）と、
前記バンドル開始手段によって開始された実行ファイルをユーザが呼び出せるようにインターフェースに登録する通常バンドルインターフェース登録手段（Ｓ７１３）を有することを特徴とし、
さらに前記仮バンドル登録手段は、
前記リソース確認手段（Ｓ１１０５）と、
前記インストール指示のあった拡張プログラムをユーザが呼び出したときに、前記拡張プログラムの実行ファイルの配置やダウンロードを行うように仮バンドルの実行ファイルの状況を確認する実行ファイル状態確認手段（Ｓ１１０６、Ｓ１１０７）と、
前記拡張プログラムの実行ファイルの配置と開始を行うようにインターフェースに登録する仮バンドルインターフェース登録手段（Ｓ１１０８）を有することを特徴とし、
さらに前記管理手段は、
前記仮バンドルインターフェース登録手段によって登録された仮バンドルがユーザによって呼び出された場合に、呼び出された仮バンドルの実行ファイルを前記情報処理装置に配置（Ｓ１００８）して、前記リソース確認手段によって確認したリソースを確保したうえで開始する（１００９）こと
を特徴とする情報処理装置。
【発明の効果】
【０００９】
本発明によれば、拡張プログラムが実際にユーザに使用されるまでは、メインメニューにアイコンを表示しつつも、配置と開始をしないため、リソースの消費を抑えることができる。さらに、ユーザの要望があった時には、速やかに拡張プログラムを使うことができる。
【図面の簡単な説明】
【００１０】
【図１】実施例１の画像処理システムの構成の一例を示す図。
【図２】実施例１のＭＦＰ１０１のハードウェア構成の一例を示すブロック図。
【図３】実施例１の管理者ＰＣ１０２とユーザＰＣ１０３のハードウェア構成の一例を示すブロック図。
【図４】実施例１の画像処理システムにおける処理の一例を示すシーケンス図。
【図５】実施例１のＭＦＰ１０１におけるソフトウェア構成の一例を示すブロック図。
【図６】実施例１のバンドルのマニフェストファイルの例。
【図７】実施例１のＭＦＰ１０１における処理の一例を示すフローチャート。
【図８】実施例１の紐づけ情報の一例。
【図９】実施例１のメインメニューの表示の例。
【図１０】実施例１のＭＦＰ１０１における処理の一例を示すフローチャート。
【図１１】実施例１のＭＦＰ１０１における処理の一例を示すフローチャート。
【図１２】実施例１のＭＦＰ１０１における処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
（実施例１）
本実施例では、画像形成装置に拡張プログラムを追加する仕組みとしてＯＳＧｉフレームワークを用いるものとする。ＯＳＧｉフレームワーク上のＪａｖａ(登録商標)プログラムのことをＯＳＧｉバンドル（以下、バンドル）と呼び、本実施例では個々の拡張プログラムは独立したバンドルとして実現される。
【００１２】
画像形成装置に追加される拡張プログラムは、アプレットとサーブレットという二種類がある。アプレットは、画像形成装置上で動作するクライアントアプリケーションであり、画像形成装置の操作部上で使われる。アプレットは、メインメニュー上の拡張プログラムアイコン（以下、アプリボタン）経由で呼び出される。サーブレットは、画像形成装置上で動作するＷｅｂアプリケーションであり、画像形成装置にアクセスするウェブブラウザー上で使われる。サーブレットは、画像形成装置のウェブサーバーに登録されたサーブレットＵＲＬにウェブブラウザーでアクセスすることで呼び出される。ひとつの拡張プログラムがサーブレットとアプレットの両方を備えてもよい。
【００１３】
画像形成装置に拡張プログラムを追加することは、拡張プログラムのインストール（以下、インストール）と呼ぶ。通常の拡張プログラムのインストールは、次のような三つのステップで行う。バンドルの実行ファイル（Ｊａｖａクラスファイル）の配置（以下、実行ファイル配置）、バンドルの開始（以下、バンドル開始）、バンドルのインターフェースの登録（以下、インターフェース登録）である。インターフェース登録とは、ユーザが拡張プログラムの使用のために、メインメニューにアプリボタンを登録する、或いは、ウェブサーバーにサーブレットＵＲＬを登録することである。
【００１４】
本実施例では、実行ファイル配置とバンドル開始をせずに、インターフェース登録のみを行うことができるようにする。以降、実行ファイル配置、バンドル開始、インターフェース登録の３つを行うことを通常インストール、インターフェース登録のみを行うことを仮インストールと呼称する。通常インストールと仮インストールのどちらを行うかは、バンドルの種類によって決まる。通常インストールを行うバンドルを通常バンドル、仮インストールを行うバンドルを仮バンドルと定義する。
【００１５】
図１は、本実施形態の画像処理システムのシステム構成の一例を示す図である。本システムは、ＬＡＮ１１０を介して接続されるＭＦＰ１０１、管理者ＰＣ１０２とユーザＰＣ１０３から構成される。ＭＦＰ１０１は、スキャナ、プリンタを有する画像形成装置である。加えて、装置上で動作する基本プログラムおよび拡張プログラムを実行させるためのアプリケーションプラットホームを持つ。
【００１６】
管理者ＰＣ１０２は、ＭＦＰを管理する管理者用の端末で、ＬＡＮ１１０を介してＭＦＰ１０１へアクセスし、ＭＦＰ１０１へ拡張プログラムを追加したり、ＭＦＰ１０１から拡張プログラムを削除したりする。ユーザＰＣ１０３は、ＭＦＰを使用するユーザ用の端末で、ＬＡＮ１１０を介してＭＦＰ１０１上でウェブサーバーのサービスとしてのサーブレットを使用する。
【００１７】
図２は、ＭＦＰ１０１の構成を示すブロック図である。ＣＰＵ２１１を含む制御部２１０は、ＭＦＰ１０１全体の動作を制御する。ＣＰＵ２１１は、ＲＯＭ２１２やＨＤＤ２１４に記憶された制御プログラムを読み出して読取制御や送信制御などの各種制御処理をスレッドとして実行する。ＲＡＭ２１３は、ＣＰＵ２１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ２１４は、画像データや基本プログラム、拡張プログラムを含む各種プログラムを記憶する。上記のスレッドや記憶する領域（一時記憶領域を含めてる）などＭＦＰ１０１のリソース（以下、リソース）と呼ばれる。
【００１８】
操作部Ｉ／Ｆ２１５は、操作部２１９と制御部２１０とを接続する。操作部２１９には、タッチパネル機能を有する液晶表示部やキーボードなどが備えられている。プリンタＩ／Ｆ２１６は、プリンタ２２０と制御部２１０とを接続する。プリンタ２２０で印刷すべき画像データはプリンタＩ／Ｆ２１６を介して制御部２１０からプリンタ２２０に転送され、プリンタ２２０において記録媒体上に印刷される。スキャナＩ／Ｆ２１７は、スキャナ２２１と制御部２１０とを接続する。スキャナ２２１は、原稿上の画像を読み取って画像データを生成し、スキャナＩ／Ｆ２１７を介して制御部２１０に入力する。
【００１９】
ネットワークＩ／Ｆ２１８は、制御部２１０（ＭＦＰ１０１）をＬＡＮ１１０に接続する。ネットワークＩ／Ｆ２１８は、ＬＡＮ１１０上の他の装置との間で各種情報を送受信する。
【００２０】
図３は、管理者ＰＣ１０２とユーザＰＣ１０３の構成を示すブロック図である。ＣＰＵ３１１を含む制御部３１０は、全体の動作を制御する。ＣＰＵ３１１は、ＲＯＭ３１２やＨＤＤ３１４に記憶された制御プログラムを読み出して各種制御処理を実行する。ＲＡＭ３１３は、ＣＰＵ３１１の主メモリ、ワークエリア等の一時記憶領域として用いられる。ＨＤＤ３１４は、各種プログラムを記憶する。
【００２１】
表示部Ｉ／Ｆ３１５は、表示部３１８と制御部３１０とを接続する。キーボードＩ／Ｆ３１６は、キーボード３１９と制御部３１０とを接続する。ＣＰＵ３１１は、キーボード３１９を介したユーザからの指示を認識し、認識した指示に応じて表示部３１８に表示する画面を遷移させる。ネットワークＩ／Ｆ３１７は、制御部３１０（管理者ＰＣ１０２）をＷＡＮ１２０に接続する。ネットワークＩ／Ｆ３１７は、ＬＡＮ１１０上の他の装置との間で各種情報を送受信する。
【００２２】
次に図４ではＬＡＮ１１０経由で拡張プログラムとして仮バンドルを使用する例を説明する。図４（ａ）は、管理者ＰＣ１０２を用いて仮バンドルをＭＦＰ１０１へ仮インストールする動作を示す。管理者ＰＣ１０２はＬＡＮ１１０を通してＭＦＰ１０１へアクセスする。管理者ＰＣ１０２は仮バンドル仮インストール指示とともに、仮バンドル５５０や仮バンドル５６０をＭＦＰ１０１へ送信する（Ｓ４０１）。
【００２３】
図４（ｂ）は、ユーザＰＣ１０３を用いてＬＡＮ１１０の経由でＭＦＰ１０１上の仮バンドルのサーブレットを使用する動作を示す。ユーザＰＣ１０３はＬＡＮ１１０を通してＭＦＰ１０１へアクセスする。ユーザＰＣ１０３は仮バンドルの使用指示とともに、仮バンドル５６０のサーブレットのＵＲＬ６６１をＭＦＰ１０１のユーザーインターフェースへ送信する（Ｓ４０２）。
【００２４】
図５は、本実施例のＭＦＰ１０１におけるソフトウェア構成図である。ＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、図７および図１０〜図１２のフローチャートの処理が実行される。拡張プログラム管理部５１０は、ＭＦＰ１０１上で拡張プログラムを動作させるためのアプリケーションプラットホームである。
【００２５】
ユーザーインターフェース管理部５２０は、ＭＦＰ１０１上で発生したユーザ操作の情報を分類して、処理を行う。メインメニュー管理部５２１は、メインメニューの管理を行う。メインメニューにアプリボタンを表示したり、押下されたアプリボタンに対応する拡張プログラムを呼び出したりする。サーブレットサービス管理部５２２は、ＭＦＰ１０１に登録されたサーブレットＵＲＬの管理を行う。ネットワークからのサーブレットの使う要請に対してサーブレットを呼び出す。
【００２６】
仮バンドル管理部５３０は、仮バンドルの管理を行うアプリケーションであり、仮バンドルデータ管理部５３１、ライフサイクル処理部５３２、仮バンドル状態確認部５３３、実行ファイルダウンロード処理部５３４を持つ。仮バンドルデータ管理部５３１は、仮バンドルで扱うデータの管理を行う。仮バンドルデータ管理部５３１は、仮バンドル管理部５３０に登録した仮バンドルの情報と状態を紐づけ情報リスト８００として保持する。
【００２７】
ライフサイクル処理部５３２は、仮バンドルのライフサイクルの変化（例えば、インストール、使用）を監視して、ライフサイクルの変化に応じた処理を行う。仮バンドル状態確認部５３３は、仮バンドルに関するＭＦＰ１０１の状態をチェックする。例えば、配置用実行ファイル５６３のダウンロード状態、ＭＦＰ１０１の使用可能なリソースの状態、ＭＦＰ１０１とインターネットの接続状態を監視する。実行ファイルダウンロード処理部５３４は、配置用実行ファイルを持ってない仮バンドルのために、配置用実行ファイルをダウンロードする。
【００２８】
通常バンドル５４０は、拡張プログラムとして通常インストールされた通常バンドルであり、マニフェストファイル５４１、アイコン画像５４２、配置済み実行ファイル５４３を持つ。マニフェストファイル５４１は、通常バンドル５４０のバンドル定義を記載したマニフェストファイルである。アイコン画像５４２は、アプリボタンに表示するアイコン画像である。配置済み実行ファイル５４３は、ＭＦＰ１０１のＨＤＤ２１４の記憶領域に配置した実行ファイルである。ＣＰＵ２１１で実行されることによって、配置済み実行ファイル５４３は、拡張プログラムとして動作する。
【００２９】
ＭＦＰ１０１には、複数の仮バンドルを仮インストールすることができる。インストールした仮バンドルは、仮バンドルデータ管理部５３１が管理している紐づけ情報リスト８００に登録して、管理される。仮バンドル５５０は、アプレットだけを持っている拡張プログラムとして仮インストールされた仮バンドルであり、マニフェストファイル５５１、アイコン画像５５２を持つ。マニフェストファイル５５１は、仮バンドル５５０のバンドル定義を記載したマニフェストファイルである。アイコン画像５５２は、アプリボタンに表示するアイコン画像である。
【００３０】
仮バンドル５６０は、サーブレットとアプレットの両方を備えている拡張プログラムとして仮インストールされた仮バンドルであり、マニフェストファイル５６１、アイコン画像５６２に加え、配置用実行ファイル５６３を持っている。配置用実行ファイル５６３は、実行ファイル配置に使用されるファイルである。
【００３１】
図６（ａ）は、本実施例における通常バンドル５４０のマニフェストファイル５４１の具体的な記述例である。Ａｐｐｌｉｃａｔｉｏｎ−Ｉｄ（６１１）はバンドルを一意に識別するためのＩＤを定義する項目である。Ｂｕｎｄｌｅ−Ｎａｍｅ（６１２）はバンドルの名前を定義する項目である。Ｂｕｎｄｌｅ−Ｔｙｐｅ（６１３）はバンドルの種類を定義する項目で、６１３には「Ｎｏｒｍａｌ」と定義されて、通常バンドルであることを示している。ＳｐｅｃＶｅｒｓｉｏｎ（６１４）はバンドルが使用するＭＦＰ１０１の機能を定義する項目である。ＴｈｒｅａｄＵｓａｇｅ（６１５）はバンドルが使用するスレッドの数を定義する項目である。
【００３２】
ＦｉｌｅｓｐａｃｅＵｓａｇｅ（６１６）はバンドル自身のファイルサイズとバンドルが外部記憶として使用するＨＤＤ２１４のサイズを定義する項目である。ＭｅｍｏｒｙＵｓａｇｅ（６１７）はバンドルが使用するＲＡＭ２１３の量を定義する項目である。ＦｉｌｅｄｅｓｃｒｉｐｔｏｒＵｓａｇｅ（６１８）はバンドルが使用するファイル記述子の個数を定義する項目である。ＳｏｃｋｅｔＵｓａｇｅ（６１９）はバンドルが使用するソケット数を定義する項目である。
【００３３】
図６（ｂ）と（ｃ）は、本実施例における仮バンドルのマニフェストファイル５５１と５６１の具体的な記述例である。仮バンドルであるため、Ｂｕｎｄｌｅ−Ｔｙｐｅ６６３、６５３は「Ｌｉｔｅ」と定義されている。仮バンドル図６（ｂ）は、ＡｐｐＰａｃｋａｇｅＰａｔｈ（６４０）に仮バンドルに対応する配置用実行ファイルを保存しているパス（例として、ネットワーク上のパスである）を定義している。
【００３４】
仮アプリバンドル５６０は、配置用実行ファイル５６３を持っているため、仮アプリバンドル５６０のマニフェストファイル図６（ｃ）は、ＡｐｐＰａｃｋａｇｅＰａｔｈ（６６０）にパスを定義していない。また、仮アプリバンドル５６０は、サーブレット機能を持っているため、仮アプリバンドル５６０のマニフェストファイル図６（ｃ）は、Ｓｅｒｖｌｅｔ−ＵＲＬ（６６１）を定義している。
【００３５】
図９は、ＭＦＰ１０１の操作部２１９に表示されるメインメニューの表示の一例である。図９（ａ）は工場出荷時のメインメニューの一例である。図９（ａ）に表示されているボタンは基本プログラムを呼び出すためのボタンである。ボタン９０１を押下すると、コピー機能が呼び出される（コピー画面に表示が切り替わる）。
【００３６】
図９（ｂ）は拡張プログラムとして通常バンドル５４０、仮バンドル５５０、仮バンドル５６０をインストールした場合のメインメニューの一例である。図９（ａ）との違いはボタン９０２、ボタン９０３、ボタン９０４が追加されていることである。ボタン９０２は通常バンドル５４０を通常インストールしたことによって追加されたボタンであり、押下すると通常バンドル５４０が操作部２１９に呼び出される。
【００３７】
ボタン９０３は仮バンドル５５０をインストールしたことによって追加されたボタンである。ボタン９０４は仮バンドル５６０をインストールしたことによって追加されたボタンである。ボタン９０３またはボタン９０４を押下すると仮バンドルに対応した配置用実行ファイルが実行ファイルダウンロード処理部５３４によってダウンロードされ、実行ファイル配置、バンドル開始を行ったのちに呼び出される。
【００３８】
図９（ｂ）で示したように、メインメニューにおいて、基本プログラムと拡張プログラム（通常バンドルと仮バンドル）のボタンは区別なしに表示される。各アプリボタンにはボタン名称とアイコン画像を表示する。アプリボタン９０２に表示されているのは、６３１で定義された仮バンドルの名称とアイコン画像５５２で定義されたアイコン画像である。
【００３９】
図７は、ＭＦＰ１０１に拡張プログラムをインストールする処理を説明するフローチャートである。また図７は、図４のＳ４０１を処理するためのＭＦＰ１０１におけるフローチャートでもある。ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、フローチャートの各ステップが実行される。
【００４０】
まず、拡張プログラム管理部５１０は、拡張プログラムのインストール指示を受け取る（ステップＳ７０１）と、インストール指示で受け取ったバンドルをＨＤＤ２１４に読み込む（ステップＳ７０２）。拡張プログラム管理部５１０は、受け取ったバンドルの中に格納されているマニフェストファイルを使って、バンドルがＭＦＰ１０１で使用可能か否かを確認する（ステップ７０３）。
【００４１】
ステップＳ７０３で、拡張プログラム管理部５１０はマニフェストファイルの中で記載されている項目をチェックする。例えば、ＳｐｅｃＶｅｒｓｉｏｎに記載した機能をＭＦＰ１０１が持っていない場合、バンドルは使用できないと判断する。また、ＭｅｍｏｒｙＵｓａｇｅに記載したメモリ使用量がＭＦＰ１０１で確保できない場合、バンドルは使用できないと判断する。このように、ステップＳ７０３で、バンドルが要求する機能やリソースをＭＦＰ１０１が提供できない場合、エラー画面を表示して処理を終了する（ステップＳ７５０）。マニフェストファイルが正常と判断すれば、次のステップＳ７０４へ処理を進める。
【００４２】
ステップＳ７０４で、拡張プログラム管理部５１０はマニフェストファイルに記載されたＢｕｎｄｌｅ−Ｔｙｐｅをチェックして、仮バンドルか、通常バンドルかを判断する。通常バンドルと判断する場合、ステップＳ７１１へ処理を進める。ステップＳ７１１からのフローチャートは、通常バンドルの通常インストール過程である。拡張プログラム管理部５１０は、ステップＳ７１１で、通常バンドルの実行ファイルをＨＤＤ２１４に配置する。配置された実行ファイルの一例が、配置済み実行ファイル５４３である。
【００４３】
次にステップＳ７１２で、拡張プログラム管理部５１０はステップＳ７０３で確認した通常バンドルが要求するリソースを確保して、通常バンドルを開始する。ステップＳ７１３で、拡張プログラム管理部５１０は通常バンドルのインターフェースをユーザーインターフェース管理部５２０に登録する。具体的には、ＭＦＰ１０１のメインメニュー（図９）にアプリアイコン画像５４２を登録する。最後に、ステップＳ７４１で、仮バンドル状態チェックイベントを発生させる。
【００４４】
ステップＳ７０４で、仮バンドルと判断すれば、拡張プログラム管理部５１０はステップＳ７２１へ処理を進める。ステップＳ７２１で、仮バンドル状態確認部５３３は、ステップＳ７０２でＨＤＤ２１４に読み込んだ仮バンドルの中で配置用実行ファイルが存在するかを確認する。配置用実行ファイルが存在すれば、ステップＳ７２２へ進み、仮バンドルデータ管理部５３１は、ＨＤＤ２１４に配置用実行ファイルを保存する。
【００４５】
上記のステップＳ７２１で配置用実行ファイル５６３が存在しない場合、仮バンドルデータ管理部５３１は、ステップＳ７３１へ進み、マニフェストファイルのＡｐｐＰａｃｋａｇｅＰａｔｈ（６４０）の値を確認する。この値が正しくない場合（存在しない、フォーマットエラーなど）、エラー画面を表示して処理を終了する（ステップＳ７５０）。この値が正しい場合、仮バンドルデータ管理部５３１は、ステップＳ７３２で、ダウンロードコマンドイベントを発生して、ステップＳ７４０へ処理を進める。
【００４６】
仮バンドルデータ管理部５３１は、ステップＳ７４０で、仮バンドルの情報（Ａｐｐｌｉｃａｔｉｏｎ−Ｉｄ、Ｓｅｒｖｌｅｔ−ＵＲＬ、ＡｐｐＰａｃｋａｇｅＰａｔｈ）を紐づけ情報リスト８００に登録する。
【００４７】
次に、ステップＳ７４１で、仮バンドル状態チェックイベントを発生して（発生したイベントは図１１のフローチャートで処理される）処理を終了する。
【００４８】
図８に、登録した仮バンドルに関する紐づけ情報の一例を示す。紐づけ情報は、ＭＦＰ１０１のＨＤＤ２１４に保持されている。紐づけ情報リスト８００は、仮バンドルデータ管理部５３１で管理されている。紐づけ情報リスト８００では、ステップＳ７４０で記入された情報とステップＳ１１０９で更新された状態を記録している。
【００４９】
具体的には、Ａｐｐｌｉｃａｔｉｏｎ−Ｉｄ（６３１／６５１）を仮バンドルＩＤ８０１に記入する。Ｓｅｒｖｌｅｔ−ＵＲＬ（６６１）をサーブレット８０３に記入する。ＡｐｐＰａｃｋａｇｅＰａｔｈ（６４０／６６０）を実行ファイルパス８０４に記入する。アプリボタンＩＤをアプリボタンＩＤ８０２に記入する。配置用実行ファイル状態８０５にステップＳ１１０６或いはステップＳ１１０７で取得した状態を記入する。本体状態８０６にステップＳ１１０５で取得した状態を記入する。
【００５０】
配置用実行ファイル状態８０５に記入する値は、例えば「ダウンロード待ち」「ダウンロード中」「ダウンロード完了」「ダウンロードＮＧ」である。本体状態８０６に記入できる値は、例えば「リソース不足」「リソース足」である。
【００５１】
図１０は、ユーザがインターフェース経由で仮バンドルを使用する場合の仮バンドル管理部５３０の処理を説明するフローチャートである。アプレットの場合は、メインメニューから仮バンドルのアプリボタンを押下した場合であり、サーブレットの場合は、ブラウザーでサーブレットＵＲＬへアクセスした場合である。ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、フローチャートの各ステップが実行される。
【００５２】
ライフサイクル処理部５３２はメインメニュー管理部５２１とサーブレットサービス管理部５２２に仮バンドル使用イベント通知受信を登録して（ステップＳ１００１）、仮バンドルの使用イベント旨の通知を待ち受ける（ステップＳ１００２）。通知には、仮バンドルに関する情報（アプリボタンＩＤ、或いは、サーブレットＵＲＬ）が含まれている。
【００５３】
ステップＳ１００２で通知受け取ると、仮バンドルデータ管理部５３１は、紐づけ情報リスト８００から仮バンドル（当仮バンドル）を特定して（ステップＳ１００３）、当仮バンドルの情報を取得する（ステップＳ１００４）。
【００５４】
仮バンドルデータ管理部５３１はステップＳ１００５で、当仮バンドルの配置用実行ファイル状態８０５を確認する。ダウンロード完了状態なら、ステップＳ１００８へ処理を進める。ダウンロードＮＧ状態なら、エラー画面を表示して処理を終了する（ステップＳ１００７）。その他の状態なら、ステップＳ１００６でダウンロードコマンドイベント発生して、ステップＳ１００４へ戻る。
【００５５】
ステップＳ１００８で、拡張プログラム管理部５１０は、配置用実行ファイルをＨＤＤ２１４に配置する。ステップＳ１００９で、拡張プログラム管理部５１０は、配置されたバンドルを開始する。そして、ステップＳ１０１０で、拡張プログラム管理部５１０は、仮バンドル状態チェックイベントを発生させる。
【００５６】
次に、仮バンドルデータ管理部５３１は、ステップＳ１０１１で、配置用実行ファイル５６３を削除して、ステップＳ１０１２で、当仮バンドルに関する情報を紐づけ情報リスト８００から削除して処理を終了する。
【００５７】
図１１は、仮バンドル状態チェックイベントを受けて、仮バンドルの情報のチェックを行う処理を説明するフローチャートである。ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、フローチャートの各ステップが実行される。
【００５８】
まず、ライフサイクル処理部５３２は、仮バンドル状態チェックイベントの通知を受信するよう、拡張プログラム管理部５１０と仮バンドルデータ管理部５３１に登録する（ステップＳ１１０１）。次にライフサイクル処理部５３２は、仮バンドル状態チェックイベントの発生通知を待ちうける（ステップＳ１１０２）。仮バンドル状態チェックイベントの発生通知を受信すると、ステップＳ１１０３へ処理を進める。
【００５９】
通知に、仮バンドルＩＤが含まれている場合、仮バンドルＩＤに対して仮バンドルの情報だけをチェックして更新する。含まれてなければ、紐づけ情報リスト８００に登録されている全部の仮バンドルの情報をチェックして（以下、全チェック）更新する。
【００６０】
ステップＳ１１０３で仮バンドルデータ管理部５３１は、紐づけ情報リスト８００に登録されている仮バンドルの存在を確認して、特定する。紐づけ情報リスト８００に登録されている仮バンドルが存在しない、或いは、仮バンドルが特定できない場合、ステップＳ１１０２に戻って、仮バンドル状態チェックイベントの発生を待ちうける。紐づけ情報リスト８００に登録されている仮バンドルが存在する場合、紐づけ情報リスト８００から仮バンドル特定して（下記、当仮バンドル）、次のステップＳ１１０４へ処理を進める。
【００６１】
ステップＳ１１０４で仮バンドルデータ管理部５３１は、当仮バンドルの情報をマニフェストファイルおよび紐づけ情報リスト８００から取得して、ステップＳ１１０５からステップＳ１１０９までで、当仮バンドルの状態を確認する。
【００６２】
仮バンドル状態確認部５３３はステップＳ１１０５で、ＭＦＰ１０１のリソースの状態をチェックする。例えば、ＭｅｍｏｒｙＵｓａｇｅに記載したメモリ使用量がＭＦＰ１０１で確保できない場合、バンドルはリソース不足と判断する。マニフェストファイルに定義された他のリソースも同様にチェックする。リソース不足の場合、ステップＳ１１２０へ処理を進める。リソースが足りれば、仮バンドル状態確認部５３３は、当仮バンドルの配置用実行ファイル状態８０５を確認する。ダウンロード完了状態なら、次のステップＳ１１０８へ処理を進める。それ以外の状態なら、次のステップＳ１１０７へ処理を進める。
【００６３】
ステップＳ１１０７で仮バンドル状態確認部５３３は当仮バンドルの配置用実行ファイルパス８０４に記載されたパスに繋がることを試して、繋がる場合、次のステップＳ１１０８へ処理を進める。繋がらない場合、ステップＳ１１２０へ処理を進める。
【００６４】
ステップＳ１１０８で、ライフサイクル処理部５３２は、仮バンドルのインターフェース（アイコン画像５５２／５６２、或いはサーブレット８０３）をユーザーインターフェース管理部５２０に登録する。具体的には、アイコン画像５５２／５６２をメインメニュー管理部５２１に登録して、登録したアプリボタンＩＤを当仮バンドルのアプリボタンＩＤ８０２に保存する。また、当仮バンドルはサーブレットをサポートしたら、当仮バンドルをサーブレットサービス管理部５２２に登録して、次のステップＳ１１０９へ処理を進める。メインメニュー管理部５２１は、登録されたアイコン画像５５２／５６２をアプリボタンとしてメインメニュー（図９（ｂ））に示す。
【００６５】
ステップＳ１１２０で、ライフサイクル処理部５３２は、仮バンドルのインターフェースをユーザーインターフェース管理部５２０から削除して、次のステップＳ１１０９へ処理を進める。ステップＳ１１０９で仮バンドルデータ管理部５３１は、ステップＳ１１０５とステップＳ１１０７から取得した情報を当仮バンドルの状態（配置用実行ファイル状態８０５と本体状態８０６）に更新して、当仮バンドルの情報チェックを完了する。
【００６６】
ステップＳ１１１０で次の仮バンドルが存在する場合、仮バンドルデータ管理部５３１は、次の仮バンドルを指定して、ステップＳ１１０４へ処理を戻る。上記以外の場合、処理を終了する。
【００６７】
図１２は、ステップＳ７３４やステップＳ１００６で発生したダウンロードコマンドイベントを受けた後の動作を説明するフローチャートである。ＭＦＰ１０１のＨＤＤ２１４に記憶されているプログラムを、ＣＰＵ２１１がＲＡＭ２１３に読み出し、解析、実行することで、フローチャートの各ステップが実行される。
【００６８】
まず、実行ファイルダウンロード処理部５３４は、ステップＳ１２０１で、ダウンロードコマンドイベントの通知を受信するよう、ライフサイクル処理部５３２に登録する、次に、ダウンロードコマンドイベントの発生を待ちうける（ステップＳ１２０２）。ダウンロードコマンドイベントの通知を受信するとステップＳ１２０３へ処理を進める。通知には、仮バンドルＩＤが含まれている。
【００６９】
ステップＳ１２０３で、仮バンドルデータ管理部５３１は、紐づけ情報リスト８００から仮バンドルＩＤが紐づけの実行ファイルパス８０４を取得して、実行ファイルダウンロード処理部５３４は、ダウンロード開始する（ステップＳ１２０４）。
【００７０】
ステップＳ１２０５で、実行ファイルダウンロード処理部５３４は、ダウンロードの状況（成功するか）を監視して、ダウンロード成功しないの場合、まず、ステップＳ１２０８で、実行ファイルダウンロード処理部５３４は、ダウンロードを中止する。次に、ステップＳ１２０７で仮バンドルデータ管理部５３１は配置用実行ファイル状態８０５にダウンロードＮＧ（８２４）を記入する。ダウンロード成功すれば、まず、ステップＳ１２０６で、実行ファイルダウンロード処理部５３４は、配置用実行ファイルとしてダウンロードした実行ファイルを保存する。次に、ステップＳ１２０７で仮バンドルデータ管理部５３１は配置用実行ファイル状態８０５にダウンロード完了（８２３）を記入する。
【００７１】
最後に、ステップＳ１２０９で、実行ファイルダウンロード処理部５３４は、仮バンドル状態チェックイベントを発生して処理を終了する。
【００７２】
以上、第１の実施例において説明した手順により、拡張プログラムが実際にユーザに使用されるまでは、ユーザーインターフェース登録しつつも、配置と開始をしないため、リソースの消費を抑えることができる。さらに、ユーザの要望があった時には、速やかに拡張プログラムを使うことができる。
【符号の説明】
【００７３】
ＬＡＮ  １１０
ＭＦＰ  １０１
管理者ＰＣ    １０２
ユーザＰＣ  １０３
【図１】
2019070884.tif 000003
【図２】
2019070884.tif 000004
【図３】
2019070884.tif 000005
【図４】
2019070884.tif 000006
【図５】
2019070884.tif 000007
【図６】
2019070884.tif 000008
【図７】
2019070884.tif 000009
【図８】
2019070884.tif 000010
【図９】
2019070884.tif 000011
【図１０】
2019070884.tif 000012
【図１１】
2019070884.tif 000013
【図１２】
2019070884.tif 000014