新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種新的嵌入式移動數據庫系統的設計

        一種新的嵌入式移動數據庫系統的設計

        作者: 時間:2012-02-17 來源:網絡 收藏

        0 引言

        本文引用地址:http://www.104case.com/article/149647.htm

        技術已在人們生活中得到廣泛應用,計算更是給人們的生活帶來了極大的方便,由計算技術推動發展的新的技術讓人耳目一新。如就是隨著各種移動設備、智能計算設備、設備的發展而迅速發展起來。分析當前存在的各種嵌入式移動的體系結構,我們考慮采用一種總體上采用組件方式、組件內部采用模塊化方式的嵌入式移動數據庫。

        1 基本概念

        模塊化(Block-based design)就是指程序的編寫不是開始就逐條錄入計算機語句和指令,而是首先用主程序、子程序、子過程等框架把軟件的主要結構和流程描述出來,并定義和調試好各個框架之間的輸入、輸出鏈接關系。模塊化設計的基本思想是為了減少模塊與模塊之間的關聯性,模塊之間的邏輯結構相對獨立,無函數的交叉調用,數據傳遞由全局變量完成。模塊化設計的核心是模塊的獨立性,主要包括功能獨立性和結構獨立性,這使得軟件開發的分工易于實現。

        軟件組件的概念產生于軟件復用,近幾年隨著對組件技術的認識不斷深入,出現了若干新的組件定義。其中比較有代表性的有對象管理小組(Object Management Group, OMG)的“建模語言規范”中對組件的定義如下:中一種物理的、可代替的部件、它封裝了實現并提供了一系列可用的接口。一個組件代表一個中實現的物理部分,包括軟件代碼(源代碼,二進制代碼,可執行代碼)或者一些類似內容,如腳本或者命令文件。

        2 基于組件的EMDBS 的體系結構

        目前已出現的商業EMDBS 產品基本上都是采用一種封閉式的體系結構,并都有各自的特性。他們支持不同的操作系統平臺,具有不同的內存管理需求,提供不同類型的接口給用戶訪問數據庫中的數據,并且它們都是一種封閉、穩定的數據庫產品,一旦發布,數據庫的功能就已經確定下來。很少考慮數據庫的非功能特性。為了降低數據庫開發成本,減少開發時間、同時隨著時間的變遷不斷完善數據庫的各項功能,這樣傳統的數據庫的體系結構就很難完成各項新功能。因此我們考慮設計一種新的體系結構——總體上基于組件、組件內部模塊化的EMDBS 的體系結構。這些組件可以隨時添加、刪除和重新配置新功能,它將提供數據庫原來沒有的功能,同時又不影響原來的功能。

        考慮到基于組件軟件開發各個方面的好處,我們把這種總體上基于組件、組件內部模塊化的EMDBS 的體系結構設計成3 層體系結構[2][4][7]。如圖1 所示。

        第一層是數據庫基本功能提供層,它提供包含數據對象的定義、格式、存儲以及如何檢索這些對象的基本數據庫功能。本層隱藏了與硬件部分相關用戶的細節,同時這一層自身也會被作為組件的一部分。這一次通過接口向上一層和下一層提供相應的服務,保證在添加時提供一種驗證機制,在刪除時不影響系統的基本功能。

        第二層是組件接口層。它是多種功能組件的大集合,構成了一個組件庫,庫中的組件提供一種特定的服務或者服務集。它向數據庫基本功能提供層發送請求,獲得來自數據庫的請求結果,同時向上層的基于組件的應用程序和組件配置層提供相應的服務。比如客戶的應用有可能不需要使用數據庫提供的現有功能或者需要修改已有的數據庫服務功能以滿足特殊的使用目的,在這種情況下,可以通過向數據庫中提供新的組件以完成任務,從而達到簡化設計的目的。

        第三層是組件配置層,它提供一種供新組件順利地移植到數據庫中的機制。這一層的部分工作就是提供用戶接口。通過用戶接口可以了解到各個組件的屬性及其提供的服務。同時,該用戶接口也允許組件擁有者選擇新的組件屬性和服務映射到已經存在的功能上。一旦組件擁有者完成了這個映射過程,那么配置層產生的膠合代碼將確保對數據庫中的新組件提供支持,同時這些膠合代碼信息都會被保存在數據庫之中。在生成組件膠合代碼之前,用戶接口會提供驗證機制以弄清楚該組件能否被融入到系統中,同時用戶接口將會生成一個報告,用以說明兼容性上的細節,也會視具體情況做些配置上的修改以便使該組件適用于本數據庫。

        3 基于組件的EMDBS 的開發過程

        基于組件的EMDBS 的開發過程可以有以下7 個步驟:需求分析和開發平臺選擇、基于組件EMDBS 體系結構設計、組件實現、組件集成、集成測試、系統測試、系統發布。如圖2 所示[1]。

        第一階段是需求分析和開發平臺選擇,通過分析確定功能性需求和非功能性需求。確定哪些功能由硬件來實現,哪些功能由軟件來實現,同時結合相應領域的知識選擇開發工具和規劃各個部分實現的功能。

        第二階段是基于組件EMDBS 體系結構設計,在前面分析的基礎上進行相應的硬件體系結構和軟件體系結構的設計。硬件體系結構的設計采用組件技術的思想,設計和開發硬件的基礎組件,或者有相應的工程師選擇現成的硬組件。而軟件體系結構的開發通過選擇支持組件的嵌入式操作系統、確定系統級的擴展服務組件、確定應用級的領域通用組件和專用組件,同時確定各個組件之間的關系。

        第三階段是組件實現和組件集成。它首先明確組件的定義、組件的描述技術和規范、組件的裁剪,其次驗證組件特性和生成相應的技術文檔,讓所有的組件通過標準端口在統一調度程序下實現交互,完成系統預定的功能,集成系統的所有組件(有些組件可以在組件庫中提取,其余的組件由相應的開發小組完成),最后及時地把新開發的組件放入到組件庫中以備將來使用。

        第四階段是測試和系統發布,測試包括集成測試和系統測試兩部分。它把整個系統的組件、調試程序以及硬件的開發平臺集成在一起,進行整體測試,最終形成產品進行發行使用。

        4 基于組件的EMDBS 的設計

        基于組件的嵌入式移動數據庫系統將會使用大量組件,我們通過組件容器來搭建創建者和使用者之間的橋梁。并且在組件容器的上配置上組件*器,用來監測組件的添加、刪除、修改和替換等操作,同時它會啟用組件的規范驗證機制來測試和驗證狀態發生變化的組件是否能夠按照要求工作,膠合組件中的膠合代碼信息也會被更新,系統還會通知其它與此組件相關聯的組件,告訴它們發生的變化,以適應新的系統狀態。

        通過對嵌入式移動數據庫系統和嵌入式移動數據庫組件環境的分析和設計,我們設計了以組件容器為核心,由日志組件、事務處理組件、SQL 解析組件、訪問控制組件和其他功能組件組成的嵌入式移動數據庫系統。如圖3 所示[2][5]。

        通過圖3 設計的嵌入式移動數據庫系統,第一,方便用戶掌握和學習,又方便為基于組件技術開發軟件提供統一標準;第二,組件容器提供了一些擴展接口,方便第三方開發的組件的使用;第三,方便組件的更新、刪除、替換等操作,如對某些組件不想要可以進行上面的操作;最后,為了系統的安全和節能起見,可以為系統增加新的功能,如增加“來電防火墻”組件,節能保護組件等。

        5 基于組件的EMDBS 的實現

        SkyEye 是一個開源軟件項目,它是一個指令級的模擬器,可以模擬多種嵌入式開發板,能夠支持多種CPU 指令集。在SkyEye 上運行的操作系統根本意識不到它是在一個模擬的環境中運行,開發人員還可以通過SkyEye 調試操作系統和系統軟件。SkyEye 模擬器即可以運行于Linux 環境下,又可以在Windows 下進行模擬運行。限于文章篇幅原因,關于SkyEye模擬器Cywgin 和MingW 安裝過程就省略不談。

        本文采用Visual C++6.0 進行編程開發,通過MingW 或者Cywgin 在Windows 下模擬運行,并以PHILIPS LPC2xxxx 為開發測試板,運行的結果如圖4 所示。

        在嵌入式環境下使用交叉編譯工具編譯和鏈接測試程序代碼,同樣把生成的可執行文件鏈接加入到SkyEye 測試環境中去,運行該測試程序,輸入數據,就可以通過查詢得到所需要的數據。通過測試數據,驗證了利用組件技術的思想設計嵌入式移動數據庫的可行性。

        6 結束語

        基于組件的軟件開發是當前的一個研究熱點。目前由于基于組件技術開發嵌入式移動數據庫系統的標準還沒有形成,因為這即要考慮組件的屬性獲取、組件認證、屬性預測等方面,又要考慮具有公共接口的組件技術,通過調整和配置這些組件達到特定應用領域的需要,同時又要考慮一些非功能特性。本文總體上采用基于組件的組件復用技術,在組件內部采用模塊化思想設計組件,從而設計了一個可供嵌入式移動數據庫使用的框架模型,并設計了基于該框架的組件,通過測試數據,驗證了利用組件技術的思想設計嵌入式移動數據庫的可行性。從而達到早日提供基于組件的開發標準,以此達到構造靈活、高效、方便的嵌入式移動數據庫。

        本文的創新點:軟件工程的思想貫穿于嵌入式移動數據庫系統設計的整個過程,本文中的嵌入式移動數據庫系統開發中總體上采用分層和組件技術的思想,組件內部采用模塊化的思想,方便系統快捷、高效、靈活地開發。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        c++相關文章:c++教程




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 贺州市| 耿马| 五莲县| 河池市| 绩溪县| 玉树县| 永城市| 旬邑县| 台中市| 河北省| 靖宇县| 襄汾县| 徐水县| 土默特右旗| 慈利县| 汶上县| 洛阳市| 柳林县| 伊吾县| 益阳市| 金华市| 辛集市| 上林县| 和顺县| 景泰县| 江阴市| 巴东县| 潞西市| 云浮市| 吉安县| 那曲县| 托克托县| 锦屏县| 北川| 五常市| 江源县| 唐河县| 襄樊市| 江门市| 永兴县| 金沙县|