Type-Safe Evolution of Web Services

Research output: Chapter in Book/Report/Conference proceedingConference contribution

Abstract

Applications based on micro or web services have had significant growth due to the exponential increase in the use of mobile devices. However, using such kind of loosely coupled interfaces provides almost no guarantees to the developer in terms of evolution. Changes to service interfaces can be introduced at any moment, which may cause the system to fail due to mismatches between communicating parts. In this paper, we present a programming model that allows the development of web service applications, server end-points and their clients, in such a way that the evolution of services' implementation does not cause the disruption of the client. Our approach is based on a type based code slicing technique that ensures that each version only refers to type compatible code, of the same version or of a compatible version, and that each client request is redirected to the most recent type compatible version implemented by the server. We abstract the notion of version and parametrize type compatibility on the relation between versions. The relation between versions is tagged with compatibility levels, so to capture the common conventions used in software development. Our implementation allows multiple versions of a service to be deployed simultaneously, while reusing code between versions in a type safe way. We describe a prototype framework, based on code transformation, for server-side JavaScript code, and using Flow as verification tool.

Original languageEnglish
Title of host publicationProceedings - 2017 IEEE/ACM 2nd International Workshop on Variability and Complexity in Software Design, VACE 2017
PublisherInstitute of Electrical and Electronics Engineers Inc.
Pages20-26
Number of pages7
ISBN (Electronic)978-153862803-4
DOIs
Publication statusPublished - 3 Jul 2017
Event2nd IEEE/ACM International Workshop on Variability and Complexity in Software Design, VACE 2017 - Buenos Aires, Argentina
Duration: 27 May 2017 → …

Conference

Conference2nd IEEE/ACM International Workshop on Variability and Complexity in Software Design, VACE 2017
CountryArgentina
CityBuenos Aires
Period27/05/17 → …

    Fingerprint

Keywords

  • API evolution
  • JavaScript
  • type safe
  • web services

Cite this

Campinhos, J., Seco, J. C., & Cunha, J. (2017). Type-Safe Evolution of Web Services. In Proceedings - 2017 IEEE/ACM 2nd International Workshop on Variability and Complexity in Software Design, VACE 2017 (pp. 20-26). [7968059] Institute of Electrical and Electronics Engineers Inc.. https://doi.org/10.1109/VACE.2017.6