加入收藏 | 设为首页
广告位出租
中国论文网 >> 计算机 >> 计算机网络 >> COM服务器的伪异步技术及其实现

COM服务器的伪异步技术及其实现

发布时间:2006-09-15 00:26

摘要:COM组件技术在Windows操作系统中发挥了极其重要的作用,但标准COM组件技术在实时操作性上不尽完善。作为补充可以用COM连接点技术和多线程技术来构造一种伪异步技术, 完成某些前者不能完成的任务。本文详细描述了其实现原理,并根据技术细节提供了作者的解决方案。

关键词: COM;异步调用;连接点;接口;STA; MTA 

1.      COM异步技术

与普通同步执行的COM服务器不同,一个提供异步方法调用的COM服务器允许客户程序以一种非阻塞的方式来访问它,客户程序可以在等待调用返回的过程中继续进行别的工作,从而提高工作效率。 尤其随着Windows2000和COM+的发布,COM现在已经完全支持异步方法的调用了,通过IDL的定义,由MIDL编译器为接口的每个方法实现同步和异步两种独立的调用定义。但是COM提供的这种异步方法调用并非尽善尽美:

1)      这种技术发布较晚,只在WIN2000下被支持,所以用它开发的软件不能在Windows 95和Windows NT平台上运行。

2)      客户端使用不便,尽管COM通过MIDL生成的接口代理(proxy)与存根(stub)完成了大部分为支持异步方法调用所做的工作,客户端仍需要完成系列繁琐的细节工作。

3)      无论客户端还是服务器端都需要聚合由COM提供的对象,方法调用方式也有别于标准同步调用,因而不适用于标准ACTIVEX控件的编写,而ACTIVEX控件实质上是一种特殊的COM服务器。

由于上述一系列缺陷,往往需要一种替代解决办法,通常可以用一些基本的COM技术来构造一种伪异步技术。

2.      COM应用

这种伪异步技术是通过接口回调(interface callback)的方法来实现的,它基于两项关键的COM技术: 连接点(Connection point)技术和COM多线程(Multithread)技术。

连接点技术的基础是COM的出接口(outgoing interface)。出接口与普通的接口不一样,它由COM服务器端进行定义,但却由用户程序来实现(此实现对象被称为接收器sink),并把接口指针告诉给COM服务器。由于出接口是在服务器的类型库中定义, 所以COM服务器可以很方便的利用此接口指针与客户进行通讯。但直接使用出接口,客户程序和COM服务器都需要出接口有一定的了解,为此COM又提供了连接点技术(可连接对象),如图:
分页:[1] 2 3 4  下一页
版权申明:未经书面授权请勿转载本站信息!!作品版权归所属媒体与作者所有!!
发表评论: 匿名发表 用户名: 查看评论
您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
留言板管理人员有权保留或删除其管辖留言中的任意内容
本站提醒:不要进行人身攻击。谢谢配合。
Copyright © 2006 Chinalww.com. All rights reserved.中国论文网 版权所有