智能电网中智能配电数字终端的消息设计
2 系统运行机制
本系统的运行基于反应器(Reactor)模式的事件驱动机制。Reactor释义“反应器”,是一种事件驱动机制,与普通函数调用的不同之处在于:应用程序不是主动地调用某个API完成处理,而是根据Reactor提供的回调机制统一将接口注册到Reactor上。当这些事件发生时,消息管理中心会调用这些已经注册的函数处理相应的事件(I/O读写、定时和用户输入等)。这样系统能够将处理函数的调用者与被调用者分离,使本系统更加灵活。
2.1 系统运行结构设计
本系统采用的事件驱动模式与消息服务系统类似,同时又存在区别。在消息系统中,消息客户端和消息服务器端只需建立一个连接,就可以随时发布消息。事件驱动的本系统预先定义事件的触发条件和事件的执行过程并在客户端和服务端建立连接,当3系统在工作过程中发现事件满足触发条件,事件就被激活并开始执行。系统中的事件驱动流程示意图如图3所示。本文引用地址:https://www.eepw.com.cn/article/201884.htm
图3中,事件消费者向事件管理器订阅事件,事件生产者向事件管理器发布事件,当事件管理器从事件生产者那接收到一个事件时,事件管理器把这个事件转送给相应的事件消费者。
2.2 事件管理器循环设计
本系统中的事件管理器负责设备或定时事件的准备(Prepare)、选择(Select)、检查(Check)、处理(Dispatch)、清楚(Cleanup)5个步骤,事件管理器的分发循环如图4所示。
根据系统的实际需要,模型中定义事件源的基类Source。主站通信、定时采集、用户输入等多种具体的事件源可以继承自该基类。同时全局事件管理器SourceDispathcer提供3个操作来管理事件。待处理事件管理器类SourceDispatchContext则负责管理符合触发条件的事件。3个类之间的关系如图5所示。
从图5可看到,全局事件管理器提供接口ToRegisterSouree注册系统关心的事件,同时使用接口UnRegisterSource注销事件,iteration OfDispatch则负责事件分发循环的5个步骤。首先将所关心的I/O设备中文件描述符放入待检队列或者设定定时周期等参数;然后检查相关设备是否可读写或定时周期到达,将满足触发条件的事件放入待处理事件队列中;最后分别调用相关的事件处理函数处理事件,并清理待处理事件队列。
评论