1 項目背景
本項目來源于與某“機械設(shè)計研究所”的合作項目,該所歷史上在設(shè)計管理模式上采用傳統(tǒng)的層次化垂直結(jié)構(gòu),但是近年來,隨著用戶對產(chǎn)品更新?lián)Q代的要求越來越快、質(zhì)量要求越來越高,在競爭日益劇烈、外部壓力日益增大的形勢下,該所在管理模型上重新定位,打破長久以來形成的垂直結(jié)構(gòu),形成一種趨向于水平集成的業(yè)務(wù)模型,這形成了企業(yè)重構(gòu)的趨勢,使企業(yè)能更專注于自己的業(yè)務(wù)特長,在產(chǎn)品研發(fā)時,能更好地利用國內(nèi)更先進的技術(shù)力量,以實現(xiàn)合作方異地協(xié)同設(shè)計。
該所已經(jīng)成功地把PDM(Product Data Management,產(chǎn)品數(shù)據(jù)管理)系統(tǒng)用到本地產(chǎn)品設(shè)計管理中,將產(chǎn)品整個設(shè)計生命周期內(nèi)的所有數(shù)據(jù),按一定模式加以定義、組織和管理,使產(chǎn)品數(shù)據(jù)在整個生命周期內(nèi)保持一致和共享,為企業(yè)設(shè)計和生產(chǎn)構(gòu)筑一個并行產(chǎn)品開發(fā)和管理的環(huán)境。
但是,現(xiàn)有PDM系統(tǒng)是針對當(dāng)初封閉的管理模式而設(shè)計的,無法應(yīng)對設(shè)計變更比較頻繁的異地的合作方協(xié)調(diào)設(shè)計環(huán)境,因此,該所要求把原來的系統(tǒng)進行擴展,在原有系統(tǒng)上增加合作方協(xié)同設(shè)計能力,搭建基于互聯(lián)網(wǎng)的合作方協(xié)同設(shè)計溝通管理平臺,使得部件設(shè)計合作方能夠在早期就介入產(chǎn)品的研發(fā)過程,及時獲取產(chǎn)品信息和變更通知,并將相關(guān)的信息及時反饋到企業(yè),縮短主要設(shè)計部門和合作方的溝通時間,提高合作方在新產(chǎn)品設(shè)計中的響應(yīng)能力,實現(xiàn)各方共贏。
新的PDM系統(tǒng)的開放性,將為實現(xiàn)產(chǎn)品的異地、異構(gòu)設(shè)計提供強大支持,通過合理利用Web Services技術(shù),實現(xiàn)業(yè)務(wù)與分布式數(shù)據(jù)源整合,并根據(jù)業(yè)務(wù)發(fā)展的需要,實現(xiàn)業(yè)務(wù)方法的重新編排,可以有效管理各合作方協(xié)同設(shè)計過程,通過實現(xiàn)工程中設(shè)計、制造、測試、維護等職能的綜合考慮,使新產(chǎn)品開發(fā)更加有序和有效。
2 PDM架構(gòu)設(shè)計
2.1 架構(gòu)設(shè)計需要解決的問題
根據(jù)對多個方案的比較分析,本項目采用基于Web Services的面向服務(wù)架構(gòu)的形式,它有如下優(yōu)點:
①有利于協(xié)調(diào)不同的服務(wù)領(lǐng)域間的異構(gòu)數(shù)據(jù)模型
本PDM系統(tǒng)的合作方協(xié)同設(shè)計是一些特定領(lǐng)域相關(guān)的服務(wù)集合,在這個服務(wù)領(lǐng)域中需要所有服務(wù)采用統(tǒng)一的數(shù)據(jù)模型進行定義,但是,由于合作方業(yè)務(wù)的復(fù)雜性,數(shù)據(jù)服務(wù)來自不同服務(wù)領(lǐng)域,這就使得模型間語義與結(jié)構(gòu)存在巨大差異,采用Web Services技術(shù),將有利于協(xié)調(diào)不同的服務(wù)領(lǐng)域間的異構(gòu)數(shù)據(jù)模型。
②便于實現(xiàn)面向服務(wù)的集成(SOI)
通過使用Web Services來解決集成與互操作的問題將有利于達到如下目的:
a.改進現(xiàn)有數(shù)據(jù)模型,以適應(yīng)當(dāng)前集成項目。
b.根據(jù)服務(wù)契約對傳統(tǒng)系統(tǒng)進行包裝,創(chuàng)建當(dāng)前系統(tǒng)集成所需要的新服務(wù)。
c.定義用于“進行不同數(shù)據(jù)模型的映射”的數(shù)據(jù)轉(zhuǎn)換,以便數(shù)據(jù)能夠跨越不同的數(shù)據(jù)領(lǐng)域邊界。
d.為Web服務(wù)平臺配置執(zhí)行環(huán)境,以支持并實施企業(yè)級的服務(wù)質(zhì)量。
項目要求與合作協(xié)同設(shè)計有關(guān)的業(yè)務(wù),通過瘦GUI Web客戶端或者瀏覽器實現(xiàn)人機交互,在設(shè)計的初始方案中有四個關(guān)鍵問題需要解決:第一,服務(wù)如何識別與搭建,第二,如何處理以協(xié)同設(shè)計為特征的業(yè)務(wù)模型工作流,第三,在PDM處理工藝圖紙的時候,由于文件體積龐大,需要重點解決文件存放結(jié)構(gòu)與調(diào)用方法的問題,第四,基于Web Services的面向服務(wù)架構(gòu)如何實現(xiàn),實現(xiàn)中需要處理哪些問題。
2.2 頂層架構(gòu)設(shè)計
頂層設(shè)計的一個基本策略,就是為每個服務(wù)子系統(tǒng)賦予清晰的職責(zé),這些職責(zé)是內(nèi)聚的,相互間的關(guān)系松散而簡單,在業(yè)務(wù)需要服務(wù)變化的時候,采取了只增加服務(wù)而不是修改服務(wù)的策略(開放和封閉的原則)。這樣一來,就使系統(tǒng)具有很強的可伸縮、可擴展性,以及對于業(yè)務(wù)變化的敏捷適應(yīng)能力。
在項目之初,通過對與項目目標(biāo)相關(guān)的業(yè)務(wù)進行梳理,依據(jù)完整性、自治性、重用性、封裝性、松耦合性以及接口的一致性對服務(wù)進行了識別,為了避免點對點服務(wù)帶來的問題(不能改變信息、難以跟蹤服務(wù)使用狀況、難以驗證、安全隱患等),整個服務(wù)使用了企業(yè)服務(wù)總線(EntERPrise Service Bus,ESB)和數(shù)據(jù)總線(Data Bus)進行集中管理,根據(jù)合作方協(xié)同設(shè)計的要求,從業(yè)務(wù)層面來看,本項目共分成三個完全自治的子服務(wù),其架構(gòu)關(guān)系如圖1所示。
圖1 合作方協(xié)同設(shè)計頂層架構(gòu)
下面對主要的服務(wù)對象加以說明:
①項目管理與過程管理子服務(wù)(PM&PM)
主要解決在合作方協(xié)同設(shè)計的情況下,確保有效項目管理的信息服務(wù),主要包括:組織機構(gòu)定義和修改服務(wù);人員角色指派服務(wù);產(chǎn)品數(shù)據(jù)操作權(quán)限分派服務(wù);項目開發(fā)過程定義服務(wù);工作流定義服務(wù);任務(wù)列表生成服務(wù);任務(wù)執(zhí)行狀況信息服務(wù);協(xié)同開發(fā)項目過程監(jiān)控服務(wù);工作進展信息提供服務(wù)等。
②工程圖檔與文檔管理子服務(wù)(ED&DM)
這是PDM系統(tǒng)傳統(tǒng)業(yè)務(wù)的一部分,關(guān)注點是工程圖檔的管理,主要包括:圖檔基本信息錄入服務(wù);圖檔基本信息編輯服務(wù);圖檔文件間連接關(guān)系服務(wù);圖檔文件的批量入庫和交互入庫服務(wù);圖檔文件釋放及傳送服務(wù);圖檔文件顯示服務(wù);圖檔顯示模塊轉(zhuǎn)換格式服務(wù);圖檔批注及符號服務(wù)等。
③配置管理與變更管理子服務(wù)(CM&CM)
主要解決工程文件的版本控制以及變更管理的問題,還必須保證在并行情況下圖檔修改的串行化,主要包括:產(chǎn)品結(jié)構(gòu)樹生成服務(wù);圖檔版本演化可視化服務(wù);產(chǎn)品批次結(jié)構(gòu)信息服務(wù);產(chǎn)品零部件之間的層次關(guān)系服務(wù):產(chǎn)品變更管理服務(wù);產(chǎn)品修改串行化服務(wù);文檔或圖紙編碼規(guī)則服務(wù)等。
這三個子服務(wù)相互支持,共同完成合作方協(xié)同設(shè)計中項目管理、圖檔管理、版本管理以及圖檔修改串行化的業(yè)務(wù)要求,為了減少子服務(wù)之間的耦合并增加子服務(wù)的內(nèi)聚度,項目設(shè)計要求各子服務(wù)之間不得直接交互,它們只能通過組合服務(wù)的上層組件進行交互,從而減少了開發(fā)、集成、調(diào)試、維護以及后期升級的難度。
2.3 數(shù)據(jù)資源的可伸縮性設(shè)計
①用數(shù)據(jù)服務(wù)取代遠程數(shù)據(jù)調(diào)用
在數(shù)據(jù)資源的應(yīng)用上,由于各個合作方數(shù)據(jù)本身具有敏感性以及數(shù)據(jù)庫和數(shù)據(jù)結(jié)構(gòu)的多樣性,直接通過互聯(lián)網(wǎng)調(diào)用合作方的數(shù)據(jù)庫是不安全,也是不合理的,因此本設(shè)計采用的方法,是使合作方的數(shù)據(jù)資源以服務(wù)的形式提供出來,而且只提供與合作方協(xié)同設(shè)計相關(guān)的數(shù)據(jù),而禁止其他不相關(guān)的數(shù)據(jù)被非法使用,這種數(shù)據(jù)服務(wù)的提供方式采用XML/Web Service技術(shù),就保證了異構(gòu)數(shù)據(jù)以統(tǒng)一的格式進行整合。
本系統(tǒng)通過一個數(shù)據(jù)總線(Data Bus)統(tǒng)一管理數(shù)據(jù)使用者的權(quán)限、格式轉(zhuǎn)換以及其它方面的問題,以確保數(shù)據(jù)的安全性和使用上的方便性,由于數(shù)據(jù)是以服務(wù)的形式提供的,數(shù)據(jù)服務(wù)的分布性為大數(shù)據(jù)量的性能要求提供了支持。
②數(shù)據(jù)總線應(yīng)用的REST風(fēng)格
為了進一步提高異構(gòu)數(shù)據(jù)應(yīng)用上的方便性,在數(shù)據(jù)總線的應(yīng)用上使用了REST風(fēng)格,也就是利用URL來表示數(shù)據(jù)操作,把最基本的四個對數(shù)據(jù)的原子操作(創(chuàng)建、讀取、更新和刪除)表示為:GET、POST、PUT和DELETE,這種針對資源的網(wǎng)絡(luò)應(yīng)用設(shè)計和開發(fā)方式,可以降低開發(fā)的復(fù)雜性,提高系統(tǒng)的可伸縮性,也使得資源的調(diào)用更加簡潔與易于理解,這樣一來,就形成了一種簡潔并與HTTP協(xié)議的完美結(jié)合的表達方式,如圖2所示。
圖2 REST風(fēng)格的數(shù)據(jù)應(yīng)用表達方式
實踐表明,采用REST風(fēng)格的數(shù)據(jù)應(yīng)用格式可以獲得如下好處:
a.REST風(fēng)格天然地具有服務(wù)器無狀態(tài)的特征,在狀態(tài)遷移的過程中,服務(wù)器不需要記錄任何Session,所有的狀態(tài)都通過URL的形式記錄在了客戶端。
b.REST風(fēng)格能夠提高系統(tǒng)的可伸縮性,在操作無狀態(tài)的情況下沒有上下文約束,這樣一來,在我們強調(diào)要分布式、集群的時候,就不需要考慮上下文的問題。
c.由于在數(shù)據(jù)總線中統(tǒng)一采用了REST風(fēng)格,數(shù)據(jù)應(yīng)用與具體的數(shù)據(jù)庫SQL無關(guān),這樣就減輕了大部分程序員的負擔(dān),保證了系統(tǒng)后期升級、維護和擴展的可實現(xiàn)性。
在本項目中,只是在數(shù)據(jù)總線的應(yīng)用中采用了REST風(fēng)格,在總線的內(nèi)部設(shè)計中還是采用了XML/Web Service調(diào)用數(shù)據(jù)的遠程服務(wù),數(shù)據(jù)總線作為一個中間件,起到了格式轉(zhuǎn)換和統(tǒng)一管理的的作用,如圖3所示。
圖3 數(shù)據(jù)總線的基礎(chǔ)架構(gòu)
2.4 分布式服務(wù)解決方案
采用Web Service技術(shù)盡管能夠很好的解決異構(gòu)系統(tǒng)與數(shù)據(jù)的整合,但是也帶來了性能上的問題,對于本合作方協(xié)同設(shè)計系統(tǒng)來說,盡管不是絕對的實時系統(tǒng),但是對性能也還是有比較高的要求,在具體設(shè)計中,我們采取了服務(wù)分層次的分布式布局策略來解決性能問題。
在合作方位置遙遠、業(yè)務(wù)非常復(fù)雜而且繁忙時,把所有的服務(wù)都集中在中央服務(wù)中心是不合適的,這樣會嚴(yán)重影響服務(wù)的性能,而把業(yè)務(wù)處理全部轉(zhuǎn)移到GUI客戶端也不合適,因為業(yè)務(wù)處理流程必須維護全局狀態(tài),也增加了維護的難度,本項目解決這個問題的思路是把服務(wù)按照不同的級別進行分布式配置,如圖4所示。
圖4 分布式服務(wù)解決方案
在這個方案中,服務(wù)分成兩個不同的層次:
a.中心服務(wù):這種服務(wù)所處的位置在全局數(shù)據(jù)中心服務(wù)器上,其維護的狀態(tài)是全局性的,更多的是關(guān)注各個合作方之間的協(xié)調(diào)的業(yè)務(wù),特別是在響應(yīng)某個請求的時候需要多個分布式服務(wù)站點參與時尤其重要,中心服務(wù)中的服務(wù)職責(zé)可以居中協(xié)調(diào)共同完成業(yè)務(wù)處理,這種布局的好處在于:一般來說,在同一空間(合作方)中會有大量內(nèi)部相互協(xié)調(diào)的操作,而合作方之間的協(xié)調(diào)在總量上要少得多,這就可以大幅度減少應(yīng)用服務(wù)的網(wǎng)絡(luò)流量,提高系統(tǒng)的整體性能。
b.棧服務(wù):這種服務(wù)的所謂全局狀態(tài)是有區(qū)域性的,例如在同一個合作方內(nèi),相當(dāng)多的業(yè)務(wù)處理都是在內(nèi)部進行的,其全局狀態(tài)也只是指的這個合作方范圍內(nèi)而言,我們可以把這類服務(wù)(也可能是半服務(wù))在物理上直接置于合作方本身的數(shù)據(jù)中心,至于這個合作方數(shù)據(jù)中心提供服務(wù)的方式是采用內(nèi)網(wǎng)還是外網(wǎng)并不重要(大多數(shù)情況下這種處理都是置于內(nèi)網(wǎng)),進一步,某些只與具體的客戶相關(guān)的業(yè)務(wù)處理,也可以置于GUI客戶端上,通過這樣的處理,可以極大的提升本地服務(wù)的性能,減輕中央服務(wù)器的壓力。
分布式服務(wù)不可避免會帶來如何處理會話(Session)的問題,本設(shè)計方案不采用在服務(wù)器內(nèi)存中存放會話的方案,而是把所有生命周期超過一個任務(wù)的的數(shù)據(jù)都存放在“持久服務(wù)”(會話數(shù)據(jù)庫)中,這種設(shè)計盡管在保存和使用會話數(shù)據(jù)速度方面比內(nèi)存方式慢了點,但是由于同一個業(yè)務(wù)可以在不同物理位置上進行處理,或者在性能需要的時候可以進行多服務(wù)器擴展,所以這是更合適的方案,通過在系統(tǒng)中大量使用并行計算的方式,在總體性能上提升的余地更大。
3 結(jié)論
本設(shè)計實際應(yīng)用效果表明:所設(shè)計的合作方協(xié)同設(shè)計PDM系統(tǒng),可以很好的適應(yīng)企業(yè)重構(gòu)趨勢下的應(yīng)用要求,并且具有比較廣闊的未來發(fā)展空間,所采用的分布式服務(wù)方案極大地提高了系統(tǒng)的可伸縮性、性能、吞吐量、容錯性以及可用性,可伸縮性的提高是因為服務(wù)可以利用服務(wù)方已有的分布式硬件,當(dāng)合作開始或終止的時候,只要安裝或者關(guān)閉這個服務(wù),也就自然開始或終止了這個業(yè)務(wù)節(jié)點和數(shù)據(jù)源的使用,這就使整個系統(tǒng)具有可伸縮型,性能和吞吐量的提升是因為合理的分布式服務(wù)布局,使網(wǎng)絡(luò)的使用量被減到最小(絕大部分操作可以在本地內(nèi)網(wǎng)空間運行而不需要昂貴的互聯(lián)網(wǎng)絡(luò)開銷),可用性和容錯性的提高是因為某個合作方服務(wù)中心發(fā)生故障時,并不會影響其它服務(wù)的可用性,此外,由于PDM體系的相似性,所有服務(wù)都可以由一個通用的設(shè)計來支持,并沒有增加設(shè)計上的復(fù)雜性。
本PDM系統(tǒng)應(yīng)用Web Services的重要目的是綜合各個合作方的數(shù)據(jù),通過隔離合作方不相關(guān)數(shù)據(jù),保證合作方本身內(nèi)部數(shù)據(jù)的安全。PDM系統(tǒng)綜合各方數(shù)據(jù)以后,將把這些異構(gòu)數(shù)據(jù)轉(zhuǎn)換成統(tǒng)一的數(shù)據(jù)格式(XML)的信息,便于各方面的應(yīng)用,由于采用Web Services技術(shù),各種異構(gòu)數(shù)據(jù)和異構(gòu)平臺的整合變得可行,就為系統(tǒng)下一步的發(fā)展,打下了堅實的基礎(chǔ)。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:面向合作方協(xié)同設(shè)計的PDM架構(gòu)
本文網(wǎng)址:http://www.ezxoed.cn/html/solutions/1401939495.html