java rmi使用后的感想

       由于我的程序设计中需要应用RMI 所以这段时间对RMI进行了一下研究。写一些感想, 对于什么是RMI之类的就省略了。

 

下边连接是RMI的用法,需要的朋友可以看一看http://haolloyin.blog.51cto.com/1177454/332426

 

我们这里介绍一下其中的一些小的知识,

1. 什么情况下用RMI

    由于RMI 有显著的两个缺点,

    一个是性能,早在很久对于分布式java而引出的webservice 和 SOA等理念,RMI就被抛弃了,当然这不是绝对的,对于小的子程序来说 RMI 还是有他的作用的。

    二是RMI的硬性要求就是 CS两端都必须是java,所以对于语言跟着需求走的我们来说,这个可能是最大的困扰。

    现在更多应用RMI的还是EJB 和 SPRING中的RMI

 

2. RMI中的存根与骨架

    这是一个很老的问题了,在现在的JDK版本中,已经把骨架整合了,完全不需要我们处理,至于存根,其实就是远程对象的本地引用,也就是本地通过 LocateRegistry中的 getRegistry 方法获取 远程主机中的注册表Registry,通过Registry对象的lookup找到远程对象的引用,我们在本地应用远程对象(实际是接口)中的方法来解决问题,这也是符合RMI的注册/服务的原则。

    当然,我们也可以用Naming来做这些操作,但所有的无非是 注册+得到注册;

 

3. Remote接口作用

    他完全是一个标记,类似io中的Serializable,起一个标记作用,告诉这是一个远程接口

 

4. UnicastRemoteObject这个类的作用

    做程序的时候总是想问这个是干嘛的为啥一定要用?结论是:他是一个解包,封包的作用,我们知道,网络传输数据再怎么说也是socket连接,而这个类就是对数据的进行封装的,例如传参数,得到返回值等等,当然还有其他的作用,没必要一一解说。

 

5. Naming和Registry中的相同的函数

    我们知道Registry是远程注册表,而Naming是Sun做出的对注册表的操作,他们的本质我不敢说一样(我没看太多的源码),但是操作的意义大致是一样的,所以没必要纠结用那一个。

 

我第一次写blog,所以有什么不对的请指出,也是对我学习的帮助,多谢..........

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值