[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: AW: [xmlblaster] Rule Based Publishing



Michele.Laghi at swisscom.com wrote:
I had a (very) quick look at jeops and from a first glance it looks pretty similar to jrules (a commercial product).
> Making the choice of using it instead of javascript (or even tcl) could suddently transform xmlBlaster
> into a rules engine or even a complete workflow engine.
> This would broaden the application possibilities of xmlBlaster even more
> (I just saw what telecom companies are spending in workflow engines).

So I think it might be interesting to give a closer look at jeops.

Saluti
Michele

Saluto,

some thoughts about the rule engine JEOPS
http://www.di.ufpe.br/~jeops/


JEOPS: ======

/**
 * Simple rule for trading.
 */
rule trade {
  /* In this rule, one agent will buy a product from another agent. */
  declarations
    Salesman s;
    Customer c;
    Product p;
  conditions
    c.needs(p);  // he won't buy junk...
    s.owns(p);
    s.priceAskedFor(p) <= c.getMoney();
  actions
    s.sell(p);
    c.buy(p);
}


Javascript: ===========

boolean trade(s, c, p)
{
   if (c.needs(p) && s.owns(p) && s.priceAskedFor(p) <= c.getMoney()) {
      s.sell(p);
      c.buy(p);
   }
}

I prefere the Javascript approach, every teenager pupil
knows the syntax (from developing his homepage), the
customer of the product does not need to learn a new
language ...

The next point is we often have to deal with time:


boolean trade(s, c, p) { if (c.needs(p) && s.owns(p) && s.priceAskedFor(p) <= c.getMoney()) { tm.waitForCreditClearance(); // has buyer money s.sell(p); sleep(10000); // bank earns interest rate c.buy(p); } }

or "if terminalserver has delivered more than 100 bytes
over the last minute and the last byte is not older than 10 sec"
is a very timing based rule with history information.


Another point is the dynamic on the fly change of rules in a hot running system. does JEOPS support this?

=====================

On the other hand we could compile the JEOPS rule java classes
on the fly, and probably gain some performance when
executing 1 million times.

JEOPS defines a "Knowledge base" which fits very nice to
xmlBlaster, our message approach keeps the "Knowledge Base"
up to date in 'real time' -> a real gain of value.

Native workflow/rule support in xmlBlaster would be a real
gain for xmlBlaster, we should follow this track.

Did i miss the point?

Marcel
--
Marcel Ruff
mailto:ruff at swand.lake.de
http://www.lake.de/home/lake/swand/
http://www.xmlBlaster.org