(57)【要約】      （修正有）【課題】ユーザの運用状態に対応してソフトウェアを更新するソフトウェア更新装置，ソフトウェア更新方法，およびプログラムを提供する。【解決手段】ソフトウェア更新装置が，装置の起動条件を表す起動条件情報と，この装置の起動原因を表す起動原因情報とを記憶する記憶部と，起動条件情報に従って，装置を起動させる起動処理部と，装置の起動と対応して，記憶部の起動原因情報を書き換える書換処理部と，起動原因情報に基づいて，ソフトウェアの更新の有無を決定する決定部と，決定部での決定に基づいて，ソフトウェアを更新する更新処理部と，を具備する。【選択図】図２
2008084025.tif 000002
【特許請求の範囲】
【請求項１】
装置の起動条件を表す起動条件情報と，装置の起動原因を表す起動原因情報とを記憶する第１の記憶部と，
更新対象のソフトウェアを記憶する第２の記憶部と，
前記第１の記憶部の起動条件情報に従って，装置を起動させる起動処理部と，
前記起動処理部による装置の起動と対応して，前記第１の記憶部の起動原因情報を書き換える第１の書換処理部と，
前記第１の記憶部の起動原因情報に基づいて，ソフトウェアの更新の有無を決定する決定部と，
前記決定部での決定に基づいて，前記第２の記憶部のソフトウェアを更新する更新処理部と，
を具備することを特徴とするソフトウェア更新装置。
【請求項２】
外部電源の接続の有無を検出する検出部をさらに具備し，
前記検出部が外部電源を検出する場合に，前記決定部がソフトウェアの更新を決定する，
ことを特徴とする請求項１記載のソフトウェア更新装置。
【請求項３】
前記更新処理部が前記第２の記憶部のソフトウェアを更新する場合に，前記第１の記憶部の起動原因情報を書き換える第２の書換処理部
をさらに具備することを特徴とする請求項１記載のソフトウェア更新装置。
【請求項４】
前記第２の書換処理部による起動原因情報の書換後に，装置を停止させる停止処理部，
をさらに具備することを特徴とする請求項３記載のソフトウェア更新装置。
【請求項５】
記憶部中の起動条件情報に従って，起動処理部が装置を起動させるステップと，
前記起動処理部による装置の起動と対応して，書換処理部が前記記憶部の起動原因情報を書き換えるステップと，
前記記憶部の起動原因情報に基づいて，決定部がソフトウェアの更新の有無を決定するステップと，
前記決定部での決定に基づいて，更新処理部がソフトウェアを更新するステップと，
を具備することを特徴とするソフトウェア更新方法。
【請求項６】
記憶部の起動原因情報に基づいて，ソフトウェアの更新の有無を決定する決定部と，
前記決定部での決定に基づいて，ソフトウェアを更新する更新処理部と，
してコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ソフトウェアを更新するソフトウェア更新装置，ソフトウェア更新方法，およびプログラムに関する。
【背景技術】
【０００２】
コンピュータを動作させるソフトウェアが作り替えられる（例えば，バージョンアップ，バグフィックス）ことがある。この場合，ソフトウェアのアップデート（更新）が実行され，コンピュータ内のソフトウェアの全部または一部が置き換えられる。
【０００３】
コンピュータのオペレーティングシステム（ＯＳ）は，ソフトウェアのアップデートを実行するアップデートツールを備えている。このアップデートツールは，ＯＳの起動時にインターネットにアクセスして，ソフトウェアのアップデートの要否（新しいソフトウェアがサーバ等にアップロードされたか否か）を判断する。アップデートが必要と判断されたら，新しいソフトウェアをインターネットからダウンロードし，アップデートを実行する。
【０００４】
このアップデートツールを用いた場合，ユーザの使用時にソフトウェアがダウンロードされて，ＯＳへの負荷が大きくなる可能性がある。従い，ユーザによるコンピュータの運用を考慮してソフトウェアをアップデートすることが好ましい。
【０００５】
このため，顧客コンピュータシステムで設定したスケジュールにより，ソフトウェアを修正するための修正情報を取得することで，顧客コンピュータでの運用を配慮する技術が公開されている（特許文献１参照）。
【特許文献１】特開２００１−１２５７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら，特許文献１記載の技術においては，設定したスケジュールと実際の運用との間に食い違いが生じた場合，運用中のコンピュータにおいてソフトウェアアップデートが実行され，ユーザの利便性が低下する可能性がある。
上記に鑑み，本発明は，ユーザの運用状態に対応してソフトウェアを更新するソフトウェア更新装置，ソフトウェア更新方法，およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様に係るソフトウェア更新装置は，装置の起動条件を表す起動条件情報と，装置の起動原因を表す起動原因情報とを記憶する第１の記憶部と，更新対象のソフトウェアを記憶する第２の記憶部と，前記第１の記憶部の起動条件情報に従って，装置を起動させる起動処理部と，前記起動処理部による装置の起動と対応して，前記第１の記憶部の起動原因情報を書き換える第１の書換処理部と，前記第１の記憶部の起動原因情報に基づいて，ソフトウェアの更新の有無を決定する決定部と，前記決定部での決定に基づいて，前記第２の記憶部のソフトウェアを更新する更新処理部と，を具備することを特徴とする。
【０００８】
本発明の一態様に係るソフトウェア更新方法は，記憶部中の起動条件情報に従って，起動処理部が装置を起動させるステップと，前記起動処理部による装置の起動と対応して，書換処理部が前記記憶部の起動原因情報を書き換えるステップと，前記記憶部の起動原因情報に基づいて，決定部がソフトウェアの更新の有無を決定するステップと，前記決定部での決定に基づいて，更新処理部がソフトウェアを更新するステップと，を具備することを特徴とする。
【０００９】
本発明の一態様に係るプログラムは，記憶部の起動原因情報に基づいて，ソフトウェアの更新の有無を決定する決定部と，前記決定部での決定に基づいて，ソフトウェアを更新する更新処理部と，してコンピュータを機能させる。
【発明の効果】
【００１０】
本発明によれば，ユーザの運用状態に対応してソフトウェアを更新するソフトウェア更新装置，ソフトウェア更新方法，およびプログラムを提供できる。
【発明を実施するための最良の形態】
【００１１】
以下，図面を参照して，本発明の実施の形態を詳細に説明する。
図１は，本発明の一実施形態に係るコンピュータ１０を表すブロック図である。
コンピュータ１０は，ＣＰＵ１１，ＢＩＯＳ−ＲＡＭ１２，ＲＡＭ１３，表示Ｉ／Ｆ１４，表示部１５，入力Ｉ／Ｆ１６，入力部１７，ＨＤＤＣ２１，ＨＤＤ２２，電源回路２３，外部電源検出部２４，ネットワークＩ／Ｆ２５を有する。ＣＰＵ１１，ＢＩＯＳ−ＲＡＭ１２，ＲＡＭ１３，表示Ｉ／Ｆ１４，入力Ｉ／Ｆ１６，ＨＤＤＣ２１，外部電源検出部２４，ネットワークＩ／Ｆ２５は，バスＢで接続され，これらの間で情報の入出力が可能である。
【００１２】
ＣＰＵ(中央処理装置：Central Processing Unit)１１は，コンピュータ１０全体を制御する制御装置であり，プログラムによって動作する。プログラム（ＢＩＯＳ，ＯＳ，アップデートサービス・プログラム）によって，ＣＰＵ１１が動作することで，次の機能が具現化される。
・コンピュータ１０を起動させる起動処理部
・コンピュータ１０を停止させる停止処理部
・ＢＩＯＳ−ＲＡＭ１２の起動原因情報を書き換える第１，第２の書換処理部
・ＨＤＤ２２中のソフトウェアの更新の有無を決定する決定部
・ＨＤＤ２２中のソフトウェアを更新する更新処理部
【００１３】
ＢＩＯＳ−ＲＡＭ（Random Access Memory）１２は，ＢＩＯＳを記憶する読出書込み共用のメモリである。ＢＩＯＳ（Basic Input and Output System）は，基本的な入出力機能（ＲＡＭ１３，表示Ｉ／Ｆ１４，入力Ｉ／Ｆ１６，ＨＤＤＣ２１等による情報の入出力）を提供するハードウェア制御プログラムである。コンピュータ１０の電源投入直後にはＢＩＯＳによりＣＰＵ１１が動作し，ＢＩＯＳが電源投入直後の状態からＯＳの起動までの処理を担う。
ＢＩＯＳによってＣＰＵ１１を動作させることで，前述の起動処理部，第１の書換処理部としての機能が具現化される。
【００１４】
ＢＩＯＳ−ＲＡＭ１２には，起動条件情報と起動原因情報が記憶され，これらの情報の読み出し，書き込みが可能である。なお，この詳細は後述する。
ＢＩＯＳ−ＲＡＭ１２は，フラッシュメモリ等の不揮発性メモリであり，電源回路２３が完全に停止している場合でも記憶内容が保持される。
【００１５】
なお，ＢＩＯＳ−ＲＡＭ１２に替えて，記憶内容の書換が可能なＲＡＭ（Random Access Memory）と，記憶内容が固定されたＲＯＭ（Read Only Memory）との組み合わせを用いても良い。この場合，ＢＩＯＳがＲＡＭ，ＲＯＭに分散されて記憶される。この場合でもＲＡＭは不揮発性であることが好ましい。
【００１６】
ＲＡＭ１３は，ＣＰＵ１１を制御しているプログラムを記憶する読出書込み共用のメモリである。ＲＡＭ１３にＨＤＤ２２中のＯＳがロードされることで，ＯＳが起動する（ＣＰＵ１１のＯＳによる動作）。また，ＲＡＭ１３にＨＤＤ２２中のプログラム（アプリケーションプログラム，アップデートサービスプログラム）がロードされることで，プログラムが起動する（ＣＰＵ１１のプログラムによる動作）。
【００１７】
表示Ｉ／Ｆ１４は，表示画像データを表示部１５に出力するインタフェースである。
表示部１５は，液晶表示装置，ＣＲＴ等の表示装置である。
入力Ｉ／Ｆ１６は，入力部１７による情報の入力を制御するインタフェースである。
入力部１７は，キーボード，マウス等の入力装置である。
【００１８】
ＨＤＤＣ（Hard Disk Drive Controller）２１は，ＨＤＤ２２への情報の書き込み，読み出しを制御する制御装置である。
ＨＤＤ（Hard Disk Drive）２２は，外部記憶装置である。ＨＤＤ２２は，ＯＳ，アプリケーション・プログラム，アップデートサービス・プログラムを記憶する。
【００１９】
ＯＳ（Operating System）は，コンピュータ１０全体を管理するための基本的な機能を提供するプログラム（基本プログラム）である。ＯＳを起動させることで，コンピュータ１０が起動する。アプリケーション・プログラムはＯＳの機能を利用して動作する（ＯＳ上でのアプリケーション・プログラムの動作）。
【００２０】
アプリケーション・プログラムは，ＯＳ上で動作し，アップデートの対象となるプログラムである。
アップデートサービス・プログラムは，アプリケーション・プログラムのアップデートを実行するためのプログラムである。アップデートサービス・プログラムによってＣＰＵ１１を動作させることで，アップデートサービスが提供され，前述の停止処理部，第２の書換処理部，決定部，更新処理部としての機能が具現化される。
【００２１】
電源回路２３は，外部電源（例えば，ＡＣ１００Ｖの商用電源）と接続し，コンピュータ１０全体に電力を供給する回路である。電源回路２３は，図示しないバッテリーを備え，外部電源の非接続時でも電力の供給が可能である。
【００２２】
外部電源検出部２４は，電源回路２３に外部電源が接続されているか否かを検出する検出回路である。例えば，外部電源からの電圧を検出することで，外部電源の接続が検出される。この検出結果に基づいて，外部電源検出部２４は外部電源の接続の有無を表す電源接続情報をＣＰＵ１１に提供する（電源接続情報を保持，またはバスＢに出力する）。
【００２３】
ネットワークＩ／Ｆ２５は，ＬＡＮ（Local Area Network），インターネット等のネットワークと通信するためのインタフェースである。
なお，図示しないが，コンピュータ１０は現在の時刻を認識できるタイマを備えているものとする。
【００２４】
図２は，コンピュータ１０でのソフトウェア・アップデートの手順の一例を表すフロー図である。
（１）アップデート条件の設定（ステップＳ１１）
ユーザがプログラムのアップデート条件を設定（入力）する。この設定は，ＢＩＯＳ，アップデートサービス・プログラムの双方に渡る可能性がある。
【００２５】
１）ＢＩＯＳの設定
ＢＩＯＳには，コンピュータ１０の起動（ＯＳの起動）の条件，ひいては，アップデート開始条件の一部（例えば，アップデートの開始時間）を設定する。
既述のように，ＢＩＯＳ−ＲＡＭ１２には，コンピュータ１０の起動条件情報，起動原因情報が記憶される。この内，起動条件情報がユーザによって設定される。
【００２６】
図３は，ＢＩＯＳ−ＲＡＭ１２上の起動条件情報，起動原因情報を表す模式図である。
「起動条件」として，コンピュータ１０の自動起動の有無（「自動起動ＯＮ」，「自動起動ＯＦＦ」），自動起動時の起動日時を挙げることができる。例えば，前者を「自動起動ＯＮ」とし，後者としてユーザがコンピュータを利用しない時刻（例えば，深夜の時間帯）を指定する。なお，深夜の時間帯をデフォルトとしておくと，ユーザによる入力の手間を省くことができる。
【００２７】
「起動原因」は，コンピュータ１０が自動起動されたか否か（「自動起動」，「非自動起動」（手動起動））を表す。ユーザが手動でコンピュータ１０を起動することも有るからである。起動原因情報は，デフォルト（通常）では，「非自動起動」である。後述のように，コンピュータ１０の自動起動時に起動原因情報が「自動起動」となり，プログラムのアップデート後に「非自動起動」に戻される。
【００２８】
２）アップデートサービス・プログラムの設定
アップデートサービス・プログラムを設定する。例えば，外部電源の接続をアップデート開始の条件とするか否か（図２のステップＳ１６），アップデート後のシャットダウンの有無（図２のステップＳ１９）を設定することができる。以下の説明では，アップデートサービスにおいて，これらの条件双方を取り入れるものとする。
【００２９】
（２）ＯＳの起動（ステップＳ１２）
ＢＩＯＳ−ＲＡＭ１２での起動条件に従って，ＯＳが起動される。ＯＳの起動前，コンピュータ１０は完全には停止されておらず（待機状態），ＢＩＯＳ−ＲＡＭ１２中のＢＩＯＳによってＣＰＵ１１が動作可能である。
ＣＰＵ１１は，タイマの時刻が起動条件で設定される起動時刻と一致しているか否かを定期的にチェックし，これらの時刻が一致したらＯＳを起動する。即ち，ＯＳがＨＤＤ２２からＲＡＭ１３にロードされ，コンピュータ１０の制御がＢＩＯＳからＯＳに移行する（ＯＳによりＣＰＵ１１が動作する）。
【００３０】
（３）起動原因情報の書換（ステップＳ１３）
ＯＳの起動時に起動原因情報が書き換えられる。即ち，起動原因情報が「非自動起動」から「自動起動」に変化する。
この書換は，ＢＩＯＳ，ＯＳの何れからの指示で実行されても差し支えない。ＢＩＯＳからＯＳに制御が移行する以前であれば，ＢＩＯＳから書換の指示を出すことができる。また，ＯＳに制御が移行した後に，ＯＳから書換の指示を出しても良い。ＯＳに制御が移行した後に起動原因情報を書き換えると，起動原因情報の確実性が大きくなる。ＢＩＯＳからＯＳに制御が移行する途中で，起動プロセスが滞る場合もあり得るからである。
【００３１】
（４）アップデートサービス・プログラムの起動（ステップＳ１４）
起動の直後に，ＯＳがアップデートサービス・プログラムを起動させる。即ち，ＯＳ上でアップデートサービス・プログラムが動作する（ＣＰＵ１１がＯＳ，アップデートサービス・プログラムの双方により制御される）。ＯＳの起動直後にアップデートサービス・プログラムが起動されることから，起動条件情報で表されるＯＳの起動日時は，アップデートサービス・プログラムの起動日時とほぼ対応することになる。
【００３２】
（５）アップデート実行の有無の決定（ステップＳ１５，Ｓ１６）
アップデートサービス・プログラムは，アップデート実行の有無を決定する。
この判定には，ＢＩＯＳ−ＲＡＭ１２の起動原因情報および外部電源検出部２４の電源接続情報が用いられる。例えば，アップデートサービス・プログラムが，自分自身，あるいはＯＳを経由して，ＢＩＯＳ−ＲＡＭ１２および外部電源検出部２４から起動原因情報および電源接続情報を読み出す。
起動原因情報が「自動起動」で，電源接続情報が「電源接続」のときに，アップデートを実行すると決定される。
【００３３】
・起動原因情報が「非自動起動」のとき，言い換えれば，ユーザが手動でコンピュータ１０を起動したときには，ソフトウェアのアップデートは実行されない。手動でのコンピュータ１０の起動は，ユーザが何らかの意味でコンピュータ１０の利用を意図していると考えられる。従い，手動での起動時に，アップデートが実行されて，ユーザの利便性が低下することを防止できる。この場合，ステップＳ１６〜Ｓ１９での処理は実行されない。ユーザが起動したコンピュータ１０をそのまま利用可能とするためである。
【００３４】
・また，電源接続情報が「電源非接続」のとき，言い換えれば，コンピュータ１０がバッテリーで駆動中のときには，ソフトウェアのアップデートは実行されない。ソフトウェアのアップデートにより，バッテリーの電力が低下するのを防止するためである。この場合，起動原因情報の書換およびシャットダウン（ステップＳ１８，Ｓ１９）が実行されることが好ましい。バッテリーの浪費，および後の手動起動時のアップデートを防止するためである。
【００３５】
これら２つの条件が満たされるとき，ソフトウェアのアップデートの実行が決定される。但し，これらの条件は必ずしも絶対的なものではなく，これらの一方のみが満たされたときにアップデートを決定しても良い。また，他の条件を付加することも可能である。
【００３６】
（６）アップデートの実行（ステップＳ１７）
１）画面表示
アップデートの実行が決定されたら，画面にアップデートが実行されることをメッセージ表示する。例えば，「アップデート中」と表示部１５上に表示する。ユーザにコンピュータ１０がアップデート中であることを知らせるためである。
但し，ユーザがコンピュータ１０の利用を意図していない時間帯にアップデートのタイミングが設定されていることから，この表示は必須のものではない。
【００３７】
２）アップデート
アップデートの実行決定に従い，アプリケーション・ソフトウェアがアップデートされる。即ち，アップデートサービス・プログラムに従い，コンピュータ１０がインターネット等にアクセスして，ソフトウェアのアップデートの要否（新しいソフトウェアがサーバ等にアップロードされたか否か）を確認する。アップデートが必要と判定されたら，新しいソフトウェアをダウンロードし，アップデートを実行する。
【００３８】
ここで，アップデートの途中に，ユーザオペレーションが実行される可能性がある（例えば，ユーザが入力部１７を操作する）。このとき，アップデート中のユーザオペレーションを制限することが考えられる（例えば，特定のオペレーションのみ可能とする）。アップデートを速やかに実行するためである。
【００３９】
（７）起動原因情報の書換（ステップＳ１８）
アップデートサービス・プログラムの指示により，アップデート後にＢＩＯＳ−ＲＡＭ１２の起動原因情報が書き換えられる。即ち，起動原因情報が「自動起動」から「非自動起動」へと変化する。後にユーザが手動でコンピュータ１０を起動した場合に，プログラムのアップデートを防止するためである。
【００４０】
（８）シャットダウン（ステップＳ１９）
アップデートサービス・プログラムは，アップデートが完了したらシャットダウンの実行を指示する。この結果，コンピュータ１０は，シャットダウンされ，電源がオフとなる。
なお，ユーザオペレーションが発生した場合，ユーザの操作とアップデート処理の競合を防止するため，アップデート処理を中断してシャットダウンすることが考えられる。この場合，ユーザに対して，シャットダウンを実行する旨のメッセージを表示することが好ましい。
【００４１】
以上のように，本実施形態では，予め設定したスケジュール，かつコンピュータ１０が自動起動した場合にアップデートが実行される。この結果，アップデートの実行と，ユーザによるコンピュータ１０の使用が競合することが防止される。
【００４２】
（その他の実施形態）
本発明の実施形態は上記の実施形態に限られず拡張，変更可能であり，拡張，変更した実施形態も本発明の技術的範囲に含まれる。
上記実施形態ではアップデートサービス・プログラムがアプリケーションプログラムを一括してアップデートしている。これに対して，アプリケーションプログラム個別にアップデートサービスを提供しても良い。この場合，アプリケーションプログラム毎に，図２のステップＳ１５〜Ｓ１７での決定およびアップデートの実行がなされる。
【図面の簡単な説明】
【００４３】
【図１】本発明の一実施形態に係るコンピュータを表すブロック図である。
【図２】図１のコンピュータでのソフトウェア・アップデートの手順の一例を表すフロー図である。
【図３】ＢＩＯＳ−ＲＡＭ上の起動条件情報，起動原因情報を表す模式図である。
【符号の説明】
【００４４】
１０…コンピュータ，１１…ＣＰＵ，１２…ＢＩＯＳ−ＲＡＭ，１３…ＲＡＭ，１４…表示Ｉ／Ｆ，１５…表示部，１６…入力Ｉ／Ｆ，１７…入力部，２１…ＨＤＤＣ，２２…ＨＤＤ，２３…電源回路，２４…外部電源検出部，２５…ネットワークＩ／Ｆ
【図１】
2008084025.tif 000003
【図２】
2008084025.tif 000004
【図３】
2008084025.tif 000005