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