基于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有限元分析为例,判断使用者的知识结构,并主动地提供知识辅助,从而降低脑力劳动的成本。但在实现时还存在一些需要改进的问题,如在提高检测用户知识盲点的准确度,如何优化数据库动态检索,提升系统自学习能力等。今后,将针对这些问题展开进一步的研究。
转自:互联网
|