The ClientServer tool
takes almost any centralized, sequential client/server
application written in Oz and, without writing any new code, turns it into
an open, robust, distributed, concurrent client/server application.
In the distributed version, any number of clients can connect dynamically
to the server and ask questions concurrently. The tool guarantees that all
client requests are serialized when fed to the server.
In this version of the tool, the server tolerates client failures
(it silently drops the failed clients) and the clients can reconnect to a
new server if the server fails (a graphic interface is provided to manage
reconnection). This is adequate for client/server
applications without server state. The tool can be extended to do more
sophisticated fault tolerance.