Question

In grid computing, what is the de facto software practice used by a server to discover clients and get information about them? For example, the name of the client, how much memory is available, is the client currently performing a task (and how much has it completed), etc. Or is it the other way around? Do the clients occasionally report that information to the server?

Would this be done via RPC? Or a messaging protocol (AMQP, STOMP)?

I'm also wondering if the same method is used to send clients various jobs/taks to complete?

I'm looking to find a Java friendly solution, if possible.

Thanks!

Was it helpful?

Solution

There is no actual de facto standard for server/node/client discovery in grid computing, at least none that is universally used. Many implementations use adhoc discovery based on UDP multicasting, others use registry-based discovery as in SOA architectures. There's plenty of solutions but no universal standard.

Some Java-firendly implementations you might want to look at: Unicore, JPPF, HTCondor, GridGain, Hadoop, Globus, Hazelcast

OTHER TIPS

Zookeeper is something to consider. Perhaps combined with JMS messaging if your resources are distributed far and wide. I use Zookeeper with a SystemInfo service running on each node. The service registers the systems information: memory, number of CPUs, disk space and such as a znode in /Resources in Zookeeper.

Then whatever service needs a resource can query /Resources if looking for a resource to do something and check its specifications before allocating work.

The Java APi for Zookeeper is pretty good. I find it easy to work with.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top