java rmi 还有用吗_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,所以有什么不對的請指出,也是對我學習的幫助,多謝..........
?
總結
以上是生活随笔為你收集整理的java rmi 还有用吗_java rmi使用后的感想的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php mysql 正则表达式_MYSQ
- 下一篇: mint java_Linux mint