(57)【要約】      （修正有）【課題】機能を拡張するためのアプリケーションをインストールする場合に、変化する資源量を考慮したインストール制御を可能とする。【解決手段】画像形成装置は、フラグメントバンドルによって機能が拡張されたホストバンドルを含むインストール済みのアプリケーションが使用する資源の資源量の合計値を算出するＳ１００３，１００６。そして、算出された合計値が情報処理装置が許容する許容量以内の場合にＳ１００３またはＳ１００７でＹＥＳ、拡張アプリケーションをインストールするＳ１００５，１００９。【選択図】図８
2015197845.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置の資源を用いて動作するとともに、前記情報処理装置にインストール済みのアプリケーションの機能を拡張する拡張アプリケーションをインストール可能な情報処理装置であって、
前記拡張アプリケーションをインストールした場合に、前記拡張アプリケーションによって機能が拡張された拡張対象アプリケーションを含むインストール済みのアプリケーションが使用する前記資源の資源量の合計値を算出する算出手段と、
前記算出手段により算出された前記合計値が前記情報処理装置が許容する許容量以内か否か判別する判別手段と、
前記判別手段により前記合計値が前記許容量以内と判別された場合に、前記拡張アプリケーションをインストールするインストール手段とを有することを特徴とする情報処理装置。
【請求項２】
前記算出手段は、前記拡張アプリケーションがインストールされていない前記拡張対象アプリケーションが使用する前記資源の資源量と、前記拡張アプリケーションがインストールされた前記拡張対象アプリケーションが使用する前記資源の資源量との差分を用いて前記合計値を算出することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記判別手段により前記合計値が前記許容量以内ではないと判別された場合に、インストール済みの拡張アプリケーションをアンインストールするための画面でユーザにより指定された前記インストール済みの拡張アプリケーションをアンインストールすることを特徴とする請求項１または請求項２記載の情報処理装置。
【請求項４】
前記情報処理装置にインストールされていない前記拡張対象アプリケーションと前記拡張アプリケーションとをインストールする場合に、前記拡張対象アプリケーションと前記拡張アプリケーションとが使用する前記資源の資源量を、前記拡張対象アプリケーションに前記拡張アプリケーションがインストールされた場合に前記拡張対象アプリケーションが使用する前記資源の資源量としてインストールすることを特徴とする請求項１乃至請求項３のいずれか１項に記載の情報処理装置。
【請求項５】
前記拡張対象アプリケーションにインストールされた前記拡張アプリケーションをアンインストールした場合に、前記拡張アプリケーションがアンインストールされた拡張対象アプリケーションを含むインストール済みのアプリケーションが使用する前記資源の資源量の合計値を算出する他の算出手段と、
前記他の算出手段により算出された前記合計値が前記情報処理装置が許容する許容量以内か否か判別する他の判別手段と、
前記他の判別手段により前記合計値が前記許容量以内と判別された場合に、前記拡張アプリケーションをアンインストールするアンインストール手段とをさらに有することを特徴とする請求項１乃至請求項４のいずれか１項に記載の情報処理装置。
【請求項６】
前記他の算出手段は、前記拡張アプリケーションがアンインストールされた拡張対象アプリケーションを含むインストール済みのアプリケーションが使用する前記資源の資源量から、前記拡張アプリケーションが使用する前記資源の資源量を差し引くことにより前記合計値を算出することを特徴とする請求項５記載の情報処理装置。
【請求項７】
情報処理装置の資源を用いて動作するとともに、前記情報処理装置にインストール済みのアプリケーションの機能を拡張する拡張アプリケーションをインストール可能な情報処理装置の制御方法であって、
前記拡張アプリケーションをインストールした場合に、前記拡張アプリケーションによって機能が拡張された拡張対象アプリケーションを含むインストール済みのアプリケーションが使用する前記資源の資源量の合計値を算出する算出ステップと、
前記算出ステップにより算出された前記合計値が前記情報処理装置が許容する許容量以内か否か判別する判別ステップと、
前記判別ステップにより前記合計値が前記許容量以内と判別された場合に、前記拡張アプリケーションをインストールするインストールステップとを有することを特徴とする制御方法。
【請求項８】
情報処理装置の資源を用いて動作するとともに、前記情報処理装置にインストール済みのアプリケーションの機能を拡張する拡張アプリケーションをインストール可能な情報処理装置の制御方法をコンピュータに実行させるためのプログラムであって、
前記制御方法は、
前記拡張アプリケーションをインストールした場合に、前記拡張アプリケーションによって機能が拡張された拡張対象アプリケーションを含むインストール済みのアプリケーションが使用する前記資源の資源量の合計値を算出する算出ステップと、
前記算出ステップにより算出された前記合計値が前記情報処理装置が許容する許容量以内か否か判別する判別ステップと、
前記判別ステップにより前記合計値が前記許容量以内と判別された場合に、前記拡張アプリケーションをインストールするインストールステップとを有することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法、並びにプログラムに関する。
【背景技術】
【０００２】
近年、画像形成装置などの情報処理装置において、ＪＡＶＡ（登録商標）環境に代表されるアプリケーション（以下、「アプリ」という）動作環境が提供されている。ＪＡＶＡ（登録商標）の持つプログラムの可搬性を利用して、拡張可能なアプリを提供する技術が提案されている。
【０００３】
画像形成装置の機能やユーザビィリティの向上を図るために、ＪＡＶＡ（登録商標）環境などの環境下で動作するアプリを作成し、画像形成装置にインストールすることで、当該アプリにより所望の機能を実現できる。
【０００４】
アプリプラットフォームとしては、組み込み機器向けのＪＡＶＡ（登録商標）アプリプラットフォームであるＯＳＧｉ（Open Services Gateway initiative）Service Platform（以下、単に「ＯＳＧｉ」という）がある（例えば、非特許文献１参照）。
【０００５】
ＯＳＧｉでは、ソフトウェアモジュールの管理単位としてバンドルを定義し、インストール／開始／停止／更新／アンインストールからなるライフサイクルを管理する仕様を定義している。
【０００６】
バンドルとはＪＡＶＡ（登録商標）モジュールのことを指す。また、ＯＳＧｉにより、コピー、スキャン、及びプリント等の組み込み機能をアプリに提供できる。
【０００７】
さらに、ＯＳＧｉの仕様には、ホストバンドルとフラグメントバンドルがある。フラグメントバンドルは、単独では動作せず、ホストバンドルのクラスローダ空間にバンドル自身をアタッチする形式のバンドルである。
【０００８】
アプリの修正または拡張時に、フラグメントバンドルを用いてホストバンドルの機能を修正または拡張することで、インストールするファイルサイズを小さくして効率的なモジュール配布が可能となる。
【０００９】
このような技術背景において、画像形成装置はコストダウンのため、メモリなどのシステム資源が豊富に用意されていない場合が多い。このためアプリをインストールまたはアプリを開始するには、当該アプリが正しく動作するために必要なシステム資源を確保できているかをチェックし、機器の障害や誤動作を防止する技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【００１０】
【非特許文献１】「ＯＳＧｉＳｅｒｖｉｃｅ Ｐｌａｔｆｏｒｍ，Ｒｅｌｅａｓｅ４」， ｈｔｔｐ：／／ｗｗｗ．ｏｓｇｉ．ｏｒｇ／Ｄｏｗｎｌｏａｄ／Ｒｅｌｅａｓｅ４Ｖ４０，２００５年１０月
【特許文献１】特開２０１１−２４３２３２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、例えばフラグメントバンドルをインストールする場合、インストールされたホストバンドルが必要とする消費資源が増加する場合がある。この場合、ホストバンドルのインストール時や実行時にチェックした資源量が保証できなくなる。
【００１２】
また、フラグメントバンドルを利用する前提のホストバンドルには、ホストバンドルが持つ標準機能を利用せずにフラグメントバンドルに含まれる機能に置き換えて実行するものもある。
【００１３】
その場合、フラグメントバンドルの利用によって必要な資源量が減少するケースもある。従って、フラグメントバンドルをアンインストールすることでアプリが必要とする資源量が増加してしまうため、その資源量によってはフラグメントバンドルのみをアンインストールできなくなる。
【００１４】
このように、従来の技術では、拡張するためのアプリをインストールまたはアンインストールする場合に変化する資源量が考慮されていなかった。
【００１５】
本発明の目的は、機能を拡張するためのアプリケーションをインストールする場合に変化する資源量を考慮したインストール制御が可能な情報処理装置及びその制御方法、並びにプログラムを提供することにある。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、請求項１の画像形成装置は、情報処理装置の資源を用いて動作するとともに、前記情報処理装置にインストール済みのアプリケーションの機能を拡張する拡張アプリケーションをインストール可能な情報処理装置であって、前記拡張アプリケーションをインストールした場合に、前記拡張アプリケーションによって機能が拡張された拡張対象アプリケーションを含むインストール済みのアプリケーションが使用する前記資源の資源量の合計値を算出する算出手段と、前記算出手段により算出された前記合計値が前記情報処理装置が許容する許容量以内か否か判別する判別手段と、前記判別手段により前記合計値が前記許容量以内と判別された場合に、前記拡張アプリケーションをインストールするインストール手段とを有することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、拡張アプリケーションによって機能が拡張された拡張対象アプリケーションを含むインストール済みのアプリケーションが使用する資源の資源量の合計値を算出し、算出された合計値が情報処理装置が許容する許容量以内の場合に、拡張アプリケーションをインストールするので、機能を拡張するためのアプリケーションをインストールする場合に変化する資源量を考慮したインストール制御が可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態に係る画像形成装置の概略構成を示す図である。
【図２】図１における画像形成装置のソフトウェアモジュール階層を示す図である。
【図３】ＰＣから画像形成装置へアプリがインストールされる処理の流れを示す図である。
【図４】ホストバンドルへフラグメントバンドルを追加するインストールの一例とマニフェストの一例とを示す図である。
【図５】図４で示したマニフェストのそれぞれの組み合わせによるアプリ総消費資源量を示す図である。
【図６】図２におけるアプリ管理部により表示されるアプリの管理画面とインストール画面を示す図である。
【図７】図７（Ａ）は、図１におけるＣＰＵにより実行されるインストール時チェック処理の手順を示すフローチャートであり、（Ｂ）は、図１におけるＣＰＵにより実行される動作時チェック処理の手順を示すフローチャートである。
【図８】図１におけるＣＰＵにより実行される、フラグメントバンドルのインストール処理の手順を示すフローチャートである。
【図９】図１におけるＣＰＵにより実行されるアンインストール処理の手順を示すフローチャートである。
【図１０】図２におけるアプリ管理部により表示される削除候補画面を示す図である。
【図１１】削除候補画面を表示する場合のフラグメントバンドルのインストール処理の手順を示すフローチャートである。
【図１２】図２におけるインストール制御部により表示される同時インストール画面を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について図面を参照しながら詳述する。
【００２０】
図１は、本発明の実施の形態に係る情報処理装置としての画像形成装置１３０の概略構成を示す図である。
【００２１】
図１において、画像形成装置１３０は、コントローラ１００を有する。コントローラ１００は、ＣＰＵ１０１、ＲＡＭ１０３、操作部インタフェース１０５、操作部１１８、ネットワークインタフェース１０６、ＲＯＭ１０２、ＨＤＤ１０４、スキャナインタフェース１０８、スキャナ部１１３、画像処理部１０９、プリンタインタフェース１１０、及びプリンタ部１１４で構成される。これらはシステムバス１１９などのバスにより接続されている。
【００２２】
ＣＰＵ１０１は、ＲＯＭ１０２に記憶された制御プログラム等に基づいて接続中の各種ハードウェアとのアクセスを統括的に制御し、またコントローラ１００で行われる各種処理についても統括的に制御する。
【００２３】
ＲＯＭ１０２は読み出し専用の不揮発記憶装置であり、画像形成装置１３０のブートプログラムなどが記憶されている。
【００２４】
ＲＡＭ１０３は、ＣＰＵ１０１が動作するためのシステムワークメモリであり、各種プログラムや各種データなどを一時記憶するためのメモリである。このＲＡＭ１０３は、電源オフ後に記憶内容を保持可能なＦＲＡＭ（登録商標）やＳＲＡＭ、そして電源オフ後に記憶内容が消去されるＤＲＡＭなどにより構成される。
【００２５】
ＨＤＤ１０４は不揮発記憶装置であり、システムアプリケーションなどの各種プログラムや各種データなどを記憶する。本実施の形態でインストールされるアプリケーション（以下、「アプリ」という）は、ＨＤＤ１０４に記憶される。
【００２６】
操作部インタフェース１０５は、システムバス１１９と操作部１１８とを接続するインタフェース部である。
【００２７】
具体的に、操作部インタフェース１０５は操作部１１８に表示するデータをシステムバス１１９から受取って表示するとともに、操作部１１８からの入力情報をシステムバス１１９へ出力する。画像形成装置１３０に対するユーザの指示や情報提示は、操作部１１８を介して行われる。
【００２８】
ネットワークインタフェース１０６はＬＡＮ１１６、及びＷＡＮ１１７に接続し、外部機器と情報を送受信する。スキャナインタフェース１０８は、スキャナ部１１３から受取った画像データに対して、補正、加工、及び編集を行う。
【００２９】
画像処理部１０９は、画像データの方向変換、画像圧縮、及び伸張などを行う。プリンタインタフェース１１０は、画像処理部１０９から送られた画像データを受取り、プリンタ部１１４に出力する。プリンタ部１１４はプリンタインタフェース１１０が出力した画像データを紙などの記録媒体に印刷する。
【００３０】
このように、画像形成装置１３０は、一般的な情報処理装置と同じく、演算装置、揮発性記憶装置、及び不揮発性記憶装置などで構成されている。
【００３１】
上述した構成となっている画像形成装置１３０と通信するＰＣは、ＷＥＢブラウザを実行可能な一般的なパソコンであるが、ＷＥＢブラウザを実行可能なスマートフォンやタブレット端末でもよい。
【００３２】
図２は、図１における画像形成装置１３０のソフトウェアモジュール階層２００を示す図である。
【００３３】
図２に示されるソフトウェアは、ＲＯＭ１０２またはＨＤＤ１０４に記憶され、ＣＰＵ１０１により実行される。また、実行時に使用する各種情報はＲＡＭ１０３またはＨＤＤ１０４に記憶され、各種情報はソフトウェア機能間でやりとりされる。
【００３４】
ソフトウェアは、ＯＳ（オペレーティングシステム）プラットフォーム２０１を有し、ＯＳプラットフォーム２０１上にソフトウェアプラットフォーム２０２が構成されている。
【００３５】
ソフトウェアプラットフォーム２０２は、ＪＶＭ２０３（Java（登録商標） Virtual Machine）のランタイム環境として構成されており、インタプリタとしてのＪＶＭ２０３、ライブラリ２０５、及びフレームワーク群２０４を有する。
【００３６】
ライブラリ２０５は、標準のＡＰＩライブラリを含む。また、フレームワーク群２０４は、ＯＳＧｉ２０６とＯＳＧｉ拡張部２１１とを含む。
【００３７】
このＯＳＧｉ２０６は、単一のＪＶＭ２０３上に複数のアプリを動作させる。また、ＯＳＧｉ２０６は、アプリのライフサイクルの管理やアプリ間通信機能などを提供する。さらにＯＳＧｉ２０６上には、複数のシステムサービスがプリインストールされている。ＯＳＧｉ拡張部２１１は、ＯＳＧｉ２０６に対し必要に応じて機能を拡張することができる。
【００３８】
また、ＯＳＧｉ２０６は、画像形成装置１３０の起動時に、ＨＤＤ１０４に記憶されたサービス開始順リストに従い、インストール制御部２０８、アプリ管理部２０７、ホストバンドル２０９、及び付随するフラグメントバンドル２１０などのサービスを開始していく。
【００３９】
このうち、ホストバンドル２０９は、アプリ本体であって、フラグメントバンドル２１０が追加される対象となるバンドルである。また、フラグメントバンドル２１０は、拡張アプリであって、単独では動作せず、ホストバンドル２０９のクラスローダ空間に自分自身を追加するバンドルである。
【００４０】
ここで、「クラスローダ」とは、クラスのロードやリソースの検索を担当するオブジェクトであり、全てのクラスはクラスローダによってＪＶＭ２０３にロードされ、アプリから利用可能となる。すなわち、フラグメントバンドル２１０がインストールされた後は、ホストバンドル２０９の一部として利用可能となる。従って、ホストバンドル２０９にフラグメントバンドル２１０がインストールされるか、またはアンインストールされると、ホストバンドル２０９が使用する資源量が一般的には変化することとなる。
【００４１】
拡張アプリとして、例えば、画像データや言語データなどのリソースデータの拡張機能を提供するＪａｖａ（登録商標）のクラスが含まれる。
【００４２】
また、ホストバンドル２０９は、アプリ管理部２０７によって単独またはフラグメントバンドル２１０と共に画像形成装置１３０において各種処理をユーザに提供する。各処理として、例えば、画像の加工や圧縮アプリ、印刷制限などの部門管理を行うアプリなどによる処理が挙げられる。上述したホストバンドル２０９は、拡張対象アプリケーションに対応し、フラグメントバンドル２１０は、ホストバンドル２０９の機能を拡張する拡張アプリケーションに対応する。また、ホストバンドル２０９及びフラグメントバンドル２１０は、画像形成装置１３０の資源を用いて動作する。また、上述したように、画像形成装置１３０は、画像形成装置１３０にインストール済みのホストバンドルの機能を拡張するフラグメントバンドルをインストール可能となっている。
【００４３】
アプリ管理部２０７は、複数のアプリ群を管理し、インストール制御部２０８を利用して、アプリのインストール、及びアンインストールなどを行う。
【００４４】
また、アプリ管理部２０７は、管理下に追加されたホストバンドル２０９、及びフラグメントバンドル２１０のバージョンを含むアプリ情報、ライセンス情報などを保持している。
【００４５】
さらに、アプリ管理部２０７は、画像形成装置１３０内のアプリのアンインストール指示に応答し、インストール制御部２０８を経由して、ホストバンドル２０９またはフラグメントバンドル２１０を管理対象から外す。
【００４６】
図３は、ＰＣ３００から画像形成装置１３０へアプリがインストールされる処理の流れを示す図である。
【００４７】
なお、図３におけるアプリは、ホストバンドル２０９またはフラグメントバンドル２１０を示している。
【００４８】
図３において、ＰＣ３００は、不図示のＷＥＢブラウザに、後述するインストール画面で示すＷＥＢページで構成されたアプリのインストールＵＩ３０１を表示し、このインストールＵＩ３０１からユーザによってインストールしたいアプリが指定されることでアプリをインストールする。
【００４９】
インストールＵＩ３０１で指定されたアプリファイルを受信したアプリ管理部２０７は、それをインストール制御部２０８に渡す。アプリファイルを受信したインストール制御部２０８は、ＯＳＧｉ２０６にインストールを依頼し、ＯＳＧｉ２０６はインストールを行う。インストールされたアプリは、アプリ管理部２０７によって管理される。
【００５０】
図４は、ホストバンドルへフラグメントバンドルを追加するインストールの一例とマニフェストの一例とを示す図である。
【００５１】
図４（Ａ）は、ホストバンドル２０９にフラグメントバンドル２１０がインストールされる一例を示す図である。
【００５２】
なお、ホストバンドルへフラグメントバンドルを追加することをインストールと表現している。
【００５３】
図４（Ａ）に示されるように、ホストバンドルのマニフェスト４０３におけるBundle-ManifestVersionに、２を指定する。また、マニフェスト４０３におけるBundle-SymbolicNameには、フレームワーク内で一意な名前を付ける。
【００５４】
さらに、ホストバンドルのパーミッション４０４はBundlePermission[バンドルシンボリック名, HOST]となっている。
【００５５】
一方、フラグメントバンドルのマニフェスト４０５におけるBundle-ManifestVersionに、２を指定する。
【００５６】
マニフェスト４０５におけるFragment-Hostには、ホストバンドルのマニフェスト４０３に記載の<ホストのバンドルシンボリック名＞を指定する。本値が一致することでホストバンドルとフラグメントバンドルが同一アプリの構成要素であることを示すものとなる。
【００５７】
また、フラグメントバンドルのパーミッション４０６は、BundlePermission[バンドルシンボリック名, FRAGMENT]となっている。
【００５８】
上述した各マニフェストなどに記載された内容で、フラグメントバンドルをインストールすると、ＯＳＧｉ２０６がフラグメントバンドルのマニフェスト情報からホストバンドルを特定し、ホストバンドルのクラスパスにフラグメントバンドル自身のクラスパスを追加する。
【００５９】
ここで「クラスパス」とは、ＪＡＶＡ（登録商標）アプリ実行するときに、ＪＶＭ２０３がどの場所からクラスファイルを読み込めばよいかを、指定するためのものである。
【００６０】
さらに、ホストバンドルのクラスローダによって、フラグメントバンドル内の全てのクラスとリソースがロードされる。
【００６１】
フラグメントバンドルでは、ホストバンドルの表示言語切り替えのために各国言語別のリソースを含めてリソース拡張を行うことや、アプリの標準機能に対して機能拡張的なことを行うことも可能である。
【００６２】
また、ホストバンドルに追加状態にあるフラグメントバンドルを削除するアンインストールでは、ホストバンドルのクラスパスにフラグメントバンドル自身のクラスパスの削除を行い、更に、ホストバンドルのクラスローダによって、再度ホストバンドルに必要なクラスをロードする必要がある。
【００６３】
図４（Ｂ）（Ｃ）（Ｄ）は、ホストバンドル２０９およびフラグメントバンドル２１０のマニフェストに記載する消費資源量の宣言を示す図である。
【００６４】
図４（Ｂ）（Ｃ）（Ｄ）の各マニフェストにおいて、「MaximumMemoryUsage」は最大メモリ使用量、「MaximumThreadUsage」最大スレッド数、「MaximumSocketUsage」は最大ソケット数、「MaximumFiledescriptor」は最大ファイルディスクリプタ数、「MaximumFilespaceUsage」は最大ディスク使用量を示している。そして、メモリ使用量、スレッド数、ソケット数、ファイルディスクリプタ数、及びディスク使用量の各々の項目に対し、画像形成装置１３０としての許容量が各々予め定められている。
【００６５】
図４（Ｂ）は、ホストバンドル２０９のマニフェスト６００示す図である。このマニフェスト６００には、ホストバンドル２０９が単体で動作するときの最大消費資源量が記載されている。
【００６６】
また、図４（Ｃ）は、インストールにより一部の消費資源量が増加する場合のフラグメントバンドル２１０のマニフェスト６０２を示す図である。
【００６７】
マニフェスト６０２の記載内容は、フラグメントバンドル２１０をホストバンドル２０９にインストールして動作させたときに、増加または減少する各資源量を示しているが、今の場合はマイナスの数値はないので増加することとなる。例えば、「MaximumThreadUsage」は２だけ増加することを示している。
【００６８】
なお、フラグメントバンドルをインストールしてもアプリの最大消費資源量に変動が無い場合は０を記載する。
【００６９】
図４（Ｄ）は、インストールにより一部の消費資源量が減少する場合のフラグメントバンドル２１０のマニフェスト６０４を示す図である。
【００７０】
マニフェスト６０４の記載内容は、フラグメントバンドル２１０をホストバンドル２０９にインストールして動作させたときに増加または減少する各資源量を示しているが、マイナスの数値があるので減少することとなる。例えば、「MaximumThreadUsage」は１だけ減少することを示している。
【００７１】
このように、マニフェスト６０４のフラグメントバンドル２１０をインストールした場合には、ホストバンドル２０９単体で動作させた時よりも最大スレッド消費量と最大ディスク使用量が減少する。
【００７２】
なお、フラグメントバンドル２１０のマニフェスト６０２などには、ホストバンドル２０９とフラグメントバンドル２１０を組み合わせた総資源量を記載するという方法も可能である。
【００７３】
しかしその方法ではホストバンドル２０９の機能追加によるホストバンドル２０９自身の最大消費資源量に変更が発生した場合、フラグメントバンドル２１０のマニフェスト６０２などに記載している資源量も変更させる必要がある。
【００７４】
そのため特定のホストバンドル２０９の消費資源量の変更による影響を少なくするため、フラグメントバンドル２１０のマニフェスト６０２及び６０４にはホストバンドルからの差分のみを記載する方が望ましい。
【００７５】
図５は、図４で示したマニフェスト６００，６０２，６０４のそれぞれの組み合わせによるアプリ総消費資源量を示す図である。
【００７６】
図５には、アプリＡの欄７０１には、マニフェスト６００を持つホストバンドル２０９が単体で動作するときの消費資源量が示されている。マニフェスト６００に示される値がそのままアプリＡの総消費資源量となる。
【００７７】
また、アプリＡ、フラグメントＡの欄７０２は、マニフェスト６００を持つホストバンドル２０９にマニフェスト６０２を持つフラグメントバンドル２１０をインストールして動作させたときのアプリの総消費資源量を示している。それぞれの資源値の加算値がアプリとしての総消費資源量となる。
【００７８】
さらに、アプリＡ、フラグメントＢの欄７０３はマニフェスト６００を持つホストバンドル２０９にマニフェスト６０４を持つフラグメントバンドル２１０をインストールして動作させたときのアプリの総消費資源量である。
【００７９】
それぞれの資源値の加算値がアプリとしての総消費資源量となるのはアプリＡ、フラグメントＡの場合と同じであるが、「MaximumThreadUsage」と「MaximumFilespaceUsage」においてはホストバンドル単体で動作させるときよりも、総消費資源量が小さくなることが示されている。
【００８０】
本実施の形態では、これら総消費資源量が小さくなる場合も考慮したインストール、及びアンインストールを実現している。
【００８１】
なお、アプリが宣言する資源量は主として実行時に消費される資源であるため、必ずしもインストール時に全てチェックする必要がない。インストール時にチェックする資源はアプリのファイル自身を含めたディスク使用量であり、残りの資源は動作時にチェックするのが一般的である。
【００８２】
このように、本実施の形態では、フラグメントバンドルがインストールされていないホストバンドルが使用する資源の資源量と、フラグメントバンドルがインストールされたホストバンドルが使用する資源の資源量との差分を用いて合計値を算出するようになっている。
【００８３】
図６は、図２におけるアプリ管理部２０７により表示されるアプリの管理画面５００とインストール画面５２０を示す図である。
【００８４】
図６（Ａ）は、ＰＣ３００のＷＥＢブラウザで表示されるアプリの管理画面５００を示す図である。
【００８５】
アプリケーション名５０１には、管理されているアプリ名が表示される。この例の場合、アプリＡ５０７とアプリＢ５１０の２つが管理されている。
【００８６】
さらに、このアプリＡをホストバンドルとして、フラグメントバンドルＡ５０８、フラグメントバンドルＢ５０９が管理されている。これらは、管理画面５００において、アプリＡ５０７と関連付けて表示される。
【００８７】
インストール日５０２は、各アプリがインストールされた日付である。アプリＩＤ５０３は、各アプリに一意に割り振られたＩＤを示している。
【００８８】
状態５０４は、各アプリの状態を示している。アプリが開始されていれば開始となり、停止されていれば停止となる。
【００８９】
切替ボタン５０５は、アプリの開始停止を切り替えるボタンである。開始状態のアプリの場合は停止ボタンとして機能し、停止状態のアプリの場合は開始ボタンとして機能する。
【００９０】
例えば、開始状態のアプリであるアプリＡ５０７の切替ボタン５０５が押下されると、その状態５０４は停止に変更される。
【００９１】
一方、停止状態のアプリであるアプリＢ５１０の切替ボタン５０５が押下されると、その状態５０４は開始に変更される。
【００９２】
アンインストールボタン５０６は、各アプリをアンインストールするボタンである。フラグメントバンドルのアンインストールはフラグメントバンドルのみが対象となる。
【００９３】
例えば、フラグメントバンドルＡのアンインストールボタン５１１が押下されると、フラグメントバンドルＡだけがアンインストールされる。
【００９４】
図６（Ｂ）は、ＰＣ３００のＷＥＢブラウザで表示されるインストール画面５２０を示す図である。
【００９５】
図６（Ｂ）において、参照ボタン５２３は、ファイルパスを選択する画面を表示するボタンである。その画面でアプリファイルを指定すると、アプリファイルのパス５２１にアプリファイルへのパスが入力される。
【００９６】
アプリは、セキュリティやビジネス上の観点から、インストール処理において、アプリを復号するためのライセンスファイルが必要となる場合がある。
【００９７】
その場合、ユーザは参照ボタン５２４を押下すると、ファイルパスを選択する画面が表示される。その画面でライセンスファイルが指定されると、ライセンスファイルのパス５２２にライセンスファイルへのパスが入力される。
【００９８】
インストールボタン５２５が押下されると、アプリファイルのパス５２１で指定したアプリのインストールが開始される。
【００９９】
次に、インストール時に行われる一般的な処理について説明する。上述したように、一般的には、インストール時にチェックする資源はディスク使用量であり、残りの資源は動作時にチェックする。
【０１００】
図７（Ａ）は、図１におけるＣＰＵ１０１により実行されるインストール時チェック処理の手順を示すフローチャートである。
【０１０１】
図７（Ａ）において、インストール制御部２０８がインストールを開始すると、インストール制御部２０８はインストール済みの各アプリの「MaximumFilespaceUsage」とインストール対象の「MaximumFilespaceUsage」の合計値を算出する（ステップＳ８０１）。
【０１０２】
次いで、ステップＳ８０１で算出された合計値が許容量以内か否か判別する（ステップＳ８０２）。ここでは、ディスク使用量が画像形成装置１３０が許容する許容量以内か否か判別される。
【０１０３】
ステップＳ８０２の判別の結果、合計値が許容量以内の場合には（ステップＳ８０２でＹＥＳ）、ＯＳＧｉ２０６にアプリのインストールを依頼して（ステップＳ８０３）、本処理を終了する。
【０１０４】
一方、合計値が許容量以内ではない場合には（ステップＳ８０２でＮＯ）、インストールすることなく本処理を終了する。
【０１０５】
図７（Ｂ）は、図１におけるＣＰＵ１０１により実行される動作時チェック処理の手順を示すフローチャートである。
【０１０６】
図７（Ｂ）において、動作中の各アプリと開始対象のアプリの各資源量「MaximumMemoryUsage」、「MaximumThreadUsage」、「MaximumSocketUsage」、「MaximumFiledescriptorUsage」の合計値を算出する（ステップＳ９０１）。
【０１０７】
次いで、ステップＳ９０１で算出された各資源量の各々の合計値が、全て許容量以内か否か判別する（ステップＳ９０２）。
【０１０８】
ステップＳ９０２の判別の結果、各々合計値が全て許容量以内の場合には（ステップＳ９０２でＹＥＳ）、ＯＳＧｉ２０６にアプリの開始を依頼して（ステップＳ９０３）、本処理を終了する。
【０１０９】
一方、ステップＳ９０２の判別の結果、各々合計値が全て許容量以内ではない場合には（ステップＳ９０２でＮＯ）、アプリを開始することなく本処理を終了する。
【０１１０】
このように、一般的には、インストール時にチェックを行い、動作時に再びチェックしている。ホストバンドルは、図７に示した処理でインストールされる。
【０１１１】
次に、フラグメントバンドルのインストール処理、及びアンインストール処理について説明する。
【０１１２】
図８は、図１におけるＣＰＵ１０１により実行される、フラグメントバンドルのインストール処理の手順を示すフローチャートである。
【０１１３】
図８において、ユーザにより図６（Ｂ）のインストールボタン５２５が押下されると、インストール対象のフラグメントバンドルのホストバンドルがインストール済みか否か判別する（ステップＳ１００１）。
【０１１４】
ステップＳ１００１の判別の結果、インストール済みではない場合には（ステップＳ１００１でＮＯ）、インストールすることなく本処理を終了する。
【０１１５】
一方、ステップＳ１００１の判別の結果、インストール済みの場合には（ステップＳ１００１でＹＥＳ）、インストール済みアプリとインストール対象のフラグメントバンドルのMaximumFilespaceUsageの合計値を算出する（ステップＳ１００２）。
【０１１６】
次いで、ステップＳ１００２で算出された合計値が許容量以内か否か判別する（ステップＳ１００３）。
【０１１７】
ステップＳ１００３の判別の結果、合計値が許容量以内ではない場合には（ステップＳ１００３でＮＯ）、インストールすることなく本処理を終了する。
【０１１８】
一方、ステップＳ１００３の判別の結果、合計値が許容量以内の場合には（ステップＳ１００３でＹＥＳ）、ホストバンドルが動作中か否か判別する（ステップＳ１００４）。
【０１１９】
ステップＳ１００４の判別の結果、ホストバンドルが動作中でない場合には（ステップＳ１００４でＮＯ）、ＯＳＧｉ２０６にアプリのインストールを依頼して（ステップＳ１００５）、本処理を終了する。
【０１２０】
ホストバンドルが停止中の場合は、ディスク使用量の資源チェックさえ行えばインストールが許容でき、図７（Ｂ）で示した動作時チェック処理で改めて残りの資源量チェックを行うこととなる。
【０１２１】
一方、ステップＳ１００４の判別の結果、ホストバンドルが動作中の場合には（ステップＳ１００４でＹＥＳ）、動作中の各アプリとンストール対象のフラグメントバンドルの各資源量「MaximumMemoryUsage」、「MaximumThreadUsage」、「MaximumSocketUsage」、「MaximumFiledescriptorUsage」の合計値を算出する（ステップＳ１００６）。このステップＳ１００６と上記ステップＳ１００２は、フラグメントバンドルをインストールした場合に、フラグメントバンドルによって機能が拡張されたホストバンドルを含むインストール済みのアプリケーションが使用する資源の資源量の合計値を算出する算出手段に対応する。
【０１２２】
次いで、ステップＳ１００６で算出された各資源量の各々の合計値が、全て許容量以内か否か判別する（ステップＳ１００７）。このステップＳ１００７と上記ステップＳ１００３は、算出された合計値が画像形成装置１３０が許容する許容量以内か否か判別する判別手段に対応する。
【０１２３】
ステップＳ１００７の判別の結果、各々合計値が全て許容量以内ではない場合には（ステップＳ１００７でＮＯ）、インストールすることなく本処理を終了する。
【０１２４】
一方、ステップＳ１００７の判別の結果、各々合計値が全て許容量以内の場合には（ステップＳ１００７でＹＥＳ）、ホストバンドルを停止する（ステップＳ１００８）。
【０１２５】
そして、ＯＳＧｉ２０６に対象アプリのインストールを依頼する（ステップＳ１００９）。その後、フラグメントバンドルがインストールされたホストバンドルを開始して（ステップＳ１０１０）、本処理を終了する。このステップＳ１００９と上記ステップＳ１００５は、合計値が許容量以内と判別された場合に、フラグメントバンドルをインストールするインストール手段に対応する。
【０１２６】
図９は、図１におけるＣＰＵ１０１により実行されるアンインストール処理の手順を示すフローチャートである。
【０１２７】
図９において、ユーザにより図６（Ａ）のアンインストールボタン５１１が押下されると、ホストバンドルが動作中か否か判別する（ステップＳ１１０１）。
【０１２８】
ステップＳ１１０１の判別の結果、ホストバンドルが動作中でない場合には（ステップＳ１１０１でＮＯ）、アンインストール対象のフラグメントバンドルの資源使用量を差し引いた、インストール済みの各アプリのMaximumFilespaceUsageの合計値を算出する（ステップＳ１１０２）。
【０１２９】
次いで、ステップＳ１１０２で算出された合計値が許容量以内か否か判別する（ステップＳ１１０３）。ステップＳ１１０３の判別の結果、合計値が許容量以内ではない場合には（ステップＳ１１０３でＮＯ）、アンインストールすることなく本処理を終了する。
【０１３０】
一方、ステップＳ１１０３の判別の結果、合計値が許容量以内の場合には（ステップＳ１１０３でＹＥＳ）、フラグメントバンドルをアンインストールして（ステップＳ１１０４）、本処理を終了する。
【０１３１】
ステップＳ１１０１に戻り、ステップＳ１１０１の判別の結果、ホストバンドルが動作中の場合には（ステップＳ１１０１でＹＥＳ）、ホストバンドルが動作中のフラグメントバンドルの資源消費量を差し引いた、動作中の各アプリの各資源量「MaximumMemoryUsage」、「MaximumThreadUsage」、「MaximumSocketUsage」、「MaximumFiledescriptorUsage」の合計値を算出する（ステップＳ１１０５）。
【０１３２】
このステップＳ１１０５と上記ステップＳ１１０２は、ホストバンドルにインストールされたフラグメントバンドルをアンインストールした場合に、フラグメントバンドルがアンインストールされたホストバンドルを含むインストール済みのアプリケーションが使用する資源の資源量の合計値を算出する他の算出手段に対応する。
【０１３３】
また、ステップＳ１１０５と上記ステップＳ１１０２に示されるように、フラグメントバンドルがアンインストールされたホストバンドルを含むインストール済みのアプリケーションが使用する資源の資源量から、フラグメントバンドルが使用する資源の資源量を差し引くことにより合計値を算出するようになっている。
【０１３４】
次いで、ステップＳ１１０５で算出された各資源量の各々の合計値が、全て許容量以内か否か判別する（ステップＳ１１０６）。このステップＳ１１０６と上記ステップＳ１１０３は、算出された合計値が画像形成装置１３０が許容する許容量以内か否か判別する他の判別手段に対応する。
【０１３５】
ステップＳ１１０６の判別の結果、各々の合計値が全て許容量以内ではない場合には（ステップＳ１１０６でＮＯ）、アンインストールすることなく本処理を終了する。
【０１３６】
一方、ステップＳ１１０６の判別の結果、各々の合計値が全て許容量以内の場合には（ステップＳ１１０６でＹＥＳ）、アンインストール対象のフラグメントバンドルの資源使用量を差し引いた、インストール済みの各アプリのMaximumFilespaceUsageの合計値を算出する（ステップＳ１１０７）。
【０１３７】
次いで、ステップＳ１１０７で算出された合計値が許容量以内か否か判別する（ステップＳ１１０８）。ステップＳ１１０２の判別の結果、合計値が許容量以内ではない場合には（ステップＳ１１０８でＮＯ）、アンインストールすることなく本処理を終了する。
【０１３８】
一方、ステップＳ１１０８の判別の結果、合計値が許容量以内の場合には（ステップＳ１１０８でＹＥＳ）、ホストバンドルを停止する（ステップＳ１１０９）。
【０１３９】
そして、フラグメントバンドルをアンインストールして（ステップＳ１１１０）、ホストバンドルを開始して（ステップＳ１１１１）、本処理を終了する。このステップＳ１１１０と上記ステップＳ１１０４は、合計値が許容量以内と判別された場合に、フラグメントバンドルをアンインストールするアンインストール手段に対応する。
【０１４０】
図１０は、図２におけるアプリ管理部２０７により表示される削除候補画面１２００を示す図である。
【０１４１】
この削除候補画面１２００は、消費資源量が許容量を超過してしまい、フラグメントバンドルをインストールできない場合に、資源消費量の多いフラグメントバンドルをアンインストール候補としてユーザに提示するための画面である。
【０１４２】
こうしてユーザにアンインストールを促し、資源消費量の多いフラグメントバンドルがアンインストールされると、インストール対象のフラグメントバンドルが消費する資源量を確保できるようになる可能性が高まる。
【０１４３】
図１０において、アプリケーション名１２０１には、インストール済みのホストバンドルが表示される。なお、この削除候補画面１２００では、フラグメントバンドルを持たないアプリは表示されない。
【０１４４】
図１０の場合は、アプリＡ１２０６とアプリＢ１２０７がインストール済みである。さらに、アプリＡ１２０６をホストバンドルとしてフラグメントバンドルＡ１２０８がインストールされていることも示されている。
【０１４５】
また、アプリＢ１２０７をホストバンドルとしてフラグメントバンドルＢ１２０９とフラグメントバンドルＣ１２１０とがインストールされていることも示されている。
【０１４６】
なお、削除候補画面１２００には、メモリ使用量の昇順でフラグメントバンドルが表示される。
【０１４７】
インストール日１２０２はフラグメントバンドルがインストールされた日付である。アプリＩＤは各フラグメントバンドルに一意に割り振られたＩＤを示している。
【０１４８】
状態１２０４は、各アプリのホストバンドルの状態を示している。ホストバンドルが開始されていれば開始となり、停止されていれば停止となる。
【０１４９】
消費資源量１２０５はフラグメントバンドルのアンインストールにより増減するアプリの最大消費使用量である。
【０１５０】
消費資源量１２０５において、ＭＥＭはメモリ消費量、ＴＨはスレッド消費量、ＳＯＣはソケット消費量、ＦＤはファイルディスクリプタ使用量、及びＨＤＤはディスク使用量をそれぞれ示している。
【０１５１】
ユーザは、アンインストールするフラグメントバンドルに対応するチェックボックス１２１１にチェックすることで、そのフラグメントバンドルがアンインストール対象となる。
【０１５２】
そして、ユーザがアンインストールボタン１２１２を押下すると、チェックボックス１２１１でチェックされたフラグメントバンドルのアンインストールが行われる。一方、ユーザがキャンセルボタン１２１３を押下すると削除候補画面１２００の表示が終了する。
【０１５３】
図１１は、削除候補画面１２００を表示する場合のフラグメントバンドルのインストール処理の手順を示すフローチャートである。
【０１５４】
図１１において、図８のインストール処理のステップＳ１００３またはステップＳ１００７でＮＯと判別された場合に、削除候補画面１２００を表示する（ステップＳ１３０４）。
【０１５５】
次いで、削除候補画面１２００において、ユーザによりチェックボックス１２１１がチェックされ、アンインストールボタン１２１２が押下されたか否か判別する（ステップＳ１３０５）。
【０１５６】
ステップＳ１３０５の判別の結果、ユーザによりキャンセルボタン１２１３が押下された場合には（ステップＳ１３０５でＮＯ）、本処理を終了する。
【０１５７】
一方、ステップＳ１３０５の判別の結果、ユーザによりチェックボックス１２１１がチェックされ、アンインストールボタン１２１２が押下された場合には（ステップＳ１３０５でＹＥＳ）、図９のアンインストール処理を行い（ステップＳステップＳ１３０６）、再び図８のインストール処理のステップＳ１００１に戻る。
【０１５８】
図１１の処理によれば、許容量を超過して、フラグメントバンドルがインストールできない場合には、既にインストール済みのフラグメントバンドルをアンインストールするための削除候補画面を表示することでインストールが可能となる。
【０１５９】
このように、本実施の形態では、合計値が許容量以内ではないと判別された場合に、インストール済みのフラグメントバンドルをアンインストールするための削除候補画面１２００でユーザによりチェックされることで指定されたインストール済みのフラグメントバンドルをアンインストールするようになっている。
【０１６０】
次に、ホストバンドルとフラグメントバンドルとを同時にインストールする処理について説明する。
【０１６１】
上述したように、ホストバンドル単体で動作する場合の資源消費量よりも、ホストバンドルにフラグメントバンドルをインストールした場合の資源消費量の方が少なくなることがある。
【０１６２】
この場合、ホストバンドル単体が許容量の超過によりインストールできない場合でも、ホストバンドルとフラグメントバンドルとを同時にインストールできる。
【０１６３】
そこで、本実施の形態ではホストバンドルとフラグメントバンドルを同時にインストール可能とすることで、その資源量の合算値をアプリ消費資源量としてインストール時の資源量チェックを行えるようにする。
【０１６４】
図１２は、図２におけるインストール制御部２０８により表示される同時インストール画面１４００を示す図である。
【０１６５】
図１２において、参照ボタン１４０５は、ホストバンドルのファイルパスを選択する画面を表示するボタンである。その画面でホストバンドルファイルを指定すると、ホストバンドルのパス１４０１にホストバンドルファイルへのパスが入力される。
【０１６６】
参照ボタン１４０６は、ファイルパスを選択する画面を表示するボタンである。その画面でホストバンドルのライセンスファイルを指定すると、ホストバンドルのライセンスファイルのパス１４０２にライセンスファイルへのパスが入力される。
【０１６７】
参照ボタン１４０７は、ファイルパスを選択する画面を表示するボタンである。その画面でフラグメントバンドルファイルを指定すると、フラグメントバンドルのパス１４０３にフラグメントバンドルファイルへのパスが入力される。
【０１６８】
参照ボタン１４０８は、ファイルパスを選択する画面を表示するボタンである。その画面で、フラグメントバンドルのライセンスファイルを指定すると、フラグメントバンドルのライセンスファイルのパス１４０４にライセンスファイルへのパスが入力される。
【０１６９】
インストールボタン１４０９は、アプリファイルのパス５２１で指定したアプリのインストールを開始するボタンである。
【０１７０】
このとき、アプリとしての資源消費量はホストバンドルのマニフェスト４０３で宣言された資源量とフラグメントバンドルのマニフェスト４０５で宣言された資源量の合算値となる。
【０１７１】
この合算値を用いて、図７（Ａ）のインストール時チェック処理により、同時にインストールされることとなる。
【０１７２】
なお、図１２の同時インストール画面１４００ではフラグメントバンドルが１つとなっているが、複数指定できるＵＩにより同時に複数のフラグメントバンドルをインストールしてもよい。
【０１７３】
このように、本実施の形態では、画像形成装置１３０にインストールされていないホストバンドルとフラグメントバンドルとをインストールする場合に、ホストバンドルとフラグメントバンドルとが使用する資源の資源量を、ホストバンドルにフラグメントバンドルがインストールされた場合にホストバンドルが使用する資源の資源量としてインストールするようになっている。
【０１７４】
以上説明したように、本実施の形態によれば、まずフラグメントバンドルによって機能が拡張されたホストバンドルを含むインストール済みのアプリケーションが使用する資源の資源量の合計値を算出する（ステップＳ１００３，１００６）。
【０１７５】
そして、算出された合計値が情報処理装置が許容する許容量以内の場合に（ステップＳ１００３またはステップＳ１００７でＹＥＳ）、拡張アプリケーションをインストールする（ステップＳ１００５，１００９）。
【０１７６】
上記処理により、機能を拡張するためのアプリケーションをインストールする場合に変化する資源量を考慮したインストール制御が可能となる。
【０１７７】
また、本実施の形態によれば、まずホストバンドルにインストールされたフラグメントバンドルをアンインストールした場合に、フラグメントバンドルがアンインストールされたホストバンドルを含むインストール済みのアプリケーションが使用する資源の資源量の合計値を算出する。
【０１７８】
そして、算出された合計値が画像形成装置１３０が許容する許容量以内の場合に（ステップＳ１１０３でＹＥＳまたはステップＳ１１０６でＹＥＳ）、フラグメントバンドルをアンインストールする（ステップＳ１１１０、ステップＳ１１０４）。
【０１７９】
上記処理により、機能を拡張するためのアプリケーションをアンインストールする場合に変化する資源量を考慮したインストール制御が可能となる。
【０１８０】
（他の実施の形態）
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する処理である。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【符号の説明】
【０１８１】
１００  コントローラ
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  ＨＤＤ
２０３  ＪＶＭ
２０６  ＯＳＧｉ
２０７  アプリ管理部
２０８  インストール制御部
２０９  ホストバンドル
２１０  フラグメントバンドル
２１１  ＯＳＧｉ拡張部
【図１】
2015197845.tif 000003
【図２】
2015197845.tif 000004
【図３】
2015197845.tif 000005
【図４】
2015197845.tif 000006
【図５】
2015197845.tif 000007
【図６】
2015197845.tif 000008
【図７】
2015197845.tif 000009
【図８】
2015197845.tif 000010
【図９】
2015197845.tif 000011
【図１０】
2015197845.tif 000012
【図１１】
2015197845.tif 000013
【図１２】
2015197845.tif 000014