MonitoredItem
每个监控项均指明了要监控的项目(item)和用来发送通知的订阅。
item可以是一个节点的属性(node attribute)。
MonitorItem可以监控一个属性,一个变量或者一个事件
可以通过MonitorItem定义的过滤器(fiter),来决定是否产生一个通知
Queue attribute定义了可以被缓存的通知数量,可以通过配置策略决定丢弃新消息还是最老的消息
Triggering model
MonitoredItem服务允许某item只有在关联Item被触发时才会被触发
这是通过在触发对象和被触发对象间建立连接来实现的
Notification
描述了数据变化和事件的数据结构,通知会被打包为NotificationMessage并传送给Client。
订阅会以客户定义的发布间隔周期性的发送NotificationMessage。
Subscription
订阅用来向客户端报告通知,其行为可以被总结如下:
订阅包含一组由客户端分配的监控项。监控项可以生成通知,这些通知,由订阅发送给客户端
订阅拥有一个发布间隔,订阅的发布间隔定义了订阅执行的循环率。每次执行,订阅均试图发送一条NotificationMessages,NotificationMessages中包含了还没有报告给客户端的通知
订阅以回应发布请求的方式向客户端发送NotificationMessages。发布请求通常以接收顺序存储到Session中,当有通知需要发送时,在每次发布循环时,会从队列中取出相应的请求,并发送通知到客户端,如果没有待发送通知,请求则不会从队列中被删除
在循环的开始,如果已经存在待发送通知但还没有发布请求,服务器将会进入等待状态,一旦接收到发布请求,则立即向客户端发送通知,无需等待另外一次循环
订阅有一个存活计数器,保存了没有发送通知的周期循环次数,当循环次数达到用户在创建订阅时配置的预置,则会