(57)【要約】【課題】  同じアップデートデータを適用できない異なる系統の電子器装置が混在する場合でも、少ない通信量でアップデートデータ再利用する技術を提供する。【解決手段】  ホストは、サーバから、管理の対象の電子機器の種類、アップデートデータを特定する特定情報、並びに、当該アップデートデータのバージョン情報で構成される管理情報を取得する。そして、アップデート対象の電子機器のそれぞれから、電子機器の種類と現在のバージョンを表す機器情報を取得する。そして、電子機器それぞれの種類の最新のバージョンのアップデートデータを、管理情報を参照してサーバに要求し、ダウンロードする。そしれ、電子機器それぞれに対し、該当する種類のアップデートデータを送信して、アップデート要求する。【選択図】  図５
2015121887.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つの電子機器、並びに、前記電子機器のアップデートデータを提供するサーバと通信可能な情報処理装置であって、
前記サーバから、当該サーバに記憶されているアップデートデータを特定する特定情報、当該アップデートデータに対応する電子機器の種類、並びに、当該アップデートデータのバージョン情報を含む管理情報を取得する第１の取得手段と、
前記情報処理装置が複数の電子機器と通信可能である場合に、当該複数の電子機器のそれぞれから、電子機器の種類と、現在当該電子機器にインストールされているプログラムのバージョンを表す機器情報を取得する第２の取得手段と、
前記第１の取得手段により取得された管理情報と、前記第２の取得手段により取得された機器情報に基づき、前記複数の電子機器から、現在インストールされている前記プログラムを更新するためのアップデートデータが前記サーバに記憶されている電子機器を選択する選択手段と、
前記選択手段により選択された前記電子機器に対応する前記アップデートデータを前記サーバからダウンロードするダウンロード手段と、
前記電子機器それぞれに対し、該当する種類のアップデートデータを送信して、アップデート要求する送信手段と
を有することを特徴とする情報処理装置。
【請求項２】
前記第１の取得手段で取得した前記管理情報、及び、前記第２の取得手段で取得した機器情報に基づき、前記複数の種類の電子機器それぞれに対応する現在のバージョン、更新後のバージョンの一覧を表示装置に表示させる表示制御手段を有し、
前記選択手段は、前記表示制御手段により表示された一覧中のアップデート対象の電子機器をユーザによる指示に応じて選択し、
前記送信手段は、前記選択手段で選択した電子機器に対してアップデートデータを送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ダウンロード手段は、前記選択手段で選択した電子機器に対応するアップデートデータをダウンロードし、前記送信手段は、当該ダウンロードされたアップデートデータを送信することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ダウンロード手段は、前記選択手段により選択された電子機器に対応するアップデートプログラムが既に前記情報処理装置に記憶されている場合、当該アップデートデータのダウンロードを行わず、前記送信手段は、当該既に記憶されているアップデートを当該電子機器に送信することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
前記送信手段による送信の結果、対象となる電子機器におけるアップデートが成功したか否かを判定する判定手段と、
該判定手段の判定の結果が失敗を示す場合、該当する種類のアップデートデータを前記サーバから再度ダウンロードする第２のダウンロード手段とを更に有し、
前記送信手段は、前記第２のダウンロード手段でダウンロードしたアップデートデータを再送信することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記電子機器は、画像を印刷するプリンタであることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記プログラムは、前記電子機器において、当該電子機器を制御するためのファームウェアであることを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記情報処理装置は、前記プログラムのアップデートの候補である電子機器とは異なる装置であることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
少なくとも１つの電子機器、並びに、前記電子機器のアップデートデータを提供するサーバと通信可能な情報処理装置の制御方法であって、
第１の取得手段が、前記サーバから、当該サーバに記憶されているアップデートデータを特定する特定情報、当該アップデートデータに対応する電子機器の種類、並びに、当該アップデートデータのバージョン情報を含む管理情報を取得する第１の取得工程と、
第２の取得手段が、前記情報処理装置が複数の電子機器と通信可能である場合に、当該複数の電子機器のそれぞれから、電子機器の種類と、現在当該電子機器にインストールされているプログラムのバージョンを表す機器情報を取得する第２の取得工程と、
選択手段が、前記第１の取得工程により取得された管理情報と、前記第２の取得工程により取得された機器情報に基づき、前記複数の電子機器から、現在インストールされている前記プログラムを更新するためのアップデートデータが前記サーバに記憶されている電子機器を選択する選択工程と、
ダウンロード手段が、前記選択工程により選択された前記電子機器に対応する前記アップデートデータを前記サーバからダウンロードするダウンロード工程と、
送信手段が、前記電子機器それぞれに対し、該当する種類のアップデートデータを送信して、アップデート要求する送信工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項１０】
コンピュータに読み込ませ実行させることで、前記コンピュータを、請求項１乃至８のいずれか１項の各手段として機能させるための、または請求項９に記載の制御方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器にインストールされているプログラムをアップデートするための技術に関する。
【背景技術】
【０００２】
装置のファームウェアやデータをアップデート（更新）するアップデートシステムでは、アップデートデータを再利用して複数の装置をアップデートする技術があった。特許文献１では、オペレータからの指示に基づいて複数の装置の中の１台がアップデートデータをダウンロードし、その装置がホストとなって他の装置のファームウェアのバージョン確認やアップデートデータの転送を行うことが記載されている。。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１９３５０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のアップデートシステムでは、同じアップデートデータを適用できない異なる系統の装置が混在する環境で、全ての装置をアップデートする場合に、以下の課題があった。
【０００５】
例えば、系統Ａと系統Ｂの装置が複数ある環境で、全ての装置をアップデートする際、系統Ａでホストとなる装置は、系統Ａのアップデートデータをダウンロードする。そして、再利用できない系統Ｂの装置を含む全ての装置に対して通信を行っていた。なお、系統Ａでホストとなる装置とは、系統Ａ用アップデートデータを最初に受け取る装置である。また、上記通信はアップデートデータ再利用のためファームウェアのバージョン確認等を行うためのものである。同様に系統Ｂでホストとなる装置も、他の装置全てに対して通信を行っていた。そのため、系統が異なり、ダウンロードされたファームウェアがバージョンに関わらず適用できない装置についても上記通信を行うため、ネットワークに負荷を与えるという問題を抱えていることになる。
【０００６】
本発明は上記問題に鑑みてなされたものである。即ち、異なる種類の電子機器が混在する場合でも、少ない通信量でアップデートデータをダウンロードすることができる情報処理装置、情報処理方法、およびプログラムを提供する。
【課題を解決するための手段】
【０００７】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
少なくとも１つの電子機器、並びに、前記電子機器のアップデートデータを提供するサーバと通信可能な情報処理装置であって、
前記サーバから、当該サーバに記憶されているアップデートデータを特定する特定情報、当該アップデートデータに対応する電子機器の種類、並びに、当該アップデートデータのバージョン情報を含む管理情報を取得する第１の取得手段と、
前記情報処理装置が複数の電子機器と通信可能である場合に、当該複数の電子機器のそれぞれから、電子機器の種類と、現在当該電子機器にインストールされているプログラムのバージョンを表す機器情報を取得する第２の取得手段と、
前記第１の取得手段により取得された管理情報と、前記第２の取得手段により取得された機器情報に基づき、前記複数の電子機器から、現在インストールされている前記プログラムを更新するためのアップデートデータが前記サーバに記憶されている電子機器を選択する選択手段と、
前記選択手段により選択された前記電子機器に対応する前記アップデートデータを前記サーバからダウンロードするダウンロード手段と、
前記電子機器それぞれに対し、該当する種類のアップデートデータを送信して、アップデート要求する送信手段とを有する。
【発明の効果】
【０００８】
本発明によれば、複数の電子機器から、現在インストールされている前記プログラムを更新するためのアップデートデータが前記サーバに記憶されている電子機器が選択される。そして、その選択された電子機器に対応するアップデートデータがダウンロードされる。そのため、異なる種類の電子機器が混在する場合でも、少ない通信量でアップデートデータをダウンロードすることができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態におけるシステムのハードウェア構成を示すブロック図。
【図２】実施形態におけるシステムの機能の構成を示すブロック図。
【図３】実施形態における管理情報の構成を示す図。
【図４】実施形態における管理情報をXMLで作成した例を示す図。
【図５】実施形態における各機能を実行するプログラムの処理フローを示す図。
【図６】実施形態における、プリンタ一覧画面の例を示す図。
【図７】実施形態における、アップデート確認のメッセージの例を示す図。
【図８】本実施の形態における、各機能を実行するプログラムの処理フローを示す。
【発明を実施するための形態】
【００１０】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１１】
［第１の実施形態］
図１は実施形態におけるネットワークにおけるアップデートシステムを示している。ここでは、アップデートシステムは、サーバ1、ホストコンピュータ（以下、ホスト）2と、複数台のプリンタ3とから構成される例を示している。実施形態でのアップデート対象の電子機器（電子装置）は、プリンタ3とし、そのプリンタ3のファームウェアをアップデートデータとして扱う例を説明する。また、ホスト2は、パーソナルコンピュータなどの情報処理装置であるものとして説明する。また、アップデートデータは、ファームウェアに限定されるわけではなく、ファームウェアで利用される画像やＵＩリソースなどのコンテンツデータであってもよい。またサーバ1を１台とする例を示すが、複数のサーバで構成されてもよい。
【００１２】
図１に示されているように、サーバ1とホスト2とプリンタ3とは所定の双方向通信可能な通信網（TCP/IPプロトコルを利用するネットワークインターフェース）を介して互いに接続される。なお、ホスト2はパーソナルコンピュータ（PC）などが代表的な例である。また、機器間の通信は、有線、無線を問わないし、それらが混在しても構わない。
【００１３】
サーバ1はアップデートデータを提供する装置であって、CPU126などを含むメインボード134とキーボード135とLCDなどのディスプレイ136とハードディスク（HDD）などの記憶装置137とを有する。メインボード134はさらに、RAM127、ROM128、キーボードコントローラ（KBC）131、ディスプレイコントローラ（DISPC）132、ディスクコントローラ（DKC）133、インタフェースコントローラ（I/F C）129を有する。
【００１４】
CPU126は、システムバス130に接続される上記各構成要素を総括的に制御し、各種プログラムを実行する。キーボードコントローラ（KBC）131は、キーボード135やポインティングデバイス（不図示）からの入力を制御する。キーボードコントローラ131を操作部または入力部とも呼ぶ。ディスプレイコントローラ（DISPC）132は、ディスプレイ136の表示を制御する。RAM127は、CPU126のメインメモリあるいはワークエリアとして機能する。ROM128は、ブートプログラム等を記憶する。
【００１５】
ディスクコントローラ（DKC）133は、ハードディスク等の記憶装置137とのアクセスを制御する。記憶装置137は、この実施形態に従うアップデートデータやアップデートデータの管理情報、オペレーティングシステム等を記憶する。
【００１６】
インタフェースコントローラ（I/F C）129は、通信網4を介してホスト2に接続され、ホスト2とのデータの通信処理を制御する。
【００１７】
サーバ1は、ホスト2と通信できる場所であれば、ネットワーク上のどこに配置してもよい。またサーバ1は常時稼働して運用するものとする。
【００１８】
ホスト2は、CPU101などを含むメインボード109とキーボード110とLCDなどのディスプレイ111とハードディスク（HDD）などの記憶装置112とを有する。メインボード109はさらに、RAM102、ROM103、キーボードコントローラ（KBC）106、ディスプレイコントローラ（DISPC）107、ディスクコントローラ（DKC）108、インタフェースコントローラ（I/F C）104を有する。
【００１９】
CPU101は、システムバス105に接続される上記各構成要素を総括的に制御し、各種プログラムを実行する。キーボードコントローラ（KBC）106は、キーボード110やポインティングデバイス（不図示）からの入力を制御する。キーボードコントローラ110を操作部または入力部とも呼ぶ。ディスプレイコントローラ（DISPC）107は、ディスプレイ111の表示を制御する。RAM102は、CPU101のメインメモリあるいはワークエリアとして機能する。ROM103は、ブートプログラム等を記憶する。
【００２０】
ディスクコントローラ（DKC）108は、ハードディスク等の記憶装置112とのアクセスを制御する。記憶装置112は、本実施形態に従う各機能を実行するアップデートプログラム、オペレーティングシステム、各種のアプリケーション等を記憶する。
【００２１】
インタフェースコントローラ（I/F C）104は、通信網4を介してプリンタ3に接続され、プリンタ3とのデータ及びコマンドの通信処理を制御する。
【００２２】
アップデート対象となるプリンタ3は、コントローラ121とプリンタエンジン125と操作パネル124と不揮発性記憶装置138とを有し、通信網4を介して、ホスト2と接続されている。不揮発性記憶装置138は、ハードディスク（HDD）122またはEEPROM123を含む。不揮発性記憶装置を不揮発性メモリと呼ぶこともある。
【００２３】
コントローラ121は、CPU114、ROM115、RAM116、インタフェースコントローラ（I/F C）113、ディスクコントローラ（DKC）118、パネルインタフェース（I/F P）119、エンジンインタフェース（I/F E）120を含む。
【００２４】
CPU114はシステムバス117に接続される上記各構成要素を総括的に制御し、各種プログラムを実行する。ROM115は、ホスト2から印刷用画像データとコマンドを受信し、プリンタエンジン125を制御して最適な印刷を実現させるプログラムや各種データを記憶する。RAM116は、各種データや各種プログラムを一時的に記憶するワークエリアとして用いられる。
【００２５】
インタフェースコントローラ（I/F C）113は、通信網4を介してホスト2に接続され、ホスト2とのデータとコマンドの通信処理を制御する。ハードディスク（HDD）122は、ホスト2からのデータ及びそのデータに関する付属情報など大容量のデータを記憶する。EEPROM123は、記録動作時に使用する記録装置独自の情報などを記憶する。ディスクコントローラ（DKC）118は、不揮発性記憶装置138とのアクセスを制御する。パネルインタフェース（I/F  P）119は、操作パネル124への表示や操作パネル124からの入力を制御する。エンジンインタフェース（I/F E）120は、ハードウェアを直接制御して最適な記録を実現させるプリンタエンジン125を制御する。
【００２６】
プリンタエンジン125はインクジェット記録方法を用いたプリンタエンジンや、電子写真方式に従うプリンタエンジンなどを用いることができる。
【００２７】
図２は、本実施形態のアップデートシステムの機能の構成を示したブロック図である。図２に示す各ブロックに対応するプログラムモジュールが、ホストコンピュータ２、プリンタ３、サーバ４のそれぞれのＲＯＭに格納されており、それぞれのＣＰＵがそのプログラムモジュールを実行することで、各ブロックの機能が実現される。図２を図１の構成要素を用いて説明する。なお、サーバ1、ホストコンピュータ2、プリンタ3は、通信網4を介して互いに双方向通信可能な点は図１と同じ説明となるので省略する。
【００２８】
まずサーバ1の機能について説明する。アップデートデータ格納部208は、プリンタ3に対応するアップデートデータをサーバ1の記憶装置137で格納する部である。アップデートデータはプリンタ3の機種（種類）に応じて作成されるため、複数個のアップデートデータがアップデートデータ格納部208に格納され得る。アップデートの入手源は、管理者が、サーバ1のアップデートデータ格納部208にネットワークを介して格納する、もしくは、それを記憶した記憶媒体をサーバ1にセットし、アップデートデータ格納部208に転送するものとする。サーバ1がプリンタ3のメーカからダウンロードして、アップデートデータ格納部208に格納しても良い。
【００２９】
管理情報格納部209は、アップデートデータ格納部208に格納されたアップデートデータの管理情報をサーバ1の記憶部137で格納する。アップデートデータの管理情報は、図３のような構成になっており、管理情報としてアップデートデータを特定するための特定情報（実施形態ではファイル名）、バージョン情報、対応機種情報、ダウンロードURL情報等が記載されている。図４に、管理情報をXMLで作成した例を示す。ただし、管理情報のフォーマットは、XMLに限定されるものではなく、アップデートプログラム201が読み取れればどのようなフォーマットでもかまわない。管理情報はアップデート格納部208にあるアップデートデータの情報を格納するものであり、バージョンアップなどでアップデートデータに変化が生じた場合は、それに合わせて情報の更新が行われる。情報の更新は、アップデートデータを管理する管理者が行う運用でよい。また、アップデートデータのファイル名は、アップデートデータの対応機種やバージョンごとに異なる名称を付ける。
【００３０】
データ送信部210は、アップデートデータやアップデートデータの管理情報を通信網4を介してホスト2に送信する部である。このデータ送信は、ホスト2のアップデートプログラム201のダウンロード要求に応じて行う。
【００３１】
次にホスト2の機能について説明する。アップデートプログラム201は、ホスト1で実行されるプログラムで、プリンタ3のアップデートのための各種機能を実行する。本プログラムは、ホスト1の記憶装置112に格納されており、オペレータの指示により実行される。以下にアップデートプログラムで実行される機能を説明する。
【００３２】
管理情報取得部202は、サーバ1からアップデートデータの管理情報をホスト1にダウンロードする。ダウンロードした管理情報は、ホスト1のRAM102または記憶装置112に格納する。機器情報取得部203は、アップデート対象のプリンタ3を検索して機器情報を取得する。なお、この機器情報には、プリンタの機種名等のプリンタの機種を特定するための情報と、現在プリンタにインストールされているファームウェアのバージョン情報が含まれる。取得した機器情報は、ホスト1のRAM102に格納する。アップデートデータ情報取得部204は、機器情報（機種名等）に基づいて、図４に示したような管理情報からアップデート対象のプリンタに対応したアップデートデータの有無を確認し、また最新のアップデートデータ情報を取得する。
【００３３】
アップデートデータ取得部205は、当該プリンタに対応するアップデートデータが有る場合、アップデートデータ情報取得部204で取得した情報をもとに、対象のアップデートデータをサーバ1からダウンロードする。アップデートデータ保持部207は、サーバ1からダウンロードしたアップデートデータをホスト1の記憶装置112で格納する。
【００３４】
また、アップデートデータ送信部206は、アップデートデータ保持部207が保持するアップデートデータを、該当するプリンタ3に送信する部である。メッセージ表示部213は、ホスト2のディスプレイ111にオペレータへのメッセージを表示する。アップデートデータ成否検知部214は、プリンタ3でのアップデートデートが成功したか失敗したかを検知する。
【００３５】
次にプリンタ3の機能について説明する。アップデートデータ受信部は211は、ホスト1から送信されたアップデートデータを受信する。受信したアップデートは、プリンタ3のRAM116またはHDD122に格納される。アップデート実行部212は、受信したアップデートデータをもとにプリンタ3のアップデートを実行する部である。具体的には、受信したアップデートデータをROM115にある古いデータに上書きすることで、アップデートを実行する。
【００３６】
図５は、本実施形態におけるホスト1（CPU101）が記憶装置112に格納されたアップデートプログラム201を実行した際の処理フローである。以下、図１や図２の構成要素を用いながら説明する。なお、図５に示す処理に対応するプログラムがホスト１のＲＯＭに記憶されている。そして、ホスト１のＣＰＵがそのプログラムを実行することで、図２に示した各ブロックの機能として動作し、図５に示す処理が実現される。
【００３７】
アップデートプログラムが実行されると、始めに、管理情報取得部201がサーバ1に対して管理情報を要求し、それをホスト2がダウンロードする(501)。
【００３８】
次に、機器情報取得部203が通信網4上のプリンタ3を検索し、それぞれの機器情報を取得する(502)。具体的には、プリンタ検索用パケットをネットワークにブロードキャストし、検索パケットに応答したプリンタから機種名や現在インストールされているファームウェアのバージョン等を取得する。また、ホスト2のシステムに登録されているプリンタやローカル接続されているプリンタから機器情報を取得してもよい。
【００３９】
次に、アップデートプログラム201は、検索で見つかったプリンタの一覧を、ホスト1のディスプレイ111に表示する(503)。本実施形態においては、アップデートデータの管理情報に記載された機種のプリンタのみを表示する。即ち、通信網４上のプリンタのうち、アップデートデータがサーバ１に記憶されているプリンタに絞り込まれ、その絞り込まれたプリンタが503における表示制御処理の表示対象となる。
【００４０】
上記のプリンタ一覧には、図６の画面の表示領域601のように、機種名、接続、現在のバージョン、更新後のバージョンを表示する。機種名や現在のバージョンは機器情報取得部203が502で取得した情報を表示し、接続は通信網上のプリンタの場合にはIPアドレス、ローカル接続されている場合にはそのインターフェース名（USBなど)を表示する。また更新後のバージョンは、501で取得されたアップデートデータの管理情報に記載されている最新のアップデートデータのバージョンを表示する。
【００４１】
なお、上記の一覧表示において、現バージョンと更新後バージョンが異なるプリンタとは、最新のアップデートデータがサーバ１に記憶されているが、そのデータがインストールされていないプリンタである。よって、そのようなプリンタを、現在、更新後のバージョンが同じプリンタ（最新のアップデートデータがインストールされているプリンタ）と異なる形態で表示してもよい。例えば、現バージョンと更新後バージョンが異なるプリンタを示す行を特定の色で表示する。或いは、現バージョンと更新後バージョンが異なるプリンタのみを表示するようにしてもよい。
【００４２】
次に、アップデートプログラム201は、アップデートを行うプリンタの選択を受け付ける(504)。オペレータは図６のプリンタ一覧中からアップデートを行うプリンタを、ホスト2のキーボード135やポインティングデバイスで選択し、アップデートボタン602を押下する。なお、プリンタは複数選択可能とする。アップデートを実行せずにアップデートプログラムを終了する場合は、オペレータは終了ボタン603を押下する。
【００４３】
次に、アップデートデータ情報取得部204は、501で取得あれた管理情報を参照し、選択されたプリンタに対応する最新のアップデートデータ情報を取得する(505)。本実施形態では、機器情報の機種名をもとに、管理情報からその機種に対応する最新のアップデートデータのファイル名を取得する。
【００４４】
次に、アップデートデートデータ取得部205が、選択されたプリンタに対応する最新のアップデートデータがダウンロード済みであるかを判定する(506)。本実施形態では、ステップ505で取得したファイル名と同じファイルが、ホストコンピュータ2におけるアップデートデータのダウンロード先のフォルダにあるかを判定する。
【００４５】
次に、対象のアップデートデータがダウンロード済みでない場合は、アップデートデートデータ取得部205が、サーバ1にアクセスし、対象のアップデートデータをダウンロードする(507)。対象のアップデートデータのダウンロードURLは、管理情報から取得する。またダウンロード先のフォルダは、ダウンロードごとに場所は変えず常に同じフォルダにダウンロードするようにする。
【００４６】
対象のアップデートデータがダウンロード済みの場合は、アップデートデータのダウンロードを行わない。
【００４７】
次に、アップデートデータ送信部206が選択されたプリンタに対し、対象のアップデートデータと共にアップデート要求を送信する(508)。プリンタは送信されたアップデートデータと要求を受信し、自装置のアップデートを行うことになる。
【００４８】
なお、図５の503におけるディスプレイ136への一覧表示の表示制御処理の前に、アップデートデータのダウンロードが行われてもよい。この場合、502において検索されたプリンタに対応する機種のアップデートデータがダウンロードされる。そして、504においてプリンタの選択があった場合に、そのプリンタにダウンロードされているアップデートデータを送信してもよい。
【００４９】
また、上記では、既にダウンロード済みである場合には、同じアップデートデータをダウンロードしないものとした。しかし、ダウンロード済みのアップデートデータが何らかの原因で壊れているとそのアップデートデータが対応する機種のプリンタをアップデートできなくなってしまう。そこで、メッセージ表示部213が図７のようなメッセージを表示させて、ダウンロード済みのアップデートデータを使用するか、再度ダウンロードするかをオペレータが選択できるようにしてもよい。はいボタン701を選択することでダウンロード済みのアップデートデータを再利用することができ、もしアップデートに失敗する場合はいいえボタン702を選択して再ダウンロードを試みることもできる。
【００５０】
図７のようなメッセージを表示するのではなく、再利用したアップデートデータでアップデートに失敗することをアップデート成否検知部214が検知して自動的に再ダウンロードするようにしても良い。この例を示すのが図８である。図５との異なるのは、ステップ801が追加された点である。ステップ501乃至508は図５と同じであるので、その説明は省略する。
【００５１】
アップデートデータを該当するプリンタに送信してアップデートを行わせると、ステップ801にて、アップデート成否検知部214は該当するプリンタにおけるアップデートの成否を判定する。アップデート処理には少なからず時間を要する場合があるため、アップデートに失敗したかは、アップデートプログラム201がプリンタのステータスを定期的に取得して確認する。または、プリンタのアップデート処理が終わったタイミングでプリンタから通知を受けるようにする。そして、判定結果がアップデート失敗を示す場合、該当するアップデートデータが壊れている可能性が高いので、ステップ507の処理に戻り、アップデートデータを再度ダウンロードし、ステップ508にて再送信する。
【００５２】
以上が本実施形態のアップデートプログラムの処理の流れである。このように、本実施形態によれば、ホストコンピュータがホストとなって各装置と通信する仕組みのため、アップデートデータ再利用のための通信(ファームウェアのバージョン確認等)は「装置の数」だけ行うだけでよい。これにより、少ない通信量でアップデートデータを再利用することができる。
【００５３】
また、本実施形態では、サーバに複数機種のプリンタに対応する複数のアップデートデータが記憶されている場合、サーバからホストコンピュータにダウンロードされる管理情報には、その複数のアップデートデータのバージョンや、対応する機種を示す情報が含まれる。そのため、ネットワーク上に複数機種のプリンタが存在する場合に、ファームウェアの更新が可能な複数機種のプリンタを判定することができる。
【００５４】
さらに、本実施形態のホストコンピュータは、まずファームウェア自体ではなく、ファームウェアの更新が可能か判定するための管理情報を取得する。そして、プリンタから取得した機種情報や現在のファームウェアのバージョン情報によりファームウェアの更新が可能と判定されてから、ファームウェアのダウンロードが行われる。そのため、ダウンロードしたファームウェアに対応するプリンタがネットワーク上に存在しない場合や、そのダウンロードしたファームウェアが既にプリンタに登録されていることを防ぐことができる。
【００５５】
なお、以上の実施形態では、プリンタとは異なるホストコンピュータにより、サーバからの管理情報の取得、またプリンタの機種に対応するアップデートデータの有無やバージョン情報の確認、さらにアップデートデータのダウンロードを実行していた。しかしこれに限らず、ネットワーク上の１または複数のプリンタが以上の実施形態におけるホストコンピュータの処理を実行してもよい。この場合、当該プリンタと、当該プリンタとは異なるプリンタが、アップデートデータをインストールするプリンタの候補となる。
【００５６】
さらに、以上の実施形態では、ファームウェアがインストールされる電子機器としてプリンタを例に説明したが、これに限らない。例えば、ＰＣ等のコンピュータであってもよいし、スキャナ等の装置でもよいし、或いは、スマートフォン等のタブレット機器や、携帯電話等であってもよい。
【００５７】
さらに、アップデートされるプログラムは、ファームウェアに限らず、アプリケーションプログラムや、プリンタドライバ、スキャナドライバ等の各種機器を制御するためのプログラムであってもよい。
【００５８】
また以上の実施形態におけるサーバの処理は、１つのサーバ装置により処理が実行されてもよいし、複数のサーバ装置が処理を分担することにより以上の実施形態における処理が実行されてもよい。そのため、以上の実施形態における「サーバ」は、１つの装置に限らず、複数の装置を含むサーバシステムを含むものである。
【００５９】
さらに、以上の実施形態では、サーバからダウンロードされるアップデートデータの一例としてプログラムを例に説明した。しかしこれに限らず、例えばプログラムにおいて使用される各種のパラメータがアップデートされる場合でもよい。
【００６０】
また以上の通り、実施形態のアップデートシステムでは、ホストコンピュータがホストとなって各装置と通信する仕組みのため、アップデートデータ再利用のための通信(ファームウェアのバージョン確認等)は”装置の数”だけ行えばよい。先行技術では”(装置数−１) × 系統数”の数だけ通信が必要であったため、装置数や系統数が多い環境では本発明での通信量の削減効果は大きい。よって、本実施形態では同じアップデートデータを適用できない系統の異なる装置が混在する場合でも、少ない通信量でアップデートデータを再利用することができる。
【００６１】
本発明は、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵまたはＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することとなり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤなどを用いることができる。
【００６３】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOperating System（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００６４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書きこまれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００６５】
また、本実施形態の機能を実現するためのプログラムコードを、１つのコンピュータ（ＣＰＵ、ＭＰＵ）で実行する場合であってもよいし、複数のコンピュータが協働することによって実行する場合であってもよい。さらに、プログラムコードをコンピュータが実行する場合であってもよいし、プログラムコードの機能を実現するための回路等のハードウェアを設けてもよい。またはプログラムコードの一部をハードウェアで実現し、残りの部分をコンピュータが実行する場合であってもよい。
【図１】
2015121887.tif 000003
【図２】
2015121887.tif 000004
【図３】
2015121887.tif 000005
【図４】
2015121887.tif 000006
【図５】
2015121887.tif 000007
【図６】
2015121887.tif 000008
【図７】
2015121887.tif 000009
【図８】
2015121887.tif 000010