Initial Release of prototype SAMP Hub

From: Alasdair Allan <aa-at-astro.ex.ac.uk>
Date: Wed, 7 May 2008 22:03:52 +0100


All,

Ahead of the Trieste meeting...

I've just completed a prototype SAMP Hub written in Perl, developed against the IVOA working draft of the specification dated 2008-04-30 distributed on the apps-samp mailing lis, with additions such as the argument order for the call( ) and callAll( ) methods taken from the apps-samp mailing list over the last couple of days.

You can download it from

http://www.babilim.co.uk/software/SAMP_Hub.tar.gz

and testbed clients can be found at,

http://www.babilim.co.uk/software/SAMP_Clients.tar.gz

This is an initial first cut release of the SAMP Hub and as such comes with no guarantees except there will be horrendous bugs. Also since this is the first implementation of a Hub, it probably won't play well with others, clients or hubs, either because of toolkit issues or because my interpretation of the specification doesn't entirely match other peoples. The software has been tested under OSX Tiger and Ubuntu Linux 7.10.

You will need the following Perl modules installed to run the hub and testbed clients,

XMLRPC::Lite
XML::Simple
DateTime
File::Spec
Carp
Data::Dumper
Getopt::Long
Socket
Net::Domain
POSIX
Errno

depending on your version of Perl some (but not all) of these will ship with the core distribution. The rest can be obtained from CPAN (http://search.cpan.org/). I think I've caught all the dependancies, but if you notice any I haven't listed any let me know I've forgotten them.

There is no documentation. Many of the Perl modules have inline POD, however most of it didn't keep up with the pace of development so it's out of date. However, once you install the additional modules, open up a terminal window and start the Hub as follows,

% tar -zxvf SAMP_Hub.tar.gz
% cd SAMP_Hub/
% ./samp_hub.pl

you can put the Hub through its paces by opening up two more terminal windows and running the testbed clients. You should start the listener client in all cases,

% tar -zxvf SAMP_Clients.tar.gz
% cd SAMP_Clients/
% ./listener_client.pl

this is the test client that listens for notify( ) and call( )'s from the Hub.

In the second window you can either start the client that exercises the notify( ) method, or the other than exercises the call( ) method. So

% cd SAMP_Clients/
% ./callAll_test.pl

or

% cd SAMP_Clients/
% ./notifyAll_test.pl

These two clients have a heart beat which will dispatch a call or a notification periodically. The first heartbeat will happen 15 seconds (or so) after the client has completed its registering with the Hub.

It should be noted that the initial Hub implementation does NOT implement callAndWait( ) pending discussion of asynchronous vs synchronous messaging, either on the apps-samp mailing list or at the Tieste meeting itself.

I'm interested in hearing from other Hub implementors, or people putting together SAMP client support, whether what I've generated interoperates okay with your implementation. It won't, but it'd be nice to get close...

Cheers,
Al. Received on 2008-05-07Z23:04:03