Projects/Piranhas

edit
revisions

what's new
search
help

kiwi


The Piranhas Agent Platform

Introduction

Piranhas is an agent systems development platform that allows to implement agent-oriented applications, ranging from networking utilities, desktop applications, scientific simulation or simply experimenting with artificial intelligence.

Piranhas is built with the following principles in mind : Simplicity, flexibility, extensibility and efficiency

Piranhas stands for Piranhas is really a new hype agent system, which is actually not supposed to mean anything.

Related pages:

Related links:

  • The official Piranhas page on Type-z.org [1]
  • Objective-C?, information on the Objective-C language, with an interesting introduction to the garbage collector.
  • Io.IoLanguage, some notes on Io, which is used as an extension language to Piranhas
  • Stackless Python [2], an original experimental Python interpreter that seems to grow similar ideas as Piranhas.

A brief overview

First written in Python (Piranhas 1, made in spring 2001), Piranhas evolved to a faster Objective-C implementation (Piranhas 2, winter 2002), which also clarifies Piranhas key concepts:

  • Objects are extended to the notion of resource, which allows them to be inserted in Piranhas environment, be attached access rights, and be resolvable using a global "naming service".
  • Lightweight execution model: Piranhas execution model is based on fair threads and exhibits features similar to ``actor languages``. Piranhas puts an emphasis on asynchronous communication and event-based control flow modification.
  • Micro-kernel design: Piranhas is designed in the micro-kernel philosophy, ie. identify the

bare minimum functionalities and put it in the kernel, everything else has to be provided as a service. This makes Piranhas extremely modular, and also brings interesting architectural patterns.

Piranhas achieves a rather good performance as is supports litterally thousands of agents, and supports up to 10000 sent messages per second, on an 400Mhz machine. For the comparison most agent platforms only manage a few hundred agents and usually echange less than a thousand messages per second.

ConcurrentProgramming? is one of the aspects where Piranhas is interesting compared to other agent platforms (Leap for instance), which are most Java-based. It is interesting to see WhyObjectiveCisGoodForAgents?, just as SmallTalk?? was.

Current state of Piranhas

One of my mid-term concern with Piranhas is the support of distribution (DistributedPiranhas) and security (SecuredPiranhas?). Piranhas already comes with a framework that allows to extend the resources with security mechanisms,but I did not really end up with a practicable architecture to realise security.

I recently came across TwistedMatrix? PerspectiveBroker?, which seems to offer a simple and light way to handle remote objects, as well as an infrastructure (TwistedCred?) to manage security. I was rather striked by seeing that perspectives in the perspective broker are really close to the aspects I have in Piranhas. I guess that there are some common points in Piranhas and Twisted vision, so I will have to dig this out.

I would like to thank Alain-Jerome Fougeres, who introduced me to agent systems and provided me support and time in the development of Piranhas 1 and 2. Thanks also goes to Armand Marchesin for letting me apply and enhance Piranhas in new contexts.

last modified on September 27, 2005, at 03:35 PM

© type-z.org and its contributing authors, 2001-2004.
Content is licensed under a Creative Commons License.