3. 4 業務流程控制
基于RFID業務流程進行的定制開發,無法靈活應對業務流程的變更,同時也造成代碼冗余難以重用。為了縮短業務開發周期,需要提供一個可擴展、可重用的業務處理框架。本節內容闡述一種基于組件設計思想、結合規則引擎技術,將RFID流程控制程序抽象封裝成為可執行的業務組件,而進一步形成業務流程控制引擎的方案。業務流程控制引擎按照應用集成層的流程配置信息,與單據服務器交互獲取并寫回單據對象,根據數據處理模塊對執行預定義查詢語句所得過濾數據進行封裝后得到的業務數據,調用預先配置的業務組件,在這個過程中,可以通過合理組合業務組件及控制其觸發的條件,達到配置和優化業務流程的目的。在完成業務處理過程中,涉及任務調度、資源分配、數據持久化、流程配置、組件配置、單據獲取與寫回以及預警報告上傳到應用集成層等操作。
如圖6所示,業務引擎包括工作任務隊列、任務調度器、數據流數據緩沖池、規則解析及配置、結果處理組件管理等模塊。
(1)工作任務隊列。
工作任務描述一個由業務單據觸發的RFID業務過程,包括工作任務對應的業務單據、所占用的資源(數據緩沖池、硬件層服務實例、數據過濾層服務實例),工作任務有狀態(新建、就緒、運行、結束等)、優先級等屬性。工作任務隊列存儲中間件范圍內需要處理的工作任務列表,它接受一個任務調度器,為其提供工作任務調度策略。
(2)任務調度器。
負責在綁定的任務隊列中選取一個合適的工作任務,需要考慮工作任務的狀態、優先級,系統當前資源分配情況等因素,為任務分配資源,使其處于可運行狀態。進一步考慮,任務調度器還需要加入任務并發、重啟等策略。
(3)數據流緩沖池。
數據流緩沖池按任務分段存儲經過數據過濾層得到的RFID數據,通過緩沖持管理器對緩沖池的大小、數據緩沖段與任務映射關系、緩沖池資源分配等進行管理。
(4)規則引擎。
引入規則引擎的目的在于將業務規則的定義與實際代碼處理分離,從而減低系統的藕合度,從而保證中間件可以應付業務規則快速變化的環境。規則引擎的工作可以簡單描述為,在特定條件下觸發特定組件的調用,通常,這樣一條IF Then語句即可被理解成業務規則。
(5)規則解析器。
規則解析器負責解析預定義的業務規則,并根據業務規則運行任務。工作任務的執行分為RFID數據獲取、過濾(冗余刪除、條件匹配等)、處理三個過程,在引入Esper數據流技術后,數據獲取和過濾將并行執行,而數據處理過程則是在過濾結束后進行。
圖6 業務流程控制結構圖
3.5 RFID公共信息服務
公共信息服務模塊為外界提供RFID數據查詢接口,同時為EPCglobal提出的物聯網提供支持。主要通過實現一個本地的ONS子系統來提供該服務。遵循FPCglobal的標準,將ONS記錄分為EP+ws,EPC+epcis,EPC+html,EPC+xmlrpc等幾大類,分別用于通過WchScrvicc,FPCIS服務器、HTML網頁、遠程調用等方式來獲取單品信息,ONS解析電子產品碼與信息源服務器地址之間映射關系的原理在此不做詳述,具體可參考文獻。
圖7 ONS子系統結構圖
ONS子系統的結構由圖7描述,地址映射轉換器負責將EPC編碼轉換為符合ONS規范定義的URI,并傳遞給信息檢索器,信息檢索器將在本地ONS記錄緩存中尋找符合條件的記錄,若不存在這樣的記錄,檢索器將請求緩存器向上一級的ONS服務器檢索符合前述條件的記錄,緩存器會根據預定義的緩存機制緩存返回的ONS記錄,并根據結果返回策略向信息檢索器返回一條或多條ONS記錄,信息檢索器得到ONS記錄后,將解析記錄的類型并選擇相關程序調用,獲取并返回EPC編碼所表示單品的物流和信息流,比如對EPC+ecpcis的類型,調用記錄中包含的EPCIS服務器所提供的符合標準的查詢接口,獲取和返回RFID事件。
4 應用
本節將介紹通過集成中間件完成基于RFID技術的ERP采購入庫流程。標準的ERP采購入庫流程主要涉及的業務單據包括采購汀單、到貨單通知單以及采購入庫單,其中到貨通知單參照采購訂單生成,而采購入庫單則在倉庫處根據實際入庫情況生成,其中涉及各類人員對單據進行的審核操作在此不做詳述。將RFID技術應用在該業務流程中,關鍵點在于如何利用RFID技術的多目標、非接觸識別對入庫貨物進行統計和篩選,以創造出比傳統查貨方式更高的工作效率和準確率,進而達到優化流程的目的。
以用友UBFRP系統為例,通過該系統的EAI數據交換平臺,集成中間件的單據服務器以單據類型、時間作為查詢條件,將到貨通知單導出。由于U8系統的基礎數據已經被同步至中間件本地數據庫,因此單據服務器在解析該單據時,確切地知道通知單中需要進行入庫操作的存貨類別、數量、倉庫、對應采購汀單號等必要的信息,通過調用業務流程控制模塊提供的遠程接口,單據服務器可以將解析后的單據對象傳遞至該模塊。到貨通知單對象的到來將在業務流程控制模塊中創建擁有編號、類型等屬性的任務,如前面內容所述,該任務將被存儲在工作隊列中,并接收調度器的調度,在適當的時候被執行。調度器在調度任務時,需要從規則配置模塊獲取規則,根據規則中的定義為任務分配資源,包括使用的邏輯讀寫器、數據緩沖池、數據處理器以及結果處理組件初始化等,當所需資源準備好后,將規則和資源初始化規則引擎,由規則引擎完成流程的各個步驟以及控制集成中間件各模塊間的交互。在采購入庫流程中,可以定義如下規則:
其中,IncomingTask表示被調度器調度執行的任務,調度器需要負責初始化IncomingTask的狀態(Status)和資源(TResource),而資源則包括數據過濾器(DataFilterEnginc)和邏輯讀寫器(Readerl等。當規則引擎判斷任務的狀態為可運行時,首先觸發標簽數據的讀取(由組件Collect RFID Data完成),標簽數據讀取后交由數據過濾器dataFilterEngine進行數據過濾,過濾后的數據被組件ProcessData進行進一步封裝處理得到業務數據,其中還用到了預先分配的資源(taskRe-source)。最后,根據得到的業務數據對入庫產品的數量以及類別進行統計,得到入庫結果。如果準確無誤,調用組件equalResultHandler,在組件中可以定義回寫采購入庫單或者上傳RFID業務事件,否則調用notEquaIRcsultHandler,報告錯誤或者警告。上述的資源和組件定義在Spring.NET的Ioc容器中定義,給集成中間件提供了高可配置性和重用性。
集成中間件具備了傳統RFID中間件所需要的功能,重點強調與企業應用系統間的業務集成,通過良好的規則描述以及配合組件化策略,集成中間件能夠較好地適應企業業務流程的變更,這是其最大的特點與優勢。表1列出了其與傳統RFID中間件的異同。
表1 集成中間件與傳統RFID中間件的異同
5 結束語
本文闡述了一種分布式RFID集成中間件框架,并對中間件硬件服務器、單據服務器、數據處理、業務流程控制引擎等主要模塊的設計和實現做了進一步討論,最后以采購入庫流程為例說明中間件如何成功將RFID技術與用友UBFRP系統進行集成。RFID中間件的研究方向廣泛,RFID應用需要考慮諸多因素,如安全和性能等,限于作者的學識有限,本文并不能對所有RFID中間件需要分析和考慮的問題進行詳盡細致的闡述,希望已有研究基礎能夠給將來的工作帶來幫助。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/
本文標題:面向企業應用的RFID集成中間件框(下)