(57)【要約】【課題】サーバから取得した基準時刻を基に、画像処理装置において高精度な時刻を提供する。【解決手段】アプリＰＦ３３０は、画像処理装置１００のスリープモード状態遷移時に画像処理装置１００の現在時刻をスリープモード遷移時刻として記憶する（Ｓ４１１−Ｓ４１５）。アプリＰＦ３３０は、画像処理装置１００のスリープモード状態復帰時に画像処理装置１００の現在時刻をスリープモード復帰時刻として記憶し（Ｓ４１７−Ｓ４２２）、記憶した２つの時刻情報の差分を基準時刻に加算する。【選択図】図４
2017227990.tif 000002
【特許請求の範囲】
【請求項１】
消費電力を低減するスリープモードを動作モードとして有し、スリープモードでも計測されるシステム時刻およびスリープモードでは計測されない起動後経過時間をそれぞれ提供する機能を有する画像処理装置であって、
起動時にサーバから基準時刻を取得して現在時刻として記憶手段に記憶する取得手段と、
前記記憶手段に記憶した前記現在時刻に、前記起動後経過時間を加えて前記現在時刻を更新する第１の更新手段と、
前記スリープモードに遷移する前および前記スリープモードから復帰した後それぞれにおいて前記システム時刻を取得し、それぞれの前記システム時刻の差分を前記現在時刻に加えて前記現在時刻を更新する第２の更新手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記システム時刻はユーザにより設定でき、前記起動後経過時間はユーザにより設定できないことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の更新手段は、所定の周期で前記現在時刻を更新することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記第２の更新手段は、前記スリープモードに遷移する前および前記スリープモードから復帰した後それぞれにおいて取得したそれぞれの前記システム時刻を記憶することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記現在時刻に基づいて、アプリケーションのライセンス期間を管理する手段を更に有することを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記取得手段および前記第１の更新手段は時刻管理アプリケーションにより実現され、
前記第２の更新手段は前記時刻管理アプリケーションが実行されるアプリケーションプラットフォームにより実現されることを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置。
【請求項７】
請求項１乃至６のいずれか一項に記載の画像処理装置としてコンピュータを機能させるためのプログラム。
【請求項８】
消費電力を低減するスリープモードを動作モードとして有し、スリープモードでも計測されるシステム時刻およびスリープモードでは計測されない起動後経過時間をそれぞれ提供する機能を有する画像処理装置において、
起動時にサーバから基準時刻を取得して現在時刻として記憶手段に記憶する取得工程と、
前記記憶手段に記憶した前記現在時刻に、前記起動後経過時間を加えて前記現在時刻を更新する第１の更新工程と、
前記スリープモードに遷移する前および前記スリープモードから復帰した後それぞれにおいて前記システム時刻を取得し、それぞれの前記システム時刻の差分を前記現在時刻に加えて前記現在時刻を更新する第２の更新工程と
を有することを特徴とする時刻管理方法。
【請求項９】
消費電力を低減するスリープモードを動作モードとして有し、スリープモードでも計測されるシステム時刻を提供する機能を有する画像処理装置であって、
前記スリープモードに遷移する前にシステム時刻を取得し、記憶する取得手段と、
前記スリープモードに遷移する前に取得した前記システム時刻を、前記スリープモードに遷移する直前の時刻として、前記画像処理装置にインストールされたアプリケーションに通知する通知手段と
を有することを特徴とする画像処理装置。
【請求項１０】
前記通知手段は、前記スリープモードから復帰した後で、前記スリープモードに遷移する前に取得した前記システム時刻に加えて、前記スリープモードから復帰した後のシステム時刻を、スリープモード復帰イベントとともに通知することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記通知手段は、前記スリープモードから復帰した後で、前記スリープモードに遷移する前に取得した前記システム時刻をスリープモード遷移イベントとともに通知することを特徴とする請求項９に記載の画像処理装置。
【請求項１２】
請求項９乃至１１に記載の画像処理装置としてコンピュータを機能させるためのプログラム。
【請求項１３】
消費電力を低減するスリープモードを動作モードとして有し、スリープモードでも計測されるシステム時刻を提供する機能を有する画像処理装置における時刻管理方法であって、
前記スリープモードに遷移する前にシステム時刻を取得し、記憶する取得工程と、
前記スリープモードに遷移する前に取得した前記システム時刻を、前記スリープモードに遷移する直前の時刻として、前記画像処理装置にインストールされたアプリケーションに通知する通知工程と
を有することを特徴とする時刻管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び時刻管理方法及びプログラムに関し、例えば特に省電力状態として複数の待機電源モード（以下、「スリープモード」）を備える画像処理装置における、スリープモード中の経過時間を取得可能とする、アプリケーションプログラム（以下、「アプリ」）管理を行うプラットフォーム（以下、「ＰＦ」）に関する。
【背景技術】
【０００２】
画像処理装置（Ｍｕｌｔｉ  Ｆｕｎｃｔｉｏｎ  Ｐｅｒｉｐｈｅｒａｌなど）などの情報処理装置は一般的に、スキャナやプリンタなどの各種機能をアプリ単位で動作させるアプリＰＦ環境を有している。また、アプリＰＦ上で動作するアプリには、アプリに関するライセンス情報を記載したライセンスファイルが対応して存在し、以下のように使用される。例えば、アプリＰＦは、ライセンスファイルが存在しないアプリをインストールしないように制御する。あるいは、インストール済みのアプリのライセンスファイル記載の使用期限が切れていた場合にアプリの動作を停止する、などである。ライセンスファイルの有効期限を確認するため、アプリＰＦは情報処理装置のシステムの現在時刻を元に確認を行っている。しかし、情報処理装置のシステム時刻はユーザ操作によって変更可能であるため、ユーザが時刻を変更することでライセンス期限切れのアプリを不正使用できてしまう。そこで、アプリＰＦにより外部の時刻サーバの時刻を取得し、サーバの時刻を基準にしてライセンスファイルの有効期限の確認を行うという方法がある。この方法では、世界中の情報処理装置からサーバへ問い合わせが発生してしまいサーバ負荷が大きくなってしまう。そのため、アプリＰＦ上の時刻管理アプリにより、時刻サーバから取得した時刻に、情報処理装置上でのオペレーションシステム（以下、「ＯＳ」）の起動後経過時間を加算することで、時刻サーバ負荷を減らし時刻を補正するアイデアがある。
【０００３】
また、情報処理装置では、通常の起動状態と比べると電力を節約でき、起動中のプログラムを終了させずに素早くリブートを可能とするスリープモードを機能として備えている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−０７９０５７
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報処理装置には、スリープモードとして複数のモードを有しているものがある。例えば、情報処理装置の液晶パネルなど操作画面のバックライトをＯＦＦにする、スリープ時の消費電力は多いが復帰時間を短くするモードや、情報処理装置のＣＰＵを停止する、スリープ時の消費電力は少ないが復帰時間が長くなるモード、などである。後者のスリープモードの場合、ＣＰＵが停止しているため、情報処理装置ではＯＳのタイマーや起動後経過時間の情報が更新されない状況が発生する。そのため、アプリを併せ持つ情報処理装置では、スリープモード中の経過時間を、情報処理装置のＯＳ起動後経過時間から取得することができない。これにより、スリープ中の時間はアプリＰＦにより管理される現在時刻に反映されず、本来のライセンス期間を渡過してもアプリが使用できる場合があり得た。  本発明は上記問題を鑑みてなされたものであり、サーバから取得した時刻に、スリープモード中の経過時間も反映した正確な時間管理を実現することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の一側面によれば、本発明に係る画像処理装置は、消費電力を低減するスリープモードを動作モードとして有し、スリープモードでも計測されるシステム時刻およびスリープモードでは計測されない起動後経過時間をそれぞれ提供する機能を有する画像処理装置であって、
起動時にサーバから基準時刻を取得して記憶手段に記憶する取得手段と、
前記記憶手段に記憶した前記基準時刻に、前記起動後経過時間を加えて前記基準時刻を更新する第１の更新手段と、
前記スリープモードに遷移する前および前記スリープモードから復帰した後それぞれにおいて前記システム時刻を取得し、それぞれの前記システム時刻の差分を前記基準時刻に加えて前記基準時刻を更新する第２の更新手段とを有する。
【０００７】
また本発明の他の側面によれば、本発明に係る画像処理装置は、消費電力を低減するスリープモードを動作モードとして有し、スリープモードでも計測されるシステム時刻を提供する機能を有する画像処理装置であって、
前記スリープモードに遷移する前にシステム時刻を取得し、記憶する取得手段と、
前記スリープモードに遷移する前に取得した前記システム時刻を、前記スリープモードに遷移する直前の時刻として、前記画像処理装置にインストールされたアプリケーションに通知する通知手段とを有する。
【発明の効果】
【０００８】
本発明によれば、サーバから取得した時刻に、スリープモード中の経過時間も反映した正確な時間管理を実現することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施例１に係るシステム構成図
【図２】実施例１に係る画像処理装置のハードウェア構成図
【図３】実施例１に係る画像処理装置のソフトウェア構成図
【図４】実施例１に係るスリープモード状態遷移、及び状態復帰時のアプリＰＦ、及び時刻管理アプリの処理のシーケンス図
【図５】実施例２に係るスリープモード状態遷移、及び状態復帰時のアプリＰＦ、及び時刻管理アプリの処理のシーケンス図
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１１】
［実施例１］
本実施形態のシステム構成について、図１から図３を用いて説明する。
【００１２】
＜システム構成＞
図１は、本実施形態の情報処理システム全体の構成例である。本システムは、ネットワーク１０２を介して接続された画像処理装置１００と情報処理装置１０１とから構成される。画像処理装置１００は、画像形成機能、画像読取機能、画像送信機能などの各種画像処理機能を有する装置である。また、画像処理装置１００は、アプリケーションプログラム（アプリ）をインストールして実行するためのプラットフォームを備えている。詳しくは図３を参照して説明する。なお、画像処理装置１００は、プリンタ、コピー、ファクス及びスキャナや、それら複数の機能を一台の筐体で実現するＭｕｌｔｉ  Ｆｕｎｃｔｉｏｎａｌ  Ｐｅｒｉｐｈｅｒａｌでもよい。情報処理装置１０１は、コンピュータなどの情報処理装置である。本実施形態では、基準の時刻の情報となるサーバ標準時刻（不図示）を有し、ネットワーク１０２を介して時刻の問い合わせを受けた際に前記標準時刻を返すものとする。
【００１３】
＜画像処理装置のハードウェア構成＞
図２は、本実施形態の画像処理装置１００のハードウェア構成例である。画像処理装置１００は、その動作モードとして通常動作を行う通常モードと、消費電力を低減するスリープモードとを持つ。画像処理装置１００は、ＰＣなどの情報処理装置と通信を行うネットワーク部２０１、キーボードなどユーザ操作を受け付けるユーザ入力部２０２、液晶ディスプレイなど操作画面を表示するＵＩ表示部２０３を有する。更に画像処理装置１００は、装置全体を制御するＣＰＵ２０４、ＣＰＵ２０４のワークスペースを提供するＲＡＭ２０５、画像原稿を読み取る読取部２０６、画像データを印刷する印刷部２０７、各種制御プログラムなどを記憶する記憶部２０８を有する。ここで、画像処理装置１００を構成する各部は、メインバス２００で接続されており、相互にデータの送受信が可能である。なお、ユーザ入力部２０２とＵＩ表示部２０３を別々の装置として記載しているが、これらの装置が一体となった操作部としてもよい。さらに、画像処理装置１００は、ＣＰＵ２０４に内蔵された、または不図示ではあるがＣＰＵ２０４の外部に接続された実時間時計を有する。実時間時計はたとえばバックアップ電源を有しており、主電源の供給状態に関わらず動作し続ける。もちろん、画像処理装置１００がスリープモードであっても実時間時計は動作する。実時間時計から読み出される時刻をシステム時刻あるいはＯＳの現在時刻と呼ぶ。なお本実施形態のスリープモードでは、ＣＰＵ２０４は電力供給あるいはクロックの停止によりその動作を停止しているものとする。
【００１４】
＜画像処理装置のソフトウェア構成＞
図３は、本実施形態の画像処理装置１００のソフトウェア構成例である。図３に示す各機能部は、画像処理装置１００有するＣＰＵ２０４が、記憶装置２０８に記憶される制御プログラムをＲＡＭ２０５上に読み出して実行する、すなわちソフトウェアと協働することで実現される。画像処理装置１００が備えるソフトウェアについて説明する。画像処理装置１００は、ソフトウェアモジュールとして、ＯＳ３００、システム管理部３１０、Ｊａｖａ（登録商標）ＶＭ３２０、アプリＰＦ３３０（アプリケーションプラットフォーム３３０）、時刻管理アプリ３４０（時刻管理アプリケーション３４０）を有する。
【００１５】
ＯＳ３００は、プロセスの管理、メモリ管理、入出力管理を実行する。またＯＳ３００が提供する機能には、他のプロセスからの要求に応じて起動後経過時間を提供する機能も含まれる。画像処理装置１００は、ユーザにより設定可能なシステム時刻を提供する機能
に加えて、電源が投入されてからの経過時間すなわち起動後経過時間を測定する時計を有している。この起動後経過時間はユーザにより操作できない。また本例では、起動後経過時間はＣＰＵ２０４の停止により停止するので、スリープモードの間は計測されない。
【００１６】
システム管理部３１０は、コピーなど画像処理装置１００の基本的な機能を実現するプログラムであり、コントロール部３１１、機器情報管理部３１２などを有する。コントロール部（あるいは制御部とも呼ぶ。）２１１は、コピーやプリンタなど画像処理装置１００の各機能や、ＵＩ表示装置２０３に表示する操作画面などのシステムを制御する。また、コントロール部３１１は、スリープモード状態への遷移など、画像処理装置１００の機器の稼働状態の遷移、及び通常の稼働状態への復帰を制御し、状態遷移指示や通知をＯＳ２２０やＪａｖａ（登録商標）ＶＭ３２０、及びアプリＰＦ３３０に行う。機器情報管理部２１２は、画像処理装置１００における機器の表示画面設定やコピーやプリンタなどの各機能設定をはじめとする、機器のシステム設定情報を管理する。また、機器情報管理部２１２は、画像処理装置１００上のシステムの現在時刻など、ＯＳ２２０の情報も管理する。
【００１７】
Ｊａｖａ（登録商標）ＶＭ３２０は、Ｊａｖａ（登録商標）で記述されたアプリケーションプログラムすなわちアプリを実行する仮想マシンであり、アプリＰＦ３３０の実行基盤である。なお本例ではアプリをＪａｖａ（登録商標）プログラムとしたが、他の処理系を用いてもよい。
【００１８】
アプリＰＦ３３０は、アプリに対して画像処理装置１００を制御する機能を提供する、アプリの実行基盤である。アプリＰＦ３３０は、プラットフォームを構成するクラスライブラリ群３３１、アプリのライフサイクルや参照関係管理を行うＯＳＧｉ（登録商標）３３２などを有する。クラスライブラリ群３３１は、アプリに対し、画像処理装置１００を制御するコントロール部２１１、機器設定情報管理部３１２を制御可能とするための機能を有する。加えて、クラスライブラリ群３３１は、アプリに対し、Ｊａｖａ（登録商標）ＶＭ３２０提供機能、及びＯＳＧｉ（登録商標）２３２管理上の他のアプリ提供の機能を制御可能とするための機能を有する。アプリＰＦ３３０は、各種機能を例えばアプリケーションプログラムインターフェース（ＡＰＩ）として提供する。例えばシステム時刻の取得や、起動後経過時間の取得などの機能もこのＡＰＩを通して提供される。
【００１９】
時刻管理アプリ３４０は、アプリＰＦ３３０上で動作するアプリのひとつである。時刻管理アプリ３４０は、現在時刻を保持管理することを行う。時刻管理アプリ３４０が管理する現在時刻は、通信部３４１によりネットワーク装置１０１を介したＨＴＴＰ通信による情報処理装置１０１から一定周期で取得するサーバ標準時刻を基準とする。なお一定周期とは必ずしも一定時間間隔でなくともよく、例えば電源オンなどの特定のイベントの都度サーバ標準時刻を取得するように構成してもよい。時刻管理アプリ３４０は、サーバ標準時刻を取得してから次のサーバ標準時刻を取得するまでの間、画像処理装置１００のＯＳ２２０の起動後経過時間を加算することで、保持している現在時刻を修正する。この処理シーケンスに関しては、図４にて説明する。また、時刻管理アプリ３４０は、画像処理装置１００停止中（たとえばスリープモード）の経過時間を、次のように修正している（不図示）。まず、時刻管理アプリ３４０は、画像処理装置１００停止時に画像処理装置１００のシステムの現在時刻を取得し記憶する。システムの現在時刻とはたとえばＯＳ３００が管理する時刻である。次に、時刻管理アプリ３４０は、画像処理装置１００の稼働状態への復帰時に画像処理装置１００のシステムの現在時刻を取得し記憶する。そして、記憶した前記時刻の差分により経過時間を算出し、保持している現在時刻を修正する。
【００２０】
なお、本実施形態では、時刻管理アプリ３４０は、管理している時刻をアプリＰＦ３３０上で動作する他のアプリのライセンスファイルの使用期限を確認する（あるいは判定する）処理に用いるものとする。しかしながら、時刻管理アプリ３４０は、現在時刻を保持し管理することを行っていれば、その時刻情報の利用形態に制限はない。
【００２１】
＜現在時刻の更新処理＞
本実施形態おけるスリープモード状態遷移時の処理について、図４を用いて説明する。図４は、画像処理装置１００のスリープモード状態遷移、及び状態復帰時の、アプリＰＦ３３０、及び時刻管理アプリ３４０の処理のシーケンス図である。
【００２２】
まず、スリープモード状態遷移、及び状態復帰時の処理の説明に先立ち、時刻管理アプリ３４０が行う現在時刻管理の処理シーケンスについて、ステップＳ４００からステップＳ４１０で説明する。
ステップＳ４００では、時刻管理アプリ３４０が、情報処理装置１０１に対しサーバ標準時刻の時刻問い合わせタイミングに達した場合の判定処理を示している。本例では、時刻問い合わせタイミングは、たとえば画像処理装置１００に電源が投入され起動されてから所定時間後である。この所定時間は、例えば起動時の処理が完了してアプリが動作可能な状態になった時点でよい。
ステップＳ４０１では、時刻管理アプリ３４０が、情報処理装置１０１に対しサーバ標準時刻の時刻問い合わせを行う。
ステップＳ４０２では、時刻管理アプリ３４０が、情報処理装置１０１から取得したサーバ標準時刻で、管理している時刻情報を更新する。
ステップＳ４０３では、時刻管理アプリ３４０が、システム管理部３１０の機器情報管理部３１２に対し、ＯＳ３００の起動後経過時間の取得を指示する。
ステップＳ４０４では、システム管理部３１０の機器情報管理部３１２が、ＯＳ３００から起動後経過時間を取得し、時刻管理アプリ３４０に起動後経過時間を通知する。
ステップＳ４０５では、時刻管理アプリ３４０が、取得したＯＳ３００の起動後経過時間を、前回起動後経過時間として上書きして記憶する。ここまでが、時刻問合せタイミングで行われる一連の処理である。
【００２３】
ステップＳ４０６では、時刻管理アプリ３４０が、記憶しているＯＳ３００の起動後経過時間の更新タイミングに達した場合の判定処理を示している。起動後経過時間の更新タイミングは、たとえば所定時間おきでよい。所定時間の計測は例えば不図示のタイマーなどで行うことができる。
ステップＳ４０７では、時刻管理アプリ３４０が、システム管理部３１０の機器情報管理部３１２に対し、ＯＳ３００の起動後経過時間の取得を指示する。
ステップＳ４０８では、システム管理部３１０の機器情報管理部３１２が、ＯＳ３００から起動後経過時間を取得し、時刻管理アプリ３４０に起動後経過時間を通知する。
ステップＳ４０９では、時刻管理アプリ３４０が、記憶しているＯＳ３００の前回起動後経過時間を、ステップＳ４０８で新たに取得した起動後経過時間から差し引いた差分を計算し、得られた差分を時刻管理アプリ３４０が保持するサーバ標準時刻に加算する。すなわち、現在時刻には、サーバ標準時刻を基準として、起動後経過時間を新たに取得する都度、起動後経過時間の更新タイミングの間隔すなわち経過時間が加算されて更新される。
ステップＳ４１０では、時刻管理アプリ３４０が、ステップＳ４０８で取得したＯＳ３００の起動後経過時間で、前回起動後経過時間を更新して記憶する。
上記手順のみでは、起動後経過時間の更新タイミングの間隔にスリープモードが入ると、スリープモードの時間は起動後経過時間に加算されず、現在時間が不正確になり得る。そこで以下の手順でスリープモードの時間を現在時刻に反映する。
【００２４】
＜スリープモードへの遷移時の現在時刻の管理＞
次に、スリープモード状態遷移、及び状態復帰時のアプリＰＦ３３０、及び時刻管理アプリ３４０の処理について、ステップＳ４１１からステップＳ４２４で説明する。
ステップＳ４１１では、システム管理部３１０のコントロール部３１１による、画像処理装置１００がスリープモード状態へと遷移する場合の処理を示している。スリープモードへ遷移する条件が満たされるとステップＳ４１２〜Ｓ４１６を実行する。スリープモードへ遷移する条件は、たとえば一定時間操作されておらず、かつ外部からのジョブも入力されていないこと、などである。なお本実施形態のスリープモードでは、ＯＳ３００は起動後経過時間を正確にカウントできないものとする。
ステップＳ４１２では、システム管理部３１０のコントロール部３１１が、アプリＰＦ３３０に対し、スリープモードにこれから遷移する旨の通知であるスリープモード状態遷移通知を行う。当該通知は、コントロール部３１１に対してスリープモード状態遷移時に状態遷移イベントを通知するよう指示していたＯＳ３００上のモジュールに対して行われる。本実施形態では、アプリＰＦ３３０がスリープモード状態遷移時におけるイベント通知を指示しているモジュールである。
ステップＳ４１３では、状態遷移イベントの通知を受けたアプリＰＦ３３０が、システム管理部３１０の機器情報管理部３１２に対し、ＯＳ３００のシステムの現在時刻の取得を指示する。
ステップＳ４１４では、システム管理部３１０の機器情報管理部３１２が、現在時刻の取得指示に応じてＯＳ３００から現在時刻を取得し、アプリＰＦ３３０に前記情報を通知する。
ステップＳ４１５では、アプリＰＦ３３０が、取得したＯＳ３００の現在時刻を、スリープモード状態遷移時刻として記憶する。
ステップＳ４１６では、システム管理部３１０のコントロール部３１１が、ＯＳ３００に対し、スリープモード状態遷移の指示を出し、スリープモード状態に遷移する。スリープモード状態では、例えばＣＰＵ２０４への電力供給が停止されたり、あるいはクロックの供給が停止されたりすることで、消費電力が低減される。
【００２５】
＜スリープモードからの復帰時の現在時刻の管理＞
ステップＳ４１７では、システム管理部３１０のコントロール部３１１による、画像処理装置１００がスリープモード状態から復帰した場合の処理を示している。画像処理装置１００は、たとえばユーザにより操作されたことや、或いは外部からのジョブが入力されたことなどをきっかけとして、スリープモードから通常モードへと復帰して停止（あるいは低速動作）していたＣＰＵ２０４は通常の動作を再開する。その後コントロール部３１１に制御が移ると、ステップＳ４１７から処理が行われる。
ステップＳ４１８では、システム管理部３１０のコントロール部３１１が、ＯＳ３００に対し、スリープモード状態復帰の指示を出し、スリープモード状態から復帰する。
ステップＳ４１９では、システム管理部３１０のコントロール部３１１が、アプリＰＦ３３０に対しスリープモード状態復帰通知を行う。当該通知は、コントロール部３１１に対してスリープモード状態復帰時に状態復帰イベントを通知するよう指示していたＯＳ３００上のモジュールに対して行われる。本実施形態では、アプリＰＦ３３０がスリープモード状態復帰時におけるイベント通知を指示しているモジュールである。
ステップＳ４２０では、状態復帰イベントの通知を受けたアプリＰＦ３３０が、システム管理部３１０の機器情報管理部３１２に対し、ＯＳ３００のシステムの現在時刻の取得を指示する。
ステップＳ４２１では、システム管理部３１０の機器情報管理部３１２が、現在時刻の取得指示に応じてＯＳ３００から現在時刻を取得し、アプリＰＦ３３０に取得した現在時刻を通知する。
ステップＳ４２２では、アプリＰＦ３３０が、取得したＯＳ３００の現在時刻を、スリープモード状態復帰時刻として記憶する。
ステップＳ４２３では、アプリＰＦ３３０が、時刻管理アプリ３４０に対し、スリープモード状態復帰イベントの通知をする。当該通知には、ステップＳ４１５、ステップＳ４２２それぞれで記憶したスリープモード状態遷移時刻及びスリープモード復帰時刻情報が含まれている。なお、当該通知は、アプリＰＦ３３０に対してスリープモード状態復帰時にイベント通知指示を行っていたアプリＰＦ３３０上のアプリに対して行わる。本実施形態では、時刻管理アプリ３４０がスリープモード状態復帰時におけるイベント通知指示を行っていたアプリである。
ステップＳ４２４では、時刻管理アプリ３４０が、ステップＳ４２３で通知されたスリープモード状態遷移時刻とスリープモード復帰時刻との差分を計算し、自身が保持するサーバ標準時刻に差分を加算する。これにより、サーバ標準時刻に、起動後経過時間には含まれていないスリープモード中の経過時間が反映される。
【００２６】
このようにしてローカルに更新される時間を用いてライセンス管理を行うことができる。ライセンス管理はたとえば、アプリＰＦ３３０上にインストールされたライセンス管理アプリによって行うことができる。ライセンス管理アプリは、たとえば画像処理装置１００に保存された、画像処理装置１００にインストールされたアプリのライセンス情報にアクセスして、ライセンス期間すなわちライセンスの有効期間を取得する。そしてそのライセンス期間が満了していないかを、画像処理装置１００が図４の手順で更新するサーバ標準時刻を照合して判定する。ライセンス期間が満了していたなら、該当するアプリを使用できない無効状態とする。
【００２７】
以上により、実施形態１では、画像処理装置１００のスリープモード状態遷移前後の時刻、並びにスリープモードの経過時間を、アプリＰＦ３３０上で動作する時刻管理アプリ３４０をはじめとするアプリで取得することが可能となる。スリープモードの経過時間はシステム時刻に基づくものではあるが、スリープモード中はユーザがシステム時刻を操作することはできないので、正確な経過時間を得ることができる。これによりサーバへのアクセス頻度を抑制しつつ、サーバ標準時刻に基づいた時刻管理を実現でき、ライセンス期間を低い誤差で管理できる。
【００２８】
＜アプリＰＦがスリープモード状態遷移時刻を取得する理由＞
ここで、スリープモード状態遷移の指示の前に、アプリＰＦ３３０がステップＳ４１２においてスリープモード状態遷移時刻を取得しておき、スリープモード復帰後にステップＳ４２３またはＳ５００でアプリ（本例では時刻管理アプリ３４０）に引き渡している理由を説明する。
【００２９】
アプリＰＦ３３０上のアプリは、スリープモードへの遷移の直前のシステムの現在時刻および、スリープモードからの復帰の直後のシステムの現在時刻を取得し、それらの差分からスリープモード中の経過時間を算出し、サーバ標準時間を補正する必要がある。このために例えば、アプリＰＦ３３０からアプリへとスリープモード遷移イベントおよび、スリープモード復帰イベントを送信し、アプリがそれぞれのイベント受信後にシステム時刻を読み、その差分を求めるという方法がある。しかしこの方法では、アプリはスリープモードへの遷移の直前のシステム時刻を取得できないことがある。その理由は、アプリＰＦ３３０が通知するスリープモード遷移イベントの通知は、ＯＳのスリープモードへの状態遷移処理とは非同期で実行されるためである。このため、アプリＰＦ３３０がアプリにスリープモード遷移イベントを通知する前に、あるいは通知の途中で、あるいは通知が完了してもアプリがシステム時刻を読み出す前に、ＯＳがスリープモードに遷移してしまう事態が発生し得る。この場合、ＰＦ３３０からスリープモード遷移イベントを受信したアプリは、スリープモードから通常モードに復帰した後で、スリープモードへ遷移する直前の時刻として、システム時刻を読むことになる。そしてその時のシステム時刻はスリープモードから復帰した直後の時刻である。このためスリープモード状態中の時間が把握できないという問題が発生してしまう。
【００３０】
本実施形態および第２の実施形態では、上記問題を生じさせないために、アプリに対してスリープモード遷移イベントの通知前にアプリＰＦ３３０がシステム時刻を読み、スリープモード遷移時刻として記憶しておく。そしてその後にスリープモードへと遷移させ、スリープモードから復帰後にスリープモード遷移時刻をアプリたとえば時刻管理アプリ３４０に通知している。すなわち、このシステム時刻の読み取りのタイミングを、スリープモード遷移イベントの通知前にすることも、本実施形態に係る発明の一つである。
【００３１】
［実施形態２］
次に、本発明の第２の実施形態を説明する。実施形態１では、スリープモード状態復帰時に、アプリＰＦ３５０によるスリープモード状態復帰イベントとしてスリープモード状態遷移時刻、およびスリープモード状態復帰時刻を通知しているが、各々の状態変化イベントで、各々の時刻情報を通知する構成としても良い。
【００３２】
実施形態２における、スリープモード状態遷移、及び状態復帰時のアプリＰＦ３３０、及び時刻管理アプリ３４０の処理シーケンスを図５で説明する。以下、実施形態１の図４のシーケンス処理に対する差分のみを説明するものとする。説明を省略しているステップＳ４００〜Ｓ４２２に関しては、実施形態１の図４のシーケンス処理と同じである。
【００３３】
ステップＳ５００は、ステップＳ４２２によりアプリＰＦ３３０が、取得したＯＳ３００の現在時刻をスリープモード状態復帰時刻として記憶した後の追加処理である。ステップＳ５００では、アプリＰＦ３３０が、時刻管理アプリ３４０に対し、スリープモード状態遷移イベントの通知をする。当該通知には、ステップＳ４１５で記憶したスリープモード状態遷移時刻が含まれている。なお、当該通知は、アプリＰＦ３３０に対し、スリープモード状態変化時にイベント通知指示を行っていたアプリＰＦ３３０上のアプリに対して行われる。本実施形態では、時刻管理アプリ３４０が、スリープモード状態変化時におけるイベント通知指示を依頼しているアプリである。
ステップＳ５０１では、時刻管理アプリ３４０が、ステップＳ５００で通知されたスリープモード状態遷移時刻を記憶し保持する。
ステップＳ５０２では、アプリＰＦ３３０が、時刻管理アプリ３４０に対し、スリープモード状態復帰イベントの通知をする。当該通知には、ステップＳ４２２で記憶したスリープモード状態復帰時刻情報が含まれている。なお、当該通知は、ステップＳ５００と同様に、アプリＰＦ３３０に対し、スリープモード状態変化時にイベント通知指示を行っていたアプリＰＦ３３０上のアプリに対して行われるものとする。
ステップＳ５０３では、時刻管理アプリ３４０が、前記ステップＳ４２３で通知されたスリープモード状態復帰時刻と、ステップＳ５０１で記憶したスリープモード状態遷移時刻との差分を計算し、自身が保持するサーバ標準時刻に得られた差分を加算する。
【００３４】
以上により、実施形態２では、アプリＰＦ３３０によるスリープモード状態遷移、復帰それぞれのイベントの通知から、それぞれの状態変化の時刻及び経過時間それぞれを、アプリＰＦ３３０上のアプリで取得可能となる。
【００３５】
なお、本発明は、具体的に開示された実施例に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【００３６】
上記実施形態の画像処理装置をまとめると以下のとおりの構成および機能を有する。
１．基準時刻を時刻サーバから取得する。
２．画像処理装置のローカルな時間で基準時刻を更新する。
２．２．その際に、通常の動作モードであれば、ＯＳにより提供される起動後経過時間で基準時刻を更新する。
２．３．またスリープモードでは、スリープモードの前後のシステム時刻を取得してその差分をスリープモードの期間として基準時刻を更新する。
【００３７】
この構成により、時刻サーバへのアクセス頻度を抑制しつつ、サーバ標準時刻に基づいた正確性の高い時刻管理を実現でき、ライセンス期間を低い誤差で管理できる。
【００３８】
［その他の実施例］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００３９】
１００：画像処理装置、１０１：情報処理装置、３００：ＯＳ、３１０：システム管理部、３３０：アプリケーションプラットフォーム（アプリＰＦ）、３４０：時刻管理アプリ
【図１】
2017227990.tif 000003
【図２】
2017227990.tif 000004
【図３】
2017227990.tif 000005
【図４】
2017227990.tif 000006
【図５】
2017227990.tif 000007