首页> 中国专利> 普适计算环境中的设备发现

普适计算环境中的设备发现

摘要

一般描述了针对用于普适计算环境中设备发现的方法、指令和客户端应用的技术。在一些示例中,方法、指令和客户端应用可以便于将普适计算环境中的设备的特征组织为分级散列数的序列;对与相应设备相对应的分级散列数进行排序;以及通过在普适计算环境中的设备之一处尝试将散列搜索标准与排序后的分级散列数相匹配,来搜索设备中的特定设备。

著录项

  • 公开/公告号CN103229163A

    专利类型发明专利

  • 公开/公告日2013-07-31

    原文格式PDF

  • 申请/专利权人 英派尔科技开发有限公司;

    申请/专利号CN201080070346.9

  • 发明设计人 曹军威;王震;

    申请日2010-12-17

  • 分类号G06F17/30(20060101);

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人苏志莲

  • 地址 美国特拉华州

  • 入库时间 2024-02-19 19:41:48

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-08-10

    授权

    授权

  • 2013-08-28

    实质审查的生效 IPC(主分类):G06F17/30 申请日:20101217

    实质审查的生效

  • 2013-07-31

    公开

    公开

说明书

技术领域

这里所描述的实施方式和实施例大体涉及普适计算环境中的搜索。

背景技术

普适计算环境(尤其是对等计算环境)采用在网络节点之间划分任务和资源的分散型架构。网络节点(或对等体)既是资源(包括数据和存储)的提供者又是资源的消费者。此外,在这种环境中,典型地直接通过下层因特网协议(备选地,称为“IP”)交换资源。

分布式散列表(备选地,称为“DHT”)是分散型分布式系统的一类,在对等计算环境中为资源提供查找服务。用于数据发现和管理的基于DHT的网络包括Chord计划、PAST存储工具(utility)、P-Grid和CoopNet内容分布系统。

发明内容

客户端应用实现这样的方法和程序:易于将分散型计算环境中的设备的特征组织为分级散列数序列,对与相应设备相对应的分级散列数进行排序;以及通过在分散型计算环境中的设备之一处尝试将散列搜索标准与排序后的分级散列数相匹配,来搜索设备中的特定设备。

以上发明内容仅仅是示意性的,而绝不是限制性的。除了上述示例性的方案、实施例和特征之外,参照附图和以下详细描述,其他方案、实施例和特征将变得显而易见。

附图说明

在以下的详细描述中,由于根据以下详细描述,各种改变和修改对于本领域技术人员来说将显而易见,因而仅作为示例来描述实施例。不同附图中的相同参考数字的使用指示类似或相同的项目。

图1示出了根据这里所描述的实施例的设备发现可以在其中实现的对等(即,普适)计算环境的示例;

图2示出了针对普适计算环境中的设备发现的客户端应用和相应接口的示例实施例;

图3示出了在普适计算环境中的设备发现的各种实施例中使用的图表的示例;

图4示出了针对普适计算环境中的设备发现的各种实施例的采样处理流;以及

图5示出了普适计算环境中的设备发现的各种实施例可以在其中实现的采样计算设备。

具体实施方式

在以下详细说明中,参考了作为详细说明的一部分的附图。在附图中,类似符号通常表示类似部件,除非上下文另行指明。此外,除非另行说明,每个连续附图的描述可以引用一个或多个先前附图的特征,以提供更清楚的上下文对当前示例实施例的更实质性的解释。而且,具体实施方式部分、附图和权利要求书中记载的示例性实施例并不是限制性的。在不脱离在此所呈现主题的精神或范围的情况下,可以利用其他实施例,且可以进行其他改变。应当理解,在此一般性记载以及附图中图示的本公开的各方案可以按照在此明确公开的多种不同配置来设置、替换、组合、分割和设计。

图1示出了根据这里所描述的实施例的设备发现可以在其中实现的普适计算环境100的示例。

备选地,普适计算环境100可以被认为是对等网络100,因为这里所描述的设备发现的实施例是在对等节点或设备充当计算环境中其他节点的客户端和服务器二者的分散型计算环境的上下文内实现的。

可以备选地被称为“多个设备102”或统称为“设备102”的设备102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)通常是分散型对等网络100上的参与节点。设备102中的每一个可以被视为对等网络100上的通信端点或终端设备。设备102中的每一个还可以被视为能够通过对等网络100发送、接收或转发信息的活动电子设备。这种活动电子设备的示例包括但不限于移动(或蜂窝)电话、台式计算机、膝上型计算机、平板计算机、服务器、调制解调器、集线器、网桥或打印机/复印机。根据设备102的上述示例中的至少一些,普适计算环境100可以备选地实现为无线通信网络。

如图1所示,不是所有设备102都彼此直接通信连接。而且,对等网络100的对象总数是动态的;即,不是所有设备102都保持在对等网络100中。而是,设备102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)中的各个设备可以退出对等网络100,或者一个或多个动态设备可以加入对等网络100;对等网络100的移除和加入不需要是彼此对称的、成比例的或同步的。

仍如图1所示,对等网络100上的设备102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)中的每一个驻留在相应客户端应用104(a)-(n)(备选地,可以被称为“多个应用104”或一般统称为“应用104”)处。每一个均包括相应图表(备选地,可以被视为或被称为“分布表”)的应用104是根据这里所描述的实施例实现设备发现的方式。

图2示出了针对普适计算环境100中的设备发现的客户端应用104和相应接口200的示例实施例。

根据这里所描述的普适计算环境中的设备发现的实施例,对等网络100上的设备102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)中的每一个可以具有描述相应设备功能的标题词、以及一个或多个描述词或属性,以进一步描述相应设备的功能或一些其他特征。这些其他特征的非限制性示例可以包括设备商标、模型、功能或甚至地理位置。

此外,设备102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)中的每一个可以具有客户端应用104的驻留实例,交互式接口200和图表250可以驻留在客户端应用104上。接口200可以包括功能数据字段205,相应设备102的用户可以将在对等网络100上寻找的特定设备的功能(例如“打印机”)输入或指定到功能数据字段205内。接口200还可以包括数据字段210(a)、210(b)、210(c)、...、210(n)(备选地,可以被统称为“属性数据字段210”),相应设备102的用户可以将在对等网络100上寻求的设备的其他属性输入或指定到该字段内。应注意,备选地,例如当相应设备102与对等网络100连接时,可以将相应设备102的属性无需用户干预地自动输入到属性数据字段210内。针对设备发现的各种实施例,可以通过功能数据字段205和属性数据字段210(a)-210(n)对设备102、甚至特定设备102的搜索标准进行组织(即,分类)。

因此,如果所寻找的设备是打印机,则可以将被输入到功能数据字段205内的功能属性输入或指定为“打印机”,然后预先配置的属性数据字段210可以接收进一步描述所寻找的打印机的功能和其他特征的属性。关于被输入或指定到数据字段205的“打印机”的这种其他描述的非限制性示例可以包括“Toshiba”、“650C”、“激光”、“彩色”或“第二层”。如上所述,属性数据字段210(a)-210(n)可以被预先配置为接收属性数据,该属性数据可以包括例如设备商标、模型、功能或位置。确定要将相应属性数据输入或指定到哪一个特定属性数据字段210的预先配置可以是动态的,并且可以逐实施例而改变。此外,可以针对特定类型的设备唯一地预先配置属性数据字段210,这可以通过功能数据字段205的条目(entry)进行标识。因此,使用以上提供的属性作为非限制性示例,可以将“Toshiba”输入或以其他方式指定给属性数据字段210(a),可以将“650C”输入或指定给属性数据字段210(b),可以将“激光”输入或以其他方式指定给属性数据字段210(c),可以将“彩色”输入或以其他方式指定给属性数据字段210(d),以及可以将“第二层”输入或以其他方式指定给属性数据字段210(g)。

因此,使用以上示例作为上下文,不需要填充所有属性数据字段210以对应于功能数据字段205的条目,因为例如,当前的一个设备102的用户并不知道所有所寻找的设备的属性。在以上示例中,不存在属性数据字段210(e)、210(f)的条目,或在属性数据字段210(g)之后的条目。在当前的一个设备102的用户不知道特定属性时,可以用“无”、“空”或其某种变体来填充要接收该特定属性的预先配置的一个数据字段210,以指示相应的属性没有值。

一旦接收到功能数据字段205的数据条目和属性数据字段210(a)-210(n)中的至少一个,相应设备102上的客户端应用104可以对数据条目进行散列处理,产生累积的搜索散列数(SHN)。

更具体地,在客户端应用104的一些实施例中,可以利用基本散列函数(例如,SHA-1),将功能数据字段205和属性数据字段210(a)-210(n)中的每一个单独映射到散列数据字段215和散列数据字段220(a)-220(n)(备选地,可以被统称为“散列数据字段220”)中的长度M的相应散列值。因此,可以将功能数据字段205的条目的散列值映射到散列数据字段215;以及可以将属性数据字段210(a)-210(n)的条目的散列值分别映射到散列数据字段220(a)-220(n)。对于具有“无”、“空”或其某种变体的值的那些属性数据字段210(a)-210(n),可以用零值填充散列数据字段220(a)-220(n)中的相应散列数据字段。

注意,可以在设备发现的各种实施例中使用其他基本散列函数,因而引用示例SHA-1绝不意在以任何方式进行限制。

散列数据字段215和220(a)-220(n)可以被串联,因而可以被视为上述累积的搜索散列数(SHN)。SHN是用于与图表250的内容进行比较以产生设备发现的度量或标准。图表250的内容至少包括对等网络100上的至少一部分设备102的累积的设备散列数(DHN)。

图3示出了在普适计算环境100中的设备发现的各种实施例中利用的示例表,即,图表或分布表250。

表250可以至少存储对等网络100上的预定数目的设备102的DHN和IP地址。更具体地,对等网络100填充有多个(N个)设备或节点,并且由于图表250是分布式的,每个设备102可以通过仅与对等网络100上的N-1个其他设备102的一部分进行通信,来解析基本散列函数。因此,在稳定状态下,图表250中的每个实例保持大约仅0(logN)个其他设备的DHN和IP地址。

更具体地,可以按照与针对一个设备102的用户所寻找的设备确定SHN相同的方式来确定对等网络100上的设备102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)中的任何一个的DHN。也就是说,可以在预先配置的数据字段205和210(a)-210(n)中的相应一个数据字段中输入特定一个设备102的功能数据(即,标题词)和可用属性数据,然后可以单独进行散列处理得到与散列数据字段215和220(a)-220(n)相类似的字段中的相应散列值。然后,所产生的散列数据字段215和220(a)-220(n)可以被串联,并以与SHN相同的格式输入到图表250。

因此,图表250可以包括其他列,用于至少描述例如0(logN)的DHN或对等网络100上的其他设备102。更具体地,除了存储SHN之外,表250可以存储至少一个或多个设备102的DHN和IP地址,并且可以用作搜索对等网络100上的设备102(a)、102(b)、102(c)、102(d)、102(e)、...、102(n)中的特定一个设备的平台。

如上所述,对等网络100上的基本所有设备102都可以包括驻留在其上的客户端应用104的实例。客户端应用104的每个实例可以具有接口200的实例和包括在其中的图表250的实例。然而,如上所述,不是图表250的所有实例都具有对等网络100上的每个设备102的DHN。例如,图3的示例中示出的图表250包括设备102(a)、102(b)、102(d)、102(e)以及到102(n)的各个设备的SHN和DHN。显然,缺失设备02(c)的DHN,图表240中也可以缺失直到设备102(n)中的其他设备的DHN。

此外,如上所述,针对具有值“无”、“空”或其某一变体的那些属性数据字段210(a)-210(n),可以利用零值来填充散列数据字段220(a)-220(n)的相应字段。在最后一个具有非零值的散列数据字段220之前的那些具有零值的散列数据字段220(a)-220(n-1)可以被称为例如“空的前属性数据字段”;以及在最后一个具有非零值的散列数据字段220之后的那些具有零值的散列数据字段220(b)-220(n)可以被称为例如“空的后属性数据字段”。

因而,当填充图表250时,空的前属性数据字段可以保持零值,而空的后属性数据字段可以填充有值2M-1,“M”再次指每个散列数据字段220中的散列值的长度。当然,备选实施例可以颠倒对空的前属性数据字段和空的后属性数据字段的值的初始分配。但是本实施例的描述将保持空的前属性数据字段具有零值,空的后属性数据字段具有值2M-1。以下将结合图4的描述,参照针对对等网络100上的特定一个设备102的搜索,描述图表250的配置的这一方面。

图4示出了普适计算环境100中的设备发现的各种实施例的采样处理流400。以下参照关于图1-3的非限制性示例描述的特征来描述采样处理流400。在采样处理流中描述操作的顺序并不意在被理解为限制,可以按照任意顺序和/或并行地组合所描述的任意多个块,以实现每个过程。此外,图4中的块可以是以硬件、软件或其组合实现的操作。在软件的上下文中,块表示计算机可执行指令,当由一个或多个处理器执行时,所述计算机可执行指令使一个或多个处理器执行所述操作。通常,计算机可执行指令包括例程、程序、对象、组件、数据结构等,使得执行特定功能或实现特定抽象数据类型。

此外,如上所述,该具体实施方式、附图和权利要求中描述的示例实施例不意在做出限制。在不偏离这里所呈现的主旨的精神或范围的情况下,可以利用其他实施例,并且可以做出其他改变。因此,考虑到较早公开中,应用104的每个实例可以包括图表250(备选地,可以被视为或称为“分布表250”)的实例,图4的描述将针对“分布表250”。

块402指组织DHN,并且根据设备发现的至少一些实施例,组织SHN。块402包括块404和块406。

块404(组织设备的特征)更具体地指组织对等网络100上的至少设备102的子集的特征,这可以在驻留了客户端应用104的特定实例的相应一个设备102处或在其他设备102处实现。在前一场景中,可以通过客户端应用104在预先配置的数据字段205和210(a)-210(n)中接收预定数目的其他设备102的功能数据和属性数据。在后一场景中,可以通过相应设备102处的客户端应用104的相应实例中的预先配置数据字段205和210(a)-210(n)来组织相应其他设备102的功能数据和属性数据。处理可以从块404继续到块406。

块406(对设备的属性进行散列处理)指对相应设备102的功能数据和属性数据进行散列处理。

在块404处的第一场景之后,块406可以包括:分别对预定数目的其他设备102的功能数据字段205的条目和属性数据字段210(a)-210(n)的条目分别进行散列处理。可以对散列数据字段215和220(a)-220(n)进行串联,以形成相应其他设备102的DHN,其中每个散列数据字段的值具有长度M。

在块404处的第二场景之后,块406可以包括:对预定数目的其他设备102的功能数据和属性数据进行散列处理。可以对散列数据字段215和220(a)-220(n)进行串联,以形成相应设备102的DHN,然后可以发送到与相应设备102通信的客户端应用104的实例。处理可以从块406继续到块408。

块408(对设备的散列数进行排序)指对相应其他设备102的DHN组织和/或排序为分布表250的实例。可以按照分级方式来实现相应其他设备102的DHN的排序,DHN通过分级方式在分布表250中顺序(即,按照升序或降序散列值)存储。备选地,可以根据各种其他标准(例如,根据其他设备102寻找特定设备的频率、根据与客户端应用104的特定实例所驻留的设备102的邻近度等)来实现分布表250处对相应设备102的DHN的排序。处理可以从块408继续到块410。

块410(搜索特定设备)指实现针对对等(即,普适)网络100上的任意特定设备102的搜索。

可以通过将所寻找的设备的功能属性输入到功能数据字段205、然后将进一步描述所寻找的设备的属性输入到预先配置的属性数据字段210(a)-210(n)中的适当属性数据字段,对用于该搜索的基础或标准的SHN进行组织。再一次,可以预先配置属性数据字段210(a)-210(n)以接收属性数据,该属性数据可以包括(作为非限制性示例)设备商标、模型、功能或位置。此外,确定要将相应属性数据输入到哪个特定属性数据字段210的预先配置可以是动态的,并且可以随不同实施例而不同;可以针对特定类型的设备唯一地预先配置属性数据字段210。

此外,当实现块410处的操作时,不必针对功能数据字段205的每个条目填充所有属性数据字段210。在不知道所寻找的设备的特定属性的情况下,可以用“无”、“空”、或其变体来填充要接收该特定属性的预先配置的一个属性数据字段210,以指示相应属性没有值。

一旦接收功能数据字段205和至少一个属性数据字段210(a)-210(n)的数据条目,相应设备102上的客户端应用104可以针对数据条目实现基本散列函数,产生累积SHN。也就是说,可以将功能数据字段205和属性数据字段210(a)-210(n)中的每一个映射到散列字段215和220(a)-220(n)中的相应散列值。利用填充分布表250的DHN,空的前属性数据字段可以保持零值,空的后属性数据字段可以包括值2M-1。

然后,块410处的搜索可以包括将SHN与填充分布表250的DHN相匹配的尝试。如果在SHN和上述DHN之一之间存在精确匹配,则在客户端应用104的特定实例驻留其上的设备102上做出对结果的通知。

如果在SHN和上述DHN之一之间不存在精确匹配,则继续针对最接近地匹配SHN的DHN的搜索。设备发现的备选实施例可以预想非匹配DHN和SHN之间的最接近匹配,作为在不超过SHN的值的情况下最接近地匹配SHN的DHN,或者可以预想最接近的DHN匹配是超过SHN的值的最接近DHN值。

此外,发现填充分布表250的DHN和SHN之间的最接近匹配的尝试可以包括用客户端应用104驻留在其上的特定示例的设备102的相应值来填充空的前属性数据字段。当然,如果备选实施例最初用具有值2M-1的空的前属性数据字段和具有零值的空的后属性数据字段来填充分布表250,则当前动作可以包括用当前设备102的相应值来填充空的后属性数据字段。

如上所述,不是所有设备102都直接彼此通信连接。此外,对等网络100的填充可以是动态的。因此,将针对SHN的匹配的搜索传递给另一设备将该搜索扩展到填充对等网络102的更多设备102。

如果没有找到SHN和填充表250的任一DHN之间的精确匹配,则设备发现的至少一个实施例会导致搜索操作停止。设备发现的其他备选实施例可以通过使被发送或以其他方式传送到另一设备102的SHN与该另一设备102处的客户端应用104的实例上的填充分布表250的DHN进行比较,来导致搜索操作继续。然后可以重复在此处的过程400,利用与该另一设备102通信的那些设备102的DHN填充另一分布表250。客户端应用104可以被配置为:如果在该预定数目的设备102上没有找到与特定SHN的精确匹配,则在预定数目的迭代之后终止搜索。

根据以上描述,可以使用基本散列函数来实现对等(即,普适)计算环境中的设备发现。

本领域技术人员将会理解,对于这里公开的过程和方法以及其他过程和方法,可以按照不同的顺序来实现过程和方法中执行的功能。此外,可以仅作为示例提供上述步骤和操作,在不违背所公开的实施例的本质的情况下,一些步骤和操作可以是可选的、可以组合为较少的步骤和操作、或扩展为另外的步骤和操作。

此外,本公开不限于在本申请中描述的具体实施例,这些具体实施例意在说明不同方案。本领域技术人员清楚,不脱离本公开的精神和范围,可以做出许多修改和变型。本领域技术人员根据之前的描述,除了在此所列举的方法和装置之外,还可以想到本公开范围内功能上等价的其他方法和装置。这种修改和变型应落在所附权利要求的范围内。本公开应当由所附权利要求的术语及其等价描述的整个范围来限定。应当理解,本公开不限于具体方法、试剂、化合物组成或生物系统,这些都是可以改变的。还应理解,这里所使用的术语仅用于描述具体实施例的目的,而不应被认为是限制性的。

图5是示出了普适计算环境中的设备发现可以在其中实现的各种实施例的采样计算设备500。更具体地,图5示出了示意性计算实施例,其中这里所描述的任一操作、过程等可以实现为存储在计算机可读介质上的计算机可读指令。例如,计算机可读指令可以由移动单元、网络元件和/或任意其他计算设备的处理器执行。

在非常基本的配置502中,计算设备500典型包括一个或多个处理器504和系统存储器506。存储器总线508可以用于在处理器504与系统存储器506之间通信。

根据所期望的配置,处理器504可以是任意类型的,包括但不限于微处理器(μP)、微控制器(μC)、数字信号处理器(DSP)或其任意组合。处理器504可以包括一级或多级缓存(例如,一级高速缓存510和二级高速缓存512)、处理器核514、以及寄存器516。示例处理器核514可以包括算术逻辑单元(ALU)、浮点单元(FPU)、数字信号处理核(DSP核)或其任意组合。示例存储器控制器518也可以与处理器504一起使用,或者在一些实施方式中,存储器控制器518可以是处理器504的内部部件。

根据所期望的配置,系统存储器506可以是任意类型的,包括但不限于易失性存储器(如RAM)、非易失性存储器(如ROM、闪存等)或其任意组合。系统存储器506可以包括操作系统520、一个或多个应用程序522和程序数据524。

应用522可以包括客户端应用104,被设置为执行这里所描述的包括先前参照图1-4描述的功能。程序数据524可以包括表250,备选地,表250可以被称为“图表250”或“分布表250”,这对于实现这里所描述的设备发现有用。

计算设备500可以具有额外特征或功能以及额外接口,以有助于基本配置502与任意所需设备和接口之间进行通信。例如,总线/接口控制器530可以有助于基本配置502与一个或多个数据存储设备532之间经由存储接口总线534进行通信。数据存储设备532可以是可拆除存储设备536、不可拆除存储设备538或其组合。可拆除存储设备和不可拆除存储设备的示例包括磁盘设备(如软盘驱动器和硬盘驱动器(HDD))、光盘驱动器(如紧致盘(CD)驱动器或数字通用盘(DVD)驱动器)、固态驱动器(SSD)以及磁带驱动器,这仅仅是极多例子中的一小部分。示例计算机存储介质可以包括以任意信息存储方法和技术实现的易失性和非易失性、可拆除和不可拆除介质,如计算机可读指令、数据结构、程序模块或其他数据。

系统存储器506、可拆除存储设备536和不可拆除存储设备538是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术,CD-ROM、数字多功能盘(DVD)或其他光存储设备,磁盒、磁带、磁盘存储设备或其他磁存储设备,或可以用于存储所需信息并可以由计算设备500访问的任意其他介质。任何这种计算机存储介质可以是设备500的一部分。

计算设备500还可以包括接口总线540,以有助于各种接口设备(例如,输出设备542、外围设备接口544和通信设备546)经由总线/接口控制器530与基本配置502进行通信。示例输出设备542可以包括图形处理单元548和音频处理单元550,其可被配置为经由一个或多个A/V端口552与多种外部设备(如显示器或扬声器)进行通信。示例外围设备接口544可以包括串行接口控制器554或并行接口控制器556,它们可被配置为经由一个或多个I/O端口458与外部设备(如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备等))或其他外围设备(例如,打印机、扫描仪等)进行通信。示例通信设备546包括网络控制器560,其可以被设置为经由一个或多个通信端口564与一个或多个其他计算设备562通过网络通信链路进行通信。

网络通信链路可以是通信介质的一个示例。通信介质典型地可以由调制数据信号(如载波或其他传输机制)中的计算机可读指令、数据结构、程序模块或其他数据来体现,并可以包括任意信息传送介质。“调制数据信号”可以是通过设置或改变一个或多个特性而在该信号中实现信息编码的信号。例如,但并非限制性地,通信介质可以包括有线介质(如有线网络或直接布线连接)、以及无线介质(例如声、射频(RF)、微波、红外(IR)和其他无线介质)。这里所使用的术语计算机可读介质可以包括存储介质和通信介质。

计算设备500可以实现为小体积便携式(或移动)电子设备的一部分,如蜂窝电话、个人数据助理(PDA)、个人媒体播放设备、无线web浏览设备、个人耳机设备、专用设备或包括任意上述功能的混合设备。计算设备500也可以实现为个人计算机,包括膝上型计算机和非膝上型计算机配置。

在系统方案的硬件和软件实现方式之间存在一些小差别;硬件或软件的使用一般(但并非总是,因为在特定情况下硬件和软件之间的选择可能变得很重要)是一种体现成本与效率之间权衡的设计选择。可以各种手段(例如,硬件、软件和/或固件)来实施这里所描述的工艺和/或系统和/或其他技术,并且优选的工艺将随着所述工艺和/或系统和/或其他技术所应用的环境而改变。例如,如果实现方确定速度和准确性是最重要的,则实现方可以选择主要为硬件和/或固件配置的手段;如果灵活性是最重要的,则实现方可以选择主要是软件的实施方式;或者,同样也是备选地,实现方可以选择硬件、软件和/或固件的特定组合。

以上的详细描述通过使用方框图、流程图和/或示例,已经阐述了用于设备发现的设备和/或工艺的众多实施例。在这种方框图、流程图和/或示例包含一个或多个功能和/或操作的情况下,本领域技术人员应理解,这种方框图、流程图或示例中的每一功能和/或操作可以通过各种硬件、软件、固件或实质上它们的任意组合来单独和/或共同实现。在一个实施例中,本公开所述主题的若干部分可以通过专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、或其他集成格式来实现。然而,本领域技术人员应认识到,这里所公开的实施例的一些方面在整体上或部分地可以等同地实现在集成电路中,实现为在一台或多台计算机上运行的一个或多个计算机程序(例如,实现为在一台或多台计算机系统上运行的一个或多个程序),实现为在一个或多个处理器上运行的一个或多个程序(例如,实现为在一个或多个微处理器上运行的一个或多个程序),实现为固件,或者实质上实现为上述方式的任意组合,并且本领域技术人员根据本公开,将具备设计电路和/或写入软件和/或固件代码的能力。此外,本领域技术人员将认识到,本公开所述主题的机制能够作为多种形式的程序产品进行分发,并且无论实际用来执行分发的信号承载介质的具体类型如何,本公开所述主题的示例性实施例均适用。信号承载介质的示例包括但不限于:可记录型介质,如软盘、硬盘驱动器、CD、DVD、数字磁带、计算机存储器等;以及传输型介质,如数字和/或模拟通信介质(例如,光纤光缆、波导、有线通信链路、无线通信链路等)。

本领域技术人员应认识到,上文详细描述了设备和/或工艺,此后使用工程实践来将所描述的设备和/或工艺集成到数据处理系统中是本领域的常用手段。也即,这里所述的设备和/或工艺的至少一部分可以通过合理数量的试验而被集成到数据处理系统中。本领域技术人员将认识到,典型的数据处理系统一般包括以下各项中的一项或多项:系统单元外壳;视频显示设备;存储器,如易失性和非易失性存储器;处理器,如微处理器和数字信号处理器;计算实体,如操作系统、驱动程序、图形用户接口、以及应用程序;一个或多个交互设备,如触摸板或屏幕;和/或控制系统,包括反馈环和控制电动机(例如,用于感测位置和/或速度的反馈;用于移动和/或调整分量和/或数量的控制电动机)。典型的数据处理系统可以利用任意合适的商用部件(如数据计算/通信和/或网络计算/通信系统中常用的部件)予以实现。

本公开所述的主题有时说明不同部件包含在不同的其他部件内或者不同部件与不同的其他部件相连。应当理解,这样描述的架构只是示例,事实上可以实现许多能够实现相同功能的其他架构。在概念上,有效地“关联”用以实现相同功能的部件的任意设置,从而实现所需功能。因此,这里组合实现具体功能的任意两个部件可以被视为彼此“关联”从而实现所需功能,而无论架构或中间部件如何。同样,任意两个如此关联的部件也可以看作是彼此“可操作地连接”或“可操作地耦合”以实现所需功能,且能够如此关联的任意两个部件也可以被视为彼此“能可操作地耦合”以实现所需功能。能可操作地耦合的具体示例包括但不限于物理上可连接和/或物理上交互的部件,和/或无线交互和/或可无线交互的部件,和/或逻辑交互和/或可逻辑交互的部件。

最后,至于本文中任何关于多数和/或单数术语的使用,本领域技术人员可以从多数形式转换为单数形式,和/或从单数形式转换为多数形式,以适合具体环境和应用。为清楚起见,在此明确声明单数形式/多数形式可互换。

本领域技术人员应当理解,一般而言,所使用的术语,特别是所附权利要求中(例如,在所附权利要求的主体部分中)使用的术语,一般地应理解为“开放”术语(例如,术语“包括”应解释为“包括但不限于”,术语“具有”应解释为“至少具有”等)。本领域技术人员还应理解,如果意在所引入的权利要求中标明具体数目,则这种意图将在该权利要求中明确指出,而在没有这种明确标明的情况下,则不存在这种意图。例如,为帮助理解,所附权利要求可能使用了引导短语“至少一个”和“一个或多个”来引入权利要求中的特征。然而,这种短语的使用不应被解释为暗示着由不定冠词“一”或“一个”引入的权利要求特征将包含该特征的任意特定权利要求限制为仅包含一个该特征的发明,即便是该权利要求既包括引导短语“一个或多个”或“至少一个”又包括不定冠词如“一”或“一个”(例如,“一”和/或“一个”应当典型地被解释为意指“至少一个”或“一个或多个”);在使用定冠词来引入权利要求中的特征时,同样如此。另外,即使明确指出了所引入权利要求特征的具体数目,本领域技术人员应认识到,这种列举应典型地解释为意指至少是所列数目(例如,不存在其他修饰语的短语“两个特征”典型地意指至少两个该特征,或者两个或更多该特征)。另外,在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。

另外,在以马库什组描述本公开的特征或方案的情况下,本领域技术人员应认识到,本公开由此也是以该马库什组中的任意单独成员或成员子组来描述的。

通过以上将会理解,这里描述了本公开的各个实施例是出于示意性的目的,可以在不偏离本公开的范围和精神的情况下做出各种修改。因而,这里所公开的各个实施例不意在做出限制,本公开的真实范围和精神由所附权利要求表征。

引用列表

1.Stoica,et al.,Chord:A Scalable-Peer-to-peer Lookup Servicefor Internet Applications,SIGCOMM’01.August27-31,2001,San Diego,CA,USA.

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号