[发明专利]基于构件接口的异步调用方法无效
申请号: | 200810208052.2 | 申请日: | 2008-12-29 |
公开(公告)号: | CN101770394A | 公开(公告)日: | 2010-07-07 |
发明(设计)人: | 陈榕;宋世军 | 申请(专利权)人: | 上海科泰世纪科技有限公司 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 201203 上海市张江高*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 构件 接口 异步 调用 方法 | ||
技术领域
本发明涉及一种构件化软件系统中的调用方法,特别是关于一种构 件化软件系统中基于构件接口的异步调用方法。
背景技术
异步调用是与同步调用相对的一种调用方式。如果是同步调用,调 用方要等待调用任务执行完毕才返回。如果是调用异步,调用方会很快 返回,但调用任务未必此时被执行,而是稍后某个时机才被执行。通过 异步调用,不需要等待调用任务完成就可以继续执行其他任务。
当调用执行一些比较耗时的操作,例如磁盘读写、网络数据传输 时,通常会采用异步调用方式。程序员创建一个工作线程用于等待磁盘 读写或网络数据传输,以此来释放CPU,提高CPU的利用率。然而, 在现有的技术中,异步调用的实现过程比较复杂。异步调用的实现需要 编写大量代码,增加了重复劳动。并且,利用多线程实现异步调用容易 出现漏洞,造成一定的安全隐患。这些问题的存在,给构件化软件系统 中实现异步调用带来了很大的限制。
发明内容
鉴于以上内容,有必要提供一种简便可靠的基于构件接口的异步调 用方法。
一种基于构件接口的异步调用方法,适用于能运行构件化软件系统 的数据处理设备,该方法包括步骤:定义目标构件类、该目标构件类的 异步接口及该异步接口的方法;创建所述目标构件类的对象实例;调用 目标构件类的对象实例的异步接口的方法;该调用进入目标构件类的对 象实例的夹壁墙,在目标构件类的对象实例的夹壁墙里将调用信息打 包;向目标构件类的对象实例投递一个调用该异步接口方法的异步调用 消息,然后直接返回调用方;及根据所述异步调用消息执行该异步接口 方法。
本发明可以简化实现异步调用的代码,减少由程序员实现多线程可 能带来隐患的风险。对于构件使用者,不必自己创建线程、管理线程, 直接调用构件的异步接口就可以实现类似的操作。对于构件实现者,也 同样不必管理线程,只要声明异步接口,该接口的实现就会自动以异步 方式被调用。本发明简便可靠地实现了基于构件接口的异步调用,给计 算机构件化软件系统的进一步发展奠定了基础。
附图说明
图1为本发明基于构件接口的异步调用方法的流程图。
图2为消息队列的循环处理流程。
图3为基于构件接口的异步调用的执行情况示意图。
具体实施方式
本发明利用构件化软件系统的回调机制和构件所特有的夹壁墙技术 实现基于构件接口的异步调用。
在构件化软件系统中,已经有了成熟的回调模型,这个模型就是: A向B投递一个调用消息,投递结束即返回;B的循环处理线程发现这 个调用消息后会执行相应的操作。
此外,在构件化软件系统中,每个构件都具有夹壁墙,所有对构件 方法的调用都会先进入夹壁墙。
当同步调用某个方法时,通过调用栈传递调用信息,该方法执行完 成返回调用方。当异步调用某个方法时,会立即返回调用方,调用方也 有可能就此结束返回。如果调用方调用该方法时传递的参数位于调用方 的栈上,当调用方返回以后,调用方的栈会被释放,如果这时候所调用 的方法被执行,对所传递的参数的访问就会成为非法访问,所访问的参 数就会成为无效参数。
为了解决这个问题,在夹壁墙里将调用参数等调用信息打包起来, 并且保存在一块堆内存上。这样,调用方的调用参数已经被拷贝了一 份,即便调用方返回退出也不会影响所调用的方法的运行。
结合回调机制和夹壁墙技术,在本发明中,当调用目标构件异步接 口所实现的方法时,在目标构件的夹壁墙里将调用信息进行打包,利用 回调机制向目标构件投递一个异步调用消息,然后直接返回调用方,被 调用的异步接口所实现的方法将会在调用返回后的某个不能预期的时机 被执行,由此实现基于构件接口的异步调用。
参阅图1所示,是构件化软件系统中基于构件接口的异步调用方法 的流程图。该方法适用于能运行构件化软件系统的数据处理设备。所述 数据处理设备可以是手机、数码相机、个人数字助理(Personal Digital Assistant,PDA)等电子设备。在本实施例中,所述构件化软件系统是 嵌入式操作系统。
步骤S100,定义目标构件类、该目标构件类的异步接口及该异步 接口的方法。例如,定义目标构件类CFile,该目标构件类CFile的异 步接口IFile,该异步接口IFile的Write方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海科泰世纪科技有限公司,未经上海科泰世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810208052.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:书法的现代化练习法
- 下一篇:太阳能集热装置的远程监控系统