本公开涉及计算机,特别涉及一种嵌入式系统内进程通讯方法、装置、电子设备和存储介质。
背景技术:
1、嵌入式系统(embedded system)是指在其他设备内部嵌入的计算机系统,其主要用于控制和管理其他设备的运转。嵌入式系统通常具有专用的功能和设计,使用特定的输入输出方式进行信息交互。嵌入式系统可以包括各种类型的计算机硬件、软件和固件系统,例如智能家居中的智能开关、智能插座、安防设备中的监控摄像头、门禁等,或者汽车电子中的动力控制模块、导航系统、车载娱乐系统等等。
2、由于嵌入式系统通常需要满足高可靠性、低功耗、低成本、小尺寸等要求,因此在设计和开发时需要从多方面进行优化和调整。
3、为了满足可靠性、低功耗、低成本、小尺寸等要求,目前的嵌入式系统大多采用单进程模式或简单的多进程模式。采用单进程模式的嵌入式系统中,进程本身过于臃肿,耦合性高,进程中任何模块(服务)的异常都会导致程序崩溃;采用简单的多进程模式的嵌入式系统中,进程间的接口定义固定,进程间耦合度高,导致扩展性差,难以满足新增加的业务需求。
技术实现思路
1、有鉴于此,本公开提供一种嵌入式系统内进程通讯方法、装置、电子设备和存储介质,实现进程间的解耦,以提高嵌入式系统的扩展。
2、本公开的技术方案是这样实现的:
3、一种嵌入式系统内进程通讯方法,包括:
4、建立嵌入式系统内的各个进程各自的标识信息;
5、接收所述嵌入式系统内任意一个进程所产生的通讯信息,根据所述通讯信息的通讯类型和所述通讯信息中所携带的标识信息,确定接收所述通讯信息的目标进程;
6、将所述通讯信息发送至所述目标进程。
7、进一步,所述通讯类型包括命令和/或消息,所述标识信息包括与所述命令相关联的目标进程名称和/或与所述消息相关联的消息名称。
8、进一步,在所述通讯类型为命令的情况下,所述接收所述嵌入式系统内任意一个进程所产生的通讯信息,根据所述通讯信息的通讯类型和所述通讯信息中所携带的标识信息,确定接收所述通讯信息的目标进程;将所述通讯信息发送至所述目标进程,包括:
9、接收所述任意一个进程发出的命令,从所述命令中得到其所携带的目标进程名称;
10、根据所述目标进程名称,确定接收所述命令的目标进程,并将所述命令发送给所述目标进程;
11、接收所述目标进程返回的命令响应结果并发送给所述任意一个进程,其中,所述目标进程接收到所述命令后,将所述命令与所述目标进程中服务和方法进行匹配,得到用于执行所述命令的服务和方法并利用所得到的服务和方法执行所述命令。
12、进一步,在所述通讯类型为消息的情况下,所述嵌入式系统内进程通讯方法还包括:
13、从所述各个进程中,选择一个进程确定为主节点进程,将所述各个进程中除所述主节点进程以外的其它进程确定为从节点进程,其中,所述主节点进程和所述从节点进程运行于同一个内核;
14、其中,所述接收所述嵌入式系统内任意一个进程所产生的通讯信息,根据所述通讯信息的通讯类型和所述通讯信息中所携带的标识信息,确定接收所述通讯信息的目标进程;将所述通讯信息发送至所述目标进程,包括:
15、接收任意一个进程的消息,并将所述消息发送给所述主节点进程,其中,所述消息包括消息名称;
16、接收任意一个进程的消息订阅申请,并将所述消息订阅申请发送给所述主节点进程,以使所述主节点进程根据所述消息订阅申请,确定与消息名称相关联的订阅进程名称,其中,所述消息订阅申请中包含所述消息名称和所述订阅进程名称;
17、从所述主节点进程接收消息和与所述消息相关联的订阅进程名称,根据所述订阅进程名称,确定接收所述消息的目标进程,并将所述消息发送给所述目标进程。
18、进一步,在所述嵌入式系统包括至少两个内核的情况下,所述接收所述嵌入式系统内任意一个进程所产生的通讯信息,根据所述通讯信息的通讯类型和所述通讯信息中所携带的标识信息,确定接收所述通讯信息的目标进程,包括:
19、接收第一内核中运行的任意一个进程的消息订阅申请,所述消息订阅申请中包含所述消息名称和所述订阅进程名称,其中,所述第一内核为所述至少两个内核中的任意一个内核;
20、将所述消息订阅申请发送给所述第一内核中运行的主节点进程,以使所述第一内核中运行的主节点进程根据所述消息订阅申请,确定与所述消息名称相关联的所述第一内核中的订阅进程名称。
21、进一步,所述接收所述嵌入式系统内任意一个进程所产生的通讯信息,根据所述通讯信息的通讯类型和所述通讯信息中所携带的标识信息,确定接收所述通讯信息的目标进程,进一步包括:
22、接收第一内核中运行的任意一个进程的消息订阅申请,并将所述消息订阅申请发送给所述第一内核中运行的主节点进程;
23、接收第二内核中运行的任意一个进程产生的消息,并将所述消息发送给所述第二内核中运行的主节点进程,其中,所述第二内核为所述至少两个内核中的另一个内核;
24、接收所述第二内核中运行的主节点进程发布的所述消息,并将所述消息发送给所述第一内核中运行的主节点进程,以使所述第一内核中运行的主节点进程根据消息订阅申请,确定与消息名称相关联的所述第一内核中的订阅进程名称,并根据所述第一内核中的订阅进程名称,确定接收所述消息的并且运行于所述第一内核中的目标进程。
25、进一步,所述将所述通讯信息发送至所述目标进程,包括:
26、从所述第一内核中运行的主节点进程接收所述消息;
27、将所述消息发送给运行于所述第一内核中的目标进程。
28、一种嵌入式系统内的进程通讯装置,包括:
29、标识信息建立模块,被配置为执行建立嵌入式系统内的各个进程各自的标识信息;
30、目标进程确定模块,被配置为执行接收所述嵌入式系统内任意一个进程所产生的通讯信息,根据所述通讯信息的通讯类型和所述通讯信息中所携带的标识信息,确定接收所述通讯信息的目标进程;
31、通讯信息发送模块,被配置为执行将所述通讯信息发送至所述目标进程。
32、一种电子设备,包括:
33、处理器;
34、用于存储所述处理器的可执行指令的存储器;
35、其中,所述处理器被配置为执行所述可执行指令,以实现如上任一项所述的嵌入式系统内进程通讯方法。
36、一种计算机可读存储介质,当所述计算机可读存储介质中的至少一条指令被电子设备的处理器执行时,使得所述电子设备能够实现如上任一项所述的嵌入式系统内进程通讯方法。
37、从上述方案可以看出,本公开实施例的嵌入式系统内进程通讯方法、装置、电子设备和存储介质,通过建立的嵌入式系统内的各个进程各自的标识信息来标识各个进程或者各个进程发出的消息,利用用于标识进程的标识信息来确定进程之间通讯信息的目标进程,利用标识信息赋予消息唯一的标识进而进程只需要根据消息的标识信息来订阅消息,从而无需针对不同的进程之间设计专门的一对一的接口函数,将所用进程、消息都通过标识信息进行标识,并利用标识信息将通讯信息的发送至目标进程,从而实现进程间的解耦,提高嵌入式系统的可扩展性。基于本公开实施例的技术方案,在新增进程的情况下,只需注册新增进程的标识信息便可以将新增进程及其发布的消息加入至嵌入式系统中,并且进程中各模块可以随意裁剪,动态加载,即便是模块不存在的情况,也不会导致嵌入式系统的程序链接失败而无法通过编译或者运行失败,只需处理进程间业务请求失败的情况即可。