最近我一直在关注SOA。 CORBA与SOA完全不一样吗?
答案 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)而另一个不依赖于技术。
我有同样的疑问,因为SOA的定义过于宽泛,我可以看到CORBA的许多概念可以自然地映射到SOA的术语。例如,在CORBA中,客户端(对象)要求服务器(也包括对象)通过网络上的通信协议进行一些工作。此外,CORBA实现提供了日志记录和事件支持等常规服务。我认为this link总结了CORBA和SOA之间的关系:
过去许多人的第一个面向服务的体系结构是使用基于CORBA规范的对象请求代理(ORB)。 CORBA规范负责真正提高面向服务架构的意识。