唐滿華,柳 毅,段立軍,周億城
(湖南省科學(xué)技術(shù)信息研究所,湖南 長(zhǎng)沙 410001)
隨著科技的發(fā)展,科研項(xiàng)目的數(shù)量越來(lái)越多,科技管理工作難度越來(lái)越大,采取信息管理系統(tǒng)是實(shí)現(xiàn)科技業(yè)務(wù)規(guī)范化、精細(xì)化管理的必然趨勢(shì)[1]。國(guó)家先后出臺(tái)了《國(guó)務(wù)院關(guān)于改進(jìn)加強(qiáng)中央財(cái)政科研項(xiàng)目和資金管理的若干意見(jiàn)》(國(guó)發(fā)﹝2014﹞11號(hào))、《關(guān)于深化中央財(cái)政科技計(jì)劃(專項(xiàng)、基金等)管理改革的方案》(國(guó)發(fā)﹝2014﹞64號(hào))等文件,明確提出要建成統(tǒng)一的國(guó)家科技管理信息系統(tǒng),并實(shí)現(xiàn)與各省級(jí)系統(tǒng)互聯(lián)互通。根據(jù)科技部、省委省政府的要求,2016年某省科技部門建設(shè)了科技管理信息系統(tǒng),實(shí)現(xiàn)了科技業(yè)務(wù)的全流程信息化,同時(shí)對(duì)接國(guó)家科技管理信息平臺(tái),以提高科技業(yè)務(wù)管理行政效能和公共服務(wù)能力[2]。但隨著新技術(shù)的涌現(xiàn)、科技業(yè)務(wù)范圍的擴(kuò)展、管理方式的轉(zhuǎn)變以及精細(xì)管理的深入,該系統(tǒng)原有技術(shù)架構(gòu)和部分功能已與目前不相適應(yīng),在一定程度上制約科技管理的規(guī)范化發(fā)展。針對(duì)以上不足,結(jié)合某省科技管理改革的工作實(shí)際、用戶習(xí)慣及新技術(shù)的發(fā)展和演變,分析原科技管理信息系統(tǒng)與新科技業(yè)務(wù)管理需求,采用SSH(Struts+Spring+Hibernate)框架技術(shù)[3],設(shè)計(jì)開(kāi)發(fā)一套基于MVC模式的科技管理信息系統(tǒng)[4]。
該系統(tǒng)運(yùn)用當(dāng)今國(guó)內(nèi)、國(guó)際上最先進(jìn)和成熟的計(jì)算機(jī)技術(shù),系統(tǒng)采用的技術(shù)都遵循國(guó)際流行技術(shù)和成熟技術(shù),保證系統(tǒng)在較長(zhǎng)的時(shí)間內(nèi)能適應(yīng)科技業(yè)務(wù)管理和技術(shù)的發(fā)展。一是采用Linux操作系統(tǒng)(Red Hat Enterprise Linux或CentOS 6)、Oracle大型數(shù)據(jù)庫(kù)軟件平臺(tái)(11g)、Oracle Weblogic、Apache Tomcat、Jboss;二是采用或支持雙機(jī)熱備份技術(shù)、負(fù)載均衡技術(shù)、共享數(shù)據(jù)盤技術(shù)、容錯(cuò)技術(shù)、RAID技術(shù)等集成技術(shù)、多媒體技術(shù)、支持CA、郵件、短信技術(shù);三是采用JAVAEE多層架構(gòu)、構(gòu)件化的解決方案及支持分布式處理、多任務(wù)并行;四是使用XML技術(shù)進(jìn)行交換和存儲(chǔ),使用Web2.0,Ajax進(jìn)行交互和展現(xiàn),使用Webservice技術(shù)進(jìn)行交換和集成;五是實(shí)現(xiàn)了項(xiàng)目申報(bào)、評(píng)審、立項(xiàng)、驗(yàn)收等全流程信息化管理的科技管理信息系統(tǒng)。
(1)用項(xiàng)目申報(bào)人需求分析。
項(xiàng)目申報(bào)人是指項(xiàng)目的負(fù)責(zé)人,將全程參與項(xiàng)目申報(bào)、合同填報(bào)、變更申請(qǐng)、績(jī)效報(bào)告提交、科技報(bào)告提交、驗(yàn)收?qǐng)?bào)告提交等功能。該用戶區(qū)域分布和比例是最高的,用戶使用層次高低不等,其希望系統(tǒng)使用簡(jiǎn)單易用,界面和提示人性化。
(2)管理員需求分析。
管理員包括項(xiàng)目申報(bào)單位管理員、推薦單位管理員及系統(tǒng)管理員。申報(bào)單位管理員主要負(fù)責(zé)對(duì)項(xiàng)目申報(bào)人員管理、項(xiàng)目審核推薦等。推薦單位管理員主要參與所管轄單位項(xiàng)目的審核推薦等。系統(tǒng)管理員主要設(shè)置系統(tǒng)運(yùn)行參數(shù)、定制流程和部分業(yè)務(wù)邏輯等。其希望能夠使自己的管理工作更簡(jiǎn)單實(shí)用,更實(shí)效,更輕松。
(3)業(yè)務(wù)處室用戶分析。
業(yè)務(wù)處室用戶指單位相關(guān)業(yè)務(wù)處室人員及對(duì)應(yīng)評(píng)審機(jī)構(gòu)人員和評(píng)審專家,主要負(fù)責(zé)項(xiàng)目的審核、簽訂合同及在研項(xiàng)目變更、執(zhí)行、驗(yàn)收等管理工作。其希望查詢強(qiáng)大,功能靈活,使用方便。
(4)領(lǐng)導(dǎo)用戶分析。
領(lǐng)導(dǎo)指單位的主要領(lǐng)導(dǎo)和業(yè)務(wù)相關(guān)的分管領(lǐng)導(dǎo)等,主要從宏觀上進(jìn)行科技管理,其希望獲取系統(tǒng)的業(yè)務(wù)統(tǒng)計(jì)數(shù)據(jù),并提供數(shù)據(jù)決策和分析。
基于需求理解和分析,確定科技管理信息系統(tǒng)共包含6個(gè)子系統(tǒng)模塊,分別為項(xiàng)目管理、專家管理、統(tǒng)計(jì)分析、歷史數(shù)據(jù)、數(shù)據(jù)對(duì)接和后臺(tái)管理。系統(tǒng)總體結(jié)構(gòu)功能如圖1所示。
圖1 系統(tǒng)總體結(jié)構(gòu)功能
系統(tǒng)主要功能概述如下:
(1)項(xiàng)目管理子系統(tǒng)是指科技業(yè)務(wù)從各業(yè)務(wù)處室人員的指南發(fā)布,開(kāi)通項(xiàng)目申報(bào),到企業(yè)在系統(tǒng)填報(bào)申請(qǐng)書,經(jīng)縣市推薦部門審核,送交業(yè)務(wù)處室,最終經(jīng)過(guò)業(yè)務(wù)主管部門形成審查、組織專家評(píng)審、確定立項(xiàng)意見(jiàn),發(fā)布下達(dá)文件,以及合同簽訂、資金撥付、項(xiàng)目中期管理、項(xiàng)目驗(yàn)收整個(gè)生命周期過(guò)程。從細(xì)化的角度劃分為指南發(fā)布、項(xiàng)目申報(bào)、項(xiàng)目查重、申報(bào)評(píng)審、立項(xiàng)審批、合同簽訂、撥款管理、項(xiàng)目跟蹤、變更管理、驗(yàn)收管理等過(guò)程。
(2)專家管理子系統(tǒng)是指一個(gè)全面實(shí)現(xiàn)電子化、信息化、網(wǎng)絡(luò)化、標(biāo)準(zhǔn)化、規(guī)范化的某省科技專家?guī)煜到y(tǒng),提供全面的專家數(shù)據(jù),為系統(tǒng)的評(píng)審、驗(yàn)收等提供有力的支持,同時(shí)可以對(duì)專家信息進(jìn)行收集、信息維護(hù)、專家評(píng)估等操作,支持業(yè)務(wù)綜合管理系統(tǒng)項(xiàng)目評(píng)審和驗(yàn)收評(píng)審功能的專家抽取功能。
(3)統(tǒng)計(jì)分析子系統(tǒng)是指開(kāi)發(fā)統(tǒng)計(jì)和報(bào)表分析模塊為各級(jí)領(lǐng)導(dǎo)、處室用戶提供業(yè)務(wù)輔助決策和分析支持。在對(duì)科技業(yè)務(wù)流程及科研管理流程深入了解的基礎(chǔ)上,理論結(jié)合實(shí)際,建立符合各級(jí)領(lǐng)導(dǎo)決策和管理需求的輔助決策模型和統(tǒng)計(jì)報(bào)表。
(4)歷史數(shù)據(jù)子系統(tǒng)是指某省有多個(gè)科技計(jì)劃項(xiàng)目管理,對(duì)于各科技計(jì)劃項(xiàng)目存在的歷史項(xiàng)目數(shù)據(jù),可將歷史項(xiàng)目數(shù)據(jù)進(jìn)行統(tǒng)一的梳理后導(dǎo)入系統(tǒng),進(jìn)行存儲(chǔ)和歷史項(xiàng)目后續(xù)管理。
(5)數(shù)據(jù)對(duì)接子系統(tǒng)是指科技管理信息系統(tǒng)平臺(tái)提供靈活的系統(tǒng)接口,可通過(guò)接口進(jìn)行快速開(kāi)發(fā),以滿足科技管理信息系統(tǒng)與郵件短信平臺(tái)、其他業(yè)務(wù)系統(tǒng)等系統(tǒng)的數(shù)據(jù)交互要求。
(6)后臺(tái)管理子系統(tǒng)是指系統(tǒng)運(yùn)行支撐工作的基礎(chǔ)功能模塊,包括業(yè)務(wù)配置、權(quán)限管理、用戶管理、流程配置、界面定制、后臺(tái)任務(wù)、智能短信、系統(tǒng)日志和集成交換。
2.1.1 MVC簡(jiǎn)述
MVC(Model-View-Controller),即模型、視圖、控制器,它把應(yīng)用程序抽象為模型、視圖、控制器三個(gè)功能截然不同的部分[5]。其中模型層封裝核心數(shù)據(jù)、邏輯和功能的計(jì)算關(guān)系等,實(shí)現(xiàn)應(yīng)用系統(tǒng)業(yè)務(wù)邏輯,該系統(tǒng)用Javabean來(lái)實(shí)現(xiàn)。視圖層用于與用戶交互,即把模型數(shù)據(jù)及邏輯關(guān)系和狀態(tài)的信息以特定形式展示給用戶,通常用JSP來(lái)實(shí)現(xiàn)。控制層是處理用戶與應(yīng)用系統(tǒng)的交互操作,即模型層與視圖層之間溝通的橋梁,它可以接受用戶的輸入并將輸入反饋給模型進(jìn)而實(shí)現(xiàn)對(duì)模型的計(jì)算控制,同時(shí)根據(jù)用戶請(qǐng)求選擇合適的視圖用于顯示[6]。
文中采用的MVC模式如圖2所示。
圖2 MVC設(shè)計(jì)模式
使用MVC模式的目的是實(shí)現(xiàn)應(yīng)用系統(tǒng)按模型、視圖和控制器分層開(kāi)發(fā),使得系統(tǒng)代碼分工明確,降低應(yīng)用系統(tǒng)內(nèi)部不同層之間的耦合關(guān)系,每個(gè)層的實(shí)現(xiàn)都是獨(dú)立的,不需關(guān)心其他層的具體實(shí)現(xiàn),只需關(guān)心數(shù)據(jù)的流動(dòng),這樣提高了系統(tǒng)的可維護(hù)性、可擴(kuò)展性和可重用性[7-9]。
科技管理信息系統(tǒng)視圖層負(fù)責(zé)對(duì)登錄信息、賬號(hào)信息、項(xiàng)目負(fù)責(zé)人信息等進(jìn)行收集,以及對(duì)科技項(xiàng)目信息進(jìn)行查詢和展示;控制層負(fù)責(zé)連接模型層與視圖層,即將視圖層采集的數(shù)據(jù),根據(jù)業(yè)務(wù)邏輯的要求調(diào)用模型層對(duì)應(yīng)的處理模塊進(jìn)行處理;模型層包含對(duì)科技項(xiàng)目管理信息進(jìn)行處理的各個(gè)功能模塊,主要包括登錄模塊、項(xiàng)目管理、專家管理、統(tǒng)計(jì)分析、歷史數(shù)據(jù)、數(shù)據(jù)對(duì)接和后臺(tái)管理模塊等。
2.1.2 SSH框架簡(jiǎn)述
系統(tǒng)采用比較成熟的B/S體系結(jié)構(gòu),服務(wù)器使用Linux操作系統(tǒng),中間件采用WebLogic,數(shù)據(jù)庫(kù)采用Oracle,服務(wù)器開(kāi)發(fā)采用JavaEE技術(shù),系統(tǒng)開(kāi)發(fā)采用MVC設(shè)計(jì)模式,其中表示層應(yīng)用Struts框架實(shí)現(xiàn)了MVC模式的控制器和視圖部分,持久層采用Hibernate框架,同時(shí)結(jié)合業(yè)務(wù)層Spring框架一起實(shí)現(xiàn)了MVC模式的模型部分[5],運(yùn)用Struts+Spring+Hibernate來(lái)進(jìn)行基于MVC模式的科技信息管理系統(tǒng)開(kāi)發(fā)[10-11]。系統(tǒng)總體結(jié)構(gòu)如圖3所示。
圖3 系統(tǒng)總體結(jié)構(gòu)
客戶層(客戶端表示層)采用流行的Ajax技術(shù)以及Java Applet技術(shù),實(shí)現(xiàn)胖客戶用戶界面,為用戶提供了良好的操作體驗(yàn)。
表示層(服務(wù)端表示層)采用基于MVC模式的Struts框架。采用Struts實(shí)現(xiàn)表示層,完成應(yīng)用系統(tǒng)的視圖和控制器部分。通過(guò)JSP和Java Servlet等技術(shù)構(gòu)建Web應(yīng)用的表示層,通過(guò)攔截器來(lái)處理用戶的請(qǐng)求,利用控制器將業(yè)務(wù)邏輯和表現(xiàn)邏輯解耦。
業(yè)務(wù)層采用Spring框架。Spring核心是控制反轉(zhuǎn)IOC/依賴注入DI機(jī)制[4]。業(yè)務(wù)層負(fù)責(zé)業(yè)務(wù)邏輯的實(shí)現(xiàn)和事務(wù)處理的控制。為實(shí)現(xiàn)系統(tǒng)的開(kāi)放性和兼容性,采用Web Services接口技術(shù),便于完好的封裝性,松散耦合。
持久層采用Hibernate框架。Hibernate框架為Java提供了“對(duì)象-關(guān)系持久化”機(jī)制和查詢服務(wù),將數(shù)據(jù)實(shí)體和數(shù)據(jù)使用者相關(guān)聯(lián),Web應(yīng)用可以通過(guò)面向?qū)ο蟮姆绞竭M(jìn)行數(shù)據(jù)庫(kù)的各種訪問(wèn)操作,如刪除、插入、更新、查詢數(shù)據(jù)等[12]。
領(lǐng)域模型層由那些代表現(xiàn)實(shí)世界中的業(yè)務(wù)對(duì)象的對(duì)象們組成,在不同的層之間移動(dòng),使各層成為統(tǒng)一的整體。數(shù)據(jù)存儲(chǔ)層用于數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)和文件系統(tǒng)存儲(chǔ)。綜上所述,SSH框架是輕量級(jí)的,結(jié)構(gòu)清晰、安全性高、易于維護(hù)和擴(kuò)展[13]。因此采用SSH框架輕量級(jí)JavaEE集成開(kāi)發(fā)技術(shù)來(lái)實(shí)現(xiàn)科技管理信息系統(tǒng)[14-16]。
系統(tǒng)部分重要的數(shù)據(jù)庫(kù)表包括用戶信息表、用戶權(quán)限表、申報(bào)項(xiàng)目表、專家評(píng)審表、項(xiàng)目立項(xiàng)表、合同簽訂表、經(jīng)費(fèi)管理表、執(zhí)行報(bào)告表、項(xiàng)目變更表、項(xiàng)目驗(yàn)收表、項(xiàng)目公示表等11個(gè)表。因篇幅有限,文中以用戶信息表設(shè)計(jì)與創(chuàng)建為例。
2.2.1 用戶信息表設(shè)計(jì)
用戶信息表主要包括姓名、聯(lián)系方式、身份證號(hào)碼、職稱、銀行賬號(hào)等信息,如表1所示。
表1 用戶信息表
續(xù)表1
2.2.2 用戶信息表創(chuàng)建
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))
系統(tǒng)測(cè)試包括功能測(cè)試和性能測(cè)試,系統(tǒng)業(yè)務(wù)流程主要功能和輔助功能主要采用手工測(cè)試,性能指標(biāo)的測(cè)試主要采用測(cè)試工具LoadRunner進(jìn)行自動(dòng)測(cè)試及分析,性能測(cè)試必須在功能測(cè)試完成后進(jìn)行。對(duì)于用戶登錄、附件上傳、大容量測(cè)試采用手工測(cè)試和腳本測(cè)試代碼輔助進(jìn)行。安全性、可靠性測(cè)試、數(shù)據(jù)庫(kù)事務(wù)處理采用手工測(cè)試的方法。
測(cè)試環(huán)境如表2所示。
表2 測(cè)試環(huán)境
系統(tǒng)主要包括了單位注冊(cè),用戶登錄,申報(bào)書填寫,申報(bào)書保存、申報(bào)書提交,項(xiàng)目評(píng)審、項(xiàng)目立項(xiàng)等功能。其中用戶登錄,申報(bào)書保存提交、項(xiàng)目評(píng)審需要執(zhí)行性能測(cè)試,查看系統(tǒng)的性能指標(biāo)是否能滿足用戶的要求。主要需檢測(cè)內(nèi)容包括申報(bào)人提交申報(bào)書時(shí)的響應(yīng)時(shí)間、專家評(píng)審項(xiàng)目時(shí)的響應(yīng)時(shí)間、系統(tǒng)所支持的同時(shí)在線用戶數(shù)等三方面內(nèi)容。因篇幅有限,文中只列出用LoadRunner工具設(shè)計(jì)專家評(píng)審項(xiàng)目時(shí)的響應(yīng)時(shí)間的壓力測(cè)試。
專家登錄系統(tǒng),系統(tǒng)每秒鐘新增2個(gè)專家登錄系統(tǒng)。總共登錄600個(gè)專家。專家登錄之后,進(jìn)行項(xiàng)目評(píng)審工作,全部專家登錄之后,再進(jìn)行評(píng)審表的提交。
3.2.1 測(cè)試目的
測(cè)試系統(tǒng)能夠支持每天600個(gè)專家同時(shí)在線進(jìn)行評(píng)審工作,并且每次專家提交評(píng)審表的響應(yīng)時(shí)間小于3秒鐘。
3.2.2 虛擬用戶登錄情況
虛擬600個(gè)專家登錄系統(tǒng),進(jìn)行項(xiàng)目的評(píng)審工作,然后提交評(píng)審表,598個(gè)成功,有2個(gè)失敗。成功登錄的598個(gè)專家,全部都成功提交了項(xiàng)目的評(píng)審表,提交評(píng)審表成功率100%,如圖4所示。
事務(wù)名稱
在600個(gè)專家同時(shí)進(jìn)行評(píng)審工作時(shí),提交評(píng)審表的響應(yīng)的平均時(shí)間為2.535秒,如圖5所示。
圖5 提交評(píng)審表響應(yīng)時(shí)間測(cè)試結(jié)果
3.2.3 測(cè)試結(jié)論
系統(tǒng)在600個(gè)專家登錄系統(tǒng),同時(shí)在線進(jìn)行評(píng)審工作,能夠正常使用,服務(wù)器運(yùn)行正常。并且每次的提交評(píng)審表的響應(yīng)時(shí)間小于3秒鐘。
部分關(guān)鍵界面運(yùn)行效果圖,項(xiàng)目申報(bào)人主界面,如圖6所示。
圖6 項(xiàng)目申報(bào)人主界面
申報(bào)單位管理員界面,如圖7所示。
圖7 申報(bào)單位管理員界面
以科技管理的現(xiàn)狀,采用JavaEE技術(shù)與SSH框架技術(shù),經(jīng)系統(tǒng)需求分析、系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)、系統(tǒng)開(kāi)發(fā)、系統(tǒng)測(cè)試,最終開(kāi)發(fā)了一個(gè)可維護(hù)、易擴(kuò)展的B/S模式的省科技管理信息系統(tǒng)。科技項(xiàng)目管理的信息化有利于科技管理部門對(duì)項(xiàng)目進(jìn)行統(tǒng)計(jì)和決策分析,有利于最大限度地提高工作效率、節(jié)約成本,對(duì)其他省份或單位類似科技管理信息系統(tǒng)改進(jìn)或構(gòu)建具有借鑒意義。