A Transformational Approach to Managing Data Model Evolution of Web Services

The communication of web services is typically organized through public APIs, which rely on a common data model shared among all system components. Over time, this data model must be changed in order to accommodate new or changing requirements, and the system components including the data they are operating on must be migrated. In practice, however, not all the affected components can be migrated instantly and at the same time. A common approach is to plan data model changes in a backward compatible fashion, which eventually causes serious maintenance problems and is a common cause of technical debt. In this paper, we propose an alternative solution to this problem by using a translation layer serving as a round-trip migration service which is responsible for the lossless forth-and-back translation of object-oriented data model instances of different versions. We present a framework which offers a version-aware interface definition language (IDL) for APIs, a typed JavaScript-based language for defining migration functions using the IDL definition, and a run-time environment for executing migrations. This is bundled into an integrated development environment assisting developers in implementing migration functions. From a methodological point of view, the development of round-trip migrations is supported by a catalog which comprises a set of typical data model evolution scenarios along with corresponding suitable round-trip migration strategies. We validate our framework by carrying out an extensive evaluation including a systematic assessment of expressiveness using our catalog, micro-benchmarking the performance of round-trip migrations, as well as a practical application in a case study of a real-world e-commerce web application obtained from an industrial partner.