文亮
闡述通過一種基于Codeigniter框架的科研項目管理信息系統(tǒng)在開發(fā)和實現(xiàn)過程中,對其系統(tǒng)結(jié)構(gòu)和實現(xiàn)過程進行了詳細描述。利用開源框架和MVC開發(fā)模式實現(xiàn)了系統(tǒng)主要功能。通過實踐分析在科研項目管理信息化過程中,總結(jié)出了信息管理系統(tǒng)開發(fā)過程中需要關(guān)注和涉及的一些問題。
科研對我國的綜合發(fā)展起著決定性的作用。高等學(xué)校既是科技人員集聚的重要基地,又承擔(dān)著科學(xué)技術(shù)發(fā)展所需科技人才的培養(yǎng)任務(wù)。在我國科學(xué)研究工作中,高等學(xué)校擁有的這支強大的科研力量在整個科技研發(fā)工作起著重要作用。隨著高??蒲袠I(yè)務(wù)量不斷加大,如何將日??蒲许椖康墓芾砉ぷ饕?guī)范化、科學(xué)化是學(xué)校科研管理單位需要思考的問題。
傳統(tǒng)的科研項目管理模式,主要依賴Excel、word等辦公軟件來處理大量的項目和成果數(shù)據(jù)的方式。過去采用傳統(tǒng)的手工辦法,難以及時有效的掌握最新的科研情況,而且每次查詢統(tǒng)計工作量浩大,通過項目管理系統(tǒng),所有的查詢統(tǒng)計可以很方便快捷的得到結(jié)果數(shù)據(jù)。
本文以西北工業(yè)大學(xué)明德學(xué)院在設(shè)計,實現(xiàn)了一種基于Codeigniter框架的科研項目管理信息系統(tǒng)的過程為例,來分析和實踐科研項目管理信息化過程中需要關(guān)注和涉及的一些問題。
1、系統(tǒng)功能需求分析
西北工業(yè)大學(xué)明德學(xué)院是一所全日制普通本科高校,隨著科研項目的不斷增多以及科技成果數(shù)據(jù)的日益增大,科研管理部門迫切需要開發(fā)一套科研項目管理信息系統(tǒng),來對日??蒲许椖抗ぷ鬟M行管理。
整合學(xué)校日常科研項目管理工作流程,系統(tǒng)總體功能應(yīng)包括,科研項目申報通知發(fā)布、科研項目申報、項目立項管理、項目中期檢查、項目結(jié)題管理、項目及科研經(jīng)費數(shù)據(jù)統(tǒng)計、科研人員用戶管理等主要功能模塊。(圖-1)
1.1科研項目管理相關(guān)信息發(fā)布。在日常的科研項目管理中,有大量的申報規(guī)范、管理制度以及項目管理通知需要在一定范圍內(nèi)公共發(fā)布。這就需要給管理人員提供一個發(fā)布信息的平臺,同時對科研人員需要設(shè)計信息查詢及瀏覽的信息接收窗口。讓相關(guān)科研的信息規(guī)范文件方便快捷下達,使科研人員及時了解和接收到相關(guān)信息,并能按照信息參與科研工作。
1.2項目申報??蒲腥藛T能夠按照統(tǒng)一的項目申報要求,通過網(wǎng)絡(luò)客戶端或移動客戶端,填報科研項目申報表。系統(tǒng)能夠在申報時使各種數(shù)據(jù)的格式規(guī)范保持一致。同一科研人員可以申報單項或多項科研項目。同時可以在項目提交系統(tǒng)之前能夠進行編輯、修改、撤銷.申報項目組成員、生成和打印項目申報表等操作。管理員可以通過該功能模塊,對審核通過立項的科研項目進行立項管理。
1.3項目中期檢查。項目實施過程控制。在項目實施過程中通過中期檢查,可以了解和掌握各科研項目開展的基本情況,并可提供管理者數(shù)據(jù)參考,便于在管理中加強科研項目的實施管控。
1.4結(jié)題管理。通過中期檢查的科研項目或申請并獲批復(fù)的延期研究項目,可以通過這個管理模塊來控制是否能夠按期結(jié)題。
1.5項目信息數(shù)據(jù)統(tǒng)計。項目信息數(shù)據(jù)統(tǒng)計分析為管理者提供管理支撐的主要依據(jù)。統(tǒng)計分析是實現(xiàn)科學(xué)化管理和參與決策的有效手段。統(tǒng)計分析能夠客觀的反映項目研究的實際狀態(tài),同時也是促進科研工作良好進行的重要保證。該功能模塊不光能按使用者的統(tǒng)計焦點來完成科研項目數(shù)據(jù)的統(tǒng)計工作,還能按照時間周期生成對應(yīng)的數(shù)據(jù)報告,直接供管理者參考。
2、開發(fā)模式及工具的選取
2.1 MVC軟件層次開發(fā)模式
MVC軟件開發(fā)模式是當前面向?qū)ο蟪绦蛟O(shè)計過程中,將軟件按照功能進行抽象,即可實現(xiàn)層次分離的一種開發(fā)模式。這種開發(fā)模式層次之間的耦合性比較低,可以提高開發(fā)和維護的效率;同時高度關(guān)注重用性和可適用性;具有較低的生命周期成本,使降低開發(fā)和維護用戶接口的技術(shù)含量成為可能這種模式部署快速,使開發(fā)時長大大縮短可維護性強更易于維護和修改。所以這種模式目前廣泛應(yīng)用各種大中型軟件的開發(fā)。
常見的三層框架就比較合理。MVC中三層及Model(數(shù)據(jù)模型層)+View(視圖層)+Controller(控制調(diào)度層)。
2.1.1 Model數(shù)據(jù)模型。Model用于封裝與應(yīng)用程序業(yè)務(wù)邏輯相關(guān)的數(shù)據(jù),以及對數(shù)據(jù)的處理方法。數(shù)據(jù)模型接受視圖請求的數(shù)據(jù),并返回最終的處理結(jié)果,是MVC最主要核心。例如對數(shù)據(jù)庫的改、刪、增、查等操作后返回數(shù)據(jù)的處理結(jié)果給視圖。
2.1.2 View視圖界面。View是能夠?qū)崿F(xiàn)數(shù)據(jù)有目的顯示的界面。代表用戶交互界面,也就是我們常見的Web頁面。在本系統(tǒng)的開發(fā)過程中視圖界面是通過Dreamweaver來進行網(wǎng)頁設(shè)計制作。和傳統(tǒng)的PHP網(wǎng)站開發(fā)不同,MVC設(shè)計模式對于視圖的處理僅限于數(shù)據(jù)的采集和處理。
2.1.3 Control控制器。Control是在業(yè)務(wù)邏輯層面間起組織和調(diào)度作業(yè),用于控制應(yīng)用程序的流程。是模型、視圖以及其他任何處理Http請求所必須的資源之間的中介,同時將生成頁面返回給用戶。
本系統(tǒng)軟件開發(fā)中選取的Codeigniter框架就是這樣的一種MVC開發(fā)模式。
2.2 PHP開發(fā)CodeigIuter框架的選取
Codeigniter(簡稱CI框架)是一套給PHP語言網(wǎng)站開發(fā)者使用的應(yīng)用程序開發(fā)框架和工具包。它的目標是讓你能夠更快速的開發(fā),它提供了日常任務(wù)中所需的大量類庫以及簡單的接口和邏輯結(jié)構(gòu)。通過減少代碼量,Codeigniter讓你更加專注于你的創(chuàng)造性工作。
CI框架是開放的、免費的、輕量級的,通過MIT開源許可協(xié)議授權(quán),你可以任意使用。我們的核心系統(tǒng)只需要一些非常小的庫,而且?guī)於际歉鶕?jù)請求動態(tài)加載。框架功能非常強大擁有全面的類庫,能滿足大多數(shù)Web開發(fā)任務(wù)的需要,例如:訪問數(shù)據(jù)庫,驗證表單數(shù)據(jù),會話管理,處理圖像,處理XML-RPC數(shù)據(jù)等。CI框架的可擴展性強,系統(tǒng)可以非常簡單的通過你自己的類庫和輔助函數(shù)來擴展,也可以通過類擴展或系統(tǒng)鉤子來實現(xiàn)。CI框架是中小型管理信息系統(tǒng)軟件開發(fā)非常理想的框架選擇。
2.3 B/S應(yīng)用系統(tǒng)體系架構(gòu)(圖-2)
在綜合考慮了系統(tǒng)的使用主體和用戶需求,系統(tǒng)開發(fā)過程中選取了B/S的系統(tǒng)架構(gòu)。這種架構(gòu)由客戶端使用瀏覽器來直接訪問服務(wù)器端,并由服務(wù)器直接相應(yīng)用戶的各種請求并返回結(jié)果給用戶。這種模式簡單易于用戶使用。在目前大多移動網(wǎng)絡(luò)終端上也不受限制,使用手機瀏覽器訪問無障礙,提高了系統(tǒng)的實際可用性。
3、數(shù)據(jù)庫設(shè)計,數(shù)據(jù)模型建立
數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ)。它把信息系統(tǒng)中大量的數(shù)據(jù)按一定的模型組織起來,提供存儲、維護、檢索數(shù)據(jù)的功能,使得信息系統(tǒng)可以方便、及時、準確地從數(shù)據(jù)庫中獲得所需的信息。綜合科研項目系統(tǒng)開發(fā)用戶需求,在系統(tǒng)設(shè)計中選取了MySOL數(shù)據(jù)庫來作為系統(tǒng)數(shù)據(jù)庫。
MySOL數(shù)據(jù)庫使用C和c++編程語言編寫,且可以使用多種編譯器進行測試,保證源代碼的可移植性,安裝簡單小巧。支持AIX、FreeBSD、HP-UX、Linux、Mac OS、Solaris、Windows等多種操作系統(tǒng)。能為多種編程語言提供了API。其中編程語言包括C、c++、Python、java、Perl、PHP、Eiffel、Ruby和Tcl等。支持多線程,使CPU資源得到充分利用。優(yōu)化的SOL查詢算法,有效提高查詢的速率。MySOL不僅能夠作為一個單獨的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能作為一個庫而嵌入到其他的軟件中。提供多語言支持,常見的編碼如中文的GB2312、BIG5、UTF8等都可以用作數(shù)據(jù)表名和數(shù)據(jù)列名。在處理業(yè)務(wù)量方面,可以處理擁有上千萬條記錄的大型數(shù)據(jù)庫。使用標準的SOL數(shù)據(jù)語言形式,對PHP有很好的支持。MySOL能被眾多的中小型企業(yè)喜愛,我想是離不開這些優(yōu)點的,其不僅能滿足中小型企業(yè)對數(shù)據(jù)庫的需求,且免費開源,故在系統(tǒng)庫設(shè)計時選用該數(shù)據(jù)庫作為系統(tǒng)數(shù)據(jù)庫。
數(shù)據(jù)庫建立和維護工具選取Navicat forMySOL工具,該工具使用簡單易用,能夠快速完成數(shù)據(jù)結(jié)構(gòu)的搭建和維護。(圖-3)
數(shù)據(jù)模型建立方式。
數(shù)據(jù)庫的運算并不是在控制類中進行的,而是在數(shù)據(jù)模型中,這樣他們就可以在后面很容易地被反復(fù)使用。數(shù)據(jù)模型就是對你的數(shù)據(jù)庫或其他數(shù)據(jù)存儲方式進行取回、插入和更新的地方,它們的功能是展示你的數(shù)據(jù)。
打開CI框架目錄中application/models文件夾,新建一個數(shù)據(jù)模型文件research_model.php示例代碼如下:
<?php
class Research_model extends CI_Controller {
function_construct()
{ parent::_construct();
}
function get_yh($user){
{
$str=“SELECT*from user wherejgh=‘$user'";
$query= $this->db->query("$str");
retum $query;
}
}
這段代碼,它創(chuàng)建了一個繼承CI-Model的數(shù)據(jù)模型,并使用“$this->load->database()”來載人數(shù)據(jù)庫類。數(shù)據(jù)庫已經(jīng)系統(tǒng)配置文件config/database中進行連接和配置,在使用時直接調(diào)用即可。以上代碼表示從user(用戶表)數(shù)據(jù)庫表中,獲取jgh(教工號)為查詢數(shù)據(jù)變量“$user”的所有數(shù)據(jù)(用戶基本信息),并將查詢到的數(shù)據(jù)集賦給數(shù)組變量“$query”供系統(tǒng)調(diào)用。
4、表層設(shè)計
表層設(shè)計主要是WEB頁面的設(shè)計,并將數(shù)據(jù)模型中獲取的數(shù)據(jù)表示在頁面中。在本系統(tǒng)設(shè)計過程中共設(shè)計生成36個系統(tǒng)WEB頁面。
這些頁面住主要通過Dreamweaver編輯,一般保存在框架目錄application/View中,由Control控制器在需要時進行邏輯調(diào)取。調(diào)取時使用$this->load->view();調(diào)用。具體調(diào)用頁面方法,見以下示例代碼:
<?php class Jtgl extends CI_Controller {
function_construct()
{ parent: :_construct () ;
$this->load->model ('Research_model') ;
public function index()
{
$this - >load- >view('admin/admin_top.php',$data);
$this->lo ad->view('admin/menu/adminmenu.php') ;
$this - >load->view('admin/jtgl_view.php' , $data) ;
} }?>
5、系統(tǒng)開發(fā)過程中需要注意的問題
5.1用戶界面是信息系統(tǒng)的門面,界面友好美觀以及導(dǎo)航流程清晰、幫助系統(tǒng)完備、版面簡潔,功能易用等設(shè)計,對網(wǎng)絡(luò)平臺來說起著十分重要的作用。
5.2網(wǎng)絡(luò)系統(tǒng)的安全問題需要考慮和規(guī)劃。通過采用各種技術(shù)和管理措施,使平臺正常運行,確保數(shù)據(jù)的可用性、完整性、保密性、可審查性。系統(tǒng)維護、數(shù)據(jù)備份、以及服務(wù)器及網(wǎng)絡(luò)帶寬等在建設(shè)時都需進行詳細規(guī)劃和設(shè)計。
5.3作為一個軟件產(chǎn)品,從需求分析、業(yè)務(wù)分析、數(shù)據(jù)模型、功能模型,到開發(fā)實現(xiàn)與測試,需要符合軟件工程的要求。并且需要經(jīng)過開發(fā)、應(yīng)用實踐到問題反饋,再修改,直到二次開發(fā)的一個過程。而且隨著發(fā)展趨勢與研究熱點信息技術(shù)的不斷發(fā)展.平臺也需要涉及平臺的二次開發(fā)問題,設(shè)計規(guī)劃時需考慮平臺的二次開發(fā)可能性和系統(tǒng)預(yù)留開發(fā)接口及數(shù)據(jù)庫升遷、移植等問題。
科研項目管理信息化是科研管理重要的管理手段。系統(tǒng)為科研人員和管理者之間架起一座橋梁,能夠?qū)γ總€項目的整個生命周期進行管理。通過統(tǒng)一的數(shù)據(jù)模型,提供了與項目相關(guān)活動的準確的各角度視圖,使科研主管部門能夠為項目分配合適的資源,確保項目執(zhí)行并跟蹤項目的成果,從而提升科研能力及效率。