方 偉,胡蘭蘭
(淮北職業技術學院計算機系,安徽淮北 235000)
近年來利用VRML和網絡技術實現對真實環境信息的三維WEB展示已經被應用到人類社會的各個領域。VRML以其逼真的場景表現和良好的界面交互成為人們解接觸、了解信息數據的非常直觀有效的手段。但隨著人類信息數據復雜程度的不斷提高和WEB數據庫技術的發展,如何利用強大的網絡資源和網絡編程技術實現VRML場景三維信息的傳輸和顯示,接收更為復雜的遠程控制命令,并能夠有效地建立與數據庫系統良好的互聯機制,提高虛擬系統的可操作和可擴展能力,已經成為VRML開發設計非常重要和突出的問題[1]。解決以上的問題的關鍵在于要找到一個能夠連接虛擬場景與數據庫的中間數據通道。VRML是通過瀏覽器進行解釋執行的,而ASP是WEB環境下實現與WEB數據庫連接的最為廣泛的技術之一,因此ASP首當其沖地成為連接VRML與數據庫系統的最佳技術選擇。
1ASP技術分析
ASP(Active server pages)是Microsoft公司開發出的一種基于服務器端的腳本環境,可以說是當今最為流行的WEB應用開發技術之一。利用ASP可以非常方便地開發交互式動態網頁和具有強大數據庫訪問功能的WEB應用程序。ASP與常見的基于客戶端的動態開發技術(如VBScript、ActiveX Control、JavaScript等)不同,其中的指令和代碼全部是由服務器進行解釋和執行,減少了對客戶端的要求,使開發者不用考慮客戶端瀏覽器是否支持ASP,只要使用常規可執行HTML碼的瀏覽器即可瀏覽ASP動態生成的主頁內容,從而能夠滿足不同客戶端的軟硬件需求[2]。ASP提供了一系列的內置對象,利用ASP提供的這些對象可以實現從瀏覽器中接受和發送信息,從而能夠即時動態反映網頁的變動,在實時性方面得到了很大的提高。此外,ASP集成于HTML中,無需編譯或鏈接,而且可以通過ActiveX服務器組件實現復雜的WEB擴展功能功能。總之ASP技術可以把靜態的HTML網頁、ActiveX組件以及各種腳本語言融合在一起,設計出動態交互式、高性能的WEB服務器端程序,已經成為開發WEB應用服務程序不可或缺的技術手段[3]。
ASP當中的命令和Script程序都是由WEB服務器進行解釋執行,然后將運行處理結果與原有的HTML標記組合回送到客戶端瀏覽器,其運行工作過程大致可分為以下三個過程:首先客戶端用戶通過瀏覽器發出一個.asp的服務請求,并傳送給服務器;然后WEB服務器從硬盤中或者內存中讀取被請求的ASP文件,并調用ASP引擎,對文件進行解釋。如果其中包含有ASP腳本程序,ASP則會依據腳本類型調用相關腳本引擎解釋執行其中的腳本命令,若腳本中包含有對后臺數據庫的訪問請求,則由IIS啟動數據庫訪問組件ADO(ActiveXData Objects)執行對數據庫的相關操作。最后WEB服務器將ASP運行處理的結果與靜態的HTML代碼進行組合生成一個新的標準的WEB頁,并返回給客戶端瀏覽器[4](圖1)。
圖1 ASP運行機制
目前,幾乎所有的基于WEB的開發設計都離不開WEB數據庫的支持,正是由于WEB數據庫的應用,才大大提高了網絡服務的交互性和實用性,WEB數據庫技術已經成為Internet的重要發展方向之一[5]。所以ASP要提供強大的與數據庫互聯的功能。ASP在與對數據庫連接訪問時,是通過ASP內置的一個數據庫訪問組件——ADO(ActiveX Data Objects)建立與數據庫的聯系,通過SQL(Structured Query Language)讓用戶在瀏覽器界面當中輸入、更新或刪除站點服務器上的數據庫信息。其技術實現過程可分為以下幾個步驟:(1)對數據庫數據來源進行設定。ADO運行在Windows NT平臺,要訪問NT站點的數據庫,須在ODBC中設置DSN;(2)建立連接對象,打開待訪問查詢的數據庫;(3)設定SQL命令,執行訪問數據庫的相應操作,并利用Recordset語句保存顯示對數據庫的操作結果;(4)關閉數據庫。
WEB數據庫實際上就是用戶以瀏覽器作為輸入數據的接口進行信息的錄入,然后瀏覽器將得到的數據傳送給網站,再由網站對相對應的數據庫進行查詢、修改或者保存等操作,最后網站再將處理的結果返回瀏覽器,以WEB頁的方式顯示給操作用戶。隨著計算機網絡的發展,在基于WEB的信息系統的研發設計中,不僅需要系統提供一個良好的靜態網頁訪問能力,還希望能夠與后臺的數據庫實現對接以保證信息的實時準確性,簡單說就是提供動態網頁服務。要實現這個目標,就需要在WEB應用中使用數據庫動態開發技術和方法,將WEB和數據庫系統有效地結合,使用戶能夠動態地訪問數據庫中的數據,從而實現交互式的Internet信息服務功能。WEB數據庫的應用,不僅提高了網絡服務的實用性,也增強了網絡功能的適用性,已經成為Internet的主要發展方向之一[6]。
WEB數據庫系統主要是由客戶端瀏覽器、WEB服務器、中間件、數據庫服務器組成,其中完成WEB服務器到數據庫服務器之間連接過程的是中間件模塊。中間件是位于操作系統和分布應用之間的具有標準協議和程序接口的通用服務,負責管理計算機網絡資源和通信,另外通過它可以直接調用外部程序、腳本去操作后臺數據庫,并能夠將操作結果以HTML頁面的形式返回給客戶端瀏覽器。
VRML是一種網絡上實現對現實場景進行三維模擬的建模語言,是對HTML的3D展示。它的出現改變了傳統的網絡2D畫面顯示模式,將更加逼真的3D顯示狀態呈現給用戶。隨著虛擬技術的進一步發展,人們對虛擬系統與用戶之間的交互能力要求越來越高。VRML起初是通過自帶的一些感知節點來捕捉用戶的行為操作,通過事件傳遞改變虛擬場景對象,這種方法實現較為簡單,但是靈活性不高,交互控制方式單一,難以進行更為復雜的交互設計。于是VRML通過Script節點與Java進行混合編程進一步提高了與外界的數據流通,增強了VRML實現復雜控制的能力[7]。數據庫的出現和應用使基于WEB的開發不僅解決了數據的難以存儲和訪問的難題,還大大增強了所開發軟件的實用性和應用范圍,應該說沒有數據庫支持的軟件系統是不完善的,沒有太大研究開發價值,因此VRML與WEB數據庫之間的連接技術實現也就成為虛擬技術開發設計中的關鍵步驟。VRML自身沒有提供對數據庫的編程功能,也沒有提供對應的數據庫控制節點,所以要實現VRML與數據庫的互聯就必須要借助于其它的技術手段進行實現。隨著VRML和WEB數據庫技術的不斷發展和完善,已經可以通過多種技術手段的結合,來實現這一過程,例如利用錨節點中的URL域值跳轉至動態網頁,把VRML對數據庫的訪問轉換成動態網頁對數據庫的訪問,或者在VRML中嵌入某種腳本語言或者程序實現對數據庫的訪問[8]。在這里我們著重介紹ASP與VRML結合實現虛擬場景與數據庫之間的連接。
VRML由于受到自身元素的一些限制,無法與數據庫建立直接的交互通道,所以必須尋找一個中間數據通道,既能夠被VRML場景文件進行調用,又可以實現對WEB數據庫的快速連接。由于VRMl虛擬現實場景文件最終是要嵌入到WEB頁面,通過瀏覽器去進行解釋執行和動態顯示,而ASP是當下動態網頁設計及WEB數據庫連接的主要技術手段,因此我們可以設想是否能夠在VRML中建立與動態網頁之間的連接,然后借助ASP建立動態網頁與數據庫之間的互聯,從而可以建立用戶、VRML與數據庫的聯系。
圖2 用戶、VRML和數據庫之間的訪問關系
VRML中可以通過錨(Anchor)節點在場景內物體上增加鏈接點,在瀏覽時用戶只要點擊這些物體,就會實現由虛擬場景到所鏈接環境的切換[9]。VRML中利用Anchor節點調用ASP文件的主要語法如下:
其中children域中給出的是一個定義的造型對象,當用鼠標點擊該對象時就能跳轉到url域所指向定的ASP頁面上。然后由頁面中相應腳本完成對數據庫信息的讀取、查詢、刪除等操作。當然url域中所指定的網頁還可以是其它格式的網頁文件,如html、php、jsp等格式。研究表明,如果數據庫查詢參數的設定需要通過輸入或者選擇的方法進行,那么url域通過html文件作為中介,再通過隱含網頁中form表單的隱含控件進行參數夾帶是較為妥當的處理方法;如果傳遞的是固定參數,則可以直接利用動態網頁直接與數據庫連接并傳遞參數值,使程序之間的調用更加直接,也提高了連接訪問數據庫程序的速度。下面給出用于實現VRML、ASP和數據庫連接的主要ASP代碼:
隨著網絡通信技術和虛擬技術的不斷發展和完善,VRML與WEB數據庫技術已經成為基于WEB系統開發的最為關鍵的兩項技術。ASP通過與VRML進行結合,不僅使得VRML可以快速地與數據庫建立連接,而且能夠把ASP程序、VRML程序和數據庫進行隔離,使得他們之間既可以相互調用訪問,又可以獨立地進行配置管理,從而使開發出來的WEB系統擁有更加強大的靈活性和可擴展性,進一步保證了數據傳輸的有效性和數據響應的高效性。
[1]王成,周迪,陳南.VRML在信息查詢中的應用[J].計算機系統應用,2001(8):45-47.
[2]汪曉平.ASP網絡開發技術[M].北京:人民郵電出版社,2000:5-10.
[3]石志國.ASP動態網站編程[M].北京:北京清華大學出版社,2001:20-25.
[4]劉志超,周玉來.利用ASP實現WEB數據庫的訪問[J].河北工業科技,2004(4):36-39.
[5]祝建中,鄭瑜釩.基于WEB的三層C/S模型及其實現[J].計算機系統應用,2001(11):35-38.
[6]李春青,李海生.WEB數據庫技術及其發展趨勢[J].軟件導刊,2012(2):155-156.
[7]郭宇.基于VRML虛擬校園網設計[D].大連:大連理工大學,2008:1-30.
[8]王碩,周昕宇.VRML與外界數據交互技術的實現[J].計算機系統應用,2000(2):35-37.
[9]王德新.Web環境下VRML場景與數據庫互連的研究與實現[D].沈陽:沈陽工業大學,2003:17-30.