为什么 WebServices 比 CORBA 更具优势?
我怀疑一切都是从防火墙问题开始的:CORBA 请求是二进制的,正常工作需要多个随机端口,因此 CORBA 请求和响应在第一次出现时会被防火墙阻止。 HTTP 和 FTP 也使用虚拟端口,但这些协议的使用范围要广泛得多,因此显而易见的是必须配置防火墙以允许它们使用。因此,开发人员不能依赖在服务器和最终用户 PC 之间建立 CORBA 连接的可能性,而需要使用一些对防火墙更友好的方法。
与使用单独的网络、IP/MAC 过滤、专用防火墙等相比,防火墙在专用服务器之间的通信中出现的问题要小得多。我认为CORBA和JDBC一样,仍然用于服务器之间的数据通信。
CORBA 消息使用对齐字段(以匹配 C/C++ 数据结构中使用的边界对齐)也可能是一个因素。派生协议(如Google 协议缓冲区 http://code.google.com/p/protobuf/)不要仅仅为了对齐而发送不必要的字节。因此,它们的消息是紧凑的,并且当需要二进制消息和快速预生成的消息解析器时,这些协议可能是首选。对我来说,协议缓冲区在设计上与 CORBA 非常相似(类似 IDL 的编译器、存根和仆人、二进制消息、
语言互操作性)实际上远没有下降,在许多谷歌服务中都得到了内部使用。
虽然 CORBA 框架很复杂,但“正确完成”的 Web 服务堆栈也并非微不足道,因此我认为该标准的复杂性并不是一个问题。同样,虽然原始的 OMG 规范文档可能看起来很糟糕,但类似的 SOAP/WDSL 规范同样复杂,可能很难以易于阅读的方式记录标准。
CORBA 协议不是专有的,它们已在自由软件中多次实现,包括JacORB http://www.jacorb.org/并且GNU/类路径 http://www.docjar.org/docs/api/gnu/classpath/examples/overview-summary.html实现(好吧,现在 OpenJDK 也是免费的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)