【手続補正書】
【提出日】平成24年10月15日(2012.10.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
分散コンピューティング環境内の目的のサービスに組み込まれた契約をバインドする方法を実行するためのコンピュータ実行可能命令を有する１つまたは複数のコンピュータ可読記憶装置であって、前記方法は、
クライアントサービスが依存する機能面を満たす指示を受信するステップと、
前記クライアントサービスの機能面の依存性を満たす契約を識別するステップであって、前記識別される契約は、１つまたは複数のインタフェースを定義し、前記１つまたは複数のインタフェースの動作を部分的に統治するための制約を特定するプロパティのセットを保持する、ステップと、
１つまたは複数のインタフェースを確立して、調整するために、前記識別された契約を組み込むステップであって、
（ａ）分散コンピューティング環境内に、前記１つまたは複数のインタフェースを確立するサブステップと、
（ｂ）前記プロパティのセットから得た値を、前記確立した１つまたは複数のインタフェースに与えることよって、前記確立した１つまたは複数のインタフェースを構成するサブステップであって、それによって前記１つまたは複数のインタフェースを介して前記クライアントサービスが前記目的のサービスの一部に到達することを可能にし、前記１つまたは複数のインタフェースは、構成されると、前記クライアントサービスから前記ターゲットサービスへの通信を管理する時に前記契約によって特定される前記制約を実施し、前記制約は、前記目的のサービスへのアクセスを制限すること、前記クライアントサービスを認証すること、前記目的のサービスへの接続を開始または終了すること、前記目的のサービスへのトラフィックの流れをフィルタリングすること、またはいずれのポートがコールを受信するために使用されるかを決定すること、のうちの少なくとも１つに関連する、サブステップと、
を含むステップと、
前記組み込まれた契約を前記目的のサービスにバインドするステップであって、
（ａ）１つまたは複数の、確立され、構成されたインタフェースを、１つまたは複数のロールインスタンスにリンクするサブステップであって、前記一つまたは複数のロールインスタンスは、実行されると、前記目的のサービスに機能を与える一種のコンポーネントプログラムを表す少なくとも１つのロールの複製を生じさせる１つまたは複数のロールインスタンスにリンクするサブステップと、
（ｂ）前記目的のサービスの実行の管理を担当するファブリックコントローラを介して、前記リンクをマッピングするサブステップと、
を含むステップと
を含むことを特徴とする１つまたは複数のコンピュータ可読記憶装置。
【請求項２】
前記方法は、分散コンピューティング環境内のノードに前記目的のサービスの１つまたは複数のロールインスタンスをデプロイする詳細であって、１つまたは複数のロールインスタンス上に配置された入力エンドポイントと出力エンドポイント間の相互接続を構築するデプロイメントの詳細を保持するサービスモデルを提供するステップ
をさらに含むことを特徴とする請求項１に記載のコンピュータ可読記憶装置。
【請求項３】
前記１つまたは複数の確立したインタフェースは、前記組み込まれた契約をバインドすると、１つまたは複数のロールインスタンスの入力エンドポイントにリンクされること
を特徴とする請求項２に記載のコンピュータ可読記憶装置。
【請求項４】
前記確立したインタフェースと１つまたは複数のロールインスタンスをリンクするステップは、分散コンピューティング環境を横断する通信チャネルを割り当てて、前記１つまたは複数の確立したインタフェースをリンクされた入力エンドポイントに動作可能に結合するサブステップ
を含むことを特徴とする請求項３に記載のコンピュータ可読記憶装置。
【請求項５】
前記割り当てられた通信チャネルは、前記１つまたは複数の確立したインタフェースを前記１つまたは複数のロールの前記入力エンドポイントにリンクするロードベアリング（ＬＢ）チャネルを含み、
前記方法は、
前記１つまたは複数の確立したインタフェースで、前記クライアントサービスからのコールを受信するステップと、
ＬＢ機構を呼び出し、前記ＬＢチャネルの利用可能な通信チャネルに前記コールを分配するステップと
をさらに含むこと
を特徴とする請求項４に記載のコンピュータ可読記憶装置。
【請求項６】
前記方法は、前記１つまたは複数の確立したインタフェースにリンクされた前記１つまたは複数のロールインスタンスの前記入力エンドポイントのロケーションを探すために、ネットワークアドレスを識別するステップ
をさらに含むことを特徴とする請求項４に記載のコンピュータ可読記憶装置。
【請求項７】
前記方法は、前記ネットワークアドレスを、前記クライアントサービスに見えるようにするステップをさらに含み、
前記クライアントサービスのコンポーネントプログラムは、前記ネットワークアドレスを利用して、前記１つまたは複数のロールインスタンスにコールをルーティングするように構成されること
を特徴とする請求項６に記載のコンピュータ可読記憶装置。
【請求項８】
前記割り当てられた通信チャネルは、前記１つまたは複数の確立したインタフェースを、前記１つまたは複数のロールの前記入力エンドポイントにリンクするＳＬＳ（stateless-switch）チャネルを含み、
前記方法は、
前記１つまたは複数の確立したインタフェースで、前記コールと前記選択されたネットワークアドレスとを前記クライアントサービスから受信するステップと、
前記ＳＬＳチャネルの、前記１つまたは複数の確立したインタフェースを前記入力エンドポイントにリンクするように指定された通信チャネルを介して、前記コールをルーティングするステップと
をさらに含むこと
を特徴とする請求項７に記載のコンピュータ可読記憶装置。
【請求項９】
前記バインドのプロセスは、前記１つまたは複数の確立したインタフェースによって実施される前記特定された制約に基づいて、前記１つまたは複数のロールインスタンスを再構成するステップ
をさらに含むことを特徴とする請求項１に記載のコンピュータ可読記憶装置。
【請求項１０】
バインドされた契約を分散コンピューティング環境内のクライアントサービスにバインドするコンピュータ化された方法であって、
１つまたは複数のコンポーネントプログラムを含む前記クライアントサービスから、その依存性を満たす指示を受信するステップと、
前記クライアントサービスの前記１つまたは複数のコンポーネントプログラムの前記依存性を満たす機能を抽象化したものを公開する契約であって、分散コンピューティング環境内で組み込まれ、機能を実行する目的のサービスにバインドされる契約を割り当てるステップと、
前記クライアントサービスを、その動作を開始するために、デプロイするステップであって、
（ａ）前記割り当てられたバインドされた契約によって定義されたインタフェースであって、その割り当てられたバインドされた契約を組み込むと分散コンピューティング環境内に確立されるインタフェースに、前記１つまたは複数のコンポーネントプログラムをリンクするサブステップであって、前記バインドされた契約は、前記インタフェースに関連付けられたプロパティのセットを保持する、サブステップと、
（ｂ）前記目的のサービスの実行の管理を担当するファブリックコントローラに、前記リンクの詳細を書き込むサブステップと、
（ｃ）前記プロパティのセットから得た値を前記確立したインタフェースに与えることによって、前記確立したインタフェースの動作を部分的に統治するための制約を前記確立したインタフェースに適用するサブステップと、
（ｄ）前記１つまたは複数のコンポーネントプログラムを構成するために、前記適用された制約を前記クライアントサービスに公開するサブステップと、
を含むステップと
を含むことを特徴とするコンピュータ化された方法。
【請求項１１】
前記１つまたは複数のコンポーネントプログラムを、インタフェースにリンクするステップは、
前記１つまたは複数のコンポーネントプログラムに配置された前記出力エンドポイントを、それぞれ識別するサブステップと、
分散コンピューティング環境内の通信チャネルを割り当てるサブステップであって、前記確立したインタフェースを出力エンドポイントに動作可能に結合する、サブステップと
をさらに含むことを特徴とする請求項１０に記載のコンピュータ化された方法。
【請求項１２】
前記目的のサービスは、少なくとも１つのロールの１つまたは複数のインスタンスを含み、
前記少なくとも１つのロールは、前記目的のサービスの他のロールと共に動作するコンポーネントの個々のクラスを表して、前記クライアントサービスの依存性を満たす前記機能を実現すること
を特徴とする請求項１１に記載のコンピュータ化された方法。
【請求項１３】
前記１つまたは複数のコンポーネントプログラムを構成することは、前記１つまたは複数のコンポーネントプログラムの出力エンドポイントから発せられたコールを、前記１つまたは複数のロールインスタンスの基本となるプロトコルと互換性があるように、形式を合わせるために、前記適用された制約から指示を引き出すこと
を含むことを特徴とする請求項１２に記載のコンピュータ化された方法。
【請求項１４】
前記１つまたは複数のコンポーネントプログラムの前記出力エンドポイントから発せられた前記コールは、分散コンピューティング環境の前記割り当てられた通信チャネルを介して、前記確立したインタフェースにルーティングされること
を特徴とする請求項１３に記載のコンピュータ化された方法。
【請求項１５】
前記確立したインタフェースは、前記制約が適用されると、前記クライアントサービスのＩＤと共に前記適用された制約に基づいて、前記発せられたコールを前記１つまたは複数のロールインスタンスにリレー、または、前記発せられたコールをフィルタリングするように構成されたこと
を特徴とする請求項１３に記載のコンピュータ化された方法。
【請求項１６】
前記クライアントサービスのＩＤは、前記ファブリックコントローラによって記録され、前記１つまたは複数のロールインスタンスに前記発せられたコールをリレーすると、前記発せられたコールに添付された要求を検査して、前記コールのリクエストを引き受けるか否かが確定されること
を特徴とする請求項１５に記載のコンピュータ化された方法。
【請求項１７】
前記要求を前記発せられたコールに添付することは、
前記１つまたは複数のコンポーネントプログラムが前記コールを発したことを検証するために、前記クライアントサービスのＩＤにアクセスすることと、
前記判定されたＩＤと前記クライアントサービスの他の特性を、前記要求に組み込むことによって、前記目的のサービスで個々のセキュリティレベルを保証することと、
を含むことを特徴とする請求項１６に記載のコンピュータ化された方法。
【請求項１８】
分散コンピューティング環境で利用可能な契約を組み込んでバインドすることによって、クライアントサービスを目的のサービスにリンクする方法を行うコンピュータシステムであって、
複数のコンピュータソフトウェアコンポーネントを有するコンピュータ記憶媒体を含むことと、
前記コンピュータソフトウェアコンポーネントは、
自身の依存性を満たす指示を提供するクライアントサービスであって、１つまたは複数のコンポーネントプログラムを含む前記クライアントサービスと、
１つまたは複数のロールインスタンスを含む目的のサービスであって、前記１つまたは複数のロールインスタンスは、実行すると機能を前記目的のサービスに与える一種のコンポーネントプログラムを表す少なくとも１つのロールの複製を生じさせる、目的のサービスと、
前記目的のサービスの前記機能を抽象化したものを公開する契約であって、前記クライアントサービスの前記１つまたは複数のコンポーネントプログラムの前記依存性を満たし、少なくとも１つのインタフェースを定義して、前記少なくとも１つのインタフェースによって実施される制約を特定する契約と、
前記目的のサービスと前記クライアントサービスに前記契約をバインドするファブリックコントローラであって、前記バインドするプロセスは、
（ａ）前記契約を組み込むことで、分散コンピューティング環境内に少なくとも１つのインタフェースを確立するステップと、
（ｂ）前記プロパティのセットから得た値を、前記少なくとも１つの確立したインタフェースに与えることよって、前記少なくとも１つの確立したインタフェースを構成するステップであって、それによって前記クライアントサービスが前記少なくとも１つのインタフェースを介して前記目的のサービスの一部に到達することを可能にし、前記少なくとも１つのインタフェースは、構成されると、前記クライアントサービスと前記ターゲットサービスとの間の通信を管理する時に前記契約によって特定される前記制約を実施する、ステップと、
を含むファブリックコントローラと、
を含み、
前記ファブリックコントローラは、前記確立したインタフェースを介して、前記クライアントサービスの前記１つまたは複数のプログラムコンポーネントを、前記目的のサービスの前記１つまたは複数のロールインスタンスにリンクするように構成される
ことを特徴とするコンピュータシステム。