<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Our implementation is a light layer to provide "wait states" for one or
more rules, it uses a similar principle to agenda-groups (Clips
modules) to partition the execution. Activated rules are placed in
temporary buckets (rule-flow-groups), instead of onto the agenda, when
the rule-flow-group is activated the bucket empties onto the Agenda for
normal execution, when all the emptied rules are fired the next
rule-flow-groups are activated. <br>
<br>
The system is still "parallel" in nature, in that the agenda is still
responsible for executing rules and the agenda can have more than one
rule on it at at time. In our implementation all the rules in the
rule-flow-group will be put onto the agenda for execution, at the same
time standard rules can also continue to be managed and executed by the
agenda, and agenda groups (clips modules) still continue to operate -
all in parallel.<br>
<br>
A rule that is specified to execute as part of a rule-flow-group can
also be part of an agenda-group, but that use case is discouraged
because it can get quite hairy unless you really know what you are
doing :) As it means a rule-flow-group can be activated, the rules
moved onto their respective agenda-groups, where any rules not in
agenda-groups that do not have focus will not fire, the next
rule-flow-group will not activate untill all rules for the current
rule-flow-group have fired, regardless of the agenda-groups they are in.<br>
<br>
The limitation at the moment is that the temporary bucket has no
ability to handle different start instances and differentiate between
the rules in it's bucket of the same rule-flow, but you can have
multiple different rule flows executing in parallel. We purposefuly
kept it simple for "version 1" to build up the functionality needed for
rule flow. The use cases for parallel execution of the same flow are
not easy - as one instance can catch up and over take another instance
on the same flow. Also if a rule in a rule-flow-group activates which
of the two current instances for the same rule flow are responsible for
firing it? The same issue arrises for when you have the same
rule-flow-group in multiple rule-flows. We are currently not sure how
best to handle these types of situations; maybe you could help us on
those use cases? Or even provide a patch :)<br>
<br>
Mark<br>
Rich Halsey wrote:
<blockquote cite="mid:001101c759a3$0f0ba070$210110ac@BUBBA" type="cite">
  <meta http-equiv="Content-Type" content="text/html; ">
  <meta content="MSHTML 6.00.6000.16414" name="GENERATOR">
  <style></style>
  <div>&nbsp;</div>
  <div><font face="Arial" size="2">Hi Mark,</font></div>
  <div>&nbsp;</div>
  <div><font face="Arial" size="2">The part in the document where it
says: <font face="TimesNewRomanPSMT">
  <p align="left">"At this point, ruleflow-groups should not be reused
in more than one ruleflow, and you should not</p>
  <p align="left">start a new instance of a process before the previous
one has ended." </p>
  <p align="left">will be the weak link in the chain, i.e. there should
not be any reason why rule-flow-groups should not be reused nor having
multiple instances since rules are implicitly parallel in operation.
This was what I found to be the problem with ILOG's JRules back in the
v4.0 edition. It turned JRules into a clunky procedural processing
engine (which was not what we needed at that time).</p>
  <p align="left">However, I am very proud to see that Jboss Rules
(JBRules) has successfully evolved to this point. You (and your team)
are to be commended for your efforts.</p>
  <p align="left">Tally-ho !!</p>
  <p align="left">Rich Halsey</p>
  <p align="left">&nbsp;</p>
  <p align="left">&nbsp;</p>
  <p align="left">&nbsp;</p>
  </font></font></div>
  <div>&nbsp;</div>
  <div>&nbsp;</div>
  <div>&nbsp;</div>
  <div>"GENIUS IS THE ULTIMATE WEAPON"</div>
  <div>&nbsp;</div>
  <div>....God grant me...<br>
The senility to forget the people I never liked<br>
The good fortune to run into the ones that I do<br>
And the eyesight to tell the difference."<br>
  </div>
  <blockquote dir="ltr"
 style="border-left: 2px solid rgb(0, 0, 0); padding-right: 0px; padding-left: 5px; margin-left: 5px; margin-right: 0px;">
    <div
 style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;">-----
Original Message ----- </div>
    <div
 style="background: rgb(228, 228, 228) none repeat scroll 0%; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>From:</b>
    <a moz-do-not-send="true" title="mproctor@redhat.com"
 href="mailto:mproctor@redhat.com">Mark Proctor</a> </div>
    <div
 style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>To:</b>
    <a moz-do-not-send="true" title="rules-dev@lists.jboss.org"
 href="mailto:rules-dev@lists.jboss.org">Rules Dev List</a> </div>
    <div
 style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>Sent:</b>
Monday, February 26, 2007 5:12 AM</div>
    <div
 style="font-family: arial; font-style: normal; font-variant: normal; font-weight: normal; font-size: 10pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"><b>Subject:</b>
RuleFlow preview</div>
    <div><br>
    </div>
I thought everyone on the dev list would be interested in reviewing and
providing feedback on Kris' excellent work on RuleFlow - includes
screenshots :)<br>
    <br>
Mark<br>
-------- Original Message --------
    <table class="moz-email-headers-table" border="0" cellpadding="0"
 cellspacing="0">
      <tbody>
        <tr>
          <th align="right" nowrap="nowrap" valign="baseline">Date: </th>
          <td>Mon, 26 Feb 2007 01:51:29 +0100</td>
        </tr>
        <tr>
          <th align="right" nowrap="nowrap" valign="baseline">From: </th>
          <td>Kris Verlaenen <a moz-do-not-send="true"
 class="moz-txt-link-rfc2396E" href="mailto:kris.verlaenen@gmail.com%3E">&lt;kris.verlaenen@gmail.com&gt;</a></td>
        </tr>
        <tr>
          <th align="right" nowrap="nowrap" valign="baseline">Subject: </th>
          <td>Ruleflow</td>
        </tr>
      </tbody>
    </table>
    <br>
    <br>
    <pre>I've attached a document describing how ruleflow is implemented /
could be used in the future.  If anyone has got any suggestions or
improvements (on the API I'm proposing, or things you would like to
see differently), just let me know asap.

I think I'll be able to commit a first working version on svn soon.
Still have to include conditional connections (where a connection is
only selected if its condition evaluates to true), and some smaller
stuff.

Kris

    </pre>
  </blockquote>
  <pre wrap="">
<hr size="4" width="90%">
_______________________________________________
rules-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:rules-dev@lists.jboss.org">rules-dev@lists.jboss.org</a>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/rules-dev">https://lists.jboss.org/mailman/listinfo/rules-dev</a>
  </pre>
</blockquote>
<br>
</body>
</html>