JP2005182788A - プロセス代数を使用して契約の指定を行い、その性能予測インプリメンテーションを利用してその指定を評価するシステムおよび方法 - Google Patents

プロセス代数を使用して契約の指定を行い、その性能予測インプリメンテーションを利用してその指定を評価するシステムおよび方法 Download PDF

Info

Publication number
JP2005182788A
JP2005182788A JP2004358959A JP2004358959A JP2005182788A JP 2005182788 A JP2005182788 A JP 2005182788A JP 2004358959 A JP2004358959 A JP 2004358959A JP 2004358959 A JP2004358959 A JP 2004358959A JP 2005182788 A JP2005182788 A JP 2005182788A
Authority
JP
Japan
Prior art keywords
agent
performance
service
rate
entity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004358959A
Other languages
English (en)
Other versions
JP2005182788A5 (ja
Inventor
Jr Allen L Brown
エル.ブラウン ジュニア アレン
David Richter
リクター デビッド
Lucius G Meredith
ジー.メレディス ルーシャス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2005182788A publication Critical patent/JP2005182788A/ja
Publication of JP2005182788A5 publication Critical patent/JP2005182788A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5009Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/147Network analysis or design for predicting network behaviour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5006Creating or negotiating SLA contracts, guarantees or penalties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/046Network management architectures or arrangements comprising network management agents or mobile agents therefor
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/22Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Development Economics (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】 契約を指定し検査する新規のアプローチを提供する。
【解決手段】 確率的計算法を利用してレート、アップタイムおよびキャパシティのうちの少なくとも1つを含むサービス品質を決定する。サービス品質は、エージェントが提供および/または要求するサービスレベルを示すことができ、モデルを介してエージェントの契約を表現し、モデルにコストファンクションを施し、コストファンクションを利用して遷移コストを計算し、遷移コストを使用して遷移ごとに関連するレートを予測することによって得ることができる。さらにこのモデルにエラー状態を施してアップタイムを決定し、このモデルを使用してチャネルキャパシティを決定することが可能である。一般に、要求エージェントおよび提供エージェントのこのサービス品質を比較してこの提供エージェントがこの要求エージェントの性能レベルを満たすことができるかどうかを判定することが可能である。
【選択図】 図1

Description

本発明は、一般にネットワークサービスに関し、より詳細にはサービス要求および/または公示されたサービスプロバイダのレート、アップタイムおよび/またはキャパシティを表現するシステムおよび方法に関する。
コンピュータ技術およびネットワーキング技術における絶え間ない進歩により、コンピュータが、高コスト、低性能のデータ処理マシンから、低コストおよび効率的な通信、問題解決および娯楽のシステムへと変化してきており、これによって、個人およびビジネスに関係したタスクが毎日実施される方法が大変革を遂げてきている。かかるタスクの例には、基本的な文通、品物の購入、品物の提供、情報収集、サービス要求、サービスの提供などが含まれている。従来は、友人や家族との文通などの個人的なタスクをするには、人が用紙、筆記用具、封筒および切手を入手し、文通のハードコピーを作成し、郵便に手紙を預ける必要があった。以前には、一般に消費者が、お金と時間を費やす必要があり、また物品を受け取り、かつ/または手紙を郵便に投函するには移動が必要であった。さらに、受取人は、送り主が郵便サービスについていくら支払うことに同意したかに応じて、数時間または数日後までその手紙を受け取ることがないことになる。従来のビジネストランザクションには、一般に数個の電話での会話、用紙による通信(例えば、郵便またはファックス)、および/または1人または複数人の当事者との直接のやりとりを伴い、場合によっては、その1人または複数人の当事者が、例えばコスト、距離、またはトランザクションのニーズを満たせないことに起因して、適切な相手でないことが分かることもあり得る。
今日では、ますます多くの個人トランザクションおよびビジネストランザクションが、コンピュータ技術およびネットワーキング技術を用いてスムーズに進められ、かつ/または実施される可能性が高くなっている。例えば、文通、請求書の支払い、買い物、予算編成、および情報収集は、適切なネットワークに接続されたコンピュータの支援と適切なユーザ特権を用いてすべて実現することができる。一例として、消費者/プロバイダは、コンピュータ(例えば、デスクトップコンピュータ、ラップトップコンピュータ、ハンドヘルドコンピュータ、セル電話など)を手に入れ、このコンピュータをLAN、WAN、Wi−Fiネットワーク、インターネットなどのネットワークとインターフェースすることができる。このネットワークは、このコンピュータから、世界中の基本的にどこにでも配置することが可能な1つまたは複数の他のコンピュータ(例えば、サーバ)へと通信リンクを提供することができる。このリンクを利用して、データを交換し、商品を消費し、例えばデータバンクのリポジトリに存在する豊富な情報にアクセスすることができる。かかる通信の別の利点は、自分の家庭で便利に、ユーザの指先またはマウスボタンのクリックで、また何度でも、ユーザにとって無料または最小の費用で利用することができることである。
ウェブドメインは、例えばユーザフレンドリなインターフェース、比較的セキュリティ保護された環境、インターオペラビリティ、および開発業者にフレンドリな環境を提供できるので、ウェブドメインの利点を活用して個人トランザクションおよびビジネストランザクションをますますスムーズに完了できるようになっていく傾向にある。ウェブドメイン中では、ウェブブラウザを介して、様々なウェブサイトおよび/または異種のウェブサーバに関連するサービスにアクセスすることができる。例えば、ウェブユーザは、ウェブブラウザを使用し、サイトのURL(Uniform Resource Locatorユニフォームリソースロケータ)をウェブブラウザのアドレスバーに入力することにより、ウェブサイトにアクセスすることができる。典型的なURLは、ウェブサイトに対するリンクをうまく確立できるようにする少なくとも4つの情報を含んでいる。すなわち、このURLは、情報を交換するための1組の規則および規格と、このウェブサイトのアドレスまたはロケーションと、このウェブサイトを維持している組織名と、組織のタイプを識別する接尾辞(例えば、com、org、net、govおよびedu)とを示すプロトコル(通信言語)を含むことが可能である。一例として、架空アドレスhttp://www.foo.comの一例は、以下のように表現することが可能である。すなわち、「http」では、このウェブサーバが、HTTP(Hypertext Transfer Protocolハイパーテキスト転送プロトコル)を利用していることを指定することが可能である。「://」は、標準のURLシンタクスである。「www」では、「web」(World Wide Webワールドワイドウェブ)内に存在するウェブサイトを指定することが可能である。「foo」では、このウェブサーバが、Foo Corporationに配置されていることを指定することが可能である。「com」では、このFoo Corporationが民間組織であることを指定することが可能である。また、「.」は、前述のフィールド間の分離記号として利用されている。
インターネット上におけるこの通信の分散手段(異なるロケーションに存在するコンピュータ間の通信)が、「ウェブサービス(web service)」と呼ばれる概念をもたらしてきた。一般に、ウェブサービスは、サービスプロバイダを見つけ選択してタスクを実行し、またはかかるサービスを提供するためのメカニズムを実現する、ウェブに関連して実行されるアプリケーションとして定義することができる。多くの場合には、かかるサービスの間の通信は、異種のユーザによって提供されるタスクおよび/またはサービスに関連した情報を提供することを含んでいる。かかる情報を利用して、プロバイダを要求しているサービスを適切なサービスプロバイダとうまくマッチングさせることができる。従来技術は、かかるマッチングのための基本的なフレームワークを提供している。しかし、サービス要求と適切なサービスプロバイダとのマッチングを改善するためにより豊富な情報を提供する高度化されたアプローチが必要になっている。
以下では、本発明のいくつかの態様についての基本的な理解が得られるようにするために本発明の簡単な概要を提示している。この概要は、本発明を広範囲に概説したものではない。本発明の主要な要素または不可欠の要素を特定することも、また本発明の範囲を示すことも共に意図してはいない。その唯一の目的は、本発明のいくつかの概念を、後で提示されるより詳細な説明に対する前置きとして簡単な形式で提示することである。
本発明は、契約を指定し検査する新規のアプローチを提供するものである。このシステムおよび方法では、指定メカニズムとして確率的パイ(stochastic−pi)技術を使用し、インプリメンテーション(implementation)として性能予測技術を使用してこの指定に対して評価を行う。このようにして、契約を確率的パイのフラグメントの形で指定し、この指定に対してインプリメンテーションを検査することができる。本発明は、確率的パイ計算法を活用してレートをアクションに明示的に関連づけており、ここで、セマンティックス(semantics)によって、Gillespieスタイルの確率的エージェントベースのシミュレーションが可能になる。さらに、本発明では、確率的パイ計算法によって拡張された動作可能セマンティックスが活用され、これによってパイ計算法プロセスの実行に対応するラベル付けされた遷移システム中でプルーフツリー(proof−tree)を遷移に関連づけることができるようになる。さらに、本発明では、レートを表現する数値に対してかかるプルーフツリーを複合的にマッピングするコストファンクションを提供する技法を活用している。
本発明は、レート、アップタイム、および/またはキャパシティを含めてサービス品質に関連した豊富な情報を提供するシステムおよび方法を含んでいる。かかる性能は、要求に関連づけることが可能であり、この要求に対してサービスするために必要とされる性能レベルを指定し、または要求に対してサービスするために提供される性能レベルなどの提供されるサービスを指定し、あるいはその両方を行うことができる。確率的計算法(例えば、プロセス代数)などの数学を利用してサービス性能を決定し、またはサービス性能を表現し、あるいはその両方を行うことができる。適切な数学の例には、それだけには限定されないが、パイ計算法(pi calculus)およびロー計算法(rho calculus)およびその派生法が含まれる。さらに、メッセージ内容、サービスロケーション、通信プロトコルなどを記述する情報と一緒に記述(例えば、契約)中にサービス性能を含めることができる。一般に、要求エージェントおよびサービス提供エージェントのために指定および/または予測されるサービス性能を比較して、そのプロバイダがこの要求された性能レベルを満たすことができるかどうかを判定することができる。前述のアプローチでは、一般に確率的計算法を利用して、エージェントについてのレート、アップタイム、および/またはキャパシティなどの豊富な性能データを提供することのない従来技法に対して優れた新規な拡張が提供される。
本発明の一態様においては、エージェント(例えば、ウェブサービス)についてのサービス性能をうまく表現することができるシステムが示されている。このシステムは、このエージェントのユーザがエージェントについての性能レベルを指定することができるようにするサービスマネージャコンポーネントを含んでいる。ユーザが要求してこのエージェント(またはこのエージェントからの要求)に対してサービスし、またはエージェントが使用して要求に対してサービスする、最小、所望および/または所要の性能レベルを決定することができる。この性能レベルは、(例えば、パイ計算法および/またはロー計算法のような確率的計算法などのプロセス代数を介した)数学的アルゴリズムとして生成および/または表現することが可能であり、それによってこの要求またはこのサービスについての性能レベルを計算および/または予測することが可能であり、それによって要求および/または提供されたサービス品質の客観的な尺度がもたらされる。この性能レベルを利用して、例えばレート、アップタイム、および/またはキャパシティなどの判断基準を示すことができる。
本発明の別の態様によれば、この性能表現システムは、性能レベルの記述を記憶することが可能な記述コンポーネントと、この記述のインプリメンテーションを記憶することが可能なインプリメンテーションコンポーネントをさらに含んでいる。この記述は、レート、アップタイム、および/またはキャパシティに関連した情報、ならびに他の情報を含むことができる。この記述コンポーネントに記憶された記述を他のエージェントの性能記述と比較して、これらのエージェントが機能的に等価であるかどうかが判定される。この比較は、一般にコンプライアンスアルゴリズム(compliance algorithm)を用いて実施される。さらに、かかる記述をこのインプリメンテーションコンポーネントに記憶されたインプリメンテーションと比較して、サービスプロバイダがエージェントによって指定される性能品質を満たすことが可能かどうかを判定することができる。この比較は、コンフォーマンスアルゴリズム(conformance algorithm)を用いて実施することができる。どのエージェントもそれらの記述および/またはインプリメンテーションについて他のエージェントに対して選択的に公示することができる。
本発明のさらに他の態様においては、ネゴシエーションエージェント(negotiating agent)を示すシステムが示されている。少なくとも1つのネゴシエーションエージェントは、指定された性能レベルのサービスを求めて「問合せ(ask)」を送信することができる。この「問合せ」を他のエージェントのうちの少なくとも1つが利用して、かかるエージェントがその指定された性能レベルを満たすことができるかどうかを判定する。さらに、少なくとも1つのエージェントは、他のエージェントのうちの1つからの要求を処理するために提供する性能レベルを公示する「入札(bid)」を送信することができる。さらに、この「入札」をコストに関連づけて、その結果、この「入札」を受信するエージェントがどれも、提供されるサービスに関連するコストについて通知を受けるようにすることができる。この「問合せ」および「入札」で提供される両方の性能レベルおよびそれらの比較は、プロセス代数を介して決定し判定することができる。さらに、レートコンポーネント、アップタイムコンポーネント、およびキャパシティコンポーネントを使用してそれぞれそのエージェントについてのレート、アップタイムおよびキャパシティを決定することができる。この情報をこの「問合せ」または「入札」に組み込んで「問合せ」が「入札」によって満たすことができるかどうかをうまく判定することができる。
本発明のさらに他の態様においては、性能レベルを利用するためのモデルおよび方法が示されている。これらのモデルは、契約の様々な状態を表現すること、および状態遷移を施して例えばレート、アップタイム、およびキャパシティなどの性能判断基準を決定することを含んでいる。この方法は、ネゴシエーションエージェントについての性能レベルをうまく判定および/または利用するようにする例示の動作(act)を提供する。システムと同様にこれらのモデルおよび方法もプロセス代数を利用している。
以下の説明および添付図面では、本発明のある種の例示の態様が詳細に記述されている。しかし、これらの態様は、本発明の原理を使用することができる様々な方法のうちのいくつかしか示しておらず、本発明では、かかるすべての態様およびその等価物を含んでいることが意図されている。本発明の他の利点および新規な特徴については、これらの図面に関して考察するとき、本発明の以下の詳細なる説明から明らかとなろう。
本出願書類において利用されているように、用語「コンポーネント」、「システム」などは、コンピュータに関連したエンティティ、すなわち実行に際してのハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、またはソフトウェアを意味するものとする。例えば、コンポーネントは、それだけには限定されないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例としては、サーバ上で実行されるアプリケーションもサーバも共にコンポーネントの可能性がある。1つまたは複数のコンポーネントが、プロセスおよび/または実行スレッドの内部に存在することが可能であり、1つのコンポーネントが、1台のコンピュータ上に局在することも、複数台のコンピュータ間に分散することも可能である。
本発明は、ウェブサービスなどのエージェントについてのサービス品質を指定するシステムおよび方法に関する。サービス品質は、レート、アップタイム、および/またはキャパシティ仕様(例えば、メトリック)を含むことが可能で、これらは、要求に対してサービスする所要/所望の性能、および/または要求に対してサービスする利用可能な/提供される性能を示すことができる。かかるサービス品質仕様は、確率的計算法を利用してサービス提供エージェントが別のエージェントからの特定の要求を満たすことができるかどうかを判定する技法を用いて予測することができる。例としては、このシステムおよび方法では、確率的パイ技術を指定メカニズムとして使用し、性能予測技術をインプリメンテーションとして使用してこの指定に対して評価を行うことが可能である。例えば、確率的パイ計算法を利用してレートをアクションに明示的に関連づけることができ、ここでは、セマンティックスによってGillespieスタイルの確率的エージェントベースのシミュレーションが可能になる。また、関連した拡張動作可能セマンティックスを利用してパイ計算プロセスの実行に対応するラベル付きの遷移システム中の遷移にプルーフツリーを関連づけることが可能になる。また、コストファンクションを介してレートを表現する数値にかかるプルーフツリーを複合的にマッピングすることが可能である。以上により、契約が確率的パイのフラグメントの形で指定することが可能で、インプリメンテーションがその指定に対して検査される新規な技法が提供される。
本発明を、図面を参照して説明している。図面中、全体を通して、同様な参照符号を使用して同様な要素について言及している。以下の説明においては、説明の目的で、数多くの特定の詳細を記述して本発明の完全な理解が得られるようにしている。しかし、これらの特定の詳細を用いずに本発明を実施できることは明らかであろう。他の例では、よく知られている構造およびデバイスをブロック図形式で示して本発明をうまく説明できるようにしている。
図1は、サービス性能を表現する助けをするシステム100を示している。このシステム100は、エージェントについての性能レベルを定義する(例えば、指定する、予測するなど)ために利用することが可能なサービスマネージャコンポーネント110と、このサービスマネージャコンポーネント110を様々なエージェントに結合することができるインターフェースコンポーネント120とを備えている。本発明の態様に従って使用することができるエージェントの例には、それだけには限定されないが、サービスを要求することが可能なエージェント、要求に対してサービスする(取り扱う、処理する、実行する、応答するなど)ことが可能なエージェント、およびサービスを要求することも要求を取り扱うことも可能なエージェントが含まれる。
一例として、適切なエージェントは、バスまたはネットワーク上で他のコンポーネント(例えば、他の状態機械)と相互作用する状態機械とすることが可能である。かかる状態機械は、(例えば、信号を介して)データまたは処理サービスを求める要求を送信することが可能である。さらに、この状態機械は、データまたは処理サービスをかかるサービスを要求している別のコンポーネントに提供することが可能である。利用されるバスおよび/またはネットワークは、この状態機械にとってローカルに、この状態機械および複数の他のコンポーネントにとって共通に、またはこの状態機械からはリモートとすることが可能なことを理解されたい。さらに、様々なプロトコルを利用してバスおよび/またはネットワーク上での通信をうまく進めることが可能である。別の例では、エージェントは、GUI(graphical user interfaceグラフィックユーザインターフェース)を利用した従来からのウェブサーバ/ウェブページシステムにおけるクライアントおよび/またはサーバとすることが可能である。さらに別の例では、エージェントは、ウェブサービス環境中のクライアントおよび/またはサーバとすることが可能であり、ここでは、ビジネスロジック、データ、および処理が、プログラマチックインターフェース(programmatic interface)を介してまたネットワークを横切ってウェブサービスの間で共用され、ウェブサービスをGUI内部に組み込み、または特定の機能を提供するために実行可能とすることができる。したがって、このエージェントは、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどの様々なネットワークトポロジ上の1つまたは複数の他のエージェント(例えば、クライアント、サーバおよびウェブサービス)と情報をやりとりし、例えば、HTTP(HyperText Transport Protocol)、FTP(File Transfer Protocol)、SMTP(Simple Mail Transfer Protocol)のようなプロトコルを移送することが可能である。
上記例は、本発明に従って使用することが可能な様々なタイプのエージェントの一例を提供し、これらの網羅的なリストではないことを理解されたい。さらに、かかるエージェントは、ソフトウェア、ファームウェア、および/またはハードウェアで表現および/または実施され、異種のシステム上に、または1つのシステムと接続して分散することが可能であることを理解されたい。例えば、エージェントは、XML(Extensible Markup Language)、HTML(HyperText Markup Language)、DHTML(Dynamic HTML)、SGML(Standard Generalized Markup Language)、WSDL(Web Services Description Language)、SOAP(Simple Object Access Protocol)などのマークアップ言語で表現することが可能であり、Cベースの言語などのプログラミング言語で実装することができる。さらに、本明細書中で利用されるエージェントは、どのような特定のオペレーティングシステム(OS)にも限定されることはない。
このサービスマネージャコンポーネント110により、適切な特権(例えば、エージェント所有者、エージェント管理者、設計者、プログラマなど)をもつエージェントのユーザは、このエージェントについての性能レベルを指定することが可能になる。この性能レベルは、エージェントまたはエージェントからの要求に対してサービスを行うことをユーザが要求する、最小の、所望の、および/または所要の性能レベルを決定することができる。別の例では、この性能レベルは、エージェントが使用して要求に対してサービスを行う性能レベルを示すことが可能である。かかる性能は、エージェントごとに変化し、また固定または可変とすることができることを理解されたい。実際に利用される性能レベルが、要求または選択された性能レベルおよび/または使用可能なリソースに基づいているように可変な性能レベルを範囲として提示することが可能である。さらに、消費されまたは割り付けられるリソース量がさらに、要求エージェントが特定の性能レベルについて支払う用意のある内容のファンクションとなり得るように範囲内の各性能レベルをコストに関連づけることが可能である。
ユーザは、手動でこのサービスマネージャコンポーネント110に対して性能レベルを提供(例えば、アップロードまたは内部生成)することが可能であり、あるいは、インテリジェンス技術(例えば、機械学習技法)を用いてこの性能レベルを自己生成することが可能であることを理解されたい。さらに、この性能レベルを、数学的アルゴリズムによって生成し、または数学的アルゴリズムとして表現し、あるいはその両方を行うことが可能であり、これによって、要求またはサービスについての性能レベルを計算および/または予測することが可能になる。本発明の一態様においては、この数学的アルゴリズムは、パイ計算法および/またはロー計算法のような確率的計算法などのプロセス代数に基づいたものにすることが可能である。したがって、この性能レベルでは、要求および/または提供されるサービス品質の客観的な尺度を表現することが可能である。さらに、この性能レベルでは、以下で詳細に説明するような、レート、アップタイム、キャパシティなどの様々な情報を示すことが可能である。
以上で簡単に指摘したように、インターフェースコンポーネント120は、このサービスマネージャコンポーネント110をエージェントに結合することが可能である。このインターフェースコンポーネント120は、本質的に任意のエージェントとサービスマネージャコンポーネント110を結合しこれらの間における通信を提供するために様々なプロトコルを含むことが可能であることを理解されたい。さらに、このインターフェースコンポーネント120は、複数のエージェントおよび/またはサービスマネージャコンポーネント110によって同時利用および/または逐次利用することが可能である。例えば、このサービスマネージャコンポーネント110は、インターフェースコンポーネント120を介して複数のエージェントに結合することが可能であり、ここで、複数のエージェントについての性能をうまく指定できるようにするために利用することが可能である。さらに、このインターフェースコンポーネント120を介して複数のサービスマネージャコンポーネント110をエージェントに対して結合することが可能であり、ここで、任意のサービスマネージャコンポーネント110が、このエージェントからの要求についての性能を指定し、またはこのエージェントからの少なくとも要求の一部分に対してサービスしようと競合し、あるいはその両方を行うことが可能である。
一般に、従来のシステムでは、本明細書中で説明しているように形式的なプロセス言語を介して、性能(例えば、レート、アップタイム、キャパシティなど)を指定することが規定されていない。その代わり、かかるシステムでは、一般にタスクレートなどの情報を計算し、かかる情報について手動でプログラムするようにプログラマに負担がかかっている。したがって、従来技法では、豊かさが欠如しており、他のタスクを実施することによってもっと効率的に利用できる限られたリソースを浪費する可能性がある。さらに、従来技法は、計算エラーおよび/またはプログラマの主観性の影響を受けやすい。
本発明では、プロセス代数を利用して、要求を処理する性能レベルをサービスプロバイダがこの要求に対してサービスするために提供する性能レベルと比較するために利用することができる客観的なメトリックを(本明細書中で説明しているような性能予測技術を介して)予測することによって、かかる問題を緩和することが可能である。したがって、性能レベルを要求エージェントまたはサービスエージェントについて指定することが可能であり、この予測された性能レベルをこの指定された性能レベルと比較することにより、かかる性能をエージェント間のネゴシエーション中に利用して要求されたサービスの効率的で信頼できる処理を実施することが可能である。本発明の一態様においては、確率的パイ計算法および関連する動作可能セマンティックスを利用してパイ計算法プロセスの実行に対応するラベル付けされた遷移システム中で、レートを、遷移を伴うアクションおよびプルーフツリーに明示的に関連づけ、ここで、コストファンクションを介してレートを表現する数値にこのプルーフツリーを複合的にマッピングすることが可能である。以上により、契約を確率的パイのフラグメントの形で指定することが可能になり、インプリメンテーションをその指定に対して検査することが可能になる。
図2は、サービス性能を表現する助けをするシステム200を示すものである。このシステム200は、サービスマネージャコンポーネント110およびインターフェースコンポーネント120と、さらに記述コンポーネント210およびインプリメンテーションコンポーネント220とを備える。以上で指摘したように、このサービスマネージャコンポーネント110は、エージェントに対してサービスするために要求される性能レベル、および/または要求に対してサービスするエージェントが提供する性能レベルを指定する助けをする。プロセス代数(例えば、パイ計算法およびロー計算法)を用いてかかる性能を決定することが可能であり、このプロセス代数により、サービス要求エージェントとサービス提供エージェントの間のネゴシエーション判断基準として利用できる客観的な尺度がもたらされる。
この記述コンポーネント210を利用して(例えば、指定され、予測されるなど)性能レベルの記述を記憶することが可能であり、このインプリメンテーションコンポーネント220を利用してこの記述のインプリメンテーションを記憶することが可能である。この記述は、指定されたレート、アップタイムおよび/またはキャパシティに関連した情報、ならびに他の情報を含む可能性がある。一般に、レートを利用して、この要求のイニシエータによってプロバイダから要求するリソース量、および/またはエージェントプロバイダがかかる要求にサービスを行うために費やす用意のあるリソース量を示すことができる。アップタイムを利用して、要求者が受け入れる用意のある(例えば、エラーに起因する)処理遅延、またはプロバイダが要求にサービスを行う際の推定された遅延を示すことができる。キャパシティは一般に、所与の任意の時刻に処理することが可能なデータ量を示す。
サービスを要求するエージェントは、このパラメータを利用してプロバイダがその要求を処理することができるようにすることが可能であり、サービスを提供するエージェントは、このパラメータを利用してそのキャパシティ性能を公示することができる。この公示は、このプロバイダキャパシティが、他の要求の処理に依存するかどうかを含むことも可能である。例えば、プロバイダは、複数の要求を並列に同時に処理することができ、ここで、所与の任意の時刻におけるそのキャパシティは、その時刻において処理されている他の要求数に基づいている。要求が連続して処理される場合には、この公示は、処理が複数の要求についてタイムスライスされるかどうか、または各要求が別の要求を処理するのに先立ってサービスされるかどうかを示すことが可能である。
記述コンポーネント210中に記憶される記述を他のエージェントの(例えば、指定され、予測されたなどの)性能記述と比較して、この記述が別の記述と機能的に等価であるかどうかを判定することが可能である。この比較は一般に、コンプライアンス数学的アルゴリズムを用いて実施することができる。さらに、かかる記述をこのインプリメンテーションコンポーネント220中に記憶されるインプリメンテーションと比較することが可能である。この比較は、コンフォーマンスアルゴリズムを用いて実施することが可能であり、これによって、サービスプロバイダがエージェントによって指定される性能品質を満たすことができるかどうかを判定することが可能である。
サービスマネージャ110が、性能記述および/または記述インプリメンテーションを他のエージェントに選択的に示すことができることを理解されたい。例えば、典型的なエージェントは、記述インプリメンテーションへのアクセスを防止しながら、他のエージェントが閲覧するための性能記述を示すことが可能である。これにより、サービスプロバイダを探しているエージェントが、その要求の性能レベルを満たすことができる性能レベルを少なくとも提供すると公言していないプロバイダを除外できるようにすることによって、エージェント間のネゴシエーションをうまく進めることができるようになる。同様に、サービスプロバイダは、その性能を競合するサービスプロバイダと比較しエージェントの要求と比較してその性能レベルで競争力があり、その要求を満たすことができるかどうかを判定することが可能である。
図3は、互いに情報をやりとりしている2つのエージェントを有するシステム300を示すものである。このシステム300は、第1のサービスマネージャコンポーネント320と、第1の記述コンポーネント330と、第1のインプリメンテーションコンポーネント340とを備える第1のエージェント310を含んでいる。このシステム300はさらに、第2のサービスマネージャコンポーネント360と、第2の記述コンポーネント370と、第2のインプリメンテーションコンポーネント380とを備える第2のエージェント350を含んでいる。これらのサービスマネージャコンポーネント320および360、記述コンポーネント330および370、ならびにインプリメンテーションコンポーネント340および380は、サービスコンポーネント110(図1)、記述コンポーネント210(図2)、ならびにインプリメンテーションコンポーネント220(図2)と実質的に同様とすることが可能であることを理解されたい。
システム100(図1)に関して指摘したように、本明細書中で利用されるエージェントは、サービスを要求し、または要求に対してサービスし、あるいはその両方を行うことができるエンティティとすることが可能である。したがって、第1のエージェント310は、サービスを求めて第2のエージェント350に対して要求を送信することが可能であり、ここで、この第2のエージェント350は、この要求を処理することが可能である。さらに、第2のエージェント350は、サービスを求めて第1のエージェント310に対して要求を送信することが可能であり、ここで、この第1のエージェント310は、この要求を処理することが可能である。簡潔に説明することを目的として、以下の説明は、第1のエージェント310が、サービスを希望するクライアントとして振る舞い、第2のエージェント350が、かかる要求を実行することができるサービスプロバイダとして利用される場合の例示のシナリオを示すものである。しかし、このシナリオが本発明を限定するものでないことが、当業者には理解されよう。
第1のエージェント310の第1のサービスマネージャコンポーネント320は、この要求されたサービスについての定義の公示を行う助けをすることが可能である。かかる定義のことを、契約と呼んでおり、一般に第1の記述コンポーネント330に記憶される。さらに、この定義には、とりわけメッセージ内容の記述、第2のエージェント350のロケーション、第2のエージェント350などのエージェントと情報をやりとりするために使用することが可能な1つまたは複数の通信プロトコル、第2のエージェント350などのサービスエージェントからの予想される性能サービス品質などの情報を含むことが可能である。この性能サービス品質は一般に、第1のエージェント310のユーザによって提供され、例えば所望のまたは所要のレート、アップタイムおよび/またはキャパシティに関連した情報を指定することが可能である。一例では、第1のエージェント310のユーザがこの第2のエージェント350によって満たされるべきレートを指定した後にはじめて、この第1のエージェント310は、第2のエージェント350が提供するサービスを利用することが可能になる。別の例では、この第1のエージェント310のユーザは、この要求をサービスする際における遅延に関連する許容可能なアップタイムを指定することが可能である。さらに別の例では、この第1のエージェント310のユーザは、第2のエージェント350が所与の任意の時間に処理でき処理する用意がある量を反映し得るキャパシティを指定することが可能である。さらに、性能に関連した指標(indicia)の適切な任意の組合せを要求および/または提供することが可能である。
第1のサービスマネージャコンポーネント320は、この定義を第2のエージェント350に「問合せ」として提供することが可能であり、第2のエージェント350は、この「問合せ」を利用して、この指定された性能レベルを提供することに同意し、カウンタオファ(counter offer)を戻し、またはこの指定された性能レベルを満たすことができないことを示すことが可能である。あるいは、第1のサービスマネージャコンポーネント320は、この第2のエージェント350に関連する定義を取得して第2のエージェント350が提供する性能レベルがその定義においてこの指定された性能レベルを満たすことができるかどうかを判定することが可能である。
第2のエージェント350の第2のサービスマネージャコンポーネント360は、提供されるサービスの定義の公示を行う助けをすることが可能である。同様に、この定義も契約と呼ぶことが可能であり、一般に第2の記述コンポーネント370に記憶される。さらに、この定義は、例えばメッセージ内容の記述、第1のエージェント310のロケーション、第1のエージェント310などのエージェントと情報のやりとりを行うために使用することが可能な1つまたは複数の通信プロトコル、および/または第1のエージェント310など他のエージェントに対して提供される性能サービス品質などの情報を含むことが可能である。第1のエージェント310に関連する性能サービス品質と同様に、第2のエージェント350のこの性能サービス品質も、例えば、レート、アップタイムおよび/またはキャパシティを示す情報を指定することが可能である。
第2のサービスマネージャコンポーネント360は、第1のエージェント310に対してその定義を「入札」として提供することが可能であり、第1のエージェント310は、この「入札」を使用してこの第2のエージェント350がその指定された性能レベルを満たすことができるかどうかを判定することが可能である。満たされていない場合には、この第1のエージェント310は、第2のエージェント350にこの提供された性能レベルが十分でないことを通知することが可能である。あるいは、第1のエージェント310は、(例えば、タスクを処理する必要があり、サービスエージェントがどれも所望の性能レベルを提供しない場合に)より低い性能レベルを受け入れることも可能であり、あるいは第1のエージェント310は、異なる性能レベルを含む「問合せ」を戻すことも可能であり、この場合には、第2のエージェント350は、その「入札」を調整し、またはそのカウンタオファを無効にすることが可能である。
インプリメンテーションコンポーネント340および380は、一般にこれらの関連する定義についての対応するインプリメンテーションを提供することができる。一般に、かかるインプリメンテーションは、他のエージェントからは隠されている。しかし、エージェントは、必要に応じてそのインプリメンテーションを他のエージェントに公開することが可能である。例えば、第2のエージェント350は、その定義のインプリメンテーションを第1のエージェント310に対して提供することが可能である。次いで、第1のエージェント310は、コンフォーマンスアルゴリズムを利用してこのインプリメンテーションがその指定された性能レベルを満たすことができるかどうか判定することが可能である。さらに、第1のエージェント310は、コンプライアンスアルゴリズムを利用してエージェント350の定義がその定義の機能的な等価物であるかどうかを判定することが可能である。同様に、第2のエージェント350は、コンフォーマンスおよび/または定義のインプリメンテーションとのコンプライアンスおよび/または第1のエージェント310に関連するその定義を判定することが可能である。
エージェント310および350のユーザが、性能レベルを手動で提供(例えば、その中でアップロードまたは生成)し、あるいはインテリジェンス技術を用いて(例えば、確率、推論、統計などを用いて)この性能レベルを自己生成することが可能であることを理解されたい。さらに、この性能レベルは、数学的アルゴリズムを用いて予測することが可能である。かかるアルゴリズムは、確率的計算法の数学、例えばパイ計算法やロー計算法などのプロセス代数に基づいたものとすることが可能である。したがって、この性能レベルを、要求されるサービス品質および/または提供されるサービス品質の客観的なメトリックとすることが可能である。さらに、この性能レベルを、静的または動的とすることが可能である。したがって、「問合せ」および「入札」を、サービスが、指定された性能レベルを満たすことができるかどうかを判定するあらかじめ設定されたインジケータとすることが可能であり、あるいはこれらはエージェント間のネゴシエーションに基づいて動的に変更することが可能である。さらに、この「入札」をコストに関連づけ、その結果、要求エージェント(例えば第1のエージェント310)が提供されるサービスに関連するコストについて知らされるようにすることが可能である。
エージェント310と350の間の通信チャネルは、事実上、どのような通信チャネルとすることも可能である。例えば、このチャネルは、ハードワイヤード、無線周波数(RF)、赤外線(IR)、電磁気、光学によるものなどとすることが可能である。さらに、このチャネルを、単方向もしくは双方向、全二重もしくは半二重、および/または単一もしくは多重化によるチャネルとすることが可能である。さらに、このデータを、符号化し、暗号化し、圧縮し、変調し、エンベロープに含めることなどによって交換することができる。さらに、このチャネルを私有または公共のバスもしくはネットワーク(例えば、LANまたはWAN)の一部分とすることが可能であり、事実上世界中のどこからでも使用することができるようにインターネットを用いてインターフェースすることも可能である。
図4は、複数の情報をやりとりするエージェント405〜445が図示されたシステム400を示している。各エージェント405〜445は、ネットワーク450に結合することが可能である。以上で詳細に説明したように、本明細書中におけるエージェントは、少なくとも要求についての性能レベルを含む定義を有する契約を含むことが可能である。このレベルは、要求にサービスするために必要とされる性能、および/またはこの要求のサービス中に提供される性能に関連づけることが可能である。さらに、かかるエージェントは、定義のインプリメンテーションを含むことが可能である。これらエージェント405〜445は、ネットワーク450上で(例えば、定義、定義のインプリメンテーションなどを用いて)互いにネゴシエーションを行ってサービスプロバイダを探すエージェントとサービスを提供するエージェントのマーケットプレース(market place)を作り出すことが可能であることを理解されたい。
一例として、エージェント405のサービスマネージャコンポーネント455は、サービスを求める要求の送信を実施することが可能であり、ここで、この要求は、(例えば、レート、アップタイムおよびキャパシティのうちの少なくとも1つを含めて)この要求の処理に関連する性能レベルの指示を含んでいる。以前に指摘したように、かかるレベルをエージェント405のユーザが指定し、他の情報と一緒に、契約として、かつ/または記述コンポーネント460に記憶することが可能である。さらに、この契約のインプリメンテーションをインプリメンテーションコンポーネント465に記憶することが可能である。このエージェント405からの要求は、このネットワーク450上をエージェント410〜445のうちのどれかまたはすべてに対して同報通信することが可能であり、これらのエージェントは、この要求に関連した性能レベルに少なくともアクセスすることが可能である。同様にして、1つまたは複数の他のエージェント410〜445は、(レート、アップタイムおよびキャパシティのうちの少なくとも1つを含めて)提案する性能レベルをエージェント405へと同報通信してこの要求の処理に関連する性能を指し示すことが可能である。この性能レベルは、この1つまたは複数のエージェント410〜445のユーザが指定し、各記述コンポーネントに記憶し、対応するインプリメンテーションに関連づけることが可能である。
この要求についてのこの指定された性能レベルとこの要求に対してサービスするための任意の指定された性能レベルとを利用してこの要求に対するサービスを行う適切なエージェントの選択を実施することが可能である。ある場合には、これらのエージェント410〜445のうちのどれもこの要求を満たす性能レベルを提供しないことがある。この場合、エージェント405のユーザおよび/またはエージェント405が、その指定済みの性能レベルを調整するか、1つまたは複数のサービスエージェント410〜445(またはそのユーザ)が、その性能レベルを調整するか、あるいはこの要求を考慮から除外するかが可能である。本発明の別の態様では、1つまたは複数のエージェント410〜445が、この要求について指定される性能レベルを満たし、または超過することが可能なこともある。この場合には、エージェント405は、このサービスを提供するこれらのエージェントのうちの1つを選択することが可能である。この選択は、特定のエージェントからのサービスに関連するコストなどの情報を考慮することによってうまく実施することができる。例えば、2つのエージェントが、ほぼ同様な性能レベルを異なるコストで提供することが可能な場合、エージェント405は、高くない方のエージェントを選択することが可能である。別の例では、このエージェント405は、この指定されたレベルを超える性能についての追加コストが、単に指定された性能レベルを満たすだけのエージェントに優先してかかるエージェントを選択するだけの十分な価値を追加することを見極めることが可能である。
各エージェント405〜445は、個別的および/または集合的に他のネットワークに対して結合できることを理解されたい。例えば、エージェント405は、他のエージェント410〜445が排除されているドメインまたはワークグループに関連づけることが可能である。したがって、各エージェント405〜445は、複数のネットワーク上に存在する複数のエージェントに対して同時にまたは逐次にサービスを要求し、またはサービスを提供することが可能である。ある場合には、あるエージェントは、異なるネットワーク上に存在するエージェント間のブローカーとしての役割を果たすことが可能である。例えば、エージェント405は、エージェント410に性能レベルを提示することが可能であり、このエージェント410により、異なるネットワーク(図示せず)上のエージェントがこの性能レベルを閲覧することができるようになる。かかる異なるネットワーク上のサービングエージェントが、この性能レベルを少なくとも満たすことが可能な場合には、このエージェント405は、このエージェントを利用してこの要求に対してサービスすることが可能である。
図5は、エージェント405がレート予測コンポーネント510をさらに含むシステム500を示すものである。このレート予測コンポーネント510は、確率的パイ計算法を利用して、本明細書中に説明しているような対応する記述コンポーネントに記憶される定義、または契約の記述において、ある状態から別の状態への遷移に関連するレート(例えば、遅延、確率比率など)を予測することが可能である。本発明の一態様においては、契約はそのインプリメンテーションの抽象化とすることが可能なので、少なくともパイ計算法(例えば、CCS)のサブセットを利用してこの契約を記述することが可能である。例えば、パイ計算法およびコストファンクションを利用して各遷移におけるこのレートを予測することが可能である。一般に、コストファンクションを各遷移に関連づけて各コストを決定することが可能であり、ここで、後の遷移コストは一般に以前の遷移コストと現在のコストの合計であり、各コストは、状態遷移を介してコストファンクションを再帰的に使用することによって決定される。パイ計算法を利用して、対応するレートが遷移ごとに予測されるようにこれらのコストをレートに相関させることが可能である。これらの予測されたレートを利用して、サービスを提供するエージェントの公示されたレートと予測されたレートを比較することにより、サービスプロバイダがサービスを要求するエージェントを満足させることができるかどうかを判定することが可能である。このレート情報を利用することによって、この契約をサービスについてのマーケットプレースにおける通貨と同様に利用することが可能である。例えば、エージェント405は、予測されたレートを他のエージェントに提示することも可能であり、またこれらのレートを取得することも可能である。どちらのシナリオにおいても、エージェント405のこの予測されたレートを他のエージェントのレートと比較して他のエージェントのうちのどれかがエージェント405のこの予測されたレートを満たすことができるかどうかを判定することが可能である。
図6は、このエージェント405が、アップタイムコンポーネント610をさらに含むシステム600を示しており、このアップタイムコンポーネント610を利用して各状態遷移についてのアップタイム、遅延、および/またはエラー性能レベルを指定することが可能である。エージェント405のこの指定されたアップタイムを他のエージェントのアップタイムに対して比較して他のエージェントのどれかがエージェント405のこのアップタイムを満たすことができるかどうかを判定することが可能である。様々な技法を使用してアップタイムを決定することが可能である。一例では、1つまたは複数のエラー状態を契約定義に(例えば、パイ計算法を用いて)含めることが可能であり、ここで、各状態からの遷移が、さらに1つまたは複数のエラー状態をもたらす可能性がある。レートをエラー状態への遷移に関連づけることが可能であり、これらのレートを利用して遷移ごとにエラーの頻度を決定することが可能である。このエラーは、例えば例外状態中などにエージェントによって見出される本質的に任意のダウンタイムを包含することが可能であり、ここでは、このサービスエージェントは、この要求に対するサービスを行うことができないことを理解されたい。
図7は、エージェント405がキャパシティコンポーネント710をさらに含むシステム700を示しており、このキャパシティコンポーネント710を利用してサービスエージェントがエージェント405の指定するキャパシティ要件を満たせるか、または超過できるかどうかを判定することが可能である。本発明の一態様においては、この契約の少なくとも一部分が、ポートではなくてメッセージの観点で表現することが可能であり、各チャネルまたは対象とする特定のチャネルについて(例えば、シャノンの定理(Shannon’s theory)を利用して)チャネルキャパシティを決定することが可能である。多くの場合において、チャネルは、1つのメッセージに関連しており、ここでは、チャネルを分析してこのチャネルが特定のサイズのメッセージを伝えることができるかどうかを判定する。他の場合には、複数のメッセージにチャネルを関連づけることが可能である。キャパシティは、かかるチャネルについて単一のメッセージが逐次的に搬送されるかどうか、あるいは並列技法が利用されるかどうかに応じて決定され、ここで、メッセージサイズの総計が、このキャパシティを指し示している。
図8〜9は、本発明による契約モデルを示している。説明を簡潔にするために、これらのモデルを、一連の状態として図示し説明している。しかし、本発明は、かかる状態または状態の順序によって限定されるものでないことを理解し認識されたい。さらに、必ずしもすべての図示した状態がこれらのモデルを説明するために必要ではないこともある。さらに、これらのモデルは、その代わりに一連の相互に関連する動作またはイベントとして表現することが可能なことを当業者なら理解し認識されよう。
図8は、エージェントについての契約の定義を記述するために利用することができる例示のモデル(またはプルーフツリー)800を示すものである。このモデル800は、「初期化(Initialize)」状態810、「作業(DoWork)」状態820、および「終了(Finalize)」状態830を示している。このモデル800は、さらにかかる状態間の遷移(または指令(directive))を示している。例えば、「初期化」状態から「作業」状態への遷移(例えば、「init」)が、840で示され、「作業」状態から「終了」状態への第1の遷移(例えば、「work」)が、850で示され、「作業」状態から「終了」状態への第2の遷移(例えば、「work」)が、860で示され、「作業」状態から「終了」状態への第3の遷移(例えば、「fin」)が、870で示される。
このモデル800は、式1に示すように(例えば、パイ計算法において)数学的に表現することが可能である。
式1: init.rec.X.(work.X+work.X+fin)
式中、「init」は、「初期化」状態から「作業」状態への遷移を示し、「rec」は、式1が再帰的ファンクションであることを示し、「work」は、「作業」状態から「終了」状態への第1の遷移または指令を表し、「work」は、「作業」状態から「終了」状態への第2の遷移を表し、「Fin」は、「作業」状態から「終了」状態への第3の遷移を表す。
このモデル800および/または式1を利用して本明細書中で利用されるような契約を定義することが可能である。さらにモデル800も式1も共に利用して各エージェントのモデル/式を比較することによって、2つの契約間のコンプライアンス、契約とこの契約のインプリメンテーションの間のコンフォーマンスを判定することが可能である。さらに、このモデル800および/または式1を利用して以下に説明するようにエージェントについてのサービス品質を示すことが可能である。
図9は、モデル800(図8)の840〜870における各状態遷移に、それぞれ性能を予測するために利用することができるコストファンクション910、920、930および940が施されているモデル900を示している。このコストファンクションは、同期コンテキストまたは確定遷移と呼ぶことができ、プロセス代数(例えば、パイ計算法)を用いて表現することが可能である。各遷移に関連するコストは、例えば、「終了」状態から「初期化」状態へとコストファンクションを再帰的に使用することによって決定することが可能である。各コストをレートに相関させて各遷移についてのレートを予測することが可能である。かかる予測によって、プログラマに個々の遷移レートを決定させる負担が緩和される。
以前に説明したように、アップタイムを追加して利用して性能を指定することが可能である。このモデル800は、モデルをエラー状態(図示せず)を用いて飽和させることによって拡張することが可能である。例えば、1つまたは複数のエラー状態を含めることが可能であり、ここで、「初期化」状態、「作業」状態、および/または「終了」状態を1つまたは複数のエラー状態にさらに関連づけることが可能である。エラー状態への各遷移には、以上で説明したようにレートを施すことが可能であり、このレートを利用してエラー頻度を決定することが可能である。かかる情報を用いて、サービスを要求するエージェントは、許容可能な頻度レベル(例えば、非常にまれ)を指定することが可能である。このエラーは、例えば例外状態中などにエージェントによって見出される本質的に任意のダウンタイムを包含することが可能であり、ここでは、このサービスエージェントは、この要求に対するサービスを行うことができないことを理解されたい。さらに、このモデル800および/または式1は、以上で説明したようにチャネルキャパシティを組み込んでいる。
遷移レートを予測し任意選択可能にアップタイムおよびチャネルキャパシティを決定した後に、このモデル800またはその数学的表現を利用して、エージェントが求める性能レベルをサービスエージェントが公示する性能レベルと比較することが可能である。以前に指摘したように、これにより、パイ計算法のようなプロセス代数を用いて決定することができる客観的なメトリックを提供することによってサービスを要求するエージェントとかかる要求を処理するエージェントとのエージェントネゴシエーションがうまく進められ、エージェントのユーザがこの性能レベル(例えば、遷移ごとのレート)を決定する必要性が緩和される。
図10〜12は、本発明による方法を示すものである。説明を簡単にするために、この方法を一連の動作として示し説明している。本発明は例示される動作および/または動作の順序によっては限定されず、例えば、諸動作は、様々な順序でまたは同時にあるいはその両方で、また本明細書中で提示され説明されていない他の動作と共に行うことが可能であることを理解し認識されたい。さらに、例示した動作のすべてが、本発明による方法を実装するために必ずしも必要とされないこともある。さらに、本方法は、その代わりに状態図またはイベントを介して一連の相互に関連した状態としても表現することが可能であることが、当業者には理解され認識されよう。
図10に進むと、サービス性能を表現するための方法1000が示されている。参照符号1010においてエージェントが、セットアップされる。このエージェントは、別のエンティティを利用して要求に対してサービスすることができるエンティティでも、要求に対してサービスすることができるエンティティでも、およびサービスを要求することも要求に対してサービスすることもできるエンティティであることも可能である。例えば、このユーザは、他のウェブサービスの必要性に対してサービスすることができるウェブサービスを作成することが可能である。別の例では、このエージェントは、ウェブサービスを利用して要求を処理するクライアントとすることが可能である。さらに、このエージェントは、実質上任意の通信媒体上で他のエージェントと情報をやりとりすることも可能である。
1020において、このエージェントについての性能レベルが(例えば、本明細書中で説明しているように)指定される。エージェントがサービスを要求する場合、この性能レベルは、メッセージ内容の記述、可能性のあるサービスエージェントのロケーション、1つまたは複数の通信プロトコル、レート、アップタイムおよび/またはキャパシティ性能判断基準など様々な性能に関連した指標を含むことが可能な予想されたサービス品質などの情報を示すことが可能である。同様に、エージェントが要求に対してサービスを行う場合、性能レベルは、メッセージ内容の記述、可能性のある要求エージェントのロケーション、1つまたは複数の通信プロトコル、提供されるレート、アップタイムおよび/またはキャパシティを含み得る提供されるサービス品質などの情報を示すことが可能である。一般に、このエージェントの作成者は、前述の性能情報を指定することができる。しかし、適切な特権をもつ任意のユーザが、1つまたは複数のこれらのパラメータを指定することができることを理解されたい。
一般的に、数学を利用してこの性能情報の少なくとも一部分を定義および/または指定することが可能である。数学を利用することによって、状態遷移に関連するレートなどの情報を決定する負担からエージェント作成者またはユーザを解放する客観的な手段がもたらされる。さらに、使用される数学により、かかる情報を決定する際のユーザエラーおよび主観的な影響が緩和される。適切な数学の一例には、パイ計算法やロー計算法のような確率的計算法などのプロセス代数が含まれ、これを利用してレート、アップタイム、およびキャパシティを判断するのを少なくとも助けることが可能である。レートを利用して要求のイニシエータがプロバイダから要求するリソース量、および/またはエージェントプロバイダが要求に対してサービスするために消費する用意のあるリソース量を示すことが可能である。アップタイムを利用して要求者が受け入れる用意のある(例えば、エラーに関連する)処理遅延、またはプロバイダが要求に対してサービスする際の推定遅延を示すことが可能である。キャパシティは、一般に所与の任意の時刻に処理することが可能なデータ量を示す。
参照符号1030において、このエージェントは、その指定された性能レベルを利用して他のエージェントとネゴシエーションすることが可能である。例えば、サービスを要求するエージェントは、その性能を同報通信することが可能であり、ここでサービスエージェントは、サービスエージェントがこの同報通信された性能レベルを満たすことができるときにこの要求に対してサービスする提案を用いて応答することが可能である。これは、この指定された性能レベルをこのサービスプロバイダが提案する性能レベルと比較することによって判定することが可能である。別の例では、エージェントは、サービスプロバイダによる公示された性能レベルを観察し、その所望の性能レベルを公示されたサービス性能レベルと比較し、この比較に基づいてサービスを選択することが可能である。サービスを提供するエージェントについては、このエージェントは、要求を処理するために提供する用意のある性能レベルを同報通信し、または要求を分析してどの要求を処理することができるかを判断し、あるいはその両方を行うことが可能である。サービスプロバイダは、さらにそのサービスコストを公示してサービス要求エージェントによる判断をうまく進められるようにすることが可能である。
確率的パイ技術を利用して、性能レベルを指定する助けをし、または別の指定メカニズムを実施することが可能であることを理解されたい。さらに、性能予測技術をインプリメンテーションとして利用してこの指定メカニズムに対する評価を行うことが可能である。このようにして、契約を確率的パイ計算法のフラグメントの形で指定し、それに対してインプリメンテーションを検査することが可能である。この確率的パイ計算法を利用してレートをアクションに明示的に関連づけることが可能であり、ここで、セマンティックスによって、Gillespieスタイルの確率的エージェントベースのシミュレーションが可能になる。動作可能セマンティックスを使用してプルーフツリーをパイ計算法プロセスの実行に対応するラベル付き遷移システム中の遷移に関連づけることが可能であり、ここでコストファンクションを利用してレートを表現する数値にプルーフツリーを複合的にマッピングすることが可能である。
次に図11には、要求に対する処理を行うサービスプロバイダを見つけるための方法1100が示されている。1110において、エージェントは、エージェントが求める性能レベルを指し示す「問合せ」を送信し、またはエージェントプロバイダからの「入札」を受信し、ここで、「入札」は、エージェントプロバイダが提供する性能を示す。この「問合せ」には、1つまたは複数のエージェントプロバイダからの1つまたは複数の提案が続くこともある。参照符号1120において、この要求エージェントは、このエージェントプロバイダの性能レベルを抽出することが可能である。以前に指摘したように、エージェントプロバイダの性能レベルは、一般に少なくとも、メッセージ内容の記述、要求エージェントのロケーション、1つまたは複数の通信プロトコル、提供されるレート、アップタイムおよび/またはキャパシティを含むことが可能な提供されるサービス品質、およびサービス品質のコストを含んでいる。以上で説明したように、確率的計算法を利用して性能レベルを決定し表現することが可能である。
1130において、次いでこの要求エージェントは、その性能レベルをエージェントプロバイダが提案する性能レベル(例えば、仕様、インプリメンテーションなど)と比較してプロバイダがその性能レベルを満たすことができるかどうかを判定することが可能である。複数のプロバイダがこの指定された性能レベルを満たすことができる場合には、かかる性能のコストなどの他の判断基準を利用してエージェントプロバイダを選択する助けをすることが可能である。さらに、インテリジェンスベースの判断を利用して、サービスプロバイダを選択する助けをすることが可能である。例えば、ベイズ学習法(Bayesian learning)、ベイズ識別器(Bayesian classifier)、および決定樹学習法などの他の統計的識別器を含めて、統計、確率、先験的情報、累積された履歴データ、推論ならびに(例えば、明示的および暗示的に訓練された)識別器に基づいたインテリジェントベースの判断、サポートベクトルマシン、線形回帰および非線形回帰、および/またはニューラルネットワークを、本発明の一態様に従って使用することが可能である。推論は、イベントおよび/またはデータを介して捕捉された1組の観測からシステム、環境および/またはユーザの状態を推理、すなわち推論するプロセスを意味することが可能である。1140において、要求エージェントは、この要求に対してサービスを行うサービスプロバイダを選択する。
図12は、要求に対してサービスを行う方法1200を示している。1210において、サービスエージェントは、本明細書中で説明したようにサービスを要求するエージェントがその性能レベルにアクセスすることができるようにその性能レベルを公示することが可能である。ある場合には、この公示は、どのエージェントでもその公示された性能レベルを把握することができるように、要求しなくても送りつけられ、同報通信が行われる。他の場合には、この公示は、サービスを求めての要求に応答したものである。参照符号1220において、このサービス提供エージェントは、この要求を満たすことができるかどうかを判定することが可能である。この判定は、要求にサービスを行うのに必要な性能レベルをサービスプロバイダが使用可能な性能レベルと比較する工程を含み得る。ある場合においては、このサービスプロバイダが要求にサービスする工程にその全帯域幅を公開することもあるのに対して、他の場合には、このサービスプロバイダは、諸要求のどれか1つまたは集合に対して提供する用意のあるリソース量を制限することもある。1230において、この要求の性能レベルを少なくとも満たすことができるサービスプロバイダは、コストをそのサービスに関連づけることも可能である。この要求エージェントに対してこのコストを提供して、この要求エージェントが、複数のサービスプロバイダの間でうまく判断を行えるようにすることが可能である。
本発明の様々な態様を実装する追加の文脈を提供するために、図13〜14および以下の説明では、本発明の様々な態様を実装することができる適切なコンピューティング環境を簡単に一般的に説明することが意図されている。本発明は、以上でローカルコンピュータおよび/またはリモートコンピュータ上で実行されるコンピュータプログラムのコンピュータ実行可能命令の一般的な文脈で説明してきたが、本発明がまた、他のプログラムモジュールと組み合わせて実装することもできることが当業者には理解されよう。一般に、プログラムモジュールは、特定のタスクを実施し、または特定の抽象データ型を実装し、あるいはその両方を行う、ルーチン、プログラム、コンポーネント、データ構造などを含んでいる。
さらに、本発明の方法は、そのそれぞれが1つまたは複数の関連するデバイスと動作可能に情報をやりとりすることができる、単一プロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースおよび/またはプログラム可能な電化製品などを含めて他のコンピュータシステム構成を用いて実行することができることが当業者には理解されよう。本発明の例示された態様は、ある種のタスクが、通信ネットワークを介してリンクされたリモート処理デバイスによって実施される分散コンピューティング環境においても実行することが可能である。しかし、本発明の必ずしもすべてではないとしても一部の態様は、スタンドアローン型コンピュータ上で実行することも可能である。分散コンピューティング環境において、プログラムモジュールは、ローカルおよび/またはリモートのストレージデバイスに配置することが可能である。
図13は、本発明が相互に作用することができる一例のコンピューティング環境1300の概略ブロック図である。このシステム1300は、1つまたは複数のクライアント1310を含んでいる。このクライアント1310は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることが可能である。このシステム1300はまた、1つまたは複数のサーバ1320も含んでいる。このサーバ1320は、ハードウェアおよび/またはソフトウェア(例えば、スレッド、プロセス、コンピューティングデバイス)とすることも可能である。このサーバ1320は、スレッドを格納して例えば本発明を使用することによって変換を実施することが可能である。
クライアント1310とサーバ1320の間における1つの可能性のある通信は、2つ以上のコンピュータプロセス間で伝送するようになっているデータパケット形式とすることが可能である。このシステム1300は、クライアント1310とサーバ1320の間で通信をうまく実施するために使用することが可能な通信フレームワーク1340を含んでいる。クライアント1310は、クライアント1310にローカルな情報を記憶するために使用することが可能な1つまたは複数のクライアントデータ記憶域1350に動作可能に接続される。同様に、サーバ1320は、サーバ1320にローカルな情報を記憶するために使用することが可能な1つまたは複数のサーバデータ記憶域1330に動作可能に接続される。
図14を参照すると、本発明の様々な態様を実装するための例示の環境1400は、コンピュータ1412を含んでいる。このコンピュータ1412は、処理装置1414、システムメモリ1416、およびシステムバス1418を含んでいる。このシステムバス1418は、それだけには限定されないがシステムメモリ1416を含めてシステムコンポーネントをこの処理装置1414に結合している。この処理装置1414は、様々な使用可能なプロセッサのうちのどのようなものにすることも可能である。デュアルマイクロプロセッサアーキテクチャおよび他のマルチプロセッサアーキテクチャをこの処理装置1414として使用することも可能である。
システムバス1418は、メモリバスもしくはメモリ制御装置、周辺バスもしくは外部バス、および/またはそれだけには限定されないがISA(Industrial Standard Architecture業界標準アーキテクチャ)、MSA(Micro−Channel Architectureマイクロチャネルアーキテクチャ)、EISA(Extended ISA拡張ISA)、IDE(Integrated Device Electronics)、VLB(VESA Local BusVESAローカルバス)、PCI(Peripheral Component Interconnect)、カードバス(Card Bus)、USB(Universal Serial Busユニバーサルシリアルバス)、AGP(Accelerated Graphics Port)、PCMCIA(Personal Computer Memory Card International Association bus)、IEEE1394(Firewireファイアワイヤ)、およびSCSI(Small Computer System Interfaceスカジ)を含めて任意の様々な使用可能なバスアーキテクチャを使用したローカルバスを含むいくつかのタイプのバス構造のうちのどれにすることも可能である。
このシステムメモリ1416は、揮発性メモリ1420および不揮発性メモリ1422を含んでいる。起動中などにコンピュータ1412内部の要素間で情報を転送する基本ルーチンを含むBIOS(basic input/output system基本入出力システム)は、不揮発性メモリ1422に記憶される。実例として限定するものではないが、不揮発性メモリ1422には、ROM(read only memory読取り専用メモリ)、PROM(programmable ROMプログラム可能ROM)、EPROM(electrically programmable ROM電気的プログラム可能ROM)、EEPROM(electrically erasable ROM電気的消去可能ROM)、またはフラッシュメモリが含まれ得る。揮発性メモリ1420は、外部キャッシュメモリとしての役割を果たすRAM(random access memoryランダムアクセスメモリ)を含んでいる。実例として限定するものではないが、RAMは、SRAM(synchronous RAMシンクロナスRAM)、DRAM(dynamic RAMダイナミックRAM)、SDRAM(synchronous DRAMシンクロナスDRAM)、DDR SDRAM(double data rate SDRAMダブルデータレートSDRAM)、ESDRAM(enhanced SDRAM拡張SDRAM)、SLDRAM(Synchlink DRAMシンクリンクDRAM)、DRRAM(direct Rambus RAMダイレクトラムバスRAM)などの多数の形態で利用可能である。
コンピュータ1412はまた、着脱可能/着脱不能な揮発性/不揮発性のコンピュータストレージ媒体も含んでいる。図14に、例えばディスクストレージ1424を示す。ディスクストレージ1424には、それだけには限定されないが、磁気ディスクドライブ、フロッピー(登録商標)ディスクドライブ、テープドライブ、Jazドライブ、Zipドライブ、LS−100ドライブ、フラッシュメモリカード、またはメモリスティックのようなデバイスが含まれる。さらに、ディスクストレージ1424は、それだけには限定されないがCD−ROMドライブ(compact disk ROM deviceコンパクトディスクROMデバイス)、CD−Rドライブ(CD recordable drive記録可能CDドライブ)、CD−RWドライブ(CD rewritable drive書換え可能CDドライブ)、DVD−ROMドライブ(digital versatile disk ROM driveデジタル多用途ディスクROMドライブ)などの光ディスクドライブを含めて、別々に、または他のストレージ媒体と組み合わせてストレージ媒体を含むことが可能である。ディスクストレージデバイス1424をシステムバス1418に接続できるようにするためにインターフェース1426などの着脱可能または着脱不能なインターフェースが一般に使用される。
図14は、適切な動作環境1400においてユーザと説明した基本的なコンピュータリソースとの間の仲介手段としての役割を果たすソフトウェアについて記述していることを理解されたい。かかるソフトウェアは、オペレーティングシステム1428を含んでいる。オペレーティングシステム1428は、ディスクストレージ1424上に格納することが可能であり、コンピュータシステム1412のリソースを制御し割り付ける役割を果たす。システムアプリケーション1430は、システムメモリ1416に、またはディスクストレージ1424上に記憶されたプログラムモジュール1432およびプログラムデータ1434を介してオペレーティングシステム1428によるリソース管理を利用している。本発明は、様々なオペレーティングシステムまたはオペレーティングシステムの組合せを用いて実装することが可能であることを理解されたい。
ユーザは、入力デバイス1436を介してコンピュータ1412にコマンドまたは情報を入力する。入力デバイス1436には、それだけには限定されないが、マウス、トラックボール、スタイラス、タッチパッドなどのポインティングデバイス、キーボード、マイクロホン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、TVチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラなどが含まれる。これらおよび他の入力デバイスは、インターフェースポート1438を経由してシステムバス1418を介して処理装置1414に接続される。インターフェースポート1438は、例えばシリアルポート、パラレルポート、ゲームポート、およびユニバーサルシリアルバス(USB)を含んでいる。出力デバイス1440は、同じタイプのポートの一部を入力デバイス1436としても使用する。したがって、例えばUSBポートを使用してコンピュータ1412への入力を提供し、コンピュータ1412から出力デバイス1440へと情報を出力することもできる。出力アダプタ1442が設けられて、他の出力デバイス1440の中には特殊なアダプタを必要とするモニタ、スピーカ、プリンタのような出力デバイス1440もあることが示されている。この出力アダプタ1442は、実例として限定するものではないが、出力デバイス1440とシステムバス1418の接続手段を提供するビデオカードおよびサウンドカードを含んでいる。他のデバイスおよび/またはデバイスのシステムが、リモートコンピュータ1444などの入力機能も出力機能も提供することに留意されたい。
コンピュータ1412は、リモートコンピュータ1444など1つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することが可能である。このリモートコンピュータ1444は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ワークステーション、マイクロプロセッサベースの家庭電気器具、ピアデバイス、または他の共通ネットワークノードなどとすることが可能であり、一般にコンピュータ1412に関連して説明した要素の多くまたはすべてを含んでいる。簡潔にするため、リモートコンピュータ1444には、メモリストレージデバイス1446だけしか示していない。リモートコンピュータ1444は、ネットワークインターフェース1448を介してコンピュータ1412に論理的に接続され、次いで、通信接続1450を介して物理的に接続される。ネットワークインターフェース1448は、ローカルエリアネットワーク(LAN)やワイドエリアネットワーク(WAN)など有線通信ネットワークおよび/または無線通信ネットワークを包含している。LAN技術には、FDDI(Fiber Distributed Data Interfaceファイバ分散データインターフェース)、CDDI(Copper Distributed Data Interfaceカッパー分散データインターフェース)、イーサネット(登録商標)、トークンリングなどが含まれる。WAN技術には、それだけには限定されないが、ポイントツーポイントリンク、ISDN(Integrated Service Digital Network統合デジタルサービス通信網)およびその変形のような回路交換網、パケット交換網、ならびにDSL(Digital Subscriber Linesデジタル加入者線)が含まれる。
通信接続1450は、ネットワークインターフェース1448をバス1418に接続するために使用されるハードウェア/ソフトウェアのことを意味している。通信接続1450は、明確に示すためにコンピュータ1412の内部に示されているが、コンピュータ1412の外部に存在することも可能である。ネットワークインターフェース1448に接続するために必要なこのハードウェア/ソフトウェアには、例示の目的にすぎないが、通常の電話グレードのモデム、ケーブルモデムおよびDSLモデムを含めてモデム、ISDNアダプタ、ならびにイーサネット(登録商標)カードなど、内蔵技術および外付け技術が含まれる。
以上で説明してきたものには、本発明の例が含まれている。もちろん、本発明を説明する目的でコンポーネントまたは方法の考え得るあらゆる組合せを説明することは可能ではないが、本発明のさらなる多数の組合せおよび置換が可能であることが当業者には理解されよう。したがって、本発明では、添付の特許請求の範囲の趣旨および範囲に含まれる、かかる変更形態、修正形態、および変形形態を包含するものとする。特に、以上で説明したコンポーネント、デバイス、回路、システムなどによって実施される様々なファンクションについて、かかるコンポーネントを説明するために使用される(「手段」の言及を含む)用語は、本明細書中に示された本発明の例示の態様におけるファンクションを実施するこの開示の構成に、たとえ構造的に等価でなくても、他に指定がなければ、この説明されたコンポーネント(例えば、機能的な等価物)の指定されたファンクションを実施するどのようなコンポーネントにも対応しているものとする。この点で、本発明は、本発明の様々な方法の動作および/またはイベントを実施するコンピュータ実行可能命令を有するシステムならびにコンピュータ読取り可能媒体を含んでいることも理解されよう。さらに、本発明の特定の特徴が、いくつかの実装形態のうちのただ1つに関してしか開示されていないことがあっても、かかる特徴は、所与の任意のまたは特定のアプリケーションについて望ましくまた有利な他の実装形態の1つまたは複数の他の特徴と組み合わせることができる。さらに、用語「include」、「including」、およびこれらの組合せが詳細な説明または特許請求の範囲内で使用されているかぎりにおいて、これらの用語では、用語「comprising」と同様に包含することが意図されている。
性能を表現する助けをするシステムを示す図である。 性能定義およびそのインプリメンテーションを使用してエージェントについてのサービス品質を表現する助けをするシステムを示す図である。 それぞれの性能定義を用いてネゴシエーションする2つのエージェントを示す図である。 ネゴシエーションエージェントのマーケットプレースの一例を示す図である。 プロセス代数を利用してサービス品質を記述するレートを予測するコンポーネントを使用したエージェントを示す図である。 サービス品質に関連するアップタイムメトリックを決定するコンポーネントを使用したエージェントを示す図である。 チャネルキャパシティサービス品質メトリックを決定するコンポーネントを使用したエージェントを示す図である。 本発明による、契約の様々な状態を記述するために利用することができるモデルの一例を示す図である。 それぞれの状態遷移におけるレートを予測するコストファンクションを施された契約モデルの一例を示す図である。 性能を表現する方法の一例を示す図である。 許容可能な性能レベルを提供するサービスプロバイダを見つける助けをする方法の一例を示す図である。 サービスプロバイダが性能レベルを満たすことができるかどうかを判定する方法の一例を示す図である。 本発明の新規な態様を使用することができるネットワーキング環境の一例を示す図である。 本発明の新規な態様を使用することができる動作環境の一例を示す図である。
符号の説明
110 サービスマネージャ
120 インターフェース
210,330,370,460 記述
220,340,380,465 インプリメンテーション
310 第1のエージェント
350 第2のエージェント
320,360,455 サービスマネージャ
405,410,415,420,425,430,435,440,445 エージェント
510 レート
610 アップタイム
710 キャパシティ

Claims (36)

  1. プロセス代数および性能予測技法を使用して契約を指定し検査するシステムであって、
    前記プロセス代数を使用して前記プロセス代数の少なくとも1つのフラグメントの形で契約を指定する第1のコンポーネントと、
    前記指定された契約を、前記性能予測技法を用いて生成されるインプリメンテーションと比較する第2のコンポーネントと
    を備え、
    前記比較の結果によって前記インプリメンテーションが前記契約を満たすかどうかが判定されることを特徴とするシステム。
  2. 前記プロセス代数は、確率的パイ計算法であることを特徴とする請求項1に記載のシステム。
  3. 前記プロセス代数は、レートをアクションに明示的に関連づけることを特徴とする請求項1に記載のシステム。
  4. 前記プロセス代数は、Gillespieスタイルの確率的エージェントベースのシミュレーションを提供するセマンティックスに関連することを特徴とする請求項1に記載のシステム。
  5. 前記プロセス代数は、プロセス代数ベースのプロセスの実行に対応するラベル付けされた遷移システムにおいてプルーフツリーを遷移に関連づける動作可能セマンティックスを含むことを特徴とする請求項1に記載のシステム。
  6. 前記プロセス代数ベースのプロセスは、パイ計算法プロセスであることを特徴とする請求項5に記載のシステム。
  7. コストファンクションを使用してレートを表現する数値にプルーフツリーを複合的にマッピングするコンポーネントをさらに備えることを特徴とする請求項1に記載のシステム。
  8. プロセス代数および性能予測技法を使用して契約を指定し検査する方法であって、
    前記プロセス代数の少なくとも1つのフラグメントの形で契約を指定するステップと、
    前記性能予測技法を使用して前記契約のインプリメンテーションを予測するステップと、
    前記契約の前記インプリメンテーションを前記指定された契約に対して評価して前記指定された契約とそのインプリメンテーションが互いに適合するかどうかを判定するステップと
    を含むことを特徴とする方法。
  9. 前記プロセス代数は、Gillespieスタイルの確率的エージェントベースのシミュレーションを提供するセマンティックスを有する確率的パイ計算法であることを特徴とする請求項8に記載の方法。
  10. 前記プロセス代数を利用してレートをアクションに明示的に関連づけるステップをさらに含むことを特徴とする請求項8に記載の方法。
  11. 前記プロセス代数を使用してパイ計算法プロセスの実行に対応するラベル付けされた遷移システムにおいてプルーフツリーを遷移に関連づけるステップをさらに含むことを特徴とする請求項8に記載の方法。
  12. コストファンクションを利用してレートを表現する数値にプルーフツリーを複合的にマッピングするステップをさらに含むことを特徴とする請求項8に記載の方法。
  13. 第1のエンティティについての性能レベルの定義を記憶する記述コンポーネントと、
    前記定義を利用して第2のエンティティが、前記第1のエンティティの前記性能レベルを満たすかどうかを判定するサービスマネージャと
    を備えることを特徴とするサービス品質を表現するシステム。
  14. 前記性能レベルは、レート、アップタイムおよびキャパシティの性能メトリックのうちの少なくとも1つを含むことを特徴とする請求項13に記載のシステム。
  15. 前記レートメトリックは、プロセス代数を用いて予測されることを特徴とする請求項14に記載のシステム。
  16. 前記プロセス代数は、パイ計算法であることを特徴とする請求項15に記載のシステム。
  17. 前記レートメトリックは、1つまたは複数の性能コストを決定し、前記1つまたは複数のコストをそれぞれのレートに相関させることによって予測されることを特徴とする請求項14に記載のシステム。
  18. 前記1つまたは複数のコストは、前記定義における状態遷移に対して各コストファンクションを再帰的に適用することによって計算されることを特徴とする請求項17に記載のシステム。
  19. 前記第1のエンティティに関連するレートメトリックを前記第2のエンティティのレートメトリックと比較して前記第2のエンティティが前記第1のエンティティの前記性能レベルを満たすかどうかを判定することを特徴とする請求項13に記載のシステム。
  20. 前記アップタイムメトリックは、ダウンタイムおよび例外状態のうちの一方に関連するエラー頻度を示すことを特徴とする請求項14に記載のシステム。
  21. 前記アップタイムメトリックは、エラー状態への遷移にレートを施し、前記エラー状態への遷移に関連する頻度を決定することによって計算されることを特徴とする請求項14に記載のシステム。
  22. 前記第1のエンティティに関連する前記アップタイムメトリックを前記第2のエンティティのアップタイムメトリックと比較して前記第2のエンティティが前記第1のエンティティの前記性能レベルを満たすかどうかを判定することを特徴とする請求項14に記載のシステム。
  23. 前記キャパシティメトリックは、所与の時刻に処理されるデータ量を示すことを特徴とする請求項14に記載のシステム。
  24. 前記キャパシティメトリックは、チャネルにシャノンの定理を適用することによって計算されることを特徴とする請求項14に記載のシステム。
  25. 前記第1および第2のエンティティは、ウェブサービスであることを特徴とする請求項13に記載のシステム。
  26. 前記第1のエンティティの前記定義を前記第2のエンティティの定義のインプリメンテーションとコンフォーマンスアルゴリズムを用いて比較して前記第2のエンティティが前記性能レベルを満たすかどうかを判定する助けをすることを特徴とする請求項13に記載のシステム。
  27. 前記第1のエンティティに関連する前記定義を前記第2のエンティティの性能レベルの定義とコンプライアンスアルゴリズムを用いて比較して前記定義が機能的な等価物であるかどうかを判定することを特徴とする請求項13に記載のシステム。
  28. 性能レベルを利用してサービスを選択する助けをする方法であって、
    確率的数学ベースのアルゴリズムを使用してエージェントについての性能レートを予測するステップと、
    前記予測された性能レートをサービス提供エージェントの公示された性能レートと比較して前記サービス提供エージェントが前記予測されたレートを満たすことできるかどうかを判定するステップと
    を含むことを特徴とする方法。
  29. 前記予測された性能レートに関連するタスクのサービスを行おうと競合する複数のサービス提供エージェントに対して前記予測された性能レートを送信するステップをさらに含むことを特徴とする請求項28に記載の方法。
  30. 前記予測された性能レートに関連するタスクのサービスを行おうと競合する複数のサービス提供エージェントから1つまたは複数の公示された性能レートを受信するステップをさらに含むことを特徴とする請求項28に記載の方法。
  31. 確率的アルゴリズムを使用して前記エージェントについてのアップタイムを指定するステップをさらに含み、前記アップタイムを利用して前記サービス提供エージェントが前記エージェントの性能レベルを満たすことができるかどうかを判定する助けをすることを特徴とする請求項28に記載の方法。
  32. 確率的アルゴリズムを使用して前記エージェントについてのキャパシティを指定するステップをさらに含み、前記キャパシティを利用して前記サービス提供エージェントが前記エージェントの性能レベルを満たすことができるかどうかを判定する助けをすることを特徴とする請求項28に記載の方法。
  33. メッセージ内容記述、エージェントロケーション、および通信プロトコルのうちの少なくとも1つを含む契約において前記予測された性能レートを指定するステップをさらに含むことを特徴とする請求項28に記載の方法。
  34. エージェント間でサービスに関連したネゴシエーションを実施する複数のコンピュータコンポーネントの間で伝送されるデータパケットであって、
    性能品質を含み、前記性能品質は、第2のエージェントのレートメトリック、アップタイムメトリックおよびキャパシティメトリックと比較して第1のエージェントが前記第1のエージェントの前記性能品質を満たすかどうかを判定する前記第1のエージェントについてのレートメトリック、アップタイムメトリックおよびキャパシティメトリックを含むことを特徴とするデータパケット。
  35. 性能レベルを指定する助けをするコンピュータ実行可能コンポーネントを記憶するコンピュータ読取り可能媒体であって、
    ウェブサービスを状態として表現するコンポーネントと、
    関連する状態遷移にコストファンクションを施すコンポーネントと、
    前記コストファンクションを利用して各状態遷移ごとのレートを予測するコンポーネントと、
    前記予測されたレートを提案されたレートと比較して提案されたレートが前記予測されたレートを満たすかどうかを判定するコンポーネントと
    を含むことを特徴とするコンピュータ読取り可能媒体。
  36. 性能品質をエージェント間におけるネゴシエーションツールとして使用するシステムであって、
    各エージェントごとに性能品質を決定する手段と、
    前記各エージェントの前記性能品質を比較する手段と、
    前記比較に基づいて少なくとも2つのエージェントをマッチングさせる手段と
    を備えることを特徴とするシステム。
JP2004358959A 2003-12-10 2004-12-10 プロセス代数を使用して契約の指定を行い、その性能予測インプリメンテーションを利用してその指定を評価するシステムおよび方法 Pending JP2005182788A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52875803P 2003-12-10 2003-12-10
US10/903,959 US20050131978A1 (en) 2003-12-10 2004-07-30 Systems and methods that employ process algebra to specify contracts and utilize performance prediction implementations thereof to measure the specifications

Publications (2)

Publication Number Publication Date
JP2005182788A true JP2005182788A (ja) 2005-07-07
JP2005182788A5 JP2005182788A5 (ja) 2008-01-31

Family

ID=34527132

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004358959A Pending JP2005182788A (ja) 2003-12-10 2004-12-10 プロセス代数を使用して契約の指定を行い、その性能予測インプリメンテーションを利用してその指定を評価するシステムおよび方法

Country Status (5)

Country Link
US (1) US20050131978A1 (ja)
EP (1) EP1545066B1 (ja)
JP (1) JP2005182788A (ja)
KR (1) KR20050056899A (ja)
CN (1) CN1658570B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019507985A (ja) * 2016-02-13 2019-03-22 エイ・ティ・アンド・ティ インテレクチュアル プロパティ アイ,エル.ピー. 自律サービス合成のための方法及び装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070143775A1 (en) * 2005-12-16 2007-06-21 Savoor Raghvendra G Methods and systems to determine pricing of Internet protocol television services
US7890315B2 (en) * 2005-12-29 2011-02-15 Microsoft Corporation Performance engineering and the application life cycle
US20070157311A1 (en) * 2005-12-29 2007-07-05 Microsoft Corporation Security modeling and the application life cycle
US20070156420A1 (en) * 2005-12-29 2007-07-05 Microsoft Corporation Performance modeling and the application life cycle
US7818788B2 (en) * 2006-02-14 2010-10-19 Microsoft Corporation Web application security frame
US7712137B2 (en) * 2006-02-27 2010-05-04 Microsoft Corporation Configuring and organizing server security information
JP2010504572A (ja) * 2006-09-20 2010-02-12 ナショナル アイシーティー オーストラリア リミテッド モデル検査で用いられる遷移システムの生成
US20120239456A1 (en) * 2007-12-14 2012-09-20 Bank Of America Corporation Category analysis model to facilitate procurement of goods and services
KR101036861B1 (ko) * 2008-05-29 2011-05-25 한국산업기술평가관리원 예상되는 사용 정보로 확장된 서비스 기술정보
US8407728B2 (en) * 2008-06-02 2013-03-26 Microsoft Corporation Data flow network
US20110106712A1 (en) * 2009-11-02 2011-05-05 Microsoft Corporation Cost-Aware Service Aggregation
US20140108072A1 (en) * 2012-10-17 2014-04-17 Bank Of America Vendor Contract Assessment Tool
US9336481B1 (en) * 2015-02-02 2016-05-10 James Albert Ionson Organically instinct-driven simulation system and method

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69433968T2 (de) * 1993-11-30 2005-08-11 British Telecommunications P.L.C. Kommunikationsnetwerkverwaltung
US5638412A (en) * 1994-06-15 1997-06-10 Qualcomm Incorporated Method for providing service and rate negotiation in a mobile communication system
US5790677A (en) * 1995-06-29 1998-08-04 Microsoft Corporation System and method for secure electronic commerce transactions
US6401080B1 (en) * 1997-03-21 2002-06-04 International Business Machines Corporation Intelligent agent with negotiation capability and method of negotiation therewith
US6192354B1 (en) * 1997-03-21 2001-02-20 International Business Machines Corporation Apparatus and method for optimizing the performance of computer tasks using multiple intelligent agents having varied degrees of domain knowledge
US6148290A (en) * 1998-09-04 2000-11-14 International Business Machines Corporation Service contract for managing service systems
WO2000019693A1 (en) * 1998-09-25 2000-04-06 Soma Networks, Inc. Method and system of teleconferencing
JP2002538637A (ja) * 1999-01-04 2002-11-12 テレフォンアクチーボラゲット エル エム エリクソン(パブル) ベアラサービス折衝
US6324172B1 (en) * 1999-03-08 2001-11-27 Qualcomm Incorporated Method of rate allocation in a data communications network
US6708155B1 (en) * 1999-07-07 2004-03-16 American Management Systems, Inc. Decision management system with automated strategy optimization
JP2003520496A (ja) * 2000-01-14 2003-07-02 クアリバ リミテッド リソース割付け
US6516322B1 (en) * 2000-04-28 2003-02-04 Microsoft Corporation XML-based representation of mobile process calculi
JP3511620B2 (ja) * 2000-05-17 2004-03-29 日本電気株式会社 大規模ネットワーク監視系の性能解析方法およびそのシステム
AU2001273668A1 (en) * 2000-06-30 2002-01-14 Enron Net Works Llc Buying and selling goods and services using automated method and apparatus
AU2001269290A1 (en) * 2000-08-18 2002-03-04 International Business Machines Corporation Apparatus and method for use in a computer hosting services environment
US20020059132A1 (en) * 2000-08-18 2002-05-16 Quay Steven C. Online bidding for a contract to provide a good or service
JP3670206B2 (ja) * 2000-11-06 2005-07-13 アルプス電気株式会社 プラズマ処理装置又はプラズマ処理システムの性能評価方法、保守方法、性能管理システム、及び性能確認システム、並びにプラズマ処理装置
US20030195838A1 (en) * 2000-11-29 2003-10-16 Henley Julian L. Method and system for provision and acquisition of medical services and products
US8402129B2 (en) * 2001-03-21 2013-03-19 Alcatel Lucent Method and apparatus for efficient reactive monitoring
US20030050830A1 (en) * 2001-09-13 2003-03-13 William Troyer Method and apparatus for evaluating relative performance of a business in an association of the same or similar businesses
US20030083912A1 (en) * 2001-10-25 2003-05-01 Covington Roy B. Optimal resource allocation business process and tools
US7349872B2 (en) * 2001-12-18 2008-03-25 Rosemount, Inc. Method for comparing and selecting process control apparatus
EP1385094A1 (en) 2002-07-24 2004-01-28 Koninklijke KPN N.V. Apparatus and method predicting performance of distributed systems
KR101013304B1 (ko) 2002-09-30 2011-02-09 마이크로소프트 코포레이션 웹 서비스간의 안전한 상호 운용성을 제공하기 위한 컴퓨터 구현 방법, 컴퓨터 판독가능 매체 및 네트워킹된 시스템
US6799143B1 (en) * 2002-12-10 2004-09-28 Abb Inc. Process and device for evaluating the performance of a process control system
US7460499B2 (en) * 2003-01-17 2008-12-02 Texas Instruments Incorporated Modulation noise estimation mechanism
US20040204868A1 (en) * 2003-04-09 2004-10-14 Maynard John D. Reduction of errors in non-invasive tissue sampling

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN7010003264, Andrew Phillips Luca Cardelli, "Simulating Biological Systems in theStochastic Pi−Calculus", Microsoft Research 2004, 20040728 *
JPN7010003265, Borgstrom, J., "Process Calculi for the Foundations of Peer−to−Peer Systems", Research plan, Ecole polytechnique federale de Lausanne, 2003 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019507985A (ja) * 2016-02-13 2019-03-22 エイ・ティ・アンド・ティ インテレクチュアル プロパティ アイ,エル.ピー. 自律サービス合成のための方法及び装置
US10580013B2 (en) 2016-02-13 2020-03-03 At&T Intellectual Property I, L.P. Method and apparatus for autonomous services composition
US10846706B2 (en) 2016-02-13 2020-11-24 At&T Intellectual Property I, L.P. Method and apparatus for autonomous services composition
US11222343B2 (en) 2016-02-13 2022-01-11 At&T Intellectual Property I, L.P. Method and apparatus for autonomous services composition
US11615425B2 (en) 2016-02-13 2023-03-28 At&T Intellectual Property I, L.P. Method and apparatus for autonomous services composition

Also Published As

Publication number Publication date
CN1658570A (zh) 2005-08-24
CN1658570B (zh) 2011-03-23
EP1545066A2 (en) 2005-06-22
EP1545066B1 (en) 2013-10-02
EP1545066A3 (en) 2009-12-16
KR20050056899A (ko) 2005-06-16
US20050131978A1 (en) 2005-06-16

Similar Documents

Publication Publication Date Title
US11431582B2 (en) Systems and methods for context aware adaptation of services and resources in a distributed computing system
Wang et al. Trust and reputation model in peer-to-peer networks
US8468352B2 (en) Retrieving and using cloud based storage credentials
Viji Rajendran et al. Hybrid model for dynamic evaluation of trust in cloud services
US7979520B2 (en) Prescriptive architecture recommendations
EP2590113B1 (en) On demand multi-objective network optimization
US7921195B2 (en) Optimizing service processing based on business information, operational intelligence, and self-learning
JP2005182788A (ja) プロセス代数を使用して契約の指定を行い、その性能予測インプリメンテーションを利用してその指定を評価するシステムおよび方法
WO2008007669A1 (fr) Dispositif et procédé de gestion de système informatique
Mukhija et al. QoS-aware service composition in Dino
US5996090A (en) Method and apparatus for quantitative diagnosis of performance problems using external representations
Wang et al. Quality of service measure approach of web service for service selection
Pasyeka et al. Development algorithmic model for optimization of distributed fault-tolerant web-systems
US20100036809A1 (en) Tracking market-share trends based on user activity
US20050108133A1 (en) Service shopping and provisioning system and method
Issa et al. QoS-aware middleware for web services composition: a qualitative approach
Kaur et al. Real‐time trust aware scheduling in fog‐cloud systems
Patiniotakis et al. Preference-based cloud service recommendation as a brokerage service
Papageorgiou et al. Decision support for Web service adaptation
Dechouniotis et al. A control‐theoretic approach towards joint admission control and resource allocation of cloud computing services
Xiong Resource optimization and security for cloud services
Fudzee et al. Multi-criteria content adaptation service selection broker
Liu et al. Shapley value based impression propagation for reputation management in web service composition
Akingbesote et al. A quality of service aware multi-level strategy for selection of optimal web service
Zhang et al. A comprehensive approach for sharing semantic web trust ratings

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071210

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110117

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110607