基于Ext和SSH开发架构的电力生产信息系统的研究与应用

2014-11-20 03:08:08田建伟黎曦刘潇潇漆文辉
湖南电力 2014年1期
关键词:客户端信息系统架构

田建伟,黎曦,刘潇潇,漆文辉

(国网湖南省电力公司电力科学研究院,湖南长沙410007)

随着信息系统开发技术的快速发展,尤其是J2EE等主流框架和Ext等富客户端技术的日益成熟〔1〕,如何利用先进的信息化手段提升企业业务系统的用户体验成为备受关注的问题。电力生产信息系统作为电力企业工作任务和业务数据的管理平台,其数据源种类多,数据量庞大,数据结构多样化。要做到业务的快速处理和数据的有效管理,对系统的体系结构和用户交互界面都提出了很高的要求,传统的基于数据和展示的2层体系结构已经不能满足现代电力企业生产信息系统的需要〔2〕。

结合国网湖南省电力公司电力科学研究院生产信息系统建设的实际,在基于 Struts,Spring和Hibernate开源J2EE框架的基础上,充分利用Ext富客户端技术〔3〕,构建一个高效复用的电力生产系信息系统。该系统以技术监督工作为导向,以智能化工作流为目标,实现生产信息的及时发布;实现各项年度计划的填写、审批、与生产动态的在线联动以及计划偏差考核;实现各类重点、创新项目等的填报、审批及在线管理;科研项目的在线管理;实现贯标体系以及人资培训在线管理;技术报告和技术监督文档的在线管理;实现大修技改及物资采购的在线管理;实现员工生产活动的绩效统计考核。本系统操作简便快捷,操作提示到位。各项工作信息丰富,统计查询功能完善,工作量化数据表展示全面,趋势变化图表准确美观。

1 J2EE和Ext框架介绍

J2EE(Java 2 Platform,Enterprise Edition)是SUN公司定义的一组开发企业级应用的技术规范与指南,其中所包含的各类组件、服务架构及技术层次。目前在J2EE框架的基础上已开发出了很多开源的框架,基于这些成熟框架开发应用系统可大大减轻开发人员的负担。考虑到电力企业生产信息系统的用户多、数据量大、分布点宽、数据结构各异,以及存在个性化需求等特点,在构建系统时,用户的请求处理、页面的表现形式、业务的逻辑处理以及数据的持久化都是必须考虑到的因数。基于此,选择使用最为广泛框架的 Struts+Sping+Hibernate的J2EE框架作为开发平台,构建一个具有可扩展性和健壮性的电力生产信息系统,同时与Ext框架结合,满足用户个性化操作需求,提高界面使用体验。

1.1 基于SSH的Web系统开发框架介绍

SSH是Struts+Spring+Hibernate的一个集成框架,从逻辑上分为表示层、业务逻辑层、数据持久层,如图1所示。其中表示层中的Struts作为系统的整体基础架构,提供模型-视图-控制器框架(Model-View-Control,MVC),控制业务的跳转,可将程序的输入、处理和输出分开,有利于模块化的开发。业务层中的Spring是一个为了解决企业级应用开发的复杂性而创建的应用框架。Spring框架中使用最为广泛的功能是其反转机制,通过该机制将创建对象的任务用容器来实现,即在运行期间将对象的依赖关系注入到组件之中,使得应用代码可直接使用实例。通过控制反转机制可降低组件之间的耦合性,有利于代码的开发和测试。持久层中的Hibernate是一种对象持久层轻量级封装框架,它对JDBC进行了非常轻量级的对象封装,将数据库表通过配置文件映射成对象。程序开发人员可以使用面向对象的思想来操作数据库资源,可以不关心数据库的具体结构和逻辑,完全使用面向对象的方法来建立应用开发的数据库模型。

图1 基于SSH的Web系统开发框架

集成SSH框架的方法是将Struts架构作为系统的整体基础架构,负责MVC的分离,控制业务跳转。而在MVC的模型部分则利用Hibernate框架提供持久层支持,业务层用 Spring做管理,管理Struts和Hibernate。具体集成方法是:根据业务需求,使用面向对象的分析方法提出业务模型,将模型实现为基本的Java对象,然后利用Hibernate编写每个Java类对应的DAO接口和DAO实现,通过Hibernate的DAO类来实现Java类与数据库表之间的转换和访问,最后由Spring管理struts和hibernate。

1.2 基于Ext的富客户端技术

Ext是一个开源的Javascript富客户端应用程序框架,提供可定制用户界面的控件,拥有可扩展的组件模型。Ext同时包含应用程序接口,交换格式采用灵活的JSON和XML,可大量减轻服务端的负担。

Ext作为客户端技术在程序开发过程中主要使用到 application,controller,viewport,view,store,model和data七大类,其逻辑关系如图2所示。

图2 Ext类逻辑关系图

Application是应用程序模块的入口,用来告诉Ext到哪里去找对应Controller与View等Javascript文件。Controller是用来处理业务逻辑的类,即View上的所触发事件和操作都可在Controller中实现,同时它也将对应的View,Store以及Model关联起来。Model和Store是模型数据类,主要是给View类提供数据,其中Model与Hibernate框架中的java对象相对应,定义界面的数据模型;Store用于缓存从Struts返回的界面数据。View主要负责页面展示,包含Grid,Form和Panel等各种UI组件。

在电力生产信息系统中使用JSON机制,即客户端接收来自服务器端的数据的格式要求是JSON格式。实现JSON数据缓存机制,首先需要定义客户端数据对象,即客户端Model对象的定义需要与服务器端的Hibernate数据对象一一对应。其次建立数据解析器,其作用就是从JSON数据中解析出其中的数据对象实例。最后建立数据存储器Store对象,存储解析生成的数据对象。当用户发出数据请求时,客户端首先查询本地Store,如果Store中有对应的数据,则直接从Store中取得数据,否则就发起与服务器端的数据请求,从服务器端取得对应的数据。

1.3 基于Ext和SSH集成架构的Web信息系统开发框架研究

Ext+SSH集成架构保留了Spring+Hibemate的组合,从表示层、控制层和业务逻辑层入手,使用Ext实现Struts框架中的页面表示和页面跳转,架构整合的基本原理如图3所示。

图3 Ext+SSH集成架构基本原理

在表现层Ext提供Form,Panel,Grid等各种UI组件,提高程序员的开发效率。Ext还负责管理界面上的各种操作事件,同时做出相应的响应,实现用户业务逻辑的控制。Ext将表现层数据封装为JSON数据格式,以Ajax的方式发送给业务层,并将返回的JSON数据解析后显示给用户。

在业务层Spring提供业务的逻辑处理,在表现层和持久层之间起到承上启下的作用,将界面的负责逻辑和数据通过各种处理方法整合为持久层能够接受的单一逻辑。同时Spring提供的注入机制可实现逻辑对象的自动关联,减轻程序员的代码负担,提高应用程序的模块化程度。

在数据持久层Hibernate实现数据库表到java类的映射,提供模块化的数据操作方法,简化数据库事务管理。

2 电力生产信息系统的设计与实现

2.1 系统功能分析和数据逻辑设计

如图4所示,电力生产信息系统包括生产计划、生产动态、科研培训、项目管理、大修技改、技术监督、技术报告、业绩考核、设备采购、设备采购、质量体系管理、综合管理、通知发布、短信业务和系统配置15个功能模块。系统的业务从生产计划发起,经过生产动态转化为生产项目,并在项目的实施过程中编制技术报告和技术监督文档,经过大修技改和物资采购模块管理生产项目所需要购置的设备和材料,同时系统可实现对科研项目和教育培训工作的在线管理。通过对生产项目和科研项目的在线管理,可自动生成部门和个人的工作总结,最终可实现对部门和个人业绩的考核。

图4 电力生产信息系统功能结构

2.2 关键技术的研究与实现

Spring提供了对Sessionfactory的初始化,用户不再关心Session的关闭和打开等操作。该集成配置需修改applicationContext.xml如下:

通过将 Hibernate整合入 Spring,轻松实现Hibernate的Session所提供的任何方法,并可大幅减少维护Session所需要的代码工作。同时,将数据源中的表全部映射为hibernate中的模型,对表的操作全部交由hibernate对模型中对象的操作。

Struts要和Spring集成就必须能够访问Spring的上下文,Struts作为Web系统的框架,要保证系统在启动前装载了Spring的上下文。装载Spring上下文需在web.xml文件作以下配置:

下面通过使用基于Ext和SSH开发架构来实现一个生产任务发布功能,以说明该架构的使用。

1)用户填写好生产任务表单信息后,通过“发布”按钮发出Ajax异步请求,使用Ext框架中的Ext.Ajax.request全局方法将表单数据转化JSON数据并发送到服务器。

2)服务器通过Struts配置文件struts.xml中定义路径寻找处理该请求的类和方法。

3)通过Spring的注入机制@Controller("kjfzbScrwAction")找到处理kjfzbScrwAction类和pubOrEditKjfzbScrw方法。在 kjfzbScrwAction类中表单数据以Hibernate实体对象的形式存放。

4)并通过@Resource(name="kjfzbScrw Service")注入逻辑处理层并自动需找逻辑处理方法,在该方法中可实现对数据的转化、计算等复杂的逻辑处理。

5)最后通过注入@Resource(name="kjfzbScrwDAO")找到数据保存方法,将表单数据保存到数据库中。

从以上的实例分析可以看出,通过基于Ext和SSH架构设计开发的电力生产信息系统层次分明,而且代码比较简洁。

3 结束语

文中将基于Ext+SSH的Web系统开发架构运用到电力生产信息系统开发中,简化了开发人员的代码量和开发难度,并且使得页面开发和Java后台程序达到有效分离,提高了系统的扩展新,降低了维护成本。基于该框架电力生产信息系统代码部署成本低,后期易于升级和维护。

〔1〕肖剑锋,雷升印.基于Struts与Hibernate的MIS开发〔J〕.微计算机信息,2006(22):22-24.

〔2〕潘明惠.电力信息化工程的理论与应用研究〔J〕.中国电机工程学报,2005(15):96-99.

〔3〕张功彬.基于ExtJs的富客户端MIS设计与开发〔D〕.中国海洋大学,2011.

〔4〕高秀慧,高建华.基于 J2EE框架的 Web应用可靠性研究〔J〕.计算机工程与设计,2013(4):1 270-1 275.

〔5〕邓伟成,范轶翔,夏翔,等.ExtJs框架下Grid组件的扩展及应用〔J〕.计算机应用,2012,32(A01):80-82.

猜你喜欢
客户端信息系统架构
基于FPGA的RNN硬件加速架构
企业信息系统安全防护
哈尔滨轴承(2022年1期)2022-05-23 13:13:18
功能架构在电子电气架构开发中的应用和实践
汽车工程(2021年12期)2021-03-08 02:34:30
基于区块链的通航维护信息系统研究
电子制作(2018年11期)2018-08-04 03:25:54
县级台在突发事件报道中如何应用手机客户端
传媒评论(2018年4期)2018-06-27 08:20:24
孵化垂直频道:新闻客户端新策略
传媒评论(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客户端的设计与实现
电子测试(2018年10期)2018-06-26 05:53:34
信息系统审计中计算机审计的应用
消费导刊(2017年20期)2018-01-03 06:26:40
LSN DCI EVPN VxLAN组网架构研究及实现
电信科学(2017年6期)2017-07-01 15:45:17
基于SG-I6000的信息系统运检自动化诊断实践