馬少祿 東南大學保衛處
引言:隨著軟件功能的增多,許多軟件都變得更加復雜,因此為了滿足軟件功能模塊復雜度要求,人們提出了先進的應用軟件體系架構,可以自頂向下進行設計和劃分,將功能多、操作復雜的系統按照可擴展接口進行集成,實現系統功能的注冊和組裝,具有較強的可靠性、穩定性和可移植性。應用軟件最初常用的體系架構為兩層C/S架構和三層B/S架構,但是隨著云計算、大數據和人工智能的發展,這兩種架構已經不再適用,亟需引入云計算和四層體系架構,進一步滿足移動應用軟件和人工智能應用軟件的需求。
客戶機/服務器(Client/Service, C/S)是一種兩層應用軟件體系架構,主要包括兩個組成部分,分別是客戶機(Client)和服務器(Service)。客戶機可以在用戶PC電腦或服務器上安裝,為用戶提供一個操作交互界面,該界面可以輸入一些邏輯業務請求和輸出處理結果,以便用戶能夠瀏覽。服務器可以部署于機房,客戶機接收的邏輯業務請求發送到服務器,服務器按照程序語言處理規則進行信息解析和處理,能夠將處理結果發送給客戶機。
瀏覽器/服務器(Browser/ Service, B/S)是一種三層應用軟件體系架構,可以將軟件劃分為瀏覽器、Web服務器、數據庫服務器三個層次。用戶不需要安裝應用軟件,只需要在瀏覽器中輸入Web服務器地址即可登錄軟件,在瀏覽器上生成一個交互界面,用戶可以在交互界面中輸入邏輯業務請求,Web服務器可以解析邏輯業務,數據庫服務器可以實現信息添加、修改、刪除和查詢操作,能夠將操作結果反饋給Web服務器,Web服務器將操作結果集成在一起反饋給瀏覽器。
隨著“互聯網+”時代的到來,應用軟件不僅部署于PC設備,還部署于移動設備,比如智能手機、平板電腦等,應用軟件部署環境風格迥異,因此就需要采用更加先進的體系架構,滿足輕量級、多線程操作需求。未來計算機軟件體系架構發展趨勢為云計算和四層架構,展望描述如下。
云計算是一個強大的應用軟件部署平臺,其采用矩陣式連接模式,采用分布式計算、效用計算、并行計算、虛擬化、網絡存儲和負載均衡等多種技術,為用戶提供一個按需服務平臺,滿足功能復雜、用戶量大的軟件部署。云計算為每一個軟件提供集群部署節點,該節點能夠將一個邏輯業務請求劃分為多個節點,實現底層信息設備交叉服務,盡可能地簡化云計算架構的底層負載,提高CPU資源、帶寬資源、存儲資源的利用率。云計算采用虛擬化技術,可以將應用軟件與硬件資源獨立分割,每一個硬件資源都可以虛擬化為多個軟件使用,按照輪轉法、優先級法、先進先出等實現數據處理,提高硬件設備的利用率。
移動應用軟件架構是基于PC軟件的基礎改進而來的,其可以更好地適用于移動智能設備,常用的架構主要包括經典MVC架構、三層架構,包括表現層(UI)、業務邏輯層(BLL)和數據訪問層(DAL),其中表現層采集用戶輸入信息和操作;業務邏輯層可以從DAL中獲取數據,輸出顯示到UI,完成UI輸出的操作指令和數據請求,執行業務邏輯或訪問DAL;數據訪問層可以完成信息加工。四層架構是在三層架構的基礎上發展而來的,添加了業務規則層,將三層架構的業務邏輯層拆分為業務邏輯和業務規則,業務規則可以及時處理用戶輸入的不合法信息,同時還可以及時處理數據庫操作存在的錯誤,增大了業務邏輯層的結構清晰度。具體的,四層架構分別是表現層、業務規則層、業務邏輯層和數據訪問層。
應用軟件體系架構設計的目標是在有限的硬件設備資源環境中部署較多的程序,這樣既可以支持數以億計的用戶訪問軟件,同時還可以滿足設備負載均衡和高響應速度要求。云計算和四層架構作為當前最為先進的軟件體系架構,其可以自頂向下將軟件劃分為多個子功能,實現邏輯業務的并發處理,能夠將處理結果封裝集成在一起發送給用戶,不僅可以滿足當前用戶較多、數據激增的需求,同時還可以滿足未來軟件智能化要求。