以前,在中國RFID的應用中,從前端數據的采集,到與后端業務系統的連接,大多是采用定制軟件開發方式。一旦前端標簽種類增加,或是后端業務系統有任何變化,都需要重新編寫程序,開發效率極低且維護成本高。在這種背景下,中間件的概念應運而生。
EPC系統簡介
EPC的全稱是Electronic Product Code,即產品電子代碼,是美國麻省理工學院自動識別中心(Auto-ID中心)提出的。EPC的載體是RFID電子標簽,并借助互聯網來實現信息傳遞。EPC系統為每一件商品建立全球唯一的識別標準,實現在全球范圍內對商品具體信息的記錄與查詢,有效提高商品信息的管理水平,以及物流準確性,并且降低物流成本。
EPC系統的信息網絡系統是在全球互聯網的基礎上,通過Savant管理軟件系統、ONS對象名稱解析服務系統、實體標記語言(PML)實現實物的互聯。
Savant中間件的系統協議主要由RFID通信協議、應用事件管理(ALE,Application Level Event)協議等組成。ALE是EPCgobal的中間件標準,是閱讀器模塊和客戶應用程序之間的接口協議。該協議定義了客戶可以如何過濾和整合來自讀寫器的EPC標簽,并面向不同的企業應用程序和閱讀器定義了統一的接口。ALE的處理過程是:接收來自一個或多個數據源的EPC標簽碼:根據企業應用程序要求以一定的時間間隔整合數據,過濾重復和不感興趣的EPC碼;根據企業應用程序要求以不同的形式打包發送報告。。
什么是RFID中間件?
RFID中間件是一種面向消息的中間件。信息是以消息的形式,從一個程序傳送到另一個或多個程序。信息可以以異步的方式傳送,故不必等待回應。面向消息的中間件包含的功能不僅是傳遞信息,還必須包括解譯數據、安全性、數據廣播、錯誤恢復、定位網絡資源、找出符合成本的路徑、消息與要求的優先次序以及延伸的除錯工具等服務。
RFID中間件技術包括:并發訪問技術、目錄服務及定位技術、數據及設備監控技術、遠程數據訪問、安全和集成技術、進程及會話管理技術等。RFID中間件屏蔽了RFID設備的多樣性和復雜性,能夠為后臺業務系統提供強大的支撐。
Savant中間件的功能與結構
在功能上,Savant軟件系統利用ONS對象名稱解析服務并調用PML服務器上的標簽應用信息供Savant上層應用軟件使用,所以Savant軟件系統在結構上有一些用于ONS對象名稱解析服務的專用接口。
處理模塊與外部EPC系統的聯系通過規范定義的接口,即閱讀器接口和應用軟件接口來實現。閱讀器接口提供與標簽閱讀器的連接,Sav-ant通過該接口和閱讀器建立連接,向閱讀器發送各種命令。
按照SavantSpecification 1.0標準的描述,Savant軟件系統就是處理模塊與各接口模塊的集成容器,其各個接口模塊均有一定的標準,而能用于用戶開發的是Savant軟件系統的處理部分。根據功能的需要,能夠得到Savant中間件軟件的大體結構:
圖1模型的基本功能在于其中處理模塊通過輸入接口模塊與輸出接口模塊與閱讀器和上層應用軟件進行聯系。Savantqp間件系統是一個開放式系統,其用戶定義的處理模塊是功能實現的主要體現部分,提供各種用戶要求的功能。在輸入端,Savant中間件系統主要工作是對閱讀器所采集到的電子標簽信息進行收集和處理,或者根據自身內部設定的命令對閱讀器輸出反饋指令;在輸出端,其面對的是上層應用軟件的調用,或者是通過ONS對象名解析服務對PML服務器上的相應商品信息進行讀取。
由上可知,Savant中間件起的是連接閱讀器系統與上層應用或者信息存儲系統作用,因此對其設計主要在于完成信息的處理、過濾、暫存與計算。
Savant中間件系統的實現
本文實現Savant中間體軟件系統的主要功能:a.過濾;b.定量信息存儲:c.解析;d.接口控制。
過濾功能
根據第2節中所述的基本模型,并考慮到整個系統的工作效率,過濾程序應該是系統中最先工作的模塊。
一個Savant軟件系統是服務于特定廠商或者是針對特定類型商品的軟件,所以參考TCP/IP協定中局域網IP地址子網掩碼過濾處理,只需要通過一段掩碼,將該系統所服務的廠商或者所針對的特定類型商品過濾出來。將特定廠商或商品掩碼與原始EPC標簽代碼信息通過一定的邏輯運算結合起來,即可以達到過濾信息的作用。如圖2所示。
解析功能
為了方便讀取PML服務器上的標簽信息,需將EPC代碼解析成ONS服務可識別的地址域名格式。根據該解析過程的規范化的要求,利用格式化轉換字符串將EPC二進制代碼轉換成對應的PML文件地址。
類似于普通的Internet域名地址,存儲于PML服務器上的商品信息域名地址也有著標準的域名結構。EPC地址域名由EPC域前綴名與EPC域后綴名組成。而且當前使用的EPC域后綴名為一個固定的根域名:epc.objid.net。這個翻譯的過程需要引入標準的域名格式,即格式化字符串。
舉例說明如下:
格式化字符串由1、2、3、4組成,分別表示該位所占EPC編碼中的位數
例如對于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。
有了格式化字符串的標準轉換功能,EPC電子標簽代碼可唯一且一一對應地轉化成PML域名地址。
存儲與查詢功能
由于不同的廠商或商品在種類、數量、需求量以及關注程度上都有所不同,如果每次檢測標簽時均向PML服務器提取信息,不僅會由于PML服務器的數據過大而降低提取效率,同時在傳輸過程中也容易有所延遲與損耗。因此Savant中間件軟件系統需存儲一定量的簡單信息伴隨EPC的具體信息,以便上層應用軟件的讀取,提升數據讀取效率。
本文選擇FIFO(先進先出)的存儲方式進行有限存儲空間的利用。
對于FIFO的實現,基本上是做結構體的向前移位操作,將在結構體數組中位置為i的結構體的內部數據完整地賦值給位置為i-1的結構體。對于最后位置的結構體,團PM-1位置,則是最新的賦值,而對于原始的第一個結構體,即0位置,會被覆蓋。這個過程并不是一直無限進行下去,會有一個接口控制變量來決定是否進行移位。
接口控制功能
在Savant中間件軟件系統中,需要加入接口模塊與外部情況加以聯系。如圖所示。
該接口模塊不僅接收諸如PML服務器所傳輸的和閱讀器所傳輸的信號,同時為上層應用軟件提供讀取信息的標志字,并且對Savant軟件系統的內部模塊進行控制。
在Savant中間件軟件系統的內部模塊之間也存在著相互控制的情況,需確定對外部情況進行聯系的外部控制字以及關系到信息在系統內部傳輸的內部控制字。
帶接口控制的整體Savant中間件軟件系統結構
加入有效的控制字后,Savant中間件軟件系統的功能變得完整,可以完成所需的過濾、解析、暫存等功能。依照前文所述的系統結構以及內部功能模塊,本文畫出了Savant中間件軟件系統所集成的文正邏輯系統。如圖4所示。
圖4(a)邏輯程序塊的主要任務集成了過濾功能與解析功能,當完成過濾后,確定該電子標簽代碼有效,即可進行解析操作,不需要在過濾與解析功能之間添加其他控制變量或控制信息。在完成圖4(a)模塊后,需要向PML服務器輸出解析后的PML域名地址信息,并等待PML服務器返回該電子標簽相應商品的具體信息,即進入圖4(b)程序模塊所代表的存儲環節。由于本文采用的FIFO存儲模式,需要在新的商品信息存儲之前,調整存儲空間中已有信息的位置,所以當圖4(b)程序模塊結束后,具體信息首先暫存在Savant中間件軟件系統的另外開辟的存儲緩沖區,并應當加入存儲控制字,當該控制字有效后,存儲空間進行FIFO調整,然后從另外開辟的存儲緩沖區中取出待存儲的信息存放至FIFO存儲空間的最后位。以上即是Savant中間件軟件系統的邏輯控制,三部分的邏輯控制流程圖如圖5所示。
完成了Savant中間件軟件系統的邏輯設計與編程設計之后,在軟件平臺上利用testbench文件對這些模塊進行驗證檢驗。檢驗結果表明所設計的savant中間件軟件系統能對EPC電子標簽數據進行有效地處理。
評論