专利名称:使无线连接设备的中断服务和功耗最小化的方法
技术领域:
本发明涉及无线通信设备。更具体而言,本发明涉及基于设备地址和服务端点过滤而使无线连接设备的中断服务和功耗最小化的方法。
背景技术:
为移动应用而设计的无线通信设备一般被实现为短程短时连接。为了建立连接,无线设备利用包括发现(discovery)、服务查询、连接请求、连接响应和连接在内的协议。另外,某些协议包括安全阶段,其中用认证算法来验证请求设备的合法性。
发现是确定当前哪些设备在范围内的处理。典型地,发现的发起者与响应者交换设备地址和其它信息。
便携式设备可能遇到若干个漫游到范围之内或之外的设备。搜索服务的设备通常称为客户端。提供服务的设备称为服务器。持续寻找新的域的客户端将会周期性地发现哪些设备在范围内。服务器设备的例子包括互联网网关、售货机、打印机,以及其它公共服务机器。
当找到新设备时,便携式漫游设备将会执行服务查询,以查明在新设备上有哪些可用的服务。服务查询涉及在公知的服务接入点建立对新设备的连接,并且以适合于协议的格式来交换数据库查询和响应。对发现的响应、对服务数据库的连接的协商和信息的交换都需要带宽。
而且,响应设备在执行协议、搜索其数据库和将响应格式化时使用带宽。现有技术的一个缺点在于,随着个人信息设备的激增,并且包含越来越多临时(ad-hoc)的无线协议,数百个设备进入范围之内并且每个设备都必须对其它所有设备进行查询并收集服务信息的可能性很大。结果,将会需要极大数量的带宽,以对每个请求执行协议、搜索数据库以及将响应格式化。
另外,在发送响应时消耗功率。无线通信设备通常通过无线电或光链路来进行通信。无线电链路一般使用基带协议引擎和无线电收发器。无线电链路的一个例子是蓝牙(Bluetooth)。
相反,光链路通常是通过红外光来实现的。红外线数据协会(IrDA)定义了用于以最高可达当前最大数据率4Mbps的任意数据率来链接两个设备的标准。传输射频能量或红外线能量所需的功率是相当大的。因此,对数百个服务请求进行响应也将大大降低设备的电池寿命。
在附图中,示例性而非限制性地示出了本发明,其中相同的标号指示相似的元件,其中图1示出了发现过滤算法的一个实施例的流程图;图2示出了服务发现过滤算法的一个实施例的流程图;图3示出了连接过滤算法的一个实施例的流程图;图4示出了一种无线通信系统。
具体实现方式描述了一种将所选择的地址存储为“友好设备”的授权列表的方法。向所述授权列表的设备给予了各种级别的许可,用于发现、查看服务数据库,以及通过使用过滤算法而连接到服务端点。授权列表有助于使带宽的使用最小化和降低功耗。
图1示出了发现过滤算法的实施例。该算法被设计为在硬件、基带控制器或通信处理器引擎的级别过滤掉来自不支持的客户端或服务器设备的查询。当一个设备进行对另一设备的发现查询时,在操作100中发起所述算法。典型地,请求设备是客户端设备,而响应设备是服务器设备。但是,所述请求设备不一定是客户端设备,响应设备不一定是服务器设备。例如,打印机可以主动寻求发现可能的漫游设备以进行服务。即使打印机是发起设备,打印机也是服务器设备而不是客户端设备。不管发起设备是服务器设备还是客户端设备,所述发现算法都不变。所述发现算法在客户端和服务器设备中都可用。
对于图1的发现过滤算法的一个实施例,发起设备是客户端设备,而响应设备是服务器设备。在操作110中接收到来自客户端设备的发现请求之后,操作120的算法判断该设备是否被设置为过滤模式。过滤状态位是由存储在非挥发性闪烁存储器中的用户应用程序来设置的。如果该过滤状态位不为“开”(on),则操作190的算法将正常的发现响应发送给请求设备。但是,如果过滤状态位是肯定的(asserted),则操作130判断所述客户端设备地址是否在过滤列表中。在本发明的这个实施例中,认可设备或友好设备的设备地址被存储在非挥发性闪烁存储器的高速缓存(cache)中。
如果在操作130中在过滤列表中找到了客户端设备的地址,则所述算法在操作140中判断是否为该设备设置了许可位。除非客户端设备在过滤列表上,否则服务器设备不会认可发现请求。如果设备在列表上,则许可位被存储在非挥发性闪烁存储器阵列中。
在操作140中,如果未对所述客户端设备设置发现许可位,则拒绝给所述客户端设备以查询许可,并且操作160终止所述算法。否则,如果对所述客户端设备设置了发现许可位,则服务器设备在操作190中将正常发现响应发送给所述客户端设备。
如果在操作130中,服务器设备在过滤列表中未找到所述客户端地址的地址,则在操作150中,所述算法判断提示状态位是不是肯定的。所述提示状态位给用户以“是否将发现尝试通知给用户”的选择。如果提示状态位不是肯定的,则拒绝给客户端设备以查询许可,并且在操作160中终止所述算法。
如果要将提示状态位设置为肯定,则在操作170中让用户选择是否允许所述发现操作。像发现过滤列表一样,提示状态位是由非挥发性闪烁存储器中的用户应用程序来设置的。如果用户不允许所述发现操作,则拒绝给所述客户端设备以查询许可,并且在操作160中终止所述算法。否则,用户允许所述发现操作,并且在操作190中,服务器设备发送对所述发现请求的正常响应。
对于发现算法的第二实施例,在操作180中不给用户以“是否允许查询尝试”的选择。在某些协议中,发现过程的持续时间太短,以致用户无法在发现过程结束前合理地对提示进行响应。因此,拒绝客户端设备的发现请求,并且所述流程与从用户接收到了“否”响应的情况相同。
对于发现算法的第三实施例,向非挥发性闪烁存储器中的过滤列表添加客户端设备地址。该添加可以是自动进行的,或者是在用户的认可之后进行的。然后,如果客户端设备请求进行服务发现,客户端设备就可以利用设备地址。
所述发现算法可以用硬件或软件来实现。如果选择硬件设计,则将过滤机制实现在基带协议引擎中。但是,如果选择软件设计,则将过滤机制实现在上层主机栈(host stack)中。也可以同时使用硬件和软件来实现所述算法。
如果客户端设备成功发现了服务器设备的地址,则客户端设备接下来将尝试判断在该服务器设备上何种服务可用。图2示出了服务发现过滤算法的实施例。在图2的一个例子中,客户端设备是发起设备,而服务器设备是响应设备。漫游客户端设备一般搜索诸如互联网网关和打印机之类的公众服务。
当在操作200中发起服务发现过滤算法时,如果用软件来实现该服务发现算法,则在支持两个主机间服务端点的协议的第一层开启连接。而如果选择的是硬件设计,则基带处理器中的状态机将执行所述服务发现算法。在操作210中,服务器设备接收并解码客户端设备对服务发现地址端点的请求。通常为服务发现流量预留特定的端点地址。
在服务发现过滤算法的软件设计中,栈的所有实现一般都涉及栈从复用层开始向下的相同层。因为在物理层与支持多端点的复用层之间没有通往栈顶级服务的其它路径,所以栈硬件或固件引擎可以安全地假定所有数据流量都会至少具有上至复用层的各层所需的报头。因此,诸如基带处理器之类的过滤引擎就可以通过查看所请求的端点地址,预抽取连接到服务数据库服务器的请求。如果设备的实现没有设备硬件上的基带处理,则可以将过滤算法内置于复用层处的主机协议栈中。
多数协议的连接请求包括请求连接的设备的设备地址。从而,在操作230中,假如在操作220中过滤状态位为开,则可以由请求客户端设备来过滤服务发现请求。如果过滤状态位不为开,则在操作290中,将服务数据库端点连接请求传递给上层主机协议栈用于正常处理。过滤状态位存储在非挥发性闪烁存储器中。
如果过滤状态位为开,则服务发现过滤算法检查发起客户端设备是否在过滤列表中。如果该设备不在认可的客户端列表上,则在操作250中,所述算法检查提示状态位是否为开。提示状态位一般存储在非挥发性闪烁存储器中。如果提示状态位是否定的,则操作260允许拒绝连接,或者服务器设备可以选择根本不响应。否则,如果提示状态位是肯定的,则在操作270中提示用户决定是否允许所述请求操作。如果不允许请求,则在操作260中,服务器可以拒绝响应请求,或者发送对连接请求的拒绝消息。但是,如果允许请求,则在操作290中,将服务数据库端点连接请求传递给上层主机协议栈用于正常处理。
如果在操作230中,在过滤列表中找到了请求设备,则操作240的算法判断是否在设备中设置了服务发现许可位。该许可位与允许设备或友好设备地址一起存储在非挥发性存储器中。如果在服务器设备中设置了该发现许可位,则在操作290中,将服务数据库端点连接请求传递给上层主机协议栈用于正常处理。但是,如果在服务器设备中未设置该发现许可位,则在操作260中拒绝连接。服务器设备可以选择向客户端设备发送拒绝消息,或者服务器设备可以选择不响应。不响应将会节省服务器设备的功率。不响应将会使客户端设备保持挂起(hanging),直到所述请求超时。
对于服务发现过滤算法的第二实施例,当在操作270中提示设备所有者认可之后,向认可列表添加客户端设备地址,并附加一个过期时间。在服务发现之后,可能会请求特定设备的服务端点。
如果已许可漫游客户端设备发现并连接到服务器设备的数据库,则漫游客户端设备可能想要连接到在服务查询期间从数据库中发现的服务端点。但是,设备上的某些可用服务可能是对公众开放的,而某些其它服务可能是私有的。将对公众开放的服务的集合定义为公众服务列表。图3所示的连接过滤算法判断是允许还是不允许连接。像发现过滤算法和服务发现过滤算法一样,用于连接过滤算法的过滤算法可以存在于基带协议引擎或者上层主机栈中,所述基带协议引擎可能是协议设备的一部分。经常使用基带协议引擎,因为它通过去掉对主机处理器的非必要中断而节省了主机处理器的带宽。不管过滤算法是存储在基带协议引擎中还是上层主机栈中,如果过滤算法选择在过滤掉请求之后不响应该请求,就节省了功率。
一旦在操作300中发起连接过滤算法,就在操作310中接收并解码对设备端点的连接请求。接下来,在操作320中,所述算法判断过滤状态位是否为开。过滤状态位存储在非挥发性闪烁存储器中。如果过滤状态位不为开,则绕过过滤,并在操作390中,将服务数据库端点连接请求传递给上层主机协议栈用于正常处理。
但是,如果过滤状态位为开,则连接过滤算法判断发起设备地址是否在过滤列表中,以及请求端点是否在公众服务列表上。如果发起设备地址在过滤列表中并且请求端点在公众服务列表上,则在操作340中,连接过滤算法判断是否对该设备设置了连接位。如果为该设备设置了连接位,则在操作390中,将服务数据库端点连接请求传递给上层主机协议栈用于正常处理。否则,如果未设置该设备的连接位,则在操作360中拒绝连接或不响应。不响应将会节省服务器设备的功率。当未接收到所请求的连接时,发起设备将会超时。
如果发起设备不在过滤列表中,或者请求端点不在公众服务列表上,则在操作350中,连接过滤算法检查提示状态位是否为开。提示状态位一般存储在非挥发性闪烁存储器中。如果提示状态位不为开,则在操作360中拒绝连接或服务器不响应。如果提示状态位为开,则在操作370中提示用户决定是否允许操作。如果用户在操作380中允许操作,则在操作390中,将服务数据库端点连接请求传递给上层主机协议栈用于正常处理。但是,如果用户在操作380中不允许操作,则在操作360中拒绝连接或服务器不响应。
某些服务器和客户端设备可能不向漫游设备提供通常都会感兴趣的服务。但是,在诸如交换名片信息之类的特定情况下,希望所有设备使服务对任意设备可用。随着个人信息设备的激增,并且包含越来越多的无线协议,大量设备进入彼此范围之内的可能性很大。当设备进入彼此范围之内时,这些设备可能彼此查询以收集服务信息。这大约将是n的平方的数量级,其中n是设备的数量。这些查询将会占用带宽并消耗功率。因此,限制随机的客户端发现、查看服务数据库和连接到服务端点的能力就变得更为可贵。为了过滤请求,还是耗费了一些处理功率。尽管如此,检查设备的授权列表并防止不必要的响应将会比每次都执行协议并形成响应所需的功率更少。
本发明的实施例可以用硬件或软件,或者两者的结合来实现。但是,优选地,本发明的实施例可以用在可编程计算机系统上执行的计算机程序来实现,所述可编程计算机系统中的每一个都包括至少一个处理器、数据存储系统(包括挥发性和非挥发性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。可以将程序代码应用于所输入的数据,以执行在此所描述的功能并生成输出信息。可以用已知的方式,将所述输出信息应用于一个或多个输出设备。
可以用高级面向过程或面向对象的编程语言来实现每个程序,以与所述计算机系统进行通信。但是,如果需要的话,也可以用汇编或机器语言来实现所述程序。在任何情况下,所述语言都可以是编译的或解释的语言。
每个这种计算机程序都可以被存储在通用或专用计算机系统可读的存储介质或设备(例如,硬盘驱动器、软盘驱动器、只读存储器(ROM)、CD-ROM设备、闪烁存储器设备、数字多功能光盘(DVD)或其它存储设备)上,用于当所述存储介质或设备被所述计算机系统读取时,对所述计算机系统进行配置和操作,以执行在此所描述的过程。也可以将本发明的实施例认为是实现为被配置为与计算机系统一起使用的机器可读存储介质,其中这样配置的存储介质使得所述计算机系统以特定和预定的方式操作,以执行在此所描述的功能。
这种类型的计算机系统的一个例子在图4中示出。无线通信计算机系统400的组件包括处理器410、主存储器420、只读存储器430、电压源440、外围设备450、输入设备460、闪烁存储器470、输出设备480和总线490。处理器410被耦合到主存储器420和系统总线490。另外,系统总线还被耦合到只读存储器430、电压源440、外围设备450、输入设备460、闪烁存储器470和输出设备480。无线通信设备常常利用电池来提供电压源440。外围设备450的例子可以是基带控制器。输入设备460和输出设备480使用户能够进行操作请求并对系统查询进行响应。最后,闪烁存储器470存储诸如设备地址471、过滤算法472、许可位473和状态位474之类的信息。
在前面的说明书中,已经参照其具体的示例性实施例对本发明进行了描述。但是显然,可以对其进行各种修改和变化而不脱离所附权利要求中所阐明的本发明更广的精神和范围。因此,应将本说明书和附图看作是说明性的而非限制性的。
权利要求
1.一种对设备请求进行过滤的方法,包括运行发现过滤算法;运行服务发现过滤算法;以及运行连接过滤算法。
2.如权利要求1所述的方法,其中所述发现过滤算法在第一设备中实现,并从第二设备接收发现请求。
3.如权利要求1所述的方法,其中如果设置了过滤模式,则所述发现过滤算法在对发现查询进行响应之前,判断所述设备请求是否来自被认可的设备。
4.如权利要求3所述的方法,其中用被认可的列表来判断发现请求设备是不是被认可的设备。
5.如权利要求3所述的方法,其中所述过滤模式由存储在存储器中的状态位来定义。
6.如权利要求5所述的方法,其中所述存储器是非挥发性存储器。
7.如权利要求6所述的方法,其中所述非挥发性存储器是闪烁电可编程可擦除只读存储器阵列。
8.如权利要求3所述的方法,其中如果所述请求设备不在被认可的许可列表上,则对用户进行提示,让其决定是否允许进行所请求的操作。
9.如权利要求1所述的方法,其中所述服务发现过滤算法过滤对服务发现数据库的连接请求。
10.如权利要求9所述的方法,其中所述服务包括访问互联网网关;以及访问打印机。
11.如权利要求9所述的方法,其中如果所述设备不在被认可的许可列表上,则所述服务发现过滤算法拒绝对所述服务发现数据库的连接。
12.如权利要求1所述的方法,其中如果所述连接请求被许可,则所述连接过滤算法将所述客户端设备的请求传递给上层主机栈用于正常处理。
13.一种系统,包括总线;中央处理单元,其中该中央处理单元被耦合到所述总线;非挥发性存储器阵列,其中该非挥发性存储器阵列存储用于过滤的多个设备地址,其中所述非挥发性存储器阵列被耦合到所述总线;基带处理器,其中该基带处理器包括多个过滤算法,其中所述基带处理器执行所述多个过滤算法,其中所述基带处理器被耦合到所述总线;和用户接口,其中该用户接口被耦合到所述总线。
14.如权利要求13所述的系统,其中所述非挥发性存储器阵列包含实现所述多个过滤算法的软件代码。
15.如权利要求13所述的系统,其中所述非挥发性存储器阵列被用于存储多个许可位。
16.如权利要求13所述的系统,其中所述多个许可位包括发现许可位;服务查询许可位;以及连接许可位。
17.如权利要求13所述的系统,其中所述非挥发性存储器阵列是闪烁电可编程可擦除只读存储器阵列。
18.如权利要求13所述的系统,其中所述多个过滤算法包括发现过滤算法;服务数据库查询过滤算法;以及连接过滤算法。
19.一种制品,包括具有多条机器可读指令的机器可读介质,其中当处理器执行所述指令时,所述指令导致系统运行发现过滤算法;并且运行服务发现过滤算法。
20.如权利要求19所述的制品,包括具有多条机器可读指令的机器可读介质,其中当处理器执行所述指令时,所述指令还导致系统运行连接过滤算法。
21.一种装置,包括从设备接收发现请求的装置;使用过滤列表对来自所述设备的多个查询进行过滤的装置;接收多个服务查询的装置;将多个服务查询解码的装置;以及对多个服务查询进行过滤的装置。
22.如权利要求21所述的装置,还包括用于过滤多个对所发现的服务端点的连接请求的装置。
23.一种对多个服务发现请求进行过滤的方法,包括从发起设备接收对服务目录地址端点的请求;将来自所述发起设备的对服务目录地址端点的请求解码;在过滤列表中搜索所请求的设备地址,以判断过滤状态位是否为开;以及如果设置了服务发现许可位,则将服务数据库端点连接请求传递给上层主机协议栈用于正常处理。
24.如权利要求23所述的方法,还包括如果所述发起设备地址不在所述过滤列表中,则判断提示状态位是否为开。
25.如权利要求24所述的方法,还包括如果所述提示状态位为开,则对用户进行提示,让其许可从而允许服务发现。
全文摘要
本发明描述了一种在便携式设备中过滤请求的方法。用非挥发性闪烁存储器来存储可允许的客户端地址。发现算法、服务发现算法和连接过滤算法降低了便携式移动设备所需的功率和处理带宽。
文档编号H04L12/28GK1559122SQ02818843
公开日2004年12月29日 申请日期2002年8月30日 优先权日2001年9月28日
发明者戴维·莱曼, 戴维 莱曼 申请人:英特尔公司