李小恩 王 进
摘要:
按照设计的模型及流程逻辑,采用Asp语言加Access(SQLserver)数据库,浏览器—服务器B/S结构运行模式,先框架后模块的顺序,分别编制了委托、检验、审核和维护四个一级模块及相应的二级模块,结合相关的标识与参数,构成产品检验与评价自动运行平台。确保程序安全的措施是:编写数据库连接程序加密包,将数据库密码封装到用VB制作的加密包,并在服务器上注册。为操作简易灵活,专门建立了二级专用功能模块连接程序并维护界面。
关键词:Asp语言;流程逻辑;标识与参数;加密包;模块维护
本系统软件是为检验机构和实验室进行产品检验,特别是涉及多种类产品检验运行自动化提供技术支撑的。项目最初设定的目标是:使产品检验过程的受理委托、样品流转、检验、审核、报告等,实现信息记录、质量评价、报告编制、数据统计运行自动化。据此我们选用Asp语言,进行程序设计,并结合项目所涉及的纤维、纺织品、皮革和塑料等材料学,相关的产品质量与标准化,数理化学统计分析等技术,构建数据库及相关模块,形成技术体系,实现产品检验与评价的自动运行。
1对Asp语言的优势利用
当前的计算机语言以VC、VB、Delphi为代表,其优点是语法结构严谨,编写的软件运行速度快。然而缺点也很明显:与网络结合性差;对计算机硬件要求高;因其运行构成包括服务器端和客户端两部分,联网计算机需安装客户端软件界面并做连接维护才能使用,因此一般只运行于局域网。Asp语言属解释性语言,功能强大且使用非常方便,其软件可很方便地运行于各种网络。首先,将其安装到服务器上,客户端只需使用Windows系统自带的浏览器即可访问。其次,充分利用Asp语言的优势与灵活性,能很好地解决以上计算机语言不能够解决的许多问题。如通过对数据库和程序结构的合理设计,很容易使系统程序达到“包容性强”、“扩展性强”、“可维护性强”的目的。鉴于此,我们选择Asp语言编制本系统程序。
在系统程序编写中,我们利用Asp语言的优势包括:
1)编写操作容易。Asp语言语法与VB很接近,学过Basic语言的人很容易掌握。
2)对编写环境条件要求不高。以Asp为代表的解释性语言具有很高的灵活性,一般使用Dreamweaver或者Frontpage作为编写工具,当随身携带的电脑上没有安装这些软件时,也可以使用Windows自带记事本来编写。
3)良好的相容性。当需要时可以将Asp语言嵌套在超文本文档中,使其在HTML文档中所需要的地方出现。
4)强大的扩充功能。通过应用Visual Basic、Java、Visual C ++ 等多种程序语言制作ActiveX Server Component,满足了项目程序的特殊需要。
5)简化复杂问题的功能。用Asp语言编写的程序通过集中技术解决方案,能使当前面临的移动办公、伴随移动、分散化办公管理的社会难题得到解决。
6)可以利用css(网页美化代码)对其程序显示界面进行美化。人们平时上网会看到很多功能强大、界面漂亮的网页,就是利用css的杰作。
7)程序软件更新、升级容易。对于Asp语言程序升级只要将服务器上的代码更新即可,操作极为简单。
8)在客户机上浏览用Asp语言编写的系统程序操作简便易行。因为客户机只要Windows系统自带浏览器即可访问,不需安装其他操作软件,所以本系统程序能够很方便地运行于单机、局域网或互联网。这为以后产品检验在多平台、多用户的网络环境下运行,产品检验的远程化、网络化、信息化提供了保障。
2对系统结构设计概述
按照设计的模型及流程逻辑,采用Asp语言加Access(SQLserver)数据库,浏览器—服务器B/S结构运行模式,先框架后模块的顺序,分别编制了委托、检验、审核和维护四个一级模块及相应的二级模块,结合相关的标识与参数设置,构成产品检验与评价自动运行平台。现举几例做简要介绍。
2.1系统结构简图
程序运行中按照操作者的身份不同分为四个一级模块:委托模块,检验模块,审核模块,维护模块。如图1。
2.2委托模块
1)模块描述:作用是产品检验运行中委托与受理委托的甲乙双方建立委托协议的录入界面。
2)功能:操作者可依据一个或者多个标准,或合同约定对检验样品进行委托。如图2。
3)性能:可同时进行多客户委托。
4)输入项:如表1。
5)流程逻辑:如图3。
6)接口:如图4和表2。
2.3检验模块
1)程序描述:检验者在权限范围内将委托项目的检验结果录入。所有(或部分)项目检验结果录完提交之后,系统会自动给出评价。
2)功能:如图5。
3)性能:可同时进行多个实验室检验结果的录入。
4)输入项:如表3。
5)输出项:对单个检验项目来说,输出项数据类型为文本,格式是“合格”和“不合格”;对已检验提交的协议来说:输出项为“该产品所检项目合格”和“该产品所检项目不合格”等(对输出项可进行若干条格式语句维护),数据类型为文本。
6)算法:检验结果为“符合”判定为合格,检验结果为“不符合”判定为不合格;检验结果为数值,则将其与技术要求进行比较,满足条件判定合格,不满足条件判定为不合格。
7)接口:如图6和表4。
2.4维护模块
1)程序描述:为管理员对产品管理、标准数据、专用模块、客户管理、实验室和人员管理以及其他信息进行添加、删除和更改的操作平台。
2)接口:如图7和表5。
3关于Asp语言的安全性问题
在实际应用中,各种软件的安全性问题是不容忽视的,包括在互联网上的安全性问题,对用户内部工作人员的防范问题。
Asp语言对来自客户端的安全威胁有着很好的防护功能。由于源程序不会被传到客户浏览器,在客户端看到的代码都是运行结果的显示代码,而非真正的源代码,所以避免了源程序被他人剽窃;通过对数据库的密码加密,并将其放置在禁止下载的文件夹中,防止了对数据库的恶意下载。
Asp 语言真正的安全问题是在服务器端。当服务器被黑客攻陷,或者其他原因被非法控制,不法行为者即可通过浏览源代码而获得数据库密码,取得对数据库的管理权,从而给系统运行安全造成极大威胁。所以对软件本身进行加密是非常必须要的。
软件工程师们为解决Asp语言软件加密问题编制出了各种各样的代码加密软件。有的软件公司声称专门编制了能保证代码安全的加密软件。其实其可靠性是值得怀疑的。也经常有人就此问题推荐使用微软的screnc加密小软件,加密后的软件程序虽然正常运行,但显现的却是乱码,不能识读。可是人们很容易在互联网上找到对该加密小软件的解码程序。
实际上,真正意义上的加密还得靠程序编制者自己。我们采取的措施是使用VB制作一个数据库连接程序的加密包,将数据库密码封装在这个加密包内,然后在服务器上注册。经此处理的系统程序运行时,即使服务器的管理员也不能获取数据库密码。
4程序编写中的几个问题与解决方案
在整个系统程序编制过程中曾出现许许多多的问题,经过修改设计方案,或改变编写路径等,最后经测试均获得了很好的效果。现举几例。
4.1打印
在Asp页面实施打印一般解决的途径有:导出为Word格式,导出为Excel格式,采用IE内置模块。因为使用Word格式和Excel格式调出的数据和格式允许被修改,这是本项目的设计者所不能接受的。我们采用的IE内置打印模块,能做到调出的数据和格式不被修改,确保了打印界面的固定,打印内容和形式的唯一性。同时我们还采用css对输出的表格进行修饰,对不需要打印的控件进行隐藏,对分页进行控制,起到了简洁美化打印界面,合理布局打印页面的良好效果。
4.2对功能模块维护界面设定
本系统程序现已汇集了多个功能模块,随着技术标准的改进,还会有新的检验项目对新的功能模块的需求。按照常规将新编写的功能模块加载到总模块上,编写人员要在繁杂的程序中寻找连接接口,是要花费一番工夫的。一般产品检验技术人员对系统进行标准数据维护时,也难以进行检验项目与特定功能模块连接。针对现有的和以后可能要出现的各种功能模块在种类和数量上的增加,还有检验人员在标准数据维护时的需要,我们专门建立了简易灵活的功能模块连接程序并维护界面。
4.3关于规格设置问题
设置规格的目的是为了使本系统适用范围得到进一步扩展,涵盖更多的产品。不同的产品标准对规格的设定和要求差异很大,有的产品的规格还要作为检验项目,有相应的技术要求。将各种产品的不同规格元素进行有效整合,使之在程序运行中能够高效地调动相关数据,是一个较复杂的过程。我们增加了最高8个层级的规格模型设计,在一定程度上优化了数据库结构。目前本应用软件基本能够适用绝大部分产品标准对质量检验与评价的要求(对报告评价格式有另外要求的需重新设计)。
4.4对技术要求的调取
技术要求是标准中的一项重要数据,是判定产品质量是否合格的唯一指标。在检验运行时,要求程序能够根据委托的参数,自动在多组技术要求数据中搜索,正确选取其中一组,是一个难题。我们利用设置的规格、等级等规则及与其他参数关联技术,保证了系统在检验运行时能够准确调取相应的技术要求,并与检验结果进行比较判定。
构建一个功能齐全、系统灵活、实用范围广、自动化程度高的检验与评价技术体系,是一个复杂的过程,特别是在程序编写与数据库构建中,必须严格遵循预设条件与目标,进行详细设计,一丝不苟地执行方能够实现。
(作者单位:陕西省纤维检验局)