(57)【要約】【課題】  本発明は、プリンタドライバのインストールと共に、プリンタのファームウェアの更新を簡易な手順で行うことを目的とする。【解決手段】  本発明の情報処理装置は、プリンタドライバのインストーラを第１のサーバから取得して、プリンタドライバのインストールを行い、プリンタのファームウェアのバージョンとプリンタのファームウェアのバージョンに基づいて、プリンタのファームウェアを更新するか否かを判断して、プリンタの能力に基づいて、プリンタに第２のサーバからファームウェアを取得させることでプリンタのファームウェアを更新するための指示をプリンタに送信するか、第２のサーバからファームウェアを取得して、取得されたファームウェアをプリンタに送信することでプリンタのファームウェアを更新するための指示をプリンタに送信するかを切り替える。【選択図】  図５
2019016221.tif 000002
【特許請求の範囲】
【請求項１】
プリンタドライバのインストーラを第１のサーバから取得して、前記プリンタドライバのインストールを行うインストール手段と、
前記プリンタドライバに対応するプリンタのファームウェアのバージョンを前記第１のサーバから取得する第１の取得手段と、
前記プリンタにインストールされているファームウェアのバージョンを前記プリンタから取得する第２の取得手段と、
前記第１の取得手段により取得された前記プリンタのファームウェアのバージョンと、前記第２の取得手段により取得された前記プリンタのファームウェアのバージョンに基づいて、前記プリンタのファームウェアを更新するか否か判断する第１の判断手段と、
前記プリンタに第２のサーバからファームウェアを取得させて、前記プリンタのファームウェアを更新させる指示を行うか否か判断する第２の判断手段と、
前記第１の判断手段により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断手段により、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行うと判断された場合に、前記プリンタに前記第２のサーバから前記ファームウェアを取得させることで前記プリンタのファームウェアを更新するための指示を前記プリンタに送信し、前記第１の判断手段により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断手段により、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行わないと判断された場合に、前記第２のサーバから前記ファームウェアを取得して、取得された前記ファームウェアを前記プリンタに送信することで前記プリンタのファームウェアを更新するための指示を前記プリンタに送信する送信手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記第２の判断手段は、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行うか否かの判断として、前記プリンタが前記第２のサーバから前記ファームウェアを取得して更新する方法に対応しているか否か判断して、
前記送信手段は、前記第１の判断手段により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断手段により前記プリンタが前記第２のサーバから前記ファームウェアを取得して更新する前記方法に対応していると判断された場合に、前記プリンタに前記第２のサーバから前記ファームウェアを取得させることで前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信し、前記第１の判断手段により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断手段により前記プリンタが前記第２のサーバから前記ファームウェアを取得して更新する前記方法に対応していないと判断された場合に、前記第２のサーバから前記ファームウェアを取得して、取得された前記ファームウェアを前記プリンタに送信することで前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の判断手段は、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行うか否かの判断として、前記情報処理装置と前記プリンタの接続形態が特定の接続形態であるか否か判断して、
前記送信手段は、前記第１の判断手段により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断手段により前記情報処理装置と前記プリンタの接続形態が前記特定の接続形態ではないと判断された場合に、前記プリンタに前記第２のサーバから前記ファームウェアを取得させることで前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信し、前記第１の判断手段により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断手段により前記情報処理装置と前記プリンタの接続形態が前記特定の接続形態であると判断された場合に、前記第２のサーバから前記ファームウェアを取得して、取得された前記ファームウェアを前記プリンタに送信することで前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記特定の接続形態はＵＳＢ接続であることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１の取得手段は前記プリンタドライバに対応する前記プリンタのファームウェアのバージョンとして、最小と最大の少なくとも一つを含むバージョンを前記第１のサーバから取得することを特徴とする請求項１に記載の情報処理装置。
【請求項６】
前記送信手段は、前記プリンタが複数のドライバを必要とする場合に、前記複数のドライバに対応するバージョンに前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項７】
コンピュータに、
プリンタドライバのインストーラを第１のサーバから取得して、前記プリンタドライバのインストールを行うインストール工程と、
前記プリンタドライバに対応するプリンタのファームウェアのバージョンを前記第１のサーバから取得する第１の取得工程と、
前記プリンタにインストールされているファームウェアのバージョンを前記プリンタから取得する第２の取得工程と、
前記第１の取得工程により取得された前記プリンタのファームウェアのバージョンと、前記第２の取得工程により取得された前記プリンタのファームウェアのバージョンに基づいて、前記プリンタのファームウェアを更新するか否か判断する第１の判断工程と、
前記プリンタに第２のサーバからファームウェアを取得させて、前記プリンタのファームウェアを更新させる指示を行うか否か判断する第２の判断工程と、
前記第１の判断工程により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断工程により、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行うと判断された場合に、前記プリンタに前記第２のサーバから前記ファームウェアを取得させることで前記プリンタのファームウェアを更新するための指示を前記プリンタに送信し、前記第１の判断工程により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断工程により、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行わないと判断された場合に、前記第２のサーバから前記ファームウェアを取得して、取得された前記ファームウェアを前記プリンタに送信することで前記プリンタのファームウェアを更新するための指示を前記プリンタに送信する送信工程と、を実行させることを特徴とするプログラム。
【請求項８】
前記第２の判断工程は、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行うか否かの判断として、前記プリンタが前記第２のサーバから前記ファームウェアを取得して更新する方法に対応しているか否か判断して、
前記送信工程は、前記第１の判断工程により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断工程により前記プリンタが前記第２のサーバから前記ファームウェアを取得して更新する前記方法に対応していると判断された場合に、前記プリンタに前記第２のサーバから前記ファームウェアを取得させることで前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信し、前記第１の判断工程により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断工程により前記プリンタが前記第２のサーバから前記ファームウェアを取得して更新する前記方法に対応していないと判断された場合に、前記第２のサーバから前記ファームウェアを取得して、取得された前記ファームウェアを前記プリンタに送信することで前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信することを特徴とする請求項７に記載のプログラム。
【請求項９】
前記第２の判断工程は、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行うか否かの判断として、前記コンピュータと前記プリンタの接続形態が特定の接続形態であるか否か判断して、
前記送信工程は、前記第１の判断工程により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断工程により前記コンピュータと前記プリンタの接続形態が前記特定の接続形態ではないと判断された場合に、前記プリンタに前記第２のサーバから前記ファームウェアを取得させることで前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信し、前記第１の判断工程により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断工程により前記コンピュータと前記プリンタの接続形態が前記特定の接続形態であると判断された場合に、前記第２のサーバから前記ファームウェアを取得して、取得された前記ファームウェアを前記プリンタに送信することで前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信することを特徴とする請求項７に記載のプログラム。
【請求項１０】
前記特定の接続形態はＵＳＢ接続であることを特徴とする請求項９に記載のプログラム。
【請求項１１】
前記第１の取得工程は前記プリンタドライバに対応する前記プリンタのファームウェアのバージョンとして、最小と最大の少なくとも一つを含むバージョンを前記第１のサーバから取得することを特徴とする請求項７に記載のプログラム。
【請求項１２】
前記送信工程は、前記プリンタが複数のドライバを必要とする場合に、前記複数のドライバに対応するバージョンに前記プリンタのファームウェアを更新するための前記指示を前記プリンタに送信することを特徴とする請求項７乃至１０のいずれか１項に記載のプログラム。
【請求項１３】
プリンタドライバのインストーラを第１のサーバから取得して、前記プリンタドライバのインストールを行うインストール工程と、
前記プリンタドライバに対応するプリンタのファームウェアのバージョンを前記第１のサーバから取得する第１の取得工程と、
前記プリンタにインストールされているファームウェアのバージョンを前記プリンタから取得する第２の取得工程と、
前記第１の取得工程により取得された前記プリンタのファームウェアのバージョンと、前記第２の取得工程により取得された前記プリンタのファームウェアのバージョンに基づいて、前記プリンタのファームウェアを更新するか否か判断する第１の判断工程と、
前記プリンタに第２のサーバからファームウェアを取得させて、前記プリンタのファームウェアを更新させる指示を行うか否か判断する第２の判断工程と、
前記第１の判断工程により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断工程により、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行うと判断された場合に、前記プリンタに前記第２のサーバから前記ファームウェアを取得させることで前記プリンタのファームウェアを更新するための指示を前記プリンタに送信し、前記第１の判断工程により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断工程により、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行わないと判断された場合に、前記第２のサーバから前記ファームウェアを取得して、取得された前記ファームウェアを前記プリンタに送信することで前記プリンタのファームウェアを更新するための指示を前記プリンタに送信する送信工程と、を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプリンタドライバをインストールする技術に関する。
【背景技術】
【０００２】
ユーザが簡単にコンピュータにプリンタドライバをインストールできるように、各プリンタベンダはプリンタドライバのインストーラをプリンタの付属品として同梱して配布している。ユーザは同梱されたインストーラを実行するだけで所望のプリンタドライバをコンピュータにインストールすることができる。特許文献１はインストーラを用いてプリンタドライバをインストールする方法を開示している。
【０００３】
しかし、機能追加やセキュリティ強化のためにプリンタドライバではバージョンアップが行われることがある。この場合、プリンタベンダは各社のウェブサイトなどで最新のプリンタドライバの配布を行っているが、ユーザにとってはウェブサイトに最新のプリンタドライバを取得しに行く作業は手間である。
【０００４】
このため、近年、プリンタドライバのダウンローダをプリンタの付属品として同梱するケースが出てきている。ダウンローダは自動でプリンタベンダのウェブサイトから最新のプリンタドライバのインストーラを取ってきてコンピュータにインストールする。これによりユーザはわざわざプリンタベンダのウェブサイトを閲覧することなしに最新のプリンタドライバをインストールし、使用することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２５２０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
プリンタに同梱されたダウンローダによって、ユーザはサーバから取得したインストーラを用いてプリンタドライバをインストールすることができる。
【０００７】
しかしながら、インストールされたプリンタドライバによっては、新機能を使用するためにプリンタのファームウェアの更新が必要になる場合がある。例えばシャープネスやカラーマッチングなどの画像処理をプリンタ側で行う新機能の場合、プリンタドライバだけ更新しても適切なファームウェアが搭載されていないと使用することができない。
【０００８】
また、プリンタのファームウェアの更新では、クライアントがファームウェアをサーバからダウンロードして、プリンタに送信する方法と、プリンタにファームウェアをサーバから直接ダウンロードさせて更新するように指示する方法の二つの方法が考えられる。
【０００９】
しかしながら、ユーザがどちらの方法でファームウェアの更新が行えるのか調べて実施するのは煩雑な作業である。
【００１０】
これに対して本発明は、プリンタドライバのインストールと共に、プリンタのファームウェアの更新を簡易な手順で行うことを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するための本発明に係る情報処理装置は、
プリンタドライバのインストーラを第１のサーバから取得して（Ｓ１０１）、前記プリンタドライバのインストールを行う（Ｓ１０６）インストール手段と、
前記プリンタドライバに対応するプリンタのファームウェアのバージョンを前記第１のサーバから取得する第１の取得手段（Ｓ１０２）と、
前記プリンタにインストールされているファームウェアのバージョンを前記プリンタから取得する第２の取得手段（Ｓ１０３）と、
前記第１の取得手段により取得された前記プリンタのファームウェアのバージョンと、前記第２の取得手段により取得された前記プリンタのファームウェアのバージョンに基づいて、前記プリンタのファームウェアを更新するか否か判断する第１の判断手段（Ｓ１０４）と、
前記プリンタに第２のサーバからファームウェアを取得させて、前記プリンタのファームウェアを更新させる指示を行うか否か判断する第２の判断手段（Ｓ１０５１）と、
前記第１の判断手段により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断手段により、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行うと判断された場合に、前記プリンタに前記第２のサーバから前記ファームウェアを取得させることで前記プリンタのファームウェアを更新するための指示を前記プリンタに送信し（Ｓ１０５２）、前記第１の判断手段により前記プリンタのファームウェアを更新すると判断され、かつ前記第２の判断手段により、前記プリンタに前記第２のサーバから前記ファームウェアを取得させて、前記プリンタのファームウェアを更新させる前記指示を行わないと判断された場合に、前記第２のサーバから前記ファームウェアを取得して、取得された前記ファームウェアを前記プリンタに送信することで前記プリンタのファームウェアを更新するための指示を前記プリンタに送信する（Ｓ１０５５）送信手段と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明によりプリンタドライバのインストールと共に、プリンタのファームウェアの更新を簡易な手順で行うことができる。
【図面の簡単な説明】
【００１３】
【図１】印刷システムの接続形態を示す図である。
【図２】コンピュータの内部構成を示す図である。
【図３】プリンタの内部構成を示す図である。
【図４】ドライバダウンローダの構成を示すブロック図である。
【図５】実施例１におけるドライバダウンローダの処理フローを示す図である。
【図６】ドライババージョンとそれぞれにおける対応ファームバージョンを示す図である。
【図７】ドライバダウンローダのファーム更新処理フローを示す図である。
【図８】実施例２におけるドライバダウンローダの処理フローを示す図である。
【発明を実施するための形態】
【００１４】
［実施例１］
図１は実施例１の印刷システムにおけるコンピュータ１０００、プリンタ２０００、サーバ３０００の接続形態を示す図である。コンピュータ１０００は情報処理装置の一例である。本実施例では２つの接続形態を想定している。図１（ａ）に示す接続形態ではコンピュータ１０００とプリンタ２０００はＵＳＢで接続されており、コンピュータ１０００とサーバ３０００はインターネットなどのネットワークで接続されている。プリンタ２０００がネットワークに接続されていない形態である。図１（ｂ）に示す接続形態ではコンピュータ１０００とプリンタ２０００とサーバ３０００がそれぞれネットワークで接続されており、それぞれ通信可能な形態である。
【００１５】
図２はコンピュータ１０００の内部構成をブロック図として示した図である。コンピュータ１０００はＣＰＵ１０４１とメモリ１０４２により構成される制御部１０４０が全体を制御している。表示部１０１０はディスプレイなどの出力装置、操作部１０２０はマウスやキーボードなどの入力装置を示す。また、記憶部１０３０にはＯＳ１０３２、各種アプリ１０３３、及びプリンタドライバ１０３１などのソフトウェアが保存されている。それらのプログラムは必要に応じてメモリ１０４２にロードされ、ＣＰＵ１０４１によって実行される。ＯＳ１０３２はコンピュータ１０００の基本動作をつかさどるソフトウェアである。ネットワーク通信部１０５０はネットワークに接続して外部装置とのデータの入出力を行う。ＵＳＢ通信部１０６０は外部装置とＵＳＢ接続によるデータの入出力を行う。本明細書における各フローチャートの各ステップの処理は、記憶部１０３０に記憶されたソフトウェアを制御部１０４０におけるメモリ１０４２にロードしてＣＰＵ１０４１が実行することによって実現される。なお、ＣＰＵはＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略である。
【００１６】
図３はプリンタの内部構成をブロック図として示した図である。プリンタはＣＰＵ２０４１とメモリ２０４２により構成される制御部２０４０が全体を制御している。表示部２０１０は液晶パネルなどの出力装置、操作部２０２０はタッチパネルや各種ボタンによる入力装置を示す。また、記憶部２０３０にはＯＳ２０３２やファーム（ファームウェア）２０３１、及びその上で動作する各種アプリ２０３３が保存されている。これらのソフトウェアは必要に応じてメモリ２０４２にロードされ、ＣＰＵ２０４１によって実行される。ＯＳ２０３２はプリンタ２０００の基本動作をつかさどるソフトウェアである。ネットワーク通信部２０５０はネットワークに接続して外部装置とのデータの入出力を行う。ＵＳＢ通信部２０６０は外部装置とＵＳＢ接続によるデータの入出力を行う。印刷部２０８０は制御部２０４０の指示に従ってメモリ２０４２内のデジタルデータを物理用紙に印刷する。印刷の方法はインク方式でもトナー方式でもよい。
【００１７】
図４は本実施例におけるドライバのダウンローダ５００の構成を示すブロック図である。ダウンローダ５００はコンピュータ上で動作するアプリ１０３３の一種であり、通常はプリンタ２０００を購入した際にプリンタ２０００の箱の中に同梱されているＣＤもしくはＤＶＤに格納されている。
【００１８】
制御部５０４はダウンローダ５００の全ての処理を制御する。サーバ通信部５０１はネットワーク通信部１０５０を介して外部のサーバ３０００に接続し、データの入出力を行う。デバイス通信部５０７はＵＳＢ通信部１０６０もしくはネットワーク通信部１０５０を介して外部のデバイス、ここではプリンタ２０００に接続し、データの入出力を行う。
【００１９】
ドライバインストーラ取得部５０２はサーバ通信部５０１を介して外部のサーバ３０００からドライバのインストーラを取得する。ドライバインストーラはインストールするドライバの実体（バイナリ）を内包している。ドライバインストーラ取得部５０２はさらにそのドライバに対応しているファームのバージョン情報も取得するが、詳細は後述する。
【００２０】
ファーム更新ツール取得部５０３はサーバ通信部５０１を介して外部のサーバ３０００からファーム更新ツールを取得する。ファーム更新ツールはコンピュータに接続されたプリンタ内部のファーム２０３１を更新するツールであり更新するファームの実体（バイナリ）を内包している。
【００２１】
デバイス情報取得部５０５はデバイス通信部５０７を介して外部に接続されたプリンタ２０００の情報を取得する。デバイス情報取得部５０５の取得する情報はプリンタ２０００内部のファーム２０３１のバージョン情報を含む。
【００２２】
ファーム更新指示部５０６はデバイス通信部５０７を介して外部に接続されたプリンタ２０００に対してファーム更新を指示する。その際、ファームの実体はプリンタ２０００に送信せず、ファームのバージョン情報のみをプリンタ２０００に送信してそのバージョンのファームへの更新を指示する。ドライバインストーラ実行部５０８はドライバインストーラ取得部５０２の取得したドライバインストーラを実行する。これによりドライバインストーラは内包しているドライバの実体をＯＳ１０３２に対してインストールする。ファーム更新ツール実行部５０９はファーム更新ツール取得部５０３の取得したファーム更新ツールを実行する。これによりファーム更新ツールは内包しているファームの実体をプリンタ２０００に送信してプリンタ２０００内部のファーム２０３１を上書きして置換する。
【００２３】
次に、図５のフローチャートを使用して実施例１におけるドライバのダウンローダ５００の処理を説明する。ここで説明するダウンローダ５００の処理はメモリ１０４２にロードされ、ＣＰＵ１０４１によって実行される。
【００２４】
ダウンローダ５００はコンピュータ１０００上でユーザによって実行されると、ドライバインストーラ取得部５０２を使用して最新のドライバインストーラをサーバ３０００から取得する（Ｓ１０１）。ここでは最新のドライババージョンがＶ３．００であるとし、Ｖ３．００のドライバインストーラを取得するものとする。
【００２５】
次に、ダウンローダ５００はドライバインストーラ取得部５０２を使用して取得したドライババージョンに対応するファームバージョンの範囲をサーバ３０００から取得する（Ｓ１０２）。具体的には「最小：Ｖ５．０、最大：Ｖ２９．９９」のような情報を取得する。サーバ３０００には各種プリンタドライバとそれぞれのプリンタドライバの機能を使用するためのファームバージョンの範囲情報があらかじめプリンタベンダによって登録されている。サーバ３０００はそのあらかじめ登録された範囲情報をダウンローダ５００に対して送信する。登録されている情報の一例を図６に示す。ドライバのバージョンが上がるにつれてそれぞれのドライバに対応する最小ファームバージョンも上がっている例である。ドライババージョンＶ３．００に対応するファームバージョンの範囲は「最小：Ｖ５．０、最大：Ｖ２９．９９」である。なお、ファームバージョンの範囲は最小と最大のいずれかが含まれていれば良い。
【００２６】
次に、ダウンローダ５００はデバイス情報取得部５０５を使用してプリンタ２０００にインストールされている現在のファーム２０３１のバージョンをプリンタ２０００から取得する（Ｓ１０３）。次に、ダウンローダ５００は現在のファームバージョンが前記対応ファームバージョンの範囲内にあるかどうかを確認する（Ｓ１０４）。上記の例では、現在のファームバージョンがＶ６．０であれば範囲内にあると判断し、Ｖ４．０であれば範囲内にないと判断する。範囲内にない場合、ダウンローダ５００はファーム更新処理を行う（Ｓ１０５）。ファーム更新処理Ｓ１０５の詳細は後述する。
【００２７】
このようにしてダウンローダは、Ｓ１０２で取得されたプリンタのファームウェアのバージョンと、Ｓ１０３で取得されたプリンタのファームウェアのバージョンに基づいて、プリンタのファームウェアを更新するか否か判断する。
【００２８】
範囲内であった場合、もしくは上記ファーム更新処理が終了したら、ダウンローダ５００はドライバインストーラ実行部５０８を使用してプリンタドライバのインストールを行う（Ｓ１０６）。ドライバインストーラによるドライバのインストールについては既存の技術であるため説明は割愛する。上記のフローを取ることで、すでに現在のファーム２０３１のバージョンがドライバに対応するファームバージョンの範囲にある場合はファーム更新処理をスキップすることができる。
【００２９】
なお、ここではプリンタドライバが１つしかない場合の例を挙げたが、実際には複数のＰＤＬ（Ｐａｇｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）をサポートして複数のドライバを必要とするプリンタも存在する。さらに複合機のようにスキャナドライバやＦＡＸドライバといった複数のデバイスドライバを必要とするデバイスも存在する。本発明はそのような場合にも適用可能である。具体的にはダウンローダ５００はそれら全ての最新ドライバに対して図５に示すフローを繰り返し行う。これにより、全てのドライバにおける最新機能を使用可能なファームバージョンへの更新が可能となり、かつ、いずれにおいても更新が不要な場合はファーム更新処理をスキップすることができる。
【００３０】
次に、図７のフローチャートを使用して前記ファーム更新処理Ｓ１０５の詳細を説明する。ここで説明するダウンローダ５００の処理はメモリ１０４２にロードされ、ＣＰＵ１０４１によって実行される。
【００３１】
初めに、ダウンローダ５００はプリンタ２０００がサーバから直接ファームウェアを取得して、自身のファームウェアを更新する方法に対応しているか否か判断する（Ｓ１０５１）。なお、本ステップのサーバはサーバ３０００と同一であってもよいし、ファームウェアを提供する他のサーバでも構わない。プリンタ２０００がこの方法に対応している場合、コンピュータ１０００はプリンタ２０００に対して指示を行うだけで、プリンタ２０００のファームウェアを更新することができる。プリンタ２０００が直接ファームウェアを取得して、自身のファームウェアを更新する方法に対応している場合、ダウンローダ５００はファーム更新指示部５０６を使用してプリンタ２０００にファーム更新の指示を行う（Ｓ１０５２）。この際、Ｓ１０２で取得したファームバージョンの範囲の情報と共にプリンタ２０００に対して指示を行う。上述の例では「最小：Ｖ５．０、最大：Ｖ２９．９９」という情報と共に指示を行う。ファーム更新の指示を受け取ったプリンタ２０００は取得したバージョン範囲のファーム要求をサーバ３０００に送信する。通常、サーバ３０００は要求されたバージョン範囲内のファームのうち最も新しいファームをプリンタ２０００に送信する。プリンタは自身のファーム２０３１を取得した新しいファームに置き換える。
【００３２】
なお、プリンタ２０００との接続形態がＵＳＢ接続以外（例えばネットワーク接続）であれば、ファームウェア更新を指示するように構成しても構わない。このような構成にした場合、Ｓ１０５１でダウンローダ５００はコンピュータ１０００とプリンタ２０００の接続形態がＵＳＢ接続かどうかを確認する。そしてＳ１０５２で、図１（ｂ）に示すような形態でＵＳＢ接続でない場合、ダウンローダ５００はファーム更新指示部５０６を使用してプリンタ２０００にファーム更新の指示を行う。プリンタ２０００がファーム更新の指示に対応していなければＳ１０５３ではファーム更新に失敗したと判断される。また、図１（ａ）に示すような形態でＳ１０５１においてＵＳＢ接続であった場合、もしくはＳ１０５３においてファームの更新が行われなかったと判断された場合、ファームの更新が済んでいないためダウンローダ５００はＳ１０５４に進む。
【００３３】
次にダウンローダ５００はファーム２０３１の更新が成功したかどうかについてデバイス情報取得部５０５を使用してプリンタ２０００に対して確認する（Ｓ１０５３）。フローには図示していないが、更新に時間がかかる場合もあるため、ダウンローダ５００はＳ１０５３において複数回に分けてプリンタ２０００への確認を行ってもよい。一方、Ｓ１０５１でプリンタ２０００がサーバからファームウェアを取得して更新する方法に対応していないと判断された場合、もしくはＳ１０５３においてファームの更新が行われなかったと判断された場合、ファームの更新が済んでいないためダウンローダ５００は次のステップに進む。次にダウンローダ５００はファーム更新ツール取得部５０３を使用してサーバ３０００からファーム更新ツールを取得する（Ｓ１０５４）。この時、ダウンローダ５００はＳ１０２で取得したファームバージョンの範囲の情報と共にサーバ３０００に対してファーム更新ツールの要求を行う。サーバ３０００はコンピュータ１０００からファーム更新ツールの要望を受信すると、通常は要求されたバージョン範囲内のファームのうち最も新しいファームを内包したファーム更新ツールをコンピュータに対して送信する。Ｓ１０５４でファーム更新ツールを取得したダウンローダ５００は次にファーム更新ツール実行部５０９を使用してファーム更新ツールを実行する（Ｓ１０５５）。ファーム更新ツールは実行されると、内包している新しいファームをプリンタ２０００に送信してプリンタ２０００内部のファーム２０３１を新しいファームで上書きするように指示する。プリンタ２０００が受信したファームでプリンタ２０００自身のファーム２０３１を更新する方法は既存の技術が使えるためここでは詳細説明を割愛する。なお、Ｓ１０５２の処理でもＳ１０５５の処理でも、プリンタのファーム２０３１更新時は必ずプリンタ２０００のダウンタイムが生じる。その間はプリンタ２０００を使用する事はできない。また、ファーム更新ツールを提供するサーバはサーバ３０００であってもよいし、ファームウェアを提供するＳ１０５１と同じサーバでも構わない。
【００３４】
ダウンローダ５００が以上のフローを行う事で、状況に応じてコンピュータ１０００にファームをダウンロードすることなしに、該当するプリンタドライバに対応したファームへの更新を行うことができる。さらに現在のファームのバージョンがプリンタドライバに対応するファームバージョンの範囲にある時はファームの更新が発生しないためプリンタ２０００のダウンタイムの頻度を抑えることができる。
【００３５】
［実施例２］
実施例１では一般的に使用されるプリンタドライバ１０３１とファーム２０３１を更新する手順について述べた。しかしながら、市場では顧客のワークフローやポリシーなどにより、カスタマイズされたドライバとカスタマイズされたファームの組み合わせでプリンタを使用する事がある。例えば、その会社のロゴマークを印刷する際に専用の色処理を行う必要がある場合などである。プリンタドライバ内部の色処理およびファーム内部の色処理をその顧客に合った専用の色処理に変更するためにそれぞれカスタマイズをしたものを使用する事がある。実施例２ではそのような状況において本発明を実施した時のフローについて述べる。
【００３６】
実施例２におけるダウンローダ５００はその顧客向けのカスタマイズされたダウンローダ５００を使用するが、サーバ３０００やプリンタ２０００の接続形態からダウンローダ５００の構成までの説明は実施例１のものと同等であるため説明を割愛する。ダウンローダ５００はその顧客向けの識別子を保持しており、サーバ３０００上にもその識別子に対応するプリンタドライバやファームが用意されているものとする。識別子はカスタマイズ内容を特定できるＩＤであればどのようなものでも構わないが、状況に応じて増えることが予想されるためここではＵＵＩＤ（Ｕｎｉｖｅｒｓａｌｌｙ  Ｕｎｉｑｕｅ  Ｉｄｅｎｔｉｆｉｅｒ）を使用するものとする。
【００３７】
図８のフローチャートを使用して実施例２におけるダウンローダ５００の処理を説明する。ここで説明するダウンローダ５００の処理はメモリ１０４２にロードされ、ＣＰＵ１０４１によって実行される。
【００３８】
ダウンローダ５００はコンピュータ１０００上でユーザによって実行されると、カスタマイズされた最新のドライバインストーラをサーバ３０００から取得する（Ｓ２０１）。具体的には先述のＵＵＩＤを元にサーバ３０００に問い合わせを行い、そのＵＵＩＤで特定される最新のドライバインストーラを取得する。次に、ダウンローダ５００は取得したドライバに対応するファームＩＤとファームバージョンの範囲をサーバ３０００から取得する（Ｓ２０２）。サーバ３０００にはそれぞれのＵＵＩＤに応じたプリンタドライバと対応するファームＩＤの情報があらかじめ登録されている。サーバ３０００はそのあらかじめ登録されたファームＩＤをダウンローダ５００に対して送信する。次に、ダウンローダ５００はプリンタ２０００から現在のファームＩＤとファームバージョンを取得する（Ｓ２０３）。次に、ダウンローダ５００は現在のファームＩＤが対応するファームＩＤと同一であるかを確認する（Ｓ２０４）。そして同一である場合、次にダウンローダ５００は現在のファームバージョンが対応するファームバージョンの範囲内にあるかどうかを確認する（Ｓ２０５）。ここでの確認方法は実施例１で説明したものと同じである。Ｓ２０４でファームＩＤが異なっていた場合、および、Ｓ２０５で範囲内にない場合、ダウンローダ５００はファーム更新処理を行う（Ｓ２０６）。ファーム更新処理Ｓ２０６の詳細は図７で示したものと同等であるので説明は割愛する。唯一異なるのはファーム更新の際に、必ずＳ２０２で取得したファームＩＤのファームで更新する点である。現在のファーム２０３１が対応ファームバージョンの範囲内であった場合や上記ファーム更新処理が終了したら、ダウンローダ５００はドライバインストーラ実行部５０８を使用してカスタマイズされたプリンタドライバのインストールを行う（Ｓ２０７）。この処理も実施例１で述べた処理と同じである。
【００３９】
上記のフローを用いることで、一般的なプリンタドライバとファームの組み合わせではないカスタマイズされたプリンタドライバとファームの組み合わせにおいてもダウンローダ５００を少し変更するのみで本発明の効果を得ることができる。すなわち、状況に応じてコンピュータ１０００にファームをダウンロードすることなしに、カスタマイズされたプリンタドライバに対応したファームウェアへの更新を行うことができる。さらに現在のファーム２０３１のバージョンがプリンタドライバに対応するファームバージョンの範囲にある時はファーム２０３１の更新が発生しないためプリンタ２０００のダウンタイムの頻度を抑えることができる。
【００４０】
以上、実施例１と実施例２を用いて本発明の実施形態とその効果について図面を用いて説明した。なお、本発明の効果と直接関係のない公知技術に関しては割愛して説明した。また、実際の処理フローなど、詳細に関しては本実施例の通りの実装でなくても構わない。実施例はプリンタに対するプリンタドライバ１０３１やファーム２０３１を例に挙げたが、プリンタ以外の周辺機器においても同様の処理を行う事で同じ効果を得ることができる。また、サーバ３０００としてプリンタベンダの提供するウェブサーバを例に挙げて説明したが、企業内のオンプレミスサーバ、各種クラウドサービス、およびＯＳベンダの提供するサーバなどでも実施可能である。
【００４１】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４２】
１０００  コンピュータ
２０００  プリンタ
３０００  サーバ
【図１】
2019016221.tif 000003
【図２】
2019016221.tif 000004
【図３】
2019016221.tif 000005
【図４】
2019016221.tif 000006
【図５】
2019016221.tif 000007
【図６】
2019016221.tif 000008
【図７】
2019016221.tif 000009
【図８】
2019016221.tif 000010