CN110769065A - 一种远程管理方法、系统、终端设备及服务器 - Google Patents
一种远程管理方法、系统、终端设备及服务器 Download PDFInfo
- Publication number
- CN110769065A CN110769065A CN201911039449.8A CN201911039449A CN110769065A CN 110769065 A CN110769065 A CN 110769065A CN 201911039449 A CN201911039449 A CN 201911039449A CN 110769065 A CN110769065 A CN 110769065A
- Authority
- CN
- China
- Prior art keywords
- command
- server
- name
- executable program
- message
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
Landscapes
- Engineering & Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephonic Communication Services (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种远程管理方法、系统、终端设备及服务器,终端设备与服务器之间基于MQTT协议进行数据传输;服务器向终端设备发送命令消息,该命令消息中包括命令名和命令体;终端设备在内存注册表中,查找命令名对应的可执行程序,作为命令处理程序;通过调用查找到的命令处理程序,基于命令体中的参数执行该命令消息对应的命令;可见,本方案中,通过服务器发送命令消息,实现了对终端设备的远程管理。
Description
技术领域
本发明涉及通信技术领域,特别是指一种远程管理方法、系统、终端设备及服务器。
背景技术
目前,各种场景中设置有各式各样的电子设备来执行相应的任务。比如,公共场所中设置的路由器可以提供无线网络,显示屏可以进行内容展示,摄像头可以进行监控,等等。
一般来说,将电子设备安装在场景中的相关位置之后,如果再对设备进行管理,比如,更改路由器的相关配置,通过调节显示屏的控制设备调节显示屏的亮度,调整摄像头的采集范围等,只能依靠相关技术人员前往设备所在地,手动对设备进行相关的管理操作。技术人员前往设备所在地耗费较多人力及时间,因此,亟需一种对设备进行远程管理的方案。
发明内容
有鉴于此,本发明的目的在于提出一种远程管理方法、系统、终端设备及服务器,以对设备进行远程管理。
基于上述目的,本发明实施例提供了一种远程管理方法,应用于终端设备,所述方法包括:
基于MQTT协议接收服务器发送的命令消息;其中,所述命令消息中包括命令名和命令体;
在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序;其中,所述内存注册表中记录有可执行程序支持的命令名,记录过程包括:通过调用指定目录下的可执行程序,获取可执行程序支持的命令名,将可执行程序支持的命令名记录至所述内存注册表;
通过调用查找到的命令处理程序,基于所述命令体中的参数执行所述命令消息对应的命令。
可选的,所述通过调用指定目录下的可执行程序,获取可执行程序支持的命令名,包括:
基于预设参数,依次调用指定目录下的可执行程序,分别得到每个可执行程序的命令列表,所述命令列表中包括可执行程序支持的命令名;
所述将可执行程序支持的命令名记录至所述内存注册表,包括:
将所述命令列表和可执行程序的路径信息对应记录至所述内存注册表。
可选的,所述命令消息中还包括签名信息;在所述基于MQTT协议接收服务器发送的命令消息之后,还包括:
利用第一编码算法对所述命令体进行编码处理,得到第一编码后的命令体;以及利用第二编码算法对应的解码算法对所述签名信息进行解码处理,得到第二解码后的签名信息;
基于预先约定的公钥,验证所述第一编码后的命令体与所述第二解码后的签名信息是否匹配;
如果匹配,执行所述在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序的步骤。
可选的,在验证所述第一编码后的命令体与所述第二解码后的签名信息匹配的情况下,还包括:
验证所述命令体中的设备标识信息与所述终端设备的标识信息是否相同;
如果相同,执行所述在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序的步骤。
可选的,所述命令消息中还包括命令标识;所述方法还包括:
若所述第一编码后的命令体与所述第二解码后的签名信息未匹配成功,则基于MQTT协议向所述服务器发送包括所述命令标识的第一提示信息;
若所述命令体中的设备标识信息与所述终端设备的标识信息不相同,则基于MQTT协议向所述服务器发送包括所述命令标识的第二提示信息;
若在内存注册表中,未查找到所述命令名对应的可执行程序,则基于MQTT协议向所述服务器发送包括所述命令标识的第三提示信息;
在所述通过调用查找到的命令处理程序,基于所述命令体中的参数执行所述命令消息对应的命令之后,还包括:
基于MQTT协议向所述服务器发送包括所述命令标识的第四提示信息。
基于上述目的,本发明实施例还提供了一种远程管理方法,应用于服务器,所述方法包括:
获取待执行命令的命令名、命令参数、以及指向的终端设备的标识信息;
基于所述命令参数和所述终端设备的标识信息,生成命令体;
基于预先约定的私钥和所述命令体,生成签名信息;
基于MQTT协议向终端设备发送命令消息,所述命令消息中包括所述命令名、所述命令体和所述签名信息。
可选的,所述基于预先约定的私钥和所述命令体,生成签名信息,包括:
利用第一编码算法对所述命令体进行编码处理,得到第一编码后的命令体;
基于预先约定的私钥和所述第一编码后的命令体,生成签名信息;
利用第二编码算法对所述签名信息进行编码处理,得到编码后的签名信息;
所述基于MQTT协议向终端设备发送命令消息,包括:
基于MQTT协议向终端设备发送包括所述命令名、所述命令体和所述编码后的签名信息的命令消息。
基于上述目的,本发明实施例还提供了一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一种应用于终端设备的远程管理方法。
基于上述目的,本发明实施例还提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一种应用于服务器的远程管理方法。
基于上述目的,本发明实施例还提供了一种远程管理系统,包括终端设备和服务器,所述终端设备与所述服务器之间基于MQTT协议进行数据传输;
所述服务器,用于向终端设备发送命令消息,所述命令消息中包括命令名和命令体;
所述终端设备,用于接收服务器发送的命令消息;读取接收到的命令消息中的命令名和命令体,作为待执行命令名和待执行命令体;在内存注册表中,查找所述待执行命令名对应的可执行程序,作为命令处理程序;通过调用查找到的命令处理程序,基于所述待执行命令体中的参数执行接收到的命令消息对应的命令;其中,所述内存注册表中记录有可执行程序支持的命令名,记录过程包括:通过调用指定目录下的可执行程序,获取可执行程序支持的命令名,将可执行程序支持的命令名记录至所述内存注册表。
可选的,所述终端设备中配置有第一代理进程;所述服务器接入第二代理进程;所述第一代理进程与所述第二代理进程之间基于MQTT协议、或者MQTTS协议进行数据传输。
应用本发明所示实施例,终端设备与服务器之间基于MQTT协议进行数据传输;服务器向终端设备发送命令消息,该命令消息中包括命令名和命令体;终端设备在内存注册表中,查找命令名对应的可执行程序,作为命令处理程序;通过调用查找到的命令处理程序,基于命令体中的参数执行该命令消息对应的命令;可见,本方案中,通过服务器发送命令消息,实现了对终端设备的远程管理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种远程管理系统的结构示意图;
图2为本发明实施例提供的一种终端设备与服务器的交互示意图;
图3为本发明实施例提供的另一种终端设备与服务器的交互示意图;
图4为本发明实施例提供的一种应用于终端设备的远程管理方法的流程示意图;
图5为本发明实施例提供的一种应用于服务器的远程管理方法的流程示意图;
图6为本发明实施例提供的一种终端设备的结构示意图;
图7为本发明实施例提供的一种服务器的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
为了达到上述目的,本发明实施例提供了一种应用于终端设备的远程管理方法、一种应用于服务器的远程管理方法、一种终端设备、一种服务器以及一种远程管理系统。该终端设备可以为各种需要进行远程管理的设备,比如,路由器、显示屏的控制设备、摄像头等等,具体不做限定。下面首先对该远程管理系统进行详细介绍。
图1为本发明实施例提供的一种远程管理系统的结构示意图,包括:终端设备100和服务器200,终端设备100与服务器200的交互过程可以如图2所示:
服务器200,用于向终端设备100发送命令消息,所述命令消息中包括命令名和命令体;
终端设备100,用于接收服务器200发送的命令消息;读取接收到的命令消息中的命令名和命令体,作为待执行命令名和待执行命令体;在内存注册表中,查找所述待执行命令名对应的可执行程序,作为命令处理程序;通过调用查找到的命令处理程序,基于所述待执行命令体中的参数执行接收到的命令消息对应的命令。
一种实施方式中,终端设备100和服务器200之间基于MQTT(Message QueuingTelemetry Transport,消息队列遥测传输)协议进行数据传输。或者,另一种实施方式中,终端设备100和服务器200之间可以基于MQTTS(MQTT+TLS;TLS:Transport LayerSecurity,安全传输层)协议进行数据传输,这样,对传输通道进行了加密,提高了数据传输的安全性。或者,终端设备100与服务器200之间也可以基于其他协议进行数据传输,不再一一列举。
一种实施方式中,终端设备100中配置有第一代理进程;服务器200接入第二代理进程;所述第一代理进程与所述第二代理进程之间基于MQTT协议、或者MQTTS协议进行数据传输。以下内容中,以MQTT协议为例进行说明。
举例来说,可以在终端设备100中配置基于POSIX C(Portable Operating SystemInterface,可移植操作系统接口)实现的跨平台应用程序,该应用程序以daemon(守护进程)的方式在后台运行,该应用程序即为第一代理进程。
举例来说,第二代理进程可以为Broker(一种消息代理)。服务器200和终端设备中配置的第一代理进程均接入Broker。Broker可以配置在服务器200中,或者,Broker可以配置在其他设备中,服务器200接入配置有Broker的设备中。终端设备100中配置的应用程序通过Broker接收服务器发送的命令消息。
该命令消息中包括命令名和命令体,命令名即为需要执行的命令的名称,命令体中可以包括执行该命令所需要的参数。举例来说,服务器可以将命令名和命令体组装为JSON(JavaScript Object Notation,JS对象简谱)格式的命令消息,命令消息的具体格式不做限定。
一种实施方式中,服务器生成命令消息的过程可以包括:获取待执行命令的命令名、命令参数、以及指向的终端设备的标识信息;基于所述命令参数和所述终端设备的标识信息,生成命令体;生成包括所述命令名和所述命令体的命令消息。
举例来说,服务器和终端设备接入Broker后,终端设备订阅主题,然后服务器便可以通过Publish(发布)将命令消息发送至终端设备。
终端设备中存储有内存注册表,该内存注册表中记录有可执行程序支持的命令名,记录过程包括:通过调用指定目录下的可执行程序,获取可执行程序支持的命令名,将可执行程序支持的命令名记录至所述内存注册表。
一种实施方式中,记录过程可以包括:基于预设参数,依次调用指定目录下的可执行程序,分别得到每个可执行程序的命令列表,所述命令列表中包括可执行程序支持的命令名;将所述命令列表和可执行程序的路径信息对应记录至所述内存注册表。
举例来说,第一代理进程可以扫描指定目录下的可执行程序,以supportedcommands为参数依次调用各可执行程序,若调用成功,则获取到该可执行程序对应的命令列表,命令列表中包括该可执行程序支持(能够执行)的一种或多种命令的名称,将该可执行程序的命令列表和该可执行程序的路径信息记录至内存注册表中。这样,终端设备便可以在内存注册表中查找命令名对应的可执行程序,也就是执行命令的可执行程序,为了方便描述,将其称为命令处理程序。
比如,假设调用与音量相关的可执行程序,调用成功并获取到该可执行程序对应的命令列表,该命令列表中包括该可执行程序支持的命令名volume,将该可执行程序的路径信息以及该命令列表记录至内存注册表中。
或者,一种情况下,可执行程序对应的命令列表中可以包括命令名和方法(method),这样,内存注册表中还可以包括命令名对应的方法。比如,假设调用与音量相关的可执行程序,调用成功并获取到该可执行程序对应的命令列表,该命令列表中包括该可执行程序支持的命令名volume,volume对应两种方法:set和get,其中,set表示设置音量,get表示获取音量值,将该可执行程序的路径信息以及该命令列表记录至内存注册表中。
一种实施方式中,终端设备接收到命令消息后,解析该命令消息,得到命令名和命令体;在该内存注册表中,查找该命令名对应的可执行程序,作为命令处理程序;如果查找到,则调用查找到的命令处理程序,基于该命令体中的参数执行命令消息对应的命令;如果未查找到,表示终端设备不支持执行命令消息对应的命令。
假设命令名为volume(音量)、方法为set、命令体中的参数为data:9,表示将终端设备的音量设置为9;终端设备查找该命令名对应的可执行程序,作为命令处理程序;如果查找到,则调用查找到的命令处理程序,将终端设备的音量设置为9。
另一种实施方式中,服务器生成命令消息的过程可以包括:获取待执行命令的命令名、命令参数、以及指向的终端设备的标识信息;基于所述命令参数和所述终端设备的标识信息,生成命令体;基于预先约定的私钥和所述命令体,生成签名信息;生成包括所述命令名、所述命令体和所述签名信息的命令消息。
举例来说,该命令消息中可以包括:命令消息的ID(Identity,身份标识号)、发送该命令消息的设备的类型、命令名、命令体和签名信息,该命令体中可以包括执行该命令所需要的参数、终端设备的设备标识信息等等。
比如,命令消息的格式可以为:
{
"id":20190730002,/命令消息的ID
"from":"iot_web_console",/发送该命令消息的设备的类型,这里为物联网控制台
"command":"volume",/命令名:音量
"method":"set",/方法:设置
"body":{"data":9,"sn":"A0BB3ED2BF3D"},/命令体,其中的data:9表示将音量设置为9,sn表示终端设备的设备标识信息,
“sig”:“签名信息”/签名信息
}
一种实施方式中,服务器生成签名信息的过程可以包括:
利用第一编码算法对所述命令体进行编码处理,得到第一编码后的命令体;基于预先约定的私钥和所述第一编码后的命令体,生成签名信息;利用第二编码算法对所述签名信息进行编码处理,得到编码后的签名信息;这样,命令消息中包括的签名信息为编码后的签名信息。
举例来说,第一编码算法可以为sha256算法,第二编码算法可以为base64编码算法,命令消息中包括的签名信息可以为base64编码字符串。或者,也可以采用其他编码算法,具体算法不做限定。
如果命令消息中还包括签名信息;终端设备接收到命令消息之后,可以先利用第一编码算法对所述命令体进行编码处理,得到第一编码后的命令体;以及利用第二编码算法对应的解码算法对所述签名信息进行解码处理,得到第二解码后的签名信息;基于预先约定的公钥,验证所述第一编码后的命令体与所述第二解码后的签名信息是否匹配;如果匹配,再在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序。
延续上述例子,可以利用base64编码算法对应的解码算法对命令消息中的签名信息进行解码处理,为了区分描述,将这里解码得到的数据称为“第二解码后的签名信息”;以及利用sha256算法对命令体进行编码处理,为了区分描述,将这里编码得到的数据称为“第一编码后的命令体”。
服务器与终端设备预先约定公私钥,举例来说,公钥可以为RSA(一种非对称加密算法)公钥,私钥可以为RSA私钥。服务器基于RSA私钥生成签名信息;终端设备基于RSA公钥,验证第一编码后的命令体与第二解码后的签名信息是否匹配,如果匹配,表示该命令消息未被篡改,也不是伪造的命令消息,终端设备再在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序。这可以理解为对命令消息进行安全验证,可以过滤掉被篡改的命令消息,也可以识别出伪造的命令消息,提高了远程管理的安全性。
一种实施方式中,如果验证第一编码后的命令体与第二解码后的签名信息匹配,可以进一步验证命令体中的设备标识信息与终端设备的标识信息是否相同;如果相同,表示该命令消息未被篡改,也不是伪造的命令消息,终端设备再在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序。这可以理解为对命令消息进行安全验证,可以进一步过滤掉被篡改的命令消息,也可以进一步识别出伪造的命令消息,进一步提高了远程管理的安全性。
一种实施方式中,终端设备在验证命令消息的安全性的过程中,可以将验证结果反馈给服务器。命令消息中还可以包括命令标识,终端设备可以基于该命令标识向服务器反馈安全验证结果,使得服务器确定该安全验证结果针对哪条命令消息。
比如,若所述第一编码后的命令体与所述第二解码后的签名信息未匹配成功,则基于MQTT协议向所述服务器发送包括所述命令标识的第一提示信息。
再比如,若所述命令体中的设备标识信息与所述终端设备的标识信息不相同,则基于MQTT协议向所述服务器发送包括所述命令标识的第二提示信息。
再比如,若在内存注册表中,未查找到所述命令名对应的可执行程序,则基于MQTT协议向所述服务器发送包括所述命令标识的第三提示信息。
再比如,在终端设备执行命令消息对应的命令之后,可以基于MQTT协议向所述服务器发送包括所述命令标识的第四提示信息,使得服务器获取到命令的执行情况。
举例来说,如果终端设备为路由器,则执行的命令可以包括更改路由器的配置,这种情况下,命令参数可以包括更改后的配置信息;或者,执行的命令还可以包括开启/关闭路由器,等等。如果终端设备为显示屏的控制设备,则执行的命令可以包括调节显示屏亮度、显示区域等等,这种情况下,命令参数可以包括更改后的显示屏亮度、显示屏区域等信息。如果终端设备为摄像头,则执行的命令可以为包括调整摄像头的俯仰角、旋转角、焦距等等,这种情况下,命令参数可以包括更改后的俯仰角、旋转角、焦距等信息。本方案中并不对终端设备的类型及其执行的命令进行限定,不再一一列举。
下面参考图3,介绍一种具体的实施方式:
对终端设备来说:
终端设备启动第一代理进程,加载RSA公钥,通过调用指定目录下的可执行程序,获取可执行程序支持的命令名,将可执行程序支持的命令名和可执行程序的路径信息记录至内存注册表。此外,终端设备接入第二代理进程,第一代理进程与第二代理进程之间基于MQTT协议进行通信,终端设备订阅主题。延续上述例子,终端设备的标识信息为序列号A0BB3ED2BF3D,则终端设备可以订阅topic cmd/A0BB3ED2BF3D,topic表示订阅主题,cmd是command的缩写,表示命令提示符。
终端设备中的第一代理进程可以为基于POSIX C实现的跨平台应用程序,该应用程序以daemon的方式在后台运行,该应用程序可以接入第二代理进程,可以提供用于发送消息的HTTP接口,可以装载可执行程序,可以订阅接收服务器发送的命令消息,可以验证签名信息是否合法,可以调用可执行程序执行相应的命令。
对于服务器来说:
服务器接入第二代理进程,加载RSA私钥,经业务触发后,组装命令体,生成签名信息,组装命令消息。由于终端设备订阅了topic cmd/A0BB3ED2BF3D,服务器便可以通过Publish(发布)将命令消息发送至终端设备。
终端设备接收到命令消息后,验证命令消息中的签名信息是否合法,如果合法,在内存注册表中查找命令名对应的可执行程序,作为命令处理程序;调用查找到的命令处理程序,执行命令消息对应的命令。如果验证命令消息中的签名信息不合法,或者,在内存注册表中未查找到命令名对应的可执行程序,可以向服务器反馈提示信息。
应用本发明所示实施例,第一方面,通过服务器发送命令消息,实现了对终端设备的远程管理。第二方面,服务器与终端设备之间基于MQTT协议进行通信,相比于HTTP(HyperText Transfer Protocol,超文本传输协议)轮询的通信方式,本方案通信过程的时效性更佳。第三方面,MQTT协议的通信方式的通用性较佳,不需要专门定制的终端设备和服务器,只需要在终端设备中配置第一处理进程,并且将服务器接入第二处理进程即可。第四方面,本方案中定义的命令消息中可以添加多种命令的相关信息,该命令消息的可扩展性较佳。第五方面,终端设备对命令消息进行签名验证和/或设备标识信息验证,可以过滤掉被篡改的命令消息,也可以识别出伪造的命令消息,提高了远程管理的安全性。
下面对应用于终端设备的远程管理方法进行介绍,该终端设备可以为各种需要进行远程管理的设备,比如,路由器、显示屏的控制设备、摄像头等等,具体不做限定。如图4所示,图4为一种应用于终端设备的远程管理方法的流程示意图,包括:
S401:基于MQTT协议接收服务器发送的命令消息;其中,所述命令消息中包括命令名和命令体。
一种实施方式中,终端设备和服务器之间基于MQTT协议进行数据传输。或者,另一种实施方式中,终端设备和服务器之间可以基于MQTTS协议进行数据传输,这样,对传输通道进行了加密,提高了数据传输的安全性。或者,终端设备与服务器之间也可以基于其他协议进行数据传输,不再一一列举。
一种实施方式中,终端设备中配置有第一代理进程;服务器接入第二代理进程;所述第一代理进程与所述第二代理进程之间基于MQTT协议、或者MQTTS协议进行数据传输。以下内容中,以MQTT协议为例进行说明。
举例来说,可以在终端设备中配置基于POSIX C实现的跨平台应用程序,该应用程序以daemon的方式在后台运行,该应用程序即为第一代理进程。该应用程序可以接入第二代理进程,可以提供用于发送消息的HTTP接口,可以装载可执行程序,可以订阅接收服务器发送的命令消息,可以验证签名信息是否合法,可以调用可执行程序执行相应的命令。
该命令消息中包括命令名和命令体,命令名即为需要执行的命令的名称,命令体中可以包括执行该命令所需要的参数。
S402:在内存注册表中,查找命令名对应的可执行程序,作为命令处理程序。如果查找到,执行S403。
终端设备中存储有内存注册表,该内存注册表中记录有可执行程序支持的命令名,记录过程包括:通过调用指定目录下的可执行程序,获取可执行程序支持的命令名,将可执行程序支持的命令名记录至所述内存注册表。
一种实施方式中,记录过程可以包括:基于预设参数,依次调用指定目录下的可执行程序,分别得到每个可执行程序的命令列表,所述命令列表中包括可执行程序支持的命令名;将所述命令列表和可执行程序的路径信息对应记录至所述内存注册表。
举例来说,第一代理进程可以扫描指定目录下的可执行程序,以supportedcommands为参数依次调用各可执行程序,若调用成功,则获取到该可执行程序对应的命令列表,命令列表中包括该可执行程序支持(能够执行)的一种或多种命令的名称,将该可执行程序的命令列表和该可执行程序的路径信息记录至内存注册表中。这样,终端设备便可以在内存注册表中查找命令名对应的可执行程序,也就是执行命令的可执行程序,为了方便描述,将其称为命令处理程序。
比如,假设调用与音量相关的可执行程序,调用成功并获取到该可执行程序对应的命令列表,该命令列表中包括该可执行程序支持的命令名volume,将该可执行程序的路径信息以及该命令列表记录至内存注册表中。
或者,一种情况下,可执行程序对应的命令列表中可以包括命令名和方法(method),这样,内存注册表中还可以包括命令名对应的方法。比如,假设调用与音量相关的可执行程序,调用成功并获取到该可执行程序对应的命令列表,该命令列表中包括该可执行程序支持的命令名volume,volume对应两种方法:set和get,其中,set表示设置音量,get表示获取音量值,将该可执行程序的路径信息以及该命令列表记录至内存注册表中。
S403:通过调用查找到的命令处理程序,基于命令体中的参数执行命令消息对应的命令。
一种实施方式,终端设备接收到命令消息后,解析该命令消息,得到命令名和命令体;在该内存注册表中,查找该命令名对应的可执行程序,作为命令处理程序;如果查找到,则调用查找到的命令处理程序,基于该命令体中的参数执行命令消息对应的命令;如果未查找到,表示终端设备不支持执行命令消息对应的命令。
假设命令名为volume(音量)、方法为set、命令体中的参数为data:9,表示将终端设备的音量设置为9;终端设备查找该命令名对应的可执行程序,作为命令处理程序;如果查找到,则调用查找到的命令处理程序,将终端设备的音量设置为9。
另一种实施方式中,如果命令消息中还包括签名信息;S401之后,终端设备可以先利用第一编码算法对所述命令体进行编码处理,得到第一编码后的命令体;以及利用第二编码算法对应的解码算法对所述签名信息进行解码处理,得到第二解码后的签名信息;基于预先约定的公钥,验证所述第一编码后的命令体与所述第二解码后的签名信息是否匹配;如果匹配,再执行S402。
举例来说,第一编码算法可以为sha256算法,第二编码算法可以为base64编码算法。可以利用base64编码算法对应的解码算法对命令消息中的签名信息进行解码处理,为了区分描述,将这里解码得到的数据称为“第二解码后的签名信息”;以及利用sha256算法对命令体进行编码处理,为了区分描述,将这里编码得到的数据称为“第一编码后的命令体”。
服务器与终端设备预先约定公私钥,举例来说,公钥可以为RSA(一种非对称加密算法)公钥,私钥可以为RSA私钥。终端设备基于该RSA公钥,验证第一编码后的命令体与第二解码后的签名信息是否匹配,如果匹配,表示该命令消息未被篡改,也不是伪造的命令消息,终端设备再在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序。这可以理解为对命令消息进行安全验证,可以过滤掉被篡改的命令消息,也可以识别出伪造的命令消息,提高了远程管理的安全性。
一种实施方式中,如果验证第一编码后的命令体与第二解码后的签名信息匹配,可以进一步验证命令体中的设备标识信息与终端设备的标识信息是否相同;如果相同,表示该命令消息未被篡改,也不是伪造的命令消息,终端设备再执行S402。这可以理解为对命令消息进行安全验证,可以进一步过滤掉被篡改的命令消息,也可以进一步识别出伪造的命令消息,进一步提高了远程管理的安全性。
一种实施方式中,终端设备在验证命令消息的安全性的过程中,可以将验证结果反馈给服务器。命令消息中还可以包括命令标识,终端设备可以基于该命令标识向服务器反馈安全验证结果,使得服务器确定该安全验证结果针对哪条命令消息。
比如,若所述第一编码后的命令体与所述第二解码后的签名信息未匹配成功,则基于MQTT协议向所述服务器发送包括所述命令标识的第一提示信息。
再比如,若所述命令体中的设备标识信息与所述终端设备的标识信息不相同,则基于MQTT协议向所述服务器发送包括所述命令标识的第二提示信息。
再比如,若在内存注册表中,未查找到所述命令名对应的可执行程序,则基于MQTT协议向所述服务器发送包括所述命令标识的第三提示信息。
再比如,在终端设备执行命令消息对应的命令之后,可以基于MQTT协议向所述服务器发送包括所述命令标识的第四提示信息,使得服务器获取到命令的执行情况。
举例来说,如果终端设备为路由器,则执行的命令可以包括更改路由器的配置,这种情况下,命令参数可以包括更改后的配置信息;或者,执行的命令还可以包括开启/关闭路由器,等等。如果终端设备为显示屏的控制设备,则执行的命令可以包括调节显示屏亮度、显示区域等等,这种情况下,命令参数可以包括更改后的显示屏亮度、显示屏区域等信息。如果终端设备为摄像头,则执行的命令可以为包括调整摄像头的俯仰角、旋转角、焦距等等,这种情况下,命令参数可以包括更改后的俯仰角、旋转角、焦距等信息。本方案中并不对终端设备的类型及其执行的命令进行限定,不再一一列举。
应用本发明所示实施例,第一方面,通过服务器发送命令消息,实现了对终端设备的远程管理。第二方面,服务器与终端设备之间基于MQTT协议进行通信,相比于HTTP(HyperText Transfer Protocol,超文本传输协议)轮询的通信方式,本方案通信过程的时效性更佳。第三方面,MQTT协议的通信方式的通用性较佳,不需要专门定制的终端设备和服务器,只需要在终端设备中配置第一处理进程,并且将服务器接入第二处理进程即可。第四方面,本方案中定义的命令消息中可以添加多种命令的相关信息,该命令消息的可扩展性较佳。第五方面,终端设备对命令消息进行签名验证和/或设备标识信息验证,可以过滤掉被篡改的命令消息,也可以识别出伪造的命令消息,提高了远程管理的安全性。
下面对应用于服务器的远程管理方法进行介绍,如图5所示,图5为一种应用于服务器的远程管理方法的流程示意图,包括:
S501:获取待执行命令的命令名、命令参数、以及指向的终端设备的标识信息。
命令名即为需要执行的命令的名称,命令参数即为执行命令所需要的参数。比如,假设命令名为volume(音量)、命令参数可以为data:9,表示将终端设备的音量设置为9。指向的终端设备也就是需要进行远程管理的终端设备,终端设备的标识信息可以为设备序列号,或者也可以为其他能够标识终端设备的信息,具体不做限定。
S502:基于命令参数和终端设备的标识信息,生成命令体。
一种实施方式中,可以将命令参数和终端设备的标识信息组装成命令体。或者,命令体中还可以包括其他数据,具体不做限定。
S503:基于预先约定的私钥和命令体,生成签名信息。
一种实施方式中,S503可以包括:利用第一编码算法对所述命令体进行编码处理,得到第一编码后的命令体;基于预先约定的私钥和所述第一编码后的命令体,生成签名信息;利用第二编码算法对所述签名信息进行编码处理,得到编码后的签名信息。
举例来说,第一编码算法可以为sha256算法,第二编码算法可以为base64编码算法,命令消息中包括的签名信息可以为base64编码字符串。或者,也可以采用其他编码算法,具体算法不做限定。服务器与终端设备预先约定RSA公私钥,S503中基于该RSA私钥进行签名。
S504:基于MQTT协议向终端设备发送命令消息,所述命令消息中包括所述命令名、所述命令体和所述签名信息。
一种实施方式中,终端设备和服务器之间基于MQTT协议进行数据传输。或者,另一种实施方式中,终端设备和服务器之间可以基于MQTTS协议进行数据传输,这样,对传输通道进行了加密,提高了数据传输的安全性。或者,终端设备与服务器之间也可以基于其他协议进行数据传输,不再一一列举。以下内容中,以MQTT协议为例进行说明。
上述一种实施方式中,得到了编码后的签名信息,这种实施方式中,S504可以包括:基于MQTT协议向终端设备发送包括所述命令名、所述命令体和所述编码后的签名信息的命令消息。
举例来说,该命令消息中可以包括:命令消息的ID、发送该命令消息的设备的类型、命令名、命令体和签名信息,该命令体中可以包括执行该命令所需要的参数、终端设备的设备标识信息等等。
比如,命令消息的格式可以为:
{
"id":20190730002,/命令消息的ID
"from":"iot_web_console",/发送该命令消息的设备的类型,这里为物联网控制台
"command":"volume",/命令名:音量
"method":"set",/方法:设置
"body":{"data":9,"sn":"A0BB3ED2BF3D"},/命令体,其中的data:9表示将音量设置为9,sn表示终端设备的设备标识信息,
“sig”:“签名信息”/签名信息
}
举例来说,服务器可以将命令名和命令体组装为JSON格式的命令消息,命令消息的具体格式不做限定。服务器和终端设备接入Broker后,终端设备订阅主题,然后服务器便可以通过Publish(发布)将命令消息发送至终端设备。
应用本发明所示实施例,第一方面,通过服务器发送命令消息,实现了对终端设备的远程管理。第二方面,服务器与终端设备之间基于MQTT协议进行通信,相比于HTTP(HyperText Transfer Protocol,超文本传输协议)轮询的通信方式,本方案通信过程的时效性更佳。第三方面,MQTT协议的通信方式的通用性较佳,不需要专门定制的终端设备和服务器,只需要在终端设备中配置第一处理进程,并且将服务器接入第二处理进程即可。第四方面,本方案中定义的命令消息中可以添加多种命令的相关信息,该命令消息的可扩展性较佳。第五方面,终端设备对命令消息进行签名验证和/或设备标识信息验证,可以过滤掉被篡改的命令消息,也可以识别出伪造的命令消息,提高了远程管理的安全性。
与上述方法实施例相对应,本发明实施例还提供了一种终端设备,如图6所示,包括:存储器602、处理器601及存储在存储器602上并可在处理器601上运行的计算机程序,处理器601执行所述程序时实现上述任一种应用于终端设备的远程管理方法。
与上述方法实施例相对应,本发明实施例还提供了一种服务器,如图7所示,包括:存储器702、处理器701及存储在存储器702上并可在处理器701上运行的计算机程序,处理器701执行所述程序时实现上述任一种应用于服务器的远程管理方法。
本发明实施例还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述任一种远程管理方法。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本发明难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本发明难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本发明的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本发明的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本发明。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本发明的具体实施例对本发明进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本发明的实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本发明的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种远程管理方法,其特征在于,应用于终端设备,所述方法包括:
基于MQTT协议接收服务器发送的命令消息;其中,所述命令消息中包括命令名和命令体;
在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序;其中,所述内存注册表中记录有可执行程序支持的命令名,记录过程包括:通过调用指定目录下的可执行程序,获取可执行程序支持的命令名,将可执行程序支持的命令名记录至所述内存注册表;
通过调用查找到的命令处理程序,基于所述命令体中的参数执行所述命令消息对应的命令。
2.根据权利要求1所述的方法,其特征在于,所述通过调用指定目录下的可执行程序,获取可执行程序支持的命令名,包括:
基于预设参数,依次调用指定目录下的可执行程序,分别得到每个可执行程序的命令列表,所述命令列表中包括可执行程序支持的命令名;
所述将可执行程序支持的命令名记录至所述内存注册表,包括:
将所述命令列表和可执行程序的路径信息对应记录至所述内存注册表。
3.根据权利要求1所述的方法,其特征在于,所述命令消息中还包括签名信息;在所述基于MQTT协议接收服务器发送的命令消息之后,还包括:
利用第一编码算法对所述命令体进行编码处理,得到第一编码后的命令体;以及利用第二编码算法对应的解码算法对所述签名信息进行解码处理,得到第二解码后的签名信息;
基于预先约定的公钥,验证所述第一编码后的命令体与所述第二解码后的签名信息是否匹配;
如果匹配,执行所述在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序的步骤。
4.根据权利要求3所述的方法,其特征在于,在验证所述第一编码后的命令体与所述第二解码后的签名信息匹配的情况下,还包括:
验证所述命令体中的设备标识信息与所述终端设备的标识信息是否相同;
如果相同,执行所述在内存注册表中,查找所述命令名对应的可执行程序,作为命令处理程序的步骤。
5.根据权利要求4所述的方法,其特征在于,所述命令消息中还包括命令标识;所述方法还包括:
若所述第一编码后的命令体与所述第二解码后的签名信息未匹配成功,则基于MQTT协议向所述服务器发送包括所述命令标识的第一提示信息;
若所述命令体中的设备标识信息与所述终端设备的标识信息不相同,则基于MQTT协议向所述服务器发送包括所述命令标识的第二提示信息;
若在内存注册表中,未查找到所述命令名对应的可执行程序,则基于MQTT协议向所述服务器发送包括所述命令标识的第三提示信息;
在所述通过调用查找到的命令处理程序,基于所述命令体中的参数执行所述命令消息对应的命令之后,还包括:
基于MQTT协议向所述服务器发送包括所述命令标识的第四提示信息。
6.一种远程管理方法,其特征在于,应用于服务器,所述方法包括:
获取待执行命令的命令名、命令参数、以及指向的终端设备的标识信息;
基于所述命令参数和所述终端设备的标识信息,生成命令体;
基于预先约定的私钥和所述命令体,生成签名信息;
基于MQTT协议向终端设备发送命令消息,所述命令消息中包括所述命令名、所述命令体和所述签名信息。
7.根据权利要求6所述的方法,其特征在于,所述基于预先约定的私钥和所述命令体,生成签名信息,包括:
利用第一编码算法对所述命令体进行编码处理,得到第一编码后的命令体;
基于预先约定的私钥和所述第一编码后的命令体,生成签名信息;
利用第二编码算法对所述签名信息进行编码处理,得到编码后的签名信息;
所述基于MQTT协议向终端设备发送命令消息,包括:
基于MQTT协议向终端设备发送包括所述命令名、所述命令体和所述编码后的签名信息的命令消息。
8.一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至5任意一项所述的方法。
9.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求6至7任意一项所述的方法。
10.一种远程管理系统,其特征在于,包括终端设备和服务器,所述终端设备与所述服务器之间基于MQTT协议进行数据传输;
所述服务器,用于向终端设备发送命令消息,所述命令消息中包括命令名和命令体;
所述终端设备,用于接收服务器发送的命令消息;读取接收到的命令消息中的命令名和命令体,作为待执行命令名和待执行命令体;在内存注册表中,查找所述待执行命令名对应的可执行程序,作为命令处理程序;通过调用查找到的命令处理程序,基于所述待执行命令体中的参数执行接收到的命令消息对应的命令;其中,所述内存注册表中记录有可执行程序支持的命令名,记录过程包括:通过调用指定目录下的可执行程序,获取可执行程序支持的命令名,将可执行程序支持的命令名记录至所述内存注册表。
11.根据权利要求10所述的系统,其特征在于,所述终端设备中配置有第一代理进程;所述服务器接入第二代理进程;所述第一代理进程与所述第二代理进程之间基于MQTT协议、或者MQTTS协议进行数据传输。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911039449.8A CN110769065A (zh) | 2019-10-29 | 2019-10-29 | 一种远程管理方法、系统、终端设备及服务器 |
PCT/CN2020/121377 WO2021082945A1 (zh) | 2019-10-29 | 2020-10-16 | 一种远程管理方法、系统、终端设备及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911039449.8A CN110769065A (zh) | 2019-10-29 | 2019-10-29 | 一种远程管理方法、系统、终端设备及服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110769065A true CN110769065A (zh) | 2020-02-07 |
Family
ID=69334763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911039449.8A Pending CN110769065A (zh) | 2019-10-29 | 2019-10-29 | 一种远程管理方法、系统、终端设备及服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110769065A (zh) |
WO (1) | WO2021082945A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021082945A1 (zh) * | 2019-10-29 | 2021-05-06 | 京东方科技集团股份有限公司 | 一种远程管理方法、系统、终端设备及服务器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101006428A (zh) * | 2004-06-21 | 2007-07-25 | 摩托罗拉公司 | 安全数据备份和恢复 |
CN102136085A (zh) * | 2011-02-17 | 2011-07-27 | 北京握奇数据系统有限公司 | 电信智能卡及基于电信智能卡的非接触应用管理方法 |
CN103001774A (zh) * | 2012-11-30 | 2013-03-27 | 飞天诚信科技股份有限公司 | 一种管理集装文件的方法和装置 |
US20170339135A1 (en) * | 2016-05-18 | 2017-11-23 | Hiroshi HINOHARA | Authentication system, communication system, and authentication method |
CN107435150A (zh) * | 2016-05-25 | 2017-12-05 | 西安电子科技大学 | 一种石油管线阴极保护电位检测系统及检测方法 |
CN108337120A (zh) * | 2018-02-01 | 2018-07-27 | 北京安控科技股份有限公司 | 一种物联网终端设备的远程升级方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9749146B2 (en) * | 2014-10-21 | 2017-08-29 | Electronics And Telecommunications Research Institute | Apparatus and methods for providing home network service |
US10243983B2 (en) * | 2015-12-08 | 2019-03-26 | Sudhir Pendse | System and method for using simulators in network security and useful in IoT security |
CN109495375B (zh) * | 2018-11-02 | 2021-04-13 | 广州小鹏汽车科技有限公司 | Mqtt消息的处理方法、装置、电子设备及存储介质 |
CN109995873A (zh) * | 2019-04-10 | 2019-07-09 | 阿里巴巴集团控股有限公司 | 一种管理客户端、设备监控系统及方法 |
CN110769065A (zh) * | 2019-10-29 | 2020-02-07 | 京东方科技集团股份有限公司 | 一种远程管理方法、系统、终端设备及服务器 |
-
2019
- 2019-10-29 CN CN201911039449.8A patent/CN110769065A/zh active Pending
-
2020
- 2020-10-16 WO PCT/CN2020/121377 patent/WO2021082945A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101006428A (zh) * | 2004-06-21 | 2007-07-25 | 摩托罗拉公司 | 安全数据备份和恢复 |
CN102136085A (zh) * | 2011-02-17 | 2011-07-27 | 北京握奇数据系统有限公司 | 电信智能卡及基于电信智能卡的非接触应用管理方法 |
CN103001774A (zh) * | 2012-11-30 | 2013-03-27 | 飞天诚信科技股份有限公司 | 一种管理集装文件的方法和装置 |
US20170339135A1 (en) * | 2016-05-18 | 2017-11-23 | Hiroshi HINOHARA | Authentication system, communication system, and authentication method |
CN107435150A (zh) * | 2016-05-25 | 2017-12-05 | 西安电子科技大学 | 一种石油管线阴极保护电位检测系统及检测方法 |
CN108337120A (zh) * | 2018-02-01 | 2018-07-27 | 北京安控科技股份有限公司 | 一种物联网终端设备的远程升级方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021082945A1 (zh) * | 2019-10-29 | 2021-05-06 | 京东方科技集团股份有限公司 | 一种远程管理方法、系统、终端设备及服务器 |
Also Published As
Publication number | Publication date |
---|---|
WO2021082945A1 (zh) | 2021-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110764807B (zh) | 一种升级方法、系统、服务器及终端设备 | |
CN107566786B (zh) | 一种获取监控视频的方法、装置及终端设备 | |
KR102137673B1 (ko) | 어플리케이션 연결 방법 및 이를 이용하는 시스템 | |
KR101270323B1 (ko) | 단일 서비스 사인 온을 제공하는 방법, 장치 및 컴퓨터 판독가능 저장 매체 | |
KR101491392B1 (ko) | 간접적인 디바이스 통신 | |
CN105682253A (zh) | 建立通信的方法、设备、终端和计算机可读存储介质 | |
CN111258602B (zh) | 信息更新方法和装置 | |
US20140298368A1 (en) | Authentication system and method of operating the same | |
CN110944035A (zh) | 一种物联网设备控制方法、系统以及可读介质 | |
WO2019214714A1 (zh) | 一种视频播放控制方法、系统、节点和计算机存储介质 | |
US20200379747A1 (en) | Software update mechanism | |
CN110933675A (zh) | 一种无线传感器网络认证方法、系统与电子设备 | |
CN105518697A (zh) | 用于捕获证据性视听和/或多媒体信息的由计算机实现的方法和计算机程序 | |
US20130159179A1 (en) | Mobile device for processing application of client device and method for processing application of client device using the same | |
WO2017088575A1 (zh) | 基于加密机制的ipc服务实现方法及系统 | |
CN111416793A (zh) | 基于开放平台的权限控制方法和嵌入式设备 | |
CN110769065A (zh) | 一种远程管理方法、系统、终端设备及服务器 | |
CN117251837A (zh) | 一种系统接入方法、装置、电子设备及存储介质 | |
EP2942925B1 (en) | A method and system for providing a private network | |
CN116489762A (zh) | 接入注册方法、装置、系统、通信设备和存储介质 | |
JPWO2005038661A1 (ja) | 端末認証装置および方法 | |
CN112804102B (zh) | 设备绑定方法、装置和终端 | |
CN111245601B (zh) | 一种通讯协商方法及装置 | |
CN114553542A (zh) | 一种数据包加密方法、装置及电子设备 | |
CN116266192A (zh) | 影像数据管理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200207 |
|
RJ01 | Rejection of invention patent application after publication |