2010-06-02 52 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作爲值。

相關問題