"Even with small systems, finding out what occurs 'in the space' can be difficult. Shifting reads, writes, and takes in your code or inserting debug statements in important places may give you clues. But these techniques are effective only in the simplest systems, where you can easily imagine the flow of objects around the system. Systems of anything other than the most trivial complexity require not only stretching your imagination, but also using tools to help you imagine space activity. Tools that let systems developers or designers view the activities of the system's various clients can help restore confidence in understanding the system's behavior as a whole," says Philip Bishop and Nigel Warren in this Artima.com article:
I just wanted to add that the use of dynamic proxies can even simplify this issue. There is then no need to create a Jini service.
And moreover, it is even easier that way to add other kind of proxies at the same time (such as an automatic retry in case of RemoteExceptions, etc etc...).
> I just wanted to add that the use of dynamic proxies can > even simplify this issue. There is then no need to create > a Jini service.
Jerome, why not just support events from the space? I'm thinking of something along the lines of the ObservableMap interface that we provide to watch a cache in Coherence -- http://www.tangosol.com/coherence.jsp -- which lets you specify what kind of changes you want to listen to and how much information about those changes you want to receive (e.g. the previous and new values from the operation, since the events could be async.)