隨著信息技術(shù)的不斷發(fā)展和企業(yè)業(yè)務(wù)的多樣化,企業(yè)為了增強(qiáng)自身的競(jìng)爭(zhēng)優(yōu)勢(shì),在信息化建設(shè)中投入了大量的資金和人力。企業(yè)使用的軟件及擁有的內(nèi)部系統(tǒng)越來(lái)越多,比如PDM系統(tǒng)、CAPP系統(tǒng)、ERP系統(tǒng)等,這些系統(tǒng)之間相互交叉,有著重復(fù)的信息和數(shù)據(jù),這便催生了EAI(EntERPrise Application Integration)即企業(yè)應(yīng)用集成的產(chǎn)生。其中,PDM和CAPP之間的集成作為企業(yè)應(yīng)用集成的重要組成部分越來(lái)越被企業(yè)所重視。
傳統(tǒng)PDM和CAPP集成方式不外乎點(diǎn)對(duì)點(diǎn)集成和基于中間件的集成。點(diǎn)對(duì)點(diǎn)集成方案的基礎(chǔ)架構(gòu)較為脆弱,每一個(gè)連接都需要單獨(dú)開(kāi)發(fā)相應(yīng)的接口程序,缺少靈活性,并且很難保證數(shù)據(jù)的及時(shí)傳遞和一致性,這種解決方案只能構(gòu)建在各自系統(tǒng)中,應(yīng)用之間的藕合度較高,實(shí)際應(yīng)用范圍較為狹窄;谥虚g件的PDM和CAPP集成在靈活性和擴(kuò)展性方面都較點(diǎn)對(duì)點(diǎn)集成好,利用分布式對(duì)象技術(shù)也能很好地實(shí)現(xiàn)分布式計(jì)算,而且也取得了相當(dāng)大的收益。但是在Internet環(huán)境下,由于不同廠(chǎng)商提供的組件各自有一套獨(dú)立體系結(jié)構(gòu)和私有協(xié)議,不同組件之間無(wú)法進(jìn)行直接的數(shù)據(jù)交換和數(shù)據(jù)共享,因而組件之間互操作十分不便,實(shí)施起來(lái)通常會(huì)涉及到使用私有集成適配器,這必將導(dǎo)致更高的費(fèi)用和復(fù)雜的連接性,從而限定了它們?cè)贗ntemet下的廣泛應(yīng)用。
傳統(tǒng)的PDM和CAPP集成成本高,而且不具備靈活性,另外,該集成方法也不能很好地支持企業(yè)應(yīng)用系統(tǒng)隨著業(yè)務(wù)需求的變化而自由調(diào)整。在不改變?cè)衅髽I(yè)PDM和CAPP應(yīng)用系統(tǒng)的基礎(chǔ)上,基于面向服務(wù)架構(gòu)(SOA)的企業(yè)應(yīng)用集成方案開(kāi)始為越來(lái)越多的IT人員所青睞,本文結(jié)合筆者在某航空企業(yè)所做的PDM和CAPP集成工作來(lái)具體闡述這一方案。
1 基于SOA的PDM/CAPP系統(tǒng)集成架構(gòu)
SOA的核心理念就是服務(wù),是組織服務(wù)的一種架構(gòu)模式。SOA通過(guò)應(yīng)用組件和傳輸協(xié)議的松散耦合(服務(wù)的傳輸協(xié)議透明化),服務(wù)的即時(shí)綁定(服務(wù)位置的透明化),從而實(shí)現(xiàn)業(yè)務(wù)組件虛擬化,造就一個(gè)虛擬集成架構(gòu)或者集成平臺(tái)服務(wù)總線(xiàn),這樣使服務(wù)集成不受任何限制,可以以服務(wù)組件形式同時(shí)集成現(xiàn)有PDM和CAPP系統(tǒng)的各個(gè)功能模塊,以及集成將來(lái)開(kāi)發(fā)的其它新功能模塊,同時(shí)也可以根據(jù)企業(yè)的需求隨時(shí)更換這些服務(wù)組件。
為了解決CAPP的某些管理功能與PDM的管理功能之間存在的重疊和沖突,CAPP保留工藝設(shè)計(jì)、工藝知識(shí)管理、工藝過(guò)程管理等一些原有功能,而將剩余管理功能部分與PDM系統(tǒng)進(jìn)行集成,充分利用PDM系統(tǒng)完備而強(qiáng)大的管理功能,在傳統(tǒng)PDM和CAPP系統(tǒng)集成的基礎(chǔ)上,提出了如圖1所示的CAPP與PDM的SOA集成解決方案。
實(shí)現(xiàn)基于SOA框架下的PDM和CAPP系統(tǒng)集成,需要在分析企業(yè)相關(guān)需求的前提下,經(jīng)過(guò)一定量的定制,構(gòu)建滿(mǎn)足企業(yè)實(shí)際要求的集成架構(gòu);赟OA的PDM/CAPP集成架構(gòu)需要解決以下幾個(gè)關(guān)鍵問(wèn)題:
圖1 CAPP與PDM集成的SOA解決方案
(1)CAPP系統(tǒng)需要及時(shí)從PDM系統(tǒng)獲得產(chǎn)品的結(jié)構(gòu)信息。目前多數(shù)企業(yè)都是以BOM的形式來(lái)描述產(chǎn)品結(jié)構(gòu),因此CAPP系統(tǒng)需要根據(jù)PDM系統(tǒng)BOM的變化及時(shí)更新自己的BOM。在之前的CAPP與PDM集成系統(tǒng)當(dāng)中,CAPP與PDM系統(tǒng)間有特定的接口,一旦PDM系統(tǒng)發(fā)生變化,CAPP與PDM系統(tǒng)之間的接口也要根據(jù)PDM系統(tǒng)的變化進(jìn)行相應(yīng)的修改,繁瑣而復(fù)雜。采用SOA解決方案以后,CAPP系統(tǒng)要獲取PDM系統(tǒng)中的產(chǎn)品BOM,所做的工作就是通過(guò)企業(yè)的私有服務(wù)中心來(lái)查找PDM系統(tǒng)發(fā)布的產(chǎn)品結(jié)構(gòu)信息服務(wù),然后訪(fǎng)問(wèn)PDM系統(tǒng)的相關(guān)模塊,并把得到的BOM信息導(dǎo)入到自己的系統(tǒng)中,PDM系統(tǒng)內(nèi)部的變化不會(huì)牽扯到CAPP系統(tǒng)的改變。
(2)CAPP系統(tǒng)還需要及時(shí)從PDM系統(tǒng)獲得用戶(hù)信息,以便約束特定用戶(hù)對(duì)CAPP的操作權(quán)限。CAPP系統(tǒng)通過(guò)企業(yè)的私有服務(wù)中心來(lái)查找PDM系統(tǒng)發(fā)布的用戶(hù)信息服務(wù),然后訪(fǎng)問(wèn)PDM系統(tǒng)的相關(guān)模塊,并把得到的用戶(hù)信息導(dǎo)人自己的系統(tǒng)中。
(3)PDM系統(tǒng)需要及時(shí)獲取CAPP編輯好的工藝文件的信息,例如工藝文件編號(hào),以便更系統(tǒng)地管理CAPP生成的工藝文件。PDM系統(tǒng)根據(jù)自己所需通過(guò)企業(yè)私有服務(wù)中心來(lái)查找CAPP系統(tǒng)發(fā)布的工藝文件信息服務(wù),然后通過(guò)該服務(wù)訪(fǎng)問(wèn)CAPP系統(tǒng)以獲取工藝文件信息。
經(jīng)過(guò)上述分析后,基于SOA來(lái)集成PDM和CAPP所做的主要工作就是創(chuàng)建產(chǎn)品結(jié)構(gòu)信息服務(wù)、用戶(hù)信息服務(wù)、工藝文件信息服務(wù)3個(gè)服務(wù)模塊,然后將這3個(gè)模塊以“插拔式”方式加入服務(wù)總線(xiàn),給PDM或者CAPP系統(tǒng)調(diào)用即可。由于3種服務(wù)都是以“插拔式”的方式加入服務(wù)總線(xiàn),所以可以隨時(shí)更新這些服務(wù)。
2 基于XML的BOM描述
PDM和CAPP系統(tǒng)集成需要交互各自的BOM信息,事實(shí)上在產(chǎn)品的全生命周期中,BOM貫穿了企業(yè)生產(chǎn)活動(dòng)的始終,通過(guò)BOM將同產(chǎn)品相關(guān)的數(shù)據(jù)、過(guò)程、人員組織起來(lái),就可以將產(chǎn)品生命周期中不同的階段和過(guò)程進(jìn)行連接并實(shí)現(xiàn)信息和過(guò)程的集成。因此,BOM不僅是連接CAPP和PDM系統(tǒng)的橋梁和紐帶,而且是制造企業(yè)的基礎(chǔ)數(shù)據(jù),是PDM和CAPP信息集成的主要環(huán)節(jié),BOM集成完善以后,剩余的工藝文件信息以及用戶(hù)信息等,可以根據(jù)BOM表輕而易舉地組織起來(lái)。
BOM是以數(shù)據(jù)格式來(lái)描述產(chǎn)品結(jié)構(gòu)的文件,是定義產(chǎn)品結(jié)構(gòu)的技術(shù)文件。PDM系統(tǒng)和CAPP系統(tǒng)有各自的BOM,存在形式不一樣,不可能直接拿來(lái)交互,為此必須選擇一種中間文件作為BOM信息的載體。XML語(yǔ)言由于其良好的靈活性以及獨(dú)立于具體的操作平臺(tái)和應(yīng)用系統(tǒng),成為了BOM信息載體的首選。選用XML作為BOM信息的數(shù)據(jù)載體,PDM和CAPP系統(tǒng)各自把自己的BOM數(shù)據(jù)轉(zhuǎn)換成XML格式,通過(guò)集成框架進(jìn)行數(shù)據(jù)交換,從而實(shí)現(xiàn)CAPP系統(tǒng)與PDM的數(shù)據(jù)集成。在某航空企業(yè)以XML語(yǔ)言書(shū)寫(xiě)的BOM結(jié)構(gòu)樹(shù)導(dǎo)出文件如下:
產(chǎn)品BOM一個(gè)典型的特點(diǎn)是其具有層次性,在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)中存儲(chǔ)起來(lái)相當(dāng)復(fù)雜,存在大量冗余數(shù)據(jù),并且難以保證數(shù)據(jù)的一致性和完整性,而用XML語(yǔ)言來(lái)存儲(chǔ)BOM信息就不一樣了,XML語(yǔ)言的層次性正好和產(chǎn)品BOM的層次性對(duì)應(yīng)起來(lái),可以保證產(chǎn)品BOM信息的一致性和完整性。用XML語(yǔ)言來(lái)存儲(chǔ)產(chǎn)品BOM信息時(shí)擴(kuò)充和修改起來(lái)也非常方便,因此選用XML語(yǔ)言作為產(chǎn)品BOM信息的載體。
3 基于Web Service和XML的BOM轉(zhuǎn)換模型
將BOM信息用XML語(yǔ)言的形式來(lái)表示,解決了在PDM和CAPP系統(tǒng)之間進(jìn)行BOM交互的基本問(wèn)題,而SOA是一個(gè)概念,一種理念,一種模型,要實(shí)現(xiàn)該模型則需要一種與之相對(duì)應(yīng)的技術(shù)手段。使用標(biāo)準(zhǔn)XML協(xié)議的Web Services技術(shù)使服務(wù)平臺(tái)、語(yǔ)言和發(fā)布者能夠互相獨(dú)立,并以一種高度靈活和自動(dòng)化方式組織交互活動(dòng),建立起基礎(chǔ)牢固的系統(tǒng)應(yīng)用集成,是系統(tǒng)集成解決方案的一個(gè)理想的選擇。這也符合SOA的初衷,很好地屏蔽了兩種平臺(tái)的技術(shù)細(xì)節(jié),實(shí)現(xiàn)業(yè)務(wù)和技術(shù)的解耦,PDM與CAPP集成方案中基于Web Service和XML的BOM轉(zhuǎn)換模型如圖2所示。
圖2 基于Web Service和XML的BOM信息交互模型
為實(shí)現(xiàn)BOM信息在PDM系統(tǒng)和CAPP系統(tǒng)之間的交互,需要對(duì)PDM系統(tǒng)和CAPP系統(tǒng)的產(chǎn)品結(jié)構(gòu)模塊進(jìn)行Web Service封裝,用Web服務(wù)描述語(yǔ)言對(duì)PDM系統(tǒng)所提供的API接口服務(wù)進(jìn)行描述,形成WSDL接口文件,并將其發(fā)布到服務(wù)注冊(cè)中心。
CAPP系統(tǒng)想要從PDM中獲取設(shè)計(jì)BOM,首先要到企業(yè)私有服務(wù)注冊(cè)中心查找并發(fā)現(xiàn)PDM系統(tǒng)發(fā)布的信息服務(wù),此時(shí)CAPP作為PDM系統(tǒng)Web Service的服務(wù)請(qǐng)求方,通過(guò)Web Services平臺(tái)發(fā)送XML格式的SOAP消息給PDM的Web Services平臺(tái),PDM的Web Services平臺(tái)通過(guò)數(shù)據(jù)交換封裝接口解析CAPP系統(tǒng)傳遞過(guò)來(lái)的XML格式的消息,并轉(zhuǎn)換為PDM內(nèi)部數(shù)據(jù)格式,PDM系統(tǒng)根據(jù)得到的數(shù)據(jù)來(lái)查找PDM的產(chǎn)品信息數(shù)據(jù)庫(kù),然后通過(guò)數(shù)據(jù)交換封裝接口把查詢(xún)結(jié)果由PDM系統(tǒng)內(nèi)部的數(shù)據(jù)格式轉(zhuǎn)換成XML格式,并把得到的XML數(shù)據(jù)通過(guò)Web Services封裝成SOAP消息傳回給CAPP系統(tǒng)的Web Service平臺(tái),CAPP系統(tǒng)通過(guò)數(shù)據(jù)交換封裝接口,把得到的XML格式的結(jié)果轉(zhuǎn)換成CAPP系統(tǒng)內(nèi)部的數(shù)據(jù)格式,此時(shí)即得到了CAPP系統(tǒng)所需的設(shè)計(jì)BOM。反之,PDM要獲取CAPP的工藝BOM與制造BOM時(shí)也是同樣的原理,這樣就實(shí)現(xiàn)了CAPP與PDM在BOM數(shù)據(jù)上的集成。
4 企業(yè)服務(wù)總線(xiàn)(ESB)技術(shù)
Web Service技術(shù)為實(shí)現(xiàn)基于SOA的PDM和CAPP的集成提供了一個(gè)堅(jiān)實(shí)的基礎(chǔ),然而Web Service技術(shù)僅僅是實(shí)現(xiàn)了PDM系統(tǒng)和CAPP系統(tǒng)之間服務(wù)請(qǐng)求者和服務(wù)提供者之間點(diǎn)對(duì)點(diǎn)的連接。
圖3所示是一種點(diǎn)到點(diǎn)的交互方式,雖然這有別于傳統(tǒng)集成的點(diǎn)到點(diǎn)集成方式,克服了傳統(tǒng)點(diǎn)到點(diǎn)集成方式耦合度高等缺點(diǎn),但是在一個(gè)擁有多個(gè)服務(wù)請(qǐng)求者和服務(wù)提供者的PDM和CAPP集成系統(tǒng)環(huán)境當(dāng)中,這種點(diǎn)對(duì)點(diǎn)的連接方式使集成架構(gòu)脆弱,靈活性也不高。因此在用SOA架構(gòu)實(shí)現(xiàn)PDM和CAPP系統(tǒng)之間的集成時(shí),還需要一個(gè)中間層,它能夠幫助實(shí)現(xiàn)在SOA架構(gòu)中不同服務(wù)之間的智能化管理,即企業(yè)服務(wù)總線(xiàn)(ESB)技術(shù),如圖4所示。
圖3 直接連接
圖4 使用ESB連接
ESB在本質(zhì)上就是一種可以提供可靠的、有保證的消息技術(shù)的新型中間件技術(shù)。更重要的是,充當(dāng)“緩沖器”的ESB負(fù)責(zé)在諸多服務(wù)之間轉(zhuǎn)換業(yè)務(wù)邏輯和數(shù)據(jù)格式,這種功能使服務(wù)邏輯與服務(wù)本身之間相分離,從而使不同的應(yīng)用程序可以同時(shí)使用同一服務(wù),不用在應(yīng)用程序或者數(shù)據(jù)發(fā)生變化時(shí),改動(dòng)服務(wù)代碼。ESB在該集成架構(gòu)中主要完成以下幾件工作。
(1)PDM系統(tǒng)和CAPP系統(tǒng)之間相關(guān)服務(wù)的消息路由,以請(qǐng)求到正確的服務(wù)提供者。
(2)對(duì)服務(wù)提供者進(jìn)行注冊(cè)命名,對(duì)服務(wù)請(qǐng)求者進(jìn)行尋址管理。
(3)服務(wù)請(qǐng)求者與服務(wù)之間傳輸協(xié)議的轉(zhuǎn)換。
(4)服務(wù)請(qǐng)求者與服務(wù)之間消息格式的轉(zhuǎn)換。
(5)處理各自來(lái)自不同業(yè)務(wù)模塊的事件。
(6)保證服務(wù)質(zhì)量的安全可靠。
ESB為PDM和CAPP在SOA環(huán)境下集成提供了與企業(yè)需要保持一致的基礎(chǔ)架構(gòu),通過(guò)ESB,PDM和CAPP之間并不直接交互服務(wù),而是通過(guò)一個(gè)總線(xiàn)交互,該總線(xiàn)提供虛擬化和管理功能來(lái)實(shí)現(xiàn)和擴(kuò)展SOA。結(jié)合筆者在某航空企業(yè)基于SOA集成PDM和CAPP所做的工作,ESB的基本功能模型如圖5所示。
圖5 ESB的基本功能模型圖
ESB就是在SOA架構(gòu)中實(shí)現(xiàn)服務(wù)間智能化集成與管理的中介,它的出現(xiàn)改變了直接連接的PDM和CAPP系統(tǒng)的集成架構(gòu),又可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價(jià)的解決方案,同時(shí)還可以消除PDM和CAPP系統(tǒng)之間的技術(shù)差異,實(shí)現(xiàn)了不同服務(wù)之間的通信與整合。
5 結(jié)束語(yǔ)
本文針對(duì)傳統(tǒng)PDM和CAPP集成解決方案中的不足,基于SOA思想,提出了一種面向服務(wù)的PDM和CAPP系統(tǒng)集成架構(gòu)。該架構(gòu)具有SOA的松散耦合、可重用和高度可集成等特征,能有效地集成企業(yè)現(xiàn)有資源,提高業(yè)務(wù)敏捷能力和消除“信息孤島”。SOA技術(shù)架構(gòu)是企業(yè)應(yīng)用需求和信息化發(fā)展的必然產(chǎn)物,其表現(xiàn)出來(lái)的靈活性與優(yōu)越性毋庸置疑,它也是新興的PDM和CAPP集成技術(shù)方案。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于SOA的PDM與CAPP系統(tǒng)集成技術(shù)研究
本文網(wǎng)址:http://www.ezxoed.cn/html/solutions/14019311333.html