摘 要:數(shù)據(jù)庫中間件是所有中間件中應用最廣和發(fā)展前景最好的一種中間件,數(shù)據(jù)庫中間件作為一個應用程序,期在前端客戶機和后端數(shù)據(jù)庫之間架起了一個橋梁。在接收到客戶端的數(shù)據(jù)請求后,其經(jīng)過做一些簡單的數(shù)據(jù)處理,而后再把請求在傳遞到相應的后端數(shù)據(jù)庫,進行最后的數(shù)據(jù)處理,然后將結(jié)果由數(shù)據(jù)庫中間件返回給客戶端。本文在對中間件進行一個簡單定義的總結(jié)后,主要闡述了中間件在數(shù)據(jù)庫連接等相關的處理,也就傳統(tǒng)C/S環(huán)境下的客戶端進行的處理移植到中間層上的技術進行介紹,其實,中間件技術的使用目的是精簡客戶端,減輕客戶機的負擔,這樣做可以增強系統(tǒng)的并行處理或性能。
關鍵詞:中間件;Web數(shù)據(jù)庫;客戶機;服務器
中圖分類號:TP311.52
為了解決應用程序?qū)W(wǎng)絡地人依賴的問題采取了一種有效的方法,即在客戶機和服務器之間加一層軟件,稱之為“中間件(Middleware)”。其作用就是在管理Web服務器和數(shù)據(jù)庫服務器之間的通信同時,提供對應的應用程序服務?;谥虚g件駐留在Web服務器上的原因,其還可以作為Web服務器和數(shù)據(jù)庫服務器中“傳輸機制”的外部程序或“編碼”,并可以將最后的查詢反饋信息以純文本等形式發(fā)送給你最終用戶。
1 中間件的基本概念
簡言之,中間件主要解決異構(gòu)網(wǎng)絡環(huán)境下分布式應用軟件的通信、交互操作和協(xié)同問題,它可屏蔽并發(fā)控制、事務管理和網(wǎng)絡通信等各種實現(xiàn)細節(jié),提高應用系統(tǒng)的易移植性。從廣義的角度,中間件在某種意義上可以理解為中間層軟件,通常是批處理系統(tǒng)軟件和應用軟件之間的中間層次的軟件,其主要目的是對應用軟件的開發(fā)提供更為直接和有效的支撐,中間件的體系結(jié)
2 中間件的體系結(jié)構(gòu)
在現(xiàn)如今的物聯(lián)網(wǎng)應用中,應用軟件及中間件遠比操作系統(tǒng)和網(wǎng)絡服務更為重要,因而中間件的體系結(jié)構(gòu)對于應用軟件開發(fā)有著很大的影響力。中間件的特性保護了企業(yè)在應用軟件開發(fā)和維護中的大量投資,因為中間件可以不斷升級更新,并保持對外接口的定義不變,這樣就為應用程序提供了一個高層的應用環(huán)境。不管底層的計算機硬件和系統(tǒng)軟件咋的更新?lián)Q代,其系統(tǒng)應用軟件都不需要更新?lián)Q代。
3 基于Web的中間件技術
3.1 CGI技術
公共網(wǎng)關接口(CGI)是一種Web站點上可以用來訪問Web站點的用戶交互的各種程序的標準,CGI腳本允許用戶在瀏覽器上的數(shù)據(jù)庫進行交互,完成對數(shù)據(jù)庫的各種操作。
CGI的工作原理是瀏覽器通過Web頁面的表單搜索參數(shù),這些參數(shù)通過HTTP傳遞Web服務器,在服務器通過CGI腳本分析參數(shù),同時啟動通路程序,把分析后的參數(shù)轉(zhuǎn)化為SQL命令主,交數(shù)據(jù)服務器執(zhí)行,然后CGI程序返回處理結(jié)果給Web服務器,最后向客戶機返回HTML或純文本格式的結(jié)果斷開連接。
3.2 ASP技術
針對CGI運行效率低、編程困難等問題,Web服務器軟件廠商開發(fā)了各自的應用編程接口。ASP技術是目前廣泛被采用的一種中間件技術,ASP是一種開放的,可以將HTML腳本及可重用的Active Server組件結(jié)合在一起以建立高效的動態(tài)的基于Web的應用程序環(huán)境,利用ASP,可以增加運行在服務器端的腳本的新特性。
3.3 JDBC技術
JDBC是一種可用于執(zhí)行SQL語句的應用程序設計接口(JavaAPI)。它由一些Java語言寫的類、界面組成。JDBC給數(shù)據(jù)庫應用開發(fā)人員、數(shù)據(jù)庫前臺工具開發(fā)人員提供了一種標準的應用程序設計接口,使開發(fā)人員可以用純Java語言編寫完整的數(shù)據(jù)庫應用程序。用JDBC寫的程序能夠自動地將SQL語句傳送給相應的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。不但如此,使用Java編寫的應用程序可以在任何支持Java的平臺上運行,不必在不同的平臺上編寫不同的應用。Java和JDBC的結(jié)合可以讓開發(fā)人員在開發(fā)數(shù)據(jù)庫應用時真正實現(xiàn)“WriteOnce,RunEverywhere!”,Java具有健壯、安全、易用等特性,而且支持自動網(wǎng)上下載,本質(zhì)上是一種很好的數(shù)據(jù)庫應用的編程語言。目前兩種基于JDBC的高層API正處在開發(fā)階段。
3.4 JSP技術
JSP(Java Server Pages)是由Sun微系統(tǒng)公司于1999年6月推出的一種建構(gòu)在Servlet技術之上的Web技術,JSP將Servlet中的HTML代碼脫離了出來,從而可以加速Web應用開發(fā)和頁面維護。在這種技術中你可以將Java代碼嵌入到HTML文件,服務器將自動為頁面創(chuàng)建一個Servlet.利用JSP可以建立跨平臺的、更加先進和安全的動態(tài)網(wǎng)站。
JSP使用JDBC(Java DataBase Connectivity)/JDO技術訪問數(shù)據(jù)庫,對于只有ODBC的數(shù)據(jù)庫,使用SUN公司的JDBC-ODBC橋程序來連接訪問。服務器端生成的結(jié)果以HTML或XML頁面的形式返回,保護了代碼的安全性。
4 一種新的數(shù)據(jù)庫訪問技術――JSP/Servlet
JSP和Servlet技術是用Java開發(fā)服務器端應用的主要技術,是開發(fā)商務應用表示端的標準。Servlet是在服務器端執(zhí)行的Java程序,一個被稱為Servlet容器的程序(其實就是服務器)負責執(zhí)行Java程序。而JSP(Java Server Page)則是一個頁面,由JSP容器負責執(zhí)行。
Servlet和JSP兩者最大的區(qū)別就是,Servlet以Java程序為主,輸出HTML代碼時需要使用out.println函數(shù),也就是說Java中內(nèi)嵌HTML;而JSP則以HTML頁面為主,需要寫Java代碼時則在頁面中直接插入Java代碼,即HTML中內(nèi)嵌Java。而兩者的共同點是jsp是servlet的另一種書寫方式,最紅jsp都要編譯成servlet并裝載到內(nèi)存中進行執(zhí)行。一般jsp用于動態(tài)頁面的表現(xiàn),所以多用于視圖層,而servlet擅長業(yè)務邏輯的處理,多用于控制層。
JSP技術規(guī)范中給出了兩種使用JSP開發(fā)Web應用的方式,這兩種方式可以歸納為單一的JSP模型(JSP+JavaBeans)和JSP與Svervlet的混合模型(JSP+Servlet+JavaBeans),單一模型適合于處理邏輯比較簡單的應用;混合模型則適合處理邏輯比較復雜,需要涉及多個JavaBeans組件的場合,這兩種模型的主要差別在于它們處理業(yè)務的流程不同。在實際應用過程中,更多的是采用混合模型。開發(fā)人沒根據(jù)具體應用可以的規(guī)??梢詫窘Y(jié)構(gòu)進行更改,達到靈活應用。
5 結(jié)束語
在Web上,數(shù)據(jù)庫的應用進一步提高了Web的功能和吸引力。為了實現(xiàn)綜合信息服務的目標,我們可以通過運用不同中間件的解決方式把Web和數(shù)據(jù)庫結(jié)合集成一起,同時,值得我們更加關注的是JDBC技術,其作為聯(lián)結(jié)Web服務器與數(shù)據(jù)庫新的橋梁,在保留了Java本身很多優(yōu)良的特性。伴隨著科技的不斷發(fā)展,居多數(shù)的流行的數(shù)據(jù)庫系統(tǒng)都研發(fā)退出來自己的JDBC驅(qū)動程序,JDBC技術出現(xiàn)了代碼執(zhí)行效率的問題,與其同時還面臨著外部公司系統(tǒng)的不斷挑戰(zhàn)。
參考文獻:
[1]杜小丹,張鳳荔.中間件技術在Web數(shù)據(jù)庫訪問中的應用研究[J].計算機應用研究,2002(08).
[2]徐琨,劉志鏡.Web數(shù)據(jù)庫訪問的中間件技術分析與研究[J].計算機工程與科學,2002(04).
[3]劉易斯.中間件技術[M].北京:高等教育出版,2002.
作者單位:安順學院 電子與信息工程學院,貴州安順 561000