2 關(guān)鍵技術(shù)
2.1 基于ESB的數(shù)據(jù)集成技術(shù)
ESB為面向服務(wù)的集成提供了一個(gè)完備的基礎(chǔ)結(jié)構(gòu),結(jié)合了Web服務(wù)、XSLT(Extensible Stylesheet Language Transformations)以及對(duì)編排技術(shù)的支持等。ESB提供了事件驅(qū)動(dòng)和文檔導(dǎo)向的處理模式,以及分布式的運(yùn)行管理機(jī)制,它支持基于內(nèi)容的路由和過濾,具備了復(fù)雜數(shù)據(jù)的傳輸能力,并可以提供一系列的標(biāo)準(zhǔn)接口。ESB對(duì)信息進(jìn)行了適當(dāng)?shù)目刂坪吞幚,滿足了面向服務(wù)架構(gòu)中安全性、策略性、可靠性和統(tǒng)計(jì)需求。使用通信協(xié)議負(fù)責(zé)服務(wù)之間所有的信息調(diào)控、流向和轉(zhuǎn)換。ESB采用基于XML的消息格式,支持如Web服務(wù)、JMS(Java Message Service)等標(biāo)準(zhǔn),使服務(wù)的實(shí)現(xiàn)和服務(wù)通信相分離,有很好的開放性和可擴(kuò)展性。集成的各個(gè)應(yīng)用之間可以通過ESB發(fā)送和接收消息,異步的產(chǎn)生消息,這些都使得ESB成為面向服務(wù)架構(gòu)、面向消息架構(gòu)以及事件驅(qū)動(dòng)架構(gòu)的良好解決方案。
本平臺(tái)中,首先根據(jù)集成需求將各個(gè)集成操作抽象成為定義良好的服務(wù),如CAD系統(tǒng)的文件BOM讀取服務(wù),ERP系統(tǒng)的目標(biāo)BOM寫入服務(wù),以備ESB調(diào)用;其次,集成需要完成異構(gòu)系統(tǒng)不同數(shù)據(jù)之間的格式轉(zhuǎn)換,以便共享數(shù)據(jù)。根據(jù)BOM數(shù)據(jù)格式的要求進(jìn)行數(shù)據(jù)處理,將源BOM數(shù)據(jù)格式轉(zhuǎn)換成目標(biāo)BOM數(shù)據(jù)格式,ESB根據(jù)轉(zhuǎn)換文件完成數(shù)據(jù)轉(zhuǎn)換;同時(shí),ESB根據(jù)用戶需求,通過基于內(nèi)容的路由機(jī)制實(shí)現(xiàn)集成邏輯;最終,用戶配置的監(jiān)聽機(jī)制觸發(fā)定義好的ESB,實(shí)現(xiàn)兩系統(tǒng)之間的數(shù)據(jù)集成和共享。
2.2 基于數(shù)據(jù)事件流的數(shù)據(jù)處理
信息共享的一個(gè)重要的前提就是數(shù)據(jù)轉(zhuǎn)換,即將CAD系統(tǒng)和ERP系統(tǒng)中不同數(shù)據(jù)結(jié)構(gòu)的信息相互轉(zhuǎn)換,這樣才能實(shí)現(xiàn)數(shù)據(jù)的一致性和實(shí)時(shí)共享。然而手工硬編碼的方式去完成數(shù)據(jù)結(jié)構(gòu)的轉(zhuǎn)換是不可取的,既要耗費(fèi)大量精力又缺乏平臺(tái)通用性。在這里,采用數(shù)據(jù)轉(zhuǎn)換引擎進(jìn)行數(shù)據(jù)轉(zhuǎn)換,不僅支持基于XSLT的XML格式之間的轉(zhuǎn)換,還支持CSV到XML、XML到CSV、Java到XML、XML到Java等多種數(shù)據(jù)轉(zhuǎn)換形式,能夠?yàn)镋SB提供靈活的數(shù)據(jù)轉(zhuǎn)換服務(wù),同時(shí)利于平臺(tái)數(shù)據(jù)轉(zhuǎn)換功能的擴(kuò)展。本平臺(tái)中,數(shù)據(jù)通信采用的是XML,數(shù)據(jù)結(jié)構(gòu)的表示和轉(zhuǎn)換采用的是)ML Schema和XSLT。XML Schema可以定義BOM表中的元素、屬性,定義子元素的次序及數(shù)目,定義元素是否為空,是否可包含文本,定義元素和屬性的數(shù)據(jù)類型以及屬性的默認(rèn)值等。XSLT作為一種基于XML的語言,在數(shù)據(jù)轉(zhuǎn)換引擎框架的支撐下用于將源BOM的XML文檔轉(zhuǎn)換成目標(biāo)BOM的XML文檔。在本平臺(tái)中,XSLT正是發(fā)揮了轉(zhuǎn)換數(shù)據(jù)的重要作用,使CAD系統(tǒng)和ERP系統(tǒng)中不同結(jié)構(gòu)的BOM信息得以共享。集成數(shù)據(jù)流如圖2所示。
圖2 集成數(shù)據(jù)流圖
數(shù)據(jù)集成時(shí),系統(tǒng)自動(dòng)載入雙方的Schema文件,生成XSLT轉(zhuǎn)換文件。轉(zhuǎn)換服務(wù)啟動(dòng)時(shí),數(shù)據(jù)轉(zhuǎn)換引擎將結(jié)構(gòu)化的數(shù)據(jù)流轉(zhuǎn)變成事件流,然后進(jìn)行分析,生成最終XML結(jié)果。
2.3 基于Rete算法的規(guī)則引擎與內(nèi)容路由
本平臺(tái)采用基于Rete算法的規(guī)則引擎分離業(yè)務(wù)邏輯。Rete算法是目前效率最高的前向鏈形推理算法,核心思想是將分離的匹配項(xiàng)根據(jù)內(nèi)容動(dòng)態(tài)的構(gòu)造匹配樹,減少重復(fù)操作,解決時(shí)間冗余的問題,從而大大減少計(jì)算量,提高計(jì)算效率。Rete算法的狀態(tài)保存和節(jié)點(diǎn)共享機(jī)制使其優(yōu)于傳統(tǒng)的模式匹配算法。
平臺(tái)基于內(nèi)容的路由采用的是Drools規(guī)則引擎,它是一種基于Rete算法的高效規(guī)則引擎,配有類似Java語言的規(guī)則描述語言,支持非XML的本地語言編寫規(guī)則,能描述較為復(fù)雜的邏輯,并且能用Excel對(duì)規(guī)則進(jìn)行管理,大大方便了規(guī)則的管理與維護(hù)。執(zhí)行邏輯如圖3所示。
圖3 Drools工作模式簡(jiǎn)圖
“規(guī)則庫”是編好的Drools規(guī)則集合,待進(jìn)行匹配的數(shù)據(jù)稱為“事實(shí)”,“模式匹配器”的作用是對(duì)新的數(shù)據(jù)和被修改的數(shù)據(jù)進(jìn)行規(guī)則的匹配。當(dāng)一條規(guī)則被完全匹配,這條規(guī)則和與其匹配的事實(shí)將激活被放入“規(guī)則執(zhí)行議程”,由議程來負(fù)責(zé)安排執(zhí)行。
進(jìn)行BOM集成時(shí),業(yè)務(wù)過程較為復(fù)雜,Drools規(guī)則引擎將業(yè)務(wù)邏輯和業(yè)務(wù)實(shí)現(xiàn)完全分離,解決了集成業(yè)務(wù)的維護(hù)和擴(kuò)展問題。如在平臺(tái)的實(shí)現(xiàn)中,對(duì)于不需要審核的BOM信息,存入平臺(tái)備份并直接導(dǎo)入目標(biāo)ERP系統(tǒng);對(duì)于需要審核的數(shù)據(jù)則先存人平臺(tái),等待審核,審核結(jié)束之后才能導(dǎo)入目標(biāo)系統(tǒng)。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:模具企業(yè)CAD與ERP集成系統(tǒng)關(guān)鍵技術(shù)