APP下载

基于MVC模式的科技管理信息系统设计与实现

2020-11-14唐满华段立军周亿城

计算机技术与发展 2020年9期
关键词:视图申报专家

唐满华,柳 毅,段立军,周亿城

(湖南省科学技术信息研究所,湖南 长沙 410001)

0 引 言

随着科技的发展,科研项目的数量越来越多,科技管理工作难度越来越大,采取信息管理系统是实现科技业务规范化、精细化管理的必然趋势[1]。国家先后出台了《国务院关于改进加强中央财政科研项目和资金管理的若干意见》(国发﹝2014﹞11号)、《关于深化中央财政科技计划(专项、基金等)管理改革的方案》(国发﹝2014﹞64号)等文件,明确提出要建成统一的国家科技管理信息系统,并实现与各省级系统互联互通。根据科技部、省委省政府的要求,2016年某省科技部门建设了科技管理信息系统,实现了科技业务的全流程信息化,同时对接国家科技管理信息平台,以提高科技业务管理行政效能和公共服务能力[2]。但随着新技术的涌现、科技业务范围的扩展、管理方式的转变以及精细管理的深入,该系统原有技术架构和部分功能已与目前不相适应,在一定程度上制约科技管理的规范化发展。针对以上不足,结合某省科技管理改革的工作实际、用户习惯及新技术的发展和演变,分析原科技管理信息系统与新科技业务管理需求,采用SSH(Struts+Spring+Hibernate)框架技术[3],设计开发一套基于MVC模式的科技管理信息系统[4]。

该系统运用当今国内、国际上最先进和成熟的计算机技术,系统采用的技术都遵循国际流行技术和成熟技术,保证系统在较长的时间内能适应科技业务管理和技术的发展。一是采用Linux操作系统(Red Hat Enterprise Linux或CentOS 6)、Oracle大型数据库软件平台(11g)、Oracle Weblogic、Apache Tomcat、Jboss;二是采用或支持双机热备份技术、负载均衡技术、共享数据盘技术、容错技术、RAID技术等集成技术、多媒体技术、支持CA、邮件、短信技术;三是采用JAVAEE多层架构、构件化的解决方案及支持分布式处理、多任务并行;四是使用XML技术进行交换和存储,使用Web2.0,Ajax进行交互和展现,使用Webservice技术进行交换和集成;五是实现了项目申报、评审、立项、验收等全流程信息化管理的科技管理信息系统。

1 系统需求分析

1.1 用户需求分析

(1)用项目申报人需求分析。

项目申报人是指项目的负责人,将全程参与项目申报、合同填报、变更申请、绩效报告提交、科技报告提交、验收报告提交等功能。该用户区域分布和比例是最高的,用户使用层次高低不等,其希望系统使用简单易用,界面和提示人性化。

(2)管理员需求分析。

管理员包括项目申报单位管理员、推荐单位管理员及系统管理员。申报单位管理员主要负责对项目申报人员管理、项目审核推荐等。推荐单位管理员主要参与所管辖单位项目的审核推荐等。系统管理员主要设置系统运行参数、定制流程和部分业务逻辑等。其希望能够使自己的管理工作更简单实用,更实效,更轻松。

(3)业务处室用户分析。

业务处室用户指单位相关业务处室人员及对应评审机构人员和评审专家,主要负责项目的审核、签订合同及在研项目变更、执行、验收等管理工作。其希望查询强大,功能灵活,使用方便。

(4)领导用户分析。

领导指单位的主要领导和业务相关的分管领导等,主要从宏观上进行科技管理,其希望获取系统的业务统计数据,并提供数据决策和分析。

1.2 功能需求分析

基于需求理解和分析,确定科技管理信息系统共包含6个子系统模块,分别为项目管理、专家管理、统计分析、历史数据、数据对接和后台管理。系统总体结构功能如图1所示。

图1 系统总体结构功能

系统主要功能概述如下:

(1)项目管理子系统是指科技业务从各业务处室人员的指南发布,开通项目申报,到企业在系统填报申请书,经县市推荐部门审核,送交业务处室,最终经过业务主管部门形成审查、组织专家评审、确定立项意见,发布下达文件,以及合同签订、资金拨付、项目中期管理、项目验收整个生命周期过程。从细化的角度划分为指南发布、项目申报、项目查重、申报评审、立项审批、合同签订、拨款管理、项目跟踪、变更管理、验收管理等过程。

(2)专家管理子系统是指一个全面实现电子化、信息化、网络化、标准化、规范化的某省科技专家库系统,提供全面的专家数据,为系统的评审、验收等提供有力的支持,同时可以对专家信息进行收集、信息维护、专家评估等操作,支持业务综合管理系统项目评审和验收评审功能的专家抽取功能。

(3)统计分析子系统是指开发统计和报表分析模块为各级领导、处室用户提供业务辅助决策和分析支持。在对科技业务流程及科研管理流程深入了解的基础上,理论结合实际,建立符合各级领导决策和管理需求的辅助决策模型和统计报表。

(4)历史数据子系统是指某省有多个科技计划项目管理,对于各科技计划项目存在的历史项目数据,可将历史项目数据进行统一的梳理后导入系统,进行存储和历史项目后续管理。

(5)数据对接子系统是指科技管理信息系统平台提供灵活的系统接口,可通过接口进行快速开发,以满足科技管理信息系统与邮件短信平台、其他业务系统等系统的数据交互要求。

(6)后台管理子系统是指系统运行支撑工作的基础功能模块,包括业务配置、权限管理、用户管理、流程配置、界面定制、后台任务、智能短信、系统日志和集成交换。

2 系统设计与实现

2.1 系统技术架构

2.1.1 MVC简述

MVC(Model-View-Controller),即模型、视图、控制器,它把应用程序抽象为模型、视图、控制器三个功能截然不同的部分[5]。其中模型层封装核心数据、逻辑和功能的计算关系等,实现应用系统业务逻辑,该系统用Javabean来实现。视图层用于与用户交互,即把模型数据及逻辑关系和状态的信息以特定形式展示给用户,通常用JSP来实现。控制层是处理用户与应用系统的交互操作,即模型层与视图层之间沟通的桥梁,它可以接受用户的输入并将输入反馈给模型进而实现对模型的计算控制,同时根据用户请求选择合适的视图用于显示[6]。

文中采用的MVC模式如图2所示。

图2 MVC设计模式

使用MVC模式的目的是实现应用系统按模型、视图和控制器分层开发,使得系统代码分工明确,降低应用系统内部不同层之间的耦合关系,每个层的实现都是独立的,不需关心其他层的具体实现,只需关心数据的流动,这样提高了系统的可维护性、可扩展性和可重用性[7-9]。

科技管理信息系统视图层负责对登录信息、账号信息、项目负责人信息等进行收集,以及对科技项目信息进行查询和展示;控制层负责连接模型层与视图层,即将视图层采集的数据,根据业务逻辑的要求调用模型层对应的处理模块进行处理;模型层包含对科技项目管理信息进行处理的各个功能模块,主要包括登录模块、项目管理、专家管理、统计分析、历史数据、数据对接和后台管理模块等。

2.1.2 SSH框架简述

系统采用比较成熟的B/S体系结构,服务器使用Linux操作系统,中间件采用WebLogic,数据库采用Oracle,服务器开发采用JavaEE技术,系统开发采用MVC设计模式,其中表示层应用Struts框架实现了MVC模式的控制器和视图部分,持久层采用Hibernate框架,同时结合业务层Spring框架一起实现了MVC模式的模型部分[5],运用Struts+Spring+Hibernate来进行基于MVC模式的科技信息管理系统开发[10-11]。系统总体结构如图3所示。

图3 系统总体结构

客户层(客户端表示层)采用流行的Ajax技术以及Java Applet技术,实现胖客户用户界面,为用户提供了良好的操作体验。

表示层(服务端表示层)采用基于MVC模式的Struts框架。采用Struts实现表示层,完成应用系统的视图和控制器部分。通过JSP和Java Servlet等技术构建Web应用的表示层,通过拦截器来处理用户的请求,利用控制器将业务逻辑和表现逻辑解耦。

业务层采用Spring框架。Spring核心是控制反转IOC/依赖注入DI机制[4]。业务层负责业务逻辑的实现和事务处理的控制。为实现系统的开放性和兼容性,采用Web Services接口技术,便于完好的封装性,松散耦合。

持久层采用Hibernate框架。Hibernate框架为Java提供了“对象-关系持久化”机制和查询服务,将数据实体和数据使用者相关联,Web应用可以通过面向对象的方式进行数据库的各种访问操作,如删除、插入、更新、查询数据等[12]。

领域模型层由那些代表现实世界中的业务对象的对象们组成,在不同的层之间移动,使各层成为统一的整体。数据存储层用于数据库管理系统(DBMS)和文件系统存储。综上所述,SSH框架是轻量级的,结构清晰、安全性高、易于维护和扩展[13]。因此采用SSH框架轻量级JavaEE集成开发技术来实现科技管理信息系统[14-16]。

2.2 数据库设计

系统部分重要的数据库表包括用户信息表、用户权限表、申报项目表、专家评审表、项目立项表、合同签订表、经费管理表、执行报告表、项目变更表、项目验收表、项目公示表等11个表。因篇幅有限,文中以用户信息表设计与创建为例。

2.2.1 用户信息表设计

用户信息表主要包括姓名、联系方式、身份证号码、职称、银行账号等信息,如表1所示。

表1 用户信息表

续表1

2.2.2 用户信息表创建

Drop trigger

HNSTC."BIN$7CbiyEu0JGzgQ2YPqMDezA==$1"/

drop index HNSTC.IDX_ZH_NAME/

drop index HNSTC.IDX_PSN_VERSON/

drop index HNSTC.IDX_ORG_NAME/

drop index HNSTC.IDX_CARD_CODE/

drop table HNSTC.PERSON cascade constraints/

/*============================*/

/*Table: PERSON

*/

/*============================*/

create table HNSTC.PERSON

(

PSN_CODE NUMBER(18) not null,

ORG_CODE NUMBER(18),

ORG_NAME VARCHAR2(500 char),

DEPT_CODE NUMBER(18),

DEPT_NAME VARCHAR2(50 char),

ZH_NAME VARCHAR2(40 char),

CARD_TYPE NUMBER(1),

CARD_CODE VARCHAR2(100 char),

MOBILE VARCHAR2(40 char),

EMAIL VARCHAR2(100 char),

STATUS CHAR,

CREATE_DATE DATE,

TITLE VARCHAR2(50 char),

FIRST_NAME VARCHAR2(50 char),

LAST_NAME VARCHAR2(50 char),

PROF_TITLE VARCHAR2(100 char),

PENABLE NUMBER(1),

EDITED CHAR default '0',

PROF_TITLE_ID VARCHAR2(5 char),

UPDATE_TIME DATE,

TEL VARCHAR2(25 char),

EXPERT_IMPORT_ID VARCHAR2(20),

ACCOUNT VARCHAR2(200),

OLD_PSN_CODE NUMBER(18),

POSITION VARCHAR2(200),

ATTACHED CHAR default '0',

constraint

"BIN$7CbiyEuxJGzgQ2YPqMDezA==$0" primary key (PSN_CODE))

3 系统测试

系统测试包括功能测试和性能测试,系统业务流程主要功能和辅助功能主要采用手工测试,性能指标的测试主要采用测试工具LoadRunner进行自动测试及分析,性能测试必须在功能测试完成后进行。对于用户登录、附件上传、大容量测试采用手工测试和脚本测试代码辅助进行。安全性、可靠性测试、数据库事务处理采用手工测试的方法。

3.1 测试环境

测试环境如表2所示。

表2 测试环境

3.2 性能测试

系统主要包括了单位注册,用户登录,申报书填写,申报书保存、申报书提交,项目评审、项目立项等功能。其中用户登录,申报书保存提交、项目评审需要执行性能测试,查看系统的性能指标是否能满足用户的要求。主要需检测内容包括申报人提交申报书时的响应时间、专家评审项目时的响应时间、系统所支持的同时在线用户数等三方面内容。因篇幅有限,文中只列出用LoadRunner工具设计专家评审项目时的响应时间的压力测试。

专家登录系统,系统每秒钟新增2个专家登录系统。总共登录600个专家。专家登录之后,进行项目评审工作,全部专家登录之后,再进行评审表的提交。

3.2.1 测试目的

测试系统能够支持每天600个专家同时在线进行评审工作,并且每次专家提交评审表的响应时间小于3秒钟。

3.2.2 虚拟用户登录情况

虚拟600个专家登录系统,进行项目的评审工作,然后提交评审表,598个成功,有2个失败。成功登录的598个专家,全部都成功提交了项目的评审表,提交评审表成功率100%,如图4所示。

事务名称

在600个专家同时进行评审工作时,提交评审表的响应的平均时间为2.535秒,如图5所示。

图5 提交评审表响应时间测试结果

3.2.3 测试结论

系统在600个专家登录系统,同时在线进行评审工作,能够正常使用,服务器运行正常。并且每次的提交评审表的响应时间小于3秒钟。

3.3 系统界面实现

部分关键界面运行效果图,项目申报人主界面,如图6所示。

图6 项目申报人主界面

申报单位管理员界面,如图7所示。

图7 申报单位管理员界面

4 结束语

以科技管理的现状,采用JavaEE技术与SSH框架技术,经系统需求分析、系统设计与实现、系统开发、系统测试,最终开发了一个可维护、易扩展的B/S模式的省科技管理信息系统。科技项目管理的信息化有利于科技管理部门对项目进行统计和决策分析,有利于最大限度地提高工作效率、节约成本,对其他省份或单位类似科技管理信息系统改进或构建具有借鉴意义。

猜你喜欢

视图申报专家
致谢审稿专家
鼠国要上天之离你十五米
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
《投影与视图》单元测试题
Django 框架中通用类视图的用法
请叫我专家
专家面对面
专家答疑