標籤:動態 分布 ext 開發 分割 遠程 java編譯 pop nes
一、軟體應用程式發展的幾個階段
軟體應用程式發展經曆了例如以下幾個階段:
服務於多個終端使用者的大型電腦系統
孤立的個人電腦上執行孤立的軟體
客戶機/server模式
分散式處理模式
內容服務模式(網路移動性的體現)
分散式處理模式綜合了網路和處理器發展的長處,將進程分布在多個處理器上執行。並同意這些進程共用資料。雖然這樣的模式有很多大型電腦系統所無法比擬的優勢,但它也有個不可忽視的缺點:難於管理。
軟體的更新,安裝,維護十分困難。
而內容服務模式(網路移動性的體現)在流行的分散式處理模式的基礎上,並能夠將軟體通過網路自己主動傳送到各台電腦上。這樣就攻克了分散式處理系統中系統管理的難題。
二、Java體繫結構對網路移動性的支援
Java體繫結構對網路移動性的支援主要體如今例如以下幾個方面:
(1)平台無關性和安全性:Java體繫結構對網路移動性支援和它對平台無關性和安全性的支援是密不可分的。
雖然平台無關性和安全性對網路移動性而言並不是是必須的。可是兩者對網路移動性的實現提供了非常大協助。平台無關性使得網路上傳輸程式更加easy,不須要針對不同的平台準備不同的版本號碼。 使得使用者能夠自信地下載各種來源的class檔案。
(2)動態串連:網路移動性的主要難題就是時間。Java是支援動態串連的。
Java體繫結構把傳統的單一二進位可執行檔分割成小的二進位片段-Java class檔案-來解決時間問題,類在程式須要時才動態串連。使用者不須要等到全部的class檔案都完成下載。
(3)動態擴充:除了動態串連外。Java體繫結構也同意動態擴充。動態擴充是裝載class檔案的第二種方式。能夠延遲到Java應用程式執行時才裝載。
(4)緊湊的class檔案:除了動態串連和動態擴充。Java體繫結構對網路移動性的直接支援還通過class檔案格式體現。為降低在網路上傳送程式的時間。class被設計得非常緊湊。Java編譯器不做太多的局部最佳化。把最佳化工作留給Java虛擬機器。
(5)JAR檔案:同意在一次網路傳輸過程中傳送多個檔案,降低網路通訊協定握手的時間。
(6)不採用按需下載:另外一個降低終於使用者等待時間的策略的就是不採取按需下載class檔案的做法,有幾種不同的技術,列如採用訂閱模式等。
三、Java網路移動性範例
(1)Java applet(網路行動程式碼的示範範例 ):它展示了Java基於網路的全部特性:平台無關性,網路移動性,安全性。在不論什麼平台上,僅僅要有支援Java的瀏覽器,Java applet就能夠執行。Java applet也展示了Java在安全上的能力。由於它們是在一個嚴格受限的沙箱中執行的。最重要的,Java applet展示了它的網路移動性。
Java applet能夠在一個中心server上維護。能夠通過網路傳送到非常多種類的電腦中。要升級一個applet。僅僅須要升級server上的就可以。
使用者下次使用時,就能夠得到升級過後的版本號碼。因此,維護是本地的,執行是分布的。
(2)Jini 服務物件(網路移動對象的示範範例 ):除了代碼的網路移動性。Java結構另一個承諾:對象的網路移動性。對象在網路中穿梭,攜帶著自己的類。加上表示對象狀態的快照資料。對象的網路移動效能夠簡化軟體開發人員設計和部署分布式系統的工作。
通過對象序列化和遠程方法調用(RMI),Java API提供了一個在本機物件模型上擴充而成的分布式物件模型,打破了Java虛擬機器之間的界限。
深入Java虛擬機器(4)——網路移動性