多層服務(wù)器結(jié)構(gòu)
王永輝 徐為春
1.多層結(jié)構(gòu)簡述:
早在70年代末第一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)出現(xiàn)時(shí),計(jì)算機(jī)的數(shù)據(jù)庫時(shí)代就已悄然開始。那時(shí)的觀念是由應(yīng)用程序與關(guān)系型數(shù)據(jù)庫共享統(tǒng)一文件系統(tǒng),這種數(shù)據(jù)處理的模式一般稱為單層結(jié)構(gòu)(1 -Tier)。 由于這種結(jié)構(gòu)的數(shù)據(jù)庫程序占用計(jì)算機(jī)資源較多也不利于多用戶環(huán)境數(shù)據(jù)庫的訪問,于是在80年代中期,數(shù)據(jù)庫應(yīng)用開始轉(zhuǎn)向C/S(Client/Server) 結(jié)構(gòu), 也就是所謂的兩層結(jié)構(gòu)(2-Tier)。 這種結(jié)構(gòu)在近十年內(nèi)不但得到了廣泛的運(yùn)用, 而且相當(dāng)成功。 然而,在兩層C/S 結(jié)構(gòu)成功的背后卻逐漸暴露出其構(gòu)架上的缺陷。其中最明顯的問題表現(xiàn)在應(yīng)用程序的伸縮性和維護(hù)方面。特別是每一個(gè)客戶端往往必須配置數(shù)據(jù)庫的客戶端服務(wù)或ODBC/BDE軟件,使得客戶端占用資源很多,配置也很繁瑣。
90年代中期后,由于分布式計(jì)算技術(shù)和Web的迅速發(fā)展,數(shù)據(jù)庫應(yīng)用系統(tǒng)在傳統(tǒng)的 C/S 結(jié)構(gòu)的基礎(chǔ)上,出現(xiàn)了兩個(gè)重要轉(zhuǎn)變:
一是在客戶層與數(shù)據(jù)庫服務(wù)器層之間增加了一層或幾層中間件(Mid-ware)或稱為應(yīng)用服務(wù)器,這種新的結(jié)構(gòu)就是所謂的3層或多層結(jié)構(gòu)(C/S/S 3-Tier n-Tier)。由中間件處理應(yīng)用系統(tǒng)的業(yè)務(wù)邏輯,客戶端程序只處理界面的顯示;由中間件與數(shù)據(jù)庫通訊,客戶端因?yàn)椴恍枰c數(shù)據(jù)庫通訊,所以不需要安裝數(shù)據(jù)庫的客戶端程序和數(shù)據(jù)庫驅(qū)動程序,可以使客戶端程序變得更小,更快;中間件可以有多個(gè)并且可以安裝在不同的計(jì)算機(jī)上,將處理工作分散開來,改善性能。
二是隨著Internet/Intranet的流行,越來越多的客戶需要數(shù)據(jù)庫的前端能夠在瀏覽器中運(yùn)行,于是出現(xiàn)了B/S(Browser/Server)結(jié)構(gòu)。應(yīng)用服務(wù)器的出現(xiàn)使得原來占用資源很多的應(yīng)用程序客戶端(稱作肥客戶)轉(zhuǎn)變成占用資源較少的瘦客戶,也使得瘦客戶可以在瀏覽器中運(yùn)行。這兩個(gè)轉(zhuǎn)變實(shí)際上同時(shí)發(fā)展并且相互推進(jìn)。
值得一提的是,結(jié)合以上兩種變化,出現(xiàn)了一種結(jié)合三層C/S/S的B/S結(jié)構(gòu)(四層)。
2. 多層結(jié)構(gòu)的優(yōu)勢
把業(yè)務(wù)邏輯封裝在共享的中間層里。不同的客戶端都訪問相同的中間層。這可以減少由于在每個(gè)單獨(dú)的客戶端應(yīng)用中重復(fù)業(yè)務(wù)邏輯所造成的冗余(以及相應(yīng)的維護(hù)成本)
“瘦”的客戶端?蛻舳藨(yīng)用程序可以寫得很小,而把大多數(shù)工作交給中間層處理。客戶端應(yīng)用程序不僅是變小了,而且還更加的易于發(fā)布,因?yàn)樗鼈儾恍枰倏紤]安裝,配置和維護(hù)數(shù)據(jù)庫連接軟件(例如 BDE/ADO 及數(shù)據(jù)服務(wù)器的客戶端軟件)的問題!笆荨笨蛻舳藨(yīng)用程序可以通過 Internet 以更加靈活的方式發(fā)布。
分布式數(shù)據(jù)處理。將一個(gè)應(yīng)用系統(tǒng)的工作分布到幾臺機(jī)器上可以改善系統(tǒng)的性能,因?yàn)榭梢蕴峁┴?fù)載平衡以及用備用的機(jī)器去替代發(fā)生故障的機(jī)器。
增強(qiáng)安全性?梢酝ㄟ^使用不同的訪問約束,來分層隔離敏感的功能。這提供了一個(gè)靈活的和可配置的安全層。中間層可以限制敏感部分的入口點(diǎn),使你能更加容易地控制對它的訪問。如果你使用 HTTP, CORBA 或是 COM+ ,你還可以同時(shí)享受到它們支持的安全模式所帶來的優(yōu)勢。
3.多層結(jié)構(gòu)的實(shí)現(xiàn)
Microsoft 的 DNA(Distributed Internet Information Architecture)技術(shù)是以 MTS/COM+ 為基礎(chǔ)的,輔以 ASP/MSMQ 等的一整套集成在 Windows 2000 中的分布式應(yīng)用開發(fā)技術(shù)。以 MTS/COM+ |
|