: We have implemented a service for the development of distributed cooperative applications on the Internet. This service provides the abstraction of a distributed shared object space. The objects managed by the applications are transparently shared between the client nodes, so that the application developer can program as in a centralized setting. It consists of a set of system classes and a proxy generator implemented in the Java environment. The service and the applications that use it are dynamically deployed to client nodes at run-time, thanks to Java mobile code. Our system support relies on object replication on the client nodes. Logically related objects are grouped in clusters, the cluster being the unit of sharing, replication and coherence. One of the main advantages of our proposal is that the object clustering policy is tightly coupled with the application code, thus ensuring locality, while keeping clustering transparent to the application programmer. This service has bee..