1
研究背景
随着移动互联技术的发展,电网调控系统人机终端从传统的人机工作站,逐渐拓展到平板、手机等移动终端设备,实现资源占用低、支持多终端统一展示的交互界面已成为当前人机研究的重要方向之一。而现有的调控系统中,人机工作站通常部署在调控中心局域网内部,调度人员专用的人机工作站通常配置较高,为了减轻服务器压力、充分利用客户端资源,人机体系架构在设计时通常在客户端进行了大量的画面显示处理及复杂的服务调用,这种胖客户端的设计,主要存在如下不足:① 在客户端进行画面显示处理,资源占用较高,在硬件条件较低的终端上,运行速度较慢,影响用户体验;② 客户端直接与后台各类服务交互,前端逻辑复杂,涉及模块众多,严重依赖基础平台环境,不利于在移动终端上部署和发布;③ 不利于实现客户端/服务端(C/S)和浏览器/服务器(B/S)人机展示体系架构的高度复用,通常在客户端处理的逻辑,在B/S侧也要进行重复开发,而且很难保证展示效果的一致性。针对上述情况,为了更好地适应人机展示需求,本文提出了一种轻量化的人机交互体系架构。
2
轻量化人机体系架构
轻量化的人机体系架构如图1所示。
图1 轻量化的人机体系架构
在服务端侧,人机服务接收各人机终端的浏览请求后,通过调用后台各类人机显示所需的文件服务、数据刷新服务、实时库服务、历史库服务和应用操作服务,在服务端侧直接处理画面显示内容,完成处理后将画面的最终显示内容,如画面显示的数据、样式、颜色等画面元素推送给客户端。
在客户端侧,人机客户端通过人机服务获取画面显示所需资源信息,并经过人机服务进行处理后再返回给客户端直接展示,客户端不再与后台各类具体服务直接交互。由于大量显示处理的内容已在服务端侧处理,客户端接收到的内容即为最终显示状态,可以形象理解为客户端就是一个相对简单的无太多复杂逻辑的显示器,因此客户端无论是发布程序的大小还是资源占用都比较小,有利于在平板、手机等移动设备上进行统一展示。同时,由于客户端与服务端的交互流程较为简单,只与人机服务交互,其他人机显示所需要的后台服务均被人机服务所屏蔽,因此人机终端与后台服务是一种松耦合的关系,异地的人机终端在权限约束下只要能够连接上人机服务,就能像本地人机终端一样进行浏览。
3
基于MVVM模式的前端实现
利用“模型-视图-视图模型”(Model-View-ViewModel,MVVM)模式对显示内容和显示形式进行解耦,在Model层实现对数据的获取,在ViewModel层实现对数据的整合,在View层实现整合后数据的展示。
在前端实现中,将取数逻辑封装成组件置于Model层,通过接口对上层提供数据持久化功能,其中包括存储在实时库中的字典数据、时序库中的采样数据以及一些键值(K/V)库中的统计数据等。
将画面数据集和数据处理插件置于视图模型层,画面数据集是一个适用于画面描述的集合,每一个画面元素都有唯一ID对应,画面数据集通过消息通知机制与视图层组件进行关联,并形成联动。随着业务的不断复杂,为了实现视图模型层代码的模块化扩展,将业务处理相关功能从画面数据集中抽象出来,形成数据处理插件,将画面数据集与数据处理插件组合在一起,每一个数据处理插件按照注册的先后顺序形成一条对画面数据集内容变化消息的处理流水线,将整体功能的扩展转变为独立子模块数量的扩展,实现较高的模块可重用性和独立的模块功能封装。
将图元库组件、图表组件、可视化组件置于视图层,上述组件监听视图模型层的画面数据集的内容变化消息,画面数据集的内容变化会带动对应视图组件的样式变化,同样,对视图组件的修改也会将数据反写入画面数据集中。
4
人机服务框架
人机服务框架由调度器、先进先出(FIFO)队列、缓存、发送器组成。当人机服务接收客户端对画面的请求后,框架通过调度器从工人资源池中创建任务工人执行任务,然后为每一个客户端维护一个FIFO队列,再为每一幅画面维护一个完整的缓存。框架本身不处理业务逻辑,而是通过调度器创建的任务工人去执行具体的业务逻辑,任务工人处理完数据后,将数据返回给人机服务,人机服务立刻更新缓存,然后根据客户端的订阅情况,将更新数据放入请求该画面的客户端FIFO中。图2介绍了M个客户端同时请求N幅画面时的情况。
图2 人机服务的任务调度示意图
5
结语
本文提出的调控系统轻量化人机交互体系架构改变了传统调控系统的胖客户端设计,有效减少了客户端的资源占用,能够支持多终端的统一展示,但对于复杂的可视化展示功能仍然需要在客户端侧依赖较多资源进行复杂的显示处理。基于本文架构主要实现了厂站图及查询类交互界面的初步应用,进一步实现基于地理信息系统(GIS)可视化展示及异地无差别浏览等展示功能是后续研发的重要工作。同时,与轻量化的展示终端匹配的必然是一个功能强大的人机服务端,随着系统规模的不断扩大,以及终端数量的不断增多,必然会对人机服务端提出更高要求,如何基于云计算及虚拟化技术实现人机服务端资源占用的弹性伸缩是下一步的重要研究方向。