library / design suggestions requested

J

Joe Van Dyk

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. =
=20
- 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=20

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.=20
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
 
K

Kirk Haines

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
474,175
Messages
2,570,944
Members
47,491
Latest member
mohitk

Latest Threads

Top