华为北向网管NCE开发教程(1)闭坑选接口协议
华为北向网管NCE开发教程(1)闭坑选接口协议
华为北向网管NCE开发教程(2)REST接口开发
华为北向网管NCE开发教程(3)CORBA协议开发
本文一是记录自己开发华为北向网管遇到的坑,二是给需要的人,提供一点便利,方便后来的人少走弯路,篇幅太长,分几个章节写,这个章节主要以我自身经历,在进行开发前,避坑。
说一句吐槽的话,连家里的体称器都是华为的,电子产品基本都是华为的,一直都是华为的忠实粉,但是不得不吐槽一句,经过这次北向网管,不得不说吃相是真的难看。对接华为北向网管,是我作为程序员生涯最让人无语的一次开发经历,总之就是得加钱!
在开始北向网管之前,需要有北向网管接口及其相关文件资料,参考资料如下,本文将给你一个参考,减少你的开发成本

确定使用的华为北向接口(极其重要)
华为北向接口,通过上述我手中的资料,不难发现,接口类型有很多,选择一个合适,且能用的接口,真的太重要了,不然,你白搭。这个尤其重要。
- corba
- kafka
- snmp
- xml
- rest
- omc
通过我的经历来,来让你们知道选对接口多么重要
首先作为技术来说,看到有kafka,其实还是觉得用kafka比较好的,毕竟用mq的方式,尤其采集数据这种,数据量一上来,消息队列是首选,但是经过我的慎重选择,一开始我选择用REST开发,但是最后用CORBA。血的教训
- 华为北向网管大概是在我入职没有多久的时候,确定下来要做的事,作为一名技术从业者,当然我选择用kafka,你非得理由,理由就是大数据量用MQ比较好,并且感觉用kafka逼格会高一点
- 实际上是我入职两年多了以后,这个项目才开始启动,这时候我对公司也比较了解了,和很过国企央企一样,很多项目代码水平能到2017年,就谢天谢地了,所以我放弃使用kafka,准备使用rest,别问,问就是用kafka,无异于让人家刚幼儿园毕业,就让人家去读大学了。(七八年后端开发经验的人,不知道rest、kafka是什么的程序员很多)
- REST开发的方便性和效率,甩corba远的不是一丁半点的距离,当然,主要原因还是,华为的北向网管的corba接口,写的是在是太烂了,很多接口看不懂,不知道怎么传参数就对了,确定好用REST接口开发以后,我就开始看接口文档了,接口文档很大,大到公司电脑打开就死机。莫得办法,用家里64G内存,13代I9处理器的电脑,转成了PDF格式,这REST接口文档,才能正常在公司打开。
- 接下来就是去客户现场,看下他们的华为北向网管系统,嗯,确定一个事,网络账号都是问题,反正就是ping不通,telnet不通,客户现场人员都是技术小白,不知道什么叫做端口,也没有网管,没有运维,有个华为的在远程支援。折腾了三天,终于网通了,账号能用了,测试了下,他们目前的corba能用,但是rest接口不能用,看了下客户现场的license是有rest的(至少那会儿我以为有,我也看了系统里面的license,确实有rest接口)。客户现场和华为那边支援的也给我们保证了,他们会配好了rest接口,能用rest接口采集数据。让我们尽快入场,早日推动开发。
- 因此我们回到自己单位,我们实验室也有华为北向网管系统,因此在我们实验室,按照用户操作指南,开启了REST接口,从我开始第一次配置,到我抓取数据结束,就仅仅用了一下午而已。以下是我第一次接触华为北向网管采集了我们需要的数据,每个数据用哪个接口,请求参数,响应参数如下面的形式。这也是我用REST的原因,只需要找一台能连接网管系统的电脑,上面安装了能测试API接口的软件即可,例如postMan,知道接口,请求参数就能开始调试接口了,拿到报文以后,在回到工位上打开GPT,然GPT根据报文生成java对象,这不分分钟就做完了嘛

- 写完代码,于是准备去客户现场了,采集真实数据看看,好家伙到了现场,蒙蔽了,别说REST接口能用了,特码的,网络都不通,折腾了一下午,网终于通了,然后端口没通,这就是客户和华为那边给我们说的,你们需要的REST接口能用了,快来入场开发采集数据吧,你就说坑不坑吧。
- 第二天华为那边很忙,一直不搭理我们,然后给我们说的已经配置好的REST也没配置,我说,我知道怎么配置,你给我账号密码,我自己来配置,配置完了以后,一调接口赫然出现的返回报文,惊呆了我的双下巴。然后蒙蔽的联系客户现场华为,他真的很忙,忙到我在客户现场前后出差8天,我都没看到这个人过,打电话给他反正沟通下来也不知道怎么回事,最后就说,我们要用的REST没有license,然后我们就说,之前不是说license的吗?我们也登录系统,看到有license的啊,怎么现在就没了
{"code": "LICENSE_INVALID", "description": "License limit."
}
- 最后得出,要使用REST接口,还需要买一个叫做消耗量的东西,我理解就是类似叫做流量的东西。并不是你办理了一张上网电话卡,你就能上网了,你还得买流量。
下面这是SNMP、CORBA、XML接口用的license,可以看到是永久

下面这个是REST、Kafka的license,也是永久的

但是为何CORBA能用,而REST就是LICENSE_INVALID嗯?
原来里面还有一个叫做《消耗量/容量》的东西
消耗量/容量 > 120% ,license将直接不能用
消耗量/容量 < 100% ,license一直可用
100% <消耗量/容量 < 120% ,license只可以在用三个月看上面的消耗量
REST
588.9 / 12 这已经不知道超出多少个百分之20了,直接不能用了CORBA
206.3667 / 205 超出的部分,在百分之20以内,还能用3个月,
华为方面表示
CORBA保证一定想办法给我们能用,但是REST不保证,
因为当初买他们设备的时候,华为只答应给CORBA,没有答应给REST,
REST属于增值服务,得加钱!得加钱!得加钱!得加钱!
加多少,得和商务谈判,跟他们技术人员无关
之前一再强调能不能用REST开发的时候,你们说可以,现在用REST开发完了,然后说不可以,得加钱买消耗量,才可以用REST,我特娘的代码都写完了,你来一句要用得加钱!最后还是我们承担了开发成本,从新用CORBA开发吧。
- 用CORBA就CORBA吧,想着弄个北向接口测试工具NBITestTool来提前测试下接口,按照文档操作手册,最后我发现,还是得加钱,不加钱,你根本拿不到这个测试工具。
你以为你照着文档能到这个界面下载软件么?

实际上你根本照着这个文档就找不到上面的这个下载页面。好不容能一顿百度找到了以后,你以为你能下载了,不要意思,你点下载看到的是这个,还是那句话,得加钱!得加钱!得加钱!得加钱!得加钱!得加钱!

总结:
- 如果你要开始华为北向网管,或者中兴北向网管、烽火北向网管等等,首先第一个事,确定客户现场到底能用什么样的接口来开发,一定要在三确定,别像楼主一样,饶了几大圈,最后还是用corba开发。
- 华为的REST、Kafka属于增值服务接口,需要额外掏钱,这个看你项目是什么情况了,比如,如果你们是第一批用他们北向网管的,那就想办法说服客户,让他们买REST的增值服务,CORBA那玩意,无论开发效率还是维护性,可读性,调试性,跟REST完全没得比。那个CORBA接口文档,写的跟屎一样,写接口的人和写代码的人是两波人吧?
- 如果你们不是第一批采集数据的,避免风险,前面的人用什么接口协议采集数据,你们就用什么。
- 最后在吐槽一句,当初写华为北向网管CORBA接口文档的人,以及现在维护接口文档的人,真该拉出去枪毙了,拿那么高的工资,写的什么垃圾玩意文档。
- 通过华为北向网管这次接口对接,我是发现了,得加钱!得加钱!得加钱!得加钱!不加钱都是无解的。
相关文章:
华为北向网管NCE开发教程(1)闭坑选接口协议
华为北向网管NCE开发教程(1)闭坑选接口协议 华为北向网管NCE开发教程(2)REST接口开发 华为北向网管NCE开发教程(3)CORBA协议开发 本文一是记录自己开发华为北向网管遇到的坑,二是给需要的人&…...
JavaScript极速入门-综合案例(3)
综合案例 猜数字 预期效果 代码实现 <button type"button" id"reset">重新开始一局游戏</button><br>请输入要猜的数字:<input type"text" id"number"><button type"button" id"button&q…...
RabbitMQ架构详解
文章目录 概述架构详解核心组件虚拟主机(Virtual Host)RabbitMQ 有几种广播类型 概述 RabbitMQ是⼀个高可用的消息中间件,支持多种协议和集群扩展。并且支持消息持久化和镜像队列,适用于对消息可靠性较高的场合 官网https://www.…...
编译内核错误 multiple definition of `yylloc‘
编译内核错误 # make ARCHarm CROSS_COMPILEarm-mix410-linux- uImageHOSTLD scripts/dtc/dtc /usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss0x10): multiple definition of yylloc; scripts/dtc/dtc-lexer.lex.o:(.bss0x0): first defined here collect2: error: ld ret…...
深度学习模型部署(四)常用模型及推理平台评估指标
判断选择什么模型,什么量化方案,什么推理框架,最基础的知识就是如何评估自己的模型以及推理平台。 模型衡量标准 衡量一个模型的最直接标准就是运算速度,但是运算速度是无法计算的,所以定义了一些间接标准来推测模型的…...
【控制台警告】npm WARN EBADENGINE Unsupported engine
今天用webpack下载几个loader依赖,爆出了三个警告,大概的意思就是本地安装的node和npm的版本不是很匹配? 我的解决思路是: 先检查node和npm版本 然后去官网查找版本的对应 靠,官网404 Node.js (nodejs.org) 就找到…...
ArmSoM Rockchip系列产品 通用教程 之 GPIO 使用
1. GPIO简介 GPIO,全称 General-Purpose Input/Output(通用输入输出),是一种在计算机和嵌入式系统中常见的数字输入输出接口。它允许软件控制硬件的数字输入和输出,例如开关、传感器、LED灯等。GPIO通常由一个芯片或…...
npm镜像源地址
镜像源地址替换问题(重要) 2024 年 1 月 22 日 ,registry.npm.taobao.org 的 SSL 证书正式过期。 2022 年 5 月 淘宝源发布了公告: (大家应该没有太多关注哦,也包括我,哈哈) &am…...
Java的Writer类详解
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java SE相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…...
R语言基础的代码语法解译笔记
1、双冒号,即:“::” 要使用某个包里的函数,通常做法是先加载(library)包,再调用函数。最新加载的包的namespace会成为最新的enviroment,某些情况下可能影响函数的结果。而package name::funct…...
【蓝桥杯】蓝桥杯算法复习(一)
😀大家好,我是白晨,一个不是很能熬夜😫,但是也想日更的人✈。如果喜欢这篇文章,点个赞👍,关注一下👀白晨吧!你的支持就是我最大的动力!Ǵ…...
移动端精准测试简介
在测试领域每隔一段时间,就会有一些主流的测试技术,比如说:接口自动化,WebUI, AppUI自动化,然后就是测试平台的开发,各类专项测试(性能,安全),再到前几年的手机集群云测平…...
CCProxy代理服务器地址的设置步骤
目录 前言 一、下载和安装CCProxy 二、启动CCProxy并设置代理服务器地址 三、验证代理服务器设置是否生效 四、使用CCProxy进行代理设置的代码示例 总结 前言 CCProxy是一款常用的代理服务器软件,可以帮助用户实现网络共享和上网代理。本文将详细介绍CCProxy…...
探秘分布式神器RMI:原理、应用与前景分析(二)
本系列文章简介: 本系列文章将深入探究RMI远程调用的原理、应用及未来的发展趋势。首先,我们会详细介绍RMI的工作原理和基本流程,解析其在分布式系统中的核心技术。随后,我们将探讨RMI在各个领域的应用,包括分布式计算…...
[项目设计] 从零实现的高并发内存池(三)
🌈 博客个人主页:Chris在Coding 🎥 本文所属专栏:[高并发内存池] ❤️ 前置学习专栏:[Linux学习] ⏰ 我们仍在旅途 目录 4.CentralCache实现 4.1 CentralCache整体架构 4.2 围绕Span的相关设计…...
将Q算法和D算法结合应用到llm解码上之人在回路
将Q算法和D算法结合应用到llm解码上之人在回路 参考地址代码解释 参考地址 https://dongfangyou.blog.csdn.net/article/details/136466609 代码 import numpy as np from tqdm import tqdmfrom sample import net, char2id_dict, get_real_p# 假设的词汇表 VOCABULARY lis…...
el-table-column嵌套el-form-item不能进行校验问题解决
项目为vue3elementPlus开发的项目 业务要求:table表格展示数据,其中有一行是ip地址可展示可修改,此处要求增加自定义校验规则 先看一下效果: 此处先描述一下,问题出在了哪里,我将el-table的data,使用一个…...
leetcode200. 岛屿数量
leetcode200. 岛屿数量 题目 思路 遍历每一个网格,若网格为1,岛屿数量1,利用一个深度优先搜索函数将岛屿置零,注意判断数组边界 代码 class Solution:def numIslands(self, grid: List[List[str]]) -> int:self.grid grid…...
MySQL--索引类型详解
索引的类型 主键索引: PRIMARY KEY,当一张表的某个列是主键的时候,该列就是主键索引,一张表只允许有一个主键索引,主键所在的列不能为空。 创建主键索引的SQL语法: # 给user表中的id字段创建名为id_ind…...
R语言中ggplot2图例位置、颜色、背景、标题
目录 1、不显示图例 2、自定义图例位置 3、修改图例背景颜色、外框颜色、大小 4、修改图例大小 5、图例设置背景、线框为空 6、自定义设置多个图例的标题 7、设置多个图例的之间的间隔 8、取消不需要的图例显示 1、不显示图例 theme(legend.position "none"…...
基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习
禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
安卓基础(Java 和 Gradle 版本)
1. 设置项目的 JDK 版本 方法1:通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分,设置 Gradle JDK 方法2:通过 Settings File → Settings... (或 CtrlAltS)…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
