CORBA 和 DCOM 是处理分布式对象的两个中间件解决方案。这些解决方案提供了对分布式计算对象的更好控制,但问题是哪些技术将成为标准。下面来看看它们之间的详细比较。

1. 通用对象请求代理架构(CORBA):
Common Object Request Broker Architecture 是分布式对象的详细规范。它是由 OMG(对象管理组)引入的。该体系结构描述了一种具有名为 ORB(对象请求代理)的独立于平台的对象总线的语言。这些推动对象发出请求并透明地接收来自远程对象的响应。这也支持处理并发和处理异常。

2.分布式组件对象模型(DCOM):
分布式组件对象模型是由 Microsoft 及其 Window NT 作为捆绑包引入的。DCOM 与 Windows 中的 Internet Explorer 一起使用,它有望吸引开发人员使用他们拥有的东西而不是购买。DCOM 也是一种对象总线,有助于规范对象接口和调用支持分布式环境的动态对象导出。这支持共享代码并要求使用对象接口声明共享代码。

CORBA 和 DCOM 之间的区别:

比较项 CORBA DCOM
引入 由 Object Management Group DCOM由 Microsoft 引入
专注于 CORBA先关注企业,后关注桌面 DCOM关注先关注桌面,再关注企业
平台 CORBA在 Unix、Windows 和 Macintosh 上可用。 DCOM适用于 Windows NT 并完全支持所有版本的 Windows、Unix 和 Macintosh
对象实现 CORBA支持多种语言,只要 IDL 可以映射到这种语言 DCOM支持多种语言,如 Java、COBOL、C++ 和 Delphi,但规范是用二进制语言完成的
客户端/服务器接口 CORBA客户端接口是存根,服务器端是骨架 DCOM客户端接口是代理,服务器端是存根
使用对象激活和定位 Object Adapter 用于激活和 ORB 用于定位 DCOM使用 SCM(Service Control Manager)进行激活和定位
继承 当每个接口都继承自 CORBA 对象时,支持接口级别的继承。 对象实现 IUnknown 接口时支持多重继承。
垃圾回收 CORBA不提供通用分布式垃圾回收 DCOM通过 ping 线提供通用分布式垃圾回收。
异常处理 Exception对象处理 异常被抛出到 HRESULT 和其他异常必须实现 ISupportErrorInfo 接口
可用性 CORBA由多个供应商提供 DCOM由单个供应商提供