CN110968400B - 应用程序的执行方法、装置、计算机设备和存储介质 - Google Patents
应用程序的执行方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110968400B CN110968400B CN201911311583.9A CN201911311583A CN110968400B CN 110968400 B CN110968400 B CN 110968400B CN 201911311583 A CN201911311583 A CN 201911311583A CN 110968400 B CN110968400 B CN 110968400B
- Authority
- CN
- China
- Prior art keywords
- container
- layer
- rule information
- service request
- information
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及一种应用程序的执行方法、装置、计算机设备和存储介质。所述方法包括:当所述网关层接收到第一业务请求时,根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息;将所述第一规则信息发送至所述容器层的第一目标容器,其中,所述第一目标容器调用所述硬件层中与所述第一规则信息对应的硬件接口,以执行所述第一规则信息。采用本方法能够实现嵌入式系统中各个功能的独立运行。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用程序的执行方法、装置、计算机设备和存储介质。
背景技术
嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(比如功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。传统的嵌入式系统中,基本上通过单体进程实现所有的功能,各个功能通过强耦合方式协同工作,任何一个功能的异常行为都会影响到其他功能的正常运行。
发明内容
基于此,有必要针对上述技术问题,提供一种实现嵌入式系统中,各个功能独立运行的应用程序的执行方法、装置、计算机设备和存储介质。
一种应用程序的执行方法,应用于嵌入式系统,所述嵌入式系统包括网关层、容器层以及硬件层,所述方法包括:
当所述网关层接收到第一业务请求时,根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息;
将所述第一规则信息发送至所述容器层的第一目标容器,其中,所述第一目标容器调用所述硬件层中与所述第一规则信息对应的硬件接口,以执行所述第一规则信息。
在其中一个实施例中,所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息之前,还包括:
所述网关层根据所述第一业务请求获取访问令牌;
当所述访问令牌合法时,执行所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息的步骤。
在其中一个实施例中,所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息,包括:
所述网关层根据所述第一业务请求获取命令信息;
根据所述命令信息获取所述容器层的第一目标容器以及第一规则信息。
在其中一个实施例中,所述根据所述命令信息获取所述容器层的第一目标容器以及第一规则信息,包括:
根据所述命令信息遍历本地缓存,从本地缓存中获取所述容器层的第一目标容器以及第一规则信息。
在其中一个实施例中,所述方法还包括:
若本地缓存中没有所述命令信息对应的所述容器层的第一目标容器以及第一规则信息,根据所述命令信息遍历数据库,从数据库中获取所述命令信息对应的所述容器层的第一目标容器以及第一规则信息。
在其中一个实施例中,所述方法还包括:
当所述网关层接收到第二业务请求时,确定与所述第二业务请求相关联的业务请求,其中,所述第二业务请求为所述容器层发送给所述网关层的业务请求;
根据与所述第二业务请求相关联的业务请求,确定所述容器层的第二目标容器以及第二规则信息;
将所述第二规则信息发送至所述容器层的第二目标容器,其中,所述第二目标容器调用所述硬件层中与所述第二规则信息对应的硬件接口,以执行所述第二规则信息。
在其中一个实施例中,所述容器层的更新方式包括:
获取修改指令,所述修改指令中携带有待修改容器信息;
按照所述修改指令更新所述待修改容器信息所对应的待修改容器的脚本信息。
一种应用程序的执行装置,应用于嵌入式系统,所述嵌入式系统包括网关层、容器层以及硬件层,所述装置包括:
确定模块,用于所述网关层响应接收到的业务请求,根据所述业务请求确定所述容器层的目标容器以及规则信息;
发送模块,用于将所述规则信息发送至所述容器层的目标容器,其中,所述目标容器调用所述硬件层中与所述规则信息对应的硬件接口,以执行所述规则信息。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
当所述网关层接收到第一业务请求时,根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息;
将所述第一规则信息发送至所述容器层的第一目标容器,其中,所述第一目标容器调用所述硬件层中与所述第一规则信息对应的硬件接口,以执行所述第一规则信息。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
当所述网关层接收到第一业务请求时,根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息;
将所述第一规则信息发送至所述容器层的第一目标容器,其中,所述第一目标容器调用所述硬件层中与所述第一规则信息对应的硬件接口,以执行所述第一规则信息。
上述应用程序的执行方法、装置、计算机设备和存储介质,当网关层接收到第一业务请求时,根据第一业务请求确定容器层的第一目标容器以及第一规则信息,将第一规则信息发送至容器层的第一目标容器,其中,第一目标容器调用硬件层中与第一规则信息对应的硬件接口,以执行第一规则信息。这样,通过微服务和容器技术,使得嵌入式系统中各个功能的运行环境相互隔离,实现各个功能独立运行。
附图说明
图1为一个实施例中嵌入式系统的结构框图;
图2为一个实施例中应用程序的执行方法的流程示意图;
图3为一个实施例中网关层的结构框图;
图4为一个实施例中容器层的结构框图;
图5为另一个实施例中嵌入式系统的结构框图;
图6为一个实施例中应用程序的执行装置的结构框图;
图7为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的应用程序的执行方法,可以应用于如图1所示的应用环境中。该应用环境可为嵌入式系统,嵌入式系统可包括网关层110、容器层120、硬件层130以及操作系统140。网关层110是所有服务对外部提供服务的入口,网关层110像一道防火墙,隐藏了企业内部的具体组织结构,通过权限认证和流量控制机制保证了微服务的安全稳定,通过URL(Uniform Resource Locator,统一资源定位符)重写、报文转换等适配了服务的具体不同调用方式。
网关层110与容器层120通过通信协议进行数据交互,比如HTTP(Hypertexttransfer protocol,超文本传输协议)。容器层120由多个服务组成,每个服务的应用程序封装在独立的容器中,每个容器互相独立,互不干扰,但又共享操作系统资源。容器之间通过通信协议进行数据交互。通过容器层110实现微服务。网关层110通过统一的接口、规范管理着复杂繁多的微服务。
硬件层130中部署嵌入式系统对外部硬件操作的接口,容器层120可调用硬件层130中的硬件接口来执行业务请求对应的规则信息。
在一个实施例中,如图2所示,提供了一种应用程序的执行方法,包括以下步骤:
步骤202,当所述网关层接收到第一业务请求时,根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息。
步骤204,将所述第一规则信息发送至所述容器层的第一目标容器,其中,所述第一目标容器调用所述硬件层中与所述第一规则信息对应的硬件接口,以执行所述第一规则信息。
其中,第一业务请求是指外部的客户端向网关层发送的业务请求。外部的客户端可通过HTTP协议向网关层发起业务请求。第一目标容器是指,第一业务请求的服务对应的容器。第一规则信息是指,第一业务请求的服务内容。
其中,如图3所示,网关层可包括请求处理中心,请求处理中心用于接收业务请求,并对业务请求进行清洗、解析等处理。
请求处理中心可调用插件实现对业务请求进行处理,插件可为:身份鉴权/验证插件、数据持久层访问API(Application Programming Interface,应用程序接口)、数据缓存访问API、网关层日志、规则引擎等。
身份鉴权/验证插件,用于统一认证业务请求的合法性。可选地,还需验证服务请求方是否有权限调用该服务,如果没有权限调用该服务,则返回错误信息。
数据持久层访问API,用于永久存储规则信息、历史数据等;数据缓存访问API,用于缓存规则信息、历史数据等。可根据数据持久层访问API或者数据缓存访问API,获取业务请求对应的目标容器以及规则信息。
网关层日志,用于记录网关行为,便于后续系统的运维。无论业务请求是否调用成功,网关层都会记录本次调用的服务信息、请求接口、调用时间、调用参数、调用结果、请求具体事例等调用信息到日志,用于数据统计和异常监控。
规则引擎,用于存储业务请求之间的关联关系。
网关层还可包括调度中心,调度中心用于对部署在容器层的服务进行调度。调度中心可进行轮询负载、流量控制、反向代理等功能。轮询负载是指,对一个服务的每一个实例,进行轮询访问。如果在请求某一个实例多次重复失败,切换下一个实例进行重试,并且记录异常信息日志,用于发现异常实例信息,反馈给服务管理者。
流量控制用于限制每秒请求次数。流量控制可包括用户级别流量控制、集群级别流量控制和应用级别流量控制。用户级别流量控制用于限制一个用户标识每秒请求同一个接口的次数,防止某些用户恶意请求大量数据。集群级别流量控制用于限制网关层每秒转发到一个服务的集群的请求数量,避免某一个服务集群请求量超过服务能力,导致崩溃。应用级别流量控制用于限制一个应用每秒请求某一个服务接口的次数,防止应用恶意请求或者请求数量过大,导致服务崩溃。
反向代理主要是根据客户端发过来的业务请求,将该业务请求转发给对应服务的实例,并将执行结果返回给请求服务的客户端。将客户端请求的URL,根据管理员配置的URL重写规则,转化成真实服务的URL,反向代理使用真实的URL,发送请求服务的报文,等待服务的响应结果。在进行反向代理的时候,会将请求服务的应用信息、用户信息、请求来源等信息封装到HTTP Header中,在反向代理的过程中发送给下游服务。根据不同应用程序接口的缓存策略,缓存短时间内重复请求的响应结果,以减少服务端的请求处理压力,提高服务响应速度。
可以理解,请求处理中心与调度中心也可集成在一起,统一实现对业务请求进行处理以及对部署在容器层的服务进行调度。
其中,如图4所示,容器层由多个服务组成,每个服务的应用程序封装在独立的容器中。可通过Docker技术实现服务的自动化部署。Docker是基于Go语言的应用容器引擎,可以实现将应用和依赖环境一起打包到一个轻量级、可移植的容器中,然后发布到任何装有容器虚拟化环境的机器上,实现应用的快捷部署、管理以及迁移等功能,从而避免传统软件安装环境配置复杂、不易移植等问题。此外,容器完全使用沙箱机制,容器与容器相互之间不会有任何接口,可以独立运行,并且容器性能开销低,可以实现秒级启动。
具体地,使用网关层和容器层相结合,使得每个应用服务独立运行安全环境,运行环境相互隔离,互不影响,降低各个应用服务间的耦合性,当一个服务僵死,直接远程登录到嵌入式系统重启相应的僵死服务即可,不影响其他服务的运行;每个应用服务以容器化形式运行,脱离运行平台的依赖,脱离嵌入式系统硬件的依赖,支持跨平台应用,支持应用快速简易部署;支持多种编程语言(包括编译语言与解析编程语言)并行开发嵌入式系统,降低嵌入系统开发流程难度,缩短开发周期;应用服务支持本地在线动态修复、升级,而不需要经过负责的应用软件交叉编译的流程;成熟稳定的应用框架,便于加快应用服务的业务开发流程。其中,上述平台可以是嵌入式windows系统或者嵌入式Linux系统。
上述应用程序的执行方法中,当网关层接收到第一业务请求时,根据第一业务请求确定容器层的第一目标容器以及第一规则信息,将第一规则信息发送至容器层的第一目标容器,其中,第一目标容器调用硬件层中与第一规则信息对应的硬件接口,以执行第一规则信息。这样,通过微服务和容器技术,使得嵌入式系统中各个功能的运行环境相互隔离,实现各个功能独立运行。
在一个实施例中,所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息之前,还包括:所述网关层根据所述第一业务请求获取访问令牌;当所述访问令牌合法时,根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息。
其中,访问令牌用于身份鉴权/认证。可选地,访问令牌可以是AccessToken。
具体地,通过服务Access Key和Secret Access Key生成具有时效性的AccessToken,客户端通过AccessToken请求服务。网关层验证服务请求的AccessToken是否合法,如果合法可以从AccessToken解析出命令信息,如果不合法或者AccessToken过期,返回错误信息。
上述应用程序的执行方法中,网关层根据第一业务请求获取访问令牌,当访问令牌合法时,根据第一业务请求确定容器层的第一目标容器以及第一规则信息,这样,实现对业务请求的合法性进行校验。
在一个实施例中,所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息,包括:所述网关层根据所述第一业务请求获取命令信息;根据所述命令信息获取所述容器层的第一目标容器以及第一规则信息。
其中,命令信息可以是服务的编号,比如命令01、命令02、命令03等。
预先存储命令信息与目标容器、规则信息之间的映射关系,根据命令信息可确定该命令信息对应的目标容器与规则信息。比如,预先存储命令01-路灯-18点开灯,命令02-路灯-亮度60%等,当解析到命令信息为命令01时,路灯对应的容器即为第一目标容器,18点开灯即为第一规则信息。
上述应用程序的执行方法中,网关层根据第一业务请求获取命令信息,根据命令信息获取容器层的第一目标容器以及第一规则信息,提高了网关层的调度效率。
在一个实施例中,所述根据所述命令信息获取所述容器层的第一目标容器以及第一规则信息,包括:根据所述命令信息遍历本地缓存,从本地缓存中获取所述容器层的第一目标容器以及第一规则信息。
其中,访问本地缓存可通过调用数据缓存访问API来实现,可选地,该数据缓存访问API对应Redis集群、Nginx本地内存等。
具体地,可将集群共享的高频读取数据放入本地缓存中,减少远程数据读取所消耗的时间,提高数据读取的效率。
上述应用程序的执行方法中,根据命令信息遍历本地缓存,从本地缓存中获取容器层的第一目标容器以及第一规则信息,提高数据读取的效率。
在一个实施例中,所述方法还包括:若本地缓存中没有所述命令信息对应的所述容器层的第一目标容器以及第一规则信息,根据所述命令信息遍历数据库,从数据库中获取所述命令信息对应的所述容器层的第一目标容器以及第一规则信息。
其中,访问数据库可通过数据持久层访问API来实现,可选地,该数据持久层访问API对应MongoDB集群、MySQL集群等。
上述应用程序的执行方法中,若本地缓存中没有命令信息对应的容器层的第一目标容器以及第一规则信息,根据命令信息遍历数据库,从数据库中获取命令信息对应的容器层的第一目标容器以及第一规则信息,实现数据的有效存储。
在一个实施例中,所述方法还包括:当所述网关层接收到第二业务请求时,确定与所述第二业务请求相关联的业务请求,其中,所述第二业务请求为所述容器层发送给所述网关层的业务请求;根据与所述第二业务请求相关联的业务请求,确定所述容器层的第二目标容器以及第二规则信息;将所述第二规则信息发送至所述容器层的第二目标容器,其中,所述第二目标容器调用所述硬件层中与所述第二规则信息对应的硬件接口,以执行所述第二规则信息。
其中,第二业务请求是指微服务应用程序向网关层发送的业务请求。第二目标容器是指,第二业务请求的服务对应的容器。第二规则信息是指,第二业务请求的服务内容。
业务请求之间的关联,可及时针对异常情况进行监督。比如,在一个应用场景下,当井盖被连续晃动五次以上时,生成第二业务请求,当网关层接收到第二业务请求,获取与第二业务请求相关联的业务请求—启动摄像头,通过摄像头拍摄井盖的情况,以使得工作人员及时采取应对措施。
可通过规则引擎存储业务请求之间的关联关系。业务请求之间的关联关系可提前设置。
上述应用程序的执行方法中,当网关层接收到第二业务请求时,确定与第二业务请求相关联的业务请求,根据与第二业务请求相关联的业务请求,确定容器层的第二目标容器以及第二规则信息,将第二规则信息发送至容器层的第二目标容器,其中,第二目标容器调用硬件层中与第二规则信息对应的硬件接口,以执行第二规则信息,这样,通过业务请求之间的关联,及时针对异常情况进行监督。
在一个实施例中,所述容器层的更新方式包括:获取修改指令,所述修改指令中携带有待修改容器信息;按照所述修改指令更新所述待修改容器信息所对应的待修改容器的脚本信息。
由于每个服务单独部署于容器内,采用Python、JavaScript、Lua、PHP(HypertextPreprocessor,超文本预处理器)动态解析编程语言实现服务的功能,当每个服务运行过程中出现异常,可通过远程的SSH(Secure Shell,安全外壳协议)客户端登录到嵌入式系统响应的容器内部,直接操作修改解析语言的脚本,重新部署服务,无需经过本地的重新编译调试,提供安全,可靠,快速的嵌入式系统开发的环境。
上述应用程序的执行方法中,获取修改指令,修改指令中携带有待修改容器信息;按照修改指令更新待修改容器信息所对应的待修改容器的脚本信息,这样,应用服务支持本地在线动态修复、升级,而不需要经过负责的应用软件交叉编译的流程,简化了操作流程。
在一个具体的实施例中,如图5所示,所述方法包括:
首先,Nginx网关层通过restful接口获得HTTP请求的业务请求,通过AccessToken校验进行身份验证。
接着,如果身份验证成功,解析AccessToken获得命令信息,根据命令信息遍历本地缓存,从本地缓存中获取容器层的目标容器以及规则信息。
进一步地,若本地缓存中没有命令信息对应的容器层的目标容器以及规则信息,根据命令信息遍历数据库,从数据库中获取命令信息对应的容器层的目标容器以及规则信息。
接着,将规则信息发送至容器层的目标容器,其中,目标容器调用硬件层中与规则信息对应的硬件接口,以执行规则信息。
进一步地,当接收到目标容器返回的处理结果信息时,输出处理结果信息至发起业务请求的终端。
上述应用程序的执行方法中,当网关层接收到第一业务请求时,根据第一业务请求确定容器层的第一目标容器以及第一规则信息,将第一规则信息发送至容器层的第一目标容器,其中,第一目标容器调用硬件层中与第一规则信息对应的硬件接口,以执行第一规则信息。这样,通过微服务和容器技术,使得嵌入式系统中各个功能的运行环境相互隔离,实现各个功能独立运行
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种应用程序的执行装置600,应用于嵌入式系统,所述嵌入式系统包括网关层、容器层以及硬件层,包括:确定模块602和发送模块604,其中:
确定模块602,用于所述网关层响应接收到的业务请求,根据所述业务请求确定所述容器层的目标容器以及规则信息;
发送模块604,用于将所述规则信息发送至所述容器层的目标容器,其中,所述目标容器调用所述硬件层中与所述规则信息对应的硬件接口,以执行所述规则信息。
上述应用程序的执行装置600,当网关层接收到第一业务请求时,根据第一业务请求确定容器层的第一目标容器以及第一规则信息,将第一规则信息发送至容器层的第一目标容器,其中,第一目标容器调用硬件层中与第一规则信息对应的硬件接口,以执行第一规则信息。这样,通过微服务和容器技术,使得嵌入式系统中各个功能的运行环境相互隔离,实现各个功能独立运行。
在一个实施例中,所述应用程序的执行装置还包括获取模块和执行模块,所述获取模块用于:所述网关层根据所述第一业务请求获取访问令牌;所述执行模块用于:当所述访问令牌合法时,执行所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息的步骤。
上述应用程序的执行装置600,网关层根据第一业务请求获取访问令牌,当访问令牌合法时,根据第一业务请求确定容器层的第一目标容器以及第一规则信息,这样,实现对业务请求的合法性进行校验。
在一个实施例中,所述确定模块602,还用于:所述网关层根据所述第一业务请求获取命令信息;根据所述命令信息获取所述容器层的第一目标容器以及第一规则信息。
上述应用程序的执行装置600,网关层根据第一业务请求获取命令信息,根据命令信息获取容器层的第一目标容器以及第一规则信息,提高了网关层的调度效率。
在一个实施例中,所述确定模块602,还用于:根据所述命令信息遍历本地缓存,从本地缓存中获取所述容器层的第一目标容器以及第一规则信息。
上述应用程序的执行装置600,根据命令信息遍历本地缓存,从本地缓存中获取容器层的第一目标容器以及第一规则信息,提高数据读取的效率。
在一个实施例中,所述确定模块602,还用于:若本地缓存中没有所述命令信息对应的所述容器层的第一目标容器以及第一规则信息,根据所述命令信息遍历数据库,从数据库中获取所述命令信息对应的所述容器层的第一目标容器以及第一规则信息。
上述应用程序的执行装置600,若本地缓存中没有命令信息对应的容器层的第一目标容器以及第一规则信息,根据命令信息遍历数据库,从数据库中获取命令信息对应的容器层的第一目标容器以及第一规则信息,实现数据的有效存储。
在一个实施例中,所述确定模块602,还用于:当所述网关层接收到第二业务请求时,确定与所述第二业务请求相关联的业务请求,其中,所述第二业务请求为所述容器层发送给所述网关层的业务请求;根据与所述第二业务请求相关联的业务请求,确定所述容器层的第二目标容器以及第二规则信息;所述发送模块604,还用于:将所述第二规则信息发送至所述容器层的第二目标容器,其中,所述第二目标容器调用所述硬件层中与所述第二规则信息对应的硬件接口,以执行所述第二规则信息。
上述应用程序的执行装置600,当网关层接收到第二业务请求时,确定与第二业务请求相关联的业务请求,根据与第二业务请求相关联的业务请求,确定容器层的第二目标容器以及第二规则信息,将第二规则信息发送至容器层的第二目标容器,其中,第二目标容器调用硬件层中与第二规则信息对应的硬件接口,以执行第二规则信息,这样,通过业务请求之间的关联,及时针对异常情况进行监督。
在一个实施例中,所述应用程序的执行装置还包括更新模块,所述获取模块,还用于:获取修改指令,所述修改指令中携带有待修改容器信息;所述更新模块,用于:按照所述修改指令更新所述待修改容器信息所对应的待修改容器的脚本信息。
上述应用程序的执行装置600,获取修改指令,修改指令中携带有待修改容器信息;按照修改指令更新待修改容器信息所对应的待修改容器的脚本信息,这样,应用服务支持本地在线动态修复、升级,而不需要经过负责的应用软件交叉编译的流程,简化了操作流程。
关于应用程序的执行装置600的具体限定可以参见上文中对于应用程序的执行方法的限定,在此不再赘述。上述应用程序的执行装置600中的各个模块可全部或部分通过应用程序的、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以应用程序的形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和执行能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的执行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用程序的执行方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
当所述网关层接收到第一业务请求时,根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息;
将所述第一规则信息发送至所述容器层的第一目标容器,其中,所述第一目标容器调用所述硬件层中与所述第一规则信息对应的硬件接口,以执行所述第一规则信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述网关层根据所述第一业务请求获取访问令牌;
当所述访问令牌合法时,执行所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息的步骤。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
所述网关层根据所述第一业务请求获取命令信息;
根据所述命令信息获取所述容器层的第一目标容器以及第一规则信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据所述命令信息遍历本地缓存,从本地缓存中获取所述容器层的第一目标容器以及第一规则信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
若本地缓存中没有所述命令信息对应的所述容器层的第一目标容器以及第一规则信息,根据所述命令信息遍历数据库,从数据库中获取所述命令信息对应的所述容器层的第一目标容器以及第一规则信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
当所述网关层接收到第二业务请求时,确定与所述第二业务请求相关联的业务请求,其中,所述第二业务请求为所述容器层发送给所述网关层的业务请求;
根据与所述第二业务请求相关联的业务请求,确定所述容器层的第二目标容器以及第二规则信息;
将所述第二规则信息发送至所述容器层的第二目标容器,其中,所述第二目标容器调用所述硬件层中与所述第二规则信息对应的硬件接口,以执行所述第二规则信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取修改指令,所述修改指令中携带有待修改容器信息;
按照所述修改指令更新所述待修改容器信息所对应的待修改容器的脚本信息。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
当所述网关层接收到第一业务请求时,根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息;
将所述第一规则信息发送至所述容器层的第一目标容器,其中,所述第一目标容器调用所述硬件层中与所述第一规则信息对应的硬件接口,以执行所述第一规则信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述网关层根据所述第一业务请求获取访问令牌;
当所述访问令牌合法时,执行所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息的步骤。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
所述网关层根据所述第一业务请求获取命令信息;
根据所述命令信息获取所述容器层的第一目标容器以及第一规则信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据所述命令信息遍历本地缓存,从本地缓存中获取所述容器层的第一目标容器以及第一规则信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
若本地缓存中没有所述命令信息对应的所述容器层的第一目标容器以及第一规则信息,根据所述命令信息遍历数据库,从数据库中获取所述命令信息对应的所述容器层的第一目标容器以及第一规则信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
当所述网关层接收到第二业务请求时,确定与所述第二业务请求相关联的业务请求,其中,所述第二业务请求为所述容器层发送给所述网关层的业务请求;
根据与所述第二业务请求相关联的业务请求,确定所述容器层的第二目标容器以及第二规则信息;
将所述第二规则信息发送至所述容器层的第二目标容器,其中,所述第二目标容器调用所述硬件层中与所述第二规则信息对应的硬件接口,以执行所述第二规则信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取修改指令,所述修改指令中携带有待修改容器信息;
按照所述修改指令更新所述待修改容器信息所对应的待修改容器的脚本信息。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种应用程序的执行方法,其特征在于,应用于嵌入式系统,所述嵌入式系统包括网关层、容器层以及硬件层,所述容器层包括各个应用服务的容器,所述容器互相独立且共享操作系统资源,所述容器之间通过通信协议进行数据交互;所述网关层用于通过统一的接口,规范管理各个所述应用服务;所述方法包括:
基于所述网关层和所述容器层,对所述各个应用服务运行环境隔离;
当所述网关层接收到第一业务请求时,根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息;
将所述第一规则信息发送至所述容器层的第一目标容器,其中,所述第一目标容器调用所述硬件层中与所述第一规则信息对应的硬件接口,以执行所述第一规则信息。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息之前,还包括:
所述网关层根据所述第一业务请求获取访问令牌;
当所述访问令牌合法时,执行所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息的步骤。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一业务请求确定所述容器层的第一目标容器以及第一规则信息,包括:
所述网关层根据所述第一业务请求获取命令信息;
根据所述命令信息获取所述容器层的第一目标容器以及第一规则信息。
4.根据权利要求3所述的方法,其特征在于,所述根据所述命令信息获取所述容器层的第一目标容器以及第一规则信息,包括:
根据所述命令信息遍历本地缓存,从本地缓存中获取所述容器层的第一目标容器以及第一规则信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若本地缓存中没有所述命令信息对应的所述容器层的第一目标容器以及第一规则信息,根据所述命令信息遍历数据库,从数据库中获取所述命令信息对应的所述容器层的第一目标容器以及第一规则信息。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述网关层接收到第二业务请求时,确定与所述第二业务请求相关联的业务请求,其中,所述第二业务请求为所述容器层发送给所述网关层的业务请求;
根据与所述第二业务请求相关联的业务请求,确定所述容器层的第二目标容器以及第二规则信息;
将所述第二规则信息发送至所述容器层的第二目标容器,其中,所述第二目标容器调用所述硬件层中与所述第二规则信息对应的硬件接口,以执行所述第二规则信息。
7.根据权利要求1所述的方法,其特征在于,所述容器层的更新方式包括:
获取修改指令,所述修改指令中携带有待修改容器信息;
按照所述修改指令更新所述待修改容器信息所对应的待修改容器的脚本信息。
8.一种应用程序的执行装置,其特征在于,应用于嵌入式系统,所述嵌入式系统包括网关层、容器层以及硬件层,所述容器层包括各个应用服务的容器,所述容器互相独立且共享操作系统资源,所述容器之间通过通信协议进行数据交互;所述网关层用于通过统一的接口,规范管理各个所述应用服务;所述装置包括:
确定模块,用于基于所述网关层和所述容器层,对所述容器层的各个应用服务运行环境隔离;所述网关层响应接收到的业务请求,根据所述业务请求确定所述容器层的目标容器以及规则信息;
发送模块,用于将所述规则信息发送至所述容器层的目标容器,其中,所述目标容器调用所述硬件层中与所述规则信息对应的硬件接口,以执行所述规则信息。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911311583.9A CN110968400B (zh) | 2019-12-18 | 2019-12-18 | 应用程序的执行方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911311583.9A CN110968400B (zh) | 2019-12-18 | 2019-12-18 | 应用程序的执行方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110968400A CN110968400A (zh) | 2020-04-07 |
CN110968400B true CN110968400B (zh) | 2022-10-18 |
Family
ID=70034977
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911311583.9A Active CN110968400B (zh) | 2019-12-18 | 2019-12-18 | 应用程序的执行方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110968400B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111580476B (zh) * | 2020-04-30 | 2021-05-11 | 联宝(合肥)电子科技有限公司 | 一种智能生产管理的方法、设备及计算机可读介质 |
CN111917588B (zh) * | 2020-08-10 | 2023-06-06 | 南方电网数字电网科技(广东)有限公司 | 边缘设备管理方法、装置、边缘网关设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183565A (zh) * | 2015-09-30 | 2015-12-23 | 华为技术有限公司 | 计算机、服务质量控制方法及装置 |
CN105530293A (zh) * | 2015-12-02 | 2016-04-27 | 深圳市深信服电子科技有限公司 | 应用发布方法和装置 |
CN109766184A (zh) * | 2018-12-28 | 2019-05-17 | 北京金山云网络技术有限公司 | 分布式任务处理方法、装置、服务器和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8103847B2 (en) * | 2009-04-08 | 2012-01-24 | Microsoft Corporation | Storage virtual containers |
CN110083433B (zh) * | 2019-03-08 | 2021-11-30 | 国网浙江省电力有限公司 | 嵌入式软件运行方法及装置、终端和计算机可读存储介质 |
-
2019
- 2019-12-18 CN CN201911311583.9A patent/CN110968400B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105183565A (zh) * | 2015-09-30 | 2015-12-23 | 华为技术有限公司 | 计算机、服务质量控制方法及装置 |
CN105530293A (zh) * | 2015-12-02 | 2016-04-27 | 深圳市深信服电子科技有限公司 | 应用发布方法和装置 |
CN109766184A (zh) * | 2018-12-28 | 2019-05-17 | 北京金山云网络技术有限公司 | 分布式任务处理方法、装置、服务器和系统 |
Non-Patent Citations (2)
Title |
---|
Method for testing the fault tolerance of MapReduce frameworks;Marynowski Joao Eugenio 等;《Computer networks》;20150615;第86卷(第5期);第1-13页 * |
基于容器技术的国土档案系统设计;章仕锋 等;《中国新通信》;20190605;第189-190页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110968400A (zh) | 2020-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10552610B1 (en) | Adaptive virtual machine snapshot update framework for malware behavioral analysis | |
US10075455B2 (en) | Zero-day rotating guest image profile | |
CN110191063B (zh) | 服务请求的处理方法、装置、设备及存储介质 | |
CN111159614B (zh) | 网页资源获取方法以及装置 | |
CN111400722A (zh) | 扫描小程序的方法、装置、计算机设备和存储介质 | |
CN111191226B (zh) | 利用提权漏洞的程序的确定方法、装置、设备及存储介质 | |
CN108351923B (zh) | 与统一可扩展固件接口系统可执行的脚本有关的阈值 | |
CN111193716A (zh) | 业务数据调用方法、装置、计算机设备和存储介质 | |
US10831892B2 (en) | Web browser script monitoring | |
CN110968400B (zh) | 应用程序的执行方法、装置、计算机设备和存储介质 | |
US11233867B2 (en) | On-demand push notification mechanism | |
CN111083093A (zh) | 调用端能力的方法和装置 | |
US10721260B1 (en) | Distributed execution of a network vulnerability scan | |
CN109948330B (zh) | 应用管理服务的实现方法、装置、设备及存储介质 | |
CN112966257B (zh) | 一种应用程序的授权方法及装置 | |
CN111935092B (zh) | 一种基于第三方应用的信息交互方法、装置和电子设备 | |
CN115665265A (zh) | 请求处理方法、装置、设备、存储介质及系统 | |
US11636198B1 (en) | System and method for cybersecurity analyzer update and concurrent management system | |
CN115174192A (zh) | 应用安全防护方法及装置、电子设备和存储介质 | |
CN115801292A (zh) | 访问请求的鉴权方法和装置、存储介质及电子设备 | |
CN113596600A (zh) | 直播嵌入程序的安全管理方法、装置、设备及存储介质 | |
CN114595457A (zh) | 任务处理方法、装置、计算机设备和存储介质 | |
CN111314131A (zh) | 任务下发方法和装置、存储介质和电子装置 | |
CN114301661B (zh) | 一种应用登录的认证方法、装置、计算设备和存储介质 | |
CN115333847B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |