(57)【要約】【課題】ネットワークデバイスに対応するアプリケーションを自動でインストール可能な環境において、バックグラウンドアプリケーションがより多くのユーザに利用されることを可能とする情報処理装置を提供する。【解決手段】ネットワークデバイスに対応するアプリケーションを自動でインストール可能なＯＳを実行する情報処理装置であって、ＯＳよりインストールされたデバイスアプリ１００の機能として該デバイスアプリ１００が起動され、かつ、バックグラウンドタスクが未登録の場合に、該バックグラウンドタスクを登録し、ネットワークデバイスからのイベント通知に応答してデバイスアプリ１００が起動され、かつ、バックグラウンドタスクが未登録の場合に、情報処理装置の出力部１００６へ通知を行うための処理を実行する。情報処理装置は、表示部への通知に対するユーザの入力があった場合に、バックグラウンドタスクを登録する。【選択図】図６
2018128997.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークサービスを介して、ネットワークデバイスに対応するアプリケーションを自動でインストール可能なＯＳを実行する情報処理装置であって、
前記ＯＳよりインストールされたアプリケーションの機能として該アプリケーションが起動され、かつ、バックグラウンドタスクが未登録の場合に、該バックグラウンドタスクを登録する登録手段と、
ネットワークデバイスからのイベント通知に応答して前記アプリケーションが起動され、かつ、バックグラウンドタスクが未登録の場合に、前記情報処理装置の表示部へ通知を行うための処理を実行する表示手段と、を備え、
前記登録手段は、前記表示部への通知に対するユーザの入力があった場合に、前記バックグラウンドタスクを登録する、ことを特徴とする情報処理装置。
【請求項２】
前記表示部への通知は、トースト表示である、ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記登録手段は、ユーザに同意を求めるための画面を提示して、前記ユーザからの同意を得られた場合に、前記バックグラウンドタスクを登録し、前記ユーザからの同意を得られなかった場合には、前記バックグラウンドタスクの登録は行われない、ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記ユーザに同意を求めるための画面で前記ユーザからの同意を得られなかった場合には、前記ネットワークデバイスからのイベント通知に応答して前記アプリケーションが起動され、かつ、前記バックグラウンドタスクが未登録の場合であっても、前記表示部へ通知を行うための処理は実行されない、ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記ＯＳのスタートメニューから前記アプリケーションが起動され、かつ、前記バックグラウンドタスクが未登録の場合に、前記情報処理装置の表示部へ通知を行うための処理は実行されず、
前記登録手段は、前記ユーザに同意を求めるための画面を提示する、ことを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記表示部への通知が行われ、かつ、該通知に対するユーザの入力がなかった回数を記憶する記憶手段をさらに備える、ことを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記記憶手段に記憶された回数が所定の値より大きい場合には、前記ネットワークデバイスからのイベント通知に応答して前記アプリケーションが起動され、かつ、前記バックグラウンドタスクが未登録の場合であっても、前記表示部へ通知を行うための処理は実行されない、ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記アプリケーションとは異なる他のアプリケーションから前記アプリケーションが起動され、かつ、前記バックグラウンドタスクが未登録の場合であって、前記記憶手段に記憶された回数が所定の値以下の場合に、前記表示手段は、前記表示部へ通知を行うための処理を実行し、前記記憶手段に記憶された回数が所定の値より大きい場合には、前記表示部へ通知を行うための処理は実行されない、ことを特徴とする請求項６に記載の情報処理装置。
【請求項９】
請求項１乃至８のいずれか１項に記載の情報処理装置が備える各手段としてコンピュータを機能させるためのプログラム。
【請求項１０】
ネットワークサービスを介して、ネットワークデバイスに対応するアプリケーションを自動でインストール可能なＯＳを実行する情報処理装置の制御方法であって、
前記ＯＳよりインストールされたアプリケーションの機能として、ネットワークデバイスからのイベント通知に応答して前記アプリケーションが起動され、かつ、バックグラウンドタスクが未登録の場合に、前記情報処理装置の表示部へ通知を行うための処理を実行する表示工程と、
前記表示部への通知に対するユーザの入力があった場合に、前記バックグラウンドタスクを登録する登録工程と、を有する、ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、制御方法、およびプログラムに関する。
【背景技術】
【０００２】
Ｍｉｃｒｏｓｏｆｔ（登録商標）社が提供するＷｉｎｄｏｗｓ（登録商標）  ＯＳでは、Ｗｉｎｄｏｗｓ（登録商標）  ８以降のＯＳにおいてＶｅｒｓｉｏｎ４と呼ばれる新しいプリンタドライバ（Ｖ４ドライバ）のアーキテクチャが採用されている。Ｖ４ドライバは、それ以前から採用されているＶｅｒｓｉｏｎ３ドライバ（Ｖ３ドライバ）とはインストールの仕組みが異なる。
【０００３】
Ｖ３ドライバは、プリンタに同梱されたインストールメディアを使ってコンピュータにインストールする方法が主流であるが、Ｖ４ドライバは、Ｖ４ドライバ対応プリンタがコンピュータに接続されるとコンピュータに自動インストールされる方法が主流となる。
【０００４】
また、Ｖ４ドライバ対応プリンタに紐付いたＷｉｎｄｏｗｓ  ストア  デバイス  アプリをＶ４ドライバ対応プリンタのユーザに提供する仕組みもＭｉｃｒｏｓｏｆｔ社によって提供されている。以下、Ｗｉｎｄｏｗｓ  ストア  デバイス  アプリをデバイスアプリと呼ぶ。デバイスアプリは、Ｖ４ドライバの機能拡張用アプリケーションである。Ｖ４ドライバ対応プリンタがコンピュータに接続されると、Ｖ４ドライバ対応プリンタに紐付いたデバイスアプリもまたコンピュータに自動インストールされる。
【０００５】
特許文献１は、Ｖ４ドライバにおける印刷設定を行うＵＩモジュールＤＣＡが印刷設定の統計情報を収集するバックグラウンドタスクを実行し、その情報を利用して印刷設定画面に表示する印刷処理装置を開示している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１４−２１９７３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
例えば、プリンタと関連してバックグラウンドで動作する常駐あるいは定期的に実行されるアプリケーションがあるとする。以下、このようなアプリケーションを「バックグラウンドアプリ」と呼ぶ。バックグラウンドアプリは、プリンタのドライバに付属させることで当該プリンタのユーザに提供することができる。バックグラウンドアプリは、バックグラウンドで動作させるために、ＯＳ（オペレーティングシステム）やスケジューリングサービスなどに登録する必要がある。
【０００８】
Ｖ３ドライバ対応プリンタにおいて、バックグラウンドアプリをユーザに提供するには、当該バックグラウンドアプリのインストーラをプリンタに同梱のドライバインストールメディアに載せることが一般的である。ドライバインストールメディアを使用すると、ドライバインストール時に該インストーラによってバックグラウンドアプリをＯＳやスケジューリングサービスに登録し、バックグラウンドで動作させることができる。Ｖ４ドライバ対応プリンタにおいても、同様にドライバインストールメディアを利用してバックグラウンドアプリをユーザに提供することは可能である。
【０００９】
しかしながら、今後Ｖ３ドライバからＶ４ドライバへの移行が進み、ドライバの自動インストールが主流となると、わざわざドライバインストールメディアを利用するユーザが激減することが予想される。つまり、多くのユーザがバックグラウンドアプリをインストールする機会を失うことになる。
【００１０】
本発明は、ネットワークデバイスに対応するアプリケーションを自動でインストール可能な環境において、バックグラウンドアプリケーションがより多くのユーザに利用されることを可能とする情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一実施形態の情報処理装置は、ネットワークサービスを介して、ネットワークデバイスに対応するアプリケーションを自動でインストール可能なＯＳを実行する情報処理装置であって、前記ＯＳよりインストールされたアプリケーションの機能として該アプリケーションが起動され、かつ、バックグラウンドタスクが未登録の場合に、該バックグラウンドタスクを登録する登録手段と、ネットワークデバイスからのイベント通知に応答して前記アプリケーションが起動され、かつ、バックグラウンドタスクが未登録の場合に、前記情報処理装置の表示部へ通知を行うための処理を実行する表示手段と、を備え、前記登録手段は、前記表示部への通知に対するユーザの入力があった場合に、前記バックグラウンドタスクを登録する。
【発明の効果】
【００１２】
本発明の情報処理装置によれば、ネットワークデバイスに対応するアプリケーションを自動でインストール可能な環境において、バックグラウンドアプリケーションがより多くのユーザに利用されることを可能とする。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置のハードウエア構成例を示す図である。
【図２】ソフトウエアモジュールの構成例を示す図である。
【図３】デバイスアプリが表示する画面の一例を示す図である。
【図４】第１実施形態におけるデバイスアプリ起動時の処理を示す図である。
【図５】バックグラウンドタスクの登録処理を説明する図である。
【図６】第２実施形態におけるソフトウエアモジュールの構成例を示す図である。
【図７】第２実施形態におけるデバイスアプリ起動時の処理を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面などを参照して説明する。
【００１５】
（第１実施形態）
本実施形態では、ネットワークサービスを介して、ネットワークデバイスに対応するアプリケーションを自動でインストール可能な環境において、バックグラウンドアプリを提供する仕組みについて説明する。本実施形態では、一例として、ネットワークデバイスがプリンタであり、ＷｉｎｄｏｗｓのＶ４ドライバがサポートされる環境にて、バックグラウンドアプリをデバイスアプリの一機能としてデバイスアプリと共にユーザの情報処理装置に提供する。
【００１６】
図１は、デバイスアプリが動作する情報処理装置のハードウエア構成例を示す図である。
デバイスアプリは、コンピュータプログラムとしてＨＤＤ１００２またはＲＯＭ１００３に格納されている。ＣＰＵ１００５は、ＯＳとコンピュータプログラムをＨＤＤ１００２またはＲＯＭ１００３から読み出してＲＡＭ１００４にロードし、実行する。
【００１７】
処理結果は、ファイルとしてＨＤＤ１００２に格納されるか、またはデータとしてＲＡＭ１００４に記憶される。デバイスアプリは、コンピュータに接続されているマウスやタッチパネル等の入力装置１００７からユーザの入力や、各種センサの読み取り値を取得する。また、デバイスアプリは、情報処理装置の表示部を含む出力装置１００６に対して情報を出力し、処理結果を表示する。
【００１８】
さらに、デバイスアプリは、通信装置１００８を介してネットワークに接続された他のコンピュータやプリンタなどの装置と通信を行う。図１に示した各ハードウエアは、バス１００１で互いに接続されており、コンピュータプログラムから操作できるように構成されている。
【００１９】
図２は、本実施形態に係るデバイスアプリと、関連するソフトウエアモジュールの構成例を示す図である。
アプリケーション４００は、Ｗｉｎｄｏｗｓ  ８以降のＯＳにおいてサポートされているアプリケーションモデルを使用して構築された印刷可能なアプリケーションである。アプリケーション４００は、ユーザから印刷要求を受けると、印刷対象データを印刷システム５００に送信する。
【００２０】
印刷システム５００は、ＯＳのサブシステムであり、プリンタの選択や基本的な印刷設定など、プリンタの機種に依存しない共通処理を実行する。プリンタドライバ６００は、選択されたプリンタ特有の印刷設定や印刷対象データの変換処理など、プリンタの機種に依存する処理を実行する。プリントスプーラ７００は、ＯＳのサブシステムであり、プリンタドライバ６００とプリンタ間のデータの送受信を担当する。イベントブローカ８００は、アプリケーション４００のバックグラウンドタスクの実行を調整するＯＳのサブシステムである。
【００２１】
デバイスメタデータ保管部９００は、デバイスメタデータを保管するＯＳのサブシステムである。デバイスメタデータは、プリンタのモデル名や製造元などの基本情報の他、プリンタに紐付けられたデバイスアプリ１００のＩＤや発行元など、プリンタとデバイスアプリとを結びつける情報を有する。デバイスメタデータは、コンピュータへのプリンタ接続時に自動的にダウンロードされ、デバイスメタデータ保管部９００で保管される。
【００２２】
デバイスアプリ１００は、Ｗｉｎｄｏｗｓ  ８以降のＯＳにおいてサポートされているアプリケーションモデルを使用して構築されたアプリケーションである。デバイスアプリ１００は、プリンタドライバ６００を補助する機能拡張用アプリケーションとして位置づけられる。デバイスアプリ１００は、一つ以上のＶ４ドライバ対応プリンタに紐付いており、ネットワークに接続された情報処理装置にプリンタが接続されると自動的にインストールされる。
【００２３】
デバイスアプリ１００は、印刷システム５００で選択されたプリンタに特化した印刷設定などを独自のＵＩ（ユーザインタフェース）で表示および設定する機能を有する。デバイスアプリ１００は、スタートアプリ処理部１１０、印刷設定処理部１２０、バックグラウンドタスク処理部１４０、バックグラウンドタスク登録部１５０、およびバックグラウンドタスク登録条件記憶部１６０を備える。
【００２４】
デバイスアプリ１００は、２通りの起動方法をユーザに提供する。ひとつは、Ｗｉｎｄｏｗｓのスタートメニューからデバイスアプリ１００を選択することによって起動する方法である。もうひとつは、アプリケーション４００から印刷要求を出すことで印刷システム５００を起動し、さらに印刷システム５００のＵＩから印刷の詳細設定を行う画面（以下、印刷設定画面と呼ぶ）を開くことによって起動する方法である。これら２つの起動方法を区別するため、前者を「ユーザによる起動」、後者を「印刷システムによる起動」と呼び分ける。
【００２５】
デバイスアプリ１００がユーザによって起動された場合、スタートアプリ処理部１１０が起動時の処理を行い、印刷システム５００によって起動された場合、印刷設定処理部１２０が起動時の処理を行うように制御される。なお、デバイスアプリ１００が上記２つの方法で起動された状態を、デバイスアプリ１００がアクティブである、またはフォアグラウンドで動作していると言う。
【００２６】
バックグラウンドタスク処理部１４０は、プリンタと関連してバックグラウンドで動作するコンピュータプログラムであるバックグラウンドアプリの一つである。本実施形態では、バックグラウンドアプリをデバイスアプリ１００のバックグラウンドタスクとして実装する。バックグラウンドタスクは、時間やＯＳのシステムイベントをトリガに実行される。ＯＳが提供するそれらのトリガを利用するためには、バックグラウンドタスクと当該バックグラウンドタスクが使用するトリガとを対にしてＯＳに登録する必要がある。
【００２７】
バックグラウンドタスク登録部１５０は、バックグラウンドタスク処理部１４０が実行するタスクをＯＳに登録する処理を担う。なお、特に指定がない限り、以下では「バックグラウンドタスク」とはバックグラウンドタスク処理部１４０が実行するタスクのことを意味する。バックグラウンドタスク登録条件記憶部１６０は、バックグラウンドタスクをＯＳに登録する必要があるか否かを判断するための情報を記憶する。
【００２８】
なお、本実施形態では、バックグラウンドタスクがユーザの許諾を得なければ動作することができないものとして説明するが、バックグラウンドタスクは、ユーザの許諾を必要としないものでも良い。本実施形態では、デバイスアプリ１００は、ユーザの許諾を得るために通知画面や許諾確認画面を提示する。通知画面および許諾確認画面の詳細については、図３を用いて後述する。
【００２９】
図４は、デバイスアプリ１００の起動時の処理を説明するフローチャートである。
上述したように、デバイスアプリ１００には２つの起動方法があり、起動方法によって処理が異なる。ステップＳ２００１にて、ユーザによってデバイスアプリ１００が起動されると、スタートアプリ処理部１１０が呼び出され、処理はステップＳ２１０１に進む。
【００３０】
一方、印刷システムのＵＩから印刷設定画面を開くことによってデバイスアプリ１００が起動されると、印刷設定処理部１２０が呼び出され、処理はステップＳ２２０１に進む。ステップＳ２１０１で、スタートアプリ処理部１１０は、デバイスアプリ１００の起動処理を行う。なお、ユーザによって起動された場合のデバイスアプリ１００の起動処理を「スタートアプリの起動処理」と呼ぶ。
【００３１】
ステップＳ２１０２で、バックグラウンドタスク登録部１５０は、バックグラウンドタスクが登録済みか否かをＯＳに問い合わせる。この処理は、同一のバックグラウンドタスクをＯＳに対して多重登録しないようにするために行う。バックグラウンドタスクが未登録の場合、処理はステップＳ２１０３に進み、登録済みの場合、処理を終了する。ステップＳ２１０３で、バックグラウンドタスク登録部１５０は、バックグラウンドタスクの登録処理を実行するか判定する。
【００３２】
ステップＳ２１０３にて実行される判定処理の詳細については、表１を用いて後述する。ステップＳ２１０３にてバックグラウンドタスク登録部１５０が登録処理を実行すると判定した場合、処理はステップＳ３０００に進み、登録処理を実行しないと判定した場合、処理を終了する。ステップＳ３０００で、バックグラウンドタスク登録部１５０は、バックグラウンドタスクの登録処理を実行する。バックグラウンドタスクの登録処理の詳細については、図５を用いて後述する。
【００３３】
ステップＳ２２０１で、印刷設定処理部１２０は、デバイスアプリ１００の起動処理を行う。なお、印刷システム５００によって起動された場合のデバイスアプリ１００の起動処理を「印刷設定画面の起動処理」と呼ぶ。印刷設定画面が起動されたとき、印刷設定処理部１２０は印刷設定画面の起動処理を実行する。ステップＳ２２０２で、スタートアプリの起動処理（ステップＳ２１０１）後の処理と同様に、バックグラウンドタスク登録部１５０は、バックグラウンドタスクが登録済みか否かをＯＳに問い合わせる。
【００３４】
そして、バックグラウンドタスクが未登録の場合、ステップＳ２２０３にて、バックグラウンドタスク登録部１５０は、バックグラウンドタスクの登録処理を実行するか判定する。ステップＳ２２０３にて実行される判定処理の詳細については、表１を用いて後述する。バックグラウンドタスク登録部１５０が登録処理を実行すると判定した場合、処理はステップＳ２２０４に進む。ステップＳ２２０４で、バックグラウンドタスク登録部１５０は、未登録のバックグラウンドタスクを通知する通知画面を表示する。
【００３５】
図３（Ａ）は、バックグラウンドタスク登録部１５０が表示する通知画面の一例を示す図である。
通知画面２００は、トースト表示（トースト通知）である。トースト表示とは、ユーザの操作を阻害しないように、デバイスアプリ１００の印刷設定画面とは別に画面の隅に表示されるメッセージ（通知）のことである。通知画面２００は、ユーザにデバイスアプリ１００のバックグラウンドタスクの存在を知らせ、バックグラウンドタスクの登録を促す役割を有する。なお、本実施形態では、ユーザへの通知がトースト表示である場合について説明するが、これに限られるものではなく、どのような方法でユーザに通知してもよい。
【００３６】
ユーザは、表示された通知画面２００に対して、アクティブ化するか、無視するか、または非表示にするかのうちいずれかを実施することができる。アクティブ化するには、ユーザが通知画面２００をクリックまたはタップすることで実施できる。デバイスアプリ１００がアクティブな場合に、ユーザが通知画面２００をアクティブ化すると、そのことがデバイスアプリ１００に通知される。また、デバイスアプリ１００がアクティブでない場合に、ユーザが通知画面２００をアクティブ化すると、デバイスアプリ１００をアクティブ化することができる。
【００３７】
ユーザが通知画面２００を無視した場合、通知画面２００は一定の時間が経過した後、非表示になる。なお、本実施形態では、通知画面に対するユーザの入力の一例として、ユーザが通知画面２００をアクティブ化する場合について説明したが、これに限られるものではない。
【００３８】
例えば、図３（Ａ）では不図示であるが、通知画面２００にボタンを設置することが可能である。通知画面２００の該ボタンを押下することを通知画面に対するユーザの入力としてもよい。また、例えば、通知画面２００をアクティブ化するためのボタン、および非表示にするためのボタンを設置してもよい。この場合、ユーザにいずれかをクリックまたはタップさせることで通知画面２００のアクティブ化や非表示の処理を実施してもよい。
【００３９】
図４の説明に戻る。ステップＳ２２０４にて、通知画面２００が表示された後、バックグラウンドタスク登録部１５０は、ユーザが通知画面２００をアクティブ化したか判定する。バックグラウンドタスク登録部１５０が、通知画面２００がアクティブ化されたと判定した場合、処理はステップＳ３０００に進み、通知画面２００がアクティブ化されなかったと判定した場合、処理はステップＳ２２０６に進む。
【００４０】
ステップＳ２２０６で、バックグラウンドタスク登録部１５０は、ユーザが通知画面２００をアクティブ化しなかったことをバックグラウンドタスク登録条件記憶部１６０に記憶する。本実施形態では、バックグラウンドタスク登録条件記憶部１６０にて通知画面２００がアクティブ化されなかった回数が記憶される。
【００４１】
ユーザが印刷設定画面を通じてデバイスアプリ１００を起動した場合、ユーザは、印刷設定をすることが目的である可能性が高い。そのため、ユーザの印刷設定画面における処理を強制的に中断することなく、バックグラウンドタスクの登録を促す必要がある。バックグラウンドタスクが印刷設定とは異なる機能をユーザに提供する場合はなおさらユーザの印刷設定画面における処理を中断させないことが必要である。
【００４２】
そこで、本実施形態では、印刷設定画面を通じてデバイスアプリ１００が起動された場合、該デバイスアプリ１００は、ユーザの印刷設定処理に影響を与えない通知画面２００を利用してユーザにバックグラウンドタスクの登録を促す。
【００４３】
一方、ユーザがスタートメニューからデバイスアプリ１００を選択することにより起動した場合、ユーザは、デバイスアプリ１００の機能を使用することが目的である。そして、バックグラウンドタスクは、デバイスアプリ１００の一機能を提供するものである。そのため、本実施形態では、スタートメニューからデバイスアプリ１００が起動された場合、該デバイスアプリ１００は、通知画面２００を表示することなくバックグラウンドタスクの登録処理を実行する。
【００４４】
図５は、バックグラウンドタスク登録部１５０が実行するバックグラウンドタスクの登録処理（ステップＳ３０００）を説明するフローチャートである。
ステップＳ３００１で、バックグラウンドタスク登録部１５０は、ユーザの許諾を得るための許諾確認画面を表示する。
【００４５】
図３（Ｂ）は、バックグラウンドタスク登録部１５０が表示する許諾確認画面の一例である。
許諾確認画面３００は、バックグラウンドタスクを実行するための許諾文を表示する表示領域３０１と、許諾文に対してユーザが同意するか否かの意思を受け付けるためのボタン３０２および３０３とを有する。
【００４６】
ユーザはボタン３０３を押下することにより、許諾文に対して同意したこと、すなわちバックグラウンドタスクの実行を承認したことをデバイスアプリ１００に通知する。また、ユーザはボタン３０２を押下することにより、許諾文に対して同意しないこと、すなわちバックグラウンドタスクの実行を承認しないことをデバイスアプリ１００に通知する。
【００４７】
図５の説明に戻る。ステップＳ３００２で、バックグラウンドタスク登録部１５０は、ユーザが許諾したか判定する。ステップＳ３００２にて、バックグラウンドタスク登録部１５０が、ユーザが許諾したと判定した場合、処理はステップＳ３００３に進み、ユーザが許諾しないと判定した場合、処理はステップＳ３００４に進む。ステップＳ３００３で、バックグラウンドタスク登録部１５０は、ユーザが許諾したバックグラウンドタスクを上述したトリガと紐付けてＯＳに登録する。
【００４８】
これにより、バックグラウンドタスク処理部１４０は、指定されたトリガに該当するタイミングでＯＳによって実行されるようになる。一方、ステップＳ３００４で、バックグラウンドタスク登録部１５０は、ユーザから許諾が得られなかったことをバックグラウンドタスク登録条件記憶部１６０に記憶し、処理を終了する。
【００４９】
次に、図４のステップＳ２１０３またはステップＳ２２０３にて、バックグラウンドタスク登録部１５０が実行する、バックグラウンドタスクの登録処理を実行するか判定する判定処理の詳細について説明する。
【００５０】
バックグラウンドタスク登録部１５０は、バックグラウンドタスク登録条件記憶部１６０に記憶された情報を参照し、バックグラウンドタスクの登録処理を実行するか判定する。本実施形態では、バックグラウンドタスク登録条件記憶部１６０は、以下の２つの情報を記憶している。ひとつは、図５に示したステップＳ３００２にて、ユーザがバックグラウンドタスクの実行を承認したか否かの情報である。この情報を条件１とする。
【００５１】
もうひとつは、図４のステップＳ２２０５にて、ユーザが通知をアクティブ化したか否かの情報である。この情報を条件２とする。表１にこれら条件と対応する値Ａ〜Ｄを示す。バックグラウンドタスク登録部１５０は、条件１と条件２の値の組み合わせによってバックグラウンドタスクの登録処理を実行するか判定する。なお、バックグラウンドタスク登録条件記憶部１６０の初期値は、条件１および条件２ともに真とする。すなわち、表１における値Ａが初期値である。
【００５２】
条件１および条件２がともに真（表１の（Ａ））である場合、バックグラウンドタスク登録部１５０は、バックグラウンドタスクの登録処理を実行すると判定する。すなわち、通知画面２００が表示され、かつ、該通知画面２００に対するユーザの入力がなかった回数が所定の値以下であり、許諾確認画面３００にてユーザが明示的にバックグラウンドタスクの実行に同意しないことを示していない場合に該当する。
【００５３】
また、条件１が真であり、条件２が偽（表１（Ｂ））である場合、バックグラウンドタスク登録部１５０は、バックグラウンドタスクの登録処理を実行しないと判定する。すなわち、通知画面２００が表示され、かつ、該通知画面２００に対するユーザの入力がなかった回数が所定の値より大きい場合、バックグラウンドタスクが未登録の場合であっても、該バックグラウンドタスクの登録処理は実行されない。
【００５４】
これは、図４のステップＳ２１０３およびＳ２２０３において、バックグラウンドタスク登録部１５０が「実行しない」（Ｎｏ）と判定する場合に該当する。ステップＳ２２０３で「実行しない」と判定されると、ステップＳ２２０４の処理は実行されない。言い換えると、通知画面２００が表示され、かつ、該通知画面２００に対するユーザの入力がなかった回数が所定の値より大きい場合、バックグラウンドタスクが未登録の場合であっても、通知画面２００を表示する処理も行われないことを意味する。
【００５５】
また、条件１が偽である場合、条件２の値に関わらず、バックグラウンドタスク登録部１５０は、バックグラウンドタスクの登録処理を実行しないと判定する。これは、許諾確認画面３００にてユーザがボタン３０２を押下し、明示的にバックグラウンドタスクの実行に同意しないことを示した場合に該当する。
【００５６】
そして、図４のステップＳ２１０３およびＳ２２０３において、バックグラウンドタスク登録部１５０が「実行しない」（Ｎｏ）と判定するため、バックグラウンドタスクの登録処理（Ｓ３０００）は実行されない。また、ステップＳ２２０４の処理も実行されないため、通知画面２００を表示する処理も行われなくなる。
【００５７】
【表１】
2018128997.tif 000003
【００５８】
この判定処理により、デバイスアプリ１００が起動されるたびにバックグラウンドタスクの登録処理が実行される事を回避できる。なお、表１は、バックグラウンドタスクの登録処理を実行するか否かの条件の一例であり、他の条件を設けてもよい。
【００５９】
以上のように、本実施形態によれば、ネットワークデバイスに対応するアプリケーションを自動でインストール可能な環境において、以下を可能とする。すなわち、バックグラウンドで動作するコンピュータプログラムが、インストールメディアを使用することなくより多くのユーザに利用されることを可能とする。
【００６０】
（第２実施形態）
第１実施形態では、ユーザがデバイスアプリを起動した際にバックグラウンドタスクがＯＳに登録される。しかし、デバイスアプリ１００は自動でインストールされるため、ユーザは、デバイスアプリ１００が自分の情報処理装置にインストールされたことに気付かない可能性がある。この場合、デバイスアプリ１００がユーザに起動されず、バックグラウンドタスクがＯＳに登録されないまま起動する機会が得られない。
【００６１】
そこで、本実施形態では、デバイスアプリ１００と紐付いたプリンタからのイベント通知を利用してデバイスアプリ１００を起動し、バックグラウンドタスクをＯＳに登録する。本実施形態によれば、ユーザがスタートメニューや印刷設定画面からデバイスアプリ１００を起動しない場合であっても、バックグラウンドタスクをＯＳに登録することが可能となる。以下、第１実施形態と同一の構成および処理には同一の符号を付し、その説明を省略する。
【００６２】
図６は、本実施形態に係るデバイスアプリと、関連するソフトウエアモジュールの構成例を示す図である。
本実施形態では、第１実施形態の構成に加えて、デバイスアプリ１００がデバイスイベント処理部１３０を有する。
【００６３】
プリンタドライバ６００は、ＢｉＤｉ（双方向通信）を利用してプリンタから情報を取得することができる。例えば、プリンタの名前、製造元、モデル名などのプリンタ情報や、紙詰まり、インク残量、ドアやカバーの開閉状況などのプリンタの状態を取得することができる。
【００６４】
プリンタドライバ６００は、プリンタに対するＢｉＤｉ要求を作成してプリントスプーラ７００に送信し、プリンタからのＢｉＤｉ応答をプリントスプーラ７００経由で受信する。プリントスプーラ７００は、プリンタドライバ６００から受信した印刷対象データをプリンタへ送信したり、プリンタドライバ６００とプリンタとの間のＢｉＤｉ通信におけるデータの送受信を実行したりする。
【００６５】
デバイスイベント処理部１３０は、プリンタドライバ６００と紐付いたプリンタからプリンタドライバ６００に対してＢｉＤｉ応答があった場合、イベントブローカ８００によって実行される。デバイスイベント処理部１３０は、デバイスアプリ１００のバックグラウンドタスクの一つである。デバイスイベント処理部１３０は、バックグラウンドタスク処理部１４０とは異なる他のバックグラウンドタスクである。
【００６６】
通常バックグラウンドタスクは、第１実施形態で説明したようにデバイスアプリ１００がＯＳに登録する必要がある。そのため、デバイスアプリ１００の起動時に、バックグラウンドタスク登録部１５０は、バックグラウンドタスク処理部１４０が実行するタスクをＯＳに登録する処理を行う。
【００６７】
これに対して、デバイスイベント処理部１３０の実行するタスクの登録は、デバイスアプリ１００自身が行うのではなく、デバイスメタデータ保管部９００で保管されたプリンタのデバイスメタデータを利用して行われる。詳細には、デバイスメタデータには、ＢｉＤｉ応答受信時に実行するデバイスアプリ１００のバックグラウンドタスクを一つだけあらかじめ登録しておくことができる。本実施形態では、このあらかじめ登録しておける一つのバックグラウンドタスクとしてデバイスイベント処理部１３０を登録しておく。
【００６８】
図６に示したソフトウエアモジュールの構成により、ユーザが印刷処理を要求した際、プリンタドライバ６００からプリンタにＢｉＤｉ要求を送信すると、プリンタからのＢｉＤｉ応答によってデバイスイベント処理部１３０が起動される。すなわち、プリンタからのイベント通知によってデバイスアプリ１００が起動される。
【００６９】
なお、プリンタドライバ６００からプリンタへのＢｉＤｉ要求の内容は印刷処理の要求に限らず、どのようなものでもよい。デバイスアプリ１００のバックグラウンドタスクを登録するためのＢｉＤｉを用意してもよいし、他の目的のために用意されたＢｉＤｉを利用してもよい。例えば、プリンタドライバ６００が必要とするＢｉＤｉ要求や、デバイスアプリ１００の他の機能が必要とするＢｉＤｉ要求を利用してもよい。
【００７０】
どのようなＢｉＤｉ要求であっても、それに対するプリンタからのＢｉＤｉ応答によって、デバイスイベント処理部１３０が起動し、すなわちデバイスアプリ１００が起動される。そして、デバイスアプリ１００が起動されることにより、バックグラウンドタスク処理部１４０のタスク登録が実行される。
【００７１】
図７は、本実施形態におけるデバイスアプリ１００の起動時の処理を説明するフローチャートである。
本実施形態では、デバイスアプリ１００には３つの起動方法がある。ユーザによって起動される方法、印刷システムによって起動される方法については、第１実施形態の場合と同様である。
【００７２】
本実施形態では、さらにデバイスアプリ１００をプリンタからのイベント通知、詳細にはプリンタからのＢｉＤｉ応答によって起動する方法がある。この方法は、図６を用いて説明した仕組みにより実現される。プリンタからのＢｉＤｉ応答によってデバイスアプリ１００が起動されると、処理はステップＳ２３０１に進む。ステップＳ２３０１で、デバイスイベント処理部１３０は、プリンタのＢｉＤｉ応答に対する処理を実行する。
【００７３】
なお、デバイスイベント処理部のバックグラウンドタスクの内容はどのようなものでもよい。例えば、デバイスイベント処理部１３０は、ＢｉＤｉを利用してプリンタのインク残量を取得し、インクの残量をユーザに通知するなどの処理をバックグラウンドタスクとして実行する。そして、ステップＳ２２０２以降の処理で、第１実施形態（図４）の場合と同様に、通知画面２００や許諾確認画面３００を表示し、バックグラウンドタスク登録部１５０がバックグラウンドタスクの登録処理を実行する。
【００７４】
通知画面２００および許諾確認画面３００が表示される際の詳細は、図４のステップＳ２２０３の処理および表１で説明した条件と同様である。すなわち、通知画面２００が表示され、かつ、該通知画面２００に対するユーザの入力がなかった回数が所定の値より大きい場合、ステップＳ２２０３で、バックグラウンドタスク登録部１５０は、バックグラウンドタスクの登録処理を実行しないと判定する。また、この場合、ステップＳ２２０４が実行されないため、通知画面２００も表示されない。
【００７５】
以上のように、本実施形態によれば、ユーザがデバイスアプリ１００を起動しない場合であっても、バックグラウンドタスクをＯＳに登録することが可能となる。すなわち、バックグラウンドで動作するコンピュータプログラムが、より多くのユーザに利用されることを可能とする。
【００７６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７７】
以上、本発明の好ましい実施形態について説明したが、本発明は、これらの実施形態に限定されず、その要旨の範囲内で種々の変形および変更が可能である。
【図１】
2018128997.tif 000004
【図２】
2018128997.tif 000005
【図３】
2018128997.tif 000006
【図４】
2018128997.tif 000007
【図５】
2018128997.tif 000008
【図６】
2018128997.tif 000009
【図７】
2018128997.tif 000010