CN112269565A - 基于容器的边缘设备运行方法、装置和系统 - Google Patents
基于容器的边缘设备运行方法、装置和系统 Download PDFInfo
- Publication number
- CN112269565A CN112269565A CN202011190493.1A CN202011190493A CN112269565A CN 112269565 A CN112269565 A CN 112269565A CN 202011190493 A CN202011190493 A CN 202011190493A CN 112269565 A CN112269565 A CN 112269565A
- Authority
- CN
- China
- Prior art keywords
- edge device
- program file
- container
- program
- file
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000006870 function Effects 0.000 claims abstract description 23
- 230000008859 change Effects 0.000 claims description 30
- 238000010586 diagram Methods 0.000 description 11
- 238000011161 development Methods 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000013473 artificial intelligence Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004140 cleaning Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000012508 change request Methods 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/37—Compiler construction; Parser generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- 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/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供一种基于容器的边缘设备运行方法、装置和系统。该方法包括:云端在获取PLC控制程序后,将该PLC控制程序编译为边缘设备对应程序文件。云端根据该程序文件指定应用的边缘设备,将该程序文件发送到指定的边缘设备。边缘设备接收服务器向边缘设备发送的程序文件。边缘设备使用系统容器内安装的对应编译器对该程序文件进行编译,生成可执行文件,并交由执行器进行运行。执行器运行该程序文件,执行该边缘设备的功能。本申请的方法,使该程序文件不必固化于一固定的边缘设备中,提高了该程序文件的复用效率,增强了该程序文件的适应性。
Description
技术领域
本申请涉及计算机技术,尤其涉及一种基于容器的边缘设备运行方法、装置和系统。
背景技术
随着芯片性能的提高,人工智能和工业物联网等技术在硬件条件的支持下,进入了高速发展阶段。人工智能和工业物联网技术可以应用于可编程逻辑控制器(Programmable Logic Controller,PLC)中。当该技术被应用于边缘设备时,该边缘设备的执行效率将得到提高。
然而,不同的边缘计算场景中,通常包括不同的边缘设备,以及不同的应用环境和用户需求。其中,不同的边缘设备存在底层环境的差异。在现有的人工智能和工业物联网的应用中,针对不同边缘计算场景,通常通过定制化编程的方式,实现不同边缘设备的使用以及不同用户需求的实现。
然而,现有的边缘设备中的PLC程序固化于其边缘设备中,无法实现PLC程序的复用以及动态变化。
发明内容
本申请提供一种基于容器的边缘设备运行方法、装置和系统,用以解决现有的边缘设备中的PLC程序固化于其边缘设备中,无法实现PLC程序的复用以及动态变化的问题。
第一方面,本申请提供一种基于容器的边缘设备运行方法,包括:
接收程序文件,所述程序文件中具有所述边缘设备的控制程序;
编译并执行所述程序文件,所述系统容器通过编译并执行所述程序文件来执行所述边缘设备的功能。
可选地,所述编译并执行所述程序文件,包括:
使用目标编译器编译所述程序文件,所述目标编译器根据所述程序文件的代码语言确定;
若所述程序文件编译正确,则生成可执行文件,并执行所述可执行文件;
若程序文件编译错误,则发送报错信息。
可选地,所述系统容器中包括至少一个编译器,所述使用目标编译器编译所述程序文件,所述目标编译器根据所述程序文件的代码语言确定,包括:
获取所述程序文件的代码语言;
根据所述代码语言,从所述系统容器的编译器中选择目标编译器;
使用所述目标编译器编译所述程序文件。
可选地,应用于边缘设备,所述边缘设备中包括应用容器,所述方法,还包括:
发送下拉请求,所述下拉请求用于请求下拉一个或者多个自定义镜像,所述自定义镜像存储于云端;
根据所述下拉请求,将所述自定义镜像下拉到所述应用容器中,所述应用容器执行所述自定义镜像,实现所述自定义镜像中预设的自定义功能。
可选地,当存储在云端的所述程序文件或者所述自定义镜像发生变更时,所述方法,还包括:
获取变更指令,所述变更指令用于更新、增加或者删除所述边缘设备中的所述程序文件或者所述自定义镜像;
根据所述变更指令,变更所述程序文件或者所述自定义镜像。
第二方面,本申请提供一种基于容器的边缘设备运行方法,包括:
获取程序文件,所述程序文件指定应用于至少一个边缘设备;
根据所述程序文件执行应用的边缘设备,发送所述程序文件。
可选地,所述方法,还包括:
获取下拉请求,所述下拉请求用于请求下拉一个或者多个自定义镜像;
根据所述下拉请求,发送所述自定义镜像到所述边缘设备的应用容器中。
第三方面,本申请提供一种基于容器的边缘设备运行装置,包括:
接收模块,用于接收程序文件,所述程序文件中包括所述边缘设备的控制程序;
执行模块,用于编译并执行所述程序文件,所述系统容器通过编译并执行所述程序文件来执行所述边缘设备的功能。
可选地,所述执行模块,包括:
编译子模块,用于使用目标编译器编译所述程序文件,所述目标编译器根据所述程序文件的代码语言确定;
生成子模块,用于若所述程序文件编译正确,则生成可执行文件;
执行子模块,用于使用目标执行器执行所述可执行文件,所述目标执行器根据所述可执行文件的扩展名确定。
可选地,所述系统容器中包括至少一个编译器,所述编译子模块具体用于获取所述程序文件的代码语言;根据所述代码语言,从所述系统容器的编译器中选择目标编译器;使用所述目标编译器编译所述程序文件。
可选地,所述系统容器中包括至少一个执行器,所述执行子模块具体用于获取所述可执行文件的扩展名;根据所述扩展名,从所述系统容器的执行器中选择目标执行器;使用所述目标执行器执行所述可执行文件。
可选地,应用于边缘设备,所述边缘设备中包括应用容器,所述装置,还包括:
发送模块,用于发送下拉请求,所述下拉请求用于请求下拉一个或者多个自定义镜像,所述自定义镜像存储于云端;
下拉模块,用于根据所述下拉请求,将所述自定义镜像下拉到所述应用容器中,所述应用容器执行所述自定义镜像,实现所述自定义镜像中预设的自定义功能。
可选地,当存储在云端的所述程序文件或者所述自定义镜像发生变更时,所述装置,还包括:
获取模块,用于获取变更指令,所述变更指令用于更新、增加或者删除所述边缘设备中的所述程序文件或者所述自定义镜像;
变更模块,用于根据所述变更指令,变更所述程序文件或者所述自定义镜像。
第四方面,本申请提供一种基于容器的边缘设备运行装置,包括:
获取模块,用于获取程序文件,所述程序文件指定应用于至少一个边缘设备;
发送模块,用于根据所述程序文件执行应用的边缘设备,发送所述程序文件。
可选地,所述装置,还包括:
所述获取模块,还用于获取下拉请求,所述下拉请求用于请求下拉一个或者多个自定义镜像;
所述发送模块,还用于根据所述下拉请求,发送所述自定义镜像到所述边缘设备的应用容器中。
第五方面,本申请提供一种基于容器的边缘设备运行系统,包括:边缘设备、云端;
云端,用于根据存储并发送程序文件和自定义镜像;
边缘设备,用于执行第一方面及第一方面任一种可能的设计中的基于容器的边缘设备运行方法。
本申请提供的基于容器的边缘设备运行方法、装置和系统,通过云端在获取该PLC控制程序后,将该PLC控制程序编译为边缘设备对应程序文件;云端根据该程序文件指定应用的边缘设备,将该程序文件发送到指定的边缘设备;边缘设备接收服务器向边缘设备发送的程序文件;边缘设备使用系统容器内安装的编译对该程序文件进行编译,生成可执行文件,并交由执行器进行运行。执行器运行该程序文件,执行该边缘设备的功能的方法,使该程序文件不必固化于一固定的边缘设备中,可以通过云端在多个边缘设备中实现该程序文件的复用,提高了该程序文件的复用效率,提高了边缘设备中程序文件的应用的便捷性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的一种边缘设备的容器结构示意图;
图2为本申请一实施例提供的一种基于容器的边缘设备运行方法的流程图;
图3为本申请一实施例提供的另一种基于容器的边缘设备运行方法的流程图;
图4为本申请一实施例提供的再一种基于容器的边缘设备运行方法的流程图;
图5为本申请一实施例提供的一种基于容器的边缘设备运行装置的结构示意图;
图6为本申请一实施例提供的另一种基于容器的边缘设备运行装置的结构示意图;
图7为本申请一实施例提供的再一种基于容器的边缘设备运行装置的结构示意图;
图8为本申请一实施例提供的又一种基于容器的边缘设备运行装置的结构示意图;
图9为本申请一实施例提供的一种基于容器的边缘设备运行系统的结构示意图;
图10为本申请一实施例提供的边缘设备的容器支持内核结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
随着芯片性能的提高,人工智能和工业物联网等技术在硬件条件的支持下,进入了高速发展阶段。人工智能和工业物联网技术可以应用于PLC中。当该技术被应用于边缘设备时,该边缘设备的执行效率将得到提高。然而,不同的边缘计算场景中,通常包括不同的边缘设备,以及不同的应用环境和用户需求。其中,不同的边缘设备存在底层环境的差异。在现有的人工智能和工业物联网的应用中,针对不同边缘计算场景,通常通过定制化编程的方式,实现不同边缘设备的使用以及不同用户需求的实现。然而,现有的边缘设备中的PLC程序固化于其边缘设备中,通常无法实现PLC程序的复用以及动态变化。随着应用场景的多样化发展,以及边缘设备种类的增加,该PLC程序无法实现复用以及动态变化的问题,使边缘设备的增加和使用受到PLC程序的限制,难以实现数量上的快速扩张,或者功能上的快速优化。
针对上述问题,本申请提出了一种基于容器的边缘设备运行方法、装置和系统。本申请采用云边协同模式,以云端作为服务器端,边缘设备作为控制程序以及应用容器运行端。其中,云端可以是各类公用云或私有云,例如,阿里云。其中,边缘设备为可以进行边缘计算的PLC设备,该设备中包括各类可以容器引擎及容器管理工具。
其中,云端存储有程序文件和自定义镜像,自定义镜像存储于镜像库中。其中,程序文件可以为用户通过标准PLC编程语言的编译环境编写得到。或者,程序文件可以为用户上传的完成编写的程序文件。其中,自定义镜像可以为用户上传的具有自定义功能的镜像文件。
其中,边缘设备主要包括系统容器和应用容器。边缘设备可以获取云端发送的程序文件,并编译执行该程序文件,实现该边缘设备的功能执行。边缘设备还可以将云端的自定义镜像下拉到应用容器中。边缘设备在应用容器中运行该自定义镜像的镜像实例,实现该自定义镜像中预设的自定义功能。
图1示出了本申请一实施例提供的一种边缘设备的容器结构示意图。如图所示,该边缘设备中可以包括系统容器和应用容器。
其中,系统容器为边缘设备的内置默认容器,为边缘设备出厂自带容器。具体地,系统容器可以包括编译运行容器,数据卷容器和数据库容器。其中,编译运行容器中安装有不同语言的编译器。当边缘设备接收到云端发送的程序文件后,边缘设备可以根据该程序文件对应的代码语言,确定该程序文件对应的编译器,进而编译该程序文件。例如,当程序文件对应的语言为C语言时,边缘设备确定对应的编译器为gcc编译器。在编译运行容器中安装有基于FTP服务的程序文件收发客户端,客户端调用FTP服务来接收云端分发下来的各种PLC控制程序文件,如C语言的.c文件。同时在该容器中装对应于,负责将程序进行编译,如对应于C语言的gcc编译器。编译完成后,边缘设备将生成的可执行文件交由相应的执行器运行。其中,数据卷容器负责实现多个容器之间的数据共享。数据卷容器中可以提供数据卷,以供其他容器挂载。其中,数据库容器中部署有数据库管理系统,例如SQLite数据库管理系统等。数据库容器可以用于保存其它容器产生的数据。同时,数据库容器还可以用于持久化数据的协同管理。
其中,应用容器为非默认容器。应用容器中可以包括多个自定义镜像。该自定义镜像为用户通过下拉请求,从云端下拉得到的镜像文件。该自定义镜像中包括预设的自定义功能。例如该自定义镜像可以为基于机器学习算法的数据清洗容器、基于MQTT协议的数据传输容器等。
图2示出了本申请一实施例提供的一种基于容器的边缘设备运行方法的流程图。在图1所示实施例的基础上,如图2所示,以边缘设备为执行主体,本实施例的方法可以包括如下步骤:
S101、获取程序文件,程序文件指定应用于至少一个边缘设备。
本实施例中,在云端的PLC控制程序开发阶段,用户可以通过PLC编程开发平台运用标准PLC编程语言进行PLC控制程序设计开发。由于不同边缘设备的底层环境不同,以及不同的边缘设备的需求也不同,因此,不同的程序文件通常应用于不同的边缘设备。用户在设计开发PLC控制程序时,通常指定该PLC控制程序应用的边缘设备。其中,该边缘设备的数量大于等于一个。
云端在获取该PLC控制程序后,将该PLC控制程序编译为边缘设备对应程序文件。其中,云端设置的PLC编程开发平台将完成开发的PLC控制程序,检查语法语义,并编译为边缘设备可实际运行的语言。例如C语言或者汇编语言。
S102、根据程序文件执行应用的边缘设备,发送程序文件。
本实施例中,云端在获取程序文件后,根据该程序文件指定应用的边缘设备,将该程序文件发送到指定的边缘设备。其中,边缘设备可以通过FTP服务器,以文件的形式,发送该程序文件。
S103、接收程序文件,程序文件中具有边缘设备的控制程序。
本实施例中,边缘设备接收服务器向边缘设备发送的程序文件。其中,程序文件为用户通过云端的PLC编程开发平台运用标准PLC编程语言进行PLC控制程序设计开发得到的PLC控制程序。或者,程序文件为用户通过PLC编程开发平台完成设计开发后,发送到云端的PLC控制程序。其中,由于不同的边缘设备的底层环境不同,以及不同的边缘设备的需求也不同,因此,不同的程序文件通常应用于不同的边缘设备。即,在用户设计开发PLC控制程序,生成程序文件时,通常对应确定使用该程序文件的边缘设备。该边缘设备可以是一个或者多个边缘设备。
边缘设备中包括系统容器,系统容器中包括编译运行容器,编译运行容器中安装有基于FTP服务的程序文件收发客户端。该收发客户端调用FTP服务来接收云端分发下来的各种PLC控制程序文件。对应的,云端同样包括FTP服务器,该FPT服务器用于向边缘设备发送程序文件。
S104、编译并执行程序文件,系统容器通过编译并执行程序文件来执行边缘设备的功能。
本实施例中,当边缘设备中的编译运行容器内的FTP接收客户端接收到云端发送的程序文件后,将该程序文件发送到系统容器内安装的对应语言的编译器进行编译。若编译报错,则发送报错信息到云端。若编译正确,则生成可执行文件,交由执行器进行运行。执行器运行该程序文件,执行该边缘设备的功能。
本申请提供的基于容器的边缘设备方法,云端在获取该PLC控制程序后,将该PLC控制程序编译为边缘设备对应程序文件。云端根据该程序文件指定应用的边缘设备,将该程序文件发送到指定的边缘设备。边缘设备接收服务器向边缘设备发送的程序文件。边缘设备使用系统容器内安装的编译对该程序文件进行编译,生成可执行文件,并交由执行器进行运行。执行器运行该程序文件,执行该边缘设备的功能。本申请中,边缘设备的系统容器接收云端发送的程序文件,使该程序文件不必固化于一固定的边缘设备中,可以通过云端在多个边缘设备中实现该程序文件的复用,提高了该程序文件的复用效率,提高了边缘设备中程序文件的应用的便捷性。
图3示出了本申请一实施例提供的另一种基于容器的边缘设备运行方法的流程图。在图1和图2所示实施例的基础上,如图3所示,以边缘设备为执行主体,本实施例的方法可以包括如下步骤:
S201、接收程序文件,程序文件中具有边缘设备的控制程序。
其中,步骤S201与图2实施例中的步骤S103实现方式类似,本实施例此处不再赘述。
S202、使用目标编译器编译程序文件,目标编译器根据程序文件的代码语言确定。
本实施例中,程序文件的代码语言可以包括汇编、C语言等。边缘设备的收发客户端在接收程序文件后,将该程序文件发送到编译执行容器。编译执行容器中可以包括至少一个编译器。每一编译器用于对一种代码语言的程序文件进行编译。该过程具体包括:
步骤1、获取程序文件的代码语言。
本步骤中,边缘设备检测该程序文件所使用的代码语言。其中,程序文件的代码语言可以根据该程序文件的后缀名、注释内容、文件头等信息确定。
步骤2、根据代码语言,从系统容器的编译器中选择目标编译器。
本步骤中,边缘设备在确定代码语言后,根据该代码语言确定目标编译器。该目标编译器用于编译该代码语言所对应的程序文件。
步骤3、使用目标编译器编译程序文件。
S203、若程序文件编译正确,则生成可执行文件,并执行可执行文件。
本实施例中,边缘设备在使用目标编译器编译程序文件时,可能编译成功,也可能编译失败。当目标编译器对该程序文件编译成功时,目标编译器在完成编译后,对应生成该程序文件的可执行文件。边缘设备根据预设的执行指令执行该可执行文件。
S204、若程序文件编译错误,则发送报错信息。
本实施例中,当目标编译器对该程序文件编译失败时,目标编译器根据编译结果生成报错信息。边缘设备发送该报错信息。其中,边缘设备可以将该报错信息发送到云端进行备份。或者,边缘设备可以将该报错信息发送到该边缘设备的显示设备上,实现对该边缘设备的报错警告。或者,边缘设备还可以将该报错信息发送到预设的地址,以提醒管理员注意该报错信息。
本申请提供的基于容器的边缘设备运行方法,边缘设备接收云端发送的程序文件。边缘设备根据该程序文件的代码语言,从系统容器的编译器中选择目标编译器。若边缘设备使用该目标编译器成功编译该程序文件,则生成可执行文件。若边缘设备使用该目标编译器编译该程序文件不成功,则发送报错信息。边缘设备执行该可执行文件,实现该边缘设备功能的执行。本申请中,边缘设备的系统容器接收云端发送的程序文件,使该程序文件不必固化于一固定的边缘设备中,可以通过云端在多个边缘设备中实现该程序文件的复用,提高了该程序文件的复用效率,提高了边缘设备中程序文件的应用的便捷性。
图4示出了本申请一实施例提供的再一种基于容器的边缘设备运行方法的流程图。在图1至图3所示实施例的基础上,如图4所示,以边缘设备为执行主体,本实施例的方法可以包括如下步骤:
S301、发送下拉请求,下拉请求用于请求下拉一个或者多个自定义镜像,自定义镜像存储于云端。
本实施例中,边缘设备向云端发送下拉请求,向云端请求下拉某一自定义镜像。该下拉请求中包括一个或者多个自定义镜像,以及该边缘设备的信息。
S302、获取下拉请求,下拉请求用于请求下拉一个或者多个自定义镜像;
本实施例中,云端获取边缘设备发送的下拉请求。
S303、根据下拉请求,发送自定义镜像到边缘设备的应用容器中。
本实施例中,云端包括镜像库,该镜像库中存储有至少一个自定义镜像。该自定义镜像中包括预设的自定义功能,用于执行自定义的算法,例如基于机器学习算法的数据清洗方法和基于MQTT协议的数据传输方法等。
云端根据该下拉请求中包括的自定义镜像,从镜像库获取该自定义镜像。当云端存在该自定义镜像时,云端发送该自定义镜像到边缘设备。否则,云端拒绝该下拉请求。
S304、根据下拉请求,将自定义镜像下拉到应用容器中,应用容器执行自定义镜像,实现自定义镜像中预设的自定义功能。
本实施例中,当云端存在该自定义镜像时,云端发送该自定义镜像到边缘设备。边缘设备成功下拉该自定义镜像。边缘设备将该自定义镜像保存在应用容器中。边缘设备在该应用容器中运行该自定义镜像,实现该自定义镜像预设的自定义功能。
S305、获取程序文件或者自定义镜像的修改指令,该指令用于更新、增加或者删除云端的程序文件或者自定义镜像。
本实施例中,当用户需要修改边缘设备中的程序文件或者自定义镜像时,用户直接修改云端的程序文件或者自定义镜像。用户可以对该程序文件或者自定义镜像中的内容进行修改,例如修改算法流程、修改BUG等。或者,用户还可以删除该程序文件或者自定义镜像。
S306、轮询边缘设备,向下拉程序文件或者自定义镜像的边缘设备发送变更指令。
本实施例中,当用户完成对云端的程序文件或者自定义镜像的修改后,云端轮询与之连接的边缘设备。云端向下拉过该程序文件或者自定义镜像的边缘设备发送变更指令。该变更指令中包括变更方式和变更后的程序文件或者自定义镜像。
S307、获取变更指令,变更指令用于更新、增加或者删除边缘设备中的程序文件或者自定义镜像。
本实施例中,边缘设备获取云端发送的变更指令。
S308、根据变更指令,变更程序文件或者自定义镜像。
本实施例中,边缘设备根据该变更指令中的变更方式,对边缘设备中的程序文件或者自定义镜像进行变更。例如,当该自定义镜像新增引用镜像时,边缘设备根据该变更指令,将该新增的引用镜像新增到边缘设备的应用容器中。当该自定义镜像中的内容被修改时,边缘设备根据该变更指令,下拉更新后的该自定义镜像。当该自定义镜像被删除时,边缘设备根据该变更指令,将边缘设备中的该自定义镜像删除。
本申请提供的基于容器的边缘设备运行方法,边缘设备向云端发送下拉请求,向云端请求下拉某一自定义镜像。云端获取边缘设备发送的下拉请求。云端根据该下拉请求中包括的自定义镜像,从镜像库获取该自定义镜像。当云端存在该自定义镜像时,云端发送该自定义镜像到边缘设备。否则,云端拒绝该下拉请求。边缘设备将该自定义镜像保存在应用容器中,并在该应用容器中运行该自定义镜像。当用户需要修改边缘设备中的程序文件或者自定义镜像时,用户直接修改云端的程序文件或者自定义镜像。当用户完成对云端的程序文件或者自定义镜像的修改后,云端轮询与之连接的边缘设备。云端向下拉过该程序文件或者自定义镜像的边缘设备发送变更指令。边缘设备获取云端发送的变更指令。边缘设备根据该变更指令中的变更方式,对边缘设备中的程序文件或者自定义镜像进行变更。本申请中,通过下拉请求,实现云端自定义镜像的重复使用,提高代码的复用率,提高自定义镜像的使用效率,减少编程过程中人力资源的不必要消耗。本申请还通过变更请求,实现了程序文件和自定义镜像的动态更新。
图5示出了本申请一实施例提供的一种基于容器的边缘设备运行装置的结构示意图,如图5所示,本实施例的基于容器的边缘设备运行装置10,应用于边缘设备,用于实现上述任一方法实施例中对应于边缘设备的操作,本实施例的基于容器的边缘设备运行装置10包括:
接收模块11,用于接收程序文件,程序文件中具有边缘设备的控制程序。
执行模块12,用于编译并执行程序文件,系统容器通过编译并执行程序文件来执行边缘设备的功能。
本申请实施例提供的基于容器的边缘设备运行装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图6示出了本申请一实施例提供的另一种基于容器的边缘设备运行装置的结构示意图。在图5所示实施例的基础上,如图6所示,本实施例的基于容器的边缘设备运行装置10,应用于边缘设备中,用于实现上述任一方法实施例中对应于边缘设备的操作,本实施例的搭建单元12包括:
编译子模块121,用于使用目标编译器编译程序文件,目标编译器根据程序文件的代码语言确定。
生成子模块122,用于在程序文件编译正确,则生成可执行文件,并执行可执行文件。
发送子模块123,用于在程序文件编译错误,则发送报错信息。
一种示例中,编译子模块121具体用于获取程序文件的代码语言。根据代码语言,从系统容器的编译器中选择目标编译器。使用目标编译器编译程序文件。
一种示例中,执行子模块123具体用于获取可执行文件的扩展名。根据扩展名,从系统容器的执行器中选择目标执行器。使用目标执行器执行可执行文件。
本申请实施例提供的基于容器的边缘设备运行装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图7示出了本申请一实施例提供的再一种基于容器的边缘设备运行装置的结构示意图。在图5和图6所示实施例的基础上,如图7所示,本实施例的基于容器的边缘设备运行装置10,应用于边缘设备,用于实现上述任一方法实施例中对应于边缘设备的操作,本实施例的基于容器的边缘设备运行装置10还包括:
发送模块13,用于发送下拉请求,下拉请求用于请求下拉一个或者多个自定义镜像,自定义镜像存储于云端。
下拉模块14,用于根据下拉请求,将自定义镜像下拉到应用容器中,应用容器执行自定义镜像,实现自定义镜像中预设的自定义功能。
获取模块15,用于获取变更指令,变更指令用于更新、增加或者删除边缘设备中的程序文件或者自定义镜像。
变更模块16,用于根据变更指令,变更程序文件或者自定义镜像。
本申请实施例提供的基于容器的边缘设备运行装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图8示出了本申请一实施例提供的又一种基于容器的边缘设备运行装置的结构示意图。在图5至图7所示实施例的基础上,如图8所示,本实施例的基于容器的边缘设备运行装置20,应用于云端,用于实现上述任一方法实施例中对应于云端的操作,本实施例的基于容器的边缘设备运行装置20包括:
获取模块21,用于补获取程序文件,程序文件指定应用于至少一个边缘设备;
发送模块22,用于根据程序文件执行应用的边缘设备,发送程序文件。
一种示例中,
获取模块,还用于获取下拉请求,下拉请求用于请求下拉一个或者多个自定义镜像;
发送模块,还用于根据下拉请求,发送自定义镜像到边缘设备的应用容器中。
本申请实施例提供的基于容器的边缘设备运行装置10,可执行上述方法实施例,其具体实现原理和技术效果,可参见上述方法实施例,本实施例此处不再赘述。
图9示出了本申请实施例提供的一种基于容器的边缘设备运行系统的结构示意图。如图9所示,本实施例的基于容器的边缘设备运行系统30可以包括:边缘设备21和云端22。
云端32,用于根据存储并发送程序文件和自定义镜像。
边缘设备31,用于实现如图1至图3中任意一个实施例所示的基于容器的边缘设备运行方法。
其中边缘设备31的容器支持内核可以如图10所示。为使边缘设备支持运行实时控制程序,可选的方案之一为采用实时框架,例如Xenomai框架。实时框架本质上是在实际使用中为容器提供双内核支持的架构。该双核分别是高优先级的实时微内核co-kernel以及系统自带的非实时内核。当运行实时控制程序时,实施框架会优先迁移到实时微内核域,调用co-kernel内核服务API。此时,非实时任务调用则会迁移到非实时域,调用系统内核服务。在边缘设备中,系统类容器中的实时PLC程序运行调用实时微内核,而编译执行容器、和数据卷容器、数据库容器等则调用系统非实时内核。此外,应用容器也调用系统非实时内核。
本实施例提供的基于容器的边缘设备运行系统30可用于执行上述的基于容器的边缘设备运行方法,其实现方式和技术效果类似,本实施例此处不再赘述。
本申请还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在边缘设备中。边缘设备可以读取该执行指令,边缘设备执行该执行指令使得设备实施上述的各种实施方式提供的方法。
本申请实施例还提供一种芯片,包括存储器和处理器,该芯片安装于边缘设备中。其中,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片的设备执行如上各种可能的实施方式中的方法。
应理解,上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制。尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换。而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (10)
1.一种基于容器的边缘设备运行方法,其特征在于,应用于边缘设备,所述边缘设备中包括系统容器,所述方法,包括:
接收程序文件,所述程序文件中具有所述边缘设备的控制程序;
编译并执行所述程序文件,所述系统容器通过编译并执行所述程序文件来执行所述边缘设备的功能。
2.根据权利要求1所述的方法,其特征在于,所述编译并执行所述程序文件,包括:
使用目标编译器编译所述程序文件,所述目标编译器根据所述程序文件的代码语言确定;
若所述程序文件编译正确,则生成可执行文件,并执行所述可执行文件;
若程序文件编译错误,则发送报错信息。
3.根据权利要求2所述的方法,其特征在于,所述系统容器中包括至少一个编译器,所述使用目标编译器编译所述程序文件,所述目标编译器根据所述程序文件的代码语言确定,包括:
获取所述程序文件的代码语言;
根据所述代码语言,从所述系统容器的编译器中选择目标编译器;
使用所述目标编译器编译所述程序文件。
4.根据权利要求1所述的方法,其特征在于,应用于边缘设备,所述边缘设备中包括应用容器,所述方法,还包括:
发送下拉请求,所述下拉请求用于请求下拉一个或者多个自定义镜像,所述自定义镜像存储于云端;
根据所述下拉请求,将所述自定义镜像下拉到所述应用容器中,所述应用容器执行所述自定义镜像,实现所述自定义镜像中预设的自定义功能。
5.根据权利要求4所述的方法,其特征在于,当存储在云端的所述程序文件或者所述自定义镜像发生变更时,所述方法,还包括:
获取变更指令,所述变更指令用于更新、增加或者删除所述边缘设备中的所述程序文件或者所述自定义镜像;
根据所述变更指令,变更所述程序文件或者所述自定义镜像。
6.一种基于容器的边缘设备运行方法,其特征在于,应用于云端,所述方法,包括:
获取程序文件,所述程序文件指定应用于至少一个边缘设备;
根据所述程序文件执行应用的边缘设备,发送所述程序文件。
7.根据权利要求6所述的方法,其特征在于,还包括:
获取下拉请求,所述下拉请求用于请求下拉一个或者多个自定义镜像;
根据所述下拉请求,发送所述自定义镜像到所述边缘设备的应用容器中。
8.一种基于容器的边缘设备运行装置,其特征在于,应用于边缘设备,所述边缘设备中包括系统容器和应用容器,所述装置,包括:
接收模块,用于接收程序文件,所述程序文件中具有所述边缘设备的控制程序;
执行模块,用于编译并执行所述程序文件,所述系统容器通过编译并执行所述程序文件来执行所述边缘设备的功能。
9.一种基于容器的边缘设备运行装置,其特征在于,应用于云端,所述装置,包括:
获取模块,用于获取程序文件,所述程序文件指定应用于至少一个边缘设备;
发送模块,用于根据所述程序文件执行应用的边缘设备,发送所述程序文件。
10.一种基于容器的边缘设备运行系统,其特征在于,所述系统,包括:边缘设备和云端;
云端,用于根据存储并发送程序文件和自定义镜像;
边缘设备,用于实现如权利要求1-6中任意一项所述的基于容器的边缘设备运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011190493.1A CN112269565A (zh) | 2020-10-30 | 2020-10-30 | 基于容器的边缘设备运行方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011190493.1A CN112269565A (zh) | 2020-10-30 | 2020-10-30 | 基于容器的边缘设备运行方法、装置和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112269565A true CN112269565A (zh) | 2021-01-26 |
Family
ID=74344878
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011190493.1A Pending CN112269565A (zh) | 2020-10-30 | 2020-10-30 | 基于容器的边缘设备运行方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112269565A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113126997A (zh) * | 2021-04-21 | 2021-07-16 | 多点(深圳)数字科技有限公司 | 一套前端代码生成多个运行容器的编译方法 |
CN113407208A (zh) * | 2021-06-17 | 2021-09-17 | 南方电网数字电网研究院有限公司 | 基于远端部署的边缘设备功能在线配置方法 |
CN113568724A (zh) * | 2021-07-06 | 2021-10-29 | 广州衡昊数据科技有限公司 | 一种边缘计算节点控制方法和系统 |
CN113805957A (zh) * | 2021-08-13 | 2021-12-17 | 广东省安心加科技有限公司 | 边缘端程序动态加载方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063239A (zh) * | 2013-03-22 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 移动终端的应用程序更新方法及服务器、客户端 |
CN108282513A (zh) * | 2017-12-08 | 2018-07-13 | 广州视源电子科技股份有限公司 | 服务器部署方法、系统、存储介质及计算机设备 |
CN109508178A (zh) * | 2018-09-27 | 2019-03-22 | 咪咕文化科技有限公司 | 一种程序开发方法及装置 |
CN111209005A (zh) * | 2020-01-06 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 程序文件的编译方法、装置和计算机可读存储介质 |
-
2020
- 2020-10-30 CN CN202011190493.1A patent/CN112269565A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104063239A (zh) * | 2013-03-22 | 2014-09-24 | 腾讯科技(深圳)有限公司 | 移动终端的应用程序更新方法及服务器、客户端 |
CN108282513A (zh) * | 2017-12-08 | 2018-07-13 | 广州视源电子科技股份有限公司 | 服务器部署方法、系统、存储介质及计算机设备 |
CN109508178A (zh) * | 2018-09-27 | 2019-03-22 | 咪咕文化科技有限公司 | 一种程序开发方法及装置 |
CN111209005A (zh) * | 2020-01-06 | 2020-05-29 | 腾讯科技(深圳)有限公司 | 程序文件的编译方法、装置和计算机可读存储介质 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113126997A (zh) * | 2021-04-21 | 2021-07-16 | 多点(深圳)数字科技有限公司 | 一套前端代码生成多个运行容器的编译方法 |
CN113407208A (zh) * | 2021-06-17 | 2021-09-17 | 南方电网数字电网研究院有限公司 | 基于远端部署的边缘设备功能在线配置方法 |
CN113568724A (zh) * | 2021-07-06 | 2021-10-29 | 广州衡昊数据科技有限公司 | 一种边缘计算节点控制方法和系统 |
CN113805957A (zh) * | 2021-08-13 | 2021-12-17 | 广东省安心加科技有限公司 | 边缘端程序动态加载方法及装置 |
CN113805957B (zh) * | 2021-08-13 | 2024-02-13 | 广东省安心加科技有限公司 | 边缘端程序动态加载方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112269565A (zh) | 基于容器的边缘设备运行方法、装置和系统 | |
CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
CN110365751B (zh) | 网关系统的业务处理方法、装置及设备 | |
CN105242962B (zh) | 基于异构众核的轻量级线程快速触发方法 | |
CN112329945A (zh) | 一种模型部署及推理的方法和装置 | |
CN111740948B (zh) | 数据包发布方法、动态更新方法、装置、设备及介质 | |
CN111832736A (zh) | 用于处理机器学习模型的方法、设备和计算机程序产品 | |
CN111399897A (zh) | 基于kubernetes的应用发布方法以及系统 | |
JP2018530070A (ja) | クラウドベースのコンピューティング環境上の基盤を構築、最適化及び実施するシステム及び方法 | |
CN110647332A (zh) | 基于容器云的软件部署方法和装置 | |
CN111857733B (zh) | 一种业务环境的构建方法、装置、系统以及可读存储介质 | |
CN111818194A (zh) | 基于域名的访问系统和方法 | |
EP3866443A1 (en) | Opc ua server, system operating using opc ua, and method of executing opc ua system | |
JP7048663B2 (ja) | コード実行方法、装置、レンダリングデバイス、記憶媒体、及びプログラム | |
CN117112122A (zh) | 一种集群部署方法和装置 | |
CN113127000B (zh) | 应用程序组件的编译方法、装置、设备及存储介质 | |
CN109683992A (zh) | 用于管理对象的方法和装置 | |
US11868748B2 (en) | Method, apparatus, and computer-readable medium for intelligent execution of a solution on a computer network | |
CN116755788A (zh) | 一种线上规则修改方法、装置、设备及存储介质 | |
CN110782040A (zh) | 一种pytorch任务训练方法、装置、设备及介质 | |
CN110018831A (zh) | 程序处理方法、装置及相关产品 | |
EP3872630B1 (en) | Request processing method and apparatus, electronic device, and computer storage medium | |
CN114816672A (zh) | 虚拟机的创建方法、装置、电子设备和存储介质 | |
CN113792093A (zh) | 信号系统接口业务创建和执行方法、装置和电子设备 | |
CN112306539A (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 |