一、B/S架構(gòu)中怎么在網(wǎng)頁(yè)中合理的使用數(shù)據(jù)庫(kù)連接
1、連接池技術(shù)
在Web應(yīng)用中使用數(shù)據(jù)庫(kù)連接時(shí),每次請(qǐng)求都需要打開(kāi)和關(guān)閉數(shù)據(jù)庫(kù)連接,這樣會(huì)導(dǎo)致頻繁的數(shù)據(jù)庫(kù)連接操作,從而影響性能。一種解決方法是使用連接池技術(shù),即預(yù)先創(chuàng)建一定數(shù)量的數(shù)據(jù)庫(kù)連接,然后將它們放入連接池中。當(dāng)應(yīng)用程序需要訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)時(shí),就從連接池中獲取連接,使用完畢后再將連接釋放回連接池中。
2、數(shù)據(jù)庫(kù)連接管理
在Web應(yīng)用中,通常需要為每個(gè)用戶(hù)分配一個(gè)不同的數(shù)據(jù)庫(kù)連接。這就需要進(jìn)行數(shù)據(jù)庫(kù)連接管理,以確保每個(gè)用戶(hù)都有自己的連接,避免出現(xiàn)線(xiàn)程安全問(wèn)題或者數(shù)據(jù)錯(cuò)亂等問(wèn)題。
3、SQL語(yǔ)句優(yōu)化
在Web應(yīng)用中使用數(shù)據(jù)庫(kù)連接時(shí),SQL語(yǔ)句的優(yōu)化也非常重要。要盡量減少不必要的查詢(xún)操作,不要使用SELECT *,而是只選擇所需的列。還可以通過(guò)優(yōu)化索引、緩存常用數(shù)據(jù)等方法來(lái)提高SQL語(yǔ)句的執(zhí)行效率。
4、數(shù)據(jù)庫(kù)事務(wù)管理
在Web應(yīng)用中使用數(shù)據(jù)庫(kù)連接時(shí),需要考慮數(shù)據(jù)庫(kù)事務(wù)管理。事務(wù)是指一組數(shù)據(jù)庫(kù)操作,這些操作要么全部執(zhí)行成功,要么全部不執(zhí)行。如果在Web應(yīng)用中使用數(shù)據(jù)庫(kù)事務(wù),可以保證數(shù)據(jù)的一致性和完整性,避免數(shù)據(jù)丟失或者錯(cuò)誤。
二、B/S架構(gòu)概述
1、簡(jiǎn)介
B/S架構(gòu)即瀏覽器和服務(wù)器架構(gòu)模式,是隨著Internet技術(shù)的興起,對(duì)C/S架構(gòu)的一種變化或者改進(jìn)的架構(gòu)。在這種架構(gòu)下,用戶(hù)工作界面是通過(guò)WWW瀏覽器來(lái)實(shí)現(xiàn),極少部分事務(wù)邏輯在前端(Browser)實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端(Server)實(shí)現(xiàn),形成所謂三層3-tier結(jié)構(gòu)。B/S架構(gòu)是WEB興起后的一種網(wǎng)絡(luò)架構(gòu)模式,WEB瀏覽器是客戶(hù)端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶(hù)端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡(jiǎn)化了系統(tǒng)的開(kāi)發(fā)、維護(hù)和使用。客戶(hù)機(jī)上只要安裝一個(gè)瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務(wù)器安裝Oracle、Sybase、Informix或 SQL Server等數(shù)據(jù)庫(kù)。瀏覽器通過(guò)Web Server同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互。 這樣就大大簡(jiǎn)化了客戶(hù)端電腦載荷,減輕了系統(tǒng)維護(hù)與升級(jí)的成本和工作量,降低了用戶(hù)的總體成本(TCO)。
2、分層
名列前茅層表現(xiàn)層:主要完成用戶(hù)和后臺(tái)的交互及最終查詢(xún)結(jié)果的輸出功能。第二層邏輯層:主要是利用服務(wù)器完成客戶(hù)端的應(yīng)用邏輯功能。第三層數(shù)據(jù)層:主要是接受客戶(hù)端請(qǐng)求后獨(dú)立進(jìn)行各種運(yùn)算。3、優(yōu)點(diǎn)
客戶(hù)端無(wú)需安裝,有Web瀏覽器即可。BS架構(gòu)可以直接放在廣域網(wǎng)上,通過(guò)一定的權(quán)限控制實(shí)現(xiàn)多客戶(hù)訪(fǎng)問(wèn)的目的,交互性較強(qiáng)。BS架構(gòu)無(wú)需升級(jí)多個(gè)客戶(hù)端,升級(jí)服務(wù)器即可。可以隨時(shí)更新版本,而無(wú)需用戶(hù)重新下載。4、缺點(diǎn)
在跨瀏覽器上,BS架構(gòu)不盡如人意。表現(xiàn)要達(dá)到CS程序的程度需要花費(fèi)不少精力。在速度和安全性上需要花費(fèi)巨大的設(shè)計(jì)成本,這是BS架構(gòu)的最大問(wèn)題。客戶(hù)端服務(wù)器端的交互是請(qǐng)求-響應(yīng)模式,通常需要刷新頁(yè)面,這并不是客戶(hù)樂(lè)意看到的。5、與C/S架構(gòu)的區(qū)別
硬件環(huán)境不同:C/S 一般建立在專(zhuān)用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過(guò)專(zhuān)門(mén)服務(wù)器提供連接和數(shù)據(jù)交換服務(wù)。B/S 建立在廣域網(wǎng)之上的, 不必是專(zhuān)門(mén)的網(wǎng)絡(luò)硬件環(huán)境。例如電話(huà)上網(wǎng),租用設(shè)備,信息管理,有比C/S更強(qiáng)的適應(yīng)范圍,一般只要有操作系統(tǒng)和瀏覽器就行。對(duì)安全要求不同:C/S 一般面向相對(duì)固定的用戶(hù)群, 對(duì)信息安全的控制能力很強(qiáng), 一般高度機(jī)密的信息系統(tǒng)采用C/S 結(jié)構(gòu)適宜,可以通過(guò)B/S發(fā)布部分可公開(kāi)信息。B/S 建立在廣域網(wǎng)之上, 對(duì)安全的控制能力相對(duì)弱,面向是不可知的用戶(hù)群。對(duì)程序架構(gòu)不同:C/S 程序可以更加注重流程,可以對(duì)權(quán)限多層次校驗(yàn),對(duì)系統(tǒng)運(yùn)行速度可以較少考慮。B/S 對(duì)安全以及訪(fǎng)問(wèn)速度的多重的考慮,建立在需要更加優(yōu)化的基礎(chǔ)之上,比C/S有更高的要求。 B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢(shì),從MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng).。SUN 和IBM推的JavaBean 構(gòu)件技術(shù)等,使 B/S更加成熟。軟件重用不同:C/S 程序可以不可避免的整體性考慮,構(gòu)件的重用性不如在B/S要求下的構(gòu)件的重用性好。B/S 對(duì)的多重結(jié)構(gòu),要求構(gòu)件相對(duì)獨(dú)立的功能,能夠相對(duì)較好的重用。系統(tǒng)維護(hù)不同:系統(tǒng)維護(hù)在是軟件生存周期中,開(kāi)銷(xiāo)大。重要C/S 程序由于整體性,必須整體考察, 處理出現(xiàn)的問(wèn)題以及系統(tǒng)升級(jí)。升級(jí)難,可能是再做一個(gè)全新的系統(tǒng)。B/S程序由構(gòu)件組成,方便構(gòu)件個(gè)別的更換,實(shí)現(xiàn)系統(tǒng)的無(wú)縫升級(jí),系統(tǒng)維護(hù)開(kāi)銷(xiāo)減到最小,用戶(hù)從網(wǎng)上自己下載安裝就可以實(shí)現(xiàn)升級(jí)。處理問(wèn)題不同:C/S 程序可以處理用戶(hù)面固定,并且在相同區(qū)域,安全要求高需求,與操作系統(tǒng)相關(guān),應(yīng)該都是相同的系統(tǒng)。B/S 建立在廣域網(wǎng)上,面向不同的用戶(hù)群,分散地域,這是C/S無(wú)法作到的,與操作系統(tǒng)平臺(tái)關(guān)系最小。用戶(hù)接口不同:C/S 多是建立的Window平臺(tái)上,表現(xiàn)方法有限。對(duì)程序員普遍要求較高。B/S 建立在瀏覽器上,,有更加豐富和生動(dòng)的表現(xiàn)方式與用戶(hù)交流,并且大部分難度減低,減低開(kāi)發(fā)成本。信息流不同:C/S 程序一般是典型的中央集權(quán)的機(jī)械式處理,交互性相對(duì)低。B/S 信息流向可變化, B-B、 B-C、 B-G等信息流向的變化,更象交易中心。6、發(fā)展前景
B/S模式不需要專(zhuān)門(mén)的客戶(hù)端,只要瀏覽器,而瀏覽器是隨操作系統(tǒng)就有的,方便就是他的優(yōu)勢(shì)了。而且,B/S是基于網(wǎng)頁(yè)語(yǔ)言的、與操作系統(tǒng)無(wú)關(guān),所以跨平臺(tái)也是它的優(yōu)勢(shì),而且以后隨著網(wǎng)頁(yè)語(yǔ)言以及瀏覽器的進(jìn)步,B/S在表現(xiàn)能力上的處理以及運(yùn)行的速度上會(huì)越來(lái)越快,它的缺點(diǎn)將會(huì)越來(lái)越少。尤其是HTML5的普及,在圖形的渲染方面以及音頻、文件的處理上已經(jīng)非常強(qiáng)大了。
延伸閱讀1:數(shù)據(jù)庫(kù)是什么
所謂“數(shù)據(jù)庫(kù)”是以一定方式儲(chǔ)存在一起、能予多個(gè)用戶(hù)共享、具有盡可能小的冗余度、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。一個(gè)數(shù)據(jù)庫(kù)由多個(gè)表空間(Tablespace)構(gòu)成。數(shù)據(jù)庫(kù)就是一個(gè)存儲(chǔ)結(jié)構(gòu)化數(shù)據(jù)的倉(cāng)庫(kù)。