(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023155149
(43)【公開日】2023-10-20
(54)【発明の名称】デバイス、および、コンピュータプログラム
(51)【国際特許分類】
B41J 29/38 20060101AFI20231013BHJP
B41J 29/42 20060101ALI20231013BHJP
G06F 3/12 20060101ALI20231013BHJP
【FI】
B41J29/38 301
B41J29/42 F
G06F3/12 330
G06F3/12 304
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2023002308
(22)【出願日】2023-01-11
(31)【優先権主張番号】P 2022064694
(32)【優先日】2022-04-08
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】柳 哲
【テーマコード(参考)】
2C061
【Fターム(参考)】
2C061AP01
2C061AQ05
2C061AQ06
2C061CQ04
2C061CQ24
2C061CQ34
2C061CQ41
2C061HJ07
2C061HJ08
2C061HK19
2C061HQ17
(57)【要約】
【課題】サーバと接続可能なデバイスにおいて、ユーザに対する利便性を向上する。
【解決手段】デバイスは、外部装置からサーバと接続するための接続情報を取得する取得処理を実行する取得処理部と、接続情報を用いて対象サーバと接続する接続処理を実行する接続処理部と、取得処理にて接続情報が取得できない場合にデバイスのユーザにエラーを通知するエラー通知部と、を備える。エラー通知部は、取得処理が試行される試行タイミングが第1のタイミングである場合には、第1のエラー通知を実行する、あるいは、エラー通知を実行せず、試行タイミングが第1のタイミングとは異なる第2のタイミングである場合には、第2のエラー通知を実行する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
デバイスであって、
外部装置から対象サーバと接続するための接続情報を取得する取得処理を実行する取得処理部と、
前記接続情報を用いて前記対象サーバと接続する接続処理を実行する接続処理部と、
前記取得処理にて前記接続情報が取得できない場合に前記デバイスのユーザにエラーを通知するエラー通知部と、
を備え、
前記エラー通知部は、前記取得処理が試行される試行タイミングが第1のタイミングである場合には、第1のエラー通知を実行し、前記試行タイミングが前記第1のタイミングとは異なる第2のタイミングである場合には、前記第1のエラー通知とは異なる第2のエラー通知を実行する、デバイス。
【請求項2】
デバイスであって、
外部装置から対象サーバと接続するための接続情報を取得する取得処理を実行する取得処理部と、
前記接続情報を用いて前記対象サーバと接続する接続処理を実行する接続処理部と、
前記取得処理にて前記接続情報が取得できない場合に前記デバイスのユーザにエラーを通知するエラー通知部と、
を備え、
前記エラー通知部は、前記取得処理が試行される試行タイミングが第1のタイミングである場合には、エラー通知を実行せず、前記試行タイミングが前記第1のタイミングとは異なる第2のタイミングである場合には、第2のエラー通知を実行する、デバイス。
【請求項3】
請求項1または2に記載のデバイスであって、
前記第1のタイミングは、1回目の前記取得処理が試行されるタイミングであり、
前記第2のタイミングは、2回目以降の前記取得処理が試行されるタイミングである、デバイス。
【請求項4】
請求項1または2に記載のデバイスであって、さらに、
前記取得処理の実行指示をユーザから取得する指示取得部を備え、
前記第1のタイミングは、前記実行指示が取得されることなく、前記取得処理が試行されるタイミングであり、
前記第2のタイミングは、前記実行指示が取得されることに応じて、前記取得処理が試行されるタイミングである、デバイス。
【請求項5】
請求項1または2に記載のデバイスであって、さらに、
前記対象サーバによるサービスの提供に関する情報を受信する受信部を備え、
前記第1のタイミングは、前記サービスの提供に関する情報が受信される前に、前記取得処理が試行されるタイミングであり、
前記第2のタイミングは、前記サービスの提供に関する情報が受信された後に、前記取得処理が試行されるタイミングである、デバイス。
【請求項6】
請求項1に記載のデバイスであって、
前記第2のエラー通知は、前記対象サーバに関連する特定の連絡先に対して前記エラーを連絡することをユーザに促すメッセージを含み、
前記第1のエラー通知は、前記メッセージを含まない、デバイス。
【請求項7】
請求項1または2に記載のデバイスであって、
前記接続情報は、前記対象サーバの所在を示す所在情報を含む、デバイス。
【請求項8】
請求項1または2に記載のデバイスであって、
前記取得処理部が、前記対象サーバによってサービスが提供されていないことを示す情報であり、前記接続情報とは異なる情報である未提供情報を取得する場合に、
前記エラー通知部は、前記サービスが提供されていない旨を示すメッセージを含む提供エラー通知を実行する、デバイス。
【請求項9】
請求項8に記載のデバイスであって、
前記未提供情報は、前記サービスの提供が開始される時期に関する時期情報を含み、
前記取得処理部は、前記時期情報を取得する場合に、前記時期情報に基づいて、前記サービスの提供が開始される時期より後に、前記取得処理を再度試行する、デバイス。
【請求項10】
請求項1または2に記載のデバイスであって、
前記エラー通知部は、前記取得処理にて前記接続情報が取得された後に、前記接続処理にてエラーが発生した場合に、前記第1のエラー通知とは異なる接続エラー通知を実行する、デバイス。
【請求項11】
請求項10に記載のデバイスであって、
前記接続処理は、前記デバイスと前記対象サーバにて動作するアプリケーションとを接続する第1処理と、前記第1処理後に前記デバイスと前記アプリケーションとの間で実行される第2処理と、を含み、
前記エラー通知部は、前記第1処理にてエラーが発生した場合には、前記接続エラー通知として、第3のエラー通知を実行し、前記第2処理にてエラーが発生した場合には、前記接続エラー通知として、前記第3のエラー通知とは異なる第4のエラー通知を実行し、
前記第4のエラー通知は、前記対象サーバに関連する特定の連絡先に対して前記エラーを連絡することをユーザに促すメッセージを含み、
前記第3のエラー通知は、前記メッセージを含まない、デバイス。
【請求項12】
請求項11に記載のデバイスであって、さらに、
前記接続処理部は、
前記接続処理を試行して前記第1処理にてエラーが発生した場合に、前記接続処理を再度試行し、
前記接続処理を試行して前記第2処理にてエラーが発生した場合に、前記接続処理を再度試行しない、デバイス。
【請求項13】
請求項11に記載のデバイスであって、さらに、
前記第2処理は、前記対象サーバと通信して前記対象サーバが提供するサービスを利用するための準備処理を含み、
前記エラー通知部は、前記サービスが提供されていないために前記準備処理を完了できない場合に、前記サービスが提供されていない旨を示すメッセージを含む提供エラー通知を実行する、デバイス。
【請求項14】
請求項13に記載のデバイスであって、
前記接続処理部は、
前記サービスが提供されていない場合に、前記サービスの提供が開始される時期に関する時期情報を受信し、
前記時期情報に基づいて、前記サービスの提供が開始される時期より後に、前記接続処理を再度試行する、デバイス。
【請求項15】
請求項1または2に記載のデバイスであって、
前記取得処理は、FIDO Device Onboarding (FDO) Specificationに規定されたTO1(Transfer Ownership Protocol 1)に従って実行される、デバイス。
【請求項16】
請求項1または2に記載のデバイスであって、
前記接続処理は、FIDO Device Onboarding (FDO) Specificationに規定されたTO2(Transfer Ownership Protocol 2)に従って実行される、デバイス。
【請求項17】
デバイスを制御するためのコンピュータプログラムであって、
外部装置から前記デバイスと対象サーバとを接続するための接続情報を取得する取得処理を実行する取得処理機能と、
前記接続情報を用いて前記デバイスと前記対象サーバとを接続する接続処理を実行する接続処理機能と、
前記取得処理にて前記接続情報が取得できない場合に前記デバイスのユーザにエラーを通知するエラー通知機能と、
をコンピュータに実現させ、
前記エラー通知機能は、前記取得処理が試行される試行タイミングが第1のタイミングである場合には、第1のエラー通知を実行し、前記試行タイミングが前記第1のタイミングとは異なる第2のタイミングである場合には、前記第1のエラー通知とは異なる第2のエラー通知を実行する、コンピュータプログラム。
【請求項18】
デバイスを制御するためのコンピュータプログラムであって、
外部装置から前記デバイスと対象サーバとを接続するための接続情報を取得する取得処理を実行する取得処理機能と、
前記接続情報を用いて前記デバイスと前記対象サーバとを接続する接続処理を実行する接続処理機能と、
前記取得処理にて前記接続情報が取得できない場合に前記デバイスのユーザにエラーを通知するエラー通知機能と、
をコンピュータに実現させ、
前記エラー通知機能は、前記取得処理が試行される試行タイミングが第1のタイミングである場合には、エラー通知を実行せず、前記試行タイミングが前記第1のタイミングとは異なる第2のタイミングである場合には、第2のエラー通知を実行する、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、サーバとの接続処理を実行するデバイス、および、コンピュータプログラムに関する。
【背景技術】
【0002】
特許文献1に開示されたシステムでは、複合機(MFP)は、接続先提供サーバにアクセスして、アプリケーションを記憶するサーバのURLを受信する。複合機は、受信したURLを用いて、サーバにアクセスして、アプリケーションをダウンロードする。複合機は、URLを受信できない場合や、受信したURLを用いてサーバにアクセスした際にサーバから表示情報を取得できない場合に、エラー表示を行う。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2017/150472号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記技術では、エラーの種類に拘わらずに共通のエラー表示を使用している。このために、複合機は、ユーザに適切なエラー表示を行えず、ユーザに対する利便性が不十分である可能性があった。
【0005】
本明細書は、サーバと接続可能なデバイスにおいて、ユーザに対する利便性を向上し得る技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1]デバイスであって、外部装置から対象サーバと接続するための接続情報を取得する取得処理を実行する取得処理部と、前記接続情報を用いて前記対象サーバと接続する接続処理を実行する接続処理部と、前記取得処理にて前記接続情報が取得できない場合に前記デバイスのユーザにエラーを通知するエラー通知部と、を備え、前記エラー通知部は、前記取得処理が試行される試行タイミングが第1のタイミングである場合には、第1のエラー通知を実行し、前記試行タイミングが前記第1のタイミングとは異なる第2のタイミングである場合には、前記第1のエラー通知とは異なる第2のエラー通知を実行する、デバイス。
【0008】
上記構成によれば、接続情報を取得する取得処理を試行する試行タイミングに応じて、適切なエラー通知を実行し得る。この結果、サーバと接続可能なデバイスにおいて、ユーザに対する利便性を向上し得る。
【0009】
[適用例2]デバイスであって、外部装置から対象サーバと接続するための接続情報を取得する取得処理を実行する取得処理部と、前記接続情報を用いて前記対象サーバと接続する接続処理を実行する接続処理部と、前記取得処理にて前記接続情報が取得できない場合に前記デバイスのユーザにエラーを通知するエラー通知部と、を備え、前記エラー通知部は、前記取得処理が試行される試行タイミングが第1のタイミングである場合には、エラー通知を実行せず、前記試行タイミングが前記第1のタイミングとは異なる第2のタイミングである場合には、第2のエラー通知を実行する、デバイス。
【0010】
上記構成によれば、接続情報を取得する取得処理を試行する試行タイミングに応じて、エラー通知を実行するか否かを適切に切り替えることができる。この結果、サーバと接続可能なデバイスにおいて、ユーザに対する利便性を向上し得る。
【0011】
なお、本明細書に開示された技術は、種々の形態で実現可能であり、例えば、対象サーバとデバイスとを含むシステム、デバイスまたはシステムにおける方法、これらの装置および方法の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【0012】
【
図2】データベースおよび該データベースに格納される情報の説明図。
【
図3】システム1000の事前準備およびサービス処理のフローチャート。
【
図4】プリンタ100とサーバ300Aと仲介サーバ400との処理を示すシーケンス図。
【
図5】第1実施例の第1動作判定処理のフローチャート。
【
図11】第3実施例の第1動作判定処理のフローチャート。
【発明を実施するための形態】
【0013】
A.第1実施例
A-1.システム1000の構成
図1は、システム1000の構成を示すブロック図である。システム1000は、プリンタ100と、プリンタ100の販売会社が所有する端末装置200と、プリンタを用いるサービスを提供するサーバ300A~300Dと、仲介サーバ400と、を備える。なお、情報提供サーバ500は、第2実施例にて備えられる構成であり、第1実施例では、備えられない構成である。このために、情報提供サーバ500については、第2実施例にて説明する。
【0014】
プリンタ100は、プリンタ100のコントローラとして、CPU110と、DRAMなどの揮発性記憶装置120と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置130と、を備えている。また、プリンタ100は、画像を表示する液晶ディスプレイなどの表示部140と、ユーザによる操作を取得するためのボタンやタッチパネルなどの操作部150と、印刷機構170と、通信インタフェース(IF)180と、を備えている。
【0015】
通信IF180は、インターネットITに接続するためのインタフェース、例えば、イーサネット(登録商標)に準拠した有線のインタフェースや、Wi-Fi規格に準拠した無線のインタフェースである。
【0016】
CPU110は、データ処理を行う演算装置(プロセッサ)である。揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、プリンタ100を制御するためのコンピュータプログラムPGpと、後述するバウチャーヘッダVHと、が格納されている。
【0017】
コンピュータプログラムPGpは、本実施例では、プリンタ100の製造時に不揮発性記憶装置130に予め格納されて提供される。これに代えて、コンピュータプログラムPGpは、例えば、インターネットITを介して接続されたサーバからダウンロードされる形態、あるいは、CD-ROMなどに記録された形態で提供され得る。
【0018】
CPU110は、コンピュータプログラムPGpを実行することによって、プリンタ100の制御を実行する。例えば、後述するように、CPU110は、サーバ300A~300Dのいずれかと協働して、ユーザに対して所定のサービス(例えば、後述するセットアップサービスや消耗材管理サービスや印刷サービス)を提供する処理(以下、サービス処理とも呼ぶ)を実行する。また、後述するように、CPU110は、サービス処理に先立って、端末装置200や対象サーバ(例えば、サーバ300A)や仲介サーバ400と協働して、後述する事前準備を実行する。
【0019】
印刷機構170は、CPU110の制御に従って、印刷を実行する。本実施例の印刷機構170は、複数種類のインク(例えば、シアンとマゼンタとイエロとブラックとの4種類のインク)を色材として用いて、画像を記録媒体に印刷するインクジェット方式の印刷機構である。これに代えて、印刷機構170は、トナーを色材として用いて、画像を記録媒体に印刷する電子写真方式の印刷機構であっても良い。
【0020】
端末装置200は、計算機であり、例えば、パーソナルコンピュータである。変形例では、端末装置200は、スマートフォンやタブレットコンピュータであっても良い。端末装置200は、例えば、プリンタ100を販売する販売会社が所有する計算機である。
【0021】
端末装置200は、コントローラとして、CPU210と、DRAMなどの揮発性記憶装置220と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置230と、を備えている。また、端末装置200は、画像を表示する液晶ディスプレイなどの表示部240と、ユーザによる操作を取得するためのボタンやタッチパネルなどの操作部250と、通信IF280と、を備えている。通信IFは、インターネットITに接続するためのインタフェース、例えば、イーサネット(登録商標)に準拠した有線のインタフェースや、Wi-Fi規格に準拠した無線のインタフェースである。
【0022】
揮発性記憶装置220は、CPU210が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置230には、ブラウザプログラムBPが格納されている。
【0023】
CPU210は、ブラウザプログラムBPを実行することによって、WEBブラウザとして機能する。WEBブラウザとして機能するCPU210は、後述するバウチャーVCをサーバ300A~300Dに登録する処理を実行する。
【0024】
サーバ300A~300Eは、例えば、サービスを提供する事業者が運用する計算機、例えば、クラウドサーバである。例えば、サーバ300A~300Eを運用する事業者は、プリンタ100を製造する事業者や、該事業者とは異なるサードパーティである。サーバ300A~300Eは、それぞれ、互いに異なる2以上の事業者によって運用される2以上のサーバを含み得る。サーバ300A~300Eによって提供されるサービスを、それぞれ、サービスA~サービスDとする。サービスA~サービスDは、例えば、セットアップサービスや消耗材管理サービスや印刷サービスを含む。セットアップサービスは、例えば、ドライバやアプリケーションなどのプログラムをプリンタ100にインストールすることや所定の設定を行うサービスである。消耗材管理サービスは、例えば、インクなどのプリンタ100の消耗材の残量を管理し、消耗材の消耗に応じて該消耗材をユーザに配送するサービスである。印刷サービスは、例えば、ユーザの端末から送信される画像ファイルを用いて印刷ジョブを生成してプリンタ100に送信することによって、プリンタ100に印刷を行わせるサービスである。
【0025】
サーバ300Aは、コントローラとしてのCPU310と、DRAMなどの揮発性記憶装置320と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置330と、通信インタフェース(IF)380と、を備えている。通信IF380は、例えば、イーサネット(登録商標)に準拠した有線のインタフェースである。
【0026】
CPU310は、データ処理を行う演算装置(プロセッサ)である。揮発性記憶装置320は、CPU310が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置330には、コンピュータプログラムPGaと、後述するバウチャーデータベースVDBと、が格納されている。
【0027】
コンピュータプログラムPGaは、例えば、サーバ300Aを運用する事業者によってアップロードされる形態で提供される。サーバ300AのCPU310は、コンピュータプログラムPGaを実行することによって、プリンタ100と協働して、提供すべきサービスを実現するためのサービス処理を実行する。また、CPU310は、サービス処理に先立って、端末装置200やサーバ300Aや仲介サーバ400と協働して、後述する事前準備を実行する。
【0028】
サーバ300B~300Dは、上述したサーバ300Aと同様の構成310~380(図示省略)を備えている。サーバ300B~300Dの構成の説明は省略する。
【0029】
仲介サーバ400は、例えば、所定の事業者(例えば、サービスを提供する事業者やプリンタ100を製造する事業者)が運用する計算機、例えば、クラウドサーバである。仲介サーバ400は、サーバ300Aと同様に、コントローラとしてのCPU410と、揮発性記憶装置420と、通信IF480と、を備えている。揮発性記憶装置420は、CPU410が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置430には、コンピュータプログラムPGbと、後述する接続情報データベースCDBと、が格納されている。
【0030】
コンピュータプログラムPGbは、例えば、仲介サーバ400を運用する事業者によってアップロードされる形態で提供される。仲介サーバ400のCPU410は、コンピュータプログラムPGbを実行することによって、プリンタ100や端末装置200やサーバ300A~300Dや仲介サーバ400と協働して、後述する事前準備を実行する。
【0031】
プリンタ100と、端末装置200と、サーバ300A~300Dと、仲介サーバ400とは、それぞれ、インターネットITに接続されている。このために、これらの装置100~400は、互いに、インターネットITを介して、通信可能である。
【0032】
図2は、データベースおよび該データベースに格納される情報の説明図である。
図2(A)には、サーバ300A~300Dの不揮発性記憶装置330に格納されるバウチャーデータベースVDBの一例が示されている。バウチャーデータベースVDBには、1以上のバウチャーVC(例えば、
図2(A)のVC1、VC2)が格納されている。
【0033】
図2(B)には、バウチャーVCの一例が図示されている。バウチャーVCは、デバイス(本実施例では、プリンタ100)の所有権を証明するデータである。バウチャーVCは、バウチャーヘッダVHと、1以上のエントリET(例えば、
図2(B)のET1、ET2)と、を含む。
【0034】
バウチャーヘッダVHは、GUIDと、仲介サーバ情報RSIと、公開鍵PKmと、HMACと、を含んでいる。GUIDは、プリンタ100を識別する識別子である。仲介サーバ情報RSIは、仲介サーバ400と通信の接続を行うための情報である。仲介サーバ情報RSIは、例えば、仲介サーバ400の所在を示す情報(例えば、IPアドレスやURL(Uniform Resource Locator))と、ポート番号と、接続に用いるプロトコルの情報と、を含む。公開鍵Pkmは、プリンタ100の製造事業者が保有する秘密鍵と対応する公開鍵である。HMAC(hash message authentication code)は、メッセージ認証符号であり、例えば、プリンタ100が保有する秘密鍵(図示省略)とハッシュ関数とデータ(例えば、バウチャーヘッダVHとプリンタ100が保有するシークレット)を用いて計算される。
【0035】
バウチャーヘッダVHは、
図1に示すように、プリンタ100の不揮発性記憶装置130にも格納されている。
【0036】
エントリETは、公開鍵Pksと、署名データSDと、を含む。エントリETは、バウチャーVCの受け渡し、すなわち、バウチャーVCの所有者の変更が行われる度に、1つずつ追加される情報である。公開鍵Pksは、受け渡し先が保有する秘密鍵に対応する公開鍵であり、署名データSDは、受け渡し元が保有する秘密鍵を用いて公開鍵Pksを暗号化して得られるデータである。
図2(B)のバウチャーVCは、2個のエントリET1、ET2を含んでいる。したがって、
図2(B)のバウチャーVCは、2回の受け渡しが行われたことが解る。
【0037】
図2(C)には、接続情報データベースCDBの一例が図示されている。接続情報データベースCDBは、1以上の接続情報CIが、GUIDと対応付けて記録されている。
図2(C)の例では、接続情報CI1は、GUID「ID1」と対応付けて記録され、接続情報CI2は、GUID「ID2」と対応付けて記録される。各接続情報CIは、対応付けられたGUIDによって識別されるデバイス(例えば、プリンタ100)に送信されるべき情報である。
【0038】
図2(D)は、接続情報CIの一例が図示されている。接続情報CIは、デバイス(例えば、プリンタ100)と協働してサービス処理を実行すべきサーバ(例えば、サーバ300A)と通信の接続を行うための情報である。接続情報CIは、例えば、仲介サーバ400の所在を示す情報(例えば、IPアドレスやURL(Uniform Resource Locator))と、ポート番号と、接続に用いるプロトコルの情報と、を含む。
【0039】
A-2.システム1000の事前準備およびサービス処理の概略
図3は、システム1000の事前準備およびサービス処理のフローチャートである。
図3のS100~S600は、サービス処理(
図3のS700)に先だって行われる事前準備である。
【0040】
S100では、プリンタ100の製造工程において、プリンタ100にバウチャーヘッダVHを格納する。バウチャーヘッダVHの格納は、例えば、FIDO Allianceによって公開されている標準仕様である「FIDO Device Onboarding (FDO) Specification」(以下、FDO仕様書とも呼ぶ)に規定されたDI(Device Initialize Protocol)に従って実行される。これによって、
図2(B)のバウチャーVCのうちのバウチャーヘッダVHが生成されて、プリンタ100の不揮発性記憶装置130に格納される。
【0041】
S200では、プリンタ100を製造事業者から販売会社にバウチャーVCとプリンタ100とが受け渡される。具体的には、販売会社は、秘密鍵と公開鍵PKs1とのキーペアを準備し、プリンタ100を発注する際に、販売会社の端末装置200から製造事業者の計算機(例えば、図示しないWEBサーバを含む計算機システム)に公開鍵PKs1を送信する。製造事業者の計算機は、該公開鍵PKs1と、該公開鍵PKs1を製造事業者の秘密鍵を用いて暗号化して得られる署名データSD1と、を含むエントリET1(
図2(B))を生成する。製造事業者の秘密鍵は、S100にて生成されるバウチャーヘッダVHに含まれる公開鍵PKm(
図2(B))に対応する秘密鍵である。製造事業者の計算機は、該公開鍵PKs1と、該公開鍵を製造事業者の秘密鍵を用いて暗号化して得られる署名データSD1と、を含むエントリET1(
図2(B))を生成する。製造事業者の計算機は、バウチャーヘッダVHと、1個のエントリET1と、を含むバウチャーVCを、販売会社の端末装置200に送信する。また、製造事業者は、プリンタ100を販売会社に納品する。
【0042】
S300では、販売会社がバウチャーVCを対象サーバに登録する。例えば、ユーザは、販売会社からプリンタ100を購入する際に、プリンタ100を用いて利用可能なサービスA~Dの中から利用するサービスについて利用契約を結ぶ。ここで、利用するサービスを提供するサーバを対象サーバとも呼ぶ。以下では、サービスAを提供するサーバ300A(
図1)が対象サーバであるとして説明を行う。具体的には、販売会社の担当者は、端末装置200を操作して、サーバ300Aが提供するWEBページにアクセスして、所定の操作を行う。これによって、端末装置200とサーバ300Aとの間でバウチャーVCをサーバ300Aに登録する処理が実行される。
【0043】
具体的には、サーバ300Aは、秘密鍵と公開鍵PKs2とのキーペアを保有しており、端末装置200に公開鍵PKs2を送信する。端末装置200は、該公開鍵PKs2と、該公開鍵PKs2を、販売会社の秘密鍵(公開鍵PKs1に対応する秘密鍵)を用いて暗号化して得られる署名データSD2と、を含むエントリET2(
図2(B))を生成する。端末装置200は、S200にて受信したバウチャーVCにエントリET2を追加したバウチャーVC(例えば、
図2のVC1)をサーバ300Aに送信する。サーバ300Aは、受信したバウチャーVCをバウチャーデータベースVDBに格納する(
図2)。これによって、バウチャーVCがサーバ300Aに登録される。
【0044】
なお、変形例では、販売会社からユーザにバウチャーVCが受け渡され、ユーザが、自身の端末装置から対象サーバ(例えば、サーバ300A)にバウチャーVCを登録しても良い。
【0045】
S400では、対象サーバが仲介サーバ400に接続情報CIを登録する。接続情報CIの登録は、FDO仕様書に規定されたTO0(Transfer Ownership Protocol 0)に従って実行される。例えば、対象サーバであるサーバ300Aから仲介サーバ400に、プリンタ100がサーバ300Aにアクセスするための接続情報CI(
図2(D))と、プリンタ100のGUIDと、が送信される。仲介サーバ400は、受信した接続情報CIをプリンタ100のGUIDと対応付けて接続情報データベースCDB(
図1、
図2(C))に格納する。これによって、接続情報CIがプリンタ100のGUIDと対応付けて仲介サーバ400に登録される。
【0046】
S450では、販売会社がユーザにプリンタ100を納品する。ユーザは、納品されたプリンタ100をインターネットITに接続可能に設置して、プリンタ100の電源を投入する。
【0047】
プリンタ100の電源が投入されると、プリンタ100は、S500にて、仲介サーバ400から接続情報CIを取得する。具体的には、プリンタ100は、不揮発性記憶装置130に格納されたバウチャーヘッダVH(
図1)に含まれる仲介サーバ情報RSIを読み出す。プリンタ100は、仲介サーバ情報RSIを用いて、仲介サーバ400との通信の接続を確立し、接続情報取得処理を実行する。接続情報取得処理は、FDO仕様書に規定されたTO1(Transfer Ownership Protocol 1)に従って実行される。具体的には、プリンタ100は、バウチャーヘッダVHに含まれるGUID、すなわち、自身を識別するGUIDを仲介サーバ400に送信する。仲介サーバ400は、接続情報データベースCDBにおいて、受信したGUIDに対応付けられた接続情報CIをプリンタ100に送信する。これによって、プリンタ100は、サーバ300Aにアクセスするための接続情報CIを取得する。
【0048】
S600では、接続情報CIを用いて、プリンタ100と対象サーバとの間でオンボーディング処理が実行される。オンボーディング処理は、FDO仕様書に規定されたTO2(Transfer Ownership Protocol 2)に従って実行される。具体的には、プリンタ100は、取得した接続情報CIを不揮発性記憶装置130から読み出し、該接続情報CIを用いて、対象サーバであるサーバ300Aにアクセスしてオンボーディング処理を実行する。オンボーディング処理は、接続確立処理と、認証処理と、サービス準備処理と、を含む。
【0049】
接続確立処理は、例えば、TCP(Transmission Control Protocol)とIP(Internet Protocol)に従って、プリンタ100上で動作するアプリケーションと、対象サーバであるサーバ300A上で動作するアプリケーションと、の間の接続を確立する処理である。これらのアプリケーションは、接続確立処理の後に、認証処理とサービス準備処理とを実行する。
【0050】
認証処理は、プリンタ100と対象サーバとの間で、互いに相手の正当性を確認する処理である。例えば、プリンタ100は、所定のフォーマット(例えば、EAT(Entity Attestation Token)フォーマット)に従うトークンをサーバ300Aに送信し、サーバ300Aは、該トークンの正当性を指定された公開鍵を用いて検証することで、プリンタ100の正当性を確認する。
【0051】
サーバ300Aは、さらに、所定のメッセージと、秘密鍵を用いて該メッセージを暗号化することによって得られる署名データと、をプリンタ100に送信する。サーバ300Aは、バウチャーデータベースVDBからプリンタ100から送信されるGUIDに対応付けられたバウチャーVCを特定してプリンタ100に送信する。プリンタ100は、バウチャーVCに含まれるエントリET1、ET2を順次に検証する。例えば、プリンタ100は、バウチャーヘッダVHに含まれる公開鍵PKmを用いてエントリET1を検証する。プリンタ100は、検証済みのエントリET1に含まれる公開鍵PKs1を用いてエントリET2を検証する。最後にプリンタ100は、検証済みのエントリET2に含まれる公開鍵PKs2を用いて、サーバ300Aから送信された署名データを検証することで、サーバ300Aの正当性を確認する。
【0052】
ここで、サーバ300Aがプリンタ100の正当性を確認できない場合には、サーバ300Aは、サービス準備処理に進むことを拒否する。同様に、プリンタ100がサーバ300Aの正当性(バウチャーVCの正当性)を確認できない場合には、プリンタ100は、サービス準備処理に進むことを拒否する。
【0053】
サービス準備処理は、認証処理によって互いの正当性が確認された後に、プリンタ100とサーバ300Aとの間でサービス処理を実行するために必要なサービス情報を交換する処理である。サービス準備処理が完了すると、プリンタ100とサーバ300Aとは、サービス処理を実行することができる状態になる。サービス情報は、例えば、プリンタ100とサーバ300Aとの間でサービス処理に関する通信を行う際に用いられるトークンや、フォーマット情報や、プロトコル情報を含む。
【0054】
S700では、プリンタ100と対象サーバ(例えば、サーバ300A)とは、協働して、サービス処理を実行する。サービス処理は、例えば、サーバ300Aが提供するサービスAが消耗材管理サービスである場合には、プリンタ100が定期的にインクなどの消耗材の残量情報をサーバ300Aに送信する処理を含む。
【0055】
以上説明した手法を用いることによって、例えば、以下の利点がある。上記手法では、ユーザや販売会社は、ユーザが利用することを望むサービスを提供する対象サーバにバウチャーVCを登録する(
図3のS300)ことによってサービスの提供を受けることができる。このために、ユーザや販売会社は、ユーザが提供を受けるべきサービスを容易に選択できる。
【0056】
また、プリンタ100は、対象サーバの接続情報CIを仲介サーバ400から取得できる(
図3のS500)。このために、プリンタ100の製造工程の段階では、仲介サーバ400に接続するための仲介サーバ情報RSIがプリンタ100(不揮発性記憶装置130)に記憶されていれば良く、対象サーバの接続情報CIがプリンタ100に記憶されている必要がない。また、プリンタ100は、対象サーバと協働してサービス処理を実行するために必要なサービス情報を対象サーバから取得できる(
図3のS600)。このために、プリンタ100の製造工程の段階では、サービス情報がプリンタ100に記憶されている必要がない。このために、プリンタ100の製造工程の段階で、利用すべきサービスを想定しておく必要がなく、例えば、プリンタ100の製造後に提供が開始されたサービスや、プリンタ100の製造時には製造事業者に認識されていなかった第三者が提供するサービスであったとしても、ユーザはプリンタ100を用いて該サービスを利用することができる。この結果、サービスの柔軟な提供と利用とを実現できる。例えば、サービスの提供者は、プリンタ100の改造等を行うことなく、新たなサービスを事後的に追加することもできる。例えば、ユーザや販売会社は、利用するサービスの選択や変更を容易に行うことができる。また、プリンタ100の製造事業者、販売業者、ユーザのいずれも、例えば、出荷時や使用時にユーザが希望するサービスに接続できるようにプリンタ100をカスタマイズする必要がないため、プリンタ100の製造事業者、販売業者、ユーザの負担を軽減できる。
【0057】
さらに、上記手法では、バウチャーVCの検証やトークンの検証を行うことによって、プリンタ100と対象サーバとは、互いの正当性を確認することができる。そして、プリンタ100や対象サーバは、相手の正当性を確認できない場合には、オンボーディング処理の実行を拒否できる。このために、プリンタ100が意図しないサーバに接続される、プリンタ100とは異なる不正なデバイスが対象サーバに接続されるなどのセキュリティ上の問題が生じることを抑制できる。
【0058】
C.プリンタ100とサーバ300A、400との処理の詳細
次に、上述した事前準備のうち、プリンタ100とサーバ300Aとの間の処理と、プリンタ100と仲介サーバ400との処理について、さらに、説明する。
【0059】
図4は、プリンタ100とサーバ300Aと仲介サーバ400との処理を示すシーケンス図である。ここで、上記の説明では、プリンタ100と仲介サーバ400との間の処理(
図3のS500)と、プリンタ100とサーバ300Aとの間の処理(
図3のS600)について、エラーが発生しないことを前提としている。以下では、エラーが発生する場合も含めて、これらの処理について、説明する。
【0060】
図4の処理は、所定の開始契機が発生したタイミングで開始される。第1実施例では、開始契機は、初回の電源投入と、ユーザ指示と、実行時刻到来と、のいずれかである。
図3のS500にて説明したように、最初に発生する契機は、プリンタ100への初回の電源投入である。初回の電源投入時に実行される
図4の処理にて、エラーが発生して、
図4の処理が中断した後には、ユーザ指示と、実行時刻到来と、のいずれかの開始契機が発生した場合に、再度、
図4の処理が開始される。なお、2回目以降の電源投入時には、
図4の処理は、実行されない。
【0061】
ユーザ指示は、例えば、ユーザによって入力される指示であり、サーバにプリンタ100の操作部150を介してユーザによって入力される。本実施例では、プリンタ100のマニュアルなどによって、利用を希望するサービスの提供が開始された旨の案内(以下、サービス開始案内とも呼ぶ)を受領した場合に、該ユーザ指示をプリンタ100に入力するように、ユーザに対して説明されている。このために、ユーザ指示は、ユーザがサービス開始案内を受領した後に入力されることが想定されている。サービス開始案内は、例えば、電子メール、ユーザが利用する端末装置(例えば、スマートフォン)にインストールされる端末アプリケーションへの通知、郵送、販売会社からの口頭による連絡(電話等)によって行われる。
【0062】
実行時刻到来は、後述する第1動作判定処理や第2動作判定処理において設定される実行時刻が到来することである。設定された実行時刻が到来した場合には、プリンタ100は、内部に備える時計(図示省略)を用いて実行時刻の到来を自動的に認識して、
図4の処理を開始する。
【0063】
開始契機が発生すると、
図4のS2、S4の処理が実行される。
図4のS2、S4の処理は、
図3のS500の処理に対応している。すなわち、プリンタ100は、
図4のS2にて、バウチャーヘッダVH(
図1)に含まれる仲介サーバ情報RSIを読み出す。プリンタ100は、
図4のS4にて、プリンタ100は、仲介サーバ情報RSIを用いて、接続情報取得処理を試行する。
【0064】
プリンタ100は、接続情報取得処理を試行した結果、エラーが発生しない場合には、接続情報CIを取得し、接続情報取得処理を正常に終了する。プリンタ100は、接続情報取得処理を試行したが、エラーが発生する場合には、接続情報CIを取得できずに、接続情報取得処理を中断する。接続情報取得処理において発生するエラーは、例えば、仲介サーバ400にプリンタ100のGUIDに対応付けられた接続情報CIが登録されていない取得エラーである。取得エラーが発生する場合には、プリンタ100は、接続情報CIを取得できない。
【0065】
接続情報取得処理が正常に終了した後、あるいは、エラーによって中断された後に、プリンタ100は、
図4のS8にて、第1動作判定処理を実行する。
【0066】
図5は、第1実施例の第1動作判定処理のフローチャートである。
図5のS805では、プリンタ100は、
図4の接続情報取得処理にて、接続情報CIを取得できたか否かを判断する。
【0067】
エラーによって接続情報CIが取得できない場合には(S805:NO)、プリンタ100は、S810にて、
図4のS2の処理の開始契機が初回の電源投入であるか否かを判断する。開始契機が初回の電源投入である場合には(S810:YES)、プリンタ100は、S815に処理を進める。開始契機が初回の電源投入でない場合には(S810:NO)、すなわち、開始契機がユーザ指示または実行時刻到来である場合には、プリンタ100は、S820に処理を進める。
【0068】
S815では、プリンタ100は、プリンタ100の表示部140に、通知画面W1を表示する。
図6は、通知画面の一例を示す図である。
図6(A)の通知画面W1は、接続対象のサービスが存在しないことを通知するメッセージMS1と、表示終了ボタンBTeと、を含む。表示終了ボタンBTeが押下されると、通知画面W1の表示は終了される。
【0069】
S820では、プリンタ100は、プリンタ100の表示部140に、通知画面W2を表示する。
図6(B)の通知画面W2は、対象サーバであるサーバ300Aが存在しないことを通知するメッセージMS2aと、サーバ300Aにおける手続に問題がある可能性を通知するメッセージMS2bと、サーバ300Aを運用する事業者等の連絡先に対してエラーを連絡することを促すメッセージMS2cと、表示終了ボタンBTeと、を含む。表示終了ボタンBTeが押下されると、通知画面W2の表示は終了される。
【0070】
接続情報CIが取得された場合には(S805:YES)、プリンタ100は、S825にて、取得された接続情報CIとともに、サービス開始時期情報が取得されたか否かを判断する。サービス開始時期情報は、現時点でサーバ300Aにおいて、サービスの提供が開始されていないが、将来のサービス開始時期が決まっている場合に、接続情報CIとともに、仲介サーバ400から送信され得る。サービス開始時期情報は、サーバ300Aにおいてサービスの提供が開始される将来の日時を示す情報である。サービス開始時期情報は、サービスの提供が開始される将来の日時を示すので、現時点ではサービスの提供が開始されていないことを示す情報である、とも言うことができる。
【0071】
サービス開始時期情報が取得されない場合には(S825:NO)、この時点でサーバ300Aはサービスを提供している可能性が高い。この場合には、プリンタ100は、オンボーディング処理に進むために、第1判定処理を終了して、
図4のS10に進む。サービス開始時期情報が取得された場合には(S825:YES)、この時点でサーバ300Aはサービスを提供していない。この場合には、プリンタ100は、S830に処理を進める。
【0072】
S830では、プリンタ100は、プリンタ100の表示部140に、通知画面W3を表示する。
図6(C)の通知画面W3は、現時点でサーバ300Aによるサービスが提供されていない旨を通知するメッセージMS3aと、サーバ300Aがサービスの提供を開始した後に、サーバ300Aと接続する旨を通知するメッセージMS3bと、表示終了ボタンBTeと、を含む。表示終了ボタンBTeが押下されると、通知画面W3の表示は終了される。
【0073】
S835では、プリンタ100は、
図4の処理の次回の実行時刻を設定する。例えば、次回の実行時刻は、上述のサービス開始時期情報に基づいて、サービスの提供が開始される時期よりも後の時刻に設定される。S835にて設定される実行時刻の到来は、上述したように
図4の処理の開始契機の1つである。したがって、S835にて実行時刻が設定された場合には、その後に実行時刻が到来したときに、
図4の処理がS2から再度実行される。
【0074】
S815、S820、S835の後には、第1動作判定処理は終了され、
図4の処理は、中断される。したがって、この場合には、オンボーディング処理は実行されない。そして、次の開始契機(ユーザ指示または実行時刻の到来)が発生した場合に、
図4の処理が再度、S2から実行される。
【0075】
接続情報CIが取得され(
図5のS805にてYES)、サービス開始時期情報が取得されない場合には(
図5のS825にてNO)、プリンタ100は、
図4のS10、S14の処理を実行する。
図4のS10、S14の処理は、
図3のS600の処理に対応する。すなわち、プリンタ100は、S10にて、接続情報CIを不揮発性記憶装置130から読み出し、S14にて、接続情報CIを用いて、上述したオンボーディング処理を試行する。
【0076】
プリンタ100は、オンボーディング処理(接続確立処理と認証処理とサービス準備処理)を試行した結果、エラーが発生しない場合には、オンボーディング処理を正常に終了する。プリンタ100は、接続情報取得処理を試行したが、エラーが発生する場合には、オンボーディング処理を完了できずに、オンボーディング処理を中断する。オンボーディング処理において発生するエラーは、接続確立処理において発生するエラーと、認証処理において発生するエラーと、サービス準備処理にて発生するエラーと、を含む。
【0077】
接続確立処理において発生するエラーは、例えば、到達エラーや応答エラーを含む。到達エラーは、接続情報CIに含まれる所在情報(例えば、IPアドレスやURL)に基づいて接続要求を行ったが、サーバ300Aに接続要求が到達しないエラーである。応答エラーは、例えば、サーバ300Aに接続要求が到達したがサーバ300Aから応答として何らかのエラー(例えば、URLに対応するリソースが存在しないことを示すエラー)が送信される場合である。
【0078】
認証処理において発生するエラー(認証エラーとも呼ぶ)は、例えば、プリンタ100がサーバ300Aの正当性を確認できないエラーや、サーバ300Aがプリンタ100の正当性を確認できないエラーを含む。
【0079】
サービス準備処理にて発生するエラーは、本実施例では、サーバ300Aにてサービスの提供が開始されていないためにサービス情報を取得できない提供エラーを含む。提供エラーが発生した場合には、プリンタ100は、サーバ300Aから上述したサービス開始時期情報を取得できる場合がある。サービス開始時期情報は、サーバ300Aにおいてサービスの提供が開始される将来の日時を示す情報である。
【0080】
オンボーディング処理が正常に終了した後、あるいは、エラーによって中断された後に、プリンタ100は、
図4のS16にて、第2動作判定処理を実行する。
【0081】
図7は、第2動作判定処理のフローチャートである。
図7のS905では、プリンタ100は、
図4のS14のオンボーディング処理の接続確立処理にて、エラーが発生したか否かを判断する。接続確立処理にてエラーが発生した場合には(S905:YES)、プリンタ100は、S910にて、プリンタ100の表示部140に、通知画面W4を表示する。
【0082】
図6(D)の通知画面W4は、対象サーバであるサーバ300Aとの通信の接続に失敗したことを通知するメッセージMS4aと、対象サーバが一時的にダウンしている可能性を通知するメッセージMS4bと、表示終了ボタンBTeと、を含む。表示終了ボタンBTeが押下されると、通知画面W4の表示は終了される。
【0083】
S915では、プリンタ100は、
図4のS14のオンボーディング処理を所定回数(例えば、3~5回)だけ再試行したか否かを判断する。オンボーディング処理が所定回だけ再試行されていない場合には(S915:NO)、プリンタ100は、
図4のS14に戻って、オンボーディング処理を、再度、試行する。再度の試行は、例えば、所定時間(例えば、数分)の間隔を開けて実行される。オンボーディング処理が所定回だけ再試行された場合には(S915:YES)、プリンタ100は、第2動作判定処理を終了し、
図4の処理は、中断される。したがって、この場合には、オンボーディング処理が完了しないので、
図4のS18のサービス処理は実行できない。
【0084】
接続確立処理にてエラーが発生していない場合には(S905:NO)、プリンタ100は、S920にて、
図4のS14のオンボーディング処理のアプリケーションとの処理(すなわち、認証処理またはサービス準備処理)にて、エラーが発生したか否かを判断する。アプリケーションとの処理にてエラーが発生した場合には(S920:YES)、プリンタ100は、S925にて、サービス開始時期情報が取得されたか否かを判断する。すなわち、サービス準備処理にて、提供エラーが発生し、サービス開始時期情報が取得されたか否かが判断される。
【0085】
サービス開始時期情報が取得されない場合には(S925:NO)、例えば、認証処理でエラーが発生した場合や、サービス準備処理のエラーであってもサービス開始時期情報が取得できなかった場合には、プリンタ100は、S930にて、プリンタ100の表示部140に、通知画面W5を表示する。
図6(E)の通知画面W5は、サーバ300Aとの通信の接続に失敗したことを通知するメッセージMS5aと、サーバ300Aにおける手続に問題がある可能性を通知するメッセージMS5bと、対象サーバを運用する事業者等の連絡先に対してエラーを連絡することを促すメッセージMS5cと、表示終了ボタンBTeと、を含む。表示終了ボタンBTeが押下されると、通知画面W5の表示は終了される。
【0086】
サービス開始時期情報が取得された場合には(S925:YES)、プリンタ100は、S935にて、プリンタ100の表示部140に、上述した通知画面W3(
図6(C))を表示する。すなわち、この場合には、
図4のS4の接続情報取得処理にてサービス開始時期情報が取得された場合と同様の通知画面が表示される。表示終了ボタンBTeが押下されると、通知画面W3の表示は終了される。
【0087】
S940では、
図5のS835と同様に、プリンタ100は、
図4の処理の次回の実行時刻を設定する。例えば、次回の実行時刻は、上述のサービス開始時期情報に基づいて、サービスの提供が開始される時期よりも後の時刻に設定される。S930にて実行時刻が設定された場合には、その後に実行時刻が到来したときに、
図4の処理がS2から再度実行される。
【0088】
S930、S940の後には、第2動作判定処理は終了され、
図4の処理は、中断される。したがって、この場合には、オンボーディング処理が完了しないので、
図4のS18のサービス処理は実行できない。
【0089】
アプリケーションとの処理にてエラーが発生していない場合には(S920:NO)、すなわち、オンボーディング処理が正常に終了した場合には、プリンタ100とサーバ300Aとは、協働して、サービス処理を実行できる。このために、この場合には、プリンタ100は、第2動作判定処理を終了し、
図4のS18に処理を進める。
【0090】
図4のS18の処理は、
図3のS700の処理に対応している。すなわち、
図4のS18では、プリンタ100と対象サーバ(サーバ300A)とは、協働して、サービス処理を実行する。
【0091】
A-3.動作例
以上説明した処理によれば、エラーが発生した場合には、エラーに応じて、適宜に通知画面W1~W5のいずれかが表示されつつ、処理の再試行等が行われる。以下では、動作例を説明する。
【0092】
図8~
図10は、動作例のシーケンス図である。
図8、
図9では、
図4に示す処理のうち、初回に実行される処理の符号には、
図4の同じ処理の符号の末尾に「A」が付され、2回目、3回目に実行される処理の符号には、
図4の同じ処理の符号の末尾に、それぞれ、「B」、「C」が付されている。
【0093】
A-3-1.動作例1
図8の動作例1では、初回の電源投入を開始契機として、
図8のS2A、S4Aの処理が実行される。ここで、
図8のS4Aの接続情報取得処理にて、接続情報CIが取得できない取得エラーが発生したとする。この場合には、
図8のS8Aの第1動作判定処理にて、通知画面W1(
図6(A))が表示され、処理は中断される(
図5のS810にてYES、S815)。
【0094】
上述したように、本実施例の手法では、プリンタ100の製造後にも、新たにサービスを開始することが容易である。初回の電源投入を開始契機とする場合には、サービスが開始される前であっても、S2A、S4Aの処理が実行されるので、初回の電源投入を開始契機とする場合に取得エラーが発生する場合には、その時点でサーバ300Aによるサービスが提供されていない可能性が高い。この場合には、この時点では、ユーザが取るべき対応は、サービスの開始を待つことであり、ユーザは、サービス事業者への連絡などの積極的な行動を起こす必要はないと考えられる。このために、
図6(A)の通知画面W1は、
図6(B)の通知画面W2とは異なり、ユーザが取るべき対応を示すメッセージを含んでいない。変形例では、通知画面W1は、例えば、「サービス開始案内を受け取るまでお待ちください」等のユーザがとるべき対応を示すメッセージを含んでも良い。
【0095】
サーバ300Aによるサービスが開始されると、ユーザは、サービス開始案内を受領する。ユーザは、サービス開始案内を受領すると、プリンタ100に、
図4の処理を開始させるための上述したユーザ指示を入力する。
【0096】
ユーザ指示が入力されると、ユーザ指示の入力を開始契機として、
図8のS2B、S4Bの処理が実行される。ここで、
図8のS4Bの接続情報取得処理にて、上述のS4Aの場合と同様に、接続情報CIが取得できない取得エラーが発生したとする。この場合には、
図8のS8Sの第1動作判定処理にて、通知画面W2(
図6(B))が表示され、処理は中断される(
図5のS810にてNO、S820)。
【0097】
ユーザ指示を開始契機とする場合には、ユーザは、サービス開始案内を受領していると考えられるために、サーバ300Aによるサービスは開始されている可能性が高い。このために、ユーザ指示を開始契機とする場合に取得エラーが発生する場合には、
図3のS100~S450の過程で、何らかの手続き上の問題(例えば、手続きの間違い)が発生している可能性がある。例えば、
図3のS300、S400の処理における間違いによって、仲介サーバ400に、ユーザのプリンタ100のGUIDに対応する接続情報CIが登録されていない可能性がある。この場合には、ユーザは、適切な連絡先(本実施例ではサーバ300Aを運用するサービス事業者)に、取得エラーの発生を連絡することが好ましい。これによって、例えば、サービス事業者が手続き上の問題の有無を確認して、問題があれば、しかるべき対応を行うことで、当該問題を解決できる場合がある。このために、
図6(B)の通知画面W2は、上述したように、手続に問題がある可能性を通知するメッセージMS2bと、サーバ300Aを運用する事業者等の連絡先に対してエラーを連絡することを促すメッセージMS2cと、を含んでいる。
【0098】
ユーザがサービス事業者に連絡し、サービス事業者が問題解決のための対応を行った後に、ユーザは、再度、ユーザ指示をプリンタ100に入力する。
【0099】
ユーザ指示が入力されると、ユーザ指示の入力を開始契機として、
図8のS2C、S4Cの処理が実行される。ここで、
図8のS4Cの接続情報取得処理では、上述の問題が解決済みであるために、接続情報CIが取得され、接続情報取得処理は、正常に終了する。この場合には、
図8のS8Cの第1動作判定処理は、通知画面を表示することなく、正常に終了する(
図5のS805にてYES、S825にてNO)。
【0100】
その後に、
図8のS10A~S16Aが実行される。
図8の動作例1では、S14Aのオンボーディング処理は、エラーが発生することなく、正常に終了するものとする。この場合には、S16Aの第2動作判定処理も、通知画面を表示することなく、正常に終了する(
図7のS905にてNO、S920にてNO)。そして、
図8のS18Aにて、プリンタ100とサーバ300Aとの間でサービス処理が実行される。
【0101】
A-3-2.動作例2
図9の動作例2では、初回の電源投入を開始契機として、
図9のS2A、S4Aの処理が実行される。ここで、
図9のS4Aの接続情報取得処理にて、接続情報CIが取得され、S4Aの接続情報取得処理は、正常に終了したとする。この場合には、
図9のS8Aの第1動作判定処理は、通知画面を表示することなく、正常に終了する(
図5のS805にてYES、S825にてNO)。
【0102】
その後に、
図9のS10A~S16Aが実行される。
図9の動作例2では、S14Aのオンボーディング処理では、接続確立処理にて応答エラーが発生したとする。この場合には、
図9のS16Aの第2動作判定処理にて、通知画面W4(
図6(D)が表示され、オンボーディング処理の再試行が設定される(
図7のS905にてYES、S910、S915にてNO)。
【0103】
接続情報CIが取得されたにも拘わらずに、未到達エラーや応答エラーが発生している場合には、サーバ300Aが存在していないとは考えにくく、サーバ300Aが一時的にダウンしている可能性がある。このために、
図6(D)の通知画面W4は、上述したように、サーバ300Aとの通信の接続に失敗したことを通知するメッセージMS4aと、対象サーバが一時的にダウンしている可能性を通知するメッセージMS4bと、を含んでいる。
【0104】
サーバ300Aが一時的にダウンしている場合には、オンボーディング処理の接続確立処理を何度か再試行すれば、接続確立処理が成功する可能性がある。このために、この場合には、
図9のS14Bにて、オンボーディング処理が再試行される。
【0105】
S14Bのオンボーディング処理では、接続確立処理と認証処理とはエラーが発生することなく完了されるものとする。そして、S14Bのオンボーディング処理では、サービス準備処理にて、サービスの提供が開始されていないためにサービス情報を取得できない提供エラーが発生し、プリンタ100はサービス開始時期情報を取得するとする。この場合には、
図9のS16Bの第2動作判定処理にて、通知画面W3(
図6(C)が表示され、次の実行時刻が設定されて、処理が中断される(
図7のS920にてYES、S920にてYES、S935、S940)。
【0106】
その後、サーバ300Aにてサービスの提供が開始され、実行時刻が到来すると、実行時刻の到来を開始契機として、
図9のS2B、S4Bが実行される。
図9のS2B、S4B、および、その後の処理は、例えば、
図8のS2C~S8C、S10A~S18Aと同じである。
【0107】
A-3-3.動作例3
図10の動作例3では、初回の電源投入を開始契機として、
図10のS2A~S8Aの処理が実行される。
図10のS2A~S8Aは、
図9のS2A~S8Aと同一であるので、説明を省略する。
【0108】
その後に、
図10のS10A~S16Aが実行される。
図10の動作例3では、S14Aのオンボーディング処理では、認証処理にて認証エラーが発生したとする。この場合には、
図10のS16Aの第2動作判定処理にて、通知画面W5(
図6(E)が表示されて、処理が中断される(
図7のS920にてYES、S925にてNO、S930)。
【0109】
認証エラー等のアプリケーションによる処理のエラーは、サービスの提供が開始されていないためにサービス準備処理が完了できないエラーを除いて、
図3のS100~S450の過程で、何らかの手続き上の問題(例えば、手続きの間違い)が発生している可能性がある。例えば、
図3のS200、S300の処理の間違いによって、バウチャーVCの適切な受け渡しが行われておらず、認証処理において、プリンタ100が、サーバ300Aの正当性を確認できない場合には、認証エラーが発生する。この場合には、ユーザは、適切な連絡先に、認証エラーの発生を連絡することが好ましい。これによって、例えば、サービス事業者が手続き上の問題の有無を確認して、問題があれば、しかるべき対応を行うことで、当該問題を解決できる場合がある。このために、
図6(E)の通知画面W5は、
図6(B)の通知画面W2と同様に、手続に問題がある可能性を通知するメッセージMS5bと、サーバ300Aを運用する事業者等の連絡先に対してエラーを連絡することを促すメッセージMS5cと、を含んでいる。
【0110】
ユーザがサービス事業者に連絡し、サービス事業者が問題解決のための対応を行った後に、ユーザは、再度、ユーザ指示をプリンタ100に入力する。サービス開始案内を受領する。ユーザは、サービス開始案内を受領すると、プリンタ100に、
図4の処理を開始させるための上述したユーザ指示を入力する。
【0111】
ユーザ指示が入力されると、ユーザ指示の入力を開始契機として、
図10のS2B~S18Bの処理が実行される。
図10のS2B~S16B、S18Aの処理は、例えば、
図8のS2C~S8C、S10A~S18Aと同じである。
【0112】
以上説明した本実施例によれば、プリンタ100は、仲介サーバ400から対象サーバであるサーバ300Aと接続するための接続情報CIを取得する接続情報取得処理を実行する(
図4のS4)。プリンタ100は、接続情報CIを用いてサーバ300Aと接続するオンボーディング処理を実行する(
図4のS14)。プリンタ100は、接続情報取得処理にて接続情報CIが取得できない場合にユーザにエラーを通知する(
図5のS815、S820、S830)。プリンタ100は、接続情報取得処理が試行される試行タイミングが第1のタイミング(例えば、初回の電源投入のタイミング)である場合には、第1のエラー通知(例えば、通知画面W1の表示)を実行し、試行タイミングが第1のタイミングとは異なる第2のタイミング(例えば、ユーザ指示や実行時刻到来)である場合には、第1のエラー通知とは異なる第2のエラー通知(例えば、通知画面W2の表示)を実行する(
図5のS810~S820)。この結果、接続情報CIの取得処理を試行する試行タイミングに応じて、適切なエラー通知を実行し得る。したがって、サーバと接続可能なデバイスであるプリンタ100において、ユーザに対する利便性を向上し得る。例えば、上述したように、試行タイミングに応じて、エラーが発生した場合に、ユーザが取るべき対応が異なる場合には、該ユーザが取るべき対応に応じてエラー通知が実行され得るので、利便性が向上する。
【0113】
さらに、上記第1のタイミングは、1回目の接続情報取得処理が試行されるタイミング(本実施例では、初回の電源投入のタイミング)である(
図5のS810にてYES)。第2のタイミングは、2回目以降の接続情報取得処理が試行されるタイミング(本実施例では、実行時刻が到来したタイミングやユーザ指示が入力されるタイミング)である(
図5のS810にてNO)。この構成によれば、1回目の接続情報取得処理が試行されるタイミングと、2回目以降の接続情報取得処理が試行されるタイミングと、のそれぞれで、適切なエラー通知を実行し得る。例えば、実施例のように、1回目の接続情報取得処理が試行されるタイミングと、2回目以降の接続情報取得処理が試行されるタイミングと、では、サーバ300Aの状況(例えば、サービスが開始されているか否か)が異なる場合がある。このような場合であっても状況に応じた適切なエラー通知が実行される。
【0114】
さらに、上記第1のタイミングは、接続情報取得処理が試行される特定のタイミング(本実施例では、初回の電源投入のタイミング)である(
図5のS810にてYES)。第2のタイミングは、特定のタイミングでの接続情報取得処理またはオンボーディング処理において設定される実行時刻が到来したタイミングである(
図5のS810にてNO)。この構成によれば、特定のタイミングと、実行時刻が到来したタイミングと、のそれぞれで、適切なエラー通知を実行し得る。例えば、特定のタイミングと、実行時刻が到来したタイミングと、では、サーバ300Aの状況(例えば、サービスが開始されているか否か)が異なる場合がある。このような場合であっても状況に応じた適切なエラー通知が実行される。
【0115】
さらに、上記第1のタイミングは、プリンタ100が、ユーザ指示を取得することとなく、接続情報取得処理を試行するタイミングであり、第2のタイミングは、ユーザ指示を取得することに応じて、接続情報取得処理を試行するタイミングである。例えば、実施例のように、ユーザ指示が取得することなく、接続情報取得処理が実行される場合(例えば、初回の電源投入時)と、ユーザ指示が取得されることに応じて、接続情報取得処理が実行される場合とでは、サーバ300Aの状況が異なる場合がある。例えば、本実施例では、ユーザ指示は、サービスが開始されているか否か)が異なる場合がある。このような場合であっても状況に応じた適切なエラー通知が実行される。
【0116】
さらに、上記第2のタイミングで実行される第2のエラー通知(本実施例の通知画面W2)は、サーバ300Aに関連する特定の連絡先に対してエラーを連絡することをユーザに促すメッセージMS2cを含む(
図6(B))。上記第1のタイミングで実行される第1のエラー通知(本実施例の通知画面W1)は、このようなメッセージを含まない(
図6(A))。上述のように、接続情報取得処理の試行タイミングによって、例えば、サービス事業者等の特定の連絡先に対してエラーを連絡することでエラーを解決できる可能性が高い場合と、特定の連絡先に対してエラーを連絡してもエラーを解決できる可能性が低い場合がある。本実施例では、このような状況に応じて、適切なエラー通知を実行できる。
【0117】
さらに、本実施例によれば、取得される接続情報CIは、サーバ300Aの所在を示す所在情報を含む(
図2(D))ので、例えば、プリンタ100は、製造時にサーバ300Aの所在情報を保持していなくても、サーバ300Aとの間でオンボーディング処理を実行できる。
【0118】
さらに、本実施例によれば、プリンタ100は、仲介サーバ400から、サーバ300Aによるサービスが提供されていないことを示すサービス開始時期情報を取得する場合に(
図5のS825にてYES)、サービスが提供されていない旨を示すメッセージMS3aを含む提供エラー通知(本実施例の通知画面W3)を実行する(
図5のS830、
図6(B))。この結果、サーバ300Aによるサービスが提供されていない場合に適切なエラー通知を実行できる。
【0119】
さらに、本実施例によれば、プリンタ100は、オンボーディング処理(
図4のS14)にて、エラーが発生した場合に、接続情報取得処理にて通知され得る第1のエラー通知(例えば、通知画面W1の表示)とは異なる接続エラー通知(例えば、通知画面W4、W5の表示)を実行する(
図7のS910、S930)。この結果、エラーが発生した処理に応じて、適切な通知を実行できる。
【0120】
具体的には、プリンタ100は、接続確立処理にてエラーが発生した場合には、接続エラー通知として、第3のエラー通知(例えば、通知画面W4の表示)を実行し、認証処理やサービス準備処理にてエラーが発生した場合には、接続エラー通知として、第3のエラー通知とは異なる第4のエラー通知(例えば、通知画面W5の表示)を実行する。そして、第4のエラー通知(例えば、通知画面W5の表示)は、サーバ300Aに関連する特定の連絡先に対してエラーを連絡することをユーザに促すメッセージMS5cを含む(
図6(E))。第3のエラー通知(例えば、通知画面W4の表示)は、このようなメッセージを含まない(
図6(D))。上述のようにオンボーディング処理におけるエラーの種類によって、例えば、サービス事業者等の特定の連絡先に対してエラーを連絡することでエラーを解決できる可能性が高い場合と、特定の連絡先に対してエラーを連絡してもエラーを解決できる可能性が低い場合がある。本実施例では、このような状況に応じて、適切なエラー通知を実行できる。
【0121】
さらに、本実施例によれば、オンボーディング処理の接続確立処理にてエラーが発生した場合に、オンボーディング処理を再度試行し(
図7のS915)、オンボーディング処理の認証処理やサービス準備処理にてエラーが発生した場合に、オンボーディング処理を再度試行しない(
図7)。上述のように、接続確立処理にてエラーが発生した場合には、例えば、一時的な通信障害やサーバ300Aのダウンなどのエラーである可能性があるために、オンボーディング処理を再度試行した場合には同一のエラーが発生しない可能性がある。認証処理やサービス準備処理にてエラーが発生した場合には、例えば、サーバ300A側で対応が必要である可能性が高いので、オンボーディング処理を再度試行したとしても同一のエラーが発生する可能性が高い。本実施例によれば、このような事情に鑑みて、オンボーディング処理の再試行を適切に実行できる。
【0122】
さらに、本実施例によれば、プリンタ100は、サーバ300Aにてサービスが提供されていないためにサービス準備処理を完了できない場合に(
図6のS925にてYES)、上述のように、サービスが提供されていない旨を示すメッセージMS3aを含むエラー通知(例えば、
図6(C)の通知画面W3の表示)を実行する(
図6のS935)。この結果、サーバ300Aにてサービスが提供されていない場合であっても適切な通知を実行できる。
【0123】
さらに、本実施例によれば、プリンタ100は、サーバ300Aにてサービスが提供されていない場合に、接続情報取得処理やオンボーディング処理において、サービスの提供が開始される時期に関するサービス開始時期情報を受信し(
図5のS825にてYES、または、
図7のS915にてYES)、サービス開始時期情報に基づいて、サービスの提供が開始される時期より後に、接続情報取得処理およびオンボーディング処理を再度試行する(
図5のS935または
図7のS940)。この結果、対象サーバによるサービスの提供が開始された後に、オンボーディング処理を再度試行するので、オンボーディング処理を適切に完了できる。
【0124】
以上の説明から解るように、本実施例の接続情報取得処理は、取得処理の例であり、オンボーディング処理は、接続処理の例である。また、オンボーディング処理の接続確立処理は、第1処理の例であり、認証処理およびサービス準備処理は、第2処理の例である。
【0125】
B.第2実施例
第2実施例では、
図4に示すように、
図4の処理の開始契機が第2実施例とは異なる。第2実施例のシステム1000は、
図2に破線で示すように、第1実施例では備えていない情報提供サーバ500を備えている。
【0126】
情報提供サーバ500は、例えば、プリンタ100の製造事業者が運用するサーバである。プリンタ100は、定期的に(例えば、1日に一度)、情報提供サーバ500に情報要求信号を送信する。情報提供サーバ500は、情報要求信号を受信したときに、プリンタ100に送信すべき情報がある場合には、プリンタ100に、情報要求信号に対する応答として該情報を送信する。
【0127】
第2実施例では、情報提供サーバ500は、サーバ300Aにてサービスの提供が開始された場合には、サーバ300A、もしくは、サーバ300Aの運用者の別の端末装置からの通知に基づいて、サーバ300Aにてサービスの提供が開始されたことを示すサービス開始通知を記憶する。情報提供サーバ500は、サービス開始通知の記憶後に、プリンタ100から情報要求信号を受信したときに、プリンタ100にサービス開始通知を送信する。
【0128】
第2実施例における
図4の処理の開始契機は、第1実施例におけるユーザ指示に変えて、サービス開始通知の受信を含む。すなわち、第2実施例における
図4の処理の開始契機は、第1実施例と同様の初回の電源投入と実行時刻の到来と、第1実施例とは異なるサービス開始通知の受信と、を含む(
図4)。このために、第2実施例では、初回の電源投入の後に、サービス開始通知が受信される場合、最初に
図4のS4の接続情報取得処理が試行されるタイミングは、サービス開始通知が受信される前のタイミングである。そして、その後に、
図4のS4の接続情報取得処理が試行されるタイミングは、サービス開始通知が受信された後のタイミングである。
【0129】
このために、第2実施例では、
図4のS4の接続情報取得処理にて、接続情報CIが取得できない取得エラーが発生した場合において、接続情報取得処理の試行タイミングが、初回の電源投入のタイミングである場合には(
図5のS810にてYES)、
図6(A)の通知画面W1が表示される(
図5のS815)。そして、接続情報取得処理の試行タイミングが、サービス開始通知が受信された後のタイミングである場合には(
図5のS810にてNO)、
図6(B)の通知画面W2が表示される(
図5のS820)。
【0130】
この結果、第2実施例によれば、プリンタ100は、サービス開始通知が受信される前に接続情報取得処理が試行されるタイミングと、サービス開始通知が受信された後に接続情報取得処理が試行されるタイミングと、のそれぞれで、適切なエラー通知を実行し得る。
【0131】
C.第3実施例
図11は、第3実施例の第1動作判定処理のフローチャートである。第3実施例では、第1動作判定処理が第1実施例とは異なっており、
図5の第1動作判定処理に代えて、
図11の第1動作判定処理が実行される。
【0132】
図11の第1動作判定処理と
図5の第1動作判定処理とが異なる点は、
図11の第1動作判定処理では、
図5の第1動作判定処理のS815の処理が実行されない点である。
図11の第1動作判定処理の他の処理は、
図5の第1動作判定処理の同符号の処理と同一である。
【0133】
すなわち、
図11の第1動作判定処理では、プリンタ100は、S810にて、
図4のS2の処理の開始契機が初回の電源投入であるか否かを判断する。プリンタ100は、開始契機が初回の電源投入である場合には(S810:YES)、プリンタ100は、通知画面を表示することなく、
図11の第1動作判定処理を終了する。これによって、
図4の処理は、中断される。
【0134】
開始契機が初回の電源投入でない場合には(S810:NO)、プリンタ100は、
図5の第1動作判定処理と同様に、S820にて、表示部140に通知画面W2を表示し、その後に、
図11の第1動作判定処理を終了する。これによって、
図4の処理は、中断される。ここで、第3実施例において、開始契機が初回の電源投入でない場合は、第1実施例と同様に、開始契機がユーザ指示である場合や開始契機が実行時刻の到来である場合である。これに代えて、あるいは、これに加えて、開始契機が初回の電源投入でない場合は、第2実施例と同様に、開始契機が、情報提供サーバ500からサービス開始通知を受信したことであっても良い。
【0135】
以上の説明から解るように、第3実施例では、上述した
図8(動作例1)のS4Aの接続情報取得処理にて、接続情報CIが取得できない取得エラーが発生した場合には、
図8のS8Aの第1動作判定処理にて、通知画面が表示されることなく、処理は中断される(
図11のS810にてYES)。この場合には、ユーザは、例えば、取得エラーが発生したことを認識することもない。
【0136】
以上説明した本実施例によれば、プリンタ100は、仲介サーバ400から対象サーバであるサーバ300Aと接続するための接続情報CIを取得する接続情報取得処理を実行する(
図4のS4)。プリンタ100は、接続情報CIを用いてサーバ300Aと接続するオンボーディング処理を実行する(
図4のS14)。プリンタ100は、接続情報取得処理にて接続情報CIが取得できない場合にはユーザにエラーを通知する場合がある(
図11のS820、S830)。プリンタ100は、接続情報取得処理が試行される試行タイミングが第1のタイミング(例えば、初回の電源投入のタイミング)である場合には、エラー通知を実行せず、試行タイミングが第1のタイミングとは異なる第2のタイミング(例えば、ユーザ指示や実行時刻到来)である場合には、第1実施例と同様の第2のエラー通知(例えば、通知画面W2の表示)を実行する(
図11のS810~S820)。この結果、接続情報CIの取得処理を試行する試行タイミングに応じて、エラー通知を実行するか否かを適切に切り替えることができる。したがって、サーバと接続可能なデバイスであるプリンタ100において、ユーザに対する利便性を向上し得る。
【0137】
例えば、初回の電源投入のタイミングで、取得エラーが発生した場合には、ユーザは、対応する必要がない可能性が高い。例えば、第1実施例でも説明したように、その時点で対象サーバ(例えば、サーバ300A)によるサービスが提供されていない場合には、ユーザは、サービスの開始を待てば良く、何らかの対応を行う必要はない。また、ユーザがそもそもサービスを利用する意志がなく、サービスの利用契約を結んでいない場合がある。この場合には、初回の電源投入のタイミングで接続情報取得処理が実行されても、当然に、対象サーバであるサーバ300Aと接続するための接続情報CIは取得されず、取得エラーが発生する。この場合にも、ユーザは、何ら対応を行う必要はない。ユーザが何ら対応を行う必要がない場合には、エラー通知が表示されてもユーザにとって利益がなく、ユーザに不安を与える不利益だけが生じる可能性がある。これに対して、初回の電源投入とは異なるタイミング、例えば、サービスの開始案内を受領したユーザの指示が入力されたタイミングや、サービス開始時期情報に基づく実行時刻が到来したタイミングで接続情報取得処理が実行される場合は、例えば、第1実施例で説明したように、ユーザがサービス事業者に連絡する等の対応を行う必要がある可能性が高い。従って、この場合には、第1実施例と同様に、エラー通知を行う必要性が高い。本実施例によれば、このように、試行タイミングによって、エラーが発生した場合にユーザが対応を取る必要がある場合と無い場合がある場合などに、試行タイミングに応じてエラー通知を実行するか否かが適切に切り替えられるので、利便性が向上する。
【0138】
D.変形例
(1)上記実施例では、接続情報取得処理は、サービスを提供するサーバ300A~300Dとは異なる仲介サーバ400とプリンタ100との間で実行され、プリンタ100は、仲介サーバ400から接続情報CIを取得している。これに代えて、接続情報取得処理は、例えば、サーバ300A~300Dのうちの1つのサーバ(例えばサーバ300A)とプリンタ100との間で実行され、プリンタ100は、サーバ300Aから接続情報CIを取得しても良い。この場合には、例えば、サーバ300Aは、プリンタ100から第1のURLを用いてアクセスされる場合には、プリンタ100との間で接続情報取得処理を実行し、プリンタ100から第2のURLを用いてアクセスされる場合には、プリンタ100との間でオンボーディング処理を実行する。そして、プリンタ100の不揮発性記憶装置130には、仲介サーバ情報RSIに代えて、第1のURLを含むサーバ300Aに接続するための情報が記憶される。
【0139】
(2)上記実施例では、プリンタ100は、サービス開始時期情報を取得する場合には、次の実行時刻を設定して、自動的に、接続情報取得処理を再度試行している。これに代えて、プリンタ100は、サービス開始時期情報を取得する場合には、サービスの開始時期をユーザに通知するメッセージを含む通知画面を表示しても良い。この場合には、サービスの開始時期が到来した後に、ユーザがユーザ指示をプリンタ100に入力することによって、接続情報取得処理が再度試行される。
【0140】
(3)上記実施例では、仲介サーバ400やサーバ300Aは、サーバ300Aにてサービスが開始されていない場合に、サービス開始時期情報を送信している。これに代えて、サービスが開始されていないことのみを示し、サービスの開始時期を示さない情報が、送信されても良い。この場合には、プリンタ100は、実行時刻を自動的に設定することはきないので、実行時刻の設定は行われなくても良い。この場合には、例えば、サービス開始案内をユーザが受領した場合に、ユーザ指示がプリンタ100に入力されることによって、次回の接続情報取得処理が試行される。
【0141】
また、サービス開始時期情報に代えて、サービスの提供が開始される時期に関連する他の時期情報が用いられても良い。例えば、サービスの提供が開始される時期よりも後に設定される実行推奨時期を示す推奨時期情報が用いられても良い。例えば、サーバ300Aや仲介サーバ400は、同じ時刻にプリンタからのサーバ300Aへのアクセスが集中しないように、送信先のプリンタごとに少しずつ時期が異なる実行推奨時期を示す推奨時期情報を送信しても良い。この場合には、例えば、プリンタ100は、推奨時期情報を受信すると、
図5のS835や
図7のS940にて、推奨時期情報によって示される実行推奨時期に次回の実行時刻を設定しても良い。
【0142】
(4)上記実施例の通知画面W2(
図6(B))や通知画面W5(
図6(E))は、特定の連絡先に対してエラーを連絡することをユーザに促すメッセージMS2c、MS2cを含む。これに代えて、例えば、これらの通知画面W2、W5は、ユーザ自身が実行可能な問題を解決するための方法を提示するメッセージを含んでも良い。例えば、通知画面W2は、メッセージMS2cに代えて、あるいは、メッセージMS2cとともに、ユーザが自身の端末装置を用いてバウチャーVCをサーバ300Aに送信し直す方法や、該方法の説明を閲覧するためのURLを提示するメッセージが含まれても良い。
【0143】
(5)上記実施例の第1動作判定処理や第2動作判定処理は、一例であり、適宜に一部の処理の省略や変形がされても良い。例えば、第1動作判定処理や第2動作判定処理において、実行時刻の設定(
図5のS830、
図7のS940)は省略されても良い。第1動作判定処理において実行時刻の設定を行わない場合には、
図5のS830では、通知画面W3に代えて、通知画面W1が表示されても良い。
【0144】
例えば、複数の通知画面を使い分けるのは、第1動作判定処理のみとし、第2動作判定処理では、エラーが発生した場合には、常に共通の通知画面が表示されても良い。共通の通知画面は、例えば、単に、オンボーディング処理においてエラーが発生したことを通知する画面であっても良い。
【0145】
例えば、第2動作判定処理において、
図7のS915の再試行の設定は、省略されても良い。この場合には、S910にて表示される通知画面W4は、所定時間の経過後に、ユーザ指示を入力して接続情報取得処理を再度試行するようにユーザに促すメッセージを含んでも良い。
【0146】
例えば、通知画面W1~W5(
図6)に示すメッセージの文言は、一例であり、これに限られない。これらのメッセージには、例えば、同様の趣旨を表現する他の文言が採用されても良い。
【0147】
また、プリンタ100は、自身の表示部140に、通知画面W1~W5(
図6)を表示することで、ユーザへの通知を実行している。これに代えて、他の方法、例えば、ユーザの端末装置の表示部や音声出力を用いて、ユーザへの通知が実行されても良い。この場合には、例えば、通知画面W1~W5に含まれる通知内容を示す通知データを、ユーザの端末装置に送信しても良い。
【0148】
(6)上記各実施例では、デバイスとしてプリンタ100が採用されている。これに限らず、対象サーバと協働してユーザに対してサービスを提供する他のデバイスが採用されても良い。他のデバイスを用いるサービスには、例えば、自宅やオフィスなどに設定された他のデバイス(例えば、監視カメラ、調理器具等の電化製品)を、端末装置(端末アプリケーション)から対象サーバを介して遠隔操作するサービスが含まれ得る。
【0149】
(8)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
【0150】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0151】
1000…システム,100…プリンタ,110…CPU,120…揮発性記憶装置,130…不揮発性記憶装置,140…表示部,150…操作部,170…印刷機構,180…通信IF,200…端末装置,210…CPU,220…揮発性記憶装置,230…不揮発性記憶装置,240…表示部,250…操作部,280…通信IF,300A~300D…サーバ,310…CPU,320…揮発性記憶装置,330…不揮発性記憶装置,380…通信IF,400…仲介サーバ,410…CPU,420…揮発性記憶装置,430…不揮発性記憶装置,480…通信IF,500…情報提供サーバ,BP…ブラウザプログラム,CDB…接続情報データベース,CI…接続情報,IT…インターネット,PGa,PGb,PGp…コンピュータプログラム,RSI…仲介サーバ情報,VC…バウチャー,VDB…バウチャーデータベース,W1~W5…通知画面