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 language | English |
---|---|
Title of host publication | Proceedings - 2017 IEEE/ACM 2nd International Workshop on Variability and Complexity in Software Design, VACE 2017 |
Publisher | Institute of Electrical and Electronics Engineers Inc. |
Pages | 20-26 |
Number of pages | 7 |
ISBN (Electronic) | 978-153862803-4 |
DOIs | |
Publication status | Published - 3 Jul 2017 |
Event | 2nd IEEE/ACM International Workshop on Variability and Complexity in Software Design, VACE 2017 - Buenos Aires, Argentina Duration: 27 May 2017 → … |
Conference
Conference | 2nd IEEE/ACM International Workshop on Variability and Complexity in Software Design, VACE 2017 |
---|---|
Country | Argentina |
City | Buenos Aires |
Period | 27/05/17 → … |
Keywords
- API evolution
- JavaScript
- type safe
- web services