【手続補正書】
【提出日】平成24年1月6日(2012.1.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ実行可能命令を格納する１つまたは複数のコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、
前記コンピュータ実行可能命令は、コンピュータシステムの１つまたは複数のプロセッサによって実行されると、前記コンピュータシステムにプログラムの複数のコンポーネントを作成する方法を実行させ、
前記方法は、
コンポーネント領域を生成する動作と、
前記コンポーネント領域に付随する１つまたは複数のコンポーネントから成る初期のセットをインスタンス化する動作であって、前記最初のセットの前記コンポーネントの各々によってインポートされるサービスがあればこれらを前記コンポーネント領域に表示され、かつ前記最初のセットの前記コンポーネントの各々によってエクスポートされるサービスがあればこれらも前記コンポーネント領域に表示する動作と、
ネストされたコンポーネントを含む前記１つまたは複数のコンポーネントから成る初期のセットのうちのいずれかのコンポーネントを識別する前記コンポーネント領域の動作と、
１つまたは複数のネストされたコンポーネントを含む前記初期のコンポーネントセットのうちの各コンポーネントについて、前記１つまたは複数のネストされたコンポーネントを含むコンポーネントを展開する動作であって、前記ネストされたコンポーネントによってインポートされるサービスがあればこれらが前記コンポーネント領域に表示される範囲まで前記ネストされたコンポーネントが前記コンポーネント領域に表示され、かつ前記ネストされたコンポーネントによってエクスポートされるサービスがあればこれらが前記コンポーネント領域に表示される展開動作と、
エクスポートされるサービスを求めて前記初期のコンポーネントセットにポーリングを行う前記コンポーネント領域の動作と、
インポートされるサービスを求めて前記初期のコンポーネントセットにポーリングを行って、前記初期のコンポーネントセットのうちの前記コンポーネントのうちの少なくとも１つのインポートされた前記サービスのうちの少なくとも１つを、前記初期のコンポーネントセットのうちの別のコンポーネントによってエクスポートされる前記サービスのうちの１つで満足させる動作であって、１つまたは複数のネストされたコンポーネントを含む各コンポーネントについての前記展開動作、エクスポートされるサービスを求めてポーリングを行う前記コンポーネント領域の動作、及びインポートされるサービスを求めてポーリングを行って前記インポートされるサービスのうちの少なくとも１つを満足させる前記コンポーネント領域の動作は、予め定められた順番で行われる、前記コンポーネント領域の動作と
を含み、前記予め定められた順番は、第１が１つまたは複数のネストされたコンポーネントを含む各コンポーネントについての前記展開動作、第２がエクスポートされるサービスを求めてポーリングを行う前記コンポーネント領域の動作、及び第３がインポートされるサービスを求めてポーリングを行って前記インポートされるサービスのうちの少なくとも１つを満足させる前記コンポーネント領域の動作であることを特徴とするコンピュータプログラム製品。
【請求項２】
前記方法が更に、
エクスポートされるサービスを求める前記ポーリング動作の前に、エクスポートされるサービスを求めるポーリングが開始されようとしていることを前記初期のコンポーネントセットのうちの少なくともいくつかに通知する動作を含むことを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項３】
前記方法が更に、
インポートされるサービスを求めてポーリングを行って前記インポートされるサービスのうちの少なくとも１つを満足させる前記動作の後に、インポートされるサービスを求めてポーリングを行って前記インポートされるサービスのうちの少なくとも１つを満足させる動作が、完了したことを前記最初のコンポーネントセットに通知する動作を含むことを特徴とする請求項２に記載のコンピュータプログラム製品。
【請求項４】
前記方法が更に、
インポートされるサービスを求めてポーリングを行って前記インポートされるサービスのうちの少なくとも１つを満足させる前記動作の後に、インポートされるサービスを求めてポーリングを行って前記インポートされるサービスのうちの少なくとも１つを満足させる動作が、完了したことを前記最初のコンポーネントセットに通知する動作を含むこと特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項５】
前記１つまたは複数のネストされたコンポーネントを含む各コンポーネントについての前記展開動作、エクスポートされたサービスを求める前記コンポーネント領域の前記ポーリング動作、第３にインポートされるサービスを求めてポーリングを行って前記インポートされるサービスのうちの少なくとも１つを満足させる動作を含む集合動作は、前記ポーリングの集合動作のうちの最初のイテレーションにおいて行なわれ、
前記方法は更に、
前記インポートされるサービスを求めてポーリングを行って前記集合動作のうちの前記最初のイテレーションにおいてインポートされる前記サービスのうちの少なくとも１つを満足させる動作の後に、前記サービスのインポートのうちの少なくとも１つのインポートを満足させる前記動作の結果として追加された更なるサービスのインポートがあればこれを判断する動作と、
前記集合動作のうちの次のイテレーションを行う動作と
を含むことを特徴とする請求項１に記載のコンピュータプログラム製品。
【請求項６】
前記集合動作は、全てのサービスのインポートを満足させるまで、複数のイテレーションについて反復して行われることを特徴とする請求項５に記載のコンピュータプログラム製品。
【請求項７】
１または複数の追加のサービスのインポートは、追加のコンポーネントが前記コンポーネント領域に付随する結果として追加され、前記初期のコンポーネントセットのサービスインポートを満足させ、少なくとも１つの追加のサービスインポートは、前記追加のコンポーネントのうちの少なくとも１つのサービスインポートであることを特徴とする請求項５に記載のコンピュータプログラム製品。
【請求項８】
前記追加のサービスインポートは、そのサービスインポートのうちの別のサービスインポートを満足させた後に、前記初期のコンポーネントセットのうちの１つによって追加されたことを特徴とする請求項７に記載のコンピュータプログラム製品。
【請求項９】
コンピュータ実行可能命令を格納する１つまたは複数のコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、前記コンピュータ実行可能命令は、コンピュータシステムの１つまたは複数のプロセッサで実行されると、前記コンピュータシステムにプログラムの複数のコンポーネントを作成する方法を実行させ、前記方法は下記の行動からなり、
インスタンス化されたコンポーネントを結びつけるためのコンポーネント領域を作成することと、
ランタイムにおいて、インスタンス化され前記コンポーネント領域と関連付けられた前記コンポーネントのサービスインポートとサービスエクスポートのマッチングと、論理メカニズムの使用に基づいて、ランタイムにおいて、前記コンポーネント領域に含まれるコンポーネントを動的にバインディングするために用いられる前記論理メカニズムを含むコンポーネント領域マネージャを作成することであって、前記コンポーネント領域マネージャはランタイムにおいて下記を実行する：
複数のインスタンス化されたコンポーネントを前記コンポーネント領域に関連付けることと、
繰り返し下記を実行することであって：
ネストされたコンポーネントである、前記コンポーネント領域に関連つけられたいかなるコンポーネントも識別し、前記ネストされたコンポーネントを展開することと、
これらエクスポートされるサービスとこれらインポートされるサービスを前記コンポーネント領域の前記インスタンス化されたコンポーネントのそれぞれによって識別し、インデックスをつけることであって、前記展開されたネストされたコンポーネントのいかなるエクスポートされインポートされたサービスも含み、
ランタイムにおいてサービスエクスポートデータとサービスインポートデータを比較し、特定のサービスをエクスポートする少なくとも第１のコンポーネントと、前記特定のサービスとインポートする少なくとも第２のコンポーネントとを識別し、ランタイムにおいて前記第１のコンポーネントが前記特定のサービスを前記第２のコンポーネントが利用可能になるように前記特定のサービスに対する前記第１のコンポーネントと前記第２のコンポーネントとをバインディングし、
バインディングする必要があるインポートされた他のサービスがあるかどうかを算出し、あれば、次の前記イテレーションを続ける
コンピュータプログラム製品。
【請求項１０】
前記イテレーションのうちの少なくとも１つについて、前記インポートされるサービスのうちの少なくとも１つをバインディングする動作は、
前記コンポーネント領域内の前記インスタンス化されたコンポーネントを探す動作と、
前記コンポーネント領域内の前記インスタンス化されたコンポーネントのうちのいずれも、少なくとも１つのほかのインスタンス化されたコンポーネントによってインポートされた少なくとも１つのサービスとバインディングされることができるサービスをエクスポートしないと判断する動作と、
まだインスタンス化されておらず、前記コンポーネント領域と関連つけられていない異なるコンポーネントを見つけるカタログを探す動作であって、前記異なるコンポーネントは前記少なくとも１つのほかのインスタンス化されたコンポーネントによってインポートされた前記サービスとバインディングされることができる前記サービスをエクスポートし、
前記異なるコンポーネントをインスタンス化し、前記コンポーネント領域と関連つける動作と、
前記異なるコンポーネントの前記インスタンス化によってエクスポートされるサービスを、前記少なくとも１つのほかのインスタンス化されたコンポーネントによってインポートされる前記少なくとも１つのサービスにバインディングする動作と
を含むことを特徴とする請求項９に記載のコンピュータプログラム製品。
【請求項１１】
前記展開されたネストされたコンポーネントは、ネストされたコンポーネントの階層が少なくとも２つあることを特徴とする請求項９に記載のコンピュータプログラム製品。
【請求項１２】
前記イテレーションのうちの少なくとも１つについて、前記コンポーネントによってエクスポートされる前記サービスを識別する前に、前記コンポーネント領域の前記コンポーネントに通知する動作を更に含むことを特徴とする請求項９に記載のコンピュータプログラム製品。
【請求項１３】
前記反復する動作が完了した後に、前記コンポーネント領域の前記コンポーネントに通知する動作を更に含むことを特徴とする請求項９に記載のコンピュータプログラム製品。
【請求項１４】
コンピュータ実行可能命令を格納する１つまたは複数のコンピュータ可読記憶媒体を含むコンピュータプログラム製品であって、前記コンピュータ実行可能命令は、コンピュータシステムの１つまたは複数のプロセッサで実行されると、前記コンピュータシステムにプログラムの複数のコンポーネントを作成する方法を実行させ、前記方法は下記の動作を含み、
コンピュータシステムメモリの一部内にコンポーネント領域を作成することであって、前記コンポーネント領域は、論理コンテナの中でインスタンス化されたコンポーネントと関連つける、前記論理コンテナとしての機能を果たし、
ランタイムにおいてインスタンス化され、前記コンポーネント領域に関連つけられる前記コンポーネントのサービスインポートとサービスエクスポートとをマッチングすることに基づいて、ランタイムにおいて前記コンポーネント領域内に含まれるコンポーネントを動的にバインディングするために使用される論理メカニズムを含むコンポーネント領域マネージャを作成することであって、前記論理メカニズムは、
複数のインスタンス化されたコンポーネントと前記コンポーネント領域とを関連つける関連メカニズムと、
ネストされたコンポーネントである、前記コンポーネント領域に関連つけられたいかなるコンポーネントも識別し、前記ネストされたコンポーネントを展開するネストされたコンポーネントメカニズムと、
ランタイムにおいて、前記コンポーネント領域の前記インスタンス化されたコンポーネントのそれぞれによってエクスポートされたこれらサービスとインポートされたこれらサービスとを識別し、インデックスをつける前記コンポーネント領域マネージャのサービスインベントリメカニズムであって、前記展開されたネストされたコンポーネントのいかなるエクスポートされ、インポートされたサービスを含む、サービスインベントリメカニズムと、
ランタイムにおいてサービスエクスポートデータとサービスインポートデータとを比較し、特定のサービスをエクスポートする少なくとも第１のコンポーネントと前記特定のサービスをインポートする少なくとも第２のコンポーネントとを識別し、前記第１のコンポーネントが、前記第２のコンポーネントが前記特定のサービスを利用可能にするように、前記特定のサービスに対して前記第１のコンポーネントを前記第２のコンポーネントにバインディングする、前記コンポーネント領域マネージャのマッチングメカニズムと
を含むことを特徴とするコンピュータプログラム製品。