(57)【要約】【課題】  契約を指定し検査する新規のアプローチを提供する。【解決手段】  確率的計算法を利用してレート、アップタイムおよびキャパシティのうちの少なくとも１つを含むサービス品質を決定する。サービス品質は、エージェントが提供および／または要求するサービスレベルを示すことができ、モデルを介してエージェントの契約を表現し、モデルにコストファンクションを施し、コストファンクションを利用して遷移コストを計算し、遷移コストを使用して遷移ごとに関連するレートを予測することによって得ることができる。さらにこのモデルにエラー状態を施してアップタイムを決定し、このモデルを使用してチャネルキャパシティを決定することが可能である。一般に、要求エージェントおよび提供エージェントのこのサービス品質を比較してこの提供エージェントがこの要求エージェントの性能レベルを満たすことができるかどうかを判定することが可能である。【選択図】  図１
2005182788.tif 000002
【特許請求の範囲】
【請求項１】
プロセス代数および性能予測技法を使用して契約を指定し検査するシステムであって、
前記プロセス代数を使用して前記プロセス代数の少なくとも１つのフラグメントの形で契約を指定する第１のコンポーネントと、
前記指定された契約を、前記性能予測技法を用いて生成されるインプリメンテーションと比較する第２のコンポーネントと
を備え、
前記比較の結果によって前記インプリメンテーションが前記契約を満たすかどうかが判定されることを特徴とするシステム。
【請求項２】
前記プロセス代数は、確率的パイ計算法であることを特徴とする請求項１に記載のシステム。
【請求項３】
前記プロセス代数は、レートをアクションに明示的に関連づけることを特徴とする請求項１に記載のシステム。
【請求項４】
前記プロセス代数は、Ｇｉｌｌｅｓｐｉｅスタイルの確率的エージェントベースのシミュレーションを提供するセマンティックスに関連することを特徴とする請求項１に記載のシステム。
【請求項５】
前記プロセス代数は、プロセス代数ベースのプロセスの実行に対応するラベル付けされた遷移システムにおいてプルーフツリーを遷移に関連づける動作可能セマンティックスを含むことを特徴とする請求項１に記載のシステム。
【請求項６】
前記プロセス代数ベースのプロセスは、パイ計算法プロセスであることを特徴とする請求項５に記載のシステム。
【請求項７】
コストファンクションを使用してレートを表現する数値にプルーフツリーを複合的にマッピングするコンポーネントをさらに備えることを特徴とする請求項１に記載のシステム。
【請求項８】
プロセス代数および性能予測技法を使用して契約を指定し検査する方法であって、
前記プロセス代数の少なくとも１つのフラグメントの形で契約を指定するステップと、
前記性能予測技法を使用して前記契約のインプリメンテーションを予測するステップと、
前記契約の前記インプリメンテーションを前記指定された契約に対して評価して前記指定された契約とそのインプリメンテーションが互いに適合するかどうかを判定するステップと
を含むことを特徴とする方法。
【請求項９】
前記プロセス代数は、Ｇｉｌｌｅｓｐｉｅスタイルの確率的エージェントベースのシミュレーションを提供するセマンティックスを有する確率的パイ計算法であることを特徴とする請求項８に記載の方法。
【請求項１０】
前記プロセス代数を利用してレートをアクションに明示的に関連づけるステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１１】
前記プロセス代数を使用してパイ計算法プロセスの実行に対応するラベル付けされた遷移システムにおいてプルーフツリーを遷移に関連づけるステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１２】
コストファンクションを利用してレートを表現する数値にプルーフツリーを複合的にマッピングするステップをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１３】
第１のエンティティについての性能レベルの定義を記憶する記述コンポーネントと、
前記定義を利用して第２のエンティティが、前記第１のエンティティの前記性能レベルを満たすかどうかを判定するサービスマネージャと
を備えることを特徴とするサービス品質を表現するシステム。
【請求項１４】
前記性能レベルは、レート、アップタイムおよびキャパシティの性能メトリックのうちの少なくとも１つを含むことを特徴とする請求項１３に記載のシステム。
【請求項１５】
前記レートメトリックは、プロセス代数を用いて予測されることを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記プロセス代数は、パイ計算法であることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記レートメトリックは、１つまたは複数の性能コストを決定し、前記１つまたは複数のコストをそれぞれのレートに相関させることによって予測されることを特徴とする請求項１４に記載のシステム。
【請求項１８】
前記１つまたは複数のコストは、前記定義における状態遷移に対して各コストファンクションを再帰的に適用することによって計算されることを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記第１のエンティティに関連するレートメトリックを前記第２のエンティティのレートメトリックと比較して前記第２のエンティティが前記第１のエンティティの前記性能レベルを満たすかどうかを判定することを特徴とする請求項１３に記載のシステム。
【請求項２０】
前記アップタイムメトリックは、ダウンタイムおよび例外状態のうちの一方に関連するエラー頻度を示すことを特徴とする請求項１４に記載のシステム。
【請求項２１】
前記アップタイムメトリックは、エラー状態への遷移にレートを施し、前記エラー状態への遷移に関連する頻度を決定することによって計算されることを特徴とする請求項１４に記載のシステム。
【請求項２２】
前記第１のエンティティに関連する前記アップタイムメトリックを前記第２のエンティティのアップタイムメトリックと比較して前記第２のエンティティが前記第１のエンティティの前記性能レベルを満たすかどうかを判定することを特徴とする請求項１４に記載のシステム。
【請求項２３】
前記キャパシティメトリックは、所与の時刻に処理されるデータ量を示すことを特徴とする請求項１４に記載のシステム。
【請求項２４】
前記キャパシティメトリックは、チャネルにシャノンの定理を適用することによって計算されることを特徴とする請求項１４に記載のシステム。
【請求項２５】
前記第１および第２のエンティティは、ウェブサービスであることを特徴とする請求項１３に記載のシステム。
【請求項２６】
前記第１のエンティティの前記定義を前記第２のエンティティの定義のインプリメンテーションとコンフォーマンスアルゴリズムを用いて比較して前記第２のエンティティが前記性能レベルを満たすかどうかを判定する助けをすることを特徴とする請求項１３に記載のシステム。
【請求項２７】
前記第１のエンティティに関連する前記定義を前記第２のエンティティの性能レベルの定義とコンプライアンスアルゴリズムを用いて比較して前記定義が機能的な等価物であるかどうかを判定することを特徴とする請求項１３に記載のシステム。
【請求項２８】
性能レベルを利用してサービスを選択する助けをする方法であって、
確率的数学ベースのアルゴリズムを使用してエージェントについての性能レートを予測するステップと、
前記予測された性能レートをサービス提供エージェントの公示された性能レートと比較して前記サービス提供エージェントが前記予測されたレートを満たすことできるかどうかを判定するステップと
を含むことを特徴とする方法。
【請求項２９】
前記予測された性能レートに関連するタスクのサービスを行おうと競合する複数のサービス提供エージェントに対して前記予測された性能レートを送信するステップをさらに含むことを特徴とする請求項２８に記載の方法。
【請求項３０】
前記予測された性能レートに関連するタスクのサービスを行おうと競合する複数のサービス提供エージェントから１つまたは複数の公示された性能レートを受信するステップをさらに含むことを特徴とする請求項２８に記載の方法。
【請求項３１】
確率的アルゴリズムを使用して前記エージェントについてのアップタイムを指定するステップをさらに含み、前記アップタイムを利用して前記サービス提供エージェントが前記エージェントの性能レベルを満たすことができるかどうかを判定する助けをすることを特徴とする請求項２８に記載の方法。
【請求項３２】
確率的アルゴリズムを使用して前記エージェントについてのキャパシティを指定するステップをさらに含み、前記キャパシティを利用して前記サービス提供エージェントが前記エージェントの性能レベルを満たすことができるかどうかを判定する助けをすることを特徴とする請求項２８に記載の方法。
【請求項３３】
メッセージ内容記述、エージェントロケーション、および通信プロトコルのうちの少なくとも１つを含む契約において前記予測された性能レートを指定するステップをさらに含むことを特徴とする請求項２８に記載の方法。
【請求項３４】
エージェント間でサービスに関連したネゴシエーションを実施する複数のコンピュータコンポーネントの間で伝送されるデータパケットであって、
性能品質を含み、前記性能品質は、第２のエージェントのレートメトリック、アップタイムメトリックおよびキャパシティメトリックと比較して第１のエージェントが前記第１のエージェントの前記性能品質を満たすかどうかを判定する前記第１のエージェントについてのレートメトリック、アップタイムメトリックおよびキャパシティメトリックを含むことを特徴とするデータパケット。
【請求項３５】
性能レベルを指定する助けをするコンピュータ実行可能コンポーネントを記憶するコンピュータ読取り可能媒体であって、
ウェブサービスを状態として表現するコンポーネントと、
関連する状態遷移にコストファンクションを施すコンポーネントと、
前記コストファンクションを利用して各状態遷移ごとのレートを予測するコンポーネントと、
前記予測されたレートを提案されたレートと比較して提案されたレートが前記予測されたレートを満たすかどうかを判定するコンポーネントと
を含むことを特徴とするコンピュータ読取り可能媒体。
【請求項３６】
性能品質をエージェント間におけるネゴシエーションツールとして使用するシステムであって、
各エージェントごとに性能品質を決定する手段と、
前記各エージェントの前記性能品質を比較する手段と、
前記比較に基づいて少なくとも２つのエージェントをマッチングさせる手段と
を備えることを特徴とするシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にネットワークサービスに関し、より詳細にはサービス要求および／または公示されたサービスプロバイダのレート、アップタイムおよび／またはキャパシティを表現するシステムおよび方法に関する。
【背景技術】
【０００２】
コンピュータ技術およびネットワーキング技術における絶え間ない進歩により、コンピュータが、高コスト、低性能のデータ処理マシンから、低コストおよび効率的な通信、問題解決および娯楽のシステムへと変化してきており、これによって、個人およびビジネスに関係したタスクが毎日実施される方法が大変革を遂げてきている。かかるタスクの例には、基本的な文通、品物の購入、品物の提供、情報収集、サービス要求、サービスの提供などが含まれている。従来は、友人や家族との文通などの個人的なタスクをするには、人が用紙、筆記用具、封筒および切手を入手し、文通のハードコピーを作成し、郵便に手紙を預ける必要があった。以前には、一般に消費者が、お金と時間を費やす必要があり、また物品を受け取り、かつ／または手紙を郵便に投函するには移動が必要であった。さらに、受取人は、送り主が郵便サービスについていくら支払うことに同意したかに応じて、数時間または数日後までその手紙を受け取ることがないことになる。従来のビジネストランザクションには、一般に数個の電話での会話、用紙による通信（例えば、郵便またはファックス）、および／または１人または複数人の当事者との直接のやりとりを伴い、場合によっては、その１人または複数人の当事者が、例えばコスト、距離、またはトランザクションのニーズを満たせないことに起因して、適切な相手でないことが分かることもあり得る。
【０００３】
今日では、ますます多くの個人トランザクションおよびビジネストランザクションが、コンピュータ技術およびネットワーキング技術を用いてスムーズに進められ、かつ／または実施される可能性が高くなっている。例えば、文通、請求書の支払い、買い物、予算編成、および情報収集は、適切なネットワークに接続されたコンピュータの支援と適切なユーザ特権を用いてすべて実現することができる。一例として、消費者／プロバイダは、コンピュータ（例えば、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、セル電話など）を手に入れ、このコンピュータをＬＡＮ、ＷＡＮ、Ｗｉ−Ｆｉネットワーク、インターネットなどのネットワークとインターフェースすることができる。このネットワークは、このコンピュータから、世界中の基本的にどこにでも配置することが可能な１つまたは複数の他のコンピュータ（例えば、サーバ）へと通信リンクを提供することができる。このリンクを利用して、データを交換し、商品を消費し、例えばデータバンクのリポジトリに存在する豊富な情報にアクセスすることができる。かかる通信の別の利点は、自分の家庭で便利に、ユーザの指先またはマウスボタンのクリックで、また何度でも、ユーザにとって無料または最小の費用で利用することができることである。
【０００４】
ウェブドメインは、例えばユーザフレンドリなインターフェース、比較的セキュリティ保護された環境、インターオペラビリティ、および開発業者にフレンドリな環境を提供できるので、ウェブドメインの利点を活用して個人トランザクションおよびビジネストランザクションをますますスムーズに完了できるようになっていく傾向にある。ウェブドメイン中では、ウェブブラウザを介して、様々なウェブサイトおよび／または異種のウェブサーバに関連するサービスにアクセスすることができる。例えば、ウェブユーザは、ウェブブラウザを使用し、サイトのＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒユニフォームリソースロケータ）をウェブブラウザのアドレスバーに入力することにより、ウェブサイトにアクセスすることができる。典型的なＵＲＬは、ウェブサイトに対するリンクをうまく確立できるようにする少なくとも４つの情報を含んでいる。すなわち、このＵＲＬは、情報を交換するための１組の規則および規格と、このウェブサイトのアドレスまたはロケーションと、このウェブサイトを維持している組織名と、組織のタイプを識別する接尾辞（例えば、ｃｏｍ、ｏｒｇ、ｎｅｔ、ｇｏｖおよびｅｄｕ）とを示すプロトコル（通信言語）を含むことが可能である。一例として、架空アドレスｈｔｔｐ：／／ｗｗｗ．ｆｏｏ．ｃｏｍの一例は、以下のように表現することが可能である。すなわち、「ｈｔｔｐ」では、このウェブサーバが、ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌハイパーテキスト転送プロトコル）を利用していることを指定することが可能である。「：／／」は、標準のＵＲＬシンタクスである。「ｗｗｗ」では、「ｗｅｂ」（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂワールドワイドウェブ）内に存在するウェブサイトを指定することが可能である。「ｆｏｏ」では、このウェブサーバが、Ｆｏｏ  Ｃｏｒｐｏｒａｔｉｏｎに配置されていることを指定することが可能である。「ｃｏｍ」では、このＦｏｏ  Ｃｏｒｐｏｒａｔｉｏｎが民間組織であることを指定することが可能である。また、「．」は、前述のフィールド間の分離記号として利用されている。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
インターネット上におけるこの通信の分散手段（異なるロケーションに存在するコンピュータ間の通信）が、「ウェブサービス（ｗｅｂ  ｓｅｒｖｉｃｅ）」と呼ばれる概念をもたらしてきた。一般に、ウェブサービスは、サービスプロバイダを見つけ選択してタスクを実行し、またはかかるサービスを提供するためのメカニズムを実現する、ウェブに関連して実行されるアプリケーションとして定義することができる。多くの場合には、かかるサービスの間の通信は、異種のユーザによって提供されるタスクおよび／またはサービスに関連した情報を提供することを含んでいる。かかる情報を利用して、プロバイダを要求しているサービスを適切なサービスプロバイダとうまくマッチングさせることができる。従来技術は、かかるマッチングのための基本的なフレームワークを提供している。しかし、サービス要求と適切なサービスプロバイダとのマッチングを改善するためにより豊富な情報を提供する高度化されたアプローチが必要になっている。
【課題を解決するための手段】
【０００６】
以下では、本発明のいくつかの態様についての基本的な理解が得られるようにするために本発明の簡単な概要を提示している。この概要は、本発明を広範囲に概説したものではない。本発明の主要な要素または不可欠の要素を特定することも、また本発明の範囲を示すことも共に意図してはいない。その唯一の目的は、本発明のいくつかの概念を、後で提示されるより詳細な説明に対する前置きとして簡単な形式で提示することである。
【０００７】
本発明は、契約を指定し検査する新規のアプローチを提供するものである。このシステムおよび方法では、指定メカニズムとして確率的パイ（ｓｔｏｃｈａｓｔｉｃ−ｐｉ）技術を使用し、インプリメンテーション（ｉｍｐｌｅｍｅｎｔａｔｉｏｎ）として性能予測技術を使用してこの指定に対して評価を行う。このようにして、契約を確率的パイのフラグメントの形で指定し、この指定に対してインプリメンテーションを検査することができる。本発明は、確率的パイ計算法を活用してレートをアクションに明示的に関連づけており、ここで、セマンティックス（ｓｅｍａｎｔｉｃｓ）によって、Ｇｉｌｌｅｓｐｉｅスタイルの確率的エージェントベースのシミュレーションが可能になる。さらに、本発明では、確率的パイ計算法によって拡張された動作可能セマンティックスが活用され、これによってパイ計算法プロセスの実行に対応するラベル付けされた遷移システム中でプルーフツリー（ｐｒｏｏｆ−ｔｒｅｅ）を遷移に関連づけることができるようになる。さらに、本発明では、レートを表現する数値に対してかかるプルーフツリーを複合的にマッピングするコストファンクションを提供する技法を活用している。
【０００８】
本発明は、レート、アップタイム、および／またはキャパシティを含めてサービス品質に関連した豊富な情報を提供するシステムおよび方法を含んでいる。かかる性能は、要求に関連づけることが可能であり、この要求に対してサービスするために必要とされる性能レベルを指定し、または要求に対してサービスするために提供される性能レベルなどの提供されるサービスを指定し、あるいはその両方を行うことができる。確率的計算法（例えば、プロセス代数）などの数学を利用してサービス性能を決定し、またはサービス性能を表現し、あるいはその両方を行うことができる。適切な数学の例には、それだけには限定されないが、パイ計算法（ｐｉ  ｃａｌｃｕｌｕｓ）およびロー計算法（ｒｈｏ  ｃａｌｃｕｌｕｓ）およびその派生法が含まれる。さらに、メッセージ内容、サービスロケーション、通信プロトコルなどを記述する情報と一緒に記述（例えば、契約）中にサービス性能を含めることができる。一般に、要求エージェントおよびサービス提供エージェントのために指定および／または予測されるサービス性能を比較して、そのプロバイダがこの要求された性能レベルを満たすことができるかどうかを判定することができる。前述のアプローチでは、一般に確率的計算法を利用して、エージェントについてのレート、アップタイム、および／またはキャパシティなどの豊富な性能データを提供することのない従来技法に対して優れた新規な拡張が提供される。
【０００９】
本発明の一態様においては、エージェント（例えば、ウェブサービス）についてのサービス性能をうまく表現することができるシステムが示されている。このシステムは、このエージェントのユーザがエージェントについての性能レベルを指定することができるようにするサービスマネージャコンポーネントを含んでいる。ユーザが要求してこのエージェント（またはこのエージェントからの要求）に対してサービスし、またはエージェントが使用して要求に対してサービスする、最小、所望および／または所要の性能レベルを決定することができる。この性能レベルは、（例えば、パイ計算法および／またはロー計算法のような確率的計算法などのプロセス代数を介した）数学的アルゴリズムとして生成および／または表現することが可能であり、それによってこの要求またはこのサービスについての性能レベルを計算および／または予測することが可能であり、それによって要求および／または提供されたサービス品質の客観的な尺度がもたらされる。この性能レベルを利用して、例えばレート、アップタイム、および／またはキャパシティなどの判断基準を示すことができる。
【００１０】
本発明の別の態様によれば、この性能表現システムは、性能レベルの記述を記憶することが可能な記述コンポーネントと、この記述のインプリメンテーションを記憶することが可能なインプリメンテーションコンポーネントをさらに含んでいる。この記述は、レート、アップタイム、および／またはキャパシティに関連した情報、ならびに他の情報を含むことができる。この記述コンポーネントに記憶された記述を他のエージェントの性能記述と比較して、これらのエージェントが機能的に等価であるかどうかが判定される。この比較は、一般にコンプライアンスアルゴリズム（ｃｏｍｐｌｉａｎｃｅ  ａｌｇｏｒｉｔｈｍ）を用いて実施される。さらに、かかる記述をこのインプリメンテーションコンポーネントに記憶されたインプリメンテーションと比較して、サービスプロバイダがエージェントによって指定される性能品質を満たすことが可能かどうかを判定することができる。この比較は、コンフォーマンスアルゴリズム（ｃｏｎｆｏｒｍａｎｃｅ  ａｌｇｏｒｉｔｈｍ）を用いて実施することができる。どのエージェントもそれらの記述および／またはインプリメンテーションについて他のエージェントに対して選択的に公示することができる。
【００１１】
本発明のさらに他の態様においては、ネゴシエーションエージェント（ｎｅｇｏｔｉａｔｉｎｇ  ａｇｅｎｔ）を示すシステムが示されている。少なくとも１つのネゴシエーションエージェントは、指定された性能レベルのサービスを求めて「問合せ（ａｓｋ）」を送信することができる。この「問合せ」を他のエージェントのうちの少なくとも１つが利用して、かかるエージェントがその指定された性能レベルを満たすことができるかどうかを判定する。さらに、少なくとも１つのエージェントは、他のエージェントのうちの１つからの要求を処理するために提供する性能レベルを公示する「入札（ｂｉｄ）」を送信することができる。さらに、この「入札」をコストに関連づけて、その結果、この「入札」を受信するエージェントがどれも、提供されるサービスに関連するコストについて通知を受けるようにすることができる。この「問合せ」および「入札」で提供される両方の性能レベルおよびそれらの比較は、プロセス代数を介して決定し判定することができる。さらに、レートコンポーネント、アップタイムコンポーネント、およびキャパシティコンポーネントを使用してそれぞれそのエージェントについてのレート、アップタイムおよびキャパシティを決定することができる。この情報をこの「問合せ」または「入札」に組み込んで「問合せ」が「入札」によって満たすことができるかどうかをうまく判定することができる。
【００１２】
本発明のさらに他の態様においては、性能レベルを利用するためのモデルおよび方法が示されている。これらのモデルは、契約の様々な状態を表現すること、および状態遷移を施して例えばレート、アップタイム、およびキャパシティなどの性能判断基準を決定することを含んでいる。この方法は、ネゴシエーションエージェントについての性能レベルをうまく判定および／または利用するようにする例示の動作（ａｃｔ）を提供する。システムと同様にこれらのモデルおよび方法もプロセス代数を利用している。
【００１３】
以下の説明および添付図面では、本発明のある種の例示の態様が詳細に記述されている。しかし、これらの態様は、本発明の原理を使用することができる様々な方法のうちのいくつかしか示しておらず、本発明では、かかるすべての態様およびその等価物を含んでいることが意図されている。本発明の他の利点および新規な特徴については、これらの図面に関して考察するとき、本発明の以下の詳細なる説明から明らかとなろう。
【発明を実施するための最良の形態】
【００１４】
本出願書類において利用されているように、用語「コンポーネント」、「システム」などは、コンピュータに関連したエンティティ、すなわち実行に際してのハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、またはソフトウェアを意味するものとする。例えば、コンポーネントは、それだけには限定されないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータであってもよい。例としては、サーバ上で実行されるアプリケーションもサーバも共にコンポーネントの可能性がある。１つまたは複数のコンポーネントが、プロセスおよび／または実行スレッドの内部に存在することが可能であり、１つのコンポーネントが、１台のコンピュータ上に局在することも、複数台のコンピュータ間に分散することも可能である。
【００１５】
本発明は、ウェブサービスなどのエージェントについてのサービス品質を指定するシステムおよび方法に関する。サービス品質は、レート、アップタイム、および／またはキャパシティ仕様（例えば、メトリック）を含むことが可能で、これらは、要求に対してサービスする所要／所望の性能、および／または要求に対してサービスする利用可能な／提供される性能を示すことができる。かかるサービス品質仕様は、確率的計算法を利用してサービス提供エージェントが別のエージェントからの特定の要求を満たすことができるかどうかを判定する技法を用いて予測することができる。例としては、このシステムおよび方法では、確率的パイ技術を指定メカニズムとして使用し、性能予測技術をインプリメンテーションとして使用してこの指定に対して評価を行うことが可能である。例えば、確率的パイ計算法を利用してレートをアクションに明示的に関連づけることができ、ここでは、セマンティックスによってＧｉｌｌｅｓｐｉｅスタイルの確率的エージェントベースのシミュレーションが可能になる。また、関連した拡張動作可能セマンティックスを利用してパイ計算プロセスの実行に対応するラベル付きの遷移システム中の遷移にプルーフツリーを関連づけることが可能になる。また、コストファンクションを介してレートを表現する数値にかかるプルーフツリーを複合的にマッピングすることが可能である。以上により、契約が確率的パイのフラグメントの形で指定することが可能で、インプリメンテーションがその指定に対して検査される新規な技法が提供される。
【００１６】
本発明を、図面を参照して説明している。図面中、全体を通して、同様な参照符号を使用して同様な要素について言及している。以下の説明においては、説明の目的で、数多くの特定の詳細を記述して本発明の完全な理解が得られるようにしている。しかし、これらの特定の詳細を用いずに本発明を実施できることは明らかであろう。他の例では、よく知られている構造およびデバイスをブロック図形式で示して本発明をうまく説明できるようにしている。
【００１７】
図１は、サービス性能を表現する助けをするシステム１００を示している。このシステム１００は、エージェントについての性能レベルを定義する（例えば、指定する、予測するなど）ために利用することが可能なサービスマネージャコンポーネント１１０と、このサービスマネージャコンポーネント１１０を様々なエージェントに結合することができるインターフェースコンポーネント１２０とを備えている。本発明の態様に従って使用することができるエージェントの例には、それだけには限定されないが、サービスを要求することが可能なエージェント、要求に対してサービスする（取り扱う、処理する、実行する、応答するなど）ことが可能なエージェント、およびサービスを要求することも要求を取り扱うことも可能なエージェントが含まれる。
【００１８】
一例として、適切なエージェントは、バスまたはネットワーク上で他のコンポーネント（例えば、他の状態機械）と相互作用する状態機械とすることが可能である。かかる状態機械は、（例えば、信号を介して）データまたは処理サービスを求める要求を送信することが可能である。さらに、この状態機械は、データまたは処理サービスをかかるサービスを要求している別のコンポーネントに提供することが可能である。利用されるバスおよび／またはネットワークは、この状態機械にとってローカルに、この状態機械および複数の他のコンポーネントにとって共通に、またはこの状態機械からはリモートとすることが可能なことを理解されたい。さらに、様々なプロトコルを利用してバスおよび／またはネットワーク上での通信をうまく進めることが可能である。別の例では、エージェントは、ＧＵＩ（ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  ｉｎｔｅｒｆａｃｅグラフィックユーザインターフェース）を利用した従来からのウェブサーバ／ウェブページシステムにおけるクライアントおよび／またはサーバとすることが可能である。さらに別の例では、エージェントは、ウェブサービス環境中のクライアントおよび／またはサーバとすることが可能であり、ここでは、ビジネスロジック、データ、および処理が、プログラマチックインターフェース（ｐｒｏｇｒａｍｍａｔｉｃ  ｉｎｔｅｒｆａｃｅ）を介してまたネットワークを横切ってウェブサービスの間で共用され、ウェブサービスをＧＵＩ内部に組み込み、または特定の機能を提供するために実行可能とすることができる。したがって、このエージェントは、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどの様々なネットワークトポロジ上の１つまたは複数の他のエージェント（例えば、クライアント、サーバおよびウェブサービス）と情報をやりとりし、例えば、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）、ＦＴＰ（Ｆｉｌｅ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）、ＳＭＴＰ（Ｓｉｍｐｌｅ  Ｍａｉｌ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）のようなプロトコルを移送することが可能である。
【００１９】
上記例は、本発明に従って使用することが可能な様々なタイプのエージェントの一例を提供し、これらの網羅的なリストではないことを理解されたい。さらに、かかるエージェントは、ソフトウェア、ファームウェア、および／またはハードウェアで表現および／または実施され、異種のシステム上に、または１つのシステムと接続して分散することが可能であることを理解されたい。例えば、エージェントは、ＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＤＨＴＭＬ（Ｄｙｎａｍｉｃ  ＨＴＭＬ）、ＳＧＭＬ（Ｓｔａｎｄａｒｄ  Ｇｅｎｅｒａｌｉｚｅｄ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）、ＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）などのマークアップ言語で表現することが可能であり、Ｃベースの言語などのプログラミング言語で実装することができる。さらに、本明細書中で利用されるエージェントは、どのような特定のオペレーティングシステム（ＯＳ）にも限定されることはない。
【００２０】
このサービスマネージャコンポーネント１１０により、適切な特権（例えば、エージェント所有者、エージェント管理者、設計者、プログラマなど）をもつエージェントのユーザは、このエージェントについての性能レベルを指定することが可能になる。この性能レベルは、エージェントまたはエージェントからの要求に対してサービスを行うことをユーザが要求する、最小の、所望の、および／または所要の性能レベルを決定することができる。別の例では、この性能レベルは、エージェントが使用して要求に対してサービスを行う性能レベルを示すことが可能である。かかる性能は、エージェントごとに変化し、また固定または可変とすることができることを理解されたい。実際に利用される性能レベルが、要求または選択された性能レベルおよび／または使用可能なリソースに基づいているように可変な性能レベルを範囲として提示することが可能である。さらに、消費されまたは割り付けられるリソース量がさらに、要求エージェントが特定の性能レベルについて支払う用意のある内容のファンクションとなり得るように範囲内の各性能レベルをコストに関連づけることが可能である。
【００２１】
ユーザは、手動でこのサービスマネージャコンポーネント１１０に対して性能レベルを提供（例えば、アップロードまたは内部生成）することが可能であり、あるいは、インテリジェンス技術（例えば、機械学習技法）を用いてこの性能レベルを自己生成することが可能であることを理解されたい。さらに、この性能レベルを、数学的アルゴリズムによって生成し、または数学的アルゴリズムとして表現し、あるいはその両方を行うことが可能であり、これによって、要求またはサービスについての性能レベルを計算および／または予測することが可能になる。本発明の一態様においては、この数学的アルゴリズムは、パイ計算法および／またはロー計算法のような確率的計算法などのプロセス代数に基づいたものにすることが可能である。したがって、この性能レベルでは、要求および／または提供されるサービス品質の客観的な尺度を表現することが可能である。さらに、この性能レベルでは、以下で詳細に説明するような、レート、アップタイム、キャパシティなどの様々な情報を示すことが可能である。
【００２２】
以上で簡単に指摘したように、インターフェースコンポーネント１２０は、このサービスマネージャコンポーネント１１０をエージェントに結合することが可能である。このインターフェースコンポーネント１２０は、本質的に任意のエージェントとサービスマネージャコンポーネント１１０を結合しこれらの間における通信を提供するために様々なプロトコルを含むことが可能であることを理解されたい。さらに、このインターフェースコンポーネント１２０は、複数のエージェントおよび／またはサービスマネージャコンポーネント１１０によって同時利用および／または逐次利用することが可能である。例えば、このサービスマネージャコンポーネント１１０は、インターフェースコンポーネント１２０を介して複数のエージェントに結合することが可能であり、ここで、複数のエージェントについての性能をうまく指定できるようにするために利用することが可能である。さらに、このインターフェースコンポーネント１２０を介して複数のサービスマネージャコンポーネント１１０をエージェントに対して結合することが可能であり、ここで、任意のサービスマネージャコンポーネント１１０が、このエージェントからの要求についての性能を指定し、またはこのエージェントからの少なくとも要求の一部分に対してサービスしようと競合し、あるいはその両方を行うことが可能である。
【００２３】
一般に、従来のシステムでは、本明細書中で説明しているように形式的なプロセス言語を介して、性能（例えば、レート、アップタイム、キャパシティなど）を指定することが規定されていない。その代わり、かかるシステムでは、一般にタスクレートなどの情報を計算し、かかる情報について手動でプログラムするようにプログラマに負担がかかっている。したがって、従来技法では、豊かさが欠如しており、他のタスクを実施することによってもっと効率的に利用できる限られたリソースを浪費する可能性がある。さらに、従来技法は、計算エラーおよび／またはプログラマの主観性の影響を受けやすい。
【００２４】
本発明では、プロセス代数を利用して、要求を処理する性能レベルをサービスプロバイダがこの要求に対してサービスするために提供する性能レベルと比較するために利用することができる客観的なメトリックを（本明細書中で説明しているような性能予測技術を介して）予測することによって、かかる問題を緩和することが可能である。したがって、性能レベルを要求エージェントまたはサービスエージェントについて指定することが可能であり、この予測された性能レベルをこの指定された性能レベルと比較することにより、かかる性能をエージェント間のネゴシエーション中に利用して要求されたサービスの効率的で信頼できる処理を実施することが可能である。本発明の一態様においては、確率的パイ計算法および関連する動作可能セマンティックスを利用してパイ計算法プロセスの実行に対応するラベル付けされた遷移システム中で、レートを、遷移を伴うアクションおよびプルーフツリーに明示的に関連づけ、ここで、コストファンクションを介してレートを表現する数値にこのプルーフツリーを複合的にマッピングすることが可能である。以上により、契約を確率的パイのフラグメントの形で指定することが可能になり、インプリメンテーションをその指定に対して検査することが可能になる。
【００２５】
図２は、サービス性能を表現する助けをするシステム２００を示すものである。このシステム２００は、サービスマネージャコンポーネント１１０およびインターフェースコンポーネント１２０と、さらに記述コンポーネント２１０およびインプリメンテーションコンポーネント２２０とを備える。以上で指摘したように、このサービスマネージャコンポーネント１１０は、エージェントに対してサービスするために要求される性能レベル、および／または要求に対してサービスするエージェントが提供する性能レベルを指定する助けをする。プロセス代数（例えば、パイ計算法およびロー計算法）を用いてかかる性能を決定することが可能であり、このプロセス代数により、サービス要求エージェントとサービス提供エージェントの間のネゴシエーション判断基準として利用できる客観的な尺度がもたらされる。
【００２６】
この記述コンポーネント２１０を利用して（例えば、指定され、予測されるなど）性能レベルの記述を記憶することが可能であり、このインプリメンテーションコンポーネント２２０を利用してこの記述のインプリメンテーションを記憶することが可能である。この記述は、指定されたレート、アップタイムおよび／またはキャパシティに関連した情報、ならびに他の情報を含む可能性がある。一般に、レートを利用して、この要求のイニシエータによってプロバイダから要求するリソース量、および／またはエージェントプロバイダがかかる要求にサービスを行うために費やす用意のあるリソース量を示すことができる。アップタイムを利用して、要求者が受け入れる用意のある（例えば、エラーに起因する）処理遅延、またはプロバイダが要求にサービスを行う際の推定された遅延を示すことができる。キャパシティは一般に、所与の任意の時刻に処理することが可能なデータ量を示す。
【００２７】
サービスを要求するエージェントは、このパラメータを利用してプロバイダがその要求を処理することができるようにすることが可能であり、サービスを提供するエージェントは、このパラメータを利用してそのキャパシティ性能を公示することができる。この公示は、このプロバイダキャパシティが、他の要求の処理に依存するかどうかを含むことも可能である。例えば、プロバイダは、複数の要求を並列に同時に処理することができ、ここで、所与の任意の時刻におけるそのキャパシティは、その時刻において処理されている他の要求数に基づいている。要求が連続して処理される場合には、この公示は、処理が複数の要求についてタイムスライスされるかどうか、または各要求が別の要求を処理するのに先立ってサービスされるかどうかを示すことが可能である。
【００２８】
記述コンポーネント２１０中に記憶される記述を他のエージェントの（例えば、指定され、予測されたなどの）性能記述と比較して、この記述が別の記述と機能的に等価であるかどうかを判定することが可能である。この比較は一般に、コンプライアンス数学的アルゴリズムを用いて実施することができる。さらに、かかる記述をこのインプリメンテーションコンポーネント２２０中に記憶されるインプリメンテーションと比較することが可能である。この比較は、コンフォーマンスアルゴリズムを用いて実施することが可能であり、これによって、サービスプロバイダがエージェントによって指定される性能品質を満たすことができるかどうかを判定することが可能である。
【００２９】
サービスマネージャ１１０が、性能記述および／または記述インプリメンテーションを他のエージェントに選択的に示すことができることを理解されたい。例えば、典型的なエージェントは、記述インプリメンテーションへのアクセスを防止しながら、他のエージェントが閲覧するための性能記述を示すことが可能である。これにより、サービスプロバイダを探しているエージェントが、その要求の性能レベルを満たすことができる性能レベルを少なくとも提供すると公言していないプロバイダを除外できるようにすることによって、エージェント間のネゴシエーションをうまく進めることができるようになる。同様に、サービスプロバイダは、その性能を競合するサービスプロバイダと比較しエージェントの要求と比較してその性能レベルで競争力があり、その要求を満たすことができるかどうかを判定することが可能である。
【００３０】
図３は、互いに情報をやりとりしている２つのエージェントを有するシステム３００を示すものである。このシステム３００は、第１のサービスマネージャコンポーネント３２０と、第１の記述コンポーネント３３０と、第１のインプリメンテーションコンポーネント３４０とを備える第１のエージェント３１０を含んでいる。このシステム３００はさらに、第２のサービスマネージャコンポーネント３６０と、第２の記述コンポーネント３７０と、第２のインプリメンテーションコンポーネント３８０とを備える第２のエージェント３５０を含んでいる。これらのサービスマネージャコンポーネント３２０および３６０、記述コンポーネント３３０および３７０、ならびにインプリメンテーションコンポーネント３４０および３８０は、サービスコンポーネント１１０（図１）、記述コンポーネント２１０（図２）、ならびにインプリメンテーションコンポーネント２２０（図２）と実質的に同様とすることが可能であることを理解されたい。
【００３１】
システム１００（図１）に関して指摘したように、本明細書中で利用されるエージェントは、サービスを要求し、または要求に対してサービスし、あるいはその両方を行うことができるエンティティとすることが可能である。したがって、第１のエージェント３１０は、サービスを求めて第２のエージェント３５０に対して要求を送信することが可能であり、ここで、この第２のエージェント３５０は、この要求を処理することが可能である。さらに、第２のエージェント３５０は、サービスを求めて第１のエージェント３１０に対して要求を送信することが可能であり、ここで、この第１のエージェント３１０は、この要求を処理することが可能である。簡潔に説明することを目的として、以下の説明は、第１のエージェント３１０が、サービスを希望するクライアントとして振る舞い、第２のエージェント３５０が、かかる要求を実行することができるサービスプロバイダとして利用される場合の例示のシナリオを示すものである。しかし、このシナリオが本発明を限定するものでないことが、当業者には理解されよう。
【００３２】
第１のエージェント３１０の第１のサービスマネージャコンポーネント３２０は、この要求されたサービスについての定義の公示を行う助けをすることが可能である。かかる定義のことを、契約と呼んでおり、一般に第１の記述コンポーネント３３０に記憶される。さらに、この定義には、とりわけメッセージ内容の記述、第２のエージェント３５０のロケーション、第２のエージェント３５０などのエージェントと情報をやりとりするために使用することが可能な１つまたは複数の通信プロトコル、第２のエージェント３５０などのサービスエージェントからの予想される性能サービス品質などの情報を含むことが可能である。この性能サービス品質は一般に、第１のエージェント３１０のユーザによって提供され、例えば所望のまたは所要のレート、アップタイムおよび／またはキャパシティに関連した情報を指定することが可能である。一例では、第１のエージェント３１０のユーザがこの第２のエージェント３５０によって満たされるべきレートを指定した後にはじめて、この第１のエージェント３１０は、第２のエージェント３５０が提供するサービスを利用することが可能になる。別の例では、この第１のエージェント３１０のユーザは、この要求をサービスする際における遅延に関連する許容可能なアップタイムを指定することが可能である。さらに別の例では、この第１のエージェント３１０のユーザは、第２のエージェント３５０が所与の任意の時間に処理でき処理する用意がある量を反映し得るキャパシティを指定することが可能である。さらに、性能に関連した指標（ｉｎｄｉｃｉａ）の適切な任意の組合せを要求および／または提供することが可能である。
【００３３】
第１のサービスマネージャコンポーネント３２０は、この定義を第２のエージェント３５０に「問合せ」として提供することが可能であり、第２のエージェント３５０は、この「問合せ」を利用して、この指定された性能レベルを提供することに同意し、カウンタオファ（ｃｏｕｎｔｅｒ  ｏｆｆｅｒ）を戻し、またはこの指定された性能レベルを満たすことができないことを示すことが可能である。あるいは、第１のサービスマネージャコンポーネント３２０は、この第２のエージェント３５０に関連する定義を取得して第２のエージェント３５０が提供する性能レベルがその定義においてこの指定された性能レベルを満たすことができるかどうかを判定することが可能である。
【００３４】
第２のエージェント３５０の第２のサービスマネージャコンポーネント３６０は、提供されるサービスの定義の公示を行う助けをすることが可能である。同様に、この定義も契約と呼ぶことが可能であり、一般に第２の記述コンポーネント３７０に記憶される。さらに、この定義は、例えばメッセージ内容の記述、第１のエージェント３１０のロケーション、第１のエージェント３１０などのエージェントと情報のやりとりを行うために使用することが可能な１つまたは複数の通信プロトコル、および／または第１のエージェント３１０など他のエージェントに対して提供される性能サービス品質などの情報を含むことが可能である。第１のエージェント３１０に関連する性能サービス品質と同様に、第２のエージェント３５０のこの性能サービス品質も、例えば、レート、アップタイムおよび／またはキャパシティを示す情報を指定することが可能である。
【００３５】
第２のサービスマネージャコンポーネント３６０は、第１のエージェント３１０に対してその定義を「入札」として提供することが可能であり、第１のエージェント３１０は、この「入札」を使用してこの第２のエージェント３５０がその指定された性能レベルを満たすことができるかどうかを判定することが可能である。満たされていない場合には、この第１のエージェント３１０は、第２のエージェント３５０にこの提供された性能レベルが十分でないことを通知することが可能である。あるいは、第１のエージェント３１０は、（例えば、タスクを処理する必要があり、サービスエージェントがどれも所望の性能レベルを提供しない場合に）より低い性能レベルを受け入れることも可能であり、あるいは第１のエージェント３１０は、異なる性能レベルを含む「問合せ」を戻すことも可能であり、この場合には、第２のエージェント３５０は、その「入札」を調整し、またはそのカウンタオファを無効にすることが可能である。
【００３６】
インプリメンテーションコンポーネント３４０および３８０は、一般にこれらの関連する定義についての対応するインプリメンテーションを提供することができる。一般に、かかるインプリメンテーションは、他のエージェントからは隠されている。しかし、エージェントは、必要に応じてそのインプリメンテーションを他のエージェントに公開することが可能である。例えば、第２のエージェント３５０は、その定義のインプリメンテーションを第１のエージェント３１０に対して提供することが可能である。次いで、第１のエージェント３１０は、コンフォーマンスアルゴリズムを利用してこのインプリメンテーションがその指定された性能レベルを満たすことができるかどうか判定することが可能である。さらに、第１のエージェント３１０は、コンプライアンスアルゴリズムを利用してエージェント３５０の定義がその定義の機能的な等価物であるかどうかを判定することが可能である。同様に、第２のエージェント３５０は、コンフォーマンスおよび／または定義のインプリメンテーションとのコンプライアンスおよび／または第１のエージェント３１０に関連するその定義を判定することが可能である。
【００３７】
エージェント３１０および３５０のユーザが、性能レベルを手動で提供（例えば、その中でアップロードまたは生成）し、あるいはインテリジェンス技術を用いて（例えば、確率、推論、統計などを用いて）この性能レベルを自己生成することが可能であることを理解されたい。さらに、この性能レベルは、数学的アルゴリズムを用いて予測することが可能である。かかるアルゴリズムは、確率的計算法の数学、例えばパイ計算法やロー計算法などのプロセス代数に基づいたものとすることが可能である。したがって、この性能レベルを、要求されるサービス品質および／または提供されるサービス品質の客観的なメトリックとすることが可能である。さらに、この性能レベルを、静的または動的とすることが可能である。したがって、「問合せ」および「入札」を、サービスが、指定された性能レベルを満たすことができるかどうかを判定するあらかじめ設定されたインジケータとすることが可能であり、あるいはこれらはエージェント間のネゴシエーションに基づいて動的に変更することが可能である。さらに、この「入札」をコストに関連づけ、その結果、要求エージェント（例えば第１のエージェント３１０）が提供されるサービスに関連するコストについて知らされるようにすることが可能である。
【００３８】
エージェント３１０と３５０の間の通信チャネルは、事実上、どのような通信チャネルとすることも可能である。例えば、このチャネルは、ハードワイヤード、無線周波数（ＲＦ）、赤外線（ＩＲ）、電磁気、光学によるものなどとすることが可能である。さらに、このチャネルを、単方向もしくは双方向、全二重もしくは半二重、および／または単一もしくは多重化によるチャネルとすることが可能である。さらに、このデータを、符号化し、暗号化し、圧縮し、変調し、エンベロープに含めることなどによって交換することができる。さらに、このチャネルを私有または公共のバスもしくはネットワーク（例えば、ＬＡＮまたはＷＡＮ）の一部分とすることが可能であり、事実上世界中のどこからでも使用することができるようにインターネットを用いてインターフェースすることも可能である。
【００３９】
図４は、複数の情報をやりとりするエージェント４０５〜４４５が図示されたシステム４００を示している。各エージェント４０５〜４４５は、ネットワーク４５０に結合することが可能である。以上で詳細に説明したように、本明細書中におけるエージェントは、少なくとも要求についての性能レベルを含む定義を有する契約を含むことが可能である。このレベルは、要求にサービスするために必要とされる性能、および／またはこの要求のサービス中に提供される性能に関連づけることが可能である。さらに、かかるエージェントは、定義のインプリメンテーションを含むことが可能である。これらエージェント４０５〜４４５は、ネットワーク４５０上で（例えば、定義、定義のインプリメンテーションなどを用いて）互いにネゴシエーションを行ってサービスプロバイダを探すエージェントとサービスを提供するエージェントのマーケットプレース（ｍａｒｋｅｔ  ｐｌａｃｅ）を作り出すことが可能であることを理解されたい。
【００４０】
一例として、エージェント４０５のサービスマネージャコンポーネント４５５は、サービスを求める要求の送信を実施することが可能であり、ここで、この要求は、（例えば、レート、アップタイムおよびキャパシティのうちの少なくとも１つを含めて）この要求の処理に関連する性能レベルの指示を含んでいる。以前に指摘したように、かかるレベルをエージェント４０５のユーザが指定し、他の情報と一緒に、契約として、かつ／または記述コンポーネント４６０に記憶することが可能である。さらに、この契約のインプリメンテーションをインプリメンテーションコンポーネント４６５に記憶することが可能である。このエージェント４０５からの要求は、このネットワーク４５０上をエージェント４１０〜４４５のうちのどれかまたはすべてに対して同報通信することが可能であり、これらのエージェントは、この要求に関連した性能レベルに少なくともアクセスすることが可能である。同様にして、１つまたは複数の他のエージェント４１０〜４４５は、（レート、アップタイムおよびキャパシティのうちの少なくとも１つを含めて）提案する性能レベルをエージェント４０５へと同報通信してこの要求の処理に関連する性能を指し示すことが可能である。この性能レベルは、この１つまたは複数のエージェント４１０〜４４５のユーザが指定し、各記述コンポーネントに記憶し、対応するインプリメンテーションに関連づけることが可能である。
【００４１】
この要求についてのこの指定された性能レベルとこの要求に対してサービスするための任意の指定された性能レベルとを利用してこの要求に対するサービスを行う適切なエージェントの選択を実施することが可能である。ある場合には、これらのエージェント４１０〜４４５のうちのどれもこの要求を満たす性能レベルを提供しないことがある。この場合、エージェント４０５のユーザおよび／またはエージェント４０５が、その指定済みの性能レベルを調整するか、１つまたは複数のサービスエージェント４１０〜４４５（またはそのユーザ）が、その性能レベルを調整するか、あるいはこの要求を考慮から除外するかが可能である。本発明の別の態様では、１つまたは複数のエージェント４１０〜４４５が、この要求について指定される性能レベルを満たし、または超過することが可能なこともある。この場合には、エージェント４０５は、このサービスを提供するこれらのエージェントのうちの１つを選択することが可能である。この選択は、特定のエージェントからのサービスに関連するコストなどの情報を考慮することによってうまく実施することができる。例えば、２つのエージェントが、ほぼ同様な性能レベルを異なるコストで提供することが可能な場合、エージェント４０５は、高くない方のエージェントを選択することが可能である。別の例では、このエージェント４０５は、この指定されたレベルを超える性能についての追加コストが、単に指定された性能レベルを満たすだけのエージェントに優先してかかるエージェントを選択するだけの十分な価値を追加することを見極めることが可能である。
【００４２】
各エージェント４０５〜４４５は、個別的および／または集合的に他のネットワークに対して結合できることを理解されたい。例えば、エージェント４０５は、他のエージェント４１０〜４４５が排除されているドメインまたはワークグループに関連づけることが可能である。したがって、各エージェント４０５〜４４５は、複数のネットワーク上に存在する複数のエージェントに対して同時にまたは逐次にサービスを要求し、またはサービスを提供することが可能である。ある場合には、あるエージェントは、異なるネットワーク上に存在するエージェント間のブローカーとしての役割を果たすことが可能である。例えば、エージェント４０５は、エージェント４１０に性能レベルを提示することが可能であり、このエージェント４１０により、異なるネットワーク（図示せず）上のエージェントがこの性能レベルを閲覧することができるようになる。かかる異なるネットワーク上のサービングエージェントが、この性能レベルを少なくとも満たすことが可能な場合には、このエージェント４０５は、このエージェントを利用してこの要求に対してサービスすることが可能である。
【００４３】
図５は、エージェント４０５がレート予測コンポーネント５１０をさらに含むシステム５００を示すものである。このレート予測コンポーネント５１０は、確率的パイ計算法を利用して、本明細書中に説明しているような対応する記述コンポーネントに記憶される定義、または契約の記述において、ある状態から別の状態への遷移に関連するレート（例えば、遅延、確率比率など）を予測することが可能である。本発明の一態様においては、契約はそのインプリメンテーションの抽象化とすることが可能なので、少なくともパイ計算法（例えば、ＣＣＳ）のサブセットを利用してこの契約を記述することが可能である。例えば、パイ計算法およびコストファンクションを利用して各遷移におけるこのレートを予測することが可能である。一般に、コストファンクションを各遷移に関連づけて各コストを決定することが可能であり、ここで、後の遷移コストは一般に以前の遷移コストと現在のコストの合計であり、各コストは、状態遷移を介してコストファンクションを再帰的に使用することによって決定される。パイ計算法を利用して、対応するレートが遷移ごとに予測されるようにこれらのコストをレートに相関させることが可能である。これらの予測されたレートを利用して、サービスを提供するエージェントの公示されたレートと予測されたレートを比較することにより、サービスプロバイダがサービスを要求するエージェントを満足させることができるかどうかを判定することが可能である。このレート情報を利用することによって、この契約をサービスについてのマーケットプレースにおける通貨と同様に利用することが可能である。例えば、エージェント４０５は、予測されたレートを他のエージェントに提示することも可能であり、またこれらのレートを取得することも可能である。どちらのシナリオにおいても、エージェント４０５のこの予測されたレートを他のエージェントのレートと比較して他のエージェントのうちのどれかがエージェント４０５のこの予測されたレートを満たすことができるかどうかを判定することが可能である。
【００４４】
図６は、このエージェント４０５が、アップタイムコンポーネント６１０をさらに含むシステム６００を示しており、このアップタイムコンポーネント６１０を利用して各状態遷移についてのアップタイム、遅延、および／またはエラー性能レベルを指定することが可能である。エージェント４０５のこの指定されたアップタイムを他のエージェントのアップタイムに対して比較して他のエージェントのどれかがエージェント４０５のこのアップタイムを満たすことができるかどうかを判定することが可能である。様々な技法を使用してアップタイムを決定することが可能である。一例では、１つまたは複数のエラー状態を契約定義に（例えば、パイ計算法を用いて）含めることが可能であり、ここで、各状態からの遷移が、さらに１つまたは複数のエラー状態をもたらす可能性がある。レートをエラー状態への遷移に関連づけることが可能であり、これらのレートを利用して遷移ごとにエラーの頻度を決定することが可能である。このエラーは、例えば例外状態中などにエージェントによって見出される本質的に任意のダウンタイムを包含することが可能であり、ここでは、このサービスエージェントは、この要求に対するサービスを行うことができないことを理解されたい。
【００４５】
図７は、エージェント４０５がキャパシティコンポーネント７１０をさらに含むシステム７００を示しており、このキャパシティコンポーネント７１０を利用してサービスエージェントがエージェント４０５の指定するキャパシティ要件を満たせるか、または超過できるかどうかを判定することが可能である。本発明の一態様においては、この契約の少なくとも一部分が、ポートではなくてメッセージの観点で表現することが可能であり、各チャネルまたは対象とする特定のチャネルについて（例えば、シャノンの定理（Ｓｈａｎｎｏｎ’ｓ  ｔｈｅｏｒｙ）を利用して）チャネルキャパシティを決定することが可能である。多くの場合において、チャネルは、１つのメッセージに関連しており、ここでは、チャネルを分析してこのチャネルが特定のサイズのメッセージを伝えることができるかどうかを判定する。他の場合には、複数のメッセージにチャネルを関連づけることが可能である。キャパシティは、かかるチャネルについて単一のメッセージが逐次的に搬送されるかどうか、あるいは並列技法が利用されるかどうかに応じて決定され、ここで、メッセージサイズの総計が、このキャパシティを指し示している。
【００４６】
図８〜９は、本発明による契約モデルを示している。説明を簡潔にするために、これらのモデルを、一連の状態として図示し説明している。しかし、本発明は、かかる状態または状態の順序によって限定されるものでないことを理解し認識されたい。さらに、必ずしもすべての図示した状態がこれらのモデルを説明するために必要ではないこともある。さらに、これらのモデルは、その代わりに一連の相互に関連する動作またはイベントとして表現することが可能なことを当業者なら理解し認識されよう。
【００４７】
図８は、エージェントについての契約の定義を記述するために利用することができる例示のモデル（またはプルーフツリー）８００を示すものである。このモデル８００は、「初期化（Ｉｎｉｔｉａｌｉｚｅ）」状態８１０、「作業（ＤｏＷｏｒｋ）」状態８２０、および「終了（Ｆｉｎａｌｉｚｅ）」状態８３０を示している。このモデル８００は、さらにかかる状態間の遷移（または指令（ｄｉｒｅｃｔｉｖｅ））を示している。例えば、「初期化」状態から「作業」状態への遷移（例えば、「ｉｎｉｔ」）が、８４０で示され、「作業」状態から「終了」状態への第１の遷移（例えば、「ｗｏｒｋＡ」）が、８５０で示され、「作業」状態から「終了」状態への第２の遷移（例えば、「ｗｏｒｋＢ」）が、８６０で示され、「作業」状態から「終了」状態への第３の遷移（例えば、「ｆｉｎ」）が、８７０で示される。
【００４８】
このモデル８００は、式１に示すように（例えば、パイ計算法において）数学的に表現することが可能である。  
式１：  ｉｎｉｔ．ｒｅｃ．Ｘ．（ｗｏｒｋＡ．Ｘ＋ｗｏｒｋＢ．Ｘ＋ｆｉｎ）
式中、「ｉｎｉｔ」は、「初期化」状態から「作業」状態への遷移を示し、「ｒｅｃ」は、式１が再帰的ファンクションであることを示し、「ｗｏｒｋＡ」は、「作業」状態から「終了」状態への第１の遷移または指令を表し、「ｗｏｒｋＢ」は、「作業」状態から「終了」状態への第２の遷移を表し、「Ｆｉｎ」は、「作業」状態から「終了」状態への第３の遷移を表す。
【００４９】
このモデル８００および／または式１を利用して本明細書中で利用されるような契約を定義することが可能である。さらにモデル８００も式１も共に利用して各エージェントのモデル／式を比較することによって、２つの契約間のコンプライアンス、契約とこの契約のインプリメンテーションの間のコンフォーマンスを判定することが可能である。さらに、このモデル８００および／または式１を利用して以下に説明するようにエージェントについてのサービス品質を示すことが可能である。
【００５０】
図９は、モデル８００（図８）の８４０〜８７０における各状態遷移に、それぞれ性能を予測するために利用することができるコストファンクション９１０、９２０、９３０および９４０が施されているモデル９００を示している。このコストファンクションは、同期コンテキストまたは確定遷移と呼ぶことができ、プロセス代数（例えば、パイ計算法）を用いて表現することが可能である。各遷移に関連するコストは、例えば、「終了」状態から「初期化」状態へとコストファンクションを再帰的に使用することによって決定することが可能である。各コストをレートに相関させて各遷移についてのレートを予測することが可能である。かかる予測によって、プログラマに個々の遷移レートを決定させる負担が緩和される。
【００５１】
以前に説明したように、アップタイムを追加して利用して性能を指定することが可能である。このモデル８００は、モデルをエラー状態（図示せず）を用いて飽和させることによって拡張することが可能である。例えば、１つまたは複数のエラー状態を含めることが可能であり、ここで、「初期化」状態、「作業」状態、および／または「終了」状態を１つまたは複数のエラー状態にさらに関連づけることが可能である。エラー状態への各遷移には、以上で説明したようにレートを施すことが可能であり、このレートを利用してエラー頻度を決定することが可能である。かかる情報を用いて、サービスを要求するエージェントは、許容可能な頻度レベル（例えば、非常にまれ）を指定することが可能である。このエラーは、例えば例外状態中などにエージェントによって見出される本質的に任意のダウンタイムを包含することが可能であり、ここでは、このサービスエージェントは、この要求に対するサービスを行うことができないことを理解されたい。さらに、このモデル８００および／または式１は、以上で説明したようにチャネルキャパシティを組み込んでいる。
【００５２】
遷移レートを予測し任意選択可能にアップタイムおよびチャネルキャパシティを決定した後に、このモデル８００またはその数学的表現を利用して、エージェントが求める性能レベルをサービスエージェントが公示する性能レベルと比較することが可能である。以前に指摘したように、これにより、パイ計算法のようなプロセス代数を用いて決定することができる客観的なメトリックを提供することによってサービスを要求するエージェントとかかる要求を処理するエージェントとのエージェントネゴシエーションがうまく進められ、エージェントのユーザがこの性能レベル（例えば、遷移ごとのレート）を決定する必要性が緩和される。
【００５３】
図１０〜１２は、本発明による方法を示すものである。説明を簡単にするために、この方法を一連の動作として示し説明している。本発明は例示される動作および／または動作の順序によっては限定されず、例えば、諸動作は、様々な順序でまたは同時にあるいはその両方で、また本明細書中で提示され説明されていない他の動作と共に行うことが可能であることを理解し認識されたい。さらに、例示した動作のすべてが、本発明による方法を実装するために必ずしも必要とされないこともある。さらに、本方法は、その代わりに状態図またはイベントを介して一連の相互に関連した状態としても表現することが可能であることが、当業者には理解され認識されよう。
【００５４】
図１０に進むと、サービス性能を表現するための方法１０００が示されている。参照符号１０１０においてエージェントが、セットアップされる。このエージェントは、別のエンティティを利用して要求に対してサービスすることができるエンティティでも、要求に対してサービスすることができるエンティティでも、およびサービスを要求することも要求に対してサービスすることもできるエンティティであることも可能である。例えば、このユーザは、他のウェブサービスの必要性に対してサービスすることができるウェブサービスを作成することが可能である。別の例では、このエージェントは、ウェブサービスを利用して要求を処理するクライアントとすることが可能である。さらに、このエージェントは、実質上任意の通信媒体上で他のエージェントと情報をやりとりすることも可能である。
【００５５】
１０２０において、このエージェントについての性能レベルが（例えば、本明細書中で説明しているように）指定される。エージェントがサービスを要求する場合、この性能レベルは、メッセージ内容の記述、可能性のあるサービスエージェントのロケーション、１つまたは複数の通信プロトコル、レート、アップタイムおよび／またはキャパシティ性能判断基準など様々な性能に関連した指標を含むことが可能な予想されたサービス品質などの情報を示すことが可能である。同様に、エージェントが要求に対してサービスを行う場合、性能レベルは、メッセージ内容の記述、可能性のある要求エージェントのロケーション、１つまたは複数の通信プロトコル、提供されるレート、アップタイムおよび／またはキャパシティを含み得る提供されるサービス品質などの情報を示すことが可能である。一般に、このエージェントの作成者は、前述の性能情報を指定することができる。しかし、適切な特権をもつ任意のユーザが、１つまたは複数のこれらのパラメータを指定することができることを理解されたい。
【００５６】
一般的に、数学を利用してこの性能情報の少なくとも一部分を定義および／または指定することが可能である。数学を利用することによって、状態遷移に関連するレートなどの情報を決定する負担からエージェント作成者またはユーザを解放する客観的な手段がもたらされる。さらに、使用される数学により、かかる情報を決定する際のユーザエラーおよび主観的な影響が緩和される。適切な数学の一例には、パイ計算法やロー計算法のような確率的計算法などのプロセス代数が含まれ、これを利用してレート、アップタイム、およびキャパシティを判断するのを少なくとも助けることが可能である。レートを利用して要求のイニシエータがプロバイダから要求するリソース量、および／またはエージェントプロバイダが要求に対してサービスするために消費する用意のあるリソース量を示すことが可能である。アップタイムを利用して要求者が受け入れる用意のある（例えば、エラーに関連する）処理遅延、またはプロバイダが要求に対してサービスする際の推定遅延を示すことが可能である。キャパシティは、一般に所与の任意の時刻に処理することが可能なデータ量を示す。
【００５７】
参照符号１０３０において、このエージェントは、その指定された性能レベルを利用して他のエージェントとネゴシエーションすることが可能である。例えば、サービスを要求するエージェントは、その性能を同報通信することが可能であり、ここでサービスエージェントは、サービスエージェントがこの同報通信された性能レベルを満たすことができるときにこの要求に対してサービスする提案を用いて応答することが可能である。これは、この指定された性能レベルをこのサービスプロバイダが提案する性能レベルと比較することによって判定することが可能である。別の例では、エージェントは、サービスプロバイダによる公示された性能レベルを観察し、その所望の性能レベルを公示されたサービス性能レベルと比較し、この比較に基づいてサービスを選択することが可能である。サービスを提供するエージェントについては、このエージェントは、要求を処理するために提供する用意のある性能レベルを同報通信し、または要求を分析してどの要求を処理することができるかを判断し、あるいはその両方を行うことが可能である。サービスプロバイダは、さらにそのサービスコストを公示してサービス要求エージェントによる判断をうまく進められるようにすることが可能である。
【００５８】
確率的パイ技術を利用して、性能レベルを指定する助けをし、または別の指定メカニズムを実施することが可能であることを理解されたい。さらに、性能予測技術をインプリメンテーションとして利用してこの指定メカニズムに対する評価を行うことが可能である。このようにして、契約を確率的パイ計算法のフラグメントの形で指定し、それに対してインプリメンテーションを検査することが可能である。この確率的パイ計算法を利用してレートをアクションに明示的に関連づけることが可能であり、ここで、セマンティックスによって、Ｇｉｌｌｅｓｐｉｅスタイルの確率的エージェントベースのシミュレーションが可能になる。動作可能セマンティックスを使用してプルーフツリーをパイ計算法プロセスの実行に対応するラベル付き遷移システム中の遷移に関連づけることが可能であり、ここでコストファンクションを利用してレートを表現する数値にプルーフツリーを複合的にマッピングすることが可能である。
【００５９】
次に図１１には、要求に対する処理を行うサービスプロバイダを見つけるための方法１１００が示されている。１１１０において、エージェントは、エージェントが求める性能レベルを指し示す「問合せ」を送信し、またはエージェントプロバイダからの「入札」を受信し、ここで、「入札」は、エージェントプロバイダが提供する性能を示す。この「問合せ」には、１つまたは複数のエージェントプロバイダからの１つまたは複数の提案が続くこともある。参照符号１１２０において、この要求エージェントは、このエージェントプロバイダの性能レベルを抽出することが可能である。以前に指摘したように、エージェントプロバイダの性能レベルは、一般に少なくとも、メッセージ内容の記述、要求エージェントのロケーション、１つまたは複数の通信プロトコル、提供されるレート、アップタイムおよび／またはキャパシティを含むことが可能な提供されるサービス品質、およびサービス品質のコストを含んでいる。以上で説明したように、確率的計算法を利用して性能レベルを決定し表現することが可能である。
【００６０】
１１３０において、次いでこの要求エージェントは、その性能レベルをエージェントプロバイダが提案する性能レベル（例えば、仕様、インプリメンテーションなど）と比較してプロバイダがその性能レベルを満たすことができるかどうかを判定することが可能である。複数のプロバイダがこの指定された性能レベルを満たすことができる場合には、かかる性能のコストなどの他の判断基準を利用してエージェントプロバイダを選択する助けをすることが可能である。さらに、インテリジェンスベースの判断を利用して、サービスプロバイダを選択する助けをすることが可能である。例えば、ベイズ学習法（Ｂａｙｅｓｉａｎ  ｌｅａｒｎｉｎｇ）、ベイズ識別器（Ｂａｙｅｓｉａｎ  ｃｌａｓｓｉｆｉｅｒ）、および決定樹学習法などの他の統計的識別器を含めて、統計、確率、先験的情報、累積された履歴データ、推論ならびに（例えば、明示的および暗示的に訓練された）識別器に基づいたインテリジェントベースの判断、サポートベクトルマシン、線形回帰および非線形回帰、および／またはニューラルネットワークを、本発明の一態様に従って使用することが可能である。推論は、イベントおよび／またはデータを介して捕捉された１組の観測からシステム、環境および／またはユーザの状態を推理、すなわち推論するプロセスを意味することが可能である。１１４０において、要求エージェントは、この要求に対してサービスを行うサービスプロバイダを選択する。
【００６１】
図１２は、要求に対してサービスを行う方法１２００を示している。１２１０において、サービスエージェントは、本明細書中で説明したようにサービスを要求するエージェントがその性能レベルにアクセスすることができるようにその性能レベルを公示することが可能である。ある場合には、この公示は、どのエージェントでもその公示された性能レベルを把握することができるように、要求しなくても送りつけられ、同報通信が行われる。他の場合には、この公示は、サービスを求めての要求に応答したものである。参照符号１２２０において、このサービス提供エージェントは、この要求を満たすことができるかどうかを判定することが可能である。この判定は、要求にサービスを行うのに必要な性能レベルをサービスプロバイダが使用可能な性能レベルと比較する工程を含み得る。ある場合においては、このサービスプロバイダが要求にサービスする工程にその全帯域幅を公開することもあるのに対して、他の場合には、このサービスプロバイダは、諸要求のどれか１つまたは集合に対して提供する用意のあるリソース量を制限することもある。１２３０において、この要求の性能レベルを少なくとも満たすことができるサービスプロバイダは、コストをそのサービスに関連づけることも可能である。この要求エージェントに対してこのコストを提供して、この要求エージェントが、複数のサービスプロバイダの間でうまく判断を行えるようにすることが可能である。
【００６２】
本発明の様々な態様を実装する追加の文脈を提供するために、図１３〜１４および以下の説明では、本発明の様々な態様を実装することができる適切なコンピューティング環境を簡単に一般的に説明することが意図されている。本発明は、以上でローカルコンピュータおよび／またはリモートコンピュータ上で実行されるコンピュータプログラムのコンピュータ実行可能命令の一般的な文脈で説明してきたが、本発明がまた、他のプログラムモジュールと組み合わせて実装することもできることが当業者には理解されよう。一般に、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データ型を実装し、あるいはその両方を行う、ルーチン、プログラム、コンポーネント、データ構造などを含んでいる。
【００６３】
さらに、本発明の方法は、そのそれぞれが１つまたは複数の関連するデバイスと動作可能に情報をやりとりすることができる、単一プロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースおよび／またはプログラム可能な電化製品などを含めて他のコンピュータシステム構成を用いて実行することができることが当業者には理解されよう。本発明の例示された態様は、ある種のタスクが、通信ネットワークを介してリンクされたリモート処理デバイスによって実施される分散コンピューティング環境においても実行することが可能である。しかし、本発明の必ずしもすべてではないとしても一部の態様は、スタンドアローン型コンピュータ上で実行することも可能である。分散コンピューティング環境において、プログラムモジュールは、ローカルおよび／またはリモートのストレージデバイスに配置することが可能である。
【００６４】
図１３は、本発明が相互に作用することができる一例のコンピューティング環境１３００の概略ブロック図である。このシステム１３００は、１つまたは複数のクライアント１３１０を含んでいる。このクライアント１３１０は、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティングデバイス）とすることが可能である。このシステム１３００はまた、１つまたは複数のサーバ１３２０も含んでいる。このサーバ１３２０は、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティングデバイス）とすることも可能である。このサーバ１３２０は、スレッドを格納して例えば本発明を使用することによって変換を実施することが可能である。
【００６５】
クライアント１３１０とサーバ１３２０の間における１つの可能性のある通信は、２つ以上のコンピュータプロセス間で伝送するようになっているデータパケット形式とすることが可能である。このシステム１３００は、クライアント１３１０とサーバ１３２０の間で通信をうまく実施するために使用することが可能な通信フレームワーク１３４０を含んでいる。クライアント１３１０は、クライアント１３１０にローカルな情報を記憶するために使用することが可能な１つまたは複数のクライアントデータ記憶域１３５０に動作可能に接続される。同様に、サーバ１３２０は、サーバ１３２０にローカルな情報を記憶するために使用することが可能な１つまたは複数のサーバデータ記憶域１３３０に動作可能に接続される。
【００６６】
図１４を参照すると、本発明の様々な態様を実装するための例示の環境１４００は、コンピュータ１４１２を含んでいる。このコンピュータ１４１２は、処理装置１４１４、システムメモリ１４１６、およびシステムバス１４１８を含んでいる。このシステムバス１４１８は、それだけには限定されないがシステムメモリ１４１６を含めてシステムコンポーネントをこの処理装置１４１４に結合している。この処理装置１４１４は、様々な使用可能なプロセッサのうちのどのようなものにすることも可能である。デュアルマイクロプロセッサアーキテクチャおよび他のマルチプロセッサアーキテクチャをこの処理装置１４１４として使用することも可能である。
【００６７】
システムバス１４１８は、メモリバスもしくはメモリ制御装置、周辺バスもしくは外部バス、および／またはそれだけには限定されないがＩＳＡ（Ｉｎｄｕｓｔｒｉａｌ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ業界標準アーキテクチャ）、ＭＳＡ（Ｍｉｃｒｏ−Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅマイクロチャネルアーキテクチャ）、ＥＩＳＡ（Ｅｘｔｅｎｄｅｄ  ＩＳＡ拡張ＩＳＡ）、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｅｖｉｃｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ＶＬＢ（ＶＥＳＡ  Ｌｏｃａｌ  ＢｕｓＶＥＳＡローカルバス）、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）、カードバス（Ｃａｒｄ  Ｂｕｓ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓユニバーサルシリアルバス）、ＡＧＰ（Ａｃｃｅｌｅｒａｔｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、ＰＣＭＣＩＡ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ  Ｍｅｍｏｒｙ  Ｃａｒｄ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ａｓｓｏｃｉａｔｉｏｎ  ｂｕｓ）、ＩＥＥＥ１３９４（Ｆｉｒｅｗｉｒｅファイアワイヤ）、およびＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅスカジ）を含めて任意の様々な使用可能なバスアーキテクチャを使用したローカルバスを含むいくつかのタイプのバス構造のうちのどれにすることも可能である。
【００６８】
このシステムメモリ１４１６は、揮発性メモリ１４２０および不揮発性メモリ１４２２を含んでいる。起動中などにコンピュータ１４１２内部の要素間で情報を転送する基本ルーチンを含むＢＩＯＳ（ｂａｓｉｃ  ｉｎｐｕｔ／ｏｕｔｐｕｔ  ｓｙｓｔｅｍ基本入出力システム）は、不揮発性メモリ１４２２に記憶される。実例として限定するものではないが、不揮発性メモリ１４２２には、ＲＯＭ（ｒｅａｄ  ｏｎｌｙ  ｍｅｍｏｒｙ読取り専用メモリ）、ＰＲＯＭ（ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭプログラム可能ＲＯＭ）、ＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ電気的プログラム可能ＲＯＭ）、ＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ＲＯＭ電気的消去可能ＲＯＭ）、またはフラッシュメモリが含まれ得る。揮発性メモリ１４２０は、外部キャッシュメモリとしての役割を果たすＲＡＭ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙランダムアクセスメモリ）を含んでいる。実例として限定するものではないが、ＲＡＭは、ＳＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ＲＡＭシンクロナスＲＡＭ）、ＤＲＡＭ（ｄｙｎａｍｉｃ  ＲＡＭダイナミックＲＡＭ）、ＳＤＲＡＭ（ｓｙｎｃｈｒｏｎｏｕｓ  ＤＲＡＭシンクロナスＤＲＡＭ）、ＤＤＲ  ＳＤＲＡＭ（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ  ＳＤＲＡＭダブルデータレートＳＤＲＡＭ）、ＥＳＤＲＡＭ（ｅｎｈａｎｃｅｄ  ＳＤＲＡＭ拡張ＳＤＲＡＭ）、ＳＬＤＲＡＭ（Ｓｙｎｃｈｌｉｎｋ  ＤＲＡＭシンクリンクＤＲＡＭ）、ＤＲＲＡＭ（ｄｉｒｅｃｔ  Ｒａｍｂｕｓ  ＲＡＭダイレクトラムバスＲＡＭ）などの多数の形態で利用可能である。
【００６９】
コンピュータ１４１２はまた、着脱可能／着脱不能な揮発性／不揮発性のコンピュータストレージ媒体も含んでいる。図１４に、例えばディスクストレージ１４２４を示す。ディスクストレージ１４２４には、それだけには限定されないが、磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュメモリカード、またはメモリスティックのようなデバイスが含まれる。さらに、ディスクストレージ１４２４は、それだけには限定されないがＣＤ−ＲＯＭドライブ（ｃｏｍｐａｃｔ  ｄｉｓｋ  ＲＯＭ  ｄｅｖｉｃｅコンパクトディスクＲＯＭデバイス）、ＣＤ−Ｒドライブ（ＣＤ  ｒｅｃｏｒｄａｂｌｅ  ｄｒｉｖｅ記録可能ＣＤドライブ）、ＣＤ−ＲＷドライブ（ＣＤ  ｒｅｗｒｉｔａｂｌｅ  ｄｒｉｖｅ書換え可能ＣＤドライブ）、ＤＶＤ−ＲＯＭドライブ（ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ  ＲＯＭ  ｄｒｉｖｅデジタル多用途ディスクＲＯＭドライブ）などの光ディスクドライブを含めて、別々に、または他のストレージ媒体と組み合わせてストレージ媒体を含むことが可能である。ディスクストレージデバイス１４２４をシステムバス１４１８に接続できるようにするためにインターフェース１４２６などの着脱可能または着脱不能なインターフェースが一般に使用される。
【００７０】
図１４は、適切な動作環境１４００においてユーザと説明した基本的なコンピュータリソースとの間の仲介手段としての役割を果たすソフトウェアについて記述していることを理解されたい。かかるソフトウェアは、オペレーティングシステム１４２８を含んでいる。オペレーティングシステム１４２８は、ディスクストレージ１４２４上に格納することが可能であり、コンピュータシステム１４１２のリソースを制御し割り付ける役割を果たす。システムアプリケーション１４３０は、システムメモリ１４１６に、またはディスクストレージ１４２４上に記憶されたプログラムモジュール１４３２およびプログラムデータ１４３４を介してオペレーティングシステム１４２８によるリソース管理を利用している。本発明は、様々なオペレーティングシステムまたはオペレーティングシステムの組合せを用いて実装することが可能であることを理解されたい。
【００７１】
ユーザは、入力デバイス１４３６を介してコンピュータ１４１２にコマンドまたは情報を入力する。入力デバイス１４３６には、それだけには限定されないが、マウス、トラックボール、スタイラス、タッチパッドなどのポインティングデバイス、キーボード、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、ＴＶチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどが含まれる。これらおよび他の入力デバイスは、インターフェースポート１４３８を経由してシステムバス１４１８を介して処理装置１４１４に接続される。インターフェースポート１４３８は、例えばシリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルバス（ＵＳＢ）を含んでいる。出力デバイス１４４０は、同じタイプのポートの一部を入力デバイス１４３６としても使用する。したがって、例えばＵＳＢポートを使用してコンピュータ１４１２への入力を提供し、コンピュータ１４１２から出力デバイス１４４０へと情報を出力することもできる。出力アダプタ１４４２が設けられて、他の出力デバイス１４４０の中には特殊なアダプタを必要とするモニタ、スピーカ、プリンタのような出力デバイス１４４０もあることが示されている。この出力アダプタ１４４２は、実例として限定するものではないが、出力デバイス１４４０とシステムバス１４１８の接続手段を提供するビデオカードおよびサウンドカードを含んでいる。他のデバイスおよび／またはデバイスのシステムが、リモートコンピュータ１４４４などの入力機能も出力機能も提供することに留意されたい。
【００７２】
コンピュータ１４１２は、リモートコンピュータ１４４４など１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することが可能である。このリモートコンピュータ１４４４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの家庭電気器具、ピアデバイス、または他の共通ネットワークノードなどとすることが可能であり、一般にコンピュータ１４１２に関連して説明した要素の多くまたはすべてを含んでいる。簡潔にするため、リモートコンピュータ１４４４には、メモリストレージデバイス１４４６だけしか示していない。リモートコンピュータ１４４４は、ネットワークインターフェース１４４８を介してコンピュータ１４１２に論理的に接続され、次いで、通信接続１４５０を介して物理的に接続される。ネットワークインターフェース１４４８は、ローカルエリアネットワーク（ＬＡＮ）やワイドエリアネットワーク（ＷＡＮ）など有線通信ネットワークおよび／または無線通信ネットワークを包含している。ＬＡＮ技術には、ＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅファイバ分散データインターフェース）、ＣＤＤＩ（Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅカッパー分散データインターフェース）、イーサネット（登録商標）、トークンリングなどが含まれる。ＷＡＮ技術には、それだけには限定されないが、ポイントツーポイントリンク、ＩＳＤＮ（Ｉｎｔｅｇｒａｔｅｄ  Ｓｅｒｖｉｃｅ  Ｄｉｇｉｔａｌ  Ｎｅｔｗｏｒｋ統合デジタルサービス通信網）およびその変形のような回路交換網、パケット交換網、ならびにＤＳＬ（Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅｓデジタル加入者線）が含まれる。
【００７３】
通信接続１４５０は、ネットワークインターフェース１４４８をバス１４１８に接続するために使用されるハードウェア／ソフトウェアのことを意味している。通信接続１４５０は、明確に示すためにコンピュータ１４１２の内部に示されているが、コンピュータ１４１２の外部に存在することも可能である。ネットワークインターフェース１４４８に接続するために必要なこのハードウェア／ソフトウェアには、例示の目的にすぎないが、通常の電話グレードのモデム、ケーブルモデムおよびＤＳＬモデムを含めてモデム、ＩＳＤＮアダプタ、ならびにイーサネット（登録商標）カードなど、内蔵技術および外付け技術が含まれる。
【００７４】
以上で説明してきたものには、本発明の例が含まれている。もちろん、本発明を説明する目的でコンポーネントまたは方法の考え得るあらゆる組合せを説明することは可能ではないが、本発明のさらなる多数の組合せおよび置換が可能であることが当業者には理解されよう。したがって、本発明では、添付の特許請求の範囲の趣旨および範囲に含まれる、かかる変更形態、修正形態、および変形形態を包含するものとする。特に、以上で説明したコンポーネント、デバイス、回路、システムなどによって実施される様々なファンクションについて、かかるコンポーネントを説明するために使用される（「手段」の言及を含む）用語は、本明細書中に示された本発明の例示の態様におけるファンクションを実施するこの開示の構成に、たとえ構造的に等価でなくても、他に指定がなければ、この説明されたコンポーネント（例えば、機能的な等価物）の指定されたファンクションを実施するどのようなコンポーネントにも対応しているものとする。この点で、本発明は、本発明の様々な方法の動作および／またはイベントを実施するコンピュータ実行可能命令を有するシステムならびにコンピュータ読取り可能媒体を含んでいることも理解されよう。さらに、本発明の特定の特徴が、いくつかの実装形態のうちのただ１つに関してしか開示されていないことがあっても、かかる特徴は、所与の任意のまたは特定のアプリケーションについて望ましくまた有利な他の実装形態の１つまたは複数の他の特徴と組み合わせることができる。さらに、用語「ｉｎｃｌｕｄｅ」、「ｉｎｃｌｕｄｉｎｇ」、およびこれらの組合せが詳細な説明または特許請求の範囲内で使用されているかぎりにおいて、これらの用語では、用語「ｃｏｍｐｒｉｓｉｎｇ」と同様に包含することが意図されている。
【図面の簡単な説明】
【００７５】
【図１】性能を表現する助けをするシステムを示す図である。
【図２】性能定義およびそのインプリメンテーションを使用してエージェントについてのサービス品質を表現する助けをするシステムを示す図である。
【図３】それぞれの性能定義を用いてネゴシエーションする２つのエージェントを示す図である。
【図４】ネゴシエーションエージェントのマーケットプレースの一例を示す図である。
【図５】プロセス代数を利用してサービス品質を記述するレートを予測するコンポーネントを使用したエージェントを示す図である。
【図６】サービス品質に関連するアップタイムメトリックを決定するコンポーネントを使用したエージェントを示す図である。
【図７】チャネルキャパシティサービス品質メトリックを決定するコンポーネントを使用したエージェントを示す図である。
【図８】本発明による、契約の様々な状態を記述するために利用することができるモデルの一例を示す図である。
【図９】それぞれの状態遷移におけるレートを予測するコストファンクションを施された契約モデルの一例を示す図である。
【図１０】性能を表現する方法の一例を示す図である。
【図１１】許容可能な性能レベルを提供するサービスプロバイダを見つける助けをする方法の一例を示す図である。
【図１２】サービスプロバイダが性能レベルを満たすことができるかどうかを判定する方法の一例を示す図である。
【図１３】本発明の新規な態様を使用することができるネットワーキング環境の一例を示す図である。
【図１４】本発明の新規な態様を使用することができる動作環境の一例を示す図である。
【符号の説明】
【００７６】
１１０  サービスマネージャ
１２０  インターフェース
２１０，３３０，３７０，４６０  記述
２２０，３４０，３８０，４６５  インプリメンテーション
３１０  第１のエージェント
３５０  第２のエージェント
３２０，３６０，４５５  サービスマネージャ
４０５，４１０，４１５，４２０，４２５，４３０，４３５，４４０，４４５  エージェント
５１０  レート
６１０  アップタイム
７１０  キャパシティ
【図１】
2005182788.tif 000003
【図２】
2005182788.tif 000004
【図３】
2005182788.tif 000005
【図４】
2005182788.tif 000006
【図５】
2005182788.tif 000007
【図６】
2005182788.tif 000008
【図７】
2005182788.tif 000009
【図８】
2005182788.tif 000010
【図９】
2005182788.tif 000011
【図１０】
2005182788.tif 000012
【図１１】
2005182788.tif 000013
【図１２】
2005182788.tif 000014
【図１３】
2005182788.tif 000015
【図１４】
2005182788.tif 000016