摘 要: 針對建筑項目管理的常見問題,借助當前流行的云計算技術解決,具有重大的現(xiàn)實意義。該系統(tǒng)采用多租戶的設計模式,建筑企業(yè)通過注冊、租用管理系統(tǒng)搭建自己獨立的建筑項目管理系統(tǒng),在新建工程項目開始時避免再次購買項目管理軟件。同時,系統(tǒng)采用Openstack云平臺提供基礎設施即服務,管理員可以根據(jù)租戶的數(shù)量變化彈性分配基礎設施,可以將投入的基礎設施最大程度的利用,避免傳統(tǒng)一次性硬件投入造成的太多浪費,太少不夠用的問題。項目基于目前流行的Web應用程序開源集成框架SSH進行開發(fā),利用該框架構建靈活、易于擴展的特性,能夠適應項目未來的需求變化,也有利于項目的后期維護。
關鍵詞: 云計算; Openstack; 建筑項目管理系統(tǒng); 多租戶; SSH框架
中圖分類號: TN911?34; TM417 文獻標識碼: 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è)都爭相使用云計算技術以達到自己的產業(yè)優(yōu)勢,也逐漸出現(xiàn)了基于云平臺的各種應用。但針對建筑項目的云計算應用卻很少。建筑項目管理軟件能夠為建筑業(yè)自身的專業(yè)化需求提供專業(yè)化的管理服務,以達到提高管理信息化水平、節(jié)約管理成本、減少資源浪費、提高生產效率的目的,通過利用云計算技術人們可以租用遠程計算資源,企業(yè)再也不用為了購買硬件、構建數(shù)據(jù)中心做大量的前期投入,也不用為軟件安裝、系統(tǒng)維護投入人力、物力[1]。這種計算模式是一種創(chuàng)新,對于無論多大的計算能力和各種各樣的信息服務用戶都可通過互聯(lián)網獲得;同時它也是對商業(yè)模式的一種創(chuàng)新,對于計算和服務,用戶可以取用自由、按量付費[2]。
1 系統(tǒng)需求分析
1.1 可行性分析
在經濟方面,項目開發(fā)完成后需要的云平臺有兩臺IBMx3650服務器;開發(fā)使用Eclipse作為IDE,使用TortoiseSVN進行代碼管理,使用Java語言進行開發(fā),所以開發(fā)中基本不存在軟件方面的成本;OpenStack是個開源的項目,部署云平臺時可以充分利用開源優(yōu)勢,免費使用OpenStack項目。在技術方面,基于云計算平臺的建筑項目管理系統(tǒng)的云平臺采用OpenStack開源項目搭建;整個項目開發(fā)采用SSH框架,而SSH在企業(yè)級開發(fā)中的應用已經比較成熟。綜上,從經濟上考慮成本是可以接受的,從技術上考慮,使用的技術比較成熟能夠完成項目開發(fā)[3]。
1.2 功能性需求分析
基于云平臺的建筑項目管理系統(tǒng)面向的是所有參與建筑項目的用戶,做為一個多租戶的系統(tǒng)要保證租戶的數(shù)據(jù)安全,要有很好的數(shù)據(jù)隔離性,項目投入使用后要求項目在軟件上也能夠擴展[4]。
(1) 管理員
具有建筑項目管理系統(tǒng)的最高權限,具體體現(xiàn)在能夠對用戶、企業(yè)、項目進行管理,以及負責整個項目的運維。管理員用戶包括的功能模塊為:首頁管理、系統(tǒng)管理、賬號管理、業(yè)務功能模塊、移動端管理、規(guī)范管理。管理員用例圖如圖1所示。
其中,基于云平臺的建筑項目管理系統(tǒng)首頁經常更新,將本產品的最新消息顯示在頁面上,公告列表要能夠添加、編輯、查找、刪除公告。默認PMC列表的企業(yè)會顯示在頁面上,方便客戶了解現(xiàn)有的PMC合作單位。管理員應該能夠添加、刪除PMC合作單位,當PMC單位較多時要能夠通過公司名稱查詢對應的單位。頁面上顯示的PMC合作單位的順序有時要調整,在PMC列表中管理員要通過上移、下移操作調整PMC合作單位的順序。產品介紹在產品介紹標簽頁中能夠編輯產品介紹信息、更改產品的使用價格,保存編輯內容,確保再次打開首頁能夠看到編輯過的信息。
(2) 甲方用戶
甲方用戶根據(jù)崗位不同對應的權限也會不同,圖2為甲方擁有最高權限崗位的用戶對應的用例。甲方用戶登錄賬號后會進入我的工作門戶頁面,在該頁面能夠顯示我的本周任務、負責項目的概況、接收的資料、共享的資料。報批報建是工程項目所在地的報批報建流程,用戶可以查看工程項目的報批情況[5]。資金管理用來管理各個階段資金的使用情況及資金計劃。進度管理用來查看工程各部分的進度情況。資料管理分為分類管理、我的資料、共享資料三個部分。
(3) PMC用戶
PMC用戶的權限和甲方用戶的權限是基本一樣的,只是PMC不負責項目的報批報建,所以也就沒有報批報建模塊。PMC用戶資金管理分為資金計劃和資金支付,資金計劃模塊管理項目資金的使用計劃并向甲方提出申請,資金支付查看甲方資金的支付情況。PMC負責工程的施工,進度管理是PMC管理的重點,分為進度計劃、本周任務、形象進度、分析匯報。進度計劃用來對整個工程進行計劃,可以編制計劃;本周任務顯示本周的任務;形象進度可以新增、刪除形象進度,并對已有的形象進度進行修改;分析匯報分析整個項目的進展情況,向甲方、協(xié)作方做匯報,以掌握整個項目的進度。PMC用戶用例圖如圖3所示。
(4) 協(xié)作方用戶
協(xié)作方包括進度管理、資料管理、后臺管理三個功能模塊。進度管理模塊協(xié)作方主要負責監(jiān)督工程的進度,并能夠編制進度計劃;資料管理可以查看工程相關的資料文檔[6]。
2 系統(tǒng)設計
系統(tǒng)云平臺是在三臺IBMSystemx3550M4(7914I01)上運行OpenStack云平臺實現(xiàn)的,OpenStack云平臺在IBM服務器上搭建成功后,可以享用云平臺提供的IaaS,本系統(tǒng)要用到的四類服務器都運行在OpenStack云平臺提供的云主機上,租戶訪問系統(tǒng)時首先會通過Nginx代理服務器,在系統(tǒng)中使用Nginx代理服務器做負載均衡。系統(tǒng)使用Squid作為緩存服務器,Squid是一個緩存internet數(shù)據(jù)的一個軟件,它接收用戶的下載申請,并自動處理下載的數(shù)據(jù),Web 服務器使用 Jboss。
系統(tǒng)的軟件架構分層包括實體層、DAO層、服務層、Web層。首先是實體層,根據(jù)系統(tǒng)各模塊需要的表編寫實體并通過hibernate注解創(chuàng)建持久對象,由于實體層是在系統(tǒng)開始創(chuàng)建的且不需要經常變化,將實體層打成jar包,系統(tǒng)開發(fā)過程中只需引用包中的持久化對象。其次是DAO層對數(shù)據(jù)庫表的操作基本上是增、刪、改、查,將對數(shù)據(jù)庫表各表的操作抽象出來,通過一個CommonDao類實現(xiàn)對底層數(shù)據(jù)庫的訪問。第三層是服務層,服務層通過對DAO的操作實現(xiàn)系統(tǒng)業(yè)務邏輯[7]。第四層是Web層,后臺通過編寫Action類的方法處理頁面和業(yè)務的交互,并對數(shù)據(jù)進行必要的處理;velocity頁面對業(yè)務數(shù)據(jù)進行呈現(xiàn),并對用戶的非法操作進行適當?shù)目刂芠8]。
3 系統(tǒng)詳細設計及實現(xiàn)
3.1 多租戶系統(tǒng)登錄
作為一個多租戶系統(tǒng),所有的用戶都從首頁的登錄窗口進入系統(tǒng),為了保證用戶的數(shù)據(jù)安全,要在后臺對用戶進行過濾,以區(qū)分不同用戶的權限。
系統(tǒng)首頁將一個友好的界面呈現(xiàn)給用戶,對該系統(tǒng)進行介紹,發(fā)布公告等。最重要的功能性作用是提供用戶登錄系統(tǒng)的接口,用戶點擊首頁左上角的登錄按鈕彈出登錄框,輸入賬號、密碼即可登錄系統(tǒng),如若忘記密碼還可以通過驗證找回密碼。在首頁登錄時首先判斷用戶是否是管理員用戶,如果是管理員就會進入廣聯(lián)達運營平臺,在該頁面管理員負責整個系統(tǒng)的運行,能夠對使用建筑項目管理系統(tǒng)的企業(yè)、項目、賬號、移動端的產品進行管理。當非管理員用戶登錄時就會根據(jù)用戶管理的業(yè)務進行判斷,如果用戶沒有管理項目就會根據(jù)是否是企業(yè)管理員直接進入普通用戶管理頁面和企業(yè)管理員管理頁面。當用戶有管轄的項目時,如果只有一個管理的項目就會進入對應項目的崗位門戶,如果有多個管理的項目就會進入工程項目選擇頁面。
3.2 管理員
管理員具有對整個系統(tǒng)最高權限的操作,負責管理的功能模塊也最多,考慮篇幅問題,下面選擇幾個功能模塊展示管理員頁面的實現(xiàn)。
(1) 企業(yè)管理
管理員登錄后界面如圖4所示。頁面頭部統(tǒng)一顯示歡迎信息和glodoncloud圖標,左側部分為功能欄,點擊左側功能欄選項,右側顯示對應的功能模塊,登錄后默認顯示企業(yè)管理模塊。在切換功能模塊過程中頁面頭部和左側保持不變只有右側功能模塊發(fā)生變化。
(2) 項目管理
管理員通過項目管理模塊進行項目管理,首先管理員可以通過查詢找到自己想要管理的項目,也可新增項目;其次對要管理的項目,管理員可以分配用戶對項目的權限、崗位管理、協(xié)作企業(yè);最后管理員可以編輯、刪除項目。
(3) 公告管理
公告管理用于編輯、管理、顯示在首頁的公告,首先管理員可以通過公告標題、發(fā)布時間查詢要管理的公告,還可以新添加公告;其次管理員可以對公告進行編輯、批量刪除選定的公告。公告管理界面如圖5所示。
3.3 甲方用戶
(1) 我的工作門戶
當普通用戶第一次登陸系統(tǒng)時,無論是甲方用戶、PMC用戶,第一次登陸后都會進入如圖6所示的我的項目頁面,以后再登陸時就會默認進入用戶上次管理的項目頁面。在我的項目頁面分兩列顯示我的項目,主負責項目列顯示甲方、PMC角色管理的項目,協(xié)作項目顯示以協(xié)作方角色管理的項目。當用戶點擊管理的項目時就會進入對應的項目管理頁面。甲方可最多擁有的功能模塊有:我的工作門戶、報批報建、資金管理、進度管理、資料管理、后臺管理。我的工作門戶顯示我的本周任務、項目概況、接收資料、共享資料,讓用戶進入項目后能夠直接了解自己的工作、項目進行情況及要查看的資料。
(2) 報批報建
報批報建是甲方用戶獨有的功能模塊,在該模塊能夠顯示工程項目所在地區(qū)的報批報建流程圖,當點擊流程圖中的節(jié)點時能夠對該審批步驟進行編輯,當該節(jié)點完成時節(jié)點顯示為藍色,當節(jié)點工作正在進行中時顯示為紅色,當節(jié)點工作還未進行時顯示為白色,灰色的節(jié)點不能進行操作。
(3) 資金管理
甲方的資金管理頁面只有資金計劃頁面,在該頁面甲方對PMC用戶提交的資金計劃進行審批,同意資金計劃點擊確認本月計劃,否則取消確認。
(4) 資料管理
資料管理用來管理自己的工程資料,還可通過共享、分發(fā)等方式傳遞給他人查看以實現(xiàn)項目相關人員間的資料信息的傳遞。資料管理有三個標簽頁,分類管理頁對分類進行添加、刪除、編輯;我的資料頁顯示已發(fā)布的文檔、已接收的文檔、我的文檔,可對文件進行下載、查看、分發(fā)、共享等操作;在共享資料頁面,如果文件是本人共享的,可以對文件執(zhí)行下載、查看、更新、刪除操作,如果不是本人共享的文件則只能下載、查看。
(5) 后臺管理
如果用戶是企業(yè)管理員,后臺管理頁面有6個頁簽:在個人資料頁簽,顯示、修改個人基本資料,更改密碼以及設置密保問題;在企業(yè)基本信息頁簽,顯示修改企業(yè)的基本信息、聯(lián)系人信息等;在賬號添加頁簽,為本企業(yè)添加用戶賬號;在賬號維護頁簽,維護本企業(yè)的賬號分配,可以編輯、刪除賬號;在項目維護頁簽,對項目執(zhí)行分配權限,崗位管理,選擇協(xié)作企業(yè),編輯項目;在協(xié)作項目頁簽,對協(xié)作的項目進行管理。如果用戶不是企業(yè)管理員則只有個人資料頁簽。
3.4 PMC用戶
PMC用戶的功能模塊除了沒有報批報建,其他功能模塊和甲方功能模塊基本項目相同,在此不再說明。但是PMC用戶的進度管理模塊有四個標簽頁,在進度計劃標簽頁,可以查看、編制進度計劃;在本周任務頁簽,可以查看本周的任務情況,包括本周共有任務、正常執(zhí)行任務、等待執(zhí)行任務、可能延誤任務、按時完成任務、已延誤任務;在形象進度標簽頁,可以新增、刪除、編輯形象,在這部分新增的形象進度會顯示在甲方和PMC的首頁以及甲方的進度管理模塊。
協(xié)作方用戶的功能列只有進度管理、資料管理、后臺管理三個模塊。其中資料管理、后臺管理模塊和甲方、PMC用戶的功能完全相同。進度管理模塊只有進度計劃、本周任務兩個標簽頁,具有和PMC用戶項相同的功能。
4 系統(tǒng)測試
4.1 功能測試
功能測試主要驗證系統(tǒng)是否能夠達到系統(tǒng)功能性需求分析中的要求。本節(jié)功能測試選擇黑盒測試方法進行,測試內容包括登錄、管理員功能模塊、甲方用戶功能模塊、PMC用戶功能模塊、協(xié)作方用戶的功能模塊。由于系統(tǒng)功能多,模塊功能也多,選取管理員的項目管理模塊、普通用戶的資料管理模塊進行測試說明。
管理員的功能模塊最多,選取管理員用戶的項目管理模塊進行測試說明。項目管理測試部分試用例如表1所示,經測試項目管理模塊的各功能能夠與需求分析相符合,達到系統(tǒng)目標。
甲方用戶、PMC用戶、協(xié)作方用戶的功能模塊非常相似,經測試資料管理模塊和需求分析部分相符,能夠達到系統(tǒng)的功能要求。
4.2 性能測試
測試中使用ApacheJMeter進行壓力測試,由于性能測試依賴服務器的性能和當時的網絡情況,為了保證測試結果的準確可靠,采用多次測量進行數(shù)據(jù)統(tǒng)計。在本次測試中,選擇4個比較重要的具有代表性的頁面進行測試,對這些頁面發(fā)送400次并發(fā)請求,實驗測試數(shù)據(jù)如表2所示。
以上測試數(shù)據(jù)表明,本系統(tǒng)能夠響應高并發(fā)請求,并且平均訪問時間沒有超過5 s,能夠滿足用戶基本的體驗需求。
5 結 論
本文分析了當前國內建筑行業(yè)發(fā)展對建筑項目管理系統(tǒng)的強大需求。根據(jù)實際的建筑項目一般管理模式對系統(tǒng)進行業(yè)務需求分析、可行性分析,并在此基礎上做了系統(tǒng)的總體設計、詳細設計、數(shù)據(jù)庫設計。以SSH框架為基礎結合sitemesh框架、Velocity模板語言、Memcache緩存技術實現(xiàn)了大型的面向多租戶的建筑項目管理系統(tǒng),并通過圖解方式展示了系統(tǒng)的部分主要功能模塊,從展示中可以看出系統(tǒng)是一個強大的、功能完善的項目管理系統(tǒng),同時保證了用戶之間數(shù)據(jù)的安全。
參考文獻
[1] 尹楠,陳操.基于B/S和C/S架構的學生信息管理系統(tǒng)的設計[J].信息工程,2012(7):65?67.
[2] 李欣琪.云計算中虛擬化管理方法研究[D].上海:復旦大學,2011.
[3] 王慶波.云計算寶典技術與實踐[M].北京:電子工業(yè)出版社,2011:89?90.
[4] 楊梅,李宏波.淺談云計算在企業(yè)IT架構的應用[J].科技風,2012(11):90.
[5] 李知杰,趙健飛.OpenStack 開源云計算平臺[J].軟件導刊,2012,11(12):10?11.
[6] 周婧.基于云服務平臺的應用軟件商店開發(fā)者社區(qū)研究與實現(xiàn)[D].成都:電子科技大學,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].現(xiàn)代電子技術,2012,35(14):65?67.