使用 CEP 引擎时通常如何执行权利?

Posted

技术标签:

【中文标题】使用 CEP 引擎时通常如何执行权利?【英文标题】:How are entitlements usually enforced when using a CEP engine? 【发布时间】:2013-10-14 16:31:23 【问题描述】:

我正在创建一个 CEP 引擎看起来很合适的系统(我需要检测多个流中事件之间基于时间的模式)。检测到的事件需要在 WPF 应用程序中显示给最终用户,但并非所有用户都有权查看所有事件。

使用 CEP 引擎时,这通常是如何处理的?我是否需要在 UI 应用程序和 CEP 引擎之间增加一个服务层,还是可以在 CEP 引擎本身中完成?

【问题讨论】:

【参考方案1】:

我不确定在所有 CEP 引擎中是否有对这个问题的“常规”答案。 CEP 引擎在它们提供的服务方面确实并不统一。

你用“streambase”标记了这个问题,所以我可以谈谈。 StreamBase CEP 运行时在创建与服务器的客户端连接以从输出流中取出元组时支持用户身份验证。人们通常将其连接到他们的本地 LDAP 或 AD 服务器。

也就是说,至少在当前版本 (7.3) 中,StreamBase CEP 运行时中没有每元组出队授权/权利实施机制。

因此,当 StreamBase 用户想要执行每个元组的权利时,我们通常会引导他们在应用层构建它,或者使用其他一些可用的基础设施。例如,不要使用本机 StreamBase 客户端连接,而是使用 TIBCO EMS 或 IBM MQSeries 之类的适配器,并使用那里的每个主题/队列权利来限制访问。或者作为另一个示例,让 StreamBase 服务器在连接后向经过身份验证的用户发送回一个令牌,并使用该令牌作为客户端使用出队拦截器针对 LDAP 进行权利检查的密钥。

或者,如您所说,使用您自己的服务层。

StreamBase 组件交换中还有另一个“穷人的权利服务”示例。搜索“StreamBase 权利”。这使用内存或 JDBC 数据库来存储用户、角色和权利,并通过有效的运行时权利检查机制将它们应用到服务器端。但是与此的连接没有严格的运行时限制;它只是一个使用漂亮 UI 实现权利功能的示例。客户自愿遵守这些限制,这可能不是您所要求的。

披露/免责声明:我是 TIBCO Software, Inc. 的员工。此处表达的观点是我自己的观点,与 TIBCO 无关。

【讨论】:

以上是关于使用 CEP 引擎时通常如何执行权利?的主要内容,如果未能解决你的问题,请参考以下文章

使用Drools来实现规则引擎

flinkFlink-Cep实现规则动态更新

大数据计算引擎之Flink Flink CEP复杂事件编程

Flink/CEP/规则引擎/风控

案例简介flink CEP

使用Blink CEP实现差值聚合计算