ディスプレイデバイスと、通信インターフェースと、前記ディスプレイデバイスおよび前記通信インターフェースに結合された処理回路とを備えるコンピュータシステムであって、前記処理回路は、コンピュータシステムの1つまたは複数の構成の詳細を決定すること、前記通信インターフェースを介して、複数のソフトウェアプログラムのディレクトリを獲得することであって、各ソフトウェアプログラムは、前記ソフトウェアプログラムに関するシステム要件のセットに関連付けられること、および前記ディスプレイデバイスを介して、コンピュータシステムの前記構成の詳細に適合するシステム要件を有する各ソフトウェアプログラムを示すソフトウェアプログラムのリストを表示することであって、前記表示されるソフトウェアプログラムは、適合するソフトウェアプログラムを備えることを行うように適応される、コンピュータシステム。前記獲得されるディレクトリは、前記適合するソフトウェアプログラムの指示を含む請求項1に記載のコンピュータシステム。前記複数のソフトウェアプログラムの前記獲得されるディレクトリは、前記適合するソフトウェアプログラムの指示を伴わないソフトウェアプログラムのディレクトリを備え、前記処理回路は、前記複数のソフトウェアプログラムの前記ディレクトリの中で前記適合するソフトウェアプログラムを識別すること、および適合する各ソフトウェアプログラムを示すソフトウェアプログラムの前記リストを生成することを行うようにさらに適応される請求項1に記載のコンピュータシステム。ソフトウェアプログラムの前記表示されるリストは、前記適合するソフトウェアプログラムだけを備え、前記適合するソフトウェアプログラムは、前記表示されるリストの中に含まれることによって示される請求項1に記載のコンピュータシステム。ソフトウェアプログラムの前記表示されるリストは、前記適合するソフトウェアプログラムと、適合しない1つまたは複数のソフトウェアプログラムの両方を備え、前記適合するソフトウェアプログラムは、適合する各ソフトウェアプログラムに関連付けられた標識を含む請求項1に記載のコンピュータシステム。適合する各ソフトウェアプログラムに関連付けられる前記標識は、強調表示すること、前記適合するソフトウェアプログラムを前記生成されるリストの先頭に配置すること、星印、または矢印のうちの少なくとも1つを備える請求項5に記載のコンピュータシステム。コンピュータシステムにおいて動作する方法であって、前記コンピュータシステムの1つまたは複数の構成の詳細を決定すること、複数のソフトウェアプログラムのディレクトリを獲得することであって、各ソフトウェアプログラムは、前記ソフトウェアプログラムに関するシステム要件のセットに関連すること、および前記コンピュータシステムの前記構成の詳細に適合するシステム要件を有する各ソフトウェアプログラムを示すソフトウェアプログラムのリストを表示することであって、前記示されるソフトウェアプログラムは、適合するソフトウェアプログラムを備えることを備える方法。複数のソフトウェアプログラムの前記ディレクトリを獲得することは、前記適合するソフトウェアプログラムを示す複数のソフトウェアプログラムのディレクトリを獲得することを含み、ソフトウェアプログラムの前記リストを表示することは、前記複数のソフトウェアプログラムの前記獲得されたディレクトリを表示することを備える請求項7に記載の方法。複数のソフトウェアプログラムの前記ディレクトリを獲得することは、前記適合するソフトウェアプログラムの指示を伴わない複数のソフトウェアプログラムのディレクトリを獲得することを含み、前記方法は、前記複数のソフトウェアプログラムの前記ディレクトリの中で前記適合するソフトウェアプログラムを識別すること、および適合する各ソフトウェアプログラムを示すソフトウェアプログラムの前記リストを生成することをさらに備える請求項7に記載の方法。適合する各ソフトウェアプログラムを示すソフトウェアプログラムのリストを表示することは、前記適合するソフトウェアプログラムだけを備えるソフトウェアプログラムのリストを表示することを含む請求項7に記載の方法。適合する各ソフトウェアプログラムを示すソフトウェアプログラムのリストを表示することは、前記適合するソフトウェアプログラムと、適合しない1つまたは複数のソフトウェアプログラムの両方を備えるソフトウェアプログラムのリストを表示すること、および適合する各ソフトウェアプログラムに関連付けられた標識を表示することを含む請求項7に記載の方法。適合する各ソフトウェアプログラム関連付けられた標識を表示することは、強調表示、星印、または矢印から成る標識のグループから選択された少なくとも1つの標識を表示することを含む請求項11に記載の方法。コンピュータ可読プログラムコードで符号化されたコンピュータ可読媒体であって、前記プログラムコードは、コンピュータシステムの1つまたは複数の構成の詳細を決定するように動作可能な命令と、複数のソフトウェアプログラムのディレクトリを獲得するように動作可能な命令であって、各ソフトウェアプログラムは、前記ソフトウェアプログラムに関するシステム要件のセットに関連付けられる、命令と、前記コンピュータシステムの前記構成の詳細に適合するシステム要件を有する各ソフトウェアプログラムを示すソフトウェアプログラムのリストを表示するように動作可能な命令であって、前記表示されるソフトウェアプログラムは、適合するソフトウェアプログラムを備える、命令とを備えるコンピュータ可読媒体。複数のソフトウェアプログラムのディレクトリを獲得するように動作可能な前記命令は、前記適合するソフトウェアプログラムの指示を伴わないソフトウェアプログラムのディレクトリを獲得するように動作可能な命令を備え、前記コンピュータ可読媒体は、前記複数のソフトウェアプログラムの前記獲得されたディレクトリの中で前記適合するソフトウェアプログラムを識別するように動作可能な命令と、適合する各ソフトウェアプログラムを示すソフトウェアプログラムの前記リストを生成するように動作可能な命令とをさらに備える請求項13に記載のコンピュータ可読媒体。通信インターフェースと、複数のソフトウェアプログラムのカタログを格納する記憶媒体であって、各ソフトウェアプログラムは、前記ソフトウェアプログラムに関するシステム要件のセットに関連する、記憶媒体と、前記通信インターフェースおよび前記記憶媒体に結合された処理回路とを備えるサーバシステムであって、前記処理回路は、前記通信インターフェースを介して、遠隔システムに関連する1つまたは複数の構成の詳細を含む要求を受信すること、前記受信された構成の詳細に適合するシステム要件を有する各ソフトウェアプログラムを示すソフトウェアプログラムのリストを生成することあって、前記示されるソフトウェアプログラムは、適合するソフトウェアプログラムを備えること、および前記通信インターフェースを介して、適合する各ソフトウェアプログラムを示すソフトウェアプログラムの前記生成されたリストを含むディレクトリを伝達するように適応される、サーバシステム。前記伝達されたディレクトリの中のソフトウェアプログラムの前記リストは、前記カタログからの前記適合するソフトウェアプログラムと、前記カタログからの適合しないソフトウェアプログラムの両方を含む請求項15に記載のサーバシステム。前記伝達されるディレクトリの中のソフトウェアプログラムの前記リストは、前記示される適合するソフトウェアプログラムだけを含む請求項15に記載のサーバシステム。前記処理回路は、適合する各ソフトウェアプログラムに少なくとも1つの標識を関連付けることによって適合する各ソフトウェアプログラムを示すように適応される請求項15に記載のサーバシステム。適合する各ソフトウェアプログラムに関連付けられる前記少なくとも1つの標識は、強調表示すること、前記適合するソフトウェアプログラムを前記生成されるリストの先頭に配置すること、星印、または矢印のうちの少なくとも1つを備える請求項18に記載のサーバシステム。サーバシステムにおいて動作する方法であって、遠隔システムから要求を受信することであって、前記要求は、前記遠隔システムに関連する1つまたは複数の構成の詳細を含むこと、前記受信された構成の詳細に適合するシステム要件を有する各ソフトウェアプログラムを示すソフトウェアプログラムのリストを生成することであって、前記示されるソフトウェアプログラムは、適合するソフトウェアプログラムを備えること、および適合する各ソフトウェアプログラムを示すソフトウェアプログラムの前記生成されたリストを含むディレクトリを伝達することを備える方法。適合する各ソフトウェアプログラムを示すソフトウェアプログラムの前記リストを生成することは、カタログから、前記受信された構成の詳細に適合しないソフトウェアプログラムを選別して除くことを含む請求項20に記載の方法。適合する各ソフトウェアプログラムを示すソフトウェアプログラムの前記リストを生成することは、適合する各ソフトウェアプログラムに少なくとも1つの標識を関連付けることを含む請求項20に記載の方法。適合する各ソフトウェアプログラムに少なくとも1つの標識を関連付けることは、強調表示すること、星印、または矢印のうちの少なくとも1つを関連付けることを含む請求項22に記載の方法。コンピュータ可読プログラムコードで符号化されたコンピュータ可読媒体であって、前記プログラムコードは、遠隔システムから要求を受信するように動作可能な命令であって、前記要求は、前記遠隔システムに関連する1つまたは複数の構成の詳細を含む、命令と、前記受信された構成の詳細に適合するシステム要件を有する各ソフトウェアプログラムを示すソフトウェアプログラムのリストを生成するように動作可能な命令であって、前記示されるソフトウェアプログラムは、適合するソフトウェアプログラムを備える、命令と、適合する各ソフトウェアプログラムを示すソフトウェアプログラムの前記生成されたリストを含むディレクトリを伝達するように動作可能な命令とを備えるコンピュータ可読媒体。定義本明細書で使用される以下の用語、およびそれらの用語の変種は、そのような用語が使用される文脈によって異なる意味が明確に意図されない限り、以下に与えられる意味を有する。処理回路に関する~するように適応されたとは、処理回路が、何らかのプロセス、関数、ステップ、またはルーチンを実行するように構成されること、使用されること、実施されること、またはプログラミングされること、ならびに以上の任意の組み合わせを指す。カタログとは、アイテム例えば、ソフトウェアプログラムのリストを指す。本明細書で使用されるカタログは、アイテムの名前または他の識別子を含み得る。一部の実装形態において、カタログは、名前または他の識別子に加えて、アイテムの記述、またはアイテムと関係する他の情報を含み得る。コンピュータシステムおよびソフトウェアプログラムに関する適合するとは、コンピュータシステムが、特定のソフトウェアプログラムのシステム要件を有すること、または満たすことを指す。つまり、或る特定のソフトウェアプログラムは、或る特定のコンピュータシステムに適合することが、そのコンピュータシステムが、少なくとも最低限の、さらに/または推奨される構成の詳細例えば、ハードウェア構成要素および/またはソフトウェアリソースを有する場合、可能である。コンピュータシステムとは、ソフトウェアを実行するように適応させられ、さらに通信ネットワークを介して通信するように適応された任意の電子データ処理デバイスを指す。例として、限定としてではなく、コンピュータシステムには、デスクトップコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、タブレット例えば、iPAD登録商標、パーソナルメディアプレーヤ例えば、iPOD登録商標、ZUNE登録商標、スマートフォン例えば、iPHONE登録商標、DROID登録商標、BLACKBERRY登録商標、または他のデータ処理デバイスが含まれ得る。コンピュータシステムの構成の詳細とは、コンピュータシステムの1つまたは複数のハードウェア構成要素および/またはソフトウェアリソースを指す。例として、限定としてではなく、構成の詳細には、プロセッサパフォーマンス能力例えば、プロセッサ速度、プロセッサタイプ、メモリ能力、利用可能な二次ストレージ例えば、ハードディスクスペース、ディスプレイ能力およびグラフィックス能力例えば、ディスプレイ解像度、グラフィックスカードパフォーマンス、オペレーティングシステム、利用可能なアプリケーションプログラミングインターフェースAPI、ドライバ、または他のソフトウェアプログラム例えば、ウェブブラウザもしくは他のハードウェア例えば、キーボード、ポインティングデバイス、カメラ、ネットワークデバイスなどの周辺装置が含まれ得る。また、他のハードウェアおよび/またはソフトウェアの詳細/能力が、構成の詳細という用語によって含まれることも可能である。ソフトウェアプログラムとは、何を行うべきかをプロセッサに告げる命令を与えるプロセッサ実行可能コードもしくはコードセグメントのコレクションを指す。本明細書で使用されるソフトウェアプログラムという用語には、ソフトウェア、ファームウェア、ミドルウェア、テストウェア、またはマイクロコード、および以上の任意の組み合わせが含まれ得る。例として、限定としてではなく、ソフトウェアの例には、アプリケーションソフトウェア、システムソフトウェア、プログラミングソフトウェア、およびゲームソフトウェア例えば、ビデオゲームまたはコンピュータゲームのためのが含まれ得る。ソフトウェアプログラムに関するシステム要件とは、特定のソフトウェアプログラムが効率的に、さらに/または正しく動作する必要条件と考えられるコンピュータシステム上のハードウェア構成要素および/または他のソフトウェアリソースを指す。そのような必要条件は、しばしば、ソフトウェア発売元またはソフトウェア開発者によって示され、さらに、通常、絶対的な規則ではなく、ガイドラインを示す。本開示の様々な実施形態によれば、システム要件とは、最低限のシステム要件、および/または推奨されるシステム要件を指し得る。最低限のシステム要件には、ソフトウェアプログラムが意図されるとおりに動作するのに要求される最低限のハードウェア構成要素および/またはソフトウェアリソースが含まれる。推奨されるシステム要件には、ソフトウェアプログラムが、意図される、または所望されるパフォーマンスレベルで動作するための示唆されるハードウェア構成要素および/またはソフトウェアリソースが含まれる。例として、限定としてではなく、いくつかのシステム要件には、処理能力要件、メモリ要件、二次ストレージ要件例えば、ハードディスクスペース、ディスプレイ要件例えば、ディスプレイ解像度、グラフィックスカード要件、グラフィックスカードメモリ、オペレーティングシステム要件、アプリケーションプログラミングインターフェースAPI要件、ドライバ要件、または他のソフトウェアプログラム例えば、ウェブブラウザまたは他のハードウェア例えば、キーボード、ポインティングデバイス、カメラ、ネットワークデバイスなどの周辺装置、ならびに以上の1つまたは複数の要件の組み合わせが含まれ得る。また、様々なタイプのソフトウェアプログラムに関する他のハードウェア要件および/またはソフトウェア要件が含まれることも可能である。本明細書で使用される、備えるという用語、ならびに備えたcomprisingおよび備えるcomprisesなどの、この用語の変種は、その他の追加要素、構成要素、整数、またはステップを排除することを意図していない。本明細書で使用される或るa、anおよびそのという用語、および類似した指示語は、文脈におけるそれらの語の用法がそうでないことを示さない限り、単数形と複数形の両方を範囲に含むものと解釈されるものとする。システム概要本開示の様々な実施形態は、ソフトウェアプログラムの配布例えば、購入すること、および販売することのための市場を実施するための方法およびシステムを対象とする。少なくとも1つの特徴によれば、ソフトウェアプログラムが、特定のソフトウェアプログラムが特定のコンピュータシステムに適合することを示すように識別され、さらにリストアップされる。図1は、1つまたは複数のコンピュータシステムが通信ネットワーク内でどのように動作するかを示すブロック図である。ソフトウェア配信システム100が、インターネット、イントラネット、他の通信ネットワーク、または様々な組み合わせなどの通信ネットワーク106を介して通信するように結合された、1つまたは複数のコンピュータシステム102と、1つまたは複数のサーバシステム104とを含み得る。サーバシステム104は、複数のソフトウェアプログラムのカタログを含み、さらにコンピュータシステム102は、コンピュータシステム102のユーザに表示されるべき複数のソフトウェアプログラムのディレクトリを獲得するために、通信ネットワーク106を介してサーバシステム104と通信するように適応されることが可能である。図2は、図1のコンピュータシステムおよびサーバシステムの選択された特徴および選択された構成要素のブロック図を示す。サーバシステム104は、認証サーバエンジン202、カタログサーバエンジン204、およびコンテンツサーバエンジン206などの複数のサーバエンジンを含み得る。図2に示される実施形態において、コンテンツサーバエンジン206は、ソフトウェアプログラムのカタログを包含することが可能である。カタログの中のソフトウェアプログラムのそれぞれは、最低限の、および/または示唆されるシステム要件のセットに関連する。そのようなシステム要件は、カタログサーバエンジン204を介してソフトウェアプログラムの開発者または発売元によって示されることが可能である。少なくとも1つの特徴によれば、サーバシステム104は、ソフトウェア開発者またはソフトウェア発売元が、特定のソフトウェアプログラムに関連付けられるべきそのようなシステム要件指定を直接に入力することを可能にするように適応されることが可能である。例えば、ソフトウェア開発者またはソフトウェア発売元が、開発者ウェブポータルにログインし、さらにソフトウェア開発者またはソフトウェア発売元の新たな、またはアップグレードされたソフトウェアプログラムに関してカタログサーバエンジン204の中に新製品リストを作成することが可能である。開発者または発売元は、新たな、またはアップグレードされたソフトウェアプログラムに関連付けられた必要なファイル例えば、プログラムファイルまたはプログラムインストールファイルをカタログサーバエンジン204にアップロードすることができる。新たな、またはアップグレードされたソフトウェアプログラムをカタログサーバエンジン204にアップロードする時点で、開発者または発売元は、カタログサーバエンジン204における製品リストの中で、そのソフトウェアプログラムを実行するためのシステム要件が何であるかを指定する。そのソフトウェアプログラムが正常にアップロードされた後、サーバシステム104は、カタログにそのソフトウェアプログラムを追加することができる。少なくとも1つの実装形態において、サーバシステム104は、ユーザが、情報および特徴に遠隔でアクセスすることを許し、さらにコンピュータシステム102などのユーザのコンピュータシステム上に常駐するソフトウェアを使用する場合に生じるのと同一のワークフローに携わることを許すために、マイクロソフト社の.NET環境などのプラットフォーム、例えば、WCFウインドウズコミュニケーションファウンデーションWindowsCommunicationFoundationフレームワークを使用して動作することが可能である。コンピュータシステム102は、サーバシステム104と通信し、さらにソフトウェアプログラムのカタログからのソフトウェアプログラムの少なくともいくつかのソフトウェアプログラムのリストを含むディレクトリを獲得するように適応される。少なくとも1つの実施形態によれば、コンピュータシステム102は、認証サーバエンジン202を介してサーバシステム104からカタログ全体のリストを備えるディレクトリを獲得することができる。そのような実施形態において、コンピュータシステム102は、コンピュータシステム102の構成の詳細例えば、コンピュータシステム102のハードウェア構成要素および/またはソフトウェアリソースに適合するシステム要件を有するソフトウェアプログラムを示すことが可能である。1つまたは複数の代替の実施形態によれば、サーバシステム104はコンテンツサーバエンジン206を介して、コンピュータシステム102の特定の構成の詳細に従ってカタログを選別することができ、さらに、コンピュータシステム102の構成の詳細に適合するソフトウェアプログラムが示されるリストを備えるディレクトリをコンピュータシステム102に認証サーバ202を介して供給することができる。いずれにしても、コンピュータシステム102は、コンピュータシステム102に適合するソフトウェアプログラムを示すリストを表示するように適応される。表示されるリストは、適合するソフトウェアプログラムとして示されるソフトウェアプログラムだけを備えることが可能である。他の実施形態において、表示されるリストは、適合するソフトウェアプログラムと、適合しないソフトウェアプログラムとを備えることが可能であり、適合するソフトウェアプログラムは、1つまたは複数の標識によってリストの中で識別される。例えば、適合するソフトウェアプログラムは、強調表示されること、適合されるソフトウェアプログラムが先にリストアップされて並べ替えられること、星印によって示されること、矢印によって示されること、または他の任意の適切な標識もしくは標識の組み合わせによって示されることが可能である。ソフトウェアプログラムの表示されるリストを使用して、ユーザは、ユーザのコンピュータシステム102に適合するソフトウェアプログラムをブラウズすることができる。ユーザは、所望されるソフトウェアプログラムを識別した場合、ユーザのコンピュータシステム102にインストールするためにそのソフトウェアプログラムをリストからダウンロードすることができる。図3は、適合するソフトウェアプログラムがサーバシステムによって示される少なくとも1つの実施形態によるコンピュータシステムに適合するソフトウェアプログラムのリストの識別および表示を例示する流れ図である。この例において、図1および図2のコンピュータシステム102およびサーバシステム104が、例示目的で使用される。適合するソフトウェアプログラムの識別および表示の一環として、コンピュータシステム102が、構成検出モジュールをインストールすることが可能である302。そのような構成検出モジュールは、一部の実施形態によれば、コンピュータシステム102によって実行されると、コンピュータシステム102に、コンピュータシステム102に関連する1つまたは複数の構成の詳細を獲得させるソフトウェアアプリケーションを備え得る。構成検出モジュールがインストールされて、構成検出モジュールは、コンピュータシステム102に、1つまたは複数の構成の詳細に関してスキャンさせることが可能である304。例として、限定としてではなく、コンピュータシステム102は、プロセッサパフォーマンス能力例えば、プロセッサ速度、プロセッサタイプ、メモリ能力、利用可能な二次ストレージ例えば、ハードディスクスペース、ディスプレイ能力およびグラフィックス能力例えば、ディスプレイ解像度、グラフィックスカードパフォーマンス、オペレーティングシステム、利用可能なアプリケーションプログラミングインターフェースAPI、ドライバ、または他のソフトウェアプログラム例えば、ウェブブラウザもしくは他のハードウェア例えば、キーボード、ポインティングデバイス、カメラ、ネットワークデバイスなどの周辺装置を含む1つまたは複数の構成の詳細に関してスキャンすることが可能である。また、その他のハードウェアおよび/またはソフトウェアの詳細/能力が、構成の詳細に関するスキャン中に識別されることも可能である。コンピュータシステム102に関連する構成の詳細が発見された後、ソフトウェアプログラムのリストを要求するメッセージが、コンピュータシステム102からサーバシステム104に伝送され得る306。このメッセージは、発見された構成の詳細のうちの1つまたは複数をさらに含み得る。サーバシステム104が、ソフトウェアプログラムのリストを求める要求、および構成の詳細を受信することが可能である308。図1に関連して前述したとおり、サーバシステム104は、複数のソフトウェアプログラムのカタログを含む。コンピュータシステム102から受信されたシステム構成の詳細を使用して、サーバシステム104は、適合するソフトウェアプログラムを示すリストを生成することができる310。例えば、サーバシステム104は、カタログから、受信されたシステム構成の詳細に適合するシステム要件を有する各ソフトウェアプログラムを識別することができる。少なくとも1つの実装形態において、サーバシステム104は、その1つまたは複数のシステム構成の詳細を使用して、コンピュータシステム102に適合しないソフトウェアプログラムを選別して除くことによって、適合するソフトウェアプログラムを識別し、適合するソフトウェアプログラムだけを備えるリストがもたらされることが可能である。別の実装形態において、サーバシステム104は、その1つまたは複数のシステム構成の詳細を使用して、適合する各ソフトウェアプログラムに標識を与えることができる。例えば、カタログの中の適合する各ソフトウェアプログラムが強調表示されることが可能であり、カタログが、適合するソフトウェアプログラムが先頭に配置されて並べ替えられることが可能であり、適合する各ソフトウェアプログラムの隣に星印または矢印が位置付けられることが可能であり、またはカタログからの適合するソフトウェアプログラムを示す他の任意の手段、および以上の組み合わせが可能である。適合するソフトウェアプログラムを示すリストを含むディレクトリが、サーバシステム104からコンピュータシステム102に伝送される312。適合するソフトウェアプログラムを示すリストを含む、伝達されるディレクトリは、コンピュータシステム102によって受信され314、さらにコンピュータシステム102が、ソフトウェアプログラムのリストを表示することが可能である316。このようにして、コンピュータシステム102のユーザは、コンピュータシステム102の構成の詳細を知る必要なしに、1つまたは複数のソフトウェアプログラムのリストをブラウズすることができ、さらにコンピュータシステム102に適合しているものとして示されるソフトウェアプログラムを容易に識別することができる。図4は、適合するソフトウェアプログラムがコンピュータシステムによって示される少なくとも1つの実施形態によるコンピュータシステムに適合するソフトウェアプログラムのリストの識別および表示を例示する流れ図である。この例において、図1のコンピュータシステム102およびサーバシステム104が、例示目的で再び使用される。適合するソフトウェアプログラムの識別および表示の一環として、コンピュータシステム102が、構成検出モジュールをインストールすることが可能である402。構成検出モジュールは、一部の実施形態によれば、コンピュータシステム102によって実行されると、コンピュータシステム102に、コンピュータシステム102に関連する1つまたは複数のシステム構成の詳細を獲得させるソフトウェアアプリケーションを備え得る。構成検出モジュールがインストールされると、構成検出モジュールは、コンピュータシステム102に、1つまたは複数の構成の詳細に関してスキャンさせることが可能である404。例として、限定としてではなく、コンピュータシステム102は、プロセッサパフォーマンス能力例えば、プロセッサ速度、プロセッサタイプ、メモリ能力、利用可能な二次ストレージ例えば、ハードディスクスペース、ディスプレイ能力およびグラフィックス能力例えば、ディスプレイ解像度、グラフィックスカードパフォーマンス、オペレーティングシステム、利用可能なアプリケーションプログラミングインターフェースAPI、ドライバ、または他のソフトウェアプログラム例えば、ウェブブラウザもしくは他のハードウェア例えば、キーボード、ポインティングデバイス、カメラ、ネットワークデバイスなどの周辺装置を含む1つまたは複数の構成の詳細に関してスキャンすることが可能である。また、その他のハードウェアおよび/またはソフトウェアの詳細/能力が、構成の詳細に関するスキャン中に識別されることも可能である。前述したとおり、サーバシステム104は、複数のソフトウェアプログラムのカタログを含む。コンピュータシステム102が、ソフトウェアプログラムのカタログを要求するメッセージをサーバシステム104に伝達することが可能である406。サーバシステム104が、ソフトウェアプログラムのカタログを求める要求を受信することが可能であり408、さらにユーザシステム104が、ソフトウェアプログラムのカタログを備えるディレクトリをコンピュータシステム102に伝達することが可能である410。ソフトウェアプログラムのカタログを有する伝送されたディレクトリが、コンピュータシステム102によって受信される412。図4に示される実装形態において、伝送されるカタログは、適合するソフトウェアプログラムの指示を全く含んでいない。伝送されるカタログは、ソフトウェアプログラムが適合するか、適合しないかの指示を全く伴わずに、単に複数のソフトウェアプログラムを含む。コンピュータシステム102が、カタログから、システム構成の詳細に適合するシステム要件を有する各ソフトウェアプログラムを示すリストを作成することが可能である414。例えば、コンピュータシステム102は、システムスキャンから獲得されたシステム構成の詳細を使用して、カタログから適合する各ソフトウェアプログラムを識別することができる。少なくとも1つの実装形態において、コンピュータシステム102は、その1つまたは複数のシステム構成の詳細を使用して、コンピュータシステム102に適合しないソフトウェアプログラムを選別して除くことによって、適合するソフトウェアプログラムを識別して、適合するソフトウェアプログラムだけを備えるリストがもたらされることが可能である。別の実装形態において、コンピュータシステム102は、その1つまたは複数のシステム構成の詳細を使用して、適合する各ソフトウェアプログラムに標識を関連付けることができる。例えば、カタログの中の適合する各ソフトウェアプログラムが強調表示されることが可能であり、カタログが、適合するソフトウェアプログラムが先頭に配置されて並べ替えられることが可能であり、適合する各ソフトウェアプログラムの隣に星印または矢印が位置付けられることが可能であり、またはカタログからの適合するソフトウェアプログラムを示す他の任意の手段、および以上の組み合わせが用いられることが可能である。次に、適合するソフトウェアプログラムのリストが、コンピュータシステム102によって表示される416。コンピュータシステム102のユーザは、やはり、コンピュータシステム102の構成の詳細を知る必要なしに、1つまたは複数のソフトウェアプログラムのリストをブラウズすることができ、さらにコンピュータシステム102に適合するソフトウェアプログラムを容易に識別することができる。コンピュータシステム図5は、1つまたは複数の実施形態によるコンピュータシステム500の選択された構成要素を示すブロック図である。コンピュータシステム500は、図1~図4に関連して本明細書で前述したコンピュータシステム102の特徴のすべてを実行するように適応されることが可能である。図5に示されるとおり、コンピュータシステム500は、記憶媒体504、通信インターフェース506、およびディスプレイ508に結合された処理回路502を含み得る。コンピュータシステム500は、構成検出モジュール510をさらに含み得る。さらなる特徴および構成要素、より少ない特徴および構成要素、および/または異なる特徴および構成要素が、様々な実施形態によるコンピュータシステム500に含まれることが可能であることに留意されたい。処理回路502は、データを獲得し、処理し、さらに/または送り、データアクセスおよびデータ格納を制御し、コマンドを発行し、さらに所望される他の動作を制御するように整えられる。処理回路502は、少なくとも1つの実施形態において適切な媒体によって提供される所望のプログラミングを実施するように構成された回路を備え得る。例えば、処理回路502は、例えば、ソフトウェア命令および/またはファームウェア命令を含む実行可能命令を実行するように構成されたプロセッサ、コントローラ、複数のプロセッサおよび/または他の構造、および/またはハードウェア回路の1つまたは複数として実装され得る。処理回路502の実施形態には、汎用プロセッサ、デジタルシグナルプロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGAまたは他のプログラマブル論理構成要素、ディスクリートのゲートもしくはトランジスタロジック、ディスクリートのハードウェア構成要素、または本明細書で説明される機能を実行するように設計された以上の任意の組み合わせが含まれ得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであることが可能である。また、プロセッサは、DSPとマイクロプロセッサの組み合わせ、いくつかのマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または他の任意のそのような構成などのコンピューティング構成要素の組み合わせとして実施されることも可能である。処理回路502のこれらの例は、例示を目的としており、さらに本開示の範囲に含まれる他の適切な構成も企図される。記憶媒体504は、実行可能コードもしくは命令例えば、ソフトウェア、ファームウェア、電子データ、データベース、または他のデジタル情報などの、プログラミングおよび/またはデータを格納するための1つまたは複数のデバイスを表し得る。記憶媒体504は、汎用プロセッサまたは専用プロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。例として、限定としてではなく、記憶媒体504には、読み取り専用メモリROM、ランダムアクセスメモリRAM、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を格納するための他の一時的でないコンピュータ可読媒体が含まれ得る。記憶媒体504は、処理回路502が、記憶媒体504から情報を読み取ること、および記憶媒体504に情報を書き込むことができるように処理回路502に結合され得る。代替として、記憶媒体504は、処理回路502と一体であることが可能である。通信インターフェース506は、コンピュータシステム500のワイヤレス通信および/または有線通信を実施するように構成される。例えば、一部の実施形態において、通信インターフェース506は、通信ネットワーク例えば、図1の通信ネットワーク106によって1つまたは複数の遠隔デバイス例えば、図1~図4のサーバシステム104、および他のデバイスに関して双方向で情報を通信するように構成され得る。通信インターフェース506は、アンテナに結合されることが可能であり、さらにワイヤレスデバイスとワイヤレス通信するためのワイヤレストランシーバ回路を含むことが可能であり、さらにネットワークインターフェースカードNIC、シリアル接続もしくはパラレル接続、USBポート、ファイヤワイヤFirewireインターフェース、フラッシュメモリインターフェース、フロッピーディスクドライブ、あるいは公共例えば、インターネットネットワークおよび/またはプライベートネットワーク、もしくは他の有線設備に関して通信するための他の任意の設備を含むことも可能である。ディスプレイ508は、ユーザに画像例えば、ソフトウェアプログラムのリストを視覚的に提示するように構成される。例えば、ディスプレイ508には、モニタ、テレビ、映写機、またはユーザにグラフィックスを視覚的に提示するための他のデバイスが含まれ得る。コンピュータシステム500は、構成検出モジュール510をさらに含み得る。構成検出モジュール510は、コンピュータシステム500内部に例えば、記憶媒体504に格納されて存在すること、コンピュータシステム500の外部に例えば、サーバシステムに存在すること、または内部と外部の組み合わせで存在することが可能であるため、破線で示される。いずれにしても、構成検出モジュール510は、処理回路502に、コンピュータシステム500の1つまたは複数の構成の詳細を識別させるように適応される。例えば、構成検出モジュール510は、処理回路502によってアクセスされ得るプロセッサ実行可能命令を備えることが可能である。一部の実装形態において、構成検出モジュール510は、ソフトウェア、ソフトウェア、ファームウェア、ミドルウェア、テストウェア、マイクロコード、またはハードウェア、および以上の任意の組み合わせを備え得る。前述したとおり、コンピュータシステム500は、図1~図4に関連して前述したコンピュータシステム102の特徴のうちの1つまたは複数を実行するように適応されることが可能である。コンピュータシステム500などのコンピュータシステム上で動作する方法の少なくとも1つの実施形態の例が、図6の流れ図に示される。図5と図6をともに参照すると、方法600が、ステップ602でコンピュータシステムの1つまたは複数の構成の詳細を決定することを含むことが可能である。例えば、処理回路502が、コンピュータシステム500の構成の詳細を決定するように適応されることが可能である。少なくとも1つの実施形態において、処理回路502は、処理回路502に、コンピュータシステム500の1つまたは複数の構成の詳細を識別させることができる、構成検出モジュール510に関連する命令を実行することができる。その1つまたは複数の構成の詳細を識別すると、コンピュータシステム500は、構成の詳細が正しいという確認をユーザに要求することが可能である。ユーザが、構成の詳細が正しくないと決定した場合、ユーザは、構成の詳細のうちの1つまたは複数を手動で変更するオプションを有することが可能である。構成の詳細は、将来のアクセスおよび使用のために、構成ファイルとして、例えば、記憶媒体504の中に、またはサーバシステム104における記憶媒体の中に格納され得る。ステップ604で、コンピュータシステム500が、複数のソフトウェアプログラムのディレクトリを獲得することが可能である。例えば、処理回路502が、通信インターフェース506を介してその複数のソフトウェアプログラムのディレクトリを獲得することができる。例えば、処理回路502は、ソフトウェアプログラムのリストを求める要求を含む伝送を遠隔サーバに送ることによって、さらにその複数のソフトウェアプログラムのディレクトリを含む伝送を遠隔サーバから受信することによって、その複数のソフトウェアプログラムのディレクトリを獲得することが可能である。ソフトウェアプログラムのディレクトリは、一部の実装形態では、ソフトウェアプログラムがコンピュータシステム500に適合するかどうかの指示を伴わずに、適合するソフトウェアプログラムと適合しないソフトウェアプログラムの両方を含むソフトウェアプログラムのカタログを備え得る。他の実装形態において、ソフトウェアプログラムのディレクトリは、コンピュータシステム500の構成の詳細に適合する各ソフトウェアプログラムを既に示しているリストを備え得る。ソフトウェアプログラムの獲得されるディレクトリが、適合するソフトウェアプログラムの指示を伴わないソフトウェアプログラムのカタログを備える実装形態において、方法500は、カタログの中でコンピュータシステム500に適合するソフトウェアプログラムが識別されるオプションのステップ606を含み得る。適合する各ソフトウェアプログラムを識別することは、処理回路502が、各ソフトウェアプログラムに関連するシステム要件を評価すること、およびシステム要件を構成の詳細と比較することを含み得る。オプションのステップ608で、適合する各ソフトウェアプログラムを示すリストが生成され得る。例えば、その1つまたは複数のシステム構成の詳細が、コンピュータシステム500に適合しないソフトウェアプログラムを選別して除くのに使用され得る。つまり、処理回路502は、或るソフトウェアプログラムが適合していると決定すると、単にそのソフトウェアプログラムをリストに追加することによって、そのソフトウェアプログラムが適合しているという指示を与えることができる。そのような実施形態において、生成されるリストは、適合するソフトウェアプログラムだけを備え得る。別の例において、標識が、適合する各ソフトウェアプログラムに関連付けられることが可能である。つまり、処理回路502は、或るソフトウェアプログラムが適合していると決定すると、リストの中でそのソフトウェアプログラムに標識を関連付けることによって、そのソフトウェアプログラムが適合しているという指示を与えることができる。そのような実施形態において、生成されるリストは、適合するソフトウェアプログラムと適合しないソフトウェアプログラムの両方を備え得るが、ユーザは、それらの標識によって適合するソフトウェアプログラムを識別することができる。ステップ608でリストが生成された後例えば、ディレクトリがソフトウェアプログラムのカタログを備える実装形態において、またはステップ604でディレクトリが獲得された後例えば、ディレクトリが、適合する各ソフトウェアプログラムを既に示しているリストを備える実装形態において、適合するソフトウェアプログラムを示すリストが、ステップ610で表示され得る。例えば、処理回路502が、ディスプレイ508を用いて適合する各ソフトウェアプログラムを示すソフトウェアプログラムのリストを表示するように適応されることが可能である。サーバシステム図7は、1つまたは複数の実施形態によるサーバシステム700の選択された構成要素を示すブロック図である。サーバシステム700は、図1~図4に関連して本明細書で前述したサーバシステム104の特徴のすべてを実行するように、さらに/または含むように適応されることが可能であり、さらに図2に関連して説明される様々なサーバエンジンを含むことが可能である。図7に示されるとおり、サーバシステムは、記憶媒体704および通信インターフェース706に結合された処理回路702を含み得る。処理回路702は、データを獲得し、処理し、さらに/または送り、データアクセスおよびデータ格納を制御し、コマンドを発行し、さらに所望される他の動作を制御するように整えられる。処理回路702は、少なくとも1つの実施形態において適切な媒体によって提供される所望されるプログラミングを実施するように構成された回路を備え得る。例えば、処理回路702は、例えば、ソフトウェア命令および/またはファームウェア命令を含む実行可能命令を実行するように構成されたプロセッサ、コントローラ、複数のプロセッサおよび/または他の構造、および/またはハードウェア回路の1つまたは複数として実装され得る。処理回路702の実施形態には、汎用プロセッサ、デジタルシグナルプロセッサDSP、特定用途向け集積回路ASIC、フィールドプログラマブルゲートアレイFPGAまたは他のプログラマブル論理構成要素、ディスクリートのゲートもしくはトランジスタロジック、ディスクリートのハードウェア構成要素、または本明細書で説明される機能を実行するように設計された以上の任意の組み合わせが含まれ得る。汎用プロセッサは、マイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであることが可能である。また、プロセッサは、DSPとマイクロプロセッサの組み合わせ、いくつかのマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または他の任意のそのような構成などのコンピューティング構成要素の組み合わせとして実施されることも可能である。処理回路702のこれらの例は、例示を目的としており、さらに本開示の範囲に含まれる他の適切な構成も企図される。記憶媒体704は、実行可能コードもしくは命令例えば、ソフトウェア、ファームウェア、電子データ、データベース、または他のデジタル情報などの、プログラミングおよび/またはデータを格納するための1つまたは複数のデバイスを表し得る。データベースの限定的でない例には、複数のソフトウェアプログラムのカタログ708が含まれ得る。記憶媒体704は、汎用プロセッサまたは専用プロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。例として、限定としてではなく、記憶媒体704には、読み取り専用メモリROM、ランダムアクセスメモリRAM、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、および/または情報を格納するための他の一時的でないコンピュータ可読媒体が含まれ得る。記憶媒体704は、処理回路702が、記憶媒体704から情報を読み取ること、および記憶媒体704に情報を書き込むことができるように処理回路702に結合され得る。代替として、記憶媒体704は、処理回路702と一体であることが可能である。一実施形態において、ソフトウェアプログラムのより大きいカタログ、または完全なカタログが、異なるサーバシステム上に格納され、この場合、少なくとも、コンピュータシステム500に供給されるべきソフトウェアプログラムは、コンピュータシステム500に送られるのに先立って、好ましくは、その異なるサーバシステムからサーバシステム700に転送され、さらにサーバシステム700上の少なくともRAMメモリの中に、例えば、カタログ708として格納される。通信インターフェース706は、サーバシステム700のワイヤレス通信および/または有線通信を実施するように構成される。例えば、一部の実施形態において、通信インターフェース706は、通信ネットワーク例えば、図1の通信ネットワーク106によって1つまたは複数の遠隔デバイス例えば、図1~図4のコンピュータシステム102に関して双方向で情報を通信するように構成され得る。通信インターフェース706は、アンテナに結合されることが可能であり、さらにワイヤレスデバイスとワイヤレス通信するためのワイヤレストランシーバ回路を含むことが可能であり、さらにネットワークインターフェースカードNIC、シリアル接続もしくはパラレル接続、USBポート、ファイヤワイヤFirewireインターフェース、フラッシュメモリインターフェース、フロッピーディスクドライブ、あるいは公共例えば、インターネットネットワークおよび/またはプライベートネットワーク、もしくは他の有線設備に関して通信するための他の任意の設備を含むことも可能である。前述したとおり、サーバシステム700は、図1~図4に関連して前述したサーバシステム104の特徴のうちの1つまたは複数を実行するように適応されることが可能である。サーバシステム700などのサーバシステム上で動作する方法の少なくとも1つの実施形態の例が、図8の流れ図に示される。図7および図8をともに参照すると、方法800が、ステップ802で、遠隔システムに関連する1つまたは複数の構成の詳細を含む要求を受信することを含み得る。例えば、処理回路702が、通信インターフェース706を介して、コンピュータシステム102図1~図4、400図4などの遠隔システムに関連する1つまたは複数の構成の詳細を伴う要求を受信するように適応されることが可能である。この要求が受信されると、ステップ804で、ソフトウェアプログラムのリストが生成されることが可能であり、このリストは、受信された1つまたは複数の構成の詳細に適合する各ソフトウェアプログラムを示す。例えば、処理回路702が、記憶媒体704の中に格納されたカタログ708から、受信された構成の詳細に適合しないソフトウェアプログラムを選別して除くように適応されることが可能である。つまり、処理回路702は、或るソフトウェアプログラムが適合していると決定すると、単にそのソフトウェアプログラムをリストに追加することによって、そのソフトウェアプログラムが適合しているという指示を与えることができる。そのような実施形態において、生成されるリストは、適合するソフトウェアプログラムだけを備え得る。別の例において、処理回路702は、カタログ708の中で適合する各ソフトウェアプログラムに少なくとも1つの標識を関連付けるように適応されることが可能である。そのような実施形態において、生成されるリストは、適合するソフトウェアプログラムと適合しないソフトウェアプログラムの両方を備え得るが、ユーザは、標識によって適合するソフトウェアプログラムを識別することができる。ステップ806で、サーバシステム700が、適合する各ソフトウェアプログラムを示すようにカスタマイズされたソフトウェアプログラムの生成されたリストを含むディレクトリを、遠隔システムに伝達することが可能である。例えば、処理回路702が、ソフトウェアプログラムの生成されたリストを含むディレクトリを、通信インターフェース706を介して伝達することが可能である。本明細書で開示される様々な特徴のうちの1つまたは複数によれば、コンピュータシステムのユーザが、ユーザのコンピュータシステムの構成の詳細に関心を持つ必要なしに、ソフトウェアプログラムを閲覧することができる。また、ユーザは、表示されたリストを使用して、所望されるソフトウェアプログラムのいずれをダウンロードすることもできる。このことは、比較的限られた能力を有するコンピュータシステム例えば、ノートブックコンピュータ、タブレット、パーソナルメディアプレーヤ、スマートフォン、または他の比較的限られたデータ処理デバイスに関して特に貴重であり得る。図1、図2、図3、図4、図5、図6、図7、および/または図8に示される構成要素、ステップ、特徴、および/または関数の1つまたは複数が、再配置されること、および/または組み合わされて、単一の構成要素、ステップ、特徴、もしくは関数にされること、またはいくつかの構成要素、ステップ、もしくは関数として実施されることが可能である。また、さらなる要素、構成要素、ステップ、および/または関数が、本発明を逸脱することなく、追加されることも可能である。図1、図2、図5、および/または図7に示される装置、デバイス、および/または構成要素が、図3、図4、図6、および/または図8で説明される方法、特徴、またはステップの1つまたは複数を実行するように構成され得る。また、本明細書で説明される新奇なアルゴリズムが、ソフトウェアで効率的に実施されること、および/またはハードウェアに埋め込まれることも可能である。また、少なくとも一部の実装形態は、フローチャート、流れ図、構造図、またはブロック図として示されるプロセスとして説明されてきたことに留意されたい。フローチャートは、動作を順次のプロセスとして説明する可能性があるものの、動作の多くは、並行に、または同時に実行され得る。さらに、動作の順序が並べ替えられることも可能である。プロセスは、プロセスの動作が完了すると、終了させられる。プロセスは、方法、関数、手順、サブルーチン、サブプログラムなどに対応することが可能である。プロセスが関数に対応する場合、プロセスの終了は、関数が呼び出し側の関数またはメイン関数に戻ることに対応する。さらに、いくつかの実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、または以上の任意の組み合わせによって実施され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードで実施される場合、必要なタスクを実行するプログラムコードもしくはコードセグメントは、一時的でない記憶媒体または他のストレージとしてのマシン可読媒体の中に格納され得る。プロセッサが、必要なタスクを実行することが可能である。コードセグメントは、手順、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、または命令、データ構造、もしくはプログラム文の任意の組み合わせを表し得る。コードセグメントは、情報、データ、引数、パラメータ、またはメモリ内容を送ること、および/または受け取ることによって、別のコードセグメント、またはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージの受け渡し、トークンの受け渡し、ネットワーク伝送などを含む任意の適切な手段を介して送られる、転送される、または伝送されることが可能である。本明細書で開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または電子ハードウェアとコンピュータソフトウェアの組み合わせとして実施され得ることが、当業者にはさらに認識されよう。ハードウェアとソフトウェアのこの互換性をより明確に示すのに、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、機能の点で一般的に前段で説明されてきた。そのような機能が、ハードウェアとして実施されるか、ソフトウェアとして実施されるかは、全体的なシステムに課せられた特定の応用上、および設計上の制約に依存する。さらに、説明される様々なステップまたはプロセスのうちの1つまたは複数を実行するように適応されたプログラミングは、汎用コンピュータが、プログラムソフトウェアからの命令に従って特定の機能を実行するようにプログラミングされると、その汎用コンピュータが、事実上、専用コンピュータになるため、新たなマシンを作成する。本発明は、いくつかの好ましい実施形態に関連して相当に詳細に説明されてきたものの、他の実施形態も可能である。この方法に関して開示されるステップは、例えば、限定することは意図しておらず、各ステップが必ずしも不可欠であることも意図しておらず、むしろ、それらのステップは、例示的なステップであるに過ぎない。したがって、添付の特許請求の範囲は、本開示に包含される好ましい実施形態の説明に限定されるべきではない。本明細書で引用されるすべての参照文献は、参照により全体が本明細書に組み込まれている。