電話:13691762133
手機(jī):13691762133
郵件:andy@ownlikes.cn
QQ:317779813
地址:深圳市龍華新區(qū)觀瀾大道35號1棟3樓
網(wǎng)址 : greezubamboo.cn
應(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讀寫器工作時,會不停地讀取標(biāo)簽,這會造成同一個標(biāo)簽在一分鐘之內(nèi)被讀取幾十次,這些數(shù)據(jù)如果直接發(fā)送給應(yīng)用程序,將帶來很大的資源浪費(fèi),因此需要RFID中間件對這些原始數(shù)據(jù)(Raw Data)進(jìn)行一層收集/過濾處理,提供出有意義信息。
“What,when,Where”(何時何地發(fā)生什么事情)這是ALE向應(yīng)用系統(tǒng)提供的最典型的信息內(nèi)容。例如,“2006-3-20 19:30門禁處讀取到epc#1”。此外,在智能貨柜(Smart Shelf)之類的 應(yīng)用中,業(yè)務(wù)流程只關(guān)注物品是否增加或減少。此時,ALE就可以向上層匯報“2006-3-20 19:31 epc#1 在貨柜#1區(qū)出現(xiàn)/消失”??梢哉f,ALE的出現(xiàn)主要是為了減少原始數(shù)據(jù)的冗余性,以從大量數(shù)據(jù)中提煉出有效的業(yè)務(wù)邏輯。
2.ALE與應(yīng)用系統(tǒng)的關(guān)系
ALE層介于應(yīng)用業(yè)務(wù)邏輯層和原始標(biāo)簽讀取層之間,它接收從數(shù)據(jù)源(一個或多個讀寫器)中發(fā)來的原始標(biāo)簽讀取信息,然后按照時間間隔等條件累計(Accumulate)數(shù)據(jù),將重復(fù)或不感興趣的EPCs剔除過濾(Filter),同時進(jìn)行計數(shù)及組合(Count/Group)等操作,最后將這些信息對應(yīng)用系統(tǒng)進(jìn)行匯報。在ALE中,應(yīng)用系統(tǒng)可以定義這些內(nèi)容:在什么地方(地點(diǎn)可以映射一個或多個讀寫器及天線)讀取標(biāo)簽;在怎樣的時間間隔內(nèi)(決定觸發(fā)時間、某個外部觸發(fā)事件)收集到的數(shù)據(jù);如何過濾數(shù)據(jù);如何整理數(shù)據(jù)報告內(nèi)容(按照公司、商品還是標(biāo)簽分類);標(biāo)簽出現(xiàn)或消失時是否對外報告,以及讀取到的標(biāo)簽數(shù)目。
ALE規(guī)范定義的是一組接口,它不涉及具體實(shí)現(xiàn)。在EPCglobal組織的規(guī)劃中,支持ALE規(guī)范是RFID中間件最基本的一個功能,這樣,在統(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規(guī)范的主要優(yōu)點(diǎn)
1)事件管理標(biāo)準(zhǔn)
為了可以從RFID讀寫器接收、過濾及分組事件,ALE規(guī)范提供了一個讀寫器接口。這樣,使用兼容ALE的中間件的應(yīng)用程序不需要為每個讀寫器都安裝單獨(dú)的驅(qū)動程序,也不需使用每個讀寫器的專有編程接口。
2)擴(kuò)展性
ALE標(biāo)準(zhǔn)具有高度擴(kuò)展性。雖然ALE規(guī)范的目標(biāo)是處理EPC事件源,但它也可以創(chuàng)建一些應(yīng)用擴(kuò)展以連接到非EPC標(biāo)簽或非RFID讀寫器設(shè)備的接口上。
3)接口和實(shí)現(xiàn)的分離
ALE規(guī)范在客戶端和RFID中間件中提供一個接口,把實(shí)現(xiàn)細(xì)節(jié)留給開發(fā)人員,即開發(fā)人員可以根據(jù)技術(shù)平臺、部署選項(xiàng)、附加特性等來選擇實(shí)現(xiàn)技術(shù)的細(xì)節(jié)。RFID中間件提供的ALE服務(wù)可以在應(yīng)用系統(tǒng)的邊緣或內(nèi)部作為一個獨(dú)立的模塊存在,也可以駐留在RFID讀寫器中。
應(yīng)用層事件規(guī)范為訪問應(yīng)用層事件服務(wù)提供了Web服務(wù)兼容的綁定接口(Binging Interface),使得ALE接口的實(shí)現(xiàn)方式可以適應(yīng)不同的電信協(xié)議(如SOAP/HTTP)和API。
4.ALE輸入(ECSpec)/輸出(ECReport)
在ALE模型中,有幾個最基本的概念:事件發(fā)生器、識讀周期(Read Cycle)、事件周期(Event Cycle)和報告(Report)。
1)事件發(fā)生器(Event Originator)
事件發(fā)生器是指任何能捕獲到RFID標(biāo)簽的出現(xiàn)及其他識讀的設(shè)備,RFID讀寫器和傳感器就是事件發(fā)生器的例子。ALE規(guī)范將物理設(shè)備和讀寫器區(qū)分開來。在ALE規(guī)范內(nèi)容中,一個物理設(shè)備可能是擁有一個或多個天線的RFID讀寫器、一個符合EPC的條形碼掃描儀或類似設(shè)備。
ALE規(guī)范定義的讀寫器是一個抽象概念,從本質(zhì)上講,一個讀寫器是一個提供EPC原始事件數(shù)據(jù)源。一個讀寫器可以有以下3種表現(xiàn)形式。
(1)一個讀寫器映射到一個物理設(shè)備上,即一個讀寫器可以由單個物理設(shè)備實(shí)現(xiàn),如一個單根天線的RFID讀寫器、一個符合EPC標(biāo)準(zhǔn)的條形碼掃描儀或一個每根天線都可以收集數(shù)據(jù)的多天線讀寫器。
(2)幾個讀寫器映射到相同的物理設(shè)備上。一個讀寫器也可以由幾個物理設(shè)備實(shí)現(xiàn),如一個有多根天線的讀寫器,其每根天線都是一個獨(dú)立的數(shù)據(jù)源。
(3)一個讀寫器映射到多個物理設(shè)備上。多個讀寫器可以協(xié)同工作來獲取綜合的觀測資料,如兩個或更多個讀寫器可以用于三角測量以獲取位置信息。
ALE規(guī)范也支持邏輯讀寫器的概念,即一個或更多個讀寫器的標(biāo)志或名字。邏輯讀寫器的概念使應(yīng)用程序得以從讀寫器的具體部署中脫離出來,當(dāng)讀寫器的具體分布發(fā)生改變時,只需要改變實(shí)際讀寫器和邏輯讀寫器之間的映射關(guān)系,而無須重新編寫應(yīng)用程序。
2)識讀周期
一個識讀器能以一組頻率(或根據(jù)要求)掃描RFID標(biāo)簽或得到其他物理測讀記錄,每次掃描稱為一個識讀周期,也稱讀寫周期。讀寫周期是和讀寫器交互的最小單位,一個讀寫周期的結(jié)果是一組EPCs集合。讀寫周期的時間長短和具體的天線、RF協(xié)議有關(guān),讀寫周期的輸出就是ALE層的數(shù)據(jù)來源。
3)事件周期
一個事件周期是客戶端使用ALE服務(wù)進(jìn)行交互的一個單位,它與讀取周期的映射關(guān)系(如圖5-16所示)有很大的靈活性。事件周期可以是一個或多個讀周期。它是從用戶的角度來看待讀寫器的,可以將一個或多個讀寫器當(dāng)做一個整體。它是ALE接口和用戶交互的最小單位。應(yīng)用業(yè)務(wù)邏輯層的客戶在ALE中定義好事件周期的邊界之后,就可接收相應(yīng)的數(shù)據(jù)報告。
4)報告
報告則是在事件周期的基礎(chǔ)上,由ALE向應(yīng)用層分析提供的數(shù)據(jù)結(jié)果。對于事件周期的定義,在ALE中由ECSpec表達(dá);對于報告的內(nèi)容,由ECReport負(fù)責(zé).
5.交互模式
可以通過客戶機(jī)和ALE服務(wù)器間可用的交互模式來識別ALE規(guī)范的機(jī)動性??蛻魴C(jī)可以在需要時請求服務(wù)(同步模式)或在某種特定情況下將登記信息發(fā)送到服務(wù)器上(異步模式)。
1)同步模式
主要的交互模式是請求/答應(yīng)模式,在這種模式下,所有調(diào)用ALE服務(wù)的方法都同步執(zhí)行,如圖5-18所示為同步模式。ALE規(guī)范的同步模式支持即時和輪詢兩種交互方式。
2)異步模式
ALE接口也支持異步模式,在這種模式下,客戶的同步端可以預(yù)定事件,當(dāng)事件發(fā)生時,ALE服務(wù)器會異步地傳送數(shù)據(jù)到客戶機(jī)上。異步模式可以選擇不同的技術(shù)來實(shí)現(xiàn),包括JMS、TIBCO、MQ-Series、E-mail、SOAP??蛻粲猛ǜ鎁RI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識)來預(yù)定事件,通告URI可以基于HTTP、TCP或簡單文件類型?;贖TTP的通告URI設(shè)定了事件周期報告通過HTTP傳送,使用POST操作;基于TCP的通告URI允許事件周期報告使用原始TCP連接來傳送;基于文件類型的通告URI允許將事件周期報告寫入文件中。
3)數(shù)據(jù)元素
下面介紹主要的數(shù)據(jù)元素是如何在中間件中交換的??蛻舳说闹饕康氖钦埱螳@取EPC數(shù)據(jù),這是通過提供一個ECSpec(事件周期規(guī)范)給ALE服務(wù)來實(shí)現(xiàn)的。ECSpec描述了一個事件周期,以及定義了生成報告的規(guī)范,它是與ALE API關(guān)聯(lián)的兩種主要數(shù)據(jù)類型之一。另一種是ECReport(事件周期報告)。
ECSpec定義了事件周期開始和結(jié)束及生成報告的規(guī)則。當(dāng)一個事件周期從一個或多個讀寫器的讀寫周期中提取數(shù)據(jù)時,也包括邏輯讀寫器的列表。
使用ALE語言的報告是一個事件周期的輸出,是ECReport的實(shí)例。報告規(guī)范的表達(dá)形式由ECReportSpec定義,提供過濾、分組和其他數(shù)據(jù)處理指令。
4)ALE服務(wù)接口
EPCglobal的ALE規(guī)范為主要的ALE API提供了一個抽象定義,這個規(guī)范也為ALE API提供了一種符合WS-IO(Web Services Interoperability Organization,Web服務(wù)互操作性組織)的SOAP綁定。主要的ALE服務(wù)接
6.ECSpec介紹
ECSpec描述了事件周期及報告產(chǎn)生的格式。它包括一組邏輯讀寫器(Logical Readers),這些邏輯讀寫器的讀寫周期在該事件周期內(nèi),一份定義事件周期邊界的規(guī)范,以及在這個事件周期內(nèi)產(chǎn)生的一組報告(report)的格式規(guī)范。
在ALE規(guī)范中定義出了ECSpec的XSD文件,以及ECSpec表示的具體例子,上層應(yīng)用系統(tǒng)需要邏輯讀寫器dock_1a和dock_1b,在滿足開始及結(jié)束的觸發(fā)事件文件trigger1/trigger2 定義的條件下,重復(fù)周期為20000ms,間隔為3000ms,對外發(fā)送3個報表report1、report2、report3,其中report1報告當(dāng)前讀取到的標(biāo)簽,report2報告每個事件周期內(nèi)增加的標(biāo)簽及總個數(shù),report3報告每個事件周期內(nèi)減少的標(biāo)簽及總個數(shù),以及標(biāo)簽進(jìn)行組合的形式。
可以看出Report1報告當(dāng)前讀取到的標(biāo)簽個數(shù)為2個,Report2報告當(dāng)前讀取到的標(biāo)簽個數(shù)為6847。Report3報告EPC 3.0037000.12345類的物品讀取到2個,3.0037000.55555類的物品讀取到3個,讀取到的標(biāo)簽數(shù)為6842。
8.典型的ALE調(diào)用場景
要想實(shí)現(xiàn)應(yīng)用系統(tǒng)與ALE中間件的交互,必須先將事件周期的定義文件(ECSpec)傳送至中間件,同時將報告發(fā)回的地址告知中間件。在ALE交互形式中,有幾個最基本的方法:define/undefine,subscribe/unsubscribe,poll/immediate。其中define/undefine是定義/撤銷ECSpec的操作,subscribe/unsubscribe是訂閱/撤銷某個ECSpec的服務(wù)。
1)直接訂閱(Direct Subscription)
ECspec由客戶A定義,得到的報告反饋給A。
首先,Client1將名為ECName1的ECSpec定義給ALE中間件,然后Client1訂閱該ECName1的報告,并將它發(fā)至地址為NotifyURI的接收處。
在時間1(Period1)內(nèi),讀寫器Reader1沒有讀到標(biāo)簽,因此沒有反饋。在時間2(Period2)內(nèi),讀到標(biāo)簽,然后ALE中間件自動將ECReport發(fā)送給Client1。
當(dāng)Client1不需要RFID信息時,它首先退訂NotifyURI的ECName1的服務(wù)。當(dāng)ECName1沒有訂閱者之后,就可以撤銷ECName1的時間周期了。
2)間接訂閱(InDirect Subscription)
間接訂閱與直接訂閱的差異是,得到的報告不反饋給A,而反饋給B。
顯示的ECSpec邊界由觸發(fā)器來決定。在第6步中,可以看到ECReport發(fā)至Client1,而不是初始的服務(wù)定義者,這是因?yàn)樵诘?步中的服務(wù)反饋地址NotifyURI指向Client1。
Poll/Immediate(如圖5-26所示)可以看成應(yīng)用系統(tǒng)對ALE中間件的快照。在很多應(yīng)用中,不需要一直監(jiān)聽ALE,而只要知道當(dāng)時讀到的標(biāo)簽信息,這兩種模式就是為滿足這些需求而設(shè)計的。
當(dāng)ALE中間件中已經(jīng)有定義好的ECSpec,同時Client需要這個ECSpec提供的信息時,就可以使用Poll方法得到反饋了。
當(dāng)ALE中間件中不存在Client需要的事件周期時,可以直接轉(zhuǎn)送這個事件周期的定義ECSpec2,然后得到結(jié)果,這就是Immediate。