(57)【要約】【課題】アプリケーションのライセンスが無効になったときにも、連携動作するアプリケーションを利用することができる画像形成装置を提供する。【解決手段】この画像形成装置は、画像形成装置で動作するアプリケーションの動作を制御する制御手段と、アプリケーションに係る画面を表示する表示手段と、を備える。制御手段は、アプリケーションの有効期限が無効である場合に、アプリケーションが認証機能を有していればアプリケーションを起動させ、認証機能を有していなけば前記アプリケーションを停止させる。表示手段は、ユーザからの操作に従って画面を表示する際に、アプリケーションが認証機能を有しており、かつ有効期限が無効である場合であっても、アプリケーションに係る画面の表示優先度に応じてアプリケーションに係る画面を表示する。【選択図】図６
2019069564.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置で動作するアプリケーションの動作を制御する制御手段と、
前記アプリケーションに係る画面を表示する表示手段と、
を備え、
前記制御手段は、前記アプリケーションの有効期限が無効である場合に、前記アプリケーションが認証機能を有していれば前記アプリケーションを起動させ、前記認証機能を有していなけば前記アプリケーションを停止させ、
前記表示手段は、ユーザからの操作に従って前記画面を表示する際に、前記アプリケーションが認証機能を有しており、かつ有効期限が無効である場合であっても、前記アプリケーションに係る画面の表示優先度に応じて前記アプリケーションに係る画面を表示する
ことを特徴とする画像形成装置。
【請求項２】
前記制御手段は、前記アプリケーションが認証機能を有しており、かつ別のアプリケーションと連携する場合は、前記別のアプリケーションの利用準備の状況に応じて前記アプリケーションの動作を制御する
ことを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記制御手段は、前記別のアプリケーションの利用準備が完了している場合に、前記アプリケーションを起動させ、前記別のアプリケーションの利用準備が完了していない場合に、前記アプリケーションの起動をさせない
ことを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記表示手段は、前記アプリケーションに係る画面の前記表示優先度が前記有効期限が無効であることを示す警告画面よりも優先される場合、前記アプリケーションに係る画面を表示する
ことを特徴とする請求項１〜３のいずれか１項に記載の画像形成装置。
【請求項５】
前記表示手段は、前記アプリケーションに係る画面を表示する際に前記認証機能とは別の認証を必要とする場合、前記別の認証のための画面を表示する
ことを特徴とする請求項１〜４のいずれか１項に記載の画像形成装置。
【請求項６】
前記表示手段は、前記アプリケーションに係る画面を表示する際に前記認証機能とは別の認証を必要としない場合、前記アプリケーションに係る画面を表示する
ことを特徴とする請求項５に記載の画像形成装置。
【請求項７】
画像形成装置で動作するアプリケーションの動作を制御する画像形成装置の制御方法であって、
前記アプリケーションの動作を制御する制御工程と、
前記アプリケーションに係る画面を表示する表示工程と、
を有し、
前記制御工程では、前記アプリケーションの有効期限が無効である場合に、前記アプリケーションが認証機能を有していれば前記アプリケーションを起動させ、前記認証機能を有していなけば前記アプリケーションを停止させ、
前記表示工程では、ユーザからの操作に従って前記画面を表示する際に、前記アプリケーションが認証機能を有しており、かつ有効期限が無効である場合であっても、前記アプリケーションに係る画面の表示優先度に応じて前記アプリケーションに係る画面を表示する
ことを特徴とする画像形成装置の制御方法。
【請求項８】
請求項１乃至６のいずれか１項に記載の画像形成装置の各手段としてコンピューターを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成装置の制御方法、及びプログラムに関し、特にアプリケーションのライセンス管理に関する。
【背景技術】
【０００２】
複合機において、別途開発したソフトウェアをアプリケーションとしてインストールし、新たな機能を提供、もしくは元からある機能をカスタマイズすることが行われている。このアプリケーションを利用できる権利を定めて、その権利をライセンスとして販売することがある。権利としては、利用期限や、利用回数がある。与えられた権利を使い切るとライセンスが無効になり、アプリケーション側に実装された仕組みで、一部もしくは全ての機能が利用できなくなる。ライセンスが無効になったときの仕組みをすべてのアプリケーションに実装する手間を軽減するため、汎用的な仕組みが提供される場合がある。一般的には、ライセンスが無効になると、アプリケーションが停止され、起動できなくなる仕組みである。利用者がアプリケーションの起動を指示すると、ライセンスが無効であるため利用できないことを警告する画面が表示され、画面を閉じるとアプリケーションが停止するような仕組みが存在する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第４５４７９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ライセンスが無効になったアプリケーションの起動を止めてしまうと、利用者から見て、ライセンスが無効になったアプリケーションに関係しない機能まで利用できなくなるアプリケーションが存在する。例えば、ログインアプリケーションというアプリケーションが存在する。ログインアプリケーションは、複合機を利用するユーザを識別する認証機能と、どの機能を利用してよいかの認可機能を提供する。そのため、他のアプリケーションは、利用中のユーザが誰かを参照する場合、利用中のユーザが要望した機能が認可されているかを確認する場合などに、ログインアプリケーションの機能を利用する。この利用関係があるため、ログインアプリケーションの起動を止めてしまうと、ログインアプリケーションの機能を利用したいアプリケーションがログインアプリケーションの起動完了を待つために起動できなくなる場合がある。ログインアプリケーションを使ってライセンス販売のビジネスをする場合もあるため、ログインアプリケーションのライセンスが無効になると、利用者からみて関係しない機能まで利用できなくなってしまう。
【０００５】
本発明は、上記課題を鑑みて、アプリケーションのライセンスが無効になったときにも、連携動作するアプリケーションを利用することができる画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するために、本発明の画像形成装置は、画像形成装置で動作するアプリケーションの動作を制御する制御手段と、前記アプリケーションに係る画面を表示する表示手段と、を備え、前記制御手段は、前記アプリケーションの有効期限が無効である場合に、前記アプリケーションが認証機能を有していれば前記アプリケーションを起動させ、前記認証機能を有していなけば前記アプリケーションを停止させ、前記表示手段は、ユーザからの操作に従って前記画面を表示する際に、前記アプリケーションが認証機能を有しており、かつ有効期限が無効である場合であっても、前記アプリケーションに係る画面の表示優先度に応じて前記アプリケーションに係る画面を表示することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、アプリケーションのライセンスが無効になったときにも、連携動作するアプリケーションを利用することができる画像形成装置を提供することができる。
【図面の簡単な説明】
【０００８】
【図１】画像形成装置のネットワーク構成を示す図である。
【図２】画像形成装置のハードウェア構成を示す図である。
【図３】画像形成装置のソフトウェア構成を示す図である。
【図４】アプリケーションとライセンスファイルの一例を示す図である。
【図５】警告画面の一例を示す図である。
【図６】起動処理を示すシーケンス図である。
【図７】アプリケーションの有効期限切れを検知したときのフローチャートである。
【図８】画面遷移要求を検知したときのフローチャートである。
【図９】第２実施形態の画面遷移要求を検知した時のフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面などを参照して説明する。
【００１０】
まず、アプリケーションについて説明する。実施形態中に説明する画像形成装置１０１には、後からアプリケーションやライセンスを追加するための仕組みが存在する。画像形成装置１０１が有していない機能を追加する、顧客にあわせて機能をカスタマイズする、といった用途が想定されている。アプリケーションには複数のタイプが存在しており、コピータイプ、送信タイプ、管理タイプ、ログインタイプなどがある。それぞれ、コピー機能、送信機能、デバイスの管理機能、ログイン機能を提供するアプリケーションであることを示す。
【００１１】
次に、ログインアプリケーションについて説明する。ログインアプリケーションは、ログインタイプのアプリケーションのことである。ログイン機能などの認証機能を提供するが、具体的には、画像形成装置１０１の利用者を認証し、適切な認可を与えるアプリケーションである。通常はＯＳレベルで提供される基本機能であるが、画像形成装置１０１においては、ログインアプリケーションを顧客の環境に合わせてカスタマイズしたい要望が強いため、よく利用されるアプリケーションタイプである。
【００１２】
次に、ログインアプリケーションを単純に停止、もしくは起動させないとした場合に発生する事象について説明する。画像形成装置１０１は、複数人で共有することを前提としているため、何の処理が誰の指示で行われたかをトレース、誰に何の処理を許可してよいか否かを制御することが重要である。そのため、ログインタイプ以外の多くのアプリケーションが、ログインアプリケーションの機能と連携するように実装されている。そのため、ログインアプリケーションが動作しなくなると、ログインアプリケーションの機能を必要とするアプリケーションは、ほとんど利用できなくなる状況が発生する可能性がある。
【００１３】
（第１実施形態）
図１は、本実施形態を説明するためのネットワーク構成図である。画像形成装置１０１は、複合機に代表される、画像を形成する機能を有する装置である。ライセンス管理サーバ１０２は、画像形成装置１０１上で動作するアプリケーションのライセンスを管理するサーバである。アプリケーションとは、画像形成装置１０１上で拡張機能を利用できるようにするためのソフトウェアプログラムのことである。アプリケーションを利用する権利があることを証明するデータがライセンスファイルであり、ライセンスが画像形成装置１０１に正しく適用されると、対応するアプリケーションを利用することができる。ライセンスの適用方法としては、ライセンスファイルのインストールが考えられる。アプリケーションを動作させるための実行ファイルは、画像形成装置１０１のファームウェアに予め組み込まれていてもよく、後から画像形成装置１０１にダウンロードする形式であってもよい。ライセンス管理サーバ１０２は、特定のサーバでなくてもよく、例えば、クラウド基盤のような不定のサーバ上に存在するライセンス管理サービスであってもよい。
【００１４】
情報端末１０３は、パソコンに代表される情報処理装置である。キーボードやマウスとディスプレイ、もしくはタッチパネルを介してウェブブラウザを操作することができる。また、画像形成装置１０１にアプリケーションやライセンスをインストールする操作指示を行う。情報端末１０３は、インターネット経由で画像形成装置１０１と通信する形態で説明したが、ローカルネットワーク環境に情報端末を接続してもよい。ＬＡＮ１１０は、画像形成装置１０１と外部のインターネット１１１をつなぐネットワーク回線である。インターネット１１１は、前述した画像形成装置１０１、ライセンス管理サーバ１０２、情報端末１０３が通信可能となるネットワーク回線である。ＬＡＮ１１０およびインターネット１１１を介して、画像形成装置１０１や情報端末１０３はライセンス管理サーバ１０２と通信を行うことができる。
【００１５】
図２は、画像形成装置１０１のハードウェア構成図である。ＣＰＵ２０１は、プログラムの実行や、様々な処理の制御を行う。不揮発性メモリ２０２は、ＲＯＭから構成され、機器の起動処理において初期段階に必要なプログラムやデータが格納されている。揮発性メモリ２０３は、ＲＡＭから構成され、プログラム、データの一時的な格納場所として利用される。補助記憶装置２０４は、ハードディスクやＲＡＭドライブ等の大容量記憶装置から構成され、大容量データの保管、プログラムの実行コードの保持、画像形成装置１０１の設定値の保持を行う。揮発性メモリ２０３と比較して、長時間保持する必要があるデータを記憶する。補助記憶装置２０４は、不揮発性の記憶装置であるため、画像形成装置１０１の電源が切られてもデータを記憶し続けることができる。ディスプレイ２０５は、利用者に情報を伝えるための表示装置である。入力装置２０６は、利用者の選択指示を受け付け、内部バス１１０を介してプログラムに伝達するための装置である。ネットワーク通信装置２０７は、画像形成装置１０１がネットワークを介して別の情報機器と通信することを可能とするための装置である。内部バス２１０は、各ハードウェア装置を前記画像形成装置１０１内で通信可能な状態に接続する通信バスである。
【００１６】
図３は、画像形成装置１０１のソフトウェア構成図である。画像形成装置１０１が保持する各ソフトウェア部は、画像形成装置１０１において不揮発性メモリ２０２もしくは補助記憶装置204に保存され、ＣＰＵ２０１にて実行される。また、実行時に使用する各種情報は画像形成装置１０１において、揮発性メモリ２０３もしくは補助記憶装置２０４に保持してソフトウェア間で各種情報のやりとりを行う。
【００１７】
以下に画像形成装置１０１が保持する各ソフトウェア部を説明する。インストール部３０１は、画像形成装置１０１上で動作するアプリケーションと、アプリケーションに対応するライセンスのインストール処理を行う。インストール時には、アプリケーションの実体だけでなく、アプリケーションの利用条件を示すライセンスファイルをセットでインストールする。インストールの指示は、情報端末１０３から行う。画像形成装置１０１は、ネットワーク通信装置207を介してインストール指示、およびアプリケーションファイル、ライセンスファイルを受信する。
【００１８】
アプリケーションとライセンスファイルを図４を参照して説明する。アプリケーションファイル４０１と、ライセンスファイル４０２は、ログインタイプのカード認証アプリをインストールできる組み合わせである。また、アプリケーションファイル４０２と、ライセンスファイル４０３は、送信タイプのクラウド送信アプリをインストールできる組み合わせである。アプリケーションファイルとライセンスファイルは、不正防止のために暗号化されているが、本実施形態では、説明のしやすさのために復号化した例を示す。
【００１９】
まず、アプリケーションファイルに含まれる各情報について説明する。マニフェストファイルとは、アプリケーション自身についての説明が記載されたファイルである。アプリケーション識別子とは、画像形成装置１０１上で動作するアプリケーションを一意に識別する為の識別子である。図４では単純な整数で表しているが、より複雑な文字列や、ＵＵＩＤを用いてもよい。アプリケーション名称とは、アプリケーションの呼称である。アプリケーションタイプは、すでに説明したアプリケーションのタイプのことである。本実施形態のアプリケーションファイル４０１は、ログインタイプを示す。また、本実施形態のアプリケーションファイル４０３は、コピータイプを示す。それぞれ、アプリケーションが主に提供する機能がどういったタイプであるかを示す。本実施形態では、２つのタイプだけを挙げたが、例えば、送信タイプ、管理タイプなどであってもよい。
【００２０】
プログラムファイルは、アプリケーションが提供したい機能を実現するための実行コードである。なお、本実施形態では、少なくともアプリケーションが起動されたときに実行される起動処理が含まれる。起動処理でやることはアプリケーションによって異なる部分が多いが、他のアプリケーションに対して機能を提供する場合には、機能を呼び出す処理が含まれる。機能を呼び出す方法は、一般的なＡＰＩコールや、Ｗｅｂインタフェースの呼び出しなどが考えられるが、これを呼び出したときに期待される結果を返せる状態にする処理を行う。また、ユーザが直接利用する画面などを提供する場合には、画面を表示できるように画像ファイルを読み込む処理や、ＵＩ制御部３０６に表示できる画面を通知する処理を行う。
【００２１】
アプリケーションファイル４０１は、起動処理の中で公開機能を利用できる状態にする処理を行うことを模式的に示す。ログインアプリの公開機能としては、認証されたユーザの情報を通知する機能などが想定される。また、認証画面５０１を登録する処理を行うことを模式的に示している。認証画面５０１については、後に説明する。アプリケーションファイル４０３は、起動処理の中でログインの機能を利用する準備処理を行うことを模式的に示している。本実施形態では、利用するログインアプリの機能の準備ができていなければ、アプリケーションの起動処理を失敗させる。
【００２２】
次に、ライセンスファイルに含まれる各情報について説明する。デバイス識別子とは、デバイスの個体を識別するための識別子である。図４では、単純な整数で表しているが、重複がないようにするため、より複雑な文字列や、ＵＵＩＤを用いてもよい。指定されたデバイス識別子に一致するデバイスには、ライセンスファイル402を利用できる。デバイス識別子が一致しないデバイスには、インストールできない制御が行われる。
【００２３】
ライセンスタイプとは、ライセンスファイルによって与えられる権利の範囲をどのように指定するかを示す。ライセンスファイル４０２は、期間限定の権利を与えることを示す。具体的な権利範囲は、後述する有効期限で指定される。ライセンスファイル４０４は、無期限の権利を与えることを示している。本実施形態では、有効期限に対するライセンスを前提に説明しているが、他の例であってもよい。例えば、認証回数やジョブ実行回数のような回数を元にした権利を与えるライセンスであってもよい。その場合は、後述する有効期限ではなく、利用回数上限が指定される。また、期限ではなく所定の期間を指定するライセンスであってもよい。その場合は、後述する有効期限ではなく、利用開始できる年月日、および利用終了する年月日が指定される。その他の指定方法であってもよい。
【００２４】
有効期限とは、ライセンスファイルによって与えられる権利の範囲の日数を示す。ライセンスファイル４０２は、アプリケーションを３０日間利用できる権利であることを示す。電子署名とは、アプリケーションファイルを検証するための電子署名であって、不正防止目的での検証に利用される。インストール部３０１は、アプリケーションファイルとライセンスファイルを受信すると、まずファイルを復号化した上で、電子署名の検証を行う。続いて、ライセンスファイルによって与えられた権限を後述するライセンス保持部３０２に記憶する。最後に、アプリケーションファイルを画像形成装置１０１上で実行可能な形式にした上で、アプリケーション部に配置する。
【００２５】
ライセンス保持部３０２は、インストール部３０１によってインストールされたライセンスファイルの情報を保持する手段である。ライセンスはアプリケーションごとに保持されている。表１は、ライセンス保持部３０２が保持するライセンステーブルの例である。
【表１】
2019069564.tif 000003
【００２６】
表１のアプリ識別子は、すでに説明したアプリを一意に識別するための識別子である。表１のライセンス状態は、ライセンスファイルに記載された権利を示す。例えば、ライセンスファイル４０２をインストールされた場合には、有効期限３０日であるため、インストール作業をした時点から３０日後の期限が記録される。例えば、２０１７年１２月１日にインストール処理を行うと、３０日後の期日が記録され、２０１７年１２月３１日が記憶される。ライセンスファイル４０４をインストールされた場合には、有効期限が無期限であるため、無期限が記憶される。
【００２７】
本実施形態では、年月日でライセンス状態を記憶する例を説明したが、例えば、残日数で保持してもよいし、時分秒まで保持してもよい。また、期限だけでなく、利用開始日も保持してもよい。また、例えば、アプリケーションの処理回数や処理量に対して権利を与える形式であってもよい。送信タイプのアプリケーションである場合、送信を１０００回などの権利が考えられる。この場合は、ライセンスファイルが保持するライセンスタイプに何の回数に対する権利なのかを定義する必要がある。さらに、その情報を表１のライセンステーブルに保持する必要がある。また、特にテーブルで保持する必要はなく、アプリケーションごとに個別のファイルで管理してもよい。
【００２８】
ライセンス判定部３０３は、アプリケーションのライセンスが有効であり、まだ利用できるか否かを判定する処理を行う。判定には、ライセンス保持部３０２が保持する情報を利用する。表１のライセンス状態に記載された日付が、現在日時以降であれば、「有効」と判定する。現在日時より前であれば「無効」と判定する。例えば、表１のアプリ識別子が「１」のアプリであって、現在の日付が２０１８年１月１日である場合、ライセンスは「無効」と判定される。現在の日時が２０１７年１２月１日である場合、ライセンスは「有効」と判定される。
【００２９】
アプリケーション保持部３０４は、インストール部３０１でインストールされたアプリケーションを、画像形成装置１０１で実行可能な状態で記憶する。アプリケーションタイプ判定部３０５は、アプリケーションのタイプを判定する処理を行う。アプリケーション保持部３０４に保持されたアプリケーションの実体に対して、アプリケーションファイルに記憶されたアプリケーションタイプを読み取って、要求された判定を行う。例えば、ログインタイプのアプリケーションか否かを判定する要求を受けると、指定されたアプリ識別子のアプリケーションタイプが「ログイン」かを判定する処理を行う。
【００３０】
本実施形態では、アプリケーションタイプをアプリケーション自身が宣言することで、アプリケーションが、画像形成装置１０１上で動作するアプリケーションの多くが連携動作する必要があるか否かを判定する。しかしながら、これに限定することなく、例えば、アプリケーション間の依存関係を定義したファイルを参照することで、画像形成装置１０１上で動作するアプリケーションの多くが連携動作する必要があるアプリケーションか否かを判定する方法であってもよい。また、動的にアプリケーション間の依存関係を解析して、画像形成装置１０１上で動作するアプリケーションの多くが連携動作する必要があるアプリケーションか否かを判定する方法も考えられる。
【００３１】
ＵＩ制御部３０６は、ディスプレイ２０５に画像形成装置１０１の操作を行うためのＵＩを表示する画面の例を、図５に示す。認証画面５０１は、画像形成装置１０１の機能を利用するために、利用者を認証するためのユーザＩＤとパスワードを入力するための画面である。本実施形態では、入力装置２０６による手入力を想定した画面を示したが、カードリーダや生体認証といった別の入力装置による入力を促す画面であってもよい。ホーム画面５０２は、画像形成装置１０１の機能の中から利用したい機能を選択するための画面である。本実施形態では、コピー、スキャン、プリント、ライセンス確認が選択可能である。警告画面５０３は、ログインアプリケーションのライセンスが切れていることを警告する画面である。本実施形態では、ライセンスが切れているログインアプリケーションを特定するための情報として、アプリケーション識別子、アプリケーション名、有効期限を表示している。
【００３２】
ＵＩ制御部３０６は、画像形成装置の電源が入れられると、最初に不図示の起動中画面を表示した上で、認証画面５０１を表示する。利用者がＩＤとＰａｓｓｗｏｒｄを入力してユーザ認証に成功すると、ホーム画面５０２を表示する。ホーム画面５０２に表示されたボタンを選択すると、対応するアプリケーションが表示する画面を表示する。また、不図示の物理的なボタンなどの操作によって、特定の画面を表示することもある。しかし、動作中のログインアプリケーションのライセンスが切れている場合には、表２のＵＩ制御テーブルに応じた画面遷移の制御を行う。
【表２】
2019069564.tif 000004
【００３３】
表２は、画面列にある画面の表示優先度を示すテーブルである。画面の列には、表示を要望される画面が示されている。画面の表示優先度の列には、警告画面５０３よりも優先して利用できる画面か否かが示されている。サービスモードは、画像形成装置１０１のサービスマンが保守作業のために利用する画面である。ライセンス確認画面は、画像形成装置１０１のサービスマンや管理者ユーザが保守作業の一環として、アプリケーションのライセンス確認やライセンス更新を行う画面である。ここで、認証画面とは、認証画面５０１のことである。また、ホーム画面とは、ホーム画面５０２のことである。コピー、送信、プリントは、それぞれコピー、送信、プリントのアプリケーションが表示する画面である。
【００３４】
例えば、サービスモード画面は、ログインアプリケーションのライセンスが切れている場合にも保守作業のために利用できないと困る画面であるため、「優先」と記憶されている。逆に、コピー画面はログインアプリケーションのライセンスが切れている場合には利用できない画面であるため、「優先しない」と記憶されている。
【００３５】
この表に基づき、ＵＩ制御部３０６は、画面制御を行う。利用者の操作によって、次にサービスモード画面が表示される場合には、表２のテーブルで「優先」となっているため、要求されたサービスモード画面を表示する。逆に、利用者の操作によって、次にコピー画面が表示される場合には、表２のテーブルで「優先しない」となっているため、要求されたコピー画面を表示しない。代わりに、ログインアプリケーションのライセンスが切れていることを警告する警告画面５０３を表示する。
【００３６】
アプリケーション起動部３０７は、画像形成装置１０１上で動作するアプリケーションの起動処理を行う。表３は、アプリケーション起動部３０７が管理する起動順序テーブルである。
【表３】
2019069564.tif 000005
【００３７】
起動順序の列は、画像形成装置１０１の電源がオンになったときに、アプリケーションを起動する順番が示されている。本実施形態では、数値が小さいほど先に起動する。起動時のアプリケーションの起動順序としては、並行で起動させられるアプリケーションもあり、元々決められた順番で起動させた方が起動処理をスムーズに進められるなどの理由から、順番に起動させるケースもある。本実施形態では、決められた順番で１つずつアプリケーションを起動する例を示す。
【００３８】
アプリ識別子の列は、起動させる対象のアプリケーションを一意に識別するための識別子が示される。アプリ名は、起動させる対象のアプリケーションの名称である。動作させる上では不要であるが、本実施形態では説明のために併記している。アプリ基盤は、アプリケーションが動作できるために最低限必須な機能を提供するファームウェアを意図している。認証アプリ、コピーアプリ、送信アプリ、プリントアプリは、それぞれ名称通りの機能を提供するアプリケーションである。
【００３９】
アプリケーション起動部３０７は、アプリケーションを起動する際に、アプリケーションの起動を行うべきか否かを判定する。判定方法として、まず、アプリケーションタイプ判定部３０５によって、起動候補のアプリケーションがログインタイプか否かの判定を行う。ログインタイプであれば、ライセンスの判定を行う必要はなく、アプリケーションを起動する。ログインタイプでなければ、ライセンス判定部３０３によるライセンスの判定を行う。ライセンスが有効であればアプリケーションを起動するが、ライセンスが無効であれば、アプリケーションを起動せず、次のアプリケーションを起動させる。
【００４０】
図６は、デバイスを起動したときに、アプリ起動管理部がアプリケーションを起動する処理の流れを説明するためのフローチャートである。まず、ステップＳ６０１にて、アプリケーション起動部３０７は、アプリケーションの起動指示を検知する。次に、ステップＳ６０２にて、アプリケーション起動部３０７は、起動順序テーブルにある全アプリケーションの起動処理を完了したか否かを判定する。ステップＳ６０３以降で、起動順序テーブルにあるアプリケーションを、優先度順に起動処理していくため、全ての処理が終わっている場合（Ｙｅｓ）、起動処理を完了する。全ての処理が終わっていない場合（Ｎｏ）、ステップＳ６０３へ進む。次に、ステップＳ６０３にて、アプリケーション起動部３０７は、起動順序テーブルにあるアプリケーションの中から、優先度が一番高く、まだ起動処理を行っていないアプリケーションを選択する。表３では、起動順序の数字が小さい方が高い優先度を意味し、アプリ基盤、カード認証アプリ、クラウド送信アプリ、クラウド印刷アプリの順に起動処理を行う。
【００４１】
次に、ステップＳ６０４にて、アプリケーションタイプ判定部３０５は、ステップＳ６０３で選択されたアプリケーションのアプリケーションタイプがログインタイプか否かを判定する。ログインタイプである場合（Ｙｅｓ）、ステップＳ６０５に進む。一方、ログインタイプでない場合（Ｎｏ）、ステップＳ６１１に進む。ここで、表３のカード認証アプリの場合を例に説明する。カード認証アプリは、インストールされると、アプリケーション保持部３０４にアプリケーションファイル相当の情報が記憶される。アプリケーションタイプ判定部３０５は、アプリケーション保持部３０４に記憶された情報を参照し、アプリケーションタイプを参照する。図４のアプリケーションファイル４０１を参照すると、アプリケーションタイプがログインとなっているため、ログインタイプと判定される。判定の結果がログインタイプであるため、ステップＳ６０５に進む。一方、表３のクラウド送信アプリの場合は、図４のアプリケーションファイル４０３を見ると、アプリケーションタイプがコピーとなっているため、コピータイプと判定される。判定の結果がコピータイプであるため、ログインタイプとは異なるため、ステップＳ６１１に進む。
【００４２】
次に、ステップＳ６０５にて、アプリケーション起動部３０７は、ステップＳ６０３で選択したアプリケーションを起動する。アプリケーションは、アプリケーション保持部３０４に記憶された実行可能なファイルを用いて起動される。起動処理は、アプリケーションファイル４０１、４０３に示すプログラムファイルの中に起動処理として定義されている。次に、ステップＳ６０６にて、アプリケーション起動部３０７によって起動されたアプリケーションが、動作に必要な別のアプリケーションの機能があるか否かを判定する。動作に必要な別のアプリケーションの機能がある場合（Ｎｏ）、別アプリケーションの機能の利用準備をするためにステップＳ６０７に進む。動作に必要な別のアプリケーションの機能がない場合（Ｙｅｓ）、動作に必要な別のアプリケーションの機能の利用準備が不要なので、ステップＳ６０９に進む。例えば、アプリケーションファイル４０１の起動処理であれば、別のアプリケーションの機能を利用しないため、ステップＳ６０９に進む。一方、アプリケーションファイル４０３の起動処理であれば、ログインの機能を利用するため、ステップＳ６０７に進む。
【００４３】
次に、ステップＳ６０７にて、アプリケーション起動部３０７によって起動されたアプリケーションは、別のアプリケーションの機能を利用するための利用準備を行う。例えば、アプリケーションファイル４０３のアプリが、ログインアプリの機能を利用するための利用準備であれば、画像形成装置を利用するユーザが認証した時に、ユーザの情報を受信するための手続きを行う。ここで、ログインアプリの機能を提供する準備ができている場合、アプリケーションファイル４０３のアプリは、ログインアプリの機能を利用するための利用準備を完了できる。一方、ログインアプリの機能を提供する準備ができていない場合、アプリケーションファイル４０３のアプリは、ログインアプリの機能を利用するための利用準備を完了できず、失敗する。そして、ステップＳ６０８にて、アプリケーション起動部３０７によって起動されたアプリケーションは、ステップＳ６０７で利用準備ができたか否かを判定する。利用準備ができた場合（Ｙｅｓ）、他の起動処理を継続するため、ステップＳ６０９へ進む。一方、利用準備に何らかの問題が起きて、利用準備ができていない場合（Ｎｏ）、ステップＳ６１０へ進む。
【００４４】
次に、ステップＳ６０９にて、アプリケーション起動部３０７によって起動されたアプリケーションは、提供する機能が使えることを登録する。ここで、機能が使えることを登録するとは、画像形成装置１０１の利用者がアプリケーションを呼び出すことができるように機能を呼び出すボタンを表示、もしくは別のアプリケーションから機能を利用できるように通知する。アプリケーションファイル４０１は、認証画面を表示できることをＵＩ制御部３０６に通知する。アプリケーションファイル４０３は、コピー画面を表示できることをＵＩ制御部３０６に通知する。
【００４５】
次に、ステップＳ６１０にて、アプリケーション起動部３０７によって起動されたアプリケーションの起動処理を失敗で終了させる。本実施形態では、ステップＳ６１０で起動処理に失敗したアプリケーションに対して、再度起動を試みるような処理を説明していないが、その仕組みがあってもよい。すなわち、ステップＳ６０２で全てのアプリケーションの処理が完了した後に、起動処理に失敗したアプリケーションのリストに対して、再度ステップＳ６０２からステップＳ６１２を定期的に実行する仕組みがあってもよい。また、本実施形態では、ステップＳ６１０で起動処理に失敗したアプリケーションに対して、起動処理を失敗で終了させる方法を示したが、別の方法であってもよい。例えば、ステップＳ６１０で何度かリトライする仕組みがあってもよい。
【００４６】
次に、ステップＳ６１１にて、ライセンス判定部３０３は、ステップＳ６０３で選択されたアプリケーションのライセンスが有効であり、まだ利用できるか否かを判定する。本実施形態では、有効期限で説明しているため、アプリケーションのライセンスが有効期限内であるか否かを判定する。ライセンス判定部３０３は、ライセンス保持部３０２が保持する有効期限の情報と、現在の日時を用いて判定を行う。そして、ライセンスが有効である場合（Ｙｅｓ）、ステップＳ６０５に進む。一方、ライセンスが無効である場合（Ｎｏ）、ステップＳ６１２に進む。
【００４７】
表１を例に説明すると、現在の日時が２０１７／１２／０１である場合、アプリケーション識別子１と２のアプリケーションのライセンスは有効であると判定される。従って、ライセンスが有効であるため、ステップＳ６０５に進む。一方、アプリケーション識別子３のアプリケーションのライセンスは、無効であると判定される。この場合、ライセンスが無効であるため、ステップＳ６１２に進む。また、現在の日時が２０１８／１／１である場合、アプリケーション識別子２のアプリケーションのライセンスだけが有効であると判定される。ライセンスが有効であるため、ステップＳ６０５に進む。一方、アプリケーション識別子１と３のアプリケーションのライセンスは無効であると判定される。ライセンスが無効であるため、ステップＳ６１２に進む。そして、ステップＳ６１２にて、アプリケーション起動部３０７が、ステップＳ６０３で選択されたアプリケーションを起動させないスキップ処理を行う。アプリケーション起動部３０７は、ステップＳ６０３で選択されたアプリケーションを起動する必要がないと判定し、処理が完了したことを記録する。
【００４８】
図７は、時間経過によっていずれかのアプリケーションのライセンスが無効になったときの処理の流れを説明するためのフローチャートである。まず、ステップＳ７０１にて、ライセンス判定部３０３は、時間経過によってアプリケーションのライセンスが無効になったことを検知する。この詳細なフローは不図示であるが、時間経過によって日付の変更があったことを検知して、新しい日付を使ってライセンステーブルにある各アプリケーションのライセンスを判定する処理によって実現される。もしくは、有効期限が一番近い未来に切れる日付でタイマーを仕掛ける方法であってもよい。また、本実施形態とは異なり、利用回数に対するライセンスであった場合には、利用回数のカウントアップによっていずれかのアプリケーションのライセンスが無効になったことを検知する処理となる。
【００４９】
次に、ステップＳ７０２にて、アプリケーションタイプ判定部３０５は、ステップＳ７０１で検知した、ライセンスが無効になったアプリケーションのアプリケーションタイプがログインタイプか否かを判定する。この処理は、ステップＳ６０４と同等の処理であるため、その詳細な説明を省略する。判定の結果がログインタイプである場合（Ｙｅｓ）、本フローの処理を終了する。一方、ログインタイプでない場合（Ｎｏ）、ステップＳ７０３に進む。次に、ステップＳ７０３にて、アプリケーション起動部３０７が、ステップＳ７０１で検知した、ライセンスが無効になったアプリケーションを停止する。
【００５０】
図８は、画面遷移要求を検知した際の処理の流れを説明するためのフローチャートである。まず、ステップＳ８０１にて、ＵＩ制御部３０６は、画面遷移要求を検知する。ここで、画面遷移要求は、入力装置を利用者（ユーザ）が操作することによって発生する。操作は、例えば、ハードウェアで用意されたボタンを押下する、ディスプレイにソフトウェアが表示したボタンを入力装置で選択するなどの操作であってよい。その他、音声による画面遷移要求など、代替手段であってもよい。
【００５１】
次に、ステップＳ８０２にて、ライセンス判定部３０３は、ログインアプリケーションのライセンスが無効か否かを判定する。ライセンス判定部３０３は、動作中のログインアプリケーションを特定する。具体的には、起動順序テーブルのアプリケーションに対してアプリケーションタイプ判定部３０５によりログインタイプのアプリケーションを探索する。表３の例では、アプリ識別子１のカード認証アプリのアプリケーションタイプがログインタイプであるため、ログインタイプのアプリケーションであると特定される。ライセンス判定部３０３は、次に特定されたログインアプリケーションのライセンス判定を行う。本実施形態では、有効期限の例で説明しているため、現在の日付とライセンステーブルの有効期限の比較によって判定する。表１の例では、アプリ識別子１のカード認証アプリは、有効期限が２０１７年１２月３１日であるため、現在の日付が２０１７年１２月３１日以前である場合、有効と判定される。一方、現在の日付が２０１８年１月１日以降である場合、無効と判定される。ライセンス判定の結果、有効である場合（Ｙｅｓ）、ステップＳ８０５へ進み、無効である場合（Ｎｏ）、ステップＳ８０３へ進む。
【００５２】
次に、ステップＳ８０３にて、ＵＩ制御部３０６は、画面遷移先の画面優先度を取得する。ここで、画面遷移先は、ステップＳ８０１で検知した画面遷移要求によって要求された画面である。該当する画面の画面優先度を、ＵＩ制御テーブルから参照する。例えば、現在表示されている画面が認証画面５０１であったと仮定する。その状態から、認証操作の成功によってホーム画面５０２の表示要求がステップＳ８０１で検知されたとする。この場合、表２によればホーム画面は警告画面５０２よりも「優先しない」であることが取得される。一方、例えば、現在表示されている画面が警告画面５０３であったと仮定する。その状態から、ハードウェアボタンの操作によってサービスモード画面の表示要求がステップＳ８０１で検知されたとする。この場合、表２によればサービスモード画面は、警告画面５０２よりも「優先」であることが取得される。
【００５３】
次に、ステップＳ８０４にて、ＵＩ制御部３０６は、ステップＳ８０３で取得した画面優先度が優先であるか否かを判定する。優先である場合（Ｙｅｓ）、ステップＳ８０５に進む。一方、優先でない場合（Ｎｏ）、ステップＳ８０６に進む。次に、ステップＳ８０５にて、ＵＩ制御部３０６は、ステップＳ８０１で要求された画面を表示する。ステップＳ８０３で挙げたサービスモード画面を表示要求された場合は、本ステップでサービスモード画面を表示する。次に、ステップＳ８０６にて、ＵＩ制御部３０６は、ステップＳ８０１で要求された画面ではなく、ログインアプリケーションのライセンスが無効であることを警告する警告画面を表示する。ステップＳ８０３で挙げたホーム画面を表示要求された場合は、本ステップで警告画面５０３を表示する。
【００５４】
以上、本実施形態によれば、画像形成装置上で動作するアプリケーションの多くが連携動作する必要があるアプリケーションのライセンスが無効になったときにも、連携動作するアプリケーションを利用することが可能になる。
【００５５】
（第２実施形態）
まず、本実施形態の前提として、ログインアプリケーションのアプリケーション別認証について説明する。通常のログインアプリケーションは、画像形成装置１０１の操作全体に対して認証、認可を行う機能を提供する。そのため、画像形成装置１０１を起動すると、まず認証操作を促す画面が表示され、認証操作をしないとほとんどの機能が利用できないように制御される。アプリケーション別認証の場合、認証操作を促されるアプリケーションを管理者ユーザが限定できる機能が提供される。
【００５６】
例えば、送信アプリケーションを利用する場合だけ認証を要するといった設定が可能である。ここで、アプリケーション別認証対象外の機能を利用する場合に、誰の操作によるものかを残したい要望がある。そのため、認証操作を行う前に予め内部的に用意されたデフォルトのユーザで認証を行い、アプリケーションにはデフォルトユーザが操作中であることを通知しておく構成であってよい。デフォルトユーザのＩＤは、例えば、「００００」や「Ｄｅｆａｕｌｔ  Ｕｓｅｒ」のような固定の文字列が用いられることが多い。通知を受けたアプリケーションは、操作者のＩＤが「００００」や「Ｄｅｆａｕｌｔ  Ｕｓｅｒ」であれば、まだ認証操作を行う前に利用されており、誰にでも利用させてよい機能だけをＵＩとして表示する、などの制御を行うことができる。アプリケーションから見ると、デバイス起動時には、デフォルトユーザでのログインイベントを検知し、アプリケーション別認証対象のアプリケーション操作を行うために認証操作が行われると、２度目のログインインベントを検知することになる。
【００５７】
なお、アプリケーション別認証の機能をサポートするログインアプリケーションであれば、設定を切り替えるだけでアプリケーション別認証をサポートするモードに切り替わって動作する。また、アプリケーション別認証の機能をサポートしないログインアプリケーションも存在するため、その場合はアプリケーション別認証の機能をサポートするログインアプリケーションをインストールする必要がある。
【００５８】
アプリケーション別認証の機能が有効である場合、第１実施形態で説明した例では、認証を必要としないアプリケーションまで画面遷移できなくなってしまう不都合が発生する恐れがある。そこで、本実施形態では、ログイン関連のイベントをトリガに警告画面を表示し、その状態から画面遷移の制御を行う方法について説明する。
【００５９】
図９は、画面遷移要求を受けたときの、ＵＩ制御部３０６が画面遷移を判断する処理の流れを説明するためのフローチャートである。まず、ステップＳ９０１にて、ＵＩ制御部３０６は、画面遷移要求を検知する。画面遷移要求元については、ステップＳ８０１と同等であるため、その詳細な説明は省略する。次に、ステップＳ９０２にて、ＵＩ制御部３０６は、現在ユーザ（デフォルトユーザ以外）が認証済みか否かを判定する。具体的には、ログインアプリケーションから利用者のＩＤが通知されているか否かを判定する。ユーザが認証済みでない場合は、ユーザに認証してもらう必要があるため、ステップＳ９１０へ進み、認証画面５０１を表示する。一方、ユーザがログアウトを指示した場合には、ステップＳ９０２で認証済みでないと判定される。
【００６０】
次に、ステップＳ９０３にて、ＵＩ制御部３０６は、デフォルトユーザで認証済みか否かを判定する。具体的には、ログインアプリケーションから通知されている利用者のＩＤがデフォルトユーザ用に予約された特定のＩＤであるか否かを判定する。デフォルトユーザで認証済みである場合には、ステップＳ９０４へ進む。一方、デフォルトユーザで認証されていない場合は、すでに誰かが認証画面５０１で認証済みであるため、ステップＳ９０８へ進み、要求された画面を表示する。
【００６１】
次に、ステップＳ９０４にて、ＵＩ制御部３０６は、ステップＳ９０１で要求された画面がアプリケーション別認証の対象か否かを判定する。アプリケーション別認証の対象である場合、ステップＳ９０５に進む。一方アプリケーション別認証の対象でない場合、ステップＳ９０８に進み、要求された画面を表示する。ここで、アプリケーション別認証の対象であるか否かは、ＵＩ制御部３０６がログインアプリケーションから通知されて、表４に示すテーブルを保持しておき、認証要否の項目を参照して判別する。
【表４】
2019069564.tif 000006
【００６２】
ここで、表４において、画面の列と、画面の表示優先度の列は、表２と同等であるため、その詳細な説明を省略する。認証要否の列は、現在動作しているログインアプリケーションが、アプリケーション別認証を行う場合に、各画面が認証を必要とするアプリケーションを表示する画面であるか否かを示す。例えば、サービスモード画面は認証を必要としないが、送信画面は認証を必要とすることを示す。他の手段でもよく、例えば、ログインアプリケーションに、認証要否を毎回問い合わせる構成であってもよい。
【００６３】
次に、ステップＳ９０５にて、ライセンス判定部３０３は、ログインアプリケーションのライセンスが無効か否かを判定する。ライセンス判定の結果、有効である場合、ステップＳ９１０へ進む。一方、無効である場合、ステップＳ９０６へ進む。なお、ライセンス判定部３０３で行う処理の詳細は、ステップＳ８０２と同等であるため、その詳細な説明は省略する。次に、ステップＳ９０６にて、ＵＩ制御部３０６は、画面遷移先の画面優先度を取得する。画面遷移先は、ステップＳ８０１で検知した画面遷移要求によって要求された画面である。該当する画面の画面優先度を、ＵＩ制御テーブルから参照する。次に、ステップＳ９０７にて、ＵＩ制御部３０６は、ステップＳ８０３で取得した画面優先度が優先であるか否かを判定する。優先である場合、ステップＳ９０８に進む。一方、優先でない場合、ステップＳ９０９に進む。
【００６４】
次に、ステップＳ９０８にて、ＵＩ制御部３０６は、ステップＳ９０１で要求された画面を表示する。ステップＳ９０３でデフォルトユーザ以外のユーザが認証済みである場合には、要求された画面を表示する。また、ステップＳ９０４で要求された画面がアプリケーション別認証の対象でない場合には、デフォルトユーザであっても認証画面を表示する必要がないため、要求された画面を表示する。さらに、ステップＳ９０７で画面優先度が優先と判定された場合には、警告画面５０３よりも優先されるべき画面を要求されたということなので、要求された画面を表示する。次に、ステップＳ９０９にて、ＵＩ制御部３０６は、ログインアプリケーションの有効期限が切れた警告画面５０３を表示する。次に、ステップＳ９１０にて、ＵＩ制御部３０６は、認証画面５０１を表示する。以上、本実施形態によれば、アプリケーション別認証の場合にも適切な画面制御を行うことができる。
【００６５】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピューターにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００６６】
また、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2019069564.tif 000007
【図２】
2019069564.tif 000008
【図３】
2019069564.tif 000009
【図４】
2019069564.tif 000010
【図５】
2019069564.tif 000011
【図６】
2019069564.tif 000012
【図７】
2019069564.tif 000013
【図８】
2019069564.tif 000014
【図９】
2019069564.tif 000015