对于分布式计算项目从今天开始,与0遗产组成,是否有任何理由看到CORBA?

有帮助吗?

解决方案

在某些情况下,CORBA 仍然是一个不错的答案:

  • 当您在构建分布式 涉及多个编程的系统 语言和多种平台、
  • 当您的系统需要发送 复杂的数据结构...和 SOAP 并不能解决问题、
  • 当您的消息传递率很高时...HTTP 并不能解决问题,或者
  • 当您必须与现有的Corba客户端和/或服务互动时。

但话虽如此,还有一些替代方案可以完成 CORBA 的功能,而且效果更好......至少他们是这么声称的。例如 ZeroC的ICE

编辑 @fnieto 插话说(或暗示)ICE 不是免费的,但 TAO 是免费的。

这是不准确且具有误导性的.

  1. ICE 是 GPL 软件,可以免费下载。如果您/您的公司不准备接受 GPL 的条款,您只需支付 ICE 费用。(或者如果您需要支持。)
  2. 我用 ICE 作为例子 选择 到 CORBA。TAO 就是 CORBA。ICE 作者提供了一个可信的案例来解释为什么他们可以通过不遵守 CORBA 来获得更好的性能。
  3. TAO 绝不是唯一的免费/开源 CORBA 实现。我一下子就能想到另外三个。

ICE 的缺点是缺乏与 CORBA 中间件堆栈的互操作性,但根据我的经验,不同 CORBA 实现的互操作性也可能存在问题。(该领域的情况可能有所改善......但自 2002 年以来我就没有做过任何 CORBA 工作,所以我有点脱节。)

其他提示

从现有的答案,这个进入几乎是一个宗教话题。我们可以看一下CORBA一样半空/半满玻璃:一方面,CORBA是过时的传统冗余代码,而在另一方面,它是比较稳定的几个实现可用,“你知道的魔鬼”的<。 / p>

在我的工作中,我看到CORBA部署在嵌入式系统中,实时系统(CORBA具有RT扩展),和类似物。没有很多的替代AFAIK。

另一个CORBA的“优势”是几个高质量开源实现,例如,TAO,MICO,JacORB等的可用性,具有不同许可和支持模型。依然还有商业版本中提供。

关于“最” CORBA应用程序在Java中正在实施 - 这不是在我的经验的情况下。虽然语言映射CORBA到Java是有最好的(这可能不会多说了)一个,爪哇已经具有提供丰富超出了CORBA一个非常好的分布式计算模型,以及所有的Java应用程序使用,超过CORBA。绝大多数CORBA的发展我已经看到在C ++中(这也是最糟糕的语言映射)。

最后,CORBA提供在AMI的形式标准化异步客户端调用,但从来没有提供在服务器端异步处理。 TAO提供称为AMH非标准服务器端实现。

我相信 Corba 是由原始 EJB 规范复兴的,因为 EJB 可以通过一些配置轻松地转换为 CORBA beans。我怀疑大多数 Corba 部署实际上是用 Java 实现的。

至于受欢迎程度,我认为可能会有一些高端部署保留数十年,但对于大多数人来说 Corba 已经死了。

有很多非常性感的方法可以做同样的事情(除了上面提到的高端)。

  • 云计算(Web 服务、可扩展计算、松散耦合、队列)。
  • REST 服务(精简版 Web 服务)。
  • SOAP 服务(以 Web 服务为主)。
  • 网格/集群计算(队列、map-reduce 等)

但当然,您的里程可能会有所不同。

显然,这取决于您正在考虑的服务器类型和进程间通信。我认为 Stephen C 和 Chris Cleeland 很好地阐述了 Corba 的优点。

我们的应用程序使用 CORBA (Orbix) 已经超过 10 年了,所以现在已经是遗留的了。就其编写方式而言,CORBA 是一项很好的技术。但是,如果我重新开始,我可能不会使用 CORBA:

  • 它很复杂,而且我的组织中只有少数人非常了解它,因此所有难题都落在他们身上来解决。
  • 招聘员工可能是一个问题。CORBA 已经不再酷了,而且也不会变得更酷。尽管在爱尔兰,C++ 开发人员的实力也有点薄弱。
  • 大多数咨询公司希望使用 Web 服务进行集成工作,因此如果您希望第三方进行集成,您可能无论如何都需要 Web 服务 API。

现在,根据我想要的沟通类型,我可能会考虑:

  • 用于大量小消息的协议缓冲区(我知道我必须提供传输)
  • 用于减少大消息的 Web 服务

这更多地基于寻找员工和专业知识、第 3 方支持和利用开源库,然后是 CORBA 的技术质量,我每天都使用它,尽管有点麻烦,但它很强大。

CORBA肯定是老式,但它还提供了某些高级功能的开箱(见 在这里,).这种功能可以完成所有使用现代网络服务,但可能不会在标准方式,而不是没有很多额外的工作。

对于99%的分布式服务,不过,CORBA是不可取的。它是丑恶的,复杂和难以使用。

一两件事,没有人提到这里是开放的,开放标准。所有存在(除了SOAP)的技术,它是唯一真正的开放白皮书标准。该标准是不是任何一个组织的技术依赖。 RMI(太阳/ Oracle的),DCOM(现在defuncted - 微软)。这完全是卖方中性语言。 SOAP以外,没有其他的DOS(分布式对象技术)的技术是

我是一个软件架构师,并定期为使作为DOS应该在系统设计中使用的选择。如果不是因为宗教战争,每次我面对的,它要么是MOM或CORBA。

看它这样,如果它是死的,没有3 / 4G网络会工作。 3GPP是完全CORBA指定。欧洲卫星系统是指定的所有CORBA。问问你们自己,为什么呢?这是因为他们必须根据卖方及中性语言体系结构!

我会说,Web服务(包括REST)的成熟的现有水平,并在Java世界中的EJB(甚至可以使用在幕后CORBA)覆盖所需要的分布式企业系统。

我建议是,你应该仔细看看一个方面是,你在你的分布式系统需要异步交互的程度。我假定,一个非平凡比例的任何分布式系统都需要异步通信,并选择应支持非同步处理的基础设施,一般是指队列。

这不是在使用Web服务(或者实际上CORBA)的不一致,但它确实指向了你的产品的选择,可以在得到一些分布式处理会的最初体验激动人心会被忽视的一个方面。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top