水电站设备管理系统设计及实现

水电站设备管理系统设计及实现

【摘要】通过分析水电站的生产设备管理,为提高水电站设备信息共享效率,提出大部分水电站所采用的以C/S架构的中控室为中央控制枢纽的设备管理系统作补充,实现以B/S架构为基础的、基于Java的SSM整合框架开发的MVC模式的设备管理系统。

【关键词】水电站设备管理系统;MVC设计;Spring+SpringMVC+Mybatis框架

1水电站设备管理系统分析

1.1MVC分析

大家知道,MVC模式是在上个世纪80年代为程序语言Smalltalk所发明的软件设计模式。之所以要设计MVC模式,其最大目的是要追求实现动态的程序设计,也就是要使后续修改程序和扩展程序更加简单化,可以重复使用部分代码。这样,MVC模式就可以将设计者从程序开发的冗长繁杂中解放出来,使开发出来的程序更加明白易懂,程序结构简单明了,从而降低模块耦合度。时至今日,MVC(Model-View-Controller)还是目前所有软件工程设计中的最流行的最有效的架构模式之一。与著名域内专家近年提出另外一种模式即MVP、MVVM式相比,MVC模式具有成熟和老到特点。该模式由模型(Model)、视图(View)和控制器(Controller)构成。

1.2SSM框架

SSM(Spring+SpringMVC+Mybatis)是由多个框架组合集而成,它的市场占有率很高,是基于JavaEE的Web应用程序开源集成框架。

1.2.1Spring框架

Spring是轻量级的Java开发框架。正因为这样,我们能非常便利地在其基础上扩展功能。Spring框架的主要优势就是分层架构。因为分层架构能让用户在各类层级组件中自主选择组件达到为程序开发提供功能目的。使用Spring框架开发得优点很明显:第一,解耦模块。迅速开发使用Spring的IoC(控制反转)容器,能打破程序开发中高层依赖底层的铁则,通过依赖注入的实现方法,便可以减弱上层类与下层类的强耦合关系。通过Spring提供的BeanFactory,可以省去实现IoC后所需要大量重写的new类,屏蔽各个类的实例化细节。第二,AOP编程的支持。Spring提供了面向切面编程(AOP)的支持,是AOP是OOP的有效补充。在OOP编程中的对象是一个个横向看来相互之间独立的类,各个类中又有各自的方法;AOP编程的是从另一个纵向角度看待这些类。在这些类共有的代码中动态地切入另外需要编写的逻辑代码,以此实现需要的功能,好比日志或事务支持等。第三,声明式事务的支持。我们知道,在Spring中,AOP编程的支持可让使用比编程式事务更为简洁有效的声明式事务来管理事务,通过声明可一次性给所有的业务方法添加事务特性,提高程序开发的效率和质量。第四,测试方便。简单运用非容器依赖的编程方式就可以从事所有的测试工作。在Spring里,测试变成想做就做的简单的事情。第五,无缝集成。只要Spring的开发者在Spring的版本更迭中不断加入对各类其他优秀框架的集成方法,就能降低使用集成方案的巨大精力和成本。

1.2.2SpringMVC框架

SpringMVC是Spring提供的一个强大而灵活的web框架,提供了几乎是POJO(PlainOrdinaryJavaObject)的开发模式,使用注解的方式进行开发,能够让软件开发者简洁直观地进行开发和学习,简化控制器的开发和测试。SpringMVC开发的控制器不对请求进行直接处理,而是将请求转发给其他存在于SpringContext中的Bean托管,通过Spring框架提供的DI功能,把Bean注入控制器中。SpringMVC主要由DispatcherServlet、处理器映射、处理器(控制器)、视图解析器、视图组成,而处理器映射器和控制器是核心。

2水电站设备管理系统平台的系统设计

设备管理系统平台(EquipmentManagerPlatform,EMP)旨在利用新一代网络技术来提高企业的设备管理水平,减轻企业设备管理员的工作强度。将以设备管理员为核心的方式转变成管理员和设备使用者等多人共同管理,为移动端便携管理提供服务支持。

2.1目标设计

设备管理平台的总体目标是提供经济实用、功能完备、用户体验良好、有创新性的系统。以企业级设备管理系统为基础,解决系统弊端,利用流行的开发框架,实现高效、快速、开放性高的系统。

2.2职责分层设计

采用SSM框架实现的Web系统分为四层:视图层View、控制层Controller、业务逻辑层Service、数据持久层DAO。视图层View负责展现HTML或JSP页面与用户进行操作交互。控制层Controller使用SpringMVC框架实现控制层,利用中央控制DispatcherServlet捕捉来自用户的发送到浏览器的请求,负责对SSM系统运行流程进行中央控制。业务逻辑层Service使用Spring框架实现业务逻辑层,利用Spring的Ioc容器来各个管理业务对象,负责对用户的请求进行后台逻辑计算,实现业务模块,通过调用DAO层接口,实现Service层具体的实现类。数据持久层DAO使用Mybatis框架实现数据持久层,消除大量冗余的JDBC代码,负责与数据库进行交互设计,处理数据持久化工作。

2.3管理模块设计

设备管理是水电站的核心内容之一。目前国内许多水电站设备检修维护管理以日常维护为主,以预防维修和纠正维修为辅,向状态检修方向发展。调研统计显示,国内建成日期较早的许多水电站仍旧是采用过去的定检方式对设备进行管理维护,大量设备即使没有损坏、腐蚀,依然需要按照惯例规范的规定对设备进行拆检,导致企业生产力的浪费,严重影响企业效益。设备管理模块包括设备档案管理、维修管理、调拨管理、报废管理,是设备管理平台的核心功能。

3水电站设备管理系统实现

3.1数据管理实现

设备管理系统在运行中收集到大量数据,分析过去的设备系统,在其中抽取关键的信息作为本系统的基础数据层,在数据库中设计四张表单。该系统通过对设备以ID为主键进行编码标识,对各个设备的档案信息进行有序整理,建立不断实时增长的生产数据库,使电站工作人员以及管理者以及时掌握各项设备的状况。由于生产信息的不断积累,设备的各项信息以数据方式加入数据库,管理者以ID为主键抽取设备进行调研,得到以该设备为主线的使用周期情况,以方便管理层加强对水电站作业层的指导作用。作业层工作人员如专业检修人员和工程师等,可通过这一数据库,对某一个或是某一类设备进行分析。在正确的时间实施合理的检修,实现水电站机电设备状态检修,状态检修的实现在很大程度上节约了因规定检修产生的人力、物力的浪费,减少水电站不必要生产资金投入。

3.2实现细节

DAO层英文全称为DateAccessObject,是数据库访问对象,与数据库进行交互的操作都在这里进行封装,统一编写JDBC样板代码或使用其他面向数据库的框架,将数据库操作与其他业务逻辑解耦。定义DeviceDao接口中的各个CRUD方法,方便实现类对接口进行继承然后实现各类方法。为实现分层结构所能达到的层间解耦效果,将一切与数据库交互的操作放在DAO层,在Service层编写实现各种业务逻辑的核心代码,两者功能泾渭分明,不应该产生重叠。按需求情况定义DeviceService接口和对应的实现类Devic-eServiceImpl,业务逻辑相对简单时亦可直接编写业务类。在业务类上的@Service注解会自动将业务类注册到Spring容器,亦即已经包括了平时使用的@Autowired注解功能,使用时Spring管理容器会自动反射产生一个业务类对其他需要该类的地方进行注入。注解的方式使得不需要再在额外的applicationContext.xml文件定义对应的bean信息。

3.3系统测试

所有编写完毕的系统最终都要经过过程合理的测试流程才能正式上线,一个完整系统的功能性完全与否以及系统设计正确与否,都会最终在这一流程里展现。一般的系统测试紧跟在组件测试、单元测试通过之后。比较常见的、典型的系统测试包括恢复测试、安全测试、压力测试等。

参考文献

[1]蒋亚南,楼应侯.中小型企业设备管理系统的编码设计与应用[J].计算机工程与应用,2003(10):217-219.

[2]吴耀锋.设备管理系统在水电站中的应用[J].中国科技信息,2009(6):153-154.

[3]宋华婷.水电站运行管理信息系统研究[J].水利水电技术,2014(7):100-102.

[4]孙辉.中小型水电站设备管理存在的问题及对策[J].中国新技术新产品,2010(14):70.

作者:莫运襟 单位:广州城建职业学院