The design of distributed project management system
based on J2EE
Jiang Wenke and Jin Weidong
(College of electrical engineering, Southwest Jiaotong University, Chengdu, 610031 )
Abstract: In order to make it rebuilt and integrated well, combining with the advantage of J2EE used in design of system, the author design a distributed project management system based on J2EE in manufacture and describe the module structure, main function and key technology. This system is safe, efficiency, practical and suitable for distributed project.
Key words: J2EE; project management; distributed
1 引言
經(jīng)濟(jì)全球化與信息技術(shù)的不斷進(jìn)步和發(fā)展,在項(xiàng)目管理領(lǐng)域出現(xiàn)了新的機(jī)遇和挑戰(zhàn),當(dāng)今很多項(xiàng)目都面對項(xiàng)目參與人員地理上的分散性、組織上的多樣性、文化上的差異性、資源異構(gòu)性的現(xiàn)象,企業(yè)從Internet獲取信息與基于Web 技術(shù)管理企業(yè)資源和生產(chǎn)活動(dòng)越來越成為企業(yè)的迫切要求。但傳統(tǒng)的項(xiàng)目管理模式及項(xiàng)目管理系統(tǒng)難以對這種分布在異地的業(yè)務(wù)流程進(jìn)行有效的管理。因此,構(gòu)建一個(gè)具有伸縮性、開放性、便攜性和安全性的基于web的分布式項(xiàng)目管理系統(tǒng)成為現(xiàn)代企業(yè)的一種普遍需求[1-3]。互聯(lián)網(wǎng)技術(shù)的發(fā)展,尤其是以J2EE 為平臺(tái)的Web開發(fā)技術(shù)的應(yīng)用,為建立分布式的項(xiàng)目管理系統(tǒng)提供了有力的技術(shù)支持。基于此,本文提出了基于J2EE 的分布式項(xiàng)目管理系統(tǒng),從宏觀角度對分布式項(xiàng)目管理的系統(tǒng)結(jié)構(gòu)進(jìn)行分析, 并對系統(tǒng)中各模塊的功能設(shè)計(jì)進(jìn)行了描述。
2 基于J2EE 的分布式項(xiàng)目管理系統(tǒng)設(shè)計(jì)
2.1 J2EE概述
J2EE 是SUN 公司推出的一種全新概念的多層分布式應(yīng)用平臺(tái),它比傳統(tǒng)的互聯(lián)網(wǎng)程序有著更大的優(yōu)勢。J2EE提供了一個(gè)企業(yè)級的計(jì)算模型和運(yùn)行環(huán)境,用于開發(fā)和部署多層體系結(jié)構(gòu)的計(jì)算機(jī)應(yīng)用。它通過提供企業(yè)計(jì)算環(huán)境所必須的各種服務(wù),使得部署在J2EE平臺(tái)上的多層應(yīng)用可以實(shí)現(xiàn)高可用性、安全性、可擴(kuò)展性和可靠性。
J2EE體系結(jié)構(gòu)(包括Servlet、JSP、和EJB 3個(gè)單元)的優(yōu)點(diǎn)是:Servlet和JSP中可以完全使用Java進(jìn)行編程,可以完成許多簡單的商業(yè)邏輯。JSP(Java Server Pages) 是J2EE 平臺(tái)的頁面編程技術(shù),它通過一定的格式將Java 語句嵌入到HTML 語句中。Servlet 是一個(gè)運(yùn)行在請求/ 響應(yīng)模式的服務(wù)器上的Java 類模塊,它動(dòng)態(tài)擴(kuò)展了Web 服務(wù)器的功能。復(fù)雜的商業(yè)邏輯以EJB組件的形式部署在EJB Server中。EJB ( Enterprise JavaBeans) 是J2EE 平臺(tái)的組件技術(shù),是J2EE 的核心。EJB 是用Java 編寫的服務(wù)器端組件,用于實(shí)現(xiàn)企業(yè)計(jì)算機(jī)應(yīng)用的商業(yè)邏輯。EJB 分為兩類:會(huì)話EJB 和實(shí)體EJB。前者用于系統(tǒng)應(yīng)用邏輯實(shí)現(xiàn);后者用于數(shù)據(jù)存儲(chǔ)和狀態(tài)跟蹤。由于EJB Server提供了多種組件事務(wù),使系統(tǒng)更能夠應(yīng)付大量的并發(fā)用戶和管理復(fù)雜的事務(wù)邏輯。EJB Server中集成的組件命名服務(wù)可以使組件位置透明化,簡化了組件的部署和客戶端應(yīng)用的維護(hù)。開發(fā)過程易于分工進(jìn)行,可以由專人負(fù)責(zé)編寫組件,其他人組裝頁面[1]。企業(yè)原有數(shù)據(jù)可放人后臺(tái)的數(shù)據(jù)庫中,EJB 通過JDBC 進(jìn)行存取,從而利用了企業(yè)原有信息資源。
因此,綜合目前項(xiàng)目管理發(fā)展的特點(diǎn)和技術(shù)發(fā)展的趨勢,作者開發(fā)了基于J2EE架構(gòu)的分布式項(xiàng)目管理系統(tǒng)。
2.2 系統(tǒng)的體系結(jié)構(gòu)
基于J2EE 的項(xiàng)目管理系統(tǒng)是多層、分布式結(jié)構(gòu),如圖1。系統(tǒng)的前端是瀏覽器,用戶通過請求Web 頁調(diào)用Web 服務(wù)器中的Servlet 和JSP ,調(diào)用應(yīng)用服務(wù)器中的應(yīng)用邏輯,如EJB 組件,也可運(yùn)用JMS 與其企業(yè)其它信息系統(tǒng)交換信息。中間層主要提供系統(tǒng)級服務(wù),并負(fù)責(zé)管理J2EE 的應(yīng)用部件。業(yè)務(wù)邏輯由企業(yè)Bean來執(zhí)行,企業(yè)Bean從客戶程序處接收數(shù)據(jù),對數(shù)據(jù)進(jìn)行處理,在將數(shù)據(jù)發(fā)送到企業(yè)信息系統(tǒng)層存儲(chǔ),或者從數(shù)據(jù)庫中檢索數(shù)據(jù)后送回客戶端。系統(tǒng)的后端除包括數(shù)據(jù)庫外,還包括相關(guān)的其它企業(yè)信息系統(tǒng)等。連接器作為J2EE 的擴(kuò)展,負(fù)責(zé)連接J2EE 平臺(tái)與異構(gòu)的企業(yè)信息系統(tǒng)。
圖1 基于J2EE的分布式項(xiàng)目管理系統(tǒng)的體系結(jié)構(gòu)
Fig.1 The structure of the distributed project management system based on J2EE
3 項(xiàng)目管理系統(tǒng)的功能模塊設(shè)計(jì)
系統(tǒng)主要包括用戶權(quán)限管理模塊、進(jìn)度資源管理模塊、通訊模塊、日常事務(wù)信息管理、人力資源管理、質(zhì)量管理、合同管理、知識(shí)管理及綜合查詢等模塊,用戶還可以根據(jù)需要進(jìn)行模塊組合或方便的加入新模塊。
用戶權(quán)限管理包括用戶的注冊、登錄、用戶信息的維護(hù)等。不同角色的用戶擁有不同的權(quán)限。系統(tǒng)識(shí)別用戶身份,根據(jù)相應(yīng)授權(quán),開放或關(guān)閉某些功能模塊的使用權(quán),即實(shí)現(xiàn)個(gè)性化界面。用戶通過瀏覽器使用該管理系統(tǒng)時(shí),需要進(jìn)行用戶身份的登錄與驗(yàn)證,用戶的身份包括項(xiàng)目經(jīng)理、各子項(xiàng)目負(fù)責(zé)人、一般項(xiàng)目成員、遠(yuǎn)程用戶等。Web 服務(wù)器收集用戶的注冊和登錄信息,并通過Servlet 調(diào)用EJB( Enterprise JavaBeans) 服務(wù)器中的EJB組件進(jìn)行處理驗(yàn)證,并將處理結(jié)果返回給Web 頁面。不同的用戶根據(jù)自己的用戶權(quán)限分別登陸到各自的業(yè)務(wù)平臺(tái)進(jìn)行業(yè)務(wù)處理。用戶進(jìn)入系統(tǒng)后首先選擇角色(如果有多個(gè)角色)和能處理的項(xiàng)目,進(jìn)入系統(tǒng)后所有信息都是關(guān)于這個(gè)項(xiàng)目和用戶當(dāng)前角色的。用戶可以在系統(tǒng)中切換項(xiàng)目和角色。
進(jìn)度資源管理模塊可以使項(xiàng)目管理者依據(jù)項(xiàng)目的進(jìn)程及項(xiàng)目的整體情況和各個(gè)應(yīng)用狀態(tài),對任務(wù)流進(jìn)行重組,各個(gè)任務(wù)進(jìn)度進(jìn)行調(diào)整,資源重新配置,組織/角色的重新定義,該過程會(huì)產(chǎn)生新的關(guān)鍵路徑和關(guān)鍵任務(wù),成為項(xiàng)目運(yùn)行的新依據(jù)。進(jìn)度報(bào)警程序是運(yùn)行于應(yīng)用服務(wù)器端的后臺(tái)進(jìn)程,定時(shí)掃描狀態(tài)為運(yùn)行的任務(wù),對其執(zhí)行的時(shí)間進(jìn)行累加,若該時(shí)間大于任務(wù)的預(yù)定時(shí)間,則向管理員和客戶應(yīng)用端同時(shí)報(bào)警;能夠?qū)?xiàng)目的里程碑目標(biāo)進(jìn)行監(jiān)控;能夠感知項(xiàng)目環(huán)境的變化,如提示系統(tǒng)有消息到來;對共享信息的越權(quán)操作及一些異常情況也能夠進(jìn)行報(bào)警及處理。
通訊和交互接口主要實(shí)現(xiàn)服務(wù)器與客戶應(yīng)用端、管理者與工作組成員間的通訊與交流。項(xiàng)目管理者在進(jìn)行任務(wù)發(fā)放時(shí),用E - mail 或短消息通知各開發(fā)小組,項(xiàng)目成員可以以聊天室形式參與交流。服務(wù)端和客戶端的連接以中間件為橋梁,對服務(wù)器的訪問通過JDBC 來實(shí)現(xiàn)。
項(xiàng)目綜合查詢模塊可以查詢各個(gè)模塊的信息,具有進(jìn)度報(bào)警功能,還可以生成各類報(bào)表,并且采用先進(jìn)的多級子工程管理技術(shù),智能化自動(dòng)生成甘特圖,輕松實(shí)現(xiàn)工程項(xiàng)目的多級管理規(guī)范化管理,實(shí)現(xiàn)對作業(yè)的全方位跟蹤監(jiān)控,對外部服務(wù)器的訪問通過外部進(jìn)程間的消息傳遞機(jī)制來實(shí)現(xiàn)。
此外,系統(tǒng)還包括日常事務(wù)信息管理、人力資源管理、質(zhì)量管理、合同管理、知識(shí)管理等功能,用戶可以根據(jù)企業(yè)項(xiàng)目實(shí)際情況自由選擇或定制需要的功能,大大提高項(xiàng)目管理系統(tǒng)的柔性和適應(yīng)性。
圖2 基于J2EE 的分布式項(xiàng)目管理系統(tǒng)模塊構(gòu)成
Fig.2 The system modules of the distributed project management system based on J2EE
Fig.2 The system modules of the distributed project management system based on J2EE
4 系統(tǒng)的特點(diǎn)
4.1 通過EJB組件實(shí)現(xiàn)數(shù)據(jù)庫的連接和操作
EJB 是一個(gè)可重復(fù)使用的軟件組件,由于本系統(tǒng)是一個(gè)大型的Web 數(shù)據(jù)庫系統(tǒng),所以會(huì)有大量的數(shù)據(jù)庫操作,因此構(gòu)建一個(gè)專門的數(shù)據(jù)庫操作組件是非常必要的,這樣可以省去大量的重復(fù)性代碼,使程序結(jié)構(gòu)化更強(qiáng),易于移植和維護(hù),同時(shí)還具有良好的擴(kuò)展性和安全性。
4.2 基于角色的多層訪問控制
基于角色的訪問控制(RBAC:Role-Based Access Control)方法的基本思想是根據(jù)需要定義各種角色并設(shè)置角色的訪問權(quán)限,而用戶根據(jù)其、職責(zé)和崗位被指派為不同的角色[4]。這樣整個(gè)訪問控制過程就分成了兩部分:即訪問權(quán)限和角色相關(guān)聯(lián), 角色再和用戶相關(guān)聯(lián), 從而實(shí)現(xiàn)了用戶與訪問權(quán)限的邏輯分離。
傳統(tǒng)的訪問控制直接將訪問主體和客體相關(guān)聯(lián),而RBAC在中間加入了角色,通過角色溝通訪問控制的主體和客體。為了能夠靈活地對系統(tǒng)的訪問權(quán)限進(jìn)行控制,我們擴(kuò)展了RBAC模型,形成了一個(gè)基于角色的多層訪問控制模型,如圖3所示。
4.3 數(shù)據(jù)庫設(shè)計(jì)
鑒于項(xiàng)目參與方在地理位置上分散各地的特征,為有效地管理與項(xiàng)目有關(guān)的數(shù)據(jù)和與數(shù)據(jù)有關(guān)的過程,系統(tǒng)的數(shù)據(jù)庫采用集中與分布式相結(jié)合的方法,建立中央項(xiàng)目數(shù)據(jù)庫和各項(xiàng)目組分布數(shù)據(jù)庫,中央項(xiàng)目數(shù)據(jù)庫主要存放用戶信息、項(xiàng)目模型、產(chǎn)品信息、中間結(jié)果、過程信息等,各項(xiàng)目組數(shù)據(jù)庫主要保存與本組有關(guān)的信息。系統(tǒng)使用組進(jìn)行授權(quán)管理,將不同的用戶群劃分成不同的組,并對組授權(quán)。這樣既保證了公共信息的有效共享,又保證了各項(xiàng)目組私有信息的獨(dú)立性。
鑒于項(xiàng)目參與方在地理位置上分散各地的特征,為有效地管理與項(xiàng)目有關(guān)的數(shù)據(jù)和與數(shù)據(jù)有關(guān)的過程,系統(tǒng)的數(shù)據(jù)庫采用集中與分布式相結(jié)合的方法,建立中央項(xiàng)目數(shù)據(jù)庫和各項(xiàng)目組分布數(shù)據(jù)庫,中央項(xiàng)目數(shù)據(jù)庫主要存放用戶信息、項(xiàng)目模型、產(chǎn)品信息、中間結(jié)果、過程信息等,各項(xiàng)目組數(shù)據(jù)庫主要保存與本組有關(guān)的信息。系統(tǒng)使用組進(jìn)行授權(quán)管理,將不同的用戶群劃分成不同的組,并對組授權(quán)。這樣既保證了公共信息的有效共享,又保證了各項(xiàng)目組私有信息的獨(dú)立性。
圖3 基于角色的多層訪問控制模型
Fig.3 Multilayer access control model based on role
5 結(jié)束語
J2EE是一個(gè)為企業(yè)分布式應(yīng)用的開發(fā)提供的標(biāo)準(zhǔn)平臺(tái)。采用J2EE體系結(jié)構(gòu)可以構(gòu)造出完全不依賴平臺(tái)的計(jì)算機(jī)應(yīng)用系統(tǒng),并且支持分布式事務(wù)處理。從開發(fā)角度來講,由于系統(tǒng)的表現(xiàn)形式(Web頁面)和內(nèi)部邏輯(EJB)相分離,因此,系統(tǒng)的不同部分可以由不同開發(fā)人員同步進(jìn)行,提高了系統(tǒng)開發(fā)的效率和質(zhì)量,同時(shí)也有利于系統(tǒng)的維護(hù)和升級。筆者采用J2EE方案開發(fā)的分布式項(xiàng)目管理系統(tǒng),從企業(yè)實(shí)際運(yùn)用的效果來看,該系統(tǒng)具有安全、高效、實(shí)用、支持分布式業(yè)務(wù)流程,適應(yīng)網(wǎng)絡(luò)化虛擬企業(yè)的管理模式等特點(diǎn)。
參考文獻(xiàn):
[1] 魏從剛,何衛(wèi)平,趙峰,王建利,孫思. 基于J2EE的分布式項(xiàng)目管理系統(tǒng)應(yīng)用研究. 制造業(yè)自動(dòng)化. 2004, 26(11): 62-65.
[2] 郭建設(shè),尹朝萬,羅煥佐,鄭紅星. 基于J2EE的分布式項(xiàng)目管理系統(tǒng)模型與實(shí)現(xiàn). 計(jì)算機(jī)工程與應(yīng)用. 2004, 31: 193-196.
[3] 鄭紅星,尹朝萬,郭建設(shè),張福順. 分布式制造項(xiàng)目管理研究與實(shí)現(xiàn). 計(jì)算機(jī)應(yīng)用. 2004, 24(5): 120-122.
[4] 鄧筱鵬,胡堅(jiān),黃桁. 工程項(xiàng)目信息管理系統(tǒng)的開發(fā)及應(yīng)用. 水運(yùn)工程. 2005, 5: 78-83.
作者簡介:
姜文科(1982),女,江西九江人,漢,碩士研究生,研究方向:項(xiàng)目管理、分布式計(jì)算、中間件