根据对化学实验室的需求分析,本节主要介绍实验室系统管理的总体设计。首先,简单概括了系统设计所要达到的目标和应遵循的设计原则,并给出系统的网络拓扑设计;然后,导出整个系统的架构、系统功能结构、系统动态模型、数据库设计;最后,对系统的安全性进行了分析。
一、系统总体设计目标
系统设计是系统开发的一个重要的阶段。由于系统设计的总体目标是适应化学实验室管理系统的需要,因此根据系统分析阶段对系统逻辑功能的要求,并考虑到经济、技术等方面的条件,设计开发人员可以利用现代管理技术和计算机技术,建立先进的化学实验室管理系统,确保对实验室更好的管理。系统的开发必须遵循稳定、开放性和维护性好、安全可靠等要求,以便于系统不仅能满足目前的需要,而且能适应将来扩展的需要。所以,系统总体设计的原则应包含以下几个方面。
(一)先进性
在系统的设计中,整个系统软硬件设备的设计应在符合高新技术的标准,以及满足现期功能的前提下,必须具有前瞻性,以便在今后较长时间内保持一定的技术先进性。
(二)安全性
系统采取全面的安全保护措施,具有防病毒感染、防黑客攻击措施、高度的安全性和保密性等特性。同时应对接入系统的设备和用户,进行严格的接入认证,以保证接入的安全性。系统支持对关键设备、关键程序模块采取备份、关键数据、冗余措施等保障数据安全的手段,有较强的容错和系统恢复能力,即表明系统既要能防止恶意的侵扰,又要能防止因为误操作引起的数据错误,确保系统长期正常运行。
(三)开放性
系统设计遵循开放性原则,即软硬件支持二次开发,能够支持多种硬件设备和网络系统;各子系统具有与其他信息系统进行数据交换和数据共享的能力并采用标准数据接口。
(四)可用性
系统设计要充分满足企业项目管理业务发展的需求,涵盖功能性及非功能性需求的各个方面,达到预期的目的。
(五)可扩展性
系统应具有较好的可扩展性,简单易维护,易于扩充升级;在应用需求变化时,能方便快捷地加以调整,指系统对技术和业务需求变化的支持能力。系统必须保证软件新旧版本的平稳过渡,保证主机系统和网络系统在将来能够顺利扩容,且不影响正常的生产运行。
二、系统网络拓扑设计
硬件环境的设计主要功能是对登录系统的用户进行识别,对服务器许可证进行验证和发放。首先证书服务器连接应用服务器,验证用户通过后,在密钥服务器上取得密钥种子,生成私钥,解密后将生成的许可证发放到登录管理系统用户的客户端进行检验,最终用户得以进入本实验室管理系统。系统网络拓扑结构如图2—12所示。
图2—12 系统网络拓扑结构图
三、系统架构设计
系统的开发平台是ASP.NET,它是一种非常稳定而优秀的开发架构,根据NET Framework的结构特点和对化学实验室管理系统的需求分析,管理系统的总体架构设计图如图2—13所示。
图2—13 系统总体架构图
与系统用户距离最近的一层是显示层,可以说它是整个系统的“脸面”,页面设计的原则应遵循“用户至上,兼顾简洁”,它的主要作用是把特定业务数据展现给系统用户和采集用户输入的信息与各种操作。
业务逻辑层是系统三层架构的中间逻辑层,是承上启下的关键环节。首先,它负责从数据访问层获取数据,提供给显示层以便展现给系统用户;其次,它对从显示层获取的用户指令和数据,进行业务逻辑分析和判断,然后选择是否通过数据访问层写入数据源。如用户登录的判断、特定信息的添加、查询与修改等业务。其中,数据访问曾在业务逻辑层和数据库之间,根据不同的数据库可以设计不同的数据访问层。它主要负责从数据源加载数据,如从数据库取出数据,并构造出数据模型后,供给业务逻辑层使用;向数据源中写入数据以及从数据源中删除数据。ADO.NET技术负责为系统提供基础信息服务,如数据库的访问信息、日志记录系统、实体层的封装等,它使得系统的数据达到最大程度的共享。
化学实验室管理系统要完成的功能很多且较复杂,涉及的化学仪器、药品和各种用户的信息量也大,所以,数据库的设计与实现是非常重要的环节。
四、系统功能结构设计
根据化学实验室管理系统工作流程的需要,系统从功能分析上可分为个人信息管理、用户管理、仪器药品管理、实验信息查询管理、实验设计、预约实验管理、短消息、系统管理等8个功能模块,主体架构和各个模块具体实现的功能描述如图2—14所示。
图2—14 系统功能结构图
(一)个人信息管理
用户登录之后,可以通过该功能查看个人信息,并进行个人信息更改以及个人密码修改,此模块只对注册用户有效。教师用户、学生用户在成功登录系统后,都可以使用此项功能,进行用户原密码的修改操作。但该类型用户不具备删除的权限,即不能修改系统中的内容,不能添加用户。
(二)用户管理
此模块包括添加用户信息、删除用户信息和修改用户信息。此模块的业务功能仅在实验管理员权限下才可以使用,即实验管理员有权添加用户、删除用户和修改用户信息,并限制其他类型用户的权限。
(三)仪器药品管理
此模块是化学实验管理系统的重要组成部分,是为实验室管理员维护实验室仪器设备和管理实验药品而设计的,可实现对化学实验的使用仪器、设备的信息化管理。其业务功能内容包括申请实验仪器药品、审核实验仪器药品和配备实验仪器药品等模块。其中药品管理包括药品的编号、名称、单位、规格、数量、存放位置等;仪器管理包括仪器的编号、名称、单位、型号、存放位置等。通过数据库技术,将数量庞大的化学药品信息以及仪器信息统一保存及管理,大大简化了管理程序,从而减轻了实验室管理员的劳动强度,节省了工作时间。
(四)实验信息管理
此模块是为科任教师、学生和学生组长方便管理和查看实验信息而设计的。作为科任教师用户,该模块主要用于发布实验信息、查看实验信息和打印实验信息。作为学生和学生组长用户,该模块主要用于查看实验信息。每个学期初,实验室管理员可以通过该模块来发布实验信息,供任课教师和学生发布和查看,同时任课教师可以将所查询到的信息进行打印。
(五)实验设计
此模块是化学实验管理系统的重要组成部分之一。其主要功能是提供一个实验信息交流平台,即学生可以在做实验前下载实验设计,每当做完一个实验之后,提交和讨论实验设计。这样任课教师才可以看到和评价学生实验的情况,统计实验成绩等。此模块主要实现上传实验设计,对文件资料进行下载和师生之间讨论的功能,科任教师用户和学生用户均能从此模块中下载文件资料使用。使用流程:用户登录之后,进入此模块便能看到文件下载列表,可以根据自己的需要进行上传及下载相应的文件。
(六)预约实验管理
此模块是化学实验管理系统的特色模块。预约实验管理模块主要是用来预约实验,在这个功能模块中,学生组长可以预约实验申请,并且可以根据预约日期及时参加实验。而任课教师可以审核实验申请和查看预约结果。实验预约功能模块的序列图和活动图分别如图2—15和图2—16所示。
图2—15 实验室管理序列图
图2—16 实验室预约序列图
根据如图2—16所示,实验室预约管理活动包括预约实验申请、审核实验申请和查看预约结果等,其中预约实验由学生组长预约实验,预约审核需要实验管理员、主管校长这两类用户。
(七)短消息
首先,学生及其他用户向SMS发送短消息,短消息平台将短信传送到实验室系统;然后,在经过实验室短信平台业务处理后以HTTP方式转送给SMS短信平台;最后,SMS短信平台在接收异步消息后将返回的消息下行给手机用户。本系统短信处理序列图如图2—17所示。
图2—17 与SMS数据传递序列图
该模块主要用于对实验预约等相关信息进行短信发送、接收等。
(八)系统管理
该模块主要是实验室管理员用于对班级、学生、教师等相关信息的管理,同时也用于对系统的数据相应的备份,以防系统出现故障后,系统的数据能得以恢复。
五、类的设计
在C#中,类是一种对包括数据成员、函数成员及嵌套类型进行封装的数据结构,是C#中最为强大的数据类型。在类中,函数成员主要是指方法、属性和事件等;类中的数据成员则通常是指常量、域。
在业务逻辑层中,将化学实验室管理系统中所涉及的各种对象抽象为各种类,即让这些类在应用程序中以对象的形式进行调用,既方便又实用。根据用户的应用需求以及实验室管理系统中所涉及的表,一个表有一个相对应的实体类,而在业务逻辑层中创建的类主要有:用户类、实验室类、实验室使用类、化学药品类、化学药品使用类、仪器类、仪器使用类、项目信息类、文件类等,具体内容如表2—7所示。
表2—7 业务逻辑层主要类的说明
续表
下面以用户类为例(User Class)来说明类的创建过程。首先需要定义字段,用户类的字段主要包括:user_id,user name,user email,user_phone,user_password,user_sex,user_age,user_class,user_category和user_remark;即创建的属性有用户ID、用户名、用户邮箱、用户电话、用户密码、用户性别、用户年龄、用户班级、用户类别和备注。
方法是通过指定访问级别、返回值、方法名称和任何方法参数在类或结构中声明的,而在C#中通过创建函数和子过程来实现方法。化学实验管理系统用户类中的方法包括:Add,Has User,Remove,Update,Load Data。其中,Add方法用于添加用户信息,Has User方法用于判断用户是否存在,Remove方法用于删除用户信息,Update方法用于将修改的用户信息进行更新,Load Data方法用于接收参数,查询数据表中的相关数据。其他类的创建与用户类基本相似。
另外,要实现数据库的连接和访问,在数据库之上,还需要数据访问子层。在该层中包含有Data Base类,通过该类可以实现数据的交互操作,从而达到向数据库提交SQL语句的功能。化学实验信息管理系统中Data Base类的类图如图2—18所示。
图2—18 Data Base类图
各方法的功能说明如表2—8所示。
表2—8 Data Base类方法功能说明表
在上述方法中,系统把数据库操作语句作为函数的参数进行操作。其中,建立数据库连接主要通过Sql Connection对象的open方法来实现,关闭数据库连接主要通过对象的Close方法实现。get Ds方法是返回值为Data Set类型的自定义方法,供程序中调用,用于对指定数据表进行查询或显示操作。Get Data Reader方法主要用于返回一个Sql Data Reader对象,完成从数据库中读取指定条件的数据。get Dv方法用于获取数据表中的数据子集,实现数据绑定。
由于化学实验管理系统的功能较多,数据访问功能较多,因此,为了大大提高代码的可重用性和开发效率,系统中可以设计了数据访问Sql Helper类库,该类库的核心任务是对实施常见数据访问功能的方法进行优化处理,以便适用于不同场合。该类实现了适应多个不同参数的读取、插入、删除等方法。
此外,系统的具体实现过程中还用到了一些通用类,如Alert类。Alert类的主要作用是用于向用户弹出提示、警告信息,即主要用于点击相应按钮后系统弹出相应的提示信息。Alert类的类图如图2—19所示。
(www.xing528.com)
图2—19 Alert类类图
六、数据库设计
数据库设计就是建立其数据库应用系统,以使数据库更好、更有效的存储各种数据。在系统的设计中数据库设计具有重要的地位,其好坏直接影响到系统的后期开发工作及系统的运行质量。也就是说,构造并优化了数据库模式,能让系统运行得更加稳定,运行的速度更快,并且可以更好地来满足各种用户的需要。
(一)数据库设计原则
数据库的设计原则包括根据系统架构中的组件划分,即针对每个组件所处理的业务进行组件单元的数据库设计;不同组件间所对应的数据库表之间的关联应尽可能减少,如果不同组件间的表需要外键关联,也尽量不要创建外键关联,而是仅记录关联表的一个主键,确保组件对应的表之间的独立性,为系统或表结构的重构提供可能性。
建立的模型进行数据库表的映射时,表中所有的非关键字属性都依赖于整个关键字。其中提出的关键字可以是一个属性,也可以是多个属性的集合,不论哪种方式,都应确保关键字能够保证唯一性,且属性间不存在传递依赖。因此,在映射后得出的数据库表结构中,应确保不存在多值依赖。
数据表之间的关联应尽可能采用弱关联,这样以便于数据表字段和数据表结构的调整和重构。这是因为数据库中的数据表是在特定时间及特定条件下用来持久化一个对象实例的状态的,只是一个存储介质,所以,数据表之间也不应用强关联来表述业务,应由系统的逻辑层来保证。这种方式也确保了系统对于不正确数据的兼容性。同时设计出的表要尽可能减少数据冗余,确保数据的准确性,有效的控制冗余有助于提高数据库的性能。
(二)数据库逻辑设计
数据库逻辑设计就是将数据组织成一个和DBMS所采用的数据模型相符合的形式。通过对实验管理系统的需求进行综合、归纳与抽象,形成了一个独立于具体的DBMS的概念模型。
在化学实验室管理系统中所涉及的实体主要是学生、实验室和管理员,其属性具体如下:学生(学号、姓名、性别、班级);实验室(实验室编号);管理员(姓名、性别、职务)。它们之间的联系用E—R图式表示,如图2—20所示。
图2—20 系统E—R图
(三)数据库物理设计
数据库的物理设计是在概念设计的基础之上,将数据实体转化为物理数据表。本节举例系统采用的是SQL Server数据库管理系统对数据库进行实现。下面分别就系统的一些关键数据表进行介绍说明。
(1)use(用户)表。该表主要用来存储用户的注册信息,表结构为用户编号、用户姓名、用户邮箱、用户电话、用户密码、用户性别、用户年龄、用户班级、用户类别、备注,包含10个字段的中英文说明和数据类型的指定,其中用户编号作为用户信息表的主键。具体内容如表2—9所示。
表2—9 用户信息表
(2)laboratory(实验室)表。该表主要用于存储实验室信息,表结构为实验室编号、实验室名称、开放时间、管理员编号、实验内容、备注,包含6个字段的中英文说明和数据类型的指定,其中实验室编号是实验室信息表的主键。具体内容如表2—10所示。
表2—10 实验室信息表
(3)laboratory_use(实验室使用)表。该表主要用于记录实验室的使用信息,表结构为实验室编号、实验室名称、班级、实验题目、使用日期、使用时间、指导老师、备注,包含8个字段的中英文说明和数据类型的指定,其中实验室编号是实验室使用信息表的主键。具体内容如表2—11所示。
表2—11 实验室使用信息表
(4)reagents(药品)表。该表用于存储实验室中化学药品的相关信息,表结构为药品编号、药品名称、药品单位、药品规格、药品数量、单价、存放位置、状态、级别,包含9个字段的中英文说明和数据类型的指定,药品编号是药品信息表的主键,如表2—12所示。
表2—12 药品信息表
(5)reagents_use(药品使用)表。该表主要用于记录药品领用的信息,表结构为实验编号、实验名称、药品编号、药品名称、领用数量、归还数据、领用日期、领用教师、备注,包含9个字段的中英文说明和数据类型的指定,其中实验编号是药品使用信息表的主键药品编号作为药品使用表的外键。药品领用信息如表2—13所示。
表2—13 药品使用表
续表
(6)equipment(仪器)表。该表主要用于记录仪器信息,表结构为仪器编号、仪器名称、单位、数量、型号、单价、存放地点、购买日期、状态、备注,包含10个字段的中英文说明和数据类型的指定,仪器编号是仪器信息表的主键。仪器信息表如表2—14所示。
表2—14 仪器信息表
(7)equipment use(仪器使用)表。该表主要用于记录仪器的使用信息。表结构为实验编号、实验名称、仪器编号、仪器名称、仪器型号、使用日期、领用老师、状态、备注,包含9个字段的说明和数据类型的指定,实验编号是仪器使用信息表的主键,仪器编号作为仪器使用信息表的外键。仪器使用信息表如表2—15所示。
表2—15 仪器使用信息表
续表
(8)subject(项目)表。该表主要用于存储预约实验项目的相关信息,表结构为实验编号、实验名称、实验室名称、实验日期、开始时间、结束时间、指导教师、备注,包含8个字段的中英文说明和数据类型的指定,实验编号是项目信息表的主键。实验项目信息表如表2—16所示。
表2—16 实验项目信息表
(9)info(预约)表。该表主要用于存储预约的相关信息。表结构为信息编号、实验名称、预约时间、预约班级、实验室编号、预约状态、指导老师、备注,包含8个字段的中英文说明和数据类型的指定,信息编号是预约信息表的主键,实验室编号是预约信息表的外键。预约信息表如表2—17所示。
表2—17 预约信息表
续表
(10)files(文件)表。该表主要用于存储上传和下载文件的相关信息。表结构为文件编号、文件名称、上传日期,包含3个字段的中英文说明和数据类型的指定,文件编号是文件表的主键。文件表如表2—18所示。
表2—18 文件表
七、数据表的关系
数据库系统中包括实验室信息表(Laboratory information)、用户信息表(User information table)、药品信息表(Drug information)、实验项目信息表(Subject information)、预约信息表等,各个数据表之间的关系图如图2—21所示。
图2—21 数据表关系图
八、安全设计
安全设计包括网络安全、数据安全、应用软件安全、系统安全以及环境安全。下面具体介绍网络安全、数据安全和环境安全。
(一)网络安全
系统的网络安全是指防范和抵御网络资源可能受到的攻击,保证网络资源不被非法使用和访问,保护网内流转的数据安全。
(1)对实验室管理系统和网络设备进行分区、分级管理,不同等级采取不同的安全措施。
(2)访问控制。机房对人员的控制,包括公司内部人员、外部人员进入机房需要登记记录,经过相关授权,即信息系统的访问有申请和授权制度。
(4)Web服务器与应用服务器、数据库服务器在物理上严格分离。
(二)数据安全
系统的数据安全主要采取以下措施。
(1)关键数据要加密存储,不能直接对数据库进行更改。
(2)日志记载,系统发生故障后能及时地提供数据动态恢复或向前恢复等功能。
(3)数据备份,定期将系统的数据进行备份并妥善保存。以往的数据备份工作主要采用人工备份方式,工作人员很容易出现失误操作,严重的甚至出现数据丢失等情况,从而使数据备份的可靠性得不到保障;同时现有备份工具本身具有局限性,它只能对数据库全备份,不能选择性备份,也没有对数据完整性的自动校验,由于系统的安全没有保障,一旦部分数据出现丢失,将严重影响业务的正常进行。因此,对数据的备份分为三个层次:硬件级、软件级和人工级;备份策略为三种方式相结合:数据库全备份、数据库增量备份、文件全备份。
(三)环境安全
环境安全是指关键设备需要注重存放位置、存放方式等,如存放在机房还是业务部门,集中存放还是分散存放。还需要保证恒温、恒湿,防雷、防水、防火、防鼠、防磁、防静电等,加装防盗报警装置,以便提供良好的接地和供电环境。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。