Java遠程方法調用 5

RMI應用在演變的企業中

  您現在就可使用RMI連接新的Java應用程序(或小應用程序)和現有的服務器。在這種情況下,您的企業可隨着Java用途的不斷擴展而不斷獲益。如果您的系統的一部分是用Java重新編寫的,則RMI可使Java的優勢從現有Java 組件轉移到新的Java程序中。請考慮下面二層次系統中單一請求在客戶機和服務器之間往復轉移的路徑:


rmi_white_paper_image3.gif


  使用RMI意味着您可利用RMI作爲客戶機與服務器之間的傳輸方法,從而使Java的好處遍佈整個系統,即使服務器端在一段時間內仍採用非Java程序。如果您選擇用Java重新編寫您的服務器的部分或全部,則您還可從現有的Java組件中獲益。您所能擁有的最重要的Java優點舉例如下:


 面向對象的程序重用:能將對象從客戶機傳遞到服務器和從服務器傳遞到客戶機意味着,您可使用設計模式和其它面向對象的編程技術提高企業內部程序的重用水平。
 傳遞屬性:在客戶機和服務器之間傳遞的對象可以是另一端以前從未見過的類型。其實現將被下載以執行新的屬性。
 類型安全:Java對象永遠是類型安全的,可預防當程序員對對象的類型產生錯誤時發生故障。
 保密性:Java Classes (類)可以以保密的方式運行,使您能夠與在無保密措施的環境中運行的客戶機進行交互工作。下圖表示用Java編寫的客戶機使用RMI與服務器進行對話。帶陰影的“請求”箭頭表示您能獲得的Java安全性、面向對象功能和其它優勢:
rmi_white_paper_image4.gif

少量Java代碼連接到使用現有服務器API的“傳統包裹程序”。傳統包裹程序是Java與現有API之間的橋樑,如上述實現getUnpaid和shutDown所示。在本圖中,我們顯示它是用JNI編寫的,但如上所述,傳統包裹程序也可以使用 JDBC或TwinPeaks (如果面市的話)編寫。
與上圖相反,下圖表示語言中性系統採用接口定義語言(通常稱作IDL )在客戶機和服務器之間實現連接:

rmi_white_paper_image5.gif


仍然必須編寫包裹程序,以將用IDL定義的調用連接到現有服務器API。但如果採用基於IDL的方式,則Java的優勢就會被隔離在客戶機一端--因爲客戶機端的Java在穿越到服務器之前已經被減小到最小部分。假定您認爲用Java重新編寫一些服務程序對您有用。當然這可能有種種原因,如希望獲得安全的Java系統更高的可靠性,或者因爲您希望降低移動成本。或者可能因爲向您提供了一部分服務器實現(Implementation)的供應商推出了能利用Java 優勢的更新版本。基於RMI的示意圖如下:


rmi_white_paper_image6.gif

  多數請求現在都可從Java獲得好處。您通過網絡在客戶機和服務器之間傳遞的對象現在對於整個系統都有益處。例如,您可開始通過您已經定義的相同的遠程接口傳遞屬性,從而提高客戶機和服務器的價值。請與基於 IDL的方式做一比較:


rmi_white_paper_image7.gif

  您可以獲得本來僅限於服務器纔有的Java優勢,但您無法利用Java連接客戶機/服務器擴展的價值。Java的價值在IDL邊界處被隔斷,因爲IDL不能假定Java是在連接的另一側。如果不拋棄IDL程序,並用RMI重新編寫程序,您就無法充分利用您的系統中Java的優勢。
當您在企業的多數環境中使用Java時,這種損失就更加巨大。使用RMI,您的整個系統中就能獲得Java的好處:


rmi_white_paper_image8.gif


  採用基於IDL的方式,用Java重新編寫服務器仍然僅讓您享受僅限於服務器的局部的好處:


rmi_white_paper_image9.gif

  今天,您可使用RMI連接到服務器,而不必用Java重新編寫服務程序。RMI的使用方法簡單,用它創建服務器端的RMI類非常容易。在這兩種情況下,傳統包裹程序的複雜性基本相同。但如果您使用基於IDL的分佈式系統,則您創建的Java程序就不能互相共享Java的好處。RMI現在可使您輕鬆地實現連接,而且當您決定擴大Java的使用範圍時,則由於Java在網絡兩側具有協同作用,所以您將獲得更多的好處。


 結論

  RMI爲真正面向對象的分佈式計算提供了可靠的平臺。您可使用RMI連接到Java組件,或用其它語言編寫的現有的組件。隨着Java在您的環境中所具備的重要性的日益增加,您還可擴大Java的使用範圍,並獲得所有的好處 --無需移植、低維護成本和安全而保密的環境。RMI爲您提供了循序漸進地將Java擴展到您的系統所有部分的平臺,您可根據需要適時地添加Java服務器和客戶機。只要您添加了Java,那麼它所有的好處都會隨之而來。RMI 則使之更簡單、保密和強大。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章