[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

library / design suggestions requested

Joe Van Dyk

7/13/2005 5:11:00 PM

Hi,

I've been assigned with the task of writing a program that lets a user
start and monitor applications on a group of computers/nodes (called a
cluster).

Requirements:
- Multiple people can start the GUI and view what's going on on the
cluster.
- People need to be able to assign specific programs to specific nodes.
- Need to be able to give each program values for their command-line
arguments and environment variables.
- Be able to easily view the log files for each application
- Be able to start/kill applications at will
- See if an application is still running or not. Notified if a
program unexpectedly died.
- Start and kill a group of applications as if it's one application
- Users shouldn't be able to kill another user's application

So, I'm thinking that on each node there could be a DRb server that could:
- Listen for start application commands
- Listen for kill application commands
- When it gets an "update" command, would send back a status report
that contained what applications were running, the load average, stuff
like that.

And then each node could register themselves somehow with Rinda? And
then every GUI that started could connect to that Rinda server.
Except that in the future the GUI will have to deal with multiple
clusters, and so there might have to be multiple Rinda servers (one
for each Cluster).

Does that approach sound reasonable? Are there any libraries or
existing applications out there that would help me with this?

Thanks,
Joe


1 Answer

khaines

7/13/2005 7:01:00 PM

0

On Wednesday 13 July 2005 11:11 am, Joe Van Dyk wrote:

> So, I'm thinking that on each node there could be a DRb server that could:
> - Listen for start application commands
> - Listen for kill application commands
> - When it gets an "update" command, would send back a status report
> that contained what applications were running, the load average, stuff
> like that.
>
> And then each node could register themselves somehow with Rinda? And
> then every GUI that started could connect to that Rinda server.
> Except that in the future the GUI will have to deal with multiple
> clusters, and so there might have to be multiple Rinda servers (one
> for each Cluster).

A Rinda Ring running a simple TupleSpace service works extremely well for
message passing. And by naming clusters uniquely, and using that name in the
messages passed, one would not even necessarily have to worry about having
different rings for different clusters. You could probably function pefectly
fine with a single tuplespace that everything talks with.

Eric Hodel has a couple simple pages that demonstrate just how easy it is to
use Rinda & TupleSpaces.


Kirk Haines