摘 要:根據(jù)目前科研項(xiàng)目管理存在的各種問題,研究并提出基于Petshop三層架構(gòu)的公司科研項(xiàng)目管理系統(tǒng)的框架設(shè)計(jì)的基本思路和方法,重點(diǎn)介紹該系統(tǒng)面向?qū)ο蠼涌诰幊虒?shí)現(xiàn)以及數(shù)據(jù)有效性驗(yàn)證等關(guān)鍵技術(shù),在一定程度上保證了軟件的易擴(kuò)展性和可靠性。
關(guān)鍵詞:科研項(xiàng)目管理;Petshop架構(gòu);面向接口編程;數(shù)據(jù)有效性
中圖分類號(hào):TP311.52
隨著信息技術(shù)的普及與發(fā)展,通過信息工具對(duì)科研項(xiàng)目工作進(jìn)行分類整理、資料歸檔、成果共享、查詢統(tǒng)計(jì),已成為提升科研管理水平、實(shí)現(xiàn)成果共享的有效途徑。在對(duì)各科研院所項(xiàng)目管理方式分析的基礎(chǔ)上,深入研究本企業(yè)項(xiàng)目管理特點(diǎn),推出了一套能夠滿足公司現(xiàn)代化項(xiàng)目管理和查詢統(tǒng)計(jì)要求的信息管理系統(tǒng),極大地提高了工作效率。
軸研科技股份有限公司每年都要承接863、973、國(guó)際合作等重點(diǎn)科研項(xiàng)目,這些項(xiàng)目涉及到跨單位、多部門、多院校、甚至國(guó)際間的合作,在項(xiàng)目的申請(qǐng)階段、立項(xiàng)階段、實(shí)施階段、驗(yàn)收階段、成果鑒定階段產(chǎn)生相應(yīng)的文檔/文件等資料,種類繁多、內(nèi)容繁瑣,信息量大。目前采用人工方式對(duì)項(xiàng)目進(jìn)行管理,查詢、統(tǒng)計(jì)、上報(bào)工作主要借助Excel進(jìn)行,其耗時(shí)多、難度大,給季度、年度財(cái)務(wù)經(jīng)費(fèi)比對(duì),以及國(guó)家考核、評(píng)估、科技支撐等統(tǒng)計(jì)工作帶來(lái)不便。因此,開發(fā)一套集信息管理、信息查詢、信息統(tǒng)計(jì)為一體的科研項(xiàng)目管理平臺(tái)很有必要,它可以對(duì)科研項(xiàng)目相關(guān)資料分門別類進(jìn)行管理,滿足日常工作中常用的數(shù)據(jù)查詢、統(tǒng)計(jì)要求,在一定程度上提高工作效率。
1 基于Petshop架構(gòu)的科研項(xiàng)目管理平臺(tái)架構(gòu)設(shè)計(jì)
平臺(tái)采取Asp.net框架技術(shù)在Visual Studio.NET 2010環(huán)境下進(jìn)行開發(fā),使用C#程序設(shè)計(jì)語(yǔ)言編碼實(shí)現(xiàn),選擇SQL Server 2005作為平臺(tái)數(shù)據(jù)庫(kù),采用基于接口模式的Petshop三層架構(gòu)來(lái)實(shí)現(xiàn)平臺(tái)功能。
1.1 平臺(tái)功能分析。(1)平臺(tái)用戶分析。根據(jù)項(xiàng)目管理的工作屬性和職能角色,將軸研科技科研項(xiàng)目管理平臺(tái)用戶分為系統(tǒng)管理員、科研管理員、普通用戶三種角色,以保證平臺(tái)的安全性和規(guī)范性。平臺(tái)管理員是整個(gè)平臺(tái)的管理者,主要完成用戶信息管理、系統(tǒng)數(shù)據(jù)維護(hù)、科研信息發(fā)布;科研管理員主要是軸研科技技術(shù)中心從事項(xiàng)目管理的員工,負(fù)責(zé)所轄項(xiàng)目的管理工作,具體包括立項(xiàng)階段科研人員提交的立項(xiàng)書以及審批通過的任務(wù)書、決算書,實(shí)施階段的季度/中期/年度項(xiàng)目進(jìn)度報(bào)告、經(jīng)費(fèi)使用情況管理,以及結(jié)題階段的結(jié)題報(bào)告、科研成果信息統(tǒng)計(jì)等;普通用戶主要是公司員工,可以查詢自己參與的所有項(xiàng)目、發(fā)表的專利、論著等信息,也可共享科研管理員公開的科研成果。(2)平臺(tái)功能劃分。依據(jù)項(xiàng)目運(yùn)行的周期,將平臺(tái)劃分為5大子系統(tǒng):立項(xiàng)管理子系統(tǒng)、實(shí)施管理子系統(tǒng)、驗(yàn)收管理子系統(tǒng)、成果鑒定子系統(tǒng)、系統(tǒng)后臺(tái)管理子系統(tǒng)。立項(xiàng)管理子系統(tǒng)包括項(xiàng)目申請(qǐng)、項(xiàng)目審批階段的信息管理,實(shí)施管理子系統(tǒng)包括項(xiàng)目執(zhí)行季度/中期/年度的進(jìn)度管理、以及各階段的經(jīng)費(fèi)使用管理等,項(xiàng)目驗(yàn)收管理子系統(tǒng)包括結(jié)項(xiàng)報(bào)告管理、成果統(tǒng)計(jì)等功能,成果鑒定子系統(tǒng)主要是在項(xiàng)目執(zhí)行過程中或項(xiàng)目結(jié)題后對(duì)重大創(chuàng)新成果申請(qǐng)鑒定,包括成果鑒定申請(qǐng)和獲獎(jiǎng)情況管理,系統(tǒng)后臺(tái)管理子系統(tǒng)承擔(dān)用戶權(quán)限管理、科研信息發(fā)布功能。
1.2 基于Petshop的三層架構(gòu)。架構(gòu)設(shè)計(jì)在系統(tǒng)開發(fā)中起著關(guān)鍵作用,直接影響系統(tǒng)的可擴(kuò)展性、可重用性以及軟件的開發(fā)效率[1]。分層架構(gòu)設(shè)計(jì)是解決系統(tǒng)復(fù)雜性的好方法,根據(jù)邏輯功能的不同,將應(yīng)用程序劃分為不同的層或模塊加以實(shí)現(xiàn),通過層與層之間的交互,形成應(yīng)用程序體系架構(gòu)[2]。Petshop架構(gòu)是微軟經(jīng)典的Web應(yīng)用案例,它采用典型的三層體系,包括數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層[1]。
數(shù)據(jù)訪問層:采用DAL Interface抽象出數(shù)據(jù)訪問邏輯,主要負(fù)責(zé)數(shù)據(jù)庫(kù)的訪問,也就是實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)表的新增、修改、刪除、查詢的操作。
表示層:是系統(tǒng)的UI部分,負(fù)責(zé)使用者與整個(gè)系統(tǒng)的交互,采集用戶的輸入信息和操作,向用戶展示特定業(yè)務(wù)數(shù)據(jù)。這一層最理想的狀態(tài)是不包括任何與系統(tǒng)業(yè)務(wù)邏輯相關(guān)的代碼,表示層中的邏輯代碼僅與界面元素有關(guān)。
業(yè)務(wù)邏輯層:是整個(gè)系統(tǒng)的核心,負(fù)責(zé)處理業(yè)務(wù)邏輯。它通過獲取UI傳來(lái)的操作指令,決定執(zhí)行業(yè)務(wù)邏輯,在需要訪問數(shù)據(jù)源的時(shí)候交給DAL處理,處理完成后,返回必要的數(shù)據(jù)給UI。
1.3 平臺(tái)總體架構(gòu)。平臺(tái)采用基于Petshop的三層架構(gòu),表示層主要實(shí)現(xiàn)平臺(tái)客戶端以及后臺(tái)管理端的界面功能,主要包括科研項(xiàng)目管理平臺(tái)主界面、用戶登錄界面、項(xiàng)目信息錄入界面、項(xiàng)目實(shí)施中資料上傳/修改/刪除界面、成果管理界面等;業(yè)務(wù)邏輯層通過獲取界面?zhèn)鱽?lái)的操作指令,決定執(zhí)行的業(yè)務(wù)邏輯,根據(jù)情況調(diào)用數(shù)據(jù)庫(kù)接口,待數(shù)據(jù)訪問層返回?cái)?shù)據(jù)后,將信息傳遞給表示層;數(shù)據(jù)訪問層主要實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)表的新增、修改、刪除、查詢的操作。
2 系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù)
2.1 面向接口的編程實(shí)現(xiàn)。業(yè)務(wù)邏輯層負(fù)責(zé)DAL對(duì)象的創(chuàng)建,以便于業(yè)務(wù)邏輯層的訪問;SQL Server DAL實(shí)現(xiàn)IDAL的接口,其中包含對(duì)數(shù)據(jù)庫(kù)的增加、修改、刪除、查詢操作[3]。只要不涉及接口定義的更改,業(yè)務(wù)邏輯層和數(shù)據(jù)層之間就互不影響,有效的降低了兩層之間的耦合度[4]。以成果查詢功能為例,當(dāng)用戶輸入待查詢成果人姓名、選定成果類型,點(diǎn)擊查詢按鈕之后,表示層的查詢控件將觸發(fā)Click事件,在Click事件中表示層提取用戶輸入的數(shù)據(jù),通過實(shí)例化dalFruitQurey接口類將數(shù)據(jù)傳給業(yè)務(wù)邏輯層;業(yè)務(wù)邏輯層實(shí)例化dboFruitQurey接口類訪問數(shù)據(jù)訪問層,待數(shù)據(jù)訪問層返回消息后,業(yè)務(wù)邏輯層判斷是否非空等操作,之后將結(jié)果返回給表示層。
2.2 數(shù)據(jù)有效性的驗(yàn)證。有效性驗(yàn)證是保證系統(tǒng)運(yùn)行穩(wěn)定性的重要因素,平臺(tái)使用Validation服務(wù)器控件和編碼相結(jié)合的檢查方法來(lái)保證輸入的合法性。當(dāng)用戶輸入的數(shù)據(jù)違反指定的驗(yàn)證規(guī)則時(shí),會(huì)立即被提醒,此時(shí)無(wú)需客戶端和服務(wù)器端的消息交互,這使得性能提高很多。如科研成果管理模塊,在對(duì)論文發(fā)表日期進(jìn)行有效性驗(yàn)證時(shí),將其Validation服務(wù)器控件的operator屬性設(shè)置成:DataTypeCheck,從而限制輸入數(shù)據(jù)應(yīng)符合日期類型的數(shù)據(jù)格式;又如項(xiàng)目參加人員工作時(shí)間,將控件的Type設(shè)置為Integer,確定其MinimumValue和MaxmumValue,就可以確保輸入工作時(shí)間在項(xiàng)目允許的范圍內(nèi)。
3 結(jié)束語(yǔ)
本系統(tǒng)采用微軟經(jīng)典Petshop架構(gòu)設(shè)計(jì)基于B/S結(jié)構(gòu)的科研項(xiàng)目管理系統(tǒng),根據(jù)邏輯功能的不同,將應(yīng)用程序劃分為不同的模塊加以實(shí)現(xiàn),層之間通過面向?qū)ο蟮慕涌诰幊踢M(jìn)行交互,降低了系統(tǒng)模塊間的耦合度。使用Validation服務(wù)器控件和編碼相結(jié)合的檢查方法來(lái)保證用戶輸入的合法性,減少系統(tǒng)運(yùn)行中的不可控因素,實(shí)現(xiàn)系統(tǒng)運(yùn)行的穩(wěn)定性。
參考文獻(xiàn):
[1]何天,侯宗浩.基于Petshop與Duwamish的多層架構(gòu)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用,2006(26):257.
[2]盛蕾,方華.基于ASP.NET的四層WEB應(yīng)用模型設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)與數(shù)字工程,2006(07):34.
[3]黃光芳.面向接口編程在三層架構(gòu)系統(tǒng)中的設(shè)計(jì)及應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2009(06):26.
[4]郝雯,艾玲梅,王映輝.三層結(jié)構(gòu)軟件框架擴(kuò)展點(diǎn)實(shí)現(xiàn)方法[J].計(jì)算機(jī)應(yīng)用,2009(09).
作者簡(jiǎn)介:劉揚(yáng)(1985.12-),女,河南洛陽(yáng)人,科員,工程師,碩士研究生,研究方向:計(jì)算機(jī)應(yīng)用技術(shù)與研究;焦葉凡(1987.12-),女,河南靈寶人,科員,助工,碩士研究生,研究方向:計(jì)算機(jī)軟件;牛青波(1981.05-),男,河南鄢陵人,技術(shù)中心主任助理,高級(jí)工程師,碩士研究生,研究方向:軸承設(shè)計(jì)及應(yīng)用、計(jì)算機(jī)CAI/CAD/CAE。
作者單位:洛陽(yáng)軸研科技股份有限公司,河南洛陽(yáng) 471000
基金項(xiàng)目:科研項(xiàng)目管理系統(tǒng)的設(shè)計(jì)與開發(fā)(項(xiàng)目編號(hào):ZYXM201419),項(xiàng)目來(lái)源:洛陽(yáng)軸研科技股份有限公司基金項(xiàng)目。