引 言
無線射頻識別技術(Radio Frequency Identification,以下簡稱RFID)是從20 世紀90 年代 興起的一項自動識別技術,它利用無線射頻方式進行非接觸雙向通信,以達到識別目的并交 換數據。隨著RFID 技術和應用的發展,RFID 系統日趨復雜,RFID 中間件的出現很好地解 決了將物理基礎架構收集到的信息傳遞給企業應用程序的問題。中間件的主要任務是對讀寫器傳來的與標簽相關的事件、數據進行過濾、匯集和計算,減少從讀寫器傳往企業應用的巨 量原始數據、增加抽象出的有意義的信息量,并提供應用程序級別的接口來查詢RFID 事件 。
ALE是應用層事件簡稱,最初作為Savant 應用的一部分開發而成,如今歸屬于國際 標準組織EPCglobal,它是旨在把低層的電子產品代碼(EPC)數據和高層的企業系統相互連 接的EPCglobal 網絡計劃的一部分,現在已成為標準。RFID 中間件應該提供符合ALE 標 準的接口供企業系統或者第三方組件訪問,擴大中間件的適用范圍,因此設計和開發可重構 的、可靠的ALE 引擎對實現成熟的RFID 中間具有重要意義。
1 相關研究
1.1 應用層事件(ALE)標準
RFID 讀寫器在工作時不停地讀取標簽,造成同一個標簽在短時間內可能被讀到很多次, 這些數據如果直接發送給應用程序將為通信網絡帶來很大的負擔,所以需要RFID 中間件對 這些原始數據進行一層收集和過濾的處理。ALE 的出現就是為了減少原始數據的冗余性,為 應用系統從大量數據中提煉出有效的業務邏輯。ALE 層介于應用業務邏輯和原始標簽讀取層 之間,它接收從數據源(一個或多個讀寫器)中讀取的標簽信息,而后按照時間間隔等條件 收集數據,將重復或不敢興趣的EPC 數據剔除過濾,同時可以進行計數及組合等操作,最 后將這些信息對應用系統進行匯報。
在 ALE 中,應用系統可以定義這些內容:在什么地方(地點可以映射一個或多個讀寫 器及天線)讀取標簽,將在怎樣的時間間隔內(決定時間、某個外部事件觸發)收集數據, 如何過濾數據,如何整理數據報告內容(按照公司、商品還是標簽分類),標簽出現或消失 時是否對外報告,以及統計讀取到的標簽數目等。
ALE 標準定義的是一組接口,它不牽涉到具體實現。在EPCglobal 組織的規劃中,支 持ALE 標準是RFID 中間件的最基本的一個功能;這樣,在統一的標準下,應用層上的調用 方式就可統一,應用系統也就可以快速部署。因此,實現ALE 引擎對RFID 中間件具有重要 意義。
1.2 OSGi
OSGi(Open Systems Gateway Initiative)[4]規范為網絡服務定義了一個標準的、面向組件 的計算環境,在此環境中軟件組件可以從運行中被安裝、升級或者移除而不需要中斷設備的 操作,還可以動態的發現和使用其他庫或者應用程序。采用OSGi 的一種考慮是因為中間件 的開發要依據組件概念來進行設計,這些組件被開發為軟件包,通過引用的方式來進行互調。 在OSGi 框架中,應用程序可以單獨進行部署,以軟件包的形式進行開發。正確的使用該模 型可以使軟件包進行重用和快速替換,并且使第三方軟件包重用成為可能。
2 引擎設計
如圖1所示,ALE引擎由引擎內核、數據處理和事件處理三大模塊組成,它們結合起來 滿足ALE標準所要求的接口功能。
2.1 事件處理模塊
事件處理模塊分為四個字模塊:應用層事件接口是符合 ALE 標準的程序接口,提供標 準的方法供應用程序調用以獲取ALE 標準的功能;事件請求模塊分析應用程序的事件請求,即ALE 標準中定義的ECSpec ,并根據請求對事件報告組建模塊、引擎內核、數據過濾模 塊、數據分組模塊和數據格式轉換模塊進行相應的配置;事件報告組建模塊負責按照應用程 序的事件請求生成數據報告,數據報告有統一的格式,但是應用程序可以指定報告的種類(當 前讀取標簽/消失標簽/新增標簽)和數據分組的規則;根據ALE 標準應用程序可以以異步 的方式請求數據報告,報告分發模塊提供了以異步方式向事件報告訂閱者發送報告的功能, 發送方式可以是HTTP, FTP, Web Service 等多種方式。
2.2 引擎內核
事件管理是 ALE 引擎中最核心的功能,引擎內核模塊負責管理事件的生命周期,如圖 2 所示。在ALE 模型中有幾個最基本的概念:讀周期(Read Cycle),事件周期(Event Cycle)和事件周期定義(ECSpec)。讀周期是和讀寫器交互的最小時間單元,一個讀周期的 結果是一組EPCs 集合,讀周期的時間長短和具體的天線、無線射頻協議有關,讀周期的輸 出就是ALE 層的數據。事件周期可以是一個或多個讀周期,它是從用戶的角度來看待 讀寫器的,并可以將一個或多個讀寫器當作一個整體,是ALE 接口和用戶交互的最小時間 單元。應用業務邏輯層的客戶在ALE 中定義好ECSpec 之后,就可接收相應的事件周期的 數據報告。
2.3 數據處理模塊
數據處理模塊分為四個子模塊:數據隊列模塊負責緩存數據,當讀寫器讀取到一個標簽 時會把數據放入相應的隊列,其他的數據處理模塊會把數據從隊列中取出然后進行處理,當 隊列滿了或者超時數據會從隊列中刪除;數據格式轉換模塊根據應用的要求對數據做出格式 轉換;數據過濾模塊根據ECSpec的定義對數據進行過濾,過濾規則包括“包含模式”和 “排除模式”兩種模式[3],最后出現在報告中的標簽信息至少要與“包含模式”列表中的一 個模式匹配,并且不能與任何出現在“排除模式”中的模式匹配;數據分組模塊根據ECSpec 的定義對過濾后的數據進行分組和統計。
3 引擎內核實現
引擎內核采用事件驅動的方式實現,見圖 3。
圖3 引擎內核實現
一個 ECSpec 在內核里對應著一個事件周期管理者,應用層對于ALE 讀接口的調用會 映射到具體的事件周期管理者上,由事件周期管理者來完成接口提供的功能。當一個 ECSpec 被定義時(即調用define 或immediate 方法),引擎就會為這個ECSpec 創建 對應的事件周期管理者,同時創建一個事件周期對象和各種觸發器。當ALE 接口調用請求 者第一次對某個ECSpec 發出調用請求時(例如調用subscribe, poll, immediate 方法) 將激活對應的事件周期管理者,此時由這個事件周期管理者所控制的事件周期對象和各個觸 發器也被激活,事件周期對象開始按照ECSpec 中所定義的邊界條件開始和結束激活狀態, 并收集RFID 標簽數據。當最后一個接口調用請求的調用方法返回時,事件周期管理者再次 進入休眠狀態,對應的事件周期對象和各個觸發器也停止運行,直到被再次喚醒或者隨著該 ECSpec 的撤銷被撤銷。
ECSpec 會在未請求、已請求和活躍狀態三種狀態的之間遷移,狀態策略模塊根據狀 態轉換的規則轉換ECSpec 的狀態。外部調用請求會導致狀態的變遷,不同的狀態下接收 到相同的調用請求除了執行不同的操作外還可能使ECSpec 變遷為不同的后繼狀態,因此 這里使用了狀態模式。每一時刻ECSpec 都會處于某一種狀態中,事件周期管理者接收到 接口調用請求后都會把請求代理給狀態策略模塊,由當前狀態策略決定對調用如何響應和確 定后繼狀態是什么。
ALE 標準中定義了事件周期觸發器,并且具體定義了一個時間觸發器。在引擎中,除了 這個時間觸發器外,所有事件周期邊界條件都被看作是一種觸發器,因此抽象出一個觸發器 接口Trigger 。事件周期中定義的各種的邊界條件, 如duation, repeatPeriod, stableSetInterval 等等都是抽象Tigger 的具體實現。因此抽象Trigger 可以理解為影響事 件周期開始和結束的觸發條件,而ALE 標準中所定義的ECTrigger 成為抽象Trigger 的其中 一種具體實現。在具體觸發器的創建過程中使用了抽象工廠模式,事件周期管理者在初始化 的時候調用工廠方法創建各種具體的觸發器。
4 結 論
使用事件驅動的方式設計和實現了 ALE 引擎,減低了各模塊之間的耦合度,有利于引 擎的維護和擴展。抽象了事件周期觸發器概念,令所有邊界觸發條件和觸發器能夠統一管理 和工作,簡化了把用戶自定義的觸發器加入引擎的過程,令觸發器系統有更好的擴展性。作 為RFID 中間件中重要的部分,該引擎為可重構的RFID 中間件提供了很好的支持。而采用 OSGi 技術實現ALE 引擎得以實現諸如動態更新數據處理和事件處理組件的需求,對于中小 型企業應用RFID 技術,可以動態地組合ALE 引擎的功能,不再需要一次性購買大量復雜 的RFID中間件產品,從而形成了一種快速的和可擴展的RFID 中間件解決方案,降低了RFID 應用技術的成本。
-
RFID
+關注
關注
390文章
6389瀏覽量
241225 -
無線
+關注
關注
31文章
5538瀏覽量
175492 -
通信網絡
+關注
關注
21文章
2075瀏覽量
52789
發布評論請先 登錄
請問nand中的ALE該怎么算?
求助,關于單片機ALE引腳的問題
基于Web的地圖服務引擎的設計與實現
RFID中間件ALE引擎設計與實現
短波快速跳頻系統下新的ALE呼叫方法
基于OSGI家庭網關的多媒體系統設計
基于OSGI的智能家庭系統設計

OSGi原理與最佳實踐_王昊

基于JAVA技術的搜索引擎的研究與實現

使用單片機實現ADC0808中斷方式AD的ALE輸出CLK的仿真文件免費下載
使用51單片機實現ADC0808查詢方式AD ALE輸出CLK的仿真文件
OpenDaylight中的OSGi

ALE的刻蝕原理?

評論