`

SOAP与CORBA,COM/DCOM的区别(转)

阅读更多
  1. CORBA(Common Object Request Broker Architecture)公共对象请求代理体系结构是由OMG组织制订的一种标准的面向对象应用程序体系规范。由对象请求代理ORB、对象服务、公共设 施、域接口和应用接口这几个部分组成。其核心部分是对象请求代理ORB(Object Request Broker)。ORB提供了一种机制,通过这种机制,对象可以透明的发出请求和接收响应。分布的、可以互操作的对象可以利用ORB构造可以互操作的应 用。ORB可看作是在对象之间建立客户/服务关系的一种中间件。基于ORB,客户可以透明的调用服务对象提供的方法,该服务对象可以与客户运行在同一台机 器上,也可以运行在其他机器上通过网络与客户进行交互。ORB截取客户发送的请求,并负责在该软件总线上找到实现该请求的服务对象,然后完成参数、方法调 用,并返回最终结果。CORBA 1.1 由对象管理组织在 1991 年发布。定义了接口定义语言(IDL)和应用编程接口(API),从而通过实现对象请求代理(ORB)来激活客户/服务器的交互。CORBA 2.0 于 1994 年的 12 月发布定义了如何跨越不同的 ORB 提供者而进行通讯。
  2. COM/DCOM(Component Object Model / Distributed Component Object Model )是微软公司提出的分布式组件对象模型标准,支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。DCOM基于COM的应用程序、组 件、工具等的基础之上,处理网络协议的低层次的细节问题,而不必关心太多的网络协议细节,从而使用户能够集中精力解决用户所要求的问题。DCOM位于应用 程序的组件之间,将组件以不可见的方式胶合在一起组成具有完整功能的应用程序。
  3. SOAP 与CORBA,DCOM/COM的比较。

    3.1 首先指出的是SOAP不会取代CORBA,COM/DCOM,三者的概念有所区别。COM/DCOM是个组件模型标准,CORBA是分布式应用的服务标 准。CORBA和DCOM为分布式应用程序建立服务,服务对象来执行客户端调用的服务。而SOAP是基于XML和HTTP的分布式对象的通信协议,是 COM/DCOM和CORBA对象进行通讯的协议。实际上,利用SOAP的互操作性和CORBA强大的执行能力,两者可以很好的结合在一起。 OMG (Object Management Group responsible for the CORBA specification)正在关注这方面的发展。

    3.2. CORBA应用程序和DCOM应用程序不能实现互操作,两者不能在一起协作。因为在ORPC(Object RPC)协议中,用ObjRef代表了一个正在运行对象的引用;在CORBA/IIOP(Internet Inter-Orb Protocol)中,用交换可互操作对象引用IOR(Interoperable Object Reference)代表一个服务器的对象引用。不幸的是,IOR 与 ObjRef不能够关联起来。然而,使用SOAP可以实现在垂直应用层面上CORBA ,DCOM技术的水平整合,能够更好的集成CORBA,DCOM为一个整体。

    3.3 SOAP并没有定义信息的语义,服务质量,基于INTERNET的事务处理。而是采用 XML 进行消息编码,正确的处理需要服务器和客户端本身来执行,理解和执行彼此使用的信息格式(ONE-TO- ONE,REQUEST/REPLY,BROADCAST,ETC),应用程序本身在语义解析中扮演着十分重要的角色。而CORBA,DCOM表示了传送 信息的语义,对参数和返回值使用二进制编码。可对诸如参数名称或类型的任何元信息都不编码,但使中介很难处理消息。又因为每个系统使用不同的二进制编码, 系统间的互操作的很难实现。

    3.4 尽管CORBA可以在不同的平台上执行,DCOM可以在微软的各种平台上运行,但是基于CORBA和DCOM的解决方案必须依赖于单一的应用程序。比如 说,假如运行的是DCOM服务器程序,所有的分布式的客户端不得不运行于微软的操作平台上。CORBA 虽然可以运行于不同的平台,但CORBA的互操作性并没有在更高层的服务上进行扩展,如安全性和事务处理,在这种情况下,许多提供的服务没有得到很好的优 化。DCOM和CORBA适合于服务器--服务器间的通讯,但是对于客户端--服务器的通讯十分脆弱,尤其当客户程序分布在INTERNET上更是如此。

    3.5 SOAP不象DCOM一样试图定义分布式系统的所有元素,SOAP没有提供分布式类库,类型安全检查,版本控制等等,SOAP比它处于一个更低的层次,有 点类似于IIOP在CORBA的作用,DCOM却提供了一些额外的协议功能,是IIOP 或者SOAP所不具备的。然而,许多. DCOM的额外功能只有在服务器――服务器间通信时才会用到,对于客户端――服务器之间的通信则是多余的。

  4. 解读COM与CORBA(下)
    技术比较
    (作者:施晓军编译 2001年04月13日 13:53)

      CORBA依赖于IIOP进行远程对象通信,DCOM则依赖于对象远程处理过程调用(ORPC)以达到相同的目的。 CORBA体系结构是基于对象请求代理的;DCOM则以COM作为它的基础,事务处理则依赖于MTS或MSMQ。CORBA规范不是针对特定厂商的,因此 CORBA应用能运行于不同的硬件平台上。DCOM则是由微软制定、拥有的体系结构,并且只能运行于微软操作系统支持的硬件平台上。CORBA支持多继 承,DCOM仅支持单继承。DCOM每两分钟使用ping的方法检查客户是否依旧处于激活状态,如果客户超过六分钟时依旧未作响应,DCOM则会取消该客 户请求。相反地,CORBA不强迫客户保持连接状态,并且不使用保持激活状态的通信方法。由于DCOM使用保持激活状态的通信方式,因此能够决定何时取消 请求,从而使用内建的垃圾收集功能; CORBA则不提供内建的垃圾收集方法。

    使用方面
      ●COM/DCOM

      COM/DCOM是微软拥有的体系结构,仅被WINDOWS家族的操作系统支持。不管怎样,有第三方厂商提供了在UNIX系统上的DCOM支持。DCOM 基于自然的二进制格式,因此执行较快,但是不适用于其它平台。COM/DCOM组件能够访问WINDOWS API,因此能潜在地损坏或危及用户的计算环境。DCOM为分布式对象提供基本的支持,但不支持实时处理,也不适于在需高可靠性的情形下使用。虽然COM 已经出现了很长时间,但是,对于它的扩展DCOM,在大量的分布式应用中的前景,还不是很明朗的。

      ●CORBA

      CORBA仅仅是一个规范,而不是一个实现,因此,用户很难确定所购买的产品是否完全兼容CORBA。并且没有已定义的测试套件,来测试是否兼容 CORBA。对于客户来说,需要有行家对厂家的产品进行评价。CORBA是一个复杂的规范,需要有相当多的专家来开发分布式对象和应用。从另一方面来讲, 使用CORBA,能使开发分布式应用变得容易。当然,需要很多对分布式系统设计,分布式、多线程程序设计和调试,内联网,和面向对象分析、设计精通的专 家。

    使用比较
      CORBA提供跨平台支持,COM/DCOM则局限于微软操作系统。CORBA 和COM都支持用不同的程序设计语言书写的组件。CORBA对象基于1991年颁布的一个标准规范;COM规范和代码则是处于一个不停地变化的过程中,它 的文档也只是一个草案。COM最初被设计运行于单一的机器上,而不是大规模的网络上。不管怎样,CORBA从一开始就是被设计用于大规模的分布式应用中 的。

      提供CORBA产品的开发商很多,而COM/DCOM只能从微软处获得。CORBA规范是由OMG定义的,它的成员很多,能够比较好地反映行业的需求,而COM/DCOM是微软所拥有的,它的规范是由微软说了算的。

    结语
       对于分布式计算,COM/DCOM和CORBA都具有可扩展性和健壮性的结构,并且具有各自不同的优势。不管怎样,鉴于它们内在的区别,它们分别适用于 具有不同规模和类型的应用中。如果系统主要运行微软操作系统,并且其地域分布上不是很广的话,那么,COM/DCOM或许是比较合适的。CORBA则适用 于异构的、大规模的分布式系统。两种技术体系结构有其相同点和不同点,因此,在挑选产品时,必须作一番考虑。当然,许多开发商为CORBA应用和COM交 互提供了许多解决方案。看上去,COM/DCOM和CORBA将会继续强有力地竞争下去,并且会长久地并存。

分享到:
评论

相关推荐

    SOAP_CORBA及DCOM的分析与比较

    SOAP_CORBA及DCOM的分析与比较

    SOAP、CORBA及DCOM的分析与比较

    ### SOAP、CORBA及DCOM的分析与比较 #### 1. 引言 随着信息技术的飞速发展,跨平台、跨语言的分布式系统成为现代企业和组织不可或缺的一部分。分布式系统能够在多个不同的计算环境中协调工作,有效地提高系统的...

    Java中的SOAP技术--(2)

    SOAP与CORBA和COM/DCOM的区别在于: - **CORBA**:是一种全面的面向对象中间件,提供了一套完整的标准,包括ORB(对象请求代理)、对象服务、公共设施和应用接口。它强调的是对象间的交互,适合大型分布式系统。而...

    浅谈SOAP.pdf

    #### 三、SOAP与CORBA、COM/DCOM的区别? - **CORBA(Common Object Request Broker Architecture)** 是一种面向对象的服务模型,旨在解决分布式对象的互操作性问题。它提供了更为复杂的架构和特性,但同时也增加...

    浅谈SOAP浅谈SOAP

    - SOAP与COM/DCOM的主要区别在于SOAP是基于文本的协议,更易于跨平台通信,而COM/DCOM更多地依赖于二进制通信,更适合于Windows内部应用。 #### 六、结论 综上所述,SOAP作为一种基于XML的协议,为解决异构系统间...

    三种分布式对象技术分析.pdf

    与CORBA相比,COM/DCOM更倾向于Windows生态系统,它利用Windows操作系统提供的服务,如注册表和命名管道进行组件的管理和通信。DCOM提供了类似于CORBA的接口概念,但通常更加简化,适合于Windows平台上的快速开发。 ...

    soap的概念.doc

    SOAP与CORBA(Common Object Request Broker Architecture)和COM/DCOM(Component Object Model / Distributed Component Object Model)的区别在于: - **CORBA** 是一种面向对象的应用程序体系规范,由对象请求...

    浅谈soap协议

    SOAP与CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)和DCOM/COM(Distributed Component Object Model/Component Object Model,分布式组件对象模型/组件对象模型)都是用于实现...

    soap协议入门,简单细致

    由于传统的RPC方法在跨平台和跨网络环境中的局限性,如DCOM和CORBA等技术在HTTP上的应用存在兼容性问题,且可能被防火墙和代理服务器阻拦,因此SOAP应运而生。SOAP通过HTTP提供了一种标准、安全的通信机制,允许不同...

    SOAP 的概念以及簡單應用

    #### 三、SOAP 与 CORBA、DCOM 的区别 ##### CORBA(Common Object Request Broker Architecture) - 由 OMG 组织制定的标准,面向对象的应用程序体系规范。 - 核心组件是 ORB(Object Request Broker),它提供了...

    AJAX高级程序设计

    与传统的分布式计算模型(如CORBA、DCOM、RMI)不同,后者主要通过网络执行远程方法调用;Web服务则侧重于数据的传输,而非直接调用远程方法。 Web服务的一个重要目标是为各种应用程序提供按需使用的软件组件。无论...

    简单对象访问协议(SOAP)初级指南

    SOAP的这一特性吸引了众多软件厂商,如CORBA和COM的供应商承诺支持SOAP协议。同时,DevelopMentor等公司开发了参考实现,使得Java和Perl等语言的开发者能够在任何平台上使用SOAP。此外,SOAP还促进了Web服务的发展,...

    SOAP 入门教程

    传统的RPC技术如DCOM和CORBA在HTTP上可能存在兼容性和安全问题,而SOAP通过HTTP提供了标准的通信方式,解决了这些问题。SOAP允许开发者构建分布式应用,将客户端和服务器端的应用程序连接起来,实现跨网络的交互。 ...

    net远程调用.doc

    随着技术的发展,出现了多种框架实现远程调用,其中包括DCE/RPC、CORBA、DCOM、MTS/COM+、Java RMI、Java EJB、Web Services/SOAP/XML-RPC以及.NET Remoting。本文将深入探讨.NET Remoting的原理与实现,以及其与...

    SOAPWeb Service 开发

    - 随着互联网的普及和技术进步,传统的分布式计算模型如CORBA、DCOM等面临着跨平台性差、配置复杂等问题。 - Web Service作为一种新兴的技术,旨在解决这些问题,通过HTTP协议传输SOAP消息,实现了异构系统的互...

    基于XML的SOAP_WebService分布式系统架构的研究和实现

    实际的WebService可以是在不同平台上编写的对象或应用程序,如Windows平台上的MTS/COM+或.NET对象,也可以是Linux/UNIX平台上的CORBA或EJB对象。这种架构支持异构系统间的通信,提高了系统的集成能力和互操作性。 #...

    简单对象访问协议_SOAP_初级指南.pdf

    #### 五、SOAP与传统RPC协议的对比 - **跨平台性**:SOAP利用HTTP和XML的特性,极大地增强了跨平台的能力。相比之下,如DCOM和CORBA等协议可能受限于特定的操作系统或硬件架构。 - **互操作性**:由于SOAP基于开放...

Global site tag (gtag.js) - Google Analytics