GINSENG数据处理框架解析
在数据处理领域,不同的技术有着各自的优势和适用场景。Business Rules Engines为非技术用户提供了更成熟的接口,而Event Stream Processing engines则在处理多源同质事件时表现出更好的性能。GINSENG中间件在此基础上,提出未来的数据处理框架将基于异步、面向数据的通信协议——基于内容的发布/订阅系统。
1. 业务规则引擎(Business Rules Engine)
业务规则引擎依赖Rete算法来处理传入的事件,使其与一组用户定义的规则相匹配。在GINSENG中间件中,使用了Business Rules Management System(BRMS)JBoss Drools,其中事件由Java类表示。每个事件都可以配备元数据,用于说明事件的角色、时间戳、持续时间或过期时间。
JBoss Drools的核心是快速的ReteOO算法,它支持滑动窗口和时间运算符,用于时间推理。规则可以使用Drools原生的过程式规则语言或自定义的领域特定语言(DSL)来指定。在GINSENG项目中,正在开发一种适用于炼油厂环境的GINSENG领域特定语言,重点关注油罐和管道监测。
Rete算法的基本思想是创建一个有向无环图,即Rete网络,图中的节点代表规则条件。当新事件出现或网络状态改变时,会创建一个工作内存元素(WME),并将其从根节点向前传播到叶节点。在这个过程中,每个节点检查条件或执行连接操作,只有匹配的WME才会传递给子节点。到达叶节点的WME或WME元组表示匹配,并触发相应的规则。
以下是两个JBoss Drools规则的示例:
超级会员免费看
订阅专栏 解锁全文
945

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



