?
首先,COM/DCOM是组件/分布式组件模型标准,CORBA是分布式应用的服务标准。
CORBA和DCOM为分布式应用程序建立服务和服务对象来执行客户端调用的服务。
而SOAP是基于XML和HTTP的分布式对象的通信协议,是COM/DCOM和CORBA对象进行通讯
的协议。实际上,利用SOAP的互操作性和CORBA强大的执行能力,两者可以很好的结合
在一起。
CORBA应用程序和DCOM应用程序不能实现互操作,两者不能在一起协作。因为在
ORPC(DCOM)协议中,用ObjRef代表了一个正在运行对象的引用;在CORBA/IIOP
中,用交换可互操作对象引用IOR代表一个服务器的对象引用。不幸的是,IOR 与
 ObjRef不能够关联起来。而使用SOAP可以实现在垂直应用层面上CORBA ,DCOM技
术的水平整合,能够更好的集成CORBA,DCOM为一个整体。
总的来说,SOAP比它处于一个更低的层次,有点类似于IIOP在CORBA和ORPC在DCOM
的作用,DCOM虽然提供了一些额外的协议功能,是IIOP 或者SOAP所不具备的。
然而,许多DCOM的额外功能只有在服务器――服务器间通信时才会用到,对于客户
端――服务器之间的通信则是多余的。

COM/DCOM属于组建模型的范畴,这与EJB和CORBA组件模型都是可以类比的;
不过CORBA本身有两层含义:既是一种组件模型标准,也是分布式应用服务标准,
是一个框架(如liu所言);与之可以类比的是Web Service infrastructure或
COM+(DCOM + MTS的扩展)。
而soap作为一种通信协议,与RMI、ORPC、IIOP的作用是类似的
可以以一张表来说明:

服务框架 基本组件模型 通信协议 接口描述 服务发现方法
--------------------------------------
CORBA CORBA组件 IIOP IDL CORBA发现服务
J2EE EJB RMI JAVA JNDI
COM+ COM/DCOM ORPC MIDL 注册表
Web Service框架 Web Service SOAP WSDL UDDI