(57)【要約】      （修正有）【課題】インストール済みのアプリケーション間に依存関係があり、かつ限られたＨＤＤ資源の中で、空き容量を考慮しながらアップデートを行う技術を提供する。【解決手段】サーバからアプリケーションを格納手段にダウンロードする情報処理装置であって、格納手段に格納されているアプリケーションのアップデートが指示されると、その指示に応じて、サーバからアプリケーションの属性情報を取得する。その属性情報に基づいて、アプリケーションと依存関係にあるアプリケーションを検索し、アップデートするアプリケーションと、検索された、アプリケーションと依存関係にあるアプリケーションと、を格納できる空き領域を格納手段に確保できるか判定する。空き領域を確保できると判定すると、アップデートするアプリケーションと、当該アプリケーションと依存関係にあるアプリケーションと、をサーバからダウンロードする。【選択図】図７
2020201719.tif 000002
【特許請求の範囲】
【請求項１】
サーバからアプリケーションをダウンロードする情報処理装置であって、
アプリケーションを格納する格納手段と、
前記格納手段に格納されているアプリケーションのアップデートを指示する指示手段と、
前記指示手段による指示に応じて、前記サーバから前記アプリケーションの属性情報を取得する取得手段と、
前記属性情報に基づいて、前記アプリケーションと依存関係にあるアプリケーションを検索する検索手段と、
アップデートする前記アプリケーションと、検索された前記アプリケーションと依存関係にあるアプリケーションとを格納できる空き領域を前記格納手段に確保できるかどうか判定する判定手段と、
前記判定手段が前記空き領域を確保できると判定すると、前記アップデートするアプリケーションと、当該アプリケーションと依存関係にあるアプリケーションとを前記サーバからダウンロードするダウンロード手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記取得手段は、前記指示手段による指示に応じで、前記格納手段に格納されているアプリケーションの識別情報とバージョンを前記サーバに送信し、
前記サーバから前記アプリケーションのバージョン及び属性情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記サーバから前記アプリケーションの最新のバージョンを含むバージョンを取得することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記検索手段による検索により、前記アプリケーションと依存関係にあるアプリケーションが検索されると、当該依存関係にあるアプリケーションのアップデートをユーザに促す画面を表示する表示手段を、更に有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記表示手段は、前記画面において、前記アプリケーションのアップデートに必要となる前記依存関係にあるアプリケーションを自動的に選択した状態で表示することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記表示手段は、前記画面において、前記アプリケーションのアップデートに必要でない前記依存関係にあるアプリケーションを選択不能にした状態で表示することを特徴とする請求項４に記載の情報処理装置。
【請求項７】
前記ダウンロードが完了したことに応じて、前記ダウンロードが完了したアプリケーションとそのバージョン、当該アプリケーションと依存関係にあるアプリケーションとそのバージョンを表示する手段を、更に有することを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記ダウンロード手段は、前記アップデートするアプリケーションよりも先に、前記アプリケーションと依存関係にあるアプリケーションをダウンロードすることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記アップデートするアプリケーションが停止状態の場合、前記ダウンロード手段は、前記アップデートするアプリケーションに続いて、前記アプリケーションと依存関係にあるアプリケーションをダウンロードすることを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記アプリケーションは、ｊａｒファイル形式のファイルであることを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
アプリケーションを格納する格納手段を有し、サーバからアプリケーションをダウンロードする情報処理装置を制御する制御方法であって、
前記格納手段に格納されているアプリケーションのアップデートを指示する指示工程と、
前記指示工程による指示に応じて、前記サーバから前記アプリケーションの属性情報を取得する取得工程と、
前記属性情報に基づいて、前記アプリケーションと依存関係にあるアプリケーションを検索する検索工程と、
アップデートする前記アプリケーションと、検索された前記アプリケーションと依存関係にあるアプリケーションとを格納できる空き領域を前記格納手段に確保できるかどうか判定する判定工程と、
前記判定工程が前記空き領域を確保できると判定すると、前記アップデートするアプリケーションと、当該アプリケーションと依存関係にあるアプリケーションとを前記サーバからダウンロードするダウンロード工程と、
を有することを特徴とする制御方法。
【請求項１２】
コンピュータに、請求項１１に記載の制御方法の各工程を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置とその制御方法、及びプログラムに関する。
【背景技術】
【０００２】
アプリケーションの開始、停止など、アプリケーションのライフサイクルを管理するフレームワークとしてＯＳＧｉ（Ｏｐｅｎ  Ｓｅｒｖｉｃｅｓ  Ｇａｔｅｗａｙ  ｉｎｉｔｉａｔｉｖｅ）ＡｌｌｉａｎｃｅからＯＳＧｉフレームワークが提唱されている。ＯＳＧｉフレームワークでは、アプリケーションの形式をＪａｖａ（登録商標）の圧縮フォーマットであるｊａｒファイルとして規定している。ｊａｒファイルは、複数のクラスファイルをアーカイブとして１つにまとめたものである。内部にＭＡＮＩＦＥＳＴ.ＭＦというマニフェストファイルを１つ持っており、ｊａｒファイルの説明が記載される。このマニフェストファイルにＯＳＧｉ仕様の属性を記載することで、記載された属性に従ってＯＳＧｉフレームワークはアプリケーションのライフサイクルを管理する。
【０００３】
画像形成装置において、アプリケーションを後入れでインストールして搭載することが試みられており、上記ＯＳＧｉフレームワークに準拠した仕組みを搭載した画像形成装置も普及している。またマニフェストファイルにＯＳＧｉ仕様の属性だけでなく、アプリケーションのＩＤや、最大ＨＤＤ使用容量などの独自の属性を定義することで、拡張したものもみられる。
【０００４】
アプリケーションのインストールを扱った文献として、例えば特許文献１、特許文献２がある。特許文献１には、アプリケーションのインストールに必要なＨＤＤの容量を表示することが記載されている。また特許文献２には、アプリケーションのインストール順やインストール時の設定を考慮して、アプリケーションをインストールすることが記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−７６０４８号公報
【特許文献２】特開２０１０−３３４２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、インストール済みのアプリケーション間に依存関係があり、かつ画像形成装置のような限られたＨＤＤ資源の中で、そのＨＤＤの空き容量を考慮しながらアップデートを行うような場合は、先行技術では解決できない。
【０００７】
本発明の目的は、上記従来技術の問題点の少なくとも一つを解決することにある。
【０００８】
本発明の目的は、アプリケーションの依存関係と格納領域の空き容量を考慮しながら、アプリケーションのアップデートを行うことができる技術を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
サーバからアプリケーションをダウンロードする情報処理装置であって、
アプリケーションを格納する格納手段と、
前記格納手段に格納されているアプリケーションのアップデートを指示する指示手段と、
前記指示手段による指示に応じて、前記サーバから前記アプリケーションの属性情報を取得する取得手段と、
前記属性情報に基づいて、前記アプリケーションと依存関係にあるアプリケーションを検索する検索手段と、
アップデートする前記アプリケーションと、検索された前記アプリケーションと依存関係にあるアプリケーションとを格納できる空き領域を前記格納手段に確保できるかどうか判定する判定手段と、
前記判定手段が前記空き領域を確保できると判定すると、前記アップデートするアプリケーションと、当該アプリケーションと依存関係にあるアプリケーションとを前記サーバからダウンロードするダウンロード手段と、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、アプリケーションの依存関係と格納領域の空き容量を考慮しながら、アプリケーションのアップデートを行うことができるという効果がある。
【００１１】
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
【図面の簡単な説明】
【００１２】
添付図面は明細書に含まれ、その一部を構成し、本発明の実施形態を示し、その記述と共に本発明の原理を説明するために用いられる。
【図１】本発明の実施形態１に係る画像形成装置を含むネットワークシステムの構成図。
【図２】実施形態１に係る画像形成装置のハードウェア構成を説明するブロック図。
【図３】実施形態１に係るサーバのハードウェア構成を説明するブロック図。
【図４】実施形態１に係る画像形成装置のソフトウェア構成を説明するブロック図。
【図５】実施形態１に係るサーバのソフトウェア構成を説明するブロック図。
【図６】実施形態１に係る画像形成装置で動作するアプリケーションの構成を説明する図。
【図７】実施形態１に係る画像形成装置とサーバが、ユーザの指示により画像形成装置にインストール済みのアプリケーションをアップデートするときの処理を示すシーケンス図。
【図８】実施形態１に係る画像形成装置におけるアプリケーションのアップデート処理を説明するフローチャート。
【図９】実施形態１に係る画像形成装置の表示部に表示されるアップデートメニュー画面例を示す図。
【図１０】実施形態１に係る画像形成装置の表示部に表示される新しいバージョンのアプリケーションの一覧表示例を示す図。
【図１１】実施形態１に係る画像形成装置の表示部に表示される画面例を示す図。
【図１２】実施形態１に係る画像形成装置の表示部に表示される他の画面例を示す図。
【図１３】実施形態１に係る画像形成装置の表示部に表示されるアップデートの完了画面の一例を示す図。
【図１４】実施形態２に係る画像形成装置におけるアプリケーションのアップデート処理を説明するフローチャート。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これら複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一もしくは同様の構成に同一の参照番号を付し、重複した説明は省略する。また実施形態では、本発明の情報処理装置の一例として、例えば複合機のような画像形成装置を例に説明するが、本発明はこれに限定されるものでない。
【００１４】
[実施形態１]
図１は、本発明の実施形態１に係る画像形成装置１０１を含むネットワークシステムの構成図である。
【００１５】
画像形成装置１０１は、一台でプリンタ、スキャナ、コピー、ＦＡＸなどの機能を備えた複合機である。この画像形成装置１０１は、この画像形成装置に固有の個体番号（識別情報）を有する。コンテンツ配信サーバ１０２（以下、サーバ１０２）は、画像形成装置１０１で動作するアプリケーション６０１（図６）を配信するために使用される。ネットワーク１０３は、インターネットなどのネットワークであり、画像形成装置１０１は、ネットワーク１０３を介してサーバ１０２と通信を行うことができる。
【００１６】
図２は、実施形態１に係る画像形成装置１０１のハードウェア構成を説明するブロック図である。
【００１７】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、各種プログラムを実行し、様々な機能を実現する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２は、各種プログラムを記憶している。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３は、ＣＰＵ２０１が動作するためのシステムワークメモリを提供し、また各種データを一時記憶するのに使用される。ＣＰＵ２０１は、ＲＯＭ２０２に記憶されているブートプログラムを実行してＨＤＤ２０４に格納されているプログラムをＲＡＭ２０３に展開し、その展開したプログラムを実行して、画像形成装置１０１の動作を制御している。ＲＡＭ２０３は、記憶した内容を電源オフ後も保持可能なＦＲＡＭ（登録商標）及びＳＲＡＭ、更には電源オフ後に記憶内容が消去されるＤＲＡＭ等を含んでいる。ＨＤＤ（ハードデスクドライブ）２０４は、各種プログラムやデータなどを記憶する大容量の不揮発記憶部である。操作部２０５は、画像形成装置１０１を操作するためのユニットで、ハードキーやポインティングデバイスなどを含む。表示部２０６は、画像形成装置１０１のＵＩを表示するためのユニットで、操作部２０５と一体に設けられている。印刷部２０７は、バス２１０を介して受け取ったラスタイメージを始めとする各種イメージデータに従って記録媒体（シート）に画像を印刷する。スキャナ部２０８は、原稿台に置かれた原稿を読み取って、その原稿の画像に対応するイメージデータを生成する。ネットワーク部２０９は、ネットワーク１０３と接続し、ネットワーク１０３を介してサーバ１０２と通信することができる。以上説明してきた各部は、バス２１０を介して相互にデータの送受信を行うことが可能である。
【００１８】
図３は、実施形態１に係るサーバ１０２のハードウェア構成を説明するブロック図である。
【００１９】
ＣＰＵ３０１は、ＲＯＭ３０２に記憶されているブートプログラムを実行してＨＤＤ３０４にインストールされているプログラムをＲＡＭ３０３に展開し、その展開したプログラムを実行して、このサーバ１０２の動作を制御する。ＲＡＭ３０３は、ＣＰＵ３０１が動作するためのシステムワークメモリを提供し、また各種データを一時記憶するのに使用される。ＨＤＤ３０４は、各種プログラムやデータなどを記憶する。操作部３０５は、ユーザインタフェースを提供し、ハードキーやポインティングデバイス、更には表示部３０６を有している。ネットワーク部２０９は、ネットワーク１０３と接続し、ネットワーク１０３を介して画像形成装置１０１と通信することができる。
【００２０】
図４は、実施形態１に係る画像形成装置１０１のソフトウェア構成を説明するブロック図である。ここに示されている各構成部を実現するプログラムは、ＨＤＤ２０４に記憶されている。そして前述したように、ＣＰＵ２０１が、そのプログラムをＲＡＭ２０３に展開して実行することにより、このブロック図で示す各部の機能が実現される。
【００２１】
記憶部４０１は、画像形成装置１０１で動作するアプリケーション６０１（図６）本体とマニフェストファイル６０２（図６）の情報をＨＤＤ２０４に記憶する。更に、アプリケーションが利用可能なＨＤＤ２０４の容量情報を記憶する。尚、実施形態１では、ＨＤＤの容量として説明しているが、別の資源であってもよい。例えば、メモリやそれ以外のソフトウェア資源の情報であってもよい。ダウンロード部４０２は、画像形成装置１０１で動作するアプリケーション６０１をサーバ１０２から取得（ダウンロード）するための処理を行う。アップデート部４０３は、記憶部４０１が記憶しているアプリケーション６０１をアップデートする。またアップデート部４０３は、アプリケーション６０１がインストール済みでない場合は、記憶部４０１により新規インストールする。ＵＩ制御部４０４は、表示部２０６に表示する画面を制御する。アプリケーション管理部４０５は、アプリケーションの開始、停止を管理する。
【００２２】
図５は、実施形態１に係るサーバ１０２のソフトウェア構成を説明するブロック図である。ここに示されている各構成部を実現するプログラムは、ＨＤＤ３０４に記憶されている。そして前述したように、ＣＰＵ３０１が、そのプログラムをＲＡＭ３０３に展開して実行することにより、このブロック図で示す各部の機能が実現される。
【００２３】
記憶部５０１は、アプリケーション６０１本体と、マニフェストファイル６０２の情報をＨＤＤ３０４に記憶する。検索部５０２は、アプリケーション６０１のマニフェストファイル６０２に記載されたアプリケーション６０１のＡｐｐｌｉｃａｔｉｏｎ−Ｉｄによりアプリケーションを特定し、Ｂｕｎｄｌｅ−Ｖｅｒｓｉｏｎの数値比較により、バージョンアップするアプリケーションを特定する。配信部５０３は、アプリケーション６０１のマニフェストファイル６０２の情報とアプリケーション６０１本体を画像形成装置１０１に配信する。
【００２４】
図６は、実施形態１に係る画像形成装置１０１で動作するアプリケーション６０１の構成を説明する図である。
【００２５】
ここでアプリケーション６０１はｊａｒファイル形式であるため、マニフェストファイル６０２を含む。アプリケーションの本体は、クラスファイル６０３である。マニフェストファイル６０２は、アプリケーション６０１の属性情報を記載している。
【００２６】
例えば、Ｂｕｎｄｌｅ−Ｎａｍｅは、アプリケーションの名前を示し、ここでは「Ａ」である。Ｂｕｎｄｌｅ−Ｖｅｒｓｉｏｎは、アプリケーションのバージョンを示し、ここではバージョンは１．０である。Ｉｍｐｏｒｔ−Ｐａｃｋａｇｅは、アプリケーション６０１がインポートするパッケージを示し、Ｅｘｐｏｒｔ−Ｐａｃｋａｇｅは、アプリケーション６０１がエクスポートするパッケージを示している。Ａｐｐｌｉｃａｔｉｏｎ−Ｉｄは、アプリケーション６０１の識別子で、ここでは「１０００００００」である。ＭａｘｉｍｕｍＦｉｌｅｓｐａｃｅＵｓａｇｅは、アプリケーション６０１の最大ＨＤＤの使用量を示し、ここでは「１００」メガバイトである。
【００２７】
図７は、実施形態１に係る画像形成装置１０１とサーバ１０２が、ユーザの指示により画像形成装置１０１にインストール済みのアプリケーション６０１をアップデートするときの処理を示すシーケンス図である。
【００２８】
Ｓ７０１でユーザがアプリケーションのアップデートメニューを表示して、アプリケーションのアップデートを指示する。具体的には、ユーザは、ＵＩ制御部４０４が表示するＵＩ画面で、アプリケーションのアップデートを指示する。
【００２９】
図９は、実施形態１に係る画像形成装置１０１の表示部２０６に表示されるアップデートメニュー画面例を示す図である。
【００３０】
ユーザは、この画面で、アプリケーションアップデートボタン９０２を押下することにより、アプリケーションのアップデートを指示する。
【００３１】
次にＳ７０２で画像形成装置１０１のアップデート部４０３は、記憶部４０１が保持するマニフェストファイル６０２の情報に基づいて、画像形成装置１０１にインストール済みアプリケーションの一覧情報（具体的には、Ａｐｐｌｉｃａｔｉｏｎ−ＩｄとＢｕｎｄｌｅ−Ｖｅｒｓｉｏｎの情報）をサーバ１０２に送信する。ここでは、アプリケーションＩＤ（識別情報）と、そのアプリケーションのバージョンをサーバ１０２に送信する。これによりサーバ１０２は、画像形成装置１０１から受信したアプリケーションＩＤに基づいてアプリケーションを特定して、画像形成装置１０１にインストールされているバージョンより新しいバージョンのアプリケーションを検索する。
【００３２】
Ｓ７０３でサーバ１０２の検索部５０２は、Ｓ７０２で受信した情報に基づいて、アプリケーション６０１のマニフェストファイル６０２に記載されたＡｐｐｌｉｃａｔｉｏｎ−Ｉｄと一致するアプリケーションを検索し、Ｂｕｎｄｌｅ−Ｖｅｒｓｉｏｎの数値比較により、新しいバージョンのアプリケーションを特定する。
【００３３】
そしてＳ７０４でサーバ１０２の配信部５０３は、Ｓ７０３で検索した新しいバージョンのアプリケーションのリスト情報（具体的には、マニフェストファイル６０２の情報）を画像形成装置１０１に送信する。これによりＳ７０５で画像形成装置１０１のＵＩ制御部４０４は、サーバ１０２から受信した新しいバージョンのアプリケーションのリスト（具体的にはＢｕｎｄｌｅ−ＮａｍｅとＢｕｎｄｌｅ−Ｖｅｒｓｉｏｎの情報）を表示部２０６に表示する。このときのＵＩ表示を図１０に示す。
【００３４】
図１０は、実施形態１に係る画像形成装置１０１の表示部２０６に表示される新しいバージョンのアプリケーションの一覧表示例を示す図である。
【００３５】
図１０では、記憶部４０１が保持するインストール済みのアプリケーションのＩＤとバージョンの一覧と、Ｓ７０４でサーバ１０２から取得したアップデート可能なアプリケーションバージョンのリストが表示されている。
【００３６】
次にＳ７０６でユーザは、この表示された一覧から、インストールしたいアプリケーションのバージョンを選択する。これにより、その選択されたアプリケーションとそのバージョンがＳ７０７でＵＩ制御部４０４に伝えられる。例えば図１０の例では、ユーザがアップデートしたいアプリケーションのバージョンをラジオボタンで選択する。これにより、その選択されたアプリケーションと、そのバージョンがＳ７０７でＵＩ制御部４０４に伝えられる。
【００３７】
その後Ｓ７０８で、画像形成装置１０１のアップデート部４０３は、ユーザが選択したアプリケーションと依存関係のあるアプリケーションを特定する。そしてＳ７０９でアップデート部４０３は、Ｓ７０４で、サーバ１０２から受信したマニフェストファイル６０２の情報のうちＭａｘｉｍｕｍＦｉｌｅｓｐａｃｅＵｓａｇｅの情報に基づいて、そのアプリケーションをダウンロードするのに必要なメモリ容量を取得する。そして、そのメモリ容量をＨＤＤ２０４に確保できるか、ＨＤＤ２０４の空き容量をチェックする。そして、ＨＤＤ２０４にアプリケーション６０１の容量分の空き領域を確保できれば、Ｓ７１０でＵＩ制御部４０４は、依存関係のあるアプリケーションを選択状態にする。
【００３８】
これらＳ７０８〜Ｓ７０９の処理は、図８のフローチャートを参照して詳しく後述する。
【００３９】
図１１は、実施形態１に係る画像形成装置１０１の表示部２０６に表示される画面例を示す図である。
【００４０】
ここでは、例えば、図１０の画面で、アプリＡをバージョン２．０にアップデートするように選択された場合、そのためには、アプリＢをバージョン２．０にアップデートする必要があることが表示されている。そして、アプリＢのバージョン１．１と１．２のラジオボタンが選択できなくなり、バージョン２．０のラジオボタンが自動的にチェックされている。
【００４１】
また図１２は、実施形態１に係る画像形成装置１０１の表示部２０６に表示される他の画面例を示す図である。
【００４２】
ここでは、例えば、図１０の画面で、アプリＡのバージョン２．０へのアップデートが選択された場合、そのためには、アプリＢをバージョン２．０、或いはバージョン３．０にアップデートする必要があることが表示されている。この場合、アプリＢのバージョン１．１と１．２のラジオボタンが選択できなくなり、アプリＢのバージョン２．０とバージョン３．０のラジオボタンが選択可能で、最新のバージョン３．０のラジオボタンがチェックされている。
【００４３】
その後、Ｓ７１１でユーザは、選択したアプリケーションのアップデートを指示する。具体的には、図１１或いは図１２のＯＫボタンを押下する。
【００４４】
これによりＳ７１２で画像形成装置１０１のダウンロード部４０２は、サーバ１０２の配信部５０３からアプリケーションをダウンロードする。その後、Ｓ７１３において画像形成装置１０１のアップデート部４０３は、そのダウンロードしたアプリケーションにより、選択したアプリケーションと、その選択したアプリケーションと依存関係にあるアプリケーションをアップデートする。そしてＳ７１４で、そのアップデートしたアプリケーションを開始する。その後、Ｓ７１５で画像形成装置１０１のＵＩ制御部４０４は、完了画面を表示部２０６に表示して、この一例の処理を終了する。
【００４５】
図１３は、実施形態１に係る画像形成装置１０１の表示部２０６に表示されるアップデートの完了画面の一例を示す図である。
【００４６】
ここでは、バージョン２．０のアプリＡと、バージョン３．０のアプリＢのアップデートが完了した旨が表示されている。
【００４７】
図８は、実施形態１に係る画像形成装置１０１におけるアプリケーションのアップデート処理を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ２０１がＲＡＭ２０３に展開したプログラムを実行することにより達成される。
【００４８】
Ｓ８０１でＣＰＵ２０１はアップデート部４０３として機能し、記憶部４０１からインストール済みのアプリケーション情報（Ａ）と、利用可能なＨＤＤの空き容量の情報を取得する。次にＳ８０２に進みＣＰＵ２０１はアップデート部４０３として機能し、ユーザが選択したアプリケーション（Ｂ）のマニフェストファイル６０２の情報を記憶部４０１から取得する。そして、それに含まれるＩｍｐｏｒｔ−Ｐａｃｋａｇｅの情報に基づいて、外部参照するパッケージ（Ｃ）を特定する。次にＳ８０３に進みＣＰＵ２０１はアップデート部４０３として機能し、Ｓ８０２で特定したパッケージ（Ｃ）が、Ｓ８０１で取得したアプリケーション情報（Ａ）に含まれているか否か判定する。
【００４９】
ここで含まれていると判定すると、依存関係が保たれていると判断できるためＳ８０９に進みＣＰＵ２０１はアップデート部４０３として機能し、記憶部４０１から利用可能なＨＤＤの空き容量を参照する。そして、ユーザが選択したアプリケーションが、その空き容量に収まるかどうかを判定する。具体的には、アップデート先アプリケーションのＭａｘｉｍｕｍＦｉｌｅｓｐａｃｅＵｓａｇｅの値から、アップデート元アプリケーションのＭａｘｉｍｕｍＦｉｌｅｓｐａｃｅＵｓａｇｅの値を減算し、その値が利用可能なＨＤＤの空き容量に収まるかを判定する。ここでここで収まると判定するとＳ８１０に進みＣＰＵ２０１はＵＩ制御部４０４として機能し、ユーザが選択したアプリケーションを選択状態にして、この処理を終了する。一方、そのアプリケーションが、その空き容量に収まらなければＳ８０８に進み、ＣＰＵ２０１はＵＩ制御部４０４として機能し、ＨＤＤの空き容量が不足している旨を表示するエラー表示を行って、この処理を終了する。
【００５０】
一方、Ｓ８０３で、Ｓ８０２で特定したパッケージ（Ｃ）が、Ｓ８０１で取得したアプリケーション情報（Ａ）に含まれていないときはＳ８０４に進む。Ｓ８０４でＣＰＵ２０１はアップデート部４０３として機能し、図７のＳ７０４でサーバ１０２から取得したアプリケーション情報の中に、特定したパッケージ（Ｃ）を持つ情報が含まれているかを判定する。具体的には、サーバ１０２から取得したマニフェストファイル６０２の情報において、特定したパッケージ（Ｃ）をＩｍｐｏｒｔ−Ｐａｃｋａｇｅに記載しているアプリケーションを特定する。ここで複数のバージョンがヒットする場合は、一番新しいバージョンのアプリケーション（Ｄ）を特定する。一方、Ｓ８０４で、特定したパッケージを持つ情報が含まれていなければ、選択したアプリケーションをアップデートすることで依存関係を保つことができなくなってしまうためＳ８０５に進み、ＣＰＵ２０１はＵＩ制御部４０４として機能し、エラー表示を行って、この処理を終了する。
【００５１】
Ｓ８０４でアプリケーション（Ｄ）が特定できるとＳ８０６に進む。Ｓ８０６でＣＰＵ２０１はアップデート部４０３として機能し、ユーザが選択したアプリケーション（Ｂ）と、Ｓ８０４で特定したアプリケーション（Ｄ）の両方をアップデートすると、それらがＨＤＤの空き容量に収まるか否か判定する。具体的には、アップデート予定のアプリケーションの全てに対して、アップデート先のアプリケーションのＭａｘｉｍｕｍＦｉｌｅｓｐａｃｅＵｓａｇｅの値から、アップデート元のアプリケーションのＭａｘｉｍｕｍＦｉｌｅｓｐａｃｅＵｓａｇｅの値を減算する。そして、それらの合計の値が利用可能なＨＤＤの空き容量に収まるかを判定する。Ｓ８０６でＨＤＤの空き容量に収まらないと判定するとＳ８０８に進み、ＣＰＵ２０１はＵＩ制御部４０４として機能してエラー表示して、この処理を終了する。
【００５２】
一方、Ｓ８０６でＣＰＵ２０１は、ＨＤＤ空き容量に収まると判定するとＳ８０７に進みＣＰＵ２０１はＵＩ制御部４０４として機能し、ユーザが選択したアプリケーション（Ｂ）を選択状態にする。そしてＳ８１１に進みＣＰＵ２０１は、Ｓ８０４で得したアプリケーション（Ｄ）も選択状態にする。このとき複数のアプリケーションが特定されていれば、それらを全て選択状態にする。
【００５３】
図１１は、Ｓ８１１において１つのバージョンのみがヒットした場合の例を示す。ここで、アプリＡのＶｅｒ２．０は、アプリＢのＶｅｒ２．０を参照している。しかしながら、アプリＢのＶｅｒ１．０のみがインストール済であるため、アプリＡのＶｅｒ２．０にアップデートするためには、アプリＢをＶｅｒ２．０にアップデートする必要がある。従って、この場合は、アプリＢのＶｅｒ１．１、Ｖｅｒ１．２をグレイアウトして選択不能にして、アプリＢのＶｅｒ２．０を選択状態にしている。
【００５４】
また図１２は、Ｓ８１１において複数のバージョンがヒットした場合の例を示す。アプリＡのＶｅｒ２．０は、アプリＢのＶｅｒ２．０もしくはＶｅｒ３．０を参照している。しかしながら、アプリＢのＶｅｒ１．０のみがインストール済であるため、アプリＡのＶｅｒ２．０にアップデートするためには、アプリＢをＶｅｒ２．０或いはＶｅｒ３．０にアップデートする必要がある。従って、この場合は、アプリＢのＶｅｒ１．１、Ｖｅｒ１．２をグレイアウトして選択不能にし、最新版のＶｅｒ３．０を選択状態にしている。
【００５５】
そしてＳ８１２に進みＣＰＵ２０１はアップデート部４０３として機能し、参照される側のアプリケーション、つまりアプリケーション（Ｄ）を、ユーザが選択したアプリケーション（Ｂ）より先にアップデートするようにアップデート順を定義するリストを変更して、この処理を終了する。
【００５６】
こうしてアプリケーションのアップデートが完了すると、例えば前述した図１３に示すようなアップデートの結果を表示する画面が表示される。図１３では、バージョン２．０のアプリＡと、バージョン３．０のアプリＢのアップデートが完了した旨が表示されている。
【００５７】
以上説明したように実施形態１によれば、アプリケーション間の依存関係を維持しながら、ユーザが指定したアプリケーションのアップデートを実現することができる。
【００５８】
[実施形態２]
次に本発明の実施形態２を説明する。
【００５９】
実施形態２では、利用していないと思われるアプリケーション、つまり停止状態のアプリケーションをアップデートする場合は、必ずしも参照される側を先にアップデートする必要はない。このような課題を考慮したのが実施形態２である。尚、実施形態２に係るシステム構成及び画像形成装置１０１とサーバ１０２のハードウェア構成などは前述の実施形態１と同様であるため、それらの説明を省略する。
【００６０】
図１４は、実施形態２に係る画像形成装置１０１におけるアプリケーションのアップデート処理を説明するフローチャートである。尚、このフローチャートで示す処理は、ＣＰＵ２０１がＲＡＭ２０３に展開したプログラムを実行することにより達成される。尚、この図１４のフローチャートにおいて、前述の図８と共通する処理は同じ参照番号で示し、それらの説明を省略する。
【００６１】
Ｓ１４１３でＣＰＵ２０１はアップデート部４０３として機能し、アップデートするアプリケーションが開始状態であるかどうかを判定する。ここでアップデートするアプリケーションが開始状態でなければ、Ｓ８１２をスキップして、この処理を終える。一方、アップデートするアプリケーションが開始状態であればＳ８１２に進んで、参照される側のアプリケーション、つまりアプリケーション（Ｄ）を、ユーザが選択したアプリケーション（Ｂ）より先にアップデートするようにアップデート順を定義するリストを変更して、この処理を終了する。
【００６２】
以上説明したように実施形態２によれば、アップデートするアプリケーションが停止状態であれば、参照される側のアプリケーションを先にアップデートすることなく、アップデートするアプリケーションを先にアップデートすることができる。
【００６３】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６４】
本発明は上記実施形態に制限されるものではなく、本発明の精神及び範囲から逸脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
【符号の説明】
【００６５】
１０１…画像形成装置、１０２…コンテンツ配信サーバ、１０３…ネットワーク、２０１…ＣＰＵ、２０２…ＲＯＭ、２０３…ＲＡＭ、２０４…ＨＤＤ，２０６…表示部
【図１】
2020201719.tif 000003
【図２】
2020201719.tif 000004
【図３】
2020201719.tif 000005
【図４】
2020201719.tif 000006
【図５】
2020201719.tif 000007
【図６】
2020201719.tif 000008
【図７】
2020201719.tif 000009
【図８】
2020201719.tif 000010
【図９】
2020201719.tif 000011
【図１０】
2020201719.tif 000012
【図１１】
2020201719.tif 000013
【図１２】
2020201719.tif 000014
【図１３】
2020201719.tif 000015
【図１４】
2020201719.tif 000016