10

我最近一直在关注 SOA。CORBA 与 SOA 不完全一样吗?

4

7 回答 7

15

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

CORBA 没有实现 SOA

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

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

于 2012-07-20T07:24:15.480 回答
6

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

于 2010-03-17T10:56:05.060 回答
4

SOA 作为一个概念已经存在多年,但最近才被这样命名。可以说有许多技术可以实现 SOA——要么完全实现,要么部分实现。CORBA 可以说是其中之一,尽管在创建 CORBA 时该术语还不存在。

CORBA 的实现当然是 SOA 表面积的很大一部分,但我认为您不能说它完全做到了(不管那是什么意思)。SOA 可能有点模糊。

于 2010-03-17T11:00:57.797 回答
4

虽然 SOA 没有“官方”定义,但它的部分意义在于将各种服务彼此分离。这包括可能解耦服务中使用的实现(平台和技术)。例如,如果通过 WebServices 公开服务,则任何客户端(无论是 java/python/.Net 等)都可以使用该服务 - 但使用 RPC/远程过程调用框架通常会将您绑定到特定平台/实现中命令调用服务。

Corba 确实提供了一些 SOA 的承诺,但充其量只是 SOA 的“应有之物”的一个子集

主要区别在于 SOA 是一个通用架构概念,而 Corba 是 RPC/Remoting 概念的技术实现

于 2010-03-17T11:06:28.913 回答
3

并不真地。SOA 是一种架构风格,而 CORBA 是一种可以用来实现 SOA 的特殊技术。

于 2010-07-05T17:19:07.980 回答
1

CORBA 和 SOA 都是架构。说 CORBA 是一种实现是错误的。它不是。它是一种架构,一种用对象构建的系统的愿景。SOA 也是一种架构,一种使用服务构建系统的愿景。它们都是将系统组织为对象或服务的集合的方法。CORBA 和 SOA 都有特定的实现。

它们都是技术。它们都为您提供有关构建系统和管理复杂性的收据和建议。第三方开发了一些工具来支持这两种技术。

通用 ORB 体系结构 (CORBA) 中的对象提供服务,因此您可以考虑在面向服务的体系结构 (SOA) 和通用 ORB 体系结构之间进行转换。它们不是一回事,但可以想象用一个或另一个来实现一个软件系统,从某种角度来看,它们是等效的。

它们不是一回事,因为面向对象编程和结构化编程或函数式编程不是一回事,尽管人们可以使用上述任何一种编程风格来实现某种功能。

于 2017-07-24T10:49:14.303 回答
0

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

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

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

过去,许多人第一个面向服务的架构是使用基于 CORBA 规范的对象请求代理 (ORB)。CORBA 规范负责真正提高对面向服务架构的认识。

于 2017-10-07T16:15:40.327 回答