(6).具体实施方式
如于本申请中所用,术语“组件”、“系统”等等意指计算机相关实体,不管是硬件、硬件和软件的组合、软件、或是执行中的软件等等。例如,组件可以-但不限于-是,运行于处理器上的过程、处理器、对象、可执行程序、执行的线程、程序、和/或计算机。作为说明,运行于服务器上的应用和服务器都可作为组件。一个或多个组件可驻留于进程和/或线程中,且组件可本地化在一台计算机上和/或分布在两台或多台计算机上。
本发明涉及指定诸如万维网服务的代理服务质量的系统和方法。服务质量可包括费率、可用时间和/或容量指定(例如,量度),它们可用来表示服务一项请求所需要/所期望的性能和/或服务一项请求可用的/所提供的性能。这种服务质量规格可通过那些利用随机微积分的技术来预测以确定提供服务的代理是否可满足来自另一代理的特定请求。作为说明,本发明的系统和方法可采用随机-π技术作为指定机制,而采用性能预测技术作为根据该指定所要测量的实现。例如,随机π微积分可用来使费率明确地与动作相关联,其中语义学容许Gillespie型随机的基于代理的仿真;相关增强操作语义学(related enhanced operational semantics)可被用于将证明树与对应于π-微积分过程的标示转换系统中的转变相关联;而这种证明树可综合地通过成本函数映射成代表费率的数字。前述内容提供了一种新技术,其中契约可在随机-π片断中指定、且可据其进行实现的核查。
本发明参照附图进行说明,其中贯穿所有附图相同数字代表相同元件。在以下说明中为作解释,陈述有很多具体细节以便提供对本发明的全面理解。然而没有这些具体细节也可实践本发明是显然的。在另外的实例中,为便于描述本发明,众所周知的结构和设备以块图形式示出。
图1所示是一种益于表达服务性能的系统100。系统100包括可用来定义(例如,指定、预测等等)代理的性能级别的服务管理器组件110和可将该服务管理器组件与各种代理耦合的接口组件120。可根据本发明诸方面采用的代理示例包括,但不限于,可请求服务的代理、可服务(例如,操作、处理、满足、响应、等等)请求的代理、既可请求服务又可处理请求的代理。
作为示例,适当的代理可以是经总线或网络与其它组件(比如其它状态机)交互的状态机。这种状态机可传送数据或处理服务的请求(如,通过信号)。另外,状态机可提供数据或处理服务给另一请求这种服务的组件。可以理解,所利用的总线和/或网络可以是对状态机来说为本地的、对状态机和多个其它组件而言共同的或对状态机来说为远程的。另外,各种协议可被用于促进经总线和/或网络的通讯。在另一示例中,代理可以是利用图形用户接口(GUI)的传统web服务器/网页系统中的客户机和/或服务器。而在又一示例中,代理可以是web服务环境中的客户机和/或服务器,其中事务逻辑(business logic)、数据和进程可通过程序性接口并在网络上于网络服务间共享,而网络服务可一体化到GUI中或可执行程序中以提供特定功能性。这样,该代理就可通过各种网络拓扑如局域网(LAN)、广域网(WAN)、因特网等等,和诸如超文本传输协议(HTTP)、文件传输协议(FTP)、和简单邮件传输协议(SMTP)的传输协议与一个或多个其它代理(如客户机、服务器和网络服务)进行通讯。
应当理解,以上示例所提供的是根据本发明可采用的各种类型代理例子,且不是穷举清单。另外,可理解的是这样的代理可在软件、固件和/或硬件中表示和/或实现,并分散于各不相同的系统中或与单个系统相连接。例如,一个代理可用标记语言表示,如可扩展标记语言(XML)、超文本传输协议(HTTP)、动态HTML、通用标记语言标准(SGML)、网络服务描述语言(WSDL)、简单对象访问协议(SOAP)等等,并用诸如基于C的语言等的编程语言实现。此外,在本发明中代理不限于任何具体操作系统(OS)。
服务管理器组件110可使具有适当特权(如代理所有者和代理管理者、设计者、编程者等等)的代理的用户能够指定代理的性能级别。此性能级别可确定用户寻求来服务代理或向代理请求的最小、期望、和/或必需性能级别。在另一示例中,该性能级别可显示由代理用于服务请求的性能级别。可以理解,这样的性能可按代理的不同而变化、可以是固定的或者可变的。可变性能级别可表示为若干范围,使得所利用的实际性能级别是基于所请求或选中的性能级别和/或可用资源的。另外,在一个范围内的相应性能级别可分别与成本相关联,使得所消费或所分配的资源的数量还可成为请求方代理愿意为特定性能级别所支付量的函数。
应当理解,用户可手工地把性能级别提供(例如上载或在其中生成)给服务管理器组件110或者性能级别可通过智能(比如机器学习技术)自己创建。另外,性能级别可用数学算法产生和/或表示,这些算法可计算和/或预测请求或服务的性能级别。在本发明的某一方面中,该数学算法可基于诸如象π和/或ρ微积分的随机微积分的过程代数。这样,性能级别可表示所请求和/或所提供的服务质量的客观度量。另外,性能级别可表示诸如费率、可用时间、容量等各种信息,如下所述。
如以上简要所述,接口组件120能将服务管理器组件110耦合到代理上。应当理解,该接口组件可具有各种协议,以便耦合基本上任何代理和服务管理器组件110并提供其间的通讯。另外,接口组件120能被一个以上的代理和/或服务管理器组件110同时和/或以串行方式利用。例如,服务管理器组件110可通过接口组件120与一个以上的代理耦合,其中它可被利用来促进指定该一个以上的代理的性能。另外,一个以上的服务管理器组件110可通过接口组件120与一个代理耦合,其中任一服务管理器组件110可为来自代理的请求指定性能,和/或互相竞争以服务来自代理的至少部分请求。
通常,传统系统并不提供在此所述的、通过正式过程语言指定性能(例如费率、可用时间、容量等等)。相反,这种系统通常会把责任交给程序员:计算诸如任务等级信息并手工对此类信息编程。这样,传统技术会缺少丰富性,并消耗了可通过执行其它任务来更有效利用的有限资源。另外,传统技术易受计算错误和/或编程者主观意愿影响。
本发明能通过利用过程代数预测(例如,通过在此所述的性能预测技术)可被用于将处理请求的性能级别与服务供应者用来服务该请求的性能级别相比较的客观度量而减轻这些问题。因此,性能级别可为请求方或服务方代理指定,且这样的性能可在代理间的谈判中利用,以通过比较性能的预测级别和指定级别而促进对请求服务进行有效可靠的处理。在本发明的一个方面,随机π微积分及其相关联操作语义学可被用来使费率明确地与动作及带有对应于π-微积分过程执行的标示转换系统中的变换的证明树相关联,其中证明树可通过成本函数综合地映射成代表费率的数字。前述内容使得契约可用随机-π片断来指定,并依照它使实现得以核查。
图2阐述了益于表达服务性能的系统200。系统200包括服务管理器组件110和接口组件120,且还有描述组件210和实现组件220。如上所述,服务管理器组件110益于指定服务一个代理所请求的性能级别和/或由一个代理提供来服务一项请求的性能级别。这样的性能通过提供了可被用来作为在请求服务的代理和提供服务的代理间谈判标准的客观量度的过程代数(如π和ρ微积分)确定。
描述组件210可用来存储性能级别(如指定的、预测的、等等)的描述,而实现组件220可用来存储该描写的实现。该描写具有与指定费率、可用时间和/或容量相关的信息,以及其它信息。一般而言,可以用费率来表示由请求发起者向供应者请求的资源量和/或代理供应者为了服务这样一个请求而愿意支出的资源量。可用时间可被用来表示请求方愿意接受的处理延迟(如由于错误)或供应者在服务一项请求中的估计延迟。容量通常表示在任何给定时间可处理的数据量。
请求服务的代理可利用此参数来确保供应者有能力处理其请求,而提供服务的代理可利用此参数来通告其容量能力。该通告可包括供应者容量是否取决于正在处理其它请求。例如,供应者可同时并行处理多个请求,其中在任何给定时间其容量是基于当时所处理的其它请求的数量的。当多个请求是连续处理时,该通告可表示处理过程是为多个请求分时、或者各个请求是在另一请求被处理前得到服务。
存储于描述组件210的描述可与其它代理的性能描述(如指定的、预测的、等等)相比较,以确定该描述在功能上是否与另一描述相同。这一比较通常由依从数学算法帮助进行。另外,这样的描述可与存储在实现组件220中的实现作比较。这一比较可由一致性算法帮助进行,并确定是否服务提供者能够满足由代理指定的性能质量。
应当理解,服务管理器110可选择性地向其它代理展示性能描述和/或描述实现。例如,一个典型代理可展示其性能描述让其它代理观看,但不允许对描述实现的访问。通过允许代理寻找服务供应者以排除甚至没有表示其有满足请求的性能级别的供应者,这有助于代理间的谈判。类似地,服务供应者可将其性能与竞争服务供应者及代理请求相比较,以确定是否其性能级别是有竞争力的并可满足该请求。
图3所示是有两个互相通讯的代理的系统300。系统300具有包括第一服务管理器组件320、第一描述组件330和第一实现组件340的第一代理310。系统300还具有包括第二服务管理器组件360、第二描述组件370和第二实现组件380的第二代理350。应当理解,服务管理器组件320和360、描述组件330和370、实现组件340和380可以与服务组件110(图1)、描述组件210(图2)、和实现组件220(图2)大致相似。
如与系统100相关所述(图1),在此所用的代理可以是能够请求服务和/或服务请求的实体。因此,第一代理310可向第二代理350传送对服务的请求,其中第二代理350可处理该请求。此外,第二代理350可向第一代理310传送对服务的请求,其中第一代理310可处理该请求。为了解释及简洁起见,以下描述阐述了一示例性场景,其中第一代理310作为需要服务的客体而第二代理350则用作可完成这样请求的服务供应者。然而,本领域普通技术人员将理解这一场景并不限制本发明。
第一代理310的第一服务管理器组件320有助于通告所请求服务的定义。这样的定义可被称为契约,且通常存储在第一描述组件330中。另外,该定义具有诸如消息内容描述、第二代理350的位置、可用于与诸如第二代理350的代理进行通讯的一种或多种通讯协议、和来自诸如第二代理350的服务代理的服务性能质量的信息等等。服务的性能质量通常由第一代理310的用户提供,并可指定与所期望或所需的与如费率、可用时间和/或容量相关的信息。在一实例中,第一代理310的用户可在第一代理310利用第二代理350提供的服务前,指定第二代理350必须符合的费率。在另一实例中,第一代理310的用户可指定与服务请求时的延迟相关联的可接受可用时间。在又一实例中,第一代理310的用户可指定反映第二代理350能够并愿意在任何给定时间所处理的数量的容量。此外,可请求和/或提供与性能相关的表示(indicia)的任何适当组合。
第一服务管理器组件320可把该定义作为“询问”(ask)提供给第二代理350,它可被第二代理350用来同意提供指定级别的性能、返回反要约(counter offer)、或表示它不能满足指定级别性能。可选地,第一服务管理器组件320可获得与第二代理350相关联的定义,以确定第二代理350提供的性能级别是否能满足其定义中性能的指定级别。
第二代理350的第二服务管理器组件360有助于通告所提供服务的定义。类似地,这一定义可被称为契约,且通常存储于第二描述组件370中。另外,该定义可具有诸如消息内容描述、第一代理310的位置、可用于与诸如第一代理310的代理进行通讯的一种或多种通讯协议、和/或提供给诸如第一代理310的其它代理的服务性能质量的信息。如同第一代理310相关联服务的性能质量,第二代理350的服务性能质量可指定表示费率、可用时间和/或容量的信息。
第二服务管理器组件360可把该定义作为“投标”提供给第一代理310,它可被第一代理310用于确定第二代理350是否可满足其指定的性能级别。如果不能满足,第一代理310通知第二代理350其所提供的性能级别不够。可选地,第一代理310可接受更低的性能级别(例如,某任务需要处理但没有服务代理提供所需性能级别)或者第一代理310可用不同性能级别返回一个“询问”,其中第二代理350可调整其“投标”或撤回反要约。
实现组件340和380通常提供对应于其相关联定义的实现。通常,这样的实现对其它代理而言是隐蔽的。然而如果需要,代理可对另一代理展露(expose)其实现。例如,第二代理350可向第一代理310提供其定义的实现。第一代理310然后可利用一致性算法(conformance algorithm)确定该实现是否可满足其性能的指定级别。另外,第一代理310可利用依从算法(compliance algorithm)确定代理350的定义是否与其定义功能性等同。类似地,第二代理350可确定与第一代理310相关联的定义实现和/或定义的一致性和/或依从性。
应当理解,代理310和350的用户可以手工方式提供(如上载或从中产生)性能级别或者性能级别可通过智能(例如,通过概率、推论、统计等等)自己产生。另外,性能级别可通过数学算法预测。这种算法是基于例如π或ρ微积分的过程代数的随机微积分数学方法。这样,性能级别可以是请求服务质量和/或提供服务质量的客观度量。另外,性能级别可以是静态或动态的。因此,“询问”和“投标”可以是确定服务是否能满足性能指定级别的预设定指标,或者它们可基于代理间的谈判作动态改变。另外,“投标”可与成本相关联,从而使请求方代理(如第一代理310)得悉与所给予的服务相关联的成本。
代理310和350间的通讯信道实际上可以是任何通讯信道。例如,该信道可以是硬接线的、射频(RF)的、红外线(IR)的、电磁的、光学的、等等。另外,该信道可以是单向或双向的、全双工或半双工的、和/或单路或多路的。另外,可交换的数据可被编码、加密、压缩、调制、包含在封装中等等。此外,该信道可以是专用或公共的总线或网络(如LAN或WAN)的一部分,并可与因特网接口以在基本上全世界的任何地方可用。
图4所示是描绘多个通讯中的代理405-445的系统400。代理405-445可分别与网络450耦合。如以上所详述,代理在此具有带有包括至少一个请求性能级别定义的契约。该级别可与要求服务请求的性能和/或在服务请求期间提供的性能相关联。另外,这样的代理具有定义的实现。应当理解,代理405-445可经网络450互相谈判(例如,通过定义、定义的实现、等等),以创建一个寻求服务供应者的代理和提供服务的代理的市场。
作为示例,代理405的服务管理器组件455有助于服务请求的传送,其中该请求包括与处理该请求相关联的性能级别(例如,包括费率、可用时间和容量中的至少之一)的表示。如前所述,这样的级别可由代理405的用户指定,并连同其它信息存储为契约和/或存储在描述组件460中。另外,契约的实现可存储在实现组件465中。来自代理405的请求可经网络450向可至少访问一个与该请求相关联性能级别的代理410-445中任一或所有代理广播。类似地,一个或多个其它代理410-445可向代理405广播所提供的性能级别(包括费率、可用时间和容量中的至少之一),以指示与处理该请求相关联的性能。这一性能级别可由一个或多个代理410-445的用户指定,存储于相应的描述组件中,并与相应实现相关联。
请求的指定性能级别和服务该请求的任意指定性能级别可被用于帮助选择适当代理来服务该请求。在一个实例中,代理410-445中没有一个代理提供符合该请求的性能级别。这样,代理405的用户和/或代理405可调整其指定性能级别,一个或多个服务代理410-445(或其用户)也可调整其性能级别,或对该请求可不作考虑。本发明的另一方面中,一个或多个代理410-445能达到或超过该请求指定的性能级别。代理405则可选择其中一个代理来提供服务。通过考虑诸如与某具体代理服务相关联的成本的信息,有助于进行这种选择。例如,两个代理可提供基本相似的性能级别,而其成本迥异,其中代理405就可选择稍便宜些的代理。在另一示例中,代理405可确定,超越指定级别之性能的附加成本添加了足够的价值,使得这个代理能超过刚好满足指定性能级别的代理而被选中。
应当理解,各个代理405-445可单独地和/或集体耦合到其它网络。例如,代理405可与排除其它代理410-445的一工作域或工作组相关联。因此,各个代理405-445可并发地或以串行方式向驻留于多个网络的多个代理请求服务或提供服务。在某个实例中,一个代理可作为驻留于全异网络中的代理间的经纪人。例如,代理405可向代理410显示某性能级别,而代理410允许全异网络(未示出)中的代理查看此性能级别。如果在此全异网络中有一服务方代理可至少满足该性能级别,代理405就可利用这个代理来服务该请求。
图5阐述了系统500,其中代理405还具有费率预测组件510。该费率预测组件510可利用随机π微积分来预测与在此所述存储于相应描述组件中的定义或契约的描述中从一个状态到另一个状态的转变相关联的费率(例如延迟、概率比例等等)。在本发明的一个方面,因为该契约可以是其实现的抽象,至少一个子集的π微积分(如CCS)可用来描述该契约。例如,π微积分和成本函数可用来预测各个转变中的费率。一般而言,成本函数可关联到每一个转变以确定相应成本,其中后面的转变成本一般是前面转变的成本和当前成本的总计,且各个成本是通过对于状态转变从头到尾递归地采用成本函数来确定的。利用π微积分,这些成本可被关联到费率上,使得对每一转变可预测一相应费率。通过比较预测费率和提供服务的代理的通告费率,这些预测费率可用于确定服务供应者是否能满足请求服务的代理。通过利用此费率信息,契约可类似于货币用在服务市场中。例如,代理405可向其它代理显示预测费率或获得它们的费率。在任一场景中,代理405的预测费率可与其它代理的费率相比较,以确定是否有任何其它代理满足代理405的预测费率。
图6阐述了系统600,其中代理405还具有可用时间组件610,它可用来为各个状态转变指定可用时间、延迟、和/或性能误差级别。代理405的指定可用时间可与其它代理的可用时间比较,以确定是否有任何其它代理满足代理405的可用时间。各种技术可被用来确定可用时间。在某一示例中,一个或多个错误状态可包含在(如通过π微积分)契约定义中,其中从每一状态的改变可额外引向该错误状态中的一个或多个。费率可与转向错误状态的转变相关联,且这些费率可用来确定每个转变的错误频率。应当理解,这一错误基本上可包括为代理经历的诸如在例外状态期间的任意故障时间,其中服务代理无法服务该请求。
图7阐述了系统700,其中代理405还具有容量组件710,它可用来确定服务方代理是否满足或超过代理405的指定容量需求。在本发明的一个方面中,至少契约的一部分可按照消息而不是端口来表示,且可为各个信道或特殊重要的信道来确定(如利用香农理论(Shannon′s theory))信道容量。在许多实例中,信道与一消息相关联,其中对该信道加以分析以确定它是否能运送某特殊尺寸的消息。在其它实例中,信道可与多个消息相关联。取决于单个消息是以串行方式传送还是利用了并行技术,来为这种信道容量确定容量,在后一情况中,消息尺寸的总和表示其容量。
图8-9阐述了根据本发明的契约模型。为便于解释,模型被描绘和描述成一系列状态。然而,可以理解和明白的是,本发明并不受这样的状态或状态顺序的限制。而且,不是所有的图示状态对描述模型而言是必需的。此外,本领域技术人员将理解和明白,模型可另外被表示为一系列相互关连的动作或事件。
图8阐述了可用于描述代理契约定义的示例性模型(或证明树)800。该模型800描绘了“初始化(Initialize)”状态810、“工作(DoWork)”状态820、和“结束(Finalize)”状态830。模型800还表示这些状态间的转变(或指示)。例如,从“初始化”状态到“工作”状态的转变(例如,″init″)在840示出,从“工作”状态到“结束”状态的第一转变(例如“工作A”(workA”))在850示出,从“工作”状态到“结束”状态的第二转变(例如“工作B”(“workB”))在860示出,而从“工作”状态到“结束”状态的第三转变(例如“fin”)在870示出。
模型800可用数学方式表示成方程式1(例如用π微积分)。
方程式1:init.rec.X.(workA.X+workB.X+fin)
其中“init”表示从“初始化”状态到“工作”状态的转变,“rec”表示方程式1是递归函数,“workA”代表或指示从“工作”状态到“结束”状态的第一转变,“workB”代表从“工作”状态到“结束”状态的第二转变,而“fin”代表从“工作”状态到“结束”状态的第三转变。
模型800和/或方程式1可用来定义在此所用的契约。另外,模型800和方程式1都可通过比较各个代理的模型/方程式用来确定两个契约的依从性及契约和其实现间的一致性。另外,模型800和/或方程式1可用来表示代理服务的质量,如下所述。
图9描绘了模型900,其中模型800的各个状态转变840-870已经被分别标示以可用来预测性能的成本函数910、920、930和940。成本函数可被称为同步上下文、或已证实的转变,并可通过过程代数(如π微积分)表示。分别与各转变相关联的成本,例如可从“结束”状态到“初始化”状态通过递归地采用成本函数来确定。每一成本可与一费率相互关连,以预测每一转变的费率。这样的预测减轻了编程者确定单个转换费率的负担。
如前所述,可用时间还可用于指定性能。模型800可通过将错误状态(未示出)填充其中来进行扩展。例如,一个或多个错误状态可包括其中,从“初始化”、“工作”、和/或“结束”状态的转变又可与一个或多个该错误状态相连接。相应的到错误状态的转变可如上所述标以可用来以确定错误频率的费率。有了这种信息,请求服务的代理可指定可接受频率级别(例如,非常少有)。应当理解,这一错误基本上可包括为代理所经历的所有故障时间,比如在例外状态期间,其时服务代理无法服务该请求。此外,模型800和/或方程式1引入了信道容量,如上所述。
在预测状态费率并可任选地确定了可用时间和信道容量后,模型800或其数学表示可被用来把代理所寻求的性能等级与服务代理所通告的性能等级进行比较。如前所述,通过提供经由过程代数如π微积分确定的客观度量,这有助于请求服务的代理和处理该种请求的代理间的代理谈判,并减轻了代理用户确定性能级别(如每个转变的费率)的需求。
图10-12阐述了根据本发明的方法论。为便于解释,方法论被描绘和描述成一系列动作。可以理解和明白的是,本发明并不限于所述动作和/或动作之顺序,例如动作能以各种顺序和/或同时发生,并与未在此显示和描述的其它动作一起发生。此外,要实现根据本发明的方法论,并不是所有的图示动作都是必需的。另外,本领域技术人员将理解和明白,这些方法论可另外通过状态图表示为一系列相互关连的状态或事件。
进入图10,图示的是表示服务性能的方法论1000。在附图标记1010处,一个代理被设置。该代理可以是可利用另一实体来服务一请求的一个实体、可服务一请求的一个实体、及既可请求服务又可服务请求的一个实体。例如,用户可创建一个为其它web服务需求而服务的web服务。在另一示例中,该代理可以是利用web服务来处理请求的客户机。此外,该代理基本上可通过任意通信介质与其它代理通信。
在1020,为代理指定性能级别(例如在此所述)。如果代理请求服务,性能级别可表示诸如信息内容描述、潜在服务代理位置、一种或多种通讯协议、和包括诸如费率、可用时间、和/或容量性能标准的各种性能相关表示之期望服务质量的信息。类似地,如果代理服务一请求,性能级别可表示诸如信息内容描述、潜在请求代理位置、一种或多种通讯协议、和包括所提供费率、可用时间、和/或容量的所送呈服务质量的信息。通常,代理的创建者可指定前述性能信息。然而,应当理解,任何具有适当特权的用户都可以指定这些参数中的一个或多个。
一般而言,数学可被用来确定和/或指定至少部分的性能信息。对数学的利用提供了解除代理创建者或用户确定诸如与状态转变相关联费率信息的压力的客观措施(object measure)。另外,所采用的数学减少了确定信息时的用户错误和主观影响。适当数学的示例包括诸如象π和ρ微积分的随机微积分的过程代数,它至少可被用来帮助确定费率、可用时间、和容量。费率可用来表示由请求发起者从供应者处请求的资源量和/或代理供应者服务这样一个请求愿意支出的资源量。可用时间(uptime)可用来表示请求者愿意接受的处理延迟(如,与错误相关联)或由供应者在服务请求中的估计延迟。容量通常表示在任何给定时间可处理的数据量。
在附图标记1030,代理可利用其指定性能级别与其它代理谈判。例如,请求服务的代理可广播其性能,其中当服务代理可满足所广播的性能级别时,服务方代理可做出响应以对请求提供服务。这可通过把指定的性能级别与服务供应者所提供的性能级别加以比较来确定。在另一示例中,代理可观察服务供应者所通告的性能级别,将它们需要的性能级别与通告服务性能级别相比较,并基于该比较选择某一服务。对于提供服务的代理,代理可广播它愿意提供用来处理请求的性能级别和/或分析各请求来确定它能处理的请求。服务供应者另外还可通告它们服务的成本以有助于请求服务的代理做决定。
应当理解,随机π技术可用来帮助指定性能级别或另一指定机制。另外,性能预测技术被用作要对照该指定机制进行量度的一种实现。这样,契约可在随机-π片断和按其所测量的实现中指定。随机-π微积分学可用来使费率明确与动作相关联,其中语义学容许Gillespie型随机基于代理的仿真。操作语义学被用来将证明树与对应于π-微积分过程的执行的标示转换系统中的转变相关联,其中一个成本函数可被用来综合地将证明树映射到代表费率的数字。
接下来是图11,图示的是定位处理请求的服务供应者的方法论1100。在1100,代理或者传送一个表示代理所寻求的性能级别的“询问”,或从代理供应者处接收“投标”,其中“投标”表示代理供应者所提供的性能。接踵“询问”而来的是来自一个或多个代理供应者的一个或多个要约(offer)。在标记1120,请求方代理可提取代理供应者的性能级别。如前所述,代理供应者的性能级别通常包括至少消息内容描述、请求代理的位置、一种或多种通讯协议、包括所提供费率、可用时间和/或容量的所提供服务的质量、和服务质量成本。如上所述,随机微积分可用来确定和表示性能级别。
在1130,请求方代理接着可将其性能等级与代理供应者所提供性能级别(例如指定、实现等等)相比较,以确定供应者是否能满足其性能级别。如果多个供应者能满足指定性能级别,其它诸如性能成本的标准可用来帮助选择代理供应者。另外,基于智能的决定可用来帮助选择服务供应者。例如,基于统计学、概率论、优先(priori)信息、累积历史数据、推断和分类器(如,显式和隐式训练的),包括Bayesian学习、Bayesian分类器和其它统计学分类器的基智能决定,比如决定树学习法、支持向量机器、线性或非线性衰退和/或中性网络,可根据本发明的一个方面被采用。推断可以是指根据一系列经事件和/或数据捕捉的观察结果推理或推断系统、环境、和/或用户状态的过程。在1140,请求方代理选择某一服务供应者来服务该请求。
图12阐述了服务请求的方法论1200。在1210,服务方代理可一如在此所述通告其性能级别,使得请求服务的代理能访问其性能级别。在部分实例中,该通告是主动提供和广播的,使得任何代理可得知其通告性能级别。在其它实例中,通告是响应于对服务的一个请求。在标记1220,提供服务的代理可确定它是否可满足该请求。该决定可包括比较服务该请求所需性能级别和服务供应者可用性能级别。在某一实例中,服务供应者可展露整个带宽来服务于一个请求,而在其它实例中服务供应者可限制它愿意为任一请求或请求群体提供的资源。在1230,能至少满足请求性能级别的服务供应者可将成本与其服务相关联。这一成本可提供给请求方代理,用来帮助请求方代理在诸多服务供应者中作出决定。
为了提供实现本发明的各种方面的附加上下文(additional context),图13-14和以下讨论意在提供对一个在其中本发明各方面可得以实现的适当计算环境的简要、一般描述。尽管本发明已经在运行于本地计算机和/或远程计算机的计算机程序的计算机可执行指令一般上下文中作了以上描述,本领域技术人员将明白,本发明也可结合其它程序模块得以实现。一般地,程序模块包括执行具体任务和/或实现具体抽象数据类型的例程、程序、组件、数据结构等。
此外,本领域技术人员将理解发明方法可用其它计算机系统配置实践,包括单处理器或多处理器计算机系统、迷你计算机、大型计算机、还有个人计算机、手持式计算设备、基于微处理器和/或可编程消费电器等等,其中每一种都可与一种或多种相关联设备进行操作性通讯。本发明所说明的诸方面也可在某些任务由经通讯网络连接的远程处理设备执行的分布式计算环境中实践。然而,本发明的某些方面(如果不是所有方面)可在单机计算机上实践。在分布式计算环境中,程序模块可位于本地和/或远程存储设备。
图13是本发明可与之相互作用的样本计算环境1300的示意块图。系统1300包括一台或多台客户机1310。客户机1310可以是硬件和/或软件(例如线程、过程、计算设备)。系统1300还具有一台或多台服务器1320。服务器1320可以是硬件和/或软件(例如线程、过程、计算设备)。例如,服务器1320可容纳线程以采用本发明执行变换。
客户机1310和服务器1320间的一种可能通信能以适合在两个或多个计算机过程间传送的数据包形式进行。系统1300具有可被用来帮助客户机1310和服务器1320间通信的通信框架1340。客户机1310可操作地与用来存储客户机1310本地信息的一个或多个客户机数据存储1350相连接。类似地,服务器1320可操作地与用来存储服务器1320本地信息的一个或多个服务器数据存储1330相连接。
参照图14,实现本发明各方面的示例性环境1400具有计算机1412。计算机1412具有处理单元1414、系统存储器1416、及系统总线1418。系统总线1418耦合系统组件包括,但不限于将系统存储器1416耦合到处理多元1414。处理单元1414可以是各种可用处理器的任一种。双微处理器和其它多处理器架构也可被用作处理单元1414。
系统总线1418可以是若干类总线结构的任一种,包括存储器总线或存储器控制器、外围总线或外部总线、和/或使用各种可用总线架构任一种的本地总线,这些总线架构包括,但不限于,工业标准架构(ISA)、微信道架构(MSA)、扩展ISA(EISA)、智能磁盘设备(IDE)、VESA局部总线(VLB)、外围部件互连(PCI)、卡总线、通用串行总线(USB)、加速图形接口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)、火线(IEEE1394)、和小型计算机系统接口(SCSI)。
系统存储器1416具有易失存储器1420和非易失存储器1422。包含在计算机1412硬件间传送如起动时信息的基本例程的基本输入/输出系统(BIOS),存储在非易失存储器1422上。作为说明且无限制,非易失存储器1422可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失存储器1420具有作为外部高速缓存的随机存取存储器(RAM)。作为说明且无限制,RAM有多种形式可用,如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SRAM)、双数率SDRAM(DDR SDRAM)、增强DSRAM(ESDRAM)、同步链接DRAM(SLDRAM)、和直接Rambus RAM(DRRAM)。
计算机1412还具有可移动/不可移动、易失/非易失计算机存储介质。图14示出了例如磁盘存储器1424。磁盘存储器包括,但不限于,象磁盘、软盘、磁带、Jaz盘、Zip盘、LS-100盘、闪存卡、或存储棒。另外,磁盘存储器1424可具有单独存储介质或结合其它存储介质包括,但不限于,诸如光盘ROM设备(CD-ROM)、可记录光盘驱动器(CD-R盘)、可重写光盘驱动器(CD-RW盘)、或数字化视频ROM盘(DVD-ROM)的光盘。为便于磁盘存储器1424与系统总线1418的连接,通常可使用诸如接口1426的可移动或不可移动接口。
应当理解,图14描述了作为用户和在适当操作环境1400中描述的基本计算机资源间中间体的软件。这种软件具有操作系统1428。可存储在磁盘存储器1424中的操作系统1428,其作用是控制和分配计算机系统1412的资源。系统应用1430得益于操作系统1428通过存储在或系统存储器1416或磁盘存储器1424中的程序模块1432和程序数据1434对资源的管理。可以理解本发明可用各种操作系统或操作系统组合来实现。
用户通过输入设备(们)1436将命令或信息输入到计算机1412中。输入设备1436包括,但不限于,诸如鼠标、跟踪球、铁笔、触板、键盘、麦克风、操纵杆、游戏垫、卫星接收器、扫描仪、电视调谐器卡、数字相机、数字录像照相机、网络相机等定点设备。这些和其它输入设备经系统总线1418通过接口端口(们)1438与处理单元1414相连。接口端口1438包括例如串行端口、并行端口、游戏端口、和通用串行总线(USB)。输出设备1440使用象输入设备1436的某些相同类型端口。因此,例如USB端口可用来为计算机1412提供输入,并将信息从计算机1412输出到输出设备1440。输出适配器1442被提供用来说明某些输出设备象监视器、扬声器、和打印机,与其它输出设备1440之间,需要特殊适配器。输出适配器1442包括,作为说明且无限制,视频卡和声卡在输出设备1440和相同总线1418间提供了连接方法。应该注意的是诸如远程计算机1444的其它设备和/或设备系统提供输入和输出功能。
计算机1412使用与一台或多台远程计算机如远程计算机1444的逻辑连接在网络化环境中操作。远程计算机1444可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器设备、同等设备或其它相同网络节点等等,而且通常包括所述与计算机1412相关的许多或全部元件。为简化起见,仅存储器存储装置1446与远程计算机1444一起图示。远程计算机1444经网络接口1448与计算机1412逻辑连接,然后通过网络连接1450进行物理连接。网络接口1448包括诸如局域网(LAN)和广域网(WAN)的有线和/或无线通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网、令牌环等等。WAN技术包括,但不限于,点对点链接、象综合服务数字网(ISDN)及其后变种的电路切换网络、报文分组交换网络、和数字用户线路(DSL)。
通信连接1450指向被用来将网络接口1448连接到总线1418的硬件/软件。尽管为了清晰地说明,通信连接1450被示为位于计算机1412内,但它也可在计算机1412之外。与网络接口1448连接所必需的硬件/软件具有,仅作为示例,诸如包括常用电话级调制解调器、电缆调制解调器和DSL调制解调器的调制解调器、ISDN适配器、和以太网卡等内部和外部技术。
以上所述包括本发明的诸多示例。当然,为描述本发明而对每一能想到的组件或方法论组合进行描述是不可能的,但本领域普通技术人员明白本发明的更多排列和组合是可能的。因此,本发明意欲包含所有这样的在所附权利要求书精神和范围内的变更、修改、和变化。特别是关于以上所述组件、设备、电路、系统等等执行的各种功能,除非另有注明,用于描述这些组件的术语(包括对“装置(means)”的指代)意在对应执行所述组件(如功能等效体)特定功能的任何组件,尽管它在结构上并非等同于在本发明在此所述示例性方面中执行所述功能的揭示结构。在这点上,也可明白本发明包括系统和具有计算机可执行指令的计算机可读介质,用来执行本发明各种方法的动作和/或事件。另外,尽管仅相对于若干实现之一已经对本发明的具体特征作出了揭示,当对任何给定或具体应用有利或需要时,这种特征可与其它实现的一个或多个其它特征组合。而且,就用于具体实施方式或权利要求书的术语“具有”、和“含有”及其变型而言,这些术语意在以类似于术语“包括”的方式作包含意义解。