(57)【要約】【課題】  本明細書では、適切なタイミングで、機能実行装置にファームウェアを供給する技術を提供する。【解決手段】  ＰＣは、複数個の多機能機のそれぞれから、機能実行時刻を含む特定情報を取得する第１の取得処理を実行する（Ｓ１６）。ＰＣは、ＰＣは、第１の順番決定処理で第１多機能機から取得された第１の特定情報に含まれる第１多機能機の機能実行時刻と、第１の順番決定処理で第２多機能機から取得された第２の特定情報に含まれる第２多機能機の機能実行時刻と、に基づいて、第１の順番決定処理を実行する（Ｓ１８）。ＰＣは、第１の順番決定処理で決定された順番に従って、複数個の多機能機のそれぞれにファームウェアを供給するためのファームウェア供給処理を順次実行する（Ｓ４２）。【選択図】  図２
2012003529.tif 000002
【特許請求の範囲】
【請求項１】
複数個の機能実行装置に接続される通信装置であって、
前記複数個の機能実行装置のそれぞれから、当該機能実行装置が機能を実行したことを示す特定情報を取得する第１の取得処理を実行する特定情報取得部と、
前記第１の取得処理で取得された複数個の前記特定情報を用いて、前記複数個の機能実行装置にファームウェアを供給するための順番を決定するための第１の順番決定処理を実行する順番決定部と、
前記第１の順番決定処理で決定された前記順番に従って、前記複数個の機能実行装置のそれぞれに前記ファームウェアを供給するためのファームウェア供給処理を順次実行する順次供給部と、を備え、
前記順番決定部は、前記第１の取得処理で第１の前記機能実行装置から取得された第１の前記特定情報により特定される前記第１の機能実行装置が最後に機能を実行した第１のタイミングと、前記第１の取得処理で第２の前記機能実行装置から取得された第２の前記特定情報により特定される前記第２の機能実行装置が最後に機能を実行した第２のタイミングと、に基づいて、前記第１の順番決定処理を実行する、通信装置。
【請求項２】
前記順番決定部は、前記第１のタイミングが前記第２のタイミングよりも前である場合に、前記第１の機能実行装置のための前記ファームウェア供給処理が、前記第２の機能実行装置のための前記ファームウェア供給処理よりも先に実行されるように、前記第１の順番決定処理を実行する、請求項１に記載の通信装置。
【請求項３】
前記特定情報取得部は、前記複数個の機能実行装置のそれぞれから、当該機能実行装置が最後に機能を実行した時刻を含む前記特定情報を取得する前記第１の取得処理を実行し、
前記順番決定部は、前記第１の取得処理で取得された前記複数個の特定情報を用いて、最後に機能を実行したタイミングが前である程、前記ファームウェア供給処理が先に実行されるように、前記第１の順番決定処理を実行する、請求項２に記載の通信装置。
【請求項４】
前記特定情報取得部は、さらに、前記複数個の機能実行装置のそれぞれについて、当該機能実行装置のための前記ファームウェア供給処理が実行されるべき際に、当該機能実行装置が最後に機能を実行した時刻を含む新たな特定情報を取得する第２の取得処理を実行し、
前記順番決定部は、さらに、前記第２の取得処理が実行される毎に、当該第２の取得処理の対象である対象機能実行装置から取得された前記新たな特定情報が、前記第１の取得処理で前記対象機能実行装置から取得された前記特定情報と異なるのか否かを判断し、
前記順番決定部は、さらに、前記対象機能実行装置から取得された前記新たな特定情報が、前記第１の取得処理で前記対象機能実行装置から取得された前記特定情報と異なると判断される場合に、最後に機能を実行したタイミングが前である程、前記ファームウェア供給処理が先に実行されるように、新たな順番を決定する第２の順番決定処理を実行し、
前記順次供給部は、前記第１の順番決定処理で決定された前記順番に関わらず、最新の前記第２の順番決定処理で決定された前記新たな順番に従って、前記ファームウェア供給処理を順次実行する、請求項３に記載の通信装置。
【請求項５】
前記特定情報取得部は、
前記複数個の機能実行装置のそれぞれについて、当該機能実行装置のための前記ファームウェア供給処理が実行されるべき際に、前記第１の取得処理で当該機能実行装置から取得された前記特定情報に含まれる時刻と現在時刻との差分時間が、第１の時間より長い場合に、当該機能実行装置のための前記第２の取得処理を実行し、
前記複数個の機能実行装置のそれぞれについて、当該機能実行装置のための前記ファームウェア供給処理が実行されるべき際に、前記第１の取得処理で当該機能実行装置から取得された前記特定情報に含まれる時刻と現在時刻との差分時間が、前記第１の時間より短い場合に、当該機能実行装置のための前記第２の取得処理を実行しない、請求項４に記載の通信装置。
【請求項６】
前記順次供給部が最初の前記ファームウェア供給処理を実行する前に、前記複数個の機能実行装置のそれぞれに、前記ファームウェアを供給することを示すファームウェア通知を供給する通知供給部をさらに備える、請求項１から５のいずれか一項に記載の通信装置。
【請求項７】
前記複数個の機能実行装置のそれぞれについて、当該機能実行装置について前記第１の順番決定処理で決定された順位と、前記ファームウェアのデータサイズと、前記通信装置と前記複数個の機能実行装置との間の平均通信速度と、の少なくとも１個を用いて、当該機能実行装置に前記ファームウェアが供給されるべき予定時刻に関する予定時刻情報を算出する算出部をさらに備え、
前記通知供給部は、前記複数個の機能実行装置のそれぞれに、当該機能実行装置について算出された前記予定時刻情報を含む前記ファームウェア通知を供給する、請求項６に記載の通信装置。
【請求項８】
前記特定情報取得部は、前記複数個の機能実行装置のそれぞれから、当該機能実行装置が最後に機能を実行した時刻を含む前記特定情報を取得する前記第１の取得処理を実行し、
前記通信装置は、
前記順次供給部が前記最初の前記ファームウェア供給処理を実行する前に、前記第１の取得処理で取得される前記複数個の特定情報を用いて、前記複数個の機能実行装置の中から、最後に機能を実行した時刻と現在時刻との差分時間が、第２の時間以内である機能実行装置群を特定し、前記予定時刻情報の出力指示を前記機能実行装置群に供給する指示供給部をさらに備える、請求項７に記載の通信装置。
【請求項９】
ファームウェアを供給する通信装置に接続される機能実行装置であって、
前記機能実行装置が機能を実行するための機能実行指示を入力する入力部と、
前記機能実行装置自身が最後に機能を実行した時刻を含む特定情報を、前記通信装置に供給する特定情報供給部と、
前記通信装置から前記ファームウェアを取得するファームウェア取得部と、
前記ファームウェアが供給されるべき予定時刻に関する予定時刻情報を含むファームウェア通知を、前記通信装置から取得する通知取得部と、
前記予定時刻情報の出力指示を、前記通信装置から取得する出力指示取得部と、
前記出力指示が取得される場合に、前記予定時刻情報を出力する出力部であって、前記出力指示が取得されなくても、前記機能実行指示が入力される場合に、前記予定時刻情報を出力する前記出力部と、を備える機能実行装置。
【請求項１０】
複数個の機能実行装置に接続される通信装置のためのコンピュータプログラムであって、
前記通信装置に搭載されるコンピュータに、
前記複数個の機能実行装置のそれぞれから、当該機能実行装置が機能を実行したことを示す特定情報を取得する第１の取得処理と、
前記第１の取得処理で取得された複数個の前記特定情報を用いて、前記複数個の機能実行装置にファームウェアを供給するための順番を決定するための第１の順番決定処理と、
前記第１の順番決定処理で決定された前記順番に従って、前記複数個の機能実行装置のそれぞれに前記ファームウェアを供給するためのファームウェア供給処理を順次実行する順次供給処理と、を実行させ、
前記コンピュータプログラムは、前記コンピュータに、
前記第１の取得処理で第１の機能実行装置から取得された第１の前記特定情報により特定される前記第１の機能実行装置が最後に機能を実行した第１のタイミングと、前記第１の取得処理で第２の機能実行装置から取得された第２の前記特定情報により特定される前記第２の機能実行装置が最後に機能を実行した第２のタイミングと、に基づいて、前記第１の順番決定処理を実行させる、
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書では、複数個の機能実行装置に接続される通信装置を開示する。
【背景技術】
【０００２】
特許文献１には、通信アダプタが、自身に接続された複数個の画像形成装置に、更新制御プログラムを供給する技術が開示されている。通信アダプタは、複数個の画像形成装置のそれぞれについて、当該画像形成装置に更新制御プログラムを供給すべき際に、当該画像形成装置（以下、「対象画像形成装置」と呼ぶ）が処理受付可能状態であるのか否かを判断する。対象画像形成装置が処理受付可能状態であると判断される場合に、通信アダプタは、対象画像形成装置に、更新制御プログラムを供給する。一方、対象画像形成装置が処理受付可能状態でないと判断される場合に、通信アダプタは、対象画像形成装置に、更新制御プログラムを供給しない。この場合、通信アダプタは、他の画像形成装置に、更新制御プログラムを供給する。更新制御プログラムを取得した画像形成装置は、自身の制御プログラムを更新する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０００−２２２３１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、各機能実行装置（上記の例では画像形成装置）にファームウェア（上記の例では更新制御プログラム）を供給するための順序をどのようにして決定するのかについて、何ら開示されていない。従って、適切でないタイミングで各機能実行装置にファームウェアが供給され得る。本明細書では、適切なタイミングで各機能実行装置にファームウェアを供給し得る技術を提供する。
【課題を解決するための手段】
【０００５】
本明細書によって開示される技術は、複数個の機能実行装置に接続される通信装置である。この通信装置は、特定情報取得部と、順番決定部と、順次供給部と、を備える。特定情報取得部は、複数個の機能実行装置のそれぞれから、当該機能実行装置が機能を実行したことを示す特定情報を取得する第１の取得処理を実行する。順番決定部は、第１の取得処理で取得された複数個の特定情報を用いて、複数個の機能実行装置にファームウェアを供給するための順番を決定するための第１の順番決定処理を実行する。順次供給部は、第１の順番処理で決定された順番に従って、複数個の機能実行装置のそれぞれにファームウェアを供給するためのファームウェア供給処理を順次実行する。順番決定部は、第１の取得処理で第１の機能実行装置から取得された第１の特定情報により特定される第１の機能実行装置が最後に機能を実行した第１のタイミングと、第１の取得処理で第２の機能実行装置から取得された第２の特定情報により特定される第２の機能実行装置が最後に機能を実行した第２のタイミングと、に基づいて、第１の順番決定処理を実行する。
【０００６】
上記の通信装置は、第１及び第２の機能実行装置が最後に機能を実行したタイミング、即ち、第１及び第２の機能実行装置の利用状況に基づいて、第１の順番決定処理を実行する。従って、上記の通信装置は、第１及び第２の機能実行装置の利用状況に応じて適切な順番を決定し得るために、適切なタイミングで第１及び第２の機能実行装置にファームウェアを供給し得る。
【０００７】
順番決定部は、第１のタイミングが第２のタイミングよりも前である場合に、第１の機能実行装置のためのファームウェア供給処理が、第２の機能実行装置のためのファームウェア供給処理よりも先に実行されるように、第１の順番決定処理を実行してもよい。例えば、ユーザは、同じ機能実行装置を用いて、短時間の間に複数回の機能（例えば、複数回の印刷機能、複数回のコピー機能等）を連続的に実行させることがある。従って、機能実行装置が最後に機能を実行したタイミングが古い場合と比べると、機能実行装置が最後に機能を実行したタイミングが新しい場合には、ユーザが、機能実行装置に機能を再び実行させる可能性が高い。また、機能実行装置は、通常、ファームウェアの更新を実行している間に、機能を実行することができない。従って、ユーザが機能を再び実行させる可能性が高い機能実行装置が機能を実行できなくなることを回避するために、最後に機能を実行したタイミングが新しい機能実行装置のためのファームウェア供給処理を後に実行し、最後に機能を実行したタイミングが古い機能実行装置のためのファームウェア供給処理を先に実行することを、ユーザが望む場合がある。上記の構成によると、最後に機能を実行した第１のタイミングが古い第１の機能実行装置のためのファームウェア供給処理が、最後に機能を実行した第２のタイミングが新しい第２の機能実行装置のためのファームウェア供給処理よりも先に実行されるために、ユーザが望む適切なタイミングで第１及び第２の機能実行装置にファームウェアを供給し得る。
【０００８】
特定情報取得部は、複数個の機能実行装置のそれぞれから、当該機能実行装置が最後に機能を実行した時刻を含む特定情報を取得する第１の取得処理を実行してもよい。順番決定部は、第１の取得処理で取得された複数個の特定情報を用いて、最後に機能を実行したタイミングが前である程、ファームウェア供給処理が先に実行されるように、第１の順番決定処理を実行してもよい。この構成によれば、ユーザが機能を再び実行させる可能性が高い機能実行装置のファームウェア更新を遅らせることができる。従って、ユーザが望む適切なタイミングで各機能実行装置にファームウェアを供給し得る。
【０００９】
特定情報取得部は、さらに、複数個の機能実行装置のそれぞれについて、当該機能実行装置のためのファームウェア供給処理が実行されるべき際に、当該機能実行装置が最後に機能を実行した時刻を含む新たな特定情報を取得する第２の取得処理を実行してもよい。順番決定部は、さらに、第２の取得処理が実行される毎に、当該第２の取得処理の対象である対象機能実行装置から取得された新たな特定情報が、第１の取得処理で対象機能実行装置から取得された特定情報と異なるのか否かを判断してもよい。順番決定部は、さらに、対象機能実行装置から取得された新たな特定情報が、第１の取得処理で対象機能実行装置から取得された特定情報と異なると判断される場合に、最後に機能を実行したタイミングが前である程、ファームウェア供給処理が先に実行されるように、新たな順番を決定する第２の順番決定処理を実行してもよい。順次供給部は、第１の順番決定処理で決定された順番に関わらず、最新の第２の順番決定処理で決定された新たな順番に従って、ファームウェア供給処理を順次実行してもよい。通信装置は、複数個の機能実行装置のそれぞれに、ファームウェア供給処理を順次実行する。このため、複数個の機能実行装置の全てにファームウェアを供給し終えるためには、時間がかかる。このことから、第１の取得処理が実行された後であって、対象機能実行装置のためのファームウェア供給処理が実行される前に、対象機能実行装置の利用状況が変化する可能性（即ち対象機能実行装置が機能を実行する可能性）がある。上記の構成によれば、対象機能実行装置の利用状況が変化した場合に、適切なタイミングで各機能実行装置にファームウェアを供給し得る。
【００１０】
特定情報取得部は、複数個の機能実行装置のそれぞれについて、当該機能実行装置のためのファームウェア供給処理が実行されるべき際に、第１の取得処理で当該機能実行装置から取得された特定情報に含まれる時刻と現在時刻との差分時間が、第１の時間より長い場合に、当該機能実行装置のための第２の取得処理を実行してもよい。複数個の機能実行装置のそれぞれについて、当該機能実行装置のためのファームウェア供給処理が実行されるべき際に、第１の取得処理で当該機能実行装置から取得された特定情報に含まれる時刻と現在時刻との差分時間が、第１の時間より短い場合に、当該機能実行装置のための第２の取得処理を実行しなくてもよい。この構成によれば、第２の取得処理と、第２の順番決定処理と、が繰り返し実行される事態を回避することができる。
【００１１】
ファームウェアのデータサイズが大きい程、上記の第１の時間が長くなる第１の関係と、通信装置と複数個の機能実行装置との間の平均通信速度が大きい程、上記の第１の時間が短くなる第２の関係と、ファームウェア供給処理が実行されるべき機能実行装置の数が多い程、上記の第１の時間が長くなる第３の関係と、第２の順番決定処理の実行回数が多い程、上記の第１の時間が長くなる第４の関係と、の少なくとも１個の関係を満たすように、上記の第１の時間を決定する時間決定部をさらに備えていてもよい。この構成によれば、適切な第１の時間を決定し得る。例えば、第２の順番決定処理の実行回数が多い程、上記の第１の時間を長くなる場合には、第２の順番決定処理の実行回数が多い程、第２の取得処理が実行されにくくなる。この結果、第２の取得処理と、第２の順番決定処理と、が繰り返し実行される事態を回避することができる。
【００１２】
順次供給部が最初のファームウェア供給処理を実行する前に、複数個の機能実行装置のそれぞれに、ファームウェアを供給することを示すファームウェア通知を供給する通知供給部をさらに備えていてもよい。
【００１３】
複数個の機能実行装置のそれぞれについて、当該機能実行装置について第１の順番決定処理で決定された順位と、ファームウェアのデータサイズと、通信装置と前記複数個の機能実行装置との間の平均通信速度と、の少なくとも１個を用いて、当該機能実行装置に前記ファームウェアが供給されるべき予定時刻に関する予定時刻情報を算出する算出部をさらに備えていてもよい。通知供給部は、複数個の機能実行装置のそれぞれに、当該機能実行装置について算出された予定時刻情報を含むファームウェア通知を供給してもよい。この構成によれば、機能実行装置は、自身にファームウェアが供給されるべき予定時刻を取得することができる。機能実行装置が予定時刻を出力することによって、機能実行装置のユーザは、機能実行装置がファームウェアを更新すべき時刻を知ることができる。即ち、ユーザは、機能実行装置が機能を実行することができなくなる時刻を知ることができる。
【００１４】
特定情報取得部は、複数個の機能実行装置のそれぞれから、当該機能実行装置が最後に機能を実行した時刻を含む特定情報を取得する第１の取得処理を実行してもよい。通信装置は、順次供給部が最初のファームウェア供給処理を実行する前に、第１の取得処理で取得される複数個の特定情報を用いて、複数個の機能実行装置の中から、最後に機能を実行した時刻と現在時刻との差分時間が、第２の時間以内である機能実行装置群を特定し、予定時刻情報の出力指示を機能実行装置群に供給する指示供給部をさらに備えていてもよい。この構成によれば、最近に機能を実行した機能実行装置、即ち、ユーザによって利用される可能性が高い機能実行装置は、ファームウェアが供給されるべき予定時刻を出力することができる。
【００１５】
順次供給部は、ファームウェア供給処理が実行されるべき特定の機能実行装置が特定の機能を実行している場合に、第１の順番決定処理で決定された順番に関わらず、上記の特定の機能実行装置が上記の特定の機能を実行し終えた後で、上記の特定の機能実行装置にファームウェアを供給してもよい。機能を実行している特定の機能実行装置は、通常、ファームウェアを更新することができない。この構成によれば、通信装置は、機能実行装置がファームウェアを更新することが可能となった後に、ファームウェアを供給することができる。
【００１６】
上記の通信装置に接続される機能実行装置も新規で有用である。この機能実行装置は、ファームウェアを供給する通信装置に接続される。この機能実行装置は、入力部と、特定情報供給部と、ファームウェア取得部と、を備える。入力部は、機能実行装置が機能を実行するための機能実行指示を入力する。特定情報供給部は、機能実行装置自身が最後に機能を実行した時刻を含む特定情報を、通信装置に供給する。ファームウェア取得部は、通信装置からファームウェアを取得する。
【００１７】
上記の機能実行装置は、通知取得部と、出力指示取得部と、出力部と、をさらに備えていてもよい。通知取得部は、ファームウェアが供給されるべき予定時刻に関する予定時刻情報を含むファームウェア通知を、通信装置から取得してもよい。出力指示取得部は、予定時刻情報の出力指示を、通信装置から取得してもよい。出力部は、出力指示が取得される場合に、予定時刻情報を出力してもよい。出力部は、出力指示が取得されなくても、機能実行指示が入力される場合に、予定時刻情報を出力してもよい。この構成によれば、機能実行装置のユーザは、機能実行装置がファームウェアを更新すべき予定時刻、即ち、機能実行装置が機能を実行することができなくなる時刻を知ることができる。
【００１８】
なお、上記の通信装置と機能実行装置とを備えるシステムも新規で有用である。また、上記の通信装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納しているコンピュータ読取可能記憶媒体も新規で有用である。また、上記の機能実行装置を実現するための制御方法、コンピュータプログラム、及び、当該コンピュータプログラムを格納しているコンピュータ読取可能記憶媒体も新規で有用である。
【図面の簡単な説明】
【００１９】
【図１】ネットワークシステムの構成を示す。
【図２】ＰＣが実行する処理のフローチャートを示す。
【図３】ＰＣが実行する処理を説明するための表を示す。
【図４】多機能機が実行する処理のフローチャートを示す。
【発明を実施するための形態】
【００２０】
（ネットワークシステムの構成）
図面を参照して実施例を説明する。図１に示すように、ネットワークシステム２は、ＰＣ１０と、複数個の多機能機６０，２００，３００とを備える。ＰＣ１０は、複数個の多機能機６０，２００，３００と、ＬＡＮ４を介して通信可能に接続されている。なお、本実施例では、ＰＣ１０は、３個の多機能機６０，２００，３００と接続されているが、ＰＣ１０に接続される多機能機の個数に制限はない。
【００２１】
（ＰＣの構成）
ＰＣ１０は、操作部１２と、表示部１４と、ネットワークインターフェイス１６と、制御部２０と、を備える。制御部２０は、ＣＰＵ２２とメモリ３０とを備える。ＣＰＵ２２は、メモリ３０に記憶されているプログラム３２に従って処理を実行する。ＣＰＵ２２がプログラム３２に従って処理を実行することによって、特定情報取得部４０、順番決定部４２、順次供給部４４、時間決定部４６、通知供給部４８、算出部５０、及び指示供給部５２の機能が実現される。
【００２２】
メモリ３０は、ＣＰＵ２２によって実行されるプログラム３２を記憶している。メモリ３０は、ファームウェア格納領域３４と多機能機情報格納領域３６とを備える。
【００２３】
ファームウェア格納領域３４は、各多機能機６０，２００，３００で利用されるべきファームウェアを格納するための格納領域である。ファームウェア格納領域３４に格納されたファームウェアは、多機能機６０，２００，３００に供給される。制御部２０は、例えば、ＬＡＮ４を介して、多機能機６０，２００，３００のベンダが提供するサーバから、ファームウェアを取得する。あるいは、制御部２０は、例えば、ＰＣ１０にセットされたＣＤ−ＲＯＭ等の記録媒体を読み取ることによって、記録媒体に記憶されているファームウェアを取得する。
【００２４】
多機能機情報格納領域３６は、情報テーブル３８を格納している。情報テーブル３８には、複数個の多機能機６０，２００，３００のそれぞれについて、当該多機能機の機能実行時刻３８ａと順位３８ｂとが記録される。機能実行時刻３８ａは、多機能機６０，２００，３００が最後に機能を実行した時刻である。順位３８ｂは、多機能機６０，２００，３００にファームウェア供給処理を実行すべき順位である。
【００２５】
（第１多機能機の構成）
次いで、第１多機能機６０の構成について説明する。なお、多機能機２００，３００は、第１多機能機６０と同一の構成である。第１多機能機６０は、ネットワークインターフェイス６２と、操作部６４と、表示部６６と、スキャン部６８と、印刷実行部７０と、制御部８０と、を備える。
【００２６】
制御部８０は、ＣＰＵ８２とメモリ９０とを備える。ＣＰＵ８２は、メモリ９０に記憶されているプログラム９２に従って処理を実行する。ＣＰＵ８２がプログラム９２に従って処理を実行することによって、入力部１００、特定情報供給部１０２、ファームウェア取得部１０４、通知取得部１０６、出力指示取得部１０８、及び出力部１１０の機能が実現される。
【００２７】
ＣＰＵ８２は、メモリ９０に記憶されているプログラム９２及びファームウェア９４に従って、スキャン部６８と印刷実行部７０とに機能を実行させる。即ち、第１多機能機６０は、スキャン機能と印刷機能とを実行することができる。
【００２８】
メモリ９０は、ＣＰＵ８２によって実行されるプログラム９２とファームウェア９４とを記憶している。
【００２９】
（ＰＣが実行する処理）
次いで、図２を参照して、ＰＣ１０が実行する処理を説明する。本処理は、ＰＣ１０のファームウェア格納領域３４に、新たにファームウェアが格納されると、開始される。最初に、制御部２０は、ＰＣ１０と各多機能機６０，２００，３００との間の平均通信速度を算出する（Ｓ１２）。具体的には、制御部２０は、予め決められたデータサイズを有する計測用パケットを第１多機能機６０に供給する。第１多機能機６０は、計測用パケットを取得すると、予め決められたデータサイズを有する返信用パケットをＰＣ１０に供給する。制御部２０は、計測用パケットを供給してから返信パケットを取得するまでの時間を計測する。制御部２０は、計測用パケットのデータサイズと返信用パケットのデータサイズとを加算した値を、計測された時間で除算することによって、ＰＣ１０と第１多機能機６０との間の通信速度を算出する。制御部２０は、第１多機能機６０と同様の手法で、ＰＣ１０と各多機能機２００，３００との間の通信速度を算出する。次いで、制御部２０は、算出された複数個の通信速度の平均を算出することによって、平均通信速度を算出する。
【００３０】
続いて、制御部２０は、ファームウェア格納領域３４に格納されたファームウェアのデータサイズを特定する（Ｓ１４）。次に、特定情報取得部４０は、第１の取得処理を実行する（Ｓ１６）。具体的には、特定情報取得部４０は、第１多機能機６０が最後に機能を実行した時刻（以下では単に「機能実行時刻」と呼ぶ）を含む特定情報をＰＣ１０に供給させるための供給指示を、第１多機能機６０に供給する。特定情報取得部４０は、第１多機能機６０から供給された特定情報を取得する。次いで、特定情報取得部４０は、取得された特定情報に含まれる機能実行時刻を、情報テーブル３８の第１多機能機６０に対応する機能実行時刻３８ａに記録する。特定情報取得部４０は、第１多機能機６０の場合と同様の手法で、第２多機能機２００と第３多機能機３００のそれぞれから、特定情報を取得する。次いで、特定情報取得部４０は、複数個の多機能機２００，３００のそれぞれについて、当該多機能機２００，３００から取得された特定情報に含まれる機能実行時刻を、情報テーブル３８の当該多機能機２００，３００に対応する機能実行時刻３８ａに記録する。
【００３１】
次いで、順番決定部４２は、第１の順番決定処理を実行する（Ｓ１８）。具体的には、順番決定部４２は、機能実行時刻３８ａに記録された機能実行時刻の古い順に、各多機能機６０，２００，３００の順位を決定する。順番決定部４２は、複数個の多機能機６０，２００，３００のそれぞれについて、当該多機能機に対して決定された順位を、情報テーブル３８の当該多機能機に対応する順位３８ｂに記録する。本実施例では、図１に示すように、第３多機能機３００、第２多機能機２００、第１多機能機６０の順で順番が決定された場合を例にして、以下の処理について説明する。
【００３２】
次いで、算出部５０は、複数個の多機能機６０，２００，３００のそれぞれについて、当該多機能機にファームウェアが供給されるべき予定時刻を算出する（Ｓ２２）。具体的には、算出部５０は、Ｓ１４で特定されたファームウェアのデータサイズを、Ｓ１２で算出された平均通信速度で除算する。これにより、算出部５０は、１個の多機能機にファームウェアを供給するための必要時間を算出する。次いで、算出部５０は、第１多機能機６０について、Ｓ１８の第１の順番決定処理で決定された順位（即ち「３」）に「１」を減算した値と、算出された必要時間と、を乗算する。続いて、算出部５０は、乗算によって得られた時間に、現在時刻を加算することによって、第１多機能機６０の予定時刻を算出する。算出部５０は、第１多機能機６０の場合と同様の手法で、複数個の多機能機２００，のそれぞれについて、予定時刻を算出する。
【００３３】
次いで、通知供給部４８は、複数個の多機能機６０，２００，３００に対応する複数個のファームウェア通知を生成する。通知供給部４８は、複数個の多機能機６０，２００，３００のそれぞれについて、当該多機能機の予定時刻を示す予定時刻情報と、ファームウェアを供給することを示す情報と、を含むファームウェア通知を生成する。通知供給部４８は、複数個の多機能機６０，２００，３００のそれぞれに、当該多機能機に対応するファームウェア通知を供給する（Ｓ２４）。この結果、複数個の多機能機６０，２００，３００のそれぞれは、自身にファームウェアが供給されるべき時刻を予め知ることができる。
【００３４】
次いで、指示供給部５２は、複数個の多機能機６０，２００，３００のそれぞれについて、情報テーブル３８の機能実行時刻３８ａに記録された当該多機能機の機能実行時刻と現在時刻との差分時間を算出する。続いて、指示供給部５２は、複数個の多機能機６０，２００，３００の中から、算出された差分時間が第２の時間（例えば１時間）以内である多機能機（以下では「特定の多機能機」と呼ぶ）を特定する（Ｓ２６）。なお、第２の時間は、予めベンダ又はＰＣ１０のユーザによって決められている。次いで、指示供給部５２は、Ｓ２４で上記の特定の多機能機に供給されたファームウェア通知に含まれる予定時刻情報を、上記の特定の多機能機の表示部（例えば、第１多機能機６０の表示部６６）に表示させるための表示指示を、上記の特定の多機能機に供給する（Ｓ２８）。表示指示を取得した上記の特定の多機能機は、予定時刻情報を、表示部に表示させることができる。
【００３５】
上記の特定の多機能機は、複数個の多機能機６０，２００，３００のうち、ユーザが機能を再び実行させる可能性が比較的に高い多機能機であるといえる。上記の特定の多機能機が予定時刻情報を表示させることによって、上記の特定の多機能機のユーザは、上記の特定の多機能機にファームウェアが供給されるべき予定時刻を知ることができる。即ち、上記の特定の多機能機のユーザは、上記の特定の多機能機が機能を実行することができなくなる時刻を知ることができる。一方において、複数個の多機能機６０，２００，３００のうち、上記の特定の多機能機以外の多機能機は、ユーザが機能を実行させる可能性が比較的に低い多機能機であるといえる。従って、上記の特定の多機能機以外の多機能機のユーザに、予定時刻を知らせる必要性が低い。このことから、指示供給部５２は、上記の特定の多機能機以外の多機能機に表示指示を供給しない。これにより、ＰＣ１０及び上記の特定の多機能機以外の多機能機の処理負荷を低減することができる。
【００３６】
なお、別の実施例では、指示供給部５２は、上記の特定の多機能機の印刷実行部（例えば第１多機能機６０の印刷実行部７０）に、予定時刻情報を印刷させるための印刷指示を、上記の特定の多機能機に供給してもよい。
【００３７】
次いで、制御部２０は、情報テーブル３８の順位３８ｂに最も小さい値が記録されている多機能機を選択する（Ｓ３０）。続いて、時間決定部４６は、第１の時間を決定する（Ｓ３２）。具体的には、Ｓ１２で算出された平均通信速度をＶとし、Ｓ１４で特定されたファームウェアのデータサイズをＤとし、後述するＳ４０で実行される第２の順番決定処理の実行回数をＦとし、ファームウェアを供給すべき多機能機の個数をＬ（本実施例では「３」）とする場合に、時間決定部４６は、ｋ×Ｌ×Ｄ×Ｆ／Ｖ（ｋは任意の定数）を計算することによって、第１の時間を算出する。なお、Ｓ４０の第２の順番決定処理が実行されていない場合には、上記の数式で決定される第１の時間は、「０」である。
【００３８】
制御部２０は、情報テーブル３８を用いて、Ｓ３０で選択された多機能機（以下では「対象多機能機」と呼ぶ）の機能実行時刻と、現在時刻と、の差分時間が、Ｓ３２で決定された第１の時間以内であるのか否かを判断する（Ｓ３４）。機能実行時刻と現在時刻との差分時間が第１の時間以内である場合（Ｓ３４でＹＥＳ）にＳ４２に進み、機能実行時刻と現在時刻との差分時間が第１の時間よりも長い場合（Ｓ３４でＮＯ）にＳ３６に進む。
【００３９】
Ｓ３６では、特定情報取得部４０は、対象多機能機から、特定情報を取得するための第２の取得処理を実行する。第２の取得処理は、第１の取得処理と同様の手法で実行される。続いて、順番決定部４２は、Ｓ３６で取得された特定情報に含まれる機能実行時刻が、情報テーブル３８に記録されている対象多機能機の現在の機能実行時刻と異なっているのか否かを判断する（Ｓ３８）。機能実行時刻が異なっている場合（Ｓ３８でＹＥＳ）にＳ４０に進み、機能実行時刻が同じ場合（Ｓ３８でＮＯ）にＳ４２に進む。
【００４０】
Ｓ４０では、順番決定部４２は、第２の順番決定処理を実行して、Ｓ３０に戻る。第２の順番決定処理は、Ｓ１８の第１の順番決定処理と同様の手法で実行される。即ち、順番決定部４２は、まず、情報テーブル３８に記録されている対象多機能機の現在の機能実行時刻を、Ｓ３６で対象多機能機から取得された特定情報に含まれる機能実行時刻に更新する。次いで、順番決定部４２は、機能実行時刻３８ａに記録された機能実行時刻の古い順に、各多機能機６０，２００，３００の順位を決定する。
【００４１】
Ｓ４２では、順次供給部４４は、ファームウェア格納領域３４に格納されているファームウェアを、対象多機能機に供給する。なお、順次供給部４４がファームウェアを供給するタイミングで、対象多機能機が、機能を実行している場合がある。この場合、対象多機能機は、ファームウェアを取得しても、ファームウェアを更新することができない。このとき、対象多機能機は、ファームウェアの更新ができなかったことを示すエラー情報を、ＰＣ１０に供給する。制御部２０は、エラー情報を取得することを監視する（Ｓ４４）。エラー情報が取得される（Ｓ４４でＹＥＳ）と、順番決定部４２は、対象多機能機の順位を、最後の順位に決定して（Ｓ４６）、Ｓ３０に戻る。即ち、順番決定部４２は、対象多機能機の順位が最後の順位になり、他の多機能機の順位が繰り上がるように、情報テーブル３８を更新する。これにより、ＰＣ１０は、多機能機が機能を実行し終えた後に、当該多機能機にファームウェアを供給することができる。
【００４２】
一方、ファームウェアを供給してから所定時間の間に、エラー情報が取得されない場合（Ｓ４４でＮＯ）、順次供給部４４は、情報テーブル３８のうち、ファームウェアが供給された多機能機の機能実行時刻３８ａと順位３８ｂとを削除する。次いで、制御部２０は、全ての多機能機６０，２００，３００にファームウェアを供給したのか否かを判断する（Ｓ４８）。制御部２０は、情報テーブル３８の順位３８ｂが全て削除されているのか否かを判断することによって、全ての多機能機６０，２００，３００にファームウェアを供給したのか否かを判断する。ファームウェアを供給していない多機能機が残っている場合（Ｓ４８でＮＯ）、Ｓ３０に戻る。一方、ファームウェアを供給していない多機能機が残っていない場合（Ｓ４８でＹＥＳ）、制御部２０は、処理を終了する。
【００４３】
次いで、図２の処理を、具体例を挙げて説明する。本具体例では、図３に示すように、Ｓ１６の第１の取得処理において、複数個の多機能機６０，２００，３００から取得された特定情報に含まれる機能実行時刻のそれぞれは、「１０：００：００」、「９：０５：１０」及び「８：４５：３０」である。この場合、Ｓ１８の第１の順番決定処理では、順番決定部４２は、第３多機能機３００、第２多機能機２００、第１多機能機６０の順に、ファームウェアを供給するための順位を決定する。次いで、現在時刻が１０：１０：００であり、第２の時間が１時間である場合に、Ｓ２６では、指示供給部５２は、現在時刻と機能実行時刻との差分時間が、１時間以内である第１多機能機６０を特定し、Ｓ２８において、表示指示を供給する。
【００４４】
Ｓ２８に続いて実行される１回目のＳ３０の処理では、制御部２０は、Ｓ１８の第１の順番決定処理で１番に決定された（情報テーブル３８の順位３８ｂに「１」が記録されている）第３多機能機３００を選択する。Ｓ３４では、Ｓ１６で取得された第３多機能機３００の機能実行時刻と現在時刻との差分時間が、Ｓ３２で特定された第１の時間より長いため、Ｓ３６の第２の取得処理が実行される。なお、１回目のＳ３２では、Ｓ４０の第２の順番決定処理が実行されていないため、第１の時間は、「０」である。Ｓ３６の第２の取得処理において、特定情報取得部４０が第３多機能機３００から取得した新たな特定情報に含まれる機能実行時刻は、「１０：１５：００」である。即ち、Ｓ３４で取得された機能実行時刻は、Ｓ１６で取得された機能実行時刻「８：４５：３０」と異なっている。従って、順番決定部４２は、Ｓ４０の第２の順番決定処理を実行する。ここでは、順番決定部４２は、第２多機能機２００、第１多機能機６０、第３多機能機３００の順に、ファームウェアを供給するための順番を決定する。
【００４５】
Ｓ４０の第２の順番決定処理の次に実行される２回目のＳ３０では、制御部２０は、Ｓ４０の第２の順番決定処理で１番に決定された（情報テーブル３８の順位３８ｂに「１」が記録されている）第２多機能機２００を選択する。Ｓ３４において、第２の取得処理を実行する（Ｓ３４でＮＯ）と判断されると、特定情報取得部４０は、第２多機能機２００から、新たな特定情報を取得する（Ｓ３６の第２の取得処理）。Ｓ３６において、特定情報取得部４０が第２多機能機２００から取得した新たな特定情報に含まれる機能実行時刻は、「９：０５：１０」である。即ち、Ｓ３６で取得された機能実行時刻は、Ｓ１６で取得された機能実行時刻と同じである。この場合には、Ｓ３８において、順番決定部４２はＮＯと判断する。順次供給部４４は、第２多機能機２００にファームウェアを供給する（Ｓ４２）。順次供給部４４は、第２多機能機２００にファームウェアを供給すると、情報テーブル３８内の第２多機能機２００と組み合わせて記録されている機能実行時刻３８ａと順位３８ｂとを削除する。
【００４６】
次いで実行されるＳ３０では、制御部２０は、情報テーブル３８内の順位３８ｂの最も低い順位、即ち、順位３８ｂに「２」が記録されている第１多機能機６０を選択する。第１多機能機６０の機能実行時刻と現在時刻との差分時間が第１の時間以内であるため、Ｓ３４において、第２の取得処理を実行しない（Ｓ３４でＹＥＳ）と判断される。この場合、Ｓ４２において、順次供給部４４は、第１多機能機６０にファームウェアを供給する。順次供給部４４は、第１多機能機６０にファームウェアを供給すると、情報テーブル３８内の第１多機能機６０と組み合わせて記録されている機能実行時刻３８ａと順位３８ｂとを削除する。
【００４７】
次に実行されるＳ３０では、制御部２０は、第３多機能機３００を選択し、以後の処理を実行する。なお、ファームウェアを供給すべき残りの多機能機が１個となった場合には、Ｓ３２からＳ３８の処理は実行されない。Ｓ４２では、順次供給部４４は、第３多機能機３００にファームウェアを供給する。第３多機能機３００は、自身が機能実行中にファームウェアを取得すると、上記のエラー情報を、ＰＣ１０に供給する。制御部２０は、第３多機能機３００からエラー情報を取得すると、所定の時間（例えば５分）だけ待機して、第３多機能機３００に、再度ファームウェアを供給する。順次供給部４４は、第３多機能機３００からエラー情報が取得されなくなるまで、上記の待機、供給処理を繰り替し実行する。順次供給部４４は、ファームウェアの供給後、エラー情報を取得しない場合に、情報テーブル３８内の第１多機能機６０と組み合わせて記録されている機能実行時刻３８ａと順位３８ｂとを削除する。
【００４８】
（第１多機能機が実行する処理）
次いで、第１多機能機６０が実行する処理について説明する。第１多機能機６０の特定情報供給部１０２は、特定情報を供給するための供給指示を、ＰＣ１０から取得することを監視している（Ｓ１００）。特定情報供給部１０２は、ＰＣ１０から供給指示を取得すると（Ｓ１００でＹＥＳ）、特定情報を生成する。特定情報供給部１０２は、第１多機能機６０が最後に機能を実行した機能実行時刻を含む特定情報を生成する。第１多機能機６０が機能を実行している最中の場合、特定情報供給部１０２は、機能実行時刻として、現在時刻を含む特定情報を生成する。特定情報供給部１０２は、生成された特定情報をＰＣ１０に供給する（Ｓ１０２）。
【００４９】
別の実施例では、第１多機能機６０が機能を実行している最中の場合、特定情報供給部１０２は、機能実行時刻に替えて、機能実行中であることを示す情報を含む特定情報を、ＰＣ１０に供給してもよい。機能実行中であることを示す情報を含む特定情報が取得される場合には、ＰＣ１０の特定情報取得部４０は、情報テーブル３８の機能実行時刻３８ａに、現在時刻を記録してもよい。
【００５０】
次いで、通知取得部１０６は、図２のＳ２４でＰＣ１０から供給されたファームウェア通知を取得する（Ｓ１０４）。続いて、出力指示取得部１０８は、ＰＣ１０から供給された表示指示（図２のＳ２８参照）を取得することを監視する（Ｓ１０６）。表示指示が取得された場合（Ｓ１０６でＹＥＳ）、出力部１１０は、Ｓ１０４で取得されたファームウェア通知に含まれる予定時刻情報を、表示部６６に表示させて（Ｓ１０８）、Ｓ１１２に進む。一方、所定時間の間に、表示指示が取得されなかった場合（Ｓ１０６でＮＯ）、第１多機能機６０のユーザが入力部１００に機能実行指示を入力されたのか否かを判断する（Ｓ１１０）。機能実行指示は、例えば、上記のユーザが操作部６４を操作することによって、スキャン部６８にスキャン機能を実行させるための操作と、スキャン部６８と印刷実行部７０とにコピー機能を実行させるための操作と、第１多機能機６０に接続されたＰＣ（例えばＰＣ１０）をユーザが操作することによって、印刷実行部７０に印刷機能を実行させるための指示と、を含む。
【００５１】
機能実行指示が入力された場合（Ｓ１１０でＹＥＳ）、Ｓ１０８に進んで、出力部１１０は、Ｓ１０４で取得されたファームウェア通知に含まれる予定時刻情報を、表示部６６に表示させて、Ｓ１１２に進む。この結果、第１多機能機６０のユーザは、ファームウェアが供給されるべき予定時刻を知ることができる。一方、機能実行指示が入力されなかった場合（Ｓ１１０でＮＯ）、Ｓ１１２に進む。
【００５２】
Ｓ１１２では、特定情報供給部１０２は、ＰＣ１０から特定情報を供給するための供給指示が取得されたのか否かを判断する。即ち、ＰＣ１０が第２の取得処理（図２のＳ３６）を実行することによって、ＰＣ１０から供給された供給指示が取得されたのか否かを判断する。特定情報供給部１０２は、ＰＣ１０から供給指示を取得すると（Ｓ１１２でＹＥＳ）、特定情報を生成し、生成された特定情報をＰＣ１０に供給して（Ｓ１１４）、Ｓ１１６に進む。一方、ＰＣ１０から供給指示が取得されなかった場合（Ｓ１１２でＮＯ）、Ｓ１１６に進む。
【００５３】
Ｓ１１６では、ファームウェア取得部１０４は、ＰＣ１０からファームウェアが取得されたのか否かを判断する。ファームウェアが取得された場合（Ｓ１１６でＹＥＳ）、制御部８０は、第１多機能機６０のファームウェアを更新する（Ｓ１１８）。なお、第１多機能機６０が機能を実行している最中の場合には、制御部８０は、ファームウェアを更新することができない。このため、制御部８０は、ファームウェアを更新できないことを示すエラー情報を、ＰＣ１０に供給して、Ｓ１１２の処理に戻る。
【００５４】
一方、ファームウェアが取得されなかった場合（Ｓ１１６でＮＯ）、Ｓ１１２に戻る。即ち、第１多機能機６０は、ＰＣ１０からファームウェアを取得するまで、Ｓ１１２からＳ１１６までの処理を繰り返し実行する。なお、Ｓ１０６で表示指示が取得されなかった場合には、第１多機能機６０は、Ｓ１１２からＳ１１６の処理と並行して、Ｓ１１０の処理を実行する。
【００５５】
実施例について詳しく説明した。ＰＣ１０は、第１の取得処理（図２のＳ１６参照）で取得された特定情報によって特定される機能実行時刻（機能実行タイミング）に基づいて、ファームウェアを供給すべき順番を決定する（図２のＳ１８参照）。ＰＣ１０は、機能実行時刻が前である程、ファームウェア供給処理が先に実行されるように、順番を決定する。この構成は、例えば、下記の具体的状況において有用である。即ち、複数の会議室のそれぞれに、１個の多機能機が設置されている場合がある。この場合において、第１の会議室では現在会議が行われており、他の会議室では現在会議が行われていない状況がある。第１の会議室の多機能機は会議中に再び利用される可能性が高い一方で、他の会議室の多機能機は利用される可能性が低い。この場合に、他の会議室の多機能機から先にファームウェアを供給し、第１の会議室の多機能機にファームウェアを供給するタイミングを後にすることによって、第１の会議室で会議が行われている間に、第１の会議室の多機能機が機能を実行できない状況を回避し得る。ＰＣ１０によれば、適切なタイミングで、多機能機にファームウェアを供給することができる。
【００５６】
ＰＣ１０は、ファームウェア供給処理が実行されるべき際に、ファームウェア供給処理の対象の多機能機から、特定情報を取得する（図２のＳ３６参照）。対象の多機能機は、第１の取得処理（図２のＳ１６参照）が実行された後、機能を実行している可能性がある。特に、ファームウェアを供給すべき多機能機が数多く存在する場合、第１の取得処理から、ファームウェア供給処理が実行されるまでの時間が長くなる。例えば、上記の具体的状況において、第１の取得処理が実行されたタイミングでは、対象の多機能機が設置されている会議室で会議が行われていないが、ファームウェア供給処理が実行されるべき際に、対象の多機能機が設置されている会議室で会議が行われている場合がある。この場合、第１の取得処理が実行されたタイミングでは、対象の多機能機の機能実行時刻が、他の多機能機の機能実行時刻よりも前であっても、ファームウェア供給処理が実行されるべきタイミングでは、対象の多機能機の機能実行時刻が、他の多機能機の機能実行時刻よりも後になっている可能性が高い。上記の構成によれば、対象の多機能機にファームウェアが供給されるタイミングを、遅くすることができる。これにより、対象の多機能機がファームウェアを更新することによって、対象の多機能機が設置されている会議室で会議が行われている間に、対象の多機能機が機能を実行することができなくなる事態を回避することができる。
【００５７】
ＰＣ１０は、ファームウェア供給処理が実行されるべき際に、対象の多機能機から取得された機能実行時刻と現在時刻との差分時間が第１の時間以内である場合（図２のＳ３４でＹＥＳの場合を参照）に、第２の取得処理（図２のＳ３６参照）を実行しない。これにより、図２のＳ３０〜Ｓ４０が繰り返し実行され、ファームウェア供給処理（図２のＳ４２参照）が実行されない事態を回避することができる。また、ＰＣ１０は、Ｓ１２で算出された平均通信速度をＶとし、Ｓ１４で特定されたファームウェアのデータサイズをＤとし、後述するＳ４０で実行される第２の順番決定処理の実行回数をＦとし、ファームウェアを供給すべき多機能機の個数をＬとする場合に、時間決定部４６は、ｋ×Ｌ×Ｄ×Ｆ／Ｖ（ｋは任意の定数）を計算することによって、第１の時間を算出する。この結果、第２の順番決定処理の実行回数が多くなる程、第１の時間が長くなる。このため、図２のＳ３０〜Ｓ４０が繰り返し実行されることを好適に回避することができる。
【００５８】
なお、ＰＣ１０が「通信装置」の一例であり、多機能機６０，２００，３００が「機能実行装置」の一例である。第２多機能機２００が「第２の機能実行装置」の一例であり、第３多機能機３００が「第１の機能実行装置」の一例である。Ｓ２８でＰＣ１０から多機能機６０，２００，３００に供給される表示指示が「出力指示」の一例である。
【００５９】
（変形例１）上記の実施例では、ＰＣ１０は、第１の順番決定処理（図２のＳ１６参照）において、機能実行時刻が古い順に、ファームウェア供給処理を実行すべき順番を決定する（以下では、「第１の手法を用いた第１の順番決定処理」と呼ぶ）。しかしながら、ＰＣ１０は、図２のＳ１６の第１の取得処理で取得された機能実行時刻に基づいて、他の手法を用いた第１の順番決定処理を実行してもよい。例えば、ＰＣ１０は、機能実行時刻が新しい順に、ファームウェア供給処理を実行すべき順番を決定してもよい（以下では「第２の手法を用いた第１の順番決定処理」と呼ぶ）。利用頻度が高い多機能機の機能実行時刻は、利用頻度が低い多機能機の機能実行時刻よりも新しい可能性が高い。本変形例の構成は、例えば、ユーザが、機能を実行する頻度が高い多機能機のファームウェアを、より早く最新のファームウェアに更新したいと考える場合に有用である。本変形例の場合、図２のＳ３２からＳ３８及びＳ４０の処理を実行しなくてもよい。即ち、一般的に言うと、順番決定部は、第１の機能実行装置が最後に機能を実行した第１のタイミングが、第２の機能実行装置が最後に機能を実行した第２のタイミングよりも前である場合に、第１の機能実行装置のためのファームウェア供給処理が、第２の機能実行装置のためのファームウェア供給処理よりも後に実行されるように、第１の順番決定処理を実行してもよい。
【００６０】
（変形例２）また、第１及び第２の手法以外の手法（以下では、「第３の手法」と呼ぶ）を用いた第１の順番決定処理を実行してもよい。例えば、ＰＣ１０は、最初に複数個の多機能機から取得された複数個の機能実行時刻のうち、最も古い機能実行時刻と、最も新しい機能実行時刻と、の中間の時刻を基準時刻と特定してもよい。次いで、ＰＣ１０は、複数個の多機能機を、基準時刻よりも前の機能実行時刻が取得された第１の多機能機群と、基準時刻よりも後の機能実行時刻が取得された第２の多機能機群と、に分類してもよい。続いて、ＰＣ１０は、第１の多機能機群に含まれる多機能機のためのファームウェア供給処理が、第２の多機能機群に含まれる多機能機のためのファームウェア供給処理よりも先に実行されるように、第１の順番決定処理を実行してもよい。なお、第１の多機能機群と第２の多機能機群との先後関係は、上記に限られない。また、各多機能機群に含まれる多機能機の順番は、任意の順番であってもよい。本変形例では、第１の多機能機群に含まれる多機能機が「第１の機能実行装置」の一例であり、第２の多機能機群に含まれる多機能機が「第２の機能実行装置」の一例である。
【００６１】
（変形例３）順番決定部４２は、第１の順番決定処理（図２のＳ１６参照）を実行する前に、上記の第１から第３の手法の少なくとも２個の手法を含む複数個の手法のうち、いずれの手法を用いた第１の順番決定処理を実行すべきであるのかを、ＰＣ１０のユーザに選択することを許容してもよい。順番決定部４２は、ユーザによって選択された手法を用いた第１の順番決定処理を実行してもよい。この構成によれば、ユーザの好みに合わせて、ファームウェア供給処理を実行すべき順番を決定することができる。
【００６２】
（変形例４）上記の実施例では、複数個の多機能機６０，２００，３００のそれぞれは、ＰＣ１０から特定情報供給指示を取得すると、特定情報をＰＣ１０に供給する。しかしながら、複数個の多機能機６０，２００，３００のそれぞれは、当該多機能機が機能を実行するタイミング（例えば、機能を実行し終えたタイミング、機能を実行し始めるタイミング）で、機能を実行したことを示す特定情報を、ＰＣ１０に供給してもよい。ＰＣ１０は、複数個の多機能機６０，２００，３００のいずれかから特定情報を取得するごとに、特定情報を取得した多機能機６０，２００，３００の順位が最後の順位となるように、情報テーブル内の順位を変更してもよい。一般的に言うと、「第１の取得処理」は、本変形例の手法を用いて特定情報を取得することを含む。
【００６３】
（変形例５）上記の実施例では、ファームウェア供給処理（図２のＳ４２参照）では、ＰＣ１０は、ファームウェアを供給した多機能機からエラー情報を取得する場合に、当該多機能機の順位を最後の順位にする。しかしながら、ＰＣ１０は、ファームウェア供給処理において、最初に、ファームウェアを供給すべき対象多機能機に、現在機能を実行中であるのか否かを問い合わせてもよい。ＰＣ１０は、対象多機能機から機能実行中であることを示す情報が取得された場合に、対象多機能機の順位を最後の順位にしてもよい。
【００６４】
（変形例６）「機能実行装置」は、多機能機６０，２００，３００以外に、プリンタ、スキャナ、ＦＡＸ、携帯端末（携帯電話、ＰＤＡ等）、ＰＣ等であってもよい。また、「通信装置」は、多機能機であってもよい。この場合、当該多機能機は、自身のファームウェアが新たなファームウェアに更新されると、新たなファームウェアを他の多機能機６０，２００，３００に供給してもよい。また、「通信装置」は、プリンタ、スキャナ、ＦＡＸ、携帯端末（携帯電話、ＰＤＡ等）等であってもよい。
【００６５】
（変形例７）上記の実施例では、ＣＰＵ２２がプログラム３２に従って処理を実行することによって各部４０〜５２が実現されるが、各部４０〜５２の少なくとも１個は、論理回路等のハードウェアで実現されてもよい。同様に、上記の実施例では、ＣＰＵ８２がプログラム９２に従って処理を実行することによって各部１００〜１１０が実現されるが、各部１００〜１１０の少なくとも１個は、論理回路等のハードウェアで実現されてもよい。
【００６６】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【符号の説明】
【００６７】
２：ネットワークシステム、１０：ＰＣ、２０：制御部、３０：メモリ、３２：プログラム、３４：ファームウェア格納領域、３６：多機能機情報格納領域、３８：情報テーブル、４０：特定情報取得部、４２：順番決定部、４４：順次供給部、４６：時間決定部、４８：通知供給部、５０：算出部、５２：指示供給部、６０：第１多機能機、６８：スキャン部、７０：印刷実行部、８０：制御部、９０：メモリ、９２：プログラム、９４：ファームウェア、１００：入力部、１０２：特定情報供給部、１０４：ファームウェア取得部、１０６：通知取得部、１０８：出力指示取得部、１１０：出力部、２００：第２多機能機、３００：第３多機能機
【図１】
2012003529.tif 000003
【図２】
2012003529.tif 000004
【図３】
2012003529.tif 000005
【図４】
2012003529.tif 000006