基于CSCW的CAD系統協作支持技術與支持工具研究
2013-05-28 by:廣州有限元分析、培訓中心-1CAE.COM 來源:仿真在線
計算機支持的協同工作(CSCW)給CAD技術帶來重大發展, 但仍然存在許多問題. 其中之一是缺乏將協作性能同應用功能有機結合的方法. 本文對此進行了探索. 在分析了現有協作支持技術,工具和系統不足的基礎上, 提出了用協作支持工具軟件CoCADToolAgent改造商品化CAD系統來開發CSCD系統的新思路和總體技術路線, 給出了通訊支持,協議,一致性維護和并發控制,協同感知,任務和腳色機制的有效的實現方法. 作為本方法的一個應用實例, 成功地將傳統人機交互式CAD系統AutoCAD轉變為網絡環境下支持人人交互的CSCD原型系統. 作為專用協作支持工具, CoCADToolAgent比NetMeeting之類的通用協作支持工具具有更好的協作性能. 該方法可推廣到三維CAD系統.
何發智;高曙明;王少梅;孫國正
關鍵字:計算機支持的協同工作 計算機輔助設計 計算機支持的協
1 引言
設計活動不僅具備創造性和智能性, 而且具備群體性和協作性. 目前以交互式圖形系統和分析計算為主的CAD系統, 僅能支持單個設計者的獨立設計和人機交互. 隨著計算機支持的協同工作(CSCW)的出現和快速發展, CAD不僅是一個設計計算, 圖形處理和智能推理工具, 而且又是一個支持群體間通訊和協作的”人人交互”工具, 從而跨越CAD技術的鼻祖,MIT的I. E. Sutherland博士在其具有里程碑意義的Sketchpad系統中所提出的”人機圖形通訊”的CAD基本框架[1].
本文在分析了協同設計中相關協作支持技術研究現狀和現有協作支持工具和協同圖形編輯/設計系統存在的問題和不足的基礎上, 提出了一種用協作支持工具軟件CoCADToolAgent改造商品化CAD系統來開發CSCD系統的新思路和總體技術路線, 并給出有效的關鍵實施技術. 作為本方法的一個應用實例, 成功地將傳統人機交互式CAD系統AutoCAD轉變為網絡環境下支持人人交互的CSCD原型系統, 直接支持工業標準的矢量圖形的協同設計, 從而兼顧了協作性能和應用功能.
2 相關協作支持技術分析
1959年MIT在開始對CAD技術進行研究時, 提出傳統CAD系統的三大目標: 人機對話, 基于圖形的人機對話和模擬人類設計專家. 從CAD技術40年的發展來看, 人機對話的基本目標已經完全實現, 模擬人類設計專家的高級目標在特定領域部分或者簡單實現, 而基于圖形的人機交互則得到廣泛應用, 并不斷發展. 同樣, 在計算機支持協同設計(CSCD)領域, 基于圖形的人人交互協作技術也是現階段一個重要的研究方面, 這是由于: ①基于知識共享的協作模式來模擬人類設計專家群體. 有些初步的探索[2], 用認知式Agent模擬和取代人類設計專家群體, 目標相當高, 還有待人工智能和協同科學的的突破; ②基于場景和多媒體人人交互[3]. 采用最自然的方式來支持人人交互, 更依賴于高速多媒體通訊網絡等硬件的支持; ③基于文本和超文本的人人交互[4]. 主要采用半結構化方式來支持人人交互. 由于WWW的快速發展, 正向超媒體發展, 一些研究雖然采用了Web交互界面, 但已經不屬于超文本半結構類型, 而應歸于基于圖形的人人交互領域; ④基于圖形人人交互. 采用結構化的方法支持人人交互, 雖有一些以Distributed Sketchpad為代表的CSCD原型系統,協同圖形編輯/設計系統等[5], 但仍然缺乏將CSCW系統優良的協作性能同傳統CAD系統強大的圖形處理能力,兼容性和開放性結合起來的方法, 有待深入研究.
現有協作支持工具可以分為兩類: ①通用協作支持工具. 例如Microsoft的NetMeeting, 利用應用共享機制對單用戶應用程序進行共享, 截取單用戶系統輸入/輸出界面, 嚴格地按照"WYSIWIS"方式提供顯示級的界面共享, 僅支持發言權協作模式, 協作性能差; ②專用協作支持工具. 例如密西根大學的DistEdit僅能支持協同文本編輯, 而且需要特定第三方通訊軟件和編輯器源代碼的支持[6]. WebScope公司基于web的CAD協作支持工具, 具備無線因特網連接能力, 但它需要把CAD對象(3D模型/2D工程圖形)轉換成JAVA對象. AutoDesk公司為適應WWW的快速發展所推出的DWF數據格式及其配套的瀏覽工具WHIP!, 僅能在web瀏覽器上進行單向的CAD圖形發布,瀏覽和打印, 不能有效支持實時交互協同圖形設計.
現有協同編輯/繪圖系統基本上可以劃分為三種類型: ①協同文本編輯系統又稱合著系統. 通常集成了文本,簡單圖形,語音,視頻等多媒體信息; ②白板類系統. 例如CATIA公司提供的白板工具只能支持對CATIA模型所轉換的圖像進行同步觀察和注解(viewing and annotating). 這類系統在將圖形格式轉換成圖象格式時, 不僅矢量化信息徹底丟失, 而且原有圖形數據庫的數據結構和各種擴展數據信息也不復存在, 只適用于草擬和批注; ③協同繪圖系統或者改進型白板等系統支持自定義的矢量圖形格式. 但是所支持的圖形對象的類型,對象的屬性和圖形對象的編輯操作等圖形應用功能比起圖形CAD系統有明顯差距, 而且與目前流行CAD系統圖形數據庫格式不兼容, 還是難以適應復雜的CAD圖形設計任務.
3 協作支持工具的總體技術路線與關鍵實施技術
Fig. 1 Total technique method
圖1 總體技術路線
鑒于這種現狀, 本文提出了直接基于流行商品化CAD系統上利用協作支持工具CoCADToolAgent開發CSCD系統的新思路, 其總體技術路線見圖1, 關鍵實施技術如下.
3.1 協作框架及其通訊支持
當前CSCW/CSCD系統主要采用兩類基本協作框架: 透明協作和明確協作 [7]. 前者復用了單用戶CAD系統的圖形處理功能, 兼容了現有CAD系統的數據格式, 但協作性能差. 后者雖然強調了協作性能, 但是應用功能弱. 因此, 本文提出了一種協作性能與應用功能并重新的協作框架及其通訊支持方法.
(1) 該協作框架采用一種偏復制式混合體系結構, 與完全意義上的分散式體系結構和嚴格意義上Client/Server結構均不同, 是一種偏復制式的混合體系結構, 將數據,應用和并發控制加以配置. 服務器端采用多服務器結構, 由全局信息服務器?通訊轉發服務器和文檔傳輸服務器組成. 客戶端由各個CoCADToolAgent組成直接從事協同圖形編輯/設計的反應式多Agent系統.
(2) 協作支持工具CoCADToolAgent采用一種半智能的反應式Agent結構, 由動作反應器,通訊狀態監視器,編輯器狀態監視器,數據庫狀態監視器,實體對象狀態監視器和選擇集狀態監視器所組成.
(3) CoCADToolAgent采用通訊編程方式深入到現有CAD系統的內核, 從而將協作性能和應用功能結合起來. 為此, 本文在二維CAD系統AutoCAD和三維CAD系統SolidWorks上對基于CAD內核的網絡通訊支持問題進行了實驗研究.
首先設計和實施一個物理通訊測試軟件CoCADPing, 該程序由三個部分組成: ①CAD內核的處理部分包括CAD系統內核的切入點函數,外部函數的調用執行函數,外部函數代碼定義加載函數,外部函數的卸載函數,外部函數列表, 其中外部函數列表中定義了名稱為CoCADPing的過渡函數, char * exfun[] = {/*MSG0*/" CoCADPing "}; ②過渡部分包括兩個過渡函數pingMain和CoCADPing, 其中過渡函數CoCADPing被定義在CAD內核處理部分的外部函數列表中; ③通訊處理部分包括IP包校驗函數checksum,從IP包頭中解碼析出ICMP數據函數decode_resp,填充ICMP請求函數requestfill_icmp_data和命令行窗口使用幫助函數Usage. 編譯生成的CoCADPing應用的大小為7k, 是一個ADSRX程序, 被AutoCAD內核加載, 并與AutoCAD系統內核程序共享地址空間運行. 實驗表明, 基于CAD系統內核的CoCADPing展示了同基于操作系統內核的Ping一樣的物理通訊能力, 因此, 可以通過通訊編程手段深入到CAD系統的內核.
然后研究了客戶機/服務器模式下的基于CAD內核的網絡通訊問題. 由于AutoDesk公司和SolidWorks公司的Object ARX2.02和SolidWorks97plus所推薦的VC編程方法和所提供的模板程序均不支持多線程的通訊編程, 我們通過以下方法實現了CoCADToolAgent的通訊狀態監視器: ①修改該模板程序的應用初始化成員函數, 添加通訊初始化代碼; ②修改該模板程序VC集成環境設置方式, 增加AppWizard階段所漏掉的通訊特性選項; ③將基于MFC的標準Windows程序的文檔視圖結構和Object ARX 2.02和SolidWorks97plus的程序結構混合起來; ④在命令堆棧宏定義中定義啟動通訊聯結的命令函數. 綜合測試的方法是從一個CoCADToolAgent for AuotCAD上發出一組圖形操作命令, 通過通訊轉發服務器轉發到另一個CoCADToolAgent for AuotCAD和一個CoCADToolAgent for SolidWorks97上, 生成相同的運行結果. 綜合測試的結果更進一步驗證了CoCADToolAgent這種新型協作框袈的正確性, 從而為后續的研究奠定了基礎.
3.2 通訊協議
目前CAD/CAM系統上下游串行的文件交換方法和應用共享系統的界面像素傳輸方法的通訊量太大難以有效支持CAD協同應用, 因此CoCADToolAgent采用“分而治之”和“適時傳輸”的思想對通訊協議進行整體規劃, 優化和構造了適合反應式Agent處理的通訊協議集, 以達到支持實用化工程設計的目的. 該協議集包括五個方面的子協議集.
(1) 并發控制協議CoCADControlProtocol是整個協議集的重要組成部分, 提供了對偏復制式混合體系結構的系統數據的一致性維護和并發控制的協議支持.
(2) 數據庫通訊協議CoCADDataProtocol用于發言權協作模式下的協同工作. 采用面向圖形對象的通訊協議組織方法來映射和兼容現有工業標準的CAD系統圖形數據庫的數據類型, 通過抽象實體通訊協議來提高圖形數據通訊傳輸效率, 并保證協議的穩定性和可擴展性. 在圖形數據庫內核層次上將其操作方式抽象為基本操作, 利用CoCADToolAgent的數據庫狀態監視器將用戶的各種復雜操作歸一為基本操作, 然后通過遠程執行消息發送機制在遠程加以執行, 從而支持各種圖形編輯命令和各種編輯形式(包括用戶自定義和將來第三方開發的命令).
(3) 宏命令通訊協議CoCADMacroProtocol用于多輸入流協作模式下的協同設計.
(4) 通告協議CoCADNoticeProtocal用于協同感知中的遠程指針共享光標,動態多光標,線型顏色,通知和筆談等.
(5) 任務協議CoCADTaskProtocal提供了對協作任務的管理的支持, 包括當前任務信息的查詢,任務號的申請,任務登記,用戶注冊,登錄和退出等.
當前, 為了調試方便, 所有通訊協議按照純文本來編碼發送和接收, 如果按照二進制編碼并壓縮, 通訊量可進一步減少.
3.3 一致性維護和并發控制
在傳統的人機交互式CAD系統中, 單個用戶基本上獨占對圖形數據庫的訪問存取. 而基于CSCW的CAD系統支持緊密耦合的群體工作模式, 牽涉到多個用戶對共享數據的操作問題, 必須保證共享數據在各個站點上的一致性.
由于CoCADToolAgent要兼容現有CAD系統的數據庫格式, 不能指定圖形對象在圖形數據庫中的全局唯一標識符, 而且一旦添加到數據庫之后,不可回退,也不可更改. 因此, CoCADToolAgent采用了一種改進的整體一致性模型和添加操作優先的并發控制策略, 以解決偏復制式混合體系結構的一致性維護和多用戶并發沖突問題.
(1)CoCADToolAgent對整體一致性模型的改進的基本原則是以數據的一致性作為顯示一致性的基礎,以保證CADToolAgent能夠兼容現有的CAD圖形數據庫格式. 允許共享數據對象的屬性存在一定的不一致, 這意味著某些實體數據的屬性是可變的, 但是數據庫的結構組成是不變的, 以保證用戶對數據庫的操作不發生錯誤. 既支持透明協作, 又支持明確協作, 要求協作者有明確協作的意識, 能夠理解視圖上的協作含義, 例如實體加鎖記號.
(2) CoCADToolAgent采用復合技術路線來支持多輸入流,發言權和對象鎖三種協作模式及其切換, 以適應不同設計階段協同工作的需要: ①通過服務器端的通訊轉發服務器的序列化機制, 對各個站點的宏命令進行一致化處理, 然后轉發到各個站點, 來實現多輸入流協作模式, 用于協同草擬階段的快速成型; ②用自動遠程執行消息發送機制和面向對象的圖形數據通訊協議來實現發言權協作模式, 以適應任意復雜程度的CAD圖形操作, 并且在發送源和編碼階段進一步減少數據傳輸量, 用于設計中后期階段的集中討論; ③用對實體和實體集的可見性和可拾取性加鎖的方法來實現對象鎖協作模式, 可用于設計中后期階段的分散修改.
(3) CoCADToolAgent對整體一致性模型的改進和放寬是一般性的, 提供了維護各個復制式數據庫拷貝中圖形數據庫結構一致性的最基本的方法, 用戶可以在此基礎上根據應用語義適當收緊一下這些放寬的條件.
3.4 協同感知
傳統交互式CAD方法僅支持單個用戶的人機交互活動, 通過光標,夾點顯示,動態導航將操作結果反饋(Feedback)給操作者, 這種感知僅僅是針對機器的. 而CSCW系統要支持人人交互, 用戶不僅要感知機器的反應, 更重要的是要感知其他用戶的異地通饋(Feedthrough). CSCW系統中工作空間總是虛擬的,人工合成的, 必須采用相應的技術手段, 來支持共享工作空間中人人交互時的感知問題. CoCADToolAgent支持工作空間感知,交談感知,結構感知和以人為線索和中心的感知.
(1) 工作空間感知. CoCADToolAgent支持基于共享圖形工作空間的協同工作, 且深入到現有CAD系統的內核, 支持實體對象的顏色,線型感知. 在未知原有CAD系統源代碼的情況下通過界面耦合方法實現了遠程指針, 該指針支持各個用戶視圖的獨立縮放和模擬動態多光標.
(2) 交談感知. CoCADToolAgent通過一個集成進來的通知/筆談輔助工具來模擬協作用戶之間的相互通知和聊天.
Fig. 2 Architecture of prototype system and communication support
圖2 原型系統總體結構與通訊支持方案
(3) 結構感知. CoCADToolAgent提供了任務結構,圖層結構和用戶角色結構, 支持多任務及腳色機制. 通過任務向導機制為用戶提供任務和人員列表及其相互關系的全局信息.
(4) 以”人”為線索和中心的感知. 利用協作框架的開放性, 從面向對象的圖形實體類庫中通過繼承和重載機制導出一類新的,具有沉浸感的用戶–實體關聯數據類型. 新類有效繼承了原來實體類的所有基本數據和操作方法, 同時又增加了用戶屬性數據和相應增加的操作方法, 從而支持支持以”人”為線索的各種查詢,檢索和統計, 支持以”人”為中心的CAD圖形數據文擋的管理模式.
3.5 多任務及腳色機制.
傳統交互式圖形CAD系統基本上是一個關于設計對象的建模工具, 本身任務機制很弱或者沒有. 而人人交互的CAD系統不僅要支持傳統CAD系統的圖形處理, 而且要支持人人交互和協作功能, 任務機制和腳色機制是必須的. CoCADToolAgent支持多任務和腳色機制.
(1) CoCADToolAgent的協作任務由基本組成屬性和操作集組成. 基本組成屬性由任務ID號,CAD圖形文檔和協作用戶集, 其中任務的ID號與通訊轉發服務器的端口號關聯. 基本操作包括申請任務號,創建任務文檔,保存任務,結束任務和用戶腳色管理.
(2) CoCADToolAgent構造了一個任務向導流程來幫助協作用戶參加CAD圖形的協同設計,使得傳統單機CAD用戶可以很平滑地從單打獨斗工作方法過渡到協同工作環境中來。
(3) 系統支持多任務, 圖2為原型系統的總體結構及其通訊支持方案. 其中, 全局任務信息服務器靜態配置, 其IP地址和端口號是公開. 通訊轉發服務器在創建協作任務時動態創建, 其IP地址取創建該協作任務的站點地址, 其端口號與全局信息服務器任務列表中任務ID號相關聯.
盡管在一個協作任務中, 通訊轉發服務器是通訊瓶頸, 但是由于協作任務及其通訊轉發服務器是動態生成的, 在共享圖形工作空間的多個協作任務情形下, 各個站點之間的通訊是均衡的, 有效地利用了現有通訊資源.
4 原型系統的實現
CoCADToolAgent采用了與現有基于通用CAD系統開發方法不同的技術思路. 不是按照CAD公司所推薦的編程方法和模板程序來開發一個參數化增值模塊或者專用模塊, 而是開發了一個具備網絡通訊和協作支持能力的CAD系統協作支持工具軟件Agent, 并以該工具Agent為核心, 將傳統交互式CAD系統AutoCAD R14升級成為支持人人交互的CAD圖形系統, 從而實現一個基于CSCW的CAD原型系統, 直接支持工業標準的矢量化工程圖形的協同設計.
(a) (b)
Fig. 3 Implementation of prototype system
圖3 原型系統的一個運行實例
用戶首先加載CoCADToolAgent, 并登錄到全局任務信息服務器. 然后通過任務向導(TaskWizard)來來查詢當前的全局協作信息, 選擇創建新的協作任務, 或者參加已有的協作任務. 如果是創建協作任務, 還要創建CAD圖形文檔, 創建通訊轉發服務器, 創建發言權仲裁Agent, 并將這些協作信息登記到全局信息服務器上. 最后按照相應的協作模式進行工程圖形的協同編輯與設計.
圖3為原型系統運行時的一個動態遠程指針示例, (a)為發送端, (b)為接受端. 發送端的動態協作信息(協作者ID及其光標所在世界坐標位置), 可以在接受端被感知到, 并且支持各個CAD視圖的獨立縮放.
5 結束語
具有開放式,協作式以及智能性和群體性的設計方法和設計工具是當前CAD系統的發展方向, 分布式虛擬環境下協同工作的支持技術及支持工具的研究與開發是實現基于CSCW的各類系統的關鍵. 本文針對當前CSCD系統實現方法的不足, 提出了一種直接基于商品化CAD系統上利用協作支持工具CoCADToolAgent開發CSCD系統的總體技術路線和相應有效的實現方法, 并以該Agent為核心成功地將傳統人機交互式二維CAD系統AutoCAD轉變為網絡環境下支持人人交互的CSCD原型系統, 特別適合國內廣大中小型設計和生產部門.
本文研制的CoCADToolAgent是一個面向CAD系統的專用協作支持工具, 比NetMeeting之類的通用協作支持工具具有更好的靈活性和協作性能. 此外, 本文提出的技術思路還可以推廣到Solidworks等三維CAD系統中去實現協同設計功能, 例如用一個CoCADToolAgent for SolidWorks進行三維裝配件設計, 同時以多個CoCADToolAgent for AutoCAD進行零件工作圖設計.
參考文獻
1 Sutherland I. E. Sketchpad: a man-machine graphical communication system. In: Proceedings of AFIPS Spring Joint Computer Conference, Detroit, Michigan: Spartan Book, 1963. 329~346
2 Cutkosky M. R. PACT: An Experiment in Integrating Concurrent Engineering Systems. IEEE Computer, 1993, 26(1): 28~37
3 Anupam V, Baja C. L. Shastra: Multimedia Collaborative Design Environment. IEEE Multimedia, Summer, 1994, 1(2): 39~49
4 Delisle N M, Schwartz M D. Neptune: a hypertext system for CAD applications. In: Zaniolo C ed. Proceedings of ACM SIGMOD 86 International Conference on Management of Data, Washington D. C: ACM Press, 1986. 132~143
5 Schiffner N, Kollmann. H. Distributed sketchpad. In: Proceedings of First International Workshop on CSCW in Design, Beijing: International Academic Publishers, 1996. 491~499
6 Knister M and Praksh A. DistEdit: a distributed toolkit for supporting multiple group editors. In: Proceedings of ACM CSCW’90, Los Angeles, CA, 1990. 343~355
7 Reinhard W., Schweitzer and Volksen G. CSCW tools: concepts and architectures. IEEE Computer, 1994, 27(5): 28~36
相關標簽搜索:基于CSCW的CAD系統協作支持技術與支持工具研究 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 Autoform培訓 有限元培訓 Solidworks培訓 UG模具培訓 PROE培訓 運動仿真