Enabling flexible cross-version interoperability for distributed services

Software evolution is one of the problematic areas in software management. In a distributed environment it is harder to tackle this problem because the dispersal of software makes it difficult to control the change, as well as the propagation of the change to whoever that is using the evolving service. The paper presents a model to alleviate this problem by making different distributed service versions substitutable. The mechanism comprises a mediator that enables clients of an old-version service to successfully request onto an instance of a new-version service. The mediator considers functionality compatibility, rather than operation signature compatibility, when mediating the request. Thus instead of forcing change on the client side, this model allows flexible interoperability between different versions of client and server software. To support the model, existing distributed object architectures may require some extension to their type repositories to maintain mapping information necessary for the work of the mediator.