rST - Remote Smalltalk
Last updated at 10:49 am UTC on 12 October 2006
Now available for Squeak 3.9 on SqueakSource
Author: Diego Gomez Deck
Mainteners: MichaŽl Piel and Noury Bouraqadi
Collaborator: Andres Coratella (rST - Port to VisualWorks NC)
Beta Tester: German Morales
Framework for supporting distributed Squeak objects. The main goal of the project is transparency, so you don't need to change your objects to become remote. Another goal is to handle intermittence in the availability of the images, so PDA and Notebooks can interoperate in a distributed environment. Each object decides to pass "as copy" or "as reference", in the default implementation all objects pass "by reference" but Booleans, String, Character, Number and UndefinedObject (see implementors of #remoteType).
The architecture is similar to A Preliminary Specification. You can find some information at rST - Documentation
and rST - Remote Smalltalk.
Some preliminar information in Spanish: http://smalltalking.swiki.net/140
How to run the test demo
In order to execute the test demo, you must run two images of Squeak. On one of these images execute in a workspace:
this will start the server, which will wait for incoming object requests. Then, on the other Squeak image, execute:
This runs the client and allows you to see the results.
Once the demo is over, evaluate on both images:
NOTE: The examples use the local address to connect to the server side, if you want to try in different machines, change the address in
- Squeak 3.9 (rST-Noury Bouraqadi.50.mcz and above)
- Squeak 3.7 (latest version : rST-mp.44.mcz)
For Squeak 3.2 (2002)
- To test in Windows environments you need the VM with a network bug fixed
- This version was tested with Squeak Messaging Services for a time and seems to work.
- The rST - Remote Smalltalk now works concurrent with the connection, this allow to remove an ugly semaphore.
- Added RSTDialectIndependency as a first approach to multi-dialect problems.
Features in testing
- Complete rST needs intensive testing.
- rST - Remote Smalltalk.
- Test for thread safe code.
- Resume/Pause the broker when squeak starts/shutdown.
Ports to others Smalltalk dialects
- Find and fix bugs.
- Don't use Squeak serialization, so it is possible to port to other Smalltalks and interoperate with them.
- Find a way to workaround the "problem" with #class message. Then the inspector will work fine.
- Agents features (a la http://citeseer.ist.psu.edu/bennett87design.html)
- Mayor Changes
- GC as Strategy
- Transport layer as Strategy, so we can use UDP, serial, etc.
- Port to others Smalltalks
- Remote Workspace: open a Workspace to a remote image and evaluate the code in the remote image context.
- Get a server in internet to run a Squeak image with some samples objects exported.
- A really nice distributed game.
Projects using rST
Also see: SOAP, A Squeak ORB.