隨著微電子技術和存儲技術的不斷發(fā)展,嵌入式系統(tǒng)的內存和各種永久存儲介質容量都在不斷增加。這也就意味著嵌入式系統(tǒng)內數(shù)據(jù)處理量會不斷增加,那么大量的數(shù)據(jù)如何處理問題變得非常現(xiàn)實。 1.嵌入式數(shù)據(jù)庫產(chǎn)生及運用的必然性 嵌入式系統(tǒng)在現(xiàn)代人的生活中隨處可見,其中軟件的比例越來越大,軟件開發(fā)的投入也越來越大。 隨著微電子技術和存儲技術的不斷發(fā)展,嵌入式系統(tǒng)的內存和各種永久存儲介質容量都在不斷增加。這也就意味著嵌入式系統(tǒng)內數(shù)據(jù)處理量會不斷增加,那么大量的數(shù)據(jù)如何處理問題變得非常現(xiàn)實。人們不得不將原本在企業(yè)級運用的復雜的數(shù)據(jù)庫處理技術引入到嵌入式系統(tǒng)當中去,應用于嵌入式系統(tǒng)的數(shù)據(jù)庫技術也就應運而生。 但是,事情總是比想象復雜。在嵌入式的世界,無論是通訊領域的嵌入式設備還是其它領域中,各種中間環(huán)節(jié)逐漸設備化,成為獨立的相對封閉的系統(tǒng),對外留有接口。設備中數(shù)據(jù)種類和處理方法有一定的共同規(guī)律也有自己的特殊規(guī)律。這使得嵌入式數(shù)據(jù)庫不能像企業(yè)級數(shù)據(jù)庫那樣幾乎是一個解決方案走遍天下,而是有著很大的差異性。同時,也為嵌入式數(shù)據(jù)庫的合理運用帶來了挑戰(zhàn),這是嵌入式數(shù)據(jù)庫差異化的一個基本原因。 隨著嵌入式系統(tǒng)的擴大,嵌入式產(chǎn)品的開發(fā)不再像過去那樣幾個人就可以完成整個系統(tǒng)的開發(fā),需要更多的人組成團隊進行合作。嵌入式軟件的需求分析和品質管理也變得越來越復雜,開發(fā)周期也逐漸拉長。為了解決這些問題,引進第三方成熟的中間件或解決方案也變得非常現(xiàn)實。專業(yè)的嵌入式數(shù)據(jù)庫廠商也逐漸進入了人們的視野。因為,運用成熟的嵌入式數(shù)據(jù)處理中間件可以降低開發(fā)成本、縮短開發(fā)周期,使開發(fā)者能夠將更多的精力放在業(yè)務邏輯的處理上,而不用花大把的金錢和精力來處理數(shù)據(jù),對整個社會的資源也是一種節(jié)約。 2.嵌入式數(shù)據(jù)庫的基本特點 按照馬克思的哲學理論,事物發(fā)展的進程可以用螺旋式上升來描述。嵌入式數(shù)據(jù)庫和我們現(xiàn)在常見的企業(yè)級數(shù)據(jù)庫的基本關系也是一個螺旋上升式的關系。雖然,從名字上看,二者有著太多的相似性,但卻有著本質的根本性的區(qū)別。外在的形式的相似性,并不能代表二者的實現(xiàn)方式和運用方式的相似。恰恰相反,嵌入式數(shù)據(jù)庫的實現(xiàn)和運用方式和企業(yè)級的數(shù)據(jù)庫有著很大的區(qū)別。 在國外,嵌入式數(shù)據(jù)庫已經(jīng)發(fā)展了30多年,典型的代表是Empress嵌入式數(shù)據(jù)庫。它的特點也基本代表了現(xiàn)階段嵌入式實時數(shù)據(jù)庫的基本特點。下面就介紹一下Empress嵌入式數(shù)據(jù)庫所具有的區(qū)別于企業(yè)級數(shù)據(jù)庫的幾個主要特點。 嵌入性是嵌入式數(shù)據(jù)庫的基本特性。嵌入式數(shù)據(jù)庫不僅可以嵌入到其他的軟件當中,也可以嵌入到硬件設備當中。Empress的方法之一就是使數(shù)據(jù)庫以組件的形式存在,并發(fā)布給客戶,客戶只需要像調用自己定義的函數(shù)那樣調用相應的函數(shù)就可以創(chuàng)建表、插入刪除數(shù)據(jù)等常規(guī)的數(shù)據(jù)庫操作。客戶在自己的產(chǎn)品發(fā)布時,可以將Empress數(shù)據(jù)庫編譯到自己的產(chǎn)品內,變成自己產(chǎn)品的一部分,最終用戶是感受不到數(shù)據(jù)庫的存在的,也不用特意去維護數(shù)據(jù)庫。 實時性和嵌入性是分不開的。只有具有了嵌入性的數(shù)據(jù)庫才能夠第一時間得到系統(tǒng)的資源,對系統(tǒng)的請求在第一時間內做出響應。但是,并不是具有嵌入性就一定具有實時性。要想嵌入式數(shù)據(jù)庫具有很好的實時性,必須做很多額外的工作。比如:Empress實時數(shù)據(jù)庫將嵌入性和高速的數(shù)據(jù)引擎、定時功能以及防斷片處理等措施整合在一起來保證最基本的實時性。當然,不同的場合實時性要求比較高時,除了軟件的實時性外,硬件的實時性也是必須的,具體情況需要有具體和切實的解決方案,不能一概而論。 移動性是目前在國內提的比較多的一個說法,這和目前國內移動設備的大規(guī)模應用有關。可以這么說,具有嵌入性的數(shù)據(jù)庫一定具有比較好的移動性,但是具有比較好的移動性的數(shù)據(jù)庫,不一定具有嵌入性。比如,一個小型的C/S結構的數(shù)據(jù)庫也可以運用在移動設備上,而具有移動性。但這個數(shù)據(jù)庫本身是一個獨立存在的實體,需要額外的運行資源,本質上講和企業(yè)級數(shù)據(jù)庫區(qū)別不大。所以不具有嵌入性,也基本上不具備實時性。Empress是優(yōu)秀的嵌入式實時數(shù)據(jù)庫,毫無疑問也是非常優(yōu)秀的移動數(shù)據(jù)庫。 伸縮性在嵌入式場合顯得尤為重要。首先嵌入式場合硬件和軟件的平臺都是千差萬別,基本都是客戶根據(jù)需要自己選擇的結果。 所以嵌入式場合的數(shù)據(jù)庫必須能夠支持非常多的平臺,如Empress目前支持6000多種平臺。同時,數(shù)據(jù)存儲要支持常見的存儲設備,如CF/Flash/HD等。多進程和多線程是必備的,現(xiàn)在的嵌入式系統(tǒng)已經(jīng)遠遠不是當初的簡單的編程,代碼量增大,功能日益復雜,所以必然要支持多線程和多進程。C/C++和SQL接口的支持也是必備的,作為數(shù)據(jù)庫當然要有大家熟悉的SQL,但同時不要忘記嵌入式場合用的最多的標準的C/C++接口。某種程度上說,嵌入式場合的數(shù)據(jù)比企業(yè)級應用的數(shù)據(jù)還要復雜,所以要支持各種類型的數(shù)據(jù),如多媒體數(shù)據(jù)和空間數(shù)據(jù)等,要支持各種數(shù)據(jù)結構,除了傳統(tǒng)的關系型,還要能處理樹狀結構和網(wǎng)狀結構。 當然,肯定要具備企業(yè)級數(shù)據(jù)庫所具有的一些共性。比如,一致性是數(shù)據(jù)庫所必需的特性。通過事務、鎖功能和數(shù)據(jù)同步等多種技術保證數(shù)據(jù)庫內的各個表內的數(shù)據(jù)的一致性,同時也保證數(shù)據(jù)庫和其他同步或鏡像數(shù)據(jù)庫內數(shù)據(jù)的一致性。安全性也是必不可少的。在保證物理信息本身的安全的同時,也要保證用戶私有信息的安全。 3. 80%和20% 嵌入式的應用場合和通用PC或服務器架構上的應用有著很大的不同。嵌入式系統(tǒng)中雖然也有不少的標準和組件,但種類繁多,環(huán)境千差萬別,應用特殊化的地方非常之多。所以在嵌入式場合無論成熟的產(chǎn)品和組件一般只能夠滿足客戶的80%的要求。余下20%的要求是需要產(chǎn)品提供方和客戶共同來努力解決的特化的部分。當然,每個行業(yè)都有自己的特點,如果能夠為某個行業(yè)提供完整的特殊化解決方案,那么在同行業(yè)中特化的部分也就不會再有這么高的比例。 這些特殊化工作比較多,下面列舉一兩個: 針對不同平臺和環(huán)境的移植。雖然大部分操作系統(tǒng)都聲稱支持標準的POSIX接口,但實際上要在上面高效運行實時的嵌入式數(shù)據(jù)庫還是比較困難的。有的實時性非常高的操作可能還需要直接調用CPU的處理指令。所以最好在客戶使用嵌入式數(shù)據(jù)庫之前,將數(shù)據(jù)庫移植到客戶的環(huán)境中去。對于那些部分支持,或者不支持POSIX標準的操作系統(tǒng)就只能做移植了。 在客戶平臺上做出性能測試報告和優(yōu)化。嵌入式場合很多應用是非常苛刻的,所以必須保障嵌入式數(shù)據(jù)庫在客戶的平臺上能夠達到客戶要求的性能指標。最佳的評價方就是嵌入式數(shù)據(jù)庫的提供方在客戶平臺上做的性能測試報告,并在必要的地方對數(shù)據(jù)處理方式進行優(yōu)化。 根據(jù)應用的要求實現(xiàn)個性化的功能。既然數(shù)據(jù)統(tǒng)一由數(shù)據(jù)庫引擎進行管理,那么許多特殊的功能在這一層實現(xiàn)是最佳的選擇。所以,嵌入式數(shù)據(jù)庫進入一個新的行業(yè)以后,都會產(chǎn)生一些新的應用構件。這些構件直接和引擎打交道,同時對用戶層留有接口。 這種差異化也導致了嵌入式數(shù)據(jù)庫的技術支持變得比較重要,廠家一般都會提供有償或無償?shù)募夹g支持。 4.嵌入式數(shù)據(jù)庫的分類 嵌入式數(shù)據(jù)庫的分類方法很多,可以按照嵌入的對象不同分為:軟件嵌入數(shù)據(jù)庫、設備嵌入數(shù)據(jù)庫、內存數(shù)據(jù)庫。也有人將它們粗略的分為:嵌入數(shù)據(jù)庫、移動數(shù)據(jù)庫、小型的C/S結構數(shù)據(jù)庫等。筆者更偏向于按照下面的方式進行劃分: 小型C/S數(shù)據(jù)庫。這種數(shù)據(jù)庫其實是企業(yè)級數(shù)據(jù)庫的一個縮小版,縮小以后可以在一些實時性要求不高的設備內運行。它只和操作系統(tǒng)有關,一般只能支持一些常見的移動操作系統(tǒng),如,Linux和Windows CE系列。 面向軟件嵌入數(shù)據(jù)庫。它將數(shù)據(jù)庫作為組件嵌入到其他的軟件系統(tǒng)中。一般用在對數(shù)據(jù)庫的安全性、穩(wěn)定性和速度要求比較高的系統(tǒng)中。這種結構資源消耗低,最終用戶不用維護數(shù)據(jù)庫,甚至感受不到數(shù)據(jù)的存在。 面向設備嵌入數(shù)據(jù)庫。它將關系型數(shù)據(jù)庫嵌入到設備當中去,作為設備數(shù)據(jù)處理的核心組件。這種場合要求數(shù)據(jù)庫有很高的實時性和穩(wěn)定性,一般運行在實時性非常高的操作系統(tǒng)當中。為了達到這些要求有的廠商采用關系型的數(shù)據(jù)結構,有的采用非關系型的數(shù)據(jù)結構。有時候甚至直接和硬件打交道。當然,這種結構在實時性要求不高的移動場合更能夠勝任。 內存數(shù)據(jù)庫。數(shù)據(jù)庫直接在內存內運行,數(shù)據(jù)處理更加高速,不過安全性等方面需要額外的手段來保障。 當然,相同類型的嵌入式數(shù)據(jù)庫肯定會有很多不同的版本。如,Empress具有上述所有種類的嵌入式數(shù)據(jù)庫,且每種都有很多版本,就在一年前剛剛針對日本市場比較特殊的操作系統(tǒng)iTRON開發(fā)了一個專用的嵌入式數(shù)據(jù)庫版本。 5.嵌入式數(shù)據(jù)庫的構件 嵌入式數(shù)據(jù)庫包含的構件很多,不過大部分嵌入式數(shù)據(jù)庫包含的構件差別是不大的,以Empress嵌入式數(shù)據(jù)庫為例包括以下一些構件。 用戶接口級構件。這些構件主要是方便用戶對數(shù)據(jù)庫進行操作和訪問。如,標準的C語言應用程序接口(C KERNEL API);標準的SQL語句(EMBEDDED SQL);JDBC/ODBC接口;數(shù)據(jù)流處理(Data Streaming)、網(wǎng)絡處理(Embedded Network API)以及數(shù)據(jù)恢復處理(Data Recovery API)等。 應用級構件。該部分的構件包括一些主要應用所必需的構件,當然隨著應用的不同,構件也是可以裁剪和添加的。 引擎級構件。主要包含事務處理(Transaction)、索引(Index)、多進程/多任務(Multi Proc/Task Access)、可配置數(shù)據(jù)庫內核(Configurable Database Kernel)、斷電恢復管理(Power Down Recovery)和存儲介質引擎(Storage Engine)。但具體的Empress產(chǎn)品中遠不止這么多。 6.應用現(xiàn)狀 嵌入式數(shù)據(jù)庫在國外已經(jīng)有30年的歷史,應用領域也非常廣泛,下面僅結合Empress嵌入式數(shù)據(jù)庫的部分應用,介紹一些大家感興趣的領域。 醫(yī)療領域 北美和歐洲的一些著名的廠商利用Empress的數(shù)據(jù)庫開發(fā)過完整的電子病歷系統(tǒng),同時將數(shù)據(jù)庫嵌入到醫(yī)療器械當中。如,血液分析裝置、乳癌的檢測裝置、醫(yī)學圖像裝置等。這樣醫(yī)療系統(tǒng)的各個環(huán)節(jié)可以無縫地和各種醫(yī)療設備進行數(shù)據(jù)交流,并輕松地處理這些設備送過來的數(shù)據(jù)信息,在必要的時候共享給有權限查看的用戶。 軍事設備和系統(tǒng) 一些著名的軍事機構和全球著名的武器生產(chǎn)商將Empress數(shù)據(jù)庫運用到他們的系統(tǒng)控制裝置、戰(zhàn)士武器、軍艦裝置、火箭和導彈裝置中。這些場合用的數(shù)據(jù)庫有很多的安全設定和特化設定,基本上嚴格按照每個客戶的技術標準的要求來特化引擎級構件。具體的應用級的構件由客戶自己完成。 地理信息系統(tǒng) 地理信息包括的范圍很廣,在國外地理信息系統(tǒng)已經(jīng)發(fā)展了很多年,國內這幾年也逐漸加大對地理信息系統(tǒng)方面的投入。Empress在地理信息系統(tǒng)方面的應用非常廣泛。如,空間數(shù)據(jù)分析系統(tǒng)、衛(wèi)星天氣數(shù)據(jù)、龍卷風和颶風監(jiān)控及預測、大氣研究監(jiān)測裝置、天氣數(shù)據(jù)監(jiān)測、相關衛(wèi)星氣象和海洋數(shù)據(jù)的采集裝置、導航系統(tǒng)等等。幾乎涉及到地理信息的方方面面。 工業(yè)控制 工業(yè)控制的一個基本方式是一個反饋的閉環(huán)或半閉環(huán)的控制方式。隨著工業(yè)控制技術的發(fā)展,簡單的數(shù)據(jù)采集方式和反饋方式基本上很難滿足要求。采用Empress嵌入式數(shù)據(jù)庫即能夠進行高速的數(shù)據(jù)采集,也能夠快速的反饋。正因為如此,在一些核電站監(jiān)控裝置、化學工廠系統(tǒng)監(jiān)控裝置、電話制造系統(tǒng)監(jiān)控裝置、汽車引擎監(jiān)控裝置及工業(yè)級機器人中有廣泛應用。 網(wǎng)絡通訊 隨著互聯(lián)網(wǎng)的發(fā)展,網(wǎng)絡越來越普及,網(wǎng)絡設備的處理能力越來越強、各種要求也越來越高,運用嵌入式數(shù)據(jù)庫也成了必然趨勢。我們現(xiàn)在日常見到的很多網(wǎng)絡設備和系統(tǒng)都已經(jīng)使用了嵌入式數(shù)據(jù)庫。Empress在一些企業(yè)內部互聯(lián)網(wǎng)裝置、網(wǎng)絡傳輸?shù)姆植际焦芾硌b置、語音郵件追蹤系統(tǒng)、VoIP交換機、路由器、基站控制器等系統(tǒng)中都有應用。 空間探索 一些全球著名的機構將Empress用在一些著名的空間探索裝置中,如大家熟知的一些太陽系內行星的探測器等。 消費類電子 目前在中國消費類電子比較火熱,它包含的范圍也非常廣。如:個人消費相關的PND、移動電話、PDA、SmartPhone、數(shù)碼產(chǎn)品等;信息家電和智能辦公相關的機頂盒、家用多媒體盒、互聯(lián)網(wǎng)電視接收裝置、打印機、一體機等;還有汽車電子等。在歐美和日本Empress不僅在這些方面已經(jīng)有不少的成功應用和技術積累,還正在和亞太的一些著名廠商積極展開新的合作和研發(fā),目前已經(jīng)取得實質性的成果。 當然,嵌入式數(shù)據(jù)庫的應用應該遠不止這么多,不過筆者只能結合自己的經(jīng)驗向大家介紹一些我了解的,同時也是關注比較多的領域。 7.未來的展望 未來的世界是一個“普適計算”或“泛在計算”(Pervasive Computing 或 Ubiquitous Computing)的世界。“普適計算”指的就是,“無論何時何地,只要您需要,就可以通過某種設備訪問到所需的信息”。有一篇關于泛在計算領域著名的學者——坂村健先生的采訪,標題就是“讓整個世界變成一臺巨型計算機”。 “普適計算”的世界將是繼互聯(lián)網(wǎng)之后給我們帶來的另一個技術世界。在這個世界里有各種各樣的設備(稱為:計算節(jié)點),他們無時無刻地作為一個相對獨立的單元參與整個世界的計算,能夠滿足人們日常生活的信息的需要。雖然這一天的到來還要依賴于微電子技術、RFID技術、智能傳感器網(wǎng)絡、軟件技術等高、新、尖技術的發(fā)展。但我們可以預感到這一天會慢慢逼近。 從某種意義上講,“普適計算”也可以描述成嵌入式設備處理大量信息的計算。這正是嵌入式數(shù)據(jù)庫誕生和發(fā)展的原動力。所以,我可以很明顯地感覺到嵌入式數(shù)據(jù)庫必將廣泛地被應用。 目前在中國Internet迅速普及和發(fā)展,并向個人和家庭不斷擴展,使消費電子、計算機、通信(3C)一體化趨勢日趨明顯。中國的產(chǎn)業(yè)結構正在從低附加值的制造業(yè)向高附加值的高新技術領域過渡。尤其在一些發(fā)展較快的地區(qū),如上海,必將抓住這個大的潮流加速自己的發(fā)展。我們幾乎可以預見,在未來幾年中國的消費類電子必然會蓬勃發(fā)展,應用的領域會越來越廣泛,嵌入式數(shù)據(jù)庫將會隨著這些無處不在的計算節(jié)點而滲透到我們生活的每一個環(huán)節(jié)中。 目前,國內的許多嵌入式軟件技術人員經(jīng)過數(shù)據(jù)處理的困惑,經(jīng)過開源的摸索,經(jīng)過自主開發(fā)的嘗試,許多開發(fā)者正逐漸意識到商用數(shù)據(jù)庫的必要性。商用嵌入式數(shù)據(jù)庫正在被逐漸被正確認識和接受。 |