首页  编辑  

COM DCOM亲密接触

Tags: /超级猛料/Friends.网友专栏/ihihonline(小小)/   Date Created:

COM DCOM 亲密接触

原创 (小小->爱被下载中……)

COM/DCOM的前身是OLE(Object Linking and Embedding,对像连接和嵌入)是从MS的Windows3.1操作系统中发展起来的,而DCOM正真的应用是在WinNT4.0时才发挥他的优势的,一般而言(本来就是的)DCOM是COM的扩展,COM是对于单机内(物理单机)的一种应用程序互通的技术,利用它,可以很好的实现应用程序的通信,可以是线程内的通信,也可以是进程通信,如果理解它们?

  客户和服务器在相同的内存处理进程中运行,并且通过使用功能调用的方法彼此通信。这种形式就是:在服务器中处理(In-Process Server);一般而言是用可以用DLL作为服务器程序的;

  同时,也充许是进程内部进行通信,也就是客户端可以作用内部进程通信的方法访问服务器,而服务器可以是不同进程中运行(但,它们是在同一物理机中),这种通信方式也叫本地对像代理(Local Object Proxy);

如果此时,我们还想将COM的应用扩展开,就是网络之间的通信,这时就出现了DCOM,所以说DCOM是将COM的应用扩展到网络中,通过DCOM访问就属于远程代理对像(Remote Proxy Object)了;客户和服务器的通信合用了分布式计算环境RPC(做过分布式程序的朋友应该对RPC都比较熟悉吧,更明白的说,RPC = 远程过程调用);更精确的说,COM由两个扩展:MTS and MSMQ,他们都是通过DCOM提供的,以后会慢慢和大家交流这些的;

我们再来说一说它们之间到底有什么更密切的关系吧;

DCOM是安全的,可以这样说,之所以它比较安全就因为他是COM的扩展,继承了COM安全性这一点;

DCOM是协议无关的,而它之所以是与协议无关的,也是来源于COM,因为COM本来就是一个协议无关的组件对像模型;

DCOM是与语言无关的,因为COM就是与语言无关的,所以,DCOM或是COM组件才可以用到Delphi/VC/Java/VB……各种语言中,这也为他的进一步流通打下了基础;

………

它们之间的关系有很多,很多;

让我们用一条线串起来的话:

ActiveX - OLE - COM - DCOM;它们及是其它的基础,也是基它的增强,说一个很简单的例子,ActiveX现在用的如何?的确,它没有办法和Java组件抗衡,但是,它应用的特别的广泛这是无可置疑的,为什么?说白了,就是因为DCOM组件提供了网络连接,而ActiveX又是DCOM的一种基础,当然,他也随着DCOM改进过,所以它才可以很快的应用起来;

但是它们也是有区别的,比如COM服务器端可以是应用程序Exe文件,也可以是DLL文件,但是DCOM不允许为DLL,原因很简单,就是因为DCOM的客户端不可能保证每个进程内都有一个DLL文件的副本存在,当然,DCOM在同一机器里也可以进行通信,而且速度方面肯定很快;但它的速度如果和COM比起来,慢的可怜,应该是万分之一吧;

好了,睡觉,睡觉,不说了,有时间再说吧;