一种高扩展性的设备管理系统设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一种高扩展性的设备管理系统设计与实现
摘要:在某科研单位的设备使用场景及实际需求背景下,为了实现设备的灵活管理与流程管理,介绍了一种基于B/S模式的可扩展性较高的设备管理系统的设计及实现方式。系统通过Microsoft Visual Studio .NET平台技术,利用C#语言与SQL Server数据库,最终实现了操作方便、扩展容易、数据传输可靠的以WEB进行数据录入及查询的设备管理系统。实际使用证明,该系统极大地提高了设备管理的工作效率,并且通过扩展性设计极大地延长了系统的生命周期。
关键词: B/S模式;设备管理系统;C#语言;SQL Sever数据库
目前在众多企业及科研单位,其设备管理通常通过人工利用表格录入进行查询及报废等工作,这样的方式随着设备的增加、设备流动性的加强以及业务逻辑的复杂,逐步呈现出管理过程繁复、容易出错并且不易追朔的特征。本系统是根据某科研单位的需求,合作开发的一套基于网络化的设备管理平台。该科研单位由于设备逐步增加,业务流程逐步改革,传统的人工模式不能适应设备管理的需要,本系统在设备管理上可极大地减轻管理人员的负担,更符合该单位目前需求与未来发展。
C#是运行于.NET Framework上由微软公司发布的面向对象的开发语言,它在2000年由Anders Hejlsberg主持开发,对整个IT界具有很大的影响[1-2]。其中最重要的影响是在.NET 平台下开发应用程序变得更加简便、现代及通用,并且.NET使Internet的行为方式被改变,利用一种较为新型的开发、发行及使用方式,更好地体现了软件服从于服务的思想[3]。随着国内网络信息交流的频繁与局域网的发展,其网络数据带宽得到了较大提高[4],其中B/S 模式的管理系统也具有无需安装客户端,在目前网络条件下具有访问快捷与变更灵活等特征,所以设计以.NET平台下利用C#语言开发的B/S系统,结合SQL Sever数据库的三层模型,是开发设备管理系统较为理想的方式。
1 系统需求与功能分析
在对该单位设备管理流程以及管理对象进行认真调研及分析后,确定了系统的基本功能与需求。系统需要对科研设备进行统一的管理及部署,实现对设备信息的录入及查询两大基本模块,并可以由一般权限人员对设备进行查询。系统主要由服务器、数据库、交换设备以及浏览终端组成,其网络部署拓扑。
使用者角色为管理员与普通用户,其权限的职能划分如下:
(1)管理员权限:主管信息系统的设备及信息录入、删除、设备信息修改等。
(2)浏览用户权限:可以查询单个设备信息、检索类设备信息、系统留言信息等。
以上权限根据其应用需求,适合采用模块化设计,并根据用户的认证权限决定各模块是否显示。
通过实际管理流程分析,针对设备属性方面分为设备操作属性与设备自身属性。设备操作属性包括设备的调拨、报废、录入、删除及维修。其自身属性包括设备所属地、名称、价值、管理员信息及参数等数据。而合理的参数设置以及在系统设计中充分考虑到设备的属性修改的便捷性,对系统的扩展及生命力具有重要的意义。
2 设备管理系统的设计
2.1 系统模块设计
设备管理系统的管理对象是设备,根据用户的实际使用情况,系统主要划分为设备管理操作模块、系统设置管理模块、信息查询模块与密码修改模块4大部分,参考Aspect-Orient Programming(AOP)设计思想[5],各模块之间横切关注点分离开,其功能划分具有更好的封装性。其功能框图。
各模块主要功能如下:
(1)设备管理模块:系统管理员权限可见,负责设备的信息录入、修改、维修登记、调拨登记以及报废登记,可细分为图2所示的5个主要操作页面。
通过系统设置管理模块,可以大大提高系统的通用性以及系统使用的便捷性,避免了由于诸如部门更名而系统必须修改的情况。
(3)信息查询模块:系统管理员权限与浏览用户权限均可见,主要负责对设备统计搜索查询、维修搜索查询、调拨搜索查询以及报废统计查询。查询中必须定义:
其中,D1为查询设备集,D2为维修设备集,D3为调拨设备集,D4为报废设备集。在系统中存在唯一查询De的一个页面,保证全部设备可列出,并由状态栏显示其所属子集。其他页面查询只显示子集列表,通过这样的设计,随着设备量的增加,能保证设备可列数量较少,提高工作效率,也可以通过限制显示列表数量的方式,为后续的手机系统作为查询终端奠定可扩展的空间[6]。
2.2 系统扩展性设计
设备管理系统的设计应遵循易用性与可扩展性原则[7]。随着使用单位的部门名称变更、管理流程变更以及功能模块的增加,都会让初始设计的系统陷入不能使用的尴尬境地。从使用者的角度,设备管理系统开发周期长、设计成本高、数据库导入、导出与修改的方法繁复,其做系统更换的代价较大,也极大地影响了一个系统的生命周期。针对以上出现的问题,如何设计系统的可扩展性是评判系统设计优良的一个重要指标。本系统中的扩展性设计基于以下两方面:
(1)部门与设备个别特征的可配置性。在系统中,考虑到通用性与扩展性的需求,部门设计中以部门为管理单位,对设备进行归属部门的挂靠,并由组织机构模块负责部门的录入,其功能模块。
图3中,实线框表示可设置的操作对象模块,虚线框表示相应步骤中的操作功能选择,通过这样的设计,在部门发生变动的情况下也可以具有很好的通用性与扩展性。
(2)设备管理系统架构采用软件架构上采用的表现层、逻辑层和数据访问层3层架构。系统中功能目录结构利用数据库实现表现层与逻辑层的联系,页面中目录以树形结构显示,并由H_systemtree表中Parentid项与序号ID项进行树形目录显示及叶节点、根节点的确定。H_systemtree表结构设计如表1所示。
通过设计H_systemtree表控制目录树显示,具有修改方便、扩展性强的特点,通过数据表项的修改,可以方便调整目录树的显示结构,也可以通过页面的链接较为快速地对系统进行模块化的扩充。
3 设备管理系统关键技术的实现
3.1 数据库实现
通过用户的实际需要,首先设计了包括H_DeviceInfo在内的10余张表,以满足用户的数据存储访问以及系统控制的需要。由于会面临多次数据库的访问,因此在系统中声明一个新的访问接口类,其继承通用类OleDbmanager,并调用类的多个构造函数,以实现在未来数据库类型更改的情况下,或是有修改数据类型的链接时,对这个实现类进行修改就可以适应,而不需要去改变接口的定义,从而避免由于上层应用程序变更而变更接口的定义[8]。连接数据库构造函数定义部分代码如下: