Xml 需要帮助为业务活动监视(BAM)应用程序构建POC吗

Xml 需要帮助为业务活动监视(BAM)应用程序构建POC吗,xml,architecture,drools,esb,mule,Xml,Architecture,Drools,Esb,Mule,我一直在研究实现BAM应用程序的工具和框架。基本要求将是: 与不同 申请创业 状态/活动。初始馈送 将是JMS提供者、Web服务、FTP、, 还有JMX 将尽可能接近实时 每天需要以每秒2000次的速度处理2000多万条消息(通过诸如activeMQ或WebsphereMQ之类的JMS提供程序以XML格式处理的消息) 违反KPI时生成警报(警告和严重级别) 其他的事情要考虑的是我们的小公司有一个MuleExt EE许可证,一个公司应用程序栈(OSGi捆绑与Tomcat,Actudio Q,Doo

我一直在研究实现BAM应用程序的工具和框架。基本要求将是:

  • 与不同 申请创业 状态/活动。初始馈送 将是JMS提供者、Web服务、FTP、, 还有JMX
  • 将尽可能接近实时
  • 每天需要以每秒2000次的速度处理2000多万条消息(通过诸如activeMQ或WebsphereMQ之类的JMS提供程序以XML格式处理的消息)
  • 违反KPI时生成警报(警告和严重级别)
  • 其他的事情要考虑的是我们的小公司有一个MuleExt EE许可证,一个公司应用程序栈(OSGi捆绑与Tomcat,Actudio Q,DooLo.等)

    因此,在我尝试POC之前,我仅从研究角度考虑的初稿方法如下:

    使用Mule作为ESB与各种应用程序进行集成,然后使用其SEDA服务处理事件并将事件转移到Drools引擎,以处理与这些事件相关的规则

    我不太确定这个过程是否就是这些工具被设计用来使用的方式,或者是否有更好更雄辩的方式来处理这个问题。还有其他一些悬而未决的问题:

    • 如何向用户显示事件和状态(警告、kpi违规等)的聚合。GWT集成?是否应将事件放入内存中的数据库中进行查询和显示
    • 就物理架构而言,我考虑在两台服务器上的集群tomcat实例中运行mule,两台服务器上都有drools引擎?数据库(用于历史记录存储)位于其自己的服务器上
    • 我不仅限于上面的工具,我还研究了Esper、apachecamel
    • 这种做法是否有失偏颇?一个更简单的直接webapp可以与RDBMS管理状态一起使用吗?我认为实时性和事件数量的要求会阻止这种情况的发生

    任何帮助都将不胜感激,以帮助我完成这里的初始战略,或者是任何人已经实施了类似要求的解决方案,并希望与大家分享。谢谢大家!

    > P>您可能会考虑使用NoSQL数据库来存储事件数据,因为

  • 大量数据
  • 每秒写入事件所需的速度
  • 您需要灵活的模型来捕获特定于KPI定义的事件数据中的不同属性,因为KPI基于您的应用程序数据模型
  • 如果您选择走这条路线,那么我建议您使用面向文档的数据存储,比如MongoDB,因为

  • 需要高效读取来计算定义的KPI的值
  • 需要非常丰富的数据表示,主要是用于捕获事件数据的分层数据表示
  • 您可以使用lucene这样的二级索引机制来提高DB提供的开箱即用的读取性能。这些索引可以特定于基于应用程序数据模型定义的KPI
  • 是的,您需要像MQ这样的异步事件处理机制


    我已经看到IBMWebSphereBAMServer使用事件数据的XML表示,并将它们存储在关系数据库(如DB2)中。但我认为NoSQL将是更好的选择

    > P>您可能会考虑使用NoSQL数据库来存储事件数据,因为

  • 大量数据
  • 每秒写入事件所需的速度
  • 您需要灵活的模型来捕获特定于KPI定义的事件数据中的不同属性,因为KPI基于您的应用程序数据模型
  • 如果您选择走这条路线,那么我建议您使用面向文档的数据存储,比如MongoDB,因为

  • 需要高效读取来计算定义的KPI的值
  • 需要非常丰富的数据表示,主要是用于捕获事件数据的分层数据表示
  • 您可以使用lucene这样的二级索引机制来提高DB提供的开箱即用的读取性能。这些索引可以特定于基于应用程序数据模型定义的KPI
  • 是的,您需要像MQ这样的异步事件处理机制


    我已经看到IBMWebSphereBAMServer使用事件数据的XML表示,并将它们存储在关系数据库(如DB2)中。但我认为NoSQL将是更好的选择