(57)【要約】【課題】サーバーと通信してファームウェアを書き換える印刷装置について、サーバーと通信することを踏まえた適切な方法でファームウェアの書き換えを実行できるようにする。【解決手段】サーバーと接続可能な印刷装置１０であって、サーバーに印刷装置情報を送信し、所定の条件を満たす場合に、サーバーからファームウェアの書換え用ファームウェアの格納場所を指定するアドレスを受信する印刷装置ネットワーク通信部２３と、印刷装置ネットワーク通信部２３で受信したアドレスに基づいて、サーバーから書換え用ファームウェアを受信してファームウェアの書換えを実行する印刷装置制御部２０と、を備える印刷装置１０。【選択図】図２
2018055465.tif 000002
【特許請求の範囲】
【請求項１】
サーバーと接続可能な印刷装置であって、
前記サーバーに印刷装置情報を送信し、所定の条件を満たす場合に、前記サーバーからファームウェアの書換え用ファームウェアの格納場所を指定するアドレスを受信する印刷装置通信部と、
前記印刷装置通信部で受信した前記アドレスに基づいて、前記サーバーから前記書換え用ファームウェアを受信して前記ファームウェアの書換えを実行する印刷装置制御部と、を備える印刷装置。
【請求項２】
前記印刷装置情報は、印刷装置本体の機種を示す機種情報と、前記ファームウェアのバージョンを示すバージョン情報とを含み、
前記所定の条件を満たすか否かは、前記印刷装置通信部で送信した前記機種情報および前記バージョン情報に基づいて前記サーバーにより判別される、請求項１に記載の印刷装置。
【請求項３】
前記印刷装置情報は、印刷装置本体の識別情報を含み、
前記所定の条件を満たすか否かは、前記印刷装置通信部で送信した前記識別情報に基づいて前記サーバーにより判別される、請求項１に記載の印刷装置。
【請求項４】
前記所定の条件を満たすか否かは、前記印刷装置制御部による前記ファームウェアの書換えが許可されているか否かによって判別される、請求項１に記載の印刷装置。
【請求項５】
前記所定の条件を満たすか否かは、前記ファームウェアの書換えが可能な時間帯か否かによって判別される、請求項１に記載の印刷装置。
【請求項６】
印刷媒体に印刷する印刷部をさらに備え、
前記ファームウェアの書換えが可能な時間帯は、前記印刷部による前記印刷媒体への印刷を実行しない時間帯である、請求項５に記載の印刷装置。
【請求項７】
前記印刷装置制御部は、
前記サーバーから前記書換え用ファームウェアを受信して前記ファームウェアの書換えを実行する前に、前記書換え用ファームウェアの正当性を判別する処理を実行する、請求項１から６のいずれか一項に記載の印刷装置。
【請求項８】
前記印刷装置制御部は、
前記書換え用ファームウェアが正当であると判別した場合、前記書換え用ファームウェアに基づく前記ファームウェアの書換えを実行し、
前記書換え用ファームウェアが正当でないと判別した場合、前記書換え用ファームウェアに基づく前記ファームウェアの書換えを実行しない請求項７に記載の印刷装置。
【請求項９】
サーバーと接続可能な印刷装置の制御方法であって、
前記サーバーに印刷装置情報を送信し、
所定の条件を満たす場合に、前記サーバーからファームウェアの書換え用ファームウェアの格納場所を指定するアドレスを受信し、
受信した前記アドレスに基づいて、前記サーバーから前記書換え用ファームウェアを受信して前記ファームウェアの書換えを実行する印刷装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、印刷装置、及び印刷装置の制御方法に関する。
【背景技術】
【０００２】
従来、サーバー（外部サーバー２５０）と通信して、ファームウェアを書き換える印刷装置（情報処理装置１００）が知られている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−２４７７５公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した印刷装置のように、サーバーと通信してファームウェアを書き換える印刷装置では、サーバーと通信することを踏まえた適切な方法でファームウェアの書き換えを実行したいとするニーズがある。
本発明は、上述した事情に鑑みてなされたものであり、サーバーと通信してファームウェアを書き換える印刷装置について、サーバーと通信することを踏まえた適切な方法でファームウェアの書き換えを実行できるようにすることを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するため、本発明は、サーバーと接続可能な印刷装置であって、前記サーバーに印刷装置情報を送信し、所定の条件を満たす場合に、前記サーバーからファームウェアの書換え用ファームウェアの格納場所を指定するアドレスを受信する印刷装置通信部と、前記印刷装置通信部で受信した前記アドレスに基づいて、前記サーバーから前記書換え用ファームウェアを受信して前記ファームウェアの書換えを実行する印刷装置制御部と、を備える。
本発明の構成によれば、印刷装置は、サーバーで所定の条件を満たすと判別された場合に、書換え用ファームウェアの格納場所を指定するアドレスを受信し、アドレスに基づいて書換え用ファームウェアを受信し、ファームウェアの書換えを行う。このため、所定の条件を満たさない場合に、印刷装置が書換え用ファームウェアの格納場所を指定するアドレスを取得することを防止でき、また、サーバーで、印刷装置のファームウェアの書換えの可否や、書換えに係る処理を実行するタイミングを制御できる。すなわち、本実施形態によれば、サーバーと通信してファームウェアを書き換える印刷装置について、サーバーと通信することを踏まえた適切な方法でファームウェアの書き換えを実行できる。
【０００６】
また、本発明は、前記印刷装置情報は、印刷装置本体の機種を示す機種情報と、前記ファームウェアのバージョンを示すバージョン情報とを含み、前記所定の条件を満たすか否かは、前記印刷装置通信部で送信した前記機種情報および前記バージョン情報に基づいて前記サーバーにより判別される。
本発明の構成によれば、印刷装置が送信する印刷装置情報に、印刷装置本体の機種を示す機種情報と、前記ファームウェアのバージョンを示すバージョン情報とが含まれるため、サーバーにおいて、印刷装置の機種、及び、ファームウェアのバージョンを踏まえて、印刷装置におけるファームウェアの書換えが必要か否かを適切に判別することが可能となる。
【０００７】
また、本発明は、前記印刷装置情報は、印刷装置本体の識別情報を含み、前記所定の条件を満たすか否かは、前記印刷装置通信部で送信した前記識別情報に基づいて前記サーバーにより判別される。
本発明の構成によれば、印刷装置が送信する印刷装置情報に、印刷装置本体の識別情報が含まれるため、サーバーにおいて、印刷装置の印刷装置本体の識別情報を利用して、印刷装置の固有の事情を踏まえて、印刷装置におけるファームウェアの書換えが必要か否かを適切に判別することが可能となる。
【０００８】
また、本発明は、前記所定の条件を満たすか否かは、前記印刷装置制御部による前記ファームウェアの書換えが許可されているか否かによって判別される。
本発明の構成によれば、サーバーにおいて、印刷装置によるファームウェアの書換えが許可されているか否かを踏まえて、印刷装置におけるファームウェアの書換えが必要か否かを適切に判別することが可能となる。
【０００９】
また、本発明は、前記所定の条件を満たすか否かは、前記ファームウェアの書換えが可能な時間帯か否かによって判別される。
本発明の構成によれば、印刷装置は、ファームウェアが書換え可能な時間帯に、当該書換えに係る処理を実行できる。
【００１０】
また、本発明は、印刷媒体に印刷する印刷部をさらに備え、前記ファームウェアの書換えが可能な時間帯は、前記印刷部による前記印刷媒体への印刷を実行しない時間帯である。
本発明の構成によれば、印刷装置は、印刷部による印刷媒体への印刷が行われない時間帯に、ファームウェアの書換えに係る処理を実行できる。
【００１１】
また、本発明は、前記印刷装置制御部は、前記サーバーから前記書換え用ファームウェアを受信して前記ファームウェアの書換えを実行する前に、前記書換え用ファームウェアの正当性を判別する処理を実行する。
本発明の構成によれば、書換え用ファームウェアが正当性を有する場合に、ファームウェアの書換えが行われることにより、例えば、改ざんされたファイルデータによってファームウェアの書換えが実行されることを防止できる。
【００１２】
また、本発明は、前記印刷装置制御部は、前記書換え用ファームウェアが正当であると判別した場合、前記書換え用ファームウェアに基づく前記ファームウェアの書換えを実行し、前記書換え用ファームウェアが正当でないと判別した場合、前記書換え用ファームウェアに基づく前記ファームウェアの書換えを実行しない。
本発明の構成によれば、印刷装置が記憶するファームウェアが、改ざんされた可能性のあるファームウェアに書き換えられることを防止できる。
【００１３】
また、上記課題を解決するため、本発明は、サーバーと接続可能な印刷装置の制御方法であって、前記サーバーに印刷装置情報を送信し、所定の条件を満たす場合に、前記サーバーからファームウェアの書換え用ファームウェアの格納場所を指定するアドレスを受信し、受信した前記アドレスに基づいて、前記サーバーから前記書換え用ファームウェアを受信して前記ファームウェアの書換えを実行する。
本発明の構成によれば、印刷装置は、サーバーで所定の条件を満たすと判別された場合に、書換え用ファームウェアの格納場所を指定するアドレスを受信し、アドレスに基づいて書換え用ファームウェアを受信し、ファームウェアの書換えを行う。このため、所定の条件を満たさない場合に、印刷装置が書換え用ファームウェアの格納場所を指定するアドレスを取得することを防止でき、また、サーバーで、印刷装置のファームウェアの書換えの可否や、書換えに係る処理を実行するタイミングを制御できる。すなわち、本実施形態によれば、サーバーと通信してファームウェアを書き換える印刷装置について、サーバーと通信することを踏まえた適切な方法でファームウェアの書き換えを実行できる。
【図面の簡単な説明】
【００１４】
【図１】本実施形態に係るネットワークシステムの構成を示す図。
【図２】印刷装置の機能的構成を示すブロック図。
【図３】サーバーユニットの機能的構成を示すブロック図。
【図４】印刷装置、印刷装置制御サーバー、管理サーバーの動作を示すフローチャート。
【図５】印刷装置、管理サーバー、ファイル提供サーバーの動作を示すフローチャート。
【図６】印刷装置、管理サーバー、ファイル提供サーバーの動作を示すフローチャート。
【図７】ロール紙に印刷される情報の一例を示す図。
【図８】ロール紙に印刷される情報の一例を示す図。
【発明を実施するための形態】
【００１５】
以下、図面を参照して本発明の実施形態について説明する。
図１は、本実施形態に係るネットワークシステム１の構成を示す図である。
図１に示すように、ネットワークシステム１は、サーバーユニット２（サーバー）と、複数の店舗システム３とを備える。サーバーユニット２は、印刷装置制御サーバー２ａ（第１のサーバー）と、管理サーバー２ｂ（第２のサーバー）と、ファイル提供サーバー２ｃ（第３のサーバー）とを含んで構成される。ネットワークシステム１において、サーバーユニット２と、店舗システム３のそれぞれとは、インターネット、その他のネットワークを含んで構成されたグローバルネットワークＧＮを介して通信可能に接続される。
印刷装置制御サーバー２ａ、管理サーバー２ｂ、及びファイル提供サーバー２ｃの構成、及び機能については後述する。
なお、図１では、印刷装置制御サーバー２ａ、管理サーバー２ｂ、及びファイル提供サーバー２ｃを、それぞれ、１つのブロックによって表現するが、これは、これらサーバーが、それぞれ、単一のサーバー装置により構成されることを意味するものではない。例えば、印刷装置制御サーバー２ａは、複数のサーバー装置を含んで構成されたものでもよい。
【００１６】
店舗システム３は、スーパーマーケットや、コンビニエンスストア、デパート、飲食店等の商品や、サービス等を提供し、当該提供に応じて会計が行われる店舗に設けられるシステムである。
図１に示すように、店舗システム３は、ローカルネットワークＬＮを備える。ローカルネットワークＬＮには、１又は複数の印刷装置１０と、各印刷装置１０に対応する１又は複数のホストコンピューター１１と、通信装置１２とが接続される。
通信装置１２は、ローカルネットワークＬＮと、グローバルネットワークＧＮとを接続するインターフェース装置である。通信装置１２は、モデム（又は、ＯＮＵ（Optical Network Unit））としての機能、ルーター機能、ＮＡＴ（Network Address Translation）機能、及び、ＤＨＣＰ（Dynamic Host Configuration Protocol）サーバー機能等を有する。通信装置１２は、ローカルネットワークＬＮに接続された機器と、グローバルネットワークＧＮに接続された機器との間で行われる通信に際し、機器間で送受信されるデータを転送する。なお、図１では、通信装置１２を１つのブロックで表現するが、通信装置１２は、機能に応じた複数の装置を有する構成でもよい。
【００１７】
図１に示すように、ローカルネットワークＬＮには、ファイアーウォールＦＷを介して、ＤＭＺ（DeMilitarized Zone）セグメントＳＧに設けられた代理サーバー１３が接続される。代理サーバー１３は、中継サーバーや、ＤＮＳサーバー、Ｗｅｂサーバー等を含んで構成される。ファイアーウォールＦＷ、及び、ＤＭＺセグメントＳＧに設けられた代理サーバー１３の機能により、グローバルネットワークＧＮからローカルネットワークＬＮと接続する機器への不正なアクセスが防止される。
【００１８】
印刷装置１０、及び、ホストコンピューター１１は、店舗において顧客が会計を行なうレジカウンターに設けられる。ホストコンピューター１１は、レジカウンターで行われる会計に応じて、印刷装置１０を制御して、レシートを発行させる。印刷装置１０により発行されたレシートは、レジカウンターの担当者により、顧客に引き渡される。
印刷装置１０は、グローバルネットワークＧＮにアクセスし、グローバルネットワークＧＮに接続された機器（印刷装置制御サーバー２ａ、管理サーバー２ｂ、及びファイル提供サーバー２ｃを含む。）と通信する機能を有する。印刷装置１０とサーバーユニット２との間では、ＶＰＮ（Virtual Private Network）等の、暗号化に係る技術や、仮想専用線（物理的な専用線であってもよい。）に係る技術によりセキュアな通信が行われる。
印刷装置１０の構成、及び機能については後述する。
【００１９】
図２は、印刷装置１０の機能的構成を示すブロック図である。
印刷装置１０は、ロール紙（印刷媒体）を収容すると共に、収容したロール紙を搬送し、収容したロール紙に画像を印刷し、ロール紙を切断する機能を有する装置である。印刷装置１０の印刷方式は、サーマル方式や、インクジェット方式等、何でもよい。
図２に示すように、印刷装置１０は、印刷装置制御部２０と、印刷装置記憶部２１と、印刷部２２と、印刷装置ネットワーク通信部２３（印刷装置通信部）と、印刷装置デバイス通信部２４とを備える。
【００２０】
印刷装置制御部２０は、第１プロセッサー２０１ａ、及び第２プロセッサー２０１ｂが実装されたＳＯＣ（System on a chip）２０１や、ＲＯＭ、ＲＡＭ、ＡＳＩＣ、信号処理回路等を備え、印刷装置１０の各部を制御する。
印刷装置記憶部２１は、不揮発性メモリーを備え、第１ファームウェア２１ａ、第２ファームウェア２１ｂ、その他のデータを記憶する。
第１ファームウェア２１ａは、後述する印刷部２２を制御して印刷を行う機能、及び、後述する印刷装置デバイス通信部２４を制御してホストコンピューター１１との間で通信を行う機能を少なくとも有するファームウェアである。印刷装置制御部２０は、第１プロセッサー２０１ａにより、第１ファームウェア２１ａを読み出して実行し、第１ファームウェア２１ａの機能により、印刷部２２、及び、印刷装置デバイス通信部２４を制御する。
第２ファームウェア２１ｂは、後述する印刷装置ネットワーク通信部２３を制御して、グローバルネットワークＧＮと接続する機器と通信を行う機能を少なくとも有するファームウェアである。印刷装置制御部２０は、第２プロセッサー２０１ｂにより、第２ファームウェア２１ｂを読み出して実行し、第２ファームウェア２１ｂの機能により、印刷装置ネットワーク通信部２３を制御する。
【００２１】
印刷部２２は、印刷機構、搬送機構、及び切断機構を少なくとも有する。印刷機構は、印刷ヘッド、その他の印刷に関する要素を備える。搬送機構は、印刷装置１０に収容されたロール紙を所定方向に搬送する搬送ローラー、その他のロール紙の搬送に関する要素を備える。切断機構は、ロール紙を切断するカッター、その他のロール紙の切断に関する要素を備える。印刷部２２は、印刷装置制御部２０の制御で、搬送機構によりロール紙を所定の方向に搬送し、印刷機構によりロール紙に画像を印刷し、切断機構によりロール紙を所定の位置で切断することによって、画像が印刷された紙片を発行できる。
【００２２】
印刷装置ネットワーク通信部２３は、印刷装置制御部２０の制御で、グローバルネットワークＧＮと接続する機器と所定の通信規格に従って通信する。印刷装置１０と、グローバルネットワークＧＮと接続する機器との間での通信で使用される通信規格は何でもよい。印刷装置１０がサーバーユニット２の印刷装置制御サーバー２ａ、管理サーバー２ｂ、及びファイル提供サーバー２ｃと通信する際に使用する通信規格については後述する。
【００２３】
印刷装置デバイス通信部２４は、印刷装置制御部２０の制御で、ホストコンピューター１１と所定の通信規格に従って通信する。印刷装置１０と、ホストコンピューター１１との間での通信に使用される通信規格は、有線通信に係る規格であっても、無線通信に係る規格であってもよい。有線通信に係る規格は、例えば、ＵＳＢや、ＲＳ２３２Ｃ等のＵＳＢ以外のシリアル通信規格、ＩＥＥＥ１２８４等のパラレル通信規格、イーサネット（登録商標）である。また、無線通信に係る規格は、例えば、Ｗｉ−Ｆｉ（登録商標）等の無線ＬＡＮに係る通信規格、Bluetooth（登録商標）等の近距離無線通信に係る規格である。
【００２４】
図３は、印刷装置制御サーバー２ａ、管理サーバー２ｂ、及びファイル提供サーバー２ｃの機能的構成を示すブロック図である。
図３に示すように、印刷装置制御サーバー２ａは、第１サーバー制御部３０と、第１サーバー通信部３１と、第１サーバー記憶部３２とを備える。
第１サーバー制御部３０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、ＡＳＩＣ、信号処理回路等を備え、印刷装置制御サーバー２ａの各部を制御する。
第１サーバー通信部３１は、第１サーバー制御部３０の制御で、所定の通信規格に従って、グローバルネットワークＧＮと接続する機器と通信する。
第１サーバー記憶部３２は、不揮発性メモリーを備え、各種データを記憶する。第１サーバー記憶部３２が記憶するデータについては後述する。
【００２５】
図３に示すように、管理サーバー２ｂは、第２サーバー制御部４０と、第２サーバー通信部４１と、第２サーバー記憶部４２とを備える。
第２サーバー制御部４０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、ＡＳＩＣ、信号処理回路等を備え、管理サーバー２ｂの各部を制御する。
第２サーバー通信部４１は、第２サーバー制御部４０の制御で、所定の通信規格に従って、グローバルネットワークＧＮと接続する機器と通信する。
第２サーバー記憶部４２は、不揮発性メモリーを備え、各種データを記憶する。第２サーバー記憶部４２が記憶するデータについては後述する。
【００２６】
図３に示すように、ファイル提供サーバー２ｃは、第３サーバー制御部５０と、第３サーバー通信部５１と、第３サーバー記憶部５２とを備える。
第３サーバー制御部５０は、ＣＰＵや、ＲＯＭ、ＲＡＭ、ＡＳＩＣ、信号処理回路等を備え、ファイル提供サーバー２ｃの各部を制御する。
第３サーバー通信部５１は、第３サーバー制御部５０の制御で、所定の通信規格に従って、グローバルネットワークＧＮと接続する機器と通信する。
第３サーバー記憶部５２は、不揮発性メモリーを備え、各種データを記憶する。第３サーバー記憶部５２が記憶するデータについては後述する。
【００２７】
次に、印刷装置１０の電源がオンされた後の、印刷装置１０、印刷装置制御サーバー２ａ、及び管理サーバー２ｂの動作について説明する。
図４は、印刷装置１０の電源がオンされた後の、印刷装置１０、印刷装置制御サーバー２ａ、及び管理サーバー２ｂの動作を示すフローチャートである。図４のフローチャートＦＡは印刷装置１０の動作を示し、フローチャートＦＢは印刷装置制御サーバー２ａの動作を示し、フローチャートＦＣは管理サーバー２ｂの動作を示す。
例えば、印刷装置１０は、印刷装置１０が設けられた店舗において、店舗の開店前の所定のタイミングで、ユーザーにより電源がオンされる。
【００２８】
図４のフローチャートＦＡに示すように、印刷装置１０の電源がオンされると（ステップＳ１）、印刷装置１０の印刷装置制御部２０は、第１サーバーアクセス用アドレス情報Ｊ１を取得する（ステップＳＡ１）。第１サーバーアクセス用アドレス情報Ｊ１は、印刷装置制御サーバー２ａのアドレスを示す情報である。第１サーバーアクセス用アドレス情報Ｊ１は、印刷装置１０に事前に登録され、印刷装置記憶部２１の所定の記憶領域に記憶される。
次いで、印刷装置制御部２０は、印刷装置ネットワーク通信部２３を制御して、第１サーバーアクセス用アドレス情報Ｊ１に基づいてＷｅｂＳｏｃｋｅｔに従って印刷装置制御サーバー２ａにアクセスし、印刷装置制御サーバー２ａとの間でＷｅｂＳｏｃｋｅｔコネクションを確立する（ステップＳＡ２）。
【００２９】
ＷｅｂＳｏｃｋｅｔは、ネットワークを介して接続されたサーバー（本例の場合は、印刷装置制御サーバー２ａ。）と、クライアント（本例の場合は、印刷装置１０。）との間で、非同期な双方向通信を可能とする通信規格の１つである。ＷｅｂＳｏｃｋｅｔコネクションは、当該コネクションで接続されたサーバー（本例の場合は、印刷装置制御サーバー２ａ。）と、クライアント（本例の場合は、印刷装置１０。）との間で、ＷｅｂＳｏｃｋｅｔのプロトコル、手続きに従ってデータを送受信する論理的な通信経路のことである。
ステップＳＡ２でＷｅｂＳｏｃｋｅｔコネクションを確立した後、印刷装置１０と、印刷装置制御サーバー２ａとは、ＷｅｂＳｏｃｋｅｔコネクションを介して、非同期で双方向通信（ＷｅｂＳｏｃｋｅｔ通信）する。
このように、印刷装置１０は、電源のオン時に、印刷装置制御サーバー２ａにアクセスして、当該サーバーとの間でＷｅｂＳｏｃｋｅｔコネクションを確立し、当該サーバーとの間で非同期で双方向通信できる状態を確立する。
なお、詳細な説明は省略するが、ＷｅｂＳｏｃｋｅｔコネクションの確立に際し、既存の技術により、印刷装置制御サーバー２ａによる印刷装置１０の認証、及び、印刷装置１０による印刷装置制御サーバー２ａの認証が適切に行われる。
また、本実施形態では、印刷装置１０と、印刷装置制御サーバー２ａとの間での通信に使用する通信規格は、ＷｅｂＳｏｃｋｅｔであるが、これは一例であり、他の通信規格を使用してもよい。
【００３０】
ＷｅｂＳｏｃｋｅｔコネクションを確立した後、印刷装置制御部２０は、起動時印刷装置情報Ｊ２を生成する（ステップＳＡ３）。
起動時印刷装置情報Ｊ２は、印刷装置識別情報Ｊ３と、起動通知情報Ｊ４とを少なくとも含む情報である。
印刷装置識別情報Ｊ３は、印刷装置１０を一意に識別する識別情報であり、印刷装置１０ごとに異なる値の印刷装置識別情報Ｊ３が割り振られる。印刷装置識別情報Ｊ３として、印刷装置１０の製造段階で、印刷装置１０に割り振られるシリアル番号を用いることができる。印刷装置識別情報Ｊ３は、印刷装置１０に事前に登録され、印刷装置記憶部２１の所定の記憶領域に記憶される。起動通知情報Ｊ４は、印刷装置１０の電源がオンされ、印刷装置１０が起動したことを通知する情報である。
【００３１】
ステップＳＡ３で起動時印刷装置情報Ｊ２を生成した後、印刷装置制御部２０は、印刷装置ネットワーク通信部２３を制御して、ＷｅｂＳｏｃｋｅｔコネクションを介して、ステップＳＡ３で取得した印刷装置識別情報Ｊ３を、印刷装置制御サーバー２ａに送信する（ステップＳＡ４）。
【００３２】
図４のフローチャートＦＢに示すように、印刷装置制御サーバー２ａの第１サーバー制御部３０は、第１サーバー通信部３１を制御して、起動時印刷装置情報Ｊ２を受信する（ステップＳＢ１）。
次いで、第１サーバー制御部３０は、第２サーバーアクセス用パスワード情報Ｊ５を生成する（ステップＳＢ２）。
第２サーバーアクセス用パスワード情報Ｊ５は、印刷装置１０が、管理サーバー２ｂにアクセスする際に使用するパスワードを示す情報である。後述するように、印刷装置１０は、管理サーバー２ｂにアクセスする際、第２サーバーアクセス用パスワード情報Ｊ５を管理サーバー２ｂに通知する。管理サーバー２ｂは、第２サーバーアクセス用パスワード情報Ｊ５に基づいてアクセス元の印刷装置１０を認証する。
第２サーバーアクセス用パスワード情報Ｊ５の値は、固定値ではなく、生成する度に値が変わる可変値とされる。ステップＳＢ２において、第１サーバー制御部３０は、所定のアルゴリズムにより、第２サーバーアクセス用パスワード情報Ｊ５を生成する。
【００３３】
次いで、第１サーバー制御部３０は、印刷装置認証情報Ｊ６を生成する（ステップＳＢ３）。
印刷装置認証情報Ｊ６は、印刷装置識別情報Ｊ３、及び、第２サーバーアクセス用パスワード情報Ｊ５を少なくとも含む情報である。
次いで、第１サーバー制御部３０は、第１サーバー通信部３１を制御して、ステップＳＢ３で生成した印刷装置認証情報Ｊ６を、管理サーバー２ｂに送信する（ステップＳＢ４）。
【００３４】
図４のフローチャートＦＣに示すように、管理サーバー２ｂの第２サーバー制御部４０は、第２サーバー通信部４１を制御して、印刷装置認証情報Ｊ６を受信する（ステップＳＣ１）。
次いで、第２サーバー制御部４０は、第２サーバー記憶部４２が記憶する印刷装置認証情報管理データベースＤＢ２ａにおいて、対応するレコードの内容を更新する（ステップＳＣ２）。
印刷装置認証情報管理データベースＤＢ２ａは、印刷装置１０ごとにレコードを有するデータベースである。印刷装置認証情報管理データベースＤＢ２ａの各レコードは、印刷装置識別情報Ｊ３と、第２サーバーアクセス用パスワード情報Ｊ５とを有する。
ステップＳＣ２において、第２サーバー制御部４０は、印刷装置認証情報管理データベースＤＢ２ａのレコードのうち、受信した印刷装置認証情報Ｊ６に含まれる印刷装置識別情報Ｊ３の値と同一の値の印刷装置識別情報Ｊ３を有するレコードを特定する。ここで特定されたレコードが「対応するレコード」に相当する。次いで、第２サーバー制御部４０は、特定したレコードが有する第２サーバーアクセス用パスワード情報Ｊ５の値を、受信した印刷装置認証情報Ｊ６に含まれる第２サーバーアクセス用パスワード情報Ｊ５の値によって更新する。
【００３５】
なお、本実施形態では、印刷装置認証情報管理データベースＤＢ２ａを管理サーバー２ｂが記憶し、当該データベースを管理サーバー２ｂが更新する。しかしながら、印刷装置認証情報管理データベースＤＢ２ａは必ずしも管理サーバー２ｂが記憶する必要は無い。印刷装置認証情報管理データベースＤＢ２ａは、管理サーバー２ｂが参照可能な場所に存在すればよく、また、当該データベースを更新する主体は印刷装置制御サーバー２ａであってもよい。
【００３６】
図４のフローチャートＦＢに示すように、印刷装置認証情報Ｊ６を管理サーバー２ｂに送信した後、第１サーバー制御部３０は、第２サーバーアクセス関連情報Ｊ７を生成する（ステップＳＢ５）。
第２サーバーアクセス関連情報Ｊ７は、第２サーバーアクセス用パスワード情報Ｊ５と、第２サーバーアクセス用アドレス情報Ｊ８とを少なくとも含む情報である。
第２サーバーアクセス用アドレス情報Ｊ８は、管理サーバー２ｂのアドレスを示す情報である。
第２サーバーアクセス用アドレス情報Ｊ８は、印刷装置制御サーバー２ａに事前に登録され、第１サーバー記憶部３２の所定の記憶領域に記憶される。
また、管理サーバー２ｂが、アドレスが相互に異なる複数のサーバー装置を含んで構成される場合、第１サーバー制御部３０は、ステップＳＢ５で以下の処理を実行する。すなわち、印刷装置制御サーバー２ａには、管理サーバー２ｂを構成する複数のサーバー装置のそれぞれの第２サーバーアクセス用アドレス情報Ｊ８が事前に登録され、第１サーバー記憶部３２の所定の記憶領域に記憶される。そして、ステップＳＢ５において、第１サーバー制御部３０は、特定の管理サーバー２ｂへのアクセスが集中しないように、第２サーバーアクセス用アドレス情報Ｊ８を通知する対象とする１つの管理サーバー２ｂを選択し、選択した管理サーバー２ｂに対応する第２サーバーアクセス用アドレス情報Ｊ８を、第２サーバーアクセス関連情報Ｊ７に含める。このような処理が行われることにより、印刷装置１０が電源のオン時に印刷装置制御サーバー２ａにアクセスすることを好適に利用して、管理サーバー２ｂの負荷分散を効果的に図ることができる。
【００３７】
第２サーバーアクセス関連情報Ｊ７を生成した後、第１サーバー制御部３０は、第１サーバー通信部３１を制御して、第２サーバーアクセス関連情報Ｊ７を印刷装置１０に送信する（ステップＳＢ６）。
【００３８】
図４のフローチャートＦＡに示すように、印刷装置１０の印刷装置制御部２０は、印刷装置ネットワーク通信部２３を制御して、第２サーバーアクセス関連情報Ｊ７を受信する（ステップＳＡ５）。
次いで、印刷装置制御部２０は、受信した第２サーバーアクセス関連情報Ｊ７を印刷装置記憶部２１の所定の記憶領域に記憶する（ステップＳＡ６）。印刷装置記憶部２１に既に記憶された第２サーバーアクセス関連情報Ｊ７が存在する場合、ステップＳＡ６で、印刷装置制御部２０は、既存の第２サーバーアクセス関連情報Ｊ７に対して、受信した第２サーバーアクセス関連情報Ｊ７を上書きして記憶する。
【００３９】
以上のように、印刷装置１０は、電源のオン時に、印刷装置制御サーバー２ａにアクセスし、印刷装置制御サーバー２ａから第２サーバーアクセス関連情報Ｊ７を受信し、受信した当該情報を記憶する。
【００４０】
次に、印刷装置１０が起動した状態の間における、印刷装置１０、管理サーバー２ｂ、及びファイル提供サーバー２ｃの動作について説明する。
図５は、印刷装置１０が起動した状態の間における、印刷装置１０、管理サーバー２ｂ、及びファイル提供サーバー２ｃの動作を示すフローチャートである。図５のフローチャートＦＤは印刷装置１０の動作を示し、フローチャートＦＥは管理サーバー２ｂの動作を示し、フローチャートＦＦはファイル提供サーバー２ｃの動作を示す。
【００４１】
図５のフローチャートＦＤに示すように、印刷装置１０の印刷装置制御部２０は、後述する定期印刷装置情報Ｊ９を管理サーバー２ｂに送信するタイミングが到来したか否かを監視する（ステップＳＤ１）。
ここで、印刷装置１０は、印刷装置１０が起動した状態の間、所定の間隔（例えば、１時間。）をあけて、定期的に、後述する定期印刷装置情報Ｊ９を管理サーバー２ｂに送信する。ステップＳＤ１において、印刷装置制御部２０は、前回、定期印刷装置情報Ｊ９を送信した後、当該所定の間隔が経過したことを検出した場合、定期印刷装置情報Ｊ９を送信するタイミングが到来したと判別する。なお、印刷装置制御部２０は、電源のオンに応じて、印刷装置制御サーバー２ａから上述した第２サーバーアクセス関連情報Ｊ７を受信した場合、受信したことをトリガーとして、１回目の定期印刷装置情報Ｊ９の送信を行う。
印刷装置１０が定期印刷装置情報Ｊ９を送信する所定の間隔を示す情報は、印刷装置１０に事前に登録され、印刷装置記憶部２１の所定の記憶領域に記憶される。
【００４２】
ステップＳＤ１において定期印刷装置情報Ｊ９を送信するタイミングが到来したと判別した場合（ステップＳＤ１：ＹＥＳ）、印刷装置制御部２０は、定期印刷装置情報Ｊ９を生成する（ステップＳＤ２）。
定期印刷装置情報Ｊ９は、印刷装置識別情報Ｊ３と、第２サーバーアクセス用パスワード情報Ｊ５と、第１ファームウェアバージョン情報Ｊ１０と、第２ファームウェアバージョン情報Ｊ１１と、印刷装置機種情報Ｊ１２とを少なくも含む情報である。定期印刷装置情報Ｊ９は、「印刷装置情報」に相当する。
ステップＳＤ２において、印刷装置制御部２０は、図４のフローチャートＦＡのステップＳＡ６で印刷装置記憶部２１の所定の記憶領域に記憶した第２サーバーアクセス関連情報Ｊ７を参照し、当該情報に含まれる第２サーバーアクセス用パスワード情報Ｊ５を取得し、定期印刷装置情報Ｊ９に含める。
第１ファームウェアバージョン情報Ｊ１０は、第１ファームウェア２１ａのバージョンを示す情報である。第１ファームウェア２１ａのデータ部には、第１ファームウェアバージョン情報Ｊ１０が記述される。ステップＳＤ２において、印刷装置制御部２０は、第１ファームウェア２１ａのデータ部を参照し、第１ファームウェアバージョン情報Ｊ１０を取得し、定期印刷装置情報Ｊ９に含める。
第２ファームウェアバージョン情報Ｊ１１は、第２ファームウェア２１ｂのバージョンを示す情報である。第２ファームウェア２１ｂのデータ部には、第２ファームウェアバージョン情報Ｊ１１が記述される。ステップＳＤ２において、印刷装置制御部２０は、第２ファームウェア２１ｂのデータ部を参照し、第２ファームウェアバージョン情報Ｊ１１を取得し、定期印刷装置情報Ｊ９に含める。
印刷装置機種情報Ｊ１２は、印刷装置１０の機種を示す情報である。印刷装置機種情報Ｊ１２は、印刷装置１０に事前に登録され、印刷装置記憶部２１の所定の記憶領域に記憶される。
【００４３】
ステップＳＤ２で定期印刷装置情報Ｊ９を生成した後、印刷装置制御部２０は、以下の処理を実行する（ステップＳＤ３）。すなわち、印刷装置制御部２０は、印刷装置記憶部２１の所定の記憶領域に記憶した第２サーバーアクセス関連情報Ｊ７を参照し、当該情報に含まれる第２サーバーアクセス用アドレス情報Ｊ８を取得する。次いで、印刷装置制御部２０は、印刷装置ネットワーク通信部２３を制御して、取得した第２サーバーアクセス用アドレス情報Ｊ８が示すアドレス（管理サーバー２ｂのアドレス）を宛先として、生成した定期印刷装置情報Ｊ９を送信する。
ステップＳＤ３において、印刷装置制御部２０は、ＨＴＴＰ（Hypertext Transfer Protocol）に従って、ＨＴＴＰリクエストとして、定期印刷装置情報Ｊ９を管理サーバー２ｂに送信する。
ここで、上述したように、店舗システム３では、ファイアーウォールＦＷ、及び、ＤＭＺセグメントＳＧに設けられた代理サーバー１３の機能により、ローカルネットワークＬＮと接続する機器へのグローバルネットワークＧＮからの不正なアクセスが防止される。このため、管理サーバー２ｂは、店舗システム３に設けられた特定の印刷装置１０との間でコネクションが確立してない状況では、当該特定の印刷装置１０に対して、直接、情報を送信することはできない。これを踏まえ、印刷装置１０と、管理サーバー２ｂとの間では、クライアントとして機能する印刷装置１０から、サーバーとして機能する管理サーバー２ｂに対してＨＴＴＰリクエストとして情報が送信され、管理サーバー２ｂから印刷装置１０に対して当該ＨＴＴＰリクエストに対するＨＴＴＰレスポンスとして情報が送信されることによって、これら装置間で情報の送受信が行われる。
【００４４】
図５のフローチャートＦＥに示すように、管理サーバー２ｂの第２サーバー制御部４０は、第２サーバー通信部４１を制御して、定期印刷装置情報Ｊ９を受信する（ステップＳＥ１）。
次いで、第２サーバー制御部４０は、受信した定期印刷装置情報Ｊ９に含まれる印刷装置識別情報Ｊ３と、第２サーバーアクセス用パスワード情報Ｊ５とを取得し、これら情報に基づいて認証処理を実行する（ステップＳＥ２）。認証処理は、アクセス元の印刷装置１０の認証を試み、認証が成功したか否かを判別する処理である。
詳述すると、ステップＳＥ２において、第２サーバー制御部４０は、印刷装置認証情報管理データベースＤＢ２ａを参照し、当該データベースのレコードのうち、対応するレコードを特定する。次いで、第２サーバー制御部４０は、特定した対応するレコードにおける印刷装置識別情報Ｊ３の値と、第２サーバーアクセス用パスワード情報Ｊ５の値との組み合わせが、受信した定期印刷装置情報Ｊ９に含まれる印刷装置識別情報Ｊ３の値と、第２サーバーアクセス用パスワード情報Ｊ５の値との組み合わせと一致するか否かを判別する。第２サーバー制御部４０は、一致する場合、印刷装置１０の認証が成功したと判別し、一致しない場合、印刷装置１０の認証が失敗したと判別する。
詳細は省略するが、印刷装置１０の認証が失敗した場合、第２サーバー制御部４０は、ステップＳＥ３以下の処理を実行せず、認証が失敗したことに対応する処理を実行する。例えば、第２サーバー制御部４０は、管理サーバー２ｂのオペレーター等の正当な権限を有する者に対して、所定の手段で、認証が失敗したことを通知する。
【００４５】
ステップＳＥ２の認証処理で認証が成功したと判別した場合、第２サーバー制御部４０は、ファームウェアバージョン管理データベースＤＢ２ｂを参照する（ステップＳＥ３）。
ファームウェアバージョン管理データベースＤＢ２ｂは、印刷装置１０の機種ごとに、第１ファームウェア２１ａ及び第２ファームウェア２１ｂのそれぞれについて、最新のファームウェアのバージョンを管理するデータベースである。ファームウェアバージョン管理データベースＤＢ２ｂは、印刷装置１０の機種ごとにレコードを有する。ファームウェアバージョン管理データベースＤＢ２ｂの１の機種に対応するレコードは、当該１の機種の印刷装置機種情報Ｊ１２と、当該１の機種の印刷装置１０にインストール可能な「最新」の第１ファームウェア２１ａのバージョンを示す第１ファームウェアバージョン情報Ｊ１０と、当該１の機種の印刷装置１０にインストール可能な「最新」の第２ファームウェア２１ｂのバージョンを示す第２ファームウェアバージョン情報Ｊ１１とを有する。
ファームウェアバージョン管理データベースＤＢ２ｂの内容は、所定の手段によって、適切なタイミングで更新される。
【００４６】
次いで、第２サーバー制御部４０は、第１の条件（所定の条件）が成立するか否かを判別する（ステップＳＥ４）。
第１の条件は、第１ファームウェア２１ａと第２ファームウェア２１ｂとのいずれかについて、印刷装置１０に現時点でインストールされているファームウェアのバージョンよりも新しいバージョンのファームウェアが存在する、という条件である。「印刷装置１０に現時点でインストールされているファームウェアのバージョンよりも新しいバージョンのファームウェアが存在する」とは、ファームウェアバージョン管理データベースＤＢ２ｂにおいて、印刷装置１０にインストール可能なファームウェアのバージョンとして、印刷装置１０に現時点でインストールされているファームウェアのバージョンよりも新しいバージョンが管理されていることを意味する。例えば、第１ファームウェア２１ａについて、１の機種の１の印刷装置１０に現時点でインストールされている第１ファームウェア２１ａのバーションよりも新しいバージョンを示す第１ファームウェアバージョン情報Ｊ１０が、当該１の機種を示す印刷装置機種情報Ｊ１２と対応付けてファームウェアバージョン管理データベースＤＢ２ｂに記憶された状態の場合、当該１の印刷装置１０に現時点でインストールされているファームウェアのバージョンよりも新しいバージョンのファームウェアが存在した状態である。  ステップＳＥ４の処理について詳述すると、第２サーバー制御部４０は、ステップＳＥ１で受信した定期印刷装置情報Ｊ９に含まれる印刷装置機種情報Ｊ１２を取得する。次いで、第２サーバー制御部４０は、取得した印刷装置機種情報Ｊ１２の値と同一の値の印刷装置機種情報Ｊ１２を有するレコードを特定する。次いで、第２サーバー制御部４０は、特定したレコードが有する第１ファームウェアバージョン情報Ｊ１０の値と、受信した定期印刷装置情報Ｊ９に含まれる第１ファームウェアバージョン情報Ｊ１０の値とを比較し、比較結果に基づいて、第１ファームウェア２１ａについて、印刷装置１０に現時点でインストールされているファームウェアのバージョンよりも新しいバージョンのファームウェアが存在するか否かを判別する。同様に、第２サーバー制御部４０は、特定したレコードが有する第２ファームウェアバージョン情報Ｊ１１の値と、受信した定期印刷装置情報Ｊ９に含まれる第２ファームウェアバージョン情報Ｊ１１の値とを比較し、比較結果に基づいて、第２ファームウェア２１ｂについて、印刷装置１０に現時点でインストールされているファームウェアのバージョンよりも新しいバージョンのファームウェアが存在するか否かを判別する。第２サーバー制御部４０は、第１ファームウェア２１ａ及び第２ファームウェア２１ｂの双方について、印刷装置１０に現時点でインストールされているファームウェアのバージョンよりも新しいバージョンのファームウェアが存在しない場合、第１の条件が成立しないと判別し、それ以外の場合、第１の条件が成立すると判別する。
【００４７】
ステップＳＥ４において、第１の条件が成立しないと判別した場合（ステップＳＥ４：ＮＯ）、第２サーバー制御部４０は、ファームウェアの更新を行わないことを指示する情報を含む不実行指示情報Ｊ１３を生成する（ステップＳＥ５）。
次いで、第２サーバー制御部４０は、第２サーバー通信部４１を制御して、ＨＴＴＰレスポンスとして、不実行指示情報Ｊ１３を印刷装置１０に送信する（ステップＳＥ６）。
【００４８】
ステップＳＥ４において、第１の条件が成立すると判別した場合（ステップＳＥ４：ＹＥＳ）、第２サーバー制御部４０は、第２サーバー記憶部４２が記憶する更新管理データベースＤＢ２ｃを参照する（ステップＳＥ７）。
更新管理データベースＤＢ２ｃは、印刷装置１０ごとにレコードを有する。更新管理データベースＤＢ２ｃの１の印刷装置１０に対応するレコードは、当該１の印刷装置１０の印刷装置識別情報Ｊ３と、当該１の印刷装置１０についての更新可否情報Ｊ１４と、当該１の印刷装置１０についての更新可能時間帯情報Ｊ１５と、を有する。
【００４９】
更新可否情報Ｊ１４は、印刷装置１０に現時点でインストールされているファームウェアのバージョンよりも新しいバージョンのファームウェアが存在する場合において、当該新しいバージョンのファームウェアへの更新を許可するか否かを示す情報である。更新可否情報Ｊ１４は、値として、更新を許可することを示す値と、更新を許可しないことを示す値とのいずれかをとる。
以下の説明では、ステップＳＤ３で印刷装置制御部２０が定期印刷装置情報Ｊ９を送信した時点で、印刷装置１０にインストールされた状態の第１ファームウェア２１ａを、適宜、「既存第１ファームウェア」と表現する。また、当該時点で、印刷装置１０にインストールされた状態の第２ファームウェア２１ｂを、適宜、「既存第２ファームウェア」と表現する。また、既存第１ファームウェアと既存第２ファームウェアとを区別しない場合は、これらファームウェアを総称して「既存ファームウェア」と表現する。
また、既存第１ファームウェアのバージョンよりも新しいバージョンの第１ファームウェア２１ａを、適宜、「新第１ファームウェア」と表現する。また、既存第２ファームウェアのバージョンよりも新しいバージョンの第２ファームウェア２１ｂを、適宜、「新第２ファームウェア」と表現する。また、新第１ファームウェアと新第２ファームウェアとを区別しない場合は、これらファームウェアを総称して「新ファームウェア」と表現する。
印刷装置１０は、既存第１ファームウェアを更新する場合、新第１ファームウェアにより、既存第１ファームウェアを書換える。同様に、印刷装置１０は、既存第２ファームウェアを更新する場合、新第２ファームウェアにより、既存第２ファームウェアを書換える。
【００５０】
ここで、印刷装置１０にインストール可能な新ファームウェアが存在する場合であっても、既存ファームウェアを新ファームウェアにより更新することが許可されない場合がある。例えば、新ファームウェアの動作テストが完了しておらず、又は、動作テストの結果が正常ではなく、既存ファームウェアを新ファームウェアにより更新することが適切でない場合である。また例えば、１の印刷装置１０について、ユーザーとの間で、既存ファームウェアを新ファームウェアにより更新することができない旨の契約が存在する場合である。また例えば、既存ファームウェアを新ファームウェアにより更新することについてユーザーが望まない場合である。
そして、１の印刷装置１０について、既存ファームウェアを新ファームウェアにより更新することが許可されない場合、当該１の印刷装置１０の更新可否情報Ｊ１４の値は、更新を許可しないことを示す値とされる。一方、１の印刷装置１０について、既存ファームウェアを新ファームウェアにより更新することが許可される場合、当該１の印刷装置１０の更新可否情報Ｊ１４の値は、更新を許可することを示す値とされる。
【００５１】
更新可能時間帯情報Ｊ１５は、印刷装置１０が既存ファームウェアを新ファームウェアにより更新する処理を実行可能な時間帯を示す情報である。
ここで、上述したように、印刷装置１０は、店舗のレジカウンターに設けられ、レジカウンターで行われる会計に応じてレシートを発行する。従って、店舗が開店してから閉店するまでの時間帯は、店舗で行われる業務に影響を与えるため、印刷装置１０は、既存ファームウェアを新ファームウェアにより更新する処理を実行できない。また、店舗によっては、印刷装置１０が、レシートの発行以外の別の用途で使用される場合もあり、この場合において、印刷装置１０が当該別の用途で使用される時間帯は、印刷装置１０は、既存ファームウェアを新ファームウェアにより更新する処理を実行できない。このように、印刷装置１０ごとに、印刷装置１０が印刷を実行する可能性がある時間帯と、当該時間帯を除く印刷装置１０が印刷を実行しない時間帯とが存在する。
そして、１の印刷装置１０について、当該１の印刷装置１０の更新可能時間帯情報Ｊ１５は、当該１の印刷装置１０が印刷を実行せず、印刷装置１０が既存ファームウェアを新ファームウェアにより更新する処理を実行可能な時間帯を示す情報とされる。
なお、本実施形態では、印刷装置１０が店舗に設けられ、レシートの発行に用いられる場合を例とするが、印刷装置１０が設けられる場所は店舗に限られず、また、印刷装置１０の用途もレシートの発行に限られない。これを踏まえ、更新可能時間帯情報Ｊ１５が示す時間帯は、印刷装置１０が設けられた環境、及び、印刷装置１０の用途に応じて、適切に定められる。
更新管理データベースＤＢ２ｃの内容は、所定の手段によって、適切なタイミングで更新される。
【００５２】
ステップＳＥ７で更新管理データベースＤＢ２ｃを参照した後、第２サーバー制御部４０は、第２の条件（所定の条件）が成立するか否かを判別する（ステップＳＥ８）。
第２の条件は、印刷装置１０の既存ファームウェアを新ファームウェアにより更新することが許可されていること、という条件である。
ステップＳＥ８において、第２サーバー制御部４０は、ステップＳＥ７で参照した更新管理データベースＤＢ２ｃのレコードのうち、ステップＳＥ１で受信した定期印刷装置情報Ｊ９に含まれる印刷装置識別情報Ｊ３の値と同一の値の印刷装置識別情報Ｊ３を有するレコードを特定する。次いで、第２サーバー制御部４０は、特定したレコードが有する更新可否情報Ｊ１４を参照する。第２サーバー制御部４０は、更新可否情報Ｊ１４の値が、更新を許可することを示す値の場合、第２の条件が成立すると判別する。一方、第２サーバー制御部４０は、更新可否情報Ｊ１４の値が、更新を許可しないことを示す値の場合、第２の条件が成立しないと判別する。
【００５３】
ステップＳＥ８で第２の条件が成立しないと判別した場合（ステップＳＥ８：ＮＯ）、第２サーバー制御部４０は、上述したステップＳＥ５の処理、及び、上述したステップＳＥ６の処理を実行する。
一方、ステップＳＥ８で第２の条件が成立すると判別した場合（ステップＳＥ８：ＹＥＳ）、第２サーバー制御部４０は、第３の条件が成立するか否かを判別する（ステップＳＥ９）。
第３の条件は、現時点が、印刷装置１０によって既存ファームウェアを新ファームウェアにより更新する処理を実行可能な時間帯に属すること、という条件である。
ステップＳＥ９において、第２サーバー制御部４０は、ステップＳＥ７で参照した更新管理データベースＤＢ２ｃのレコードのうち、ステップＳＥ１で受信した定期印刷装置情報Ｊ９に含まれる印刷装置識別情報Ｊ３の値と同一の値の印刷装置識別情報Ｊ３を有するレコードを特定する。次いで、第２サーバー制御部４０は、特定したレコードが有する更新可能時間帯情報Ｊ１５を参照する。第２サーバー制御部４０は、現時点が、更新可能時間帯情報Ｊ１５が示す時間帯に属する場合、第３の条件が成立すると判別する。一方、第２サーバー制御部４０は、現時点が、更新可能時間帯情報Ｊ１５が示す時間帯に属しない場合、第３の条件が成立しないと判別する。
【００５４】
ステップＳＥ９で第３の条件が成立しないと判別した場合（ステップＳＥ９：ＮＯ）、第２サーバー制御部４０は、上述したステップＳＥ５の処理、及び、上述したステップＳＥ６の処理を実行する。
【００５５】
なお、第１の条件、第２の条件、及び、第３の条件の全てが成立する場合、第２サーバー制御部４０は、既存ファームウェアを、新ファームウェアにより更新させると判別する。
【００５６】
ステップＳＥ９で第３の条件が成立すると判別した場合（ステップＳＥ９：ＹＥＳ）、第２サーバー制御部４０は、ランダムＵＲＬ情報Ｊ１６を生成する（ステップＳＥ１０）。
ランダムＵＲＬ情報Ｊ１６は、印刷装置１０がファイル提供サーバー２ｃから新ファームウェアをダウンロードする際にアクセスするファイル提供サーバー２ｃのＵＲＬ（アドレス）を示す情報である。
ランダムＵＲＬ情報Ｊ１６は、「書換え用ファームウェアの格納場所を指定するアドレス」に相当する。
ランダムＵＲＬ情報Ｊ１６の値は、固定値ではなく、生成する度に値が変わる可変値とされる。ステップＳＥ１０において、第２サーバー制御部４０は、例えば、以下の処理を実行する。すなわち、第２サーバー制御部４０は、ランダムＵＲＬ情報Ｊ１６が示すＵＲＬのうち、ホスト名、及び、パス名は、予め定められた値とする。また、第２サーバー制御部４０は、ランダムに値を生成し、生成した値を、ランダムＵＲＬ情報Ｊ１６が示すＵＲＬにパラメーターとして付加する。
【００５７】
次いで、第２サーバー制御部４０は、以下の処理を実行する（ステップＳＥ１１）。すなわち、第２サーバー制御部４０は、ファームウェアバージョン管理データベースＤＢ２ｂを参照し、新ファームウェアバージョン通知情報Ｊ２３を生成する。
新ファームウェアバージョン通知情報Ｊ２３は、新ファームウェアについて、新ファームウェアを識別する識別情報と、新ファームウェアのバージョンを示す情報とを含む情報である。
ステップＳＥ１１の処理について詳述すると、第２サーバー制御部４０は、ファームウェアバージョン管理データベースＤＢ２ｂを参照し、既存第１ファームウェアを新第１ファームウェアにより更新させる場合は、新第１ファームウェアを識別する新第１ファームウェア識別情報Ｊ１７と、新第１ファームウェアのバージョンを示す新第１ファームウェアバージョン情報Ｊ１８との組み合わせを新ファームウェアバージョン通知情報Ｊ２３に含める。また、第２サーバー制御部４０は、ファームウェアバージョン管理データベースＤＢ２ｂを参照し、既存第２ファームウェアを新第２ファームウェアにより更新させる場合は、新第２ファームウェアを識別する新第２ファームウェア識別情報Ｊ２０と、新第２ファームウェアのバージョンを示す新第２ファームウェアバージョン情報Ｊ２１との組み合わせを新ファームウェアバージョン通知情報Ｊ２３に含める。
【００５８】
次いで、第２サーバー制御部４０は、更新関連情報Ｊ２４を生成する（ステップＳＥ１２）。
更新関連情報Ｊ２４は、生成したランダムＵＲＬ情報Ｊ１６と、生成した新ファームウェアバージョン通知情報Ｊ２３とを少なくとも含む情報である。
次いで、第２サーバー制御部４０は、第２サーバー通信部４１を制御して、更新関連情報Ｊ２４をファイル提供サーバー２ｃに送信する（ステップＳＥ１３）。
【００５９】
図５のフローチャートＦＦに示すように、ファイル提供サーバー２ｃの第３サーバー制御部５０は、更新関連情報Ｊ２４を受信する（ステップＳＦ１）。
次いで、第３サーバー制御部５０は、更新関連情報Ｊ２４を第３サーバー記憶部５２の所定の記憶領域に記憶する（ステップＳＦ２）。更新関連情報Ｊ２４は、第３サーバー記憶部５２に累積的に記憶される。
【００６０】
図５のフローチャートＦＥに示すように、管理サーバー２ｂの第２サーバー制御部４０は、更新指示情報Ｊ２５を生成する（ステップＳＥ１４）。
更新指示情報Ｊ２５は、ファームウェアの更新を行うことを指示する情報と、生成したランダムＵＲＬ情報Ｊ１６とを少なくとも含む情報である。
次いで、第２サーバー制御部４０は、第２サーバー通信部４１を制御して、生成した更新指示情報Ｊ２５をＨＴＴＰレスポンスとして印刷装置１０に送信する。
【００６１】
図５のフローチャートＦＤに示すように、印刷装置１０の印刷装置制御部２０は、印刷装置ネットワーク通信部２３を制御して、ステップＳＥ６で管理サーバー２ｂが送信した不実行指示情報Ｊ１３、又は、ステップＳＥ１５で管理サーバー２ｂが送信した更新指示情報Ｊ２５を受信する（ステップＳＤ４）。
次いで、印刷装置制御部２０は、受信した情報が、不実行指示情報Ｊ１３であるか否かを判別する（ステップＳＤ５）。
受信した情報が不実行指示情報Ｊ１３の場合（ステップＳＤ５：ＹＥＳ）、印刷装置制御部２０は、処理手順をステップＳＤ１へ移行する。この場合、ファームウェアの更新は行われない。
【００６２】
受信した情報が不実行指示情報Ｊ１３ではない場合（ステップＳＤ５：ＮＯ）、換言すれば、受信した情報が更新指示情報Ｊ２５の場合、印刷装置制御部２０は、ファームウェア更新処理を実行する（ステップＳＤ６）。
以下、ファームウェア更新処理について詳述する。
【００６３】
図６は、印刷装置１０がファームウェア更新処理を実行するときの、印刷装置１０、管理サーバー２ｂ、及びファイル提供サーバー２ｃの動作を示すフローチャートである。図６のフローチャートＦＧは印刷装置１０の動作を示し、フローチャートＦＨは管理サーバー２ｂの動作を示し、フローチャートＦＩはファイル提供サーバー２ｃの動作を示す。
フローチャートＦＧの処理が、ファームウェア更新処理に相当する。
以下の説明では、既存ファームウェアを新ファームウェアにより更新することを、適宜、「ファームウェアを更新する」と表現する。ファームウェアを更新する処理は、ファームウェアを書換える処理に相当する。
【００６４】
図６のフローチャートＦＧに示すように、印刷装置１０の印刷装置制御部２０は、ファームウェアの更新に係る処理を実行可能な状態か否かを判別する（ステップＳＧ１）。例えば、印刷を実行中の場合や、印刷装置１０の筐体に設けられたカバーが開状態の場合、印刷装置１０にファームウェアの更新に係る処理を実行できないエラーが発生している状態の場合、印刷装置制御部２０は、ファームウェアの更新に係る処理を実行できないと判別する。
ファームウェアの更新に係る処理を実行可能な状態ではない場合（ステップＳＧ１：ＮＯ）、印刷装置制御部２０は、対応する処理を実行する（ステップＳＧ２）。例えば、ステップＳＧ２において、印刷装置制御部２０は、待機すれば、ファームウェアの更新に係る処理を実行可能な状態へ移行する状況であれば、ファームウェアの更新に係る処理を実行可能な状態へ移行するまでの間待機し、処理手順をステップＳＧ３へ移行する。また例えば、ステップＳＧ２において、印刷装置制御部２０は、待機してもファームウェアの更新に係る処理を実行可能な状態へ移行するか否か不明な状況であれば、管理サーバー２ｂ、その他の装置に通知し、また、所定の手段でユーザーに通知する。
【００６５】
ステップＳＧ１において、ファームウェアの更新に係る処理を実行可能な状態であると判別した場合（ステップＳＧ１：ＹＥＳ）、印刷装置制御部２０は、動作モードを、ファームウェア更新モードへ移行する（ステップＳＧ３）。印刷装置制御部２０は、動作モードがファームウェア更新モードの間、印刷に係る処理等の、ファームウェアの更新に係る処理に影響を与える可能性のある処理の実行を禁止する。
次いで、印刷装置制御部２０は、印刷部２２を制御して、ファームウェアの更新を開始する旨の情報をロール紙に印刷する（ステップＳＧ４）。
【００６６】
図７は、ステップＳＧ４でロール紙に印刷される情報の一例を示す図である。
図７に示すように、ロール紙には、ファームウェアの更新を開始する旨、ファームウェアの更新が完了した場合そのことが通知される旨、及びファームウェアの更新が完了するまでは印刷装置１０の電源をオフしないようにすべき旨を示す情報が印刷される。ユーザーは、ロール紙に印刷された情報を視認することにより、ファームウェアの更新が開始されること、及び、注意すべき点について、的確に認識できる。
なお、印刷装置１０が、液晶表示パネル等の表示パネルを有さず、これにより小型化が図られている場合に、ステップＳＧ４の処理が行われることにより、印刷装置１０が印刷する機能を有することを効果的に利用して、ユーザーに必要な情報を通知できる。
また、印刷装置１０が、液晶表示パネル等の表示パネルを有する場合、表示パネルに上記情報を表示してもよい。
【００６７】
次いで、印刷装置制御部２０は、印刷装置ネットワーク通信部２３を制御して、ファームウェアの更新が可能な状態であることを通知する情報を、ＨＴＴＰリクエストにより、管理サーバー２ｂに通知する（ステップＳＧ５）。
【００６８】
図６のフローチャートＦＨに示すように、管理サーバー２ｂの第２サーバー制御部４０は、第２サーバー通信部４１を制御して、ステップＳＧ５で印刷装置１０が送信した情報を受信する（ステップＳＨ１）。
次いで、第２サーバー制御部４０は、第２サーバー記憶部４２が記憶するハッシュ値管理データベースＤＢ２ｄを参照する（ステップＳＨ２）。
ハッシュ値管理データベースＤＢ２ｄは、ファームウェアごとに、各バージョンのファームウェアのハッシュ値を管理するデータベースである。ファームウェアのハッシュ値とは、ファームウェアのファイルデータから、所定のハッシュ関数を用いて得られるハッシュ値である。ハッシュ値管理データベースＤＢ２ｄは、１のバージョンの１のファームウェアについて、当該１のバージョンの当該１のファームウェアを識別する識別情報と、当該１のバージョンを識別する識別情報と、当該１のバージョンの当該１のファームウェアのハッシュ値とを対応付けて記憶する。
【００６９】
次いで、第２サーバー制御部４０は、ハッシュ値管理データベースＤＢ２ｄに基づいて、既存ファームウェアを更新する新ファームウェアのハッシュ値を取得する（ステップＳＨ３）。ステップＳＨ３において、第２サーバー制御部４０は、既存第１ファームウェアを新第１ファームウェアにより更新させる場合は、新第１ファームウェア識別情報Ｊ１７及び新第１ファームウェアバージョン情報Ｊ１８に基づいて、新第１ファームウェアのハッシュ値を取得する。より詳細には、第２サーバー制御部４０は、図５のフローチャートＦＥのステップＳＥ１１で生成した新ファームウェアバージョン通知情報Ｊ２３に含まれる新第１ファームウェアの新ファームウェア識別情報Ｊ１７を取得すると共に、ファームウェアバージョン管理データベースＤＢ２ｂに基づいて新第１ファームウェアの新第１ファームウェアバージョン情報Ｊ１８を取得する。次いで、第２サーバー制御部４０は、ハッシュ値管理データベースＤＢ２ｄにおいて、取得した新ファームウェア識別情報Ｊ１７の値と同一の値のファームウェアを識別する識別情報と、取得した第１ファームウェアバージョン情報Ｊ１８の値のバージョンを識別する識別情報との組み合わせと対応付けられたハッシュ値を取得する。
また、第２サーバー制御部４０は、既存第２ファームウェアを更新する新第２ファームウェアが存在する場合は、新第２ファームウェア識別情報Ｊ２０及び新第２ファームウェアバージョン情報Ｊ２１に基づいて、新第２ファームウェアのハッシュ値を取得する。愛２サーバー制御部４０は、新第１ファームウェアのハッシュ値を取得する方法と、同様の方法で新第１ファームウェアのハッシュ値を取得する。
【００７０】
次いで、第２サーバー制御部４０は、秘密鍵を取得する（ステップＳＨ４）。
秘密鍵は、公開鍵暗号化方式に対応する暗号化キーである。秘密鍵は、管理サーバー２ｂに事前に登録され、第２サーバー記憶部４２の所定の記憶領域に記憶される。後述するように、印刷装置１０には、管理サーバー２ｂが記憶する秘密鍵に対応する公開鍵が記憶される。
【００７１】
次いで、第２サーバー制御部４０は、ステップＳＨ３で取得したハッシュ値を、秘密鍵によって暗号化して署名情報Ｊ２６を生成する（ステップＳＨ５）。なお、ステップＳＨ３で新第１ファームウェアのハッシュ値、及び、新第２ファームウェアの２つのハッシュ値を取得した場合、ステップＳＨ５において、第２サーバー制御部４０は、それぞれのハッシュ値に基づいて、２個の署名情報Ｊ２６を生成する。
【００７２】
次いで、第２サーバー制御部４０は、第２サーバー通信部４１を制御して、ＨＴＴＰレスポンスとして、ステップＳＨ５で生成した１個又は２個の署名情報Ｊ２６を印刷装置１０に送信する（ステップＳＨ６）。
【００７３】
図６のフローチャートＦＧに示すように、印刷装置１０の印刷装置制御部２０は、印刷装置ネットワーク通信部２３を制御して、署名情報Ｊ２６を受信する（ステップＳＧ６）。
次いで、印刷装置制御部２０は、公開鍵を取得する（ステップＳＧ７）。
公開鍵は、公開鍵暗号化方式に対応する復号化キーである。ここで、第１ファームウェア２１ａのデータ部には、公開鍵が記述される。ステップＳＧ７において、印刷装置制御部２０は、第１ファームウェア２１ａのデータ部を参照し、公開鍵を取得する。
【００７４】
次いで、印刷装置制御部２０は、ステップＳＧ７で取得した公開鍵により、ステップＳＧ６で受信した署名情報Ｊ２６を復号し、ハッシュ値を生成する（ステップＳＧ８）。ステップＳＧ８において、印刷装置制御部２０は、２つの署名情報Ｊ２６を受信した場合は、２つの署名情報Ｊ２６のそれぞれを復号し、ハッシュ値を生成する。
【００７５】
次いで、印刷装置制御部２０は、ステップＳＤ４で受信した更新指示情報Ｊ２５に含まれるランダムＵＲＬ情報Ｊ１６が示すアドレス（ＵＲＬ）を宛先として、ファームウェアの送信を要求する情報を、ＨＴＴＰリクエストによりファイル提供サーバー２ｃに送信する（ステップＳＧ９）。
【００７６】
図６のフローチャートＦＩに示すように、ファイル提供サーバー２ｃの第３サーバー制御部５０は、第３サーバー通信部５１を制御して、ステップＳＧ９で印刷装置１０が送信した情報を受信する（ステップＳＩ１）。
次いで、第３サーバー制御部５０は、第３サーバー記憶部５２の所定の記憶領域に記憶された更新関連情報Ｊ２４のうち、印刷装置１０によりアクセスされたＵＲＬに対応する更新関連情報Ｊ２４を取得する（ステップＳＩ２）。上述したように、更新関連情報Ｊ２４は、ランダムＵＲＬ情報Ｊ１６と、新ファームウェアバージョン通知情報Ｊ２３とを含む情報である。ステップＳＩ２において、第３サーバー制御部５０は、印刷装置１０によりアクセスされたＵＲＬの値と同一の値のランダムＵＲＬ情報Ｊ１６を有する更新関連情報Ｊ２４を取得する。
上述したように、ランダムＵＲＬ情報Ｊ１６は、固定値ではなく、ランダムに生成される可変値であり、管理サーバー２ｂにより生成されて、印刷装置１０、及び、ファイル提供サーバー２ｃに通知される。そして、印刷装置１０が、ランダムＵＲＬ情報Ｊ１６に基づいてファイル提供サーバー２ｃにアクセスする構成のため、アクセス元の印刷装置１０の正当性を担保できる。
【００７７】
次いで、第３サーバー制御部５０は、第３サーバー記憶部５２が記憶するファイル管理データベースＤＢ３ａを参照する（ステップＳＩ３）。
ファイル管理データベースＤＢ３ａは、ファームウェアのそれぞれについて、各バージョンのファームウェアのファイルデータを記憶するデータベースである。ファイル管理データベースＤＢ３ａは、１のバージョンの１のファームウェアについて、当該１のファームウェアを識別する識別情報と、当該１のバージョンを識別する識別情報と、当該１のバージョンの当該１のファームウェアのファイルデータとを対応付けて記憶する。
【００７８】
次いで、第３サーバー制御部５０は、ステップＳＩ２で取得した更新関連情報Ｊ２４に含まれる新ファームウェアバージョン通知情報Ｊ２３と、ステップＳＩ３で参照したファイル管理データベースＤＢ３ａとに基づいて、新ファームウェアのファイルデータを取得する（ステップＳＩ４）。上述したように、新ファームウェアバージョン通知情報Ｊ２３は、新ファームウェアについて、新ファームウェアを識別する識別情報と、新ファームウェアのバージョンを示す情報とを含む情報である。すなわち、新ファームウェアバージョン通知情報Ｊ２３は、印刷装置１０における既存ファームウェアの更新に用いる新ファームウェアについて、識別情報と、バージョンを示す情報とを有する。
ステップＳＩ４において、第３サーバー制御部５０は、既存第１ファームウェアを更新する場合は、当該ファームウェアの更新に用いる新第１ファームウェアのファイルデータを取得する。また、第３サーバー制御部５０は、既存第２ファームウェアを更新する場合は、当該ファームウェアの更新に用いる新第２ファームウェアのファイルデータを取得する。また、第３サーバー制御部５０は、既存第１ファームウェア、及び、既存第２ファームウェアの双方を更新する場合は、新第１ファームウェアのファイルデータ、及び、新第２ファームウェアのファイルデータを取得する。
【００７９】
次いで、第３サーバー制御部５０は、第３サーバー通信部５１を制御して、ステップＳＩ４で取得した新ファームウェアのファイルデータを、印刷装置１０に送信する（ステップＳＩ５）。
ステップＳＩ５で送信される新ファームウェアのファイルデータは、「書換え用ファームウェア」に相当する。
【００８０】
図６のフローチャートＦＧに示すように、印刷装置１０の印刷装置制御部２０は、印刷装置ネットワーク通信部２３を制御して、新ファームウェアのファイルデータを受信する（ステップＳＧ１０）。
次いで、印刷装置制御部２０は、新ファームウェアのファイルデータから、所定のハッシュ関数を用いてハッシュ値を生成する（ステップＳＧ１１）。ステップＳＧ１１において、印刷装置制御部２０は、ファイルデータが２個ある場合は、２個のファイルデータのそれぞれについて、所定のハッシュ関数を用いてハッシュ値を生成する。
ステップＳＧ１１で使用される所定のハッシュ関数は、管理サーバー２ｂが記憶するハッシュ値を生成するときに用いられたハッシュ関数と同一である。所定のハッシュ関数は、印刷装置１０に事前に登録され、印刷装置記憶部２１の所定の記憶領域に記憶される。
【００８１】
次いで、印刷装置制御部２０は、ステップＳＧ８で公開鍵を用いて生成したハッシュ値と、ステップＳＧ１０で所定のハッシュ関数を用いて生成したハッシュ値とを比較する（ステップＳＧ１２）。ステップＳＧ８で公開鍵を用いて生成したハッシュ値と、ステップＳＧ１０で所定のハッシュ関数を用いて生成したハッシュ値とが同一の場合、印刷装置１０がファイル提供サーバー２ｃから受信した新ファームウェアのファイルデータが改ざんされていない（ファイルデータに正当性がある）、ということである。ステップＳＧ１２の処理は、新ファームウェアのファイルデータ（書換え用ファームウェア）の正当性を判別する処理に相当する。
特に、本実施形態では、新ファームウェアのファイルデータの送信元の装置（ファイル提供サーバー２ｃ）と、当該ファイルデータの正当性の判別に用いる署名情報Ｊ２６の送信元の装置（管理サーバー２ｂ）とが異なる構成である。この構成のため、新ファームウェアのファイルデータと署名情報Ｊ２６とを同一の装置が印刷装置１０に対して送信する構成と比較して、第三者が、当該ファイルデータと署名情報Ｊ２６との双方を取得する可能性を効果的に低減できる。これにより、当該ファイルデータ及び署名情報Ｊ２６の双方を用いて、第三者により秘密鍵が解読される可能性を効果的に低減でき、ファイルデータの正当性を的確に判別でき、ファイルデータの改ざんを防止できる。
【００８２】
次いで、印刷装置制御部２０は、ステップＳＧ８で公開鍵を用いて生成したハッシュ値と、ステップＳＧ１０で所定のハッシュ関数を用いて生成したハッシュ値とが同一か否かを判別する（ステップＳＧ１３）。
ハッシュ値が同一ではない場合（ステップＳＧ１３：ＮＯ）、印刷装置制御部２０は、ファームウェアの更新を行わず、対応する処理を実行する（ステップＳＧ１４）。ステップＳＧ１４の処理において、印刷装置制御部２０は、少なくとも、以下の処理を実行する。すなわち、印刷装置制御部２０は、印刷部２２を制御して、受信した新ファームウェアのファイルデータが改ざんされた可能性がある旨の情報をロール紙に印刷する。ユーザーは、ロール紙に印刷された情報を参照することにより、的確に、新ファームウェアのファイルデータが改ざんされた可能性があることを認識できる。また、印刷装置制御部２０は、受信した新ファームウェアのファイルデータが改ざんされた可能性がある旨を、管理サーバー２ｂ、その他の装置に通知してもよい。その他、印刷装置１０が、液晶表示パネル等の表示パネルを有する場合、印刷装置制御部２０は、表示パネルに受信した新ファームウェアのファイルデータが改ざんされた可能性がある旨を表示してもよい。
一方、ハッシュ値が同一の場合（ステップＳＧ１３：ＹＥＳ）、印刷装置制御部２０は、ステップＳＧ１０で受信した新ファームウェアのファイルデータに基づいて、既存ファームウェアを更新する（ステップＳＧ１５）。ステップＳＧ１５において、印刷装置制御部２０は、新第１ファームウェアのファイルデータ及び新第２ファームウェアのファイルデータを受信した場合は、新第１ファームウェアのファイルデータにより既存第１ファームウェアを更新し、新第２ファームウェアのファイルデータにより既存第２ファームウェアを更新する。また、印刷装置制御部２０は、新第１ファームウェアのファイルデータと新第２ファームウェアのファイルデータとのうち、一方のファイルデータを受信した場合は、対応する既存ファームウェアを受信したファイルデータにより更新する。
【００８３】
ここで、本実施形態に係る印刷装置１０は、第１ファームウェア２１ａ、及び、第２ファームウェア２１ｂの２つのファームウェアを記憶する。そして、上述したように、一方のファームウェアの更新が必要な状況では、ファイル提供サーバー２ｃから印刷装置１０に対して、当該一方のファームウェアのファイルデータのみが送信される。この構成のため、ファイル提供サーバー２ｃから印刷装置１０に対して送信されるデータのデータ量の低減、データ量の低減に伴う通信効率の向上、及び、印刷装置１０においてファームウェアを更新する処理の処理効率の向上を図ることができる。
【００８４】
次いで、印刷装置制御部２０は、印刷部２２を制御して、ファームウェアの更新が完了した旨の情報をロール紙に印刷する（ステップＳＧ１６）。
【００８５】
図８は、ステップＳＧ１６でロール紙に印刷される情報の一例を示す図である。
図８に示すように、ロール紙には、ファームウェアの更新が完了した旨を示す情報、再起動を促す情報が印刷される。ユーザーは、ロール紙に印刷された情報を視認することにより、ファームウェアの更新が完了したこと、及び、再起動すべきことについて、的確に認識できる。また、印刷装置１０が、液晶表示パネル等の表示パネルを有する場合、表示パネルに上記情報を表示してもよい。
【００８６】
次いで、印刷装置制御部２０は、動作モードを、ファームウェア更新モードから通常モードへ移行する（ステップＳＧ１７）。
【００８７】
次に、印刷装置１０の別の処理について説明する。
上述したように、署名情報Ｊ２６を復号するときに用いる公開鍵は、第１ファームウェア２１ａのデータ部に記述される。そして、印刷装置制御部２０は、第１ファームウェア２１ａの更新により公開鍵が改変されることを許可する一方、第１ファームウェア２１ａの更新以外の方法で公開鍵が改変されることを禁止する。従って、印刷装置１０と通信可能な外部の装置から印刷装置１０に制御コマンドを送信し、公開鍵を改変することはできない。これにより以下の効果を奏する。すなわち、本実施形態では、ファームウェアの更新に際し、新ファームウェアのファイルデータの正当性が判別され、改ざんされた新ファームウェアのファイルデータにより、既存ファームウェアが更新されることが防止される。従って、ファームウェアの更新により改変された公開鍵は正当性を有する公開鍵であるとみなすことができる。これを踏まえ、第１ファームウェア２１ａの更新により公開鍵が改変されることを許可する一方、第１ファームウェア２１ａの更新以外の方法で公開鍵が改変されることを禁止することによって、不正に公開鍵が改変されることを防止できる。
【００８８】
以上説明したように、本実施形態に係る印刷装置１０は、サーバーユニット２（サーバー）が有する印刷装置制御サーバー２ａ、管理サーバー２ｂ、及び、ファイル提供サーバー２ｃと接続可能である。印刷装置１０は、管理サーバー２ｂに定期印刷装置情報Ｊ９（印刷装置情報）を送信し、所定の条件を満たす場合に、管理サーバー２ｂから新ファームウェアのファイルデータ（書換え用ファームウェア）の格納場所を指定するアドレスを受信する印刷装置ネットワーク通信部２３と、印刷装置ネットワーク通信部２３で受信したアドレスに基づいて、ファイル提供サーバー２ｃから新ファームウェアのファイルデータを受信してファームウェアの書換え（更新）を実行する印刷装置制御部２０と、を備える。
この構成によれば、印刷装置１０は、管理サーバー２ｂで所定の条件を満たすと判別された場合に、新ファームウェアのファイルデータの格納場所を指定するアドレスを受信し、アドレスに基づいて新ファームウェアのファイルデータを受信し、ファームウェアの書換えを行う。このため、所定の条件を満たさない場合に、印刷装置１０が新ファームウェアのファイルデータの格納場所を指定するアドレスを取得することを防止でき、また、管理サーバー２ｂで、印刷装置１０のファームウェアの書換えの可否や、書換えに係る処理を実行するタイミングを制御できる。すなわち、本実施形態によれば、サーバーユニット２と通信してファームウェアを書き換える印刷装置１０について、サーバーユニット２と通信することを踏まえた適切な方法でファームウェアの書き換えを実行できる。
【００８９】
また、本実施形態では、定期印刷装置情報Ｊ９は、印刷装置機種情報Ｊ１２（印刷装置本体の機種を示す機種情報）と、第１ファームウェアバージョン情報Ｊ１０、及び第２ファームウェアバージョン情報Ｊ１１（ファームウェアのバージョンを示すバージョン情報）とを含む。そして、所定の条件を満たすか否かは、印刷装置１０が送信した上記の情報に基づいて管理サーバー２ｂにより判別される。
この構成によれば、印刷装置１０が送信する定期印刷装置情報Ｊ９に、印刷装置機種情報Ｊ１２、第１ファームウェアバージョン情報Ｊ１０、及び第２ファームウェアバージョン情報Ｊ１１が含まれるため、管理サーバー２ｂにおいて、印刷装置１０の機種、及び、既存ファームウェアのバージョンを踏まえて、印刷装置１０におけるファームウェアの書換えが必要か否かを適切に判別することが可能となる。
【００９０】
また、本実施形態では、定期印刷装置情報Ｊ９は、印刷装置識別情報Ｊ３（印刷装置本体の識別情報）を含む。そして、所定の条件を満たすか否かは、印刷装置ネットワーク通信部２３で送信した印刷装置識別情報Ｊ３に基づいて管理サーバー２ｂにより判別される。
この構成によれば、印刷装置１０が送信する定期印刷装置情報Ｊ９に、印刷装置識別情報Ｊ３が含まれるため、管理サーバー２ｂにおいて、印刷装置１０の印刷装置識別情報Ｊ３を利用して、印刷装置１０の固有の事情を踏まえて、印刷装置１０におけるファームウェアの書換えが必要か否かを適切に判別することが可能となる。
【００９１】
また、本実施形態では、所定の条件を満たすか否かは、印刷装置１０によるファームウェアの書換えが許可されているか否かによって、管理サーバー２ｂにより判別される。
この構成によれば、管理サーバー２ｂにおいて、印刷装置１０によるファームウェアの書換えが許可されているか否かを踏まえて、印刷装置１０におけるファームウェアの書換えが必要か否かを適切に判別することが可能となる。
【００９２】
また、本実施形態では、所定の条件を満たすか否かは、ファームウェアの書換えが可能な時間帯か否かによって判別される。
この構成によれば、印刷装置１０は、ファームウェアが書換え可能な時間帯に、当該書換えに係る処理を実行できる。
【００９３】
また、本実施形態では、ファームウェアの書換えが可能な時間帯は、印刷部２２によるロール紙（印刷媒体）への印刷を実行しない時間帯である。
この構成によれば、印刷装置１０は、印刷部２２によるロール紙への印刷が行われない時間帯に、ファームウェアの書換えに係る処理を実行できる。
【００９４】
また、本実施形態では、印刷装置制御部２０はファイル提供サーバー２ｃから新ファームウェアのファイルデータを受信してファームウェアの書換えを実行する前に、当該ファイルデータの正当性を判別する。
この構成によれば、新ファームウェアのファイルデータが正当性を有する場合に、ファームウェアの書換えが行われることにより、例えば、改ざんされたファイルデータによってファームウェアの書換えが実行されることを防止できる。
【００９５】
また、本実施形態では、印刷装置制御部２０は、新ファームウェアのファイルデータが正当であると判別した場合、当該ファイルデータに基づくファームウェアの書換えを実行する。一方、印刷装置制御部２０は、新ファームウェアのファイルデータが正当でないと判別した場合、当該ファイルデータに基づくファームウェアの書換えを実行しない。
この構成によれば、印刷装置１０が記憶するファームウェアが、改ざんされた可能性のあるファームウェアに書き換えられることを防止できる。
【００９６】
また、以上説明したように、本実施形態では、ネットワークシステム１は、印刷装置１０と、印刷装置１０と接続可能なサーバーユニット２（サーバー）とを含んで構成される。サーバーユニット２は、印刷装置制御サーバー２ａと、管理サーバー２ｂと、ファイル提供サーバー２ｃとを含んで構成される。サーバーユニット２の管理サーバー２ｂは、印刷装置１０から定期印刷装置情報Ｊ９（印刷装置情報）を受信し、所定の条件を満たす場合に、印刷装置１０に新ファームウェアのファイルデータ（書換え用ファームウェア）の格納場所を指定するアドレスを送信する。サーバーユニット２のファイル提供サーバー２ｃは、印刷装置１０からアドレスに基づいて新ファームウェアのファイルデータの送信の要求を受信した場合、新ファームウェアのファイルデータを印刷装置１０に送信する。
この構成によれば、サーバーユニット２は、所定の条件を満たさない場合に、印刷装置１０が新ファームウェアのファイルデータの格納場所を指定するアドレスを取得することを防止でき、また、印刷装置１０のファームウェアの書換えの可否や、書換えに係る処理を実行するタイミングを制御できる。すなわち、本実施形態によれば、印刷装置１０と通信してファームウェアの書き換え用ファームウェアを印刷装置１０に送信するサーバーユニット２、及び、ネットワークシステム１について、印刷装置１０と通信することを踏まえた適切な方法で、書き換え用ファームウェアを印刷装置１０に送信できる。
【００９７】
また、本実施形態では、定期印刷装置情報Ｊ９は、印刷装置機種情報Ｊ１２（印刷装置１０の機種を示す機種情報）と、第１ファームウェアバージョン情報Ｊ１０、及び第２ファームウェアバージョン情報Ｊ１１（ファームウェアのバージョンを示すバージョン情報）とを含む。サーバーユニット２の管理サーバー２ｂは、印刷装置１０から受信した定期印刷装置情報Ｊ９と、記憶するファームウェアバージョン管理データベースＤＢ２ｂにおいて対応付けて記憶された印刷装置機種情報Ｊ１２、第１ファームウェアバージョン情報Ｊ１０、及び第２ファームウェアバージョン情報Ｊ１１とに基づいて、所定の条件を満たすか否かを判別する。
この構成によれば、管理サーバー２ｂは、印刷装置１０の機種、及び、既存ファームウェアのバージョンを踏まえて、印刷装置１０におけるファームウェアの書換えが必要か否かを適切に判別することができる。
【００９８】
また、本実施形態では、定期印刷装置情報Ｊ９は、印刷装置識別情報Ｊ３（印刷装置１０を識別する識別情報）を含む。サーバーユニット２の管理サーバー２ｂは、印刷装置１０から受信した印刷装置識別情報Ｊ３に基づいて、所定の条件を満たすか否かを判別する。
この構成によれば、管理サーバー２ｂは、印刷装置１０の印刷装置識別情報Ｊ３を利用して、印刷装置１０の固有の事情を踏まえて、印刷装置１０におけるファームウェアの書換えが必要か否かを適切に判別することができる。
【００９９】
また、本実施形態では、管理サーバー２ｂは、印刷装置１０がファームウェアの書換えが可能な時間帯か否かによって、所定の条件を満たすか否かを判別する。
この構成によれば、管理サーバー２ｂは、印刷装置１０がファームウェアを書換え可能な時間帯に、当該書換えに係る処理を実行させることができる。
【０１００】
また、本実施形態では、印刷装置１０がファームウェアの書換えが可能な時間帯は、印刷装置１０が印刷を実行しない時間帯である。
この構成によれば、管理サーバー２ｂは、印刷装置１０が印刷を実行しない時間帯に、当該書換えに係る処理を実行させることができる。
【０１０１】
また、本実施形態では、サーバーユニット２は、印刷装置制御サーバー２ａ（第１のサーバー）、管理サーバー２ｂ（第２のサーバー）、及び、ファイル提供サーバー２ｃ（第３のサーバー）を含んで構成される。印刷装置制御サーバー２ａは、印刷装置１０からのアクセスに応じて、管理サーバー２ｂのアドレスを送信する。管理サーバー２ｂは、印刷装置１０からのアクセスに基づいて、所定の条件を満たす場合にランダムＵＲＬ情報Ｊ１６（ファイル提供サーバー２ｃにおける書換え用ファームウェアの格納場所を指定するアドレス）を送信する。ファイル提供サーバー２ｃは、印刷装置１０からのアクセスに基づいて、新ファームウェアのファイルデータを印刷装置１０に送信する。
この構成によれば、サーバーユニット２が、印刷装置制御サーバー２ａ、管理サーバー２ｂ、及び、ファイル提供サーバー２ｃを含んで構成されることを踏まえて、各サーバーに機能が割り振られることにより、各サーバーの負荷を分散できると共に、各サーバーが記憶するデータのデータ量を低減できる。
【０１０２】
また、本実施形態では、印刷装置制御サーバー２ａは、第２サーバーアクセス用パスワード情報Ｊ５（印刷装置１０が管理サーバー２ｂにアクセスする際に使用するパスワード）を生成し、印刷装置１０、及び管理サーバー２ｂに送信する。
この構成によれば、管理サーバー２ｂは、印刷装置制御サーバー２ａが生成した第２サーバーアクセス用パスワード情報Ｊ５に基づいて、印刷装置１０を認証できる。
【０１０３】
また、本実施形態では、管理サーバー２ｂは、ファイル提供サーバー２ｃにおけるランダムＵＲＬ情報Ｊ１６が示すＵＲＬ（書換え用ファームウェアの格納場所を指定するアドレスを）ランダムに生成し、印刷装置１０、及び、ファイル提供サーバー２ｃに送信する。
この構成によれば、ランダムＵＲＬ情報Ｊ１６を受信した正当な印刷装置１０以外の装置が、ファイル提供サーバー２ｃにアクセスして、新ファームウェアのファイルデータを取得することを防止できる。
【０１０４】
また、以上説明したように、本実施形態に係るネットワークシステム１は、印刷装置１０と、印刷装置１０と通信可能な管理サーバー２ｂと、印刷装置１０と通信可能なファイル提供サーバー２ｃとを含んで構成される。印刷装置１０は、公開鍵暗号化方式に係る情報である公開鍵が付加されたファームウェアを記憶する印刷装置記憶部２１を備える。印刷装置１０は、管理サーバー２ｂから新ファームウェアのファイルデータのハッシュ値を公開鍵に対応する秘密鍵により暗号化した署名情報Ｊ２６を受信し、また、ファイル提供サーバー２ｃから当該ファイルデータを受信する印刷装置ネットワーク通信部２３（印刷装置通信部）を備える。印刷装置１０は、印刷装置ネットワーク通信部２３で管理サーバー２ｂから受信した署名情報Ｊ２６を印刷装置記憶部２１が記憶する公開鍵で復号して生成したハッシュ値と、印刷装置ネットワーク通信部２３でファイル提供サーバー２ｃから受信した新ファームウェアのファイルデータのハッシュ値とを比較して、当該ファイルデータの正当性を判別する印刷装置制御部２０を備える。
この構成によれば、新ファームウェアのファイルデータの送信元の装置（ファイル提供サーバー２ｃ）と、当該ファイルデータの正当性の判別に用いる署名情報Ｊ２６の送信元の装置（管理サーバー２ｂ）とが異なる。これにより、第三者が、当該ファイルデータと署名情報Ｊ２６との双方を取得する可能性を効果的に低減でき、当該ファイルデータ及び署名情報Ｊ２６の双方を用いて、第三者により秘密鍵が解読される可能性を効果的に低減でき、印刷装置１０は、当該ファイルデータの正当性の判別を的確に行える。すなわち、上記構成によれば、サーバーから受信した新ファームウェアのファイルデータに基づいて、ファームウェアの書き換えを実行する印刷装置１０、及び、印刷装置１０を含むネットワークシステム１について、印刷装置１０と通信するサーバーの構成の特徴を利用して、新ファームウェアのファイルデータの正当性の判別を的確に行える。
【０１０５】
また、本実施形態では、印刷装置制御部２０は、新ファームウェアのファイルデータに正当性があると判別した場合、当該ファイルデータに基づいて、ファームウェアの書き換えを実行し、当該ファイルデータに正当性がないと判別した場合、当該ファイルデータに基づくファームウェアの書き換えを実行しない。
この構成によれば、印刷装置１０が記憶するファームウェアが、改ざんされた可能性のあるファームウェアに書き換えられることを防止できる。
【０１０６】
また、本実施形態では、印刷装置制御部２０は、印刷装置ネットワーク通信部２３で管理サーバー２ｂから受信した署名情報Ｊ２６を印刷装置記憶部２１が記憶する公開鍵で復号して生成したハッシュ値と、印刷装置ネットワーク通信部２３でファイル提供サーバー２ｃから受信した新ファームウェアのファイルデータのハッシュ値とが同一の値である場合に、当該ファイルデータに正当性があると判別する。
この構成によれば、印刷装置１０は、的確に新ファームウェアのファイルデータの正当性を判別できる。
【０１０７】
また、本実施形態では、印刷装置制御部２０は、新ファームウェアのファイルデータに正当性がないと判別した場合、印刷部２２を制御して、ロール紙（印刷媒体）に、当該ファイルデータが改ざんされた可能性がある旨の情報を印刷する。
この構成によれば、ユーザーは、ロール紙に印刷された情報を視認することにより、新ファームウェアのファイルデータが改ざんされた可能性があることを的確に認識できる。
【０１０８】
また、本実施形態では、印刷装置制御部２０は、印刷装置記憶部２１が記憶する公開鍵について、ファームウェアの書き換えに伴う改変を許可する一方、他の方法による改変を禁止する。
この構成によれば、不正に公開鍵が改変されることを防止できる。
【０１０９】
なお、上述した実施の形態は、あくまでも本発明の一態様を示すものであり、本発明の範囲内で任意に変形および応用が可能である。
例えば、上述した実施形態では、印刷装置１０が、店舗に適用される場合を例示して発明を説明したが、店舗システム３が適用される施設は、店舗に限らない。
また、図を用いて説明した各機能ブロックはハードウェアとソフトウェアにより任意に実現可能であり、特定のハードウェア構成を示唆するものではない。
【符号の説明】
【０１１０】
１…ネットワークシステム、１０…印刷装置、１１…ホストコンピューター、１２…通信装置、１３…代理サーバー、２０…印刷装置制御部、２１…印刷装置記憶部、２１ａ…第１ファームウェア、２１ｂ…第２ファームウェア、２２…印刷部、２３…印刷装置ネットワーク通信部（印刷装置通信部）、２４…印刷装置デバイス通信部、２０１ａ…第１プロセッサー、２０１ｂ…第２プロセッサー。
【図１】
2018055465.tif 000003
【図２】
2018055465.tif 000004
【図３】
2018055465.tif 000005
【図４】
2018055465.tif 000006
【図５】
2018055465.tif 000007
【図６】
2018055465.tif 000008
【図７】
2018055465.tif 000009
【図８】
2018055465.tif 000010