CORBA 和 DCOM 的区别
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由单个供应商提供 |