JP4673284B2 - サーバ装置 - Google Patents

サーバ装置 Download PDF

Info

Publication number
JP4673284B2
JP4673284B2 JP2006339065A JP2006339065A JP4673284B2 JP 4673284 B2 JP4673284 B2 JP 4673284B2 JP 2006339065 A JP2006339065 A JP 2006339065A JP 2006339065 A JP2006339065 A JP 2006339065A JP 4673284 B2 JP4673284 B2 JP 4673284B2
Authority
JP
Japan
Prior art keywords
time
jobs
firmware update
server
period
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.)
Expired - Fee Related
Application number
JP2006339065A
Other languages
English (en)
Other versions
JP2008152482A (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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2006339065A priority Critical patent/JP4673284B2/ja
Priority to US11/955,941 priority patent/US20080148268A1/en
Publication of JP2008152482A publication Critical patent/JP2008152482A/ja
Application granted granted Critical
Publication of JP4673284B2 publication Critical patent/JP4673284B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/482Application
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Description

本発明は、サーバ装に関し、特に、プログラムの更新のスケジュールを決定するサーバ装に関する。
従来より、遠隔地にあるサーバが、ネットワーク上に存在するデータ処理装置に組み込まれたファームウェアを更新する技術が知られている(例えば、特許文献1参照)。この技術では、サーバが、設備情報と、ファームウェアのバージョン情報とを管理する。また、サーバは、設備情報及びファームウェアのリリース日時等の情報に基づいて、自動的にファームウェア更新対象となるデータ処理装置を選び出す。サーバは、この更新対象となるデータ処理装置に対してファームウェアと、更新手順を示したシナリオとを伝送する。データ処理装置は、伝送されたシナリオに基づいてファームウェアの更新を行う。
特開平07−248913号公報
しかしながら、上記特許文献1に記載されたファームウェアの更新技術では、同じ機種の同じバージョンのデータ処理装置が複数台存在した場合、複数台のデータ処理装置において一斉にファームウェアの更新が実行されてしまう。そのため、ファームウェアの更新を実行する間、複数台のデータ処理装置が一斉に使用できなくなるので、ユーザの業務に大いに支障を発生させる。ユーザの業務に与える支障を軽減するに当たっては、データ処理装置でのジョブの実行状況を考慮するのが望ましい。
本発明の目的は、ジョブの実行頻度の高いクライアント装置から優先的にプログラムの更新期間を決定するとともにジョブの実行回数が最も少なくかつ隣接する期間におけるジョブの実行回数が最も少ない期間を更新期間として決定し、更に、特定のクライアント装置と他のクライアント装置がプログラムを更新する更新期間が同一期間となることを避けることができるサーバ装を提供することにある。
上述の目的を達成するために、請求項1記載のサーバ装置は、ジョブを実行する複数のクライアント装置にプログラムを送信し、前記複数のクライアント装置にプログラムを更新させるサーバ装置であって、前記クライアント装置によって複数の期間の各々で実行されたジョブの実行状況を示す実行状況データを前記複数のクライアント装置の各々から取得する取得手段と、前記取得手段により取得された複数の前記実行状況データに基づいて、前記複数のクライアント装置の各々がプログラムを更新する更新期間をジョブの実行頻度の高いクライアント装置から優先的に決定する決定手段とを備え、前記決定手段は、前記複数のクライアント装置に含まれる特定のクライアント装置の前記更新期間を決定する際に、前記取得手段により取得された前記特定のクライアント装置の実行状況データに基づいて前記複数の期間の中から前記特定のクライアント装置におけるジョブの実行回数が最も少ない期間を検出し、前記検出した期間が単数である場合は前記検出した期間を前記特定のクライアント装置の前記更新期間として決定する一方で前記検出した期間が複数である場合は前記検出した期間に隣接する期間におけるジョブの実行回数が最も少ない期間を前記特定のクライアント装置の前記更新期間として決定するとともに、記特定のクライアント装置がプログラムを更新する更新期間が前記複数のクライアント装置に含まれる他のクライアント装置がプログラムを更新する更新期間として決定済みである場合は、前記特定のクライアント装置がプログラムを更新する更新期間を前記決定済みの更新期間と異ならせることを特徴とする。
本発明によれば、ジョブの実行頻度の高いクライアント装置から優先的にプログラムの更新期間を決定するとともにジョブの実行回数が最も少なくかつ隣接する期間におけるジョブの実行回数が最も少ない期間を更新期間として決定し、更に、特定のクライアント装置と他のクライアント装置がプログラムを更新する更新期間が同一期間となることを避けることができる。
以下、図面を参照しながら本発明の実施の形態を詳細に説明する。
[第1の実施の形態]
図1は、第1の実施の形態に係るサーバ装置を含むデータ処理装置の内部構成を示すブロック図である。
図1において、画像処理装置100(データ処理装置)は、CPU(中央演算装置)101、フラッシュROM102、RAM(ランダムアクセスメモリ)103、外部記憶装置104、表示部105、及び操作部106を備える。また、画像処理装置100は、エンジンI/F(インターフェース)107、USBデバイスI/F110、セントロI/F111、ネットワークI/F112、及びFAX Unit113、RTC(Real Time Clock)114を備える。これらは、システムバス115を介して互いに接続されている。また、画像処理装置100は、スキャナエンジン108、及びプリンタエンジン109を備え、これらはエンジンI/F107に接続されている。
CPU101は、画像処理装置100全体の制御及び演算処理等を行う。フラッシュROM102は、読み出し専用メモリであり、システム起動プログラムやプリンタエンジンの制御を行うプログラムや、文字データ、文字コード情報等の記憶領域である。フラッシュROM102は、通常時はROMとして動作するが、プログラムにより電気的に内部のデータの消去及び書き込みが可能である。
RAM103は、使用制限のないデータ記憶領域であり、PDLデータの展開領域として使用したり、PDLデータからDLデータへの変換、DLデータからビットマップデータへの変換など様々な処理毎にプログラムやデータがロードされ実行される。また、RAM103は、時間毎、曜日毎に実行されるジョブ数を記録するデータ領域として使用される。
外部記憶装置104は、例えばハードディスク等により構成され、画像処理装置100が受け付けた印刷ジョブをスプールしたり、印刷ジョブに係る印刷データ等を格納したり、作業用領域として利用されたりする。また、外部記憶装置104は、前述したRAM103上に展開されている時間毎、曜日毎に実行されるジョブ数を記録するデータをファイルとして保持し、同様に数週間分のデータをファイルとして保持する。
表示部105は、液晶等により構成され、表示画像を展開するVRAMを有する。表示部105は、画像処理装置100の設定状態や、現在の画像処理装置100内部の処理状態、エラー状態、ファームウェアの更新に関する予告の表示を行う。操作部106は、ハードキーによる操作部と、表示部105の表面に装着されているタッチパネルとを有する。操作部106は、画像処理装置100の設定の変更を行う。
エンジンI/F107は、スキャナエンジン108及びプリンタエンジン109を制御するコマンドやデータ等のやり取りを行う。USBデバイスI/F110は、外部ホストと接続する際に使用するI/Fであり、PDLデータの受信などに使用される。
セントロI/F111は、外部ホストと接続する際に使用するI/Fである。ネットワークI/F112は、外部ホスト、外部サーバ、又はインターネットと接続するために使用される。また、ネットワークI/F112は、外部ホストからのPDLデータの受信等にも使用されると同時に、ファームウェアの送受信にも使用される。FAX Unit113は、FAX送信、FAX受信を行う際に使用する。
RTC114は、内部に電池と時計機能を有しており、システムのOSが起動するに必要な時間機能を提供する。また、RTC114は、タイマ、アラーム機能を有し、指定時間になれば割り込みを上げる。例えば、RTC114は、低電力状態にあるシステムを起動するトリガーを発生させることができる。
図2及び図3は、図1の画像処理装置100で実行されるプログラムの更新のスケジューリングを説明する図である。以下では、プログラムの一例としてファームウェアを挙げるが、他の例としてソフトウェアであっても良い。
図2において、サーバ201は、複数台ある画像処理装置100の中の任意の1台であり、ここでは、サーバとしての役割を果たす。サーバ201は、今週のデータ205、先週のデータ206のように、数週間の曜日毎及び時間毎のジョブ数を示すデータを保持している。これらのデータは、特定の時間ごとに実行されたジョブ数を示すデータであれば、1週間毎のジョブ数を示すデータ、1日ごとのジョブ数を示すデータ、10分ごとのジョブ数を示すデータであっても良い。
クライアント202〜203のそれぞれは、複数台ある画像処理装置100の中の1台であり、クライアントとして動作する。クライアント202は、今週のデータ207、先週のデータ208のように、数週間の曜日毎及び時間毎のジョブ数を示すデータを保持している。クライアント203は、今週のデータ209、先週のデータ210のように、数週間の曜日毎及び時間毎のジョブ数を示すデータを保持している。
サーバ201、及びクライアント202〜203は、ネットワーク211を介して互いに接続されている。
図3において、クライアント204は、複数台ある画像処理装置100の中の1台であり、クライアントとして動作する。クライアント204も、図2で説明した今週のデータや先週のデータのように、数週間の曜日毎及び時間毎のジョブ数を示すデータを保持している。
数週間分のジョブ総数は、サーバ及びクライアントのそれぞれが持つ数週間分のジョブ数の総和を示す。ファームウェア更新の優先順位は、数週間分のジョブ総数に基づいて決定され、ファームウェア更新のスケジューリングを行う上での優先順位を示す。
図4及び図5は、図3のサーバ201で実行されるファームウェア更新のスケジューリング処理のフローチャートである。サーバ201のCPU101が、図4及ぶ図5のフローチャートに基づくプログラムを実行することにより、このスケジューリング処理が行われる。
図4において、サーバ201は、サーバ201自身及びクライアント202〜204が保持している、数週間の曜日毎及び時間毎のジョブ数を示すデータを取得する(ステップS401)。次に、装置ごとに数週間分のジョブ総数を計算し、数週間分のジョブ総数が多いものから順にファームウェア更新の優先順位を決定する(ステップS402)。図3は、決定された優先順位の一例を示す。数週間分のジョブ総数が多い装置ほどユーザの使用頻度が高く、このような装置ではジョブを実行していない空き時間が少ないと考えられる。そのため、数週間分のジョブ総数の多い装置に対して優先的にファームウェア更新のスケジューリングを行う。
次に、数週間分のジョブ総数の最も多い装置(つまり、ファームウェア更新の優先順位の最も高い装置)から順にファームウェア更新のスケジューリングを行う。まず、スケジューリングの対象となる装置に関して、図6に示すように、取得した数週間の曜日毎及び時間毎のジョブ数を示すデータから曜日毎のジョブ数の総和を計算し、曜日毎のジョブ数の総和が小さい順に順番を決定する(ステップS403)。これは、ジョブ数の総和が小さい曜日ほど空き時間が多い可能性が高いためである。図6では、土曜日が最もジョブ数の総和が小さいので、順番が1となる。
ステップS403の計算の結果、ジョブ総数の少ない曜日から順に空き時間の多い時間帯を検索する。空き時間の多い時間帯を検索する曜日において、3時間連続でジョブ数が0の時間帯があるか否かを判別する(ステップS404)。3時間連続でジョブ数が0の時間帯は、図6の実線楕円で囲んだ部分である。
ステップS404の判別の結果、3時間連続でジョブ数が0の時間帯があるときは、その真ん中の時間をファームウェア更新の時間として決定し、ファームウェア更新が行われるべき曜日及び時間を登録する(ステップS406)。具体的には、図6の時間帯501のうち、3時をファームウェア更新の時間とし、スケジュール表における土曜日の2時(図7の601)に装置の名前(Client B)を登録する。図7は、サーバ201が管理するスケジュール表の一例である。図7のスケジュール表において、X時とはX時0分からX時59分までの時間を示す。なお、3時間連続でジョブ数が0の時間帯が複数存在するときは、その前後の時間のジョブ数を含むジョブ総数(それぞれの時間におけるジョブ数がm,0,0,0,nとするとm+n)が最小となる時間帯の真ん中の時間を選択する。
次に、複数台の装置のスケジュールを組む場合、ファームウェア更新のスケジューリングを行っていない装置があるか否かを判別する(ステップS414)。この判別の結果、ファームウェア更新のスケジューリングを行っていない装置があるときは、ステップS403に戻る。一方、ファームウェア更新のスケジューリングを行っていない装置がないときは、本処理を終了する。
ステップS404の判別の結果、3時間連続でジョブ数が0の時間帯がないときは、3時間連続でジョブ数が0の時間帯を検索していない曜日があるか否かを判別する(ステップS405)。この判別の結果、3時間連続でジョブ数が0の時間帯を検索していない曜日があるときは、ステップS404に戻り、次の曜日について3時間連続でジョブ数が0の時間帯を検索する。一方、3時間連続でジョブ数が0の時間帯を検索していない曜日がないときは、ステップS407に進む。
ステップS407では、ジョブ総数の少ない曜日から順に、2時間連続でジョブ数が0の時間帯があるか否かを判別する。2時間連続でジョブ数が0の時間帯は、図6の点線楕円で囲んだ部分である。
ステップS407の判別の結果、2時間連続でジョブ数が0の時間帯があるときは、そのいずれかの時間をファームウェア更新の時間として決定し、ファームウェア更新が行われるべき曜日及び時間を登録し(ステップS409)、ステップS414に進む。具体的には、図6に示す時間帯502のうち、6時をファームウェア更新の時間とし、スケジュール表における土曜日の6時に装置の名前を登録する。なお、2時間連続でジョブ数が0の時間帯が複数存在するときは、その前後の時間のジョブ数を含むジョブ総数(それぞれの時間におけるジョブ数がm,0,0,nとするとm+n)が最小となる時間帯のいずれかの時間を選択する。例えば、m>nであれば、nに近い方の時間をファームウェア更新の時間とし、m<=nであれば、mに近い方の時間をファームウェア更新の時間として決定する。なお、実施の形態の場合、同じ時間帯に他の装置のスケジュールが入っていてもよいものとする。
ステップS407の判別の結果、2時間連続でジョブ数が0の時間帯がないときは、2時間連続でジョブ数が0の時間帯を検索していない曜日があるか否かを判別する(ステップS408)。この判別の結果、2時間連続でジョブ数が0の時間帯を検索していない曜日があるときは、ステップS407に戻り、次の曜日について2時間連続でジョブ数が0の時間帯を検索する。一方、2時間連続でジョブ数が0の時間帯を検索していない曜日がないときは、ステップS410に進む。
ステップS410では、ジョブ総数の少ない曜日から順に、1時間ジョブ数が0の時間があるか否かを判別する。1時間ジョブ数が0の時間は、図6の一点鎖線楕円で囲んだ部分である。
ステップS410の判別の結果、1時間ジョブ数が0の時間があるときは、その時間をファームウェア更新の時間として決定し、ファームウェア更新が行われるべき曜日及び時間を登録する(ステップS412)。具体的には、図6に示す時間帯503のうち、22時をファームウェア更新の時間とし、スケジュール表における土曜日の22時に装置の名前を登録する。なお、1時間ジョブ数が0の時間が複数存在するときは、その前後の時間のジョブ数を含むジョブ総数(それぞれの時間におけるジョブ数がm,0,nとするとm+n)が最小となる時間を選択する。なお、実施の形態の場合、同じ時間帯に他の装置のスケジュールが入っていてもよいものとする。
ステップS410の判別の結果、1時間ジョブ数が0の時間がないときは、1時間ジョブ数が0の時間を検索していない曜日があるか否かを判別する(ステップS411)。この判別の結果、1時間ジョブ数が0の時間を検索していない曜日があるときは、ステップS410に戻り、次の曜日について1時間ジョブ数が0の時間を検索する。一方、1時間ジョブ数が0の時間を検索していない曜日がないときは、ステップS413に進む。
ステップS413では、ジョブ総数の最も少ない曜日において、ジョブ数が最も少ない時間をファームウェア更新の時間として決定し、ファームウェア更新が行われるべき曜日及び時間を登録する。なお、最も少ないジョブ数をXとし、ジョブ数がXの時間が複数存在するときは、その前後の時間のジョブ数を含むジョブ総数(それぞれの時間におけるジョブ数がm,X,nとするとm+n)が最小となる時間を選択する。
図4及び図5のスケジューリング処理を実行すると、図8に示すように、複数台の画像処理装置のそれぞれにおけるファームウェア更新のスケジュールが決定される。なお、本実施の形態では、同じ時間に他の装置のスケジュールが入っていてもよいものとする。ただし、サーバ201のファームウェア更新のスケジュールだけは、クライアント202〜204のスケジュールと同じ時間にならないようにする必要がある。
図4及び図5の処理によれば、ユーザの使用頻度の低い時間帯をファームウェアの更新時間として決定するので、データ処理装置におけるプログラムの更新を実行するに当たって、ユーザの業務に与える支障を軽減することができる。
次に、図8のファームウェア更新のスケジュール表に基づいて、サーバ201及びクライアント202〜204のファームウェアを更新する処理を説明する。
図9は、図3のサーバ201及びクライアント202〜204で実行されるファームウェア更新処理を説明する図である。
図9において、サーバ201は、図8のスケジュール表を管理する。サーバ201は、ファームウェアを更新するために必要な更新ファームウェアデータをファームウェア更新の対象となるクライアント202〜204のそれぞれに送信する。更新ファームウェアデータには、新しいファームウェアのほか、ファームウェアの更新を制御するためのコマンドなども含まれる。クライアント202〜204のそれぞれは、ファームウェアの更新を終了すると、その旨をサーバ201に通知する。ファームウェア更新の対象がサーバ201である場合には、サーバ201自らが更新ファームウェアデータに基づいてファームウェアの更新を行う。
図10は、クライアント202〜204のそれぞれで実行されるファームウェア更新処理のフローチャートである。クライアント202〜204のそれぞれのCPU101が、図10のフローチャートに基づくプログラムを実行することにより、このファームウェア更新処理が行われる。以下では、クライアント202がこのファームウェア更新処理を行うものとする。
水曜日の1時になると、サーバ201は、図8のスケジュール表に従って、ファームウェア更新の対象となるクライアント202に更新ファームウェアデータを送信する。従って、クライアント202は更新ファームウェアデータをサーバ201から受信する(ステップS901)。
更新ファームウェアデータを受信したクライアント202は、図11に示すように表示部105に、数分後にファームウェアの更新が行われるため装置が使用不能になる旨を表示する(ステップS902)。また、ユーザがクライアント202を使用しようとした場合には、他の画像処理装置を使用するように促す。
次に、クライアント202は、現在処理中のジョブがあるか否かを判別する(ステップS903)。この判別の結果、現在処理中のジョブがあるときは、このジョブが終了するまで待つ。一方、現在処理中のジョブがないときは、クライアント202は、ネットワーク機能をオフラインモードに移行して新規にジョブを受け付けないようにすると共に、FAX受信を無視するようにFAX機能を手動受信モードに移行させる(ステップS904)。これにより、クライアント202は、新規ジョブが投入されない状態になる。
次に、クライアント202は、ファームウェアの更新を実行する(ステップS905)。ファームウェアの更新が正常に終了した後、クライアント202は、ネットワーク機能をオンラインモードに移行すると共に、FAX受信を受け付らけれるようにFAX機能を自動受信モードに移行させる(ステップS906)。これにより、クライアント202は、新規ジョブを受け付けられる状態になる。
次に、クライアント202は、ファームウェアの更新が正常に終了した旨をサーバ201に通知し(ステップS907)、本処理を終了する。その旨の通知を受けたサーバ201は、サーバ201で管理するスケジュール表(例えば図8)に、ファームウェアの更新が終了した旨を記録する。
サーバ201がファームウェア更新の対象となる場合には、サーバ201はステップS902〜S906を実行した上で、スケジュール表(例えば図8)に、ファームウェアの更新が終了した旨を記録する。
図10の処理によれば、ユーザの使用頻度の低い時間帯にファームウェアの更新を行うので、データ処理装置におけるプログラムの更新を実行するに当たって、ユーザの業務に与える支障を軽減することができる。
[第2の実施の形態]
第1の実施の形態では、同じ時間帯に複数の画像処理装置のファームウェア更新が可能であるとした。一方、第2の実施の形態では、ファームウェアの更新を実行する間、複数台の画像処理装置が一斉に使用できなくなるのを防止するため、同一時間帯に複数の画像処理装置のファームウェアの更新が行われないようにする。
図12〜図16は、第2の実施の形態のファームウェア更新のスケジューリング処理のフローチャートである。サーバ201のCPU101が、図12〜16のフローチャートに基づくプログラムを実行することにより、このスケジューリング処理が行われる。
図12において、サーバ201は、サーバ201自身及びクライアント202〜204が保持している、数週間の曜日毎及び時間毎のジョブ数を示すデータを取得する(ステップS1101)。次に、装置ごとに数週間分のジョブ総数を計算し、数週間分のジョブ総数が多いものから順にファームウェア更新の優先順位を決定する(ステップS1102)。図3は、決定された優先順位の一例を示す。数週間分のジョブ総数が多い装置ほどユーザの使用頻度が高く、このような装置ではジョブを実行していない空き時間が少ないと考えられる。そのため、数週間分のジョブ総数の多い装置に対して優先的にファームウェア更新のスケジューリングを行う。
次に、数週間分のジョブ総数の最も多い装置(つまり、ファームウェア更新の優先順位の最も高い装置)から順にファームウェア更新のスケジューリングを行う。まず、スケジューリングの対象となる装置に関して、図6に示すように、取得した数週間の曜日毎及び時間毎のジョブ数を示すデータから曜日毎のジョブ数の総和を計算し、曜日毎のジョブ数の総和が小さい順に順番を決定する(ステップS1103)。これは、ジョブ数の総和が小さい曜日ほど空き時間が多い可能性が高いためである。図6では、土曜日が最もジョブ数の総和が小さいので、順番が1となる。
ステップS1103の計算の結果、ジョブ総数の少ない曜日から順に空き時間の多い時間帯を検索する。空き時間の多い時間帯を検索する曜日において、3時間連続でジョブ数が0の時間帯があるか否かを判別する(ステップS1104)。
ステップS1104の判別の結果、3時間連続でジョブ数が0の時間帯があるときは、3時間連続でジョブ数が0の時間帯が複数あるか否かを判別する(ステップS1106)。この判別の結果、3時間連続でジョブ数が0の時間帯が複数あるときは、ステップS1107に進む。ステップS1107では、3時間連続でジョブ数が0の時間帯の前後の時間のジョブ数を含むジョブ総数(それぞれの時間におけるジョブ数がm,0,0,0,nとするとm+n)が最小となる時間帯をファームウェア更新の時間帯の候補として選択する。その上で、その時間帯の真ん中の時間をファームウェア更新の時間の候補として選択し、ステップS1109に進む。
一方、ステップS1106の判別の結果、3時間連続でジョブ数が0の時間帯が複数ないときは、3時間連続でジョブ数が0である唯一の時間帯をファームウェア更新の時間帯の候補として選択する。その上で、その時間帯の真ん中の時間をファームウェア更新の時間の候補として選択し(ステップS1108)、ステップS1109に進む。
ステップS1109では、スケジュール表と候補の時間とを比較し、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているか否かを判別する。この判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされていないときは、候補の時間をファームウェア更新の時間として決定し、スケジュール表の該当する時間に装置の名前を登録する(ステップS1110)。
ステップS1109の判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているときは、ステップS1111に進む。ステップS1111では、m>nならば、nに近い時間をファームウェア更新の時間の候補とし、m<=nならば、mに近い時間をファームウェア更新の時間の候補とする。
次に、スケジュール表と候補の時間とを比較し、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているか否かを判別する(ステップS1112)。この判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされていないときは、候補の時間をファームウェア更新の時間として決定し、スケジュール表の該当する時間に装置の名前を登録する(ステップS1110)。
ステップS1112の判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているときは、ステップS1113に進む。ステップS1113では、m>nならば、mに近い時間をファームウェア更新の時間帯の候補とし、m<=nならば、nに近い時間をファームウェア更新の時間の候補とする。
次に、スケジュール表と候補の時間とを比較し、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているか否かを判別する(ステップS1114)。この判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされていないときは、候補の時間をファームウェア更新の時間として決定し、スケジュール表の該当する時間に装置の名前を登録する(ステップS1110)。
ステップS1112の判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているときは、3時間連続でジョブ数が0の時間帯が他にあるか否かを判別する(ステップS1115)。
ステップS1115の判別の結果、3時間連続でジョブ数が0の時間帯が他にあるときは、現在の候補の時間帯を選択対象から除き(ステップS1116)、ステップS1106に戻る。
ステップS1115の判別の結果、3時間連続でジョブ数が0の時間帯が他にないときは、3時間連続でジョブ数が0の時間帯を検索していない曜日があるか否かを判別する(ステップS1105)。この判別の結果、3時間連続でジョブ数が0の時間帯を検索していない曜日があるときは、ステップS1104に戻る。一方、3時間連続でジョブ数が0の時間帯を検索していない曜日がないときは、ステップS1117に進む。ステップS1117では、ジョブ総数の少ない曜日から順に、2時間連続でジョブ数が0の時間帯があるか否かを判別する。
ステップS1117の判別の結果、2時間連続でジョブ数が0の時間帯があるときは、2時間連続でジョブ数が0の時間帯が複数あるか否かを判別する(ステップS1119)。この判別の結果、2時間連続でジョブ数が0の時間帯が複数ないときは、2時間連続でジョブ数が0である唯一の時間帯をファームウェア更新の時間帯の候補として選択し、ステップS1121に進む。一方、この判別の結果、2時間連続でジョブ数が0の時間帯が複数あるときは、ステップS1120に進む。ステップS1120では、時間連続でジョブ数が0の時間帯の前後の時間のジョブ数を含むジョブ総数(それぞれの時間におけるジョブ数がm,0,0,nとするとm+n)が最小となる時間帯をファームウェア更新の時間帯の候補として選択する。
ステップS1121では、m>nならば、nに近い時間をファームウェア更新の時間の候補とし、m<=nならば、mに近い時間をファームウェア更新の時間の候補とする(ステップS1121)。
次に、スケジュール表と候補の時間とを比較し、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているか否かを判別する(ステップS1122)。この判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされていないときは、候補の時間をファームウェア更新の時間として決定し、スケジュール表の該当する時間に装置の名前を登録する(ステップS1123)。
ステップS1122の判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているときは、ステップS1124に進む。ステップS1124では、m>nならば、mに近い時間をファームウェア更新の時間の候補とし、m<=nならば、nに近い時間をファームウェア更新の時間の候補とする。
次に、スケジュール表と候補の時間とを比較し、候補の時間帯に既に他の装置装置でのファームウェア更新がスケジューリングされているか否かを判別する(ステップS1125)。この判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされていないときは、候補の時間をファームウェア更新の時間として決定し、スケジュール表の該当する時間に装置の名前を登録する(ステップS1123)。
ステップS1125の判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているときは、2時間連続でジョブ数が0の時間帯が他にあるか否かを判別する(ステップS1126)。
ステップS1126の判別の結果、2時間連続でジョブ数が0の時間帯が他にあるときは、現在の候補の時間帯を選択対象から除き(ステップS1127)、ステップS1119に戻る。
ステップS1126の判別の結果、2時間連続でジョブ数が0の時間帯が他にないときは、2時間連続でジョブ数が0の時間帯を検索していない曜日があるか否かを判別する(ステップS1118)。この判別の結果、2時間連続でジョブ数が0の時間帯を検索していない曜日があるときは、ステップS1117に戻る。一方、2時間連続でジョブ数が0の時間帯を検索していない曜日がないときは、ステップS1128に進む。ステップS1128では、ジョブ総数の少ない曜日から順に、1時間ジョブ数が0の時間があるか否かを判別する。
ステップS1128の判別の結果、1時間ジョブ数が0の時間帯があるときは、1時間ジョブ数が0の時間が複数あるか否かを判別する(ステップS1130)。この判別の結果、1時間ジョブ数が0の時間が複数あるときは、ステップS1131に進む。ステップS1131では、1時間ジョブ数が0の時間の前後の時間のジョブ数を含むジョブ総数(それぞれの時間におけるジョブ数がm,0,nとするとm+n)が最小となる時間をファームウェア更新の時間の候補として選択し、ステップS1133に進む。
一方、ステップS1130の判別の結果、1時間ジョブ数が0の時間が複数ないときは、1時間ジョブ数が0である唯一の時間をファームウェア更新の時間の候補として選択し(ステップS1132)、ステップS1133に進む。
次に、スケジュール表と候補の時間とを比較し、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているか否かを判別する(ステップS1133)。この判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされていないときは、候補の時間をファームウェア更新の時間として決定し、スケジュール表の該当する時間に装置の名前を登録する(ステップS1134)。
ステップS1133の判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているときは、1時間ジョブ数が0の時間が他にあるか否かを判別する(ステップS1135)。
ステップS1135の判別の結果、1時間ジョブ数が0の時間が他にあるときは、現在の候補の時間を選択対象から除き(ステップS1136)、ステップS1130に戻る。
ステップS1135の判別の結果、1時間ジョブ数が0の時間帯が他にないときは、1時間ジョブ数が0の時間帯を検索していない曜日があるか否かを判別する(ステップS1129)。この判別の結果、1時間ジョブ数が0の時間帯を検索していない曜日があるときは、ステップS1128に戻る。一方、1時間ジョブ数が0の時間帯を検索していない曜日がないときは、ジョブ総数が最も少ない曜日を選択する(ステップS1137)。
次に、選択した曜日で最小のジョブ数をXとすると、ジョブ数がXの時間が複数あるか否かを判別する(ステップS1138)。
この判別の結果、ジョブ数がXの時間が複数あるときは、ステップS1139に進む。ステップS1139では、ジョブ数がXの時間の前後の時間のジョブ数を含むジョブ総数(それぞれの時間におけるジョブ数がm、X,nとするとm+n)が最小となる時間をファームウェア更新の時間の候補として選択し、ステップS1141に進む。
一方、ステップS1138の判別の結果、ジョブ数がXの時間が複数ないときは、ジョブ数がXである唯一の時間をファームウェア更新の時間の候補として選択し(ステップS1140)、ステップS1141に進む。
次に、スケジュール表と候補の時間とを比較し、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているか否かを判別する(ステップS1141)。この判別の結果、候補の時間に既に他の装置でのファームウェアの更新がスケジューリングされていないときは、候補の時間をファームウェア更新の時間として決定し、スケジュール表の該当する時間に装置の名前を登録する(ステップS1142)。
ステップS1141の判別の結果、候補の時間に既に他の装置でのファームウェア更新がスケジューリングされているときは、ジョブ数がXの時間帯が他にあるか否かを判別する(ステップS1143)。
ステップS1143の判別の結果、ジョブ数がXの時間帯が他にあるときは、現在の候補の時間を選択対象から除き(ステップS1144)、ステップS1138に戻る。
ステップS1143の判別の結果、ジョブ数がXの時間帯が他にないときは、ステップS1137またはS1146で全ての曜日が選択されたか否かを判別する(ステップS1145)。この判別の結果、全ての曜日が選択されていないときは、ジョブ総数が次に少ない曜日を選択し(ステップS1146)、ステップS1138に戻る。
一方、全ての曜日が選択されたときは、ステップS1147に進む。ステップS1147では、最初に候補となった時間をファームウェア更新の時間として決定し、スケジュール表の該当する時間に装置の名前を登録し、ステップS1148に進む。この場合は、他の装置でのファームウェアの更新と時間帯が重なってしまうことになる。
ステップS1148では、ファームウェア更新のスケジューリングを行っていない装置があるか否かを判別する。この判別の結果、ファームウェア更新のスケジューリングを行っていない装置があるときは、ステップS1103に戻る。一方、ファームウェア更新のスケジューリングを行っていない装置がないときは、本処理を終了する。
図12〜図16のスケジューリング処理を実行すると、図8に示すように、複数台の画像処理装置のファームウェア更新のスケジュールが決定される。なお、サーバ201のファームウェア更新のスケジュールだけは、クライアント202〜204のスケジュールと同じ時間にならないようにする必要がある。
図12〜15の処理によれば、同じ時間帯に他の装置でのファームウェア更新がスケジューリングされないようにするので、ファームウェアの更新を実行する間、複数台の画像処理装置が一斉に使用できなくなるのを防止する。
[第3の実施の形態]
第1及び第2の実施の形態では、ファームウェア更新時に処理中のジョブが存在した場合、ジョブが終了するのを待ってから、ファームウェア更新を実行した。一方、第3の実施の形態では、ファームウェア更新時に処理中のジョブが存在した場合、サーバに対してファームウェア更新の再スケジューリング依頼を行う。
図17は、第3の実施の形態におけるファームウェア更新処理のフローチャートである。以下では、クライアント202がファームウェア更新の対象となっているものとする。
図17において、ファームウェア更新の時間になると、サーバ201は、ファームウェア更新の対象となるクライアント202のステータスが“未”であるか否かを判別する(ステップS1201)。
図18のスケジュール表では、サーバ201及びクライアント202〜204でのファームウェア更新の状況を知るために、ステータス欄を有する。
図4及び図5又は図12〜図16のスケジューリング処理でファームウェア更新のスケジュールを作成する際は、まだファームウェアの送信も更新も行われていないので、各装置のステータス欄には“未”が記載される。
図19に示すように、未”のステータス1401は、まだファームウェアの送信も更新も行われていない状況を示す。
“送信済”のステータス1402は、装置に対して更新ファームウェアデータを送信済みである状態を示す。
“済”のステータス1403は、装置に対して更新ファームウェアデータの送信も終了し、ファームウェアの更新も正常に終了した状態を示す。
ステップS1201の判別の結果、クライアント202のステータスが“未”であるときは、ステップS1203に進む。一方、クライアント202のステータスが“未”でないときは、サーバ201はクライアント202のステータスが“送信済”であるか否かを判別する(ステップS1202)。
ステップS1202の判別の結果、クライアント202のステータスが“送信済”であるときは、ステップS1205に進む。一方、クライアント202のステータスが“送信済”でないときは、ステータスは“済”であるということを意味するので、本処理を終了する。
ステップS1203では、サーバ201は、クライアント202に更新ファームウェアデータを送信する。送信が終了すると、サーバ201は、図18のスケジュール表におけるクライアント202に対応するステータス欄に“送信済”と記載する(ステップS1204)。
更新ファームウェアデータを受信したクライアント202は、図11に示すように表示部105に、数分後にファームウェアの更新が行われるため装置が使用不能になる旨を表示する(ステップS1205)。これにより、ユーザにファームウェアの更新作業に自動的に入ることを通知する。
次に、クライアント202は、現在処理中のジョブがあるか否かを判別する(ステップS1206)。この判別の結果、現在処理中のジョブがあるときは、クライアント202は、サーバ201にファームウェア更新の再スケジューリングを依頼する(ステップS1207)。この際、サーバ201への通知方法は、メール、又はSocket通信を伴ったハンドシェイクされた通信等、特に手段を問わない。これにより、サーバ201は、後述する図20の再スケジューリング処理を実行して、ファームウェア更新の再スケジューリングを行う。
次に、クライアント202は、ステップS1205で行ったファームウェアの更新のため装置が使用不能になる旨の表示を消す(ステップS1208)。
一方、ステップS1206の判別の結果、現在処理中のジョブがないときは、ステップS1210に進む。ステップS1210では、クライアント202は、ネットワーク機能をオフラインモードに移行して新規にジョブを受け付けないようにすると共に、FAX受信を無視するようにFAX機能を手動受信モードに移行させる。これにより、クライアント202は、新規ジョブが投入されない状態になる。
次に、クライアント202は、ファームウェアの更新を実行する(ステップS1211)。ファームウェアの更新が正常に終了した後、クライアント202は、ネットワーク機能をオンラインモードに移行すると共に、FAX受信を受け付らけれるようにFAX機能を自動受信モードに移行させる(ステップS1212)。これにより、クライアント202は、新規ジョブを受け付けられる状態になる。
次に、クライアント202は、ファームウェアの更新が正常に終了した旨をサーバ201に通知する(ステップS1213)。その旨が通知されたサーバ201は、サーバ201で管理するスケジュール表におけるクライアント202に対応するステータス欄に“済”と記載し(ステップS1214)、本処理を終了する。
図19の処理によれば、ファームウェア更新をしようとする時に処理中のジョブが存在した場合、サーバに対してファームウェア更新の再スケジューリングを依頼するので、データ処理装置におけるプログラムの更新を実行するに当たって、ユーザの業務に与える支障を軽減することができる。
サーバ201がファームウェア更新の対象となる場合には、サーバ201はS1201〜S1202、S1204〜S1208、S1210〜S1212及びS1214を実行する。
図20は、サーバ201によって実行される再スケジューリング処理のフローチャートである。サーバ201のCPU101が、図20のフローチャートに基づくプログラムを実行することにより、この再スケジューリング処理が行われる。以下でも、クライアント202がファームウェア更新の対象となっているものとする。
図20において、サーバ201は、再スケジューリングの依頼をクライアント202から受けると、図18のスケジュール表に基づいて、ステータスが“未”又は“送信済”となっている装置のみをピックアップする(ステップS1501)。既にステータスが“済”となっている装置は、ファームウェア更新が終了しているので、再スケジューリングの対象としない。
次に、サーバ201は、ステップS1501でピックアップした装置が保持している最新の数週間の曜日毎及び時間毎のジョブ数を示すデータを取得しなおす(ステップS1502)。
次に、取得した数週間の曜日毎及び時間毎のジョブ数を示すデータに基づいて、図4及び図5又は図12〜図16のスケジューリング処理を実行して、ファームウェア更新の再スケジューリングを行い(ステップS1503)、本処理を終了する。これにより、最新の状況で、スケジュール表を作成しなおす。
図20の処理によれば、ファームウェアの更新をしようとした時に処理中のジョブが存在した場合、ファームウェア更新の再スケジューリングが自動的に行われるので、データ処理装置におけるプログラムの更新を実行するに当たって、ユーザの業務に与える支障を軽減することができる。
[第4の実施の形態]
第1〜第3の実施の形態では、ファームウェア更新のスケジュールは、ユーザの使用頻度の低い時間帯を元に作成されている。このため、ファームウェア更新の時間には、画像処理装置が長時間使用されていないことにより、消費電力の低いスリープ状態に画像処理装置が移行している可能性が高い。またサーバ201も長時間使用されてないことにより、消費電力の低いスリープ状態にサーバ201が移行している可能性が高い。そこで、第4の実施の形態は、サーバ201又はクライアント202〜204において、スリープ状態から復帰する処理を行う。
図21は、クライアント202〜204のスリープ復帰処理のフローチャートである。クライアント202〜204のそれぞれのCPU101が、図21のフローチャートに基づくプログラムを実行することにより、このスリープ復帰処理が行われる。
図8や図18のスケジュール表が作成されると、サーバ201は、図8や図18のスケジュール表に基づいて、ファームウェア更新の対象となるクライアントにファームウェア更新日時を通知する。従って、クライアントは、ファームウェア更新日時の通知をサーバ201から受ける(ステップS1602)。この際、サーバ201からの通知方法は、メール、又はPortを特定してSocket通信によるデータの通知等、特に手段を問わない。
サーバ201からファームウェア更新日時を通知されたクライアントは、「ファームウェア更新日時−α」の日時をRAM103等に記憶する(ステップS1603)。ここで−αとしたのは、クライアントがスリープしていた場合、スリープ復帰に時間がかかる場合を想定しているためである。
ステップS1604では、クライアントがスリープ状態に移行するか否かを判別する。即ち、ユーザの処理又はジョブの投入が規定時間の間なかった場合に消費電力の低いスリープ状態に移行する設定が各クライアントにあり、各クライアントではその規定時間が設定可能である。従って、クライアントは、その規定時間の間、放置されているか否かを判別する。
この判別の結果、クライアントがスリープ状態に移行しないときは、クライアントは、ファームウェア更新日時になったか否かを判別する(ステップS1605)。この判別の結果、ファームウェア更新日時になっていないときは、ステップS1604に戻る。一方、ファームウェア更新日時になったときは、本処理を終了する。本処理が終了した後には、ファームウェア更新処理が実行される。
ステップS1604の判別の結果、クライアントがスリープ状態に移行するときは、クライアントは、ステップS1603でRAM103に記憶していた「ファームウェア更新日時−α」の日時をRTC114のアラーム時刻に設定してスリープ状態に移行する(ステップS1606)。
次に、クライアントは、ユーザによりスリープ状態から復帰させられるか否かを判別する(ステップS1607)。この判別の結果、ユーザによりスリープ状態から復帰させられるときは、クライアントはスリープ状態から復帰し(ステップS1611)、ステップS1604に戻る。
ステップS1607の判別の結果、ユーザによりスリープ状態から復帰させられなかったときは、クライアントは、RTC114から割り込み信号が送信されたか否かを判別する(ステップS1608)。アラーム時刻になったときは、RTC114がハードウェア的に割り込み信号を送信する。
RTC114から割り込み信号が送信されたときは、CPU101に対してReset解除信号が送信され、クライアントは、スリープ状態から復帰し(ステップS1610)、本処理を終了する。本処理が終了した後には、ファームウェア更新処理が実行される。
図21の処理によれば、ファームウェアの更新が行われようとする時にクライアント202〜204がスリープ状態に移行している場合にも、ファームウェアの更新処理を実行することができる。
図22は、サーバ201のスリープ復帰処理のフローチャートである。サーバ201のCPU101が、図22のフローチャートに基づくプログラムを実行することにより、このスリープ復帰処理が行われる。
図8や図18のスケジュール表が作成されると、サーバ201は、図8や図18のスケジュール表に基づいて、現在時刻に最も時間の近いファームウェア更新日時を検出する(ステップS1701)。サーバ201は、ステップS1701で検出した「現在時刻に最も近いファームウェア更新日時−α」の日時をRAM103等に記憶する(ステップS1702)。ここで−αとしたのは、サーバ201がスリープしていた場合、スリープ復帰に時間がかかる場合を想定しているためである。
ステップS1704では、サーバ201がスリープ状態に移行するか否かを判別する。即ち、ユーザの処理又はジョブの投入が規定時間の間なかった場合に消費電力の低いスリープ状態に移行する設定がサーバ201にあり、サーバ201ではその規定時間が設定可能である。従って、サーバ201は、その規定時間の間、放置されているか否かを判別する。
この判別の結果、サーバ201がスリープ状態に移行しないときは、サーバ201は、ステップS1701で検出したファームウェア更新日時になったか否かを判別する(ステップS1705)。この判別の結果、ステップS1701で検出したファームウェア更新日時になっていないときは、ステップS1704に戻る。一方、ステップS1701で検出したファームウェア更新日時になったときは、本処理を終了する。本処理が終了した後には、ファームウェア更新処理が実行される。
ステップS1704の判別の結果、サーバ201がスリープ状態に移行するときは、サーバ201は、ステップS1603でRAM103に記憶していた「現在時刻に最も近いファームウェア更新日時−α」の日時をRTC114のアラーム時刻に設定してスリープ状態に移行する(ステップS1706)。
次に、サーバ201は、ユーザによりスリープ状態から復帰させられるか否かを判別する(ステップS1707)。この判別の結果、ユーザによりスリープ状態から復帰させられるときは、サーバ201はスリープ状態から復帰し(ステップS1711)、ステップS1704に戻る。
ステップS1707の判別の結果、ユーザによりスリープ状態から復帰させられなかったときは、サーバ201は、RTC114から割り込み信号が送信されたか否かを判別する(ステップS1708)。アラーム時刻になったときは、RTC114がハードウェア的に割り込み信号を送信する(ステップS1709)。
RTC114から割り込み信号が送信されたときは、CPU101に対してReset解除信号が送信され、サーバ201は、スリープ状態から復帰し(ステップS1710)、本処理を終了する。本処理が終了した後には、ファームウェア更新処理が実行される。
図21の処理によれば、ファームウェアの更新が行われようとする時にサーバ201がスリープ状態に移行している場合にも、ファームウェアの更新処理を実行することができる。
上記の実施の形態で説明した処理、機能等は、いずれもコンピュータ読み取り可能なプログラム等で実現することもできる。
この場合、上記の実施の形態で説明した処理、機能等は、システム又は装置に含まれるコンピュータ(CPU、MPU等でもよい)が上記のプログラム等を実行することによって実現されることになる。言い換えれば、上記のプログラム等が、システム又は装置に含まれるコンピュータに、上記の実施の形態で説明した処理、機能等を実行させることになる。また、この場合、上記のプログラム等は、コンピュータ読み取り可能な記憶媒体又はネットワークを介してシステム又は装置に含まれるコンピュータに提供されることになる。
システム又は装置に含まれるコンピュータに上記のプログラム等を提供する記憶媒体には、磁気ディスク、光ディスク、光磁気ディスク、ハードディスク、磁気テープ、不揮発性メモリ等を用いることができる。
また、上記のプログラム等は、その一部をコンピュータ上で稼動しているOS(オペレーティングシステム)等を用いて構成してもよい。
さらに、上記のプログラム等は、その一部をコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットで実行するように構成してもよい。
第1の実施の形態に係るサーバ装置を含むデータ処理装置の内部構成を示すブロック図である。 図1の画像処理装置100で実行されるプログラムの更新のスケジューリングを説明する図である。 図1の画像処理装置100で実行されるプログラムの更新のスケジューリングを説明する図である。 図3のサーバ201で実行されるファームウェア更新のスケジューリング処理のフローチャートである。 図3のサーバ201で実行されるファームウェア更新のスケジューリング処理のフローチャートである。 図4のステップS403で用いる数週間の曜日毎及び時間毎のジョブ数を示すデータを示す図である。 図5のステップS406で用いるファームウェア更新のスケジュール表を示す図である。 図4及び図5のスケジューリング処理によって作成されるファームウェア更新のスケジュール表を示す図である。 図3のサーバ201及びクライアント202〜204で実行されるファームウェア更新処理を説明する図である。 図3のサーバ201及びクライアント202〜204で実行されるファームウェア更新処理のフローチャートである。 図10のステップS902で表示される装置が使用不能になる旨の表示を示す図である。 第2の実施の形態のファームウェア更新のスケジューリング処理のフローチャートである。 第2の実施の形態のファームウェア更新のスケジューリング処理のフローチャートである。 第2の実施の形態のファームウェア更新のスケジューリング処理のフローチャートである。 第2の実施の形態のファームウェア更新のスケジューリング処理のフローチャートである。 第2の実施の形態のファームウェア更新のスケジューリング処理のフローチャートである。 第3の実施の形態におけるファームウェア更新処理のフローチャートである。 図17のファームウェア更新処理で用いられるファームウェア更新のスケジュール表を示す図である。 図18のスケジュール表におけるステータス欄を説明する図である。 サーバ201によって実行される再スケジューリング処理のフローチャートである。 ライアント202〜204のスリープ復帰処理のフローチャートである。 サーバ201のスリープ復帰処理のフローチャートである。
符号の説明
101 CPU
102 フラッシュROM
103 RAM
104 外部記憶装置
105 表示部
106 操作部
114 RTC

Claims (3)

  1. ジョブを実行する複数のクライアント装置にプログラムを送信し、前記複数のクライアント装置にプログラムを更新させるサーバ装置であって、
    前記クライアント装置によって複数の期間の各々で実行されたジョブの実行状況を示す実行状況データを前記複数のクライアント装置の各々から取得する取得手段と、
    前記取得手段により取得された複数の前記実行状況データに基づいて、前記複数のクライアント装置の各々がプログラムを更新する更新期間をジョブの実行頻度の高いクライアント装置から優先的に決定する決定手段とを備え、
    前記決定手段は、前記複数のクライアント装置に含まれる特定のクライアント装置の前記更新期間を決定する際に、前記取得手段により取得された前記特定のクライアント装置の実行状況データに基づいて前記複数の期間の中から前記特定のクライアント装置におけるジョブの実行回数が最も少ない期間を検出し、前記検出した期間が単数である場合は前記検出した期間を前記特定のクライアント装置の前記更新期間として決定する一方で前記検出した期間が複数である場合は前記検出した期間に隣接する期間におけるジョブの実行回数が最も少ない期間を前記特定のクライアント装置の前記更新期間として決定するとともに、記特定のクライアント装置がプログラムを更新する更新期間が前記複数のクライアント装置に含まれる他のクライアント装置がプログラムを更新する更新期間として決定済みである場合は、前記特定のクライアント装置がプログラムを更新する更新期間を前記決定済みの更新期間と異ならせることを特徴とするサーバ装置。
  2. 前記決定手段により決定された前記更新期間に従って、前記クライアント装置におけるプログラムの更新に必要なデータを送信する送信手段を有することを特徴とする請求項1に記載のサーバ装置。
  3. 前記実行状況データは、前記クライアント装置によって複数の期間の各々で実行されたジョブの数を示し、
    前記決定手段は、前記複数のクライアント装置の各々がプログラムを更新する前記更新期間を前記複数の期間の全期間にわたって実行されたジョブの総数が多いクライアント装置から優先的に決定することを特徴とする請求項1又は2に記載のサーバ装置。
JP2006339065A 2006-12-15 2006-12-15 サーバ装置 Expired - Fee Related JP4673284B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006339065A JP4673284B2 (ja) 2006-12-15 2006-12-15 サーバ装置
US11/955,941 US20080148268A1 (en) 2006-12-15 2007-12-13 Data processing apparatus, data processing system, method therefor, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006339065A JP4673284B2 (ja) 2006-12-15 2006-12-15 サーバ装置

Publications (2)

Publication Number Publication Date
JP2008152482A JP2008152482A (ja) 2008-07-03
JP4673284B2 true JP4673284B2 (ja) 2011-04-20

Family

ID=39529190

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006339065A Expired - Fee Related JP4673284B2 (ja) 2006-12-15 2006-12-15 サーバ装置

Country Status (2)

Country Link
US (1) US20080148268A1 (ja)
JP (1) JP4673284B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080060927A (ko) * 2006-12-27 2008-07-02 삼성전자주식회사 서버, 클라이언트 및 그 업데이트 방법
JP5206792B2 (ja) * 2008-09-12 2013-06-12 富士通株式会社 ソフトウェアパッチ適用方法、プログラム及び装置
JP2010079720A (ja) * 2008-09-26 2010-04-08 Kyocera Corp 通信端末
JP4618358B2 (ja) * 2008-09-29 2011-01-26 ブラザー工業株式会社 周辺装置管理プログラム、および周辺装置管理システム
JP2010086117A (ja) * 2008-09-30 2010-04-15 Hitachi Ltd サーバシステムの管理方法
JP4973669B2 (ja) * 2009-01-26 2012-07-11 ブラザー工業株式会社 デバイス管理プログラム、デバイス管理システムおよび情報処理装置
JP4866433B2 (ja) * 2009-02-13 2012-02-01 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証情報を変更するためコンピュータ・システム、並びにその方法及びコンピュータ・プログラム
CN102378966B (zh) * 2009-03-31 2014-02-19 丰田自动车株式会社 车载软件更新装置
US8640209B2 (en) 2010-03-06 2014-01-28 International Business Machines Corporation Authentication information change facility
WO2011121652A1 (ja) * 2010-03-30 2011-10-06 富士通フロンテック株式会社 図書データ管理システムおよび方法
JP5240248B2 (ja) * 2010-06-29 2013-07-17 トヨタ自動車株式会社 制御装置
JP5539129B2 (ja) * 2010-09-13 2014-07-02 キヤノン株式会社 画像形成装置、ファームェアのアップデート方法、及び、プログラム
US9020487B2 (en) 2010-10-14 2015-04-28 At&T Mobility Ii Llc Over-the-air content management of wireless equipment in confined-coverage wireless networks
JP5267598B2 (ja) 2011-02-25 2013-08-21 トヨタ自動車株式会社 車両制御装置のデータ書き換え支援システム及びデータ書き換え支援方法
JP5755025B2 (ja) * 2011-05-20 2015-07-29 三菱電機株式会社 プログラム更新指示装置
JP5782962B2 (ja) * 2011-09-27 2015-09-24 富士通株式会社 Raidグループ制御装置
JP5786612B2 (ja) 2011-09-30 2015-09-30 ブラザー工業株式会社 管理装置
JP5786613B2 (ja) * 2011-09-30 2015-09-30 ブラザー工業株式会社 管理装置
WO2013141080A1 (ja) * 2012-03-21 2013-09-26 日産自動車株式会社 アプリケーション更新装置及びアプリケーション更新方法
KR20140066535A (ko) * 2012-11-23 2014-06-02 삼성전자주식회사 전자 장치, 펌웨어 업데이트 방법 및 컴퓨터 판독가능 기록매체
JP6108219B2 (ja) 2013-02-28 2017-04-05 ブラザー工業株式会社 更新管理プログラム、更新管理装置、及び、画像処理システム
US9705744B2 (en) 2013-07-05 2017-07-11 International Business Machines Corporation Updating hardware and software components of cloud computing environment at optimal times
JP5653568B1 (ja) * 2013-12-03 2015-01-14 三菱電機株式会社 ネットワークシステム
JP6351413B2 (ja) * 2014-07-15 2018-07-04 キヤノン株式会社 画像形成装置およびその制御方法、並びにプログラム
JP6157744B2 (ja) * 2014-07-31 2017-07-05 三菱電機株式会社 機器管理装置、管理プログラム更新方法、機器プログラム更新方法及びプログラム
JP6196253B2 (ja) * 2015-03-27 2017-09-13 東芝テック株式会社 決済端末及びプログラム
US10331459B2 (en) * 2015-03-30 2019-06-25 Sony Corporation Apparatus and method
CN106708544A (zh) * 2015-08-13 2017-05-24 中兴通讯股份有限公司 一种辅助电子设备固件升级的方法、装置和终端
US11016751B2 (en) * 2018-06-06 2021-05-25 Otis Elevator Company Automatic upgrade on total run count data on availability of new software
JP6962956B2 (ja) * 2019-03-20 2021-11-05 日立グローバルライフソリューションズ株式会社 ソフトウェア更新用サーバ、および、ソフトウェア更新方法
JP7061636B2 (ja) * 2020-03-13 2022-04-28 ソフトバンク株式会社 オペレーション装置及びプログラム
US20210382705A1 (en) 2020-06-08 2021-12-09 Acronis International Gmbh Systems and methods for seamless software migration
US20220291738A1 (en) * 2021-03-10 2022-09-15 Xerox Corporation Methods and systems for automatically saving power during an upgrade of a device
US11922180B2 (en) * 2021-06-10 2024-03-05 EMC IP Holding Company LLC System and method for an optimal time slot determination for an application upgrade in a customer environment
US11960873B2 (en) 2021-12-10 2024-04-16 Dell Products L.P. System and method for managing a model for solving issues using a set of actions performed on the client environment
US11934820B2 (en) 2021-12-10 2024-03-19 Dell Products L.P. System and method for managing a model for solving issues relating to application upgrades in a customer environment

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282656A (ja) * 1998-03-30 1999-10-15 Brother Ind Ltd プログラム書換装置、ネットワークシステム、及び記憶媒体
JP2002297409A (ja) * 2001-03-30 2002-10-11 Minolta Co Ltd データ通信プログラム、データ通信プログラムを記録したコンピュータ読み取り可能な記録媒体、データ通信装置およびデータ通信方法
WO2005033940A1 (ja) * 2003-09-30 2005-04-14 International Business Machines Corporation 情報処理装置における管理プログラムの実行管理
JP2006092278A (ja) * 2004-09-24 2006-04-06 Fuji Xerox Co Ltd 障害復旧支援システム、障害復旧支援装置および管理装置
JP2006243905A (ja) * 2005-03-01 2006-09-14 Canon Inc 画像形成装置のファームウェアバージョンアップ方法
JP2006304341A (ja) * 1998-08-28 2006-11-02 Canon Inc 情報処理装置、プログラム更新方法および記憶媒体

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6009274A (en) * 1996-12-13 1999-12-28 3Com Corporation Method and apparatus for automatically updating software components on end systems over a network
JP3950589B2 (ja) * 1998-08-28 2007-08-01 キヤノン株式会社 情報処理装置、プログラム更新方法および記憶媒体
US6732195B1 (en) * 2000-10-03 2004-05-04 Hewlett-Packard Development Company, Lp. Apparatus for and method of updating a device driver from a local resource
JP4189570B2 (ja) * 2001-12-28 2008-12-03 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、ファームウェアの送信方法、及び画像処理装置の管理システム
ATE356507T1 (de) * 2004-09-27 2007-03-15 Ibm System und verfahren zur dynamischen planung von aufgaben in abhängigkeit von der position eines mobilen benutzers
US7873505B2 (en) * 2005-06-27 2011-01-18 Alcatel-Lucent Usa Inc. Method and apparatus for predicting scheduled system downtime
US7949740B2 (en) * 2007-04-04 2011-05-24 Xerox Corporation Methods and systems for prioritized servicing or maintenance of networked printers
JP2011113391A (ja) * 2009-11-27 2011-06-09 Ricoh Co Ltd 機器管理システム、機器管理装置、管理対象機器、ソフトウェア更新方法、ソフトウェア更新プログラム、及びそのプログラムを記録した記録媒体
US20120124570A1 (en) * 2010-11-16 2012-05-17 Motorola Mobility, Inc. Method and system for facilitating the providing of software updates to mobile devices
US8677343B2 (en) * 2011-09-16 2014-03-18 Cisco Technology, Inc. Centrally coordinated firmware upgrade model across network for minimizing uptime loss and firmware compatibility
US8819661B2 (en) * 2011-11-28 2014-08-26 Echostar Technologies L.L.C. Systems and methods for determining times to perform software updates on receiving devices

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282656A (ja) * 1998-03-30 1999-10-15 Brother Ind Ltd プログラム書換装置、ネットワークシステム、及び記憶媒体
JP2006304341A (ja) * 1998-08-28 2006-11-02 Canon Inc 情報処理装置、プログラム更新方法および記憶媒体
JP2002297409A (ja) * 2001-03-30 2002-10-11 Minolta Co Ltd データ通信プログラム、データ通信プログラムを記録したコンピュータ読み取り可能な記録媒体、データ通信装置およびデータ通信方法
WO2005033940A1 (ja) * 2003-09-30 2005-04-14 International Business Machines Corporation 情報処理装置における管理プログラムの実行管理
JP2006092278A (ja) * 2004-09-24 2006-04-06 Fuji Xerox Co Ltd 障害復旧支援システム、障害復旧支援装置および管理装置
JP2006243905A (ja) * 2005-03-01 2006-09-14 Canon Inc 画像形成装置のファームウェアバージョンアップ方法

Also Published As

Publication number Publication date
US20080148268A1 (en) 2008-06-19
JP2008152482A (ja) 2008-07-03

Similar Documents

Publication Publication Date Title
JP4673284B2 (ja) サーバ装置
US10037512B2 (en) Calendar event completion
EP3559937B1 (en) Hands-free contextually aware object interaction for wearable display
US20090287531A1 (en) Apparatus and method for managing schedule in portable terminal
US7711855B2 (en) Method and device for processing a time-related data entry
US20140354528A1 (en) Ubiquitous natural user system
US20130010575A1 (en) Systems and methods of managing electronic calendar applications
US8484719B2 (en) Information processing apparatus, information processing method, and media storing a program therefor
US8832701B2 (en) Management apparatus, management system, and recording medium for recording management program
EP3005032A1 (en) Ubiquitous natural user system
EP1054331A2 (en) System and method for storing and retrieving document data
JPH10268957A (ja) 情報処理装置及びその方法
US20190347621A1 (en) Predicting task durations
CN104571916B (zh) 一种执行终端操作信息的方法及装置
JP2013257728A (ja) 印刷制御装置、印刷制御装置の制御方法、及びプログラム
JP2017021454A (ja) スケジューリング方法、情報処理装置およびスケジューリングプログラム
JP2011128904A (ja) 情報処理装置、その方法およびプログラム
JP6392971B2 (ja) ユーザ・ゴールを推進するためのカレンダー・エントリを決定する装置、方法、および、コンピュータ・プログラム・プロダクト
CN101822036A (zh) 信息处理设备、图像处理设备及相应的信息处理方法
US20050216440A1 (en) Information processing apparatus and information processing method
JP2017156899A (ja) 情報処理装置、制御方法及びプログラム
JP5452517B2 (ja) 検索処理装置
JPH10269050A (ja) 情報処理装置及びその方法
JP6372335B2 (ja) Bios更新装置、方法及びプログラム
JP2017211940A (ja) 画像処理システム及び画像処理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20081203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100309

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100831

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101129

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20101213

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: 20110118

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110120

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140128

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees