Web數據庫技術采用三層或多層體系結構,前端采用基于瘦客戶機的瀏覽器技術,通過Web服務器及中間件訪問數據庫,如圖5-19所示。

目前,主要應用的Web數據庫訪問技術包括以下幾個方面。
1.公共網關接口技術CGI
CGI是Web服務器運行時外部程序的規范,按照CGI編寫的程序可以擴展服務器的功能,完成服務器本身不能完成的工作,外部程序執行時可以生成HTML文檔,并將文檔返回Web服務器。CGI應用程序能夠與瀏覽器進行交互作用,還可以通過數據庫的API與數據庫服務器等外部數據源進行通信。如一個CGI程序可以從數據庫服務器中獲取數據,然后格式化為HTML文檔后發送給瀏覽器,也可以將從瀏覽器獲得的數據存人數據庫。幾乎所有的服務器軟件都支持CGI,開發者可以使用任何一種Web服務器內置語言編寫CGI,其中包括流行的C、C++、Visual Basie和Delphi等。按照應用環境的不同,CGI又可以分為標準CGI和間接CCI。
標準CGI使用命令行參數或環境變量來表示服務器的詳細請求,服務器與瀏覽器間的通信采用標準輸人輸出方式。當服務器接收瀏覽器發來的CGI請求時,服務器對該請求進行分析,設置所需的環境變量或命令參數,然后創建一個子進程啟動CGI程序,CGI執行完畢后,使用標準輸出將執行結果返回給服務器。CGI的輸出可以有許多類型,例如,HTML文檔、圖像、純文本或聲音文件等,它還可以輸出指向其他文檔的鏈接。
間接CGI又稱為緩沖CGI,或者WinCGI。在CGI程序(不支持標準輸人輸出)和CGI接口之間插人一個緩沖程序,緩沖程序與CGI接口間用標準輸人輸出進行通信。這樣。CGI程序采用緩沖區(臨時文件)而不是標準輸人/輸出來進行數據通信。當服務器接收到瀏覽器的請求時,創建一個子進程啟動緩沖程序,緩沖子進程與服務器進行通信。它通過標準輸人陣俞出、命令行參數和環境變量獲得有關數據,并將這些數據保存在一輸人緩沖區中。然后緩沖子進程再創建一個子進程啟動CGI程序,CGI程序讀取輸人緩沖區的內容,處理瀏覽器的請求,將輸出的內容保存在輸出緩沖區中。緩沖進程通過命令行參數或環境變量等方式,傳送輸人緩沖區和輸出緩沖區的地址(或臨時文件)到CGI子進程。緩沖進程與CGI子進程保持同步以監測CGI程序的執行狀態。當緩沖進程得到CGI子進程的輸出時,設置有關環境并終止該子進程,然后通過標準輸出與服務通信,通過服務器CGI程序的輸出結果返回給瀏覽器。相似地,服務器進程與緩外進程也應保持同步以監測緩沖進程執行的狀態。間接CGI最明顯的特點是服務器與CGI程序間的數據交換是通過緩沖區而不是標準輸人輸出進行的。
可以看出,CGI程序應用是作為一個獨立的外部應用來運行的,與服務器上的其他進程競爭處理器資源,這將導致運行速度減慢。而且,用CGI開發支持Web應用程序也是一個比較困難的過程。開發人員不僅要掌握HTML語言,還要掌握低級編程語言。CGI的另外一個眾所周知的缺陷是不提供狀態管理功能,如果沒有狀態管理,那么瀏覽器的每一次請求,都需要一個連接的建立與釋放的過程,效率較低。另外,必須用某個特定數據庫服務器的專用SQL語言來手工編寫數據庫接口,其移植性也不好。
2.專用API
目前生產Web服務器和數據庫服務器的各大公司紛紛推出各自專用的API進行Web與數據庫的連接。Netscape公司推出了NSAPI。微軟公司推出了用于連接其Weh服務器IIS與數據庫的ISAPI。Oracle使用標準的Wel)公共網關接口,將其PL/SQL開發環境與Web連接在一起,使用Oracle Web Server,通過weh客戶機可直接調用Oracle的存儲過程來生成動態的Web文檔。sybase的Web .sql把Web服務器和sybase sQL server及其他的數據庫環境(通過Omni Connect)集成在一起,在使用CGI與Web服務器進行協作的同時,還可以使用Netseape的NSAPI直接與Web服務器連接。運用InforMix的WebDataBade模塊就無須再進行傳統的CGI編程,它將所有的Web結點內容和應用邏輯集中存儲在服務器中,可以很容易地建立動態的、多媒體功能豐富的Web應用。
3.服務器端腳本編程技術
當前較流行的幾種有代表性的服務器端的腳本編程技術是ASP(ACtive Server Page)、PHP(Personal Home Page)和JSP(Java Server Pages)。
ASP是微軟公司于1996年11月推出的Web應用程序開發技術。在有關文檔中ASP被描述為:一個服務器端的腳本環境,可以生成和運行動態的、交互的、高性能的Weh服務器應用程序。ASP是目前公認的建立 Windows NT動態站點最好的工具。它與ADO(Active Data Object)的充分結合,提供了強大的數據庫訪問功能,成為了進行網上數據庫管理的重要手段。
Asp內含IIS當中,提供一個服務器端(server-side)的seripting環境。站點服務器會自動將ASP的程序碼,解釋為標準HTML格式的主頁內容,再送到用戶端的瀏覽器上顯示出來。用戶端只要使用常規可執行HTML碼的瀏覽器,即可瀏覽。
ASP雖然具有強大優勢,但它在安全性上仍存在一些問題,例如,可能引起NT內存泄露,以及最初只能在Windows 9x/NT/2000環境下運行等。對于前者,微軟公司已經推出了補丁程序,以彌補它的不足;而對于后者,已經有人開發了在非微軟的Wel)服務器上支持AsP語言的軟件,如Apache_ASP、chiliSoft ASP等,可以在Red Hat、SuSE等操作系統下運行AsP腳本。數據庫的支持包含了Oracle、sybase、MysQL等。
PHP是一種基于服務器端來創建動態網頁的嵌人式腳本語言。當一個訪問者打開主頁時,服務端便執行PHP的命令并將執行結果發送至訪問者的瀏覽器中,這類似于ASP,然而PHP和ASP不同之處在于PHP開放源碼和跨越平臺,PHP可以遠行在Windows NT和多種版本的UNIX上。它大量地借用C、Java和Perl語言的語法,并結合PHP自己的特性,較Web開發者能夠快速地寫出動態頁面。它支持目前絕大多數數據庫,是開發企業網站的利器。PHP是完全免費的,使用者可以自由下載,甚至可以不受限制地獲得源代碼,加進自己需要的特色。
JSP是Sun公司倡導的、許多公司參與一起建立的一種新一代網站開發語言。它完全解決了目前ASP、PHP的通病-腳本級執行。JSP可以在ServerIet和JavaBean的支持下,完成功能強大的站點程序。
ASP、PHP和JSP各有所長,學習者可以選擇某種適合自己的技術來進一步學習。
本文發布于UEO營銷型網站建設公司尚品中國http://www.londe303.com/