用于搜索的方法和设备的制作方法

文档序号:6554315阅读:167来源:国知局
专利名称:用于搜索的方法和设备的制作方法
技术领域
本发明一般地涉及计算机网络,更特别地涉及搜索对等数据传输网络。
背景技术
图1是以对等(P2P)方式相互作用的各节点(例如,计算装置)的网络100的示意图。通常,请求节点101将搜索请求消息105(例如,包括与请求节点101希望定位的数据有关的关键字)发送到至少一个通过对等连接与请求节点101通信的中间节点111。中间节点111接收搜索请求消息105,然后,将它转发到至少一个附加节点111。最后,搜索请求消息105到达至少一个具有请求数据的响应节点103(在某些情况下,搜索请求消息105转发到其的第一中间节点111也是响应节点103)。然后,例如,通过中间节点111,至少一个响应节点103将响应消息107发送回请求节点101。随后,通过例如经过直接连接109直接连接到响应节点103,请求节点101向响应节点103请求相关数据。
在传统的P2P系统中,用户手动创建搜索请求消息,例如,搜索请求消息105。例如,为了之后重新发送旧搜索请求消息以获得新响应消息,某些对等系统还保存用户先前创建的旧搜索请求消息。然而,如果他或她不知道存在数据(例如,一位喜爱的音乐家的模糊录音),用户没有办法找到他或她特别感兴趣的数据。这是因为典型的P2P搜索受限于用户在搜索请求消息时输入的关键字。
此外,由于缺乏关于发送搜索请求消息的最佳时间方面的了解,也会妨碍用户获得最佳结果(例如,响应消息)的能力。如果用户没有收到响应最初的搜索请求消息的满意结果,他或她可以选择定期重新发送搜索请求消息,直到获得满意的结果。然而,因为用户通常不知道网络上其他用户的状态(例如,如果其他用户的积压使得不能完成数据请求,或者如果其他用户在产生错误消息),该办法容易出错,而且不一定能产生更好的效果。
因此,在本技术领域内需要一种在P2P网络中创建搜索的方法和设备。

发明内容
在P2P网络中创建搜索的当前方法和设备的一个实施例包括形成包括用户的媒体库中的数据的簇(cluster);以及根据该簇,构造至少一个搜索请求消息。至少部分地利用用户指出重要的数据属性引导形成簇。这样,可以从用户的媒体库“挖掘”有助于对用户感兴趣的、但是不一定知道如何搜索的,或者不一定知道已经存在的数据创建搜索的信息。


可以更详细理解可以获得本发明的上述实施例的方式,通过参考本发明实施例,可以获得上面简要说明的本发明的更具体的描述,其中附图示出本发明实施例。然而,请注意,附图仅示出本发明的典型实施例,因此不能认为它限制了本发明范围,对于本发明,可以存在其他等效实施例。
图1是以对等方式相互作用的节点网络的示意图;图2是根据本发明在对等网络中创建搜索的方法的一个实施例流程图;图3是根据本发明用于自动发出搜索请求消息的方法的一个实施例的流程图;图4是利用通用计算装置实现的搜索创建方法的高级方框图;为了便于理解,如果可能,使用同样的参考编号表示各附图中共同的相同单元。
具体实施例方式
在一个实施例中,本发明是在P2P网络中创建搜索的方法和设备。根据用户已经获得的数据,本发明实施例可以使用户搜索他和她不曾想象的甚或是他或者她可能不知道的数据。这样,用户可以有效搜索可能令他或她特别感兴趣的新数据。
关于本发明的用途,术语“节点”指诸如个人计算装置的计算装置(例如,台式计算机,膝上型计算机,蜂窝电话,个人数字助理,等等),服务器、连接到P2P的路由器等。
图2是示出根据本发明在P2P中创建搜索的方法200的一个实施例的流程图。例如,可以在P2P中的节点上实现方法200。
在步骤202中,方法200被初始化,然后,该方法进到步骤204,在步骤204,方法200识别对用户重要的数据属性。这些属性描述用户希望搜索的数据(例如,特定的音乐家,歌曲作家或者是用户喜欢的制作人)。在一个实施例中,用户提供这些属性(例如,利用用于描述该属性的特征向量)。在进一步的实施例中,可以对这些属性进行加权,使得对每个属性分配相应权重,表示它相对于其他属性对用户的重要性。
当识别了重要性属性,方法200就进到步骤206,然后,根据识别的属性,在本地媒体库中形成数据簇,本地媒体库包括例如音频数据和视频数据(例如,用户的媒体库)。在一个实施例中,利用一个或多个对于形成簇的各个数据相同的识别属性定义(define)利用方法200形成的簇(cluster)。因此,可以将在步骤204属性的识别看作是对簇形成(clustering)步骤206中应用的粗粒度化(coarse-grained)技术进行细调的方法。
在一个实施例中,在步骤206中可以执行包括微簇形成技术的任意已知簇形成技术,以形成数据簇。由于不同的簇形成(clustering)算法多数具有不同的时间和空间复杂性,因此可以根据要求的结果,引导选择特定簇形成技术。例如,根据产生的簇大小和内容,不同的簇形成算法产生不同的结果。某一簇形成算法产生固定数量的簇,或者最大数量的簇。其他簇形成算法可能更适合宽聚类(broadclustering)或深聚类(deep clustering),而某些簇形成算法以非线性时间操作,必须根据它们可以操作多长时间限制这种簇形成算法(例如,通常,算法被允许操作的时间越长,最终产生的潜在搜索标准就越好)。
在步骤208,根据在步骤206中构成的簇,方法200构造至少一个搜索串。例如,对媒体库中的数据形成了簇之后,方法200可以识别到媒体库中包含很多由同一制作人制作的或者是以同一个背景音乐歌手为特征的音乐文件。在这种情况下,方法200可以构造一个新搜索串,以搜索该制作人制作的,或者是以该背景音乐歌手为特征的其他音乐文件。在进一步的实施例中,方法200可以利用两个或者两个以上的单独簇组合消息,以产生一个搜索串。
在一个实施例中,根据步骤208构造搜索串包括从诸如外部数据库(例如,Gracenote的CD数据库,或者其他音乐或数据识别服务)的外部(例如,P2P网络之外的)源接收补充消息。该补充消息涉及媒体库的内容。例如,外部源可以使媒体库中的音乐文件散列,然后,确定相关歌曲名称或歌集唱片是什么。
在步骤210,方法200终止。根据任意一种通过计算网络传播(propagate)搜索的方法,均可以通过网络传播方法200产生的搜索串,作为搜索请求消息。
因此,方法200可以使诸如P2P网络的动态数据传输网的用户搜索用户想不到的数据,或者以用户没尝试过的方式创建搜索消息,或者搜索甚至用户都没意识到其存在的数据。通过检查用户的媒体库以得到其中所包含数据的共性(commonality)(例如,簇和识别的重要属性指出的),方法200还可以确保产生的搜索请求消息目标针对那些用户特别感兴趣的数据。
本技术领域内的技术人员应当理解,在某些实施例中,可以在步骤204和206应用多个簇形成算法和/或者多个重要属性的组合,以确定哪个簇形成算法和/或者哪个属性集产生理想结果。
此外,例如,为了帮助其他用户进行搜索,通过网络,作为文件,用户可以共享在步骤206应用的特定簇形成算法或各簇形成算法。例如,如果第一用户从第二个用户那里下载特定类型的数据(例如,重金属音乐文件),则第一用户还可以发现它下载第二个用户使用的簇形成算法是有用的以搜索其他重金属音乐文件。
图3是示出根据本发明用于自动发出搜索请求消息的方法300的一个实施例的流程图。例如,可以实现方法300,以发出自动产生的搜索消息,例如,根据上述方法200创建的搜索消息。可以在例如连接到动态交换网的节点上实现方法300。
在步骤302,初始化方法300,然后,进到步骤304,在步骤304,方法300监视网络状态和统计数据。在一个实施例中,从直接或间接连接到请求节点(例如,在其上执行方法300的节点)的相邻节点收到的消息中收集这些统计数据。在一个实施例中,根据步骤304监视相关统计数据至少包括如下之一相邻节点中的转换(turnover)率或交换(change)率(例如,网络是否已经达到“稳定状态”)、相邻节点的输入(例如,接收的)消息与输出(例如,发送的)消息的比率、相邻节点在有限时段收到的错误消息或者拒绝的数量、连接到在其上执行方法300的节点的超级(super)节点与非超级节点的比率、请求节点收到的字节与连接到请求节点的相邻节点的数量的比率、搜索请求消息的跳跃计数的期满时或者有效期限内收到的字节数、每个P2P协议版本收到的字节数以及每个节点共享的平均数据量。
在步骤306,根据监视的网络状态和统计数据,方法300确定现在是否是通过网络发送新搜索请求消息的“良好”(例如,收到要求结果的最佳)时间。例如,在一个实施例中,根据网络的稳定性,或者根据请求节点与相邻节点之间的转换率或者交换率,确定现在是否是发送搜索请求消息的好时机。如果网络已经达到稳定状态(例如,没有新节点接入网络,而且几乎没有现有节点脱离网络),该状态意味着现有节点长期存在于网络上,而且很可能能够在不久的将来响应新搜索请求消息,而不离线(例如,脱离网络)。或者,作为一种选择,稳定网络状态还意味着长时间存在于网络上的节点忙于完成先前数据要求(而且可能存在积压),在这种情况下,就不是发送新搜索请求消息的最佳时间。
关于再次发送旧搜索请求消息,如果网络已达到稳定状态,则该状态可表示现在不是再次发送搜索请求的好时机,因为很可能收到基本上相同的搜索结果(由于没有显著改变网络拓扑)。然而,不稳定网络状态可表示是再次发送搜索请求消息的好时机,因为很可能预期存在大量新节点。总的来说,稳定状态意味着存在较少的控制业务量,但是可能存在较多的数据业务量。
在另一个实施例中,根据相邻节点的输入(例如,收到)消息与输出(例如,发送)消息的比率,确定现在是否是发送搜索请求消息的好时机。较多数量的输入消息可表示P2P网络中的较多节点在给定时间正在进行搜索,而较多数量的输出消息可表示较多节点在给定时间正在从P2P网络中的其它节点下载数据。
在另一个实施例中,根据相邻节点在有限时间收到的错误消息或拒绝的数量,确定现在是否是发送搜索请求消息的好时机。错误消息越多,P2P网络中的一个或多个节点越有可能正在不正确操作(因此,就越不可能是发出新搜索请求的好时机)。拒绝的数量越多,局部操作越有可能接近最多节点数量(例如,P2P网络中的每个节点都有它可以处理的最大连接数量)。
在另一个实施例中,根据连接到请求节点的超级节点与非超级节点的比率,确定现在是否是发送搜索请求消息的好时机。也就是说,如果请求节点连接的超级节点比非超级节点多,则方法200发出的新搜索请求更有机会收到更好质量的响应,或者收到更多的响应。关于本发明的目的,超级节点是屏蔽(shield)其他非超级节点(或者,叶节点)以减少网络业务量的节点。因此,当非超级节点通常约具有3个连接到其他节点的开放连接,则超级节点可能具有大约接近40个或更多个连接到非超级节点的开放(open)连接,以及少量连接到其他超级节点的开放连接。
在另一个实施例中,根据请求节点收到的字节数与连接到请求节点的相邻节点的数量的比率,确定现在是否是发送搜索请求消息的好时机。该比率可表示相邻节点和/或者P2P网络通常有多忙。
在另一个实施例中,根据节点发出的搜索请求消息的跳跃计数期满时或者在有效期限内,请求节点收到的字节数,确定现在是否是发送搜索请求消息的好时机。在一个实施例中,根据在该节点发出的搜索请求消息的跳跃计数期满时或者在有效期限内(time to live),该节点收到的字节数的直方图,可以得出在网络中节点平衡程度的指示。例如,示出对于长有效时间值(high time to live value)高字节计数(high byte count)的直方图表明靠近相关节点存在较多活动(activity),或者在相关节点的相邻节点外存在较少活动(例如,好像相邻节点处于网络的边缘,或者在网络中的小范围(pocket)内)。同样,示出对于短有效时间值高字节计数的直方图表明大多数网络业务在一组少量的远离节点之间传播,而且搜索请求消息传播得不够远,不能进入该网络产生要求的结果。
在另一个实施例中,根据存在于网络中的每个P2P协议版本的请求节点收到的字节数,确定现在是否是发送搜索请求消息的好时机。该信息表示使用旧协议的节点有多少在请求节点的视野(view)范围内。例如,如果存在对应于旧协议版本的高字节计数,则运行旧协议版本的节点可能没有请求节点要求的所有功能。因此,对应于较新协议版本的高字节计数可能更理想。
在另一个实施例中,根据网络中每个节点共享文件的平均数量,确定现在是否是发送搜索请求消息的好时机。在一个实施例中,该平均数的标准偏差可表示网络中的各节点有多忙。例如,每个节点共享文件的平坦分布状态可以表示每个节点都同样忙,或者同样有可能将请求数据送到请求节点(例如,因为没有一个节点或一组节点正执行大多数文件传输)。
如果在步骤306,方法300确定现在不是发送搜索请求消息的好时机,则方法300返回步骤304,然后,继续监视网络状态和统计数据(例如,等待下一次最佳发送时间)。
作为一种选择,如果在步骤306,方法300确定现在是发送搜索请求消息的好时机,则方法300进到步骤308,然后,确定是否应该自动发送(例如,利用方法300发送,而无需用户输入)搜索请求消息。如果方法300确定应该自动发送搜索请求消息,则方法300进到步骤314,然后,发送搜索请求消息。在一个实施例中,可以根据方法200,构造搜索请求消息,虽然在其他实施例中,可以根据构造搜索的任意方法构造搜索请求消息。
然而,如果在步骤308,方法300确定不应该自动发送(例如,需要用户输入)搜索请求消息,则方法300进到步骤310,然后,提醒用户现在是发送搜索请求消息的好时机。在一个实施例中,通过提供固定可见显示(例如,滑动条),方法300提醒用户,该可见显示表示在任意给定时间是否是发送搜索请求消息的好时机。
在步骤312,方法300接收发送搜索请求消息的指令(例如,来自用户)。例如,根据步骤310提供的提醒,用户可以提供某种指出他或者她愿意现在发送搜索请求消息的反馈。如上所述,然后,在步骤314,方法300发送搜索请求消息。在步骤316,方法300终止。
因此,方法300可以使用户确定发送搜索请求消息的最佳时间,以将产生的搜索结果的数量和质量提高到最高。通过监视网络并检查关于网络和节点活动的统计数据,方法300可以推断网络中各节点可以以及时方式以要求数据响应搜索请求消息的能力。尽管正如结合方法200实现的那样,描述了方法300,但是本技术领域内的技术人员应当理解,也可以实现方法200和方法300,以提高互相之间的独立性。
图4是利用通用计算装置400实现的搜索创建方法的高级方框图。在一个实施例中,通用计算装置400包括处理器402、存储器404、搜索创建模块405以及诸如显示器、键盘、鼠标、调制解调器等的各种输入/输出(I/O)装置406。在一个实施例中,至少一个I/O装置是存储装置(例如,磁盘驱动器,光盘驱动器,软盘驱动器)。应该理解,搜索创建模块405可以实现为利用通过通信通道耦接到处理器的物理装置或子系统。
作为一种选择,可以利用一个或多个软件应用(或甚至软件和硬件的组合,例如,使用专用集成电路(ASIC))实现搜索创建模块405,其中将软件从存储介质(例如,I/O装置406)装载到通用计算装置400的存储器404中,然后,处理器402执行该软件。因此,在一个实施例中,在此参考上面的附图描述的在P2P网络中创建搜索请求消息的搜索创建模块405可以存储在计算机可读介质或载体(例如,RAM,磁驱动器或光驱,或磁盘等)上。
因此,在数据传输网络领域,本发明具有显著进步。根据用户已经获得的数据,上述方法和设备可以使用户搜索用户不曾想到的或者甚至可能没有意识到的数据。这样,用户可以有效搜索可能令他或她特别感兴趣的新数据。
尽管上面讲述了本发明的优选实施例,但是,在不脱离其基本范围的情况下,还可以设想本发明的其他更进一步实施例,本发明的范围由下面的权利要求确定。
权利要求
1.一种用于在网络中搜索数据的方法,所述方法包括形成一个或者多个包括媒体库中的数据的簇;以及根据所述一个或者多个簇,构造至少一个搜索请求消息。
2.根据权利要求1所述的方法,其中根据一个或者多个数据属性形成所述一个或者多个簇。
3.根据权利要求2所述的方法,其中所述一个或者多个数据属性由所述用户提供。
4.根据权利要求2所述的方法,其中根据相对重要性,对所述一个或者多个数据属性进行加权。
5.根据权利要求2所述的方法,其中所述一个或者多个簇由所述一个或者多个数据属性至少之一定义,对于包含在相关簇内的数据,所述至少一个定义属性是相同的。
6.根据权利要求1所述的方法,其中所述形成包括对所述数据应用簇形成算法。
7.根据权利要求6所述的方法,其中至少部分地利用要求的搜索结果引导选择所述簇形成算法。
8.根据权利要求1所述的方法,其中根据从外部源接收的补充信息,进一步执行所述构造。
9.根据权利要求8所述的方法,其中所述补充信息与所述媒体库中的所述数据有关。
10.根据权利要求1所述的方法,进一步包括步骤通过所述网络传播所述搜索请求消息。
11.一种设备,包括用于形成一个或者多个包括媒体库中的数据的簇的装置;以及用于根据所述一个或者多个簇,构造至少一个搜索请求消息的装置。
12.一种通过网络传播搜索请求消息的方法,该方法包括监视所述网络的状态;以及根据所述网络状态,确定发送所述搜索请求消息的最佳时间。
13.根据权利要求12所述的方法,其中所述监视包括确定所述网络是否已经进入基本稳定状态。
14.根据权利要求12所述的方法,其中所述监视包括确定至少一个相邻节点的输入消息与输出消息的比率。
15.根据权利要求12所述的方法,其中所述监视包括确定在至少一个相邻节点在有限时段收到的错误消息的数量。
16.根据权利要求12所述的方法,其中所述监视包括确定在至少一个相邻节点在有限时段收到的拒绝的数量。
17.根据权利要求12所述的方法,其中所述监视包括确定超级相邻节点与非超级相邻节点的比率。
18.根据权利要求12所述的方法,其中所述监视包括确定收到的字节与相邻节点的数量的比率。
19.根据权利要求12所述的方法,其中所述监视包括确定搜索请求消息的跳跃计数期满时或者有效期限内收到的字节数量。
20.根据权利要求12所述的方法,其中所述监视包括确定所述网络中存在的每个数据传输协议收到的字节数。
21.根据权利要求12所述的方法,其中所述监视包括确定所述网络上每个节点共享文件的平均数。
22.根据权利要求12所述的方法,进一步包括如果确定是发送所述搜索请求消息的最佳时间,则传播所述搜索请求消息。
23.根据权利要求12所述的方法,进一步包括提醒用户现在是发送所述搜索请求消息的最佳时间;以及如果所述用户指示应该发送所述搜索请求消息,则发送所述搜索请求消息。
24.一种含有用于在网络中传播搜索请求消息的可执行程序的计算机可读介质,其中该程序执行上述方法权利要求所述的任意方法。
全文摘要
在P2P网络中创建搜索的当前方法和设备的一个实施例包括形成包括用户的媒体库中的数据的簇;以及根据该簇,构造至少一个搜索请求消息。至少部分地利用用户指出重要的数据属性引导形成簇。这样,可以从用户的媒体库“挖掘”有助于对用户感兴趣的、但是可能不一定知道如何搜索的,或者可能不一定知道存在的数据创建搜索的信息。
文档编号G06F17/30GK1881210SQ20061000428
公开日2006年12月20日 申请日期2006年2月13日 优先权日2005年6月15日
发明者雷蒙德·B·詹宁斯三世, 简森·D·拉瓦伊, 戴维·A·乔治 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1