The latest and greatest from Jini-land
Brian Murphy gave an excellent presentation today on the latest and greatest advances added in the Jini 2 Starter Kit. One of the topics was about security features.
There are many assumptions that developers of distributed applications make when first starting out. Peter Deutsch has identified 7 of these fatal assumptions in his now famous Eight Fallacies of Distributed Computing (James Gosling added the eighth one).
As Brian points out, Jini has never claimed to directly solve any of these issues, but rather provides mechanisms to aid the developer in avoiding these traps. Jini was criticized early on for not providing any support for avoiding the 4th fallacy -- "The Network is Secure". That hole has now been plugged.
The Jini team has provided a very pluggable solution that allows for the application of various security methodologies. As much as possible they have endeavored to apply the existing features of Java security that already exist and suit the purpose (JAAS and policy files). In order to achieve the ability to plug in various security models it was necessary to refactor RMI. And that leads me into the final point of this blog
Okay, you're at a computer geek cocktail party or perhaps you're at home with some friends playing one of your favorite games (Trival Pursuits - the Java edition) and you pose the following question -- "How many implementations of RMI does Sun Microsystems support??" . Most will say 1, some may say 2, but only those that attended Brian's presentation at JavaOne will know that the answer is actually 3.
The first implemention of RMI is the one that uses the JRMP (Java Remote Method Protocol). Next an implementation was provided that uses IIOP sometimes called RMI over IIOP. The third and most recent version is called Jini Extensible Remote Invocation (JERI). It is in every sense a complete implementation of RMI, written by the same group of engineers that provided the original version.
Hmmmm... "Trivial Pursuits - The Java Edition", sounds like a good idea for a project on java.net or at least a Wiki page perhaps. Any takers ...??