### 一、軟件應用程序發展的幾個階段
軟件應用程序發展經歷了如下幾個階段:
服務于多個終端用戶的大型計算機系統
孤立的個人計算機上運行孤立的軟件
客戶機/服務器模式
分布式處理模式
內容服務模式(網絡移動性的體現)
分布式處理模式綜合了網絡和處理器發展的優點,將進程分布在多個處理器上運行,并允許這些進程共享數據。盡管這種模式有許多大型計算機系統所無法比擬的優勢,但它也有個不可忽視的缺點:難于管理。軟件的更新,安裝,維護十分困難。
而內容服務模式(網絡移動性的體現)在流行的分布式處理模式的基礎上,并可以將軟件通過網絡自動傳送到各臺計算機上。這樣就解決了分布式處理系統中系統管理的難題。
### 二、Java體系結構對網絡移動性的支持
Java體系結構對網絡移動性的支持主要體現在如下幾個方面:
(1)**平臺無關性和安全性**:Java體系結構對網絡移動性支持和它對平臺無關性和安全性的支持是密不可分的。雖然平臺無關性和安全性對網絡移動性而言并非是必須的,但是兩者對網絡移動性的實現提供了很大幫助。平臺無關性使得網絡上傳輸程序更加容易,不需要針對不同的平臺準備不同的版本。 使得用戶可以自信地下載各種來源的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可以在一個中心服務器上維護,可以通過網絡傳送到很多種類的計算機中。要升級一個applet,只需要升級服務器上的即可。用戶下次使用時,就可以得到升級過后的版本。因此,維護是本地的,運行是分布的。
(2)**Jini 服務對象(網絡移動對象的示例 )**:除了代碼的網絡移動性,Java結構還有一個承諾:對象的網絡移動性。對象在網絡中穿梭,攜帶著自己的類,加上表示對象狀態的快照數據。對象的網絡移動性可以簡化軟件開發者設計和部署分布式系統的工作。通過對象序列化和遠程方法調用(RMI),Java API提供了一個在本地對象模型上擴展而成的分布式對象模型,打破了Java虛擬機之間的界限。
- 前言
- Java生成中間logo的二維碼(還可以加上二維碼名稱哦)
- Java我的高效編程之常用函數
- AES加密解密&&SHA1、SHA加密&&MD5加密
- Java中synchronized的使用實例
- Java基礎之集合
- Java基礎之泛型
- Java基礎之枚舉妙用
- 那些年用過的一些前端框架
- 關于正則,那些年一直存在的疑惑解答(正則菜鳥不容錯過)
- 給pdf文件添加防偽水印logo(附工程源碼下載)
- SpringMVC+BUI實現文件上傳(附詳解,源碼下載)
- Java異常封裝(自己定義錯誤碼和描述,附源碼)
- javaweb異常提示信息統一處理(使用springmvc,附源碼)
- 關于Java,那些我心存疑惑的事(不斷更新中...)
- 深入Java虛擬機(1)——Java體系結構
- 深入Java虛擬機(2)——Java的平臺無關性
- 深入Java虛擬機(3)——安全
- 深入Java虛擬機(4)——網絡移動性
- Linux文件編輯命令詳細整理
- 阿里云服務器云數據庫免費體驗(Java Web詳細實例)
- 項目部署、配置、查錯常用到的Linux命令
- Shell腳本了解
- Ajax原理學習
- linux下安裝apache(httpd-2.4.3版本)各種坑
- JSP九大內置對象
- Servlet再度學習
- 開發人員系統功能設計常用辦公軟件分享
- java.lang.ClassNotFoundException:org.springframework.web.context.ContextLoaderListener問題解決
- tomcat內存溢出解決,java.lang.OutOfMemoryError: PermGen space
- 《Java多線程編程核心技術》推薦
- 關于跳槽,是我心浮氣躁?還是我確實該離開了?
- Java I/O學習(附實例和詳解)
- Java經典設計模式之五大創建型模式(附實例和詳解)
- Java經典設計模式之七大結構型模式(附實例和詳解)
- Java經典設計模式之十一種行為型模式(附實例和詳解)
- Java內存管理
- SQL實例整理
- 數據庫面試常問的一些基本概念