嵌入式數(shù)�(jù)庫是嵌入到應(yīng)用程序中的輕量級�(shù)�(jù)�,其操作具有定時限制的特性。它�嵌入式系�(tǒng)的重要組成部�,也成為對越來越多的個性化�(yīng)用開�(fā)和管理而采用的一種必不可少的有效手段。嵌入式�(shù)�(jù)庫用途廣泛,如用于消�(fèi)電子�(chǎn)�、移動計算設(shè)�、企�(yè)�(shí)時管理應(yīng)用、網(wǎng)�(luò)存儲與管理以及各種專用設(shè)�,這一市場目前正處于高速增長之中�
嵌入式系�(tǒng)在現(xiàn)代人的生活中隨處可見,其中軟件的比例越來越大,軟件開�(fā)的投入也越來越大�
隨著微電子技�(shù)和存儲技�(shù)的不斷發(fā)展,嵌入式系�(tǒng)的內(nèi)存和各種存儲介質(zhì)容量都在不斷增加。這也就意味著嵌入式系�(tǒng)�(nèi)�(shù)�(jù)處理量會不斷增加,那么大量的�(shù)�(jù)如何處理問題變得�?,F(xiàn)�(shí)。人們不得不將原本在企業(yè)級運(yùn)用的�(fù)雜的�(shù)�(jù)庫處理技�(shù)引入到嵌入式系統(tǒng)�(dāng)中去,應(yīng)用于嵌入式系�(tǒng)的數(shù)�(jù)庫技�(shù)也就�(yīng)�(yùn)而生�
但是,事情總是比想象�(fù)�。在嵌入式的世界,無論是通訊�(lǐng)域的嵌入式設(shè)備還是其它領(lǐng)域中,各種中間環(huán)節(jié)逐漸�(shè)備化,成為獨(dú)立的相對封閉的系�(tǒng),對外留有接�。設(shè)備中�(shù)�(jù)種類和處理方法有一定的共同�(guī)律也有自己的特殊�(guī)�。這使得嵌入式�(shù)�(jù)庫不能像企業(yè)級數(shù)�(jù)庫那樣幾乎是一個解決方案走遍天下,而是有著很大的差異�。同時,也為嵌入式數(shù)�(jù)庫的合理�(yùn)用帶來了挑戰(zhàn),這是嵌入式數(shù)�(jù)庫差異化的一個基本原因�
隨著嵌入式系�(tǒng)的擴(kuò)�,嵌入式�(chǎn)品的開發(fā)不再像過去那樣幾個人就可以完成整個系�(tǒng)的開�(fā),需要更多的人組成團(tuán)隊�(jìn)行合�。嵌入式軟件的需求分析和品質(zhì)管理也變得越來越�(fù)�,開�(fā)周期也逐漸拉長。為了解決這些問題,引�(jìn)第三方成熟的中間件或解決方案也變得非?,F(xiàn)�(shí)。的嵌入式數(shù)�(jù)庫廠商也逐漸�(jìn)入了人們的視野。因�,運(yùn)用成熟的嵌入式數(shù)�(jù)處理中間件可以降低開�(fā)成本、縮短開�(fā)周期,使開發(fā)者能�?qū)⒏嗟木Ψ旁跇I(yè)�(wù)邏輯的處理上,而不用花大把的金錢和精力來處理數(shù)�(jù),對整個社會的資源也是一種節(jié)��
嵌入式數(shù)�(jù)庫的分類方法很多,可以按照嵌入的對象不同分為:軟件嵌入數(shù)�(jù)�、設(shè)備嵌入數(shù)�(jù)庫、內(nèi)存數(shù)�(jù)�。也有人將它們粗略的分為:嵌入數(shù)�(jù)庫、移動數(shù)�(jù)�、小型的C/S�(jié)�(gòu)�(shù)�(jù)庫等。筆者更偏向于按照下面的方式�(jìn)行劃分:
小型C/S�(shù)�(jù)�。這種�(shù)�(jù)庫其�(shí)是企�(yè)級數(shù)�(jù)庫的一個縮小版,縮小以后可以在一些實(shí)時性要求不高的�(shè)備內(nèi)�(yùn)行。它只和操作系統(tǒng)有關(guān),一般只能支持一些常見的移動操作系統(tǒng),如,Linux和Windows CE系列�
面向軟件嵌入�(shù)�(jù)�。它將數(shù)�(jù)庫作為組件嵌入到其他的軟件系�(tǒng)�。一般用在對�(shù)�(jù)庫的安全�、穩(wěn)定性和速度要求比較高的系統(tǒng)�。這種�(jié)�(gòu)資源消耗低,最終用戶不用維�(hù)�(shù)�(jù)�,甚至感受不到數(shù)�(jù)的存在�
面向�(shè)備嵌入數(shù)�(jù)�。它將關(guān)系型�(shù)�(jù)庫嵌入到�(shè)備當(dāng)中去,作為設(shè)備數(shù)�(jù)處理的核心組件。這種場合要求�(shù)�(jù)庫有很高的實(shí)時性和�(wěn)定�,一般運(yùn)行在�(shí)時性非常高的操作系�(tǒng)�(dāng)中。為了達(dá)到這些要求有的廠商采用�(guān)系型的數(shù)�(jù)�(jié)�(gòu),有的采用非�(guān)系型的數(shù)�(jù)�(jié)�(gòu)。有時候甚至直接和硬件打交�。當(dāng)然,這種�(jié)�(gòu)在實(shí)時性要求不高的移動場合更能夠勝��
�(nèi)存數(shù)�(jù)�。數(shù)�(jù)庫直接在�(nèi)存內(nèi)�(yùn)�,數(shù)�(jù)處理更加高速,不過安全性等方面需要額外的手段來保��
�(dāng)�,相同類型的嵌入式數(shù)�(jù)庫肯定會有很多不同的版本。如,Empress具有上述所有種類的嵌入式數(shù)�(jù)�,且每種都有很多版本,就在一年前剛剛針對日本市場比較特殊的操作系�(tǒng)iTRON開發(fā)了一個專用的嵌入式數(shù)�(jù)庫版��
按照馬克思的哲學(xué)理論,事物發(fā)展的�(jìn)程可以用螺旋式上升來描述。嵌入式�(shù)�(jù)庫和我們現(xiàn)在常見的企業(yè)級數(shù)�(jù)庫的基本�(guān)系也是一個螺旋上升式的關(guān)�。雖�,從名字上看,二者有著太多的相似�,但卻有著本�(zhì)的根本性的區(qū)�。外在的形式的相似�,并不能代表二者的�(shí)�(xiàn)方式和運(yùn)用方式的相似。恰恰相�,嵌入式�(shù)�(jù)庫的�(shí)�(xiàn)和運(yùn)用方式和企業(yè)級的�(shù)�(jù)庫有著很大的區(qū)別�
在國�,嵌入式�(shù)�(jù)庫已�(jīng)�(fā)展了30多年,典型的代表是Empress嵌入式數(shù)�(jù)�。它的特�(diǎn)也基本代表了�(xiàn)階段嵌入式實(shí)時數(shù)�(jù)庫的基本特點(diǎn)。下面就介紹一下Empress嵌入式數(shù)�(jù)庫所具有的區(qū)別于企業(yè)級數(shù)�(jù)庫的幾個主要特�(diǎn)�
嵌入�是嵌入式�(shù)�(jù)庫的基本特性。嵌入式�(shù)�(jù)庫不僅可以嵌入到其他的軟件當(dāng)�,也可以嵌入到硬件設(shè)備當(dāng)�。Empress的方法之一就是使數(shù)�(jù)庫以組件的形式存�,并�(fā)布給客戶,客戶只需要像�(diào)用自己定義的函數(shù)那樣�(diào)用相�(yīng)的函�(shù)就可以創(chuàng)建表、插入刪除數(shù)�(jù)等常�(guī)的數(shù)�(jù)庫操�??蛻粼谧约旱漠a(chǎn)品發(fā)布時,可以將Empress�(shù)�(jù)庫編譯到自己的產(chǎn)品內(nèi),變成自己產(chǎn)品的一部分,最終用戶是感受不到�(shù)�(jù)庫的存在�,也不用特意去維�(hù)�(shù)�(jù)庫�
�(shí)時�和嵌入性是分不開的。只有具有了嵌入性的�(shù)�(jù)庫才能夠時間得到系統(tǒng)的資�,對系統(tǒng)的請求在時間�(nèi)做出響應(yīng)。但�,并不是具有嵌入性就一定具有實(shí)時�。要想嵌入式�(shù)�(jù)庫具有很好的�(shí)時�,必須做很多額外的工�。比如:Empress�(shí)時數(shù)�(jù)庫將嵌入性和高速的�(shù)�(jù)引擎、定時功能以及防斷片處理等措施整合在一起來保證最基本的實(shí)時�。當(dāng)�,不同的場合�(shí)時性要求比較高�,除了軟件的�(shí)時性外,硬件的�(shí)時性也是必須的,具體情況需要有具體和切�(shí)的解決方�,不能一概而論�
移動�是目前在國內(nèi)提的比較多的一個說�,這和目前國內(nèi)移動�(shè)備的大規(guī)模應(yīng)用有�(guān)??梢赃@么說,具有嵌入性的�(shù)�(jù)庫一定具有比較好的移動性,但是具有比較好的移動性的�(shù)�(jù)�,不一定具有嵌入�。比�,一個小型的C/S�(jié)�(gòu)的數(shù)�(jù)庫也可以�(yùn)用在移動�(shè)備上,而具有移動性。但這個數(shù)�(jù)庫本身是一個獨(dú)立存在的�(shí)�,需要額外的�(yùn)行資源,本質(zhì)上講和企�(yè)級數(shù)�(jù)庫區(qū)別不�。所以不具有嵌入�,也基本上不具備�(shí)時�。Empress是的嵌入式實(shí)時數(shù)�(jù)�,毫無疑問也是非常的移動�(shù)�(jù)��
伸縮�在嵌入式場合顯得尤為重要。首先嵌入式場合硬件和軟件的平臺都是千差萬別,基本都是客戶根�(jù)需要自己選擇的�(jié)��
所以嵌入式場合的數(shù)�(jù)庫必須能夠支持非常多的平�,如Empress目前支持6000多種平臺。同時,�(shù)�(jù)存儲要支持常見的存儲�(shè)�,如CF/Flash/HD等。多�(jìn)程和多線程是必備�,現(xiàn)在的嵌入式系�(tǒng)已經(jīng)�(yuǎn)�(yuǎn)不是�(dāng)初的簡單的編�,代碼量增大,功能日益復(fù)�,所以必然要支持多線程和多�(jìn)�。C/C++和SQL接口的支持也是必備的,作為數(shù)�(jù)庫當(dāng)然要有大家熟悉的SQL,但同時不要忘記嵌入式場合用的最多的�(biāo)�(zhǔn)的C/C++接口。某種程度上�,嵌入式場合的數(shù)�(jù)比企�(yè)級應(yīng)用的�(shù)�(jù)還要�(fù)雜,所以要支持各種類型的數(shù)�(jù),如多媒體數(shù)�(jù)和空間數(shù)�(jù)�,要支持各種�(shù)�(jù)�(jié)�(gòu),除了傳�(tǒng)的關(guān)系型,還要能處理樹狀�(jié)�(gòu)和網(wǎng)狀�(jié)�(gòu)�
�(dāng)�,肯定要具備企業(yè)級數(shù)�(jù)庫所具有的一些共�。比如,一致性是�(shù)�(jù)庫所必需的特�。通過事務(wù)、鎖功能和數(shù)�(jù)同步等多種技�(shù)保證�(shù)�(jù)庫內(nèi)的各個表�(nèi)的數(shù)�(jù)的一致�,同時也保證�(shù)�(jù)庫和其他同步或鏡像數(shù)�(jù)庫內(nèi)�(shù)�(jù)的一致�。安全性也是必不可少的。在保證物理信息本身的安全的同時,也要保證用戶私有信息的安全�
嵌入式數(shù)�(jù)庫包含的�(gòu)件很多,不過大部分嵌入式�(shù)�(jù)庫包含的�(gòu)件差別是不大�,以Empress嵌入式數(shù)�(jù)庫為例包括以下一些構(gòu)��
用戶接口級構(gòu)�。這些�(gòu)件主要是方便用戶對數(shù)�(jù)庫�(jìn)行操作和訪問。如,標(biāo)�(zhǔn)的C語言�(yīng)用程序接�(C KERNEL API);�(biāo)�(zhǔn)的SQL語句(EMBEDDED SQL);JDBC/ODBC接口;�(shù)�(jù)流處�(Data Streaming)、網(wǎng)�(luò)處理(Embedded Network API)以及�(shù)�(jù)恢復(fù)處理(Data Recovery API)等�
�(yīng)用級�(gòu)�。該部分的構(gòu)件包括一些主要應(yīng)用所必需的構(gòu)�,當(dāng)然隨著應(yīng)用的不同,構(gòu)件也是可以裁剪和添加��
引擎級構(gòu)�。主要包含事�(wù)處理(Transaction)、索�(Index)、多�(jìn)�/多任�(wù)(Multi Proc/Task Access)、可配置�(shù)�(jù)庫內(nèi)�(Configurable Database Kernel)、斷電恢�(fù)管理(Power Down Recovery)和存儲介�(zhì)引擎(Storage Engine)。但具體的Empress�(chǎn)品中�(yuǎn)不止這么��
嵌入式數(shù)�(jù)庫在國外�(fā)展已�30多年的歷�,在國內(nèi)最近幾年才有了重視。在國內(nèi)外市場上近幾年比較活躍并且越來越受到廣泛重視和應(yīng)用的是商用級嵌入式實(shí)時數(shù)�(jù)庫系�(tǒng)�
�(dāng)前主流的嵌入式數(shù)�(jù)�,具有支持多個平�、面向多種開�(fā)語言、具有多個靈活的接口等特�(diǎn),主流的嵌入式數(shù)�(jù)庫有:Oracle 公司� Berkeley DB、Sysbase Adaptive Server Anywhere、Linter 以及SQLite �,國�(nèi)的科研機(jī)�(gòu)也積極開展這方面的研究并推出了自己的產(chǎn)�,主要有方舟公司的Noahbase,人大金倉Kingbase ,以及華中科技大學(xué)ARTs-EDB�
嵌入式數(shù)�(jù)庫在國外已經(jīng)�30年的歷史,應(yīng)用領(lǐng)域也非常廣泛,下面僅�(jié)合Empress嵌入式數(shù)�(jù)庫的部分�(yīng)�,介紹一些大家感興趣的領(lǐng)域�
�(wǎng)�(luò)通訊 :隨著互�(lián)�(wǎng)的發(fā)�,網(wǎng)�(luò)越來越普及,�(wǎng)�(luò)�(shè)備的處理能力越來越強(qiáng)、各種要求也越來越高,運(yùn)用嵌入式�(shù)�(jù)庫也成了必然趨勢。我們現(xiàn)在日常見到的很多�(wǎng)�(luò)�(shè)備和系統(tǒng)都已�(jīng)使用了嵌入式�(shù)�(jù)�。Empress在一些企�(yè)�(nèi)部互�(lián)�(wǎng)裝置、網(wǎng)�(luò)傳輸?shù)姆植际焦芾硌b�、語音郵件追蹤系�(tǒng)、VoIP交換�(jī)、路由器、基站控制器等系�(tǒng)中都有應(yīng)��
消費(fèi)類電� :目前在中國消費(fèi)類電子比較火�,它包含的范圍也非常廣。如:個人消費(fèi)相關(guān)的PND、移動電話、PDA、SmartPhone、數(shù)碼產(chǎn)品等;信息家電和智能辦公相關(guān)的機(jī)頂盒、家用多媒體盒、互�(lián)�(wǎng)電視接收裝置、打印機(jī)、一體機(jī)�;還有汽車電子等。在歐美和日本Empress不僅在這些方面已經(jīng)有不少的成功�(yīng)用和技�(shù)積累,還正在和亞太的一些著名廠商積極展開新的合作和研發(fā),目前已�(jīng)取得�(shí)�(zhì)性的成果�
�(yī)療領(lǐng)� :北美和歐洲的一些著名的廠商利用Empress的數(shù)�(jù)庫開�(fā)過完整的電子病歷系統(tǒng),同時將�(shù)�(jù)庫嵌入到�(yī)療器械當(dāng)�。如,血液分析裝�、乳癌的檢測裝置、醫(yī)�(xué)圖像裝置�。這樣�(yī)療系�(tǒng)的各個環(huán)節(jié)可以無縫地和各種�(yī)療設(shè)備�(jìn)行數(shù)�(jù)交流,并輕松地處理這些�(shè)備送過來的�(shù)�(jù)信息,在必要的時候共享給有權(quán)限查看的用戶�
軍事�(shè)備和系統(tǒng) :一些著名的軍事�(jī)�(gòu)和全球著名的武器生產(chǎn)商將Empress�(shù)�(jù)庫運(yùn)用到他們的系統(tǒng)控制裝置、戰(zhàn)士武�、軍艦裝�、火箭和�(dǎo)彈裝置中。這些場合用的�(shù)�(jù)庫有很多的安全設(shè)定和特化�(shè)�,基本上�(yán)格按照每個客戶的技�(shù)�(biāo)�(zhǔn)的要求來特化引擎級構(gòu)�。具體的�(yīng)用級的構(gòu)件由客戶自己完成�
地理信息系統(tǒng) :地理信息包括的范圍很廣,在國外地理信息系統(tǒng)已經(jīng)�(fā)展了很多�,國�(nèi)這幾年也逐漸加大對地理信息系�(tǒng)方面的投入。Empress在地理信息系�(tǒng)方面的應(yīng)用非常廣�。如,空間數(shù)�(jù)分析系統(tǒng)、衛(wèi)星天氣數(shù)�(jù)、龍卷風(fēng)和颶�(fēng)�(jiān)控及�(yù)測、大氣研究監(jiān)測裝�、天氣數(shù)�(jù)�(jiān)�、相�(guān)�(wèi)星氣象和海洋�(shù)�(jù)的采集裝�、導(dǎo)航系�(tǒng)等等。幾乎涉及到地理信息的方方面��
工業(yè)控制 :工�(yè)控制的一個基本方式是一個反饋的閉環(huán)或半閉環(huán)的控制方�。隨著工�(yè)控制技�(shù)的發(fā)�,簡單的�(shù)�(jù)采集方式和反饋方式基本上很難滿足要求。采用Empress嵌入式數(shù)�(jù)庫即能夠�(jìn)行高速的�(shù)�(jù)采集,也能夠快速的反饋。正因為如此,在一些核電站�(jiān)控裝�、化�(xué)工廠系統(tǒng)�(jiān)控裝置、電話制造系�(tǒng)�(jiān)控裝�、汽車引擎監(jiān)控裝置及工業(yè)級機(jī)器人中有廣泛�(yīng)用�
空間探索 :一些全球著名的�(jī)�(gòu)將Empress用在一些著名的空間探索裝置�,如大家熟知的一些太陽系�(nèi)行星的探測器��
�(dāng)�,嵌入式�(shù)�(jù)庫的�(yīng)用應(yīng)該遠(yuǎn)不止這么多,不過筆者只能結(jié)合自己的�(jīng)驗向大家介紹一些我了解�,同時也是關(guān)注比較多的領(lǐng)��