CN102684905B - 用于创建并使用设备交互树来确定设备状态的设备及方法 - Google Patents

用于创建并使用设备交互树来确定设备状态的设备及方法 Download PDF

Info

Publication number
CN102684905B
CN102684905B CN201210022442.7A CN201210022442A CN102684905B CN 102684905 B CN102684905 B CN 102684905B CN 201210022442 A CN201210022442 A CN 201210022442A CN 102684905 B CN102684905 B CN 102684905B
Authority
CN
China
Prior art keywords
equipment
state
tree
inquiry
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201210022442.7A
Other languages
English (en)
Other versions
CN102684905A (zh
Inventor
戴维·亚瑟·威廉姆斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of CN102684905A publication Critical patent/CN102684905A/zh
Application granted granted Critical
Publication of CN102684905B publication Critical patent/CN102684905B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2205Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
    • G06F11/2221Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested to test input/output devices or peripheral units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2252Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using fault dictionaries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0733Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a data processing system embedded in an image processing device, e.g. printer, facsimile, scanner
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0213Standardised network management protocols, e.g. simple network management protocol [SNMP]

Abstract

本发明公开了用于创建并使用设备交互树来确定设备的状态的方法、设备和非暂时性计算机可读存储介质。设备交互树包括根节点、中间节点和叶节点。所述中间节点指定询问和测试,并且所述叶节点指定设备状态。所给定的设备的状态可以通过从根节点通过一个或多个中间节点到达叶节点遍历设备交互树来确定。在遍历期间,与该树中的当前节点相关联的询问被发送到该给定的设备来获得应答。与该当前节点相关联的测试被使用来对照一个或多个值来对所述应答进行评估。所述测试的结果确定去往该树的叶节点的路径上的下一节点。设备的状态由对该树的遍历所得到的叶节点指定。

Description

用于创建并使用设备交互树来确定设备状态的设备及方法
技术领域
本发明涉及用于与设备交互的设备交互树。
背景技术
大型企业的介质通常具有各种计算机网络,除了个人计算机之外,所述计算机网络还附接有各种设备。当在具有足够的纸张和墨粉来处理到来的请求的情况下,在工作条件下在线维护比如打印机和多功能设备的设备时,企业运转最有效率。具有有限预算和工作人员的信息技术部门通常维护和修复这些设备来将它们保持为可用。例如,当纸张和墨粉量少时,可以通过装满纸张和墨粉来维护比如打印机和多功能设备的设备。作为另一示例,可以通过移除卡纸或关闭处于打开状态的设备盖子,修复所述设备。不能处理请求的设备可能阻碍企业的高效运转,并且对信息技术部门带来不好的影响。
取代对设备进行物理检查,信息技术人员可以使用被设计为通过网络与该设备远程地进行交互的定制管理应用。不同的设备对不同的定制设备管理指令进行应答。由于企业使用的设备的种类多样,信息技术人员不能具有能够与企业所使用的每个设备交互的单个管理应用。另外,即使该管理应用能够通常与所述网络中的每个设备交互,也可能将不支持的设备添加到所述网络中。更新定制的管理应用来应对新设备是令人讨厌的,并且由于定制的管理应用的复杂性导致要求高水平的技能。此外,由于担心安全,更新该定制的管理应用可能要求具有高度特权的用户。即使所述被更新的管理应用来自信任源,该被更新的管理应用中的缺陷(bug)可能对运行该管理应用的机器以及由该管理应用管理的设备具有不可预测的影响。
在该部分中描述的方案是能够实现的方案,但是不必是已经预先设计或实现的方案。因此,除非以其它方式指明,不应该仅仅凭借在该部分中包括有在该部分中描述的方案,而假设将该部分中描述的方案中的任何一个看作现有技术。
发明内容
提供了用于创建并使用设备交互树来确定设备的状态的技术。设备交互树包括根节点、中间节点和叶节点。示例设备交互树包括设备状态确定树、设备配置树、以及设备动作树。所述设备状态确定树的中间节点指定询问和测试,并且所述叶节点指定设备状态。所给定的设备的状态可以通过从根节点通过一个或多个中间节点到达叶节点遍历所述设备状态确定树来确定。在遍历期间,与该树中的当前节点相关联的询问被发送到该给定的设备来获取应答。与该当前节点相关联的测试被使用来对照一个或多个值来对所述应答进行评估。所述测试的结果确定去往该树的叶节点的路径上的下一节点。所述设备的状态由对该树的遍历所得到的叶节点指定。
附图说明
在附图中:
图1A例示了用于监测网络中的多个设备的示例设备监测系统。
图1B例示了用于检测何时将已知类的设备添加到网络中的示例设备监测系统。
图1C例示了用于检测何时将未知类的设备添加到网络中的示例设备监测系统。
图2是一组设备交互树的示例类图。
图3例示了一组用于与设备交互的树中的示例组件。
图4例示了具有三级的示例树。
图5例示了用于确定设备的类别并且选择若干设备交互树中之一的示例设备分类器。
图6例示了用于获取设备的供应商ID的示例树。
图7A例示了用于将设备分类到单个类的示例树。
图7B例示了用于将设备分类到多个类中的一个类的示例树。
图8A例示了询问应答词典的示例结构。
图8B例示了具有8个询问的示例询问应答词典。
图8C例示了具有11个询问的示例询问应答词典,其中11个询问中的4个询问是ID询问。
图9A例示了用于自动更新树来应对新设备的示例过程。
图9B例示了用于手动更新树来应对新设备的示例过程。
图10A例示了从中央服务器接收对树进行更新的实施例。
图10B例示了对树的更新基于用户输入的实施例。
图11是用于例示设备管理应用使用并更新树的实施例的流程图。
图12是用于例示设备管理应用将节点临时添加到树上并且在该节点变为永久性之前允许客户使得该节点变为有效的实施例的流程图。
图13是用于例示设备管理应用基于从中央服务器接收到的询问应答词典更新树的实施例的流程图。
图14a-c是用于例示示例设备交互树的遍历的流程图。
图15例示了用于执行本文中描述的各个实施例的示例计算机系统。
具体实施方式
在下面的描述中,为了说明,阐述了许多具体细节以便提供对本发明的全面理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实现本发明。在其它实例中,公知结构和设备以方框图的形式示出,以便避免对本发明的理解产生不必要的混淆。
总体概述
公开了用于创建并使用设备交互树来确定设备的状态的方法、设备和非暂时性计算机可读存储介质。设备交互树包括根节点、中间节点和叶节点。示例设备交互树包括设备状态确定树、设备配置树和设备动作树。所述设备状态确定树的中间节点指定询问和测试,并且所述叶节点指定设备状态。所给定的设备的状态可以通过从根节点通过一个或多个中间节点到达叶节点遍历所述设备状态确定树来确定。在遍历过程中,与该树中的当前节点相关联的询问被发送到该给定的设备来获得应答。与该当前节点相关联的测试被使用来对照一个或多个值来对所述应答进行评估。所述测试的结果确定去往该树的叶节点的路径上的下一节点。所述设备的状态由对该树的遍历所得到的叶节点指定。
本文中例示了设备状态确定树的各个示例,以提供对示例设备交互树的深入理解。这些示例中的许多示例可以在取代或除了确定设备的状态之外被配置为改变设备上的参数的设备配置树的上下文中应用。例如,设备配置树可以被使用来改变设备的名称。或者,这些示例中的许多示例可以在取代或除了确定设备的状态之外被配置为使得设备执行特定动作的设备动作树的上下文中应用。例如,设备动作树可以被使用来使得设备根据指定的设置来打印文档。
状态确定树
单个状态确定树可以被使用来确定多个设备的状态。所支持的设备可以包括具有不同能力的设备、具有不同配置的设备、来自不同制造商的设备和/或对相同的询问作出不同应答的具有相同状态的设备。所述设备交互树可以在不修改被配置为遍历设备交互树的软件的情况下被创建或修改。在一个实施例中,与安装、编译或以其它方式修改专用的设备管理软件相比,创建、修改、替换和/或测试设备交互树对网络上的设备要求更少的安全特权并具有较少的安全风险。
本文中描述的技术可以应用于任何类型的设备状态。示例设备状态包括但不限于,空闲、睡眠、处理或打印、准备好打印、预热、替换墨粉、调整、终止作业、打开盖子、无墨粉、无定影组件(fuser)或卡纸。设备状态可以描述设备的操作状态。在一个实施例中,操作状态包括当前正由所述设备执行的动作的类型或缺少所述动作。在另一实施例中,操作状态包括正在防止所述设备执行动作的错误。在另一实施例中,设备状态包括设备配置,比如纸张托盘尺寸、3孔穿孔器、2孔穿孔器或订书钉。在另一实施例中,设备状态包括供应状态,比如墨粉的水平(例如,75%)、剩余纸张量(例如,50张纸)或剩余电池量(例如,60%或3小时)。在各个实施例中,可以在相同的树中表示不同类型的状态。例如,单个状态确定树可以提供关于设备的错误、操作状态或配置和/或供应状态的信息。在一个实施例中,设备状态的请求指定所请求的信息的类型。例如,一个请求可以是针对设备的操作状态,以及另一请求可以是用于确定所述设备是否配备有三孔穿孔器。
在一个实施例中,设备管理应用接收针对设备状态的请求。在一个示例中,所述请求利用地址标识设备。所述设备管理应用访问所述状态确定树来选择询问以发送给该地址,并且从该地址处的设备接收应答。所述设备管理应用基于来自设备的应答,通过经由一个或多个中间节点到达叶节点来遍历所述状态确定树,确定所述设备的状态。所述叶节点指示设备状态,并且所述设备管理应用可以响应于针对所述设备状态的请求,使得在用户界面上显示所述设备状态。在遍历树的过程中,所述设备管理应用仅仅使用所述询问,并且应用由所述状态确定树指定的测试。在一个实施例中,所述询问和测试不包括可执行代码自身。因此,一旦所述设备管理应用被配置为遍历比如状态确定树的设备交互树,就可以在不修改所述设备管理应用的代码的情况下,更新所述设备交互树。
在一个实施例中,所述设备管理应用监测网络上的设备,并且响应于检测到所述状态确定树不能提供所述网络中的特定设备的特定状态,更新所述状态确定树。在一个实施例中,从提供已更新的设备交互树的服务器请求所述更新。所述更新可以替换现有的设备交互树,创建新的设备交互树,和/或在不修改所述设备管理应用的代码的情况下添加、移除或修改现有设备交互树的节点。
在一个实施例中,所述设备管理应用基于所接收的与询问和应答信息相关联的状态信息,创建或修改所述状态确定树。在一个实施例中,在发现新的关联性时,从通知所述设备管理应用的服务器接收所述信息。相关联的状态信息、询问信息和应答信息可以被使用来创建新的状态确定树,和/或在不修改所述设备管理应用的代码的情况下添加、移除或修改现有状态确定树的节点。
在另一实施例中,用于创建或修改所述树的信息的一部分或全部可以由用户经由用户界面提供。在一个示例中,用户指示针对所述网络上的特定设备观测到特定状态。与之响应,所述设备管理应用向该特定设备发送特定询问以诱发特定应答。所述特定状态的指示、所述特定询问以及所述特定应答可以被使用来创建新的状态确定树和/或在不修改所述设备管理应用的代码的情况下添加、移除或修改现有状态确定树的节点。
图1A示出了通过网络108与设备110A、110B、110C通信的示例设备监测系统100。例如,设备监测系统100可以包括设备管理应用(未绘出),该设备管理应用使用一个或多个状态确定树来确定网络108中的设备110A、110B、110C的状态。如图所示,设备监测系统100包括可执行代码的函数库106以及指定询问和测试的状态确定树102。函数库106包括相对于设备110A、110B、110C为通用的函数,以及可选地,相对于设备类也为通用的函数。换言之,所述函数在任何状态确定树和任何组的设备信息的情况下工作。在一个实施例中,设备管理应用调用函数库106中的函数来构造、执行或更新状态确定树102。函数库106中的ConstructQTree(构造树)函数构造状态确定树。函数库106中的ExecuteQTree(执行树)函数从状态确定树102中选择用于发送给设备的询问,从所述设备接收结果,对所述结果应用来自状态确定树102的测试,并且确定所述设备的状态。
如图所示,设备监测系统还包括设备信息104,基于所述设备信息104可以构造设备交互树102。设备信息104包括每个设备110A、110B、110C所特有的信息。在设备监测系统100接收到关于设备110A、110B、110C的新信息时,可以利用UpdateQTree(更新树)函数来修改设备交互树102。
询问和应答
设备状态可以基于对所述设备的一序列询问的应答来确定。例如,针对第一询问的第一应答可以提供足够的信息来确定设备所属于的设备类,以及针对第二询问的第二应答可以提供足够的信息来确定所述设备的状态。在另一示例中,在能够确定所述状态之前,需要针对第三询问的第三应答,以及可能需要针对第四询问的第四应答。
本文中描述的技术可以应用于用来从设备取回信息的任何类型的询问。询问的示例类型包括简单网络管理协议(SNMP)询问、打印机作业语言询问、页描述语言(PostScript)询问以及超文本传输协议询问。本文中描述的各种实现可以使用所述示例询问类型中的所有、一个或组合,或者不使用所述示例询问类型。在一个实施例中,状态确定树中的询问和测试不能改变任何设备的状态或配置,或者不能修改所述网络中的任何设备上运行的软件。按照这种方式,即使所述树的源是未知的或者即使所述源的信誉是未知的,对所述状态确定树的更新也可以在没有重大安全风险的情况下测试。
针对各个制造商制造的各种设备,表1示出了对SNMP询问的示例设备应答,包括hr设备描述(hrDeviceDescr)、hr打印机状态(hrPrinterStatus)、hr设备状态(hrDeviceStatus)、hr打印机检测到错误状态(hrPrinterDetectedErrorState)、打印告警代码(prtAlertCode)、打印告警组(prtAlertGroup)、打印告警位置(prtAlertLocation)、打印告警严重等级(prtAlertSeverityLevel)、以及打印告警训练等级(prtAlertTrainingLevel)。所有打印机处于空闲或睡眠状态,三个正在报告低墨粉条件(三星770、OKIMC360以及理光Aficio C420)。表1包括在附录A中。
如表所示,互联网协议(IP)地址172.30.4.55处的设备利用“HP激光打印机P4014”对hr设备描述(hrDeviceDescr)询问进行应答,利用“空闲”对hr打印机状态(hrPrinterStatus)询问进行应答,利用“运行”对hr设备状态(hrDeviceStatus)询问进行应答,利用“00”对hr打印机检测到错误状态(hrPrinterDetectedErrorState)询问进行应答,利用“子单元电源节省”对打印告警代码(prtAlertCode)询问进行应答,利用“通用打印机”来对打印告警组(prtAlertGroup)询问进行应答,利用35078来对打印告警位置(prtAlertLocation)询问进行应答,利用“其它”来对打印告警严重等级(prtAlertSeverityLevel)询问进行应答,以及利用“未训练”来对打印告警训练等级(prtAlertTrainingLevel)询问进行应答。这个信息与关于这个设备和其它设备的其它信息一起可以被使用来构造状态确定树,以便可靠地确定所述设备的状态。在一个实施例中,使用所述状态确定树使得在确定所述设备是空闲之前,将这些询问中的一些询问但不是全部询问发送给所述设备。
尽管172.30.4.55处的设备利用“空闲”来对hr打印机状态(hrPrinterStatus)询问进行应答,但是其它空闲设备不会利用“空闲”来对同一询问进行应答。因此,在没有除了所述设备的地址之外的任何信息的情况下,仅仅hr打印机状态(hrPrinterStatus)询问不足以确定所述设备的实际状态。
实际上,设备的不同模型、具有不同配置的相同模型以及具有不同的安装固件的相同模型可以对相同的询问进行不同的应答。在一个实施例中,状态确定树针对网络中的每个设备指定要发给该设备的询问,以便确定所述设备的状态。所述设备对所述询问进行应答,并且基于所述应答,遍历所述状态确定树,到达标识所述设备的状态的叶节点。
再次参见表1中的示例,对于具有低墨粉的三个打印机,对hr打印机检测到的状态(hrPrinterDetectedState)询问的应答是非零的(还注意,其它打印机表示零的多少种不同方式!)。主资源MIB(RFC 2790)表明错误条件被编码为该值中的比特,该值具有的类型是16进制字符串(OCTET STRING),其中比特#2指示低墨粉以及比特#0是第一字节的最高有效比特。理光和Oki都将这解释为意味从左边起的第三比特(或从右边起的第五比特)对应于32(2的5次幂)或16进制中的0x20,其被返回作为原始值(空格字符)。但是所有其它打印机(包括另一理光Aficio)将16进制字符串(OCTET STRING)的值返回为由利用冒号字符分隔开的ASCII数值表示(这是在一些文献中示出16进制字符串(OCTET STRING)的方式),换言之,取代null,返回49(ASCII′0′)来表示0。此外,三星的工程师看来似乎在它们对标准的解释上具有另一重要差别,它们似乎已经取代从左边开始,而从右边开始的比特计数,即,比特#0是最低有效比特,它使得比特#2对应于4(2的2次幂),从而低墨粉被报告为′04′。
使得上述情形更复杂的是下述事实:多个打印机状态是可能的,取决于所涉及的打印机模型,SNMP应答的不同组合可以或不可以表示相同的打印机状态。一个方案是针对所有打印机模型构建SNMP应答的数据库;一旦已经在网络上标识出目标设备且已经确定它的模型名称,则可以通过在数据库中搜索所述模型名称,确定该目标设备的预期SNMP应答。然而,这个方案要求构建并连续地更新表示所有可用打印机模型的非常大的数据库。对于任何研发队伍,经常在没有销售商的协作的情况下针对来自所有已知销售商的所有已知打印机维护可靠且一致的数据集的任务可能是非常大的负担。
表2示出了各种状态下的单个设备的示例设备应答。表2包括在附录A中。如表所示,当所述设备处于不同状态下,该设备对询问的应答非常不同。相应地,可以基于对一些或所有询问的应答,确定所述设备的状态。
即使在表2中参考的单个设备时,在如何报告打印机检测到错误状态(hrPrinterDetectedErrorState)时也可能存在一些变化。当盖子被打开时,返回原始字节0x0B,其是ASCII 11且等于8+2+1。根据MIB规范,这表示盖子打开(8)、离线(2)以及请求的服务(1)。然而,响应于比如卡纸的另一情形(在打印机稳定且一致地返回相同值时起的几秒后),返回串′07′,其包含ASCII字节48和55。如果被解释为ASCII数值,则′07′表示数值7,其对应于被卡住(4)、离线(2)和请求的服务(1)。因此,打印机有时将打印机检测到错误状态(hrPrinterDetectedErrorState)返回为原始字节,有时将打印机检测到错误状态(hrPrinterDetectedErrorState)返回为ASCII数值字符串。
由于获取网络中的设备的设备状态的复杂性,对定制设备管理软件的更新可能是非常耗时和昂贵,并且经常对软件更新带来安全风险以及更高的未预期的软件缺陷风险。当对已编译的软件打补丁时,给客户制作新的二进制分布。这些客户必须在安装软件之前,对该新的二进制分布进行病毒感染检查或其它安全问题检查。
在一个实施例中,取代更新定制设备管理软件,构造站点特有的状态确定树来确定网络中的设备的状态。在一个实施例中,通用设备管理软件被配置为使用任何设备交互树,并且所述设备管理软件不要求由于该树中的变化而导致的更新。
在一个实施例中,所述设备交互树包括针对网络中存在的所有打印机类型的分支。可以在不修改设备管理软件的情况下,对所述树结构进行容易的替换和更新。因此,可以更有效地维护所述树结构,并且该树结构可以与在所述网络中要监测的打印机集合一起成长。与通用表相比,所述树可以更容易地处理特殊设备行为。例如,针对打印机检测到错误状态(hrPrinterDetectedErrorState)的不同解释,可以将分支添加到该树。在一个实施例中,所述树存储询问以取回多个打印机类型的多个SNMP对象,以确定所述打印机处于多个状态中的哪个状态。
所述状态确定树的节点指定相对于设备要执行的询问。在一个实施例中,所述树被构造为最小化在具有用于确定所述设备的状态的足够信息之前被发送到该设备的询问的平均数目。在一个示例中,使用树优化技术来最小化该树的高度,或者最小化根节点和每个叶节点之间的平均节点数。所述询问触发来自所述设备的应答,以及基于所述应答,朝向叶节点遍历所述状态确定树。所述叶节点标识所述设备的状态。
测试和赋值
除了指定要被提交的针对设备的询问之外,所述状态确定树还指定用于对照一个或多个值来评估来自所述设备的应答的测试。在一个实施例中,设备管理应用访问所述状态确定树中的节点来确定要被发送到设备的询问。所述询问被发送到所述设备,并且从所述设备接收应答。可以对照一个或多个值来处理并测试所述应答,以便确定朝向用于指定所述设备的状态的叶节点的对树的遍历中的下一节点。所述节点指定要应用于已处理的应答的测试。例如,所指定的测试可以是所述应答是否包括特定串的测试。
在测试之前,可以在赋值阶段处理所述应答。本文中描述的技术不限于任何特定类型的赋值。在一个实施例中,不需要赋值。在图3中提供了示例赋值,比如StripPrefix、StripPrefixStartsWith、StripSuffix、StripSuffixStartsWith、Prepend和Append。除了所述示例赋值之外或者取代所述示例赋值,可以使用其它类型的赋值。可以对所述应答或其它所存储的数据进行赋值,以产生已处理的应答。
对照一个或多个值来测试已处理的应答。本文中描述的技术不限于任何特定类型的测试。测试可以指定正在测试的项目,比如返回的参数名称或返回的该参数的值。测试还可以指定要执行的操作或比较,以测试所述已处理的应答。示例操作包括图3中提供的IsNull(为零)、Equals(等于)、Contains(包含)和GreaterThan(大于)。IsNull操作是唯一的,因为该操作本身指定零值和操作“等于”。在特定示例中,使用操作“等于”和值“其它”来测试所述已处理的应答。因此,当所述应答是“其它”时,所述测试的结果为“真”。否则,所述测试的结果为“假”。除了所述示例测试之外或者取代所述示例测试,可以使用其它类型的测试。
在一个实施例中,作为测试阶段的结果,应用赋值。例如,作为得出所述状态为空闲的测试的结果,可以为状态变量赋值“空闲”。还可以使用赋值来处理并存储信息,以供所述状态确定树中的后续节点使用。
在一个实施例中,所述状态确定树中的中间节点具有两个子节点。所述中间节点指定要被发送给所述设备的询问,要被应用于所述询问的结果的赋值、以及要被应用于已处理的结果的真/假测试。如果所述测试的结果是真,则所述设备管理应用朝向两个子节点中的一个子节点的真分支,向下遍历所述状态确定树。如果所述测试的结果是假,则所述设备管理应用朝向所述两个子节点中的另一个子节点的假分支,向下遍历所述状态确定树。在其它实施例中,节点可以具有其它数目个子节点,并且所述测试可以是仅仅真/假测试之外的测试。
在另一实施例中,所述中间节点具有三个子节点,并且对照值范围中的两个值来执行所述测试。如果所述已处理的应答小于或等于第一值,则朝向所述三个子节点中的第一子节点遍历所述状态确定树。如果所述已处理的应答在所述两个值之间,则朝向所述三个子节点中的第二子节点遍历所述状态确定树。如果所述已处理的应答大于或等于所述第二值,则朝向所述三个子节点中的第三子节点遍历所述状态确定树。在又一实施例中,可以将具有三个子节点的中间节点建模为两个二进制中间节点,其中所述两个中间节点中的一个是另一个的子节点。
在又一实施例中,对照两个或多个替换值来执行所述测试。例如,所述测试可以确定所述应答是“空闲”、“运行”还是“其它”。作为所述测试的结果,在所述树中遍历替换分支。在一个实施例中,所述状态确定树中的一些节点指定测试或子测试,但不指定询问。一旦询问已经发送给设备,则可以在所述树的多个不同级上,按照多个不同的方式测试对所述询问的应答。
设备类
在各个实施例中,可以基于制造商、年份、能力或者使得所述设备类似地对询问进行应答的其它因素,将设备分类到多个类中。每个类可以具有单独的状态确定树来确定该类中的设备的状态。在一个实施例中,类确定树用来确定设备所属于的类。一旦设备的类被所述类确定树确定出,就可以使用该类的状态确定树来确定所述设备的状态。
表43.18.1例示了设备的类,该设备的类被定义为包括当设备处于相同状态时按照相同的方式对相同的询问进行应答的设备。表43.18.1提供在附录A中。
如表所示,当所述墨粉为低(低:墨粉)时,类A、B、C、D、F和G的设备按照相同的方式对相同的SNMP询问进行应答。同样如表所示,当黑色墨粉为低、青蓝色墨粉为低、绛红色墨粉为低以及黄色墨粉为低时,类E的设备按照相同的方式对相同的SNMP询问进行应答。关于个体设备或设备类如何对样本询问进行应答的信息可以存储在所示出的表中,或者以某一其它机制存储。在一个实施例中,基于在例如表2的表中存储的信息,构造设备交互树。
在一个实施例中,当类A、B、C、D、F和G中的任一类的设备利用告警(3)来对hr设备状态(hrDeviceStatus)询问以及利用20h来对打印机检测到错误状态(hrPrinterDetectedErrorState)询问进行应答时,类A、B、C、D、F和G中的任一类的设备可以被确定为具有状态“低:墨粉”。在另一实施例中,使用具有应答标记墨粉几乎为空(markerTonerAlmostEmpty)(1104)的另一打印报警代码(prtAlertCode)询问来确定所述设备的状态。对于具有其它设备状态的其它设备,可以执行不同数目个询问来确定所述设备状态。
在图1A的示例中,设备监测系统100与属于三个类A、B和C的五个设备交互。每个类的状态确定树包括被使用来对所述类中的设备进行分类的询问和测试。状态确定树102可以被分为单独树或者合并在一起作为单个树。在一个实施例中,类A、B和C的类确定树和状态确定树一起形成网络108中的任何设备的状态确定树。
在图1B的示例中,已知类C的新设备被添加到所述网络。所述已知类C的状态确定树已经具有对该设备进行分类的能力。因此,在该示例中,不对状态确定树102进行更新。函数“ExecuteTree”被使用来利用已知类C的现有状态确定树获取关于所述新设备的信息。
在图1C的示例中,未知类D的新设备被添加到所述网络。设备监测系统100检测到现有的状态确定树102不支持所述新设备。与之响应,设备监测系统100使用函数“UpdateTree”来更新状态确定树102。例如,设备监测系统100可以从服务器下载该未知类的树或其它信息,如图10A中所示。如果所述设备监测系统接收到该未知类D的其它信息,则可以利用函数库106中的构造树(ConstructTree)函数,使用该其它信息来构造针对类D的树。
图5示出了可被设备管理应用使用来确定设备的状态的多个示例树。第一树500将设备分类到多个设备类中的一个设备类。第一树500的叶节点指定设备类的标识符。所述标识符被使用来选择第二树502-506中的一个。所述第二树502-506中的每个指定要发送到属于一个或多个设备类组的设备的询问和测试集合。所述第二树502-506中的每个包括指定所述第二树所涵盖的类组中的设备的设备状态。在图5中未示出的实施例中,第一树和第二树被合并为单个树。
在一个实施例中,用于确定所述设备的销售商的身份的树是用于确定所述设备的其它状态信息的更大的树的一部分。例如,所述销售商的身份可以是所述设备所属于的类的确定的一部分。
图6例示了用于确定设备的销售商的树的实现。设备管理应用接收到针对设备的设备商ID(vendorID)的请求。节点600测试所述设备的地址是否是空(NULL)。如果是,则未确定出所述vendorID,并且对树的遍历在节点604结束。如果不是,则节点602测试vendorID参数是否是NULL。如果是,则未确定出所述vendorID参数,并且对树的遍历在节点608结束。如果不是,则节点606确定所述vendorID参数的值。在各个实施例中,需要检查多个参数,以便确定所述销售商的身份。例如,一些打印机没有将所述销售商的身份存储为“vendorID”,并且可能需要从这些设备取回其它参数。
图7A示出了单步设备分类树。节点700A针对特定设备类进行测试。例如,节点700A可以包括一个或多个询问以及一个或多个测试。如果所述设备在所述类中,则对所述树的遍历进行到节点704A。如果不是,则遍历进行到节点702A。图7B示出了被更新来应对第二设备类的设备分类树。如图所示,节点702B包括针对第二设备类的测试。当所述设备不是任一类的成员时,遍历进行到节点706B,以及当所述设备是第二设备类的成员时,遍历进行到节点708B。
创建、修改和替换设备交互树
在一个实施例中,由生成一类设备的制造商创建针对该类设备的设备交互树。所述设备交互树可以被分发给客户端。例如,可以在Web服务器上得到不同版本的状态树。客户端可以利用新版本替换该树的前一版本,或者客户端可以存储与不同类型的设备一起使用的版本。
在另一实施例中,设备管理应用基于所存储的设备状态、询问和应答之间的关联性,生成状态确定树。对于要被监测的每个所选择设备的每个所选择状态,所述设备管理应用确定用于标识所述设备状态的一个或多个唯一参数集。多个设备的设备状态的参数集可以合并,并且最经常使用的集可以形成所述状态确定树的上级的基础。按照这个方式,可以在遍历所述状态确定树的过程中的较早阶段询问被最共用地询问来确定状态的信息。可以在遍历所述状态确定树的过程中的稍后阶段询问仅仅针对一个或几个特定设备询问的信息。在特定实施例中,设备管理应用使用询问应答词典的集合来自动地构造最小的或以其它方式优化的状态确定树,所述询问应答词典的集合包括针对特定网络的打印机集的相关联的询问和应答信息。
图2是状态确定树集的示例类图。如图所示,状态确定树集200包括状态确定树202的阵列。每个状态确定树202具有一个或多个状态确定单元204,该状态确定单元包括一个或多个询问208、赋值和测试210。在该示例中,每个测试导致布尔型206结果,用于导航到真子单元或假子单元。如图所示,所述测试包括对象以及对象操作符214,用于确定是测试所述对象自身的值还是测试具有与所述对象匹配的名称的变量的值。还如图所示,所述测试包括判定(predicate)和判定操作符216,用于指定如何测试所述对象。在该示例中,测试210能够确定所述对象是否包含所述判定,等于所述判定,或者大于所述判定。利用串对所述示例询问208进行应答,并且所述示例测试210对串进行操作。根据其它实现,所述询问应答可以指定任何格式的值,并且所述测试可以对任何格式的值进行操作。所述状态确定树结果218标识用于指定所述设备的状态的文本描述的节点。
图3是用于确定设备状态的数据结构的示图。如图所示,树300的集合包括一个或多个个体树302。每个树302包括节点304或树单元,并且每个节点具有一个或多个询问312、赋值314和测试316。在一个实施例中,将包括至少一个询问和至少一个测试的树单元的集合成组在一起,作为单个节点。在另一实施例中,每个非叶节点包括至少一个询问和至少一个测试。
使用一个或多个特有协议来将询问发送到正在监测的设备。赋值包括一个或多个值修改器318,用于对响应于所述查询而指定的值的值执行操作,例如StripPrefix、StripPrefixStartsWith、StripSuffix、StripSuffixStartsWith、Prepend和/或Append。对由一个或多个赋值314处理的应答进行测试316。在所例示的示例中,测试316指定对象操作320,例如所述对象自身是否是正在测试的值,或者所述对象是否是指定正在测试的值的参数的名称。例如,当所述应答指定值时,可以对键值对(key-value pair)的值应用赋值。赋值还可以使得键值对被所述设备管理应用存储,以供其它节点稍后取回。在另一示例中,可以基于比如在对状态确定树的遍历期间先前指定的“CyanPageCount”的键,对所存储的值应用赋值。在这种情况下,遍历所述状态确定树的设备管理应用查找被命名为“CyanPageCount”的参数的所存储的值。在一个实施例中,在所述状态确定树的节点之间传递赋值。在另一实施例中,赋值被全局地定义。
测试316还包括要被施加给所述对象的一个或多个判定值以及一个或多个判定操作符322。在一个实施例中,判定操作是用于将所述对象与判定进行比较的比较操作。例如,所述测试可以确定已处理的对所述询问的应答的值是否等于“空闲”,或者所述值是否大于02h。其它示例判定操作包括IsNull(为空)、Contains(包含)以及startsWith(开始于)。所述应答还可以使用该示例中没有例示的其它判定操作进行处理。
基于测试316的结果,设备管理应用使用指向节点304的子真节点或子假节点的指针来遍历树302。在一个实施例中,所述子节点是用于指定所述设备的状态的叶节点。在另一实施例中,所述子节点指定在确定所述设备状态之前进行的一个或多个其它询问以及一个或多个其它测试。所述状态确定树302的遍历导致用于指定所述设备的状态的返回310。
图4示出了具有三级的示例状态确定树的结构。在该示例中,根400和单元402定义了该树的第一级。单元402包括零个或多个询问、零个或多个赋值、以及一个或多个测试。在该示例中,所述测试是真/假测试。如果所述测试结果是假,则树遍历从单元402进行到单元404。如果所述测试结果是真,则树遍历从单元402进行到单元406。单元404和406中的每个指定零个或多个询问、零个或多个赋值、以及一个或多个测试。状态确定树的遍历导致导航到叶节点408-414中的一个。所得到的叶节点指定所述设备的状态。
附录B示出了由DIT.XML指定的更为复杂的状态确定树的示例。该状态确定树中的节点(<QNode>)指定询问(<Queries>)、赋值(<Assignments>)、以及测试(<Test>)。在遍历到询问节点后,设备管理应用执行与所述询问节点相关联的一个或多个询问。在遍历到赋值节点后,所述设备管理应用应用与所述赋值节点相关联的任何赋值。在遍历到测试节点后,所述设备管理应用应用与所述测试节点相关联的任何测试。从根节点开始,通过用于指定询问和测试的中间节点到达用于指定设备状态的叶节点,对所述状态确定树进行遍历。
在一个实施例中,设备管理应用从中央服务器接收关于与所述询问和应答相关联的状态的信息。例如,所述信息可以存储在从服务器传送到设备管理应用的表中。
图8A示出了在构造和更新状态确定树时使用的询问应答词典的通用结构。所述询问应答词典存储关于与对所述设备的询问和来自所述设备的应答相关联的设备的状态的信息。所述应答是如果所述设备在所述指定的状态并且利用所指定的询问来询问则所述设备将进行的实际应答。所述询问应答词典将被使用来在树构造或修改期间对所述设备进行仿真,从而使得所述设备在构造或修改期间不需要是可访问的。在一个实施例中,所述询问应答词典不需要关于所述设备的特定模型的信息。只要所述状态与询问和应答相关联,所关联的信息就可以被使用来构造所述状态确定树。
图8B示出了示例询问应答词典,该示例询问应答词典针对简单网络管理协议(“SNMP”)具有三个询问,针对打印机作业语言(“PJL”)具有两个询问,针对PostScript具有一个询问,并且针对超文本传输协议(“HTTP”)具有两个询问。在一个示例中,HTTP询问从所述设备所宿主的web(网页)服务器发出,以诱发应答。
图8C示出了具有11个询问的示例询问应答词典,该11个询问中的4个是“ID询问”,或者是可以用于将设备分类到设备类中的询问。设备的分类可以允许选择所选择的设备类专用的设备交互树。
在另一实施例中,所述设备管理应用从用户接收关于在设备上观测到的状态的信息。例如,用户可以经由用户界面提交关于所述设备以及针对所述设备观测到的状态的信息。与之响应,所述设备管理应用利用一个或多个询问来询问所述设备,并且接收一个或多个应答。所述设备管理应用与所述状态信息相关联地存储所述询问-应答对。
本文中描述的用于自动地创建状态确定树的技术不限于用于合并关于相关联的状态、询问和响应的已知信息来确定所述树的节点的特定技术。在针对具有两个可能状态的三设备系统的简单示例中,当参数X是1以及参数Y是10时,第一设备处于状态A,当参数X是1以及参数Y是20时,第二设备处于状态A,并且当参数X是2以及参数Y是10时,第三设备处于状态A。当参数X是2以及参数Y是20时,假设所有设备处于状态B。一个示例状态确定树可以首先针对X询问所述设备并且测试X是否是1,接着针对Y询问所述设备并且测试Y是否是10。这两个询问和测试的结果可以被使用来确定所述设备是处于状态A还是处于状态B,而不管哪个设备正在被测试。
此外,可以对询问和参数集进行归纳,使得可以在该树的相同节点中表示类似信息的大写、前缀、后缀、值格式和替换表示的差异。例如,单个节点可以确定参数的已处理值是否为“空闲(idle)”,实际的所接收值是否为“idle”、“Idle”或与“idle”匹配的某一其它串。
根据本文中描述的技术,为了是有用的,不需要很好地优化或者根本不需要优化所述状态确定树。例如,平均而言,一个树可以要求更多的询问和/或更多的测试来确定与另一树相同的设备的相同状态,即使两个树包含本文中描述的技术。在一个实施例中,所述设备管理应用在服务器上检测到另一版本的树,该另一版本的树使用较小的树或利用更少的平均询问和/或测试来管理相同设备的相同状态。与之响应,所述设备管理应用可以下载所述树的其他版本,并且替换该树的前一版本。所述其他版本可以被临时指定为活动树,直到确定出该其他树对于确定设备的状态而言也是准确的。
在另一实施例中,设备管理应用的用户可以找到该树的另一版本。用户可以下载该树的其他版本并且替换该树的前一版本,而无需具有在运行所述设备管理应用的机器上编译及安装软件或者更新注册表的特权。
在一个实施例中,所述设备管理应用响应于检测到所述状态确定树不能提供所述网络中的设备的状态而更新所述状态确定树。例如,所述设备管理应用可以检测到不支持的设备已经被添加到所述网络或者针对在所述状态确定树中已经表示的设备不支持所请求的类型的状态信息。所述已更新的状态确定树应对先前不支持的设备,而无需修改所述设备管理应用的代码。
图9A和9B示出了用于触发对状态确定树的更新的替换示例技术,一个是自动的而一个是手动的。如图9A的示例自动更新技术所示,树900-904中的至少一个的执行906无法提供未知类的新设备910A的状态。响应于检测到该失败,设备管理应用请求对所述状态确定树的更新908A。在图9B中,操作员912检测到未知类的新设备910A的存在。基于检测到新设备910A的存在,操作员请求对所述状态确定树的更新。
图10A和10B示出了用于获取对所述状态确定树的更新的替换示例技术。在图10A中,设备监测系统1000A向中央服务器1004发送设备描述1002,以获取用于应对新设备的更新。如图所示,中央服务器1004通过提供关于与比如询问应答词典1006的询问和应答相关联的状态的信息,对所述请求进行应答。在未示出的实施例中,中央服务器直接向设备监测系统1000A提供状态确定树。从所述中央服务器新近提供的信息允许设备监测系统1000A将所述新设备与先前支持的类中的设备区分开。
在图10B的示例中,向操作员1010示出界面来提供状态信息1008。操作员1010与所述界面交互,以向设备监测系统1000B提供状态信息1012。设备监测系统向所述设备提交询问,并且存储与所发送的询问以及从所述设备接收的应答相关联的状态。在另一实施例中,用户还输入用户已知的相关联的询问和应答信息。
图11是示出处理状态确定树时包含的示例步骤。在由于不支持的设备导致的失败的情况下,在失败之前,所述节点的身份可以被使用来利用用于应对先前不支持的设备的新状态确定数据来更新所述状态确定树。如图11中所示,在步骤1102,客户端从设备监测器请求关于新设备的数据。在步骤1104,设备监测器调用树遍历函数来处理状态确定树并获取所请求的数据。在判决步骤1106,进行关于执行是否成功的确定。如果执行没有成功,则在步骤1108将失败节点的身份返回给客户端。与之响应,在步骤1110,客户端返回要被添加到所述树的节点。在步骤1112,设备监测器将该新状态确定节点添加到所述树上且位于该失败节点之前,并且在步骤1114,利用此处的该新节点再次执行所述树。
如果如步骤1106中所确定的,执行成功,则在步骤1116,将所请求的数据返回给所述客户端。在步骤1118,所述客户端使所返回的数据变为有效。如果所述数据是不准确的,则所述失败节点的身份被返回给所述客户端,并且处理进行到步骤1110。否则,从所述树成功地接收所述数据,客户端使所述数据变为有效,并且处理在步骤1122结束。
图12示出了具有临时更新能力的示例设备询问过程。在步骤1202,客户端从设备监测器1202请求关于新设备的数据。在步骤1204,所述设备监测器执行树来得到所请求的数据。在步骤1206,进行关于执行是否成功的确定。如果执行不成功,则如步骤1208-1210中所反映,失败节点的身份被返回给所述客户端,并且所述客户端返回要被添加到所述树的节点。在步骤1212,所述设备监测器丢弃先前的执行中剩余的任何临时节点,并且在步骤1214,将所述新节点临时添加到所述树上且位于所述失败节点之前。在步骤1216,利用此处的所述临时节点再次执行所述树。
如果在步骤1206执行成功,则在步骤1218,将所请求的数据返回给所述客户端。在步骤1220,所述客户端使得所返回的数据变为有效。如果所述数据是有效的且在所述树中存在临时节点,如步骤1224中所确定的,则在步骤1226,所述设备监测器使得所述临时节点变为永久性的。
图13示出了基于从服务器分发的询问应答词典的示例替换更新过程。在步骤1302,所述客户端向中央服务器发送标识信息,比如所述新设备的模型以及制造商名称。在步骤1304,所述中央服务器将询问应答词典(“QRD”)发回所述客户端。在步骤1306,所述客户端执行所述设备监测器的AddDevice(添加设备)方法来使用所提供的QRD来将设备添加到所述树。在步骤1308,所述设备监测器利用来自所述新设备的QRD的数据更新所述状态确定树。
使用设备交互树
在一个实施例中,在一个或多个计算设备的界面上接收针对设备的状态的请求。所述请求可以标识所述设备的一个或多个属性。在一个实施例中,所述请求利用地址标识所述设备。在另一实施例中,所述请求可以利用名称以及所述设备所属于的工作组来标识所述设备。所述一个或多个计算设备上的设备交互逻辑被配置为使用所述设备交互树来确定与所述树的起始节点相关联的询问和测试。所述询问被发送给所述设备,并且从所述设备接收应答。在一个实施例中,在测试阶段之前,所述设备交互逻辑根据与所述起始节点相关联的一个或多个赋值,处理所述应答。在另一实施例中,在接收但没有处理所述应答时,对所述应答进行测试。使用与所述树的起始节点相关联的测试来对所述应答进行测试。所述测试指定用于评估所述应答的一个或多个值以及一个或多个操作。在一个实施例中,作为测试的结果,可以执行一个或多个赋值来存储或制备供后续节点使用的值。基于所述测试的结果,朝向叶节点遍历所述设备监测逻辑树。在一个示例中,所述叶节点表示所述设备的状态。在各个实施例中,所述起始节点可以利用具有询问以及一系列测试来确定要遍历所述树中的多个分支中的哪个分支的节点集合来表示。
如果所述树中的下一节点是叶节点,则由所述叶节点指定的状态是所述设备的状态。在一个实施例中,所述下一节点是所述遍历中的第二节点。如果所述第二节点不是叶节点,则从所述树中的第二节点确定第二询问和第二测试。利用下一询问来询问所述设备以诱发第二应答。所述第二应答可以根据与所述树中的第二节点相关联的任何赋值来进行处理。针对第二测试来评估所述应答,以确定所述树的遍历中的下一节点或第三节点。在一个实施例中,按照与所述起始节点和第二节点相同的方式处理第三节点。其它节点可以落在遍历路径上,从而导致遍历到用于指定所述设备的状态的叶节点。
所述状态确定逻辑响应于所述请求而提供所述设备的状态。例如,所述状态确定逻辑在用户界面上向请求所述设备的状态的用户,显示所述设备的状态的文本和/或图像描述或表示。例如,所述状态确定逻辑可以显示“空闲”以及与所述空闲状态相关联的图标。
在一个实施例中,用于遍历树的设备交互逻辑对于所述树的内容而言是通用的。换言之,所述设备交互逻辑不需要针对特定网络上的特定设备专门配置。例如,状态确定逻辑不需要被专门配置来确定特定网络上的设备的状态。在一个实施例中,所述设备交互逻辑包括所存储的由一个或多个计算设备执行来遍历所述树的指令。在另一实施例中,可以使用使得一个或多个计算设备遍历所述树的一个或多个专用硬件组件来配置所述设备交互逻辑。
附录B示出了由DIT.XML指定的示例状态确定树。所述树中的节点(<QNode>)指定询问(<Queries>)、赋值(<Assignments>)、以及测试(<Test>)。在遍历到节点后,设备管理应用执行与所述节点相关联的一个或多个询问,应用与所述节点相关联的任何赋值,并且利用与所述节点相关联的测试,测试对所述询问的应答。
在根据DIT.XML的一个示例中,设备管理应用从用户接收针对设备状态的请求,并且对状态确定树进行遍历以遍历到特定QNode,该特定QNode利用“<询问协议=“snmp”消息=“prtAlertCode”应答关键词=“AlertCode”/>”指定询问,并且利用下述测试“<测试对象=“AlertCode”对象操作符=“valueOf(“的值”)”判定=“subunitMissing”预测操作符=“equals”/>”来对所述结果进行测试。换言之,所述设备管理应用利用消息“hrtAlertCode”来向所述设备发送SNMP询问。所述设备管理应用将来自所述设备的应答保存为“告警代码(AlertCode)”。所述设备管理应用随后使用所述测试来评估AlertCode的值是否等于“子单元缺失(subunitMissing)”。
如果所述测试的结果为真,则所述设备管理应用继续遍历所述设备交互树以到达另一QNode分支。在遍历的该点上,所述设备管理应用已经确定出打印状态(PrinterStatus)是“空闲”,设备状态(DeviceStatus)是“告警”并且告警代码(AlertCode)是“子单元缺失(subunitMissing)”。所述设备管理应用再次利用具有消息“prtAlertGroup”的SNMP询问来询问所述设备。所述应答被存储为“告警组(AlertGroup)”。根据下述测试“<测试对象=“AlertGroup”对象操作符=“valueOf”判定=“input”判定操作符=“equals”/>”对所述结果进行测试。换言之,所述设备管理应用确定所述结果的值是否等于“input输入”。如果等于,则所述设备管理应用基于所述赋值“<设置键=“StatusName”值=“error”/>”以及“<设置键=“错误名称(ErrorName)”值=“没有输入托盘(noinputtray)”/>”,确定所述设备的状态。因此,所述设备管理应用可以利用“错误:没有输入托盘”来对针对设备状态的请求进行应答。
图14是例示用于遍历示例状态确定树的示例过程的流程图。所述过程由设备管理应用使用一个或多个所存储的状态确定树来获取网络上的设备的状态来执行。所述设备管理应用可以被一般性地配置为遵循由所述状态确定树中的询问、赋值和测试指定的规则。未示出的赋值语句被包括在设备交互树中,以基于从设备接收的应答对参数赋值。所赋予的值在所示出的比较步骤中使用。所述设备管理应用不需要针对给定网络或针对给定设备交互树来专门配置。驱动所述过程的设备交互树可以由不具有安装软件或修改设备的注册表的安全特权的用户生成、更新和替换。在一个实施例中,因为比如状态确定树的设备交互树不包括自执行的软件,所以所述设备交互树不会牺牲保存所述设备交互树的系统的安全性。
设备配置树
在一个实施例中,所述设备交互树是设备配置树。比如设备管理应用的设备交互逻辑被配置为遍历所述设备配置树来配置设备。在一个实施例中,用户提交请求来配置设备上的参数。所述设备交互逻辑接收所述请求,并且选择用于配置设备组中的任何设备上的参数的设备配置树。所述设备交互逻辑从根节点朝向用于指定询问和测试的中间节点,遍历所述设备配置树。所述设备交互逻辑对所述询问的结果应用测试,以到达用于指定要提交给所述设备的配置命令的叶节点。所述设备配置树可以指定用于确定所述配置命令是否被成功地提交给所述设备的一个或多个附加命令。
例如,用户可以请求来改变设备的名称。所述请求可以利用IP地址来标识所述设备,并且所述请求还可以为所述设备指定新名称。基于所述请求,所述设备交互逻辑选择用于改变设备的名称的设备配置树。所述设备交互逻辑通过提交一个或多个询问并且对所述询问的一个或多个应答施加一个或多个测试,遍历所述设备配置树。在遍历所述设备配置树后,所述设备交互逻辑到达指定用于改变所述设备的名称的命令的叶节点。所述设备交互逻辑将所述命令发送给所述设备。可选地,所述设备配置树指定一个或多个其他询问以及一个或多个其它测试来确定所述设备的名称是否被所述命令成功地改变。响应于发送所述命令或确认所述命令成功地改变所述设备上的参数,所述设备交互逻辑向用户显示所述设备的名称被改变的指示。
可以使用设备配置树,对设备进行各种其它配置变化。例如,设备配置树可以指定用于改变设备的超时(timeout)值或改变规定是否在启动所述设备后打印测试页的设置的命令。用于创建和使用设备配置树的技术不限于任何特定类型的配置变化,并且可以使用各种配置树来确定将哪个或哪些配置命令发送给设备。在一个实施例中,所述设备配置树不包括可自执行的代码。此外,所述设备交互逻辑可以被一般性地配置为遍历所述设备配置树,而无需专门配置来改变任何给定设备的参数。在一个实施例中,所述配置树指定询问、测试以及用于配置不同类型的设备、具有不同能力的设备和/或来自不同制造商的要求不同配置命令来完成相同的配置变化的设备的配置命令。
设备动作树
在一个实施例中,所述设备交互树是设备动作树。比如设备管理应用的设备交互逻辑被配置为遍历所述设备动作树来使得所述设备执行动作。在一个实施例中,用户提交请求来使得设备执行动作。所述设备交互逻辑接收所述请求,并且选择用于产生设备组上的任何设备上的动作的设备动作树。所述设备交互逻辑从根节点到用于指定询问和测试的中间节点,遍历所述设备动作树。所述设备交互逻辑对所述询问的结果应用测试,以到达用于指定要提交给所述设备的动作命令的叶节点。所述设备配置树可以指定用于确定所述设备是否成功地执行所述动作命令的一个或多个附加命令。
例如,用户可以请求根据指定的格式打印文档。所述请求可以利用IP地址来标识所述设备,并且所述请求还可以指定文档和期望格式。基于所述请求,所述设备交互逻辑选择用于打印设备上的文档的设备动作树。所述设备交互逻辑通过提交一个或多个询问并且对所述询问的一个或多个应答施加一个或多个测试,遍历所述设备动作树。在遍历所述设备动作树后,所述设备交互逻辑到达指定用于根据指定的格式打印文档的命令的叶节点。所述设备交互逻辑将所述命令发送给所述设备。可选地,所述设备配置树指定一个或多个其它询问以及一个或多个其它测试来确定所述设备是否成功地以所指定的格式打印所述文档。响应于发送所述动作命令或确认所述动作命令被成功地执行,所述设备交互逻辑向用户显示所述设备按照所指定的格式打印所述文档的指示。
可以使用设备动作树向设备发送各种其它动作命令。例如,设备动作树可以指定用于使得设备发送传真、电子邮件或文本消息的命令,或者用于使得设备进行拷贝、打印测试页或执行清除操作的命令。用于创建和使用设备动作树的技术不限于任何特定类型的动作,并且可以使用各种动作树来确定将哪个或哪些动作命令发送给设备。在一个实施例中,所述设备动作树不包括可自执行的代码。此外,所述设备交互逻辑可以被一般性地配置为遍历所述设备动作树,而无需专门配置来产生任何给定设备上的动作。在一个实施例中,所述动作树指定询问、测试以及用于使得不同类型的设备、具有不同能力的设备和/或来自不同制造商的要求不同动作命令来执行相同的动作的设备执行动作的动作命令。
实现机制
根据一个实施例,本文中描述的技术由一个或多个专用计算设备实现。所述专用计算设备可以被硬连线来执行所述技术,或者可以包括被永久性地编程来执行所述技术的数字电子设备,比如一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA),或者可以包括被编程来根据固件、存储器、其它存储设备或组合中的程序指令执行所述技术的一个或多个通用硬件处理器。这种专用计算设备还可以组合利用定制编程来完成所述技术的定制的硬连线逻辑、ASIC或FPGA。所述专用计算设备可以是桌面计算机系统、便携式计算机系统、手持设备、网络设备或任何其它包含用于实现所述技术的硬连线和/或程序逻辑的设备。
例如,图15是例示计算机系统1500的方框图,在计算机系统1500上可以实现本发明的实施例。计算机系统1500包括总线1502或用于传送信息的其它通信机制,以及与总线1502耦合的用于处理信息的硬件处理器1504。硬件处理器1504例如可以是通用微处理器。
计算机系统1500还包括与总线1502耦合的用于存储信息以及由处理器1504执行的指令的主存储器1506,比如随机存取存储器(RAM)或其它动态存储设备。主存储器1506还可以用于存储要由处理器1504执行的指令的执行期间的临时变量或其它中间信息。当被存储在可被处理器1504访问的非易失性存储介质中时,这些指令将计算机系统1500使能为被定制来执行所述指令中指定的操作的专用机器。
计算机系统1500还包括与总线1502耦合的只读存储器(ROM)1508或其它静态存储设备,用于存储静态信息以及处理器1504的指令。提供用于存储信息和指令的比如磁盘或光盘的存储设备1510,并且将存储设备1510与总线1502耦合。
计算机系统1500可以经由总线1502耦合到用于向计算机用户显示信息的显示器1512,比如阴极射线管(CRT)显示器。包括字母数字和其它按键的输入设备1514耦合到总线1502,用于向处理器1504传送信息和命令选择。另一类型的用户输入设备是用于向处理器1504传送方向信息和命令选择以及用于控制显示器1512上的光标移动的光标控制设备1516,比如鼠标、轨迹球或光标方向键。这个输入设备通常具有两个轴上的两个自由度,用于允许所述设备指定平面上的位置,所述两个轴是第一轴(例如,x)和第二轴(例如,y)。
计算机系统1500可以使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑实现本文中描述的技术,所述定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑与计算机系统1500组合来使得或编程计算机系统1500成为专用机器。根据一个实施例,本文中的技术由计算机系统1500响应于处理器1504执行在主存储器1506中包含的一个或多个指令的一个或多个序列而执行。这些指令可以从比如存储设备1510的另一存储介质读入到主存储器1506。主存储器1506中包含的指令序列的执行使得处理器1504执行本文中描述的过程步骤。在替换实施例中,替换软件指令或与软件指令组合,可以使用硬连线电路。
本文中使用的术语“存储介质”指代任何用于存储使得机器按照特定方式操作的数据和/或指令的非暂时性介质。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质例如包括光盘或磁盘,比如存储设备1510。易失性介质包括动态存储器,比如主存储器1506。存储介质的通用形式例如包括软盘、软磁盘、硬盘、固态驱动器、磁带或任何其它磁性数据存储介质,CD-ROM、任何其它光学数据存储介质、任何具有打孔图案的物理介质、RAM、PROM、EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或存储器盒。
存储介质与传输介质不同但可以与传输介质结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴线、铜布线和光纤,该同轴线、铜布线和光纤包括包含总线1502的布线。传输介质还可以采用声波或光波的形式,比如在无线电波和红外数据通信期间生成的声波或光波。
在将一个或多个指令的一个或多个序列运送到处理器1504来执行时可以包括各种形式的介质。例如,所述指令可以首先携带在远程计算机的磁盘或固态驱动器上。所述远程计算机可以将所述指令装载到它的动态存储器中,并且使用调制解调器,通过电话线路发送所述指令。计算机系统1500本地的调制解调器可以接收所述电话线路上的数据,并且使用红外发射器来将所述数据转换为红外信号。红外检测器可以接收在所述红外信号中携带的数据,并且合适的电路可以将所述数据置于总线1502上。总线1502将数据运送到主存储器1506,处理器1504从主存储器1506取回并执行所述指令。可选地,由所述主存储器1506接收的指令可以在处理器1504执行之前或执行之后被存储在存储设备1510中。
计算机系统1500还包括与总线1502耦合的通信接口1518。通信接口1518提供与网络链路1520耦合的双向数据通信,该网络链路1520连接到本地网络1522。例如,通信接口1518可以是集成服务数字网络(ISDN)卡、有线调制解调器、卫星调制解调器或者用于提供到对应类型的电话线路的数据通信连接的调制解调器。作为另一示例,通信接口1518可以是局域网(LAN)卡,用于提供到可兼容LAN的数据通信连接。还可以实现无线链路。在任何这种实现中,通信接口1518发送和接收电信号、电磁信号或光信号,该电信号、电磁信号或光信号携带表示各种类型的信息的数字数据流。
网络链路1520通常提供通过一个或多个网络去往其它数据设备的数据通信。例如,网络链路1520可以通过本地网络1522,提供去往主计算机1522或由互联网服务提供商(ISP)1526操作的数据装置的连接。ISP 1526接着通过现在被通称为“互联网”的全球分组数据通信网络1528提供数据通信服务。本地网络1522和互联网1528都使用携带数字数据流的电信号、电磁信号或光信号。通过各种网络的信号以及网络链接1520上且通过通信接口1518的信号是传输介质的示例形式,该通过各种网络的信号以及网络链接1520上且通过通信接口1518的信号将所述数字数据运送到计算机系统1500以及从计算机系统1500运送来所述数字数据。
计算机系统1500可以通过网络、网络链接1520以及通信接口1518,发送消息和接收数据,包括程序代码。在互联网的示例中,服务器1530可以通过互联网1528、ISP 1526、本地网络1522以及通信接口1518,发送应用程序的所请求的代码。
在接收代码时由处理器1504执行所接收的代码,并且将所接收的代码存储在存储设备1510或其它非易失性存储设备中,以供稍后执行。
在前面的说明书中,已经参照多个可以随着实现的改变而改变的具体细节描述本发明的实施例。因此,所述说明书和附图被认为仅仅是例示性的,而不是限制性的。本发明的范围独有且排他性的指示是本申请中发布的权利要求书的字面上的范围以及等价范围,其具体形式是这些权利要求所发布的形式,包括任何后续的校正,本发明的范围独有且排他性的指示是申请人想要的本发明的范围。
附录B
DIT.XML

Claims (6)

1.一种用于创建并使用设备交互树来确定设备状态的设备,其特征在于,包括:
一个或多个处理器;
一个或多个去往多个设备的接口和一个或多个来自所述多个设备的接口;
计算逻辑单元,与所述一个或多个处理器、所述一个或多个去往所述多个设备的接口、以及所述一个或多个来自所述多个设备的接口耦合,其中,所述计算逻辑单元被配置为使得执行下述步骤:
接收针对多个设备中的设备的状态的请求;
确定由设备交互树中的特定节点指定的特定询问和特定测试,其中,所述特定测试指定一个或多个值,所述设备交互树包括中间节点和叶节点,所述中间节点指定询问和测试,并且所述叶节点指定设备状态;
向所述设备发送包括所述特定询问的询问中的一个或多个询问;
从所述设备接收对所述一个或多个询问的一个或多个应答,所述一个或多个应答包括对所述特定询问的特定应答;
对所述特定应答应用所述特定测试,其中,所述特定测试对照所述一个或多个值来评估所述特定应答;
作为对所述特定应答应用所述特定测试的结果,从所述特定节点朝向所述叶节点中的一个或多个叶节点,遍历所述设备交互树;
通过对所述一个或多个应答应用所述测试中的一个或多个测试以到达所述设备交互树的叶节点中的特定叶节点,确定所述设备的状态,其中,所述特定叶节点指定所述设备的状态;
响应于针对所述设备的状态的请求,提供所述设备的状态,
其中,所述计算逻辑单元还被配置为使得设备管理应用执行下述步骤:接收所述请求,确定所述特定询问和所述特定测试,发送所述一个或多个询问,接收所述一个或多个应答,应用所述特定测试,遍历所述设备交互树,确定所述设备的状态,以及提供所述设备的状态,
所述计算逻辑单元还被配置为执行:
检测到所述设备交互树不能提供所述多个设备中的特定设备的特定状态;以及
响应于检测到所述设备交互树不能提供所述多个设备中的特定设备的特定状态,更新所述设备交互树来应对所述特定设备,而无需修改所述设备管理应用的代码。
2.如权利要求1所述的设备,其中,所述特定询问是所述一个或多个询问中的第一询问,所述特定应答是所述一个或多个应答中的第一应答,所述特定测试是所述一个或多个测试中的第一测试,所述一个或多个值是第一一个或多个值,并且所述特定节点是所述设备交互树的第一节点,并且其中,作为对所述第一应答应用所述第一测试的结果,从所述第一节点开始遍历所述设备交互树包括对所述设备交互树遍历到所述设备交互树的第二节点,所述计算逻辑单元还被配置为使得执行下述步骤:
确定与所述第二节点相关联的第二询问和第二测试,其中,所述第二测试指定第二一个或多个值,所述询问中的一个或多个询问包括所述第二询问,并且所述一个或多个应答包括对所述第二询问的第二应答;
对所述第二应答应用所述第二测试,其中,所述第二测试对照所述第二一个或多个值评估所述第二应答;
作为对所述第二应答应用所述第二测试的结果,从所述第二节点朝向所述特定叶节点遍历所述设备交互树。
3.如权利要求1所述的设备,其中,所述请求指定所述设备的地址,所述一个或多个询问被发送到所述地址,所述设备状态包括下述中的一个或多个:操作状态、设备配置或设备错误,并且所述询问中的一个或多个询问包括简单网络管理协议询问、打印机作业语言询问、页描述语言询问或超文本传输协议询问中的一个或多个。
4.如权利要求1所述的设备,所述计算逻辑单元还被配置为使得执行下述步骤:
在用户界面上接收针对特定设备观测到特定状态的指示;
将特定询问发送给所述特定设备;
接收对所述特定询问的特定应答;以及
至少部分地基于包括所述指示、所述特定询问和所述特定应答的信息集合,修改所述设备交互树。
5.如权利要求1所述的设备,其中,对于所述多个设备中的任何给定设备,所述设备交互树包括用于指定所述给定设备的状态的叶节点,并且其中所述多个设备包括至少两个具有不同能力的设备、至少两个具有不同配置的设备、至少两个来自不同制造商的设备、以及至少两个具有相同设备状态但对于相同询问作出不同的应答的设备。
6.一种用于创建并使用设备交互树来确定设备状态的方法,其特征在于,包括:
接收针对多个设备中的设备的状态的请求;
确定由设备交互树中的特定节点指定的特定询问和特定测试,其中,所述特定测试指定一个或多个值,所述设备交互树包括中间节点和叶节点,所述中间节点指定询问和测试,并且所述叶节点指定设备状态;
向所述设备发送包括所述特定询问的询问中的一个或多个询问;
从所述设备接收对所述一个或多个询问的一个或多个应答,所述一个或多个应答包括对所述特定询问的特定应答;
对所述特定应答应用所述特定测试,其中,所述特定测试对照所述一个或多个值来评估所述特定应答;
作为对所述特定应答应用所述特定测试的结果,从所述特定节点朝向所述叶节点中的一个或多个叶节点,遍历所述设备交互树;
通过对所述一个或多个应答应用所述测试中的一个或多个测试以到达所述设备交互树的叶节点中的特定叶节点,确定所述设备的状态,其中,所述特定叶节点指定所述设备的状态;
响应于针对所述设备的状态的请求,提供所述设备的状态;
其中,所述方法是由一个或多个计算设备执行的,
其中,所述方法还包括使得设备管理应用执行下述步骤:接收所述请求,确定所述特定询问和所述特定测试,发送所述一个或多个询问,接收所述一个或多个应答,应用所述特定测试,遍历所述设备交互树,确定所述设备的状态,以及提供所述设备的状态,
所述方法还包括:
检测到所述设备交互树不能提供所述多个设备中的特定设备的特定状态;以及
响应于检测到所述设备交互树不能提供所述多个设备中的特定设备的特定状态,更新所述设备交互树来应对所述特定设备,而无需修改所述设备管理应用的代码。
CN201210022442.7A 2011-02-01 2012-02-01 用于创建并使用设备交互树来确定设备状态的设备及方法 Expired - Fee Related CN102684905B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/019,169 US20120197929A1 (en) 2011-02-01 2011-02-01 Device interaction tree and technique
US13/019,169 2011-02-01

Publications (2)

Publication Number Publication Date
CN102684905A CN102684905A (zh) 2012-09-19
CN102684905B true CN102684905B (zh) 2015-03-25

Family

ID=45655323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210022442.7A Expired - Fee Related CN102684905B (zh) 2011-02-01 2012-02-01 用于创建并使用设备交互树来确定设备状态的设备及方法

Country Status (4)

Country Link
US (1) US20120197929A1 (zh)
EP (1) EP2492809A3 (zh)
JP (1) JP6056148B2 (zh)
CN (1) CN102684905B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9727441B2 (en) * 2011-08-12 2017-08-08 Microsoft Technology Licensing, Llc Generating dependency graphs for analyzing program behavior
JP2013196023A (ja) * 2012-03-15 2013-09-30 Canon Inc 情報処理装置、印刷システム、及び、エラー通知方法
US9064030B2 (en) * 2012-11-29 2015-06-23 International Business Machines Corporation Tree traversal in a memory device
JP6324134B2 (ja) * 2014-03-19 2018-05-16 キヤノン株式会社 画像形成装置、画像形成装置の制御方法、及びプログラム
CN104572884B (zh) * 2014-12-22 2018-06-19 深圳市科漫达智能管理科技有限公司 设备控制方法、装置及系统
US20160192107A1 (en) * 2014-12-26 2016-06-30 Tech Mahindra Ltd. System And Method To Selectively Manage Add-On Data, Application, Software, Hardware On A Handheld Device Over The Air

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889741A (zh) * 2005-06-30 2007-01-03 华为技术有限公司 在设备管理中实现预定操作的方法及装置
CN101512969A (zh) * 2006-09-06 2009-08-19 网络通保安有限公司 推式更新系统
CN101584245A (zh) * 2006-12-22 2009-11-18 艾利森电话股份有限公司 用于通信装置配置的方法和设备

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336106B1 (en) * 1994-02-15 2002-01-01 R.R. Donnelley & Sons Company System and method for partitioning a real-valued attribute exhibiting windowed data characteristics
US5694524A (en) * 1994-02-15 1997-12-02 R. R. Donnelley & Sons Company System and method for identifying conditions leading to a particular result in a multi-variant system
US5644686A (en) * 1994-04-29 1997-07-01 International Business Machines Corporation Expert system and method employing hierarchical knowledge base, and interactive multimedia/hypermedia applications
JPH08292811A (ja) * 1995-04-24 1996-11-05 Nec Corp 障害診断方法及び装置
US7500143B2 (en) * 2000-05-05 2009-03-03 Computer Associates Think, Inc. Systems and methods for managing and analyzing faults in computer networks
US7028122B2 (en) * 2002-08-07 2006-04-11 Sun Microsystems, Inc. System and method for processing node interrupt status in a network
US8775584B2 (en) * 2003-04-29 2014-07-08 Microsoft Corporation Method and apparatus for discovering network devices
DE102006017824B4 (de) * 2006-04-13 2018-10-11 Dspace Digital Signal Processing And Control Engineering Gmbh Methode zum Konstruieren einer Diagnosefunktion
US20070294090A1 (en) * 2006-06-20 2007-12-20 Xerox Corporation Automated repair analysis using a bundled rule-based system
US8381212B2 (en) * 2007-10-09 2013-02-19 International Business Machines Corporation Dynamic allocation and partitioning of compute nodes in hierarchical job scheduling
US20090204578A1 (en) * 2008-02-12 2009-08-13 Microsoft Corporation Targeted queries using an oma dm protocol

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1889741A (zh) * 2005-06-30 2007-01-03 华为技术有限公司 在设备管理中实现预定操作的方法及装置
CN101512969A (zh) * 2006-09-06 2009-08-19 网络通保安有限公司 推式更新系统
CN101584245A (zh) * 2006-12-22 2009-11-18 艾利森电话股份有限公司 用于通信装置配置的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Test-Based DiagnosisTree and Matrix Representations;Alina Beygelzimer,Mark Brodie,Sheng Ma,Irina Rish;《IEEE/IEE Electronic Library (IEL) 数据库》;20050515;全文 *

Also Published As

Publication number Publication date
EP2492809A2 (en) 2012-08-29
US20120197929A1 (en) 2012-08-02
EP2492809A3 (en) 2013-02-27
CN102684905A (zh) 2012-09-19
JP6056148B2 (ja) 2017-01-11
JP2012160186A (ja) 2012-08-23

Similar Documents

Publication Publication Date Title
US11860821B2 (en) Generating target application packages for groups of computing devices
CN108628661B (zh) 云制造服务的自动建置方法、云制造系统
CN102684905B (zh) 用于创建并使用设备交互树来确定设备状态的设备及方法
CN103365683B (zh) 用于端到端补丁自动化和集成的方法和系统
US8321549B2 (en) Action execution management for service configuration items
US9063808B2 (en) Deploying a package for a software application
US6859923B2 (en) Method, system, program, and data structures for using a database to apply patches to a computer system
US20050235248A1 (en) Apparatus for discovering computing services architecture an developing patterns of computing services and method therefor
US20060168575A1 (en) Defining a software deployment
KR20090105830A (ko) 원격 어플리케이션 구성 관리 방법 및 장치
CN106469068B (zh) 应用程序的部署方法及系统
CN102165419A (zh) 用于管理批作业的计算机系统及其方法及计算机程序
CN101004689A (zh) 用于自动安装系统专用驱动程序的方法和系统
US10740077B2 (en) Information processing system and information processing apparatus for facilitating installation of applications obtained from server on a networked electronic device
US9098583B2 (en) Semantic analysis driven service creation within a multi-level business process
US6985786B2 (en) Method for managing manufacturing data
US20050289539A1 (en) Central installation, deployment, and configuration of remote systems
JP2003208501A (ja) ビジネスプロセス定義表示方法およびプログラム
US11893383B2 (en) Configuration properties management for software
US20190286453A1 (en) System construction assisting apparatus, method, and program
JP2006285473A (ja) 製造工程管理システム
CN109416627A (zh) 用于修订功能或向自动化设备添加功能的方法
JP3761911B2 (ja) ファイルサーバおよびファイル管理方法
Dirnfeld Reuse in self-adaptive software systems: a literature review
US11894976B1 (en) Automated predictive change analytics

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150325

Termination date: 20200201