工控網(wǎng)首頁(yè)
>

新聞中心

>

市場(chǎng)評(píng)論

>

嵌入式數(shù)據(jù)庫(kù)的現(xiàn)狀和未來(lái)

嵌入式數(shù)據(jù)庫(kù)的現(xiàn)狀和未來(lái)

2008/7/25 0:00:00

1.嵌入式數(shù)據(jù)庫(kù)產(chǎn)生及運(yùn)用的必然性

  嵌入式系統(tǒng)在現(xiàn)代人的生活中隨處可見(jiàn),其中軟件的比例越來(lái)越大,軟件開(kāi)發(fā)的投入也越來(lái)越大。

  隨著微電子技術(shù)和存儲(chǔ)技術(shù)的不斷發(fā)展,嵌入式系統(tǒng)的內(nèi)存和各種永久存儲(chǔ)介質(zhì)容量都在不斷增加。這也就意味著嵌入式系統(tǒng)內(nèi)數(shù)據(jù)處理量會(huì)不斷增加,那么大量的數(shù)據(jù)如何處理問(wèn)題變得非常現(xiàn)實(shí)。人們不得不將原本在企業(yè)級(jí)運(yùn)用的復(fù)雜的數(shù)據(jù)庫(kù)處理技術(shù)引入到嵌入式系統(tǒng)當(dāng)中去,應(yīng)用于嵌入式系統(tǒng)的數(shù)據(jù)庫(kù)技術(shù)也就應(yīng)運(yùn)而生。

  但是,事情總是比想象復(fù)雜。在嵌入式的世界,無(wú)論是通訊領(lǐng)域的嵌入式設(shè)備還是其它領(lǐng)域中,各種中間環(huán)節(jié)逐漸設(shè)備化,成為獨(dú)立的相對(duì)封閉的系統(tǒng),對(duì)外留有接口。設(shè)備中數(shù)據(jù)種類和處理方法有一定的共同規(guī)律也有自己的特殊規(guī)律。這使得嵌入式數(shù)據(jù)庫(kù)不能像企業(yè)級(jí)數(shù)據(jù)庫(kù)那樣幾乎是一個(gè)解決方案走遍天下,而是有著很大的差異性。同時(shí),也為嵌入式數(shù)據(jù)庫(kù)的合理運(yùn)用帶來(lái)了挑戰(zhàn),這是嵌入式數(shù)據(jù)庫(kù)差異化的一個(gè)基本原因。

  隨著嵌入式系統(tǒng)的擴(kuò)大,嵌入式產(chǎn)品的開(kāi)發(fā)不再像過(guò)去那樣幾個(gè)人就可以完成整個(gè)系統(tǒng)的開(kāi)發(fā),需要更多的人組成團(tuán)隊(duì)進(jìn)行合作。嵌入式軟件的需求分析和品質(zhì)管理也變得越來(lái)越復(fù)雜,開(kāi)發(fā)周期也逐漸拉長(zhǎng)。為了解決這些問(wèn)題,引進(jìn)第三方成熟的中間件或解決方案也變得非常現(xiàn)實(shí)。專業(yè)的嵌入式數(shù)據(jù)庫(kù)廠商也逐漸進(jìn)入了人們的視野。因?yàn)椋\(yùn)用成熟的嵌入式數(shù)據(jù)處理中間件可以降低開(kāi)發(fā)成本、縮短開(kāi)發(fā)周期,使開(kāi)發(fā)者能夠?qū)⒏嗟木Ψ旁跇I(yè)務(wù)邏輯的處理上,而不用花大把的金錢和精力來(lái)處理數(shù)據(jù),對(duì)整個(gè)社會(huì)的資源也是一種節(jié)約。

2.嵌入式數(shù)據(jù)庫(kù)的基本特點(diǎn)

  按照馬克思的哲學(xué)理論,事物發(fā)展的進(jìn)程可以用螺旋式上升來(lái)描述。嵌入式數(shù)據(jù)庫(kù)和我們現(xiàn)在常見(jiàn)的企業(yè)級(jí)數(shù)據(jù)庫(kù)的基本關(guān)系也是一個(gè)螺旋上升式的關(guān)系。雖然,從名字上看,二者有著太多的相似性,但卻有著本質(zhì)的根本性的區(qū)別。外在的形式的相似性,并不能代表二者的實(shí)現(xiàn)方式和運(yùn)用方式的相似。恰恰相反,嵌入式數(shù)據(jù)庫(kù)的實(shí)現(xiàn)和運(yùn)用方式和企業(yè)級(jí)的數(shù)據(jù)庫(kù)有著很大的區(qū)別。

  在國(guó)外,嵌入式數(shù)據(jù)庫(kù)已經(jīng)發(fā)展了30多年,典型的代表是Empress嵌入式數(shù)據(jù)庫(kù)。它的特點(diǎn)也基本代表了現(xiàn)階段嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)的基本特點(diǎn)。下面就介紹一下Empress嵌入式數(shù)據(jù)庫(kù)所具有的區(qū)別于企業(yè)級(jí)數(shù)據(jù)庫(kù)的幾個(gè)主要特點(diǎn)。

  嵌入性是嵌入式數(shù)據(jù)庫(kù)的基本特性。嵌入式數(shù)據(jù)庫(kù)不僅可以嵌入到其他的軟件當(dāng)中,也可以嵌入到硬件設(shè)備當(dāng)中。Empress的方法之一就是使數(shù)據(jù)庫(kù)以組件的形式存在,并發(fā)布給客戶,客戶只需要像調(diào)用自己定義的函數(shù)那樣調(diào)用相應(yīng)的函數(shù)就可以創(chuàng)建表、插入刪除數(shù)據(jù)等常規(guī)的數(shù)據(jù)庫(kù)操作。客戶在自己的產(chǎn)品發(fā)布時(shí),可以將Empress數(shù)據(jù)庫(kù)編譯到自己的產(chǎn)品內(nèi),變成自己產(chǎn)品的一部分,最終用戶是感受不到數(shù)據(jù)庫(kù)的存在的,也不用特意去維護(hù)數(shù)據(jù)庫(kù)。

  實(shí)時(shí)性和嵌入性是分不開(kāi)的。只有具有了嵌入性的數(shù)據(jù)庫(kù)才能夠第一時(shí)間得到系統(tǒng)的資源,對(duì)系統(tǒng)的請(qǐng)求在第一時(shí)間內(nèi)做出響應(yīng)。但是,并不是具有嵌入性就一定具有實(shí)時(shí)性。要想嵌入式數(shù)據(jù)庫(kù)具有很好的實(shí)時(shí)性,必須做很多額外的工作。比如:Empress實(shí)時(shí)數(shù)據(jù)庫(kù)將嵌入性和高速的數(shù)據(jù)引擎、定時(shí)功能以及防斷片處理等措施整合在一起來(lái)保證最基本的實(shí)時(shí)性。當(dāng)然,不同的場(chǎng)合實(shí)時(shí)性要求比較高時(shí),除了軟件的實(shí)時(shí)性外,硬件的實(shí)時(shí)性也是必須的,具體情況需要有具體和切實(shí)的解決方案,不能一概而論。

  移動(dòng)性是目前在國(guó)內(nèi)提的比較多的一個(gè)說(shuō)法,這和目前國(guó)內(nèi)移動(dòng)設(shè)備的大規(guī)模應(yīng)用有關(guān)。可以這么說(shuō),具有嵌入性的數(shù)據(jù)庫(kù)一定具有比較好的移動(dòng)性,但是具有比較好的移動(dòng)性的數(shù)據(jù)庫(kù),不一定具有嵌入性。比如,一個(gè)小型的C/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)也可以運(yùn)用在移動(dòng)設(shè)備上,而具有移動(dòng)性。但這個(gè)數(shù)據(jù)庫(kù)本身是一個(gè)獨(dú)立存在的實(shí)體,需要額外的運(yùn)行資源,本質(zhì)上講和企業(yè)級(jí)數(shù)據(jù)庫(kù)區(qū)別不大。所以不具有嵌入性,也基本上不具備實(shí)時(shí)性。Empress是優(yōu)秀的嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù),毫無(wú)疑問(wèn)也是非常優(yōu)秀的移動(dòng)數(shù)據(jù)庫(kù)。

  伸縮性在嵌入式場(chǎng)合顯得尤為重要。首先嵌入式場(chǎng)合硬件和軟件的平臺(tái)都是千差萬(wàn)別,基本都是客戶根據(jù)需要自己選擇的結(jié)果。

  所以嵌入式場(chǎng)合的數(shù)據(jù)庫(kù)必須能夠支持非常多的平臺(tái),如Empress目前支持6000多種平臺(tái)。同時(shí),數(shù)據(jù)存儲(chǔ)要支持常見(jiàn)的存儲(chǔ)設(shè)備,如CF/Flash/HD等。多進(jìn)程和多線程是必備的,現(xiàn)在的嵌入式系統(tǒng)已經(jīng)遠(yuǎn)遠(yuǎn)不是當(dāng)初的簡(jiǎn)單的編程,代碼量增大,功能日益復(fù)雜,所以必然要支持多線程和多進(jìn)程。C/C++和SQL接口的支持也是必備的,作為數(shù)據(jù)庫(kù)當(dāng)然要有大家熟悉的SQL,但同時(shí)不要忘記嵌入式場(chǎng)合用的最多的標(biāo)準(zhǔn)的C/C++接口。某種程度上說(shuō),嵌入式場(chǎng)合的數(shù)據(jù)比企業(yè)級(jí)應(yīng)用的數(shù)據(jù)還要復(fù)雜,所以要支持各種類型的數(shù)據(jù),如多媒體數(shù)據(jù)和空間數(shù)據(jù)等,要支持各種數(shù)據(jù)結(jié)構(gòu),除了傳統(tǒng)的關(guān)系型,還要能處理樹(shù)狀結(jié)構(gòu)和網(wǎng)狀結(jié)構(gòu)。

  當(dāng)然,肯定要具備企業(yè)級(jí)數(shù)據(jù)庫(kù)所具有的一些共性。比如,一致性是數(shù)據(jù)庫(kù)所必需的特性。通過(guò)事務(wù)、鎖功能和數(shù)據(jù)同步等多種技術(shù)保證數(shù)據(jù)庫(kù)內(nèi)的各個(gè)表內(nèi)的數(shù)據(jù)的一致性,同時(shí)也保證數(shù)據(jù)庫(kù)和其他同步或鏡像數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)的一致性。安全性也是必不可少的。在保證物理信息本身的安全的同時(shí),也要保證用戶私有信息的安全。

3. 80%和20%

  嵌入式的應(yīng)用場(chǎng)合和通用PC或服務(wù)器架構(gòu)上的應(yīng)用有著很大的不同。嵌入式系統(tǒng)中雖然也有不少的標(biāo)準(zhǔn)和組件,但種類繁多,環(huán)境千差萬(wàn)別,應(yīng)用特殊化的地方非常之多。所以在嵌入式場(chǎng)合無(wú)論成熟的產(chǎn)品和組件一般只能夠滿足客戶的80%的要求。余下20%的要求是需要產(chǎn)品提供方和客戶共同來(lái)努力解決的特化的部分。當(dāng)然,每個(gè)行業(yè)都有自己的特點(diǎn),如果能夠?yàn)槟硞€(gè)行業(yè)提供完整的特殊化解決方案,那么在同行業(yè)中特化的部分也就不會(huì)再有這么高的比例。

  這些特殊化工作比較多,下面列舉一兩個(gè):

  針對(duì)不同平臺(tái)和環(huán)境的移植。雖然大部分操作系統(tǒng)都聲稱支持標(biāo)準(zhǔn)的POSIX接口,但實(shí)際上要在上面高效運(yùn)行實(shí)時(shí)的嵌入式數(shù)據(jù)庫(kù)還是比較困難的。有的實(shí)時(shí)性非常高的操作可能還需要直接調(diào)用CPU的處理指令。所以最好在客戶使用嵌入式數(shù)據(jù)庫(kù)之前,將數(shù)據(jù)庫(kù)移植到客戶的環(huán)境中去。對(duì)于那些部分支持,或者不支持POSIX標(biāo)準(zhǔn)的操作系統(tǒng)就只能做移植了。

  在客戶平臺(tái)上做出性能測(cè)試報(bào)告和優(yōu)化。嵌入式場(chǎng)合很多應(yīng)用是非常苛刻的,所以必須保障嵌入式數(shù)據(jù)庫(kù)在客戶的平臺(tái)上能夠達(dá)到客戶要求的性能指標(biāo)。最佳的評(píng)價(jià)方就是嵌入式數(shù)據(jù)庫(kù)的提供方在客戶平臺(tái)上做的性能測(cè)試報(bào)告,并在必要的地方對(duì)數(shù)據(jù)處理方式進(jìn)行優(yōu)化。

  根據(jù)應(yīng)用的要求實(shí)現(xiàn)個(gè)性化的功能。既然數(shù)據(jù)統(tǒng)一由數(shù)據(jù)庫(kù)引擎進(jìn)行管理,那么許多特殊的功能在這一層實(shí)現(xiàn)是最佳的選擇。所以,嵌入式數(shù)據(jù)庫(kù)進(jìn)入一個(gè)新的行業(yè)以后,都會(huì)產(chǎn)生一些新的應(yīng)用構(gòu)件。這些構(gòu)件直接和引擎打交道,同時(shí)對(duì)用戶層留有接口。

  這種差異化也導(dǎo)致了嵌入式數(shù)據(jù)庫(kù)的技術(shù)支持變得比較重要,廠家一般都會(huì)提供有償或無(wú)償?shù)募夹g(shù)支持。

4.嵌入式數(shù)據(jù)庫(kù)的分類

  嵌入式數(shù)據(jù)庫(kù)的分類方法很多,可以按照嵌入的對(duì)象不同分為:軟件嵌入數(shù)據(jù)庫(kù)、設(shè)備嵌入數(shù)據(jù)庫(kù)、內(nèi)存數(shù)據(jù)庫(kù)。也有人將它們粗略的分為:嵌入數(shù)據(jù)庫(kù)、移動(dòng)數(shù)據(jù)庫(kù)、小型的C/S結(jié)構(gòu)數(shù)據(jù)庫(kù)等。筆者更偏向于按照下面的方式進(jìn)行劃分:

  小型C/S數(shù)據(jù)庫(kù)。這種數(shù)據(jù)庫(kù)其實(shí)是企業(yè)級(jí)數(shù)據(jù)庫(kù)的一個(gè)縮小版,縮小以后可以在一些實(shí)時(shí)性要求不高的設(shè)備內(nèi)運(yùn)行。它只和操作系統(tǒng)有關(guān),一般只能支持一些常見(jiàn)的移動(dòng)操作系統(tǒng),如,Linux和Windows CE系列。

  面向軟件嵌入數(shù)據(jù)庫(kù)。它將數(shù)據(jù)庫(kù)作為組件嵌入到其他的軟件系統(tǒng)中。一般用在對(duì)數(shù)據(jù)庫(kù)的安全性、穩(wěn)定性和速度要求比較高的系統(tǒng)中。這種結(jié)構(gòu)資源消耗低,最終用戶不用維護(hù)數(shù)據(jù)庫(kù),甚至感受不到數(shù)據(jù)的存在。

  面向設(shè)備嵌入數(shù)據(jù)庫(kù)。它將關(guān)系型數(shù)據(jù)庫(kù)嵌入到設(shè)備當(dāng)中去,作為設(shè)備數(shù)據(jù)處理的核心組件。這種場(chǎng)合要求數(shù)據(jù)庫(kù)有很高的實(shí)時(shí)性和穩(wěn)定性,一般運(yùn)行在實(shí)時(shí)性非常高的操作系統(tǒng)當(dāng)中。為了達(dá)到這些要求有的廠商采用關(guān)系型的數(shù)據(jù)結(jié)構(gòu),有的采用非關(guān)系型的數(shù)據(jù)結(jié)構(gòu)。有時(shí)候甚至直接和硬件打交道。當(dāng)然,這種結(jié)構(gòu)在實(shí)時(shí)性要求不高的移動(dòng)場(chǎng)合更能夠勝任。

  內(nèi)存數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)直接在內(nèi)存內(nèi)運(yùn)行,數(shù)據(jù)處理更加高速,不過(guò)安全性等方面需要額外的手段來(lái)保障。

  當(dāng)然,相同類型的嵌入式數(shù)據(jù)庫(kù)肯定會(huì)有很多不同的版本。如,Empress具有上述所有種類的嵌入式數(shù)據(jù)庫(kù),且每種都有很多版本,就在一年前剛剛針對(duì)日本市場(chǎng)比較特殊的操作系統(tǒng)iTRON開(kāi)發(fā)了一個(gè)專用的嵌入式數(shù)據(jù)庫(kù)版本。

5.嵌入式數(shù)據(jù)庫(kù)的構(gòu)件

  嵌入式數(shù)據(jù)庫(kù)包含的構(gòu)件很多,不過(guò)大部分嵌入式數(shù)據(jù)庫(kù)包含的構(gòu)件差別是不大的,以Empress嵌入式數(shù)據(jù)庫(kù)為例包括以下一些構(gòu)件。

  用戶接口級(jí)構(gòu)件。這些構(gòu)件主要是方便用戶對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作和訪問(wèn)。如,標(biāo)準(zhǔn)的C語(yǔ)言應(yīng)用程序接口(C KERNEL API);標(biāo)準(zhǔn)的SQL語(yǔ)句(EMBEDDED SQL);JDBC/ODBC接口;數(shù)據(jù)流處理(Data Streaming)、網(wǎng)絡(luò)處理(Embedded Network API)以及數(shù)據(jù)恢復(fù)處理(Data Recovery API)等。

  應(yīng)用級(jí)構(gòu)件。該部分的構(gòu)件包括一些主要應(yīng)用所必需的構(gòu)件,當(dāng)然隨著應(yīng)用的不同,構(gòu)件也是可以裁剪和添加的。

  引擎級(jí)構(gòu)件。主要包含事務(wù)處理(Transaction)、索引(Index)、多進(jìn)程/多任務(wù)(Multi Proc/Task Access)、可配置數(shù)據(jù)庫(kù)內(nèi)核(Configurable Database Kernel)、斷電恢復(fù)管理(Power Down Recover

投訴建議

提交

查看更多評(píng)論
其他資訊

查看更多

中國(guó)聯(lián)通首個(gè)量子通信產(chǎn)品“量子密信”亮相!

國(guó)家重大裝備企業(yè)齊聚高交會(huì) 中國(guó)科技第一展11月深圳舉行

東土精彩亮相華南工博會(huì),展現(xiàn)未來(lái)工業(yè)前沿技術(shù)

ATMS邀請(qǐng)函 | 以智馭新,協(xié)作創(chuàng)造汽車行業(yè)新質(zhì)生產(chǎn)力

直播定檔!見(jiàn)證西門子與中科摩通聯(lián)手打造汽車電子智能制造新范式