The server gets the request from a skeleton on the server side. Between the two is the remote reference layer, which negotiates the requests by converting objects into portable form across the network. This conversion is called marshalling . The idea of serialization is mentioned again in the example to follow. To distribute the work of a large problem, the server coordinates the work of the clients.
Clients periodically retrieve their assignments from the server using remote method calls.
For this example, I'll examine a distributed computing solution to a problem of cryptoanalysis. A message has been encrypted using a long integer key. For the sake of this example I assume can only be discovered by brute force checking all possible keys. To implement the most efficient checking of all possible keys, a server will assign a range of unchecked keys to a client, which will check its assigned keys in parallel with all other clients. I want clients to request an assignment from the server in the form of a block of keys.