专利名称:一种跨安全区查看前置报文的方法
技术领域:
本发明用于电力调度自动化系统,涉及在调度自动化系统中,通过电力二次系统 安全三区订阅查看安全一区通道的准实时报文的方法,为一种跨安全区查看前置报文的方 法。
背景技术:
电力二次系统的通道接入调试和通道运行状况诊断一直是调度自动化建设和运 行过程中非常重要的工作环节。通过查看通道报文来调试和诊断通道运行状况则是远动运 行维护中频繁使用的一项手段。根据《全国电力二次系统安全防护总体方案》的要求,电力调度自动化系统分为 4个安全区 ,分别为安全一区,实时控制区;安全二区,非控制生产区;安全三区,生产管理 区;安全四区,管理信息区。目前在通道调试时,通常通过电话询问、或者下载拷贝等人工方 式获取本端和对端报文内容,这些一般都需要运行维护人员进入远动机房,登录到安全一 区的服务器上才能获取。这些方式常常具有以下缺点第一、获取报文内容困难。前置报文通常使用指定的格式存放在指定的路径下,不 同的调度前置系统,其格式和位置各不相同。在查看时,需要使用专用工具才能浏览阅读。第二、效率不高。电话询问或人工下载都需要专人配合,处理周期长。尤其在查询 对端报文时,如果对端无人配合,则工作将无法继续开展。第三、安全性差。电话询问和下载拷贝都需要登录到安全一区服务器,下载拷贝更 是增加了非安全介质或机器接入整个系统的可能性。登录或下载过程中的一旦发生错误的 人工操作,都将对系统运行产生一定影响。第四、可靠性低。语言很难精确的将大量的报文完整地描述出来,而在发生问题 时,错误的报文往往只有短短几个字节,甚至只有几位。第五、实时性不够。报文具有很强的实时性和突发性,一些报文是随着系统中一些 操作产生,比如开关变位、遥控命令下发等。而一些错误的报文往往在系统运行在某些边界 状态下产生,错误现象不易复现。如果实时性不强,在系统状态发生改变后,将很难判断出 报文产生的原因。随着经济的发展,对电力调度系统维护的要求越来越多,无论是新增厂站还是改 造老站,往往都涉及到相应通道配置的修改维护。能方便快捷的查看通道报文内容,将大大 提高电力调度远动维护的效率。
发明内容
本发明要解决的问题是目前电力调度自动化系统在通道调试时,采用的调试方 式存在获取报文内容困难,效率不高,安全性差,可靠性低,实时性不够的问题。本发明的技术方案为一种跨安全区查看前置报文的方法,用于电力调度自动化系统,电力调度自动化系统分为4个安全区,其中包括安全一区,实时控制区;安全三区,生产管理区;建立与安全三区WEB服务器连接的浏览器客户端,通过网页浏览器访问安全三 区的WEB服务器,在安全三区的数据平台上建立高速缓存,存储前置数据、通道信息和通道 报文,浏览器客户端登录到安全三区的WEB服务器后,安全三区TOB服务进程将当前所有通 道信息发送给浏览器客户端,浏览器客户端获取通道的实时信息,并选择要查看的通道,将 该通道关键字发送给安全三区的WEB服务进程,所述TOB服务进程将通道关键字发送给安 全三区报文服务进程,安全三区报文服务进程将通道关键字整理合并后,通过正反向数据 传输发送到安全一区前置报文服务进程;安全一区前置报文服务进程根据收到的通道关键 字,向安全一区前置通道进程订阅相应的报文,安全一区前置通道进程再将订阅得到的原 始通道报文发给安全一区前置报文服务进程,安全一区前置报文服务进程将所述原始通道 报文通过正反向数据传输发送给安全三区前置报文服务进程,当安全三区前置报文服务进 程在确认收到的报文有效后,将原始通道报文写入安全三区高速缓存,安全三区WEB服务 进程定时读取高速缓存内的通道报文,并将读取到的报文发送给浏览器客户端,实现浏览 器客户端查看通道准实时报文;其中正反向数据传输是指,在对安全一区和安全三区之间进行跨安全区的数据传 输时采用正反向通讯结合的通讯机制,形成一个完整地通讯环路,包含报文截获和报文转 发报文截获电力调度自动化系统的网络通讯由网络中间件完成,它包含区内通讯 程序和跨区转发程序,跨区转发程序部署在一区和三区,跨区传输的报文截获过程如下需 要跨区传输的报文和区内传输的报文均存放在转发报文队列中,报文发送区根据接收区的 应用发出的跨安全区报文订阅列表分析转发报文头中的订阅报文事件号或节点名,自动截 获需要发往安全一区或安全三区的报文,即跨区传输的报文,并将其存放到跨安全区转发 报文队列中;报文转发当截获的跨区传输报文存放到跨安全区转发报文队列中后,转发流程 启动,报文转发包括报文转发准备,报文转发和转发报文的接收与应答三个阶段;(1)报文转发准备阶段如果是报文从一区转发到三区,则跨区转发程序执行缓 冲逻辑,设置跨安全区待转发报文缓存,按照设定的时间和缓存区大小阀值缓冲报文,当达 到缓冲时间或者缓冲区已经填满则进入报文转发阶段;如果是报文从三区转发到一区,则 跨区转发程序执行报文格式转换逻辑,将报文由二进制编码转换成符合国家电网公司《电 力系统数据标记语言一E语言规范》要求的文档并加密,再进入反向隔离装置程序准备转发 格式化报文文档;(2)报文转发阶段如果是报文从一区转发到三区,则通过建立的TCP链路将缓存 后的报文转发到对端节点,中间经过正向隔离装置,对端的跨区转发程序收到报文后将报 文解包,分成多个小报文,并依次转发这些小报文到目的节点;如果是报文从三区转发到一 区三区的跨区转发程序会将格式化报文文档通过FTP程序和反向隔离装置传输到一区, 一区的跨区转发程序接收到格式化报文文档后将其转换成二进制报文编码,并将报文转发 到目的节点;(3)转发报文的接收与应答阶段接收区跨区转发程序接收到报文,若数据完整 且序号连续,则按照设定的时间阀值定期发送成功应答报文,通过接收区的报文发送路径传输到发送区,确认一段时间内的所有报文都接收成功,若接收区判断报文转发失败或者 报文解包失败,则立即通过接收区的报文发送路径发送失败应答报文,并包含需要重发的 报文编号,以便发送区的转发程序及时重发。本发明具体包括以下步骤 1)、安全三区通道信息和前置数据自动维护在安全三区数据平台上建立高速缓 存,映射安全一区前置数据和通道信息表,通过正反向数据传输,由安全三区数据平台接收 安全一区传递过来的信息,并实时更新到安全三区的高速缓存;2)、安全三区查看请求转发浏览器客户端将要查看的通道关键字和查看方式发 送给安全三区WEB服务进程,WEB服务进程再转发给安全三区的前置报文服务进程,由前 置报文服务进程合并相同请求后,通过正反向数据传输,发送到安全一区前置报文服务进 程;3)、安全一区报文订阅转发安全一区前置报文服务进程收到通道报文查看请求 后,向前置节点上的前置通道订阅原始通道报文,通过网络平台接口获取到原始通道报文 后,使用正反向数据传输,传输到安全三区,由安全三区前置报文服务进程接收;4)、安全三区前置报文的接收和页面展示安全三区的高速缓存存放安全三区前 置报文服务进程收到的前置报文内容,安全三区WEB服务进程定时读取高速缓存中的所有 报文,利用Ajax技术将报文内容发送到发出查看要求的浏览器客户端页面。安全三区前置数据和通道信息自动维护步骤中,安全三区自动实时获取完整的安 全一区的通道信息和前置数据,安全一区通道属性的修改、通道运行状态的变化和所有前 置原始数据的变化都自动映射到三区;浏览器客户端页面动态展示所有通道运行情况,包 括通道的通断情况、主备值班情况和工作节点情况信息,当安全一区信息变化时,页面显示 相应变化。安全三区查看请求转发步骤中,浏览器客户端页面将通道请求关键字发给安全三 区WEB服务进程后,WEB服务进程在该页面连接的有效期内定期向安全三区报文服务进程 发送关键字,安全三区报文服务进程维护关键字存根列表,清除在设定的时间内未被更新 时标的关键字存根;不同浏览器客户端页面发送的相同关键字,在安全三区报文服务进程 关键字存根列表中只保留一份,减少安全三区向安全一区发送的信息量。安全一区报文订阅转发步骤中,安全一区报文服务进程收到安全三区的查看请求 后,发送订阅请求,安全一区的前置通道线程收到订阅信息后,维护一份订阅发起进程列 表,并根据订阅信息中的关键字,将相应规约插件接收到的报文副本发送到订阅发起进程 列表中的每个进程。安全三区前置报文的接收和页面展示步骤中,包括以下处理内容安全三区报文服务进程在存根列表中查询安全一区发送过来的通道报文关键字, 将在存根列表中有对应关键字的通道报文存入安全三区高速缓存,将没有对应关键字的报 文丢弃;安全三区高速缓存中的通道报文存储采用循环表的数据结构,在满足并发查看数 量的条件下,设定适当缓存大小;安全三区TOB服务进程根据每个浏览器客户端页面session对应的通道关键字, 定时检索高速缓存中的最新通道报文,并将最新通道报文发送到所有请求该通道报文的浏览器客户端页面;浏览器客户端页面请求中如果包含解释命令,安全三区WEB服务进程调用规约插件对通道报文进行解释后再发送给浏览器客户端页面,页面显示同一通道中不同规约插件 对相同报文内容的不同解释结果;浏览器客户端页面收到新的通道报文后,自动滚屏,加入最新通道报文,并对通道 报文原始码使用颜色决策,即按规约定义,对不同含义的通道报文使用不同的颜色显示来 加以区分;多个浏览器客户端页面同时独立浏览相同或不同通道,互不冲突,每个浏览器客 户端页面分别对自己查看的通道报文进行暂停、清除和解释操作,所有操作只对当前查看 页面产生作用;报文信息和报文请求在安全一区和安全三区间传输,在网络非雪崩状态下,安全 一区和安全三区之间信息传送延时在1秒以内。本发明通过使用TOB浏览器访问设立在三区的服务器,查看一区前置通道的信息 及报文,其有益效果是本发明通过浏览器客户端查看前置报文内容,操作简单明确,报文 展现形式切合实际需要,并且具有较高的准实时查看速度,实现远程查看,是一项提高运行 效率的实用技术。使用本发明后,用户在查看前置报文时,不需要关心报文的来源、存放位 置和获取方式,电力自动化调度系统的后台服务程序根据本发明方法自动完成从不同节 点、不同通道收集报文的工作。同时,通过正反向数据传输由安全三区获取报文的方式,减 少了进入一区的次数,增强了整个系统的安全性。在通道对点时,可以在本端操作的同时, 通过三区的广域网查看对端收到的报文和结果,原本需要多人配合的工作只需要一个人就 能完成,提高了用户的工作效率,也减少了多人配合产生失误的可能性。WEB浏览器上的报 文展示人性化,除了基本的报文原始码,还提供解释、按规约分层、颜色决策、自动滚屏、清 除和暂停等功能,方便用户迅速理解报文含义,做出判断。本发明具有很高的实时性,再配 合快捷方便的报文获取方式,一旦系统发生异常,用户可以快速的查看到通道的状态以及 报文内容,在第一时间内定位解决故障。
图1为本发明的应用的电力网络结构和数据流向图。图2为本发明整体流程图。图3为本发明三区通道报文查看请求转发流程图。图4为本发明一区通道报文订阅转发流程图。图5为本发明三区通道报文的接收和页面展示流程图。
具体实施例方式本发明在电力调度自动化系统中的应用如图1所示建立与安全三区WEB服务器 连接的浏览器客户端,通过网页浏览器访问安全三区的WEB服务器,在安全三区的数据平 台上建立高速缓存,存储前置数据、通道信息和通道报文,通道信息和前置数据通过正向物 理隔离装置,实时的由安全一区的前置服务器同步到安全三区的WEB服务器。当用户在远 离安全一区的办公室,或者在远方变电站内,使用普通电脑或工作站上的网页浏览器打开前置报文查看页面时,WEB服务器上的TOB服务进程将包含通道实时状态的树形列表页面 发送到客户端浏览器,并由客户端定时刷新。用户选择好要查看报文的通道后,将该通道的 关键字发送给WEB服务进程,WEB服务进程再转发给三区报文服务进程,整理合并后,经过 反向隔离装置,发到一区报文服务进程。一区报文服务进程根据关键字将订阅收到的报文 再发往三区的报文服务进程。三区报文服务进程将收到的报文存入高速缓存,WEB服务进 程将从高速缓存内读取到的报文发送到客户端页面。 本发明的流程如图2所示,一区的网络平台、数据平台通过正反向数据传输的标 准报文接口,将通道信息和前置数据发往三区。三区网络平台和数据平台接收后,将通道信 息写入通道信息高速缓存,将前置数据写入前置数据高速缓存。其中正反向数据传输是指,在对安全一区和安全三区之间进行跨安全区的数据传 输时采用正反向通讯结合的通讯机制,形成一个完整地通讯环路,包含报文截获和报文转 发安全一区进行实时数据采集,通过一区的调度员工作站、维护工作站、五防工作站可以 查看实时数据,如果三区的WEB服务进程也需要实时数据,则一区通过正向隔离装置将实 时数据传输到三区。其过程如下三区的WEB服务进程订阅一区实时数据,订阅报文通过反 向隔离装置发送到一区,由一区跨区转发程序接收,并形成订阅列表,跨区转发程序根据订 阅列表截获对应的一区发送的事件报文,并将三区订阅的数据转发到三区,三区定期的确 认成功接收的报文,如果报文丢失及时发送NACK报文,即失败应答报文,要求一区重发相 关报文。下面具体说明实施方式。一、报文截获现有的电力调度自动化系统中,安全区的应用采用统一的接口向同一安全区和跨 安全区的应用发送和接收报文,屏蔽了跨安全区逻辑;电力调度自动化系统的网络通讯由 网络中间件完成,它包含区内通讯程序和跨区转发程序,跨区转发程序部署在一区和三区, 针对屏蔽的跨安全区逻辑,本发明正反向数据传输的跨区传输的报文截获过程如下安全 一区和三区需要跨区传输的报文和区内传输的报文均存放在转发报文队列中,跨区转发程 序在报文传输过程中,报文发送区根据接收区的应用发出的跨安全区报文订阅列表分析转 发报文头中的订阅报文事件号或节点名,自动截获需要跨区传输的报文,并将其存放到跨 安全区转发报文队列中。一区与三区之间的应用报文为点对点报文,传输方式为TCP,因此 跨区转发程序监听TCP传输端口的所有报文。跨安全区订阅列表信息由两部分组成跨区 通讯的节点名和跨区转发的事件号,由跨安全区转发程序通过隔离装置转发到对端,并由 对端跨安全区转发程序保存并组织成报文订阅列表。对转发报文队列的报文,参考跨安全区订阅列表中的目的节点名和跨安全区事件 信息,先判断其目的节点是否为跨安全区对端节点,如果是将该报文放入跨安全区转发报 文队列;如果不是判断事件号是否为跨安全区订阅事件号,是则放入跨安全区转发报文队 列,不是则返回转发报文队列;循环执行上列步骤,完成转发队列中报文的截获。二、报文转发当截获的报文存放到跨安全区转发队列中后,转发流程启动,报文转发包括报文 转发准备,报文转发和接收与应答三个阶段。1、转发准备阶段(1)报文从一区转发到三区的流程判断转发队列缓存是否已满,如果已满,将缓存报文打包并进入发送报文阶段,然后清空缓存,将发送后的报文转存到已发送队列,再将 新报文加入到转发队列缓存中;如果缓存未满,则判缓存时间是否达到设定的时间,也就是 限值,如果已达到限值,则将现有缓存打包进入发送报文阶段,如果没有达到限值,则将新 报文加入到转发队列缓存中;重复执行以上步骤。
跨区转发程序执行缓冲逻辑,即按照设定的时间和缓存区大小阀值缓冲报文,当 达到缓冲时间或者缓存区已经填满则进入报文转发阶段。设置缓存的目的是减少小报文对 正向隔离装置的传输压力,提高运行效率。每次报文跨安全区转发,正向隔离装置都会实 现一次物理上的网络链路通断,如果报文较小且数量非常多会造成正向隔离装置的频繁通 断,从而影响运行效率。采用缓存策略,设置时间阀值可以保证报文传输的及时性,设置缓 存区大小阀值可以限制报文的大小到一个合适的值,将小报文拼成大报文后再转发,减少 转发次数,提高转发效率。(2)报文从三区转发到一区的流程跨区转发程序执行报文格式转换逻辑,将报 文由二进制编码转换成符合国家规范要求《电力系统数据标记语言一E语言规范》的XML 文档格式,并生成经过加密的XML文档,即格式化报文文档,进入反向隔离装置程序转发格 式化报文文档,反向隔离装置程序为三区向一区通信的反向隔离装置自身的程序,由隔离 装置厂商提供;如果转发成功,删除格式化报文文档,否则判断是否超出重发次数,如果超 出重发次数则报文发送失败写入日志,否则重新进入反向隔离装置程序转发格式化报文文 档。2、转发阶段(1)报文从一区转发到三区的流程通过建立的TCP链路将缓存后的报文转发到 对端节点,中间经过正向隔离装置,对端转发程序收到报文后将报文解包,分成多个小报 文,并依次转发这些小报文到目的节点。(2)报文从三区转发到一区的流程三区的跨区转发程序会将格式化报文文档通 过FTP程序和反向隔离装置传输到一区,一区的跨区转发程序接收到格式化报文文档后将 其转换成二进制报文编码,并将报文转发到目的节点。3、转发报文的接收与应答阶段接收区的跨区转发程序接收到报文,若数据完整且序号连续,则按照设定的时间 阀值定期发送成功应答报文,通过接收区的报文发送路径传输到发送区,确认一段时间内 的所有报文都接收成功,若接收区判断报文转发失败或者报文解包失败,则立即通过接收 区的报文发送路径发送失败应答报文,并包含需要重发的报文编号,以便发送区的转发程 序及时重发。(1)报文从一区转发到三区的流程如果到三区的报文转发成功,则三区经过设 定的发送应答报文时间间隔,向一区发送成功应答报文;如果到三区的报文转发失败或者 报文解包失败,则三区通过反向隔离装置立即向一区发送失败应答报文,并包含需要重发 的报文编号,以便一区的转发程序及时重发。当一区接收到来自三区的成功的应答报文后会清理相应的已转发报文队列;当一 区接收到来自三区的失败应答报文或者应答报文出现报文跳号现象,则立即按照失败应答 报文中所含的报文编号重发报文,对于跳号现象,分析跳号应答报文表示的转发报文段,并 在不超过转发次数阀值的前提下将此段报文重发,详见图5。
(2)报文从三区转发到一区的流程采用成功应答报文定期发送,失败应答报文 立即发送的策略,与报文从一区转发到三区的流程类似,详见图6。正反向数据传输将安全一区和安全三区的报文传输路径结合为一个有机的整体, 形成一个完整地通讯环路,用一区和三区各自的报文发送路径发送所有报文,包括应答报 文,提供了一种透明、双向、安全、稳定和高效的传输方式,利于浏览器客户端通过安全三区 实时查看安全一区的前置报文。反向隔离装置以往的应用场景为从三区到一区传输文件,一般使用方式都是批处 理方式,每天定时传输本区的应用生成的XML数据文件,如果通过原有方式由三区向一区 发送XML数据文件,则需要在三区的各发送节点和一区的各目的节点部署隔离装置的转发 程序,或者将文件通过FTP方式发送到部署了隔离装置转发程序的节点。本发明采用的正 反向数据传输方式截获需要跨区传输的报文,利用每个节点本身都有网络中间件程序,转 发到三区中部署了隔离装置转发程序的节点,并由该节点上的跨区转发程序将报文转换成 XML数据文档,通过反向转发装置发送,在接收端也有跨区转发程序及时转换成二进制报 文,再在区内转发,保证了数据传输更加可靠和及时。以往的处理方式多为安全区的应用自行处理跨安全区转发,由于跨安全区转发牵 扯的节点比较多,特别是三区向一区传输时,反向隔离装置从数据源节点到目的节点很可 能牵扯到四类节点三区数据源节点、隔离装置转发程序部署节点;一区 隔离装置转发 程序部署节点、目的节点;一区向三区传输时正向隔离装置也牵扯到两个节点一区数据 源节点;三区目的节点,如果将双向通讯打通,需要在四个或者更多节点上部署跨区转发 程序,逻辑复杂度较高,一般安全区的应用无法编写如此复杂的逻辑,且反向隔离装置大量 文件传输会产生拥塞,实时性较差,所以每个报文都通过反向隔离装置传输应答报文不太 现实。本发明的正反向数据传输方式采用了定时成功应答和即时失败应答的方式减少应答 报文量,减少反向传输压力,提高可靠性和及时性;而且使用较为通用的网络中间件,其原 来就具有区内各个节点转发逻辑,部署在系统内所有节点上,通过加入跨区转发逻辑,截获 跨区传输报文,专门负责跨区转发,并且自动进行相应的转发报文截获,可以为多个应用转 发不同类型的报文,包括事件报文,点对点报文等。区内转发仍然借用原有逻辑,一定程度 上减少了程序负责度。本发明实施时,浏览器客户端登录到三区的WEB服务后,三区TOB服务进程将所 有通道信息发送给浏览器客户端。客户端选择一个要查看的通道后,将该通道关键字发送 给WEB服务进程。WEB服务进程将通道关键字发送给三区报文服务进程。三区报文服务进 程将通道关键字整理合并后,通过正方向传输的标准报文接口发送到一区前置报文服务进 程。一区报文服务进程根据收到的通道关键字,向前置通道进程订阅相应的报文。前置通 道进程将原始通道报文发给一区前置报文服务进程。一区前置报文服务进程将原始通道报 文通过正反向传输接口发送给三区前置报文服务进程。三区前置报文服务进程在确认收到 的报文有效后,将通道原始报文写入三区通道报文高速缓存。三区WEB服务进程定时读取通道报文高速缓存,并将读取到的报文发送给客户端 浏览器。下面先介绍一些出现在实施方式中的术语网络平台技术即PCS9000分布式网络管理技术。网络平台屏蔽不同硬件平台和操作系统的差异,管理整个系统中的进程,提供统一的报文通讯接口,使系统内所有进程能 够互相可靠、方便、快速的通讯。Tomcat 是一种技术先进、性能稳定的免费WEB服务系统,由ApaChe、Sun和其他一 些公司及个人共同开发,适合中小型系统或并发访问用户不是特别多的情况下使用。支持 JAVA开发语言。JNI 类型接 口 JNI 即 Java Native Interface (JAVA 本地调用),它允许 Java 代 码和其他语言写的代码进行交互。在本文中主要指对已有的C++代码进行封装,供Tomcat 调用。Json文件即JavaScript Object Notation,相对于XML,是一种轻量级数据交互 格式。其文件格式是基于 JavaScript (Standard ECMA-2623rd Edition-December 1999)的
一个子集。 Extjs 是一个用JavaScript写的、主要用于创建Web客户端界面、与后台(服务 端)技术无关的Ajax框架。屏蔽了主流浏览器之间的差异,提供大量功能丰富的可视化组 件。Session信息=Session —般指用户浏览某个网站时,从进入网站到浏览器关闭或 浏览超时,所经过的一段时间。Session信息在TOB服务端保存用户的状态信息,以便用户 可以进行一系列相关的操作。插件式规约技术将电力通讯规约用一个或多个插件动态库实现,所有插件使用 统一的接口进行调用。当增加新的规约时,只要增加相应的动态库即可,不需要修改编译其 它代码。最常见的是将通讯的链路层和应用层分成2个插件,链路层规约插件常常可以重 复利用。下面具体说明本发明的实施步骤—、三区通道信息和前置数据自动维护通道信息主要包含通道配置状况、规约的各项参数和通道的运行情况、主备通道 的值班状态、运行率统计、误码率统计、通断统计和切换记录等信息。前置数据指一区收到 的RTU信息、遥测、遥信、遥脉、遥控、遥调和升降等数据信息。通过在三区建立高速缓存,映 射一区的这些数据,利用正反向数据传输技术和网络平台技术,由三区数据服务进程调用 网络平台接口订阅相应数据在一区的增删修改等操作信息,并根据这些信息在三区进行相 同的操作,实现三区前置数据和通道信息的自动维护。如图3所示,WEB服务器的Web服务使用Tomcat,通过Java语言的jni类型接口 调用由C++实现的数据平台接口,定时访问三区通道信息和前置数据高速缓存。根据每次 访问得到的通道信息,生成符合实际情况的json(—种JavaScript支持的数据格式)文 件,使用Ajax技术将json文件发送到客户端页面,由Extjs以树状列表形式展示出来。使 用类似的方法,可以在客户端查看RTU信息、遥测、遥信、遥脉、遥控、遥调和升降等数据。前置数据和通道信息的自动维护,使三区能方便的获取到一区的通道及数据信 息,免去手工维护的过程,同时也能准实时的查看到一区前置从报文中解析出来的数据。二、三区通道报文查看请求转发如图1所示的浏览器客户端打开前置报文查看页面后,通过树形列表中使用的 json文件,获取各个通道的信息,在页面上进行鼠标操作,将要查询的通道报文的关键字发送给安全三区的WEB服务进程。TOB服务进程记录下标识每一个客户端页面的session信息(在Tomcat中就是字符串JSESSIONID),并将关键字通过网络中间件传递给三区前置报 文服务进程。在客户端页面浏览该通道报文期间,即session有效且通道关键字变化前, WEB服务以10秒一次的频率向三区前置报文服务进程发送该通道的报文查看请求,以保持 该请求的激活状态。三区前置报文服务进程维护一个请求存根队列,记录被请求通道报文的通道关键 字和请求的最新时标。当收到一个WEB服务转发的请求后,首先在存根队列里面根据通道 关键字查找是否已经存在相同请求的存根。如果已存在,则更新该存根的时标,否则添加一 个新的存根。这样,对来自不同客户端页面的相同通道报文请求,只需要保留一个存根即 可,后续的通道报文高速缓存也只需要建立一份就可满足多客户端同时查看的需求。三区前置报文服务进程开启一个线程,每秒遍历一次存根队列,当存根的更新时 标早于当前时间10秒(即前面TOB服务的激活频率)时,认为没有客户端在查询改存根对 应的通道报文,则将该存根从队列中删除。存根删除后,不再向一区发送请求,也不再将一 区发送过来的报文写入缓存。三、一区通道报文订阅和转发一区前置使用了插件式规约技术,在每个通道线程内,通过流水线对规约插件进 行装配。每个规约插件都继承自符合流水线要求的基类,抽象出了如向上层规约或下层规 约插件发送数据等接口。使用插件式规约技术能降低规约插件的复杂性,每个规约插件只 需要考虑一部分范围内的逻辑关系,同时也提高了代码的重用性。通常可以将规约分成下 层的链路层规约插件和上层的应用层规约插件,对复杂的规约,可以使用更多层次的规约 插件来实现。通过查看不同层次的规约报文,能更准确的定位故障的源头。如图4所示,一区报文服务进程发出包含通道关键字的订阅请求后,网络平台将 订阅请求多播发送,也就是进行实时数据采集,每个前置节点的通道进程收到订阅请求后, 根据关键字判断订阅的通道规约对象是否存在于本通道内。如果处于本通道内,再判断一 区报文服务进程是否在本通道规约的订阅接收列表内。如果不在,则将一区报文服务进程 的节点信息和进程信息作为关键字放到订阅列表内。当通道内收到或发出新报文时,通道 遍历订阅列表,向列表内每个进程发送一份报文副本。一区报文服务进程收到所订阅的报 文后,调用正反向传输接口向三区报文服务进程发送。四、三区前置报文的接收和页面展示三区通过数据平台建立高速缓存存储通道报文,通道报文使用循环表方式进行管 理,循环表容量由设计同时浏览的客户端最大数量决定,兼顾并发操作和对存储资源的消 耗。三区前置报文服务进程收到前置报文后,首先在请求存根队列中查找。如果找到存根, 则将报文写入高速缓存,否则直接丢弃。TOB服务进程根据每个浏览器客户端页面session对应的通道关键字,定时到通 道报文高速缓存中进行检索。如果浏览器客户端对报文的查看请求需要解释报文,即用描 述性语言展示收到的报文含义,则WEB服务进程调用相应的规约插件的静态解释接口对缓 存中取出的报文源码进行解释。页面使用Ext js,实现报文的格式化输出、滚屏、暂停和清除等功能。如图5所示,三区报文服务进程收到通道报文后,在存根列表中查找报文对应的通道关键字是否存在。如果不存在,则丢弃该报文。如果存在,则将报文写入三区数据平台 建立的报文高速缓存中去 。 在每个客户端页面session对应的TOB服务线程中,定时检索该页面关心的最新 报文高速缓存,检索时间段即为定时检索间隔。如果检索结果为空,则继续等待。当有检索 结果时,则根据页面请求参数判断是否需要解释报文,如果不需要解释,则直接发往客户端 页面;如果需要解释,则调用规约插件对报文进行解释后再发往客户端页面。
权利要求
一种跨安全区查看前置报文的方法,用于电力调度自动化系统,电力调度自动化系统分为4个安全区,其中包括安全一区,实时控制区;安全三区,生产管理区;其特征是建立与安全三区WEB服务器连接的浏览器客户端,通过网页浏览器访问安全三区的WEB服务器,在安全三区的数据平台上建立高速缓存,存储前置数据、通道信息和通道报文,浏览器客户端登录到安全三区的WEB服务器后,安全三区WEB服务进程将当前所有通道信息发送给浏览器客户端,浏览器客户端获取通道的实时信息,并选择要查看的通道,将该通道关键字发送给安全三区的WEB服务进程,所述WEB服务进程将通道关键字发送给安全三区报文服务进程,安全三区报文服务进程将通道关键字整理合并后,通过正反向数据传输发送到安全一区前置报文服务进程;安全一区前置报文服务进程根据收到的通道关键字,向安全一区前置通道进程订阅相应的报文,安全一区前置通道进程再将订阅得到的原始通道报文发给安全一区前置报文服务进程,安全一区前置报文服务进程将所述原始通道报文通过正反向数据传输发送给安全三区前置报文服务进程,当安全三区前置报文服务进程在确认收到的报文有效后,将原始通道报文写入安全三区高速缓存,安全三区WEB服务进程定时读取高速缓存内的通道报文,并将读取到的报文发送给浏览器客户端,实现浏览器客户端查看通道准实时报文;其中正反向数据传输是指,在对安全一区和安全三区之间进行跨安全区的数据传输时采用正反向通讯结合的通讯机制,形成一个完整地通讯环路,包含报文截获和报文转发报文截获电力调度自动化系统的网络通讯由网络中间件完成,它包含区内通讯程序和跨区转发程序,跨区转发程序部署在一区和三区,跨区传输的报文截获过程如下需要跨区传输的报文和区内传输的报文均存放在转发报文队列中,报文发送区根据接收区的应用发出的跨安全区报文订阅列表分析转发报文头中的订阅报文事件号或节点名,自动截获需要发往安全一区或安全三区的报文,即跨区传输的报文,并将其存放到跨安全区转发报文队列中;报文转发当截获的跨区传输报文存放到跨安全区转发报文队列中后,转发流程启动,报文转发包括报文转发准备,报文转发和转发报文的接收与应答三个阶段;(1)报文转发准备阶段如果是报文从一区转发到三区,则跨区转发程序执行缓冲逻辑,设置跨安全区待转发报文缓存,按照设定的时间和缓存区大小阀值缓冲报文,当达到缓冲时间或者缓冲区已经填满则进入报文转发阶段;如果是报文从三区转发到一区,则跨区转发程序执行报文格式转换逻辑,将报文由二进制编码转换成符合国家电网公司《电力系统数据标记语言--E语言规范》要求的文档并加密,再进入反向隔离装置程序准备转发格式化报文文档;(2)报文转发阶段如果是报文从一区转发到三区,则通过建立的TCP链路将缓存后的报文转发到对端节点,中间经过正向隔离装置,对端的跨区转发程序收到报文后将报文解包,分成多个小报文,并依次转发这些小报文到目的节点;如果是报文从三区转发到一区三区的跨区转发程序会将格式化报文文档通过FTP程序和反向隔离装置传输到一区,一区的跨区转发程序接收到格式化报文文档后将其转换成二进制报文编码,并将报文转发到目的节点;(3)转发报文的接收与应答阶段接收区跨区转发程序接收到报文,若数据完整且序号连续,则按照设定的时间阀值定期发送成功应答报文,通过接收区的报文发送路径传输到发送区,确认一段时间内的所有报文都接收成功,若接收区判断报文转发失败或者报文解包失败,则立即通过接收区的报文发送路径发送失败应答报文,并包含需要重发的报文编号,以便发送区的转发程序及时重发。
2.根据权利要求1所述的一种跨安全区查看前置报文的方法,其特征是具体包括以下 步骤1)、安全三区通道信息和前置数据自动维护在安全三区数据平台上建立高速缓存,映 射安全一区前置数据和通道信息表,通过正反向数据传输,由安全三区数据平台接收安全 一区传递过来的信息,并实时更新到安全三区的高速缓存;2)、安全三区查看请求转发浏览器客户端将要查看的通道关键字和查看方式发送给 安全三区WEB服务进程,TOB服务进程再转发给安全三区的前置报文服务进程,由前置报文 服务进程合并相同请求后,通过正反向数据传输,发送到安全一区前置报文服务进程;3)、安全一区报文订阅转发安全一区前置报文服务进程收到通道报文查看请求后,向 前置节点上的前置通道订阅原始通道报文,通过网络平台接口获取到原始通道报文后,使 用正反向数据传输,传输到安全三区,由安全三区前置报文服务进程接收;4)、安全三区前置报文的接收和页面展示安全三区的高速缓存存放安全三区前置报 文服务进程收到的前置报文内容,安全三区WEB服务进程定时读取高速缓存中的所有报 文,利用Ajax技术将报文内容发送到发出查看要求的浏览器客户端页面。
3.根据权利要求2所述的一种跨安全区查看前置报文的方法,其特征是安全三区前置 数据和通道信息自动维护步骤中,安全三区自动实时获取完整的安全一区的通道信息和前 置数据,安全一区通道属性的修改、通道运行状态的变化和所有前置原始数据的变化都自 动映射到三区;浏览器客户端页面动态展示所有通道运行情况,包括通道的通断情况、主备 值班情况和工作节点情况信息,当安全一区信息变化时,页面显示相应变化。
4.根据权利要求2所述的一种跨安全区查看前置报文的方法,其特征是安全三区查看 请求转发步骤中,浏览器客户端页面将通道请求关键字发给安全三区WEB服务进程后,WEB 服务进程在该页面连接的有效期内定期向安全三区报文服务进程发送关键字,安全三区报 文服务进程维护关键字存根列表,清除在设定的时间内未被更新时标的关键字存根;不同 浏览器客户端页面发送的相同关键字,在安全三区报文服务进程关键字存根列表中只保留 一份,减少安全三区向安全一区发送的信息量。
5.根据权利要求2所述的一种跨安全区查看前置报文的方法,其特征是安全一区报文 订阅转发步骤中,安全一区报文服务进程收到安全三区的查看请求后,发送订阅请求,安全 一区的前置通道线程收到订阅信息后,维护一份订阅发起进程列表,并根据订阅信息中的 关键字,将相应规约插件接收到的报文副本发送到订阅发起进程列表中的每个进程。
6.根据权利要求2所述的一种跨安全区查看前置报文的方法,其特征是安全三区前置 报文的接收和页面展示步骤中,包括以下处理内容安全三区报文服务进程在存根列表中查询安全一区发送过来的通道报文关键字,将在 存根列表中有对应关键字的通道报文存入安全三区高速缓存,将没有对应关键字的报文丢 弃;安全三区高速缓存中的通道报文存储采用循环表的数据结构,在满足并发查看数量的 条件下,设定适当缓存大小;安全三区WEB服务进程根据每个浏览器客户端页面session对应的通道关键字,定时 检索高速缓存中的最新通道报文,并将最新通道报文发送到所有请求该通道报文的浏览器 客户端页面; 浏览器客户端页面请求中如果包含解释命令,安全三区WEB服务进程调用规约插件对 通道报文进行解释后再发送给浏览器客户端页面,页面显示同一通道中不同规约插件对相 同报文内容的不同解释结果;浏览器客户端页面收到新的通道报文后,自动滚屏,加入最新通道报文,并对通道报文 原始码使用颜色决策,即按规约定义,对不同含义的通道报文使用不同的颜色显示来加以 区分;多个浏览器客户端页面同时独立浏览相同或不同通道,互不冲突,每个浏览器客户端 页面分别对自己查看的通道报文进行暂停、清除和解释操作,所有操作只对当前查看页面 产生作用;报文信息和报文请求在安全一区和安全三区间传输,在网络非雪崩状态下,安全一区 和安全三区之间信息传送延时在1秒以内。
全文摘要
一种跨安全区查看前置报文的方法,用于电力调度自动化系统,通过网页浏览器访问安全三区WEB服务器,在安全三区的数据平台上建立高速缓存,存储前置数据、通道信息和通道报文,浏览器客户端登录到安全三区的WEB服务器后,获取通道的实时信息,并选择要查看的通道,将该通道关键字发送给安全三区,由安全三区通过正反向数据传输发送到安全一区;安全一区采集实时数据,将所需原始通道报文通过正反向数据传输发送给安全三区,安全三区将报文发送给浏览器客户端,实现浏览器客户端查看通道准实时报文。本发明通过访问安全三区的服务器,查看一区前置通道的信息及报文,操作简单明确,报文展现形式切合实际需要,并且具有较高的准实时查看速度。
文档编号H02J13/00GK101867620SQ20101021608
公开日2010年10月20日 申请日期2010年7月2日 优先权日2010年7月2日
发明者刘杰, 刘群越, 卢建刚, 孙超, 施志良, 曾坚永, 杨骥, 温柏坚, 潘玉春 申请人:南京南瑞继保电气有限公司;广东省电力调度中心