劉 毓, 孟憲光
(西安郵電大學 通信與信息工程學院, 陜西 西安 710121)
基于工作流的基站建設管理系統(tǒng)設計與實現(xiàn)
劉 毓, 孟憲光
(西安郵電大學 通信與信息工程學院, 陜西 西安 710121)
為解決基站建設過程中工作效率低的問題,設計基于工作流的基站建設管理系統(tǒng),該系統(tǒng)使用MySql數(shù)據(jù)管理建立數(shù)據(jù)庫,采用java語言設計工作流引擎類,spring和hibernate框架搭建系統(tǒng)平臺,Tomcat服務器部署系統(tǒng)運行環(huán)境,對基站建設進度進行監(jiān)控和對建設過程中數(shù)據(jù)信息完成統(tǒng)計分析。
工作流;工作流引擎;工作流設計器;工作流管理系統(tǒng)
隨著4G網(wǎng)絡的商用,各大運營商在基站建設方面的投資規(guī)模不斷加大,基站類型也越來越豐富,運營商要做到對每個基站的建設進度進行監(jiān)控的同時,還要對建設過程中的數(shù)據(jù)進行統(tǒng)計分析,因此,增加了工作難度。如今市場已經(jīng)有一些基于工作流的商用管理系統(tǒng)[1-2],例如文獻[1]提出的科研管理系統(tǒng)和文獻[2]提出的鐵路客運站管理系統(tǒng),可以對某些類型的工作流程進行有效監(jiān)控和管理,降低工作復雜度,提高管理效率,但是針對基站建設業(yè)務方面的工作流管理系統(tǒng)仍未開發(fā)。
目前,運營商大多使用OA(Office Automation)系統(tǒng)[3]管理日常工作和對數(shù)據(jù)進行統(tǒng)計分析,由此可以使得各種數(shù)據(jù)文檔實現(xiàn)電子化,從而降低在手工辦公情況下數(shù)據(jù)檢索的難度,但是這種管理系統(tǒng)不能對各個基站建設進度進行有效管理,在數(shù)據(jù)統(tǒng)計方面花費過多的精力以及流程監(jiān)控過程效率低。為解決此問題,設計基于工作流的基站建設管理系統(tǒng)。
該系統(tǒng)整體功能,以基站建設的流程業(yè)務為背景設計,核心部件是工作流引擎,其中工作流引擎類采用JAVA編程語言實現(xiàn)。前臺頁面通過HTML+CSS的方式展示,使用JS(JavaScript)腳本語言實現(xiàn)可視化自定義工作流設計器,后臺數(shù)據(jù)庫采用小型關聯(lián)式數(shù)據(jù)庫管理系統(tǒng)MySql建立,基礎平臺使用JavaEE中的spring和hibernate框架搭建,最后使用Tomcat服務器完成系統(tǒng)的部署。
1.1 基站建設工作流程
對某運營商的業(yè)務需求進行分析,可得到其基站建設的整個工作流程,按順序包括:設計站點錄入、設計院查看設計、土建發(fā)包、租賃意向錄入、鐵塔發(fā)包、項目經(jīng)理審核、簽訂租賃協(xié)議、地勘、土建設計、樁基施工、測樁發(fā)包、拉拔發(fā)包、傳輸發(fā)包、外電發(fā)包、安裝鐵塔、施工完成、驗收、第一次付款、審計、整改、終驗、第二次付款、基站建設完成。在基站建設的過程中每個環(huán)節(jié)以上一個環(huán)節(jié)結束為開始標志,各個發(fā)包環(huán)節(jié)需要其他承接方工作人員參與完成,在系統(tǒng)開啟時在該環(huán)節(jié)需要向各個單位推送相應的任務,使得多個部門之間的工作人員能協(xié)調工作。
1.2 系統(tǒng)整體架構設計
基站建設管理系統(tǒng)整體架構[4-5]如圖1所示。在JAVAEE平臺的基礎上開發(fā),并設計一個輕量級的工作流引擎。在系統(tǒng)的結構上,采用MVC(Model View Controller)[6-7]開發(fā)模式,業(yè)務的實現(xiàn)上,采用B/S(Browser/Server)模式。系統(tǒng)結構的表示層,通過使用FreeMarker技術實現(xiàn),業(yè)務邏輯控制層,通過Spring框架實現(xiàn),數(shù)據(jù)訪問層,通過Hibernate框架實現(xiàn)對底層數(shù)據(jù)的連接訪問。表示層和業(yè)務層,通過DispatcherServlet控制器進行連接,業(yè)務層和數(shù)據(jù)訪問層,通過DAO(Data Access Object)接口連接。DBMS(Database Management System)使用一個開放源碼的小型關聯(lián)式數(shù)據(jù)庫管理系統(tǒng)MySql。
圖1 基于工作流的基站建設管理系統(tǒng)架構圖
1.3 系統(tǒng)整體功能設計
該管理系統(tǒng)采用分層模式,主要功能模塊包括“系統(tǒng)后臺管理”“基站管理”“統(tǒng)計分析管理”“合同管理”“材料管理”以及“我的關注”。圖2是本系統(tǒng)功能結構圖。
(1) 系統(tǒng)后臺管理模塊
系統(tǒng)后臺管理模塊維護整個系統(tǒng)運行所需數(shù)據(jù),可分為若干子模塊。其中,組織機構模塊管理整個系統(tǒng)所需參與的部門及人員數(shù)據(jù);權限管理模塊,將系統(tǒng)的功能按照權限劃分并授予相應的權限,方便參與人員的使用;基礎數(shù)據(jù)管理模塊維護基站建設環(huán)節(jié)中所需的各種數(shù)據(jù);流程設計模塊根據(jù)約定的業(yè)務流程,設計工作流程;流程監(jiān)控模塊對開啟的流程實例的進度進行實時的監(jiān)控、掛起。
(2) 基站管理模塊
基站管理模塊主要用于管理和維護基站建設過程中的數(shù)據(jù),包括新建基站模塊、基站維護模塊和基站查詢模塊。其中,新建基站模塊管理工作流程的開啟;基站維護模塊維護基站建設過程中的相關數(shù)據(jù);基站查詢模塊管理基站查詢的數(shù)據(jù)。
(3) 統(tǒng)計分析管理模塊
統(tǒng)計分析管理模塊提供相關人員按照各種角度統(tǒng)計相關的功能,包括基站統(tǒng)計分析、承接單位統(tǒng)計分析和基站建設超期統(tǒng)計分析。
(4) 合同管理模塊
合同管理模塊提供了基站建設過程中所簽訂的合同信息的錄入、查詢和維護功能。
(5) 材料管理模塊
材料管理模塊提供了基站建設過程中所需材料的信息管理功能,包括材料的錄入、領用歸還和材料平衡。
(6) “我的關注”模塊
“我的關注”模塊提供參與人員查看自己的待辦任務、自己所參與以及開啟的基站信息的功能。
本系統(tǒng)的重點是工作流程控制管理部分,當業(yè)務流程設計好之后,只需相關人員開啟流程 (標志基站建設的開始),之后的各個環(huán)節(jié)就會有相應的工作人員收到待辦任務。各部門的工作人員在用自己的賬號登陸系統(tǒng)后,若看到有自己的待辦任務,就說明此環(huán)節(jié)是本部門處理,且系統(tǒng)會在這一環(huán)節(jié)處理完后自動向下一環(huán)節(jié)的處理人推送相關的待辦任務,減少人為通知操作。在流程監(jiān)控部分,管理人員可實時看到各基站建設過程進度,及時發(fā)現(xiàn)問題,故各部門只需要關注本部門的待辦任務,減少關注流程部分投入時間,提高工作效率。
工作流技術的實現(xiàn)要經(jīng)過3個階段:映射、建模和管理。映射階段實現(xiàn)業(yè)務流程確定;建模階段建立一個業(yè)務流程的組織模型,生成流程定義和實例化流程;管理階段運行并管理各個業(yè)務系統(tǒng)模塊,使工作流系統(tǒng)得到實施和監(jiān)控。針對以上3個階段,本系統(tǒng)要解決的關鍵問題有:可視化流程設計器的設計、工作流引擎的設計,數(shù)據(jù)庫的設計。本文針對所解決的問題給出采用的技術以及實現(xiàn)過程。
2.1 可視化自定義工作流設計器的設計
為方便用戶對流程的自定義、設計和修改,系統(tǒng)采用了一個基于Web[8]的jBPM[9](Java Business Process Management)流程設計器。該流程設計器,采用JS(JavaScript)腳本語言、面向對象的編程方式開發(fā),引用強大的Raphael矢量圖形庫和JQuery框架操作DOM對象,動態(tài)生成包含Div等元素的HTML代碼,最終設計出支持開始、結束、分支、合并、判斷(決策)、任務等元模型的jBPM流程設計器。
圖3是包含以上工作流元模型工作流程的設計過程。在工具集選擇所需的元模型,將其拖拉到工作區(qū),點擊節(jié)點在其屬性框中設置對應的屬性,使用轉換按鈕將這些節(jié)點連接起來,組成一個完整的業(yè)務流程,最后點擊保存按鈕,將所有的配置信息生成符合JPDL(JBoss jBPM Process Definition Language)規(guī)范的流程定義文件。在流程保存時,系統(tǒng)將自定義完成的工作流圖形的樣式、形態(tài)、位置以及各種參數(shù)和變量值,按照事先定義的規(guī)則轉換成相應的數(shù)據(jù),存入流程信息表中。在對工作流進行管理時,系統(tǒng)通過對之前的流程定義文件進行解析,再現(xiàn)已完成的工作流圖形,這樣就實現(xiàn)了對工作流定義的可視化管理。
圖3 工具集及簡單流程
2.2 工作流引擎設計與實現(xiàn)
工作流引擎[10-11]是整個工作流部分的核心部件,主要完成流程定義解析和流程運行控制的功能。具體的設計和實現(xiàn)可分為:流程解析器、流程管理器、流程導航器、活動管理器、任務管理器、應用調用管理器、組織管理器、日志管理器和和時間管理器等模塊。工作流引擎的核心部分,通過流程管理器、活動管理器、流程導航器和任務管理器之間的協(xié)作進行流程的運行控制和狀態(tài)轉換以及任務流轉。
(1) 流程解析器的實現(xiàn)
使用DOM(Document Object Model)解析器解析存儲有流程信息的XML格式的文件,將以 XML 格式表達的流程定義信息轉換為內部 Java 對象,為流程管理器、流程導航器、活動管理器等提供流程定義的引用接口。
(2) 流程管理器的實現(xiàn)
當用戶提出實例化指定流程定義的請求后,流程管理器先根據(jù)解析的流程定義信息判斷請求是否有效,通過驗證后開始實例化操作和開啟流程,并將實例信息在日志中記錄。當開始活動結束后,交由流程導航器進行條件判斷和路由操作,找到后續(xù)活動后,交由活動管理器處理。
(3) 流程導航器的實現(xiàn)
流程導航器提供流程導航,主要包括路由、條件判斷等。根據(jù)當前活動獲得流程定義和活動定義的信息,并通過解析流程定義獲得當前活動的流轉(Transaction)。若Transaction不存在,說明此活動為流程結束活動,通知流程管理器結束該流程;否則判斷Transaction上定義的條件,查找定義條件為真的節(jié)點(node),對node進行控制連接符路由。
(4) 任務管理器的實現(xiàn)
任務管理器主要負責任務項的創(chuàng)建、分配、接受、完成、銷毀等。從流程定義的參與者列表中解析流程執(zhí)行者的信息,通過組織管理器分析執(zhí)行者所關聯(lián)到的用戶,按照指定的分配策略給關聯(lián)用戶生成任務項;當接受任務的用戶無法完成工作,需交由其他人員代理時,任務管理器為代理用戶分配相應的任務項;當任務項完成后,將工作記錄從數(shù)據(jù)庫中移除,并通知相關所屬活動。
圖4是系統(tǒng)工作流引擎核心部分的UML圖。其中引擎類IEngin提供了各種服務的接口;流程實例服務類IProcessInstanceService提供了開啟流程、創(chuàng)建子流程、獲得流程實例和關閉流程實例的方法;貯藏服務類IRepositoryService提供了創(chuàng)建流程、獲得流程定義文件、獲得最新版本流程等方法;實例活動服務類IHistoryQueryService提供了歷史實例查詢、歷史活動查詢等方法;當前活動服務類ITaskService提供了完成當前任務、創(chuàng)建任務查詢、獲得后續(xù)活動、獲得環(huán)節(jié)參與者信息等方法;流程變量服務類型IVariableService提供了設置變量值、獲得變量值等方法。以上及各類通過引擎類的調用實現(xiàn)了不同部件之間的協(xié)調工作。
圖4 工作流引擎核心部分UML圖
2.3 數(shù)據(jù)庫設計
系統(tǒng)數(shù)據(jù)庫[12]中存儲的數(shù)據(jù)主要有流程定義數(shù)據(jù)、流程實例數(shù)據(jù)、組織模型數(shù)據(jù)、歷史日志數(shù)據(jù)等幾類,關鍵數(shù)據(jù)關系如圖5所示。
圖5 數(shù)據(jù)關系圖
對部分數(shù)據(jù)庫表的功能和數(shù)據(jù)項說明如下。
(1) 流程定義表:記錄系統(tǒng)所定義的流程信息,包含流程定義號、流程名、創(chuàng)建時間、創(chuàng)建狀態(tài)、版本號、業(yè)務類型等數(shù)據(jù)項。
(2) 流程信息表:與流程定義表一一對應,保存所定義流程的詳細信息,包含流程定義號、流程詳細信息(符合JPDL規(guī)范的流程定義信息) 等數(shù)據(jù)項。
(3) 流程實例信息表:存儲系統(tǒng)中開啟的所有流程實例信息,包含實例號、實例名稱、流程定義號、執(zhí)行狀態(tài)、創(chuàng)建人、創(chuàng)建時間等數(shù)據(jù)項。
(4) 當前任務信息表:實時更新當前開啟流程所停留的環(huán)節(jié)信息,包含實例號、實例名稱、任務類型、當前環(huán)節(jié)名稱、當前環(huán)節(jié)處理人、執(zhí)行狀態(tài)、任務起止時間等數(shù)據(jù)項。
(5) 流程變量信息表:記錄每個流程開啟時的所有變量值,供流程判斷環(huán)節(jié)進行參考,決定后續(xù)流程的走向。包含變量號、變量值、所在的流程實例號等數(shù)據(jù)項。
(6) 基站信息表:存儲基站建設環(huán)節(jié)的基站信息,包含基站編號、基站名稱、鐵塔類型、負責項目經(jīng)理、各環(huán)節(jié)完成時間等數(shù)據(jù)項。
(7) 材料信息表:記錄材料領用以及歸還時的詳細信息,以供統(tǒng)計環(huán)節(jié)采集。包含材料編號、材料名稱、領用單位、基站編號、使用和歸還時間等數(shù)據(jù)項。
該系統(tǒng)開發(fā)完成后,在交付使用之前,經(jīng)過開發(fā)人員的功能測試以及壓力測試。測試環(huán)境為:服務器使用IBM服務器、操作系統(tǒng)使用Linux系統(tǒng)、Web服務器使用Tomcat,數(shù)據(jù)庫產(chǎn)品使用Mysql5.0,客戶端選用普通PC機,瀏覽器分別使用IE瀏覽器7.0以上版本和Firefox瀏覽器。測試過程中分別測試通過多個用戶并發(fā)執(zhí)行多個流程,進行強度、負載測試,并發(fā)訪問響應時間正常,系統(tǒng)運行穩(wěn)定,對異常能進行適當?shù)氖聞仗幚?,具有較好的可用性和可靠性。
圖6為流程監(jiān)控運行情況,點擊左側的“流程監(jiān)控”,在右側表格中可看到現(xiàn)在所有開啟的基站建設流程的運行情況,包括:基站名稱、申請時間、申請人、停留環(huán)節(jié)、停留時間、現(xiàn)處理人。在操作一列中有:結束、代辦、催辦和查看流程,點擊相應的操作項即可對該流程進行相應的操作。
在對研究工作流技術和某運營商基站建設需求分析的基礎上,設計了基于工作流的基站建設管理系統(tǒng)。設計了基于Web的仿jBPM流程設計器,文中對可視化設計器的實現(xiàn)過程和工作流引擎的實現(xiàn)進行了詳細描述。該系統(tǒng)實際運行過程已經(jīng)得到了各部門工作人員的認可,實踐表明本系統(tǒng)很大程度上提高了各管理人員的工作效率,從而也證明了本系統(tǒng)設計的合理性。本系統(tǒng)以某運營商基站建設為背景,但通過對實際業(yè)務部分的數(shù)據(jù)進行適當?shù)男薷?,即可適用于其他運營商,也可將系統(tǒng)在各大運營商之間推廣,提高各運營在基站建設方面的管理能力。
[1] 孟建良,趙強.基于工作流的科研管理系統(tǒng)的設計與實現(xiàn)[J].電腦知識與技術,2014(20):4730-4731.
[2] 徐春婕,史天運,劉碩研,等.基于SOA和工作流的鐵路客運站管理系統(tǒng)研究[J].計算機工程與設計,2014(2):720-725.
[3] 楊曉波.聯(lián)通業(yè)務營業(yè)自動化系統(tǒng)設計與應用研究[D].成都:電子科技大學,2011:11-14.
[4] 楊麗春.基于J2EE的工作流管理系統(tǒng)的研究[J].中國新通信,2013(22):97-98.
[5] 張亮.基于工作流的工程項目管理系統(tǒng)的設計與實現(xiàn)[D].武漢:華中科技大學,2007:43-50.
[6] 張宇,王映輝,張翔南.基于Spring的MVC框架設計與實現(xiàn)[J].計算機工程,2010(4):59-62.
[7] 岳紹敏,王國春,董亞則,等.基于Spring MVC框架的電商平臺的研究與設計[J].軟件工程師,2014(7):3-6.
[8] 陳彥萍,朱曉戰(zhàn).多階段可用性Web服務組合管理框架[J].西安郵電大學學報,2013,18(2):101-106.
[9] 鄭代峰.基于JBPM的業(yè)務流程系統(tǒng)的研究與實現(xiàn)[D].武漢:武漢理工大學,2009:25-41
[10] 張暉.工作流引擎過程定義的設計與實現(xiàn)[J].電子技術與軟件工程,2014(10):269-271.
[11] 錢鷹,王寸濤,韋慶杰.一種用于工作流引擎的任務預測與分配算法[J].計算機應用與軟件,2014(8):75-78.
[12] 丁智斌,石浩磊.關系數(shù)據(jù)庫設計與規(guī)范化[J].計算機與數(shù)字工程,2005(2):114-116.
[責任編輯:汪湘]
Design and implementation of base station construction management system based on workflow
LIU Yu, MENG Xianguang
(School of Communication and Information Engineering,Xi’an University of Posts and Telecommunications, Xi’an 710121,China)
In order to solve the problem of low efficiency in the working process of the base station construction, a base station construction management system based on workflow is designed in this paper. The system is built by using MySql data management system to establish database, java language to design the workflow engine classes, spring and hibernate framework to build system platform, and tomcat server to deploy environment of the system. This system can monitor the base station construction schedule and make a count on information in the process of construction.
workflow, workflow engine, workflow designer, workflow management system
2014-10-10
工業(yè)和信息化部通信軟科學資助項目(2014R33);陜西省教育廳科學研究計劃資助項目(2013JK1064)
劉毓(1963-),女,教授,博士,從事光通信技術和現(xiàn)代通信網(wǎng)研究。E-mail:749827907@qq.com 孟憲光(1989-),男,碩士研究生,研究方向為現(xiàn)代信號處理及應用。E-mail: 429564140@qq.com
10.13682/j.issn.2095-6533.2015.01.019
TP311.1
A
2095-6533(2015)01-0093-06