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

技术编号:13876859 阅读:75 留言:0更新日期:2016-10-22 13:23
本发明专利技术提供了一种浏览器中进程间通信的方法和装置,所述方法包括:浏览器的框架FRAME进程对将传输数据进行序列化操作;所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;所述FRAME进程异步发送第一通知信息到浏览器辅助对象BHO进程,所述通知消息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;接收到所述BHO进程返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;释放分配的第一目标内存空间。因为不同的数据分别存放在不同的相应的内存空间段中,因此BHO进程不会读错数据,提高了浏览器中进程间通信的效率。

【技术实现步骤摘要】

本专利技术涉及通信
,特别是涉及一种浏览器中进程间通信的方法和装置
技术介绍
进程是一个具有独立功能的程序关于某个数据集合的一次运行活动。它可以申请和拥有系统资源,是一个动态的概念,一个活动的实体。每一个进程都有私有的地址空间,一般情况下,包括代码段、数据段、堆栈段。代码段存储处理器执行的代码;数据段存储变量和进程执行期间使用的动态分配的内存;堆栈段存储着活动过程调用的指令和本地变量。随着技术的发展,单进程程序在很多场合已不能满足人们的需求。如何编写多进程程序已成为现代程序设计技术的重点。在多进程程序中,数据的交互和共享是不可避免的。例如,某些浏览器支持多进程模式,页面A、页面B不在同一个进程运行,而需要经常在它们之间进行数据共享。Microsoft Win32 API提供了多种进程通信的方式,如共享内存方式、剪贴板方式等。参照图1,示出了现有技术一种浏览器中以共享内存方式的进程通信方法的流程示意图,其中,进程A和进程B使用同一共享内存区,进程A发送数据1到共享内存区中去,并通知进程B去接收,此时进程B可能正忙于其他事务,而没有及时对共享内存区中的数据进行操作;此时若进程A发送数据2到共享内存中,进程B现在开始处理消息,并对共享内存区中的数据进行操作就会出现读写错乱的问题,影响进程的执行准确率。为了避免读写错乱的问题,现有一种共享内存方式的进程通信方法采用一定的补救机制,也即,进程A发送数据到共享内存区中,进程B收到消息并操作,在执行完毕后通知进程A,此时进程A才能再次进行对共享内存区的读写。但如果采用上述补救机制,进程A就不能在需要写数据的时候随时写入,而是需要等待进程B执行完毕才可以进行下一次的操作,这就严重影响了进程A的执行效率和进程的通信效率,例如加载浏览器页面的效率等
都会受到影响。总之,需要本领域技术人员迫切解决的一个技术问题就是:如何保证浏览器中多个进程间通信不出现读写错乱的情况下提高进程通信的执行效率。
技术实现思路
本专利技术所要解决的技术问题是提供一种浏览器中进程间通信的方法和装置,以便在保证进程间通信不出现读写错乱的情况下提高进程通信的执行效率。为了解决上述问题,本专利技术公开了一种浏览器中进程间通信的方法,包括:浏览器的框架FRAME进程对将传输数据进行序列化操作;所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;所述FRAME进程异步发送第一通知信息到浏览器辅助对象BHO进程,所述通知消息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;接收到所述BHO进程返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;释放分配的第一目标内存空间。优选的,所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中的步骤包括:获取所述序列化后的数据的首地址和数据长度信息;依据所述数据长度信息,在所述FRAME进程的虚拟地址空间中分配第一目标内存空间;根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第一目标内存空间中。优选的,所述FRAME进程对将传输数据进行序列化操作的步骤进一步包括:采用重载运算符对将传输数据进行序列化操作,其中不同数据类型的将
传输数据对应不同的重载运算符。优选的,所述第二通知信息进一步包括:所述分配的第一目标内存空间的地址信息以及所述FRAME进程标识;则所述释放所述分配的第一目标内存空间的步骤进一步包括:依据第二通知信息中的所述FRAME进程标识,确定为对所述FRAME进程进行处理,并获得所述FRAME进程的进程对象句柄;依据所述FRAME进程的进程对象句柄和第二通知信息中的第一目标内存空间的地址信息,释放所述FRAME进程分配的第一目标内存空间。5、如权利要求1所述的方法,进一步包括:接收浏览器的BHO进程发送来的第三通知信息,该第三通知信息携带所述BHO进程中分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识;依据所述BHO进程的进程标识获取该BHO进程的进程对象句柄;使用该进程对象句柄依据所述第二目标内存空间的地址信息获取数据进行处理;处理结束后发送第四通知信息到所述BHO进程,通知所述BHO进程浏览器的FRAME进程对所述第二目标内存空间中的数据处理完毕。优选的,所述第四通知信息进一步包括:所述分配的第二目标内存空间的地址信息以及所述BHO进程的进程标识。优选的,所述浏览器辅助对象进程BHO是登录用控件的BHO子进程。优选的,所述浏览器辅助对象进程BHO是两个或多个BHO进程。为解决上述问题,本专利技术还公开了一种浏览器中进程间通信的方法,包括:浏览器的辅助对象进程BHO对将传输数据进行序列化操作;所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中;所述BHO进程同步发送第五通知信息到浏览器的框架FRAME进程,
所述通知信息中携带第三目标内存空间的地址信息以及所述BHO进程的进程标识;接收到所述浏览器的FRAME进程返回的第六通知信息,通知对所述传输数据在所述FRAME进程中处理结束;释放分配的第三目标内存空间。优选的,所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中的步骤包括:获取所述序列化后的数据的首地址和数据长度信息;依据所述数据长度信息,在所述BHO进程的虚拟地址空间中分配第三目标内存空间;根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第三目标内存空间中。优选的,所述第六通知信息进一步包括:所述分配的第三目标内存空间的地址信息以及所述BHO进程的进程标识;则所述释放所述分配的第三目标内存空间的步骤包括:依据第六通知信息中的BHO进程的进程标识,确定为对所述BHO进程进行处理,并获得所述BHO进程的进程对象句柄;依据所述BHO进程的的进程对象句柄和第六通知信息中的第三目标内存空间的地址信息,释放所述框BHO进程分配的第三目标内存空间。优选的,进一步包括:接收浏览器的FRAME进程发送来的第七通知信息,该第七通知信息携带所述FRAME进程中分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识;依据所述FRAME进程的进程标识获取该FRAME进程的进程对象句柄;使用该进程对象句柄依据所述第四目标内存空间的地址信息获取数据进行处理;处理结束后发送第八通知信息到所述FRAME进程,通知所述FRAME进程所述BHO进程对所述第四目标内存空间中的数据处理完毕。优选的,所述第八通知信息进一步包括:所述分配的第四目标内存空间的地址信息以及所述FRAME进程的进程标识。优选的,所述浏览器辅助对象进程是登录控件的BHO子进程。优选的,所述浏览器辅助对象进程BHO是两个或多个BHO进程。为解决上述问题,本专利技术还公开了一种浏览器中进程间通信的装置,包括:第一数据序列化模块,其配置为浏览器的框架进程FRAME对将传输数据进行序列化操作;第一内存空间获取模块,其配置为所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;第一通本文档来自技高网
...

【技术保护点】
一种浏览器中进程间通信的方法,其特征在于,包括:浏览器的框架FRAME进程对将传输数据进行序列化操作;所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;所述FRAME进程异步发送第一通知信息到浏览器辅助对象BHO进程,所述通知消息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;接收到所述BHO进程返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;释放分配的第一目标内存空间。

【技术特征摘要】
1.一种浏览器中进程间通信的方法,其特征在于,包括:浏览器的框架FRAME进程对将传输数据进行序列化操作;所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中;所述FRAME进程异步发送第一通知信息到浏览器辅助对象BHO进程,所述通知消息中携带第一目标内存空间的地址信息以及所述FRAME进程的进程标识;接收到所述BHO进程返回的第二通知信息,通知对所述传输数据在所述BHO进程中处理结束;释放分配的第一目标内存空间。2.如权利要求1所述的方法,其特征在于,所述FRAME进程在其虚拟地址空间中分配第一目标内存空间,并复制获取序列化后的数据到第一目标内存空间中的步骤包括:获取所述序列化后的数据的首地址和数据长度信息;依据所述数据长度信息,在所述FRAME进程的虚拟地址空间中分配第一目标内存空间;根据所述序列化后的数据的首地址,将所述序列化后的数据复制到分配的第一目标内存空间中。3.如权利要求1所述的方法,其特征在于,所述FRAME进程对将传输数据进行序列化操作的步骤进一步包括:采用重载运算符对将传输数据进行序列化操作,其中不同数据类型的将传输数据对应不同的重载运算符。4.如权利要求1所述的方法,其特征在于,所述第二通知信息进一步包括:所述分配的第一目标内存空间的地址信息以及所述FRAME进程标识;则所述释放所述分配的第一目标内存空间的步骤进一步包括:依据第二通知信息中的所述FRAME进程标识,确定为对所述FRAME进程进行处理,并获得所述FRAME进程的进程对象句柄;依据所述FRAME进程的进程对象句柄和第二通知信息中的第一目标内存空间的地址信息,释放所述FRAME进程分配的第一目标内存空间。5.一种浏览器中进程间通信的方法,其特征在于,包括:浏览器的辅助对象进程BHO对将传输数据进行序列化操作;所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中;所述BHO进程同步发送第五通知信息到浏览器的框架FRAME进程,所述通知信息中携带第三目标内存空间的地址信息以及所述BHO进程的进程标识;接收到所述浏览器的FRAME进程返回的第六通知信息,通知对所述传输数据在所述FRAME进程中处理结束;释放分配的第三目标内存空间。6.如权利要求5所述的方法,其特征在于,所述BHO进程在其虚拟地址空间中分配第三目标内存空间,并复制序列化后的数据到第三目标内存空间中的步骤包括:获取所述序列化后的数据的首地址和数据长度信息;依据所述...

【专利技术属性】
技术研发人员:杭程段培堃谢志宏任寰
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

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

1