摘 要業(yè)界移動通訊配置部署、運維管理系統(tǒng)對工程師的技術要求高,工作低效,容易出錯,需要支持較大的數(shù)據(jù)量。為了解決這些痛點,我司進行4+1需求模型分析明確需求,采用正交軟件架構、進程容器平臺組件架構、數(shù)據(jù)工廠模式,并將管道過濾器、解釋器、MAP-REDUCE風格應用于數(shù)據(jù)比較,從而實現(xiàn)了一種低內存,高性能,自動化高,應用簡單,易擴展的集中配置系統(tǒng)。
【關鍵詞F4+1模型 正交設計 進程容器 平臺組件 工廠模式 管道過濾 MAP-REDUCE 集中配置
無線通訊系統(tǒng)比較復雜,包括不同產品、制式和各種服務。現(xiàn)有技術中,配置系統(tǒng)通過配置界面操作配置各網(wǎng)元對象,操作復雜,難度較高,不僅容易出錯,而且工程繁雜低效;隨著系統(tǒng)演進,其資源需求越來越大,處理效率越來越低,系統(tǒng)甚至存在不可用問題。為了解決目前配置系統(tǒng)遇到的問題,同時適應一些新需求,諸如批量開站、快速下載激活等,首先進行4+1需求模型分析,明確需求,確定軟件系統(tǒng)的實現(xiàn),提出了正交軟件架構、進程容器平臺組件架構;接著,結合系統(tǒng)的物理部署論述了工廠模式的數(shù)據(jù)設置系統(tǒng);之后論述了如何將管道過濾器、解釋器、MAP-REDUCE三者風格混合應用于數(shù)據(jù)比較的架構設計及實現(xiàn)中,最后總結評價了該系統(tǒng)。
1 4+1軟件架構建模
當前配置系統(tǒng)通常是通過配置界面操作逐一配置各個對象元素,這種配置操作對于少量配置數(shù)據(jù)沒有問題,但對于技術不斷演進、業(yè)務不斷擴張的通訊系統(tǒng)顯得捉襟見肘,用戶普遍反應需要一種簡單高效的配置系統(tǒng)。
如何讓配置簡單高效?何謂簡單,其實就是希望盡量少做,甚至不做事情,統(tǒng)一由程序軟件代替用戶完成。可選的架構風格是批處理序列、管道過濾數(shù)據(jù)流風格,讓用戶提交一個作業(yè)即可完成配置;同時,管道過濾批處理架構適用于并發(fā),從而也可以提高效率。
該架構風格如何適應各種通訊系統(tǒng)產品呢?通訊系統(tǒng)存在2G、3G、4G,甚至還有規(guī)劃中的5G產品;并且,配置對象存在多種類別劃分,有地面配置對象和無線配置對象,而無線配置對象還細分為多個小類??芍^多而雜,經(jīng)過分析,我們發(fā)現(xiàn)這些產品對象存在相同或者相似之處,將這些相同或者相似的地方進行抽象,可以將它們抽象為一個個產品模型,然后可以基于這些模型選型進行批量配置處理。進一步分析,引入模型選型,需要模型管理,從而需要模型管理子系統(tǒng)。這屬于4+1視圖模型中的開發(fā)視圖,根據(jù)該開發(fā)視圖,開發(fā)人員可用于軟件開發(fā)管理。
新舊配置系統(tǒng)完全不一樣,需要考慮系統(tǒng)的演進模式,處理好新舊系統(tǒng)的關系??梢杂眯孪到y(tǒng)適配繼承舊系統(tǒng),也可以拋棄舊系統(tǒng)完全重頭開發(fā)。如果完全從頭開發(fā),工作量大,風險大,所以,優(yōu)先選擇適配繼承方案,同時也可行。該方案對于模型管理更簡單,模型可以直接由舊系統(tǒng)產生,再由新系統(tǒng)實時拉?。恍屡渲孟到y(tǒng)在舊配置系統(tǒng)的基礎上運行,可以將新系統(tǒng)和舊系統(tǒng)定義為上下兩層,下層是運行時配置系統(tǒng),上層是離線集中配置系統(tǒng);如果新系統(tǒng)存在不足,可以利用舊系統(tǒng)補短。這是新舊系統(tǒng)的物理部署形式,即4+1視圖模型的物理視圖,系統(tǒng)工程人員利用該視圖可以進行系統(tǒng)拓撲、安裝和通信。
從4+1模型視圖的應用場景分析配置系統(tǒng)。其主要應用場景有版本升級更新配置系統(tǒng)(系統(tǒng)也可能存在運行時自我調優(yōu)需求),業(yè)務擴張開設新站點,大數(shù)據(jù)基于主題的配置。版本升級需要基于現(xiàn)有配置進行配置,需要將新增的配置下發(fā)到下級,將不同的配置下發(fā)到下級配置系統(tǒng),可以稱之為差異下發(fā)。如何產生差異?需要比較。在升級前保存快照,然后基于快照和配置好的配置產生增量差異數(shù)據(jù),進而可以將差異數(shù)據(jù)下發(fā)到下級配置系統(tǒng)。于是需要一個比較模塊智能分析數(shù)據(jù)產生增量數(shù)據(jù),這樣可以滿足版本升級需求。對于業(yè)務擴張,其本質大同小異,只是條件不完全一樣,需要調整版本升級實現(xiàn)的前置條件,即可滿足業(yè)務擴展,開設站點。至于大數(shù)據(jù)基于主題的應用,比如某種場景對無線通訊系統(tǒng)的調優(yōu),可以采用數(shù)據(jù)倉庫風格架構方案來解決。
從上面的需求分析看,4+1視圖的邏輯視圖最終用戶的功能需求已逐漸明晰,該新系統(tǒng)基于模型配置,需要導出導入進行配置,基于數(shù)據(jù)比較產生增量數(shù)據(jù)做下發(fā)。
最后從4+1模型視圖的進程視圖分析該新配置系統(tǒng)。該新系統(tǒng)可以配置各個模型產品,具有可伸縮性,可能運行多個相同或者不同的進程實例,需要多進程管理,所以需要引入進程容器,該進程容器中需要一個主進程、業(yè)務進程、產品進程以及一些諸如監(jiān)控日志等擴展性進程。其次,從可移植性以及集群考慮,該新配置系統(tǒng)需要可以作為一個獨立的組件或者進程組以插件方式安裝到其他系統(tǒng)中去運行。
這些是4+1軟件架構模型中主要關注的架構元素,包括結構模型、框架模型、動態(tài)模型、過程模型、功能模型。
2 正交軟件系統(tǒng)架構
正交軟件架構由組織層和線索的構件組成。層是由一組具有相同抽象級別的構件構成,線索是子系統(tǒng)的特例,是由完成不同層次功能的構件組成(通過相互調用來關聯(lián)),每一條線索完成整個系統(tǒng)中相對獨立的一部分功能。每一條線索的實現(xiàn)與其他線索的實現(xiàn)無關或者關聯(lián)很少,在同一層中的構件之間是不存在相互調用,或者盡量少存在。
從上述正交軟件架構的特征可以看出正交軟件架構具有如下優(yōu)點:
(1)結構清晰,易于理解,因為線索功能相互獨立,不進行互相調用,結構簡單、清晰;構件在結構圖中的位置已經(jīng)說明它所實現(xiàn)的是哪一級抽象,擔負的是什么職責;
(2)易于修改,可維護性強,因為線索之間相互獨立,對一個線索的修改不會影響到其他線索;
(3)可移植性強,重用粒度大,因為正交結構可以為一個領域內的所有應用程序所共享,這些軟件有著相同或類似的層次和線索,可以實現(xiàn)體系結構級的重用。
根據(jù)軟件需求,該新配置系統(tǒng)比較適合采用正交軟件系統(tǒng)架構。從4+1模型視圖分析,該新配置系統(tǒng)有較多的功能點和幾個獨立類似的模塊,這些功能模塊可以并行開發(fā);其次,我司從事多年軟件項目研發(fā),具有相當豐富的技術沉淀可以復用。endprint
通過進程容器平臺組件架構,我們可以在該框架中增加層次和線索,從而可以比較快的實現(xiàn)一個新系統(tǒng)?;谄脚_進程容器開發(fā)可以復用公司既有軟件構件;通過多條線索可以進行并行開發(fā)。如圖1正交軟件架構示意圖,根據(jù)此正交架構,開發(fā)人員可以并行開發(fā)數(shù)據(jù)導出、數(shù)據(jù)導入、數(shù)據(jù)比較、數(shù)據(jù)下發(fā)、產品n,因為這幾個模塊相對獨立,互不影響,所以,可以彼此獨立地進行開發(fā),從而可以提高開發(fā)效率;對于公共API、平臺和進程容器各個模塊可以復用,從架構上減少重復度;通過進程容器,可以根據(jù)實際情況動態(tài)彈性伸縮,動態(tài)彈出產品n實例,退出產品n實例,并加載卸載產品n模型。
3 數(shù)據(jù)工廠模式架構
圖2是數(shù)據(jù)工廠模式架構的體系結構圖。從4+1模型軟件架構建模分析,為了配置簡單,配置數(shù)據(jù)分為在線數(shù)據(jù)、離線數(shù)據(jù)和配置數(shù)據(jù),進一步明確抽象為設備數(shù)據(jù)區(qū)、設備鏡像區(qū)和設備設置區(qū)。以數(shù)據(jù)工廠模式架構,該系統(tǒng)形成數(shù)據(jù)工廠系統(tǒng)、設置管理系統(tǒng)和設備系統(tǒng),而數(shù)據(jù)工廠系統(tǒng)包括設備鏡像區(qū)和設備設置區(qū)。對于設備設置區(qū),雖然設備鏡像區(qū)基本不變,但是由于設備可能會由于多用戶操作,以及設備的自我調優(yōu),存在著變化,所以一般把設備設置區(qū)進行讀寫分離,分為基準區(qū)和規(guī)劃區(qū),基準區(qū)用來讀,規(guī)劃區(qū)用來寫;然后基于數(shù)據(jù)比較產生下發(fā)數(shù)據(jù)。這種根據(jù)讀寫分離分區(qū)的產生下發(fā)數(shù)據(jù)的方案沖突性較少,效率比較高,只是,其數(shù)據(jù)存在著重復性,存在數(shù)據(jù)重復復制的開銷。第二種方案是直接只記錄增刪改的最終記錄,如果鏡像區(qū)不發(fā)生變化,這種方案效率應該最好;如果有變化需要解決沖突,進行差異合并,還需要查詢鏡像區(qū),既讀又寫,如果對象間有級聯(lián)關系呢?感覺復雜度上升了很多,效率應該也降不少;另外,這種方案對多用戶并發(fā)支持不是很好。第三種方案是記錄下全部操作日志,最后統(tǒng)一批量處理,這種方式延后處理,勢必導致用戶感覺操作效率低下,不是可選方案(本文后續(xù)以第一種方案來討論這種配置系統(tǒng)的架構設計及實現(xiàn))。
數(shù)據(jù)工廠集中配置工作過程。設置中心根據(jù)業(yè)務需求創(chuàng)刪設置,利用設備設置區(qū)繼承數(shù)據(jù)鏡像區(qū)所有對象信息,直接在數(shù)據(jù)中心批量處理,并且分組分片分區(qū)最優(yōu)多流水線作業(yè)處理,在設備設置區(qū)存貯刪除設置實例的目標數(shù)據(jù)和源數(shù)據(jù)?;诒容^智能分析設備設置區(qū)內的目標數(shù)據(jù)和源數(shù)據(jù),進行正確性檢查,生成設置腳本。設置腳本的生成按照已經(jīng)定義好的規(guī)則協(xié)議生成設置腳本。產生設置腳本前,對第一比對結果和第二比對結果進行比對校驗沖突性,如果有沖突進行沖突解決和差異合并;產生設置腳本前根據(jù)預先設置保存在規(guī)則知識庫中的規(guī)則對增量進行合法性檢查,保證設備在配置前后不存在沖突,是合法配置,從而保證產生的腳本的正確性。最后,將設置腳本下發(fā)激活到設備系統(tǒng)。
4 管道過濾、解釋器模式、MAP-REDUCE混合架構
數(shù)據(jù)工廠模式架構風格的集中配置系統(tǒng)的體系結構、工作過程及實現(xiàn)方案已經(jīng)做了相關闡述,其中基于比較的差異數(shù)據(jù)的產生是一項比較具有挑戰(zhàn)性的工作。
比較的挑戰(zhàn)在于需要將關鍵字對齊后才能比較。對齊意味著需要排序,排序最簡單的方式是先把配置數(shù)據(jù)全部拉取出來后排序,再依次比對產生差異結果,但這意味著內存累積,內存沖高,如果數(shù)據(jù)量大,系統(tǒng)會內存溢出退服;結構體數(shù)組擴展,如果處理不好會出現(xiàn)同樣的問題,導致內存沖高,服務最后變得不可用;比較不僅用于產生差異數(shù)據(jù),還用于沖突檢查和合法性檢查,如果效率不高,會影響用戶的體驗,所以如何提升效率也是一個重中之重;再次,如何將比較應用于各種產品,使其兼容各種產品,也是該配置系統(tǒng)項目關注的重點。目前通訊系統(tǒng)發(fā)展迅速,其系統(tǒng)配置數(shù)據(jù)量越來越大,減少內存資源使用勢在必行,需要優(yōu)先考慮。通過分析決策,對該配置系統(tǒng)采用管道過濾流式架構風格,其內存資源使用只占用基本內存,不會沖高,運行起來穩(wěn)定。
管道過濾模式由構件和連接件組成,構件有輸入和輸出,讀取輸出流,經(jīng)過內部處理,產生輸出流,可以稱之為過濾器;連接件將一個過濾器的輸出傳到另一個過濾器的輸入,就像數(shù)據(jù)傳輸?shù)墓艿酪粯?。本配置系統(tǒng)中,構件包括數(shù)據(jù)中心、應用層差異拉取件、應用層腳本生成件、應用層合法性檢查件和應用層沖突檢查件。應用層構件和數(shù)據(jù)中心構件通過JDBC的流式組件實現(xiàn)管道傳輸,應用層件間通過隊列傳輸數(shù)據(jù),構件間形成生產者消費者模式。
為了兼容各種產品,比較基于模型采用解釋器架構開發(fā)。對于每個對象,基于模型解析對象信息,由軟件智能生成比較腳本,然后提交數(shù)據(jù)中心,由數(shù)據(jù)中心編譯后或者直接執(zhí)行。在數(shù)據(jù)中心,關鍵字信息對齊后,流式比較記錄產生流式結果,輸出到管道中,同時由應用層拉取。在效率上,動態(tài)執(zhí)行由于額外的解析等因素,一般慢于靜態(tài)執(zhí)行,但是動態(tài)執(zhí)行兼容性和適配性更好;而靜態(tài)執(zhí)行雖然效率高,但是適配性差,代碼腳本重復性高。本系統(tǒng)腳本生成結合了動態(tài)腳本和靜態(tài)腳本的優(yōu)勢,在整體上采用動態(tài)腳本,在局部上部分采用靜態(tài)腳本,比如定義一些特殊類型等。
管道過濾流式模式解決了內存資源問題,下面討論MAP-REDUCE如何解決效率問題。MAP-REDUCE模式其實是分而治之的典型應用,包括將待處理對象分組并行執(zhí)行,將業(yè)務流程分階段以生產者消費者以管道過濾模式并行執(zhí)行。本配置系統(tǒng)在處理上,將配置對象分成不同級別的Master-Work組,以生產者消費者模式分階段并行執(zhí)行,比如,數(shù)據(jù)中心產生差異結果為第一階段,應用層拉取差異結果為第二階段,生成下發(fā)腳本、合法性檢查、沖突檢查為第三階段,下載激活為第四階段。分階段執(zhí)行,階段間需要傳遞關鍵信息,以處理比如有嚴格順序要求的配置命令生成需求。
采用profile比較機制,采取解釋器模式,根據(jù)配置模型的描述信息生成比較腳本,然后執(zhí)行該腳本,得到差異對象信息。具體地,上述腳本生成子單元具體用于根據(jù)預置模型對象中預置的分組信息和對象描述信息,對應于每一分組生成一用于比較該分組中對象的比較腳本。由于命令生成采用管道過濾器模式,其占用的內存基本可以忽略。通常來說,管道過濾器模式不適合關聯(lián)復雜的數(shù)據(jù)處理,但是本實例實施采用MAP-REDUCE模式,可以處理有嚴格順序要求的配置命令生成;內存消耗低,可以采用高并發(fā)方式提高效率;同時,其并發(fā)參數(shù)可以熱配,從而伸縮性很好。
5 結論
該系統(tǒng)采用進程容器、平臺組件、正交軟件架構,使系統(tǒng)具有可伸縮性、可移植性、易擴展性;在實現(xiàn)中使用了推拉機制、沖突解決機制、差異合并機制、合法性檢查機制,確保了數(shù)據(jù)高效正確下發(fā);創(chuàng)建設置利用設備設置區(qū)繼承數(shù)據(jù)鏡像區(qū)所有對象信息,直接在數(shù)據(jù)中心批量處理,并且分組分片分區(qū)最優(yōu)多流水線作業(yè)處理,具有高效性、安全性和擴展性;根據(jù)設置主題引導用戶進行主題設置,用戶使用更加簡單快捷;檢查設置基于模型在數(shù)據(jù)中心高速緩存中歸集,以管道方式比對,效率高,內存低,性能穩(wěn)定;腳本生成智能分析設備數(shù)據(jù)并生成設置腳本,雖然實現(xiàn)比較復雜,但應用簡單,自動化高??偠灾摷信渲孟到y(tǒng)智能、簡單、高效、安全。
參考文獻
[1]張友生.軟件體系結構原理、方法與實踐(第2版)[M].北京:清華大學出版社,2014:70-71.
[2]王友亮,王志鵬,汪星,吳振宇.集中配置方法及裝置:中國,CN201410721006.8[P].2014-12-03.
作者單位
上海中興軟件有限責任公司 上海市 201203endprint