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

时间:2011-05-08 22:57:25

标签: xml architecture drools esb mule

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

  1. 与不同的接口 应用程序来获得业务 状态/活动。初始Feed 将是JMS提供商,Webservices,FTP, 和JMX。
  2. 尽可能接近实时。
  3. 需要每天以2000 /秒的速度处理超过2000万条消息(在XML上通过像ActiveMQ或WebsphereMQ这样的JMS提供程序发送消息)。
  4. 违反KPI时生成警报(警告和关键级别)
  5. 其他需要考虑的事情是我们的小公司拥有Mulesoft EE许可证,公司应用程序堆栈(osgi捆绑Tomcat,ActiveMQ,Drools等等。)

    所以,在我尝试POC之前,我单独从研究中考虑的初步方法就是:

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

    我不太确定这个过程是否是这些工具的设计方式,或者是否有更好的方法来处理这个问题。还有一些其他突出的问题:

    • 如何向用户显示事件和状态的聚合(警告,kpi违规等)。 GWT整合?是否应将事件放入要查询和显示的内存数据库中?
    • 就物理架构而言,我想在同一服务器上使用drools引擎在两台服务器上运行集群tomcat实例中的mule?数据库(用于历史存储)在自己的服务器上。
    • 我不仅限于上面的工具,我也在看Esper,Apache Camel
    • 这种方法是否过度杀伤?可以使用更简单的直接webapp与RDBMS管理状态吗?我认为实时和数量的事件要求会阻止这种情况发生。

    任何帮助都将在这里帮助我完成初始策略,或者是否有人已经实施了具有类似要求的解决方案并希望分享。谢谢!

1 个答案:

答案 0 :(得分:0)

由于

,您可能需要考虑使用NoSQL数据库存储事件数据
  1. 大量数据
  2. 每秒写入事件所需的速度
  3. 您需要灵活的模型来捕获特定于KPI定义的事件数据中的不同属性,因为KPI基于您的应用数据模型。
  4. 如果您选择继续这条路线,那么我建议使用像Mongo DB这样的面向文档的数据存储

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

      我曾经看到IBM Websphere BAM服务器使用其事件数据的XML表示,并将它们存储在像DB2这样的关系数据库中。但我认为NoSQL会是更好的选择。