[go: up one dir, main page]

JP2010015267A - ソフトウェア配信システム、ソフトウェア配信方法、及びコンピュータプログラム - Google Patents

ソフトウェア配信システム、ソフトウェア配信方法、及びコンピュータプログラム Download PDF

Info

Publication number
JP2010015267A
JP2010015267A JP2008172804A JP2008172804A JP2010015267A JP 2010015267 A JP2010015267 A JP 2010015267A JP 2008172804 A JP2008172804 A JP 2008172804A JP 2008172804 A JP2008172804 A JP 2008172804A JP 2010015267 A JP2010015267 A JP 2010015267A
Authority
JP
Japan
Prior art keywords
distribution
software
timing
operation state
determination
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.)
Pending
Application number
JP2008172804A
Other languages
English (en)
Inventor
Hidenori Yokokura
秀則 横倉
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 JP2008172804A priority Critical patent/JP2010015267A/ja
Priority to US12/493,225 priority patent/US8194273B2/en
Publication of JP2010015267A publication Critical patent/JP2010015267A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】 ソフトウェアを配信するサーバが、従来よりも効率よく、当該ソフトウェアを多数のデバイスに配信することができるようにする。
【解決手段】 デバイス装置100に発生する障害と、ファームウェアの更新時間とを相互に関連付けて、サーバ装置200のダウンロード記述テーブルに予め登録しておく。デバイス装置100は、ファームウェアの更新がサーバ装置200から指示されると、ダウンロード記述テーブルをサーバ装置200から取得する。そして、デバイス装置100は、自身に発生した障害の記録と、ダウンロード記述テーブルとを照合し、自身に発生した障害がダウンロード記述テーブルに登録されている場合には、その障害に関連付いている更新時間に基づくタイミングで、ファームウェアを更新する。
【選択図】 図3

Description

本発明は、ソフトウェア配信システム、ソフトウェア配信方法、及びコンピュータプログラムに関し、特に、ファームウェア等のソフトウェアをサーバからデバイスに配信するために用いて好適なものである。
MFP(Multi Function Peripheral)のようなデバイスのファームウェアの不具合への対応や機能の追加を行うため、即時に又は不定期にファームウェアの更新を行うようなシステムが開発されてきている。このようなシステムを実現する形態としては、インターネットを通じて、デバイスがサーバからファームウェアを受信して更新する形態や、イントラネット上で、サーバがデバイスにファームウェアを送信して更新する形態等、様々な形態がある。また、このようなシステムでサーバが監視するデバイスの数は年々増加する傾向にある。また、このようなシステムは今後ますます増加することが予想される。
そして、このようなシステムにおける従来の技術として特許文献1に記載の技術がある。特許文献1に記載の技術では、トラブルが発生したファームウェアを新たなファームウェアに更新するに際し、新たなファームウェアがどのモジュールを制御するものであるかを判定し、そのモジュールを停止させた後に、新たなファームウェアを更新している。
特開2004−165734号公報
しかしながら、前述した従来の技術では、多数のデバイスがファームウェアの配信対象となる場合には、それら多数のデバイスに一度にファームウェアを配信して更新することになる。したがって、ファームウェアを配信するサーバの負荷が集中してしまい、サーバをダウンさせてしまう虞がある。また、デバイスがファームウェアの更新を無造作に行ってしまうと、ファームウェアを頻繁に更新することになり、ネットワークのトラフィックを高めてしまう可能性もある。
本発明は、このような問題点に鑑みてなされたものであり、ファームウェア等のソフトウェアを配信するサーバが、従来よりも効率よく、当該ソフトウェアを多数のデバイスに配信することができるようにすることを目的とする。
本発明のソフトウェア配信システムは、配信装置からデバイスにソフトウェアを配信するソフトウェア配信システムであって、前記デバイスで生じた動作状態に関する動作状態情報を取得する取得手段と、前記取得手段により取得された動作状態情報に基づく動作状態に応じて、前記デバイスに前記ソフトウェアを配信するタイミングを決定する決定手段と、前記決定手段により決定されたタイミングに基づいて、前記配信装置から前記デバイスに前記ソフトウェアを配信する配信手段とを有することを特徴とする。
本発明のソフトウェア配信方法は、配信装置からデバイスにソフトウェアを配信するソフトウェア配信方法であって、前記デバイスで生じた動作状態に関する動作状態情報を取得する取得ステップと、前記取得ステップにより取得された動作状態情報に基づく動作状態に応じて、前記デバイスに前記ソフトウェアを配信するタイミングを決定する決定ステップと、前記決定ステップにより決定されたタイミングに基づいて、前記配信装置から前記デバイスに前記ソフトウェアを配信することを指示する配信ステップとを有することを特徴とする。
本発明のコンピュータプログラムは、前記ソフトウェア配信方法の各ステップをコンピュータに実行させることを特徴とする。
本発明によれば、デバイスの動作状態に応じて、ソフトウェアを配信するタイミングを決定するようにしたので、ソフトウェアが多数のデバイスに同時に配信されることを可及的に防止することができる。したがって、デバイスで使用されるソフトウェアを配信するサーバが、従来よりも効率よく、当該ソフトウェアを多数のデバイスに配信することができる。
(第1の実施形態)
以下に、図面を参照しながら、本発明の第1の実施形態について説明する。
図1は、デバイス装置の内部構成の一例を示した図である。
本実施形態では、デバイス装置100は、例えばMFPであり、CPU101においてネットワーク制御部とデバイス(プリンタ、コピー、スキャナ、FAX)制御部とが動作する形態で実現されている。このCPU101は、ROM103に格納されているファームウェアを実行する。また、CPU101は、システムバス111を介して相互に接続される各装置102〜107を総括的に制御する。また、CPU101は、LAN112等のネットワークを介して相互に接続されているサーバ装置200(図2、図3を参照)からデータを受信して、ROM103に格納されているファームウェアを更新させることが可能である。
RAM102は、CPU101の主メモリ、ワークエリア等として機能する。また、RAM102は、デバイス装置100の設定値を保存するバックアップRAMとしても機能する。LCDCコントローラ(LCDC)104は、液晶ディスプレイ(LCD)108の表示を制御する。液晶ディスプレイ(LCD)108は、タッチパネルの機能を有している。
ディスクコントローラ(DKC)105は、ハードディスク(HD)109を制御し、画像や様々なユーザデータ等を保存する。デバイスコントローラ(DVC)106は、プリンタ等のデバイス(DV)110を制御する。ネットワークインタフェースカード(NIC)107は、LAN112を介して相互に接続されているサーバ装置200との通信を行い、自身のファームウェア等を受信することができる。
尚、ハードディスク(HD)109はなくてもよいし、また、データを保存することができれば、ハードディスク(HD)109の代わりにUSBメモリ等を用いてもよい。また、ファームウェア等のソフトウェアは、ROM103に格納されていてもハードディスク(HD)109に格納されていてもよい。また、デバイス装置100には、ユーザが操作する各種のスイッチが設けられており、CPU101は、スイッチの操作の内容に応じた処理を実行する。
図2は、サーバ装置200の内部構成の一例を示した図である。
CPU201は、ROM203に格納されているプログラムを実行し、システムバス111を介して相互に接続される各装置202〜207を総括的に制御する。RAM202は、CPU201の主メモリ、ワークエリア等として機能する。また、RAM202は、サーバ装置200の設定値を保存するバックアップRAMとしても機能する。
キーボードコントローラ(KBC)204は、キーボード(KB)208からの入力を制御する。CRTコントローラ(CRTC)205は、CRTディスプレイ(CRT)209の表示を制御する。
ディスクコントローラ(DKC)206は、ハードディスク(HD)210を制御する。このディスクコントローラ(DKC)206によって、ハードディスク(HD)210にプログラムを保存しておくことが可能である。ネットワークインタフェースカード(NIC)207は、インターネット212を介して相互に接続されているデバイス装置100にファームウェアを送信することができる。
尚、ハードディスク(HD)210はなくてもよいし、また、データを保存することができれば、ハードディスク(HD)210の代わりにUSBメモリ等を用いてもよい。また、プログラムは、ROM203に格納されていてもハードディスク(HD)210に格納されていてもよい。
図3は、本実施形態におけるファームウェア配信システムの全体構成の一例を示す図である。図3において、デバイス装置100とサーバ装置200との間に示されている矢印は、データ又は指示の流れを示している。
デバイス装置100は、PC300から印刷ジョブを受信したり、ユーザによる操作に基づいてコピーを行ったりすることが可能である。そして、デバイス装置100は、自身のファームウェアの更新指示があるかどうかを、サーバ装置200に定期的に確認する。サーバ装置200は、図4を用いて後述するダウンロード記述ファイルを更新したり、更新可能なファームウェアをデバイス装置100に送信したりすることができる。
尚、サーバ装置200、デバイス装置100、PC300共、図1〜図3に示す構成に限定されるものではなく、夫々1又は複数の組み合わせでもよい。また、インターネット212を経由せずに、サーバ装置200を構成するようにしてもよい。
以上のように本実施形態では、例えば、デバイス装置100によりデバイスの一例が実現され、サーバ装置200により配信装置の一例が実現される。
図4は、サーバ装置200に格納されているダウンロード記述テーブルの一例を示す図である。本実施形態では、このダウンロード記述テーブルは、サーバ装置200が管理するデバイス装置100毎に作成されている。
図4において、KEY401は、デバイス装置100に発生する障害(エラー)に関するキーワード(エラー発生キーワード)であり、"モジュール名:動作状態"で表される。また、UPDATE TIME402は、KEY401として登録されている夫々のキーワードに対応する"ファームウェアの更新時間"である。
"SLP:REBOOT"は、SLP(Serial Link Protocol)パケットを受けるたびにリブートされるという障害の発生を示している。図4に示す例では、"SLP:REBOOT"に対しては、"即時"にダウンロードを開始することを示す"Immedately"を登録している。また、"RDS:COUNTER ERROR"は、24時間以内にカウンタ送信を行うカウンタ送信モジュールにおける送信時のエラーの発生を示している。図4に示す例では、"RDS:COUNTER ERROR"に対しては、次回エラーが発生するであろう"24時間以内"にダウンロードを行うことを示す"Less than 24 hours"を登録している。
"PCL:PROCESS ERROR"は、PCL(Printer Control Language)の印刷エラーの発生を示している。図4に示す例では、"PCL:PROCESS ERROR"に対しては、"即時"にダウンロードを開始することを示す"Immedately"を登録している。また、"SCON:SLEEP ERROR"は、電力制御系のエラーの発生を示している。図4に示す例では、"SCON:SLEEP ERROR"に対しては、次回エラーが発生するであろう"スリープモードへの移行時"までにダウンロードを行うことを示す"Before Sleeping"を登録している。
"UI:MESSAGE ERROR"は、UI(User Interface)に表示するメッセージ(文言)に関するエラーの発生を示している。図4に示す例では、"UI:MESSAGE ERROR"に対しては、ダウンロードを行う緊急性を落として、"24時間以内"にダウンロードを行うことを示す"Less than 24 hours"を登録している。また、"REPORT:PRINT ERROR"は、レポート出力に関するエラーの発生を示している。図4に示す例では、"REPORT:PRINT ERROR"に対しては、"次のレポート出力時間の前"までにダウンロードを行うことを示す"Before next time"を登録している。
尚、本実施形態では、KEY401に対応付けて、ファームウェアの更新時間であるUPDATE TIME402を登録する場合を例に挙げて説明した。しかしながら、ファームウェアの更新時間を判別できる情報であれば、必ずしもファームウェアの更新時間そのものを登録しなくてもよい。例えば、UPDATE TIME402の代わりに更新レベルを登録してもよい。このようにした場合、その更新レベルの値に応じて、ファームウェアをダウンロードするタイミングが決定されるようにする。例えば、"Immedately"に相当する更新レベルをレベル1とする。また、"Before Sleeping"、"Before next time"に相当する更新レベルをレベル2とするまた、"Less than 24 hours"に相当する更新レベルをレベル3とする。そして、レベル1が登録されている場合には即時、レベル2が登録されている場合には1時間以内、レベル3が登録されている場合には24時間以内にファームウェアをダウンロードするような制御を行うようにする。
次に、図5のフローチャートを参照しながら、デバイス装置100における処理の一例を説明する。図5のフローチャートは、例えば、デバイス装置100のCPU101がROM103に記憶されているファームウェア等のプログラム(ソフトウェア)を実行することにより実現される。
まず、ステップS501では、CPU101は、デバイス装置100内部の動作状態を記録したログの収集を順次行う。
以上のように本実施形態では、例えば、デバイス装置100内部の動作状態を記録したログにより、動作状態情報(エラー情報)の一例が実現され、ステップS501の処理を行うことにより取得手段の一例が実現される。
次に、ステップS502では、CPU101は、ファームウェアの更新指示があるかどうかを、サーバ装置200に確認する。尚、サーバ装置200に確認せずに、デバイス装置100側でファームウェアの更新指示があるかどうかを判断することもできる。このようにする場合には、ファームウェアの更新指示をデバイス装置100がサーバ装置200に行うことになる。
次に、ステップS503では、CPU101は、サーバ装置200から、ファームウェアの更新指示があるかどうかを判別する。この判別の結果、ファームウェアの更新指示がない場合には、図5のフローチャートによる処理を終了する。
一方、ファームウェアの更新指示がある場合には、ステップS504へ進む。ステップS504では、CPU101は、図4で示したダウンロード記述テーブルを、サーバ装置200から取得する。
次に、ステップS505では、CPU101は、ステップS501で収集したログの内容と、ステップS504で取得したダウンロード記述ファイルにあるKEY401の内容から、夫々エラー発生キーワードを検索する。
次に、ステップS506では、CPU101は、ステップS505の検索の結果に基づいて、ログから得られたエラー発生キーワードに一致するエラー発生キーワードが、ダウンロード記述ファイル(KEY401)に登録されているかどうかを判別する。
以上のように本実施形態では、例えば、図4に示すダウンロード記述テーブルにより配信タイミング管理テーブルの一例が実現される。また、例えば、ダウンロード記述テーブルのKEY401の情報、UPDATE TIME402の情報により、夫々、識別子、配信タイミング判別情報が実現される。そして、サーバ装置200がダウンロード記述テーブルを記憶することにより保持手段の一例が実現される。また、例えば、ステップS504の処理を行うことにより第2の取得手段の一例が実現される。
ステップS506の判別の結果、ログから得られたエラー発生キーワードに一致するエラー発生キーワードが、ダウンロード記述ファイル(KEY401)に登録されていなければ、図5のフローチャートによる処理を終了する。
一方、ログから得られたエラー発生キーワードに一致するエラー発生キーワードが、ダウンロード記述ファイル(KEY401)に登録されている場合には、ステップS507へ進む。ステップS507では、CPU101は、ログから得られたエラー発生キーワードに一致するエラー発生キーワードに対応付けられてダウンロード記述ファイルに登録されているUPDATE TIME402の内容(更新時間)を確認する。
次に、ステップS508では、CPU101は、ステップS507で確認した更新時間が"Before Next time"であるかどうかを判別する。この判別の結果、ステップS507で確認した更新時間が"Before Next time"でなければ、ステップS509へ進み、ステップS507で確認した更新時間が"Before Next time"であれば、ステップS510へ進む。
ステップS509では、CPU101は、ステップS507で確認した更新時間に従って、サーバ装置200から配信されたファームウェアの更新を行う。
一方、ステップS510では、CPU101は、デバイスの動作を示すデバイス動作情報の設定に基づいて、次回のエラー発生時刻を算出する。図4に示す例では、次回のレポート出力時間を算出する。
次に、ステップS511では、CPU101は、ステップS510で取得した次回のエラー発生時刻よりも前に、サーバ装置200から配信されたファームウェアの更新を行う。
以上のように本実施形態では、例えば、ステップS506〜511の処理を行うことにより決定手段の一例が実現される。また、例えば、ステップS509、S511で、サーバ装置200がファームウェアをデバイス装置100に配信することにより配信手段の一例が実現される。
以上のように本実施形態では、デバイス装置100に発生する障害と、ファームウェアの更新時間とを相互に関連付けて、サーバ装置200のダウンロード記述テーブルに予め登録しておく。デバイス装置100は、ファームウェアの更新がサーバ装置200から指示されると、ダウンロード記述テーブルをサーバ装置200から取得する。そして、デバイス装置100は、自身に発生した障害の記録と、ダウンロード記述テーブルとを照合し、自身に発生した障害がダウンロード記述テーブルに登録されている場合は、その障害に関連付いている更新時間に基づくタイミングで、ファームウェアを更新する。
したがって、サーバ装置200からファームウェアを多数のデバイス装置100に配信する場合であっても、それまでのデバイス装置100の動作に応じて、ファームウェアを更新するタイミングを変えることが可能になる。したがって、サーバ装置200の負荷を軽減させることができ、効率的にファームウェアを配信することができる。また、デバイス装置100も効率的にファームウェアのダウンロードを行うことができ、デバイス装置100とサーバ装置200とを相互に接続するネットワークのトラフィックを軽減させることが可能となる。
尚、ステップS509では、UPDATE TIME402で指定された更新時間に従ってファームウェアを更新するようにしている。したがって、UPDATE TIME402が"Immediately"であれば、CPU101が即時にファームウェアの更新を行うことになる。
また、本実施形態では、ステップS506でエラー発生キーワードが一致していない場合には、何もせずに処理を終了するようにしたが、このような場合には、定期的(例えば1カ月に1回)にファームウェアのダウンロードを行ってもよい。
また、本実施形態では、ステップS501では、ログの収集を行うようにしたが、ログの収集を行う代わりに、デバイス装置100のエラーを単に監視するようにしてもよい。
また、前述したように、UPDATE TIME402(更新時間)の代わりに更新レベルを用いて、更新レベルに応じたダウンロードの時間を決定してダウンロードを実行してもよい。
また、サーバ装置200からのファームウェアのダウンロードが失敗した場合には、エラーが発生した場合にデバイス装置100が処理(例えばファームウェアの配信要求)をリトライする頻度を、更新時間や更新レベルに応じて変更するようにしてもよい。このようにした場合には、デバイス装置100は、変更された頻度に従って、ファームウェアの再配信をサーバ装置200に要求することになる。本実施形態では、例えば、このような変形をすることによって、要求手段、第2の決定手段の一例が実現される。
また、本実施形態では、ファームウェアを配信する場合を例に挙げて説明したが、ファームウェア以外のソフトウェア(例えばアプリケーションプログラム)を配信するようにしてもよい。
(第2の実施形態)
次に、本発明の第2の実施形態について説明する。前述した第1の実施形態では、ファームウェアを更新するタイミングをデバイス装置100で判別する場合を例に挙げて説明した。これに対し、本実施形態では、ファームウェアを更新するタイミングをサーバ装置200で判別する場合を例に挙げて説明する。このように本実施形態と前述した第1の実施形態とは、ファームウェアを更新するタイミングを判別する主体が主として異なる。したがって、本実施形態の説明において、前述した第1の実施形態と同一の部分については、図1〜図7に付した符号と同一の符号を付すこと等により、詳細な説明を省略する。例えば、サーバ装置及びデバイス装置の内部構成は、第1の実施形態のものと同様の構成で実現することができる。
図6は、本実施形態におけるファームウェア配信システムの全体配置の一例を示す図である。図6において、デバイス装置600a、600bとサーバ装置700との間に示されている矢印は、データ又は指示の流れを示している。
デバイス装置600は、PC300から印刷ジョブを受信したり、デバイス装置100のユーザによる操作に基づいてコピー等を行ったりすることが可能である。そして、デバイス装置600は、自身のファームウェアの更新指示があるかどうかを、サーバ装置700に定期的に確認する。サーバ装置700は、図7を用いて後述するダウンロード記述ファイルを更新したり、更新可能なファームウェアをデバイス装置600に送信したりすることができる。
尚、サーバ装置700、デバイス装置600、PC300共、図1、図2、図6に示す構成に限定されるものではなく、夫々1又は複数の組み合わせでもよい。また、図3と同様に、サーバ装置700と、デバイス装置600、PC300とが、インターネット212を経由して通信するようにシステムを構成するようにしてもよい。
以上のように本実施形態では、例えば、デバイス装置600によりデバイスの一例が実現され、サーバ装置700により配信装置の一例が実現される。
図7は、サーバ装置700に格納されているダウンロード記述テーブルの一例を示す図である。本実施形態でも、第1の実施形態と同様に、このダウンロード記述テーブルは、サーバ装置700が管理するデバイス装置600毎に作成されている。
図7に示すダウンロード記述テーブルは、基本的に図4に示したものと同様である。すなわち、KEY701は、デバイス装置600に発生する障害に関するキーワード(エラー発生キーワード)であり、"モジュール名:動作状態"で表される。また、UPDATE TIME702は、KEY701として登録されている夫々のキーワードに対応する"ファームウェアの更新時間"である。
"SLP:REBOOT"は、SLPパケットを受けるたびにリブートされるという障害の発生を示している。図7に示す例では、"SLP:REBOOT"に対しては、"即時"にダウンロードを開始することを示す"Immedately"を登録している。"RDS:COUNTER ERROR"は、24時間以内にカウンタ送信を行うカウンタ送信モジュールにおける送信時のエラーの発生を示している。図7に示す例では、"RDS:COUNTER ERROR"に対しては、次回エラーが発生するであろう"24時間以内"にダウンロードを行うことを示す"Less than 24 hours"を登録している。
"PCL:PROCESS ERROR"は、PCLの印刷エラーの発生を示している。図7に示す例では、"PCL:PROCESS ERROR"に対しては、"即時"にダウンロードを開始することを示す"Immedately"を登録している。"UI:MESSAGE ERROR"は、UI(User Interface)に表示するメッセージ(文言)に関するエラーの発生を示している。図7に示す例では、"UI:MESSAGE ERROR"に対しては、ダウンロードを行う緊急性を落として、"24時間以内"にダウンロードを行うことを示す"Less than 24 hours"を登録している。
尚、本実施形態においても、KEY701に対応付けて、ファームウェアの更新時間であるUPDATE TIME702を登録する場合を例に挙げて説明した。しかしながら、第1の実施形態で説明した様に、UPDATE TIME702の代わりに、更新時間以外の更新レベル等を登録してもよい。
次に、図8のフローチャートを参照しながら、サーバ装置700における処理の一例を説明する。
まず、ステップS801では、CPU201は、ファームウェアの更新指示をデバイス装置600に対して行うかどうかを確認する。尚、ファームウェアの更新指示が各デバイス装置600からきているかどうかをサーバ装置700側で判断することもできる。
次に、ステップS802では、CPU201は、ファームウェアの更新指示がなされているデバイスであるかどうかを判別する。この判別の結果、ファームウェアの更新指示がなされているデバイスがない場合には、図8のフローチャートによる処理を終了する。
一方、ファームウェアの更新指示がなされているデバイスがある場合には、ステップSS803へ進む。ステップS803では、CPU201は、デバイス装置600から、デバイス装置600内部の動作状態を記録したログを取得する。
以上のように本実施形態では、例えば、デバイス装置100内部の動作状態を記録したログにより、動作状態情報(エラー情報)の一例が実現され、ステップS803の処理を行うことにより取得手段の一例が実現される。
次に、ステップS804では、CPU201は、図7に示したダウンロード記述テーブルを解析する。
次に、ステップS805では、CPU201は、ステップS803で取得したログの内容と、ステップS804で解析したダウンロード記述ファイルにあるKEY701の内容から、夫々エラー発生キーワードを検索する。
次に、ステップS806では、CPU201は、ステップS805の検索の結果に基づいて、ログから得られたエラー発生キーワードに一致するエラー発生キーワードが、ダウンロード記述ファイル(KEY701)に登録されているかどうかを判別する。
以上のように本実施形態では、例えば、図7に示すダウンロード記述テーブルにより配信タイミング管理テーブルの一例が実現される。また、例えば、ダウンロード記述テーブルのKEY701の情報、UPDATE TIME702の情報により、夫々、識別子、配信タイミング判別情報が実現される。そして、サーバ装置700がダウンロード記述テーブルを記憶することにより保持手段の一例が実現される。
ステップS806の判別の結果、ログから得られたエラー発生キーワードに一致するエラー発生キーワードが、ダウンロード記述ファイル(KEY701)に登録されていなければ、図5のフローチャートによる処理を終了する。
一方、ログから得られたエラー発生キーワードに一致するエラー発生キーワードが、ダウンロード記述ファイル(KEY701)に登録されている場合には、ステップS807へ進む。ステップS807では、CPU201は、ログから得られたエラー発生キーワードに一致するエラー発生キーワードに対応付けられてダウンロード記述ファイルに登録されているUPDATE TIME702の内容(更新時間)を確認する。
次に、ステップS808では、CPU201は、ステップS807で確認した更新時間が"Immediately"であるかどうかを判別する。この判別の結果、ステップS807で確認した更新時間が"Immediately"であれば、ステップS809へ進み、ステップS807で確認した更新時間が"Immediately"でなければ、ステップS810へ進む。
ステップS810では、CPU201は、ステップS807で確認した更新時間に従って該当するデバイス装置600に、ファームウェアを配信して、ファームウェアの更新を指示する。
一方、ステップS809では、CPU201は、該当するデバイス装置600にファームウェアを即時に配信して、ファームウェアの更新を指示する。
以上のように本実施形態では、例えば、ステップS806〜810の処理を行うことにより決定手段の一例が実現される。
以上のように、ファームウェアを更新するタイミングをサーバ装置700側で判別するようにしても、前述した第1の実施形態と同様の効果を得ることができる。
尚、本実施形態では、ステップS806でエラー発生キーワードが一致していない場合には、何もせずに処理を終了するようにしたが、このような場合には、定期的(例えば1カ月に1回)にファームウェアのダウンロードを行ってもよい。
また、ステップS803では、ログの取得を行うようにしたが、ログの取得を行う代わりに、デバイス装置100のエラーを単に監視するようにしてもよい。
また、前述したように、UPDATE TIME702(更新時間)の代わりに更新レベルを用いて、更新レベルに応じたダウンロードの時間を決定してダウンロードを実行してもよい。
また、第1の実施形態と同様に、サーバ装置700からのファームウェアのダウンロードが失敗した場合には、エラーが発生した場合にデバイス装置600が処理をリトライする頻度を、更新時間や更新レベルに応じて変更してもよい。このようにした場合には、デバイス装置100は、変更された頻度に従って、ファームウェアの再配信をサーバ装置200に要求することになる。本実施形態では、例えば、このような変形をすることによって、要求手段、第2の決定手段の一例が実現される。 また、第1の実施形態と同様に、ファームウェア以外のソフトウェア(例えばアプリケーションプログラム)を配信するようにしてもよい。
(本発明の他の実施形態)
前述した本発明の実施形態におけるソフトウェア配信システムを構成する各手段、並びにソフトウェア配信方法の各ステップは、コンピュータのRAMやROMなどに記憶されたプログラムが動作することによって実現できる。このプログラム及び前記プログラムを記録したコンピュータ読み取り可能な記録媒体は本発明に含まれる。
また、本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
尚、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図5、図8に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接、あるいは遠隔から供給するものを含む。そして、そのシステムあるいは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
したがって、本発明の機能処理をコンピュータで実現するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であってもよい。
プログラムを供給するための記録媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RWなどがある。また、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などもある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
尚、前述した各実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の第1の実施形態を示し、デバイス装置の内部構成の一例を示した図である。 本発明の第1の実施形態を示し、サーバ装置の内部構成の一例を示した図である。 本発明の第1の実施形態を示し、ファームウェア配信システムの全体構成の一例を示す図である。 本発明の第1の実施形態を示し、ダウンロード記述テーブルの一例を示す図である。 本発明の第1の実施形態を示し、デバイス装置における処理の一例を説明するフローチャートである。 本発明の第2の実施形態を示し、ファームウェア配信システムの全体配置の一例を示す図である。 本発明の第2の実施形態を示し、ダウンロード記述テーブルの一例を示す図である。 本発明の第2の実施形態を示し、サーバ装置における処理の一例を説明するフローチャートである。
符号の説明
100、600 デバイス装置
112 LAN
200、700 サーバ装置
212 インターネット

Claims (17)

  1. 配信装置からデバイスにソフトウェアを配信するソフトウェア配信システムであって、
    前記デバイスで生じた動作状態に関する動作状態情報を取得する取得手段と、
    前記取得手段により取得された動作状態情報に基づく動作状態に応じて、前記デバイスに前記ソフトウェアを配信するタイミングを決定する決定手段と、
    前記決定手段により決定されたタイミングに基づいて、前記配信装置から前記デバイスに前記ソフトウェアを配信する配信手段とを有することを特徴とするソフトウェア配信システム。
  2. 前記デバイスで生じる動作状態を識別する識別子と、前記ソフトウェアを当該動作状態に応じて配信するタイミングを判別するための配信タイミング判別情報とが相互に対応付けられて登録された配信タイミング管理テーブルを保持する保持手段を有し、
    前記決定手段は、前記取得手段により取得された動作状態情報に基づく動作状態を識別する識別子に対応付けられて前記配信タイミング管理テーブルに登録されている配信タイミング判別情報に基づいて、前記デバイスに前記ソフトウェアを配信するタイミングを決定することを特徴とする請求項1に記載のソフトウェア配信システム。
  3. 前記配信装置が、前記保持手段を有し、
    前記デバイスが、前記取得手段と、前記決定手段とを有し、
    前記デバイスは、前記保持手段により保持されている配信タイミング管理テーブルを、前記配信装置から取得する第2の取得手段を更に有することを特徴とする請求項2に記載のソフトウェア配信システム。
  4. 前記決定手段は、前記デバイスにおける動作を示す情報に基づいて、前記デバイスが、次に前記取得手段により取得された動作状態になる時間を算出し、算出した時間を、当該デバイスに前記ソフトウェアを配信するタイミングとして決定することを特徴とする請求項2又は3に記載のソフトウェア配信システム。
  5. 前記配信装置が、前記取得手段と、前記保持手段と、前記決定手段とを有することを特徴とする請求項2に記載のソフトウェア配信システム。
  6. 前記決定手段は、前記取得手段により取得された動作状態情報に基づく動作状態を識別する識別子が、前記配信タイミング管理テーブルに登録されていない場合には、予め定められたタイミングを、前記デバイスに前記ソフトウェアを配信するタイミングとして決定することを特徴とする請求項2〜5の何れか1項に記載のソフトウェア配信システム。
  7. 前記配信装置から前記デバイスへのソフトウェアのダウンロードに失敗すると、前記取得手段により取得された動作状態情報に基づく動作状態を識別する識別子に対応付けられて前記配信タイミング管理テーブルに登録されている配信タイミング判別情報に応じて、当該ソフトウェアの再配信を前記配信装置に要求する頻度を決定する第2の決定手段を有し、
    前記第2の決定手段により決定された頻度で、前記配信装置に前記ソフトウェアの配信を要求する要求手段とを有することを特徴とする請求項1〜6の何れか1項に記載のソフトウェア配信システム。
  8. 前記取得手段は、前記デバイスで発生したエラーに関するエラー情報を取得し、
    前記決定手段は、前記取得手段により取得されたエラー情報に基づくエラーの内容に応じて、前記デバイスに前記ソフトウェアを配信するタイミングを決定することを特徴とする請求項1〜7の何れか1項に記載のソフトウェア配信システム。
  9. 配信装置からデバイスにソフトウェアを配信するソフトウェア配信方法であって、
    前記デバイスで生じた動作状態に関する動作状態情報を取得する取得ステップと、
    前記取得ステップにより取得された動作状態情報に基づく動作状態に応じて、前記デバイスに前記ソフトウェアを配信するタイミングを決定する決定ステップと、
    前記決定ステップにより決定されたタイミングに基づいて、前記配信装置から前記デバイスに前記ソフトウェアを配信することを指示する配信ステップとを有することを特徴とするソフトウェア配信方法。
  10. 前記デバイスで生じる動作状態を識別する識別子と、前記ソフトウェアを当該動作状態に応じて配信するタイミングを判別するための配信タイミング判別情報とが相互に対応付けられて登録された配信タイミング管理テーブルを保持する保持ステップを有し、
    前記決定ステップは、前記取得ステップにより取得された動作状態情報に基づく動作状態を識別する識別子に対応付けられて前記配信タイミング管理テーブルに登録されている配信タイミング判別情報に基づいて、前記デバイスに前記ソフトウェアを配信するタイミングを決定することを特徴とする請求項9に記載のソフトウェア配信方法。
  11. 前記配信装置が、前記保持ステップを行い、
    前記デバイスが、前記取得ステップと、前記決定ステップとを行い、
    前記デバイスは、前記保持ステップにより保持されている配信タイミング管理テーブルを、前記配信装置から取得する第2の取得ステップを更に有することを特徴とする請求項10に記載のソフトウェア配信方法。
  12. 前記決定ステップは、前記デバイスにおける動作を示す情報に基づいて、前記デバイスが、次に前記取得ステップにより取得された動作状態情報に基づく動作状態になる時間を算出し、算出した時間を、当該デバイスに前記ソフトウェアを配信するタイミングとして決定することを特徴とする請求項10又は11に記載のソフトウェア配信方法。
  13. 前記配信装置が、前記取得ステップと、前記保持ステップと、前記決定ステップとを行うことを特徴とする請求項10に記載のソフトウェア配信方法。
  14. 前記決定ステップは、前記取得ステップにより取得された動作状態情報に基づく動作状態を識別する識別子が、前記配信タイミング管理テーブルに登録されていない場合には、予め定められたタイミングを、前記デバイスに前記ソフトウェアを配信するタイミングとして決定することを特徴とする請求項10〜13の何れか1項に記載のソフトウェア配信方法。
  15. 前記配信装置から前記デバイスへのソフトウェアのダウンロードに失敗すると、前記取得ステップにより取得された動作状態情報に基づく動作状態を識別する識別子に対応付けられて前記配信タイミング管理テーブルに登録されている配信タイミング判別情報に応じて、当該ソフトウェアの再配信を前記配信装置に要求する頻度を決定する第2の決定ステップを有し、
    前記第2の決定ステップにより決定された頻度で、前記配信装置に前記ソフトウェアの配信を要求する要求ステップとを有することを特徴とする請求項9〜14の何れか1項に記載のソフトウェア配信方法。
  16. 前記取得ステップは、前記デバイスで発生したエラーに関するエラー情報を取得し、
    前記決定ステップは、前記取得ステップにより取得されたエラー情報に基づくエラーの内容に応じて、前記デバイスに前記ソフトウェアを配信するタイミングを決定することを特徴とする請求項9〜15の何れか1項に記載のソフトウェア配信方法。
  17. 請求項9〜16の何れか1項に記載のソフトウェア配信方法の各ステップをコンピュータに実行させることを特徴とするコンピュータプログラム。
JP2008172804A 2008-07-01 2008-07-01 ソフトウェア配信システム、ソフトウェア配信方法、及びコンピュータプログラム Pending JP2010015267A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008172804A JP2010015267A (ja) 2008-07-01 2008-07-01 ソフトウェア配信システム、ソフトウェア配信方法、及びコンピュータプログラム
US12/493,225 US8194273B2 (en) 2008-07-01 2009-06-28 Program transmission system, program transmission method, and storage medium storing control program to transmit software from a server to a device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008172804A JP2010015267A (ja) 2008-07-01 2008-07-01 ソフトウェア配信システム、ソフトウェア配信方法、及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
JP2010015267A true JP2010015267A (ja) 2010-01-21

Family

ID=41465282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008172804A Pending JP2010015267A (ja) 2008-07-01 2008-07-01 ソフトウェア配信システム、ソフトウェア配信方法、及びコンピュータプログラム

Country Status (2)

Country Link
US (1) US8194273B2 (ja)
JP (1) JP2010015267A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100121906A1 (en) * 2008-11-11 2010-05-13 Electronics And Telecommunications Research Institute Device management apparatus and method for home network system
JP5310324B2 (ja) * 2009-07-07 2013-10-09 株式会社リコー 情報処理装置、情報処理方法、及びプログラム
JP6000567B2 (ja) * 2012-02-23 2016-09-28 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム
JP5879276B2 (ja) * 2013-01-22 2016-03-08 京セラドキュメントソリューションズ株式会社 情報処理装置、及び作成プログラム
JP6362503B2 (ja) * 2014-10-02 2018-07-25 キヤノン株式会社 ネットワークシステム、及び、ネットワークシステムの制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0598502B1 (en) * 1992-11-18 1998-04-29 Canon Kabushiki Kaisha Method and apparatus for providing a bi-directional interface between a local area network and a peripheral
JP2000132365A (ja) * 1998-10-28 2000-05-12 Fujitsu Ltd 周辺装置管理装置及びそれに接続される周辺装置並びに周辺装置管理方法
JP3671759B2 (ja) * 1999-08-26 2005-07-13 株式会社日立製作所 ソフトウェア配布方法およびシステム
US6601212B1 (en) * 2000-03-29 2003-07-29 Hewlett-Packard Development Company, Lp. Method and apparatus for downloading firmware to a non-volatile memory
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
JP2003108448A (ja) * 2001-07-16 2003-04-11 Canon Inc ネットワークデバイスの管理装置、管理方法及び管理プログラム
US20030035135A1 (en) * 2001-08-16 2003-02-20 Corrales Richard C. Methods, apparatus, and articles of manufacture for creating three-dimensional and animated images with lenticular and anaglyph viewing devices
US20030086107A1 (en) * 2001-11-02 2003-05-08 Johnson Steven Mark Remote firmware upgrade via I/O connection
JP2003337505A (ja) * 2002-05-20 2003-11-28 Nisca Corp 画像形成システム及び画像形成装置
JP4408033B2 (ja) * 2002-09-24 2010-02-03 株式会社リコー 遠隔管理システム
JP2004165734A (ja) 2002-11-08 2004-06-10 Minolta Co Ltd 画像形成装置及びファームウェアプログラム
US8271971B2 (en) * 2002-11-26 2012-09-18 Hewlett-Packard Development Company, L.P. System and method for automated program updating in a remote appliance
US20040109193A1 (en) * 2002-12-04 2004-06-10 Brett Smith Image forming device having a transmission control and method of operating an image forming device
US7876469B2 (en) * 2003-12-26 2011-01-25 Panasonic Corporation Image forming apparatus and updating method
US7814480B2 (en) * 2005-09-05 2010-10-12 Seiko Epson Corporation Control software updating technique for a network apparatus
JP2007249461A (ja) * 2006-03-15 2007-09-27 Konica Minolta Business Technologies Inc 情報処理装置及びプログラム

Also Published As

Publication number Publication date
US8194273B2 (en) 2012-06-05
US20100005352A1 (en) 2010-01-07

Similar Documents

Publication Publication Date Title
US8817295B2 (en) Communication system and printer therefor
JP5966270B2 (ja) システム及び機器管理プログラム
JP2009020665A (ja) 情報処理装置、情報処理方法、記憶媒体、プログラム
JP2009252039A (ja) 配信装置、配信方法、及びコンピュータプログラム
JP4533780B2 (ja) 画像形成システム、画像形成装置、端末装置及び端末装置のドライバの更新方法
JP4958692B2 (ja) 配信装置、配信方法、及びコンピュータプログラム
JP2002236590A (ja) ソフトウェアのインストール方法
JP4944812B2 (ja) 情報処理システムと情報処理方法とプログラム
US20160092281A1 (en) Information processing apparatus, method for controlling the same, and storage medium
JP2010015267A (ja) ソフトウェア配信システム、ソフトウェア配信方法、及びコンピュータプログラム
JP2008072318A (ja) 設定情報管理システム、機器、設定情報管理装置、設定情報取得プログラム、設定情報提供プログラム及び記録媒体
US7456991B2 (en) Printer based file revision databasing
EP1933527A2 (en) Information processing method and system
JP4004271B2 (ja) クライアント/サーバシステムにおけるクライアントの環境設定装置、方法、プログラム記録媒体およびプログラム
JP2010128958A (ja) 機器管理装置、機器管理システム、動作設定管理方法、動作設定管理プログラム、及びそのプログラムを記録した記録媒体
JP2008108195A (ja) デバイス監視システム、管理サーバ、監視装置、デバイス監視方法、記憶媒体、プログラム
JP2013025460A (ja) インストールシステム、インストールプログラム、インストールプログラムを記録した記録媒体、及びプログラムのインストール方法
JP2009199400A (ja) 管理サーバ、データ処理方法、プログラム
JP2008158660A (ja) インストーラ作成装置、インストーラ作成方法、およびインストーラ作成プログラム
JP2009151470A (ja) 印刷制御装置および、印刷制御方法ならびに印刷制御方法を実行するプログラム
JP2019212223A (ja) 情報処理システム、およびその制御方法
JP6197611B2 (ja) インストール制御プログラム、記録媒体及びインストール制御方法
JP6016855B2 (ja) インストーラープログラム、ドライバープログラムおよび画像形成装置
JP2008071288A (ja) ソフトウェア管理方法及び管理システム
JP2014042149A (ja) 画像形成装置及びその制御方法、並びにプログラム