基于Ext+SSH集成开发架构的科研管理系统的研究与应用
2015-10-26高瞻锁志海
高瞻+锁志海
摘 要: 通过对高校科研管理现状的分析与研究,运用基于 Struts,Spring和Hibernate的轻量级Web集成开发框架,并结合 Ext 富客户端技术,从科研管理的基础数据组织入手,认真分析科研业务管理流程及信息交互特点,最终构建高效、灵活和稳定的高校科研管理信息系统。该系统实现了科研管理的网络化和数字化,有效提高了信息的集成效率,提升了科研信息精细化管理水平。
关键字: 科研管理; SSH; Ext; 精细化管理
中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2015)20?0052?03
Research and application of scientific research management system based on Ext +SSH Integrated development framework
GAO Zhan, SUO Zhihai
(Data and Information Center, Xian Jiaotong University, Xian 710049, China)
Abstract: In this paper, the current situation of research project management in universities is studied. Proceeding from basic data organization of scientific research management, the scientific research management procedures and information interaction characteristics are analyzed by using light?weighted Web integrated development framework based on SSH (Struts Spring Hibernate) and rich client technology of Ext. Finally, a scientific research management system based on Ext+SSH integrated development framework with the advantages of reliability, efficiency and flexibility was constructed. The digitization and networking of scientific research management were achieved by means of the system, which improve the efficiency of information integration and promote the level of scientific research information management.
Keywords: scientific research management; SSH; Ext; delicacy management
学校科学研究能力的发展是制约高校整体办学水平的重要因素,对于建设“研究型大学”更是具有举足轻重的作用。近年来,随着学校科研工作范围和规模的迅速扩大,信息交互频繁,科研业务的复杂度日益增大,这就要求科研信息要做到快速流转和有效管理,为了满足科研管理系统建设的实际要求,构建了基于Struts,Spring,Hibernate 轻量级集成开发框架和Ext 富客户端技术的高校科研管理系统,为科研工作提供了重要保障。
1 SSH和Ext框架介绍
1.1 基于SSH的Web系统开发框架介绍
SSH是一种基于J2EE技术的MVC软件开发框架, 与J2EE重量级体系相对应,轻量级Web框架SSH不仅保持了J2EE的优势(例如事务管理) ,还简化了Web的开发[1],提高开发效率。SSH集成框架从逻辑上分为三层: 表示层、业务逻辑层、数据持久层[2]。系统架构图如图1所示。在表示层,Struts 作为系统的整体基础架构,它利用控制器分离模型和视图,把用户界面和事务逻辑进行分离,从而极大地缩短了开发时间。在数据持久层,Hibernate 框架对JDBC 进行了轻量级的对象封装,将数据库表通过配置文件映射成对象。程序开发人员无需关心数据库的具体结构,直接操作数据对象即可。Spring 管 理 Struts 和 Hibernate,通过Spring的反转机制,利用容器来创建对象,即在运行期间将对象的依赖关系注入到组件之中,使得应用代码可直接使用实例。
1.2 基于Ext的富客户端技术
Ext是一个基于纯 HTML/CSS+ JavaScript技术的开源的富客户端应用程序框架,它与后台开发技术无关,可以用在多种开发语言的开发应用中,使B/S应用更具有活力和生命力,大幅度提升了用户体验。Ext提供了丰富的跨浏览器UI组件,灵活采用JSON和XML为交换格式,减轻了服务端表示层的负荷,从而达到客户端的 RIA应用[3]。Ext还提供了丰富的学习文档和方便易查的 API文档, 方便开发者查询和使用。
图1 Struts,Spring,Hibernate集成框架的系统架构图
Ext在开发中主要使用到Application,Controller,Viewport,View,Store,Model和Data七大类[4],其逻辑关系如图 2 所示。 Application 控制Ext 到找对应 Controller 与 View 等 Javascript 文件;Controller用来实现 View 上的所触发事件和操作,并将对应的 View,Store ,Model 进行关联;Model和Store是模型数据类,主要是给View类提供数据;View主要负责页面展示。
图2 Ext类逻辑关系图
2 科研管理系统的设计与实现
2.1 科研管理系统的功能模块设计
科研管理系统的设计与开发以“高效管理、服务师生、信息共享、公正公开”为建设目标,以科研管理的内容、流程为中心。从管理内容的覆盖范围来看,科研管理系统的主要分为了科研项目管理、科研成果管理、经费管理、科研问题管理、科研机构管理、科研办公管理功能、统计管理、专家库管理、基地管理等9大功能模块。各个功能模块具有相对独立性,同时也相互联系。从服务对象来看,为校领导、学院、科研基地、教师、科研管理人员5大服务对象提供全方位的服务。
2.2 基于Ext和SSH集成框架的系统架构设计
良好架构的选择对提高项目的开发效率有着重大影响。基于 Ajax的 Web应用程序打破了传统Web程序开发模式,大大提高了程序的可用性用户体验。 因此SSH和Ext的组合构建了一个具有健壮架构体系和具有良好用户体验的Web系统开发架构[5]。
Ext+SSH 集成架构整合的基本原理如图 3 所示。Ext 实现 Struts 框架中的页面表示和页面跳转,管理界面上的各种操作事件,同时做出相应的响应,由于其提供了丰富的UI 组件,并采用JSON数据格式传输数据,提高程序员的开发效率[6]。在业务层,Spring实现 MVC三层分离, 控制各层负责不同的任务,协作完成一次完整的请求/响应。在数据持久层 , Hibernate 实现数据库表到Java类的映射,简化数据库事务管理。
图3 Ext+SSH集成架构图
2.3 关键技术的实现
Ext框架拥有丰富的组件,而且创建组件的方法也非常简单,可以直接通过new关键字来创建,比如创建一个窗口,可以使用new Ext.window(),创建一个表格可以使用new Ext.grid.GridPanel()。在本系统中,用户登录后的首页面板显示了用户基本信息,科研通知公告,代办事宜等信息,它们可以通过拖拽的方式调整位置,这里采用的Ext的Ext.ViewPort组件来实现页面布局,它可以随着浏览器的大小而自适应。部分核心代码如下所示:
…
var viewport = new Ext.Viewport({
layout:′border′,
items:[ {
region : ′west′,
id : ′app?portal?demo?settings?panel′,
title : ′设置′,
split : true,
width : 230,
minSize : 175,
maxSize : 400,
collapsible : true,
collapsed: true,
collapseFirst:false,
stateful: false,
margins : ′5 0 5 5′,
cmargins : ′5 5 5 5′,
layout : ′fit′,
items : [{html : "
",id : ′app?portal?demo?settings?exts′,
autoScroll : true,
border : false,
iconCls : ′nav′}]
},
{xtype:′portal′,
region:′center′,
margins:′2 2 2 2′,
items: items,
bodyStyle: ′overflow?x: hidden′
}]
});
//将布局的左边部分(west),在隐藏条上添加‘组织机构的title
viewport.layout.west.getCollapsedEl().createChild({
html: ′′
+ ′ ′
+ ′′
+ ′ ′
+ ′
设 置 |
});
Ext.callback(function(){
show_data();
show_setup();
}, viewport, [], 1000);
});
…
科研数据不仅数量大,而且数据关联性也较强,在每个数据列表上建立快捷查询项是非常必要的,如图4所示。
图4 Ext的panel组件实现快捷查询页面
以下代码是利用Ext的panel组件实现的快速查询页面的代码:
function getQueryItems(){
var items = [];
//添加第一行查询条件
var query1 = new Ext.Panel({
id: ′querypanel1′,
layout: ′column′,
border: false,
items: [
{xtype:′label′,width:10},
{xtype:′label′,width:60,text:′项目编号:′},
{id: ′query_xmbh′,width:140
,xtype: ′textfield′
,enableKeyEvents:true
,initEvents:function(){
var keyPress=function(e){
if(e.getKey()==e.ENTER){
query(); } };
this.el.on("keypress",keyPress,this);
}},
…
,{xtype:′label′,width:10}
,{ width:"60",
layout: ′form′,
border: false,
labelAlign : ′right′,
items: [{
xtype: ′button′
,text: ′查询′
,tooltip: {title:′查询′,text:′
根据您设置的条件查询结果′}
,iconCls: ′find′
,enableKeyEvents: true
,handler: query
,scope : this
}]}
,{ width:"60",
layout: ′form′,
border: false,
labelAlign : ′right′,
items: [{
xtype: ′button′
,text: ′重置′
,tooltip: {title:′重置′,text:′清空您设置的条件查询结果′}
,iconCls: ′reset′
,enableKeyEvents: true
,handler: reset
,scope : this
} ] }
] } );
…
3 结 语
采用Ext+SSH集成架构开发的科研管理信息系统,结构清晰,快速高效,可维护性和灵活性较高。目前该系统已在西安交通大学科研院的科研管理工作中得到了应用,体现了“人性化操作”的设计理念,充分兼顾了校领导、科研管理人员、教师等用户的不同需求,实现了与校园信息化平台的其他应用系统对接,提升了学校科研管理能力和水平。
参考文献
[1] 邵雄凯,杨京涛.基于Struts,Spring和Hibernate的集成框架研究[J].软件导刊,2007(23):25?28.
[2] 张玮,陈为.基于Struts+Spring+Hibernate框架的探讨与研究[J].长春大学学报,2006(12):75?80.
[3] 王晓燕,宋绍云.Ext的组件体系结构研究[J].电脑知识与技术,2011(9):1999?2002.
[4] 田建伟,黎曦,刘潇潇,等.基于Ext和SSH开发架构的电力生产信息系统的研究与应用[J].湖南电力,2014(2):16?19.
[5] 郭永乐,刘列根,张宇.基于轻量级框架构建Web应用[J].电子技术应用,2007(4):78?90.
[6] 王渊,怀自国,罗怡桂.基于Ext+Spring+Hibernate的Web系统开发架构的研究与应用[J].计算机与现代化,2009(12):78?81.
[7] 于湛麟,李仲秋,任永昌.SSH框架实现MVC架构的电子商务软件平台[J].计算机技术与发展,2012(10):169?172.