CN103684812B - 用于管理远程设备的方法和装置 - Google Patents

用于管理远程设备的方法和装置 Download PDF

Info

Publication number
CN103684812B
CN103684812B CN201210320842.6A CN201210320842A CN103684812B CN 103684812 B CN103684812 B CN 103684812B CN 201210320842 A CN201210320842 A CN 201210320842A CN 103684812 B CN103684812 B CN 103684812B
Authority
CN
China
Prior art keywords
identifier
remote equipment
status information
template
module
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.)
Active
Application number
CN201210320842.6A
Other languages
English (en)
Other versions
CN103684812A (zh
Inventor
A·金德
刘天成
杨林
余涛
钟虓
张煜
张跃
孙科伟
刘培妮
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201210320842.6A priority Critical patent/CN103684812B/zh
Priority to US14/014,459 priority patent/US9781010B2/en
Publication of CN103684812A publication Critical patent/CN103684812A/zh
Application granted granted Critical
Publication of CN103684812B publication Critical patent/CN103684812B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/34Signalling channels for network management communication
    • H04L41/344Out-of-band transfers
    • 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/32Specific management aspects for broadband networks
    • 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/08Configuration management of networks or network elements
    • H04L41/0876Aspects of the degree of configuration automation
    • H04L41/0879Manual configuration through operator
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明的各实施方式提供了用于管理远程设备的方法和装置。在本发明的一个实施方式中,提供了一种用于管理远程设备的方法,包括:基于远程设备的状态信息中的名称序列来获取第一标识符,第一标识符用于指示提供状态信息的模板;基于状态信息中的数值序列获取第二标识符;发送状态访问通知,状态访问通知至少包括第一标识符和第二标识符;以及响应于接收到激活状态访问通知的结果,基于第一标识符和第二标识符提供状态信息。在本发明的一个实施方式中,提供了一种用于管理远程设备的装置。

Description

用于管理远程设备的方法和装置
技术领域
本发明的各实施方式涉及设备管理,更具体地,涉及用于管理远程设备的方法、装置和相关计算机程序产品。
背景技术
随着通信技术以及计算机技术的发展,已经在很大程度上实现了对远程设备进行自动监控。设备管理员可以通过监控设备来远程监控设备的运行状态,当设备出现异常时还可以通过网络来检查设备并排除故障。
随着远程设备功能的日益强大,设备的复杂性也越来越高。为了全面掌握设备的各方面的状态,需要监视的状态信息的种类和监控频率都有了显著增长;并且在单个远程设备日益复杂化的同时,远程设备的数量也在不断增长。例如,在发电站、楼宇控制等具体应用环境中,可能会涉及数千甚至上万的远程设备。监控这些远程设备时产生的设备状态数据的数据量将是巨大的。
在例如发电站等应用环境中,在远程设备管理中所使用的网络带宽还存在限制,而升级这些网络基础设施将需要巨大投资。另外,在远程管理网络出现故障的情况下,如何通过数据带宽更为受限的备用通信方式来传输众多远程设备的状态信息,也成为一项难题。以短消息服务(Short Message Service,SMS)这一通信方式为例,在每个短消息中仅允许最多传输160个7bit字符,因而几乎不可能以短消息形式来向管理员传输远程设备的各种状态信息。面临上述问题,如何在带宽受限的情况下更有效地向设备管理员实时传输远程设备的状态数据成为一项亟待解决的问题。
发明内容
因而,期望开发出一种方便高效的管理远程设备的技术方案,期望该技术方案在向设备管理员传输远程设备的状态信息时可以尽量减少传输数据量,并且期望设备管理员可以仅通过简单操作即可查看远程设备的完整信息。为此,本发明的各个实施方式提供了用于管理远程设备的方法和装置。
根据本发明的一个方面,提供了一种用于管理远程设备的方法,包括:基于远程设备的状态信息中的名称序列来获取第一标识符,第一标识符用于指示提供状态信息的模板;基于状态信息中的数值序列获取第二标识符;发送状态访问通知,状态访问通知至少包括第一标识符和第二标识符;以及响应于接收到激活状态访问通知的结果,基于第一标识符和第二标识符提供状态信息。
根据本发明的一个方面,基于远程设备的状态信息中的名称序列来获取第一标识符包括:选择与名称序列相对应的模板;以及将第一标识符设置为模板的标识符。
根据本发明的一个方面,提供了一种用于管理远程设备的装置,包括:第一获取模块,配置用于基于远程设备的状态信息中的名称序列来获取第一标识符,第一标识符用于指示提供状态信息的模板;第二获取模块,配置用于基于状态信息中的数值序列获取第二标识符;通知模块,配置用于发送状态访问通知,状态访问通知至少包括第一标识符和第二标识符;以及提供模块,配置用于响应于接收到激活状态访问通知的结果,基于第一标识符和第二标识符提供状态信息。
根据本发明的一个方面,第一获取模块包括:选择模块,配置用于选择与名称序列相对应的模板;以及设置模块,配置用于将第一标识符设置为模板的标识符。
采用本发明所述的方法和装置,可以在尽可能少地改动现有远程管理系统的带内通信网络和带外通信网络的情况下,大大降低管理远程设备时的数据传输量;还可以以一种简单有效的方式,向设备管理员提供远程设备的状态信息;进而摆脱远程设备管理中对于传输带宽的依赖。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
图2示意性示出了本发明的应用环境的示意图;
图3示意性示出了根据本发明一个实施方式的用于管理远程设备的方法的流程图;
图4示意性示出了根据本发明一个实施方式的模板的示意图;
图5A-图5C分别示意性示出了根据本发明一个实施方式的远程设备的示意图;
图6示意性示出了根据本发明一个实施方式的显示视图的示意图;以及
图7示意性示出了根据本发明一个实施方式的用于管理远程设备的装置的框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
图2示意性示出了本发明的应用环境的示意图200,应用环境200示意性示出了远程设备管理中所涉及的各方面内容。例如,远程设备210、212、...214表示部署在工作现场的受监控对象,远程设备例如可以是发电站内的控制器,还可以是楼宇控制中的其他设备,等等。应当注意,本发明并不限定具体的应用环境,而是可以应用于需要对远程设备进行监控的任何应用环境(例如,应用于物联网)。
通常,在远程设备管理中提供两种通信方式,带内(in-band)通信和带外(out-of-band)通信。所谓带内通信一般是指日常使用的、用于远程设备管理的数据网络(例如,有线/无线局域网,或互联网的一部分),来传输设备状态信息以及各种控制信息,例如在发电站中的专用通信网络。带内通信能力受到网络状态的限制,当网络出现故障时则无法对远程设备进行监视和管理,因而通常将带外通信用作带内通信的补充。带外通信一般是指使用独立于带内通信的通信通道,它允许设备管理员使用独立于远程监控网络的方式与设备进行通信和管理,例如,使用无关于发电站、楼宇管理这些应用环境的通信网络(例如,由通信网络运营商提供的各种服务)。在本发明的上下文中,仅以短消息服务作为带外通信的一个示例,然而带外通信的实现方式并不局限于此,而是可以包括但不限于多媒体消息服务、电子邮件服务等。
基础设备240是指提供远程设备管理中涉及的各种底层设备,例如服务器、路由器等。应用250表示在基础设备240上实现的各种具体应用,而远程管理服务器260即为本发明中用于对远程设备210、212、...214进行监视和管理的服务器。在图2中,以实线连接示出了应用环境中的带内通信信道,并以虚线示出了应用环境中的带外通信信道。设备管理员270可以通过带内和带外两种方式来监视和管理远程设备210-214。应当注意,无论采用带内通信还是带外通信,都期望仅传输与状态信息最为相关的数据,以便减少数据传输量。对于带外数据传输而言,尤其如此。
本领域技术人员应当理解,在某些情况下,远程设备的状态信息通常以列表表示并且包括状态名称以及状态数值两部分。下文表1中示意性示出了状态信息的一个示例:
表1状态信息
序号 名称 数值
1 CPU使用率 100%
2 存储器使用率 29%
3 网络接口1故障 False
应当注意,状态信息中通常“数值”一列的字段长度较短,通常是整数、小数或者布尔值表示;而“名称”一列的字段长度较长,通常需要较长的数据长度来表示。因而,可以考虑将“名称”一列中的所有状态名称映射至一个特殊标识符,并且将该特殊标识符与“数值”列中的各个数值一起作为通知发送给设备管理员。当设备管理员激活通知并访问远程管理服务器时,再利用与特殊标识符对应的格式显示“数值”列中的数据,即可显示完整的状态信息。以此方式,可以避免传输状态信息中诸如“名称”列中的大量文本信息,因而可以大大降低远程设备发送状态信息(无论通过带内通信还是带外通信)时所需带宽。
基于上述设计原理,在本发明的一个实施方式中,提供了一种用于管理远程设备的方法,包括:基于远程设备的状态信息中的名称序列来获取第一标识符,第一标识符用于指示提供状态信息的模板;基于状态信息中的数值序列获取第二标识符;发送状态访问通知,状态访问通知至少包括第一标识符和第二标识符;以及响应于接收到激活状态访问通知的结果,基于第一标识符和第二标识符提供状态信息。
具体地,将参见图3-图7详细描述本发明的各个实施方式。图3示意性示出了根据本发明一个实施方式的用于管理远程设备的方法的流程图300。
首先在步骤S302中,基于远程设备的状态信息中的名称序列来获取第一标识符,第一标识符用于指示提供状态信息的模板。如上文表1所示,状态信息中的“名称”列和“数值”列分别对应于名称序列<CPU使用率,存储器使用率,网络接口1故障>,以及数值序列<100%,29%,False>。
在此实施方式中,可以在远程设备处预先存储多个模板,并且在远程管理服务器处也存储相同的模板,每个模板具有唯一的标识符。因而在状态访问通知中仅需传输模板的标识符和数值内容,就可以基于相应的模板显示状态信息。例如,在模板中可以存储状态信息中各项状态的名称。作为简单示例,可以将远程设备处预先存储的如下模板作为表1所示状态信息的模板。
T1=<CPU使用率,存储器使用率,网络接口1故障>。
在此示例中,第一标识符可以为“T1”。本领域技术人员可以根据实际需要自定义模板的格式,例如还可以存储描述每个状态的数值的数据格式(例如,数据位的数量)。
在步骤S304中,基于状态信息中的数值序列获取第二标识符。数值序列中的各个数值项分别与名称序列中的各个状态名称相对应,例如,可以利用以特殊字符(例如@)分隔数值序列中各个数值的方法构造第二标识符。对于表1所示的示例,第二标识符可以为“100%@29%@False”;或者还可以采用其他方式来将第二标识符压缩至更短的长度。
在步骤S306中,发送状态访问通知,状态访问通知至少包括第一标识符和第二标识符。可以通过带内通信和/或带外通信来发送状态访问通知。继续上文示例,状态访问通知应当至少包括第一标识符“T1”和第二标识符“100%@29%@False”。可以采用特殊字符(例如“&”)来连接第一标识符和第二标识符,此时的状态访问通知可以是“T1&100%@29%@False”;还可以采用预定义标记来分别指示第一标识符和第二标识符的开始,例如将“t=”作为第一标识符的前缀并将“s=”作为第二标识符的前缀,此时的状态访问通知可以是“t=T1&s=100%@29%@False”。本领域技术人员还可以以其他方式生成状态访问通知,只要能够在需要时根据预定算法从状态访问通知中提取第一和第二标识符即可。
在步骤S308中,响应于接收到激活状态访问通知的结果,基于第一标识符和第二标识符提供状态信息。应当注意,“接收到激活状态访问通知的结果”是提供状态信息的触发条件。在此并不关心在何处以及采取何种方式激活状态访问通知,而是仅关心用户是否已经激活状态访问通知的结果。例如,在以统一资源标识符(URI)的形式表示状态访问通知时,在用户的移动终端处点击该URI即表示激活状态访问通知,此时当服务器检测到该URI被访问即表示“接收到激活状态访问通知的结果”。应当注意,在远程设备管理中的用户包括设备管理员,因而在本发明中并不特意区分用户和设备管理员。
在本发明的一个实施方式中,发送状态访问通知包括:向用户的移动终端发送状态访问通知。在本发明的一个实施方式中,所接收到的激活状态访问通知的结果是在用户的移动终端处激活状态访问通知的结果。例如,在利用短消息服务向用户的移动终端发送以统一资源标识符(URI)的形式表示状态访问,在移动终端处点击该URI即表示用户激活状态访问通知。
在本发明的一个实施方式中,发送状态访问通知包括:向服务器发送状态访问通知。在本发明的一个实施方式中,所接收到激活所述状态访问通知的结果是激活与该状态访问通知相对应的第二通知的结果。例如,可以向服务器发送状态访问通知,服务器生成与状态访问通知相关联的状态信息,并向用户的移动终端发送与该状态信息相对应的第二通知(该第二通知例如可以是URI并且以短消息服务的形式发送至用户的移动终端)。此时,用户仅需点击该URI即可从服务器处访问与状态访问通知相关联的状态信息。
采用与上文构造第一、第二标识符相反的方法,从状态访问通知中提取的第一、第二标识符分别为“T1”和“100%@29%@False”的情况下,由于在远程管理服务器处也存储有预定义的模板,可以从“T1”得知应当使用以下模板来显示统计信息:
T1=<CPU使用率,存储器使用率,网络接口1故障>。
在此实施方式中,仅需将“100%@29%@False”中各数值与模板T1中的各状态名称相对应地显示,即可提供如下状态信息:
CPU使用率=100%
存储器使用率=29%
网络接口1故障=False
应当注意,本发明的各个实施方式并不限制在何时生成状态信息,上文示出了基于已经采集的状态信息选择预定义模板T1的情况;还可以是,首先选定模板T1再从监视装置采集与模板T1中的诸如“CPU使用率、存储器使用率、网络接口1故障”的各个状态相关联的状态信息。另外,由于远程设备的状态信息中的数值序列与名称序列是相互对应的,并且名称序列是与预定义的模板的内容是相互对应的,因而基于状态信息中的数值序列获取第二标识符意味着,基于与第一标识符指定的模板来获取第二标识符。在模板中还包括描述每个状态的数值的数据格式的情况下,基于状态信息中的数值序列获取第二标识符意味着,基于与第一标识符指定的模板、按照模板中定义的数据格式来获取第二标识符。
在上述实施方式中提供了一种利用“状态访问通知”来管理远程设备的方法,由于状态信息是与特定远程设备相关联的,因而在状态访问通知中还可以包括例如设备编号等设备标识。具体地,在本发明的一个实施方式中,状态访问通知进一步包括:第三标识符,用于指示所示远程设备的设备标识。继续上文的示例,假设远程设备ID=42,采用“d=”作为第三标识符的前缀,则状态访问通知可以表示为“t=T1&s=100%@29%@False&d=42”。应当注意,在能够明确区别上述三个标识符的情况下,本发明可以不限制各个标识符的前后顺序,例如可以将第三标识符置于首位。
应当注意,本发明的原理基于状态访问通知中包括的第一标识符和第二标识符来提供状态数据,即按照第一标识符指示的模板来显示第二标识符中包括的状态信息中的数值序列。在状态访问通知中增加“第三标识符”是用于提供更多的辅助信息,而并非提供状态信息时所需的必要特征。
在本发明的一个实施方式中,基于远程设备的状态信息中的名称序列来获取第一标识符包括:选择与名称序列相对应的模板;以及将第一标识符设置为模板的标识符。
应当理解,对于不同类型的远程设备可以定义不同的模板,模板的内容是与将被发送至设备管理员的状态信息相关联。根据远程设备种类以及控制目的的不同,还可以根据需要创建新的模板或者更新现有的模板。例如当需要监视的另一远程设备的状态信息如下文表2所示时,可以预定义新的模板T2=<CPU温度,电池电量>。另外,还可以定义与触发事件相对应的模板:该触发事件例如,远程设备的CPU使用率长期(例如,超过5分钟)处于100%的状态,该模板例如T3=<CPU温度,机箱温度>。并且可以在发生该触发事件时,基于模板T3查询远程设备的CPU温度和机箱温度以获得状态信息。触发事件例如还可以是周期性的,例如每隔2小时根据模板T3定期查询远程设备的状态。
表2状态信息
序号 名称 数值
1 CPU温度 70℃
2 电池电量 30%
应当注意,在远程设备和远程管理服务器处的模板要保持一致,例如可以基于远程管理服务器处的模板来定期更新远程设备处的模板。
在本发明的一个实施方式中,基于状态信息中的数值序列获取第二标识符包括:将数值序列进行编码以形成第二标识符。在上文仅给出了将数值序列中的各项进行简单连接来形成第二标识符的示例,还可以采用其他编码方式来将较长的数值序列进一步压缩至较短字符串的方式。
具体地,可以分别采用3bit,来将CPU使用率100%和存储器使用率29%表示为二进制的“111”和“010”,并采用1bit来将布尔值False表示为“0”。在已知各个数值所对应长度的情况下,可以在无需分隔符的情况下将各个二进制数连接为“1110100”。此时,第二标识符表示为二进制数“1110100”,这样可以大大缩短第二标识符的长度。进一步,还可以采用例如16进制将第二标识符表示为“74”,甚至还可以基于ASCII编码表来进一步将“1110100”表示为一个字符“t”(字符t的ASCII编码对应于二进制“1110100”)。本领域技术人员还可以采用其他任何编码方式,来获得第二标识符。
在下文中,将参见图4解释图3中步骤S302-S306。图4示意性示出了根据本发明一个实施方式的模板的示意图400。在图4中示出了远程设备410,并且其设备ID=42。在此实施方式中,远程设备410的状态信息如上文表1所示,通过分析如表1所示的状态信息而生成状态访问通知420。该状态访问通知420包括如下部分:以“d=”为前缀的第三标识符,表示远程设备ID为42;以“t=”为前缀的第一标识符,表示使用第4711号模板;以及以“s=”为前缀的第二标识符,表示状态信息中的数值序列经过编码的结果为字母t。模板430定义了状态信息中的名称序列,即包括每个状态的名称,以及使用怎样的数据长度来描述该状态的数值。在下文表3中示意性示出了一个模板。
表3模板
ID 模板ID,16bit
状态1 CPU使用率,3bit
状态2 存储器使用率,3bit
状态3 网络接口1故障,1bit
在本发明的一个实施方式中,状态访问通知是统一资源标识符。例如对于图4中的示例,在状态访问通知420中还可以包括其他字符,例如“Https://***.com/**?”与其后的第三、第一和第二标识符串联后,构成一个统一资源标识符(URI)。或者,状态访问通知还可以仅包括第一、第二和第三标识符,当设备管理员的移动终端收到该状态访问通知时,可以将移动终端内本地存储的URI前缀与该通知的内容进行拼接,这样可以进一步减少数据传输量。设备管理员通过点击该URI即可激活状态访问通知420,进而通过web服务访问远程管理服务器并获取相应的状态信息。
还应当注意,为了进一步压缩状态访问通知420的长度,还可以使用其他压缩算法来压缩状态访问通知420内的字符串。在激活如此进一步压缩的状态访问通知后,还需要执行相应的解压算法。
在本发明的一个实施方式中,发送状态访问通知是基于带内通信和带外通信中的至少一个来执行的。远程设备可以支持带内通信和带外通信两者,可以同时使用两种通信方式来进行远程设备管理,或者还可以在带内通信正常运行时使用带内通信,而仅在带内通信出现故障时使用带外通信。当使用带外通信时,例如可以将状态访问通知以短消息、多媒体消息或者电子邮件来发送至设备管理员的移动终端。
应当注意,为了随时获得远程设备的状态信息,通常以较小的时间间隔(例如,0.5s)获得测量值,若以此频率向设备管理员发送状态信息,无论通过带内通信还是带外通信都将造成较大的数据流量;尤其带外通信根本无法承受这样的数据流量。因而为了进一步压缩状态访问通知的数据量,还可以在远程设备处完成对测量值的预处理,并且仅向设备管理员发送处理后的结果。
在本发明的一个实施方式中,进一步包括:根据模板采集关于远程设备的测量值;以及在远程设备处对测量值进行预处理,以生成状态信息。根据模板采集关于远程设备的测量值是指,从模板中提取需要采集哪个远程设备的哪些状态。例如对于上文表3所示的模板,表示需要采集设备ID为42的远程设备的“CPU使用率”、“存储器使用率”和“网络接口1故障”这3个状态。预处理可以包括但不限于如下内容:(1)求取测量值在一定时间段内的平均值;(2)求取测量值在一定时间段内的最大值/最小值;(3)求取测量值在一定时间段内的标准方差;等等。
图5A-图5C分别示意性示出了根据本发明一个实施方式的远程设备500A-500C的示意图。在附图5A中,远程设备500A包括:测量模块512A,用于采集原始测量值;命令执行模块514A,用于执行基本的预处理操作;存储模块516A,用于存储原始测量值以及预处理后的结果;操作模块518A,用于执行控制操作;以及接口模块520A,用于与其他外部设备进行互联,例如可以连接用于支持带外通信的通信模块。
远程设备可以具有不同的组成结构,例如,远程设备不必包括图5A中所示的全部模块512A-518A,并且远程设备还可以通过接口模块来耦合至其他模块。例如,图5B中的远程设备500B通过接口模块520B耦合至存储模块516B、操作模块518B以及支持带外通信的通信模块。或者,如图5C所示,远程设备500C本身还可以包括支持带外通信的通信模块522C。
在本发明的一个实施方式中,响应于接收到激活状态访问通知的结果,基于第一标识符和第二标识符提供状态信息包括:基于与第一标识符相对应的模板生成显示视图;解析第二标识符以获取数值序列;以及向显示视图中插入数值序列以提供状态信息。
如上文所述,当状态访问通知是URI时,可以简单地通过点击该URI即可激活该状态访问通知。此时,远程管理服务器将解析URI的内容以便从中提取第一、第二和第三标识符,进而基于各标识符的含义提供相应的状态信息。提取第一、第二和第三标识符的过程是上文所述的生成过程的逆过程,现在将以状态访问通知“Https://***.com/**?d=42&t=4711&s=t”为例说明如何进行提取。
由于远程管理服务器知晓对于状态访问通知的生成规则,因而可以通过前缀“d=”、“t=”和“s=”获得:
第一标识符:4711,表示模板编号为4711;
第二标识符:t,表示将数值序列编码后的结果为t;以及
第三标识符:42,表示监视对象的设备ID为42。
在此实施方式中,基于与第一标识符相对应的模板生成显示视图是指,从模板提取状态信息中的名称序列,并且按顺序显示各个状态的名称。例如对于表3所示的模板,可以生成例如表4所示的初始显示视图。
表4初始显示视图
CPU使用率
存储器使用率
网络接口1故障
应当注意,此时的显示视图中右侧数据列中内容为空,需要利用解析第二标识符后获取数值序列进行填充。由于t是将数值序列编码后的结果,因而还需要将t解码。通过ASCII编码可知,t对应的二进制序列是1110100,通过在第4711号模板中定义的数据格式(如上文表3所示),可以得知t表示的数值序列为<100%,29%,False>。最后,向表4所示的显示视图的右侧空白列中插入数值序列以形成如表5所示的最终显示视图。应当注意,在此实施方式中的生成、解析和插入步骤是在移动终端以外完成的,并且向移动终端提供的是最终显示视图(如表5所示)。例如在以URI表示状态访问通知的实施方式中,可以以web页面的方式提供最终显示视图。
表5最终显示视图
CPU使用率 100%
存储器使用率 29%
网络接口1故障 False
在本发明的一个实施方式中,响应接收到激活状态访问通知的结果,基于第一标识符和第二标识符提供状态信息进一步包括:向显示视图附加所以下中的至少一项:远程设备的基本信息、历史状态信息以及控制命令。
在本发明的一个实施方式中,还可以向最终显示视图中插入所监视远程设备的基本信息。例如,通过设备ID=42可以获得并在最终显示视图中显示设备名称、设备类型、设备描述以及其他基本信息。通过设备ID,可以从远程管理服务器中获取该远程设备的历史状态信息,并以例如列表、曲线图等形式附加至显示视图末端。另外,还可以显示可以针对所监视的远程设备执行的控制命令。例如,当发现CPU使用率长期处于100%,怀疑远程设备可能出现故障,因而可以显示“重新启动”的控制命令;又例如发现CPU使用率处于100%时,可以显示用于查询CPU温度的控制命令“查询温度”,以确保CPU处于正常状态。
在本发明的一个实施方式中,进一步包括:响应于接收到调取控制命令,触发远程设备执行动作。例如,当点击“重新启动”的控制命令,可以触发远程设备重新启动;当点击“查询温度”时,可以触发远程设备在当前web页面或者新的web页面中显示CPU的温度信息;或者还可以将“CPU温度”这一统计状态以上文所述的状态访问通知的形式,通过带外通信传输至用户的移动终端。
现在参见图6来描述生成最终显示结果的过程。图6示意性示出了根据本发明一个实施方式的显示视图的示意图600。附图标记610示出了状态访问通知“Https://***.com/**?d=42&t=4711&s=t”,其中第二标识符4711对应的模板如附图标记620所示,基于模板620生成的显示视图如附图标记630所示。基本信息632可以是基于设备ID=42获取的该设备的各种性信息,状态信息634中左列的状态名称是基于与第二标识符相对应的模板620获得的,而状态信息634中右列的数值是基于解析第三标识符t而获得的。显示视图630还可以包括历史信息636以及控制命令638。
上文所示的用于管理远程设备的方法可以适用于带内通信和带外通信两者,并且尤其适合于传输数据量极为受限的带外通信。本领域技术人员可以参考上文所述的方法,采用其他数据结构来构造适合于带内通信的带宽的实施方式。例如,在带内通信中可以采用Java脚本对象注释(Java Script Object Notation,JSON)格式来自定义如下数据结构,或者还可以采用XML来实现类似的数据结构。
上文仅示意性示出了如何基于状态访问消息来管理远程设备,本领域技术人员可以结合具体应用需求来设计其他实施方式:例如,可以向状态访问通知中加入时间戳,以避免对因延迟或者重发造成的混乱;可以在出现特定条件时向设备管理员发送状态访问通知,或者提供故障诊断帮助。
图7示意性示出了根据本发明一个实施方式的用于管理远程设备的装置的框图700。在此实施方式中,提供了一种用于管理远程设备的装置,包括:第一获取模块710,配置用于基于远程设备的状态信息中的名称序列来获取第一标识符,第一标识符用于指示提供状态信息的模板;第二获取模块720,配置用于基于状态信息中的数值序列获取第二标识符;通知模块730,配置用于向发送状态访问通知,状态访问通知至少包括第一标识符和第二标识符;以及提供模块740,配置用于响应于接收到激活状态访问通知的结果,基于第一标识符和第二标识符提供状态信息。
在本发明的一个实施方式中,第一获取模块710包括:选择模块,配置用于选择与名称序列相对应的模板;以及设置模块,配置用于将第一标识符设置为模板的标识符。
在本发明的一个实施方式中,第二获取模块720包括:编码模块,配置用于将数值序列进行编码以形成第二标识符。
在本发明的一个实施方式中,提供模块740包括:生成模块,配置用于基于与第一标识符相对应的模板生成显示视图;解析模块,配置用于解析第二标识符以获取数值序列;以及插入模块,配置用于向显示视图中插入数值序列以提供状态信息。
在本发明的一个实施方式中,提供模块740进一步包括:附加模块,配置用于向显示视图附加所以下中的至少一项:远程设备的基本信息、历史状态信息以及控制命令。
在本发明的一个实施方式中,进一步包括:附加控制模块,配置用于向所述显示视图附加控制令;以及触发模块,配置用于响应于接收到用户调取控制命令,触发远程设备执行动作。
在本发明的一个实施方式中,进一步包括:获取模块,配置用于获取关于远程设备的测量值;以及预处理模块,配置用于在远程设备处对测量值进行预处理,以生成状态信息。
在本发明的一个实施方式中,状态访问通知是统一资源标识符。
在本发明的一个实施方式中,通知模块730包括:带内通信模块和带外通信模块中的至少一个。
在本发明的一个实施方式中,所示状态访问通知进一步包括:第三标识符,用于指示所示远程设备的设备标识。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (14)

1.一种用于管理远程设备的方法,包括:
基于所述远程设备的状态信息中的名称序列来获取第一标识符,所述第一标识符用于指示提供所述状态信息的模板;
基于所述状态信息中的数值序列获取第二标识符;
发送状态访问通知,所述状态访问通知至少包括所述第一标识符和所述第二标识符,其中所述状态访问通知是统一资源标识符;以及
响应于接收到激活所述状态访问通知的结果,基于所述第一标识符和所述第二标识符提供所述状态信息。
2.根据权利要求1所述的方法,其中基于所述远程设备的状态信息中的名称序列来获取第一标识符包括:
选择与所述名称序列相对应的所述模板;以及
将所述第一标识符设置为所述模板的标识符。
3.根据权利要求1或2所述的方法,其中基于所述第一标识符和所述第二标识符提供所述状态信息包括:
基于与所述第一标识符相对应的模板生成显示视图;
解析所述第二标识符以获取所述数值序列;以及
向所述显示视图中插入所述数值序列以提供所述状态信息。
4.根据权利要求3所述的方法,其中基于所述第一标识符和所述第二标识符提供所述状态信息进一步包括:
向所述显示视图附加所以下中的至少一项:所述远程设备的基本信息、历史状态信息以及控制命令。
5.根据权利要求4所述的方法,进一步包括:
向所述显示视图附加控制命令;以及
响应于接收到调取所述控制命令,触发所述远程设备执行动作。
6.根据权利要求1或2所述的方法,进一步包括:
根据所述模板采集关于所述远程设备的测量值;以及
在所述远程设备处对所述测量值进行预处理,以生成所述状态信息。
7.根据权利要求1或2所述的方法,其中所述状态访问通知进一步包括:第三标识符,用于指示所述远程设备的设备标识。
8.一种用于管理远程设备的装置,包括:
第一获取模块,配置用于基于所述远程设备的状态信息中的名称序列来获取第一标识符,所述第一标识符用于指示提供所述状态信息的模板;
第二获取模块,配置用于基于所述状态信息中的数值序列获取第二标识符;
通知模块,配置用于发送状态访问通知,所述状态访问通知至少包括所述第一标识符和所述第二标识符,其中所述状态访问通知是统一资源标识符;以及
提供模块,配置用于响应于接收到激活所述状态访问通知的结果,基于所述第一标识符和所述第二标识符提供所述状态信息。
9.根据权利要求8所述的装置,其中所述第一获取模块包括:
选择模块,配置用于选择与所述名称序列相对应的所述模板;以及
设置模块,配置用于将所述第一标识符设置为所述模板的标识符。
10.根据权利要求8或9所述的装置,所述提供模块包括:
生成模块,配置用于基于与所述第一标识符相对应的模板生成显示视图;
解析模块,配置用于解析所述第二标识符以获取所述数值序列;以及
插入模块,配置用于向所述显示视图中插入所述数值序列以提供所述状态信息。
11.根据权利要求10所述的装置,其中所述提供模块进一步包括:
附加模块,配置用于向所述显示视图附加所以下中的至少一项:所述远程设备的基本信息、历史状态信息以及控制命令。
12.根据权利要求11所述的装置,进一步包括:
附加控制模块,配置用于向所述显示视图附加控制命令;以及
触发模块,配置用于响应于接收到调取所述控制命令,触发所述远程设备执行动作。
13.根据权利要求8或9所述的装置,进一步包括:
采集模块,配置用于根据所述模板采集关于所述远程设备的测量值;以及
预处理模块,配置用于在所述远程设备处对所述测量值进行预处理,以生成所述状态信息。
14.根据权利要求8或9所述的装置,其中所述状态访问通知进一步包括:第三标识符,用于指示所述远程设备的设备标识。
CN201210320842.6A 2012-08-31 2012-08-31 用于管理远程设备的方法和装置 Active CN103684812B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201210320842.6A CN103684812B (zh) 2012-08-31 2012-08-31 用于管理远程设备的方法和装置
US14/014,459 US9781010B2 (en) 2012-08-31 2013-08-30 Managing remote devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210320842.6A CN103684812B (zh) 2012-08-31 2012-08-31 用于管理远程设备的方法和装置

Publications (2)

Publication Number Publication Date
CN103684812A CN103684812A (zh) 2014-03-26
CN103684812B true CN103684812B (zh) 2017-07-07

Family

ID=50189040

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210320842.6A Active CN103684812B (zh) 2012-08-31 2012-08-31 用于管理远程设备的方法和装置

Country Status (2)

Country Link
US (1) US9781010B2 (zh)
CN (1) CN103684812B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106797367B (zh) * 2014-07-03 2020-11-17 Abb瑞士股份有限公司 用于处理数据的设备和方法
JP6742692B2 (ja) * 2015-01-30 2020-08-19 富士通株式会社 符号化プログラムおよび伸長プログラム
CA2960531C (en) * 2016-03-11 2019-06-25 The Toronto-Dominion Bank Application platform security enforcement in cross device and ownership structures
CN110580305B (zh) * 2018-05-22 2024-04-16 北京京东尚科信息技术有限公司 生成标识符的方法、装置、系统和介质
CN109366359B (zh) * 2018-10-25 2020-10-16 毛海龙 高稳定性的基于物联网的智能磨床控制方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7117239B1 (en) * 2000-07-28 2006-10-03 Axeda Corporation Reporting the state of an apparatus to a remote computer
US7496950B2 (en) 2002-06-13 2009-02-24 Engedi Technologies, Inc. Secure remote management appliance
US7689394B2 (en) 2003-08-26 2010-03-30 Siemens Industry, Inc. System and method for remotely analyzing machine performance
US7908548B2 (en) * 2003-10-24 2011-03-15 Oracle International Corporation User interface for establishing mappings from internal metadata to external metadata
US20060106802A1 (en) * 2004-11-18 2006-05-18 International Business Machines Corporation Stateless methods for resource hiding and access control support based on URI encryption
US9386064B2 (en) * 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US20080270548A1 (en) * 2007-04-24 2008-10-30 Danger, Inc. Apparatus and method for caching email messages within a wireless data service
US8060605B1 (en) 2009-01-28 2011-11-15 Symantec Corporation Systems and methods for evaluating the performance of remote computing systems
CN101814021B (zh) * 2009-02-24 2014-08-06 易保网络技术(上海)有限公司 在远程设备上显示用户界面的方法和系统
US9497092B2 (en) * 2009-12-08 2016-11-15 Hand Held Products, Inc. Remote device management interface
US8195146B2 (en) 2009-12-23 2012-06-05 Intel Corporation Remote management over a wireless wide-area network using short message service
US9369357B2 (en) 2010-02-03 2016-06-14 Symantec Corporation Method, system, and computer readable medium for remote device management
US8601115B2 (en) * 2010-06-26 2013-12-03 Cisco Technology, Inc. Providing state information and remote command execution in a managed media device
US20120079566A1 (en) 2010-09-25 2012-03-29 Barranco Roger L Secure out-of-band management of computing devices over a communications network
US10210260B2 (en) * 2010-10-20 2019-02-19 Microsoft Technology Licensing, Llc Templates for displaying data
TW201222275A (en) 2010-11-29 2012-06-01 Ind Tech Res Inst System, server and method for administrating remote device
US8918501B2 (en) * 2011-11-10 2014-12-23 Microsoft Corporation Pattern-based computational health and configuration monitoring
CN102523271B (zh) * 2011-12-08 2015-04-08 华为技术有限公司 一种终端及其通信方法、系统

Also Published As

Publication number Publication date
CN103684812A (zh) 2014-03-26
US20140068048A1 (en) 2014-03-06
US9781010B2 (en) 2017-10-03

Similar Documents

Publication Publication Date Title
CN106815115B (zh) 一种服务器运行状态监控系统
CN111294217B (zh) 告警分析方法、装置、系统及存储介质
CN103684812B (zh) 用于管理远程设备的方法和装置
CN107888397B (zh) 确定故障类型的方法和装置
KR102168212B1 (ko) 어플리케이션 로그 데이터의 처리 장치 및 그 방법
US8463737B2 (en) Realtime unification management information data conversion and monitoring apparatus and method for thereof
CN104022902A (zh) 一种监控服务器集群的方法和系统
CN111061498B (zh) 一种配置信息管理系统
CN104579748B (zh) Scd在线校核的网络分析方法及系统
CN111431754A (zh) 配用电通信网故障分析方法和系统
CN107360035B (zh) 一种数据处理方法及系统
CN113676526A (zh) 一种工业数据接入管理系统及方法
CN111212112B (zh) 信息处理方法和装置
CN117632636A (zh) 一种基于复合通道状态的数据质量诊断方法和系统
CN115017218B (zh) 分布式调用链的处理方法及装置、存储介质、电子设备
CN111124542A (zh) 一种配置信息管理系统
CN117014527A (zh) 数据处理方法、装置、存储介质及电子设备
CN102662716A (zh) 计算机系统中利用网口实现引导启动控制的方法
CN110753057B (zh) 一种故障指示器的通信方法、装置和设备
CN111369017A (zh) 设备远程监控方法、装置、电子设备及可存储介质
CN110912741A (zh) 一种基于逆向解析的智能标签生成方法及装置
CN110083377A (zh) 硬件管理系统和方法
CN109062639A (zh) 一种变电站scd文件的升级信息的显示方法及系统
CN112671533B (zh) 一种电子数据的存储系统、方法及介质
CN115759236B (zh) 模型训练方法、信息发送方法、装置、设备和介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant