一种机器人管理系统和方法
文献发布时间:2023-06-19 12:24:27
技术领域
本发明实施例涉及通信技术领域,尤其涉及一种机器人管理系统和方法。
背景技术
目前,医院内通常利用机器人来执行任务;然而,当机器人中的软件出现问题的情况需要热更新或者机器人软件需要升级版本时,由于医院的各个机器人是运行在医院的局域网内的通过调度服务器调度,机器人自身并不访问互联网,只有调度服务器自身可以直接联通互联网,且由于调度服务器往往也存在多层网络地址转换(Network AddressTranslation)网络结构隔离。受限于网络条件开发/部署人员也无法使用常规的远程桌面等工具直接完成版本升级操作,往往需要派出工作人员到医院的现场去对软件进行升级。大大降低了工作人员的工作效率,增加了已知问题的修复时间。且由于人工介入步骤过多,增加了服务升级出错的概率。
并且,由于实际生产的机器人硬件配置的区别,同一类型,不同配置的机器人所支持的软件服务版本也会有不同的最高版本限制,进一步增加了在机器人上配置各个服务和版本的复杂度,同样加大了升级出错的概率。
发明内容
本发明提供一种机器人管理系统和方法,以实现对机器人的准确管理。
第一方面,本发明实施例提供了一种机器人管理系统,所述机器人管理系统包括:云端服务器、代理机器人以及至少一个目标机器人;
所述目标机器人,用于向代理机器人发送自身至少一个软件服务的当前软件版本信息;
所述代理机器人,用于向云端服务器发送各所述当前软件版本信息以及所述目标机器人的身份标识;
所述云端服务器,用于根据所述目标机器人的身份标识确定对应的目标软件模板,并根据所述目标软件模板和各所述当前软件版本信息,确定至少一个目标软件版本信息;
所述代理机器人,还用于接收所述云端服务器根据至少一个所述目标软件版本信息确定的服务更新命令,并通过所述服务更新命令指示所述目标机器人进行软件版本更新。
第二方面,本发明实施例还提供了一种机器人管理方法,由本发明实施例中任一所述的一种机器人管理系统执行,包括:
所述目标机器人向代理机器人发送自身至少一个软件服务的当前软件版本信息;
所述代理机器人向云端服务器发送各所述当前软件版本信息以及所述目标机器人的身份标识;
所述云端服务器根据所述目标机器人的身份标识确定对应的目标软件模板,并根据所述目标软件模板和各所述当前软件版本信息,确定至少一个目标软件版本信息;
所述代理机器人还接收所述云端服务器根据至少一个所述目标软件版本信息确定的服务更新命令,并通过所述服务更新命令指示所述目标机器人进行软件版本更新。
本发明实施例提供了一种机器人管理系统和方法,该系统包括:云端服务器、代理机器人以及至少一个目标机器人,目标机器人,用于向代理机器人发送自身至少一个软件服务的当前软件版本信息;代理机器人,用于向云端服务器发送各所述当前软件版本信息以及所述目标机器人的身份标识;云端服务器,用于根据所述目标机器人的身份标识确定对应的目标软件模板,并根据所述目标软件模板和各所述当前软件版本信息,确定至少一个目标软件版本信息;代理机器人,用于接收所述云端服务器根据至少一个所述目标软件版本信息确定的服务更新命令,并通过所述服务更新命令指示所述目标机器人进行软件版本更新。通过将所有需要更新的软件版本信息统一集成在目标软件模板中,云端服务器在判断代理机器人是否进行更新时,可以通过目标软件模板统一进行判断并指示其进行更新,避免目标机器人中软件服务的数量过多时,多次操作升级不同的服务,节省时间,简化操作流程,提高工作效率。
附图说明
图1是本发明实施例一中的一种机器人管理系统的结构示意图;
图2是本发明实施例一中的一种多个目标软件模板的展示图;
图3是本发明实施例二中的一种机器人管理系统的结构示意图;
图4是本发明实施例二中的一种机器人管理系统的实现示例图;
图5是本发明实施例三中的一种机器人管理方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例方式作进一步地详细描述。应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”、“第三”等仅用于区别类似的对象,而不必用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
实施例一
图1给出了本申请实施例一提供的一种机器人管理系统的结构示意图,该系统包括:云端服务器11、代理机器人12以及至少一个目标机器人13;
目标机器人13,用于向代理机器人12发送自身至少一个软件服务的当前软件版本信息;
代理机器人12,用于向云端服务器11发送各当前软件版本信息以及目标机器人13的身份标识;
云端服务器11,用于根据目标机器人的身份标识确定对应的目标软件模板,并根据目标软件模板和各当前软件版本信息,确定至少一个目标软件版本信息;
代理机器人12,还用于接收云端服务器根据至少一个目标软件版本信息确定的服务更新命令,并通过服务更新命令指示目标机器人进行软件版本更新。
在本实施例中,云端服务器11具体可以理解为进行数据处理的服务器平台;代理机器人12具体可以理解为可以与云端服务器11进行通信的机器人。目标机器人13具体可以理解为需要进行管理的机器人。当前软件版本信息具体可以理解为软件服务当前运行版本的相关信息。
需要知道的是,本申请中的目标机器人13无法与云端服务器11进行通信,代理机器人12连通了互联网,所以可以与云端服务器11进行通信。因此,目标机器人13需要通过代理机器人12与云端服务器11进行通信。在代理机器人12上配置透明代理,在目标机器人13上配置代理地址,实现目标机器人13与代理机器人12的通信连接。目标机器人13和代理机器人12在程序上没有任何区别,仅在配置上具有一定区别,使得代理机器人12可以连接网络,实现与云端服务器11的通信。
目标机器人13和代理机器人12中通常需要安装多个软件,所有软件和需要的配置通过镜像进行安装,镜像通过容器管理模块进行管理,容器管理模块可以是应用容器引擎,例如Docker。Docker支持将软件编译成一个镜像,然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像,运行中的这个镜像称为容器。目标机器人13和代理机器人12中均包括容器管理模块,目标机器人13的容器管理模块通过接收接口调用,获取自身安装的各软件服务的当前软件版本信息,然后向代理机器人12发送各当前软件版本信息。
在本实施例中,身份标识具体可以理解为唯一标识机器人身份的信息。
代理机器人12与目标机器人13均具有唯一标识自己身份的身份标识,代理机器人12在接收到云端服务器11所发送的各当前软件版本信息后,相应的可以知道各当前软件版本信息是由哪一个目标机器人13发送的,即目标机器人13的身份标识。并将各当前软件版本信息以及目标机器人13的身份标识发送给云端服务器11。
在本实施例中,目标软件模板具体可以理解为目标机器人13的软件更新模板,用于指示目标机器人13中各软件服务相应需更新到哪一版本的模板。目标软件版本信息具体可以理解为软件服务需要更新到的版本对应的版本信息,例如版本号。
需要知道的是,由于不同的机器人硬件配置或者应用场景导致的需求不同,所以不同的机器人会对应不同的目标软件模板,实现对此目标机器人13软件服务的统一管理。
具体的,云端服务器11存储各个目标机器人13的目标软件模板,在接收到代理机器人12发送的当前软件版本信息和目标机器人13的身份标识后,根据目标机器人13的身份标识进行查询匹配,得到与目标机器人13的身份标识对应的目标软件模板,然后通过比较目标软件模板中各软件版本信息和当前软件版本信息,确定需要进行更新的软件服务,并确定指示软件服务更新到何种版本的目标软件版本信息。
示例性的,图2本发明实施例提供的一种多个目标软件模板的展示图,其中,消毒1.0所在的列为消毒1.0类的目标机器人13的目标软件模板。消毒2.0所在列为消毒2.0类的目标机器人13的目标软件模板。消毒1.0和消毒2.0为两种不同硬件配置的目标机器人13。2021.01.01为软件服务A需要更新到的软件版本信息。2020.12.01为软件服务B需要更新到的软件版本信息。软件服务C和软件服务D为空,代表消毒1.0类的目标机器人13中没有安装软件服务C和软件服务D。高值1.0、大件1.0以及大件2.0所对应的目标软件模板中的信息原理与消毒1.0和消毒2.0类目标机器人13的信息原理相同,在此不再赘述,本领域技术人员可以知晓。
当运维人员配置某个机器人到具体的型号和模板版本时,云端服务器11会从对应的目标软件模板中获取到需要的服务列表(即各软件服务)和对应的版本,部署人员只需要按目标软件模板管理更新即可,云端服务器11会自动拆分到服务和机器人绑定,无需关心模板内部的服务具体功能。
使用模板功能后,在交付部署人员开发完新的版本后,将一系列服务的版本列表简化成某个具体型号的机器人对应的目标软件模板,降低了可能出错的概率。对于部署人员来说,使用模板功能后,由于所有软件服务是否需要更新以及更新指示均统一确定及下发,无需逐一进行操作,进一步减少了人工操作的次数,由逐个机器人更新服务精简为逐个机器人更新对应模板即可。并且,在通过目标软件模板进行软件更新升级时,目标机器人13发送和接收的数据结构仍保持一致,仍为针对具体服务级别的操作,模板内部的服务拆分为云端服务器11实现,目标机器人13无需额外处理。
在本实施例中,服务更新命令具体可以理解为指示目标机器人13进行软件更新的命令。服务更新命令中可以包括更新何种软件服务、软件服务更新到哪一版本的信息和/或代理机器人12的身份标识等信息。
具体的,云端服务器11根据目标软件模板和各当前软件版本信息确定目标软件版本信息后,即确定了需要操作的一个或者多个软件服务,进而汇总生成服务更新命令,并发送给代理机器人12。代理机器人12接收到服务更新命令,将服务更新命令转发给对应的目标机器人13,指示目标机器人13进行软件更新。目标机器人13在接收到服务更新命令后,根据服务更新命令进行软件更新。
本发明实施例提供了一种机器人管理系统,该系统包括:云端服务器、代理机器人以及至少一个目标机器人,目标机器人,用于向代理机器人发送自身至少一个软件服务的当前软件版本信息;代理机器人,用于向云端服务器发送各当前软件版本信息以及目标机器人的身份标识;云端服务器,用于根据目标机器人的身份标识确定对应的目标软件模板,并根据目标软件模板和各当前软件版本信息,确定至少一个目标软件版本信息;代理机器人,还用于接收云端服务器根据至少一个目标软件版本信息确定的服务更新命令,并通过服务更新命令指示目标机器人进行软件版本更新。通过将所有需要更新的软件版本信息统一集成在目标软件模板中,云端服务器在判断代理机器人是否进行更新时,可以通过目标软件模板统一进行判断并指示其进行更新,避免目标机器人中软件服务的数量过多时,多次操作升级不同的服务,节省时间,简化操作流程,提高工作效率。
实施例二
图3为本发明实施例二提供的一种机器人管理系统的结构示意图。本实施例的技术方案在上述技术方案的基础上进一步细化,具体主要包括:云端服务器21、代理机器人22以及至少一个目标机器人23。
云端服务器21,还用于:接收用户上传的至少一个软件模板,并将用户上传的每个软件模板与对应的目标机器人23进行关联。
在本实施例中,用户可以是进行软件开发的开发人员,也可以是部署人员。开发人员完成新版本开发测试后,新版本就可以投入应用,此时各目标机器人23就可以实现进行相应的版本更新。通常在有新的版本发布后,开发人员根据新的版本以及考虑不同目标机器人23的硬件配置,形成各目标机器人23的目标软件模板,例如,由于硬件限制,目标机器人23-1的软件服务A仅能更新到2.0版本,所以,即使软件服务A的最新版本为4.0,目标软件模板中的软件服务A仅为2.0版本。云端服务器21接收用户上传的一个或者多个软件模板,将各软件模板与对应的目标机器人23进行关联存储。用户在上传软件模板时,需同时将各软件模板对应的目标机器人23告知云端服务器21。
进一步地,云端服务器21,包括:
服务确定模块211,用于确定所述目标软件模板中的软件服务,以及各所述软件服务对应的软件版本信息。
当前版本信息确定模块212,用于确定各所述软件服务对应的当前软件版本信息。
目标版本信息确定模块213,用于在软件服务的软件版本信息对应的版本高于所述当前软件版本信息对应的版本的情况下,将所述软件版本信息确定为该软件服务的目标软件版本信息。
在本实施例中,服务确定模块211具体可以理解为对目标软件模板进行分析,确定其包含的软件版本信息的数据处理模块。软件版本信息具体可以理解为软件服务的版本信息,例如,版本号。
具体的,目标软件模板中可以包含一个或者多个软件服务,其取决于目标机器人23所执行的任务,以及目标机器人23的硬件配置限制。软件服务可以理解为应用程序。服务确定模块211分析目标软件模板,确定目标软件模板中包含的各软件服务,并确定各软件服务在目标软件模板中的软件版本信息。
在本实施例中,当前版本信息确定模块212具体可以理解为确定目标软件模板中的各软件服务与各当前软件版本信息对应关系的数据处理模块。
具体的,当前版本信息确定模块212通过对软件服务和各当前软件版本信息进行分析,确定目标软件模板中的各软件服务在目标机器人23中所对应的当前软件版本信息。在应用中,存在目标软件模板中的软件服务为一个新增加的服务,目标机器人23中并没有安装此软件服务,相应的,也就没有对应的当前软件版本信息。所以,对于找不到对应的当前软件版本信息的软件服务,直接将空或者0等信息确定为对应的当前软件版本信息。相应的,若当前软件版本信息为空或者0,可以确定此版本为最低版本,任意版本均高于此版本。
在本实施例中,目标版本信息确定模块213具体可以理解为确定目标软件版本信息的数据处理模块。
具体的,对于每个软件服务,目标版本信息确定模块213均比较其对应的软件版本信息和当前软件版本信息,确定软件版本信息的版本是否高于当前软件版本信息,若是,则确定需要进行软件版本更新,将软件版本信息确定为目标软件版本信息。
进一步地,目标机器人23,包括:
命令接收模块231,用于接收所述服务更新命令,并根据所述服务更新命令确定至少一个目标软件版本信息。
容器管理模块232,用于根据至少一个所述目标软件版本信息确定至少一个目标容器镜像,并根据每个所述目标容器镜像进行软件更新。
在本实施例中,命令接收模块231具体可以理解为用于接收命令的虚拟模块。命令接收模块231接收代理机器人22发送的服务更新命令,并根据预先约定好的通信协议对服务更新命令进行解析,确定服务更新命令中指示的需要更新的目标软件版本信息。
在本实施例中,容器管理模块232可以是应用容器引擎,例如Docker。目标容器镜像具体可以理解为进行软件更新时所需的容器镜像。容器管理模块232通过目标软件版本信息确定需要进行更新的软件服务,针对每个目标软件版本信息分别从本地或者云端服务器21获取到对应的各目标容器镜像,然后根据每个目标容器镜像进行软件更新。
进一步地,容器管理模块232,包括:
运行信息获取单元2321,用于通过接收相应的接口调用来获取各软件服务的运行软件版本信息;
命令生成单元2322,用于根据服务更新命令中与各运行软件版本信息不匹配的目标软件版本信息生成更新请求命令,并通过所述代理机器人22发送至所述云端服务器21;
镜像接收单元2323,用于接收所述云端服务器21根据所述更新请求指令确定的至少一个目标容器镜像。
在本实施例中,运行信息获取单元2321具体可以理解为获取目标机器人23中存储的各软件版本的数据处理单元。运行软件版本信息具体可以理解为目标机器人23中存储的各软件服务的软件版本信息。运行信息获取单元2321在运行时接收相应的API接口调用,获取运行软件版本信息。进行接口调用的可以是命令接收模块231,例如,命令接收模块231在确定目标软件版本信息后,通过相应的接口调用容器管理模块232中的运行信息获取单元2321,运行信息获取单元2321接收到调用后获取各软件服务的运行软件版本信息。
在本实施例中,命令生成单元2322具体可以理解为生成更新请求命令的数据处理单元,用于请求云端服务器21发送目标容器镜像。更新请求命令具体可以理解为请求云端服务器21发送目标容器镜像,以实现软件更新的命令。
具体的,命令生成单元2322判断各运行软件版本信息中是否存在目标软件版本信息,若否,此时目标机器人23中没有需要更新到的版本(即,没有可以进行更新的目标软件版本信息),因此,根据目标软件版本信息生成更新请求命令,请求云端服务器21反馈各目标软件版本信息对应的目标容器镜像。云端服务器21接收到更新请求指令后,通过解析更新请求指令确定对应的容器镜像,然后从容器镜像的存储空间中获取到目标容器镜像反馈给代理机器人22。代理机器人22转发给目标机器人23的容器管理模块232,容器管理模块232的镜像接收单元2323接收目标容器镜像。若目标机器人23中有需要更新到的版本(即各运行软件版本信息中存在与目标软件版本信息匹配的版本信息),直接获取相应的镜像进行启动。
进一步地,云端服务器21,还用于:
接收所述代理机器人22发送的更新请求命令,并根据所述更新请求命令确定对应的目标容器镜像信息;
从容器镜像注册中心存储的容器镜像中筛选出分别与每个所述目标容器镜像信息匹配的所述目标容器镜像,并通过所述代理机器人22反馈给所述目标机器人23。
在本实施例中,容器镜像注册中心具体可以理解为云端服务器21中存储开发人员开发完成并打包好的容器镜像的存储中心。目标容器镜像信息具体可以理解为标识或区分各目标容器镜像的信息,可以唯一标识目标容器镜像。
具体的,云端服务器21接收到代理机器人22转发的更新请求命令后,通过预先约定好的通信协议解析更新请求命令,确定目标机器人23所需的目标容器镜像信息,目标容器镜像信息可以是一个或者多个。对于每个目标容器镜像信息,从容器镜像注册中心中寻找与此目标容器镜像信息匹配的容器镜像,将匹配上的容器镜像作为目标容器镜像反馈给代理机器人22,再由代理机器人22转发至目标机器人23。
进一步地,容器管理模块232,包括:
镜像删除单元2324,用于确定至少一个待删除容器镜像,控制每个所述待删除容器镜像停止运行,并删除每个所述待删除容器镜像;
启动单元2325,用于根据所述服务更新命令中的镜像参数控制每个所述目标容器镜像启动。
在本实施例中,镜像删除单元2324具体可以理解为用于删除需要更新的软件服务的容器镜像的数据处理单元。待删除容器镜像具体可以理解为需要更新的软件服务的容器镜像。镜像参数具体可以理解为镜像启动时所需的配置参数。
具体的,镜像删除单元2324确定需要更新的软件服务,然后将软件服务对应的容器镜像确定为待删除容器镜像,控制每个待删除容器镜像停止运行,并删除每个待删除容器镜像。
进一步地,镜像删除单元2324,具体用于:将每个所述目标软件版本信息对应的当前软件版本信息确定为待更新软件版本信息;将每个所述待更新软件版本信息对应的容器镜像分别确定为待删除容器镜像。
在本实施例中,待更新软件版本信息具体可以理解为等待更新的软件版本的信息。
具体的,目标软件版本信息是要更新到的软件版本的信息,因此,其对应的当前软件版本信息是需要被替换掉的软件服务的版本信息,即待更新软件版本信息。镜像删除单元2324将每个待更新软件版本信息对应的容器镜像分别确定为待删除容器镜像。
示例性的,目标机器人23的软件服务A的版本1.1,软件服务B的版本2.0作为当前软件版本信息发送给代理机器人22。代理机器人22将当前软件版本信息和目标机器人23的身份标识发送给云端服务器21。云端服务器21通过对应的目标软件模板确定服务更新命令,服务更新命令为升级软件服务A到1.2,软件服务B无需升级(软件服务B无需升级的原因可以是已经到最高版本或者虽然存在更高版本,但是由于硬件限制所以安装的版本最高仅能为2.0版本)。首先通过容器管理模块判断本地是否存在1.2的目标软件版本信息(或容器镜像),若没有,则通过代理服务器从云端服务器21的容器镜像注册中心中下载软件服务A版本1.2对应的目标容器镜像,然后将原有的服务A版本1.1的容器停止并删除,然后根据服务更新命令中的镜像参数从刚下载的镜像启动产生新容器,从而实现了目标机器人23的软件服务A从版本1.1升级到1.2。
进一步地,云端服务器21,还用于:接收用户上传的至少一个软件版本数据,将每个所述软件版本数据转换为容器镜像,并将每个所述容器镜像存储到容器镜像注册中心。
在本实施例中,软件版本数据具体可以理解为支持软件服务运行实现相应功能的数据,例如软件开发的相关程序代码。
需要知道的是,上传软件版本数据的用户与上传目标软件模板的用户可以是同一用户,也可以是不同用户。本申请实施例中的不同用户可以是同一类型的用户,也可以是不同类型的用户。例如,开发人员和部署人员可以认为是不同类型的用户。开发人员上传软件版本数据,部署人员上传目标软件模板。
具体的,在有新版本完成开发测试后,用户将软件版本数据上传到云端服务器21。由于可能存在多个软件服务同时更新的情况,所以软件版本数据可以是一个或者多个。云端服务器21将每个软件版本数据均转换为容器镜像,并存储到容器镜像注册中心。
进一步地,代理机器人22,还用于:向云端服务器21发送自身的各所述当前软件版本信息以及所述代理机器人22的身份标识,实现软件版本更新。
可以知道的是,代理机器人22也是需要根据软件服务执行相关任务的机器人。因此,代理机器人22同样可以进行软件更新,即代理机器人22也可以作为目标机器人23。由于代理机器人22可以直接与云端服务器21通信,所以代理机器人22直接获取自身的当前软件版本信息和身份标识,发送给云端服务器21。云端服务器21确定服务更新命令后,发送给代理机器人22。代理机器人22接收服务更新命令,并确定目标容器镜像,根据目标容器镜像进行软件更新。代理机器人22进行软件更新的原理与目标机器人23相同,由于其可以直接与云端服务器21通信,所以省略了由其他机器人转发的这一过程,其余步骤相同,在此不再赘述,本领域技术人员可以知晓。
示例性的,图4本申请实施例提供的一种机器人管理系统的实现示例图。该系统云端服务器31、代理机器人32和至少一个目标机器人33,本申请实施例以一个目标机器人33为例说明系统的工作过程。开发/测试的用户开发出新的软件版本,上传软件版本数据到云端服务器31,云端服务器31将各软件版本数据转换为容器镜像,并存储到容器镜像注册中心。云端服务器31同时接收用户(此用户以部署人员为例)上传的目标软件模板,并将各目标软件模板与对应的目标机器人33进行关联。代理机器人32和目标机器人33定时向云端服务器31汇报本机各个服务的当前软件版本信息,其中,目标机器人33通过代理机器人32的透明代理与云端服务器31进行通信。云端服务器31通过对应的目标软件模板结合当前软件版本信息确定需要进行软件版本更新时,下发服务更新命令给代理机器人32,由代理机器人32转发给目标机器人33。指示目标机器人33或者代理机器人32从容器镜像注册中心下载相应的目标容器镜像,实现软件服务的软件更新。
本发明实施例提供了一种机器人管理系统,该系统包括:云端服务器、代理机器人以及至少一个目标机器人,针对每个目标机器人,目标机器人,用于向代理机器人发送当前软件版本信息;代理机器人,用于向云端服务器发送各当前软件版本信息以及目标机器人的身份标识;云端服务器,用于根据目标机器人的身份标识确定对应的目标软件模板,并根据目标软件模板结合各当前软件版本信息确定目标软件版本信息;代理机器人,用于接收云端服务器根据各所述目标软件版本信息确定的服务更新命令,并通过服务更新命令指示目标机器人进行软件版本更新。实现机器人软件服务的远程更新,无需工作人员到现场对机器人的软件进行更新升级,减少了版本升级从提出到升级完成所需时间,同时也实现了大规模机器同时更新版本快速迭代,无需工作人员逐一现场操作,降低了工作人员的劳动强度。通过将所有需要更新的软件版本信息统一集成在目标软件模板中,云端服务器在判断代理机器人是否进行更新时,可以通过目标软件模板统一进行判断并指示其进行更新,避免目标机器人中软件服务的数量过多时,多次操作升级不同的服务,节省时间,简化操作流程,提高工作效率。
实施例三
图5为本发明实施例三提供的一种机器人管理方法的流程图,该方法由本发明任意实施例所提供的一种机器人管理系统执行,包括:
S410、目标机器人向代理机器人发送自身至少一个软件服务的当前软件版本信息。
S420、代理机器人向云端服务器发送各所述当前软件版本信息以及所述目标机器人的身份标识。
每个目标机器人每隔一段时间均需要向云端服务器反馈当前软件版本信息,所有目标机器人在管理过程中所执行的方法步骤均相同。以一个目标机器人为例,目标机器人向代理机器人发送当前软件版本信息,通过代理机器人将当前软件版本信息和目标机器人的身份标识转发至云端服务器。
S430、云端服务器根据所述目标机器人的身份标识确定对应的目标软件模板,并根据所述目标软件模板和各所述当前软件版本信息,确定至少一个目标软件版本信息。
S440、代理机器人接收所述云端服务器根据至少一个所述目标软件版本信息确定的服务更新命令,并通过所述服务更新命令指示所述目标机器人进行软件版本更新。
云端服务器根据目标机器人的身份标识确定与其匹配的目标软件模板,然后通过比对目标软件模板中的软件版本信息和当前软件版本信息的差异,确定目标软件版本信息,进而根据目标软件版本信息生成服务更新命令,指示目标机器人进行软件服务的更新。云端服务器将服务更新命令通过代理机器人转发给对应的目标机器人,指示目标机器人进行软件版本更新。
本发明实施例提供了一种机器人管理方法,通过将所有需要更新的软件版本信息统一集成在目标软件模板中,云端服务器在判断代理机器人是否进行更新时,可以通过目标软件模板统一进行判断并指示其进行更新,避免目标机器人中软件服务的数量过多时,多次操作升级不同的服务,节省时间,简化操作流程,提高工作效率。
进一步地,该方法还包括:
所述云端服务器接收用户上传的至少一个软件模板,并将用户上传的每个所述目标软件模板与对应的目标机器人进行关联。
用户为每个目标机器人生成软件模板,然后上传至云端服务器,云端服务器将软件模板和目标机器人进行关联存储。
进一步地,所述云端服务器,包括服务确定模块、当前版本信息确定模块和目标版本信息确定模块;
相应的,所述云端服务器根据所述目标机器人的身份标识确定对应的目标软件模板,并根据所述目标软件模板结合各所述当前软件版本信息确定目标软件版本信息,包括:
服务确定模块确定所述目标软件模板中的软件服务,以及各所述软件服务对应的软件版本信息;
当前版本信息确定模块确定各所述软件服务对应的当前软件版本信息;
目标版本信息确定模块在软件服务的所述软件版本信息对应的版本高于所述当前软件版本信息对应的版本的情况下,将所述软件版本信息确定为该软件服务的目标软件版本信息。
云端服务器按照功能实现不同,分为服务确定模块、当前版本信息确定模块和目标版本信息确定模块,通过对目标软件模板进行分析,确定和对应的软件版本信息,以及各软件服务在目标机器人中对应的当前软件版本信息,然后通过比较软件版本信息对应的版本和当前软件版本信息对应的版本的高低,确定目标软件版本信息。
进一步地,所述目标机器人包括命令接收模块和容器管理模块,相应的,所述目标机器人进行软件版本更新包括:
命令接收模块接收所述服务更新命令,并根据所述服务更新命令确定至少一个目标软件版本信息;
容器管理模块根据至少一个所述目标软件版本信息确定至少一个目标容器镜像,并根据每个所述目标容器镜像进行软件更新。
目标机器人通过命令接收模块接收从云端服务器反馈回来的服务更新命令,通过服务更新命令确定目标软件版本信息,然后通过容器管理模块确定更新所用的目标容器镜像,进而根据目标容器镜像进行软件更新。
进一步地,容器管理模块包括:运行信息获取单元、命令生成单元和镜像接收单元;
相应的,容器管理模块根据所述目标软件版本信息确定目标容器镜像,包括:
运行信息获取单元通过接收相应的接口调用来获取各软件服务的运行软件版本信息;
命令生成单元根据服务更新命令中与各运行软件版本信息不匹配的目标软件版本信息生成更新请求命令,并通过所述代理机器人发送至所述云端服务器;
镜像接收单元接收所述云端服务器根据所述更新请求指令确定的至少一个目标容器镜像。
容器管理模块中的运行信息获取单元接收接口调用获取目标机器人的运行软件版本信息,在各运行软件版本信息中不存在目标软件版本信息的情况下,通过命令生成单元生成更新请求命令,并通过代理机器人发送给云端服务器,实现从云端服务器获取目标容器镜像。
进一步地,该方法还包括:
所述云端服务器接收所述代理机器人发送的更新请求命令,并根据所述更新请求命令确定对应的目标容器镜像信息;从容器镜像注册中心存储的容器镜像中筛选出分别与每个所述目标容器镜像信息匹配的所述目标容器镜像,并通过所述代理机器人反馈给所述目标机器人。
云端服务器接收到更新请求命令后,确定目标机器人所需的目标容器镜像信息,然后从容器镜像注册中心存储的容器镜像中进行筛选,得到与各目标容器镜像信息匹配的各目标容器镜像,并通过代理机器人反馈给目标机器人。
进一步地,所述容器管理模块,包括:镜像删除单元和启动单元;
相应的,所述容器管理模块根据各所述目标容器镜像进行软件更新,包括:
镜像删除单元确定至少一个待删除容器镜像,控制每个所述待删除容器镜像停止运行,并删除每个所述待删除容器镜像;
启动单元根据所述服务更新命令中的镜像参数控制每个所述目标容器镜像启动。
目标机器人在进行软件更新安装的过程中,首先确定进行更新的软件服务对应的待删除容器镜像,控制各待删除容器镜像停止运行,并执行删除操作,然后根据服务更新命令中的镜像参数控制各目标容器镜像启动,实现软件服务的更新。
进一步地,镜像删除单元确定待删除容器镜像,包括:将每个所述目标软件版本信息对应的当前软件版本信息确定为待更新软件版本信息;将每个所述待更新软件版本信息对应的容器镜像分别确定为待删除容器镜像。
进一步地,该方法还包括:
云端服务器接收用户上传的至少一个软件版本数据,将每个所述软件版本数据转换为容器镜像,并将每个所述容器镜像存储到容器镜像注册中心。
进一步地,该方法还包括:
所述代理机器人向云端服务器发送自身的各所述当前软件版本信息以及所述代理机器人的身份标识,实现软件版本更新。
代理机器人作为目标机器人与云端服务器的信息转发中心的同时,也可以向云端服务器发送本设备的当前软件版本信息以及身份标识,然后由云端服务器判断是否需要进行更新,实现代理机器人中软件服务的更新,其过程与原理与目标机器人一致,区别在于可以直接与云端服务器进行通信,无需转发。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
- 机器人管理系统及机器人管理系统的控制方法
- 机器人管理装置、机器人管理方法以及机器人管理系统