I have a question concerning the advantages of using compute servers with JavaSpaces.
The (classical, I think) scenario is: we have a master generating tasks and putting them into a JavaSpace. Several workers wait for tasks, each one taking one task at a time, instantiating it, executing it (calling the task's execute method) and putting the result back into the space. It is all based on the 'Make Room for JavaSpaces Part II' article.
Now let's say that there are only a few types of generated tasks, and the execute method of the task requires parameters, passed by the worker. In order to instantiate the task, the worker must anyway have access to the complete task code (via its codebase), thus the task code is downloaded anyway from a web server.
My question is : what is the advantage of using a JavaSpace for exchanging executable code if the JavaSpace only preserves public fields of the Entry? I understood from JavaSpaces articles that the public fields would act as parameters, or as the data used for computation by the execute method. Is there any use for repeatedly storing the complete task code into the JavaSpace only whith some public fields changed each time, instead of using the downloaded version of the class and passing parameters to the execute method? (and, maybe using the space only for passing parameters)?
I am only troubled beacause what initially seemed to me a very nice way of solving computational-intensive problems, now seems inefficient.