Re: JavaSpace.notify() "not reliable"

Mark Brouwer <[email protected]> Tue, 15 May 2007 00:09:03 +0200
Newsgroups gmane.comp.java.sun.javaspaces
Message-ID <[email protected]>
Gregg Wonderly wrote:

> Except for notify not working across firewalls, etc. I've just
> written off the conveniences of listeners. They won't work in all

Which I consider a pity as 'event driven programming' as you say is very
  convenient and in case of the inverted event model (polling in the
smart proxy) you really make use of the mobile code aspect opposed of
people polling themselves (writing a decent polling mechanism is often
more work as one believes it is in the first place).

> situations without a polling based implementation (as Mark has done
> in Seven/"The JSC"). The only working mode is to register the
> listener (so that you can get immediate notifications on local
> networks where latency will be expected to be minimal), then
> make the query to see if there are any there (which covers both the
 > data race
> in the server and the non-working call back on listeners case). Finally,
> using a background timer based operation to rerun the query
> periodically. I've actually pushed this into a recovery strategy for
> failed notify() registrations as well.

Due to the ease of implementing distributed events as part of your
service with Seven (both Jini distributed events as the inverted JSC
event model) I've used distribute events a lot (next to the ordinary
query methods for bootstrapping etc.) but I always ended up with an
'alive' notification scheme. As part of the remote events to be received
one should expect a NOOP remote event top indicating the server is alive
and kicking if it has no actual remote event to send and also for the
first remote event to validate whether callback in case of the Jini
Distributed Event Model does work, if not one could decide to switch to
the 'inverted' event model.

I wonder whether such a 'I'm alive' notifications have ever been
considered as part of the event protocol for JavaSpaces and Lookup
Server. I think it is not too late to add these to the event protocols
by making them optional and to enabled them through the usage of some
invocation constraint. So far I always coded the 'I'm alive'
notification scheme myself but this could even be shifted to the
framework part, although that is totally irrelevant for the discussion
whether such a scheme would be worth 'standardizing'.
--
Mark

===========================================================================
To unsubscribe, send email to [email protected] and include in the body
of the message "signoff JAVASPACES-USERS".  For general help, send email to
[email protected] and include in the body of the message "help".

To view past JAVASPACES-USERS postings, please see:
http://archives.java.sun.com/archives/javaspaces-users.html