1. 首先什麼是分佈式應用?
簡單的說就是客戶端,應用服務器及數據庫駐留在多臺計算機上的應用。
就是我們常說的三層架構或n層架構。應用服務器就是業務邏輯層,又稱基於構件的三層架構的中間層。
2. 三層架構的優勢是什麼?
二層架構就是我們常說的C/S架構,二層架構中如果我們把業務邏輯層併入客戶端代碼中就稱爲胖客戶,反之則稱爲胖服務器。
1) 由於二層架構較早的建立與數據庫的連接,所以當數據庫的負載或連接達到飽和時,會造成數據庫性能的下降,以及客戶端的訪問被拒絕。
2) 而三層架構由於有了中間層,它就會平衡負載,僅當客戶需要訪問數據庫且其它連接資源被釋放時,纔會處理數據庫連接。
3) 還有一點很重要:當代碼需要大的改動是隻需要更新中間層的代碼,無須對客戶端進行修改。
3. 由於需要處理分佈式應用,公司引入了RMI(遠程方法調用)。
4. RMI在中間層被實現。
5. 分佈式RMI應用由兩部分組成.
1) RMI服務器-----包含需要被遠程調用的方法。服務器創建幾個遠程對象,並在RMI註冊表中產生它們的引用(也就是用遠程對象的唯一名註冊,RMI註冊是在RMI服務器上運行的服務),客戶端只要得到這個遠程對象的引用就可以調用服務器中的那些方法了。
2) RMI客戶
6. RMI架構(Mirosoft有MTS架構)
1) 樁/骨架層Stub/Skeleton
2) 遠程調用層Remote Reference Layer
3) 傳輸層Transport Layer
流程:
客戶端請求從Stub開始,Stub是遠程對象的客戶代理,客戶通過Stub與Skeleton通信,Skeleton爲服務器端代理,負責與Stub的通信。
遠程調用層RRL在客戶端和服務器端都有,客戶的RRL接受Stub的請求,組包(就是把數據轉換爲可在網絡上傳輸的格式)之後,發送到服務器RRL,再拆包,傳給Skeleton。
傳輸層負責客戶RRL和服務器RRL的連接
7. 開發RMI步驟:
1) 定義遠程接口-----遠程接口類
2) 定義和實現服務器中遠程方法-----服務器類
3) 定義與實現客戶-----客戶類
4) 編譯
5) 生成Stub和Skeleton
6) 創建安全策略
7) 啓動RMI遠程註冊表
8) 啓動服務器
9) 啓動客戶
關於實際應用可以看我的幾個RMI實例