java IDL和RMI-IIOP有什么区别?

Standino 2004-07-25 01:25:34
它们两个都可以访问Corba.那么什么时候使用javaIDL 什么时候使用RMI-IIOP呢?
...全文
224 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
benjamin_von 2004-07-29
  • 打赏
  • 举报
回复
iamzsy(小王子)

你是谁? 哪个公司的?
dropship 2004-07-28
  • 打赏
  • 举报
回复
搂住不要混淆概念:
idl 是interface definition language。用corba的时候都需要用idl描述接口,以便于client端调用。
而java idl是sun推出的支持CORBA特性的一种技术。这个称呼其实并不恰当,该技术不只是支持idl,他的主要特性就是支持与CORBA的连接。比如说可以用idltojava转换idl文件等。

RMI是Remote Method Invocation, IIOP是Internet Inter-ORB Protocol,是一种支持ORB(object request broker)的传输协议。注意,rmi和corba不是一个概念,而且应该说相差很远,因为rmi并不符合corba标准。不过自jdk1.3以后,rmi和corba的互操作性越来越好了,证明之一就是现在可以将rmi用于iiop协议上了。

说到这里,搂住应该知道java idl和rmi-iiop之间的区别了吧。前者是sun推出的一种支持corba的特性,用它可以使用任何语言来实现corba调用,可以使用idl来设定接口;后者只是在iiop协议上用rmi来实现远程调用,并不是corba,也无需idl,当然也只能用java。
benjamin_von 2004-07-28
  • 打赏
  • 举报
回复
别忘了EJB是用java写的,而且我想你注意到了,ejb组件并没有使用idl也没有在server,client端生成skeleton和stub。很明显,ejb没有用corba,而用的是rmi(通过在两端约定Remote或者local接口,再综合jndi绑定来得到ejb组件对象)。
至于这么做的原因,可能有很多,我知道有这么几点:
1,ejb使用java语言编写,而且调用ejb的application也是用java编写的,因此没有必要用corba(corba的速度比rmi慢得多)
2,rmi实现起来比corba容易多了(前面说了,需要定义idl,还要生成skeleton和stub,还有一些其他的原因:比如corba的对象cast比较麻烦等等)

以上说的是为什么用rmi,至于为什么用iiop,这个就很简单了,没有别的原因,就是由于现在主流的application server都支持iiop协议。jboss用的是ldap服务器,整个jndi就是在ldap上运行的,因此要遵循iiop协议。
iamzsy 2004-07-28
  • 打赏
  • 举报
回复
benjamin_von
你也来这里啊.
我是Steven
看来我们公司的员工,技术都不错啊
shuneng 2004-07-27
  • 打赏
  • 举报
回复
学习~
Standino 2004-07-27
  • 打赏
  • 举报
回复
明白了一些,那么在EJB中使用了RMI-IIOP.为什么要使用它呢?
zhigangsun 2004-07-26
  • 打赏
  • 举报
回复
java idl是什么东东呀,介绍一下.
benjamin_von 2004-07-26
  • 打赏
  • 举报
回复
搂住不要混淆概念:
idl 是interface definition language。用corba的时候都需要用idl描述接口,以便于client端调用。
而java idl是sun推出的支持CORBA特性的一种技术。这个称呼其实并不恰当,该技术不只是支持idl,他的主要特性就是支持与CORBA的连接。比如说可以用idltojava转换idl文件等。

RMI是Remote Method Invocation, IIOP是Internet Inter-ORB Protocol,是一种支持ORB(object request broker)的传输协议。注意,rmi和corba不是一个概念,而且应该说相差很远,因为rmi并不符合corba标准。不过自jdk1.3以后,rmi和corba的互操作性越来越好了,证明之一就是现在可以将rmi用于iiop协议上了。

说到这里,搂住应该知道java idl和rmi-iiop之间的区别了吧。前者是sun推出的一种支持corba的特性,用它可以使用任何语言来实现corba调用,可以使用idl来设定接口;后者只是在iiop协议上用rmi来实现远程调用,并不是corba,也无需idl,当然也只能用java。


rose1981 2004-07-26
  • 打赏
  • 举报
回复
能用rmi的时候不推荐使用 corba,那样会变得很复杂。访问corba需要启动corba的 java服务器,还得生成客户端stub,很是麻烦。
朋友别哭 2004-07-25
  • 打赏
  • 举报
回复
不知道up

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧