Corba 与 SOA 相同吗?
我最近对 SOA 进行了很多研究。 CORBA 和 SOA 不是一回事吗?
I have been looking a lot at SOA recently. Isn't CORBA exactly the same thing as SOA?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
除了已经提到的事实之外,SOA 是一种架构,而 CORBA 是一种具体的实现。
CORBA 没有实现 SOA,
主要区别在于 CORBA 是面向对象或组件的,而 SOA 是面向服务的
主要技术区别(在我的观点是,在 SOA 中您可以传递消息(或数据对象),而在 CORBA 中您可以传递通用对象(可以有方法)
因此,尽管您可以使用 CORBA 实现 SOA(通过将您自己限制为功能的子集),但使用 CORBA 的标准方法并不是面向服务的。
In addition to the fact already mentioned, that SOA is an architecture, and CORBA a specific implementation.
CORBA doesn't implement SOA
the main difference is that CORBA is Object Oriented or Component Oriented and SOA is Service Oriented
The main technical difference (in my opinion) is that in SOA you pass messages (or data objects) and in CORBA you can pass generic objects (which can have methods)
so although you can implement SOA using CORBA (by limiting you self to a subset of the functionality), the standard way of using CORBA isn't service oriented.
CORBA 和 SOA 之间的区别在于 CORBA 是一种特定的技术,而 SOA 是一种体系结构风格。
The difference between CORBA and SOA is that CORBA is a specific technology, whereas SOA is a style of architecture.
SOA 作为一个概念已经存在多年,但直到最近才被如此命名。可以说有很多技术可以实现 SOA——无论是完全实现还是部分实现。 CORBA 可以说是其中之一,尽管创建 CORBA 时还没有这个术语。
CORBA 当然实现了 SOA 表面区域的很大一部分,但我认为您不能说它完全做到了这一点(无论这意味着什么)。 SOA 可能有点模糊。
SOA as a concept has been around for years, but was only more recently named as such. There are many technologies that can be said to implement SOA - either completely, or aspects of it. CORBA could be said to be one of them, although the term wasn't around when CORBA was created.
CORBA certainly implements are large part of the SOA surface area, but I don't think you could say it does so completely (whatever that means). SOA can be a bit vague.
虽然 SOA 没有“官方”定义,但它的部分目的是使各种服务彼此解耦。这包括可能解耦服务中使用的实现(平台和技术)。举个例子,如果通过 WebServices 公开一项服务,任何客户端(无论是 java/python/.Net 等)都可以使用该服务 - 但利用 RPC/远程过程调用框架通常会将您绑定到特定的平台/实现中命令调用该服务。
Corba 确实提供了 SOA 所承诺的一些功能,但充其量只是 SOA 的“本意”的一个子集。
不过,主要区别在于 SOA 是一个通用架构概念,而 Corba 是 RPC/Remoting 概念的技术实现
While there is no "official" definition of SOA, part of the point of it is to decouple the various services from each other. This includes possibly decoupling the implementation (platform and technology) used in the service. As an example if one exposes a service via WebServices, any client be it java/python/.Net etc... could consume this service - but utilizing a RPC/remote procedure call framework will often tie you into a particular platform/implementation in order to call the service.
Corba does offer some of what SOA promises, but is at best a subset of what SOA is "meant to be"
The main difference though is that SOA is a general architectural concept, while Corba is a technology implementation of the RPC/Remoting concept
并不真地。 SOA 是一种架构风格,而 CORBA 是一种可以用来实现 SOA 的特定技术。
Not really. SOA is an architectural style while CORBA is a particular technology with which you can implement SOA.
CORBA 和 SOA 都是架构。说 CORBA 是一种实现是错误的。它不是。它是一种架构,是用对象构建系统的愿景。 SOA 也是一种架构,一种用服务构建系统的愿景。它们都是将系统组织为对象或服务集合的方法。 CORBA 和 SOA 都有特定的实现。
它们都是技术。它们都为您提供有关构建系统和管理复杂性的收据和建议。第三方开发了一些工具来支持这两种技术。
公共 ORB 体系结构 (CORBA) 中的对象提供服务,因此您可以考虑面向服务的体系结构 (SOA) 和公共 ORB 体系结构之间的转换。它们不是一回事,但是我们可以想象用其中之一来实现一个软件系统,从某种角度来看,它们是等效的。
它们不是同一件事,就像面向对象编程和结构化编程或函数式编程不是同一件事一样,尽管人们可以使用上述任何一种编程风格来实现某种功能。
CORBA and SOA are both architectures. It is wrong to say CORBA it is an implementation. It is not. It is an architecture, a vision of systems build with objects. SOA is also an architecture, a vision of systems build with services. They both are ways to organize your systems as a collection of either objects or services. There are specific implementations for CORBA as well as for SOA.
They are both technologies. They both give you receipts and recommendations for structuring your systems and for managing complexity. There are tools developed by third parties to support these technologies for both of them.
The objects in a Common ORB Architecture (CORBA) provide services so you can think of a translation between Service Oriented Architecture (SOA) and Common ORB Architecture. They are not the same thing, but one can imagine implementing a software system with either the one or the other, making them, from a certain point of view, equivalent.
They are not the same thing in the same way as Object Oriented Programming and Structured Programming or Functional Programming are not the same thing, although one could use any of the above mentioned programming styles to implement a certain functionality.
它们本质上是不同的,因为一个依赖于技术 (CORBA),而另一个则不依赖。
我和你有同样的疑问,因为 SOA 的定义太宽泛,而且我可以看到 CORBA 的许多概念可以自然地映射到 SOA 的术语。例如,在 CORBA 中,客户端(对象)请求服务器(也是对象)通过网络上的通信协议完成某些工作。此外,CORBA 实现还提供日志记录和事件支持等通用服务。我认为这个链接总结了CORBA和SOA之间的关系:
They are inherently different because one depends on the technology (CORBA) and the other doesn't.
I had the same doubt as you because the definition of SOA is too broad and I can see many concepts of CORBA can be mapped naturaly to SOA's terminology. For example in CORBA, clients (objects) ask to servers (also objects) to do some work through a communication protocol over a network. Moreover CORBA implementations provide general services like logging and event support. I think this link summarizes the relation between CORBA and SOA: