台站设备通信数据存储工具设计
2020-06-11
(广西广播电视技术中心)
一、引言
当前广西广播电视技术中心管辖的无线发射台站数量已达800多个,各台站内使用的设备品牌、种类繁多,大部分通讯协议均使用TCP/UDP协议下的自定义数据结构,且各种设备均不相同。所有设备的运行数据目前统一由远程监控系统进行接收保存,而远程监控系统的数据采集均是通过网络传输,考虑到网络连接必然存在各种不可预知的风险,网络传输万一断开,台站设备运行数据便无法实时收集,不利于运维工作的开展,进而可能影响安全播出。
由此考虑开发一套部署于台站的数据存储工具,实时采集接收各台站设备关键数据,以便于在任何需要的时候,进行设备数据调取查阅,同时为台站运维工作提供便利。
二、设计过程
(一)需求分析
工具软件基本设计要求:
工具软件可运行在现有台站服务器上;兼容当前大部分台站设备;可灵活动态配置台站、设备、命令结构信息;可以主动发送命令;可长期保存接收的数据,亦可作为临时调测工具使用。
(二)开发设计
1.基本流程
数据存储工具接收、解析数据基本流程如图1。
2.兼容性设计
从开发难度、可维护性、通用性上综合衡量,并结合目前大部分服务器操作系统为Windows的特点,调试工具开发采用C#编程语言,底层框架为兼容Windows所有系统版本的.NET Framework 3.5框架。
图1 基本流程
通过对各设备的通讯方式进行研究,发现大部分均采用TCP/UDP方式进行通讯;因此在接收处理数据报文时,首先是将报文数据直接以十六进制方式保存到数据库,然后再根据报文来源设备的类型,对报文进行解析。接收数据和解析数据的工作互不干扰,这样既可以很好的保证数据接收的稳定性,也保证了数据的完整性。
3.配置设计
工具需要兼容所有的台站和设备,为了使用灵活,设计了设备信息表、设备类型表、类型结构表等配置信息表,并使之关联起来:
设备信息表用于记录各个设备的地址、端口、设备类型等字段信息,其中设备类型字段关联设备类型表;
设备类型表用于标记该设备的类型,如电源复位器、六路协调器、发射机等;
结构类型表以设备类型表为基础,保存了各个设备类型对应的报文结构,包含了该报文需要解析的信息,如顺序、类型、长度等。
通过多个信息表数据,很好的满足了存储工具对兼容设备多样性的要求。
4. 数据库设计
根据工具数据库既可以长期保存接收的数据,也可以当作临时调测工具使用的要求,对应两种情况,分别采用SQL Server和Access数据库。
当工具需要在台站长期运行时,采用SQL Server数据库,它的高性能可以很好的保证数据的存储,而且SQL Server具备非常良好的易用性,便于后期维护。
当需要把工具作为临时调试工具时,采用Access文件数据库,它兼容Windows环境,具有小巧便捷免安装的特点,便于在各种维护情况下使用。
在对台站设备数据进行接收、解析时,随着时间的积累,数据量会非常大;所以在保存数据时,采用月表(每个月一张数据表)的方式进行保存,这样可以很好的保证工具运行的稳定和高效。
(三)逻辑和原理
1.通用通讯协议
在分析设备类型时,发现使用通用通信协议的设备的主动报文是动态配置的,如果运维人员根据需要调整了主动报文的结构,会导致工具就无法解析数据报文;于是根据通用通讯协议主动报文自带结构参数的特性进行特别处理,在初始化通用通讯协议的结构类型表时,将所有参数全部录入;在接收来自于支持通用通讯协议设备的数据报文时,工具自动解析数据报文所包含的参数,并和结构类型表的参数自动匹配、建表;由此实现解决工具因为设备主动报文结构的调整导致数据无法接收的情况。
2.主动发送命令
数据存储工具除了接收设备主动报文,还增加了主动发送命令的功能;在初始化设备信息时,通过添加主动命令及定时间隔;工具将根据配置,定时发送特定命令到目标设备;通过此功能,工具可以获取除主动报文外的数据信息。
3.数据解析处理
台站工具在需要长期运行,当数据量积累到一定数量时,必定会造成工具运行缓慢,甚至导致工具无法工作。于是在开发设计时进行了相应的优化,解析成功的源数据不再保留、一定时间内的特定类型数据如果重复则不接收。
4.数据库操作
图2 类型结构参数
图3 数据展示
在对数据库进行读写操作时,需尽量避免交叉使用,特别是在对源数据表读写上,接收数据时保存和解析数据时读写操作容易造成数据锁;为此在接收到数据报文时,数据报文首先保存到队列中,下一步再进行入库操作,而解析数据时,首先将一小段数据保存至另一个临时表,这样可以有效降低对源数据表读写操作的频率。
5.容错能力
台站环境复杂,设备厂家、类型、协议多种多样,工具软件功能的复杂性等,工具软件的稳定性非常重要,即对工具容错能力提出很大要求;在开发时,每一个重点操作均需对可能出现的异常进行处理,如解析数据时数据类型之间的转换、保存入库时类型的转换、不同数据库类型间的差异化等。
6.多线程处理
工具在处理数据接收、保存、解析、查询时,多线程技术的使用尤为关键,尤其体现在界面操作的用户体验上;在使用多线程时,巧妙的使用线程委托技术,实现线程与界面进行交互,可以非常有效的提升使用效果。
(四)功能和界面
1.参数配置
在参数设置界面,每个参数的新增录入,工具均会提供默认值或参考值,并且伴有相应的提示信息,确保参数正常;在结构参数录入时,尤其需要注意参数的先后顺序。
2.数据接收
设备发出数据报文,工具接收到数据报文后,根据配置的设备地址及端口等判断是否来源于目标设备,是则保存,否则丢弃该数据报文;保存时判断该报文类型是否为自带结构参数的类型,是则自动解析出参数,然后根据参数创建数据表。
3.数据解析
从数据库分批获取保存的源数据信息,工具根据源数据信息记录的参数信息,判断报文结构并解析数据,解析成功则保存到分表,源数据信息删除;解析时需区分该报文类型是否为自带参数类型,根据数据报文长度进行截取转换为可视数据后存入分表。
4.结果查询
在运维人员进行数据查询分析时,解析后的报文数据通过表格形式展现,列表上方提供了检索功能;左边区域以结构类型为基础,显示设备结构类型树。
当选中某个设备类型时,右边区域动态初始化,表格显示、检索区域在初始化时,通过读取后台对应结构类型信息进行对应显示,这样方便后期运维查询和数据筛选。
三、总结
台站数据存储工具,可以很好的对台站设备的数据进行保存处理,很好的为台站的运维工作提供了便利,并且作为远程监控系统的一个很好的补充,为单位安全播出工作的开展也提供了有力的支撑。