Web Services are increasingly being used to create a wide range of distributed systems, many of which involve legacy software. Developing service interfaces for these legacy systems can be difficult, as for interoperability reasons it is advantageous to use a common service interface that is independent of the particular legacy system behind it. This enables other services to interoperate with like legacy systems regardless of their implementation. Unfortunately, similar legacy systems can offer subtly different functionality from each other, making agreeing on a common interface difficult. This paper introduces three design patterns for managing this problem: Lowest Common Denominator, Most Popular and Negotiated Interfaces. It formally presents these patterns and reflects on how they have been used within the domain of e-learning to wrap legacy systems that function as databases of objective questions.
David E. Millard, Yvonne Margaret Howard, Swapna C