专利名称:加速本地高速缓存中资源记录到期的方法和装置的制作方法
技术领域:
本发明涉及计算机网络。更具体地,本发明是涉及加速本地高速缓存中的资源记录到期的方法和装置。
背景技术:
宽带技术和网络设施的爆炸性增长,以及价格的持续下降,使得家庭和小型企业中计算机网络的数量不断增加。与这种小型办公室/家庭办公室网络革命随之而来的是配置和管理这些网络的艰巨任务。即插即用网络协议,例如苹果计算机公司(Apple Computer,Inc.)的集结(Rendezvous)技术已经被开发出来,以简化管理任务。在集结技术中,诸如打印机、扫描仪和网络附加存储器之类的设备会自动配置自身,并且在连接到网络时就通告它们的服务。网络上的计算机系统在接收到通告时就将这些设备的资源记录增加到它们的本地高速缓存,从而保持一个网络上可用服务的列表。
问题也随保持本地高速缓存的好处而来。网络上的计算机系统必须不断地更新它们的高速缓存记录,以保持可用服务的当前列表。传统上,计算机系统是通过查询服务并且等待响应来完成这个工作的。如果在指定的时间内或者在指定的尝试次数之后没有收到响应,那么就从高速缓存删除该服务或关联设备的记录。以这种方式频繁轮询服务(和相关的设备)提供了更准确的服务列表,但是会显著地增加网络流量。
对资源记录进行高速缓存的一个问题源于过期数据。从网络中移除设备时,该设备可能并不会报告它的服务不再可用。电源故障、不适当的关机、以及网络电缆断开等仅仅是能够引起无效高速缓存记录的各种普通事故中的几个例子而已。通常,用户尝试使用一个服务不成功是因为该服务相应的本地高速缓存记录是无效的,这导致该服务不正确地显示为本地可用的。这会导致用户受挫,因为该服务在本地列表中仍然显示为可用的。而且,即使某些高速缓存记录在某些计算机系统上被无效,但是同样无效的高速缓存记录仍然会出现在网络上的其他计算机系统上。
因此,需要一种在高速缓存中保持资源记录的方法和装置,其不存在上述限制。
发明内容
本发明的一个实施例提供了一种便于验证高速缓存中资源记录的系统。所述系统始于在客户机检索资源记录,以及尝试使用这个信息来建立和对应设备的通信。如果尝试建立通信不成功,那么这意味着资源记录中的数据可能是不正确的,所以在网络上发出对那个资源记录的查询。如果收到包含不同资源记录数据的响应,那么就用新的数据更新高速缓存,并且使用新的信息重复建立通信的尝试。如果在适当地发送查询一次、两次、三次或者更多次之后,没有收到响应,那么这表示资源记录不再有效,并且它被从高速缓存删除。以这种方式,更迅速删除了过期数据,如果仅仅是基于原始附加到这个数据的使用期限做决定的话。
当从高速缓存删除记录时,这个技术可被循环应用,以质疑引用现在删除的记录的任何记录。从域名系统取一个例子,如果现在删除的记录是地址记录,那么在它们的右手侧包含这个地址记录的名字的任何其他记录(例如SRV,PTR,CNAME等等)是类似可疑的,并且应该适当被类似更新或删除。在苹果计算机公司的集结技术实例中,来自设备的响应是组播响应,因此允许其他客户机更新它们本地高速缓存中的相应资源记录,而无需查询设备,因此节省网络带宽。
在这个实施例的一个变化中,在使资源记录无效之前,所述系统发出对该资源记录的第二查询,并且等待来自设备对该第二查询的响应。如果在预定的时间中没有收到对该第二查询的响应,所述系统就使得资源记录无效。
在这个实施例的一个变化中,所述系统从第二客户机收到对第二资源记录的查询消息。在收到该查询时,所述系统定位第二资源记录,并且等待对组播消息的组播响应。如果在预定的时间中没有收到对组播消息的组播响应,所述系统就使得第二资源记录无效。
在这个实施例的一个变化中,无效资源记录也包括无效资源记录的子记录。
在这个实施例的一个变化中,如果在预定的时间中没有收到对查询的响应,所述系统就在客户机检索资源记录的父记录,并且组播对父记录的查询。所述系统然后等待来自设备的对查询的响应,并且如果在预定的时间中没有收到对查询的响应,所述系统就使得父记录无效。
在这个实施例的一个变化中,如果在预定的时间中没有收到对查询的响应,所述系统就在客户机检索资源记录的父记录,并且组播对父记录的查询。所述系统然后从设备接收对该查询的响应,并且用响应中包括的信息更新资源记录。
在又一个变化中,所述系统用响应中接收的信息更新父记录。
在这个实施例的一个变化中,所述系统在预先指定的时间间隔被调用,以验证高速缓存中的资源记录(或说成,使高速缓存中的资源记录有效)。
图1示出了根据本发明一个实施例的计算机网络;图2示出了根据本发明的一个实施例被高速缓存的资源记录;图3示出了一个流程图,其说明了根据本发明的一个实施例来更新高速缓存中资源记录的过程;图4示出了一个流程图,其说明了根据本发明的一个实施例来响应查询以更新高速缓存中资源记录的过程。
具体实施例方式
给出的以下描述将使本领域技术人员能够实现和使用本发明,并且是在一个特定应用中及其要求的背景下来提供这些描述的。对于本领域技术人员来说,所公开实施例的各种修改是十分明显的,而且在不脱离本发明精神和范围的情况下,本文所确定的一般性原理可应用在其他的实施例和具体应用中。因此,并无意将本发明限于所示的实施例,而是应该符合与本文所公开的原理和特征相一致的最广泛的范围。
在这个详细描述中所介绍的数据结构和代码通常存储在计算机可读介质上,其可以是能够存储计算机所用代码和/或数据的任何设备或介质。这包括但不限于磁存储和光存储设备,例如磁盘驱动器、磁带、CD(压缩光盘)和DVD(数字通用光盘或数字视频光盘),以及体现在传输介质中(利用或未利用载波,信号被调制在其上)的计算机指令信号。例如传输介质可包括通信网络,例如因特网。
计算机网络图1示出了根据本发明一个实施例的计算机网络100。网络100一般包括能够将计算节点连接到一起的任何类型的有线或无线通信信道。这包括但不限于局域网、广域网或者组合型网络。在本发明的一个实施例中,网络100包括因特网。
网络100包括计算机系统102和104,打印机106和108,以及扫描仪110。计算机系统102和104一般包括任何类型的计算机系统,这包括但不限于基于微处理器的计算机系统、大型计算机、数字信号处理器、便携式计算设备、个人记事本(personal organizer)、设备控制器以及在某种设备中的计算引擎。
在本发明的一个实施例中,网络100上的设备遵循即插即用协议,例如苹果计算机公司的集结技术。打印机106和108,以及扫描仪自配置到网络100,并且通过组播或广播(multicast)消息向网络100上的所有节点来通告它们的服务。计算机系统102和104均采用包含网络100上已知设备和服务的资源记录的本地高速缓存。
被高速缓存的资源记录图2描述了根据本发明一个实施例的被高速缓存的资源记录。网络100上的每个设备(例如打印机106)可以在网络100上的计算机系统的高速缓存中具有几个资源记录,这些资源记录包含有与该设备有关的信息,例如服务指针记录202。服务指针记录202包括服务类型和服务实例的名字。在图2所示的例子中,服务指针记录202标识了一个名为“斯图亚特的打印机”的打印服务。
每个服务指针记录202通过名字引用相应的服务记录204,其含有关于在服务记录204中指定设备上服务的信息。注意一个设备可提供多种服务,因此可以具有多个服务记录。服务记录204包含提供服务的设备名字。在图2所示的例子中,服务记录204包含相应的地址记录206的名字,地址记录206包含了该服务的网际协议(IP)地址。
验证本地高速缓存中的资源记录图3给出了一个流程图,其说明了根据本发明一个实施例更新或使本地高速缓存中的资源记录无效的过程。当从用户接收一个使用网络100上某个服务的请求时(步骤302),所述系统开始。一旦收到该请求,所述系统就会查找该设备的服务记录(步骤304)。
然后所述系统确定用于连接到资源所提供的服务的主机地址(步骤306)。这是通过查找服务记录204引用的地址记录206来完成的。一旦知道了主机地址和端口号,所述系统就尝试与以该主机和端口号与服务通信(步骤308)。如果通信成功,所述系统就按照用户请求来使用该资源(步骤312)。
如果通信不成功,所述系统就将地址记录206标记为可疑的(步骤316)。然后所述系统通过向整个网络发送一个或多个组播消息(步骤318)并且等待响应(步骤320)来查询该地址记录。如果服务响应了,那么所述系统就用包括在该响应中的信息来更新地址记录206,并且根据用户指示来使用该服务(步骤322)。如果在指定时间和指定查询次数之后仍然没有收到响应,那么就从高速缓存中删除该地址记录,并且所述系统将服务记录206标记为可疑的(步骤324)。
在这一点上,重复该过程,并且所述系统通过向整个网络发送组播消息并且等待响应来发送对服务记录204的查询。如果没有收到响应,那么服务记录204就被从高速缓存删除,并且所述系统以同样的方式继续再确认服务指针202。
高速缓存中资源记录的间接更新图4给出了一个流程图,其说明了根据本发明的一个实施例、基于其他计算机系统执行的查询来更新本地高速缓存中资源记录202的过程。当计算机系统102从计算机系统104接收到组播消息时,所述系统开始,其中该组播消息查询打印机106提供的服务(步骤402)。计算机系统102查看其本地高速缓存,以定位一个与来自计算机系统104的查询相对应的服务记录204(步骤404)。然后计算机系统102等待来自该服务的响应(步骤406)。注意在本发明中,设备和服务通过向网络100发送组播消息来响应查询,而不是只向创建该查询的系统发送单播消息来响应该查询。通过发送组播消息,这就允许网络100上的其他设备更新其本地高速缓存中的相应条目,而无需消耗额外的带宽。如果服务响应了,那么计算机系统102就更新相应的资源记录,例如地址记录206和服务记录204,或者如果需要,就会创建地址记录206和服务记录204的新的版本(步骤408)。如果没有来自该服务的响应,那么计算机系统102就会删除服务记录204(步骤410),并继续进行本地高速缓存中可能引用它的任何记录的再确认。
给出本发明各个实施例的前述介绍仅仅式为了说明和描述的目的。并无意对它们进行穷举或者用它们来将本发明限制为所公开的形式。因此,许多修改和变化对于本领域的技术人员而言是明显的。此外,上述公开并无意限制本发明。本发明的范围是由所附的权利要求确定的。
权利要求
1.一种验证高速缓存中资源记录的方法,其包括在一个客户机处检索资源记录;发布对所述资源记录的一个或多个查询;等待对所述查询的响应;和如果在一个预定时间内没有收到对所述查询的响应,就无效所述资源记录。
2.根据权利要求1所述的方法,其中对所述查询的响应是一个组播响应,从而在无需查询该设备的情况下允许其他客户机更新所述资源记录的相应副本,节约了网络带宽。
3.根据权利要求1所述的方法,进一步包括接收一个组播消息,其来自于一个对第二设备进行查询的第二客户机;定位一个与所述第二设备有关的第二资源记录;等待对所述组播查询的组播响应;和如果在预定查询次数之后,在所述预定时间内没有收到对所述组播查询的组播响应,那么就无效所述第二资源记录。
4.根据权利要求1所述的方法,其中无效所述资源记录进一步包括无效所述资源记录的子记录。
5.根据权利要求1所述的方法,其中如果在一个预定时间内没有收到对所述查询的响应,那么所述方法进一步包括在所述客户机处检索所述资源记录的父记录,其中所述父记录引用所述资源记录;发布对所述父记录的一个查询;等待来自所述设备的对所述查询的响应;和如果在一个预定时间内没有收到对所述查询的响应,那么就无效所述父记录,然后通过对任何引用现在无效的父记录的记录递归地应用上述过程,来重复上述过程。
6.根据权利要求1所述的方法,其中如果在一个预定时间内没有收到对所述查询的响应,那么所述方法进一步包括在所述客户机检索所述资源记录的父记录,其中所述父记录引用所述资源记录;发布对所述父记录的一个查询;从所述设备接收对所述查询的响应,其中所述响应包括用于更新所述资源记录的信息;和利用在所述响应中接收的信息来更新所述资源记录。
7.根据权利要求6所述的方法,其中所述方法进一步包括利用在所述响应中接收的信息来更新所述父记录。
8.根据权利要求1所述的方法,其中所述方法是以一个预定的时间间隔而被调用的。
9.一种存储指令的计算机可读存储介质,当所述指令被计算机执行时会使所述计算机执行一种验证高速缓存中资源记录的方法,所述方法包括在一个客户机处检索所述资源记录;发布对所述资源记录的一个或多个查询;等待对所述查询的响应;和如果在一个预定时间内没有收到对所述查询的响应,就无效所述资源记录。
10.根据权利要求9所述的计算机可读介质,其中对所述查询的响应是一个组播响应,从而在无需查询该设备的情况下允许其他客户机更新所述资源记录的相应副本,因此节约了网络带宽。
11.根据权利要求9所述的计算机可读介质,其中所述方法进一步包括接收一个组播消息,其来自于一个对第二设备进行查询的第二客户机;定位一个与所述第二设备有关的第二资源记录;等待对所述组播查询的组播响应;和如果在预定查询次数之后,在所述预定时间内没有收到对所述组播查询的组播响应,那么就无效所述第二资源记录。
12.根据权利要求9所述的计算机可读介质,其中无效所述资源记录进一步包括无效所述资源记录的子记录。
13.根据权利要求9所述的计算机可读介质,其中如果在一个预定时间内没有收到对所述查询的响应,那么所述方法进一步包括在所述客户机处检索所述资源记录的父记录,其中所述父记录引用所述资源记录;发布对所述父记录的一个查询;等待来自所述设备的对所述查询的响应;和如果在一个预定时间内没有收到对所述查询的响应,那么就无效所述父记录,然后通过对任何引用现在无效的父记录的记录递归地应用上述过程,来重复上述过程。
14.根据权利要求9所述的计算机可读介质,其中如果在一个预定时间内没有收到对所述查询的响应,那么所述方法进一步包括在所述客户机检索所述资源记录的父记录,其中所述父记录引用所述资源记录;发布对所述父记录的一个查询;从所述设备接收对所述查询的响应,其中所述响应包括用于更新所述资源记录的信息;和利用在所述响应中接收的信息来更新所述资源记录。
15.根据权利要求14所述的计算机可读介质,其中所述方法进一步包括利用在所述响应中接收的信息来更新所述父记录。
16.根据权利要求9所述的计算机可读介质,其中是以一个预定的时间间隔而被调用的。
17.一种验证高速缓存中资源记录的装置,其包括在一个客户机处的检索机构,其被配置为检索所述资源记录;以及一个无效机构,其被配置为发布对所述资源记录的一个或多个查询;等待对所述查询的响应;和如果在一个预定时间内没有收到对所述查询的响应,就无效所述资源记录。
18.根据权利要求17所述的装置,其中对所述查询的响应是一个组播响应,从而在无需查询该设备的情况下允许其他客户机更新所述资源记录的相应副本,因此节约了网络带宽。
19.根据权利要求17所述的装置,其中所述无效机构被配置为接收一个组播消息,其来自于一个对第二设备进行查询的第二客户机;定位一个与所述第二设备有关的第二资源记录;等待对所述组播查询的组播响应;和如果在预定查询次数之后,在所述预定时间内没有收到对所述组播查询的组播响应,那么就无效所述第二资源记录。
20.根据权利要求17所述的装置,其中无效所述资源记录进一步包括无效所述资源记录的子记录。
21.根据权利要求17所述的装置,其中如果在一个预定时间内没有收到对所述查询的响应,那么所述无效机构就被额外配置为在所述客户机处检索所述资源记录的父记录,其中所述父记录引用所述资源记录;发布对所述父记录的一个查询;等待来自所述设备的对所述查询的响应;和如果在一个预定时间内没有收到对所述查询的响应,那么就无效所述父记录,然后通过对任何引用现在无效的父记录的记录递归地应用上述过程,来重复上述过程。
22.根据权利要求17所述的装置,进一步包括一个更新机构,其中如果在一个预定时间内没有收到对所述查询的响应,那么所述更新机构就被配置为在所述客户机检索所述资源记录的父记录,其中所述父记录引用所述资源记录;发布对所述父记录的一个查询;从所述设备接收对所述查询的响应,其中所述响应包括用于更新所述资源记录的信息;和利用在所述响应中接收的信息来更新所述资源记录。
23.根据权利要求22所述的装置,其中所述更新机构被额外配置为利用在所述响应中接收的信息来更新所述父记录。
24.根据权利要求17所述的装置,其中所述装置是以一个预定的时间间隔而被调用的。
全文摘要
本发明的一个实施例提供了一种便于对高速缓存中的资源记录进行再确认或验证的系统。所述系统开始于在客户机处检索资源记录,并尝试使用所述资源记录中的数据来建立通信。在通信不成功的情况下,所述系统通过发出可疑资源记录的一个或多个查询进行响应。然后所述系统等待对该查询的响应。如果在一个预定时间里没有收到对该查询的响应,那么所述系统就无效所述资源记录。来自该设备的响应是一个组播响应,从而在无需查询该设备的情况下允许其他客户机更新所述资源记录的相应副本,节约了网络带宽。
文档编号H04L29/08GK1820268SQ200480019374
公开日2006年8月16日 申请日期2004年4月29日 优先权日2003年8月20日
发明者S·D·切舍尔 申请人:苹果计算机公司