欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng)及方法與流程

文檔序號(hào):11734545閱讀:249來源:國知局
嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng)及方法與流程
本發(fā)明涉及嵌入式網(wǎng)絡(luò)設(shè)備,特別涉及一種嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng)及方法。

背景技術(shù):
嵌入式設(shè)備是一種資源稀缺平臺(tái),一般用于實(shí)現(xiàn)單一的功能。但隨著硬件技術(shù)的革新,平臺(tái)化的、可二次開發(fā)的嵌入式網(wǎng)絡(luò)設(shè)備平臺(tái)已經(jīng)實(shí)現(xiàn),但在嵌入式設(shè)備開發(fā)中,一旦不限于單一功能,業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)目便會(huì)增加,數(shù)據(jù)的訪問便成了性能和資源的瓶頸。在嵌入式網(wǎng)絡(luò)設(shè)備中,受限于硬件資源,平臺(tái)多業(yè)務(wù)應(yīng)用間數(shù)據(jù)訪問的時(shí)效性、穩(wěn)定性很難得到保證,特別是上層應(yīng)用與底層硬件關(guān)系比較緊密的嵌入式網(wǎng)絡(luò)設(shè)備中,給嵌入式網(wǎng)絡(luò)設(shè)備的業(yè)務(wù)應(yīng)用系統(tǒng)開發(fā)添加了諸多負(fù)擔(dān)。

技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn)與不足,提供一種嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng),其可以實(shí)現(xiàn)在嵌入式網(wǎng)絡(luò)設(shè)備上向多個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)提供統(tǒng)一的虛擬化數(shù)據(jù)訪問服務(wù)接口和方法,有效提高嵌入式網(wǎng)絡(luò)設(shè)備數(shù)據(jù)存取的一致性和時(shí)效性,有助于提升嵌入式網(wǎng)絡(luò)設(shè)備數(shù)據(jù)服務(wù)的可擴(kuò)展性。本發(fā)明的另一目的在于,利用上述系統(tǒng)在嵌入式網(wǎng)絡(luò)設(shè)備上向多個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)提供統(tǒng)一的虛擬化數(shù)據(jù)訪問方法。為了達(dá)到上述第一個(gè)目的,本發(fā)明采用以下技術(shù)方案:嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng),包括數(shù)據(jù)存儲(chǔ)子系統(tǒng)、數(shù)據(jù)服務(wù)子系統(tǒng)和數(shù)據(jù)業(yè)務(wù)接口,所述數(shù)據(jù)業(yè)務(wù)接口通過數(shù)據(jù)服務(wù)子系統(tǒng)與所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)連接;所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)位于所述虛擬化數(shù)據(jù)訪問系統(tǒng)的底層,所述數(shù)據(jù)業(yè)務(wù)接口位于所述虛擬化數(shù)據(jù)訪問系統(tǒng)的頂層;所述數(shù)據(jù)業(yè)務(wù)接口包括相互連接的數(shù)據(jù)封裝與解釋模塊和服務(wù)調(diào)用接口模塊;所述數(shù)據(jù)封裝與解釋模塊接收業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)請(qǐng)求,按照通信報(bào)文結(jié)構(gòu)封裝數(shù)據(jù);所述數(shù)據(jù)服務(wù)子系統(tǒng)包括數(shù)據(jù)服務(wù)適配器、數(shù)據(jù)服務(wù)日志模塊和數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊,所述數(shù)據(jù)服務(wù)適配器、數(shù)據(jù)服務(wù)日志模塊和數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊兩兩相互連接;所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括相互連接的數(shù)據(jù)接口模塊與數(shù)據(jù)存儲(chǔ)模塊;所述數(shù)據(jù)業(yè)務(wù)接口中的服務(wù)調(diào)用接口模塊與所述數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)適配器連接,所述數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊與所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)的數(shù)據(jù)接口模塊連接。優(yōu)選的,所述數(shù)據(jù)服務(wù)子系統(tǒng)中數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊包含若干個(gè)業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊。更進(jìn)一步的,所述業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊在虛擬化數(shù)據(jù)訪問系統(tǒng)啟動(dòng)時(shí)以模塊化的形態(tài)靜態(tài)方式加載或在虛擬化數(shù)據(jù)訪問系統(tǒng)運(yùn)行階段以動(dòng)態(tài)方式加載。更進(jìn)一步的,所述通信報(bào)文依次由系統(tǒng)報(bào)頭、模塊報(bào)頭和模塊數(shù)據(jù)三個(gè)部分組成;所述系統(tǒng)報(bào)頭依次由模塊標(biāo)識(shí)、狀態(tài)碼、保留字段和報(bào)文總長度組成;所述模塊報(bào)頭依次由模塊版本號(hào)、操作號(hào)、保留字段和模塊數(shù)據(jù)類型標(biāo)識(shí)組成,所述模塊數(shù)據(jù)中包含了讀取或?qū)懭氲膶?shí)際數(shù)據(jù)。更進(jìn)一步的,所述數(shù)據(jù)存儲(chǔ)子系統(tǒng)中的數(shù)據(jù)存儲(chǔ)模塊包含若干個(gè)數(shù)據(jù)容器,所述數(shù)據(jù)容器與所述業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊一一對(duì)應(yīng),所述數(shù)據(jù)容器由若干個(gè)數(shù)據(jù)存儲(chǔ)單元組成,所述數(shù)據(jù)存儲(chǔ)單元分為正在使用的數(shù)據(jù)存儲(chǔ)單元和空閑的數(shù)據(jù)存儲(chǔ)單元,所述正在使用的數(shù)據(jù)存儲(chǔ)單元通過數(shù)據(jù)鏈接表方式組成工作鏈表,所述空閑的數(shù)據(jù)存儲(chǔ)單元通過數(shù)據(jù)鏈表方式組成空閑鏈表。更進(jìn)一步的,所述數(shù)據(jù)存儲(chǔ)單元包括索引號(hào)和鍵值,所述索引號(hào)為由模塊標(biāo)識(shí)和模塊數(shù)據(jù)類型通過哈希函數(shù)計(jì)算得到的存儲(chǔ)數(shù)據(jù)的索引序號(hào),所述鍵值用于存儲(chǔ)應(yīng)用數(shù)據(jù)。為了達(dá)到上述第二個(gè)目的,本發(fā)明采用以下技術(shù)方案:嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問方法,包括以下步驟:(a)啟動(dòng)虛擬化數(shù)據(jù)訪問系統(tǒng);(b)數(shù)據(jù)業(yè)務(wù)接口接收來自業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)請(qǐng)求,并由數(shù)據(jù)封裝與解釋模塊按照通信報(bào)文結(jié)構(gòu)對(duì)來自業(yè)務(wù)應(yīng)用系統(tǒng)的服務(wù)請(qǐng)求進(jìn)行封裝,再由服務(wù)調(diào)用接口模塊將通信報(bào)文傳送給數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)適配器處理;(c)數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)適配器校驗(yàn)通信報(bào)文的系統(tǒng)報(bào)頭是否正確;若校驗(yàn)正確,則解析出通信報(bào)文的模塊報(bào)頭,然后按照通信報(bào)文的模塊報(bào)頭,將通信報(bào)文交由數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊中相應(yīng)的業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊處理;最后由業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊傳送給數(shù)據(jù)存儲(chǔ)子系統(tǒng)進(jìn)行處理;其中數(shù)據(jù)服務(wù)日志模塊記錄操作和運(yùn)行信息;(d)數(shù)據(jù)存儲(chǔ)子系統(tǒng)的數(shù)據(jù)接口對(duì)通信報(bào)文的模塊數(shù)據(jù)格式進(jìn)行校驗(yàn);若校驗(yàn)正確,則將通信報(bào)文傳遞給數(shù)據(jù)存儲(chǔ)模塊,數(shù)據(jù)存儲(chǔ)模塊根據(jù)通信報(bào)文的模塊標(biāo)識(shí),選擇對(duì)應(yīng)的數(shù)據(jù)容器,再計(jì)算出索引號(hào);若業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)請(qǐng)求為寫入數(shù)據(jù)請(qǐng)求,則將通信報(bào)文中的模塊數(shù)據(jù)作為鍵值,與索引號(hào)一起寫入到對(duì)應(yīng)的數(shù)據(jù)容器中,然后數(shù)據(jù)存儲(chǔ)子系統(tǒng)將寫入結(jié)果返回給數(shù)據(jù)服務(wù)子系統(tǒng);若業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)請(qǐng)求為讀取數(shù)據(jù)請(qǐng)求,則根據(jù)索引號(hào),在對(duì)應(yīng)數(shù)據(jù)容器中找到對(duì)應(yīng)的鍵值,然后將鍵值復(fù)制到通信報(bào)文的模塊數(shù)據(jù)中,將通信報(bào)文與讀取結(jié)果狀態(tài)一起返回給數(shù)據(jù)服務(wù)子系統(tǒng);(e)數(shù)據(jù)服務(wù)子系統(tǒng)的業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊將結(jié)果返回給數(shù)據(jù)服務(wù)適配器;(f)數(shù)據(jù)服務(wù)適配器將返回執(zhí)行結(jié)果傳送給數(shù)據(jù)業(yè)務(wù)接口;數(shù)據(jù)業(yè)務(wù)接口的服務(wù)調(diào)用接口模塊接收返回結(jié)果,并由數(shù)據(jù)封裝與解釋模塊對(duì)返回結(jié)果進(jìn)行解釋,將解釋后的數(shù)據(jù)返回給業(yè)務(wù)應(yīng)用系統(tǒng);優(yōu)選的,所述步驟(a)中,所述虛擬化數(shù)據(jù)訪問系統(tǒng)的啟動(dòng)包括如下操作:首先初始化數(shù)據(jù)存儲(chǔ)模塊的存儲(chǔ)區(qū)域,將數(shù)據(jù)存儲(chǔ)模塊初始化為若干大小不等的數(shù)據(jù)容器;接著數(shù)據(jù)服務(wù)子系統(tǒng)啟動(dòng)數(shù)據(jù)服務(wù)日志模塊;然后將設(shè)置為靜態(tài)加載的業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊以模塊化的形式進(jìn)行靜態(tài)加載。優(yōu)選的,所述步驟(d)中寫入結(jié)果為數(shù)據(jù)寫入成功或數(shù)據(jù)寫入失??;讀取結(jié)果為數(shù)據(jù)讀取成功或數(shù)據(jù)讀取失敗。優(yōu)選的,所述步驟(d)中,若業(yè)務(wù)應(yīng)用系統(tǒng)的服務(wù)請(qǐng)求為寫入數(shù)據(jù)請(qǐng)求時(shí),則數(shù)據(jù)存儲(chǔ)模塊首先在對(duì)應(yīng)數(shù)據(jù)容器的空閑鏈表上取出一個(gè)大小合適的數(shù)據(jù)存儲(chǔ)單元,嘗試鎖定該數(shù)據(jù)存儲(chǔ)單元,加鎖成功后,將索引號(hào)和通信報(bào)文中的模塊數(shù)據(jù)存放到數(shù)據(jù)存儲(chǔ)單元中,并將該數(shù)據(jù)存儲(chǔ)單元從空閑鏈表更改到工作鏈表中;所述步驟(d)中,若業(yè)務(wù)應(yīng)用系統(tǒng)的服務(wù)請(qǐng)求為讀取數(shù)據(jù)請(qǐng)求時(shí),則根據(jù)索引號(hào),在對(duì)應(yīng)數(shù)據(jù)容器的工作鏈表上找到對(duì)應(yīng)鍵值的數(shù)據(jù)存儲(chǔ)單元;然后將該數(shù)據(jù)存儲(chǔ)單元的鍵值復(fù)制到通信報(bào)文的模塊數(shù)據(jù)中。所述步驟(d)中在讀取數(shù)據(jù)時(shí),每個(gè)數(shù)據(jù)容器中有一個(gè)或多個(gè)進(jìn)程進(jìn)行讀?。凰霾襟E(d)中在寫入數(shù)據(jù)時(shí),每個(gè)數(shù)據(jù)容器中有一個(gè)進(jìn)程進(jìn)行寫入,當(dāng)數(shù)據(jù)容器有寫入操作時(shí),對(duì)該數(shù)據(jù)容器的整個(gè)數(shù)據(jù)塊加上寫鎖;當(dāng)寫入數(shù)據(jù)操作沖突無法執(zhí)行操作時(shí),數(shù)據(jù)存儲(chǔ)子系統(tǒng)以數(shù)據(jù)寫入失敗狀態(tài)返回此次操作,并由數(shù)據(jù)服務(wù)子系統(tǒng)的服務(wù)日志模塊記錄下操作沖突情景,業(yè)務(wù)應(yīng)用系統(tǒng)收到返回結(jié)果后,可以從失敗狀態(tài)信息得知失敗原因,并由業(yè)務(wù)應(yīng)用系統(tǒng)決定是否再次執(zhí)行操作。本發(fā)明相對(duì)于現(xiàn)有技術(shù)具有如下的優(yōu)點(diǎn)及效果:(1)本發(fā)明系統(tǒng)在嵌入式網(wǎng)絡(luò)設(shè)備上向多個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)提供了統(tǒng)一的虛擬化數(shù)據(jù)訪問服務(wù)接口和方法,避免了由嵌入式網(wǎng)絡(luò)設(shè)備上的各個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)去設(shè)計(jì)實(shí)現(xiàn)各自公共數(shù)據(jù)的訪問系統(tǒng),減少了業(yè)務(wù)應(yīng)用系統(tǒng)開發(fā)者在嵌入式網(wǎng)絡(luò)設(shè)備數(shù)據(jù)訪問上的開發(fā)負(fù)擔(dān),有效提高了嵌入式網(wǎng)絡(luò)設(shè)備數(shù)據(jù)存取的一致性。(2)本發(fā)明嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng)中,每個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)在虛擬化數(shù)據(jù)訪問系統(tǒng)中都有一個(gè)對(duì)應(yīng)的業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊和數(shù)據(jù)容器,各個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)訪問方法在虛擬化數(shù)據(jù)訪問系統(tǒng)中是相互隔離的,因此不同業(yè)務(wù)應(yīng)用系統(tǒng)在虛擬化數(shù)據(jù)訪問系統(tǒng)中互不干擾,不同業(yè)務(wù)應(yīng)用系統(tǒng)的開發(fā)者可按需在嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng)中添加各自的數(shù)據(jù)訪問方法來實(shí)現(xiàn),提高了本發(fā)明數(shù)據(jù)服務(wù)的可擴(kuò)展性。本發(fā)明數(shù)據(jù)存取的效率主要在于將數(shù)據(jù)保存在數(shù)據(jù)存儲(chǔ)子系統(tǒng)的數(shù)據(jù)存儲(chǔ)模塊中,存取數(shù)據(jù)方式較為簡潔,因此數(shù)據(jù)存取的效率較高,提高了本發(fā)明數(shù)據(jù)存取的時(shí)效性。(3)本發(fā)明系統(tǒng)中的數(shù)據(jù)容器在寫入數(shù)據(jù)時(shí),每個(gè)數(shù)據(jù)容器只允許有一個(gè)進(jìn)程進(jìn)行寫入,當(dāng)數(shù)據(jù)容器有寫入操作時(shí),對(duì)該數(shù)據(jù)容器的整個(gè)數(shù)據(jù)塊加上寫鎖;有效避免了其它進(jìn)程對(duì)同一數(shù)據(jù)塊的寫入導(dǎo)致數(shù)據(jù)沖突的現(xiàn)象。附圖說明圖1是本發(fā)明系統(tǒng)的組成結(jié)構(gòu)框圖。圖2是本發(fā)明系統(tǒng)中通信報(bào)文的組成結(jié)構(gòu)圖。具體實(shí)施方式下面結(jié)合實(shí)施例及附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述,但本發(fā)明的實(shí)施方式不限于此。實(shí)施例如圖1所示,本實(shí)施例公開了一種嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng),包括數(shù)據(jù)存儲(chǔ)子系統(tǒng)、數(shù)據(jù)服務(wù)子系統(tǒng)和數(shù)據(jù)業(yè)務(wù)接口,數(shù)據(jù)業(yè)務(wù)接口通過數(shù)據(jù)服務(wù)子系統(tǒng)與數(shù)據(jù)存儲(chǔ)子系統(tǒng)連接;數(shù)據(jù)存儲(chǔ)子系統(tǒng)位于虛擬化數(shù)據(jù)訪問系統(tǒng)的底層,數(shù)據(jù)業(yè)務(wù)接口位于虛擬化數(shù)據(jù)訪問系統(tǒng)的頂層;數(shù)據(jù)業(yè)務(wù)接口是本實(shí)施例嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng)提供給業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)業(yè)務(wù)訪問接口;其中數(shù)據(jù)業(yè)務(wù)接口包括相互連接的數(shù)據(jù)封裝與解釋模塊和服務(wù)調(diào)用接口模塊;數(shù)據(jù)封裝與解釋模塊的一個(gè)作用是:接收業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)請(qǐng)求,按照通信報(bào)文結(jié)構(gòu)封裝數(shù)據(jù)服務(wù)請(qǐng)求,并將封裝后的通信報(bào)文交由服務(wù)調(diào)用模塊發(fā)送;另一個(gè)作用是:按照通信報(bào)文結(jié)構(gòu)解釋有服務(wù)調(diào)用接口模塊接收到的數(shù)據(jù),并發(fā)送給業(yè)務(wù)應(yīng)用系統(tǒng)。數(shù)據(jù)服務(wù)子系統(tǒng)由數(shù)據(jù)存儲(chǔ)子系統(tǒng)提供數(shù)據(jù)存儲(chǔ)支持,向數(shù)據(jù)業(yè)務(wù)接口提供數(shù)據(jù)服務(wù)的注冊(cè)、數(shù)據(jù)服務(wù)的實(shí)現(xiàn)和數(shù)據(jù)服務(wù)的監(jiān)控,其中數(shù)據(jù)服務(wù)子系統(tǒng)包括數(shù)據(jù)服務(wù)適配器、數(shù)據(jù)服務(wù)日志模塊和數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊,數(shù)據(jù)服務(wù)適配器、數(shù)據(jù)服務(wù)日志模塊和數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊兩兩相互連接;本實(shí)施例數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)適配器接受來自業(yè)務(wù)應(yīng)用系統(tǒng)通過數(shù)據(jù)業(yè)務(wù)接口的服務(wù)請(qǐng)求,根據(jù)數(shù)據(jù)業(yè)務(wù)接口的請(qǐng)求適配特定的服務(wù),不同的服務(wù)可以由服務(wù)名或服務(wù)標(biāo)識(shí)來唯一標(biāo)識(shí),對(duì)應(yīng)于數(shù)據(jù)存儲(chǔ)子系統(tǒng)中不同的數(shù)據(jù)容器。本實(shí)施例數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)日志模塊統(tǒng)計(jì)各項(xiàng)應(yīng)用服務(wù)的運(yùn)行信息,包括了各類調(diào)試信息、運(yùn)行狀態(tài)信息等,主要用于在故障或升級(jí)設(shè)備時(shí)查看系統(tǒng)的運(yùn)行流水。本實(shí)施例數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊包含10個(gè)業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊,業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊是各個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)在數(shù)據(jù)服務(wù)子系統(tǒng)中對(duì)各自數(shù)據(jù)訪問抽象接口的具體實(shí)現(xiàn),不同的上層業(yè)務(wù)應(yīng)用對(duì)應(yīng)不同的業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊,每個(gè)業(yè)務(wù)應(yīng)用系統(tǒng)在虛擬化數(shù)據(jù)訪問系統(tǒng)中都有一個(gè)對(duì)應(yīng)的業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊和數(shù)據(jù)容器;其中數(shù)據(jù)訪問抽象接口是指對(duì)數(shù)據(jù)訪問方式的抽象,對(duì)二進(jìn)制數(shù)據(jù)、字符串?dāng)?shù)據(jù)及其他類型數(shù)據(jù)的操作都被整理為一組操作方法,作為虛擬方法由各個(gè)業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊去繼承與實(shí)現(xiàn)。業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊按照不同的啟動(dòng)方式設(shè)置,可在系統(tǒng)啟動(dòng)時(shí)以模塊化的形態(tài)靜態(tài)方式加載,或在系統(tǒng)運(yùn)行階段以動(dòng)態(tài)方式加載。數(shù)據(jù)存儲(chǔ)子系統(tǒng)包括相互連接的數(shù)據(jù)接口模塊與數(shù)據(jù)存儲(chǔ)模塊;其中數(shù)據(jù)接口模塊是數(shù)據(jù)存儲(chǔ)子系統(tǒng)提供的數(shù)據(jù)訪問接口;數(shù)據(jù)存儲(chǔ)模塊為業(yè)務(wù)應(yīng)用系統(tǒng)寫入的數(shù)據(jù)提供了存儲(chǔ)空間及存儲(chǔ)了業(yè)務(wù)應(yīng)用系統(tǒng)需要讀取的數(shù)據(jù)。其中本實(shí)施例數(shù)據(jù)存儲(chǔ)模塊中包含10個(gè)數(shù)據(jù)容器,每個(gè)數(shù)據(jù)容器由100個(gè)100字節(jié)到10K字節(jié)大小不等的數(shù)據(jù)存儲(chǔ)單元組成。數(shù)據(jù)存儲(chǔ)單元分為正在使用的數(shù)據(jù)存儲(chǔ)單元和空閑的數(shù)據(jù)存儲(chǔ)單元,正在使用的數(shù)據(jù)存儲(chǔ)單元通過數(shù)據(jù)鏈接表方式組成used_list鏈表,空閑的數(shù)據(jù)存儲(chǔ)單元通過數(shù)據(jù)鏈表方式方式組成free_list鏈表。初始都未使用時(shí),全部數(shù)據(jù)存儲(chǔ)單元鏈接在free_list鏈表。數(shù)據(jù)存儲(chǔ)單元包括索引號(hào)和鍵值,索引號(hào)為由模塊標(biāo)識(shí)和模塊數(shù)據(jù)類型通過哈希函數(shù)計(jì)算得到的存儲(chǔ)數(shù)據(jù)的索引序號(hào)。本實(shí)施例數(shù)據(jù)業(yè)務(wù)接口中的服務(wù)調(diào)用接口模塊與數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)適配器連接,數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊與數(shù)據(jù)存儲(chǔ)子系統(tǒng)的數(shù)據(jù)接口模塊連接。本實(shí)施例嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng)的配置包括分配給數(shù)據(jù)存儲(chǔ)模塊內(nèi)存大小,確定數(shù)據(jù)容器及其數(shù)據(jù)存儲(chǔ)單元的大小與個(gè)數(shù),確定數(shù)據(jù)服務(wù)子系統(tǒng)加載哪些業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊以及數(shù)據(jù)服務(wù)日志模塊記錄哪些信息。如圖2所示,本實(shí)施例中通信報(bào)文依次由4個(gè)字節(jié)的系統(tǒng)報(bào)頭、4個(gè)字節(jié)的模塊報(bào)頭和模塊數(shù)據(jù)三個(gè)部分組成;系統(tǒng)報(bào)頭依次由4位的模塊標(biāo)識(shí)、4位的狀態(tài)碼、8位的保留字段和16位的報(bào)文總長度組成,其中模塊標(biāo)識(shí)唯一標(biāo)識(shí)了數(shù)據(jù)存儲(chǔ)子系統(tǒng)中的數(shù)據(jù)存儲(chǔ)模塊,狀態(tài)碼指明了請(qǐng)求調(diào)用的執(zhí)行情況,報(bào)文總長度為整個(gè)通信報(bào)文的長度;模塊報(bào)頭依次由4位的模塊版本號(hào)、4位的操作號(hào)、8位的保留字段和16位的模塊數(shù)據(jù)類型標(biāo)識(shí)組成,其中模塊版本號(hào)指明模塊的版本,便于模塊的升級(jí),操作號(hào)指定了對(duì)存儲(chǔ)數(shù)據(jù)的執(zhí)行何種操作,如讀取或?qū)懭?,模塊數(shù)據(jù)類型標(biāo)識(shí)指定了數(shù)據(jù)存儲(chǔ)子系統(tǒng)中存儲(chǔ)的數(shù)據(jù)類型.模塊數(shù)據(jù)中包含了讀取或?qū)懭氲膶?shí)際數(shù)據(jù),其長度為0~65531字節(jié)。本實(shí)施例公開了一種基于上述嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問系統(tǒng)的嵌入式網(wǎng)絡(luò)設(shè)備的虛擬化數(shù)據(jù)訪問方法,包括如下步驟:(a)啟動(dòng)虛擬化數(shù)據(jù)訪問系統(tǒng);首先初始化數(shù)據(jù)存儲(chǔ)模塊的存儲(chǔ)區(qū)域,將數(shù)據(jù)存儲(chǔ)模塊初始化為若干大小不等的數(shù)據(jù)容器;接著數(shù)據(jù)服務(wù)子系統(tǒng)啟動(dòng)數(shù)據(jù)服務(wù)日志模塊;然后將設(shè)置為靜態(tài)加載的業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊以模塊化的形式進(jìn)行靜態(tài)加載。(b)數(shù)據(jù)業(yè)務(wù)接口接收來自業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)請(qǐng)求,并由數(shù)據(jù)封裝與解釋模塊按照通信報(bào)文結(jié)構(gòu)對(duì)來自業(yè)務(wù)應(yīng)用系統(tǒng)的服務(wù)請(qǐng)求進(jìn)行封裝,再由服務(wù)調(diào)用接口模塊將通信報(bào)文傳送給數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)適配器處理;(c)數(shù)據(jù)服務(wù)子系統(tǒng)的數(shù)據(jù)服務(wù)適配器校驗(yàn)通信報(bào)文的系統(tǒng)報(bào)頭是否正確;若校驗(yàn)正確,則解析出通信報(bào)文的模塊報(bào)頭,然后按照通信報(bào)文的模塊報(bào)頭,將通信報(bào)文交由數(shù)據(jù)服務(wù)實(shí)現(xiàn)模塊中對(duì)應(yīng)的業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊進(jìn)行數(shù)據(jù)合法性檢查和數(shù)據(jù)整理;最后由業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊傳送給數(shù)據(jù)存儲(chǔ)子系統(tǒng)進(jìn)行處理;其中數(shù)據(jù)服務(wù)日志模塊記錄操作和運(yùn)行信息;(d)數(shù)據(jù)存儲(chǔ)子系統(tǒng)的數(shù)據(jù)接口對(duì)通信報(bào)文的模塊數(shù)據(jù)格式進(jìn)行校驗(yàn);若校驗(yàn)正確,則將通信報(bào)文傳遞給數(shù)據(jù)存儲(chǔ)模塊,數(shù)據(jù)存儲(chǔ)模塊根據(jù)通信報(bào)文的模塊標(biāo)識(shí),選擇對(duì)應(yīng)的數(shù)據(jù)容器,再計(jì)算出索引號(hào);若業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)請(qǐng)求為寫入數(shù)據(jù)請(qǐng)求,則數(shù)據(jù)存儲(chǔ)模塊首先在對(duì)應(yīng)數(shù)據(jù)容器的空閑鏈表上取出一個(gè)大小合適的數(shù)據(jù)存儲(chǔ)單元,嘗試鎖定該數(shù)據(jù)存儲(chǔ)單元,加鎖成功后,將索引號(hào)和通信報(bào)文中的模塊數(shù)據(jù)存放到該數(shù)據(jù)存儲(chǔ)單元中,并將該數(shù)據(jù)存儲(chǔ)單元從空閑鏈表更改到工作鏈表中;然后數(shù)據(jù)存儲(chǔ)子系統(tǒng)將寫入結(jié)果返回給數(shù)據(jù)服務(wù)子系統(tǒng);其中寫入結(jié)果為數(shù)據(jù)寫入成功或數(shù)據(jù)寫入失敗。若業(yè)務(wù)應(yīng)用系統(tǒng)的數(shù)據(jù)服務(wù)請(qǐng)求為讀取數(shù)據(jù)請(qǐng)求,則根據(jù)索引號(hào),在對(duì)應(yīng)數(shù)據(jù)容器的工作鏈表中找到對(duì)應(yīng)的數(shù)據(jù)存儲(chǔ)單元;然后將該數(shù)據(jù)存儲(chǔ)單元的鍵值復(fù)制到通信報(bào)文的模塊數(shù)據(jù)中,將通信報(bào)文與讀取結(jié)果一起返回給數(shù)據(jù)服務(wù)子系統(tǒng);其中讀取結(jié)果為數(shù)據(jù)讀取成功或數(shù)據(jù)讀取失敗。(e)數(shù)據(jù)服務(wù)子系統(tǒng)的業(yè)務(wù)應(yīng)用數(shù)據(jù)服務(wù)實(shí)現(xiàn)子模塊將結(jié)果返回給數(shù)據(jù)服務(wù)適配器;(f)數(shù)據(jù)服務(wù)適配器將返回執(zhí)行結(jié)果傳送給數(shù)據(jù)業(yè)務(wù)接口;數(shù)據(jù)業(yè)務(wù)接口的服務(wù)調(diào)用接口模塊接收返回結(jié)果,并由數(shù)據(jù)封裝與解釋模塊對(duì)返回結(jié)果進(jìn)行解釋,將解釋后的數(shù)據(jù)返回給業(yè)務(wù)應(yīng)用系統(tǒng)。本實(shí)施例步驟(d)中在讀取數(shù)據(jù)時(shí),每個(gè)數(shù)據(jù)容器允許一個(gè)或多個(gè)進(jìn)程進(jìn)行讀取。本實(shí)施例步驟(d)中在寫入數(shù)據(jù)時(shí),每個(gè)數(shù)據(jù)容器只允許有一個(gè)進(jìn)程進(jìn)行寫入,當(dāng)數(shù)據(jù)容器有寫入操作時(shí),對(duì)該數(shù)據(jù)容器的整個(gè)數(shù)據(jù)塊加上寫鎖;當(dāng)寫入數(shù)據(jù)操作沖突無法執(zhí)行操作時(shí),數(shù)據(jù)存儲(chǔ)子系統(tǒng)會(huì)以數(shù)據(jù)寫入失敗狀態(tài)返回此次操作,并由數(shù)據(jù)服務(wù)子系統(tǒng)的服務(wù)日志模塊記錄下操作沖突情景,業(yè)務(wù)應(yīng)用系統(tǒng)收到返回結(jié)果后,可以從失敗狀態(tài)信息得知失敗原因,并由業(yè)務(wù)應(yīng)用系統(tǒng)決定是否再次執(zhí)行操作。上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
秦皇岛市| 新密市| 科尔| 泊头市| 青浦区| 陆川县| 洪湖市| 克拉玛依市| 平和县| 洛川县| 拜泉县| 厦门市| 利津县| 惠水县| 钟山县| 阿城市| 武强县| 盐山县| 芒康县| 宾川县| 凤凰县| 阆中市| 潼南县| 丘北县| 当雄县| 河津市| 石棉县| 贡山| 林州市| 普洱| 泗阳县| 望城县| 陆良县| 安远县| 威信县| 潮安县| 夏津县| 绥棱县| 理塘县| 铁力市| 武隆县|