詹自敏 王春明 丁洪波
摘 要:基于ASP.NET技术,建立了基于B/S架构的Web应用程序,即力学计算系统。该系统采用了C#语言、SQL数据库和DLL动态链接库技术。不同于传统的C/S架构的力学计算软件,采用ASP.NET技术使得此力学计算系统具有强大的功能,其应用范围更广、使用更方便,而且计算效率更高。
关键词:ASP.NET;B/S架构;SQL数据库;DLL动态链接库;力学计算系统
DOIDOI:10.11907/rjdk.151610
中图分类号:TP319 文献标识码:A 文章编号:1672-7800(2015)007-0093-03
0 引言
力学计算一直以来均以使用不同的计算软件为基本方法,如何整合不同的计算软件以提高计算效率一直是力学计算工努力的方向。传统的力学计算软件大多采用FORTRAN编写,单机运行,存在计算结果不易管理、使用不方便等缺点,而采用统一管理平台,则有利于计算结果保存、计算进度跟踪、计算质量控制、协同工作和技术共享等。
ASP.NET技术为我们提供了一种全新的整合计算的思路,基于ASP.NET系统、使用SQL数据库和DLL动态链接库技术与基于B/S架构的Web服务体系,可以将不同的计算程序整合到统一的力学计算系统之上,并将此系统以网页的形式进行推广,不需要用户安装任何程序,只需要登录特定的网站即可进行力学计算,既方便多名用户同时使用,又提高了计算效率。进行力学计算的软件通常较少采用B/S架构的网页版形式,但随着网络办公需求量的增长以及网络技术的发展,基于B/S架构的软件越来越受欢迎,应用范围也越来越广,其优点也逐渐被人们认识并采纳。
1 需求分析
力学计算系统需要集成用户管理、项目管理和系统管理等多重功能,主要包含以下功能模块:
(1) 用户管理模块:系统管理员将每位用户的登录名、密码及相关信息保存在数据库中,并具有管理和修改权限,同时用户在登录系统后也可以对自己的登录信息进行修改;登录系统的用户具备不同角色,包括编制者、校对者和审核者等,校对者同时具有编制者的角色功能,审核者同时具有编制者和校对者的角色功能。
(2) 项目管理模块:登录系统的每位用户只能在自己参与的项目中进行力学分析计算,不能参与或查看其它项目的力学计算情况;用户在系统上进行力学计算时,需要提交一个力学计算题目,此题目必须经过编制、校对和审核流程才算完成。
(3) 系统管理模块:系统管理员需要借助系统管理模块实现人员增减、角色调整、项目修改、计算题目删减、界面调整、日志管理等功能。
2 系统架构
通常情况下的力学计算软件采用C/S架构,用户需下载并安装软件包之后才能使用该软件。而力学计算系统则采用B/S架构,只需将软件安装在服务器端,并且以Web网页的形式发布到网络上。因而客户端不需要下载或安装任何软件,直接登录指定网址即可以进入力学计算系统,进而进行力学计算等操作。
力学计算系统的系统结构如图1所示。
其中,B/S架构里的客户端指的是浏览器,利用ASP.NET技术开发出来的Web应用程序(Web Application)是服务端,联系客户端和服务端的是HTTP协议[1]。因此,只要客户端安装了浏览器,即可通过网络联系服务端,再在服务端安装一个SQL Server数据库,即可实现客户端登陆、计算等数据信息的存储与交互。客户端和服务端通过Web网络进行通讯,服务端通过SQL数据库实现数据储存,并通过DLL动态链接库进行力学计算,然后再通过Web网络将计算结果和数据反馈给客户端。
图1 力学计算系统架构
这种架构的优势在于客户端无需安装计算软件,因此对客户端硬件设备的要求也很低,只需保证服务端具有足够强大的硬件配置,便可以响应多个客户端同时提交的大规模数值计算请求。
3 功能设计
力学计算系统的功能设计如图2所示。
图2 力学计算系统功能设计
3.1 用户管理模块
用户管理模块需要实现的主要功能如下:①用户登录:主要实现用户登录名和密码的保存、更新、删除等功能;②角色管理:主要实现用户角色的分配、管理、升级、变更等功能;③信息管理:主要实现用户基本信息的保存、修改、更新等功能。
3.2 项目管理模块
项目管理模块需要实现的主要功能如下:①项目管理:主要实现项目概要、基本信息、起止时间、计算题目等信息的保存、查询和修改等功能;②计算题目管理:主要实现计算题目、输入参数、输出参数、校审流程等信息的保存、查询和修改等功能;③人员管理:主要实现项目参与人员的增删和变更等功能。
3.3 系统管理模块
系统模块需要实现的主要功能如下:①系统维护:主要实现用户及密码维护、权限管理等功能;②信息管理:主要实现项目信息、计算题目信息等信息的增加、删除及查询功能;③日志管理:主要实现日志的记录、查询和修改等功能。
4 关键技术及实现
力学计算系统采用基于VisualStudio 2010的ASP.NET技术,并采用C#语言进行编程,使用SQL数据库进行设计和开发,通过DLL动态链接库进行力学计算分析。
4.1 ASP.NET技术
ASP.NET是Microsoft公司推出的新一代建立动态Web应用程序开发的系统,可以把程序开发人员的工作效率提升到其它技术无法比拟的程度[2]。它提供了生成Web应用程序所必须的全部控件集,可以与任何公共语言运行库兼容的语言配合来创作应用程序,但最适合的还是Microsoft公司专门为.NET Framework推出的C#编程语言[3]。
Aspx页面中主要使用<%=函数或变量%>语言,以力学计算系统的欢迎页面为例,主要语句如下:
4.2 C#语言
C#是一种面向对象的编程语言,主要用于开发可以在.NET系统上运行的应用程序。C#的语言体系都构建在.NET框架上,它是从C和C++派生而来的一种简单、现代、面向对象和类型安全的编程语言,并且能够与.NET框架完美结合。
C#具有以下突出特点[4]:①语法简洁。不允许直接操作内存,去掉了指针操作;②彻底地面向对象设计。C#具有面向对象语言所应有的一切特性——封装、继承和多态;③与Web紧密结合,C#支持绝大多数的Web标准,如HTML、XML、SOAP等;④强大的安全性机制。可以消除软件开发中的常见错误(如语法错误),.NET提供的垃圾回收器能够帮助开发者有效地管理内存资源;⑤兼容性。因为C#遵循.NET的公共语言规范(CLS),从而能够保证与其它语言开发的组件兼容;⑥灵活的版本处理技术。因为C#语言本身内置了版本控制功能,使开发人员更加容易进行开发和维护;⑦完善的错误、异常处理机制。C#提供了完善的错误和异常处理机制,使程序在交付应用时能够更加准确。
4.3 SQL数据库技术
数据库技术是ASP.NET技术中非常重要的一环,力学计算系统使用SQL Server数据库。
SQL(Structured Query Language)即结构化查询语言,是一种数据库查询和程序设计语言,是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具[5]。
力学计算系统使用SQL Server数据库技术,数据库中主要包含用户表、角色表、权限表、工程项目表、计算题目表、计算的输入输出文件、日志等多重内容,可以实现数据的存储、修改、删除、查询等多重功能。
实现数据的连接需要在Web.config文件中加入如下语句:
4.4 DLL动态链接库
在Windows操作系统的体系结构中,动态链接库占据了重要地位,它既是多个进程共享资源的主要形式,也是操作系统向应用程序提供服务的重要手段[6]。力学计算系统中的计算程序被编制成一系列DLL动态链接库,这些动态链接库存放在服务端,客户端通过调用DLL动态链接库来进行力学分析计算。
使用DLL动态链接库具有多重优点,主要有:①节省存储空间。一个DLL动态链接库文件通常比一个安装程序小得多,且可以同时让多个应用程序共享使用,互不冲突;②方便移植。DLL动态链接库在需要时可随时加载,在不用时也可随时卸载,操作简单方便。而且当核心逻辑改变时,只需要替换相应的DLL动态链接库文件,而不需要重新进行编译;③接口通用。DLL动态链接库文件的接口规范可以被许多编程语言调用,因此可以使用不同语言编写DLL动态链接库文件,如FROTRAN等。
实现动态链接库技术需要在计算程序代码中加入如下申明:
[DllImport("***.dll", EntryPoint = "***", CallingConvention = CallingConvention.StdCall)]
5 结语
力学计算平台需要通过网页形式进行访问,需要连接互联网,因此非常适合在一个局域网范围内使用,既能够保证数据传输速度,又具有较好的保密和安全性。
力学计算平台是基于ASP.NET技术、采用B/S架构、利用SQL数据库和DLL动态链接库技术设计和实现的力学计算系统,具有多重功能,它不仅提高了计算效率,而且便于维护,为用户的使用提供了便利。
参考文献:
[1] 付昕瑶.基于ASP.NET的B/S架构的软件在Window7系统下的部署[J] 辽宁省交通高等专科学校学报,2015,17(1):37-39.
[2] 张再华.基于ASP.Net的Web服务及其开发技术[J].软件导刊,2012,11(4):134-135.
[3] 魏智锁,戈振兴.基于asp.net(C#)架构的学校网站管理系统设计开发[J].科技展望,2014(18):177-178.
[4] 软件开发技术联盟. ASP.NET开发实战[M].北京:清华大学出版社,2013.
[5] 魏宝辉, 王颖杰. 基于ASP.NET的自定义SQL报表系统设计与实现[J].软件导刊,2013, 12(8):78-80.
[6] 熊华,刘凤新,潘小莉.Windows动态链接库原理分析及其应用[J].北京化工大学学报,2004, 31(1):99-102.
(责任编辑:黄 健)