Mike ("Fuzzy" to you) and Dan Creswell are working on the Jini comfort level. I think the answer is to make the Jini starter kit more comfortable. If we stay with Jini then I hope we'll be making some contributions along those lines.
Currently Jini examples are kind of scattered in terms of where they can be found, whether they run with 2.1, what spectrum of Jini/Javaspaces they cover, and whether they reflect one person's style or some community-level "best practice".
I like examples that are small, build on each other, and "just work" with some clear code. That can be a challenge with a dynamic, distributed system like Jini/Javaspaces. There is a way to go with this in general, but some candidates can be found, and we're doing some ourselves.
Back to the question though, about having a Javaspaces without Jini. Because of Java's instance/class/class-loader/serializer design, Javaspaces would not be better without Jini. How many Java systems have (or suffer from the lack of) a decent dynamic loading capability? Jini *is* such a thing that could be used in many situations.
Even a Javaspace that is used merely to pass "data-only" entries around require dynamic class loading unless you desire explicitly managing the classpaths of all the JVMs participating. Putting methods on those entries or the objects they contain just make the need for dynamic class loading more obvious.
Not to mention that Javaspaces themselve are turned into dynamically available Jini services, available through smart proxies, distinguishable by entry values, and so on.
I suppose I am more comfortable with the idea of dynamic loading right off the bat. I have written a lot of Lisp and Smalltalk code that's gone into production, and kept running right through dynamic loading of fixes and enhancements. Gemstone Smalltalk even supports bulk or incremental migration of Smalltalk instances from one class version to another while the system continues running.
Jini and Javaspaces seem to be the Java mechanism most aimed at this level of dynamicism. Are there others?
1 comment:
"Back to the question though, about having a Javaspaces without Jini. Because of Java's instance/class/class-loader/serializer design, Javaspaces would not be better without Jini. How many Java systems have (or suffer from the lack of) a decent dynamic loading capability? Jini *is* such a thing that could be used in many situations."
Indeed - http://www.jroller.com/page/dancres?entry=dealing_with_system_evolution
"Currently Jini examples are kind of scattered in terms of where they can be found, whether they run with 2.1, what spectrum of Jini/Javaspaces they cover, and whether they reflect one person's style or some community-level "best practice".
I like examples that are small, build on each other, and "just work" with some clear code. That can be a challenge with a dynamic, distributed system like Jini/Javaspaces. There is a way to go with this in general, but some candidates can be found, and we're doing some ourselves. "
If I could just find a way to clear out or mark up all that previous to 2.x stuff......
I also think that many of the issues with Jini are around needing a different perspective. And that only comes from getting away from discussion of the basic mechanisms like dynamic code downloading.
And that is still lacking IMHO tho' conversations like those I'm having with yourself and Mike help an awful lot.
Post a Comment