程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> Web數據庫中間件技術

Web數據庫中間件技術

編輯:關於MYSQL數據庫

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直接訪問數據庫。

Microsoft則提供了基於ISAPI的IDC模塊,它是IIS的一個動態連接庫(httpodbc.dll),並通過ODBC訪問各類數據庫。

4.JDBC技術

Java是一種簡單、面向對象、易傳送、穩固安全、多線程執行控制及3D空間設計的語言,它為Internet注入了交互性。Java支持數據庫的訪問,是因為SUN公司提供了一種標准的SQL訪問數據庫的Java語言應用程序編程接口(JDBC)。構成Java語言的基礎是一系列類庫,而JDBC正是定義了Java與數據庫之間的接口類庫(Java.sql包),它是Java語言中執行SQL語句的API,它由一系列類和接口所組成,這些類和接口均是由Java語言寫成的,通過它一個程序開發者可以在Java語言中建立與數據庫的鏈接,執行SQL語句和處理SQL語句返回的結果。

采用JDBC很容易用SQL語句訪問異構數據庫,如通過JDBC API,只需編寫一個JDBC API,就可以把SQL查詢語句送往Sybase,Oracle或 Informix數據庫,同時采用Java語言編寫應用程序,具有平台無關性,不要為不同的平台編寫不同的應用程序。



圖2、JDBC技術工作示意圖



采用JDBC技術其工作方式為:客戶端首先訪問Web服務器,下載Java字節碼文件,並將Applet相關類的字節碼文件和JDBC接口字節碼文件下栽到客戶端,然後與Web服務器脫離,接著Applet根據數據庫地址,端口號和帳號與數據庫服務器連接進行交互,這樣用戶與數據庫服務器的交互是由浏覽器直接完成的。由於JDBC技術的可操作性、可維護性和安全性及事務處理能力、使用效率都比較高,因此具有很大的優勢。

Java與數據庫的連接機制與CGI和API有所不同,在客戶機上運行Java Applet通過JDBC技術可以繞過Web服務器直接和數據庫服務器連接,並直接把帶有結果的Html頁返回客戶機浏覽器。

象ODBC一樣,JDBC提供給程序員的編程接口是由兩部分組成,一是面向應用程序的編程接口JDBC API,它是為應用程序員提供的,二是供底層開發的驅動程序接口JDBC Driver API,它是各個商業數據庫廠商提供的。目前,JDBC已經得到了許多廠商的支持,包括 Borland,IBM,Oracle和Sybase等公司,當前流行的大多數數據庫系統都推出了自己的JDBC驅動程序。



二、結束語

數據庫在Web上的應用無疑增強Web的功能和吸引力,我們可以采用不同的中間件解決方式把Web與數據庫相集成,達到綜合信息服務的目的。值得關注的是JDBC技術,JDBC作為新的聯結Web服務器與數據庫的橋梁,同時仍保留著Java本身許多引人注目的特性,大多數流行的數據庫系統都已推出了自己的JDBC驅動程序,其主要的問題則是代碼的執行效率問題,同時,還面臨著微軟公司的ActiveX的有力挑戰。





參 考 文 獻

1、[美]Jeffry Dwight等著 ,CGI開發使用手冊,機械工業出版社

2、[美]DanIEl J.Berlin,etal著,清華大學出版社

3、張世永編,數據庫與WWW,復旦大學出版社

4、陳品德,基於Web的信息系統的開發,計算機工程(1998、3)

5、邵立兵,Sybase數據庫與Web的互連,計算機工程(1998、3)

6、陳喃,Java的遠程數據庫訪問模型及其實現,計算機系統應用(1998、9)

7、劉東等,基於WWW的數據庫應用,計算機系統應用(1998,4)

8、羅東川,Java語言與DataBase 之間的接口--JDBC,計算機系統應用(1998,3)

9、羅娟等,Web 與數據庫技術,計算機工程(1998,8)

10、譚郁松等,基於Web環境下的異構數據庫連接技術的研究與實現,計算機工程(1998、8)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved