Java's modules rock? (was Re: election details *PLEASE READ*)

Andreas Raab andreas.raab at gmx.de
Sat Mar 10 21:16:24 UTC 2007


stephane ducasse wrote:
> Did you encounter cases where you would have like to have different 
> versions of the same component/modules running in the same image.

Sure. Consider Croquet: It relies on replicated computation which means 
that the replicated islands must have identical code based to have the 
same behavior. But what happens when you link to a space which uses a 
different (older or newer) version of a module that is already loaded in 
the space you are in? As far I can see there are only three options:]

1. Don't ever allow it. That's our current solution, i.e. all spaces 
linked together must use the same code base. For the obvious reasons 
this is neither particularly scalable nor desirable.

2. Force migration of "older" spaces. This may be an acceptable solution 
if the number of spaces linked together is relatively small. However it 
has the disadvantage that you create "waves" of updates since 
participants are linked together in unforeseen ways (compare this to a 
WWW where each web page can only be linked to another webpage of the 
same version and where upgrading one would implicitly require upgrade 
all the ones it links to - I think you can see the basic problem with 
the approach).

3. Have these modules sit side-by-side. In reality, this is the only 
scalable, secure and desirable solution.

Cheers,
   - Andreas



More information about the Squeak-dev mailing list