1. 程式人生 > >RMI網路程式設計開發之一 JAVA“程序間”通訊方式

RMI網路程式設計開發之一 JAVA“程序間”通訊方式

注意該標題是 “程序”間通訊,而並非“執行緒“之間的通訊。
執行緒之間的通訊是多執行緒的討論範疇。這裡我們是要討論分散式的獨立的JAVA程式之間是怎麼通訊的。當然,大家都會先想到SOCKET。對的,SOCKET在網路程式設計中是不可以被忽略的。socket是兩臺主機之間的一個連線,而JAVA中的SOCKET類為不同主機之間的連線提供了功能封裝。
所以,SOCKET是程序間通訊的一種常用方法。
讓我們變得更原始一點,如果同一臺主機不同程式之間是怎麼交換資料的呢?
嗯,郵遞員送信的網路知識,讓我們很容易想到,把資料放到一個共享的地方就行。
A程式把資料存到硬碟的某個檔案txt,然後B程式在去開啟這個txt讀取內容。這樣子是不是很理想呢?
所以,存取檔案,不失為一個通訊的巧手段。
嗯,既然我們可以共享磁碟,那我們也可以共享記憶體,JMS的 queue 應該也可以實現通訊的目的,
還有管道等概念。
講了那麼多,其實想引出來的,無非是RMI,RMI並不是最本質的東西。SOCKET是它的基礎。
RMI是sun開發,遵循JRMP協議,因為他被髮布在jre中,所有很多人只把它當作很普通的api來使用,所以它裡面做了什麼,很多人都不清楚. 


RMI到底是什麼?
RMI是一套足夠優秀的socket框架.
RMI是相對比較簡單命名服務
RMI是aop的經典實用例子
相關輔助功能,比如本地GC
總之,RMI也是一個重要的通訊手段。