百戰(zhàn)WEB前端全系列2023
CS架構(gòu)的發(fā)展過程經(jīng)歷了兩層CS架構(gòu),三層CS架構(gòu)以及多層CS架構(gòu)的演變。
兩層的CS架構(gòu)是由客戶端和后面的數(shù)據(jù)庫組成的。數(shù)據(jù)庫用于存放數(shù)據(jù),并且使用數(shù)據(jù)庫編程語言編寫業(yè)務(wù)邏輯,客戶端則使用VB、VC、Delphi這樣的可視化編程方便的語言來開發(fā)客戶端的輸入輸出界面。用戶通過界面向服務(wù)器發(fā)送請求,服務(wù)器發(fā)回的數(shù)據(jù)則通過界面進(jìn)行顯示,服務(wù)器的角色就由數(shù)據(jù)庫來充當(dāng)。這樣做的好處就是開發(fā)效率高,滿足企業(yè)需求。但是這種架構(gòu)存在著很大的弊端,第一是可移植性差,如當(dāng)數(shù)據(jù)庫從SQL Server更換為Oracle時(shí)就必須將業(yè)務(wù)邏輯用新的語言再重新編寫一遍;第二則是大型系統(tǒng)做不了,因?yàn)榭蛻舳伺c數(shù)據(jù)庫需要建立持續(xù)的連接,而數(shù)據(jù)庫能夠支持的最大連接數(shù)是有限制的。所以在2000年這樣的架構(gòu)流行之后,慢慢的就開始向三層CS架構(gòu)轉(zhuǎn)變。
三層的CS架構(gòu)指的是客戶端+應(yīng)用服務(wù)器+數(shù)據(jù)庫,即將混合在數(shù)據(jù)庫端的業(yè)務(wù)邏輯從中分離出來,放入到應(yīng)用服務(wù)器中,數(shù)據(jù)庫只負(fù)責(zé)數(shù)據(jù)的管理、存儲及檢索??蛻舳素?fù)責(zé)界面。三層之中的應(yīng)用服務(wù)器其實(shí)也是程序,類似于前面講過的TCP、Socket編程,任何支持TCP編程的語言都可以作為應(yīng)用服務(wù)器。三層CS架構(gòu)的工作流程。
用戶通過GUI(圖形用戶界面)進(jìn)行操作,然后調(diào)用客戶端的通信模塊,通信模塊依據(jù)自定義協(xié)議將請求數(shù)據(jù)打包,通過網(wǎng)絡(luò)發(fā)送該請求,到達(dá)應(yīng)用服務(wù)器時(shí),應(yīng)用服務(wù)器同樣也有一個(gè)通信模塊,將收到的數(shù)據(jù)包按照協(xié)議進(jìn)行拆包,調(diào)用相應(yīng)的業(yè)務(wù)處理模塊,處理數(shù)據(jù),其中可能需要訪問數(shù)據(jù)庫來完成數(shù)據(jù)的獲取,將處理完的結(jié)果再次發(fā)送給通信模塊,通信模塊將結(jié)果按