JP2021184208A - 情報処理装置、情報処理方法、及びプログラム - Google Patents

情報処理装置、情報処理方法、及びプログラム Download PDF

Info

Publication number
JP2021184208A
JP2021184208A JP2020089935A JP2020089935A JP2021184208A JP 2021184208 A JP2021184208 A JP 2021184208A JP 2020089935 A JP2020089935 A JP 2020089935A JP 2020089935 A JP2020089935 A JP 2020089935A JP 2021184208 A JP2021184208 A JP 2021184208A
Authority
JP
Japan
Prior art keywords
application
information processing
candidate
processing apparatus
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020089935A
Other languages
English (en)
Inventor
極 長谷川
Kiwamu Hasegawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2020089935A priority Critical patent/JP2021184208A/ja
Publication of JP2021184208A publication Critical patent/JP2021184208A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】アプリによるコンピュータ資源の消費を抑えるために、他のアプリに対する影響が生じないように削除候補となるアプリを選択する。【解決手段】情報処理装置にインストールされるべき標準アプリケーションを示す情報を取得する。情報処理装置に格納されているアプリケーションのうち、標準アプリケーションではないアプリケーションを削除候補となる候補アプリケーションとして選択する。格納されているアプリケーションが依存するアプリケーションを示す情報を取得する。候補アプリが依存するアプリケーションに含まれていない場合に、候補アプリを情報処理装置から削除する。【選択図】図6

Description

本発明は、情報処理装置、情報処理方法、及びプログラムに関する。
ファームウェアの更新を行う際に、インストールすべきアプリケーション(アプリ)のリストに従ってアプリのインストールを行う場合がある。ファームウェアの開発者に不要と判断されたアプリの情報は、ファームウェアの更新時にリストから削除され、それ以降そのアプリのインストール処理は行われなくなる。
一方で、インストールされたアプリは、ストレージ領域やファイルディスクリプタなどのコンピュータ資源を消費する。そのようなコンピュータ資源の消費を抑えるために、不要と判断されたアプリを削除するための手法が研究されている。特許文献1に開示される技術では、最終利用日時からの経過期間が最も長いアプリから順番に削除対象として選択する手法が記載されている。
特開平10−260873号公報
しかしながら、アプリは、動作のために他のアプリが提供する機能を利用する場合がある。特許文献1に記載の手法では、削除対象とするアプリの選択にあたってアプリ間の関係が考慮されておらず、アプリの削除により他のアプリへの影響が発生してしまう可能性があるという課題があった。
本発明は、アプリによるコンピュータ資源の消費を抑えるために、他のアプリに対する影響が生じないように削除候補となるアプリを選択することを目的とする。
本発明の目的を達成するために、例えば、一実施形態に係る情報処理装置は以下の構成を備える。すなわち、前記情報処理装置にインストールされるべき標準アプリケーションを示す情報を取得する第1の取得手段と、前記情報処理装置に格納されているアプリケーションのうち、前記標準アプリケーションではないアプリケーションを削除候補となる候補アプリケーションとして選択する選択手段と、前記格納されているアプリケーションが依存するアプリケーションを示す情報を取得する第2の取得手段と、前記候補アプリが前記依存するアプリケーションに含まれていない場合に、前記候補アプリを前記情報処理装置から削除する削除手段と、を備える。
アプリによるコンピュータ資源の消費を抑えるために、他のアプリに対する影響が生じないように削除候補となるアプリを選択することができる。
実施形態1に係る情報処理装置を含むシステムの構成の一例を示す図。 実施形態1に係る画像形成装置のハードウェア構成の一例を示す図。 実施形態1に係るアプリ実行のシステム構成の一例を示す図。 実施形態1に係るアプリのプログラムファイルを説明するための図。 実施形態1に係る公開サービスと参照サービスとを説明するための図。 実施形態1に係る情報処理方法の処理の一例を示すフローチャート。 実施形態2に係るアプリ実行のシステム構成の一例を示す図。 実施形態2に係るアプリのプログラムファイルを説明するための図。 実施形態2に係る情報処理方法の処理の一例を示すフローチャート。 実施形態3に係るアプリ実行のシステム構成の一例を示す図。 実施形態3に係るアプリのプログラムファイルを説明するための図。 実施形態3に係る情報処理方法の一例を示すフローチャート。 実施形態3に係る情報処理方法の一例を示すフローチャート。 実施形態1に係る情報処理装置の機能構成の一例を示す図。 実施形態1に係る情報処理装置のハードウェア構成の一例を示す図。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
[実施形態1]
本実施形態に係る情報処理装置は、インストールされるべき標準アプリケーション(標準アプリ)を示す情報に基づいて、格納しているアプリから削除候補となる候補アプリケーション(候補アプリ)を選択する。次いで、候補アプリが、格納している他のアプリから依存される依存先アプリケーションではない場合に、その候補アプリを削除する。本実施形態においては、標準アプリとして、ファームウェアの開発者が設定する、初期状態でファームウェアに関連付けられているアプリが用いられる。また、アプリが他のアプリから依存されるとは、そのアプリの有する後述する公開サービスが他のアプリによって利用されることを示すものとする。
図1は、本実施形態に係る画像形成装置100を備えるシステムの一例を示す図である。画像形成装置100は、組み込み機器であり、後述する管理フレームワーク(FW)302によってインストール処理などのアプリの制御を行う情報処理装置である。本実施形態に係る画像形成装置100は、記録媒体上に画像を形成する複合機であるものとして説明を行うが、管理FW302によるアプリの制御が行われる装置であれば特にこれに限定されるわけではない。情報処理装置101は、例えばパーソナルコンピュータなどであり、画像形成装置100を利用すること、及び画像形成装置100上で動作するアプリを管理することができる。画像形成装置100は、ネットワーク120を介して情報処理装置101と接続されていてもよい。
以下、本実施形態に係る情報処理装置101は、ネットワークを通じて画像形成装置100上で動作するアプリを管理する、画像形成装置100とは別個の装置であるものとして説明を行うが、特にそのように限定されるわけではない。例えば、画像形成装置100と情報処理装置101とが同一の装置に含まれていてもよい。また、後述する管理FW302は、画像形成装置100が有しているものとして説明を行うが、画像形成装置100とは別個の装置内に存在していてもよく、例えば情報処理装置101が有していてもよい。
図2は、画像形成装置100のハードウェア構成の一例を示すブロック図である。図2に示される画像形成装置100は一般的な複合機と同様の構成を有するため、詳細な説明は省略する。コア部200は、スキャナ部204、プリンタ部205、及びフィニッシャー部206などの、画像形成装置100全体の動作を制御する。ユーザインターフェース201は、外部の装置から情報を取得、又は外部の装置へと情報を出力するためのインターフェースである。記憶装置202は、詳細は後述するが、インストール用ファイル置き場、インストールリスト、及びインストールアプリ領域内に情報を格納する。ネットワークインターフェース部203は、ネットワーク120への接続を行う。
スキャナ部204は、文書などの画像を読み取って画像データを生成し、コア部200を介してプリンタ部205へと入力する。プリンタ部205は、スキャナ部204が生成した画像データを画像として記録媒体上に形成し、成果物を生成する。フィニッシャー部206は、プリンタ部205が生成した成果物を、例えばホチキス留めなどでまとめる。
[アプリ制御]
まず、本実施形態に係る画像形成装置100上で行われる、アプリの制御処理について説明を行う。本実施形態においては、画像形成装置上の管理FW302が、記憶装置202に格納されているインストールリストの記載に従って標準アプリのインストール処理を行っている(後述)。
図3は、本実施形態に係る画像形成装置100においてアプリが実行されるシステム構成の一例を示すブロック図である。本実施形態においては説明のため、アプリの実行環境としてJava(登録商標)が用いられ、各アプリはJavaプログラムで記述されるものとして説明を行うが、同様の処理を行うことができるのであれば特にこれらに限定されるわけではない。なお、本実施形態においては、図3に示される構成はJavaの実行環境として一般的なものが用いられるため、詳細な説明は省略する。
実行環境301は、ユーザが画像形成装置100の電源を入れた場合に動き出し、アプリを実行可能にするために必要な管理FW302を起動する。管理FW302は、アプリのインストール又はアンインストールを管理する。また、管理FW302は、各アプリのマニフェストファイルを参照して、そのアプリが他のアプリにどのプログラムを公開するか、又は他のアプリのどのプログラムを利用するか、を判断することができる。以下、このようにアプリが他のアプリに向けて公開可能であるプログラムを公開サービスと呼び、アプリが利用する他のアプリのプログラムを参照サービスと呼ぶものとして説明を行う。
アプリ310、アプリ311、及びアプリ312は、画像形成装置100上で動作するアプリである。本実施形態に係るアプリには、公開サービスを有するものと、他のアプリが有する公開サービスを参照サービスとして呼び出して利用するものと、が存在する。アプリ310及びアプリ312は同じ公開サービスを有し、アプリ311はアプリ310及び312が有する公開サービスを参照サービスとして利用する。以下、他のアプリが有する公開サービスを参照サービスとして利用することを、単に「利用する」と呼ぶものとする。本実施形態においては、画像形成装置100上で上述の3つのアプリが動作するものとして説明を行うが、特にこれらのアプリに限定されるわけではなく、アプリの数も3つには限定されない。例えば、2種類以上の公開サービス又は参照サービスを有するアプリが動作していてもよく、公開サービスも参照サービスも有さないアプリが動作していてもよい。また、アプリ310〜312は、それぞれを識別するためのApp−IDとしてAppA、AppB、及びAppCを有する。
クラスローダ群331は、管理FW302のプログラムの一部であり、各アプリのプログラムをロードするクラスローダを含む。本実施形態においては、クラスローダ群331は、画像形成装置上で動作するアプリ(310〜312)それぞれに対応するクラスローダ(3310〜3312)を含んでいる。実行環境301においては、記憶装置202に格納されたプログラムファイルがメモリ内に読み込まれることにより、プログラムが実行される。プログラムファイルとしては、各プログラムをクラス単位で記載したクラスファイルが用いられてもよい。また、複数のクラスファイルを1つのJarファイルとして含むものがプログラムファイルとして用いられてもよい。本実施形態においては、Jarファイルに含まれるクラスファイルをメモリ内に読み込むことを指して、クラス(プログラム)をロードすると呼ぶ。Jarファイルは、アプリのプログラムファイル及びマニフェストファイルなどを有している。本実施形態においては、クラスローダが対応するアプリのクラスファイルをロードすることにより、実行環境301上でアプリが動作する。
クラスローダは、Jarファイル又はプログラムを読み込むために、コンピュータ資源であるファイルディスクリプタを消費する。クラスローダは、クラスをロードしている間はファイルディスクリプタを消費し続ける。本実施形態に係るシステムにおいては、管理FW302がプログラムファイルの削除指示を出した場合であっても、そのプログラムに対応するファイルディスクリプタが消費されている間はプログラムの削除が行われない。また、ライブラリ340は、アプリが画像形成装置100の様々な機能を利用するために用いられるサポートライブラリである。
図4は、記憶装置202に格納されている各ファイルを説明するための図である。図4(a)は、記憶装置202に格納されている各ファイルのイメージ図の一例を示している。記憶装置202は、インストール用ファイル置き場、インストールリスト(後述する410及び502)、並びにインストールアプリ領域を有している。インストール用ファイル置き場は、管理FW302にアプリのインストール指示を行う際に必要となるアプリのJarファイルを格納している。インストールアプリ領域は、過去にインストール済みのアプリ(すなわち、実行環境301上で動作するアプリ)を格納している。管理FW302は、アプリのインストール処理の際に、そのアプリ用のディレクトリをインストールアプリ領域内に作成し、そこにアプリのJarファイル内にあるプログラムファイルとマニフェストファイルとを展開する。管理FW302は、インストール済みのアプリのマニフェストファイルを参照する場合にも、インストールアプリ領域内の情報を参照することができる。一方で、管理FW302は、インストール前のアプリのマニフェストファイルを参照する際は、インストール用ファイル置き場のJarファイルからマニフェストファイルの情報を取得してもよい。
図4(b)は、各アプリのマニフェストファイルを模式的に表した図の一例である。図4(b)の例では、マニフェスト401〜403はそれぞれアプリ310〜312のマニフェストファイルである。マニフェスト401は、管理FW302がアプリを識別するための”App−ID”、及びアプリのバージョンを識別するための”Version”の各項目を格納する。マニフェスト401内では、”App−ID”の項目には”AppA”の値が格納され、”Version”の項目には”1.0.0”の値が格納されている。
また、マニフェスト401は、アプリ310が公開する公開サービスを示す”Export−Package”、及び参照サービスを示す”Import−Package”の各項目も格納する。アプリが公開サービスを有さない場合には”Export−Package”の項目は空欄となり、アプリが呼び出す参照サービスがない場合には”Import−Package”の項目が空欄となる。マニフェスト401内では、”Export−Package”の項目に、プログラム名である”org.service.OpenService”が値として格納され、”Import−Package”の項目は空欄となっている。なお、このように格納される値は対応するプログラムを指定できるのであればプログラム名に限定されるわけではなく、例えばワイルドカード*を用いた”org.service.*”のように名前空間を指定する値であってもよい。
さらに、マニフェスト401は、管理FW302がアプリを実行する際に呼び出す”Activator”を指定する項目を格納する。また、マニフェスト401は、クラスローダがアプリのプログラムをロードするために必要なプログラムファイルを検索する場所を指定する”ClassPath”の項目も格納する。本実施形態においては、クラスローダは、”ClassPath”に記載された範囲でプログラムファイルを検索し、プログラムファイルが見つかった場合にロードを行ってもよい。マニフェスト401内では、”Activator”の項目には”AppAAct”の値が格納され、”ClassPath”の項目には”AppA”の値が格納されている。
なお、マニフェスト402及び403もマニフェスト401と同様の項目を格納し、各項目にそれぞれAppB及びAppCに対応する情報を格納する。上述したようにアプリ310とアプリ312とは同様の公開サービスを有するため、マニフェスト403内の項目”Export−Package”には”org.service.OpenService”が値として格納されている。また、マニフェスト402内の項目”Import−Package”には”org.service.OpenService”が値として格納されている。
図4(c)は、インストールリストの一例を示す図である。インストールリストは、標準アプリのApp−IDを予めリストとして記載している。管理FW302は、インストールリストに記載されたApp−IDに対応する標準アプリをインストールする。本実施形態においては、管理FW302は、ファームウェアの更新後の起動処理時にインストールリストを参照し、記載されているアプリをインストールする。インストールリスト410においては、アプリ310とアプリ311とに対応するApp−IDが記載されている。
図5は、インストールリストと、インストール済みアプリの公開サービス及び参照サービスと、を説明するための模式図の一例である。図5(a)はファームウェアの更新前の情報を示す図であり、図5(b)は更新後の情報を示す図である。インストールリスト410は図4(c)に示されたものと同じであり、インストール済みアプリを示す表501にはAppAとAppBとについての情報(ここでは、公開サービスと参照サービスとの情報)が記載されている。
以下、インストールリスト410を参照して管理FW302が標準アプリのインストールを行う例について説明を行う。管理FW302は、インストールリスト410にAppAとAppBとが記載されているため、これらをApp−IDとして有するアプリがインストール用ファイル置き場に存在するかどうかを確認する。この場合では、インストール用ファイル置き場にAppAであるアプリ310とAppBであるアプリ311とのJarファイルが存在するため、管理FW302はこれらのアプリをインストールする。結果として、アプリ310とアプリ311とがインストール済みとなるため、表501にはこれらのアプリがインストール済みアプリとして列挙されている。そのために、例えば、画像形成装置100に初めからインストールしておくべき標準アプリに関しては、インストール用ファイル置き場に予め対応するJarファイルを格納させておいてもよい。本実施形態においては、管理FW302は、画像形成装置100の初回起動時にJarファイルを利用して標準アプリのインストール処理を行う。
次いで、ファームウェアの更新を行った後の画像形成装置100の起動処理において、インストールリスト502を参照して管理FW302が標準アプリのインストールを行う例について説明を行う。インストールリスト502は、ファームウェアの更新を行った後のインストールリストであり、アプリ310とアプリ311とに加えてアプリ312に対応するApp−ID(AppC)が記載されている。ここでは、インストール用ファイル置き場にアプリ312のJarファイルが格納されているものとする。管理FW302は、インストールリストを確認し、インストールされていないアプリが記載されている場合はそのアプリのインストールを行う。図5(b)の例では、管理FW302は、インストールリスト510からAppAとAppBとの記載を確認するが、これらのアプリは既にインストール済みであるため、インストール処理を行わない。一方で、AppCのインストールは行われていないため、管理FW302はAppCに対応するアプリ312のインストール処理を行う。表503には、アプリ310とアプリ311とに加えてアプリ312がインストール済みアプリとして列挙されている。また、管理FW302は、インストール済みアプリのJarファイルを確認し、バージョンが増えている場合にアプリのアップデートを行ってもよい。
[管理FW302]
上述のように、画像形成装置100は、インストールされるべき標準アプリを示す情報に基づいて、格納しているアプリから候補アプリを選択し、候補アプリが格納している他のアプリから依存されていない場合に、その候補アプリを削除する。すなわち、上述のようなインストールリストから記載が削除されたアプリを削除候補となる候補アプリとして選択し、候補アプリを削除するべきか否かの判定を行う。以下においては、画像形成装置100が有する管理FW302が行う処理についての説明を図10及び図6を参照して行う。
図10は、本実施形態に係る管理FW302の機能構成の一例を示すブロック図である。管理FW302は、取得部1101、選択部1102、判定部1103、削除部1104、及び登録部1105を有する。
取得部1101は、記憶装置202に格納されている(インストール済み)アプリを示す情報を取得する。本実施形態においては、取得部1101は、インストール済みアプリを示す情報として、インストールアプリ領域に含まれる各アプリのマニフェストファイルからApp−IDを取得する。なお、取得部1101は、インストール済みアプリを示す情報として取得したものから、ユーザ指示で後入れした追加アプリケーション(追加アプリ)の情報を除いてもよい。取得部1101は、例えば、各アプリのマニフェストファイルに記載されている追加アプリか否かを示す属性を参照し、追加アプリではないアプリ(すなわち、標準アプリ)それぞれについてインストール済みアプリを示す情報を取得することができる。また例えば、取得部1101は、追加アプリのインストールを行う際にそのアプリにフラグをセットしておくことにより各アプリが追加アプリか否かの判断を行ってもよく、その判断方法は限定されない。なお、以下、標準アプリと追加アプリとの区別が必要ない場合には、単に「アプリ」と呼ぶものとする。
また、取得部1101は、標準アプリを示す情報を取得する。本実施形態においては、取得部1101は、標準アプリを示す情報として、インストールリストに記載されている各アプリのApp−IDを取得する。
なお、取得部1101による情報の取得処理は、ユーザ所望のタイミングで行われてもよいが、本実施形態においては画像形成装置100のファームウェアの更新を行った後の起動処理の、標準アプリのインストールが完了した後に行われるものとして説明を行う。
選択部1102は、取得部1101が取得した情報に基づいて、記憶装置202に格納されているアプリから削除候補となる候補アプリを選択する。本実施形態においては、選択部1102は、インストール済みアプリのApp−IDから、標準アプリのApp−IDと重複していないものを候補アプリとして選択する。
判定部1103は、インストールアプリ領域に含まれる各アプリのマニフェストファイルに基づいて、候補アプリが、記憶装置202に格納されている他のアプリから依存されているかどうかを判定する。そのために、判定部1103は、各アプリのマニフェストファイルを参照し、候補アプリの項目”Export−Package”と、他のアプリの項目”Import−Package”とに格納されている値を取得する。次いで、”Export−Package”に示される公開サービスを”Import−Package”に示される参照サービスとして呼び出すアプリがあるか否かを判定することにより、上述の判定を行う。
削除部1104は、候補アプリが他のアプリから依存されていない場合に、その候補アプリを記憶装置202から削除する。登録部1105は、インストール済みのアプリごとにクラスローダを生成し、クラスローダに対応するアプリのクラスファイルをロードする場所を指定する情報を登録する。本実施形態においては、登録部1105は、クラスローダごとにClassPathの情報を登録する。このような処理によれば、無用なクラスローダの生成が行われないため、削除されるクラスがロードされることもなくなり、ファイルディスクリプタが消費される又はされ続けることもなくなる。
なお、削除部1104は、候補アプリの公開サービスを利用するアプリが存在する場合であっても、共通する公開サービスを有するアプリが他に存在する場合には、その候補アプリを削除してもよい。例えば、図5(a)の表501に示されるようなアプリのインストール状況では、AppAが候補アプリとなった場合に、AppAの公開サービスがAppBの参照サービスとして指定されているため、AppAの削除は行われない。一方で、図5(b)に示されるようなアプリのインストール状況では、AppAが候補アプリとなった場合に、AppAの公開サービスと同じプログラムをAppCも公開しているため、AppBはAppCの公開サービスを利用することができる。したがって、AppAが削除されたとしてもAppBに影響を与えることがないため、削除部1104はAppAの削除を行うことができる。
本実施形態においては、例えば図11に示される各処理部は、専用のハードウェアによって実現される。しかしながら、管理FW302の有する一部又は全部の処理部が、コンピュータにより実現されてもよい。本実施形態では、上述の各実施形態に係る処理の少なくとも一部がコンピュータにより実行される。
図12はコンピュータの基本構成を示す図である。図12においてプロセッサ1201は、例えばCPUであり、コンピュータ全体の動作をコントロールする。メモリ1202は、例えばRAMであり、プログラム及びデータ等を一時的に記憶する。コンピュータが読み取り可能な記憶媒体1203は、例えばハードディスク又はCD−ROM等であり、プログラム及びデータ等を長期的に記憶する。本実施形態においては、記憶媒体1203が格納している、各部の機能を実現するプログラムが、メモリ1202へと読み出される。そして、プロセッサ1201が、メモリ1202上のプログラムに従って動作することにより、各部の機能が実現される。
図12において、入力インターフェース1204は外部の装置から情報を取得するためのインターフェースである。また、出力インターフェース1205は外部の装置へと情報を出力するためのインターフェースである。バス1206は、上述の各部を接続し、データのやりとりを可能とする。
以下、画像形成装置100のファームウェアの更新を行った後の起動時に行われる、標準アプリをインストールした後の処理を説明する。図6は、標準アプリのインストール処理を完了した管理FW302が行う処理の一例を示すフローチャートである。ステップS601で取得部1101は、インストールアプリ領域に含まれる各アプリのマニフェストファイルからApp−IDを取得する。ステップS602で取得部1101は、標準アプリを示す情報として、インストールリストに記載されている各アプリのApp−IDを取得する。ステップS603で選択部1102は、ステップS601及びステップS602で取得したApp−IDに基づいて、候補アプリが存在するかどうかを判定する。候補アプリが存在する場合には処理はステップS604へと進み、そうでない場合には処理はステップS610へと進む。
ステップS604で判定部1103は、インストールアプリ領域に含まれる候補アプリのマニフェストファイルを参照し、項目”Export−Package”の値を取得する。ステップS605で判定部1103は、ステップS604で参照した項目が空欄でなかったかどうか、つまりその候補アプリが公開サービスを有しているかどうかを判定する。公開サービスを有している場合には処理はステップS606へと進み、そうでない場合には処理はステップS609へと進む。
ステップS606で判定部1103は、インストールアプリ領域に含まれる、候補アプリを除いたアプリのマニフェストファイルを参照し、各アプリの項目”Import−Package”の値を取得する。ステップS607で判定部1103は、ステップS606で取得した値から、ステップS604で取得した値と重複する値が存在するか否かを判定する。つまり、判定部1103は、候補アプリが有する公開サービスを利用するアプリが存在するか否かを判定する。存在する場合には処理はステップS608へと進み、そうでない場合は処理はステップS609へと進む。
ステップS608で判定部1103は、他のアプリから利用される候補アプリが有する公開サービスと同じ公開サービスを有する他のアプリが、インストールアプリ領域に存在していないか否かを判定する。存在していない場合は処理はステップS610へと進み、そうでない場合は処理はステップS609へと進む。
ステップS609で削除部1104は、候補アプリのアンインストール処理を行う。削除部1104は、インストールアプリ領域から候補アプリの情報を削除することにより、候補アプリのアンインストール処理を行うことができる。アンインストール処理の後、処理はステップS610へと進む。ステップS610で登録部1105は、インストールアプリ領域に記載されているアプリごとにクラスローダを生成して各クラスローダに対応するアプリのClassPath情報を登録し、処理を終了する。
このような処理によれば、インストールリストには存在しないがインストール済みである候補アプリを、その候補アプリが他のアプリによって利用されていない場合に削除することができる。したがって、ストレージ領域などのコンピュータ資源の消費を抑えることができる。
[実施形態2]
実施形態1に係る画像形成装置は、インストールされているアプリの状況に応じて候補アプリを選択してアンインストールするか否かの判定処理を行った。しかしながら、例えば、ユーザ指示によって追加アプリがアンインストールされた際に、候補アプリの公開サービスを利用するアプリが存在しなくなる場合がある。そのような場合、公開サービスを利用するアプリが存在しなくなった候補アプリを削除しても他のアプリの動作には影響が出ないため、候補アプリの削除によってコンピュータ資源の消費を抑えることができるようになる。そのような観点から、実施形態2に係る画像形成装置は、追加アプリのアンインストールによって候補アプリの公開サービスを利用するアプリがなくなった場合に、その候補アプリのアンインストール処理を行う。なお、本実施形態に係る画像形成装置及び情報処理装置は、図1、2、及び図10に示されるものと基本的には同様の構成を有するため、重複する説明は省略する。
図7(a)は、本実施形態に係る画像形成装置においてアプリが実行されるシステム構成の一例を示すブロック図である。図7(a)に示されるシステム構成は、アプリ311及びアプリ312の代わりにアプリ701(AppX)が実行されることを除いて図3と同様の構成を有するため、重複する説明は省略する。アプリ701は追加アプリであり、詳細な説明は後述する。
図7(b)は、アプリ701のマニフェストファイルを模式的に表した図の一例である。マニフェスト702は、実施形態1におけるマニフェスト401〜403と同様の項目を格納し、項目”Import−Package”に”org.service.OpenService”の値を格納している。
図7(c)は、インストールリストの一例を示す図である。本実施形態においては元々インストールリストにアプリ310が記載されており、アプリ310とアプリ701とのインストール処理がなされた後に、インストールリストからアプリ310の記載が削除されている。インストールリスト703においては、元々はアプリ310に対応するApp−IDであるAppAが記載されていたが、ファームウェアの更新によりその記載は削除されている。また、インストール済みアプリを示す表704にはAppAとAppXについての情報が記載されている。
図8(a)は、本実施形態に係る画像形成装置が行う処理の一例を示すフローチャートである。図8(a)に示される処理は、ステップS608に後続するステップS801を有することを除き図6に示されるものと同様の処理を行うため、重複する説明は省略する。ステップS801で登録部1105は、候補アプリが有する公開サービスを利用する記憶装置202内のアプリを識別する情報を記憶し、処理をステップS610へと進める。
本実施形態に係る画像形成装置は、追加アプリのアンインストール処理が行われた場合に、その追加アプリが利用する公開サービスを有する候補アプリを削除することができる。図8(b)は、追加アプリをアンインストールした場合に行われる、本実施形態に係る画像形成装置が有する管理FW302による処理の一例を示すフローチャートである。ステップS802で管理FW302は、アンインストールされた追加アプリが、ステップS801で情報を記録されたアプリであるかどうかを判定する。記録されている場合には処理はステップS803へと進み、そうでない場合は処理が終了する。
ステップS803で管理FW302は、アンインストールした追加アプリと共通の参照サービスを呼び出すアプリが記憶装置202内に存在していないかどうかを判定する。管理FW302は、例えば、アンインストールした追加アプリと共通の参照サービスを呼び出すアプリが全てアンインストールされているかどうかを確認することにより、ステップS803における判定を行ってもよい。存在していない場合には処理はステップS803へと進み、そうでない場合は処理が終了する。
ステップS804で管理FW302は、アンインストールした追加アプリが利用するプログラムを公開サービスとしているアプリを削除し、処理を終了する。図7の例においては、アンインストールしたアプリ701による参照サービスをアプリ310が公開サービスとして有しており、アプリ310のアンインストール処理が行われる。
このような処理によれば、追加アプリのアンインストール処理の結果として公開サービスを利用するアプリがなくなった候補アプリが存在する場合に、その候補アプリを削除することができる。したがって、ストレージ領域などのコンピュータ資源の消費を抑えることができる。
[実施形態3]
画像形成装置100の起動処理後に追加アプリをインストールした場合に、インストールしたアプリが候補アプリと同一の公開サービスを有している場合がある。そのような場合には、候補アプリを削除しても他のアプリの動作に影響を及ぼすことがないため、候補アプリの削除によってコンピュータ資源の消費を抑えることができる。本実施形態に係る画像形成装置は、追加アプリの有する公開サービスを特定し、特定した公開サービスが候補アプリの有する公開サービスと同一である場合に、その候補アプリを削除する。以下、そのように同一となる公開サービスを指して、共通サービスと呼ぶものとする。なお、本実施形態に係る画像形成装置及び情報処理装置は、図1、2、及び図10に示されるものと基本的には同様の構成を有するため、重複する説明は省略する。
図9(a)は、本実施形態に係る画像形成装置においてアプリが実行されるシステム構成の一例を示すブロック図である。図9(a)に示されるシステム構成は、アプリ312の代わりにアプリ901(AppY)が実行されることを除いて図3と同様の構成を有するため、重複する説明は省略する。アプリ901は追加アプリであり、詳細な説明は後述する。
図9(b)は、アプリ901のマニフェストファイルを模式的に表した図の一例である。マニフェスト902は、実施形態1におけるマニフェスト401〜403と同様の項目を格納し、項目”Export−Package”に”org.service.OpenService”の値を格納している。
図9(c)は、インストールリストの一例を示す図である。本実施形態においては元々インストールリストにアプリ310とアプリ311とが記載されていたが、ファームウェアの更新によりアプリ310の記載が削除されている。インストールリスト903においては、元々はアプリ310とアプリ311とに対応するApp−IDであるAppAとAppBとが記載されていたが、ファームウェアの更新によりAppAの記載は削除されている。また、インストール済みアプリを表す表904にはAppAとAppBとについての情報が記載されている。
図10(a)は、本実施形態に係る画像形成装置が有する管理FW302が行う処理の一例を示すフローチャートである。図10(a)に示される処理は、ステップS608に後続するステップS1008を有することを除き図6に示されるものと同様の処理を行うため、重複する説明は省略する。ステップS1008で登録部1105は、候補アプリが有する公開サービスの情報を記憶装置202に格納し、処理をステップS610へと進める。
本実施形態に係る画像形成装置は、追加アプリのインストール処理が行われた場合に、その追加アプリと同一の公開サービスを有する候補アプリを削除することができる。図10(b)は、追加アプリをインストールした場合に行われる、本実施形態に係る画像形成装置が有する管理FW302による処理の一例を示すフローチャートである。ステップS1002で管理FW302は、インストールした追加アプリの有する公開サービスが、ステップS1001で情報を格納した公開サービスであるかどうか、すなわち共通サービスであるかどうかを判定する。そうである場合には処理がステップS1003へと進み、そうでない場合は処理は終了する。
ステップS1003で管理FW302は、インストールアプリ領域を参照して、インストール済みアプリそれぞれの参照サービスを示す情報を取得する。ステップS1004で管理FW302は、共通サービスを利用するアプリの動作を停止する。ステップS1004の処理は、共通サービスを利用するアプリの数だけ繰り返される。
ステップS1005で管理FW302は、公開サービスとして共通サービスを有する候補アプリのアンインストール処理を行う。管理FW302は、インストールアプリ領域から候補アプリの情報を削除することにより、候補アプリのアンインストール処理を行うことができる。ステップS1006で管理FW302は、ステップS1004で動作を停止させた、共通サービスを利用するアプリの動作を再開させる。ステップS1006の処理は、共通サービスを利用するアプリの数だけ繰り返され、完了した時点で処理を終了する。図9に示される例においては、アプリ310とアプリ901とが共通サービスを有するため、アプリ310のアンインストール処理が行われる。
このような処理によれば、追加アプリのインストール処理の結果として共通サービスを有する候補アプリが発生した場合に、その候補アプリを削除することができる。したがって、ストレージ領域などのコンピュータ資源の消費を抑えることができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
1101:取得部、1102:選択部、1103:判定部、1104:削除部、1105:登録部

Claims (18)

  1. 情報処理装置であって、
    前記情報処理装置にインストールされるべき標準アプリケーションを示す第1の情報を取得する第1の取得手段と、
    前記第1の情報に基づいて、前記情報処理装置に格納されているアプリケーションのうち、前記標準アプリケーションではないアプリケーションを、削除候補となる候補アプリケーションとして選択する選択手段と、
    前記情報処理装置に格納されているアプリケーションが依存する依存先アプリケーションを示す第2の情報を取得する第2の取得手段と、
    前記候補アプリケーションが前記依存先アプリケーションに含まれていない場合に、前記候補アプリケーションを前記情報処理装置から削除する削除手段と、
    を備える、情報処理装置。
  2. 前記アプリケーションは、他のアプリケーションに利用させるためにプログラムを公開可能であり、
    前記依存先アプリケーションは、他のアプリケーションが利用しているプログラムを公開していることを特徴とする、請求項1に記載の情報処理装置。
  3. 前記第1の情報は、前記情報処理装置のファームウェアに関連付けられていることを特徴とする、請求項1又は2に記載の情報処理装置。
  4. 前記選択手段は、前記ファームウェアの更新に応じて前記候補アプリケーションを選択することを特徴とする、請求項3に記載の情報処理装置。
  5. 前記選択手段は、過去に標準アプリケーションとしてインストールされたアプリケーションを前記候補アプリケーションとして選択することを特徴とする、請求項1乃至4の何れか一項に記載の情報処理装置。
  6. 前記削除手段は、前記候補アプリケーションに依存するアプリケーションが全て削除された場合に、前記候補アプリケーションを削除することを特徴とする、請求項1乃至5の何れか一項に記載の情報処理装置。
  7. 前記削除手段は、ユーザ指示によって前記情報処理装置からアプリケーションが削除されたことに応じて、前記候補アプリケーションに依存するアプリケーションが全て削除されているかどうかを判定し、前記候補アプリケーションに依存するアプリケーションが全て削除されている場合に、前記候補アプリケーションを削除することを特徴とする、請求項6に記載の情報処理装置。
  8. 前記削除手段は、前記候補アプリケーションが前記依存先アプリケーションであると判定した場合、前記候補アプリケーションに依存するアプリケーションを識別する情報を記録し、前記候補アプリケーションに依存するアプリケーションが削除されたことに応じて、前記候補アプリケーションを削除することを特徴とする、請求項1乃至7の何れか一項に記載の情報処理装置。
  9. 前記削除手段は、前記候補アプリケーションに依存するアプリケーションが依存できるアプリケーションがインストールされた場合に、前記候補アプリケーションを削除することを特徴とする、請求項1乃至8の何れか一項に記載の情報処理装置。
  10. 前記削除手段は、新しいアプリケーションがインストールされたことに応じて、前記情報処理装置に格納されているアプリケーションが前記候補アプリケーションの代わりに新しいアプリケーションに依存できるかどうかを判定し、前記情報処理装置に格納されているアプリケーションが前記新しいアプリケーションに依存できる場合に、前記候補アプリケーションを削除することを特徴とする、請求項1乃至8の何れか一項に記載の情報処理装置。
  11. 前記削除手段は、
    前記候補アプリケーションが前記依存先アプリケーションであると判定した場合、前記候補アプリケーションが公開し、前記情報処理装置に格納されているアプリケーションが利用しているプログラムを特定する情報を記録し、
    前記新しいアプリケーションが前記記録されたプログラムを公開している場合に、前記情報処理装置に格納されているアプリケーションが前記新しいアプリケーションに依存できると判定することを特徴とする、請求項10に記載の情報処理装置。
  12. 前記情報処理装置に格納されているアプリケーションが他のアプリケーションに利用させるために公開するプログラムを示す情報と、前記情報処理装置に格納されているアプリケーションが利用する、他のアプリケーションが公開するプログラムを示す情報と、を取得する第3の取得手段をさらに備え、
    前記第2の取得手段は、前記第3の取得手段が取得する情報に基づいて、前記依存先アプリケーションを示す情報を取得することを特徴とする、請求項1乃至11の何れか一項に記載の情報処理装置。
  13. 前記削除手段は、前記候補アプリケーションが前記依存先アプリケーションであっても、前記候補アプリケーションが他のアプリケーションに利用させるために公開するプログラムと同一のプログラムを公開する、前記情報処理装置に格納されているアプリケーションが存在する場合に、前記候補アプリケーションを削除することを特徴とする、請求項1乃至12の何れか一項に記載の情報処理装置。
  14. 前記候補アプリケーションを前記情報処理装置から削除した後に、前記情報処理装置に格納されているアプリケーションを実行する際に読み込むプログラムの場所を示す情報を登録する登録手段をさらに備えることを特徴とする、請求項1乃至13の何れか一項に記載の情報処理装置。
  15. 前記情報処理装置に格納されているアプリケーションは、Java(登録商標)環境で動作するアプリケーションであることを特徴とする、請求項1乃至14の何れか一項に記載の情報処理装置。
  16. 前記情報処理装置は組み込み機器であることを特徴とする、請求項1乃至15の何れか一項に記載の情報処理装置。
  17. 情報処理装置が行う情報処理方法であって、
    前記情報処理装置にインストールされるべき標準アプリケーションを示す情報を取得する工程と、
    前記情報処理装置に格納されているアプリケーションのうち、前記標準アプリケーションではないアプリケーションを削除候補となる候補アプリケーションとして選択する工程と、
    前記情報処理装置に格納されているアプリケーションが依存するアプリケーションを示す情報を取得する工程と、
    前記候補アプリケーションが前記依存するアプリケーションに含まれていない場合に、前記候補アプリケーションを前記情報処理装置から削除する工程と、
    を備える、情報処理方法。
  18. コンピュータを、請求項1乃至16の何れか一項に記載の情報処理装置の各手段として機能させるためのプログラム。
JP2020089935A 2020-05-22 2020-05-22 情報処理装置、情報処理方法、及びプログラム Pending JP2021184208A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020089935A JP2021184208A (ja) 2020-05-22 2020-05-22 情報処理装置、情報処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020089935A JP2021184208A (ja) 2020-05-22 2020-05-22 情報処理装置、情報処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2021184208A true JP2021184208A (ja) 2021-12-02

Family

ID=78767367

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020089935A Pending JP2021184208A (ja) 2020-05-22 2020-05-22 情報処理装置、情報処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP2021184208A (ja)

Similar Documents

Publication Publication Date Title
US10853047B2 (en) Method for virtualizing software applications
JP7090657B2 (ja) アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体
JP5294892B2 (ja) 画像形成装置、装置、制御方法、及びプログラム
RU2446450C2 (ru) Преобразование машин в виртуальные машины
US8135813B2 (en) Method, system and program product for remotely deploying and automatically customizing workstation images
JP5663006B2 (ja) ランタイム環境を構築するためのシステムおよび方法
JP2011076605A (ja) 仮想マシン・イメージの実行方法及びシステム
KR20070049166A (ko) 목표 기기 상에서의 종속 소프트웨어 패키지의 검출 및이용을 자동화하기 위한 방법 및 소프트웨어 리포지터리를생성하기 위한 시스템
CN103677937A (zh) 升级软件和运行软件的方法及装置
JP7102524B2 (ja) 複数のバイナリイメージのファームウェア公開
JP4402889B2 (ja) ソフトウェアのバージョンアッププログラム、およびバージョンアップ方法
US10169022B2 (en) Information processing apparatus and resource management method
CN115357257B (zh) 一种安装文件生成方法、系统、计算设备及存储介质
JP2021184208A (ja) 情報処理装置、情報処理方法、及びプログラム
JP6103978B2 (ja) 配信装置、デバイス装置、配信装置の制御方法およびコンピュータプログラム
US9753775B2 (en) Resource management apparatus and resource management method
US9940334B2 (en) Image forming apparatus and control method thereof
CN109189551A (zh) 一种创建中间件的方法、装置及计算机存储介质
US9628335B2 (en) Building and transporting centrally modified software systems
JP6929160B2 (ja) 画像形成装置およびその制御方法とプログラム
JP6700848B2 (ja) 管理システム、制御方法
CN110825417A (zh) 应用程序更新方法及系统
JP2020119234A (ja) 管理サーバ、ブートサーバ、ネットワークブートシステム、ネットワークブート方法、プログラム
JP2005050314A (ja) アプリケーションソフトウェアストリーミングのためのアプリケーションソフトウェア再パッケージシステム、及びその方法
JP2021189487A (ja) 管理装置およびその制御方法

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113