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

AW: AW: [xmlblaster] Rule Based Publishing



Hello again,
in any case, if we implement it as a plugin we are still open. We could have a I_RulesEngine and let our plugins implement it. We could then have a jeops based plugin, a javascript plugin (I agree that a user should not need to learn a new language each time) or a tcl plugin or what more ... and then we can start flight ....

Salutissimi
Michele

> -----Ursprüngliche Nachricht-----
> Von: Marcel Ruff [mailto:ruff at swand.lake.de]
> Gesendet am: Dienstag, 23. April 2002 09:18
> An: xmlblaster at server.xmlBlaster.org
> Betreff: 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
> 
>