ETL、Esper 还是 Drools?
问题环境与JavaEE、Spring有关,
我正在开发一个系统,可以启动和停止传入消息的任意TCP(或其他)侦听器。可能需要验证这些消息。这些消息需要被解析并存储在其他一些实体中。这些实体对它们存储的字段进行建模。
因此,例如,如果我有 property1 可以有两个文本字段 FillLevel1 和 FillLevel2,我可以在 TCP 上接收消息,其中两个填充级别在文本中指定为 F1=100;F2=90
稍后我可以在开始时添加另一个字段,例如 FillLevel3接收消息F1=xx;F2=xx;F3=xx。但这是系统建模者有意识的决定。
我的问题是你认为用什么来解析和存储消息更好。 ETL(使用 Pantaho,在其他系统中使用),您存储原始消息并使用任务执行器将它们一一使用,并根据您的规则存储转换后的消息。
人们可以使用 Espr 或 Drools 来做同样的事情,存储规则并使用计时器执行它们,但我不确定制定规则可以有多动态(它们必须由最终用户在正在运行的系统中制定,最好是在大多数情况下)用户友好的方式,即没有脚本或代码,只有 GUI)
最终用户应该能够更改解析规则。最终用户也可能想要更改存档数据(例如,在上面的示例中,如果添加了新的 FillLevel 值,则可能希望将 FillLevel=-99 放入先前的值中以使数据持续的)。
请解释一下,我觉得我需要稍微修改一下这个问题。
谢谢
The question environment relates to JavaEE, Spring
I am developing a system which can start and stop arbitrary TCP (or other) listeners for incoming messages. There could be a need to authenticate these messages. These messages need to be parsed and stored in some other entities. These entities model which fields they store.
So for example if I have property1 that can have two text fields FillLevel1 and FillLevel2, I could receive messages on TCP which have both fill levels specified in text as F1=100;F2=90
Later I could add another filed say FillLevel3 when I start receiving messages F1=xx;F2=xx;F3=xx. But this is a conscious decision on the part of system modeler.
My question is what do you think is better to use for parsing and storing the message. ETL (using Pantaho, which is used in other system) where you store the raw message and use task executor to consume them one by one and store the transformed messages as per your rules.
One could use Espr or Drools to do the same thing , storing rules and executing them with timer, but I am not sure how dynamic you could get with making rules (they have to be made by end user in a running system and preferably in most user friendly way, ie no scripts or code, only GUI)
The end user should be capable of changing the parse rules. It is also possible that end user might want to change the archived data as well (for example in the above example if a new value of FillLevel is added, one would like to put a FillLevel=-99 in the previous values to make the data consistent).
Please ask for explanations, I have the feeling that I need to revise this question a bit.
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Esper 是一个很棒的 CEP 引擎,但是 drools 有它自己的实现 Drools Fusion,它与 jBpm 集成得非常好。那将是一个不错的选择。
Well Esper is a great CEP engine, but drools has it's own implementation Drools Fusion which integrates really well with jBpm. That would be a good choice.