(57)【要約】ソフトウェアパッケージのインストールを管理および組織するための方法およびシステムが開示される。一実施形態において、この方法は、コンピュータソースからソフトウェアパッケージを受信することを含む。受信されたソフトウェアパッケージの１つ以上の特性が識別される。受信されたソフトウェアパッケージの識別された１つ以上の特性は、第１の格納モジュールに格納される。また、受信されたソフトウェアパッケージは、第２の格納モジュールに格納される。
2009510563.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータソースからソフトウェアパッケージを受信することと、
該受信されたソフトウェアパッケージの１つ以上の特性を識別することと、
該識別された１つ以上の特性を第１の格納モジュールに格納することと、
該受信されたソフトウェアパッケージを第２の格納モジュールに格納することと
を包含する、コンピュータにインプリメントされる方法。
【請求項２】
前記受信されたソフトウェアパッケージと前記第２の格納モジュールに格納された別のソフトウェアパッケージとの間の関係を識別すること
をさらに含む、請求項１に記載のコンピュータにインプリメントされる方法。
【請求項３】
前記受信されたソフトウェアパッケージをその他のソフトウェアパッケージの新しいバージョンとして指定すること
をさらに含む、請求項２に記載のコンピュータにインプリメントされる方法。
【請求項４】
前記第２の格納モジュールにおける前記その他のソフトウェアパッケージを、前記受信されたソフトウェアパッケージによって置き換えること
をさらに含む、請求項２に記載のコンピュータにインプリメントされる方法。
【請求項５】
前記関係を識別することは、
前記受信されたソフトウェアパッケージが前記その他のソフトウェアパッケージと実質的に類似しているかどうかを、該受信されたソフトウェアパッケージの特性の関数として決定すること
を含む、請求項２に記載のコンピュータにインプリメントされる方法。
【請求項６】
前記第２の格納モジュール内での前記ソフトウェアパッケージの位置は、ユーザにアクセス可能ではない、請求項１に記載のコンピュータにインプリメントされる方法。
【請求項７】
前記コンピュータソースから前記ソフトウェアパッケージを受信したことに応答して、該受信されたソフトウェアパッケージと前記第２の格納モジュールに格納された既存のソフトウェアパッケージとの間の関係を、ユーザが定義することを可能にすること
をさらに含む、請求項１に記載のコンピュータにインプリメントされる方法。
【請求項８】
前記関係を前記ユーザが定義することを可能にすることは、
前記受信されたソフトウェアパッケージが前記既存のソフトウェアパッケージの新しいバージョンであること、該受信されたソフトウェアパッケージが該既存のソフトウェアパッケージを上書きしていること、または該受信されたソフトウェアパッケージが該既存のソフトウェアパッケージとは異なる新しいパッケージであることを、該ユーザが指定することを可能にすること
を含む、請求項７に記載のコンピュータにインプリメントされる方法。
【請求項９】
前記受信されたソフトウェアパッケージが前記第２の格納モジュールに格納された既存のソフトウェアパッケージと実質的に類似しているかどうかを、該受信されたソフトウェアパッケージの１つ以上の特性の関数としてユーザが指定することを可能にすること
をさらに含む、請求項１に記載のコンピュータにインプリメントされる方法。
【請求項１０】
コンピュータ読み取り可能な媒体であって、該媒体上には複数の命令が格納されており、該複数の命令は、コンピュータによって実行されたときに、該コンピュータに
コンピュータソースからソフトウェアパッケージを受信することと、
該受信されたソフトウェアパッケージの１つ以上の特性を識別することと、
該識別された１つ以上の特性を第１の格納モジュールに格納することと、
該受信されたソフトウェアパッケージを第２の格納モジュールに格納することと
を実行させる、コンピュータ読み取り可能な媒体。
【請求項１１】
前記複数の命令は、前記コンピュータに
前記受信されたソフトウェアパッケージと前記第２の格納モジュールに格納された別のソフトウェアパッケージとの間の関係を識別すること
を実行させる、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１２】
前記複数の命令は、前記コンピュータに
前記受信されたソフトウェアパッケージをその他のソフトウェアパッケージの新しいバージョンとして指定すること
を実行させる、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１３】
前記複数の命令は、前記コンピュータに
前記第２の格納モジュールにおける前記その他のソフトウェアパッケージを、前記受信されたソフトウェアパッケージによって置き換えること
を実行させる、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１４】
前記複数の命令は、前記コンピュータに
前記受信されたソフトウェアパッケージが前記その他のソフトウェアパッケージと実質的に類似しているかどうかを、該受信されたソフトウェアパッケージの特性の関数として決定すること
により、該受信されたソフトウェアパッケージと該その他のソフトウェアパッケージとの間の関係を識別させる、請求項１１に記載のコンピュータ読み取り可能な媒体。
【請求項１５】
前記第２の格納モジュール内での前記ソフトウェアパッケージの位置は、ユーザにアクセス可能ではない、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１６】
前記複数の命令は、前記コンピュータに
前記コンピュータソースから前記ソフトウェアパッケージを受信したことに応答して、該受信されたソフトウェアパッケージと前記第２の格納モジュールに格納された既存のソフトウェアパッケージとの間の関係を、ユーザが定義することを可能にすること
を実行させる、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１７】
前記複数の命令は、前記コンピュータに
前記受信されたソフトウェアパッケージが前記既存のソフトウェアパッケージの新しいバージョンであること、該受信されたソフトウェアパッケージが該既存のソフトウェアパッケージを上書きしていること、または該受信されたソフトウェアパッケージが該既存のソフトウェアパッケージとは異なる新しいパッケージであることを、ユーザが指定することを可能にすること
により、前記関係を該ユーザが定義することを可能にさせる、請求項１６に記載のコンピュータ読み取り可能な媒体。
【請求項１８】
前記複数の命令は、前記コンピュータに
前記受信されたソフトウェアパッケージが前記第２の格納モジュールに格納された既存のソフトウェアパッケージと実質的に類似しているかどうかを、該受信されたソフトウェアパッケージの１つ以上の特性の関数としてユーザが指定することを可能にすること
を実行させる、請求項１０に記載のコンピュータ読み取り可能な媒体。
【請求項１９】
プロセッサと、
該プロセッサに接続されたメモリと
を備えたコンピュータシステムであって、
該メモリは命令を格納し、
該命令は、該プロセッサによって実行されたときに、該プロセッサに
コンピュータソースからソフトウェアパッケージを受信することと、
該受信されたソフトウェアパッケージの１つ以上の特性を識別することと、
該識別された１つ以上の特性を第１の格納モジュールに格納することと、
該受信されたソフトウェアパッケージを第２の格納モジュールに格納することと
を行わせる、コンピュータシステム。
【請求項２０】
前記命令は、前記プロセッサに
前記受信されたソフトウェアパッケージと前記第２の格納モジュールに格納された別のソフトウェアパッケージとの間の関係を識別させる、請求項１９に記載のコンピュータシステム。
【請求項２１】
前記命令は、前記プロセッサに
前記受信されたソフトウェアパッケージをその他のソフトウェアパッケージの新しいバージョンとして指定させる、請求項２０に記載のコンピュータシステム。
【請求項２２】
前記命令は、前記プロセッサに
前記第２の格納モジュールにおける前記その他のソフトウェアパッケージを、前記受信されたソフトウェアパッケージによって置き換えさせる、請求項２０に記載のコンピュータシステム。
【請求項２３】
前記命令は、前記プロセッサに
前記受信されたソフトウェアパッケージが前記その他のソフトウェアパッケージと実質的に類似しているかどうかを、該受信されたソフトウェアパッケージの特性の関数として決定すること
により、該受信されたソフトウェアパッケージと前記その他のソフトウェアパッケージとの間の関係を識別させる、請求項２０に記載のコンピュータシステム。
【請求項２４】
前記第２の格納モジュール内での前記ソフトウェアパッケージの位置は、ユーザにアクセス可能ではない、請求項１９に記載のコンピュータシステム。
【請求項２５】
前記命令は、前記プロセッサに
前記コンピュータソースから前記ソフトウェアパッケージを受信したことに応答して、該受信されたソフトウェアパッケージと前記第２の格納モジュールに格納された既存のソフトウェアパッケージとの間の関係を、ユーザが定義することを可能にさせる、請求項１９に記載のコンピュータシステム。
【請求項２６】
前記命令は、前記プロセッサに
前記受信されたソフトウェアパッケージが前記既存のソフトウェアパッケージの新しいバージョンであること、該受信されたソフトウェアパッケージが該既存のソフトウェアパッケージを上書きしていること、または該受信されたソフトウェアパッケージが該既存のソフトウェアパッケージとは異なる新しいパッケージであることを、ユーザが指定することを可能にすること
により、前記関係を該ユーザが定義することを可能にさせる、請求項２５に記載のコンピュータシステム。
【請求項２７】
前記命令は、前記プロセッサに
前記受信されたソフトウェアパッケージが前記第２の格納モジュールに格納された既存のソフトウェアパッケージと実質的に類似しているかどうかを、該受信されたソフトウェアパッケージの１つ以上の特性の関数としてユーザが指定することを可能にさせる、請求項１９に記載のコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
（発明の分野）
本発明は、概して、コンピュータシステムに関し、より具体的には、ソフトウェアパッケージのインストールを管理および組織するための方法およびシステムに関する。
【背景技術】
【０００２】
（発明の背景）
一般に、企業環境において、管理者は配信システムを利用し、１つ以上のコンピューティングマシンにソフトウェアパッケージを配備する。ソフトウェアパッケージは、通常、固有の特性（例えば、ソフトウェアパッケージの開発者、プログラム名、バージョン、言語、ビルドナンバー、公開日、等）を含んでおり、これらの特性は、管理者にとって、コンピュータマシン上にどのプログラムがインストールされるべきかを決定したり、あるいは企業における様々なソフトウェアパッケージの全てを管理および組織したりするために有用であり得る。しかしながら、これらの特性のうちの一部は、ソフトウェアパッケージがコンピュータマシンにインストールされる前には、ソフトウェアパッケージから容易には見出されない場合がある。一部の例において、その他の特性（例えば、ビルドナンバー）は、ソフトウェアパッケージがコンピュータマシンにインストールされた後でさえも、独立して決定することができない。このことは、管理者に対し、ソフトウェアパッケージおよびそれらに関連付けられた特性を識別、検査、管理、および組織することに対する挑戦を提示する。
【０００３】
加えて、管理者にとって、わずかな特性の差しか有さないソフトウェアパッケージを区別することは困難である。例えば、特定のソフトウェアパッケージは、異なるバージョンの別のソフトウェアパッケージを、これらのソフトウェアパッケージが互いにそれほど異ならない（例えば、それらの特性は、それらのビルドナンバーを除いて同じであり得る）場合でさえも、表し得る。さらに、ソフトウェアパッケージは、保護しない限り偶発的な改変に対して脆弱なファイルを含み得る。したがって、ソフトウェアパッケージを安全な位置に格納し、ソフトウェアパッケージに関連付けられたファイルに対する意図しない改変を防ぐことが望ましい。
【０００４】
以前は、ソフトウェアパッケージおよびそれに関連付けられた特性を管理および組織するために、ソフトウェアパッケージを格納し、それらの特性（例えば、バージョンおよびビルドナンバー）を表すように、（例えば、階層構造を有する）パブリックディレクトリが形成されていた。それにも関わらず、パッケージファイルに対する改変を防ぐために、特定のソフトウェアパッケージがそのようなパブリックディレクトリから安全な位置に移される場合に、そのソフトウェアパッケージに関連付けられた特性情報も同様に、パブリックディレクトリから移される。したがって、管理者にとって、ソフトウェアパッケージに対して安全な環境を提供し、ソフトウェアパッケージに関連付けられた特性情報を保護することは困難である。
【０００５】
加えて、特定のインストール技術（例えば、Ｗｉｎｄｏｗｓ（登録商標）  Ｉｎｓｔａｌｌｅ  Ｔｒａｎｓｆｏｒｍ（「ＭＳＴ」）ファイル）は、パッケージのインストールの間に、ソフトウェアパッケージおよびそれに関連付けられた特性（例えば、バージョンおよび／またはビルドナンバー）を著しく変化させ得る。ソフトウェアパッケージのインストールを適切に管理および組織するためには、管理者は、そのようなインストール技術が特定のソフトウェアパッケージに適用され得るかどうか、およびそのようなインストール技術がソフトウェアパッケージのインストールにどのように影響を与えるかについて、理解する必要があり得る。
【発明の開示】
【課題を解決するための手段】
【０００６】
（概要）
ソフトウェアパッケージのインストールを管理および組織するための方法およびシステムが開示される。一実施形態において、この方法は、コンピュータソースからソフトウェアパッケージを受信することを含む。受信されたソフトウェアパッケージの１つ以上の特性が識別される。受信されたソフトウェアパッケージの識別された１つ以上の特性は、第１の格納モジュールに格納される。また、受信されたソフトウェアパッケージは、第２の格納モジュールに格納される。
【０００７】
上述の特徴およびその他の好適な特徴（実装および要素の組み合わせの様々な新規な詳細を含む）は、添付の図面を参照してより具体的に記載され、特許請求の範囲において指摘される。本明細書中に記載されている特定の方法およびシステムは、単に例示を目的として示されており、限定を目的としていないことが理解されるべきである。当業者によって理解されるように、本明細書中に記載されている原理および特徴は、本発明の範囲から逸れることなしに、様々な数多くの実施形態において利用され得る。
【発明を実施するための最良の形態】
【０００８】
本明細書の一部として含まれている添付の図面は、現在の好適な実施形態および上述の一般的な記載を示しており、以下に与えられる好適な実施形態の詳細な説明は、本発明の原理を説明し、教示する役目を担っている。
【０００９】
（詳細な説明）
ソフトウェアパッケージのインストールを管理および組織するための方法およびシステムが開示される。一実施形態において、方法は、ユーザからソフトウェアパッケージを受信することを含む。受信されたソフトウェアパッケージの１つ以上の特性が識別される。受信されたソフトウェアパッケージの識別された１つ以上の特性は、第１の格納モジュールに格納される。また、受信されたソフトウェアパッケージは、第２の格納モジュールに格納される。
【００１０】
以下の記載において、説明を目的として、本明細書中に開示されている様々な本発明のコンセプトの完全な理解を提供するために、特定の名称（ｎｏｍｅｎｃｌａｔｕｒｅ）が述べられる。しかしながら、これらの特定の詳細が、本明細書中に開示されている様々な本発明のコンセプトを実施するためには必須ではないことは、当業者には明らかである。
【００１１】
以下の詳細な説明の一部は、コンピュータメモリ内のデータビット上のオペレーションのアルゴリズムおよびシンボル表現に関連して提示されている。これらのアルゴリズムの記述および表現は、データ処理の当業者によって用いられる、自身の仕事の実体をその他の当業者に最も効率的に伝えるための手段である。本明細書中ではアルゴリズムは、所望の結果につながる一連の首尾一貫したステップであるとして考えられる。ステップは、物理的な量の物理的な処理（ｍａｎｉｐｕｌａｔｉｏｎ）を要求するステップである。通常、必須ではないが、これらの量は、格納、転送、組み合わせ、比較、および他の処理が可能な電気信号または磁気信号の形態を取る。場合によっては、主に共通の使用のために、これらの信号を、ビット、値、要素、シンボル、文字、用語、数字、等として参照することが便利であることが分かっている。
【００１２】
しかしながら、これらの用語および同様の用語の全ては、適切な物理的な量に関連付けられており、これらの量に付与される単なる便利なラベルに過ぎないことが理解されるべきである。以下の議論から明らかなので、特に断りがない限り、記載全体を通して、例えば「処理」または「コンピューティング」または「計算」または「決定」または「表示」等の用語を使用する議論は、コンピュータシステムまたは同様の電子的なコンピューティングデバイスのアクションまたはプロセスを参照し、これらのアクションまたはプロセスは、コンピュータシステムのレジスタおよびメモリ内の物理的（電子的）な量として表されるデータを、コンピュータシステムのメモリまたはレジスタまたはその他のそのような情報格納装置、送信デバイスまたは表示デバイス内の物理的な量として同様に表されるその他のデータへと、処理および変換するものとする。
【００１３】
本発明はまた、本明細書中のオペレーションを実行する装置にも関する。この装置は、要求された目的のために特別に構成されたり、あるいはこの装置は、コンピュータに格納されたコンピュータプログラムによって選択的に作動または再構成される汎用コンピュータを含んでいたりし得る。そのようなコンピュータプログラムは、コンピュータ読み取り可能な媒体に格納され得る。コンピュータ読み取り可能な媒体は、例えば、限定するものではないが、フロッピー（登録商標）ディスク、光学ディスク、ＣＤ−ＲＯＭ、および光磁気ディスクを含む任意のタイプのディスク、リードオンリーメモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カードまたは光学カード、あるいは電子命令を格納することに適した任意のタイプの媒体等であり、各媒体はコンピュータシステムのバスに接続される。
【００１４】
本明細書中に提示されるアルゴリズムおよび画面は、任意の特定のコンピュータまたはその他の装置に本質的には関連しない。様々な汎用システムが、本明細書中の教示にしたがってプログラムと共に用いられ得る。あるいは、要求された方法ステップを実行するための、より特殊な装置を構成することが便利なことが分かっている。様々なこれらのシステムに対して要求される構造は、以下の記載から明らかになる。加えて、本発明は、特定のプログラミング言語に関連して記載されてはいない。様々なプログラミング言語が、本明細書中に記載されている本発明の教示を実施するために用いられ得ることが、理解されるべきである。
【００１５】
本明細書中で用いられるとき、大文字および小文字の使用を問わず、以下の用語は以下の意味を有するものとする。
【００１６】
「コンピュータソース」は、コンピュータまたはネットワーク上の位置を意味し、この位置から、ソフトウェアパッケージが受信され得る。
【００１７】
「配信システム」は、ソフトウェアパッケージを１つ以上のターゲットのマシンに配備するシステムを意味する。
【００１８】
「インターフェースモジュール」は、ユーザとソフトウェアパッケージ格納モジュールおよびソフトウェアパッケージ特性格納モジュールとの間にインターフェースを提供するソフトウェア、ファームウェア、および／またはハードウェアの任意の組み合わせを意味する。
【００１９】
「パッチファイル」は、既存のインストールされたソフトウェアパッケージにパッチ処理を施したり更新したりする自立型（ｓｅｌｆ−ｃｏｎｔａｉｎｅｄ）のファイルを意味する。
【００２０】
「プレ配備システム」は、１つ以上のターゲットのマシン上でソフトウェアパッケージをインストールすることなしに、ユーザが１つ以上のターゲットのマシン上でソフトウェアパッケージをテストすることを可能にするシステムを意味する。
【００２１】
「ソフトウェアパッケージ」は、ターゲットのマシン上にインストールされるソフトウェアプリケーションのパッケージを意味する。
【００２２】
「ソフトウェアパッケージ管理システム」は、１つ以上のコンピュータマシンに配信され得る（または配信された）ソフトウェアパッケージを管理するシステムを意味し、このシステムは、限定するものではないが、インターフェースモジュール、ソフトウェアパッケージ格納モジュール、ソフトウェアパッケージ特性格納モジュールを含む。
【００２３】
「ソフトウェアパッケージ特性格納モジュール」は、１つ以上のコンピュータマシンに配信され得る（または配信された）ソフトウェアパッケージに関連付けられた特性を格納するソフトウェア、ファームウェア、および／またはハードウェアの任意の組み合わせを意味する。
【００２４】
「ソフトウェアパッケージ格納モジュール」は、１つ以上のコンピュータマシンに配信され得る（または配信された）ソフトウェアパッケージを格納するソフトウェア、ファームウェア、および／またはハードウェアの任意の組み合わせを意味する。
【００２５】
「変換ファイル」は、ソフトウェアパッケージのインストールの間に、インストールの挙動を変化させるように独立して適用され得るファイルを意味する。
【００２６】
図１〜図３は、本発明の実施形態にしたがう、例示的なソフトウェア管理システムのブロック図を示している。ソフトウェア管理システムに加え、本明細書中の様々な教示を利用するその他のシステムもまた、本発明の様々な局面を実施するために用いられ、これらのシステムは、本発明の全体の範囲内に含まれると考えられるということは理解されるべきである。
【００２７】
図１において、ネットワーク図は、１人以上のユーザ１００が、ソフトウェアパッケージ管理システム１０２を用いて、様々なソフトウェアパッケージおよびそれらに関連付けられた特性を管理および組織し得ることを示している。加えて、ソフトウェアパッケージ管理システム１０２は、１つ以上のマシン１０４に配信され得る（または配信された）ソフトウェアパッケージを格納するために安全な環境を提供する。ユーザ１００は、配信システム１０６を用いて、ソフトウェアパッケージ管理システム１０２に格納されたソフトウェアをマシン１０４のうちの１つ以上に配信し得る。特定のソフトウェアパッケージは、企業内で内的に得られたり、あるいは例えば独立したソフトウェアベンダーまたは一部のその他のソースから外的に得られたりし得る。一実施形態において、マシン１０４は、単一の企業のコンピュータマシンを表し得る。
【００２８】
図１においては示されていないが、その他のコンピュータおよび／またはシステムもまた、実施形態に関連して使用され得る。例えば、ユーザ１００、ソフトウェアパッケージ管理システム１０２、配信システム１０６、および／またはマシン１０４のうちの１つ以上は、ネットワークを介して互いに接続され得る。ネットワークは、ローカルエリアネットワーク（「ＬＡＮ」）、ワイドエリアネットワーク（「ＷＡＮ」）、バーチャルプライベートネットワーク（「ＶＰＮ」）、あるいはユーザ１００、ソフトウェアパッケージ管理システム１０２、配信システム１０６、および／またはマシン１０４の１つ以上の間でデータを送信するように構成されたその他のネットワークであり得る。加えて、プレ配備システム（図示されず）は、１つ以上のマシン１０４上にソフトウェアパッケージをインストールすることなしに、ユーザ１００が１つ以上のマシン１０４上でソフトウェアパッケージをテストすることを可能にし得る。プレ配備システムは、（例えば、ネットワークを介して）マシン１０４とソフトウェアパッケージ管理システム１０２との間に接続され得る。
【００２９】
図２は、ソフトウェアパッケージ管理システム１０２が、インターフェースモジュール２０２、ソフトウェアパッケージ格納モジュール２０４、およびソフトウェアパッケージ特性格納モジュール２０６を含むことを示している。インターフェースモジュール２０２、ソフトウェアパッケージ格納モジュール２０４、およびソフトウェアパッケージ特性格納モジュール２０６は、ソフトウェア、ファームウェア、および／またはハードウェアであったり、またはソフトウェア、ファームウェア、および／またはハードウェアの任意の組み合わせであったりし得る。当業者は、本明細書中に記載されているものとは異なるように、様々なモジュールが分配され得ることを理解し得る。様々なモジュールが、１つ以上のモジュールと組合され得、様々なコンピュータマシンに分配され得る。例えば、インターフェースモジュール２０２は、ソフトウェアパッケージ格納モジュール２０４および／またはソフトウェアパッケージ特性格納モジュール２０６と統合され得る。同様に、ソフトウェアパッケージ格納モジュール２０４は、ソフトウェアパッケージ特性格納モジュール２０６と統合され得る。
【００３０】
一実施形態にしたがうと、インターフェースモジュール２０２は、ユーザ１００とソフトウェアパッケージ格納モジュール２０４およびソフトウェアパッケージ特性格納モジュール２０６との間のインターフェースとして機能する。ソフトウェアパッケージ格納モジュール２０４は、マシン１０４に配信され得る（または配信された）ソフトウェアパッケージを格納するように構成される。一実施形態において、ソフトウェアパッケージ格納モジュール２０４は安全なものであり、ユーザ１００は、ソフトウェアパッケージの特定の格納位置を知ることができなかったり、インターフェースモジュール２０２を用いることなく、ソフトウェアパッケージ格納モジュール２０４に格納されたソフトウェアパッケージに直接的にアクセスすることができなかったりする。ソフトウェアパッケージ特性格納モジュール２０６（例えば、構造化クエリ言語（「ＳＱＬ」）データベース）は、ソフトウェアパッケージ格納モジュール２０４に格納された所与のソフトウェアパッケージに関連付けられた様々な特性を格納するように構成され、インターフェースモジュール２０２を介してユーザ１００にアクセス可能である。
【００３１】
図３において、ユーザ１００は、インターフェース２０２を用いて、ソフトウェアパッケージをソフトウェアパッケージ管理システム１０２にインポートする。示されているように、ユーザマシン１００を使用するユーザは、ソフトウェアパッケージ３０２をインターフェースモジュール２０２に提供する。一実施形態にしたがうと、インターフェースモジュール２０２は、ソフトウェアパッケージ３０２の格納を管理する機能およびそれに関連付けられた特性を、ソフトウェアパッケージ格納モジュール２０４およびソフトウェアパッケージ特性格納モジュール２０６のそれぞれに提供する。具体的には、ユーザマシン１００からソフトウェアパッケージ３０２を受信することに応答して、インターフェースモジュール２０２は、ソフトウェアパッケージ３０２の様々な特性（例えば、ソフトウェアパッケージの開発者、プログラム名、バージョン、言語、ビルドナンバー、公開日、等）を識別する。インターフェースモジュール２０２は、ソフトウェアパッケージ３０２のこれらの識別された特性を、ソフトウェアパッケージ特性格納モジュール２０６に格納する。インターフェースモジュール２０２はまた、ソフトウェアパッケージ３０２そのものを、ソフトウェアパッケージ格納モジュール２０４に格納するようにも構成される。
【００３２】
このように、一実施形態にしたがうと、ソフトウェアパッケージ格納モジュール２０４に格納されたソフトウェアパッケージに対し、それらに関連付けられた特性は、ソフトウェアパッケージ特性格納モジュール２０６に格納される。ユーザ１００は、インターフェースモジュール２０２を使用して、そのようなソフトウェアパッケージおよびそれらの特性を管理し得る。例えば、インターフェースモジュール２０２は、ソフトウェアパッケージ３０２の特性とソフトウェアパッケージ特性格納モジュール２０６における既存のソフトウェア特性とを比較することによって、例えば、ソフトウェアパッケージ３０２がソフトウェアパッケージ格納モジュール２０４に格納された既存のパッケージと実質的に類似しているかどうか（例えば、両方のパッケージが同一または類似の特性を有しているかどうか）を決定するように構成される。一実施形態において、ユーザ１００は、２つのソフトウェアパッケージが互いに実質的に類似しているかどうかを、インターフェースモジュール２０２が決定する方法を指定し得る。例えば図４Ａは、一実施形態にしたがう、インターフェースモジュール２０２の例示的なスクリーンショットを示している。図４Ａに示されているように、ユーザ１００は、２つのソフトウェアパッケージが同じパッケージコード、製造コード、製造言語、製造バージョン、および／または変換ファイルのリストを有しているかどうか、そして２つのソフトウェアパッケージが互いに重複していたり、あるいは互いに実質的に類似していたりするかどうかを指定することができる。
【００３３】
このように、インターフェースモジュール２０２は、ソフトウェアパッケージ３０２とソフトウェアパッケージ格納モジュール２０４に格納された１つ以上のその他のソフトウェアパッケージとの間の関係を識別（および表示）するように適合される。インターフェースモジュール２０２はまた、（例えば、ソフトウェアパッケージ３０２がソフトウェアパッケージ格納モジュール２０４における既存のパッケージに実質的に類似していることを、インターフェースモジュール２０２が決定した場合に）ソフトウェアパッケージ３０２とソフトウェアパッケージ格納モジュール２０４に格納された１つ以上のその他のソフトウェアパッケージとの間の関係を、ユーザ１００が定義することを可能にするように適合される。例えば図４Ｂは、一実施形態にしたがう、インターフェースモジュール２０２の別の例示的なスクリーンショットを示している。図４Ｂに示されているように、ユーザ１００は、インターフェースモジュール２０２を介して、ソフトウェアパッケージ３０２が、ソフトウェアパッケージ格納モジュール２０４に格納された既存のパッケージの新しいバージョンであることを指定する。この場合、ソフトウェアパッケージ３０２は、ソフトウェアパッケージ格納モジュール２０４に格納された既存のパッケージの新しい「アクティブ」なバージョンになる。ユーザ１００はまた、インターフェースモジュール２０２を介して、ソフトウェアパッケージ３０２が、名前を付けられるべき新しいソフトウェアパッケージであり、ソフトウェアパッケージ格納モジュール２０４に格納されるべきであり、既存のパッケージとは異なっていることを指定する。ユーザ１００は、ソフトウェアパッケージ３０２の名前と共に、ソフトウェアパッケージ格納モジュール２０４内のソフトウェアパッケージ３０２の格納位置（例えば、グループ階層）を指定し得る。あるいは、インターフェースモジュール２０２は、ソフトウェアパッケージ３０２に、名前および格納位置を自動的に割り当てるように構成される。さらに、ユーザ１００は、インターフェースモジュール２０２を介して、ソフトウェアパッケージ３０２が、ソフトウェアパッケージ格納モジュール２０４に存在するパッケージの既存のバージョンを上書きすることを指定し得る。この場合、インターフェースモジュール２０２は、パッケージの既存のバージョンを削除し、それをソフトウェアパッケージ３０２と共に、ソフトウェアパッケージ格納モジュール２０４においてパッケージの既存のバージョンが見出された位置へと移す。
【００３４】
一実施形態において、ユーザ１００は、インターフェースモジュール２０２を用いて、例えば、異なるパッケージの特性を比較および／または表示したり、異なるパッケージ間の関係を定義したりする等によって、ソフトウェアパッケージ格納モジュール２０４に既に格納されているソフトウェアパッケージを管理し得る。
【００３５】
インターフェースモジュール２０２は、ソフトウェアパッケージ特性格納モジュール２０６に格納された特性が、ユーザに対して表示されたり、ユーザ１００によって検索されたりすることを可能にする。したがって、ユーザ１００は、特定のソフトウェアパッケージを識別、管理、抽出したり、あるいはソフトウェアパッケージをマシン１０４のうちの１つ以上に配信したりすることができる。例えば、インターフェースモジュール２０２は、パッケージレポートを生成し、ユーザ１００に提供することができる。パッケージレポートは、ソフトウェアパッケージ格納モジュール２０４に格納された所与のソフトウェアパッケージの様々な特性を識別する。
【００３６】
加えて、インターフェースモジュール２０２は、ユーザマシン１００上のパッケージファイルのローカルコピーを作ることによって、ソフトウェアパッケージ格納モジュール２０４に格納されたソフトウェアパッケージのコピーを、ユーザ１００がチェックアウト（ｃｈｅｃｋ  ｏｕｔ）することを可能にする。一実施形態において、インターフェースモジュール２０２は、ソフトウェアパッケージのチェックアウト用コピーに一意的な識別子を割り当て、ユーザマシン１００上での格納のための一意的な位置を提供する。インターフェースモジュール２０２はまた、ソフトウェアパッケージ格納モジュール２０４におけるエントリを形成し、ソフトウェアパッケージのチェックアウト状態を示す。上述されたものと同じインポートプロセスを用いることによって、ユーザ１００は、ソフトウェアパッケージのローカルコピーをソフトウェアパッケージ格納モジュール２０４にチェックイン（ｃｈｅｃｋ  ｉｎ）し、ソフトウェアパッケージの特性をソフトウェアパッケージ特性格納モジュール２０６にチェックインすることができる。インターフェースモジュール２０２はさらに、ユーザ１００が、ユーザマシン１００からローカルパッケージを移し、ソフトウェアパッケージ格納モジュール２０４におけるパッケージのチェックアウト状態を削除することによって、チェックアウトをキャンセルすることを可能にする。一実施形態において、「管理者」の権限を有するユーザ１００は、その他のユーザ１００によって以前に実行されたチェックアウトをキャンセルすることができる。
【００３７】
ソフトウェアパッケージ特性格納モジュール２０６は、ソフトウェアパッケージ格納モジュール２０４内のソフトウェアパッケージの位置を決定する方法に関する情報（例えば、パス情報）を含む、ソフトウェアパッケージ格納モジュール２０４に格納されたソフトウェアパッケージの様々な特性を格納する。しかしながら、一実施形態にしたがうと、ソフトウェアパッケージ特性格納モジュール２０６に格納されたパス情報は、ユーザ１００にアクセス可能ではない（例えば、インターフェースモジュール２０２を介してユーザ１００に対して表示または提供されない）ので、ユーザ１００は、ソフトウェアパッケージ格納モジュール２０４内のソフトウェアパッケージの位置を知ることができない。別の実施形態において、ソフトウェアパッケージ特性格納モジュール２０６は、ディレクトリの階層構造を用いることによってパッケージの特性を維持するので、ソフトウェアパッケージがソフトウェアパッケージ格納モジュール２０４に格納されている場合でさえも、異なるソフトウェアパッケージ間の関係は保存される。
【００３８】
ソフトウェアパッケージ格納モジュール２０４は、企業内のソフトウェアパッケージのインストールに対し、安全かつ集中的な格納を提供する。具体的には、ソフトウェアパッケージ格納モジュール２０４は、インストール用のパッケージファイルを格納し、これらのファイルに対するアクセスを確実に管理する。一実施形態にしたがうと、ユーザ１００は、ソフトウェアパッケージ格納モジュール２０４内に格納されたソフトウェアパッケージのパス情報を知らないが（そして、ソフトウェアパッケージ格納モジュール２０４内に格納されたファイルに対して直接的にアクセスしたり、改変したりすることができないが）、インターフェースモジュール２０２を介して、ソフトウェアパッケージ特性格納モジュール２０６に格納されたパッケージの特性にアクセスすることができる。一実施形態にしたがうと、ソフトウェアパッケージ格納モジュール２０４に格納されたファイルを実際に改変し得るインターフェースモジュール２０２のオペレーションに対し、ソフトウェアパッケージ格納モジュール２０４に格納されたファイルに対する意図されない改変を防ぐために、そのようなオペレーションは、ファイルのワーキングコピー（ｗｏｒｋｉｎｇ  ｃｏｐｙ）上で機能し得る。
【００３９】
パッチファイル（例えば、Ｗｉｎｄｏｗｓ（登録商標）  Ｉｎｓｔａｌｌｅｒ  Ｐａｔｃｈ（「ＭＳＰ」）ファイル）は、既存のインストールされたソフトウェアパッケージにパッチ処理を施したり更新したりする自立型のファイルである。変換ファイル（例えば、Ｗｉｎｄｏｗｓ（登録商標）  Ｉｎｓｔａｌｌｅｒ  Ｔｒａｎｓｆｏｒｍ（「ＭＳＴ」）ファイル）は、ソフトウェアパッケージのインストールの間に、インストールの挙動を変化させるように独立して適用され得るファイルである。インターフェースモジュール２０２は、パッチファイルまたは変換ファイルとソフトウェアパッケージ格納モジュール２０４内の既存のソフトウェアパッケージとの間の関係を決定し、かつユーザ１００がソフトウェアパッケージ格納モジュール２０４内の特定のソフトウェアパッケージにこれらのファイルを追加することを可能にすることによって、パッチファイルまたは変換ファイルをソフトウェアパッケージ格納モジュール２０４にインポートするように、構成される。例えば、インターフェースモジュール２０２は、パッチファイルおよび／または変換ファイルを格納するためのソフトウェアパッケージ格納モジュール２０４内の適切な位置を識別し、パッチファイルおよび／または変換ファイルに関連付けられた特定の外部ファイルの位置を決定し、それらをソフトウェアパッケージ格納モジュール２０４にインポートし、パッチファイルおよび／または変換ファイルをソフトウェアパッケージ格納モジュール２０４にコピーし、パッチファイルおよび／または変換ファイルに関連付けられた特性（例えば、ディレクトリ構造、開発者、名前、バージョン、言語、ビルドナンバー、公開日、等）をソフトウェアパッケージ特性格納モジュール２０６にコピーするように構成される。ソフトウェアパッケージ格納モジュール２０４にインポートされ得るその他のファイル（および、ソフトウェアパッケージ特性格納モジュール２０６にインポートされ得る上記ファイルに関連付けられた特性）は、実行ファイル、オペレーティングシステムのスナップショット、拡張マークアップ言語（「ＸＭＬ」）ファイル、Ｗｉｎｄｏｗｓ（登録商標）  Ｉｎｓｔａｌｌｅｒ  ｆｉｌｅ（「ＭＳＩ」）ファイル、Ｍａｒｉｍｂａ  ｎａｔｉｖｅ  ｃｈａｎｎｅｌ  ｐａｃｋａｇｅｒ（「ＮＣＰ」）ファイル、およびマージモジュール（「ＭＳＭ」）ファイルを含むが、これらには限定されない。
【００４０】
図５は、一実施形態にしたがう、ソフトウェアパッケージのインストールを管理および組織するための例示的なプロセスの流れ図を示している。図５において、インターフェースモジュール２０２は、コンピュータソースからソフトウェアパッケージ３０２を受信する（５０２）。インターフェースモジュール２０２は、ソフトウェアパッケージ３０２の１つ以上の特性を識別する（５０４）。インターフェースモジュール２０２は、ソフトウェアパッケージ３０２の識別された１つ以上の特性を、第１の格納モジュール（例えば、ソフトウェアパッケージ特性格納モジュール２０６）に格納する（５０６）。インターフェースモジュール２０２は、ソフトウェアパッケージ３０２を、第２の格納モジュール（例えば、ソフトウェアパッケージ格納モジュール２０４）に格納する（５０８）。ソフトウェアパッケージ３０２の識別された特性に基づいて、インターフェースモジュール２０２は、ソフトウェアパッケージ３０２と第２の格納モジュールに格納された別のソフトウェアパッケージとの間の関係を識別する。例えば、インターフェースモジュール２０２は、ソフトウェアパッケージ３０２の特性にしたがって、ソフトウェアパッケージ３０２がその他のソフトウェアパッケージと実質的に類似していることを決定し得る。インターフェースモジュール２０２はまた、その他のソフトウェアパッケージの新しいバージョンとしてソフトウェアパッケージ３０２を指定したり、あるいは第２の格納モジュールにおけるその他のソフトウェアパッケージをソフトウェアパッケージ３０２で置き換えたりすることができる。一実施形態において、第２の格納モジュール内でのソフトウェアパッケージ３０２の位置は、ユーザ１００にアクセス可能ではない。
【００４１】
図６は、一実施形態にしたがう、本システムと共に用いるための例示的なコンピュータアーキテクチャを示している。コンピュータアーキテクチャ６００は、ユーザマシン１００、マシン１０４、配信システム１０６、および／またはソフトウェアパッケージ管理システム１０２（インターフェースモジュール２０２、ソフトウェアパッケージ格納モジュール２０４、ソフトウェアパッケージ特性格納モジュール２０６のいずれかを含む）を実装するために用いられ得る。アーキテクチャ６００の一実施形態は、情報を通信するためのシステムバス６２０、および情報を処理するための、バス６２０に接続されたプロセッサ６１０を含む。アーキテクチャ６００はさらに、プロセッサ６１０によって実行されるべき情報および命令を格納するための、バス６２０に接続されたランダムアクセスメモリ（ＲＡＭ）またはその他の動的な格納デバイス６２５（本明細書中では、メインメモリと称される）を含む。メインメモリ６２５はまた、プロセッサ６１０による命令の実行の間に、一時的な変数またはその他の中間的な情報を格納するためにも用いられ得る。アーキテクチャ６００はまた、プロセッサ６１０によって用いられる静的な情報および命令を格納するための、バス６２０に接続されたリードオンリーメモリ（ＲＯＭ）および／またはその他の静的格納デバイス６２６を含み得る。
【００４２】
データ格納デバイス６２７（例えば、磁気ディスクまたは光学ディスク、およびそれらに対応するドライブ）もまた、情報および命令を格納するために、コンピュータシステム６００に接続され得る。アーキテクチャ６００はまた、Ｉ／Ｏインターフェース６３０を介して、第２のＩ／Ｏバス６５０に接続され得る。複数のＩ／Ｏデバイス（表示デバイス６４３、入力デバイス（例えば、英数字入力デバイス６４２および／またはカーソル制御デバイス６４１）を含む）が、Ｉ／Ｏバス６５０に接続され得る。例えば、ウェブページおよびビジネス関連情報が、ユーザに対して表示デバイス６４３上に提示され得る。
【００４３】
通信デバイス６４０は、ネットワークを介してその他のコンピュータ（サーバまたはクライアント）にアクセスするためのものである。通信デバイス６４０は、モデム、ネットワークインターフェースカード、無線ネットワークインターフェース、またはその他の周知のインターフェースデバイス（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）、トークンリング、またはその他のタイプのネットワークに接続するために用いられるデバイス）を含み得る。
【００４４】
本発明の方法およびシステムは、ソフトウェア配信システムとの関連で記載されてきたが、当業者は、記載された技術は、様々なソフトウェアを効率的に管理および組織するための任意の状況において用いられ得ることを理解し得る。
【００４５】
ソフトウェアパッケージのインストールを管理および組織するための方法およびシステムが記載されてきた。本発明の方法およびシステムは、特定の例およびサブシステムとの関連で記載されてきたが、本発明の方法およびシステムがこれらの特定の例またはサブシステムに限定されず、同様にその他の実施形態にも及ぶことは当業者には明らかである。
【図面の簡単な説明】
【００４６】
【図１】図１〜図３は、一実施形態にしたがう、例示的なソフトウェアパッケージ管理システムのブロック図を示している。
【図２】図１〜図３は、一実施形態にしたがう、例示的なソフトウェアパッケージ管理システムのブロック図を示している。
【図３】図１〜図３は、一実施形態にしたがう、例示的なソフトウェアパッケージ管理システムのブロック図を示している。
【図４Ａ】図４Ａおよび図４Ｂは、一実施形態にしたがう、インターフェースモジュールの例示的なスクリーンショットを示している。
【図４Ｂ】図４Ａおよび図４Ｂは、一実施形態にしたがう、インターフェースモジュールの例示的なスクリーンショットを示している。
【図５】図５は、一実施形態にしたがう、ソフトウェアパッケージのインストールを管理および組織するための例示的なプロセスの流れ図を示している。
【図６】図６は、一実施形態にしたがう、本システムと共に用いるための例示的なコンピュータアーキテクチャを示している。
【図１】
2009510563.tif 000003
【図２】
2009510563.tif 000004
【図３】
2009510563.tif 000005
【図４Ａ】
2009510563.tif 000006
【図４Ｂ】
2009510563.tif 000007
【図５】
2009510563.tif 000008
【図６】
2009510563.tif 000009