羅志偉
(廈門理工學(xué)院機械工程系,廈門 361024)
現(xiàn)代企業(yè)產(chǎn)品的創(chuàng)新開發(fā)正朝著全球化和敏捷化方向發(fā)展,產(chǎn)品數(shù)字化模型的設(shè)計交流與合作需依賴于新型的、適應(yīng)網(wǎng)絡(luò)化的、具有異地工作模式的設(shè)計工具。協(xié)同設(shè)計是網(wǎng)絡(luò)化制造的一個重要組成部分,是智力資源集成與優(yōu)化的有效途徑[1]。協(xié)同設(shè)計以快速、經(jīng)濟地開發(fā)產(chǎn)品為目標,使團隊成員通過協(xié)作實現(xiàn)資源和信息共享,合作完成任務(wù)。協(xié)同設(shè)計可分為同步協(xié)同與異步協(xié)同,2類協(xié)同都具有異地性,主要區(qū)別在于響應(yīng)的實時性[2]。異步協(xié)同對每個網(wǎng)絡(luò)結(jié)點的配置要求較高,響應(yīng)周期較長;而同步協(xié)同交互響應(yīng)是實時的,實現(xiàn)難度較大,應(yīng)用成果較少,網(wǎng)絡(luò)傳輸效率是其實現(xiàn)的瓶頸[3]。
目前,由于尚未出現(xiàn)較完備的商用網(wǎng)絡(luò)協(xié)同設(shè)計系統(tǒng),較為普遍的協(xié)同設(shè)計方法是利用現(xiàn)成的網(wǎng)絡(luò)工具,如電子郵件、視頻聊天軟件、白板、FTP等來實現(xiàn)協(xié)同工作[4]。然而,在這種工作模式下,工作進程繁瑣、協(xié)同周期長、系統(tǒng)性差,參與設(shè)計的人員無法進行實時的產(chǎn)品設(shè)計合作,屬于效率較低的異步工作模式。據(jù)此,本文試圖從同步協(xié)同的角度出發(fā),研究在Web環(huán)境下同步協(xié)同設(shè)計系統(tǒng)的框架及實現(xiàn)方法,并重點介紹三維實體協(xié)同瀏覽與修改、協(xié)商策略模型等內(nèi)容。本系統(tǒng)的開發(fā)推動了異地多學(xué)科設(shè)計人員的協(xié)同設(shè)計與交流,縮短了產(chǎn)品開發(fā)周期,降低了產(chǎn)品開發(fā)成本。
協(xié)同設(shè)計是一個異地、多學(xué)科、多參與者協(xié)調(diào)合作的過程。在整個協(xié)同設(shè)計過程中會牽涉到不同學(xué)科、領(lǐng)域的知識及軟件功能調(diào)用[5],如機械學(xué)科中包括優(yōu)化設(shè)計功能、二維 CAD、三維建模、CAE、CAM、機械設(shè)計方法等。因此,本系統(tǒng)采用Java提供的遠程方法調(diào)用包RMI(remote method invocation)[6]和 Internet技術(shù)搭建系統(tǒng)軟總線,將各學(xué)科的知識及軟件功能以組件、功能庫的形式掛在總線上,同時與服務(wù)器上的RMI存根配合,實現(xiàn)學(xué)科資源的共享。系統(tǒng)整體框架結(jié)構(gòu)如圖1所示。
圖1 Web環(huán)境下同步協(xié)同設(shè)計系統(tǒng)整體框架
各學(xué)科使用的計算機擁有其自身學(xué)科領(lǐng)域的知識及軟件功能,只要把這些知識和軟件功能的RMI存根放在服務(wù)端框架上,通過網(wǎng)絡(luò)后端Java程序?qū)崿F(xiàn)遠程知識和軟件功能調(diào)用,最終實現(xiàn)學(xué)科間知識和功能的共享。如圖1所示,Web環(huán)境下同步協(xié)同設(shè)計系統(tǒng)框架主要包括以下部分:
1)產(chǎn)品組件。各異地產(chǎn)品模型組件通過網(wǎng)絡(luò)平臺構(gòu)成協(xié)同設(shè)計系統(tǒng)產(chǎn)品模型庫。
2)系統(tǒng)管理組件。負責用戶的注冊、注銷、權(quán)限管理、組件查詢、信息修改等。
3)項目管理組件。負責項目的創(chuàng)建、維護、信息存儲和刪除等功能。
4)約束管理組件。約束體現(xiàn)了產(chǎn)品各方面的設(shè)計要求、參數(shù)間的關(guān)系,大量的約束構(gòu)成了本學(xué)科的約束空間。通過參數(shù)化約束可實現(xiàn)網(wǎng)絡(luò)環(huán)境下的管理,形成約束管理組件,包括約束檢測、一致性維護、約束求解等。
5)圖形協(xié)同組件。負責產(chǎn)品圖形信息交流,包括Web環(huán)境下對產(chǎn)品三維模型的控制、異地產(chǎn)品模型的協(xié)同瀏覽及修改等。
6)協(xié)商組件。負責非圖形信息的交流。與普通聊天軟件不同,該組件通過協(xié)商策略模塊輔助協(xié)商過程,確保協(xié)商效率、協(xié)商結(jié)果質(zhì)量以及協(xié)商的收斂性。
在同步協(xié)同設(shè)計過程中,設(shè)計者之間要完成最基本的2種信息交流,即圖形信息和非圖形信息。圖形信息主要包括產(chǎn)品的二維、三維模型,而非圖形信息則是產(chǎn)品相關(guān)的參數(shù)、技術(shù)要求及文字性的探討內(nèi)容。實現(xiàn)這2種信息的同步交流是本系統(tǒng)的核心,也是難點所在。
圖形同步協(xié)同功能的實現(xiàn)是通過圖形協(xié)同組件來完成的,其內(nèi)部結(jié)構(gòu)如圖2所示。考慮到產(chǎn)品模型的共享性、模型的專業(yè)性及網(wǎng)絡(luò)的實現(xiàn)方式,圖形協(xié)同組件采用3層結(jié)構(gòu),包括接口層、處理層及數(shù)據(jù)層。接口層是各學(xué)科知識、功能相互調(diào)用的通道;處理層完成產(chǎn)品模型的商用軟件自動建模、網(wǎng)絡(luò)轉(zhuǎn)換、網(wǎng)絡(luò)控制和數(shù)據(jù)通訊,使產(chǎn)品建模更加專業(yè)、通用,實現(xiàn)模型的網(wǎng)絡(luò)協(xié)同瀏覽及修改;數(shù)據(jù)層進行學(xué)科模型和學(xué)科數(shù)據(jù)的存儲,其中,學(xué)科模型庫主要存儲通用產(chǎn)品零部件模型,學(xué)科數(shù)據(jù)庫主要負責學(xué)科知識、協(xié)商數(shù)據(jù)、模型修改數(shù)據(jù)等信息的存儲。
圖2 圖形協(xié)同組件框架結(jié)構(gòu)
圖形協(xié)同瀏覽功能是使設(shè)計參與者能通過網(wǎng)絡(luò)同角度、同視圖、同步地控制瀏覽網(wǎng)絡(luò)三維模型,為設(shè)計方案的商定帶來便利。首先,要選定網(wǎng)絡(luò)上可以瀏覽的三維模型格式。商用三維設(shè)計軟件可生成多種格式的三維模型,如 prt、igs、set、vda、wrl等。根據(jù)網(wǎng)絡(luò)平臺的需要及不同三維模型格式的特點,本文采用wrl文件格式,即虛擬現(xiàn)實建模語言VRML(virtual reality modeling language)格式作為網(wǎng)絡(luò)圖形協(xié)同的格式。VRML聯(lián)盟的目標是將Web3D的實現(xiàn)方式標準化。各種商用三維建模軟件都支持VRML格式的輸出,為異構(gòu)CAD系統(tǒng)提供統(tǒng)一的產(chǎn)品模型標準,實現(xiàn)產(chǎn)品模型在網(wǎng)絡(luò)上的自如顯示。
實現(xiàn)三維模型的網(wǎng)絡(luò)平臺顯示后,應(yīng)解決客戶端對網(wǎng)絡(luò)三維模型的參數(shù)化控制。客戶端對三維模型的姿態(tài)控制主要是6個自由度的定量控制,即X、Y、Z三個方向的平動和轉(zhuǎn)動,見圖3,這樣便于三維實體空間姿態(tài)信息的傳遞。本系統(tǒng)采用Java編程方法,調(diào)用VRML的外部通用接口EAI(external authoring interface)中的功能類庫,實現(xiàn)VRML場景外Java applet小程序?qū)RML事件模型的訪問,從而控制VRML場景,最終把Java applet與VRML場景嵌入到同一網(wǎng)頁中,實現(xiàn)網(wǎng)絡(luò)三維模型控制。這些控制信息再通過Java applet與網(wǎng)絡(luò)后端的Servlet通信方式來實現(xiàn)客戶端之間的姿態(tài)信息傳遞。例如,設(shè)計參與者a已修改模型的姿態(tài)信息,則系統(tǒng)會自動把修改信息發(fā)布到各客戶端網(wǎng)頁的文本框中,如圖3所示。若本地需要采納設(shè)計者a的三維模型姿態(tài),則可通過Refresh功能使模型的顯示姿態(tài)與參與者a的一模一樣,從而實現(xiàn)模型的協(xié)同瀏覽。
圖3 Applet對VRML模型的網(wǎng)絡(luò)控制
在同步協(xié)同設(shè)計過程中,常常需要對模型進行修改。對于模型庫中沒有的模型,只能是把修改后的模型文件以各種網(wǎng)絡(luò)傳輸方式傳遞給各客戶端;對于模型庫中已有的模型則傳遞修改的參數(shù)即可。例如,設(shè)計參與者可通過調(diào)用圖3中Set-Parameter功能修改從動盤轂參數(shù),修改界面如圖4所示。通過該頁面,客戶端可修改服務(wù)器數(shù)據(jù)庫中從動盤轂的參數(shù),以便其他客戶端的調(diào)用。運用JSP網(wǎng)絡(luò)編程及網(wǎng)絡(luò)后端的JavaBean,能方便地實現(xiàn)服務(wù)器數(shù)據(jù)庫參數(shù)的修改及權(quán)限的控制。
圖4 修改從動盤轂參數(shù)的修改界面
在獲取修改參數(shù)、自動更新模型方面,本系統(tǒng)應(yīng)用Visual C++和Pro/TOOKIT對Pro/Engineer野火版進行二次開發(fā),得到模型自動更新插件,并安裝于客戶端,實現(xiàn)對服務(wù)器數(shù)據(jù)庫設(shè)計參數(shù)的提取和模型的自動生成。如圖5所示,通過調(diào)用“提取數(shù)據(jù)”功能,得到服務(wù)器數(shù)據(jù)庫中最新設(shè)計參數(shù),從而由插件自動生成新的三維實體。在實現(xiàn)設(shè)計參數(shù)提取功能方面,通過對比套接字Socket、RMI及http協(xié)議等各種通信方式的特點,最終采取了在VC環(huán)境下http通信協(xié)議方式,實現(xiàn)廣域網(wǎng)范圍的數(shù)據(jù)傳輸。至此,其他設(shè)計參與者對模型的修改就可在本客戶端中得以體現(xiàn),實現(xiàn)三維模型的協(xié)同修改。
在協(xié)同設(shè)計過程中,由于每個設(shè)計小組的專業(yè)背景、知識水平和目標等方面存在差異,再加上每個設(shè)計小組都會自然而然地更多考慮自身的局部利益,必然導(dǎo)致沖突的產(chǎn)生[7]。在沖突產(chǎn)生時就需要通過有效的協(xié)商進行解決,共同決定設(shè)計方案的修改。這種設(shè)計上的協(xié)商結(jié)果最終將體現(xiàn)在產(chǎn)品設(shè)計參數(shù)上,即設(shè)計參數(shù)的商定是同步協(xié)同設(shè)計協(xié)商的核心。協(xié)商組件除了提供普通網(wǎng)絡(luò)聊天功能外,更重要的是通過協(xié)商策略模型實現(xiàn)協(xié)商過程的指導(dǎo),使協(xié)商過程在保證團隊整體利益最大化的前提下往參數(shù)收斂的方向發(fā)展,最終給出推薦的參數(shù)值集。
圖5 提取設(shè)計參數(shù)重構(gòu)實體模型
為實現(xiàn)協(xié)商策略模型,需建立整個協(xié)商過程的數(shù)學(xué)模型,方便計算機處理。根據(jù)協(xié)同設(shè)計系統(tǒng)中協(xié)商的合作競爭性、專業(yè)依賴性、折衷妥協(xié)性、多域性和全局性等特點,在博弈論和協(xié)商理論基礎(chǔ)上建立協(xié)商過程數(shù)學(xué)模型,如式(1)所示。
通過式(1)的數(shù)學(xué)模型可把各學(xué)科參與者的行為以程序算法的形式體現(xiàn)出來,得到相應(yīng)程序代碼,實現(xiàn)協(xié)商過程的數(shù)字化處理,進而得到具有最高整體回報值的參數(shù)集,整個協(xié)商過程如圖6所示。圖中顯示一輪協(xié)商過程分4步完成。第1步是協(xié)商問題的提出與決策樹的編輯,例如壓緊彈簧可采用膜片彈簧、螺柱螺旋彈簧、矩形截面彈簧等方式實現(xiàn),其中膜片彈簧又有不同材質(zhì)選擇,這樣就可以得到不同的決策組,各決策組中都對m個設(shè)計參數(shù)進行商定,從決策問題到?jīng)Q策組整體構(gòu)成了決策樹,在協(xié)同網(wǎng)中采用可擴展標記語言XML(extensible markup language)的方式進行編輯。第2步是各學(xué)科參與者通過選定不同的讓步冪值n,對不同決策組中m個參數(shù)選擇不同的回報函數(shù)和權(quán)值,體現(xiàn)參與者對本決策組的觀點。圖6第2步中方框內(nèi)的曲線就是學(xué)科參與者根據(jù)設(shè)計參數(shù)選定的回報函數(shù),即式(1)中的P1和P2,若為空白則表示該學(xué)科參與者對本設(shè)計參數(shù)不感興趣,并不會影響到本學(xué)科的回報值。第3步,根據(jù)式(1)中的Pji,對各決策組中m個參數(shù)的回報函數(shù)進行加權(quán)疊加,得到相應(yīng)決策組中參數(shù)的總回報函數(shù),如圖6第3步中的方框,并通過式(1)中的Vp計算推薦的參數(shù)值,按照決策組對m個參數(shù)的最大回報值進行疊加,例如圖6中決策組1得到600的總回報值、決策組2得到690的總回報值等,通過比較總回報值得到推薦的決策組及m個參數(shù)的推薦值。第4步,判斷各學(xué)科參與者是否同意推薦方案,若同意則完成協(xié)商過程得到m個參數(shù)的推薦值,若不同意則回到第2步,調(diào)整讓步值。
基于以上策略模型,協(xié)商組件框架結(jié)構(gòu)如圖7所示。
協(xié)商組件主要包括以下部分:
1)接口層。功能與圖形協(xié)同組件采用統(tǒng)一標準及功能。
2)處理層。協(xié)商策略模型通過計算機算法及Java編程形成協(xié)商策略模塊,分布在網(wǎng)絡(luò)后端,輔助協(xié)商整個過程。協(xié)商組件采用XML作為通訊語言,通過XML解析器與Java編程實現(xiàn)網(wǎng)絡(luò)平臺下的XML文檔處理功能,方便設(shè)計參與者把協(xié)商內(nèi)容編輯為XML文檔,使計算機能理解協(xié)商內(nèi)容,掌握設(shè)計者的設(shè)計意圖。
3)數(shù)據(jù)層。學(xué)科數(shù)據(jù)庫主要用于學(xué)科知識、協(xié)商過程中涉及到的參數(shù)的存儲;學(xué)科共享本體主要是為產(chǎn)品制定的各級標準及相關(guān)術(shù)語[8]。
協(xié)商組件的網(wǎng)絡(luò)平臺運行效果如圖8所示。
圖6 協(xié)商處理過程
圖7 協(xié)商組件框架結(jié)構(gòu)
圖8 網(wǎng)絡(luò)協(xié)商界面
圖形協(xié)同與網(wǎng)絡(luò)協(xié)商組件功能是協(xié)同設(shè)計系統(tǒng)的核心,它們擔負著協(xié)同設(shè)計系統(tǒng)中主要信息的傳輸與處理工作。通過網(wǎng)絡(luò)平臺測試,本協(xié)同設(shè)計系統(tǒng)已實現(xiàn)三維實體模型的網(wǎng)絡(luò)協(xié)同瀏覽及協(xié)同修改功能,并在協(xié)商設(shè)計參數(shù)時能根據(jù)協(xié)商策略算法給出推薦決策組及參數(shù)值組,使協(xié)商過程高效、協(xié)商結(jié)果合理。特別是在設(shè)計參與者多,需要商定的參數(shù)也比較多的情況,協(xié)商策略組件能把握整體利益,起到整體統(tǒng)籌指導(dǎo)的作用。
這些功能的實現(xiàn)為同步協(xié)同設(shè)計帶來了極大便利,使參與者能同角度、同視圖、同步地瀏覽三維模型、修改模型,同時進行面向設(shè)計參數(shù)的協(xié)商,使眾多異地參與者就像坐在同一臺電腦前進行共同協(xié)商設(shè)計一樣。系統(tǒng)應(yīng)用了http、JSP、Java、RMI、Applet、Servlet、VRML 等多項網(wǎng)絡(luò)開發(fā)技術(shù),實現(xiàn)網(wǎng)絡(luò)協(xié)同設(shè)計的核心功能,在協(xié)同設(shè)計系統(tǒng)中起到關(guān)鍵性的作用,為計算機輔助協(xié)同工作(CSCW)的實現(xiàn)提供了一種新的途徑。
[1]Shen Y,Ong S K,Nee A Y C.Augmented reality for collaborative product design and development[J].Design Studies,2010,31(2):118-145.
[2]羅亞波,肖田元.機械產(chǎn)品協(xié)同設(shè)計同步效率提升策略研究[J].機械工程學(xué)報,2005,41(1):6-10.
[3]Ren Z,Yang F,Bouchlaghem N M,et al.Multi-disciplinary collaborative building design—A comparative study between multi-agent systems and multi-disciplinary optimisation approaches[J].Automation in Construction,2011,20(5):537-549.
[4]江平宇,陳獻國.基于Web的同步遠程協(xié)同產(chǎn)品設(shè)計的實現(xiàn)[J].機械工程學(xué)報,2002,38(3):34-38.
[5]Liu Jin-Fei,Chen Ming-Yao,Yuan Kong,et al.Collaborative design strategy of product modularity based on multi-Agent[J].Computer Integrated Manufacturing Systems,2011,17(3):560-570.
[6]奧貝格,Oberg,王海衛(wèi).精通RMI:Java與EJB企業(yè)級應(yīng)用開發(fā)[M].北京:機械工業(yè)出版社,2003.
[7]金貴林,容芷君,應(yīng)保勝.基于設(shè)計目標最大化的協(xié)同設(shè)計沖突消解算法[J].機械設(shè)計,2010,27(11):8-14.
[8]Conrad Bock,XuanFang Zha,Hyo-won Suh,et al.Ontological product modeling for collaborative design[J].Advanced Engineering Informatics,2010,24(4):510-524.