<br>    Interesting analogy, but careful here:<br><br>&quot;Statefull is just series of
stateless session where you transfer state from one session to
another.&quot;<br><br>    Not sure what lead you to think that way, but it is actually the opposite, and trying to explain that will make things REALLY confusing for some. So, I would recommend anyone not interested in knowing internal details to **stop reading here**! <br>
<br>    Ok, if you are still reading, then I will try to explain in the simplest way I can: &quot;there is no such thing as stateless session in Drools internals&quot;. Deep in drools internals, there is only stateful working memory, that is exposed to the user in 2 different ways: a properly stateful session, that allows users to manage the state, and a helper object that we call &quot;staless session&quot;. This helper staless session object, among other things, simply holds a reference to the kbase and when the execute(...) method is called, internally it creates a stateful session, inserts the facts, fire the rules and disposes the session automatically. There are a bunch of other helper mechanisms there, but the essence is just that: simplify the use of stateful sessions for stateless scenarios.<br>
<br>    Edson<br><br><div class="gmail_quote">2010/3/8 Pavel Tavoda <span dir="ltr">&lt;<a href="mailto:pavel.tavoda@gmail.com">pavel.tavoda@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
It&#39;s like synchronous vs. asynchronous communication. In reality it&#39;s<br>
always asynchronous but from top view it appear synchronous.<br>
Similar to stateless vs. statefull. Statefull is just series of<br>
stateless session where you transfer state from one session to<br>
another. Look for Drools statefull persistency. In reality it is<br>
series of stateless sessions where you store status from one session<br>
result and use it as start for another session plus some new changes.<br>
This is my point of view of difference between stateless/statefull<br>
session specially how Drools make it.<br>
<br>
Regards<br>
<font color="#888888"><br>
Pavel<br>
</font><div><div></div><div class="h5"><br>
On Mon, Mar 8, 2010 at 4:23 PM, Tim de Jager &lt;<a href="mailto:tim.dejager@student.hu.nl">tim.dejager@student.hu.nl</a>&gt; wrote:<br>
&gt;<br>
&gt; Hi everybody,<br>
&gt;<br>
&gt; I&#39;m currently doing my bachelor thesis on Rule engines. This includes<br>
&gt; comapring different Rule engine products. I have set up a small Java program<br>
&gt; (Conway&#39;s game of life) and I&#39;m writing the &#39;engine&#39; in different Rule<br>
&gt; engines, while keeping the same GUI,CellGrid etc. I have already made a<br>
&gt; Drools based engine.<br>
&gt;<br>
&gt; I have been studying the Rule engine subject for somewhat more then a month<br>
&gt; now. And I&#39;m currently seeing two different developments namely the use of<br>
&gt; an inference engine and the generation of embedded code instead (Take,<br>
&gt; Visual Rules etc.)  I can see some of the pro&#39;s and cons with both<br>
&gt; paradigms. But I&#39;m wondering what opinion some of you guys have on the<br>
&gt; subject.<br>
&gt;<br>
&gt; I can see that without inferencing  it is very hard (or even impossible) to<br>
&gt; keep a statefull session inside the rule engine, haven&#39;t seen a<br>
&gt; non-inferencing rule engine which does offer this possibility. And also lose<br>
&gt; features like TMS. But what would be a concrete example where a statefull<br>
&gt; session is absolutely necessary? Instead of letting the engine reason over<br>
&gt; all the facts in stateless way. And managing conflicts with a ruleflow (see<br>
&gt; Visual Rules for a nice example).<br>
&gt;<br>
&gt; I&#39;m looking forward to hearing your thoughts.<br>
&gt;<br>
&gt; Thanks,<br>
&gt;<br>
&gt; Tim<br>
&gt;<br>
&gt; P.S I already read two of Mark Proctors blogs on inferencing, but while<br>
&gt; enlightening, they didn&#39;t supply me with a definitive awnser<br>
&gt; --<br>
&gt; View this message in context: <a href="http://n3.nabble.com/Inferencing-tp435411p435411.html" target="_blank">http://n3.nabble.com/Inferencing-tp435411p435411.html</a><br>
&gt; Sent from the Drools - User mailing list archive at Nabble.com.<br>
&gt; _______________________________________________<br>
&gt; rules-users mailing list<br>
&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
&gt;<br>
<br>
_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>  Edson Tirelli<br>  JBoss Drools Core Development<br>  JBoss by Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a><br>