賈向煒+高瞻
摘要:科研管理是高校信息化建設(shè)的一個重要組成部分,科研管理系統(tǒng)根據(jù)系統(tǒng)角色的不同可分為人文社科端、理科端、教師個人端等幾部分。教師個人端在整個科研系統(tǒng)中使得科研管理、考核、查詢等過程成為可能。該系統(tǒng)采用B/S模式,運用java語言的MVC多層開發(fā)框架技術(shù)設(shè)計并實現(xiàn),為廣大教職工提供項目來款信息、財務(wù)明細(xì)、資金流量表、科研到款、暫付款信息等在線查詢和打印功能,進(jìn)一步提高了教師科研管理的水平。
關(guān)鍵詞:教師科研管理;MVC
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2015)31-0063-03
Design and Implementation of Teacher Research Management System Based on MVC Framework Technology
JIA Xiang-wei, GAO Zhan
(Data and Information Center of Xi'an JiaoTong University,Xian 710049, China)
Abstract:The Scientific research management is an important part of the information construction in Colleges and Universities. The scientific research management system can be divided into several parts, such as the humanities and Social Sciences end, the science teachers end and the teachers' personal ends,according to the different roles of the system. Teachers make personal side research management , assessment and inquiry process becomes possible in the whole research system. The system uses B/S model and application of the Java language of the MVC multilayer development framework technology design and implementation, for the majority of workers to provide information, financial details, capital flows, scientific research to the payment information, such as online query and print function, and further improve the level of teacher research management.
Key words: teacher research management; MVC
1概述
高校的綜合實力是靠教學(xué)和科研兩方面的硬性指標(biāo)來衡量的,而科研方面的指標(biāo)的度量則需要通過一套完整的管理機(jī)制來滿足要求,本系統(tǒng)正是為了滿足教師科研管理的需要而實現(xiàn)的典型J2EE應(yīng)用。該系統(tǒng)運行MVC的典型多層開發(fā)框架,為科研管理提供了重要保障。而且以后隨著業(yè)務(wù)的擴(kuò)展,可以面向教師的一些其他綜合業(yè)務(wù)提供相應(yīng)數(shù)據(jù)服務(wù)。
2 關(guān)鍵技術(shù)介紹
2.1 MVC框架技術(shù)介紹
MVC(Model-View-Control)開發(fā)結(jié)構(gòu)用來分析程序的結(jié)構(gòu)特征,把web程序分成了若干邏輯部件,這些邏輯部件分屬不同的邏輯層次,使得程序設(shè)計及編碼、維護(hù)工作變得更加容易、簡單。
MVC(Model模型層-View視圖層-Controller控制層)把應(yīng)用的輸入、處理、輸出流程進(jìn)行邏輯上的分層,分成三層或四層的多層開發(fā)結(jié)構(gòu)層,各層相互關(guān)聯(lián),共同完成web應(yīng)用的增、刪、改、查、統(tǒng)計、打印等功能。MVC組件關(guān)系及功能圖如圖1所示:
圖1 MVC組件關(guān)系和功能
M,即Model模型層,該層的模型對象用于數(shù)據(jù)庫存取數(shù)據(jù)。
V,即View視圖層,數(shù)據(jù)展示層(系統(tǒng)界面層),實現(xiàn)系統(tǒng)與操作用戶的溝通橋梁的作用。
C,即Control控制層,根據(jù)業(yè)務(wù)處理的需要完成各種控制功能和業(yè)務(wù)邏輯,并實現(xiàn)相應(yīng)的增、刪、改、查等功能。
隨著MVC技術(shù)的發(fā)展,java語言的多層開發(fā)框架有ssh,ssh2,ssi等框架,根據(jù)不用技術(shù)的優(yōu)劣,各開發(fā)框架均有一定的市場份額。其中,以ssh為主的MVC多層開發(fā)框架占據(jù)了市場很大的份額。在系統(tǒng)分層開發(fā)后,開發(fā)時間大大縮減,各層人員更為關(guān)注本層的實現(xiàn),而不需要太高的入門門檻,而且也提高了系統(tǒng)的可維護(hù)性。
2.2 Json技術(shù)介紹
Json作為輕量級的數(shù)據(jù)傳輸格式,可以在多種開發(fā)語言之間進(jìn)行數(shù)據(jù)交換,因此,為了系統(tǒng)的數(shù)據(jù)復(fù)用效率,數(shù)據(jù)傳輸采用json格式。Json且易于閱讀、編碼,相比xml,解絕了解析時的性能、兼容性等問題。
此次開發(fā)中運用的是FastJson技術(shù),它是Json的處理工具包,包括“序列化”、“非序列化”兩部分,而且經(jīng)測試和許多應(yīng)用證明,F(xiàn)astJson有極高的性能,超越任何其他轉(zhuǎn)化工具,而且支持javabean、集合、map、日期、eum,支持android等特點。因此,項目上線后的性能非常高。
3 系統(tǒng)的設(shè)計與實現(xiàn)
3.1 系統(tǒng)設(shè)計
經(jīng)過系統(tǒng)需求分析之后,該系統(tǒng)的主要模塊有:學(xué)校財務(wù)來款查詢,項目管理、項目統(tǒng)計查詢、到款統(tǒng)計查詢、問題咨詢、通知公告及辦事指南查詢模塊。
系統(tǒng)采用基于MVC模式的J2EE體系結(jié)構(gòu),是B/S方式的典型J2EE應(yīng)用。采用多層Web開發(fā)技術(shù)在本系統(tǒng)開發(fā)中分為表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層、以及數(shù)據(jù)庫層,每層在應(yīng)用程序中都發(fā)揮著自己的作用。本次采用的是JSF+Hibernate。圖2為該系統(tǒng)分層架構(gòu)圖。
表現(xiàn)層,也稱頁面層,在整個系統(tǒng)中,完成界面的展示功能,負(fù)責(zé)直接和用戶進(jìn)行交流。系統(tǒng)的可交互性完全由該層決定。
業(yè)務(wù)邏輯層,對個模塊的業(yè)務(wù)進(jìn)行業(yè)務(wù)封裝,完成業(yè)務(wù)的具體操作,如查詢操作、新增操作等,具體表現(xiàn)為service接口類,serviceImpl接口實現(xiàn)類。
數(shù)據(jù)持久層,封裝了訪問數(shù)據(jù)庫的方法,通過該層業(yè)務(wù)數(shù)據(jù)直接操作數(shù)據(jù)庫,具體則表現(xiàn)有dao接口類,daoImpl接口實現(xiàn)。本系統(tǒng)采用的是Hibernate技術(shù)。Hibernate是一個面向Java環(huán)境的對象/關(guān)系數(shù)據(jù)庫映射工具,用來關(guān)聯(lián)java 對象和數(shù)據(jù)庫中各數(shù)據(jù)表 。在持久層中,通過Hibernate提供的HQL操作實體對象,從而達(dá)到操作數(shù)據(jù)庫的目的。為了提供數(shù)據(jù)的復(fù)用性,對于所有的查詢接口都要求用json格式進(jìn)行數(shù)據(jù)交換。
圖2 系統(tǒng)架構(gòu)圖
3.2 JSF技術(shù)的應(yīng)用
JSF完成數(shù)據(jù)展現(xiàn)功能的實現(xiàn),通過faces-config.xml 來顯示bean與頁面之間的對應(yīng)。在jsf頁面通過GgMngBean.pageList 方式來實現(xiàn)值的傳遞。
下面是jsf的核心配置文件的示例:
……
<!-- 頁面跳轉(zhuǎn)部分 -->
<!-- *********************公告管理
************************ -->
<!—管理功能頁面 jsf 參數(shù) -->
<!—管理功能頁面 -->
<!—顯示公告信息頁面 jsf 參數(shù) -->
<!—顯示公告信息頁面-->
<!—編輯公告信息頁面 jsf 參數(shù) -->
<!—編輯公告信息頁面 -->
……
<!-- 公告管理-->
<!-- 公告管理編輯bean-->
<!—java類位置-->
<!-- 公告管理編輯bean 作用范圍-->
……
<!-- 公告管理信息查看bean-->
<!—bean對應(yīng)的java類位置-->
<!-- 公告管理信息查看bean 作用范圍-->
……
<!-- 公告管理管理bean-->
<!—bean對應(yīng)的java類位置-->
<!-- 公告管理管理bean 作用范圍-->
……
3.3 Hibernate 技術(shù)的應(yīng)用
Hibernate技術(shù)是在數(shù)據(jù)持久層進(jìn)行應(yīng)用的,它的核心任務(wù)是通過hibernate.cfg.xml配置文件的配置信息建立java對象與數(shù)據(jù)庫設(shè)計出的各表建立映射。在系統(tǒng)實現(xiàn)時,為了提高數(shù)據(jù)的響應(yīng)速度,還使用proxool連接池。通過proxool.pool_alias、proxool.xml2個屬性進(jìn)行設(shè)置。具體如下:
下面是通知公告模塊中映射文件:
……
……
使用Hibernate 的優(yōu)勢有兩點:1、通過pojo類的Getter 和Setter 方法屏蔽了數(shù)據(jù)持久層的技術(shù)細(xì)節(jié),使數(shù)據(jù)持久層、業(yè)務(wù)層的耦合更小一些;2、避免了程序員編寫數(shù)據(jù)持久層的方法,使程序員更專注于業(yè)務(wù)邏輯的開發(fā)、實現(xiàn)。
3.3 Json技術(shù)的應(yīng)用
FastJson快速將bean信息進(jìn)行數(shù)據(jù)格式轉(zhuǎn)換,只需要調(diào)用API:JSON.toJSONString(),實現(xiàn)javabean、list、map等信息的轉(zhuǎn)換。
本系統(tǒng)采用的json數(shù)據(jù)格式是最基本的“名稱/值對”格式,如:{”title”:” 河南新鄉(xiāng)市技術(shù)需求”},對于一組數(shù)據(jù)格式,則是將眾多帶花括號的記錄組合在一起,返回形式具體如下:
{
“ dataList “:[
{“title”:”河南新鄉(xiāng)市技術(shù)需求”,”publishdate”:”2015-09-01”,”readcount”:”20”},
{“title”:”第37批陜西省技術(shù)轉(zhuǎn)讓技術(shù)開發(fā)合同認(rèn)定審核結(jié)果”,”publishdate”:”2015-09-15”,”readcount”:”187”},
{“title”:”關(guān)于推薦陜西省公共文化服務(wù)體系建設(shè)專家?guī)鞂<业耐ㄖ?,”publishdate”:”2015-09-22”,”readcount”:”48”}
]
},在本系統(tǒng)中查詢失敗返回的json信息如下:
:{\”code\”:\”1\”,\”message\”:\”失?。堋?,\”totalNum\”:\”0\”,\”dataList\”:[]},對于查詢成功的數(shù)據(jù)集合則返回數(shù)據(jù)格式如下:
{\”code\”:\”0\”,\”message\”:\”成功\”,\”totalNum\”:\”5\”,\”dataList\”:[{\”title\”:\”河南新鄉(xiāng)市技術(shù)需求\”,\”publishdate\”:\”2015-09-01\”,\”readcount\”:\”20\”},
{\”title\”:\”第37批陜西省技術(shù)轉(zhuǎn)讓技術(shù)開發(fā)合同認(rèn)定審核結(jié)果\”,\”publishdate\”:\”2015-09-15\”,\”readcount\”:\”187\”},
{\”title\”:\”關(guān)于推薦陜西省公共文化服務(wù)體系建設(shè)專家?guī)鞂<业耐ㄖ堋?,\”publishdate\”:\”2015-09-22\”,\”readcount\”:\”48\”}]}
4 結(jié)束語
本系統(tǒng)是基于MVC模式實現(xiàn)的教師科研管理系統(tǒng),很好地滿足了了教師科研項目管理、查詢各項目花銷的需要,提高了教師的科研工作效率、管理效率,同時有利于科研資源的共享管理,方便科研資源的信息查詢、統(tǒng)計功能,并且該系統(tǒng)具有一定的可維護(hù)性和可擴(kuò)展性。
參考文獻(xiàn):
[1] 陸榮幸,郁洲,王志強,等.J2EE平臺上MVC設(shè)計模式的研究與實現(xiàn)[J].計算機(jī)應(yīng)用研究,2003(3):46-50.
[2] 李文亮,劉竹松,陳璟.基于SOA的科研項目管理系統(tǒng)的分析與設(shè)計[J].計算機(jī)技術(shù)與發(fā)展,2010(20):234-241.
[3] 邱恕潔.基于B_S三層結(jié)構(gòu)的高校科研管理系統(tǒng)設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2013.
[4] 王明.基于MVC科研管理系統(tǒng)的研究與實現(xiàn)[J].微計算機(jī)應(yīng)用,2009(1):77-80.
[5] 林志強.基于SSH的高??蒲泄芾硐到y(tǒng)的設(shè)計與實現(xiàn)[D]. 濟(jì)南:山東大學(xué),2012.