Jini has the behavior that clients dynamically discover the "code"
that they will use.  OSGi has the attribute that clients load packages for the
"code" that they use.  In both cases, the deployment mechanism has established
the content that is "the code".  OSGi includes more literal dependency
specifications from each packages perspective.  Jini doesn't do it that way.
Instead, the "codebase" and "classpath" mechanisms are used to "tell" the system
that is built what to do.

Thanks Gregg, an interesting observation.

With Jini Services, the client and service may be written by different developers, or owned by separate parties and may come into contact at runtime in a deployment environment, without ever having been tested together. The client and proxy both depend on the Service API, the client doesn't depend on the proxy. In OSGi, the client get's to choose the packages and versions it imports. In Jini, it's the service implementor.

An application developer could use OSGi to manage versioning, and your CodebaseAccessClassLoader contribrution makes this possible. I guess the proxy developer could use the OSGi framework for the correct packages the proxy needs, provided OSGi is installed in the clients classpath.

If someone is doing this successfully, I'm interested to hear your results.

Cheers,

Peter.

Reply via email to