一种基于API的进程间通讯系统技术方案

技术编号:37711474 阅读:22 留言:0更新日期:2023-06-02 00:04
本发明专利技术提供一种基于API的进程间通讯系统,所述系统包括:应用模块,用于接收第一进程对第二进程的通讯请求,并确定与所述通讯请求相对应的句柄;还用于调用所述句柄标记的执行模块的应用程序接口API;所述执行模块,用于通过所述API传入所述句柄;还用于根据所述API和所述句柄对所述第二进程执行相应的通讯操作;其中,所述应用模块通过调用所述句柄标记的所述执行模块的API,与所述执行模块进行数据交互。本发明专利技术提供的系统能够保证不同进程间的独立性,避免由某些进程崩溃引起的异常问题。避免由某些进程崩溃引起的异常问题。避免由某些进程崩溃引起的异常问题。

【技术实现步骤摘要】
一种基于API的进程间通讯系统


[0001]本专利技术涉及计算机
,尤其涉及一种基于API的进程间通讯系统。

技术介绍

[0002]进程间通讯是一种机制,操作系统进程和线程通过它交换数据和消息,进程间通信有两种基本模型:共享内存和消息传递(消息队列)。其中,共享内存模型会建立起一块供协作进程共享的内存区域,进程通过向此共享区域读出或写入数据来交换信息。消息传递模型通过在协作进程间交换消息来实现通信。
[0003]中国专利CN201811114337.X公开了基于远程字典服务(Remote Dictionary Server ,Redis)消息队列的分布式流媒体服务系统,如图1所示,系统包括中央控制单元,用于接收请求端发送的请求并将请求分类处理,将产生的任务添加到redis消息队列中;视音频推送与转发服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止推送与转发任务;视频录像服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止录像任务;录像回放服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止回放任务;视频直播服务单元,用于轮循redis消息队列,并根据轮循结果启动或者停止直播任务。该专利技术中各单元运行于多进程,可进行分布式部署在多服务器上,从而降低单一服务器的硬件和网络压力。
[0004]上述专利虽然能够降低单一服务器的硬件和网络压力,但仍然采用消息队列和共享内存技术,由于消息队列和共享内存的管理机制特点,当其中某些进程崩溃以后,可能引起消息阻塞、死锁、破裂等异常问题。

技术实现思路

[0005]本专利技术提供了一种基于API的进程间通讯系统,能够保证不同进程间的独立性,避免由某些进程崩溃引起的异常问题。
[0006]本专利技术实施例提供了一种基于应用程序接口(Application Programming Interface ,API)的进程间通讯系统,系统包括:
[0007]应用模块,用于接收第一进程对第二进程的通讯请求,并确定与通讯请求相对应的句柄;还用于调用句柄标记的执行模块的应用程序接口API;
[0008]执行模块,用于通过API传入句柄;还用于根据API和句柄对第二进程执行相应的通讯操作;
[0009]其中,应用模块通过调用句柄标记的执行模块的API,与执行模块进行数据交互。
[0010]在一种可能的实现方式中,执行模块包括Redis处理模块、轻型数据库SQLite处理模块、内存共享模块和点表处理模块中的至少一种模块。
[0011]在一种可能的实现方式中,句柄包括公有变量和私有变量,其中:
[0012]公有变量用于标记执行模块;
[0013]私有变量用于标记执行模块中执行第二进程的端口。
[0014]在一种可能的实现方式中,API为写入接口和读取接口中的一种接口;执行模块,具体用于:
[0015]判断句柄的类型;
[0016]根据API的类型和句柄的类型对第二进程执行相应的操作。
[0017]在一种可能的实现方式中,当API为写入接口,句柄为发布订阅句柄时,执行模块,具体用于:向第二进程发布消息;
[0018]当API为写入接口,句柄为读写键值句柄时,执行模块,具体用于:向第二进程写入键值;
[0019]当API为读取接口,句柄为发布订阅句柄时,执行模块,具体用于:订阅第二进程的消息;
[0020]当API为读取接口,句柄为读写键值句柄时,执行模块,具体用于:读取第二进程的键值。
[0021]在一种可能的实现方式中,执行模块中还包括配置接口;
[0022]应用模块,还用于接收对第二进程的配置请求,并确定与配置请求相对应的配置命令;还用于调用配置命令标记的执行模块的配置接口;
[0023]执行模块,还用于通过配置接口接收配置命令;还用于根据配置命令执行相应的配置操作。
[0024]在一种可能的实现方式中,执行模块,具体用于:
[0025]解析配置命令的含义;
[0026]当配置命令为删除键值命令时,删除配置命令指定的键值;
[0027]当配置命令为获取网络状态命令时,调用因特网包探测器(Packet Internet Groper,PING)测量网络连接质量;
[0028]当配置命令为查询键值命令时,获取配置命令指定的键值。
[0029]在一种可能的实现方式中,执行模块还包括初始化接口;
[0030]应用模块,还用于接收对执行模块的初始化请求,并确定与初始化请求相对应的初始化命令;还用于调用初始化命令标记的执行模块的初始化接口;
[0031]执行模块,还用于通过初始化接口传入初始化命令;还用于根据初始化命令创建句柄。
[0032]在一种可能的实现方式中,执行模块还包括销毁接口;
[0033]应用模块,还用于接收对执行模块的销毁请求,并确定与销毁请求相对应的销毁命令;还用于调用销毁命令标记的执行模块的销毁接口;
[0034]执行模块,还用于通过销毁接口传入销毁命令;还用于根据销毁命令销毁句柄。
[0035]本专利技术实施例提供了一种基于API的进程间通讯系统,该系统包括应用模块和一个或多个执行模块,每个执行模块中包括一个或多个API,当第一进程对第二进程有数据交互的需求时,向系统的应用模块发送对第二进程的通讯请求,应用模块确定与该通讯请求相对应的句柄,调用句柄相应的执行模块的API,执行模块通过API传入句柄,根据API和句柄对第二进程执行相应的通讯操作。本专利技术实施例中进程之间通过API进行数据交互,保证不同进程间的独立性,能够避免由某些进程崩溃引起的消息阻塞、死锁、破裂等异常问题。
附图说明
[0036]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0037]图1为现有技术公开的Redis消息队列的分布式流媒体服务系统;
[0038]图2为本专利技术实施例提供的一种基于API的进程间通讯系统结构示意图;
[0039]图3为本专利技术实施例提供的一种基于API的进程间通讯系统中执行模块的执行流程示意图;
[0040]图4为本专利技术实施例提供的另一种基于API的进程间通讯系统中执行模块的执行流程示意图。
具体实施方式
[0041]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0042]本专利技术实施例提供了一种基于API的进程间通讯系统,该系统包括应用模块和一个或多个执本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于API的进程间通讯系统,其特征在于,所述系统包括:应用模块,用于接收第一进程对第二进程的通讯请求,并确定与所述通讯请求相对应的句柄;还用于调用所述句柄标记的执行模块的应用程序接口API;所述执行模块,用于通过所述API传入所述句柄;还用于根据所述API和所述句柄对所述第二进程执行相应的通讯操作;其中,所述应用模块通过调用所述句柄标记的所述执行模块的API,与所述执行模块进行数据交互。2.根据权利要求1所述的系统,其特征在于,所述执行模块包括远程字典服务Redis处理模块、轻型数据库SQLite处理模块、内存共享模块和点表处理模块中的至少一种模块。3.根据权利要求1所述的系统,其特征在于,所述句柄包括公有变量和私有变量,其中:所述公有变量用于标记所述执行模块;所述私有变量用于标记所述执行模块中执行所述第二进程的端口。4.根据权利要求1所述的系统,其特征在于,所述API为写入接口和读取接口中一种接口;所述执行模块,具体用于:判断所述句柄的类型;根据所述API的类型和所述句柄的类型对所述第二进程执行相应的操作。5.根据要求4所述的系统,其特征在于,当所述API为写入接口,所述句柄为发布订阅句柄时,所述执行模块,具体用于:向所述第二进程发布消息;当所述API为写入接口,所述句柄为读写键值句柄时,所述执行模块,具体用于:向所述第二进程写入键值;当所述API为读取接口,所述句柄为发布订阅句柄时,所述执行模块,具体用于:订阅所述第二进程的消息;当所述API为读取接口,所述句柄为读写键值句柄时,所述执行模块,具体用于:读取所述第二进程的键值。...

【专利技术属性】
技术研发人员:王秀楷周党生吕一航周朝阳
申请(专利权)人:深圳市禾望电气股份有限公司
类型:发明
国别省市:

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

1