面對網絡化程序的跨平臺、分布式處理及高可靠性的優勢,通用軟件的發展方向是從單機版到C/S再到B/S。仿真軟件的網絡化面臨的困難是如何在盡可能利用原有資源的情況下,快速地向B/S的網絡化銜接。本文提出了一種利用Java與VRML結合的方法可將單機仿真系統直接升級為B/S構造的改進模式。并且,以螺旋錐齒輪數控仿真系統為例,驗證了所提方法的可行性。
1 引言
隨著虛擬現實技術的發展,制造業內的仿真技術的發展十分迅猛,特別是在虛擬機床仿真系統方面。由于它對于生產與開發周期的縮短、研發成本的降低、生產效率的提高產生的良性推動,使得虛擬仿真受到普遍而廣泛的關注與研究。
劉曉輝等實現的仿真加工系統是以目前國內大多數工業仿真軟件提供商所普遍采用的VC++與OpenGL結合的開發方式來完成的,類似的還有VB加OpenGL方式與VB加D3D方式。筆者與熊越東在以AutoCAD為圖形庫支持的基礎上,以VC++作為主要開發環境,結合MATLAB做數值計算支持模塊,開發了螺旋錐齒輪數控仿真系統。
霍志璞歸納了傳統仿真系統軟件的4種方式,基本涵蓋了目前工業仿真系統的開發模式。并且,他以基于網絡的Java環境結合VRML實現了網絡化的遠程仿真系統平臺。
隨著網絡時代的來臨,程序的網絡化方興未艾。單機版軟件的知識產權非常難以保證。硬件加密狗的捆綁銷售也只是添加了極其有限的保障。并且,單機版程序的升級更新也是很不方便的。其安全性更是很差,很容易遭到破解和篡改。同時,相應于不同操作系統,單機版軟件通常需要一一對應地開發不同版本,移植能力差。因此,越來越多的軟件告別單機走上聯網之路。在這種環境下,所謂的C/S(Client/Server)模式開始出現。它是在單機版軟件的基礎上向網絡化的改造。通常是以單機版軟件的發售結合在線實時升級更新服務的方式出現。不過由于其主體軟件資源仍然存在于客戶機中,其安全性仍然不能保證。B/S(Browser/Server)模式的出現完美地解決了這些問題。由于它已被廣泛使用的Web瀏覽器作為客戶端,操作界面友好、一致;邏輯層向服務器端轉移,節省了開發時間;并且B/S最大的優越性還在于強大的跨平臺移植能力。然而仿真系統軟件面對這種形勢卻無疑是一個尷尬的境地。如果將其以C/S模式網絡化。工作量雖然不大,但由于仿真系統所要求的實時動畫生成的特點,受網絡傳輸限制,仍然只能將絕大多數軟件代碼放置于客戶機,則安全性問題沒有解決,僅僅相當于增加了一個在線升級更新程序的功能。若以B/S模式改造,直接將大部分軟件資源放置在服務器端,則數據傳輸的問題將變得更加不可逾越。
霍志璞等直接以B/S模式的Java環境結合VRML建立了機器人仿真系統,建立了網絡化的嵌入式遠程仿真系統。李冉等詳細論述了如何結合VRML和Java這兩種工具來建立交互式的動態場景。
利用VRML在三維建模上的優勢與Java展現的良好的交互功能和跨平臺特點,使得在互聯網上實現復雜的、強交互性的動態場景變得非常方便。并且,對VRML進行了較為詳細地介紹。對VRML的節點式組織形式及與Java的具體結合方式也作了描述。無疑,此種基于B/-S模式的網絡化跨平臺的開發模式相比于傳統的開發有著很多的優點。但是,在向著網絡化潮流邁進的時候,將過去的代碼完全拋棄而重新做起,則是難以接受的。許多軟件商選擇了先向C/S改造。但是如我們所述,這種改造是很不徹底的。
[IMG=圖1 螺旋錐齒輪仿真系統的開發及簡要構造]/uploadpic/THESIS/2007/11/2007111411053795960Y.jpg[/IMG]
圖1 螺旋錐齒輪仿真系統的開發及簡要構造
[IMG=圖2 螺旋錐齒輪仿真系統主界面]/uploadpic/THESIS/2007/11/20071114111116726654.jpg[/IMG]
圖2 螺旋錐齒輪仿真系統主界面
[IMG=圖3 網絡版仿真系統圖形界面]/uploadpic/THESIS/2007/11/2007111411154046134A.jpg[/IMG]
圖3 網絡版仿真系統圖形界面
本文的目的旨在找到一種合理的方法,在盡可能多利用過去軟件資源基礎上,直接使仿真系統變化為B/S模式架構的新一代遠程虛擬加工系統,并對之進行歸納進而形成一種具有一般意義的方法。
2 螺旋錐齒輪數控仿真系統單機版簡介
在2004年底開發的單機版螺旋錐齒輪數控仿真系統是為了適應螺旋錐齒輪機床從傳統搖臺式向5軸聯動數控式的進步而進行的研究。其系統的實現方案為VC++結合AutoCAD的ObjectARX庫以及MATLAB作為數值計算開發環境而開發出的程序。其簡略構圖如圖1所示。其軟件單機版主界面如圖2所示。
3 VRML語言及JAVA開發平臺
3.1 VRML語言簡介
VRML(Virtual Reality Modeling Language,虛擬現實建模語言)是因特網技術與虛擬現實技術密切結合所發展而來的新技術,其著眼于建立因特網上的具有真實感的交互式三維場景并成為一種有效的3D文件交換格式。VRML提供的技術能夠把三維、二維、文本和多媒體整合起來。當這些結合在一起時,就可能產生一種全新的交互式應用。并且VRML早于1998年被正式批準為國際標準(1SO/IECl4772—1:1997,VRML97)。
由于VRML填補了HTML只能顯示平面信息的缺陷,改變了原來WWW單調、交互性差的弱點,已經成為Internet三維虛擬世界的主要標準,目前大多數三維圖形制作軟件,如3DS MAX都開發了VRML文件格式的輸出接口。
3.2 JAVA語言簡介
Java語言自從正式問世以來只有4年,但是其發展卻極為迅速。Java語言擺脫了C++的混合式語言結構,是一種真正的面向對象語言。Java出現之后迅速引起了廣泛的關注。
Java最重要也是最優越的特性就在于它的平臺無關特性。它借由一個結構中立的虛擬機使得其程序可以跨越操作系統平臺運行在任意一臺計算機之上。這是以往任何一種語言均不具備的特征。除此之外,由于它簡單易用、分布式處理以及良好的安全性等優越特性,使得它受到越來越多的青睞。
Java的應用領域很廣,其中利用JavaScript腳本與Java web應用結合在一起實現的動態交互式網頁制作是Java目前的一個重要的應用方向。
由于VRML填補了HTML只能顯示平面信息的缺陷,改變了原來WWW單調、交互性差的弱點,已經成為Internet三維虛擬世界的主要標準,目前大多數三維圖形制作軟件,如3DS MAX都開發了VRML文件格式的輸出接口。
總之,Java與VRML的結合為實現分布式B/S模式的虛擬仿真系統,提供了切實有效的開發環境。
4 單機仿真系統的網絡化
要實現單機系統的網絡化就必須將圖1的3個主要模塊實行網絡化分布式處理可接受的形式。
MATLAB開發的數值計算模塊是以dll動態連接庫的形式加載的。因此,在網絡版中,同樣可以置于服務器端,被Java主模塊訪問。
而以Object ARX在VC環境下開發的圖形運動模塊則需要首先將單機版的圖形顯示場景轉變為VRML語言格式。轉換后圖形界面如圖3所示。
然后,可根據原版程序定義對應的運動完成此模塊的改造。對于簡單的運動用傳感器節點和移動位置節點即可轉換。復雜的運動交互式用Script節點使VRML與Java或JavaScript進行交互,以事件處理方式來仿真加工過程。
最后,主模塊的改造即是將基于窗體的Windows程序改造為基于動態網頁的Web應用。由于VC與Java是面向對象構造的。因此,可以根據對應結構改為Java可識別的格式。
這樣,就完成了螺旋錐齒輪仿真系統的網絡化了。
5 結論
本文通過對傳統仿真軟件開發模式與網絡版開發模式的分析比較,對VRML與Java的應用進行了描述,在分析了單機版仿真軟件與基于B/S模式的網絡化仿真軟件的優劣后,提出了一種從單機版仿真軟件向B/S模式的網絡化仿真軟件升級的可行方案。并以螺旋錐齒輪虛擬仿真系統為例驗證了方案的正確性。由于VRML的普及,大多數圖形軟件均具有VRML接口,使得本文的改造模式具有更普遍的意義。
第二屆伺服與運動控制論壇論文集
第三屆伺服與運動控制論壇論文集