A Conceptual Framework for API Refactoring in Enterprise Application Architectures

Fuente: arXiv
Saved in:
Bibliographic Details
Main Authors: Montesi, Fabrizio, Peressotti, Marco, Picotti, Valentino, Zimmermann, Olaf
Format: Preprint
Published: 2024
Subjects:
Online Access:
Tags: Add Tag
No Tags, Be the first to tag this record!
_version_ 1866913424625106944
author Montesi, Fabrizio
Peressotti, Marco
Picotti, Valentino
Zimmermann, Olaf
author_facet Montesi, Fabrizio
Peressotti, Marco
Picotti, Valentino
Zimmermann, Olaf
contents Enterprise applications are often built as service-oriented architectures, where the individual services are designed to perform specific functions and interact with each other by means of well-defined APIs (Application Programming Interfaces). The architecture of an enterprise application evolves over time, in order to adapt to changing business requirements. This evolution might require changes to the APIs offered by services, which can be achieved through appropriate API refactorings. Previous studies on API refactoring focused on the effects on API definitions, with general considerations on related forces and smells. So far, instead, the development strategy for realising these refactorings has received little attention. This paper addresses exactly this aspect. We introduce a conceptual framework for the implementation of API refactorings. Our framework elicits that there are important trade-offs and choices, which significantly affect the efficiency, maintainability, and isolation properties of the resulting architecture. We validate our framework by implementing several refactorings that introduce established API patterns with different choices, which illustrates the guiding principles offered by our framework. Our work also elicits, for the first time, how certain programming language features can reduce friction in applying API refactoring and open up more architectural choices.
format Preprint
id arxiv_https___arxiv_org_abs_2407_07428
institution arXiv
publishDate 2024
record_format arxiv
spellingShingle A Conceptual Framework for API Refactoring in Enterprise Application Architectures
Montesi, Fabrizio
Peressotti, Marco
Picotti, Valentino
Zimmermann, Olaf
Software Engineering
Programming Languages
Enterprise applications are often built as service-oriented architectures, where the individual services are designed to perform specific functions and interact with each other by means of well-defined APIs (Application Programming Interfaces). The architecture of an enterprise application evolves over time, in order to adapt to changing business requirements. This evolution might require changes to the APIs offered by services, which can be achieved through appropriate API refactorings. Previous studies on API refactoring focused on the effects on API definitions, with general considerations on related forces and smells. So far, instead, the development strategy for realising these refactorings has received little attention. This paper addresses exactly this aspect. We introduce a conceptual framework for the implementation of API refactorings. Our framework elicits that there are important trade-offs and choices, which significantly affect the efficiency, maintainability, and isolation properties of the resulting architecture. We validate our framework by implementing several refactorings that introduce established API patterns with different choices, which illustrates the guiding principles offered by our framework. Our work also elicits, for the first time, how certain programming language features can reduce friction in applying API refactoring and open up more architectural choices.
title A Conceptual Framework for API Refactoring in Enterprise Application Architectures
topic Software Engineering
Programming Languages
url https://arxiv.org/abs/2407.07428