掌桥专利:专业的专利平台
掌桥专利
首页

一种跨进程数据传输方法、系统、设备及存储介质

文献发布时间:2024-04-18 19:58:30


一种跨进程数据传输方法、系统、设备及存储介质

技术领域

本发明涉及数据通信技术领域,尤其涉及一种跨进程数据传输方法、系统、设备及存储介质。

背景技术

安卓操作系统主要用于移动设备,如智能手机或平台电脑中,基于安卓系统开发的安卓软件在各行各业中也得到了进一步的应用。

而在一些特殊的使用场景下,处于安全性能等考虑,安卓软件需要访问的目标对象被移入了隔离的命名空间,只有进入到相应网络命名空间的本地应用才可使用网络对目标对象进行访问,使得安卓应用无法直接使用HTTP协议经由外网对目标对象进行访问。

现有技术中常由安卓软件直接调用核心应用程序接口的方式,将安卓应用自身移动到与目标对象相同的命名空间中;或通过设置除目标对象外的其他中转端进行数据中转,以最终实现安卓软件对目标对象的访问。然而,直接调用核心应用程序接口情况下需要赋予安卓软件管理权限,存在较大安全隐患;而通过其他中转端进行中转,会使得以太网数据流量加倍,降低数据传输性能,且在中转端失效情况下,将直接影响安卓软件的访问功能,难以满足软件应用稳定性的需求。

发明内容

本发明提供了一种跨进程数据传输方法、系统、设备及存储介质,通过在系统中的本地服务端,实现相互隔离的软件应用端和数据提供端的数据打通,无需为软件应用端提供管理权限,也无需增加独立的三方应用,避免了应用层直接提升权限导致的安全漏洞,在无需更多流量的情况下实现数据的跨进程传输,简化了数据跨进程传输的逻辑,提升了软件应用在进行数据调用时的稳定性。

第一方面,本发明实施例提供了一种跨进程数据传输方法,应用于跨进程数据传输系统中,跨进程数据传输系统包括软件应用端、本地服务端和数据提供端;其中,软件应用端与本地服务端间能够进行进程间通信;方法包括:

软件应用端在接收到数据传输指令时,根据数据传输指令生成数据传输请求信息,并将数据传输请求信息通过进程间通信发送至本地服务端;

本地服务端对数据传输请求信息进行解析,若数据传输请求信息包含预设数据获取标识,则根据数据传输请求信息配置本地服务端,并将数据传输请求信息发送至数据提供端;

数据提供端将与数据传输请求信息对应的请求数据回传至本地服务端,并由本地服务端将请求数据通过进程间通信回传至软件应用端。

第二方面,本发明实施例还提供了一种跨进程数据传输系统,包括软件应用端、本地服务端和数据提供端;其中,软件应用端与本地服务端间能够进行进程间通信;

软件应用端,用于在接收到数据传输指令时,根据数据传输指令生成数据传输请求信息,并将数据传输请求信息通过进程间通信发送至本地服务端;

本地服务端,用于对数据传输请求信息进行解析,若数据传输请求信息包含预设数据获取标识,则根据数据传输请求信息配置本地服务端,并将数据传输请求信息发送至数据提供端;

数据提供端,用于将与数据传输请求信息对应的请求数据回传至本地服务端,并由本地服务端将请求数据通过进程间通信回传至软件应用端。

第三方面,本发明实施例还提供了一种跨进程数据传输设备,包括:

至少一个处理器;以及

与至少一个处理器通信连接的存储器;其中,

存储器存储有可被至少一个处理器执行的计算机程序,计算机程序被至少一个处理器执行,以使至少一个处理器能够执行本发明任一实施例提供的跨进程数据传输方法。

第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,计算机可执行指令在由计算机处理器执行时用于执行本发明任一实施例提供的跨进程数据传输方法。

本发明实施例提供的一种跨进程数据传输方法、系统、设备及存储介质,通过软件应用端在接收到数据传输指令时,根据数据传输指令生成数据传输请求信息,并将数据传输请求信息通过进程间通信发送至本地服务端;本地服务端对数据传输请求信息进行解析,若数据传输请求信息包含预设数据获取标识,则根据数据传输请求信息配置本地服务端,并将数据传输请求信息发送至数据提供端;数据提供端将与数据传输请求信息对应的请求数据回传至本地服务端,并由本地服务端将请求数据通过进程间通信回传至软件应用端。通过采用上述技术方案,在进行跨进程数据传输前,构建一个包含软件应用端、本地服务端和数据提供端的跨进程数据传输系统,通过设置于系统自身的本地服务端以及进程间通信功能,使得软件应用端在接收到数据传输指令时,可将数据传输请求信息经由本地服务端解析后,在其中包含预设数据获取标识时将该数据传输请求信息发送至数据提供端,进而将数据提供端提供的数据经由本地服务端回传至需要该数据的软件应用端,在无需单独增加第三方应用的情况下通过在系统自身构建的本地服务端和进程间通信技术,实现了无法互通的软件应用端和数据提供端间的数据传输请求中转,无需为软件应用端提供管理权限,也无需增加独立的三方应用,避免了应用层直接提升权限导致的安全漏洞,在无需更多流量的情况下实现数据的跨进程传输,简化了数据跨进程传输的逻辑,提升了软件应用在进行数据调用时的稳定性。

应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的一种跨进程数据传输方法的流程示意图;

图2为本发明实施例二提供的一种跨进程数据传输方法的流程图;

图3为本发明实施例三提供的一种跨进程数据传输系统的结构示意图;

图4为本发明实施例四提供的一种跨进程数据传输设备的结构示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

实施例一

图1为本发明实施例一提供的一种跨进程数据传输方法的流程示意图,本发明实施例可适用于对无法直接通过真实网络地址进行访问的应用端和服务端进行数据打通,使得应用端和服务端间数据进行跨进程传输的情况,该方法可以由跨进程数据传输系统来执行,该跨进程数据传输系统可以由软件和/或硬件来实现,该跨进程数据传输系统可以配置在跨进程数据传输设备中。可选的,跨进程数据传输设备可以为笔记本、台式计算机、智能平板及其他具有数据计算功能的设备等,本发明实施例对此不进行限制。

在本发明实施例中,跨进程数据传输方法可被应用于跨进程数据传输系统中,其中,跨进程数据传输系统包括软件应用端、本地服务端和数据提供端。

其中,软件应用端与本地服务端间能够进行进程间通信。

在本实施例中,软件应用端具体可理解为安卓或其他系统下开发的,适用于HTTP协议访问的应用程序,可选的,软件应用端常为Java应用或其他第三方应用程序。本地服务端具体可理解为安卓系统中经由C++或C代码写出的,供Java进行远程调用的服务端,其是直接在系统中创建的可随系统启动而自启动的程序。数据提供端具体可理解为为软件应用端提供数据支持的应用程序或数据存储模块,数据提供端中数据存储的网址可被认为是真实网络地址。示例性的,假设跨进程数据传输方法被应用于行车记录仪中,则软件应用端可为行车记录仪中用于进行视频播放的安卓应用软件,数据提供端可为行车记录仪中的电子控制器,行车记录仪所采集的视频数据可被存储于电子控制器中,若视频播放软件希望播放行车记录仪采集的视频,则需访问电子控制器中的相册,并获取相册中的视频数据进行播放,本发明实施例对不同场景下的软件应用端和数据提供端不进行限制。可选的,软件应用端与本地服务端可通过Unix Domain Socket进行进程间通信。

如图1所示,本发明实施例提供的一种跨进程数据传输方法,具体包括如下步骤:

S101、软件应用端在接收到数据传输指令时,根据数据传输指令生成数据传输请求信息,并将数据传输请求信息通过进程间通信发送至本地服务端。

在本实施例中,数据传输指令具体可理解为由外部输入的,用于确定是否需要进行数据传输,或控制数据传输起止情况的指令。数据传输请求信息具体可理解为对真实网络地址进行本地化处理后生成的,包含所需真实网络地址信息及其他用于判定是否需要进行数据传输的信息。

具体的,软件应用端在接收到数据传输指令时,对数据传输指令的具体类型进行判断,针对需要进行数据传输的指令,对真实网络地址进行处理使其适用于与本地服务端的进程间通信,并将处理后的网络地址与用以表征需要进行数据传输的信息进行综合生成数据传输请求信息,进而由软件应用端通过进程间通信将该数据传输请求信息发送至本地服务端。针对需要停止数据传输的指令,软件应用端将用以表征需要停止数据传输的信息生成数据传输请求信息,进而由软件应用端通过进程间通信将该数据传输请求信息发送至本地服务端。

S102、本地服务端对数据传输请求信息进行解析,若数据传输请求信息包含预设数据获取标识,则根据数据传输请求信息配置本地服务端,并将数据传输请求信息发送至数据提供端。

在本实施例中,预设数据获取标识具体可理解为预先设定的,用以表征软件应用端需要数据提供端进行数据提供需求的标识信息。

具体的,本地服务端在经由进程间通信接收到数据传输请求信息后,将对数据传输请求信息进行解析,若解析后所得字段的前缀部分包含预设数据获取标识,则可认为数据传输请求信息为用于向数据提供端请求数据的信息,此时需由本地服务端对该数据传输请求信息进行转发。由于本地服务端为起到转发作用的服务端,为更好地对接真实网络地址下的数据提供端,需根据数据传输请求信息中包含的真实网络地址对本地服务端进行配置,并通过配置后的本地服务端将数据传输请求信息发送至数据提供端。

在本发明实施例中,通过直接在系统中构建与软件应用端可进行本地进程间通信的本地服务端,实现通过本地服务端对无法直接由真实网络地址访问的软件应用端和数据提供端的打通,无需引入外部服务端,降低了数据传输过程中的数据流量消耗量,提升了数据传输安全性和传输效率。

S103、数据提供端将与数据传输请求信息对应的请求数据回传至本地服务端,并由本地服务端将请求数据通过进程间通信回传至软件应用端。

具体的,数据提供端在接收到数据传输请求后,将与数据传输请求对应的请求数据回传至本地服务端,进而通过本地服务端与软件应用端间的进程间通信将请求数据回传至软件应用端,以实现软件应用端对无法直接访问的数据提供端中数据的传输调用。

本实施例的技术方案,通过软件应用端在接收到数据传输指令时,根据数据传输指令生成数据传输请求信息,并将数据传输请求信息通过进程间通信发送至本地服务端;本地服务端对数据传输请求信息进行解析,若数据传输请求信息包含预设数据获取标识,则根据数据传输请求信息配置本地服务端,并将数据传输请求信息发送至数据提供端;数据提供端将与数据传输请求信息对应的请求数据回传至本地服务端,并由本地服务端将请求数据通过进程间通信回传至软件应用端。通过采用上述技术方案,在进行跨进程数据传输前,构建一个包含软件应用端、本地服务端和数据提供端的跨进程数据传输系统,通过设置于系统自身的本地服务端以及进程间通信功能,使得软件应用端在接收到数据传输指令时,可将数据传输请求信息经由本地服务端解析后,在其中包含预设数据获取标识时将该数据传输请求信息发送至数据提供端,进而将数据提供端提供的数据经由本地服务端回传至需要该数据的软件应用端,在无需单独增加第三方应用的情况下通过在系统自身构建的本地服务端和进程间通信技术,实现了无法互通的软件应用端和数据提供端间的数据传输请求中转,无需为软件应用端提供管理权限,也无需增加独立的三方应用,避免了应用层直接提升权限导致的安全漏洞,在无需更多流量的情况下实现数据的跨进程传输,简化了数据跨进程传输的逻辑,提升了软件应用在进行数据调用时的稳定性。

实施例二

图2为本发明实施例二提供的一种跨进程数据传输方法的流程图,本发明实施例的技术方案在上述各可选技术方案的基础上进一步优化,通过在软件应用端接收到数据传输指令前,在本地服务端和软件应用端中分别穿件进程间通信服务端和进程间通信客户端,并构建进程间通信服务端与进程间通信客户端的通信连接,实现软件应用端和本地服务端间的通信。同时通过在软件应用端中创建本地代理服务端,实现了对数据传输端口输入真实网络地址的本地化配置,使其适用于向本地服务端传输,进而在软件应用端接收到数据传输指令时,根据数据传输指令的指令类型,完成对数据传输端口的地址配置和用于请求数据的数据传输请求信息的生成,或完成用于停止数据传输的数据传输请求信息的生成,使得软件应用端和本地服务端可在需要进行数据传输时进行适当的地址配置,在不进行数据传输时可尽快完成资源释放,提升了跨进程数据传输的效率和稳定性,简化了数据跨进程传输的逻辑,提升了软件应用在进行数据调用时的稳定性。

如图2所示,本发明实施例提供的一种跨进程数据传输方法,具体包括如下步骤:

S201、根据预设进程间通信名在本地服务端中创建进程间通信服务端。

在本实施例中,预设进程间通信名具体可理解为根据实际情况预先设置的,用以对构建的进程间通信(Unix Domain Socket,UDS)进行个性化身份表示的命名。示例性的,假设针对的是对媒体数据进行获取并播放的情况,也即与软件应用端相对应的数据需求由MediaPlayer提供,则可将进程间通信名设置为“MediaPlayerUDS”,也可根据实际情况进行对应的进程间通信名预设,本发明实施例对此不进行限制。

具体的,在跨进程数据传输系统投入使用前,可在系统本地拉起一个本地服务端Native Service,进而在本地服务端以预设进程间通信名作为参数,创建安卓原生支持UDS的进程间通信服务端LocalServerSocket,进而可在子线程中调用LocalServerSocket的accept方法,阻塞式等待与进程间通信服务端相对应客户端的连接。

S202、根据预设进程间通信名在软件应用端中创建进程间通信客户端。

具体的,在跨进程数据传输系统投入使用前,且在本地服务端中进程间通信服务端建立后,可根据与进程间通信服务端名字相同的预设进程间通信名,在软件应用端中对应创建安卓原生支持UDS的进程间通信客户端LocalSocket。

S203、软件应用端根据预设进程间通信名和预置地址创建指令确定套接字地址,并将套接字地址传递至进程间通信客户端,以完成进程间通信客户端和进程间通信服务端的通信连接。

具体的,软件应用端在完成进程间通信客户端的创建后,由于进程间通信客户端与进程间通信服务端具有相同的预设进程间通信名,可根据其构建二者间的对应关系,进而可由软件应用端使用预设进程间通信名和安卓系统中预先配置的预置地址创建指令作为参数,创建支持USD的Unix域套接字抽象命名空间下的套接字地址,进而将该套接字地址传递至进程间通信客户端,使得进程间通信客户端可将该套接字地址作为参数调用自身对应的connet方法,完成进程间通信客户端和进程间通信服务端的通信连接。可选的,其中预置地址创建指令可为

LocalSocketAdress.Namespace.ABSTRACT,所创建的套接字地址可表示为LocalSocketAdress。

S204、在软件应用端中创建本地代理服务端。

在本实施例中,本地代理服务端具体可理解为建立于本地并适配本地网络地址的,用于对需要请求数据的客户端进行监听的,并可连接到其他服务器的套接字。

具体的,为在本地代理需要进行数据请求和数据传输的,来自于真实网络地址的请求时,需要在软件应用端简历本地HTTP协议下的服务端套接字ServerSocket,并将创建所得的服务端套接字确定为本地代理服务端。

S205、将本地代理服务端绑定预设本地域名和预设空闲端口号。

在本实施例中,预设本地域名具体可理解为预先设置的本地网络IP地址的域名。预设空闲端口号具体可理解为预先设置的一个空闲的端口号。

示例性的,假设本地ip地址为“127.0.0.1”,预设空闲端口号为9090,则可将构建的本地代理服务端与该本地IP地址和预设空闲端口号进行绑定,进而可通过在子线程中调用ServerSocket的accept方法阻塞式等待提供数据需求的MediaPlayer的数据传输请求。

S206、根据预设本地域名、预设空闲端口号和预置真实网络地址生成本地网络地址。

在本实施例中,预置真实网络地址具体可理解为根据软件应用端调用需求预先配置的,数据提供端中存储需要调用数据的真实网络地址。

接上述示例,假设在行车记录仪的使用场景中,软件应用端为需要获取视频数据的视频播放软件,预置真实网络地址为电子控制器中相册的地址,可表示为DVR_REAL_MP4_PATH,则可将该预置真实网络地址中的域名替换为预设本地域名“127.0.0.1”,并将该预置真实网络地址的端口号替换为本地代理服务端使用的预设空闲端口号9090。

S207、对数据传输端口进行初始化,并由本地代理服务端对初始化后的数据传输端口进行监听。

具体的,在完成针对软件应用端和本地服务端间进程间通信的构建,以及其中本地代理服务端的配置后,可认为软件应用端可被用于对给出数据传输需求的数据传输端口进行请求接收,并执行后续针对数据传输请求的处理。此时可对软件应用端中用于对外接收数据传输指令的数据传输端口进行初始化,以完成跨进程数据传输准备,进而可由本地代理服务端对初始化后的数据传输端口进行监听,使得本地代理服务端可及时获取到数据传输端口输入的数据传输指令。

接上述示例,假设在行车记录仪的使用场景中,软件应用端为需要获取视频数据的视频播放软件,则可认为软件应用端的数据传输端口为与MediaPlayer相关的SDK端口,在完成针对软件应用端和本地服务端间进程间通信的构建,以及其中本地代理服务端的配置后,可通过调用MediaPlayer的setOnPreparedListener方法来设置播放器onPrepared的回调监听,进而实现通过本地代理服务端对数据传输端口中输入的数据传输指令的监听。

S208、在软件应用端接收到数据传输端口输入的数据传输指令时,若数据传输指令的指令类型为请求类型,则执行S209;若数据传输指令的指令类型为停止类型,则执行S215。

具体的,在软件应用端通过数据传输端口接收到输入的数据传输指令时,可认为软件应用端可能有进行数据调用或停止数据调用的需求,此时可对数据传输指令的指令类型进行分析,若该指令类型为请求类型,则可认为需要软件应用端经由本地服务端向数据提供端完成跨进程数据调用,此时执行步骤S209;若该指令类型为停止类型,则可认为软件应用端需要停止由本地服务端向数据提供端进行跨进程数据调用的行为,此时执行步骤S215。

S209、为数据传输端口设置本地网络地址。

具体的,在确定数据传输端口对应的软件需要对数据进行调用传输后,为满足本地通信的需求,在软件应用端中将其预先确定好的本地网络地址对数据传输端口进行设置。

接上述示例,可由软件应用端将其中生成的本地网络地址作为参数,调用与数据传输端口对应MediaPlayer的setDataSource方法,然后调用该MediaPlayer的prepareAsync方法,触发完成初始化的MediaPlayer下发数据传输请求,使得该数据传输请求可经由数据传输端口被与本地网络地址对应的本地代理服务端监听到。

S210、在本地代理服务端监听到本地数据传输请求时,通过预置真实网络域名、预置真实端口号和预设数据获取标识对本地数据传输请求进行更新,将更新后的本地数据传输请求确定为数据传输请求信息,并将数据传输请求信息发送至进程间通信客户端。

在本实施例中,本地数据传输请求具体可理解为具有数据传输需求的软件在完成初始化和本地网络地址配置后,经由数据传输端口下发的用于请求数据调用的请求。

具体的,在本地代理服务端监听到本地数据传输请求时,可认为通过数据传输端口接入软件应用端的服务具有数据传输的需求,而由于本地数据传输请求中所包含的地址信息为替换过的本地网络地址,在需要将其发送至本地服务端,进以通过本地服务端向具有真实地址的数据提供端进行数据请求时,需在向本地服务端发送的信息中携带与真实网络地址相关的信息,故此时可通过与预置真实网络地址相对应的预置真实网络域名和预置真实端口号对本地数据传输请求进行更新,同时为使得本地服务端可根据输入其中的数据传输请求信息明确是否要进行数据获取,需在更新后的本地数据传输请求中添加一个用以表征需要进行数据获取的预设数据获取标识,将完成上述所有更新和信息添加的本地数据传输请求确定为数据传输请求信息,并由本地代理服务端将其发送至软件应用端的进程间通信客户端中。

接上述示例,在本地代理服务端ServerSocket获取到由MediaPlayer经由数据传输端口传入的本地数据传输请求时,将本地数据传输请求中的本地网络域名和端口号替换为真实的预置真实网络地址中的网络域名和端口号,生成对真实网络进行数据传输请求的信息,同时,在该请求信息前年添加一个预先设置的数据获取标识,如“real_socket_request”,将添加后的请求信息确定为数据传输请求信息,并将该数据传输请求信息发送至进程间通信客户端LocalSocket。

S211、进程间通信客户端将数据传输请求信息发送至进程间通信服务端。

S212、本地服务端对数据传输请求信息进行解析,若数据传输请求信息包含预设数据获取标识,则根据数据传输请求信息中的预置真实网络域名和预置真实端口号在本地服务端创建数据传输端。

具体的,本地服务端在接收到数据传输请求信息时将对该数据传输请求信息进行解析,若解析后确定数据传输请求信息中包含预设数据获取标识,则可认为该数据传输请求信息为希望对数据提供端进行访问并获取反馈数据的请求信息,此时可在本地服务端中创建一个用于对数据提供端进行访问的数据传输端,并通过数据传输请求信息中的预置真实网络域名和预置真实端口号对数据传输端进行配置,使得数据传输端在配置后可与具有真实地址的数据提供端直接进行数据传输。

接上述示例,本地服务端Native Service在通过进程间通信服务端LocalServerSocket接收到数据传输请求信息后,通过对其进行解析判断该数据传输请求信息是否以预设数据获取标识开头,若是,则在本地服务端Native Service中创建一个Socket作为数据传输端,进而依据数据传输请求信息中的预置真实网络域名和预置真实端口号完成数据传输端与数据提供端的连接,进而将由进程间通信服务端LocalServerSocket接收到数据传输请求信息传递至数据提供端中。

S213、数据传输端将数据传输请求信息发送至数据提供端。

S214、数据提供端将与数据传输请求信息对应的请求数据回传至本地服务端,并由本地服务端将请求数据通过进程间通信回传至软件应用端。

具体的,数据提供端在接收到数据传输请求信息后,将根据数据传输请求信息提供对应的请求数据,由于数据提供端与本地服务端中的数据传输端建立的连接,故可通过该连接将请求数据回传至数据传输端,进而由数据传输端将该请求数据传输至进程间通信服务端,使得进程间通信服务端可根据与进程间通信客户端间的通信连接,将本地服务端接收到的请求数据回传至软件应用端的进程间通信客户端中,进而经由软件应用端中的本地代理服务端传至具有数据传输需求的数据传输端口,完成对数据的传输和调用。

S215、生成包含预设数据释放标识的数据传输请求信息。

具体的,在软件应用端确定其接收到的数据传输指令为停止类型时,可认为软件应用端需要停止由本地服务端向其提供的跨进程数据传输。为使得本地服务端可根据输入其中的数据传输请求信息明确是否要进行数据获取,此时可生成一个包含用以表征需要停止数据获取的预设数据释放标识的数据传输请求信息。

示例性的,预设数据释放标识可表示为“stop_socket_request”,本发明实施例对此不进行限制。

S216、进程间通信客户端将数据传输请求信息发送至进程间通信服务端,并释放进程间通信客户端的资源。

具体的,软件应用端通过进程间通信客户端将包含有预设数据释放标识的数据传输请求信息发送至本地服务端,同时由于软件应用端在接收到数据传输指令后已明确需要停止对数据的获取,故此时可对其中进程间通信客户端的资源进行释放,以减少对内存的消耗。

S217、本地服务端对数据传输请求信息进行解析,若数据传输请求信息包含预设数据释放标识,则释放进程间通信服务端的资源。

具体的,本地服务端在接收到数据传输请求信息时将对该数据传输请求信息进行解析,若解析后确定数据传输请求信息中包含预设数据释放标识,则可认为该数据传输请求信息为希望停止从数据提供端获取数据,并对本地服务端中资源进行释放的请求信息,此时可停止数据传输端对数据提供端数据的接收,同时释放进程间通信服务端的资源。

本实施例的技术方案,在软件应用端接收到数据传输指令前,在本地服务端和软件应用端中分别穿件进程间通信服务端和进程间通信客户端,并构建进程间通信服务端与进程间通信客户端的通信连接,实现软件应用端和本地服务端间的通信。同时通过在软件应用端中创建本地代理服务端,实现了对数据传输端口输入真实网络地址的本地化配置,使其适用于向本地服务端传输,进而在软件应用端接收到数据传输指令时,根据数据传输指令的指令类型,完成对数据传输端口的地址配置和用于请求数据的数据传输请求信息的生成,或完成用于停止数据传输的数据传输请求信息的生成,使得软件应用端和本地服务端可在需要进行数据传输时进行适当的地址配置,在不进行数据传输时可尽快完成资源释放,提升了跨进程数据传输的效率和稳定性,简化了数据跨进程传输的逻辑,提升了软件应用在进行数据调用时的稳定性。

实施例三

图3为本发明实施例三提供的一种跨进程数据传输系统的结构示意图,如图3所示,跨进程数据传输系统1包括:软件应用端11、本地服务端12和数据提供端13。其中,软件应用端11与本地服务端12间能够进行进程间通信。

软件应用端11,用于在接收到数据传输指令时,根据数据传输指令生成数据传输请求信息,并将数据传输请求信息通过进程间通信发送至本地服务端12;

本地服务端12,用于对数据传输请求信息进行解析,若数据传输请求信息包含预设数据获取标识,则根据数据传输请求信息配置本地服务端12,并将数据传输请求信息发送至数据提供端13;

数据提供端13,用于将与数据传输请求信息对应的请求数据回传至本地服务端12,并由本地服务端12将请求数据通过进程间通信回传至软件应用端11。

本实施例的技术方案,在进行跨进程数据传输前,构建一个包含软件应用端、本地服务端和数据提供端的跨进程数据传输系统,通过设置于系统自身的本地服务端以及进程间通信功能,使得软件应用端在接收到数据传输指令时,可将数据传输请求信息经由本地服务端解析后,在其中包含预设数据获取标识时将该数据传输请求信息发送至数据提供端,进而将数据提供端提供的数据经由本地服务端回传至需要该数据的软件应用端,在无需单独增加第三方应用的情况下通过在系统自身构建的本地服务端和进程间通信技术,实现了无法互通的软件应用端和数据提供端间的数据传输请求中转,无需为软件应用端提供管理权限,也无需增加独立的三方应用,避免了应用层直接提升权限导致的安全漏洞,在无需更多流量的情况下实现数据的跨进程传输,简化了数据跨进程传输的逻辑,提升了软件应用在进行数据调用时的稳定性。

可选的,软件应用端11,包括:数据传输端口110、本地代理服务端111和进程间通信客户端112。本地服务端12,包括:进程间通信服务端120。

其中,进程间通信服务端120为根据预设进程间通信名在本地服务端12中创建的;进程间通信客户端112为根据预设进程间通信名在软件应用端11中创建的。

软件应用端11,具体用于:

根据预设进程间通信名和预置地址创建指令确定套接字地址,并将套接字地址传递至进程间通信客户端112,以完成进程间通信客户端112和进程间通信服务端120的通信连接;

将本地代理服务端111绑定预设本地域名和预设空闲端口号;

根据预设本地域名、预设空闲端口号和预置真实网络地址生成本地网络地址;

对数据传输端口110进行初始化,并由本地代理服务端111对初始化后的数据传输端口110进行监听。

可选的,在软件应用端11接收到数据传输端口110输入的数据传输指令时,若数据传输指令的指令类型为请求类型,则为数据传输端口110设置本地网络地址;

在本地代理服务端111监听到本地数据传输请求时,通过预置真实网络域名、预置真实端口号和预设数据获取标识对本地数据传输请求进行更新,将更新后的本地数据传输请求确定为数据传输请求信息,并将数据传输请求信息发送至进程间通信客户端112;

进程间通信客户端112将数据传输请求信息发送至进程间通信服务端120。

可选的,根据数据传输请求信息配置本地服务端12,并将数据传输请求信息发送至数据提供端13,包括:

根据数据传输请求信息中的预置真实网络域名和预置真实端口号在本地服务端12创建数据传输端121;

数据传输端121将数据传输请求信息发送至数据提供端13。

可选的,在软件应用端11接收到数据传输端口110输入的数据传输指令时,若数据传输指令的指令类型为停止类型,则生成包含预设数据释放标识的数据传输请求信息;

进程间通信客户端112将数据传输请求信息发送至进程间通信服务端120,并释放进程间通信客户端112的资源。

本地服务端12对数据传输请求信息进行解析,若数据传输请求信息包含预设数据释放标识,则释放进程间通信服务端120的资源。

本发明实施例提供的跨进程数据传输系统可执行本发明任意实施例所提供的跨进程数据传输方法,具备执行方法相应的功能模块和有益效果。

实施例四

图4为本发明实施例四提供的一种跨进程数据传输设备的结构示意图。跨进程数据传输设备40可为电子设备,旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备(如头盔、眼镜、手表等)和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。

如图4所示,跨进程数据传输设备40包括至少一个处理器41,以及与至少一个处理器41通信连接的存储器,如只读存储器(ROM)42、随机访问存储器(RAM)43等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器41可以根据存储在只读存储器(ROM)42中的计算机程序或者从存储单元48加载到随机访问存储器(RAM)43中的计算机程序,来执行各种适当的动作和处理。在RAM 43中,还可存储跨进程数据传输设备40操作所需的各种程序和数据。处理器41、ROM 42以及RAM 43通过总线44彼此相连。输入/输出(I/O)接口45也连接至总线44。

跨进程数据传输设备40中的多个部件连接至I/O接口45,包括:输入单元46,例如键盘、鼠标等;输出单元47,例如各种类型的显示器、扬声器等;存储单元48,例如磁盘、光盘等;以及通信单元49,例如网卡、调制解调器、无线通信收发机等。通信单元49允许跨进程数据传输设备40通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理器41可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器41的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器41执行上文所描述的各个方法和处理,例如跨进程数据传输方法。

在一些实施例中,跨进程数据传输方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元48。在一些实施例中,计算机程序的部分或者全部可以经由ROM 42和/或通信单元49而被载入和/或安装到跨进程数据传输设备40上。当计算机程序加载到RAM 43并由处理器41执行时,可以执行上文描述的跨进程数据传输方法的一个或多个步骤。备选地,在其他实施例中,处理器41可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行跨进程数据传输方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。

计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

相关技术
  • 一种数据传输方法、设备及计算机可读存储介质
  • 一种数据传输方法、装置、电子设备及存储介质
  • 通信数据传输方法、系统、设备及计算机可读存储介质
  • 一种数据传输方法、系统、切换装置及可读存储介质
  • 一种数据存储方法、调度装置、系统、设备及存储介质
  • 跨进程数据传输方法、装置、电子设备和存储介质
  • Windows跨进程窗口管理方法、存储介质、电子设备及系统
技术分类

06120116499590