HTTP和IIOP谁的效率更高。

在做分布式系统时,常面临通信方式的选择。
我想知道这个两种协议的效率问题。
大家从本地和远程分别讨论下,关键是说明原因。

好像是不同层面的东西,后者不能排斥前者。
Internet Inter-ORB Protocol(因特网内部对象请求代理协议),用于Java中,使得Web应用可以通过CORBA架构和其它应用实现互操作。

效率最高是RMI IIOP,但是不能穿透防火墙,如果你是在不同地理位置机房就无法做分布式。

传统的CORBA架构,用ORB协议访问,底层是通过Sockte的,Banq说得对,不能通过防火墙。
我理解,IIOP就是Web化的ORB协议。它的底层是通过HTTP传输的,可以穿透防火墙。但是,协议栈上多了一层,效率自然低。

按楼上的推理,IIOP的效率还比HTTP差,这明显不对,IIOP的效率应该比HTTP快很多。另外,楼上怎么说IIOP的底层是HTTP。

RMI不是不能穿透防火墙,而是穿越防火墙不方便。
RMI穿越防火墙不方便主要是因为除了RMI服务注册的端口(默认1099)外,与RMI的通讯还需要另外的端口来传送数据,而另外的端口是随机分配的,所以要想RMI的客户能通过防火墙来与RMI服务通讯,则需要能让随机分配的端口固定下来。

按我的理解,如果是本地,也就是客户机和服务器位于同一台服务器,则IIOP效率高,如果不是本地,也就是客户机和服务器不是位于同一台服务器,可以在同一局域网的不同机器,也可以是互联网的不同机器(前提是IIOP可以穿透FIREWALL)。那么HTTP的效率高,原因好象IIOP要饶过防火墙。 不知道我的理解是否正确。

我也不熟悉它的协议栈。我贴一段,你看看是不是这样:

IIOP ,它是一个用于CORBA 2.0及兼容平台上的协议。这个协议的最初阶段是要建立以下几个组件部分:一个IIOP到HTTP的网关,使用这个网关可以让CORBA客户访问WWW资源;一个HTTP到IIOP的网关,通过这个网关可以访问CORBA资源;一个为IIOP和HTTP提供资源的服务器,一个能够将IIOP作为可识别协议的浏览器。

其实这个问题根本不需要这样来考虑。
从效率方面,HTTP必然是最慢的,好处是一般来说可以跨越防火墙(通常企业开启80端口访问)
从安全性角度,HTTP的安全性相对较低,只能使用HTTPS来保障(需要打开443端口)

所以可以看出,当你的应用对安全性要求不高,访问频率相对较低,且涉及的网络环境比较复杂的时候(跨越多个网络,每个网络由不同的网管,协调他们很麻烦),那么就选择HTTP,如果不是可以选择IIOP