Corba和SOA一样吗?

时间:2010-03-17 10:53:37

标签: soa corba

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

7 个答案:

答案 0 :(得分:14)

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

CORBA没有实现SOA

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

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

答案 1 :(得分:6)

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

答案 2 :(得分:5)

SOA作为一个概念已存在多年,但最近才被命名为。可以说有许多技术可以完全实现SOA - 或者完全或者它的各个方面。 CORBA可以说是其中之一,虽然CORBA创建时这个术语并不存在。

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

答案 3 :(得分:4)

虽然没有SOA的“官方”定义,但其中的一部分是将各种服务相互分离。这可能包括解耦服务中使用的实现(平台和技术)。作为一个例子,如果一个人通过WebServices公开一个服务,任何客户端,无论是java / python / .Net等......都可以使用这个服务 - 但是利用RPC /远程过程调用框架通常会将你绑定到一个特定的平台/实现中。为了打电话给服务。

Corba确实提供了SOA承诺的一些内容,但充其量只是SOA“意味着”的一部分。

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

答案 4 :(得分:3)

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

答案 5 :(得分:1)

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

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

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

与面向对象编程和结构化编程或函数编程不同,它们不是同一个东西,尽管可以使用上述任何一种编程风格来实现某种功能。

答案 6 :(得分:0)

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

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

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

  

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