新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 可移植的嵌入式WEB服務(wù)器軟件設(shè)計(jì)

        可移植的嵌入式WEB服務(wù)器軟件設(shè)計(jì)

        作者: 時(shí)間:2012-03-26 來(lái)源:網(wǎng)絡(luò) 收藏

        引言

        隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,嵌入式技術(shù)在工業(yè)生產(chǎn)的過(guò)程控制、環(huán)境監(jiān)測(cè)以及遠(yuǎn)程數(shù)據(jù)采集等方面得到了廣泛的應(yīng)用,通過(guò)嵌入在目標(biāo)設(shè)備中的,可以非常方便地獲取遠(yuǎn)程數(shù)據(jù),并實(shí)現(xiàn)對(duì)遠(yuǎn)程設(shè)備的干預(yù),達(dá)到對(duì)遠(yuǎn)程現(xiàn)場(chǎng)進(jìn)行監(jiān)視和控制的目的。在實(shí)際系統(tǒng)中,遠(yuǎn)程設(shè)備往往千差萬(wàn)別,為了在這些目標(biāo)設(shè)備中構(gòu)建,必須針對(duì)不同的系統(tǒng)編寫(xiě)相應(yīng)的WEB服務(wù)器代碼,通過(guò)采用基于操作系統(tǒng)適配層的中間件技術(shù),可以很好的解決WEB服務(wù)器軟件在不同系統(tǒng)之間的移植問(wèn)題,同時(shí)改善軟件的可維護(hù)性。

        1、嵌入式軟件的可移植問(wèn)題

        主要指把同一軟件放置到不同系統(tǒng)平臺(tái)(如不同的硬件平臺(tái)或操作系統(tǒng))并使之正常運(yùn)行的難易程度,有時(shí)候被表述為跨平臺(tái)性,軟件的主要涉及到上面提到的軟硬件運(yùn)行環(huán)境。開(kāi)發(fā)出來(lái)的程序,如果不用修改或只需極少量的修改便能在其它種類(lèi)的計(jì)算機(jī)上運(yùn)行,就是可移植性好的程序。在當(dāng)今的軟件設(shè)計(jì)中,為了在不同的產(chǎn)品線(xiàn)上重復(fù)使用相同的代碼,經(jīng)常需要將代碼從一個(gè)平臺(tái)移植到另一個(gè)平臺(tái),這種代碼的重復(fù)利用非常重要,因?yàn)樗梢钥s短軟件開(kāi)發(fā)和測(cè)試的周期,同時(shí)還能減少后期的維護(hù)工作。

        計(jì)算機(jī)軟件的運(yùn)行環(huán)境有兩個(gè)方面——硬件環(huán)境和軟件環(huán)境。硬件環(huán)境主要涉及計(jì)算機(jī)的硬件體系結(jié)構(gòu),比如X86體系結(jié)構(gòu)、ARM體系結(jié)構(gòu)、MIPS體系結(jié)構(gòu)等,不同的體系結(jié)構(gòu)其指令系統(tǒng)、中斷處理、寄存器組織、總線(xiàn)讀寫(xiě)等都存在一定的差別;軟件環(huán)境指的是軟件依賴(lài)的操作系統(tǒng)。嵌入式應(yīng)用需求多樣,操作系統(tǒng)種類(lèi)也非常豐富,常見(jiàn)的有 VxWorks、Nucleus、WinCE、Linux/uClinux、eCos、uC/OS-II、ThreadX、Hopen和Delta等,不同的操作系統(tǒng)都會(huì)提供一些系統(tǒng)服務(wù),比如任務(wù)創(chuàng)建和管理、任務(wù)間件通訊等,但各個(gè)操作系統(tǒng)在具體實(shí)現(xiàn)時(shí)會(huì)存在一些差異,其對(duì)外提供的系統(tǒng)服務(wù)接口也有不同,比如創(chuàng)建任務(wù)的系統(tǒng)調(diào)用:VxWorks為taskSpawn,Nucleus為NU_Create_Task,為了編寫(xiě)具有最廣泛適應(yīng)性的可移植代碼,開(kāi)發(fā)人員必須注意到這些差異,并且采取適當(dāng)?shù)牟呗裕瑏?lái)開(kāi)發(fā)具有良好可移植性的軟件,使用一個(gè)稱(chēng)為操作系統(tǒng)適配層的中間件可以很好的解決這個(gè)問(wèn)題。

        中間件(Middleware)是位于平臺(tái)(硬件、操作系統(tǒng))和應(yīng)用程序之間的一組通用服務(wù),這些服務(wù)具有標(biāo)準(zhǔn)的程序接口和協(xié)議,針對(duì)不同的操作系統(tǒng)和硬件平臺(tái),它們可以有符合接口和協(xié)議規(guī)范的多種實(shí)現(xiàn)。基于中間件模型,需要對(duì)軟件模塊進(jìn)行一下簡(jiǎn)單的重構(gòu):界面與功能模塊分離,在模塊化的軟件中,界面要求以獨(dú)立的模塊出現(xiàn),它與功能模塊之間可以根據(jù)具體的情況采用API調(diào)用或者消息等通訊機(jī)制來(lái)進(jìn)行交互,這樣在進(jìn)行界面修改時(shí)可以不修改軟件的其他部分;同時(shí)功能模塊不直接調(diào)用操作系統(tǒng)的服務(wù)函數(shù),而是調(diào)用中間件提供的處理函數(shù),通過(guò)中間件實(shí)現(xiàn)與操作系統(tǒng)、硬件以及人機(jī)界面之間的交互,這樣整個(gè)軟件的框架就變成如下結(jié)構(gòu):

        基于中間件的軟件結(jié)構(gòu)圖


        上一頁(yè) 1 2 3 下一頁(yè)

        評(píng)論


        相關(guān)推薦

        技術(shù)專(zhuān)區(qū)

        關(guān)閉
        主站蜘蛛池模板: 海淀区| 牟定县| 宿松县| 尼木县| 古丈县| 阿鲁科尔沁旗| 汤原县| 衡东县| 通渭县| 陵川县| 博野县| 三明市| 岳西县| 洛扎县| 楚雄市| 邻水| 旬邑县| 师宗县| 莫力| 德钦县| 若尔盖县| 梁河县| 霍山县| 固阳县| 基隆市| 公安县| 南皮县| 五家渠市| 大渡口区| 当阳市| 化隆| 南漳县| 汽车| 青州市| 普定县| 清苑县| 新昌县| 兴宁市| 花垣县| 兴仁县| 久治县|