Hi Dennis, I like Gregg's ideas about *-dl.jar caching, it's obvious Gregg has had to overcome serious issues with bandwidth, this is also very relevant to the internet.
Why cant the client express a dependency on that associated service's -dl.jar file(s)? The client depends on the Service Interface, not the -dl.jar, what you probably meant was Marshalled Objects depend on the -dl.jar during Unmarshalling. Yours and Patrick's ideas are good, including the codebase Entry idea, as you suggest a Service could pre-empt installation of the correct version *-dl.jar prior to unmarshalling objects. That *-dl.jar could have dependency's it requires resolved by a frame work too, all prior to any unmarshalling. Dependency Tree: Service Interface | ____________|____________ | | Client Service Proxy (Service-dl.jar) | [ Remote ] | Service Implementation (Service.jar) The Client has no direct relationships with the Service Proxy, if it did, we wouldn't be able to swap one service for another. What makes this issue confusing for many is the Service Interface can find it's way into the *-dl.jar, however, in the case of smart proxy's it will usually be loaded previously by a parent ClassLoader. If the Service Interface already exists at the client, the dumb proxy (reflective auto generated stub whatever you want to call it) doesn't even need a *-dl.jar EG: River's Service Interfaces are in the jsk-platform.jar I'd like to encourage developers to package their Service Interface's separately from their implementations, I'd like a way of indicating in a jar manifest, that the jar archive contains a Service Interface. Then we could create a Directory Service that allow's users to find new ServiceInterfaces and lookup implementing Services, a ServiceInterface.jar should probably contain the LICENSE and javadoc too, to encourage other developers to implement it. It makes sense to arrange ClassLoaders in a hierarchy similar to the dependency tree, if not utilising a Modular framework like OSGi. These ideas are all good, lets keep having this discussion. Regards, Peter.