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