(57)【要約】【課題】データ処理システム内でソフトウェア製品を配布する解決策（Ａ１〜Ａ１１）を提供すること。【解決手段】このために、配布される各ソフトウェア製品のモデル（たとえば、ＵＭＬタイプの）のセットが提供され、各モデルは、（ユース・ケースなど、ソフトウェア製品によって提供される機能を表す）複数の使用可能な論理アイテムの間の関係の表示と、（ソフトウェア製品を配布するのに使用される）複数の使用可能な配布アーティファクトとを含む。次に、使用可能な論理アイテムの中で論理アイテムのセットが、選択される（Ａ２〜Ａ３）。このプロセスは、（使用可能な配布アーティファクトの中で）選択された論理アイテムを実施するのに必要な配布アーティファクトのセットを識別すること（Ａ４〜Ａ７）によって継続し、必要な配布アーティファクトは、モデル内の対応する関係に従って識別される。必要な配布アーティファクトを含むソフトウェア・パッケージがビルドされる（Ａ８〜Ａ９）。次に、各エンティティに必要な配布アーティファクトをエンティティ上でインストール（Ａ１１）させるために、システムのデータ処理エンティティ（すなわち、エンドポイント）のセットにソフトウェア・パッケージが配布される（Ａ１０）。【選択図】図７
2010521726.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システム内でソフトウェア製品を配布する方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）であって、
配布される各ソフトウェア製品のモデルのセットを提供するステップ（Ａ１）であって、前記モデルが、前記ソフトウェア製品によって提供される機能を表す、複数の使用可能な論理アイテムの間の関係の表示と、前記ソフトウェア製品を配布するのに使用される、複数の使用可能な配布アーティファクトとを含む、ステップ（Ａ１）と、
前記使用可能な論理アイテムの中で論理アイテムのセットを選択するステップ（Ａ２〜Ａ３；Ａ１−３’）と、
前記使用可能な配布アーティファクトの中で前記選択された論理アイテムを実施するのに必要な配布アーティファクトのセットを識別するステップ（Ａ４〜Ａ７；Ａ４−９’）であって、前記必要な配布アーティファクトが、前記モデル内の対応する関係に従って識別される、ステップ（Ａ４〜Ａ７；Ａ４−９’）と、
前記必要な配布アーティファクトを含むソフトウェア・パッケージをビルドするステップ（Ａ８〜Ａ９；Ａ４−９’）と、
各エンティティに前記必要な配布アーティファクトを前記エンティティ上でインストール（Ａ１１；Ａ１１’）させるために、前記システムのデータ処理エンティティのセットに前記ソフトウェア・パッケージを配布するステップ（Ａ１０；Ａ１０’）と
を含む方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項２】
前記必要な配布アーティファクトを識別する前記ステップ（Ａ４〜Ａ７；Ａ４−９’）が、
前記モデルに従って前記選択された論理アイテムのうちの少なくとも１つに依存する各使用可能な論理アイテムを追加することによって前記選択された論理アイテムを更新すること（Ａ４、Ａ７；Ａ４−９’）
を含む、請求項１に記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項３】
前記論理アイテムが、それぞれが前記ソフトウェア製品によって使用可能にされるアプリケーション・アクティビティを示す特徴を含む、請求項１または２に記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項４】
前記論理アイテムが、それぞれが前記ソフトウェア製品によって使用可能にされるアプリケーション・シナリオを示すユース・ケースを含み、前記必要な配布アーティファクトを識別する前記ステップ（Ａ４〜Ａ７；Ａ４−９’）が、
使用可能なユース・ケースによって公開される使用可能な特徴の表示を含む前記モデルのうちの少なくとも１つに従って選択されたユース・ケースに対応する選択された特徴を判定すること（Ａ４、Ａ７；Ａ４−９’）
を含む、請求項３に記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項５】
前記必要な配布アーティファクトを識別する前記ステップ（Ａ４〜Ａ７；Ａ４−９’）が、
使用可能な特徴をトレースする前記使用可能な配布アーティファクトの表示を含む前記モデルのうちの少なくとも１つに従って選択された特徴に対応する前記配布アーティファクトを識別すること（Ａ５〜Ａ７；Ａ４−９’）
を含む、請求項３または４に記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項６】
前記エンティティ上で使用可能である前記論理アイテムを判定する、各エンティティのステップ（Ａ３ａ’〜Ａ３ｄ’、Ａ１２’）であって、前記使用可能な論理アイテムが、前記エンティティにインストールされた対応する必要な配布アーティファクトによって実施される、ステップ（Ａ３ａ’〜Ａ３ｄ’、Ａ１２’）と、
前記エンティティに配布される前記ソフトウェア・パッケージをビルドするために、前記必要な配布アーティファクトを識別する前記ステップ（Ａ４〜Ａ７；Ａ４−９’）で前記使用可能な論理エンティティを無視する、各エンティティのステップ（Ａ３ｅ‘）と
をさらに含む、請求項１ないし５のいずれかに記載の方法（Ａ１−３’〜Ａ１２’）。
【請求項７】
前記使用可能な論理アイテムを判定する前記ステップ（Ａ３ａ’〜Ａ３ｄ’、Ａ１２’）が、
前記エンティティでの前記対応する必要な配布アーティファクトのインストールに応答して前記エンティティで使用可能である前記特徴の表示を格納すること（Ａ１２’）と、
前記使用可能な特徴の前記格納された表示を取り出すこと（Ａ３ｄ’）と
を含む、請求項３ないし５のいずれかに依存する時の請求項６に記載の方法（Ａ１−３’〜Ａ１２’）。
【請求項８】
前記方法のステップの実行が、少なくとも１つのサービス・プロバイダ（１２５）によって制御される、請求項１ないし７のいずれかに記載の方法（Ａ１−３’〜Ａ１２’）。
【請求項９】
コンピュータ・プログラムがデータ処理システム（１００）上で実行される時の、請求項１ないし８のいずれかに記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）を実行するコンピュータ・プログラム（４００；５００）。
【請求項１０】
請求項１ないし８のいずれかに記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）のステップを実行する手段（４００；５００）を含むシステム（１００）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理の分野に関する。より具体的には、本発明は、ソフトウェア製品の配布に関する。
【背景技術】
【０００２】
ソフトウェア製品のインストールは、特に多数のコンピュータ（またはエンドポイント）を含むデータ処理システムにおいて、非常に時間のかかるアクティビティである。通常の例は、ソフトウェア製品が継続的にアップグレードされる（たとえば、情報技術開発に遅れないようにするためまたは組織的変更に適合するために）、数百個のエンドポイントを有する大規模ネットワークの場合である。
【０００３】
このために、ソフトウェア配布アプリケーションが、システムの中央サイトからのソフトウェア製品の展開を容易にするために使用可能である。通常、ソフトウェア配布アプリケーションは、ソフトウェア・パッケージのビルドを制御し、各ソフトウェア・パッケージは、対応するソフトウェア製品のイメージ（そのファイルの圧縮されたコピーなど）を埋め込まれる。次に、ソフトウェア・パッケージが、選択されたエンドポイントに配布され、所望のソフトウェア製品のインストールを実施するために、それらのエンドポイントのそれぞれで適用される。市場で入手可能な商用ソフトウェア配布アプリケーションの例が、ＩＢＭ社による「ＩＢＭ  Ｔｉｖｏｌｉ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ＭａｎａｇｅｒすなわちＩＴＣＭ」である。
【０００４】
一般に、ソフトウェア製品は、単一の事前定義の構成で提供される。一部のソフトウェア製品は、いくつかの異なるエディションでも入手可能である。たとえば、ホーム・エディション（プライベート使用のための機能性を有する）およびプロフェッショナル・エディション（ビジネス使用のための機能性を有する）を有することが可能であり、もう１つの例は、ベーシック・エディション（減らされた機能性を有する）およびアドバンスト・エディション（すべての機能性を有する）である。
【０００５】
ともあれ、配布されるソフトウェア製品は、その少数の使用可能なバージョン（多くの実際の場合には単一のバージョンまで減る）の中で選択されなければならない。したがって、ソフトウェア製品がそのユーザ（異なるエンドポイントにいる）の実際の必要にフィットすることは、非常にむずかしい（不可能でないとしても）。その結果、各エンドポイントでインストールされるソフトウェア製品は、一般に、必要なものよりはるかに多数の機能を提供し、さらに、少数の必要な機能がその減らされたバージョンで使用可能ではないので、しばしば、ソフトウェア製品の完全なバージョンを配布することが必要である。
【０００６】
上で述べた問題は、エンドポイントでインストールされるソフトウェア製品のフットプリント（たとえば、そのマス・メモリ占有、作業メモリ使用量、および類似物）に悪影響する。さらに、ソフトウェア製品のイメージは、それ相応に増え、これは、ソフトウェア製品をエンドポイントに配布するためのシステム内のネットワーク・トラフィックに対する有害な影響を有する。
【０００７】
各エンドポイントでソフトウェア製品をインストールするプロセスを制御するのに使用されるいくつかのオーサリング・ツール（ＭｉｃｒｏＶｉｓｉｏｎ社による「ＩｎｓｔａｌｌＳｈｉｅｌｄ」など）が、ソフトウェア製品のインストール中にそのソフトウェア製品の所望の機能の選択を可能にすることに留意されたい。それでも、すべての使用可能な機能が、エンドポイントに配布されるソフトウェア製品によってサポートされなければならない（その選択のために）。したがって、完全なソフトウェア製品が、上で述べた短所を伴って、必ずエンドポイントに配布されなければならない。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
【課題を解決するための手段】
【０００９】
一般的な言葉で、本開示は、配布されるソフトウェア製品をカスタマイズするという発想に基づく。
【００１０】
具体的に言うと、本発明は、独立請求項で示される解決策を提供する。本発明の有利な実施形態は、従属請求項で説明される。
【００１１】
より具体的には、本発明の一態様は、データ処理システム内でソフトウェア製品を配布する方法を提案する。この方法は、配布される各ソフトウェア製品の（１つまたは複数の）モデルのセットを提供するステップから始まる。モデルは、（ソフトウェア製品によって提供される機能を表す）複数の使用可能な論理アイテムの間の関係の表示と、（ソフトウェア製品を配布するのに使用される）複数の使用可能な配布アーティファクトとを含む。使用可能な論理アイテムの中で（１つまたは複数の）論理アイテムのセットが、選択される。この方法は、（使用可能な配布アーティファクトの中で）選択された論理アイテムを実施するのに必要な（１つまたは複数の）配布アーティファクトのセットを識別することによって継続し、必要な配布アーティファクトは、モデル内の対応する関係に従って識別される。必要な配布アーティファクトを含むソフトウェア・パッケージが、ビルドされる。次に、各エンティティに必要な配布アーティファクトをエンティティ上でインストールさせるために、システムの（１つまたは複数の）データ処理エンティティのセットにソフトウェア・パッケージが配布される。
【００１２】
好ましくは、このプロセスは、（モデルに従って）選択された論理アイテムのうちの少なくとも１つに依存する各使用可能な論理アイテムを追加することによって選択された論理アイテムを更新することを含む。
【００１３】
本発明の実施形態では、論理アイテムは、（それぞれがソフトウェア製品によって使用可能にされるアプリケーション・アクティビティを示す）特徴を含む。
【００１４】
それに加えてまたはその代わりに、論理アイテムは、（それぞれがソフトウェア製品によって使用可能にされるアプリケーション・シナリオを示す）ユース・ケースを含み、これから、対応する特徴が、モデルに従って判定される。
【００１５】
提案される実施態様は、選択された特徴から必要な配布アーティファクトを判定することを伴う。
【００１６】
この解決策をさらに改善する形は、各エンティティで既に使用可能である論理アイテムを判定することと、その後、対応するソフトウェア・パッケージをビルドする際にそれらを無視することとである。
【００１７】
たとえば、この結果は、エンティティで使用可能な特徴の表示を格納することによって達成することができる（対応する配布アーティファクトのインストールに応答して）。
【００１８】
本発明の実施形態では、提案される解決策が、サービスによって実施される。
【００１９】
本発明のもう１つの態様は、上で説明した方法を実施するコンピュータ・プログラムを提案する。
【００２０】
本発明の異なる態様は、対応するシステムを提案する。
【００２１】
本発明自体ならびに本発明のさらなる特徴および利益は、添付図面と共に読まれるべき、純粋に非制限的指摘として与えられる次の詳細な説明を参照して最もよく理解されるであろう。
【図面の簡単な説明】
【００２２】
【図１】本発明の実施形態による解決策が適用可能であるデータ処理システムを示す概略ブロック図である。
【図２】システムの例示的コンピュータの機能ブロックを示す図である。
【図３】包括的ソフトウェア製品の開発中に実行される通常のアクティビティを説明する流れ図である。
【図４】本発明の実施形態による解決策の例示的適用に関する、要件モデルを示す図である。
【図５】本発明の実施形態による解決策の例示的適用に関する、設計モデルを示す図である。
【図６】本発明の実施形態による解決策の例示的適用に関する、展開モデルを示す図である。
【図７】本発明の実施形態による解決策を実施するのに使用できる異なるモジュールの役割を表すコラボレーション図である。
【図８】本発明の異なる実施形態に関するコラボレーション図である。
【発明を実施するための形態】
【００２３】
特に図１を参照すると、分散アーキテクチャを有するデータ処理システム１００が示されている。データ処理システム１００は、ソフトウェア配布インフラストラクチャを実施する（たとえば、上で述べたＩＴＣＭに基づいて）。
【００２４】
具体的には、準備サーバ１０５は、データ処理システム１００内で所望のソフトウェア製品をインストールするのに使用されるソフトウェア・パッケージの定義、テスト、およびビルドのための中央サイトとして動作する。各ソフトウェア・パッケージは、対応するソフトウェア製品のイメージにはまり込み、このイメージは、実行可能モジュール、ライブラリ、構成テーブル、データベース、および類似物（通常、圧縮されたファイルの形での）など、ソフトウェア製品のインストールに必要なリソースからなる。ソフトウェア・パッケージは、ソフトウェア製品をインストールするために実行されなければならないアクションを指定するコマンド（ファイル、レジストリ・エントリ、および類似物の追加、削除、または更新など）をも含む。
【００２５】
配布サーバ１１０は、データ処理システム１００でのソフトウェア・パッケージの展開を制御する。このために、配布サーバ１１０は、対応するサービス１１５（たとえば、ＩＢＭ社による「Ｔｉｖｏｌｉ  Ｍａｎａｇｅｍｅｎｔ  ＦｒａｍｅｗｏｒｋすなわちＴＭＦ」に基づく「Ｍｕｌｔｉｐｌｅｘｅｄ  ＤｉｓｔｒｉｂｕｔｉｏｎすなわちＭＤＩＳＴ２」サービスからなる）によって準備サーバ１０５（所望のソフトウェア・パッケージを供給するソース・ホストとして働く）から特定のソフトウェア・パッケージを展開する。
【００２６】
ソフトウェア・パッケージを、エンドポイント１２０に直接に供給する（プッシュ・モードで）ことができ、ここで、ソフトウェア・パッケージは、対応するソフトウェア製品をインストールするために適用され、この結果は、切断モード（ソフトウェア・パッケージのセットが事前定義のプランに従って選択されたエンドポイント１２０に展開される）またはリアルタイム・モード（コマンド・ライン・インターフェースすなわちＣＬＩを介して入力される特定の要求に応答して）で動作することによって達成される。
【００２７】
ソフトウェア・パッケージを、類似する形でウェブ・サーバ１２５に供給することもでき、このウェブ・サーバ１２５は、エンドポイント１２０の許可されたユーザ（またはユーザのグループ）のためにこれらのソフトウェア・パッケージをパブリッシュする。エンドポイント１２０は、インターネット１３０を介してウェブ・サーバ１２５にアクセスする。この形で、エンドポイント１２０（許可されたユーザの）は、所望のソフトウェア・パッケージをウェブ・サーバ１２５から選択し、ダウンロードする（プル・モードで）ことができ、これらのソフトウェア・パッケージは、その後、上のように対応するソフトウェア製品をインストールするために各エンドポイント１２０で適用される。
【００２８】
ここで図２に移ると、上で説明したシステムの包括的コンピュータ（すなわち、準備サーバ、配布サーバ、エンドポイント、またはウェブ・サーバ）が、１５０によって示されている。コンピュータ１５０は、システム・バス１５３に並列に接続された複数のユニットによって形成される（システム内のコンピュータ１５０の実際の機能に従って適切にスケーリングされる構造と共に）。詳細には、１つまたは複数のマイクロプロセッサ（μＰ）１５６が、コンピュータ１５０の動作を制御し、ＲＡＭ  １５９は、マイクロプロセッサ１５６によって作業メモリとして直接に使用され、ＲＯＭ  １６２は、コンピュータ１５０のブートストラップ用の基本コードを格納する。複数の周辺ユニットが、ローカル・バス１６５を中心としてクラスタ化される（めいめいのインターフェースによって）。具体的には、マス・メモリは、１つまたは複数のハードディスク１６８およびＣＤ−ＲＯＭ１７４を読み取るためのドライブ１７１からなる。さらに、コンピュータ１５０は、入力ユニット１７７（たとえば、キーボードおよびマウス）、および出力ユニット１８０（たとえば、モニタおよびプリンタ）を含む。ネットワーク・アダプタ１８３は、コンピュータ１５０をシステムに接続するのに使用される。ブリッジ・ユニット１８６は、システム・バス１５３をローカル・バス１６５にインターフェースする。各マイクロプロセッサ１５６およびブリッジ・ユニット１８６は、情報を送るためにシステム・バス１５３へのアクセスを要求するマスタ・エージェントとして動作することができる。アービタ１８９は、システム・バス１５３への相互排他を有するアクセスの許可を管理する。
【００２９】
図３を参照すると、包括的ソフトウェア製品（上で説明したシステム内で配布される）の開発プロセス２００は、通常、モデリング・フェーズのシーケンスを含む。この形で、ソフトウェア製品が、モデルによって表され、このモデルは、ソフトウェア製品の実際の諸態様の異なるレベルの抽象化を提供し、各モデルは、めいめいの関係を有する複数のステレオタイプ（それぞれがソフトウェア製品の対応する態様に関する）を含む。これは、ソフトウェア製品の実際の実施の前のソフトウェア製品の視覚化、査定、および通信を可能にする（対応する開発リスクを減らすために）。たとえば、モデルは、Ｕｎｉｆｉｅｄ  Ｍｏｄｅｌｉｎｇ  Ｌａｎｇｕａｇｅ（ＵＭＬ）を使用することによって定義され、ＵＭＬは、標準的なモデリング言語であり、ソフトウェア製品（特にオブジェクト指向タイプの）の開発に関するすべての態様を指定するための（グラフィックのおよびテキストの）構文および基礎になるセマンティックを提供する。
【００３０】
具体的に言うと、開発プロセス２００は、要件モデリング２０５（ソフトウェア製品によって提供されなければならない機能を指定することを目指す）から始まり、このために、要件が、対応するユーザから集められ、完全さおよび一貫性についてチェックされ、その後、正しい定義に形式化される。たとえば、ソフトウェア製品の要件は、ユース・ケース（ソフトウェア製品によって使用可能にされるアプリケーション・シナリオを記述する）または特徴（ソフトウェア製品によって使用可能にされるアプリケーション・アクティビティを記述する）によって表される。
【００３１】
要件モデリング２０５には、分析モデリング２１０が続く。このフェーズでは、要件が、ソフトウェア製品の対応するアーキテクチャ（すべての実装詳細とは独立の）に変換される。たとえば、ソフトウェア製品の分析は、コントロール（その処理アイテムの）、エンティティ（そのデータ・アイテムの）、およびインターフェース（そのユーザ対話アイテムの）によって表される。
【００３２】
開発プロセス２００は、設計モデリング２１５に継続し、ここで、ソフトウェア製品の実際のアーキテクチャ（その実装技術に基づく）が、その分析から導出される。たとえば、ソフトウェア製品の設計が、コンポーネント（それぞれが事前定義のサービスを提供し、他のコンポーネントと通信することができる）によって表され、コンポーネントは、クラス、インターフェース、オブジェクト、および類似物を含む。
【００３３】
最後に、展開モデリング２２０は、その配布に関してソフトウェア製品の構造を定義する。たとえば、ソフトウェア製品の展開は、配布アーティファクト（そのイメージに埋め込まれる）およびノード（これらのアーティファクトがインストールされなければならない）によって表される。
【００３４】
本発明の実施形態による解決策では、次で詳細に説明するように、ソフトウェア製品のモデルが、提供される機能（そのユース・ケースなど）を選択するのに使用される。同一のモデルが、アーティファクトを識別することを可能にし、このアーティファクトは、選択された機能を実施するのに必要である（モデル内で定義されるその関係に従って）。ソフトウェア製品を配布するのに使用されるソフトウェア・パッケージが、その後、これらの必要なアーティファクトを埋め込むことによってビルドされる。
【００３５】
提案される解決策は、配布されるソフトウェア製品をカスタマイズすることを可能にする。その結果、ソフトウェア製品のユーザ（異なるエンド・ポイントの）の必要に実際にフィットするソフトウェア製品を作成することが可能である。
【００３６】
したがって、各エンドポイントにインストールされるソフトウェア製品は、必要な機能を正確に提供し、これは、必要ではない機能を有するソフトウェア製品の配布を回避する。
【００３７】
考案された解決策は、各エンドポイントにインストールされるソフトウェア製品のフットプリント（たとえば、そのマス・メモリ占有、作業メモリ使用量、および類似物）を減らす。さらに、ソフトウェア製品のイメージが、それ相応に減る。これは、ソフトウェア製品をエンドポイントに配布するためのシステム内のネットワーク・トラフィックに対する有益な影響を有する。
【００３８】
考案された解決策は、ソフトウェア製品の完全なコンポーネント化（ｃｏｍｐｏｎｅｎｔｉｚａｔｉｏｎ）を促進する。実際に、今や、独立コンポーネント（異なるコンテキストでの再利用に適する）を有するソフトウェア製品を設計することが可能であり、これらのコンポーネントは、その後、要求時に（対応する機能を実施するために）ソフトウェア製品のイメージ内に一緒にアセンブルされる。
【００３９】
ソフトウェア製品のモデルによる必要なアーティファクトの識別が、それらの正しい動作に必要な条件の遵守を保証することに留意されたい。この結果は、いかなる追加の労力をも伴わずに達成される。というのは、モデルが、ソフトウェア製品の開発プロセスの副産物として既に使用可能であるからである。
【００４０】
本発明の実施形態による解決策の適用の例示的シナリオを、図４〜６に示す。これらの図は、対応するモデルをグラフィカルに表す異なる図（ＵＭＬ標準規格によって定義される）を示す。
【００４１】
具体的に言うと、図４は、要件図３００ａ（ソフトウェア製品によってそのユース・ケースを介して提供される機能をモデリングする）を示す。詳細には、２つのアクタＡ１、Ａ２が、ソフトウェア製品のユーザの役割を演じる。アクタＡ１、Ａ２は、異なるユース・ケースＵ１〜Ｕ９（対応する関連付けによって示される）を実行する。各ユース・ケースＵ１〜Ｕ９は、１つまたは複数の特徴Ｆ１〜Ｆ８（さらなる関連付けによって示される）を公開する。異なる関係が、特徴Ｆ１〜Ｆ８の間で定義される。たとえば、（ソース）特徴は、破線の矢印によって表される対応する依存性によって示されるように、（ターゲット）特徴を「ｒｅｑｕｉｒｅ（必要とする）」場合があり、これは、ターゲット特徴が、ソース特徴の動作について必須であることを意味する。その一方で、（ソース）特徴が、やはり破線の矢印によって示される対応する依存性によって示されるように、（ターゲット）特徴を「ｕｓｅ（使用する）」場合があり、これは、ソース特徴が、（オプションの）ターゲット特徴が使用可能である時にこれを用いる場合があることを意味する。
【００４２】
要件図３００ａは、配布されるソフトウェア製品の所望の機能を使用可能にするユース・ケースＵ１〜Ｕ９を選択するのにシステム管理者によって活用される。この形で、選択されたユース・ケースＵ１〜Ｕ９によって公開される対応する特徴Ｆ１〜Ｆ８を判定することが可能である（対応する関連付けに従って）。そのように判定された（選択された）特徴Ｆ１〜Ｆ８は、その後、選択された特徴Ｆ１〜Ｆ８のうちの１つまたは複数によって要求される任意のさらなる特徴Ｆ１〜Ｆ８を追加することによって（対応する依存性に従って）更新される。たとえば、管理者が、ユース・ケースＵ７を選択する場合に、対応する選択される特徴は、Ｆ６（選択されたユース・ケースＵ７によって使用可能にされる）およびＦ３（選択された特徴Ｆ６によって要求される）になる。
【００４３】
図５は、その代わりに、設計図３００ｂ（ソフトウェア製品のコンポーネントを介してソフトウェア製品のアーキテクチャをモデリングする）を示す。詳細には、上で説明した特徴Ｆ１〜Ｆ８（その依存性を有する）が、その機能（対応する関連付けによって示される）を公開する異なるコンポーネントＣ１〜Ｃ８によって実装される。コンポーネントＣ１〜Ｃ８を、オファリングＯ１〜Ｏ３にフェデレートすることもでき、オファリングＯ１〜Ｏ３のそれぞれは、相関されたコンポーネントＣ１〜Ｃ８（さらなる関連付けによって示される）を一緒にグループ化する。
【００４４】
設計図３００ｂを直接に活用して（上で説明した要件図の代替で）、配布されるソフトウェア製品の所望の機能を使用可能にする特徴Ｆ１〜Ｆ８を選択することができる。上と同様に、選択された特徴Ｆ１〜Ｆ８は、その後、選択された特徴Ｆ１〜Ｆ８のうちの１つまたは複数によって要求される任意のさらなる特徴Ｆ１〜Ｆ８を追加することによって（対応する依存性に従って）更新される。
【００４５】
どの場合でも、設計図３００ｂは、（選択された）コンポーネントＣ１〜Ｃ８が選択された特徴Ｆ１〜Ｆ８を実施する（対応する関連付けに従って）、選択された特徴Ｆ１〜Ｆ８に対応するコンポーネントＣ１〜Ｃ８（要件図で選択されたユース・ケースから導出されるまたは設計図内で直接に選択されるのいずれか）を判定することを可能にする。問題になっている例では、選択された特徴Ｆ３およびＦ６に関して選択されるコンポーネントは、それぞれＣ３およびＣ６である。
【００４６】
最後に、図６は、展開図３００ｃ（ソフトウェア製品の配布構造をそのアーティファクトを介してモデリングする）を示す。詳細には、上で説明したコンポーネントＣ１〜Ｃ８が、異なるアーティファクトＡ１〜Ａ１２によってトレースされる。アーティファクトＡ１〜Ａ１２を、さらなる関係によってリンクすることができる。たとえば、上と同様に、（ソース）アーティファクトが、破線の矢印によって表される対応する依存性によって示されるように、（ターゲット）アーティファクトを「ｒｅｑｕｉｒｅ」することができ、これは、ターゲット・アーティファクトが、ソース・アーティファクトのインストールに必須であることを意味する。
【００４７】
展開図３００ｃは、選択されたコンポーネントＣ１〜Ｃ８（すなわち、配布されるソフトウェア製品の対応する機能を実施するのに必要な）をトレースするアーティファクトＡ１〜Ａ１２を識別するのに活用される。必要なアーティファクトＡ１〜Ａ１２が、その後、これらの必要なアーティファクトＡ１〜Ａ１２のうちの１つまたは複数によって要求される（対応する依存性に従って）任意のさらなるアーティファクトＡ１〜Ａ１２を追加することによって更新される。問題になっている例では、選択されたコンポーネントＣ３およびＣ６に必要なアーティファクトは、Ａ７およびＡ１１（それぞれ選択されたコンポーネントＣ３およびＣ６をトレースする）とＡ６およびＡ１０（それぞれ必要なアーティファクトＡ７およびＡ１１によって要求される）であり、次に、所望の機能（選択されたユース・ケースＵ７によって提供される、すなわち、選択された特徴Ｆ３、Ｆ６によって提供される、すなわち、選択されたコンポーネントＣ３、Ｃ６によって提供される）を有するソフトウェア製品のインストールを得るために、これらの必要なアーティファクトＡ６、Ａ７、Ａ１０、Ａ１１を埋め込むソフトウェア・パッケージをビルドすることが可能である。
【００４８】
ここで図７を検討すると、本発明の実施形態による解決策を実施するのに使用できる異なるモジュールの役割を表すコラボレーション図４００が示されている。この図は、システムの静的構造（対応するモジュールによる）およびその動的挙動（記号「Ａ」が前にあるシーケンス番号によって表される対応するアクションをそれぞれが表す一連の交換されるメッセージによる）を記述する。
【００４９】
具体的には、準備サーバ１０５は、モデラ４０５を含む。モデラ４０５は、各使用可能なソフトウェア製品の対応するモデルを定義するのに開発者（すなわち、アーキテクト、分析者、設計者、およびプログラマ）によって使用され、通常、モデラ４０５は、統合開発環境（ＩＤＥ）を提供し、このＩＤＥは、対応するコードの生成をも容易にする。商用のモデラ４０５の例が、ＩＢＭ社による「Ｒａｔｉｏｎａｌ  Ｒｏｓｅ」である。モデルの定義は、たとえばＸＭＬ  Ｍｅｔａｄａｔａ  Ｉｎｔｅｒｃｈａｎｇｅ（ＸＭＩ）フォーマットの対応するファイルによって、モデル・リポジトリ４１０に保存される（アクション「Ａ１．モデル」）。
【００５０】
モデラ４０５は、モデル・リポジトリ４１０から抽出された特定のモデルを表す図を表示することを可能にするグラフィカル・ユーザ・インターフェース（ＧＵＩ）を提供する（アクション「Ａ２．表示」）。モデラ４０５のプラグインは、セレクタ４１５を実装し、このセレクタ４１５は、たとえば関連するモデルのグラフィカル表現上の対応するアイコンをダブル・クリックすることによって、配布される各ソフトウェア製品の所望の機能（すなわち、ユース・ケースまたは特徴あるいはその両方）を選択するのに管理者によって使用される（アクション「Ａ３．選択」）。
【００５１】
準備サーバ１０５は、依存性マネージャ４２０をも設けられる。依存性マネージャ４２０は、要件モデル（アクション「Ａ４．要件読取り」）、分析／設計モデル（アクション「Ａ５．設計読取り」）、および展開モデル（アクション「Ａ６．展開読取り」）を読み取るために、モデル・リポジトリ４１０にアクセスする。次に、依存性マネージャ４２０は、関連するモデルで定義される、選択された機能の関係に従って、それらの選択された関係によって要求されるアーティファクトを識別する（アクション「Ａ７．識別」）。
【００５２】
任意のソフトウェア製品を配布するのに使用可能なすべてのアーティファクトが、アーティファクト・リポジトリ４２５に格納される。ビルダ４３０が、アーティファクト・リポジトリ４２５から配布されるソフトウェア製品の選択された機能に対応する必要なアーティファクトをロードする（アクション「Ａ８．ロード」）。次に、ビルダ４３０は、対応する必要なアーティファクトを埋め込むことによって、配布される各ソフトウェア製品の正しいソフトウェア・パッケージを作成し、そのように入手されたソフトウェア・パッケージが、リポジトリ４３５に格納される（アクション「Ａ９．作成」）。
【００５３】
ここで配布サーバ１１０に移ると、配布マネージャ４４０は、配布プラン（それぞれが選択されたエンドポイント１２０での特定のソフトウェア・パッケージのインストールを指定するアクティビティのリストからなる）を生成する。このプランは、参照モデルにサブスクライブする各エンドポイントの所望の構成を指定する事前定義の参照モデル（その役割に従って識別される）に従って、専用サービス（「ＩＴＣＭ」の「Ｃｈａｎｇｅ  ＭａｎａｇｅｒすなわちＣＭ」など）によって切断モードで作成され得、代替案では、プランを、選択されたソフトウェア・パッケージを同時にエンドポイント１２０のセットに手動で配布するためにランタイム・モードで（コマンド・ライン要求に応答して）作成することができる。どの場合でも、配布マネージャ４４０は、対応するサービス（「ＩＴＣＭ」の「Ａｃｔｉｖｉｔｙ  Ｐｌａｎｎｅｒ  ＭａｎａｇｅｒすなわちＡＰＭ」など）によって各プランの実行をサブミットし、このサービスは、対応するアクティビティの実行を制御し、その結果、プランで指定される各ソフトウェア・パッケージは、そのリポジトリ４３５から抽出され、その後、所望のエンドポイント１２０に配布される（アクション「Ａ１０．配布」）。
【００５４】
システムの包括的なエンドポイント１２０は、アプリケーション・エンジン４４５（「ＩＴＣＭ」の「Ｓｏｆｔｗａｒｅ  Ｉｎｓｔａｌｌａｔｉｏｎ  ＥｎｇｉｎｅすなわちＳＩＥ」サービスなど）を含む。アプリケーション・エンジン４４５は、エンドポイント１２０上の各受け取られたソフトウェア・パッケージの適用を実施する。これは、ソフトウェア・パッケージ内で指定されたコマンド（その所望の状況（たとえば、インストール済み）に達するのに必要なコマンド）の実行を伴う。その結果、対応するソフトウェア製品（この図では包括的に４５０を用いて図示）が、エンドポイント１２０上に（所望の機能だけを伴って）インストールされる。
【００５５】
ここで図８に移ると、本発明のもう１つの実施形態による解決策の実施態様に関するコラボレーション図５００が示されている。
【００５６】
この場合に、各エンドポイント１２０は、インターネットをサーフィンするためのブラウザ５０５を設けられる。具体的には、ブラウザ５０５は、各ウェブ・サーバ１２５によって公開される（たとえば、ウェブ・サービスによって実施される）選択サービス５１０にアクセスするのに使用される。選択サービス５１０は、エンドポイント１２０のユーザがインストールされる各所望のソフトウェア製品を選択することを可能にするリモート・フロントエンドを提供し、上と同様に、ユーザは、ソフトウェア製品に含まれる特定の機能（たとえば、ユースケースまたは特徴あるいはその両方）を選択することもできる（アクション「Ａ１−３’．選択」）。したがって、ユーザは、そのエンドポイント１２０にインストールされるソフトウェア製品を思いのままにカスタマイズすることを直接に可能にされる。
【００５７】
それに応答して、アナライザ５１５が、モデル・リポジトリ４１０から要件モデルを読み取る（アクション「Ａ３ａ’．読取り」）。次に、アナライザ５１５は、選択された機能に対応する特徴を、その関係に従って判定する（アクション「Ａ３ｂ’．変換」）。アナライザ５１５は、同一のエンドポイント１２０のスキャナ５２０に、所望のソフトウェア製品の選択された特徴のリストを送る（アクション「Ａ３ｃ’．送信」）。スキャナ５２０は、どの特徴（選択された特徴のうちで）がエンドポイント１２０で既に使用可能であるかを判定する。このために、スキャナ５２０は、ソフトウェア・カタログ５２５にアクセスする。ソフトウェア・カタログ５２５は、エンドポイント１２０にインストールされているすべてのソフトウェア製品の表示を格納し、インストールされたソフトウェア製品ごとに、ソフトウェア・カタログ５２５は、使用可能な特徴（インストールされたアーティファクトに対応する）を示す。次に、スキャナ５２０は、選択サービス５１０に使用可能な特徴のリストを返す（アクション「Ａ３ｄ’．スキャン」）。これに応答して、選択サービス５１０は、エンドポイント１２０で既に使用可能な特徴を除去することによって、所望のソフトウェア製品の選択された特徴を減らす（アクション「Ａ３ｅ’．減少」）。
【００５８】
選択サービス５１０は、（減らされた）選択された特徴を実施するのに必要なアーティファクトを埋め込むことによって所望のソフトウェア製品を配布するためのソフトウェア・パッケージを作成し、上で説明した同一の動作を繰り返す（アクション「Ａ４−９’．作成」）。しかし、この場合に、ソフトウェア・パッケージは、ソフトウェア・パッケージに埋め込まれた必要なアーティファクトによって実施される選択された特徴の表示をも含む（たとえば、そのヘッダの専用フィールド内の）。選択サービス５１０は、そのように入手されたソフトウェア・パッケージをエンドポイント１２０にダウンロードする（アクション「Ａ１０’．ダウンロード」）。ソフトウェア・パッケージが、今や、エンドポイント１２０でまだ使用可能ではない選択された特徴に対応する必要なアーティファクトだけを含むことに留意されたい。したがって、ソフトウェア・パッケージのイメージは、さらに減らされ、これによって、そのダウンロードのための追加のネットワーク・トラフィックが節約される。
【００５９】
エンドポイント１２０のアプリケーション・エンジン４４５は、エンドポイント１２０でまだ使用可能ではない選択された特徴を有する対応するソフトウェア製品４５０のインストールを実施するために、もう一度、受け取られたソフトウェア・パッケージを適用する（アクション「Ａ１１’．インストール」）。それと同時に、アプリケーション・エンジン４４５は、それ相応にソフトウェア・カタログ５２５を更新する（ソフトウェア・パッケージに含まれる情報を活用することによって）。具体的に言うと、ソフトウェア製品４５０が、エンドポイント１２０で使用可能ではなかった場合に、対応するエントリが、そのすべての選択された特徴の表示と共に追加され、逆に、（先在する）ソフトウェア製品４５０の新たに選択された特徴が、ソフトウェア・カタログ５２５内のそのエントリに追加される（アクション「Ａ１２’．更新」）。
【００６０】
当然、ローカル要件および特定の要件を満足するために、当業者は、上で説明した解決策に、多数の論理的なまた物理的なあるいはその両方の修正および変更を適用することができる。より具体的には、本発明を、その好ましい実施形態（１つまたは複数）を参照してある度合の具体性を伴って説明したが、形態におけるさまざまな省略、置換、および変更ならびに他の実施形態が可能であることを理解されたい。具体的に言うと、提案された解決策を、そのより完全な理解を提供するために前述の説明に示された特定の詳細（数値の例など）なしで実践することすらでき、逆に、周知の特徴を、不必要な詳細でこの説明を不明瞭にしないようにするために、省略しまたは単純化した場合がある。さらに、本発明のすべての開示される実施形態に関して説明される特定の要素または方法ステップあるいはその両方を、全般的な設計選択の問題として、任意の他の実施形態に組み込むことができることが、特に意図されている。
【００６１】
具体的には、提案される解決策は、同等の方法を用いて実施されるのに向いており（類似するステップを使用すること、本質的ではないいくつかのステップを除去すること、またはさらなるオプションのステップを追加することによる）、さらに、これらのステップを、異なる順序で、同時に、またはインターリーブされた形で（少なくとも部分的に）実行することができる。
【００６２】
上で説明したソフトウェア配布インフラストラクチャは、限定的な意味で解釈されてはならない。たとえば、類似する考慮事項が、準備サーバおよび配布サーバが単一のコンピュータに縮小される場合、ソフトウェア・パッケージが同等の構造を有する場合、またはソフトウェア・パッケージが同等の配布アーティファクトを含む場合にあてはまり、同様に、ソフトウェア・パッケージを、それらが配布される時に動的にビルドすることができ、あるいは、ソフトウェア・パッケージの配布を、任意の他の形（たとえば、切断モードでのみ、ランタイム・モードでのみ、または任意の他の形で）制御することができる。さらに、本明細書で使用される用語インストールは、この用語の最も広い受入での包括的ソフトウェア製品の実施に関するすべてのアクティビティを示す（その追加、アップグレード、保守、構成、および類似物を含む）。
【００６３】
任意の他のモデリング・レベル（要件モデル、分析モデル、設計モデル、または展開モデルあるいはその組合せにおいてなどの）での依存性を解決することを妨げるものはなく、たとえば、直接に選択される機能に対応するアーティファクトだけを識別し、その後、それらによって要求される任意の他のアーティファクトを追加することが可能である。
【００６４】
もちろん、ソフトウェア製品の機能を定義する上で述べたステレオタイプは、網羅的ではない。たとえば、上で指摘したように、ソフトウェア製品の所望の機能を、ユース・ケースまたは特徴のいずれかを選択することによって定義することができ、その代わりに、パッケージ（複雑なシナリオに関連する複数のユース・ケースをグループ化する）を、直接にコンポーネントまたはオファリングを、および類似物を選択することも可能であるはずである。さらに、機能を、他の図（たとえば、アクティビティ図または状態図）によってまたは任意の他の形で（グラフィカル・インターフェースなしでさえ）選択することができる。より一般的に、提案される解決策を、それぞれがソフトウェア製品によって提供される（単純なまたは複雑な）機能を示すどのような論理アイテムの選択であれ、そのような選択に適用することができる。
【００６５】
類似する考慮事項が、選択された機能（たとえば、「実現する」、「形成する」、および類似物）に対応するアーティファクトを識別するために他の関係が考慮に入れられる場合にあてはまる。上と同様に、同一の結果を、異なる図（たとえば、クラス図またはオブジェクト図）を活用することによって達成することができる。
【００６６】
ソフトウェア製品を開発するのに任意の他のモデリング・ツール（たとえば、開発プロセスの異なるフェーズをサポートするもの）を使用することを妨げるものはない。どの場合でも、代替の形式主義を使用して、ソフトウェア製品のモデルを、その要件、分析、設計、または展開あるいはその組合せのレベルで（たとえば、ペトリ・ネットワークに基づいて）定義することができる。より一般的に、提案される解決策は、ソフトウェア製品の１つまたは複数の包括的モデルと共に実施されるのに向いており、この包括的モデルは、使用可能な論理アイテムおよびその使用可能な配布アーティファクトの間のすべての関係のすべての表示を提供する。
【００６７】
エンドポイントで既に使用可能な特徴の検証に関する追加の特性を、ウェブ・サービスに基づく配布モード（たとえば、上で説明したランタイム・モードでの）とは異なる配布モードに適用することもできることが、すぐに明白になるに違いない。どの場合でも、この特徴は、厳密に必要ではなく、提案される解決策の単純化された実施態様では省略することができる。
【００６８】
代替案では、同一の結果を、すべてのエンドポイントにインストールされた異なるソフトウェア製品の特徴のグローバル・カタログを（たとえば、配布サーバ上で）維持することによって達成することもできる。さらに、ユース・ケース、コンポーネントのレベルで、または直接にアーティファクトのレベルでさえ動作することが可能である。
【００６９】
前の説明では、ウェブ・サーバによって展開される特定のサービスに言及したが、これを限定と解釈してはならず、たとえば、望まれるサービスを別のテクノロジを用いて（インターネットに基づかないものさえ）実施すること、または１つもしくは複数の他のサービス・プロバイダ（直接に配布サーバなど）によってこれを制御することを妨げるものはない。
【００７０】
プログラム（本発明の各実施形態を実施するのに使用できる）が異なる形で構成される場合、または追加のモジュールもしくは機能が提供される場合に、同様の考察があてはまり、同様に、メモリ構造を、他のタイプとすることができ、あるいは同等のエンティティ（必ずしも物理的記憶媒体からなるのではない）と置換することができる。どの場合でも、プログラムは、外部ソフトウェア、常駐ソフトウェア、ファームウェア、またはマイクロコード（オブジェクト・コードまたはソース・コードのいずれかで、たとえばコンパイルされるか解釈される）など、任意のデータ処理システムによってまたはこれと共に使用されるのに適する任意の形をとることができる。さらに、プログラムを任意のコンピュータ使用可能媒体上で提供することが可能であり、この媒体を、プログラムを含み、格納し、通信し、伝搬し、または転送するのに適する任意の要素とすることができる。たとえば、媒体を、電子タイプ、磁気タイプ、光タイプ、電磁タイプ、赤外線タイプ、または半導体タイプとすることができ、そのような媒体の例は、固定ディスク（プログラムを事前にロードすることができる）、リムーバブル・ディスク、テープ、カード、ワイヤ、ファイバ、無線接続、ネットワーク、放送波、および類似物である。どの場合でも、本発明による解決策は、異なるアーキテクチャを有する（たとえば、単一のサーバ上で動作する）アプリケーションを用いて、ハードウェア構造（たとえば、半導体材料のチップに一体化されて）を用いて、またはソフトウェアおよびハードウェアの組合せを用いて実施されるのに向いている。
【００７１】
提案される方法を、異なるトポロジを有するか同等のユニットを含む（たとえば、ローカル・ネットワークに基づく）システム上で実行することもできる。さらに、各コンピュータが、別の構造を有することができ、あるいは、類似する要素（実行中のマス・メモリへのアクセスを減らすためにプログラムまたはその諸部分を一時的に格納するキャッシュ・メモリなど）を含むことができ、どの場合でも、コンピュータを、任意のコード実行エンティティ（ＰＤＡ、携帯電話機、および類似物など）にまたはその組合せ（クライアント／サーバ・アーキテクチャ、グリッド・コンピューティング・インフラストラクチャ、および類似物など）に置換することが可能である。
【図１】
2010521726.tif 000003
【図２】
2010521726.tif 000004
2010521726.tif 000005
【図３】
2010521726.tif 000006
【図４】
2010521726.tif 000007
【図５】
2010521726.tif 000008
【図６】
2010521726.tif 000009
【図７】
2010521726.tif 000010
【図８】
2010521726.tif 000011
2010521726.tif 000012
【手続補正書】
【提出日】平成21年12月25日(2009.12.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データ処理システム内でソフトウェア製品を配布する方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）であって、
配布される各ソフトウェア製品のモデルのセットを提供するステップ（Ａ１）であって、前記モデルが、前記ソフトウェア製品によって提供される機能を表す、複数の使用可能な論理アイテムの間の関係の表示と、前記ソフトウェア製品を配布するのに使用される、複数の使用可能な配布アーティファクトとを含む、ステップ（Ａ１）と、
前記使用可能な論理アイテムの中で論理アイテムのセットを選択するステップ（Ａ２〜Ａ３；Ａ１−３’）と、
前記使用可能な配布アーティファクトの中で前記選択された論理アイテムを実施するのに必要な配布アーティファクトのセットを識別するステップ（Ａ４〜Ａ７；Ａ４−９’）であって、前記必要な配布アーティファクトが、前記モデル内の対応する関係に従って識別される、ステップ（Ａ４〜Ａ７；Ａ４−９’）と、
前記必要な配布アーティファクトを含むソフトウェア・パッケージをビルドするステップ（Ａ８〜Ａ９；Ａ４−９’）と、
各エンティティに前記必要な配布アーティファクトを前記エンティティ上でインストール（Ａ１１；Ａ１１’）させるために、前記システムのデータ処理エンティティのセットに前記ソフトウェア・パッケージを配布するステップ（Ａ１０；Ａ１０’）と
を含む方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項２】
前記必要な配布アーティファクトを識別する前記ステップ（Ａ４〜Ａ７；Ａ４−９’）が、
前記モデルに従って前記選択された論理アイテムのうちの少なくとも１つに依存する各使用可能な論理アイテムを追加することによって前記選択された論理アイテムを更新すること（Ａ４、Ａ７；Ａ４−９’）
を含む、請求項１に記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項３】
前記論理アイテムが、それぞれが前記ソフトウェア製品によって使用可能にされるアプリケーション・アクティビティを示す特徴を含む、請求項１または２に記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項４】
前記論理アイテムが、それぞれが前記ソフトウェア製品によって使用可能にされるアプリケーション・シナリオを示すユース・ケースを含み、前記必要な配布アーティファクトを識別する前記ステップ（Ａ４〜Ａ７；Ａ４−９’）が、
使用可能なユース・ケースによって公開される使用可能な特徴の表示を含む前記モデルのうちの少なくとも１つに従って選択されたユース・ケースに対応する選択された特徴を判定すること（Ａ４、Ａ７；Ａ４−９’）
を含む、請求項３に記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項５】
前記必要な配布アーティファクトを識別する前記ステップ（Ａ４〜Ａ７；Ａ４−９’）が、
使用可能な特徴をトレースする前記使用可能な配布アーティファクトの表示を含む前記モデルのうちの少なくとも１つに従って選択された特徴に対応する前記配布アーティファクトを識別すること（Ａ５〜Ａ７；Ａ４−９’）
を含む、請求項３または４に記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）。
【請求項６】
前記エンティティ上で使用可能である前記論理アイテムを判定する、各エンティティのステップ（Ａ３ａ’〜Ａ３ｄ’、Ａ１２’）であって、前記使用可能な論理アイテムが、前記エンティティにインストールされた対応する必要な配布アーティファクトによって実施される、ステップ（Ａ３ａ’〜Ａ３ｄ’、Ａ１２’）と、
前記エンティティに配布される前記ソフトウェア・パッケージをビルドするために、前記必要な配布アーティファクトを識別する前記ステップ（Ａ４〜Ａ７；Ａ４−９’）で前記使用可能な論理エンティティを無視する、各エンティティのステップ（Ａ３ｅ‘）と
をさらに含む、請求項１ないし５のいずれかに記載の方法（Ａ１−３’〜Ａ１２’）。
【請求項７】
前記使用可能な論理アイテムを判定する前記ステップ（Ａ３ａ’〜Ａ３ｄ’、Ａ１２’）が、
前記エンティティでの前記対応する必要な配布アーティファクトのインストールに応答して前記エンティティで使用可能である前記特徴の表示を格納すること（Ａ１２’）と、
前記使用可能な特徴の前記格納された表示を取り出すこと（Ａ３ｄ’）と
を含む、請求項３ないし５のいずれかに依存する時の請求項６に記載の方法（Ａ１−３’〜Ａ１２’）。
【請求項８】
前記方法のステップの実行が、少なくとも１つのサービス・プロバイダ（１２５）によって制御される、請求項１ないし７のいずれかに記載の方法（Ａ１−３’〜Ａ１２’）。
【請求項９】
コンピュータ・プログラムがデータ処理システム（１００）上で実行される時、請求項１ないし８のいずれかに記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）を前記データ処理システムに実行させる、コンピュータ・プログラム（４００；５００）。
【請求項１０】
請求項１ないし８のいずれかに記載の方法（Ａ１〜Ａ１１；Ａ１−３’〜Ａ１２’）のステップを実行する手段（４００；５００）を含むシステム（１００）。
【国際調査報告】
2010521726.tif 000013
2010521726.tif 000014
2010521726.tif 000015