(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024157751
(43)【公開日】2024-11-08
(54)【発明の名称】中継プログラム、中継装置、及び、中継方法
(51)【国際特許分類】
G06F 21/57 20130101AFI20241031BHJP
G06F 8/65 20180101ALI20241031BHJP
【FI】
G06F21/57 320
G06F8/65
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2023072295
(22)【出願日】2023-04-26
(71)【出願人】
【識別番号】000005267
【氏名又は名称】ブラザー工業株式会社
(74)【代理人】
【識別番号】110000578
【氏名又は名称】名古屋国際弁理士法人
(72)【発明者】
【氏名】水野 晃子
【テーマコード(参考)】
5B376
【Fターム(参考)】
5B376AB01
5B376AB19
5B376AB43
5B376CA05
5B376CA32
5B376CA43
5B376CA61
5B376CA76
5B376GA01
(57)【要約】
【課題】デバイスに提供されるデータを確認するための処理負荷を軽減する。
【解決手段】中継プログラム31Bは、受信処理と、照合処理と、判定処理と、送信処理とを実行するよう構成されている。受信処理は、外部デバイス4への提供データに対応して固有に設けられた固有情報を、サーバ2から受信する。照合処理では、固有情報に対応する照合情報が記憶部に保存されている場合には当該照合処理に成功したとされ、そうでない場合には当該照合処理に失敗したとされる。判定処理は、照合処理に失敗した場合に、固有情報に対応する提供データが正常か否かを判定し、照合処理に成功した場合には、該判定を行わない。
【選択図】
図6
【特許請求の範囲】
【請求項1】
サーバ及び外部デバイスと通信を行うよう構成された通信部と、
制御部と、
を備える中継装置の前記制御部が実行可能な中継プログラムであって、
前記制御部に、
前記通信部により、前記外部デバイスへの提供データに対応して固有に設けられた固有情報を、前記サーバから受信する受信処理と、
前記固有情報に基づく照合処理と、
前記提供データが正常か否かを判定する判定処理と、
前記照合処理に基づいて、前記通信部により、前記提供データに関する指示を前記外部デバイスに送信する送信処理と、
を実行させるよう構成されており、
前記照合処理では、前記固有情報に対応する照合情報が記憶部に保存されている場合には当該照合処理に成功したとされ、該照合情報が前記記憶部に保存されていない場合には当該照合処理に失敗したとされ、
前記判定処理は、前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記提供データが正常か否かを判定し、該照合処理に成功した場合には、該提供データの判定を行わない、
中継プログラム。
【請求項2】
請求項1に記載された中継プログラムにおいて、
前記制御部に、前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記照合情報を前記記憶部に保存する照合情報保存処理を、
さらに実行させるよう構成されている中継プログラム。
【請求項3】
請求項2に記載された中継プログラムにおいて、
前記固有情報は、当該固有情報に対応する前記提供データから生成されたハッシュ値であり、
前記固有情報に対応する前記照合情報とは、前記固有情報に含まれる前記ハッシュ値と同一の前記ハッシュ値である
中継プログラム。
【請求項4】
請求項1から請求項3のうちのいずれか1項に記載された中継プログラムにおいて、
前記記憶部は、前記中継装置に設けられている
中継プログラム。
【請求項5】
請求項1から請求項3のうちのいずれか1項に記載された中継プログラムにおいて、
前記記憶部は、前記通信部を介して前記中継装置と通信可能な外部装置に設けられている
中継プログラム。
【請求項6】
請求項2又は請求項3に記載された中継プログラムにおいて、
前記制御部に、前記判定処理にて前記提供データが正常と判定されると、該提供データに関する付加情報を前記記憶部に保存する付加情報保存処理を、さらに実行させるよう構成されており、
前記照合処理では、前記固有情報に対応する前記照合情報が前記記憶部に保存されている場合において、該固有情報に対応する前記提供データに関する前記付加情報が前記記憶部に保存されているか否かを判定する付加判定を行い、前記付加判定にて肯定判定が得られた場合には、当該照合処理に成功したとされる
中継プログラム。
【請求項7】
請求項6に記載された中継プログラムにおいて、
前記照合処理では、前記付加判定で否定判定が得られた場合には、予め定められた待機時間の経過後に再び前記付加判定を行い、該付加判定で肯定判定が得られた場合には、当該照合処理に成功したとされる
中継プログラム。
【請求項8】
請求項1から請求項3のうちのいずれか1項に記載された中継プログラムにおいて、
前記送信処理は、前記照合処理に失敗した場合には、前記判定処理により前記提供データが正常と判定されると、前記外部デバイスに対し、該外部デバイスのプログラムを該提供データにより更新する指示を送信すると共に、前記照合処理に成功した場合には、前記外部デバイスに対し、該外部デバイスのプログラムを、前記提供データにより更新する指示を送信するよう構成されている
中継プログラム。
【請求項9】
請求項8に記載された中継プログラムにおいて、
前記制御部に、
プログラムの更新が進行中である前記外部デバイスである更新中デバイスを特定する特定処理と、
前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記照合情報を前記記憶部に保存する照合情報保存処理と、
前記記憶部に保存されている前記照合情報のうち、前記記憶部に保存されてから予め定められた保存時間が経過した前記照合情報であって、前記更新中デバイスでの更新に用いられている前記提供データとは異なる前記提供データに対応する前記照合情報を削除する削除処理と、
をさらに実行させるよう構成されている中継プログラム。
【請求項10】
サーバ及び外部デバイスと通信を行うよう構成された通信部と、
制御部と、
を備える中継装置であって、
前記制御部は、
前記通信部により、前記外部デバイスへの提供データに対応して固有に設けられた固有情報を、前記サーバから受信する受信処理と、
前記固有情報に基づく照合処理と、
前記提供データが正常か否かを判定する判定処理と、
前記照合処理に基づいて、前記通信部により、前記提供データに関する指示を前記外部デバイスに送信する送信処理と、
を実行するよう構成されており、
前記照合処理では、前記固有情報に対応する照合情報が記憶部に保存されている場合には当該照合処理に成功したとされ、該照合情報が前記記憶部に保存されていない場合には当該照合処理に失敗したとされ、
前記判定処理は、前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記提供データが正常か否かを判定し、該照合処理に成功した場合には、該提供データの判定を行わない、
中継装置。
【請求項11】
サーバ及び外部デバイスと通信を行うよう構成された中継装置が実行可能な中継方法であって、
前記外部デバイスへの提供データに対応して固有に設けられた固有情報を、前記サーバから受信することと、
前記固有情報に基づく照合処理を行うことと、
前記提供データが正常か否かを判定する判定処理を行うこと、
前記照合処理に基づいて、前記提供データに関する指示を前記外部デバイスに送信することと、
を備え、
前記照合処理では、前記固有情報に対応する照合情報が記憶部に保存されている場合には当該照合処理に成功したとされ、該照合情報が前記記憶部に保存されていない場合には当該照合処理に失敗したとされ、
前記判定処理は、前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記提供データが正常か否かを判定し、該照合処理に成功した場合には、該提供データの判定を行わない、
中継方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、サーバと外部デバイスとの間の通信を中継するための中継プログラム等に関する。
【背景技術】
【0002】
ハッシュ値を用いて、サーバから提供されるデータの異常を検出する技術が知られている。特許文献1に開示された技術では、サーバからモバイル端末に対し、暗号化されたコンテンツリストと、暗号化前のコンテンツリストから生成されたハッシュ値とを含むデータを配信する。そして、モバイル端末は、コンテンツリストを復号すると共に、復号されたコンテンツリストからハッシュ値を算出し、算出したハッシュ値と、配信データに含まれるハッシュ値とを比較することで、コンテンツリストが改ざんされたかどうかを検出する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
一方、画像形成装置等の外部デバイスを一元管理するデバイス管理システムにおいて、サーバから複数の外部デバイスに対し同一のデータのダウンロードなどを指示する場合が想定される。このような場合に、各外部デバイスにダウンロードするデータを逐一確認するとなると、処理負荷が増大する恐れがある。
【0005】
本開示は、デバイスに提供されるデータを確認するための処理負荷を軽減することを目的とする。
【課題を解決するための手段】
【0006】
本開示の一態様は、サーバ及び外部デバイスと通信を行うよう構成された通信部と、制御部と、を備える中継装置の制御部が実行可能な中継プログラムであって、制御部に、受信処理と、照合処理と、判定処理と、送信処理と、を実行させるよう構成されている。受信処理は、通信部により、外部デバイスへの提供データに対応して固有に設けられた固有情報を、サーバから受信する。照合処理は、固有情報に基づく処理である。判定処理は、提供データが正常か否かを判定する。送信処理は、照合処理に基づいて、通信部により、提供データに関する指示を外部デバイスに送信する。照合処理では、固有情報に対応する照合情報が記憶部に保存されている場合には当該照合処理に成功したとされ、該照合情報が記憶部に保存されていない場合には当該照合処理に失敗したとされる。判定処理は、照合処理に失敗した場合に、該照合処理の対象となった固有情報に対応する提供データが正常か否かを判定し、該照合処理に成功した場合には、該提供データの判定を行わない。
【0007】
上記構成によれば、外部デバイスへの提供データの固有情報に基づく照合処理に成功した場合には、該提供データの判定処理が行われるのを回避できる。このため、デバイスに提供されるデータを確認するための処理負荷を軽減できる。
【0008】
また、本開示の別の態様は、上記中継プログラムにより動作するコンピュータに相当する中継装置や、上記中継プログラムにより実現される制御方法である。このような態様によれば、デバイスに提供されるデータを確認するための処理負荷を軽減できる。
【図面の簡単な説明】
【0009】
【
図1】管理システムの構成を示すブロック図である。
【
図2】外部デバイスの構成を示すブロック図である。
【発明を実施するための形態】
【0010】
以下、本開示の実施形態について図面を用いて説明する。なお、本開示の実施の形態は、下記の実施形態に何ら限定されることはなく、本開示の技術的範囲に属する限り種々の形態を採りうる。
【0011】
[1.概要]
本実施形態の管理システム1は、管理サーバ2と、中継装置3と、複数の外部デバイス4と、複数の端末5とを有する(
図1参照)。
【0012】
管理サーバ2及び中継装置3は、グローバルネットワークGに接続され、グローバルネットワークGを介して互いに通信可能である。管理サーバ2と中継装置3とは、例えばHTTPS(Hypertext Transfer Protocol Secure)等により互いに通信可能となっている。また、グローバルネットワークGは、どのようなネットワークでもよく、一例としてインターネットであっても良い。
【0013】
管理システム1は、一例として、モバイル管理システム(換言すれば、MDMシステム(Mobile Device Management System))としての機能を有していてもよい。無論、これに限らず、管理システム1は、モバイル管理システムを含む様々なシステムとして構成され得る。管理サーバ2は、グローバルネットワークGを介して管理対象である外部デバイス4と通信を行うことで、外部デバイス4を管理可能である。なお、一例として、管理サーバ2は、MDMシステムのサービスの提供者が保有しており、中継装置3は、MDMシステムを利用して各外部デバイス4を管理する管理者が保有している。
【0014】
[2.外部デバイス]
外部デバイス4は、画像形成装置としての機能を有しており、画像データに基づき画像を印刷するプリンタ機能と、シートの画像を読み取り、画像データを生成するスキャン機能とのうちの少なくとも一方を有する(
図2参照)。外部デバイス4は、持ち運び可能な小型の装置として構成されていても良いし、据え置き型の装置として構成されていても良い。
【0015】
外部デバイス4は、一例として、グローバルネットワークGに接続されており、グローバルネットワークGを介して中継装置3と通信可能となっている。また、一例として、外部デバイス4は、中継装置3と共にローカルネットワークLに接続されており、ローカルネットワークLを介して中継装置3と通信可能となっていても良い。ローカルネットワークLとは、いわゆるイントラネットであっても良く、有線のネットワークであっても良いし、無線LAN等の無線のネットワークであっても良いし、有線と無線とが混在したネットワークであってもよい。この他にも、外部デバイス4は、例えば、USB(Universal Serial Bus)やBluetooth(登録商標)等といった有線又は無線の通信ラインを介して、中継装置3と通信可能となっていても良い。
【0016】
なお、外部デバイス4は、例えばHTTPS等により、中継装置3と通信可能となっている。また、詳細は後述するが、外部デバイス4は、中継装置3を介して管理サーバ2と通信を行うよう構成されており、一例として、外部デバイス4は、中継装置3を介すること無く管理サーバ2と通信を行うことが不可能な構成となっていても良い。
【0017】
外部デバイス4は、制御部40と、記憶部41と、ユーザI/F42と、通信部43とを備える(
図2参照)。また、外部デバイス4は、一例として、印刷部44及び読取部45を備える。
【0018】
制御部40は、CPUを有する。
記憶部41は、例えばROM、RAM、NVRAM(Non Volatile RAM)、フラッシュメモリ、SSD(Solid State Drive)などの半導体メモリを有する。つまり、外部デバイス4は、CPU及び半導体メモリを含むコンピュータを備えている。
【0019】
記憶部41には、外部デバイス4を統括制御するための制御プログラム41A(換言すれば、ファームウェア)が保存されており、制御部40が制御プログラム41Aに従って動作することで、外部デバイス4の各種機能を実現する。なお、制御部40により実現される各種機能は、制御プログラム41Aの実行によって実現することに限るものではなく、その一部又は全部について、一つあるいは複数のハードウェアを用いて実現してもよい。
【0020】
ユーザI/F42は、例えばボタンやタッチパネル等、各種入力を受け付けるための入力装置を備える。ユーザI/F42は、さらに、例えば液晶パネルやLED表示装置等の表示装置を備える。
【0021】
通信部43は、例えば、グローバルネットワークGや、ローカルネットワークLや、USBやBluetooth等の通信ラインを介して、中継装置3等の装置と通信を行うための部位である。
【0022】
また、印刷部44は、上述したプリンタ機能を実現するための部位であり、読取部45は、上述したスキャン機能を実現するための部位である。無論、外部デバイス4は、印刷部44及び読取部45の一方を備えていても良い。
【0023】
[3.中継装置]
中継装置3は、管理サーバ2と外部デバイス4との間の通信を中継するよう構成されている。つまり、外部デバイス4は、中継装置3を介して管理サーバ2と通信を行う。中継装置3は、制御部30と、記憶部31と、ユーザI/F32と、通信部33とを備える(
図3参照)。
【0024】
制御部30は、CPUを有する。
記憶部31は、例えばROM、RAM、NVRAM、フラッシュメモリ、SSDなどの半導体メモリを有する。さらに、記憶部31は、例えばHDD(Hard Disk Drive)等を有していても。つまり、中継装置3は、CPU及び半導体メモリを含むコンピュータを備えている。
【0025】
中継装置3は、OS31Aや中継プログラム31B(詳細は後述する)を含む各種プログラムがインストールされている。記憶部31には、A non-transitory computer-readable storage mediumとしての構成を有しており、OS31Aや中継プログラム31B等のプログラムが保存される。制御部30が、A non-transitory computer-readable storage mediumである記憶部31に保存されているOS31Aや中継プログラム31B等のプログラムを実行することで、中継装置3の各種機能が実現される。なお、制御部30により実現される各種機能は、プログラムの実行によって実現することに限るものではなく、その一部又は全部について、一つあるいは複数のハードウェアを用いて実現してもよい。
【0026】
中継プログラム31Bは、例えば、中継装置3に予めインストールされていても良い。また、中継プログラム31Bは、例えば、DVD-ROMやUSBメモリ等の記憶媒体に記憶された状態で提供され、中継装置3にて該記憶媒体から中継プログラム31Bを読み取ることで、中継装置3にインストールされてもよい。また、中継プログラム31Bは、例えば、グローバルネットワークGやローカルネットワークLを介してダウンロードすることで、中継装置3にインストールされてもよい。
【0027】
この他にも、記憶部31には、後述するファイルDB31CとデバイスDB31Dとが保存される。また、記憶部31には、後述するアクションを登録するためのデータベースであるアクションDBが保存される。
【0028】
ユーザI/F32は、例えばキーボードやマウスなど、管理者による各種入力を受け付けるための入力装置を備える。ユーザI/F32は、さらに、例えば液晶パネルやLED表示装置等の表示装置を備える。
【0029】
通信部33は、例えばグローバルネットワークGを介して、管理サーバ2等の装置と通信を行う。また、通信部33は、例えば、グローバルネットワークGや、ローカルネットワークLや、USBやBluetooth等の通信ラインを介して、外部デバイス4等の装置と通信を行う。
【0030】
さらに、中継装置3は、一例としてローカルネットワークLを介して外部装置6と通信可能となっている(
図1参照)。無論、これに限らず、中継装置3は、グローバルネットワークGを介して外部装置6と通信可能となっていてもよい。外部装置6は、コンピュータを備えており、各種情報を保存するための記憶部60を備える。
【0031】
[4.管理システムの機能]
外部デバイス4の管理者は、例えば、端末5等の装置に搭載されたWebブラウザを用いて管理サーバ2における管理用サイトにアクセスすることにより、外部デバイス4を管理する。なお、端末5とは、例えば、モバイル端末であってもよいし、可搬性の低いPC等の装置でもよい。管理サーバ2は、管理用サイトを介して管理者から受け付けた指示に従い、中継装置3を介して外部デバイス4と通信を行うことで、外部デバイス4を管理する。なお、中継装置3における外部デバイス4を管理するための機能は、制御部30が中継プログラム31Bを実行することで実現される。
【0032】
一例として、管理システム1は、アクション指示機能と、定期監視機能と、セルフチェック監視機能とを有する。
アクション指示機能とは、外部デバイス4にアクションを実行させる機能である。アクションとは、例えば、各種設定値の更新、制御プログラム41Aの更新、証明書のインストール、ファイルのダウンロード、ステータス情報の送信等であっても良い。
【0033】
中継装置3は、外部デバイス4に実行させるアクションを記憶部31に設けられたアクションDBに登録する。また、外部デバイス4は、当該外部デバイス4にて実行すべきアクションの有無を判定するため、中継装置3に対しポーリングを行う。一例として、外部デバイス4は、周期的なタイミング(例えば、5秒間隔)で、外部デバイス4に対しポーリングコマンドを送信する。中継装置3は、外部デバイス4からポーリングコマンドを受信すると、該外部デバイス4が実行すべきアクションがアクションDBに登録されているか否かを判定する。そして、該アクションが登録されていれば、中継装置3は、該外部デバイス4に対し、実行すべきアクションを示すコマンドを送信する。
【0034】
定期監視機能とは、中継装置3が、外部デバイス4から、該外部デバイス4のステータスを示すステータス情報を定期的に取得する機能である。なお、ステータスとは、例えば、画像形成機能に関する各種設定値や、バッテリ56の残量や、着色剤の残量や、用紙の残量や、外部デバイス4が存在する場所や、外部デバイスのユーザ名等であっても良い。
【0035】
この他にも、ステータス情報は、外部デバイス4の制御プログラム41Aのバージョンを示すステータスと、外部デバイス4の起動後における最初のステータス情報の通知であることを示すステータス(以後、スタートアップフラグ)を含む。外部デバイス4は、電源投入による起動や、制御プログラム41Aの更新に伴う再起動に起因して、ステータス情報を送信する。そして、該ステータス情報のスタートアップフラグは、ON状態となる。一方、外部デバイス4の起動後又は再起動後、2回目以降に送信されるステータス情報のスタートアップフラグは、OFF状態となる。
【0036】
中継装置3の記憶部31には、各外部デバイス4のステータス情報を蓄積した管理DBが設けられている。中継装置3の制御部30は、ステータス情報を受信すると、該ステータス情報に基づいて管理DBを更新する。
【0037】
セルフチェック監視機能とは、外部デバイス4にてステータスが変化すると、変化後のステータスを示すステータス情報を該外部デバイス4から中継装置3に送信する機能である。中継装置3の制御部30は、該ステータス情報を受信すると、該ステータス情報に基づいて管理DBを更新する。
【0038】
このため、例えば、管理者は、管理用サイトを介して中継装置3の管理DBにアクセスし、外部デバイス4のステータスを確認できる。また、例えば、管理者は、管理用サイトを介して、外部デバイス4に対するアクションを要求できる。
【0039】
この他にも、管理者は、管理サーバ2を介することなく、中継装置3に直接アクセスすることによって、管理サーバ2を用いた場合と同様にして外部デバイス4を管理することもできる。例えば、管理者は、中継装置3のユーザI/F34を操作することによって、又は、Webブラウザを用いて中継装置3における管理用サイトにアクセスすることによって、外部デバイス4を管理することができる。
【0040】
[5.外部デバイスのプログラムの更新]
管理サーバ2は、管理用サイトを介して外部デバイス4の管理者から受け付けた指示に従い、中継装置3を介して、複数の外部デバイス4の各々に対し、制御プログラム41Aの更新を指示する。複数の外部デバイス4とは、例えば、同一又は同種の装置であり、制御プログラム41Aの更新とは、これらの外部デバイス4における現在の制御プログラム41Aの全部又は一部を、同一の新たなプログラム(以後、更新プログラム)に置き換えることを意味する。
【0041】
具体的には、管理サーバ2は、グローバルネットワークGを介して、中継装置3に対し、各外部デバイス4での制御プログラム41Aの更新を指示する複数のコマンド(以後、更新指示)を順次送信する。そして、中継装置3は、更新指示を受信すると、該更新指示に対応する外部デバイス4と通信を行い、該外部デバイス4に対し制御プログラム41Aの更新を指示する更新指示を送信する。更新指示を受信した外部デバイス4は、グローバルネットワークG又はローカルネットワークLを介して更新プログラムを取得し、制御プログラム41Aの更新を行う。
【0042】
そして、管理サーバ2により複数の外部デバイス4の制御プログラム41Aを更新する際には、中継装置3の記憶部31に保存されているファイルDB31CとデバイスDB31Dとが用いられる。なお、これに限らず、ファイルDB31CとデバイスDB31Dは、記憶部31に限らず、中継装置3がアクセス可能な外部装置6の記憶部60に保存されていてもよい。
【0043】
[6.ファイルDB]
ファイルDB31Cは、更新プログラムに関する情報を保存するためのデータベースであり、
図4に示すように、「ファイルID」、「データタイプ」、「ハッシュ値」、「コンテンツ」、「作成日」、「更新日」という項目を有する。また、ファイルDB31Cのレコード、換言すれば、
図4の表における各行は、更新指示により置き換えられる更新プログラムに対応している。
【0044】
「ファイルID」に対応する欄は、各レコードに対応する更新プログラムの識別情報であるファイルIDを示す。
「データタイプ」に対応する欄は、各レコードに対応する更新プログラムにより置き換えられる制御プログラム41Aのタイプを示す。本実施形態においては、一例として、該欄は、制御プログラム41Aがファームウェアであることを示す。しかしながら、後述するように、本開示はファームウェア以外のプログラムやデータの更新に用いることができ、このような場合には、更新対象に応じた情報が該欄に設定される。
【0045】
「ハッシュ値」に対応する欄は、各レコードに対応する更新プログラムに対応して固有に設けられた固有情報を示す。本実施形態では、一例として、更新プログラムに基づき生成されたハッシュ値が固有情報として用いられる。該欄が示す固有情報は、後述する照合処理における照合情報として用いられる。
【0046】
「コンテンツ」に対応する欄は、各レコードに対応する更新プログラムのファイル名やバージョン等を示す。
「作成日」は、各レコードに対応する更新プログラムにより更新される制御プログラム41Aが最初にリリースされた時期を示す。
【0047】
「更新日」は、各レコードに対応する更新プログラムがリリースされた時期を示す。
以後、ファイルDB31Cにおける各レコードを、ファイル情報とも記載する。また、ファイル情報における「データタイプ」、「コンテンツ」、「作成日」、及び「更新日」の各項目に対応する情報、換言すれば、「ファイルID」及び「ハッシュ値」以外の項目に対応する情報を、付加情報とも記載する。
【0048】
さらに、ファイルDB31Cには、各ファイル情報に対応して、該ファイル情報が生成された時期を示すタイムスタンプ(図示無し)が設けられている。
[7.デバイスDB]
デバイスDB31Dは、管理サーバ2からの更新指示に応じて制御プログラム41Aを更新するための処理が行われている外部デバイス4(以後、更新中デバイスとも記載)に関する情報を保存する。
図5に示すように、デバイスDB31Dは、「ID」、「ファイルID」、「デバイスID」、「作成日」、「更新日」という項目を有する。また、デバイスDB31Dのレコード、換言すれば、
図5の表における各行は、更新中デバイスに対応している。
【0049】
「ID」に対応する欄は、レコードの識別情報を示す。
「ファイルID」に対応する欄は、各レコードに対応する更新中デバイスにインストールされる更新プログラムのファイルIDを示す。
【0050】
「デバイスID」に対応する欄は、各レコードに対応する更新中デバイスの識別情報(以後、デバイスIDとも記載)を示す。
「作成日」は、各レコードに対応する更新中デバイスにて更新される制御プログラム41Aが最初にリリースされた時期を示す。
【0051】
「更新日」は、各レコードに対応する更新中デバイスの更新に用いられる更新プログラムがリリースされた時期を示す。
以後、デバイスDB31Dにおける各レコードを、デバイス情報とも記載する。
【0052】
[8.更新中継処理]
中継装置3は、管理サーバ2から更新指示を受信すると、更新中継処理を実行し、更新プログラムが正常か否かを判定すると共に、更新指示により指定された外部デバイス4に対し、制御プログラム41Aの更新を指示する。以下では、
図6のフローチャートを用いて更新中継処理について説明する。なお、本処理は、中継装置3の制御部30が中継プログラム31Bに従って動作することで実現される。また、以下の説明では、中継プログラム31Bに従い動作する制御部30により実現される処理の主体を、単に中継プログラム31Bと記載する場合がある。
【0053】
S100では、中継プログラム31Bは、管理サーバ2から更新指示を受信する。更新指示は、制御プログラム41Aを更新する外部デバイス4(以後、対象デバイス)のデバイスIDと、更新プログラムを提供するサーバを特定するサーバ情報(例えば、URL等)とを含む。また、更新指示は、当該更新指示に対応する更新プログラムの固有情報(一例として、ハッシュ値)を含むことができる。なお、更新指示がハッシュ値を含むか否かは、例えば、管理者等による選択に従い定められる。
【0054】
続くS105では、中継プログラム31Bは、削除処理(詳細は後述する)を実行することで、ファイルDB31Cに含まれる不要なファイル情報を削除し、S110に移行する。
【0055】
S110では、中継プログラム31Bは、更新指示にハッシュ値が含まれているか否かを判定し、肯定判定が得られた場合には(S110:Yes)、S115に移行すると共に、否定判定が得られた場合には(S110:No)、S145に移行する。
【0056】
S115では、中継プログラム31Bは、照合処理として、ファイルDB31Cが、更新指示に含まれるハッシュ値と同一のハッシュ値(換言すれば、照合情報)を含むファイル情報(以後、対象ファイル情報)を有するか否かを判定する。そして、中継プログラム31Bは、肯定判定が得られた場合には(S115:Yes)、S125に移行すると共に、否定判定が得られた場合には(S115:No)、S120に移行する。
【0057】
S120では、中継プログラム31Bは、ファイルDB31Cに対し、更新指示による更新に用いられる更新プログラムに対応する新たなファイル情報を追加する。また、中継プログラム31Bは、該更新プログラムに対応するファイルIDを生成し、該新たなファイル情報に加える。なお、中継プログラム31Bは、例えば、更新指示に含まれるサーバ情報を、ファイルIDとして用いてもよい。また、中継プログラム31Bは、更新指示に含まれるハッシュ値を、照合情報として該新たなファイル情報に加える。そして、中継プログラム31Bは、S145に移行する。
【0058】
一方、S125では、中継プログラム31Bは、照合処理として、対象ファイル情報が付加情報を有するか否かを判定する(以後、付加判定)。そして、中継プログラム31Bは、肯定判定が得られた場合には(S125:Yes)、照合処理に成功したものとしてS155に移行すると共に、否定判定が得られた場合には(S125:No)、S130に移行する。
【0059】
S130では、中継プログラム31Bは、照合処理として、予め定められた待機時間(一例として、30秒)にわたって現在実行中の更新中継処理の進行を待機させ、その後、S135に移行する。つまり、中継プログラム31Bは、S125の実行後、待機時間が経過した後に、S135に移行する。
【0060】
S135では、中継プログラム31Bは、照合処理として、S125と同様の付加判定を行う。そして、中継プログラム31Bは、肯定判定が得られた場合には(S135:Yes)、照合処理に成功したものとしてS155に移行すると共に、否定判定が得られた場合には(S135:No)、S140に移行する。つまり、照合処理では、1回目の付加判定で否定判定が得られた場合には、もう1回付加判定が行われる。しかし、これに限らず、同様にして2回以上の付加判定が行われてもよい。
【0061】
S140では、中継プログラム31Bは、後述する判定処理により更新指示に用いられる更新プログラムが異常と判定されたとみなし、エラー処理を実行した後に本処理を終了する。
【0062】
一方、S145では、中継プログラム31Bは、更新指示に含まれるサーバ情報によりサーバにアクセスし、該サーバから更新プログラムをダウンロードする。そして、中継プログラム31Bは、ダウンロードした更新プログラムの判定処理を行い、該更新プログラムが正常か異常かを判定する。具体的には、例えば、判定処理では、更新プログラムが対象デバイスに適合していない場合には、異常と判定されてもよい。さらに、判定処理では、更新プログラムのバージョンが特定されてもよい。そして、中継プログラム31Bは、判定処理にて更新プログラムが正常と判定された場合には、S150以降の処理を実行する。一方、更新プログラムが正常と判定された場合には、中継プログラム31Bは、更新中継処理を終了してもよい。
【0063】
続くS150では、中継プログラム31Bは、ダウンロードした更新プログラムに基づき、該更新プログラムの付加情報、つまり、データタイプ、コンテンツ、作成日、及び更新日を特定する。そして、中継プログラム31Bは、特定した付加情報を、更新プログラムに対応するファイル情報の一部としてファイルDB31Cに保存する。
【0064】
具体的には、ファイルDB31Cがダウンロードした更新プログラムに対応するファイル情報を有する場合、中継プログラム31Bは、特定した付加情報を該ファイル情報に加える。一方、ファイルDB31Cが該ファイル情報を有しない場合には、中継プログラム31Bは、ファイルDB31Cに、更新プログラムに対応する新たなファイル情報を追加する。そして、中継プログラム31Bは、更新プログラムに対応するファイルIDを生成し、該新たなファイル情報に加えると共に、特定した付加情報を該新たなファイル情報に加える。
【0065】
続くS155では、中継プログラム31Bは、対象デバイスの制御プログラム41Aを更新する「更新指示」を、対象デバイスのアクションとしてアクションDBに登録し、S160に移行する。
【0066】
S160では、中継プログラム31Bは、IDと、更新プログラムに対応するファイル情報におけるファイルID、作成日、及び更新日と、を含む情報を、対象デバイスのデバイス情報として生成し、デバイスDB31Dに加える。
【0067】
一方、外部デバイス4の制御部40は、当該外部デバイス4にて実行すべきアクションの有無を確認するため、中継装置3に対しポーリングコマンドを送信する。そして、該外部デバイス4が対象デバイスであり、アクションDBに、対象デバイスに対するアクションとして「更新指示」が登録されている場合には、中継プログラム31Bは、対象デバイスに対し「更新指示」に対応するコマンドを送信する。この時、更新プログラムを提供するサーバのサーバ情報も、対象デバイスに送信される。これにより、「更新指示」というアクションが実行される(S165)。
【0068】
上記コマンドを受信した対象デバイスの制御部40は、中継プログラム31Bに対し、アクションDBから上記コマンドに対応するアクションの削除を指示するコマンドを送信する。該コマンドを受信した中継プログラム31Bは、該アクションをアクションDBから削除する。
【0069】
また、対象デバイスの制御部40は、サーバ情報により特定されたサーバから更新プログラムをダウンロードすると共に、ダウンロードした更新プログラムにより制御プログラム41Aを更新する。この時、制御部40は、中継装置3に対し、更新プログラムのダウンロードに成功したか否かや、プログラムの更新が開始されたか否かを送信する。
【0070】
そして、制御プログラム41Aの更新が完了すると、対象デバイスが再起動され、制御部40は、再起動に起因してステータス情報を中継プログラム31Bに送信する。そして、再起動後、最初に送信されるステータス情報のスタートアップフラグは、ON状態となっている。また、再起動後に送信されるステータス情報は、更新プログラムのバージョンを含んでいる。
【0071】
一方、中継プログラム31Bは、「更新指示」の送信後に対象デバイスから受信した各種情報により、対象デバイスにおける制御プログラム41Aの更新結果を把握する(S170)。そして、中継プログラム31Bは、管理DBを更新し、対象デバイスにおける制御プログラム41Aの更新結果を保存すると共に、管理サーバ2に対し該更新結果を送信する。
【0072】
具体的には、中継プログラム31Bは、対象デバイスが更新プログラムのダウンロードに失敗した場合には、対象デバイスが制御プログラム41Aの更新に失敗したとみなす。また、中継プログラム31Bは、対象デバイスから、スタートアップフラグがON状態であるステータス情報を受信すると、該ステータス情報に含まれる更新プログラムのバージョンを把握する。さらに、中継プログラム31Bは、ファイルDB31Cにアクセスし、更新プログラムに対応するファイル情報における「コンテンツ」が示す、更新プログラムのバージョンを取得する。また、中継プログラム31Bは、受信した更新プログラムのバージョンと、ファイルDB31Cから取得した更新プログラムのバージョンとを比較する。そして、中継プログラム31Bは、これらのバージョンが一致する場合には、プログラムの更新が成功したとみなし、一致しない場合には、プログラムの更新が失敗したとみなす。
【0073】
続くS175では、中継プログラム31Bは、デバイスDB31Dから対象デバイスに対応するデバイス情報を削除し、本処理を終了する。
[9.削除処理]
次に、更新中継処理のS105で実行される削除処理について、
図7のフローチャートを用いて説明する。
【0074】
S200では、中継プログラム31Bは、ファイルDB31Cのタイムスタンプに基づき、ファイルDB31Cに保存されている各ファイル情報のうち、生成時から予め定められた保存時間(例えば、1時間)が経過した古いファイル情報を特定する。
【0075】
続くS205では、中継プログラム31Bは、デバイスDB31Dに基づき、S200にて特定したファイル情報が、該ファイル情報に対応する更新プログラムを用いた外部デバイス4の制御プログラム41Aの更新が全て完了し、不要となったものであるか否かを判定する。
【0076】
具体的には、中継プログラム31Bは、S200で特定した各ファイル情報について、該ファイル情報のファイルIDを有するデバイス情報が、デバイスDB31Dに含まれているか否かを判定する。肯定判定が得られた場合、該ファイル情報に対応する更新プログラムを用いた更新が行われている更新中デバイスが存在すること考えられる。一方、否定判定が得られた場合、該更新中デバイスは存在せず、該更新プログラムを用いた外部デバイス4の制御プログラム41Aの更新は、全て完了したと考えられる。このため、中継プログラム31Bは、否定判定が得られたファイル情報は不要と判定する。
【0077】
S210では、中継プログラム31Bは、ファイルDB31Cから不要と判定されたファイル情報を削除し、本処理を終了する。
[10.効果]
(1)上記実施形態における更新中継処理では、更新プログラムの固有情報であるハッシュ値がファイルDB31Cに保存されている場合には、更新プログラムの判定処理が行われない。このため、外部デバイス4に提供されるデータを確認するための処理負荷を軽減できる。
【0078】
(2)また、更新プログラムのハッシュ値がファイルDB31Cに保存されていない場合には、該ハッシュ値が中継装置3のファイルDB31Cに保存され、その後、更新プログラムの判定処理が行われる。このため、既に判定処理が行われた更新プログラムに対し、再び判定処理が行われてしまうのを回避し得る。
【0079】
(3)また、照合処理では、更新プログラムのハッシュ値が固有情報や照合情報として用いられる。このため、照合処理を好適に行うことができる。
(4)また、ファイルDB31Cは、中継装置3の記憶部31や、中継プログラム31Bがアクセス可能な外部装置6の記憶部60に保存される。このため、照合処理を好適に行うことができる。
【0080】
(5)また、判定処理によりダウンロードした更新プログラムが正常と判定されると、更新プログラムの付加情報が、ファイル情報としてファイルDB31Cに保存される。そして、ファイルDB31Cにおける、更新プログラムのハッシュ値を含むファイル情報が付加情報を有する場合には、照合処理に成功したものとされる。このため、判定処理により正常と判定された更新プログラムに対し、再び判定処理が行われてしまうといった事態を回避し得る。
【0081】
(6)また、照合処理において、最初の付加判定で否定判定が得られた場合には、待機時間の経過後、再び付加判定が行われる。このため、仮に、更新プログラムの最初の更新指示を受信したことにより判定処理を実行している際に、同一の更新プログラムの更新指示を受信し、照合処理が開始されたとしても、該判定処理の終了を待って付加判定を行うことができる。このため、判定処理により正常と判定された更新プログラムに対し再び判定処理が行われるのを、より確実に回避し得る。
【0082】
(7)また、照合処理に失敗した場合には、判定処理により更新プログラムが正常と判定されると、中継装置3から外部デバイス4に対し、制御プログラム41Aの更新指示が送信される。また、照合処理に成功した場合には、判定処理を行うこと無く、中継装置3から外部デバイス4に対し、制御プログラム41Aの更新指示が送信される。このため、複数の外部デバイス4に対し制御プログラム41Aの更新指示を順次送信する際、更新プログラムの判定処理が逐一行われるのを回避し得る。
【0083】
(8)また、更新指示を受信すると、削除処理が行われる。これにより、ファイルDB31Cに保存されている古いファイル情報のうち、外部デバイス4の制御プログラム41Aの更新に用いられていない更新プログラムについてのファイル情報を、ファイルDB31Cから削除できる。このため、ファイルDB31Cから不要なデータを削除できる。
【0084】
[11.他の実施形態]
(1)上記実施形態において、外部デバイス4とは画像形成装置以外の装置であってもよい。また、上記実施形態では、外部デバイス4の制御プログラム41Aは一例としてファームウェアとなっている。しかし、外部デバイス4におけるファームウェア以外のプログラム(例えば、アプリケーションやOS等)や、プログラム以外のデータ(例えば、データベース等)についても、上記実施形態と同様にして、管理サーバ2からの更新指示により更新されてもよい。
【0085】
(2)また、上記実施形態では、更新プログラムのハッシュ値が固有情報として用いられるが、例えば、更新プログラムのシリアル番号が固有情報として用いられても良い。また、更新中継処理では、ファイルDB31Cに、更新指示に含まれる固有情報と同一の照合情報を含む対象ファイル情報がある場合に、照合処理に成功する。しかし、これに限らず、ファイルDB31Cに、更新指示に含まれる固有情報と同一ではないが、該固有情報と所定の対応関係を有する照合情報を含む対象ファイル情報がある場合に、照合処理に成功するようにしてもよい。
【0086】
(3)また、更新中継処理において、中継プログラム31Bは、更新指示に含まれるハッシュ値を用いた照合処理の結果や、更新指示の受信に起因して行われた判定処理の結果を、該更新指示に含まれるデバイスIDが示す外部デバイス4に送信してもよい。
【0087】
(4)また、照合処理における付加判定は、省略されてもよい。つまり、更新中継処理における照合処理において、中継プログラム31Bは、S125~S140を省略し、S115で肯定判定が得られた場合には、S155に移行し、否定判定が得られた場合には、S145に移行してもよい。このような場合であっても、外部デバイス4に提供されるデータを確認するための処理負荷を軽減できる。
【0088】
(5)また、外部デバイス4が中継装置3にポーリングを行うことで、中継装置3から外部デバイス4に対してアクションを示すコマンドが送信される。しかし、中継装置3から外部デバイス4への送信方法は、これに限らず、様々な方法で実現され得る。
【0089】
(6)上記実施形態における1つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、1つの構成要素が有する1つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、1つの構成要素によって実現したり、複数の構成要素によって実現される1つの機能を、1つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。
【0090】
(7)上述した中継装置3の他、中継プログラム31Bが記憶されている、例えば半導体メモリやハードディスクドライブ等のA non-transitory computer-readable storage mediumや、更新中継処理に対応する中継方法等、種々の形態で本開示を実現することもできる。
【0091】
[12.文言の対応関係]
更新中継処理のS100が受信処理に、S120が照合情報保存処理に、S145が判定処理に、S150が付加情報保存処理に、S155、S165が送信処理に、S160、S175が特定処理にそれぞれ相当する。また、制御プログラム41Aが提供データに相当する。
【0092】
[13.本明細書が開示する技術思想]
[項目1]
サーバ及び外部デバイスと通信を行うよう構成された通信部と、
制御部と、
を備える中継装置の前記制御部が実行可能な中継プログラムであって、
前記制御部に、
前記通信部により、前記外部デバイスへの提供データに対応して固有に設けられた固有情報を、前記サーバから受信する受信処理と、
前記固有情報に基づく照合処理と、
前記提供データが正常か否かを判定する判定処理と、
前記照合処理に基づいて、前記通信部により、前記提供データに関する指示を前記外部デバイスに送信する送信処理と、
を実行させるよう構成されており、
前記照合処理では、前記固有情報に対応する照合情報が記憶部に保存されている場合には当該照合処理に成功したとされ、該照合情報が前記記憶部に保存されていない場合には当該照合処理に失敗したとされ、
前記判定処理は、前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記提供データが正常か否かを判定し、該照合処理に成功した場合には、該提供データの判定を行わない、
中継プログラム。
【0093】
[項目2]
項目1に記載された中継プログラムにおいて、
前記制御部に、前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記照合情報を前記記憶部に保存する照合情報保存処理を、
さらに実行させるよう構成されている中継プログラム。
【0094】
[項目3]
項目2に記載された中継プログラムにおいて、
前記固有情報は、当該固有情報に対応する前記提供データから生成されたハッシュ値であり、
前記固有情報に対応する前記照合情報とは、前記固有情報に含まれる前記ハッシュ値と同一の前記ハッシュ値である
中継プログラム。
【0095】
[項目4]
項目1から項目3のうちのいずれか1項に記載された中継プログラムにおいて、
前記記憶部は、前記中継装置に設けられている
中継プログラム。
【0096】
[項目5]
項目1から項目3のうちのいずれか1項に記載された中継プログラムにおいて、
前記記憶部は、前記通信部を介して前記中継装置と通信可能な外部装置に設けられている
中継プログラム。
【0097】
[項目6]
項目2から項目5のうちのいずれか1項に記載された中継プログラムにおいて、
前記制御部に、前記判定処理にて前記提供データが正常と判定されると、該提供データに関する付加情報を前記記憶部に保存する付加情報保存処理を、さらに実行させるよう構成されており、
前記照合処理では、前記固有情報に対応する前記照合情報が前記記憶部に保存されている場合において、該固有情報に対応する前記提供データに関する前記付加情報が前記記憶部に保存されているか否かを判定する付加判定を行い、前記付加判定にて肯定判定が得られた場合には、当該照合処理に成功したとされる
中継プログラム。
【0098】
[項目7]
項目6に記載された中継プログラムにおいて、
前記照合処理では、前記付加判定で否定判定が得られた場合には、予め定められた待機時間の経過後に再び前記付加判定を行い、該付加判定で肯定判定が得られた場合には、当該照合処理に成功したとされる
中継プログラム。
【0099】
[項目8]
項目1から項目7のうちのいずれか1項に記載された中継プログラムにおいて、
前記送信処理は、前記照合処理に失敗した場合には、前記判定処理により前記提供データが正常と判定されると、前記外部デバイスに対し、該外部デバイスのプログラムを該提供データにより更新する指示を送信すると共に、前記照合処理に成功した場合には、前記外部デバイスに対し、該外部デバイスのプログラムを、前記提供データにより更新する指示を送信するよう構成されている
中継プログラム。
【0100】
[項目9]
項目8に記載された中継プログラムにおいて、
前記制御部に、
プログラムの更新が進行中である前記外部デバイスである更新中デバイスを特定する特定処理と、
前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記照合情報を前記記憶部に保存する照合情報保存処理と、
前記記憶部に保存されている前記照合情報のうち、前記記憶部に保存されてから予め定められた保存時間が経過した前記照合情報であって、前記更新中デバイスでの更新に用いられている前記提供データとは異なる前記提供データに対応する前記照合情報を削除する削除処理と、
をさらに実行させるよう構成されている中継プログラム。
【0101】
[項目10]
サーバ及び外部デバイスと通信を行うよう構成された通信部と、
制御部と、
を備える中継装置であって、
前記制御部は、
前記通信部により、前記外部デバイスへの提供データに対応して固有に設けられた固有情報を、前記サーバから受信する受信処理と、
前記固有情報に基づく照合処理と、
前記提供データが正常か否かを判定する判定処理と、
前記照合処理に基づいて、前記通信部により、前記提供データに関する指示を前記外部デバイスに送信する送信処理と、
を実行するよう構成されており、
前記照合処理では、前記固有情報に対応する照合情報が記憶部に保存されている場合には当該照合処理に成功したとされ、該照合情報が前記記憶部に保存されていない場合には当該照合処理に失敗したとされ、
前記判定処理は、前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記提供データが正常か否かを判定し、該照合処理に成功した場合には、該提供データの判定を行わない、
中継装置。
【0102】
[項目11]
サーバ及び外部デバイスと通信を行うよう構成された中継装置が実行可能な中継方法であって、
前記外部デバイスへの提供データに対応して固有に設けられた固有情報を、前記サーバから受信することと、
前記固有情報に基づく照合処理を行うことと、
前記提供データが正常か否かを判定する判定処理を行うこと、
前記照合処理に基づいて、前記提供データに関する指示を前記外部デバイスに送信することと、
を備え、
前記照合処理では、前記固有情報に対応する照合情報が記憶部に保存されている場合には当該照合処理に成功したとされ、該照合情報が前記記憶部に保存されていない場合には当該照合処理に失敗したとされ、
前記判定処理は、前記照合処理に失敗した場合に、該照合処理の対象となった前記固有情報に対応する前記提供データが正常か否かを判定し、該照合処理に成功した場合には、該提供データの判定を行わない、
中継方法。
【符号の説明】
【0103】
1…管理システム、2…管理サーバ、3…中継装置、30…制御部、31…記憶部、31B…中継プログラム、4…外部デバイス、40…制御部、41…記憶部、41A…制御プログラム、42…印刷部、43…読取部、5…端末、6…外部装置、60…記憶部、G…グローバルネットワーク、L…ローカルネットワーク。