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