文档库 最新最全的文档下载
当前位置:文档库 › WebService、COM+ DCOM、Corba是什么关系

WebService、COM+ DCOM、Corba是什么关系

WebService、COM+ DCOM、Corba是什么关系
WebService、COM+ DCOM、Corba是什么关系

WebService 与DCOM / Corba 是什么关系首先,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的作用是类似的,可以以一张表来说明:

名词解释:

MTS:Microsoft Transaction Server,即事务处理模型。是微软为其Windows NT操作系统推出的一个中间件产品,由于它具有强大的分布事务支持、安全管理、资源管理和多线程并发控制等特性,使其成为在Windows平台上开发大型数据库应用系统的首选产品。

MIDL:Microsoft Interface Definition Language,即接口定义语言。它是微软的一个产品,定义了客户程序与服务器程序之间的接口。MIDL编译器处理一个IDL文件和一个可选的应用程序配置文件(application configuration files , ACF )产生的输出文件集。该属性指定在IDL文件的接口属性列表决定是否编译器生成的RPC接口或自定义的OLE接口的源文件。

JNDI:Java Naming and Directory Interface,Java命名和目录接口。是一组在Java应用中访问命名和目录服务的API。命名服务将名称和对象联系起来,使得我们可以用名称访问对象。目录服务是一种命名服务,在这种服务里,对象不但有名称,还有属性。

UDDI:Universal Description, Discovery and Integration,可译为“通用描述、发现与集成服务”。是一种目录服务,企业可以使用它对Web services 进行注册和搜索。

网友观点:

1、他们是不同的技术,但都可以实现一些相同的功能,如远程调用。但是dcom和corba

使用的是二进制协议,和限定的操作系统,web service可以克服他们的缺点,在不同系统之间进行数据传输和调用。

2、虽然webservice比较简单,但是运行效率要低于corba,因为它要对信息进行封装。

3、都是提供分布式计算的平台。

DCOM因不能跨操作系统,所以没接触过。

CORBA是最早学习的,感觉复杂、繁琐,我花了3天做出第一个例子。没有太深入,不好评价。

WebService相对容易一些,基于Axis学习开发,花了一天做出第一个例子,然而测试时发现如果服务器和客户端开发语言不同,则调用失败。后来就使用GSOAP了,感觉还行,除了代码生成得比较难看以外。在做过的一个大型项目中表现不错。

ICE是我最近2天才开始学习的,昨天看完马维达译的1.3中文文档第三章,今天早晨花了2小时就测试成功了,显然比CORBA、WebService都要易于使用,跨平台跨语言测试都通过了,测试了Java和C++2种,PHP和C#没有测试,主要是PHP我平时用不到,C#又是基于.net平台。ICE现在中文资料除了马维达这本1.3中文文档以外,还没看到其它资料,和其它平台对比的效率测试也没看到。不过在我看来,ICE是最易于使用、跨平台跨语言做得最好的,以后项目中可能会放弃WebService改用ICE了。

4、DCOM似乎已是昨日黄花了,而且它是典型的修修补补起来的东西。除了维护老产品之外,

没有多少价值。

CORBA虽然复杂,但在电信、金融、制造等领域已经有很多应用,而且它一直在发展之中。最近在加拿大蒙特利尔举办的会议上,还有人提出要建立新的C++语言映射(这其中似乎有Bjarne的影响)。让全世界都用ICE完全不可能,但让OMG的500家大型IT 企业用CORBA,根据同样的IDL写软件,却是可能的。

ICE由于是一个公司做出来的,没有委员会产品那么多无用的复杂性,如果只限于自己公司的产品使用,挺好的。要做一个跨企业的协议,现在还不太现实。不过在License 上也许得注意点儿(猜的,没看过它的License)。

Webservice刚接触,还不敢乱说。看到一些好处,比如能够很好地处理版本迁移、穿越防火墙。

相关文档