摘 要:本文從分析基于Internet模式數(shù)據(jù)庫訪問機(jī)制的意義出發(fā),闡述了基于Internet模式數(shù)據(jù)庫訪問常用的兩種體系結(jié)構(gòu)即瀏覽器/服務(wù)器結(jié)構(gòu)和客戶端/服務(wù)器結(jié)構(gòu),分析了不同的基于Internet模式的數(shù)據(jù)庫高效訪問方法的優(yōu)缺點(diǎn),并闡述了基于Internet模式的數(shù)據(jù)庫高效訪問主流的三種技術(shù),分別為CGI技術(shù)、JDBC技術(shù)以及API技術(shù)。
關(guān)鍵詞:數(shù)據(jù)源代理;Internet;數(shù)據(jù)庫;訪問機(jī)制
中圖分類號:TP311.13
1 基于Internet模式數(shù)據(jù)庫訪問機(jī)制的意義
隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及,因特網(wǎng)得到越來越多領(lǐng)域的應(yīng)用,譬如:教育領(lǐng)域、醫(yī)療領(lǐng)域以及軍事領(lǐng)域都充分利用網(wǎng)絡(luò)的優(yōu)勢,將網(wǎng)絡(luò)引用到相應(yīng)的工作中。人們?yōu)榱颂岣咴L問數(shù)據(jù)的便捷性和提高數(shù)據(jù)操作的高效性,實(shí)現(xiàn)通過因特網(wǎng)資源來存儲和讀取數(shù)據(jù),通過網(wǎng)絡(luò)對數(shù)據(jù)進(jìn)行管理可以提高數(shù)據(jù)的準(zhǔn)確性和一致性。隨著科技時代的到來,各個行業(yè)逐漸的實(shí)現(xiàn)自動化辦公,自動化辦公模式即將企業(yè)中的所有數(shù)據(jù)信息存儲到固定的數(shù)據(jù)庫軟件中,用戶可以通過頁面的操作對數(shù)據(jù)庫中的信息進(jìn)行查看、添加、修改或者刪除等操作,因此需要為用戶提供一個用戶體驗(yàn)相對較高的軟件系統(tǒng),系統(tǒng)中的訪問數(shù)據(jù)庫方式就應(yīng)該使用數(shù)據(jù)源代理,實(shí)現(xiàn)通過Internet對數(shù)據(jù)庫進(jìn)行訪問,用戶可以通過對頁面相關(guān)控件進(jìn)行操作,進(jìn)而對數(shù)據(jù)庫信息進(jìn)行管理,就是充分利用Internet模式來訪問數(shù)據(jù)庫?;贗nternet模式訪問數(shù)據(jù)庫不僅為廣大用戶提供便利的平臺,更重要的是保證了數(shù)據(jù)信息的一致性、準(zhǔn)確性和真實(shí)性。
2 基于Internet模式數(shù)據(jù)庫訪問的體系結(jié)構(gòu)
基于Internet模式數(shù)據(jù)庫訪問的體系結(jié)構(gòu)主要分為瀏覽器/服務(wù)器(B/S)和客戶端/服務(wù)器(C/S)兩種模式。瀏覽器/服務(wù)器模式是隨著Internet的普及而興起的三層體系結(jié)構(gòu),只要在有網(wǎng)絡(luò)環(huán)境下就可以訪問數(shù)據(jù)庫,而且用戶不需要安裝任何應(yīng)用程序,基于瀏覽器/服務(wù)器模式的數(shù)據(jù)庫訪問體系簡化了軟件系統(tǒng)的維護(hù)工作,WEB服務(wù)器可以動態(tài)的進(jìn)行調(diào)整和配置,這樣保證了數(shù)據(jù)庫的高性能,支持更多的用戶同時訪問數(shù)據(jù)庫,省略了用戶維護(hù)軟件系統(tǒng)的環(huán)節(jié),更重要的是瀏覽器/服務(wù)器模式下的軟件系統(tǒng)的可移植性好,支持對不同的數(shù)據(jù)庫進(jìn)行訪問。在客戶端/服務(wù)器模式下需要用戶安裝相應(yīng)的軟件才能與數(shù)據(jù)庫進(jìn)行交互,可見,當(dāng)應(yīng)用軟件的版本升級后需要更新應(yīng)用程序,為用戶的使用帶來了一定的不便,同時加大了應(yīng)用軟件維護(hù)的難度。隨著網(wǎng)絡(luò)的迅速發(fā)展,最大程度為用戶提供更加便利的平臺,近幾年來越來越多的應(yīng)用程序選擇采用瀏覽器/服務(wù)器模式來實(shí)現(xiàn)Internet訪問數(shù)據(jù)庫。
3 基于Internet模式的數(shù)據(jù)庫高效訪問機(jī)制分析
基于Internet模式的數(shù)據(jù)庫訪問方式得到廣泛WEB應(yīng)用程序的采用,并且可以通過不同的方法,采納不同的技術(shù)來實(shí)現(xiàn),因此為了提高應(yīng)用程序的性能,加強(qiáng)Internet模式訪問數(shù)據(jù)庫的高效性是大勢所趨。
3.1 基于Internet模式的數(shù)據(jù)庫高效訪問方法
常用的基于Internet模式的數(shù)據(jù)庫高效訪問方法有三種,不同的訪問方法具有自身的優(yōu)勢。
通過WEB服務(wù)器的中間插件訪問數(shù)據(jù)庫。這種基于Internet訪問數(shù)據(jù)庫的方法被大部分B/S結(jié)構(gòu)的WEB應(yīng)用程序所采用。WEB服務(wù)器提供了多種編程接口,包括:常用的API、ASP和CGI等。WEB服務(wù)器處理的是HTTP請求,用戶通過對可視化的應(yīng)用程序頁面進(jìn)行操作,發(fā)出數(shù)據(jù)庫訪問請求,應(yīng)用程序后臺會根據(jù)不同的請求轉(zhuǎn)向不同的WEB服務(wù)器中間插件接口,繼而通過WEB服務(wù)器提供的中間插件訪問數(shù)據(jù)庫,最后WEB服務(wù)器將響應(yīng)結(jié)果返回給用戶。這種數(shù)據(jù)庫訪問方式結(jié)構(gòu)比較清晰,大大的提高了數(shù)據(jù)庫的穩(wěn)定性、高效性以及數(shù)據(jù)的傳輸效率。
通過客戶端應(yīng)用程序訪問數(shù)據(jù)庫。用戶將應(yīng)用程序下載并安裝到計(jì)算機(jī)中,運(yùn)行應(yīng)用程序,進(jìn)行相應(yīng)操作時,直接訪問數(shù)據(jù)庫。這種數(shù)據(jù)庫訪問方法加重了數(shù)據(jù)庫的負(fù)荷,提高了應(yīng)用程序和數(shù)據(jù)的耦合程度,不能實(shí)現(xiàn)應(yīng)用程序的分布式管理,更重要的是不能保證數(shù)據(jù)庫信息的安全性和準(zhǔn)確性。因此不建議使用客戶端直接訪問數(shù)據(jù)庫的方法。
結(jié)合前兩種訪問數(shù)據(jù)庫的方法,即客戶端應(yīng)用程序通過WEB服務(wù)器的中間插件訪問數(shù)據(jù)庫。首先用戶安裝應(yīng)用程序客戶端,系統(tǒng)將用戶的請求發(fā)送給WEB服務(wù)器,然后通過WEB服務(wù)器的中間插件訪問數(shù)據(jù)庫。這種數(shù)據(jù)庫訪問機(jī)制,適用于C/S架構(gòu)的軟件系統(tǒng),在一定程度上緩解了數(shù)據(jù)庫的壓力,提高了數(shù)據(jù)庫數(shù)據(jù)的安全性。
3.2 基于Internet模式的數(shù)據(jù)庫高效訪問技術(shù)
基于Internet模式的數(shù)據(jù)庫高效訪問技術(shù)主要有三種,分別為CGI技術(shù)、JDBC技術(shù)以及API技術(shù)。
CGI技術(shù)。CGI是WEB服務(wù)器與WEB應(yīng)用程序之間交互的標(biāo)準(zhǔn)公共網(wǎng)關(guān)接口。CGI建立了用戶和服務(wù)器雙方的規(guī)則,保證數(shù)據(jù)庫信息在應(yīng)用程序和數(shù)據(jù)庫之間的安全交互。CGI是由C、C++或者VB編寫的應(yīng)用軟件,其工作原理是WEB服務(wù)器在接收到用戶的HTTP請求時激活CGI應(yīng)用,CGI應(yīng)用根據(jù)具體的請求啟用不同的模塊來進(jìn)行處理,通過相應(yīng)的SQL語句訪問數(shù)據(jù)庫,CGI再將響應(yīng)信息返回給WEB服務(wù)器,與此同時CGI應(yīng)用執(zhí)行完畢后被釋放,當(dāng)WEB服務(wù)器接收到新的HTTP請求時再激活CGI應(yīng)用。
JDBC技術(shù)。JDBC是用于執(zhí)行SQL語句的應(yīng)用程序接口。JDBC技術(shù)被JAVA語言編寫的應(yīng)用程序廣泛應(yīng)用。JDBC支持JAVA應(yīng)用程序的跨平臺性,實(shí)現(xiàn)相同的應(yīng)用程序訪問不同數(shù)據(jù)庫。JDBC技術(shù)主要有JDBC應(yīng)用接口和JDBC驅(qū)動接口兩層接口,其中JDBC應(yīng)用接口包括建立數(shù)據(jù)庫連接的驅(qū)動接口、實(shí)現(xiàn)數(shù)據(jù)庫連接的接口、執(zhí)行SQL語句的接口和處理數(shù)據(jù)結(jié)果集的接口等四個主要接口。JDBC技術(shù)訪問數(shù)據(jù)庫需要六個步驟,首先要加載JDBC驅(qū)動程序,其次建立數(shù)據(jù)庫的連接,創(chuàng)建Statement,執(zhí)行SQL,處理結(jié)果集,最后關(guān)閉JDBC對象。
API技術(shù)。API技術(shù)是為了完善CGI技術(shù)存在的不足而產(chǎn)生的應(yīng)用程序編程接口。API將WEB服務(wù)器和數(shù)據(jù)庫的連接嵌入到WEB服務(wù)器的內(nèi)層,這樣當(dāng)WEB服務(wù)器處理HTTP請求時直接激活被編譯后的DLL應(yīng)用,進(jìn)而訪問數(shù)據(jù)庫即可,在WEB服務(wù)器釋放之前,DLL應(yīng)用被加載后一直存于內(nèi)存當(dāng)中,因此API技術(shù)提高了數(shù)據(jù)庫的訪問效率。而且API技術(shù)支持?jǐn)?shù)據(jù)庫連接池引擎,減少了WEB應(yīng)用程序與數(shù)據(jù)庫連接的次數(shù),優(yōu)化了應(yīng)用程序與數(shù)據(jù)庫連接的過程,提高了應(yīng)用程序的運(yùn)行效率。
針對于當(dāng)前的企業(yè)級的應(yīng)用程序來說,程序的結(jié)構(gòu)越來越清晰,耦合程度也在逐漸降低,然而數(shù)據(jù)量也越來越大,在一個業(yè)務(wù)中可能需要對不同的數(shù)據(jù)庫信息進(jìn)行操作和管理,因此在應(yīng)用程序中需要配置多個數(shù)據(jù)源,但是為了確保在某個操作下不同數(shù)據(jù)源中數(shù)據(jù)的一致性,業(yè)務(wù)邏輯就要同時對不同的數(shù)據(jù)庫操作進(jìn)行統(tǒng)一的管理,因此數(shù)據(jù)源代理就要設(shè)定一個全局的事務(wù)管理器。當(dāng)今Web應(yīng)用程序開發(fā)經(jīng)常用到的Spring框架,就可以實(shí)現(xiàn)對事務(wù)很好的控制,因?yàn)镾pring框架中的AOP機(jī)制可以實(shí)現(xiàn)對日志和事務(wù)等進(jìn)行良好的管理。
參考文獻(xiàn):
[1]陳晟,常樂,景寧.基于Internet的空間數(shù)據(jù)庫訪問技術(shù)研究及實(shí)例[J].小型微型計(jì)算機(jī)系統(tǒng),1999(12):104-107.
[2]包海峰.基于INTERNET的企業(yè)數(shù)據(jù)庫同步設(shè)計(jì)方案[J].計(jì)算機(jī)工程與應(yīng)用,2002(04):124-125.
[3]常輝,陳福生.基于Internet的數(shù)據(jù)庫訪問技術(shù)分析[J].安徽職業(yè)技術(shù)學(xué)院學(xué)報,2005(04):139-140.
[4葉曉彤.INTERNET數(shù)據(jù)庫訪問技術(shù)性能研究[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報,2003(02):102-104.
作者單位:銀川能源學(xué)院計(jì)算機(jī)與信息工程系,銀川 750105