Patent ID: 7506334

Claim:
A computer-implemented method for allowing a source subsystem to communicate with multiple different versions of a target subsystem that expose different versions of an interface, the computer-implemented method comprising: establishing a connection between the source subsystem and a target subsystem; negotiating a version of the interface to use in communicating between the source subsystem and the target subsystem; creating an instance of a proxy object in the source subsystem, the proxy object implementing each of the different versions of the interface and providing a common, multi-version interface that exposes a superset of methods of the different versions of the interface implemented by the proxy object; providing the instance of the proxy object an indication of the negotiated version of the interface; establishing a logical channel between the instance of the proxy object and a counterpart proxy object in the target subsystem, wherein the counterpart proxy object is a remote source proxy that models the negotiated version of the interface; and under control of the source subsystem, accessing the target subsystem by invoking methods of the proxy object such that the same methods are invoked irrespective of the version of the interface that is negotiated so that the source subsystem can access different versions of the target subsystem without having to use separate code paths for different versions and such that the instance of the proxy object and the counterpart proxy object communicate with each other using the negotiated version of the interface by the proxy object mapping invocations of its methods to invocations of methods of the negotiated version of the interface.