一种进程间通信系统、方法及计算设备技术方案

技术编号:32222965 阅读:22 留言:0更新日期:2022-02-09 17:28
本发明专利技术公开了一种进程间通信系统,包括:主进程;基于主进程创建的服务进程,服务进程适于加载一个或多个插件,并适于接收插件发送的第一接口调用请求;代理服务端,分别与主进程、服务进程相连,适于从服务进程获取第一接口调用请求,从第一接口调用请求中获取第一接口信息,并将第一接口信息发送至主进程,以便主进程基于第一接口信息来调用主进程的第一接口;接收主进程发送的第二接口调用请求,从第二接口调用请求中获取第二接口信息,并将第二接口信息发送至服务进程,以便服务进程基于第二接口信息来调用插件的第二接口。本发明专利技术一并公开了相应的进程间通信方法和计算设备。根据本发明专利技术的技术方案,避免因插件异常而导致应用运行过程不稳定。用运行过程不稳定。用运行过程不稳定。

【技术实现步骤摘要】
一种进程间通信系统、方法及计算设备
[0001]本申请是2021年8月30日提交的专利技术专利申请2021110006856的分案申请。


[0002]本专利技术涉及计算机
,尤其涉及一种进程间通信系统、进程间通信方法及计算设备。

技术介绍

[0003]目前,越来越多的文件管理器(简称“文管”)实现了插件化,例如,Linux平台上的文件管理器鹦鹉螺可以加载C插件,也可以加载Python脚本插件,通过这种加载插件的方案,可以为文管提供良好的扩展性,实现文管功能的动态扩充。但该方案存在一定风险,由于第三方插件的稳定性无法保证,导致文管在接入插件后,稳定性会受到一定的影响。
[0004]例如,现有技术中有一种方案,是通过直接加载动态库插件来实现文管功能的扩展性,直接加载动态库的方式实现较简单,插件只需要继承主框架提供的通用插件基类,并在内部实现自己的具体业务。但,这种方案无法保证动态库内部的稳定性,如果动态库内部发生错误,可能会导致文件管理器发生崩溃。另外,单个进程的方式会导致内存、线程、依赖库等资源过于集中,影响文管主进程的启动效率和运行效率。
[0005]基于此,需要一种进程间通信系统及方法,以解决现有技术中存在的问题。

技术实现思路

[0006]为此,本专利技术提供一种进程间通信系统、进程间通信方法及计算设备,以解决或至少缓解上面存在的问题。
[0007]根据本专利技术的一个方面,提供一种进程间通信系统,布置在计算设备的操作系统上,所述进程间通信系统包括:主进程;基于主进程创建的服务进程,所述服务进程适于加载一个或多个插件,并适于接收插件发送的第一接口调用请求;以及代理服务端,分别与所述主进程、服务进程相连,适于:从服务进程获取第一接口调用请求,从所述第一接口调用请求中获取第一接口信息,并将所述第一接口信息发送至所述主进程,以便所述主进程基于所述第一接口信息来调用主进程的第一接口;接收主进程发送的第二接口调用请求,从所述第二接口调用请求中获取第二接口信息,并将所述第二接口信息发送至服务进程,以便所述服务进程基于所述第二接口信息来调用插件的第二接口。
[0008]可选地,在根据本专利技术的进程间通信系统中,所述操作系统上包括文件管理器,所述主进程为文件管理器的主进程。
[0009]可选地,在根据本专利技术的进程间通信系统中,所述文件管理器包括相应的文管界面,所述文管界面上包括一个或多个界面控件;通过调用第一接口适于创建新的界面控件;通过调用第二接口适于处理对界面控件的触发事件。
[0010]可选地,在根据本专利技术的进程间通信系统中,所述主进程适于:接收对界面控件的触发操作事件,响应于所述触发操作事件,向代理服务端发送第二接口调用请求,以请求调
用与所述界面控件相对应的第二接口来处理所述触发操作事件。
[0011]可选地,在根据本专利技术的进程间通信系统中,所述第一接口信息包括第一目标路径、第一函数名和第一参数值;所述第二接口信息包括第二目标路径、第二函数名和第二参数值。
[0012]可选地,在根据本专利技术的进程间通信系统中,所述主进程适于:基于所述第一目标路径定位到相应的目标界面对象,基于第一函数名来调用所述目标界面对象中相应的第一函数,并将所述第一参数值传入所述第一函数。
[0013]可选地,在根据本专利技术的进程间通信系统中,所述主进程中包括第一映射表,所述主进程进一步适于:基于第一函数名从所述映射表中获取相应的第一函数指针,基于所述第一函数指针来调用第一函数。
[0014]可选地,在根据本专利技术的进程间通信系统中,所述服务进程适于:基于所述第二目标路径定位到相应的目标插件对象,基于第二函数名来调用所述目标插件对象中相应的第二函数,将第参数值传入所述第二函数。
[0015]可选地,在根据本专利技术的进程间通信系统中,所述服务进程中包括第二映射表,所述服务进程进一步适于:基于第二函数名从所述第二映射表中获取相应的第二函数指针,基于所述第二函数指针来调用第二函数。
[0016]可选地,在根据本专利技术的进程间通信系统中,所述代理服务端通过总线与所述主进程、服务进程相连。
[0017]可选地,在根据本专利技术的进程间通信系统中,所述主进程包括第一数据处理模块,所述第一数据处理模块与总线相连;所述服务进程包括第二数据处理模块,所述第二数据处理模块与总线相连。
[0018]可选地,在根据本专利技术的进程间通信系统中,还包括:监控模块,分别与主进程、服务进程相连,适于监控所述服务进程的运行状态,其中,所述监控模块适于获取所述服务进程的终止信号,并将终止信发送至主进程,以便再次基于主进程来创建服务进程。
[0019]可选地,在根据本专利技术的进程间通信系统中,所述服务进程是利用Fork方法基于主进程来创建的子进程。
[0020]根据本专利技术的一个方面,提供一种进程间通信方法,在进程间通信系统中执行,所述方法包括步骤:基于主进程来创建服务进程;通过服务进程加载一个或多个插件,并接收插件发送的第一接口调用请求;通过代理服务端从服务进程获取第一接口调用请求,从所述第一接口调用请求中获取第一接口信息,并将所述第一接口信息发送至所述主进程,以便所述主进程基于所述第一接口信息来调用主进程的第一接口;以及通过代理服务端接收主进程发送的第二接口调用请求,从所述第二接口调用请求中获取第二接口信息,并将所述第二接口信息发送至服务进程,以便所述服务进程基于所述第二接口信息来调用插件的第二接口。
[0021]可选地,在根据本专利技术的进程间通信方法中,所述主进程为文件管理器的主进程。
[0022]可选地,在根据本专利技术的进程间通信方法中,所述文件管理器包括相应的文管界面,所述文管界面上包括一个或多个界面控件;通过调用第一接口适于创建新的界面控件;通过调用第二接口适于处理对界面控件的触发事件。
[0023]可选地,在根据本专利技术的进程间通信方法中,接收主进程发送的第二接口调用请
求包括:接收主进程响应于对界面控件的触发操作事件发送的第二接口调用请求。
[0024]可选地,在根据本专利技术的进程间通信方法中,基于主进程来创建服务进程的步骤包括:利用Fork方法,基于主进程创建相应的子进程作为服务进程。
[0025]根据本专利技术的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的进程间通信方法的指令。
[0026]根据本专利技术的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的进程间通信方法。
[0027]根据本专利技术的技术方案,提供了一种进程间通信系统和方法,文件管理器等应用在启动后可以基于主进程来创建相应的子进程作为服务进程,主进程与服务进程之间相互隔离,并经由代理服务端进行交互,服务进程用于加载第三方插件并接收插件对主进程接口的调用请求,服务进程与主进程的接口调用均经本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种进程间通信系统,布置在计算设备的操作系统上,所述操作系统上包括文件管理器,所述进程间通信系统包括:文件管理器的主进程;基于主进程创建的服务进程,所述服务进程适于加载一个或多个插件,并适于接收插件发送的第一接口调用请求;以及代理服务端,分别与所述主进程、服务进程相连,适于:从服务进程获取第一接口调用请求,从所述第一接口调用请求中获取第一接口信息,并将所述第一接口信息发送至所述主进程,以便所述主进程基于所述第一接口信息来调用主进程的第一接口;接收主进程发送的第二接口调用请求,从所述第二接口调用请求中获取第二接口信息,并将所述第二接口信息发送至服务进程,以便所述服务进程基于所述第二接口信息来调用插件的第二接口。2.如权利要求1所述的系统,其中,所述文件管理器包括相应的文管界面,所述文管界面上包括一个或多个界面控件;通过调用第一接口适于创建新的界面控件;通过调用第二接口适于处理对界面控件的触发事件。3.如权利要求2所述的系统,其中,所述主进程适于:接收对界面控件的触发操作事件,响应于所述触发操作事件,向代理服务端发送第二接口调用请求,以请求调用与所述界面控件相对应的第二接口来处理所述触发操作事件。4.如权利要求3所述的系统,其中,所述第一接口信息包括第一目标路径、第一函数名和第一参数值;所述第二接口信息包括第二目标路径、第二函数名和第二参数值。5.如权利要求4所述的系统,其中,所述主进程适于:基于所述第一目标路径定位到相应的目标界面对象,基于第一函数名来调用所述目标界面对象中相应的第一函数,并将所述第一参数值传入所述第一函数。6.如权利要求1

5中任一...

【专利技术属性】
技术研发人员:卢桢张升黄钰
申请(专利权)人:统信软件技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1