Registered: Mar, 2004
Re: Rete Networks and Tuple Spaces
Posted: Sep 28, 2004 4:11 PM
> > <p>Would a Rete network model be more appropriate than
> > relational model for a Javaspace?</p>
> Don't think so. Conceptually, I think it's a nice model
> for implementing matching of newly written Entry's against
> blocked match calls but, one still requires some form of
> DBMS to persist Entry's in along with a whole pile of
> other state such as registered notifies, event id's etc.
Persistence is actually less important than the in-memory representation and execution. However, the same parallels that I see in JS and Rete are quite similar to the index pages of a DBMS and a Rete network. Rete networks are very efficient at "sorting" large amounts of data. However, I don't have any concrete ideas about how this all might pan out... yet :-)
> So I think you might be able to mix the two together in an
> implementation to give you something different but I dunno
> that it'll be better in any quantifiable way.
One of the frustrations that I've had with distributed data structures in a JavaSpace is "tying" the various related entries together coherently. Putting these ideas together would make using them a little less surprising and require less client side code.
In a single entry/template JavaSpace, probably not. But in one that is capable of matching arbitrary multiple entries or templates, a Rete-based network could significantly outperform other algorithms (memory and CPU time).
> > <p>Currently, the JavaSpaces spec only provides for a
> > single template type to match. Providing an API to
> > match multiple types (and object values) would allow for
> > a distributed rules engine. Taking this idea one step
> > further: distributed workflow engine.</p>
> Well, of course, we have the upcoming spec's for bulk
> operations and iterator which provide for matching against
> multiple templates which might go some way toward where
> you're heading.