团队介绍


网优中心“阿尔法”自主研发团队成立于2016年,现有人员6人,平均年龄32岁,硕士2名,党员2名。在自主研发工作中积极投入,是一支勇于奉献、敢于担当的精锐之师,涌现出省公司专家2名,核心人才1名,省公司内训师1名。


团队全体成员团结一心、互帮互助、积极进取,以落地集团大连接战略为指导方针,以深度推进集中网优为牵引,以攻克集中化进程的难点问题为目标,依托团队共创的工作模式,以创新思维探索解决问题的思路,通过自研发工具形成能力内化,不断提升集中化网优的深度和效能,取得了优异的成绩,自主开发各类网优支撑工具15个,其中,发表专利3篇,获得集团二类创新成果9项,并荣获集团公司2016年网络运维自主研发优秀奖。


01 背景


2018年是我省基站开通持续发力的一年,而武汉市则是自主开站工作的重中之重。然而,前期武汉使用的爱立信FDD设备的开站脚本只能通过爱立信南京相关部门统一远程制作,且制作周期至少在1周以上,严重影响武汉FDD开站的进度。


爱立信FDD开站脚本包括6个xml文件和8个mos脚本命令文件,各脚本文件内对象关联关系复杂,且无文档资料指导相关脚本文件的修改,在爱立信内部也只有南京部门可以统一制作相关脚本,现场开站工程师手工制作脚本进行开站的可行性几乎为零。全国爱立信FDD开站脚本均通过爱立信公司集中远程制作,该技术壁垒严重制约了我省FDD自主开站工作的开展。


为了攻克这个技术难关,保障武汉市FDD开站的进度,网优中心成立中心内部跨专业的自研团队,开始了“自力更生”开发爱立信FDD开站脚本制作工具的征程。


02 用例分析


我们利用UML软件建模技术开展需求用例分析建模工作,通过团队充分讨论确认主要的2个用例模型:


(1)全量脚本生成: 开站工程师手工上传基站配置表,平台接收到基站配置表后进行解析处理,生成基站开站字典,根据基站开站字典,生成开站脚本。


(2)脚本备份: 当服务器端收到开站工程师上传基站配置表,timer会在服务器端生出开站脚本以后,进行一次备份数量,将相关的数据保存在后台的服务器上。



在本项目中,核心是能够根据基站的个性化参数,生成用于开站的脚本。


03 分析模型


目前核心的用例是需要生成开站脚本,也就是专业术语称为 Data Script。所以考虑的分析模型主要包含以下的对象:


(1)CSV Loader:基站参数文件读取。


(2)File Parser:解析基站参数,并按照一定的结构组成成为一个基站开站字典。


(3)Site Dict:记录了每个基站用于开站所使用的信息结构,可用于生成开站所需的DT。


(4)XML getter:是一个接口对象,其入参是Site Dict,而返回值是SiteData Transcript。


(5)XML maker:是一个控制对象,其根据用户上报的基站开站字典,生成开站脚本。而XML maker由模板引擎Template Engine 和Template HUB组成。


(6)Template Engine:模板引擎可方便的将基站数据和模板文件进行组合,实现弹性的文件渲染功能。


(7)Site Template Hub:其中保存了用于生产开站脚本的模板,根据领域对象分析,需要保存00~04共5类模板。


(8)Site Data Transcript:是用于开站的文本文件,是XML格式的。


本项目的核心对象是XML-getter和XML maker,考虑开站脚本的集中化制作,确定采用分布式部署的方法。


04 设计模型


根据前面分析,我们决定采用分布方式的方案来实现XML-getter 和XML maker的部署。以考虑采用web-api的方案来实现。总体架构如图所示: 



考虑到应用的方便性,我们考虑采用服务器+客户端的应用模式,采用这种方案主要的好处有:


Ø 客户端仅仅负责文件的输入,输出处理。


Ø 服务器端负责比较复杂的脚本生成工作,以及集中备份


Ø 服务器和客户端之间采用标准的web-api方式进行协作,方便进行扩展。


服务端采用Django Webapi和jinja2模板引擎提供脚本服务


05 客户端设计


客户端设计如图所示,相关的处理组件说明如下: 


 

(1)xls2df: 为数据预处理组件,他负责读取相关的xls文件,提取其中的信息结构,并分别生成两个DataFrame 对象,(基站+小区)。


(2)genxml:是核心的控制组件,他首先负责将DataFrame 对象进行迭代处理,生成一个基站开站字典,也就是Site对象; 第二他会调用gensitefile对象来生成开站的xml文件。


(3)gensitefile:他负责调用Getwebresponse对象,准备入参,获取返回数值,并最终生成文件。


(4)getwebresponse:他负责将site对象和template对象进行组合,并调用web-api方法,提取返回数值给gensitefile对象。


06 服务端设计


【视图函数设计】


根据前面的分析,使用django框架以后,整个分布式的设计方案简化为视图和模板的设计管理,相关的概念模型见下图:



下图为最核心的业务处理逻辑,其中包含了最重要的业务处理逻辑。 主要的处理逻辑为:


(1)view函数会检测httpPost 请求,通过http Post 方法,提取其中的携带templatename 和site的结构化数据。


(2)服务端通过jinja2render的模块,选择对应的template并进行render为XML返回客户端。



【模板库】


根据前面的领域对象模型分析,相关的爱立信的开站工作需要涉及到6个xml文件和8个mos脚本命令文件,我们将编写好的模板文件保存在服务器端,这样可以根据需要统一修改。



【APP 封装】


在django的设计框架中,采用的是插件化的设计机制,所以将相关的代码进行一个插件化的封装,设计模型如下:



07 总结与展望


经过历时两个月的开发测试验证,爱立信FDD开站脚本制作工具于2018年6月上线,上线3个月即完成2600余站点开站脚本制作,按爱立信前期单站次700元报价,为公司节约180余万元。


利用模版引擎进行开站脚本生成。可以将开站业务逻辑封装在配置模板中,在开站业务逻辑调整时,可以不修改程序代码实现快速且动态的业务逻辑变更。有效应对了前期开站业务逻辑快速临时调整性需求。业务逻辑变更通常可以在1天之内完成上线应用。该方案还可扩展到所有通信网络设备脚本制作领域,进一步打造统一脚本制作平台。

*专家文章为作者独立观点,不代表移动Labs立场. 转载此文章须经作者同意,并请附上出处(移动Labs)及本页链接。

0