一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种多进程通信方法及装置与流程

2022-04-30 11:43:33 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种多进程通信方法及装置。


背景技术:

2.进程是指在系统中正在运行的一个应用程序,每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内,比如同时打开qq、微信,系统就会分别启动2个进程。进程间通信就是在不同进程之间传播或交换信息。对于ios端的跨进程通信,进程的用户空间是互相独立的,一般而言是不能互相访问的。


技术实现要素:

3.针对现有技术中的问题,本发明实施例提供一种多进程通信方法、设备、介质和产品。主要处理在零信任ios场景下,networkextension插件所在的进程(即中转进程)和主app所在的进程(应用进程)之间的全双工通信问题。可以实现ios端多进程协作场景下的数据同步方法,可实现一对一、一对多、多对多等各个进程的两两互相通信,提升跨进程通信的稳定性、实时性、高效性。本发明可在例如身份鉴别,访问控制,跨进程通信,数据同步等场景下应用。
4.具体地,本发明实施例提供了以下技术方案:
5.第一方面,本发明实施例提供了一种多进程通信方法,应用于ios端的中转进程,包括:建立所述中转进程,并根据通信协议,建立对应所述中转进程的监听端口,所述监听端口用于与所述至少一个应用进程进行数据通信;通过所述监听端口,接收第一应用进程通过对应的第一应用端口发出的第一数据,根据所述第一数据进行业务操作。
6.进一步地,所述方法还包括:通过所述监听端口,将所述第一数据同步至第二应用进程,所述至少一个应用进程包括所述第二应用进程,所述第二应用进程通过对应的第二应用端口接收数据;和/或响应于所述中转进程更新数据,通过所述监听端口,将更新后的第二数据同步至所述第一应用进程,所述第一应用进程通过对应的第一应用端口接收数据;和/或响应于所述中转进程更新数据,通过所述监听端口,将更新后的第二数据同步至所述第二应用进程。
7.进一步地,所述建立所述中转进程,包括:安装networkextension插件,通过启动所述插件建立所述中转进程。
8.进一步地,所述通信协议包括websocket协议。
9.第二方面,本发明实施例还提供了一种多进程通信方法,应用于ios端的应用进程,包括:根据通信协议,建立对应至少一个应用进程的至少一个应用端口,所述至少一个应用端口用于与中转进程进行数据通信;响应于至少一个应用进程中的第一应用进程更新数据,通过对应所述第一应用进程的第一应用端口,将更新后的第一数据同步至所述中转进程,所述中转进程通过对应的监听端口接收数据。
10.进一步地,所述至少一个应用进程包括第二应用进程,以及所述方法还包括:通过
对应所述第二应用进程的第二应用端口,接收所述中转进程通过所述监听端口发出的第一数据;和/或所述第一应用进程通过所述第一应用端口接收所述中转进程通过所述监听端口发出的第二数据,根据所述第二数据进行业务操作;和/或所述第二应用进程通过所述第二应用端口接收所述中转进程通过所述监听端口发出的第二数据,根据所述第二数据进行业务操作。
11.进一步地,所述通信协议包括websocket协议。
12.第三方面,本发明实施例还提供了一种多进程通信装置,其特征在于,应用于ios端的中转进程,包括:第一处理模块,用于建立所述中转进程,并根据通信协议,建立对应所述中转进程的监听端口,所述监听端口用于与所述至少一个应用进程进行数据通信;第二处理模块,用于通过所述监听端口,接收第一应用进程通过对应的第一应用端口发出的第一数据,根据所述第一数据进行业务操作
13.第四方面,本发明实施例还提供了一种多进程通信装置,其特征在于,应用于ios端的应用进程,包括:第四处理模块,用于根据通信协议,建立对应至少一个应用进程的至少一个应用端口,所述至少一个应用端口用于与中转进程进行数据通信;第五处理模块,用于响应于至少一个应用进程中的第一应用进程更新数据,通过对应所述第一应用进程的第一应用端口,将更新后的第一数据同步至所述中转进程,所述中转进程通过对应的监听端口接收数据。
14.第五方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述多进程通信方法的步骤。
15.第六方面,本发明实施例还提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述多进程通信方法的步骤。
16.第七方面,本发明实施例还提供了一种计算机程序产品,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面所述多进程通信方法的步骤。
17.本发明实施例提供的多进程通信方法,应用于ios端的中转进程,建立对应所述中转进程的监听端口,并通过监听端口接收进程发出的数据,实现了ios端对进程数据及时同步。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
19.图1为本发明多进程通信方法实施例流程图;
20.图2为本发明多进程通信方法的另一些实施例流程图;
21.图3为在零信任场景中,本发明的整体结构与逻辑的一个应用场景的示意图;
22.图4为在零信任场景中,中转进程将数据同步到其他进程的应用场景的示意图;
23.图5为本发明多进程通信装置实施例结构示意图;
24.图6为本发明多进程通信装置的另一些实施例结构示意图;
25.图7为本发明电子设备实体实施例结构示意图。
具体实施方式
26.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
27.图1为本发明多进程通信方法实施例流程图。如图1所示,本发明实施例的多进程通信方法,应用于ios端的中转进程,包括:
28.s101,建立中转进程,并根据通信协议,建立对应中转进程的监听端口,监听端口用于与至少一个应用进程进行数据通信。
29.系统会为启动的软件分配一个进程,比如中转进程、应用进程。中转进程与至少一个应用进程进行数据通信,即跨进程通信,进程的用户空间是互相独立的,一般而言是不能互相访问的,进程间通信就是在不同进程之间传播或交换信息。由于ios端的各个进程之间不能及时同步数据,因此,根据通信协议,建立对应中转进程的监听端口,通过监听端口与至少一个应用进程进行数据通信。各进程可以是对应同一个应用软件,也可以对应不同的应用软件。当某个进程发生数据更新时(或者完成某个任务时,使数据增加、删除或修改,或者查询数据),需要先将相关信息同步至中转进程,由中转进程的监听端口接收相关信息。
30.s102,通过监听端口,接收第一应用进程通过对应的第一应用端口发出的第一数据,根据第一数据进行业务操作。
31.作为示例,第一数据可以是需要更新的数据和指令,比如第一应用进程是关于注册用户账号的进程,当用户完成账号注册,第一应用进程需要将注册用户的用户名和密码通过第一应用端口同步到中转进程,中转进程的监听端口接收到用户名和密码后,将用户名和密码写入数据库。
32.本发明实施例提供的多进程通信方法,应用于ios端的中转进程,建立对应中转进程的监听端口,并通过监听端口接收进程发出的数据,实现了ios端对进程数据及时同步。
33.进一步地,在上述方法实施例的基础上,还可以包括:通过监听端口,将第一数据同步至第二应用进程,至少一个应用进程包括第二应用进程,第二应用进程通过对应的第二应用端口接收数据;和/或响应于中转进程更新数据,通过监听端口,将更新后的第二数据同步至第一应用进程,第一应用进程通过对应的第一应用端口接收数据;和/或响应于中转进程更新数据,通过监听端口,将更新后的第二数据同步至第二应用进程。
34.第一/二应用进程是同一个ios端的进程,当中转进程接收到第一应用进程的第一数据后,可以将第一数据同步至第二应用进程;同样的,当中转进程更新数据后,也可以将更新后的第二数据同步到其他进程中。
35.进一步地,在上述方法实施例的基础上,建立中转进程,包括:安装networkextension插件,通过启动插件建立中转进程。
36.networkextension插件,包含在ios和macos中用于自定义和拓展核心网络功能的api集合。它可给系统wifi列表,列表里边的wifi设置密码、标签(副标题)来直接点击连接。还可获取整个wifi列表。通过networkextension插件自定义和拓展核心网络功能的api集
合,在ios手机端实现轻量级的c-s架构模型,即通过中转进程,完成其他应用软件进程之间的通信。
37.进一步地,在上述方法实施例的基础上,通信协议可以包括websocket协议。
38.websocket是一种在单个tcp连接上进行全双工通信的协议。传输控制协议/网际协议(transmission control protocol/internet protocol,简称tcp/ip)。进程之间以一依据websocket协议通信。
39.如图3所示,为在零信任场景中,本发明的整体结构与逻辑的一个应用场景的示意图,零信任(zero trust,简称zt)提供了一系列概念和思想,在假定网络环境已经被攻陷的前提下,当执行信息系统和服务中的每次访问请求时,降低其决策准确度的不确定性。零信任架构(zta)则是一种企业网络安全的规划,它基于零信任理念,围绕其组件关系、工作流规划与访问策略构建而成,在图3中,基于websocket协议,创建了中转进程server进程,其记为s端,第一应用进程为client1进程,其记为c1端,第二应用进程为client2进程,其记为c2端。首先,通过networkextension插件启动的websocket的server服务,以及应用程序(application,简称app)启动的websocket的c1端或c2端,当s端(主体)访问c端(客体)时,需要建立链接,发送数据,s端按数据信息操作流程。再比如,零信任中,进程mfa认证的场景(或其他多身份源场景,多因素认证场景)时,在c1端或c2端完成mfa之后,s端不知道,就需要给s端发送数据,让s端完成数据的刷新,同步数据。
40.如图4所示,为在零信任场景中,中转进程将数据同步到其他进程的应用场景的示意图。在零信任中,s端会在收到topic通知的时候有通知到c1端或c2端的强需求,因此,在这种场景下,会通过websocket通知到客户端(即c1端或c2端)。当有多个应用进程和中转进程链接的时,通过websocket就可以很方便的实现中转进程通知到所有应用进程的方式,极大的提高了跨进程通信的效率。
41.图2为本发明多进程通信方法的另一些实施例流程图。如图2所示,本发明实施例的多进程通信方法,应用于ios端的应用进程,包括:
42.s201,根据通信协议,建立对应至少一个应用进程的至少一个应用端口,至少一个应用端口用于与中转进程进行数据通信。
43.在一些实施例中,中转进程和至少一个应用进程之间的通信协议可以是管道,其特点是半双工,即不能同时在两个方向上传输数据。有的系统可能支持全双工。只能在父子进程间。经典的形式就是管道由父进程创建,进程fork子进程之后,就可以在父子进程之间使用了。通信协议也可以是消息队列、信号量、共享内存、网络套接字等方式,可根据需要设定。
44.s202,响应于至少一个应用进程中的第一应用进程更新数据,通过对应第一应用进程的第一应用端口,将更新后的第一数据同步至中转进程,中转进程通过对应的监听端口接收数据。
45.作为示例,第一数据可以包括需要更新的数据和指令,比如第一应用进程是关于注册用户账号的进程,当用户完成账号注册,第一应用进程需要将注册用户的用户名和密码通过第一应用端口同步到中转进程,中转进程的监听端口接收到用户名和密码后,将用户名和密码写入数据库。
46.本发明实施例提供的多进程通信方法,应用于ios端的应用进程,至少一个应用进
程通过至少一个应用端口与中转进程同步数据,进而实现至少一个应用进程之间的数据同步。
47.进一步地,在上述方法实施例的基础上,至少一个应用进程包括第二应用进程,以及方法还包括:通过对应第二应用进程的第二应用端口,接收中转进程通过监听端口发出的第一数据;和/或第一应用进程通过第一应用端口接收中转进程通过监听端口发出的第二数据,根据第二数据进行业务操作;和/或第二应用进程通过第二应用端口接收中转进程通过监听端口发出的第二数据,根据第二数据进行业务操作。
48.ios端的各个进程之间,可以通过中转进程完成数据同步,也可以执行中转进程发出的任务,执行业务操作,比如查询数据、验证等。
49.进一步地,在上述方法实施例的基础上,通信协议包括websocket协议。
50.本发明可以在ios手机端实现轻量级的c-s架构模型,以下简称,第一应用进程进程为c1进程、第二应用进程进程为c2进程,中转进程为s进程。
51.在处理一对一的跨进程通信场景。通过server进程启动一个websocket的s端(即服务端),在c1进程创建一个websocket的c1客户端,来链接server进程的s端,实现c1-s高效的跨进程全双工通信机制;
52.在处理一对多的跨进程通信场景。通过server进程启动一个websocket的s端,在client1进程创建一个websocket的c1客户端,来链接server进程的s端,在client2进程创建一个websocket的c2客户端,来链接server进程的s端,实现c1-s/c2-s高效的跨进程全双工通信机制;
53.在处理多对多的跨进程通信场景。通过server进程启动一个websocket的s端,在client1进程创建一个websocket的c1客户端,来链接server进程的s端,在client2进程创建一个websocket的c2客户端,来链接server进程的s端,通过s端作为中转。实现多端互相通信的c1-s/c2-s/c1-s-c2高效的跨进程通信机制。
54.在多进程数据同步的时候,可以通过c-s之间的websocket链接,将数据从c端发送到s端,在s端完成数据同步需要的操作。
55.零信任中当c端登录完成之后,如果需要在s端完成登录情况的同步,一般会将登录过程中产生的token传递至s端,在s端完成登录,通过websocket的方式,可以很轻易的实现登录状态的同步。
56.零信任中当c端登录状态或应用数据发生变化之后,可以通过c-s之间的websocket链接,将登陆数据同步到s端,s端可以根据数据变化的场景进行对应的业务操作,比如立刻从网关刷新数据。
57.图5为本发明多进程通信装置实施例结构示意图。如图5所示,该基于多进程通信装置应用于ios端的中转进程,包括:
58.第一处理模块501,用于建立中转进程,并根据通信协议,建立对应中转进程的监听端口,监听端口用于与至少一个应用进程进行数据通信;
59.第二处理模块502,用于通过监听端口,接收第一应用进程通过对应的第一应用端口发出的第一数据,根据第一数据进行业务操作。
60.可选地,装置还包括:
61.第三处理模块,用于通过监听端口,将第一数据同步至第二应用进程,至少一个应
用进程包括第二应用进程,第二应用进程通对应的第二应用端口接收数据;和/或
62.响应于中转进程更新数据,通过监听端口,将更新后的第二数据同步至第一应用进程,第一应用进程通过对应的第一应用端口接收数据;和/或
63.响应于中转进程更新数据,通过监听端口,将更新后的第二数据同步至第二应用进程。
64.可选地,第一处理模块501,还用于:
65.安装networkextension插件,通过启动插件建立中转进程。
66.可选地,通信协议包括websocket协议。
67.图6为本发明多进程通信装置实施例结构示意图。如图6所示,该基于多进程通信装置应用于ios端的应用进程,包括:
68.第四处理模块601,用于根据通信协议,建立对应至少一个应用进程的至少一个应用端口,至少一个应用端口用于与中转进程进行数据通信;
69.第五处理模块602,用于响应于至少一个应用进程中的第一应用进程更新数据,通过对应第一应用进程的第一应用端口,将更新后的第一数据同步至中转进程,中转进程通过对应的监听端口接收数据。
70.可选地,至少一个应用进程包括第二应用进程,装置还包括:
71.第六处理模块,用于通过对应第二应用进程的第二应用端口,接收中转进程通过监听端口发出的第一数据;和/或
72.第一应用进程通过第一应用端口接收中转进程通过监听端口发出的第二数据,根据第二数据进行业务操作;和/或
73.第二应用进程通过第二应用端口接收中转进程通过监听端口发出的第二数据,根据第二数据进行业务操作。
74.可选地,通信协议包括websocket协议。
75.举个例子如下:
76.图7示例了一种电子设备的实体结构示意图,如图7示,该电子设备可以包括:处理器(processor)701、通信接口(communications interface)702、存储器(memory)703和通信总线704,其中,处理器701,通信接口702,存储器703通过通信总线704完成相互间的通信。处理器701可以调用存储器703中的逻辑指令,以执行如下方法:建立中转进程,并根据通信协议,建立对应中转进程的监听端口,监听端口用于与至少一个应用进程进行数据通信;通过监听端口,接收第一应用进程通过对应的第一应用端口发出的第一数据,根据第一数据进行业务操作。
77.此外,上述的存储器703中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
78.另一方面,本发明实施例还提供一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各实施例提供的多进程通信方法,例如包括:建立中转进程,并根据通信协议,建立对应中转进程的监听端口,监听端口用于与至少一个应用进程进行数据通信;通过监听端口,接收第一应用进程通过对应的第一应用端口发出的第一数据,根据第一数据进行业务操作。
79.又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的多进程通信方法,例如包括:建立中转进程,并根据通信协议,建立对应中转进程的监听端口,监听端口用于与至少一个应用进程进行数据通信;通过监听端口,接收第一应用进程通过对应的第一应用端口发出的第一数据,根据第一数据进行业务操作。
80.以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
81.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
82.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献