張貴強(qiáng) 張文川 王炳鵬 郭 佳
(蘭州石化職業(yè)技術(shù)學(xué)院 甘肅 730060)
科技計(jì)劃項(xiàng)目的實(shí)施是實(shí)現(xiàn)科技計(jì)劃的唯一途徑,面向中小企業(yè)的科技計(jì)劃項(xiàng)目的具體實(shí)施可以發(fā)揮科技計(jì)劃對(duì)中小企業(yè)的宏觀調(diào)控和引導(dǎo)作用。為發(fā)揮中小企業(yè)在地區(qū)經(jīng)濟(jì)發(fā)展中的重要作用,推動(dòng)地區(qū)的科技發(fā)展水平建設(shè),建設(shè)科技計(jì)劃項(xiàng)目管理系統(tǒng)。
本系統(tǒng)利用Flex與Java的集成構(gòu)建,介紹了系統(tǒng)的功能設(shè)計(jì)和數(shù)據(jù)庫設(shè)計(jì),并著重介紹了部分功能實(shí)現(xiàn)。
由于該省的企業(yè)分布廣泛,硬件環(huán)境較差,不能部署較復(fù)雜的客戶端軟件,而且該省工作人員和企業(yè)用戶計(jì)算機(jī)水平有限,所以該地區(qū)科技計(jì)劃項(xiàng)目管理需要一個(gè)具有友好性、擴(kuò)展性和安全性的系統(tǒng)。
利用RIA技術(shù)可以幫助該地區(qū)科技廳實(shí)現(xiàn)科技計(jì)劃項(xiàng)目的推薦、申報(bào)、管理、驗(yàn)收和咨詢服務(wù)等功能,為其科技計(jì)劃項(xiàng)目管理構(gòu)建一個(gè)界面友好、擴(kuò)展性強(qiáng)、易于交互的系統(tǒng)。
該系統(tǒng)的開發(fā)環(huán)境,除了需要具備Java應(yīng)用程序的環(huán)境外,還需要滿足開發(fā)Flex應(yīng)用程序的條件。系統(tǒng)的開發(fā)和應(yīng)用環(huán)境如下:
系統(tǒng)包括評(píng)審項(xiàng)目專家管理、專家咨詢管理、項(xiàng)目申報(bào)管理、項(xiàng)目監(jiān)理管理、項(xiàng)目驗(yàn)收管理、項(xiàng)目推薦管理。
(1)用戶管理
用戶管理包括用戶信息編輯、刪除、審核、停用等操作。用戶可以注冊(cè)項(xiàng)目申報(bào)用戶,并修改資料。系統(tǒng)管理員能夠查看用戶狀態(tài),編輯用戶信息,審核用戶資格等操作。
(2)用戶組管理
系統(tǒng)操作員能夠增加、刪除、修改和査看用戶組。默認(rèn)的用戶組有系統(tǒng)管理員組、領(lǐng)導(dǎo)組、專家組、用戶組等。
(3)權(quán)限管理
權(quán)限管理和用戶組管理銜接在一起,給某用戶組分配權(quán)限后,該組的用戶就獲得了改組的相應(yīng)權(quán)限,其權(quán)限以字符串類型存儲(chǔ),以字符串中該為為1或0來判斷是否具有權(quán)限。
項(xiàng)目申報(bào)主要包括以下幾個(gè)重要功能:新項(xiàng)目申報(bào)、查看所有申報(bào)項(xiàng)目、項(xiàng)目中期檢查、項(xiàng)目驗(yàn)收、二次項(xiàng)目驗(yàn)收和重大事項(xiàng)變更等。在每個(gè)管理中要具備查詢、打印等功能。
錄入推薦公司的信息、項(xiàng)目推薦信息和視頻推薦信息后,由廳領(lǐng)導(dǎo)對(duì)推薦信息進(jìn)行資格審核,然后,由廳辦公人員進(jìn)行發(fā)布。系統(tǒng)中推薦信息以列表顯示,字段包括:企業(yè)名稱、企業(yè)類型、公司的經(jīng)營信息等。點(diǎn)擊“查看”按鈕可以査看公司推薦信息的洋細(xì)。
業(yè)務(wù)層是整個(gè)應(yīng)用的業(yè)務(wù)處理的核心,負(fù)責(zé)為客戶端的用戶操作提供后臺(tái)業(yè)務(wù)支撐。系統(tǒng)中采用Spring框架實(shí)現(xiàn)業(yè)務(wù)層,利用IoC機(jī)制,實(shí)現(xiàn)對(duì)持久層DAO組件的注入。該層有業(yè)務(wù)服務(wù)接口、接口實(shí)現(xiàn)類及數(shù)據(jù)傳輸對(duì)象組成。業(yè)務(wù)服務(wù)接口定義了一系列表示層需要的方法,供遠(yuǎn)程方法調(diào)用,例如項(xiàng)目申請(qǐng)書中的類MyPjAService做為接口,定義了項(xiàng)目申報(bào)、查詢、提交方法等。
表示層直接與用戶交互,為用戶提供用戶界面,根據(jù)用戶的請(qǐng)求,遠(yuǎn)程調(diào)用相應(yīng)的業(yè)務(wù)處理邏輯,并將結(jié)果展示給用戶。系統(tǒng)釆用Flex技術(shù)實(shí)現(xiàn),結(jié)合Cairngorm微架構(gòu)對(duì)表示層釆用MVC設(shè)計(jì)模式,實(shí)現(xiàn)表示層中模式、視圖與控制器之間的分離。
3.2.1 模型的實(shí)現(xiàn)
系統(tǒng)的視圖層要顯示的數(shù)據(jù)模型全部保存在ProModelLocator中,該類實(shí)現(xiàn)了Cairngorm框架的ModelLocator的接口,用于存儲(chǔ)數(shù)據(jù),實(shí)現(xiàn)方便管理、統(tǒng)一操作。ProModelLocator采用單例模式設(shè)計(jì),只允許在程序運(yùn)行時(shí)只有一個(gè)實(shí)例,客戶端程序共享一個(gè)Model層。
3.2.2 控制器的實(shí)現(xiàn)
在Flex客戶端中,Cairngorm框架起到的就是控制器作用。Cairngorm微架構(gòu)的控制器作用體現(xiàn)在它提供的FrontController組件上,該組件通過監(jiān)聽View派遣的攜帶了數(shù)據(jù)的事件,將事件以及其攜帶的數(shù)據(jù)映射到具體的Command中,由Command再負(fù)責(zé)創(chuàng)建Delegate,實(shí)現(xiàn)與服務(wù)器端的通信。
3.2.3 視圖的實(shí)現(xiàn)
系統(tǒng)的外觀布局采用嵌套式布局,整個(gè)系統(tǒng)的視圖層以project.mxml為基礎(chǔ),整個(gè)頁面是一個(gè)VBOX容器,該容器內(nèi)包括HBOX和HdivideBOX組件,Hdivided又嵌套了兩個(gè)VBOX組件:menus和displayArea。menus包括了Tree組件,用于頁面導(dǎo)航,displayArea用于顯示一系列的State,各個(gè)State由一系列的自定義組件組成,最終實(shí)現(xiàn)整個(gè)頁面的展示。
數(shù)據(jù)持久層主要封裝對(duì)于域模型對(duì)象的操作,是系統(tǒng)的根基,在數(shù)椐持久層采用Hibernate,來提高系統(tǒng)的對(duì)可移植性。數(shù)據(jù)持久層為業(yè)務(wù)邏輯層提供服務(wù),實(shí)現(xiàn)數(shù)據(jù)訪問等操作。數(shù)據(jù)持久層封裝了訪問數(shù)據(jù)庫的所有方法,實(shí)現(xiàn)了系統(tǒng)的松耦合性。數(shù)椐持久層采用了Hibernate框架,可以大大縮短開發(fā)過程,使得系統(tǒng)持久層開發(fā)結(jié)構(gòu)清晰。
采用Flex技術(shù)及與Java技術(shù)的集成,遠(yuǎn)程服務(wù)器由LCDS實(shí)現(xiàn),在部署服務(wù)平合時(shí),要將LCDS.war包放在服務(wù)器下的WEB-INF目錄里。在服務(wù)器端需要 Services.mxml和remotingconfig.xml 兩個(gè)接口文件。
為了支持分布式事務(wù)管理,以插件的形式將JTOM管理器部署到Tomcat服務(wù)器的WEB-INF/lib下,運(yùn)行LCDS。
利用Flex技術(shù)來實(shí)現(xiàn)的客戶端能為用戶提供一個(gè)更髙層次、更全方位的網(wǎng)絡(luò)體驗(yàn)。基于Flex與Java的RIA系統(tǒng)開發(fā)技術(shù)除了具備傳統(tǒng)Web應(yīng)用框架所具備的優(yōu)良的體系結(jié)構(gòu)、開發(fā)成本低等優(yōu)點(diǎn)外,還可以給用戶提供良好的用戶體驗(yàn),從而提高與用戶的交互性,改善系統(tǒng)的性能。
[1]朱歡.基于RIA的商業(yè)業(yè)務(wù)管理系統(tǒng)構(gòu)建[D].杭州:浙江大學(xué),2008.
[2]Oracle項(xiàng)目管理[EB/0L].http://www.Oracle.com/lang/cn/applications/projects/intro.html,2009
[3]孟巖.跨越鴻溝-Adobe的RIA戰(zhàn)略[J].程序員,2008(5).
[4]馬智亮等.基于萬維網(wǎng)的工程項(xiàng)目管理系統(tǒng)綜述[J].土木工程學(xué)報(bào),2006(10).