首页 > 文章中心 > ssh框架

ssh框架

ssh框架

ssh框架范文第1篇

关键词: SSH框架; J2EE技术; Web开发; 篮球俱乐部

中图分类号:TP311 文献标志码:A 文章编号:1006-8228(2012)10-24-03

引言

目前,Java Web轻量级开发的主流技术是SSH(Struts+Spring+Hibernate)框架。但随着软件开发技术的快速发展,SSH框架表现出安全性、开发过程复杂、功能不够齐全的问题,因此,对SSH框架进行补充和改进是必要的。

针对SSH框架存在的问题,运用各种成熟框架与技术对SSH框架进行集成和扩展,实践证明,在项目的开发过程中应用改进后的SSH框架,使开发的效率显著提高,系统的可靠性、可扩展性和可维护性等各种性能也明显提升。

1 成熟框架和通用技术简介

1.1 常用框架技术

1.1.1 SSH框架

SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,利用Hibernate框架对持久层提供支持,业务层用Spring支持。具体做法是:用面向对象的分析方法根据需求提出一些模型,将这些模型实现为基本的Java对象,然后编写基本的DAO接口,并给出Hibernate的DAO实现,采用Hibernate架构实现的DAO类来实现Java类与数据库之间的转换和访问,最后由Spring完成业务逻辑。SSH集成框架与技术结构如图1所示。

Compass是基于Lucene之上的,是第一个实现Java的开源搜索引擎框架[1]。Compass封装了对全文检索引擎lucene的操作,并且提供了Spring/Hibernate的应用层框架,让用户可以不必深入了解lucene,轻松地在自己的Spring/Hibernate架构的Web应用当中集成全文检索功能。Hibernate可直接操作数据库,当数据发生改变时,可以通过Compass的OSEM对数据索引进行更新。

1.1.3 Spring MVC框架

Spring MVC框架采用前端控制模式(Front Controller),它是Spring MVC请求中枢,其核心是DispatcherServlet。Spring MVC的所有请求通过它转发到不同的处理器(Colltroller)处理,处理完后返回一个Model And View对象。DispatcherServlet查询一个或多个ViewResolver视图解析器,找到Model And View对象指定的视图对象,视图对象负责渲染返回给客户端。

1.1.4 SWF(Spring Web Flow)框架

Spring Web Flow是Spring框架提供的构建Web应用程序的全功能MVC模块。使用Spring可插入的MVC架构,可以选择是使用内置的Spring Web框架还是Struts这样的Web框架。通过策略接口,Spring框架是高度可配置的,而且包含多种视图技术,例如JavaServer Pages(JSP)技术、Velocity、Tiles、iText和POI。Spring MVC分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。因此,它的出现极大地提高了编程效率,尤其适合需要复杂用户交互界面的Web应用程序[2]。

1.1.5 DWR框架

DWR(Direct Web Remoting)是一个开源项目,是基于Java的Ajax实现。它包含服务器端 Java 库、一个DWR Servlet以及JavaScript库。DWR的主要特点是能够将服务器所写的Java类直接转化为Javascript中所引用的对象,简化了Javascript中的转化操作[3]。

1.2 通用技术介绍

1.2.1 Ajax技术

AJAX(A synchronous JavaScript and XML)实际上是几项技术按一定的方式组合, 在共同的协作中发挥各自作用的技术[4]。Ajax具有改善B/S模式下交互、带宽性能等优点。Ajax的核心是JavaScript对象XmlHttpRequest。另外,Ajax为SSH提供了一种高效的数据传输方式,其常用的数据组织方式有JSON(JavaScript Object Notation)。在Ajax的应用中,通过JSON组织传输大块数据,优势明显。

1.2.2 表单及时验证器

表单验证器是表单的一种验证方式,当表单提交时,通过它能提高接收数据的有效性,因此被广泛地应用于各种Web应用程序中。表单验证结合Ajax技术能发挥出实时高效的验证功能。

1.2.3 任务动态调度(Quartz)

Quartz是Web应用开发中广泛使用的任务调度解决方案,它提供的强大任务调度机制允许开发人员灵活地定义触发器等调度事件表。另外,Quartz提供了可持久化的调度运行环境机制,在需要时可以保存并恢复调度现场。

ssh框架范文第2篇

传统JavaEE架构在开发过程中会受到种种限制,为提高开发的灵活性和效率,开发人员通常采用Struts、Spring和Hibernate这种目前较为流行的轻量级Web开发架构。这三种开源框架各有其自身的特点,使用他们分别实现系统的表示层、业务逻辑层和数据持久化层,层次间通过接口通信。采用这种集成框架模式开发的科研管理系统,可以降低系统代码的耦合性,提高系统的可维护性和扩展性。

关键词:

轻量级架构;SSH;表示层;业务逻辑层;持久化层

科研管理信息化是高校信息化建设的重要组成部分。在“数字校园”建设过程中,遇到了很多问题,例如,由于过去建设的信息系统,在设计时缺乏整体架构关键,各部门独立建设,导致校园内已建成的信息系统之间不能进行信息交换,业务数据不一致,相关业务流程不能真正实现自动化,给广大师生带来了诸多不便。在这种情况下,非常有必要建设一个基于共享数据库的校园科研管理系统,实现基础数据的全部共享。本文以某高校科研管理系统为例,从研究系统的总体架构设计、业务流程入手,分析了异构数据库的特点,实现了基于异构数据库科研管理系统的数据共享问题。

1科研管理系统总体设计

系统开发使用Java开发平台,以MySQL为后台数据库的B/S架构。采用这种成熟的结构,可以避免不必要的技术困难。(1)总体设计架构。科研管理系统采用分层架构体系。使用校园网统一身份认证平台进行安全认证,保证系统运行的安全可靠。基于共享数据库的科研管理系统能够为高校科研管理提供基础信息支持,并且学校科研相关数据能够与全校公共数据库实现数据实时交互,做到真正意义上的数据共享和统一。基于共享数据库的科研管理系统功能结构如下图1所示。(2)MVC模式。科研管理系统在逻辑上采用三层MVC模式,Model(模型)、View(视图)、Controller(控制器),这三部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。在MVC模式中,事件由控制器处理,控制器根据事件的类型改变模型或视图。

2SSH框架结构模型

(1)SSH架构。SSH在JavaEE项目中表示了三种框架,即Spring、Struts和Hibernate。这三种框架都属于JavaEE的开源轻量级企业开发框架。这里所提的“轻量级”是相对于以EJB为核心的复杂框架而言的。通过Spring耦合其他的开原产品进行合作开发,如:使用Struts框架充当表示层,Hibernate作为持久层,完成数据对的持久化操作,采用这种结构完成JavaEE的企业级Web开发。Struts是在MVC模式基础上构架的Web应用程序的一种开源框架。在模型-视图-控制器基础上构建应用程序,使用自己提供的控制器组件(ActionController类)并与其它技术结合,共同提供模型和视图部分组件。Struts作为表示层的成熟技术在市场上已经广泛应用,可以很好地和Spring技术中间层紧密结合,Struts可以使用Spring提供的事务处理等特性。Spring按照资源管理的方法提供和Hibernate的集成及DAO实现和事物策略支持,Spring通过IOC机制和Hibernate集成,Spring能够很好地支持开发人员选择对象关系映射技术。

(2)SSH架构的科研管理系统的设计。SSH由3个开源的框架组合而成,表现层用Struts,Struts充当视图层和控制层;业务层使用Spring,Spring通过控制反转让控制层间接调用业务逻辑层;持久层使用Hibernate框架,Hibernate充当数据访问层。每个层在功能上指责明确,不与其他层混合,各层通过通信接口相互联系。1)Struts负责Web层。ActionFormBean对象负责接收网页中表单提交的数据,然后通过Action对象进行处理,再通过Forward对象跳转到对应的网页。其中Forward对象可以在配置文件struts-config.xml中进行定义,定以后ActionServlet核心配置文件则会自动读取并进行加载跳转信息;2)Spring负责业务层管理,即Service对象(或者Manager对象)Service对象为Action提供统计的调用接口,并且封装持久层的DAO对象,还集成了Hibernate框架中的功能。Spring主要的任务是对所有JavaBean和事物进行统一的管理;3)Hibernate负责持久化层,完成数据的增删改查操作。

Hibernate提供对象关系映射,使用配置文件*.hbm.xml和POJO实体对象,与关系数据库中的表形成映射关系,采用这样的方法,解决了面向对象的程序设计操作关系数据库数据的接口不匹配问题。在SSH框架的系统中,对象的调用流程是:JSP调用Action对象,Action使用Service方法进行DAO操作,通过DAO连接Hibernate实现对数据库的增删改查操作。Datastream通常为通过调用ActionForm组件自动获取用户的数据,接着Action组件将Data从ActionFormBean对象中取出(数据自动从ActionForm组件存入ActionFormBean中),Data取出后,将其进行封装或者实例化,再调用业务层的实体类(业务逻辑),完成多种实体类操作后再通过Forward对象将数据定位到需要的对象或者页面中。业务逻辑层实例化操作收到这个实体对象之后,会自动调用DAO接口方法,进行持久化操作,完成整个流程。

3结束语

ssh框架范文第3篇

关键词:SSH;高职;Web实战;中间件;mis

中图分类号:TP3 文献标识码:A 文章编号:1009-3044(2013)24-5493-02

众所周知,高职院校的培养模式一般侧重培养学生的动手能力与操作技巧,以使他们能确确实实掌握一门专业技能,增加其就业能力,以更好的适应社会的要求;而如何才能使学生掌握一门社会实践中广泛应用的,就业能力强的专业技能就显的十分重要也很必要;就计算机专业的学生来说,如果采用SSH框架实行教学,通过Web实战课程,使他们掌握建设mis系统的常用技巧、技术、流程直至最后让他们具备有单独设计开发一般mis系统的能力;则可以极大的提高计算机专业学生的专业技与学生的就业能力;对学校、学生、社会各方面来说都是个多赢的局面;因此,该文对在高职院校Web实战课程中引入SSH框架进行教学提出了一些自己的想法与建议。

1 SSH框架技术介绍

1.1 什么是SSH框架

所谓的SSH框架是指在J2EE项目中采用三种主要中间件技术,即Spring 、Struts 、Hibernate三种开源中间件,以实现与其他技术的完美整合而形成的一种比较高效、成熟、稳定的信息系统开发技术框架;其中Spring主要负责系统的业务处理,Hibernate主要负责底层数据库处理,而Struts则主要负责逻辑控制流转与页面展示处理;经过多年的软件开发实践,证明了采用SSH框架技术进行信息系统开发,可以极大的提高系统的开发速度,增加系统的稳定性,简化系统后期开发与维护。

1.2 SSH框架的特点与优势

采用SSH框架可以使开发人员可以更专注于业务处理,提高开发效率高;使系统层次清晰,易于维护及扩展层次的结构;而且框架的融合,代码的耦合方面都具有很大的优势, 对于编程的持续化,扩展化,维护化都很棒。

2 采用SSH框架教学的原则与方法

由于SSH框架涉及的技术深度与广度都相当大,因此,在对高职类学生进行授课教学的时候,应从他们的理论知识底子薄,知识涉及面相对窄的特点出发,采用一些非常规的教学方式与方式;从长期以来的实践教学经验来说,可以主要归纳为以下几点:

2.1 项目教学法的教学原则

正如我们所知道的,信息系统开发的技术众多,各种技术的历史渊源都不尽相同;而系统开发的每个流程都涉及到不同的理论和知识点;如果在Web实战课程中要把每个流程环节的理论、研究、应用都给学生一一细讲,那就失去了本课程的核心作用,学生到头来什么东西都只知道个大概,估计到最后就是“不知其然更不知其所以然也”;通过几学期的教学实践经验来看,通过项目教学法,则至少可以让学生“不知其所以然但知其然也”;一个简单的项目做下来,让学生了解整个系统的开发流程,主要的配置文件作用,系统各部分的运行方法,框架的运行机制等等主要的开发原理及开发机制;让他们最终能懂得及掌握利用学过的相关技术在以后的开发过程中学会框架的搭建、系统分模块的开发、相关配置文件的管理等一系列基础性开发能力,为以后更深入的mis系统开发奠定良好的基础。

2.2 “浅入浅出”的教学方法

总所周知,j2ee项目涉及技术众多,流行的中间件也数量比较大,像本文所讲的SSH框架涉及到了三个比较重要的中间件,还有相关的数据库技术,Web工程相关开发规范等等;那么在给学生授课的时候,如果我们都一个一个的细讲开来,课时上不可能,效果上也达不到预期的效果,比如配置文件WEB.xml;里面牵涉到的系统Listener启动机制,在给学生讲授的时候,就不必细细的把listener的相关知识点讲透,而只需要告诉学生listerner在配置文件中起的作用,应该放在Web.xml配置文件的那个地方就可以了;等以后他们开发经验增加了以后,自然的就会了解其深层次的原理及机制;类似的还有相关action的配置文件,及业务bean的配置文件也是如此;只有这样才能让学生很快的了解整个系统的大概的运行机制与流程,而不至于陷入到某一个细节技术里专了牛角尖而走不出来;这就是所谓的浅入浅出的教学方法。

2.3 “抓大放小”的教学方法

何谓抓大放小呢?即在项目教学的过程中,遇到有关的技术问题,要抓主干,而不要过多的消耗精力在旁枝上;比如就几个相关的配置文件来说,要让他们知道Web.XML是系统的主配置文件,struts.XML是系统的控制流转配置文件,负责系统的action管理;applicationContext.xml是系统业务逻辑处理配置文件,负责系统的bean管理;每个配置文件对应的package下面放置相应的java文件;只要让学生了解及掌握这些相关的配置文件的作用、配置方式及运行机制。就基本达到了我们所要求的教学母的;而不是在某个配置文件里面的某一个技术点去深挖相关的理论与背景;比如在我们利用反射机制在数据库配置文件中利用及相关映射配置文件建表login_infor时,系统并不能成功建表;而我们只去掉后面的 catalog属性便可实现成功建表;那么在教学过程中,我们只需要告诉学生有可能出现这样的情况,出现了怎么改就行了,而不必细细讲解为什么要去掉相关属性,属性的作用等等相关更深入的知识点;总之一句话,通过项目教学实践,让学生能明白系统开发主旨、抓住框架主干、懂得框架配置、学会mis基础开发就算是达到了教学目的。

3 SSH框架教学过程中容易出现的问题及应对方法

经过几学期的实际教学实践,总结出在教学过程中主要出现的几个问题:

3.1 学生接受能力差

一方面,很多学生本事的底子就比较差,很多人连Web开发的基本常识都没有;而另一方面是,本框架牵涉的内容的确太多,知识点量大,而学生的总课时又相对有限,这就造成了很大一部分学生跟不上;针对这种情况,后期通过采用增加课时、增加前置课程、采用分组教学、简化系统开发难度等方法和方式,基本上实现了绝大部分学生能够学有所成的效果;

3.2 教学资源不够完善

对绝大多数学校来说,机房都是比较稀缺的教学资源,而本课程要想达到预期的教学效果,就必要要有充足的上机实践时间;还要有相应的软件资源;这在很多计算机教学资源比较紧缺的学校,往往造成了学生的实践操作不够,不能达到预期的效果;针对这种情况,我们只能采用前期多媒体教学,把相关的知识点、理论点都讲透讲明白;减少大家上机实践时的适应时间;争取达到预期的效果与教学目标。

4 思考与总结

通过几学期的教学,虽然教学过程中会出现这样这样的问题,也面临着各种各样的困难;但是经过几学期的教学实践效果来看,通过本框架的学习,使绝大多数学生都掌握了Web开发的基础原理及技术,虽然有的学生理解的还很粗糙,但是我相信,只要他们以后走上相关的工作岗位,对要从事“软件蓝领”的技术人员来说,有了学校学习的相关知识与底子,相信走出社会,他们的适应能力与动手能力一定会有质的提升;从而实现企业、学校、学生多方面共赢的局面;所以在以后的Web实践课程中,这样的教学方式与方法不仅要坚持,还应该更加重视和提深;让学生真正的有所学、学得到、学得懂、学得好。

参考文献:

[1] 李刚.轻量级J2EE企业应用实战-Struts+Spring+Hibernate整合开发[M].北京:电子工业出版社,2007.4.

[2] 曹晓钢,唐勇,夏昕. 深入浅出Hibernate[M]. 北京:电子工业出版社,2005.6.

[3] 林信良. Spring2.0技术手册[M]. 北京:电子工业出版社,2002.

[4] 孙卫琴. Java面向对象编程[M]:北京:电子工业出版社, 2006.7.

[5] 李刚. Struts权威指南[M]: 电子工业出版社, 2007.9.

[6] 高洪岩. 至简SSH:精通JavaWeb实用开发技术[M]:电子工业出版社, 2009.11.

ssh框架范文第4篇

关键词:Struts;Hibernate;Spring;运输企业;安全管理系统

中图分类号:TP311.52文献标识码:A文章编号:16727800(2011)012007403

作者简介:饶锡如(1979-),男,重庆人,硕士,重庆市汽车运输(集团)有限责任公司工程师,研究方向为企业信息化和电子政务。

0引言

对于长途汽车客运企业而言,车辆的安全营运管理在企业管理中处于绝对核心地位。特别是随着企业公车化经营范围的不断扩大,运输企业对安全营运的压力陡增,传统的管理方式难以跟上安全管理的新形势、新要求。因此,运输企业迫切需要建立安全管理信息系统来弥补管理上的疏漏,有效发现安全隐患,从而降低安全事故发生的几率,并不断完善安全管理工作的长效机制。

1系统需求分析

针对运输企业的行业特点,安全管理系统主要是对人、车、路(即驾驶员、车辆、道路状况)进行管理和评估,并对安全隐患进行预警。系统的主要需求如下:

(1)驾驶员管理:驾驶员基本档案、驾驶员的资质准入、驾驶员的清退、驾驶员的事故处理、驾驶员的违法记分、驾驶员的安全学习、驾驶员的技能培训等。

(2)车辆管理:车辆基本档案、车辆的二级维护、车辆的保险、车辆的临时检查(包括路检、路查)、车辆的月检、车辆的检测、车辆超速记录(数据从已有的GPS系统中提取)、车辆驾驶员指派等。

(3)线路管理:线路基本信息、线路的查勘、路况的分段记录等。

(4)安全预警管理:预警参数的设置、手机短信群发等。

(5)其他管理:安全管理人员基本档案、安全管理组织结构、安全法规及制度、安全统计报表、安全会议、安全预案及演练、安全投入、安全文件发放、消防安全检查等。

2系统设计

SSH整合架构在轻量级Java EE企业级开发中处于主流地位。其中Struts实现了MVC模式,能够将应用的模型、视图、控制器这3个部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。Hibernate可实现对象/关系数据库的映射,从而既可利用面向对象程序设计语言的简单易用性,又可利用关系数据库的优势,提高开发数据库应用的效率。Spring则为企业应用的开发提供了一个轻量级的解决方案,其中最主要的是基于依赖注入的核心机制, Spring贯穿整个表现层、业务层、持久层。 SSH框架的整合开发在保留了Java EE应用架构的高度扩展性、高度可维护性的基础上,降低了Java EE应用的开发、部署成本。因此,安全管理系统采用SSH框架进行设计和开发,安全管理系统设计框架如图1所示。

图1安全管理系统设计框架

(1)数据持久化层:包括了安全管理系统数据库服务器(本系统采用Linux操作系统和MySQL数据库)等相关数据库服务器。

(2)ORM层:通过Hibernate实现Java对象和关系数据库之间的映射,并对JDBC进行轻量级的封装,对业务控制层提供数据CRUD操作的API接口。

(3)业务控制层:在DAO中通过继承HibernateDaoSupport类,调用getHibernateTemplate()方法返回一个hibernateTemplate对象,根据O/R映射文件进行数据的CRUD操作,从而实现业务逻辑功能,并通过接口调用的方式在Action中实现控制功能,再在struts.xml中进行相应视图跳转的配置。

(4)应用层:用户与系统交互实现业务功能,并通过Ajax和DWR框架使得Web开发人员可以在JavaScript中像使用浏览器的本地代码一样使用Java代码,这些Java代码是运行在服务器端并且可以自由访问Web服务器资源,这样可以大大增强用户体验。

通过Spring的注入依赖特性实现Struts和Hibernate的无缝整合。Spring的IoC(反转控制)模块提供了一种无侵入式的高扩展性框架来管理业务组件,由容器控制组件之间的关系,通过Spring实现类间调用的松耦合,使整个系统具有后期的可维护性和扩充性,能及时适应需求的变更。

3系统主要功能模块的实现

3.1SSH基础框架搭建

(1)applicationContext.xml配置文件片段

(2)strutsaction.xml配置文件片段

pages/driver/driver_browse.jsp

pages/driver/driver_learn_browse.jsp

pages/driver/driver_create.jsp

……

(3)*.hbm.xml配置文件片段

……

3.2图表报表分析功能的实现

安全管理系统通过对安全事故因子频率的统计,从中挖掘导致事故发生的潜在因素,用于指导安全管理工作的决策,其中的事故因子包括了时间区间、路况、事故类型、瞬时速率、GPS轨迹等。安全系统采用用于ETL的kettle工具进行数据的清洗和抽取,报表的开发采用iReport工具,该工具能以所见即所得的方式来开发报表定义文件,该工具不仅能生成HTML格式的报表,还能生成PDF和Excel格式的报表。Struts对其提供了很好的支持,可以方便地实现报表功能。

3.3定时预警及短信群发功能的实现

安全管理系统需要对驾驶员受教育学时、资质年限、车辆月检、二级维护、保险到期、违规违法记分等信息进行预警。用户通过前台预警配置页面进行预警条件的定义,后台程序将其拼接成SQL语句存入库表,系统通过定时轮询该SQL语句扫描数据库,一旦检索出预警数据,将预警信息在首页通过浮动框进行显示,并调用第三方设备短信猫接口发送手机短信通知相关管理人员。在本系统中的定时轮询机制采用JDK类库中的Timer类实现,Timer类是一种线程设施,可以用来实现在某一个时间或某一段时间后安排某一个任务执行一次或定期重复执行。而TimerTask类用来实现由Timer安排的一次或重复执行的某一个任务,Tasks.java代码片段如下。

……

timer = new Timer();

Calendar cal = Calendar.getInstance();

cal.set(Calendar.HOUR_OF_DAY, Integer.parseInt(s[0]));

cal.set(Calendar.MINUTE, Integer.parseInt(s[1]));

cal.set(Calendar.SECOND, Integer.parseInt(s[2]));

timer.schedule(new WarningTask(sce.getServletContext()), cal.getTime(),Integer.parseInt(s[3]));

……

3.4安全系统的部署与运行

将安全系统部署到Tomcat服务器中并启动Tomcat,在IE地址栏中输入localhost:8080/ts,登录系统后显示安全系统主页面如图2所示:

图2安全系统主页面

该系统通过压力测试,运行良好,稳定可靠。通过实际运行表明,该系统满足用户的功能需求,性能表现较好。

4结束语

基于SSH框架实现的运输企业安全管理系统投入实际运行以来,促进了安全管理工作的规范化、有效避免了安全隐患,达到了运输企业科学管理的目的。基于SSH框架的安全管理系统所具有的可维护性和扩展性,能快速适应未来业务需求的变更,降低维护成本。参考文献:

[1]李刚.轻量级Java EE企业应用实战(第3版)[M].北京:电子工业出版社,2011.

[2]郭广军,谢东,陈利品.基于SSH整合架构的教学支持系统设计与实现[J].计算机工程与设计,2009(13).

[3]王宝龙,李子扬,李晓辉.基于SSH框架和DWR技术的减灾卫星运行管理系统建设[J].计算机工程与设计,2010(23).

[4]陈农心,凌财进.基于SSH2的新型网上平台的设计与实现[J].制造业自动化,2011(3).

Design and Implementation of Transport Enterprise

Safety Management System Based on SSH Integration Frame

ssh框架范文第5篇

关键词:科研管理;MVC;SSH框架

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)11-2485-03

Abstract: In order to achieve the teaching and research management of information technology, combined with the actual situation of the North China Institute of Science and Technology research management, This paper reports the realization of the whole system bu constructing SSH framework based on MVC mode and in combination of using other technologies such as Ajax. The system can review the teacher’s academic achievements, such as research papers, monographs, patents, software, etc. and completes the whole process management of scientific research project.

Key words: research management; MVC; SSH

高校科研工作作为高等院校除人才培养之外的一项基本工作,是推动社会进步、解决各行业关键技术和突出问题的主要动力。高校的科研活动和能力已成为衡量一所高校综合实力的重要指标[1]。随着国家、各级部门、高校自身对科学研究活动的重视及资金投入的不断增加,高校各级、各类科研项目的数量、质量、规模在逐步提升;科研人员逐步增多,几乎所有的高校教师都是科研项目的参与者;同时,所取得的科研成果的种类、数量也在逐年增多。由此,日常科研管理任务逐年加重,科研业务管理人员以及科研人员重复性劳动增多,工作效率低下;科研活动所产生的信息资源无法高效、安全保存并共享,不能为学校科研管理决策者提供依据。面对以上问题和挑战,基于先进的计算机网络、数据库技术,建立一个符合自身工作流程和需求变化的,同时具有很强的可扩充性、可靠性和可维护性的科研管理信息系统是各高校的迫切要求[2] [3]。

基于MVC模式的SSH(Strut、Spring和Hibernate)框架是一种轻量级的应用系统解决方案。基于该架构的WEB应用系统,功能强大,开发效率高,系统安全性、稳定性、可扩展性强。该文以华北科技学院科研管理系统的开发为例,阐述了应用 SSH框架建立高校科研管理系统的设计与实现方法。

1 系统架构

1.1 MVC设计模式

MVC(Model-View-Controller)是一种基于模型视图控制器的软件设计模式,在MVC模式下,模型是应用程序的核心,代表应用程序的业务逻辑,它包含要完成任务需要的全部数据和行为,并能够把要显示的数据提供给视图。视图是应用程序的外在表现,用户与之交互的界面,用户可以看到。控制器用于处理用户输入,并负责将模型映射到视图中 [4]。传统的WEB开发模式将数据处理功能和网页页面显示等功能耦合于页面代码中,因此,其系统耦合度高,维护性和可扩展性差,MVC成功的解决了此问题,已被越来越多的开发者所推崇,成为了成熟、优秀的设计模式。

1.2 SSH框架

SSH是目前拥有最广泛应用的 J2EE 架构,是 Struts+Spring+Hibernate 3 种技术的有机融合 [5]。

Struts 是基于 MVC 的框架,充当控制器的角色,负责接收用户输入、调用服务层的方法后将结果返回数据表现层。Struts中的核心控制器是ActionServlet类,它负责拦截来自用户的请求,并将其发送给Action类,此时, Action类将调用模型的业务逻辑方法来处理该请求,并最终将处理结果返给JSP页面显示。

Hibernate在程序中充当模型的角色,利用XML 文件,它能够将数据库的字段和实体类字段之间的关系对应起来,使关系数据库中的数据在程序中直接变为程序中的对象。同时,Hibernate 还提供了强大功能的事务管理和缓存机制。科研管理信息系统的业务逻辑层通过 Hibernate 的缓存访问数据可以提高程序的处理速度,减少数据库的开销。

Spring在其中充当了装配工厂的角色,它通过 XML 配置文件将各子层的实例组织起来,并将各子层间的依赖关系集中表现在配置文档中,使系统的结构更加清晰、合理。

1.3 系统总体结构设计

本系统运用 MVC 模式,基于 SSH 框架,将输入、核心处理、输出流程按照模型、视图、控制的方式进行分离,分为客户层、EJB层、数据访问层3个层次客户层处理与用户的交互,运行在客户端的浏览器中。EJB层主要用于实现核心业务逻辑与规则化处理,完成科研数据查询和更新业务、用户权限判定等。EJB层功能主要由其组件完成,Servlet用于实现控制逻辑,负责处理Http请求;实体Bean组件实现业务逻辑,并访问数据库。当客户层将请求传递给EJB层时,控制Servlet首先检验其数据的合法性并进行格式转换,然后调用实体Bean组件进行业务逻辑处理,并访问数据库。 最后通过 JSP页面将处理的结果反馈到客户端。通过以上的各类逻辑处理决定操作是否可以继续,确保科研管理系统的正常运行。

数据访问层采用通用的关系型数据库管理科研信息平台。EJB层中的实体Bean组件通过JDBC连接数据库,并与系统进行信息交互,完成核心存储库的数据访问和逻辑存取。 数据访问层与EJB层间JDBC灵活机制的增加,使整个科研管理系统具有好的可重用性和较强的跨平台操作性。

2 系统功能模块设计

高校科研管理的业务主要涉及学术论文、教材(论著)、专利、软件等教师科研学术成果的认定,包括其成果级别及奖励的认定;校内基金课题的全过程管理,其他国家、省部级纵向课题及横向课题的管理;科研工作量审核等。在参照华北科技学院有关科研项目与成果管理的规章制度,以及学校自身科研项目与成果管理的内容、工作流程基础上,将系统划分为如下业务模块:学术论文、教材、专利、软件等学术成果管理模块,科研项目管理模块,数据查询与统计模块,系统控制模块2.1 学术成果管理模块

该模块主要用于科研教师论文、教材著作、专利、软件等学术成果的审核及奖励标准的核定。教师可以将自己的学术成果信息以及成果获奖或被引用检索的相关佐证材料,按要求填写上报。科研处管理员对教师新录入的学术成果进行审核或删除操作,同时进行奖励标准的核定。

2.2 科研项目管理模块

该模块实现科研教师纵向、横向、校内基金项目的全过程管理与监督,以及科研成果奖励的核定。包括纵向项目管理、校内基金项目管理、横向项目管理以及科研项目成果奖励管理四个子模块。

纵向、横向项目管理子模块:科研项目负责人可对录入项目相关信息,上传横向项目免税申请书、绩效考核报告、中期检查报告、结题报告等项目实施过程中的各种文件及成果。科研管理人员可设置项目绩效考核、中期检查、结题等提醒时间,对横向项目免税申请进行审核。检查、监控项目的实施情况。

校内基金项目管理子模块:实现科研项目立项申请、中期检查、结题、评奖等全过程管理。科研教师可对项目名称、所属单位、参加人员及排名、指出经费的信息的进行录入,可上传项目申请书、立项合同书、中期检查报告、结题申请书、结题材料,可随时查看项目申请状态、中期检查状态等。科研管理员可以对项目申请进行审核、送审、评审意见汇总,可以对中期检查报告、结题材料进行审核。评审专家可以对申请书进行评审,并填写评审意见。

科研成果奖励管理子模块:科研教师可录入和上传科研项目成果奖的相关信息及佐证材料。科研管理人员可对新录入的科研项目成果奖进行审核或删除操作。

2.3 数据查询与统计模块

该模块实现对全校科研教师所有学术成果及奖励的多元化、精细化综合查询与统计,满足教师、教学秘书、科研管理人员等不同用户,以及教育部、河北省教育厅、国家安全生产总局、学校等各级部门数据查询统计需求,打印相应的统计报表。

2.4 系统控制模块

该模块主要用于管理员进行系统配置管理、用户管理以及其他各功能模块中需要系统管理员自定义项的设置。如系统用户的创建及其权限的定义,用户所属单位、学科、期刊名、会议名、期刊级别等的自定义设置。

3 系统关键技术实现

3.1 异步数据访问

为加快系统页面更新速度,使用户有一种实时响应的体验,通过在系统客户端增加Ajax引擎,实现客户端和用户数据异步访问。当用户打开一个Web页面是,就载入Ajax引擎。Ajax引擎初始化后,开始初始化XMLHttpRequest对象,捕捉用户行为,开始于用户的交互。当用户的某些请求出发Ajax是,Ajax在后台将用户的数据异步请求送到控制器ActionServlet处理。3.2 系统安全性

科研管理系统安全性主要是数据安全问题,包括用户登录信息,学术成果及科研项目信息安全等。为避免非法用户任意篡改数据,系统在接收到数据修改、删除请求时,首先要判断发出该请求的用户是否具有相应的权限。由于用户权限数据存放于数据库中,同时用户更新数据的页面通常是连续的,如果每接收一次数据更新请求就查询一次数据库,系统的效率就会很低。因此,为了提高系统效率,系统采用了JSP 的 Session 对象。当用户首次访问服务器上的一个页面时,JSP引擎就会生成一个 Session 对象,该 Session 对象即调用相应的方法,存储该客户访问各个页面期间提交的各种信息,如姓名、密码等。该 Session 对象会被分配一个的DI号(String 类型),根据这个 ID 号 JPS引擎与用户间就建立了一一对应关系。这样,系统在判定某用户权限时,只需访问一次数据库,将一些有用的信息存储在 Session 中,以后系统在执行用户请求时,可直接访问 Session 中存放的信息,由此,避免了反复访问后台数据,系统运行效率得到了提高。

4 结束语

本文结合华北科技学院科研项目及学术成果管理内容、工作流程,采用基于 J2EE的 MVC 模式,利用 Struts、Spring 和 Hibernate 的整合架构设计和实现了一个基于 Web 的高校科研管理信息系统。系统功能简捷、实用,同时考虑到将来科研管理理念的变迁和管理模式的变革,系统预留了一定数量的接口用于系统功能扩充,保证了系统的可扩展性。科研管理信息系统的实施大大提高了科研教师及管理部门的效率,实现了学校科研工作流程化、规范化管理。

参考文献:

[1] 许博.基于.NET三层架构的科研管理系统的开发与应用[J].实验室研究与探索,2013(2):188-190.

[2] 台德艺,王昆仑,郭昌健.高校科研信息管理系统的设计与实现[J].计算机工程与设计,2009(9):2339-2341.

[3] 刘晨霞,张明.高校科研管理信息系统实践初探[J].科技管理研究,2009(8):253-254.

相关期刊更多

省级期刊 审核时间1个月内

四川省科学技术协会

ITS通讯

省级期刊 审核时间1个月内

清华大学交通研究所

Chinese Annals of Mathematics Series B

SCI期刊 审核时间1-3个月

复旦大学