(57)【要約】【課題】デバイスと通信可能に接続される端末装置において不要なプッシュ通知の受信を抑制する。【解決手段】端末装置は、制御対象のデバイスの属性に関する属性情報を、ネットワークを介してサーバに送信し、端末装置がプッシュ通知データの送信先として決定された場合にプッシュ通知データを受信する。プッシュ通知データの送信先は属性情報を用いて外部装置において決定される。端末装置は、デバイスが第１の属性を有し第２の属性を有さない場合には、第１の属性に関する第１種のプッシュ通知データを受信し、第２の属性に関する第２種のプッシュ通知データを受信せず、デバイスが第２の属性を有し第１の属性を有さない場合には、第２種のプッシュ通知データを受信し、第１種のプッシュ通知データを受信しない。【選択図】  図１１
2019219699.tif 000002
【特許請求の範囲】
【請求項１】
デバイスとネットワークを介して通信可能に接続される端末装置であって、
前記デバイスを制御する制御部と、
制御対象の前記デバイスの属性に関する属性情報を、ネットワークを介してサーバに送信する情報送信部と、
外部装置において前記端末装置がプッシュ通知データの送信先として決定された場合に前記プッシュ通知データを受信する受信部であって、前記プッシュ通知データの送信先は前記サーバに送信された前記属性情報を用いて前記外部装置において決定される、前記受信部と、
を備え、
前記受信部は、
前記制御対象のデバイスが第１の属性を有し第２の属性を有さない場合には、前記第１の属性に関する第１種のプッシュ通知データを受信し、前記第２の属性に関する第２種のプッシュ通知データを受信せず、
前記制御対象のデバイスが前記第２の属性を有し前記第１の属性を有さない場合には、前記第２種のプッシュ通知データを受信し、前記第１種のプッシュ通知データを受信しない、端末装置。
【請求項２】
請求項１に記載の端末装置であって、
前記情報送信部は、前記制御対象のデバイスが第１のデバイスから第２のデバイスに変更されたことを契機に、前記第２のデバイスの属性に関する前記属性情報を前記サーバに送信する、端末装置。
【請求項３】
請求項１または２に記載の端末装置であって、
前記情報送信部は、第１の前記属性情報の前記サーバへの送信に失敗したために前記第１の属性情報が前記サーバに未送信であり、かつ、その後に前記制御対象のデバイスの属性が変更されたために送信すべき前記属性情報が前記第１の属性情報から第２の前記属性情報に変更された場合に、前記第２の属性情報を前記サーバに送信し、前記第１の属性情報を前記サーバに送信しない、端末装置。
【請求項４】
請求項１または２に記載の端末装置であって、
前記情報送信部は、
第３の前記属性情報の前記サーバへの送信に失敗したために前記第３の属性情報が前記サーバに未送信であり、かつ、その後に前記制御対象のデバイスの属性が変更されたために送信すべき前記属性情報が前記第３の属性情報から第４の前記属性情報に変更された場合に、前記第３の属性情報の送信の失敗の直前に送信済みの第５の前記属性情報と前記第４の属性情報とが一致するか否かを判断し、
前記第５の属性情報と前記第４の属性情報とが一致する場合には、前記第４の属性情報を前記サーバに送信せず、
前記第５の属性情報と前記第４の属性情報とが一致しない場合には、前記第４の属性情報を前記サーバに送信する、端末装置。
【請求項５】
請求項１〜４のいずれかに記載の端末装置であって、さらに、
受信済みの前記プッシュ通知データに含まれる条件情報であって前記プッシュ通知データの報知条件を示す条件情報と、前記制御対象のデバイスの属性と、に基づいて、受信済みの前記プッシュ通知データの前記報知条件が満たされるか否かを判断する判断部と、
受信済みの前記プッシュ通知データの前記報知条件が満たされる場合に、受信済みの前記プッシュ通知データに基づいて、ユーザへの報知を実行し、受信済みの前記プッシュ通知データの前記報知条件が満たされない場合に、受信済みの前記プッシュ通知データに基づいて、前記ユーザへの報知を実行しない、報知部と、
を備え、
第６の前記属性情報が前記サーバに送信された後に、前記制御対象のデバイスの属性が変更され、その後に前記第６の属性情報を用いて選択される第１の前記プッシュ通知データが受信される場合に、前記判断部は、前記第１のプッシュ通知データの前記報知条件は満たされないと判断し、前記報知部は、前記第１のプッシュ通知データに基づく前記ユーザへの報知を実行しない、端末装置。
【請求項６】
請求項１〜５のいずれかに記載の端末装置であって、
前記情報送信部は、前記制御対象のデバイスの属性が第３の属性から第４の属性に変更された場合に、前記第４の属性に関する前記属性情報を前記サーバに送信し、
前記受信部は、前記第４の属性に関する前記属性情報の送信前に前記第４の属性を有するデバイスを制御対象とする他の端末装置が受信済みであり、かつ、前記端末装置が未受信である第２の前記プッシュ通知データを、前記第４の属性に関する前記属性情報の送信後に受信する、端末装置。
【請求項７】
請求項１〜６のいずれかに記載の端末装置であって、
前記情報送信部は、前記制御対象のデバイスの属性が第５の属性から第６の属性に変更された場合に、前記制御対象のデバイスの属性が前記第５の属性から前記第６の属性に変更されたことを示す第７の前記属性情報を前記サーバへ送信し、
前記情報送信部は、前記第７の属性情報の送信および前記第７の属性情報に基づいて前記サーバが前記プッシュ通知データの送信先を変更する処理とのいずれかが失敗した場合であって、その後に前記制御対象のデバイスの属性が前記第６の属性から第７の属性に変更された場合には、前記制御対象のデバイスの属性が前記第５の属性から前記第７の属性に変更されたことを示す第８の前記属性情報を送信する、端末装置。
【請求項８】
デバイスとネットワークを介して通信可能に接続される端末装置と、前記端末装置とネットワークを介して通信可能に接続される制御サーバと、を備えるシステムであって、
前記端末装置は、
前記デバイスを制御する制御部と、
制御対象の前記デバイスの属性に関する属性情報を前記制御サーバに送信する情報送信部と、
前記端末装置がプッシュ通知データの送信先として決定された場合に前記プッシュ通知データを受信する受信部と、
を備え、
前記制御サーバは、
前記端末装置から送信される前記属性情報を用いて、前記プッシュ通知データの送信先を決定する決定部であって、前記制御対象のデバイスが第１の属性を有し第２の属性を有しない場合には、前記端末装置を、前記第１の属性に関する第１種のプッシュ通知データの送信先として決定し、前記第２の属性に関する第２種のプッシュ通知データの送信先として決定せず、前記制御対象のデバイスが前記第２の属性を有し前記第１の属性を有しない場合には、前記端末装置を、前記第２種のプッシュ通知データの送信先として決定し、前記第１種のプッシュ通知データの送信先として決定しない、前記決定部を備える、システム。
【請求項９】
請求項８に記載のシステムであって、さらに、
前記制御サーバと通信可能な通知サーバを備え、
前記制御サーバは、さらに、前記決定部によって決定済みの送信先に前記プッシュ通知データを送信する送信指示を前記通知サーバに送信する指示送信部を備え、
前記通知サーバは、前記送信指示に従って、送信先に前記プッシュ通知データを送信する通知送信部を備える、システム。
【請求項１０】
請求項９に記載のシステムであって、
前記通知サーバは、さらに、
前記プッシュ通知データの送信先のリストを格納するメモリと、
前記リストの変更指示に従って前記リストを変更する変更部と、
を備え、
前記制御サーバは、さらに、前記プッシュ通知データの送信先を変更するために、前記リストを変更する変更指示を前記通知サーバに送信する指示送信部を備え、
前記指示送信部は、第１のリストを第２のリストに変更する前記第１の変更指示の送信後に、さらに、前記変更指示を送信する際に、前記第１の変更指示に基づく前記リストの変更が成功した場合には、前記第２のリストを第３のリストに変更する第２の前記変更指示を送信し、前記第１の変更指示に基づく前記リストの変更が失敗した場合には、前記第１のリストを前記第３のリストに変更する第３の変更指示を送信する、システム。
【請求項１１】
デバイスとネットワークを介して通信可能に接続される端末装置のためのコンピュータプログラムであって、
前記デバイスを制御する制御機能と、
制御対象の前記デバイスの属性に関する属性情報を、ネットワークを介してサーバに送信する情報送信機能と、
外部装置において前記端末装置がプッシュ通知データの送信先として決定された場合に前記プッシュ通知データを受信する受信機能であって、前記プッシュ通知データの送信先は前記サーバに送信された前記属性情報を用いて前記外部装置において決定される、前記受信機能と、
を前記端末装置に搭載されたコンピュータに実現させ、
前記受信機能は、
前記制御対象のデバイスが第１の属性を有し第２の属性を有さない場合には、前記第１の属性に関する第１種のプッシュ通知データを受信し、前記第２の属性に関する第２種のプッシュ通知データを受信せず、
前記制御対象のデバイスが前記第２の属性を有し前記第１の属性を有さない場合には、前記第２種のプッシュ通知データを受信し、前記第１種のプッシュ通知データを受信しない、コンピュータプログラム。
【請求項１２】
請求項１１に記載のコンピュータプログラムであって、
前記送信機能は、前記制御対象のデバイスが第１のデバイスから第２のデバイスに変更されたことを契機に、前記第２のデバイスの属性に関する前記属性情報を前記サーバに送信する、コンピュータプログラム。
【請求項１３】
請求項１１または１２に記載のコンピュータプログラムであって、
前記送信機能は、第１の前記属性情報の前記サーバへの送信に失敗したために前記第１の属性情報が前記サーバに未送信であり、かつ、その後に前記制御対象のデバイスの属性が変更されたために送信すべき前記属性情報が前記第１の属性情報から第２の前記属性情報に変更された場合に、前記第２の属性情報を前記サーバに送信し、前記第１の属性情報を前記サーバに送信しない、コンピュータプログラム。
【請求項１４】
請求項１１または１２に記載のコンピュータプログラムであって、
前記送信機能は、
第３の前記属性情報の前記サーバへの送信に失敗したために前記第３の属性情報が前記サーバに未送信であり、かつ、その後に前記制御対象のデバイスの属性が変更されたために送信すべき前記属性情報が前記第３の属性情報から第４の前記属性情報に変更された場合に、前記第３の属性情報の送信の失敗の直前に送信済みの第５の前記属性情報と前記第４の属性情報とが一致するか否かを判断し、
前記第５の属性情報と前記第４の属性情報とが一致する場合には、前記第４の属性情報を前記サーバに送信せず、
前記第５の属性情報と前記第４の属性情報とが一致しない場合には、前記第４の属性情報を前記サーバに送信する、コンピュータプログラム。
【請求項１５】
請求項１１〜１４のいずれかに記載のコンピュータプログラムであって、さらに、
受信済みの前記プッシュ通知データに含まれる条件情報であって前記プッシュ通知データの報知条件を示す条件情報と、前記制御対象のデバイスの属性と、に基づいて、受信済みの前記プッシュ通知データの前記報知条件が満たされるか否かを判断する判断機能と、
受信済みの前記プッシュ通知データの前記報知条件が満たされる場合に、受信済みの前記プッシュ通知データに基づいて、ユーザへの報知を実行し、受信済みの前記プッシュ通知データの前記報知条件が満たされない場合に、受信済みの前記プッシュ通知データに基づいて、前記ユーザへの報知を実行しない、報知機能と、
を前記コンピュータに実現させ、
第６の前記属性情報が前記サーバに送信された後に、前記制御対象のデバイスの属性が変更され、その後に前記第６の属性情報を用いて選択される第１の前記プッシュ通知データが受信される場合に、前記判断機能は、前記第１のプッシュ通知データの前記報知条件は満たされないと判断し、前記報知機能は、前記第１のプッシュ通知データに基づく前記ユーザへの報知を実行しない、コンピュータプログラム。
【請求項１６】
請求項１１〜１５のいずれかに記載のコンピュータプログラムであって、
前記送信機能は、前記制御対象のデバイスの属性が第３の属性から第４の属性に変更された場合に、前記第４の属性に関する前記属性情報を前記サーバに送信し、
前記端末装置は、前記第４の属性に関する前記属性情報の送信前に前記第４の属性を有するデバイスを制御対象とする他の端末装置が受信済みであり、かつ、前記端末装置が未受信である第２の前記プッシュ通知データを、前記第４の属性に関する前記属性情報の送信後に受信する、コンピュータプログラム。
【請求項１７】
請求項１１〜１６のいずれかに記載のコンピュータプログラムであって、
前記送信機能は、前記制御対象のデバイスの属性が第５の属性から第６の属性に変更された場合に、前記制御対象のデバイスの属性が前記第５の属性から前記第６の属性に変更されたことを示す第７の前記属性情報を前記サーバへ送信し、
前記送信機能は、前記第７の属性情報の送信および前記第７の属性情報に基づいて前記サーバが前記プッシュ通知データの送信先を変更する処理とのいずれかが失敗した場合であって、その後に前記制御対象のデバイスの属性が前記第６の属性から第７の属性に変更された場合には、前記制御対象のデバイスの属性が前記第５の属性から前記第７の属性に変更されたことを示す第８の前記属性情報を送信する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、デバイスと通信可能に接続される端末装置がプッシュ通知データを受信する技術に関する。
【背景技術】
【０００２】
特許文献１に開示された技術では、プッシュ通知サーバは、報知条件を指定する情報を含むプッシュ通知データを、端末装置に送信する。端末装置は、制御対象のプリンタからプリンタ情報を取得し、プリンタ情報を用いて報知条件が満たされるか否かを判断する。端末装置は、報知条件が満たされる場合に、プッシュ通知データの内容を表示部に表示し、報知条件が満たされない場合に、プッシュ通知データの内容を表示部に表示しない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１７−１３４６２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記技術では、端末装置は、プッシュ通知データの内容を表示部に表示しないにも拘わらずに、プッシュ通知データを受信するので、不要なプッシュ通知データを受信する場合があった。不要なプッシュ通知の受信は、例えば、端末装置や通信回線のリソースの無駄遣いになる可能性があった。
【０００５】
本明細書は、デバイスと通信可能に接続される端末装置において、不要なプッシュ通知データの受信を抑制する技術を開示する。
【課題を解決するための手段】
【０００６】
本明細書に開示された技術は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の適用例として実現することが可能である。
【０００７】
［適用例１］デバイスとネットワークを介して通信可能に接続される端末装置であって、前記デバイスを制御する制御部と、制御対象の前記デバイスの属性に関する属性情報を、ネットワークを介してサーバに送信する情報送信部と、外部装置において前記端末装置がプッシュ通知データの送信先として決定された場合に前記プッシュ通知データを受信する受信部であって、前記プッシュ通知データの送信先は前記サーバに送信された前記属性情報を用いて前記外部装置において決定される、前記受信部と、を備え、前記受信部は、前記制御対象のデバイスが第１の属性を有し第２の属性を有さない場合には、前記第１の属性に関する第１種のプッシュ通知データを受信し、前記第２の属性に関する第２種のプッシュ通知データを受信せず、前記制御対象のデバイスが前記第２の属性を有し前記第１の属性を有さない場合には、前記第２種のプッシュ通知データを受信し、前記第１種のプッシュ通知データを受信しない、端末装置。
【０００８】
上記構成によれば、端末装置は、制御対象のデバイスが第１の属性を有する場合には、第１の属性に関する第１種のプッシュ通知データを受信し、第２の属性に関する第２種のプッシュ通知データを受信しない。また、端末装置は、制御対象のデバイスが、第２の属性を有する場合には、第２種のプッシュ通知データを受信し、第１種のプッシュ通知データを受信しない。この結果、端末装置は、制御対象のデバイスの属性に応じた適切なプッシュ通知データを選択的に受信できる。したがって、デバイスとネットワークを介して通信可能に接続される端末装置において、不要なプッシュ通知データの受信を抑制できる。
【０００９】
なお、本明細書に開示される技術は、種々の形態で実現することが可能であり、例えば、端末装置と制御サーバを含むシステム、プッシュ通知の送信方法、これら装置または方法を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】システム１０００の構成を示すブロック図である。
【図２】プッシュ通知データＰＤと送信先リスト群ＬＧとの一例を示す図である。
【図３】属性情報送信処理のフローチャートである。
【図４】属性情報の一例を示す図である。
【図５】アプリケーションＡＰＰのＵＩ画面の一例を示す図である。
【図６】属性情報のマージについて説明する図である。
【図７】アプリケーションＡＰＰによる通知受信処理のフローチャートである。
【図８】送信先リスト変更処理のフローチャートである。
【図９】変更指示の一例を示す図である。
【図１０】属性情報のマージについて説明する図である。
【図１１】システム１０００の動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
Ａ．第１実施例：
Ａ−１：システム１０００の構成
図１は、システム１０００の構成を示すブロック図である。システム１０００は、端末装置１００と、プリンタ２１０、２２０と、制御サーバ３００と、プッシュ通知サーバ４００と、を備える。プリンタ２１０、２２０は、有線のローカルエリアネットワークＬＮに接続されている。ローカルエリアネットワークＬＮには、無線のアクセスポイントＡＰが接続されている。ローカルエリアネットワークＬＮは、例えば、イーサネット（登録商標）規格に準拠して構築された有線ネットワークである。アクセスポイントＡＰは、例えば、Ｗｉ−Ｆｉ規格に準拠した通信方式を利用したアクセスポイントである。ローカルエリアネットワークＬＮは、インターネットＩＴに接続されている。制御サーバ３００とプッシュ通知サーバ４００とは、インターネットＩＴに接続されている。
【００１２】
端末装置１００は、アクセスポイントＡＰとローカルエリアネットワークＬＮを介して、プリンタ２１０、２２０と、通信可能に接続されている。端末装置１００は、アクセスポイントＡＰとローカルエリアネットワークＬＮとインターネットＩＴとを介して、制御サーバ３００およびプッシュ通知サーバ４００と通信可能に接続されている。なお、端末装置１００は、Ｗ−ＣＤＭＡなどの携帯電話通信の方式に従う無線通信を行う基地局（図示省略）と、インターネットＩＴと、を介して、制御サーバ３００およびプッシュ通知サーバ４００と接続されていても良い。
【００１３】
端末装置１００（図１）は、プリンタ２１０、２２０のユーザが利用する端末装置であり、例えば、スマートフォンである。端末装置１００は、端末装置１００のコントローラーとしてのＣＰＵ１１０と、ＲＡＭなどの揮発性記憶装置１２０と、ハードディスクドライブなどの不揮発性記憶装置１３０と、タッチパネルなどの操作部１６０と、液晶ディスプレイなどの表示部１７０と、外部機器との通信のための通信ＩＦ１８０と、を備えている。
【００１４】
通信ＩＦ１８０は、本実施例では、Ｗｉ−Ｆｉ規格に準拠した無線のインタフェースである。通信ＩＦ１８０は、上述したプリンタ２１０、２２０、制御サーバ３００、および、プッシュ通知サーバ４００との通信に用いられる。
【００１５】
揮発性記憶装置１２０は、ＣＰＵ１１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置１３０には、コンピュータプログラムＰＧ１が格納されている。
【００１６】
コンピュータプログラムＰＧ１は、プリンタ２１０、２２０のベンダによって提供されるコンピュータプログラムであり、インターネットＩＴを介して端末装置１００に接続されたサーバからダウンロードされる形態で提供される。これに代えて、コンピュータプログラムＰＧ１は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどに格納された形態で提供されても良い。
【００１７】
ＣＰＵ１１０は、図示しないＯＳプログラムを実行することによって、所定のＯＳ（オペレーティングシステム）としての機能を実現する。ＯＳは、例えば、Ａｎｄｒｏｉｄ（登録商標）、ｉＯＳ（登録商標）などのプッシュ通知サービスに対応したＯＳである。ＣＰＵ１１０は、例えば、ＯＳプログラムを実行することによって、後述するＯＳによる通知受信処理を実行する。
【００１８】
ＣＰＵ１１０は、例えば、上述した所定のＯＳ上で、コンピュータプログラムＰＧ１を実行することにより、プリンタ２１０、２２０を制御するアプリケーションＡＰＰとしての機能を実現する。この機能は、例えば、プリンタ２１０、２２０のうちの制御対象のプリンタに、印刷指示や印刷データを含む印刷ジョブを送信して、制御対象のプリンタに印刷を実行させるプリンタ制御処理を実行する。なお、この機能は、ローカルエリアネットワークＬＮに接続されたスキャナ（図示省略）に原稿を読み取らせて、スキャンデータを生成させ、該スキャンデータをスキャナから取得するスキャナ制御処理を実行しても良い。また、ＣＰＵ１１０は、後述するアプリケーションＡＰＰによる属性情報送信処理や通知受信処理を実行する。
【００１９】
プリンタ２１０、２２０は、例えば、ＣＰＵとメモリを含む制御部（図示省略）と、該制御部の制御に従って印刷を行う印刷機構（図示省略）と、を備えている。印刷機構は、例えば、インクジェット方式や電子写真方式などの所定の方式で、用紙などの印刷媒体上に画像を印刷する。ここで、第１のプリンタ２１０のモデル名は「ＭＯＤＥＬ＿Ａ」であり、第２のプリンタ２２０のモデル名は「ＭＯＤＥＬ＿Ｂ」である。
【００２０】
制御サーバ３００は、例えば、プリンタ２１０、２２０のベンダによって運営されるサーバである。制御サーバ３００は、制御サーバ３００のコントローラーとしてのＣＰＵ３１０と、ＲＡＭなどの揮発性記憶装置３２０と、ハードディスクドライブなどの不揮発性記憶装置３３０と、インターネットＩＴと接続するための通信ＩＦ３８０と、を備えている。
【００２１】
揮発性記憶装置３２０は、ＣＰＵ３１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置３３０は、コンピュータプログラムＰＧ２を格納している。
【００２２】
ＣＰＵ３１０は、コンピュータプログラムＰＧ２を実行することによって、例えば、操作者の指示に従って、プッシュ通知サーバ４００に、後述するプッシュ通知データＰＤの送信指示を送信する。また、ＣＰＵ１１０は、コンピュータプログラムＰＧ２を実行することによって、後述する送信先リスト変更処理を実行する。
【００２３】
プッシュ通知サーバ４００は、例えば、端末装置１００のＯＳのベンダによって運営されるサーバである。プッシュ通知サーバ４００は、プッシュ通知サーバ４００のコントローラーとしてのＣＰＵ４１０と、ＲＡＭなどの揮発性記憶装置４２０と、ハードディスクドライブなどの不揮発性記憶装置４３０と、インターネットＩＴと接続するための通信ＩＦ４８０と、を備えている。
【００２４】
揮発性記憶装置４２０は、ＣＰＵ４１０が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置４３０は、コンピュータプログラムＰＧ３と、送信先リスト群ＬＧと、を格納している。
【００２５】
ＣＰＵ４１０は、コンピュータプログラムＰＧ３を実行することによって、例えば、プッシュ通知サービスを提供する。プッシュ通知サービスは、制御サーバ３００の指示に応じて、プッシュ通知データＰＤを端末装置１００に送信するサービスである。プッシュ通知データＰＤは、例えば、端末装置１００にインストールされているコンピュータプログラムＰＧ１によって実現されるアプリケーションＡＰＰに関するデータを含む。プッシュ通知データＰＤは、アプリケーションＡＰＰ（コンピュータプログラムＰＧ１）が端末装置１００において起動しているか否かに拘わらず、制御サーバ３００からの指示を契機として、送信される。プッシュ通知データＰＤは、アプリケーションＡＰＰのユーザ宛に報知されるべき情報（例えば、テキストや画像）に限らず、アプリケーションＡＰＰが用いるべきデータを含み得る。プッシュ通知データＰＤについては、さらに後述する。
【００２６】
プッシュ通知サーバ４００は、自身で、あるいは、他のサーバ（図示省略）を介して、端末装置１００にプッシュ通知データＰＤを送信する。プッシュ通知サーバ４００は、例えば、Ａｎｄｒｏｉｄ（登録商標）やｉＯＳ（登録商標）などの複数種類のプラットフォームでそれぞれ動作する各アプリケーションに対するプッシュ通知データＰＤを送信可能なＦＣＭ（Firebase Cloud Messagingの略）サーバである。以下では、「プッシュ通知サーバ４００が端末装置１００にプッシュ通知データＰＤを送信する」とは、プッシュ通知サーバ４００が、直接、端末装置１００にプッシュ通知データＰＤを送信すること、および、他のサーバが提供するサービスを利用してプッシュ通知データＰＤを端末装置１００に送信すること、との両方を含む。
【００２７】
図２は、プッシュ通知データＰＤと、送信先リスト群ＬＧと、の一例を示す図である。図２（Ａ）のプッシュ通知データＰＤは、通知先識別子と、通知データと、を含む。
【００２８】
通知先識別子は、プッシュ通知データＰＤの送信先を示すＩＤであり、予め登録されたＩＤ（以下、登録ＩＤとも呼ぶ）である。登録ＩＤには、例えば、端末装置１００とアプリケーションＡＰＰ（コンピュータプログラムＰＧ１）との組み合わせに対して付与される識別子であるアプリインスタンスＩＤが用いられる。登録ＩＤは、送信先の端末装置１００を識別するとともに、送信先の端末装置１００にインストールされた１以上のアプリケーションプログラムのうち、プッシュ通知データＰＤの送信先のアプリケーションＡＰＰを識別する。
【００２９】
例えば、端末装置１００においてアプリケーションＡＰＰが最初に起動されたときに、アプリケーションＡＰＰは、ユーザに対してプッシュ通知データＰＤを受信する許可を求めるＵＩ画面を表示する。ユーザから許可を取得した場合に、アプリケーションＡＰＰは、プッシュ通知サーバ４００に対して、登録ＩＤの生成要求を送信する。プッシュ通知サーバ４００は、該生成要求を受信すると、登録ＩＤを生成して、端末装置１００に送信する。端末装置１００のアプリケーションＡＰＰは、登録ＩＤを制御サーバ３００に送信する。制御サーバ３００は、登録ＩＤや、１個以上の登録ＩＤが記録された送信先リスト（後述）を用いて、プッシュ通知データＰＤの送信先を指定することができる。
【００３０】
プッシュ通知データＰＤの通知データ（図２（Ａ））は、条件情報と、タイトルと、メッセージと、を含む。条件情報は、プッシュ通知データＰＤ１の報知条件を示す。すなわち、条件情報によって示される報知条件が満たされる場合に、プッシュ通知データＰＤ１に基づくユーザへの情報の報知が行われ、該報知条件が満たされない場合に、プッシュ通知データＰＤ１に基づくユーザへの情報の報知が行われない。例えば、図２（Ａ）の条件情報によって示される報知条件は、端末装置１００の制御対象のプリンタ（例えば、第１のプリンタ２１０）のモデル名が、「ＭＯＤＥＬ＿Ａ」、または、「ＭＯＤＥＬ＿Ｃ」であることである。タイトルおよびメッセージは、端末装置１００のユーザ（アプリケーションＡＰＰのユーザ）に対して報知すべき内容を示す。
【００３１】
図２（Ｂ）には、送信先リスト群ＬＧの一例が示されている。送信先リスト群ＬＧは、１個以上の送信先リストＬＴを含む。例えば、図２（Ｂ）の例では、送信先リスト群ＬＧは、送信先リストＬＴ１〜ＬＴ３を含む複数個の送信先リストＬＴを含む。各送信先リストＬＴは、１個以上の登録ＩＤを、通知先識別子として含む。例えば、送信先リストＬＴ１は、該複数個の端末装置のうち、仕向地が「日本」である端末装置の登録ＩＤを含む。送信先リストＬＴ２、ＬＴ３は、該複数個の端末装置のうち、アプリケーションＡＰＰによる制御対象のプリンタのモデル名が、「ＭＯＤＥＬ＿Ａ」、「ＭＯＤＥＬ＿Ｂ」である端末の登録ＩＤを含む。これらの送信先リストＬＴは、プッシュ通知データＰＤの送信先を指定するために用いられる。例えば、制御サーバ３００は、送信先リストＬＴを送信先として指定して、プッシュ通知データＰＤの送信指示をプッシュ通知サーバ４００に送信する。該送信指示を受信したプッシュ通知サーバ４００は、指定された送信先リストＬＴに含まれる１個以上の登録ＩＤによって識別される１個以上の端末装置に、それぞれ、プッシュ通知データＰＤを送信する。
【００３２】
なお、図１では、図示を省略するが、プリンタ２１０、２２０のユーザの端末装置１００と同様に、プリンタのユーザが利用する複数個の端末装置であって、コンピュータプログラムＰＧ１（アプリケーションＡＰＰ）がインストールされた複数個の端末装置が、制御サーバ３００およびプッシュ通知サーバ４００と通信可能に接続されている。これらの複数個の端末装置は、それぞれ、端末装置１００と同様の構成を備え、端末装置１００と同様に動作する。
【００３３】
Ａ−２．端末装置１００の動作
Ａ−２−１．属性情報送信処理
端末装置１００のアプリケーションＡＰＰ（ＣＰＵ１１０）は、起動されている際には、常時、属性情報送信処理を実行する。属性情報送信処理は、制御対象のプリンタに関する属性情報（以下、プリンタ属性情報とも呼ぶ）を、制御サーバ３００に送信する処理である。図３は、属性情報送信処理のフローチャートである。図４は、属性情報の一例を示す図である。図５は、アプリケーションＡＰＰのユーザインタフェース（ＵＩ）画面の一例を示す図である。
【００３４】
Ｓ１０５では、ＣＰＵ１１０は、制御対象のプリンタの属性が変更されたか否かを判断する。制御対象のプリンタの属性は、予め定められた属性であり、例えば、図４に示すように、制御対象のプリンタのモデル名、ファームウェアのバージョン、プリンタの仕向地、使用機能を含む。ファームウェアのバージョンは、制御対象のプリンタにインストールされているファームウェアのバージョンである。使用機能は、制御対象のプリンタで有効にされている機能である。使用機能は、例えば、図示しないクラウドサーバと協働して実行される印刷サービスや保存サービスを含む。印刷サービスは、クラウドサーバからダウンロードされるテンプレート画像データを利用して印刷画像データを生成し、該印刷画像データを用いて画像を印刷するサービスであり、例えば、年賀状印刷サービスである。保存サービスは、クラウドサーバにユーザの画像データ（例えば、端末装置１００を用いて撮影された画像データ）を保存し、該画像データを用いて画像を印刷するサービスである。図４に示す属性は一例であり、プリンタの他の属性を含んでも良い。他の属性は、例えば、プリンタの種類、例えば、インクジェット式のプリンタか電子写真式のプリンタか、あるいは、モノクロプリンタかカラープリンタかを含んでも良い。他の属性は、例えば、消耗品（インクやトナーなどの印刷材、用紙などの印刷媒体）の残量であっても良い。
【００３５】
例えば、本実施例では、ＣＰＵ１１０は、ユーザの指示に基づいて、制御対象のプリンタを変更できる。本実施例では、制御対象のプリンタは、１個であり、印刷データを送信して印刷を実行させるプリンタである。例えば、ＣＰＵ１１０は、プリンタ制御処理の実行中に、例えば、図５（Ａ）の選択画面ＳＷを表示部１７０に表示する。選択画面ＳＷは、制御対象のプリンタの選択を促すメッセージＭＳ１と、選択可能なプリンタに対応する選択ボタンＢＴ１、ＢＴ２と、を含む。ユーザによって押下された選択ボタンに対応するプリンタが、制御対象のプリンタとして選択される。このように、制御対象のプリンタが、第１のプリンタ２１０から第２のプリンタ２２０に変更された場合に、制御対象のプリンタの属性（例えば、プリンタのモデル名）が変更され得る。また、制御対象のプリンタにおいて、ファームウェアのアップデートが行われた場合に、制御対象のプリンタの属性（例えば、ファームウェアのバージョン）が変更され得る。また、制御対象のプリンタにおいて、ユーザの操作に基づいて、所定の設定が変更された場合に、制御対象のプリンタの属性（例えば、使用機能）が変更され得る。
【００３６】
制御対象のプリンタの属性が変更された場合には（Ｓ１０５：ＹＥＳ）、Ｓ１１０にて、ＣＰＵ１１０は、送信対象の属性情報を生成する。例えば、属性情報ＰＩを生成するために必要な情報（例えば、変更後のプリンタの属性）は、端末装置１００から制御対象のプリンタ（例えば、第１のプリンタ２１０）に属性要求が送信されることによって、制御対象のプリンタから取得される。図４に示す属性情報ＰＩは、登録ＩＤと、旧プリンタ属性情報と、新プリンタ属性情報と、を含む。登録ＩＤは、送信先の制御サーバ３００において、送信元の端末装置１００およびアプリケーションＡＰＰを特定するために用いられる。旧プリンタ属性情報は、変更前の制御対象のプリンタの属性を示す。新プリンタ属性情報は、変更後の制御対象のプリンタの属性を示す。
【００３７】
Ｓ１１５では、ＣＰＵ１１０は、不揮発性記憶装置１３０に、未送信の属性情報が登録されているか否かを判断する。未送信の属性情報は、過去に制御サーバ３００への送信が試行されたが、該送信が失敗した属性情報である。未送信の属性情報の登録は、後述するＳ１７０にて行われる。
【００３８】
未送信の属性情報が登録されている場合には（Ｓ１１５：ＹＥＳ）、Ｓ１２０にて、ＣＰＵ１１０は、送信対象の属性情報に対して、未送信の属性情報をマージして、マージ後の送信対象の属性情報を生成する。
【００３９】
図６は、属性情報のマージについて説明する図である。図６（Ａ）〜（Ｃ）には、未送信の属性情報ＰＩａ、マージ前の送信対象の属性情報ＰＩｂ、マージ後の送信対象の属性情報ＰＩｃが、それぞれ、図示されている。これらの属性情報ＰＩａ〜ＰＩｃの送信元の端末装置１００は同一であるので、これらの属性情報ＰＩａ〜ＰＩｃに含まれる登録ＩＤは、互いに等しい。未送信の属性情報ＰＩａは、制御対象のプリンタが、モデル名「ＭＯＤＥＬ＿Ａ」のプリンタからモデル名「ＭＯＤＥＬ＿Ｂ」のプリンタへと変更された際に、生成され、制御サーバ３００への送信が失敗した属性情報である。マージ前の送信対象の属性情報ＰＩｂは、制御対象のプリンタが、モデル名「ＭＯＤＥＬ＿Ｂ」のプリンタからモデル名「ＭＯＤＥＬ＿Ｃ」のプリンタへと変更された際に生成された属性情報である。このために、例えば、属性情報ＰＩａは、制御対象のプリンタのモデル名が、「ＭＯＤＥＬ＿Ａ」から「ＭＯＤＥＬ＿Ｂ」に変更されたことを示している。そして、属性情報ＰＩｂは、制御対象のプリンタのモデル名が、「ＭＯＤＥＬ＿Ｂ」から「ＭＯＤＥＬ＿Ｃ」に変更されたことを示している。
【００４０】
マージ後の送信対象の属性情報ＰＩｃは、属性情報ＰＩａ、ＰＩｂに基づいて、生成される。マージ後の送信対象の属性情報ＰＩｃは、制御対象のプリンタが、制御対象のプリンタが、モデル名「ＭＯＤＥＬ＿Ａ」のプリンタからモデル名「ＭＯＤＥＬ＿Ｃ」のプリンタへと変更されたと仮定した場合に、生成されるべき属性情報である、と言うことができる。例えば、属性情報ＰＩｃは、制御対象のプリンタのモデル名が、「ＭＯＤＥＬ＿Ａ」から「ＭＯＤＥＬ＿Ｃ」に変更されたことを示している。
【００４１】
マージ後の送信対象の属性情報（例えば、属性情報ＰＩｃ）が制御サーバ３００に送信される場合には、未送信の属性情報（例えば、属性情報ＰＩａ）は制御サーバ３００に送信される必要が無くなる。このために、Ｓ１２５では、ＣＰＵ１１０は、不揮発性記憶装置１３０に登録された未送信の属性情報を削除する。
【００４２】
未送信の属性情報が登録されていない場合には（Ｓ１１５：ＮＯ）、ＣＰＵ１１０は、Ｓ１２０、Ｓ１２５をスキップして、Ｓ１５０に処理を進める。
【００４３】
制御対象のプリンタの属性が変更されない場合には（Ｓ１０５：ＮＯ）、Ｓ１３０にて、ＣＰＵ１１０は、最後の未送信の属性情報の登録後、所定時間が経過したか否かを判断する。所定時間は、例えば、数秒、あるいは、数時間である。
【００４４】
所定時間が経過した場合には（Ｓ１３０：ＹＥＳ）、ＣＰＵ１１０は、Ｓ１４０に処理を進める。所定時間が経過していない場合には（Ｓ１３０：ＮＯ）、Ｓ１３２にて、ＣＰＵ１１０は、再送フラグが「ＯＮ」であるか否かを判断する。再送フラグは、後述する通知受信処理において「ＯＮ」に設定され得る。再送フラグが「ＯＮ」である場合には（Ｓ１３２：ＹＥＳ）、Ｓ１３５にて、ＣＰＵ１１０は、再送フラグを「ＯＦＦ」に設定して、Ｓ１４０に処理を進める。再送フラグが「ＯＦＦ」である場合には（Ｓ１３２：ＮＯ）、ＣＰＵ１１０は、Ｓ１０５に処理を戻す。
【００４５】
Ｓ１４０では、ＣＰＵ１１０は、未送信の属性情報が不揮発性記憶装置１３０に登録されているか否かを判断する。未送信の属性情報が登録されている場合には（Ｓ１４０：ＹＥＳ）、Ｓ１４５にて、ＣＰＵ１１０は、未送信の属性情報を、送信対象の属性情報として取得して、揮発性記憶装置１２０のバッファ領域に格納する。Ｓ１２５では、ＣＰＵ１１０は、不揮発性記憶装置１３０に登録された未送信の属性情報を削除する。未送信の属性情報が不揮発性記憶装置１３０に登録されていない場合には（Ｓ１４０：ＮＯ）、ＣＰＵ１１０は、Ｓ１０５に処理を戻す。
【００４６】
Ｓ１５０では、ＣＰＵ１１０は、送信対象の属性情報は、最後の送信成功属性情報と同じであるか否かを判断する。送信成功情報とは、過去に制御サーバ３００への送信が成功した属性情報である。例えば、制御対象のプリンタが、モデル名「ＭＯＤＥＬ＿Ａ」のプリンタからモデル名「ＭＯＤＥＬ＿Ｂ」のプリンタへと変更された際に、該変更を示す属性情報ＰＩ１の制御サーバ３００への送信に成功したと仮定する。その後に、制御対象のプリンタが、モデル名「ＭＯＤＥＬ＿Ｂ」のプリンタからモデル名「ＭＯＤＥＬ＿Ａ」のプリンタへと戻されたされた際に、該変更を示す属性情報ＰＩ２の制御サーバ３００への送信に失敗したと仮定する。その後に、再び、制御対象のプリンタが、モデル名「ＭＯＤＥＬ＿Ａ」のプリンタからモデル名「ＭＯＤＥＬ＿Ｂ」のプリンタへと変更された場合には、該変更を示す属性情報ＰＩ３は、上述した属性情報ＰＩ１と同じになり得る。この場合には、属性情報ＰＩ３を制御サーバ３００へ送信する必要はない。このために、送信対象の属性情報が、最後の送信成功属性情報と同じである場合には（Ｓ１５０：ＹＥＳ）、ＣＰＵ１１０は、送信対象の属性情報を送信するための後述するＳ１５５〜Ｓ１７０をスキップして、Ｓ１０５に処理を戻す。
【００４７】
送信対象の属性情報が、最後の送信成功属性情報と同じでない場合には（Ｓ１５０：ＮＯ）、Ｓ１５５にて、ＣＰＵ１１０は、送信対象の属性情報を、制御サーバ３００に送信する。属性情報は、例えば、ＨＴＴＰ（Hypertext Transfer Protocolの略）などの公知のプロトコルに従って送信される。
【００４８】
Ｓ１６０では、ＣＰＵ１１０は、送信対象の属性情報の送信に成功したか否かを判断する。例えば、属性情報の送信が成功した場合には、制御サーバ３００から属性情報の受信に基づくレスポンスが制御サーバ３００から端末装置１００に送信される。ＣＰＵ１１０は、所定時間内に当該レスポンスを受信した場合には、属性情報の送信に成功したと判断し、所定時間内に当該レスポンスを受信しない場合には、属性情報の送信に失敗したと判断する。送信の失敗は、例えば、インターネットＩＴ、ローカルエリアネットワークＬＮ、アクセスポイントＡＰのいずれかで障害が発生していること、あるいは、制御サーバ３００がメンテナンス等のために休止していることに起因して発生し得る。このレスポンスは、例えば、後述する送信先リスト変更処理における送信先リスト群ＬＧの変更成功、または、変更失敗の通知である。
【００４９】
属性情報の送信に成功した場合には（Ｓ１６０：ＹＥＳ）、Ｓ１６５にて、ＣＰＵ１１０は、送信に成功した送信対象の属性情報を、送信成功属性情報として不揮発性記憶装置１３０に登録する。これによって、上述したＳ１５０にて用いられる最後の送信成功属性情報が登録される。
【００５０】
属性情報の送信に失敗した場合には（Ｓ１６０：ＮＯ）、Ｓ１７０にて、ＣＰＵ１１０は、送信に失敗した送信対象の属性情報を、未送信の属性情報として不揮発性記憶装置１３０に登録する。これによって、上述したＳ１２０、Ｓ１４５にて用いられる未送信の属性情報が登録される。
【００５１】
送信成功属性情報または未送信の属性情報が登録されると、ＣＰＵ１１０は、Ｓ１０５に処理を戻す。
【００５２】
以上説明した属性情報送信処理によれば、図３のＳ１１５、Ｓ１２０、Ｓ１２５、図６から解るように、送信に失敗した未送信の属性情報ＰＩａが登録されている場合に、新たな送信対象の属性情報ＰＩｂが生成されると、属性情報ＰＩｂに属性情報ＰＩａをマージして得られる属性情報ＰＩｃが送信され、属性情報ＰＩａは送信されない。すなわち、この場合には、属性情報ＰＩａに含まれる新プリンタ属性情報は制御サーバ３００には送信されず、属性情報ＰＩｂおよび属性情報ＰＩｃに含まれる新プリンタ属性情報（すなわち、現時点での制御対象のプリンタの属性情報）のみが制御サーバ３００に送信される。
【００５３】
換言すれば、属性情報ＰＩａの制御サーバ３００への送信に失敗したために属性情報ＰＩａが端末装置１００に未送信であり、かつ、その後に制御対象のプリンタの属性が変更されたために送信対象の属性情報が属性情報ＰＩａから属性情報ＰＩｃに変更された場合に、属性情報ＰＩｃを制御サーバ３００に送信し、属性情報ＰＩａを制御サーバ３００に送信しない。この結果、属性情報が無駄に制御サーバ３００に送信されることを抑制することができる。
【００５４】
より具体的には、図６に示すように、端末装置１００は、制御対象のプリンタの属性（例えば、モデル名）が第５の属性（例えば、「ＭＯＤＥＬ＿Ａ」）から第６の属性（例えば、「ＭＯＤＥＬ＿Ｂ」）に変更された場合に、該変更を示す属性情報ＰＩａ（図６（Ａ））を制御サーバ３００へ送信する。そして、端末装置１００は、属性情報ＰＩａの送信が失敗した場合であって、その後に制御対象のプリンタの属性が第６の属性（例えば、「ＭＯＤＥＬ＿Ｂ」）から第７の属性（例えば、「ＭＯＤＥＬ＿Ｃ」）に変更された場合には、制御対象のデバイスの属性が第５の属性（例えば、「ＭＯＤＥＬ＿Ａ」）から第７の属性（例えば、「ＭＯＤＥＬ＿Ｃ」）に変更されたことを示す属性情報ＰＩｃを送信する。すなわち、この場合には、属性情報ＰＩａと属性情報ＰＩｂとがマージされて得られる属性情報ＰＩｃが制御サーバ３００に送信される。この結果、適切な属性情報ＰＩｃが制御サーバ３００に送信されるので、属性情報ＰＩａの送信が失敗した場合であっても、端末装置１００は、プッシュ通知サーバ４００から適切なプッシュ通知データＰＤを受信できる。
【００５５】
さらに、属性情報送信処理によれば、上述したように、一の属性情報の送信に失敗したために一の属性情報が未送信であり、かつ、その後に制御対象のプリンタの属性が変更されたために送信対象の属性情報が一の属性情報から他の属性情報に変更された場合に、一の属性情報の送信の失敗の直前に送信に成功した送信成功属性情報と他の属性情報とが一致するか否かが判断される（図３のＳ１５０）。送信成功属性情報と当該他の属性情報とが一致する場合には（図３のＳ１５０：ＹＥＳ）、当該他の属性情報は制御サーバ３００に送信されず、送信成功属性情報と当該他の属性情報とが一致しない場合には（図３のＳ１５０：ＮＯ）、当該他の属性情報が制御サーバ３００に送信される（図３のＳ１５５）。この結果、さらに、属性情報が無駄に送信されることを抑制することができる。
【００５６】
Ａ−２−２．通知受信処理
端末装置１００のＯＳ（ＣＰＵ１１０）は、通信ＩＦ１８０を介してプッシュ通知サーバ４００からプッシュ通知データＰＤ（図２（Ａ））を受信すると、該プッシュ通知データＰＤを、揮発性記憶装置１２０あるいは不揮発性記憶装置１３０上の指定領域に格納する。これによって、ＯＳは、受信されたプッシュ通知データＰＤを、アプリケーションＡＰＰに引き渡すことができる。
【００５７】
端末装置１００のアプリケーションＡＰＰ（ＣＰＵ１１０）は、上述した指定領域を監視しており、ＯＳによって該指定領域にプッシュ通知データＰＤが格納されると、通知受信処理を実行する。図７は、アプリケーションＡＰＰによる通知受信処理のフローチャートである。
【００５８】
Ｓ２１０では、ＣＰＵ１１０は、指定領域に格納されたプッシュ通知データＰＤを取得して、揮発性記憶装置１２０のバッファ領域に格納する。本ステップで取得されたプッシュ通知データＰＤを処理対象のプッシュ通知データＰＤとも呼ぶ。
【００５９】
Ｓ２２０では、ＣＰＵ１１０は、制御対象のプリンタの属性は、処理対象のプッシュ通知データＰＤの報知条件を満たすか否かを判断する。制御対象のプリンタの属性を示す情報は、端末装置１００から制御対象のプリンタ（例えば、第１のプリンタ２１０）に属性要求が送信されることによって、制御対象のプリンタから取得される。プッシュ通知データＰＤの報知条件は、上述したように、プッシュ通知データＰＤに含まれる条件情報によって示される（図２（Ａ））。例えば、図２（Ａ）の例では、端末装置１００の制御対象のプリンタ（例えば、第１のプリンタ２１０）のモデル名が、「ＭＯＤＥＬ＿Ａ」、または、「ＭＯＤＥＬ＿Ｃ」である場合には、報知条件が満たされると判断される。
【００６０】
処理対象のプッシュ通知データＰＤの報知条件が満たされる場合には（Ｓ２２０：ＹＥＳ）、Ｓ２３０にて、ＣＰＵ１１０は、処理対象のプッシュ通知データＰＤに基づいて、報知画面ＮＷを表示部１７０に表示する。報知画面ＮＷは、ユーザに情報を報知するための画面である。図５（Ｂ）には、報知画面ＮＷの一例が示されている。図５（Ｂ）の報知画面ＮＷは、図２（Ａ）のプッシュ通知データＰＤに基づく。この報知画面ＮＷは、アイコンＡＩと、タイトルＴＴと、ボタンＢＴａ、ＢＴｂと、を含む。アイコンＡＩは、プッシュ通知データＰＤに含まれる通知先識別子（登録ＩＤ）によって示されるアプリケーションＡＰＰを示すアイコンである。タイトルＴＴは、プッシュ通知データＰＤに含まれるタイトルである。報知画面ＮＷにおいて「表示」のボタンＢＴａがユーザによって押下されると、ＣＰＵ１１０は、プッシュ通知データＰＤに含まれるメッセージを表示する（図示省略）。報知画面ＮＷにおいて「閉じる」のボタンＢＴｂがユーザによって押下されると、ＣＰＵ１１０は、報知画面ＮＷを消去する。
【００６１】
処理対象のプッシュ通知データＰＤの報知条件が満たされない場合には（Ｓ２２０：ＮＯ）、Ｓ２４０にて、ＣＰＵ１１０は、処理対象のプッシュ通知データＰＤを削除する。この場合には、プッシュ通知データＰＤに基づく報知画面ＮＷは、表示されない。
【００６２】
本実施例では、上述した属性情報送信処理（図３）において、端末装置１００から属性情報が送信され、該属性情報を用いて選択されたプッシュ通知データＰＤのみが、端末装置１００に送信される。このために、属性情報の送信が成功している場合には、報知条件が満たされる可能性が高い。したがって、報知条件が満たされない場合には、端末装置１００から制御サーバ３００への属性情報の送信が失敗している可能性が高い。そして、現時点では、端末装置１００は、プッシュ通知サーバ４００からプッシュ通知データＰＤを受信できているために、少なくとも端末装置１００からインターネットＩＴまでの間には、通信障害は発生していない。このために、現時点で、端末装置１００が、属性情報を制御サーバ３００へ再度送信すれば、該属性情報の送信に成功する可能性が比較的高い。そこで、Ｓ２５０では、ＣＰＵ１１０は、属性情報の再送フラグをＯＮに設定する。これによって、上述した属性情報送信処理において、未送信の属性情報が直ちに制御サーバ３００へ送信される（図３のＳ１３２〜Ｓ１４５）。この結果、未送信の属性情報が適切に制御サーバ３００に送信され得る。Ｓ２３０あるいはＳ２５０の後、通知受信処理は、終了される。
【００６３】
以上説明した通知受信処理によれば、端末装置は、報知条件を示す条件情報と、制御対象のプリンタの属性と、に基づいて、受信済みのプッシュ通知データＰＤの報知条件が満たされるか否かを判断し（図７のＳ２２０）、報知条件が満たされる場合に（図７のＳ２２０：ＹＥＳ）、該プッシュ通知データＰＤに基づくユーザへの報知を実行し（Ｓ２３０）、報知条件が満たされない場合に（図７のＳ２２０：ＮＯ）、該プッシュ通知データＰＤに基づくユーザへの報知を実行しない。例えば、特定の属性情報（例えば、制御対象のプリンタが「ＭＯＤＥＬ＿Ａ」の第１のプリンタ２１０であることを示す属性情報）が制御サーバ３００に送信された後に、制御対象のプリンタの属性が変更されたとする（例えば、制御対象のプリンタが「ＭＯＤＥＬ＿Ｂ」の第２のプリンタ２２０に変更されたとする）。その後に、例えば、当該変更後の属性情報が制御サーバ３００に送信される前に、変更前の特定の属性情報を用いて選択されるプッシュ通知データＰＤ（例えば、第１のプリンタ２１０に関するプッシュ通知データＰＤ）が端末装置１００に受信されたとしても、端末装置１００は、Ｓ２２０にて該プッシュ通知データＰＤの報知条件は満たされないと判断する。したがって、端末装置１００は、該プッシュ通知データＰＤに基づくユーザへの報知を実行しない。この結果、もし、端末装置１００は、自身の制御対象のプリンタの属性から見て、適切でないプッシュ通知データＰＤを受信したとしても、該プッシュ通知データＰＤに基づくユーザへの報知を実行しない。したがって、ユーザにとって不要な報知がなされることを抑制できる。
【００６４】
Ａ−３．制御サーバ３００の動作
制御サーバ３００（ＣＰＵ３１０）は、起動されている際には、常時、送信先リスト変更処理を実行する。送信先リスト変更処理は、端末装置１００から属性情報を受信した場合に、該属性情報に基づいて、プッシュ通知サーバ４００の送信先リスト群ＬＧの少なくとも１個の送信先リストＬＴを変更する処理である。送信先リスト群ＬＧを変更することで、その後のプッシュ通知データＰＤの送信先を変更することができる。図８は、送信先リスト変更処理のフローチャートである。図９は、変更指示の一例を示す図である。
【００６５】
Ｓ３０５では、ＣＰＵ３１０は、コンピュータプログラムＰＧ１がインストールされた端末装置（例えば、端末装置１００）から属性情報を受信したか否かを判断する。属性情報は、上述した属性情報送信処理において端末装置から制御サーバ３００に送信される。
【００６６】
属性情報が受信された場合には（Ｓ３０５：ＹＥＳ）、Ｓ３１０にて、ＣＰＵ３１０は、受信された属性情報を解析して、送信対象の変更指示を生成する。図９の変更指示ＵＤは、登録ＩＤと、削除リストを示す情報と、追加リストを示す情報と、を含む。削除リストは、送信先リスト群ＬＧに含まれる送信先リストＬＴのうち、該登録ＩＤを削除すべきリストである。追加リストは、送信先リスト群ＬＧに含まれる送信先リストＬＴのうち、該登録ＩＤを追加すべきリストである。図９の変更指示ＵＤでは、登録ＩＤとして、ＴＩＤ＿Ｃが指定されている。図９の変更指示ＵＤでは、削除リストとして送信先リストＬＴ２（図２（Ｂ））が指定され、追加リストとして送信先リストＬＴ３（図２（Ｂ））および送信先リストＬＴ５（図２（Ｂ）では図示省略）が指定されている。すなわち、図９の変更指示ＵＤは、送信先リストＬＴ２からＴＩＤ＿Ｃを削除し、送信先リストＬＴ３、ＬＴ５にＴＩＤ＿Ｃをそれぞれ追加することを指示する変更指示である。
【００６７】
例えば、図４の属性情報ＰＩは、属性情報ＰＩの送信元の端末装置の制御対象のプリンタのモデル名が「ＭＯＤＥＬ＿Ａ」から「ＭＯＤＥＬ＿Ｂ」に変更されたことを示している。このために、制御対象のプリンタのモデル名が「ＭＯＤＥＬ＿Ａ」である端末装置の登録ＩＤのリストである送信先リストＬＴ２（図２（Ｂ））から、属性情報に含まれる登録ＩＤ（すなわち、属性情報の送信元の端末装置の登録ＩＤ）である「ＴＩＤ＿Ｃ」を削除すべきである。そして、制御対象のプリンタのモデル名が「ＭＯＤＥＬ＿Ｃ」である端末装置の登録ＩＤのリストである送信先リストＬＴ３（図２（Ｂ））に、該登録ＩＤ「ＴＩＤ＿Ｃ」を追加すべきである。また、図４の属性情報ＰＩは、属性情報ＰＩの送信元の端末装置の制御対象のプリンタの使用機能である「クラウド保存」機能が無効から有効に変更されたことを示している。このために、制御対象のプリンタにおいて「クラウド保存」が有効にされている端末装置の登録ＩＤのリストである送信先リストＬＴ５（図２（Ｂ）では図示省略）に、該登録ＩＤ「ＴＩＤ＿Ｃ」を追加すべきである。このために、この場合には、図９の変更指示ＵＤが生成される。
【００６８】
Ｓ３１５では、ＣＰＵ３１０は、不揮発性記憶装置３３０に、送信対象の変更指示と同一の登録ＩＤを含む失敗指示が登録されているか否かを判断する。失敗指示は、過去にプッシュ通知サーバ４００へ送信された変更指示であり、かつ、それに基づく送信先リスト群ＬＧの変更に失敗した変更指示である。送信先リスト群ＬＧの変更の失敗は、例えば、変更指示がプッシュ通知サーバ４００に受信されない場合、あるいは、該変更指示がプッシュ通知サーバ４００に受信されたが、プッシュ通知サーバ４００が送信先リスト群ＬＧの変更に失敗した場合と、を含む。失敗指示の登録は、後述するＳ３８５にて行われる。
【００６９】
失敗指示が登録されている場合には（Ｓ３１５：ＹＥＳ）、Ｓ３２０にて、ＣＰＵ３１０は、送信対象の変更指示に対して、失敗指示をマージして、マージ後の送信対象の属性情報を生成する。
【００７０】
図１０は、属性情報のマージについて説明する図である。図１０（Ａ）〜（Ｃ）には、失敗指示ＵＤａ、マージ前の送信対象の変更指示ＵＤｂ、マージ後の送信対象の変更指示ＵＤｃが、それぞれ、図示されている。これらの指示ＵＤａ〜ＵＤｃに含まれる登録ＩＤは、互いに等しい。失敗指示ＵＤａは、登録ＩＤ「ＴＩＤ＿Ｃ」を、送信先リストＬＴ２から削除し、送信先リストＬＴ３、ＬＴ５に追加するための指示である。マージ前の送信対象の変更指示ＵＤｂは、登録ＩＤ「ＴＩＤ＿Ｃ」を、送信先リストＬＴ３から削除し、送信先リストＬＴ４、ＬＴ６に追加するための指示である。
【００７１】
マージ後の送信対象の変更指示ＵＤｃは、失敗指示ＵＤａと変更指示ＵＤｂとに基づいて、生成される。マージ後の送信対象の変更指示ＵＤｃは、失敗指示ＵＤａに基づいて送信先リスト群ＬＧが変更され、その後に変更指示ＵＤｂに基づいて送信先リスト群ＬＧが変更されたと仮定した場合に実現される送信先リスト群ＬＧを一つの変更指示で実現するように生成される。図１０（Ｂ）の変更指示ＵＤｂに図１０（Ａ）の失敗指示ＵＤａをマージして得られる変更指示ＵＤｃは、登録ＩＤ「ＴＩＤ＿Ｃ」を、送信先リストＬＴ２から削除し、送信先リストＬＴ４、ＬＴ５、ＬＴ６に追加するための指示である。
【００７２】
マージ後の送信対象の変更指示がプッシュ通知サーバ４００に送信される場合には、失敗指示はプッシュ通知サーバ４００に送信される必要が無くなる。このために、Ｓ３２５では、ＣＰＵ３１０は、不揮発性記憶装置３３０に登録された失敗指示を削除する。
【００７３】
失敗指示が登録されていない場合には（Ｓ３１５：ＮＯ）、ＣＰＵ３１０は、Ｓ３２０、Ｓ３２５をスキップして、Ｓ３５５に処理を進める。
【００７４】
属性情報が受信されない場合には（Ｓ３０５：ＮＯ）、Ｓ３３０にて、ＣＰＵ３１０は、最後の失敗指示の登録後、所定時間が経過したか否かを判断する。所定時間は、例えば、数秒、あるいは、数時間である。
【００７５】
所定時間が経過した場合には（Ｓ３３０：ＹＥＳ）、ＣＰＵ３１０は、Ｓ３３５に処理を進める。所定時間が経過していない場合には（Ｓ３３０：ＮＯ）、ＣＰＵ３１０は、Ｓ３０５に処理を戻す。
【００７６】
Ｓ３３５では、ＣＰＵ３１０は、失敗指示が不揮発性記憶装置３３０に登録されているか否かを判断する。失敗情報が登録されている場合には（Ｓ３３５：ＹＥＳ）、Ｓ３４０にて、ＣＰＵ３１０は、失敗指示を、送信対象の変更指示として取得して、揮発性記憶装置３２０のバッファ領域に格納する。Ｓ３２５では、ＣＰＵ３１０は、不揮発性記憶装置３３０に登録された失敗指示を削除する。失敗指示が不揮発性記憶装置３３０に登録されていない場合には（Ｓ３３５：ＮＯ）、ＣＰＵ３１０は、Ｓ３０５に処理を戻す。
【００７７】
Ｓ３５５では、ＣＰＵ３１０は、送信対象の変更指示を、プッシュ通知サーバ４００に送信する。変更指示は、例えば、ＨＴＴＰ（Hypertext Transfer Protocolの略）などの公知のプロトコルに従って送信される。
【００７８】
Ｓ３６０では、ＣＰＵ３１０は、プッシュ通知サーバ４００において変更指示に基づく送信先リスト群ＬＧの変更が成功したか否かを判断する。例えば、送信先リスト群ＬＧの変更が成功した場合には、送信先リスト群ＬＧの変更が成功したことを示すレスポンスがプッシュ通知サーバ４００から制御サーバ３００に送信される。ＣＰＵ３１０は、所定時間内に当該レスポンスを受信した場合には、送信先リスト群ＬＧの変更が成功したと判断し、所定時間内に当該レスポンスを受信しない場合には、送信先リスト群ＬＧの変更が失敗したと判断する。
【００７９】
送信先リスト群ＬＧの変更が成功した場合には（Ｓ３６０：ＹＥＳ）、Ｓ３６５にて、ＣＰＵ３１０は、変更の成功を属性情報の送信元の端末装置に通知する。
【００８０】
Ｓ３７０では、ＣＰＵ３１０は、今回の送信先リスト群ＬＧの変更前に、Ｓ３０５で受信された属性情報の送信元の端末装置とは異なる端末装置に送信済みのプッシュ通知データＰＤの中から、属性情報の送信元の端末装置に遡及して送信すべきプッシュ通知データＰＤを特定する。例えば、図９の変更指示ＵＤに基づいて送信先リスト群ＬＧが変更された場合には、属性情報の送信元の端末装置の登録ＩＤは、送信先リストＬＴ３に新たに追加される。このために、例えば、送信先リストＬＴ３宛に送信済みのプッシュ通知データＰＤのうち、所定時間（例えば、１週間）前から現在までの間に送信されたプッシュ通知データＰＤが、遡及して送信すべきプッシュ通知データＰＤとして特定される。変形例としては、所定時間前から現在までの間に送信されたプッシュ通知データＰＤのうち、特定種類のプッシュ通知データＰＤが、遡及して送信すべきプッシュ通知データＰＤとして特定されても良い。特定種類のプッシュ通知データＰＤは、例えば、プリンタのファームウェアのアップデータのお知らせなどの重要な通知のためのプッシュ通知データＰＤである。
【００８１】
Ｓ３７０では、ＣＰＵ３１０は、特定されたプッシュ通知データＰＤを属性情報の送信元の端末装置に送信させる送信指示を、プッシュ通知サーバ４００に送信する。この場合には、ＣＰＵ３１０は、送信先リストＬＴ３が宛先として指定するのではなく、属性情報の送信元の端末装置の登録ＩＤを宛先として指定する。この結果、プッシュ通知サーバ４００から、属性情報の送信元の端末装置だけに、特定されたプッシュ通知データＰＤが送信される。属性情報の送信元の端末装置が、これらのプッシュ通知データＰＤを受信すると、図７の通知受信処理が行われる。このとき、通常は、報知条件が満たされるので、これらのプッシュ通知データＰＤに基づく報知画面（図５（Ｂ）参照）が、属性情報の送信元の端末装置に表示される。
【００８２】
送信先リスト群ＬＧの変更が失敗した場合には（Ｓ３６０：ＮＯ）、Ｓ３８０にて、ＣＰＵ３１０は、変更の失敗を属性情報の送信元の端末装置に通知する。Ｓ３８５では、ＣＰＵ３１０は、Ｓ３５５にて送信した変更指示を、失敗指示として不揮発性記憶装置３３０に登録する。これによって、上述したＳ３２０、Ｓ３４０にて用いられる失敗指示が登録される。Ｓ３７５、Ｓ３８５の後は、ＣＰＵ３１０は、Ｓ３０５に処理を戻す。
【００８３】
以上説明した送信先リスト変更処理によれば、上述したようにＳ３８０にて、属性情報の送信元の端末装置（例えば、端末装置１００）に遡及して送信すべきプッシュ通知データＰＤの送信指示が、制御サーバ３００からプッシュ通知サーバ４００に送信される。したがって、端末装置１００は、例えば、制御対象のデバイスのモデル名が「ＭＯＤＥＬ＿Ａ」から「ＭＯＤＥＬ＿Ｂ」に変更された場合に、変更後の属性（例えば「ＭＯＤＥＬ＿Ｂ」）に関する属性情報をサーバに送信したとする。この場合に、端末装置１００は、変更後の属性（例えば「ＭＯＤＥＬ＿Ｂ」）に関する属性情報の送信前に、モデル名が「ＭＯＤＥＬ＿Ｂ」であるプリンタを制御対象とする他の端末装置が受信済みであり、かつ、端末装置１００が未受信であるプッシュ通知データＰＤを、変更後の属性（例えば「ＭＯＤＥＬ＿Ｂ」）に関する属性情報の送信後に受信できる。この結果、受信すべきプッシュ通知データＰＤが受信されない不都合を抑制できる。
【００８４】
さらに、送信先変更処理によれば、制御サーバ３００は、属性情報に基づく変更指示を送信する際に、失敗指示が登録されていない場合には（Ｓ３１５：ＮＯ）、そのまま変更指示を送信し（Ｓ３５５）、失敗指示が登録されている場合には（Ｓ３１５：ＹＥＳ）、該失敗指示をマージした後の変更指示を送信する（Ｓ３２０、Ｓ３５５）。換言すれば、制御サーバ３００は、送信先リスト群ＬＧを、第１のリスト群から第２のリスト群に変更する第１の変更指示の送信後に、さらに、変更指示を送信する際に、第１の変更指示に基づくリストの変更が成功した場合には、当該第２のリスト群を第３のリスト群に変更する第２の変更指示を送信し、第１の変更指示に基づくリスト群の変更が失敗した場合には、第１のリストを第３のリストに変更する第３の変更指示を送信する。この結果、変更指示に基づくリスト群の変更が失敗した場合であっても、その後に適切な変更指示を送信することで、送信先リスト群ＬＧを適切に変更できる。したがって、適切な送信先にプッシュ通知データが送信される。
【００８５】
Ａ−４．システム１０００の具体的な動作例
図１１は、システム１０００の動作例を示すシーケンス図である。例えば、端末装置１００において、アプリケーションＡＰＰによる制御対象のプリンタは、「ＭＯＤＥＬ＿Ａ」の第１のプリンタ２１０であったとする。ここで、Ｓ２にて、「ＭＯＤＥＬ＿Ａ」のプリンタ（例えば、第１のプリンタ２１０）に関する情報を通知すべく、制御サーバ３００からプッシュ通知サーバ４００に、送信先リストＬＴ２（図２（Ｂ））を送信先として指定したプッシュ通知送信指示が送信される。端末装置１００の登録ＩＤは、送信先リストＬＴ２に含まれる。このため、Ｓ４にて、プッシュ通知サーバ４００から端末装置１００に、Ｓ２のプッシュ通知送信指示に基づくプッシュ通知データＰＤが送信される。
【００８６】
また、Ｓ６にて、「ＭＯＤＥＬ＿Ｂ」のプリンタ（例えば、第２のプリンタ２２０）に関する情報を通知すべく、制御サーバ３００からプッシュ通知サーバ４００に、送信先リストＬＴ３（図２（Ｂ））を送信先として指定したプッシュ通知送信指示が送信される。端末装置１００の登録ＩＤは、送信先リストＬＴ３に含まれない。このため、プッシュ通知サーバ４００から端末装置１００に、Ｓ６のプッシュ通知送信指示に基づくプッシュ通知データＰＤは送信されない。
【００８７】
このように、制御対象のプリンタが「ＭＯＤＥＬ＿Ａ」の第１のプリンタ２１０である場合には、端末装置１００は、「ＭＯＤＥＬ＿Ａ」のプリンタに関するプッシュ通知データＰＤを受信し、「ＭＯＤＥＬ＿Ｂ」のプリンタに関するプッシュ通知データＰＤを受信しない。
【００８８】
ここで、Ｓ８にて、端末装置１００は、ユーザの指示に基づいて、アプリケーションＡＰＰによる制御対象のプリンタを、「ＭＯＤＥＬ＿Ａ」の第１のプリンタ２１０から「ＭＯＤＥＬ＿Ｂ」の第２のプリンタ２２０に変更したとする。この場合には、図３の属性情報送信処理において、制御対象のプリンタの属性が変更されたと判断されるので（図３のＳ１０５にてＹＥＳ）、属性情報が生成され（図３のＳ１１０）、該属性情報が、制御サーバ３００に送信される（図３のＳ１５５）。したがって、図１１のＳ１０にて、属性情報（例えば、図４の属性情報ＰＩ）が、端末装置１００から制御サーバ３００に送信される。
【００８９】
制御サーバ３００は、属性情報を受信すると（図８のＳ３０５にてＹＥＳ）、送信先リスト群ＬＧの変更指示を生成し（図８のＳ３１０）、該変更指示をプッシュ通知サーバ４００に送信する（図８のＳ３５５）。したがって、図１１のＳ１２にて、送信先リスト群ＬＧの変更指示（例えば、図９の変更指示ＵＤ）が制御サーバ３００からプッシュ通知サーバ４００に送信される。Ｓ１４では、変更指示ＵＤを受信したプッシュ通知サーバ４００は、変更指示ＵＤに基づいて送信先リスト群ＬＧを変更する。例えば、端末装置１００の登録ＩＤが、リストＬＴ２から削除され、送信先リストＬＴ３宛に追加される。Ｓ１６では、プッシュ通知サーバ４００から制御サーバ３００に変更成功の通知が送信され、Ｓ１７では、制御サーバ３００から端末装置１００に変更成功の通知が送信される（図８のＳ３６０にてＹＥＳ、Ｓ３６５）。
【００９０】
Ｓ１８では、遡及して送信すべき「ＭＯＤＥＬ＿Ｂ」のプリンタに関するプッシュ通知データＰＤの送信指示が、端末装置１００の登録ＩＤを送信先として指定して、制御サーバ３００からプッシュ通知サーバ４００に送信される（図８のＳ３７５）。Ｓ２０にて、プッシュ通知サーバ４００から端末装置１００に、Ｓ１８のプッシュ通知送信指示に基づくプッシュ通知データＰＤが送信される。
【００９１】
その後に、Ｓ２２にて、「ＭＯＤＥＬ＿Ａ」のプリンタ（例えば、第１のプリンタ２１０）に関する情報を通知すべく、制御サーバ３００からプッシュ通知サーバ４００に、送信先リストＬＴ２（図２（Ｂ））を送信先として指定したプッシュ通知送信指示が送信される。送信先リスト群ＬＧの変更後に、端末装置１００の登録ＩＤは、送信先リストＬＴ２に含まれない。このため、プッシュ通知サーバ４００から端末装置１００に、Ｓ２２のプッシュ通知送信指示に基づくプッシュ通知データＰＤは送信されない。
【００９２】
また、Ｓ２４にて、「ＭＯＤＥＬ＿Ｂ」のプリンタ（例えば、第２のプリンタ２２０）に関する情報を通知すべく、制御サーバ３００からプッシュ通知サーバ４００に、送信先リストＬＴ３（図２（Ｂ））を送信先として指定したプッシュ通知送信指示が送信される。送信先リスト群ＬＧの変更後は、端末装置１００の登録ＩＤは、送信先リストＬＴ３に含まれる。このため、Ｓ２６にて、プッシュ通知サーバ４００から端末装置１００に、Ｓ２４のプッシュ通知送信指示に基づくプッシュ通知データＰＤが送信される。
【００９３】
このように、制御対象のプリンタが「ＭＯＤＥＬ＿Ｂ」の第２のプリンタ２２０である場合には、端末装置１００は、「ＭＯＤＥＬ＿Ａ」のプリンタに関するプッシュ通知データＰＤを受信せず、「ＭＯＤＥＬ＿Ｂ」のプリンタに関するプッシュ通知データＰＤを受信する。
【００９４】
以上説明した本実施例によれば、端末装置１００は、属性情報を制御サーバ３００に送信し（図１１のＳ１０）、外部装置である制御サーバ３００において端末装置１００がプッシュ通知データの送信先として決定された場合にプッシュ通知データＰＤを受信する（図１１のＳ２０、Ｓ２６）。例えば、制御サーバ３００は、端末装置１００の登録ＩＤや該登録ＩＤを含む送信先リストＬＴを送信先として指定することによって、端末装置１００をプッシュ通知データＰＤの送信先として指定する。送信先リストＬＴは、端末装置１００から送信される属性情報に基づいて変更される（図１１のＳ１０、Ｓ１２）ので、プッシュ通知データＰＤの送信先は、端末装置１００から送信された属性情報を用いて決定される、と言うことができる。
【００９５】
そして、端末装置１００は、制御対象のプリンタが、第１の属性（例えば、モデル名「ＭＯＤＥＬ＿Ａ」）を有し、第２の属性（例えば、モデル名「ＭＯＤＥＬ＿Ｂ」）を有しない第１のプリンタ２１０である場合には、第１の属性に関する第１種のプッシュ通知データを受信し（図１１のＳ４）、第２の属性に関する第２種のプッシュ通知データを受信しない。そして、端末装置１００は、制御対象のプリンタが、第２の属性（例えば、モデル名「ＭＯＤＥＬ＿Ｂ」）を有し、第１の属性（例えば、モデル名「ＭＯＤＥＬ＿Ａ」）を有しない第２のプリンタ２２０である場合には、第２の属性に関する第２種のプッシュ通知データを受信し（図１１のＳ２６）、第１の属性に関する第１種のプッシュ通知データを受信しない。この結果、端末装置１００は、制御対象のプリンタの属性に応じた適切なプッシュ通知データを選択的に受信できる。したがって、端末装置１００において、不要なプッシュ通知データの受信を抑制できる。この結果、端末装置１００のメモリやＣＰＵ、ローカルエリアネットワークＬＮの回線などが無駄に使用されることを抑制できる。
【００９６】
また、制御サーバ３００の観点から換言すれば、制御サーバ３００は、端末装置から送信される属性情報を用いて送信先リスト群ＬＧを変更しているので、制御サーバ３００は、端末装置から送信される属性情報を用いて、プッシュ通知データＰＤの送信先を決定している、と言うことができる。そして、制御サーバ３００は、端末装置１００の制御対象のプリンタが第１の属性（例えば、モデル名「ＭＯＤＥＬ＿Ａ」）を有し、第２の属性（例えば、モデル名「ＭＯＤＥＬ＿Ｂ」）を有しない場合には、端末装置１００を、第１の属性に関する第１種のプッシュ通知データの送信先として決定し、第２の属性に関する第２種のプッシュ通知データの送信先として決定しない。また、制御サーバ３００は、制御対象のプリンタが第２の属性を有し第１の属性を有しない場合には、端末装置１００を、第２種のプッシュ通知データの送信先として決定し、第１種のプッシュ通知データの送信先として決定しない。したがって、端末装置１００に、不要なプッシュ通知データを送信することを抑制できる。
【００９７】
さらに、上記実施例では、制御対象のプリンタが第１のプリンタ２１０から第２のプリンタ２２０に変更されたことを契機に、第２のプリンタ２２０の属性（例えば、モデル名）に関する属性情報を制御サーバ３００に送信する（図１１のＳ８、Ｓ１０）。この結果、適切なタイミングで属性情報が制御サーバ３００に送信される。この結果、端末装置１００は、より適切なプッシュ通知データＰＤを選択的に受信できる。
【００９８】
さらに、制御サーバ３００は、決定済みの送信先（例えば、送信先リストＬＴによって指定される送信先）にプッシュ通知データＰＤを送信するプッシュ通知送信指示をプッシュ通知サーバ４００に送信する（図１１のＳ２、Ｓ６、Ｓ２２、Ｓ２４）。プッシュ通知サーバ４００は、プッシュ通知送信指示に従って、送信先にプッシュ通知データを送信する（図１１のＳ４、Ｓ２０、Ｓ２６）。この結果、プッシュ通知サーバ４００が不要なプッシュ通知データＰＤを送信することを抑制できる。
【００９９】
Ｃ．変形例：
（１）上記実施例では、端末装置１００のアプリケーションＡＰＰによる制御対象のデバイスは、プリンタである。これに代えて、制御対象のデバイスの全部または一部は、他の種類のデバイス、例えば、スキャナ、複合機、デジタルカメラであっても良い。例えば、アプリケーションＡＰＰは、例えば、スキャナを制御して、スキャンデータを生成させ、該スキャンデータを取得するスキャナ制御処理を実行しても良い。この場合には、制御対象のスキャナの属性は、例えば、モデル名、読取解像度、スキャンデータをクラウドサーバに保存する機能が有効か否かなどを含み得る。
【０１００】
（２）図３の属性情報送信処理で送信される属性情報は、図４の属性情報ＰＩのように、旧プリンタ属性情報と、新プリンタ属性情報と、を含むが、新プリンタ属性情報だけを含んでも良い。この場合には、例えば、制御サーバ３００は、直前に送信された属性情報を保存しておき、直前に送信された属性情報を旧プリンタ属性情報として、新たに送信された属性情報を新プリンタ属性情報として、変更指示を作成すれば良い。
【０１０１】
（３）上記実施例では、プッシュ通知サーバ４００の不揮発性記憶装置４３０に送信先リスト群ＬＧが格納されている。これに代えて、制御サーバ３００の不揮発性記憶装置３３０に送信先リスト群ＬＧが格納されていても良い。この場合には、制御サーバ３００が、属性情報に基づいて送信先リスト群ＬＧを変更すれば良い。そして、制御サーバ３００は、例えば、送信先リストＬＴ２を送信先としてプッシュ通知データＰＤを送信すべき場合には、自身が保持するリストＬＴ２に記録された全ての登録ＩＤを送信先として指定して、プッシュ通知送信指示をプッシュ通知サーバ４００に送信すれば良い。
【０１０２】
（４）図３の属性情報送信処理は、適宜に変更され得る。例えば、属性情報のマージ（図３のＳ１２０）は行わなくても良い。例えば、端末装置１００は、未送信の属性情報がある場合には、次に送信すべき属性情報が生成されたとしても、必ず未送信の属性情報の送信が成功するまで、未送信の属性情報の制御サーバ３００への送信を繰り返しても良い。そして、端末装置１００は、未送信の属性情報の送信が成功した後に、次に送信すべき属性情報を制御サーバ３００へ送信しても良い。
【０１０３】
また、図３のＳ１６０では、端末装置１００は、属性情報の送信が成功したか否かを判断している。これに代えて、Ｓ１６０では、端末装置１００は、制御サーバ３００からの通知に従って、属性情報に基づく送信先リスト群ＬＧの変更が成功したか否かを判断しても良い。そして、送信先リスト群ＬＧの変更が成功した場合に、Ｓ１６５にて該属性情報を、変更成功属性情報として登録し、送信先リスト群ＬＧの変更が失敗した場合に、Ｓ１７０にて、該属性情報を、変更失敗属性情報として登録しても良い。そして、図３の他のステップでは、未送信の属性情報に代えて変更失敗属性情報が用いられ、送信成功属性情報に代えて変更成功情報が用いられても良い。
【０１０４】
また、図３のＳ１５０の判断は省略されてもよい。この場合には、Ｓ１６５の送信成功属性情報の登録も省略されても良い。
【０１０５】
（５）図７の通知受信処理は、適宜に変更されても良い。例えば、端末装置１００は、報知条件を満たすか否かを判断することなく、受信された全てのプッシュ通知データＰＤに基づいて、ユーザへの報知を行っても良い。この場合には、プッシュ通知データＰＤは、条件情報を含まなくても良い。また、プッシュ通知データＰＤに基づくユーザへの報知は、アプリケーションＡＰＰに代えて、ＯＳによって行われても良い。
【０１０６】
（６）図８の送信先リスト変更処理は、適宜に変更されても良い。例えば、変更指示のマージ（図８のＳ３２０）は行わなくても良い。例えば、端末装置１００は、失敗指示がある場合には、次に送信すべき変更指示が生成されたとしても、必ず失敗指示による送信先リスト群ＬＧの変更が成功するまで、送信指示のプッシュ通知サーバ４００への送信を繰り返しても良い。そして、端末装置１００は、失敗指示に基づく送信先リスト群ＬＧの変更が成功した後に、次に送信すべき変更指示をプッシュ通知サーバ４００へ送信しても良い。
【０１０７】
（７）制御サーバ３００とプッシュ通知サーバ４００とは別体のサーバではなく、１個のサーバであっても良い。この場合には、１個のサーバが、端末装置１００から送信される属性情報を受信し、該サーバが自身が保持する送信先リスト群ＬＧを属性情報に基づいて更新し、該サーバが送信先リスト群ＬＧを用いてプッシュ通知データＰＤを端末装置１００に送信しても良い。
【０１０８】
また、制御サーバ３００とプッシュ通知サーバ４００とは、それぞれ、１個の計算機ではなく、通信可能に接続された複数個の計算機から構成されるいわゆるクラウドサーバであっても良い。
【０１０９】
（８）上記実施例では、プッシュ通知データＰＤに基づくユーザへの情報の報知は、表示部１７０にテキストを表示することによって行われる。これに代えて、プッシュ通知データＰＤに基づくユーザへの情報の報知は、端末装置１００のスピーカーから出力される音声情報で行われても良いし、表示部１７０に表示される画像情報（ＪＰＥＧデータなど）で行われても良い。
【０１１０】
（９）上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部をハードウェアに置き換えるようにしてもよい。
【０１１１】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【０１１２】
１００…端末装置、１１０…ＣＰＵ、１２０…揮発性記憶装置、１３０…不揮発性記憶装置、１６０…操作部、１７０…表示部、１８０…通信ＩＦ、２１０、２２０…プリンタ、３００…制御サーバ、３１０…ＣＰＵ、３２０…揮発性記憶装置、３３０…不揮発性記憶装置、３８０…通信ＩＦ、４００…プッシュ通知サーバ、４１０…ＣＰＵ、４２０…揮発性記憶装置、４３０…不揮発性記憶装置、１０００…システム、４８０…通信ＩＦ、ＵＤ…変更指示、ＰＤ…プッシュ通知データ、ＬＧ…送信先リスト群、ＬＮ…ローカルエリアネットワーク、ＡＰ…アクセスポイント、ＩＴ…インターネット、ＮＷ…報知画面、ＳＷ…選択画面、ＰＧ１〜ＰＧ３…コンピュータプログラム
【図１】
2019219699.tif 000003
【図２】
2019219699.tif 000004
【図３】
2019219699.tif 000005
【図４】
2019219699.tif 000006
【図５】
2019219699.tif 000007
【図６】
2019219699.tif 000008
【図７】
2019219699.tif 000009
【図８】
2019219699.tif 000010
【図９】
2019219699.tif 000011
【図１０】
2019219699.tif 000012
【図１１】
2019219699.tif 000013