基于RFID的EPC中間件的設(shè)計(jì)
摘要:本文簡述了物聯(lián)網(wǎng)EPC技術(shù)并分析了Savant中間件軟件系統(tǒng)的主要功能和框架結(jié)構(gòu)。在深入研究EPCgloabal后,借鑒EPCgloabl的中間件標(biāo)準(zhǔn)ALE,給出了一種Savant中間件軟件系統(tǒng)的設(shè)計(jì)思路,并從邏輯上驗(yàn)證了該系統(tǒng)的完整性與有效性。
關(guān)鍵詞:Savant中間件;RFID;物聯(lián)網(wǎng);電子產(chǎn)品代碼
0 前言
物聯(lián)網(wǎng)的出現(xiàn)打破了傳統(tǒng)的關(guān)于物品信息的存儲與查詢的思維,通過將物理基礎(chǔ)設(shè)施和IT基礎(chǔ)設(shè)施統(tǒng)一化,建立起一個本身具有通信能力的交互信息網(wǎng)絡(luò),這個網(wǎng)絡(luò)不僅涵蓋生產(chǎn)運(yùn)行、經(jīng)濟(jì)管理,甚至滲透到人們個人生活的各個方面。
在應(yīng)用物聯(lián)網(wǎng)RFID技術(shù)時,首先面對的問題就是電子標(biāo)簽上數(shù)據(jù)的獲取和有效信息的提取。作為RFID系統(tǒng)的重要組成部分,EPC中間件是數(shù)據(jù)采集、過濾等處理的主要單元。本文提出了一種中間件的設(shè)計(jì)思路,使上層開發(fā)者在開發(fā)RFID應(yīng)用系統(tǒng)時無需再考慮如何與各種硬件設(shè)備交互而直接獲取有價值的RFID信息。
1 EPC系統(tǒng)簡介
EPC的全稱是Electronic Product Code,即產(chǎn)品電子代碼,是美國麻省理工學(xué)院自動識別中心(Auto-ID中心)提出的。EPC的載體是RFID電子標(biāo)簽,并借助互聯(lián)網(wǎng)來實(shí)現(xiàn)信息傳遞。EPC系統(tǒng)為每一件商品建立全球唯一的識別標(biāo)準(zhǔn),實(shí)現(xiàn)在全球范圍內(nèi)對商品具體信息的記錄與查詢,有效提高商品信息的管理水平,以及物流準(zhǔn)確性,并且降低物流成本。
EPC系統(tǒng)的信息網(wǎng)絡(luò)系統(tǒng)是在全球互聯(lián)網(wǎng)的基礎(chǔ)上,通過Savant管理軟件系統(tǒng)、ONS對象名稱解析服務(wù)系統(tǒng)、實(shí)體標(biāo)記語言(PML)實(shí)現(xiàn)實(shí)物的互聯(lián)。
Savant中間件的系統(tǒng)協(xié)議主要由RFID通信協(xié)議、應(yīng)用事件管理(ALE,Application Level Event)協(xié)議等組成。ALE是EPCgobal的中間件標(biāo)準(zhǔn),是閱讀器模塊和客戶應(yīng)用程序之間的接口協(xié)議。該協(xié)議定義了客戶可以如何過濾和整合來自讀寫器的EPC標(biāo)簽,并面向不同的企業(yè)應(yīng)用程序和閱讀器定義了統(tǒng)一的接口。ALE的處理過程是:接收來自一個或多個數(shù)據(jù)源的EPC標(biāo)簽碼:根據(jù)企業(yè)應(yīng)用程序要求以一定的時間間隔整合數(shù)據(jù),過濾重復(fù)和不感興趣的EPC碼;根據(jù)企業(yè)應(yīng)用程序要求以不同的形式打包發(fā)送報告。
2 Savant中間件的功能與結(jié)構(gòu)
在功能上,Savant軟件系統(tǒng)利用ONS對象名稱解析服務(wù)并調(diào)用PML服務(wù)器上的標(biāo)簽應(yīng)用信息供Savant上層應(yīng)用軟件使用,所以Savant軟件系統(tǒng)在結(jié)構(gòu)上有一些用于ONS對象名稱解析服務(wù)的專用接口。
處理模塊與外部EPC系統(tǒng)的聯(lián)系通過規(guī)范定義的接口,即閱讀器接口和應(yīng)用軟件接口來實(shí)現(xiàn)。閱讀器接口提供與標(biāo)簽閱讀器的連接,Sav-ant通過該接口和閱讀器建立連接,向閱讀器發(fā)送各種命令。
按照SavantSpecification 1.0標(biāo)準(zhǔn)的描述,Savant軟件系統(tǒng)就是處理模塊與各接口模塊的集成容器,其各個接口模塊均有一定的標(biāo)準(zhǔn),而能用于用戶開發(fā)的是Savant軟件系統(tǒng)的處理部分。根據(jù)功能的需要,能夠得到Savant中間件軟件的大體結(jié)構(gòu):
圖1模型的基本功能在于其中處理模塊通過輸入接口模塊與輸出接口模塊與閱讀器和上層應(yīng)用軟件進(jìn)行聯(lián)系。Savantqp間件系統(tǒng)是一個開放式系統(tǒng),其用戶定義的處理模塊是功能實(shí)現(xiàn)的主要體現(xiàn)部分,提供各種用戶要求的功能。在輸入端,Savant中間件系統(tǒng)主要工作是對閱讀器所采集到的電子標(biāo)簽信息進(jìn)行收集和處理,或者根據(jù)自身內(nèi)部設(shè)定的命令對閱讀器輸出反饋指令;在輸出端,其面對的是上層應(yīng)用軟件的調(diào)用,或者是通過ONS對象名解析服務(wù)對PML服務(wù)器上的相應(yīng)商品信息進(jìn)行讀取。
由上可知,Savant中間件起的是連接閱讀器系統(tǒng)與上層應(yīng)用或者信息存儲系統(tǒng)作用,因此對其設(shè)計(jì)主要在于完成信息的處理、過濾、暫存與計(jì)算。
3 Savant中間件系統(tǒng)的實(shí)現(xiàn)
本文實(shí)現(xiàn)Savant中間體軟件系統(tǒng)的主要功能:a.過濾;b.定量信息存儲:c.解析;d.接口控制。
3.1 過濾功能
根據(jù)第2節(jié)中所述的基本模型,并考慮到整個系統(tǒng)的工作效率,過濾程序應(yīng)該是系統(tǒng)中最先工作的模塊。
一個Savant軟件系統(tǒng)是服務(wù)于特定廠商或者是針對特定類型商品的軟件,所以參考TCP/IP協(xié)定中局域網(wǎng)IP地址子網(wǎng)掩碼過濾處理,只需要通過一段掩碼,將該系統(tǒng)所服務(wù)的廠商或者所針對的特定類型商品過濾出來。將特定廠商或商品掩碼與原始EPC標(biāo)簽代碼信息通過一定的邏輯運(yùn)算結(jié)合起來,即可以達(dá)到過濾信息的作用。如圖2所示。
3.2 解析功能
為了方便讀取PML服務(wù)器上的標(biāo)簽信息,需將EPC代碼解析成ONS服務(wù)可識別的地址域名格式。根據(jù)該解析過程的規(guī)范化的要求,利用格式化轉(zhuǎn)換字符串將EPC二進(jìn)制代碼轉(zhuǎn)換成對應(yīng)的PML文件地址。
類似于普通的Internet域名地址,存儲于PML服務(wù)器上的商品信息域名地址也有著標(biāo)準(zhǔn)的域名結(jié)構(gòu)。EPC地址域名由EPC域前綴名與EPC域后綴名組成。而且當(dāng)前使用的EPC域后綴名為一個固定的根域名:epc.objid.net。這個翻譯的過程需要引入標(biāo)準(zhǔn)的域名格式,即格式化字符串。
舉例說明如下:
格式化字符串由1、2、3、4組成,分別表示該位所占EPC編碼中的位數(shù)
例如對于16位的EPC碼,其格式化字符串可以是
1.44.3.11.2(0+1+4+4+3+1+1+2=16)
即如果這個16位的EPC碼是:1001111010110010,放入格式化字符串的形式下成為了:
(1)(0011)(1101).(011).(0)(0).(10)=1.3D.3.00.2即成為EPC域前綴名。
即該1 6位E P C代碼的P M L域名地址為1.3D.3.00.2.epc.objid.net。
有了格式化字符串的標(biāo)準(zhǔn)轉(zhuǎn)換功能,EPC電子標(biāo)簽代碼可唯一且一一對應(yīng)地轉(zhuǎn)化成PML域名地址。
3.3 存儲與查詢功能
由于不同的廠商或商品在種類、數(shù)量、需求量以及關(guān)注程度上都有所不同,如果每次檢測標(biāo)簽時均向PML服務(wù)器提取信息,不僅會由于PML服務(wù)器的數(shù)據(jù)過大而降低提取效率,同時在傳輸過程中也容易有所延遲與損耗。因此Savant中間件軟件系統(tǒng)需存儲一定量的簡單信息伴隨EPC的具體信息,以便上層應(yīng)用軟件的讀取,提升數(shù)據(jù)讀取效率。
本文選擇FIFO(先進(jìn)先出)的存儲方式進(jìn)行有限存儲空間的利用。
對于FIFO的實(shí)現(xiàn),基本上是做結(jié)構(gòu)體的向前移位操作,將在結(jié)構(gòu)體數(shù)組中位置為i的結(jié)構(gòu)體的內(nèi)部數(shù)據(jù)完整地賦值給位置為i-1的結(jié)構(gòu)體。對于最后位置的結(jié)構(gòu)體,團(tuán)PM-1位置,則是最新的賦值,而對于原始的第一個結(jié)構(gòu)體,即0位置,會被覆蓋。這個過程并不是一直無限進(jìn)行下去,會有一個接口控制變量來決定是否進(jìn)行移位。
3.4 接口控制功能
在Savant中間件軟件系統(tǒng)中,需要加入接口模塊與外部情況加以聯(lián)系。如圖3所示。
該接口模塊不僅接收諸如PML服務(wù)器所傳輸?shù)暮烷喿x器所傳輸?shù)男盘枺瑫r為上層應(yīng)用軟件提供讀取信息的標(biāo)志字,并且對Savant軟件系統(tǒng)的內(nèi)部模塊進(jìn)行控制。
在Savant中間件軟件系統(tǒng)的內(nèi)部模塊之間也存在著相互控制的情況,需確定對外部情況進(jìn)行聯(lián)系的外部控制字以及關(guān)系到信息在系統(tǒng)內(nèi)部傳輸?shù)膬?nèi)部控制字。
3.5 帶接口控制的整體Savant中間件軟件系統(tǒng)結(jié)構(gòu)
加入有效的控制字后,Savant中間件軟件系統(tǒng)的功能變得完整,可以完成所需的過濾、解析、暫存等功能。依照前文所述的系統(tǒng)結(jié)構(gòu)以及內(nèi)部功能模塊,本文畫出了Savant中間件軟件系統(tǒng)所集成的文正邏輯系統(tǒng)。如圖4所示。
圖4(a)邏輯程序塊的主要任務(wù)集成了過濾功能與解析功能,當(dāng)完成過濾后,確定該電子標(biāo)簽代碼有效,即可進(jìn)行解析操作,不需要在過濾與解析功能之間添加其他控制變量或控制信息。在完成圖4(a)模塊后,需要向PML服務(wù)器輸出解析后的PML域名地址信息,并等待PML服務(wù)器返回該電子標(biāo)簽相應(yīng)商品的具體信息,即進(jìn)入圖4(b)程序模塊所代表的存儲環(huán)節(jié)。由于本文采用的FIFO存儲模式,需要在新的商品信息存儲之前,調(diào)整存儲空間中已有信息的位置,所以當(dāng)圖4(b)程序模塊結(jié)束后,具體信息首先暫存在Savant中間件軟件系統(tǒng)的另外開辟的存儲緩沖區(qū),并應(yīng)當(dāng)加入存儲控制字,當(dāng)該控制字有效后,存儲空間進(jìn)行FIFO調(diào)整,然后從另外開辟的存儲緩沖區(qū)中取出待存儲的信息存放至FIFO存儲空間的最后位。以上即是Savant中間件軟件系統(tǒng)的邏輯控制,三部分的邏輯控制流程圖如圖5所示。
4 結(jié)語
完成了Savant中間件軟件系統(tǒng)的邏輯設(shè)計(jì)與編程設(shè)計(jì)之后,在軟件平臺上利用testbench文件對這些模塊進(jìn)行驗(yàn)證檢驗(yàn)。檢驗(yàn)結(jié)果表明所設(shè)計(jì)的savant中間件軟件系統(tǒng)能對EPC電子標(biāo)簽數(shù)據(jù)進(jìn)行有效地處理。