java中rmi和corba的区别:
1、定义接口:
rmi自己定义接口(interface)
corba生成idl代码,然后使用idlj -fall name.idl生成接口和几个类文件
2、启动服务:
rmi启动的是rmiregistry (port)默认1099
corba启动的是tnameserv
3、实现的继承类:
rmi extends unicastremoteobject
corba extends 运行idlj时 生成的_nameimplbase
4、实现类的rebind
rmi可以直接rebind 如:naming.rebind("rmi://localhost/meeting",meetingserver);
corba需要先调用init()如:
orb orb=orb.init(avgs,null);
motdimpl impl=new motdimpl(motdfile);
orb.connect(impl);
org.omg.corba.object objref=
orb.resolve_initial_references("nameservice");
namingcontext ncref=namingcontexthelper.narrow(objref);
namecomponent nc=new namecomponent(motdservice,"");
namecomponent[] path=new namecomponent[]{nc};
ncref.rebind(path,impl);
这里corba就要麻烦很多了
5、客户端调用corba的调用跟实现类的绑定差不多如:
orb orb=orb.init(avgs,null);
org.omg.corba.object objref=
orb.resolve_initial_references("nameservice");
namingcontext ncref=namingcontexthelper.narrow(objref);
namecomponent nc=new namecomponent("messageoftheday","");
namecomponent path[]=new namecomponent[]{nc} ;
org.omg.corba.object motdobj=ncref.resolve(path);
motd motdref=motdhelper.narrow(motdobj);
system.out.println(motdref.getmotd());
rmi只要lookup就可以了
总的来说其实rmi和corba都差不多,都是桩和框架,两者相互竞争,但是在java中都可以相互调用。这归功于rmi_iiop.
from-javaresearch.org
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器