See infra:
On Dec 12, 2008, at 1:19 PM, Gregg Wonderly wrote:
Jini is a system for building distributed system. JavaSpaces uses
the facilities of the Jini system to provide a distributed memory
subsystem. Is that something that you don't see?
Yes this is something I do not see. JavaSpaces as a Linda spaces
implementation is not dependent on JINI in this way.
A Linda space implementation doesn't have to use Jini because it's
not a technology, it's a mechanism/architecture that can have
infinite implementations. Search for "Java Linda Space" on google.
Lots of people have created implementations of a Linda like space
"thing" in Java.
A Linda space implementation is a technology. Implementations don't
have implementations infinite or finite.
I would like to have a Linda spaces implementation, which JavaSpaces
claims to be, by the way, without having to choose yea or nay on
JINI. You are forcing that choice in JINI. That forced choice could
be excised and those other implementations of Linda spaces in Java
could become secondary to JavaSpaces. Further, this would not hurt
JINI at all. Win/win, as i said before. Why would you fight against
this?
JavaSpaces uses features of Jini to participate with other Jini
enabled services so that they can utilities a Linda tuple-space for
distributed memory. If the Entry interface was in JavaSpaces and
not in Jini, than it would have an identical copy in Jini so that
service registration and lookup could use it, since it's in that API
too.
First, if the entry interface was in JavaSpaces, it would not need a
copy in JINI. JINI might need a different implementation that was
more specialized than the JavaSpaces implementation, as Niclas has
noted, but that is good, not bad.
You might think, that's okay, no problem. But, it is a problem for
developers because they'd always wonder which one was being used
when they saw the text Entry. So, you might say, they can have
different names like SpaceEntry and ServiceEntry etc. Well, perhaps
so, but that's water under the bridge. At this point, there are
existing Jini services all deployed with the existing type hierarchy
and class structure. If you change that in an incompatible way,
then you've broken Jini as a concept related to portability and
inter-working services and clients.
If there were only one hierarchy, Gregg, it would not be disturbed by
restructuring and moving the entry interface to JavaSpaces. It would
have no effect at all.
Which do you want out of JavaSpaces? The function of Entry related
to read(), put() and take() on the space, with the matching
mechanisms etc, or do you want that and the ability to access the
JavaSpace from another machine (or two, or more)?
If you want a network, you need network technologies to do that. If
you want reliability in the flow of your data between systems, you
need Transactions. If you want reliability in the recovery of your
system from partial failure, you need leasing.
Again, which parts of Jini do you think JavaSpaces has no need for?
And I do mean NO NEED FOR.
I don't want to get rid of anything. I just want the structure of the
framework, of JINI and JavaSpaces to make sense. Presently, in my
opinion, the structure does not make sense, which accounts for all the
activity around JINI but excluding JINI. People are building things
they need but JINI precludes, even though with proper structuring it
would not have to preclude these uses. The time to change is now
because spaces is being discovered and is passing River by at this
time. I am going to use spaces and I am going to use it in large,
interesting, applications. If River is not changing, then it won't be
River.
Mike
Michael McGrady
Senior Engineer
Topia Technology, Inc.
1.253.720.3365
[email protected]