打印设备的情境和事件驱动的发现优化方法和装置与流程

文档序号:15930787发布日期:2018-11-14 01:36阅读:132来源:国知局
本发明总体涉及用于更新打印设备的数据的方法和装置。
背景技术
打印设备在世界范围内的数量和地理覆盖范围已经增加,并且已经越来越多地连接到网络。这些网络可以包括打印服务器。通常,当计划打印一个或多个文档和/或其它打印数据时,打印数据被直接发送到一个打印设备,或者被发送到打印服务器。网络可以包括许多打印设备。部分或全部打印设备可以具有不同的特征、功能和能力。例如,一些打印设备以彩色打印,而另一些则不是。作为另一示例,一些打印设备配备有双面硬件(其允许在一张纸的两面上进行打印),而其它打印设备只能在一张纸的一面上进行打印。技术实现要素:本发明可提供用于更新打印设备的数据的方法和装置。一方面,提供了一种方法。包括在计算设备上执行的软件的设备状态管理系统将多个探测消息发送到多个打印设备。设备状态管理系统接收对该多个探测消息的多个响应消息,其中多个响应消息的数量小于或等于多个探测消息的数量。在接收到多个响应消息之后,基于存储在与设备状态管理系统相关联的设备数据库中的数据来确定未确认的打印设备的数量。设备状态管理系统确定与未确认的打印设备的数量相关联的系统不稳定性值。设备状态管理系统确定与未确认的打印设备的数量相关联的系统不稳定性值是否超过阈值系统不稳定性值。在确定系统不稳定性值超过阈值系统不稳定值之后,设备状态管理系统执行下述操作:确定与未确认的打印设备相关联的一个或多个地址群集,每个地址群集包括与一个或多个打印设备相关联的一个或多个地址;将一个或多个探测消息发送到一个或多个地址群集中的至少一个内的一个或多个地址;接收对一个或多个探测消息的一个或多个响应;并使用在一个或多个响应中接收的数据来更新设备数据库。另一方面,提供了一种计算设备。计算设备包括一个或多个处理器和数据存储装置。数据存储装置被配置为存储计算机可读指令。计算机可读指令包括用于设备状态管理系统的指令,这些指令在由一个或多个处理器执行时使得计算设备执行任务。这些任务包括:从设备状态管理系统向多个打印设备发送多个探测消息;在设备状态管理系统处接收对多个探测消息的多个响应消息,其中多个响应消息的数量小于或等于多个探测消息的数量;在接收到所述多个响应消息之后,基于存储在与设备状态管理系统相关联的设备数据库中的数据来确定未确认的打印设备的数量;使用设备状态管理系统确定与未确认的打印设备的数量相关联的系统不稳定性值;使用设备状态管理系统确定与未确认的打印设备的数量相关联的系统不稳定性值是否超过阈值系统不稳定性值;以及在确定系统不稳定性值超过阈值系统不稳定性值之后,设备状态管理系统进行下述操作:确定与未确认的打印设备相关联的一个或多个地址群集,每个地址群集包括与一个或多个打印设备相关联的一个或多个地址;将一个或多个探测消息发送到一个或多个地址群集中的至少一个内的一个或多个地址;接收对一个或多个探测消息的一个或多个响应;以及使用在一个或多个响应中接收到的数据来更新设备数据库。另一方面,提供了一种制造物。制造物包括存储至少包括用于设备状态管理系统的指令的计算机可读指令的非暂态数据存储装置。计算机可读指令在由计算设备的一个或多个处理器执行时使计算设备执行任务。这些任务包括:从设备状态管理系统向多个打印设备发送多个探测消息;在设备状态管理系统处接收对多个探测消息的多个响应消息,其中多个响应消息的数量小于或等于多个探测消息的数量;在接收到多个响应消息之后,基于存储在与设备状态管理系统相关联的设备数据库中的数据来确定未确认的打印设备的数量;使用设备状态管理系统确定与未确认的打印设备的数量相关联的系统不稳定性值;使用设备状态管理系统确定与未确认的打印设备的数量相关联的系统不稳定性值是否超过阈值系统不稳定性值;以及在确定系统不稳定性值超过阈值系统不稳定性值之后,设备状态管理系统确定与未确认的打印设备相关联的一个或多个地址群集,每个地址群集包括与一个或多个打印设备相关联的一个或多个地址;将一个或多个探测消息发送到一个或多个地址群集中的至少一个内的一个或多个地址;接收对一个或多个探测消息的一个或多个响应;以及使用在一个或多个响应中接收到的数据来更新设备数据库。根据本发明,可以提供使用相对少量的带宽来维持用于打印设备的设备数据库。附图说明图1a是示出根据示例实施例的打印网络的图。图1b是示出根据示例实施例的计算设备的示意性框图。图2a和2b是根据示例实施例的与使用设备状态管理系统发现联网打印设备有关的方法的流程图。图3a和3b示出根据示例实施例的其中打印系统被确定为不稳定并且在系统稳定期间刷新设备数据库的场景。图3c图示了根据示例实施例的设备数据库的格式。图4a、图4b、图4c和图4d示出根据示例实施例的设备数据库中的数据被刷新的场景。图4e、图4f、图4g和图4h示出根据示例实施例的设备数据库中的数据被刷新的另一场景。图5a是根据示例实施例的用于稳定打印系统的方法的流程图。图5b示出根据示例实施例的打印系统的丢失和/或受损打印设备的地址的示例群集和用于地址群集的示例探测决策。图6示出了根据示例实施例的方法的流程图。具体实施方式i.概述在下面的详细说明中,参考形成其一部分的附图。在附图中,除非上下文另有规定,否则相似的符号通常标识相似的组件。详细描述、附图和权利要求中描述的说明性实施例并不意味着限制。可以使用其它实施例,并且可以做出其它改变而不脱离本文提出的主题的范围。容易理解,如本文一般描述的和附图中示出的,本发明的各方面可以以各种不同配置进行布置、替换、组合、分离和设计,所有这些都在本文中明确地考虑。描述了用于在计算网络中查找打印设备的技术和装置。一些计算网络是庞大复杂的网络,它们通过一个或多个地理区域连接大量计算设备(包括打印设备);例如,大公司或政府机构可以利用这样的计算网络。随着计算网络的发展,相应的基础架构可能变得越来越复杂和精密,并且包括被设计以覆盖安全性、透明性和可扩展性要求的一个或多个网络层次结构。例如,复杂的计算网络可以具有这样的网络层次结构:其中包括具有多个路由器、交换机和动态主机配置协议(dhcp)服务器的若干互连网段。这样的计算网络可以包括大量(例如数百万)的互联网协议(ip)地址,并遵守用于ip地址分配的非常复杂的规则。这些规则可能是复杂的dhcp扇区配置或任何其它负责ip地址分配和管理的外部子系统的一部分。这种网络层次结构可以分布在许多ip地址段上。当在这种类型的环境中部署新的硬件和/或软件时,本文所公开的快速和可靠的打印设备发现技术可以补充状态监视和终身维护的后续任务。这些发现技术可以监视和跟踪逻辑设备位置,例如ip地址。这些技术可用于各种计算网络,包括这样的计算网络:其包括努力产生最佳ip地址分配的网络层次结构,这可能导致计算网络中主机的连续ip地址改变和交换。例如,为了管理(复杂的)计算网络,可以将打印设备信息(例如,设备名称、型号、序列号、互联网协议(ip)地址、和/或与打印设备有关的其它信息)存储在设备数据库(ddb)中,其可由设备状态管理系统(dsms)维护。设备数据库可以存储可以由设备状态管理系统用来维护打印设备的打印设备信息。例如,如果设备数据库具有指示打印设备墨粉不足的数据,则设备状态管理系统可以为打印设备订购墨粉。但是,如果打印设备信息数据库中的信息不一致,则可能为具有充足墨粉供应的打印设备订购墨粉和/或不为几乎或完全没有墨粉的打印设备订购墨粉。作为另一示例,设备数据库可以提供用于以下各项的信息:提供关于一个或多个打印设备的当前状态的反馈以及使得能够对打印设备事件进行近实时或实时反应。多种情况可导致设备数据库的状态变得不可靠,其中设备数据库的状态可反映设备状态管理系统关于打印设备的当前知识。例如,如果设备数据库中的信息变得矛盾,则设备状态管理系统可能更正设备数据库。矛盾信息的示例包括但不限于设备状态管理系统发生以下各项的情形:失去与打印设备的连接;检测到打印设备的序列号或型号名称已被改变;检测到网络故障、关键设备故障或误动作;检测到新发现的打印设备(即,没有数据已存储在设备数据库中的打印设备)具有与已知的打印设备(即,具有已存储在设备数据库中的数据的打印设备)相同的序列号,但新发现的打印设备和已知设备之间的ip地址不同;以及检测到打印设备ip地址的其它改变。设备数据库可以周期性地(例如每晚)更新以解决这些矛盾和/或出于其它原因更新;例如为新打印机记录数据。一些但不是全部的打印设备具有代理,当ip地址改变时、打印设备断开连接等时,代理可以向设备状态管理系统发送消息,从而设备状态管理系统可以适当地更新设备数据库。由于并非所有打印设备都具有代理,因此在需要发现大多数(如果不是全部)打印设备(例如发现打印设备以维护上述打印设备数据库)的情况下,可以使用探测消息(或简称为“探测”)。可以将探测发送到打印设备,并且打印设备可以用打印设备的上述打印设备信息中的一些或全部进行响应。如果来自打印设备的对探测的响应或“探测响应”包括与存储在用于打印设备的设备数据库中的数据相匹配的数据,则可以认为打印设备的探测成功。如果设备状态管理系统未收到探测响应,或者如果探测响应的数据与设备数据库不一致,则可以认为探测失败。在某些情况下,只有相对少量的网络流量可以被分配给打印设备,因此一段时间内可能无法跟踪失败的探测。因此,打印设备信息的设备数据库可能逐渐过时,直到跟踪到失败的探测为止。探测可因多种原因失败。探测失败的一个原因是打印设备的ip地址信息随时间而改变。例如,如果打印设备被关闭随后通电,则打印设备可请求诸如dhcp服务器之类的服务器分配ip地址以供打印设备使用。新分配的ip地址可能与打印设备在关闭之前先前分配的ip地址不同。探测失败的另一个原因是打印设备在探测消息被发送时可能被断开连接(可能是电源被关闭)。例如,如果打印设备在营业日结束时关闭并且探测在非营业时间期间被发送,则发送到关闭打印设备的探测消息将失败,因为关闭打印设备是与网络断开连接的。探测失败的其它原因也是可能的。为了维护设备数据库,设备状态管理系统可以向网络上的设备发送探测,并且接收相应的探测响应。在接收到探测响应之后,设备状态管理系统可以确定多个未确认的打印设备。当(1)d的探测响应中的数据与存储在设备数据库中的数据矛盾时或者(2)设备d没有响应探测时,设备状态管理系统可以确定响应探测消息的设备d是未确认的打印设备。换言之,如果对设备d的探测失败,设备d可以被标记为未确认的打印设备。由于多种原因,探测响应中的数据可能与存储在设备数据库中的数据相矛盾。例如,探测响应可以包括打印设备的序列号、型号名称和网络/ip地址。但是,可以改变设备devicea的序列号和/或型号名称,例如当dhcp服务器或用户将新ip地址分配给devicea时,并且devicea的旧ip地址已重新分配给不同设备deviceb。另外,设备数据库中未找到的设备的序列号和/或型号名称可以是新打印设备的序列号和/或型号名称。作为另一示例,可以改变设备devicec的ip地址,其中devicec在设备数据库中具有与探测响应相匹配的相同序列号(以及可能的型号名称)的记录。ip地址可能因多种原因而发生变化;例如使用新的或附加的网络适配器、启用不同的ip版本(ipv4或ipv6)、新的ip地址由dhcp服务器或用户分配给devicec。设备状态管理系统可以使用设备状态管理系统确定与未确认的打印设备的数量相关联的系统不稳定性值。在一个示例中,系统不稳定性值可以是未确认的打印设备的数量。在另一示例中,系统不稳定性值可以是多个未确认打印设备的多个活动水平的总和或另一数学组合。特定的未确认打印设备upd的活动水平可以基于打印设备upd使用的墨粉量、从打印设备upd获得的诸如页面计数器之类的计数器的值、由打印设备upd生成的警报的数量和/或类型、及它们的组合。更具体地,活动水平可以基于一个或多个值的变化率;例如,如果设备状态管理系统确定未确认的打印设备upd在第1天具有1000的页面计数且在第2天具有1200的页面计数,则这些页面计数的变化率指示upd在该特定日期打印200页。随后,设备状态管理系统可以基于每天200页的值确定打印设备upd的活动水平。作为另一示例,如果打印设备upd的墨粉量在第1天为80%,在第2天为78.3%,则打印设备upd的活动水平可以基于打印设备upd的墨粉水平减少1.7%。基于组合也是可能的,例如基于200页/天和1.7%的墨粉水平变化来确定打印设备upd的活动水平。在确定系统不稳定性值时使用活动水平会导致未确认打印设备的权重不相等;换言之,一些未确认的打印设备会对系统不稳定性产生很大的影响,并且一些未确认的打印设备对系统不稳定性有很少或没有影响。在极端情况下,如果在未确认的打印设备上使用高活动水平,可能会导致系统不稳定。系统不稳定性值和活动水平的其它示例也是可能的。设备状态管理系统可以通过确定系统不稳定性值超过阈值系统不稳定性值来确定设备数据库不稳定。反之,如果系统不稳定性值不超过阈值系统不稳定性值,则设备数据库可被认为是稳定的,设备状态管理系统可以按原样使用设备数据库。例如,如果设备状态管理系统具有n个打印设备上的数据(n>0),则阈值系统不稳定性值可以基于:未确认的打印设备的预定数量(例如1、10、50、66、100、500个)、设备的百分比(例如n的10%、n的15%、n+1的20%)、和/或使用其它技术确定的一个或多个值。作为另一示例,预定数量的未确认打印设备的活动水平的总和或另一数学组合的阈值系统不稳定值;例如,阈值系统不稳定性值可以是来自未确认的打印设备的总页数/日(例如、10、300、5000或150000页/日)、未确认的打印设备中的墨粉水平的累积百分比或其它变化(例如墨粉水平的10%、25%、100%、250%、500%变化)、从未确认打印设备的累积地接收到的警报的数量(例如,1、10、25、50、100、250个)等、及它们的组合。其它阈值系统不稳定性值也是可能的。为了解决设备数据库和探测响应之间的矛盾,设备状态管理系统可以发现丢失的设备并确保所有已知的设备连接并且可达。可以使用预防性系统维护发现方法和/或情境系统稳定性发现方法来执行对丢失设备的发现。例如,当系统不稳定性值小于系统不稳定性阈值时,可以使用预防性系统维护发现方法。预防性系统维护发现方法可以旨在最大限度地减少潜在的系统冲突的数量,并防止系统状态可能被认为不可靠的情况。在其它情况下,例如当系统不稳定性值超过系统不稳定性阈值时,可以使用情境系统稳定性发现方法。情境系统稳定性发现方法可以旨在当实际问题已发生且尚未被检测和解决时通过使用预防性系统维护发现来稳定系统状态。预防性系统维护发现方法可以最小化可能的冲突以及状态不可靠时的情况,系统需要至少具有环境未被改变或受损(compromised)的最小限度的及时保证。为了使可能出现的冲突的数量最小化,设备状态管理系统可以与设备状态监视系统通信以与一个或多个现有ip地址分配子系统进行通信,例如绑定并与一个或多个dhcp服务器连接以获得可能与打印设备相关联的一个或多个网络地址(例如,ip地址)列表。在获得网络地址列表之后,设备状态管理系统可以将(一个或多个)列表上的ip/网络地址与存储在设备数据库中的已知ip/网络地址进行比较。预防性系统维护发现方法可以通过ip地址信息将打印设备与其它设备区分开。在某些情况下,打印设备被分配特定范围的ip地址。这些ip地址范围可以由管理ip网络和/或该网络中的打印设备的网络管理人员提供给设备状态管理系统,但这些范围也可以随时间变化。另外,可以将打印设备分配给不在提供的范围内的ip地址。当设备状态管理系统要使用ip地址范围来发现打印设备时,设备状态管理系统可以使用补充有附加信息的该所提供的信息,例如关于过去打印设备使用什么ip地址范围的历史信息和/或有关响应探测消息返回的ip地址范围的信息。此外,许多非打印设备不提供序列号信息,因此打印设备可通过包括序列号信息的探测响应来进行区分。在一些实施例中,设备状态管理系统可以在与dhcp服务器相同的计算设备上执行,随后可以使用一个或多个配置文件来检索(一个或多个)网络地址列表中的一些或全部。在其它实施例中,设备状态管理系统可以在与dhcp服务器不同的计算设备上执行,随后可以使用一个或多个网络通信协议(例如超文本传输协议(http)、可扩展消息传送和存在协议(xmpp)、简单网络管理协议(snmp)、远程登录、文件传输协议(ftp)、传输控制协议(tcp)、基于套接字的通信协议)来检索(一个或多个)网络地址列表中的一些或全部。更具体地,设备状态管理系统可以连接到dhcp服务器,并检索由dhcp服务器分配并且dhcp服务器已知的ip地址的列表。继续使用预防性系统维护发现方法,设备状态管理系统可以比较已知ip地址和从dhcp服务器返回的地址列表。如果返回一些未知的ip地址,可以使用简单的探测方法来探测它们,例如将探测消息发送到每个未知ip地址,因为未知ip地址可能是(新)打印设备的ip地址。如果探测未知ip地址显示有一些已知ip地址未从dhcp服务器返回并且先前未解析,则可以验证这些已知ip地址以确保系统没有丢失与这些设备的连接并且系统状态是准确的。在确定系统不稳定性值超过阈值系统不稳定性值之后,设备状态管理系统可以确定设备数据库不稳定,并且因此要被更新以解释未确认的打印设备。当设备数据库不稳定时,可以使用情境系统稳定性发现方法。情境系统稳定性发现方法可以有效地恢复系统状态/更新设备数据库,以确保设备数据库具有关于打印设备的完整和准确的信息。在一些情况下,预防性系统维护发现方法可以在使用情境系统稳定性发现方法之前执行;例如,当在没有预先执行预防性系统维护发现方法的情况下调用情境系统稳定性发现方法时,期望预防性系统维护发现方法可以使设备数据库进入稳定状态而不实际调用情境系统稳定性发现方法情境系统稳定性方法可以试图找到设备数据库中的所有未确认的打印设备。但是,使用顺序ip地址探测将探测消息发送到大型网络中的所有设备可能需要很长时间才能找到设备的新ip地址。即在没有优化的情况下,在大规模系统中丢失设备的顺序ip地址探测可能太昂贵(通过全范围探测)和/或不确定性太大(通过单个目标探测或简单的远程目标探测)。为了优化被发送来更新设备数据库的探测消息的数量,情境系统稳定性方法可以确定与未确认的打印设备相关联的一个或多个地址群集。例如,如果多个未确认的打印设备与特定范围的ip地址(例如一个或多个特定的连续子网,每个子网具有256个ip地址)相关联,则地址群集可以包括该特定范围的ip地址的一部分或全部。特别地,可以将矢量量化技术应用于未确认的打印设备的列表以最大化对受损设备的重新发现并且最小化搜索的范围。矢量量化方法可以基于它们在ip地址范围上的位置将与未确认打印设备相关联的ip地址组织成群集,这类似于数值分类。矢量量化方法可以使用k均值(k-means)将与未确认的打印设备相关联的ip地址分类;换言之,群集可以将与未确认打印设备关联的ip地址列表分类为k个群集。在某些情况下,与未确认的打印设备相关联的ip地址可以被认为是单变量(一维)数据,因此利用一维数据的可分类属性的jenks自然断点(naturalbreaks)优化可用于将ip地址分类为群集。一旦与未确认的打印设备相关联的ip地址已被分类为群集,就可以根据地址群集的一个或多个属性来针对目标发现对群集进行评估。用于评估的群集属性示例可以包括但不限于:·群集范围(群集中的ip地址数量),·分类大小(在此群集中找到的未确认的打印设备的数量),·群集密度(分类大小与群集范围的比率),·不稳定性历史(该群集受损的频率),以及·总活动时间(数据库中的设备在被视为丢失、受损或需要检查之前的持续时间)。在基于群集属性确定适合于目标发现的(一个或多个)地址群集之后,设备状态管理系统可以将探测发送到合适的(一个或多个)地址群集中的ip地址,接收对探测的响应,并基于探测响应来更新设备数据库。因此,设备状态管理系统可以使用目标发现来刷新/重建设备数据库。本文所描述的技术和装置允许使用相对少量的带宽来维护用于打印设备的设备数据库。当预计和/或测量计算网络流量相对较低时,可以利用大部分(如果不是全部)在此描述的技术和装置,从而减少对其它计算网络活动的影响。这些技术和装置可以将探测消息集中到具有相对高数量的失败探测的地址群集中,并且因此可以通过减少发送到地址范围中不太可能产生用于维护设备数据库的可用信息的设备的探测和探测响应,来有效地获得维护设备数据库所需的信息。ii.打印系统示例图1a是示出根据示例实施例的打印网络100的图。打印网络100包括使用网络150互连的计算设备110,一个或多个非打印设备120、122、124、126、128、140,dhcp服务器144以及一个或多个打印设备(pd)130、142。在一些示例中,打印网络100可以具有比图1中所示更多、更少和/或不同类型的评估设备、非打印设备、和/或打印设备。计算设备110,dhcp服务器144和/或非打印设备120、122、124、126、128可以是被配置为使用网络150彼此通信以及与打印设备130、142通信的计算设备,或者可以包括这样的计算设备。计算设备110可以是包括用于设备状态管理系统(dsms)112和/或设备数据库(ddb)114的数据的软件的打印或非打印设备。设备状态管理系统112可以探测打印设备,接收探测响应,并且收集其它数据以维护设备数据库114。设备数据库114可以包括用于维护打印网络100以及可能的其它网络中的打印设备的数据——下面在至少3c、4b、4d、4f和4h的上下文中讨论存储在设备数据库114中的示例数据。打印设备130、142可以包括被配置为扫描、打印、复印、发电子邮件、解释、传送和/或以其它方式处理最初可以在纸上或以电子方式获得的文档和/或文件的设备。在打印网络100中,非打印设备可以是并非打印设备的计算设备,其中非打印设备可以被配置为使用网络150与其它非打印设备和打印设备130、142通信。在由打印设备130、142中的一个或多个进行处理之后,文档和/或文件随后可以根据请求以书面或电子方式获得。换言之,打印设备130、142可以至少通过以下方式处理纸质文档pd或电子文档ed:创建表示pd内容的电子文档ed1(例如,扫描pd以创建ed1),制作pd的一个或多个纸质副本,在一种或多种类型的纸张上打印ed和/或ed1的一个或多个副本,制作ed和/或ed1的一个或多个电子副本,改变ed和/或ed1的格式(例如,执行ocr扫描、转换用于存储ed和/或ed1的文件格式),维护使打印设备130、142之外的其它设备能够使用/访问ed和/或ed1,和/或将ed和/或ed1的内容传送去往/来自另一设备的远程可访问存储装置(例如文档盒)。文档盒可以是被分配给打印设备、打印服务器或另一设备上的实体(例如,用户、管理员、公司、另一类型的实体)的存储装置,因此实体可以保存和维护文档、文件和/或其它数据。在一些实施例中,文档盒可以伴随有和/或包括用于个人数据的存储装置,例如地址簿和/或设备记帐存储装置。文件盒、地址簿和设备记帐存储装置可以存储一个或多个文档、文件、个人数据和/或其它数据,例如联系人、使用和使用限制。在一些实施例中,打印设备130、142也可以执行其它任务和/或其它处理。打印设备130、142可以包括来自各种制造商的具有颜色、速度、计算能力、功能、网络连接性和/或其它特征的变化的产品。在示例实施例中,一些或全部打印设备130、142可以通过可能不同的一个或多个网络协议连接到网络150。数据可以通过非打印设备、打印设备和网络150之间的有线和/或无线链路,在打印设备130、142,非打印设备120、122、124、126、128、140之间传输。打印网络100中的设备之间的每个相应数据传输的格式可以包括多种不同格式中的一种或多种,包括:文本格式、图像格式、可扩展标记语言(xml)、数据库表格、平面文件格式或其它格式。在一些实施例中,非打印设备可以被配置为充当用于一个或多个打印设备的打印服务器。打印服务器可以配置为处理作业(例如,假脱机作业相关数据、路由作业、为作业提供用户和/或服务器相关记帐、验证/强制执行与作业相关的认证和授权规则)并存储与打印网络100中的打印设备相关的数据。例如,在网络140中,非打印设备140被配置为用作至少打印设备142的打印服务器。非打印设备和打印设备之间的通信可以包括:计算设备110和/或非打印设备120、122、124、126、128、140向打印设备130、142发送用于打印作业和/或打印作业部分的数据以进行打印;以及打印设备130、142发送警告、状态、错误和/或其它消息以向其它设备通知打印设备的错误或其它状况;例如闲置、打印、休眠、卡纸、纸张不足或纸张用尽、墨粉不足或墨粉用尽等。一个或多个计算设备、一个或多个非打印设备和一个或多个打印设备之间的其它通信也是可能的;例如,下面描述的与设备状态管理系统112和/或设备数据库114有关的通信。dhcp服务器144可以向网络150中的计算设备提供诸如ip地址之类的寻址信息。在一个示例中,让非打印设备120断电并随后上电。一旦上电,非打印设备120或网络150就可以向dhcp服务器144发送dhcp发现消息以请求用于连接到并使用网络150和/或其它网络(例如互联网)的新ip地址。响应于dhcp发现消息,dhcp服务器144可以分配(或租借)供非打印设备120使用的ip地址,并且向非打印设备120发送包括新分配的ip地址的dhcp提供消息。非打印设备120可以接受dhcp提供消息并使用新分配的ip地址进行访问。打印设备可以使用类似的过程来从dhcp服务器144获得ip地址。图1b是示出根据示例实施例的计算设备160的示意性框图。在一些实施例中,计算设备160可以被配置为执行本文所描述的下述项中的一个或多个功能:打印网络100,计算设备110,设备状态管理系统112,设备数据库114,设备数据库格式114a、114b、114c、114d,非打印设备120、122、124、126、128、140,打印设备130、142、310,dhcp服务器144,方法200、500、600,设备410、420,ip列表434,群集,以及至少本文描述的与场景300、400、400a和580相关的功能的一部分。计算设备160可以包括一个或多个输入设备162、一个或多个输出设备164、一个或多个处理器166和存储器168。输入设备162可以包括用户输入设备、网络输入设备、传感器和/或其它类型输入设备。例如,输入设备162可以包括诸如触摸屏、键盘、小键盘、计算机鼠标、跟踪球、操纵杆、摄像头、语音识别模块和/或其它类似设备之类的用户输入设备。网络输入设备可以包括有线网络接收器和/或收发器(例如以太网收发器),通用串行总线(usb)收发器,或可配置成经由到有线网络(例如网络150的有线部分)的双绞线、同轴电缆、光纤链路或类似物理连接进行通信的类似收发器,和/或无线网络接收器和/或收发器(例如蓝牙收发器、zigbee收发器、wi-fi收发器、wimax收发器、无线广域网(wwan)收发器和/或可配置成经由无线网络(例如网络150的无线部分)进行通信的其它类似类型的无线收发器。传感器可以包括被配置为测量计算设备160的环境中的状况的设备,以及提供有关该环境的数据,这些数据包括但不限于:位置数据、速度(速度、方向)数据、加速度数据以及有关计算设备160的环境的其它数据。示例传感器包括但不限于:(一个或多个)gps传感器、(一个或多个)位置传感器、(一个或多个)陀螺仪、(一个或多个)加速度计、(一个或多个)磁力计、(一个或多个)摄像头、(一个或多个)光传感器、(一个或多个)红外传感器、以及(一个或多个)麦克风。其它输入设备162也是可能的。输出设备164可以包括用户显示设备、可听输出设备、网络输出设备和/或其它类型的输出设备。用户显示设备可以包括一个或多个打印组件、液晶显示器(lcd)、发光二极管(led)、激光器、使用数字光处理(dlp)技术的显示器、阴极射线管(crt)、灯泡和/或其它类似的设备。可听输出设备可以包括扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机、耳麦和/或其它类似设备。网络输出设备可以包括有线网络发送器和/或收发器(例如以太网收发器),通用串行总线(usb)收发器,或可配置成经由到有线网络(例如网络150的有线部分)的双绞线、同轴电缆、光纤链路或类似物理连接进行通信的类似收发器,和/或无线网络发送器和/或收发器(例如蓝牙收发器、zigbee收发器、wi-fi收发器、wimax收发器、无线广域网(wwan)收发器和/或可配置成经由无线网络(例如网络150的无线部分)进行通信的其它类似类型的无线收发器。其它类型的输出设备可以包括但不限于振动设备、触觉反馈设备和不可见光发射设备;例如发射红外线或紫外线的设备。其它输出设备164也是可能的。处理器166可以包括一个或多个通用处理器、中央处理单元(cpu)、cpu核心和/或一个或多个专用处理器(例如,图形处理单元(gpu)、数字信号处理器(dsp))、现场可编程门控阵列(fpga)、专用集成电路(asic)等)。处理器166可以被配置为执行包括在存储器168中的计算机可读程序指令170和/或本文所描述的其它指令。存储器168可以包括被配置为存储数据和/或指令的非暂态机器可读存储装置。在一些示例中,存储器168可以存储设备状态管理软件112和/或设备数据库114的部分或全部数据。在其它示例中,存储器168可以存储机器可读指令170,当机器可读指令170由(一个或多个)处理器166执行时可以使计算设备执行本文所描述的功能,例如但不限于本文所描述的设备、网络、方法、特征和场景的功能。特别地,计算机可读程序指令170可以包括用于和/或与设备状态管理软件112和/或设备数据库114有关的至少一些指令。iii.用于查找打印设备和更新设备数据的装置和方法图2a和图2b是根据示例实施例的与使用设备状态管理系统发现联网打印设备有关的方法200的流程图。方法200可以由诸如设备状态管理系统112之类的设备状态管理系统执行。设备状态管理系统可以是或可以包括由计算设备(例如,上文在图1a的上下文中讨论的计算设备110和/或上文在图1b的上下文中讨论的计算设备160)执行的软件。图2a示出了方法200可以在与标签“a”相关联的框210开始,其中设备状态管理系统可以确定是否将探测作为发现联网打印设备的一部分发送。例如,上述预防性系统维护发现方法不涉及发送探测,而上述情境系统稳定性发现方法确实涉及发送探测。如果设备状态管理系统此时确定发送探测是发现联网打印设备的一部分,则设备状态管理系统可以前进至框212。否则,设备状态管理系统确定发送探测此时不是发现联网的打印设备的一部分并且设备状态管理系统可以前进到框214。在框212处,设备状态管理系统可以将useprobe变量设置为等于1以指示发送探测此时是发现联网打印设备的一部分。例如,调用情境系统稳定性发现方法可以使得执行框212并设置useprobe=1。在完成框212之后,设备状态管理系统可以前进到框218。在框214处,设备状态管理系统可以使useprobe变量等于0以指示发送探测此时不是发现联网打印设备的一部分。例如,调用预防性系统维护发现方法可以使得执行框214并且设置useprobe=0。在完成框214之后,设备状态管理系统可以前进到框218。在框218处,设备状态管理系统可以确定检查ip地址是否是发现联网打印设备的一部分。如果设备状态管理系统确定此时检查ip地址是发现联网打印设备的一部分,则设备状态管理系统可以前进到框220。否则,设备状态管理系统确定此时检查ip地址不是发现联网打印设备的一部分,则设备状态管理系统可以前进到框222。在框220处,设备状态管理系统可以将usena变量设置为等于1以指示此时检查ip地址是发现联网的打印设备的一部分并且可以前进到框226。在框222处,设备状态管理系统可以将usena变量设置为等于0以指示此时检查ip地址不是发现联网打印设备的一部分。在框226处,设备状态管理系统可以确定useprobe和usena变量两者是否均等于0。如果useprobe和usena变量都等于0,则此时既不执行探测也不执行ip检查,这指示此时不执行发现联网打印设备。随后,如果useprobe和usena变量都等于0,则设备状态管理系统可以进行到框228。否则,useprobe和usena变量中的至少一个不等于0,设备状态管理系统可以前进到框232。在框228处,设备状态管理系统可以等待一段时间;例如1分钟、3小时、1/2天,21小时、1天。在等待一段时间之后,设备状态管理系统可以前进到框210。在一些实施例中,方法200可以在框228处结束,而不是等待一段时间。在框232处,设备状态管理系统可以确定是否对丢失的打印设备进行评分(rate)或计数。如上所述,对丢失打印机的评分涉及确定“丢失”或未确认的打印设备的活动水平,随后数学地组合未确认的打印设备的活动水平以确定系统不稳定性值。计数丢失的打印设备涉及维护未确认打印设备的数量以及将未确认的打印设备的数量用作系统不稳定性值,如上所述。如果设备状态管理系统要对丢失/未确认的打印设备进行计数,则设备状态管理系统可以前进到框234。否则,设备状态管理系统将对丢失/未确认的打印设备进行评分,并且设备状态管理系统可以继续到框236。在框234处,设备状态管理系统可以将userate变量设置为等于0并且将threshold变量设置为等于countthreshold值。如上所述,方法200的threshold变量可以用作阈值系统不稳定性水平以确定设备数据库是否不稳定。作为确定countthreshold值的示例,让设备状态管理系统在设备数据库中具有n(n>0)个打印设备上的数据。随后,countthreshold值可以基于下述项:未确认打印设备的预定数量(例如1、10、50、66、100、500个),设备的百分比(例如n的10%、n的15%、n+1的20%),和/或如上所述使用其它技术确定的一个或多个值。用于确定countthreshold值的其它技术也是可能的。在完成框234的过程之后,设备状态管理系统可以前进至框240。在框236处,设备状态管理系统可以将userate变量设置为等于1并且将threshold变量设置为等于ratethreshold值。例如,ratethreshold值可以基于一个或多个活动水平,例如每天(或其它时间段)由丢失/未确认的打印设备打印的累积页数、由丢失/未确认的打印设备所使用的累积墨粉量或所使用的墨粉百分比、由丢失/未确认的打印设备接收和/或从丢失/未确认的打印设备接收的警报的累积数量、和/或如上所述各项的组合。用于确定ratethreshold值的其它技术也是可能的。在框240处,设备状态管理系统可以从诸如dhcp服务器144之类的dhcp服务器获得网络地址的列表l。在与标签“e”相关联的框244处,设备状态管理系统可以确定useprobe变量是否等于0。如果useprobe变量确实等于0,则设备状态管理系统可以前进至与标签“b”相关联的框266。否则,由于useprobe变量不等于0,所以设备状态管理系统可以继续进行到框248。框248、252、256、260和262的过程涉及利用探测消息的发现技术。在框248处,设备状态管理系统可以从列表l获得用于打印设备pd的网络地址na。随后,设备状态管理系统可以向打印设备pd的网络地址na发送探测。在框252处,设备状态管理系统可以确定是否存在来自打印设备pd的对在框248处发送的探测的响应。如果设备状态管理系统已经接收到对探测的响应,则设备状态管理系统可以进行到与标签“c”相关联的框256。否则,设备状态管理系统尚未接收到对探测的响应,并且设备状态管理系统可以前进至与标签“d”相关联的框262。转到图2b,在与标签“c”相关联的框256处,设备状态管理系统可以确定来自打印设备pd的探测响应中的数据是否与存储在设备数据库中的数据匹配。如果来自打印设备pd的探测响应中的数据与存储在设备数据库中的数据相匹配,则设备状态管理系统可以前进到框260。否则,来自打印设备pd的探测响应中的数据与存储在设备数据库中的数据不匹配并且设备状态管理系统可以前进到框262。在框260处,设备状态管理系统可以将用于打印设备pd的设备数据库条目标记为已确认。此外,设备状态管理系统可以将badpd变量设置为等于0,指示当前打印设备pd不是未确认或“不良”的打印设备。在完成框260的过程之后,设备状态管理系统可以前进至框266。在与标签“d”相关联的框262处,设备状态管理系统可以将用于打印设备pd的设备数据库条目标记为“需要检查”或未确认。此外,设备状态管理系统可以将badpd变量设置为等于1,指示当前打印设备pd是未确认/不良的打印设备。在与标签“b”相关联的框266处,设备状态管理系统可以确定usena变量是否被设置为0。如果usena变量确实等于0,则设备状态管理系统可以前进到框280。否则,由于usena变量不等于0,所以设备状态管理系统可以前进到框268。框268、272、274和276的过程涉及利用存储在设备数据库中的数据检查列表l中的ip地址的发现技术。如下所示,这些发现技术不需要使用探测消息。在框268处,设备状态管理系统可以从列表l获得打印设备pd的网络地址na。在框272处,设备状态管理系统可以确定在设备数据库中是否存在与网络地址na相关联的条目。如果在设备数据库中存在与网络地址na相关联的条目,则设备状态管理系统可以进行到框274。否则,设备数据库中没有与网络地址na相关联的条目,并且设备状态管理系统可以进行到框276在框274处,设备状态管理系统可以将用于打印设备pd的设备数据库条目标记为已确认。而且,设备状态管理系统可以将badpd变量设置为等于0,指示当前打印设备pd不是未确认/不良的打印设备。在完成框274的过程之后,设备状态管理系统可以前进至框280。在框276处,设备状态管理系统可以将用于打印设备pd的设备数据库条目标记为“需要检查”或未确认。此外,设备状态管理系统可以将badpd变量设置为等于1,指示当前打印设备pd是未确认/不良的打印设备。在框280处,设备状态管理系统可以确定badpd变量是否具有值0;即当前打印设备pd是否不是未确认/不良的打印设备。如果badpd变量的值为0,则设备状态管理系统可以继续到框286。否则,badpd变量具有非零值;即,当前打印设备pd是未确认/不良的打印设备,并且设备状态管理系统可以前进到框282。在框282处,设备状态管理系统可以确定打印设备pd的活动水平值al1。随后,设备状态管理系统可以使用以下等式来更新系统不稳定性值si:si=si+((userate)*al1)+(1-userate),如图2b所示。在方法200中,userate具有0或1的值,如上文在框234和236的上下文中所讨论的。随后,如果userate=0,则等式si=si+((userate)*al1)+(1-userate)被简化为si=si+(1-userate)→si=si+1,因此si将递增以更新对未确认的打印设备的计数。如果userate=1,则等式si=si+((userate)*al1)+(1-userate)被简化为si=si+(userate*al1)+0→si=si+al1,通过将si的先前值与al1值相加来更新si,从而更新未确认的打印设备的活动水平的总和。在框286处,设备状态管理系统可以确定是否有更多设备要评估;例如列表l中的所有地址是否已被检查,设备数据库中的所有条目是否已被标记为已确认或需要检查,分配给方法200的执行的时间和/或其它资源是否已被消耗等。如果存在更多的设备需要评估,则设备状态管理系统可以前进到与标签“e”相关联的框244。否则,不再有设备要评估,并且设备状态管理系统可以前进到框290。在框290处,设备状态管理系统可以确定系统不稳定值si是否大于threshold值。如果si大于threshold,则设备状态管理系统可以前进到框292。否则,si不大于threshold,并且设备状态管理系统可以前进到与标签“a”相关联的框210。在框292处,设备状态管理系统可以通过刷新设备数据库来稳定系统。刷新设备数据库可以包括:生成与未确认的打印设备相关联的ip地址群集,探测所生成的群集内的打印设备,基于探测响应更新设备数据库,以及将系统不稳定性等级si重置为0。下面至少在方法500和图5a和图5b的上下文中也讨论稳定系统和刷新设备数据库。经稳定/刷新的设备数据库可用于执行打印机相关功能,例如基于存储在经稳定/刷新的设备数据库中的数据来为打印设备订购可替换供应品(例如,墨粉),检查设备状态,和/或其它功能。在完成框292的过程之后,设备状态管理系统可以前进到与标签“a”相关联的框210。图3a、图3b和图3c示出根据示例实施例的场景300,其中类似于打印网络100的打印系统被确定为不稳定的并且在系统稳定期间设备数据库被刷新。场景300可以涉及方法200之后的设备状态管理系统112,其中usena变量被设置为0并且useprobe变量被设置为1;即,探测被用于确定设备数据库是否是最新的。在场景300中,设备状态管理系统112向打印设备130、142和310发送探测。在场景300中,到打印设备130的探测返回与存储在设备数据库中的信息一致的信息,并且因此设备数据库中的用于打印设备130的条目被标记为已确认。发送到打印设备142的探测返回与设备数据库不一致的信息,并且因此设备数据库中的用于打印设备142的条目被标记为需要检查并且系统不稳定性值si被更新。发送到打印设备310的探测在没有响应的情况下超时,并且因此设备数据库中的用于打印设备310的条目被标记为需要检查并且系统不稳定性值si被更新。在场景300中,系统不稳定性值si超过阈值,并且因此设备状态管理系统112从需要检查或受损的设备数据库获得ip地址,并将返回的ip地址分类为群集。随后,设备状态管理系统112将探测发送到ip地址群集中的设备——发送这些探测包括将探测发送到打印设备140和310。随后,设备状态管理系统112根据探测响应更新设备数据库,并将系统不稳定值si重置为0。场景300涉及设备状态管理系统112执行方法200。在场景300开始之前,usena变量被设置为0,useprobe变量被设置为1,并且列表l被从dhcp服务器144获得。图3a示出了场景300从设备状态管理系统112生成探测320并将其发送到打印设备130开始。打印设备130随后生成探测响应322并将其发送到设备状态管理系统112,其中探测响应322包括ip地址“ip130”、型号名称“name130”和序列号“serno130”。在其它情况下,诸如探测响应322之类的探测响应可以包括关于诸如打印设备130之类的设备的更少、更多和/或不同的信息;例如设备名称,域名(例如完全合格域名(fqdn)),软件、硬件、存储器和/或固件信息,除ip地址之外的其它地址信息(例如但不限于媒体访问控制(mac)和/或以太网地址信息),一个或多个时间戳,哈希总和/奇偶校验信息。在接收到探测响应322后,设备状态管理系统112可以执行框324的过程,以从具有ip地址“ip130”的设备的设备数据库获得条目“entry0”。图3c示出了用于设备数据库的格式114a、114b、114c、114d。示出了格式114a、114b、114c、114d中的每一者,其存储场景300的三个打印设备的三个条目。设备数据库格式114a、114b、114c和114d中的每一个具有:(1)“条目名称”信息,将三个条目命名为“entry0”、“entry1”和“entry2”;(2)相应“ip地址”,“dd_ip130”、“dd_ip142”和“dd_ip310”;(3)每个条目的相应“状态”,“已确认”、“需要检查”和“需要检查”,以及(4)相应“墨粉”值,“xx.x%”、“yy.y%”和“zz.z%”。在一些实施例中,格式114a、114b、114c、114d中的一些或全部可以不包括条目名称和/或用数字、其它字母数字和/或二进制密钥来替换条目名称。打印设备的墨粉值可以是打印设备的示例设备活动水平。打印设备的其它示例设备活动水平包括:从打印设备获得的计数器的值(例如页面计数器)、由打印设备生成的警报的数量和/或类型、这些值的变化率(例如每日墨粉使用率,基于页计数器值的差确定的每周打印的页数)、以及它们的组合。在一些实施例中,可以将这些设备活动水平中的一些或全部存储在设备数据库114中。在图3c的上部示出的设备数据库格式114a还包括每个条目的“设备名称”——条目entry0、entry1和entry2的相应设备名称是“pd130”、“pd142”和“pd310”。在图3c的下部示出的设备数据库格式114d也包括与设备数据库格式114a中所示相同的设备名称。图3c的中上部分示出设备数据库格式114b包括“序列号”和“型号名称”信息以及上述条目名称、ip地址和状态信息。设备数据库格式114b和114c(其在图3c的中下部分中示出)都具有用于相应条目entry0、entry1和entry2的“序列号”信息“xxxxxxxxx”、“yyyyyyyyy”和“zzzzzzzzz”,并且都具有用于相应条目的相应“型号名称”信息“xxx”、“yyy”和“zzz”。设备数据库格式114c还包括用于相应条目entry0、entry1和entry2的“设备名称”信息“xxx-xxxxxxxxx”、“yyyyyyyyyyyy”和“zzz-zzzzzzzzz”——即,设备数据库格式114c中的设备名称是相应型号名称、“-”字符、和相应序列号的串联。这样,在其它情况下,设备数据库格式114c中使用的序列号和型号名称信息或设备名称信息可以作为冗余来移除。除114a-114d之外的其它设备数据库格式也是可能的;例如,格式114a可以将型号名称与设备名称一起存储或使用型号名称替代设备名称来存储。在场景300中,设备数据库114使用设备数据库格式114d。返回到图3a的框324,由于entry0在设备数据库114中作为ip地址“ip130”的匹配被找到,因此ip地址“ip130”与存储在用于entry0的设备数据库中的ip地址“dd_ip130”匹配。在场景300中,设备数据库114存储具有序列号“xxxxxxxxx”和型号名称“xxx”的entry0。设备状态管理系统112从设备数据库114中取回“xxxxxxxxx”序列号作为变量“dd_name130”,并且取回“xxx”型号名称作为变量“dd_serno130”。在框326处,设备状态管理系统112将来自探测响应322的ip130、name130和serno130信息与来自设备数据库114的相应信息dd_ip130、dd_name130和dd_serno130信息进行比较,并确定探测响应信息与打印设备130/entry0的设备数据库信息相匹配。随后,设备状态管理系统112将设备数据库114的entry0标记为“已确认”,如图3c所示。图3a示出了场景300继续,设备状态管理系统112生成探测330并将其发送到打印设备142。打印设备142随后生成探测响应332并将其发送到设备状态管理系统112,其中探测响应332包括ip地址“ip142”、型号名称“name142”和序列号“serno142”。一旦接收到探测响应332,设备状态管理系统112就可以执行框334的过程以从具有ip地址“ip142”的设备的设备数据库114获得条目“entry1”。在场景300中,设备数据库114的entry1包括序列号“yyyyyyyyy”和型号名称“yyy”。设备状态管理系统112将来自设备数据库114的“yyyyyyyyy”序列号存储在变量“dd_name142”中,并将“yyy”型号名称存储在变量“dd_serno142”中。在框336处,设备状态管理系统112将来自探测响应332的ip142、name142和serno142信息与来自设备数据库114的相应信息dd_ip142、dd_name142和dd_serno142信息进行比较,并确定探测响应信息与打印设备132/entry1的设备数据库信息不匹配。随后,设备状态管理系统112将设备数据库114的entry1标记为“需要检查”,如图3c所示。作为框336的过程的一部分,设备状态管理系统112随后更新系统不稳定性值si以指示打印网络更不稳定,因为打印设备142的探测响应332中接收的数据与存储在设备数据库114中的数据不一致。在场景300中,计数丢失的打印机,因此方法200的userate变量被设置为0,并且countthreshold变量被设置为1。随后,设备状态管理系统112通过将si递增至等于1来更新系统不稳定性值si。场景300继续,设备状态管理系统112生成探测340并将其发送到打印设备310。在场景300中,当探测340被发送时打印设备310断电,并且打印设备310不响应探测340。在框342处,设备状态管理系统112超时等待对探测340的响应。在框344处,根据方法200,用于打印设备310的设备数据库114中的条目entry2被标记为“需要检查”,如图3c所示。作为框344的过程的一部分,设备状态管理系统112随后更新系统不稳定性值si以指示打印网络更不稳定,因为没有接收到打印设备310的探测响应。在场景300的这个阶段,设备状态管理系统112通过将si递增至等于2来更新系统不稳定性值si。转到图3b,在框350处,设备状态管理系统112确定系统不稳定性值si(2)超过threshold值(1)。在框352处,设备状态管理系统112向设备数据库114查询需要检查或受损的条目;即其状态字段等于“需要检查”或“受损”的条目。作为此查询的结果,至少从设备数据库114中取回条目entry1和entry2。从取回的条目中,设备状态管理系统112选择存储在条目的ip地址字段中的ip地址以形成ip地址列表“ip_check”。因此,ip_check包括ip地址dd_ip142和dd_ip310。在框354处,设备状态管理系统112从在框352处生成的ip_check列表中生成ip地址的n个群集c1,c2...cn,n>0。群集可以使用矢量量化技术来生成,例如自然断点技术,如至少在以下图5a和图5b中更详细地讨论的那样。在框356处,设备状态管理系统112选择群集c1来发送探测,并发送探测到群集c1中的从中间向外的ip地址。例如,让群集c1包括ip地址范围[ip_low,ip_high],ip_high>ip_low。随后,设备状态管理系统112可以确定在该范围内的中点地址ip_mid=(ip_low+ip_high)/2。随后,为了从群集c1的中间发送探测,设备状态管理系统112可以按如下发送探测到ip地址:发送第一个探测到中间地址ip_mid,发送第二个探测到ip地址ip_mid+1(或ip_mid-1),发送第三个探测到ip地址ip_mid-1(或ip_mid+1),发送第四个探测到ip地址ip_mid+2(或ip_mid-2),发送第五个探测到ip地址ip_mid-2(或ip_mid+2),直到最后发送探测到ip地址ip_high和ip_low(反之亦然)。作为将探测发送到群集c1中的ip地址的一部分,设备状态管理系统112生成探测消息360并将其发送到打印设备310。作为响应,打印设备310生成探测响应362并将其发送到设备状态管理系统112。探测响应362包括ip地址“ip310”、型号名称“name310”和序列号“serno310”。在框370处,设备状态管理系统112利用来自探测响应362的数据(例如ip地址ip310、型号名称name310和序列号serno310)来更新用于打印设备310的设备数据库114的条目entry2。换言之,设备状态管理系统112将以下各项写入设备数据库114中:将值ip310写入条目entry2的ip地址字段中,将name310写入条目entry2的型号名称字段中并且将值serno310写入条目entry2的序列号字段中。在一些示例中,设备状态管理系统112可以用“已确认”(或类似的)值在设备数据库114中写入条目entry2的状态字段。场景300继续,设备状态管理系统112完成发送探测到群集c1。在框372处,设备状态管理系统112选择群集c2来发送探测,并发送探测到群集c2中的从中间向外的ip地址。上面关于框356讨论了发送探测到群集中的从中间向外的ip地址的过程。在框374处,设备状态管理系统112选择群集cn来发送探测并且发送探测到群集cn中的从中间向外的ip地址。上面关于框356讨论了发送探测到群集中的从中间向外的ip地址的过程。作为将探测发送到群集cn中的ip地址的一部分,设备状态管理系统112生成探测消息380并将其发送到打印设备142。作为响应,打印设备142生成探测响应382并将其发送到设备状态管理系统112。探测响应382包括ip地址“ip142”、型号名称“name142”和序列号“serno142”。在框390处,设备状态管理系统112利用来自探测响应382的数据(例如ip地址ip142、型号名称name142和序列号serno142)来更新设备数据库114的条目entry1以用于打印设备140。换言之,设备状态管理系统112将以下各项写入设备数据库114:将值ip142写入条目entry1的ip地址字段中,将值name142写入条目entry2的型号名称字段中并且将值serno142写入条目entry1的序列号字段中。在一些示例中,设备状态管理系统112可以用“已确认”(或类似的)值在设备数据库114中写入条目entry1的状态字段。场景300继续,设备状态管理系统112完成发送探测到群集cn。由于群集cn是在框354处生成的群集中的最后群集,因此可以完成在si被确定为大于threshold之后在框350处开始的发现过程,并且因此系统不稳定性值si可以被设置为0。在完成框390的过程,可以完成场景300。图4a、图4b、图4c和图4d示出根据示例实施例的设备数据库中的数据被刷新的场景400。在场景400中,除了格式114a中使用的墨粉值被页面计数值替代之外,在此描述的预防性系统维护发现方法被用于刷新设备数据库114中的数据,该设备数据库114利用与格式114a相似的设备数据库格式。在相关方法200的上下文中,usena变量被设置为1,并且useprobe变量被设置为0。设备数据库114存储关于类似于打印网络100的打印系统的数据,即三个打印设备:打印设备142、打印设备410和打印设备420。在场景400开始时的设备数据库114的内容示出在图4b中。场景400开始于设备状态管理系统112从dhcp服务器144请求ip地址,ip地址从dhcp服务器144作为列表“iplist”提供给设备状态管理系统112。在接收到iplist之后,设备状态管理系统112将iplist集成到设备数据库114中。作为将iplist集成到设备数据库114中的一部分,设备状态管理系统112添加针对尚未存在于设备数据库114中的三个ip地址的新条目并基于iplist更新现有条目的状态信息。图4a示出了场景400从设备状态管理系统112生成getipaddresses消息430并向dhcp服务器144发送getipaddresses消息430开始。响应于getipaddresses消息430,dhcp服务器144生成ipadresses消息432并发送具有ip地址列表“iplist”(其对于dhcp服务器144是已知的)的ipadresses消息432。一旦接收到ipadresses消息432,设备状态管理系统112就执行框440的过程,以将iplist集成到设备数据库114中。为了将iplist集成到设备数据库114中,设备状态管理系统112可以用iplist中的每个ip地址来查询设备数据库114以确定在设备数据库114中是否存在针对查询的ip地址的条目。如果存在这样的条目,则可以认为该条目是已确认的。否则,因为不存在针对所查询的ip地址的条目,所以设备状态管理系统112可以将条目添加到设备数据库114以用于所查询的ip地址。图4b示出了在集成iplist之前的设备数据库114的内容。具体地,设备数据库114包括存储相应ip地址“dd_ip130”、“dd_ip142”和“dd_ip310”,相应设备名称“pd130”、“pd142”和“pd130”,相应状态“需要检查”、“需要检查”和“需要检查”,以及相应“页面计数”值“aaa”、“bbb”和“ccc”的三个条目“entry1”、“entry2”和“entry3”。图4c示出在ipadresses消息432中作为iplist434被返回的iplist的内容。iplist434包括四个ip地址:作为打印设备310的ip地址的“iplist1_add0”,作为打印设备的ip地址的“iplist1_add1”142,作为设备410的ip地址的“iplist1_add2”,以及作为设备420的ip地址的“iplist1_add3”。在场景400中,设备410是非打印设备,并且设备420是打印设备,如iplist1_add3ip地址的“针对设备420/pd420”注释所示。请注意,图4c中所示的括号注释不是ipadresses消息432中提供的iplist434的一部分;相反,这些在图4c中提供的注释仅用于说明的目的。在一些示例中,iplist434可以具有ipv4格式的实际ip地址,其具有如下表1中所示的值:iplist434中的ip地址名实际ip地址iplist1_add010.10.100.34iplist1_add110.10.100.37iplist1_add210.10.100.44iplist1_add310.10.120.119表1在其它示例中,iplist434可以具有ipv6中的实际ip地址或者可能具有其它格式。返回图4a,设备状态管理系统112从iplist向设备数据库查询iplist1_add0并且找到具有等于iplist1_add0的ip地址dd_ip310的条目entry3。由于设备数据库114具有对应于来自iplist的iplist1_add0的entry3,设备状态管理系统112将entry3的状态标记为“已确认”。在框442处,设备状态管理系统112将三个新条目添加到设备数据库114。更具体地,设备状态管理系统112向设备数据库114查询来自iplist的iplist1_add1,并且没有找到针对iplist1_add1的特定条目。在场景400中,来自iplist的iplist1_add1和设备数据库114中的entry2都与打印设备142相关联,但是iplist1_add1不同于与设备数据库114的entry2一起存储的dd_ip142。因此,设备数据库114中对iplist1_add1的查询失败。由于设备数据库114不具有与来自iplist的iplist1_add1相对应的条目,所以设备状态管理系统112将条目“entry4a”添加到具有ip地址iplist1_add1和状态“需要检查”的设备数据库114中,并且将设备名称和页面计数字段设置为图4c中表示为“----”的默认值。随后,设备状态管理系统112向设备数据库114查询来自iplist的iplist1_add2,并且没有找到针对iplist1_add2的特定条目。在场景400中,iplist1_add2和关联的设备410都不由设备数据库114中的数据表示。因此,设备数据库114中对iplist1_add2的查询失败。由于设备数据库114不具有与来自iplist的iplist1_add2相对应的条目,所以设备状态管理系统112将条目“entry5a”添加到具有ip地址iplist1_add2和状态“需要检查”的设备数据库114中,并且将设备名称页面计数字段设置为默认值。另外,设备状态管理系统112向设备数据库114查询来自iplist的iplist1_add3,并且没有找到针对iplist1_add3的特定条目。在场景400中,iplist1_add3和关联的设备420都不由设备数据库114中的数据表示。因此,设备数据库114中对iplist1_add3的查询失败。由于设备数据库114不具有与来自iplist的iplist1_add3相对应的条目,所以设备状态管理系统112将条目“entry6a”添加到具有ip地址iplist1_add3和状态“需要检查”的设备数据库114中,并且将设备名称和页面计数字段设置为默认值。图4c示出了在entry6a被添加之后的设备数据库114——设备数据库114中的六个条目中的五个具有“需要检查”的状态。在一些情况下,由于设备数据库114中的数据的六分之五被标记为需要检查,设备数据库114在场景400的这个阶段可以被认为是不稳定的。在图44的框444处,可以确定iplist中没有ip地址对应于作为entry1的ip地址的dd_ip130,并且因此entry1的状态可以保持为“需要检查”。完成框444的过程后,场景400可以被完成。图4e、图4f、图4g和图4h根据示例实施例示出了其中设备数据库中的数据被刷新的场景400a。在场景400a中,除了格式114a中使用的墨粉值被页面计数值替代之外,使用在此描述的情境系统稳定性发现方法来刷新设备数据库114中的数据,该设备数据库114利用与格式114a类似的设备数据库格式。在相关方法200的上下文中,usena变量被设置为0,并且useprobe变量被设置为1。场景400a类似于场景400,因为最初设备数据库114在两种场景中都具有相同的数据。而且,由dhcp服务器144提供的iplist数据在两种情况下都是相同的。然而如上所述,在场景400中使用预防性系统维护发现方法来将来自iplist的数据集成到设备数据库114中,而场景400a中使用情境系统稳定性发现方法来将来自iplist的数据集成到设备数据库114中。在场景400a开始时,设备数据库114存储关于类似于打印网络100的打印系统的相同数据,即三个打印设备:打印设备142、打印设备410和打印设备420,如上文在场景400的上下文中所讨论的。场景400a开始处的设备数据库114的内容在图4f中示出(其与图4b中所示的相同)。场景400a以设备状态管理系统112从dhcp服务器144请求ip地址开始,ip地址从dhcp服务器144作为列表“iplist”被提供给设备状态管理系统112。在接收到iplist之后,设备状态管理系统112将iplist集成到设备数据库114中。作为将iplist集成到设备数据库114中的一部分,设备状态管理系统112添加针对尚未存在于设备数据库114中的三个ip地址的新条目,并基于iplist更新用于现有条目的信息并发送探测消息以确认设备数据库114中的数据。图4e示出了场景400a从设备状态管理系统112生成getipaddresses消息450并向dhcp服务器144发送getipaddresses消息450开始。响应于getipaddresses消息450,dhcp服务器144生成ipaddresses消息452并发送具有ip地址列表“iplist”(其对于dhcp服务器144是已知的)的ipaddresses消息452。一旦接收到ipaddresses址消息452,设备状态管理系统112就执行框456、464、466、472、474、484和490的过程以将iplist集成到设备数据库114中。作为将iplist集成到设备数据库114中的一部分,设备状态管理系统112可以使用iplist中的每个ip地址查询设备数据库114,以确定设备数据库114中是否存在针对查询的ip地址的条目。如果存在这样的条目,则可以认为该条目是已确认的。否则,因为不存在针对所查询的ip地址的条目,所以设备状态管理系统112可以将条目添加到设备数据库114以用于所查询的ip地址。图4f示出了在集成iplist之前的设备数据库114的内容。具体地,设备数据库114包括存储相应ip地址“dd_ip130”、“dd_ip142”和“dd_ip310”,相应设备名称“pd130”、“pd142”和“pd130”,相应状态“需要检查”、“需要检查”和“需要检查”以及相应“页面计数”值“aaa”、“bbb”和“ccc”的三个条目“entry1”、“entry2”和“entry3”。图4g示出了作为iplist434在ipaddresses消息452中被返回的iplist的内容,如上文在图4c的iplist434的上下文中讨论的相同数据被作为ipaddresses消息452的“iplist”提供。在图4c的iplist434的上下文中提供关于图4g的iplist434的更多信息,包括表1。返回到图4e,在框456处,设备状态管理系统112向设备数据库查询来自iplist的iplist1_add0,并且找到具有等于iplist1_add0的ip地址dd_ip310的条目entry3。由于设备数据库114具有对应于来自iplist的iplist1_add0的entry3,设备状态管理系统112将entry3的状态标记为“已确认”。还在框456处,设备状态管理系统112将三个新条目添加到设备数据库114。更具体地,设备状态管理系统112向设备数据库114查询来自iplist的iplist1_add1,并且没有找到针对iplist1_add1的特定条目。在场景400a中,来自iplist的iplist1_add1和设备数据库114中的entry2都与打印设备142相关联,但iplist1_add1不同于与设备数据库114的entry2一起存储的dd_ip142。因此,设备数据库114中对iplist1_add1的查询失败。由于设备数据库114不具有与来自iplist的iplist1_add1相对应的条目,所以设备状态管理系统112将具有ip地址iplist1_add1和状态“需要检查”的条目“entry4”添加到设备数据库114,并且将设备名称和页面计数字段设置为在图4c中被表示为“----”的默认值。随后,设备状态管理系统112向设备数据库114查询来自iplist的iplist1_add2,并且没有找到针对iplist1_add2的特定条目。在场景400中,iplist1_add2和关联的设备410都不由设备数据库114中的数据表示。因此,设备数据库114中对iplist1_add2的查询失败。由于设备数据库114不具有与来自iplist的iplist1_add2相对应的条目,所以设备状态管理系统112将具有ip地址iplist1_add2和状态“需要检查”的条目“entry5”添加到设备数据库114中,并且将设备名称和页面计数字段设置为默认值。另外,设备状态管理系统112向设备数据库114查询来自iplist的iplist1_add3,并且没有找到针对iplist1_add3的特定条目。在场景400中,iplist1_add3和关联的设备420都不由设备数据库114中的数据表示。因此,设备数据库114中对iplist1_add3的查询失败。由于设备数据库114不具有与来自iplist的iplist1_add3相对应的条目,所以设备状态管理系统112将具有ip地址iplist1_add3和状态“需要检查”的条目“entry6”添加到设备数据库114中,并且将设备名称和页面计数字段设置为默认值。在完成将entry6添加到设备数据库114之后,设备状态管理系统112探测iplist中的设备。更具体地,设备状态管理系统112生成探测消息460并将其发送到作为打印设备142的ip地址的ip地址iplist1_add1。响应于接收到探测消息460,打印设备142生成探测响应462并将其发送到设备状态管理系统112,探测响应462包括作为打印设备142的ip地址的“ip142”(其等于iplist1_add1)、作为打印设备142的设备名称的“name142”和作为打印设备142的页面计数值的“pc142”。在其它情况下,探测响应可以包括关于打印设备的附加和/或不同的数据,例如但不限于打印设备的序列号和打印设备的型号名称/编号。在框464处,设备状态管理系统112检查探测响应462,并且在设备数据库中查询设备名称等于被提供为“name142”的设备名称的设备。在场景400a中,由“name142”提供的设备名称的值是“pd142”,由“pc142”提供的值是“bbb”。在查询设备数据库114中的“pd142”时,设备数据库114返回entry2以用于打印设备142。随后,设备状态管理系统112通过基于探测响应462中的数据将状态字段标记为“已确认”来更新entry2。在框466处,设备状态管理系统112更新设备数据库112的entry4,该entry4是针对iplist的ip地址iplist1_add1添加的条目,具有来自探测响应462的设备名称值“pd142”和页计数值“bbb”。随后,设备状态管理系统112通过基于探测响应462中的数据将状态字段标记为“已确认”来更新entry4。场景400a继续,设备状态管理系统112继续探测iplist中的设备。更具体地,设备状态管理系统112生成探测消息470并将其发送到ip地址iplist1_add2,ip地址iplist1_add2是设备410的ip地址。在场景400a中,设备410由于探测470在框472处超时而不响应探测470,如图4e所示。在框474处,设备状态管理系统112通过从设备数据库114中删除针对来自iplist的ip地址iplist1_add2而添加的entry5来对探测470超时作出响应。图4h示出了包括“删除”状态的entry5的数据。在其它情况下,entry5可以从设备数据库114中移除。场景400a继续,设备状态管理系统112继续探测iplist中的设备。更具体地,设备状态管理系统112生成探测消息480并将其发送到作为设备420的ip地址的ip地址iplist1_add3。响应于接收到探测消息480,设备420生成探测响应482并将其发送到设备状态管理系统112。探测响应482包括作为设备420的ip地址的“iplist1_add3”、作为打印设备142的设备名称的“name142”、以及作为设备420的页面计数值的“pc420”。利用探测响应482中的数据(例如设备名称和页面计数数据),设备状态管理系统112可以确定设备420是打印设备。在场景400a中,由“name420”提供的设备名称的值是“pd420”,由“pc420”提供的值是“ddd”。在框484处,设备状态管理系统112向设备数据库114查询设备名称“pd420”,并且该查询失败,这指示打印设备420是由探测480和探测响应482发现的先前未知的打印设备。随后,设备状态管理系统112使用来自探测响应482的设备名称值“pd420”和页面计数值“ddd”来更新设备数据库112的entry6(其是针对iplist的ip地址iplist1_add3添加的条目)。设备状态管理系统112也可以通过将状态字段标记为“已确认”来更新entry6。在框490处,设备状态管理系统112确定在设备数据库114的entry1中其设备名称为“pd130”的打印设备未由iplist中的ip地址表示。因此,entry1对应于已丢失的设备;例如从打印网络中移除和/或具有关于设备改变以将存储在entry1中的数据呈现为过时的足够数据。随后,设备状态管理系统112可以将设备数据库114的entry1的状态标记为“丢失”,如图4h所示。在其它情况下,设备状态管理系统112可以删除与丢失的设备对应的设备数据库114的条目。在其它情况下,可能会认为丢失的设备会损害打印网络的状态。图4h示出了在场景400结束时设备数据库114中的数据。在场景400a结束时,五个未删除条目中只有一个条目是未确认的。在一些情况下,由于设备数据库114中的数据的1/5被标记为丢失,并且数据的4/5是已确认的,所以可以认为设备数据库114在场景400的这个阶段是稳定的。图5a是根据示例实施例的用于稳定打印系统的方法500的流程图。在一些示例中,可以使用方法500来执行上文在图2b的上下文中讨论的方法200的框292的功能。即可以调用方法500以使用发送到ip地址的一个或多个群集内的ip地址的探测来稳定系统和/或刷新设备数据库。与方法200一样,方法500可以由诸如设备状态管理系统112的设备状态管理系统执行。设备状态管理系统可以是或可以包括由计算设备(例如,上文在图1a的上下文中讨论的计算设备110和/或在图1b的上下文中讨论的计算设备160)执行的软件。方法500可以在框510处开始,其中设备状态管理系统可以确定打印系统需要稳定。例如,如果方法200的系统不稳定性值si超过阈值threshold,则设备状态管理系统可以确定系统需要稳定。在框512处,在确定打印系统需要稳定之后,设备状态管理系统可以确定丢失和/或受损的设备的ip地址列表ip_lost。例如,使用如图4h所示的示例数据,设备状态管理系统可以查询设备数据库以取回状态值为“丢失”、“受损”或“需要检查”的数据库中的条目的所有ip地址——在图4h示出的示例中,这样的查询将返回一个ip地址“dd_ip130”作为ip_lost列表。在另一示例中,使用如图4d所示的示例数据,设备状态管理系统可以查询设备数据库以取回数据库中状态值为“丢失”、“受损”或“需要检查”的条目的所有ip地址。在图4d的示例中,这样的查询将五个ip地址的列表作为ip_lost列表返回:“dd_ip130”、“dd_ip142”、“iplist1_add1”、“iplist1_add2”和“iplist1_add3”。其它示例查询和查询响应也是可能的。在框520处,设备状态管理系统可以确定n个群集,其中n>0,图5a示出为ip_lost列表的ip地址的群集“c1,c2...cn”。为了确定群集c1,c2...cn,可以使用矢量量化算法,例如k-均值或自然断点算法。k均值算法可以涉及选择表示群集的数目的值k,k>0;即在这个示例中,k=n。随后,ip地址的每个群集由群集的均值(平均值)表示。例如,假设ip地址的范围r1在10.100.0.0到10.100.0.255范围内,则总共有256个不同的ip地址,并且k=n=2。随后,第一群集c1可以用初始均值10.100.0.64表示r1中第一128个地址,第二群集c2可以用初始均值10.100.0.192表示r1中的第二128个地址。为n个群集分配初始均值的另一种技术是选择要分类群集的前n个值,即ip_lost列表中的值,并将前n个值中的每一个分配给c1,c2...cn群集中的一个。用于确定初始均值的其它技术也是可能的。随后,对于ip_lost地址列表中的每个ip地址i_in,k均值算法可以包括首先为i_in选择具有与i_in最接近的均值的群集。例如,如果i_in=10.100.0.22,则为i_in选择具有均值10.100.0.64的群集c1,因为10.100.0.64比10.100.0.192(群集c2的均值)更接近10.100.0.22。随后,将i_in添加到所选群集中,并重新计算所选群集中值的均值-即,将i_in添加到群集c1后,新均值可以确定为i_in的值,即10.100.0.22。随后,假设ip_list有第二个ip地址,要添加到群集c1的10.100.0.6。在将10.100.0.6添加到c1后,c1的均值可以被更新为(10.100.0.22+0.100.0.6)/2=10.100.0.14。在ip_lost地址列表中的所有地址都被添加到n个群集之后,可以完成k均值算法。自然断点算法基于找到数据集中的固有群集,例如ip_lost地址列表。这种固有群集可以基于具有相似值的群集并且在群集之间具有相对较大差。自然断点算法的一个示例是针对单变量(一个变量)数据(例如ip_list中的ip地址)的jenks优化。jenks优化涉及首次尝试将数据分类为n个群集。这第一次尝试可以是任意群集。例如,假设ip_list在列表中具有nip值,因此群集c1可以是ip_list中的第一nip/n个值,群集c2可以是ip_list中的第二nip/n个值,依此类推,直到确定群集cn为ip_list中的最后的nip/n个值。在(初始)群集确定之后,jenks优化是对数据群集进行操作的迭代过程。换言之,必须使用不同的群集选择重复计算,以确定哪一组群集具有最小的类别方差。对于jenks优化的每次迭代,设备状态管理系统可以:1.通过以下操作来计算与阵列(群集)均值的偏差的平方和sdam:确定每个群集的均值,确定群集均值的均值cmean,并且取每个群集均值和cmean值之间的差的平方和;2.通过以下操作来计算群集之间的偏差的平方和sdbc:针对每个群集c_i,确定每个群集均值和群集中的每个值之间的差的平方和sd_i,随后让sdbc等于所有n个群集的各sd_i值之和;3.从sdam中减去sdbc(sdam-sdbc)。这等于与分类均值的偏差的的平方和(sdcm);以及4.将来自具有最大c_i值的群集中的一个ip地址移至具有最小c_i值的群集中。作为迭代处理的替代方案,可以检查所有可能的群集组合,针对每个组合计算sdcm,以及选择具有最低sdcm的组合。由于所有的中断组合都被检查,所以这保证了找到具有最低sdcm的组合。此外,可以计算gvf统计量(方差拟合优度)。gvf被定义为(sdam-sdcm)/sdam。gvf范围从0(最差拟合)到1(完美拟合)。其它分类群集技术也是可能的。同样在框520处,设备状态管理系统可以将群集索引值cl初始化为等于1。框530至框564旨在针对每个群集c1,c2...cn而执行。在框530处,设备状态管理系统可以确定群集索引值cl是否大于作为群集总数的n。如果cl大于n,则设备状态管理系统可以前进到框570。否则,cl小于或等于n,并且设备状态管理系统可以前进到框540。在框540处,设备状态管理系统可以确定群集cl的一个或多个特征ch1。特征ch1可以包括但不限于用于群集cl的地址ar的范围,群集cl中的丢失的设备、受损的设备和/或需要检查的设备的数量,关于群集cl的历史信息(例如,关于具有丢失/受损设备的地址的先前计数、已经丢失/受损设备的群集cl中的特定地址等的信息)、群集cl的活动时间at、以及群集cl的地址密度ad。群集cl的活动时间at可以被确定为群集cl的地址范围内的一个或多个设备已经丢失、受损和/或需要检查的时间量。例如,可以基于下述项来确定活动时间at:从群集内的设备已经被确定丢失、受损和/或需要检查起的最长时间,群集内的所有设备已经被确定为丢失、受损的和/或需要的检查的平均时间,或者表示自群集内的一个或多个设备已被标记为丢失、受损和/或需要检查起的时间量的一些其它值。群集c的地址密度ad可以被确定如下:ad=nlf/nac,其中:nlf=群集c中的丢失/受损设备的数量,以及nac=群集中的地址的数量。nac值可以被确定为:nac=ar_hi-ar_lo+1,其中ar_hi是群集地址范围ar中最高的ip地址,ar_lo是地址范围ar中最低的ip地址,其中ar_hi被假定为大于或等于ar_lo。在框550处,设备状态管理系统可以基于特征ch1确定是否探测群集cl。如果设备状态管理系统确定要探测群集cl,则设备状态管理系统可以前进到框560。否则,设备状态管理系统确定不探测群集cl并且可以前进到框564。一般而言,相较具有相对较大地址范围的群集,具有相对较小地址范围/地址数量的群集更可能被探测到。此外,具有相对较大数量的丢失设备、受损设备和/或需要检查的设备比具有相对较少数量的丢失/受损设备的群集更有可能被探测到。因此,具有相对较高地址密度ad值的群集比具有相对较低地址密度ad值的群集更有可能被探测到,因为具有高ad值的群集每个群集地址具有相对大数量的丢失/受损设备。进一步地,(由于具有相对陈旧的信息)具有相对较高活动时间at值的群集比具有相对较低的活动时间at值的群集更可能被探测到。图5b示出根据示例实施例的与打印系统的丢失和/或受损的打印设备的地址群集相关的直方图590以及用于地址群集的探测决策592。在图5b所示的示例中,已经确定了五个群集(n=5)的ip地址范围。直方图590示出沿着x轴增加的地址值以及沿着y轴的地址范围内的丢失和/或受损设备的数量-直方图590中的较高(或较短)柱表示在由该柱表示的ip地址范围的特定部分内的较大(或较小)数量的丢失和/或受损设备。基于针对图5b中所示的五个群集(群集a、b、c、d和e)中的每一个确定的特征cl1,可以在框550处确定探测决策并且在框560处对其进行细化。在框550处进行的探测决策可以是确定是否探测群集的任何部分。例如,群集a在地址范围方面是相对较大的群集,但与其它群集(如群集d)相比,丢失/受损设备的数量相对较少。因此,基于大地址范围和可能的小数目的丢失/受损设备,群集a的探测决策是不探测群集。这样,方法500的框560和562将不会针对群集a执行。基于群集c的地址密度ad的类似计算可以被确定。返回图5a,在框560处,设备状态管理系统可以利用群集cl确定一个或多个探测范围。框560涉及所有被探测的群集不被不加区分地处理的概念。群集的受损严重级别可以基于群集的一个或多个特征ch1而变化。由于这种严重程度的差异,可以根据用于对其进行分类的属性来计算来自群集质心的目标范围或均值。在图5b所示的示例中,探测决策592指示将要探测的直方图590的群集b、d和e,因此方法500的框560和562将针对这些群集执行。对于群集b,在框560处,设备状态管理系统可以确定群集d具有较小的群集范围以及较高数量的群集内丢失/受损设备,并且可以受益于其中群集d中的每个地址都被探测的全发现。然而,对于群集b和群集e,部分发现就可以满足要求。对于群集b,范围的下半部分具有相对大量的丢失/受损设备,因此在框560处,设备状态管理系统可以确定包括群集b的下半部分的探测范围将被探测。类似地,对于群集e,地址范围的下2/3部分具有相对大量的丢失/受损设备,因此设备状态管理系统可以确定包括群集e的下2/3部分的探测范围将被探测。其它探测决策也是可能的。返回图5a,在框562处,设备状态管理系统可以将一个或多个探测消息发送到具有在框560处确定的群集cl的(一个或多个)探测范围的ip地址。在发送(一个或多个)探测消息之后,设备状态管理系统可以等待并且可能接收对探测消息的一个或多个探测响应。在一些示例中,如上文在至少图3b的框356的上下文中所讨论的,可以从中间向外发送探测消息。在接收到探测响应时,设备状态管理系统可以基于探测消息中的数据来更新设备数据库,例如至少在上文中在图3a-图4h的上下文中讨论的。在框564处,设备状态管理系统可以将群集索引值cl递增1。在递增cl之后,设备状态管理系统可以前进到框530。在框570处,设备状态管理系统可以重置系统不稳定性值si;即设置si=0。在完成框570的过程之后,可以完成方法500。iv.示例操作方法图6示出根据示例实施例的方法600的流程图。方法600可以由设备状态管理系统执行。设备状态管理系统可以用计算设备(例如计算设备110和/或计算设备160)可执行的软件来实现。方法600可以在框610处开始,其中设备状态管理系统可以将多个探测消息发送到多个打印设备,例如至少上文在图2a-图3b和图4e-图5a的上下文中讨论的。在框620处,设备状态管理系统可以接收对多个探测消息的多个响应消息,其中多个响应消息的数量小于或等于多个探测消息的数量,例如至少上文在图2a-图3b和图4e-图5a的上下文中讨论的。在框630处,在接收到多个响应消息之后,可基于存储在与设备状态管理系统相关联的设备数据库中的数据来确定未确认的打印设备的数量,例如至少在上文图2a-图3b讨论的。在一些实施例中,与设备状态管理系统相关联的设备数据库可以为一个或多个打印设备中的特定打印设备存储下述项:特定打印设备的序列号;特定打印设备的型号名称;以及用于特定打印设备的网络地址,例如至少在图2a-图3c所示的上下文中讨论的。特别地在这些实施例中,与设备状态管理系统相关联的设备数据库还可以针对特定打印设备存储特定打印设备的设备活动水平,例如至少上文在图2a-图3c的上下文中讨论的。在框640处,设备状态管理系统可以确定与未确认的打印设备的数量相关联的系统不稳定性值,例如至少在上文在图2a-图3b的上下文中讨论的。在一些实施例中,确定与未确认的打印设备的数量相关联的系统不稳定性值可以包括:确定与特定打印设备相关联的多个响应消息中的特定响应消息;确定特定响应消息中的响应消息序列号是否不同于来自设备数据库的特定打印设备的序列号;以及在确定特定响应消息中的响应消息序列号与来自设备数据库的特定打印设备的序列号不同之后,增加系统不稳定性值,例如至少上文在图2a-图3b的上下文中讨论的。在框650处,设备状态管理系统可以使用设备状态管理系统来确定与未确认的打印设备的数量相关联的系统不稳定性值是否超过阈值系统不稳定性值,例如至少上文在图2a-图3b的上下文中讨论的。在一些实施例中,与未确认的打印设备的数量相关联的系统不稳定性值可以包括未确认的打印设备的数量,并且阈值系统不稳定性值可以包括未确认的打印设备的阈值数量,例如至少上文在图2a-图3b的上下文中讨论的。在框660处,在确定系统不稳定性值超过阈值系统不稳定性值之后,设备状态管理系统可以:确定与未确认的打印设备相关联的一个或多个地址群集,每个地址群集包括与一个或多个打印设备相关联的一个或多个地址;向一个或多个地址群集中的至少一个内的一个或多个地址发送一个或多个探测消息;接收对一个或多个探测消息的一个或多个响应;并且使用在一个或多个响应中接收到的数据来更新设备数据库,例如至少上文在图2a-图3b、图5a和图5b的上下文中讨论的。在一些实施例中,确定与未确认的打印设备相关联的一个或多个地址群集可以包括使用矢量量化技术来确定与未确认的打印设备相关联的一个或多个地址群集,例如至少上文在图5a和图5b的上下文中讨论的。在其它实施例中,确定与未确认的打印设备相关联的一个或多个地址群集可以包括使用自然断点技术来确定与未确认的打印设备相关联的一个或多个地址群集,例如至少上文在图5a和图5b的上下文中讨论的。在其它实施例中,将一个或多个探测消息发送到一个或多个地址群集中的至少一个地址群集内的一个或多个地址可以包括:基于其地址在第一群集内的未确认的打印设备的数量来选择一个或多个地址群集中的第一群集;以及将一个或多个探测消息发送到第一群集内的一个或多个地址,例如至少上文在图2b、图3a、图3b、图5a和图5b的上下文中讨论的。在这些实施例中的一些中,选择一个或多个地址群集中的第一群集可以包括基于其地址在第一群集内的未确认打印设备的密度来选择第一群集;其中其地址在第一群集内的未确认的打印设备的密度基于其地址在第一群集内的未确认的打印设备的数量,例如至少在上文在图5a和图5b的上下文中讨论的。在其它实施例中,将一个或多个探测消息发送到一个或多个地址群集中的至少一个内的一个或多个地址可包括:确定在一个或多个地址群集中的至少一个内的一个或多个地址的中点地址;以及将一个或多个探测消息发送到以中点地址开始的一个或多个地址,例如至少上文在图3a和图3b的上下文中讨论的。具体地,在这些实施例中,将一个或多个探测消息发送到以中点地址开始的一个或多个地址可以包括以某顺序将一个或多个探测消息发送到以中点地址开始的一个或多个地址,该顺序包括:将探测消息发送到中点地址,随后将探测消息发送到与中点地址相邻的地址,例如至少在上文在图3a和图3b的上下文中讨论的。在更具体的这些实施例中,与中点地址相邻的地址可以是以下各项中的一个:紧接在中点地址之后的地址和紧接在中点地址之前的地址,例如至少上文在图3a和图3b的上下文中所讨论的。在一些实施例中,方法600还可以包括:从设备状态管理系统发送地址请求消息;响应于地址请求消息,接收与多个打印设备相关联的一个或多个网络地址;以及基于接收到的一个或多个网络地址来更新设备数据库,例如至少上文在图2a-图4h的上下文中讨论的。在这些实施例中的一些中,从设备状态管理系统发送地址请求消息可以包括从设备状态管理系统向动态主机配置协议(dhcp)服务器发送地址请求消息,诸如至少上文在图2a-图4h的上下文中讨论的。在这些实施例中的其他实施例中,基于存储在与设备状态管理系统相关联的设备数据库中的数据来确定未确认的打印设备的数量包括:确定所接收的一个或多个网络地址的特定网络地址;确定设备数据库是否未存储与特定网络地址相关联的数据;以及在确定设备数据库没有存储与特定网络地址相关联的数据之后,增加未确认的打印设备的数量,例如至少上文在图2a-图3b的上下文中讨论的。在其它实施例中,方法600还可以包括:使用设备状态管理系统确定多个打印设备中的每个打印设备的设备活动水平,例如至少上文在图2a和图2b的上下文中讨论的。在这些实施例中的一些中,确定与未确认的打印设备的数量相关联的系统不稳定性值可以包括:基于多个未确认的打印设备的设备活动水平来确定与未确认的打印设备的数量相关联的系统不稳定性值,并且阈值系统不稳定性值可以包括基于设备活动性水平的阈值,例如至少上文在图2a和图2b的上下文中讨论的。在其它实施例中,方法600还可以包括:基于存储在与设备状态管理系统相关联的设备数据库中的数据,生成用于打印设备的可替换供应的订单,例如至少上文在图2a和图2b的上下文中讨论的。详细描述、附图和权利要求书中描述的说明性实施例并不意味着限制。可以在不脱离本文呈现的主题的精神或范围的情况下使用其它实施例并且可以做出其它改变。容易理解,如本文一般描述的和附图中示出的本发明的各方面可以以各种各样的不同配置进行布置、替换、组合、分离和设计,所有这些都在本文中明确地考虑。关于附图中以及如本文所讨论的梯形图、场景和流程图中的任何一个或全部,每个框和/或通信可以表示根据示例实施例的信息处理和/或信息传输。替代实施例被包括在这些示例实施例的范围内。在这些替代实施例中,例如,根据涉及的功能,被描述为块、传输、通信、请求、响应和/或消息的功能可以以与所示出或讨论的不同顺序执行,包括基本同时或相反的顺序。此外,更多或更少的块和/或功能可以与这里讨论的梯形图、场景和流程图中的任何一个一起使用,并且这些梯形图、场景和流程图可以部分或全部地相互组合。表示信息处理的块可对应于可被配置为执行方法或技术的特定逻辑功能的电路。可选地或另外地,表示信息处理的块可对应于模块、段或程序代码的一部分(包括相关数据)。程序代码可以包括处理器可执行的一个或多个指令,用于实现该方法或技术中的特定逻辑功能或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质(例如,包括磁盘或硬盘驱动器或其他存储介质的存储设备)上。计算机可读介质还可以包括非暂态计算机可读介质,例如诸如寄存器存储器、处理器高速缓存和随机存取存储器(ram)之类的短时间存储数据的计算机可读介质。计算机可读介质还可以包括更长时间地存储程序代码和/或数据的非暂态计算机可读介质,例如诸如只读存储器(rom)、光盘或磁盘、压缩盘只读存储器(cd-rom)之类的辅助或持久长期存储装置。计算机可读介质还可以是任何其它易失性或非易失性存储系统。计算机可读介质可以被认为是例如计算机可读存储介质或者有形存储设备。虽然本文已经公开了各个方面和实施例,但是其它方面和实施例对于本领域技术人员而言将是显而易见的。这里公开的各个方面和实施例是用于说明的目的,而不是限制性的,真正的范围由权利要求指出。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1