Ants in your P2Pants
Tim Finin writes: "Anthill is a framework being developed at University of Bologna to
support the design, implementation and evaluation of P2P applications,
viewing them as instances of Complex Adaptive Systems, typically found
in biological and social sciences. In Anthill, desired properties such
as resilience, adaptation and self-organization correspond to the
"emergent behavior" of the underlying CA system. An Anthill system
consists of a dynamic network of peer nodes; societies of adaptive
agents (ants) travel through this network, interacting with nodes and
cooperating with other agents in order to solve complex problems. The source code for Anthill v1.0 is available for downloading. MORE on this is at ebiquity.org."
Congratulations, you just described the basic alghorithm of ant systems :)
There is also a negative feedback involved: the scent (pheromones) evaporate over time to avoid getting stuck in a local optimum too soon.
A lot of literature is available on ant colony optimization and ant systems. A starting point might be the homepage of Marco Dorigo.
...which is on a similar theme, LGPL and possibly more complete.
http://www.jtrix.org
Unlike Anthill we're addressing a wider variety of needs (in fact, any kind of app you want to scale up), so you can build all kinds of things on top of Jtrix, from traditional P2P (Freenet, Gnutella, etc) to other apps needing scaling and security (Web-based mail, Passport-a-like, and so on).
We've been at it 18 months now and have things like an HTTP server and servlet engine which work in this environment. It's great to see these kind of frameworks growing in popularity.
Nik
They have the right idea when it comes to studying large distributed networks. Network emergent properties is absolutely the most interesting thing in that field, and I strongly believe that it is a much better model for trying to handle highly dynamic networks than trying to route within a rigid structure as lot of object location networks have been designed to do.
That said, peer to peer network simulators and frameworks are a dime a dozen - anybody who was at the last O'Reilly "P2P" conference would have noticed that everybody, their mother, and their great-aunt Petrunella seems to have one. Setting up a bunch of java interfaces is not that hard, and calling a Node a "Nest" and giving it the following methods:
public interface Nest {
void request(Request request,
ReplyListener listener);
void addService(AntFactory factory);
void addNeighbor(NestId nid);
void removeNeighbor(NestId nid);
NestId[] getNeighbors();
}
is not exactly a radical new design.
What is really needed are more examples of analytical work regarding the emergence of and utility of routing properties in the known algorithms, as well as other radically new routing schemes besides Freenet. I'm glad that these people have their framework in place, but it really isn't news until they have something to show for it.