Moving objects...

Peter Smet peter.smet at flinders.edu.au
Fri Jul 23 01:22:47 UTC 1999



I have been reading a book on mobile objects, and some of the limitations of
the technique. It made me wonder about how Squeak and Smalltalk deal with
these issues (rather better I suspect). Firstly, Java will not allow threads
to be serialized. Is the same true of Processes in Squeak? Can these be
saved and restored to their execution state in a different image? This is
important for the idea of mobile software agents. The reason this is
probably difficult in Java is because it uses native threads.

Secondly, with passing objects from one image to another. Passing the state
seems fairly straightforward, but what about behaviour? If an Instance of
class Dog is shipped to a remote Image that does not have this class, what
happens? In Java, a classLoader fixes the problem. In Smalltalk, I'm
guessing you can just pass the class across the net to add the behaviour
(shows that making a class an object was an excellent design decision). Is
this the case, or is more needed? Does SmartReferenceStream deal with this
automatically, or must you explicitly add the class to the remote image?

How are dependencies dealt with in serialization? I think with BOSS it
streams the object and all of its references to other objects etc. Does the
same happen when an object is serialized on the net in Squeak?

These are probably very basic questions, but I would like to know how Squeak
handles these things...


Peter





More information about the Squeak-dev mailing list