首页> 中国专利> 利用用于使用群体智能在大规模分布式系统中进行信息路由的框架的系统和方法

利用用于使用群体智能在大规模分布式系统中进行信息路由的框架的系统和方法

摘要

在某些实施例中,本发明涉及网络中的信息路由,更具体地说,涉及使用群体智能定义框架并利用所定义的框架在网络中路由信息,尤其适合于云计算应用。在实施例中,使用信息分组(蚂蚁)将关于可用的信息/服务的信息推送到网络节点。需要服务的节点发送查询分组(蚂蚁),并且当信息可用时,节点可以发送对查询蚂蚁的响应。可以基于节点的流行性、信息/请求的新鲜度、路由表信息以及在信息路由表中捕获的消费方节点的请求或兴趣来在整个网络上转发蚂蚁。描述并要求保护了其它实施例。

著录项

  • 公开/公告号CN102656922A

    专利类型发明专利

  • 公开/公告日2012-09-05

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN200980162962.4

  • 发明设计人 W·C·翁;M·赵;

    申请日2009-12-18

  • 分类号H04W40/04(20060101);H04W84/18(20060101);H04W88/02(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人刘瑜;王英

  • 地址 美国加利福尼亚

  • 入库时间 2023-12-18 06:24:39

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-05-18

    授权

    授权

  • 2012-10-31

    实质审查的生效 IPC(主分类):H04W40/04 申请日:20091218

    实质审查的生效

  • 2012-09-05

    公开

    公开

说明书

技术领域

概括地说,本发明的实施例涉及网络中的信息路由(即,能够使节点快速地定位所需信息以及使节点以分布式方式将信息快速地分散到感兴趣方),更加具体地说,涉及使用群体智能定义框架以及将所定义的框架用于在网络中路由信息,尤其针对云计算应用。

背景技术

在新的“因特网时代”,网络中的资源(诸如可用的服务和信息)可以驻留在许多地方。例如,对于服务器云计算应用,大量的数据中心/服务器协作以向客户端提供数据存储/服务/计算能力。由于网络状况、网络活动性以及应用的改变,资源可用性是动态的。重要的是使得对这些数据中心/服务器的自动化管理能够快速地响应并满足客户端的服务请求工作量、可靠性、鲁棒性以及性能要求。此外,由服务器/数据中心所提供的服务/信息并非同构的。而是丰富并且多样的。使得服务器/数据中心以及客户端能够有效地管理这些多样性信息并跟踪动态信息可用性状态可能是巨大的挑战。在对等节点共同协作以均提供并消费服务的客户端云计算应用中,存在客户端机器可能以不可预知的方式开启和关闭的增加的复杂度。因此,资源管理系统必须足够快地作出反应,以跟踪每个节点的动态状态并更新网络的其余部分。

已在基于群体的技术,特别是在已被广泛地用于利用网络中的分布式处理来解决问题的基于蚁群的技术中进行了各种研究。现有的网络信息/资源管理系统提出了以集中的和人工的方式来支持大规模网络中的信息/资源分发/获取。这种系统需要服务器或一组服务器来管理网络资源,并且这些服务器需要持续的管理投入来保持其对客户端的可用性。随着网络规模的不断增长,跟踪网络动态并对其进行反应变得越来越具有挑战性。

研究人员在(1)Gianni Di Caro,Marco Dorigo,“Antnet:DistributedStigmergetic Control for Communications Networks”,Journal of ArtificialIntelligence Research 9(1998),P317-365,以及(2)Ruud Schoonderwoerd,Owen Holland,Janet Bruten和Leon Rothkrantz,“Ant-based load balancing intelecommunication networks”,Adaptive Behavior,Vol 5,No 2,1996中报告了基于蚁群的路由协议被证明普遍地支持大规模网络中的有效路由。

当前,在Tao Jiang和John S.Baras,“Ant-Based Adaptive Trust EvidenceDistribution in MANET”,Proceedings of the 24th International conference onDistributed Computing Systems Workshops(ICDCSW'04),2004中描述了一种基于群体的协议。该报告(本文中的“Jiang等人”)提供了基于蚁群的信息分发。这些作者利用蚂蚁代理来从移动自组织网络(MANET)获取证书(作为信任证据)。Jiang等人教导了一种用于直接搜索节点需要的信息而不是经由路由表进行路由的系统。作为替代,利用使用关键词查找特定信息的信息路由表来替换该路由表。所要搜索的信息仅为通过目标实体索引的证书。

附图说明

从下面本发明的详细描述中,本发明的特征和优点将变得显而易见,其中:

图1是根据本发明的实施例,用于提供基于蚁群的信息分布网络的网络节点中存在的基本组件的框图;

图2是根据本发明的实施例,利用特定的能力参数标识提供信息或服务的节点的示例性信息路由表;

图3-6是可以如何使用容器(bin)来分配概率信息的代表性示例;

图7是根据本发明的实施例,网络上的示例性节点的框图,其示出了通过网络的查询和查询应答蚂蚁的通信;

图8是根据本发明的实施例,示出了用于促进在整个网络中向节点传播信息/服务的附加信息的示例性信息路由表;

图9是根据本发明的实施例,示出了服务/信息提供节点可以如何在整个网络中传播信息的流程图;

图10A-B表示根据本发明的实施例,具有指示概率和流行性(popularity)测量的附加元素的路由表;

图11A-B是根据本发明的实施例,示出了查询蚂蚁可以如何在整个网络中传播以搜索信息/服务提供节点的流程图;以及

图12是根据本发明的实施例,示出了基于使用路由表中的每个节点的概率测量以及使用流行性测量,查询蚂蚁向网络中的节点传播的图。

具体实施方式

本发明的实施例是与使用群体智能通过使需要数据存储/计算资源的客户端与能够提供所需的数据存储/计算资源的数据中心联合在一起来实现网络中的云计算有关的系统和方法。Jiang等人的协议具有多个问题,这些问题由本发明的实施例解决。Jiang等人仅支持单一类型的信息:证书。他们的解决方案仅适用于特定的问题,而本发明的实施例提供了灵活的框架以适应多种类型的信息。此外,他们的协议未利用其它数据源,诸如在本发明实施例中提供的有助于管理信息表的连接信息、路由表更新和时效(aging)信息。

在说明书中对本发明的“一个实施例”或“实施例”的引用意味着结合该实施例所描述的特定的特征、结构或特性包括在本发明的至少一个实施例中。因而,出现于整个说明书各处的短语“在一个实施例中”不必全部涉及同一实施例。

出于解释的目的,阐述了具体的配置和细节,以便提供对本发明的透彻理解。然而,对本领域普通技术人员显而易见的是,可以不使用本文所呈现的具体细节来实践本发明的实施例。此外,可以省略或简化公知的特征,以便不会使本发明不清楚。贯穿本说明书可以给出各种实例。这些实例仅是对本发明具体实施例的描述。本发明的范围并不限于给出的实例。

现有的集中式和人工信息分发/获取系统无法支持大规模网络中的信息/资源分发/获取以及满足用户的鲁棒性和可靠性要求。本发明的实施例使用基于蚁群的方法来构造、维护以及使用信息路由表,以支持信息分发和获取。这提供了多个优点,例如,固有的鲁棒性和容错特性。由于基于蚁群的路由的特性,本文所描述的协议自然地支持多个目的地。因此,如果由于设备故障或恶意攻击一个目的地失败,还存在可以进行选择的多个可替换的目的地。提供了自动网络负载均衡和业务拥塞避免。多个目的地以及选择目的地的可能性的方式允许对不同的目的地进行选择,并且将业务分发到网络的不同部分。这种方案避免了业务拥塞。支持信息/服务的多样性。该信息路由表是灵活的以适应可以由网络中的节点提供的丰富的信息类型集合。可以支持大规模分布式网络。提供对网络动态的改变的有效跟踪。实施例描述了信息路由表更新机制,其能够通过将人工蚁群的开发(exploitation)和探测(exploration)操作相结合来快速地跟踪网络改变。蚁群开发流行节点以用于接收更多的信息和快捷的服务。流行节点可以通过在时间窗口上该节点被分组选择作为最终目的地节点的次数来进行测量。同时,蚂蚁代理随机地探测网络以快速地发现网络中的任何改变。

本发明的实施例提出了一种框架以支持大规模动态和分布式系统的信息分发。本文所提出的该机制可应用于诸如云计算、客户端云计算等多个领域。需要大量节点来交换、消费以及提供信息/服务的任何应用都可以应用所公开的框架。

本文中引入了基于群体的计算的各种到目前为止未预见的组件和特征。引入了一种框架来支持分布式系统中的多样性信息的管理。引入了概率信息路由表来组织信息并促进信息分发。还引入了用于从网络中获取信息的信息路由表。引入了用于对所描述的信息路由表进行快速更新和管理的机制,其包括蚂蚁代理、节点消息交换、路由表更新以及时效机制。

实施例使得网络和服务能够具有下列属性:

该网络可以具有数以千计个节点;

该网络可以具有非常动态的拓扑(例如,节点可以快速地加入和离开网络);

不需要中心点来控制信息分发和获取;

可以存在由网络中的节点提供的许多不同类型的信息;

可以存在为相同类型的信息或服务进行服务的多个节点;以及

信息/服务可用性可以是非常动态的(即,随着时间快速变化);

另外,由本发明的实施例所提供的解决方案可以满足下列要求:

有效性:对新信息的更新可以被快速地分发到消费方;

鲁棒性:对动态网络变化的恢复力;以及

效率:信息路由表和用于管理信息路由表的机制在每个节点上以及在网络上引入了相对低的开销。

现在参考图1,其示出了根据本发明的实施例,在支持所描述的信息路由框架的每个节点100中存在的基本组件的框图。在实施例中,路由表101提供了关于如何使用节点地址到达网络中的其它节点的信息。假定低级路由机制存在于需要使用路由表的网络节点中。根据本发明的实施例,信息路由表103是所公开的信息路由框架的核心,其允许基于群体的智能信息路由。信息路由表103提供数据可用性信息。服务消费代理105使用信息路由表来从网络中定位并提取期望的服务和数据。服务提供代理107向网络提供服务,并将其服务以信息路由表中的项的形式通知其它节点。将在下面对这些组件进行更加详细的描述。

在实施例中,服务消费代理和服务提供代理可以利用所谓的“蚂蚁”代理110。该代理被称为“蚂蚁”是因为它们趋向于像蚂蚁在院子中所做的一样来巡视网络。蚂蚁是社会性昆虫,它们可以是自适应的、分散的和鲁棒性问题解决者。蚂蚁探测院子将留下费洛蒙来指示它们所经之处。蚂蚁通过激发协作(stigmery)来彼此进行通信,即通过在其环境中引入的变化(诸如费洛蒙)来在个体之间进行间接的通信。蚂蚁能够通过激发协作来找出两点之间的最短路径。

蚂蚁利用与费洛蒙浓度成比例的概率来选择路径;具有更高费洛蒙的路径上的蚂蚁将调查相同的区域,例如,开发。使用其它路径的蚂蚁将探测新的区域,例如,探测。

在实施例中,提供一种框架,其中,信息路由表(IRT)可以用作由巡视网络的蚂蚁代理所留下的信息的存储库。换句话说,IRT包含近似于在现实世界中蚂蚁所留下的费洛蒙的信息。查询蚂蚁113可以由节点用于将探测蚂蚁发送到网络中,以寻找所需的服务或信息。可以利用查询-B蚂蚁115来发送响应。提供服务或信息的节点可以利用信息蚂蚁111来宣布其可用性。

在大规模网络中,每种类型的信息/服务可以由多个节点来提供,并且每个节点可以提供多种类型的信息/服务。在图2中更加详细地示出了信息路由表103的实施例。通过向多个提供节点分配概率值来将信息路由表的特征描绘为多个提供节点的排列。参考图2,信息路由表103包含下列的项:当前节点感兴趣的信息/服务类型(T)210。T索引信息路由表中的信息/服务类型。对于每个信息/服务类型Ti210,最后访问时间戳211用于记录该服务类型被访问的最后时间。该时间戳有助于确定当前节点是否仍然对Ti感兴趣。对于每个信息/服务类型Ti,信息路由表列出了提供Ti的节点213和在以下方面对提供节点的描述:

·xi:提供节点的地址215;

·C(xi,Ti):提供节点的能力参数217的集合。在此,可以定义量化节点能力的任何度量,例如,计算功率/存储器大小以及现在可用的计算功率/存储器大小、延迟、成本、安全等级等;

·Rep(xi,Ti):提供方信誉223基于过去的事务经历提供信息/服务提供节点的可靠程度的度量。该参数可以被计算为移动时间窗口上的商,例如,时间窗口上成功的过去事务的数量/过去事务的总数量。另外,相邻节点可以在受信任的节点之间共享该信息,以提供更多的信息。这可以帮助节点快速地分配其之前从未使用过的提供方信誉。对于新的信息/服务提供节点,提供方信誉可以设为0.5或另一预定等级。

·最后更新时间戳:最后更新时间戳219记录最后一次更新该项的时间。最后更新时间戳使得当前节点能够避免基于过时的信息更新该项。

·Pr(xi,Ti):针对所需要的信息/服务,在提供相同信息/服务的所有节点中选择节点xi的概率221。

Pr(xi,Ti)满足下列要求:

0≤Pr{xj,Ti}≤1,其中Xi={x1,x2,...,xm}是提供信息类型Ti的节点的集合。作为节点能力、提供方信誉、最后更新/项访问信息等的函数来计算该概率。IRT可以不包含提供信息/服务类型Ti的所有节点的信息。而是,可以根据通信延迟、成本、提供方信誉以及其它度量来选择这些节点的子集记录在IRT中。采用这种措施以缩短IRT和搜索操作,并且仅记录能够快速、可靠、廉价和安全地提供信息/服务类型Ti的节点。具有较高能力、提供方信誉或最近地被更新的节点通常将具有更高的概率值。该概率项计算是应用特定的并且可以变化。在此仅作为示例来描述用于计算概率的示例性方法。

作为示例,假设下列度量被用于描述如何评估可能的服务提供方中心:(1)服务器处理功率;(2)存储器/存储能力;(3)提供方信誉;(4)分组从服务提供节点行至服务消费节点的行进持续时间;以及(5)时间值T:最后更新该项的时间。由节点在T秒的移动时间窗口上对应于上面提到的前四个度量来收集统计值。在实施例中,可以存在多于四种度量。然而,如下面所讨论的,应用相同的方法。

首先,在将每个度量组合成最终的概率值之前处理每个度量。下列处理可以用于对除时间值T之外的所有度量进行处理:

首先,将从最小和最大的间隔划分成N个容器。其次,给每个容器分配测量该容器的优先权的值。例如,如果关注于处理功率,则包含较高处理功率的容器将具有比包含较低处理功率的容器更高的值。

针对度量值的处理,使用以下标记:

Pmax和Pmin分别是在过去T秒通过由信息蚂蚁推送的信息或者如下面进一步讨论的其它手段观测到的最大服务器处理功率和最小处理功率。

Pbin=(Pmax-Pmin)/N_P_interval,其中,N_P_interval可以是10或另一数字,其以均匀大小将处理功率从Pmin到Pmax划分成N_P_interval个桶(bucket)。注意,也可以将从Pmin到Pmax的间隔划分成具有各种大小的桶。

Mmax和Mmin分别是在过去T秒观测到的最大存储和最小存储大小。

Mbin=(Mmax-Mmin)/N_M_interval,其中,N_M_interval可以是10或另一数字,其以均匀大小(或可变大小)将存储能力从Mmin到Mmax划分成N_M_interval个桶。

Tmax和Tmin分别是在过去T秒观测到的分组行进的最大持续时间和最小持续时间。

Tbin=(Tmax-Tmin)/N_T_interval,其中,N_T_interval可以是10或另一数字,其以均匀大小(或可变大小)将行进的持续时间从Tmin到Tmax划分成N_T_interval个桶。

Repmax和Repmin分别是已在过去T秒观测到的各种信息/服务提供方的最大提供方信誉和最小提供方信誉。

Repbin=(Repmax-Repmin)/N_Rep_interval,其中,N_Rep_interval可以是10或另一数字,其以均匀大小(或可变大小)将行进的持续时间从Repmin到Repmax划分成N_Rep_interval个桶。

向图3中描绘的每个容器分配容器号。给每个容器分配值。针对处理功率、存储大小和信誉,可以使用以下函数来向其每个容器分配值:

Bin value=(bin#times bin width)p/(N_P_interval or N_M_interval orN_Rep_interval times bin width)p,并且p>0,其中,可以在图4中找到p=1和2的容器值(bin value)。

对于持续时间(或更小数字为优选的其它度量),容器值分配可以是:

Bin value=1-(bin#)p/(N_T_interval)p,并且p>0,其中,可以在图5中找到p=1和2的容器值。

注意,当p>1时,更高的容器号趋于被更多地回报(针对持续时间降低容器号)。

在实施例中,可以使用以下方法来将所有的度量组合为一个:

值=(α1*处理功率容器值+α2*存储大小容器值+α3*提供方信誉容器值+α4*持续时间容器值)*exp(-β*(当前时间-T)),其中,所有的α’s之和=1。α’s的精确值取决于该特定度量的重要程度。例如,对于具有时间敏感的应用的节点而言,α4可以设为0.5,而α1=0.05,α2=0.05并且α3=0.4。另一方面,β控制概率因时效(最近未被更新的项)将下降多少。图6捕捉了β值对exp(-β*(当前时间-T))值的影响。注意,β值越高,exp(-β*(当前时间-T))下降得越快。

现在,可以确定最终的概率值。出于示例的目的,假定针对服务类型T1存在五(5)个项,则将存在五个值:值l、值2、值3、值4和值5。第n个项的最终概率可以被计算为:

Prob_n=值_n/(值_l+值_2+值_3+值_4+值_5)。在实施例中,可以使用概率计算的其它方法,例如,进一步对值进行加权。

当节点需要特定的信息/服务类型Ti时,该节点检查提供服务Ti的其节点的信息路由表项。如果没有项满足该节点的性能度量要求,则该服务查询失败。该节点可以调用如下面进一步讨论的信息查询过程以主动地在网络上搜索信息/服务。如果信息路由表中存在满足针对应用的节点的性能度量要求的至少一个项,则可以执行下面的操作以将满足性能度量要求的节点的概率进行标准化。执行该操作以使得能够在提供相同服务的合格节点之中选择信息/服务提供节点。每当生成对信息/服务Ti的查询时,将首先更新针对信息/服务Ti的信息路由表中的L_access_time_Ti。接下来,应当以下列方式来将满足性能度量要求的那些项的概率进行标准化。

将满足当前服务请求的性能度量要求的所有提供节点收集为集合X’i,并且其中,Xi={x1,x2,...,xm}是提供信息类型Ti的节点的集合。因此,对于每个节点x,当且仅当(iff)x满足当前服务请求的性能度量要求时,x∈X’i

可以按以下方式对x∈X’i的每个节点的概率进行标准化:

>Pr(x,Ti)normalized=Pr(x,Ti)ΣxkXiPr(xk,Ti).>

可以直接地使用Pr(x,Ti)normalized或使用Pr(x,Ti)normalized的函数来随机地选择服务节点。随机数生成器或其它方法可以用来使用所计算的经标准化的概率来随机地选择节点。例如,随机数生成器生成0和1之间的数。如果仅存在概率分别等于0.25和0.75的两个节点a和b,则如果所计算的随机数返回为0.6,因为该随机数落入0.25和1.0之间,因此选择节点b。如果所生成的随机数为0.15,则选择节点a。从而,将节点的概率分成范围为0.0到1.0的间隔。然后,可以将服务请求发送到所选择的节点。注意,实际的选择标准是应用特定的。可以选出一个或多个节点来服务当前节点。与严格的排列编号不同,使用概率方法能够避免因所有的节点从同一较小的顶部排列提供节点集合中寻找服务而造成的业务拥塞。

实施例提供了多种更新机制来更新节点中的信息路由表。后面将描述的更新机制使用群体智能范例来在整个网络上有效地传播并更新信息可用性。“人造蚂蚁代理”可以用于实现这个目标。例如,查询蚂蚁代理可以用于从网络中提取信息。信息蚂蚁代理可以用于主动地将新的信息/服务或信息/服务更新推送给需要该信息/服务的节点。

另外,可以由下列各项来触发信息路由表更新:(1)来自提供信息/服务的节点的服务应答消息;和/或(2)来自较低层路由表的更新信息;和/或(3)信息路由表项的时效。

现在参考图7,其示出了根据本发明的实施例,描绘查询和查询-B应答蚂蚁通过网络通信的网络上的示例性节点。服务提供节点710可以响应于服务请求701发送应答消息703。当该应答消息703行经网络730时,其可以在其返回请求节点720的行程期间触发(703a)其遇到的每个节点上的信息路由表723的信息更新。中间节点740可以更新现有的表项或创建新的项来记录服务节点最新可用的服务。另外,将更新提供相同信息/服务的当前节点的信息路由表中的所有项的概率值,以及概率值被重新计算以反映新的更新。

当网络连通性或拓扑变化时,更新路由表721。当节点变为不可到达时,可以将其从节点的路由表中移除。不可到达的节点将无法提供信息/服务。因此,当节点从路由表中移除时,也可以自动地将其从信息路由表723中移除。将在信息路由表723中删除与不可到达的节点相关的项,并将重新计算提供相同信息/服务的所有剩余节点的概率值。

信息路由表723中的旧的项可能是过时的并且可能无法反映当前网络/设备状况。另外,在一段时期内未被访问的信息/服务类型反映了对该信息/服务类型较低的感兴趣程度。由于概率项更新函数考虑更新时间戳,因此这些旧的项的概率项随着其时效而下降。当它们的概率项达到低阈值时,由于其变得过时或不再重要/感兴趣,因此可以将该项从信息路由表中移除。因此,将对相同的信息/服务类型的剩余项的概率值进行重新计算以反映这些变化。另外,当在超出由访问时间戳反映的某阈值的较长时间没有访问信息/服务类型时,可以将整个信息/服务类型从信息路由表中移除。然后,假定该信息/服务类型不再是该节点感兴趣的。

可以以各种方式将信息通过网络传播到节点。上面讨论了用于节点的路由表的一些新项。还已经讨论了促进在大规模网络上定位信息/服务的信息路由表。本发明的实施例将附加项包括到信息路由表,以促进在整个网络上向节点传播信息/服务。

图8示出了针对每个现有信息类型或新的信息类型Ti具有附加的四(4)个更多字段的示例性信息路由表:(1)询问服务的源节点801;(2)查询蚂蚁创建时间807;(3)性能度量要求803;以及(4)查询蚂蚁到达时间805。询问服务的源节点801是从其发送查询蚂蚁(后面讨论)的节点地址。查询蚂蚁创建时间用于确保信息路由表包含最新的信息。当来自相同节点的携带相同查询的具有更近创造时间的新查询蚂蚁到达节点时,将使用新查询蚂蚁中的信息来更新现有项。然后,将该查询蚂蚁转发到下一个新节点。另一方面,如果新到达的查询蚂蚁较老,则将杀死该查询蚂蚁并且不将其转发到下一个新节点。性能度量要求803表示需要满足源节点的能力要求和提供方信誉。查询蚂蚁到达时间805存储查询蚂蚁被接收的时间。通过比较当前时间和查询蚂蚁到达时间之间的差,可以将具有超过时限的时效的项从信息路由表中删除。

信息蚂蚁可以使用新的项801、803、805和807来确定要向哪个节点发送信息/服务可用性更新。

信息蚂蚁代理可以由节点用来将其能够提供的信息/服务快速地传播到网络中的其它节点。在每个节点处,可以向网络发出信息蚂蚁代理,以传播对应于以下各项的信息:(1)由于新的设备加入网络而添加的新的信息/服务;(2)由于负载经历改变而发生的能力参数的显著改变(当满足需要时能力增加或当接收到更多新的服务请求时能力降低);以及(3)当设备/节点被适当地关闭时删除的信息/服务。在某些实施例中,可以以周期性间隔发送信息蚂蚁,以保持网络上的信息是最新的。

在实施例中,信息蚂蚁代理由下列格式组成:Information(D,S,T):{S||T||iCTime||D||PM{S,T}||hop||D_type_flag},其中

D是信息蚂蚁要去往的目的地节点,

S是信息/服务可用的源节点地址,

T是由节点提供的信息类型,

iCTime记录与S和信息类型T相关联的信息蚂蚁的创建时间,其中,S针对节点产生的每个信息类型维护单独的iCTime。使用相同的iCTime来生成用于更新类型T的信息的一批信息蚂蚁。每当生成新的更新时,将iCTime值更新为生成该更新时的当前时间。

PM{S,T}包含在源节点S处提供的信息类型T的能力参数、提供方信誉。

hop是指定到目前为止信息蚂蚁已行进的距离的跳数值。在开始时,hop=0。

D_type_flag指定如何设置信息蚂蚁的目的地D。在实施例中,可以按以下方式设置D_type_flag。

如果使用信息路由表设置目的地D,则D_type_flag=S。这意味着目的地D已在过去主动地询问过信息类型T,并且在将来可能感兴趣接收关于这种信息类型的更新。

如果使用路由表来设置目的地D,则D_type_flag=P。这意味着目的地D是因其流行性测量而被选择的,并且可能会或者可能不会对信息类型T感兴趣。因此,可以在以后的跳跃中改变以这种方式选择的目的地,以将信息蚂蚁重定向到实际需要该信息更新的节点。

在实施例中,可以使用如图9中所示的过程来在网络上传播信息。当节点开始或停止提供信息类型T,或者关于提供信息类型T的节点的能力参数已经显著改变时,该节点将在框901中通过发出信息蚂蚁来开始传播该信息。

在框903中,以如上所描述的格式生成N个信息蚂蚁。information(D1,S,T),information(D2,S,T),...,information(D3,S,T),其中,D1,D2,…,Dn是目的地节点。应理解的是,每个节点可以基于网络拥塞水平估计、更新的紧迫性、对该信息类型的感兴趣程度等来针对N使用不同的值。在框905中,可以按以下方式选择目的地节点。如果任何信息路由表包含询问信息类型T的具有满足或超过源节点的要求的性能度量参数的源节点,则可以将这些源节点设置为目的地地址,并且D_type_flag=S。如果在信息路由表中存在多于N个的源节点,则可以使用路由表中的流行性测量来选择N个最流行的源节点,其中D_type_flag=S。如果在信息路由表中存在对该信息类型感兴趣的较少的源节点,则可以将剩余的信息蚂蚁发送到路由表中还没有被选择的最流行节点,并且设置D_type_flag=P,以指示那些节点未明确地请求如在源节点或中间节点的信息路由表中所标识的信息。如果未在信息路由表中找到信息,则可以根据流行性测量来将目的地节点设置为路由表中的N个最流行的目的地。如果在路由表中存在少于N个的目的地,则可以减少信息蚂蚁的数目,或者可以将信息蚂蚁发送到复制的地址。当发送到复制的地址时,将理解,如下面进一步讨论的,由于中间节点进行路由和重路由的某些随机性,可以通过网络的不同部分来传播信息蚂蚁。因此,与不允许复制的情况相比,信息可以最终到达更多的节点。

在框907中,一旦针对信息分组information(D,S,T)设置了目的地节点,则可以使用路由表对信息蚂蚁进行路由。在每一跳处,信息蚂蚁的接收节点可以采取多个动作中的一个。为了示例目的,如果节点l没有通过通信路由直接连接到目的地节点n,则该信息必须通过至少一个中间节点m。在路由表中针对节点l标识中间节点m。

在实施例中,中间节点可以基于特定的标准来改变信息蚂蚁的最终目的地地址。如果D_type_flag=P,则可以改变信息蚂蚁的目的地地址。一旦接收到具有D_type_flag=P的信息蚂蚁information(D,S,T),则该接收节点将检查其自己的信息路由表。如果存在询问信息类型T的具有通过C{S,T}和Rep{S,T}满足的性能度量要求的源节点,则可以将目的地D转换到该新的源节点,并设置D_type_flag=S。如果存在多个源节点,则可以将最流行源节点选择作为目的地。对于具有相同流行性测量的多个源节点,可以随机地选择目的地。然后,使用中间节点的路由表来将信息蚂蚁转发到目的地节点。

在框909处,接收节点通过将存储的针对每个{S,T}对的iCTime与接收的iCTime值相比较来确定信息蚂蚁是否是最新的。如在框909中所确定的,如果接收的iCTime值小于或等于维护的iCTime值,则在框921中丢弃该信息蚂蚁。否则,将维护的iCTime更新成接收的值,并且该蚂蚁(信息)的信息处理继续进行。

在框911中,利用信息蚂蚁中包含的信息来完成关于信息类型T的新的项(如果需要的话)或信息路由表中的现有项的更新。然后,对信息类型Ti的概率值重新计算并应用到信息路由表中的项。如在框913中所确定的,如果接收节点是目的地节点,则在框915中,更新完成,并且“杀死”信息蚂蚁,例如,不再进一步发送。否则,在框923中,检查D_type_flag以查看其是否指示蚂蚁因流行性测量而被路由,例如,D_type_flag等于P。

如在框923中所确定的,如果D_type_flag等于P,则可以在合适的情况下如上所述在框925中改变信息蚂蚁目的地地址并且将D_type_flag设置为S。在框917中递增跳数,然后在框919中进行检查以确定跳数是否已超过最大阈值。如果跳数已超过最大阈值,则在框921中将蚂蚁杀死并且不再转发。如果跳数尚未超过,则在框907中使用路由表将信息蚂蚁路由至下一跳,并且过程继续进行直到已经到达目的地节点或者跳数超过最大阈值。当跳数超过时,在框921中杀死蚂蚁并且不再转发。

可以将网络代理中的多个参数设置为初始值,然后基于网络的性能进行修改。例如,如果转发造成过多的网络业务,则可以减小针对每个信息更新所要生成的信息蚂蚁的数量N,或者如果节点没有及时地接收到蚂蚁,则增加N。对于某些网络,合理的初始值可以是log(n),其中,n是网络中可到达的节点数目。针对N的最佳选择将取决于网络拥塞水平估计、更新的紧迫性、对该信息类型的感兴趣程度等。可以对由信息蚂蚁所行经的节点数目HOP_MAX进行修改,以更加高效地传播信息而不会使网络资源负担过重。初始值可以是到达最远节点的跳数(如由路由表所确定的),即,网络的直径或其一部分。

前述发布/订阅或推送/提取分布式协议允许网络上的节点订阅它们想使用的信息。节点的订阅信息作为其它节点的信息路由表中的项在网络上是可用的。因此,当数据或服务变得可用时,生产方可以有效地将数据分发给用户。不存在允许信息的生产方使用蚂蚁代理在网络上主动地推送数据可用性信息以加速信息查询和发现的现有协议。本发明的实施例针对节点使用基于蚂蚁的机制来主动并快速地将其提供的可用信息/服务推送到网络上。信息蚂蚁直接更新其它节点的信息路由表项。

这种基于蚂蚁的传播通过主动地将信息蚂蚁重定向到已递交最近查询的节点而允许信息广告到达最需要该信息的节点。通过基于在查询蚂蚁行至的任何节点的信息路由表中记录的最近查询不断地重新调整信息蚂蚁的目的地,来使得主动地使用信息/服务但不在源节点附近的节点的信息发现更有效。

如果在信息路由表中没有发现查询项,则可以通过基于流行性测量将信息蚂蚁的目的地选择为最流行的节点来增加整个网络中信息蚂蚁分发的覆盖范围。

在实施例中,可以不失时机地生成并转发查询蚂蚁以搜索可用的资源。可以响应于接收到查询蚂蚁来发送信息蚂蚁。添加到较低级路由表中的流行性测量可以促进查询蚂蚁行至具有较高概率的流行节点。由于该特征能够使查询更快地到达流行节点,因此该特性增加了信息查询的有效性和效率。通过在时间窗口上节点被设置为分组的目的地节点的频繁程度来测量节点的流行性。作者相信在流行节点处发生更多的信息交换。因此,这些流行节点可以提供更多的信息,并且该信息被更频繁地更新。

普通的路由表是由目的地节点索引的,并且指定了到达每个目的地节点的下一跳。对于基于蚂蚁的路由算法而言,每个节点处的路由表可以描绘针对每个目的地节点的多个路由。

图10A表示一般的路由表。将理解,附加项可以被存储在单独的表中(诸如附表),并被适当地索引到路由表中,以使得需要使用该路由表的传统代码不会被干扰。对于每个项,存在关于如何到达目的地节点的信息。路由表信息可以包括目的地节点1001、针对给定的目的地将分组转发到的下一跳节点1003、针对给定的目的地从多个选择中选出下一跳节点的概率1005、项的时间戳等。引向相同目的地节点的下一跳节点的所有概率项之和应为1。取决于具体的路由协议,实际的路由表可以包含图10A中指示的信息的子集或更多的信息。对本领域技术人员而言显而易见的是,可以通过改变本文中所描述的路由表的附加项来增强网络或节点路由协议,但是不需要修改原始的项。

图10B示出了流行性测量作为原始路由表的附加项。在实施例中,路由表包含附加项1007用于目的地的流行性测量。可以作为节点被选作分组的最终目的地的频繁程度的函数来得出流行性测量。作者观察到流行节点被更频繁地访问,因此在信息路由表中包含针对信息/服务T的更多的信息。该信息还倾向于是最近的。因此,如果查询蚂蚁访问具有较高概率的这些节点,则遇到有用信息的机会更高。为了影响查询蚂蚁访问这些流行目的地节点,在实施例中,可以向路由表添加针对每个目的地节点的附加项。该新的项是目的地节点的流行性测量1007。示例性流行性测量是Counter(k,Q)1007,其对在过去的时间窗口大小Q上节点k被选作分组的最终目的地的次数进行计数。将理解,可以使用其它流行性测量。

再次参考图10B,表项Pr{A,k}1011代表选择下一跳节点A来到达目的地节点k的概率。可以由需要信息/服务但无法在信息路由表中找到满足该信息/服务需要的足够信息的节点发出查询蚂蚁。在实施例中,查询蚂蚁可以使用下列格式:

query(D,S,T):{D||S||CTime||T||PM{S,T}||hop||permission||flag},其中

D是提供信息类型T的目的地节点标识或地址;

S是生成该查询的源节点标识或地址;

CTime是与S相关联的查询蚂蚁创建时间。使用相同的CTime生成一批查询蚂蚁。每当生成新的查询时,将CTime更新到节点处的当前时间;

T是描述所请求的信息/服务的信息类型;

PM{S,T}包含源节点S需要的信息类型T的能力参数、提供方信誉;

hop是指定到目前为止查询蚂蚁已访问的节点的数目的跳数值。在开始时,hop=0;

permission指定节点S是否授权该查询蚂蚁的接收节点代表S发起直接到信息提供节点的连接请求;以及

flag指定节点S是否授权该查询蚂蚁的接收节点改变该查询蚂蚁的目的地节点标识/地址。

在实施例中,当节点需要定位在网络上的何处提供信息/服务类型T时,其可以使用如图11A-B中示出的协议。在框1101中,当源节点识别来自网络上的另一节点的对信息/服务的需要时,该源节点开始寻找信息/服务提供节点的过程。

在框1103中,首先确定源节点的信息路由表是否包含满足性能度量要求的类型Ti的信息/服务的项。如果包含,则过程在下面要讨论的框1121处继续进行。否则,源节点需要来自网络上的节点的信息,并准备发送查询蚂蚁来请求所需的信息。在框1105中,将发送N个查询蚂蚁。可以使用query(D1,S,T),query(D2,S,T),...,query(Dn,S,T)的查询协议来生成这N个蚂蚁,其中,D1,D2,...,Dn是根据流行性测量(1007)在源节点的路由表中的N个最流行的目的地。如上面针对信息蚂蚁所讨论的,如果路由表中存在少于N个的目的地,则可以减少查询蚂蚁的数量,或者可以将查询蚂蚁发送到复制的地址。基于用户偏好,对于信息蚂蚁和查询蚂蚁而言,确定发送较少的蚂蚁或复制地址可以是相同或不同的。

在框1107中,使用源节点的路由表来识别下一跳目的地节点。然后,基于路由表将查询蚂蚁发送到下一个节点,并且其跳数递增1。可以通过其路径上的中间节点将查询蚂蚁路由到其最终目的地,例如,提供所需的信息或服务的节点。在接收到查询蚂蚁之后,中间节点将检查hop和CTime值,作为将该查询蚂蚁路由到下一跳的过程的一部分。

在框1109中,在下一跳或中间节点处,确定中间节点的信息路由表是否包含满足该查询蚂蚁所请求的性能度量要求的所请求信息。如果不包含,则如在框1115中所确定的,如果hop>HOP_MAX或者如果CTime是旧的或者如果该中间节点是最终目的地,则该中间节点将丢弃该查询蚂蚁。这意味着该查询蚂蚁过旧或携带过时的信息。因此,较旧的或过时的查询蚂蚁将不会无限期地持续在整个网络中传播。在框1117中,丢弃该查询蚂蚁,并且在某些实施例中,回送信息以通知源节点该查询蚂蚁已被丢弃。

如框1115中所确定的,如果查询蚂蚁仍是新的,则在框1119中,该查询蚂蚁将被当前节点进一步处理并可以被转发,以继续代表源节点搜索信息/服务。如果未能从中间节点的信息路由表中找到所查询的服务,则该中间节点检查查询蚂蚁中的跳数值。如果hop<HOP_MAX,则在框1107中将hop递增1并将该查询蚂蚁转发到下一跳。

在实施例中,可以在例如每第k跳处在查询蚂蚁中改变目的地节点地址。基于对网络中关联性程度的研究,值k可以被初始地设置为6或7。还可以将值k设置为网络直径的函数。查询蚂蚁中出现的flag指示是否允许中间节点修改目的地地址。可以基于中间节点的路由表中的节点的流行性值来改变修改的目的地地址。将目的地地址改为更流行的、更频繁访问的节点,使得查询能够传播到最有可能包含所需信息的节点。可以根据以下过程来改变查询蚂蚁的目的地。如果flag=TRUE,则可以在每k跳处改变查询蚂蚁的目的地。在接收到查询蚂蚁query(D,S,T)之后,接收节点将确定hop是否是k的倍数。如果flag=TRUE并且hop是k的倍数,则接收方可以计算概率测量Pk,并且做出决定来使用接收方的路由表中最流行的目的地节点来代替具有概率Pk的查询蚂蚁的目的地节点。如果发现具有相同流行性测量的多个节点,则在实施例中,可以随机地选择一个目的地。本领域技术人员将显而易见的是,可以使用各种随机选择算法。还将显而易见的是,当发现相同的流行性测量时,可以使用其它选择标准来选择目的地。例如,在实施例中,可以选择节点列表中具有较低(或较高)索引的节点,或者可以使用任何其它辨别方法。

参考图12,其示出了图表,该图表示出了基于使用如图10A和B中示出的路由表中的每个节点的概率测量以及使用流行性测量来将查询蚂蚁传播到网络中的节点。通过可能地改变查询蚂蚁的目的地,可以使查询蚂蚁探测网络中的更大区域。在实施例中,概率测量的公式可以被实现为下列的函数:

Pk←f(hop,counter(X,Q)),其中,counter(X,Q)是选择的目的地节点的流行性测量。因此,概率测量可以被计算为

Pk=(1-exp(-γ*hop))*(counter(X,Q)/路由表中的所有counter(X,Q)之和)。

对于在源节点附近的节点而言,由于(1-exp(-γ*hop))较小,因此Pk较低。源节点附近的节点很可能具有类似的流行性测量。因此,如果允许这些中间节点将目的地节点改为附近的节点,则查询蚂蚁将很可能结束被路由到类似的地点。

再次参考图11A-B,在实施例中,如由查询中的permission字段所定义的,有时可以允许包含针对到达的查询蚂蚁的信息的中间节点开始服务请求,以将源节点与提供信息/服务的节点相连接。如果中间节点的信息路由表包含由查询中的性能度量要求所指定的所需信息或服务(如在框1109中所确定的),则在框1111中确定该中间节点是否可以发起连接请求。在某些情况下,可能需要安全连接,因此在这些情况下,permission标志应为FALSE。如果没有同意该允许,则在框1113中,生成查询-B蚂蚁,即,信息返回蚂蚁,并且该查询-B蚂蚁与从该中间节点复制的所需信息路由表信息项一起返回到源节点,使得源节点可以更新其自己的信息路由表并进行其自己的连接请求。

在实施例中,查询-B蚂蚁的格式为

query-B(D,S,T):{D||S||CTime||T||X_content},其中

D是提供服务/信息类型T的所选择的节点;

S是包含该信息/服务的源节点地址;

X_content是当前节点的信息路由表中的项的内容;以及

CTime是该消息响应的对应查询蚂蚁的创建时间。

可以通过使用概率测量Pr(D,Ti)normalized,从如信息路由表中列出的提供信息类型T的多个目的地节点Di中随机地选出在查询-B蚂蚁消息中返回的节点地址D。使用接收方(或当前)节点的路由表来完成到目的地节点D的路由。

如图11B中所示,当允许中间节点发起连接请求时,过程在框1121处继续进行。如果多于一个的节点符合性能度量要求,则如上面所讨论的,使用信息路由表中的概率信息选择可能节点中的单个节点作为服务请求的目的地。因此,基于概率因素,对服务的每个请求可能导致连接到不同的可用节点。这避免了针对服务请求相同的节点被反复选择并且变得过载的问题。在框1123中,向选择的节点发送服务请求。

在框1125中,接收到服务请求的节点(目的地节点)可以发送应答消息,该应答消息通过节点的常规(传统)路由表进行路由。在实施例中,当应答消息经由常规路由表协议通过网络路由时,在框1127中,如果信息/服务不存在于本地信息路由表中,则更新每个中间节点的信息路由表或添加新的项。

在实施例中,当请求节点发现信息/服务的目的地节点不可到达时,例如,当没有接收到响应或者另一节点告知该请求节点目的地节点离线,并从路由表中删除了该节点时,该请求节点可以将该不可到达的节点的信息路由表项的概率降低较小的量或者降低到阈值以下,而不会完全地移除该项。从而,如果不可到达的节点只是短时间离线(例如,由于进行维护),则由于当先前不可到达的节点再次上线时接收到信息蚂蚁,信息路由表中的概率将逐渐地再次升高。对于流行的或邻近的节点而言,可能很快地接收到许多信息蚂蚁,因此将概率提升至之前的水平。在调整了不可到达节点的概率之后,请求节点将基于信息路由表中的经更新的概率值来针对信息/服务选择节点。如果不可到达节点在相当长的时间段内保持离线,则与该节点相关联的概率将趋于零,直到其恢复在线或者直到由于具有非常旧的信息而删除该项为止。优选的是当节点离线时保持信息路由表信息,即使是在路由表项已经被删除的情况下,这是因为当该节点再次在线时其可能是流行的或特别高性能的节点。

在实施例中,如果源节点S未在时间窗口t1内从任何节点接收到任何查询-B蚂蚁或任何服务应答消息,则S可以生成另一批查询蚂蚁。可以将查询蚂蚁创建时间CTime改为节点当前时间。如果在发出多批查询蚂蚁之后,节点S未在时间窗口t2内接收到任何查询-B蚂蚁或服务应答消息,其中,t2≥t1,则信息查询协议可以终止。

在实施例中,存在针对查询蚂蚁的两个时间限制t1和t2。可以将这些时间限制初始地设置为默认值。例如,用于在发送另一批查询蚂蚁之前等待响应的时间限制t1可以初始地设置为700ms。这个值基于作者对TCP RTT网络的经验研究。时间限制t2是在完全取消查询过程之前节点等待来自任何查询蚂蚁序列的响应的时间段。这个时间值取决于使用该信息路由系统搜索可用服务的应用。如果该应用能够容忍搜索服务的一(1)分钟延迟,则该时间值可以设置为一分钟。在最低限度,应用应当允许多于一批的查询蚂蚁来充分地覆盖网络的大部分。在这种情况下,基于700ms的默认t1值,设置t2=1500ms或2200ms是较好的示例值。

在实施例中,网络或节点管理员可以基于关于网络性能的经验数据或仿真研究来改变多个变量的默认值。

值N,即针对每个信息查询要生成的查询蚂蚁的数量,可以取决于需求的紧迫性、网络业务负荷等。何时允许查询蚂蚁使用优先权队列代替数据队列的条件也可以变化。

HOP_MAX的值,即查询蚂蚁可以行经以高效地发现信息同时不会使网络资源负担过重的最大跳数,可以是变化的。

指示接收节点是否可以发起连接请求的Permission标志也可以是变化的。可以通过选择性地将permission标志设置为TRUE或FALSE来改变可以发起握手以开始信息传送的接收方节点的数量。在实施例中,可以允许被查询蚂蚁很快找到(利用较少的跳数)的接收方节点发起到目的地节点的握手。反之,由较旧的蚂蚁找到(利用较大的跳数)的节点可以不发起握手,由于很可能其它节点已经发起了握手。

可以基于增加搜索覆盖范围和减少开销之间的权衡来改变允许蚂蚁在被更新或杀死之前传播系统的时间窗口t1和t2

在实施例中,本发明是用于使用基于群体的智能在网络上进行信息路由的系统,包括:网络上的多个节点,每个节点具有存储在存储器中的路由表,其中,该存储器耦合到所述节点的至少一个处理单元;所述多个节点中的至少一个提供方节点,其配置成向网络上的第二节点提供信息和/或服务中的至少一个;所述多个节点中的至少一个消费方节点,其配置成使用提供方节点的信息和/或服务;所述多个节点中的多个中间节点,其中,网络上的节点之间的通信是直接的节点到节点的通信或经由至少一个中间节点两种方式中的一个,节点之间的通信的实际路由是由驻留在每个节点上的路由表来驱动的。

网络中的每个提供方和消费方节点还可以包括:信息路由表,其具有标识要由网络上的节点提供的服务和信息类型T的信息、对要由网络上的节点提供的服务和信息感兴趣的其它节点的列表、选择特定的提供方节点来提供服务/信息T的概率;以及对应于提供方节点上的路由表的路由表扩展,所述路由表配置成使用标准的网络协议,所述路由表扩展包括在路由表中的节点将位于当前节点和目的地节点之间的通信路径中的流行性测量或概率测量中的至少一个。

网络中的每个提供方节点还可以包括:服务提供代理,其配置成向网络上的接收节点发送信息分组(还称为信息蚂蚁),以宣布要由该提供方节点所提供的信息/服务T的可用性,其中,通过网络上的接收节点接收该信息蚂蚁触发该接收节点执行以下操作中的一个:(1)在信息路由表中添加标识信息/服务T、提供方节点地址、对应于信息/服务T的能力的信息的项;(2)更新信息路由表中的标识信息/服务T、提供方节点地址、对应于信息/服务T的能力的信息的现有项;以及对信息蚂蚁的接收还触发将所接收的信息蚂蚁选择性地转发到网络上的另一接收节点,所述转发至少部分地基于信息蚂蚁的新鲜度以及该接收节点是否是目的地节点,其中,接收节点还配置成:在添加新的项以及更新信息路由表中的现有项之后,更新选择信息路由表中的提供信息/服务T的每个提供方节点的概率。

每个消费方节点还可以包括:第一服务消费代理,其配置成生成查询蚂蚁并将其发送给接收节点,每个查询蚂蚁向网络传播对关于所选择信息/服务T的信息的请求,其中,中间节点被配置成部分地基于路由表流行性或概率测量来将接收到的查询蚂蚁选择性地转发到其它节点;以及第二服务消费代理,其配置成当接收节点具有所请求的信息时,生成对接收到的查询蚂蚁的响应并将其发送。

在某些实施例中,节点可以是提供节点和消费方节点两者。网络中的任何节点可以是用于转发信息、查询或查询响应蚂蚁的中间节点,而不管该节点是否提供或使用信息/服务T。

在某些实施例中,信息路由表可以包括针对信息路由表中的每个信息/服务类型Ti项的节点xi的列表,每个节点xi对应于Ti的提供方,其中,对应于Ti的项还包括能力参数、提供方信誉、最后更新时间戳、选择节点xi的概率以及最后访问时间戳。在某些情况下,可以不使用提供方信誉,而是仅使用将用于确定针对信息/服务或信息转发访问哪个节点的流行性、概率或能力因素。在某些实施例中,可以使用这些要素的任意组合来进行该确定。当为信息和查询蚂蚁设置目的地时,可以使用路由表和信息路由表两者中的信息的组合。

在某些实施例中,选择性地转发接收到的信息蚂蚁是目的地节点地址改变的结果,并且仅在信息蚂蚁的D_type_flag等于P时才被允许。在某些实施例中,改变目的地节点地址可以限于路由期间的每第k跳。

在某些实施例中,提供节点配置成:响应于从离线或关机状态到上线或者在能力参数改变(包括新添加的或删除的信息/服务)时,自动地发起发送信息蚂蚁以宣布由该提供方节点提供的信息/服务的可用性。提供节点可以配置成以预定的时间间隔发送信息蚂蚁。

在某些实施例中,消费方节点可以配置成从提供必需能力的信息路由表中的提供方节点的列表中选择提供方节点。在多于一个的提供方节点提供必需能力的情况下,可以使用概率因素选择其中的一个,以避免过渡利用最流行的节点。如果未在信息路由表中找到提供方节点,则消费方节点可以在整个网络上发送N个查询蚂蚁来搜索所需信息/服务的可行的提供方节点。如果在预定的超时时段内没有接收到响应,则可以发送N个更多的查询蚂蚁。

本领域技术人员将显而易见的是,可以使用上面所描述的特征的各种组合来传播与网络上提供的信息/服务有关的信息,并且存储与对应于期望的信息/服务的提供方节点有关的信息,以及与关于网络上可用信息/服务的期望信息的其它消费方节点有关的信息,以便通过偶尔使用较不流行的节点来最大化信息传播并增加提供节点的带宽。

本文中描述的技术不限于任何特定的硬件或软件配置;它们可以在任何计算、消费电子产品或处理环境中找到适用性。该技术可以在硬件、软件或两者的组合中实现。

出于仿真的目的,程序代码可以使用硬件描述语言或本质上提供期望所设计的硬件如何执行的模型的另一功能描述语言来表示硬件。程序代码可以是汇编或机器语言,或者是可以被编译和/或解释的数据。此外,在本领域中常见的是,将一种形式或另一形式的软件表述为采取动作或产生结果。这种表达仅是叙述由处理系统执行程序代码以使得处理器执行动作或产生结果的一种简略方式。

可以用高级的过程或面向对象的编程语言来实现每一个程序以与处理系统进行通信。然而,如果需要的话,可以用汇编或机器语言实现程序。无论如何,语言可以是编译型的或解释型的。

程序指令可以用来使利用所述指令编程的通用或专用处理系统执行本文描述的操作。可替换地,可以由包括用于执行操作的硬连线逻辑的专用硬件组件或由编程的计算机组件和定制硬件组件的任意组合来执行所述操作。可以将本文描述的方法提供为计算机程序产品,其可以包括存储有指令的机器可读介质,其中所述指令可以用来将处理系统或其他电子设备编程为执行所述方法。

程序代码或指令可以被存储在例如易失性和/或非易失性存储器中,诸如存储设备和/或相关联的机器可读或机器可存取介质,其包括固态存储器、硬盘驱动器、软盘、光存储、磁带、闪存、存储棒、数字视频盘、数字多功能盘(DVD)等,以及诸如机器可存取生物状态保留存储等更特殊的介质。机器可读介质可以包括用于以机器可读的形式存储、发送或接收信息的任何机制,并且该介质可以包括电、光、声或其它形式的传播信号或对程序代码进行编码的载波可以通过的有形介质,诸如天线、光纤、通信接口等。程序代码可以以分组、串行数据、并行数据、传播信号等形式传输,并且可以以压缩或加密格式使用。

可以在在可编程机器上执行的程序中实现程序代码,可编程机器为诸如移动或固定计算机、个人数字助理、机顶盒、蜂窝电话和寻呼机、消费电子产品(包括DVD播放器、个人视频录像机、个人视频播放器、卫星接收机、立体声接收机、有线TV接收机)以及其它电子设备,其每一个均包括处理器、处理器可读的易失性和/或非易失性存储器、至少一个输入设备和/或一个或多个输出设备。程序代码可以应用于使用输入设备录入的数据,以执行所描述的实施例并生成输出信息。可以将输出信息应用于一个或多个输出设备。本领域的普通技术人员应意识到的是,可以利用各种计算机系统配置来实现所公开主题的实施例,各种计算机系统配置包括多处理器或多核处理器系统、小型计算机、大型计算机以及可以嵌入到实际上任何设备中的普适或微型计算机或处理器。还可以在分布式计算环境中实现所公开主题的实施例,在分布式计算环境中可以由通过通信网络链接的远程处理设备来执行任务或其一部分。

虽然可以将操作描述为顺序的过程,但某些操作实际上可以并行地、并发地和/或在分布式环境中执行,并且其中程序代码本地或远程地存储以用于由单处理器或多处理器机器存取。另外,在某些实施例中,可以对操作的顺序进行重新排列,或者包括元素子集的某些变化。程序代码可以由嵌入式控制器使用或与嵌入式控制器结合使用。

虽然已经参考说明性实施例描述了本发明,但是并不旨在以限制的意义来解释本描述。对本发明所属领域中的技术人员显而易见的说明性实施例的各种修改以及本发明的其它实施例被认为在本发明的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号