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