唐滿華,柳 毅,段立軍,周億城
(湖南省科學技術信息研究所,湖南 長沙 410001)
隨著科技的發展,科研項目的數量越來越多,科技管理工作難度越來越大,采取信息管理系統是實現科技業務規范化、精細化管理的必然趨勢[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)用項目申報人需求分析。
項目申報人是指項目的負責人,將全程參與項目申報、合同填報、變更申請、績效報告提交、科技報告提交、驗收報告提交等功能。該用戶區域分布和比例是最高的,用戶使用層次高低不等,其希望系統使用簡單易用,界面和提示人性化。
(2)管理員需求分析。
管理員包括項目申報單位管理員、推薦單位管理員及系統管理員。申報單位管理員主要負責對項目申報人員管理、項目審核推薦等。推薦單位管理員主要參與所管轄單位項目的審核推薦等。系統管理員主要設置系統運行參數、定制流程和部分業務邏輯等。其希望能夠使自己的管理工作更簡單實用,更實效,更輕松。
(3)業務處室用戶分析。
業務處室用戶指單位相關業務處室人員及對應評審機構人員和評審專家,主要負責項目的審核、簽訂合同及在研項目變更、執行、驗收等管理工作。其希望查詢強大,功能靈活,使用方便。
(4)領導用戶分析。
領導指單位的主要領導和業務相關的分管領導等,主要從宏觀上進行科技管理,其希望獲取系統的業務統計數據,并提供數據決策和分析。
基于需求理解和分析,確定科技管理信息系統共包含6個子系統模塊,分別為項目管理、專家管理、統計分析、歷史數據、數據對接和后臺管理。系統總體結構功能如圖1所示。

圖1 系統總體結構功能
系統主要功能概述如下:
(1)項目管理子系統是指科技業務從各業務處室人員的指南發布,開通項目申報,到企業在系統填報申請書,經縣市推薦部門審核,送交業務處室,最終經過業務主管部門形成審查、組織專家評審、確定立項意見,發布下達文件,以及合同簽訂、資金撥付、項目中期管理、項目驗收整個生命周期過程。從細化的角度劃分為指南發布、項目申報、項目查重、申報評審、立項審批、合同簽訂、撥款管理、項目跟蹤、變更管理、驗收管理等過程。
(2)專家管理子系統是指一個全面實現電子化、信息化、網絡化、標準化、規范化的某省科技專家庫系統,提供全面的專家數據,為系統的評審、驗收等提供有力的支持,同時可以對專家信息進行收集、信息維護、專家評估等操作,支持業務綜合管理系統項目評審和驗收評審功能的專家抽取功能。
(3)統計分析子系統是指開發統計和報表分析模塊為各級領導、處室用戶提供業務輔助決策和分析支持。在對科技業務流程及科研管理流程深入了解的基礎上,理論結合實際,建立符合各級領導決策和管理需求的輔助決策模型和統計報表。
(4)歷史數據子系統是指某省有多個科技計劃項目管理,對于各科技計劃項目存在的歷史項目數據,可將歷史項目數據進行統一的梳理后導入系統,進行存儲和歷史項目后續管理。
(5)數據對接子系統是指科技管理信息系統平臺提供靈活的系統接口,可通過接口進行快速開發,以滿足科技管理信息系統與郵件短信平臺、其他業務系統等系統的數據交互要求。
(6)后臺管理子系統是指系統運行支撐工作的基礎功能模塊,包括業務配置、權限管理、用戶管理、流程配置、界面定制、后臺任務、智能短信、系統日志和集成交換。
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]。
系統部分重要的數據庫表包括用戶信息表、用戶權限表、申報項目表、專家評審表、項目立項表、合同簽訂表、經費管理表、執行報告表、項目變更表、項目驗收表、項目公示表等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))
系統測試包括功能測試和性能測試,系統業務流程主要功能和輔助功能主要采用手工測試,性能指標的測試主要采用測試工具LoadRunner進行自動測試及分析,性能測試必須在功能測試完成后進行。對于用戶登錄、附件上傳、大容量測試采用手工測試和腳本測試代碼輔助進行。安全性、可靠性測試、數據庫事務處理采用手工測試的方法。
測試環境如表2所示。

表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秒鐘。
部分關鍵界面運行效果圖,項目申報人主界面,如圖6所示。

圖6 項目申報人主界面
申報單位管理員界面,如圖7所示。

圖7 申報單位管理員界面
以科技管理的現狀,采用JavaEE技術與SSH框架技術,經系統需求分析、系統設計與實現、系統開發、系統測試,最終開發了一個可維護、易擴展的B/S模式的省科技管理信息系統。科技項目管理的信息化有利于科技管理部門對項目進行統計和決策分析,有利于最大限度地提高工作效率、節約成本,對其他省份或單位類似科技管理信息系統改進或構建具有借鑒意義。