基于JSP的CAE主動知識輔助系統的設計和實現
??????? 0 引言
??????? 機電產品設計中涉及復雜的分析計算, CAE (計算機輔助工程)是其中薄弱環節。CAE通常包括有限元、優化設計、仿真技術、試驗模態分析等,而有限元是其中最重要的組成部分。隨著對現代設計要求的不斷提高,不單單要求常規的線彈性有限元知識,還要求深入的非線性、塑性和動態有限元知識等,成為現代工程師的負擔。
本文針對汽車球頭銷的ANSYS有限元分析,基于JSP設計出一套網絡化知識輔助系統。該系統能診斷出用戶的知識盲點,從而快速、準確的返回動態的相關查詢結果,達到機器向人的主動知識輔助的目的。
??????? 1 系統實現技術的選擇
??????? 目前,制作動態交互網頁的Web應用開發技術主要有三種: ASP(Active Server Page), PHP(ProfessionalHypertextPreprocessor)和JSP(Java ServerPages)。ASP是微軟公司開發的一種動態網頁技術,是腳本加COM的組合,由服務器端的解釋器負責解釋執行,可以使用腳本語言和作為編程語言,可以與對象交互。但只能在微軟的平臺上運行,運行效率不高, 開發較復雜[1]。
??????? PHP是運行于服務器端的嵌入式腳本語言,解釋執行可以跨平臺。但沒有統一的數據庫接口,如果改變數據庫平臺,應用程序也需要隨之改變。
??????? JSP是SUN公司于1999年6月開發出來的一種全新的動態頁面技術。它在傳統的HTML代碼中,利用HTML標簽的擴展,插入JSP腳本代碼,構成JSP頁面[2]。JSP被很多Web服務器支持,可以跨平臺在很多操作系統下運行; JSP能訪問符合JDBC技術規范的數據庫,所以不需要針對不同的數據庫而重新編寫程序;在組件上JSP支持JavaBean,而JavaBean的開發遠比COM簡單,且更改后無需象COM那樣重新注冊;JSP具有很強的安全性。鑒于JSP的諸多優點,選擇它作為本系統的開發工具非常理想。
??????? 2 系統的用戶設置和功能模塊設計
??????? 2·1 用戶設置設計
??????? 本系統用戶分為三種:系統管理員、專家用戶、普通用戶。
??????? 系統管理員:管理整個系統的所有用戶,所有模塊網頁。
??????? 專家用戶:對知識庫進行管理,根據用戶需要對知識庫表的刪除、添加、編輯修改。
??????? 普通用戶:借助系統獲取知識輔助,向系統提問,為改進系統留言。
??????? 2·2 功能模塊設計
??????? 2·2·1 前臺主要功能模塊設計
??????? 前臺模塊主要包括網站導航、用戶注冊及登錄、知識查詢搜索、知識分類、知識檢測及提供、用戶提問、后臺登錄入口、用戶常見問題排行等頁面。
??????? 其中知識檢測及提供是系統的核心部分。主要用戶是普通用戶,主要功能是判斷出用戶的知識盲點,并提供相關知識點。此環節是采取設問的方式確定用戶的知識欠缺,根據用戶需要可采用快速輔助和全面輔助兩種方式。全面輔助就是根據汽車球頭銷的有限元分析過程全面細致地考查,使用戶得到全面的主動知識輔助;快速輔助利用輔助次數的統計由多到少排序,常見的知識障礙排到前面,從而達到了快速輔助的效果。
??????? 系統還為用戶提供了提問的環節:該部件獲取用戶的問題文本[3]。用戶可選擇知識庫自動答疑。系統對用戶所提的問題文本進行語義分析,得到問題子串,形成搜索答案的條件,然后在知識庫搜索相近的答案,呈現給用戶。若沒搜索到相應答案,系統將自動此問題提交到專家用戶的郵箱中,專家用戶回答完后,系統將信息反饋給普通用戶,在此同時,普通用戶的問題和專家用戶的答案被同時存儲到知識題庫中。下次普通用戶查詢同樣的問題時,系統就可以自動給出答案。
??????? 2·2·2 后臺系統管理模塊設計
??????? 該模塊主要是面對系統管理員用戶,管理人員通過輸入正確的用戶名和密碼方可登錄到網站后臺。管理員的主要工作就是設置整個系統、系統部分模塊的開放與關閉,維護前臺頁面,保證系統的正常運行;協助專家用戶及時刪除、添加、修改知識庫,數據備份;實現對系統中的用戶的增添、修改和刪除,修改用戶信息等。
??????? 3 實現過程
??????? 3·1 開發工具及運行環境
??????? 用JSP進行網絡版CAE知識輔助系統的開發, JSP編程采用B/S (Browse/Server)模式,以Java為基礎語言,在Windows、UNIX (或Linux)平臺上均可運行。應用的軟件: Windows 2000 Server/XP操作平臺、SQL Server2000建立后臺數據庫、服務器選擇ApacheTomcat、JDK、集成開發環境Eclipse。采用結構化查詢語言SQL (StructureQueryLanguage)。
??????? 3·2 設計模式
??????? 本系統采取了JSP + JavaBean技術。在該模式中,JSP頁面響應請求并將處理結果返回給客戶,所有的數據庫操作和復雜業務邏輯操作都通過JavaBean來實現。該技術實現了頁面的表現和頁面的商業邏輯相分離[4]。
??????? 3·3 知識表示及關系型知識庫的建立
??????? 用SQL Server建立知識庫,應用面向對象表示法完成知識表示,專家知識庫是一個典型的線性與樹型相結合的層次結構。把專業領域的大量專家知識歸納。總結,根據汽車球頭銷有限元分析過程,將涉及到的材料力學、Ansys操作、非線性理論、球頭銷知識采用面向對象程序設計,分別建立了對應的知識表,其中各表之間通過其編號的內容進行關聯。知識庫表簡單易懂,容易修改,通過對知識庫表的刪除、添加、編輯修改等操作,實現了知識樹的樹型數據結構的知識表示和知識庫的建立。
??????? 3·4 利用JDBC實現對數據庫的訪問
??????? 在JSP技術中通常用JDBC實現與數據庫的相連。如果要使用數據庫,就必須使用JDBC。通過使用JDBC API來進行數據庫訪問,你可以在不修改應用程序的情況下,改變所使用的數據庫驅動。其基本流程如下。
??????? 3·4·1 建立到數據庫的連接[5]
??????? 首先加載數據庫驅動。如:
??????? Class·forName (“com.microsoft.jdbc.sqlsersver.SQLServerDriver”);
??????? 再指定連接字符串, JDBC連接字符串是由URL指定的,格式如下:
??????? Jdbc subprotocol subname
??????? 其中subprotocol是被請求的數據庫連接的類型(如Oracle、DB2等),而subname提供了所需要建立的連接的一些附加信息。
??????? 3·4·2 執行SQL語句
??????? 在數據庫成功建立連接以后,就可以執行那些完成實際工作的SQL語句了。首先必須創建一個語句對象,用于向數據庫引擎發送SQL語言。有三種不同類型的語句對象:
??????? (1) Statement。基本的語句對象,提供了直接在數據庫中執行SQL語句的方法。適合于對那些只執行了一次的查詢語句,如CreateTable、DropTable等。
??????? (2) Preparedstatement。用于那些需要執行多次,每次僅僅是數據取值不同的SQL語句。
??????? (3) Callablestatement。用于訪問數據庫中的存儲過程。
??????? 3·4·3 處理結果
??????? 在執行了一個SQL語句后,必須處理得到的結果。SQL查詢(Select語句)返回一個含有查詢結果的結果集。結果集由行和列組成,各列數據可以通過相應數據庫類型的一系列Get方法(getString、getInt或getObject等)得到,如要從Ansys操作表(Ansys_table)中得到操作對象(Object)為點的創建(Cre-ate)過程,用Java可以這樣實現:
……
PreparedStatement Stmt = Con. prepareStatement
(“Select* From Ansys_TablewhereObject=‘點’”);
ResultSetRs = stmt. executeQuery();
StringRs_data = Rs. getString(“Create”);
Out. println(“點的創建:”+ Rs_data);
……
??????? 在取得了一行記錄的所有數據后,可以調用Next()方法來移動游標到下個記錄。
??????? 3·4·4 從數據庫斷開連接
??????? 在結果集、語句和連接對象用完以后,必須正確地關閉它們。通過調用Close ()方法,可以確保正確釋放與特定數據庫系統相關的所有資源。
??????? 4 結束語
??????? 系統以汽車球頭銷的Ansys有限元分析為例,判斷使用者的知識結構,并主動地提供知識輔助,從而降低腦力勞動的成本。但在實現時還存在一些需要改進的問題,如在提高檢測用戶知識盲點的準確度,如何優化數據庫動態檢索,提升系統自學習能力等。今后,將針對這些問題展開進一步的研究。
評論
查看更多