动力环境监控系统的消息传输协议设计研究

时间:2022-05-19 10:24:28

【前言】动力环境监控系统的消息传输协议设计研究由文秘帮小编整理而成,但愿对你的学习工作带来帮助。电信部门对于系统互联协议有自己的标准,但这些协议仅针对系统作为一个整体与其他系统互操作而设计,没有定义与水平可扩展性等相关的内容,直接使该标准将显著增加实现的难度。 鉴于以上原因,研究设计一套适用于监控系统的消息传输协议是必须的。本文所讨论的协议借鉴了M...

动力环境监控系统的消息传输协议设计研究

摘要:电信机房用的动力环境监控系统需要有很高的性能及可扩展性,电信部门对于系统互联协议有自己的标准,但这些协议仅针对系统作为一个整体与其他系统互操作而设计,没有充分考虑大型系统的架构,没有定义与水平可扩展性等相关的内容。本文旨在研究设计一种消息传输协议,以满足动力环境监控系统内部各子系统之间的数据交换要求。

关键词:分布式动力环境监控系统;消息传输;协议;消息中间件

1 研究背景

分布式集中监控系统广泛应用于电力、通信等行业。这类系统通常很庞大,有很多的子系统,比如数据采集子系统、数据处理子系统、告警服务子系统、备份子系统等,这些子系统彼此之间需要通信和数据交换。出于系统扩容能力及对其他系统的接入能力的考虑,需要一种松散耦合的接口;并且由于对性能要求高,在协议设计时应尽可能考虑支持异步操作。

举例:发生“告警雪崩”的时候,可能会有数千甚至于上万条告警,需要在短时间内被处理。如果采用中间件来传输,势必导致整个系统处于挂起状态:系统忙于处理传输告警而导致监控界面无法响应操作员的指令,不能及时处理新的数据。

电信部门对于系统互联协议有自己的标准,但这些协议仅针对系统作为一个整体与其他系统互操作而设计,没有定义与水平可扩展性等相关的内容,直接使该标准将显著增加实现的难度。

鉴于以上原因,研究设计一套适用于监控系统的消息传输协议是必须的。本文所讨论的协议借鉴了MOM的架构,但又除去了MOM的复杂性,再在消息处理方式上尽可能使用异步方式,大大地提高了性能;而在协议实现方面使用分层实现,即分为原语层、消息传输层,以API共享库的形式实现。使用协议的各子系统只需调用原语层接口,消息传输层可以TCP/IP、MOM等技术实现。这样一来,可以根据实际情况选取底层传输技术。

2 系统的总体架构

系统总体结构同使用MOM的情形相同,如图1所示。消息服务器是整个消息传递系统的中心,一般只需一个,可以增加备机避免单点失效。对特别大的系统可设多个,并设单独的通道以便在消息服务器间路由消息。图中除消息服务器外的其他系统均可以有多个,以便扩容之需。

每个连接到消息服务器的系统都在消息服务器上开设一个单独的队列来缓存消息。

数据采集服务器。担负采集现场FSU的数据的任务,负载受扩容的影响最大。提供操作台要查看的实时数据,产生状态变化事件,历史数据等消息。

告警服务器。根据数据采集服务器的状态变化事件执行告警逻辑。由于数据采集服务器负担很重,系统中又配置了很多逻辑告警,于是为了减轻数据采集服务器的负担,将告警逻辑移到单独的子系统上执行。

数据存储服务器。执行存储数据的动作。数据入库是一类非常耗时的工作,为了避免执行入库阻塞其他任务,尽可能采取异步作业的形式以提升性能。利用消息服务器的队列的缓存功能,数据存储服务器可以以一个合适的速率将短期内产生的大量数据存入关系数据库。

C接口接入服务器。提供规范[1]要求的对外部系统的接口。

操作台。执行日常的四遥、告警处理、查询等功能。

系统监视器。监视系统运行,提供疹断信息。可用来监测消息发送的情况。

其他子系统。

3 主要原语

3.1 管理原语

订阅/退订消息原语。订阅感兴趣的公告消息。消息体需包括要订阅的消息标签、数据ID清单或设置订阅/退订全部选项。消息服务器为每一客户端维护一个订阅清单,据此清单处理订阅;数据的提供者将负责公告被订阅的数据,如数据采集服务器公告事件,告警服务器订阅事件并公告告警,操作台订阅并显示告警。

配置变更原语。在运行中的系统仍需在不停止生产的情况下变更配置,因此在业务操作台处理完配置变更之后,由处理的那台业务操作台发出变更消息,通知各子系统应用新的配置。因此,任一子系统都必须订阅此类消息。

3.2 事件通知原语

数据采集服务器在检测到监控量发生变化,达到设定的触发条件时,发出状态变更事件,通知需要用到相关事件的子系统。告警服务器是事件通知的主要使用者之一,其二是用于与外部系统联动。

3.3 告警原语

当事件足以触发一条告警时,由告警服务器发出,主要由操作台接收,也用于联动。

3.4 数据请求/响应原语

数据请求/响应原语可以公告或点对点的方式发出,主要用于下列情形:

操作台查看实时监控数据。由于操作台的界面一次能显示的数据非常有限,因此只需要请求要显示的数据即可,不必发送全部的数据到监控台。监控台根据配置信息找到所要数据属于哪个数据采集服务器,再发出数据请求原语。原语内容应包括消息标签、接收者标识、接收者业务系统类型。接收者标识不应入配置数据库。如果操作台初次启动,可能没有接收者标识信息,这时应以公告方式发出数据请求,待得到响应之后,从响应信息中得到接收者标识;得到标识以后的请求应以点对点方式发出,以减少公告方式带来的性能损失。接收者标识不入配置数据库,这样服务器出故障时可以用备机快速替代。

操作台查看当前活动的告警。如果操作台在告警发出之后启动,就再也收不到通知;而使用数据请求原语可从告警服务器取得已经发过通知的当前活动的告警。

告警服务器查询数据采集服务器,查询与告警逻辑相关监控量的状态。如果状态已经公告过就不会再次公告,通过此原语可以使当告警服务器在通告发出之后启动时仍然可以得到监控量的状态 ;如果数据采集服务器曾经停机,告警可能已经在停机期间解除或者产生,因此数据采集服务器不可能再发出解除告警的通知,使用数据请求原语可以执行数据同步(对于操作台查看实时数据的情形同样如此)。

3.5 操作原语

操作原语主要用于遥控被监控的对象,或遥调其运行参数。一次成功的操作包括:查询作对象―发出操作指令―检查操作结果。查询使用公告方式,发操作指令及检查结果用点到点方式。

4 结束语

通过本协议,使得系统之间的耦合度降到最低,扩容只需增加机器即可,扩容能力几乎不受限制,接入方法简便。异步数据处理方式能极大地提高数据吞吐量;事件通知方式仅发送发生变更的数据,将需要发送的数据减至最少,辅以同步功能消除数据的不一致性;子系统标识动态查询方式可以方便地替代故障机而无需整个系统停机;配置变更通知可使系统配置变更时无需重新启动。协议可以多种技术实现,更换不同的技术只需更换与协议的程序库,无需修改系统。因此,该协议充分考虑到了大型系统的架构,能较好地适应省一级大型分布式动力环境监控系统。

参考文献

[1]中国移动通信有限公司网络部.中国移动通信动力及环境集中监控系统技术规范:C接口规范:3.5.0版,2009.

[2]中国移动通信有限公司网络部.中国移动通信动力及环境集中监控系统技术规范:B接口规范:1.0.0版,1996.

[3]王常力,罗安.分布式控制系统(DCS)设计与应用实例[M].北京:电子工业出版社,2004.

上一篇:高校计算机专业数据库原理课程教法探讨 下一篇:如何实施高效的OA工作流审批?