(57)【要約】【課題】  従来、複数のバージョンアップを繰り返すソフトウェアに関して、提供側で簡単にアップデートパッケージを作成できるような仕組みが提供されていなかった。【解決手段】  本発明は、ソフトウェアの基本機能を提供するベース部の更新ファイルがアップデートパッケージに含まれる場合に、前記ベース部を更新するためのベースアップデータ部を起動する起動手段と、前記ベースアップデータ部の機能により、前記ベース部を停止させる停止手段と、前記ベースアップデータ部の機能により、前記ソフトウェアがインストールされたディレクトリに対して前記ベース部の更新ファイルをコピーする制御を行う第１の制御手段と、を有し、前記第１の制御手段は、前記コピーした更新ファイルの中で、ファイルの属性に従い削除対象であると特定される更新ファイルを前記ディレクトリから削除することを特徴とする。【選択図】  図４
2014102732.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの基本機能を提供するベース部に含まれるアップデート処理部による機能により、当該ソフトウェアの最新バージョンの情報をサーバから取得する第１の取得手段と、
前記アップデート処理部の機能により、前記ソフトウェアの現在のバージョンと、前記取得された最新のバージョンとを比較する比較手段と、
前記アップデート処理部の機能により、前記比較の結果、前記ソフトウェアの現在のバージョンが最新ではない場合に、当該ソフトウェアをアップデートするためのアップデートパッケージを取得する第２の取得手段と、
前記アップデート処理部の機能により、前記ベース部の更新ファイルが前記取得されたアップデートパッケージに含まれる場合に、前記ベース部を更新するためのベースアップデータ部を起動する起動手段と、
前記ベースアップデータ部の機能により、前記ベース部を停止させる停止手段と、
前記ベースアップデータ部の機能により、前記ソフトウェアがインストールされたディレクトリに対して前記ベース部の更新ファイルをコピーする制御を行う第１の制御手段と、を有し、
前記第１の制御手段は、前記コピーした更新ファイルの中で、ファイルの属性に従い削除対象であると特定される更新ファイルを前記ディレクトリから削除することを特徴とする情報処理装置。
【請求項２】
前記アップデート処理部の機能により、前記ベースアップデータ部を起動する前に、前記ベースアップデータ部の更新ファイルが前記取得されたアップデートパッケージに含まれる場合に、前記ディレクトリに対して前記ベースアップデータ部の更新ファイルをコピーする制御を行う第２の制御手段を、更に有し、
前記第２の制御手段は、前記コピーした更新ファイルの中で、ファイルの属性に従い削除対象であると特定される更新ファイルを前記ディレクトリから削除することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記削除対象であると特定される更新ファイルの属性には、削除対象であることを示す情報として、ファイルサイズ、作成日付、及びバージョンの少なくとも何れかに特定の情報が設定されていることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記アップデートパッケージには、前記ソフトウェアの最初のバージョンから変更があったファイル、或いは前記ソフトウェアの最新のバージョンに必要な全ファイルをパッケージに含め、クライアントソフトウェアの最新のバージョンにおいて、不要となったファイルであってもアップデートパッケージに含められており、
当該不要となったファイルが、前記削除対象であると特定される更新ファイルであることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記ソフトウェアの基本機能としては、ネットワークデバイスのネットワーク探索を行う機能、管理対象のネットワークデバイスの識別情報やネットワーク情報を管理する機能、及びネットワークデバイスから稼働情報を収集する機能の少なくとも何れかが含まれることを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記ソフトウェアには、追加機能を実現するための機能拡張モジュールのインストールが可能であり、当該追加機能としては、ネットワークデバイスの保守などを目的とした稼働情報の取得する機能、ネットワークデバイスの設定値をサーバからの指示に従って変更する設定変更機能、及びネットワークデバイスの設定値のバックアップ機能の少なくとも何れかが含まれることを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記機能拡張モジュールは、前記サーバから取得する機能の一覧に従い、当該サーバから取得されて、インストールされることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
ソフトウェアの基本機能を提供するベース部に含まれるアップデート処理部による機能により、当該ソフトウェアの最新バージョンの情報をサーバから取得する第１の取得工程と、
前記アップデート処理部の機能により、前記ソフトウェアの現在のバージョンと、前記取得された最新のバージョンとを比較する比較工程と、
前記アップデート処理部の機能により、前記比較の結果、前記ソフトウェアの現在のバージョンが最新ではない場合に、当該ソフトウェアをアップデートするためのアップデートパッケージを取得する第２の取得工程と、
前記アップデート処理部の機能により、前記ベース部の更新ファイルが前記取得されたアップデートパッケージに含まれる場合に、前記ベース部を更新するためのベースアップデータ部を起動する起動工程と、
前記ベースアップデータ部の機能により、前記ベース部を停止させる停止工程と、
前記ベースアップデータ部の機能により、前記ソフトウェアがインストールされたディレクトリに対して前記ベース部の更新ファイルをコピーする制御を行う第１の制御工程と、を有し、
前記第１の制御工程では、前記コピーした更新ファイルの中で、ファイルの属性に従い削除対象であると特定される更新ファイルが前記ディレクトリから削除されることを特徴とする情報処理装置における方法。
【請求項９】
前記アップデート処理部の機能により、前記ベースアップデータ部を起動する前に、前記ベースアップデータ部の更新ファイルが前記取得されたアップデートパッケージに含まれる場合に、前記ディレクトリに対して前記ベースアップデータ部の更新ファイルをコピーする制御を行う第２の制御工程を、更に有し、
前記第２の制御工程では、前記コピーした更新ファイルの中で、ファイルの属性に従い削除対象であると特定される更新ファイルを前記ディレクトリから削除することを特徴とする請求項８に記載の方法。
【請求項１０】
前記削除対象であると特定される更新ファイルの属性には、削除対象であることを示す情報として、ファイルサイズ、作成日付、及びバージョンの少なくとも何れかに特定の情報が設定されていることを特徴とする請求項８または９に記載の方法。
【請求項１１】
前記アップデートパッケージには、前記ソフトウェアの最初のバージョンから変更があったファイル、或いは前記ソフトウェアの最新のバージョンに必要な全ファイルをパッケージに含め、クライアントソフトウェアの最新のバージョンにおいて、不要となったファイルであってもアップデートパッケージに含められており、
当該不要となったファイルが、前記削除対象であると特定される更新ファイルであることを特徴とする請求項８乃至１０のいずれか１項に記載の方法。
【請求項１２】
前記ソフトウェアの基本機能としては、ネットワークデバイスのネットワーク探索を行う機能、管理対象のネットワークデバイスの識別情報やネットワーク情報を管理する機能、及びネットワークデバイスから稼働情報を収集する機能の少なくとも何れかが含まれることを特徴とする請求項８乃至１１のいずれか１項に記載の方法。
【請求項１３】
前記ソフトウェアには、追加機能を実現するための機能拡張モジュールのインストールが可能であり、
当該追加機能としては、ネットワークデバイスの保守などを目的とした稼働情報の取得する機能、ネットワークデバイスの設定値をサーバからの指示に従って変更する設定変更機能、及びネットワークデバイスの設定値のバックアップ機能の少なくとも何れかが含まれることを特徴とする請求項８乃至１２のいずれか１項に記載の方法。
【請求項１４】
請求項１乃至７のいずれか１項に記載の手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はソフトウェアをアップデートする方法に関する。
【背景技術】
【０００２】
従来のソフトウェアのアップデート方法には、特定のバージョンから、それよりも新しい別のバージョンまでに行われてきたバージョンアップを情報処理装置内で順次適用していくことで実現するものがあった。或いは、アップデート用のソフトウェアに、新しいバージョンに更新するために必要なファイルの一覧とその必要なファイルの実体を含め、情報処理装置において、該必要なファイルをコピーした後に、その一覧に存在しないファイルを削除するものがある。（例えば、特許文献１参照）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特願２００２−５７４０６５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記した新しいバージョンまでに行われてきたバージョンアップを順次適用する従来例では、ソフトウェアを最新のバージョンにアップデートするに際し、各バージョンにおいて次に更新可能なバージョンを管理する必要がある。このバージョン管理は、アップデート用のソフトウェアを提供する提供者にとって負荷となっている。また、最新バージョンのソフトウェアにバージョンアップする際には、現在のソフトウェアのバージョンが古い程、アップデート処理に時間を要するという問題がある。
【０００５】
上記した従来例の何れにおいても、プラグイン等によりソフトウェアに個別に機能拡張されていた場合には、更新するためには不要なファイルであるが、該機能拡張には必要なファイルが存在する場合、このようなファイルが削除されてしまうという可能性がある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明における情報処理装置は、ソフトウェアの基本機能を提供するベース部に含まれるアップデート処理部による機能により、当該ソフトウェアの最新バージョンの情報をサーバから取得する第１の取得手段と、前記アップデート処理部の機能により、前記ソフトウェアの現在のバージョンと、前記取得された最新のバージョンとを比較する比較手段と、前記アップデート処理部の機能により、前記比較の結果、前記ソフトウェアの現在のバージョンが最新ではない場合に、当該ソフトウェアをアップデートするためのアップデートパッケージを取得する第２の取得手段と、前記アップデート処理部の機能により、前記ベース部の更新ファイルが前記取得されたアップデートパッケージに含まれる場合に、前記ベース部を更新するためのベースアップデータ部を起動する起動手段と、前記ベースアップデータ部の機能により、前記ベース部を停止させる停止手段と、前記ベースアップデータ部の機能により、前記ソフトウェアがインストールされたディレクトリに対して前記ベース部の更新ファイルをコピーする制御を行う第１の制御手段と、を有し、前記第１の制御手段は、前記コピーした更新ファイルの中で、ファイルの属性に従い削除対象であると特定される更新ファイルを前記ディレクトリから削除することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、複数のバージョンアップを繰り返すソフトウェアに関して、提供側で簡単にアップデートパッケージを作成できるようになる。
【図面の簡単な説明】
【０００８】
【図１】本発明が適用されるシステムの構成例を示す図
【図２】情報処理装置のハードウェア構成の例を示すブロック図
【図３】ソフトウェアのモジュール構成の例を示す図
【図４】アップデート処理部３０４及びベースアップデータ３０３によるアップデート処理の全体の流れを説明するためのフローチャートを示す図
【図５】アップデートパッケージに含まれるディレクトリ及びファイルの構成の例
【図６】アップデート処理に際のファイルのコピー処理の詳細を説明するためのフローチャートを示す図である
【図７】サーバにおける顧客に対して追加機能を選択するための画面の例を示す図
【発明を実施するための形態】
【０００９】
以下、本発明を実施するための最良の形態について図面を用いて説明する。
【００１０】
図１は、本実施形態におけるネットワークシステムの構成例を示している。同図に於いて、１０２は、アップデート対象であるソフトウェア（本実施例では、ネットワークデバイス管理のためのクライアントソフトウェア）が稼働する情報処理装置（ホストコンピュータ）である。１０３は、アップデート対象のソフトウェアの最新バージョンの情報と、アップデートに必要なファイルを保持、送信するサーバである。本図では、バージョン情報の管理する機能と、アップデートに必要なファイルの保持、送信する機能とを１つのサーバ１０３が提供しているが、異なる複数のサーバで分散してこれら機能を提供することも可能である。サーバ１０４は、ネットワークデバイス管理のためのサーバソフトウェアが動作する情報処理装置である。サーバ１０３及びサーバ１０４は、インターネット１０１に接続されている。
【００１１】
ネットワーク１０６は、前述のサーバソフトウェアの管理対象として登録されているネットワークデバイスが設置される顧客内のネットワークである。ネットワーク１０６は、ルータ１０５を介してインターネット１０１に接続されている。ここで、ルータ１０５はファイアウォール機能を有することもある。１０７、１０８、１０９は、ネットワーク１０６に接続された、管理対象のネットワークデバイスである。これらネットワークデバイスは、クライアントソフトウェアが動作するクライアント１０２とネットワーク１０６を介して通信する。ネットワークデバイスとしては、例えば、プリンタ装置、デジタル複合機、スキャナなどの周辺機器や、デジタルカメラ、スマートフォンなどの電子機器が挙げられる。
【００１２】
クライアント１０２は、クライアントソフトウェアの機能として、サーバソフトウェアからの指示に従い、デバイスに対して管理操作を実施して、その結果をサーバソフトウェアに送信する。管理操作の一例としては、ネットワークデバイスの稼働情報の収集処理や、ネットワークデバイスに対する動作設定値の設定処理などが含まれる。稼働情報には、エラー情報や各種ログ情報や動作カウンタ情報などが含まれる。稼働情報は、ネットワークデバイスの稼働状態やユーザによる使われ方の分析、エラー発生時の管理者などへの通知のために利用される。また、サーバ１０４は、サーバソフトウェアの機能として、複数の顧客のネットワーク内のクライアントソフトウェアが動作するクライアントと通信を行うことにより、複数の顧客のネットワークに設置されたネットワークデバイスを管理する。
【００１３】
図２は、クライアント１０２、サーバ１０３及びサーバ１０４といった情報処理装置のハードウェア構成を示すブロック図である。同図において、情報処理装置２０１は、ＣＰＵ２０２、ＲＡＭ２０３、ＲＯＭ２０４、外部記憶装置２０９を備える。ＣＰＵ２０２は、ＲＯＭ２０４や外部記憶装置２０９に記憶された、或いはＬＡＮ２１３よりダウンロードしたソフトウェアを実行し、システムバス２１１に接続された各デバイスを総括的に制御する。このソフトウェアとしては、前述されたサーバソフトウェアやクライアントソフトウェアなどがある。ＲＡＭ２０３は、ＣＰＵ２０２の主メモリあるいはワークエリアなどとして機能する。外部記憶装置２０９は、ハードディスク（ＨＤ）、フラッシュメモリ等からなる。外部記憶装置２０９は、ブートプログラム、オペレーティングシステム、データベースサーバ、ＷＥＢサーバ、ＷＥＢブラウザを含む各種のアプリケーション、データベースデータ、ユーザファイル等を記憶する。さらに情報処理装置２０１において、２０６はキーボードコントローラ（ＫＢＤＣ）であり、キーボード（ＫＢＤ）２０５や図示しないポインティングデバイスからの入力情報をＣＰＵ２０２に送る。２０８はビデオコントローラ（ＶＣ）であり、ＣＲＴやＬＤＣ等からなる表示装置２０７の表示を制御する。２１０はディスクコントローラ（ＤＫＣ）であり、外部記憶装置２０９とのアクセスを制御する２１２は通信コントローラ（ＣＯＭＭ  Ｉ／Ｆ）であり、これを介してネットワークに接続される。
【００１４】
図３は、クライアント１０２内で動作するクライアントソフトウェア３０１を構成するモジュールを機能単位であらわした模式図の例である。
【００１５】
クライアントソフトウェア３０１は、ベース３０２とベースアップデータ３０３により構成され、これらはそれぞれ別のプログラムとして動作する。また、本図では、ベース３０２で提供される機能を拡張する機能拡張モジュールがクライアントソフトウェア３０１に含まれている場合の例を示している。
【００１６】
ここで、ベース３０２は、クライアントソフトウェア３０１の主機能を提供するための主プログラムである。とくに、ベース３０２は、アップデート処理の制御を行うアップデート処理部３０４と、クライアントソフトウェア３０１によるネットワークデバイスの管理のための基本機能を提供する基本機能提供部３０５とから構成される。ここで、基本機能とは、ネットワークデバイスのネットワーク探索を行う機能、管理対象のネットワークデバイスの識別情報やネットワーク情報を管理する機能や、ネットワークデバイスから稼働情報を収集する機能などが挙げられる。
【００１７】
ベースアップデータ３０３は、ベース３０２のバージョンアップを行うための専用のプログラムである。ここで、プログラムの動作中は、そのプログラムと、プログラムが依存するライブラリ等のファイルを更新することは出来ないものとする。従って、ベースアップデータ３０３は、動作が停止しているベース３０２の更新処理を実行する。
【００１８】
動作中の基本機能提供部３０５は、定期的にアップデート処理部３０４を呼び出し、必要に応じてクライアントソフトウェア３０１のアップデートを行う。アップデートは、最新のバージョンのベースプログラムが見つかった場合や、ユーザにより更新指示が検出された場合などである。
【００１９】
アップデート処理部３０４は、新しいバージョンのベースプログラムの確認とそのダウンロードを行う。また、アップデート処理部３０４は、ベースアップデータ３０３を起動し、アップデート処理を行わせる。ベースアップデータ３０３は、アップデート処理部３０４により起動され、ベース３０２のアップデート処理を行う。
【００２０】
機能拡張モジュール３０６、３０７は、ベース３０２の機能を拡張するために、後から追加されたベース３０２と同じプロセス内で動作するプログラムモジュールである。本実施例では、これらの機能拡張モジュールをベースアップデータ３０３が実行するアップデート処理の対象とはしない例を説明する。
【００２１】
ここで、拡張機能モジュールが提供する機能としては、ネットワークデバイスの保守などを目的とした稼働情報の取得処理が含まれる。稼働情報としては、例えば、ネットワークデバイスがプリンタの場合、装置稼働中に排紙が行われた総枚数を示すカウンタ情報や装置内の部品の使用回数を示すパーツカウンタ情報などが挙げられる。別の機能拡張としては、ネットワークデバイスの設定値を、サーバソフトウェアからの指示に従って変更する設定変更機能、設定値のバックアップ機能などが挙げられる。
【００２２】
図７は、サーバ１０４で動作するサーバソフトウェアの機能として表示される、各顧客で提供すべきサービス（追加機能）を選択するための画面の例である。ここで選択されたサービスに応じて、必要に応じて顧客側のクライアント１０２に対して、拡張機能モジュールが追加されることになる。
【００２３】
本図に於いて、７０１は、顧客情報を示す。７０２は、対象顧客に追加可能なサービスを選択するためのチェックボックス付きのリストをしめす。７０３は、リスト７０２でチェックされたサービスを保存するためのボタンである。保存された該顧客のサービスに対応する追加機能の一覧は、サーバ１０４内のデータベース等に保管される。サーバソフトウェアは、クライアントソフトウェア３０１の基本機能提供部３０５からの追加機能の一覧の取得要求に対して、該保管された追加機能の一覧を返す。基本機能提供部３０５は、既に追加されている機能拡張モジュールを調べ、取得した追加機能一覧に対応する機能拡張モジュールが存在しない場合、サーバ１０３に対して必要な機能拡張モジュールを含むファイルを要求する。ここで、サーバ１０３は、当該要求の応答として、機能拡張モジュールを含むファイルをクライアント１０２に対して送信するものとする。基本機能提供部３０５は、取得した機能拡張モジュールを含むファイルから、機能拡張モジュールを取り出し、これをクライアントソフトゥエア３０１に追加インストールする。
【００２４】
図４は、アップデート処理部３０４及びベースアップデータ３０３によるアップデート処理の全体の流れを説明するためのフローチャートを示す図である。
【００２５】
まず、Ｓ４０１にて、アップデート処理部３０４は、サーバ１０３に対してクライアントソフトウェア３０１の最新のバージョン番号を問い合わせ、これを取得する。次に、Ｓ４０２にて、アップデート処理部３０４は、動作中のクライアントソフトウェア３０１のバージョン番号とＳ４０１で取得した最新のバージョン番号との比較を行う。バージョン番号は、例えば、１．０．２．１０３のように、ドットで区切られた数値列で表現される。本実施例では、より上位の数値を比較しこれが異なっていれば、数値の大きい方のバージョン番号が大きいとする。上位の数値が等しい場合は、下位の数値同士の比較により行われる。下位の数値が存在しない場合は、比較は、０指定されているとみなして行われる。例えば、１．０．２．１０２は、１．０．１．５や１．０．２．９９や１．０．２よりもバージョン番号が大きく、１．０．３．５や２．０．０．３よりもバージョン番号が小さい。Ｓ４０３にて、比較の結果、動作中のクライアントソフトウェア３０１が最新のバージョンであった場合には、アップデート処理部３０４は、本処理を終了する。一方で、最新のバージョンでなかった場合には、アップデート処理部３０４は、Ｓ４０４に進む。
【００２６】
Ｓ４０４にて、アップデート処理部３０４は、サーバ１０４から最新バージョンのソフトウェアにアップデートするためのファイルなどを含むアップデートパッケージをダウンロードする。アップデートパッケージは、複数のファイルやディレクトリ構造を圧縮して１つのファイルに結合したものである。
【００２７】
図５は、アップデートパッケージに含まれるディレクトリ及びファイルの構成の例である。アップデートパッケージは、アップデートパッケージに関する情報を記載したＸＭＬファイル５０１（ＵｐｄａｔｅＰａｃｋａｇｅ．ｘｍｌ）を含む。更にアップデートパッケージは、ベース３０２の更新に必要なファイル群を含むディレクトリ「ｂａｓｅ」５０２と、ベースアップデータの更新に必要なファイル群を含むディレクトリ「ｂａｓｅｕｐｄａｔｏｒ」５０３とを含む。アップデートパッケージ内の各ディレクトリ以下のファイルおよびディレクトリの構成は、クライアントソフトウェア３０１がイントールされているクライアント１０２内のファイルおよびディレクトリの構成に準拠している。
【００２８】
アップデートパッケージには、クライアントソフトウェアの最初のバージョンから最新のバージョンまでに用いたすべてのファイルが含まれる。具体的には、クライアントソフトウェアの最初のバージョンから変更があったファイル、或いはクライアントソフトウェアの最新のバージョンに必要な全ファイルをパッケージに含める。クライアントソフトウェアの最新のバージョンにおいて、不要となったファイルであってもアップデートパッケージに含められる。ただし、最新のバージョンのクライアントソフトウェアで利用されないファイルに関しては、後述する図６のコピー処理において削除対象と判定されるような情報を含んでいる。削除対象と判定されるような情報としては、ファイルのサイズ属性がゼロであるといった例が挙げられる。削除対象と判定されるような情報のそのほかの例や、コピー処理自体の説明は、図６を用いて後述する。
【００２９】
Ｓ４０５にて、アップデート処理部３０４は、ダウンロードしたアップデートパッケージをクライアント１０２内の一時ディレクトリに展開する。次に、Ｓ４０６にて、アップデート処理部３０４は、展開したアップデートパッケージ内にベースアップデータ３０３の更新ファイルが含まれているかを検査する。具体的には、アップデート処理部３０４は、アップデートパッケージ内にディレクトリ「ｂａｓｅｕｐｄａｔｏｒ」５０３が存在し、且つそのディレクトリ内にファイルが存在するかを検査する。ここでは、ディレクトリが存在し、且つディレクトリ内にファイルが存在する場合、アップデート処理部３０４はベースアップデータ３０３の更新ファイルが存在すると判断する。Ｓ４０７にて、ベースアップデータ３０３の更新ファイルが存在しない場合にはＳ４０９に遷移し、存在する場合にはＳ４０８に遷移する。
【００３０】
Ｓ４０８にて、アップデート処理部３０４は、一時ディレクトリに展開されたアップデートパッケージ内のベースアップデータ部分の更新ファイルを、クライアントソフトウェア３０１がインストールされたクライアント１０２のディレクトリにコピーする。ここでのファイルのコピー処理は、不要なファイルの削除を含むコピー処理であり、その詳細は、図６を用いて後述する。
【００３１】
Ｓ４０９にて、アップデート処理部３０４は、アップデートパッケージ内にベース３０２の更新ファイルが含まれるかを検査する。具体的には、アップデート処理部３０４は、ディレクトリ「ｂａｓｅ」５０２と、そのディレクトリ内のファイルの有無を検査する。Ｓ４１０にて、アップデートパッケージ内にベース３０２の更新ファイルが含まれていない場合には、アップデート処理部３０４は、本処理を終了する。また、アップデートパッケージ内にベース３０２の更新ファイルが存在する場合には、Ｓ４１１に遷移する。Ｓ４１１にて、アップデート処理部３０４は、ベースアップデータ３０３を起動する。
【００３２】
Ｓ４１２にて、アップデート処理部３０４により起動されたベースアップデータ３０３は、ベース３０２のプログラムとプログラムが依存するファイルを更新するため、ベース３０２のプログラムを停止する。この際には、当然ながらアップデート処理部３０４もその処理を終了し、停止されることになる。
【００３３】
次に、Ｓ４１３にて、ベースアップデータ３０３は、Ｓ４０５で展開しアップデートパッケージ内のベース３０２の更新ファイルを、クライアントソフトウェア３０１がインストールされたクライアント１０２のディレクトリにコピーする。これにより、ベース３０２を更新する。ここでのファイルのコピー処理は、不要なファイルの削除を含むコピー処理であり、その詳細は図６を用いて後述する。最後にＳ４１１にて、ベースアップデータ３０３は、ベース３０２を起動し、自身を終了する。
【００３４】
図６は、図４のＳ４０６及びＳ４１０で呼び出されるファイルのコピー処理の詳細を説明するためのフローチャートを示す図である。本処理を実行する処理の主体は、本処理を呼び出したアップデート処理部３０４またはベースアップデータ３０３となる。
【００３５】
コピー処理は、アップデートパッケージを展開した更新ファイルを含むディレクトリ（ベースの場合は「ｂａｓｅ」５０２等）のパス名と、更新対象のクライアントソフトウェア３０１がインストールされているディレクトリのパス名と共に呼び出される。以下、コピー処理では当初、アップデートパッケージを展開したディレクトリ及びサブディレクトリをコピー元とし、クライアントソフトウェア３０１がインストールされているディレクトリ及び／またはサブディレクトリをコピー先とする。
【００３６】
Ｓ６０１にて、コピー先ディレクトリが存在するかを確認して、存在しない場合にはＳ６０２にてコピー先のディレクトリを作成する。次に、Ｓ６０３にて、コピー元のディレクトリ内の全てのファイルそれぞれに対して、以下のＳ６０４〜Ｓ６０６の処理を実行する。
【００３７】
まず、Ｓ６０４にて、コピー先のディレクトリにコピー元のディレクトリ内の対象ファイルをコピーする。次にＳ６０５にて、コピー対象のファイルの属性に従い対象ファイルの削除の可否を決定し、削除すべきと判断した場合にはＳ６０６に遷移する。Ｓ６０６にて、Ｓ６０４でコピー先ディレクトリ内にコピーしたファイルを削除する。Ｓ６０５、Ｓ６０６の処理が行われた後は、コピー元のディレクトリ内の残りのファイルに対してＳ６０４に戻って、処理を繰り返す。
【００３８】
Ｓ６０５での削除対象のファイルを決定する判断基準となるファイルの属性としては、例えば、ファイルのサイズを用いる。ここでは、ファイルサイズがゼロである場合には削除対象とするとはんていする。他にも、判断に用いる属性とその基準として、ファイルの作成日付が特定の日付（「１９００年１月１日」などの通常あり得ない日付）であるか否か、ファイルのバージョンが特定のバージョン（「９９．９９．９９．９９」などの通常あり得ないバージョン）であるか否か等が挙げられる。ここで、削除対象のファイルの内容は、Ｓ６０６でファイルの削除に失敗した場合も想定し、クライアントソフトウェアの動作に問題が発生しないようなもの（例えば関数やクラスを含まない空のライブラリ）となっている。
【００３９】
次に、Ｓ６０７にて、コピー元のディレクトリ内の全てのサブディレクトリに対し、Ｓ６０８〜Ｓ６１０の処理を行う。
【００４０】
Ｓ６０８にて、新しいコピー元のディレクトリのパス名として、コピー元のディレクトリ内の１つのサブディレクトリのパス名を設定する。また、Ｓ６０９にて、新しいコピー先のディレクトリのパス名として、現在のコピー先のディレクトリのパス名にＳ６０８で設定したサブディレクトリのパス名を追加したものを設定する。次に、Ｓ６１０にて、新しいコピー元と新しいコピー先と共に、図６で示すコピー処理を再帰的に呼び出す。Ｓ６０７におけるコピー元のディレクトリ内の全てのサブディレクトリに対する処理が終了すると、Ｓ６１１に遷移する。
【００４１】
Ｓ６１１にて、アップデートパッケージを展開したディレクトリと、サブディレクトリとを削除し、本図で示すコピー処理を終了する。
【００４２】
以上、本発明は、ソフトウェアのアップデート処理において、バージョンごとに、必要なファイル構成などを管理して、段階的にアップデート処理を実現する手法に比べて、簡単にアップデートパッケージを作成できるので、提供側の負担が軽減される。
【００４３】
（他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００４４】
さらに、本発明には、上述した実施形態の適宜組み合わせることにより構成されたシステムやその機能も含まれるものとする。
【図１】
2014102732.tif 000003
【図２】
2014102732.tif 000004
【図３】
2014102732.tif 000005
【図４】
2014102732.tif 000006
【図５】
2014102732.tif 000007
【図６】
2014102732.tif 000008
【図７】
2014102732.tif 000009