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