Jim Waldo has written "Jini and OSGi, yet again
," discussing the debate between Jini and OSGi: "The two technologies are very different applications of similar design philosophies, and should not be seen as competitors."
OSGi and Jini are service architectures built for completely different contexts. OSGi is a service architecture for services that are in the same address space. It allows you to build programs out of cooperating services. And for that sort of thing, it is pretty good.
Jini is a service architecture for distributed systems that are built out of services that are separated by a network. And the network is a very different environment from the single virtual machine (my one real issue with Peter Kriens' blog is that he identifies Bill Joy as the one who first insisted that the distributed system is different from the local system; in fact it was either Peter Deutsch as part of the Seven Fallacies paper or it was Ann Wollrath, Geoff Wyant, Sam Kendall and me in our paper A Note on Distributed Computing). So in fact the two are not competitors, but rather applications of many of the same design principles to fractally similar but otherwise very different problems.
This is a depressingly common pattern in technology (see the competition between web frameworks for a decent example, or between Guice and Spring.) It's common enough that Mr. Waldo describes the Highlander Fallacy:
This, of course, is a classic example of what I have called the Highlander Fallacy, which briefly stated is the principle that there can be only one. If any two technologies can be described using the same set of words, then there is no need for both of them, and only one will survive. I call this a fallacy because, to use a technical term, it is total crap. Certainly, there are cases where there are two technologies that are described using the same words where the two technologies actually do the same thing in the same context with the same requirements and the same restrictions. In such cases, having two may be one too many.
Well... if your head comes away from your neck, it's over!