[go: up one dir, main page]

JP2016009885A - 多機能処理装置及びその制御方法とプログラム - Google Patents

多機能処理装置及びその制御方法とプログラム Download PDF

Info

Publication number
JP2016009885A
JP2016009885A JP2014127599A JP2014127599A JP2016009885A JP 2016009885 A JP2016009885 A JP 2016009885A JP 2014127599 A JP2014127599 A JP 2014127599A JP 2014127599 A JP2014127599 A JP 2014127599A JP 2016009885 A JP2016009885 A JP 2016009885A
Authority
JP
Japan
Prior art keywords
application
periodic
execution
cycle
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
JP2014127599A
Other languages
English (en)
Inventor
杉山 秀樹
Hideki Sugiyama
秀樹 杉山
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 JP2014127599A priority Critical patent/JP2016009885A/ja
Priority to US14/736,756 priority patent/US9699345B2/en
Publication of JP2016009885A publication Critical patent/JP2016009885A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00912Arrangements for controlling a still picture apparatus or components thereof not otherwise provided for
    • H04N1/00938Software related arrangements, e.g. loading applications
    • H04N1/00949Combining applications, e.g. to create workflows

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Facsimiles In General (AREA)
  • Control Or Security For Electrophotography (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)
  • Power Sources (AREA)

Abstract

【課題】第1の周期処理と第2の周期処理の実行周期とが一致していない場合は、第1及び第2の周期処理の2回目以降の開始時間が一致しなくなり、通常動作モードへの復帰回数が増えて消費電力の低減を阻害することになる。
【解決手段】周期的に実行される周期処理を登録できる多機能処理装置とその制御方法であって、アプリケーションで実行される周期処理の実行日時と実行周期を登録し、第1アプリケーションが登録されているときに、第2アプリケーションを登録する際、第1のアプリケーションの第1の周期処理の実行周期に合わせて第2のアプリケーションの第2の周期処理の実行周期を調整し、その調整した第2の周期処理の実行周期を登録し、その登録された実行周期に従って、各アプリケーションの周期処理を実行する。
【選択図】 図4

Description

本発明は、多機能処理装置及びその制御方法とプログラムに関するものである。
近年、環境保護の観点から事務機器の低消費電力化が求められている。これを実現するために、複写機等の事務機器では一定時間何も動作していない待機状態が続くと、装置内の各資源(印刷部、読取部、表示部、制御部等)への電力供給を停止して省電力モードへ移行する技術が知られている。
複写機能、プリンタ機能、スキャナ機能等の複数の機能を有する複合機(多機能処理装置)には、周期的に動作する様々な機能(周期処理)が実装されている。これら周期処理を実行する際は、複合機が省電力モードで動作であっても、その処理のために複合機は通常動作モードに復帰する。このため、これら周期処理の数が増大すると、複合機が省電力モードで動作している時間が少なくなり、消費電力の低減を実現できなくなるという課題がある。
例えば特許文献1には、このような消費電力の低減を阻害する要因を除去する方法が記載されている。これによれば、第1の周期処理に対する開始時間と実行周期とを記憶し、第2の周期処理の開始時間と実行周期とが設定されると、第2の周期処理の開始時間を第1の周期処理の開始時間に一致させている。
特開2006−41971号公報
上記特許文献1に記載の発明によれば、第2の周期処理の初回開始時間を第1の周期処理の次回の開始時間と一致させることにより、第2の周期処理が開始されることにより複合機の動作モードが通常モードへ復帰するのを防止できる。しかしながら、第1の周期処理と第2の周期処理の実行周期とが一致していない場合は、第1及び第2の周期処理の2回目以降の開始時間が一致しなくなり、通常動作モードへの復帰回数が増えて消費電力の低減を阻害することになる。
本発明の目的は、上記従来技術の問題点を解決することにある。
本発明の特徴は、複数のアプリケーションによる周期処理が発生する場合でも、それら周期処理を同期させて実行することにより、周期処理による消費電力の低減が阻害されるのを防止する技術を提供する。
上記目的を達成するために本発明の一態様に係る多機能処理装置は以下のような構成を備える。即ち、
周期的に実行される周期処理を登録できる多機能処理装置であって、
アプリケーションで実行される周期処理の実行日時と実行周期を登録する登録手段と、
前記登録手段に第1アプリケーションが登録されているときに、第2アプリケーションを前記登録手段に登録する際、前記第1のアプリケーションの第1の周期処理の実行周期に合わせて前記第2のアプリケーションの第2の周期処理の実行周期を調整する調整手段と、
前記調整手段によって調整した前記第2の周期処理の実行周期を前記登録手段に登録し、前記登録手段に登録された実行周期に従って、各アプリケーションの周期処理を実行する制御手段と、を有することを特徴とする。
本発明によれば、複数のアプリケーションによる周期処理が発生する場合でも、それら周期処理を同期させて実行することにより、例えば周期処理により省電力モードから復帰する回数を削減して消費電力の低減を阻害する要因を少なくできる。
本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
本発明の実施形態1に係る画像処理装置の一例である複合機(MFP)を含むシステム構成例を説明する図。 実施形態1に係るMFPの構成を説明するブロック図。 本実施形態1に係るMFPのソフトウェア構造の一例を示す図。 本発明の実施形態1,2に係る周期処理制御部の構成例を示すブロック図。 実施形態に係るアプリケーション管理テーブルのデータ構成例を示す図。 本実施形態1に係るMFPにおけるアプリケーションによる周期処理の登録から実行までの基本的な処理の流れを説明するフローチャート。 実施形態1に係るMFPの周期処理制御部の基本動作を説明するフローチャート。 S705の起動処理を説明するフローチャート。 図7のS704のアプリケーション管理テーブルの更新処理を説明するフローチャート。 図9のS907の基準アプリを抽出する処理を説明するフローチャート。 実施形態2に係る周期処理制御部の基本的な処理を説明するフローチャート。 S1107で一時保管したパケット情報の一例を示す図。 実施形態2に係るS1109及びS1104のテーブル更新処理を説明するフローチャート。 実施形態3に係るアプリケーション管理テーブルの一例を示す図。
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
[実施形態1]
図1は、本発明の実施形態1に係る多機能処理装置の一例である複合機(MFP)101,102を含むシステム構成例を説明する図である。
図1に示すように、本実施形態1では、MFP101,102がLAN等のネットワーク104を介してサーバ(PC)103と互いに通信可能に接続されている。これらMFP101,102は、サーバ103にMFPの操作画面に表示すべき画面情報を要求し、Webサーバ103は、その要求された画面情報を生成して、その要求元のMFPに送信する。
図2は、実施形態1に係るMFP101(102)の構成を説明するブロック図である。尚、MFP101,102はともに基本的な構成が同一であるため、ここではMFP101について説明する。
図2において、制御部208は、CPU210,ROM211及びRAM212を含み、MFP101全体の動作を制御する。CPU210は、ROM211に記憶されたブートプログラムにより、HDD209に記憶されている制御プログラムを読み出してRAM212に展開し、その展開したプログラムに従って読取制御や送信制御などの各種制御処理を実行する。尚、その制御プログラムはROM211に記憶されていても良い。RAM212は、CPU210の主メモリ、ワークエリアとして使用される。また制御部208は、表示部202、スキャナ部203及びプリンタ部204を有する機能部201と接続され、それらの動作を制御する。表示部202には、タッチパネル機能を有する液晶等の表示部やキーボードが配置されている。また表示部202はブラウザ機能を備えており、ブラウザは、サーバ103から受信したHTMLファイルを解析し、その解析したHTMLファイルの記述に基づく操作画面を表示部202に表示する。プリンタ部204は、制御部208から出力された画像データに従ってシートに画像を印刷する。スキャナ部203は、原稿の画像を読み取って画像データを生成し、その画像データを制御部208に出力する。
インターフェース部206は、制御部208をネットワーク104に接続して外部の情報処理装置(PC:不図示)から印刷用の画像データを受信したり、表示部202で表示する画面データを受信する。HDD209は、画像データや後述するテーブルや、各種プログラム等を記憶する。尚、外部の情報処理装置から受信した印刷用の画像データは、画像メモリ207に一時的に格納され、制御部208を介してプリンタ部204により印刷される。
図3は、本実施形態1に係るMFP101のソフトウェア構造の一例を示す図である。尚、図3に示す各ソフトウェアは、ROM211或いはHDD209に格納され、CPU210によって実行されるものとする。
OS(オペレーティングシステム)層301は、一般的にはリアルタイムOSが使用されるが、Linux(登録商標)等の汎用OSを用いても良い。JavaVM302は、Java(登録商標)などの仮想マシンであり、アプリケーションの実行環境を提供する。アプリケーションフレームワーク303は、アプリケーションのライフサイクルを管理する機能を提供する。このアプリケーションフレームワーク303は、後述する周期処理制御部401(図4)を有する。インストーラサービス304は、後述のアプリケーションA,Bなどの複数のアプリケーションを、アプリケーションフレームワーク303に登録することでインストール処理を行う。アプリケーションA305,アプリケーションB306は、インストーラサービス304によってインストールされたアプリケーションで、MFP101上で様々な機能を提供する。例えば、アプリケーションA305は、MFP101からステータスを取得し、表示部202に、そのステータス情報を表示することができる。またアプリケーションB306は、MFP101の消耗品情報を取得し、インターフェース部206を介して、ネットワーク104のPCなどに定期的に送信する。これらアプリケーションA305,アプリケーションB306は、MFP101の外部からダウンロードしてインストールすることが可能である。Native機能307は、MFP101に組み込まれた機能を提供する。例えば、インターフェース部206を介して受信した印刷データに基づいてプリンタ部204で印刷を行う機能がNative機能の一例である。尚、実施形態1では、JavaVM302、アプリケーションフレームワーク303、アプリケーションA305、アプリケーションB306は、HDD209に格納されているものとする。また、Native機能307はROM110に格納されているものとする。
図4(A)は、本発明の実施形態1に係るMFPのアプリケーションフレームワーク303に設けられた周期処理制御部401の構成例を示すブロック図である。
周期処理制御部401は、周期的に動作する様々な機能の実行を制御する。周期処理制御部401は、開始調整部404、時間間隔調整部405、テーブル管理部402、アプリケーション管理テーブル403を有する。テーブル管理部402が、アプリケーション毎に周期処理の情報を管理するテーブルをHDD209等に作成して管理する。開始調整部404及び時間間隔調整部405は、アプリケーション管理テーブル403を参照し、各アプリケーションの周期処理の実行タイミングを調整し、必要に応じてアプリケーション管理テーブル403を修正する。また周期処理制御部401は、アプリケーションフレームワーク303の機能を利用してアプリケーションA305,アプリケーションB306と相互に通信できる。また周期処理制御部401は、アプリケーションA305,アプリケーションB306からコールバック関数の登録が可能であり、その登録したコールバック関数を呼び出すことも可能である。
図5(A)は、実施形態1に係るアプリケーション管理テーブル403のデータ構成例を示す図である。ここでは1つのアプリケーションが登録されている。
アプリID501は、周期処理を実施するアプリケーションのIDである。例えば、行511には、アプリケーションIDとして「001」が登録されている。次実行日時502は、そのアプリケーションが実行する周期処理の次回の実行日時を示す。例えば行511では、次回実行日時として「6/30 10:00」(6月30日午前10時)が登録されている。実行周期503は、そのアプリケーションが実行する周期処理の実行周期(秒)である。例えば、行511には、実行周期として「600」秒が登録されている。要求周期504は、そのアプリケーションの登録時に、そのアプリケーションが要求している周期処理の実行時間間隔の要求値(要求周期)である。例えば、行511では、要求周期として「600」秒が登録されている。変更可否505は、そのアプリケーションが実行する周期処理の実行周期及び実行日時の変更が可能かどうかを示す。例えば、行511では、変更可否には変更可能であることを示す「可」が登録されている。下限値506は、そのアプリケーションが要求する実行周期を短くできる下限値を示す。例えば、行511では、下限値として「60」秒が登録されているため、その実行周期の最小値は540(秒)(=600−60)まで変更可能となる。上限値507は、そのアプリケーションが要求する実行周期を長くできる上限値を示す。例えば、行511では、上限値として「60」秒が登録されているため、その実行周期の最大値は660(秒)(=600+60)まで変更可能である。基準アプリID508は、そのアプリケーションが実行する周期処理の基準となるタイミングで周期処理を実行する基準アプリケーションのIDを登録する。例えば、行511では、基準アプリケーションIDとして「001」、即ち、自分自身のアプリケーションIDが登録されている。即ち、このアプリケーションは、IDが「001」で、そのアプリケーションが実行する周期処理の実行周期の要求値は600秒、その変更可能な範囲は540秒から660秒である。そして周期処理制御部401によって、そのアプリケーションの実行周期が600秒で登録されたことを示している。
図6は、実施形態1に係るMFP101におけるアプリケーションによる周期処理の登録から実行までの基本的な処理の流れを説明するフローチャートである。各ステップは、CPU210がROM211或いはHDD209に記憶されるアプリケーションプログラムをRAM212に展開し、そのプログラムを実行すること実現される。ここでは説明を簡便にするために、アプリケーションの初期化処理、終了処理、インストール処理等に係るアプリケーション独自の処理の説明を省略し、周期処理の登録と実行の共通処理について説明する。また、ステータスの取得等の周期処理の内容の説明も省略する。ステータスの取得処理と、サーバへのアップロード処理のように、1つのアプリケーションが複数の周期処理を実施することもある。このフローチャートで示す処理は、周期処理の実行開始ごとに起動される。
まずS601で、アプリケーションは周期処理を登録する。ここでは予め定められた手順に従って周期処理制御部401と通信し、図5(A)に示すテーブルを作成するのに必要な情報を通知し、周期処理をコールバック関数として登録する。周期処理制御部401が、その登録されたコールバック関数を呼び出すことで周期処理が実行される。次にS602でアプリケーションは、周期処理制御部401からS601で登録したコールバック関数が呼ばれるまで待機する。そしてS602でコールバック関数が呼ばれたと判定するとS603に進み、コールバック関数の処理を実施する。それ以外の場合はS602に進む。
図7は、実施形態1に係るMFP101の周期処理制御部401の基本動作を説明するフローチャートである。このフローチャートで示す処理は、CPU210がROM211或いはHDD209に記憶されるアプリケーションプログラムをRAM212に展開し、そのプログラムを実行すること実現される。尚、ここでは周期処理制御部401による処理として説明する。
先ずS701で周期処理制御部401は、アプリケーションの登録要求が発生したかどうかを判定する。即ち、アプリケーションがアプリケーションフレームワーク303の機能を利用して周期処理制御部401と通信し、図6のS601の登録処理を実施すると、登録要求が発生したと判定する。登録要求が発生したと判定すると周期処理制御部401は、S701でアプリケーションが通知した情報及び、コールバック関数を受け取る。こうしてS702に進み周期処理制御部401は、アプリケーション管理テーブル403を作成済みかどうかを判定する。即ち、HDD209等の記憶部にアプリケーション管理テーブル403が作成済みかどうかを判定する。S702でアプリケーション管理テーブル403が作成済みでないと判定したときはS703に進み、周期処理制御部401は、新規にアプリケーション管理テーブル403を作成しHDD209に保存してS701に進む。ここでは、例えば図5(A)に示すようなアプリケーション管理テーブル403を作成してHD209に保存する。例えば、初期値として、アプリID501が「1」、基準アプリID508には自分自身のアプリIDである「1」を設定する。更に、実行周期503、要求周期504には、S701でアプリケーションから受け取った周期処理の要求周期(例えば、600秒を示す600)を設定する。更に、変更可否505には、変更可能を意味する「可」、次実行日時502には、現日時(例えば、6/30 9:50)に要求周期を加算した日時(6/30 10:00)を設定する。更に、下限値506、上限値507には、それぞれ、S701でアプリケーションから受け取った周期処理の周期(時間間隔)を変更できる下限値(例えば60秒を意味する60)、上限値(例えば60秒を意味する60)を設定する。
一方、S702でアプリケーション管理テーブル403を作成済みと判定したときはS704に進み、HDD209のアプリケーション管理テーブル403を更新してS701に進む。このアプリケーション管理テーブル403の更新処理の詳細は後述する。
またS701で周期処理制御部401は、登録要求が発生しなかったと判定した場合はS705に進んで、後述する周期処理の起動処理を実行してS701へ戻る。
図8は、S705の起動処理を説明するフローチャートである。
S801で周期処理制御部401は、アプリケーション管理テーブル403を参照して、そこに登録されている一つのアプリケーションの情報(レコード)を取得し、RAM212の予め確保されたワークエリアに保存する。次にS802に進み周期処理制御部401は、そのアプリケーションの呼び出し時間が到着しているか否かを判定する。ここでは、アプリケーション管理テーブル403に登録されている、そのアプリケーションの次実行日時が現日時を過ぎているものは呼び出し時間が到着していると判定する。S802で、呼び出し時間が到着していないと判定するとS801に進んで次のレコードを取得するが、到着していると判定するとS803に進み、S801で取得した、そのアプリケーションが登録したコールバック関数を呼び出す。そしてS804に進み周期処理制御部401は、次実行日時を更新する。ここでは、S801で取得した、そのアプリケーションの次実行日時の値に、そのアプリケーションの実行周期の値を加算し、アプリケーション管理テーブル403の、そのアプリケーションの次実行日時502に保存する。こうしてS805に進み周期処理制御部401は、アプリケーション管理テーブル403の全てのアプリケーションの情報(レコード)に対して、上述の処理を完了したか否かを判定する。S805で全てのレコードに対する処理を完了したと判定すると、この周期処理の起動処理を終了する。またS805で全てのレコードに対する処理を完了していないと判定するとS801に進んで、前述の処理を繰り返す。
図9は、図7のS704のアプリケーション管理テーブル403の更新処理を説明するフローチャートである。前述のS701で登録要求が発生したと判定したときは、周期処理制御部401は、その登録要求の発行元であるアプリケーションから周期処理に関する情報を受け取っている。そして周期処理制御部401は、その受け取った情報をテーブル管理部402に渡している。
先ずS901でテーブル管理部402は、周期処理制御部401から受け取った次実行日時、要求周期、要求周期の変更可能な下限値、上限値、変更可否を、それぞれ、変数Next_req,T_req,min,max,modifiableに設定する。これら変数T_req(要求周期)、変数Next_req(実行日時)、変数min(下限値)、変数max(上限値)、変数modifiable(変更可否)はRAM212に記憶される。更に、テーブル管理部402は、後述する各種変数を初期化する。ここでは、RAM212に予め確保した変数T_tempを「0」に、Next_temp を「1/1 00:00」に、Reference_tmpを「0」に設定する。ここでT_tempは実行周期、Next_tempは次実行日時、Reference_tmpは基準アプリケーションのIDを示す変数である。
次にS902に進みテーブル管理部402は、周期処理の実行周期を変更可能か否かを判定する。即ち、変数modifiableの値を調べ、変更可能を意味する値のときは変更可能と判定する。ここで変更不可能と判定したときはS908に進みテーブル管理部402は、これら変数を、S901で取得した要求値に変更する。即ち、変数T_tempに変数T_reqの値を、変数Next_tempにNext_reqの値を、変数Reference_tmpに自分のアプリIDをそれぞれ設定してS912に進む。このようにして、実行周期が変更できないアプリケーションは、そのアプリケーションが要求した実行周期に従って周期処理を実行することになる。
一方、S902でテーブル管理部402が変更可能と判定したときはS903に進み、テーブル管理部402は、後述するS904以降の処理がアプリケーション管理テーブル403の全てのレコード分終了したかを判定する。S903で全レコード分の処理が終了したと判定するとS910に進むが、そうでないときはS904に進みテーブル管理部402は、アプリケーション管理テーブル403からアプリケーションの情報を1レコード分取得する。更にテーブル管理部402は、その取得した1レコード分の情報から実行周期を変数Tに、次実行日時を変数Nextに、アプリIDを変数AppIDにそれぞれ設定する。これら変数T、変数Next、変数AppIDは、RAM212に予め用意したワークエリアの格納領域に記憶される。
次にS905に進みテーブル管理部402は、登録済みアプリケーションの実行周期と、登録要求を発行したアプリケーションの要求周期との差分(同期ずれ量)を計算する。即ち、S904で取得した変数Tを、要求周期T_reqで除算したときの余りを求めて差分sabunに設定する。従って、この差分sabunは、mod(T,T_req)でも表される。例えば図5(C)の例では、要求周期T_reqが「1100」で、登録済のアプリケーションの周期Tが「600」のときは、差分sabunは「600」になる。この変数sabunは、RAM212の格納領域に保存される。次にS906に進みテーブル管理部402は、S905で求めた差分(同期ずれ量)が0かどうか判定する。これは変数sabunの値が「0」かどうか判定することに該当する。ここで変数sabunの値が「0」と判定すると、取得したレコードの実行周期が、要求周期の整数倍であることを示す。S906で差分が「0」でないと判定したときはS907に進み、図10を参照して後述する基準アプリの抽出処理を実行してS903に進む。
一方、S906で差分が「0」であると判定したときはS909に進み、テーブル管理部402は、一時変数を、S904で取得した値に基づいて変更する。即ち、変数T_tempに要求周期T_reqの値を、変数Next_tempに変数Nextの値を、変数Reference_tmpに自分のアプリIDの値をそれぞれ設定してS912に進む。こうして登録要求を発行したアプリケーションの次実行日時、実行周期が、登録済のアプリケーションの次実行日時(変数Next)、実行周期(変数T)と等しくなり、その基準アプリIDは、その登録済のアプリケーションのアプリIDとなる。こうしてS912で登録された状態の一例を図5(B)に示す。尚、図5(B)では変数Tと要求周期T_reqとが一致した場合を示している。
またS903で全てのレコードに対する処理が終了したと判定したときはS910に進みテーブル管理部402は、一時変数を設定済みかどうか判定する。ここでは変数T_tempが「0」でないときは、一時変数が設定済みであると判定する。S910で一時変数が設定済みと判定した場合はS912に進むが、一時変数が設定済みでないと判定した場合はS911に進み、エラー処理を実行する。
従って、このエラー処理は、以下の2つの条件が同時に成立したときに実行される。
(1)アプリケーション管理テーブル403で管理されているアプリケーションに、登録要求元のアプリケーションが要求した周期処理の実行周期と一致するか、或いは整数倍の実行周期を持つアプリケーションが存在しない。
(2)登録元のアプリケーションが要求した要求周期の変更可能範囲(要求周期に上限値を加算した範囲から下限値を減算した範囲)に含まれる実行周期のアプリケーションが存在しない。
また、このエラー処理では、実行周期の変更、或いは、実行周期の変更可能範囲の変更を促すメッセージを登録元のアプリケーションに通知することも行われる。
S912でテーブル管理部402は、アプリケーション管理テーブル403に登録要求元のアプリケーションを追加する。即ち、アプリケーション管理テーブル403にエントリを1つ追加し、S908或いはS909で設定された各項目を含む項目を登録する。このときアプリID501には、そのアプリケーションを識別するIDを、次実行日時502には変数Next_tempの値を、実行周期503には変数 T_tempの値をそれぞれ設定する。また要求周期にはT_req の値を、変更可否505には変数modifiableの値を、下限値506には変数minの値を、上限値507には変数maxの値をそれぞれ設定する。更に、基準アプリIDには、Referecne_tempの値を設定する。
例えば、図5(B)は、既に図5(A)に示すように登録されている第1アプリケーションに、アプリIDが「002」の第2アプリケーションを追加した例を示す。行512は、この第2アプリケーションのデータを示す。ここで第2アプリケーションの要求周期が600秒であり、第1アプリケーションの実行周期の600秒と一致する。よって、第2アプリケーションの基準アプリID508は、第1アプリケーションを示す「001」に、次実行日時502は、第1アプリケーションの次実行日時と同じになる。
また図5(C)は、アプリケーション管理テーブル403にアプリIDが「003」の第3アプリケーションを追加した例を示す。行513は、この第3アプリケーションのデータを示す。ここで、この第3アプリケーションは、現在時刻「9:48」に要求周期504を「1100」、下限値506を「100」、上限値507を「200」で登録要求した結果を示す。従って、この第3アプリケーションの実行周期は、1000秒〜1200秒の範囲の値を取り得ることになる。従って、ここでは第1アプリケーションの実行周期(600秒)を基準に、第3アプリケーションの実行周期は、第1アプリケーションの実行周期の倍数である「1200」秒に調整されて登録されている。これにより、第1アプリケーション〜第3アプリケーションの周期処理が同期して実行できるため、周期処理により省電力モードから通常モードに復帰する回数を少なくできる。
図10は、図9のS907の基準アプリを抽出する処理を説明するフローチャートである。
先ずS1001でテーブル管理部402は、前述の差分sabunが下限値以下か判定する。即ち、変数sabunの値が変数min以内であれば、差分が下限値以下であると判定する。この場合は、要求周期からの変更可能である範囲内(下限値内)にある実行周期のアプリケーションが見つかったことになる。S1001でテーブル管理部402は差分が下限値以下と判定したときはS1002に進み、テーブル管理部402は、その差分sabunが、変数T_req(要求周期)と変数T_temp(実行周期)との差分の絶対値未満かどうかを判定する。即ち、ここでは変数sabunで示される余りが、既に計算して一時保存済のアプリケーションの実行周期の候補と要求周期との差分の絶対値と比べて小さいか判定する。ここで小さいと判定したときはS1003に進み、計算した実行周期の候補が一時保存済の実行周期の候補より、より要求周期に近いとする。S1003でテーブル管理部402は、実行周期の候補を更新する。即ち、テーブル管理部402は、変数T_req(要求周期)から変数sabunの値を減算した値を変数T_temp(実行周期)に設定してS1007へ進む。一方、S1002で、差分が変数T_tempと変数T_reqの差分の絶対値未満でないと判定したときは、この基準アプリの抽出処理を終了する。
またS1001でテーブル管理部402が、差分sabunが下限値以下でないと判定した場合はS1004に進み、変数T(実行周期)から差分sabunを引いた値が上限値以下か判定する。即ち、変数T(要求周期)と変数sabunの差分が変数max以下のときは、差分が上限値以下と判定する。ここでは前述のS904で取得した、変数Tで示される1レコードの実行周期と変数sabunとの差分が変数max以下か判定する。ここで判定が「真」のときは、要求周期からの変更可能範囲内(上限値内)に該当する実行周期が見つかったことになってS1005に進む。一方、S1004で変数Tと変数sabunの差分が変数max以下でないと判定した場合は、この基準アプリの抽出処理を終了する。
S1005でテーブル管理部402は、変数Tと変数sabunとの差分が、変数T_reqと変数T_tempの差分の絶対値未満かどうかを判定する。即ち、ここでは変数T(実行周期)と、変数sabunで示される余りとの差分が、要求周期と既に計算し一時保存済の実行周期の候補との差分の絶対値と比べて小さいか判定する。ここで小さいと判定したときは、その計算した実行周期の候補が一時保存済の実行周期の候補より、より要求周期に近いことになる。こうしてS1005で変数Tと変数sabunの差分が、変数T_req と変数T_tempの差分の絶対値未満と判定したときはS1006に進む。S1006でテーブル管理部402は、実行周期の候補を更新する。即ち、テーブル管理部402は、変数Tから変数sabunの値を減算し、更に、変数T_req(要求周期)に、その計算した値を加算した値を変数T_tempに設定してS1007へ進む。一方、S1005で、変数Tから変数sabunの値を減算した値が、変数T_reqと変数T_tempの差分の絶対値未満でないと判定したときは、この基準アプリの抽出処理を終了する。
S1007でテーブル管理部402は、基準となるアプリケーションの候補が決まったので、そのアプリケーションの次実行日時で更新する。即ち、変数Next_tempに変数Nextの値を設定し、変数Reference_temp に変数AppIDの値を設定して、この処理を終了する。
このように実施形態1によれば、登録要求元のアプリケーションの実行周期を、その要求している要求周期の許容範囲内で一致する、或いは整数倍の実行周期の登録済のアプリケーションに合わせた実行周期で登録できる。これにより登録されているアプリケーションの間で、その実行周期を同期させることができる。よって、複数のアプリケーションが実行されているときに、それらアプリケーションの周期処理により省電力モードから復帰する回数が増えて省電力の効果が得られないといった不具合を解消できる。
実施形態1によれば、周期処理を行うアプリケーションを登録する際に、登録済みのアプリケーションの周期処理の間隔に一致、或いはその整数倍に調整する。これにより、登録済みアプリケーションと次実行日時を揃えることができ、周期処理により省電力モードから復帰する機会を少なくできる。
[実施形態2]
次に本発明に実施形態2を説明する。この実施形態2では、周期処理を実行する周期を調整して登録しないアプリケーションが存在する場合を説明する。このようなアプリケーションとしては、例えば、PCからMFPに定期的にステータスを取得する監視アプリ等がある。ここで説明の簡便のため、実施形態1と異なる点のみ説明する。尚、この実施形態2に係るシステムやMFPの構成等は前述の実施形態1と同じであるため、それらの説明を省略する。
図4(B)は、本発明の実施形態2に係る周期処理制御部401の構成例を示すブロック図で、前述の図4(A)と共通する部分は同じ参照番号で示している。
ここではネットワーク監視部406が新たに設けられている。このネットワーク監視部406は、インターフェース部206を介してネットワーク104から受信するパケットを監視し、周期処理を見つけたらテーブル管理部402にアプリケーション管理テーブル403への登録を依頼する。
図11は、実施形態2に係る周期処理制御部401の基本的な処理を説明するフローチャートである。
図11のS1101〜S1104及びS1105は、前述の実施形態1の図7のS701〜S704及びS705と同一であるため、その説明を省略する。
S1106でネットワーク監視部406は、パケットを受信したかを判定する。ここではアプリケーションフレームワーク303によって、インターフェース206を介しネットワーク104から受信したデータを調べる。ここで所定のフォーマットのパケットを受信したときはパケットを受信したと判定する。ここでパケットを受信していないと判定したときはS1101へ進む。S1106でパケットを受信したと判定するとS1107に進み、ネットワーク監視部406は、S1106で受信したパケットの情報をRAM212に一時保管する。
図12は、S1107で一時保管したパケット情報の一例を示す図である。
このパケット情報は、RAM212に予め用意されているワーク領域に適宜保管されている。各レコードは、From1201、処理内容1202、プロトコル1203、前回実行日時1204、平均時間間隔1205、回数1206を含む。From1201は、パケットの送信元を示し、処理内容1202は周期処理の内容を示す。プロトコル1203は、パケットの送信プロトコル、前回実行日時1204は前回の受信日時、平均時間間隔1205はパケット受信時間間隔の平均値、回数1206は受信回数を示す。例えば、行1211には、IPアドレス「172.10.10.10」からSNNPプロトコルでステータス取得のパケットを合計10回受信し、その平均時間間隔が600秒、前回の受信日時が「6/30 10:05:11」が登録されている。
S1106で受信したパケットと、From、処理、プロトコルが同一であるエントリがあれば、そのレコードの「回数」に1を加算し、前回実行日時、平均時間間隔を設定する。一方、同一のエントリがない場合は、行を新規に追加して各項目を設定する。
次S1108で、S1107で一時保存したパケット情報が周期処理かどうかを判定する。即ち、一時保存したパケット情報の回数1206の値が、所定の回数を超えている場合は周期処理であると判定する。例えば、10回超えた場合は周期処理と判定する。S1108で周期処理と判定しなかった場合はS1101へ進むが、周期処理と判定した場合はS1109に進んで、ネットワーク監視部406はアプリケーション管理テーブル403を更新してS1101に進む。
図13は、実施形態2に係るS1109及びS1104のテーブル更新処理を説明するフローチャートである。尚、図13のS1302〜S1313の処理は、実施形態1に係る図9のS901〜S912と同じであるため、その説明を省略する。尚、アプリケーション管理テーブル403への登録に必要な情報は、ネットワーク監視部406からテーブル管理部402へ渡されているものとする。
先ずS1301でテーブル管理部402は、外部アプリの登録要求かどうかを判定する。ここでは、テーブル更新処理を呼び出すトリガが、アプリケーションからの登録要求か、ネットワーク監視部406からの更新依頼であるかを判定する。ネットワーク監視部406からの更新依頼の場合は、外部アプリの登録要求と判定する。S1301で外部アプリの登録要求でないと判定するとS1302へ進み、図9を参照して説明した処理を実行する。
S1301で外部アプリの登録要求と判定したときはS1314に進みテーブル管理部402は、外部アプリをアプリケーション管理テーブル403に登録する。
図5(D)は、外部アプリを登録したアプリケーション管理テーブル403のデータを示す図である。行514は、外部アプリを登録した状態を示している。ここでは、変更可否505には変更不可能を示す「否」、下限値506には「0」、上限値507には「0」が設定され、基準アプリID508は、自分のアプリIDである「004」が設定されている。
次にS1315に進みテーブル管理部402は、後述のS1316以降の処理をアプリケーション管理テーブル403の全レコードに対して終了したかを判定する。S1315で全てのレコードに対する処理が完了したと判定したときは、このテーブル更新処理を終了する。S1315で全てのレコードに対する処理が完了していないと判定した場合はS1316に進みテーブル管理部402は、アプリケーション管理テーブル403から登録済のアプリケーションの1レコード分の情報を取得する。更に、テーブル管理部402は、その取得した1レコードの情報をRAM212に格納する。次にS1317に進みテーブル管理部402は、S1316で取得した1レコードのデータを調べて、実行周期を変更可能かどうか判定する。S1317で変更可能でないと判定したときはS1315へ進む。S1317で変更可能と判定したときはS1318に進みテーブル管理部402は、基準アプリが外部アプリかどうか判定する。S1318で基準アプリが外部アプリであると判定したときはS1315に進むが、基準アプリが外部アプリでないときはS1319に進む。S1319でテーブル管理部402は、S1316で取得したレコードの値を変更し、その変更した値でアプリケーション管理テーブル403を更新する。即ち、基準アプリIDを、S1314で登録した外部アプリを示すIDに設定し、実行周期を計算して設定する。
図5(D)の行511〜513は、こうして変更された例を示す。ここでは基準アプリID508が外部アプリを示すID「004」に変更され、実行周期503が外部アプリの実行周期(590秒)と同じ、或いは整数倍(1180秒)に再設定されている。
以上説明したように実施形態2によれば、周期処理の間隔を変更できないアプリケーションが存在する場合、そのアプリケーションの周期処理の実行周期に他のアプリケーションの周期処理を揃えることができる。
[実施形態3]
次に本発明の実施形態3を説明する。一般にネットワークの過負荷を避けるため、情報処理装置、MFPの稼働負荷を下げるために、処理は分散して実施することが行われている。実施形態3では、周期処理のタイミングを揃えることで省電力を実現しているが、ネットワーク負荷、装置の稼働負荷を上げてしまう一因になり得る。そこで省電力を実現しつつ、ネットワークの負荷を軽減する例を説明する。尚、この実施形態3に係るシステムやMFPの構成等は前述の実施形態1と同じであるため、それらの説明を省略する。
図14は、実施形態3に係るアプリケーション管理テーブル403の一例を示す図である。前述の図5と共通する部分は同じ符号で示している。
このアプリケーション管理テーブル403では、各周期処理に対応付けて遅延時間1401が追加されている。遅延時間1401は、アプリケーション管理テーブル403に設定済みの次実行日時から周期処理を実施するまでの遅延時間を示す。
この遅延時間は、S703のアプリケーション管理テーブル403の新規作成時、S704のアプリケーション管理テーブル403の更新時に自動的にランダムな値が設定される。この遅延時間が取りうる範囲は、例えば実行周期の10%以内とし、起動状態のMFPが一定時間無稼働状態となったときにスリープ状態に移行する基準となる連続無稼働時間を上回らないものとする。
図14の行1411では、遅延時間1401が「0」に設定されているので、S705の起動処理で周期処理制御部401からアプリケーションに対して遅延なく起動が指示される。一方、行1412では、遅延時間1401が10秒に設定されているので、次実行日時502の時間から10秒後に、その周期処理が起動されることになる。
以上説明したように実施形態3によれば、同一周期の複数の周期処理をずらして実施することができる。これにより、周期処理がネットワークへの通信を伴う場合でもネットワークの負荷を分散でき、ネットワーク負荷のピーク値を下げることができる。
また、周期処理を実施するCPUの負荷を分散でき、負荷のピーク値を下げることができる。これによりMFPの電力消費を低減することが可能となる。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、本発明の範囲を公にするために、以下の請求項を添付する。
101,102…MFP、209…HDD、219…RAM、404…開始調整部、405…時間間隔調整部、402…テーブル管理部、403…アプリケーション管理テーブル、406…ネットワーク監視部

Claims (10)

  1. 周期的に実行される周期処理を登録できる多機能処理装置であって、
    アプリケーションで実行される周期処理の実行日時と実行周期を登録する登録手段と、
    前記登録手段に第1のアプリケーションが登録されているときに、第2のアプリケーションを前記登録手段に登録する際、前記第1のアプリケーションの第1の周期処理の実行周期に合わせて前記第2のアプリケーションの第2の周期処理の実行周期を調整する調整手段と、
    前記調整手段によって調整した前記第2の周期処理の実行周期を前記登録手段に登録し、前記登録手段に登録された実行周期に従って、各アプリケーションの周期処理を実行する制御手段と、
    を有することを特徴とする多機能処理装置。
  2. 前記調整手段は、前記第2のアプリケーションの第2の周期処理が要求する実行周期の上限値、或いは下限値の範囲内で前記第2の周期処理を調整することを特徴とする請求項1に記載の多機能処理装置。
  3. 前記調整手段は、前記第1のアプリケーションの第1の周期処理の実行周期の整数倍の周期が、前記第2のアプリケーションの第2の周期処理が要求する実行周期の上限値、或いは下限値の範囲内にあるときは、前記第2のアプリケーションの第2の周期処理の実行周期を前記第1のアプリケーションの第1の周期処理の実行周期の整数倍の周期とするように調整することを特徴とする請求項2に記載の多機能処理装置。
  4. 前記登録手段に登録されている前記第1のアプリケーションと第2のアプリケーションの実行日時を調整する開始調整手段を更に有することを特徴とする請求項1乃至3のいずれか1項に記載の多機能処理装置。
  5. 前記登録手段は更に、前記周期処理を実行するアプリケーションのID、前記周期処理が要求する実行周期を変更可能か否か、前記周期処理の実行周期の基準となるアプリケーションのIDを含むことを特徴とする請求項1乃至4のいずれか1項に記載の多機能処理装置。
  6. 前記調整手段は、前記第2のアプリケーションの周期処理が要求する実行周期が変更可能でない場合、前記第1のアプリケーションの周期処理の実行周期を、前記第2のアプリケーションの周期処理が要求する実行周期に合わせて調整することを特徴とする請求項5に記載の多機能処理装置。
  7. 前記第2のアプリケーションの周期処理は、ネットワークを介したパケットの受信により起動されることを特徴とする請求項6に記載の多機能処理装置。
  8. 前記登録手段は、更に各アプリケーションの周期処理を開始を遅延させる遅延時間を、各周期処理に対応付けて登録することを特徴とする請求項1乃至7のいずれか1項に記載の多機能処理装置。
  9. 周期的に実行される周期処理を登録できる多機能処理装置を制御する制御方法であって、
    アプリケーションで実行される周期処理の実行日時と実行周期を登録する登録工程と、
    前記登録工程で第1のアプリケーションが登録されているときに、第2のアプリケーションを前記登録工程で登録する際、前記第1のアプリケーションの第1の周期処理の実行周期に合わせて前記第2のアプリケーションの第2の周期処理の実行周期を調整する調整工程と、
    前記調整工程で調整した前記第2の周期処理の実行周期を前記登録工程で登録し、前記登録工程で登録された実行周期に従って、各アプリケーションの周期処理を実行する制御工程と、
    を有することを特徴とする多機能処理装置の制御方法。
  10. コンピュータを、請求項1乃至8のいずれか1項に記載の多機能処理装置として起動するためのプログラム。
JP2014127599A 2014-06-20 2014-06-20 多機能処理装置及びその制御方法とプログラム Pending JP2016009885A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014127599A JP2016009885A (ja) 2014-06-20 2014-06-20 多機能処理装置及びその制御方法とプログラム
US14/736,756 US9699345B2 (en) 2014-06-20 2015-06-11 Processing apparatus, method for controlling the same, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014127599A JP2016009885A (ja) 2014-06-20 2014-06-20 多機能処理装置及びその制御方法とプログラム

Publications (1)

Publication Number Publication Date
JP2016009885A true JP2016009885A (ja) 2016-01-18

Family

ID=54870804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014127599A Pending JP2016009885A (ja) 2014-06-20 2014-06-20 多機能処理装置及びその制御方法とプログラム

Country Status (2)

Country Link
US (1) US9699345B2 (ja)
JP (1) JP2016009885A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018192740A (ja) * 2017-05-19 2018-12-06 キヤノン株式会社 画像形成装置、情報処理方法及びプログラム

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10051154B2 (en) 2016-01-13 2018-08-14 Canon Kabushiki Kaisha Information processing apparatus, control method in information processing apparatus, and image processing apparatus

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4208783B2 (ja) 2004-07-28 2009-01-14 キヤノン株式会社 画像処理装置および設定時刻調整方法およびプログラム
US8706262B2 (en) * 2011-03-15 2014-04-22 Omron Corporation CPU unit of PLC, system program for PLC, and recording medium storing system program for PLC

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018192740A (ja) * 2017-05-19 2018-12-06 キヤノン株式会社 画像形成装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
US9699345B2 (en) 2017-07-04
US20150373221A1 (en) 2015-12-24

Similar Documents

Publication Publication Date Title
US9635207B2 (en) Management system and information processing apparatus managing installation and settings of an application
US10075340B2 (en) Information processing apparatus, control method for information processing apparatus, and recording medium
US20150356380A1 (en) System, printing apparatus, control method, and recording medium
JP2016035714A (ja) 情報処理装置、情報処理装置におけるプログラム管理方法、プログラム、およびシステム
JP2012243219A (ja) コンピュータ機器及びその起動制御方法
JP2016009885A (ja) 多機能処理装置及びその制御方法とプログラム
JP2018061142A (ja) 管理装置、制御方法、及びプログラム
JP5838872B2 (ja) 画像形成装置、省エネ制御方法およびプログラム
JP2013161450A (ja) ネットワークプリンター管理システム、ネットワークプリンター管理装置及びその制御方法
JP5094356B2 (ja) 情報処理装置、情報処理方法、該方法を実行するためのプログラム
JP6318959B2 (ja) 情報処理システム及び情報処理プログラム
JP2006099187A (ja) 情報処理装置
JP2017227990A (ja) 画像処理装置及び時刻管理方法及びプログラム
JP2016020034A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2017117235A (ja) 管理プログラム、管理システム、情報処理装置
US11474759B2 (en) Image forming apparatus providing distributed rendering service
JP2004287686A (ja) 時刻指定処理装置、時刻指定処理方法、及び時刻指定処理システム
JP2018187868A (ja) 画像形成装置および画像形成システム
JP2018027654A (ja) 画像形成装置、その制御方法、及びプログラム
JP6752440B2 (ja) 印刷制御装置、印刷システムおよびプログラム
JP6589539B2 (ja) 電子機器およびクロック周波数の調整方法
JP2015082236A (ja) 機能共有システム、共有管理サーバー、機能共有方法、およびプログラム
JP2019219970A (ja) 情報処理システム及び画像形成装置
JP6842640B2 (ja) 管理サーバーおよびサーバープログラム
JP2019200680A (ja) 情報処理装置、情報処理装置の制御方法及びプログラム