摘 要: 針對建筑項(xiàng)目管理的常見問題,借助當(dāng)前流行的云計(jì)算技術(shù)解決,具有重大的現(xiàn)實(shí)意義。該系統(tǒng)采用多租戶的設(shè)計(jì)模式,建筑企業(yè)通過注冊、租用管理系統(tǒng)搭建自己獨(dú)立的建筑項(xiàng)目管理系統(tǒng),在新建工程項(xiàng)目開始時(shí)避免再次購買項(xiàng)目管理軟件。同時(shí),系統(tǒng)采用Openstack云平臺提供基礎(chǔ)設(shè)施即服務(wù),管理員可以根據(jù)租戶的數(shù)量變化彈性分配基礎(chǔ)設(shè)施,可以將投入的基礎(chǔ)設(shè)施最大程度的利用,避免傳統(tǒng)一次性硬件投入造成的太多浪費(fèi),太少不夠用的問題。項(xiàng)目基于目前流行的Web應(yīng)用程序開源集成框架SSH進(jìn)行開發(fā),利用該框架構(gòu)建靈活、易于擴(kuò)展的特性,能夠適應(yīng)項(xiàng)目未來的需求變化,也有利于項(xiàng)目的后期維護(hù)。
關(guān)鍵詞: 云計(jì)算; Openstack; 建筑項(xiàng)目管理系統(tǒng); 多租戶; SSH框架
中圖分類號: TN911?34; TM417 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2016)19?0120?05
Abstract: It is a great practical significance to solve the common architecture project management problems in virtue of the current popular cloud computing technology. This system adopts the multi?tenant design pattern. The independent architecture project management system is constructed by the architecture companies by means of registering and renting the management system, which can avoid buying the project management software again at the beginning of a new project. The Openstack cloud platform is used to provide the infrastructure and services in the system. The administrator allocates the infrastructure elastically according to the quantity change of tenants, which can utilize the input infrastructure to the maximum extent, and avoid the waste and insufficient problems caused by the traditional one?time hardware input. The project is developed based on the popular open?source integrated framework SSH of Web application program, takes advantage of the characteristics of the flexible and extensible framework, can adapt to the future requirement change of the project, and is beneficial to later project maintenance.
Keywords: cloud computing; Openstack; architecture project management system; multi?tenant; SSH framework
0 引 言
目前,各行各業(yè)都爭相使用云計(jì)算技術(shù)以達(dá)到自己的產(chǎn)業(yè)優(yōu)勢,也逐漸出現(xiàn)了基于云平臺的各種應(yīng)用。但針對建筑項(xiàng)目的云計(jì)算應(yīng)用卻很少。建筑項(xiàng)目管理軟件能夠?yàn)榻ㄖI(yè)自身的專業(yè)化需求提供專業(yè)化的管理服務(wù),以達(dá)到提高管理信息化水平、節(jié)約管理成本、減少資源浪費(fèi)、提高生產(chǎn)效率的目的,通過利用云計(jì)算技術(shù)人們可以租用遠(yuǎn)程計(jì)算資源,企業(yè)再也不用為了購買硬件、構(gòu)建數(shù)據(jù)中心做大量的前期投入,也不用為軟件安裝、系統(tǒng)維護(hù)投入人力、物力[1]。這種計(jì)算模式是一種創(chuàng)新,對于無論多大的計(jì)算能力和各種各樣的信息服務(wù)用戶都可通過互聯(lián)網(wǎng)獲得;同時(shí)它也是對商業(yè)模式的一種創(chuàng)新,對于計(jì)算和服務(wù),用戶可以取用自由、按量付費(fèi)[2]。
1 系統(tǒng)需求分析
1.1 可行性分析
在經(jīng)濟(jì)方面,項(xiàng)目開發(fā)完成后需要的云平臺有兩臺IBMx3650服務(wù)器;開發(fā)使用Eclipse作為IDE,使用TortoiseSVN進(jìn)行代碼管理,使用Java語言進(jìn)行開發(fā),所以開發(fā)中基本不存在軟件方面的成本;OpenStack是個(gè)開源的項(xiàng)目,部署云平臺時(shí)可以充分利用開源優(yōu)勢,免費(fèi)使用OpenStack項(xiàng)目。在技術(shù)方面,基于云計(jì)算平臺的建筑項(xiàng)目管理系統(tǒng)的云平臺采用OpenStack開源項(xiàng)目搭建;整個(gè)項(xiàng)目開發(fā)采用SSH框架,而SSH在企業(yè)級開發(fā)中的應(yīng)用已經(jīng)比較成熟。綜上,從經(jīng)濟(jì)上考慮成本是可以接受的,從技術(shù)上考慮,使用的技術(shù)比較成熟能夠完成項(xiàng)目開發(fā)[3]。
1.2 功能性需求分析
基于云平臺的建筑項(xiàng)目管理系統(tǒng)面向的是所有參與建筑項(xiàng)目的用戶,做為一個(gè)多租戶的系統(tǒng)要保證租戶的數(shù)據(jù)安全,要有很好的數(shù)據(jù)隔離性,項(xiàng)目投入使用后要求項(xiàng)目在軟件上也能夠擴(kuò)展[4]。
(1) 管理員
具有建筑項(xiàng)目管理系統(tǒng)的最高權(quán)限,具體體現(xiàn)在能夠?qū)τ脩?、企業(yè)、項(xiàng)目進(jìn)行管理,以及負(fù)責(zé)整個(gè)項(xiàng)目的運(yùn)維。管理員用戶包括的功能模塊為:首頁管理、系統(tǒng)管理、賬號管理、業(yè)務(wù)功能模塊、移動端管理、規(guī)范管理。管理員用例圖如圖1所示。
其中,基于云平臺的建筑項(xiàng)目管理系統(tǒng)首頁經(jīng)常更新,將本產(chǎn)品的最新消息顯示在頁面上,公告列表要能夠添加、編輯、查找、刪除公告。默認(rèn)PMC列表的企業(yè)會顯示在頁面上,方便客戶了解現(xiàn)有的PMC合作單位。管理員應(yīng)該能夠添加、刪除PMC合作單位,當(dāng)PMC單位較多時(shí)要能夠通過公司名稱查詢對應(yīng)的單位。頁面上顯示的PMC合作單位的順序有時(shí)要調(diào)整,在PMC列表中管理員要通過上移、下移操作調(diào)整PMC合作單位的順序。產(chǎn)品介紹在產(chǎn)品介紹標(biāo)簽頁中能夠編輯產(chǎn)品介紹信息、更改產(chǎn)品的使用價(jià)格,保存編輯內(nèi)容,確保再次打開首頁能夠看到編輯過的信息。
(2) 甲方用戶
甲方用戶根據(jù)崗位不同對應(yīng)的權(quán)限也會不同,圖2為甲方擁有最高權(quán)限崗位的用戶對應(yīng)的用例。甲方用戶登錄賬號后會進(jìn)入我的工作門戶頁面,在該頁面能夠顯示我的本周任務(wù)、負(fù)責(zé)項(xiàng)目的概況、接收的資料、共享的資料。報(bào)批報(bào)建是工程項(xiàng)目所在地的報(bào)批報(bào)建流程,用戶可以查看工程項(xiàng)目的報(bào)批情況[5]。資金管理用來管理各個(gè)階段資金的使用情況及資金計(jì)劃。進(jìn)度管理用來查看工程各部分的進(jìn)度情況。資料管理分為分類管理、我的資料、共享資料三個(gè)部分。
(3) PMC用戶
PMC用戶的權(quán)限和甲方用戶的權(quán)限是基本一樣的,只是PMC不負(fù)責(zé)項(xiàng)目的報(bào)批報(bào)建,所以也就沒有報(bào)批報(bào)建模塊。PMC用戶資金管理分為資金計(jì)劃和資金支付,資金計(jì)劃模塊管理項(xiàng)目資金的使用計(jì)劃并向甲方提出申請,資金支付查看甲方資金的支付情況。PMC負(fù)責(zé)工程的施工,進(jìn)度管理是PMC管理的重點(diǎn),分為進(jìn)度計(jì)劃、本周任務(wù)、形象進(jìn)度、分析匯報(bào)。進(jìn)度計(jì)劃用來對整個(gè)工程進(jìn)行計(jì)劃,可以編制計(jì)劃;本周任務(wù)顯示本周的任務(wù);形象進(jìn)度可以新增、刪除形象進(jìn)度,并對已有的形象進(jìn)度進(jìn)行修改;分析匯報(bào)分析整個(gè)項(xiàng)目的進(jìn)展情況,向甲方、協(xié)作方做匯報(bào),以掌握整個(gè)項(xiàng)目的進(jìn)度。PMC用戶用例圖如圖3所示。
(4) 協(xié)作方用戶
協(xié)作方包括進(jìn)度管理、資料管理、后臺管理三個(gè)功能模塊。進(jìn)度管理模塊協(xié)作方主要負(fù)責(zé)監(jiān)督工程的進(jìn)度,并能夠編制進(jìn)度計(jì)劃;資料管理可以查看工程相關(guān)的資料文檔[6]。
2 系統(tǒng)設(shè)計(jì)
系統(tǒng)云平臺是在三臺IBMSystemx3550M4(7914I01)上運(yùn)行OpenStack云平臺實(shí)現(xiàn)的,OpenStack云平臺在IBM服務(wù)器上搭建成功后,可以享用云平臺提供的IaaS,本系統(tǒng)要用到的四類服務(wù)器都運(yùn)行在OpenStack云平臺提供的云主機(jī)上,租戶訪問系統(tǒng)時(shí)首先會通過Nginx代理服務(wù)器,在系統(tǒng)中使用Nginx代理服務(wù)器做負(fù)載均衡。系統(tǒng)使用Squid作為緩存服務(wù)器,Squid是一個(gè)緩存internet數(shù)據(jù)的一個(gè)軟件,它接收用戶的下載申請,并自動處理下載的數(shù)據(jù),Web 服務(wù)器使用 Jboss。
系統(tǒng)的軟件架構(gòu)分層包括實(shí)體層、DAO層、服務(wù)層、Web層。首先是實(shí)體層,根據(jù)系統(tǒng)各模塊需要的表編寫實(shí)體并通過hibernate注解創(chuàng)建持久對象,由于實(shí)體層是在系統(tǒng)開始創(chuàng)建的且不需要經(jīng)常變化,將實(shí)體層打成jar包,系統(tǒng)開發(fā)過程中只需引用包中的持久化對象。其次是DAO層對數(shù)據(jù)庫表的操作基本上是增、刪、改、查,將對數(shù)據(jù)庫表各表的操作抽象出來,通過一個(gè)CommonDao類實(shí)現(xiàn)對底層數(shù)據(jù)庫的訪問。第三層是服務(wù)層,服務(wù)層通過對DAO的操作實(shí)現(xiàn)系統(tǒng)業(yè)務(wù)邏輯[7]。第四層是Web層,后臺通過編寫Action類的方法處理頁面和業(yè)務(wù)的交互,并對數(shù)據(jù)進(jìn)行必要的處理;velocity頁面對業(yè)務(wù)數(shù)據(jù)進(jìn)行呈現(xiàn),并對用戶的非法操作進(jìn)行適當(dāng)?shù)目刂芠8]。
3 系統(tǒng)詳細(xì)設(shè)計(jì)及實(shí)現(xiàn)
3.1 多租戶系統(tǒng)登錄
作為一個(gè)多租戶系統(tǒng),所有的用戶都從首頁的登錄窗口進(jìn)入系統(tǒng),為了保證用戶的數(shù)據(jù)安全,要在后臺對用戶進(jìn)行過濾,以區(qū)分不同用戶的權(quán)限。
系統(tǒng)首頁將一個(gè)友好的界面呈現(xiàn)給用戶,對該系統(tǒng)進(jìn)行介紹,發(fā)布公告等。最重要的功能性作用是提供用戶登錄系統(tǒng)的接口,用戶點(diǎn)擊首頁左上角的登錄按鈕彈出登錄框,輸入賬號、密碼即可登錄系統(tǒng),如若忘記密碼還可以通過驗(yàn)證找回密碼。在首頁登錄時(shí)首先判斷用戶是否是管理員用戶,如果是管理員就會進(jìn)入廣聯(lián)達(dá)運(yùn)營平臺,在該頁面管理員負(fù)責(zé)整個(gè)系統(tǒng)的運(yùn)行,能夠?qū)κ褂媒ㄖ?xiàng)目管理系統(tǒng)的企業(yè)、項(xiàng)目、賬號、移動端的產(chǎn)品進(jìn)行管理。當(dāng)非管理員用戶登錄時(shí)就會根據(jù)用戶管理的業(yè)務(wù)進(jìn)行判斷,如果用戶沒有管理項(xiàng)目就會根據(jù)是否是企業(yè)管理員直接進(jìn)入普通用戶管理頁面和企業(yè)管理員管理頁面。當(dāng)用戶有管轄的項(xiàng)目時(shí),如果只有一個(gè)管理的項(xiàng)目就會進(jìn)入對應(yīng)項(xiàng)目的崗位門戶,如果有多個(gè)管理的項(xiàng)目就會進(jìn)入工程項(xiàng)目選擇頁面。
3.2 管理員
管理員具有對整個(gè)系統(tǒng)最高權(quán)限的操作,負(fù)責(zé)管理的功能模塊也最多,考慮篇幅問題,下面選擇幾個(gè)功能模塊展示管理員頁面的實(shí)現(xiàn)。
(1) 企業(yè)管理
管理員登錄后界面如圖4所示。頁面頭部統(tǒng)一顯示歡迎信息和glodoncloud圖標(biāo),左側(cè)部分為功能欄,點(diǎn)擊左側(cè)功能欄選項(xiàng),右側(cè)顯示對應(yīng)的功能模塊,登錄后默認(rèn)顯示企業(yè)管理模塊。在切換功能模塊過程中頁面頭部和左側(cè)保持不變只有右側(cè)功能模塊發(fā)生變化。
(2) 項(xiàng)目管理
管理員通過項(xiàng)目管理模塊進(jìn)行項(xiàng)目管理,首先管理員可以通過查詢找到自己想要管理的項(xiàng)目,也可新增項(xiàng)目;其次對要管理的項(xiàng)目,管理員可以分配用戶對項(xiàng)目的權(quán)限、崗位管理、協(xié)作企業(yè);最后管理員可以編輯、刪除項(xiàng)目。
(3) 公告管理
公告管理用于編輯、管理、顯示在首頁的公告,首先管理員可以通過公告標(biāo)題、發(fā)布時(shí)間查詢要管理的公告,還可以新添加公告;其次管理員可以對公告進(jìn)行編輯、批量刪除選定的公告。公告管理界面如圖5所示。
3.3 甲方用戶
(1) 我的工作門戶
當(dāng)普通用戶第一次登陸系統(tǒng)時(shí),無論是甲方用戶、PMC用戶,第一次登陸后都會進(jìn)入如圖6所示的我的項(xiàng)目頁面,以后再登陸時(shí)就會默認(rèn)進(jìn)入用戶上次管理的項(xiàng)目頁面。在我的項(xiàng)目頁面分兩列顯示我的項(xiàng)目,主負(fù)責(zé)項(xiàng)目列顯示甲方、PMC角色管理的項(xiàng)目,協(xié)作項(xiàng)目顯示以協(xié)作方角色管理的項(xiàng)目。當(dāng)用戶點(diǎn)擊管理的項(xiàng)目時(shí)就會進(jìn)入對應(yīng)的項(xiàng)目管理頁面。甲方可最多擁有的功能模塊有:我的工作門戶、報(bào)批報(bào)建、資金管理、進(jìn)度管理、資料管理、后臺管理。我的工作門戶顯示我的本周任務(wù)、項(xiàng)目概況、接收資料、共享資料,讓用戶進(jìn)入項(xiàng)目后能夠直接了解自己的工作、項(xiàng)目進(jìn)行情況及要查看的資料。
(2) 報(bào)批報(bào)建
報(bào)批報(bào)建是甲方用戶獨(dú)有的功能模塊,在該模塊能夠顯示工程項(xiàng)目所在地區(qū)的報(bào)批報(bào)建流程圖,當(dāng)點(diǎn)擊流程圖中的節(jié)點(diǎn)時(shí)能夠?qū)υ搶徟襟E進(jìn)行編輯,當(dāng)該節(jié)點(diǎn)完成時(shí)節(jié)點(diǎn)顯示為藍(lán)色,當(dāng)節(jié)點(diǎn)工作正在進(jìn)行中時(shí)顯示為紅色,當(dāng)節(jié)點(diǎn)工作還未進(jìn)行時(shí)顯示為白色,灰色的節(jié)點(diǎn)不能進(jìn)行操作。
(3) 資金管理
甲方的資金管理頁面只有資金計(jì)劃頁面,在該頁面甲方對PMC用戶提交的資金計(jì)劃進(jìn)行審批,同意資金計(jì)劃點(diǎn)擊確認(rèn)本月計(jì)劃,否則取消確認(rèn)。
(4) 資料管理
資料管理用來管理自己的工程資料,還可通過共享、分發(fā)等方式傳遞給他人查看以實(shí)現(xiàn)項(xiàng)目相關(guān)人員間的資料信息的傳遞。資料管理有三個(gè)標(biāo)簽頁,分類管理頁對分類進(jìn)行添加、刪除、編輯;我的資料頁顯示已發(fā)布的文檔、已接收的文檔、我的文檔,可對文件進(jìn)行下載、查看、分發(fā)、共享等操作;在共享資料頁面,如果文件是本人共享的,可以對文件執(zhí)行下載、查看、更新、刪除操作,如果不是本人共享的文件則只能下載、查看。
(5) 后臺管理
如果用戶是企業(yè)管理員,后臺管理頁面有6個(gè)頁簽:在個(gè)人資料頁簽,顯示、修改個(gè)人基本資料,更改密碼以及設(shè)置密保問題;在企業(yè)基本信息頁簽,顯示修改企業(yè)的基本信息、聯(lián)系人信息等;在賬號添加頁簽,為本企業(yè)添加用戶賬號;在賬號維護(hù)頁簽,維護(hù)本企業(yè)的賬號分配,可以編輯、刪除賬號;在項(xiàng)目維護(hù)頁簽,對項(xiàng)目執(zhí)行分配權(quán)限,崗位管理,選擇協(xié)作企業(yè),編輯項(xiàng)目;在協(xié)作項(xiàng)目頁簽,對協(xié)作的項(xiàng)目進(jìn)行管理。如果用戶不是企業(yè)管理員則只有個(gè)人資料頁簽。
3.4 PMC用戶
PMC用戶的功能模塊除了沒有報(bào)批報(bào)建,其他功能模塊和甲方功能模塊基本項(xiàng)目相同,在此不再說明。但是PMC用戶的進(jìn)度管理模塊有四個(gè)標(biāo)簽頁,在進(jìn)度計(jì)劃標(biāo)簽頁,可以查看、編制進(jìn)度計(jì)劃;在本周任務(wù)頁簽,可以查看本周的任務(wù)情況,包括本周共有任務(wù)、正常執(zhí)行任務(wù)、等待執(zhí)行任務(wù)、可能延誤任務(wù)、按時(shí)完成任務(wù)、已延誤任務(wù);在形象進(jìn)度標(biāo)簽頁,可以新增、刪除、編輯形象,在這部分新增的形象進(jìn)度會顯示在甲方和PMC的首頁以及甲方的進(jìn)度管理模塊。
協(xié)作方用戶的功能列只有進(jìn)度管理、資料管理、后臺管理三個(gè)模塊。其中資料管理、后臺管理模塊和甲方、PMC用戶的功能完全相同。進(jìn)度管理模塊只有進(jìn)度計(jì)劃、本周任務(wù)兩個(gè)標(biāo)簽頁,具有和PMC用戶項(xiàng)相同的功能。
4 系統(tǒng)測試
4.1 功能測試
功能測試主要驗(yàn)證系統(tǒng)是否能夠達(dá)到系統(tǒng)功能性需求分析中的要求。本節(jié)功能測試選擇黑盒測試方法進(jìn)行,測試內(nèi)容包括登錄、管理員功能模塊、甲方用戶功能模塊、PMC用戶功能模塊、協(xié)作方用戶的功能模塊。由于系統(tǒng)功能多,模塊功能也多,選取管理員的項(xiàng)目管理模塊、普通用戶的資料管理模塊進(jìn)行測試說明。
管理員的功能模塊最多,選取管理員用戶的項(xiàng)目管理模塊進(jìn)行測試說明。項(xiàng)目管理測試部分試用例如表1所示,經(jīng)測試項(xiàng)目管理模塊的各功能能夠與需求分析相符合,達(dá)到系統(tǒng)目標(biāo)。
甲方用戶、PMC用戶、協(xié)作方用戶的功能模塊非常相似,經(jīng)測試資料管理模塊和需求分析部分相符,能夠達(dá)到系統(tǒng)的功能要求。
4.2 性能測試
測試中使用ApacheJMeter進(jìn)行壓力測試,由于性能測試依賴服務(wù)器的性能和當(dāng)時(shí)的網(wǎng)絡(luò)情況,為了保證測試結(jié)果的準(zhǔn)確可靠,采用多次測量進(jìn)行數(shù)據(jù)統(tǒng)計(jì)。在本次測試中,選擇4個(gè)比較重要的具有代表性的頁面進(jìn)行測試,對這些頁面發(fā)送400次并發(fā)請求,實(shí)驗(yàn)測試數(shù)據(jù)如表2所示。
以上測試數(shù)據(jù)表明,本系統(tǒng)能夠響應(yīng)高并發(fā)請求,并且平均訪問時(shí)間沒有超過5 s,能夠滿足用戶基本的體驗(yàn)需求。
5 結(jié) 論
本文分析了當(dāng)前國內(nèi)建筑行業(yè)發(fā)展對建筑項(xiàng)目管理系統(tǒng)的強(qiáng)大需求。根據(jù)實(shí)際的建筑項(xiàng)目一般管理模式對系統(tǒng)進(jìn)行業(yè)務(wù)需求分析、可行性分析,并在此基礎(chǔ)上做了系統(tǒng)的總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)。以SSH框架為基礎(chǔ)結(jié)合sitemesh框架、Velocity模板語言、Memcache緩存技術(shù)實(shí)現(xiàn)了大型的面向多租戶的建筑項(xiàng)目管理系統(tǒng),并通過圖解方式展示了系統(tǒng)的部分主要功能模塊,從展示中可以看出系統(tǒng)是一個(gè)強(qiáng)大的、功能完善的項(xiàng)目管理系統(tǒng),同時(shí)保證了用戶之間數(shù)據(jù)的安全。
參考文獻(xiàn)
[1] 尹楠,陳操.基于B/S和C/S架構(gòu)的學(xué)生信息管理系統(tǒng)的設(shè)計(jì)[J].信息工程,2012(7):65?67.
[2] 李欣琪.云計(jì)算中虛擬化管理方法研究[D].上海:復(fù)旦大學(xué),2011.
[3] 王慶波.云計(jì)算寶典技術(shù)與實(shí)踐[M].北京:電子工業(yè)出版社,2011:89?90.
[4] 楊梅,李宏波.淺談云計(jì)算在企業(yè)IT架構(gòu)的應(yīng)用[J].科技風(fēng),2012(11):90.
[5] 李知杰,趙健飛.OpenStack 開源云計(jì)算平臺[J].軟件導(dǎo)刊,2012,11(12):10?11.
[6] 周婧.基于云服務(wù)平臺的應(yīng)用軟件商店開發(fā)者社區(qū)研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué),2012.
[7] WU J Y, FU J Q, PING L D. Study on the P2P cloud storage system [J]. Acta electronica sinica, 2011, 39(5): 1100?1107.
[8] 李瑛,胡新煒.云計(jì)算關(guān)鍵技術(shù)分析研究[J].現(xiàn)代電子技術(shù),2012,35(14):65?67.