摘要:動態數據交換是實現網絡協同設計的關鍵技術,但是如果在協同設計中每一步的設計信息都進行實時交換,那必然在動態數據交換中包含了不必要的數據。為了解決這個問題,提出基于ECA規則的動態數據交換技術,并建立了應用該技術的網絡協同設計系統框架結構。該技術通過應用主動數據庫中的ECA規則監控幾何圖形的變換矩陣來識別模型實體數據的更新,并只傳輸滿足條件的更新數據給STEP動態數據交換進行數據轉換,從而減少數據信息的網絡傳輸量以及在更新數據中降低不必要數據產生的可能性。另外,應用一個基于鎖的并發控制機制來解決多用戶的交互沖突。最后通過建立跨平臺網絡協同設計原型系統(CISCD)驗證動態數據交換技術的有效性。
關鍵詞:動態數據交換; 事件—條件—動作; STEP; 網絡協同設計
中圖分類號:TP391文獻標志碼:A
文章編號:1001-3695(2008)04-1204-03
網絡協同設計中數據交換的特點主要有產品數據復雜多樣、產品數據交換頻繁、流量大、產品數據的一致性要求高、產品數據的并發性訪問頻繁。這些特點使得數據在網絡協同設計中難以得到實時交互[1]。而動態數據交換可以克服這些特點帶來的問題,它是成功實現網絡實時協同設計的關鍵技術。ECA(event-condition-action)規則是主動數據庫(ADB)技術中一種將被動數據形式轉換為主動數據形式的有效工具,應用非常廣泛。
1動態數據交換
在網絡協同設計系統中,各CAD子系統數據庫中的數據要通過網絡進行交互。目前主要采用的數據交換方法是文件交換,設計中傳輸了大量的數據。但是這種文件交換的數據傳輸方式不適合異地實時協同設計系統,因為圖形文件一般很大,再加上網絡帶寬的限制,在協同設計中來回傳輸圖形文件必將花費大量的網絡傳輸時間,設計者之間的實時交互設計將會變得很困難。
文獻[2]提出了一種動態數據交換格式,它包含數據段和控制段。數據段只包含被改動的部分實體的數據;控制段包含必要的控制信息,如IP地址、命令名、序列號等。應用動態數據交換格式,設計者之間只需傳輸改動的實體數據,而不必傳輸改動后的整個圖形。動態數據交換格式與文件交換格式相比,增加了對被修改實體數據的提取、格式轉換和恢復等操作的時間,但這些時間均在各參與者本地計算機上進行,它花費時間較少,而換來的是大大減少了在網絡上的數據傳輸量。
為支持異構CAD系統間的實時數據交換,文獻[1]提出了異類CAD系統之間的動態數據交換體系結構和動態數據交換組織模式。它以STEP為產品數據交換標準,Oracle數據庫為系統核心數據庫,各CAD系統用戶可同時訪問Oracle數據庫,能夠實現用戶與服務器、用戶與用戶之間的圖形、數據的實時交互。數據交換只對改變的數據對象進行操作,減輕了網絡傳輸的負擔,提高了數據交互效率。
但是在動態數據交換格式中設計者每一步的設計內容均需要進行實時交換,無疑在動態數據交換格式中包含了不必要的數據。例如,一個設計者在設計時產生了不滿意的或不符合要求的實體數據,這時這個設計者會立即刪除或修改它,然后產生新的實體數據。在動態數據交換格式中,這樣的錯誤操作會在其他設計者的CAD子系統上重復操作,而這對于其他設計者無用。因此,在動態數據交換格式中什么時候傳輸以及傳輸怎樣的實體數據是必須決定的。另外多個設計者產生的實體數據的合并也會產生問題。需要提供一種方法來監控和仲裁在異地實時協同設計中的動態數據交換。
2ECA規則
傳統的數據庫中,數據的產生、存儲、修改和刪除等操作均是由使用者或者應用程序發出,數據是一種被動的數據形式。主動數據庫(active database,ADB)屬于智能數據庫的一種,因具有自動觸發執行一些系統或用戶預定義操作序列的功能而得名,它是事件驅動的數據庫。在主動數據庫中,當發生特定事件或者滿足特定條件時,特定的數據操作能自動地執行[3]。ECA規則是主動數據庫的研究和應用過程中普遍使用的一種控制和規范主動數據庫行為的規則。在該規則中,E代表在數據庫所在環境中發生且對數據庫狀態改變有觸發作用的事件;C代表主動數據庫響應觸發事件的條件;而A則代表主動數據庫在條件滿足的情況下對觸發事件進行響應時采取的行動。通過將原本需要寫入應用程序的系統管理和控制策略抽象和分離成為由event、condition和action有機結合的ECA規則知識庫,以ECA規則為核心的主動數據庫系統能夠有效地實現數據與知識的分離。ECA規則如下:
其含義為:當事件(event)發生時,如果滿足條件(condition),則執行活動1(action 1);否則,則執行活動2(action 2)或不執行任何活動。其中,event和condition均可以通過關系連接符and或or關聯起來,從而表達更加復雜的事件和條件。ECA規則是與一系列基本行為聯系在一起的,規則可以響應內部和外部的各種事件,并適時地觸發包括維護數據庫和執行一些特定應用在內的一系列行為。另外,ECA規則在數據庫中能夠動態地增加和改變以滿足不同用戶對事件和條件的要求。
3基于ECA規則的動態數據交換系統結構
在異地實時協同設計系統中應用ECA規則可以監控和仲裁動態數據交換。更新的數據在本地被識別后通過ECA規則自動實時地傳輸給其他設計者。基于ECA規則的動態數據交換系統結構如圖1所示。
系統采用C/S體系結構,由服務器、數據庫和處于不同地理位置的協同用戶組成。在系統體系結構中,服務器對用戶訪問權限、數據存儲、數據查詢、版本控制等進行管理。各用戶通過網絡進行實時協同設計,每個用戶端由CAD軟件、ECA Madiator和STEP動態數據交換組成。ECA Madiator則主要辨別實體數據的更新,將更新的數據傳送給STEP動態數據交換以及從STEP動態數據交換接收更新的數據。STEP動態數據交換把各用戶產生的實體更新數據轉換成STEP動態數據交換格式傳送給其他用戶,以及把接收到的STEP動態數據交換格式數據轉換成接收用戶CAD軟件的數據格式[4]。
3.1ECA Madiator
在協同設計過程中,ECA Madiator監控模型實體數據根據ECA規則識別更新數據。當實體更新被監測到時,ECA Madiator根據ECA規則自動在實體數據上識別更新,并只傳送更新的數據給STEP動態數據交換。另一方面,當ECA Madiator接收更新數據時也根據ECA規則把數據傳送給CAD軟件。圖2顯示了ECA Madiator中識別實體數據更新的程序流程圖。
ECA Madiator中的關鍵是更新數據的識別,它是整個系統的核心技術之一。實體的更新操作一般包括insert(create)、delete和modify三類,insert(create)和delete的更新識別較為簡單。本文主要討論modify的更新識別。當實體進行修改時,其幾何圖形必然發生了圖形變換,變換矩陣可實現對圖形的變換。三位圖形的幾何變換矩陣可用T3D表示。其表示式如下[6]:
T3D=a11a12a13a14
a21a22a23a24
a31a32a33a34
a41a42a43a44
從變化功能上T3D可分為四個子矩陣。其中:a11a12a13a12a22a23
a31a32a33產生比例、旋轉、錯切等幾何變換;[a41a42a43]產生平移變換;a14a24a34產生投影變換;[a44]產生整體比例變換。
ECA Madiator通過監測變換矩陣來識別更新的數據。例如當兩個變換矩陣a和b中有任何一個對應的數值不相同時則表示幾何圖形發生了圖形變換,老的變換矩陣a應該由新變換矩陣b替換。圖形變換有可能時時都在進行,變換矩陣也隨時在變換,這樣實時傳送更新數據會增加網絡的傳輸量以及導致在更新數據中包含不必要的數據。為了解決這個問題,在比較兩個變換矩陣之前可以加入計時器,通過一定的時間(30 s或者60 s)來監測是否有更新的變換矩陣c產生。如果沒有則可以認為實體的修改已得到該設計者的確認,老的變換矩陣a由變換矩陣b替換。因此,系統中ECA規則可定義為
when(有新的變換矩陣b產生)
if(30 s內沒有新變換矩陣c產生) and (變換矩陣a和b中數值不相等)
then(變換矩陣a由b代替) and (傳送數據)
else(1)
3.2STEP動態數據交換
3.2.1STEP動態數據交換格式
協同環境中的CAD用戶各自有自己的數據格式。為了在不同系統間進行準確無誤的數據交換,需要建立一個統一的信息結構標準來對不同系統的數據進行表示,這種標準就是產品數據交換標準STEP[5]。STEP標準對產品的形狀和幾何實體進行了詳細描述,包括幾何關系、拓撲關系和幾何描述模型。
CAD系統對STEP交換文件的方式為:STEP前處理器將某一CAD系統(A)內的數據轉換成符合STEP交換結構語法的文件(交換文件);STEP后處理器讀入STEP文件,將交換結構描述的數據轉換成接收系統(另一CAD系統B)內的數據[4]。
STEP動態數據交換格式由數據段和控制段組成,如表1所示。控制段包含user ID、實體序列號和編輯命令。User ID和實體序列號可以保證系統在各協同設計用戶之間惟一標志一個實體。數據段中的STEP數據是ECA Madiator識別的更新數據。STEP動態數據交換只對更新的數據對象進行操作,減輕了網絡傳輸的負擔,提高了數據交互效率。
3.2.2更新數據傳送
當更新數據被轉換后,CAD用戶則向服務器和其他CAD用戶傳送該數據。當多個用戶同時傳送更新數據時必然會發生沖突,系統使用一個簡單的基于鎖的并發控制機制來解決這種沖突:
a)當一個CAD用戶需向系統發出發送指令時,系統設定該CAD用戶的狀態為busy;相對的CAD用戶狀態為free。
b)系統查詢在服務器注冊的其他CAD用戶。
c)如果其他CAD用戶狀態為free,則將更新的數據發送給他們;如果CAD用戶的狀態為busy,系統則終止向其傳送數據并在數據庫中保存該數據,當狀態轉變為free時,服務器再將該更新數據傳送給該CAD用戶。
d)當最初的CAD用戶將更新數據傳送給其他CAD用戶和服務器后,其狀態被系統重新設定為free,以便他能接收其他的更新數據。
4應用實例
為了驗證本文所提出的動態數據交換技術,以Pro/E Wildfire 2.0和UGS NX 4.0作為建模工具開發了跨平臺的網絡協同設計原型系統。圖3~6表示了兩個設計者利用該原型系統以一部手機3D模型為例來說明網絡協同設計動態數據交換的過程。
設計者a和b分別用Pro/E和UG對手機進行協同設計,手機模型如圖3、4所示。兩個設計者通過協同會議討論決定將手機天線的長度由15 mm修改為20 mm。設計者a對手機天線進行修改,手機天線進行修改后得到的模型如圖5所示。原型系統設計者a端的ECA Madiator對手機模型進行監測和識別,只將手機天線的更新數據傳輸給STEP動態數據交換進行數據轉換。接著更新數據的STEP動態數據交換格式傳送給設計者b,設計者b端接收更新數據后的模型如圖6所示。
5結束語
在異地實時協同設計系統中,設計者需要實時共享和交互設計信息和數據。本文提出了基于ECA規則的動態數據交換技術。該技術通過主動數據庫的ECA規則監測和識別幾何模型實體數據更新,并只傳輸滿足條件的更新數據給STEP動態數據交換,從而減少數據信息的網絡傳輸量以及在更新數據中減少不必要的數據。筆者建立了基于ECA規則的動態數據交換系統體系結構,并使用一個簡單的基于鎖的并發控制機制來解決多用戶的交互沖突,也就是避免多用戶同時傳送更新數據。本文的ECA規則中條件是通過設計人員的經驗來制定的,筆者認為一個模型實體在一定時間后(本文中采用的是30 s或者60 s)沒有進行修改則表示設計者完成了對該實體的修改。而實際設計情況不一定是這樣,因此需要制定一個更加準確定義的條件來滿足只傳輸必要的更新數據要求。此外動態數據交換會導致某一設計對象在數據庫中存在多個版本,因此進一步的工作還包括數據庫中數據多版本的管理和控制研究。
參考文獻:
[1]CHEN Xiao-an, SU Dai-zhong, LI Zhi-qiang. Network-supported collaborative design based on dynamic data exchange[C]//Proc of the 4th International Conference on Computer-Aided Industrial Design and Conceptual Design. Jinan: International Academic Publishers, 2001: 426-431.
[2]LUO Tian-hong, CHEN Xiao-an, LIN Li-hong, et al. Dynamic data exchange in the collaborative design based on Internet environment[C]//Proc ofEurope-Asia Symposium on Advanced Engineering Design and Manufacture for Globalization. Xi’an: Northwestern Polytechnical University Press, 2004: 327-336.
[3]WIDOM J, STEFANO C. Active database systems[M]. Los Altos: Morgan Kaufmann Publishers Inc, 1996: 5-11.
[4]YEH S C, YOU C F. Combining express and UML to implement a STEP-based system[J]. International Journal of Computer Applications in Technology, 2002,15(1-3): 98-108.
[5]MOORTHY, SHREEKANTH. Integrating the CAD model with dynamic simulation: simulation data exchange[C]//Proc of Winter Simulation Conference. Phoenix: ACM SIGSM, 1999: 276-280.
[6]孫家廣,楊長貴. 計算機圖形學[M]. 北京:清華大學出版社,2002: 60-83.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”