Web數據庫中間件技術
曾曉金
(雲南工業大學計算機應用重點實驗室 昆明 650051)
摘要:介紹了Web數據庫的幾種中間件解決方案,並比較了它們的特色與不足,以及Web數據庫出現的相應最新技術。
關鍵詞:中間件 CGI ASP ISAPI NSAPI JDBC
隨著Internet/Intrranet的興起與發展,Web服務器與數據庫服務器的連接顯得越來越重要,許多廠家不斷推出新技術、新產品,使得連接更加簡潔、迅速和方便。Web與數據庫連接技術已成為基於Web的信息管理系統的核心,為Internet上的電子商貿打下了基礎。
一般來說,通過Web頁實現對數據庫訪問的基本框圖如圖1,在整個系統中關鍵的技術是中間件的解決方案。
圖1、Web頁面訪問數據庫示意圖
中間件負責管理Web服務器和數據庫服務器之間的通信並提供應用程序服務。由於駐留在Web服務器上,因而中間件軟件能夠調用作為Web服務器和數據庫服務器間"傳輸機制"的外部程序或"編碼",並將執行查詢等以Html頁面或純文本的形式將信息返回給最終用戶。數據庫服務器負責管理駐留在數據庫服務器中的數據。
一、現對當前幾種流行的中間件的解決方案作一討論。
1.通用網關技術(CGI)
CGI是一種Web站點上可以用來訪問Web站點的用戶交互的各種程序的標准,使用CGI腳本允許用戶在浏覽器中等服務器上的數據庫交互,完成對數據庫的各種操作。
幾乎使用的服務器軟件都支持CGI,開發者可以使用任何一種Web服務器內置語言編寫CGI,包括Perl語言,C,C++,VB和Delphi等。
CGI的工作原理是浏覽器通過Web頁面的表單搜索參數,這些參數通過HTTP傳遞Web服務器,在服務器通過CGI腳本分析參數(命令行參數或環境變量),同時啟動通路程序,把分析後的參數轉化為SQL命令,交數據庫服務器執行,然後CGI程序返回處理結果給Web服務器,最後向客戶機返回Html或純文本格式的結果並斷開連接。
CGI缺點是執行速度較慢,Web服務器每啟動一個數據查詢服務,就必須啟動一個新的CGI進程,相對服務器資源代價比較高。
2.ASP(Active Server Pages)
ASP是一種開放的,可以將Html腳本及可重用的Active Server組件結合在一起以建立高效的動態的基於Web的應用程序環境,利用ASP,可以增加運行在服務器端的腳本的新特性,如訪問數據庫。
ASP支持Active Server組件的使用,Active Server組件通過組件對象模型(COM)為ASP提供了可編程的界面,其中組件之一Active Data Object(ADO)提供了與數據庫相連的機制。且使用ASP可以直接在HTML文件中包含可執行的腳本,HTML開發和腳本開發可以變為一個過程,而不象CGI、ISAPI以及其他方法一樣,程序和Html文件要求在不同的設計環境導致程序產生和修改困難。
3.應用編程接口(API)
鑒於CGI的一些缺陷,Microsoft和Netscape開發了專用的Web服務器中的程序代碼(如動態鏈接庫DLL),且一般與Web服務器軟件處在內存的同一地址空間中,因此每次調用時是在內存中運行相應的程序段,而不是像CGI那樣需要啟動新的進程,因而效率要比CGI高得多。
API技術主要缺點是開發難度大,且可移植性差,開發出的應用程序只能在相應的Web服務器上運行,缺乏通用性。
為了減輕開發應用程序的困難,Netscape和Microsoft在其各自的服務器中提供了基於API的編程接口。Netscape提供了基於NSAPI的Livewire,它是專門設計的全面開發方案,開發人員可以開發和管理WWW界面、WWW網點,並且可以利用SQL語句或ODBC直接訪問數據庫。