物聯(lián)網(wǎng)開源數(shù)據(jù)交換標(biāo)準(zhǔn)BITXML研究
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引言
自從2009年8月溫家寶總理提出“感知中國”以來,物聯(lián)網(wǎng)被正式列為國家五大新興戰(zhàn)略性產(chǎn)業(yè)之一,寫入政府工作扌艮告。顧名思義,物聯(lián)網(wǎng)(InternetofThings,IoT)就是實(shí)現(xiàn)“物”與“物”之間的相連通信。通過射頻識(shí)別(RFID)、紅外感應(yīng)器、全球定位系統(tǒng)、激光掃描器等信息傳感設(shè)備,按約定的協(xié)議,使任何物品與互聯(lián)網(wǎng)相連接,進(jìn)行信息交換和通信,實(shí)現(xiàn)智能化識(shí)別、定位、跟蹤、監(jiān)控和管理。
然而,我國在物聯(lián)網(wǎng)的核心技術(shù)上與國外發(fā)達(dá)國家還存在一定的差距,部分技術(shù)領(lǐng)域還沒有掌握核心技術(shù);大部分技術(shù)領(lǐng)域落后于國際先進(jìn)水平,以跟隨為主,處在產(chǎn)業(yè)鏈低端。我國企業(yè)基本掌握了低端傳感器研發(fā)的技術(shù),但高端傳感器和新型傳感器的部分核心技術(shù)仍然未掌握。我國僅有組件式傳感器的通用標(biāo)準(zhǔn),新型傳感器標(biāo)準(zhǔn)還基本為空白。
物聯(lián)網(wǎng)標(biāo)準(zhǔn)的關(guān)鍵點(diǎn)和大有作為之處是物物相連的數(shù)據(jù)表達(dá)、交換和處理標(biāo)準(zhǔn)以及相應(yīng)的軟件體系架構(gòu)。M2M的通信更需要建立一個(gè)統(tǒng)一規(guī)范的通信接口和標(biāo)準(zhǔn)化的傳輸內(nèi)容。數(shù)據(jù)交換標(biāo)準(zhǔn)主要落地在物聯(lián)網(wǎng)DCM三層體系的應(yīng)用層和感知層,配合傳輸層通道,目前國外已提出很多標(biāo)準(zhǔn),BITXML便是應(yīng)用層可行性比較高的協(xié)議之一。
XML(ExtensibleMarkupLanguage)即可擴(kuò)展標(biāo)記語言。XML是為互聯(lián)網(wǎng)的數(shù)據(jù)交換而設(shè)計(jì)的。它可以為構(gòu)建數(shù)據(jù)提供一種高度結(jié)構(gòu)化的、易于處理的方式,而且能夠存儲(chǔ)、交換數(shù)據(jù),從而使WEB信息交流更便捷。
BITXML是在XML基礎(chǔ)上定義而成的一個(gè)協(xié)議標(biāo)準(zhǔn)。BITX由意大利M2M廠商YourVoice發(fā)起,并有西門子、愛立信等M2M領(lǐng)域的知名廠商參與,專門針對(duì)M2M應(yīng)用開發(fā)數(shù)據(jù)標(biāo)準(zhǔn),并對(duì)其代碼開源,以便于標(biāo)準(zhǔn)的共同完善。BITXML是一個(gè)開放的,面向M2M數(shù)據(jù)傳輸?shù)耐ㄐ艆f(xié)議。一些公司和組織正在制定M2M國際數(shù)據(jù)標(biāo)準(zhǔn),但目前影響力不大。M2M數(shù)據(jù)標(biāo)準(zhǔn)是指M2M行業(yè)應(yīng)用設(shè)備和應(yīng)用平臺(tái)的數(shù)據(jù)標(biāo)準(zhǔn)。目前比較多的公司和標(biāo)準(zhǔn)組織都是基于XML來制定的,比如OASIS的oBIX標(biāo)準(zhǔn)、BITX的BITXML標(biāo)準(zhǔn),國內(nèi)有同方的oMIX標(biāo)準(zhǔn)。其中BITXML標(biāo)準(zhǔn)比較受到國際認(rèn)可,有成為國際主流標(biāo)準(zhǔn)的趨勢(shì)。
1 BITXML協(xié)議模型
BITXML是一種可讀性強(qiáng)和易于擴(kuò)展的協(xié)議規(guī)范,包括對(duì)不同的I/O端口,網(wǎng)絡(luò)協(xié)議和核心功能的支持。BITXML旨在用一種簡單有效的方式來表達(dá)命令和控制過程,使每個(gè)M2M項(xiàng)目都擁有一個(gè)可以參考的框架。基于BITXML協(xié)議的體系結(jié)構(gòu)參考模型如圖1所示。
BITXML命令/回復(fù)
圖1 BITXML體系結(jié)構(gòu)模型
BITXML體系結(jié)構(gòu)模型中,BITXML網(wǎng)關(guān)應(yīng)用程序可以把任何一種使用BITXML語言的應(yīng)用軟件都作為一個(gè)“智慧”的遠(yuǎn)程執(zhí)行模塊;而對(duì)于BITXML控制器來說,任何一種使用BITXML語言應(yīng)用軟件,都可以作為主控模塊來控制一個(gè)或多個(gè)網(wǎng)關(guān)應(yīng)用程序;它的網(wǎng)絡(luò)傳輸包括任何一種網(wǎng)絡(luò)傳輸層;再就是I/O端口一般的物理或邏輯設(shè)備的控制端口都可以連接到任何的I/O端口上,而且I/O端口可以支持包括從模擬和數(shù)字的GPIO、定位裝置、串行端口到用戶自定義(邏輯)端口等;事實(shí)上,任何邏輯或物理設(shè)備都可以連接到可用的I/O端口。
BITXML體系結(jié)構(gòu)是由以上五個(gè)部分組成的,首先可由BITXML控制器同過網(wǎng)絡(luò)傳輸將BITXML事件傳送給BITXML網(wǎng)關(guān)應(yīng)用程序,再由網(wǎng)關(guān)應(yīng)用程序發(fā)送至輸入輸出端口,最終將事件指令傳送給外部設(shè)備執(zhí)行。同時(shí),BITXML網(wǎng)關(guān)應(yīng)用程序再把回復(fù)送回控制器。
2 BITXML網(wǎng)關(guān)應(yīng)用程序的處理過程
BITXML網(wǎng)關(guān)應(yīng)用程序的參考模型標(biāo)準(zhǔn)如圖2所示。BITXML網(wǎng)關(guān)應(yīng)用程序一般由網(wǎng)絡(luò)層(圖2右側(cè))和設(shè)備/端口驅(qū)動(dòng)包圍,其中網(wǎng)關(guān)可分成同步處理和異步處理兩個(gè)主要的邏輯部分。
2.1異步處理
異步處理涉及幾個(gè)執(zhí)行單元,每一個(gè)單元完成一個(gè)系統(tǒng)內(nèi)定義函數(shù)。異步處理單元包括狀態(tài)監(jiān)控器、歷史監(jiān)控器、重新配置監(jiān)控器。
狀態(tài)監(jiān)控器:系統(tǒng)上已經(jīng)預(yù)先安裝了一些狀態(tài),等待相匹配的狀態(tài)觸發(fā),一旦發(fā)現(xiàn)有可匹配的狀態(tài),就會(huì)生成事件,并將此事件發(fā)送給大主控單元。
歷史監(jiān)控器:系統(tǒng)上安裝了一系列由監(jiān)控器執(zhí)行的端口狀態(tài)的請(qǐng)求,任何狀態(tài)的答復(fù)都將存儲(chǔ)在本地非易失性的固定大小的FIFO區(qū)。歷史記錄會(huì)用一種可編程的方式發(fā)送到主單元。
重新配置監(jiān)控器:系統(tǒng)安裝的日程安排表,可使得監(jiān)控器定期檢查是否有重新配置的需要。
2.2同步處理
BITXML網(wǎng)關(guān)應(yīng)用程序從網(wǎng)絡(luò)傳輸層接收BITXML指令,并返回此指令執(zhí)行結(jié)果,同時(shí)產(chǎn)生一個(gè)端口指令。同步處理各單元的功能如下:
BITXML服務(wù)器:網(wǎng)絡(luò)客戶端與控制單元相連,以接收BITXML命令,并由命令解釋器執(zhí)行,然后返回相應(yīng)的結(jié)果。
BITXMLDNS:這是一個(gè)自定義協(xié)議的客戶端,連接網(wǎng)關(guān)可以使網(wǎng)關(guān)動(dòng)態(tài)分配網(wǎng)絡(luò)地址(如GPRS或Wi-Fi網(wǎng)絡(luò)設(shè)備)。DNS負(fù)責(zé)連接到控制器,用來注冊(cè)網(wǎng)關(guān),并在操作超時(shí)時(shí)使網(wǎng)絡(luò)保持連接。
網(wǎng)關(guān)應(yīng)用程序有同步處理過程和異步處理過程兩個(gè)邏輯部分:在同步處理過程中,BITXML服務(wù)器負(fù)責(zé)處理由網(wǎng)絡(luò)傳輸層發(fā)來的BITXML命令并回復(fù)上級(jí)命令,再將處理后的命令傳送給BITXML協(xié)議命令分析器進(jìn)行分析處理;在異步處理過程中,BITXML協(xié)議命令分析器會(huì)與歷史監(jiān)控器和狀態(tài)監(jiān)控器不斷收發(fā)指令,同時(shí),將事件通過網(wǎng)絡(luò)傳輸層最終傳送回上級(jí)BITXML控制器。
2.3網(wǎng)關(guān)應(yīng)用程序狀態(tài)
網(wǎng)關(guān)應(yīng)用程序的狀態(tài)可以配置為連接、斷開和自定義三種。處于連接狀態(tài)的網(wǎng)關(guān)應(yīng)用程序必須運(yùn)行該協(xié)議的服務(wù)器和DNS客戶端,同時(shí)可運(yùn)行狀態(tài)和歷史監(jiān)控器;斷開狀態(tài)網(wǎng)關(guān)的應(yīng)用程序不能運(yùn)行協(xié)議服務(wù)器和DNS客戶端,必須運(yùn)行至少一個(gè)歷史或狀態(tài)監(jiān)控器;自定義應(yīng)用程序在遵從由協(xié)議定義的消息流下,可使用任何配置;而重新配置監(jiān)控器可以運(yùn)行任何類型的網(wǎng)關(guān)應(yīng)用程序。
3 BITXML數(shù)據(jù)流
標(biāo)準(zhǔn)網(wǎng)關(guān)應(yīng)用的主要預(yù)定義的信息流的六種情景:網(wǎng)關(guān)初始化、初始化錯(cuò)誤、狀態(tài)監(jiān)測(cè)數(shù)據(jù)流、歷史監(jiān)控?cái)?shù)據(jù)流、命令服務(wù)器、重新配置檢查數(shù)據(jù)流。激活一個(gè)網(wǎng)關(guān)應(yīng)用程序需要激活一系列的參考模型中所描述的子進(jìn)程,這意味著,與網(wǎng)關(guān)相連的各個(gè)異步事件發(fā)生器都需要進(jìn)行初始化(如狀態(tài)監(jiān)測(cè)、歷史監(jiān)測(cè)、重構(gòu)檢查)。BITXML數(shù)據(jù)流包括以下幾種:
(1)初始化錯(cuò)誤數(shù)據(jù)流。很多原因都可能會(huì)導(dǎo)致初始化錯(cuò)誤,例如網(wǎng)關(guān)內(nèi)部故障,不正確的初始化等。初始化出錯(cuò)只需重新啟動(dòng)初始化序列就可以了。
(2)狀態(tài)監(jiān)測(cè)數(shù)據(jù)流。狀態(tài)監(jiān)測(cè)是網(wǎng)關(guān)應(yīng)用程序內(nèi)部的一個(gè)子進(jìn)程,用于定期檢查配置的狀態(tài),并當(dāng)一個(gè)或多個(gè)狀態(tài)值為true時(shí),將事件發(fā)送給主控器。
(3)歷史監(jiān)測(cè)數(shù)據(jù)流。歷史監(jiān)測(cè)器也是網(wǎng)關(guān)應(yīng)用程序內(nèi)部的一個(gè)子進(jìn)程,用于定期生成狀態(tài)值,并在FIFO持久緩沖區(qū)收集這些狀態(tài),然后發(fā)送歷史事件(狀態(tài)值序列)。
(4)命令服務(wù)數(shù)據(jù)流。命令服務(wù)器是一個(gè)連接網(wǎng)關(guān)應(yīng)用程序的子進(jìn)程。這里的連接具有雙重含義:首先,從應(yīng)用的角度來看,連接意味著在任何時(shí)間,命令都有可能被發(fā)送到網(wǎng)關(guān),從而需要在控制設(shè)備中瞬間激活或檢索數(shù)據(jù);其次,從網(wǎng)絡(luò)傳輸來看,一個(gè)連接意味著網(wǎng)關(guān)和控制器(或它的邏輯部分在這個(gè)文件命名的橋)之間保持連接,以便支持先前應(yīng)用程序。
(5)重新配置檢查數(shù)據(jù)流。重新配置檢查器是一個(gè)網(wǎng)關(guān)應(yīng)用程序外部的子進(jìn)程,用于定期發(fā)送REINIT系統(tǒng)事件。
4結(jié)語
物聯(lián)網(wǎng)標(biāo)準(zhǔn)的關(guān)鍵是基于軟件和中間件的數(shù)據(jù)交換和處理標(biāo)準(zhǔn)?!耙涣髌髽I(yè)做標(biāo)準(zhǔn)”,這是“地球人都知道”的物聯(lián)網(wǎng)產(chǎn)業(yè)界的共識(shí),也是很多企業(yè)乃至一個(gè)國家戰(zhàn)略層面想達(dá)到的制高點(diǎn)。BITXML只是物聯(lián)網(wǎng)應(yīng)用層的各種標(biāo)準(zhǔn)之一,對(duì)于我國物聯(lián)網(wǎng)標(biāo)準(zhǔn)的制定有著積極的參考意義。
20210908_61383c08a834e__物聯(lián)網(wǎng)開源數(shù)據(jù)交換標(biāo)準(zhǔn)BITXML研究