Corba和SOA是一样的吗?

10

最近我一直在研究SOA。CORBA不就是与SOA完全相同的东西吗?

7个回答

16

除了已经提到的事实,即SOA是一种架构,而CORBA是一种特定的实现。

CORBA并没有实现SOA

主要区别在于,CORBA是面向对象组件的,而SOA是面向服务的。

在我看来,主要的技术差异是,在SOA中你传递消息(或数据对象),而在CORBA中你可以传递通用对象(可以有方法)。因此,尽管你可以使用CORBA来实现SOA(通过限制自己使用部分功能),但标准的CORBA使用方式不是面向服务的。


说得非常好,我认为关键在于CORBA是面向组件而不是面向服务的,当然,CORBA是某种面向组件的远程架构的特定实现,而SOA本身并不是一种实现。 - Jaywalker
1
我曾犹豫不决,但提到CORBA是面向组件的技术,让我信服了。 - realnsleo
1
这必须是问题的最佳答案。 - CloudPotato

6
CORBA和SOA的区别在于,CORBA是一种具体的技术,而SOA是一种架构风格。

但是,CORBA背后是否也有整个哲学呢? - yazzapps.com
4
是的,指定一些没有人想要的服务,并使它们尽可能难以实现和使用。第二个目标是避免提供可用的参考实现,比如字符串等人们可能真正使用的东西。这是一位不满意的前CORBA程序员(再也不要用了)说的话。 - anon
1
@Neil,我喜欢你的评论 :) 我认为大多数SOA实现都很复杂,也许有一天会有易于使用的东西可用。 - yazzapps.com
1
@Zubair - 这被称为REST :-) - philsquared
Corba只是将不同服务绑定在一起的中间件之一。Web服务、消息队列是其他几种形式。 - Romain Hippeau

4

SOA作为一个概念已经存在多年,但是直到最近才被正式命名。有许多技术可以说是实现SOA的 - 完全或部分地。CORBA可以说是其中之一,尽管在创建CORBA时该术语并不存在。

CORBA确实实现了SOA表面积的很大一部分,但我不认为你可以说它完全实现了(无论这意味着什么)。SOA可能有点模糊。


Ophir Yoktan的答案更加精确。 - CloudPotato

4
尽管没有“官方”SOA的定义,但其其中一点是将各种服务解耦。这可能包括解耦服务中使用的实现(平台和技术)。例如,如果通过WebServices公开服务,则任何客户端,无论是java/python/.Net等,都可以使用该服务,但使用RPC /远程过程调用框架通常会将您绑定到特定平台/实现以调用该服务。
CORBA确实提供了一些SOA所承诺的内容,但最多只是SOA“意图成为”的一个子集。
然而,主要区别在于SOA是一个通用的架构概念,而CORBA是RPC /Remoting概念的技术实现。

3
并不完全是这样。SOA是一种架构风格,而CORBA则是一种特定的技术,可以用它来实现SOA。

1
CORBA和SOA都是架构。说CORBA是实现是错误的。它是一种架构,是用对象构建系统的愿景。SOA也是一种架构,是用服务构建系统的愿景。它们都是将系统组织为对象或服务集合的方法。CORBA和SOA都有特定的实现。
它们都是技术。它们都提供了结构化系统和管理复杂性的建议和指南。第三方开发了支持这些技术的工具。
Common ORB Architecture (CORBA)中的对象提供服务,因此可以将Service Oriented Architecture (SOA)和Common ORB Architecture之间进行翻译。它们不是同一件事,但可以想象使用其中任意一种来实现软件系统,从某种角度看,它们是等效的。
它们与面向对象编程、结构化编程或函数式编程等方式不同,尽管可以使用上述任何一种编程风格来实现某种功能。

1

它们本质上不同,因为一个依赖于技术(CORBA),而另一个则不依赖。

  • CORBA是由OMG(Object Management Group)开发的开放标准,用于使用ORB(对象请求代理)中间件,并且非常注重互操作性(软件平台、硬件平台和编程语言)。
  • SOA是一种软件设计风格,其中应用程序组件通过网络上的通信协议向其他组件提供服务。面向服务的架构的基本原则与供应商、产品和技术无关。

我和你一样也有同样的疑问,因为SOA的定义太广泛了,我可以看到CORBA的许多概念可以自然地映射到SOA的术语中。例如,在CORBA中,客户端(对象)通过网络上的通信协议要求服务器(也是对象)执行某些工作。此外,CORBA实现提供通用服务,如日志记录和事件支持。我认为this link总结了CORBA和SOA之间的关系:

过去,许多人接触到的第一个面向服务的架构是基于CORBA规范的对象请求代理(ORBs)。CORBA规范真正提高了人们对面向服务架构的认识。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接