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