嵌入式數(shù)據(jù)庫的應(yīng)用
摘要 嵌入式數(shù)據(jù)庫一般不出現(xiàn)在表現(xiàn)層,所以很難被一般的用戶所察覺。實際上,被稱作“嵌入式數(shù)據(jù)庫”的軟件早在20年前就已經(jīng)被組合在各種應(yīng)用程序、軟件組件和硬件環(huán)境中。它有兩個很重要的特征——“嵌入性”和“實時性”。這里用實際應(yīng)用的實例來說明,在嵌入式系統(tǒng)里如何有效地使用嵌入式數(shù)據(jù)庫。
本文引用地址:http://2s4d.com/article/87776.htm關(guān)鍵詞 嵌入式數(shù)據(jù)庫 工業(yè)控制 汽車導(dǎo)航 信息家電 宇宙航空 機(jī)器人 醫(yī)療信息系統(tǒng) 路由器
引言
嵌入式系統(tǒng)中一直很少使用數(shù)據(jù)庫,因此對大部分人來說,很難想象嵌入式數(shù)據(jù)庫在哪些場合才能發(fā)揮出優(yōu)勢。事實上,嵌入式數(shù)據(jù)庫大致可在以下兩大領(lǐng)域使用:
?、?會計、證券交易等業(yè)務(wù)的應(yīng)用軟件。在這類軟件中應(yīng)用,不是把數(shù)據(jù)庫作為服務(wù)器端組成C/S結(jié)構(gòu),而是將數(shù)據(jù)庫嵌入到應(yīng)用程序(使之成為程序的一部分)進(jìn)行使用。通常也稱為“軟件嵌入”。
?、?車載導(dǎo)航、路由器、信息家電、DVD記錄裝置、iPOD、機(jī)器人等嵌入式系統(tǒng)。在這類嵌入式系統(tǒng)當(dāng)中,除了硬件部分外,還需用軟件對其進(jìn)行控制。這時將嵌入式數(shù)據(jù)庫嵌入到這些硬件當(dāng)中,可使系統(tǒng)的性能和效率大大提高。通常也稱作“硬件嵌入”。
1 嵌入式數(shù)據(jù)庫和企業(yè)級數(shù)據(jù)庫的比較
現(xiàn)在常用嵌入式數(shù)據(jù)庫的領(lǐng)域是汽車電子和信息家電等領(lǐng)域。嵌入式數(shù)據(jù)庫軟件同企業(yè)級數(shù)據(jù)庫軟件(如IBM公司的DB2、Microsoft公司的SQL Server、Oracle公司的Oracle Database)等相比,有以下不同點(diǎn):
?、?內(nèi)核足夠小,可嵌入于應(yīng)用程序和處理能力受限的硬件環(huán)境;
?、?性能高,比企業(yè)級數(shù)據(jù)庫速度要快,實時性要求高;
③ 成本低,可嵌入手機(jī)、車載導(dǎo)航等批量生產(chǎn)的系統(tǒng)里;
?、?可裁減,能夠根據(jù)實際需要增加或者減少必要功能模塊;
⑤ 嵌入性,能夠嵌入到軟件系統(tǒng)或者硬件系統(tǒng)。對終端用戶來說是透明的,他們在使用時意識不到嵌入式數(shù)據(jù)庫的存在,能夠免維護(hù)。
2 嵌入式數(shù)據(jù)庫應(yīng)用實例
2.1 FA領(lǐng)域的實例
下面舉例介紹嵌入式數(shù)據(jù)庫產(chǎn)品在控制儀器、數(shù)據(jù)收集裝置中的使用。
FA(Factory Automation)是采用計算機(jī)控制技術(shù)使工廠自動化,既可提高生產(chǎn)效益又可實現(xiàn)必要的功能。嵌入式數(shù)據(jù)庫在FA領(lǐng)域已經(jīng)廣泛使用。
2.1.1 汽車碰撞測試裝置
嵌入式數(shù)據(jù)庫經(jīng)常在汽車碰撞測試裝置中使用,如圖1所示。所謂汽車碰撞測試,是檢驗汽車安全性能的一種有效手段。在測試中,讓汽車高速碰撞某個物體,然后收集嵌入在車體中各個部位的各種感應(yīng)器所發(fā)出的數(shù)據(jù),再對這些數(shù)據(jù)進(jìn)行分析,這需要在碰撞的瞬間大量地收集和保存數(shù)據(jù)。這時,如何能盡快地保存數(shù)據(jù)是一個問題。為了解決這個問題,在汽車碰撞測試裝置中使用嵌入式數(shù)據(jù)庫,取得非常好的實際效果。
圖1 汽車撞擊試驗
2.1.2 發(fā)電機(jī)監(jiān)視裝置
在美國大型發(fā)電廠的發(fā)電機(jī)監(jiān)視裝置里,使用了嵌入式數(shù)據(jù)庫。發(fā)電廠的發(fā)電機(jī)是非常重要的生產(chǎn)設(shè)備,所以要嚴(yán)格管理以防發(fā)電機(jī)停機(jī)。發(fā)電機(jī)的監(jiān)控裝置通過收集發(fā)電機(jī)的各種數(shù)據(jù)進(jìn)行監(jiān)視,如圖2所示。
圖2 發(fā)電機(jī)監(jiān)控裝置
這種需要實時監(jiān)控的場合,在數(shù)據(jù)庫里預(yù)先錄入了監(jiān)視數(shù)據(jù)用的程序模塊。當(dāng)某數(shù)據(jù)進(jìn)入“異常值”、“異常范圍”、“警戒范圍”的時候,這些程序模塊會檢測出這些數(shù)據(jù),然后自動報警,同時通知監(jiān)視中心有異常情況。這種數(shù)據(jù)收集也可用于發(fā)電機(jī)系統(tǒng)的模擬試驗。
2.1.3 監(jiān)視引擎
在美國的大型飛機(jī)制造廠,為了收集引擎的測試數(shù)據(jù)和飛機(jī)內(nèi)部機(jī)械的數(shù)據(jù),在飛機(jī)上也裝載了嵌入式數(shù)據(jù)庫。在美國的大型汽車制造廠的引擎廢氣排放測試裝置里,也嵌入了數(shù)據(jù)庫,廢氣排放測試的結(jié)果全部保存于數(shù)據(jù)庫,以后的其他測試、分析以及模擬試驗等環(huán)節(jié)就能有效利用這些數(shù)據(jù)。2008年奧運(yùn)會所使用的環(huán)保巴士內(nèi)也使用了嵌入式數(shù)據(jù)庫。
2.1.4 在FA領(lǐng)域中使用數(shù)據(jù)庫的注意事項
在這個領(lǐng)域利用嵌入式數(shù)據(jù)庫時,會有一些常見的典型問題,如往數(shù)據(jù)庫寫入數(shù)據(jù)的速度和性能等問題。一方面要求內(nèi)存消耗量足夠少,一方面又需要對大量數(shù)據(jù)的進(jìn)行運(yùn)算,所以必須同時滿足兩個相反的要求。再者,像發(fā)電機(jī)裝置監(jiān)視的例子那樣,數(shù)據(jù)監(jiān)視模塊必須要嵌入到數(shù)據(jù)庫中(在實際的嵌入式數(shù)據(jù)庫中,這些監(jiān)視模塊主要是通過用戶自定義的函數(shù)來實現(xiàn)數(shù)據(jù)的收集、監(jiān)視和報警等)。
另外,在出現(xiàn)故障時能否通過事務(wù)處理和恢復(fù)注冊等功能進(jìn)行數(shù)據(jù)的恢復(fù)也很重要。
2.2 車載導(dǎo)航的實例
2.2.1 車載導(dǎo)航的GPS與自動導(dǎo)航裝置組合
車載導(dǎo)航系統(tǒng)在日本等發(fā)達(dá)國家已經(jīng)普及,在中國實際使用者應(yīng)該也有很多。不過對日常使用的車載導(dǎo)航,了解它的內(nèi)部構(gòu)造的人并不多。這里就有關(guān)車載導(dǎo)航的系統(tǒng)構(gòu)造進(jìn)行簡單說明。
車載導(dǎo)航GPS(Global Position System,全球定位系統(tǒng))是利用裝有車速脈沖、羅盤傳感器等的“自動導(dǎo)航法”裝置,為正在駕車的駕駛員進(jìn)行現(xiàn)在的位置及駛向目的地行駛路線導(dǎo)航的一種電子儀器。
車載導(dǎo)航剛開始開發(fā)時,只使用“自動導(dǎo)航法”裝置。由于靠裝置自身來推算出車輛的位置,因此行駛開始后有必要對行駛到一定地點(diǎn)的行駛方向和行駛角度進(jìn)行小調(diào)整?,F(xiàn)在GPS方法非常盛行。該方法通過GPS推算出車輛的位置。不過只靠GPS,不管怎樣設(shè)計總會有某種程度的誤差。因此,現(xiàn)在的車載導(dǎo)航通過對GPS和“自動導(dǎo)航法”裝置組合的方法來彌補(bǔ)雙方的缺點(diǎn),以推算出車輛的位置。
2.2.2 車載導(dǎo)航與地圖信息的融合
車載導(dǎo)航正在朝以下各方向進(jìn)化,即它不局限于檢測出車輛自身的位置,還可以根據(jù)需要調(diào)出道路信息和地圖信息等,并把這些信息和車輛的行駛狀況相對照進(jìn)行計算后提示給用戶,如圖3所示。為了得到這些信息,應(yīng)在車載導(dǎo)航上裝載DVDROM之類的存儲設(shè)備。由于地圖信息不是需要頻繁更新的相對靜止信息,DVDROM之類的ROM存儲設(shè)備完全可以滿足這些信息的處理要求。
圖3 汽車導(dǎo)航系統(tǒng)
2.2.3 用車載導(dǎo)航處理交通信息
隨著技術(shù)的發(fā)展,現(xiàn)在的車載導(dǎo)航系統(tǒng)把交通信息、堵車信息等也都反映在車載導(dǎo)航中了。因為這些信息要不斷地被更新,所以ROM存儲設(shè)備已很難滿足需求了。
為此,許多最新的設(shè)計方案中用硬盤存儲介質(zhì)(HDD,Hard Disk Drive)代替ROM存儲介質(zhì)。這樣,能夠?qū)Χ喾N信息進(jìn)行更新的新一代車載導(dǎo)航產(chǎn)品問世了。另外,由于裝載了HDD使得車載導(dǎo)航的運(yùn)行速度變得更快。
2.2.4 車載導(dǎo)航上追加媒體終端功能
現(xiàn)在可以播放音樂、能與因特網(wǎng)聯(lián)網(wǎng)的具備個人電腦功能的車載導(dǎo)航系統(tǒng)已經(jīng)出現(xiàn)了。另外,還可將電視功能作為標(biāo)準(zhǔn)配置裝在車載導(dǎo)航系統(tǒng)上。電視機(jī)除了具有原先的模擬播放形式外,還具有點(diǎn)播方式的數(shù)字電視功能。
2.2.5 現(xiàn)在的車載導(dǎo)航存在的問題
現(xiàn)在的車載導(dǎo)航還有許多功能不能滿足客戶的要求。例如:不能進(jìn)行復(fù)合檢索和模糊檢索。所謂“復(fù)合檢索”就是類似這樣的檢索要求:“要在距離人民廣場10 km范圍內(nèi)并距離火車站3 km的范圍內(nèi)的地方尋找三星級以上賓館”。所謂“模糊檢索”是,只知道要檢索的公司名或地點(diǎn)名的一部分,通過“中間一致”和“后方一致”的方式檢索出所有匹配的類似目標(biāo)。
大部分車載導(dǎo)航是通過使用ROM存儲方式提供地圖信息、店鋪信息以及設(shè)施的數(shù)據(jù)來進(jìn)行計算的,不能夠隨時對有變化的一部分?jǐn)?shù)據(jù)進(jìn)行更新,只能重新再制作一張DVDROM,對所有的信息進(jìn)行一次性的完全更新。
除此以外,不同的使用者應(yīng)該可以設(shè)定自己的個性化數(shù)據(jù),即在使用車載導(dǎo)航時,根據(jù)個人的身份數(shù)據(jù)的不同,應(yīng)能產(chǎn)生不同的檢索結(jié)果(這被稱為“個性化功能”)。在目前的車載導(dǎo)航上還不能夠?qū)崿F(xiàn)這種功能。要實現(xiàn)這些功能,必須使用嵌入式數(shù)據(jù)庫。
2.2.6 數(shù)據(jù)庫用在車載導(dǎo)航場合能實現(xiàn)的功能
下面再詳細(xì)說明一下嵌入式數(shù)據(jù)庫在裝入車載導(dǎo)航裝置后能實現(xiàn)的新功能。
在檢索功能方面,不但能實現(xiàn)上面的復(fù)合檢索和模糊檢索等,還能實現(xiàn)空間檢索。所謂的“空間檢索”,就是能在二維地圖上進(jìn)行檢索。具體地說,就是手機(jī)帶有的道路向?qū)Ш蛙囕d導(dǎo)航的路由檢索功能中預(yù)先把坐標(biāo)數(shù)據(jù)和屬性數(shù)據(jù)保存于數(shù)據(jù)庫中,在檢索條件里設(shè)定一個空間范圍(比如:離某地幾km內(nèi),同時在另外一個范圍內(nèi)。類似二個圓的交集)。
個人住所地址或店鋪名稱等發(fā)生更改時,使用嵌入式數(shù)據(jù)庫的優(yōu)勢就體現(xiàn)出來了。例如“A百貨店”改為“B百貨店”時,要是不更換新的DVDROM 就一直是“A百貨店”,如果換上新的DVDROM就會變成“B百貨店”,“A百貨店”就不能被檢索了,二者都是不能被接受的。這時如果使用嵌入式數(shù)據(jù)庫,則在一定的時期內(nèi)對輸入的“A百貨店”或“B百貨店”都能進(jìn)行檢索;過了一定時期后,還可以刪掉“A百貨店”,只讓“B百貨店”成為檢索對象。
以個人履歷信息為基礎(chǔ)的詳細(xì)個性化功能的形式如:在“張三”的車載導(dǎo)航的履歷中,他經(jīng)常去壘球場。以后,只要“張三”檢索體育場,首先就會顯示壘球場的信息。
現(xiàn)在的車載導(dǎo)航有個很麻煩的問題,那就是由于不能隨時隨地按要求部分地更新導(dǎo)航設(shè)備中需要更新的相關(guān)信息,而使整個導(dǎo)航儀器的信息不準(zhǔn)確。下一代的車載導(dǎo)航通過使用數(shù)據(jù)庫來解決這個問題,使數(shù)據(jù)能夠得到及時更新;并且在數(shù)據(jù)更新的同時,還可以進(jìn)行數(shù)據(jù)檢索。還有一個重要的優(yōu)點(diǎn)就是,車載導(dǎo)航的數(shù)據(jù)庫不會因為引擎停止、電源切斷等原因而被損壞。當(dāng)然,用在車載導(dǎo)航中的嵌入式數(shù)據(jù)庫資源消耗量(CPU和儲存容量)必須很低,而且對有關(guān)歷史信息、路徑信息也須有某種程度的安全保護(hù)功能。
加載數(shù)據(jù)庫后的車載導(dǎo)航系統(tǒng)功能如圖4所示。
圖4 加載數(shù)據(jù)庫后的車載導(dǎo)航系統(tǒng)功能
2.3 信息家電的實例
2.3.1 與網(wǎng)絡(luò)連接的家電是將來的主流
信息家電正在改變?nèi)藗兊纳?。以電視機(jī)、大容量刻錄機(jī)、DVD、HD、AV機(jī)等為代表的家電數(shù)字化進(jìn)程正在穩(wěn)步推進(jìn)。另外,電視節(jié)目也將以數(shù)字化的形式傳輸和播放。這些節(jié)目可以預(yù)先存儲在服務(wù)器上再播放,即所謂的“服務(wù)器蓄積型”播放形式。
所謂信息家電就是具有信息處理能力的家電產(chǎn)品。例如:數(shù)碼相機(jī)、手機(jī)等產(chǎn)品,以及今后以和計算機(jī)網(wǎng)絡(luò)連接為前提的產(chǎn)品(例如DVD、刻錄機(jī)、機(jī)頂盒等)。這些產(chǎn)品一定會越來越多。
2.3.2 信息家電中使用嵌入式數(shù)據(jù)庫的例子
信息家電領(lǐng)域使用數(shù)據(jù)庫的實例如圖5所示。比如一個用于衛(wèi)星播放或有線播放的機(jī)頂盒。機(jī)頂盒里保存有大量的數(shù)據(jù),如節(jié)目表、節(jié)目內(nèi)容、某時間段播放的電影內(nèi)容介紹、主演演員的介紹等信息。這些信息的管理和下載、錄入和檢索等都要通過數(shù)據(jù)庫來實現(xiàn)。用了數(shù)據(jù)庫技術(shù)以后,對節(jié)目信息可以同時進(jìn)行下載和檢索。這是利用多進(jìn)程的數(shù)據(jù)庫來實現(xiàn)的,一個數(shù)據(jù)庫可以支持多個用戶同時訪問。另外,使用節(jié)目名字、種類等進(jìn)行更復(fù)雜的復(fù)合檢索都變得簡單易行。
圖5 信息家電刻錄
和互聯(lián)網(wǎng)電視從遠(yuǎn)程下載節(jié)目信息的接收裝置一樣,許多信息家電需要進(jìn)行遠(yuǎn)距離的電視節(jié)目信息的管理、下載、檢索,并根據(jù)演員的名字或節(jié)目種類進(jìn)行復(fù)合檢索。今后的DVD刻錄機(jī)、帶HDD的DVD刻錄機(jī)等產(chǎn)品也需要這些功能。
另外,通過在卡拉OK遙控裝置中裝載嵌入式數(shù)據(jù)庫,就可以提供根據(jù)曲名、種類進(jìn)行復(fù)雜的復(fù)合檢索。通過設(shè)定廣告播放控制盒等設(shè)備的各種參數(shù),可以實現(xiàn)廣告內(nèi)容的定時管理等功能。
2.3.3 信息家電中使用數(shù)據(jù)庫的注意事項
要在信息家電領(lǐng)域使用數(shù)據(jù)庫,數(shù)據(jù)庫的內(nèi)核必須足夠的小。電源斷電后的恢復(fù)功能(即電源斷電后自動恢復(fù)到原先狀態(tài)的功能)也是必要的。在實際應(yīng)用中,電源發(fā)生瞬間或者長時間斷電的時候,對數(shù)據(jù)進(jìn)行保護(hù)是毋庸置疑的。數(shù)據(jù)庫通常是通過事務(wù)處理來對數(shù)據(jù)進(jìn)行保護(hù)的。具體地說,這種事務(wù)處理就是把日志寫入文件系統(tǒng)。因此,一旦文件系統(tǒng)被破壞,就不能進(jìn)行事務(wù)處理了。也就是說,僅靠文件系統(tǒng)層面來實現(xiàn)電源斷電恢復(fù)功能或數(shù)據(jù)保護(hù)功能是很難的。嵌入式數(shù)據(jù)庫里可以帶有其他的硬件所提供的獨(dú)立的高性能、高穩(wěn)定性的文件系統(tǒng)來完善電源斷電恢復(fù)功能和數(shù)據(jù)保護(hù)功能。這時,可以根據(jù)需要選擇文件系統(tǒng)層面的斷電保護(hù)和數(shù)據(jù)庫層面的斷電保護(hù)。
在信息家電的制造中,常常受生產(chǎn)成本或價格的制約,僅靠硬件達(dá)不到預(yù)期的高性能。因此需要嵌入式數(shù)據(jù)庫,以支持內(nèi)存存取和磁盤存取。把最重要的數(shù)據(jù)表放到內(nèi)存,可以大大提高性能,降低成本。
現(xiàn)在,嵌入式數(shù)據(jù)庫在宇宙航空和機(jī)器人等方面有很多實際應(yīng)用。例如木星探查伽利略計劃,衛(wèi)星觀測系統(tǒng),地上測定、命令處理系統(tǒng),衛(wèi)星控制系統(tǒng),天氣預(yù)報的發(fā)布系統(tǒng),戰(zhàn)爭模擬游戲等。除此以外,還有許多其他的宇宙航空項目和機(jī)器人項目中使用了嵌入式數(shù)據(jù)庫,如圖6所示。
圖6 機(jī)器人控制
嵌入式數(shù)據(jù)庫在宇宙航空以及機(jī)器人的應(yīng)用程序中起著核心的作用。在數(shù)據(jù)庫中保存著全部的程序、指令、可執(zhí)行的模塊,并將這些制作成基于知識(knowledge based)或者基于規(guī)則 (rule based)的系統(tǒng)??蓤?zhí)行模塊將根據(jù)傳感器的信息執(zhí)行各種動作或命令。
將來,保存于數(shù)據(jù)庫中的執(zhí)行模塊很可能實現(xiàn)自動執(zhí)行的功能。
編者注: 本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。
David Zhang(加拿大籍華人,碩士),在嵌入式數(shù)據(jù)庫領(lǐng)域,有十幾年的研究和開發(fā)經(jīng)驗;
歐書云(碩士),從事嵌入式、RFID、軟件中間件領(lǐng)域的工作。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
路由器相關(guān)文章:路由器工作原理
路由器相關(guān)文章:路由器工作原理
評論