JP2016100731A - 情報処理装置およびその制御方法、並びにプログラム - Google Patents

情報処理装置およびその制御方法、並びにプログラム Download PDF

Info

Publication number
JP2016100731A
JP2016100731A JP2014235892A JP2014235892A JP2016100731A JP 2016100731 A JP2016100731 A JP 2016100731A JP 2014235892 A JP2014235892 A JP 2014235892A JP 2014235892 A JP2014235892 A JP 2014235892A JP 2016100731 A JP2016100731 A JP 2016100731A
Authority
JP
Japan
Prior art keywords
application
suppression
processing apparatus
executed
information processing
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
JP2014235892A
Other languages
English (en)
Inventor
康友 清水
Yasutomo Shimizu
康友 清水
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 JP2014235892A priority Critical patent/JP2016100731A/ja
Priority to US14/931,911 priority patent/US9626219B2/en
Publication of JP2016100731A publication Critical patent/JP2016100731A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Facsimiles In General (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Control Or Security For Electrophotography (AREA)
  • Multimedia (AREA)

Abstract

【課題】画像処理装置上でバックグラウンド処理が実行された場合に、並列実行されるアプリケーションの実行処理速度が低下することのない情報処理装置及びその制御方法、並びにプログラムを提供する。【解決手段】バックグラウンドで処理を実行可能な情報処理装置101であって、アプリケーションからの要求に応じて処理が実行される際に、バックグラウンドにおける別の処理の実行を制御する制御手段を備える。制御手段は、アプリケーションからの要求に応じて、別の処理がバックグラウンドにて実行されないように抑制し、アプリケーションから抑制の解除の要求が指示されない場合、抑制を開始してから所定の期間が経過した際に、抑制を解除する。【選択図】図3

Description

本発明は、情報処理装置およびその制御方法、並びにプログラムに関する。
近年、画像処理装置では、自身の有するプログラムをバックグラウンドで実行させるものが存在する。例えば、特許文献1では、指示された処理の実行に長時間を要すると判断すると、その旨の警告と、ログイン中のユーザに対してログアウトの実行の可否を問合せるメッセージを画像形成装置上に表示する。ユーザによりログアウトの実行が選択されると、画像処理装置は、ユーザをログアウトさせ、指示された処理をバックグラウンド処理として実行する。これにより、指示された処理が長時間を要するような場合でも、画像処理装置はユーザがログアウトを行った上で当該処理を実行できる。
一方、画像処理装置は、一般的にスキャナやプリンタなどの各種機能をアプリケーション単位で動作させるアプリケーションプラットフォームを有している。アプリケーションプラットフォーム上で稼働するアプリケーションと画像処理装置が実行するバックグラウンド処理は、画像処理装置によりマルチタスクで処理され並列に実行される。そのため、画像処理装置がバックグラウンド処理としてCPUを使用する処理を行うと、例えば画像処理装置上の操作画面に表示するUI画面を提供するアプリの操作性が低下するなど、パフォーマンス低下の影響を与えてしまう。
そこで、特許文献2では、バックグラウンド処理を実行不可とするアプリケーションが起動中の場合はバックグラウンド処理を保留し、バックグラウンド処理を実行可とするアプリが起動中の場合はバックグラウンド処理を行うという制御を行う。
特開2013−131818号公報 特開2011−100475号公報
特許文献2は、アプリケーションを構成するプログラムに事前にバックグラウンド処理の実行可否の情報を定義し、その情報に基づいてバックグラウンド処理の制御を行っている。一方、画像処理装置において、多様な実行形態のアプリケーションに対し画像処理装置が実行可否の情報と起動状態のみでバックグラウンド処理の実行の制御を行うと、バックグラウンド処理を実行不可能な状態に陥れてしまう場合がある。例えば、Webアプリケーションとして提供されるアプリケーションでは、情報処理装置からアクセスされている限り、画像処理装置はアプリケーションを起動中と判定する。このため、Webアプリケーションがバックグラウンド処理を実行不可と宣言していると、ユーザが操作しているかどうかに関わらず、アクセスされている限り画像処理装置はバックグラウンド処理を実行できない。また、画像処理装置上の操作画面にUI画面を表示するアプリケーションの場合、アプリケーションが障害により起動状態のまま処理を停止したとすると、画像処理装置はバックグラウンド処理を抑制し続けることとなる。その場合、画像処理装置は、アプリケーションを強制的に終了しない限りバックグラウンド処理を実行できなくなる。
本発明は上記問題を鑑み、より適切なバックグラウンド処理の抑制の制御を行うことを目的とする。
上記課題を解決するために本願発明は以下の構成を有する。すなわち、バックグラウンドで処理を実行可能な情報処理装置であって、アプリケーションからの要求に応じて処理が実行される際に、バックグラウンドにおける別の処理の実行を制御する制御手段を備え、前記制御手段は、前記アプリケーションからの要求に応じて、前記別の処理がバックグラウンドにて実行されないように抑制し、前記アプリケーションから前記抑制の解除の要求が指示されない場合、前記抑制を開始してから所定の期間が経過した際に、前記抑制を解除する。
本発明によれば、バックグラウンド処理からの影響を抑え、アプリケーションを安定して動作させることが可能となる。また、バックグラウンド処理の実行を必要以上に抑制する状態を避けることが可能となる。
第一の実施形態に係るシステムの構成例の図。 第一の実施形態に係る各装置のハードウェア構成例の図。 第一の実施形態に係る各装置のソフトウェア構成例の図。 第一の実施形態に係るプログラム例を示す図。 第一の実施形態に係るAPIの定義例を示す図。 第一の実施形態に係る処理のフローチャート。 第一の実施形態に係るシーケンス図。 第二の実施形態に係るアプリケーションの構成例を示す図。 第二の実施形態に係るアプリケーション管理テーブルの構成例を示す図。 第二の実施形態に係る処理のフローチャート。 第二の実施形態に係る処理のフローチャート。 第三の実施形態に係る処理のフローチャート。
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の説明においてバックグラウンドを「BG」と記載し、プラットフォームを「PM」と記載する。また、アプリケーションを単に「アプリ」と記載する。
<第一の実施形態>
[システム構成]
本実施形態のシステム構成について、図1〜図3を用いて説明する。
図1は、本実施形態に係るシステム全体の構成例を示す。本システムは、ネットワーク102を介して、画像処理装置100と情報処理装置101とが通信可能に接続される。画像処理装置100は、画像形成装置、画像読取装置、画像送信機能などの各種画像処理機能を有する情報処理装置である。なお、画像処理装置100は、プリンタ、コピー、ファクス及びスキャナや、それら複数の機能を一台の筐体で実現するMFP(Multi Function Peripheral)でもよく、特に限定するものではない。情報処理装置101は、Webブラウザなどを介し、画像処理装置100の操作をリモートで行うことが可能な、PC(Personal Computer)や携帯端末などの情報処理装置である。
図2は、本実施形態の画像処理装置100と情報処理装置101のハードウェアの構成例を示す。画像処理装置100は、情報処理装置101と通信を行うネットワーク装置201、キーボードなどユーザ操作を受け付けるユーザ入力装置202、液晶ディスプレイなど操作画面を表示するUI表示装置203を有する。
更に画像処理装置100は、装置全体を制御するCPU204、ワークスペースとして利用可能なRAM205、画像原稿を読み取る読取装置206、印刷動作を行う印刷装置207、および各種制御プログラムを記憶する記憶装置208を有する。画像処理装置100を構成する各部位は、メインバス200で接続され、相互にデータの送受信が可能である。なお、ユーザ入力装置202とUI表示装置203を別々の装置として記載しているが、これらの装置が一体となった操作部が備えられてもよい。
情報処理装置101は、外部装置と通信を行うネットワーク装置211、装置全体を制御するCPU212、ワークスペースとして利用可能なRAM213、および各制御プログラムを記憶する記憶装置214を有する。また、情報処理装置101を構成する各部位は、メインバス210で接続され、相互にデータの送受信が可能である。
図3は、本実施形態の画像処理装置100と情報処理装置101のソフトウェアの構成例を示す。図3に示す各機能部は、画像処理装置100および情報処理装置101それぞれが有するCPU204、212が、記憶装置208、214に記憶される制御プログラムをRAM205、213上に読み出して実行することで実現される。
まず、情報処理装置101が備えるソフトウェアについて説明する。情報処理装置101は、通信部300、Webブラウザ310を有する。通信部300は、ネットワーク装置211を制御してHTTP(Hyper Text Transfer Protocol)通信を行うソフトウェアである。Webブラウザ310は、通信部300を介して、画像処理装置100のアップデート管理部371、ライフサイクル管理部373などのアプリから提供される操作画面(不図示)を表示する。また、Webブラウザ310は、表示された操作画面を通じて入力されたユーザからの入力情報を、通信部300を介して画像処理装置100へ送信する。なお、本実施形態では、画像処理装置100との通信にWebブラウザ310を用いているが、アプリと通信するためのプロトコルに対応したソフトウェア構成であればよく、これに限定するものではない。
次に、画像処理装置100が備えるソフトウェアについて説明する。画像処理装置100は、OS(Operating System)320、JavaVM321、システム制御部330、アプリPF340を有する。OS320は、プロセスの管理、メモリ管理及び入出力管理を実行する。JavaVM321は、Java(登録商標)プログラムを実行する仮想マシンであり、アプリPF340の実行基盤である。
システム制御部330は、コピーなど画像処理装置100の基本的な機能を実現するプログラムであり、BG処理管理部331を有する。BG処理管理部331は、予めBG処理であると定義されているプロセスの実行指示を受信した際、アプリPF340などの別プロセスがBG処理抑制フラグを立てているか(つまり、BG処理抑制フラグが“true”か否か)問い合わせる。BG処理制御フラグの詳細については、後述する。別プロセス全てにおいてBG処理抑制フラグが“true”でなければ、BG処理管理部331は、BG処理の実行を該当するプロセスに指示する。別プロセスにおいて一つでもBG処理抑制フラグが“true”である場合、BG処理管理部331は、BG処理の実行は指示せずBG処理抑制フラグの解除待ち状態となる。BG処理管理部331は、定期的に別プロセスのBG処理抑制フラグの状態を確認し、別プロセス全てにおいてBG処理抑制フラグが“false”なるまでBG処理の実行を待機する。また、BG処理管理部331は、該当するプロセスにBG処理の実行を指示した後も定期的に別プロセスのBG処理抑制フラグの状態を確認する。そして、BG処理実行中に別プロセスで新たにBG処理抑制フラグが“true”となったことを検知した場合、BG処理管理部331は、該当するプロセスにBG処理の実行の中断を指示し、BG処理抑制フラグの解除待ち状態となる。
アプリPF340は、制御API(Application Program Interface)を介して画像処理装置100を制御するアプリを実行可能な実行基盤である。アプリPF340は、フレームワーク350、およびアプリ記憶領域360を有する。フレームワーク350は、アプリのライフサイクル管理や依存関係管理を行うOSGi(Open Services Gateway initiative;登録商標)351、およびプラットフォームを構成するクラスライブラリ群352を有する。ライフサイクル管理や依存関係管理については、従来の技術を利用するものとし、ここでの詳細な説明は省略する。アプリ記憶領域360は、記憶装置208に保存されフレームワーク350上で管理されるアプリを記憶する。アプリ記憶領域360は、システムアプリ部370、およびアプリ部380を有する。
システムアプリ部370は、アプリPF340を構成する機能を提供するアプリ群で構成される。システムアプリ部370は、アップデート管理部371、およびライフサイクル管理部373を有する。アップデート管理部371は、記憶装置208に書き込まれたファームウェアの更新を、フレームワーク350を介してシステム制御部330に指示するアプリケーションである。ライフサイクル管理部373は、フレームワーク350へ指示を出し、アプリ記憶領域360上のアプリのライフサイクル管理を行うアプリケーションである。また、アップデート管理部371およびライフサイクル管理部373は、アプリの操作を行う操作部(不図示)を提供し、通信部372/通信部374によりネットワーク装置201を介した情報処理装置101からのHTTP通信によるアプリの操作指示を受信する。本実施形態では、アップデート管理部371およびライフサイクル管理部373は、JavaServletによるWebアプリとして説明するが、情報処理装置101と通信し操作部を提供するものであれば、これに限定するものではない。
アプリ部380は、画像処理装置100を制御するためのアプリで構成される。本実施形態では、アプリ部380は、画像処理装置100を制御するアプリとしてアプリA381を有する。また、アプリA381は、画像処理装置100の制御を指示する際に、アプリPF340から提供されるBG処理抑制APIを実行する機能を有する。
本実施形態における、アプリA381によるBG処理抑制指示の実行方法、アプリPF340が提供するBG処理抑制APIの構成、及びBG処理抑制指示方法を、図4〜図6を用いて説明する。
図4は、アプリA381が、画像処理装置100に対しBG処理の抑制を含む制御指示を行うプログラムの一例を示す。アプリA381は、BG処理の抑制を含む制御指示を実行するBG処理抑制処理部(記述400)を有する。記述400は、記述401〜403を有する。
記述401は、アプリA381が、アプリPF340から提供されるBG処理抑制APIを実行しBG処理の抑制を指示する定義部である。本実施形態では、アプリA381は、第一引数にアプリ名、第二引数に“15000”、第三引数に“true”を取り、BG処理抑制APIを実行する。なお、APIの定義及び処理に関しては、図5、図6を用いて後述する。
記述402は、アプリA381が、画像処理装置100の制御を指示するアプリ固有の定義部である。本実施形態では、例えばUI表示装置203に操作画面を提供する操作部からの応答処理を行うなど、画像処理装置100がBG処理を実行しているとパフォーマンス低下の影響を受ける処理であるとする。
記述403は、アプリA381が、アプリPF340から提供されるBG処理抑制解除APIを実行し、BG処理の抑制解除を指示する定義部である。本実施形態では、アプリA381は、第一引数にアプリ名を取り、BG処理抑制解除APIを実行するものとする。なお、APIの定義及び処理に関しては、図5、図6を用いて後述する。
図5は、アプリPF340がクラスライブラリ群352としてアプリに提供する、画像処理装置100のBG処理抑制、及び抑制解除するための制御指示APIの定義部分(クラス)の一例である。アプリPF340は、BG処理管理部331に対してBG処理の抑制制御指示を実行する、BG処理抑制API部(記述500)及びBG処理の抑制解除制御指示を実行するためのBG処理抑制解除API部(記述501)を有する。
記述500は、記述502、503を有する。記述502は、BG処理抑制APIであるsetBackgroundDisabled関数の定義部である。記述502は、引数としてkey(実行を指示したアプリの識別用オブジェクト)、disabledTime(BG処理の抑制期間)、disabledCancelFlag(BG処理抑制解除フラグ)を受け取る。その後、記述502は、受け取った引数にsetBackgroundDisabled関数の実行を表すフラグ(“true”)を第一引数として加え、実処理としてsetBackgroundInhibitStatus関数(記述510)を実行する。ここで第一引数として追加されるフラグを以下、「BG処理抑制フラグ」と呼ぶ。なお、記述510の内部処理の詳細は、図6を用いて後述する。
記述501で引数に指定するパラメータを説明する。第一引数keyは、記述502のBG処理抑制APIを実行したアプリの識別用オブジェクトを指定する。これは、アプリPF340が、BG処理の抑制を指示したアプリを特定するために使用する。そのため、BG処理の抑制を指示したアプリを一意に特定できればいずれの値を用いてもよく、本実施形態では、第一引数keyとして、実行したアプリ名を設定するものとする。第二引数disabledTimeは、アプリがBG処理を抑制する所定の期間を指定する。アプリPF340は、記述510の内部処理で抑制期間のカウント処理を行い、カウントがゼロになったタイミングでBG処理管理部331に対しBG処理の抑制解除指示を行う。ここで、抑制期間として指定される値の単位は、どのようなものを用いてもよい。第三引数disabledCancelFlagは、画像処理装置100において特定のイベント発生時に、BG処理管理部331に対しBG処理の抑制解除指示を実行するか否かを判定するためのBG処理抑制解除フラグを指定する。なお、本実施形態において、特定のイベントとは、画像処理装置100のシステムがスリープ状態に遷移する、または、UI表示装置203上の表示中画面がデフォルト画面へ遷移するイベントとする。
第三引数に“true”を指定した場合、特定のイベント発生時に、BG処理管理部331に対しBG処理の抑制解除指示を行う。つまり、特定のイベントが発生した場合には、BG処理の抑制を強制的に解除することとなる。ここで、スリープ状態遷移イベントとは、例えば、ユーザ入力装置202からの操作が何もないなど画像処理装置100が一定期間動作していない状態で発生する省電力モードへの移行イベントである。また、デフォルト画面遷移イベントとは、スリープ状態遷移イベントと同様の条件下で発生する、UI表示装置203の表示を自動的にデフォルト画面(ホーム画面など)に戻すイベントである。すなわち、本実施形態において、特定のイベントは、画像処理装置100の動作が待機状態に発生するものと定義され、アプリがBG処理の抑制制御指示を実行する必要がない状態と判断できる。したがって、このようなイベントの発生を、抑制解除フラグの条件とする。なお、抑制解除フラグの条件は、画像処理装置100の動作が待機状態と判断できる状態遷移イベントであればよく、これらに限定するものではない。
図5におけるAPIの実装定義部分の説明に戻る。記述503は、記述502と同様にBG処理抑制APIであるsetBackgroundDisabled関数の定義部である。記述503は、引数として、第一引数key、および第二引数disabledTimeを受け取る。その後、記述503は、受け取った引数に抑制解除フラグを示すdisabledCancelFlagの値を“true”として加えてsetBackgroundDisabled関数(記述502)を実行する。従って、アプリがBG処理抑制API部(記述500)で提供されるAPIを利用したBG処理の抑制指示を行う場合、アプリは少なくともアプリ名などの自身のアプリの識別用オブジェクト、及びBG処理の抑制期間を指定する必要がある。
記述501は、記述504を有する。記述504は、BG処理抑制解除APIであるsetBackgroundEnabled関数の定義部である。記述504は、引数として、第一引数にkey(実行したアプリの識別用オブジェクト)を受け取る。その後、記述504は、受け取った引数にsetBackgroundEnabled関数の実行を表すフラグ(“false”)を第一引数として加え、実処理としてsetBackgroundInhibitStatus関数(記述511)を実行する。記述504の第一引数は、setBackgroundDisabled関数(記述502、503)の実行時に指定したkeyと同一のものを指定し、本実施形態では実行したアプリ名を指定する。これは、アプリPF340が、BG処理の抑制を指示していたアプリの抑制解除指示であることを特定するために使用される。また、記述511の内部処理では、記述504が実行された場合、BG処理の抑制期間、及びイベント発生時のBG処理抑制解除フラグを考慮する必要がない。そのため、記述504の実行においては、記述502のようなdisabledTime、disabledChancelFlagの指定を必要としていない。かつ、記述504では、記述511の実行のため内部的に適当な値を引数に設定している。本実施形態では、引数の値を順に“false”、key(アプリ名)、“0”、“false”とする。
[処理フロー]
図6(a)は、アプリPF340がクラスライブラリ群352としてアプリに提供する、画像処理装置100のBG処理を抑制及び抑制解除する制御指示を行うAPIの内部処理のフローチャートである。すなわち、本処理は、図5で定義されるBG処理抑制API部(記述500)及びBG処理抑制解除API部(記述501)が内部的に実行するsetBackgroundInhibitStatus関数(記述510、511)の処理である。また、図6(b)(c)はそれぞれ、処理に付随してアプリPF340が並列処理で実行する、イベント検知処理及びBG処理抑制期間のカウント処理のフローチャートを示す。なお、図6中において、破線矢印は、処理中で用いられる値等の更新に伴って、他の処理の開始や判定の契機となるタイミングを示す。
まず、図6(a)を用いてsetBackgroundInhibitStatus関数の処理について説明する。アプリからBG処理抑制API部(記述500)またはBG処理抑制解除API部(記述501)が実行されると、S601にて、アプリPF340は、アプリが実行したAPIの判定を行う。この判定では、setBackgroundInhibitStatus関数の第一引数で指定されるパラメータを用いる。パラメータが“true”ならばsetBackgroundDisabled関数(記述502、503)が実行され、パラメータが“false”ならばsetBackgroundEnabled関数(記述501)が実行されたものとみなす。
setBackgroundDisabled関数が実行された場合(S601にてYES)、S602にて、アプリPF340は、実行したアプリの抑制解除フラグの指定を判定する。この判定には、setBackgroundInhibitStatus関数(記述510)の第四引数で指定されるパラメータを用いる。フラグの指定が“true”の場合(S602にてYES)で、かつ、初回に行われる処理の場合、S603にて、アプリPF340は、画像処理装置100で所定のイベント(ここでは、スリープ/デフォルト画面遷移イベント)が発生したことを受け取るリスナーの登録を行う。初回でない場合は、リスナーの登録は行われない。イベント検知時の処理は、アプリPF340において、setBackgroundInhibitStatus関数(記述510)の処理と並列して実行される。
その後、S604にて、アプリPF340は、実行を指示したアプリがtrueの実行アプリ名のリストに登録済みのアプリか否かを判定する。trueの実行アプリ名のリストとは、BG処理抑制API部(記述500)を実行したアプリ名を保存するものであり、プログラム上の可変長配列の変数などで定義される。なお、この判定には、setBackgroundInhibitStatus関数(記述510)の第二引数で指定されるパラメータを用いる。
trueの実行アプリ名のリストに実行を指示したアプリが登録済みである場合(S604にてYES)、S607へ進む。trueの実行アプリ名のリストに実行を指示したアプリが登録済みではない場合(S604にてNO)、S605にて、アプリPF340は、trueの実行アプリ名のリストにアプリ名を登録する。その後、S606にて、アプリPF340は、trueの実行アプリカウント数をインクリメントする。trueの実行アプリカウント数とは、BG処理抑制API部(記述500)を実行したアプリ数を保存するものであり、プログラム上の整数型の変数などで定義される。実行アプリカウント数は、後述するBG処理抑制フラグの状態の更新判定に用いられる。S607にて、アプリPF340は、スレッドが存在しない場合のみ、アプリの指定したBG処理を抑制する期間の時間経過をカウントするためのスレッドを作成する。このスレッドは、図6(c)に示す、アプリPF340における、カウントスレッド640の処理としてsetBackgroundInhibitStatus関数(記述510)の処理と並列して実行される。
S608にて、アプリPF340は、アプリが指定したBG処理を抑制する期間の設定更新処理を行う。ここでの設定更新には、setBackgroundInhibitStatus関数(記述510)の第三引数で指定されるパラメータを用いる。カウントスレッド640の処理内でカウント中のtrueの実行アプリ抑制期間に対し、アプリPF340は、アプリ指定のパラメータで指定される抑制期間との論理和を取ることで更新を行う。更新されたtrueの実行アプリ抑制期間は、図6(c)に示すカウントスレッド640の処理内で参照される。その後、S614へ進む。
同様に、フラグの指定が“false”の場合には、(S602にてNO)S609にて、アプリPF340は、実行を指示したアプリがfalseの実行アプリ名のリストに登録済みのアプリか否かを判定する。falseの実行アプリ名のリストは、BG処理抑制API部(記述500)を実行したアプリ名を保存するものであり、プログラム上の可変長配列の変数などで定義される。なお、この判定には、setBackgroundInhibitStatus関数(記述510)の第二引数で指定されるパラメータを用いる。
falseの実行アプリ名のリストに実行を指示したアプリが登録済みである場合(S609にてYES)、S612へ進む。falseの実行アプリ名のリストに実行を指示したアプリが登録済みではない場合(S609にてNO)、S610にて、アプリPF340は、falseの実行アプリ名のリストにアプリ名を登録する。その後、S611にて、アプリPF340は、falseの実行アプリカウント数をインクリメントする。falseの実行アプリカウント数は、BG処理抑制API部(記述500)を実行したアプリ数を保存するものであり、プログラム上の整数型の変数などで定義される。実行アプリカウント数は、後述するBG処理抑制のフラグの状態の更新判定にて用いられる。S612にて、アプリPF340は、スレッドが存在しない場合のみ、アプリの指定したBG処理を抑制する期間の時間経過をカウントするためのスレッドを作成する。このスレッドは、アプリPF340において、図6(c)に示すカウントスレッド640の処理としてsetBackgroundInhibitStatus関数(記述510)の処理と並列して実行される。
S613にて、アプリPF340は、アプリの指定したBG処理を抑制する期間の設定更新処理を行う。ここでの設定更新には、setBackgroundInhibitStatus関数(記述510)の第三引数で指定されるパラメータを用いる。図6(c)のカウントスレッド640の処理内でカウント中のfalseの実行アプリ抑制期間に対し、アプリPF340は、アプリ指定のパラメータで指定される抑制期間との論理和を取ることで更新を行う。更新されたfalseの実行アプリ抑制期間は、図6(c)のカウントスレッド640の処理内で参照される。その後、S614へ進む。
S614にて、アプリPF340は、true、false各々の両方の実行アプリカウント数を合計する。
S615にて、アプリPF340は、合計の実行アプリカウント数からBG処理抑制フラグの状態を更新する。合計の実行アプリカウント数が“0”の場合、アプリPF340は、BG処理抑制フラグを“false”にする。合計の実行アプリカウント数が“1”以上の場合、アプリPF340はBG処理抑制フラグを“true”にする。このBG処理抑制フラグは、BG処理管理部331によりBG処理の実行開始の可否の判定に用いられる。BG処理抑制フラグが“false”であれば、BG処理管理部331は該当するプロセスに対しBG処理の実行を指示できる。
一方、setBackgroundEnabled関数(記述501)が実行された場合(S601にてNO)、S616にて、アプリPF340は、APIを実行したアプリが、true、false各々の実行アプリ名のリストに存在するかの情報を取得する。この取得には、アプリPF340がsetBackgroundInhibitStatus関数(記述511)の第二引数で指定されるパラメータを用いて、true、false各々の実行アプリ名のリストの探索することで実現される。情報の取得後、S617にて、アプリPF340は、実行したアプリの抑制解除フラグの指定を判定する。
S617の判定にてフラグが“true”の場合、S618にて、アプリPF340は、true実行アプリ名のリストから当該アプリ名を削除する。その後、S619にて、アプリPF340は、trueの実行アプリカウント数をデクリメントする。そして、S620にて、アプリPF340は、trueの実行アプリカウント数が“0”か否か、すなわち、BG処理の抑制指示を行ったアプリが存在しているか否かを判定する。trueの実行アプリカウント数が“0”でない場合(S620にてNO)、S626へ進む。trueの実行アプリカウント数が“0”である場合(S620にてYES)、S621にて、アプリPF340は、trueの実行アプリ抑制期間を“0”に更新する。その後、S626へ進む。
同様に、S617の判定にてフラグが“false”の場合、S622にて、アプリPF340は、false実行アプリ名のリストから当該アプリ名を削除する。その後、S623にて、アプリPF340は、falseの実行アプリカウント数をデクリメントする。そして、S624にて、アプリPF340は、falseの実行アプリカウント数が“0”か否か、すなわち、BG処理の抑制指示を行ったアプリが存在しているか否かを判定する。trueの実行アプリカウント数が“0”である場合(S624にてNO)、S626へ進む。falseの実行アプリカウント数が“0”である場合、S625にて、アプリPF340は、falseの実行アプリ抑制期間を“0”に更新する。
S626にて、アプリPF340は、true、false各々の実行アプリカウント数の合算を行う。その後、S615へ進み、アプリPF340は、合計の実行アプリカウント数からのBG処理抑制フラグの状態の更新を行う。そして、本処理フローを終了する。
なお、S617の判定にて、第二引数指定のパラメータがtrueおよびfalseのいずれの実行アプリ名のリストにも存在しなかった場合、アプリPF340は以降の処理を実行せず、本処理フローを終了する。これは、アプリがsetBackGroundDisabled関数(記述502、503)を実行する前にsetBackGroundEnabled関数(記述501)を実行した場合に相当する。その場合、アプリPF340は、setBackgroundInhibitStatus関数(記述510、511)の処理を終了する。
次に、図6(b)を用いて、イベント検知処理について説明する。図6(a)のS603でスリープ/デフォルト画面遷移イベント検知リスナーを登録した後、S631にて、アプリPF340は、イベントの発生を検知した場合にそのリスナーに対応するイベント通知関数の処理を開始する。すなわち、アプリPF340は、所定のイベントが発生しない限り、図6(b)に示す処理を実行しない。
S632にて、アプリPF340は、イベント検知フラグを“true”に更新する。更新されたイベント検知フラグは、図6(c)に示すカウントスレッド640の処理内で参照される。
最後に、図6(c)を用いて、BG処理抑制期間のカウント処理について説明する。図6(a)のS608またはS612のいずれかにて、カウントスレッド640を作成した後、S641にて、アプリPF340は、イベント検知フラグを“false”に設定する。本ステップは、アプリPF340によりカウントスレッド640の作成時の初期化処理として実行される。以降、アプリPF340は、実行アプリ抑制期間、及びイベント検知フラグの状態を元に、カウント処理を実行する。なお、実行アプリ抑制期間は、setBackgroundInhibitStatus関数(記述510、511)の処理でも更新される。また、イベント検知フラグは、図6(b)のイベント検知処理でも更新される。
S642にて、アプリPF340は、false実行アプリ抑制期間が経過しているか否かを判定する。false実行アプリによるBG処理抑制期間中であれば(S642にてNO)、アプリPF340はその時点でS648以降のtrue、false各々の実行アプリ抑制期間カウント処理を実行する。
false実行アプリ抑制期間が経過していた場合(S642にてYES)、S643にて、アプリPF340は、true実行アプリ抑制期間が経過しているか否かを判定する。true実行アプリによるBG処理抑制期間が経過済みであれば(S643にてYES)、アプリPF340は、その時点でS645以降のBG処理抑制フラグの解除処理を実行する。
true実行アプリ抑制期間が経過していなかった場合(S643にてNO)、S644にて、アプリPF340は、イベント検知フラグが“true”か否かを確認する。イベント検知フラグが“true”の場合(S644にてYES)、すなわち、BG処理抑制期間のカウント処理中にスリープ/デフォルト画面遷移イベントが発生していれば、アプリPF340は、S645以降のBG処理抑制フラグの解除処理を実行する。イベント検知フラグが“false”の場合(S644にてNO)、アプリPF340は、S648以降のtrue、false各々の実行アプリ抑制期間カウント処理を実行する。
S645にて、アプリPF340は、true、false各々の実行アプリ名のリストから登録されていた実行アプリ名を全て削除する。S646にて、アプリPF340は、true、false各々の実行アプリ抑制期間を“0”に更新する。S647にて、アプリPF340は、BG処理抑制フラグの状態を“false”に更新する。そして、本処理フローを終了する。
S648にて、アプリPF340は、カウントスレッド640の処理を一定時間スリープさせる。その後、S649にて、アプリPF340は、一定時間、カウントスレッド640の処理をスリープさせた時間の分true、false各々の実行アプリ抑制期間を減算して更新する。そして、アプリPF340はS642以降の判定処理を繰り返す。
[処理シーケンス]
次に、本実施形態におけるアプリからの画像処理装置100のBG処理を抑制する処理について、図7を用いて説明する。図7は、アプリA381がBG処理抑制指示API及びBG処理抑制解除APIを実行する際の、アプリPF340によるBG処理抑制指示及び抑制解除指示の処理手順を示すシーケンス図である。また、図7は、管理者720によるアップデート管理部371を介したBG処理実行手順のシーケンスも示す。
S701〜S707は、アプリA381の処理ステップを表しており、本実施形態では、図4に記載のBG処理抑制処理部(記述400)からの処理を実行する。S711〜S714は、BG処理抑制指示APIの指示により並列に開始されるアプリPF340のイベント検知処理及びBG処理抑制期間のカウント処理の処理ステップを表す。S721〜S738は、BG処理抑制指示APIの指示とは独立して実行される管理者720からのBG処理実行指示の処理ステップを表す。
S701にて、アプリA381は、BG処理抑制API(記述502)を使用したBG処理の抑制をアプリPF340に指示する。本実施形態では、アプリA381が図4の記述401で記載される引数を有した状態でBG処理抑制APIを実行する。
S702にて、アプリPF340は、アプリA381からのBG処理抑制指示に基づくBG処理抑制フラグの更新処理として、当該フラグを“true”にする。S702で行われる処理の詳細は、図6のS601〜S608、S614、及びS615に該当する。S702の処理に付随して、S703にて、アプリPF340は、アプリA381が指定したBG処理の抑制期間をカウントするカウントスレッド640を作成する。S702で行われる処理の詳細は、図6(a)のS607もしくはS612に該当する。
S704にて、アプリA381は、画像処理装置100に対する制御指示を行う。S704で行われる処理は図4の記述402に該当し、アプリA381の有する固有の機能である。S705にて、アプリA381は、BG処理抑制解除API(記述504)を使用した、BG処理の抑制解除をアプリPF340に指示する。本実施形態では、アプリA381が図4の記述403で記載される引数を有した状態で、BG処理抑制解除APIを実行する。S706にて、アプリPF340は、アプリA381からのBG処理抑制解除指示に基づくBG処理抑制フラグの更新処理として、当該フラグを“false”にする。S706で行われる処理の詳細は、図6(a)のS601、S616〜S619、S626、及びS615に該当する。S706の処理に付随して、S707にて、アプリPF340は、アプリA381が指定したBG処理の抑制期間のカウントをゼロに更新する。S707で行われる処理の詳細は、図6(a)のS620〜S621に該当する。
S711にて、アプリPF340は、カウントスレッド640を介して、アプリA381の指定したBG処理の抑制期間のカウントをカウントがゼロ以下になるまで繰り返す。S711で行われる処理の詳細は、図6(c)のS641〜S644、S648、及びS649の一連の処理に該当する。また、S712として、S711の内部で行われる、カウントスレッド640が実行する抑制期間のカウント処理の詳細は、図6(c)のS648、およびS649に該当する。
ここで、S713では、スリープ/デフォルト画面遷移イベントを検知した場合、または、アプリA381が指定したBG処理の抑制期間のカウントが経過した場合の処理を記載している。すなわち、イベント検知処理の処理(図6(b))が実行され、かつ図6(c)のS644の判定が行われた状態、または、図6のS643の判定がYesの場合に該当する。
S713の条件が満たされた場合、S714にて、カウントスレッド640は、BG処理抑制フラグを“false”に更新する。S714で行われる処理の詳細は、図6(c)のS645〜S647に該当する。
S721にて、管理者720は、Webブラウザ310に対し、アップデート管理部371へアクセスするURL(Uniform Resource Locator)を入力し、接続を要求する。S722にて、Webブラウザ310は、通信部300を介してHTTP Requestをアップデート管理部371へ送信する。S723にて、アップデート管理部371は、HTTP Requestに対し、アップデート管理操作画面を構成するHTMLデータ(不図示)をHTTP Responseとして通信部372を介してWebブラウザ310に送信する。S724にて、Webブラウザ310は、受け取ったHTMLデータを解析し、Webブラウザ310上にアップデート管理操作画面の表示を行う。
S725にて、管理者720は、Webブラウザ310に対し、記憶装置208に書き込まれたファームウェアをBG処理で更新する指示を入力し、その指示の実行をアップデート管理部371へ要求する。S726にて、Webブラウザ310は、通信部300を介してHTTP Requestをアップデート管理部371へ送信する。S727にて、アップデート管理部371は、Webブラウザ310からのリクエストを受け、BG処理管理部331に対しファームウェアの更新のBG処理の実行を指示する。
S728、S729にて、BG処理管理部331は、BG処理を実行可能な状態であるか否かを、BG処理抑制フラグを有する各処理部に確認し、各々のフラグの状態を受け取る。本実施形態では、アプリPF340がBG処理抑制フラグを有しており、BG処理管理部331はアプリPF340に対しBG処理抑制フラグの状態を確認する。
BG処理抑制フラグが一つでも“true”である場合、BG処理管理部331は、S730におけるBG処理抑制フラグの解除待ち状態となる。つまり、BG処理抑制が複数のアプリから重複して指示されている場合、全てのフラグが解除されるまで抑制が継続される。S730の処理では、S731にて、BG処理管理部331は、BG処理抑制フラグが全て“false”になるまでループ処理を実行する。すなわち、S732、S733におけるBG処理抑制フラグの状態の確認、及びS734における一定時間のWait処理である。S732、S733の処理は、S728、S729と同等の処理である。
BG処理抑制フラグが全て“false”である場合、BG処理管理部331は、S735におけるBG処理実行開始状態となる。S735の状態では、BG処理管理部331がS727のようにBG処理の実行指示を受けた場合に、S736として、該当するプロセスにBG処理の実行を指示する。本実施形態では、アップデート管理部371からのファームウェアの更新のBG処理の実行を、ファームウェアの更新を行うプロセスに対し指示する。
S737にて、アップデート管理部371は、一連の処理終了後に、リクエストに対する処理の完了通知画面を構成するHTMLデータ(不図示)をHTTP Responseとして通信部372を介してWebブラウザ310に送信する。S738にて、Webブラウザ310は、受け取ったHTMLデータを解析し、Webブラウザ310上に処理の完了通知画面の表示を行う。
以上、第一の実施形態では、アプリがBG処理抑制を指示する間は、画像処理装置100におけるBG処理の実行を抑制することができる。このことから、画像処理装置100はアプリを安定して動作させる事が実現可能となる。
また、アプリがBG処理の抑制を指示する際にBG処理の抑制を解除する情報を付与することで、画像処理装置100はBG処理の抑制を自発的に解除しBG処理を実行することができる。このことから、画像処理装置100はBG処理の実行を必要以上に抑制する状態を避けることが可能となる。
なお、本実施形態では、アップデート管理部371がBG処理管理部331に対しBG処理実行を指示する際に、管理者720からのWebブラウザ310を介した実行指示を行っている。しかしながら、BG処理管理部331がBG処理実行の指示を受け、BG処理抑制フラグの状態を判断してBG処理を実行する事が可能であれば、この構成に限定するものではない。従って、例えば、アップデート管理部371がUI表示装置203に操作画面を有し、管理者720からの操作画面を介したBGでのアップデート指示を行う形式でもよいし、特定の日時の経過で自動的にBGでのアップデート指示を行う形式でもよい。また、画像処理装置100で実行されたジョブのログを定期的に収集するジョブログ管理部(不図示)におけるBGでのログ収集の実行のような、異なる処理からのBG処理の実行指示でもよい。
<第二の実施形態>
次に本発明の第二の実施形態を説明する。第一の実施形態の構成では、BG処理抑制APIを実行するアプリが大量に存在する場合、結果として画像処理装置100のBG処理を長期間にわたって実行不可能な状態に陥れてしまう。例えば、画像処理装置100のUI表示装置203に操作画面を提供するアプリの場合、BG処理実行により操作性低下の影響を受けてしまう。そのため、アプリPF340がアプリに対しBG処理の抑制指示を許可し、結果として画像処理装置100のBG処理実行を長期間の抑制を継続することは妥当である。一方、例えば画像処理装置100で実行されたジョブのログを定期的に収集するアプリなど、BG処理が発生したとしてもパフォーマンスに大きく影響しないアプリの場合、BG処理抑制APIによりBG処理を抑制してまで自身の処理を実行する必要性は低い。
上記アプリの特性から、第二の実施形態では、アプリPF340がBG処理抑制APIを実行するアプリの種類や状態に応じて、BG処理抑制APIの実行に制限を設ける処理を追加する。以下、図8〜図11を用いて第一の実施との差分を説明する。
第二の実施形態では、BG処理抑制APIの実行時に制限を受けるアプリとそうでないアプリを予め定義する。本実施形態において、BG処理抑制に対する制限を受けないアプリに分類されるものは、UI表示装置203に操作画面を提供するアプリ(以下「LUIアプリ」)、システムアプリ、ログインアプリ、起動処理中のアプリである。このようなアプリは、主にユーザの操作性に関するパフォーマンスが要求されるアプリであることから、制限を受けないアプリに分類される。また、たとえBG処理抑制中に特定のイベントが発生した場合でも、その抑制は解除不可として扱われる。上記以外のアプリは、BG処理抑制APIの実行時に制限を受けるアプリに分類される。こちらに分類されるアプリは、GB処理抑制の実行自体が制限されるものとして扱われる。ここで、システムアプリとは、システムアプリ部370上に存在するアプリPF340を構成する機能を提供するアプリである。また、ログインアプリとは、画像処理装置100においてユーザ認証に関わる処理を行うアプリである。更に、起動処理中のアプリとは、フレームワーク350により停止状態から起動開始中に状態を変化している最中のアプリである。
図8〜図10を用いて、上記に示した制限を受けないアプリの判断方法について説明する。また、図11を用いて、BG処理抑制APIの実行に制限を設けた際のBG処理抑制APIの内部処理について説明する。
図8は、アプリPF340が有する、BG処理抑制APIの実行時に制限を受けないアプリの構成、及びマニフェストファイル(以下「MF」)の一例である。MFとは、フレームワーク350を構成するOSGi351により、アプリのライフサイクル及び依存関係などを管理するためのメタデータを記載したものである。アプリPF340が有するアプリは、自身の機能を構成するJARファイルに加え、MFを有しているものとする。
図8(a)は、ライフサイクル管理部373のアプリの構成及びMFの一例である。ライフサイクル管理部373は、自身の機能を構成するJARファイル800及びMF801を有する。MF801は、フレームワーク350上で機能するための一般的なメタデータ802に加えシステムアプリ設定宣言803を有する。システムアプリ設定宣言803を有するアプリは、フレームワーク350によりシステムアプリとして判断され、システムアプリ部370で管理される。また、システムアプリ設定宣言803を有しないアプリは、フレームワーク350により一般のアプリとして判断されアプリ部380で管理される。本実施形態では、システムアプリ設定宣言803を有するアプリは、BG処理抑制APIの実行時に制限を受けない。
図8(b)は、アプリA381のアプリの構成及びMFの一例である。アプリA381は、自身の機能を構成するJARファイル810及びMF811を有する。MF811は、フレームワーク350上で機能するための一般的なメタデータ802に加え最小画面サイズ宣言813を有する。最小画面サイズ宣言813は、LUIアプリが画像処理装置100のUI表示装置203上に画面を表示する際に必要とする最小の画面サイズを定義する宣言である。これは、画像処理装置100が有するUI表示装置203が、画像処理装置100の機種ごとに異なる場合があるため、画像処理装置100でLUIアプリが表示可能か否かの判断に用いられる。本実施形態では、最小画面サイズ宣言813を有するアプリは、LUIアプリと判断されBG処理抑制APIの実行時に制限を受けない。
図8(c)は、ログインアプリ820のアプリの構成及びMFの一例である。ここで、本実施形態では、第一の実施形態の構成に加え、アプリPF340は、システムアプリ部370にログインアプリ820を有する。ログインアプリ820は、自身の機能を構成するJARファイル821及びMF822を有する。MF822は、フレームワーク350上で機能するための一般的なメタデータ823に加えログインアプリ設定宣言824を有する。ログインアプリ設定宣言824を有するアプリは、フレームワーク350により認証を行うログインアプリとして判断されシステムアプリ部370で管理される。本実施形態では、ログインアプリ設定宣言824を有するアプリはBG処理抑制APIの実行時に制限を受けない。
図9(a)は、フレームワーク350上で管理される、アプリPF340上に存在するアプリのアプリ管理テーブルの構成例を示す。アプリ管理テーブルは、記憶装置208などにて保持される。フレームワーク350は、アプリPF340上に存在するアプリの有するMFの情報をアプリ管理テーブルに登録する。フレームワーク350は、起動状態情報管理を行うため、アプリ管理テーブルを用いる。アプリ管理テーブルは、bundle900、state901、メタデータ情報902、SystemApplicationType903、およびMinimumConsoleSize904を有する。
bundle900は、アプリ記憶領域360上に存在するアプリ名である。本実施形態では、フレームワーク350が、アプリが有するMFに記載のアプリ名(Bundle−Name)を登録する。そのため、フレームワーク350がbundle900に登録するアプリ名としては、ライフサイクル管理部373を“LifeCycleManagementService”のアプリ名として登録している。同様に、アップデート管理部371を“UpdateManagementService”、アプリA381を“AppliA”としてそれぞれ登録している。また、本実施形態で加えたログインアプリ820を“LoginApplication”、及び第一の実施形態にて示した構成から新たに加えるアプリB910を“AppliB”としてそれぞれ登録している。ここで、アプリB910は、アプリA381においてBG処理の抑制を含む制御指示を行う処理実装部(図4)と同等の処理を有する。また、アプリB910は、アプリ部380で管理されるアプリであり、かつ、LUIアプリではないアプリである。また、アプリB910は、フレームワーク350により、その起動状態が「停止状態」であるアプリとする。そのため、図9(a)に示す状態では、アプリB910は、アプリPF340によりBG処理抑制APIの実行時に制限を受けるアプリと判断される。
state901は、フレームワーク350が管理する、bundle900に記載されたアプリの起動状態を示す。本実施形態では、ライフサイクル管理部373、アップデート管理部371、アプリA381、ログインアプリ820は、「起動状態(ACTIVE)」となっている。また、アプリB910は、インストールはされているが起動されていない「停止状態(INSTALLED)」となっている。メタデータ情報902は、アプリが所有するMFに記載された一般的なメタデータを示す。本実施形態では、例えばアプリのバージョン情報(version)などが記載されているものとする。
SystemApplicationType903は、アプリが所有するMFに記載されたシステム/ログインアプリ設定宣言を有する。本実施形態では、図8(a)、ライフサイクル管理部373、アップデート管理部371がシステムアプリ設定宣言803(“SystemApplication”)を有する。また、図8(c)に示すように、ログインアプリ820がログインアプリ設定宣言824(“LoginService”)を有する。MinimumConsoleSize904は、アプリが所有するMFに記載された最小画面サイズ宣言を有する。本実施形態では、図8(b)に示すように、アプリA381が、最小画面サイズ宣言813(640x400)を有する。
図9(b)、(c)は、フレームワーク350が、図9(a)に示す状態から、アプリB910の起動状態を変化させた際のアプリ管理テーブルである。詳細については図10を用いて説明する。
図10は、ライフサイクル管理部373のアプリのライフサイクル管理における、アプリB910の起動処理の手順を示すフローチャートである。
S1001にて、画像処理装置100の管理者1000は、Webブラウザ310に対し、ライフサイクル管理部373へアクセスするURLを入力し接続を要求する。Webブラウザ310は、通信部300を介してHTTP Requestをライフサイクル管理部373に送信する。
S1002にて、ライフサイクル管理部373は、ライフサイクル管理要操作画面を構成するHTMLデータ(不図示)を、通信部374を介してWebブラウザ310に送信する。Webブラウザ310は、受け取ったHTMLデータを解析し、Webブラウザ310上にライフサイクル管理操作画面の表示を行う。
S1003にて、管理者1000は、Webブラウザ310に対し、アプリB910を起動する指示を入力し、その指示の実行をライフサイクル管理部373へ要求する。Webブラウザ310は、通信部300を介してHTTP Requestをライフサイクル管理部373に送信する。
S1004にて、ライフサイクル管理部373は、Webブラウザ310から実行指示を受け、フレームワーク350に対しアプリB910の起動を開始する指示を送信する。このとき、フレームワーク350は、アプリB910の起動処理を開始するとともに、アプリ管理テーブルにて管理されているアプリB910のstate901を「STARTING」に更新する。この状態のアプリ管理テーブルを、図9(b)に示す。フレームワーク350は、アプリB910のstate901を「INSTALLED」から「STARTING」に変化させ、これにより、アプリB910が起動処理中のアプリであることを示す。この状態の時、アプリB910は、アプリPF340によりBG処理抑制の実行に制限を受けないアプリと判断される。
S1005にて、フレームワーク350は、アプリB910の起動処理を完了させ、アプリ管理テーブルにて管理されているアプリB910のstate901を「ACTIVE」に更新する。この状態のアプリ管理テーブルを、図9(c)に示す。フレームワーク350は、アプリB910のstate901を「STARTING」から「ACTIVE」に変化させ、これにより、アプリB910が起動状態のアプリであることを示す。この状態の時、アプリB910は、アプリPF340によりBG処理抑制の実行に制限を受けるアプリと判断される。
S1006にて、ライフサイクル管理部373は、一連の処理終了後にリクエストに対する処理の完了通知画面を構成するHTMLデータ(不図示)を、通信部374を介してWebブラウザ310に送信する。Webブラウザ310は、受け取ったHTMLデータを解析し、Webブラウザ310上に処理の完了通知画面の表示を行う。そして、本処理フローを終了する。
なお、本実施形態では、フレームワーク350がアプリのライフサイクル管理を実行するため、管理者1000からのWebブラウザ310を介したライフサイクル管理部373による実行指示を行っている。しかしながら、例えばユーザ入力装置202を介してフレームワーク350に対する要求指示コマンドを入力するなど、管理者1000がフレームワーク350に対しライフサイクル管理の要求を指示できる構成を有していればよい。そのため、この構成に限定するものではない。
図11は、アプリPF340がアプリに提供する、画像処理装置100のBG処理を抑制及び抑制解除する制御指示を行うAPIの内部処理のフローチャートである。なお、図6に記載したステップ番号と同一のステップ番号の処理は、図6の処理と同等である。そのため、図6からの差分のステップのみ説明する。
setBackGroundDisabled関数(記述502、503)が実行された場合(S601にてYES)、S1101にて、アプリPF340は、フレームワーク350が有するアプリ管理テーブルから実行したアプリの情報を取得する。アプリPF340が取得する情報は、実行したアプリのbundle900の列に対応する、state901、SystemApplicationType903、およびMinimumConsoleSize904である。
S1102にて、アプリPF340は、取得したアプリ情報に基づき、実行したアプリがBG処理抑制の実行に制限を受けるアプリか否かを判定する。すなわち、アプリPF340が、実行したアプリのstate901が「STARTING」であるか否かを判定する。もしくは、アプリの種類判別として、SystemApplicationType903がSystemApplication/LoginServiceであるか、MinimumConsoleSize904に記載があるか否かを判定する。つまり、BG処理抑制の実行に制限を受けないという所定の条件を満たすか否かが判定される。
実行したアプリがBG処理抑制の実行に制限を受けないアプリであれば(S1102にてYES)、アプリPF340は、S602以降の処理を開始する。制限を受けるアプリである場合(S1102にてNO)、アプリPF340は、S602以降の処理を行わずに、setBackgroundInhibitStatus関数(記述510)の処理を終了する。
以上、第二実施形態では、BG処理抑制APIを実行可能なアプリに制限を設けることで、不要なBG処理抑制APIの実行により画像処理装置100のBG処理が長期間実行不可能な状態に陥ることを回避できる。
なお、本実施形態では、アプリPF340がBG処理抑制APIの実行可能なアプリの特定のため独自に拡張したMFの項目を用いる。しかしながら、アプリPF340が、BG処理抑制を実行可能とする条件を一意に特定可能な項目をアプリが有していれば、この構成に限定するものではない。また、アプリPF340は、BG処理抑制APIの実行可能なアプリとしてLUIアプリ、システムアプリ、ログインアプリ、起動処理中のアプリを対象とした。しかしながら、画像処理装置100でBG処理が実行された際にパフォーマンス低下の影響が懸念される処理を有するアプリであれば、他の種類のアプリでもよい。また、BG処理抑制の実行に制限を受けるか否かの条件において、画像処理装置の機能やアプリの機能に応じた上記以外の条件を用いても構わない。
<第三の実施形態>
本発明の第三の実施形態を説明する。第二の実施形態では、BG処理抑制を実行可能なアプリが、特定のアプリに限定されている。しかしながら、当該条件を満たさないアプリであってもBG処理の実行によりパフォーマンス低下の影響を受けてしまうアプリが存在する可能性がある。そのため、当該条件を満たさないアプリがBG処理抑制APIを実行した場合の処理を変更する。以下、図12を用いて第二の実施形態からの差分を説明する。
図12は、アプリPF340がアプリに提供する、画像処理装置100のBG処理を抑制及び抑制解除する制御指示を行うAPIの内部処理のフローチャートである。なお、図11に記載されたステップ番号と同一のステップ番号の処理は、図11の処理と同等である。そのため、図11からの差分のみ説明する
S1102の判定の結果、実行したアプリがBG処理抑制の実行に制限を受けないアプリである場合(S1102にてYES)、アプリPF340は、S602以降の処理を開始する。制限を受けるアプリであった場合(S1102にてNO)、アプリPF340は、S603以降の処理を開始する。すなわち、アプリPF340は、アプリが実行したBG処理抑制APIを記述503のsetBackGroundDisabled関数の実行とみなす。つまり、アプリPF340がアプリに対し、イベント検知をした場合には、強制的にBG処理抑制を解除するような状態に制限してBG処理抑制APIの実行を許可する、ということである。
以上、第三の実施形態では、BG処理抑制の実行可能なアプリに設けた制限を変更することで、アプリからの過剰なBG処理抑制の実行により画像処理装置100のBG処理が長期間実行不可能な状態になることを回避できる。
なお、本発明は、具体的に開示された実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく種々の変形や変更が可能である。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
100…画像処理装置、101…情報処理装置、340…アプリPF、フレームワーク350、371…アップデート管理部、373…ライフサイクル管理部

Claims (12)

  1. バックグラウンドで処理を実行可能な情報処理装置であって、
    アプリケーションからの要求に応じて処理が実行される際に、バックグラウンドにおける別の処理の実行を制御する制御手段を備え、
    前記制御手段は、
    前記アプリケーションからの要求に応じて、前記別の処理がバックグラウンドにて実行されないように抑制し、
    前記アプリケーションから前記抑制の解除の要求が指示されない場合、前記抑制を開始してから所定の期間が経過した際に、前記抑制を解除することを特徴とする情報処理装置。
  2. 前記制御手段は、予め設定されたイベントが発生した場合、前記所定の期間に関わらず、前記抑制を解除することを特徴とする請求項1に記載の情報処理装置。
  3. 前記アプリケーションからの要求には、前記所定の期間に前記イベントが発生した場合に、前記抑制の解除が可能か否かの設定を含むことを特徴とする請求項2に記載の情報処理装置。
  4. 前記制御手段は、前記アプリケーションから前記所定の期間の設定を受け付けることを特徴とする請求項1乃至3のいずれか一項に記載の情報処理装置。
  5. 前記制御手段は、バックグラウンドにて処理が実行されないように抑制されている間に、前記アプリケーションとは異なる別のアプリケーションから更に抑制が要求され、かつ、前記アプリケーションから設定された期間と前記別のアプリケーションから設定された期間とが異なる場合、より遅く終了する期間まで、前記抑制を継続することを特徴とする請求項4に記載の情報処理装置。
  6. 前記制御手段は、複数のアプリケーションからバックグラウンドにて処理が実行されないように要求されている場合、
    前記複数のアプリケーションのいずれかから前記抑制の解除の要求を受け付けた場合には当該抑制を継続し、
    前記複数のアプリケーションのすべてから前記抑制の解除の要求を受け付けた場合に前記抑制を解除することを特徴とする請求項5に記載の情報処理装置。
  7. アプリケーションの情報を保持する保持手段を更に有し、
    前記制御手段は、アプリケーションからバックグラウンドにおける処理の抑制の要求を受け付けた場合、当該アプリケーションの情報を前記保持手段から取得し、当該アプリケーションの種類に応じて、前記バックグラウンドにおける処理の抑制を実行するか否かを切り替えることを特徴とする請求項1乃至6のいずれか一項に記載の情報処理装置。
  8. 前記保持手段にて保持される、前記バックグラウンドにおける処理の抑制の実行に関するアプリケーションの情報を受け付ける手段を更に有することを特徴とする請求項7に記載の情報処理装置。
  9. 前記制御手段は、前記アプリケーションの種類に応じて、前記バックグラウンドにおける処理の抑制を許可または不可、もしくは、抑制している最中に予め設定されたイベントが発生した際には当該抑制を解除する、のいずれかとして実行を制御することを特徴とする請求項7または8に記載の情報処理装置。
  10. 前記イベントは、前記情報処理装置が待機状態にとなった際に発生するイベントであることを特徴とする請求項2または9に記載の情報処理装置。
  11. バックグラウンドで処理を実行可能な情報処理装置の制御方法であって、
    アプリケーションからの要求に応じて処理が実行される際に、バックグラウンドにおける別の処理の実行を制御する制御工程を有し、
    前記制御工程において、
    前記アプリケーションからの要求に応じて、前記別の処理がバックグラウンドにて実行されないように抑制し、
    前記アプリケーションから前記抑制の解除の要求が指示されない場合、前記抑制を開始してから所定の期間が経過した際に、前記抑制を解除することを特徴とする情報処理装置の制御方法。
  12. コンピュータを、
    アプリケーションからの要求に応じて処理が実行される際に、バックグラウンドにおける別の処理の実行を制御する制御手段として機能させ、
    前記制御手段は、
    前記アプリケーションからの要求に応じて、前記別の処理がバックグラウンドにて実行されないように抑制し、
    前記アプリケーションから前記抑制の解除の要求が指示されない場合、前記抑制を開始してから所定の期間が経過した際に、前記抑制を解除することを特徴とするプログラム。
JP2014235892A 2014-11-20 2014-11-20 情報処理装置およびその制御方法、並びにプログラム Pending JP2016100731A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014235892A JP2016100731A (ja) 2014-11-20 2014-11-20 情報処理装置およびその制御方法、並びにプログラム
US14/931,911 US9626219B2 (en) 2014-11-20 2015-11-04 Information processing apparatus, method of controlling the same and non-transitory computer readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014235892A JP2016100731A (ja) 2014-11-20 2014-11-20 情報処理装置およびその制御方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2016100731A true JP2016100731A (ja) 2016-05-30

Family

ID=56010300

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014235892A Pending JP2016100731A (ja) 2014-11-20 2014-11-20 情報処理装置およびその制御方法、並びにプログラム

Country Status (2)

Country Link
US (1) US9626219B2 (ja)
JP (1) JP2016100731A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018128997A (ja) * 2017-02-10 2018-08-16 キヤノン株式会社 情報処理装置、制御方法、およびプログラム
JP2019197250A (ja) * 2018-05-07 2019-11-14 キヤノン株式会社 情報処理装置、その制御方法およびプログラム

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200125258A (ko) * 2019-04-26 2020-11-04 삼성전자주식회사 어플리케이션 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체
WO2022177061A1 (ko) 2021-02-16 2022-08-25 삼성전자주식회사 비정상적인 앱을 백그라운드에서 미리 로딩하는 전자 장치 및 그의 동작 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6834386B1 (en) * 1999-07-16 2004-12-21 Microsoft Corporation Method and system for regulating background tasks using performance measurements
WO2005060575A2 (en) * 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
US8180407B1 (en) * 2007-05-23 2012-05-15 Sprint Spectrum L.P. Automatic reduction of background wireless communication in a media player mode
JP5269059B2 (ja) 2010-12-24 2013-08-21 京セラ株式会社 通信装置、通信方法およびプログラム
US8621494B2 (en) * 2011-09-12 2013-12-31 Microsoft Corporation Managing processes within suspend states and execution states
JP5803651B2 (ja) 2011-12-20 2015-11-04 コニカミノルタ株式会社 画像形成装置、その制御方法およびその制御プログラム
US9250958B2 (en) * 2012-11-19 2016-02-02 Qualcomm Innovation Center, Inc. System, method, and apparatus for improving application-launch latencies

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018128997A (ja) * 2017-02-10 2018-08-16 キヤノン株式会社 情報処理装置、制御方法、およびプログラム
JP2019197250A (ja) * 2018-05-07 2019-11-14 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
JP7171227B2 (ja) 2018-05-07 2022-11-15 キヤノン株式会社 情報処理装置、その制御方法およびアプリケーション

Also Published As

Publication number Publication date
US20160147580A1 (en) 2016-05-26
US9626219B2 (en) 2017-04-18

Similar Documents

Publication Publication Date Title
JP5699500B2 (ja) インストールプログラム、インストール方法、画像形成装置、及び記録媒体
WO2010001555A1 (ja) 実行順序決定装置、実行順序決定プログラム、実行順序決定回路及び情報処理装置
JP2011248683A (ja) クラウドコンピューティングシステム、サーバーコンピュータ、デバイス接続方法及びプログラム
US9612818B2 (en) Information processing apparatus, program management method for information processing apparatus, and non-transitory computer-readable storage medium
US10356267B2 (en) Information processing apparatus, control method, and storage medium
JP6574558B2 (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
US9965299B2 (en) Information processing apparatus, method for controlling the same, and storage medium
JP5732824B2 (ja) 画像形成装置、情報処理システム、及び情報処理方法
JP2016100731A (ja) 情報処理装置およびその制御方法、並びにプログラム
JP5671880B2 (ja) 画像形成装置、プログラム状態判定方法、プログラム状態判定プログラム、及びプログラム状態判定システム
JP2016018339A (ja) システム、及びシステムの制御方法
JP6737170B2 (ja) サーバー装置、画像処理ユニット及びプログラム
JP2012174196A (ja) クラウドコンピューティングシステム、その制御方法、およびそのプログラム
JP6157282B2 (ja) 画像処理装置、情報処理方法及びプログラム
JP5790143B2 (ja) 情報処理装置及びプログラム
JP2016130892A (ja) 監視装置、情報処理システム及び監視プログラム
JP7547409B2 (ja) 監視装置、監視装置の制御方法およびプログラム
JP2011197827A (ja) 情報処理装置、情報処理方法、及び情報処理プログラム
JP2023032791A (ja) 情報処理装置および情報処理システムの方法
JP5836814B2 (ja) 画像形成装置、制御方法及びプログラム
US9723167B2 (en) Managing the activation of an application in an information processing apparatus on which a plurality of applications operate
JP2023166076A (ja) 画像処理装置、画像処理装置の制御方法、及びプログラム
JP5821217B2 (ja) 画像形成装置、管理方法、管理プログラム、及び記録媒体
JP2010218352A (ja) 機器管理装置、画像形成装置、及び機器管理プログラム
JP2013016103A (ja) 情報処理システム及び情報処理装置