應(yīng)用層事件(Application Level Event)規(guī)范,簡稱ALE規(guī)范,于2005年9月,由EPCglobal組織正式對外發(fā)布。它定義出RFID中間件對上層應(yīng)用系統(tǒng)應(yīng)該提供的一組標(biāo)準(zhǔn)接口,以及RFID中間件最基本的功能:收集/過濾(Collect/Filter)。
1. ALE產(chǎn)生的背景 ---- RFID數(shù)據(jù)的冗余性/業(yè)務(wù)邏輯
RFID讀寫器工作時(shí),不停的讀取標(biāo)簽;因而,造成同一個(gè)標(biāo)簽在一分鐘之內(nèi)可能讀取到幾十次,這些數(shù)據(jù)如果直接發(fā)送給應(yīng)用程序,將帶來很大的資源浪費(fèi),所以需要RFID中間件對這些原始數(shù)據(jù)(Raw Data)進(jìn)行一層收集/過濾處理,提供出有意義信息。
“What, when, where” (何時(shí)何地發(fā)生什么事情) 這是ALE向應(yīng)用系統(tǒng)提供的最典型的信息內(nèi)容。例如:“2006-3-20 19:30 門禁處讀取到 epc#1”。此外,在智能貨柜(Smart Shelf)之類的應(yīng)用中,業(yè)務(wù)流程只關(guān)注物品是否增加或減少。此時(shí),ALE就可以向上層匯報(bào)“2006-3-20 19:31 epc#1 在貨柜#1區(qū)出現(xiàn)/消失”。
所以說,ALE的出現(xiàn)主要是為了減少原始數(shù)據(jù)的冗余性,從大量數(shù)據(jù)中提煉出有效的業(yè)務(wù)邏輯而設(shè)計(jì)。
2. ALE與應(yīng)用系統(tǒng)的關(guān)系
ALE層介于應(yīng)用業(yè)務(wù)邏輯和原始標(biāo)簽讀取層之間,如圖1所示。它接收從數(shù)據(jù)源(一個(gè)或多個(gè)讀寫器)中發(fā)來的原始標(biāo)簽讀取信息,而后,按照時(shí)間間隔等條件累計(jì)(Accumulate)數(shù)據(jù),將重復(fù)或不敢興趣的EPCs剔除過濾(Filter),同時(shí)可以進(jìn)行計(jì)數(shù)及組合(Count/Group)等操作,最后,將這些信息對應(yīng)用系統(tǒng)進(jìn)行匯報(bào)。
在ALE中,應(yīng)用系統(tǒng)可以定義這些內(nèi)容:在什么地方(地點(diǎn)可以映射一個(gè)或多個(gè)讀寫器及天線)讀取標(biāo)簽。在怎樣的時(shí)間間隔內(nèi)(決定時(shí)間、某個(gè)外部事件觸發(fā))收集到的數(shù)據(jù),如何過濾數(shù)據(jù),如何整理數(shù)據(jù)報(bào)告內(nèi)容(按照公司、商品還是標(biāo)簽分類),標(biāo)簽出現(xiàn)或消失時(shí)是否對外報(bào)告,以及讀取到的標(biāo)簽數(shù)目。
ALE規(guī)范定義的是一組接口,它不牽涉到具體實(shí)現(xiàn)。在EPCglobal組織的規(guī)劃中,支持ALE規(guī)范是RFID中間件的最基本的一個(gè)功能;這樣,在統(tǒng)一的標(biāo)準(zhǔn)下,應(yīng)用層上的調(diào)用方式就可統(tǒng)一,應(yīng)用系統(tǒng)也就可以快速部署。
因此,ALE規(guī)范定義的是應(yīng)用系統(tǒng)對RFID中間件的標(biāo)準(zhǔn)訪問方式。
3. ALE 輸入(ECSpec)/輸出(ECReport)
在ALE模型中,有幾個(gè)最基本的概念:讀周期(Read Cycle),事件周期(Event Cycle)和報(bào)告(Report)。
讀周期是和讀寫器交互的最小單位。一個(gè)讀周期的結(jié)果是一組EPCs集合。讀周期的時(shí)間長短和具體的天線、RF協(xié)議有關(guān)。讀周期的輸出就是ALE層的數(shù)據(jù)來源。如圖2所示。
事件周期可以是一個(gè)或多個(gè)讀周期。它是從用戶的角度來看待讀寫器的,可以將一個(gè)或多個(gè)讀寫器當(dāng)作一個(gè)整體,是ALE接口和用戶交互的最小單位。應(yīng)用業(yè)務(wù)邏輯層的客戶在ALE中定義好事件周期的邊界之后,就可接收相應(yīng)的數(shù)據(jù)報(bào)告。
報(bào)告,則是在前面定義的事件周期的基礎(chǔ)上,ALE向應(yīng)用層析提供的數(shù)據(jù)結(jié)果。
圖2 事件周期
對于事件周期的定義,在ALE中由ECSpec表達(dá);對于報(bào)告的內(nèi)容,由ECReports負(fù)責(zé),如圖3。
4. ECSpec 介紹
ECSpec描述了事件周期以及報(bào)告產(chǎn)生的格式。它包括:一組邏輯讀寫器(logical Readers)內(nèi),這些邏輯讀寫器的讀周期在該事件周期內(nèi);一份定義事件周期邊界的規(guī)范;以及在這個(gè)事件周期內(nèi)產(chǎn)生的一組報(bào)告(report)的格式規(guī)范。如圖4所示
圖4 ECSpec
在ALE規(guī)范中,定義出ECSpec的XSD文件,同時(shí)有ECSpec的具體例子,如圖5。
圖5 ECSpec示例
從該例子中,我們可以看出,上層應(yīng)用系統(tǒng)需要邏輯讀寫器dock_1a和dock_1b,在滿足開始及結(jié)束的觸發(fā)事件文件trigger1/trigger2 定義的條件下,重復(fù)周期20000MS,間隔3000MS,對外發(fā)送3個(gè)報(bào)表report1/report2/report3,report1報(bào)告當(dāng)前讀取到的標(biāo)簽,report2報(bào)告每個(gè)事件周期內(nèi)增加的標(biāo)簽及總個(gè)數(shù),report3報(bào)告每個(gè)事件周期內(nèi)減少的標(biāo)簽及總個(gè)數(shù),以及標(biāo)簽進(jìn)行組合的形式。
5. ECReports介紹
ECReports是ALE中間件向上層應(yīng)用系統(tǒng)做出報(bào)告,如圖6所示。
Report1匯報(bào)當(dāng)前讀取到2個(gè)標(biāo)簽。Report2報(bào)告當(dāng)前讀取到的標(biāo)簽個(gè)數(shù)6847。Report3報(bào)告EPC為3.0037000.12345類的物品讀取到2個(gè),3.0037000.55555類的物品讀取到3個(gè),讀取到標(biāo)簽數(shù)為6842。
6. 典型ALE調(diào)用場景
應(yīng)用系統(tǒng)與ALE中間件的交互,必須先將事件周期的定義文件(ECSpec)傳送至中間件,同時(shí)告知中間件將報(bào)告發(fā)回的地址。在以ALE交互中,有幾個(gè)最基本的方法:define/undefine,subscribe/unsubscribe, poll/Immediate。 define/undefine是定義/撤銷ECSpec的操作,subscribe/unsubscribe是訂閱/撤銷某個(gè)ECSpec的服務(wù)。
a) 直接訂閱(Direct Subscription)
該模式下,ECSpec由客戶A定義,得到的報(bào)告反饋給A。
首先,Client1將名為ECname1的ECSpec定義給ALE中間件,而后Client1訂閱該ECName1的報(bào)告,并將它發(fā)至地址為notifyURI的接收處。
在時(shí)間1內(nèi),讀寫器reader1沒有讀到標(biāo)簽,所以沒有反饋。在時(shí)間厄內(nèi),讀到標(biāo)簽,而后,ALE中間件自動將ECreport發(fā)送給Client1。
當(dāng)Client1不需要RFID信息時(shí),它首先退訂notifyURI的ECname1的服務(wù)。當(dāng)ECname1沒有訂閱者之后,就可以撤銷ECname1的時(shí)間周期。
b) 間接訂閱(InDirect Subscription)
該模式與直接訂閱的差異是,得到的報(bào)告不是反饋給A,而是反饋給B。
該圖顯示的ECspec邊界由觸發(fā)器來決定。在第6步中,我們可以看到ECreport發(fā)至client1,而不是初始的服務(wù)定義者。這是由于在第2步中的服務(wù)反饋地址notifyURI指向client1。
c) Poll/Immediate
Poll和Immediate可以看成應(yīng)用系統(tǒng)對ALE中間件的快照。在很多應(yīng)用中,不需要一直監(jiān)聽ALE,而只要知道當(dāng)時(shí)讀到的標(biāo)簽信息,這2種模式就是為滿足這些需求而設(shè)計(jì)的
當(dāng)ALE中間件中已經(jīng)有定義好的ECSpec時(shí),同時(shí)Client需要這個(gè)ECSpec提供的信息,就可以使用Poll方法得到反饋。
當(dāng)ALE中間件中不存在Client需要的事件周期時(shí),這個(gè)時(shí)候,可以直接轉(zhuǎn)送這個(gè)事件周期的定義ECSpec2,而后得到結(jié)果,這就是Immediate。
7. 參考資料
EPCglobal. The Application Level Events(ALE) Specification, version 1.0, Sept 15, 2005.