一种进程间的通信方法和装置制造方法及图纸

技术编号:9765675 阅读:118 留言:0更新日期:2014-03-15 09:48
本发明专利技术公开了一种进程间通信的方法,包括:主进程创建子进程宿主对象;主进程使用所述创建的子进程宿主对象启动子进程,并向所述子进程发送第一命令;子进程启动并接收来自主进程的第一命令;所述子进程创建对应的子进程对象;所述子进程对象向所述主进程发送启动应答消息;主进程根据收到的启动应答消息中的子进程标识确定对应的子进程宿主对象,并为所述子进程宿主对象设置对应的子进程通信接口句柄;所述主进程和所述子进程建立通信通道进行数据传输。基于这样的进程间通信机制,即使主进程需要运行更多的子进程,也不会增加进程间通信的复杂度,有效降低了运行和维护多个进程间通信的成本。

【技术实现步骤摘要】
一种进程间的通信方法和装置
本专利技术涉及人机交互
,具体涉及一种进程间的通信方法和装置。
技术介绍
进程是计算机系统分配资源的最小单位。每个进程都有自己的一部分独立的系统资源,彼此是隔离的。为了能使不同的进程互相访问资源并进行协调工作,就有了进程间通信(Inter-Process Communication, IPC)。所谓IPC通信就是指进程间的信息传播或交换。一般而言,主程序在运行过程中会运行对应的主进程,基于不同任务的需要往往还需要同时启动并运行多个对应的子进程,而随着子进程数量的增加,进程间通信的复杂度也随之提高。这样一来,如何有效控制多进程通信时的复杂度,减少数据传输错误和异常就成为本领域技术人员在实施进程间通信时需要解决的技术问题。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的一种进程间的通信方法和装置。依据本专利技术的一个方面,提供了一种进程间的通信方法,所述方法包括:主进程创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识;主进程使用所述创建的子进程宿主对象启动子进程,并向所述子进程发送第一命令,所述第一命令行携带所述子进程标识、主进程通信接口句柄;子进程启动并接收来自主进程的第一命令;所述子进程创建对应的子进程对象,并对所述子进程对象进行初始化;所述子进程对象向所述主进程发送启动应答消息,所述启动应答消息携带所述子进程对象对应的子进程通信接口句柄、子进程标识;主进程收到子进程的启动应答消息后,根据所述启动应答消息中的子进程标识确定对应的子进程宿主对象,并为所述子进程宿主对象设置对应的子进程通信接口句柄;所述主进程和所述子进程建立通信通道进行数据传输。可选地,所述主进程和所述子进程建立通信通道进行数据传输,具体包括:所述主进程通过主进程通信接口句柄接收来自子进程的数据,并通过子进程宿主对象的子进程通信接口句柄向对应的子进程发送数据;所述子进程通过子进程通信接口句柄接收来自主进程的数据,并通过主进程通信接口句柄向主进程发送数据。可选地,所述方法还包括:主进程判断与子进程的数据通道是否已建成,若建成,通过所述子进程宿主对象向对应的子进程发送第二命令;若所述数据通道未建成,则缓存所述第二命令携带的命令参数;当子进程接收到来自主进程的第二命令后,解析并执行所述第二命令。可选地,所述主进程创建子进程宿主对象之前还包括:主进程创建新的浏览器子窗口 ;主进程创建子进程渲染宿主对象,并为所述子进程渲染宿主对象分配对应的渲染对象标识;所述主进程创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识,具体包括:主进程调用所述子进程渲染宿主对象的导航方法,在所述导航方法中创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识;所述主进程通过所述子进程宿主对象向对应的子进程发送的第二命令包括:渲染对象创建命令和对应的渲染对象标识;所述子进程解析并执行所述第二命令,具体包括:子进程判断所述第二命令中是否包括渲染对象创建命令,若包括,则从所述第二命令中获得对应的渲染对象标识,以及:创建子进程渲染对象,并为该子进程渲染对象设置所述渲染对象标识;创建子进程浏览器渲染对象,并使用子进程对象的方法向主进程发送渲染对象创建应答消息,所述渲染对象创建应答消息携带所述子进程浏览器渲染对象的子进程浏览器窗口句柄;所述方法还包括:若主进程收到来自子进程的渲染对象创建应答消息,则从所述渲染对象创建应答消息中获得子进程浏览器窗口句柄,并将所述子进程浏览器窗口句柄的父窗口设置为当前浏览器子窗口。可选地,所述主进程通过子进程宿主对象向对应的子进程发送的第二命令还包括:子进程渲染对象导航命令和对应的目标网页标识;所述子进程解析并执行所述第二命令,还包括:子进程判断所述第二命令中是否包括子进程渲染对象导航命令,若包括,则从所述第二命令中获得对应的目标网页标识,以及:子进程使用所述子进程浏览器渲染对象的导航方法导航所述目标网页标识。可选地,所述主进程通过子进程宿主对象向子进程发送的第一命令还包括:登录[目息标识;所述主进程通过子进程宿主对象向对应的子进程发送的第二命令还包括:网页填充命令;所述子进程解析并执行所述第二命令,还包括:子进程判断所述第二命令中是否包括网页填充命令,若包括,则从所述第一命令中获得所述登录信息标识,以及:子进程使用所述子进程浏览器渲染对象的网页自动填充方法获取所述登录信息标识对应的登录配置规则、登录账号和登录密码;对所述导航的目标网页中登录对象按所述登录配置规则自动填充登录账号和登录密码。可选地,所述主进程通过子进程宿主对象向对应的子进程发送的第二命令还包括:窗口调整命令和对应的窗口大小参数;所述子进程解析并执行所述第二命令,还包括:子进程判断所述第二命令中是否包括窗口调整命令,若包括,则从所述第二命令中获得窗口大小参数,以及子进程使用所述子进程浏览器渲染对象的窗口设置方法按照所述窗口大小参数设置子进程浏览器窗体大小。根据本专利技术的另一方面,提供了一种进程间通信装置,所述装置包括:包括主进程模块、子进程模块和数据通道;所述主进程模块包括:子进程宿主对象模块,用于创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识;子进程启动模块,用于使用所述子进程宿主对象模块创建的子进程宿主对象启动子进程模块;第一命令发送模块,用于向所述子进程启动模块启动的子进程模块发送第一命令,所述第一命令行携带所述子进程标识、主进程通信接口句柄;所述子进程模块包括:第一命令接收模块,用于接收来自主进程模块的第一命令;子进程对象模块,用于创建子进程对象,并对所述子进程对象进行初始化;所述子进程对象模块,还用于向主进程发送启动应答消息,所述启动应答消息携带所述子进程对象对应的子进程通信接口句柄、子进程标识;所述主进程模块还包括:第一消息响应模块,用于收到子进程的启动应答消息后,根据所述启动应答消息中的子进程标识确定对应的子进程宿主对象,并为所述子进程宿主对象设置对应的子进程通信接口句柄;所述数据通道,用于主进程模块和子进程模块进行数据传输。其中,所述数据通道,具体用于:所述主进程模块通过主进程通信接口句柄接收来自子进程模块的数据,并通过子进程宿主对象的子进程通信接口句柄向对应的子进程模块发送数据;所述子进程模块通过子进程通信接口句柄接收来自主进程模块的数据,并通过主进程通信接口句柄向主进程模块发送数据。可选地,所述主进程模块还包括:第二命令发送模块,用于判断与子进程模块的数据通道是否已建成,若建成,通过所述子进程宿主对象向对应的子进程模块发送第二命令;若所述数据通道未建成,则缓存所述第二命令携带的命令参数;所述子进程模块还包括:第二命令执行模块,用于当子进程模块接收到来自主进程模块的第二命令后,解析并执行所述第二命令。可选地,所述主进程模块还包括:子窗口模块,用于创建新的浏览器子窗口 ;子进程渲染宿主对象模块,用于创建子进程渲染宿主对象,并为所述子进程渲染宿主对象分配对应的渲染对象标识;所述子进程宿主对象模块,具体用于:主进程模块调用所述子进程渲染宿主对象的导航方法,在所述导航方法中创建子进程宿主对象,并为所述子进程宿主对象分配本文档来自技高网...

【技术保护点】
一种进程间通信的方法,包括:主进程创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识;主进程使用所述创建的子进程宿主对象启动子进程,并向所述子进程发送第一命令,所述第一命令行携带所述子进程标识、主进程通信接口句柄;子进程启动并接收来自主进程的第一命令;所述子进程创建对应的子进程对象,并对所述子进程对象进行初始化;所述子进程对象向所述主进程发送启动应答消息,所述启动应答消息携带所述子进程对象对应的子进程通信接口句柄、子进程标识;主进程收到子进程的启动应答消息后,根据所述启动应答消息中的子进程标识确定对应的子进程宿主对象,并为所述子进程宿主对象设置对应的子进程通信接口句柄;所述主进程和所述子进程建立通信通道进行数据传输。

【技术特征摘要】
1.一种进程间通信的方法,包括: 主进程创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识;主进程使用所述创建的子进程宿主对象启动子进程,并向所述子进程发送第一命令,所述第一命令行携带所述子进程标识、主进程通信接口句柄; 子进程启动并接收来自主进程的第一命令; 所述子进程创建对应的子进程对象,并对所述子进程对象进行初始化; 所述子进程对象向所述主进程发送启动应答消息,所述启动应答消息携带所述子进程对象对应的子进程通信接口句柄、子进程标识; 主进程收到子进程的启动应答消息后,根据所述启动应答消息中的子进程标识确定对应的子进程宿主对象,并为所述子进程宿主对象设置对应的子进程通信接口句柄; 所述主进程和所述子进程建立通信通道进行数据传输。2.如权利要求1所述的方法,其特征在于,所述主进程和所述子进程建立通信通道进行数据传输,具体包括: 所述主进程通过主进程通信接口句柄接收来自子进程的数据,并通过子进程宿主对象的子进程通信接口句柄向对应的子进程发送数据; 所述子进程通过子进程通信接口句柄接收来自主进程的数据,并通过主进程通信接口句柄向主进程发送数据。3.如权利要求1所 述的方法,其特征在于,所述方法还包括: 主进程判断与子进程的数据通道是否已建成,若建成,通过所述子进程宿主对象向对应的子进程发送第二命令;若所述数据通道未建成,则缓存所述第二命令携带的命令参数; 当子进程接收到来自主进程的第二命令后,解析并执行所述第二命令。4.如权利要求3所述的方法,其特征在于,所述主进程创建子进程宿主对象之前还包括: 主进程创建新的浏览器子窗口; 主进程创建子进程渲染宿主对象,并为所述子进程渲染宿主对象分配对应的渲染对象标识; 所述主进程创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识,具体包括: 主进程调用所述子进程渲染宿主对象的导航方法,在所述导航方法中创建子进程宿主对象,并为所述子进程宿主对象分配一个对应的子进程标识; 所述主进程通过所述子进程宿主对象向对应的子进程发送的第二命令包括: 渲染对象创建命令和对应的渲染对象标识; 所述子进程解析并执行所述第二命令,具体包括: 子进程判断所述第二命令中是否包括渲染对象创建命令,若包括,则从所述第二命令中获得对应的渲染对象标识,以及: 创建子进程渲染对象,并为该子进程渲染对象设置所述渲染对象标识; 创建子进程浏览器渲染对象,并使用子进程对象的方法向主进程发送渲染对象创建应答消息,所述渲染对象创建应答消息携带所述子进程浏览器渲染对象的子进程浏览器窗口句柄; 所述方法还包括: 若主进程收到来自子进程的渲染对象创建应答消息,则从所述渲染对象创建应答消息中获得子进程浏览器窗口句柄,并将所述子进程浏览器窗口句柄的父窗口设置为当前浏览器子窗口。5.如权利要求4所述的方法,其特征在于, 所述主进程通过子进程宿主对象向对应的子进程发送的第二命令还包括: 子进程渲染对象导航命令和对应的目标网页标识; 所述子进程解析并执行所述第二命令,还包括: 子进程判断所述第二命令中是否包括子进程渲染对象导航命令,若包括,则从所述第二命令中获得对应的目标网页标识,以及: 子进程使用所述子进程浏览器渲染对象的导航方法导航所述目标网页标识。6.一种进程间通信装置,包括主进程模块、子进程模块和数据通道; 所述主进程模块包括: 子进程宿主对象模块,用于创建子进程宿主对象,并为所述子进程宿主对象分配一个对应...

【专利技术属性】
技术研发人员:李超张菊元
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:

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

1