(57)【要約】【課題】ウィンドウマネージャーモジュールを用いることなく、各拡張アプリケーションモジュールによる表示を適切に行うことができる画像形成装置を提供する。【解決手段】ＭＦＰ１００は、複数の拡張アプリの表示指示が競合した場合、各拡張アプリの起動条件に基づいて表示の優先順位付けを行う。【選択図】図５
2018074190.tif 000002
【特許請求の範囲】
【請求項１】
インストールされた複数の拡張アプリケーションモジュールの少なくとも一つの表示指示に対応する表示を行う画像形成装置であって、
前記複数の拡張アプリケーションモジュールの表示指示が競合した場合、各前記拡張アプリケーションモジュールに関する起動条件に基づいて前記表示の優先順位付けを行うことを特徴とする画像形成装置。
【請求項２】
前記複数の拡張アプリケーションモジュールは、前記画像形成装置の表示機能の低下を抑制する機能を実現する表示機能低下抑制アプリケーションモジュールを含み、
前記表示機能低下抑制アプリケーションモジュールの表示指示が他の前記拡張アプリケーションモジュールの表示指示と競合した場合、前記表示機能低下抑制アプリケーションモジュールの表示指示に対応する表示を優先することを特徴とする請求項１記載の画像形成装置。
【請求項３】
前記複数の拡張アプリケーションモジュールは、前記画像形成装置の起動時に起動し且つユーザの認証処理を行う認証アプリケーションモジュールを含み、
前記複数の拡張アプリケーションモジュールのうち前記認証アプリケーションモジュールより表示が優先される拡張アプリケーションモジュールのジョブを受け付けないことを特徴とする請求項１又は２記載の画像形成装置。
【請求項４】
前記画像形成装置のユーザインターフェース機能を実現するＵＩモジュールが予め組み込まれ、
前記ＵＩモジュールの表示指示及び前記認証アプリケーションモジュールの表示指示が競合した場合、前記ＵＩモジュールの表示指示に対応する表示及び前記認証アプリケーションモジュールの表示指示に対応する表示を合成した表示を行うことを特徴とする請求項３記載の画像形成装置。
【請求項５】
インストールされた複数の拡張アプリケーションモジュールの少なくとも一つの表示指示に対応する表示を行う画像形成装置の制御方法であって、
前記複数の拡張アプリケーションモジュールの表示指示が競合した場合、各前記拡張アプリケーションモジュールに関する起動条件に基づいて前記表示の優先順位付けを行うことを特徴とする画像形成装置の制御方法。
【請求項６】
インストールされた複数の拡張アプリケーションモジュールの少なくとも一つの表示指示に対応する表示を行う画像形成装置の制御方法をコンピュータに実行させるプログラムであって、
前記画像形成装置の制御方法は、
前記複数の拡張アプリケーションモジュールの表示指示が競合した場合、各前記拡張アプリケーションモジュールに関する起動条件に基づいて前記表示の優先順位付けを行うことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
機能を拡張するアプリケーション（以下、「拡張アプリ」という。）を新たにインストール可能な画像形成装置としてのＭＦＰが知られている。ＭＦＰは、例えば、スクリーンセーバ機能を実現する拡張アプリを実行してＭＦＰの表示部の焼き付きを防止するスライドショーを表示部に表示する（例えば、特許文献１参照）。また、ＭＦＰは重畳表示機能を実現する拡張アプリを実行して表示部に表示された画像にメッセージを重ねて表示する（例えば、特許文献２参照）。拡張アプリによる表示の表示制御は、ＭＦＰに設けられるウィンドウマネージャーモジュールによって実現される。ウィンドウマネージャーモジュールは、各拡張アプリの表示指示を管理し、例えば、複数の拡張アプリの表示指示が競合した際の調停等を行う。これにより、各拡張アプリによる表示が適切に行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−３４１４６１号公報
【特許文献２】特開２０１０−１８６２８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、近年、ＭＦＰも安価であることが強く求められているため、ウィンドウマネージャーモジュールを搭載しないＭＦＰが市場に提供されている。このようなウィンドウマネージャーモジュールを搭載しないＭＦＰは、複数の拡張アプリの表示指示が競合した場合、競合した表示指示の調停を行うことができず、その結果、各拡張アプリによる表示を適切に行うことができない。
【０００５】
本発明の目的は、ウィンドウマネージャーモジュールを用いることなく、各拡張アプリケーションモジュールによる表示を適切に行うことができる画像形成装置、その制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明の画像形成装置は、インストールされた複数の拡張アプリケーションモジュールの少なくとも一つの表示指示に対応する表示を行う画像形成装置であって、前記複数の拡張アプリケーションモジュールの表示指示が競合した場合、各前記拡張アプリケーションモジュールに関する起動条件に基づいて前記表示の優先順位付けを行うことを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ウィンドウマネージャーモジュールを用いることなく、各拡張アプリケーションモジュールによる表示を適切に行うことができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施の形態に係る画像形成装置としてのＭＦＰの構成を概略的に示すブロック図である。
【図２】図１のＭＦＰのＯＳモジュールの構成を概略的に示すブロック図である。
【図３】図２のＵＩ制御モジュールの構成を概略的に示すブロック図である。
【図４】図２のＶＭ／ＦＷモジュールによって実行される拡張アプリ起動制御処理の手順を示すフローチャートである。
【図５】図３の使用要求受付モジュールによって実行される表示部の使用要求受付処理の手順を示すフローチャートである。
【図６】図３の描画要求受付モジュールによって実行される描画要求受付処理の手順を示すフローチャートである。
【図７】図１の表示部に表示される操作画面の一例を示す図である。
【図８】図３の取消要求受付モジュールによって実行される取消受付処理の手順を示すフローチャートである。
【図９】図２のＶＭ／ＦＷモジュールによって実行されるジョブ受付処理の手順を示すフローチャートである。
【図１０】図２のＵＩ制御モジュールによって実行される操作検知処理の手順を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を図面を参照しながら詳述する。
【００１０】
図１は、本発明の実施の形態に係る画像形成装置としてのＭＦＰ１００の構成を概略的に示すブロック図である。
【００１１】
図１において、ＭＦＰ１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、表示コントローラ１０４、表示部１０５、操作コントローラ１０６、及び操作部１０７を備える。また、ＭＦＰ１００は、ｅＭＭＣ（embedded MultiMediaCard）コントローラ１０８、ｅＭＭＣ１０９、読取コントローラ１１０、読取部１１１、記録コントローラ１１２、及び記録部１１３を備える。さらに、ＭＦＰ１００は、ＵＳＢコントローラ１１４、ＭＯＤＥＭ１１５、ＮＣＵ（Network Control Unit）１１６、及びＮＩＣ（Network Interface Card）１１７を備える。ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、表示コントローラ１０４、操作コントローラ１０６、ｅＭＭＣコントローラ１０８、読取コントローラ１１０、記録コントローラ１１２、ＵＳＢコントローラ１１４、ＭＯＤＥＭ１１５、及びＮＩＣ１１７の各構成要素はシステムバス１１８を介して互いに接続されている。
【００１２】
ＭＦＰ１００はコピー、スキャン、及びＦＡＸ通信等のジョブを実行する。また、ＭＦＰ１００は複数の拡張アプリ（拡張アプリケーションモジュール）を新たにインストール可能である。本実施の形態では、一例として、後述する図２のログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０の少なくとも３つの拡張アプリがインストールされていることを前提とする。ＣＰＵ１０１はシステムバス１１８に接続された各構成要素を統括的に制御する。ＣＰＵ１０１はＲＯＭ１０２に格納されたプログラムを実行して後述する図２のＯＳモジュール２００の各処理を行う。ＲＯＭ１０２はＣＰＵ１０１によって実行されるプログラムを格納する。ＲＡＭ１０３はＣＰＵ１０１の作業領域として用いられ、また、ＲＡＭ１０３は各データの一時格納領域として用いられる。
【００１３】
表示コントローラ１０４は表示部１０５の表示制御を行う。表示部１０５はＷＶＧＡサイズにおいてフルビットマップ表示可能なタッチパネル式のＬＣＤである。操作コントローラ１０６は、操作部１０７とデータ通信を行い、例えば、ユーザによる操作部１０７の操作によって入力されたジョブの実行指示等の入力情報を受け付ける。操作部１０７は表示部１０５に表示された操作ボタンを含む。本実施の形態では、表示部１０５及び操作部１０７はＭＦＰ１００のユーザインターフェースとして使用される。
【００１４】
ｅＭＭＣコントローラ１０８はｅＭＭＣ１０９とデータ通信を行い、ｅＭＭＣ１０９は各データを格納する。読取コントローラ１１０は読取部１１１とデータ通信を行い、読取部１１１は配置された原稿を読み取り、該原稿の内容の画像データを生成し、生成した画像データを読取コントローラ１１０に送信する。記録コントローラ１１２は記録部１１３とデータ通信を行い、記録部１１３は記録コントローラ１１２から取得した画像データ等に基づいて記録紙に印刷を行う。
【００１５】
ＵＳＢコントローラ１１４はＭＦＰ１００に接続された図示しないＵＳＢメモリ等とデータ通信を行う。ＭＯＤＥＭ１１５はＦＡＸ通信を行うための信号の変調処理及び復調処理を行う。ＮＣＵ１１６は公衆回線網（ＰＳＴＮ）を介して図示しない外部装置とＦＡＸ通信を行う。ＮＩＣ１１７はＬＡＮを介して図示しない外部装置とメールや各データの送受信を行う。
【００１６】
図２は、図１のＭＦＰ１００のＯＳモジュール２００の構成を概略的に示すブロック図である。
【００１７】
図２において、ＯＳモジュール２００は、ＵＩ（User Interface）モジュール２０１、ジョブ制御モジュール２０２、スキャンモジュール２０３、ストレージモジュール２０４、ＦＡＸモジュール２０５、及び送信モジュール２０６を備える。また、ＯＳモジュール２００は、デバイスドライバモジュール２０７、ログインアプリ２０８（認証アプリケーションモジュール）、スクリーンセーバアプリ２０９（表示機能低下抑制アプリケーションモジュール）、及び汎用アプリ２１０を備える。さらに、ＯＳモジュール２００はＶＭ（Virtual Machine）／ＦＷ（Framework）モジュール２１１及びＵＩ制御モジュール２１２を備える。ＯＳモジュール２００の各処理は、ＣＰＵ１０１がＲＯＭ１０２に格納されたプログラムを実行することによって行われる。なお、本実施の形態では、複数の拡張アプリの表示指示が競合した際の調停等を行うウィンドウマネージャーモジュールが搭載されていないことを前提とする。
【００１８】
ＯＳモジュール２００はＭＦＰ１００の各処理を実行するためのプログラムである。ＵＩモジュール２０１は、ＭＦＰ１００のユーザインターフェース機能を実現し、表示部１０５及び操作部１０７に関する各処理の制御を行う。例えば、ＵＩモジュール２０１は図示しないＶＲＡＭ等に記録されたＭＦＰ１００のＵＩ画像の表示指示をＵＩ制御モジュール２１２に行う。また、ＵＩモジュール２０１は操作部１０７の操作によってジョブの実行指示を受け付けた旨をジョブ制御モジュール２０２に通知する。
【００１９】
ジョブ制御モジュール２０２は受け付けたジョブを管理し、また、ジョブ制御モジュール２０２は該ジョブの実行を制御する。スキャンモジュール２０３は読取部１１１を制御し、配置された原稿のスキャン処理を実行する。例えば、ＦＡＸ送信ジョブの受け付けが行われた際にスキャンモジュール２０３は配置された原稿のスキャン処理を実行し、読み取った情報に基づいて画像データを生成し、生成した画像データの格納をストレージモジュール２０４に依頼する。ストレージモジュール２０４は各データの格納処理の実行を制御し、また、ストレージモジュール２０４は格納された各データの管理を行う。例えば、ストレージモジュール２０４はスキャンモジュール２０３から受信した画像データの格納依頼に基づいて画像データをｅＭＭＣ１０９に格納する。ＦＡＸモジュール２０５はＮＣＵ１１６によるＦＡＸ通信の制御を行う。例えば、ＦＡＸモジュール２０５はｅＭＭＣ１０９等に格納された画像データをストレージモジュール２０４から取得し、取得した画像データをＦＡＸ通信によって図示しない外部装置に送信する。
【００２０】
送信モジュール２０６はＮＩＣ１１７によるデータ通信の制御を行う。デバイスドライバモジュール２０７はＭＦＰ１００のハードウェアデバイス及びＯＳモジュール２００間の通信の仲介を行う。該ＭＦＰ１００のハードウェアデバイスは、例えば、表示コントローラ１０４、操作コントローラ１０６、ｅＭＭＣコントローラ１０８、読取コントローラ１１０、ＭＯＤＥＭ１１５、及びＮＩＣ１１７である。
【００２１】
ログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０はスクリプト言語等で記述されたプログラムで構成された拡張アプリである。ログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０の各々は、拡張アプリの属性情報が設定されたメタファイルを備える。例えば、ログインアプリ２０８のメタファイルには該ログインアプリ２０８の属性を示す「login」が設定され、スクリーンセーバアプリ２０９のメタファイルには該スクリーンセーバアプリ２０９の属性を示す「screenSaver」が設定されている。汎用アプリ２１０のメタファイルには該汎用アプリ２１０の属性を示す「generic」が設定されている。
【００２２】
ログインアプリ２０８はＭＦＰ１００を使用するユーザの認証処理を行う認証機能を備える。ログインアプリ２０８では該認証機能を有効にする「enable」及び該認証機能を無効にする「disable」のいずれか一方が設定される。「enable」が設定されたログインアプリ２０８はＭＦＰ１００の起動時に起動し、ユーザによる動作終了指示を受け付けるまで動作し続ける。ログインアプリ２０８が起動すると、表示部１０５には、ユーザＩＤやパスワード等の認証処理に用いられる各情報をユーザに入力させる認証情報設定画面が表示される。スクリーンセーバアプリ２０９は表示部１０５の表示機能の低下を抑制するスクリーンセーバ機能を備える。スクリーンセーバアプリ２０９は、操作部１０７において所定の期間無操作状態が継続した時、又は汎用アプリ２１０からアクセスされた時等に起動し、ユーザによる操作部１０７の操作が検知された時に動作を終了する。スクリーンセーバアプリ２０９が起動すると、表示部１０５には、該表示部１０５の焼き付きを防止するスライドショー等のスクリーンセーバ画面が表示される。汎用アプリ２１０は、ユーザによる操作部１０７の操作が検知された時に起動して検知された操作に応じた処理を実行し、該処理の実行を完了すると、動作を終了する。汎用アプリ２１０が起動すると、表示部１０５には検知された操作に応じた処理の設定情報を設定する設定画面が表示される。
【００２３】
ＶＭ／ＦＷモジュール２１１は拡張アプリのインストール処理及びアンインストール処理の実行を制御する。また、ＶＭ／ＦＷモジュール２１１はインストールされた拡張アプリを解析し、該拡張アプリの起動を制御する。具体的に、ＶＭ／ＦＷモジュール２１１は、該ＶＭ／ＦＷモジュール２１１に設けられる図示しないＶＭに記憶された属性情報に対応する拡張アプリを起動させる。本実施の形態では、予め規定された起動条件が満たされた際に該起動条件に対応する拡張アプリのメタファイルの属性情報が上記ＶＭに記憶される。例えば、ＭＦＰ１００の起動時にログインアプリ２０８が「enable」に設定されている場合、若しくはＭＦＰ１００の動作中にログインアプリ２０８の設定が「disable」から「enable」に切り替えられた場合、上記ＶＭにはログインアプリ２０８の属性を示す「login」が記憶される。また、操作部１０７において所定の期間無操作状態が継続した場合、若しくは「generic」の属性の拡張アプリから起動が指示された場合、上記ＶＭにはスクリーンセーバアプリ２０９の属性を示す「screenSaver」が記憶される。さらに、ユーザによる操作部１０７の操作が検知された場合、上記ＶＭには汎用アプリ２１０の属性を示す「generic」が記憶される。ＶＭ／ＦＷモジュール２１１は、拡張アプリの起動に応じて該拡張アプリによる表示の制御を行い、該拡張アプリの表示指示として、ＵＩ制御モジュール２１２に描画要求及び表示部１０５の使用要求を通知する。また、ＶＭ／ＦＷモジュール２１１は起動した拡張アプリのジョブを受け付ける。
【００２４】
ＵＩ制御モジュール２１２は、図３の使用要求受付モジュール３０１、描画要求受付モジュール３０２、取消要求受付モジュール３０３、高優先度ＤＣ（Display Context）３０４、低優先度ＤＣ３０５、及び転送モジュール３０６を備える。ＵＩ制御モジュール２１２はＵＩモジュール２０１やＶＭ／ＦＷモジュール２１１から通知された表示指示の管理及び該表示指示に対応する表示の実行を制御する。ここで、本実施の形態では、ＵＩ制御モジュール２１２は表示部１０５の通常時の表示として、ＵＩモジュール２０１の表示指示に対応する描画データを表示する。ＵＩ制御モジュール２１２は、拡張アプリの表示指示を受け付けると、拡張アプリの表示指示に対応する描画データを表示部１０５に重畳させ、拡張アプリの表示指示に対応する表示を行う。
【００２５】
使用要求受付モジュール３０１はＶＭ／ＦＷモジュール２１１から拡張アプリの表示部１０５の使用要求を受け付ける。描画要求受付モジュール３０２はＵＩモジュール２０１及びＶＭ／ＦＷモジュール２１１による描画要求を受け付ける。取消要求受付モジュール３０３は拡張アプリの表示部１０５の使用要求の取消指示をＶＭ／ＦＷモジュール２１１から受け付ける。高優先度ＤＣ３０４及び低優先度ＤＣ３０５は拡張アプリの表示指示に対応する描画データを保持し、表示部１０５の使用状況を管理する。高優先度ＤＣ３０４には低優先度ＤＣ３０５より表示の優先順位が高い描画データが記憶される。転送モジュール３０６は図示しないＶＲＡＭ、高優先度ＤＣ３０４、及び低優先度ＤＣ３０５等に記憶された描画データをデバイスドライバモジュール２０７を介して表示部１０５に転送する。
【００２６】
図４は、図２のＶＭ／ＦＷモジュール２１１によって実行される拡張アプリ起動制御処理の手順を示すフローチャートである。
【００２７】
図４の処理は、ログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０のいずれかの拡張アプリの起動条件を満たした場合を前提とする。
【００２８】
図４において、まず、ＶＭ／ＦＷモジュール２１１はログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０の中から起動対象モジュールを特定する（ステップＳ４０１）。ステップＳ４０１では、ＶＭ／ＦＷモジュール２１１は上記起動条件に基づいて上記ＶＭに記憶された属性情報を用いて起動対象モジュールを特定する。具体的に、ＶＭ／ＦＷモジュール２１１は上記ＶＭに「login」が記憶されている場合、起動対象モジュールがログインアプリ２０８であると判別する。また、ＶＭ／ＦＷモジュール２１１は、上記ＶＭに「screenSaver」が記憶されている場合、起動対象モジュールがスクリーンセーバアプリ２０９であると判別し、上記ＶＭに「generic」が記憶されている場合、起動対象モジュールが汎用アプリ２１０であると判別する。
【００２９】
ステップＳ４０１において、起動対象モジュールが汎用アプリ２１０である場合、ＶＭ／ＦＷモジュール２１１は表示部１０５においてログインアプリ２０８による表示が行われているか否かを判別する（ステップＳ４０２）。
【００３０】
ステップＳ４０２の判別の結果、ログインアプリ２０８による表示が行われているとき、ＶＭ／ＦＷモジュール２１１は本処理を終了する。一方、ステップＳ４０２の判別の結果、ログインアプリ２０８による表示が行われていないとき、ＶＭ／ＦＷモジュール２１１は汎用アプリ２１０と異なる図示しない他の汎用アプリが動作中であるか否かを判別する（ステップＳ４０３）。
【００３１】
ステップＳ４０３の判別の結果、他の汎用アプリが動作中であるとき、ＶＭ／ＦＷモジュール２１１は本処理を終了する。一方、ステップＳ４０３の判別の結果、他の汎用アプリが動作中でないとき、ＶＭ／ＦＷモジュール２１１は汎用アプリ２１０を起動する（ステップＳ４０４）。汎用アプリ２１０の起動が完了すると、ＶＭ／ＦＷモジュール２１１は、汎用アプリ２１０の表示指示として、汎用アプリ２１０の表示部１０５の使用要求を使用要求受付モジュール３０１に送信する。また、ＶＭ／ＦＷモジュール２１１は汎用アプリ２１０の描画要求を描画要求受付モジュール３０２に送信する。すなわち、本実施の形態では、汎用アプリ２１０の表示指示が、少なくとも、他の汎用アプリの表示指示やログインアプリ２０８の表示指示と競合することはない。その後、ＶＭ／ＦＷモジュール２１１は本処理を終了する。
【００３２】
ステップＳ４０１において、起動対象モジュールがスクリーンセーバアプリ２０９である場合、ＶＭ／ＦＷモジュール２１１はスクリーンセーバアプリ２０９を起動する（ステップＳ４０５）。スクリーンセーバアプリ２０９の起動が完了すると、ＶＭ／ＦＷモジュール２１１はスクリーンセーバアプリ２０９の表示指示として、スクリーンセーバアプリ２０９の表示部１０５の使用要求を使用要求受付モジュール３０１に送信する。また、ＶＭ／ＦＷモジュール２１１はスクリーンセーバアプリ２０９の描画要求を描画要求受付モジュール３０２に送信する。その後、ＶＭ／ＦＷモジュール２１１は本処理を終了する。
【００３３】
ステップＳ４０１において、起動対象モジュールがログインアプリ２０８である場合、ＶＭ／ＦＷモジュール２１１はインストールされた全ての汎用アプリが停止しているか否かを判別する（ステップＳ４０６）。
【００３４】
ステップＳ４０２の判別の結果、インストールされた全ての汎用アプリが停止しているとき、ＶＭ／ＦＷモジュール２１１は後述するステップＳ４０８以降の処理を行う。一方、ステップＳ４０２の判別の結果、いずれかの汎用アプリが動作中であるとき、ＶＭ／ＦＷモジュール２１１は動作中の汎用アプリを停止する（ステップＳ４０７）。次いで、ＶＭ／ＦＷモジュール２１１はログインアプリ２０８を起動する（ステップＳ４０８）。ログインアプリ２０８の起動が完了すると、ＶＭ／ＦＷモジュール２１１はログインアプリ２０８の表示指示として、ログインアプリ２０８の表示部１０５の使用要求を使用要求受付モジュール３０１に送信する。また、ＶＭ／ＦＷモジュール２１１はログインアプリ２０８の描画要求を描画要求受付モジュール３０２に送信する。すなわち、本実施の形態では、各拡張アプリが起動すると、起動した拡張アプリの表示指示がＵＩ制御モジュール２１２に即座に通知される。その後、ＶＭ／ＦＷモジュール２１１は本処理を終了する。
【００３５】
図５は、図３の使用要求受付モジュール３０１によって実行される表示部１０５の使用要求受付処理の手順を示すフローチャートである。
【００３６】
図５の処理は、使用要求受付モジュール３０１がログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０のいずれかの表示部１０５の使用要求を受信した場合を前提とする。
【００３７】
ここで、ＭＦＰ１００では、上述した図４の処理により、各拡張アプリの起動時に他の拡張アプリと同時に動作状態とならないように或る程度制御されるが、一部の場合において複数の拡張アプリが同時に動作状態となってしまう場合がある。具体的に、スクリーンセーバアプリ２０９及びログインアプリ２０８が共に動作状態となってしまう場合や、スクリーンセーバアプリ２０９及び汎用アプリ２１０が共に動作状態となってしまう場合がある。このような場合、２つの拡張アプリの表示指示が競合してしまうが、ウィンドウマネージャーモジュールを搭載しないＭＦＰ１００では、競合した表示指示の調停を行うことができず、その結果、各拡張アプリによる表示を適切に行うことができない。
【００３８】
これに対応して、本実施の形態では、複数の拡張アプリの表示指示が競合した場合、各拡張アプリの起動条件に基づいて表示の優先順位付けが行われる。
【００３９】
図５において、まず、使用要求受付モジュール３０１は上記起動条件に基づいて上記ＶＭに記憶された属性情報を用いて表示部１０５の使用対象モジュールがログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０のいずれかであるかを判別する（ステップＳ５０１）。具体的に、使用要求受付モジュール３０１は上記ＶＭに「login」が記憶されている場合、使用対象モジュールがログインアプリ２０８であると判別する。また、使用要求受付モジュール３０１は、上記ＶＭに「screenSaver」が記憶されている場合、使用対象モジュールがスクリーンセーバアプリ２０９であると判別し、上記ＶＭに「generic」が記憶されている場合、使用対象モジュールが汎用アプリ２１０であると判別する。
【００４０】
ステップＳ５０１の判別の結果、使用対象モジュールがスクリーンセーバアプリ２０９であるとき、使用要求受付モジュール３０１は受信した使用要求を高優先度ＤＣ３０４の描画データを用いた表示部１０５の使用要求として受け付ける（ステップＳ５０２）。その後、使用要求受付モジュール３０１は使用対象モジュールに高優先度ＤＣ３０４を示すＤＣ識別子を送信し、本処理を終了する。
【００４１】
ステップＳ５０１の判別の結果、使用対象モジュールがログインアプリ２０８又は汎用アプリ２１０であるとき、使用要求受付モジュール３０１は受信した使用要求を低優先度ＤＣ３０５の描画データを用いた表示部１０５の使用要求として受け付ける（ステップＳ５０３）。すなわち、本実施の形態では、拡張アプリの起動条件に基づいて表示の優先順位付けが行われ、インストールされた複数の拡張アプリのうちスクリーンセーバアプリ２０９による表示が優先される。その後、使用要求受付モジュール３０１は使用対象モジュールに低優先度ＤＣ３０５を示すＤＣ識別子を送信し、本処理を終了する。
【００４２】
図６は、図３の描画要求受付モジュール３０２によって実行される描画要求受付処理の手順を示すフローチャートである。
【００４３】
図６の処理は、描画要求受付モジュール３０２がＵＩモジュール２０１、ログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０のいずれかの描画要求を受信した場合を前提とする。
【００４４】
図６において、まず、描画要求受付モジュール３０２は受信した描画要求に対応するモジュール（以下、「描画要求対応モジュール」という。）がＵＩモジュール２０１及び拡張アプリのいずれであるかを判別する（ステップＳ６０１）。
【００４５】
ステップＳ６０１の判別の結果、描画要求対応モジュールがＵＩモジュール２０１であるとき、描画要求受付モジュール３０２は表示部１０５において拡張アプリによる表示が行われているか否かを判別する（ステップＳ６０２）。
【００４６】
ステップＳ６０２の判別の結果、拡張アプリによる表示が行われているとき、描画要求受付モジュール３０２は本処理を終了する。一方、ステップＳ６０２の判別の結果、拡張アプリによる表示が行われていないとき、描画要求受付モジュール３０２は描画要求に対応する描画データの転送を転送モジュール３０６に依頼する（ステップＳ６０３）。これにより、図示しないＶＲＡＭに記録された描画データが表示部１０５に転送され、表示部１０５にはＵＩモジュール２０１の表示指示に対応する表示が行われる。その後、描画要求受付モジュール３０２は本処理を終了する。
【００４７】
ステップＳ６０１の判別の結果、描画要求対応モジュールが拡張アプリであるとき、描画要求受付モジュール３０２は描画要求対応モジュールのＤＣ識別子を取得する。描画要求受付モジュール３０２は取得したＤＣ識別子に対応するＤＣを高優先度ＤＣ３０４及び低優先度ＤＣ３０５の中から特定し、特定したＤＣに描画要求に対応する描画データを記録する（ステップＳ６０４）。記録された描画データは該ＤＣに保持される。次いで、描画要求受付モジュール３０２は表示部１０５において高優先度ＤＣ３０４の描画データの表示が行われているか否かを判別する（ステップＳ６０５）。
【００４８】
ステップＳ６０５の判別の結果、高優先度ＤＣ３０４の描画データの表示が行われているとき、描画要求受付モジュール３０２は本処理を終了する。一方、ステップＳ６０５の判別の結果、高優先度ＤＣ３０４の描画データの表示が行われていないとき、描画要求受付モジュール３０２は上記特定されたＤＣが高優先度ＤＣ３０４及び低優先度ＤＣ３０５のいずれであるか否かを判別する（ステップＳ６０６）。
【００４９】
ステップＳ６０６の判別の結果、上記特定されたＤＣが低優先度ＤＣ３０５であるとき、描画要求受付モジュール３０２は低優先度ＤＣ３０５に記録された描画データの一部の転送を転送モジュール３０６に依頼する（ステップＳ６０７）。これにより、低優先度ＤＣ３０５に記録された描画データの一部が表示部１０５に転送され、表示部１０５の一部の領域において、転送された描画データが重畳される。例えば、表示部１０５においてＵＩモジュール２０１による表示が行われ、且つ描画要求対応モジュールがログインアプリ２０８である場合、表示部１０５には図７の操作画面７００が表示される。操作画面７００は、ＵＩモジュール２０１による表示及びログインアプリ２０８による表示が合成された操作画面であり、ログインアプリ２０８による表示領域７０１、及びＵＩモジュール２０１による表示領域７０２を含む。その後、描画要求受付モジュール３０２は本処理を終了する。
【００５０】
ステップＳ６０６の判別の結果、上記特定されたＤＣが高優先度ＤＣ３０４であるとき、描画要求受付モジュール３０２は高優先度ＤＣ３０４に記録された全ての描画データの転送を転送モジュール３０６に依頼する（ステップＳ６０８）。これにより、高優先度ＤＣ３０４に記録された全ての描画データが表示部１０５に転送され、表示部１０５にはスクリーンセーバアプリ２０９による表示が行われる。その後、描画要求受付モジュール３０２は本処理を終了する。
【００５１】
図８は、図３の取消要求受付モジュール３０３によって実行される取消受付処理の手順を示すフローチャートである。
【００５２】
図８の処理は、表示部１０５において、ＵＩモジュール２０１、ログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０のいずれかによる表示が行われていることを前提とする。また、図８の処理は、取消要求受付モジュール３０３が高優先度ＤＣ３０４の描画データを用いた表示部１０５の使用要求及び低優先度ＤＣ３０５の描画データを用いた表示部１０５の使用要求のいずれかの取消指示を受信した場合を前提とする。
【００５３】
図８の処理において、まず、取消要求受付モジュール３０３は受信した取消指示に対応する表示部１０５の使用要求を取り消す（ステップＳ８０１）。これにより、該使用要求に対応するＤＣに記録された描画データが削除される。次いで、取消要求受付モジュール３０３は取り消しされた上記使用要求と異なる他の使用要求が存在するか否かを判別する（ステップＳ８０２）。
【００５４】
ステップＳ８０２の判別の結果、他の使用要求が存在しないとき、取消要求受付モジュール３０３はＵＩモジュール２０１に対して再描画要求を行う（ステップＳ８０３）。これにより、ＵＩモジュール２０１がＵＩ制御モジュール２１２に表示指示を行い、表示部１０５にはＵＩモジュール２０１による表示が行われる。その後、取消要求受付モジュール３０３は本処理を終了する。
【００５５】
ステップＳ８０２の判別の結果、他の使用要求が存在するとき、取消要求受付モジュール３０３は上記他の使用要求が高優先度ＤＣ３０４及び低優先度ＤＣ３０５のいずれの描画データを用いた表示部１０５の使用要求であるかを判別する（ステップＳ８０４）。
【００５６】
ステップＳ８０４の判別の結果、上記他の使用要求が高優先度ＤＣ３０４の描画データを用いた表示部１０５の使用要求であるとき、取消要求受付モジュール３０３はステップＳ８０１の処理が現在実行中の表示部１０５の表示に影響がないと判断する。取消要求受付モジュール３０３は表示部１０５の表示を継続し、本処理を終了する。
【００５７】
ステップＳ８０４の判別の結果、上記他の使用要求が低優先度ＤＣ３０５の描画データを用いた表示部１０５の使用要求であるとき、取消要求受付モジュール３０３は低優先度ＤＣ３０５に記録された描画データの転送を転送モジュール３０６に依頼する（ステップＳ８０５）。これにより、転送モジュール３０６によって低優先度ＤＣに記録された描画データが表示部１０５に転送され、表示部１０５には低優先度ＤＣ３０５の描画データを用いた表示、例えば、ログインアプリ２０８又は汎用アプリ２１０による表示が行われる。その後、取消要求受付モジュール３０３は本処理を終了する。
【００５８】
上述した本実施の形態によれば、複数の拡張アプリの表示指示が競合した場合、各拡張アプリの起動条件に基づいて表示の優先順位付けが行われる。これにより、複数の拡張アプリの表示指示が競合した際の調停等を行う必要を無くすことができる。その結果、ウィンドウマネージャーモジュールを用いることなく、各拡張アプリによる表示を適切に行うことができる。
【００５９】
また、上述した本実施の形態では、スクリーンセーバアプリ２０９の表示指示が他の拡張アプリの表示指示と競合した場合、スクリーンセーバアプリ２０９の表示指示に対応する表示が優先される。これにより、ＭＦＰ１００の表示機能の低下を確実に抑制することができる。
【００６０】
さらに、上述した本実施の形態では、ＵＩモジュール２０１の表示指示及びログインアプリ２０８の表示指示が競合した場合、ＵＩモジュール２０１の表示指示に対応する表示及びログインアプリ２０８の表示指示に対応する表示を合成した表示が行われる。ここで、ＵＩモジュール２０１の表示指示に対応する表示及びログインアプリ２０８の表示指示に対応する表示のいずれも表示部１０５の一部で行われれば、それぞれの機能を担保することができる。すなわち、ＵＩモジュール２０１の表示指示に対応する表示及びログインアプリ２０８の表示指示に対応する表示のいずれも表示部１０５において全画面表示を行う必要が無い。したがって、各表示の優先順位付けを行うより、むしろ、各表示を同時に行う方がユーザの使い勝手の向上とＭＦＰ１００のセキュリティレベルの維持を両立することができ、合理的である。これに対応して、本実施の形態では、ＵＩモジュール２０１の表示指示及びログインアプリ２０８の表示指示が競合した場合、ＵＩモジュール２０１の表示指示に対応する表示及びログインアプリ２０８の表示指示に対応する表示を合成した表示が行われる。これにより、ユーザの使い勝手の向上とＭＦＰ１００のセキュリティレベルの維持を両立することができる。
【００６１】
ところで、本実施の形態では、表示部１０５において、例えば、ログインアプリ２０８による表示中に所定の期間が経過した場合、ログインアプリ２０８による表示より優先順位が高いスクリーンセーバアプリ２０９による表示に切り替わる。表示部１０５の表示がスクリーンセーバアプリ２０９による表示に切り替わると、ＭＦＰ１００では、ログインアプリ２０８の認証機能が機能しなくなり、認証処理を成功していないユーザがスクリーンセーバアプリ２０９を経由してジョブを投入可能となる。その結果、ＭＦＰ１００のセキュリティレベルが低下してしまう。
【００６２】
これに対応して、本実施の形態では、複数の拡張アプリのうちログインアプリ２０８より表示が優先される拡張アプリのジョブを受け付けない。
【００６３】
図９は、図２のＶＭ／ＦＷモジュール２１１によって実行されるジョブ受付処理の手順を示すフローチャートである。
【００６４】
図９の処理は、ＶＭ／ＦＷモジュール２１１がログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０のいずれかからジョブの実行要求通知を受信した場合を前提とする。
【００６５】
図９において、まず、ＶＭ／ＦＷモジュール２１１は、ジョブの実行要求通知を受信すると、ジョブの実行要求通知の送信元がログインアプリ２０８、スクリーンセーバアプリ２０９、及び汎用アプリ２１０のいずれであるかを確認する（ステップＳ９０１）。
【００６６】
ステップＳ９０１において、ジョブの実行要求通知の送信元が汎用アプリ２１０である場合、ＶＭ／ＦＷモジュール２１１はジョブの実行要求に対応するジョブを受け付け（ステップＳ９０２）、本処理を終了する。
【００６７】
ステップＳ９０１において、ジョブの実行要求通知の送信元がログインアプリ２０８又はスクリーンセーバアプリ２０９である場合、ＶＭ／ＦＷモジュール２１１はジョブの実行要求に対応するジョブを受け付けない（ステップＳ９０３）。ＶＭ／ＦＷモジュール２１１はジョブの実行要求通知の送信元にジョブを受け付けない旨を通知し、本処理を終了する。
【００６８】
上述した本実施の形態では、複数の拡張アプリのうちログインアプリ２０８より表示が優先される拡張アプリのジョブを受け付けない。これにより、ログインアプリ２０８より表示が優先される拡張アプリから投入されたジョブが実行されるといった事態を回避することができ、もって、ＭＦＰ１００のセキュリティレベルが低下するのを防止することができる。
【００６９】
図１０は、図２のＵＩ制御モジュール２１２によって実行される操作検知処理の手順を示すフローチャートである。
【００７０】
図１０において、まず、ＵＩ制御モジュール２１２は操作部１０７の操作、つまり、表示部１０５のタッチ操作を周期的に監視する（ステップＳ１００１）。表示部１０５のタッチ操作を検知すると、ＵＩ制御モジュール２１２は表示部１０５において拡張アプリによる表示が行われているか否かを判別する（ステップＳ１００２）。
【００７１】
ステップＳ１００２の判別の結果、拡張アプリによる表示が行われていないとき、ＵＩ制御モジュール２１２はＵＩモジュール２０１に表示部１０５のタッチ操作の検知結果を送信し（ステップＳ１００３）、本処理を終了する。
【００７２】
ステップＳ１００２の判別の結果、拡張アプリによる表示が行われているとき、ＵＩ制御モジュール２１２は表示部１０５において高優先度ＤＣ３０４及び低優先度ＤＣ３０５のいずれの描画データの表示が行われているかを判別する（ステップＳ１００４）。
【００７３】
ステップＳ１００４の判別の結果、高優先度ＤＣ３０４の描画データの表示が行われているとき、ＵＩ制御モジュール２１２は該表示に対応する拡張アプリに検知結果を送信する（ステップＳ１００５）。具体的に、ＵＩ制御モジュール２１２はスクリーンセーバアプリ２０９に検知結果を送信する。その後、ＵＩ制御モジュール２１２は本処理を終了する。一方、ステップＳ１００４の判別の結果、低優先度ＤＣ３０５の描画データの表示が行われているとき、ＵＩ制御モジュール２１２は表示部１０５におけるタッチ操作が行われた位置を特定する。表示部１０５に、例えば、操作画面７００が表示されている場合、ＵＩ制御モジュール２１２は表示部１０５におけるタッチ操作が行われた位置が表示領域７０１及び表示領域７０２のいずれであるかを判別する（ステップＳ１００６）。
【００７４】
ステップＳ１００６の判別の結果、表示部１０５におけるタッチ操作が行われた位置が表示領域７０１であるとき、ＵＩ制御モジュール２１２はステップＳ１００５の処理を行う。具体的に、ＵＩ制御モジュール２１２は表示領域７０１の表示に対応する拡張アプリであるログインアプリ２０８に表示部１０５の検知結果を送信する。その後、ＵＩ制御モジュール２１２は本処理を終了する。
【００７５】
ステップＳ１００６の判別の結果、表示部１０５におけるタッチ操作が行われた位置が表示領域７０２であるとき、ＵＩ制御モジュール２１２はステップＳ１００３の処理を行う。
【００７６】
上述した本実施の形態では、複数の拡張アプリの表示指示が競合した際の調停等を行うウィンドウマネージャーモジュールを備えない構成について説明したが、ＭＦＰ１００はウィンドウマネージャーモジュールを備えていても良い。ウィンドウマネージャーモジュールは、競合した表示指示の調停の他に、例えば、複数の拡張アプリに対応する複数のウィンドウを一画面に表示し、且つ各ウィンドウの表示の切り替え制御を行うウィンドウシステム機能を実現する。ウィンドウシステム機能はユーザによってＯＮ／ＯＦＦ制御可能であり、ウィンドウシステム機能の『ＯＦＦ』が選択された場合、ウィンドウマネージャーモジュールは停止する。この場合、ウィンドウマネージャーモジュールにより、競合した表示指示の調停を行うことができなくなるが、本実施の形態では、各拡張アプリの起動条件に基づいて表示の優先順位付けを行う。これにより、ウィンドウマネージャーモジュールを用いることなく、各拡張アプリによる表示を適切に行うことができる。
【００７７】
本発明は、上述の実施の形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７８】
１００  ＭＦＰ
１０５  表示部
２０１  ＵＩモジュール
２０８  ログインアプリ
２０９  スクリーンセーバアプリ
２１０  汎用アプリ
【図１】
2018074190.tif 000003
【図２】
2018074190.tif 000004
【図３】
2018074190.tif 000005
【図４】
2018074190.tif 000006
【図５】
2018074190.tif 000007
【図６】
2018074190.tif 000008
【図７】
2018074190.tif 000009
【図８】
2018074190.tif 000010
【図９】
2018074190.tif 000011
【図１０】
2018074190.tif 000012