郝振強
?
終端管理系統(tǒng)北向對接中微服務的應用研究
郝振強
(中興通訊股份有限公司,江蘇 南京 210012)
通過對終端管理系統(tǒng)北向對接的微服務化改造,以降低開發(fā)和部署難度,提升對接效率。通過對易變的規(guī)范和不變的操作進行分離,將對接規(guī)范按照報文格式拆分為不同的組件化微服務,并實現(xiàn)消息的控制和分發(fā),基于北向的通用服務接口提供對接服務。本文設計并實現(xiàn)了一種組件化、松耦合的對接服務架構,在系統(tǒng)不下線情況下,通過模型配置的變更或服務的熱部署完成新接口的部署對接,并在與運營商的對接實踐中驗證了該架構的良好效果。
終端;北向對接;微服務;組件化;改造;運營商
終端管理系統(tǒng)通過北向接口與電信運營商的各種業(yè)務運營支撐系統(tǒng)(BOSS)進行對接,接收其對終端設備的開銷戶、業(yè)務配置、故障診斷等管理操作,并主要通過TR069管理協(xié)議基于HTTP+ SOAP[1-2]實現(xiàn)對終端設備的管理。
隨著互聯(lián)網(wǎng)技術的發(fā)展趨勢,終端管理系統(tǒng)的北向接口規(guī)范也進行著不斷的變化。最初以基于SOAP的Web服務提供接口[3-6],其是一種面向服務的體系結構(SOA),具有良好的網(wǎng)絡穿透性;但完善的描述、發(fā)布、發(fā)現(xiàn)等定義使其成為一個復雜且重型的規(guī)范,對開發(fā)、發(fā)布、維護需要投入較大資源。JSON作為一種輕量級的數(shù)據(jù)交換格式,具有簡單和清晰的層次結構,易于人閱讀和編寫和機器的解析和生成[7],逐漸發(fā)展成為電信領域新型規(guī)范的首選數(shù)據(jù)格式,基于JSON格式使用普通HTTP信封的REST式服務也成為運營商的常用解決方案。
終端管理系統(tǒng)北向對接進程,主要用于滿足國內(nèi)外運營商第三方系統(tǒng)的對接需求。2010年前后幾年主流為基于運營商規(guī)范提供標準的WEB Service接口,用于滿足運營商的定制需求,基本上是由運營商主導制定需求接口規(guī)范,終端管理系統(tǒng)主導實現(xiàn),然后再與第三方各BOSS系統(tǒng)進行對接。
對國內(nèi)三大電信運營商來說,其一般都有明確的集團規(guī)范,全國省公司通用,終端管理系統(tǒng)基本按照規(guī)范功能開發(fā)并提供標準接口用于對接即可;而對于國際運營商,其規(guī)模大小、運維能力殘次不齊,但北向對接接口主要也以終端管理系統(tǒng)實現(xiàn)為準。
隨著各運營商對終端管理的深耕和差異化處理,逐漸出現(xiàn)了很多定制化和無通用性的需求。比如,中國移動集團接入網(wǎng)關規(guī)范就明確定義了終端管理系統(tǒng)的WEB Service接口的報文格式和內(nèi)容范例,需要終端管理系統(tǒng)基于規(guī)范中定義好的接口報文實現(xiàn)出來,并滿足第三方的對接需求。
伴隨著智能化的浪潮和網(wǎng)關智能化的發(fā)展和推進,國內(nèi)三大運營商都推出了自己的智能網(wǎng)關管理規(guī)范,而三家無一例外,對智能網(wǎng)關的南北向新增的管理對接接口規(guī)范,都與時俱進的采用了HTTP+ JSON格式的對接協(xié)議。
近期中國電信集團層面全國推廣的IPSec云網(wǎng)關接口規(guī)范,更是采用了WEB Service外殼封裝完整XML格式報文入?yún)⒌姆绞健?/p>
國外一些規(guī)模較小的電信運營商,本身沒有太多資源同時投入BOSS系統(tǒng)的建設中,而是希望直接使用終端管理系統(tǒng)系統(tǒng)代替業(yè)務運營系統(tǒng),因此需要終端管理系統(tǒng)北向提供FTP方式的批量開戶和業(yè)務配置的操作接口。
總體上,各家運營商的北向對接需求和接口規(guī)范,都有自己的業(yè)務與運營考量,而終端管理系統(tǒng)就是在引導的基礎上滿足運營商的運維對接需求。
各運營商系統(tǒng)接口多種多樣,同一運營商不同時期接口規(guī)凡也會有差異,目前已出現(xiàn)了Web Service、XML、JSON等格式的對接需求,其接口入?yún)⒎绞揭彩歉鞣N各樣。
但去除繁瑣的報文格式,并對報文參數(shù)作適當?shù)霓D換,對終端管理系統(tǒng)來說,其核心就是三類信息:終端、操作、參數(shù)信息,即需求可以統(tǒng)一概括描述為:對某終端進行了某操作,其需要的參數(shù)信息是什么。
對終端來說,確定目標終端的手段可能不一樣,如MAC地址、設備標識(常規(guī)取Tr069協(xié)議中DeviceIdStruct結構中的變量OUI+SN)[1]、SN、IP、邏輯標識(通常指用戶辦理的開戶賬號),但其最終無一例外都是精確定位到單一終端。
對操作來說,其實每種操作都代表著一種功能,如開戶、開通寬帶、重啟、PING測試、獲取設備信息、配置設備信息等,其有明確的業(yè)務含義和通用性。
對參數(shù)信息來說,不同類型的操作具有不同的參數(shù)模型,但同一操作,其參數(shù)模型基本相同,不同的只是參數(shù)對應的設備節(jié)點不同和參數(shù)多少的 問題。
終端管理系統(tǒng)在對接層面完全可以拆分為兩層結構:上層直接與第三方對接,定制其獨特性;下層抽取公用方法,適配其通用性。
改造前,對接服務由北向對接分布式進程提供,其內(nèi)在部署了一個使用Axis2提供Web Service的應用,并通過南向ACS分布式進程與CPE終端進行交互。如圖1所示。
圖1 原終端管理系統(tǒng)北向對接架構
基于電信運營商的對接規(guī)范,終端管理系統(tǒng)提供規(guī)范接口的對接時,主要是基于終端管理系統(tǒng)的接口對接文檔進行引導。對于無法滿足的需求或比較強勢的運營商,則需要通過發(fā)布服務接口方式增加明確易理解的需求接口供調用,此時開發(fā)、測試、發(fā)布、部署導致的成本高昂。功能實現(xiàn)上,終端管理系統(tǒng)也主要是基于需求點開發(fā)接口,并未抽取其通用性發(fā)布通用接口。
而實時上,許多需求點都有共用性,比如,獲取設備Wi-Fi信息和獲取LAN口信息,就提供了兩個獨立接口用于實現(xiàn)需求,而內(nèi)部實現(xiàn)邏輯,除了參數(shù)配置模型的不同導致的參數(shù)細節(jié)差異外,其余流程完全相同,即本質上可以是通用的獲取參數(shù)信息接口,根據(jù)操作的含義不同,調用不同的參數(shù)模型處理,并將結果以通用格式返回。
基于Web Service發(fā)布的通用接口,外加接口文檔中明確的參數(shù)模型標識,可以使接口的語義更有層次,更明確,比如獲取設備Wi-Fi信息的描述是:①服務:診斷;②接口:獲取參數(shù)信息;③診斷項:獲取Wi-Fi信息。而且擴展型極佳,只要終端管理系統(tǒng)增加配置模型,即可實時增加功能接口,對于此類功能,新增接口成本低廉。即使運營商接口需要定制,也只需要實現(xiàn)接口適配邏輯即可。
微服務提倡將應用內(nèi)的子功能劃分為一組小的服務,組合不同的服務就可以實現(xiàn)一個復雜的功能;通常也指一種松耦合的、有一定的有界上下文的面向服務架構[8-11]。終端管理系統(tǒng)北向對接涉及到必須同時支持JSON、XML等格式的交互報文,不可避免的要進行改造。
基于微服務改造包括統(tǒng)一API服務接口的剝離與上浮,并封裝為HTTP+JSON格式接口對外提供統(tǒng)一服務。例如上述獲取設備Wi-Fi信息和LAN信息的接口,可以合并統(tǒng)一為獲取終端特定信息的接口,只要入?yún)⑻峁﹨?shù)模型的標識即可實現(xiàn)需求功能。
北向進程分布式進程中的Web Service服務剝離出來,同時增加JSON服務、XML服務、FTP服務,該層應用均通過調用統(tǒng)一的API服務接口實現(xiàn)業(yè)務的處理;而請求消息和相應消息的處理、與API服務的參數(shù)模型適配轉換均由各服務自己處理。各服務的處理邏輯完全解耦。
在各應用服務之上,再增加一個API網(wǎng)關,用于實現(xiàn)對請求的統(tǒng)一控制和調度。因為FTP服務的特殊性,其通過內(nèi)置FTP服務器方式,由第三方FTP客戶端上傳文件后,再定時解析文件并調用API服務接口實現(xiàn)其功能。
典型的架構,如圖2所示。
圖2 典型的終端管理系統(tǒng)北向對接微服務架構
API服務接口的上浮和Web Service的剝離都涉及到了較大的資源投入成本。終端管理系統(tǒng)基于傳統(tǒng)的分布式進程管理開發(fā),增加API網(wǎng)關、微服務各進程后,要做到各進程的監(jiān)管可控,已有的進程監(jiān)控管理平臺涉及較多的改造內(nèi)容;而如果同時使用微服務化專用的服務監(jiān)控管理工具監(jiān)控新增加的服務,又會大大增加現(xiàn)有系統(tǒng)的現(xiàn)場監(jiān)控和部署難度,并帶來技術選型的沖突。
為了重復利用現(xiàn)有系統(tǒng)的進程監(jiān)控管理和簡化部署,在現(xiàn)有系統(tǒng)基礎上,基于微服務理念較少 改動的實現(xiàn)各功能需求,進行了如圖3所示的改造實現(xiàn)。
圖3 實際改造的終端管理系統(tǒng)北向對接微服務架構
基于現(xiàn)有的Web Service應用實現(xiàn),將通用API接口的實現(xiàn)以進程內(nèi)部服務的方式下沉至進程中,Web Service、JSON、XML等對接模塊則通過組件化的WEB應用方式由JBOSS部署至分布式北向進程中,對外分別提供不同格式的對接服務。
雖則對接模塊交由JBOSS進行統(tǒng)一管理,并在進程中提供通用API接口服務供各對接模塊調用,但對接模塊以獨立的WEB應用方式保持其組件化的獨立性,獲取對接模塊信息僅能通過其暴露的HTTP API接口方式進行訪問。
API網(wǎng)關則由Nginx控制器進行替代,提供請求的轉發(fā)和控制服務。
而且在實際改造實現(xiàn)中,基于演進式設計理念,可以分步驟實施改造:已有的Web Service應用實現(xiàn)可以暫時不做改動,使用舊有實現(xiàn),后續(xù)基于JSON、XML等應用部署測試成熟后再對現(xiàn)有的Web Service應用改造。
各報文對接模塊功能獨立,無耦合性,可根據(jù)對接局點實際情況進行服務的增減。
基于分布式進程Web應用的熱部署,可以模塊化增減對接適配模塊,實現(xiàn)模塊的組件化部署。
基礎API服務提供了完整的各業(yè)務操作流程通用調度接口,增減特定需求,只需要增加相應的參數(shù)模型定義即可,實現(xiàn)了功能的快速配置,解決了開發(fā)硬編碼的問題,基本上能夠滿足現(xiàn)網(wǎng)90%以上的新增對接需求功能。避免規(guī)范不統(tǒng)一、多樣導致的重復開發(fā),維護困難問題。
對報文需要定制的場景,基本上通過修改對應的服務模塊的配置即可滿足需求,特殊定制需求,也只需在對應的服務模塊中定制其預處理和后處理邏輯。
本文設計并實現(xiàn)了一種組件化、松耦合的對接服務架構,在系統(tǒng)不下線情況下,通過模型配置的變更或服務的熱部署完成新接口的部署對接,并在與運營商的對接實踐中驗證了該架構的良好效果。
隨著互聯(lián)網(wǎng)技術的發(fā)展趨勢,終端管理系統(tǒng)在開發(fā)過程中也與時俱進的吸收和利用新的架構思想、理念和技術,并將新的技術理念以合理方式融入已有的系統(tǒng)中,不斷進行系統(tǒng)自身的完善。這也與微服務的演進式設計特征相一致:沒有完美的程序,在軟件的生命周期中把這當成必然并支持不斷演進式設計開發(fā),不斷完善而非一次完成[7]。
實踐應用上,基于微服務理念,終端管理系統(tǒng)南向也進行了易變模塊的服務拆分,并隨著新項目的立項開發(fā),將新的架構理念和技術逐漸帶入到新的系統(tǒng)中。
[1] Broadband Forum. TR-069 CPE WAN Management Prot-ocol[EB/OL]. (2018-04-17)[2018-9-29]. https://www.broadband- forum.org/technical/download/TR-069.pdf.
[2] 張宇飛, 李煒. CWMP在家庭開放平臺遠程終端管理子系統(tǒng)的應用[J]. 軟件, 2016, 37(01): 85-90.
[3] 羅海濤. Web服務的構建及其典型應用[J]. 計算機時代, 2014, (11): 22-23.
[4] 王旭峰, 王智立. 基于SOA 的業(yè)務動態(tài)定制的網(wǎng)絡管理系統(tǒng)設計與實現(xiàn)[J]. 軟件, 2015, 36(1): 100-103.
[5] 陳玉亮, 薛燕平. 基于Web Service 的數(shù)字檔案資源集成研究與實現(xiàn)[J]. 軟件, 2015, 36(9): 39-41.
[6] 石琳. Web服務中的WSDL文檔結構分析[J]. 軟件, 2012, 33(10): 142-143.
[7] ECMA International. Introducing JSON [EB/OL]. (2018-09- 24) [2018-9-29]. http://www.json.org/.
[8] PetterLiu. 微服務架構設計[EB/OL]. (2016-12-25)[2018- 9-29]. https://www.cnblogs.com/wintersun/p/6219259.html.
[9] 張晶, 黃小鋒. 一種基于微服務的應用框架[J]. 計算機系統(tǒng)應用, 2016, 25(9): 265-270.
[10] 鄭明釗, 張建強. 基于微服務的大平臺系統(tǒng)架構演進探討[J]. 軟件, 2017, 38(12): 165-169.
[11] 張峰. 微服務技術構建大規(guī)模web系統(tǒng)的研究[J]. 科技創(chuàng)新與應用, 2017, (22): 48-49.
Research on Application of CPE Management System to North Docking Microservice
HAO Zhen-qiang
(ZTE Corporation, Nanjing 210012, China)
In order to reduce the difficulty of development and deployment and improve the efficiency of docking, the northward docking of CPE management system is transformed into micro-service. By separating the changeable specification from the invariant operation, the docking specification is divided into different component micro-services according to the message format, and the control and distribution of messages are realized. This paper designs and implements a component-based, loosely coupled docking service architecture. When the system is online, the new interface is deployed and docked through the change of model configuration or hot deployment of services. The good effect of this architecture is verified in the docking practice with operators.
CPE; North docking; Microservice; Component-based; Transformation; Operator
TP393
A
10.3969/j.issn.1003-6970.2018.11.023
郝振強(1979-),男,碩士,中興通訊股份有限公司,研發(fā)工程師,從事終端網(wǎng)管的開發(fā)工作。
郝振強. 終端管理系統(tǒng)北向對接中微服務的應用研究[J]. 軟件,2018,39(11):101-104