【发布时间】:2011-01-28 12:42:22
【问题描述】:
我最近一直在关注 SOA。 CORBA 和 SOA 不完全一样吗?
【问题讨论】:
我最近一直在关注 SOA。 CORBA 和 SOA 不完全一样吗?
【问题讨论】:
除了已经提到的事实之外,SOA 是一种架构,而 CORBA 是一种特定的实现。
CORBA 没有实现 SOA
主要区别在于 CORBA 是 Object 面向或 Component 面向,而 SOA 是 Service 面向
主要的技术区别(在我看来)是在 SOA 中您传递消息(或数据对象),而在 CORBA 中您可以传递通用对象(可以有方法) 因此,尽管您可以使用 CORBA 实现 SOA(通过将您自己限制为功能的子集),但使用 CORBA 的标准方式并不是面向服务的。
【讨论】:
CORBA 和 SOA 的区别在于 CORBA 是一种特定的技术,而 SOA 是一种架构风格。
【讨论】:
SOA 作为一个概念已经存在多年,但最近才被这样命名。可以说有许多技术可以实现 SOA——要么完全实现,要么部分实现。 CORBA 可以说是其中之一,尽管在创建 CORBA 时还没有这个词。
CORBA 实现当然是 SOA 表面积的很大一部分,但我认为您不能说它完全如此(无论这意味着什么)。 SOA 可能有点模糊。
【讨论】:
虽然 SOA 没有“官方”定义,但它的部分意义在于将各种服务彼此分离。这包括可能解耦服务中使用的实现(平台和技术)。例如,如果通过 WebServices 公开服务,则任何客户端(无论是 java/python/.Net 等)都可以使用该服务 - 但使用 RPC/远程过程调用框架通常会将您绑定到特定平台/实现中为了调用服务。
Corba 确实提供了一些 SOA 的承诺,但充其量只是 SOA 的“应有之物”的一个子集
主要区别在于 SOA 是一个通用架构概念,而 Corba 是 RPC/Remoting 概念的技术实现
【讨论】:
不是真的。 SOA 是一种架构风格,而 CORBA 是一种可以用来实现 SOA 的特殊技术。
【讨论】:
CORBA 和 SOA 都是架构。说 CORBA 是一种实现是错误的。它不是。它是一种架构,一种用对象构建的系统的愿景。 SOA 也是一种架构,一种使用服务构建系统的愿景。它们都是将系统组织为对象或服务的集合的方法。 CORBA 和 SOA 都有特定的实现。
它们都是技术。它们都为您提供有关构建系统和管理复杂性的收据和建议。第三方开发了一些工具来支持这两种技术。
通用 ORB 体系结构 (CORBA) 中的对象提供服务,因此您可以考虑在面向服务的体系结构 (SOA) 和通用 ORB 体系结构之间进行转换。它们不是一回事,但可以想象用一个或另一个来实现一个软件系统,从某种角度来看,它们是等效的。
它们不是一回事,因为面向对象编程和结构化编程或函数式编程不是一回事,尽管人们可以使用上述任何一种编程风格来实现某种功能。
【讨论】:
它们本质上是不同的,因为一个依赖于技术 (CORBA),而另一个不依赖于技术。
我和你有同样的疑问,因为 SOA 的定义太宽泛了,我可以看到 CORBA 的许多概念可以自然地映射到 SOA 的术语。例如,在 CORBA 中,客户端(对象)通过网络上的通信协议请求服务器(也是对象)做一些工作。此外,CORBA 实现提供了一般服务,如日志记录和事件支持。我觉得this link总结了CORBA和SOA的关系:
过去,许多人使用的第一个面向服务的架构是使用基于 CORBA 规范的对象请求代理 (ORB)。 CORBA 规范负责真正提高对面向服务架构的认识。
【讨论】: