基于低級別讀寫器協(xié)議的無線射頻識別中間件系統(tǒng)
無線射頻識別(RFID)是一種通過無線射頻方式進行非接觸雙向數(shù)據(jù)通信對目標(biāo)加以識別的技術(shù),具有快速、準(zhǔn)確、可靠的特點。與傳統(tǒng)的識別方式相比,RFID技術(shù)無需直接接觸、無需光學(xué)可視、無需人工干預(yù)即可完成信息的輸入和處理,操作十分方便快捷,因而能夠廣泛應(yīng)用于生產(chǎn)、物流、交通、運輸、醫(yī)療、防偽、跟蹤、設(shè)備和資產(chǎn)管理等需要收集和處理數(shù)據(jù)的應(yīng)用領(lǐng)域。自從RFID問世以來,其技術(shù)和產(chǎn)業(yè)都得到了迅速的發(fā)展,并已開始在工業(yè)自動化、商業(yè)自動化、交通運輸控制管理等眾多領(lǐng)域得到應(yīng)用,成為IT產(chǎn)業(yè)一個新的經(jīng)濟增長點,具有十分廣闊的市場發(fā)展前景。從RFID 的技術(shù)與應(yīng)用的發(fā)展趨勢來看,RFID 應(yīng)用具有標(biāo)識、定位與事件驅(qū)動等特點。通過標(biāo)識與定位,使人類在虛擬的網(wǎng)絡(luò)世界中識別、鎖定和控制被標(biāo)記物體成為一種可能。通過RFID實時產(chǎn)生的事件,可以驅(qū)動業(yè)務(wù)流程,實現(xiàn)業(yè)務(wù)流程的智能化與自動化。
RFID中間件扮演RFID標(biāo)簽和應(yīng)用程序之間的中介角色,應(yīng)用程序端使用中間件所提供的一組通用應(yīng)用程序接口(API),可以連接到RFID讀寫器,讀取RFID標(biāo)簽數(shù)據(jù)。這樣一來,即使存儲RFID標(biāo)簽信息的數(shù)據(jù)庫軟件或后端發(fā)生變化,如應(yīng)用程序增加、替換或者RFID讀寫器數(shù)量、種類變化等情況發(fā)生時,應(yīng)用端不需修改也能處理,避免多對多連接的維護復(fù)雜性。
1 RFID網(wǎng)絡(luò)框架及中間件系統(tǒng)功能
在全球產(chǎn)品電子代碼管理中心(EPCglobal)定義的RFID網(wǎng)絡(luò)框架中,包含了RFID標(biāo)簽、RFID讀寫器、RFID中間件、RFID讀寫器管理、電子產(chǎn)品碼信息服務(wù)(EPCIS)捕獲應(yīng)用、EPCIS存儲、EPCIS訪問應(yīng)用、本地對象命名服務(wù)(ONS)等角色以及ONS根節(jié)點、EPC發(fā)放、標(biāo)簽信息轉(zhuǎn)換模型、標(biāo)簽信息發(fā)現(xiàn)等公共服務(wù)[1-3].
如圖1所示,RFID中間件系統(tǒng)位于EPCIS捕獲應(yīng)用(例如企業(yè)資源計劃(EPR)系統(tǒng)等)和RFID讀寫器之間,根據(jù)EPCIS捕獲應(yīng)用設(shè)置的規(guī)則將從讀寫器獲取的標(biāo)簽信息進行過濾和聚集,并按照其指定的格式和方式上報。
RFID中間件3個主要的功能:
?。?)屏蔽讀寫器的接口差異:傳統(tǒng)的讀寫器廠商都通過提供一套驅(qū)動程序來實現(xiàn)應(yīng)用層軟件對設(shè)備的控制,這些驅(qū)動程序提供了相同的設(shè)備訪問功能,但各廠商之間卻擁有互不相容的控制模塊、命令參數(shù)甚至是支持不同空口協(xié)議。而且當(dāng)廠商的驅(qū)動程序更新時,相對上層的應(yīng)用軟件也不得不隨著相應(yīng)API的改變而改變,尤其是當(dāng)使用者同時使用了大量不同廠商的設(shè)備時,整體的維護成本也隨之增加。RFID中間件屏蔽了讀寫器接口和驅(qū)動的細節(jié),向應(yīng)用系統(tǒng)提供了標(biāo)準(zhǔn)的ALE報告接口,使應(yīng)用系統(tǒng)不必關(guān)心各個物理設(shè)備的具體接口和驅(qū)動,而是集中精力關(guān)注應(yīng)用業(yè)務(wù)邏輯的實現(xiàn)。
{$page$}
?。?)標(biāo)簽的過濾:在RFID網(wǎng)絡(luò)中,存在大量的讀寫器和標(biāo)簽。對于一個特定的應(yīng)用系統(tǒng),它只會關(guān)注與其業(yè)務(wù)相關(guān)的讀寫器清點的標(biāo)簽。RFID中間件可以根據(jù)應(yīng)用系統(tǒng)設(shè)置的ALE規(guī)則,過濾掉應(yīng)用系統(tǒng)不關(guān)注的標(biāo)簽信息,大大減輕應(yīng)用系統(tǒng)對標(biāo)簽信息的處理量,提高應(yīng)用系統(tǒng)的處理效率。
?。?)標(biāo)簽的聚集:提到標(biāo)簽的聚集,首先要說明邏輯讀寫器的概念。邏輯讀寫器可以包含一個或多個物理讀寫器,或者一個或者多個物理讀寫器的天線。應(yīng)用系統(tǒng)可以通過定義邏輯讀寫器,使RFID中間件按其需要的方式,對RFID標(biāo)簽進行聚集和分組。例如某個門禁系統(tǒng),在大門入口包含兩個物理閱讀器的天線,應(yīng)用系統(tǒng)可以將這兩個天線定義為一個名叫“大門入口”的邏輯讀寫器。RFID中間件在上報標(biāo)簽信息的時候,可以將兩個天線清點的標(biāo)簽聚集在“大門入口”邏輯閱讀器的分組中,方便應(yīng)用系統(tǒng)對標(biāo)簽信息進行處理。
2 LLRP協(xié)議與ALE協(xié)議
在EPCglobal標(biāo)準(zhǔn)體系中,與中間件最相關(guān)的兩個協(xié)議是LLRP與ALE協(xié)議,LLRP之所以被稱為低級別,是由于其提供了對空口操作和空口協(xié)議命令參數(shù)的控制能力,提供更底層讀寫器操作的訪問能力。ALE是EPCglobal定義的RFID應(yīng)用系統(tǒng)和RFID中間件之間的接口規(guī)范,通過ALE接口,從應(yīng)用程序端使用中間件有了一組API,通常RFID中間件接口定義了一個相對穩(wěn)定的高層應(yīng)用環(huán)境,不管底層的計算機硬件和系統(tǒng)軟件怎樣更新?lián)Q代,只要將中間件升級更新,并保持中間件RFID采集系統(tǒng)的接口定義不變,應(yīng)用軟件幾乎不需任何修改,從而保護企業(yè)在應(yīng)用軟件開發(fā)和維護中的重大投資。同時,使用RFID中間件有助于減輕企業(yè)二次開發(fā)時的負擔(dān),使他們升級現(xiàn)有軟件系統(tǒng)時顯得得心應(yīng)手,同時能保證軟件系統(tǒng)的相對穩(wěn)定,及對軟件系統(tǒng)的功能擴展等,簡化了開發(fā)的復(fù)雜性等。
LLRP是EPCglobal公布的第二代讀寫器協(xié)議,定義了RFID讀寫器和客戶端之間的接口。與上一代讀寫器協(xié)議相比,LLRP更接近讀寫器運行時所需的空口協(xié)議的細節(jié),或者更明確的說是對EPCglobal Class1 Gen2協(xié)議中讀寫器參數(shù)和控制參數(shù)的支持。LLRP除了目前對EPCglobal C1G2的支持外,其架構(gòu)也提供相應(yīng)的擴展能力,可以方便的支持未來其他空口協(xié)議。
從LLRP接口的具體職責(zé)上來看,主要包括如下職責(zé):
(1)提供方法,用來操作RFID讀寫器進行清點、讀、寫等動作,以及執(zhí)行其它相關(guān)協(xié)議中的命令,如殺、鎖等
?。?)提供方法,在對標(biāo)簽進行操作時,獲得健壯性報告和進行錯誤處理
?。?)提供方法,用來在操作命令需要時傳輸標(biāo)簽密碼
?。?)提供方法,用來控制前向反向的無線射頻(RF)鏈路操作,包括管理RF功率和反向靈敏度,在多讀寫器環(huán)境中評估沖突
?。?)提供方法,用來控制標(biāo)簽協(xié)議操作,包括協(xié)議參數(shù)和防碰撞算法的參數(shù)
?。?)提供方法,使之更易于支持新的空口協(xié)議
?。?) 提供方法,用來恢復(fù)讀寫器出廠設(shè)置
?。?)提供方法,用于讀寫器生產(chǎn)廠商在一定范圍內(nèi)擴展協(xié)議
{$page$}
ALE是EPCglobal定義的RFID應(yīng)用系統(tǒng)和RFID中間件間的接口規(guī)范,包含標(biāo)簽內(nèi)存區(qū)管理API、ALE讀API、ALE寫API、ALE邏輯讀寫器API和訪問控制API共5組接口及業(yè)務(wù)功能。
?。?)標(biāo)簽內(nèi)存區(qū)管理API:包括defineTMSpec,undefineTMSpec,getTMSpec,getTMSpecNames等API,給應(yīng)用系統(tǒng)提供了定義邏輯上的標(biāo)簽內(nèi)存區(qū)的能力,使其可以定義其關(guān)心的RFID標(biāo)簽區(qū)域。
?。?)ALE讀API:包括define,undefine,getECSpec,getECSpecNames,subscribe,unsubscribe,poll,immediate,getSubscribers等API,給應(yīng)用系統(tǒng)提供了定義讀標(biāo)簽事件規(guī)則,訂閱事件報告的能力,使其可根據(jù)自身業(yè)務(wù)邏輯需要,定義相應(yīng)的事件規(guī)則,獲取包含標(biāo)簽信息的事件報告。
?。?)ALE寫API:包括define,undefine,getECSpec,getECSpecNames,subscribe,unsubscribe,poll,immediate,getSubscribers等API,作用和ALE讀API相似,不同的是這組API提供的是寫標(biāo)簽的能力。
(4)ALE 邏輯讀寫器API:包括define,update,undefine,getLogicalReaderNames,getLRSpec,addReaders,setReaders,removeReaders,setProperties,getPropertyValue等API,給應(yīng)用系統(tǒng)提供了定義邏輯讀寫器,修改邏輯讀寫器屬性的能力。
?。?)訪問控制API:包括definePermission,updatePermission,undefinePermission,defineRole,updateRole,undefineRole,addPermissions,setPermissions,removePermissions,defineClientIdentity,updateClientIdentity,undefineClientIdentity, addRoles, removeRoles, setRoles等API,提供了設(shè)置角色,權(quán)限相關(guān)的安全方面的功能。
通過實現(xiàn)ALE規(guī)定的這5類API,中間件不但可以屏蔽閱讀器的物理位置信息,還可以實現(xiàn)標(biāo)簽信息的過濾和聚集,使應(yīng)用系統(tǒng)可以把主要的精力放在業(yè)務(wù)邏輯的處理上。
3 RFID中間件系統(tǒng)實現(xiàn)原理
RFID中間件系統(tǒng)根據(jù)EPCIS捕獲應(yīng)用設(shè)置的規(guī)則將從讀寫器獲取的標(biāo)簽信息進行過濾和聚集,并按照其指定的格式和方式上報,其架構(gòu)如圖2所示,主要由設(shè)備驅(qū)動適配,規(guī)則引擎,事件處理引擎,規(guī)則庫組成。
RFID中間件系統(tǒng)各個模塊功能如下:
?。?)設(shè)備驅(qū)動適配:設(shè)備驅(qū)動適配的主要功能是將各個讀寫器廠商不同型號、版本的讀寫器接口適配成對事件處理引擎統(tǒng)一的接口。各種標(biāo)簽數(shù)據(jù)和讀寫器事件經(jīng)過設(shè)備驅(qū)動適配模塊處理后,對事件處理引擎表現(xiàn)出統(tǒng)一的數(shù)據(jù)格式,使事件處理引擎可以不關(guān)心各個廠商讀寫器的具體接口。
?。?)事件處理引擎:對讀寫器上報的標(biāo)簽數(shù)據(jù)和讀寫器事件進行過濾、分組、合成等操作,以便滿足EPCIS捕獲應(yīng)用的需要。
?。?)規(guī)則引擎:處理來自EPCIS捕獲應(yīng)用的規(guī)則,并將事件處理引擎處理后的信息,以標(biāo)準(zhǔn)的ALE接口上報給EPCIS捕獲應(yīng)用。
?。?)規(guī)則庫:用于對EPCIS捕獲應(yīng)用設(shè)置的規(guī)則進行持久化,以便在RFID系統(tǒng)重新啟動時,即時加載已經(jīng)設(shè)置成功的事件規(guī)則。
這種RFID中間件系統(tǒng)的架構(gòu),通過設(shè)備驅(qū)動適配模塊,很好地實現(xiàn)了屏蔽讀寫器接口差異的功能。但是同時也存在一個很大的弊端,就是針對不同廠商的不同讀寫器型號,甚至是同一讀寫器型號的不同版本,都要開發(fā)其對應(yīng)的設(shè)備驅(qū)動適配模塊。由于定制開發(fā)需要的周期較長,所以這種架構(gòu)的RFID中間件系統(tǒng),不利于快速集成。
4 LLRP協(xié)議的實現(xiàn)及其優(yōu)勢
在RFID網(wǎng)絡(luò)架構(gòu)中,LLRP處于中間件和讀寫器之間。在架構(gòu)上,中間件以下的部分可分為3個功能組:
(1)數(shù)據(jù)分支:標(biāo)簽數(shù)據(jù)處理
?。?)管理分支:讀寫器設(shè)備管理
?。?)控制分支:讀寫器控制和協(xié)作
LLRP涉及這3個分支的處理。
從圖3可以看到,基于LLRP的RFID中間件系統(tǒng),不再有針對各個廠商不同接口讀寫器的適配模塊,而是統(tǒng)一采用LLRP操作和控制各個讀寫器進行標(biāo)簽的清點,讀寫等操作。
隨著諸如超高頻(UHF) C1G2等空口協(xié)議的成熟,以及讀寫器的大量使用,讀寫器的控制和協(xié)作就顯得尤為重要。LLRP通過直接將空口協(xié)議相關(guān)的控制方法暴露給中間件的方式,來改進控制分支的功能;同時,LLRP也支持多空口協(xié)議以方便擴展。
如圖4所示,LLRP使用消息在中間件和讀寫器間進行通信,消息是一種協(xié)議數(shù)據(jù)單元。按照消息傳遞的方向來分:
從中間件到讀寫器的消息包括:
?。?)獲取和設(shè)置讀寫器配置信息
?。?)讀寫器能力獲取
?。?)管理讀寫器清點和訪問操作
從讀寫器到中間件的消息包括:
?。?)讀寫器狀態(tài)報告
?。?)射頻監(jiān)測信息
?。?)清點和訪問操作的結(jié)果
{$page$}
而對讀寫器具體的操作命令參數(shù),則是通過LLRP的各種規(guī)格來聲明。同樣按照命令的發(fā)送方向來看:
由中間件發(fā)送給讀寫器的命令,包括:
?。?)讀寫器操作:定義了清點參數(shù)和射頻測量參數(shù)
?。?)標(biāo)簽訪問操作:定義了對標(biāo)簽訪取操作。
由讀寫器返回給中間件的命令,包括:
?。?)標(biāo)簽操作和射頻測量的報告
(2) 事件通知:如跳頻、緩存溢出等情況
?。?)心跳消息:周期消息,監(jiān)測與中間件之間的連接情況
5 結(jié)束語
RFID中間件系統(tǒng)位于EPCIS捕獲應(yīng)用和RFID讀寫器之間,根據(jù)EPCIS捕獲應(yīng)用設(shè)置的規(guī)則將從讀寫器獲取的標(biāo)簽信息進行過濾和聚集,并按照其指定的格式和方式上報。傳統(tǒng)的RFID中間件系統(tǒng)架構(gòu),可以通過設(shè)備驅(qū)動適配模塊屏蔽讀寫器的接口差異,但是不利于快速進行集成。基于LLRP的RFID中間件系統(tǒng),不再有針對各個廠商不同接口讀寫器的適配模塊,而是統(tǒng)一采用LLRP操作和控制各個讀寫器進行標(biāo)簽的清點,讀寫等操作,可以快速集成設(shè)備,從而構(gòu)建RFID系統(tǒng)。
6 參考文獻
[1] EPCglobal Inc. The EPCglobal architecture framework, EPCglobal final version 1.3[S]. 2009.
[2] EPCglobal Inc. The application level events (ALE) specification, version 1.1, Part I: Core specification[S]. 2008.
[3] EPCglobal Inc. Low level reader protocol (LLRP), version 1.0.1[S]. 2007.