B接口使用文档
什么是B接口
通常意义上讲,B接口是相对与A接口和C接口而言,A接口指FSU和设备通信的接口,B接口指FSU和SC通信的接口,C接口指SC之间通信的接口。
实际应用中,B接口通常指代一种相对标准的基于WebService的Fsu和SC的通讯协议。各个行业客户通过规范通信信令的细节,FSU和SC的厂家可以基于同一个B接口规范分别开发系统,就可以进行正常的配置读取和下发,遥测、遥信、遥控的正常使用。
B接口有那些优势
- B接口避免使用厂家私有协议进行对接,较大地方便了系统内的数据互通,提高了系统的可维护性。
- B接口标准化了设备信号,在一定程序上规范了数据,在常用数据信号上使用较为方便。
- 基于WebService技术接入技术比较统一,研发相对容易。
B接口有那些劣势
- WebService的WSDL兼容性较差,不同厂商的wsdl接口即使表面看接口相同,实际也不兼容。
- 相对比其他直接基于tcp的协议,WebService的性能损耗较大,对FSU的处理能力提出了要求,并且很难保证实时传送。
- B接口信号字典的信号较少,造成大量的原厂设备协议信号的抛弃。
- 部分设备信号定义比较模糊,DI和告警对用户不友好。
研发B接口有哪些困难
- B接口不仅仅是一套WebService的通信规范,它还对一些辅助功能也有要求,比如ftp和门禁用户下发功能,基本就要求FSU必须具备ftp服务器和数据库支持。
- B接口由于使用的WebService技术,WebService在各种开发语言的配合使用中经常遇到兼容性问题,需要调测解决
- B接口仅仅定义了SU和SC的交互信令,对交互过程及过程中的数据格式规范不够严格,理想状态下SU和一个厂家的SC对接后,和其他任意厂家的SC都应该无痛对接,实际是SU基本上都需要和每个SC单独调测兼容。本质原因是B接口认证机构扮演的是SC的角色,测试过程对SU进行的规范测试,但是并不能保证所有SC厂家实现的机制和认证机构相同
- B接口对错误信息的定义比较简单,在调测中SU和SC的交互,正常的时候正常,错误的时候服务方往往直接500错结束,对错误的定位和修改基本没帮助,通常需要SC厂家研发维护人员配合,查代码查错误日志才能明确错误,如没有SC厂家人员对接,调试过程更加困难
- 研发B接口功能的验证需要进行大量的测试,才能满足实际需求
当前有哪些B接口规范
目前已知较为成熟且已较大范围使用的B接口有:
- 铁塔B接口
- 联通B接口(FsuOS已经支持)
- 电信B接口(FsuOS已经支持)
- 移动B接口
- 南方电网B接口
FusOS B接口的实现方式
FsuOS B接口的架构如下图所示:
SMDDevice主采集系统 -- B接口信号映射配置 -- 联通B接口配置文件 -- 联通B接口子模块
-- 电信B接口配置文件 -- 电信B接口子模块
-- 移动B接口配置文件 -- 移动B接口子模块
-- 铁塔B接口配置文件 -- 铁塔B接口子模块
SMDDevice主采集系统:负责设备A接口的数据采集,得到设备协议的原始解析数据。
B接口信号映射配置:对原始数据进行B接口信号映射,通过加载不同的B接口配置文件,生成不同B接口信号。
XX-B接口配置文件: 这些针对不同的客户需要进行信号映射,具体配置规则参考下一章。
B接口配置文件的组织方式:
- 所处目录 /opt/www/application/helpers/ini
- 客户类别: telecom,unicom,mobile,tower,csg
- 以驱动文件命名的配置文件: water2.yaml water2.ini 所有同类型设备可用
- 以设备data_id命令的配置文件: 480.yaml 480.ini 本设备专用
加载次序:例如当前是联通B接口模式,水浸设备 驱动:water2 data_id:480
- 若 /opt/www/application/helpers/ini/unicom/480.yaml 存在,则加载,结束
- 若 /opt/www/application/helpers/ini/unicom/480.ini 存在,则加载,结束
- 若 /opt/www/application/helpers/ini/unicom/water2.yaml 存在,则加载,结束
- 若 /opt/www/application/helpers/ini/unicom/water2.ini 存在,则加载,结束
- 否则无B接口配置信息
联通/电信/铁塔/移动等B接口子模块:实现各个厂家的B接口规范,完成和SC端的对接。