王竹霞
(西安郵電大學(xué) 通信與信息工程學(xué)院,陜西 西安 710061)
隨著通信行業(yè)的迅猛發(fā)展,2014年移動(dòng)電話用戶總數(shù)達(dá)到12.86億,2015年4G用戶數(shù)超過(guò)1億。伴隨著用戶數(shù)的增加,各大運(yùn)營(yíng)商加快了移動(dòng)通信網(wǎng)絡(luò)的建設(shè)和優(yōu)化,僅2014年新建基站98.8萬(wàn)個(gè),基站總數(shù)達(dá)到339.7萬(wàn)個(gè)。面對(duì)數(shù)量如此龐大的基站,通信運(yùn)營(yíng)商在基站管理過(guò)程中面臨著過(guò)程復(fù)雜、基站數(shù)據(jù)繁多和監(jiān)管責(zé)任界定困難等問(wèn)題,這些問(wèn)題將會(huì)導(dǎo)致基站管理難度加大、管理效率降低,最終將影響運(yùn)營(yíng)商的發(fā)展。
通信運(yùn)營(yíng)商位于信息化發(fā)展的前沿,在通信工程項(xiàng)目管理平臺(tái)建設(shè)方面取得了顯著的成就。張迪等針對(duì)通信工程項(xiàng)目的管理責(zé)任不清、信息交流不暢、管理體制落后等問(wèn)題,基于B/S系統(tǒng)架構(gòu)模式,以ASP.net為軟件開發(fā)環(huán)境,利用SQL2005作為系統(tǒng)數(shù)據(jù)庫(kù),設(shè)計(jì)和實(shí)現(xiàn)了通信工程項(xiàng)目管理信息系統(tǒng)[1]。華豹等基于項(xiàng)目流的全過(guò)程,利用流行的IT技術(shù)J2EE、Linux和XML開發(fā)完成了通信工程項(xiàng)目管理系統(tǒng),該系統(tǒng)能有效地減少工作人員工作量,提高工作效率[2]。陳中祥等分析了通信工程項(xiàng)目進(jìn)度管理的基本內(nèi)容和一般步驟,給出了基于GIS的工程進(jìn)度管理系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)方法,該系統(tǒng)具有強(qiáng)大的空間可視化功能,能對(duì)通信工程項(xiàng)目的進(jìn)度情況進(jìn)行高效的管控和調(diào)整[3]。針對(duì)通信企業(yè)在通信工程項(xiàng)目管理中存在的流程復(fù)雜、歷史數(shù)據(jù)多、時(shí)間跨度大和管理效率低等問(wèn)題,蘭勇超以J2EE作為系統(tǒng)的開發(fā)技術(shù)[4-5],利用MVC模式進(jìn)行系統(tǒng)架構(gòu)設(shè)計(jì),開發(fā)的通信工程項(xiàng)目管理系統(tǒng)能有效地管理企業(yè)的資源,簡(jiǎn)化業(yè)務(wù)流程,提高了業(yè)務(wù)處理效率,系統(tǒng)的財(cái)務(wù)報(bào)表生成功能,提高工程項(xiàng)目管理中財(cái)務(wù)統(tǒng)計(jì)的效率和準(zhǔn)確性。在分析通信工程行業(yè)的特點(diǎn)和規(guī)律的基礎(chǔ)上,給出了通信工程項(xiàng)目全生命周期的概念,研究了通信工程項(xiàng)目全生命周期中各階段的流程和任務(wù),為通信工程項(xiàng)目全生命周期的管理提供了對(duì)策和建議[6]。基于基站全生命周期管理思想,研究了基于B/S模式的基站全生命周期管理平臺(tái)關(guān)鍵技術(shù),采用Java EE平臺(tái)設(shè)計(jì)并開發(fā)了管理平臺(tái)。
20世紀(jì)80年代中葉,美國(guó)國(guó)防部提出了一項(xiàng)名叫計(jì)算機(jī)輔助后勤支援(CALS)戰(zhàn)略性計(jì)劃,開啟了產(chǎn)品全生命周期管理研究的征程。產(chǎn)品全生命周期管理(PLM)作為一種先進(jìn)的企業(yè)管理理念,是從產(chǎn)品的生產(chǎn)開始,直到產(chǎn)品的報(bào)廢整個(gè)過(guò)程加以管理。全生命周期管理理念有助于對(duì)過(guò)程中的各個(gè)環(huán)節(jié)加以監(jiān)控,也有利于對(duì)整個(gè)過(guò)程進(jìn)行管控。
隨著計(jì)算機(jī)技術(shù)應(yīng)用的深入,通過(guò)設(shè)計(jì)開發(fā)產(chǎn)品全生命周期管理系統(tǒng)(PLMS)能使企業(yè)有效地實(shí)施PLM理念,提升產(chǎn)品管理的效率和信息化水平。沈建新等研究了基于STEP標(biāo)準(zhǔn)的產(chǎn)品全生命周期管理系統(tǒng)框架,該系統(tǒng)采用四層的體系結(jié)構(gòu)[7],由CORBA技術(shù)和Web技術(shù)加以實(shí)現(xiàn)。另外,許承東等基于J2EE框架,研究了PLMS的關(guān)鍵技術(shù)[8],提出了具有六層的體系結(jié)構(gòu),在該系統(tǒng)的實(shí)現(xiàn)方面,PLMS的關(guān)鍵技術(shù)可以由CORBA技術(shù)和DCOM技術(shù)實(shí)現(xiàn)。
基站全生命周期[9-11]是指基站從需求分析、規(guī)劃設(shè)計(jì)、建設(shè)、運(yùn)行、維護(hù)和優(yōu)化的整個(gè)過(guò)程。通常情況下,基站全生命周期管理(base station life cycle management,BSLCM)包括基站建設(shè)管理、基站運(yùn)行管理、基站維護(hù)管理和基站優(yōu)化管理等?;镜慕ㄔO(shè)管理主要是指基站建設(shè)前期的對(duì)設(shè)計(jì)、規(guī)劃的管理,基站的運(yùn)行管理是指建設(shè)過(guò)程中的項(xiàng)目管理、合同管理與材料管理,基站維護(hù)管理主要是指對(duì)基站實(shí)施過(guò)程參與人員和遺留問(wèn)題的管理,基站優(yōu)化管理主要是指依據(jù)基站項(xiàng)目實(shí)施過(guò)程中的統(tǒng)計(jì)數(shù)據(jù)提醒或調(diào)整項(xiàng)目的實(shí)施過(guò)程。
平臺(tái)的開發(fā)設(shè)計(jì)以基站全生命管理為主線,采用基站管理的多視角多層次業(yè)務(wù)模型,達(dá)到動(dòng)態(tài)擴(kuò)展為目標(biāo)進(jìn)行平臺(tái)的設(shè)計(jì)開發(fā)。該平臺(tái)的設(shè)計(jì)目標(biāo)是:
(1)以基站全生命周期管理為業(yè)務(wù)目標(biāo)。
該平臺(tái)以實(shí)現(xiàn)基站從需求分析、規(guī)劃設(shè)計(jì)、建設(shè)、運(yùn)行、維護(hù)和優(yōu)化的生命周期的管理為目標(biāo)。具體能實(shí)現(xiàn)基站全生命周期各環(huán)節(jié)的管理和控制,實(shí)現(xiàn)基站建設(shè)的流程監(jiān)控,實(shí)現(xiàn)基站全生命周期中數(shù)據(jù)的共享,實(shí)現(xiàn)全生命周期各階段業(yè)務(wù)管理。
(2)采用多視角多層次的業(yè)務(wù)模型。
在基站全生命周期管理過(guò)程中,設(shè)計(jì)的人員很多,為了將基站管理過(guò)程中的所有參與者納入系統(tǒng)的管理范圍,設(shè)計(jì)時(shí)采用多視角多層次業(yè)務(wù)模型,有助于相關(guān)人員明確業(yè)務(wù)界限。
(3)采用標(biāo)準(zhǔn)套件和個(gè)性化定制開發(fā)模式,使平臺(tái)有良好的擴(kuò)展性。
為了滿足客戶的需求,基站全生命周期管理平臺(tái)采取以標(biāo)準(zhǔn)套件+個(gè)性化定制的開發(fā)模式。采用動(dòng)態(tài)擴(kuò)展平臺(tái),將二次開發(fā)和獨(dú)立定制開發(fā)應(yīng)用相隔離,以實(shí)現(xiàn)快速個(gè)性化定制開發(fā),提高二次開發(fā)的效率,使平臺(tái)具有良好的擴(kuò)展性能。
通過(guò)對(duì)平臺(tái)需求的分析,對(duì)用戶的需求進(jìn)行歸納整合,基站全生命周期管理平臺(tái)由我的待辦、項(xiàng)目管理、統(tǒng)計(jì)分析、合同管理、材料管理、遺留問(wèn)題和系統(tǒng)后臺(tái)七個(gè)模塊構(gòu)成,平臺(tái)的總體功能架構(gòu)如圖1所示。
圖1 基站全生命周期管理平臺(tái)總體功能架構(gòu)
我的待辦模塊由我的待辦、我的參與、我的開啟子模塊構(gòu)成。項(xiàng)目管理模塊由項(xiàng)目管理和基站管理子模塊構(gòu)成。項(xiàng)目管理子模塊又包括項(xiàng)目列表、新建項(xiàng)目、轉(zhuǎn)計(jì)劃內(nèi)和項(xiàng)目維護(hù)模塊,基站管理子模塊又包括基站查詢、新建基站和基站維護(hù)模塊。統(tǒng)計(jì)分析模塊由基站數(shù)量統(tǒng)計(jì)、基站造價(jià)統(tǒng)計(jì)、承接單位、偏離度查詢和超期天數(shù)查詢子模塊構(gòu)成。合同管理模塊由合同管理、訂單合同管理和租賃協(xié)議管理子模塊構(gòu)成。合同管理子模塊又包括合同查詢、合同維護(hù)、合同付款、合同審計(jì)和合同錄入模塊,訂單合同管理子模塊又包括土建訂單查詢、外電訂單查詢、土建第三次付款、外電第三次付款、土建合同錄入、外電合同錄入、土建合同維護(hù)和外電合同維護(hù)模塊,租賃協(xié)議管理子模塊又包括租賃協(xié)議查詢和租賃協(xié)議付款模塊。材料管理模塊由材料領(lǐng)用、材料使用、材料歸還、材料平衡、材料結(jié)算、清帳查詢、材料維護(hù)和材料入庫(kù)子模塊構(gòu)成。系統(tǒng)后臺(tái)模塊由組織機(jī)構(gòu)、權(quán)限管理、流程管理子模塊構(gòu)成。組織機(jī)構(gòu)子模塊又包括部門管理、職位管理、職位類型、員工查詢和員工維護(hù)模塊,權(quán)限管理子模塊又包括角色管理和權(quán)限分配模塊,流程管理子模塊又包括流程設(shè)計(jì)和流程監(jiān)控模塊。
隨著Internet技術(shù)的快速發(fā)展,B/S模式成為Web應(yīng)用中的架構(gòu)模式,該模式實(shí)現(xiàn)了一次性到位的開發(fā),能達(dá)到不同的人員、在不同的地方、以不同的連接方式對(duì)公共數(shù)據(jù)庫(kù)訪問(wèn)和操作的目的。因此,基于B/S模式的平臺(tái)有助于實(shí)現(xiàn)基站全生命周期的管理。
在基站管理過(guò)程中,數(shù)據(jù)比較龐大,而SQL Server[12]是一個(gè)全面的關(guān)系數(shù)據(jù)庫(kù)管理平臺(tái),具有應(yīng)用方便、伸縮性強(qiáng)及集成化程度高的優(yōu)勢(shì)。它集成了商業(yè)智能工具為用戶提供企業(yè)級(jí)的數(shù)據(jù)管理服務(wù),可以對(duì)任何數(shù)據(jù)進(jìn)行組織管理,具有可信任、高效及智能化的特點(diǎn)。因此,在平臺(tái)數(shù)據(jù)庫(kù)中采用SQL Server進(jìn)行開發(fā)設(shè)計(jì)。為了使基于B/S模式的基站全生命周期管理平臺(tái)獨(dú)立于Web服務(wù)器軟件,Internet應(yīng)用程序更小、更快、更友好,平臺(tái)的開發(fā)采用創(chuàng)建交互式動(dòng)態(tài)網(wǎng)頁(yè)的開發(fā)技術(shù)(asynchronous Javascript and XML,Ajax)。JavaScript的對(duì)象XmlHttpRequest是Ajax的核心[13],它支持異步請(qǐng)求,通過(guò)JavaScript向服務(wù)器提出請(qǐng)求并處理響應(yīng),但它不會(huì)阻塞用戶。通過(guò)XmlHttpRequest,Ajax在瀏覽器不重新加載頁(yè)面的情況下,實(shí)現(xiàn)與Web服務(wù)器的數(shù)據(jù)交換。Ajax在瀏覽器與Web服務(wù)器之間使用異步數(shù)據(jù)傳輸方式,這樣就可使網(wǎng)頁(yè)從服務(wù)器請(qǐng)求少量的信息,而不是整個(gè)頁(yè)面。在平臺(tái)開發(fā)過(guò)程中,采用輕量級(jí)的Java開發(fā)框架Spring,Spring采用分層架構(gòu)的形式。在Java語(yǔ)言下,采用Hibernate對(duì)象關(guān)系映射框架,以建立Java類與基于SQL的數(shù)據(jù)庫(kù)表的映射關(guān)系,并具有獲取數(shù)據(jù)和查詢數(shù)據(jù)的功能,使得Java軟件開發(fā)人員能隨心所欲地利用對(duì)象編程思想對(duì)數(shù)據(jù)庫(kù)加以操縱[14]。
為了實(shí)現(xiàn)平臺(tái)對(duì)基站管理各環(huán)節(jié)和整個(gè)過(guò)程的管理與控制,在流程開發(fā)方面采用工作流技術(shù),依據(jù)WFMC發(fā)布的工作流系統(tǒng)模型,開發(fā)設(shè)計(jì)適合基站全生命周期管理的工作流引擎,基站全生命周期管理平臺(tái)的技術(shù)架構(gòu)如圖2所示。
圖2 基站全生命周期管理平臺(tái)的技術(shù)架構(gòu)
在基站全生命周期管理平臺(tái)開發(fā)技術(shù)方面,以基站全生命周期管理的業(yè)務(wù)流程為主線,基于工作流引擎技術(shù)實(shí)現(xiàn)基站管理業(yè)務(wù)過(guò)程的自動(dòng)化和業(yè)務(wù)過(guò)程的重組[15]。工作流技術(shù)必須具備3個(gè)階段:基站管理業(yè)務(wù)流程的確定通過(guò)映射來(lái)實(shí)現(xiàn),業(yè)務(wù)流程的生成通過(guò)建模來(lái)實(shí)現(xiàn),業(yè)務(wù)流程的跟蹤和監(jiān)控則通過(guò)管理來(lái)實(shí)現(xiàn)?;救芷诠芾砥脚_(tái)工作流運(yùn)行環(huán)境由工作流客戶端與工作流監(jiān)控工具、工作流引擎接口和工作流建模及模型管理系統(tǒng)等幾部分組成。
基站全生命周期管理平臺(tái)是基于Java EE開發(fā)設(shè)計(jì)的輕量級(jí)工作流引擎[16]。平臺(tái)的業(yè)務(wù)層實(shí)現(xiàn)基于B/S模式,平臺(tái)的表示層則基于Spring框架,而業(yè)務(wù)數(shù)據(jù)的訪問(wèn)基于Hibernate框架。
2.4.1 詳細(xì)設(shè)計(jì)
下面以項(xiàng)目管理模塊為例說(shuō)明詳細(xì)設(shè)計(jì)?;救芷诠芾砥脚_(tái)的項(xiàng)目管理模塊由項(xiàng)目管理和基站管理子模塊構(gòu)成。功能結(jié)構(gòu)如圖3所示。
圖3 項(xiàng)目管理功能結(jié)構(gòu)
項(xiàng)目管理子模塊包括項(xiàng)目列表、新建項(xiàng)目、轉(zhuǎn)計(jì)劃內(nèi)和項(xiàng)目維護(hù)模塊。項(xiàng)目列表用于查看已有項(xiàng)目,可以根據(jù)項(xiàng)目編號(hào)、項(xiàng)目名稱、立項(xiàng)年份、項(xiàng)目類型、項(xiàng)目經(jīng)理和專業(yè)歸屬等關(guān)鍵字進(jìn)行查詢。新建項(xiàng)目用于新建項(xiàng)目詳細(xì)信息和相關(guān)資料的填寫錄入,支持新建項(xiàng)目相關(guān)文件的上傳。轉(zhuǎn)計(jì)劃內(nèi)可通過(guò)添加單項(xiàng)選項(xiàng)將已有的單項(xiàng)項(xiàng)目加入到某個(gè)大項(xiàng)項(xiàng)目當(dāng)中,也可對(duì)某個(gè)項(xiàng)目的明細(xì)資料及其單項(xiàng)明細(xì)資料進(jìn)行查看。項(xiàng)目維護(hù)支持對(duì)大項(xiàng)項(xiàng)目信息的查看、修改、CAPEX更新和刪除等操作。
基站管理子模塊又包括基站查詢、新建基站和基站維護(hù)模塊,基站查詢可以根據(jù)基站編號(hào)、基站名稱、歸屬地和區(qū)域項(xiàng)目經(jīng)理等關(guān)鍵字進(jìn)行查詢,并對(duì)某個(gè)基站的明細(xì)信息進(jìn)行查詢。新建基站用于新建基站信息的錄入和基站建設(shè)流程的規(guī)劃,支持流程查看以跟蹤基站建設(shè)進(jìn)度?;揪S護(hù)用于對(duì)基站信息做相應(yīng)的維護(hù),支持基站明細(xì)信息的查看、修改和刪除等操作。
2.4.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
在數(shù)據(jù)庫(kù)設(shè)計(jì)方面,首先建立名為unicomdb的數(shù)據(jù)庫(kù),在管理平臺(tái)的數(shù)據(jù)庫(kù)中設(shè)計(jì)了基站信息表a_m_bstation_info、項(xiàng)目信息表a_m_project_info等。下面給出項(xiàng)目信息表和基站信息表的字段信息,項(xiàng)目信息表(部分)見(jiàn)表1,基站信息表(部分)見(jiàn)表2。
表1 項(xiàng)目信息表(部分)
表2 基站信息表(部分)
2.4.3 平臺(tái)實(shí)現(xiàn)
項(xiàng)目維護(hù)支持對(duì)大項(xiàng)項(xiàng)目信息的查看、修改、CAPEX更新和刪除等操作。核心編碼如下:
package com.xa.am.project;
public class ProjectAction extends BaseAction {
@RequestMapping(value="/project/modify.shtml",method=
{RequestMethod.GET,RequestMethod.POST})
…
@RequestMapping(value="/project/modifyProject.shtml",
method=RequestMethod.GET)
…
@RequestMapping(value="/project/modifyProject.shtml",method=RequestMethod.POST)
public String saveModifyProject(HttpServletRequest request,POAMProjectInfo projectInfo){
…
}
@RequestMapping(value="/project/capexUpdate.shtml",method=RequestMethod.GET)
public String setCapexUpdate(String id,Model model){
this.projectService.setCapexUpdate(id,model);
return this.forward("capexUpdate.html");
}
@RequestMapping(value="/project/capexUpdate.shtml",method=RequestMethod.POST)
public String saveCapexUpdate(String id,POAMProjectInfoprojectInfo){
this.projectService.saveCapexUpdate(id,projectInfo);
return this.redirect("/project/modify.shtml");
}
@RequestMapping(value="/project/deleteProject.shtml",method=
{RequestMethod.GET,RequestMethod.POST})
public String deleteProject(String id) {
this.projectService.deleteProject(id);
return this.redirect("/project/modify.shtml");
}
基站維護(hù)用于對(duì)基站信息做相應(yīng)的維護(hù),支持基站明細(xì)信息的查看、修改和刪除操作。
核心編碼如下:
package com.xa.am.station;
@Controller
public class StationAction extends BaseAction{
@RequestMapping(value="/bstation/modifyStation.shtml", method=RequestMethod.GET)
public String modifyStationGet(String id,Model model) {
this.stationService.modifyStation(id,model);
return this.forward("modifyStation.html");
}
@RequestMapping(value="/bstation/modifyStation.shtml", method=RequestMethod.POST)
public String modifyStationGet(String id,POAMBstationInfo bstationInfo,POAMLLatitudeInfo latitudeInfo) {
this.stationService.modifyStationUpdate(id,bstationInfo,latitudeInfo);
return this.redirect("/bstation/modify.shtml");
}
@RequestMapping(value="/bstation/delete.shtml", method=
{RequestMethod.GET,RequestMethod.POST})
public String deleteStationGet(String id) {
this.stationService.delete(id);
return this.redirect("/bstation/modify.shtml");
}
基站全生命周期管理平臺(tái)開發(fā)完成后,對(duì)平臺(tái)的正確性、安全性、完整性和實(shí)用性進(jìn)行測(cè)試和驗(yàn)證。在對(duì)基站全生命周期管理平臺(tái)測(cè)試時(shí),采取按開發(fā)流程進(jìn)行平臺(tái)測(cè)試的方法,按照單元測(cè)試、模塊測(cè)試和集成測(cè)試的過(guò)程對(duì)平臺(tái)加以測(cè)試。在每個(gè)單元設(shè)計(jì)開發(fā)完成后,進(jìn)行了單元測(cè)試,及時(shí)檢查各個(gè)功能單元是否正確完成了規(guī)定的功能。以合同錄入單元測(cè)試為例,重點(diǎn)測(cè)試了數(shù)據(jù)錄入是否正確,合同附件能否上傳等等。模塊測(cè)試將經(jīng)過(guò)測(cè)試的每個(gè)功能單元整合在一起構(gòu)成不同的功能模塊,檢查功能模塊內(nèi)是否能正確完成規(guī)定的功能,信息交互是否正常。集成測(cè)試是對(duì)平臺(tái)整體性能的測(cè)試,重點(diǎn)測(cè)試各模塊之間的接口是否正常,這對(duì)平臺(tái)的兼容性起到了關(guān)鍵的作用。在平臺(tái)驗(yàn)證時(shí),為了確保驗(yàn)證的全面性,在重點(diǎn)進(jìn)行聯(lián)網(wǎng)運(yùn)行測(cè)試的基礎(chǔ)上,也進(jìn)行了大量的單機(jī)運(yùn)行測(cè)試,以及時(shí)發(fā)現(xiàn)問(wèn)題并加以處理。結(jié)合平臺(tái)驗(yàn)證和試運(yùn)行的情況可以看出,基站全生命周期管理平臺(tái)提供的功能能滿足客戶需求,平臺(tái)安全性、完整性較好,平臺(tái)的可擴(kuò)展性較高。當(dāng)然平臺(tái)也有一定的不足,比如有些功能模塊存在重疊現(xiàn)象,平臺(tái)在操作性上還有待完善等等。
針對(duì)基站的管理水平和信息化程度不高,基站管理過(guò)程中仍然面臨著過(guò)程復(fù)雜、數(shù)據(jù)繁多和責(zé)任界定困難等問(wèn)題,研究了能對(duì)基站管理進(jìn)行環(huán)節(jié)管控和過(guò)程監(jiān)控,可擴(kuò)展性強(qiáng)、安全性高的基站全生命周期管理平臺(tái)。首先研究了基站全生命管理過(guò)程,進(jìn)行了平臺(tái)需求分析。其次對(duì)基站全生命管理平臺(tái)進(jìn)行了功能設(shè)計(jì)、技術(shù)設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)。在此基礎(chǔ)上,研究了基站全生命管理平臺(tái)的關(guān)鍵技術(shù),采用Ajax技術(shù)、Spring框架、Hibernate框架和SQL Server技術(shù),在開發(fā)模式上采用基礎(chǔ)服務(wù)與個(gè)性化定制服務(wù)分離的模式,在技術(shù)架構(gòu)中采用工作流系統(tǒng)建模設(shè)計(jì)流程的工作流引擎,實(shí)現(xiàn)了基于B/S模式的基站全生命周期管理Web平臺(tái)。從測(cè)試和試運(yùn)行的情況來(lái)看,該平臺(tái)達(dá)到了設(shè)計(jì)的目標(biāo)。