[发明专利]进程运行方法及装置有效
申请号: | 201210055242.1 | 申请日: | 2012-03-05 |
公开(公告)号: | CN103294561A | 公开(公告)日: | 2013-09-11 |
发明(设计)人: | 游晶;彭勇;邹代柱 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/445 |
代理公司: | 广州华进联合专利商标代理有限公司 44224 | 代理人: | 何平;曾旻辉 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 进程 运行 方法 装置 | ||
1.一种进程运行方法,包括如下步骤:
根据调用请求加载应用程序模块;
获取所述应用程序模块与所述请求调用的进程之间的分布关系;
根据所述分布关系获取所述应用程序模块的通信代理;
通过所述调用请求中目标应用程序模块所对应的通信代理,调用所述目标应用程序模块。
2.根据权利要求1所述的方法,其特征在于,所述根据所述分布关系获取所述应用程序模块的通信代理的步骤为:
根据所述分布关系判断所述应用程序模块是否加载至请求调用的进程:
若是,则触发中心进程创建本地通信代理,并将所述本地通信代理与所述应用程序模块建立映射关系,
若否,则触发所述中心进程获取远程通信代理,并建立所述远程通信代理与所述应用程序模块之间的映射关系。
3.根据权利要求1所述的方法,其特征在于,所述通过所述调用请求中目标应用程序模块所对应的通信代理,调用所述目标应用程序模块包括:
根据所述调用请求判断发起请求的应用程序模块和目标应用程序模块是否处于同一进程;
若是,则根据所述调用请求在所述中心进程中查找与目标应用程序模块对应的本地通信代理;
通过所述本地通信代理进行所述发起请求的应用程序模块和目标应用程序模块的通信。
4.根据权利要求3所述的方法,其特征在于,所述通过所述调用请求中目标应用程序模块所对应的通信代理,调用所述目标应用程序模块还包括:
当根据所述调用请求判断到发起请求的应用程序模块和目标应用程序模块未处于同一进程,则根据所述调用请求在所述中心进程中查找与目标应用程序模块对应的远程通信代理;
通过所述远程通信代理进行所述发起请求的应用程序模块和目标应用程序模块的通信。
5.根据权利要求4所述的方法,其特征在于,所述根据所述调用请求在所述中心进程中查找与目标应用程序模块对应的本地通信代理的步骤之前还包括:
根据所述调用请求从堆上分配内存;
所述根据所述调用请求在所述中心进程中查找与目标应用程序模块对应的远程通信代理的步骤之前还包括:
通过转调远程进程调用模块从共享内存中分配内存;
在所述分配的内存中通过Hook系统函数GetMessage将通信的数据以自定义消息的形式传递到消息线程,进而使用回调函数进行处理通信的数据。
6.一种进程运行装置,其特征在于,包括:
模块加载单元,用于根据调用请求加载应用程序模块;
关系获取单元,用于获取所述应用程序模块与所述请求调用的进程之间的分布关系;
代理获取单元,用于根据所述分布关系获取所述应用程序模块的通信代理;
模块调用单元,用于通过所述调用请求中目标应用程序模块所对应的通信代理,调用所述目标应用程序模块。
7.根据权利要求6所述的装置,其特征在于,所述代理获取单元包括:
加载判断单元,用于判断所述应用程序模块是否加载至请求调用的进程,若是,则通知本地通信处理单元,若否,则通知远程通信处理单元;
所述本地通信处理单元用于触发中心进程创建本地通信代理,并将所述本地通信代理与所述应用程序模块建立映射关系;
所述远程通信处理单元用于触发所述中心进程获取远程通信代理,并建立所述远程通信代理与所述应用程序模块之间的映射关系。
8.根据权利要求6所述的装置,其特征在于,所述模块调用单元包括:
模块判断单元,用于根据所述调用请求判断发起请求的应用程序模块和目标应用程序模块是否处于同一进程,若是,则通知本地查找单元;
所述本地查找单元用于根据所述调用请求在所述中心进程中查找与目标应用程序模块对应的本地通信代理;
本地通信单元,用于通过所述本地通信代理进行所述发起请求的应用程序模块和目标应用程序模块的通信。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210055242.1/1.html,转载请声明来源钻瓜专利网。