Empfehlungen für die Verwendung von Drools Expert / Flow in einer Webanwendung

9

Ich lerne gerade Drools Expert / Flow sowie GWT. Ich möchte Drools Flow als Event / Command Bus und Business Rule Engine verwenden, um eine lose Kopplung zwischen verschiedenen Teilen der Anwendung zu erreichen.

Bisher habe ich sowohl Experten als auch Flow aus meinen Testfällen heraus arbeiten lassen, aber es fällt mir schwer, herauszufinden, wie man die Abläufe in einem Webcontainer am besten implementiert.

Soll ich das ganze Gerüst in eine Stateless Session EJB einbauen und jede Anfrage von Grund auf neu erstellen und dann die Flows / Regeln ausführen? Das scheint für mich eine Verschwendung von Ressourcen zu sein. Kann ich stattdessen eine einzelne Wissenssitzung speichern und diese Sitzungen zwischen Webanfragen teilen und gleichzeitig darauf zugreifen? Würde dieses Szenario skalieren und wäre es threadsicher (meine Vermutung ist nein)? Ist das Sammeln von Wissenssitzungen eine gute Idee?

Was ich verlange ist im Grunde, ob es Best Practices für die oben genannten gibt? Die Dokumentation und Beispiele, obwohl ansonsten ziemlich gut, sind in diesen speziellen Punkten nicht klar.

Ich habe etwas über Drools Grid gelesen, nicht sicher, ob das mein Problem lösen würde und das scheint in der Entwicklung zu sein. Wenn meine Fragen unklar sind, sag es bitte.

BR Magnus

    
Magnus 28.09.2010, 23:03
quelle

1 Antwort

3

Eine KnowledgeBase ist Thread-sicher und schwer (es ist nicht billig zu erstellen), also werden Sie wahrscheinlich das in einem Anwendungsumfang behalten wollen.

Im Moment neigen die meisten dazu, eine zustandslose Architektur zu verwenden und für jede Webanfrage eine Stateless KnowlegdeSession (Thread unsafe und billig zu erstellen) zu erstellen, zum Beispiel in einer Stateless Session Bean (oder einer Naht / CDI Bean oder einer Spring Bean) . Wenn Sie jedoch die Macht von Stateful EJBs haben, kann es lohnend sein, eine StafefulKnowlegdeSession zu verwenden, um alle Anfragen in derselben Konversation zu bearbeiten.

Ich bin mir nicht sicher, ob StatefulKnowlegdeSession threadsicher ist (glaube nicht), Also habe ich ein Problem gemacht: Ссылка

    
Geoffrey De Smet 21.12.2010, 08:20
quelle