On Tue, Nov 25, 2003 at 01:41:45PM +0100, Christophe MERTZ wrote: > > We are using at CENA (French Reserch Center for Air Traffic Control) a > perl module called Ivy.pm for more than 5 years now, and this module is > freely available since July 2000 (at least). > It was proven to be very powerfull for developping multi-agents > /multi-plateform prototypes. In facts it is a software bus, very easy to > use. It works on many languages and many architectures. A new agent on > the bus just connect, subscribes to messages through simple regexp (part > of the regexp being given as arguments to callback) and send messages. > Messages are text, and as any agent can subscribe to any regexp, it is > very easy to use and add new agents.
Sounds good. > Ivy is already freely available on http://www.tls.cena.fr/products/ivy Pity the docs are so patchy. > but has never been uploaded on the CPAN. My question relates to the > module name. In-house (and in other reserch centers and at least one > company), we could hardly change this module name because it is used in > more than 50 applications and in more than 10 teams. In fact the number > of agents is really more if we count all very small agents (maybe 100 or > 200, hard to say). > > So I can only see two ways to upload this usefull module: > * we upload the module with this root name: Ivy > * we upload the module in a subhierarchy Xxx::Ivy but we need to build > a wrapper for our own needs... This solution seems to be a bit > tricky and I fear this could be error-prone. It's a single module implementing a class. The wrapper ought to be no more complicated than: package Ivy; use base Net::Ivy; 1; Hardly error-prone. > Do you have some suggestions? I'd suggest uploading as Net::Ivy and bundling an Ivy.pm as a wrapper. > PS: Ivy.pm current implementation is based on Arrays rather than Hashes. > The implementation could be modified to use hashes or extended to > simplify sub-classing. This would not be done in a first CPAN > release.... (I'm disappointed the module isn't an interface to the C library.) Tim.