Michael McGrady wrote:
Thanks, Holger,

The idea is not to jettison but to decouple JINI from JavaSpaces. Similarly, in part, various Web frameworks (e.g., Struts) are decoupled from Servlets. Without something like JINI, JavaSpaces would be useless but this is different than creating a situation where JINI itself, rather than something like JINI, would be required.

The idea too is not to suggest that JINI is something that needs to be replaced. The idea, rather, is that it needs to be decoupled to follow architectural best practices and that the lack of cohesion in JIN:-JavaSpaces due to the coupling is not a good thing and can be seen as the reason for a lot of the unnecessary complexity in River.

Okay, I think there needs to be a viewpoint expressed here that comes from a different direction. Jini is not all the services in River. Jini is the foundation/API in River, which allows you to create clients and services. These utilize the Java security system, Java mobile code, and the Java platform, in general, to effectively (and I'd say efficiently) create distributed, scalable network centric applications.

Javaspaces is an API in the Jini platform. Reggie is a service implementing the Javaspaces API, in River, which provides a piece of, and uses the Jini platform.

There are 3 things in the Jini platform which the outrigger implementation of Javaspaces uses. It registers with service discovery so that you can find it. It doesn't have to use reggie, any implementation, which implements the spec, will work. It uses transactions and thus leasing to help manage the integrity of the system. It doesn't need to have mahalo, but any transaction implementation that implements the spec.

The sun provided LandLord leasing implementation is something that meets the spec for leasing. Other implementations of the transaction/leasing spec would interroperate.

It is possible to make outrigger buildable as a single "artifact" (maven or otherwise) so that it's not part of the River distribution (blitz is a Javaspaces implementation that demonstrates this separation from the platform).

Outrigger has intimate dependencies on the Jini "platform" (service registration as a service, and transactions and leasing etc in the APIs) which mean that it is not "separable" from Jini without being something different than Javaspaces.

Outrigger is separable from River as an artifact, but I am not convinced that this separation would be good, because then all the River infrastructure to actually use Outrigger would be another step needed to get it to work.

Gregg Wonderly

Reply via email to