2010-06-02 50 views
0

我们需要。我们需要使用ESB公开drools 5,并且与web应用程序一起使用。虽然我已经想出了使用eclipse运行drools的方法,但是现在很难在同一个web应用程序中配置Drools 5,并且在未来将它转换为esb 。 Guvnor和流口水服务器不仅仅足以帮助我,也没有使用谷歌搜索它帮助 ,甚至春天的支持也不可用。Drools 5使用jaxb将其公开给Web应用程序和Web服务(SOAP)

任何帮助将不胜感激...谢谢

回答

1

在什么水平你需要“暴露”在ESB中Drools的?我在使用异步Web服务的企业解决方案中使用Drools;我的许多工作流程都非常长(2周到一个月)。关键是在调用之间暂时保持StatefulKnowledgeSession。有一个JPAStatefulKnowledgeSession序列化会话并将其作为blob存储在关系数据库中。我决定不使用这个解决方案,因为我的许多异步任务在一秒钟内完成。坚持RDBMS流程的性能成本对我的需求太大了。我的解决方案是将会话存储在内存中的缓存中。 Infinispan的配置和使用非常简单,而且我还没有遇到与该框架有关的单一问题。

您是否需要让ESB和Web应用程序使用相同的KnowledgeSession?它是否必须是一个有状态的知识会话?如果你需要维护状态,你应该考虑一个基于队列的系统和fireAllRules()。如果你的行为是基于命令的(插入对象,启动进程等),我相信Drools已经有了一个模式的API(我相信这是Drools服务器的底层)。你也可以使KnowledgeSession成为一个单身人士;但考虑使用ReentrantLock来防止对象的并发调用。如果您正在隔离会话,创建自己的存储库效果最好。 Infinispan的缓存实现了ConcurrentHashMap,因此您可以使用会话的ID作为关键字,将KnowledgeSession作为值。

相关问题