API Evolution is implicitly inherent in River's Lookup mechanism.

Think about the versioning evolution problem for a moment.

Here's a good presentation:
http://beta.parleys.com/#st=5&id=217&sl=33

Anyway, what happens when you change an interface, by adding a method to an interface?

It breaks at runtime if it mixes with the old. - So, this has long been known.

But it doesn't break if your using lookup. The proxy with the version of the interface you don't have won't unmarshall, which is no problem, use a different one.

Common practice is to extend interfaces for evolution. You can extend your interface, add the method and create a new Service Implementation and proxy.

Now you can service both old clients and the new.

Old clients will still lookup your service through the old interfaces, your new clients find you using the latest interface. The old client wont directly see your new interface, however it will download it's class file when it unmarshalls your proxy.

When you want to drop the old interface and introduce a new one, but still migrate data from the old, you can wrap the old interface inside a proxy implementing the new, and the old interface becomes abstracted as a proxy implementation detail. It can now participate with other implementations and consumers of the new interface. The data prevails. You might change from a dumb proxy to a smart proxy, but the client isn't concerned.

Those who have been using Jini / River for some time will be aware of it, I just thought I'd mention it for anyone who isn't.

It just demonstrates why River is Still Relevant.

Name something else that solves this problem so eloquently?

Anyway I'm confident we're now changing gear, by changing the current Registrar to allow delayed unmarshalling and Stream inspired, ResultStream's of proxy's we can have multi layered filter's that can be mixed and matched, or shared over different lookups, we can make lookup scalable at the client.

However don't sit back, thinking someone else will look after River. River needs your scrutiny more than ever now, to ensure fundamental changes we will have to live with for years to come, are indeed as good as they should be. I especially welcome any comments from longtime experienced Jini community members and Architects. Spread the word.

Best Regards,

Peter.

Reply via email to