[摘要] 介紹基于中間件的Web數據庫服務模型以及幾個最基本的中間件技術。
[關鍵詞] 中間件 Web服務器 數據庫
基于中間件的Web數據庫服務作為一種基于HTTP協議標準的多層Client/Server數據庫服務模型模式,其基本框架如圖所示。
中間件負責管理Web服務器和數據庫服務器之間的通信并提供應用程序服務(功能層),它能夠直接或間接調用外部程序或腳本代碼來訪問數據庫,因此可以提供與數據庫相關的動態HTML頁面,或執行用戶查詢并將查詢結果格式化成HTML頁面,通過Web服務器返回給用戶瀏覽器。
圖Web數據庫服務模型
根據中間件的功能和結構以及數據庫連接技術的不同,目前存在著多種Web數據庫服務模型。最基本的中間件技術有通用網關接口(CGI)、應用程序編程接口(API)接口以及Web_DB技術產品。
一、CGI技術
通用網關接口CGI,及其改進產品FastCGI,可以作為上圖中的中間件,允許Web服務器執行外部程序,通過外部程序來訪為數據庫等外部資源,以產生HTML文檔并返回Web服務器。這一方案的優點是易于實現,用戶可以明用瀏覽器,暗用數據庫。用戶在Web頁面上交互式填查詢表,即可通過Web進行異地數據庫存取,并在瀏覽器上顯示結果。缺點是當中間件為CGI時,每次訪問都需要重新啟動一個CGI程序實例,它以進程形式運行,占用資源較多,效率較低,且難于解決連續事務處理。
二、API技術
為了克服CGI局限,一些Web服務器廠商開發出專用的API,允許開發人員編寫程序來擴充服務器的功能,如Microsoft的ISAPI、Netscape的NSAPI等。與CGI相比,API應用程序與Web服務器結合更緊密,占用的系統資源也少得多,而其運行效率卻大大得到提高,同時還能提供更好的保護和安全性。
然而,如果純粹依賴于API實現數據庫訪問,開發API應用程序也要比開發CGI程序要復雜的多,而且,由于各種API之間兼容性很差,缺乏一個統一的業界標準,因此應用程序往往還只能工作在專用的Web服務器甚至操作系統上。
三、Web_DB技術產品
如上所述,CGI和API有一系列缺點,這些缺點造就了Web數據庫的商業機會,各公司競相出臺Web_DB技術產品。根據實現技術不同,又可以分為以下幾種:
1.提供數據庫產品的CGI接口
這類技術通常為數據庫產品及其開發工具提供專用的CGI程序接口,將開發人員從繁重的CGI編碼中解放出來,從而提高開發效率。如用于Microsoft Visual FoxPro的FoxWeb。這類技術并未克服CGI的局限。
2.提供支持數據庫訪問的API接口
這類產品在Web服務器的API基礎上,提供數據庫的訪問接口,在客戶端采用VBScript、JavaScript、Java Applet、Plug-in等技術實現動態Web應用。目前這類產品最豐富,應用也比較成熟。如Microsoft的IDC、Borland的Web Broker、Sybase的Web.SQL和Web.PB等。
3.提供專用的Web服務器,捆綁數據庫服務
如Oracle的Web Server能和Oracle7/8數據庫系統無縫結合,使應用程序具有較高的運行效率。但難以連接其它數據庫系統。
這些技術和產品各有特色,其中很多中間件產品在充分兼容CGI標準和利用API技術的基礎上,還引入了擴充的HTML標集合服務器端的程序或腳本,并允許建立包含擴充標記和腳本的HTML頁面模板;而在響應用戶的請求的同時,則通過轉換這些特殊的標記和執行相應的程序或腳本來完成數據庫的訪問,同時生成動態的HTML頁面返回給用戶。
但我們也注意到,大多數的Web_DB技術產品是由Web服務器或數據庫廠商開發的,很少能夠做到同時兼容不同的操作系統、Web服務器和數據庫系統,并且又具有較好的開發和運行效率。
在實現基于Web的醫學影像數據庫檢索服務時可采用Allaire公司的ColdFusion,ColdFusion也屬于Web_DB技術產品,但是由于Allaire屬于第三方開發商,使得ColdFusion能夠很好地獨立于操作系統、Web服務器和數據庫系統。
參考文獻:
[1]王繼成等編著:Web應用開發原理與技術[M]. 機械工業出版社, 2003年4月
[2]劉偉等編著:CGI技術全面接觸[M]. 清華大學出版社,2001年8月
[3]楊放春等編著:異構網絡中間件與開放式API技術[M].北京郵電大學出版社, 2007年3月