摘 要:簡述物聯網Savant中間件的工作原理,分析了目前Savant系統中存在的缺陷,并提出了相應的解決辦法。討論了網格技術的特點及與構造Savant系統緊密相關的技術細節和系統構建的思想,就基于網格技術構造可擴展的Savant系統進行研究。提出了一種基于網格技術的Savant系統體系結構,并分析了這個體系結構的特點及優勢。詳細介紹了Savant系統的內部模塊功能和交互方式,并介紹一個能夠滿足這種設計需求的Savant系統原型的功能特點及實現方法。
關鍵詞:物聯網;Savant中間件;網格技術
中圖分類號:TP311.11文獻標志碼:A
文章編號:1001-3695(2007)06-0292-03
基于互聯網和射頻技術的EPC(Electronic Product Code)系統,即實物物聯網(物聯網)是在計算機互聯網的基礎上,利用射頻識別(Radio Frequency Identification,RFID)、天線通信等技術,構造了一個實現全球物品信息實時共享的平臺。它將成為繼條碼技術之后,再次變革商品零售結算、物流配送及產品跟蹤管理模式的一項新技術。通過EPC系統不僅能夠對貨品進行實時跟蹤、而且能夠通過優化整個供應鏈給用戶提供支持,從而推動自動識別技術的快速發展并能夠大幅度提高全球消費者的生活質量。
Savant 是一個物聯網系統的中間件,用來處理從一個或多個解讀器發出的標簽流或傳感器數據(事件數據)。Savant是連接標簽解讀器和企業應用程序的紐帶,代表應用程序提供一系列計算功能,在將數據送往企業應用程序之前,它要對標簽數據進行過濾、總計和計數,壓縮數據容量。為了減少網絡流量,Savant 也許只向上層轉發它感興趣的某些事件或事件摘要[1]。
在IBM、Sun、沃爾瑪等全球83家跨國公司的支持下,于2003年完成了EPC系統技術的規模場地使用測試。2005年,EPCglobal正式頒布了EPC Network藍本《The EPCglobal Architecture Framework》[2]。其中將Auto-ID Savant Specification 1.0[3]作為Savant中間件構造的參考實現規范。根據相關規范,包括IBM、Sun等國際著名IT公司,均在自己的技術基礎上,提出了相應的EPC Network解決方案,并且在包括航空、物流、生產制造等多個領域投入實際應用,取得了一定的商業效果。物聯網技術在我國起步較晚,但是發展很快。以廣州、上海為首的大中城市,均開始了EPC Network的構建和推廣工作,并且有了一些成功的商業案例。
但是,作為EPC Network的關鍵組件,Savant模塊的構建和實現始終沒有一個完善的解決方案。主要體現在以下幾點:
(1)系統的封閉性。各大廠商對Savant甚至EPC Network所提出的解決方案,均和自己已有的技術緊密耦合,這使得構建出的系統和外部世界缺乏交互能力。在Web Service技術和網格平臺大量應用的狀況下,這種構建封閉式系統的方式制約了系統的擴展。
(2)系統實現的不確定性。Savant規范在一些部分,如Savant之間的通信方式等方面還沒有作出完善的規定[3],使得對規范的理解和實現出現困難。
解決上述不足的一個有效辦法是,實現基于網格平臺的Savant系統,屏蔽系統實現的內部技術細節,充分利用Web Service技術,采用統一的通信方式,并實現系統良好的可擴展性。
在多數Savant系統中,包括了邊界節點(Edge Savant)和內部節點(Internal Savant),節點多為異地分布,系統采用典型的分布式計算方式。網格技術作為SOA(Service-Oriented Architecture)思想的典型體現,為構建分布式系統提供了底層的技術支持。網格的主要任務是在動態變化的網絡環境中共享資源和協同解決問題。網格對現有互聯網進行了非常好的管理,它將分散在不同地理位置的資源虛擬成為一個整體的信息系統,實現計算資源、存儲資源、數據資源、信息資源、軟件資源、通信資源、知識資源和專家資源等的全面共享。GT4(Globus Toolkit 4)則為分布式系統的構建提供了成熟的平臺。
在具體應用上,基于GT4研發的許多系統均取得了良好的效果[4]。作為分布式計算思想的具體應用,Savant系統的實現可充分利用GT4提供的許多服務資源,有效管理系統內部資源,協調和外部系統之間的交互?;赟OA思想對系統進行設計和實現,使得系統具有良好的可擴展性;通過對Web Service技術的應用,可實現Savant內部各個節點間以及與外部各組件間通信方式的統一;對WSRF(Web Service Resource Frame)規范的實現,使得基于GT4平臺可以提供有狀態的服務,利用這一特性,內部節點可以保存當前的相關狀態,供外部的服務消費模塊調用和修改,方便了外部系統對Savant模塊的控制。
1 基于網格技術的Savant系統方案
在現有的相關標準基本確定的情況下,實現一種可擴展的Savant系統并實現相關標準設定的業務邏輯,有效的途徑是改進Savant系統體系結構,同時以網格作為基礎平臺,采用SOA的設計思想。
1.1 可擴展的新型Savant系統體系結構
Savant系統由邊界節點(ES)和內部節點(IS)構成。其中內部節點間多為異地分布,這一特點決定了分布式的系統架構應該是一種必然的選擇,而基于網格技術的體系結構則能夠最大限度地發揮分布式計算的優勢。為此,筆者提出了這種新型的Savant體系結構(圖1)。
從層次上看,Savant系統的體系結構是一種樹型結構,邊界節點從屬于作為其父節點的內部節點,而內部節點之間也存在父子關系。邊界節點與RFID標簽的解讀器相連。解讀器不停地從標簽中采集EPC 數據,并向Savant 傳輸。每次識讀,Savant 都要保存相關信息,內部節點從其下屬邊界節點中采集EPC 數據。還負責合計EPC數據,并且與外部的企業信息系統、信息服務系統以及ONS(Object Name Service)服務系統進行通信。
從交互性上看,由于邊界節點與其父節點會在同一個地點,這兩者間并不建立Web Service通信,從而保證信息處理的速度;而內部節點與其父節點建立通信聯系,通過網格環境提供的各種服務,最大限度地保證信息的安全和計算資源的高效利用。內部節點與外部環境之間通過Web Service相連,保證了當需要進行業務邏輯調整時系統架構良好的可擴展性。
1.2 網格技術的應用
作為當前最流行的系統架構思想,SOA思想提倡利用顯式的與實現無關的接口來定義服務,利用強調位置透明性和可互操作性的通信協議,封裝可重用業務功能服務的定義[5],為系統的可擴展性提供了良好的支持。網格技術作為SOA思想的典型實現,為搭建面向服務的分布式系統提供了良好的技術支持。網格技術在理論上進一步成熟的同時,GT4對新的網格技術規范提供的完善的實現,為系統的搭建提供了技術平臺。
本文的Savant系統需要提供有狀態的Web Service,用于協調系統內部各類資源并保存相應的狀態[6]。對于Savant內部節點間的交互操作,可以充分利用GT4對WSRF的實現,維護Web Service交互時服務的狀態,從而確保對各個節點狀態的控制和調整;同時,通過Web Service實現基于SOAP的消息傳輸機制,統一了內部節點間的通信格式。
2 基于網格技術的Savant系統的設計與實現方法
本文的Savant系統通過利用GT4對WSRF規范的實現,達到了在Web Service環境下保持系統相應狀態的目的,為外部系統對Savant模塊進行交互提供了便利。下面對本文的Savant系統的功能結構進行闡述。
2.1 功能結構
邊界節點中,RFID識讀器用于接收RFID標簽的射頻信息,信息由數據處理模塊初步處理后,通過數據傳輸接口向相應的內部節點傳送。即時內存數據結構(RIED)模塊能夠在保證存取速度的情況下,作為上傳和下載數據的緩存,而核心模塊提供邊界節點的相關信息,控制接口通過這些信息,按照上層內部節點的命令,對邊界節點的業務動作進行控制(圖2)。
圖1 網格環境下的新型的Savant體系結構圖2 Savant系統邊界節點
內部節點由事件管理系統(EMS)、任務管理系統(TMS)、接口模塊,以及RIED和核心模塊組成(如圖3)。
圖3 Savant系統內部節點
事件管理系統(EMS)由邊界節點(ES)控制接口、數據過慮器、數據接口以及事件隊列組成。數據接口和數據過濾器用于接收和處理從邊界節點得到的信息。事件隊列作為事件流的緩存,是一個異步排隊系統,但采用同步機制處理多種解讀器事件記錄。為保證信息傳輸的速度,EMS與邊界節點之間并不采用Web Service的方式進行聯系,而是通過互通IP地址而直接相連。
任務管理系統(TMS)由數據傳輸接口、控制命令接口、任務管理器以及SOAP服務模塊組成。負責管理由上級Savant 或企業應用程序發送到本級Savant 的任務。一般情況下,一個任務可以等價于多任務系統中的進程。TMS 使分布式Savant 的維護變得簡單,企業可以僅僅通過在一組類服務器保存最新任務和在Savant中恰當地安排任務進度來維護Savant。任務管理器負責運行和維護Savant 中的任務。這些任務代表用戶在Savant端運行。SOAP 服務器負責表明任務管理器的功能和接口,它使任務管理器成為可以被所有系統統一訪問的SOAP 服務。通過提交包含任務管理器表述詳細辦法的簡單配置描述符文檔,可以獲得接口配置,隨著任務管理器的成熟和它的API 的擴展,可通過增加新表述辦法來升級描述符。
接口模塊由面向企業的接口,信息服務接口以及ONS服務接口構成,它是Savant系統和外界交互的通道。基于網格技術,接口模塊向外部環境提供有狀態的Web Service,屏蔽了系統內部實現的差異,統一了系統與外部環境之間的通信方式。由于采用了SOA的設計思想,系統變得靈活而易于擴展,當外部環境的業務邏輯改變時,只要Web Service接口不變,Savant就無須作調整。將GT4作為基礎平臺,能夠充分利用WSRF對Savant系統的資源進行協調。
2.2 系統實現方法
根據上文的分析和實際的需求,實現這樣一個分布式的Savant系統需要考慮并解決以下問題:
(1)系統的響應速度。Savant系統中,尤其是邊界節點,一般部署在超市、倉庫等地點,對信息處理響應的速度要求比較高。為此,系統采用了內存數據庫,提高數據的存取速度,通過這些邊界節點的直接父節點循環讀取它們內存數據庫中的相應數據,將這些RFID數據讀入內部節點,作進一步的處理。同時,系統采用緩存策略,將熱門商品信息提前緩存在本地,最大限度地提高了系統的相應速度。在內部節點中,通過設計良好的數據結構,實現事件隊列和任務隊列,實現事件流和任務流的緩存。
(2)服務設計的粒度。系統的內部節點暴露的服務接口的基于網格技術,作為SOA思想的具體應用,需要考量服務粒度的設計。系統采用將服務分類的策略,對于內部節點之間使用的服務,采用較細粒度的設計方式,以保證內部節點間控制功能的細致性,本文設計的系統在內部節點之間的交互不會涉及大量數據的交互,所以采用SOAP進行消息傳遞;同時,對于向外部環境暴露的服務采用粗粒度的設計方式,保證業務邏輯的清晰性,以及擴展業務邏輯時的便捷性。
(3)客戶端升級問題。Savant系統的邊界節點通常需要提供顯示界面供用戶操作,而某些內部節點也需要提供用戶界面便于管理。隨著業務邏輯的改變或者系統的升級,客戶端的升級問題必須考慮。系統采用Java Swing技術向用戶提供客戶端界面,并采用Java WebStar技術解決客戶端在線升級問題,使得系統的更新更加便捷。
3 總結
本文簡述了物聯網的工作原理,提出了一個物聯網Savant中間件的系統模型,以GT4作為基礎平臺,采用SOA的設計思想,在實現了Savant規范的同時,達到了系統良好的可擴展性。同時,通過良好的設計,系統達到了良好的響應速度,解決了客戶端實時升級的問題。本文給出了系統實現的方法,以及在設計實現過程中需要注意和解決的問題,給出了將網格技術和Savant規范的實現相結合的方法。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。