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