[摘 要]客戶機/服務器兩層結構的模式大大阻礙著系統的發展,單一的服務器結構緊密地依賴供應商,也難以管理客戶端的機群,文章就此問題展開研究和探討。
[關鍵詞]數據庫 客戶端 中間件
隨著用戶業務需求的增長以及Intenet/Intranet的普及。傳統兩層C/S模式將以三層C/S模式體系結構取而代之。三層C/S結構是將應用從功能劃分成用戶界面層、商務服務層和數據層,以商務服務層為核心,通過某種形式的中間件來實現它的功能。
中間件在客戶機/服務器或服務器/服務器之間傳送高級通信,將客戶機群和服務器群結合起來。其工作流程是:在客戶機里的應用程序需要駐留網上某個服務器的數據或服務時搜索此數據的C/S應用程序需訪問中間件系統.該系統將查找數據源或服務。并在發送應用程序請求后重新打包響應。將其傳送回應用程序。數據庫訪問中間件就是實現這種功能的一種中間件。
一、數據庫中間件的作用
多媒體教學支撐平臺系統.對于數據庫的容量和訪問能力要求不苛刻.但是它存儲的數據類型雜、訪問量不固定、后臺數據庫種類不一、服務器操作系統各異。因此.這一類數據庫中間件的作用主要是以下一些:
1. 支持常用大型數據庫的各種操作。可以支持ORACLE,INFORMIX,SYBASE,MSSQL,DB2,MYSQL等常用數據庫,以及JDBC、ODBC接口。更換數據庫只要更換相應的驅動就可以,而不需要修改所開發軟件系統的代碼,方便安全。
2. 提供統一接口。屏蔽數據庫之間的操作差異。
3. 封裝復雜煩瑣的數據庫應用接口和數據庫操作過程,簡化應用程序的數據庫操作.提高應用程序開發效率。
4. 支持常用的操作系統。如Windows、UNIX、Linux等常見主流操作系統。跨平臺支持。便于應用代碼在各平臺之間的移植。
二、數據庫中間件的設計
客戶端到數據連接管理器之間的是邏輯連接,而數據庫到數據連接器之間的是物理連接。
數據庫中間件位于客戶端與數據庫之間把二者隔離開來。中間件與各個客戶之間的數據通訊采用流套接字實現,多個連接由多個線程完成,這種并發的通訊機制使得訪問效率大大提高。中間件與數據庫之間采用JDBC連接,多用戶共享一個數據連接。同樣起到了提高數據庫訪問效率的效果。數據庫中間件對數據庫的訪問和操作采用SQL語言。
數據庫中間件的核心是數據連接管理器,它是一個服務程序,連接了客戶端和后臺數據庫。客戶端向其發出對數據庫的訪問請求,由數據連接管理器尋找與該數據庫的可用連接,通過數據連接將訪問請求傳遞給目標數據庫。目標數據庫執行相應的SQL語句,將結果通過數據連接傳回數據連接管理器,再傳回給客戶端。
三、數據庫中間件的實現方法
根據數據庫中間件的設計思想,在實現過程中主要運用了下面的關鍵技術。
1. JDBC(Java Database Connectivity)。JDBC是一個通用的SQL數據庫訪問框架.它對于不同的數據庫使用了統一的接口。使用JDBC只需寫一個數據庫接口。不需要重新編碼就能夠訪問任何數據源。由于JDBC已經得到了各大廠商的認可與支持.也為開發者和用戶提供了一條從WEB服務器訪問數據庫的捷徑。JDBC將進一步得以推廣從而最終成為WE B服務器訪問數據庫的事實標準。所開發系統中應用的數據庫中間件原型就是建立在JI)BC的基礎上。
2. 流套接字(Stream Socket )。TCP協議提供了一條可靠的點對點通信通道,套接字是在網絡上運行的兩個程序之間的雙向通信鏈路的一個端點。對應于TCP的套接字稱為流套接字.它是面向連接的。服務器應用程序偵聽特定端口,等待來自客戶的連接請求。當一個連接請求到達時,客戶與服務器之間建立一條專用連接,它們就在這條連接上通信。在連接過程中。客戶被分配一個本地端口號,并將一個套接字綁定到這個端口。客戶通過向套接字寫入信息以及從套接字中讀出來自服務器的信息的方式與服務器通信。
與此相似,服務器也獲得一個新的本地端口號。服務器也將一個套接字綁定到它的本地端口,并通過讀寫這個套接字與客戶通信。
3. 多線程技術。線程是指進程中單一順序的控制流。每個進程在任何給定時刻可能有若干個線程在運行。線程共享進程的所有的程序和數據;線程有自身的運行單元:線程有它自己的私有存儲和執行環境,使得服務器進程不隨客戶數的增加而線性增加。可減少服務器進程的壓力,降低開銷。充分利用CPU的資源。
線程被用來建立請求驅動的服務程序。每個客戶一個線程。多個線程可以并發執行.多個并發線程對多個客戶的并發請求采取分而治之的措施。從而解決并發請求的問題。多線程的低資源開銷和高運行效率。使得它具有廣闊的應用前景。多線程技術在三層客戶機,服務器模式中應用相當廣泛。
四、結論
通過實際測試和應用.該數據庫中間件的功能和性能都得到了充分的驗證。在數據庫流量一般而且訪問頻率比較低的情況下,可以做到及時準確地實現數據庫的查詢和寫入等操作。訪問量大的情況下。有可能因為阻塞和延遲造成超時的錯誤返回。然而,對多媒體教學支撐平臺系統來說,峰值訪問的情況少。而且通過對數據庫的進一步科學設計。采用多層索引等方式。可以減少一次性的數據操作量,在一定程度上可以避免出現峰值頻繁訪問。
針對多媒體教學平臺對數據庫的容量和訪問能力要求不苛刻,對存儲的數據類型雜、訪問量不固定、后臺數據庫種類不一、服務器操作系統各異所設計的數據庫中間件滿足了日常應用環境的訪問需求。并在異構替換等方面體現了優越性。缺點主要在于只能進行簡單的數據庫查詢等操作,還不能進行聯機事務處理。安全性、緩沖機制和連接管理也有待完善。
參考文獻:
[ l] Blackfin Embedded Processor bf533 datasheet
[2] ADSP—BF533 Blaekfin Processor Hardware Reference