前言:尋找寫作靈感?中文期刊網用心挑選的通信工程概預算系統設計研究,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。
0引言
隨著我國社會的經濟發展,為了滿足我國信息通信建設行業的發展要求,工信部頒布了最新的信息通信建設工程預算定額、工程費用定額及工程概預算編制規程,以規范通信建設工程的計價行為。當前,通信業內存在著很多相關的通信工程概預算系統[1],每次工信部在頒布最新定額,都需要重新調整系統以適應最新的定額及計價方式。這無疑增加了系統維護人員的工作量,而且系統的重新改造開發都需要花費大量的人力物力資源。且在當前互聯網高速發展的時代,快速響應快速迭代的需求也越來越高。所以,以往按部就班系統整體改造、開發、測試及部署的方式嚴重影響了系統的迭代能力。除此之外,不同省份與地市對于概預算的需求也有些不一致,一套固定的系統很難滿足全國所有通信行業的需求。綜上兩個問題,使用微服務[2]架構設計的通信工程概預算系統能夠對于突發的變化做出快速應對,通過修改個別服務做到快速迭代,且不需要整體部署,只需對發生改變的服務進行重新部署即可。另外,使用微服務架構[8]可以通過部署多種服務來滿足不同的業務需求。
1需求分析
基于微服務的通信工程概預算系統主要功能需要完成對定額工日、使用材料、設備及機械等信息的計算得出最終的工程概預算計價結果。除了完成正常的概預算之外,由于系統使用微服務架構,則需要系統中有一個統一的服務注冊及發現中心,且概預算服務的部署都比較復雜,需要一個強大的自動化運維服務功能。基于以上,可以將系統的需求分為功能性需求和非功能性需求兩部分。
1.1系統用例分析
本系統主要功能需求分為功能性需求及非功能性需求兩大部分。功能性需求主要有:概預算費用計算、標準信息維護、概預算文件導出等功能;非功能系需求主要針對服務注冊發現、系統運維方面,主要包括:服務注冊與發現、監控與告警、系統運行日志、自動化構建及部署等。
1.2核心功能需求
基于微服務的通信工程概預算系統其核心功能需要完成對項目工程的概預算計算以及完成對預算結果按照工信部標準出版格式生成Excel編制文件。主要包括:概預算費用計算、標準信息維護、概預算文件導出等功能。概預算費用計算:根據錄入的基礎定額、材料、設備、儀表和機械等信息計算出表一至表五的費用數據。標準信息維護:按照工信部下發標準定額信息,結合個人需求在系統內維護工日、材料、機械、儀表等標準基礎數據。概預算文件導出:按照工信部標準出版格式,生成概預算表格文件。
1.3非核心功能需求
基于微服務的通信工程概預算系統由于使用的微服務方式部署,所以服務的數量和種類都會比較多,在部署的時候若要使用人工部署的方式會非常的麻煩和復雜?;谙到y能夠自動化的快速部署的目的,其所需的非功能性需求有:服務注冊與發現、系統監控與告警、系統日志功能以及系統自動化構建及部署功能。服務注冊與發現:注冊與發現概預算系統的計算服務、文件生成服務,以及信息維護等服務。系統監控與告警:監控系統的資源使用、服務運行等情況,若發現異常會發出實時告警。系統日志功能:記錄系統中硬件、軟件和系統問題的信息,記錄系統操作過程,同時還可以監視系統中發生的事件。系統自動化構建及部署:研發人員通過上傳代碼庫最新源碼,該功能會自動對最新的源碼進行構建打包部署,使服務一直保持最新狀態。
2系統架構設計
根據上述需求分析,可以總結得出系統整體架構設計如下圖所示。從下圖2可以看出本系統總共可以分為四大部分:接入網關、系統服務、注冊中心、系統運維模塊。
2.1系統數據存儲
通信工程概預算系統對數據進行操作如下圖3所示都是相互獨立的,各個服務之間都是通過相互調用Restful[3]接口來達到數據交互。通過上圖可以知道基于微服務的通信工程概預算系統總共分為五種數據:系統基本設置數據、基礎數據、文件數據、費用計算數據以及標準信息數據。系統基本設置數據:包括系統的計算精度、高原系統、運送距離以及分段等信息;基礎數據:包括單項工程名稱、表格編號字頭、建設項目名稱、建設單位以及設計單位、定額及自定義公式等信息;文件數據:概預算結果文件導出時,需要按照一定的標準格式生成,則文件數據即為這些標準格式文件;費用計算數據:包括各個表格計算時涉及的相關費率,以及計價方式等一些數據;標準信息數據:標準信息,即工信部頒布的工日、材料、機械、儀表等信息。
2.2系統業務邏輯
基于微服務的通信工程概預算系統主要依托于SpringCloud[4]的框架來實現,其中費用計算為業務邏輯為核心模塊,其業務實現的邏輯圖如下圖4所示。
3關鍵問題及解決方案
現實系統開發過程中,由于有很多的系統服務,若要保證每個服務都有一個單獨的數據庫是非常不現實的,其中保證數據同步這一件事就會使得系統非常復雜。針對此問題,提出兩種解決方案:第一,即每種服務使用一個數據庫,這樣的話相同服務之間會保證數據同步,且不同種類服務之間數據也是隔離的,不同服務之間相互調用通過restful方式來發送消息;第二,即沿用以前傳統的方式,整個系統使用單個數據庫[10-11],這樣保證了整個系統的數據同步,而且不會造成不同服務之間的數據差異。基于本系統業務邏輯并非那么復雜,而且各個服務之間的調用數據傳輸量比較大,所以使用單個數據庫的方式,每個服務之間僅發送必要的請求即可,數據讀取通過數據庫即可。這樣既降低了系統復雜度,也很好的遵循了微服務的架構設計模式。其改造方案圖如下圖5所示。
4關鍵技術
SpringCloud:SpringCloud是很多程序框架的組合。它大體包括服務發現注冊、負載均衡、斷路器,使用SpringBoot開發屏蔽掉了很多繁瑣的配置,大大簡化了開發工作。另外使用整個技術路線,可以很方便的搭建起微服務的系統架構平臺。
5結束語
本文提出了使用微服務的架構思想來統一構建一套概預算系統的架構方案,該方案不但在理論上進行了介紹,而且還在具體的架構實現進行了分析,具有非常高的可行性。通過使用微服務的架構不但規避了各種預算的差異,而且提升了計算的速度。如果真的應用到實際的平臺環境中將會大大節約我們的開發成本,而且還會提高我們的工作效率。
作者:鄭明釗 張建強 張高毓 單位:中國移動通信集團設計院有限公司山東分公司