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