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