(57)【要約】【課題】  本発明は、一定期間の間は利用が可能となる商品を運用するシステムにおいて、システム時間等の調整や電源のシャットダウンに影響されることなく、使用期限を越えてアプリケーションを不正利用されてしまう事態を防止できる仕組みを提供する。【解決手段】  アプリケーションのライセンスをインストールした日時を基準日時として保持し、画像形成装置の起動時間を取得する。画像形成装置の起動時の日時と、シャットダウン時の日時を用いて、画像形成装置のシャットダウン中の経過時間を計算し、基準日時と、画像形成装置の起動時間と、画像形成装置のシャットダウン中の経過時間とを用いて、アプリケーションのライセンス管理を行う。【選択図】  図２
2018072889.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置であって、
アプリケーションのライセンスをインストールした日時を基準日時として保持する第１の保持手段と、
前記画像形成装置の起動時間を取得する取得手段と、
前記画像形成装置のシャットダウン時の日時を保持する第２の保持手段と、
前記画像形成装置の起動時の日時と、前記保持したシャットダウン時の日時を用いて、前記画像形成装置のシャットダウン中の経過時間を計算する計算手段と、
前記基準日時と、前記画像形成装置の起動時間と、前記画像形成装置のシャットダウン中の経過時間とを用いて、アプリケーションのライセンス管理を行う管理手段と有することを特徴とする画像形成装置。
【請求項２】
前記ライセンスには、有効期限が設定されていることを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記管理手段は、前記基準日時と、前記画像形成装置の起動時間と、前記画像形成装置のシャットダウン中の経過時間と、前記ライセンスの有効期限とを用いて、有効期限切れのアプリケーションを停止することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記基準日時は、前記画像形成装置内のユーザが変更可能な時計を用いて得られる日時であることを特徴とする請求項１乃至３の何れか１項に記載の画像形成装置。
【請求項５】
画像形成装置の制御方法であって、
アプリケーションのライセンスをインストールした日時を基準日時として保持する工程と、
前記画像形成装置の起動時間を取得する取得工程と、
前記画像形成装置のシャットダウン時の日時を保持する工程と、
前記画像形成装置の起動時の日時と、前記保持したシャットダウン時の日時を用いて、前記画像形成装置のシャットダウン中の経過時間を計算する計算工程と、
前記基準日時と、前記画像形成装置の起動時間と、前記画像形成装置のシャットダウン中の経過時間とを用いて、アプリケーションのライセンス管理を行う管理工程と有することを特徴とする画像形成装置の制御方法。
【請求項６】
前記ライセンスには、有効期限が設定されていることを特徴とする請求項５に記載の画像形成装置の制御方法。
【請求項７】
前記管理工程は、前記基準日時と、前記画像形成装置の起動時間と、前記画像形成装置のシャットダウン中の経過時間と、前記ライセンスの有効期限とを用いて、有効期限切れのアプリケーションを停止することを特徴とする請求項６に記載の画像形成装置の制御方法。
【請求項８】
前記基準日時は、前記画像形成装置内のユーザが変更可能な時計を用いて得られる日時であることを特徴とする請求項５乃至７の何れか１項に記載の画像形成装置の制御方法。
【請求項９】
請求項１乃至４の何れか１項に記載の画像形成装置としてコンピュータを機能させるための該コンピュータで読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライセンス管理の技術に関する。
【背景技術】
【０００２】
画像形成装置はコピー、プリントやスキャン機能など基本機能は標準で搭載されているが、オプションとして拡張機能が用意されていることがある。一般的にはそのような拡張機能を利用したいユーザは拡張機能の商品を購入することでライセンスを受け、商品を利用することができる（特許文献１を参照）。
【０００３】
また、上記拡張機能の商品の購入にあたり、一定期間の間は利用が可能となる権利を購入する方式が考えられる。この方式の場合、その商品に設定された有効期限が切れた際、その後は商品が不正に利用できないようにするため、商品が提供する機能を制限したり停止したりする必要がある。
【０００４】
そこで、ユーザが取得した商品をセットアップした画像形成装置内の内蔵時計の日時を基準にして、商品の使用制限を実現する形態が見られる。
【０００５】
具体的には、プログラムやライセンスファイル内に設定されている使用期限日時と内蔵時計の日時を比較して、期間内であれば通常に動作（一部の機能が制限される場合もある）を行う。そして、期間を過ぎていれば機能限定で動作させるか、或いは動作をさせないようにして、商品の提供者の意図に反して不正に利用されないようにしている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−２２１０５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところが、上記の方法では画像形成装置内の内蔵時計の日付をユーザが過去に戻してアプリケーションがまだ使用期間内にあるように欺くことができ、利用可能期間を過ぎた場合の不正利用を防ぐことは出来なかった。そこで、画像形成装置内の内蔵時計の調整による影響を受けないようにするため、アプリケーションをインストールした時点からの経過時間を計測するプログラムによって現在日時を計算し、利用可能期間を過ぎていないか否かを判定する形態が考えられる。しかしながら、画像形成装置がシャットダウンしているなどして動作していない間は、経過時間を計測するプログラムが動作することができないため、経過時間を正しくカウントすることが出来ないという問題があった。
本発明は、このような問題を鑑みてなされたものであり、その目的は、画像形成装置がシャットダウンしている間に経過した時間の計測が可能であり、なおかつ使用期間を経過したアプリケーションの不正利用を防止できる装置を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決するために、本発明の画像形成装置は、アプリケーションのライセンスをインストールした日時を基準日時として保持する第１の保持手段と、前記画像形成装置の起動時間を取得する取得手段と、前記画像形成装置のシャットダウン時の日時を保持する第２の保持手段と、前記画像形成装置の起動時の日時と、前記保持したシャットダウン時の日時を用いて、前記画像形成装置のシャットダウン中の経過時間を計算する計算手段と、前記基準日時と、前記画像形成装置の起動時間と、前記画像形成装置のシャットダウン中の経過時間とを用いて、アプリケーションのライセンス管理を行う管理手段と有することを特徴とする。
【発明の効果】
【０００９】
本発明により、一定期間の間は利用が可能となる商品を運用するシステムにおいて、システム時間等の調整や電源のシャットダウンに影響されることなく、使用期限を越えてアプリケーションを不正利用されてしまう事態を防止できる効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】画像形成装置のハードウェア構成を示す図である。
【図２】画像形成装置のソフトウェア構成を示す図である。
【図３】ライセンスの例である。
【図４】不揮発性メモリに記憶されるライセンス情報データの例である。
【図５】Ｌｉｎｕｘ（登録商標）のＵｐｔｉｍｅファイルの例である。
【図６】不揮発性メモリに記憶される時間情報データの例である。
【図７】ライセンスをインストールする処理のフローチャートである。
【図８】ライセンスをアンインストールする処理のフローチャートである。
【図９】経過時間をカウントする処理のフローチャートである。
【図１０】画像形成装置がシャットダウンする際に経過時間のカウントを終了する処理のフローチャートである。
【図１１】画像形成装置を起動する処理のフローチャートである。
【図１２】現在日時を計算する処理のフローチャートである。
【図１３】ライセンスを期限チェックする処理のフローチャートである。
【図１４】画像形成装置の内蔵時計を変更する処理のフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための形態について図面を用いて説明する。
【００１２】
＜第１の実施形態＞
図１は、画像形成装置１００のハードウェア構成図である。ＣＰＵ１０１は、プログラムの実行や、様々な処理の制御を行う。不揮発性メモリ１０２は、ＳＲＡＭから構成されており、内蔵電池１０９により、機器本体の電源を切っても内容が失われない不揮発性メモリとして動作し、機器の起動処理において初期段階に必要なプログラムやデータが格納されている。また、画像形成装置１００を使用するユーザの操作によってデータを初期化することが出来ないようになっている。
【００１３】
揮発性メモリ１０３は、ＲＡＭから構成され、プログラム、データの一時的な格納場所として利用される。補助記憶装置１０４は、ハードディスクやＲＡＭドライブ等の大容量記憶装置から構成され、大容量データの保管、プログラムの実行コードの保持、画像形成装置１００の設定値の保持を行う。揮発性メモリ１０３と比較して、長時間保持する必要があるデータを記憶する。補助記憶装置１０４は不揮発性の記憶装置であるため、画像形成装置１００の電源が切られてもデータを記憶し続けることができるが、画像形成装置１００を使用するユーザの操作によってデータを初期化することが可能となっている。ディスプレイ１０５は、利用者に情報を伝えるための表示装置である。
【００１４】
入力装置１０６は、利用者の選択指示を受け付け、内部バス１１０を介してプログラムに伝達するための装置である。ネットワーク通信装置１０７は、画像形成装置１００がネットワークを介して別の情報機器と通信することを可能とするための装置である。ＲＴＣ１０８は，内蔵電池１０９によりバッテリバックアップされているため、装置の電源がオフの間も常に時刻をカウントすることができ、ユーザによって時刻を調整することが可能な（変更可能な）、リアルタイムクロックと呼ばれる時計である。内部バス１１０は、各ハードウェア装置を画像形成装置１００内で通信可能な状態に接続する通信バスである。
【００１５】
図２は、画像形成装置１００のソフトウェア構成図である。画像形成装置１００が保持する各ソフトウェア部は、画像形成装置１００において不揮発性メモリ１０２もしくは補助記憶装置１０４に保存され、ＣＰＵ１０１にて実行されることで機能を発揮する。また、実行時に使用する各種情報は画像形成装置１００において、揮発性メモリ１０３もしくは補助記憶装置１０４に保持してソフトウェア間で各種情報のやりとりを行う。
【００１６】
以下に画像形成装置１００が保持する各ソフトウェア部を説明する。デバイス時計管理部２０２は、画像形成装置１００を使用するユーザがディスプレイ１０５をとおしてデバイス時計の日時を変更した場合に、時間情報をＲＴＣ１０８に適用する機能を有する。また、ＲＴＣ１０８から現在日時等の時間情報を取得する機能も有する。
【００１７】
図６は、不揮発性メモリに記録された時間情報データの一例である。現在日時管理部２０３は、ＲＴＣ１０８に対する時間変更の影響を受けずに現在日時を管理する機能を有する。アプリケーションのライセンスが画像形成装置１００に初めてインストールされたとき、現在日時管理部２０３は、不揮発性メモリ１０２に記録された時間情報データ６００を更新する。その際、現在日時管理部２０３は、ＲＴＣ１０８から取得した日時を基準日時６０１に記憶する。更に、現在日時管理部２０３は、基準日時６０１を起点として経過時間をカウントする繰り返し処理を開始し、総経過時間６０２に経過時間を加算していく。そうしてカウントされた総経過時間６０２を基準日時６０１に加算して求められた日時が、計算された現在日時ということになる。なお、経過時間をカウントする処理については図９、現在日時の計算については図１２で詳しく説明する。
【００１８】
ライセンス情報記憶部２０５は、画像形成装置１００上で動作するアプリケーションに対し、適用されたライセンス情報を不揮発性メモリ１０２に記憶する機能を有する。ライセンス適用部２０６は、インストール指示を受けたライセンスを画像形成装置１００に適用する機能を有する。ライセンスが画像形成装置１００にインストールされると、不揮発性メモリ１０２に記録されたライセンス情報データ４００が更新される。ライセンス適用部２０６は、ライセンスにあるデバイス識別子３０２が画像形成装置１００のデバイス識別子と合致しているか確認する。そして、ライセンスにあるアプリケーション識別子３０１と同じアプリケーション識別子４０１のレコードに対して、有効期限日４０２、ライセンス状態４０３を上書き保存する。同じアプリケーション識別子のレコードがなければ、新規にレコードを追加する。ライセンスが適用されることでライセンスが画像形成装置１００に適用されアプリケーションの利用が可能となる。アプリケーションは商品を構成する一部であり、画像形成装置１００でアプリケーションが利用できる状態になることで、ユーザに商品が提供されたことになる。
【００１９】
ライセンス状態監視部２０４は、画像形成装置１００上で動作するアプリケーションのライセンスの状態を監視する手段である。ライセンス状態監視部２０４は、ライセンスの有効期限切れのアプリケーションが存在した場合に、アプリケーション制御部２０７が提供する機能により、該当するアプリケーションを停止状態にする。
【００２０】
アプリケーション部２０８は、画像形成装置１００上で動作するアプリケーションであり、拡張機能および／または標準機能を提供する。アプリケーションの動作はライセンスによって制御されており、ライセンス情報記憶部２０５によって記憶されたライセンス情報データ４００に有効なライセンスがある場合にのみアプリケーションは動作する。有効なライセンスがあるか否かの判定方法は、自らのアプリケーション識別子に該当するレコードを検索し、後述の図１２の方法で取得した現在日時がライセンス情報データ４００の有効期限日４０２を過ぎていないか否かによって判定される。また、有効期限日４０２が”無期限”である場合は有効であると判定する。有効期限日４０２が”無期限”であるということは、有効期限付きの商品に分類されるアプリケーションではないということである。一方、自らのアプリケーション識別子に該当するレコードがない、或いはライセンス状態４０３が”未インストール”の場合は、有効でないと判定する。
【００２１】
アプリケーション制御部２０７は、画像形成装置１００上で動作するアプリケーションのライフサイクルを管理する。アプリケーション制御部２０７は、画像形成装置１００上で動作するアプリケーションについて、アプリケーションのバージョンや製品名などの情報、開始中や停止中の状態を管理している。また、アプリケーション制御部２０７は、システム管理者が利用するためのアプリケーションの管理画面（不図示）を提供している。システム管理者は管理画面を介してアプリケーションの開始や停止、アンインストール、ならびにライセンスの適用をおこなうことが出来る。
【００２２】
アプリケーションの動作はライセンスによって制御されており、ライセンス情報記憶部２０５によって記憶されたライセンス情報データ４００に有効なライセンスがある場合にのみ、アプリケーション制御部２０７はアプリケーションを動作させる。有効なライセンスがあるか否かの判定方法は、アプリケーション部２０８で説明したとおりである。
【００２３】
図３に、ライセンスの例を示す。ライセンス３００はファイル形式のライセンスであり、ライセンス３００によって証明されるアプリケーションの利用権限を特定するための情報が含まれている。アプリケーション識別子３０１とは、画像形成装置１００上で動作するアプリケーションを一意に識別する為の識別子である。この例では単純な整数で表しているが、より複雑な文字列や、ＵＵＩＤを用いてもよい。デバイス識別子３０２は、ライセンス３００を利用する画像形成装置１００を一意に識別する為の識別子である。有効期限日数３０３は、ライセンス３００の有効期限が切れる迄の残りの日数である。電子署名３０４は、ライセンス３００の正当性を検証するための証明書である。なお、ライセンスはライセンス３００のファイル形式でなくてもよく、電子データで表現されるアプリケーション有効化のための全ての情報を実施例１ではライセンスと称している。
【００２４】
図５に、Ｌｉｎｕｘ（登録商標）が管理するＵｐｔｉｍｅファイル５００の例を示す。Ｕｐｔｉｍｅファイル５００は、Ｒｅｄ  Ｈａｔ（登録商標）、Ｕｂｕｎｔｕ（登録商標）、ＣｅｎｔＯＳ（登録商標）、その他Ｌｉｎｕｘ（登録商標）ディストリビューションにおいて、／ｐｒｏｃ／ｕｐｔｉｍｅに記憶されるテキストファイルである。Ｕｐｔｉｍｅファイル５００は、前回の再起動からの経過時間に関する情報が記載されている。値５０１は、システムが起動してから経過した秒数を示す。値５０２は、ＣＰＵ１０１の各コアにおいてアイドル状態で経過した時間の秒数を示す。このＵｐｔｉｍｅファイル５００は、画像形成装置１００が再起動される度に値が０にリセットされ、その後に画像形成装置１００がシャットダウンされるまで、リアルタイムで更新される。つまり、画像形成装置１００がサスペンド状態に移行したとしても、その間に進んだ時間が正しくカウントされる。なお、本発明においては、経過時間をカウントするために値５０１を利用するものとする。
【００２５】
図７は、画像形成装置１００にライセンスをインストールする処理の流れを説明する為のフローチャートである。Ｓ７００は、ライセンス適用部２０６がライセンス３００の内容が正しいか否かをチェックするステップである。例えば、アプリケーション識別子３０１に該当するアプリケーションが存在するか、デバイス識別子３０２と画像形成装置１００のデバイス識別子が一致するか、電子署名３０４が正当なものであるかなどを検証する。これらの検証に失敗した場合、インストールエラーとして本フローチャートの処理を終了する（不図示）。Ｓ７０１は、ライセンス適用部２０６がライセンス３００に有効期限が設定されているか否かをチェックするステップである。有効期限が設定されている場合はＳ７０２に遷移し、有効期限が設定されていない場合はＳ７０８に遷移する。Ｓ７０２は、現在日時管理部２０３が時間情報データ６００より基準日時６０１を取得するステップである。Ｓ７０３は、ライセンス適用部２０６がＳ７０２において基準日時６０１が取得できたかを判定するステップである。基準日時６０１が取得できた場合は、Ｓ７０８に進む。基準日時６０１が取得できない場合は、Ｓ７０４に進む。Ｓ７０４は、現在日時管理部２０３がデバイス時計管理部２０２から取得したＲＴＣ１０８の日時を時間情報データ６００の基準日時６０１に記憶するステップである。Ｓ７０５は、現在日時管理部２０３がデバイス時計管理部２０２から取得したＲＴＣ１０８の日時を時間情報データ６００の最終デバイス日時６０３に記憶するステップである。Ｓ７０６は、現在日時管理部２０３がＵｐｔｉｍｅファイル５００から取得した値５０１を、揮発性メモリ１０３に記憶するステップである（以降、ここで記憶した値を”前回のＵｐｔｉｍｅ値”と記す）。”前回のＵｐｔｉｍｅ値”を記憶することで、次回経過時間をカウントする際、再びＵｐｔｉｍｅファイル５００から取得した値５０１から”前回のＵｐｔｉｍｅ値”を減算すれば、その間に経過した時間を得ることが可能となる。Ｓ７０７は、図９で説明する経過時間をカウントする処理のタイマーを開始するステップである。例えば、ここで５分間隔のタイマーをセットした場合、図９で説明する処理が５分おきに繰り返し実行されることになる。ステップＳ７０８において、ライセンス適用部２０６はライセンス情報データ４００にライセンス３００の情報を記憶し、処理を終了する。こうして、有効期限が設定されたライセンスが初めてインストールされた場合は、時間情報データ６００に時間情報がセットされ、経過時間をカウントする処理が開始することになる。
【００２６】
図８は、画像形成装置１００からライセンスをアンインストールする処理の流れを説明する為のフローチャートである。ステップＳ８００において、ライセンス適用部２０６はライセンス情報記憶部に記憶されたライセンス情報データ４００をリストで取得する。ステップＳ８０１において、ライセンス適用部２０６は有効期限が設定されたライセンス（アンインストール対象となるライセンスは除く）が、ステップＳ８００において取得したライセンス情報のリストに存在するか否かを判定する。存在する場合はＳ８０５に遷移し、存在しない場合はＳ８０２に遷移する。ステップＳ８０２において、現在日時管理部２０３は経過時間をカウントする処理のタイマーを停止する。ステップＳ８０３において、現在日時管理部２０３は時間情報データ６００の基準日時６０１の情報を削除する。ステップＳ８０４において、現在日時管理部２０３は時間情報データ６００の総経過時間６０２を０にリセットして記憶する。ステップＳ８０５において、ライセンス適用部２０６はライセンス情報データ４００からアンインストール対象のライセンス情報を削除する。こうして、有効期限が設定されたライセンスが全てアンインストールされた場合は、時間情報データ６００の時間情報がリセットされることになる。
【００２７】
図９は、基準日時からの経過時間をカウントする処理の流れを説明する為のフローチャートである。ステップＳ９００において、経過時間をカウントする処理の要求を検知する。ステップＳ９０１において、現在日時管理部２０３は時間情報データ６００より基準日時６０１を取得する。ステップＳ９０２において、ライセンス適用部２０６はＳ９０１において基準日時６０１が取得できたかを判定する。基準日時６０１が取得できた場合は、Ｓ９０３に進む。取得出来なかった場合は、処理を終了する。ステップＳ９０３において、現在日時管理部２０３は経過時間をカウントする処理のタイマーを停止する。ステップＳ９０４において、現在日時管理部２０３は揮発性メモリ１０３に記憶されている”前回のＵｐｔｉｍｅ値”（起動時間）を取得する。ステップＳ９０５において、現在日時管理部２０３はＵｐｔｉｍｅファイル５００から値５０１を取得し、取得した値からステップＳ９０４で取得した”前回のＵｐｔｉｍｅ値”を減算することで経過時間を計算する。ステップＳ９０６において、現在日時管理部２０３はステップＳ９０５で計算した経過時間を、時間情報データ６００の総経過時間６０２に加算して記憶する。ステップＳ９０７からステップＳ９０９は、図７のステップＳ７０５からステップＳ７０７と同じ処理であるため、説明を省略する。こうして、一定時間おきに時間情報データ６００の総経過時間に経過時間が加算されることになる。
【００２８】
図１０は、画像形成装置１００をシャットダウンする際に経過時間のカウント処理を終了する流れを説明する為のフローチャートである。ステップＳ１０００において、現在日時管理部２０３は時間情報データ６００より基準日時６０１を取得する。ステップＳ１００１において、現在日時管理部２０３はＳ１０００において基準日時６０１が取得できたかを判定する。基準日時６０１が取得できた場合は、Ｓ１００２に進む。取得出来なかった場合は、処理を終了する。ステップＳ１００２からステップＳ１００５は、図９のステップＳ９０３からステップＳ９０６と同じ処理であるため、説明を省略する。ステップＳ１００６において、現在日時管理部２０３がデバイス時計管理部２０２から取得したＲＴＣ１０８の日時を時間情報データ６００の最終デバイス日時６０３に記憶する。こうして、画像形成装置１００をシャットダウンする際に、時間情報データ６００の総経過時間および最終デバイス日時が更新されることになる。
【００２９】
図１１は、画像形成装置１００を起動した際に画像形成装置１００がシャットダウンしていた間に進んだ経過時間を計測する処理の流れを説明する為のフローチャートである。ステップＳ１１００において、現在日時管理部２０３は時間情報データ６００より基準日時６０１を取得する。ステップＳ１１０１において、現在日時管理部２０３はＳ１１００において基準日時６０１が取得できたかを判定する。基準日時６０１が取得できた場合は、Ｓ１１０２に進む。取得出来なかった場合は、処理を終了する。ステップＳ１１０２において、現在日時管理部２０３は時間情報データ６００より最終デバイス日時６０３を取得する。ステップＳ１１０３において、ステップＳ１１０２で取得した最終デバイス日時と、デバイス時計管理部２０２から取得したＲＴＣ１０８の日時の間の時間を計算する。例えば、最終デバイス日時６０３が２０１６／０８／０１  １０：１０：００で、ＲＴＣ１０８の日時が２０１６／０８／０１  １５：１０：００であった場合、その間の時間は１８０００秒であると計算することができる。この計算された時間は画像形成装置１００がシャットダウンしていた間に進んだ経過時間（シャットダウン中の経過時間）ということになる。なお、画像形成装置１００の起動過程におけるＲＴＣ１０８の日時はユーザよって変更することが出来ないため、前回、画像形成装置１００がシャットダウンしてから、ステップＳ１１０３の処理のタイミングの間ではＲＴＣ１０８は信頼出来る日時ということになる。ステップＳ１１０５からステップＳ１１０７は、図７のステップＳ７０５からステップＳ７０７と同じ処理であるため、説明を省略する。ステップＳ１１０８において、現在日時管理部２０３は図１３で説明するライセンスの期限チェック処理を呼び出して処理を終了する。こうして、画像形成装置１００がシャットダウンしている間の経過時間を計算することができる。
【００３０】
図１２は、現在日時を計算する処理の流れを説明する為のフローチャートである。ステップＳ１２００において、現在日時管理部２０３は時間情報データ６００より基準日時６０１を取得する。ステップＳ１２０１において、現在日時管理部２０３はＳ１２００において基準日時６０１が取得できたかを判定する。基準日時６０１が取得できた場合は、Ｓ１２０３に進む。取得出来なかった場合は、Ｓ１２０２に進む。ステップＳ１２０２において、現在日時管理部２０３はデバイス時計管理部２０２からＲＴＣ１０８の日時を取得し、処理を終了する。ステップＳ１２０３において、現在日時管理部２０３は時間情報データ６００より総経過時間６０２を取得する。ステップＳ１２０３において、Ｓ１２００で取得した基準日時６０１に、Ｓ１２０２で取得した総経過時間６０２を加算した時間を計算する。例えば、基準日時６０１が２０１６／０８／０１  １０：００：００で、総経過時間６０２が１０４４００であった場合、現在日時は２０１６／０８／０２  １５：００：００ということになる。こうして、基準日時と総経過時間を基に現在日時を計算することができる。本実施形態では、基準日時と総経過時間から現在日時を計算する形態を説明した。が、例えばＵｐｔｉｍｅファイル５００から取得した値５０１から”前回のＵｐｔｉｍｅ値”を引いた値を総経過時間に一時的に加算することで更に正確な現在日時を計算することができる。
【００３１】
図１３は、ライセンスの期限をチェックする処理の流れを説明する為のフローチャートである。ステップＳ１３００において、ライセンスの期限をチェックする処理の要求を検知する。この要求は、例えば、図１１で説明したデバイス起動時の経過時間のカウント処理、画像形成装置１００のサスペンド状態からの復帰処理（不図示）、毎晩深夜０時などの期限チェック処理（不図示）などから呼び出される。ステップＳ１３０１において、ライセンス状態監視部２０４はライセンス情報記憶部に記憶されたライセンス情報データ４００をリストで取得する。ステップＳ１３０２において、ライセンス状態監視部２０４はＳ１３０１でライセンス情報のリストが取得できたかを判定し、取得できた場合はＳ１３０３に遷移する。取得できなかった場合は処理を終了する。ステップＳ１３０３において、ライセンス状態監視部２０４は図１２で説明した処理により現在日時を取得し、Ｓ１３０１で取得したライセンス情報データ４００のリストに対してＳ１３０４〜Ｓ１３０６の繰り返し処理を開始する。ステップＳ１３０４において、ライセンス状態監視部２０４はＳ１３０３で取得した現在日時と、ライセンス情報データ４００の有効期限日４０２を比較し、有効期限内であるか否かを判定する。有効期限内である場合はＳ１３０６に遷移し、有効期限切れの場合はＳ１３０５に遷移する。ステップＳ１３０４において、ライセンス状態監視部２０４はアプリケーション制御部２０７が提供する機能により、有効期限切れのアプリケーションを停止状態にする。ステップＳ１３０６において、ライセンス状態監視部２０４は、リストの最終行であるかどうかを確認し、対象行が残っている場合は、ステップＳ１３０４に戻り、次の行に対して処理を実施し、対象行が残っていない場合は、処理を終了する。
【００３２】
以上説明してきた手順によって、システム時間等の調整や電源のシャットダウンに影響されることなく、使用期限を越えてアプリケーションを不正利用されてしまう事態を防止できる。
【００３３】
＜第２の実施形態＞
本実施形態では、画像形成装置１００のユーザがデバイス時計を変更直後に、停電が発生したりコンセントを抜いたりしたときのことを考える。
【００３４】
画像形成装置１００において停電が発生したりコンセントを抜いたりした場合、実施例１の図１０で説明したシャットダウン時の処理が正しく動作しない。すなわち、シャットダウン時にデバイス日時が最終デバイス日時に記憶されないことになる。そのため、デバイス時計を変更直後に、停電が発生したりコンセントを抜いたりした場合、次に画像形成装置１００を起動した際に経過時間を正しくカウントすることが出来ず、使用期限を越えてアプリケーションを不正利用されてしまうという課題がある。
【００３５】
まず初めに上記課題について例を用いて補足する。例えばユーザが画像形成装置１００のデバイス時計を２０１６／０８／０５  ５：００：００から２０１６／０８／０５  ９：００：００に変更した直後、正しい手順で画像形成装置１００をシャットダウンした場合のことを考える。このケースの場合、実施例の図１０で説明したとおり、シャットダウン時に時間情報データ６００の最終デバイス日時に２０１６／０８／０５  ９：００：００が記録される。そして、４時間後に画像形成装置１００を起動した場合、図１１で説明したように起動時点のデバイス時計である２０１６／０８／０５  １３：００：００と前回シャットダウンした時点の最終デバイス日時である２０１６／０８／０１  ９：００：００を比較する。比較することで、経過時間は４時間であると正しく計算することができる。一方、ユーザが画像形成装置１００のデバイス時計を２０１６／０８／０５  ５：００：００から２０１６／０８／０１  ５：００：００に変更した直後、画像形成装置１００のコンセントを抜いた場合のことを考える。このケースの場合、シャットダウン処理は実行されないため、実施例の図１０で説明した最終デバイス日時の記録はおこなわれない。従って、実施例の図９で説明したように経過時間を最後に計測した時点で記録された最終デバイス日時がそのまま記録されていることになる。例えば、その最終デバイス日時が２０１６／０８／０５  ０４：５６：００だったとする。その状態で、４時間後に画像形成装置１００を起動した場合、起動時点のデバイス時計である２０１６／０８／０１  ９：００：００と前回経過時間を計測した時点の最終デバイス日時である２０１６／０８／０５  ０４：５６：００を比較する。その場合、本来は４時間経過しているのにも関わらず、経過時間がマイナス４日超になるといった誤った計算がおこなわれてしまうことになる。
【００３６】
以下に上記課題を解決する手順を示す。
【００３７】
図１４は、ユーザによるデバイス時計変更の処理の流れを説明する為のフローチャートである。
【００３８】
ステップＳ１４００において、現在日時管理部２０３はデバイス時計管理部２０２によるデバイス時計の変更を検知する。
【００３９】
ステップＳ１４０１において、現在日時管理部２０３は実施例１で説明した図９の処理を呼び出することで、時間情報データ６００の総経過時間ならびに最終デバイス日時を更新する。
そして、処理を終了する。こうして、ユーザがデバイス時計を変更した際にその時点の最終デバイス日時が正しく記録されるため、直後に停電が発生したりコンセントを抜いたりした場合でも、次回の起動時に経過時間を正しく計算することが可能となる。
【００４０】
以上説明してきた手順によって、画像形成装置１００のデバイス時計を変更直後に、停電が発生したりコンセントを抜いたりした場合でも使用期限を越えてアプリケーションを不正利用されてしまう事態を防止できる。
【００４１】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2018072889.tif 000003
【図２】
2018072889.tif 000004
【図３】
2018072889.tif 000005
【図４】
2018072889.tif 000006
【図５】
2018072889.tif 000007
【図６】
2018072889.tif 000008
【図７】
2018072889.tif 000009
【図８】
2018072889.tif 000010
【図９】
2018072889.tif 000011
【図１０】
2018072889.tif 000012
【図１１】
2018072889.tif 000013
【図１２】
2018072889.tif 000014
【図１３】
2018072889.tif 000015
【図１４】
2018072889.tif 000016