郝振强
终端管理系统北向对接中微服务的应用研究
郝振强
(中兴通讯股份有限公司,江苏 南京 210012)
通过对终端管理系统北向对接的微服务化改造,以降低开发和部署难度,提升对接效率。通过对易变的规范和不变的操作进行分离,将对接规范按照报文格式拆分为不同的组件化微服务,并实现消息的控制和分发,基于北向的通用服务接口提供对接服务。本文设计并实现了一种组件化、松耦合的对接服务架构,在系统不下线情况下,通过模型配置的变更或服务的热部署完成新接口的部署对接,并在与运营商的对接实践中验证了该架构的良好效果。
终端;北向对接;微服务;组件化;改造;运营商
终端管理系统通过北向接口与电信运营商的各种业务运营支撑系统(BOSS)进行对接,接收其对终端设备的开销户、业务配置、故障诊断等管理操作,并主要通过TR069管理协议基于HTTP+ SOAP[1-2]实现对终端设备的管理。
随着互联网技术的发展趋势,终端管理系统的北向接口规范也进行着不断的变化。最初以基于SOAP的Web服务提供接口[3-6],其是一种面向服务的体系结构(SOA),具有良好的网络穿透性;但完善的描述、发布、发现等定义使其成为一个复杂且重型的规范,对开发、发布、维护需要投入较大资源。JSON作为一种轻量级的数据交换格式,具有简单和清晰的层次结构,易于人阅读和编写和机器的解析和生成[7],逐渐发展成为电信领域新型规范的首选数据格式,基于JSON格式使用普通HTTP信封的REST式服务也成为运营商的常用解决方案。
终端管理系统北向对接进程,主要用于满足国内外运营商第三方系统的对接需求。2010年前后几年主流为基于运营商规范提供标准的WEB Service接口,用于满足运营商的定制需求,基本上是由运营商主导制定需求接口规范,终端管理系统主导实现,然后再与第三方各BOSS系统进行对接。
对国内三大电信运营商来说,其一般都有明确的集团规范,全国省公司通用,终端管理系统基本按照规范功能开发并提供标准接口用于对接即可;而对于国际运营商,其规模大小、运维能力残次不齐,但北向对接接口主要也以终端管理系统实现为准。
随着各运营商对终端管理的深耕和差异化处理,逐渐出现了很多定制化和无通用性的需求。比如,中国移动集团接入网关规范就明确定义了终端管理系统的WEB Service接口的报文格式和内容范例,需要终端管理系统基于规范中定义好的接口报文实现出来,并满足第三方的对接需求。
伴随着智能化的浪潮和网关智能化的发展和推进,国内三大运营商都推出了自己的智能网关管理规范,而三家无一例外,对智能网关的南北向新增的管理对接接口规范,都与时俱进的采用了HTTP+ JSON格式的对接协议。
近期中国电信集团层面全国推广的IPSec云网关接口规范,更是采用了WEB Service外壳封装完整XML格式报文入参的方式。
国外一些规模较小的电信运营商,本身没有太多资源同时投入BOSS系统的建设中,而是希望直接使用终端管理系统系统代替业务运营系统,因此需要终端管理系统北向提供FTP方式的批量开户和业务配置的操作接口。
总体上,各家运营商的北向对接需求和接口规范,都有自己的业务与运营考量,而终端管理系统就是在引导的基础上满足运营商的运维对接需求。
各运营商系统接口多种多样,同一运营商不同时期接口规凡也会有差异,目前已出现了Web Service、XML、JSON等格式的对接需求,其接口入参方式也是各种各样。
但去除繁琐的报文格式,并对报文参数作适当的转换,对终端管理系统来说,其核心就是三类信息:终端、操作、参数信息,即需求可以统一概括描述为:对某终端进行了某操作,其需要的参数信息是什么。
对终端来说,确定目标终端的手段可能不一样,如MAC地址、设备标识(常规取Tr069协议中DeviceIdStruct结构中的变量OUI+SN)[1]、SN、IP、逻辑标识(通常指用户办理的开户账号),但其最终无一例外都是精确定位到单一终端。
对操作来说,其实每种操作都代表着一种功能,如开户、开通宽带、重启、PING测试、获取设备信息、配置设备信息等,其有明确的业务含义和通用性。
对参数信息来说,不同类型的操作具有不同的参数模型,但同一操作,其参数模型基本相同,不同的只是参数对应的设备节点不同和参数多少的 问题。
终端管理系统在对接层面完全可以拆分为两层结构:上层直接与第三方对接,定制其独特性;下层抽取公用方法,适配其通用性。
改造前,对接服务由北向对接分布式进程提供,其内在部署了一个使用Axis2提供Web Service的应用,并通过南向ACS分布式进程与CPE终端进行交互。如图1所示。
图1 原终端管理系统北向对接架构
基于电信运营商的对接规范,终端管理系统提供规范接口的对接时,主要是基于终端管理系统的接口对接文档进行引导。对于无法满足的需求或比较强势的运营商,则需要通过发布服务接口方式增加明确易理解的需求接口供调用,此时开发、测试、发布、部署导致的成本高昂。功能实现上,终端管理系统也主要是基于需求点开发接口,并未抽取其通用性发布通用接口。
而实时上,许多需求点都有共用性,比如,获取设备Wi-Fi信息和获取LAN口信息,就提供了两个独立接口用于实现需求,而内部实现逻辑,除了参数配置模型的不同导致的参数细节差异外,其余流程完全相同,即本质上可以是通用的获取参数信息接口,根据操作的含义不同,调用不同的参数模型处理,并将结果以通用格式返回。
基于Web Service发布的通用接口,外加接口文档中明确的参数模型标识,可以使接口的语义更有层次,更明确,比如获取设备Wi-Fi信息的描述是:①服务:诊断;②接口:获取参数信息;③诊断项:获取Wi-Fi信息。而且扩展型极佳,只要终端管理系统增加配置模型,即可实时增加功能接口,对于此类功能,新增接口成本低廉。即使运营商接口需要定制,也只需要实现接口适配逻辑即可。
微服务提倡将应用内的子功能划分为一组小的服务,组合不同的服务就可以实现一个复杂的功能;通常也指一种松耦合的、有一定的有界上下文的面向服务架构[8-11]。终端管理系统北向对接涉及到必须同时支持JSON、XML等格式的交互报文,不可避免的要进行改造。
基于微服务改造包括统一API服务接口的剥离与上浮,并封装为HTTP+JSON格式接口对外提供统一服务。例如上述获取设备Wi-Fi信息和LAN信息的接口,可以合并统一为获取终端特定信息的接口,只要入参提供参数模型的标识即可实现需求功能。
北向进程分布式进程中的Web Service服务剥离出来,同时增加JSON服务、XML服务、FTP服务,该层应用均通过调用统一的API服务接口实现业务的处理;而请求消息和相应消息的处理、与API服务的参数模型适配转换均由各服务自己处理。各服务的处理逻辑完全解耦。
在各应用服务之上,再增加一个API网关,用于实现对请求的统一控制和调度。因为FTP服务的特殊性,其通过内置FTP服务器方式,由第三方FTP客户端上传文件后,再定时解析文件并调用API服务接口实现其功能。
典型的架构,如图2所示。
图2 典型的终端管理系统北向对接微服务架构
API服务接口的上浮和Web Service的剥离都涉及到了较大的资源投入成本。终端管理系统基于传统的分布式进程管理开发,增加API网关、微服务各进程后,要做到各进程的监管可控,已有的进程监控管理平台涉及较多的改造内容;而如果同时使用微服务化专用的服务监控管理工具监控新增加的服务,又会大大增加现有系统的现场监控和部署难度,并带来技术选型的冲突。
为了重复利用现有系统的进程监控管理和简化部署,在现有系统基础上,基于微服务理念较少 改动的实现各功能需求,进行了如图3所示的改造实现。
图3 实际改造的终端管理系统北向对接微服务架构
基于现有的Web Service应用实现,将通用API接口的实现以进程内部服务的方式下沉至进程中,Web Service、JSON、XML等对接模块则通过组件化的WEB应用方式由JBOSS部署至分布式北向进程中,对外分别提供不同格式的对接服务。
虽则对接模块交由JBOSS进行统一管理,并在进程中提供通用API接口服务供各对接模块调用,但对接模块以独立的WEB应用方式保持其组件化的独立性,获取对接模块信息仅能通过其暴露的HTTP API接口方式进行访问。
API网关则由Nginx控制器进行替代,提供请求的转发和控制服务。
而且在实际改造实现中,基于演进式设计理念,可以分步骤实施改造:已有的Web Service应用实现可以暂时不做改动,使用旧有实现,后续基于JSON、XML等应用部署测试成熟后再对现有的Web Service应用改造。
各报文对接模块功能独立,无耦合性,可根据对接局点实际情况进行服务的增减。
基于分布式进程Web应用的热部署,可以模块化增减对接适配模块,实现模块的组件化部署。
基础API服务提供了完整的各业务操作流程通用调度接口,增减特定需求,只需要增加相应的参数模型定义即可,实现了功能的快速配置,解决了开发硬编码的问题,基本上能够满足现网90%以上的新增对接需求功能。避免规范不统一、多样导致的重复开发,维护困难问题。
对报文需要定制的场景,基本上通过修改对应的服务模块的配置即可满足需求,特殊定制需求,也只需在对应的服务模块中定制其预处理和后处理逻辑。
本文设计并实现了一种组件化、松耦合的对接服务架构,在系统不下线情况下,通过模型配置的变更或服务的热部署完成新接口的部署对接,并在与运营商的对接实践中验证了该架构的良好效果。
随着互联网技术的发展趋势,终端管理系统在开发过程中也与时俱进的吸收和利用新的架构思想、理念和技术,并将新的技术理念以合理方式融入已有的系统中,不断进行系统自身的完善。这也与微服务的演进式设计特征相一致:没有完美的程序,在软件的生命周期中把这当成必然并支持不断演进式设计开发,不断完善而非一次完成[7]。
实践应用上,基于微服务理念,终端管理系统南向也进行了易变模块的服务拆分,并随着新项目的立项开发,将新的架构理念和技术逐渐带入到新的系统中。
[1] Broadband Forum. TR-069 CPE WAN Management Protocol[EB/OL]. (2018-04-17)[2018-9-29]. https://www.broadband- forum.org/technical/download/TR-069.pdf.
[2] 张宇飞, 李炜. CWMP在家庭开放平台远程终端管理子系统的应用[J]. 软件, 2016, 37(01): 85-90.
[3] 罗海涛. Web服务的构建及其典型应用[J]. 计算机时代, 2014, (11): 22-23.
[4] 王旭峰, 王智立. 基于SOA 的业务动态定制的网络管理系统设计与实现[J]. 软件, 2015, 36(1): 100-103.
[5] 陈玉亮, 薛燕平. 基于Web Service 的数字档案资源集成研究与实现[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]. 计算机系统应用, 2016, 25(9): 265-270.
[10] 郑明钊, 张建强. 基于微服务的大平台系统架构演进探讨[J]. 软件, 2017, 38(12): 165-169.
[11] 张峰. 微服务技术构建大规模web系统的研究[J]. 科技创新与应用, 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-),男,硕士,中兴通讯股份有限公司,研发工程师,从事终端网管的开发工作。
郝振强. 终端管理系统北向对接中微服务的应用研究[J]. 软件,2018,39(11):101-104