支持高级应用的事件和规则泛化
1. 潜在事件与实际事件
当感兴趣的事件发生时,系统会对其进行检测。在某些领域中,感兴趣的事件是实际发生的事件,而非潜在事件。
举两个例子:事件 A 控制办公室门的开启;事件 B 则在门实际打开时点亮灯光。只有拥有授权访问权限的用户才能打开门,刷卡这一动作会触发一个检查用户授权的事件,即刷卡检测到事件 A。若用户具备权限,门就会打开;而事件 B 只有在门真正打开时才会被触发。在这个例子中,门的打开是触发事件 B 的实际事件,刷卡则是潜在事件,只有当用户拥有所需权限时,才会导致门打开。
下面来看一个需要潜在和实际事件的策略示例:
策略 1 :在 00:00 至 06:00 期间,只有通过大楼外门进入的人员才被允许进入该大楼的办公室。
当在 00:00 至06:00 期间有打开任何外门的请求时,会检测到事件 EExtReq(外部门请求),这将触发规则 RExtReq。规则的条件部分用于验证用户身份,若验证通过,动作部分会允许打开门;否则,拒绝访问。
EExtReq = (doorOpen(bldgId, doorId, doorType, userId),
(((tocc > 00 : 00hrs) ∧(tocc < 06 : 00hrs))
∧(doorType = “external”)));
RULE [ RExtReq
Event
EExtReq
Condition
/* Authenticate User */
Action
/* Open door */
Alt Action
超级会员免费看
订阅专栏 解锁全文
9万+

被折叠的 条评论
为什么被折叠?



