新技術的出現(xiàn)已經(jīng)模糊了企業(yè)和個人在移動和桌面計算上的界限,以前僅針對企業(yè)級應用的系統(tǒng)通過新的技術也可以面對有需要的個人。現(xiàn)在研發(fā)者通過功能強勁價格適當?shù)挠布梢栽诟〉脑O備上集成更多的功能、應用和數(shù)據(jù),軟件開發(fā)者緊隨其后,在這些新平臺上任意發(fā)揮,最終形成各種創(chuàng)意獨特的設備。 日常生活中的嵌入式 嵌入式系統(tǒng)看上去似乎神秘而復雜,但實際上從手機到車載GPS甚至MP3播放器,我們每天都在應用它。將這些消費類產(chǎn)品中的技術用到其他場合將會在更多的市場中增加效率和效用。 來看一個設備維修工。過去他們通過電話與分配中心、器件倉庫以及其它資源中心聯(lián)系,現(xiàn)在他們在現(xiàn)場只需要一個手持儀器,里面會含有從安排列表、診斷測試到器材庫存信息和賬單軟件等一切資料。有時這些設備還可以直接聯(lián)網(wǎng),作為一個完整的獨立系統(tǒng),它們可以獲取到針對某個特定應用的所有信息,并在工作日結束后與主機保持同步。 嵌入式軟件的設計演變 長久以來,嵌入式設備的開發(fā)者一直在努力壓縮軟件字節(jié)數(shù)目,降低CPU的消耗,以此來在有限的硬件能力上得到更多的性能提升。但是隨著功能更加強大的硬件系統(tǒng)和COTS商用嵌入式操作系統(tǒng)的不斷涌現(xiàn),中間件和數(shù)據(jù)管理系統(tǒng)在轉移重心。而幾年前,嵌入式的開發(fā)者還在寫自己的操作、文件和數(shù)據(jù)管理系統(tǒng)。這樣在時間上看上去不夠經(jīng)濟,但是有人認為這種針對特定應用定制的軟件會比商用軟件更精簡且更快。 在嵌入式中間件和嵌入式數(shù)據(jù)管理系統(tǒng)上也有同樣的趨勢。為了適應空間和內存的限制,傳統(tǒng)上這些中間件和管理系統(tǒng)只有有限的功能,占據(jù)幾十萬字節(jié)的空間。而現(xiàn)在的系統(tǒng)在相同的限制下采用歸一化的功能,使得開發(fā)者在核心功能的基礎上開發(fā)不同的應用方案。利用眾多的COTS系統(tǒng),開發(fā)者有機會推出差異化的嵌入式設備。 但是隨著硬件和COTS系統(tǒng)的發(fā)展,也出現(xiàn)了新的問題。嵌入式設備變得日益復雜,許多應用都要共享和處理海量的數(shù)據(jù),有效處理這些數(shù)據(jù)使得用戶可以方便操作成為頭等大事。 具有定位功能的設備 GPS以及其它具有定位功能的技術的激增,促使開發(fā)者開始找尋一種仍舊基于工業(yè)級SQL的新的查詢方式,比如在空間或者多維情況下搜索數(shù)據(jù)。利用設備方位的應用需要執(zhí)行多維搜索,并綜合設備上的其他空間數(shù)據(jù)。 回想一下我們的設備維修工。假設他提前完成了一個服務,在進行下一個預定計劃之前,不用打電話給分配中心,利用具有多維搜索功能的儀器,他就可以在當前位置和下一個服務點間找到一個等待中的預約,在時間和設備都容許的情況下完成這個臨時加入的任務。通過他的這個具有定位搜索功能的強大設備,他節(jié)約了時間,減少了支出并有可能提高了客戶服務。 與這樣的搜索類似的企業(yè)級應用包括常見的比如人員調配一直到比較專業(yè)應用,比如位置識別與群體網(wǎng)絡的綜合。想象一下醫(yī)院里的群體網(wǎng)絡系統(tǒng),醫(yī)生可以與網(wǎng)絡里的其他人交互位置,這樣一個融合了個人聯(lián)絡數(shù)據(jù)和位置信息的系統(tǒng)方便于處理緊急情況下的查詢。 RDBMS中進行空間搜索需要兩個主要的因素。第一個是將特定數(shù)據(jù)類型轉換為空間數(shù)據(jù),其次是有效索引數(shù)據(jù)的方式。最理想的數(shù)據(jù)類型應該包括X、Y和Z三個坐標分量。X和Y坐標提供映射的矢量數(shù)據(jù),Z用于區(qū)分這些數(shù)據(jù)。 以上面的醫(yī)院網(wǎng)絡為例,Z屬性可以用來描述不同醫(yī)生的專業(yè)。對于設備維修工,XY用來確定維修地點,Z可以用來描述待修設備的類型或者是否在保修期內。為了提供這些差異化,Z屬性應該可以分為不同的字節(jié)。 Z屬性是個32位的操作數(shù),可以進行邏輯“與”“或”的操作。比如如果第五位代表餐館,第六位代表亞洲,那么通過第五和第六位的位屏蔽操作就可以找到亞洲的餐館。 有效的索引對于數(shù)據(jù)的搜索也很必要。最有效索引空間數(shù)據(jù)的方法是采用四叉樹。四叉樹將兩維空間分割為四個子空間,把象限遞歸細分到每個象限中只有一個點。這些象限變?yōu)闃湫谓Y構的葉子。 字母數(shù)字搜索的幫手 即使是非定位式的設備,有效找到靜態(tài)數(shù)據(jù)的需求也會帶來數(shù)據(jù)檢索的問題。地址、號碼、文件、客戶信息以及其他海量的數(shù)據(jù)的記錄都存儲于手持設備中,這使得用戶必須有系統(tǒng)的辦法輸入每個字母和數(shù)字。 現(xiàn)在新的嵌入式RDBMS技術可以混合增量文字搜索,它可以幫助用戶漸進式的執(zhí)行搜索,隨著每個字符的輸入縮小搜索結果,并在每個搜索條目下指導用戶下一個可能的字母。在很多應用中已經(jīng)采用了這個技術。 “別名”是一個更有用的技術,它通過使用變化的名字來幫助使用者找到所需。例如,維修工可以輸入一個特定的類型號碼來檢索維修手冊,或者是輸入簡單的“洗碗機”來獲得一些待選的器具型號。別名搜索功能不僅可以通過描述文字來找到使用者的搜索對象,還可以更正誤拼寫,所以錯誤敲入的“吸碗機”也可以得到正確的結果。 標準的數(shù)據(jù)庫結構包含表格、橫向和縱向的數(shù)據(jù)。由每一列來定義數(shù)據(jù)的類型。例如,客戶地址可以細分為街道、城市以及州等多個列。橫行則是對應與每一列的數(shù)據(jù)。為了實現(xiàn)別名的功能,RDBMS需要能夠建立重復的列。一個重復的列可以使每行具有相同特性的數(shù)據(jù)有不同的實現(xiàn)。比如對于維修工,這樣重復的列可以包含洗碗機、洗衣機、干衣機以及冰箱等多個選項。 大海撈針式的搜索 有時用戶并不知道他們到底要找什么。維修工對解決方案的最佳猜測沒能奏效,或者按照特定的方案沒能消除故障,此時怎么辦?搜索技術在這種情況下可以提供一些近似的答案,這會很有幫助。 “什么器件會引起同樣類型的問題呢?有什么其他的病會有同樣的癥狀呢?什么藥會有效呢?”傳統(tǒng)的搜索對此類問題無能為力。新的數(shù)據(jù)管理系統(tǒng)通過特定描述標簽解決了這個問題。 若要嵌入式RDBMS能夠大海撈針,它需要合理地索引文字數(shù)據(jù)。有很多種方法實現(xiàn)這個目標。第一種是只根據(jù)整個文字串來建立索引,這種方法有很多優(yōu)點,但是返回結果很有限。因此,n元語法索引成為最佳方案,它將整個文字串根據(jù)n分為幾個唯一的小文字串,n通常在2到4之間。 關注嵌入式 新技術使得嵌入式設備的企業(yè)級應用日新月異。隨著硬件變得日益強大,開發(fā)者將會呈現(xiàn)出更多的創(chuàng)新性應用和設備。 |