CORBA 与 Web 服务
为什么 WebServices 比 CORBA 更具优势?
Why WebServices took advantage over CORBA ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
为什么 WebServices 比 CORBA 更具优势?
Why WebServices took advantage over CORBA ?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(4)
我怀疑一切都是从防火墙问题开始的:CORBA 请求是二进制的,正常工作需要多个随机端口,因此 CORBA 请求和响应在第一次出现时会被防火墙阻止。 HTTP 和 FTP 也使用虚拟端口,但这些协议的使用范围要广泛得多,因此显而易见的是必须配置防火墙以允许它们使用。因此,开发人员不能依赖在服务器和最终用户 PC 之间建立 CORBA 连接的可能性,而需要使用一些对防火墙更友好的方法。
与使用单独的网络、IP/MAC 过滤、专用防火墙等相比,在专用服务器之间的通信中,防火墙的问题要小得多。我认为CORBA和JDBC一样,仍然用于服务器之间的数据通信。
CORBA 消息使用对齐字段(以匹配 C/C++ 数据结构中使用的边界对齐)也可能是一个因素。派生协议(例如 Google Protocol 缓冲区)不会仅仅为了对齐而发送不必要的字节。因此,它们的消息是紧凑的,并且当需要二进制消息和快速预生成的消息解析器时,这些协议可能是首选。对我来说,协议缓冲区在设计上与 CORBA 非常相似(类似 IDL 的编译器、存根和仆人、二进制消息、
语言互操作性)实际上远没有下降,在许多谷歌服务中都得到了内部使用。
虽然 CORBA 框架很复杂,但“正确完成”的 Web 服务堆栈也并非微不足道,因此我认为该标准的复杂性并不是一个问题。同样,虽然原始的 OMG 规范文档可能看起来很糟糕,但类似的 SOAP/WDSL 规范同样复杂,可能很难以易于阅读的方式记录标准。
CORBA 协议不是专有的,它们已在自由软件中多次实现,包括 JacORB 以及 GNU/Classpath 实现(好吧,现在 OpenJDK 也是免费的) 。
I suspect everything started from the firewall issues: CORBA requests are binary, multiple random ports are required for the normal work so CORBA requests and responses used to be blocked by firewalls when these first appeared. HTTP and FTP also use phantom ports, but these protocols were in much more wider use so immediately was obvious that firewalls must be configured to allow them. As a result, developers cannot rely on possibility to have CORBA connection between the server and end user PC and need to use some more firewall friendly approach.
Firewalls appear much less an issue in communication between the specialized servers than can use separate networks, IP/MAC filtering, specialized firewalls and the like. I think CORBA, same as JDBC, are still used to communicate data between servers.
It may also be a factor that CORBA messages use aligned fields (to match boundary alignments as they are used in C/C++ data structures). Derived protocols (like Google Protocol buffers) do not send unnecessary bytes just for alignment. Hence they messages are compact and these protocols may be preferred when binary messages and fast pre-generated message parsers are desired. Protocol buffers that appear for me rather similar to CORBA by design (IDL-like compiler, stubs and servants, binary messages,
language interoperability) is really far from decline, being internally used in many Google services.
While CORBA framework is complex, a "properly done" web service stack is also not exactly trivial, so I do not think that the complexity of the standard has been an issue. Similarly, while the original OMG specification documents may appear horrible, the similar SOAP/WDSL specifications are equally complex, probably it is difficult to document a standard in an easy to read way.
CORBA protocols are not proprietary, they have been implemented in Free software many times, including JacORB and also GNU/Classpath implementations (well, now OpenJDK is also Free).
虽然最初 CORBA 可能被认为提供了当今 Web 服务所提供的功能,但我认为我同意对于这个应用程序 CORBA 似乎已经“迷失”了。
然而,作为一种在多种平台(嵌入式)上受支持、在本机(C++)上运行良好且经过良好测试、并且可用于实现相当高性能的数据传输场景的 RPC 技术,我确实认为 CORBA 仍然有一个优势。重要的利基市场。它与“网络”无关。
直接提及这个问题:我喜欢认为 CORBA“迷失”了,因为与 WebServices 不同,它不是针对当今使用的 Web 的 - 例如:通过端口 80 隧道传输所有内容,在 60% 的网络中运行应用程序浏览器和 40% 在网络服务器等中。
While initially CORBA may have been thought to provide what web services provide today, I think I agree that it seems that for this application CORBA has "lost".
However, as an RPC technology that is supported on a wide array of platforms (embedded), works and is tested well from native (C++), and can be used to implement pretty performant data transfer scenarios, I do think that CORBA still has an important niche. It's just got nothing to to with "the web".
To directly refer to the question: I like to think that CORBA "lost" because, unlike WebServices, it is not targeted at The Web as it is used today -- As in: Tunneling everything through port 80, running apps 60% in the browser and 40% in a webserver, etc.
我认为说网络服务在市场上获胜并不夸张。 CORBA 充其量只是一个利基市场,而且还很小。
Web 服务:
CORBA:
I don't think it's a stretch to say that web services have won out in the marketplace. CORBA is a niche at best, and a small one at that.
Web services:
CORBA:
CORBA 失败主要是因为两件事:
1)缺乏良好的开发/测试工具或 IDE 插件
2)再次参见(1)
CORBA lost primarily because of two things:
1) lack of good development/testing tools or IDE-plugins
2) See (1) again