摘 要:本文主要是對(duì)Web數(shù)據(jù)庫(kù)體系結(jié)構(gòu)以及常見(jiàn)常用的Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)進(jìn)行說(shuō)明,并較為詳盡的對(duì)其技術(shù)特點(diǎn)進(jìn)行比較和分析,希望能夠?qū)ο嚓P(guān)方面工作的進(jìn)行有一定的啟示意義。
關(guān)鍵詞:Web數(shù)據(jù)庫(kù);數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)
中圖分類號(hào):TP311.13
1 背景簡(jiǎn)介
因特網(wǎng)規(guī)模以及用戶數(shù)量始終在不斷增加,信息化在全球范圍內(nèi)已經(jīng)成為必然趨勢(shì),因特網(wǎng)更是成為了實(shí)現(xiàn)資源共享、數(shù)據(jù)通訊和信息獲得的重要方法和手段,這一系列的發(fā)展與變化在促使因特網(wǎng)本身長(zhǎng)遠(yuǎn)發(fā)展的同時(shí)也使得因特網(wǎng)相關(guān)的各種應(yīng)用得到充分的開(kāi)拓和發(fā)展。發(fā)展的同時(shí)對(duì)因特網(wǎng)本身也提出了更高的要求,主要表現(xiàn)在對(duì)信息實(shí)時(shí)性、交互式以及動(dòng)態(tài)訪問(wèn)的需求,而解決這樣一種問(wèn)題的方法之一就是將Web技術(shù)和數(shù)據(jù)庫(kù)技術(shù)結(jié)合想來(lái),通過(guò)這樣兩種技術(shù)的相互結(jié)合和滲透來(lái)實(shí)現(xiàn),下文當(dāng)中具體分析之。
2 Web數(shù)據(jù)庫(kù)體系結(jié)構(gòu)簡(jiǎn)介
Web數(shù)據(jù)庫(kù)系統(tǒng)是基于瀏覽器/服務(wù)器模型建立起來(lái)的,該模式通過(guò)TCP/IP的支持以HTTP為傳輸協(xié)議,客戶端利用Browser來(lái)對(duì)Web服務(wù)器以及相關(guān)后臺(tái)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),在此過(guò)程當(dāng)中,www瀏覽器的主要作用是發(fā)送HTTP請(qǐng)求并對(duì)相關(guān)信息進(jìn)行顯示;Web服務(wù)器的主要作用則是對(duì)用戶服務(wù)進(jìn)行接受并相應(yīng)的做出響應(yīng),因此通常介于Web瀏覽器和數(shù)據(jù)庫(kù)服務(wù)器之間;而服務(wù)器的作用則是將相關(guān)數(shù)據(jù)傳送到被處理的腳本或者是應(yīng)用程序當(dāng)中去,與此同時(shí)在數(shù)據(jù)庫(kù)當(dāng)中進(jìn)行數(shù)據(jù)查詢或者是將相關(guān)數(shù)據(jù)投遞到數(shù)據(jù)庫(kù)當(dāng)中去,最后再將結(jié)果返回到HTML頁(yè)面當(dāng)中,傳送至客戶端實(shí)現(xiàn)對(duì)用戶的響應(yīng),通過(guò)這樣一系列的過(guò)程來(lái)實(shí)現(xiàn)因特網(wǎng)環(huán)境下對(duì)數(shù)據(jù)庫(kù)的操作與訪問(wèn),一方面是能夠使得因特網(wǎng)當(dāng)中信息更加全面和豐富,同時(shí)也能夠使得因特網(wǎng)的操作使用過(guò)程更加簡(jiǎn)便和明快。
3 Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)
基于Web的中間件技術(shù)結(jié)構(gòu)下往往存在較多的中間件方案,采用的是Web服務(wù)器提供的中間件來(lái)對(duì)Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器進(jìn)行連接,整個(gè)數(shù)據(jù)庫(kù)訪問(wèn)過(guò)程由中間件來(lái)完成,獲得的結(jié)果則由Web服務(wù)器返回到客戶端的瀏覽器上,下圖當(dāng)中對(duì)這樣一個(gè)過(guò)程進(jìn)行圖解分析。
應(yīng)用程序下載至客戶端從客戶端直接訪問(wèn)數(shù)據(jù)庫(kù)的技術(shù),其訪問(wèn)Web數(shù)據(jù)庫(kù)客戶端的方法主要包括以下幾種:Java Applet ,ActiveX,Plug in等,其中應(yīng)用最多也最為典型的就是Java Applet,下圖當(dāng)中對(duì)這樣一種方式的工作流程圖進(jìn)行圖解。
上述兩種方法的綜合則是指服務(wù)器當(dāng)中提供中間件,但與此同時(shí)又將應(yīng)用程序的一部分下載到客戶端當(dāng)中去來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn),下文當(dāng)中將對(duì)這樣三種不同的Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)進(jìn)行分析。
3.1 基于Web的中間件技術(shù)
3.1.1 CGI的方法。CGI(Common Gateway Interface,通用網(wǎng)關(guān)接口)是Web服務(wù)器和外部應(yīng)用程序之間的標(biāo)準(zhǔn)接口,最為顯著的優(yōu)勢(shì)就是幾乎所有的Web服務(wù)器都是可以支持CGI的,且任何語(yǔ)言都可以編寫(xiě)CGI的程序,也就是說(shuō),這樣一種方法的通用性十分好。CGI有其固有的優(yōu)勢(shì),但在實(shí)際應(yīng)用環(huán)境下也存在著一定的不足,主要表現(xiàn)在CGI應(yīng)用程序通常只包含一個(gè)獨(dú)立的可執(zhí)行程序,每個(gè)獨(dú)立的可執(zhí)行程序只能夠處理一個(gè)用戶請(qǐng)求,這也就意味著在用戶數(shù)量較大的時(shí)候會(huì)激發(fā)大量CGI程序,造成系統(tǒng)資源擁擠且運(yùn)行效率低。除此之外,CGI還存在著開(kāi)發(fā)難度大和功能有限的問(wèn)題,這樣一些問(wèn)題都在一定程度上制約了CGI更為廣泛的應(yīng)用前景。
3.1.2 ASP。ASP(Active Server Pages)本質(zhì)上來(lái)看既不是語(yǔ)言,也不是開(kāi)發(fā)工具,而是一種技術(shù)框架,可以基于此來(lái)構(gòu)建互動(dòng)、高性能的Web應(yīng)用程序。在Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)當(dāng)中,當(dāng)瀏覽器向WebServer請(qǐng)求調(diào)用ASP文件時(shí),ASP就啟動(dòng)了,WebServer調(diào)用ASP的過(guò)程就是將被請(qǐng)求的.asp文件從頭讀到尾并依次執(zhí)行,最終動(dòng)態(tài)生成HTML頁(yè)面并發(fā)送至瀏覽器。ASP還具備的優(yōu)勢(shì)之一就是其在服務(wù)器端進(jìn)行解釋執(zhí)行,因此在應(yīng)用過(guò)程當(dāng)中完全無(wú)需考慮瀏覽器是否支持,加之其同樣是服務(wù)器端執(zhí)行,因此同樣不用擔(dān)心他人下載程序之后進(jìn)行編程邏輯的竊取。
3.2 應(yīng)用程序下載至客戶端從客戶端直接訪問(wèn)數(shù)據(jù)庫(kù)的技術(shù)
3.2.1 Java Applet。Java Applet訪問(wèn)Web數(shù)據(jù)庫(kù)的實(shí)現(xiàn)是直接將數(shù)據(jù)庫(kù)當(dāng)中的信息下載到客戶端當(dāng)中,然后在客戶端當(dāng)中進(jìn)行訪問(wèn),具體工作過(guò)程如下:Web瀏覽器從服務(wù)器上進(jìn)行HTML頁(yè)面下載,該頁(yè)面當(dāng)中就包含有Java Applet,Java Applet對(duì)JDBC進(jìn)行調(diào)用,瀏覽器運(yùn)行時(shí)就會(huì)和相應(yīng)的數(shù)據(jù)庫(kù)實(shí)現(xiàn)連接,Applet在接收到數(shù)據(jù)之后返回進(jìn)行處理,并最終由瀏覽器來(lái)對(duì)結(jié)果進(jìn)行顯示。通過(guò)上文的說(shuō)明和分析就可以看到,Java Applet的顯著優(yōu)勢(shì)就在于其體系結(jié)構(gòu)的中立,和平臺(tái)以及操作系統(tǒng)等都沒(méi)有直接關(guān)系,這樣在進(jìn)行動(dòng)態(tài)運(yùn)行的時(shí)候就不需要用戶進(jìn)行預(yù)安裝,且能夠在服務(wù)器端的Java Applet實(shí)現(xiàn)更新之后客戶機(jī)端同時(shí)獲得最新版本。
3.2.2 Plug in。Plug in是一種直接接入到瀏覽器程序當(dāng)中的動(dòng)態(tài)鏈接庫(kù),它采用的是DLL的方式,因此通常能夠較好的解決不同瀏覽器程序之間相互調(diào)用的問(wèn)題,作為網(wǎng)絡(luò)能力擴(kuò)展,Plug in更多的是將負(fù)荷放在瀏覽器的程序上,這樣就能夠?yàn)g覽更多類型的數(shù)據(jù),且能夠在多種瀏覽器上實(shí)現(xiàn)顯示。在這樣一種模式下,服務(wù)器僅僅只需要進(jìn)行數(shù)據(jù)的提供即可,網(wǎng)絡(luò)也只需要進(jìn)行一次數(shù)據(jù)傳輸,因此無(wú)論是對(duì)于服務(wù)器還是對(duì)于網(wǎng)絡(luò)來(lái)說(shuō)任務(wù)都是比較少的,因此負(fù)荷會(huì)大大降低。
4 結(jié)束語(yǔ)
綜上所述,基本認(rèn)識(shí)了不同Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的方式和特點(diǎn),得出對(duì)于服務(wù)器的負(fù)擔(dān)重是CGI主要不足,這對(duì)網(wǎng)絡(luò)傳輸而言是不小的壓力,但是好處是與各種平臺(tái)的兼容性很理想;ASP的好處則是對(duì)所有的瀏覽器都支持,且其辯稱邏輯不容易被盜取,但是不足之處則是使用效率較低,能夠運(yùn)行的平臺(tái)也比較少,因此其發(fā)展確實(shí)受到不小的限制;Java Applet和Plug in的好處則在于與平臺(tái)無(wú)關(guān),因此安全性好的同時(shí)移植性強(qiáng)。
參考文獻(xiàn):
[1]周國(guó)征,宋振方.Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的分析與實(shí)踐[J].濟(jì)源職業(yè)技術(shù)學(xué)院學(xué)報(bào),2006(09).
[2]張寶俊,陳立新.Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的探討研究[J].安徽電氣工程職業(yè)技術(shù)學(xué)院學(xué)報(bào)報(bào)刊,2005(09).
[3]孟英杰,曲晶晶.Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的研究[J].科技傳播,2011(08).
作者單位:遼寧省農(nóng)業(yè)經(jīng)濟(jì)學(xué)校,遼寧錦州 121001