| |
rmi和corba 2003-6-16 matrix让你不断进步 浏览选项: 颜色 默认 灰度 橄榄色 绿色 蓝色 褐色 红色 本文已被浏览 14 次 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
|
|