(57)【要約】【課題】  複数のソフトウェア製品をインストールおよび配布することに関する方法およびコンピュータ読取り可能媒体を提供すること。【解決手段】  関連しているが別個の複数のソフトウェア製品をインストールするのに必要なコンピュータコードが、記憶媒体内に格納され、記憶媒体または１組の媒体からインストール可能なすべてのソフトウェア製品に必要な、少なくともいくらかの１次コードを含む。特定のソフトウェア製品のインストールは、１次コードおよび少なくとも一部の製品固有コードのインストールを含む。インストールは、ユーザによって提供されるプロダクトキーなどの情報に基づいて、適切なソフトウェア製品を識別しインストールするインストーラによって実施される。インストーラは、ルックアップテーブルを使用して、インストールするコードを識別し、ユーザがソフトウェア製品の権利を有することを確認することができる。【選択図】  図１
2005100401.tif 000002
【特許請求の範囲】
【請求項１】
第１のソフトウェア製品をコンピューティング装置にインストールする方法であって、
ソフトウェアを前記コンピューティング装置にインストールするコマンドを、ユーザから受信するステップと、
前記第１のソフトウェア製品を含めて、複数のソフトウェア製品を前記コンピュータにインストールするために必要なコンピュータコードを含む記憶媒体にアクセスするステップであって、前記コンピュータコードは、前記コンピュータへのインストールの後に、前記複数のソフトウェア製品のそれぞれを操作するときに使用される第１の部分、および複数の異なる第２の部分を含み、第２の部分はそれぞれ、前記複数のソフトウェア製品のうちの異なる１つに関連し、また前記複数のソフトウェア製品のうちのその関連する異なる１つの操作時にだけ使用されるステップと、
前記ユーザが前記第１のソフトウェア製品をインストールする権利を有することを判断するステップと、
少なくともコンピュータコードの前記第１の部分、およびコンピュータコードの第２の部分を１つだけ前記コンピューティング装置にインストールするステップであって、前記第２部分は、前記第１のソフトウェア製品に関連する、コンピュータコードの前記第２の部分であるステップとを含むことを特徴とする方法。
【請求項２】
前記複数のソフトウェア製品はそれぞれ、ソフトウェアアプリケーションの別個のバージョンであり、それぞれのバージョンは、別個のランタイム動作、別個のインストール、またはその両方を有することを特徴とする請求項１に記載の方法。
【請求項３】
前記受信ステップは、
前記記憶媒体内に格納されたインストーラを実行するコマンドを受信するステップと、
前記インストーラを実行するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記受信ステップは、
前記コンピューティング装置に以前に格納されたインストーラを実行するコマンドを受信するステップと、
前記インストーラを実行するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記受信ステップは、
前記コンピューティング装置にソフトウェアをインストールするために、リモートサーバ上でインストーラを実行するコマンドを、ネットワーク接続を介して前記リモートサーバ上で受信するステップと、
前記インストーラを実行するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記判断ステップは、
前記ユーザがソフトウェア製品をインストールする権利を有するかどうかを示す権利情報を前記ユーザに要求するステップと、
前記権利情報を受信するステップと、
前記権利情報を検証するステップとをさらに含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記記憶媒体内のファイル内に、少なくとも１つのルックアップテーブルを設けるステップであって、前記ルックアップテーブルは、それぞれのソフトウェア製品を、前記ソフトウェア製品のパッケージに含まれる情報に関連付けるステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記インストールステップは、
前記記憶媒体から前記コンピュータに前記第１のソフトウェア製品をインストールするのに必要なコンピュータコードだけをコピーするステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記インストールステップは、
前記コンピューティング装置内に維持されたレジストリにデータを書き込むステップであって、前記データは前記第１のソフトウェア製品に固有であるステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１０】
ソフトウェアアプリケーションの第１のバージョンをコンピュータにインストールする方法であって、
ソフトウェアを前記コンピュータにインストールするコマンドを、ユーザから受信するステップと、
前記第１のバージョンを含めて、ソフトウェアアプリケーションの複数のバージョンを前記コンピュータにインストールするために必要なコンピュータコードを含む少なくとも１つのデータ記憶ディスクにアクセスするステップであって、前記コンピュータコードは、前記コンピュータへのインストールの後に、前記複数のバージョンのそれぞれを操作するときに使用される１次部分、および複数の異なるバージョン固有部分を含み、バージョン固有部分はそれぞれ、前記ソフトウェアアプリケーションの異なるバージョンに関連し、またその関連する異なるバージョンの操作時にだけ使用されるステップと、
プロダクトキーを要求するステップと、
前記プロダクトキー受信するステップであって、前記プロダクトキーは前記第１のバージョンを識別するステップと、
コンピュータコードの前記１次部分、および前記第１のバージョンに関連する、コンピュータコードの前記バージョン固有部分だけをインストールするステップとを含むことを特徴とする方法。
【請求項１１】
前記少なくとも１つのデータ記憶ディスクは、複数のデータ記憶ディスクを含み、前記アクセスステップはさらに、
前記複数のデータ記憶ディスクのうちの少なくとも２つにアクセスするステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
それぞれのバージョンは、他のバージョンとは別個のものであり、別個のランタイム動作、別個のインストール動作、またはその両方を有することを特徴とする請求項１０に記載の方法。
【請求項１３】
前記受信ステップは、
前記少なくとも１つのデータ記憶ディスク内に格納されたインストーラを実行するコマンドを受信するステップと、
前記インストーラを実行するステップとを含むことを特徴とする請求項１０に記載の方法。
【請求項１４】
前記インストールステップは、
前記プロダクトキーの入力の後に、
前記プロダクトキーを復号するステップと、
前記第１のバージョンを識別する復号された前記プロダクトキーから情報を抽出するステップとを含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
前記少なくとも１つのデータ記憶ディスク内のファイル内に、少なくとも１つのルックアップテーブルを設けるステップであって、前記ルックアップテーブルは、それぞれのプロダクトキーを、前記少なくとも１つのデータ記憶ディスク内の前記複数のバージョンのうちの１つに関連付けるステップをさらに含むことを特徴とする請求項１０に記載の方法。
【請求項１６】
前記インストールステップは、
前記プロダクトキー内に含まれるデジタル署名を検証するステップと、
前記デジタル署名が検証され得る場合にだけ、前記第１のバージョンをインストールするステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１７】
前記インストールステップは、
前記少なくとも１つの記憶媒体から前記コンピュータに、前記第１のバージョンをインストールするのに必要な前記コンピュータコードだけをコピーするステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１８】
前記インストールステップは、
前記コンピュータ内に維持されたレジストリにデータを書き込むステップであって、前記データは前記第１のバージョンに固有であるステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１９】
複数のソフトウェア製品を消費者に配布する方法であって、
複数の記憶媒体内に、コンピュータコードの同一のコピーを格納するステップであって、それぞれのコピーは、前記第１のソフトウェア製品を含めて前記複数のソフトウェア製品のうちのどれをインストールし実行するのにも必要なコンピュータコードを含み、前記コンピュータコードの共通の部分は、インストールの後に、前記複数のソフトウェア製品のすべてを実行するのに必要であるステップと、
権利情報を受信すると、前記コンピュータコードの前記共通部分、ならびに前記権利情報によって識別される前記ソフトウェアアプリケーションのそのバージョンだけに関連する、コンピュータコードの第２の部分をインストールする、インストーラへのアクセスを消費者に提供するステップと、
前記複数の記憶媒体のうちの少なくとも１つを、それぞれの消費者に配布するステップとを含むことを特徴とする方法。
【請求項２０】
前記提供ステップは、
前記複数の記憶媒体のそれぞれにインストーラを格納することによって、消費者に前記インストーラへのアクセスを提供するステップを含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
それぞれのソフトウェア製品は、別個のランタイム動作および別個のインストール特性を有することを特徴とする請求項１９に記載の方法。
【請求項２２】
第１の消費者に、第１のソフトウェア製品に関連する権利情報を提供するステップをさらに含むことを特徴とする請求項１９に記載の方法。
【請求項２３】
梱包材料内の前記記憶媒体は第１のソフトウェア製品だけを含むことを示す印を含む前記梱包材料内に、前記記憶媒体の少なくとも一部を梱包するステップと、
前記少なくとも一部の各記憶媒体の前記梱包材料に、異なる第１のプロダクトキーを付けるステップであって、第１のプロダクトキーはそれぞれ、前記梱包上に示された前記第１のソフトウェア製品に関連付けられるステップとをさらに含むことを特徴とする請求項１９に記載の方法。
【請求項２４】
前記提供ステップは、
ネットワーク接続を介して、前記インストーラへのアクセスを提供するステップであって、前記インストーラはリモートサーバ内に格納されるステップを含むことを特徴とする請求項１９に記載の方法。
【請求項２５】
前記提供ステップは、
別個の１組のインストールおよびランタイム動作として、それぞれのソフトウェア製品を識別し、またそれぞれのソフトウェア製品を権利情報に関連付けるルックアップテーブルを提供するステップを含むことを特徴とする請求項２１に記載の方法。
【請求項２６】
前記ルックアップテーブルは、ランタイム時にそれぞれのソフトウェア製品によって表示される、別個のユーザインターフェイスを識別することを特徴とする請求項２５に記載の方法。
【請求項２７】
前記ルックアップテーブルは、それぞれのソフトウェア製品のエンドユーザの権利を含む、別個のエンドユーザライセンスアグリーメントを識別することを特徴とする請求項２５に記載の方法。
【請求項２８】
前記ルックアップテーブルは、それぞれのソフトウェア製品のインストール時に従う別個のインストール手順を識別することを特徴とする請求項２５に記載の方法。
【請求項２９】
前記複数の記憶媒体は、前記消費者のコンピューティング装置の一部であり、前記配布ステップは、
前記複数のソフトウェア製品のどれをインストールするにも必要なコンピュータコードの同一のコピーを、前記消費者の記憶媒体内に格納するために、ネットワークを介して各消費者に送信するステップを含むことを特徴とする請求項１９に記載の方法。
【請求項３０】
ソフトウェアアプリケーションの複数のバージョンを消費者に配布する方法であって、
少なくとも１つの別個のプロダクトキーを、前記ソフトウェアアプリケーションの各バージョンに関連付けるステップと、
それぞれがコンピュータコードの同一のコピーを含む複数の記憶媒体を作成するステップであって、コピーはそれぞれ、前記第１のバージョンを含めて、前記ソフトウェアアプリケーションの前記複数のバージョンのうちのどれをインストールするにも必要なコンピュータコードを含み、前記コンピュータコードの共通部分は、前記複数のバージョンのすべてをインストールするのに必要であるステップと、
前記プロダクトキー受信すると、前記コンピュータコードの前記共通部分、および前記プロダクトキーに関連する前記ソフトウェアアプリケーションのそのバージョンだけに関連するコンピュータコードの第２の部分をインストールするステップと、
前記複数の記憶媒体のうちの少なくとも１つを、それぞれの消費者に配布するステップとを含むことを特徴とする方法。
【請求項３１】
前記記憶媒体は、１つまたは複数の記憶ディスクの複数のセットを含むことを特徴とする請求項３０に記載の方法。
【請求項３２】
それぞれの消費者に異なるプロダクトキーを提供するステップをさらに含むことを特徴とする請求項３０に記載の方法。
【請求項３３】
前記ソフトウェアアプリケーションの各バージョンは、別個のランタイム動作および別個のインストール特性を有することを特徴とする請求項３０に記載の方法。
【請求項３４】
第１の消費者に、前記ソフトウェアアプリケーションの第１のバージョンに関連するプロダクトキーを提供するステップをさらに含むことを特徴とする請求項３０に記載の方法。
【請求項３５】
梱包材料内の前記記憶媒体は前記ソフトウェアアプリケーションの第１のバージョンだけを含むことを示す印を含む前記梱包材料内に、前記記憶媒体を梱包するステップと、
それぞれの記憶媒体の前記梱包材料に、異なる第１のプロダクトキーを付けるステップであって、第１のプロダクトキーはそれぞれ、前記梱包上に示された前記第１のバージョンに関連付けられるステップとをさらに含むことを特徴とする請求項３２に記載の方法。
【請求項３６】
前記提供操作は、
前記インストーラを、前記コンピュータコードと共に、前記記憶媒体に格納するステップをさらに含むことを特徴とする請求項３０に記載の方法。
【請求項３７】
前記提供操作は、
前記ソフトウェアアプリケーションの別個の１組のインストールおよびランタイム動作として、それぞれのバージョンを識別し、またそれぞれのバージョンをその関連するプロダクトキーに関連付けるルックアップテーブルを提供するステップをさらに含むことを特徴とする請求項３３に記載の方法。
【請求項３８】
前記ルックアップテーブルは、ランタイム時に前記ソフトウェアアプリケーションの各のバージョンによって表示される、別個のテキストを識別することを特徴とする請求項３７に記載の方法。
【請求項３９】
前記ルックアップテーブルは、前記ソフトウェアアプリケーションの各バージョンのエンドユーザの権利を決定する別個のエンドユーザライセンスアグリーメントを識別することを特徴とする請求項３７に記載の方法。
【請求項４０】
前記ルックアップテーブルは、前記ソフトウェアアプリケーションの各バージョンのインストール時に従う別個のインストール手順を識別することを特徴とする請求項３７に記載の方法。
【請求項４１】
前記複数の記憶媒体は既に、消費者のコンピューティング装置の一部であり、前記配布ステップは、
前記第１のバージョンを含めて、前記複数のソフトウェアアプリケーションの前記複数のバージョンのどれをインストールするにも必要なコンピュータコードの同一のコピーを、前記消費者の記憶媒体内に格納するために、ネットワークを介して各消費者に送信するステップを含むことを特徴とする請求項３０に記載の方法。
【請求項４２】
ソフトウェアアプリケーションの複数のバージョンのすべてをインストールするのに必要なコンピュータコードの少なくとも第１部分、ならびに前記ソフトウェアアプリケーションの前記複数のバージョンのうちの別個の１つをインストールするのに、それぞれが必要である複数の第２部分を含む、前記ソフトウェアアプリケーションの前記複数のバージョンのどれをインストールするのにも必要なコンピュータコードと、
コンピュータによって実行されたときに、プロダクトキーを要求し、前記要求に応答して提供された前記プロダクトキーに基づいて、前記ソフトウェアアプリケーションの前記バージョンのうちの１つをインストールするインストーラとを含むことを特徴とするコンピュータ読取り可能媒体。
【請求項４３】
それぞれのバージョンを１つまたは複数のプロダクトキーと関連付ける、少なくとも１つのルックアップテーブルを含むファイルをさらに含むことを特徴とする請求項４２に記載のコンピュータ読取り可能媒体。
【請求項４４】
前記少なくとも１つのルックアップテーブルは、前記ソフトウェアアプリケーションの各バージョンを、前記ソフトウェアアプリケーションの別個の１組の動作として識別することを特徴とする請求項４３に記載のコンピュータ読取り可能媒体。
【請求項４５】
前記少なくとも１つのルックアップテーブルは、
それぞれのプロダクトキーを、ブランド付けテーブル内のブランド、およびマッピングテーブル内のマップに関連付けるＳＫＵテーブルと、
それぞれのマップを、エンドユーザライセンスアグリーメント（ＥＵＬＡ）識別子に関連付けるマッピングテーブルと、
それぞれのブランドを、前記ソフトウェア製品のインストールまたはランタイム時に使用される別個のテキストに関連付けるブランド付けテーブルと、
それぞれのＥＵＬＡ識別子を、ＥＵＬＡに関連付けるＥＵＬＡテーブルとを含むことを特徴とする請求項４４に記載のコンピュータ読取り可能媒体。
【請求項４６】
前記ソフトウェアアプリケーションの前記複数のバージョンのうちの１つに関連するプロダクトキーを添付して梱包されることを特徴とする請求項４２に記載のコンピュータ読取り可能媒体。
【請求項４７】
前記コンピュータ読取り可能媒体内に、前記ソフトウェアアプリケーションの第１のバージョンだけが含まれることを示すパッケージで梱包されることを特徴とする請求項４２に記載のコンピュータ読取り可能媒体。
【請求項４８】
前記パッケージは、前記ソフトウェアアプリケーションの前記第１のバージョンに固有のプロダクトキーを含むことを特徴とする請求項４７に記載のコンピュータ読取り可能媒体。
【請求項４９】
コンピューティングシステムによって読取り可能であり、ソフトウェアアプリケーションの第１のバージョンをコンピュータにインストールするためのコンピュータプロセスを実行する、命令のコンピュータプログラムを符号化するコンピュータプログラム製品であって、前記コンピュータプロセスは、
前記コンピュータにソフトウェアをインストールするコマンドをユーザから受信するステップと、
前記第１のバージョンを含めて、前記ソフトウェアアプリケーションの複数のバージョンを前記コンピュータにインストールするのに必要なコンピュータコードを含む少なくとも１つのデータ記憶ディスクにアクセスするステップであって、前記コンピュータコードは、前記コンピュータへのインストール後に、前記複数のバージョンのそれぞれを操作するときに使用される１次部分、および複数の異なるバージョン固有部分を含み、バージョン固有部分はそれぞれ、前記ソフトウェアアプリケーションの異なるバージョンに関連し、またその関連する異なるバージョンの操作時だけに使用されるステップと、
プロダクトキーを要求するステップと、
前記プロダクトキーを受信するステップであって、前記プロダクトキーは前記第１のバージョンを識別するステップと、
コンピュータコードの前記１次部分、および前記第１のバージョンに関連するコンピュータコードの前記バージョン固有部分だけをインストールするステップとを含むことを特徴とするコンピュータプログラム製品。
【請求項５０】
前記少なくとも１つのデータ記憶ディスクは、複数のデータ記憶ディスクを含み、前記アクセスステップは、
前記複数のデータ記憶ディスクのうちの少なくとも２つにアクセスするステップをさらに含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５１】
それぞれのバージョンは、他のバージョンとは別個のものであり、別個のランタイム動作、別個のインストール動作、またその両方を有することを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５２】
前記受信ステップは、
前記少なくとも１つのデータ記憶ディスク内に格納されたインストーラを実行するコマンドを受信するステップと、
前記インストーラを実行するステップとを含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５３】
前記インストールステップは、
前記プロダクトキーの入力の後に、
前記プロダクトキーを復号するステップと、
前記第１のバージョンを識別する復号された前記プロダクトキーから情報を抽出するステップとを含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５４】
前記コンピュータプロセスは、
前記少なくとも１つのデータ記憶ディスク内のファイル内に、少なくとも１つのルックアップテーブルを設けるステップであって、前記ルックアップテーブルは、それぞれのプロダクトキーを、前記少なくとも１つのデータ記憶ディスク内の前記複数のバージョンのうちの１つに関連付けるステップをさらに含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５５】
前記インストールステップは、
前記プロダクトキー内に含まれるデジタル署名を検証するステップと、
前記デジタル署名が検証され得る場合にだけ、前記第１のバージョンをインストールするステップを含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５６】
前記インストールステップは、
前記少なくとも１つの記憶媒体から前記コンピュータに、前記第１のバージョンをインストールするのに必要なコンピュータコードだけをコピーするステップを含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５７】
前記インストールステップは、
前記コンピュータ内に維持されたレジストリにデータを書き込むステップであって、前記データは前記第１のバージョンに固有であるステップを含むことを特徴とする請求項４９に記載のコンピュータプログラム製品。
【請求項５８】
ソフトウェアアプリケーションの第１のバージョンをコンピュータにインストールするための方法であって、
ソフトウェアを前記コンピュータにインストールするコマンドを、ユーザから受信するステップと、
前記第１のバージョンを含めて、前記ソフトウェアアプリケーションの複数のバージョンを前記コンピュータにインストールするために必要なコンピュータコードを含む、少なくとも１つのデータ記憶ディスクにアクセスするステップであって、前記コンピュータコードは、前記コンピュータへのインストールの後に、前記複数のバージョンのそれぞれを操作するときに使用される１次部分、ならびに前記複数のバージョンについての符号化されたライセンスおよび動作情報を含むＳＫＵファイルを含むステップと、
プロダクトキーを要求するステップと、
前記プロダクトキー受信するステップであって、前記プロダクトキーは前記第１のバージョンを識別するステップと、
コンピュータコードの前記１次部分、および前記ＳＫＵファイルをインストールするステップとを含むことを特徴とする方法。
【請求項５９】
前記インストールステップは、
前記ＳＫＵファイル内の前記動作情報に基づいて、前記ソフトウェア製品の前記第１のバージョンの動作をイネーブルするステップを含むことを特徴とする請求項５８に記載の方法。
【請求項６０】
前記インストールステップは、
前記ＳＫＵファイルから、前記ソフトウェア製品の前記第１のバージョンについて、第１のライセンスを復号して、復号されたライセンスを生成するステップと、
前記ソフトウェア製品の前記第１のバージョンの復号された前記ライセンスを、前記コンピュータのライセンスストア（ｌｉｃｅｎｓｅ  ｓｔｏｒｅ）にコピーするステップとを含むことを特徴とする請求項５８に記載の方法。
【請求項６１】
前記イネーブルステップは、
前記ＳＫＵファイル内の前記動作情報に基づいて、前記ソフトウェア製品の前記第１のバージョンのインストール動作をイネーブルするステップを含むことを特徴とする請求項５９に記載の方法。
【請求項６２】
前記イネーブルステップは、
ランタイム時に表示される、前記第１のバージョンのブランド付けテキストをイネーブルするステップであって、前記ブランド付けテキストはＳＫＵファイル内に格納されるステップを含むことを特徴とする請求項５９に記載の方法。
【請求項６３】
前記少なくとも１つのデータ記憶ディスクは、複数のデータ記憶ディスクを含み、前記アクセスステップは、
前記複数のデータ記憶ディスクのうちの少なくとも２つにアクセスすることをさらに含むことを特徴とする請求項５８に記載の方法。
【請求項６４】
それぞれのバージョンは、他のバージョンとは別個のものであり、別個のランタイム動作、別個のインストール動作、またはその両方を有することを特徴とする請求項５８に記載の方法。
【請求項６５】
前記受信ステップは、
前記少なくとも１つのデータ記憶ディスクに格納されたインストーラを実行するコマンドを受信するステップと、
前記インストーラを実行するステップとを含むことを特徴とする請求項５８に記載の方法。
【請求項６６】
前記インストールステップは、
前記プロダクトキーの入力の後に、
前記プロダクトキーを復号するステップと、
前記第１のバージョンを識別する復号された前記プロダクトキーから情報を抽出するステップとを含むことを特徴とする請求項５８に記載の方法。
【請求項６７】
前記少なくとも１つのデータ記憶ディスク内のＳＫＵファイル内に、少なくとも１つのルックアップテーブルを設けるステップであって、前記ルックアップテーブルは、それぞれのプロダクトキーを、前記少なくとも１つのデータ記憶ディスク内の前記複数のバージョンのうちの１つに関連付けるステップをさらに含むことを特徴とする請求項５８に記載の方法。
【請求項６８】
前記インストールステップは、
前記プロダクトキー内に含まれるデジタル署名を検証するステップと、
前記デジタル署名が検証され得る場合にだけ、前記第１のバージョンをインストールするステップを含むことを特徴とする請求項５８に記載の方法。
【請求項６９】
前記インストールステップは、
前記少なくとも１つの記憶媒体から前記コンピュータに、前記第１のバージョンをインストールするのに必要なコンピュータコードだけを、前記ＳＫＵファイルからコピーするステップを含むことを特徴とする請求項５８に記載の方法。
【請求項７０】
前記インストールステップは、
前記コンピュータ内に維持されたレジストリに、前記ＳＫＵファイルからのデータを書き込むステップであって、前記データは前記第１のバージョンに固有であるステップを含むことを特徴とする請求項５８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアを配布し、コンピュータ上で、インストールし操作することに関し、より詳細には、ソフトウェア製品を配布し、それぞれ異なるコンピュータにインストールするための方法およびシステムに関する。
【背景技術】
【０００２】
コンピュータソフトウェアの開発元は一般に、同じソフトウェア製品の複数のバージョンを販売する。バージョンの実行可能なコンピュータコードの大部分が同じでも、一部の異なる動作から明らかなように、それぞれのバージョンは、他のバージョンとは識別可能に異なる。異なる動作の例には、異なる機能、言語グループなどの異なる使用可能リソース、ブランド付け（ｂｒａｎｄｉｎｇ）テキストなど、ランタイム時のユーザへの異なるテキストの提示、異なるラインセンス条件、および異なるインストール動作などが含まれる。
【０００３】
たとえば、ソフトウェア開発元しばしば、それぞれのソフトウェア製品の相手先商標製品製造（ＯＥＭ：ｏｒｉｇｉｎａｌ  ｅｑｕｉｐｍｅｎｔ  ｍａｎｕｆａｃｔｕｒｅ）バージョン、および小売りバージョンを提供する。こうしたバージョンは一般に、それぞれ異なるインストール動作を有する。小売りバージョンは、エンドユーザによってインストールされると考えられており、したがって、インストールプロセスの一環として、ユーザに情報を要求し、応答を求めることを含む。一方、ＯＥＭバージョンは、コンピュータの販売店によってインストールされると考えられており、インストール時には、情報は要求されないが、ソフトウェア製品が初めて実行されるときに要求される。したがって、こうした２つのバージョンの１つの違いは、インストール時の動作である。同じ製品のＯＥＭと小売りバージョンの別の一般的な違いは、それぞれのバージョンに適用されるライセンス条件である。
【０００４】
一般に、それぞれのバージョンは、それ独自のパッケージで、別個の記憶媒体に入れて販売される。記憶媒体は、主要のコンピュータコード、すなわち１次コード、およびそのバージョンを受信側コンピュータにインストールし、適切な動作を可能にするのに必要などんな２次的なバージョン固有のコードをも含む。したがって、１０個の異なるバージョンがソフトウェア開発元によって販売される場合には、記憶媒体の各セット内のソフトウェアの大部分、すなわち１次コードが同一でも、１０個の異なるパッケージが存在するだけでなく、それぞれが販売される１つのバージョンしか含まない、物理的に異なる１０個の記憶媒体のセットが存在する。
【０００５】
このソフトウェア配布方法には、いくつかの欠点がある。まず、記憶媒体が不正確に梱包される潜在的可能性が高い。これは、多くの理由で、望ましくない。顧客には、ソフトウェアおよびパッケージを、購入箇所に戻さなければならないことよって迷惑がかかる場合があり、最終的には、ソフトウェアは、ソフトウェア開発元の費用負担で、ソフトウェア開発元に戻されなければならない。また、顧客は、より高価なバージョンを偶然に入手することがあり、この場合も、ソフトウェア開発元が損失を被る。さらに、パッケージが記憶媒体のバージョン固有のスクリーン印刷や物理的なラベルを含む場合は、その記憶媒体を破棄しなければならず、ソフトウェア開発元が希望しても、リサイクルすることができない。
【０００６】
この配布方法の別の欠点は、開発元が記憶媒体の多数の異なるセットを製造する必要があることである。たとえばコンパクトディスク（ＣＤ：ｃｏｍｐａｃｔ  ｄｉｓｋ）などの光ディスクを使用して、あるソフトウェア製品の１０個の異なるバージョンを提供する場合、開発元は、１０個の異なるバージョン固有のＣＤを開発しなければならない。それぞれのＣＤの開発に費用がかかり、さらに、ＣＤを特定のバージョンでしか使用できないことによっても、費用が増大する。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明によれば、上記他の問題は、各バージョンごとに、別個の記憶媒体を使用するのではなく、単一の記憶媒体によって、ソフトウェアプログラムの複数バージョンを配布することによって解決される。
【課題を解決するための手段】
【０００８】
コンピュータに実際にインストールされるバージョンは、インストールプロセス（ｉｎｓｔａｌｌａｔｉｏｎ  ｐｒｏｃｅｓｓ）の一環として、ユーザが入力するプロダクトキー（ｐｒｏｄｕｃｔ  ｋｅｙ）によって決定され得る。ソフトウェア開発元は、バージョン固有の異なる媒体のパッケージを開発し、パッケージ上のバージョンに適した製品コードを顧客に提供することだけが必要である。
【０００９】
ソフトウェア製品の複数のバージョンをインストールするのに必要なコンピュータコードは、記憶媒体内に格納されており、少なくとも、記憶媒体または１組の記憶媒体からインストール可能なすべてのソフトウェア製品に必要な１次コード、およびそれぞれのバージョンに固有の２次コードを含む。特定のソフトウェア製品のインストールは、１次コード、および少なくとも一部の２次コードのインストールを含む。インストールは、ユーザによって提供されるプロダクトキーなどの情報に基づいて、適切なソフトウェア製品を識別しインストールするインストーラによって実施される。インストーラは、ルックアップテーブルを使用して、インストールするコードを識別し、ユーザがソフトウェア製品の権利を有することを確認することがでる。
【００１０】
他の態様によれば、本発明は、コンピュータに所望のソフトウェア製品をインストールするための方法に関する。この方法は、ユーザから、コンピュータにソフトウェアをインストールするコマンドを受信することを含む。受信すると、コンピュータは、所望のソフトウェア製品を含めて、複数のソフトウェア製品をコンピュータにインストールするのに必要なコンピュータコードを含む記憶媒体にアクセスする。コンピュータコードは、コンピュータにインストールした後で、複数のソフトウェア製品のそれぞれを操作するときに使用される、１次部分や他の何らかの不可欠な部分などの第１の部分を含む。コンピュータコードは、複数の異なる第２の部分をも含む。第２部分はそれぞれ、ソフトウェア製品のうちの異なる１つに関連付けられた、それに特有のものであり、その関連するソフトウェア製品の操作時にだけ使用される。プロダクトキーが要求され、受信され、このプロダクトキーが、所望のソフトウェア製品を識別する。この方法は、コンピュータコードの第１の部分、および所望のソフトウェア製品に関連する、コンピュータコードの第２の部分を１つだけインストールすることによって、所望のソフトウェア製品をインストールする。
【００１１】
他の態様によれば、本発明は、同じソフトウェアアプリケーションのそれぞれ異なるバージョンなど、複数の異なるものであるが、関連しているソフトウェア製品を効率的に配布するための方法に関する。この方法は、コンピュータ上で、複数のソフトウェア製品のいずれかをランし、インストールし、または他の方法で実行するのに必要なファイルまたは他のコンピュータコードを含む、すべてのデータを記憶媒体に格納することを含む。少なくとも１つの一意のプロダクトキーが、複数の製品のそれぞれに関連付けられる。ソフトウェア製品の消費者には、１つのソフトウェア製品だけをインストールするインストーラが提供され、インストールされる製品が、消費者が入力するプロダクトキーによって決定される。インストーラは、記憶媒体内に含まれていることも、消費者のコンピュータ内に既に格納されていることもある。記憶媒体は、複数のＣＤ、ＤＶＤ、他の物理記憶媒体などの複数の記憶媒体を含み得る。プロダクトキーは、記憶媒体に添付して提供されることも、消費者によって、インターネットを介してなど別個に取得されることもある。
【００１２】
本発明は、コンピュータプロセス、コンピューティングシステム、またはコンピュータプログラム製品やコンピュータ読取り可能媒体などの製品として実施され得る。このコンピュータプログラム製品は、コンピュータシステムによって読取り可能であり、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化し、また上述の１次コード部分の少なくとも一部を共有する、関連するが異なっている複数のソフトウェア製品をインストールするのに必要なコンピュータコードを含むコンピュータ記憶媒体であり得る。このコンピュータプログラム製品は、コンピューティングシステムによって読出し可能であり、コンピュータプロセスを実行するための命令のコンピュータプログラムを符号化する、搬送波上の伝搬信号でもよい。
【００１３】
本発明を特徴付ける、こうしたおよび他の様々な特徴および利点は、以下の詳細な説明を読み、また関連する図面を詳しく見ることによって明らかになろう。
【発明を実施するための最良の形態】
【００１４】
図１に、本発明の一実施形態に従ってソフトウェア製品のあるバージョンをインストールするための、システムの主要な要素の一部を示す。図示する実施形態では、コンピュータ読取り可能データ記憶媒体１０が設けられている。記憶媒体１０は、コンピュータシステム１２によってアクセス可能な、ハードドライブ（図示せず）や取出し可能記憶媒体内に格納されているものなど、コンピュータシステム１２全体の一部であり得る。データ記憶媒体１０は、ソフトウェア製品のバージョンのどれをコンピュータシステム１２にインストールするのにも十分なコンピュータ読出し可能コードを格納する。記憶媒体１０は、少なくとも２つのタイプのコンピュータコード、すなわち記憶媒体からインストール可能なソフトウェア製品の各バージョンに共通しており、またそれをインストールするために必要な１次コード１４、ならびにすべてのバージョンにではなく、１つまたは複数のバージョンに固有の２次コード１６を含む。
【００１５】
「インストールするのに十分」または「インストールするのに必要」は、コンピュータ内に既にあり、またはコンピュータが使用できるコードに追加する、コンピュータコード、オブジェクト、データ、または他の情報を指すことに留意されたい。オペレーティングシステムは、インストールプロセスの必要な一部であり得るが、オペレーティングシステムは既にインストールされており、コンピュータシステム１２によって使用可能であると考えられるので、本明細書で述べる用語「インストールするのに必要」に含まれるものとは見なされない。
【００１６】
図１には、インストーラ２０も示されている。インストーラ２０用のソフトウェアは、追加のコンピュータコードとして、データ記憶媒体１０内に含まれることも、コンピュータ１２に事前にインストールされていることも、またリモートで格納され、したがって、ネットワーク接続（図示せず）を介してソフトウェア製品のインストールを制御することもある。プロダクトキー２４を受信するために、インストーラ２０内に、受信モジュール２２が設けられる。プロダクトキー２４は、インストールされるソフトウェアのバージョンを識別し、プロダクトキー２４を検証する、検証情報を含み得る。このインストーラ２０は、プロダクトキー２４によって識別されるバージョンに対応する記憶媒体１０内のコードを識別する、関連付けモジュール２６を含む。関連付けモジュール２６は、プロダクトキー２４によって提供される情報を、記憶媒体１０内のソフトウェア製品のバージョンに関連付ける情報を含む、ＳＫＵファイル３０を使用することによって、これを実施することができる。
【００１７】
インストーラ２０は、プロダクトキー２４によって識別されたバージョンに関連するコード３２（すなわち１次コード、およびプロダクトキー２４によって識別されたバージョン固有の２次コード）を、記憶媒体１０から抽出し、コンピュータシステム１２にインストールする、インストールモジュール２８をも含む。インストールモジュール２８は、ＳＫＵファイル３０内に設けられている追加の動作情報に従って、インストールされるバージョンに応じて、特定の動作をイネーブルまたはディセーブルすることもできる。
【００１８】
図１に示す実施形態によって、ソフトウェアアプリケーションのバージョンなどのソフトウェア製品に関する効率的な配布が可能になる。顧客によって購入されるバージョンに関係なく、同じデータ記憶媒体の同一のコピーを提供することができる。顧客は、提供されるプロダクトキー２４に基づいて、顧客が権利を有するソフトウェア製品のバージョンだけをインストールすることができる。実際に、顧客は、その媒体から複数のバージョンをインストールできることに気付かないことさえあり得る。ソフトウェア開発元は、ソフトウェア製品の各バージョンについて、別個の異なる記憶媒体を作成し在庫管理するのではなく、そのソフトウェア製品について、１組の記憶媒体だけを開発する必要がある。
【００１９】
図２に、本発明の実施形態を実施することができる、適切なコンピューティングシステム環境の一例を示す。このシステム２００は、ウェブサイトサービスを提供するサーバとして機能するために、使用され得るシステムを示している。その最も基本的な構成では、システム２００は一般に、少なくとも１つの処理装置２０２およびメモリ２０４を含む。正確な構成およびコンピューティング装置のタイプに応じて、メモリ２０４は、揮発性（ＲＡＭなど）でも、不揮発性（ＲＯＭ、フラッシュメモリなど）でも、またその２つの何らかの組合せでもよい。図２に、この最も基本的な構成が、破線２０６によって示されている。さらに、システム２００は、追加の特徴／機能を含むこともできる。たとえば、システム２００は、それだけに限らないが、磁気または光学のディスクまたはテープを含めて、追加の記憶装置（取出し可能および／または取出し不可能）を含み得る。図２に、こうした追加の記憶装置が、取出し可能記憶装置２０８および取出し不可能記憶装置２１０で示されている。コンピュータ記憶媒体は、コンピュータ読取り可能命令、データ構造体、プログラムモジュールまたは他のデータなどの情報を格納するための任意の方法または技術で実装される、揮発性と不揮発性、取出し可能と取出し不可能の媒体を含む。メモリ２０４、取出し可能記憶装置２０８および取出し不可能記憶装置２１０はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、それだけに限らないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、システム２００によってアクセスすることができる他の任意の媒体が含まれる。こうしたコンピュータ記憶媒体は、システム２００の一部であり得る。
【００２０】
システム２００は、それが他の装置と通信することを可能にする通信接続２１２をも含み得る。通信接続２１２は、通信媒体の一例である。通信媒体は一般に、コンピュータ読取り可能命令、データ構造体、プログラムモジュール、または他のデータを、搬送波や他のトランスポート機構などの変調されたデータ信号の形で実装し、また任意の情報送達媒体を含む。用語「変調されたデータ信号」は、情報を信号に符号化するようなやり方で、１つまたは複数の特性が設定され、または変更された信号を意味する。限定のためではなく、例示すると、通信媒体は、有線ネットワークまたは直接有線接続などの有線媒体、ならびに音響、ＲＦ、赤外線などの無線媒体、および他の無線媒体を含む。本明細書では、用語コンピュータ読取り可能媒体は、記憶媒体と通信媒体の両方を含む。
【００２１】
システム２００は、キーボード、マウス、ペン、音声入力装置、タッチ入力装置などの入力装置２１４をも含み得る。ディスプレイ、スピーカ、プリンタなどの出力装置２１６も含まれ得る。こうしたすべての装置は、当技術分野では周知であり、本明細書では、詳細に論じる必要はない。
【００２２】
システム２００などのコンピューティング装置は一般に、少なくとも何らかの形のコンピュータ読取り可能媒体を含む。コンピュータ読取り可能媒体は、システム２００からアクセスすることができる任意の使用可能な媒体であり得る。限定のためではなく、例示すると、コンピュータ読取り可能媒体は、コンピュータ記憶媒体および通信媒体を含み得る。
【００２３】
本発明の実施形態は、本明細書で述べる機能を実現するために連携する、複数の構成要素を含むと見なすことができる。１つの構成要素は、記憶媒体である。別の構成要素は、インストールされる製品を識別するプロダクトキーである。第３の構成要素は、プロダクトキーをインストールされる製品に関連付けるための手段である。第４の構成要素は、プロダクトキーを受信し、関連する製品を識別し、記憶媒体にアクセスし、製品の関連するコンピュータコードをインストールし、また適切な動作をイネーブルまたはディセーブルするインストーラである。これらのそれぞれについて、以下で論じる。
【００２４】
この議論のバランスのために言うと、より一般的な用語「バージョン」は、いくらかの１次コードを共有するという意味で関連する、１組の関連ソフトウェア製品のうちの１つを示すために使用される。しかし、それぞれ異なるバージョンの特定の諸例について論じる場合でも、本明細書で開示する諸実施形態は、異なるバージョン、異なるリリース、または他の名前で呼ばれようが、コンピュータ読取り可能コードの少なくとも一部の部分が共通する任意のソフトウェア製品に同様に適用できることが当業者には理解されよう。
【００２５】
記憶媒体
図３に、本発明の一実施形態による記憶媒体１０２の内容を示す。図示する実施形態では、コンピュータ読取り可能データ記憶媒体１０２が設けられている。媒体１０２は、それだけに限らないが、ＣＤ、ＤＶＤなどの取出し可能データ記憶光ディスク、マイクロディスク（ｍｉｃｒｏｄｉｓｃ）などのフロッピー（登録商標）磁気ディスク、ハードドライブまたはＲＡＭなどを含めて、コンピュータによって読取り可能な任意のタイプのものであり得る。
【００２６】
データ記憶媒体１０２は、ソフトウェア製品の複数の異なるバージョンのどれをコンピュータにインストールするのにも十分なコンピュータ読取り可能コードを格納する。データ記憶媒体１０２内に格納されたコードは、少なくとも２つの部分、すなわちそれぞれのバージョンに必要な１次コード部分１０６、ならびにそれぞれが少なくとも１つのバージョンに関連付けられる、コードの複数のバージョン固有部分、すなわち２次部分１０３、１０４、１０５および１０８に分割され得る。たとえば、図３に示すように、ソフトウェア製品の特定のバージョンＡをインストールするためには、１次部分１０６およびバージョンＡに固有の２次部分１０５が、インストールされなければならない。
【００２７】
この文脈では、「バージョン固有部分」および「２次部分」は、ソフトウェア製品のすべてのバージョンで共有される１次部分１０６ではない、あるバージョンのインストールに必要なコードの部分を意味する。バージョン固有部分１０３、１０４、１０５および１０８は、それぞれのバージョンで異なるが、排他的である必要はなく、他のバージョンのバージョン固有部分１０３、１０４、１０５および１０８の一部またはすべてを含み得ることに留意されたい。たとえば、バージョンＢに固有のバージョン固有部分１０４は、別のバージョンのバージョン固有部分１０８の一部またはすべてを含み得る。
【００２８】
図３に、記憶媒体１０２内に設けられたインストーラ１１４が示されている。インストーラ１１４は、ソフトウェア製品のどのバージョンをインストールするかを判断し、次いで、１次部分１０６、および適切なバージョン固有部分１０３、１０４、１０５または１０８をインストールする。
【００２９】
ソフトウェア製品の消費者にインストーラを提供する代替実施形態も可能であることに留意されたい。たとえば、インストーラ１１４を、おそらくプロダクトキーを付けて、別個の記憶媒体内に設けることができる。インストーラ１１４は、コンピュータに事前にインストールされていることも、またリモートで格納され、したがって、ネットワーク接続を介してソフトウェア製品のインストールを制御することもある。
【００３０】
どのコードをインストールすべきかを判断するために、インストーラ１１４は、どのコードが、媒体１０２からインストール可能な様々なバージョンに関連しているかを判断しなければならない。図示する実施形態では、インストーラ１１４は、関連付けＳＫＵファイル１１０を使用するが、インストーラ１１４内に関連付け情報を設けるなどの他の実施形態も可能である。ＳＫＵファイル１１０が、記憶媒体１０２内に設けられ、それぞれ異なるバージョン識別子を、適切なバージョン固有部分１０３、１０４、１０５および１０８に関連付ける情報を含む。バージョン識別子は、たとえば、バージョンインストール時の何らかの時点で、ソフトウェア消費者によって、プロダクトキー２４の形で提供される。
【００３１】
上記の議論では、ＳＫＵファイル１１０がそれ自体、バージョン固有コード１０３、１０４、１０５および１０８の一部またはすべてを含むことに留意することが重要である。たとえば、ＳＫＵファイル１１０の実施形態は、様々なバージョンをどのようにインストールするか、それぞれのバージョンでどのような動作がイネーブルされるべきかなどに関する特定の命令を含み得る。さらに、一部の代替実施形態では、ＳＫＵファイル１１０が、ランタイム時に、バージョン固有コード１０３、１０４、１０５および１０８のレポジトリとして使用するために、ソフトウェア製品のすべてのバージョンと共にインストールされ得る。
【００３２】
図示する実施形態では、１次コード１０６、ならびに２次コード１０３、１０４、１０５および１０８は、異なる別個のファイルとして設けることができる。上記のＳＫＵファイル１１０の実施形態などの代替実施形態では、一部の２次コード１０３、１０４、１０５および１０８は、１次コード１０６ファイルと見なされ得るものの中に常駐することができる。１つの例は、ソフトウェア製品のうちの１つまたは複数に固有の別個のデータを含む、データ記憶媒体１０２に含まれるルックアップテーブルなどの単一のファイルである。ソフトウェア製品の所与のバージョンをインストールすると、インストーラはルックアップテーブルにアクセスし、バージョンに固有のテーブル内に含まれる２次コードを抽出し、必要なバージョン固有コードだけをコンピュータにコピーする。ルックアップテーブル自体は、それがインストール時に使用され、あらゆるソフトウェア製品に必要なデータを含むという点で、１次ファイルであり得るが、バージョン固有のデータ要素およびコードだけが実際にはインストールされる。
【００３３】
別の実施形態は、ＳＫＵファイル１１０などの単一のファイル内に、すべての２次コード１０３、１０４、１０５および１０８を設けるものであり、このファイルは、１次コード１０６と共にインストールされる、この実施形態では、インストール時に、どのバージョンにも必要なすべてのコードがコンピュータにコピーされていても、インストールされるバージョンは、依然として製品識別子によって判断される。この実施形態では、インストーラは、すべてのコードをインストールするが、バージョンに固有の１組の動作だけをイネーブルする。
【００３４】
上記の記憶媒体の一実施形態は、ソフトウェア製品の複数の異なるバージョンをインストールするために必要なすべてのソフトウェアを含む、ＣＤ−ＲＯＭディスクまたは１組のディスクである。Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｗｏｒｄ（登録商標）などのワードプロセッサアプリケーションを例に挙げると、記憶媒体は、ワードプロセッサアプリケーションのプロフェッショナル版、家庭版、生徒および先生版、ならびに外国語版の小売りおよび相手先商標製品製造（ＯＥＭ）バージョンをインストールするのに必要なすべてのソフトウェアを含む。小売りおよびＯＥＭバージョンに加えて、記憶媒体は、記憶媒体にアクセス可能な様々なオペレーティングシステム（Ｗｉｎｄｏｗｓ（登録商標）、Ａｐｐｌｅ（登録商標）、Ｕｎｉｘ（登録商標）など）のいずれのワード版をも含み得る。
【００３５】
プロダクトキー
図４に、本発明によるプロダクトキー４００の一実施形態を示す。プロダクトキー４００は、それぞれのセットがハイフンで分けられた、５つの英数字の５つのセット４０２、４０４、４０６、４０８および４１０の形をしている。文字の最初の２セット４０２および４０４が合わさって、しばしばペイロード（ｐａｙｌｏａｄ）と称される、製品識別子４１２を形成する。文字の最後の３セット４０６、４０８および４１０は、デジタル署名４１４を形成する。
【００３６】
デジタル署名４１４は、そのプロダクトが有効なプロダクトキーであり、ソフトウェア開発元から発行されていることを確認するために設けられる。好ましくは、インストーラは、インストーラまたは記憶媒体に提供され、あるいはネットワーク接続を介して接続されたサーバから提供された追加の情報が付加された電子署名を確認する。
【００３７】
製品識別子４１２は、インストーラがどのバージョンをインストールすべきかを理解するように、プロダクトキー４００がインストーラに提供するデータである。製品識別子４１２の実施形態は、製品を識別するために必要な様々な情報を含み得る。ある実施形態では、製品識別子４１２は、ソフトウェア製品または製品ファミリを識別するグループＩＤ、およびソフトウェア製品の特定のバージョンを識別するチャネルＩＤを含む。たとえば、５のグループＩＤは、ワードプロセッサ製品であり、７７７のチャネルＩＤは、製品の小売り家庭版を識別し得る。さらに、製品識別子は、シリアル番号を含み得る。
【００３８】
プロダクトキーの特定製品との関連付け
製品識別子を、記憶媒体の特定の内容に関連付ける多くのやり方があることが、当業者にはすぐに理解されよう。以下の議論では、ＳＫＵファイル１１０などの単一のコンピュータ読取り可能ファイルの一実施形態を提示する。このＳＫＵファイルは、上述のプロダクトキー４００内に設けられる製品識別子４１２などの製品識別子を、記憶媒体の適切な内容に関連付けるために設けられる。さらに、このファイルは、バージョンのインストールおよび操作時に、イネーブルまたはディセーブルされるべき各バージョンのインストールおよびランタイム動作を指示しまたは識別することもできる。この実施形態では、ファイルは、インストーラによってアクセス可能なＸＭＬファイルである。製品識別子を特定の内容および動作に関連付ける多く他の実施形態が可能であるので、この議論は、本発明の範囲を、この特定の実施形態に限定するものと見なすべきでない。
【００３９】
図５に、上述の実施形態の製品識別子４１２を、特定のソフトウェア製品および製品のバージョンに関連付ける、ＳＫＵファイル１１０内に含まれるテーブル５００の一実施形態を示す。
【００４０】
図５に示すテーブル５００は、ＳＫＵテーブル５００と称される。図示する実施形態では、グループＩＤ５０６の列が設けられ、それぞれのグループＩＤが特定の製品を示している。ルックアップテーブル５００内に、範囲を識別する２つの列として、チャネルＩＤが含まれ、列５０８が範囲の最低値を、列５１０が範囲の最高値を含む。次の列５１２は、チャネルＩＤ列５０８、５１０によって示される範囲に有効なシリアル番号の連続番号を含む。
【００４１】
ブランド付け列と称される、さらに別の列５１４は、ユーザへの製品バージョンの提示の仕方に固有の情報を識別するブランドＩＤを含む。これについては、図６のブランド付けテーブルに関して、以下でより詳しく論じる。
【００４２】
図示する最後の列５１６は、製品が小売りかそれともＯＥＭ製品かについての表示である。この列は、マッピング列５１６と称され、それぞれの製品バージョンに固有のマッピング識別子を含む。一部の実施形態では、マッピング列内の情報を、図８に示すマッピングテーブルと共に使用して、製品の適切なエンドユーザライセンスアグリーメント（ＥＵＬＡ：Ｅｎｄ−Ｕｓｅｒ  Ｌｉｃｅｎｓｅ  Ａｇｒｅｅｍｅｎｔ）を識別することができる。
【００４３】
以下で論じるように、マッピング識別子は、ＥＵＬＡを識別するためにおそらく使用されることに加えて、コンピュータにインストールされた特定の機能のイネーブル化について指示し得る。たとえば、ＯＥＭ製品では一般に、インストール時に、ユーザにプロダクトキーの要求および催促を行わないが、製品が初めてインストールされるとき（通常、コンピュータがエンドユーザに販売された後）にこの情報を要求する。一方、小売り製品は一般に、インストールプロセスの一環として，プロダクトキーを必要とする。テーブル５００の追加の実施形態、製品識別子をバージョン、または別個のバージョンを構成する１組の動作に関連付けるための類似の構造体が、当業者にはすぐに示唆されよう。図５に示す実施形態は、例示するために挙げたものにすぎず、本発明の範囲を限定するものと見なすべきでない。
【００４４】
図６に、ブランド付けテーブル６００の一実施形態を示す。ブランド付けテーブルは、製品の実行およびインストール時に、どのテキストおよびＧＵＩが表示されるべきかに関する情報を含む。たとえば、ブランド付けテーブルで、ワードプロセッサの「生徒および先生版」では、語句「生徒および先生版」が、使用時または初回実行時に、製品のタイトルバーに表示され、あるいは一部の製品の「ヘルプ（Ｈｅｌｐ／Ａｂｏｕｔ）」プルダウンメニュを介して見られるものなどの製品固有の情報ページに内に表示されるべきことが確認され得る。
【００４５】
図６に示すブランド付けテーブル６００の実施形態では、インストールまたはランタイム時にユーザに表示される、ＧＵＩで使用するための符号化されないテキストが示されている。第１のＩＤ列６０２が設けられ、ブランド付けされた各バージョンのブランド付けＩＤを含んでいる。名前列６０４が設けられ、ブランド付けＩＤによって識別されるブランドの、符号化されない名前を含んでいる。ブランド付けのバージョンを識別する、バージョン列６０６が設けられている。図６に示す実施形態では、テーブル６００は、２つのフィールド列６０８および６１０をも含み、これらの列は、インストールまたはランタイム時に、ユーザに表示されるＧＵＩおよび画面に含まれる、それぞれ異なるフィールドで使用される符号化されないテキストを含む。ブランド付けテーブル６００の追加の実施形態、またはブランド付け情報を含み提供するための類似の構造体が、当業者にはすぐに示唆されよう。図６に示す実施形態は、例示するために挙げたものにすぎず、本発明の範囲を限定するものと見なすべきでない。
【００４６】
図７に、ＳＫＵファイル１１０などのファイルに含まれる、ＥＵＬＡを格納するための別のテーブルの一実施形態を示す。図５に示す実施形態では、それぞれのバージョンが、特定のエンドユーザライセンス（ＥＵＬＡ）に関連付けられる。一般に、異なるおよび別個のＥＵＬＡが、ソフトウェア製品の様々なバージョンに適用される。ＳＫＵファイル１１０の実施形態は、ＥＵＬＡを含み、それぞれのＥＵＬＡを、インストールされ得る様々なバージョンに関連付けるテーブル７００を含み得る。ＥＵＬＡテーブル７００は、単純な２列のテーブルであり、一方の列７０２に、ＥＵＬＡ識別子を、他方の列７０４に、ベース６４で符号化されたＥＵＬＡを含む。インストーラは、ファイル内の他のテーブル５００、６００および８００うちの１つまたは複数のテーブルに照会することによって、適切なＥＵＬＡ識別子を取得する。次いで、ＥＵＬＡテーブル７００を使用して、適切なＥＵＬＡを抽出し、インストール時に、復号された形でコンピュータ上に格納するために復号する。ＥＵＬＡテーブル７００の追加の実施形態、またはソフトウェア製品の様々なバージョンに固有のＥＵＬＡを識別し提供するための類似の構造体が、当業者にはすぐに示唆されよう。図７に示す実施形態は、例示するために挙げたものにすぎず、本発明の範囲を限定するものと見なすべきでない。
【００４７】
図８に、ＳＫＵファイル１１０内で見られ得る、別のテーブル８００、すなわちマッピングテーブル８００を示す。図示する実施形態では、マッピングテーブル８００は、テーブル８００にリストされ、おそらく記憶媒体内に格納された、ソフトウェア製品の様々なバージョンの特定の動作を識別する。マッピングテーブル８００は、マッピング識別子用の列８０２、およびそれぞれのマッピング識別子に関連付けられたＥＵＬＡ  ＩＤ用の第２の列８０４を含む。さらにマッピングテーブル８００は、他の動作を識別する追加の列を含む。
【００４８】
別個にインストールされ得る、言語パックとして知られる言語の拡張セットについて、ソフトウェア製品のバージョンがイネーブルされるかどうかを識別する、「ＬＰＫ」列８０６が設けられる。「ＬＰＫ」プロパティは、それが「はい」に設定されている場合は、ユーザが希望すれば、言語パックを後でインストールできるようにする。「いいえ」に設定されている場合は、言語パックのインストールを阻止する。インストールされイネーブルされる場合、ユーザは、こうした追加の言語および機能にアクセスすることができる。
【００４９】
インストール時に、ユーザが管理者インストールを行い、ソフトウェア製品の構成をカスタマイズできるかどうかを識別する、「管理者？」列８０８が含まれている。「管理者」プロパティは、それが「はい」に設定されている場合、所望であれば、ユーザが管理者インストールを行って、インストールをカスタマイズできるようにする。「いいえ」に設定されている場合は、この機能は、阻止される。
【００５０】
「クワイエットインストール（Ｑｕｉｅｔ  Ｉｎｓｔａｌｌ）？」列８１０は、クワイエットインストール、すなわちインストール時に、画面がユーザに提示されないインストールがイネーブルされるかどうかを判断する。クワイエットインストールが行われる場合、コマンドライン（ｃｏｍｍａｎｄ  ｌｉｎｅ）など、別の方法によって、プロダクトキーを渡すことができ、そうでない場合は、インストールが失敗し得る。こうした状況では、ソフトウェアが既に設けられているので、記憶媒体１０２は、コンピュータのハードドライブであり得ることに留意されたい。
【００５１】
「参照？」列８１２も設けられる。「参照？」は、直ちに動作するここでは唯一のプロパティであり、「はい」に設定されている場合は、参照コードを表示し、または「いいえ」に設定されている場合は、それを隠す。ユーザの判断は必要ない。
【００５２】
マッピングテーブル８００の代替実施形態は、ＳＫＵテーブル５００のマッピング列５１６に見られる識別子を、ＥＵＬＡ  ＩＤに関連付ける、別の単純な２列のテーブルであり得る。マッピングテーブルは、マッピング識別子用の列８０２、それぞれのマッピング識別子に関連するＥＵＬＡ  ＩＤ用の第２の列８０４を含む。マッピングテーブル８００の追加の実施形態、またはバージョンに含まれる動作を識別するための類似の構造体が、当業者にはすぐに示唆されよう。図８に示す実施形態は、例示するために挙げたものにすぎず、本発明の範囲を限定するものと見なすべきでない。
【００５３】
本発明の実施形態では、インストールプロセスの一環として、ＳＫＵファイル１１０全体が、コンピュータにコピーされ得る。他の実施形態では、インストール時に、それが照会され、ファイルの内容の選択された部分（ＥＵＬＡ、任意のブランド付け情報など）だけがコンピュータにコピーされる。製品識別子を、特定のブランド付け、マッピング、およびＥＵＬＡ動作に関連付けるファイルを提供する様々なやり方が可能であり、上記内容は一例にすぎないことが当業者には理解されよう。さらに、上述のＳＫＵファイルなどのファイルを設けることに加えて、ＳＫＵファイルによって実施されサポートされる同じ機能を実施しサポートするための、多数の類似の機能的に等価な方法が存在することが当業者には理解されよう。
【００５４】
インストーラ
本発明の実施形態によるインストーラ１１４は、プロダクトキー４００内の製品識別子４１２などの製品識別子を受信し、バージョンを識別し、記憶媒体から適切な製品コードをインストールし、適切な機能をイネーブルし、したがって、製品識別子に関連するバージョンをインストールすることができる、コンピュータ実行可能プログラムまたはオブジェクトである。ある実施形態では、インストーラ１１４は、製品およびそのバージョンのコンピュータコードを格納する記憶媒体内に、実行可能ファイルＳＥＴＵＰ．ＥＸＥなどの追加のコンピュータコードとして設けることができる。インストーラ１１４は、ディスクドライブなどの読出し装置に媒体を挿入すると、ＡＵＴＯＲＵＮ．ＩＮＦと称される第２のファイルの操作を介して自動的に起動され得る。別の実施形態では、インストーラ１１４は、コンピュータ上に既に存在し、またはネットワークを介してリモートサーバからアクセス可能なユーティリティである。
【００５５】
一部の実施形態では、有効な製品識別子が入力されると、インストーラ１１４は、ＳＫＵファイル１１０内の情報を使用して、ソフトウェア製品のどのバージョンをインストールするかを判断する。ＳＫＵテーブル５００内の情報、ならびにファイル内の他のテーブル６００、７００および８００から得られる追加の情報に基づいて、インストーラ１１４は、記憶媒体１０２から適切なコードをインストールし、識別子されたバージョンに適した動作をイネーブルする。代替実施形態では、インストーラ１１４は、ＳＫＵファイル１１０、１次コード１０６、および（もしあれば、ＳＫＵファイル１１０内に含まれるものに加えて）バージョンに適したバージョン固有コードをコンピュータにコピーし、次いで、インストールされるバージョンに基づいて、コンピュータのレジストリを更新する。
【００５６】
インストールされる製品の各バージョンの動作は、少なくとも１つの点で、また通常は複数の点で異なっている。たとえば、国際企業バージョンでは、追加の言語パック（ＧＵＩが使用し得る１組の外国語）がイネーブルされ提供され得る。ＧＵＩの一部を変更する、上述の生徒バージョンなどの特定のブランド付けが、含まれ得る。異なるＥＵＬＡが各バージョンに適用される可能性が高い。それぞれ異なるバージョンは、スペルチェックやフォント制御などの異なるタイプまたは数の機能を含み得る。ＯＥＭおよび小売り製品について述べたものなど、インストール時の異なる動作について、上記でも論じている。本明細書では、用語動作は、ソフトウェア製品のバージョンのインストールまたは操作のどんな違いをも示す、広い意味で使用されていることが当業者には理解されよう。
【００５７】
図５〜８を参照して上記で論じた、ＳＫＵファイル１１０の実施形態では、有効な製品識別子が入力されると、インストーラ１１４は、ＳＫＵテーブル５００内の情報を使用して、どのバージョンのソフトウェア製品をインストールするかを判断する。ＳＫＵテーブル５００内の情報、ならびにファイル内の他のテーブル６００、７００および８００から得られる追加の情報に基づいて、インストーラ１１４は、記憶媒体１０２から適切なコードをインストールし、識別されたバージョンに適した動作をイネーブルする。
【００５８】
ＳＫＵファイル１１０の全体がコンピュータにコピーされる代替実施形態では、インストールされるバージョンの一部の動作が、ＳＫＵファイル１１０内に含まれる情報に基づいてイネーブルまたはディセーブルされ得る。この場合、インストーラ１１４は、ＳＫＵファイル１１０をコピーするが、ＳＫＵに照会するためのレジストリの更新も行う。バージョンが実行されると、ＳＫＵファイル１１０に照会することができ、たとえばバージョンに基づいてブランド付けテーブル６００から、情報を抽出することができる。
【００５９】
本発明の様々な実施形態の論理操作は、（１）一連のコンピュータ実施行為またはコンピュータシステム上で実行されるプログラムモジュールとして、および／または（２）コンピューティングシステム内の相互接続されたマシン論理回路または回路モジュールとして実装され得る。実装は、本発明を実施するコンピューティングシステムのパフォーマンス要件に左右される選択の問題である。したがって、本明細書で述べる本発明の諸実施形態を構成する論理操作は、操作、構造デバイス，行為またはモジュールと様々に称される。こうした操作、構造デバイス，行為またはモジュールは、本明細書に添付された特許請求の範囲に記載される本発明の精神および範囲から逸脱せずに、ソフトウェア、ファームウェア、特定目的のデジタル論理およびその任意の組合せで実装され得ることが当業者には理解されよう。
【００６０】
図９に、本発明に従ってソフトウェアをインストールするための論理操作の一実施形態９００を示す。受信操作９０２で、コンピュータにソフトウェアをインストールするよう指示するユーザコマンドが受信される。コマンドの受信は、ユーザがコンピュータの媒体読出し装置に、ＣＤなどの記憶媒体を挿入する形をとり得る。新しい記憶媒体が挿入されたことに応答して、コンピュータは、ＣＤでは一般的な、ＡＵＴＯＲＵＮ．ＩＮＦなどのファイルを自動的に実行することができ、記憶媒体内に格納されたソフトウェアをインストールするためのユーザへの問合せがもたらされる。代替実施形態では、コマンドは、ユーザがコンピュータに接続されたディスプレイ上に表示される「ソフトウェアのインストール」アイコンを選択することであり得る。ソフトウェアがインストールされるように、コマンドを、コンピュータによって受信することができ、またはネットワーク接続を介してリモートサーバによって受信することができる。
【００６１】
この実施形態は、インストーラを実行する実行操作９０４をも含む。実行操作９０４は、他の操作に関連して、いつでも発生し得る。たとえば、上述のＣＤなどの記憶媒体を挿入すると、受信操作９０２でユーザコマンドを受信する前に、媒体がアクセスされ（以下のアクセス操作９０６の議論を参照）、ＡＵＴＯＲＵＮ．ＩＮＦが、ＳＥＴＵＰ．ＥＸＥファイル内に含まれるものなどのインストーラを実行し得る。
【００６２】
実行操作９０４は、インストーラを識別し実行する。インストーラは、インストールされるコンピュータコードと共に、記憶媒体内に格納することができる。あるいは、インストーラは、コンピュータ上にあっても、ネットワークを介してコンピュータに接続されたサーバ上にあってもよい。インストーラの場所に関係なく、インストーラについての議論を参照して上記で述べたように、記憶媒体から、ソフトウェアをインストールすることが可能である。
【００６３】
アクセス操作９０６は、インストールされるソフトウェアを含む記憶媒体を見つけアクセスする。ある実施形態では、アクセス操作９０６は、コンピュータに挿入され、または別の方法でそれに直接に接続された記憶媒体内のファイルおよびコンピュータコードにアクセスすることを含む。別の実施形態では、インストーラは、ネットワーク接続を介して使用可能な選択された記憶媒体から、記憶媒体を識別する。さらに別の実施形態では、ユーザに直接に接続された媒体と、ネットワークを介して使用可能な別個の記憶媒体の両方にアクセスする。小さい変更または挿入可能媒体内に格納されていない必要な追加情報がある場合には、これが有用である。
【００６４】
いずれにせよ、アクセス操作９０６でアクセスされる記憶媒体は、選択された関連ソフトウェア製品のうちのどれをインストールするにも必要なコンピュータコードを含む。こうした製品の例には、複数のバージョンをもつソフトウェアアプリケーション、同じ１次コードを使用するソフトウェア製品が含まれる。したがって、記憶媒体は、最終的にどのソフトウェアがインストールされるかに関係なくインストールされる、コンピュータコードのある第１の部分、ならびにそれぞれが１つのソフトウェアに関連する、コンピュータコードの複数の第２の部分を含む。
【００６５】
判断操作９０８は、インストールされるソフトウェアを識別し、ユーザがそのソフトウェアをインストールする権利を有することを確認する。判断操作の単純な一実施形態は、記憶媒体内の使用可能なソフトウェアのうちの１つを識別する、ユーザによる選択である。より安全な実施形態は、識別されるソフトウェアに対するユーザの権利を証明する何らかの形の情報をユーザから受信することを含み得る。これには、プロダクトキーの入力、製品識別子、またはリモートサーバによって生成される確認メッセージ（ｒｅｃｅｉｐｔ）など、他の何らかのコードが含まれ得る。さらに、判断操作９０８は、ネットワークを介して接続された検証サーバなどの第２のコンピュータとの対話を含み得る。
【００６６】
判断操作９０８の一実施形態は、複数の下位操作を含む。１つは、ユーザに権利または識別情報を要求する要求操作９１０である。要求操作９１０の一例は、上述のプロダクトキー４００などのプロダクトキーの要求であり、このプロダクトキーは、ソフトウェアの特定のバージョンを識別することと、プロダクトキーを確認するために確認情報を含むことの両方を行う。たとえば、ユーザは、そのために設けられた欄に、プロダクトキーを入力するように求められ得る。要求される情報は、記憶媒体のパッケージに付けて含めることができる。たとえば、プロダクトキーを、記憶媒体の保護ケースに付けることができる。あるいは、確認メッセージに付けて、またはネットワークを介してプロダクトキーサーバから、プロダクトキーを提供することができる。
【００６７】
第２の下位操作は、要求された情報が受信される、第２の受信操作９１２である。受信される情報は、上述のプロダクトキーの形であり得る。さらに、受信される情報は、特定のインストーラだけが情報にアクセスし、それを復号することができるように、符号化され得る。
【００６８】
第３の下位操作は、第２の受信操作９１２で受信された情報を検証する検証操作９１４である。検証操作９１４は、受信された情報によって、ユーザが識別したソフトウェアの権利を有することが証明されることを確認する。検証操作９１４は、ユーザによって入力され、第２の受信操作９１２で受信されたプロダクトキーなどの受信情報を復号し、次いで、復号された情報から、情報を抽出し識別し確認する。
【００６９】
判断操作９０８は、関連付け操作９２０をも含み得る。関連付け操作９２０では、インストールされるソフトウェアに関連するコード（具体的には、バージョン固有の２次コード）が識別される。
【００７０】
関連付け操作９２０の実施形態は、識別されたソフトウェアをその構成コードに関連付けるために、ＳＫＵテーブル５００などのルックアップテーブルおよび／またはＳＫＵファイル１１０などのファイルの使用を必要とし得る。ルックアップテーブルおよび／またはファイルは、インストールされるソフトウェアを含む記憶媒体内に格納することができる。あるいは、ルックアップテーブルは、既にユーザに提供され、コンピュータ内に格納されていることも、またネットワークを介してコンピュータに接続されたリモートサーバに置かれることもある。
【００７１】
ユーザがソフトウェアの権利を有する場合、インストール操作９１６で、ソフトウェアをコンピュータにインストールする。インストール操作９１６は、ソフトウェアのインストールに必要な関連するコンピュータコードを、コンピュータの内部記憶装置にコピーすることを含み得る。たとえば、すべてのソフトウェアに必要なコンピュータコードの第１の部分、および識別子されたソフトウェアに関連する第２の部分がコピーされる。実施形態では、ルックアップテーブルおよび／またはＳＫＵファイルもが、コピーされ得る。テーブルは、インストール後のソフトウェアの操作中の様々な動作を識別するのに必要であり、またインストール時に関連するコードを識別するのに必要であり得る。
【００７２】
インストール操作は、コンピュータ上のインストールされたソフトウェアのレジストリを更新することをも含み得る。特定のデータまたは情報が、記憶媒体からコンピュータにコピーされた情報を含みまたは識別するレジストリ内にコピーされ得る。レジストリに書き込まれたこのデータによって、製品識別子によって識別されるソフトウェアに適した、インストールされたソフトウェアの動作をイネーブルまたはディセーブルすることができる。
【００７３】
上述の諸操作を通して、ユーザが、複数の別個のソフトウェア製品をインストール可能であることに気付いていない場合があることに留意されたい。したがって、受信操作９０２は、特定のソフトウェア製品のインストールを求める特定のコマンドではなく、ソフトウェアのインストールの一般的なコマンドを受信することであると解釈され得る。この場合、ユーザへのプロンプトは、一般的なプロンプトであり、記憶媒体内のすべてのソフトウェアについての説明と見なされ得る、一般的な言葉でソフトウェアに言及しただけのものとすることができる。したがって、ユーザは、プロダクトキーまたは他の権利情報を入力するときに、そのプロダクトが、インストール対象のユーザが権利を有するソフトウェアを識別し、それに加えて権利を確認するのに必要な情報を提供することを認識していないことがある。しかし、ユーザの権利が検証されると、インストール操作９１６および他の任意の後続の操作は、一般的である必要はなく、識別されたソフトウェアに一意の情報およびブランド付けテキストを含む画面がユーザに提示され得る。
【００７４】
図１０に、本発明に従って消費者に複数のバージョンをもつソフトウェア製品を配布する一実施形態の論理操作１０００を示す。図１０に関しては、それぞれのバージョンは、関連しているが、別個の異なるソフトウェア製品を指す。図示する実施形態では、配布が作成操作１００２で開始し、記憶媒体の同一または実質上同一の複数のコピーが作成され、製造され、または他の方法で提供される。実質上同一ということから、それぞれの記憶媒体が、シリアル番号や他の媒体固有の情報など、いくらかの特定の識別情報を含み得ることが理解される。しかし、少なくとも格納されているソフトウェア製品に関しては、記憶媒体は、同一のコピーを含む。
【００７５】
関連付け操作１００４は、おそらく作成操作１００２の一環として、記憶媒体内の各ソフトウェア製品を、すべてのソフトウェア製品が必要とするコンピュータコードの共通部分、ならびにそのソフトウェア製品に必要なコードの第２の部分に関連付ける。たとえば、ソフトウェア製品の特定のＥＵＬＡは、そのソフトウェア製品に関連するコンピュータコードの第２の部分に含まれる。
【００７６】
関連付け操作１００４は、ルックアップテーブル、またはＳＫＵファイル内にあるような、１組のテーブルを含み得る。テーブルは、記憶媒体内に格納されることも、ユーザが記憶媒体からソフトウェア製品をインストールできるようにする、（以下で論じる）権利付与操作１００８の一環として、ユーザに提供されることもある。
【００７７】
図示するように、パッケージ操作１００６が含まれ得る。パッケージ操作１００６は、記憶媒体を、輸送し顧客に販売するために、パッケージ内に記憶媒体を梱包し得る。さらに、パッケージ操作１００６は、それぞれが媒体内に実際に格納されているソフトウェア製品のあるサブセットを識別する異なるパッケージに、一部の記憶媒体を梱包することを含み得る。たとえば、ソフトウェアアプリケーションの複数のバージョンが記憶媒体内に含まれていても、プロフェッショナル版や家庭版などの、１つだけが識別され得る。
【００７８】
顧客が本発明に従って配布されるソフトウェアをインストールするために、記憶媒体内に含まれる特定のバージョンを識別し、それに対する権利を顧客に付与するプロダクトキーなどの権利情報が、顧客に提供されなければならず、この権利情報によって、顧客は、ソフトウェア製品にアクセスしインストールすることができる。権利情報提供の操作１００８を示す。権利情報提供の操作１００８は、記憶媒体からソフトウェア製品をインストールするのに必要なプロダクトキーまたは他の情報を、顧客に提供する。こうした情報を提供する多くの様々なやり方については、上記で論じており、さらに多くのものが、当業者にはすぐに示唆されよう。たとえば、権利情報は、パッケージに付けて提供され得る。パッケージが単一のソフトウェア製品だけを識別する場合は、提供される権利情報は、パッケージで識別されるソフトウェア製品だけ識別し、それをインストールする権利を顧客に付与する。この場合、権利情報は、記憶媒体のパッケージの一部と見なされ得る。受信メッセージまたはオンライン購入プロセスの一部として権利情報を提供するなどの、他の方法も企図される。後者の場合、記憶媒体が配布された顧客は、単に所望のソフトウェア製品の有効なプロダクトキーを購入しまたは他の方法で取得することによって、記憶媒体内の任意のソフトウェア製品をインストールすることができる。
【００７９】
権利情報に加えて、インストーラ操作１０１０を行うことによって、権利情報を確認し、権利が付与されたソフトウェア製品およびコンピュータコードのその関連する第２の部分を識別し、第１の部分および識別された第２の部分をインストールことができるインストーラが顧客に提供される。インストーラは、実施形態に応じて、多くの異なるやり方で提供され得る。たとえば、インストーラは、それを記憶媒体内に含めることによって、提供することができる。したがって、顧客が記憶媒体を有している場合、インストーラも自動的に提供される。権利情報操作１００８を行う一環として、インストーラを顧客に提供することもできる。たとえば、記憶媒体が配布された顧客は、インストーラを、所望のソフトウェア製品の有効なプロダクトキーと共に取得することができる。インストーラは、小さいプログラムなので、記憶媒体を自由に配布する場合は、これは、著作権侵害行為を防止する効率的な方法であり得る。インストーラを、一度限りの使用または１つのコンピュータだけで有効にして、記憶媒体にアクセスできる人が、購入者である顧客からインストーラを取得できないようにすることができる。
【００８０】
インストーラ操作１０１０を行うことは、それぞれのソフトウェア製品を、そのインストールおよびランタイム動作によって識別する、ルックアップテーブルを提供することをも含み得る。ルックアップテーブルの例には、図５〜８を参照して論じたものがある。ルックアップテーブルを、関連付け操作１００４の一環として作成し、作成操作１００２における記憶媒体内に格納することができる。ルックアップテーブルは、それぞれのソフトウェア製品のインストールおよびランタイム動作を識別する情報を含むことがあり、それぞれの製品のＥＵＬＡを識別することもあり、また各ソフトウェア製品の特定のユーザインターフェイスを識別することもある。ルックアップテーブルのすべてまたは一部を、コピーまたは他の方法でインストールしなければならない、コンピュータコードの共通の第１部分の一部と見なすことができ、またインストール時に、テーブルからコンピュータにデータをコピーする必要がない場合は、ルックアップテーブルをインストーラの一部と見なすことができる。最後に、テーブルのある部分をすべてのソフトウェア製品に共通のものとし、他の部分は、記憶媒体内に含まれるソフトウェア製品のあるサブセットに特有のものとすることができる。
【００８１】
配布操作１０１２で、作成操作１００２で作成された記憶媒体が、顧客に配布される。配布は、多くのやり方で行われ得る。記憶媒体は、販促アイテムとして、シリアルの箱の中に入れて、またはバーのコースタとして提供することができる。従来のやり方で、エンドユーザに販売するために、それを小売店に配布することができる。ネットワークを介して記憶媒体へのアクセスを顧客に提供することによって、それを配布することもできる。コンピュータ納入業者から購入したコンピュータに最初から添付されていた備品として、それを配布することもできる。メールによって、無料でそれを配布することもできる。配布操作１０１２の上記で挙げた実施形態の一部では（たとえば記憶媒体またはコンピュータの小売店で購入することによって）、権利情報およびインストーラが、顧客に提供され得る。たとえば販促の一環としてなど、無料で配布される場合は、顧客は、権利情報とインストーラのうちの１つまたは両方を、別個に入手しなければならないことがある。
【００８２】
本発明の実施形態は、ソフトウェア開発元に加えて、顧客にとっても有利である。その１つを挙げると、記憶媒体がパッケージに記載のバージョンを含まないという事態が、回避され得る。記憶媒体が正確なソフトウェア製品のものである限りは、すべてのバージョンが提供される。さらに、以前のバージョン固有の配布方法では、顧客に配布された記憶媒体に不具合があれば、顧客は、権利を有していても、そのバージョンを再インストールすることができないことがある。上記で示した実施形態では、インストーラが、どのバージョンの権利を顧客が有しているかを判断することができれば、顧客は、そのソフトウェア製品のいずれかの記憶媒体から、購入したバージョンをインストールまたは再インストールすることができる。
【００８３】
本発明について、コンピュータの構造的特徴、方法論的な行為、およびコンピュータ読取り可能媒体に特有の言語で説明したが、添付の特許請求の範囲で定義される本発明は、説明した特定の構造、行為または媒体に必ずしも限定されないことを理解されたい。たとえば、製品のコンピュータコードおよびそのバージョンは、配布される媒体によってではなく、インターネットなどのネットワーク介してコンピュータからアクセス可能な記憶媒体内に含めることができる。したがって、特定の構造的特徴、行為および媒体は、主張する本発明を実施する例示的な実施形態として開示されている。
【００８４】
上記で述べた様々な実施形態は、例示するために提示するものにすぎず、本発明を限定するものと解釈すべきでない。本明細書で示し述べた例示的な諸実施形態および応用例に従わず、また以下の特許請求の範囲で述べる、本発明の真の精神および範囲から逸脱せずに、本発明に対して行われ得る様々な修正および変更が当業者には容易に理解されよう。
【図面の簡単な説明】
【００８５】
【図１】本発明の一実施形態に従ってソフトウェア製品の１つのバージョンをインストールするためのシステムの機能構成要素を示す図である。
【図２】本発明の実施形態を実施することができる、適切なコンピューティングシステム環境の一例を示す図である。
【図３】本発明の一実施形態による記憶媒体の内容を示す図である。
【図４】本発明によるプロダクトキーの一実施形態を示す図である。
【図５】製品識別子を特定のソフトウェア製品および製品のバージョンに関連付ける、ファイル内に含まれるＳＫＵテーブルの一実施形態を示す図である。
【図６】本発明によるブランド付けテーブルの一実施形態を示す図である。
【図７】本発明によるＥＵＬＡテーブルの一実施形態を示す図である。
【図８】本発明によるマッピングテーブルの一実施形態を示す図である。
【図９】本発明による、ソフトウェアをインストールための論理操作の一実施形態を示す図である。
【図１０】本発明に従って消費者に複数の関連するソフトウェア製品を配布する一実施形態の論理操作を示す図である。
【符号の説明】
【００８６】
１０      記憶媒体
１０２    記憶媒体
４００    プロダクトキー
５００    テーブル
６００    ブランド付けテーブル
７００    関連付けるテーブル
８００    マッピングテーブル
１０００  論理操作
【図１】
2005100401.tif 000003
【図２】
2005100401.tif 000004
【図３】
2005100401.tif 000005
【図４】
2005100401.tif 000006
【図５】
2005100401.tif 000007
【図６】
2005100401.tif 000008
【図７】
2005100401.tif 000009
【図８】
2005100401.tif 000010
【図９】
2005100401.tif 000011
【図１０】
2005100401.tif 000012