RFID技術(shù)挑戰(zhàn)和參考架構(gòu)
本文將討論適用于與企業(yè)大型IT生態(tài)系統(tǒng)相接合的RFID基礎(chǔ)架構(gòu)的架構(gòu)。重點介紹通常被RFID供應(yīng)商所忽略的幾個問題,闡述在選擇RFID基礎(chǔ)架構(gòu)供應(yīng)商時需要考慮的架構(gòu)選項,并詳細研究這些選項的架構(gòu)優(yōu)點。
簡介無線射頻識別(Radio Frequency Identification,RFID)正在成為現(xiàn)實,因為現(xiàn)代供應(yīng)鏈要求有更高的效能、更大的信息流和靈活性。RFID產(chǎn)品已在零售、醫(yī)藥、運輸、國防和帶包裝消費品等行業(yè)中得到廣泛應(yīng)用。采用RFID技術(shù)可以改進血統(tǒng)追蹤,提高預(yù)測水平和集裝箱安全性,同時減少貨物皺縮、召回和脫銷等問題的發(fā)生,從而節(jié)約數(shù)十億美元的供應(yīng)鏈成本。
沃爾瑪、Albertson's和Best Buy等零售商已要求他們的頂級供應(yīng)商到2005年末全部啟用RFID。這些要求會擴展到數(shù)以千計的供應(yīng)商、商店和配送中心,它們都需要裝配多功能分布式讀卡器,這樣就引發(fā)了幾個技術(shù)挑戰(zhàn)?,F(xiàn)在,大部分采用RFID技術(shù)的企業(yè)都集中于小規(guī)模的試點和一站式概念驗證。但是,要真正實現(xiàn)RFID的優(yōu)點,必須在整個企業(yè)范圍內(nèi)采用該項技術(shù)。
基于長期與大流量分布式事務(wù)環(huán)境打交道的成功經(jīng)驗,BEA已確定了企業(yè)要完全采用RFID技術(shù)必須解決的七項關(guān)鍵技術(shù)挑戰(zhàn)。在未來幾年內(nèi),RFID技術(shù)的廣泛采用將會在可伸縮性、可用性、安全性、互操作性、集成、管理和消息傳遞等IT領(lǐng)域產(chǎn)生重要的意義。而BEA提供了一個可作為當(dāng)前和長期RFID解決方案基礎(chǔ)的參考架構(gòu)。
本文適合對RFID技術(shù)具有一定了解的讀者閱讀。
RFID技術(shù)挑戰(zhàn)隨著RFID技術(shù)的應(yīng)用日益廣泛,它的分布式特性與處理的大流量相結(jié)合,會在可伸縮性、可用性、安全性、互操作性、集成、管理和消息傳遞等七個重要領(lǐng)域引發(fā)一些嚴重的技術(shù)挑戰(zhàn)。本節(jié)將逐一介紹這些挑戰(zhàn)。
可伸縮性
隨著RFID技術(shù)的應(yīng)用日益廣泛,企業(yè)需要處理分布在全球各個供應(yīng)鏈中數(shù)以千計的讀卡器的輸入信息??焖侔l(fā)展將會挑戰(zhàn)可伸縮性。需要處理的數(shù)據(jù)量非常龐大(讀卡器每秒可捕獲120個到400個信號),這樣就產(chǎn)生了更大的挑戰(zhàn)。
要處理這種級別的數(shù)據(jù)流量,需要使用非阻塞(non-blocking)I/O機制。當(dāng)眾多用戶同時使用RFID訪問一個應(yīng)用程序時,大多數(shù)中間件解決方案為每個客戶端打開一個插口,并為每個用戶建立獨有的線程。這種阻塞I/O技術(shù)嚴重限制了性能和可伸縮性。與此相反,非阻塞I/O可以使BEA WebLogic Server之類的中間件能夠在多個并發(fā)用戶中復(fù)用少量的讀卡器線程,確保較高的性能和可伸縮性。
在處理讀卡器的大流量數(shù)據(jù)流和進行消息傳遞時,需要大量使用I/O和網(wǎng)絡(luò)。邊緣服務(wù)器的CPU利用主要用于邊緣服務(wù)器的復(fù)本檢測和模式匹配。在要處理的數(shù)據(jù)量確定的情況下,網(wǎng)絡(luò)帶寬也會成為一個問題。“批量數(shù)據(jù)傳輸”(Boxcarring)——即,將多個請求包裝在一個數(shù)據(jù)包中——可以舒緩網(wǎng)絡(luò)堵塞問題。它還可以減少多個請求通過安全層及其它代碼層所需的時間。
最后,邊緣層中央數(shù)據(jù)儲存庫的使用會產(chǎn)生系統(tǒng)瓶頸,影響可伸縮性。例如,如果將從一組RFID讀卡器捕獲的數(shù)據(jù)全部寫入數(shù)據(jù)庫,進入數(shù)據(jù)庫的巨大數(shù)據(jù)流會對性能產(chǎn)生嚴重影響。因此,應(yīng)該在集成層處理數(shù)據(jù)庫交互,這樣就可以大大減少需要處理的數(shù)據(jù)。這種架構(gòu)(如圖1所示),相對于事件儲存庫方法,可以定義為事件源方法。
圖1:在邊緣層使用數(shù)據(jù)庫會嚴重限制可伸縮性。邊緣應(yīng)作為事件源而非事件儲存庫。
為確保數(shù)據(jù)穿越整個基礎(chǔ)架構(gòu)和應(yīng)用協(xié)議??煽康貍鬟f至正確的目的地,需要消除邊緣層、集成層以及二者之間所有端點的單點故障(single points of failure,SPOF)。
在捕獲數(shù)據(jù)和過濾數(shù)據(jù)的邊緣層,對中央數(shù)據(jù)庫的依賴性會影響可伸縮性和可用性。另一種做法是,系統(tǒng)可以將事件暫時保留在內(nèi)存中,在使用之后刪除,或者需要的話,可以記錄在文件系統(tǒng)中。該實踐可以大大降低對數(shù)據(jù)庫可用性的依賴性。
在讀卡器層,搭接部分——例如,月臺門處的多功能讀卡器或天線——可以提高在物理層準(zhǔn)確捕獲事件的可能性。邊緣層可以管理此層中的讀卡器,打開一些讀卡器而關(guān)閉另外的一些,消除副本等等。
由于邊緣不記錄它傳遞的事件,而業(yè)務(wù)邏輯包含在集成層中,因此集成層的可用性至關(guān)重要。必須將任何包含商業(yè)負載均衡系統(tǒng)的RFID解決方案的互操作性都考慮在內(nèi),因為需要負載均衡系統(tǒng)來分配負荷并保證故障轉(zhuǎn)移。集成層也必須能夠通過集群化的JMS(Java Message Service)提供高度可用的消息傳遞功能。
為確保各層不會出現(xiàn)單點故障,客戶可能希望使用集群化的數(shù)據(jù)庫來輔助數(shù)據(jù)層。當(dāng)然了,在集成層使用數(shù)據(jù)庫比在邊緣層使用更有效。
安全性對于RFID來說,大量相關(guān)的潛在敏感數(shù)據(jù)使得安全性成為RFID系統(tǒng)至關(guān)重要的一個方面。最低級別,安全管理可以防止讀卡器被關(guān)閉以及記錄項被竊取。因此,必須通過驗證、授權(quán)或?qū)徲媮肀Wo管理接口,這也許會通過SSL(Secure Socket Layer,安全套接字層)來實現(xiàn)。
但是,大部分RFID中間件解決方案都無法使用SSL。SSL“握手”機制牽涉到CPU密集型的計算,而這會影響邊緣層處理其它CPU密集型作業(yè)(如:過濾)的能力。不使用SSL,邊緣層會不太安全。因此,整個堆棧——包括讀卡器層、邊緣層和集成層——通常應(yīng)包裝到一個防火墻中,所有對堆棧的遠程訪問都要經(jīng)過許可端口和協(xié)議。然后就可以實施周邊身份驗證(perimeter authentication),通過一個Web應(yīng)用程序或Web服務(wù)遠程管理堆棧。
最后,所選擇的中間件平臺必須易于與第三方提供者的身份驗證、授權(quán)、LDAP和審計技術(shù)相集成,如圖2所示。
圖2:邊緣服務(wù)器需要支持可插入的安全提供者接口。
互操作性對于確保RFID的成功實現(xiàn)具有多重重要意義。或許,最迫切的需求是基于標(biāo)準(zhǔn)的JCA適配器要有效連接到諸如倉庫管理系統(tǒng)或運輸管理系統(tǒng)之類的應(yīng)用程序。僅僅能夠以私有格式發(fā)布JMS消息或事件是遠遠不夠的;應(yīng)用程序供應(yīng)商,比如SAP、Yantra和Manhattan,要求事件以確定的格式呈現(xiàn)。適配器可以填平鴻溝,將信息以可接受的格式傳播至恰當(dāng)?shù)膽?yīng)用程序。中間件解決方案應(yīng)能夠提供和支持適用于關(guān)鍵應(yīng)用程序的適配器。
在其它方面,開箱即用的互操作性同樣至關(guān)重要。例如,中間件應(yīng)能夠與防火墻提供者、身份驗證、授權(quán)和審計提供者、負載均衡系統(tǒng)和JMS供應(yīng)商進行互操作。讀卡器的互操作性也非常重要。盡管讀卡器通信協(xié)議的標(biāo)準(zhǔn)化一直在進行,但在出現(xiàn)一個占據(jù)主導(dǎo)地位的標(biāo)準(zhǔn)之前,每個中間件供應(yīng)商都必須提供一個讀卡器抽象層和互操作性解決方案。
設(shè)計良好的架構(gòu)可以將讀卡器抽象層置于邊緣層,使得集成層具有讀卡器無關(guān)性。也就是說,集成層無需考慮特定的讀卡器協(xié)議或格式。
在讀卡器抽象層,重要的一點是要公開所有特定于讀卡器的命令(可能通過動態(tài)讀卡器接口發(fā)現(xiàn)),而不是僅僅公開最不常見的命令。抽象層也應(yīng)能夠支持多種讀卡器版本或讀卡器供應(yīng)商,而提供統(tǒng)一的抽象層,如圖3所示。
圖3:邊緣服務(wù)器需要在異構(gòu)環(huán)境中進行互操作。
需要進行某種形式的企業(yè)應(yīng)用集成(Enterprise Application Integration,EAI)才能實現(xiàn)RFID事件的全部價值。僅僅將事件從邊緣服務(wù)器分派至一系列的應(yīng)用程序還不能成為完美的解決方案,因為它會產(chǎn)生與安全性、可靠消息傳遞、性能、可用性、適配器連接、業(yè)務(wù)流程界定等相關(guān)的問題。
比較而言,EAI解決方案可提供對一個問題的全面概覽。例如,一個在達拉斯和舊金山具有不同邊緣服務(wù)器的組織,可以將事件發(fā)送至共同的EAI解決方案。涉及連接至不同邊緣服務(wù)器的讀卡器或天線的事件需要組合并關(guān)聯(lián)到一個統(tǒng)一的EAI層。而且,復(fù)雜的事件組合不適用于這種情況,因為邊緣層需要占用CPU周期。隨著業(yè)務(wù)流程涉及到組織內(nèi)部和外部越來越多的系統(tǒng)和人員,EAI層變得更為關(guān)鍵。
其它一些方面也使得集成解決方案更為必要。要連接至后端應(yīng)用程序,需要使用基于標(biāo)準(zhǔn)的適配器;在可視化環(huán)境下匯編、監(jiān)控和管理流程的能力也非常重要。通過通用抽象層(比如控件),在業(yè)務(wù)流程、門戶、Web服務(wù)、RFID讀卡器和其它元素之間構(gòu)成復(fù)雜交互的能力可以大大提高。(有關(guān)控件的更多信息,請訪問dev2dev Beehive頁面)。最后,在傳遞事件時,必須在邊緣層和實際集成層之間實現(xiàn)無縫集成。
管理隨著RFID在各個供應(yīng)鏈中啟用,管理整個架構(gòu)的能力成為必要。以高級別來看,RFID的監(jiān)控和管理包括兩個方面:設(shè)備管理和對讀卡器的配置。管理員需要一個管理整個架構(gòu)的接口,該接口應(yīng)該包含在一個集中式的門戶框架中。
RFID管理解決方案還應(yīng)與現(xiàn)有的管理提供者(例如,HP OpenView或Tivoli)無縫集成,需要支持SNMP和JMX之類的標(biāo)準(zhǔn)協(xié)議。理想的情況是,一個中央配置主機應(yīng)能夠?qū)⑴渲猛菩兄吝吘壓驼麄€供應(yīng)鏈中的讀卡器。
當(dāng)配置內(nèi)部復(fù)雜的分布式環(huán)境時,還會出現(xiàn)一些其它挑戰(zhàn),例如保護單元素服務(wù)和消除網(wǎng)絡(luò)分區(qū)癥狀(split-brain syndrome)。要想RFID配置能夠執(zhí)行良好,必須解決這些挑戰(zhàn)。
消息傳遞保證的exactly-once(只發(fā)送一次)消息處理語義非常難以實現(xiàn)。即使在干預(yù)式消息傳輸過程中,發(fā)送方和接收方也都存在著消息中斷的可能性。大部分中間件解決方案沒有考慮確保exactly-once消息語義的需求。但是,如果不考慮這個問題會產(chǎn)生一系列問題——例如,單次交付報告會被無意地交付多次。倉庫管理員就會認為向合作伙伴發(fā)送了兩份報告而非一份;在不同的時間和地點多次發(fā)生這種情況,其效果就會非常驚人。
另一個重要因素是確保對消息排隊和出隊的事務(wù)性保證。如果消息沒有按事務(wù)順序排隊,隊列就沒有保證;類似地,出隊的消息也無法保證經(jīng)過完全處理。其它方面的考慮主要是圍繞操作冪等性——重新執(zhí)行已部分完成的操作是否安全。
有時,需要進行連接的計算,特別是在發(fā)送方和接收方地理位置較遠時。在這種情況下,如果一方依賴于另一方的同步響應(yīng),則網(wǎng)絡(luò)中斷就會帶來整個操作的終止。這種情況下應(yīng)該設(shè)為異步通信。
通常使用JMS進行異步通信。但是,如果JMS提供者在接收方,發(fā)送方如果無法對消息進行排隊就會阻塞(或者引發(fā)錯誤并負責(zé)重新嘗試發(fā)送)。因此,在發(fā)生這些問題的情況下,將JMS放在接收方不會對發(fā)送方有任何幫助。但是,如果要使用存儲-轉(zhuǎn)發(fā)消息傳遞機制,其中的許多問題都可以解決。這樣,異步通信就可以恢復(fù),因為存儲-轉(zhuǎn)發(fā)系統(tǒng)會負責(zé)繼續(xù)發(fā)送消息、重試,等等。由于這個原因,JMS Bridge或存儲-轉(zhuǎn)發(fā)技術(shù)就顯得至為重要。
參考架構(gòu)層BEA的參考架構(gòu)由四個層組成:讀卡器層、邊緣服務(wù)器層、集成層和應(yīng)用層。如圖4所示。
圖4:未來的參考架構(gòu)
底層的讀卡器以每秒120和400次的速度輪詢標(biāo)記,通常基于一個類似于運動傳感器的觸發(fā)器。無論在任何時間,IP可尋址的讀卡器應(yīng)由一個且僅由一個邊緣服務(wù)器進行控制。該要求是避免與網(wǎng)絡(luò)分區(qū)相關(guān)的問題所必需的。
邊緣服務(wù)器定期輪詢讀卡器(例如每秒兩次),刪除復(fù)本,并進行篩選和設(shè)備管理。邊緣服務(wù)器還負責(zé)創(chuàng)建ALE事件并將其分派至集成層。這種分派通常需要exactly-once消息語義(參見上面的“消息傳遞”)。
集成層接收多個ALE事件并將其合并到涉及各種系統(tǒng)和人員的工作流中,這些系統(tǒng)和人員是更大的業(yè)務(wù)流程的一部分。集成層通過基于標(biāo)準(zhǔn)的JCA適配器與打包應(yīng)用程序(如:倉庫管理系統(tǒng)或產(chǎn)品信息管理系統(tǒng))交互。通過一些提供抽象層的控件和開源框架,該層也可以與系統(tǒng)一起工作,抽象層將后端組件公開為可重用組件。
集成層也可以通過Web服務(wù)接口與對象名解析服務(wù)(Object Naming Service,ONS)進行通信。類似于DNS服務(wù)器,ONS可以用于查尋獨有的RFID標(biāo)記ID以及確認附加的產(chǎn)品信息。集成層還必須維護電子產(chǎn)品代碼信息服務(wù)(Electronic Product Code Information Service,EPC-IS)儲存庫,并從中查詢數(shù)據(jù),該庫提供了ALE事件(如:通過供應(yīng)鏈跟蹤和追蹤產(chǎn)品)的業(yè)務(wù)上下文。圍繞EPC-IS儲存庫的標(biāo)準(zhǔn)目前正在定義。
最后,集成層還可以利用B2B消息(如:查詢EPC-IS儲存庫的EDI或Web服務(wù)請求)通過防火墻中的網(wǎng)關(guān)與外部系統(tǒng)進行通信。
邊緣與集成層的分離可以提高可伸縮性并降低客戶成本,因為邊緣層既是輕量級的,成本又低。隨著應(yīng)用服務(wù)器和數(shù)據(jù)庫連接池的使用日益流行,互聯(lián)網(wǎng)數(shù)據(jù)庫連接的快速增長,隨著業(yè)界從互聯(lián)網(wǎng)通信轉(zhuǎn)向RFID通信,需要有一個單獨的層進行篩選并將連接集中到集成層。
控制消息通過管理門戶流入系統(tǒng),進入集成層,然后進入邊緣,最后進入讀卡器。自動配置和配置沿著這個鏈向下進行,而讀卡器數(shù)據(jù)逆鏈而上進行篩選和傳播。
結(jié)束語本文研究了RFID服務(wù)器的七個隱含挑戰(zhàn):可伸縮性、可用性、安全性、互操作性、管理、消息傳遞和集成。本文還提供了一種參考架構(gòu),它包括整個生態(tài)系統(tǒng),其中RFID起著重要作用。還討論了常見的架構(gòu)差異(如:數(shù)據(jù)庫位于邊緣層)及其產(chǎn)生的結(jié)果。
總而言之,當(dāng)考慮RFID邊緣服務(wù)器時,重要的是要選擇一種輕量級的、可遠程管理和遠程自動配置的安全可靠并具有可伸縮性的RFID邊緣服務(wù)器。其它特定于RFID的關(guān)鍵考慮事項包括:邊緣服務(wù)器架構(gòu)如何解決高I/O和網(wǎng)絡(luò)帶寬問題,由密集的模式匹配所引發(fā)的極高的CPU占用量,以及這些如何與邊緣層的低CPU和內(nèi)存占用量要求相配合。事務(wù)性可靠的消息,消息的有序性,exactly-once消息傳遞保證,以及在斷開模式下執(zhí)行的能力,這些對選擇RFID服務(wù)器來說也是重要的考慮事項,特別是對于斷開模式操作。
本文的參考架構(gòu)和上述各注意事項在WebLogic RFID Server中均已實現(xiàn)。