JP5939180B2 - 情報処理装置、中継サーバ、情報中継方法、情報中継プログラム及び通信システム - Google Patents

情報処理装置、中継サーバ、情報中継方法、情報中継プログラム及び通信システム Download PDF

Info

Publication number
JP5939180B2
JP5939180B2 JP2013054087A JP2013054087A JP5939180B2 JP 5939180 B2 JP5939180 B2 JP 5939180B2 JP 2013054087 A JP2013054087 A JP 2013054087A JP 2013054087 A JP2013054087 A JP 2013054087A JP 5939180 B2 JP5939180 B2 JP 5939180B2
Authority
JP
Japan
Prior art keywords
firmware
information
specific
server
specific firmware
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013054087A
Other languages
English (en)
Other versions
JP2014179021A (ja
Inventor
大原 清孝
清孝 大原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Brother Industries Ltd
Original Assignee
Brother Industries Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Brother Industries Ltd filed Critical Brother Industries Ltd
Priority to JP2013054087A priority Critical patent/JP5939180B2/ja
Priority to US14/211,145 priority patent/US9146731B2/en
Priority to EP14160057.7A priority patent/EP2778912B1/en
Priority to CN201410098138.XA priority patent/CN104052735B/zh
Publication of JP2014179021A publication Critical patent/JP2014179021A/ja
Application granted granted Critical
Publication of JP5939180B2 publication Critical patent/JP5939180B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Description

本発明は、ファームウェアを有する情報処理装置、この情報処理装置と特定のサーバとの間の通信を中継する機能を有する中継サーバ、この中継サーバで用いられる情報中継方法と情報中継プログラム、及び通信システムに関する。
ネットワーク接続機能を備えた各種情報処理装置におけるファームウェアの更新方法が種々提案されている。
特許文献1には、情報処理装置からインターネットに接続して更新情報をサーチし、そのサーチにより得られたURL(Uniform Resource Locator)のウェブサイトにアクセスして、更新対象のソフトウェアをダウンロードする技術が記載されている。
特開平11−272454号公報
情報処理装置から主体的に更新情報をサーチしてファームウェア等のソフトウェアを更新する方法は、情報処理装置における処理負荷やユーザの負担の増大を招くおそれがあるし、必ずしも適切なタイミングで更新できるとは限らない。
また、近年、クラウド(インターネット上の各種リソース)を利用した顧客(情報処理装置)向けの特定サービスが各種展開されつつある。特定サービスの具体例として、特定業者が、顧客に対してその顧客が保有する複数の情報処理装置をクラウド側から一括して管理することが考えられる。
そのような特定サービスを実現するためには、顧客の情報処理装置のファームウェアについてその一部又は全てをその特定サービスに特化した特定ファームウェアに変更する必要性が生じることも予想される。このような特定サービスを提供するにあたっては、特に、特定サービス提供対象の情報処理装置のファームウェアを適切且つ効率的に所望の特定ファームウェアに更新できるようにすることが望まれる。
本発明は上記課題に鑑みなされたものであり、ネットワーク接続可能な情報処理装置のファームウェアを適切且つ効率的に所望のファームウェアに更新できるようにすることを目的とする。
上記課題を解決するためになされた本発明の情報処理装置は、ネットワークに接続可能な通信部と、制御部とを備え、ネットワークに接続された特定ファーム情報送信装置及びファームウェア提供サーバと通信部を介して通信可能に構成されたものである。制御部は、コネクション確立処理と、特定ファーム情報取得処理と、特定ファームウェア取得処理と、特定ファームウェア更新処理とを実行する。
コネクション確立処理は、特定ファーム情報送信装置からサーバプッシュを可能とするセッションを張るための通信プロトコルに従ったセッションを特定ファーム情報送信装置との間で確立させ、その確立したセッションにおいて特定ファーム情報送信装置とのコネクションを確立させる処理である。特定ファーム情報取得処理は、特定ファーム情報送信装置から当該情報処理装置宛に送信された、当該情報処理装置が有するファームウェアを所定の特定ファームウェアに更新させるための、その特定ファームウェアの所在を示す特定ファーム所在情報を少なくとも含む特定ファーム情報を、前記コネクションを介して取得する処理である。特定ファームウェア取得処理は、特定ファーム情報取得処理により取得した特定ファーム情報に含まれている特定ファーム所在情報に基づき、その特定ファーム所在情報が示すファームウェア提供サーバから特定ファームウェアを取得する処理である。特定ファームウェア更新処理は、当該情報処理装置が有する、特定ファームウェア取得処理により取得した特定ファームウェアに対応するファームウェアを、その取得した特定ファームウェアに更新する処理である。
このように構成された本発明の情報処理装置では、特定ファーム情報送信装置との間で、特定ファーム情報送信装置からサーバプッシュを可能とするセッションを張るための通信プロトコルによるコネクションが確立される。そして、特定ファーム情報送信装置から上記コネクションを介して自身宛に送信されてきた特定ファーム情報を取得すると、その特定ファーム情報に含まれている特定ファーム所在情報に基づいて特定ファームウェアを取得し、対応するファームウェアをその取得した特定ファームウェアに更新する。
したがって、本発明の情報処理装置によれば、自身に送信されてくる特定ファーム情報をもとに自身のファームウェアを適切且つ効率的に所望のファームウェア(特定ファームウェア)に更新することができる。
上記課題を解決するためになされた本発明の中継サーバは、ネットワークに接続可能な通信部と、制御部とを備え、ネットワークに接続された特定サーバ及び少なくとも1つの情報処理装置と通信部を介して通信可能に構成されたものである。制御部は、第1確立処理と、第2確立処理と、特定ファーム更新指令取得処理と、第1の特定ファーム情報送信処理とを実行する。
第1確立処理は、情報処理装置からの要求に応じて、中継サーバからサーバプッシュを可能とするセッションを張るための第1の通信プロトコルに従ったセッションの確立に応じて、情報処理装置との間で第1のコネクションを確立させる処理である。第2確立処理は、特定サーバとの間で第1の通信プロトコルとは異なる第2の通信プロトコルに従った第2のコネクションを確立させる処理である。特定ファーム更新指令取得処理は、特定サーバから、上記少なくとも1つの情報処理装置のうち所定の更新対象装置が有するファームウェアを所定の特定ファームウェアに更新させるための、その更新対象装置を示す装置情報及び特定ファームウェアの所在を示す特定ファーム所在情報を少なくとも含む特定ファーム更新指令を、第2のコネクションを介して取得する処理である。第1の特定ファーム情報送信処理は、特定ファーム更新指令取得処理により取得した特定ファーム更新指令に基づき、特定ファーム所在情報を少なくとも含む特定ファーム情報を、第1のコネクションを介して更新対象装置へ送信する処理である。
このように構成された本発明の中継サーバでは、情報処理装置との間で第1のコネクションが確立され、特定サーバとの間で第2のコネクションが確立される。そして、特定サーバから第2のコネクションを介して特定ファーム更新指令を取得すると、その特定ファーム更新指令に基づく特定ファーム情報を更新対象の情報処理装置へ第1のコネクションを介して送信する。
したがって、本発明の中継サーバによれば、特定サーバからの特定ファーム更新指令を元に、情報処理装置のファームウェアを適切且つ効率的に所望のファームウェア(特定ファームウェア)に更新させることができる。
また、本発明の中継サーバにおいて制御部が実行する各処理は、それぞれ、コンピュータにそれら各処理を実行させるための情報中継プログラムとして実現することができる。
また、本発明の中継サーバ及び情報処理装置の双方を用いて通信システムを構築することで、情報処理装置のファームウェアを適切且つ効率的に所望のファームウェア(特定ファームウェア)に更新させることが可能な通信システムを提供することができる。
実施形態の特定サービス提供システムの概略構成を表す構成図である。 MFPに記憶されるファーム状態テーブル(NVRAMに記憶)及び組込ファーム情報(ROMに記憶)を表す説明図である。 中間サーバに記憶されるファーム設定テーブル及びデバイス管理テーブルを表す説明図である。 実施形態の特定サービス提供システムの動作例を表すシーケンス図である。 サービスサーバが実行するサービス処理を表すフローチャートである。 中間サーバが実行する中間サーバ処理を表すフローチャートである。 中間サーバが実行する周期タイマ処理を表すフローチャートである。 MFPが実行するMFP処理を表すフローチャートである。
以下に、本発明の好適な実施形態を図面に基づいて説明する。なお、本発明は、下記の実施形態に示された具体的手段や構造等に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の形態を採り得る。また、下記の実施形態の構成の一部を、課題を解決できる限りにおいて省略した態様も本発明の実施形態であり、下記の複数の実施形態を適宜組み合わせて構成される態様も本発明の実施形態である。
(1)特定サービス提供システム1の概要
図1に示すように、本実施形態の特定サービス提供システム1は、複数のMFP(Multi Function Peripheral ;複合機)10と、PC(パーソナルコンピュータ)18と、ルータ20と、中間サーバ30と、サービスサーバ40と、ファームウェア提供サーバ50とを備えている。
各MFP10は、それぞれ、ルータ20を介してインターネット(クラウド)5上の各種リソースに接続可能であり、本実施形態では少なくとも中間サーバ30及びファームウェア提供サーバ50に接続して相互にデータ通信可能である。PC18は、ルータ20を介してインターネット5へ接続できるほか、ルータ20を介して各MFP10とデータ通信することもできる。
ルータ20は、複数のMFP10とPC18とのデータ通信を中継したり、複数のMFP10やPC18とインターネット5上の各種リソースとのデータ通信を中継したりするための周知のデータ中継装置である。ルータ20は、ファイアウォール機能やアドレス変換機能(例えばNAT)などの各種機能を備えている。
ルータ20からみてインターネット5およびこれに接続される各種リソースはいわゆるクラウドであり、一方、ルータ20及びこれに接続された各MFP10及びPCからなるネットワークは、いわゆるLAN(Local Area Network)である。クラウド側では、中間サーバ30、サービスサーバ40、及びファームウェア提供サーバ50がインターネット5に接続されている。
LAN内の各MFP10及びPC18は、ルータ20を介してクラウド上の中間サーバ30やサービスサーバ40、ファームウェア提供サーバ50に接続してデータ通信することが可能である。また、クラウド側においても、中間サーバ、サービスサーバ40及びファームウェア提供サーバ50はインターネット5を介して相互にデータ通信可能である。本実施形態では、サービスサーバ40と中間サーバ30との間の通信、中間サーバ30と各MFP10との通信、及び各MFP10とファームウェア提供サーバ50との通信について詳しく説明する。
ルータ20において、ファイアウォール機能は、ルータ20内のネットワーク(LAN)に対する外部(インターネット5側)からの不正侵入を防止する機能である。ファイアウォール機能では、外部との境界を流れるデータを監視し、不正なアクセスを検出・遮断する。アドレス変換機能は、ルータ20内のネットワークでのみ通用するプライベートIPアドレスと、インターネット5上のグローバルIPアドレスとを、1対1で相互変換する機能である。
ファイアウォール機能とアドレス変換機能の具体的動作について説明する。例として、何れか1つのMFP10と中間サーバ30又はファームウェア提供サーバ50との間にコネクションが確立される場合にルータで行われる動作を説明する。ファイアウォール機能およびアドレス変換機能の動作は、MFP10と通信相手とのコネクションが、リクエスト−レスポンス型のプロトコルに従って確立されるか、それとも常時接続型のプロトコルに従って確立されるか、によって異なる。
常時接続型のプロトコルとは、接続(セッション)をできるだけ(連続的又は断続的に)維持して、双方から任意のタイミングで通信を行える形式のプロトコルである。リクエスト−レスポンス型のプロトコルとは、リクエストに対してレスポンスで返信する形式のプロトコルである。本実施形態では、一例として、常時接続型のプロトコルとしてXMPP over BOSH(eXtensible Messaging and Presence Protocol over Bidirectional-streams Over Synchronous HTTP の略)が用いられ、リクエスト−レスポンス型のプロトコルとしてHTTP(Hypertext Transfer Protocol の略)が用いられる。
具体的には、本実施形態では、MFP10と中間サーバ30との通信は主に常時接続型のXMPP over BOSHによるコネクションを介して行われ、MFP10とファームウェア提供サーバ50との通信は主にリクエストーレスポンス型のHTTPによるコネクションを介して行われる。なお、サービスサーバ40と中間サーバ30との通信も主にHTTPによるコネクションを介して行われる。
常時接続型のプロトコルであるXMPP over BOSHによるXMPPセッション要求に従ったコネクション(以下「XMPPコネクション」ともいう)が中間サーバ30とMFP10との間で確立される場合、ルータ20のファイアウォール機能は、中間サーバ30とMFP10との通信を全て通過させる。またルータ20のアドレス変換機能は、中間サーバ30とMFP10との全ての通信に対してアドレス変換を実行する。これらの動作は、ルータ20が、XMPPセッションを維持している通信相手を識別することによって実現される。これにより、XMPPコネクションを用いる場合には、中間サーバ30からMFP10へのリクエスト情報を通過させることが可能となる。XMPPセッションを確立するための具体的な手順については、図8のS610において説明するため、ここでの説明は省略する。
リクエスト−レスポンス型のプロトコルであるHTTPに従ったコネクション(以下「HTTPコネクション」ともいう)がMFP10とファームウェア提供サーバ50との間で確立される場合、ルータ20のファイアウォール機能は、MFP10からファームウェア提供サーバ50へのリクエスト情報、及びファームウェア提供サーバ50からMFP10へのレスポンス情報は通過させる。しかし、ファイアウォール機能は、ファームウェア提供サーバ50からMFP10へのリクエスト情報は遮断する。これは、ファイアウォールの外部からのリクエスト情報には、不正アクセスや侵入のためのリクエスト情報が含まれている危険性があるためである。この機能は、ルータ20のファイアウォール機能が、MFP10からファームウェア提供サーバ50へ送信されたリクエスト情報に対するレスポンス情報を識別することによって実現される。
また、ルータ20のアドレス変換機能は、MFP10からファームウェア提供サーバ50へのリクエスト情報、及びファームウェア提供サーバ50からMFP10へのレスポンス情報については、アドレス変換を行う。しかし、アドレス変換機能は、ファームウェア提供サーバ50からMFP10へのリクエスト情報についてはアドレス変換を実行できない。従って、ファームウェア提供サーバ50からMFP10へのリクエスト情報は遮断される。これらの動作は、ルータ20が、MFP10からファームウェア提供サーバ50へ送信されたリクエスト情報に対するレスポンス情報を識別することによって実現される。
本実施形態の特定サービス提供システム1は、特定業者が予め契約した顧客に対して特定サービスを提供することが可能なシステムである。複数のMFP10は顧客が使用するものであり、特定業者は、特定サービスとして、顧客が使用する複数のMFP10をクラウド側から一括管理する。具体的には、特定業者は、主にサービスサーバ40から、各MFP10の使用状態や消耗品の交換・補充時期等を管理したり、各MFP10に対して上記管理のために必要な特定の機能や顧客が要望する特定の機能を提供したりすることができる。
特定サービスの内容によっては、顧客の各MFP10が有するファームウェアの一部又は全てを、汎用の組込ファームウェアからその特定サービスに特化した顧客専用のカスタムファームウェアに変更(更新)する必要が生じる。
そこで本実施形態では、必要に応じてカスタムファームウェアをファームウェア提供サーバ50に格納しておき、サービスサーバ40から顧客の各MFP10を宛先としてそのカスタムファームウェアの所在(URL)や内容等を示すファーム情報を送信する。顧客の各MFP10は、クラウド側からファーム情報を受信すると、そのファーム情報に基づいてファームウェア提供サーバ50の所定のURLにアクセスし、カスタムファームウェアをダウンロードすることができる。
ただし本実施形態では、サービスサーバ40から顧客の各MFP10へファーム情報が直接送信されるのではなく、中間サーバ30を介して間接的に送信される。すなわち、サービスサーバ40からのファーム情報は、直接的には、そのファーム情報を含むカスタムファーム指定コマンドとして中間サーバ30に送信される。中間サーバ30は、サービスサーバ40からカスタムファーム指定コマンドを受けると、その内容に基づいて、送信対象のMFP10へ個別にファーム情報を送信する。
サービスサーバ40と顧客の各MFP10との間に中間サーバ30を介在させている理由はいろいろあるが、その主な理由は、サービス提供側(特定業者側)が様々なサービスを容易に提供できるようにするためである。提供すべき特定サービスの種類が多くなったり、特定サービス提供対象のMFPの数が多くなったりすると、サービスサーバ40の負担が増大し、サービス提供側の負担が増す。
また、必要なときに各MFP10のファームウェアを最新のカスタムファームウェアに更新させるためには、サービスサーバ40からそのファーム情報を所望のMFP10へすぐに送信できるようにしておくことが望ましい。しかし、各MFP10はルータ20を介してインターネット5に接続されているため、ルータ20が障壁となって、サービスサーバ40から各MFP10へ直接アクセスすることは難しい。
そこで本実施形態では、中間サーバ30と各MFP10との間でXMPPセッションによる常時接続状態を維持させておき、必要に応じて中間サーバ30から各MFP10へデータを送信できるようにしている。このような構成により、サービスサーバ40が中間サーバ30に対して所定のMFP10宛の情報を送信すると、中間サーバ30が、常時接続中の宛先MFP10へXMPPコネクションを介して必要な情報を送信することができる。
つまり、中間サーバ30を介在させることで、サービスサーバ40は、特定サービス提供対象のMFPの数にかかわらず、また各MFP10がどのような状態にあるのか(例えば通信可能な状態にあるのかどうか)を気にすることなく、様々な特定サービスを容易に提供することができる。
(2)特定サービス提供システム1の構成
本実施形態の特定サービス提供システム1が備える各装置等の構成や機能について具体的に説明する。
(2−1)MFP10の構成
MFP10は、印刷機能やスキャン機能、コピー機能、ネットワーク接続機能などの複数の機能を有する。MFP10は、図1に示すように、CPU11、ROM12、RAM13、NVRAM14、印刷部15、読取部16、通信部17などを備えている。
MFP10において、CPU11は、ROM12やNVRAM14に記憶されている各種プログラム(後述の各ファームウェアを含む)やデータに従ってMFP10内の各部の制御および各種演算を実行する。RAM13は、CPU11から直接アクセスされるメインメモリ等として利用される。印刷部15は、印刷用紙等の被記録媒体に画像を形成(印刷)する。読取部16は、イメージセンサを備え、原稿の画像を読み取ってその画像を表す画像データを生成する。
通信部17は、MFP10と他の機器とを通信可能に接続するためのネットワークインタフェースである。この通信部17により、MFP10は、PC18とのデータ通信やクラウド側とのデータ通信が可能となる。
NVRAM14(Non Volatile RAM)は、記憶内容を電気的に書き換え可能な不揮発性メモリである。NVRAM14に記憶されている各種プログラム等の中には、MFP10の動作に必要なファームウェアが含まれている。本実施形態のMFP10は、三種類のファームウェアを搭載し、これら三種類のファームウェアをもとに動作するよう構成されている。三種類のファームウェアにはそれぞれファーム番号F1,F2,F3が対応づけられている。
MFP10の製品出荷段階では、三種類のファームウェアはいずれも、汎用の組込ファームウェアとなっている。つまり、特定サービスの顧客向けに特化したカスタムファームウェアではなく、一般のユーザが標準的な機能を利用できるようにするための汎用のファームウェアがデフォルトで組み込まれている。
一方、MFP10は、特定サービスにおける管理対象として特定業者に登録されると、当該MFP10固有のデバイスIDが付与され、NVRAM14に設定(記憶)される。本実施形態の各MFP10は、いずれも特定サービスの管理対象となっているため、それぞれ、固有のデバイスIDが設定されている。
MFP10が管理対象として登録されると、MFP10のNVRAM14には、図2(a)に示すようなファーム状態テーブルが生成される。このファーム状態テーブルの生成は、例えばMFP10のユーザ自らの入力操作等により実現するようにしてもいいし、特定業者による直接操作又は遠隔操作等により実現するようにしてもよく、種々の方法で実現できる。
MFP10のNVRAM14に生成されるファーム状態テーブルは、図2(a)に示すように、三種類のファームウェアそれぞれについて、カスタムファームウェアに変更されているか否か、カスタムファームウェアに変更されている場合にはそれはどのバージョン(ファームバージョン)であってどのURLから取得(ダウンロード)したものであるかを示す情報が記憶されたものである。
ファーム状態テーブルは、生成された直後は、通常、三種類のファームウェアはいずれもまだ組込ファームウェアの状態であるため、テーブル中のURL及びファームバージョンはいずれも空欄の状態又は未設定を示すデータが書き込まれた状態である。そして、サービスサーバ40から中間サーバ30を介してカスタムファームウェアに変更すべき旨の要求(具体的には後述のサーバ側ファーム情報)を受けると、MFP10は、その要求内容に従ってファーム状態テーブルを更新する。具体的には、カスタムファームウェアに変更すべき要求を受けたファーム番号についてそのカスタムファームウェアのファームバージョンとURLを上書きする。そして、変更要求対象のファームウェアについて、要求内容に基づき、URLにアクセスしてカスタムファームウェアを取得(ダウンロード)し、カスタムファームウェアに更新する。
また、サービスサーバ40からは、中間サーバ30を介して、カスタムファームウェアを組込ファームウェアに戻すべき旨の要求(後述のサーバ側ファーム情報)も受信されることがある。MFP10は、あるファームウェアについてカスタムファームウェアから組込ファームウェアに戻すべき旨の要求を受けたら、ファーム状態テーブルからその要求されたファームウェアのURL及びファームバージョンを消去する。そして、組込ファームウェアに戻すべきファームウェアについて、ROM12に記憶されている組込ファーム情報に基づいて、その組込ファームウェアのURLにアクセスして組込ファームウェアをダウンロードし、組込ファームウェアに更新する。
ROM12に記憶されている組込ファーム情報は、図2(b)に示すように、各ファームウェア(各ファーム番号)毎にそれぞれその組込ファームウェアの所在を示すURLが設定されたものである。この組込ファーム情報は、MFP10の製品出荷段階でROM12に記憶されている。
そのため、MFP10は、ファームウェアをカスタムファームウェアから組込ファームウェアに戻す必要がある場合、又は組込ファームウェアを更新させる際には、ROM12に記憶されている組込ファーム情報に基づいて、指定のURLから最新の組込ファームウェアをダウンロードして更新することができる。
ファーム状態テーブルの内容、即ちファーム番号毎のカスタムファームウェアのURL及びファームバージョンは、MFP側ファーム情報として、対応するデバイスIDのMFP10へ送信される。
(2−2)ファームウェア提供サーバ50の説明
ファームウェア提供サーバ50には、各MFP10の各ファームウェアが格納される。本実施形態では、MFP10の各ファームウェアについて、組込ファームウェア及びカスタムファームウェアの双方が格納される。そのため、各MFP10は、必要に応じてこのファームウェア提供サーバ50のURLにHTTPにてアクセスすることで、必要なファームウェアをダウンロードすることができる。
なお、各種ファームウェアを全て1つのファームウェア提供サーバ50に格納することは必須ではない。MFP10からアクセスして所望のファームウェアをダウンロードできる限り、ファームウェアをどこに格納しておくかについては適宜決めることができる。
(2−3)サービスサーバ40の説明
サービスサーバ40からは、適宜、管理対象の各MFP10のうちいずれか(一又は複数)を対象としたファームウェアの変更等のコマンドが中間サーバ30へ送信される。このコマンドには、少なくとも、ファームウェアをカスタムファームウェアに更新(変更)させるためのカスタムファーム指定コマンド、及びファームウェアをカスタムファームウェアから組込ファームウェアに戻させるためのカスタムファーム解除コマンドの2種類がある。
カスタムファーム指定コマンドは、特定業者のオペレータ等によってカスタムファームウェア指定操作がなされた場合に生成されて中間サーバ30へ送信されるコマンドである。カスタムファームウェア指定操作とは、カスタムファームウェアに更新すべき所望のデバイス(MFP10)のデバイスID、更新対象のファーム番号とファームバージョン、更新対象のカスタムファームウェアが格納されているファームウェア提供サーバ50内のURLを指定する操作である。
サービスサーバ40は、オペレータ等によってカスタムファームウェア指定操作がなされると、その操作により指定された各種情報に基づき、カスタムファーム指定コマンドを生成する。カスタムファーム指定コマンドには、当該コマンドがファームウェアをカスタムファームウェアに更新するよう要求するコマンドであることを更新対象の各MFP10に認識させるためのセットコマンド、更新対象のMFP10(一又は複数)それぞれのデバイスID、更新対象のファームウェアのファーム番号、更新すべきカスタムファームウェアのバージョンを示すファームバージョン、及び更新対象のファームウェアの所在(本実施形態ではファームウェア提供サーバ50内)を示すURLが含まれている。つまり、サービスサーバ40から送信されるカスタムファーム指定コマンドは、ファームウェアをカスタムファームウェアに更新すべき全てのMFPに対し、更新指示及び更新に必要な情報を一括して指示するためのコマンドである。
カスタムファーム解除コマンドは、特定業者のオペレータ等によってカスタムファームウェア解除操作がなされた場合に生成されて中間サーバ30へ送信されるコマンドである。カスタムファームウェア解除操作とは、カスタムファームウェアを組込ファームウェアに更新すべき所望のデバイス(MFP10)のデバイスIDと更新対象のファーム番号を指定する操作である。
サービスサーバ40は、オペレータ等によってカスタムファームウェア解除操作がなされると、その操作により指定された各種情報に基づき、カスタムファーム解除コマンドを生成する。カスタムファーム解除コマンドには、当該コマンドがファームウェアをカスタムファームウェアから組込ファームウェアに更新する(戻す)べきコマンドであることを更新対象の各MFP10に認識させるためのセットコマンド、更新対象のMFP10(一又は複数)それぞれのデバイスID、及び更新対象のファームウェアのファーム番号が含まれている。つまり、サービスサーバ40から送信されるカスタムファーム指定コマンドは、ファームウェアを組込ファームウェアに更新すべき全てのMFPに対し、更新指示及び更新に必要な情報を一括して指示するためのコマンドである。
(2−4)中間サーバの構成
中間サーバ30は、サービスサーバ40から特定サービス提供対象の各MFP10への各種コマンドを中継するために設けられており、CPU31、ROM32、RAM33、HDD(ハードディスクドライブ)34、通信部35などを備えている。
CPU31は、ROM32やHDD34に記憶されている各種プログラムを実行することによって、上記のコマンド中継等の機能を実現する。ROM32には、CPU31によって実行される各種プログラムやデータ等が記憶されている。RAM33は、CPU31から直接アクセスされるメインメモリ等として利用される。
通信部35は、中間サーバ30と他の機器とを通信可能に接続するためのネットワークインタフェースである。この通信部35により、中間サーバ30は、各MFP10やサービスサーバ40とのデータ通信が可能となる。
HDD34には、OSを含む各種ソフトウェアがインストールされている。また、HDD34には、図3(a)に示すファーム設定テーブル及び図3(b)に示すデバイス管理テーブルも記憶される。これら各テーブルは、初期状態では記憶されておらず、MFP10やサービスサーバ40との通信を行うことにより生成されて記憶される。
図3(a)に示すファーム設定テーブルは、特定サービス提供対象の各デバイス(各MFP10)について、デバイス毎(MFP毎)に個別に生成されるものである。具体的には、サービスサーバ40から、あるMFP10を対象とするカスタムファーム指定コマンドが初めて送信されてきたときに、そのMFP10に対応したファーム設定テーブルが生成される。
ファーム設定テーブルは、図3(a)に示すように、三種類のファームウェアそれぞれについて、カスタムファームウェアに変更すべきか否か、カスタムファームウェアに更新すべき場合にはそれはどのバージョン(ファームバージョン)であってどのURLから取得(ダウンロード)すればよいのかを示す情報が、MFP10のデバイスIDと対応付けられたものである。
ファーム設定テーブルの内容は、サービスサーバ40からそのファーム設定テーブルを対象とした上記何れかのコマンドを受信する度に、そのコマンドの内容にしたがって更新される。例えば、あるデバイスIDのMFP10を対象として、ファーム番号F1のファームウェアをカスタムファームウェアに更新すべき旨のカスタムファーム指定コマンドが送信されてきた場合は、対象MFP10のファーム設定テーブルにおいて、ファーム番号F1に対応したURL及びファームバージョンとして、カスタムファーム指定コマンドに含まれているURL及びファームバージョンが書き込み(又は上書き)される。また例えば、あるデバイスIDのMFP10を対象として、ファーム番号F2,F3のファームウェアをカスタムファームウェアから組込ファームウェアに戻すべき旨のカスタムファーム解除コマンドが送信されてきた場合は、対象MFP10のファーム設定テーブルにおいて、ファーム番号F2,F3に対応したURL及びファームバージョンが消去される。
中間サーバ30は、ファーム設定テーブルの内容、即ちファーム番号毎のカスタムファームウェアのURL及びファームバージョンを、サーバ側ファーム情報として、必要に応じてMFP10へ送信する。
図3(b)に示すデバイス管理テーブルは、特定サービス提供対象の各デバイス(各MFP10)について、デバイス毎(MFP毎)に個別に生成されるものである。具体的には、MFP10から初めてXMPP接続されたときに、そのMFP10に対応したデバイス管理テーブルが生成される。
デバイス管理テーブルは、図3(b)に示すように、対応するMFP10について、周期タイマのタイマ値及びステータスが、当該MFP10のデバイスIDと対応付けられたものである。
周期タイマとは、中間サーバ30のCPU31がプログラムに従って計時されるソフトウェアタイマであり、150を初期値として、一定周期(本実施形態では1秒毎)で1つずつ減算されていくものである。周期タイマのタイマ値がどのように用いられるかについては後述する。
ステータスとは、対応するMFP10と中間サーバ30とのXMPP over BOSHによるセッション(以下「XMPPセッション」ともいう)が維持されているか否かを示す情報であり、後述するように、対応するMFP10からのXMPP接続や周期タイマのタイマ値などに応じてオンライン(XMPP over BOSHによるセッション維持)又はオフライン(XMPP over BOSHによるセッション切断)が設定される。
(3)特定サービス提供システム1の概略動作例
次に、本実施形態の特定サービス提供システム1の動作例について、図4を用いて説明する。なお、図4の動作例は、システム全体の動作を概略的に説明することを目的としてその動作の一部のみを抜粋して示している。
まず、MFP10の起動後にサービスサーバからカスタムファーム指定コマンドが送信されるケースについて、図4(a)を用いて説明する。図4(a)に示すように、MFP10は、電源投入により起動すると、中間サーバ30へXMPP over BOSHによるセッション(XMPPセッション)を確立し、XMPPコネクションを確立させる。なお、XMPPセッションは、中間サーバ30からサーバプッシュを可能とするセッションである。
その後、サービスサーバ40から中間サーバ30へHTTPコネクションにてカスタムファーム指定コマンドが送信されると、中間サーバ30は、カスタムファーム指定コマンドに基づき、カスタムファームウェアへ更新すべき対象MFPのファーム設定テーブルの記憶内容(サーバ側ファーム情報)を更新する。
例えば、カスタムファーム指定コマンドとして、あるMFP10を対象MFPとして(デバイスIDを指定して)ファーム番号F2のファームウェアを最新バージョンのカスタムファームウェアに変更すべき旨のコマンドが送信されてきた場合は、その対象MFPのファーム設定テーブルにおけるファーム番号F2のファーム情報(URL及びファームバージョン)をそのコマンドに基づいて書き込む上書き(または新規書き込み)する。
中間サーバ30は、サービスサーバ40からのカスタムファーム指定コマンドに基づいて対象MFPのファーム設定テーブルを更新すると、その対象MFPへ、更新後のサーバ側ファーム情報をXMPPコネクションを介して送信し、サービスサーバ40へHTTPコネクションを介して送信済レスポンスをHTTPで送信する。
MFP10は、中間サーバ30からXMPPでサーバ側ファーム情報を受信すると、自身のファーム状態テーブルのMFP側ファーム情報を、サーバ側ファーム情報にしたがって更新する。そして、更新対象のファームウェアについて、更新後のMFP側ファーム情報に基づいて、ファームウェア提供サーバ50へHTTPコネクションを介して更新対象の最新バージョンのカスタムファームウェアを要求し、ダウンロードする。ダウンロード後は、更新対象のファームウェアをそのダウンロードしたカスタムファームウェアに更新する。
例えば、中間サーバ30からのサーバ側ファーム情報においてファーム番号F2に対するカスタムファームウェアのURL及びファーブバージョンが更新されていた場合は、MFP10は、ファーム番号F2のファームウェアについて、更新後のURLにアクセスして指定ファームバージョンのカスタムファームウェアをダウンロードし、更新することになる。
次に、MFP10が起動するよりも先にサービスサーバ40からカスタムファーム指定コマンドが送信され、その送信後にMFP10が起動されるケースについて、図4(b)を用いて説明する。図4(b)に示すように、対象MFP10がまだ起動していないときにサービスサーバ40からカスタムファーム指定コマンドがHTTPコネクションを介して送信されると、中間サーバ30は、図4(a)のケースと同様に、そのカスタムファーム指定コマンドに基づき、カスタムファームウェアへ更新すべき対象MFPのファーム設定テーブルの記憶内容(サーバ側ファーム情報)を更新する。
このとき、中間サーバ30と対象MFP10との間には、まだXMPPセッションが確立していないため、中間サーバ30は更新後のサーバ側ファーム情報を対象MFP10へ送信できない。そのため、その場合は、中間サーバ30は、サービスサーバ40へMFPオフラインレスポンスをHTTPコネクションを介して送信する。その後、対象MFP10が起動してXMPPセッションが確立され、対象MFP10との間でXMPPコネクションが確立すると、中間サーバ30は、対象MFP10へ、サーバ側ファーム情報をXMPPコネクションを介して送信する。中間サーバ30から対象MFP10へサーバ側ファーム情報が送信された後の対象MFP10の動作は、図4(a)と同様である。
(4)サービスサーバ40によるサービス処理の説明
次に、サービスサーバ40が実行するサービス処理について図5を用いて説明する。サービスサーバ40は、図5のサービス処理を開始すると、S110で、何らかのイベントが発生したか否か判断する。イベントが発生した場合は、S120で、そのイベントが、オペレータ等による、デバイス(具体的には特定サービス提供対象のMFP10)のカスタムファームウェア指定操作であるか否か判断する。
発生したイベントが、オペレータ等によるカスタムファームウェア指定操作だった場合は、S130で、そのカスタムファームウェア指定操作の内容が反映されたカスタムファーム指定コマンドを、HTTPリクエストで中間サーバ30へ送信する。その送信後、S140で中間サーバ30からの応答(送信済レスポンス又はMFPオフラインレスポンス)をHTTPレスポンスで受信すると、S110に戻る。
S120で、発生したイベントがカスタムファームウェア指定操作ではなかった場合は、S150で、発生したイベントが、オペレータ等による、デバイスのカスタムファームウェア解除操作であるか否か判断する。発生したイベントが、オペレータ等によるカスタムファームウェア解除操作だった場合は、S160で、そのカスタムファームウェア解除操作の内容が反映されたカスタムファーム解除コマンドを、HTTPリクエストで中間サーバ30へ送信する。カスタムファーム解除コマンドの送信後、S170で中間サーバ30からの応答(送信済レスポンス又はMFPオフラインレスポンス)をHTTPレスポンスで受信すると、S110に戻る。
S150で、発生したイベントがカスタムファームウェア解除操作ではなかった場合は、S180で、その他の処理(発生したイベントに応じた処理)を実行して、S110に戻る。
(5)中間サーバ30による中間サーバ処理及び周期タイマ処理の説明
次に、中間サーバ30が実行する中間サーバ処理について図6を用いて説明する。中間サーバ30のCPU31は、電源が投入されて動作を開始すると、HDD34から図6の中間サーバ処理のプログラムを読み出して実行する。
中間サーバ30のCPU31は、図6の中間サーバ処理を開始すると、S210で、周期タイマをスタートさせる。本実施形態の周期タイマはソフトウェアタイマであり、具体的には、図7の周期タイマ処理を開始させる。中間サーバ30のCPU31は、中間サーバ処理のS210で周期タイマをスタートさせる指示がなされると、HDD34から図7の周期タイマ処理のプログラムを読み出し、一定周期(本実施形態では1秒毎)で繰り返し実行する。この周期タイマ処理は、中間サーバ処理と並行して実行されるものである。
中間サーバ30のCPU31は、図7の周期タイマ処理を開始すると、S510で、生成されている全てのデバイス管理テーブルに対し、周期タイマのタイマ値を1減算する。既述の通り、デバイス管理テーブルにおける周期タイマのタイマ値は初期状態では150に設定される。そのため、図7の周期タイマ処理が開始されると、1秒経過ごとに、テーブル中のタイマ値が150から149,148,・・・と、順次減算されていく。
S520では、タイマ値が0になったデバイス管理テーブルについて、ステータスをオフラインとし、該当するMFPとのXMPP接続を切断する。具体的には、該当するMFPとのXMPPセッション維持のために確保しているコネクションリソースを破棄する。つまり、本実施形態では、一定時間(本実施形態では150秒)MFP10からXMPPでのアクセスがなかった場合は、そのMFP10についてはオフライン状態になったものと判断するのである。
ただし、後述するように、MFP10からは、定期的に(本実施形態では120秒毎に)XMPP生存通知が送信され、中間サーバ30は、MFP10からXMPP生存通知を受信する度に、後述するS410の処理で、当該MFP10のタイマ値を150にセット(初期化)する。そのため、MFP10から定期的にXMPP生存通知が受信されている間は、XMPPセッションは維持される。また、何らかの要因でタイマ値が0になってオフラインになったとしても、その後MFP10からXMPP生存通知を受信した場合は再びオンラインに設定されてかつタイマ値も150に初期化される。
図6に戻り、中間サーバ処理の説明を続ける。S210で周期タイマをスタートさせたら、S220で、何らかのイベントが発生したか否か判断する。イベントが発生した場合は、S230で、そのイベントがMFP10からのXMPP接続(XMPPセッション要求)であるか否か判断する。MFP10からのXMPP接続である場合は、そのMFP10とのXMPPコネクションを確立させて(コネクションリソースを確保して)、S240に進む。
S240では、XMPP接続された当該MFP10のデバイス管理テーブルがあるか否か、つまりすでにHDD34内に生成されているか否か判断する。デバイス管理テーブルがすでにある場合はS260に進む。まだデバイス管理テーブルが生成されていない場合は、S250で、当該MFP10のデバイス管理テーブルを生成して、S260に進む。
S260では、当該MFP10のデバイス管理テーブルにおけるステータスをオンラインに設定する。S270では、当該MFP10のデバイス管理テーブルにおける周期タイマのタイマ値を150にセットする。
S280では、当該MFP10のファーム設定テーブルがあるか否か、つまりすでにHDD34内に生成されているか否か判断する。当該MFP10のデバイス管理テーブルがまだ生成されていない場合はS220に戻る。当該MFP10のデバイス管理テーブルが生成されている場合は、S290で、そのデバイス管理テーブル内のサーバ側ファーム情報をXMPPで当該MFP10へ送信して、S220に戻る。なお、本明細書において、「XMPPで」とは、XMPPコネクションを介してという意味であり、「HTTPで」とは、HTTPコネクションを介してという意味である。
S230で、発生したイベントがMFP10からのXMPP接続ではないと判断した場合は、S300で、発生したイベントがサービスサーバ40からのHTTPコネクションを介したHTTPリクエストであるか否か判断する。発生したイベントがサービスサーバ40からのHTTPリクエストである場合は、S310で、そのHTTPリクエストがカスタムファーム指定コマンド又はカスタムファーム解除コマンドであるか否か判断する。
HTTPリクエストがこれら各コマンドの何れでもない場合は、S320で、その他の処理、即ちHTTPリクエストに応じた処理を実行して、S220に戻る。
HTTPリクエストがこれら各コマンドの何れかである場合は、コマンドにより指定された対象MFP10それぞれについて、S330〜S390の一連の処理を実行する。即ち、図6では図示を省略したが、S330〜S390の一連の処理は、サービスサーバ40からHTTPで取得したカスタムファーム指定コマンド(又はカスタムファーム解除コマンド)において指定されている一又は複数の対象MFP10それぞれについて個別に実行されるものである。
S300では、コマンドで指定されたMFP10のうち1つの対象MFP10について、その対象MFP10のファーム設定テーブルがあるか否か判断する。対象MFP10のファーム設定テーブルがある場合は、S350に進む。対象MFP10のファーム設定テーブルがまだない場合は、S340で対象MFP10のファーム設定テーブルを生成して、S350に進む。
S350では、対象MFP10のファーム設定テーブルのサーバ側ファーム情報を、サービスサーバ40からのコマンドの内容に従って更新する。例えばファーム番号F1,F2のカスタムファームウェアのURL及びファームバージョンがカスタムファーム指定コマンドにて通知されている場合は、ファーム設定テーブル中の各ファーム番号F1,F2のURL及びファームバージョンを、その通知された各URL及びファームバージョンに書き換える。また例えば、ファーム番号F1のカスタムファームウェアを指定したカスタムファーム解除コマンドが通知されている場合は、ファーム設定テーブル中のファーム番号F1のURL及びファームバージョンを消去する。
S360では、対象MFP10がデバイス管理テーブルにおいてオンラインに設定されているか否か判断する。対象MFP10がオフラインに設定されている場合は、S390で、サービスサーバ40へ、その対象MFP10についてのMFPオフラインレスポンスをHTTPで返して、S220に戻る。
対象MFP10がオンラインに設定されている場合は、S370で、対象MFP10へ、ファーム設定テーブル内のサーバ側ファーム情報をXMPPで送信する。そして、S380で、サービスサーバ40へ、その対象MFP10についての送信済レスポンスをHTTPで返して、S220に戻る。
S300で、発生したイベントがサービスサーバ40からのHTTPリクエストではないと判断した場合は、S400で、発生したイベントが何れかのMFP10からのXMPP生存通知の受信であるか否かを判断する。XMPP生存通知は、XMPPで定期的に各MFP10から受信されるものである。発生したイベントがMFP10からのXMPP生存通知ではない場合は、S320で、その他の処理、イベントに応じた処理を実行して、S220に戻る。
発生したイベントがMFP10からのXMPP生存通知である場合は、S410で、当該MFP10のデバイス管理テーブルのタイマ値を150にセット(つまり初期化)して、S220に戻る。なお、S410では、当該MFP10のデバイス管理テーブルにおいて、ステータスがオフラインになっている場合は、ステータスをオンラインに変更する処理も行う。
(6)MFP10によるMFP処理の説明
次に、MFP10が実行するMFP処理について図8を用いて説明する。MFP10のCPU11は、電源が投入されて動作を開始すると、ROM12又はNVRAM14から図8のMFP処理のプログラムを読み出して実行する。
MFP10のCPU11は、図8のMFP処理を開始すると、S610で、中間サーバにXMPP接続する。具体的には、CPU11は、中間サーバ30との間で、常時接続型のプロトコルであるXMPP over BOSHに従ったXMPPセッションを確立し、これによりXMPPコネクションを確立させる。
XMPPセッションを確立するための具体的な手順について説明する。MFP10は、当該MFP10の電源がOFF状態からON状態に変化する場合に、BOSH(Bidirectional-streams Over Synchronous HTTP の略)の第1の要求信号(即ちHTTPリクエスト)を中間サーバ30に送信する。第1の要求信号は、XMPPセッションで利用されるべきセッションIDの送信を中間サーバ30に要求するための信号である。
中間サーバ30は、MFP10から第1の要求信号を受信した場合、セッションIDを生成して、セッションIDを含む応答信号(即ちHTTPレスポンス)をMFP10に送信する。
MFP10は、中間サーバ30から応答信号を受信する場合に、BOSHの第2の要求信号(即ちHTTPリクエスト)を中間サーバ30に送信する。第2の要求信号は、応答信号に含まれるセッションIDに一致するセッションIDを含む。第2の要求信号は、XMPPセッションの確立を中間サーバ30に要求するための信号である。
中間サーバ30は、MFP10からセッションIDを含む第2の要求信号を受信した場合、OKを示す応答信号(即ちHTTPレスポンス)をMFP10に送信する。これにより、MFP10及び中間サーバ30は、XMPPセッションを確立するための認証信号、応答信号等の様々な信号の通信を実行して、XMPPセッションを確立する。
MFP10は、XMPPセッションが確立される場合に、BOSHの第3の要求信号(即ちHTTPリクエスト)を中間サーバ30に送信する。第3の要求信号は、上記のセッションIDを含む。第3の要求信号は、中間サーバ30からMFP10に送信されるべきデータ(例えばセットコマンド)を含む応答信号を送信するための元になる信号である。
中間サーバ30は、MFP10から第3の要求信号を受信した際、MFP10に送信されるべきセットコマンドが存在すれば、第3の要求信号に対する応答信号(即ちHTTPレスポンス)として、当該セットコマンドをMFP10に送信する。ただし、中間サーバ30は、MFP10から第3の要求信号を受信した際に、MFP10に送信されるべきセットコマンドが存在しなければ、サービスサーバ40からセットコマンドを受信するまで、セットコマンドをMFP10に送信しない。BOSHの要求信号は、BOSHではない通常のHTTPの要求信号と比べて、長いタイムアウト時間を有する。従って、中間サーバ30は、第3の要求信号を受信してからセットコマンド(即ち応答信号)を送信するまでの時間が長くても、タイムアウトと判断せずに、セットコマンドを適切に送信することができる。また、ルータ20も、タイムアウトと判断せずに、インターネット側(即ち中間サーバ30)からLAN側(即ちMFP10)へのセットコマンドの送信を許容する。
中間サーバ30は、MFP10と中間サーバ30との間にXMPPセッションが確立されていると判断した場合に、第3の要求信号に対する応答信号として、セットコマンドをMFP10に送信する。なお、当該応答信号は、上記のセッションIDを含まない。ただし、当該応答信号は、上記のセッションIDを含む第3の要求信号(即ちXMPPセッションを利用して通信される第3の要求信号)に対する応答信号であるので、XMPPセッションを利用して通信される信号である、と言える。
S620では、タイマをスタートさせる。このタイマは、一定時間(本実施形態では120秒)経過するごとにタイマ割込を発生させるソフトウェアタイマである。
S630では、何らかのイベントが発生したか否か判断する。イベントが発生した場合は、S640で、そのイベントがタイマ割込であるか否か判断する。イベントがタイマ割込であった場合は、S650で、中間サーバ30へXMPP生存通知をXMPPで送信して、S630に戻る。イベントがタイマ割込ではなかった場合は、S660に進む。
S660では、発生したイベントがPC18からのファーム更新要求であるか否か判断する。PC18においては、ユーザ等が任意のタイミングで、何れかのMFP10を指定して、そのMFP10のファームウェアの何れか又は全てを最新版に更新させるためのファーム更新要求を送信することができる。S660では、そのPC18からのファーム更新要求があったか否かを判断する。
S660で、発生したイベントがPC18からのファーム更新要求であった場合は、S670で、更新の要求対象のファームウェアについて、MFP側ファーム情報がファーム状態テーブルに記憶されているか否か判断する。要求対象のファームウェアについてMFP側ファーム情報が記憶されている場合は、S680で、その記憶されているMFP側ファーム情報(URL及びファームバージョン)に基づき、要求対象のファームウェアのカスタムファームウェアをHTTPでファームウェア提供サーバ50からダウンロードし、そのカスタムファームウェアに更新する。要求対象のファームウェアについてMFP側ファーム情報が記憶されていない場合は、S690で、ROM12に記憶されている組込ファーム情報(URL)に基づき、要求対象のファームウェアの組込ファームウェアをHTTPでファームウェア提供サーバ50からダウンロードし、その組込ファームウェアに更新する。S680又はS690によるファームウェアの更新後は、S630に戻る。
S660で、発生したイベントがPC18からのファーム更新要求ではなかった場合は、S700で、発生したイベントが中間サーバ30からのXMPPでのサーバ側ファーム情報の受信であるか否かを判断する。発生したイベントが中間サーバ30からのサーバ側ファーム情報の受信でもない場合は、S780で、その他の処理、即ち発生したイベントに応じた処理を実行して、S630に戻る。
S700で、発生したイベントが中間サーバ30からのサーバ側ファーム情報の受信であった場合は、S710で、その受信したサーバ側ファーム情報を、該当するMFP10のNVRAM14に記憶されているファーム状態テーブルの内容(MFP側ファーム情報)と照合する。
S720では、S710での照合結果に基づき、MFP側ファーム情報中に更新(上書き)すべき項目があるか否か、即ちMFP側ファーム情報とは異なるURL及びファームバージョンを示すサーバ側ファーム情報が受信されたか否かを判断する。異なるURL及びファームバージョンに更新(上書き)すべき項目がある場合は、S730で、受信したサーバ側ファーム情報に従ってファーム状態テーブルのMFP側ファーム情報を更新する。
そしてS740で、3つのファームウェアのうちS730にてMFP側ファーム情報が更新されたファームウェアについて、その更新後のMFP側ファーム情報(更新後のURL及びファームバージョン)に基づいて、更新対象のファームウェアのカスタムファームウェアをHTTPでファームウェア提供サーバ50からダウンロードし、そのカスタムファームウェアに更新する。
S720で、MFP側ファーム情報中に更新(上書き)すべき項目がないと判断した場合は、S750で、S710での照合結果に基づき、MFP側ファーム情報中に消去すべき項目があるか否か、即ちMFP側ファーム情報内ではカスタムファームウェアのURL及びファームバージョンが記憶されているものの受信したサーバ側ファーム情報内ではそのURL及びファームバージョンが消去されているか否かを判断する。
MFP側ファーム情報中に消去すべき項目がない場合は、MFP側ファーム情報の内容が受信したサーバ側ファーム情報と同じということであるため、S630に戻る。MFP側ファーム情報中に消去すべき項目がある場合は、S760で、該当する項目(該当するファーム番号のURL及びファームバージョン)をMFP側ファーム情報から消去する。
そしてS770で、3つのファームウェアのうちS760にてMFP側ファーム情報の項目が消去されたファームウェアについて、ROM12に記憶されている組込ファーム情報に基づいて、組込ファームウェアをHTTPでファームウェア提供サーバ50からダウンロードし、その組込ファームウェアに更新する。S740又はS770によるファームウェアの更新後は、S630に戻る。
(7)実施形態の効果等
以上説明したように、本実施形態の特定サービス提供システム1では、中間サーバ30とMFP10との間で常時接続型のXMPPコネクションが確立され、中間サーバ30とサービスサーバ40との間でリクエスト−レスポンス型のHTTPコネクションが確立される。そして、サービスサーバ40から中間サーバへHTTPコネクションを介してカスタムファーム指定コマンド又はカスタムファーム解除コマンドが送信されると、中間サーバ30は、受信したコマンドで指定されているMFP10に対し、そのコマンドの内容が反映されたサーバ側ファーム情報をXMPPコネクションを介して送信する。MFP10は、中間サーバ30から自身宛にXMPPで送信されたサーバ側ファーム情報を受信すると、その内容に応じてカスタムファームウェアの更新等を行う。
具体的には、あるファーム番号のファームウェアをカスタムファームウェアに変更すべき旨のカスタムファーム指定コマンドがサービスサーバ40から送信されてそのコマンドが反映されたサーバ側ファーム情報が中間サーバ30から送信された場合は、MFP10は、変更すべきファームウェアについて、中間サーバ30から受信したサーバ側ファーム情報内のURL及びファームバージョンに基づいて、カスタムファームウェアをダウンロードし、更新する。
そのため、サービスサーバ40から必要に応じてカスタムファーム指定コマンドを送信することで、特定サービス提供対象の各MFP10のファームウェアを適切且つ効率的にカスタムファームウェアに更新することができる。
また、あるファーム番号のファームウェアをカスタムファームウェアから組込ファームウェアに戻すべき旨のカスタムファーム解除コマンドがサービスサーバ40から送信されてそのコマンドが反映されたサーバ側ファーム情報が中間サーバ30から送信された場合は、MFP10は、組込ファームウェアに戻すべきファームウェアについて、ROM12の組込ファーム情報に基づいて組込ファームウェアをダウンロードし、更新する。
そのため、サービスサーバ40から必要に応じてカスタムファーム解除コマンドを送信することで、カスタムファームウェアが不要となったファームウェアについては適切なタイミングで効率的に組込ファームウェアに戻すことができる。
また、中間サーバ30は、サービスサーバ40から上記各コマンドを受信する毎に、各MFP10の各ファーム設定テーブルの内容(サーバ側ファーム情報)をそのコマンドの内容に基づいて書き換える。そのため、中間サーバ30にMFP10がXMPP接続したとき、その時点での最新のサーバ側ファーム情報をそのMFP10に送信して、そのMFP10のファームウェアを最新の状態にさせることができる。
また、MFP10においても、中間サーバ30からサーバ側ファーム情報を受信する度に、自身のファーム状態テーブル中のMFP側ファーム情報に、その受信したサーバ側ファーム情報の内容を反映させる。これにより、PC18からファーム更新要求があった場合に、カスタムファームウェアについてはファーム状態テーブルの内容をもとに最新バージョンのカスタムファームウェアを取得することができる。
組込ファームウェアについても、ROM12に予め組込ファーム情報が記憶されているため、PC18からファーム更新要求があった場合は、ROM12の組込ファーム情報をもとに最新バージョンの組込ファームウェアを取得することができる。
つまり、MFP10においては、NVRAM14にカスタムファームウェアに関するファーム状態テーブルが記憶されてかつ中間サーバ30からのサーバ側ファーム情報によって適宜更新され、ROM12には組込ファーム情報が予め記憶されている。そのため、ファーム状態テーブル及び組込ファーム情報に基づいて、MFP10のファームウェアを、特定サービス向けの内容に維持させることができ、特定サービスを適切に享受することができる。
また、各MFP10と中間サーバ30との間では、XMPPセッションが維持される。そのため、各MFP10は、中間サーバ30からのサーバ側ファーム情報に対してリアルタイムに対応することができ、ファームウェアを最新の所望の状態に維持させることが可能となる。
なお、本実施形態において、MFP10は本発明の情報処理装置の一例に相当し、中間サーバ30は本発明の中継サーバの一例に相当し、サービスサーバ40は本発明の特定サーバの一例に相当し、中間サーバ30のHDD34は本発明の記憶部の一例に相当し、MFP10のNVRAM14は本発明の第1の記憶部の一例に相当し、MFP10のROM12は本発明の第2の記憶部の一例に相当する。また、カスタムファームウェアは本発明の特定ファームウェアの一例に相当し、カスタムファームウェアのURLは本発明の特定ファーム所在情報の一例に相当し、組込ファームウェアのURLは本発明の組込ファーム所在情報の一例に相当し、デバイスIDは本発明の装置情報の一例に相当し、サーバ側ファーム情報は本発明の特定ファーム情報の一例に相当し、MFP10によるXMPP生存通知の送信は本発明の通信維持処理の一例に相当し、カスタムファーム指定コマンドは本発明の特定ファーム更新指令の一例に相当し、カスタムファーム解除コマンドは本発明の特定ファーム解除指令の一例に相当する。また、ファームウェアを組込ファームウェアに戻すために中間サーバ30からMFP10へ送信されるサーバ側ファーム情報であって、そのファームウェアに対応したURL及びファームバージョンが消去された状態のサーバ側ファーム情報は、本発明の解除情報の一例に相当する。
[他の実施形態]
(1)中間サーバ30は、サービスサーバ40から各コマンドを受信した場合、そのコマンドを反映させたサーバ側ファーム情報(三種類のファームウェアの情報を全て含む情報)を送信するものとしたが、必ずしも、三種類全てのファームウェアの情報を送信しなくてもよい。
例えば、サービスサーバ40から、ファーム番号F1のファームウェア1つについて、カスタムファームウェアを更新すべき旨のカスタムファーム指定コマンドが送信されてきた場合は、中間サーバ30は、その更新対象のファーム番号F1のカスタムファームウェアについてのみ、そのURL及びファームバージョンをMFP10へ送信するようにしてもよい。
また例えば、サービスサーバ40から、ファーム番号F1のファームウェア1つについて、カスタムファームウェアから組込ファームウェアへ戻すべき旨のカスタムファーム解除コマンドが送信されてきた場合は、中間サーバ30は、その組込ファームウェアへ戻すべきファーム番号F1のファームウェアについてのみ、そのファーム番号F1のファームウェアを組込ファームウェアへ戻すべき旨の情報をMP10へ送信するようにしてもよい。
結果として、中間サーバ30はカスタムファームウェアに関する最新のサービスサーバ40の情報(つまりどのMFP10のどのファームウェアをどのバージョンのカスタムファームにすべきなのか、逆に言えばどのMFP10のどのファームは組込ファームウェアのままでよいのか、などの情報)を認識できて、必要に応じて各MFP10へその最新情報を伝えることができる限り、中間サーバ30において具体的にどのような方法で各種情報を保持・記憶しておいてどのタイミングでMFP10へ送信するかについては適宜決めることができる。
MFP10側の観点でいえば、自身が有する各ファームウェアはそれぞれどれにすべきなのか(カスタムファームウェアにすべきなのか組込ファームウェアにすべきなのか、カスタムファームウェアにすべきならどこに取得しにいけばいいのか、など)を適切に知ることができる限り、当該MFP10及び中間サーバ30の具体的構成は適宜決めることができる。
(2)上記実施形態では、MFP10のファームウェアが三種類あるものとして説明したが、ファームウェアの種類はこれに限るものではない。一種類であっても良いし、二種類又は四種類以上であってもよい。
(3)サービスサーバ40と各MFP10との間に中間サーバ30を介在させることは必須ではない。サービスサーバ40から各MFP10へ直接コマンドを送って、ファームウェアを更新させるようにしてもよい。ただしその場合、例えば各MFP10からサービスサーバ40へ定期的にアクセスしてコマンドを取得したり、各MFP10とサービスサーバ40との間でXMPPセッションを確立するなどして、サービスサーバ40から各MFP10へ直接コマンドを送信できる状況を適宜発生させるようにする必要がある。
1…特定サービス提供システム、5…インターネット、10…MFP、11,31…CPU、12,32…ROM、13,33…RAM、14…NVRAM、15…印刷部、16…読取部、17,35…通信部、18…PC、20…ルータ、30…中間サーバ、34…HDD、40…サービスサーバ、50…ファームウェア提供サーバ

Claims (15)

  1. ネットワークに接続可能な通信部と、
    制御部と、
    情報を記憶することが可能な第1の記憶部と、
    当該情報処理装置が有するファームウェアに対応した所定の組込ファームウェアの所在を示す組込ファーム所在情報が予め記憶された第2の記憶部と、
    を備え、前記ネットワークに接続された特定ファーム情報送信装置及びファームウェア提供サーバと前記通信部を介して通信可能な情報処理装置であって、
    前記制御部は、
    前記特定ファーム情報送信装置からサーバプッシュを可能とするセッションを張るための通信プロトコルに従ったセッションを前記特定ファーム情報送信装置との間で確立させ、その確立したセッションにおいて前記特定ファーム情報送信装置とのコネクションを確立させるコネクション確立処理と、
    前記特定ファーム情報送信装置から当該情報処理装置宛に送信された、当該情報処理装置が有するファームウェアを所定の特定ファームウェアに更新させるための、その特定ファームウェアの所在を示す特定ファーム所在情報を少なくとも含む特定ファーム情報を、前記コネクションを介して取得する特定ファーム情報取得処理と、
    前記特定ファーム情報取得処理により前記特定ファーム情報を取得した場合にその取得した特定ファーム情報を前記第1の記憶部に記憶させる記憶処理と、
    前記ファームウェアの更新要求を受け付ける更新要求受付処理と、
    前記更新要求受付処理により前記更新要求が受け付けられた場合に、前記第1の記憶部に記憶されている前記特定ファーム情報に含まれている前記特定ファーム所在情報に基づき、その特定ファーム所在情報が示す前記ファームウェア提供サーバから前記特定ファームウェアを取得する特定ファームウェア取得処理と、
    当該情報処理装置が有する、前記特定ファームウェア取得処理により取得した前記特定ファームウェアに対応する前記ファームウェアを、その取得した特定ファームウェアに更新する特定ファームウェア更新処理と、
    前記更新要求受付処理により前記更新要求が受け付けられた場合に、その更新要求対象のファームウェアに対応した前記特定ファーム情報が前記第1の記憶部に記憶されているか否か判断する特定ファーム情報有無判断処理と、
    前記特定ファーム情報有無判断処理により前記特定ファーム情報が前記第1の記憶部に記憶されていると判断されなかった場合に、前記第2の記憶部に記憶されている前記更新要求対象のファームウェアに対応した前記組込ファーム所在情報が示す前記ファームウェア提供サーバから、前記組込ファームウェアを取得する第1の組込ファームウェア取得処理と、
    前記更新要求対象のファームウェアを前記第1の組込ファームウェア取得処理により取得した前記組込ファームウェアに更新する第1の組込ファームウェア更新処理と、
    を実行することを特徴とする情報処理装置。
  2. 請求項に記載の情報処理装置であって、
    当該情報処理装置が有する前記ファームウェアに対応した所定の組込ファームウェアの所在を示す組込ファーム所在情報が予め記憶された第2の記憶部を備え、
    前記制御部は、
    前記特定ファーム情報送信装置から当該情報処理装置宛に送信された、当該情報処理装置が有する前記特定ファームウェアを所定の組込ファームウェアへ戻すべき旨の解除情報を前記コネクションを介して取得する解除情報取得処理と、
    前記解除情報取得処理により前記解除情報を取得した場合に、前記第2の記憶部に記憶されている前記解除情報に対応した前記組込ファーム所在情報が示す前記ファームウェア提供サーバから、前記組込ファームウェアを取得する第2の組込ファームウェア取得処理と、
    前記解除情報に対応した前記特定ファームウェアを第2の組込ファームウェア取得処理により取得した前記組込ファームウェアに更新する第2の組込ファームウェア更新処理と、
    を実行することを特徴とする情報処理装置。
  3. 請求項に記載の情報処理装置であって、
    前記制御部は、前記解除情報取得処理により前記解除情報を取得した場合に、前記第1の記憶部に記憶されている、前記解除情報に対応した前記特定ファームウェアの前記特定ファーム情報を消去する特定ファーム情報消去処理を実行する
    ことを特徴とする情報処理装置。
  4. 請求項1〜請求項の何れか1項に記載の情報処理装置であって、
    前記制御部は、前記特定ファーム情報送信装置との間で前記セッションを連続的又は断続的に維持させるセッション維持処理を実行する
    ことを特徴とする情報処理装置。
  5. 請求項1〜請求項の何れか1項に記載の情報処理装置であって、
    前記通信プロトコルはXMPP over BOSH(eXtensible Messaging and Presence Protocol over Bidirectional-streams Over Synchronous HTTP )である
    ことを特徴とする情報処理装置。
  6. ネットワークに接続可能な通信部と、
    制御部と、
    を備え、前記ネットワークに接続された特定サーバ及び少なくとも1つの情報処理装置と前記通信部を介して通信可能な中継サーバであって、
    前記制御部は、
    前記情報処理装置からの要求に応じて、前記中継サーバからサーバプッシュを可能とするセッションを張るための第1の通信プロトコルに従ったセッションの確立に応じて、前記情報処理装置との間で第1のコネクションを確立させる第1確立処理と、
    前記特定サーバとの間で前記第1の通信プロトコルとは異なる第2の通信プロトコルに従った第2のコネクションを確立させる第2確立処理と、
    前記特定サーバから、前記少なくとも1つの情報処理装置のうち所定の更新対象装置が有するファームウェアを所定の特定ファームウェアに更新させるための、その更新対象装置を示す装置情報及び前記特定ファームウェアの所在を示す特定ファーム所在情報を少なくとも含む特定ファーム更新指令を、前記第2のコネクションを介して取得する特定ファーム更新指令取得処理と、
    前記特定ファーム更新指令取得処理により取得した前記特定ファーム更新指令に基づき、前記特定ファーム所在情報を少なくとも含む特定ファーム情報を、前記第1のコネクションを介して前記更新対象装置へ送信する第1の特定ファーム情報送信処理と、
    前記特定サーバから、前記少なくとも1つの情報処理装置のうち所定の解除対象装置が有する前記特定ファームウェアを所定の組込ファームウェアに戻すための、少なくともその解除対象装置を示す装置情報を含む特定ファーム解除指令を、前記第2のコネクションを介して取得する特定ファーム解除指令取得処理と、
    前記特定ファーム解除指令取得処理により取得した前記特定ファーム解除指令に基づき、前記解除対象装置へ、前記特定ファームウェアを前記組込ファームウェアへ戻すべき旨の解除情報を、前記第1のコネクションを介して送信する解除情報送信処理と、
    を実行することを特徴とする中継サーバ。
  7. 請求項に記載の中継サーバであって、
    情報を記憶することが可能な記憶部を備え、
    前記制御部は、
    前記特定ファーム更新指令取得処理により前記特定ファーム更新指令を取得した場合に、その取得した特定ファーム更新指令に基づき、前記特定ファーム情報を前記装置情報と対応付けて前記記憶部に記憶させる記憶処理と、
    何れかの前記情報処理装置に対する所定の送信条件が成立した場合に、その情報処理装置へ、前記記憶部に記憶されている、その情報処理装置に対応した前記特定ファーム情報を、前記第1のコネクションを介してその情報処理装置へ送信する第2の特定ファーム情報送信処理と、
    を実行することを特徴とする中継サーバ。
  8. 請求項に記載の中継サーバであって、
    前記送信条件として、前記記憶処理が実行されたこと、及び前記情報処理装置から当該中継サーバへ前記第1の通信プロトコルによる通信の接続が行われたこと、のうち少なくとも1つが設定されている
    ことを特徴とする中継サーバ。
  9. 請求項又は請求項に記載の中継サーバであって、
    前記制御部は
    記特定ファーム解除指令取得処理により前記特定ファーム解除指令を取得した場合に、その取得した特定ファーム解除指令に基づき、前記記憶部に記憶されている、前記解除対象装置に対応した前記特定ファーム情報を消去する特定ファーム情報消去処理と、
    を実行することを特徴とする中継サーバ。
  10. 請求項〜請求項の何れか1項に記載の中継サーバであって、
    前記第1の通信プロトコルはXMPP over BOSH(eXtensible Messaging and Presence Protocol over Bidirectional-streams Over Synchronous HTTP )である
    ことを特徴とする中継サーバ。
  11. 請求項〜請求項10の何れか1項に記載の中継サーバであって、
    前記第2の通信プロトコルはHTTP(Hypertext Transfer Protocol )である
    ことを特徴とする中継サーバ。
  12. 特定サーバ及び少なくとも1つの情報処理装置とネットワークを介して通信可能な中継サーバにおいて用いられる情報中継方法であって、
    前記情報処理装置からの要求に応じて、前記中継サーバからサーバプッシュを可能とするセッションを張るための第1の通信プロトコルに従ったセッションの確立に応じて、前記情報処理装置との間で第1のコネクションを確立させる第1確立ステップと、
    前記特定サーバとの間で前記第1の通信プロトコルとは異なる第2の通信プロトコルに従った第2のコネクションを確立させる第2確立ステップと、
    前記特定サーバから、前記少なくとも1つの情報処理装置のうち所定の更新対象装置が有するファームウェアを所定の特定ファームウェアに更新させるための、その更新対象装置を示す装置情報及び前記特定ファームウェアの所在を示す特定ファーム所在情報を少なくとも含む特定ファーム更新指令を、前記第2のコネクションを介して取得する特定ファーム更新指令取得ステップと、
    前記特定ファーム更新指令取得ステップにより取得した前記特定ファーム更新指令に基づき、前記特定ファーム所在情報を少なくとも含む特定ファーム情報を、前記第1のコネクションを介して前記更新対象装置へ送信する特定ファーム情報送信ステップと、
    前記特定サーバから、前記少なくとも1つの情報処理装置のうち所定の解除対象装置が有する前記特定ファームウェアを所定の組込ファームウェアに戻すための、少なくともその解除対象装置を示す装置情報を含む特定ファーム解除指令を、前記第2のコネクションを介して取得する特定ファーム解除指令取得ステップと、
    前記特定ファーム解除指令取得ステップにより取得した前記特定ファーム解除指令に基づき、前記解除対象装置へ、前記特定ファームウェアを前記組込ファームウェアへ戻すべき旨の解除情報を、前記第1のコネクションを介して送信する解除情報送信ステップと、
    を備えることを特徴とする情報中継方法。
  13. 特定サーバ及び少なくとも1つの情報処理装置とネットワークを介して通信可能な中継サーバが有するコンピュータに実行させる情報中継プログラムであって、
    前記コンピュータに、
    前記情報処理装置からの要求に応じて、前記中継サーバからサーバプッシュを可能とするセッションを張るための第1の通信プロトコルに従ったセッションの確立に応じて、前記情報処理装置との間で第1のコネクションを確立させる第1確立処理と、
    前記特定サーバとの間で前記第1の通信プロトコルとは異なる第2の通信プロトコルに従った第2のコネクションを確立させる第2確立処理と、
    前記特定サーバから、前記少なくとも1つの情報処理装置のうち所定の更新対象装置が有するファームウェアを所定の特定ファームウェアに更新させるための、その更新対象装置を示す装置情報及び前記特定ファームウェアの所在を示す特定ファーム所在情報を少なくとも含む特定ファーム更新指令を、前記第2のコネクションを介して取得する特定ファーム更新指令取得処理と、
    前記特定ファーム更新指令取得処理により取得した前記特定ファーム更新指令に基づき、前記特定ファーム所在情報を少なくとも含む特定ファーム情報を、前記第1のコネクションを介して前記更新対象装置へ送信する特定ファーム情報送信処理と、
    前記特定サーバから、前記少なくとも1つの情報処理装置のうち所定の解除対象装置が有する前記特定ファームウェアを所定の組込ファームウェアに戻すための、少なくともその解除対象装置を示す装置情報を含む特定ファーム解除指令を、前記第2のコネクションを介して取得する特定ファーム解除指令取得処理と、
    前記特定ファーム解除指令取得処理により取得した前記特定ファーム解除指令に基づき、前記解除対象装置へ、前記特定ファームウェアを前記組込ファームウェアへ戻すべき旨の解除情報を、前記第1のコネクションを介して送信する解除情報送信処理と、
    を実行させることを特徴とする情報中継プログラム。
  14. 特定サーバ及び少なくとも1つの情報処理装置とネットワークを介して通信可能な中継サーバが有するコンピュータに実行させる情報中継プログラムであって、
    前記コンピュータに、
    前記情報処理装置からの要求に応じて、前記中継サーバからサーバプッシュを可能とするセッションを張るための第1の通信プロトコルに従ったセッションの確立に応じて、前記情報処理装置との間で第1のコネクションを確立させる第1確立処理と、
    前記特定サーバとの間で前記第1の通信プロトコルとは異なる第2の通信プロトコルに従った第2のコネクションを確立させる第2確立処理と、
    前記特定サーバから、前記少なくとも1つの情報処理装置のうち所定の更新対象装置が有するファームウェアを所定の特定ファームウェアに更新させるための、その更新対象装置を示す装置情報及び前記特定ファームウェアの所在を示す特定ファーム所在情報を少なくとも含む特定ファーム更新指令を、前記第2のコネクションを介して取得する特定ファーム更新指令取得処理と、
    前記特定ファーム更新指令取得処理により取得した前記特定ファーム更新指令に基づき、前記特定ファーム所在情報を少なくとも含む特定ファーム情報を、前記第1のコネクションを介して前記更新対象装置へ送信する第1の特定ファーム情報送信処理と、
    前記特定ファーム更新指令取得処理により前記特定ファーム更新指令を取得した場合に、その取得した特定ファーム更新指令に基づき、前記特定ファーム情報を前記装置情報と対応付けて記憶部に記憶させる記憶処理と、
    何れかの前記情報処理装置に対する所定の送信条件が成立した場合に、その情報処理装置へ、前記記憶部に記憶されている、その情報処理装置に対応した前記特定ファーム情報を、前記第1のコネクションを介してその情報処理装置へ送信する第2の特定ファーム情報送信処理と、
    前記特定サーバから、前記少なくとも1つの情報処理装置のうち所定の解除対象装置が有する前記特定ファームウェアを所定の組込ファームウェアに戻すための、少なくともその解除対象装置を示す装置情報を含む特定ファーム解除指令を、前記第2のコネクションを介して取得する特定ファーム解除指令取得処理と、
    前記特定ファーム解除指令取得処理により前記特定ファーム解除指令を取得した場合に、その取得した特定ファーム解除指令に基づき、前記記憶部に記憶されている、前記解除対象装置に対応した前記特定ファーム情報を消去する特定ファーム情報消去処理と、
    を実行させることを特徴とする情報中継プログラム。
  15. 特定サーバ及び少なくとも1つの情報処理装置とネットワークを介して通信可能な中継サーバと、
    前記中継サーバ及びファームウェア提供サーバと前記ネットワークを介して通信可能な前記少なくとも1つの情報処理装置と、
    を備えた通信システムであって、
    前記中継サーバは、
    前記情報処理装置からの要求に応じて、前記中継サーバからサーバプッシュを可能とするセッションを張るための第1の通信プロトコルに従ったセッションの確立に応じて、前記情報処理装置との間で第1のコネクションを確立させる第1確立処理と、
    前記特定サーバとの間で前記第1の通信プロトコルとは異なる第2の通信プロトコルに従った第2のコネクションを確立させる第2確立処理と、
    前記特定サーバから、前記少なくとも1つの情報処理装置のうち所定の更新対象装置が有するファームウェアを所定の特定ファームウェアに更新させるための、その更新対象装置を示す装置情報及び前記特定ファームウェアの所在を示す特定ファーム所在情報を少なくとも含む特定ファーム更新指令を、前記第2のコネクションを介して取得する特定ファーム更新指令取得処理と、
    前記特定ファーム更新指令取得処理により取得した前記特定ファーム更新指令に基づき、前記特定ファーム所在情報を少なくとも含む特定ファーム情報を、前記第1のコネクションを介して前記更新対象装置へ送信する特定ファーム情報送信処理と、
    を実行し、
    前記情報処理装置は、
    情報を記憶することが可能な第1の記憶部と、
    当該情報処理装置が有するファームウェアに対応した所定の組込ファームウェアの所在を示す組込ファーム所在情報が予め記憶された第2の記憶部と、
    を有し、
    前記第1のコネクションを前記中継サーバとの間で確立させるコネクション確立処理と、
    前記中継サーバから当該情報処理装置宛に送信された前記特定ファーム情報を前記第1のコネクションを介して取得する特定ファーム情報取得処理と、
    前記特定ファーム情報取得処理により前記特定ファーム情報を取得した場合にその取得した特定ファーム情報を前記第1の記憶部に記憶させる記憶処理と、
    前記ファームウェアの更新要求を受け付ける更新要求受付処理と、
    前記更新要求受付処理により前記更新要求が受け付けられた場合に、前記第1の記憶部に記憶されている前記特定ファーム情報に含まれている前記特定ファーム所在情報に基づき、その特定ファーム所在情報が示す前記ファームウェア提供サーバから前記特定ファームウェアを取得する特定ファームウェア取得処理と、
    当該情報処理装置が有する、前記特定ファームウェア取得処理により取得した前記特定ファームウェアに対応する前記ファームウェアを、その取得した特定ファームウェアに更新する特定ファームウェア更新処理と、
    前記更新要求受付処理により前記更新要求が受け付けられた場合に、その更新要求対象のファームウェアに対応した前記特定ファーム情報が前記第1の記憶部に記憶されているか否か判断する特定ファーム情報有無判断処理と、
    前記特定ファーム情報有無判断処理により前記特定ファーム情報が前記第1の記憶部に記憶されていると判断されなかった場合に、前記第2の記憶部に記憶されている前記更新要求対象のファームウェアに対応した前記組込ファーム所在情報が示す前記ファームウェア提供サーバから、前記組込ファームウェアを取得する第1の組込ファームウェア取得処理と、
    前記更新要求対象のファームウェアを前記第1の組込ファームウェア取得処理により取得した前記組込ファームウェアに更新する第1の組込ファームウェア更新処理と、
    を実行することを特徴とする通信システム。
JP2013054087A 2013-03-15 2013-03-15 情報処理装置、中継サーバ、情報中継方法、情報中継プログラム及び通信システム Active JP5939180B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2013054087A JP5939180B2 (ja) 2013-03-15 2013-03-15 情報処理装置、中継サーバ、情報中継方法、情報中継プログラム及び通信システム
US14/211,145 US9146731B2 (en) 2013-03-15 2014-03-14 Information processing apparatus, relay server, information relay method, non-transitory computer-readable medium storing information relay program, and communication system
EP14160057.7A EP2778912B1 (en) 2013-03-15 2014-03-14 Information processing apparatus, relay server, information relay method, information relay program, and communication system
CN201410098138.XA CN104052735B (zh) 2013-03-15 2014-03-17 信息处理装置、中继服务器、信息中继方法、控制方法和通信系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013054087A JP5939180B2 (ja) 2013-03-15 2013-03-15 情報処理装置、中継サーバ、情報中継方法、情報中継プログラム及び通信システム

Publications (2)

Publication Number Publication Date
JP2014179021A JP2014179021A (ja) 2014-09-25
JP5939180B2 true JP5939180B2 (ja) 2016-06-22

Family

ID=50389225

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013054087A Active JP5939180B2 (ja) 2013-03-15 2013-03-15 情報処理装置、中継サーバ、情報中継方法、情報中継プログラム及び通信システム

Country Status (4)

Country Link
US (1) US9146731B2 (ja)
EP (1) EP2778912B1 (ja)
JP (1) JP5939180B2 (ja)
CN (1) CN104052735B (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101992680B1 (ko) * 2013-02-05 2019-06-25 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 화상형성장치, 추적장치, 관리장치 및 화상형성장치의 펌웨어 업데이트 방법
JP5870990B2 (ja) * 2013-12-04 2016-03-01 コニカミノルタ株式会社 中継装置、画像形成装置、中継方法および中継プログラム
JP6314893B2 (ja) * 2015-03-31 2018-04-25 コニカミノルタ株式会社 画像処理システム、画像処理装置、配信サーバー、管理サーバー、および、プログラム
JP6433844B2 (ja) * 2015-04-09 2018-12-05 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置、中継装置、情報処理システム、およびソフトウェアアップデート方法
JP6570901B2 (ja) * 2015-07-01 2019-09-04 株式会社Nttファシリティーズ 機器情報管理システム、機器情報管理システムの制御方法及びプログラム
US11457123B2 (en) * 2015-07-16 2022-09-27 Thinxtream Technologies PTE LID Universal secure imaging workflow comprising, based on print commands or print instruction received from a user wireless device, storing a print job in a server via a first module comprising upgradeable capability schema with custom commands for printer model numbers, wherein the upgradeable capability schema is based on a supplier model, a gateway IP address and domain name
US10546112B2 (en) 2015-08-17 2020-01-28 Ricoh Company, Ltd. Apparatus, authentication process method, and computer program product
JP6747223B2 (ja) * 2016-09-29 2020-08-26 セイコーエプソン株式会社 サーバー、及び、サーバーの制御方法
US10904069B2 (en) * 2016-11-29 2021-01-26 Brother Kogyo Kabushiki Kaisha Communication apparatus executing specific process related to security
JP2018170568A (ja) * 2017-03-29 2018-11-01 ブラザー工業株式会社 画像処理装置、制御プログラム、および通信システム
JP6963212B2 (ja) * 2017-09-28 2021-11-05 京セラドキュメントソリューションズ株式会社 管理システム、画像形成装置および画像形成装置用プログラム
JP7095256B2 (ja) * 2017-10-30 2022-07-05 セイコーエプソン株式会社 プリンター、及び、プリンターの制御方法
JP7059612B2 (ja) * 2017-12-14 2022-04-26 コニカミノルタ株式会社 画像形成装置、システム、方法およびプログラム
JP7005447B2 (ja) * 2018-07-18 2022-01-21 株式会社東芝 サーバ装置、方法及びプログラム
JP7190837B2 (ja) * 2018-07-31 2022-12-16 キヤノン株式会社 中継装置、制御方法、及び、プログラム
CN109213506A (zh) * 2018-08-24 2019-01-15 郑州云海信息技术有限公司 一种固件信息获取方法及相关装置
JP7281071B2 (ja) * 2019-02-15 2023-05-25 京セラドキュメントソリューションズ株式会社 電子機器、その制御方法及び制御プログラム
JP2021064311A (ja) * 2019-10-17 2021-04-22 富士ゼロックス株式会社 情報処理装置およびプログラム
CN114765604B (zh) * 2020-12-30 2024-03-01 技钢科技股份有限公司 通过http/https的服务器固件的数据传输方法及装置
JP7231874B2 (ja) * 2021-05-06 2023-03-02 ダイキン工業株式会社 サーバ、通信システム、及び通信方法
CN114116006A (zh) * 2021-11-30 2022-03-01 星宸科技股份有限公司 用于控制电子装置的方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2333864B (en) 1998-01-28 2003-05-07 Ibm Distribution of software updates via a computer network
US6202207B1 (en) 1998-01-28 2001-03-13 International Business Machines Corporation Method and a mechanism for synchronized updating of interoperating software
JP2001222500A (ja) * 1999-12-01 2001-08-17 Sharp Corp ネットワークゲートウェイにおけるプログラムの配布方法
JP4408033B2 (ja) * 2002-09-24 2010-02-03 株式会社リコー 遠隔管理システム
JP3906994B2 (ja) * 2003-05-07 2007-04-18 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
GB0600348D0 (en) * 2006-01-10 2006-02-15 Ibm Updating of data processing and communication devices
US20070245333A1 (en) * 2006-03-27 2007-10-18 Ferlitsch Andrew R Methods and Systems for Managing Firmware
US20090265723A1 (en) * 2006-08-31 2009-10-22 Hisayasu Mochizuki Electronic device and control method of the same
JP5089250B2 (ja) 2007-06-06 2012-12-05 株式会社リコー 情報処理装置
EP2450797A4 (en) * 2009-06-08 2013-03-13 Sharp Kk SOFTWARE UPGRADE SYSTEM, DISPLAY UNIT AND SOFTWARE UPGRADING PROCEDURE
EP2755131B1 (en) * 2009-12-22 2020-09-02 DISH Technologies L.L.C. A method and system for changing software or firmware on an electronic device
JP2011170793A (ja) * 2010-02-22 2011-09-01 Ricoh Co Ltd 情報処理装置
CN102906730A (zh) * 2010-05-28 2013-01-30 无极公司 用于被管理装置的共享心搏服务
CN103098108B (zh) * 2010-11-25 2017-09-08 松下电器(美国)知识产权公司 通信设备
US9172766B2 (en) * 2011-01-10 2015-10-27 Fiberlink Communications Corporation System and method for extending cloud services into the customer premise
JP5685971B2 (ja) * 2011-02-15 2015-03-18 セイコーエプソン株式会社 プログラム更新管理サーバーおよびプログラム更新管理方法
JP5748544B2 (ja) * 2011-04-25 2015-07-15 キヤノン株式会社 画像形成装置、及びその制御方法、並びにプログラム
JP5310824B2 (ja) * 2011-11-10 2013-10-09 株式会社リコー 伝送管理装置、プログラム、伝送管理システムおよび伝送管理方法
US20130139139A1 (en) * 2011-11-28 2013-05-30 Wyse Technology Inc. Automatic updating of an application or a driver on a client device using a deployment configuration file
JP5812840B2 (ja) * 2011-12-13 2015-11-17 キヤノン株式会社 画像形成装置、ネットワークシステム及び画像形成装置の制御方法
JP5825123B2 (ja) * 2012-02-01 2015-12-02 富士通株式会社 制御装置、制御システムおよび制御方法
WO2014100754A1 (en) * 2012-12-20 2014-06-26 Robert Hunter Methods and systems for a power firewall

Also Published As

Publication number Publication date
US20140282481A1 (en) 2014-09-18
US9146731B2 (en) 2015-09-29
CN104052735A (zh) 2014-09-17
EP2778912B1 (en) 2016-04-27
CN104052735B (zh) 2018-05-11
JP2014179021A (ja) 2014-09-25
EP2778912A1 (en) 2014-09-17

Similar Documents

Publication Publication Date Title
JP5939180B2 (ja) 情報処理装置、中継サーバ、情報中継方法、情報中継プログラム及び通信システム
JP6107261B2 (ja) 中継装置、画像処理装置および通信システム
US10866776B2 (en) Pull printing method and system using cloud server
JP6300511B2 (ja) システムおよび実行指示方法
JP4196969B2 (ja) 画像処理装置、画像処理装置におけるソフトウェアの更新方法、およびソフトウェア更新プログラム
JP2006260354A (ja) 画像形成システム、画像形成装置、端末装置及び端末装置のドライバの更新方法
US20120311452A1 (en) Server apparatus that makes it possible to effectively utilize driver function, information processing apparatus, method of controlling the apparatuses, and storage medium
US9225585B2 (en) Method and system for device management, and server
JP2016062232A (ja) 情報処理システム、情報処理装置、プログラム及び情報処理方法
JP5310445B2 (ja) 制御装置及びコンピュータプログラム
JP2009230400A (ja) 印刷システムおよびソフトウェア導入装置およびソフトウェア導入プログラム
US20120307280A1 (en) Image processing system that transfers image data to server apparatus, information processing apparatus, method of controlling the information processing apparatus, and storage medium
US10838704B2 (en) Application program setup method and download server
JP6142594B2 (ja) 中継装置、中継方法、中継プログラム及び中継システム
US9160878B2 (en) Server apparatus that enables easy use of image input apparatus, information processing apparatus, methods of controlling the apparatuses, control program, and storage medium
JP6669992B2 (ja) 画像読取装置、画像読取方法及び画像形成プログラム
JP6090187B2 (ja) 電子機器およびプログラム
JP6265257B2 (ja) 中継装置、画像処理装置および通信システム
US9009244B2 (en) Image forming apparatus, and control method thereof
JP2010198059A (ja) 設定支援システム
JP2021111846A (ja) 端末管理処理プログラム、端末管理装置及び端末管理システム
JP7031227B2 (ja) コンテンツ接続システム、情報処理装置及びプログラム
US20210099993A1 (en) Computer-readable medium, relay device, terminal management device, and system for managing terminal device not directly communicable with terminal management device
JP6939154B2 (ja) 機器設定装置、機器設定システム、機器設定方法、及びプログラム
JP6711263B2 (ja) 画像読取装置、画像読取方法及び画像形成プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150323

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151216

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160318

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160502

R150 Certificate of patent or registration of utility model

Ref document number: 5939180

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150