(57)【要約】【課題】停止させることができないアプリに対しても、拡張機能を追加する。【解決手段】起動しているアプリケーションが停止可能であるか否かを判定する判定手段と、前記判定手段により停止不可能と判定された場合、前記アプリケーションに追加する前記アプリケーションの機能を拡張させる拡張機能データの識別情報と、前記拡張機能データの保存場所情報とが対応付けて記載されたインストール指示ファイルを作成する作成手段と、操作部を介して受け付けたユーザからの再起動指示に従い自装置を再起動させ、前記自装置の再起動後に前記作成手段により作成されたインストール指示ファイルに基づいて取得した拡張機能データを前記アプリケーションに追加する追加手段と、を有することによって課題を解決する。【選択図】図７
2014142824.tif 000002
【特許請求の範囲】
【請求項１】
起動しているアプリケーションが停止可能であるか否かを判定する判定手段と、
前記判定手段により停止不可能と判定された場合、前記アプリケーションに追加する前記アプリケーションの機能を拡張させる拡張機能データの識別情報と、前記拡張機能データの保存場所情報とが対応付けて記載されたインストール指示ファイルを作成する作成手段と、
操作部を介して受け付けたユーザからの再起動指示に従い自装置を再起動させ、前記自装置の再起動後に前記作成手段により作成されたインストール指示ファイルに基づいて取得した拡張機能データを前記アプリケーションに追加する追加手段と、
を有する画像形成装置。
【請求項２】
前記判定手段は、前記アプリケーションがログイン情報を管理するログインアプリケーションであり、かつ、前記ログインアプリケーションが１つしかインストールされていない場合、前記アプリケーションは停止不可能と判定する請求項１に記載の画像形成装置。
【請求項３】
前記作成手段により前記インストール指示ファイルが作成されると、前記拡張機能データの追加において再起動が必要である旨が表示された再起動指示画面をユーザに提供する提供手段を更に有する請求項１又は２に記載の画像形成装置。
【請求項４】
前記追加手段は、前記インストール指示ファイルに基づいて取得した複数の拡張機能データを、前記自装置の再起動後に一度に前記アプリケーションに追加する請求項１乃至３の何れか１項に記載の画像形成装置。
【請求項５】
前記追加手段により前記拡張機能データが追加された後に、記憶領域に前記インストール指示ファイルが保存されている場合、前記記憶領域から前記インストール指示ファイルを削除するファイル削除手段を更に有する請求項１乃至４の何れか１項に記載の画像形成装置。
【請求項６】
前記アプリケーションは、ホストバンドルであり、
前記拡張機能データは、フラグメントバンドルである請求項１乃至５の何れか１項に記載の画像形成装置。
【請求項７】
起動しているアプリケーションが停止可能であるか否かを判定する判定手段と、
前記判定手段により停止不可能と判定された場合、前記アプリケーションから削除する前記アプリケーションの機能を拡張させる拡張機能データの識別情報が記載されたアンインストール指示ファイルを作成する作成手段と、
操作部を介して受け付けたユーザからの再起動指示に従い自装置を再起動させ、前記自装置の再起動後に前記作成手段により作成されたアンインストール指示ファイルに基づいて前記アプリケーションから前記拡張機能データを削除する削除手段と、
を有する画像形成装置。
【請求項８】
前記判定手段は、前記アプリケーションがログイン情報を管理するログインアプリケーションであり、かつ、前記ログインアプリケーションが１つしかインストールされていない場合、前記アプリケーションは停止不可能と判定する請求項７に記載の画像形成装置。
【請求項９】
前記作成手段により前記アンインストール指示ファイルが作成されると、前記拡張機能データの削除において再起動が必要である旨が表示された再起動指示画面をユーザに提供する提供手段を更に有する請求項７又は８に記載の画像形成装置。
【請求項１０】
前記削除手段は、前記アンインストール指示ファイルに基づいて前記アプリケーションから削除する複数の拡張機能データを、前記自装置の再起動後に一度に削除する請求項７乃至９の何れか１項に記載の画像形成装置。
【請求項１１】
前記削除手段により前記拡張機能データが削除された後に、記憶領域に前記アンインストール指示ファイルが保存されている場合、前記記憶領域から前記アンインストール指示ファイルを削除するファイル削除手段を更に有する請求項７乃至１０の何れか１項に記載の画像形成装置。
【請求項１２】
前記アプリケーションは、ホストバンドルであり、
前記拡張機能データは、フラグメントバンドルである請求項７乃至１１の何れか１項に記載の画像形成装置。
【請求項１３】
画像形成装置が実行する情報処理方法であって、
起動しているアプリケーションが停止可能であるか否かを判定する判定ステップと、
前記判定ステップにより停止不可能と判定された場合、前記アプリケーションに追加する前記アプリケーションの機能を拡張させる拡張機能データの識別情報と、前記拡張機能データの保存場所情報とが対応付けて記載されたインストール指示ファイルを作成する作成ステップと、
操作部を介して受け付けたユーザからの再起動指示に従い自装置を再起動させ、前記自装置の再起動後に前記作成ステップにより作成されたインストール指示ファイルに基づいて取得した拡張機能データを前記アプリケーションに追加する追加ステップと、
を含む情報処理方法。
【請求項１４】
画像形成装置が実行する情報処理方法であって、
起動しているアプリケーションが停止可能であるか否かを判定する判定ステップと、
前記判定ステップにより停止不可能と判定された場合、前記アプリケーションから削除する前記アプリケーションの機能を拡張させる拡張機能データの識別情報が記載されたアンインストール指示ファイルを作成する作成ステップと、
操作部を介して受け付けたユーザからの再起動指示に従い自装置を再起動させ、前記自装置の再起動後に前記作成ステップにより作成されたアンインストール指示ファイルに基づいて前記アプリケーションから前記拡張機能データを削除する削除ステップと、
を含む情報処理方法。
【請求項１５】
コンピュータに、
起動しているアプリケーションが停止可能であるか否かを判定する判定ステップと、
前記判定ステップにより停止不可能と判定された場合、前記アプリケーションに追加する前記アプリケーションの機能を拡張させる拡張機能データの識別情報と、前記拡張機能データの保存場所情報とが対応付けて記載されたインストール指示ファイルを作成する作成ステップと、
操作部を介して受け付けたユーザからの再起動指示に従い自装置を再起動させ、前記自装置の再起動後に前記作成ステップにより作成されたインストール指示ファイルに基づいて取得した拡張機能データを前記アプリケーションに追加する追加ステップと、
を実行させるためのプログラム。
【請求項１６】
コンピュータに、
起動しているアプリケーションが停止可能であるか否かを判定する判定ステップと、
前記判定ステップにより停止不可能と判定された場合、前記アプリケーションから削除する前記アプリケーションの機能を拡張させる拡張機能データの識別情報が記載されたアンインストール指示ファイルを作成する作成ステップと、
操作部を介して受け付けたユーザからの再起動指示に従い自装置を再起動させ、前記自装置の再起動後に前記作成ステップにより作成されたアンインストール指示ファイルに基づいて前記アプリケーションから前記拡張機能データを削除する削除ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、画像形成装置において、Ｊａｖａ（登録商標）環境に代表されるようなアプリケーション（以下、アプリという）動作環境が提供されている。そして、Ｊａｖａが有するプログラムの可搬性を利用して、拡張可能なアプリを提供する技術が提案されている。
ユーザは、Ｊａｖａ環境等で動作するアプリを作成して画像形成装置にインストールすることで、所望する機能を実現させることができ、結果として画像形成装置の機能やユーザビリティを向上させることができる。
アプリプラットフォームとしては、組み込み機器向けのＪａｖａアプリプラットフォームであるＯＳＧｉ（登録商標）  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ（以下、ＯＳＧｉという）がある（非特許文献１）。なお、ＯＳＧｉとは、Ｏｐｅｎ  Ｓｅｒｖｉｃｅｓ  Ｇａｔｅｗａｙ  Ｉｎｉｔｉａｔｉｖｅの略称である。ＯＳＧｉでは、ソフトウェアモジュールの管理単位としてバンドルを定義している。より具体的には、前記バンドルは、インストール、開始、停止、更新及びアンインストールから成るライフサイクルを管理するための仕様を定義している。このようなアプリプラットフォームは、コピー、スキャン又はプリント等の組み込み機能を提供することができる。
【０００３】
アプリ本体を、ＯＳＧｉの仕様で定義されているホストバンドルとする。また、アプリの修正部分又は拡張部分（以下、拡張アプリという）を、ＯＳＧｉの仕様で定義されているフラグメントバンドルとする。ここで、フラグメントバンドルとは、単独では動作せず、ホストバンドルのクラスローダ空間に追加（アタッチ）されることで動作するバンドルである。ユーザは、画像形成装置のアプリの修正又は拡張を行う際にフラグメントバンドルを用いれば、インストールするファイルのサイズを小さくすることができる。結果として、ユーザは、画像形成装置のアプリの修正又は拡張を行う際に、画像形成装置の処理負荷を低減した効率的なソフトウェアモジュールの配布を実現することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“ＯＳＧｉ  Ｓｅｒｖｉｃｅ  Ｐｌａｔｆｏｒｍ  Ｒｅｌｅａｓｅ４  Ｖｅｒｓｉｏｎ４．０”、［ｏｎｌｉｎｅ］、［平成２５年１月１１日検索］、インターネット＜ＵＲＬ：ｈｔｔｐ：／／ｗｗｗ．ｏｓｇｉ．ｏｒｇ／Ｄｏｗｎｌｏａｄ／Ｒｅｌｅａｓｅ４Ｖ４０＞
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、画像形成装置は、ホストバンドルにフラグメントバンドルを追加するために、ホストバンドルのクラスローダのパスへの追加処理を行い、そのホストバンドルのクラスローダがホストバンドルに必要なクラスをロードする必要がある。そのため、画像形成装置は、ホストバンドルを停止させた状態でフラグメントバンドルの追加を行う必要がある。同様に、画像形成装置は、フラグメントバンドルを削除する場合にも、ホストバンドルを停止させた状態で行う必要がある。
一方で、アプリの性質上、停止できないアプリがある。例えば、ユーザのログイン管理を目的とするログインアプリと呼ばれるアプリは、ログイン中に任意のアプリから任意のタイミングでログイン情報の問い合わせ受け得る。そのため、画像形成装置は、ログインアプリを停止させるために、他のログインアプリへ切り替える必要がある。この場合、画像形成装置に複数のログインアプリがインストールされていることが前提となる。そのため、画像形成装置は、複数のログインアプリがインストールされていない場合、ログインアプリを停止させることができない。
したがって、画像形成装置は、停止させることができないアプリに対して拡張機能を追加することができないという課題がある（課題１）。
同様に、画像形成装置は、停止させることができないアプリに対して拡張機能を削除することができないという課題がある（課題２）。
【課題を解決するための手段】
【０００６】
そこで、本発明の画像形成装置は、起動しているアプリケーションが停止可能であるか否かを判定する判定手段と、前記判定手段により停止不可能と判定された場合、前記アプリケーションに追加する前記アプリケーションの機能を拡張させる拡張機能データの識別情報と、前記拡張機能データの保存場所情報とが対応付けて記載されたインストール指示ファイルを作成する作成手段と、操作部を介して受け付けたユーザからの再起動指示に従い自装置を再起動させ、前記自装置の再起動後に前記作成手段により作成されたインストール指示ファイルに基づいて取得した拡張機能データを前記アプリケーションに追加する追加手段と、を有する。
【０００７】
また、本発明の画像形成装置は、起動しているアプリケーションが停止可能であるか否かを判定する判定手段と、前記判定手段により停止不可能と判定された場合、前記アプリケーションから削除する前記アプリケーションの機能を拡張させる拡張機能データの識別情報が記載されたアンインストール指示ファイルを作成する作成手段と、操作部を介して受け付けたユーザからの再起動指示に従い自装置を再起動させ、前記自装置の再起動後に前記作成手段により作成されたアンインストール指示ファイルに基づいて前記アプリケーションから前記拡張機能データを削除する削除手段と、を有する。
【発明の効果】
【０００８】
本発明によれば、画像形成装置は、停止させることができないアプリに対しても、拡張機能を追加することができる。また、本発明によれば、画像形成装置は、停止させることができないアプリに対しても、拡張機能を削除することができる。
【図面の簡単な説明】
【０００９】
【図１】ログインアプリの構成の一例を示す図である。
【図２】画像形成装置のハードウェア構成の一例を示す図である。
【図３】画像形成装置のソフトウェアの階層の一例を示す図である。
【図４】画像形成装置へアプリをインストールする際の流れの一例を示す図である。
【図５】フラグメントバンドルの概念の一例を示す図である。
【図６Ａ】アプリの管理画面の一例を示す図である。
【図６Ｂ】アプリのインストール画面の一例を示す図である。
【図７】インストール処理の一例を示すフローチャートである。
【図８】ｉｎｓｔａｌｌ．ｏｎファイルの一例を示す図である。
【図９】実施形態１におけるＯＳＧｉの処理の一例を示すフローチャートである。
【図１０】インストール制御部の処理の一例を示すフローチャートである。
【図１１】アンインストール処理の一例を示すフローチャートである。
【図１２】ｕｎｉｎｓｔａｌｌ．ｏｎファイルの一例を示す図である。
【図１３】実施形態２におけるＯＳＧｉの処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について図面に基づき説明する。
【００１１】
以下、本発明の実施形態を説明するに先立って、以降の説明で用いる用語について説明する。
ホストバンドルとは、フラグメントバンドルの追加対象となるバンドルである。
フラグメントバンドルとは、単独では動作せず、ホストバンドルのクラスローダ空間に追加されることで動作するバンドルである。なお、フラグメントバンドルは、拡張機能データの一例である。
サービス起動順リストとは、画像形成装置の起動時にＯＳＧｉがサービスを順次起動させる際の順番を定義したリストである。ここで、サービスとは、画像形成装置がバンドルを実行することでユーザに提供される機能のことを意味する。
画像形成装置がホストバンドルへフラグメントバンドルを追加することを、以下「フラグメントバンドルのインストール」という。
画像形成装置がホストバンドルからフラグメントバンドルを削除することを、以下「フラグメントバンドルのアンインストール」という。
【００１２】
＜実施形態１＞
本実施形態では、画像形成装置がログインアプリにフラグメントバンドルをインストールする場合の実施形形態について説明する。なお、本実施形態は、課題１を解決するための実施形態である。
まず初めに、ログインアプリにフラグメントバンドルが必要となる理由について説明する。
図１は、ログインアプリの構成の一例を示す図である。
ログインアプリ６０１は、ログインサービスＡ６０２、ログインサービスＢ６０３及びログインサービスＣ６０４の複数のログインサービスを提供する。ログインサービスには、後述する図２に示される操作部１１８を用いてログイン認証するサービスや、ＬＡＮ１１６を介し、ＰＣのＷｅｂブラウザを用いてログイン認証するサービス等がある。
従来、ログインアプリ開発者は、図１に示されるような複数のログインサービス全てを作成する必要があったため、負担が大きかった。そのため、ログインアプリ開発者が必要とする部分だけを作成すればよい仕組みとして、フラグメントバンドルが活用されるようになった。
【００１３】
図２は、印刷機能、スキャン機能及びネットワーク通信機能等を有する画像形成装置１３０のハードウェア構成の一例を示す図である。
コントローラ１００は、画像形成装置１３０を制御する。
ＣＰＵ１０１は、コントローラ内部で行われる各種処理を統括的に制御する。また、ＣＰＵ１０１は、ＲＯＭ１０２やＨＤＤ１０４等に格納されているプログラムを実行することにより後述の画像形成装置１３０の機能（ソフトウェア構成）及びフローチャートに係る処理を実現する。なお、画像形成装置１３０が実行する処理は、情報処理の一例である。
【００１４】
ＲＯＭ１０２は、読み出し専用の不揮発記憶領域であり、画像形成装置１３０のブートプログラム等を格納する。
ＲＡＭ１０３は、ＣＰＵ１０１がプログラムを実行するためのシステムワークメモリであり、各種データを一時記憶するためのメモリである。また、ＲＡＭ１０３は、記憶した内容を電源ｏｆｆ後も保持可能なＦＲＡＭ（登録商標）及びＳＲＡＭ、電源ｏｆｆ後に記憶内容が消去されるＤＲＡＭ等により構成される。
ＨＤＤ１０４は、不揮発記憶領域であり、システムアプリ等を格納する。また、ＨＤＤ１０４は、図３で後述するインストールされたアプリを含むファームウェア等を格納する。
【００１５】
操作部Ｉ／Ｆ１０５は、システムバス１１９と、操作部１１８とを接続するインタフェースである。より具体的には、操作部Ｉ／Ｆ１０５は、システムバス１１９からデータを受け取り操作部１１８に表示する。また、操作部Ｉ／Ｆ１０５は、操作部１１８からの入力情報をシステムバス１１９へ出力する。
操作部１１８は、画像形成装置１３０に対するユーザの指示を受け付けたり、画面表示によりユーザへ情報を提示したりする。
ネットワークＩ／Ｆ１０６は、ＬＡＮ１１６、ＷＡＮ１１７及びシステムバス１１９に接続し、外部と情報の入出力を行う。
【００１６】
スキャナＩ／Ｆ１０８は、スキャナ部１１３から受け取った画像データの補正、加工及び編集を行う。
画像形成部１０９は、画像データの方向変換、画像圧縮及び伸張等を行う。
プリンタＩ／Ｆ１１０は、画像形成部１０９から送られた画像データを受け取り、画像形成後にプリンタ部１１４にて印刷する。
なお、前記ＰＣは、Ｗｅｂブラウザが動作するものであればよい。前記ＰＣのハードウェア構成及びソフトウェア構成については、説明を省略する。
【００１７】
図３は、画像形成装置１３０のソフトウェアモジュール階層の一例を示す図である。
図３に示される各ソフトウェアは、使用する各種情報をＲＡＭ１０３又はＨＤＤ１０４等に格納して各ソフトウェア間で相互にやり取りを行うと共に、ネットワークＩ／Ｆ１０６を介して外部機器と通信を行う。
以下、図３に示される各ソフトウェアについて説明をする。
ソフトウェアプラットフォーム２０２は、オペレーティングシステム（ＯＳ）プラットフォーム２０１上に構成されている。また、ソフトウェアプラットフォーム２０２は、Ｊａｖａ  ＶＭ２０３のランタイム環境として構成されており、インタプリタとしてのＪａｖａ  ＶＭ２０３、ライブラリ２０５及びフレームワーク群２０４を有している。
フレームワーク群２０４は、単一のＪａｖａ  ＶＭ２０３上に複数のアプリを動作させるＯＳＧｉ２０６を有している。
ライブラリ２０５は、標準のＡＰＩライブラリを有している。
【００１８】
ＯＳＧｉ拡張部２１１は、ＯＳＧｉ２０６に対し、必要に応じて機能を拡張させることができる。
ＯＳＧｉ２０６は、アプリのライフサイクルの管理やアプリ間通信機能等を提供する。また、ＯＳＧｉ２０６上には、複数のシステムサービスがプリインストールされている。なお、システムサービスには、複数のアプリ群の管理、新たなアプリの追加、更新及び削除等の処理を管理するアプリ管理部２０７等がある。また、ＯＳＧｉ２０６は、画像形成装置１３０を起動する際、ＨＤＤ１０４に保存されたサービス起動順リストに従い、後述するログインアプリ２０９、インストール制御部２０８及びアプリ管理部２０７等のサービスを起動する。
アプリ管理部２０７は、インストール制御部２０８を利用して、アプリの追加、更新及び削除等の処理を行う。
【００１９】
ログインアプリ２０９は、ユーザのログインに関するログイン情報を管理する。なお、ログインアプリ２０９は、ログイン中に任意のアプリから任意のタイミングでログイン情報の問い合わせを受け得るため、ログインアプリ２０９が複数インストールされていない限り停止させることができないアプリである。ここで、ログイン情報とは、画像形成装置１３０にログインしているユーザのログイン名やメールアドレス等の情報である。ログイン情報を利用するアプリの機能の例としては、スキャンした画像データの送信宛先のデフォルト値として、ログイン情報から取得したログイン中のユーザのメールアドレスを利用する機能等が挙げられる。
したがって、画像形成装置１３０が起動している間は、少なくとも１つ以上のログインアプリ２０９が必ず動作していることになる。また、３ｒｄベンダー等は、独自の認証サービスを提供するログインアプリを作成することができる。この場合、ユーザは、図６Ａ、Ｂを用いて後述する方法によりログインアプリをインストールした後、アプリを切り替えることで前記作成したログインアプリを利用することができるようになる。
【００２０】
一般アプリ２１０は、画像形成装置１３０における各種機能をユーザに提供する。例えば一般アプリ２１０は、画像の加工や圧縮を行う機能や印刷制限等の部門管理を行う機能等を提供する。また、各種機能を実現する一般アプリ２１０は、アプリ管理部２０７の管理下で動作する。なお、アプリ管理部２０７は、管理下に追加されたアプリのバージョン情報及びライセンス情報等を保持している。更に、アプリ管理部２０７は、画像形成装置１３０内のアプリのアンインストール指示に応答し、一般アプリ２１０を管理対象から外す。
【００２１】
図４は、ユーザがＰＣ３００から画像形成装置１３０へアプリをインストールする際の流れの一例を示す図である。
ユーザは、ＰＣ３００のＷＥＢブラウザに表示される、後述の図６Ｂに表示されるｈｔｔｐファイルで構成されたＷＥＢページであるアプリのインストール画面５２０からインストールしたいアプリを指定する。なお、アプリのインストール処理では、セキュリティやビジネス上の観点から、アプリを動かす際にライセンスが必要となる。そのため、ユーザは、インストールするアプリを指定すると共にライセンスを指定する。
【００２２】
ＰＣ３００は、アプリケーションインストールＵＩ３０１の操作を介して受信したユーザの指示に基づいて、ユーザが指定したアプリと、ライセンスとに関するインストール情報を画像形成装置１３０のアプリ管理部２０７に送信する。
アプリ管理部２０７は、ＰＣ３００から前記インストール情報を受信すると、受信したインストール情報に基づいてアプリを復号化し、複合化した複合化ファイルをインストール制御部２０８に送信し、インストールを指示する。
インストール制御部２０８は、アプリ管理部２０７から前記復号化ファイルを受信すると、ＯＳＧｉ２０６にアプリのインストールを依頼する。
ＯＳＧｉ２０６は、インストール制御部２０８からインストール依頼を受信すると、ユーザが指定したアプリのインストールを行う。なお、インストールされたアプリは、アプリ管理部２０７によって管理される。
【００２３】
図５は、フラグメントバンドルの概念の一例を示す図である。
ここでは、ユーザの指示に基づいて画像形成装置１３０が、ホストバンドル４００に対し、フラグメントバンドル４０１と、フラグメントバンドル４０２とをインストールする場合の例について説明する。
ユーザは、画像形成装置１３０のホストバンドルにフラグメントバンドルをインストールするために、図５に示されるマニフェスト及びバンドルパーミッションを指定する必要がある。以下、ユーザが指定するマニフェスト及びバンドルパーミッションの一例について説明する。
【００２４】
まず、ホストバンドルのマニフェスト４０３について説明する。
ユーザは、Ｂｕｎｄｌｅ−ＭａｎｉｆｅｓｔＶｅｒｓｉｏｎに「２」と指定する。更に、ユーザは、Ｂｕｎｄｌｅ−ＳｙｍｂｏｌｉｃＮａｍｅに、フレームワーク内で一意な名前を付ける。ここでは説明の便宜上、ユーザは、＜バンドルシンボリック名＞と名前を付けたとする。
次に、フラグメントバンドルのマニフェスト４０５について説明する。
ユーザは、Ｂｕｎｄｌｅ−ＭａｎｉｆｅｓｔＶｅｒｓｉｏｎに「２」と指定する。更に、ユーザは、Ｆｒａｇｍｅｎｔ−Ｈｏｓｔに、ホストバンドルのマニフェスト４０３に記載した＜バンドルシンボリック名＞を指定する。
【００２５】
次に、ホストバンドルのパーミッション４０４について説明する。
ユーザは、ホストバンドルのパーミッション４０４に、ＢｕｎｄｌｅＰｅｒｍｉｓｓｉｏｎ＜バンドルシンボリック名＞“ＨＯＳＴ”と指定する。
次に、フラグメントバンドルのパーミッション４０６について説明する。
ユーザは、フラグメントバンドルのパーミッション４０６に、ＢｕｎｄｌｅＰｅｒｍｉｓｓｉｏｎ＜バンドルシンボリック名＞“ＦＲＡＧＭＥＮＴ”と指定する。
【００２６】
画像形成装置１３０が上記条件を満たす状態でフラグメントバンドルをインストールする場合、画像形成装置１３０のＯＳＧｉ２０６は、フラグメントバンドルのマニフェスト情報からホストバンドルを特定する。そして、ＯＳＧｉ２０６は、ホストバンドルのクラスパスにフラグメントバンドル自身のクラスパスの追加を行う。ここで、「クラスパス」とは、画像形成装置１３０がＪａｖａアプリを実行する際に、Ｊａｖａ  ＶＭ２０３がどの場所からクラスファイルを読み込めばよいかを指定するための情報である。更に、ホストバンドルのクラスローダは、フラグメントバンドル内の全てのクラスと、リソースとをロードする。ここで、「クラスローダ」とは、クラスのロードやリソースを検索するオブジェクトであり、全てのクラスはクラスローダによってＪａｖａ  ＶＭ２０３にロードされる。
ホストバンドルのクラスローダは、上記のロード処理をホストバンドル起動時に行うため、必ずホストバンドルを一度停止し、クラスパスを追加した上でロードする必要がある。つまり、画像形成装置１３０は、ホストバンドルを停止させた状態でなければ、フラグメントバンドルをインストールすることができない。
【００２７】
画像形成装置１３０は、インストールした後のフラグメントバンドルをホストバンドルの一部として利用することができる。
例えば図５の例において、画像形成装置１３０がホストバンドル４００にフラグメントバンドルとして日本語リソース４０１と、中国語リソース４０２とをインストールしたとする。その場合、画像形成装置１３０は、日本語リソース４０１と、中国語リソース４０２とをホストバンドル４００の一部として利用することができるようになり、言語リソースを切り替えることができるようになる。
なお、画像形成装置１３０は、フラグメントバンドルのインストールにより、上記のような言語リソースの追加だけでなく、上述したログインアプリの機能を拡張することもできる。
【００２８】
一方、ＯＳＧｉ２０６は、フラグメントバンドルをアンインストールする場合、ホストバンドルのクラスパスからフラグメントバンドル自身のクラスパスの削除を行う。そして、ホストバンドルのクラスローダは、ホストバンドルに必要なクラスを再度ロードする必要がある。そのため、画像形成装置１３０は、ホストバンドルからフラグメントバンドルをアンインストールする場合においても、必ずホストバンドルを停止させた状態で行う必要がある。
なお、画像形成装置１３０によるフラグメントバンドルのアンインストール処理の詳細については、実施形態２で詳述する。
【００２９】
図６Ａは、アプリ管理部２０７が管理するログインアプリの管理画面５００の一例を示す図である。
アプリ管理部２０７は、管理画面５００をＰＣ３００のＷＥＢブラウザに表示する。なお、ここでは、ログインアプリの管理画面について説明するが、一般アプリの管理画面についても同様の画面となる。
アプリケーション名５０１は、アプリ管理部２０７に管理されているログインアプリの名前を表示している。図６Ａの例の場合、アプリ管理部２０７は、ログインアプリケーションＡ５０７と、ログインアプリケーションＢ５１０との２つアプリを管理していることを意味する。更に、アプリ管理部２０７は、ログインアプリケーションＡ５０７をホストバンドルとして、フラグメントバンドルＡ５０８と、フラグメントバンドルＢ５０９とを管理していることを意味する。この場合、アプリ管理部２０７は、フラグメントバンドルＡ５０８及びフラグメントバンドルＢ５０９を、そのホストバンドルであるログインアプリケーションＡ５０７と関連付けて表示する。これにより、ユーザは、フラグメントバンドルＡ５０８及びフラグメントバンドルＢ５０９がログインアプリケーションＡ５０７に紐づいていることを認識することができる。
【００３０】
インストール日５０２は、各アプリがインストールされた日付を表示している。
アプリケーションＩＤ５０３は、各アプリに一意に割り振られたアプリケーションＩＤを表示している。なお、アプリケーションＩＤ５０３は、識別情報の一例である。
状態５０４は、各アプリの状態を表示している。アプリが起動している状態であれば「起動」、停止している状態であれば「停止」と表示される。
切替ボタン５０５、５０６は、ログインアプリの起動と、停止とを切り替える指示ボタンである。ユーザが停止状態のアプリ（本例では、ログインアプリケーションＢ）の切替ボタン５０６を押下すると、アプリの状態５０４は「停止」から画像形成装置１３０の再起動後に「起動」と変更される。一方、現在起動状態のアプリ（本例では、ログインアプリケーションＡ）の状態５０４は、再起動後に「停止」と表示される。即ち、画像形成装置１３０の再起動後に、ログインアプリの起動と、停止との変更が適用される。
【００３１】
アンインストールボタン５１１、５１２、５１３、５１４は、各アプリをアンインストールする指示ボタンである。ここで、アンインストールボタン５１２、５１３は、フラグメントバンドルのみをアンインストールする指示ボタンである。一方、アンインストールボタン５１１、５１４は、ホストバンドルと、ホストバンドルに紐づいたフラグメントバンドルとをアンインストールする指示ボタンである。例えば、ユーザがアンインストールボタン５１２を押下すると、フラグメントバンドルＡだけがアンインストールされる。一方、ユーザがアンインストールボタン５１１を押下すると、ログインアプリケーションＡ５０７に加えて、ログインアプリケーションＡ５０７に紐づいたフラグメントバンドルＡ５０８と、フラグメントバンドルＢ５０９とが同時にアンインストールされる。
【００３２】
図６Ｂは、インストール画面５２０の一例を示した図である。
ユーザが参照ボタン５２３を押下すると、ログインアプリファイルのパスを選択するログインアプリファイルパス選択画面が表示される。ユーザは、ログインアプリファイルパス選択画面でログインアプリファイルを指定すると、ログインアプリケーションファイルのパス５２１にログインアプリファイルへのパスが入力される。
同様に、ユーザが参照ボタン５２４を押下すると、ライセンスファイルのパスを選択するライセンスファイルパス選択画面が表示される。ユーザは、ライセンスファイルパス選択画面でライセンスファイルを指定すると、ライセンスファイルのパス５２２にライセンスファイルへのパスが入力される。
画像形成装置１３０は、ユーザによりインストールボタン５２５が押下されると、ログインアプリケーションファイルのパス５２１で指定されたログインアプリのインストールを開始する。図６Ｂは、ログインアプリをインストールする場合の画面の一例であり、ユーザによりログインアプリ又はログインアプリをホストバンドルとするフラグメントバンドル以外のパスが指定された場合はエラー表示が表示される。その場合、画像形成装置１３０は、インストールを実行することができない。
以上、図６Ａ、Ｂについて説明したが、アプリ管理部２０７は、図６Ａ、Ｂに示される情報をアプリ管理情報として管理している。なお、アプリ管理情報には、上述したアプリのバージョン情報及びライセンス情報等も含まれる。
【００３３】
図７は、インストール画面５２０でフラグメントバンドルが指定された場合に、インストール制御部２０８がホストバンドルであるログインアプリ２０９に対してフラグメントバンドルをインストールする処理の一例を示すフローチャートである。
インストール制御部２０８は、アプリ管理部２０７からインストール指示を受信すると、インストール処理を開始する。
Ｓ８００で、インストール制御部２０８は、インストール処理を開始し、処理をＳ８０１に進める。
Ｓ８０１で、インストール制御部２０８は、インストール対象がフラグメントバンドルであるか否かを判定し、インストール対象がフラグメントバンドルであると判定した場合、処理をＳ８０２に進める。一方、Ｓ８０１で、インストール制御部２０８は、インストール対象がフラグメントバンドルでないと判定した場合、処理をＳ８０３に進める。より具体的には、インストール制御部２０８は、アプリ管理部２０７から受信した、インストール画面５２０でユーザが指定したインストール情報に基づいてインストール対象がフラグメントバンドルであるか否かを判定する。例えばインストール制御部２０８は、ユーザがインストール画面５２０でフラグメントバンドルを指定した場合、インストール対象がフラグメントバンドルであると判定する。
【００３４】
Ｓ８０３で、インストール制御部２０８は、インストール対象がログインアプリであるか否かを判定し、インストール対象がログインアプリであると判定した場合、処理をＳ８１０に進める。一方、Ｓ８０３で、インストール制御部２０８は、インストール対象がログインアプリでないと判定した場合、処理をＳ８０５に進める。より具体的には、インストール制御部２０８は、アプリ管理部２０７から受信した、インストール画面５２０でユーザが指定したインストール情報に基づいてインストール対象がログインアプリであるか否かを判定する。例えばインストール制御部２０８は、ユーザがインストール画面５２０でログインアプリを指定した場合、インストール対象がログインアプリであると判定する。
Ｓ８１０で、インストール制御部２０８は、ログインアプリのインストール処理を行い、Ｓ８１１で処理を終了する。
Ｓ８０５で、インストール制御部２０８は、アプリ管理部２０７にエラーステータスを返却し、Ｓ８１１で処理を終了する。
【００３５】
Ｓ８０２で、インストール制御部２０８は、ホストバンドルがログインアプリであるか否かを判定し、ホストバンドルがログインアプリであると判定した場合、処理をＳ８０４に進める。一方、Ｓ８０２で、インストール制御部２０８は、ホストバンドルがログインアプリでないと判定した場合、処理をＳ８０５に進める。より具体的には、インストール制御部２０８は、アプリ管理部２０７が管理するアプリ管理情報に基づいてホストバンドルがログインアプリであるか否かを判定する。なお、ログインアプリは、上述したように画像形成装置１３０に複数インストールされていない限り、停止不可能なアプリである。本実施形態では、画像形成装置１３０にログインアプリが１つだけインストールされているものとして説明する。なお、Ｓ８０２の処理は、停止可能なアプリであるか否かを判定する判定処理の一例である。
Ｓ８０５の処理については上述した通りであるため、説明を省略する。
Ｓ８０４で、インストール制御部２０８は、ホストバンドルであるログインアプリが起動状態であるか否かを判定し、起動状態であると判定した場合、処理をＳ８０６に進める。一方、Ｓ８０４で、インストール制御部２０８は、起動状態でない（停止状態）と判定した場合、処理をＳ８０７に進める。より具体的には、インストール制御部２０８は、アプリ管理部２０７が管理するアプリ管理情報に基づいてホストバンドルであるログインアプリが起動状態であるか否かを判定する。
【００３６】
Ｓ８０７で、インストール制御部２０８は、フラグメントバンドルのインストール処理を行い、Ｓ８１１で処理を終了する。なお、フラグメントバンドルのインストール処理についての詳細は、図５を用いて説明した通りであるため、説明を省略する。
Ｓ８０６で、インストール制御部２０８は、インストール対象であるフラグメントバンドルのｊａｒファイル（以下、フラグメントファイルという）を、図８に示されるＴＭＰフォルダに仮置きし、処理をＳ８０８に進める。なお、ＴＭＰフォルダは、ＨＤＤ１０４やＲＯＭ１０２等の記憶領域に格納されているフォルダである。
Ｓ８０８で、インストール制御部２０８は、図８で後述するｉｎｓｔａｌｌ．ｏｎファイルを作成してＲＯＭ１０２やＨＤＤ１０４等の記憶領域に格納し、処理をＳ８０９に進める。なお、Ｓ８０８の処理は、作成処理の一例である。
Ｓ８０９で、インストール制御部２０８は、アプリ管理部２０７に再起動指示ステータスを返却し、Ｓ８１１で処理を終了する。
【００３７】
図８は、ｉｎｓｔａｌｌ．ｏｎファイルの一例を示す図である。なお、ｉｎｓｔａｌｌ．ｏｎファイルは、インストール指示ファイルの一例である。
ｉｎｓｔａｌｌ．ｏｎファイルのフォーマット９００は、インストール対象のフラグメントバンドルのアプリケーションＩＤ９０１と、Ｓ８０６で仮置きされたフラグメントファイルのパス９０２との記載を含む。なお、アプリケーションＩＤ９０１は、識別情報の一例である。また、パス９０２は、保存場所情報の一例である。
ｉｎｓｔａｌｌ．ｏｎファイルの一例９０３に示されるように、ｉｎｓｔａｌｌ．ｏｎファイルには、１行毎に各フラグメントバンドルのアプリケーションＩＤ９０１と、フラグメントファイルのパス９０２とが対応付けられて記載される。ここで、アプリケーションＩＤ９０１と、フラグメントファイルのパス９０２とは、ｉｎｓｔａｌｌ．ｏｎファイルに複数記載されていてもよい。ｉｎｓｔａｌｌ．ｏｎファイルにアプリケーションＩＤ９０１と、フラグメントファイルのパス９０２とが複数記載されている場合、画像形成装置１３０は、後述する図９のフローチャートに従い、対象のフラグメントバンドル全てを順次インストールする。
【００３８】
図６Ｂを用いて説明したように、ユーザは、インストール画面５２０を介して画像形成装置１３０にインストール指示を行う。
画像形成装置１３０は、ユーザがログインアプリケーションファイルのパス５２１にログインアプリをホストバンドルとするフラグメントバンドルを指定すると、指定されたフラグメントバンドルのインストールを開始する。より具体的には、インストール制御部２０８は、インストール指示を受信すると、図７に示されるフローチャートに従いインストール処理を行う。そして、上述したようにＳ８０９で、インストール制御部２０８は、再起動指示ステータスをアプリ管理部２０７に返却する。
アプリ管理部２０７は、前記再起動指示ステータスを受信すると、画像形成装置１３０の再起動を促す再起動メッセージ（「フラグメントバンドルのインストールを完了するには、画像形成装置を再起動する必要があります。」）を管理画面５００に表示する。なお、前記再起動メッセージが表示される管理画面５００は、再起動指示画面の一例である。また、アプリ管理部２０７が前記再起動メッセージを管理画面５００に表示する処理は、再起動指示画面の提供処理の一例である。
【００３９】
図９は、管理画面５００に表示された前記再起動メッセージにより、ユーザが画像形成装置１３０を再起動した際のＯＳＧｉ拡張部２１１による処理の一例を示すフローチャートである。
Ｓ１１００で、ＯＳＧｉ拡張部２１１は、起動処理を開始し、処理をＳ１１０１に進める。
Ｓ１１０１で、ＯＳＧｉ拡張部２１１は、ＲＯＭ１０２やＨＤＤ１０４等の記憶領域にｉｎｓｔａｌｌ．ｏｎファイルがあるか否かを判定し、ｉｎｓｔａｌｌ．ｏｎファイルがあると判定した場合、処理をＳ１１０２に進める。一方、Ｓ１１０１で、ＯＳＧｉ拡張部２１１は、ｉｎｓｔａｌｌ．ｏｎファイルがないと判定した場合、処理をＳ１１０７に進める。
【００４０】
Ｓ１１０７で、ＯＳＧｉ拡張部２１１は、サービス起動順リストに従いサービスを順次起動させ、処理をＳ１１０８に進める。
Ｓ１１０８で、ＯＳＧｉ拡張部２１１は、ログインアプリを起動させ、処理をＳ１１０９に進める。
Ｓ１１０９で、ＯＳＧｉ拡張部２１１は、インストール制御部２０８を起動させ、Ｓ１１１０で処理を終了する。
【００４１】
Ｓ１１０２で、ＯＳＧｉ拡張部２１１は、ｉｎｓｔａｌｌ．ｏｎファイルに記載されたアプリケーションＩＤ９０１に対応するフラグメントファイルを検索し、処理をＳ１１０３に進める。より具体的には、ＯＳＧｉ拡張部２１１は、アプリケーションＩＤ９０１と合致するフラグメントファイルを、図７のＳ８０６でＴＭＰフォルダに仮置きされたフラグメントファイルから検索する。
Ｓ１１０３で、ＯＳＧｉ拡張部２１１は、Ｓ１１０２での検索の結果、アプリケーションＩＤ９０１と合致する仮置きされたフラグメントファイルの有無を判定し、有ると判定した場合、処理をＳ１１０４に進める。一方、ＯＳＧｉ拡張部２１１は、Ｓ１１０２での検索の結果、アプリケーションＩＤ９０１と合致するフラグメントファイルが無いと判定した場合、処理をＳ１１０５に進める。
【００４２】
Ｓ１１０４で、ＯＳＧｉ拡張部２１１は、検索したフラグメントファイルを利用して、フラグメントバンドルのインストール処理を行い、処理をＳ１１０５に進める。なお、フラグメントバンドルのインストール処理についての詳細は、図５を用いて説明した通りであるため、説明を省略する。なお、Ｓ１１０４の処理は、追加処理の一例である。
Ｓ１１０５で、ＯＳＧｉ拡張部２１１は、ｉｎｓｔａｌｌ．ｏｎファイルに記載された全てのインストール対象のフラグメントバンドルのインストールを実行したか否かを判定し、実行したと判定した場合、処理をＳ１１０６に進める。一方、Ｓ１１０５で、ＯＳＧｉ拡張部２１１は、インストール対象のフラグメントバンドルのうち、インストール未実行のフラグメントバンドルがあると判定した場合、処理をＳ１１０２に戻す。
Ｓ１１０６で、ＯＳＧｉ拡張部２１１は、図７のＳ８０８で作成されたｉｎｓｔａｌｌ．ｏｎファイルを削除し、処理をＳ１１０７に進める。なお、Ｓ１１０７以降の処理については、上述した通りである。
【００４３】
図１０は、図９のＳ１１０９で起動されたインストール制御部２０８による処理の一例を示すフローチャートである。
Ｓ１２００で、インストール制御部２０８は、処理を開始し、Ｓ１２０１に進む。
Ｓ１２０１で、インストール制御部２０８は、仮置きされたフラグメントファイルの有無を判定し、有ると判定した場合、処理をＳ１２０２に進め、無いと判定した場合、Ｓ１２０３で処理を終了する。
Ｓ１２０２で、インストール制御部２０８は、仮置きされたフラグメントファイルを削除し、Ｓ１２０３で処理を終了する。なお、Ｓ１２０２の処理は、ファイル削除処理の一例である。
【００４４】
以上、本実施形態の画像形成装置１３０は、ホストバンドルであるログインアプリを停止することができない場合、ｉｎｓｔａｌｌ．ｏｎファイルを作成する。そして、画像形成装置１３０は、作成したｉｎｓｔａｌｌ．ｏｎファイルを利用することで再起動後に対象のフラグメントバンドルをインストールすることができる。
【００４５】
＜実施形態２＞
本実施形態では、画像形成装置がログインアプリにフラグメントバンドルをアンインストールする場合の実施形形態について説明する。なお、本実施形態は、課題２を解決するための実施形態である。
図６Ａを用いて説明したように、ユーザは、ログインアプリの管理画面５００を介して画像形成装置１３０にアンインストール指示を行う。
ユーザは、アンインストールしたいフラグメントバンドルのアンインストールボタンを押下する。例えばユーザは、図６におけるフラグメントバンドルＡをアンインストールしたい場合、アンインストールボタン５１２を押下する。アプリ管理部２０７は、後述する図１１のＳ１３０９に示されるようにインストール制御部２０８から再起動指示ステータスを受信する。そして、アプリ管理部２０７は、画像形成装置１３０の再起動を促す再起動メッセージ（「フラグメントバンドルのアンインストールを完了するには、画像形成装置を再起動する必要があります。」）を管理画面５００に表示する。
【００４６】
図１１は、インストール制御部２０８がホストバンドルであるログインアプリ２０９に対してフラグメントバンドルをアンインストールする処理の一例を示すフローチャートである。
Ｓ１３００で、インストール制御部２０８は、アンインストール処理を開始し、処理をＳ１３０１に進める。
Ｓ１３０１で、インストール制御部２０８は、アンインストール対象がフラグメントバンドルであるか否かを判定し、アンインストール対象がフラグメントバンドルであると判定した場合、処理をＳ１３０２に進める。一方、Ｓ１３０１で、インストール制御部２０８は、アンインストール対象がフラグメントバンドルでないと判定した場合、処理をＳ１３０３に進める。より具体的には、インストール制御部２０８は、アプリ管理部２０７から受信したアンインストール情報に基づいてアンインストール対象がフラグメントバンドルであるか否かを判定する。ここで、アンインストール情報とは、アプリ管理部２０７がＰＣ３００から受信した、ユーザが管理画面５００で何れのアンインストールボタンを押下したかに関する情報である。例えばインストール制御部２０８は、ユーザが管理画面５００でアンインストールボタン５１２又はアンインストールボタン５１３を押下した場合、アンインストール対象がフラグメントバンドルであると判定する。
【００４７】
Ｓ１３０３で、インストール制御部２０８は、アンインストール対象がログインアプリであるか否かを判定し、アンインストール対象がログインアプリであると判定した場合、処理をＳ１３１０に進める。一方、Ｓ１３０３で、インストール制御部２０８は、アンインストール対象がログインアプリでないと判定した場合、処理をＳ１３０５に進める。より具体的には、インストール制御部２０８は、アプリ管理部２０７から受信したアンインストール情報に基づいてアンインストール対象がフラグメントバンドルであるか否かを判定する。アンインストール情報については、上述した通りであるため説明を省略する。例えばインストール制御部２０８は、ユーザが管理画面５００でアンインストールボタン５１１又はアンインストールボタン５１４を押下した場合、アンインストール対象がログインアプリであると判定する。
Ｓ１３１０で、インストール制御部２０８は、ログインアプリのアンインストール処理を行い、Ｓ１３１１で処理を終了する。
Ｓ１３０５で、インストール制御部２０８は、アプリ管理部２０７にエラーステータスを返却し、Ｓ１３１１で処理を終了する。
【００４８】
Ｓ１３０２で、インストール制御部２０８は、ホストバンドルがログインアプリであるか否かを判定し、ホストバンドルがログインアプリであると判定した場合、処理をＳ１３０４に進める。一方、Ｓ１３０２で、インストール制御部２０８は、ホストバンドルがログインアプリでないと判定した場合、処理をＳ１３０５に進める。より具体的には、インストール制御部２０８は、アプリ管理部２０７が管理するアプリ管理情報に基づいてホストバンドルがログインアプリであるか否かを判定する。なお、ログインアプリは、上述したように画像形成装置１３０に複数インストールされていない限り、停止不可能なアプリである。本実施形態では、画像形成装置１３０にログインアプリが１つだけインストールされているものとして説明する。なお、Ｓ１３０２の処理は、停止可能なアプリであるか否かを判定する判定処理の一例である。
Ｓ１３０５の処理については上述した通りであるため、説明を省略する。
【００４９】
Ｓ１３０４で、インストール制御部２０８は、ホストバンドルであるログインアプリが起動状態であるか否かを判定し、起動状態であると判定した場合、処理をＳ１３０６に進める。一方、Ｓ１３０４で、インストール制御部２０８は、起動状態でない（停止状態）と判定した場合、処理をＳ１３０７に進める。より具体的には、インストール制御部２０８は、アプリ管理部２０７が管理するアプリ管理情報に基づいてホストバンドルであるログインアプリが起動状態であるか否かを判定する。
Ｓ１３０７で、インストール制御部２０８は、フラグメントバンドルのアンインストール処理を行い、Ｓ１３１１で処理を終了する。
Ｓ１３０６で、インストール制御部２０８は、図１２で後述するｕｎｉｎｓｔａｌｌ．ｏｎファイルを作成してＲＯＭ１０２やＨＤＤ１０４等の記憶領域に格納し、処理をＳ１３０８に進める。なお、Ｓ１３０６の処理は、作成処理の一例である。
Ｓ１３０８で、インストール制御部２０８は、アプリ管理部２０７に再起動指示ステータスを返却し、Ｓ１３１１で処理を終了する。
【００５０】
図１２は、ｕｎｉｎｓｔａｌｌ．ｏｎファイルの一例を示す図である。なお、ｕｎｉｎｓｔａｌｌ．ｏｎファイルは、アンインストール指示ファイルの一例である。
ｕｎｉｎｓｔａｌｌ．ｏｎファイルのフォーマット１５００は、アンインストール対象のフラグメントバンドルのアプリケーションＩＤ１５０１の記載を含む。なお、アプリケーションＩＤ１５０１は、識別情報の一例である。
ｕｎｉｎｓｔａｌｌ．ｏｎファイルの一例１５０２に示されるように、ｕｎｉｎｓｔａｌｌ．ｏｎファイルには、１行毎に各フラグメントバンドルのアプリケーションＩＤ１５０１が記載される。ここで、アプリケーションＩＤ１５０１は、ｕｎｉｎｓｔａｌｌ．ｏｎファイルに複数記載されていてもよい。ｕｎｉｎｓｔａｌｌ．ｏｎファイルにアプリケーションＩＤ１５０１が複数記載されている場合、画像形成装置１３０は、後述する図１３のフローチャートに従い、対象のフラグメントバンドル全てを順次アンインストールする。
【００５１】
図１３は、管理画面５００に表示された前記再起動メッセージにより、ユーザが画像形成装置１３０を再起動した際のＯＳＧｉ拡張部２１１による処理の一例を示すフローチャートである。なお、前記再起動メッセージが表示される管理画面５００は、再起動指示画面の一例である。また、アプリ管理部２０７が前記再起動メッセージを管理画面５００に表示する処理は、再起動指示画面の提供処理の一例である。
Ｓ１６００で、ＯＳＧｉ拡張部２１１は、起動処理を開始し、処理をＳ１６０１に進める。
Ｓ１６０１で、ＯＳＧｉ拡張部２１１は、ＲＯＭ１０２やＨＤＤ１０４等の記憶領域にｕｎｉｎｓｔａｌｌ．ｏｎファイルがあるか否かを判定し、ｕｎｉｎｓｔａｌｌ．ｏｎファイルがあると判定した場合、処理をＳ１６０２に進める。一方、Ｓ１６０１で、ＯＳＧｉ拡張部２１１は、ｕｎｉｎｓｔａｌｌ．ｏｎファイルがないと判定した場合、処理をＳ１６０５に進める。
【００５２】
Ｓ１６０５で、ＯＳＧｉ拡張部２１１は、サービス起動順リストに従いサービスを順次起動させ、処理をＳ１６０６に進める。
Ｓ１６０６で、ＯＳＧｉ拡張部２１１は、ログインアプリを起動させ、処理をＳ１６０７に進める。
Ｓ１６０７で、ＯＳＧｉ拡張部２１１は、インストール制御部２０８を起動させ、Ｓ１６０８で処理を終了する。
【００５３】
Ｓ１６０２で、ＯＳＧｉ拡張部２１１は、ｕｎｉｎｓｔａｌｌ．ｏｎファイルに記載されたアプリケーションＩＤ１５０１と合致するフラグメントバンドルをアンインストールし、処理をＳ１６０３に進める。より具体的には、ＯＳＧｉ拡張部２１１は、ＨＤＤ１０４に格納されているインストールされたフラグメントバンドルからアプリケーションＩＤ１５０１と合致するフラグメントバンドルを検索してアンインストールする。なお、フラグメントバンドルのアンインストール処理についての詳細は、図５を用いて説明した通りであるため、説明を省略する。なお、Ｓ１６０２の処理は、削除処理の一例である。
Ｓ１６０３で、ＯＳＧｉ拡張部２１１は、ｕｎｉｎｓｔａｌｌ．ｏｎファイルに記載された全てのアンインストール対象のフラグメントバンドルのアンインストールを実行したか否かを判定し、実行したと判定した場合、処理をＳ１６０４に進める。一方、Ｓ１６０３で、ＯＳＧｉ拡張部２１１は、アンインストール対象のフラグメントバンドルのうち、アンインストール未実行のフラグメントバンドルがあると判定した場合、処理をＳ１６０２に戻す。
Ｓ１６０４で、ＯＳＧｉ拡張部２１１は、図１１のＳ１３０６で作成されたｕｎｉｎｓｔａｌｌ．ｏｎファイルを削除し、処理をＳ１６０５に進める。なお、Ｓ１６０５以降の処理については、上述した通りである。なお、Ｓ１６０４の処理は、ファイル削除処理の一例である。
【００５４】
以上、本実施形態の画像形成装置１３０は、ホストバンドルであるログインアプリを停止することができない場合、ｕｎｉｎｓｔａｌｌ．ｏｎファイルを作成する。そして、画像形成装置１３０は、作成したｕｎｉｎｓｔａｌｌ．ｏｎファイルを利用することで再起動後に対象のフラグメントバンドルをアンインストールすることができる。
【００５５】
＜その他の実施形態＞
また、本実施形態は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００５６】
以上、上述した各実施形態によれば、画像形成装置１３０は、停止できないホストバンドルであるログインアプリに対しても、フラグメントバンドルをインストール又はアンインストールすることができる。つまり、画像形成装置１３０は、停止させることができないアプリに対しても、拡張機能を追加又は削除することができる。
【００５７】
以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図１】
2014142824.tif 000003
【図２】
2014142824.tif 000004
【図３】
2014142824.tif 000005
【図４】
2014142824.tif 000006
【図５】
2014142824.tif 000007
【図６Ａ】
2014142824.tif 000008
【図６Ｂ】
2014142824.tif 000009
【図７】
2014142824.tif 000010
【図８】
2014142824.tif 000011
【図９】
2014142824.tif 000012
【図１０】
2014142824.tif 000013
【図１１】
2014142824.tif 000014
【図１２】
2014142824.tif 000015
【図１３】
2014142824.tif 000016