(57)【要約】【課題】アップデート前後のソフトウェアの新しいバージョンと古いバージョンを実行可能にしつつ、新バージョンの記憶容量を低減する。【解決手段】コンピュータに格納された第１のソフトウェアを実行可能に保持しつつ、第１のソフトウェアをバージョンアップした第２のソフトウェアをコンピュータにインストールする方法を提供する。この方法は、第２のソフトウェアを構成する各ファイルについて、第１のソフトウェアの各ファイルと同一か異なるかを判断する。そして同一である場合には、同一と判断された第１のソフトウェアのファイルを第２のソフトウェアのファイルとして利用できるようにリンク付けを行う。一方異なる場合には、異なると判断された第２のソフトウェアのファイルをインストールする。同一のファイルを重複してインストールすることはないので、バージョンアップ後のソフトウェアの記憶容量を低減できる。【選択図】        図３
2004206353.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに格納された第１のソフトウェアを実行可能に保持しつつ、該第１のソフトウェアをバージョンアップした第２のソフトウェアを該コンピュータにインストールする方法であって、
前記第２のソフトウェアを構成する１以上のファイルの各々について、前記第１のソフトウェアを構成する１以上のファイルと同一か異なるかを判断するステップと、
同一である場合には、同一と判断された前記第１のソフトウェアの当該ファイルを前記第２のソフトウェアのファイルとして利用できるようにリンク付けを行うステップと、
異なる場合には、異なると判断された前記第２のソフトウェアの当該ファイルをインストールするステップと
を有するソフトウェアのインストール方法。
【請求項２】
前記リンク付けを行うステップは、
前記第１のソフトウェアの当該ファイルが格納された第１の領域を特定するリンク情報を生成するステップと、
前記第２のソフトウェアが格納される第２の領域に、生成したリンク情報を含むリンク情報ファイルを生成するステップと
を有する、請求項１に記載のソフトウェアのインストール方法。
【請求項３】
前記第１のソフトウェアを構成する前記１以上のファイルの各々には、当該ファイルの属性を表す第１のファイル識別情報が付随しており、前記第２のソフトウェアを構成する前記１以上のファイルの各々には、当該ファイルの属性を表す第２のファイル識別情報が付随しており、
前記判断するステップは、前記第２のファイル識別情報の各々が、前記第１のファイル識別情報の各々と同一か異なるかを判断するステップである、請求項２に記載のソフトウェアのインストール方法。
【請求項４】
前記第１のファイル識別情報および前記第２のファイル識別情報は、少なくともファイル名および作成日時を含む、請求項３に記載のソフトウェアのインストール方法。
【請求項５】
前記第２の領域に、前記リンク情報により特定された前記ファイルを移動するステップと、
前記第２の領域を特定する新たなリンク情報を生成するステップと、
前記第１の領域に、前記新たなリンク情報を含む新たなリンク情報ファイルを生成するステップと
を有する、請求項２に記載のソフトウェアのインストール方法。
【請求項６】
前記ファイルを移動するステップは、デフォルトで実行するソフトウェアとして、前記第２のソフトウェアが選択された場合に実行される、請求項５に記載のソフトウェアのインストール方法。
【請求項７】
請求項１に記載のソフトウェアのインストール方法により第１のソフトウェアおよび第２のソフトウェアをインストールしたコンピュータにおいて、該第２のソフトウェアをバージョンアップした第３のソフトウェアを該コンピュータにインストールする方法であって、
前記第３のソフトウェアを構成する１以上のファイルの各々について、前記第１のソフトウェアおよび前記第２のソフトウェアの少なくとも一方を構成する１以上のファイルと同一か異なるかを判断するステップと、
同一である場合には、同一と判断された前記第１のソフトウェアおよび前記第２のソフトウェアの当該ファイルを前記第３のソフトウェアのファイルとして利用できるようにリンク付けを行うステップと、
異なる場合には、異なると判断された前記第３のソフトウェアの当該ファイルをインストールするステップと
を有するソフトウェアのインストール方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ソフトウェアの更新（アップデート）を行う際の処理に関し、より具体的には同一のソフトウェアの新しいバージョンと古いバージョンの両方を実行可能にしつつ、必要な記憶容量を低減する技術に関する。
【０００２】
【従来の技術】
ソフトウェアメーカーがコンピュータのソフトウェアを改良し機能を変更すると、それまでの古いバージョンのソフトウェアを新しいバージョンのソフトウェアに更新する、いわゆる「バージョンアップ」が行われる。バージョンアップの多くは、一部の実行モジュール／ライブラリのみを変更しまたは追加するマイナーバージョンアップである。
【０００３】
ユーザが、バージョンアップされたソフトウェアへ更新（アップデート）する際の負担軽減を目的として、近年のソフトウェアメーカーは、アップデータ／インストーラと呼ばれるアップデートを自動化するソフトウェアを用意することが多い。アップデータ／インストーラは、ユーザのコンピュータ（ＰＣ）で実行されて既存のソフトウェアを上書きし、または全く別の記憶スペースに記憶して、バージョンアップされたソフトウェアをＰＣにインストールする。後者の例として、種々のバージョンを生成してその各々を記憶する技術が存在する（特許文献１参照）。
【０００４】
ユーザによっては、例えばこれまでのバージョンとの互換性を確認する等の目的で、アップデート後の新しいバージョンと古いバージョンの両方を実行可能にしたい場合がある。既存のソフトウェアを上書きしてしまうとユーザの希望には対応できないため、別の記憶スペースに新しいバージョンを記憶する方法が採用されている。
【０００５】
【特許文献１】
特開平６−３４２３６９（
【０００６】段落、図３）
【発明が解決しようとする課題】
しかし別の記憶スペースに記憶する手法では、新しいバージョンの全ての関連ファイルがインストールされてしまい、それらのファイルサイズに応じた多くの記憶容量が必要となる。その理由は、アップデータ／インストーラは、新たなインストールであるとして全ての実行モジュール／ライブラリをＰＣにインストールするからである。記憶容量を多く消費するという問題は、特に部分的な変更・追加しか行われないマイナーバージョンアップの場合に顕著である。
【０００６】
本発明の目的は、アップデート前後のソフトウェアの新しいバージョンと古いバージョンを実行可能にしつつ、新バージョンの記憶容量を低減することである。
【０００７】
【課題を解決するための手段】
本発明による方法は、コンピュータに格納された第１のソフトウェアを実行可能に保持しつつ、該第１のソフトウェアをバージョンアップした第２のソフトウェアを該コンピュータにインストールする。この方法は、前記第２のソフトウェアを構成する１以上のファイルの各々について、前記第１のソフトウェアを構成する１以上のファイルと同一か異なるかを判断するステップと、同一である場合には、同一と判断された前記第１のソフトウェアの当該ファイルを前記第２のソフトウェアのファイルとして利用できるようにリンク付けを行うステップと、異なる場合には、異なると判断された前記第２のソフトウェアの当該ファイルをインストールするステップとを有する。これにより上記目的が達成される。
【０００８】
前記リンク付けを行うステップは、前記第１のソフトウェアの当該ファイルが格納された第１の領域を特定するリンク情報を生成するステップと、前記第２のソフトウェアが格納される第２の領域に、生成したリンク情報を含むリンク情報ファイルを生成するステップとを有していてもよい。
【０００９】
前記第１のソフトウェアを構成する前記１以上のファイルの各々には、当該ファイルの属性を表す第１のファイル識別情報が付随しており、前記第２のソフトウェアを構成する前記１以上のファイルの各々には、当該ファイルの属性を表す第２のファイル識別情報が付随しており、前記判断するステップは、前記第２のファイル識別情報の各々が、前記第１のファイル識別情報の各々と同一か異なるかを判断するステップであってもよい。
【００１０】
前記第１のファイル識別情報および前記第２のファイル識別情報は、少なくともファイル名および作成日時を含んでもよい。
【００１１】
前記第２の領域に、前記リンク情報により特定された前記ファイルを移動するステップと、前記第２の領域を特定する新たなリンク情報を生成するステップと、前記第１の領域に、前記新たなリンク情報を含む新たなリンク情報ファイルを生成するステップとを有してもよい。
【００１２】
前記ファイルを移動するステップは、デフォルトで実行するソフトウェアとして、前記第２のソフトウェアが選択された場合に実行してもよい。
【００１３】
本発明によれば、上述のソフトウェアのインストール方法により第１のソフトウェアおよび第２のソフトウェアをインストールしたコンピュータにおいて、該第２のソフトウェアをバージョンアップした第３のソフトウェアを該コンピュータにインストールする方法も得られる。この方法は、前記第３のソフトウェアを構成する１以上のファイルの各々について、前記第１のソフトウェアおよび前記第２のソフトウェアの少なくとも一方を構成する１以上のファイルと同一か異なるかを判断するステップと、同一である場合には、同一と判断された前記第１のソフトウェアおよび前記第２のソフトウェアの当該ファイルを前記第３のソフトウェアのファイルとして利用できるようにリンク付けを行うステップと、異なる場合には、異なると判断された前記第３のソフトウェアの当該ファイルをインストールするステップとを有していてもよい。
【００１４】
【発明の実施の形態】
以下、添付の図面を参照して、本発明の実施の形態１および２を説明する。まず本明細書では、以下のように用語を定義する。
【００１５】
バージョンアップ：ソフトウェアの提供者（ソフトウェアメーカー等）が既存のバージョン（旧バージョン）のソフトウェアを変更（修正・追加）して、新たなバージョン（新バージョン）のソフトウェアを生成すること。後述のようにソフトウェアは特定の処理を実行するモジュール、汎用的に利用できる関数やデータ・ファイルであるライブラリ等の集合であることから、バージョンアップは、個々のモジュール、ライブラリ毎にも観念される。
【００１６】
旧バージョン：バージョンアップされる前のバージョン
新バージョン：バージョンアップされた後のバージョン
アップデート：ユーザが、コンピュータ上の旧バージョンのソフトウェアを新バージョンのソフトウェアに更新すること
インストール：ソフトウェアをコンピュータ上で使用できる（実行可能な）ように組み込むこと
【００１７】
（実施の形態１）
図１は、実施の形態１による処理を実行するコンピュータ１０の外観を示す図である。コンピュータ１０は、データを入力するキーボード１１−１とマウス１１−２、データの保持、加工・演算等の主要な情報処理を行う本体部１２、および、演算・保持等されたデータを表示するディスプレイ１３を含む。
【００１８】
図２は、コンピュータ１０の構成を示すブロック図である。コンピュータ１０は、中央処理部（ＣＰＵ）２１と、入力部２２と、メモリ２３と、出力部２４と、通信部２５と、ハードディスクドライブ（ＨＤＤ）２６とを備えている。コンピュータ１０は、ハードディスクドライブ２６内にソフトウェアを保持する。
【００１９】
以下では、旧バージョンのソフトウェアを新バージョンのソフトウェアにアップデートする処理を説明する。まず前提として、ソフトウェアは、特定の処理を実行するモジュール、汎用的に利用できる関数やデータであるライブラリ、個別具体的なデータ等の集合として構成されている。ソフトウェアのアップデートは、モジュール、ライブラリのデータファイル単位で行われる。モジュール、ライブラリの各データファイルには、そのデータファイルのファイル名、格納されるフォルダ名、作成日時、データサイズ等の、データファイルの属性を表す情報が付随する。好ましくは少なくともファイル名および作成日時を含む。本明細書ではデータファイルの属性を表すこの情報を「ファイル識別情報」と称する。ファイル識別情報によれば、ファイルの同一性を識別できる。２つのファイルについてファイル識別情報が一致した場合には同じファイルであると識別でき、異なった場合には別のファイルであると識別できる。例えば同じファイル名であっても、作成日時が異なる場合には別のファイルであると判断できる。ファイル識別情報は、データファイルの個々に保持されていてもよいし、データファイルとは別個にデータファイルのひとつとして一括して保持されていてもよい。
【００２０】
本発明の処理に基づいて動作するコンピュータ１０は、ソフトウェアをアップデートした後でも、旧バージョンのソフトウェアと新バージョンのソフトウェアのいずれも実行できる。アップデートの際には、コンピュータ１０は、新バージョンのデータファイルのうち旧バージョンから変更のない同一のデータファイルが存在すると、旧バージョンのそのデータファイルを利用する。新バージョンのデータファイルと同一のファイルが重複して記憶されるのではないことに留意されたい。
【００２１】
旧バージョンのデータファイルを利用するために、新バージョンの記憶領域には共通するデータファイルと同名のデータファイルが作成される。そのファイルには旧バージョンのデータファイルへのリンク付けを行うリンク情報が規定される。リンク付けとは、そのデータファイルの実体が保存されている格納領域の指定をいう。本明細書ではリンク付けされたデータファイルは、「リンク情報ファイル」と称される。リンク情報ファイルにもまた、両方のデータファイルに共通するファイル識別情報が付随する。コンピュータ１０は、実行しようとするデータファイルがリンク情報ファイルであるとき、そのファイルに規定されたデータファイルの実体が保存されている格納領域から実体のデータファイルを読み出して実行する。このような構成によれば、データファイルの実体を１つにできるために記憶容量を抑えられるとともに、コンピュータ１０は、バージョン毎のデータファイル群を別々に管理し、実行できる。
【００２２】
以下コンピュータ１０の各構成要素を説明する。ＣＰＵ２１は、メモリ２３に読み込まれた後述のアップデート実行プログラムを実行することにより、コンピュータ１０の動作を総合的に制御する。その動作は図３を参照して後述する。入力部２２は、ユーザがデータを入力し、コンピュータ１０を操作するキーボード１１−１とマウス１１−２（図１）等である。メモリ２３は、データを格納する主記憶装置として機能するランダムアクセスメモリ（ＲＡＭ）である。メモリ２３には、アップデート実行プログラムをはじめとして、アップデート前または後のソフトウェアが読み込まれ、実行される。出力部２４は、ＣＰＵ２１の処理結果等を表示するディスプレイ１３（図２）等である。通信部２５は、コンピュータ１０の外部からのデータを受け取るインターフェースであり、例えばネットワーク（図示せず）との接続を確保するためのＬＡＮインターフェース、フレキシブルディスクドライブ、ＣＤ−ＲＯＭドライブ（図示せず）等との接続を確保するインターフェースである。本明細書では、通信部２５を介して受け取るデータは、ソフトウェアのアップデートに必要な新たなバージョンのデータである。
【００２３】
ハードディスクドライブ２６は、大容量のデータを記憶できる２次記憶装置である。ハードディスクドライブ２６は、本発明による処理を行うアップデート実行プログラム２６−１と、旧バージョンのソフトウェア２６−２と、新バージョンのソフトウェア２６−３とを記憶する。新バージョンのソフトウェア２６−３は、１以上の新バージョンのデータファイル２６−４と、１以上のリンク情報ファイル２６−５とを含む。
【００２４】
続いて図３を参照して、コンピュータ１０の処理を説明する。図３は、コンピュータ１０がソフトウェアを新バージョンへアップデートする処理手順を示すフローチャートである。この処理は主としてＣＰＵ２１（図２）がアップデート実行プログラム２６−１（図２）をメモリ２３に読み込み、そのプログラムを実行することにより行われる。アップデート実行プログラム２６−１は、ソフトウェアのバージョンアップを行う、いわゆるインストールプログラムである。
【００２５】
まずＣＰＵ２１は、新バージョンのソフトウェア更新要求を受け取る（ステップＳ３１）。更新要求は、ユーザにより入力部２２（図２）から入力され、またはバージョンアップされたソフトウェアを格納したＣＤ−ＲＯＭがＣＤ−ＲＯＭドライブ（図示せず）に装填され検出されることにより得られる。ＣＰＵ２１は、更新要求を受け取るとアップデートの対象となるソフトウェアを特定し、新バージョンのソフトウェアを構成するファイル毎に、以下の処理を行う。
【００２６】
まずＣＰＵ２１は、新バージョンに含まれるファイルのファイル識別情報と、旧バージョンに含まれるファイルのファイル識別情報とを比較し（ステップＳ３２）、それらが一致したか否かを判断する（ステップＳ３３）。ファイル識別情報はそのデータファイルの作成日付、データサイズ等を含むことから、そのファイルがバージョンアップされていた場合には、新バージョンと旧バージョンのファイル識別情報は一致しない。ファイル識別情報が一致しなかった場合（ステップＳ３３の”ＮＯ”の場合）には、新バージョンのファイルをハードディスクドライブ２６にインストールする（ステップＳ３５）。新バージョンのファイルはその時までにハードディスクドライブ２６に保持されていないからである。新バージョンのファイルは、図２における新バージョンデータファイル２６−４に相当する。
【００２７】
一方バージョンアップされていない場合には、双方のファイル識別情報は一致する。これは当該ファイルはバージョンアップされていないが新バージョンのソフトウェアでも用いられていることを表す。ファイル識別情報が一致した場合（ステップＳ３３の”ＹＥＳ”の場合）には、ＣＰＵ２１は新バージョンが格納されている、または格納されつつある領域に、リンク情報ファイル２６−５（図２）を生成する（ステップＳ３４）。リンク情報ファイル２６−５には、旧バージョンおよび新バージョンに共通して用いられているファイル名が付される。ただしリンク情報ファイルはプログラムがコーディングされた実行可能ファイルではなく、旧バージョンの当該ファイルの実体が格納された領域を特定する情報（リンク情報）を規定したファイルである。なお「格納された領域」とは、ハードディスクドライブ２６のアドレスのみならず、例えば階層構造のファイルシステムにおける特定の階層（フォルダまたはディレクトリ）内であってもよい。このように、バージョンアップされたファイルを、リンク情報を規定したリンク情報ファイルとして保持するので、同一の内容が重複して記憶されることはない。よって新バージョンのソフトウェアをハードディスクドライブ２６の別の領域にそのまま記憶する場合と比較して、記憶容量を低減できる。
【００２８】
図４を参照して、旧バージョンのソフトウェアを新バージョンへアップデートする処理を具体的に説明する。図４の（ａ）は、バージョンアップ前の旧バージョンのソフトウェアの構造を示す概念図である。このソフトウェアは、記号Ａ〜Ｈで表される実行モジュール、ライブラリ、データ等のファイルから構成されている。このソフトウェアでは、例えばモジュールＡが実行されると、他のデータファイルＢ、モジュール（ライブラリ）ＣおよびＤを呼び出して処理が行われる。さらにモジュール（ライブラリ）Ｃは必要に応じてデータファイルＥおよびＦを呼び出し、またモジュール（ライブラリ）Ｄは必要に応じてデータファイルＧおよびＨを呼び出して処理を行う。図のモジュール、ライブラリ、データの一部には、そのファイルのデータサイズが記載されている。
【００２９】
図４の（ｂ）は、図３で説明した処理に基づいてアップデートされた新バージョンのソフトウェアの構造を示す概念図である。コンピュータ１０は、図３の処理に基づいて、ファイルＡ，Ｂ，ＧおよびＨについてはバージョンアップされていないと判断し、これらのファイルをリンク情報ファイルとして生成する。図の斜線で示したファイルＡ，Ｂ，ＧおよびＨが上述のリンク情報ファイルである。一方モジュールＣにより呼び出されるデータファイルＥＥおよびＦＦは、バージョンアップされたファイルであると判断し、新たにインストールされている。
【００３０】
図４の（ｃ）は、データファイルＡ，Ｂ，ＧおよびＨと、それらのリンク先の実体ファイルの位置との対応を示すリストである。リンク情報ファイルは各データファイル名と同じファイル名を持ち、かつリンク先実体ファイルの記憶位置の情報を規定する。このリストは理解を容易にするための例であるが、このリストをファイルとして規定してもよい。これによりリンク情報ファイルおよびその参照先を一元的に管理でき、データファイル毎に、どのバージョンのデータファイルにリンクされているかが容易に判断でき、ファイル操作に関連してコンピュータ１０に要求される検索処理が容易になる。
【００３１】
リンク情報ファイルを生成することにより、図４の（ｂ）に示すようにデータファイルＡ，Ｂ，ＧおよびＨのファイルサイズは実体ファイルのファイルサイズに拘らず実質的には０メガバイトとなる（厳密には数バイト必要である）。よって新バージョンのソフトウェア（約６０メガバイト）をそのままインストールすると６０メガバイトの容量が必要となるのに対して、本発明によれば図４の（ａ）に示すように約２０メガバイトにまで削減できる。既に約６０メガバイトの旧バージョンのソフトウェアがインストールされていることに鑑みれば、新バージョンのソフトウェアに要する記憶容量が小さい方がよいのは言うまでもない。
【００３２】
なおコンピュータ１０のオペレーティングシステム（ＯＳ）としてＵＮＩＸ（登録商標）やその互換ＯＳを採用する場合には、ソフトウェアリンク機能（シンボリックリンク機能）を用いてリンク情報ファイルを生成することもできる。リンク情報をＯＳが生成して管理することにより、さらに簡略化された処理を実現できる。
【００３３】
ただし、ソフトウェアの新バージョンと複数の旧バージョンとが実行可能にされている場合には、複数のバージョンにわたってバージョンアップされていない特定のファイルへのリンクが連鎖することがある。これでは実体ファイルに至るまでのアクセス数が増加し、参照遅延の影響が無視できなくなる。よって頻繁にアクセスするバージョンをユーザがデフォルトで実行するソフトウェアとして指定できるようにして、そのバージョンの構成ファイルを全て実体ファイルに変更すればよい。これにより参照時間の遅延を防止することができる。なお頻繁にアクセスするバージョン以外のバージョンでは、その構成ファイルの一部はリンク情報ファイルに変更され、リンク先となる実体ファイルが指定されることとなる。
【００３４】
なお複数のバージョンが存在する状態でさらに新たなバージョンをインストールする場合には、新バージョンのファイルごとに、リンク先のバージョンが異なるようにすることもできる。これは、全てのバージョンのファイル識別情報を、新バージョンのファイル識別情報と比較することにより実現される。ファイル識別情報が一致した場合には、バージョンを問わずリンク情報ファイルの生成が行われる。
【００３５】
続いて、上述の処理（図３）により新旧バージョンのソフトウェアが並存するコンピュータ１０（図１）において、あるバージョンの特定のファイル（例えば実行可能モジュールファイル）を移動しまたは消去する際の処理を説明する。このような処理が必要となる理由は、あるバージョンの実体ファイルが他のバージョンからリンク先として規定されている場合に、何らの手当てなく移動または消去すると問題を生ずるからである。
【００３６】
図５は、ファイルの操作処理の手順を示すフローチャートである。この処理は主としてＣＰＵ２１（図２）により行われる。コンピュータ１０は、ユーザから、またはソフトウェアの処理に応じて、ファイルの移動／消去命令を受け取る（ステップＳ５１）。「ソフトウェアの処理に応じて」とは、例えばソフトウェアのアンインストールを行うソフトウェアが、ファイルの移動／消去命令を発する場合を表す。そして各リンク情報ファイルに規定されたリンク情報に基づいて、対象となるファイルに関連するリンクを確認する（ステップＳ５２）。この処理に際しては、図４の（ｃ）に示すファイルと各ファイルのリンク先実体ファイルの位置との対応を示すリストを用いることが有効である。全てのリンク情報ファイルを検索して確認すると、リンク情報ファイルの数に応じたアクセスが必要となり時間を要するからである。
【００３７】
その後、リンク情報に基づいて対象となるファイルがリンク先として指定されているか否かを判定する（ステップＳ５３）。リンク先として指定されていなければ、他のファイルに影響はないためそのファイルの移動または消去が実行される（ステップＳ５４）。
【００３８】
一方リンク先として指定されていた場合（ステップＳ５３の”ＹＥＳ”の場合）には、さらに、対象となるファイルが複数のバージョンを構成する他のファイルからリンクされているか否かを判定する（ステップＳ５５）。「リンクされている」に該当する例を挙げると、複数のバージョンのファイルから同時に複数のリンク情報が設定されている場合や、直接のリンクは単一のリンク情報ファイルからのみ設定されているが、そのリンク情報ファイルが２以上のリンク先として設定されている場合である。なお、この判定においても図４の（ｃ）に示すリストの使用が有効である。
【００３９】
対象となるファイルが複数のバージョンを構成する他のファイルからリンクされている場合（ステップＳ５５の”ＹＥＳ”の場合）には、主に使用するバージョンを選択する（ステップＳ５６）。選択はユーザの指示に基づいて行ってもよいし、ＣＰＵ２１（図２）が実行される頻度の統計を取り、その頻度が最も高いバージョンを自動的に選択してもよい。これにより１つのバージョンが特定される。一方ステップ５５において、対象となるファイルが複数のバージョンを構成する他のファイルからリンクされていなかった場合（ステップＳ５５の”ＹＥＳ”の場合）にも、リンクを設けている１つのバージョンが特定される。
【００４０】
１つのバージョンが特定されると、そのバージョンのデータファイルの保存先にリンク先のファイルの実体を移動する（ステップＳ５７）。通常は管理の容易等のためにバージョン毎にフォルダ（ディレクトリ）を分けて格納しているため、ファイルの実体は、特定されたバージョンが格納されたフォルダに移動されることとなる。なお、そのフォルダには同名のリンク情報ファイルが既に存在するので、リンク情報ファイルが実体ファイルと置換される。一方、実体ファイルが存在していたバージョンのフォルダには、新たにリンク情報ファイルが生成される。このリンク情報ファイルはいうまでもなく、特定されたバージョンが格納されたフォルダの当該実体ファイルへのリンク情報を有する。
【００４１】
実体ファイルが移動されたので、その後は他のリンク情報ファイルにおいても、実体ファイルの当初の存在位置を移動後の位置に変更する（ステップＳ５８）。これにより、どのバージョンのソフトウェアでも実行可能な状態を維持できる。
【００４２】
以上、本発明の実施の形態を説明した。本発明による処理はコンピュータ上で行われるため、図３および図５に示す処理をコーディングしたコンピュータプログラムとして実現できる。コンピュータプログラムは、コンピュータが読み取り可能な媒体上に保持でき、例えばソフトウェアのインストールを行うインストーラ／アップデータとして、またはＯＳの機能の一部として実現される。
【００４３】
【発明の効果】
バージョンアップ後のソフトウェアのファイルが、前のバージョンから変更がなく同一である場合には、前バージョンのファイルをバージョンアップ後のソフトウェアのファイルとして利用できるようにリンク付けを行う。同一のファイルを重複してインストールすることはないので、バージョンアップ後のソフトウェアの記憶容量を低減できる。
【図面の簡単な説明】
【図１】実施の形態１による処理を実行するコンピュータの外観を示す図である。
【図２】コンピュータの構成を示すブロック図である。
【図３】コンピュータがソフトウェアを新バージョンへアップデートする処理手順を示すフローチャートである。
【図４】（ａ）は、バージョンアップ前の旧バージョンのソフトウェアの構造を示す概念図である。（ｂ）は、図３で説明した処理に基づいてアップデートされた新バージョンのソフトウェアの構造を示す概念図である。（ｃ）は、データファイルＡ，Ｂ，ＧおよびＨと、それらのリンク先の実体ファイルの位置との対応を示すリストである。
【図５】ファイルの操作処理の手順を示すフローチャートである。
【符号の説明】
１０  コンピュータ、  １１−１  キーボード、  １１−２  マウス、  １２本体部、  １３  ディスプレイ、  ２１  中央処理部（ＣＰＵ）、  ２２  入力部、  ２３  メモリ、  ２４  出力部、  ２５  通信部、  ２６  ハードディスクドライブ（ＨＤＤ）、  ２６−１  アップデート実行プログラム、  ２６−２  旧バージョンのソフトウェア、  ２６−３  新バージョンのソフトウェア、２６−４  新バージョンのデータファイル、  ２６−５  リンク情報ファイル
【図１】
2004206353.tif 000003
【図２】
2004206353.tif 000004
【図３】
2004206353.tif 000005
【図４】
2004206353.tif 000006
【図５】
2004206353.tif 000007