- 相關(guān)推薦
基于Web的交互式數(shù)據(jù)庫查詢技術(shù)
基于Web的交互式數(shù)據(jù)庫查詢技術(shù) 中國科學(xué)技術(shù)大學(xué)計(jì)算機(jī)系 唐雪峰 趙保華摘要: 介紹通過Web服務(wù)器實(shí)現(xiàn)數(shù)據(jù)庫動(dòng)態(tài)數(shù)據(jù)交互的幾種方法及其對(duì)比,著重以實(shí)例說明如何實(shí)現(xiàn)與DBASE x和ORACLE數(shù)據(jù)庫的交互操作。
關(guān)鍵詞:Web, CGI,ISAPI,ASP
1 概述
Web技術(shù)是一項(xiàng)很新的技術(shù),它不僅為Internet的廣泛普及起到關(guān)鍵性的作用,而且還在其他相關(guān)計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用技術(shù)發(fā)展中起到關(guān)鍵作用,例如Intranet、電子商務(wù)等,目前它已成為計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用的一個(gè)主要技術(shù),尤其重要的技術(shù)是web動(dòng)態(tài)技術(shù),與后臺(tái)數(shù)據(jù)庫的交互式動(dòng)態(tài)查詢技術(shù)。本文針對(duì)常用的web動(dòng)態(tài)技術(shù),與數(shù)據(jù)庫交互技術(shù)作以介紹。
2 實(shí)現(xiàn)Web動(dòng)態(tài)技術(shù)的幾種方法
2.1 利用CGI實(shí)現(xiàn)Web動(dòng)態(tài)技術(shù)
在Web應(yīng)用中,與其他動(dòng)態(tài)編程技術(shù)相比,CGI技術(shù)雖然是一項(xiàng)很早期的技術(shù),有很多的不足,性能差、需要大量的HTTP知識(shí)、不靈活等等,但筆者認(rèn)為它還是具有很強(qiáng)的使用性,因?yàn)槠涫褂闷毡,很多Web服務(wù)器均支持。就其協(xié)議而言,具有簡單、易掌握,見效快等特點(diǎn)。因此本文介紹的應(yīng)用實(shí)例主要是基于它的。
CGI是Common Gateway Interface的縮寫,目前大多數(shù)的Web產(chǎn)品提供此項(xiàng)服務(wù)功能,它可以使用任何一種計(jì)算機(jī)語言編寫,使用尤其廣泛的有C、Perl、C 語言,在Internet上有很多相關(guān)的資料和程序及源代碼。
它的運(yùn)行過程如圖1,Web服務(wù)器接受客戶端瀏覽器的URL請(qǐng)求,找到CGI程序后,啟動(dòng)并產(chǎn)生一個(gè)CGI進(jìn)程,將系統(tǒng)參數(shù)和用戶請(qǐng)求參數(shù)交給CGI進(jìn)程,由CGI進(jìn)程提取數(shù)據(jù)庫中數(shù)據(jù)處理后,產(chǎn)生結(jié)果,反饋給Web服務(wù)器,由其反饋給用戶端瀏覽器。這樣完成了一個(gè)請(qǐng)求過程。
圖1 CGI調(diào)用流程(略)
IDC(Internet數(shù)據(jù)庫連接器)
通過使用Internet數(shù)據(jù)庫連接器可以發(fā)布你的數(shù)據(jù)庫,允許用戶訪問數(shù)據(jù),只需開發(fā)者編寫最少量的代碼。你只需提供SQL查詢(IDC將在數(shù)據(jù)庫上執(zhí)行它)和模板(描述數(shù)據(jù)顯示和收集的方式),而不用進(jìn)行復(fù)雜的程序設(shè)計(jì),這種方法適用于簡單的不需要控制和驗(yàn)證數(shù)據(jù)的程序。它是IIS的功能之一 ,IIS通過調(diào)用一個(gè)名為HTTPODBC.DLL的ISAPI應(yīng)用程序處理.IDC和.HTX文件實(shí)現(xiàn)的,調(diào)用處理過程如圖2,它是一個(gè)不連續(xù)的循環(huán)。應(yīng)用中要注意隱藏.IDC和.HTX文件。保證應(yīng)用程序和數(shù)據(jù)庫的安全性。
圖2IDC應(yīng)用程序的處理過程(略)
基于ISAPI的解決方案
ISAPI(Internet Server Application Programming Interface)是Microsoft的IIS提供的一種新的接口標(biāo)準(zhǔn),用于開發(fā)交互式Web應(yīng)用程序,它采用的語言多為面向?qū)ο蟮木幊陶Z言如Visual C 、Delphi等,它與CGI程序很相似,但在性能方面較CGI應(yīng)用程序相比有較大提高,在執(zhí)行時(shí)不需要重復(fù)裝入代碼,能夠降低系統(tǒng)開銷,提高運(yùn)行速度;具有很強(qiáng)的靈活性,與服務(wù)器之間能夠很好的銜接,能夠?qū)崿F(xiàn)一些很復(fù)雜的操作和控制。分為ISAPI擴(kuò)展程序和ISAPI過濾器兩種方式,前者主要完成類似CGI程序的功能,后者能夠?qū)崿F(xiàn)與IIS的更完美的結(jié)合,可以監(jiān)督所有的驗(yàn)證請(qǐng)求或所有服務(wù)器發(fā)送到用戶的數(shù)據(jù),過濾器跨越整個(gè)服務(wù)器,并能影響服務(wù)器的工作方式.但I(xiàn)SAPI編程需要開發(fā)者有熟練的經(jīng)驗(yàn),特別對(duì)服務(wù)器操作、客戶端與服務(wù)器之間的通訊方式的較深的理解和嫻熟的編程技巧。
活動(dòng)服務(wù)器頁面(Active Server Pages)
它是由第三版IIS提供的新特性,實(shí)質(zhì)是通過一個(gè)名為sspifilt.dll的ISAPI過濾器實(shí)現(xiàn)的,主要提供的功能是開發(fā)人員可以通過使用服務(wù)器端腳本(VBScript或VCScript)動(dòng)態(tài)生成網(wǎng)頁,可以同訪問數(shù)據(jù)庫的ActiveX控件連接在一起使用來實(shí)現(xiàn)數(shù)據(jù)庫的動(dòng)態(tài)交互查詢。是目前較新的一種技術(shù)。
第三方解決方案
許多第三方工具可以用來幫助你創(chuàng)建交互式Web應(yīng)用程序,它們主要改善了CGI程序的開發(fā)環(huán)境,降低開發(fā)人員掌握基于Web的數(shù)據(jù)庫交互式應(yīng)用程序的開發(fā)難度,幫助你使用所熟悉環(huán)境來開發(fā)應(yīng)用程序,保存現(xiàn)有應(yīng)用程序代碼的移植和復(fù)用性。值得一提的產(chǎn)品有以下幾種產(chǎn)品:
WebAction是classTools公司的產(chǎn)品,網(wǎng)址:http:///
Tornado 網(wǎng)址:http:///tornado.htm
WebHub是HREF Tools公司的產(chǎn)品,網(wǎng)址:http:///
Foxweb是Fox公司的產(chǎn)品,網(wǎng)址:http:///
幾種常用方法的對(duì)比 見表1。
對(duì)比 項(xiàng)目
基于CGI技術(shù)數(shù)據(jù)庫連接器IDC 基于ISAPI 活動(dòng)服務(wù)器頁面ASP 第三方解決方案 操作 系統(tǒng)幾乎任何操作系統(tǒng) Window NT Window NT Window NT 與具體產(chǎn)品有關(guān) Web 服務(wù)器主流Web服務(wù)器均支持 IIS IIS IIS 與具體產(chǎn)品有關(guān) 運(yùn)行 速度每次請(qǐng)求均需要調(diào)入一次程序,隨著請(qǐng)求數(shù)量增加而變慢基于ISAPI擴(kuò)展解釋方式,速度由于其與操作系統(tǒng)和Web服務(wù)器結(jié)合緊密其速度快中一般較慢 對(duì)編程人員要求需要對(duì)HTTP、HTML、TCP\IP和CGI協(xié)議,SQL、至少一種計(jì)算機(jī)編程語言熟悉HTML、SQL、IDC嵌入腳本面向?qū)ο蟮木幊陶Z言Delphi、Visual C ,熟悉網(wǎng)絡(luò)環(huán)境和協(xié)議、數(shù)據(jù)庫接口需要熟悉HTML、Jscript或VBScripts腳本語言、SQL 有初步的HTML和網(wǎng)絡(luò)知識(shí)和產(chǎn)品要求的編程語言 培訓(xùn)對(duì)于網(wǎng)絡(luò)環(huán)境用戶較為容易容易較難較易容易 適于程序規(guī)模任何規(guī)模小特殊要求或規(guī)模性程序中小中小表1 幾種常用方法的對(duì)比
3 實(shí)例
針對(duì)大慶采油四廠的具體情況,主要以DbaseX數(shù)據(jù)庫和Oracle數(shù)據(jù)為主,我們主要采取兩種方式,DbaseX類型數(shù)據(jù)庫一般存放在Window NT Server上,多數(shù)編程人員多適應(yīng)Xbase語言的編程,我們采用第三方產(chǎn)品,在服務(wù)器端安裝Foxweb產(chǎn)品,這樣保證了現(xiàn)有軟件開發(fā)人員能夠利用Foxpro進(jìn)行CGI程序編制達(dá)到交互目的,有助于使現(xiàn)有程序員較為容易的掌握,從而盡快產(chǎn)生良好的效果。
安裝Foxweb產(chǎn)品后,其中一個(gè)名字為Foxweb.exe的文件相當(dāng)于一個(gè)普通的CGI程序,安裝在Web服務(wù)器的CGI目錄下,用Vfoxpro編寫的程序需要有它來解釋后執(zhí)行。
在Foxweb中提供全局變量“CGI.參數(shù)名字”和下面3個(gè)函數(shù)
【基于Web的交互式數(shù)據(jù)庫查詢技術(shù)】相關(guān)文章:
基于ASP技術(shù)開發(fā)Web數(shù)據(jù)庫檢索程序03-18
基于Web技術(shù)的網(wǎng)絡(luò)考試系統(tǒng)03-18
基于Web數(shù)據(jù)庫的信息發(fā)布系統(tǒng)JSP+SQL03-08
數(shù)據(jù)庫管理系統(tǒng)中的模糊查詢技術(shù)03-03
基于Web技術(shù)的高校監(jiān)考安排系統(tǒng)的設(shè)計(jì)與應(yīng)用02-27
基于WEB的在線考試系統(tǒng)03-09
基于Web服務(wù)的集成研究03-08