IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ブラザー工業株式会社の特許一覧

特開2023-155006デバイス、および、コンピュータプログラム
<>
  • 特開-デバイス、および、コンピュータプログラム 図1
  • 特開-デバイス、および、コンピュータプログラム 図2
  • 特開-デバイス、および、コンピュータプログラム 図3
  • 特開-デバイス、および、コンピュータプログラム 図4
  • 特開-デバイス、および、コンピュータプログラム 図5
  • 特開-デバイス、および、コンピュータプログラム 図6
  • 特開-デバイス、および、コンピュータプログラム 図7
  • 特開-デバイス、および、コンピュータプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023155006
(43)【公開日】2023-10-20
(54)【発明の名称】デバイス、および、コンピュータプログラム
(51)【国際特許分類】
   H04N 1/00 20060101AFI20231013BHJP
   H04L 67/562 20220101ALI20231013BHJP
【FI】
H04N1/00 127A
H04L67/562
【審査請求】未請求
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022064702
(22)【出願日】2022-04-08
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110001058
【氏名又は名称】鳳国際弁理士法人
(72)【発明者】
【氏名】吉田 聖也
【テーマコード(参考)】
5C062
【Fターム(参考)】
5C062AA02
5C062AA05
5C062AA13
5C062AA35
5C062AB20
5C062AB22
5C062AB23
5C062AB38
5C062AB42
5C062AC22
5C062AC34
5C062AC58
(57)【要約】
【課題】サーバが提供するサービスを利用できなくなることを抑制する。
【解決手段】デバイスは、仲介サーバと接続するための仲介サーバ情報を格納するメモリと、仲介サーバ情報を用いて仲介サーバに接続して、仲介サーバに接続情報が登録されている場合に仲介サーバから接続情報を受信し、接続情報を用いて対象サーバに接続して、対象サーバが提供するサービスをデバイスが利用可能な第1状態になるように、対象サーバから設定情報を受信する。デバイスは、デバイスの状態を第1の状態から第2の状態に遷移させる遷移処理を実行すべき場合に、接続情報を仲介サーバに再度登録するための登録処理を実行し、登録処理の後に遷移処理を実行し、遷移処理の後に仲介サーバから接続情報を再度受信し、接続情報を用いて対象サーバに接続して設定情報を再度受信する。
【選択図】 図4
【特許請求の範囲】
【請求項1】
デバイスであって、
前記デバイスを示すデバイス識別情報と対応付けて接続情報が登録される仲介サーバと接続するための仲介サーバ情報を格納するメモリであって、前記接続情報は、接続すべき対象サーバの所在を示す情報である、前記メモリと、
前記仲介サーバ情報を用いて前記仲介サーバに接続して、前記仲介サーバに前記接続情報が登録されている場合に前記仲介サーバから前記接続情報を受信する接続情報受信部と、
前記接続情報を用いて前記対象サーバに接続して、前記対象サーバが提供するサービスを前記デバイスが利用するための設定情報を前記対象サーバから受信する設定情報受信部と、
受信された前記設定情報を前記メモリに格納する格納処理部と、
前記デバイスの状態を第1の状態から第2の状態に遷移させる遷移処理を実行する状態遷移部であって、前記第1状態は、前記設定情報が前記メモリに格納されていることによって前記サービスを前記デバイスが利用可能な状態であり、前記第2の状態は、前記仲介サーバ情報が前記メモリに格納され、かつ、前記接続情報が前記メモリに格納されておらず、かつ、前記設定情報が前記メモリに格納されていない状態である、前記状態遷移部と、
前記遷移処理を実行すべき場合に、前記接続情報を前記仲介サーバに再度登録するための登録処理を実行する登録処理部と、
を備え、
前記状態遷移部は、前記登録処理の後に、前記遷移処理を実行し、
前記接続情報受信部は、前記遷移処理の後に、前記仲介サーバから、再度登録される前記接続情報を受信し、
前記設定情報受信部は、受信される前記接続情報を用いて前記対象サーバに接続して、前記設定情報を再度受信し、
前記格納処理部は、再度受信される前記設定情報を前記メモリに格納する、デバイス。
【請求項2】
請求項1に記載のデバイスであって、
前記登録処理は、前記接続情報を前記仲介サーバに登録することを前記対象サーバに実行させる登録指示を、前記対象サーバに送信する処理である、デバイス。
【請求項3】
請求項1に記載のデバイスであって、さらに、
前記遷移処理を実行すべき場合に、前記登録処理の実行指示をユーザから取得する指示取得部を備え、
前記登録処理部は、前記実行指示が取得されることに応じて、前記登録処理を実行する、デバイス。
【請求項4】
請求項3に記載のデバイスであって、
前記遷移処理の後に、
前記接続情報受信部は、ユーザからの指示を取得することなく、前記仲介サーバから再度登録される前記接続情報を受信し、
前記設定情報受信部は、ユーザからの指示を取得することなく、前記対象サーバから前記設定情報を再度受信する、デバイス。
【請求項5】
請求項1に記載のデバイスであって、さらに、
前記登録処理部は、ユーザからの指示を取得することなく、前記登録処理を実行し、
前記設定情報受信部は、前記遷移処理の後に行われる受信指示の後に、前記対象サーバから前記設定情報を再度受信する、デバイス。
【請求項6】
請求項5に記載のデバイスであって、さらに、
前記設定情報受信部は、
前記遷移処理の後に、前記対象サーバから前記設定情報を再度受信すべきか否かを確認する確認要求を前記対象サーバに対して送信し、
前記確認要求に対する応答として前記受信指示を前記対象サーバから受信する場合に、前記対象サーバから前記設定情報を再度受信する、デバイス。
【請求項7】
請求項6に記載のデバイスであって、さらに、
ユーザへの通知のための通知情報を前記対象サーバに送信する通知情報送信部を備え、
前記対象サーバは、
前記通知情報を用いて、前記対象サーバが提供する前記サービスを利用するか否かをユーザに確認する確認通知を送信し、
前記確認通知に対する応答として、前記前記サービスを利用する指示を受信する場合に、前記受信指示を前記デバイスに送信する、デバイス。
【請求項8】
請求項7に記載のデバイスであって、さらに、
前記通知情報は、メールアドレスである、デバイス。
【請求項9】
メモリを備えるデバイスを制御するためのコンピュータプログラムであって、
前記メモリは、前記デバイスを示すデバイス識別情報と対応付けて接続情報が登録される仲介サーバと接続するための仲介サーバ情報を格納し、
前記接続情報は、接続すべき対象サーバの所在を示す情報であり、
前記コンピュータプログラムは、
前記仲介サーバ情報を用いて前記仲介サーバに接続して、前記仲介サーバに前記接続情報が登録されている場合に前記仲介サーバから前記接続情報を受信する接続情報受信機能と、
前記接続情報を用いて前記対象サーバに接続して、前記対象サーバが提供するサービスを前記デバイスが利用するための設定情報を前記対象サーバから受信する設定情報受信機能と、
受信される前記設定情報を前記メモリに格納する格納処理機能と、
前記デバイスの状態を第1の状態から第2の状態に遷移させる遷移処理を実行する状態遷移機能であって、前記第1状態は、前記設定情報が前記メモリに格納されていることによって前記サービスを前記デバイスが利用可能な状態であり、前記第2の状態は、前記仲介サーバ情報が前記メモリに格納され、かつ、前記接続情報が前記メモリに格納されておらず、かつ、前記設定情報が前記メモリに格納されていない状態である、前記状態遷移機能と、
前記遷移処理を実行すべき場合に、前記接続情報を前記仲介サーバに再度登録するための登録処理を実行する登録処理機能と、
をコンピュータに実現させ、
前記状態遷移機能は、前記登録処理の後に、前記遷移処理を実行し、
前記接続情報受信機能は、前記遷移処理の後に、前記仲介サーバから、再度登録される前記接続情報を受信し、
前記設定情報受信機能は、受信される前記接続情報を用いて前記対象サーバに接続して、前記設定情報を再度受信し、
前記格納処理機能は、再度受信される前記設定情報を前記メモリに格納する、コンピュータプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、サーバに接続されるデバイス、および、コンピュータプログラムに関する。
【背景技術】
【0002】
特許文献1に開示されたシステムでは、複合機(MFP)は、接続先提供サーバにアクセスして、アプリケーションを記憶するサーバのURLを受信する。複合機は、受信したURLを用いて、サーバにアクセスして、アプリケーションをダウンロードする。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】国際公開第2017/150472号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記文献には、複合機の状態を遷移させる場合、例えば、サーバにアクセス可能な状態から工場出荷時の状態に遷移させる場合の処理について、何ら開示されていない。このために、上記文献の技術では、複合機の状態を遷移させた場合に、複合機がサーバにアクセスできず、サーバが提供するサービスを利用できなくなる可能性があった。
【0005】
本明細書は、サーバに接続されるデバイスの状態を遷移させる場合に、遷移後のデバイスが、サーバが提供するサービスを利用できなくなることを抑制できる技術を開示する。
【課題を解決するための手段】
【0006】
本明細書に開示された技術は、以下の適用例として実現することが可能である。
【0007】
[適用例1] デバイスであって、
前記デバイスを示すデバイス識別情報と対応付けて接続情報が登録される仲介サーバと接続するための仲介サーバ情報を格納するメモリであって、前記接続情報は、接続すべき対象サーバの所在を示す情報である、前記メモリと、前記仲介サーバ情報を用いて前記仲介サーバに接続して、前記仲介サーバに前記接続情報が登録されている場合に前記仲介サーバから前記接続情報を受信する接続情報受信部と、前記接続情報を用いて前記対象サーバに接続して、前記対象サーバが提供するサービスを前記デバイスが利用するための設定情報を前記対象サーバから受信する設定情報受信部と、受信される前記設定情報を前記メモリに格納する格納処理部と、前記デバイスの状態を第1の状態から第2の状態に遷移させる遷移処理を実行する状態遷移部であって、前記第1状態は、前記設定情報が前記メモリに格納されていることによって前記サービスを前記デバイスが利用可能な状態であり、前記第2の状態は、前記仲介サーバ情報が前記メモリに格納され、かつ、前記接続情報が前記メモリに格納されておらず、かつ、前記設定情報が前記メモリに格納されていない状態である、前記状態遷移部と、前記遷移処理を実行すべき場合に、前記接続情報を前記仲介サーバに再度登録するための登録処理を実行する登録処理部と、を備え、前記状態遷移部は、前記登録処理の後に、前記遷移処理を実行し、前記接続情報受信部は、前記遷移処理の後に、前記仲介サーバから、再度登録される前記接続情報を受信し、前記設定情報受信部は、受信される前記接続情報を用いて前記対象サーバに接続して、前記設定情報を再度受信し、前記格納処理部は、再度受信される前記設定情報を前記メモリに格納する、デバイス。
【0008】
上記構成によれば、デバイスは、遷移処理を実行すべき場合に、接続情報の登録処理を実行し、その後に遷移処理を実行する。デバイスは、該遷移処理の後に、仲介サーバから再度登録される接続情報を受信し、再度受信される接続情報を用いて対象サーバから、設定情報を再度受信し、メモリに格納する。この結果、対象サーバに接続されるデバイスの状態を第1状態から第2状態に遷移させる場合に、遷移後のデバイスが、対象サーバが提供するサービスを利用できなくなることを抑制できる。
【0009】
なお、本明細書に開示された技術は、種々の形態で実現可能であり、例えば、対象サーバとデバイスとを含むシステム、デバイスまたはシステムにおける方法、これらの装置および方法の機能を実現するためのコンピュータプログラム、そのコンピュータプログラムを記録した記録媒体、等の形態で実現することができる。
【図面の簡単な説明】
【0010】
図1】システム1000の構成を示すブロック図。
図2】データベースおよび該データベースに格納される情報の説明図。
図3】ユーザがプリンタ100の購入する際に実行される処理のシーケンス図。
図4】第1実施例の初期化関連処理のシーケンス図。
図5】表示部140に表示される画面の一例を示す図。
図6】第2実施例の初期化関連処理のシーケンス図。
図7】変形例の初期化関連処理の第1のシーケンス図。
図8】変形例の初期化関連処理の第2のシーケンス図。
【0011】
A.第1実施例
A-1.システム1000の構成
図1は、システム1000の構成を示すブロック図である。システム1000は、プリンタ100と、プリンタを用いるサービスを提供するサーバ300A~300Dと、仲介サーバ400と、を備える。なお、端末装置200は、第1実施例では備えられていなくても良く、第2実施例にて備えられる構成である。このために、端末装置200については、第2実施例にて説明する。
【0012】
プリンタ100は、プリンタ100のコントローラとして、CPU110と、DRAMなどの揮発性記憶装置120と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置130と、を備えている。また、プリンタ100は、画像を表示する液晶ディスプレイなどの表示部140と、ユーザによる操作を取得するためのボタンやタッチパネルなどの操作部150と、印刷機構170と、通信インタフェース(IF)180と、を備えている。
【0013】
通信IF180は、インターネットITに接続するためのインタフェース、例えば、イーサネット(登録商標)に準拠した有線のインタフェースや、Wi-Fi規格に準拠した無線のインタフェースである。
【0014】
CPU110は、データ処理を行う演算装置(プロセッサ)である。揮発性記憶装置120は、CPU110が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置130には、プリンタ100を制御するためのコンピュータプログラムPGpと、後述するバウチャーヘッダVHと、が格納されている。
【0015】
コンピュータプログラムPGpは、本実施例では、プリンタ100の製造時に不揮発性記憶装置130に予め格納されて提供される。これに代えて、コンピュータプログラムPGpは、例えば、インターネットITを介して接続されたサーバからダウンロードされる形態、あるいは、CD-ROMなどに記録された形態で提供され得る。
【0016】
CPU110は、コンピュータプログラムPGpを実行することによって、プリンタ100の制御を実行する。例えば、後述するように、CPU110は、サーバ300A~300Dのいずれかと協働して、ユーザに対して所定のサービス(例えば、後述するセットアップサービスや消耗材管理サービスや印刷サービス)を提供する処理(以下、サービス処理とも呼ぶ)を実行する。また、後述するように、CPU110は、サービス処理に先立って、対象サーバや仲介サーバ400と協働して、後述する事前準備を実行する。
【0017】
印刷機構170は、CPU110の制御に従って、印刷を実行する。本実施例の印刷機構170は、複数種類のインク(例えば、シアンとマゼンタとイエロとブラックとの4種類のインク)を色材として用いて、画像を記録媒体に印刷するインクジェット方式の印刷機構である。これに代えて、印刷機構170は、トナーを色材として用いて、画像を記録媒体に印刷する電子写真方式の印刷機構であっても良い。
【0018】
サーバ300A~300Eは、例えば、サービスを提供する事業者が運用する計算機、例えば、クラウドサーバである。例えば、サーバ300A~300Eを運用する事業者は、プリンタ100を製造する事業者や、該事業者とは異なるサードパーティである。サーバ300A~300Eは、それぞれ、互いに異なる2以上の事業者によって運用される2以上のサーバを含み得る。サーバ300A~300Eによって提供されるサービスを、それぞれ、サービスA~サービスDとする。サービスA~サービスDは、例えば、セットアップサービスや消耗材管理サービスや印刷サービスを含む。セットアップサービスは、例えば、ドライバやアプリケーションなどのプログラムをプリンタ100にインストールすることや所定の設定を行うサービスである。消耗材管理サービスは、例えば、インクなどのプリンタ100の消耗材の残量を管理し、消耗材の消耗に応じて該消耗材をユーザに配送するサービスである。印刷サービスは、例えば、ユーザの端末から送信される画像ファイルを用いて印刷ジョブを生成してプリンタ100に送信することによって、プリンタ100に印刷を行わせるサービスである。
【0019】
サーバ300Aは、コントローラとしてのCPU310と、DRAMなどの揮発性記憶装置320と、ハードディスクやフラッシュメモリなどの不揮発性記憶装置330と、通信インタフェース(IF)380と、を備えている。通信IF380は、例えば、イーサネット(登録商標)に準拠した有線のインタフェースである。
【0020】
CPU310は、データ処理を行う演算装置(プロセッサ)である。揮発性記憶装置320は、CPU310が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置330には、コンピュータプログラムPGaと、後述するバウチャーデータベースVDBと、が格納されている。
【0021】
コンピュータプログラムPGaは、例えば、サーバ300Aを運用する事業者によってアップロードされる形態で提供される。サーバ300AのCPU310は、コンピュータプログラムPGaを実行することによって、プリンタ100と協働して、提供すべきサービスを実現するためのサービス処理を実行する。また、CPU310は、サービス処理に先立って、サーバ300Aや仲介サーバ400と協働して、後述する事前準備を実行する。
【0022】
サーバ300B~300Dは、上述したサーバ300Aと同様の構成310~380(図示省略)を備えている。サーバ300B~300Dの構成の説明は省略する。
【0023】
仲介サーバ400は、例えば、所定の事業者(例えば、サービスを提供する事業者やプリンタ100を製造する事業者)が運用する計算機、例えば、クラウドサーバである。仲介サーバ400は、サーバ300Aと同様に、コントローラとしてのCPU410と、揮発性記憶装置420と、通信IF480と、を備えている。揮発性記憶装置420は、CPU410が処理を行う際に生成される種々の中間データを一時的に格納するバッファ領域を提供する。不揮発性記憶装置430には、コンピュータプログラムPGbと、後述する接続情報データベースCDBと、が格納されている。
【0024】
コンピュータプログラムPGbは、例えば、仲介サーバ400を運用する事業者によってアップロードされる形態で提供される。仲介サーバ400のCPU410は、コンピュータプログラムPGbを実行することによって、プリンタ100やサーバ300A~300Dや仲介サーバ400と協働して、後述する事前準備を実行する。
【0025】
プリンタ100と、端末装置200と、サーバ300A~300Dと、仲介サーバ400とは、それぞれ、インターネットITに接続されている。このために、これらの装置100~400は、互いに、インターネットITを介して、通信可能である。
【0026】
図2は、データベースおよび該データベースに格納される情報の説明図である。図2(A)には、サーバ300A~300Dの不揮発性記憶装置330に格納されるバウチャーデータベースVDBの一例が示されている。バウチャーデータベースVDBには、1以上のバウチャーVC(例えば、図2(A)のVC1、VC2)が格納されている。
【0027】
図2(B)には、バウチャーVCの一例が図示されている。バウチャーVCは、デバイス(本実施例では、プリンタ100)の所有権を証明するデータである。バウチャーVCは、バウチャーヘッダVHと、1以上のエントリET(例えば、図2(B)のET1、ET2)と、を含む。
【0028】
バウチャーヘッダ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が保有するシークレット)を用いて計算される。
【0029】
バウチャーヘッダVHは、図1に示すように、プリンタ100の不揮発性記憶装置130にも格納されている。
【0030】
エントリETは、公開鍵Pksと、署名データSDと、を含む。エントリETは、バウチャーVCの受け渡し、すなわち、バウチャーVCの所有者の変更が行われる度に、1つずつ追加される情報である。公開鍵Pksは、受け渡し先が保有する秘密鍵に対応する公開鍵であり、署名データSDは、受け渡し元が保有する秘密鍵を用いて公開鍵Pksを暗号化して得られるデータである。図2(B)のバウチャーVCは、2個のエントリET1、ET2を含んでいる。したがって、図2(B)のバウチャーVCは、2回の受け渡しが行われたことが解る。バウチャーVCに含まれるエントリETとHMACは、後述するオンボーディング処理における認証処理に用いられる。
【0031】
図2(C)には、接続情報データベースCDBの一例が図示されている。接続情報データベースCDBは、1以上の接続情報CIが、GUIDと対応付けて記録されている。図2(C)の例では、接続情報CI1は、GUID「ID1」と対応付けて記録され、接続情報CI2は、GUID「ID2」と対応付けて記録される。各接続情報CIは、対応付けられたGUIDによって識別されるデバイス(例えば、プリンタ100)に送信されるべき情報である。
【0032】
図2(D)は、接続情報CIの一例が図示されている。接続情報CIは、デバイス(例えば、プリンタ100)と協働してサービス処理を実行すべきサーバ(例えば、サーバ300A)と通信の接続を行うための情報である。接続情報CIは、例えば、仲介サーバ400の所在を示す情報(例えば、IPアドレスやURL(Uniform Resource Locator))と、ポート番号と、接続に用いるプロトコルの情報と、を含む。
【0033】
A-2.プリンタ100の製造からサービスの事前準備までの工程
以下では、プリンタ100の製造からサービスの事前準備までの工程について説明する。本実施例では、プリンタ100は、製造事業者によって製造され、販売会社に納品される。その後、プリンタ100は、販売会社からユーザに納品され、ユーザが利用を希望するサービスを提供する対象サーバ(例えば、サーバ300A)とサービス処理を実行可能になるように設定される。
【0034】
プリンタ100の製造工程において、プリンタ100にバウチャーヘッダVHが格納される。バウチャーヘッダVHの格納は、例えば、FIDO Allianceによって公開されている標準仕様である「FIDO Device Onboarding (FDO) Specification」(以下、FDO仕様書とも呼ぶ)に規定されたDI(Device Initialize Protocol)に従って実行される。これによって、図2(B)のバウチャーVCのうちのバウチャーヘッダVHが生成されて、プリンタ100の不揮発性記憶装置130に格納される。
【0035】
次に、例えば、販売会社からの発注に応じて、製造事業者から販売会社にバウチャーVCとプリンタ100とが受け渡される。例えば、製造事業者は、販売会社から公開鍵PKs1を受け取る。例えば、販売会社は、秘密鍵と公開鍵PKs1とのキーペアを準備し、プリンタ100を発注する際に、販売会社の計算機(図示省略)から製造事業者の計算機(図示省略)に公開鍵PKs1を送信する。製造事業者は、計算機を用いてバウチャー延長処理を実行する。例えば、製造事業者の計算機は、販売会社から受け取った公開鍵PKs1と、該公開鍵PKs1を製造事業者の秘密鍵を用いて暗号化して得られる署名データSD1と、を含むエントリET1(図2(B))を生成する。製造事業者の秘密鍵は、バウチャーヘッダVHに含まれる公開鍵PKm(図2(B))に対応する秘密鍵である。製造事業者の計算機は、バウチャーヘッダVHと、1個のエントリET1と、を含むバウチャーVCを、販売会社の計算機に送信する。また、製造事業者から販売会社にプリンタ100が納品される。
【0036】
図3は、ユーザがプリンタ100の購入する際に実行される処理のシーケンス図である。S2にて、ユーザがプリンタ100を注文すると、S4にて、販売会社は、注文されたプリンタ100を発送する。プリンタ100の注文時には、ユーザは、利用可能なサービスA~Dから希望するサービスの利用契約を結ぶことができる。以下では、販売会社とユーザとの間にて、サービスAの利用契約が結ばれたものとする。
【0037】
販売会社は、プリンタ100を発送すると、プリンタ100がユーザに到着するよりも前に、S6の処理を実行する。S6では、販売会社は、ユーザが利用するサービスAを提供するサーバ300AにバウチャーVCを登録する。ここで、利用するサービスを提供するサーバを対象サーバとも呼ぶ。図3の例では、サービスAを提供するサーバ300A(図1)が対象サーバである。例えば、販売会社の担当者は、販売会社の計算機を操作して、サーバ300Aが提供するWEBページにアクセスして、所定の操作を行う。これによって、販売会社の計算機とサーバ300Aとの間でバウチャーVCをサーバ300Aに登録する処理が実行される。
【0038】
具体的には、サーバ300Aは、秘密鍵と公開鍵PKs2とのキーペアを保有しており、販売会社の計算機に公開鍵PKs2を送信する。販売会社の計算機は、該公開鍵PKs2と、該公開鍵PKs2を、販売会社の秘密鍵(公開鍵PKs1に対応する秘密鍵)を用いて暗号化して得られる署名データSD2と、を含むエントリET2(図2(B))を生成する。販売会社の計算機は、製造事業者から受信したバウチャーVCにエントリET2を追加したバウチャーVC(図2(B))をサーバ300Aに送信する。サーバ300Aは、受信したバウチャーVCをバウチャーデータベースVDBに格納する(図2)。これによって、バウチャーVCがサーバ300Aに登録される。
【0039】
なお、変形例では、販売会社からユーザにバウチャーVCが受け渡され、ユーザが、自身の端末装置200から対象サーバ(例えば、サーバ300A)にバウチャーVCを登録しても良い。
【0040】
サーバ300Aは、バウチャーVCを受信すると、S8にて、仲介サーバ400に接続情報CIaを登録する。接続情報CIaは、サーバ300Aに接続するための接続情報CI(図2(D))である。接続情報CIaの登録は、FDO仕様書に規定されたTO0(Transfer Ownership Protocol 0)に従って実行される。例えば、サーバ300Aから仲介サーバ400に、接続情報CIaと、受信したバウチャーVCに含まれるプリンタ100のGUIDと、が送信される。仲介サーバ400は、受信した接続情報CIaをプリンタ100のGUIDと対応付けて接続情報データベースCDB(図1図2(C))に格納する。これによって、接続情報CIaがプリンタ100のGUIDと対応付けて仲介サーバ400に登録される。仲介サーバ400は、接続情報CIaの登録から所定期間(例えば、1週間)が経過すると、接続情報CIaを削除する。このために、後述するS10、S12の処理は、接続情報CIaの登録から所定期間内に実行されることが想定されている。
【0041】
ユーザにプリンタ100が納品されると、ユーザAは、納品されたプリンタ100をインターネットITに接続可能に設置して、S9にて、プリンタ100の電源を投入する。
【0042】
プリンタ100の電源が投入されると、S10、S12にて、プリンタ100と仲介サーバ400との間で接続情報取得処理が実行される。接続情報取得処理は、FDO仕様書に規定されたTO1(Transfer Ownership Protocol 1)に従って実行される。
【0043】
S10では、プリンタ100は、不揮発性記憶装置130に格納されたバウチャーヘッダVH(図1)に含まれる仲介サーバ情報RSIを用いて、仲介サーバ400との通信の接続を確立し、仲介サーバ400に対して接続情報の要求を送信する。接続要求の要求には、バウチャーヘッダVHに含まれるGUID、すなわち、自身を識別するGUIDが含められる。
【0044】
S12では、仲介サーバ400は、接続情報データベースCDBにおいて、受信されたGUIDに対応付けられた接続情報CIaをプリンタ100に送信する。これによって、プリンタ100は、仲介サーバ400から接続情報CIaを受信する。
【0045】
S13では、装置100は、受信された接続情報CIaを不揮発性記憶装置130に格納する。
【0046】
プリンタ100が接続情報CIaを受信すると、S14~S26にて、プリンタ100と、対象サーバであるサーバ300Aと、の間でオンボーディング処理が実行される。オンボーディング処理は、FDO仕様書に規定されたTO2(Transfer Ownership Protocol 2)に従って実行される。
【0047】
オンボーディング処理は、接続確立処理(S14)と、認証処理(S16)と、サービス準備処理(S18~S26)と、を含む。
【0048】
S14では、プリンタ100とサーバ300Aとは、例えば、TCP(Transmission Control Protocol)とIP(Internet Protocol)に従って、プリンタ100上で動作するアプリケーションと、サーバ300A上で動作するアプリケーションと、の間の接続を確立する接続確立処理を実行する。これらのアプリケーションは、接続確立処理の後に、認証処理とサービス準備処理とを実行する。
【0049】
S16では、プリンタ100とサーバ300Aとは、プリンタ100とサーバ300Aとの間で、互いに相手の正当性を確認する認証処理を実行する。例えば、プリンタ100は、所定のフォーマット(例えば、EAT(Entity Attestation Token)フォーマット)に従うトークンをサーバ300Aに送信し、サーバ300Aは、該トークンの正当性を指定された公開鍵を用いて検証することで、プリンタ100の正当性を確認する。
【0050】
サーバ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の正当性を確認する。
【0051】
ここで、サーバ300Aがプリンタ100の正当性を確認できない場合には、サーバ300Aは、サービス準備処理に進むことを拒否する(図示省略)。同様に、プリンタ100がサーバ300Aの正当性(バウチャーVCの正当性)を確認できない場合には、プリンタ100は、サービス準備処理に進むことを拒否する(図示省略)。
【0052】
S18~S26では、プリンタ100とサーバ300Aとは、認証処理によって互いの正当性が確認された後に、プリンタ100とサーバ300Aとの間でサービス処理を実行するために必要なサービス設定情報を交換するサービス準備処理を実行する。
【0053】
S18では、プリンタ100は、サーバ300Aがサービス処理を実行するために必要なサービス設定情報SIaをサーバ300Aに送信する。これによって、サーバ300Aは、サービス設定情報SIaを受信する。サービス設定情報SIaは、例えば、サービス処理にてプリンタ100がサーバ300Aに送信する情報のフォーマットを示す情報を含む。サーバ300Aは、サービス設定情報SIaを受信すると、S22にて、サービス設定情報SIaを不揮発性記憶装置330に格納する。
【0054】
S24では、サーバ300Aは、プリンタ100がサービス処理を実行するために必要なサービス設定情報SIbをプリンタ100に送信する。これによって、プリンタ100は、サービス設定情報SIbを受信する。サービス設定情報SIbは、例えば、プリンタ100とサーバ300Aとの間でサービス処理に関する通信を行う際に用いられるトークンや、フォーマット情報や、プロトコル情報を含む。プリンタ100は、サーバ300Aからサービス設定情報SIbを受信すると、S26にて、サービス設定情報SIbを不揮発性記憶装置130に格納する。
【0055】
サービス準備処理が実行されてサービス設定情報SIbが不揮発性記憶装置130に格納されると、プリンタ100とサーバ300Aとは、サービス処理を実行することができる状態、すなわち、プリンタ100の状態は、サーバ300Aが提供するサービスAをプリンタ100が利用可能な状態(以下、オンボード状態とも呼ぶ)に遷移する。オンボード状態では、仲介サーバ400から受信された接続情報CIa(S12)と、サーバ300Aから受信されたサービス設定情報SIb(S24)と、が不揮発性記憶装置130に格納されている(S13、S26)。なお、サービス設定情報SIbに、サービス処理時にサーバ300Aに接続するための情報(サービス処理用のURLやポート番号)が含まれる場合には、接続情報CIaは、サービス処理には不要であるので、オンボーディング処理後に、不揮発性記憶装置130から削除されても良い。オンボーディング状態は、少なくともサービス設定情報SIbが不揮発性記憶装置130に格納されていることによって、サービスAをプリンタ100が利用可能な状態である、と言うことができる。
【0056】
プリンタ100の状態がオンボード状態に遷移すると、S28にて、プリンタ100とサーバ300Aとは、協働してサービス処理を実行する。サービス処理は、例えば、サーバ300Aが提供するサービスAが消耗材管理サービスである場合には、プリンタ100が定期的にインクなどの消耗材の残量情報をサーバ300Aに送信する処理を含む。
【0057】
以上説明した手法を用いることによって、例えば、以下の利点がある。上記手法では、ユーザや販売会社は、ユーザが利用することを望むサービスを提供する対象サーバにバウチャーVCを登録する(図3のS6)ことによってサービスの提供を受けることができる。このために、ユーザや販売会社は、ユーザが提供を受けるべきサービスを容易に選択できる。
【0058】
また、プリンタ100は、対象サーバの接続情報CIを仲介サーバ400から取得できる(図3のS12)。このために、プリンタ100の製造工程の段階では、仲介サーバ400に接続するための仲介サーバ情報RSIがプリンタ100(不揮発性記憶装置130)に記憶されていれば良く、対象サーバの接続情報CIがプリンタ100に記憶されている必要がない。また、プリンタ100は、対象サーバと協働してサービス処理を実行するために必要なサービス設定情報SIbを対象サーバから取得できる(図3のS14)。このために、プリンタ100の製造工程の段階では、サービス設定情報SIbがプリンタ100に記憶されている必要がない。このために、プリンタ100の製造工程の段階で、利用すべきサービスを想定しておく必要がなく、例えば、プリンタ100の製造後に提供が開始されたサービスや、プリンタ100の製造時には製造事業者に認識されていなかった第三者が提供するサービスであったとしても、ユーザはプリンタ100を用いて該サービスを利用することができる。この結果、サービスの柔軟な提供と利用とを実現できる。例えば、サービスの提供者は、プリンタ100の改造等を行うことなく、新たなサービスを事後的に追加することもできる。例えば、ユーザや販売会社は、利用するサービスの選択や変更を容易に行うことができる。また、プリンタ100の製造事業者、販売業者、ユーザのいずれも、例えば、出荷時や使用時にユーザが希望するサービスに接続できるようにプリンタ100をカスタマイズする必要がないため、プリンタ100の製造事業者、販売業者、ユーザの負担を軽減できる。
【0059】
さらに、上記手法では、バウチャーVCの検証やトークンの検証を行うことによって、プリンタ100と対象サーバとは、互いの正当性を確認することができる。そして、プリンタ100や対象サーバは、相手の正当性を確認できない場合には、オンボーディング処理の実行を拒否できる。このために、プリンタ100が意図しないサーバに接続される、プリンタ100とは異なる不正なデバイスが対象サーバに接続されるなどのセキュリティ上の問題が生じることを抑制できる。
【0060】
A-3.プリンタ100が初期化される場合の処理
本実施例のプリンタ100は、プリンタ100の状態を、工場出荷時の状態に初期化する初期化処理(ファクトリーリセットとも呼ばれる)を実行することができる。例えば、ユーザは、解消が困難なエラーがプリンタ100に発生した場合や、第三者にプリンタ100を譲渡する場合などに、プリンタ100を工場出荷時に戻したい場合がある。初期化処理が実行されると、プリンタ100がユーザに納品された後に、プリンタ100のメモリ(不揮発性記憶装置130および揮発性記憶装置120)に格納されたデータは、全て削除される。初期化処理が実行されても、工場出荷時にプリンタ100のメモリに格納されていたデータ、例えば、バウチャーヘッダVH(図1)、コンピュータプログラムPGp(図1)、デフォルトの設定情報(図示省略)は、削除されない。
【0061】
プリンタ100が初期化処理によってオンボード状態から工場出荷時に遷移すると、上述した接続情報CIaやサービス設定情報SIbは、メモリから削除される。このため、初期化処理の実行後には、プリンタ100は、サーバ300Aと接続してサービス処理を実行することができなくなる。このために、初期化処理後に、ユーザがプリンタ100を用いてサービスAを利用したい場合には、再度、上述したオンボーディング処理が実行される必要がある。以下では、プリンタ100が初期化される場合に実行される初期化関連処理について説明する。
【0062】
図4は、第1実施例の初期化関連処理のシーケンス図である。S52にて、ユーザが操作部150を操作してプリンタ100に初期化指示を入力すると、初期化関連処理が開始される。
【0063】
S53では、プリンタ100は、現在、プリンタ100を用いて利用中のサービスを特定する。例えば、サービスAを利用するためのサービス設定情報SIbが不揮発性記憶装置130に格納されている場合には、プリンタ100は、サービスAを利用中のサービスとして特定する。
【0064】
S54では、プリンタ100は、指示入力画面W1を表示部140に表示する。図5は、表示部140に表示される画面の一例を示す図である。図5(A)の指示入力画面W1は、利用中のサービスをユーザに通知し、該サービスを初期化処理後に利用するか否かをユーザに確認するメッセージMS1と、ボタンBT1、BT2と、を含む。ボタンBT1は、利用中のサービスを初期化後も利用する指示(再利用指示)を入力するためのボタンである。ボタンBT2は、利用中のサービスを初期化後は利用しない指示を入力するボタンである。
【0065】
ボタンBT2が押下されると、プリンタ100は、初期化処理を実行して、プリンタ100の状態を工場出荷時の状態に遷移させて、初期化関連処理を終了する(図示省略)。
【0066】
ボタンBT1が押下されると、S56にて、プリンタ100は再利用指示を取得する。プリンタ100は、再利用指示を取得すると、S58にて、利用中のサービスAを提供するサーバ300Aに対して、接続情報登録指示を送信する。プリンタ100の状態は、オンボード状態であるので、プリンタ100はサーバ300Aと通信可能であり、接続情報登録指示を送信できる。
【0067】
サーバ300Aは、接続情報登録指示を受信すると、S60にて、図3のS8と同様に、サーバ300Aに接続するための接続情報CIaを仲介サーバ400に登録する。この時点では、図3のS8にて仲介サーバ400に登録された接続情報CIaは、登録から所定期間(例えば、1週間)が経過したために仲介サーバ400にて削除されていることが想定される。S60にて、接続情報CIaが再度、仲介サーバ400に登録される。
【0068】
プリンタ100は、接続情報登録指示をサーバ300Aに送信すると、S62にて、初期化処理を実行して、プリンタ100の状態を工場出荷時の状態に遷移させる。これによって、図3のS12にて受信された接続情報CIaと、図3のS14にて受信されたサービス設定情報SIbと、は不揮発性記憶装置130から削除される。バウチャーヘッダVHは、初期化処理後も、不揮発性記憶装置130に格納されている。
【0069】
S64~S68では、図3のS10~S26と同一の処理が実行される。S64では、プリンタ100は、不揮発性記憶装置130に格納されたバウチャーヘッダVH(図1)に含まれる仲介サーバ情報RSIを用いて、仲介サーバ400との通信の接続を確立し、仲介サーバ400に対して接続情報の要求を送信する。
【0070】
S66では、仲介サーバ400は、接続情報データベースCDBにおいて、受信したGUIDに対応付けられた接続情報CIaを特定し、該接続情報CIaをプリンタ100に送信する。これによって、プリンタ100は、仲介サーバ400から接続情報CIaを受信する。S67では、プリンタ100は、受信された接続情報CIaを不揮発性記憶装置130に格納する。
【0071】
S68では、プリンタ100と、対象サーバであるサーバ300Aと、の間でオンボーディング処理(図3のS14~S26)が実行される。オンボーディング処理では、上述したように、接続確立処理(図3のS14)と、認証処理(図3のS16)と、サービス準備処理(図3のS18~S26)が実行される。サービス準備処理にて、プリンタ100は、サーバ300Aからサービス設定情報SIbを受信し(図3のS24)、該サービス設定情報SIbを不揮発性記憶装置130に格納する(図3のS26)。
【0072】
接続情報CIaとサービス設定情報SIbとが不揮発性記憶装置130に格納されると、上述したように、プリンタ100の状態は、サーバ300Aが提供するサービスAをプリンタ100が利用可能なオンボード状態に遷移する。
【0073】
プリンタ100の状態がオンボード状態に遷移すると、S70にて、プリンタ100とサーバ300Aとは、協働してサービス処理を実行する。
【0074】
以上説明した本実施例によれば、プリンタ100は、GUIDと対応付けて接続情報CIが登録される仲介サーバ400と接続するための仲介サーバ情報RSIを格納するメモリである不揮発性記憶装置130を備える(図1)。プリンタ100は、仲介サーバ情報RSIを用いて仲介サーバ400に接続して、仲介サーバ400に接続情報CIaが登録されている場合に仲介サーバ400から接続情報CIaを受信する(図3のS12)。プリンタ100は、接続情報CIaを用いてサーバ300Aに接続して、サービスAをプリンタ100が利用するためのサービス設定情報SIbを受信する(図3のS24)。プリンタ100は、受信されるサービス設定情報SIbを不揮発性記憶装置130に格納する(図3のS26)。これによって、プリンタ100は、サービスAを利用可能なオンボード状態になる。プリンタ100は、プリンタ100の状態をオンボード状態から工場出荷時の状態に遷移させる初期化処理を実行する(図4のS62)。工場出荷時の状態は、仲介サーバ情報RSIが不揮発性記憶装置130に格納され、かつ、接続情報CIaとサービス設定情報SIbが不揮発性記憶装置130に格納されていない状態である。プリンタ100は、初期化処理を実行すべき場合に、接続情報CIaを仲介サーバ400に再度登録するための登録処理を実行する(図4のS58)。プリンタ100は、該登録処理の後に、初期化処理を実行する(図4のS62)。プリンタ100は、初期化処理の後に、仲介サーバ400から、再度登録される接続情報CIaを受信する(図4のS66)。プリンタ100は、受信される接続情報CIaを用いてサーバ300Aに接続して、オンボード状態になるようにサービス設定情報SIbを再度受信し、該サービス設定情報SIbを不揮発性記憶装置130に格納する(図4のS68)。この結果、プリンタ100の状態を初期化する場合に、初期化後のプリンタ100が、サーバ300Aが提供するサービスAを利用できなくなることを抑制できる。
【0075】
初期化処理が行われた後に、再度、プリンタ100を、再度オンボード状態に遷移させるためには、プリンタ100とサーバ300Aとの間でオンボーディング処理が再度実行される必要がある。プリンタ100がサーバ300Aに接続してオンボーディング処理を実行するためには、接続情報CIaが必要であるが、初期化処理によって接続情報CIaが不揮発性記憶装置130から削除されている。このために、プリンタ100は、接続情報CIaを再度取得する必要がある。
【0076】
仮に、初期化処理が行われた時点で、仲介サーバ400に接続情報CIaが登録されていない場合には、プリンタ100は仲介サーバ400から接続情報CIaを受信できない。仮に、初期化処理が行われた後に、接続情報CIaを仲介サーバ400に再度登録するためには、以下のような方法が考えられる。
【0077】
1つ目の方法として、プリンタ100からサーバ300Aに対して、接続情報CIaの登録指示を送信する方法が考えられる。しかしながら、初期化処理が行われた後では、オンボード状態とは異なり、サービス設定情報SIbが不揮発性記憶装置130に格納されていないために、プリンタ100は、サーバ300Aと接続できない、もしくは、サーバ300Aと接続できたとしてもサーバ300Aから認証されない可能性が高い。このために、初期化処理が行われた後に、プリンタ100がサーバ300Aに登録指示を送信することは困難である。
【0078】
2つ目の方法として、製造事業者や販売会社やユーザが端末装置を用いて、バウチャーVCをサーバ300Aに再度登録する方法が考えられる。しかしながら、バウチャーVCは、一度、オンボーディング処理にて用いられると、無効にされる可能性が高いので、再度、有効なバウチャーVCを取得する必要がある。この場合には、例えば、プリンタ100に対してバウチャーヘッダVHの再設定を行うなどの煩雑な手続きが必要になる場合があるので、ユーザ自身が当該手続きを実行することは困難である。また、製造事業者や販売会社に手続きを依頼する場合であっても、必要な時間や負荷が大きくなる可能性がある。
【0079】
本実施例では、初期化処理が行われる前に、すなわち、プリンタ100がオンボード状態にあるときに、接続情報CIaを仲介サーバ400に再度登録するための登録処理が実行される(図4のS58)。この結果、初期化処理を行った後には、仲介サーバ400に接続情報CIaが登録されている。したがって、プリンタ100は、初期化処理を行った後に、該接続情報CIaを仲介サーバ400から受信して(図4のS66)、該接続情報CIaを用いてサーバ300Aと接続して、オンボーディング処理を実行できる(図4のS68)。この結果、初期化後のプリンタ100が、サーバ300Aが提供するサービスAを利用できなくなることを抑制できる。
【0080】
さらに、本実施例によれば、プリンタ100が実行する登録処理は、接続情報CIを仲介サーバ400に登録することをサーバ300Aに実行させる登録指示を、サーバ300Aに送信する処理である(図4のS58)。初期化処理が行われる前のオンボード状態では、プリンタ100は、オンボーディング処理において認証処理を経て受信したサービス設定情報SIb(例えば、サーバ300Aと通信するためのトークン)を保有している。このために、プリンタ100は、問題なく、接続情報CIaの登録指示をサーバ300Aに送信できる。したがって、サーバ300Aに登録指示を送信することで、接続情報CIaを仲介サーバ400に再度登録することができる。
【0081】
さらに、本実施例によれば、プリンタ100は、初期化処理を実行すべき場合に、再利用指示をユーザが取得し(図4のS56)、再利用指示が取得されることに応じて、登録処理(本実施例では図58の登録指示の送信)を実行する。再利用指示は、登録処理の実行指示とも言うことができる。ユーザは、初期化処理の後に、再度、サービスAを利用する意志を有していない場合もある。この場合には、初期化処理が行われた後に、オンボーディング処理が実行されないことが好ましい。本実施例によれば、ユーザからの指示が取得されることに応じて、登録処理、ひいては、登録処理の後に実行されるオンボーディング処理が実行されるので、ユーザの意志に反して、オンボーディング処理が実行されることを抑制できる。
【0082】
さらに、本実施例によれば、プリンタ100は、登録処理の後に、ユーザからの指示を取得することなく、仲介サーバ400から、再度登録される接続情報CIaを受信し(図4のS66)、ユーザからの指示を取得することなく、オンボーディング処理を実行して、サーバ300Aからサービス設定情報SIbを再度受信する(図4のS68)。この結果、初期化処理の後に、速やかにサービス設定情報SIbを取得できる。この結果、初期化処理の後に、速やかにサービスAを利用できるオンボード状態に遷移できる。
【0083】
以上の説明から解るように、上記実施例のGUIDは、デバイス識別情報の例であり、初期化処理は、遷移処理の例である。
【0084】
B.第2実施例
第2実施例のシステム1000は、プリンタ100のユーザが所有する端末装置200を備えている。端末装置200は、計算機であり、例えば、スマートフォンである。変形例では、端末装置200は、図示しない通信IFを備え、インターネットITに接続されている。このために、端末装置200は、インターネットITを介して、サーバ300Aと通信可能である。
【0085】
第2実施例では、プリンタ100は、表示部140を備えていない。このために、プリンタ100は、図5の指示入力画面W1などのUI画面を表示できない。
【0086】
図6は、第2実施例の初期化関連処理のシーケンス図である。第2実施例では、第1実施例の図4の初期化関連処理に代えて、図6の初期化関連処理が行われる。S82にて、ユーザが操作部150を操作してプリンタ100に初期化指示を入力すると、初期化関連処理が開始される。
【0087】
S83では、プリンタ100は、現在、プリンタ100を用いて利用中のサービスを特定する。例えば、サービスAを利用するためのサービス設定情報SIbが不揮発性記憶装置130に格納されている場合には、プリンタ100は、サービスAを利用中のサービスとして特定する。
【0088】
S84では、プリンタ100は、利用中のサービスAを提供するサーバ300Aに対して、接続情報登録指示を送信する。ここで、第1実施例の接続情報登録指示(図4のS58)とは異なり、第2実施例の接続情報登録指示には、GUIDに加えて、ユーザのメールアドレスが含められる。ユーザのメールアドレスは、例えば、予めユーザの入力に基づいて不揮発性記憶装置130に格納されている。
【0089】
サーバ300Aは、接続情報登録指示を受信すると、S86にて、図3のS8、図4の60と同様に、サーバ300Aに接続するための接続情報CIaを仲介サーバ400に登録する。
【0090】
S87では、サーバ300Aは、接続情報登録指示に含まれるメールアドレスを、プリンタ100のGUIDと対応付けて不揮発性記憶装置330に格納する。
【0091】
プリンタ100は、接続情報登録指示をサーバ300Aに送信すると、S88にて、図4のS62と同様に初期化処理を実行して、プリンタ100の状態を工場出荷時の状態に遷移させる。
【0092】
S90~S93では、図4のS64~S67と同一の処理が実行される。S90では、プリンタ100は、仲介サーバ情報RSIを用いて、仲介サーバ400との通信の接続を確立し、仲介サーバ400に対して接続情報の要求を送信する。
【0093】
S92では、仲介サーバ400は、接続情報データベースCDBにおいて、受信したGUIDに対応付けられた接続情報CIaを特定し、該接続情報CIaをプリンタ100に送信する。これによって、プリンタ100は、仲介サーバ400から接続情報CIaを受信する。S93では、プリンタ100は、受信された接続情報CIaを不揮発性記憶装置130に格納する。
【0094】
S94では、プリンタ100は、再利用確認要求をサーバ300Aに対して送信する。例えば、プリンタ100は、接続情報CIaを用いてサーバ300Aとの通信の接続を確立し、プリンタ100のGUIDを含む受信確認要求を、サーバ300Aに送信する。受信確認要求は、サーバ300Aからサービス設定情報SIbを再度受信すべきか否かを確認するための要求である。
【0095】
サーバ300Aは、受信確認要求を受信すると、S96にて、不揮発性記憶装置330から、受信確認要求に含まれるGUIDに対応付けられたメールアドレスを取得する。
【0096】
S98では、サーバ300Aは、S96にて取得されたメールアドレス宛に再利用確認通知を送信する。これによって、ユーザの端末装置200は、再利用確認通知を受信する。再利用確認通知は、初期化後に利用していたサービスAを利用するか否かをユーザに確認するための通知である。
【0097】
S99では、端末装置200は、ユーザの操作に応じて、再利用確認通知を表示する通知画面W2を端末装置200の表示部(図示省略)に表示する。図5(B)の通知画面W2は、プリンタ100が初期化されたことをユーザに通知し、初期化前に利用していたサービスAを利用するか否かをユーザに確認するメッセージMS2と、ボタンBT1、BT2と、を含む。ボタンBT1は、サービスAを初期化後も利用する指示(再利用指示)を入力するためのボタンである。ボタンBT2は、サービスAを初期化後は利用しない指示を入力するボタンである。
【0098】
ボタンBT1が押下されると、S100にて、端末装置200は、再利用指示を取得する。端末装置200は、再利用指示を取得すると、S102にて、再利用指示をサーバ300Aに対して送信する。再利用指示は、例えば、ボタンBT1に対応付けられたURLに対して送信されることで、サーバ300Aに送信される。
【0099】
サーバ300Aは、再利用指示を受信すると、S104にて、受信指示をプリンタ100に対して送信する。受信指示は、S94にて受信された受信確認要求に対する応答として、プリンタ100に対して送信される。受信指示は、サーバ300Aからサービス設定情報SIbを再度受信すべきことを示す指示である。
【0100】
プリンタ100は、該受信指示をサーバ300Aから受信すると、S106にて、図4のS68と同様に、サーバ300Aとの間でオンボーディング処理(図3のS14~S26)を実行する。オンボーディング処理では、上述したように、接続確立処理(図3のS14)と、認証処理(図3のS16)と、サービス準備処理(図3のS18~S26)が実行される。サービス準備処理にて、プリンタ100は、サーバ300Aからサービス設定情報SIbを受信し(図3のS24)、該サービス設定情報SIbを不揮発性記憶装置130に格納する(図3のS26)。
【0101】
接続情報CIaとサービス設定情報SIbが不揮発性記憶装置130に格納されると、上述したように、プリンタ100の状態は、サーバ300Aが提供するサービスAをプリンタ100が利用可能なオンボード状態に遷移する。
【0102】
プリンタ100の状態がオンボード状態に遷移すると、S108にて、プリンタ100とサーバ300Aとは、協働してサービス処理を実行する。
【0103】
なお、ボタンBT2が押下されると、S100にて、端末装置200は、再利用指示に代えて、サービスAを利用しない指示を取得する。この場合には、端末装置200は、S102にて、再利用指示に代えて、サービスAを利用しない指示をサーバ300Aに対して送信する。サーバ300Aは、サービスAを利用しない指示を受信すると、S104にて、受信指示に代えて、受信不要指示をプリンタ100に対して送信する。プリンタ100は、受信不要指示を受信すると、オンボーディング処理を実行することなく、初期化関連処理を終了する。
【0104】
以上説明した第2実施例によれば、プリンタ100は、ユーザからの指示を取得することなく、登録処理(図6のS84の接続情報登録指示の送信)を実行する。プリンタ100は、初期化処理(図6のS88)の後に行われる受信指示(図6のS104)の後に、オンボーディング処理を実行してサーバ300Aからサービス設定情報SIbを再度受信する(図6のS106)。この結果、初期化処理よりも前にユーザから再利用指示を取得していない場合でも、初期化処理の後に行われる受信指示に応じて、サービス設定情報SIbを再度受信できる。
【0105】
さらに、第2実施例によれば、プリンタ100は、初期化処理(図6のS88)の後に、サーバ300Aからサービス設定情報SIbを再度受信すべきか否かを確認する受信確認要求をサーバ300Aに対して送信し(図6のS94)、受信確認要求に対する応答として受信指示をサーバ300Aから受信する場合に(図6のS104)、サーバ300Aからサービス設定情報SIbを再度受信する(図6のS106)。
【0106】
さらに、第2実施例によれば、プリンタ100は、ユーザへの通知のための通知情報としてのメールアドレスをサーバ300Aに対して送信する(図6のS84)。サーバ300Aは、通知情報を用いて、サーバ300Aが提供するサービスAを利用するか否かをユーザに確認する再利用確認通知を送信する(図6のS98)。サーバ300Aは、該確認通知に対する応答として、サービスAを利用する指示を受信する場合に、サービス設定情報SIbの受信指示をプリンタ100に対して送信する(図6のS104)。プリンタ100は、受信指示を受信することに応じて、サーバ300Aからサービス設定情報SIbを再度受信する(図6のS106)。この結果、プリンタ100が表示部140を備えていない場合であっても、サービスAを利用するというユーザの意志が確認された後に、プリンタ100は、サービス設定情報SIbを受信できる。この結果、例えば、プリンタ100が表示部140を備えていない場合であっても、ユーザの意志に反して、プリンタ100がオンボード状態に遷移することを抑制できる。
【0107】
さらに、第2実施例では、通知情報は、メールアドレスである。メールアドレスは、一般に広く普及しているので、ユーザに再利用確認通知を適切に届けることができる。したがって、ユーザの意志を適切に確認できる。
【0108】
C.変形例
(1)上記第1実施例の初期化関連処理では、プリンタ100が実行する接続情報CIaの登録処理は、サーバ300Aに接続情報登録指示を送信することである(図4のS58)が、これに限られない。プリンタ100が実行する接続情報CIaの登録処理は、プリンタ100自身が、接続情報CIaを仲介サーバ400に送信することで、仲介サーバ400に接続情報CIaを登録する処理であっても良い。
【0109】
図7は、変形例の初期化関連処理の第1のシーケンス図である。図7の初期化関連処理では、図4のS58、S60に代えて、図7のS57B~S60Bが実行される。図7の他の処理は、図4の同符号の処理と同じである。
【0110】
S57Bでは、プリンタ100は、接続情報CIaの送信を要求する接続情報要求をサーバ300Aに送信する。サーバ300Aは、接続情報要求を受信すると、S58Bにて、サーバ300Aに接続するための接続情報CIaを、接続情報要求に対する応答として、プリンタ100に対して送信する。これによって、プリンタ100は、接続情報CIaを受信する。
【0111】
プリンタ100は、接続情報CIaを受信すると、S60Bにて、受信した接続情報CIaをGUIDとともに、仲介サーバ400に対して送信する。仲介サーバ400は、受信した接続情報CIaとGUIDとを対応付けて接続情報データベースCDBに登録する。
【0112】
本変形例でも、初期化処理(S62)よりも前に、仲介サーバ400に適切に接続情報CIaを登録することができる。
【0113】
(2)上記第1実施例では、図4の初期化関連処理において、サーバ300Aが接続情報CIaを仲介サーバ400に登録する処理(S60)は、一度だけ実行される。このために、プリンタ100が初期化された後に、接続情報CIaの要求を仲介サーバ400に送信する(図4のS64)までに許容される許容期間は、仲介サーバ400に接続情報CIaが登録されてから削除されるまでの所定期間(本実施例では一週間)内である必要がある。
【0114】
例えば、プリンタ100が初期化された後に、例えば、プリンタ100の設置場所が変更される場合などには、プリンタ100がインターネットITに接続可能に設置されるまでに時間を要する場合がある。このような場合に、上記の許容期間が過度に短い場合には、プリンタ100は、初期化処理後に接続情報CIaを仲介サーバ400から受信できず、オンボーディング処理を実行できない場合がある。
【0115】
図8は、変形例の初期化関連処理の第2のシーケンス図である。本実施例では、図8に示すように、図3のS60の接続情報CIaを登録する処理が、所定期間より短い間隔で特定期間(例えば、2ヶ月)に亘って繰り返し実行される。この結果、上記の許容期間は、上記の特定期間と所定期間との合計の期間に延長できる。
【0116】
したがって、図8の変形例では、図8のS64Cに示すように、プリンタ100は、上記の許容期間内に接続情報CIaの要求を仲介サーバ400に送信すれば、S66Cにて、仲介サーバ400から接続情報CIaを受信し、S67Cにて、接続情報CIaを不揮発性記憶装置130に格納できる。この場合には、プリンタ100は、S68Cに示すように、その後に、オンボーディング処理を実行して、サービス設定情報SIbをサーバ300Aから受信し、サービス設定情報SIbを不揮発性記憶装置130に格納できる。
【0117】
ただし、図8にて破線で囲まれたS64Eに示すように、プリンタ100が、上記の許容期間が経過した後に、接続情報CIaの要求を仲介サーバ400に送信するとする。この場合には、この時点では仲介サーバ400から接続情報CIaが削除されているので、プリンタ100は、仲介サーバ400から接続情報CIaを受信できず、S66Eにて、サーバ300Aからエラー通知を受信する。この場合には、プリンタ100は、オンボーディング処理を実行できないので、サービス設定情報SIbをサーバ300Aから受信できない。
【0118】
(3)第1実施例の初期化関連処理(図4)において、S54の指示入力画面W1の表示およびS56の再利用指示の取得は省略されても良い。すなわち、ユーザの指示を取得することなく、S53の後に、自動的に、S58以降の処理が実行されても良い。例えば、デバイスの種類によっては、特定のサーバが提供する特定のサービスを利用して動作することが前提である場合もある。このような場合に、本変形例によれば、ユーザの指示を取得することなく、初期化処理後に、デバイスが特定のサービスを利用可能なオンボード状態に遷移される。この結果、ユーザの負担をさらに軽減できる。
【0119】
(4)第1実施例の初期化関連処理(図4)において、プリンタ100は、S62の初期化処理後に、ユーザからオンボーディング処理の開始指示が取得された場合に、S64以降の処理を実行しても良い。あるいは、プリンタ100は、S66にて接続情報CIaを受信した後に、ユーザからオンボーディング処理の開始指示が取得された場合に、S68の処理を実行しても良い。この場合には、例えば、初期化処理後に、ユーザがプリンタ100に所定の設定を手動で行った後に、プリンタ100を用いてサービスAを利用したい場合に、所定の設定の前に、オンボーディング処理が自動的に実行されることを抑制できる。
【0120】
第2実施例の初期化関連処理(図6)において、プリンタ100は、サーバ300Aから受信指示を受信した場合に(図6の104)、S106のオンボーディング処理を実行している。これに代えて、例えば、プリンタ100は、ユーザの端末装置200から受信指示を受信した場合に、S106のオンボーディング処理を実行しても良い。
【0121】
(5)上記第2実施例では、再利用確認通知は、ユーザのメールアドレス宛の電子メールとして送信される。これに代えて、再利用確認通知は、他の方法、例えば、端末装置200にインストールされた特定のアプリケーション宛のプッシュ通知として、送信されても良い。
【0122】
(6)上記各実施例では、遷移処理として、プリンタ100の状態を工場出荷時の状態に遷移させる初期化処理が採用されている。これに代えて、遷移処理は、例えば、ネットワークに関連する設定だけを工場出荷時の状態に戻し、他の設定(例えば、印刷に関する設定)は変更しないネットワーク初期化処理であっても良い。また、遷移処理は、サーバ300A~300Dが提供するサービスA~Dを利用するためのサービス設定情報と、これらのサービスA~Dを提供するサーバ300A~300Dと接続する接続情報と、だけが不揮発性記憶装置330から削除される外部サービス初期化処理であっても良い。
【0123】
(7)上記各実施例では、デバイスとしてプリンタ100が採用されている。これに限らず、対象サーバと協働してユーザに対してサービスを提供する他のデバイスが採用されても良い。他のデバイスを用いるサービスには、例えば、自宅やオフィスなどに設定された他のデバイス(例えば、監視カメラ、調理器具等の電化製品)を、端末装置(端末アプリケーション)から対象サーバを介して遠隔操作するサービスが含まれ得る。
【0124】
(8)上記実施例において、ハードウェアによって実現されていた構成の一部をソフトウェアに置き換えるようにしてもよく、逆に、ソフトウェアによって実現されていた構成の一部あるいは全部をハードウェアに置き換えるようにしてもよい。
【0125】
以上、実施例、変形例に基づき本発明について説明してきたが、上記した発明の実施の形態は、本発明の理解を容易にするためのものであり、本発明を限定するものではない。本発明は、その趣旨並びに特許請求の範囲を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物が含まれる。
【符号の説明】
【0126】
1000…システム,100…プリンタ,110…CPU,120…揮発性記憶装置,130…不揮発性記憶装置,140…表示部,150…操作部,170…印刷機構,180…通信IF,200…端末装置,300A~300D…サーバ,310…CPU,320…揮発性記憶装置,330…不揮発性記憶装置,380…通信IF,400…仲介サーバ,410…CPU,420…揮発性記憶装置,430…不揮発性記憶装置,480…通信IF,CDB…接続情報データベース,CI…接続情報,IT…インターネット,PGa,PGb,PGp…コンピュータプログラム,RSI…仲介サーバ情報,VC…バウチャー,VDB…バウチャーデータベース,VH…バウチャーヘッダ,W1…指示入力画面,W2…通知画面
図1
図2
図3
図4
図5
図6
図7
図8