JP6873772B2 - 情報処理装置、情報処理装置の制御方法及びアプリケーション管理方法 - Google Patents

情報処理装置、情報処理装置の制御方法及びアプリケーション管理方法 Download PDF

Info

Publication number
JP6873772B2
JP6873772B2 JP2017058461A JP2017058461A JP6873772B2 JP 6873772 B2 JP6873772 B2 JP 6873772B2 JP 2017058461 A JP2017058461 A JP 2017058461A JP 2017058461 A JP2017058461 A JP 2017058461A JP 6873772 B2 JP6873772 B2 JP 6873772B2
Authority
JP
Japan
Prior art keywords
application
information processing
processing device
time
determination means
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.)
Active
Application number
JP2017058461A
Other languages
English (en)
Other versions
JP2018160215A (ja
Inventor
健 垂水
健 垂水
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 JP2017058461A priority Critical patent/JP6873772B2/ja
Priority to US15/927,316 priority patent/US20180276033A1/en
Publication of JP2018160215A publication Critical patent/JP2018160215A/ja
Application granted granted Critical
Publication of JP6873772B2 publication Critical patent/JP6873772B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Facsimiles In General (AREA)

Description

本発明は、情報処理装置に、組み込みアプリケーションが複数インストールされ、それらが実行される実行環境における複数のアプリケーションの状態を管理する情報処理装置、情報処理装置の制御方法、及びアプリケーション管理方法に関する。
情報機器には、アプリケーションがすでに中に複数組み込まれているものがある。これらの情報機器の組み込みアプリケーションの実行環境においては、一般的に、これら複数のアプリケーションが使用できるリソースの総量に制限がある。これは、情報機器自体のリソースの量に依存しており、組み込みアプリケーションの実行環境において、アプリケーションが立ち上がると、それにともなって、情報機器内のメモリーなどのリソースが消費されていくからである。
例えば、Java(登録商標)で作られたUIアプリケーションでは、UIの表示時にオブジェクトの参照が行われ、メモリーが使用される。オブジェクトの参照によって使用されたメモリー領域は、UIアプリケーションによるオブジェクトの参照が切れた後は、ガベージコレクションなどの仕組みにより回収される。しかし、オブジェクトの参照が切れられないと、アプリケーションによって確保されたメモリー領域は解放されず、抱え込まれたままとなる。
近年アプリケーションを組み込んだ情報機器の機能拡張は、アプリケーションの機能拡張を伴うことが多く、各アプリケーションの拡大の一途をたどっている。このままアプリケーションの拡大化が続くと、アプリケーションによって確保されたまま開放されないメモリー領域も増大化していく可能性がある。
使用可能なリソースが限られる組み込みアプリケーションの実行環境においても、アプリケーションが複数起動する場合が想定される。このような環境で、アプリケーションが複数起動する場合は、アプリケーションの起動を管理するために、アプリケーションの管理手段により不要なアプリケーションを終了させ、メモリー領域などのリソースを開放する手段が必要となってくる。
例えば、スマートフォン等においてもアプリケーションを複数起動する場合が想定されているが、この場合には、ユーザがアプリケーションを終了させるための手段が提供されるのが一般的である。これは、使用するユーザが特定の個人として限定可能であるがゆえに可能なことである。
一方、画像形成装置のような複数のユーザがアクセスするような情報処理装置では、各ユーザに自由にアプリケーションを終了させるような手段を与えると、他のユーザの使用状況に関係なくユーザがアプリケーションを終了できてしまうという課題が生じる。
また、スマートフォンにおいては、アプリケーションの動作を監視して、正常な挙動でなくなった場合には、アプリケーションを再起動することにより、安定的な稼働を実現する技術があった(特許文献1)。
しかしながら、複数のユーザが使用する組み込みUIアプリケーションにおいては、UIアプリケーションを終了させる、又は再起動させるための手段がなかった。そのため、参照しているオブジェクトへの参照を切断することもできず、リソースを抱え込み続けるといった課題があった。
特許5729767号広報
本発明は、情報処理装置のユーザビリティを損なうことなく、装置内のリソースの消費を少なくするための手段を提供することを目的とする。
本発明は、複数の動作するアプリケーションを管理する情報処理装置であって、UIアプリケーションの起動を検知する検知手段と、前記UIアプリケーションが、クリア実行通知を、受信可能か否かを判定する第1の判定手段と、前記UIアプリケーションの画面が遷移した場合に、前記UIアプリケーションがクリア実行を拒否する宣言を行っているいか否かを判定する第2の判定手段と、前記第2の判断手段によって、前記UIアプリケーションがクリア実行を拒否する宣言を行っていないと判定した場合に、前記UIアプリケーションの再起動処理を行うアプリケーション処理手段とを、有することを特徴とする。
本発明により、アプリケーションを削除することなく、情報処理装置の内部リソースの消費を少なくするようアプリケーションを管理することが可能となる。
また、情報処理装置のユーザビリティを損なうことなく、アプリケーションが抱え続けるリソースを解放対象とし、リソースを回収することが可能となる。
本発明の全体構成を示す図である。 本発明の画像形成装置のハードウェア構成を示す図である。 本発明の実施例のアプリケーションの実行環境の構成を示す図 本発明の実施例のアプリケーションのファイル構成を示した図 本発明の実施例1の処理フローを示した図 本発明におけるアプリケーションの状態遷移を示す図 本発明の実施例2の処理フローを示した図 本発明の実施例2の説明を補足するための図 本発明の実施例3の処理フローを示した図 本発明の実施例4の処理フローを示した図
以下、本発明を実施するための形態について図面を用いて説明する。
図1は、本発明の実施例の全体構成を示した図である。
画像形成装置100は、本発明の情報処理装置の一例としての画像形成装置である。画像形成装置100は、ネットワーク130を通して、情報処理装置110と通信可能に接続する。
アプリケーションA(101)、アプリケーションB(102)、アプリケーションC(103)はそれぞれ画像形成装置100上で動作するアプリケーションを示す。画像形成装置100上では、一つ又は複数のアプリケーションを動作させることが可能である。図1では、アプリケーションが3つの場合について示している。ユーザ及び管理者には、画像形成装置100の基本機能、アプリケーションA〜C(101〜103)、画像形成装置100及びその上で動作するアプリケーションを管理するための手段が提供される。また、ユーザは、画像形成装置100を、直接操作する、又はネットワーク130を経由して、情報処理装置110から間接的に操作することが可能である。
図2は画像形成装置100のハードウェア構成を示したブロック図である。
画像形成装置100は、コア部200、UIパネル表示部201、記憶装置202、ネットワークインターフェース部203、スキャナー部204、プリンター部205、フィニッシャー部206から構成される。
コア部200内には不図示のCPUやRAMが搭載されている。該CPUは、記憶装置202に格納されている画像形成装置100に搭載のOS、アプリケーション実行基盤、アプリケーション等のプログラムをRAM上に展開し、該プログラムをRAMから読み込むことにより実行する。UIパネル表示部201は、コア部200で処理された内容を表示し、またパネル表示部に設けられた入力手段からユーザからの入力を受け付ける。記憶装置202は、コア部200で処理されるプログラムやデータファイルを格納する。
画像形成装置100のネットワーク接続については、ネットワークインターフェース部203を介してネットワーク130に接続される。コア部200には、スキャナー機能を持つスキャナー部204、印刷機能を持つプリンター部205、フィニッシング機能を持つフィニッシャー部206が接続され、これらはコア部200によって動作が制御されている。
図3は、本実施例の画像形成装置における、各アプリケーションA〜C(101〜103)を実行するための実行環境のブロック図である。
アプリケーション実行基盤301は、アプリケーションを動作させる基盤である。
アプリケーションA〜C(101〜103)のインストール、アンインストール、実行、停止等の処理は、アプリケーション実行基盤301上で動作するアプリケーション管理フレームワーク302によって管理される。
アプリケーション管理フレームワーク302が、アプリケーションのインストール処理を行う場合は、まず、アプリケーションのアプリケーションリソース宣言ファイル403(図4(a))を参照する。そして、アプリケーション管理フレームワーク302は、該ファイル中に宣言されているリソース上限値が、現在のアプリケーションの実行環境内のリソースの空き容量に収まるか否かを判定する。アプリケーション管理フレームワーク302は、その判定結果に基づき、空き容量に収まる場合は、アプリケーションのインストール処理を実行し、そうでない場合は、エラーを返す処理を行う。
UI制御モジュール303は、アプリケーションA〜C(101〜103)がUI画面を構成する際の制御を行い、基本となる画面から各アプリケーションの画面遷移を管理する。
サポートライブラリ304は、アプリケーションA〜C(101〜103)が画像形成装置100の種々の機能を利用するためのライブラリーである。
図4(a)は、本実施例におけるアプリケーションA〜C(101〜103)を構成するファイルについて示した図である。
アプリケーションA〜C(101〜103)は、基本的に、アプリケーション実行コードファイル401、アプリケーション固定データファイル402、アプリケーションリソース宣言ファイル403の3つのファイルを少なくとも包含している。
アプリケーション実行コードファイル401はアプリケーションの実行コード等を含むファイルである。
アプリケーション固定データファイル402はアプリケーションが保持する定数や文字列等の固定データを収めたファイルである。
アプリケーションリソース宣言ファイル403はアプリケーションの情報や、アプリケーションが使用するリソースを宣言するためのファイルである。
図4(b)は、アプリケーションリソース宣言ファイル403の内部構成を示した図である。
アプリケーションリソース宣言ファイル403は、アプリケーションID、アプリケーションの名称、アプリケーションが使用するリソース等のアプリケーションの情報を含んでいる。図4(b)は、一例として装置内の画像のプレビューを表示するアプリケーションを示している。
ApplicationID(411)には、アプリケーション固有ID"apli-imag-view"、ApplicationName(412)には、"Preview App"のアプリケーション名が記載されていることが読み取れる。
また、ApplicationResource(413)には、アプリケーションが使用する各リソースの上限の値が格納されている。
本図の例では、アプリケーションの使用するストレージ、メモリー、スレッド、ファイルディスクリプター、ソケットの上限値を、バイト単位もしくは数値で記載している。
図5は、本発明のアプリケーション管理フレームワーク302の動作を示すフローチャートである。該アプリケーション管理フレームワーク302は、コア部200内のCPUが、プログラムを実行することで実現される。
まず、ステップS501で、UI制御モジュール303が、UIパネル表示部201にてUIアプリケーションのアイコンが押下されたことを検知し、アプリケーション管理フレームワーク302がUI画面を有するアプリケーションであるUIアプリケーション(図中「UIアプリ」と略す。)の起動を実行する。
そして、ステップS502にて、CPUは、該UIアプリケーションが、アプリケーション管理フレームワーク302からのクリア実行通知を受信可能なアプリケーションか否かを判断する。ここで、クリア実行通知を受信可能なUIアプリケーションは、クリア実行通知を受信すると、アプリケーション管理フレームワーク302によりUIを初期設定に戻す等の処理が行われる。例えば、システム本体がしばらく使用されずスリープに入るような場合には、コピー実行時のカラーモノクロ印刷設定や両面印刷設定といった設定内容をデフォルト状態に戻す処理が行われる。これらの処理は、クリア実行通知がトリガーとなって実行される。
前述のクリア実行通知を受信可能なアプリケーションか否かの判断は、具体的には、該UIアプリケーションが、アプリケーション管理フレームワーク302からのクリア実行通知のイベントのリスナーとしてアプリケーション管理フレームワーク302が管理する領域に登録されているいか否かで、判断することができる。
クリア実行通知のイベントのリスナーに登録されている場合は、CPUは、UI画面を記憶することなく、デフォルトの画面に戻すことができるアプリケーションであると判断する。それは、アプリケーション管理フレームワーク302が該UIアプリケーションの初期化を行っても影響が無いアプリケーションであると、CPUは判断していることになる。
CPUは、該UIアプリケーションが、アプリケーション管理フレームワーク302からのクリア実行通知を受信可能なアプリケーションであると判断した場合は、ステップS503へ処理を進める。クリア実行通知を受信可能でないUIアプリケーションと判断した場合は、該UIアプリケーションに対して処理を行わずに、本フローチャートを終了する。
ステップS503で、UI制御モジュール303が、UIアプリケーションの使用終了したことによるUIパネル表示部のUI画面遷移(例えば、UIアプリケーションの画面から初期画面に遷移する。)を検知した場合(Yes)、ステップS504へ進む。
ステップS504で、CPUは、該UIアプリケーションがUIを初期設定に戻す等のクリア実行可能な状態か否かを判断する。
一般に、例えば複数アプリケーションが動作するシステムにおいては、ジョブの処理中といった途中で処理を停止できない場合に、アプリケーションには状態クリアや動作停止を禁止する手段が提供されている。ここでは、途中で処理を停止できない場合に、UIアプリケーションは、クリア実行を拒否する宣言をする。
よって、ステップS504 では、UIアプリケーションから前述のようなクリア実行を拒否する宣言があるか否かを判断することとなる。該UIアプリケーションからクリア実行を拒否する宣言がない場合は、ステップS505へ進む。一方、クリア実行を拒否する宣言がされていれば、該宣言の解消されるのを待機し、クリア実行を拒否する宣言が解消されたらステップS505へ進む。
ステップS505では、アプリケーション管理フレームワーク302は、該UIアプリケーションの使用が終了したと判断し、該UIアプリケーションの再起動処理を実行する。そして、本フローチャートを終了する。
[再起動処理]
次に、図5のステップS505のアプリケーションの再起動処理について、図6を用いて説明する。
図6は本システムにおけるアプリケーションの内部状態とそのライフサイクルの一例を概念的に示した図である。本システムは、アプリケーションソフトウェアやコンポーネントを遠隔からインストール・起動・停止・アンインストールなどの管理ができるJavaベースのサービスプラットフォームであるOSGiに準ずるものとしている。
本システムにおいて、UIアプリケーションのインストール処理が開始されると、CPUが実行するアプリケーション管理フレームワーク302は該UIアプリケーションのアプリケーションリソース宣言ファイル403を参照する。そして、該アプリケーションリソース宣言ファイル403から該アプリケーションの名称、ID及び使用リソースの情報を取得する。
該UIアプリケーションをインストールすることが可能な場合には、該UIアプリケーションの情報を内部に登録し、インストール済(601)の状態とする。そして、CPUが実行するアプリケーション管理フレームワーク302はユーザからの指示に基づいて、又は自動的にアプリケーションの起動処理を実行する。
アプリケーションの起動処理では、CPUにより、アプリケーション自体の起動に必要なクラスのロードが行われ、依存関係が解消された停止中(602)の状態となる。
その後、アプリケーション管理フレームワーク302は開始処理を開始し、該UIアプリケーションを、開始処理中(603)の状態に遷移する。開始処理中(603)の状態では、UIアプリケーションはUI制御モジュール303に対して、アプリケーションのUI表示登録処理を行う。UI表示登録処理が行われると、UI制御モジュール303はUIパネル表示部201に該UIアプリケーションのアイコンを表示する。
これらの処理が終わるとアプリケーション管理フレームワーク302は、該UIアプリケーションを開始済(604)の状態とする。
先の図5で示したフローチャートは、UIパネル表示部201にて開始済(604)の状態にあるUIアプリケーションのアイコンが押下され、該UIアプリケーションが起動して、該アプリケーションのUIが表示されるところから始まっている。その後、UIアプリケーションが使用終了することに伴い画面が遷移して、再起動処理に移行する。
そして、図5のステップS505のUIアプリケーションの再起動処理において、アプリケーション管理フレームワーク302は、まず、該UIアプリケーションの停止処理を開始する。停止処理を開始すると、アプリケーション管理フレームワーク302は、該UIアプリケーションを、停止処理中(605)の状態に遷移する。
停止処理中(605)の状態では、該UIアプリケーションが、UI制御モジュール303に対してUI表示削除処理を行う。UI表示削除処理が行われると、UI制御モジュール303は、該UIアプリケーションのアイコンを削除し、UIパネル表示部への登録を解除する。
UI表示削除処理が完了すると、アプリケーション管理フレームワーク302は、該UIアプリケーションを停止中(602)の状態に遷移させる。
そして、アプリケーション管理フレームワーク302は、UIアプリケーションを再び開始処理中(603)の状態に遷移させ、再度UIパネル表示部へのUI表示登録処理を実行し、開始済(604)の状態に遷移させる。
この再起動処理により、UIアプリケーションのUIが一度、表示されていない状態に戻ることになり、それまで使用していたUIオブジェクトなどのリソース参照を切り、メモリーを開放することが可能となる。
前述の再起動処理では、停止処理中(605)及び開始処理中(603)の状態で、UIパネル表示部201に対する削除処理及び登録処理を行っている。これとは異なり、再起動であることをUI制御モジュール303に通知することで、UIパネルに対する削除処理及び登録処理を省略することでも同様の処理が行えるようにしても良い。
実施例1では、再起動処理を行うことにより、UIアプリケーションで使用していたリソースの開放を行った。しかし、この再起動処理で回収されるリソースが少ないような場合や、画像形成装置内のリソースの状況によっては、回収されるリソースが十分ではなく、更なるリソースの回収を必要とする場合もある。
実施例2では、更に多くのリソースを回収可能とするための動作について以下に示す。
本実施例のアプリケーション管理フレームワーク302の動作について図7のフローチャートを用いて説明する。図7のフローチャートにおいて、図5と共通のステップについては、同じ番号を付し、説明も簡略化する。
本フローチャートに示す処理は、CPUが本発明に係るプログラムであるアプリケーション管理フレームワーク302を実行することで実現されるものである。
本フローチャートは、実施例1と同様に、最初にUI制御モジュール303が、UIアプリケーションの起動を検知する(S501)。その後、ステップS502〜S503の処理を実行し、ステップS504に進む。
ステップS504で、アプリケーション管理フレームワーク302が、UIアプリケーションがクリア実行可能と判断した場合に、ステップS707へ進む。
一方、クリア実行可能でなければ、可能になるまで待機し、可能になったらステップS707へ進む。
ステップS707では、UIアプリケーションの起動時間を取得する。このUIアプリケーションの起動時間は、UIアプリケーションが内包するjarファイルの数及びサイズと、ロードするクラスの数といったアプリケーションの情報から算出される。
なお、アプリケーション管理フレームワーク302のログから該UIアプリケーションの起動時間を取得しても良い。
そして、ステップS708で、CPUは、該UIアプリケーションの起動時間が所定時間以内になるかを判定する。所定時間とは、アプリケーションの起動までにユーザが待機可能な時間を仮定した時間であり、この時間内にアプリケーションが起動できれば、ユーザへの影響は少ないと判定する時間である。この所定時間は、予めシステムにて決められている時間でも良いし、ユーザが入力して設定可能としても良い。
ステップS708において、CPUが、アプリケーションの起動が所定時間内に収まると判定した場合(Yes)は、ステップS709に進む。収まらないと判断した場合はステップS505に進んで、アプリケーション管理フレームワーク302は、UIアプリケーションを再起動する。
次に、ステップS709で、アプリケーション管理フレームワーク302は機器内のリソース使用量を、アプリケーション実行基盤301より取得し、使用量が規定値を超えているかを判定する。
ステップS709において、画像形成装置内のリソース使用量の状況が規定値を超えていると判断した場合には、ステップS710に進み、アプリケーション管理フレームワーク302は、UIアプリケーションの終了処理を行う。リソース使用量の状況が規定値を超えていないと判断した場合は、ステップS505に進みUIアプリケーションの再起動処理を行う。
[UIアプリケーションの終了処理]
次に、アプリケーション終了処理について、図6と図8を用いて説明する。
実施例2の終了処理(S710)では、開始済み(604)の状態からアプリケーションの終了を判定して、停止処理中(605)、停止中(602)の状態を経て、アンインストール済(606)の状態に遷移する。
開始済み(604)の状態からアプリケーションの終了を判定した際に行われる停止処理について、図8とあわせて説明する。図8(a)はアプリケーション管理フレームワーク302とUI制御モジュール303とUIアプリケーションA間の通知の概略を示した図である。
まず、アプリケーション管理フレームワーク302はアプリケーションの終了処理を開始する際に、UI制御モジュール303に終了処理の対象となるUIアプリケーションA101の情報及びアプリケーションが終了となることを通知する(n801)。
続いて、アプリケーション管理フレームワーク302は、終了処理の対象となるUIアプリケーションA101に対して、停止処理を指示する(n802)。
終了処理の対象となるUIアプリケーションA101は、停止処理の指示(n802)を受けると、UI制御モジュール303に対して、UI表示削除処理を依頼する(n803)。
UIアプリケーションA101からのUI表示削除処理の依頼を受けると、UI制御モジュール303は、アプリケーション管理フレームワーク302から渡された情報をもとに、図8(b)に示すUI登録テーブル811を更新する。UI登録テーブル(UI Registration Table)811が更新されることによりUI表示は削除される。
続いて、UI制御モジュール303は、インストールされたパッケージを他の領域に退避させる(n804)。
図8(b)に示すUI登録テーブル811は、UI制御モジュール303が管理するテーブルであり、アプリケーションのアイコンIDとアプリケーションIDと、各アプリケーションの状態を関連付けるテーブルである。
前述のUI表示登録処理やUI表示削除処理の際にテーブルは更新され、ここではapli-imag-view、及びsend-deve-imagのアプリケーションを登録していることを示す(812)。
そして、退避処理(n804)ではUIアプリケーションA101(test-uiap-apli)の情報は表示登録テーブルからは削除することなく、状態変更して状態をHoldにし(813)、UIアプリケーションA101に削除完了を返す(n805)。
UIアプリケーションは、アプリケーション管理フレームワーク302に対して停止処理が完了した旨通知を行う(n806)。
そして、アプリケーション管理フレームワーク302は該UIアプリケーションAを停止中(602)の状態に遷移させ、該UIアプリケーションAのアンインストール処理を行い、アンインストール済(606)の状態に遷移させる。
この時、アプリケーション管理フレームワーク302の内部状態としてはアプリケーションをインストールしていない状態となるが、UI上にはアイコンが登録されている状態(Hold)となる。
次に、この状態から、UIパネル表示部201にてUIアプリケーションA101のアイコンが押下された場合の動作を説明する。
UIパネル表示部上のアイコンの押下をUI制御モジュール303が検知すると、UI制御モジュール303は押下されたアイコンのIDを取得し、UI登録テーブル811を参照する。
UI登録テーブル811に該アイコンのIDが登録(regist)されていれば、該当するアプリケーションの実行をアプリケーション管理フレームワーク302に通知し、該アプリケーションのUIをロードする。
UI登録テーブル811に該アイコンのIDがHoldとして登録されていた場合(813)は退避したアプリケーションのパッケージのパス(/Tmp/UI-App/-01.nlm)を、アプリケーション管理フレームワーク302に通知する。そして、アプリケーション管理フレームワーク302は、該当するアプリケーションのインストール処理を開始する。
そして、インストール済(601)、停止中(602)、開始処理中(603)の状態を経て、開始済(604)の状態に遷移させ、さらに該UIアプリケーションA101のUIをロードする。
なお、開始処理中のアプリケーションからUI制御モジュール303へのUIパネル登録処理は、既に登録済みであるため、UI登録テーブルは状態(813)の内容を更新するのみとなる。
このようにして、終了と判定したアプリケーションを再起動処理するのではなく、終了処理し、アンインストールすることで、アプリケーションが開始のために使用するリソースを消費しないままにできる。
また、本実施例では起動に掛る時間を許容できる時間内に制限し、画像形成装置内のリソースが少なくなっていると判断した際に終了処理を行うことで、ユーザビリティを大きく損なうことを回避している。
実施例3では、アプリケーション管理フレームワーク302の更に別の動作について、図9を用いて説明する。
実施例1,2の例では、アプリケーションの終了を検知し、アプリケーションからクリア拒否の宣言が無い場合に、再起動処理又は終了処理を実行することにより、アプリケーションが消費していたリソースを開放する例を示した。
しかしながら、例えば、終了処理を実行した場合には、アプリケーションの起動に少なからず時間がかかってしまう。ユーザが頻繁に起動を行うような使い方をされるアプリケーションの場合、アプリケーションの起動時間が積み重なり、ユーザビリティが低下することにも繋がりかねない。
以下の実施例3の処理では、起動が頻繁に行われるアプリケーションについては、終了処理及び再起動処理を直ちに実行するのではなく、アプリケーションの使用間隔に基づいて、所定時間は、該アプリケーションを開始済の状態にしておくものである。再度ユーザがアプリケーションを使用する場合には、直ちに利用できることから、ユーザビリティ低下を回避することができる。そして、アプリケーションの使用間隔が所定時間を超えている場合には、終了処理又は再起動処理を行うことにより、アプリケーションが抱えているリソースの開放を行うことができる。
本フローチャートに示す処理は、CPUが本発明に係るプログラムであるアプリケーション管理フレームワーク302を実行することで実現されるものである。
まず、CPUが実行するUI制御モジュール303が、アプリケーションの使用の終了を検知する(S901)。
アプリケーションの使用終了時刻からタイマーをスタートさせ経過時間Kを計時を開始する(S902)。
続いて、アプリケーション管理フレームワーク302は、ログから該アプリケーションの前回の終了時刻を取得する(S903)。
そして、今回の該アプリケーションの起動時刻を取得して、前回アプリケーションの終了から今回の起動までの経過時間Aを算出し取得する(S904)。経過時間Aは、該アプリケーションの使用間隔を示すものとなる。
そして、アプリケーションの終了検知からの経過時間Kと、経過時間Aを比較し、経過時間Kが、経過時間Aを超えたと判定(S905)した場合に、前述のようなアプリケーションの再起動処理を実行する(S906)。この時、再起動処理だけでなく、実施例2に示すようにアプリケーションの起動時間と機器内リソースの状況から判断し、該アプリケーションの終了処理を実行しても良い。
なお、本実施例では、タイマーを用いて、アプリケーション終了からの経過時間Kを求めているが、アプリケーションの使用終了時刻と、現在の時刻を参照することにより、経過時間Kを求める構成としてもよい。
実施例1及び実施例2の例では、アプリケーションの終了を検知し、即時に再起動処理又は終了処理を実行していた。しかしながら、再起動処理や終了処理を行った後の実行では、処理に少なからず時間がかかる。そのため、ユーザが連続で使用するようなケースであれば、ユーザを待たせることになりユーザビリティを損ねることにつながりかねない。
しかしながら、上記の実施例3の処理を実行することで、そのようなユーザビリティを損ねることを回避することが可能となる。
本発明のアプリケーション管理フレームワーク302の動作の別の実施例を、図10を用いて説明する。
実施例3では、アプリケーションの再起動処理ないし終了処理を実行するまでに所定時間持たせるような処理とした。しかしながら、例えば、ユーザが意図せずUIアプリケーションを起動してしまったような、いわゆる操作ミスによるアプリケーションの起動がなされた場合もある。このような場合には、実施例3のように再起動もしくは終了処理を実行するまでに所定時間持たせるような処理とすると、こんどは不要なアプリケーションが意図せずリソースを占有するということになりかねない。実施例4では、ユーザの意図しない操作を検知することにより、操作ミスにより起動したアプリケーションを直ちに終了できるようにしたものについて説明する。
本フローチャートに示す処理は、CPUが本発明に係るプログラムであるアプリケーション管理フレームワーク302を実行することで実現されるものである。
本フローチャートはステップS501と同様に、まずステップS1001において、UI制御モジュール303がUIアプリケーションの起動を検知する。
続くステップS1002で、UI制御モジュール303は、該UIアプリケーションに対してユーザ操作の有無を判定する。ユーザ操作があれば(Yes)、何も処理をせずに終了する。
一方、ユーザ操作がない場合は(No)、ステップS1003に進む。ステップS1003では、画面遷移を検知するまで待機し、画面遷移を検知した場合は、ステップS1004に進む。
ステップS1004において、UI制御モジュール303は、該UIアプリケーションのUI表示時間を取得し、該UI表示時間が規定時間(閾値)以上であったか否かを判定する。UIアプリケーションの表示時間が規定時間以上であった場合は、処理を終了する。
一方、該UIアプリケーションのUI表示の表示時間が規定時間未満であった場合には、該UIアプリケーションの起動は、ユーザのオペレーションミスであったと判定し、不要な起動であったと判断し、ステップS1005に進む。
ステップS1005において、アプリケーション管理フレームワーク302は、該UIアプリケーションの再起動処理を実行し、本フローチャートの処理を終了する。なお、再起動処理の代わりに実施例2のようにUIアプリケーションの終了処理であってもよい。
以上、本実施例によれば、ユーザにとって不要なUIアプリケーションが起動され続けることによりリソースの消費される回避することが可能となる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100 画像形成装置
101 情報処理装置
130 ネットワーク
302 アプリケーション管理フレームワーク
303 UI制御モジュール

Claims (13)

  1. 複数の動作するアプリケーションを管理する情報処理装置であって、
    前記アプリケーションが使用終了した場合に、前記アプリケーションがクリア実行を拒否する宣言をしているか判定する第1の判定手段と、を有し、
    前記第1の判定手段によって、前記アプリケーションがクリア実行を拒否する宣言をしていないと判定した場合に、前記アプリケーションの再起動処理を行うことを特徴とする情報処理装置。
  2. 前記アプリケーションが、クリア実行通知の受信可能であるか判定する第2の判定手段を更に有し、
    前記第2の判定手段により、前記アプリケーションが、クリア実行通知の受信可能でないと判断された場合は、再起動処理を行わないことを特徴とする請求項1に記載の情報処理装置。
  3. アプリケーションの使用終了は、表示部に表示されるUIが遷移することにより検知することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記アプリケーションがクリア実行を拒否する宣言を実行していないと判定した際に、該アプリケーションの起動にかかる時間を取得する第1の取得手段と、
    前記取得した該アプリケーションの起動時間が、所定時間を超えるか判定する第3の判定手段と、を更に有し、
    前記第3の判定手段により、該アプリケーションの起動時間が所定時間を超えないと判定された場合に、該アプリケーションの終了処理を行うことを特徴する請求項1〜3の何れか1項に記載の情報処理装置
  5. 前記第1の取得手段は、アプリケーションが内包するファイルの数、サイズ、ロードするクラスの数を含むアプリケーションの情報から算出することを特徴とする請求項4に記載の情報処理装置。
  6. 情報処理装置のリソースの使用量を取得し、規定値を超えているか判定する第4の判定手段を更に有し、
    前記第4の判定手段により、情報処理装置のリソース使用量が規定値を超えている場合に、該アプリケーションの終了処理を行うことを特徴する請求項4又は5に記載の情報処理装置。
  7. 前記アプリケーションの使用終了を検知した際に、経過時間を計時する計時手段と、
    前記アプリケーションの使用間隔を取得する第2の取得手段と、
    該アプリケーションの前記使用間隔と前記経過時間とを比較する比較手段と、を更に有し、
    前記比較手段によって、前記経過時間が前記使用間隔より大きくなったと判断した場合、アプリケーションの再起動処理を実行することを特徴とする請求項1〜6のいずれか1項に記載の情報処理装置。
  8. 前記使用間隔は、前回の前記アプリケーションの使用終了時刻と今回の起動時刻とから取得することを特徴とする請求項7に記載の情報処理装置。
  9. 前記使用間隔は、前記アプリケーションの起動と終了にかかるログから取得することを特徴とする請求項7に記載の情報処理装置。
  10. 前記アプリケーションのUIを表示する時間が閾値よりも小さいか判定する第5の判定手段と、
    前記第5の判定手段により、UIを表示する時間が閾値より小さいと判定された場合は、前記アプリケーションの再起動処理を行うことを特徴とする請求項1〜9のいずれか1項に記載の情報処理装置。
  11. 前記アプリケーションのUIを表示する時間が閾値よりも小さいか判定する第5の判定手段と、
    前記第5の判定手段により、UIを表示する時間が閾値より小さいと判定された場合は、前記アプリケーションの終了処理を行うことを特徴とする請求項1〜9のいずれか1項に記載の情報処理装置。
  12. 複数の動作するアプリケーションを管理する情報処理装置の制御方法であって、
    前記アプリケーションの画面が遷移した場合に、前記アプリケーションがクリア実行を拒否する宣言をしているか判定する第1の判定ステップと、
    前記第1の判定ステップにおいて、前記アプリケーションがクリア実行を拒否する宣言をしていないと判定した場合に、前記アプリケーションの再起動処理を行う処理ステップと、
    を、有することを特徴とする情報処理装置の制御方法。
  13. 複数の動作するアプリケーションを管理する情報処理装置のアプリケーション管理方法であって、
    前記アプリケーションの画面が遷移した場合に、前記アプリケーションがクリア実行を拒否する宣言をしているか判定する第1の判定ステップと、
    前記第1の判定ステップにおいて、前記アプリケーションがクリア実行を拒否する宣言をしていないと判定した場合に、前記アプリケーションの再起動処理を行う処理ステップと、
    を、有することを特徴とするアプリケーション管理方法。
JP2017058461A 2017-03-24 2017-03-24 情報処理装置、情報処理装置の制御方法及びアプリケーション管理方法 Active JP6873772B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017058461A JP6873772B2 (ja) 2017-03-24 2017-03-24 情報処理装置、情報処理装置の制御方法及びアプリケーション管理方法
US15/927,316 US20180276033A1 (en) 2017-03-24 2018-03-21 Information processing apparatus, control method for information processing apparatus, and application management method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017058461A JP6873772B2 (ja) 2017-03-24 2017-03-24 情報処理装置、情報処理装置の制御方法及びアプリケーション管理方法

Publications (2)

Publication Number Publication Date
JP2018160215A JP2018160215A (ja) 2018-10-11
JP6873772B2 true JP6873772B2 (ja) 2021-05-19

Family

ID=63582591

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017058461A Active JP6873772B2 (ja) 2017-03-24 2017-03-24 情報処理装置、情報処理装置の制御方法及びアプリケーション管理方法

Country Status (2)

Country Link
US (1) US20180276033A1 (ja)
JP (1) JP6873772B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5854754A (en) * 1996-02-12 1998-12-29 International Business Machines Corporation Scheduling computerized backup services
JP4938733B2 (ja) * 2008-06-30 2012-05-23 株式会社ソニー・コンピュータエンタテインメント メニュー画面表示方法およびメニュー画面表示装置
WO2011155106A1 (ja) * 2010-06-07 2011-12-15 パナソニック株式会社 携帯型情報処理端末
JP5729146B2 (ja) * 2011-06-03 2015-06-03 富士通株式会社 情報端末装置、情報端末装置の制御方法およびプログラム
TWI472910B (zh) * 2012-04-24 2015-02-11 Wistron Neweb Corp 節省系統資源之方法及運用其方法之作業系統
US10084869B2 (en) * 2013-10-04 2018-09-25 Verto Analytics Oy Metering user behaviour and engagement with user interface in terminal devices
US10666574B2 (en) * 2015-09-28 2020-05-26 Amazon Technologies, Inc. Distributed stream-based database triggers
JP6641577B2 (ja) * 2016-03-09 2020-02-05 本田技研工業株式会社 情報処理システム、端末、情報処理方法、端末の情報処理方法、およびプログラム

Also Published As

Publication number Publication date
US20180276033A1 (en) 2018-09-27
JP2018160215A (ja) 2018-10-11

Similar Documents

Publication Publication Date Title
US9703542B2 (en) Preinstalled application management method for mobile terminal and mobile terminal
JP7087685B2 (ja) 情報処理システムおよび情報処理方法
JP5212360B2 (ja) 制御プログラム、制御システムおよび制御方法
US20130024854A1 (en) Information processing apparatus and controlling method thereof
JP5322595B2 (ja) コンピュータ、制御方法、及びプログラム
JP5948855B2 (ja) 機器、プログラム管理方法、プログラム管理プログラム、及び記録媒体
JP6270616B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
TWI450090B (zh) 關於改變程式之啟動列表以判定電腦系統性能是否增進之方法及系統
US9310877B2 (en) Apparatus and power-saving method for controlling a return to a normal power mode
US10169022B2 (en) Information processing apparatus and resource management method
JP6873772B2 (ja) 情報処理装置、情報処理装置の制御方法及びアプリケーション管理方法
US9626219B2 (en) Information processing apparatus, method of controlling the same and non-transitory computer readable medium
JP2009020609A (ja) 画像形成装置、プログラム制御方法及びプログラム
JP5133230B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2007066132A (ja) プログラムシステム
JP2004334679A (ja) 情報処理装置、情報処理装置のプログラム実行方式、情報処理装置のプログラム実行方式を記録した記憶媒体
JP2011070394A (ja) 管理装置、アプリケーション管理方法、及びプログラム
JP6562980B2 (ja) システム、システムの制御方法、情報処理装置、情報処理装置の制御方法、及びプログラム
JP7424457B2 (ja) 画像形成装置及びプログラム
CN107153554B (zh) 信息处理装置和库管理方法
JP2020009066A (ja) 組み込み機器、ウィルススキャンプログラム実行方法、プログラム
JP5836814B2 (ja) 画像形成装置、制御方法及びプログラム
JP2018088023A (ja) 情報処理装置、及びその制御方法
JP5338610B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
JP2019191985A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20180306

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210323

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210421

R151 Written notification of patent or utility model registration

Ref document number: 6873772

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151