李明明
(吉林大學(xué) 網(wǎng)絡(luò)中心,吉林 長春130025)
隨著科技的發(fā)展,21 世紀(jì)計算機(jī)技術(shù)開始進(jìn)入一個被稱為后PC 技術(shù)的時代。后PC 時代的到來,使得人們開始越來越多地接觸到一個新的概念—嵌入式產(chǎn)品。像手機(jī)、PDA(如商務(wù)通等)均屬于手持的嵌入式產(chǎn)品!VCD 機(jī)、機(jī)頂盒等也屬于嵌入式產(chǎn)品,而像車載GPS 系統(tǒng)、數(shù)控機(jī)床、網(wǎng)絡(luò)冰箱等同樣都采用嵌入式系統(tǒng)[1-3]。
隨著消費結(jié)構(gòu)的改變,人們對家電的靈活性和可控性提出了更高的需求,這些需求都極大地刺激了嵌入式的發(fā)展和產(chǎn)業(yè)化的進(jìn)程[4]。嵌入式數(shù)據(jù)庫不需要數(shù)據(jù)庫驅(qū)動程序,直接將數(shù)據(jù)庫的庫文件鏈接到應(yīng)用程序中。應(yīng)用程序通過API 訪問數(shù)據(jù)庫,而不是TCP/IP。因此,嵌入式數(shù)據(jù)庫的部署是與應(yīng)用程序在一起的[5-8]。比如常見的版本控制器Sub Version,它所用的嵌入式數(shù)據(jù)庫就是跟應(yīng)用程序放在一起的。
一個分布式事務(wù)是為了實現(xiàn)特定的業(yè)務(wù)功能,而訪問數(shù)據(jù)庫的一個最小邏輯工作單位,是一個操作序列。在分布式應(yīng)用中,一個分布式的事務(wù)即全局事務(wù),通常由一個主事務(wù)和在不同節(jié)點的子事務(wù)組成。
在多線程服務(wù)器的編程環(huán)境中,為了保證對象的一致性,對象上的操作仍然需要原子操作,通過互斥機(jī)制例如mute X 變量(即互斥變量,設(shè)計一個全局變量作為訪問標(biāo)一記,使資源獨占訪問)可以實現(xiàn)這一點。通過服務(wù)器操作的同步加強(qiáng)客戶協(xié)同,客戶可以將服務(wù)器作為一種共享資源的設(shè)施來使用。上述同步訪問對象的機(jī)制提供了大多數(shù)應(yīng)用中所需要的東西避免了線程相互干擾。
Berkeley DB 為許多編程語言提供了實用的API接口,包括c、c+ +、java、python 和PHP 等。所有同數(shù)據(jù)庫相關(guān)的操作都由Berkeley DB 函數(shù)庫負(fù)責(zé)統(tǒng)一完成。這樣無論是系統(tǒng)中的多個進(jìn)程,或者是相同進(jìn)程中的多個線程,都可以在同一時間調(diào)用訪問數(shù)據(jù)庫的函數(shù)[9]。而底層的數(shù)據(jù)加鎖、事務(wù)日志 和存儲管理等都在Berkeley DB 函數(shù)庫中實現(xiàn)。它們對應(yīng)用程序來講是完全透明的。如果想在資源受限的嵌入式系統(tǒng)上進(jìn)行數(shù)據(jù)庫管理,Berkeley DB 可能就是惟一正確的選擇。
傳輸層是銀行數(shù)據(jù)庫系統(tǒng)中最為重要,最為關(guān)鍵的一層,是唯一可以負(fù)責(zé)系統(tǒng)總體的數(shù)據(jù)傳輸和數(shù)據(jù)控制的一個系統(tǒng)層面,系統(tǒng)傳輸層提供銀行各個分支機(jī)構(gòu)和中心服務(wù)器的端到端的交換數(shù)據(jù)信息機(jī)制,并為相應(yīng)的上層和下層提供可靠的銀行分支機(jī)構(gòu)的目的站點信息,如圖1 所示。
圖1 銀行數(shù)據(jù)庫系統(tǒng)傳輸層體系結(jié)構(gòu)示意圖
在基于Berkeley DB 分布式銀行數(shù)據(jù)庫系統(tǒng)傳輸層接口設(shè)計過程中,其系統(tǒng)在網(wǎng)絡(luò)中的傳輸層上主要包括若干相互連接的銀行數(shù)據(jù)庫系統(tǒng)分支機(jī)構(gòu)和中心服務(wù)器,且系統(tǒng)中的每一分支機(jī)構(gòu)都與中心服務(wù)器相連接,分支機(jī)構(gòu)之間可以相互進(jìn)行通信,同時由分支機(jī)構(gòu)所統(tǒng)計的款項等業(yè)務(wù)數(shù)據(jù)信息都通過傳輸層流向中心服務(wù)器進(jìn)行數(shù)據(jù)統(tǒng)計,因此傳輸層接口的設(shè)計在此銀行數(shù)據(jù)庫系統(tǒng)中占有重要地位[10-12]。
為了實現(xiàn)分布式的網(wǎng)絡(luò)功能,主要設(shè)計成網(wǎng)絡(luò)服務(wù),以服務(wù)進(jìn)程的方式實現(xiàn)。總體的流程如圖2 所示。
系統(tǒng)應(yīng)用的綜合測試主要體現(xiàn)嵌入式分布式銀行數(shù)據(jù)庫系統(tǒng)在應(yīng)用及推廣過程中必須考慮的若干因素,在不會影響系統(tǒng)整體性能及資源配置的前提條件下,需盡量提高該系統(tǒng)的各項指標(biāo),從而是系統(tǒng)得以極大推廣。
(1) 系統(tǒng)配置。系統(tǒng)的資源管理部件主要是用于統(tǒng)一配置整個數(shù)據(jù)庫系統(tǒng)中的有效資源,數(shù)據(jù)庫打開之前,系統(tǒng)的全部配置操作都必需完成。
(2) 支持語言。作為系統(tǒng)中的數(shù)據(jù)庫操作標(biāo)準(zhǔn),不僅需要存在眾所周知的SQL 結(jié)構(gòu)化檢索標(biāo)準(zhǔn),同時也必須存在使用于嵌入式環(huán)境下的C/C+ +標(biāo)準(zhǔn)接口模型。
圖2 設(shè)計總體流程
(3) 適用平臺。系統(tǒng)的嵌入式性質(zhì)使得數(shù)據(jù)庫系統(tǒng)的多平臺支持成為一項重要的性能指標(biāo)要求。
(4) 系統(tǒng)的易操作性。系統(tǒng)實現(xiàn)后是否具有易操作性、交互操作是否友好是該系統(tǒng)得以推廣的重要考慮因素,因此必須對系統(tǒng)進(jìn)行易用性測試[13-16]。
如圖3 所示是系統(tǒng)綜合測試中的一項結(jié)果。
隨著現(xiàn)代信息化的深入,計算機(jī)應(yīng)用深入到生活中的每一個角落,同時由于計算機(jī)網(wǎng)絡(luò)的普及,催生了一系列新的應(yīng)用與技術(shù),如3G 等通信的廣泛應(yīng)用,對于Internet 的數(shù)據(jù)通信、數(shù)據(jù)共享以及高數(shù)據(jù)處理能力的廣泛需求,嵌入式系統(tǒng)數(shù)據(jù)庫技術(shù)的分布式研究與應(yīng)用己經(jīng)變得不可或缺。
[1] 白春禮.分布式數(shù)據(jù)庫系統(tǒng)及其應(yīng)用[M]. 北京:科學(xué)出版社,2005.
[2] 劉志峰.分布事務(wù)監(jiān)控器的恢復(fù)處理研究[D]. 北京:中國科學(xué)院研究生院(軟件研究所),2003.
[3] 鄭振嵋.分布式數(shù)據(jù)庫[M].北京:科學(xué)出版社,1998.
[4] 郭秀敏.嵌入式視頻數(shù)據(jù)庫數(shù)據(jù)加密系統(tǒng)的設(shè)計[J]. 微計算機(jī)信息,2009(11):2-3.
[5] 張 永.嵌入式數(shù)據(jù)庫系統(tǒng)的設(shè)計與實現(xiàn)[D].北京:清華大學(xué),2004.
[6] 吳小博,嵌入式數(shù)據(jù)庫Berkeley DB 研究[D].茂名:湛江師范學(xué)院實驗教學(xué)管理部,2008.
[7] 鄔 蒙,吳 華. 嵌入式數(shù)據(jù)庫讀寫卡的設(shè)計方法[J]. 陜西煤炭,2005(1):1-3.
[8] 范亞國,張能立. 基于嵌入式數(shù)據(jù)庫的海量存儲技術(shù)研究與應(yīng)用[J].中國水運(學(xué)版),2007(9):1-4.
圖3 系統(tǒng)數(shù)據(jù)自動恢復(fù)測試結(jié)果
[9] 杜亞欣,阮學(xué)斌,SQLite ODBC 在KY44B0X 開發(fā)板上的移植研究[J].福建電腦,2009(4):1-2.
[10] 舒 展. 嵌入式系統(tǒng)綜述[J]. 現(xiàn)代計算機(jī)(專業(yè)版),2011(5):3-4.
[11] 肖 為.嵌入式系統(tǒng)概述及其在綜合信息終端中的應(yīng)用及前景[J].北京廣播學(xué)院學(xué)報(自然科學(xué)版),2001(4):4-7.
[12] 呂京建,肖海橋. 面向21 世紀(jì)的嵌入式系統(tǒng)[J]. 半導(dǎo)體技術(shù),2001(1):1-3.
[13] Dunham M,Helal A,Balakrishnan S. A mobile transaction model that captures both the data and movement behaviour[J]. Mobile Networks and Applications,1999,7(2):149-162.
[14] Olson M A. Seleeting and Im Plementingan Embedded Database System[J]. IEEE Computer,2000(3):75-83.
[15] Anton Okillianski. Embedded Database-the Ung lamorous Database Option that Works[J]. Journal of Programmer,2002(12):112-122.
[16] Tesanovie A,Ke Shens,Hansson J. APP lieation-tailored Database Systems:A Case of As PeetsinAn Embedded Database. ProeofInt Confon Database Engineering and APP lieations、IDEAS[C]//Portugal. 2004:145-163.